计算机组成原理第 5 章:中央处理器总览

这一页只负责导航,不装内容。每个节号点进去就是那一节的完整讲义。

第 4 章交出了一份指令集——那是契约,规定了”必须能做什么”。第 5 章造出兑现这份契约的机器。

全章结构不是七个二级节并列,而是两条主线:

主线一(5.1 → 5.4)控制信号溯源链。

指令操作码控制器译码一组控制信号数据通路上的一个开关一次微操作

链上每一环各占一节:5.1 摆出参与的部件和寄存器 → 5.2 说明这条链每走一轮叫一个指令周期 → 5.3 讲链的末端(数据通路)长什么样 → 5.4 讲链的中段(控制器)怎样把操作码变成信号。5.5 是这条链的例外分支——控制流不再由指令决定,而是被异常或中断打断。

这条链有一句可直接用于答题的判据:控制部件不生产数据。 图上的线只有两种——传”值”的走数据通路,传”开合命令”的走控制信号,而控制线的起点只能是控制部件的输出端。5.3.4 那道真题里最容易搞反的一问,靠的就是它。

主线二(5.6 → 5.7)并行度的三个层次。

指令级流水线、超标量数据级、向量、线程级硬件多线程、多核、多处理器

判据统一成一句:复制了什么、共享了什么。 SIMD 复制运算部件、共享控制器;硬件多线程正好镜像——复制线程状态、共享运算部件;多核两者都复制。这张三行表在 5.7.2 收口。

前五节回答”怎样把一条指令做对”,后两节回答”怎样把很多条指令做快”——这是本章最粗的一刀。

另有一条贯穿全章的取舍反复出现五次:要整齐就得按最慢的来。 机器周期按访存时间定(5.2.1)、单周期按最慢指令定(5.2.3)、同步控制按最慢操作定(5.4.2)、流水段按最慢段定(5.6.2),以及运算指令也要陪着走完空转的 MEM 段(5.6.2)。五处是同一个道理,代价形式各不相同。

章节导航

5.1 CPU的功能和基本结构 ✅

节页面一句话
5.1.1CPU 的功能五项功能 = 本章七节的目录;指令控制管指令间,操作控制管指令内
5.1.2CPU 的基本结构数据线 / 控制线二分;控制部件不生产数据;暂存器为什么必须存在
5.1.3CPU 的寄存器「用户可见」= ISA 状态;隐含 ≠ 不可见;位数各取自哪里

5.2 指令执行过程 ✅

节页面一句话
5.2.1指令周期三个时间层次倍数不固定;只有取指和执行是必有阶段
5.2.2指令周期的数据流一张”MAR 装谁的地址”表读完四个阶段
5.2.3指令执行方案三方案 = 对 与 的三种取舍, 相同

5.3 数据通路的功能和基本结构 ✅

节页面一句话
5.3.1数据通路的功能兑现 4.1.5 的伏笔:指令类型表 = 通路功能清单;主频由最长组合路径定
5.3.2数据通路的组成译码器输出控制、MUX 输出数据;rd 接译码器、rs 接 MUX
5.3.3数据通路的基本结构三结构功能相同、拍数不同;“直送”说明传送必须穿 ALU
5.3.4数据通路的操作举例读图五步 + 排拍三规则;2009 年单总线真题六问全解

5.4 控制器的功能和工作原理 ✅

节页面一句话
5.4.1控制器的结构和功能CU 三类输入缺一不可;三个”地址”按索引哪个存储体分家
5.4.2硬布线控制器一根控制线 = 一个布尔表达式;硬布线里没有”字段”
5.4.3微程序控制器互斥字段 ;垂直型 = 迷你机器指令,慢在多一层译码

5.5 异常和中断机制 ✅

节页面一句话
5.5.1异常和中断的基本概念判据是**“重跑一遍还会不会在同一条指令上发生”**;回调不是中断
5.5.2异常和中断的分类三类异常按**“返回到哪”**反推;断点归硬件、现场归软件
5.5.3异常和中断响应过程隐指令三件事;判优三方式;响应优先级 ≠ 处理优先级;屏蔽字与嵌套

5.6 指令流水线 ✅

节页面一句话
5.6.1指令流水线的基本概念提高吞吐率,不缩短延迟;成立的三个条件
5.6.2流水线的基本实现ID 读、WB 写,相隔三段;L1 分 I/D 的首要理由是结构冒险
5.6.3流水线的冒险与处理每种手段把代价推到 / / 硬件成本之一;load-use 是转发的例外
5.6.4流水线的性能指标三个量同源,、;段数存在最优值
5.6.5高级流水线技术加深还是加宽 × 编译时还是运行时;乱序执行、按序提交

5.7 多处理器的基本概念 ✅

节页面一句话
5.7.1SISD、SIMD、MIMD 的基本概念MISD 不存在;SIMD 就是一条 addps;超标量仍是 SISD
5.7.2硬件多线程的基本概念判据是**“同一拍有几个线程的指令”;超线程必须 OS 知道拓扑**
5.7.3多核处理器的基本概念路 / 核 / 线程三个单位;三堵墙;
5.7.4共享内存多处理器的基本概念NUMA 地址空间仍统一;一致性管值、存储一致性管序、互斥要原子指令

本章高频边界

每一行都是成对的辨析,点进去看完整论证。

边界判据在哪
指令控制 / 操作控制输出是地址还是信号5.1.1
数据线 / 控制线传值还是传开合命令5.1.2
暂存器 / 通用寄存器有没有编号、指令能不能命名它5.1.2
CPU 内部总线 / 系统总线冲突靠排拍还是靠仲裁5.1.2
隐含 / 不可见指令手册里有没有它的名字5.1.3
ISA 状态 / 微体系结构状态换个实现还必须存在吗5.1.3
MAR 位数 / MDR 位数主存地址位数 / 存储字长5.1.3
PC / MARPC 一定装指令地址且是下一条5.1.3
时钟 / 机器 / 指令周期包含关系确定,倍数不确定5.2.1
必有阶段 / 条件阶段取指、执行必有;间址、中断看条件5.2.1
中断的检测 / 响应检测每条都做,响应只在有请求时5.2.1
MDR 里是地址 / 是值间址取回”地址”,执行取回”值”5.2.2
断点 / 当前指令地址PC 取指时已自增;故障类异常除外5.2.2
单周期 / 多周期 最慢指令 / 最慢阶段5.2.3
多周期 CPI / 流水线 CPI是否重叠(延迟 vs 吞吐)5.2.3
数据通路 / 控制器 / 运算器三者范围两两交叉,见对照表5.3.1
数据通路包不包括主存不包括,界面是 MAR/MDR5.3.1
译码器 / 多路选择器输出是控制还是输出是数据5.3.2
Xout / Xin前者同拍只能一个,后者可以多个5.3.2
单总线 / 多总线 / 专用通路功能相同,拍数不同5.3.3
暂存器是不是必需品只有单总线必须有5.3.3
偏移量走哪条线数据线;控制部件只给 MUX 选择信号5.3.4
ALU / 移位器的”直送”说明该部件在数据回路上是必经之地5.3.4
三个「地址」索引主存 / CM / 寄存器堆5.4.1
指令译码器 ID / CUID 只吃操作码,它的输出是 CU 的输入5.4.1
控制器 / 控制单元 CU两类控制器变的只有 CU 这一块5.4.1
同步 / 异步 / 联合控制与 6.2 总线定时同一组判据5.4.2
硬布线有没有”字段”没有,那是微程序的概念5.4.2
互斥 / 相容微命令同一拍会不会同时有效5.4.3
字段位数要不要 +1要,留一个”本段不发命令”5.4.3
水平型 / 垂直型有没有微操作码字段5.4.3
微命令 / 微操作一一对应,因与果5.4.3
异常 / 中断重跑一遍还会在同一条指令上发生吗5.5.1
广义 / 狭义中断题目出现”内中断”→ 广义口径5.5.1
硬件中断 / 信号 / 回调谁改写执行流5.5.1
Cache 缺失是不是异常不是——PC 没被改写5.5.1
故障 / 自陷 / 终止返回到哪:当前指令 / 下一条 / 不返回5.5.2
断点 / 现场硬件存断点,软件存现场5.5.2
可屏蔽 / NMINMI 走独立引脚、不参与排队5.5.2
关中断在隐指令中的位置必须在保存断点之前5.5.3
中断向量 / 向量地址 / 类型号向量 = 服务程序入口地址5.5.3
响应优先级 / 处理优先级判优电路 / 屏蔽字;后者软件可改5.5.3
软件查询 / 链式 / 独立请求速度、线数、优先级由什么决定5.5.3
单重 / 多重中断服务程序里有没有”开中断”、放在哪5.5.3
吞吐率 / 延迟流水线提高前者,不缩短后者5.6.1
静态 / 动态流水线只对多功能流水线有意义5.6.1
流水线段数 / 指令周期阶段数两套划分,别混用名字5.6.1
为什么必须两个存储器IF 与 MEM 同拍访存 → 结构冒险5.6.2
MEM 段空转能不能省不能——写端口冲突 + 完成顺序错乱5.6.2
转发能 / 不能解决结果产生的段不能晚于需要它的段5.6.3
插 nop / 硬件阻塞代价记在 还是 5.6.3
nop 的延迟 / 代价5 拍 / 1 拍5.6.3
RAW / WAR / WAW顺序流水线只有 RAW5.6.3
加速比的上限是段数 ,不是 5.6.4
段数越多越好吗不是—— 开销 + 冒险代价5.6.4
超标量 / 超流水线加宽(IPC>1)/ 加深(IPC 仍是 1)5.6.5
动态流水线 / 动态调度段的连法 / 指令的顺序5.6.5
为什么必须按序提交为了精确异常5.6.5
VLIW 为什么破坏分层把功能部件配置写进了 ISA5.6.5
超标量属于 SISD 还是 MIMDSISD——只有一条指令流5.7.1
时间并行 / 空间并行时间并行只有流水线5.7.1
SIMD / MIMD能不能各跑各的程序5.7.1
共享内存 / 消息传递同一地址是不是同一存储单元5.7.1
细粒度 / 粗粒度 / SMT同一拍有几个线程的指令5.7.2
逻辑核心 / 物理核心运算部件共享还是各有一套5.7.2
硬件切换 / OS 线程切换0 拍 / 几百到几千拍5.7.2
超线程 / 双核共享一套 / 各有一套,两者正交5.7.3
路 / 核 / 线程芯片数 / 核心数 / 每核线程数5.7.3
私有 Cache / 共享 CacheL1、L2 私有 → 一致性问题的来源5.7.3
UMA / NUMANUMA 地址空间仍统一,只是时间不同5.7.4
Cache 一致性 / 存储一致性同址的”值” / 跨址的”序”5.7.4
一致性 / 互斥一致性不提供互斥,要原子指令5.7.4
写失效 / 写更新写失效流量小,是主流5.7.4
监听 / 目录协议广播(小规模)/ 点播(大规模)5.7.4

计算模板

要算什么公式 / 方法在哪
PC 的增量指令字长 ÷ 编址单位5.1.3
MAR / MDR / IR 位数主存地址位数 / 存储字长 / 指令字长5.1.3
某条指令的执行时间机器周期数 × 每周期节拍数 × 5.2.1
某条指令的访存次数取指 1 + 间址(有则 1)+ 执行(看寻址方式)5.2.2
三方案的 各段求和 / 取最大 / 取最大 5.2.3
ALUop / SRop 位数功能数,含”直送”5.3.2
最多几个通用寄存器, = rs/rd 字段位数5.3.2
单总线一次运算的拍数3 拍(存 Y、算、经 Z 回写)5.3.3
排拍总线冲突 / 部件冲突 / 数据依赖三规则5.3.4
互斥字段位数5.4.3
下地址字段位数微指令总条数5.4.3
微指令总条数 各指令微程序条数 + 公共取指微程序5.4.3
控制存储器容量总条数 × 微指令字长5.4.3
流水线总时间5.6.4
吞吐率 / 加速比 / 效率 / / 5.6.4
三者换算,5.6.4
有冒险时的实际 CPI比例停顿拍数5.6.4
数据冒险停顿拍数按 ID/WB 相隔三段数距离,查有无转发5.6.3
逻辑核心总数路数 × 每颗核数 × 每核线程数5.7.3
多核功耗对比,且 随 涨5.7.3
Amdahl 定律5.7.3

复习顺序

  1. 5.1.1 → 5.1.2:先把”数据线 / 控制线”这条判据焊死,后面 5.3、5.4 全靠它。
  2. 5.1.3:位数那一列比可见性那一列考得多,MDR = 存储字长先记住。
  3. 5.2.1 → 5.2.2:背下取指周期五步和那张四行表,这是本章最稳的送分题。
  4. 5.2.3:短,但它是 5.6 的对照组。
  5. 5.3.1 → 5.3.2:把译码器和 MUX 分清,rd 接译码器要能立刻说出理由。
  6. 5.3.3 → 5.3.4:这两节要动手,把 2009 年那道真题完整做一遍。
  7. 5.4.1:先立”三个地址”,再进 5.4.2/5.4.3 就不会串台。
  8. 5.4.3:容量计算题走五步流程,每个字段 、取指微程序只算一段。
  9. 5.5.2 → 5.5.3:先记”返回到哪”三类,再做屏蔽字轨迹题。
  10. 5.6.1 → 5.6.3:吞吐 / 延迟的区分要先立住,冒险题才做得对。
  11. 5.6.4:三个公式同源,记一个推两个。
  12. 5.7.1 → 5.7.4:全部是概念选择题,按”复制了什么、共享了什么”过一遍,再扫名词库那张 84 行的清单。

说明

  • 本章 25 个三级节 = 25 页,节号以 王道 2026 教材目录为准。
  • 提问最密集的一章:32 条,其中 13 条落在 5.7,且横跨三个月出现两轮——见 原始提问档案(本地资料)。
  • 旧版 7 篇主题式笔记已移入 归档目录(本地资料),入链不受影响(Obsidian 按 basename 解析)。

链接