第一章 计算机系统概述
1.1 计算机发展历程
1.1.1 什么是计算机系统
- 计算机系统
- 硬件:如主机,外设
- 软件:由具有各类特殊功能的程序组成
- 系统软件:管理整个计算机系统,操作系统,数据库管理系统,标准程序库, 络软件(TCP/IP),语言处理程序(编译程序,把高级语言翻译成机器语言),服务程序
- 应用软件:按任务需要编制的各种程序,如QQ,微信
- 计算机性能的好坏取决于硬件和软件功能的总和。
- 计组是研究硬件在底层是如何协调工作的。
信息化世界
- 计算机硬件能识别的数据
- 计算机硬件唯一能识别的数据是 二进制数0和1
- 计算机硬件是如何识别0和1这两个二进制数的
- 用两种电信 ,分别是低电平/高电平来表示0/1
- 什么是低电平/高电平种电信 可以表示为:
- 低电平表示二进制0
- 高电平表示二级制1
CPU或者内存的金属针脚,是这些硬件用来发送或者接受数据的。
那么这些数据是如何进行交换的板上面的印刷电路,可以理解是电线,用来导电,释放低电平或者是高电平这种电信 ,也就是0或者1。
第一台电子数字计算机:ENIAC,1946年,第二次世界大战快结束时期,美国军方用来计算武器的射程等,军方提出的。请的顾问是 冯诺依曼,采用电子管作为逻辑元件。什么是逻辑元件算机在进行数字计算时候,本质是处理一些电信 ,所谓逻辑元件就是用来处理这些电信 的最小基本单元,这台计算机就是把很多很多的逻辑元件用线路连接起来,从而实现用电路来运算的功能,每个电子管的体积是比较大的,总共使用了1.8万个电子管。
发展阶段 | 时间 | 逻辑元件 | 速度(次/秒) | 内存 | 外存 |
---|---|---|---|---|---|
第一代 | 1946-1957 | 电子管 | 几千-几万 | 贡延迟线、磁鼓 | 穿孔卡片、纸带 |
第二代 | 1958-1964 | 晶体管 | 几万-几十万 | 磁芯存储器 | 磁带 |
第三代 | 1964-1971 | 中小规模集成电路 | 几十万-几百万 | 半导体存储器 | 磁带、磁盘 |
第四代 | 1972-现在 | 大规模、超大规模集成电路 | 上千万-万亿 | 半导体存储器 | 磁带、磁盘、光盘、半导体存储器 |
第一代:电子管时代
贝尔实验室发明了晶体管,晶体管体积比电子管小很多,计算机的体积也变小了,开始出现面向过程的高级语言:FORTRAN。为了让计算机有自我管理的功能,出现了操作系统的雏形。这个阶段制造一台计算机需要几万到几十万个晶体管,那手动把他们焊接到电路板上,那可能就有几百万个焊接点,这个阶段计算机硬件不是很可靠的,如果有一个焊接点出现问题可能导致计算机无法工作。后来就有人发明了集成电路。
第三代:中小规模集成电路时代
随着集成电路制作工艺的提升,进入到这个阶段,芯片技术进步。
英特尔的CPU发展情况:
1.1.3 计算机软件的发展
1.2 计算机硬件的基本组成
1.2.1 早期的冯诺依曼结构
ENIAC这台计算机的问题是每一步的操作需要执行什么指令,每一步都是需要程序员手动去连接线缆告诉计算机,虽然这台计算机的操作速度快,但是程序员每一次都要手动接线告诉计算机怎么做,因此ENIAC的速度就被手动操作耗时给抵消了,所以为了解决这个问题,冯诺依曼第一次提出了存储程序。
ENIAC这台计算机,是程序员说一句,它做一句,而冯诺依曼提出的带存储程序的计算机,把所有要执行的指令一口气告诉计算机,全部放到主存里,然后计算机一条一条执行指令,程序员不需要手动接线。大幅提升计算速度
1.2.2 现代的计算机结构
也是冯诺依曼结构的优化
1.2.3.3 控制器
- 控制器是计算机的指挥中心,由其“指挥”各部件自动协调地进行工作。
- 控制器由程序计数器(PC)、指令寄存器(IR)、控制单元(CU)组成。
- PC用来存放当前欲执行指令的地址,可以自动+1以形成下一条指令的地址,它与主存的MAR之间有一条直接通路。
- IR用来存放当前的指令,其内容来自主存的MDR,指令中的操作码OP(IR)送至CU,用以分析指令并发出各种微操作命令序列,而地址码Ad(IR)送往MAR来取操作数。
- 现代计算机一般是将运算器和控制器集成到同个芯片上,合称为中央处理器,简称CPU。CPU和主存储器共同构成主机,而计算机中主机的其他硬件装置(如I/O)统称为外部设备(简称外设)。也就是说,外设主要包括外存和IO设备。
1.2.3.4 计算机执行过程
计算机的工作过程分为以下几个步骤:
-
把程序和数据装入到主存储器中。
-
从程序的起始地址运行程序。
-
用程序的首地址从存储器中取出第一条指令,经过译码、执行步骤等控制计算机各功能部件协同运行,完成这条指令功能,并计算下一条指令的地址。
-
用新得到的指令地址继续读出第二条指令并执行,直到程序结束为止:每一条指令都是在取指、译码和执行的循环过程中完成的。
下面以取数指令(即将指令地址码指示的存储单元中的操作数取出后送至运算器的ACC中)为例,其信息流程如下:
-
取指令:PC→MAR→M→MDR→IR
-
分析指令:OP(IR)→CU
-
执行指令:Ad(IR)→MAR→M→MDR→ACC
此外,每取完一条指令,还必须为取下条指令作准备,形成下一条指令的地址,即(PC)+1。
注意:PC指程序计数器PC中存放的内容。PC→MAR应理解为(PC)→MAR,即程序计数器中的值经数据通路送到MAR,也即表示数据通路时括 可省略(因为只是表示数据流经的途径,而不强调数据本身的流动)。但是运算时括 不能省略,即(PC)+1→PC不能写为PC+1→PC。
1.3 计算机系统层次结构
1.4 计算机性能指标
1.4.1 存储器的性能指标
CPI:Clook cyclc Per Instruction,执行一条指令所需的时钟周期数。
同一个CPU,执行不同的指令,CPI不同,甚至是相同的指令,同一个CPU执行多次,CPI也会不同。比如CPU 执行取数指令,跟主存的状态也有关,如果主存负荷较大,那取数时间也会变长,也就是需要更多的时钟周期。所以执行一条执行需要花多少个时钟周期,这个问题我们放在微观视角来看,是毫无意义的,因为影响CPU指标的因素太多,我们一般讨论执行一条执行需要花多少个时钟周期的时候,讨论的是平均值,执行一条指令的耗时=CPI * CPU时钟周期
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!