一、什么是计算机

1、什么是计算机

计算机(computer)俗称电脑,是现代一种用于高速计算的电子计算机器,可以进行数值计算,又可以进行逻辑计算,还具有存储记忆功能。是能够按照程序运行,自动、高速处理海量数据的现代化智能电子设备。

大多数人认为计算机就是我们桌面的电脑,实际上计算机已经深入到我们信息化生活的方方面面。除了大家熟知的个人电脑、服务器和工作站等通用计算机外,像手机、数码相机、数字电视、游戏机、打印机、路由器等设备的核心部件都是计算机,都是计算机体系结构研究的范围。也许此刻你的身上就有好几台计算机。

​ https://www.bilibili.com/video/av79495884/

2、计算机发展历史

2.1 诞生

1946年2月14日,由美国军方定制的世界上第一台电子计算机“电子数字积分计算机”(ENIAC Electronic Numerical And Calculator)在美国宾夕法尼亚大学问世了。ENIAC(中文名:埃尼阿克)是美国奥伯丁武器试验场为了满足计算弹道需要而研制成的,这台计算器使用了17840支电子管,大小为80英尺×8英尺,重达28t(吨),功耗为170kW,其运算速度为每秒5000次的加法运算,造价约为487000美元。ENIAC的问世具有划时代的意义,表明电子计算机时代的到来。在以后60多年里,计算机技术以惊人的速度发展,没有任何一门技术的性能价格比能在30年内增长6个数量级。

2.2 发展

  • 第一代:电子管计算机时代。时间:1946~1958年。这一代计算机的主要逻辑器件是电子管,使用的是机器语言编程,之后又产生了汇编语言。运算速度为每秒几千次到几万次。主要应用范围为科学计算、军事和科学研究。
  • 第二代:晶体管计算机时代。时间:1959~1964年。这一代计算机的主要逻辑器件是晶体管,已经出现了管理程序和FORTRAN等高级编程语言。运算速度为每秒几十万次。主要应用范围为数据处理、自动控制等。
  • 第三代:中小规模集成电路计算机时代。时间:1965~1970年。这一代计算机的主要逻辑器件是中、小规模集成电路,此时已经出现了操作系统、诊断程序和BASIC、PASCAL等高级语言。运算速度为每秒几十万次到几百万次。主要应用范围为科学计算、数据处理、事务管理、工业控制等领域。
  • 第四代:大规模集成电路计算机时代。时间:1971年以后。这一代计算机的主要逻辑器件是大规模和超大规模集成电路以及微处理器芯片,由于运算速度快、存储容量大、计算机技术与网络技术和通信技术相融合,使计算机软件有了突飞猛进的发展,各种操作系统、数据库技术和各种应用软件应运而生。

二、计算机系统组成

​        计算机系统由硬件系统和软件系统所组成,没有安装任何软件的计算机称为裸机。整体结构如下

1、计算机硬件系统

1.1 冯·诺依曼结构与哈佛结构

现代计算机都采用存储程序结构,又称为冯·诺依曼结构,是 1945 年匈牙利籍数学家冯·诺依曼受宾夕法尼亚大学研制的 ENIAC 计算机结构的启发提出的,是世界上第一个完整的计算机体系结构。冯·诺依曼结构体系下,计算机由存储器、运算器、控制器、输入设备和输出设备五部分组成,其中运算器和控制器合称为中央处理器(Central Processing Processor,简称CPU)。

虽然经过了长期的发展,现代计算机系统占据主要地位的仍然是以存储程序和指令驱动执行为主要特点的冯·诺依曼结构。作为冯·诺依曼结构的一个变种,哈佛结构把程序和数据分开存储。控制器使用两条独立的总线读取程序和访问数据,程序空间和数据空间完成分开。在通用计算机领域,由于应用软件的多样性,要求计算机不断地变化所执行的程序内容,并且频繁地对数据与程序占用的存储器资源进行重新分配,使用统一编址可以最大限度地利用资源。但是在嵌入式应用中,系统要执行的任务相对单一,程序一般是固化在硬件里的,同时嵌入式系统对安全性、可靠性的要求更高,哈佛结构独立的程序空间更有利于代码保护。因此,在嵌入式领域,哈佛结构得到了广泛应用。需要指出的是,哈佛结构并没有改变冯·诺依曼结构存储程序和指令驱动执行的本质,它只是冯·诺依曼结构的一个变种,并不是独立于冯·诺依曼结构的一种新型结构。

1.2 计算机的组成部件

​        按照冯·诺依曼结构,计算机包含五大部分,即运算器、控制器、存储器、输入设备和输出设备。

  • 运算器
           运算器是计算机中负责计算(包括算术计算和逻辑计算等)的部件。运算器包括算术和逻辑
           运算部件(Arithmetic Logic Units,简称 ALU)、移位部件、浮点运算部件(Floating Point Units,简称 FPU)、向量运算部件、寄存器等。
  • 控制器
           ​控制器是计算机中发出控制命令以控制计算机各部件自动、协调地工作的装置。控制器控制指令流和每条指令的执行,内含程序计数器和指令寄存器等。程序计数器存放当前执行指令的地址,指令寄存器存放当前正在执行的指令。
    ​        ​由于控制器和运算器的紧密耦合关系,现代计算机通常把控制器和运算器集成在一起,称为中央处理器,即CPU。随着芯片集成度的不断提高,现代CPU除了含有运算器和控制器外,常常还集成了其他部件,比如高速缓存(Cache)部件、内存控制器等
  • 存储器
    ​        ​存储器存储程序和数据,又称主存储器或内存,一般用动态随机访问存储器(Dynamic Random Access Memory,简称DRAM)实现。CPU可以直接访问它,IO设备也频繁地与它交换数据。存储器的存取速度往往满足不了 CPU 的快速要求,容量也满足不了应用的需要,为此将存储系统分为高速缓存(Cache)、主存储器和辅助存储器三个层次。Cache 存放当前 CPU 最频繁访问的部分主存储器内容,可以采用比 DRAM 速度快但容量小的静态随机访问存储器(Static Random Access Memory,简称 SRAM)实现。数据和指令在 Cache 和主存储器之间的调动由硬件自动完成。为扩大存储器容量, 使用磁盘、磁带、光盘等能存储大量数据的存储器作为辅助存储器。现代计算机中还有少量只读存储器(Read Only Memory,简称 ROM)用来存放引导程序和基本输入输出系统(Basic Input Output System,简称BIOS)等。现代计算机访问内存时采用虚拟地址,操作系统负责维护虚拟地址和物理地址转换的页表,集成在 CPU 中的存储管理部件(Memory Management Unit,简称 MMU)负责把虚拟地址转换为物理地址
  • 输入/输出设备
    ​        ​输入/输出设备(简称IO设备)实现计算机与外部世界的信息交换。传统的IO设备有键盘、鼠标、打印机和显示器等;新型的 IO 设备能进行语音、图像、影视的输入、输出和手写体文字输入,并支持计算机之间通过网络进行通信。磁盘等辅助存储器在计算机中也当作 IO 设备来管理。

​1.3 常见的CPU

​        ​       ​CPU作为计算机硬件系统的核心,接下来我们就详细介绍一下CPU

​       ​ 分类标准:指令集ISA

​        ​       ​CPU 灵魂一一指令集架构 (lnstructio Set Architecture, ISA )。


       ​       领域之分:


详情参看:手把手教你设计CPU——RISC-V处理器篇第一章 和 http://www.eepw.com.cn/zhuanlan/190396.html

2、计算机软件系统

计算机的软件系统是指计算机在运行的各种程序、数据及相关的文档资料。计算机软件系统通常被分为系统软件应用软件两大类。计算机系统软件能保证计算机按照用户的意愿正常运行,为满足用户使用计算机的各种需求,帮助用户管理计算机和维护资源执行用户命令、控制系统调度等任务。软件系统分为两大类,虽然各自的用途不同,但他们的共同点是都存储在计算机存储器中,以某种格式编码书写的程序或数据。

2.1 系统软件

