// ARCHIVE

2026-10-182026-10-18 20:315 / 5计算机组成原理, 期末复习, 笔记, 整理来源:电子科技大学《计算机组成原理》MOOC(纪禄平主讲,国家级一流本科课程)

计算机组成原理期末总复习

纪禄平《计算机组成原理》(第 6 版)期末冲刺笔记:按"总体框架 → 处理对象 → 硬件子系统"组织,覆盖数据表示与运算、CPU、存储、总线与 I/O、外设五大板块,配大量结构图、对比速查表、手算例题与各章典型题。

计算机组成原理期末总复习

适用教材:纪禄平、罗克露、刘辉、张建《计算机组成原理》(第 6 版),电子工业出版社,2024 年 7 月,"十二五"普通高等教育本科国家级规划教材。全书共 6 章:计算机系统概述、数据的表示·运算与校验、CPU 子系统、存储子系统、总线与 I/O 子系统、I/O 设备及其接口。

教材的组织线索是"总体框架 → 处理对象 → 硬件子系统":先建立整机概念(第 1 章),再讲数据的表示与运算(第 2 章),最后分述四大功能子系统(第 3~6 章)。

使用建议:本资料按"可以覆盖全书约八成考点"的密度编写。第 2、3、4 章是计算与设计题的重灾区,务必把例题动手演算一遍;第 1、5 章的公式套用性强,性价比高;第 6 章以记忆为主。文中标注"典型题"的部分建议全部手推。

资料整理自:

  1. 电子科技大学《计算机组成原理》MOOC(国家级一流本科课程,纪禄平主讲)

  2. GitHub - Aye10032/ComputerOrganizationNote(考研计算机组成原理笔记)

  3. GitHub - jaluova/nuaa-course-notes(NUAA 计算机组成原理笔记与期末复习资料)

  4. BrushUP - 《计算机组成原理》章节重点

  5. 博客园 - CK_0ff《计算机组成原理 复习笔记》

  6. 唐朔飞《计算机组成原理》、白中英《计算机组成原理》、Patterson & Hennessy《计算机组成与设计》等经典教材作交叉校验。

配图说明:正文中的原理图、芯片结构图等多数取自 Wikimedia Commons 等开放版权来源(CC / 公有领域),全部已本地化托管,逐图出处与许可证见 附录 A;少数通用结构图(数据通路、微程序控制器、总线与 I/O 传送对比等)为本站自绘。若内容与原书有出入,一律以 纪禄平《计算机组成原理》第 6 版 为准。

0. 复习总览

0.1 分值与题型的经验分布

各高校试卷结构不同,但常见构成为:选择/填空(约 30%)+ 简答/辨析(约 30%)+ 计算/设计(约 40%)。分值分布大致为:

板块章节典型分值占比主要形式
数据表示与运算第 2 章25%~30%机器码互求、浮点编码、乘除法手算、校验码
CPU 子系统第 3 章25%~35%寻址计算、扩展操作码、数据通路、流水线计算
存储子系统第 4 章20%~25%容量扩展、Cache 地址划分与命中率、磁盘与虚存
总线与 I/O第 5 章10%~15%总线带宽、中断与 DMA 流程
系统概述与设备第 1、6 章5%~10%性能公式、层次结构、外设概念

0.2 高频计算与设计题型地图

题型所在章核心公式/方法易错点
进制转换与机器码第 2 章原码/反码/补码/移码互求n 位补码范围到 −2^(n−1);移码 = 补码符号位取反
补码加减与溢出第 2 章[X−Y]补 = [X]补 + [−Y]补双符号位 01 正溢、10 负溢;"取反加一"别漏加 1
原码一位乘 / Booth第 2 章部分积移位累加;Booth 按相邻两位判加减符号位单独处理;移位的位数与补齐
原码除法第 2 章恢复余数法 / 加减交替法上商顺序、余数左移
浮点数与 IEEE 754第 2 章真值 = (−1)^S × 1.M × 2^(E−127)阶码用移码(单精度偏置 127);尾数隐含最高位 1
浮点加减第 2 章对阶→尾数运算→规格化→舍入→判溢出对阶是"小阶向大阶看齐",小阶尾数右移
海明码 / CRC第 2 章2^r ≥ k + r + 1;CRC 模 2 除求余海明校验位在 2^i 位置;CRC 余数要补足位数
BCD 与字符编码第 2 章8421 码;机内码 = 国标码 + 8080H区位码与国标码差 2020H
扩展操作码第 3 章高位留作长操作码的前缀操作码不能互为前缀
有效地址计算第 3 章相对/基址/变址:EA = 基址 + A相对寻址相对的是取指后的 PC
CPU 性能公式第 1、3 章CPU 时间 = 指令数 × CPI / 主频MIPS 与主频单位换算
数据通路微操作第 3 章单总线逐拍列出 R1→Y, ALU→Z 等一拍内只能有一个部件向总线输出
流水线性能第 3 章加速比 = n·k / (k + n − 1)k 是级数、n 是指令数,别混用
存储器容量扩展第 4 章位扩展拼数据线,字扩展译码选片高位地址分配与片选逻辑
Cache 映射与地址划分第 4 章标记/行号(组号)/块内地址切分直接映射还需比较标记
Cache 命中率与平均访问时间第 4 章Ta = h·Tc + (1−h)·Tm写策略不同公式不同
虚拟存储器与 TLB第 4 章页号/页内地址切分、页表项数换算页表大小 = 页表项数 × 每项字节数
磁盘容量与存取时间第 4 章容量 = 盘面 × 磁道 × 扇区 × 扇区大小平均旋转等待 = 半圈 = 1/(2r)
总线带宽第 5 章带宽 = 总线宽度(字节) × 总线频率位/字节换算
中断与 DMA第 5 章中断处理四步;DMA 传送时间估算DMA 只在首尾占用 CPU

0.3 各章一句话主线

章一句话主线必须能回答的问题
第 1 章建立整机概念计算机怎么"自动"工作?怎样衡量快慢?
第 2 章数据如何表示与运算0/1 如何表示数、字符?运算器凭什么只会加法?
第 3 章指挥硬件干活一条指令怎么被取出、译码、执行?
第 4 章把数据放好大容量与高速度如何兼得?
第 5 章把部件连起来谁用总线?数据怎么高效搬运?
第 6 章把信息送进送出键盘、显示器、打印机如何与主机交互?

0.4 相对弱化 / 背景性内容

以下内容在教材中仍有篇幅,但偏工程细节或已属历史,期末通常不深考,复习时可降低优先级:

内容位置说明
磁芯、磁泡存储器第 4 章已被半导体存储器取代,知道"曾存在"即可
ROM 各工艺细节(MROM/PROM/EPROM)第 4 章掌握"只读、可擦写性"差异即可
光盘(CD/DVD)读写物理机理第 4 章记住容量量级与光存储定位
键盘扫描码、去抖电路的精确时序第 6 章掌握矩阵扫描思想即可
打印机机械传动结构第 6 章记住击打式/非击打式、速度单位
CRT 行场扫描电路细节第 6 章现代多为 LCD,掌握刷新与光栅扫描概念
各类总线标准的引脚时序(ISA/PCI/USB)第 5 章知道总线分类与性能指标即可

1. 第 1 章 计算机系统概述

1.1 计算机的概念、类型与冯·诺依曼体制

计算机是一种能自动、高速地进行大量数值计算与各类信息处理的电子设备。按规模与用途可分为巨型机、大型机、小型机、微型机、单片机与嵌入式系统等;无论规模大小,它们都属于同一种体系结构——冯·诺依曼结构。

冯·诺依曼型计算机的基本思想(必背四条):

  1. 采用二进制表示数据和指令,指令由操作码和地址码组成;
  2. 存储程序:程序(指令序列)与数据一起存放在存储器中,机器按地址自动取用;
  3. 程序控制:指令按顺序执行,遇到转移指令才改变顺序;
  4. 五大部件:由运算器、控制器、存储器、输入设备、输出设备构成。

冯·诺依曼结构(五大部件与三类总线)

五大部件的分工:

部件作用现代实现
运算器完成算术与逻辑运算与控制器一起集成在 CPU 中
控制器取指、译码、发出控制信号,协调各部件同上
存储器存放程序与数据主存 + Cache + 磁盘(分层)
输入设备把外部信息送入计算机键盘、鼠标、扫描仪
输出设备把处理结果送出计算机显示器、打印机

存储程序 + 程序控制是"自动计算"的关键:一旦程序装入存储器,机器便按 PC 指出的地址顺序取指、执行,人不再逐条干预。

与冯·诺依曼结构相对的是哈佛结构:指令存储器与数据存储器分开,因而取指与取数可以同时进行,效率更高。早期多用于 DSP 与单片机;现代 CPU 内部实际上也采用"分离的 L1 指令 Cache 与数据 Cache",属于哈佛结构的局部应用。

哈佛结构:指令与数据分开存储、可并行访问

1.2 计算机的诞生与发展

分代年代主要元件标志
第一代1946—1957电子管ENIAC、EDVAC(存储程序思想)
第二代1958—1964晶体管体积、功耗下降,可靠性提高
第三代1965—1970集成电路中小规模 IC,出现操作系统雏形
第四代1971 至今大规模/超大规模 IC微处理器、PC、服务器

两条常考的"规律":

  • 摩尔定律:集成电路上可容纳的晶体管数约每 18~24 个月翻一番,性能随之提升、成本下降。它是经验规律而非物理定律,近年已明显放缓。
  • 冯·诺依曼瓶颈:CPU 与主存之间的带宽逐渐跟不上 CPU 的处理速度,成为性能瓶颈。这正是引入 **Cache(第 4 章)与流水线(第 3 章)**的直接动因。

