Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

中央处理器

复习

  • 指令系统基础:指令由操作码和操作数组成,可存入存储器
  • 程序与程序计数器:程序是指令序列,PC 保存下一条指令地址
  • 控制器:控制器按时序发出控制信号,协调各部件

TL;DR

  • 运算器、寄存器组和控制器合起来,就是 CPU 的核心
  • CPU 不断重复取指、译码、执行和写回
  • 从这一刻起,机器能自己沿着程序运行

正文

  零件终于凑齐了。把 ALU、状态标志、寄存器、PC、IR 和控制器放进同一个盒子,这个盒子就是中央处理器,简称 CPU(Central Processing Unit)。

            ┌──────── CPU ────────┐
指令与数据 ─> 寄存器 <─> ALU      │
            │   ▲        │        │
            │   └── 控制器 ──> 控制信号
            └─────────────────────┘

  值得一提的是,这个盒子里没有任何一个新零件。它只是把我们前面亲手搭过的部件,重新组织在了一起。

让一条加法指令跑起来

  假设 IR 取到“把 A 与 B 相加,结果写进 R”:

  1. 控制器译出加法操作码
  2. A、B 寄存器的输出进入 ALU
  3. ALU 控制码切到加法,得到结果和状态标志
  4. 下一个时钟边沿,结果写入 R
  5. 控制器回到取指状态,按 PC 取得下一条指令

  没有人再拨开关,也没有人再抄中间结果。时钟每走一拍,控制器就推动数据向前一步。机器第一次真正开始接管自己。

数据通路与控制通路

  数值经过寄存器、ALU 和存储器走的路线,叫数据通路;控制器发出的选择、读写和使能信号走的路线,叫控制通路。

  可以把数据想成车,数据通路是道路,控制信号是红绿灯。道路决定能去哪里,红绿灯决定这一刻谁可以走。两者缺一不可:没有道路,车无处可去;没有红绿灯,车就会在路口撞成一团。

我们的第一台自动机器

  回头看看,最初画在纸上的运算器、存储器和控制器,如今已经不是几个陌生方框了。每一块,都是从逻辑门、触发器、选择器一点点搭起来的。

  这台 CPU 已经能正确执行程序。它还不快,也还从未与键盘、屏幕见过面。在继续连接外界之前,有两篇补充分别讨论怎样缩短取数据的等待、怎样让多条指令重叠前进;不关心性能的读者可以直接去看总线。

思考题 1

  若控制器误把“写入 R”的使能信号提前一拍打开,R 可能收到什么?为什么时序和逻辑功能同样重要?

思考题 2

  数据通路和控制通路缺一不可。如果只保留数据通路、让控制器停摆,机器会是什么状态?

小结

知识点

  • CPU 的核心由运算器、寄存器组和控制器构成
  • CPU 循环执行取指、译码、执行与写回
  • 数据通路搬运数值,控制通路安排动作

参考资料

  1. Wikipedia(zh):中央处理器:CPU 的组成与工作过程
  2. Wikipedia(zh):数据通路:数值流动的通道

思考题答案(仅供参考)

思考题 1

  R 可能收下 ALU 尚未稳定的旧值或中间值。电路即使“最终会算对”,若在错误时刻采样,保存下来的仍会是错误结果。所以逻辑正确只是及格线,在正确的时间做正确的事同样决定成败。

思考题 2

  数据通路还在,但没有任何信号去驱动它:寄存器不会收到写使能,ALU 不会知道该做哪种运算,PC 也不会更新。整台机器就像一条建好却没有红绿灯和交通信号的路,车都停在原地。可见控制通路负责让静止的结构真正“动起来”。

协议

  本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。

封面图

设计师 | 南国微雪