目录
一、 计算机硬件的基本组成
1.1 早期冯诺依曼机的结构
- 第一台采用冯诺依曼结构的计算机叫EDVAC
- “存储程序”的概念是指将指令以二进制代码的形式事先输入计算机的主存储器,然后按其在存储器巾的首地址执行程序的第一条指令,以后就按该程序的规定顺序执行其他指令,直至程序执行结束。
-
早期冯诺依曼机的结构如下:
实线代表数据线,虚线代表控制线和反馈线 -
软件和硬件在逻辑上是等效的
-
冯诺依曼机有一下特点:
1)采用“存储程序”的工作方式。
2)计算机硬件系统由
运算器、存储器、控制器、输入设备和输出设备5大部件
组成。
3)指令和数据以同等地位存储在存储器中,形式上没有区别,但计算机应能区分它们。
4)指令和数据均用二进制代码表示。指令由操作码和地址码组成,操作码指出操作的类型,地址码指出操作数的地址。
5)以运算器为中心
1.2 现代计算机的结构
-
以存储器为中心
-
运算器和控制器被整合在一起,称为CPU。所以整个结构其实是这样的:
总结归纳一下,
现代计算机硬件包括主机和I/O设备,主机由CPU和主存(也就是运行内存)构成,I/O设备由输入输出设备和辅存(机械硬盘/固态硬盘)组成,其中,主存和辅存统称为存储器
。
二、计算机的功能部件
2.1 存储器
-
存储器分为
主存储器
(又称内存储器)和
辅助存储器
(又称外存储器)。 -
CPU能够直接访问的存储器是主存储器
。辅助存储器用于帮助主存储器记忆更多的信息,辅助存储器中的信息必须调入主存后,才能为CPU所访问。例如平常我们计算机的软件的数据都是存储在外存里,当我们点击运行软件时,计算机会把软件要运行的数据放入内存里,让CPU进行读取。 -
主存储器的工作方式是按存储单元的地址进行存取,这种存取方式称为
按地址存取方式
。 -
主存的基本组成如下:
-
地址寄存器(MAR)存放访存地址,经过地址译码后找到所选的存储单元。
-
数据寄存器(MDR)用于暂存要从存储器中读或写的信息。
下面为了更好的理解主存,我们以快递站为例
我们平常取快递大多都是先把快递对应的取件码给店员,店员再根据取件码到店里货架上相应的区域去找,找到后把包裹拿出来放到柜台扫码,我们才把包裹拿走。主存工作的原理与快递店很像,我们
把店员想象成MAR,柜台想象成MDR
,把取件码给店员就是CPU存放访存地址,店员根据取件码去相应区域取件就是MAR经过地址译码后找到所选的存储单元,店员把包裹放到柜台扫码就是暂存要从存储器中读或写的信息,最后CPU(我们)取走信息(包裹)。还有就是存储相关的概念,数据在存储体当中是按地址存储的。如图
- 存储单元:每个存储单元存放一串二进制代码
- 存储字(word):存储单元中二进制代码的组合
- 存储字长:存储单元中二进制代码的位数
- 存储元:即存储二进制的电子元件,每个存储元可存1bit
- 多个存储元和线路就构成一个存储单元
由此我们
可以根据MAR的位数推出存储单元的个数
,例如MAR为四位,则存储单元的个数=2
4
个;而
MDR的位数就是存储字长
,因为MDR就是用来暂存存储单元里面的数据的。假设一个主存的MDR为16位,那么就说明
在这个主存储器当中一个字(word)的大小就是16bit
。这里要跟字节(Byte)=8bit作区分,一个字的大小是随计算机的不同而不同的。
2.2 运算器
-
运算器是计算机的执行部件
,用于进行算术运算和逻辑运算 -
运算器的基本组成如下
- ACC:累加器,用于存放操作数,或运算结果。
- MQ:乘商寄存器,在乘、除运算时,用于存放操作数或运算结果。
- x:通用的操作数寄存器,用于存放操作数。
- ALU:算术逻辑单元,通过内部复杂的电路实现算数运算、逻辑运算。
各寄存器存储的数据
运算器的核心是算术逻辑单元
,制造成本也是最高的
2.3 控制器
-
控制器是计算机的指挥中心
,由其“指挥”各部件自动协调地进行工作。 -
控制器的基本组成
- CU(Control Unit):控制单元,分析指令,给出控制信号
-
IR(Instruction Register):指令寄存器,存放当前执行的指令,其内容来自主存的MDR。
指令中的操作码OP(IR)送至CU,用以分析指令并发出各种微操作命令序列;而地址码Ad(IR)送往MAR,用以取操作数
。 - PC(Program Counter):程序计数器,存放当前欲执行指令的地址,有自动加1功能以形成下一条指令的地址
- 一般将运算器和控制器集成到同一个芯片上,称为中央处理器(CPU)
2.4 工作过程
冯·诺依曼结构的模型机
初始:指令、数据存入主存,PC指向第一条指令。
接着从主存中取指令放入IR、PC自动加1,CU分析指令、CU指挥其他部件执行指令。
三、计算机系统层次结构
计算机系统的五层结构如下
我们可以得出一个结论,
下层是上层的基础,上层是下层的扩展
。
值得注意的是,学习操作系统也会有层次的划分,两者都是对的,只不过是看待的角度不一样,计组更多的是从硬件的角度进行分析。我们学习计算机组成原理也更多的是探讨最下面两层的机器应该怎么实现。