发展趋势:多核与并行计算、嵌入式与物联网、云计算与异构加速、智能化。

1.3 计算机系统的层次结构与工作过程

计算机系统由硬件(实体)与软件(程序、数据、文档)组成,两者在逻辑功能上等价——同一个功能既可用硬件实现,也可用软件实现(如"乘法"可用乘法器完成,也可用加法与移位循环完成),取硬件实现通常更快、软件实现更省成本。

计算机系统的层次结构

从上到下,每一层都把下一层"翻译"成更基本的形式,向上屏蔽细节:

层次名称由谁翻译
M5应用语言机器应用程序 / 用户界面
M4高级语言机器编译程序
M3汇编语言机器汇编程序
M2操作系统机器系统调用、资源管理
M1机器语言机器(实际机器)指令由硬件直接执行
M0微程序机器微指令解释执行机器指令

计算机的工作过程可用一个例子串起来:计算 y = a × b + c。程序被装入存储器后:

  1. 取指:PC → MAR,读主存得指令,送入 IR,PC 自动加 1;
  2. 分析:控制器译码 IR 中的操作码,判定这是"取数"还是"乘"等;
  3. 执行:按地址码取 a、b 到运算器,做乘法,再取 c 相加,结果写回;
  4. 重复上述过程直到遇到停机指令。

1.4 计算机的主要性能指标

① 字长与容量

  • 机器字长:CPU 一次能并行处理的二进制位数,通常等于通用寄存器宽度(如 32 位、64 位)。
  • 指令字长:一条指令的位数,可为定长或变长。
  • 存储字长:一个存储单元存放的二进制位数。
  • 存储容量:以字节(B)为单位,1 KB = 2^10 B,依次为 MB、GB、TB。

② 速度指标

  • 主频 f 与时钟周期 T:T = 1/f,是机器最小的节拍单位。

  • CPI(Cycles Per Instruction):执行一条指令平均所需时钟周期数。

  • CPU 执行时间(衡量性能最可靠的指标):

    CPU 时间 = 指令条数 × CPI × 时钟周期 = 指令条数 × CPI / 主频

  • MIPS(每秒百万条指令):

    MIPS = 指令条数 / (执行时间 × 10^6) = 主频 / (CPI × 10^6)

  • MFLOPS / GFLOPS / TFLOPS:每秒百万/十亿/万亿次浮点运算,衡量科学计算能力。

  • 吞吐量与响应时间:吞吐量是单位时间完成的任务数,响应时间是单个任务的完成时间。

③ Amdahl 定律(局部优化对整体的影响):

整体加速比 = 1 / [(1 − p) + p / s]

其中 p 是被优化部分所占比例,s 是该部分的加速倍数。它说明:只优化一部分,整体收益有上界(1/(1−p))。

例:某程序中 40% 的运算可以提速 10 倍,则整体加速比 = 1 / (0.6 + 0.4/10) ≈ 1.56。

1.5 典型题

题 1:某 CPU 主频 2 GHz,程序共执行 2 × 10^8 条指令,平均 CPI = 1.5。求执行时间与 MIPS。

解:CPU 时间 = 2×10^8 × 1.5 / (2×10^9) = 0.15 s;MIPS = 2×10^9 / (1.5×10^6) ≈ 1333。

题 2:若主频提高 20% 而 CPI 上升 10%,程序执行时间是变快还是变慢?

解:时间 ∝ CPI / f,比值 = 1.10 / 1.20 ≈ 0.917,变快约 8.3%。这说明"主频高不一定更快",必须同时看 CPI 与指令条数。

题 3:什么是冯·诺依曼瓶颈?举出两种缓解手段。

解:CPU 与主存之间数据通路的速度增长慢于 CPU 处理速度,形成带宽瓶颈。缓解手段:① 设置 Cache,利用局部性把常用数据放在高速小容量存储器中;② 采用流水线/多级存储体系,提高访存与执行的并行度。

更多练习:见附录 C 自测清单。


2. 第 2 章 数据的表示、运算与校验

本章回答"计算机的处理对象是什么、怎么算"。主线是:怎样用 0/1 表示数 → 怎样表示字符 → 怎样运算 → 怎样发现出错。

2.1 数值型数据的表示

2.1.1 进位计数制及其转换

任意 r 进制数按"位权展开":(N)r = Σ aᵢ × r^i。常用基数:二进制 r=2、八进制 r=8、十六进制 r=16。

转换要点:

  • r 进制 → 十进制:按位权展开求和;
  • 十进制 → r 进制:整数部分"除 r 取余、逆序排列",小数部分"乘 r 取整、顺序排列";
  • 二 ↔ 八/十六:按 3 位 / 4 位分组,直接替换(最方便,考试常走这条路)。

2.1.2 机器数:原码、反码、补码、移码

真值是带符号的实际数值,机器数是它在机器中的 0/1 表示。四个概念必须能互求:

编码正数负数0 的表示特点
原码符号位 0 + 绝对值符号位 1 + 绝对值有两种(+0、−0)直观,用于乘除法的符号处理
反码同原码符号位不变,其余取反有两种求补码的中间步骤
补码同原码反码 + 1(取反加一)唯一加减统一,机器实际使用
移码补码符号位取反补码符号位取反唯一(1000…0)用于浮点数阶码,便于比较大小

补码的数学定义(n 位):当 X ≥ 0 时 [X]补 = X;当 X < 0 时 [X]补 = 2^n + X(模 2^n 意义下)。n 位补码的表示范围是 −2^(n−1) 到 2^(n−1) − 1,比原码多表示一个最小负数。例如 8 位补码:−128 到 +127。

为什么计算机用补码?因为"模运算"可以把减法变成加法:

补码的"钟表"比喻:−7 ≡ +249(mod 256)

钟表上"往后退 7 小时"等于"往前走 5 小时"(模 12)。同理,8 位机器里 −7 等价于 +249(模 256),于是 X − Y 只需写成 X + (−Y)补,运算器只需要一个加法器。

2.1.3 定点表示

小数点位置固定:定点小数(小数点在符号位之后,表示 |x| 小于 1 的数)与定点整数(小数点在最低位之后)。优点是简单、运算快;缺点是表示范围小、精度固定。

2.1.4 浮点表示与 IEEE 754

浮点数把"数"拆成阶码 + 尾数,形如 N = S × r^E(S 为尾数、r 为基数、E 为阶码),用有限位表示大范围的数,代价是精度不再是均匀的。

浮点数的通用格式:符号位、阶码、尾数

约定:

  • 阶码用移码(含阶符),便于对阶时按无符号数比较大小;
  • 尾数需规格化:原码规格化要求尾数最高数值位为 1(即 0.5 ≤ |M| < 1),补码规格化要求"符号位与最高数值位相反";
  • 基数 r 常取 2,隐含不存。

IEEE 754 标准是考试重点:

IEEE 754 单精度(32 位):1 + 8 + 23

IEEE 754 双精度(64 位):1 + 11 + 52

格式总位数符号 S阶码 E尾数 M偏置值
单精度321823127
双精度64111521023

规格化数的真值:N = (−1)^S × 1.M × 2^(E − 偏置),其中尾数隐含最高位 1(省一位、多一位精度)。

特殊值规定:

EM含义
全 0全 0±0
全 0非 0非规格化数(靠近 0 的微小量)
全 1全 0±∞
全 1非 0NaN(非数)

例:写出 −0.5 的单精度表示。−0.5 = −1.0 × 2^(−1),故 S=1,E = −1 + 127 = 126 = 0111 1110,M = 0(1.0 的隐含位已含)。结果:1 01111110 00000000000000000000000。

2.1.5 十进制数的二进制编码(BCD)

用 4 位二进制表示一位十进制数,最常用 8421 码(如 385 → 0011 1000 0101)。BCD 便于与人交互,但比纯二进制浪费约 1/6 的编码空间,且运算需专门的"十进制调整"。

2.2 字符型数据的表示

① ASCII 码:7 位编码(常用 8 位存储,最高位作校验或扩展)。记住锚点:'0' = 48 = 30H,'A' = 65 = 41H,'a' = 97 = 61H;数字、大写、小写三段的码值递增规律常用来出选择/填空。

② 汉字编码:汉字处理要经过"输入码 → 机内码 → 字形码"的转换,关键是三个编码的关系:

  • 区位码:把汉字按 94×94 的二维表定位(区号 + 位号);
  • 国标码:国标码 = 区位码 + 2020H(避免与 ASCII 控制码冲突);
  • 机内码:机内码 = 国标码 + 8080H(使两个字节最高位均为 1,与 ASCII 区分)。

例:已知某汉字的区位码为 2153H,则国标码 = 2153H + 2020H = 4173H,机内码 = 4173H + 8080H = C1F3H。反向换算时相减即可。掌握这条"两次加偏移"的链路就够应付填空与选择。

③ Unicode 与 UTF-8:Unicode 为全世界字符统一编号(码点);UTF-8 是它的变长字节实现(1~4 字节),对 ASCII 完全兼容,是当前互联网文本的主流编码。

2.3 数据处理与存储

  • 字节、字与字长:1 字节 = 8 位;字通常是机器字长的整数倍;按字节编址时,一个字要占多个地址。

  • 大端与小端:多字节数据在存储器中的字节序。大端(Big-endian)把高位字节放在低地址;小端(Little-endian)把低位字节放在低地址。x86 用小端。

    例:32 位数 0x12345678 存放在地址 1000H 起。大端:12 34 56 78;小端:78 56 34 12。

  • 边界对齐:为了访存效率,通常要求字的起始地址是字长的整数倍;不对齐会导致一次访问跨越两个存储字(需两次访存)。

  • 堆栈:后进先出(LIFO),由栈指针 SP 指示栈顶;按生长方向分"向低地址生长"(x86)与"向高地址生长"。

