CPU cycle lab · simplified model

取指—译码—执行循环

一次只推进一个微阶段,观察程序计数器 PC、指令寄存器 IR、寄存器 R1、ALU 与输出端口怎样协作。

00 MICRO STEPS

下一步:取指

CPU 指令循环实验台

  1. 1 取指 下一步
  2. 2 译码 等待
  3. 3 执行 等待
  4. 4 更新 PC 等待

指令内存

MEMORY
  1. 00 LOAD R1, 3 PC
  2. 01 ADD R1, 4
  3. 02 MUL R1, 2
  4. 03 STORE R1, OUT
  5. 04 HALT

PC 指向下一条要取出的指令;虚线框表示当前仍保留在 IR 中的指令。

控制器与运算通路

CPU CORE
简化 CPU IDLE
IR 当前指令 尚未取指
操作码
目标
操作数

ALU / 数据动作

等待指令

控制信号

  • 等待时钟

本阶段微操作 按“单步执行”开始取指

等待第 1 次取指

PC 目前为 00。下一次时钟微步骤会把内存地址 00 的指令复制到 IR,但还不会改变 R1。

读懂状态变化

四个阶段,各自只承担一件事

  • 取指:用 PC 找到内存中的指令,并复制到 IR。
  • 译码:拆出操作码、目标和操作数,决定需要哪些控制信号。
  • 执行:ALU 计算,或让寄存器、输出端口真正发生写入。
  • 更新 PC:顺序程序通常执行 PC + 1;分支指令则可能改写为别的地址。

这是为了看清因果关系而设计的简化 CPU。真实处理器常用流水线、缓存、乱序执行等技术让多个阶段重叠,但“指令从哪里来、如何被解释、怎样改变状态”这条主线不变。

快速检验:执行 STORE R1, OUT 时,哪一项会被写入?