进阶 #hardware#cpu
寄存器
寄存器是由多个D触发器组成的快速存储单元,用于暂存CPU中的数据和状态
什么是寄存器?
寄存器(Register) 是 CPU 中最靠近运算单元的存储部件。一个寄存器由 N 个 D 触发器 并排组成,每个触发器存储 1 位数据。
例如,一个 8 位寄存器由 8 个 D 触发器构成,可以存储 0~255 的数值。
寄存器结构
graph LR
D0[D₀] --> FF0[FF]
D1[D₁] --> FF1[FF]
D2[D₂] --> FF2[FF]
D3[D₃] --> FF3[FF]
D4[D₄] --> FF4[FF]
D5[D₅] --> FF5[FF]
D6[D₆] --> FF6[FF]
D7[D₇] --> FF7[FF]
CLK[CLK 时钟] --> FF0
CLK --> FF1
CLK --> FF2
CLK --> FF3
CLK --> FF4
CLK --> FF5
CLK --> FF6
CLK --> FF7
FF0 --> Q0[Q₀]
FF1 --> Q1[Q₁]
FF2 --> Q2[Q₂]
FF3 --> Q3[Q₃]
FF4 --> Q4[Q₄]
FF5 --> Q5[Q₅]
FF6 --> Q6[Q₆]
FF7 --> Q7[Q₇]
所有触发器共享同一个时钟信号,同时采样输入,同时更新输出。
寄存器的功能
- 存储数据:保存计算过程中的中间值
- 暂存地址:保存内存地址或 I/O 端口地址
- 移位操作:寄存器中的位可以左移或右移
CPU 中的常见寄存器
💡 下面列出的这些寄存器名称,你现在看到可能会有点陌生。没关系——暂时不需要记住它们。它们会在后续的 CPU 章节中一一出现,到时候你会自然熟悉。
| 寄存器 | 名称 | 用途 |
|---|---|---|
| PC | 程序计数器 | 存放下一条指令的内存地址 |
| IR | 指令寄存器 | 存放当前正在执行的指令 |
| ACC | 累加器 | 存放算术运算的结果 |
| SP | 栈指针 | 指向当前栈顶 |
| RA | 返回地址 | 存放函数调用的返回地址 |
寄存器 vs 内存
| 特性 | 寄存器 | 内存(RAM) |
|---|---|---|
| 速度 | 最快(1个时钟周期) | 较慢(几十到几百周期) |
| 容量 | 极小(几十到几百字节) | 大(GB级) |
| 价格 | 极高 | 较低 |
| 位置 | CPU 内部 | CPU 外部 |
寄存器在 CPU 中的角色
寄存器是 CPU 数据通路的枢纽:
- 从内存读取指令到 IR(指令寄存器)
- 从寄存器读取数据送到 ALU 计算
- 计算结果写回寄存器(ACC)
- PC 自动递增指向下一条指令
小结
寄存器是计算机中最快的存储部件。正是 D 触发器的同步特性,使得 CPU 中成亿的电路可以按照统一的时钟节拍有序工作。