2.4 基本运算方法

2.4.1 定点加减法

补码加减公式(连同符号位一起运算):

[X + Y]补 = [X]补 + [Y]补,[X − Y]补 = [X]补 + [−Y]补(其中 [−Y]补 为"连同符号位取反加一")。

溢出判断三种方法(都要求掌握):

  1. 单符号位法:两个同号数相加,结果符号与之相反 → 溢出;
  2. 双符号位法(变形补码):用 00/11 表示正/负,运算后 01 为正溢、10 为负溢;
  3. 进位判断法:设符号位进位为 Cf、最高数值位进位为 Cn,则 Cf ⊕ Cn = 1 表示溢出。

2.4.2 移位运算

类型规则用途
算术移位左移补 0;右移时补码补符号位(保持正负)乘除 2 的幂
逻辑移位无论左右一律补 0无符号数 / 位操作
循环移位移出的位补到另一端(分带进位与不带进位)位检测、加密

例:8 位补码 1100 1000 表示 −56。算术右移一位 → 1110 0100(高位补符号位 1),其值为 −28(恰好是 −56 ÷ 2),可见算术右移等价于"除以 2 并向下取整"。若换成逻辑右移,高位补 0 会得到 0110 0100 = +100,正负号被破坏——这正是补码必须用算术移位的原因。

2.4.3 定点乘法

① 原码一位乘:符号位单独处理(异或),数值部分按无符号数"逐位乘、累加、右移"。部分积与乘数一起右移一位。

例:x = 0.1101,y = 0.1011,求 x·y。 符号 = 0⊕0 = 0(正)。数值部分:被乘数 M = 1101,乘数 Q = 1011,部分积 A 初值 0000。

步骤判断与操作A(部分积)Q(乘数)
初始—00001011
1Q₀=1:A←A+M,右移一位01101101
2Q₀=1:A←A+M,右移一位10011110
3Q₀=0:只右移一位01001111
4Q₀=1:A←A+M,右移一位10001111

乘积 = A:Q = 1000 1111,即 x·y = 0.10001111(可验证:13/16 × 11/16 = 143/256 ✓)。

② 补码一位乘(Booth 算法):可直接对补码运算,无需先取绝对值。规则:根据乘数相邻两位 (yᵢ, yᵢ₊₁)(最低位右侧补 0)判断:

(yᵢ, yᵢ₊₁)操作
00 或 11部分积 +0
01部分积 +[X]补
10部分积 +[−X]补

每步做完后部分积与乘数算术右移一位。

例:[X]补 = 1011(−5),[Y]补 = 0011(+3),求 X·Y。 [−X]补 = 0101,A 初值 0000,Q = 0011,附加位 = 0。

步骤(Q₀, 附加位)操作AQ
初始——00000011
1(1, 0) → −XA←A+[−X]=0101,算术右移00101001
2(1, 1) → +0算术右移00010100
3(0, 1) → +XA←A+[X]=1100,算术右移11100010
4(0, 0) → +0算术右移11110001

结果 A:Q = 1111 0001 = −15 ✓(−5 × 3 = −15)。注意右移是算术右移(补符号位)。

2.4.4 定点除法

原码除法:符号位单独异或,数值部分用"左移一位 → 与除数比较 → 上商 → 相减"的循环。两种实现:

  • 恢复余数法:先做减法,若余数为负,则恢复余数(加回除数)再上商 0;
  • 加减交替法(不恢复余数法):当余数为正,上商 1,下一步减除数;当余数为负,上商 0,下一步加除数(省去恢复步骤),效率更高。

例:x = 0.1010(0.625),y = 0.1100(0.75),求 x ÷ y(保留 4 位商)。 每次循环:余数左移一位,减去除数 y,看符号上商。

步骤2R比较与相减商位新余数 R
11.01001.25 ≥ 0.7510.1000(0.5)
21.00001.0 ≥ 0.7510.0100(0.25)
30.10000.5 < 0.7500.1000(0.5)
41.00001.0 ≥ 0.7510.0100(0.25)

商 = 0.1101(0.8125),余数 = 0.0100;验证:0.1101 × 0.1100 + 0.0100 × 2⁻⁴ = 0.609375 + 0.015625 = 0.625 ✓(等于被除数)。

2.4.5 浮点加减运算

五步流程(顺序固定):

  1. 对阶:小阶向大阶看齐(小阶的尾数右移,阶差多少移多少),避免大数"吃掉"小数;
  2. 尾数运算:对阶后按定点数加减;
  3. 规格化:把结果尾数调整为规格化形式(可能要左规或右规);
  4. 舍入:处理移位丢掉的位(0 舍 1 入法、恒置 1 法等);
  5. 溢出判断:检查阶码是否超出表示范围(上溢为真溢出,下溢按机器零处理)。

2.4.6 算术逻辑单元 ALU

ALU 是运算器的核心,完成算术运算(加、减、乘、除)、逻辑运算(与、或、非、异或)与移位。它的两个关键参数是字长(数据通路宽度)与功能选择(由控制器给出)。

ALU 的输入输出与功能选择

ALU 的数据通路:寄存器对 + 多路选择器 + ALU

加法器的进位链是速度瓶颈:串行(逐位)进位简单但慢;并行进位(先行进位)用进位产生/传递函数一次算出各位进位,速度快但电路复杂,实际常采用组内并行、组间串行/并行的混合结构(如 74181 芯片把 4 位 ALU 与先行进位集成在一起)。

2.5 常用的数据校验方法

码距:任意两个合法编码之间最少不同的位数,记为 d。它能检出的错误位数 e 与可纠正的错误位数 t 满足 d ≥ e + t + 1:

d能力
1无检错能力
2可检出 1 位错(奇偶校验)
3可检出 2 位错或纠正 1 位错(海明码)
4可纠 1 位错并检出 2 位错(扩展海明码)

① 奇偶校验:附加 1 位,使整个编码中 1 的个数为奇数(奇校验)或偶数(偶校验)。只能发现奇数个错误,无法纠错,也无法发现偶数个错误。

② 海明校验:设数据 k 位、校验 r 位,须满足 2^r ≥ k + r + 1。校验位插在编号为 2^0, 2^1, 2^2 … 的位置上,每个校验位负责"其覆盖范围内各数据位的异或和"。

海明码:各校验位的覆盖关系(以 Hamming(7,4) 为例)

例(Hamming(7,4)):数据 d = 1010,按位置 3、5、6、7 放置。偶校验: p1 覆盖位 1,3,5,7 → p1 = 1;p2 覆盖位 2,3,6,7 → p2 = 0;p4 覆盖位 4,5,6,7 → p4 = 1。 编码为 p1 p2 d1 p4 d2 d3 d4 = 1011010。若接收端收到 1001010,三组校验和的组合 = 3,即第 3 位出错,取反即可纠正。

③ CRC 循环冗余校验:用于数据链路层、磁盘等,检错能力强。用生成多项式 G(x) 对数据做模 2 除法(异或,无借位),余数接到数据后面发送;接收端再除一次,余数非 0 判错。

CRC:移位寄存器 + 异或的实现原理

例:数据 101001,G(x) = x³ + x² + 1 → 除数 1101(r = 3)。数据后补 3 个 0 得 101001000,模 2 除以 1101 得余数 001,发送 101001001。

2.6 典型题

题 1:写出 −52 的 8 位原码、反码、补码、移码。52 = 0011 0100。

解:原码 1011 0100;反码 1100 1011;补码 1100 1100;移码 = 补码符号位取反 = 0100 1100。

题 2:用 8 位双符号位判断 [X]补 = 01 1010 0011 与 [Y]补 = 01 0101 1101 相加是否溢出。

解:取低 8 位运算:1010 0011 + 0101 1101 = 1 0000 0000 → 结果 0000 0000,双符号位为 00,无溢出(实际为 −93 + 93 = 0)。

题 3:一个 32 位浮点数采用 IEEE 754 单精度,求它表示 1.0 的阶码字段值。

解:1.0 = 1.0 × 2^0,E = 0 + 127 = 127 = 0111 1111。

题 4:数据 8 位,采用海明码纠一位错,至少需要多少位校验位?

解:求最小 r 使 2^r ≥ 8 + r + 1:r = 4 时 16 ≥ 13 成立,故需 4 位。

更多练习:见附录 C 自测清单。


3. 第 3 章 CPU 子系统(重点章)

本章回答"硬件怎么被指挥干活"。主线:指令是什么 → 运算器怎么组织 → 控制器怎么发号施令 → 一条指令怎么走完 → 怎么让多条指令并行。

3.1 CPU 概述

CPU 的四大功能:

功能含义
指令控制保证指令按程序规定的顺序执行(首要任务)
操作控制产生并发出各种操作信号,管理各部件动作
时间控制对各类操作实施定时(节拍)
数据加工完成算术与逻辑运算(根本任务)

CPU 的组成:运算器 + 控制器 + 寄存器组(现代还集成 Cache、总线接口、中断系统等)。

必须熟记的寄存器与其作用:

