flowchart TD
A["一条指令怎么落地?"] --> B["指令周期 = 若干机器周期<br/>取指 → 间址 → 执行 → 中断"]
B --> C["数据通路:微操作序列<br/>PC→MAR→MDR→IR …"]
C --> D["控制器发控制信号"]
D --> D1["硬布线:组合逻辑<br/>快、难改 → RISC"]
D --> D2["微程序:控制存储器 CS<br/>慢、规整 → CISC"]
A --> E["部件闲置 → 流水线五段<br/>IF/ID/EX/MEM/WB"]
E --> F1["结构冒险 → 资源分离"]
E --> F2["数据冒险 → 转发 + 气泡"]
E --> F3["控制冒险 → 分支预测"]
B --> G["异常与中断<br/>内:缺页/除0/自陷<br/>外:时钟/外设"]
核心概念:
| 概念 | 要点 | 易考点 |
|---|---|---|
| 指令周期 | 取一条指令并执行完的全部时间 = 若干机器周期 × 若干时钟周期 | 每个指令周期 ≥ 一个时钟周期;取指必访存(2011-19);NOP 也令 PC 自增(2011-19 C 项陷阱) |
| 中断周期 | 当前指令执行周期之后、由中断隐指令完成:关中断、保存断点(PC/PSW)、送入口 | 中断周期属于当前指令的指令周期,不属于中断服务程序;保存断点 = 硬件,保存现场(通用寄存器)= 软件(2024-21) |
| 微命令/微操作/微指令/微程序 | 控制线 → 动作 → 同周期微命令集合 → 解释一条机器指令的微指令序列 | 微程序存于 CS(控制存储器,CPU 内 ROM);MM 存指令和数据、CS 存微指令(2017-18) |
| 五段流水 | IF / ID / EX / MEM / WB;时钟周期 = 最长段 + 流水段寄存器延时 | 2009-18(≥90ns)、2018-20(80+20=100ps) |
| 三类数据相关 | RAW(写后读,真相关)、WAR、WAW | 408 主要考 RAW |
| 转发(旁路) | 把 EX/MEM 段的 ALU 结果直接送回 EX 输入,不等写回 | load-use 无法纯靠转发,必须插 1 个气泡(2024-19) |