是什么

  • 定义指令执行阶段时钟周期数是指 CPU 完成译码后,从执行该指令所规定的具体操作开始,直到将最终结果写回到目的地址(通用寄存器或主存单元)所消耗的 CPU 时钟周期(节拍)总数。

  • 大白话:就是不计前面的“取指”和“译码”,单看干正事(算加减、读写内存)一共需要按几次时钟脉冲。

核心内容

计算执行阶段周期的核心原则:硬件约束定串行,空闲总线找并行

设置暂存器的原因

  • 设置暂存器 Y 的原因:CPU 内部采用单总线结构,同一时刻总线上只能传输一个操作数;而 ALU 是无存储功能的组合逻辑部件,要求两个输入端必须同时提供稳定的输入信号。因此必须先将一个操作数送入暂存器 Y 锁存。

  • 设置暂存器 Z 的原因:ALU 运算结果若直接送上内部总线,会形成回路反馈至输入端 B 引起逻辑冲突和振荡;设置 Z 可以暂存运算结果,在下一拍再输出到总线。

==寄存器编号来自指令的操作数寻址字段,存放在 IR 中==

1. 决定周期数的 3 大硬件铁律

  • 总线互斥(串行约束):单内部总线结构下,同一时钟周期内只能有 1 个部件向总线输出数据(只能有 1 个 Out)

  • 组合逻辑级联(单拍压缩):无时钟锁存的纯组合逻辑可以合并在同一拍完成。例如:ALU 运算 -> SR 移位/直送 -> 经三态门送总线 -> 通用寄存器写入 是一条连贯的硬件通路,仅占用 1 个时钟周期

  • 内外总线并行(重叠加速):当 CPU 正在通过外部系统总线访问存储器()时,CPU 内部总线处于空闲状态,可同时利用内部总线安排一次寄存器间的数据传送(如 )。

2. 标准微操作耗时模板(直接套用)

操作类型硬件动作分解占用节拍数能否与其他操作并行
寄存器直接取数 / 存暂存器1 拍走内部总线,可与外部读写主存并行
读主存(间接寻址/存储器寻址)拍 1:




拍 2:
2 拍拍 1 占内部总线;




拍 2 占外部总线(内部总线可并行其他操作)
写主存(存回内存结果)拍 1:




拍 2:
2 拍(若 MAR 已有有效地址则为 1 拍拍 1 占内部总线;




拍 2 占外部总线
ALU 运算并写回寄存器1 拍走内部总线完成运算及直通写回

3. 指令执行周期通用计算流程图

                [判断源操作数类型]
                  /             \
        (寄存器直接寻址)       (寄存器间接寻址)
               |                     |
        放入暂存器 T/A (1拍)    送地址到 MAR (1拍)
               |                     |
               |               读主存至 MDR (1拍)
               |               [可并行: 另一操作数送 T]
               \                     /
                \                   /
             [执行 ALU 计算与写回]
               /                 \
       (结果写回寄存器)         (结果写回主存)
              |                       |
       组合逻辑直通 (1拍)        结果送入 MDR (1拍)
                                      |
                                发出写信号存入主存 (1拍)

例题

  • 题目

    【2015 统考真题改编】在某 16 位单总线 CPU 中,寄存器间接寻址用 (Rx) 表示,寄存器直接寻址用 Rx 表示。通用寄存器为 ,暂存器为 ,移位寄存器为 ,ALU 结果可经 直送回总线。请分别计算以下两条指令在执行阶段至少需要的时钟周期数,并写出每个周期的微操作流向:

    1. 指令 A:inc R1(功能:

    2. 指令 B:sub R1, R3, (R2)(功能:

  • 分析与过程

    • 指令 A(inc R1

      • 周期 1:将操作数 送入暂存器 ,占用内部总线 1 拍)。

      • 周期 2:ALU 执行加 1 运算,结果经 直送内部总线并打入 ,占用 1 拍)。

      • 总周期数 拍。

    • 指令 B(sub R1, R3, (R2)

      • 周期 1:把间接地址 传送到 ,启动主存读(,占用内部总线 1 拍)。

      • 周期 2:主存读数据到 ;同时内部总线闲置,将另一操作数 传送给暂存器 并行,占用 1 拍)。

      • 周期 3: 数据送内部总线,与 送入 ALU 做减法,结果经 直送写入目的寄存器 ,占用 1 拍)。

      • 总周期数 拍。

  • 规范答案

    • inc R1 执行阶段至少需要 2 个时钟周期

    • sub R1, R3, (R2) 执行阶段至少需要 3 个时钟周期

⚠️ 易错点

Warning

  • 把“ALU 运算”和“写回寄存器”误拆成两拍

    • 在单周期组合逻辑通路中(如 2015 题的 ALU SR 总线 寄存器),数据流动是一气呵成的,算完立即锁存,只需 1 拍。不要强行拆成“算一拍、写一拍”。

  • 忽略外部访存期间的内部总线并行

    • 读内存 的那 1 拍,内部总线是空闲的!如果漏掉 的并行,算成串行 4 拍,就会因未达到“至少需要”的最少周期而扣分。

  • 混淆执行阶段与整条指令周期

    • 审题看清是问“执行阶段至少需要多少周期”还是“整条指令/整个取指到执行至少需要多少周期”。若问整条指令,必须加上公共取指阶段的周期数(通常取指阶段占 3~4 拍)。