寄存器全称作用
PC程序计数器存放下一条要执行指令的地址,取指后自动加 1
IR指令寄存器存放当前正在执行的指令,供译码
MAR存储器地址寄存器存放 CPU 要访问的主存单元地址
MDR存储器数据寄存器暂存读出/写入主存的数据
AC累加器存放运算的中间与最终结果
PSW程序状态字存放标志位:进位 C、溢出 V、零 Z、负号 N 等
R0~Rn通用寄存器暂存操作数与中间结果,减少访存

3.2 指令系统

3.2.1 指令格式与操作码编码

一条指令由**操作码(做什么)和地址码(对谁做)**组成。按地址码个数分为零地址、一地址、二地址、三地址指令。

定长操作码:操作码位数固定,译码简单,但编码空间浪费;扩展操作码:短操作码的前缀留给长操作码使用,可在有限位数下表达更多指令,代价是译码复杂。

扩展操作码的核心规则:任一短操作码都不能是另一操作码的前缀(否则译码有歧义)。

例:指令字长 16 位,每个地址码 4 位。要求三地址指令 15 条、二地址指令最多、一地址指令最多,怎么分配? 操作码最高 4 位共 16 个编码,三地址用去 15 个,剩 1 个编码留给更长的操作码;该编码再加一个 4 位地址码可扩展出 2^4 = 16 个二地址操作码;若二地址用去 n 个,剩余 16 − n 个可再各扩展出 16 个一地址操作码。所以三地址越多、长指令能分到的编码越少,这是一道经典填空题。

3.2.2 寻址方式

寻址方式决定"地址码 A 怎样变成有效地址 EA"或"操作数在哪里":

常见寻址方式与有效地址的形成

寻址方式操作数/有效地址访存次数典型用途
立即寻址操作数 = A(在指令中)0常量
直接寻址EA = A1访问固定单元
间接寻址EA = (A)2 次以上指针
寄存器寻址操作数 = (Ri)0高频操作数
寄存器间接EA = (Ri)1指针/数组
相对寻址EA = (PC) + A1转移指令
基址寻址EA = (基址寄存器) + A1程序重定位(面向系统)
变址寻址EA = (变址寄存器) + A1数组遍历(面向用户)

记忆口诀:基址面向"系统"(多道程序、程序浮动),变址面向"用户"(循环、数组);相对寻址的基准是"取指结束后的 PC"——后者是最常见的失分点。

3.2.3 指令类型

数据传送(MOV、LOAD、STORE)、算术逻辑运算(ADD、AND)、移位、转移(条件/无条件)、输入输出、系统控制(停机、访管)。按地址码个数又能分为零地址(如空操作 NOP)、一地址、二地址、三地址指令。

3.2.4 CISC 与 RISC

维度CISC(复杂指令集)RISC(精简指令集)
指令数量多且复杂少而精
指令长度变长定长
寻址方式多少
访存限制多数指令可直接访存只有 load/store 能访存
通用寄存器较少多
控制器实现多为微程序多为硬布线
指令周期差异大,多为不定长大多单周期,便于流水
代表x86MIPS、ARM、RISC-V

3.2.5 MIPS32 指令格式

MIPS32 采用 32 位定长指令、32 个通用寄存器($0 恒为 0),只有 lw/sw 访存,是典型的 RISC。三类格式:

类型位段划分(31→0)用途
R 型op(6) | rs(5) | rt(5) | rd(5) | shamt(5) | funct(6)寄存器间运算(add、sub、and…)
I 型op(6) | rs(5) | rt(5) | immediate(16)立即数运算、访存、条件分支
J 型op(6) | address(26)无条件跳转

例:add $t0, $t1, $t2 的语义是 $t0 ← $t1 + $t2,属于 R 型,op = 000000,功能由 funct 区分。分支指令 beq 属 I 型,16 位立即数是相对 PC 的偏移量(需左移 2 位),这解释了为什么"相对寻址"在 MIPS 中如此常见。

3.3 运算部件与运算器组织

3.3.1 运算器的基本部件

运算器 = ALU + 寄存器组 + 多路选择器 + 移位器 + 内部总线。

  • 寄存器组:多读端口/单写端口,是运算器与指令打交道的"操作数池"。寄存器堆的读写由地址译码与使能信号控制:

    寄存器组(Register File):两个读端口 + 一个写端口

  • 移位器:桶形移位器(Barrel Shifter)用多级多路选择器实现"任意位数移位",一次即可完成,避免逐位移位耗费多个节拍:

    桶形移位器原理:多级 MUX 选择固定移位量

  • ALU:见第 2 章。运算器的字长即数据通路宽度,直接决定机器字长。

3.3.2 运算器的组织:单总线、双总线、三总线

运算器内部各部件靠内部总线交换数据。同一时刻只允许一个部件向总线发送数据,因此总线越少,一条运算指令需要的节拍越多:

组织方式一条 R3 ← R1 + R2 的节拍数特点
单总线3 拍(R1→Y;R2 与 Y 经 ALU→Z;Z→R3)结构最简单,速度最慢
双总线2 拍折中
三总线1 拍最快,硬件最复杂

3.3.3 单总线 CPU 数据通路与"一条指令的硬件动作"

下图是教材反复使用的经典数据通路:所有寄存器、MAR、MDR、ALU 的输入/输出都挂在同一条内部总线上。

单总线结构的 CPU 数据通路

以执行 ADD R1, R2, R3(语义 R3 ← R1 + R2)为例,逐拍写出微操作与控制信号:

节拍微操作控制信号(选通)说明
T1R1 → YR1out、Yin把第 1 个操作数送入 ALU 的暂存器 Y
T2R2 → ALU,ALU 完成 Y + R2 → ZR2out、ALU_ADD、Zin第 2 个操作数经总线直达 ALU 输入
T3Z → R3Zout、R3in运算结果写回目的寄存器

关键约束:T2 中"R2 送上总线"与"ALU 输出到 Z"不能同时占用总线——总线一次只服务一个数据源,所以 ALU 的输出必须先进暂存器 Z,下一拍再写入寄存器。理解这一条,就理解了"为什么单总线结构要多拍完成一条指令"。

若把 ADD 换成 LOAD R1, (R2)(取数),则微操作为:

节拍微操作说明
T1R2 → MAR地址送地址寄存器
T2M → MDR,读主存主存把数据送到数据寄存器
T3MDR → R1数据写入目的寄存器
T4PC → MAR,读主存,MDR → IR,PC + 1 → PC取指公共操作(通常在取指周期完成)

3.4 控制器

控制器的任务:根据指令的操作码、时序与状态标志,产生一组有序的控制信号。有两种实现路线。

3.4.1 硬布线控制器(组合逻辑控制器)

用组合逻辑电路直接由"操作码 + 时序 + 状态条件"产生控制信号。设计步骤:根据指令功能画出数据通路 → 列出每拍的微操作 → 归纳各操作的操作时间表 → 写出每个控制信号的逻辑表达式 → 化简并用门电路实现。

优点:速度快(信号延迟小),适合 RISC 与定长指令。缺点:设计繁琐、修改困难(改一条指令可能牵动全局),不灵活。

3.4.2 微程序控制器

把每条机器指令对应成一段微程序(存放在只读的控制存储器 CM 中),执行时逐条取出微指令并发出微命令。

微程序控制器的基本组成

核心概念层级关系(必背):

机器指令 ⊃ 微程序 ⊃ 微指令 ⊃ 微命令 一条机器指令 = 一段微程序;一条微指令 = 若干微命令(控制信号)+ 顺序控制信息(下地址)。

微指令的编码方式:

方式做法优点缺点
直接编码(水平型)每一位对应一个微命令速度最快、并行能力强微指令字长很长
字段直接编码互斥的微命令分成字段、每字段译码字长显著缩短需译码,稍慢
字段间接编码字段的含义再由另一字段解释进一步缩短译码更慢、更复杂

按微指令字长与并行能力,又分水平型微指令(并行能力强、微程序短)与垂直型微指令(类似机器指令、并行能力弱、微程序长)。

例:某机有 32 条机器指令,每条机器指令对应 4 条微指令,微指令字长 24 位。则控制存储器 CM 至少需要 32 × 4 = 128 个单元,总容量为 128 × 24 位。这类"算 CM 容量"的题目几乎必考。

微程序入口的形成:由指令操作码通过"微地址形成部件"映射到对应微程序的首地址(常用 PROM 或逻辑映射实现)。

两种控制器对比:

维度硬布线微程序
控制信号来源组合逻辑电路控制存储器中的微程序
速度快较慢(每拍要多读一次 CM)
灵活性差,改动即重新设计好,改微程序即可
规整性不规整规整,便于设计与验证
适用RISC、指令少而规整CISC、指令多而复杂

3.5 指令周期与时序

三个时间尺度层层包含:

指令周期、机器周期与时钟周期的关系

  • 时钟周期(节拍):最小时间单位,T = 1/f;
  • 机器周期(CPU 周期):完成一个基本操作(如一次访存)所需时间,含若干时钟周期;
  • 指令周期:取出并执行一条指令的全部时间,含若干机器周期。

一条指令通常划分为四个阶段:取指周期 → 间址周期(可选)→ 执行周期 → 中断周期(可选)。

取指—译码—执行:寄存器与存储器的数据流动

定长时序(所有指令占用相同机器周期数)控制简单但效率低;不定长时序按指令需要分配节拍,效率高但控制复杂。时序产生器负责产生节拍电位与节拍脉冲,使全机动作严格同步。

3.6 数据通路与单周期 / 多周期 CPU

单周期 CPU:每条指令都在一个时钟周期内完成,CPI = 1。代价是时钟周期必须取最长指令(通常是访存的 load)的耗时,简单指令被"陪绑",效率受限。

