计算机系统的发展史、基本组成、工作原理
文章目录
1 计算机的发展史
1.1 第一台通用电子计算机的诞生
1946年,第1台通用电子计算机 ENIAC诞生:
- 由电子真空管组成
- 美国宾夕法尼亚大学研制
- 用于解决复杂弹道计算问题
- 5000次加法/s –平方、立方、sin、cos等
- 用十进制表示信息并运算
- 采用手动编程,通过设置开关和插拔电缆来实现
Electronic Numerical Integrator And Computer:电子数字积分计算机。
1.2 冯诺依曼的故事
- 1944年,冯·诺伊曼参加原子弹的研制工作,涉及到极为困难的计算。
- 1944年夏的一天,诺伊曼巧遇美国弹道实验室的军方负责人戈尔斯坦,他正参与ENIAC的研制工作。
- 冯·诺依曼被戈尔斯坦介绍加入ENIAC研制组,1945年,他们在共同讨论的基础上,冯·诺伊曼以“关于EDVAC的报告草案”为题,起草了长达101页的总结报告,发表了全新的“存储程序通用电子计算机方案”。
- 一向专搞理论研究的普林斯顿高等研究院批准让冯·诺依曼建造计算机,其依据就是这份报告。
- Electronic Discrete Variable Automatic Compute(电子离散变量自动计算)。
1.3 现代计算机的原型
1946年,普林斯顿高等研究院(the Institute for Advance Study at Princeton,IAS )开始设计“存储程序”计算机,被称为IAS计算机(1951年才完成,并不是第一台存储程序计算机,1949年由英国剑桥大学完成的EDSAC是第一台)。
- 在那个报告中提出的计算机结构被称为冯·诺依曼结构。
- 冯·诺依曼结构最重要的思想是“存储程序(Stored-program)”工作方式:任何要计算机完成的工作都要先被编写成程序,然后将程序和原始数据送入主存并启动执行。一旦程序被启动,计算机应能在不需操作人员干预下,自动完成逐条取出指令和执行指令的任务。
- 冯·诺依曼结构计算机也称为冯·诺依曼机器(Von Neumann Machine)。
- 几乎现代所有的通用计算机大都采用冯·诺依曼结构,因此,IAS计算机是现代计算机的原型机。
IAS计算机结构大致如下:
- 应该有个主存,用来存放程序和数据。
- 应该有一个自动逐条取出指令的部件。
- 还应该有具体执行指令(即运算)的部件。
- 程序由指令构成。
- 指令描述如何对数据进行处理。
- 应该有将程序和原始数据输入计算机的部件。
- 应该有将运算结果输出计算机的部件。
2 冯·诺依曼结构
2.1 冯·诺依曼结构计算机模型
早期,部件之间用分散方式相连。现在,部件之间大多用总线方式相连。
2.2 冯·诺依曼结构的主要思想
- 计算机应由运算器、控制器、存储器、输入设备和输出设备五个基本部件组成。
- 各基本部件的功能是:
- 存储器不仅能存放数据,而且也能存放指令,形式上两者没有区别,但计算机应能区分数据还是指令;
- 控制器应能自动取出指令来执行;
- 运算器应能进行加/减/乘/除四种基本算术运算,并且也能进行一些逻辑运算和附加运算;
- 操作人员可以通过输入设备、输出设备和主机进行通信。
- 内部以二进制表示指令和数据。每条指令由操作码和地址码两部分组成。操作码指出操作类型,地址码指出操作数的地址。由一串指令组成程序。
- 采用“存储程序”工作方式。
3 现代计算机结构
3.1 现代计算机结构模型
计算机中最基本的部件:
- CPU:中央处理器;
- PC:程序计数器;
- MAR:存储器地址寄存器;
- ALU:算术逻辑部件;
- IR:指令寄存器;
- MDR:存储器数据寄存器;
- GPRs:通用寄存器组(由若干通用寄存器组成,早期就是累加器)。
3.2 计算机是如何工作的
类似“存储程序”工作方式。
先想象一下妈妈是怎样做一桌你喜欢(指定)的菜的?
- 厨房-CPU,你妈-控制器,盘-GPRs,锅灶等-ALU ,架子-存储器。
做菜前:
- 原材料(数据)和菜谱(指令)都按序放在厨房外的架子(存储器)上, 每个架子有编号(存储单元地址)。
- 菜谱上信息:原料位置、做法、做好的菜放在哪里等
- 例如,把10、11号架上的原料一起炒,并装入3号盘
- 然后,我告诉妈妈从第5个架上(起始PC=5)指定菜谱开始做
开始做菜:
- 第一步:从5号架上取菜谱(根据PC取指令)
- 第二步:看菜谱(指令译码)
- 第三步:从架上或盘中取原材料(取操作数)
- 第四步:洗、切、炒等具体操作(指令执行)
- 第五步:装盘或直接送桌(回写结果)
- 第六步:算出下一菜谱所在架子号6=5+1(修改PC的值)继续做下一道菜(执行下一条指令)。
类似的,计算机工作方式如下:
程序由指令组成(菜单由菜谱组成)。
程序在执行前:
- 数据和指令事先存放在存储器中,每条指令和每个数据都有地址,指令按序存放,指令由OP、ADDR字段组成,程序起始地址置PC(原材料和菜谱都放在厨房外的架子上, 每个架子有编号。妈妈从第5个架上指定菜谱开始做)
开始执行程序:
- 第一步:根据PC取指令(从5号架上取菜谱)
- 第二步:指令译码(看菜谱)
- 第三步:取操作数(从架上或盘中取原材料)
- 第四步:指令执行(洗、切、炒等具体操作)
- 第五步:回写结果(装盘或直接送桌)
- 第六步:修改PC的值(算出下一菜谱所在架子号6=5+1)继续执行下一条指令(继续做下一道菜)
3.3 计算机的基本组成与基本功能
什么是计算机:
- 计算机是一种能对数字化信息进行自动、高速算术和逻辑运算的处理装置。
计算机的基本部件及功能:
- 运算器(数据运算):ALU、GPRs、标志寄存器等
- 存储器(数据存储):存储阵列、地址译码器、读写控制电路
- 总线(数据传送):数据(MDR)、地址(MAR)和控制线
- 控制器(控制):对指令译码生成控制信号
计算机实现的所有任务都是通过执行一条一条指令完成的!
4 指令和数据
程序启动前:
- 指令和数据都存放在存储器中,形式上没有差别,都是0/1序列。
采用”存储程序“工作方式:
- 程序由指令组成,程序被启动后,计算机能自动取出一条一条指令执行,在执行过程中无需人的干预。
指令执行过程中:
- 指令和数据被从存储器取到CPU,存放在CPU内的寄存器中,指令在IR中,数据在GPR中。
指令中需给出的信息:
- 操作性质(操作码)
- 源操作数1 或/和 源操作数2 (立即数、寄存器编号、存储地址)
- 目的操作数地址 (寄存器编号、存储地址)
- 存储地址的描述与操作数的数据结构有关!
参考资料: