前言
文章为自己在观看视频预习计算机组成原理后写的笔记,在笔记中不可避免会出现错误,请读者见谅和反馈。
注:文章中出现的图片来至王道考研的视频
计算机硬件的基本组成
知识结构图:
早期冯诺依曼机
冯·诺依曼提出“存储程序”的概念:
- 将指令以二进制代码的形式事先输入计算机的主存储器(即内存)中,然后按其在存储器中的首地址执行程序的第一条指令,以后就按该程序的规定顺序执行其他指令,直至程序执行结束。
早期冯诺依曼机结构:
在计算机系统中,软件和硬件在逻辑上是等效的。
因为对于同一个功能来说,既可以用软件来实现,也可以用硬件来实现,只不过成本和效率有所不同。
冯诺依曼计算机的特点:
- 计算机由五大部件组成(输入设备、输出设备、存储器、控制器和运算器)
- 指令和数据以同等地位存于存储器,可按地址寻访
- 指令和数据用二进制表示
- 指令由操作码和地址码组成
- 存储程序
- 以运算器为中心(输入/输出设备与存储器之间的数据传送通过运算器完成)
现代计算机
现代计算机结构:
现代计算机以存储器为中心
CPU = 运算器 + 控制器
现代计算机结构简要图:
- 注意区分这里的主机和我们日常生活中所说的主机
- 主存指的是“运行内存”,辅存一般指的是“硬盘”或“机身存储”
各个硬件的工作原理
主存储器的基本组成
主存储器构成:
- MAR(Memory Address Register):存储地址寄存器
- MDR(Memory Data Register):存储数据寄存器
存储体:像一个大货柜,里面有很多个存储柜(存储单元),存储柜存储着一个个“数据”,每个存储柜都有一个唯一的“编号”——地址。
- 存储单元:每个存储单元存放一串二进制代码
- 存储字(word):存储单元中二进制代码的组合
- 存储字长:存储单元中二进制代码的位数
- 存储元:即存储二进制的电子元件,每个存储元可存1bit
MAR:存储的内容就是这个数据的“编号”,这样就可以根据MAR里面存储的“编号”找到对应的数据了。
MAR位数反映存储单元的个数。
MDR:相当于一个中转站,你想要从存储体取出的数据会被放到MDR中暂存(只是存储体中这个数据的一个副本,存储体中的这个数据还在),CPU就可以从MDR这里取走这个数据;
存数据进入存储体也是一样,MDR暂存CPU想要存入的数据,然后存储器就可以把MDR中的数据存入存储体中。
MDR位数 = 存储字长
运算器的基本组成
构成及说明:
控制器的基本组成
构成及说明:
完成一条指令的过程:
- 取指令:根据PC里的指令地址,从内存中取出对应的指令,并把取出的指令放到IR中
- 分析指令:CU分析IR中指令的功能
- 执行指令:CU控制其他部件配合完成指令的具体执行
计算机的工作过程
//c语言语句
void main()
{
int a = 2, b = 3, c = 1, y = 0; //1
y = a * b + c; //2
}
把这段代码编译装入主存:
- 在这里,存储字长为16bit
工作过程(重点):
这里只解释一条指令的工作过程中,完整的过程可以自行查找,这里简要了解一下过程就可以了
初始:(PC) = 0,指向第一条指令的存储位置。( (PC)表示PC的内容)
- (PC)写入MAD,导致(MAD) = 0
- 主存储器根据MAR找到0号地址对应的数据
- 主存储器把上一步找到的数据放到MDR中,导致(MDR) =
000001 0000000101
- MDR中的这条指令通过数据总线,放入到IR中,导致(IR) =
000001 0000000101
- 指令的操作码
000001
传送到CU,CU分析后得知这是“取数”指令 - 指令的地址码
0000000101
送到MAR,导致(MAR) = 5 - 主存储器根据MAR找到5号地址对应的数据
- 主存储器把上一步找到的数据放到MDR中,导致(MDR) =
0000000000000010
= 2 - MDR中的数据传送到ACC中,导致(ACC) =
0000000000000010
= 2
取指令:(1 ~ 4),完成后PC自动加1,指向下一条指令
分析指令:(5)
执行指令:(6 ~ 9)