多周期 CPU:把一条指令分解为多个较短的时钟周期,各周期复用同一套硬件(如 ALU 既用于运算也用于算地址),CPI > 1 但时钟周期更短,整体更高效。

例:某程序指令构成为:取数/存数 20%(各需 4 拍)、算术逻辑 50%(3 拍)、分支 30%(2 拍)。求平均 CPI。 CPI = 0.2×4 + 0.5×3 + 0.3×2 = 0.8 + 1.5 + 0.6 = 2.9。若单周期实现则 CPI = 1,但时钟周期约为最慢指令的 4 拍——要比较"CPI × 时钟周期"才是真实速度,这正是本考点的陷阱。

3.7 指令流水线

3.7.1 原理与时空图

把一条指令的执行分解为若干级(经典五级:IF 取指 → ID 译码 → EX 执行 → MEM 访存 → WB 写回),让不同指令同时处于不同的级上,就像装配流水线:

五级流水线的指令—时钟网格

流水线各级的数据通路(MIPS 五级)

流水线时空图:k 级流水线填满后每拍完成一条指令

3.7.2 性能计算

设流水线级数 k、指令条数 n、时钟周期为 T:

  • 执行时间:(k + n − 1) × T(理想情况);
  • 吞吐率:TP = n / 总时间,理想最大吞吐率 = 1 / T;
  • 加速比:S = n·k / (k + n − 1),当 n 远大于 k 时趋近于 k;
  • 效率:E = S / k。

例:5 级流水线执行 100 条指令,理想加速比 = 100×5 / (5 + 100 − 1) = 500/104 ≈ 4.81。

3.7.3 三类冒险与解决

冒险成因典型解决办法
结构冒险多条指令争用同一硬件资源(如同时访存)增加资源、指令 Cache 与数据 Cache 分离
数据冒险后一条指令要用前一条的结果,尚未写回转发(旁路)、插入停顿(气泡)、编译器调度
控制冒险转移指令改变了取指地址分支预测、延迟槽、提前判断

3.7.4 提升性能的其它技术

  • 超标量:一个时钟周期发射多条指令(多条并行流水线);
  • 超流水:把流水级分得更细(如 8~12 级),主频更高;
  • 超长指令字 VLIW:由编译器把多个可并行操作打包成一条长指令;
  • SIMD:单指令多数据,适合多媒体与科学计算;
  • 多核 / 多线程:在多处理器层面提升并行度。

3.8 典型题

题 1(扩展操作码):指令字长 16 位,地址码 4 位,三地址指令 15 条。二地址指令最多多少条?若二地址用满,一地址指令最多多少条?

解:操作码高 4 位共 16 个编码,三地址占 15 个,剩 1 个可扩展。二地址操作码 = 1 × 2⁴ = 16 条;若二地址用满 16 条,则再没有编码可扩展,一地址指令为 0 条。

题 2(寻址计算):相对寻址指令存放在地址 2500H,指令长 2 字节,地址码字段 A = 06H。求有效地址。

解:相对寻址以取指后的 PC 为基准。取指后 PC = 2500H + 2 = 2502H,EA = 2502H + 06H = 2508H。

题 3(流水线):某流水线共 4 级,各级耗时分别为 10 ns、8 ns、12 ns、9 ns。求流水线时钟周期与执行 50 条指令的总时间。

解:时钟周期取最长级 = 12 ns;总时间 = (4 + 50 − 1) × 12 = 53 × 12 = 636 ns。若不能流水,则总时间 = 50 × (10+8+12+9) = 1950 ns,加速比约 3.07。

题 4:简述"数据冒险"的一种判断方法,并说明"转发"为什么能减少停顿。

解:比较后续指令的源寄存器与前面指令的目的寄存器,若相同且前面指令尚未写回,则存在数据冒险。转发把 ALU 的计算结果在写回前直接从流水寄存器旁路到 EX 级输入端,使后续指令不必等到 WB 才拿到数据,从而把停顿从 23 拍减少到 01 拍。

更多练习:见附录 C 自测清单。


4. 第 4 章 存储子系统(重点章)

本章回答"数据放在哪里、怎样既快又大又便宜"。主线:分层的存储体系 → 半导体存储器 → 主存怎么搭起来 → 磁盘与 RAID → Cache → 虚拟存储器。

4.1 存储系统概述

4.1.1 层次结构

理想的存储器应当"速度快、容量大、价格低",三者不可兼得,于是采用分层:上层快而小、下层慢而大,用程序访问的局部性把常用信息上调到高速层,从而获得接近"全快"的性能。

计算机存储层次:从寄存器到磁盘、磁带

局部性原理分两种:

  • 时间局部性:刚被访问过的数据很可能马上再被访问(循环、重复调用);
  • 空间局部性:被访问单元的邻近单元很可能马上被访问(数组、顺序代码)。

局部性是 Cache 与虚拟存储器能起作用的前提,也是本章的"总开关"。

4.1.2 存储器的分类

分类角度类型说明
存取方式随机存取(RAM)存取时间与地址无关
顺序存取(磁带)必须按顺序找
直接存取(磁盘)先找道再顺序找扇区
易失性易失(RAM)断电即丢
非易失(ROM、Flash、磁盘)断电保留
读写性只读(ROM)运行时只能读
读写(RAM)运行时可读可写

4.1.3 主要技术指标

  • 存储容量:芯片常以"字数 × 位数"标注,如 8K × 8;
  • 存取时间 Ta:从发出访问请求到数据可用;
  • 存储周期 Tm:两次独立访问之间必须的最小间隔(Tm ≥ Ta,因为读后需要恢复);
  • 存储带宽:单位时间可读写的数据量。

4.2 半导体存储原理与芯片

4.2.1 SRAM 与 DRAM

对比项SRAM(静态)DRAM(动态)
存储单元触发器(6 个晶体管)电容(1 个晶体管 + 1 个电容)
是否需要刷新不需要需要定期刷新
速度快慢
集成度低高
位成本高低
功耗较大(静态保持)小
用途Cache主存

6T SRAM 单元:靠触发器稳定保存信息

1T1C DRAM 单元:信息以电荷形式保存在电容上

DRAM 用电容存储电荷,电荷会泄漏,所以必须定时刷新(读出后重新写入)。刷新按"行"进行,三种方式:

刷新方式做法特点
集中刷新在刷新周期末集中刷新所有行有很长的"死时间"
分散刷新每个存取周期后都刷新一行无长死区,但系统速度变慢
异步刷新把刷新均匀分散到刷新周期内折中,实际最常用

例:DRAM 共 128 行,存取周期 0.5 μs,刷新间隔 2 ms。集中刷新时 = 128 × 0.5 = 64 μs 的死时间,死时间率 = 64/2000 = 3.2%。

DRAM 还采用地址复用:行地址与列地址分两次送(用 RAS、CAS 信号),引脚数减半,这也是 DRAM 比 SRAM 慢的原因之一。

4.2.2 只读存储器与 Flash

类型写入方式擦除
MROM(掩膜 ROM)出厂时由掩膜决定不可
PROM用户一次性编程(熔丝)不可
EPROM紫外线照射擦除可(整片)
EEPROM电擦除,可按字节改写可
Flash(闪存)电擦除,按块操作、非易失可(按块)

Flash 是 U 盘、SSD、BIOS 的主流介质:非易失、可电擦写、按块擦除,写之前必须先擦除整块。

4.3 半导体存储器的组织逻辑(主存设计)

单片芯片容量不够,就用多片组合:位扩展加宽数据、字扩展增加单元数。

位扩展与字扩展

  • 位扩展:各芯片地址线与片选并联,数据线分别接数据总线的不同位。如 8 片 8K×1 拼成 8K×8。
  • 字扩展:各芯片数据线共用,高位地址经译码器产生片选信号,选择哪一片工作。如 4 片 8K×8 拼成 32K×8。
  • 字位同时扩展:先位扩展成小组,再字扩展成多组。

例:用 8K × 8 的芯片构成 32K × 16 的主存。 片数 = (32K / 8K) × (16 / 8) = 4 × 2 = 8 片。 地址线:32K 单元需 15 位(A0A14);片内 8K 用 13 位(A0A12);高位 A13、A14 接 2-4 译码器产生 4 个片选,每个片选同时选通"位扩展"的两片。数据线:两组各 8 位拼成 16 位。

4.4 磁存储原理与磁盘

4.4.1 磁盘结构与容量

磁盘按"盘面—磁道—扇区"组织:同一半径上所有盘面的磁道构成一个柱面。

磁盘几何:磁道、扇区、柱面、簇

  • 容量:总容量 = 盘面数 × 每面磁道数 × 每道扇区数 × 每扇区字节数;
  • 存取时间:Ta = 寻道时间 + 旋转等待时间 + 数据传输时间;
  • 平均旋转等待时间 = 转半圈的时间 = 1 / (2r)(r 为转速,单位 r/s)。

例:转速 7200 r/min = 120 r/s,则一圈 8.33 ms,平均旋转等待 ≈ 4.17 ms。

4.4.2 RAID

RAID(廉价磁盘冗余阵列)用多块磁盘组合出更高性能/可靠性:

级别思想特点
RAID 0条带(striping)容量与速度提升,无冗余,坏一块全丢
RAID 1镜像(mirroring)100% 备份,可靠性高,利用率 50%
RAID 2/3位/字节交叉 + 校验盘校验盘成瓶颈,已少用
RAID 4块交叉 + 专用校验盘同上
RAID 5块交叉 + 分布式校验兼顾性能与冗余,最常用

RAID 0:数据条带化,无冗余

RAID 5:校验信息分布在各盘上

