中央处理器
复习
- 运算器负责计算,寄存器保存眼前的数据
- PC 与 IR 分别保存下一条地址和当前指令
- 控制器按拍完成取指、译码与执行
TL;DR
- 运算器、寄存器组和控制器合起来,就是 CPU 的核心
- CPU 不断重复取指、译码、执行和写回
- 从这一刻起,机器能自己沿着程序运行
正文
零件终于凑齐了。把 ALU、状态标志、寄存器、PC、IR 和控制器放进同一个盒子,这个盒子就是中央处理器,简称 CPU。
┌──────── CPU ────────┐
指令与数据 ─> 寄存器 <─> ALU │
│ ▲ │ │
│ └── 控制器 ──> 控制信号
└─────────────────────┘
让一条加法指令跑起来
假设 IR 取到“把 A 与 B 相加,结果写进 R”:
- 控制器译出加法操作码
- A、B 寄存器的输出进入 ALU
- ALU 控制码切到加法,得到结果和状态标志
- 下一个时钟边沿,结果写入 R
- 控制器回到取指状态,按 PC 取得下一条指令
没有人再拨开关。时钟每走一拍,控制器就推动数据向前一步。
数据通路与控制通路
数值经过寄存器、ALU 和存储器走的路线,叫数据通路;控制器发出的选择、读写和使能信号走的路线,叫控制通路。
可以把数据想成车,数据通路是道路,控制信号是红绿灯。道路决定能去哪里,红绿灯决定这一刻谁可以走。
我们的第一台自动机器
回头看,第二章画出的运算器、存储器和控制器已经不再是几个陌生方框。每一块都是从逻辑门、触发器和选择器一点点搭起来的。
这台 CPU 已经能正确执行程序。它还不快,也还没和键盘、屏幕见面。在继续连接外界之前,有两篇补充分别讨论怎样缩短取数据的等待、怎样让多条指令重叠前进;不关心性能的读者可以直接去看总线。
思考题
若控制器误把“写入 R”的使能信号提前一拍打开,R 可能收到什么?为什么时序和逻辑功能同样重要?
小结
知识点
- CPU 的核心由运算器、寄存器组和控制器构成
- CPU 循环执行取指、译码、执行与写回
- 数据通路搬运数值,控制通路安排动作
思考题答案(仅供参考)
R 可能收下 ALU 尚未稳定的旧值或中间值。电路即使“最终会算对”,若在错误时刻采样,保存下来的仍会是错误结果。
协议
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。
封面图
设计师 | 南国微雪