前言
计算机这个概念实际上是个逻辑上的概念,只规定了机器的功能,并没有规定我们要用什么方法来做这个机器。比如之前的蒸汽计算机、机械计算机等,所以计算机不一定都是电子数字的。
计算机硬件的发展
发展阶段 | 时间 | 逻辑元件 | 速度(次/秒) | 内存 | 外存 |
---|---|---|---|---|---|
第一代 | 1946-1957 | 电子管 | 几千-几万 | 汞延迟线、磁鼓 | 穿孔卡片、纸带 |
第二代 | 1958-1964 | 晶体管 | 几万-几十万 | 磁芯存储器 | 磁带 |
第三代 | 1964-1971 | 中小规模集成电路 | 几十万-几百万 | 半导体存储器 | 磁带、磁盘 |
第四代 | 1972-现在 | 大规模、超大规模集成电路 | 上千万-万亿 | 半导体存储器 | 磁盘、磁带、光盘、半导体存储器 |
主要分为四个时代:电子管时代 --> 晶体管时代 --> 中小规模集成电路时代 --> 大规模、超大规模集成电路时代
- 电子管时代:第一台电子数字计算机:ENIAC。此时面向机器。
- 晶体管时代:第一台使用集体管现路的计算机:TRADIC。出现了FORTRAN语言,有了操作系统的雏形。此时面向过程。
- 中小规模集成电路时代:高级语言迅速发展,开始有了分时操作系统。
- 大规模、超大规模集成电路时代:微处理器、并行、流水线、高速缓存、虚拟存储器等。
主要还是逻辑元件推动了时代的发展~
计算机硬件的基本组成
冯.诺依曼计算机
ENIAC最一开始是通过手动接线来控制计算机的,效率很低。之后冯.诺依曼提出“存储程序”的概念,将指令以二进制数据的形式存储到计算机的主存储器(主存、即内存条)中,然后按照其在主存储器中的首地址开始执行第一条指令,接着按照顺序来完成剩下的指令,直到所以代码执行完成为止。之后就有了第一台采用冯诺依曼机构的计算机EDVAC(Electronic Discrete Variable Automatic Computer)。
冯.诺伊曼计算机的特点:
- 计算机硬件系统由五大部件组成:运算器、存储器、控制器、输入设备和输出设备;
- 指令和数据以同等的地位存储在存储器中,并且可以按地址寻址;
- 指令和数据均以二进制代码表示;
- 指令由操作码和地址码组成(操作码指明了这条指令需要执行什么操作:
+
-
*
/
,而地址码指明了这些操作的数据存放在内存中的什么地址)(程序的执行过程中就是根据地址码对特定的内存单元进行访存操作) - 指令在存储器中按照顺序进行存放;一般来说按照顺序执行指令,但在特定情况下,也可以改变执行顺序。
- 早期的冯.诺伊曼计算机以运算器为中心,输入/输出设备以运算器和存储器进行数据的传输。
现代计算机
在微处理器出现之前,运算器和控制器还是分开的,而且存储器的容量较小,此时的计算机是以存储器为中心的,结构如下图所示。
软件和硬件在逻辑上是等效的。为了实现更多位数的计算,可以通过买新的运算器来实现(硬件实现),也可以通过设计计算指令,放到存储器当中进行实现(软件实现)。因为他们俩都实现了相同的任务,所以这两者在逻辑上是等效的。
注意:是逻辑上的等效!不是实际意义上的等效!一个8位数据的计算,对于8位的运算器,计算时间就是一次电流通过的时间,但是对于4位的运算器,需要进行指令的切断,需要运算两次,计算时间是不同的,当然还有其他方面的区别。
之后随着集成电路的发展,并且运算器和控制器结构式类似的,联系也比较紧密,所以在实际设计的时候会将两者做在一块芯片上,就叫做CPU。此时也是以以存储器为中心,其中有一个原因就是因为运算器和I/O读取写入数据的不一致,所以I/O操作要尽可能的避免CPU在I/O设备和存储器之间,以提高系统的整体运行效率。