4.5 光存储(了解)

CD/DVD/蓝光用激光在介质上读写,容量大、成本低、便于分发,但读写速度与随机访问能力不及磁盘;现代更多作为归档与备份介质。

4.6 高速缓冲存储器 Cache

4.6.1 工作原理

Cache 把主存中近期常用块的副本放到 CPU 附近,使绝大多数访问不必直接等主存。命中时按 Cache 速度,未命中时才访问主存并把整块调入。

性能公式(设命中率 h、Cache 存取时间 Tc、主存存取时间 Tm):

平均访问时间 Ta = h × Tc + (1 − h) × Tm

例:h = 0.95,Tc = 2 ns,Tm = 20 ns,则 Ta = 0.95×2 + 0.05×20 = 2.9 ns;相较不用 Cache 的 20 ns,加速约 20 / 2.9 ≈ 6.9 倍。可见命中率对性能影响极大。

4.6.2 三种映射方式与地址划分

主存地址字段如何切分,取决于映射方式:

Cache 三种映射方式的地址字段划分

映射方式地址字段划分主存块去向比较范围
直接映射标记 + 行号 + 块内地址固定行:行号 = 块号 mod 行数只比较 1 个
全相联标记 + 块内地址任意行比较所有行
组相联(n 路)标记 + 组号 + 块内地址固定组内任意行比较组内 n 行

直接映射:主存块 → 固定 Cache 行

组相联映射:组内任意放置

地址字段的计算方式(直接映射示例)

例:主存地址 32 位,Cache 采用 4 路组相联,块大小 16 B,共 64 组。 块内地址 = log₂16 = 4 位;组号 = log₂64 = 6 位;标记 = 32 − 4 − 6 = 22 位。 这类题的通用套路:先算块内位数,再算行数/组数位数,剩下的都给标记。

4.6.3 替换算法与写策略

替换算法(直接映射无需替换;组相联/全相联需要):FIFO(先进先出,简单但易淘汰常用块)、LRU(最近最少使用,最贴近局部性)、LFU(最少使用频次)、随机。

写策略:

写策略做法优点缺点
写直达(Write-through)同时写 Cache 与主存一致性好、实现简单访存流量大,需写缓冲
写回(Write-back)只写 Cache,置"脏位",被替换时才写主存减少访存一致性维护复杂

4.6.4 多级 Cache

现代 CPU 用 L1(分指令/数据)、L2、L3 三级:L1 最小最快、L3 容量大且多核共享。

4.7 虚拟存储器

虚拟存储器由主存 + 辅存两级构成,目标是让程序员看到一个远大于物理内存的逻辑地址空间,并支持多道程序互不干扰。

虚拟存储器:逻辑地址空间 → 物理内存(缺页时从磁盘调入)

虚拟地址空间与物理地址空间的关系

4.7.1 页式虚拟存储器与地址变换

虚地址划分为虚页号 + 页内地址,经页表把虚页号映射为物理页号,再拼上页内地址得到物理地址。多级页表用于压缩页表体积。

TLB(快表) 是页表项的硬件高速缓存,用来加速地址变换:

TLB:页表项的高速缓存

地址变换流程:查 TLB → 命中则直接得到物理页号;未命中则查页表 → 更新 TLB。

对比Cache虚拟存储器
缓存对象主存中的数据块主存与辅存间的页/段
管理者纯硬件硬件 + 操作系统
目的提高访存速度扩大逻辑空间、多道程序保护
缺失代价访问主存(约百纳秒)访问磁盘(约毫秒级,高 5~6 个数量级)

例:虚地址 32 位、页大小 4 KB。页内地址 12 位、虚页号 20 位,页表项数 = 2^20 = 1M;若每项 4 B,页表大小 = 4 MB。

4.8 典型题

题 1(Cache 地址划分):某 Cache 共 4K 行、块大小 64 B,直接映射,主存 32 位,求各字段位数。

解:块内 = log₂64 = 6 位;行号 = log₂4096 = 12 位;标记 = 32 − 6 − 12 = 14 位。

题 2(平均访问时间):Cache 存取 5 ns,主存 50 ns,命中率 0.9。求平均访问时间。

解:Ta = 0.9×5 + 0.1×50 = 4.5 + 5 = 9.5 ns。

题 3(存储器扩展):用 16K × 4 的芯片构成 64K × 8 的存储器,需要多少片?地址如何分配?

解:片数 = (64K/16K) × (8/4) = 4 × 2 = 8 片。64K 需 16 位地址;片内 16K 用 14 位(A0~A13);A14、A15 接译码器产生 4 组片选,每组两片并联完成位扩展。

题 4(磁盘):磁盘共 8 个盘面、每面 1000 条磁道、每道 64 个扇区、每扇区 512 B,求容量。

解:8 × 1000 × 64 × 512 B = 262 144 000 B ≈ 250 MB。

更多练习:见附录 C 自测清单。


5. 第 5 章 总线与 I/O 子系统

本章回答"各部件怎么连起来、数据怎么高效搬运"。主线:总线(通道)→ 四种传送控制方式(PIO、中断、DMA、IOP)。

5.1 I/O 子系统概述

I/O 子系统由 I/O 设备、I/O 接口、总线三部分组成。设备与主机在速度、数据格式、控制方式、时序上差异巨大(如 CPU 纳秒级、键盘毫秒级),必须由 I/O 接口居中协调。

I/O 接口的典型功能:

功能说明
数据缓冲用数据寄存器/缓冲器弥合速度差
地址译码判断本次访问是否选到自己
状态记录用状态寄存器反映设备忙/闲/错
命令控制接收并解释 CPU 发来的命令
格式与时序转换串/并转换、电平与时序匹配
中断请求设备就绪时向 CPU 发中断

接口内部包含一组端口(数据端口、状态端口、控制端口)。编址方式有两种:统一编址(与主存共用地址空间,用普通访存指令访问,占用内存地址)与独立编址(有专用 I/O 指令与独立地址空间,需专门的输入输出指令)。

5.2 总线

5.2.1 概念与分类

总线是连接多个部件的公共信息传送通道,其特点是分时共享(同一时刻只允许一个部件发送)。

系统总线:数据总线、地址总线、控制总线

分类角度类型说明
位置片内总线 / 系统总线 / 通信总线系统总线又分数据、地址、控制三类
传输方式串行 / 并行串行省线但慢,并行快但成本高、易受串扰
时序同步 / 异步见下文

三条系统总线的方向性常考:

  • 数据总线:双向,宽度与机器字长/存储字长有关;
  • 地址总线:单向(CPU → 存储器/接口),宽度决定可寻址空间;
  • 控制总线:部分出、部分入,宽度反映控制能力。

总线上的部件要"能挂上去又不互相干扰",靠三态门(输出高电平、低电平、高阻三种状态):不发言者处于高阻态,相当于从电路上"断开"。

三态门:高阻态使部件与总线脱开

5.2.2 性能指标

总线带宽是最常考的计算:

总线带宽 = 总线宽度(字节) × 每秒可传送次数

例 1:总线宽度 32 位、时钟频率 66 MHz、每个时钟周期传送一次 → 4 B × 66×10⁶ = 264 MB/s。 例 2:总线宽度 16 位、时钟 8 MHz,但每 2 个时钟周期才能传送一次 → 2 B × 8×10⁶/2 = 8 MB/s。做题必须先确认"每个时钟传送几次",这是最常见的失分点。

5.2.3 总线仲裁(谁用总线)

多个主设备同时请求时,由仲裁器决定使用权。集中式三种方式:

方式原理优点缺点
链式查询授权信号沿设备链依次传递线少、最简单优先级固定,对高优先级有利、故障敏感
计数器定时查询计数器计到请求设备号时授权优先级可灵活改变多一组计数线,速度居中
独立请求每个设备有独立的请求/授权线响应最快、优先级灵活线多、控制最复杂

优先级仲裁的请求—授权时序(BR/GRANT)

分布式仲裁把仲裁逻辑分散到各设备,无需中央仲裁器。

5.2.4 总线定时

定时方式做法优点缺点
同步定时统一时钟,各事件在固定节拍发生简单、速度快受最慢设备牵制,无法适应速度差异大的设备
异步定时请求—应答握手(Request/Ack)灵活,能兼容快慢设备控制复杂,握手有额外开销

异步握手又分:不互锁(主方发出请求后不等回答就撤销)、半互锁(请求保持到收到回答,回答不等撤销)、全互锁(双方都等对方撤销,最可靠最慢)。

5.3 程序传送模式(PIO)

CPU 通过程序主动查询设备状态:读状态寄存器 → 判断"就绪" → 传送数据。分无条件传送(设备始终就绪,如开关量)与条件传送(查询式)。

优点:硬件最简单,无需中断逻辑。缺点:CPU 在等待期间空转,利用率极低;且 CPU 与设备不能并行。

5.4 中断模式

5.4.1 基本概念

设备就绪时主动向 CPU 发出中断请求,CPU 执行完当前指令后响应,暂停原程序转去执行中断服务程序,处理完再返回。CPU 与设备可以并行工作,效率显著高于查询方式。

中断:CPU 执行主程序与响应中断的时间关系

中断按来源分内中断(异常)与外中断(I/O 中断、时钟中断等);按可否屏蔽分可屏蔽中断与不可屏蔽中断。

5.4.2 中断处理流程(必背)

中断响应条件:① 有中断请求;② CPU 允许中断(开中断);③ 当前指令执行完毕。

