内容参照王道考研计算机组成原理课程视频。
在学习操作系统之前有必要对计算机硬件的组成以及各部分的功能有较清晰的认识,尤其操作系统中内存管理部分对硬件的理解要求较高。针对这部分知识先大致了解基本概念,后面项目中用到,再深入学习。
1. 概述
1.1 早期冯诺依曼机
“存储程序”的概念是指将指令以二进制代码的形式事先输入计算机的主存储器(内存),然后按其在存储器中的首地址执行程序的第一条指令,之后按该程序的规定顺序执行其他指令,直至程序执行结束。
存储器即常说的内存。
上述的过程可以这样描述:原始的数据经过输入设备第一次处理(转化成二进制数据)送到运算器加工成为计算结果,再由输出设备输出我们能看懂的结果(翻译二进制数据),而这个过程由控制器协调控制。但这样存在一个问题,只有当一次计算完成,人拿到计算结果才能进行下一次输入计算,效率很低,所以再增加一个部件存储器,这样可以把计算的中间结果暂时存放在存储器中,直至输出最终结果。在上面的图中,可以发现一条数据线连接存储器和控制器,这个传到控制器的数据就是指令(计算步骤、程序),它告诉控制器该如何控制。
冯·诺依曼计算机的特点:
1.计算机由五大部件组成;
2.指令和数据以同等地位存于存储器,可按地址寻访;
3.指令和数据用二进制表示;
4.指令由操作码和地址码组成;
5.存储程序;
6.以运算器为中心(输入/输出设备与存储器之间的数据传送通过运算器完成)。
1.2 现代计算机结构
以运算器为中心的早期冯诺依曼计算机,运算器既要负责计算还要负责把输入设备传过来的数据和计算步骤搬到存储器,效率也不高,所以现代计算机结构以存储器为中心,输入的数据可以直接存在存储器,但需要注意由于运算器和存储器都由控制器指挥,也可能导致运算器和存储器不能同时工作,但相比之下效率已有很大提升。
1.3 小结
2. 主要功能部件介绍
2.1 主存储器
2.1.1 存储器的种类
2.1.2 存储器的结构
主存储器即内存,可以想象成一个大楼,内存中有很多单元相当于大楼的房间,房间上号码相当于内存单元的地址,通过这个地址我们就可以找到指定的内存单元。内存中通常以一个字节Byte(8位bit)为一个内存单元进行编址。
MAR:存储地址寄存器( 根据里面存放的地址访问主存内某个位置的数据) ;MDR:存储数据寄存器(存放着准备写入或来自主存内某个位置的数据);这两个寄存器一般集成在CPU中。
**下图是实现输出某个单元数据的电路结构。**当对应地址单元的线路接通,就可以访问其中的八位数据。
译码器的作用是将有限的地址线传送的数据,映射成多种状态,例如如果有32根地址线,那么所能对应 2 32 = 2 2 × 2 30 = 4 G 2^{32}=2^2\times 2^{30}=4G 232=22×230=4G种状态,也就有4GB的寻址能力。所以你电脑的内存是多大的:)。
下图中D0 ~D7表示数据输出端,一次可以输出8位的数据;A0 ~A12一共13位数据输出端,有 2 3 × 2 10 = 8 k 2^{3} \times 2^{10}=8k 23×210=8k的寻址能力;A13 ~A14一共2位数据输出端,有 2 2 = 4 2^2=4 22=4种状态,可以控制4个扩展主存的选取。
2.1.3 练习题