系统软件是指担负控制和协调计算机及其外部设备、支持应用软件的开发和运行的一类计算机软件。系统软件一般包括操作系统、语言处理程序、数据库系统和网络管理系统。

2.2 应用软件

应用软件是指为特定领域开发、并为特定目的服务的一类软件。应用软件是直接面向用户需要的,它们可以直接帮助用户提高工作质量和效率,甚至可以帮助用户解决某些难题。应用软件一般分为两类:一类是为特定需要开发的实用型软件,如会计核算软件、订景系统、工程预算软件和教育辅助软件等:另一类是为了方便用户使用计算机而提供的一种工具软件,如用于文字处理的Word、用于辅助设计的AutoCAD及用于系统维护的瑞星
杀毒软件等。

三、软件系统开发语言

1、机器语言

电子计算机所使用的是由“0”和“1”组成的二进制数,二进制是计算机的语言的基础。计算机发明之初,人们只能降贵纡尊,用计算机的语言去命令计算机干这干那,一句话,就是写出一串串由“0”和“1”组成的指令序列交由计算机执行,这种语言,就是机器语言。使用机器语言是十分痛苦的,特别是在程序有错需要修改时,更是如此。而且,由于每台计算机的指令系统往往各不相同,所以,在一台计算机上执行的程序,要想在另一台计算机上执行,必须另编程序,造成了重复工作。但由于使用的是针对特定型号计算机的语言,故而运算效率是所有语言中最高的。机器语言,是第一代计算机语言。

2、汇编语言

为了减轻使用机器语言编程的痛苦,人们进行了一种有益的改进:用一些简洁的英文字母、符号串来替代一个特定的指令的二进制串,比如,用“A D D”代表加法,“M O V”代表数据传递等等,这样一来,人们很容易读懂并理解程序在干什么,纠错及维护都变得方便了,这种程序设计语言就称为汇编语言,即第二代计算机语言。然而计算机是不认识这些符号的,这就需要一个专门的程序,专门负责将这些符号翻译成二进制数的机器语言,这种翻译程序被称为汇编程序。

汇编语言同样十分依赖于机器硬件,移植性不好,但效率仍十分高,针对计算机特定硬件而编制的汇编语言程序,能准确发挥计算机硬件的功能和特长,程序精炼而质量高,所以至今仍是一种常用而强有力的软件开发工具。

3、高级语言

从最初与计算机交流的痛苦经历中,人们意识到,应该设计一种这样的语言,这种语言接近于数学语言或人的自然语言,同时又不依赖于计算机硬件,编出的程序能在所有机器上通用。经过努力,1 9 5 4年,第一个完全脱离机器硬件的高级语言—F O RT R A N问世了,4 0多年来,共有几百种高级语言出现,有重要意义的有几十种,影响较大、使用较普遍的有F O RT R A N、A L G O L、C O B O L、B A S I C、L I S P、S N O B O L、P L / 1、P a s c a l、C、P R O L O G、A d a**、C + +**、V C、V B、D e l p h i、J AVAGO 等。

  • ​linux©–jvm(C++)-Java应用程序
  • Nginx :c语言
  • redis:C语言
  • mysql:C++语言开发的
  • Tomcat:Java开发的