处理流程:

  1. 关中断(防止响应过程被打断);
  2. 保存断点(把 PC 与 PSW 压栈);
  3. 识别中断源(软件查询或硬件向量);
  4. 转入中断服务程序(保护现场后执行服务);
  5. 恢复现场、开中断、返回断点(中断返回指令)。

中断优先级决定多个请求同时到来时先服务谁;中断屏蔽字决定当前服务程序允许哪些中断打断自己(实现中断嵌套)。

例:四个中断源优先级 A > B > C > D,屏蔽字中 1 表示屏蔽、0 表示开放。为保证"高优先级可打断低优先级、低优先级不能打断高优先级",各级服务程序应设置:

服务程序ABCD
A1111
B0111
C0011
D0001

中断向量:每个中断源对应一个固定地址(向量),CPU 按向量取服务程序入口。**多重中断(中断嵌套)**指服务程序执行期间响应更高优先级请求。

5.5 DMA 模式

DMA(直接存储器存取) 由专门的 DMA 控制器接管总线,在主存与设备之间直接成块搬运数据,不需要 CPU 逐字干预。

DMA 控制器在 CPU、主存、设备之间充当"搬运工"

三种数据交换方式(DMA 与主存争用总线时):

方式做法特点
停止 CPU 访存DMA 传送期间 CPU 完全停访存简单,但 CPU 效率受损
周期挪用(周期窃取)DMA 每传一个字/字节挪用一次总线周期最常用,兼顾双方
DMA 与 CPU 交替访存把存取周期分给两者交替使用无需申请总线,效率高但硬件复杂

DMA 与中断的区别(必背):

对比中断方式DMA 方式
数据传送单位一个字/字节数据块
是否经过 CPU经 CPU 参与不经过 CPU,直接主存 ↔ 设备
CPU 介入时刻每次传送都需响应只在开始初始化与结束
优先级低于 DMADMA 请求优先级更高
适用场合低速、随机、少量高速、成块、大量

例:磁盘以 2 MB/s 向主存传送 4 KB 数据,DMA 传送时间 = 4096 B / 2×10⁶ B/s ≈ 2 ms;这 2 ms 中 CPU 可继续执行其它程序,只在传送结束后响应一次 DMA 完成中断。

把三种方式放在同一时间轴上对比,CPU 的"有效工作比例"一目了然:

三种 I/O 传送方式的 CPU 占用对比

5.6 IOP 与 PPU

模式说明
IOP(输入输出处理机)/ 通道有自己的指令系统,能执行通道程序,一次控制一批设备的成组数据传送;CPU 只需发一条 I/O 指令
PPU(外围处理机)功能更强的 I/O 专用处理机,可分担设备管理、码制转换、差错处理等任务,进一步解放 CPU

从 PIO → 中断 → DMA → IOP/PPU,本质是CPU 对 I/O 干预程度逐级下降,并行度逐级提高。

5.7 典型题

题 1(总线带宽):某总线数据线 64 位,工作频率 133 MHz,每个时钟周期传送 2 次数据,求带宽。

解:8 B × 133×10⁶ × 2 = 2128 MB/s ≈ 2.1 GB/s。

题 2(中断流程):写出 CPU 响应中断后的前四步操作。

解:关中断 → 保存断点(PC/PSW 压栈)→ 判别中断源(取中断向量)→ 转入中断服务程序。

题 3(DMA):为什么 DMA 的优先级通常高于中断?

解:DMA 与主存/设备之间的数据是一个字一个字连续传送的,若被中断打断,可能造成数据丢失或设备缓存溢出。因此 DMA 请求通常设为最高优先级(或与 CPU 交替使用总线),以保证传输不中断。

更多练习:见附录 C 自测清单。


6. 第 6 章 I/O 设备及其接口

本章以记忆为主,重点是各类设备的工作原理、关键参数与常见计算。

6.1 概述

I/O 设备实现人与计算机、计算机与外部世界的信息交换,其功能可归纳为信息转换(把外部信息变成机内形式,或反之)与人机交互。设备通过接口与主机相连,接口负责"速度匹配、格式转换、控制信号转换"。

按信息传送方向分为输入设备、输出设备、输入输出兼用设备(磁盘、终端);按信息形态分为字符设备与块设备。

6.2 键盘

键盘是典型输入设备,核心是矩阵扫描:把按键排成行列矩阵,主机通过逐行/逐列扫描判断哪个键被按下。

键盘矩阵扫描:行列线交叉定位按键

需要处理两个问题:

  • 抖动(bounce):机械触点闭合时会多次弹跳,用硬件(RC 滤波、触发器)或软件(延时重读)去抖;
  • 键码转换:把位置信息(扫描码)转换为可用编码(如 ASCII 或系统键码)。

6.3 显示器件

CRT(阴极射线管):电子束轰击荧光屏发光,按光栅扫描一行行绘制,需要不断刷新才能维持画面。

CRT 显示器结构与光栅扫描

LCD(液晶显示器):利用液晶分子在电场下改变透光性成像,依靠背光 + 偏振工作,薄、轻、省电,是当代主流;TFT 表示每个像素由薄膜晶体管独立控制,响应更快、画质更好。

关键参数与常考计算:

参数含义
分辨率水平 × 垂直像素数
点距相邻像素中心距离
刷新率每秒重绘次数(Hz)
灰度/色彩深度每像素位数,如 24 位真彩色

显存容量计算:显存容量 = 水平分辨率 × 垂直分辨率 × 每像素位数 / 8。

例:1920 × 1080、24 位真彩色 → 1920 × 1080 × 24 / 8 B = 5.93 MB,即至少约 6 MB 显存(若采用双缓冲则再乘 2)。

6.4 打印设备

类别代表原理特点
击打式点阵打印机打印针撞击色带可复写、噪音大、慢
非击打式激光打印机激光成像 + 静电吸附墨粉 + 加热定影快、清晰、无噪音
非击打式喷墨打印机喷嘴喷射墨滴彩色成本低、速度适中

激光打印机成像过程:充电—曝光—显影—转印—定影

打印速度常用 CPS(字符/秒)或 PPM(页/分钟)表示。

6.5 典型题

题 1(显存):分辨率 1024 × 768、8 位灰度,单缓冲显存至少多大?

解:1024 × 768 × 8 / 8 = 786 432 B = 768 KB。

题 2:为什么激光打印机比点阵打印机快?

解:激光打印机以"页"为单位整页成像,感光鼓转速快、无机械击打;点阵打印机靠打印针逐列撞击,机械惯性限制了速度。

更多练习:见附录 C 自测清单。


附录 A 配图版权与来源

本资料的配图分两类:

  1. 开放版权原理图:取自 Wikimedia Commons 等公共资源(下表逐图列出出处与许可证)。均为无水印原图,按 CC 系列许可证保留署名,供学习与非商业传播使用。
  2. 自绘示意图:数据通路、微程序控制器、系统层次结构、寻址方式、Cache 映射与地址字段、存储器扩展、补码钟表、指令周期、五级流水线时空图、三种 I/O 传送方式对比等图为本站原创绘制,可自由使用。
图片文件原始文件(Wikimedia Commons)作者许可证
ex-5stage.webp5 Stage Pipeline.svgInductiveloadPublic domain
ex-alu-block.webpALU block-zh-cn.svgDonlon (vectorization and translation) based on File:ALU blo…CC BY-SA 4.0
ex-alu-datapaths.webpALU data paths.svgLambtronCC BY-SA 4.0
ex-barrel-shifter.webpBarrel shifter function.svgBattlePeasantPublic domain
ex-bus-arbitration.webpPriority bus arbitration.pngLuca GhioCC BY-SA 3.0
ex-bus.webpComputer system bus.svgW NowickiCC BY-SA 3.0
ex-cache-address.webpAddress direct mapped cache.svgUser:KCVelagaCC BY-SA 4.0
ex-cache-direct.webpDirect Mapped Cache.svgFerry24.MilanCC BY-SA 4.0
ex-cache-setassoc.webpSet Associative Cache.svgFerry24.MilanCC BY-SA 3.0
ex-crc.webpCrc shift register 1.svgBiezlPublic domain
ex-crt.webpCRT color enhanced.pnggrmwnr (homewiki)CC BY-SA 3.0
ex-dma-controller.webpDMA controller.pngLuca GhioCC BY-SA 3.0
ex-dram-cell.webpOriginal 1T1C DRAM design.svgCyferz at English WikipediaCC BY 2.5
ex-float-general.webpGeneral floating point.svgUser:StanneredCC BY-SA 3.0
ex-hamming74.webpHamming(7,4) as bits.svgen:User:CburnettCC BY-SA 3.0
ex-harvard.webpHarvard architecture.svgNessa losCC BY-SA 3.0
ex-hdd-geometry.webpHard drive geometry - English - 2019-05-30.svgHenry Mühlpfordt, png version from 2010: BagokCC BY-SA 4.0
ex-ieee754-double.webpIEEE 754 Double Floating Point Format.svgCodekaizenCC BY-SA 4.0
ex-ieee754-single.webpIEEE 754 Single Floating Point Format.svgCodekaizenCC BY 3.0
ex-instruction-cycle.webpCPT-fetch-execute-MAR-PC-ans1.svgPlukeCC0
ex-interrupt.webpInterrupt.svgWhiteknight at English WikibooksCC BY-SA 3.0
ex-keyboard-matrix.webpMatrix scan current flow with diodes.svgDaniel beardsmorePublic domain
ex-laser-writing.webpLaser printer-Writing.svgen:User:DMahalko, traced by User:StanneredCC BY 3.0
ex-memhierarchy.webpComputer Memory Hierarchy.svgComputerMemoryHierarchy.png: User:Danlash at en.wikipedia.or…Public domain
ex-mips-pipeline.webpMIPS Architecture (Pipelined).svgInductiveloadPublic domain
ex-raid0.webpRAID 0.svgen:User:CburnettCC BY-SA 3.0
ex-raid5.webpRAID 5.svgen:User:CburnettCC BY-SA 3.0
ex-regfile.webpRegister File Medium.svgWhiteknight at English WikibooksCC BY-SA 3.0
ex-sram6t.webpSRAM Cell (6 Transistors).svgInductiveloadPublic domain
ex-tlb.webpTranslation Lookaside Buffer.pngAravind krishnaCC BY-SA 4.0
ex-tristate.webpTristate buffer corrected.svgTraced by User:StanneredPublic domain
ex-vm-space.webpVirtual address space and physical address space relationship.svgTraced by User:Stannered, original by en:User:DysprosiaBSD
ex-vm.webpVirtual memory.svgEhambergCC BY-SA 3.0
ex-von-neumann.webpVon Neumann architecture.svgChris-martin, AeroidCC BY-SA 3.0

