计算机结构的简化模型
CPU 与 存储器(主存、内存)之间依靠三条总线传递信息。
- 控制总线 传递控制信号,如读、写、完成等;
- 地址总线 连接 CPU 与存储器两侧各自的 MAR,Memory Address Register;
- 数据总线 连接 CPU 与存储器两侧各自的 MDR,Memory Data Register。
存储器
存储器中有若干个存储单元。
存储单元的 位宽 由设计计算机时对存储器的编址方法确定。如果存储器按字节编址,啧每个存储单元存放 8 位二进制数。
存储单元的地址是唯一的,不同存储单元地址互不相同。
如果地址总线宽度为 n,则 CPU 能管理的存储单元最多为 $$2^n$$ 个。
数据总线宽度一般为存储单元位宽的整数倍。
CPU
控制器
控制器用于控制计算机各部件完成取指令、分析指令和执行指令等功能,主要组成部分如下:
- 指令寄存器(IR,Instruction Register) 存放“正在执行或者即将执行的指令”
- 程序计数器(PC,Program Counter) 存放“下一条指令的存储单元地址”,具有自动增量计数的功能
- 存储器地址寄存器(MAR,Memory Address Register) 在访存时,用于存放“存储单元的地址”
- 存储器数据寄存器(MDR,Memory Data Register) 在访存时,用于存放“对存储单元读/写的数据”
- 指令译码部件 对 IR 中的指令进行译码,以确定 IR 中存放的是哪一条指令
- 控制电路 产生控制信号,在时序脉冲的同步下,控制各个部件的动作
运算器
运算器用于 算术运算 和 逻辑运算。
常见算术运算:加、减、乘、除
常见逻辑运算:非、与、或
核心部件 ALU 用于完成算术运算和逻辑运算,它从端口 X 和端口 Y 获取数据,将运算结果送到端口 Z,将运算结果的状态(零/正负/进位/溢出等)送到标志寄存器。
在运算器中参与运算的数据,从根源上来说都来自于存储器,但存储器与 CPU 之间通信效率低下。因此在 CPU 还有一些 通用寄存器 用于临时存放数据。
内部总线 用于在 CPU 内部各个部件之间传递数据。