计算机体系结构与软件开发语言相关推荐

  1. 闲话乱侃——26字母软件开发语言命名是否用完了?

    突然产生了一个想法,排列一下所有的计算机开发语言,26个字母,看看还剩下几个,是不是都用完了? A:ALGOL 60,可以称为A语言了. 1960年ALGOL 60是一种面向问题的高级语言,他离硬件比 ...

  2. 计算机专业及软件开发推荐书籍

    计算机专业推荐书籍: 吾不能有名师指导,但求能精选出最好的书籍,从最好的书中学到东西,可有些许补偿.当然,最好能主动寻找良师益友和专业人士的指导.经典的书都有一个特点: 详尽得当,通俗又不失理论化,信 ...

  3. 大智慧 软件 开发语言_中科闻歌中标深圳税务局智慧税务中台软件开发服务项目...

    近日,中科闻歌中标深圳市税务局"智慧稽查"-智慧税务中台软件开发服务项目,项目将以税务大数据平台为基础,打造智慧中台建设方案,提升数据分析利用的支撑能力,加强AI与业务的深度融合, ...

  4. 主流的软件开发语言介绍

    一:Java 作为跨平台的语言,可以运行在Windows和Unix/Linux下面,长期成为用户的首选.自JDK6.0以来,整体性能得到了极大的提高,市场使用率超过20%.感觉已经达到了其鼎盛时期了, ...

  5. 大智慧 软件 开发语言_智慧工厂培训软件开发流程篇

    为了提高河北钢谷电子商务股份有限公司软件开发的工作效率,明确软件开发过程中相关人员的岗位职责,2020年4月2日下午五点,智慧工厂项目组特开展此次软件开发流程有关培训会议,由纪伟经理担任主讲. 智慧工 ...

  6. 【原创】智能云计算机(云脑)软件开发招商

    王汰非 适用科普科幻,游戏动漫,娱乐休闲,旅游观光等系统数字化.智能数字电脑可以引领人们进入宇宙各层次网上旅游观光,欣赏宇宙天体演化爆发的奇观异景,享受天上人间的微妙地步,科技进步贴近大众引领生活! ...

  7. 软件开发语言大致分类?

    几种程序语言的区别:java语言.python语言.C语言.PHP语言. 1.java语言: java语言曾一度家喻zhi户晓,如今虽然潮流已过,但java跨平台的dao优势以及强大的类库着实不容小觑 ...

  8. 常用桌面端软件开发语言整理

    桌面UI组件/框架 - 开源软件 - Gitee.com C#  原型工具axureRp8:C#.图形库ImageMagick. SharpSvn.SharpZipLib.Newtonsoft.Jso ...

  9. 全球软件开发语言排行榜2009年2月

    唉-,整体上来说对C#有些失望,连PHP都搞不定-- TIOBE Programming Community Index for February 2009 Position Feb 2009 Pos ...

最新文章

  1. DeepI2P:基于深度分类的图像对点云配准
  2. HALCON双目三维重建实验
  3. 匿名函数的this指向为什么是window?
  4. 配置MOSS2007beta2的单机开发环境(下)
  5. 光流 | OpenCV实现简单的optical flow(代码类)
  6. [zjoi2017]仙人掌
  7. strictmath_Java StrictMath hypot()方法与示例
  8. 大工17秋《计算机文化基础》在线测试1,大工18秋《计算机文化基础》在线测试1(满分题).doc...
  9. ASP.NET中的Cookie对象
  10. Go 网络 TCP Client (一)
  11. 服务器VM虚拟机更换序列号,修改vmware虚拟机硬盘序列号id 献给初学者:谈谈如何学习Linux操作系统(3)...
  12. seay php,Seay PHP代码审计工具
  13. 毕业设计 嵌入式 stm32车牌识别系统
  14. 知道一点怎么设直线方程_两点直线方程怎么求
  15. mac tortoisesvn客户端_tortoisesvn mac版下载
  16. 如何使用纯 CSS(border-radius 和 clip)属性画出半圆
  17. FOC控制中Clark/iClark和Park/iPark变换及matpoltlib仿真
  18. 免费的多功能视频格式转换工具XMedia Recode
  19. win10/win1桌面图标锁定,防止桌面图标移动
  20. LruCache的终极解析

热门文章

  1. AUTOCAD学习笔记9:多级放大电路的绘制
  2. 无法使用快速选择,因为没有足够内存(RAM)。
  3. 如何设置 MyEtherWallet 冷钱包
  4. Cortex-A53 从裸机开发_开发笔记(64位)
  5. JAVAWeb企业门户网站
  6. (附源码)spring boot网上求职招聘系统 毕业设计 081201
  7. 英语口语291之每日十句口语
  8. 神经网络方法研究及应用,神经网络优化遗传算法
  9. 5种测试员最常规的等级,最后一种年薪竟然......
  10. 新媒体运营只能是打杂的