共 34 张开放版权配图。若你是原作者且不希望被引用,可联系站长删除。


附录 B 易混概念对比汇总(判断与选择常考)

对比一句话区分
原码 vs 补码原码直观但 0 有二义;补码 0 唯一、减法化加法
移码 vs 补码移码 = 补码符号位取反,便于比较阶码大小
定点 vs 浮点定点范围小精度固定;浮点范围大、需规格化
机器字长 vs 存储字长 vs 指令字长一次处理位数 vs 一个存储单元位数 vs 一条指令位数
码距 d=2 vs d=3只能检 1 位错(奇偶)vs 能纠 1 位错(海明)
单符号位 vs 双符号位判溢出看两同号相加结果变号 vs 看 01/10
基址 vs 变址寻址基址面向系统(重定位);变址面向用户(数组遍历)
相对寻址的基准是取指后的 PC,不是当前指令地址
CISC vs RISC指令多而变长、微程序 vs 指令少而定长、硬布线、宜流水
硬布线 vs 微程序控制器速度快不灵活 vs 灵活但慢,改微程序即可
微程序 vs 微指令 vs 微命令一段程序 vs 一条指令 vs 一个控制信号
指令周期 vs 机器周期 vs 时钟周期层层包含:指令 ⊃ 机器 ⊃ 时钟(节拍)
单周期 vs 多周期 CPUCPI=1 但时钟取最长指令 vs CPI 大于 1 但时钟更短
SRAM vs DRAM触发器/不需刷新/快贵作 Cache vs 电容/需刷新/慢密作主存
位扩展 vs 字扩展拼数据位(地址并联)vs 译码选片(增加单元数)
DRAM 集中 vs 分散 vs 异步刷新有长死区 vs 无长死区但拖慢系统 vs 均匀分散(常用)
直接映射 vs 全相联 vs 组相联固定行 vs 任意行 vs 组内任意行
写直达 vs 写回每次同步写主存 vs 只写 Cache 置脏位、替换时写回
Cache vs 虚拟存储器缓存主存数据(纯硬件)vs 扩大逻辑空间(硬件+OS)
Cache vs TLB缓存主存数据块 vs 缓存页表项;都靠局部性
存储周期 vs 存取时间周期 ≥ 时间,因为读后需要恢复
同步 vs 异步总线定时统一时钟节拍 vs 握手应答(不互锁、半互锁、全互锁)
链式查询 vs 独立请求仲裁线少简单、优先级固定 vs 线多、最快、优先级灵活
程序查询 vs 中断CPU 空转轮询、不能并行 vs 设备主动打断、可并行
中断 vs DMA传送单位字、经 CPU、每字介入 vs 传送数据块、不经 CPU、首尾介入
中断 vs 异常外中断(I/O、时钟)vs 内中断(除零、缺页等)
屏蔽 vs 不可屏蔽中断可用中断屏蔽字禁止 vs 必须响应(如电源故障)
统一编址 vs 独立编址与主存共用地址空间 vs 专有 I/O 指令与地址空间
分辨率 vs 刷新率像素数量 vs 每秒重绘次数

附录 C 考前自测清单

第 1 章

  • 能默写冯·诺依曼体制的四条基本思想与五大部件的分工
  • 能说出冯·诺依曼结构与哈佛结构的区别及各自适用场景
  • 能画出/说出计算机系统的多级层次结构及各级翻译方式
  • 会算 CPU 执行时间与 MIPS,能解释"主频高不一定更快"
  • 会用 Amdahl 定律算整体加速比

第 2 章

  • 原码/反码/补码/移码互求(含 8 位与 16 位各一题)
  • 能解释"为什么用补码",能写出 n 位补码范围
  • 定点小数的表示范围与精度会算
  • IEEE 754 单/双精度的编码与译码各做过一题(含偏置与隐含位)
  • 能说出 E、M 全 0/全 1 时的四种特殊值
  • 区位码 → 国标码 → 机内码的换算做过一题
  • 大端/小端字节序写得出示例
  • 三种溢出判断方法都会用
  • 算术移位与逻辑移位的区别能举例
  • 原码一位乘与 Booth 各手推过一题
  • 原码除法(恢复余数/加减交替)思路能说清
  • 浮点加减五步流程能默写,知道"对阶是小阶向大阶看齐"
  • 海明码校验位数会算,会用校验和定位错位
  • CRC 模 2 除法手算过一题

第 3 章

  • CPU 四大功能与主要寄存器(PC/IR/MAR/MDR/AC/PSW)作用能默写
  • 扩展操作码题做过两题,理解"操作码不能互为前缀"
  • 八种寻址方式的有效地址会算(注意相对寻址用取指后的 PC)
  • CISC 与 RISC 的对比表能默写
  • MIPS32 的 R/I/J 型格式能画出
  • 寄存器组、桶形移位器、ALU 的组成能说清
  • 单总线数据通路能画出,ADD 指令的微操作序列与控制信号能逐拍写
  • 硬布线与微程序控制器的组成、优缺点、适用场合能默写
  • 微指令的三种编码方式会对比
  • 会算控制存储器容量(指令数 × 微指令数 × 字长)
  • 指令周期/机器周期/时钟周期的关系能画,四阶段能默写
  • 单周期与多周期的 CPI、时钟周期取舍能解释,会算平均 CPI
  • 五级流水线时空图会画,加速比/吞吐率/效率会算
  • 三类冒险及解决办法能默写
  • 超标量、超流水、VLIW、SIMD、多核的基本概念能区分

第 4 章

  • 存储层次结构与局部性原理能画出/解释
  • SRAM 与 DRAM 对比表能默写;三种刷新方式会说
  • DRAM 集中刷新的死时间率会算
  • ROM 家族与 Flash 的特点能区分
  • 位扩展/字扩展/字位同时扩展的主存设计题做过一题
  • Cache 三种映射方式、地址字段划分、比较器数量能对比
  • Cache 地址划分题做过两题(直接映射与组相联各一)
  • 平均访问时间与加速比会算
  • 替换算法(FIFO/LRU/LFU)与写策略(写直达/写回)能对比
  • 虚拟存储器与 Cache 的区别能说清
  • 页式地址变换流程与 TLB 的作用能说清,页表大小会算
  • 磁盘容量、存取时间、平均旋转等待时间会算
  • RAID 0/1/5 的思想与冗余代价能对比

第 5、6 章

  • 三总线(数据/地址/控制)的方向与作用能默写
  • 总线带宽会算(含"每时钟传送几次"的坑)
  • 三种集中式仲裁方式能对比
  • 同步/异步定时、三种握手协议能对比
  • 中断响应条件与处理流程能默写
  • 中断屏蔽字表能推导
  • DMA 与中断的区别表能默写;DMA 三种交换方式会说
  • PIO/中断/DMA/IOP 的发展脉络能说清
  • 键盘矩阵扫描与去抖能解释
  • CRT 与 LCD 的区别、显存容量会算
  • 激光/喷墨/点阵打印机原理能区分

附录 D 常用术语英中对照

缩写英文中文
ALUArithmetic Logic Unit算术逻辑单元
CPICycles Per Instruction每条指令平均时钟周期数
MIPSMillion Instructions Per Second每秒百万条指令
PSWProgram Status Word程序状态字
MAR / MDRMemory Address / Data Register存储器地址 / 数据寄存器
CISC / RISCComplex / Reduced Instruction Set Computer复杂 / 精简指令集计算机
EAEffective Address有效地址
TLBTranslation Lookaside Buffer快表 / 地址变换缓冲
MMUMemory Management Unit存储器管理部件
SRAM / DRAMStatic / Dynamic Random Access Memory静态 / 动态随机存取存储器
ROMRead-Only Memory只读存储器
RAIDRedundant Array of Independent Disks独立磁盘冗余阵列
DMADirect Memory Access直接存储器存取
IOPInput/Output Processor输入输出处理机
PIOProgrammed Input/Output程序控制输入输出
CRCCyclic Redundancy Check循环冗余校验
BCDBinary-Coded Decimal二进制编码的十进制数
ISAInstruction Set Architecture指令集体系结构
LSB / MSBLeast / Most Significant Bit最低 / 最高有效位
BTBBranch Target Buffer分支目标缓冲(分支预测)

全文完。复习顺序建议:第 2、3、4 章(分值最高,以计算与设计为主)→ 第 1 章(概念 + 小计算)→ 第 5 章(总线带宽、中断与 DMA)→ 第 6 章(记忆为主)。考前最后一晚只看附录 B、C 与各章"典型题"。