《计算机组成原理》知识图谱 · 考点地图
教材:白中英《计算机组成原理》(10 章体系) 用途:先看这份”地图”,建立全课骨架;再去看 02_a+b学习手册 填血肉;最后用 03_模拟卷与小白深度解析 检验。 阅读顺序建议:先把第 1 节”两棵大树”和第 3 节”a+b 全书地图”看懂,整门课你就已经赢了一半。
0. 一句话告诉你这门课在干嘛
- 专业版:计算机组成原理研究的是”一台冯·诺依曼计算机,如何用硬件把存储在内存里的程序(一串二进制指令)自动地、一条接一条地取出来并执行”。
- 大白话版:就是把”你写的代码到底是怎么在那块铁皮里跑起来的”这件事,从头到尾拆开揉碎讲清楚。
整门课我们用一个最简单的程序当主角,让它”活一遍”,把 10 章串成一个故事:
#include <stdio.h>
int main() {
int a, b;
scanf("%d %d", &a, &b); // 从键盘读两个整数
printf("%d", a + b); // 把它们的和打印到屏幕
return 0;
}这个程序虽然小,但它用到了整台计算机的几乎所有部件:要表示数(a、b)、要算加法、要存程序和数据、要有指令告诉CPU干啥、要CPU一步步执行、要总线把部件连起来、要键盘输入和屏幕输出。所以”麻雀虽小,五脏俱全”。
1. 全课总框架:两棵大树(必须先刻进脑子)
大树一:一台计算机由什么组成(硬件 + 软件)
给第一次看的你
下面这棵大树会出现很多专业名词(ALU、寄存器、Cache、DRAM…),现在看不懂是正常的——这里只是给你一张”全景地图”,让你知道有哪些部件。每个名词在 02_a+b学习手册 的序章 0 和各章里都会从零解释,所以不要在这里卡住,浏览个大概形状就够了。
计算机系统
├── 硬件系统 (Hardware,看得见摸得着的)
│ ├── 主机 (Host)
│ │ ├── CPU 中央处理器
│ │ │ ├── 运算器 (ALU + 通用寄存器 + 数据缓冲寄存器DR + 状态字PSW)
│ │ │ ├── 控制器 (PC程序计数器 + IR指令寄存器 + 译码器 + 时序 + 操作控制器)
│ │ │ └── Cache 高速缓存 (现代CPU把它也搬进了CPU)
│ │ └── 内存 / 主存 (Main Memory)
│ │ ├── RAM 随机存储器 (断电丢失:SRAM/DRAM)
│ │ └── ROM 只读存储器 (断电不丢:MROM/PROM/EPROM/EEPROM/Flash)
│ └── 外设 (Peripherals)
│ ├── 输入设备 (键盘、鼠标、扫描仪…)
│ ├── 输出设备 (显示器、打印机…)
│ ├── 外存 (磁盘、磁带、光盘、U盘… 容量大但慢)
│ └── 适配器/接口 + 总线 (把上面这些连起来的"路")
│
└── 软件系统 (Software,看不见的程序)
├── 系统软件 (给程序员和机器服务的)
│ ├── 操作系统 OS
│ ├── 语言处理程序 (汇编器、编译器、解释器)
│ ├── 数据库管理系统 DBMS
│ └── 各种服务程序 (诊断、排错…)
└── 应用软件 (给最终用户解决具体问题的:办公、游戏、你写的a+b…)
易混点:主存 vs 外存 —— 主存(内存)CPU能直接访问、快、断电丢;外存(磁盘)CPU不能直接访问、慢、断电不丢。 现代计算机硬件 = 运算器 + 存储器 + 控制器 + 适配器 + 总线 + I/O设备。
大树二:从你写的代码到机器执行(层次结构 / 虚拟机)
你看到的世界 谁来翻译
┌─────────────────────────┐
│ M6 应用程序级 │ ← 你点的图标、你的a+b.exe 应用软件
├─────────────────────────┤
│ M5 高级语言级 (C/Python) │ ← 你写的源代码 ┐
├─────────────────────────┤ │ 系统软件
│ M4 汇编语言级 (ADD/MOV) │ ← 给人看的助记符 ┘ (编译器/汇编器)
├─────────────────────────┤
│ M3 操作系统级 │ ← 管理资源、调度
├─────────────────────────┤
│ M2 机器语言级 (机器指令) │ ← 一串01,CPU真正认识的 ┐
├─────────────────────────┤ │ 硬件
│ M1 微程序设计级 (微指令) │ ← 把一条机器指令拆成更小的动作 ┘
├─────────────────────────┤
│ M0 硬联逻辑级 (门电路) │ ← 最底层的与或非、触发器
└─────────────────────────┘
- 专业版:每一层都是一台”虚拟机”,上层用下层提供的语言/功能来实现自己;下层对上层尽量”透明”。
- 大白话版:就像点外卖——你(高级语言)只说”我要一份宫保鸡丁”,平台(编译器)翻译成订单,厨房(机器指令)真正去炒,你不用管菜怎么炒的,这就叫”对你透明”。
三个易混的”亲戚”(必考概念辨析):
- 系统结构 (Architecture):程序员看得见的属性(指令系统、数据表示、寻址方式…)→ 决定”软硬件分界面”。
- 组成 (Organization):系统结构的逻辑实现(用不用乘法器、数据通路多宽…)。
- 实现 (Implementation):组成的物理实现(用什么芯片、什么工艺)。
- 一句话记:结构=“做什么”,组成=“怎么做(逻辑)“,实现=“用什么做(物理)“。
2. 冯·诺依曼计算机(全课的”宪法”)
┌───────────────┐
输入设备 →│ │→ 输出设备
│ 存储器 │
│ (存程序+数据) │
└───┬───────┬───┘
│ │
指令↓ ↑数据
┌───────────────┐
│ 控制器 │←──┐
│ (发号施令) │ │ 控制信号
├───────────────┤ │
│ 运算器 │───┘
│ (干计算活) │
└───────────────┘
早期:以"运算器"为中心
冯·诺依曼计算机的 3 个核心思想(背!):
- 存储程序:程序和数据一样,事先以二进制形式存进存储器里。(大白话:菜谱和食材都放进同一个冰箱)
- 程序控制 / 按地址自动执行:CPU 按地址一条一条自动取指令、执行,不用人盯着。(大白话:照着菜谱一步步自动做,不用你喊一句它动一下)
- 五大部件:运算器、控制器、存储器、输入设备、输出设备。
考点辨析:早期冯氏机”以运算器为中心”,所有数据进出都经过运算器,效率低;改进后”以存储器为中心”,缓解了运算器瓶颈。
3. 【核心】a+b 程序的”全书地图” —— 10 章是如何串起来的
这张表是整个学习包的灵魂。每一章,本质上都是在回答”a+b 程序活一遍时,某个环节是怎么做到的”。
| 章 | 章名 | a+b 程序在这一章经历了什么 | 一句话定位 |
|---|---|---|---|
| 1 | 计算机系统概论 | 我(a+b)是个高级语言程序,要被翻译成机器能懂的样子,住进一台冯·诺依曼机器里 | 全局地图、概念框架 |
| 2 | 运算方法和运算器 | a 和 b 是 int,要先变成二进制(补码)存起来;a+b 这个加法到底怎么算、会不会溢出 | 数怎么存、怎么算 |
| 3 | 多层次的存储器 | 我的指令和变量 a、b 放在内存里;CPU 嫌内存慢,搞了 Cache;内存不够还能用虚存”画大饼” | 东西放哪、怎么放得又多又快 |
| 4 | 指令系统 | ”把 a 取来、加上 b、存回去”这些动作,要写成 CPU 认识的一条条机器指令 | CPU 的”词典” |
| 5 | 中央处理器 | CPU 真正开始干活:取指→译码→执行,一个节拍一个节拍地把我的加法做完 | 谁来干、怎么一步步干(全书最难最重) |
| 6 | 总线系统 | a 从内存到 CPU、结果从 CPU 到内存,走的都是”总线”这条公路;谁先走要”仲裁” | 部件之间的公路 |
| 7 | 外围设备 | scanf 的数据从键盘来,printf 的结果到显示器;它们存哪、长啥样 | 输入输出的”硬件” |
| 8 | 输入输出系统 | 键盘这么慢,CPU 这么快,怎么配合?查询/中断/DMA/通道四种打法 | 输入输出的”打法” |
| 9 | 并行体系结构 | 如果要同时算一万个 a+b,怎么更快?多核、流水、超线程 | 怎么变快 |
| 10 | 现代计算机系统结构 | 真实的现代机器(如安腾、酷睿)把前面所有东西怎么综合用起来 | 集大成的实例 |
记忆口诀:数(2)→存(3)→令(4)→算(5)→路(6)→设(7)→法(8)→快(9)。
4. 逐章知识树 + 重要度评分 + 考频 + 易错点
重要度 ★(1–10,10最高);考频指期末/408中出现频率。
第 1 章 计算机系统概论 ★★★★☆ 6/10
- 必考点:冯·诺依曼三特点与五大部件 ★9|系统结构/组成/实现三者区别 ★8|计算机层次结构(7级/虚拟机) ★7|性能指标公式 ★8
- 性能指标公式(计算题高频):
- CPU执行时间 = 时钟周期数 × 时钟周期 = 指令数IC × CPI × (1/主频f)
- CPI = 时钟周期数 / 指令数;MIPS = f / (CPI×10⁶) = IC/(Te×10⁶)
- Amdahl定律(加速比):S = 1 / [(1−Fe) + Fe/Se],Fe=可改进比例,Se=部件加速比
- 易错点:MIPS 不能跨指令系统比较;Amdahl 定律中”加速的是占比 Fe 那部分,不是整体”。
- 题型:选择、简答(三特点)、计算(性能/Amdahl)。
第 2 章 运算方法和运算器 ★★★★★ 9/10(计算题大户)
数据表示 ─┬─ 定点数 ─┬─ 纯小数 / 纯整数
│ └─ 机器码:原码 / 反码 / 补码 / 移码
├─ 浮点数 ─── IEEE754 (S阶码E尾数M)、规格化、阶码用移码、尾数用原码
├─ 字符 (ASCII) / 汉字 (国标码·内码·字模码)
└─ 校验码 (奇偶校验)
运算 ─────┬─ 定点加减:补码加减、溢出判断(双符号位/单符号位)
├─ 定点乘法:原码一位乘、阵列乘法器、补码乘
├─ 定点除法:原码恢复余数法、加减交替法(不恢复余数)
├─ 浮点加减:①对阶 ②尾数加减 ③规格化 ④舍入 ⑤判溢出
└─ 运算器:ALU(74181)、先行进位(74182)、单/双/三总线结构
- 超高频必考:补码加减+溢出判断 ★10|IEEE754 互相转换 ★10|浮点加减五步 ★9|原码/反码/补码/移码互换 ★9
- 易错点:
- 补码”模”:定点小数 mod 2,定点整数 mod 2ⁿ⁺¹;移码=补码符号位取反。
- 溢出 ≠ 进位!双符号位:00正/11负正常,01正溢/10负溢。
- IEEE754 单精度阶码偏移 127,双精度 1023;尾数有”隐藏的1”。
- 浮点对阶:小阶向大阶看齐(小数右移,阶码增大)。
- 题型:计算(占本章 80%)、选择、设计(ALU/进位)。
第 3 章 多层次的存储器 ★★★★★ 9/10
以下公式和名词清单供复习速查用。第一次学时请直接跳到 02d_第3章_多层次存储器 看详解,理解后再回来勾选。
存储器概述 ── 分级(Cache/主存/外存)、技术指标(容量/存取时间/存储周期/带宽)
半导体存储 ── SRAM(快,触发器) / DRAM(密,电容,需刷新) / ROM / Flash
└─ DRAM刷新:集中式 / 分散式 / 异步式
└─ 容量扩展:位扩展 / 字扩展 / 字位同时扩展
并行存储器 ── 双端口(空间并行) / 多模块交叉(时间并行)
Cache ──────┬─ 命中率、平均访问时间、访问效率
├─ 三种映射:全相联 / 直接 / 组相联 ★★★
├─ 替换:FIFO / LRU / LFU / 随机
└─ 写策略:写回 / 全写 / 写一次
虚拟存储器 ─┬─ 页式 / 段式 / 段页式
├─ 页表、快表TLB(慢表)、地址变换
└─ Cache与虚存的异同
- 超高频必考:Cache 三种地址映射 + 容量/标记位计算 ★10|命中率与平均访问时间计算 ★9|虚存页式地址变换 ★8|DRAM 刷新计算 ★7
- 易错点:
- 直接映射
i = j mod m(块号 mod Cache行数);组相联q = j mod u(块号 mod 组数)。 - 地址格式:主存地址 = 标记 + (组号) + 块内地址。会算每段位数是必考。
- Cache 全硬件、对程序员透明;虚存软硬件共管、对应用程序员透明但对系统程序员不透明。
- 直接映射
- 题型:计算(映射/命中率)、简答(三级存储、Cache与虚存区别)、分析。
第 4 章 指令系统 ★★★★☆ 7/10
指令格式 ── 操作码OP(定长/变长) + 地址码(三/二/一/零地址)
指令字长 ── 单字长/半字长/双字长
寻址方式 ─┬─ 指令寻址:顺序(PC+1) / 跳跃
└─ 数据寻址:立即/直接/间接/寄存器/寄存器间接/相对/基址/变址/隐含/段
指令分类 ── 传送/运算/控制/IO/串/特权…
CISC vs RISC ── RISC三要素:精简指令集 + 大量通用寄存器 + 流水线优化
- 必考点:各种寻址方式有效地址 EA 的计算 ★9|CISC/RISC 对比 ★8|指令格式与字长分析 ★8|操作码扩展 ★7
- 易错点:
- 相对寻址 EA=(PC)+D;基址 EA=(基址R)+A;变址 EA=(变址R)+A。基址寄存器内容由OS给、面向系统;变址面向用户、用于数组循环。
- RISC:“只有 Load/Store 访问存储器”是金标准。
- 题型:选择、简答(CISC/RISC)、计算(寻址、扩展操作码)。
第 5 章 中央处理器 ★★★★★ 10/10(全书最重最难)
CPU功能 ── 指令控制/操作控制/时间控制/数据加工
CPU组成 ── 运算器 + Cache + 控制器;六大寄存器(PC/IR/AR/DR/通用R/PSW)
指令周期 ─┬─ 取指周期 + 执行周期;机器周期(CPU周期) > 时钟周期(节拍)
└─ MOV/LAD/ADD/STO/JMP 各指令周期的数据通路
时序系统 ── 时钟源→环形脉冲→节拍→启停;同步/异步/联合控制
控制器 ──┬─ 微程序控制器:微命令/微指令/微程序、控存μCM、微地址形成、
│ 水平型/垂直型微指令、编码法
└─ 硬连线控制器:布尔表达式 = OP译码 · 节拍 · 状态
流水CPU ─┬─ 并行性:时间并行(流水)/空间并行(重复)
├─ 流水线时空图、加速比 Ck = nk/[k+(n-1)]
├─ 三大相关:资源相关/数据相关(RAW/WAR/WAW)/控制相关
└─ 超标量、超流水
RISC CPU ── 特点、流水优化
- 超高频必考:指令周期/数据通路分析 ★10|微程序设计(微指令格式、微地址形成、微操作信号) ★10|硬连线逻辑表达式 ★9|流水线相关冲突判断+时空图+加速比 ★10
- 易错点:
- 机器周期 ⊇ 时钟周期(一个机器周期含若干节拍)。
- 微指令 vs 机器指令:一条机器指令 = 一段微程序(多条微指令)。
- RAW=写后读(真相关,最常见);WAR=读后写;WAW=写后写。简单顺序流水线只有 RAW。
- “RISC 一定是流水CPU,但流水CPU不一定是RISC(如奔腾是CISC流水)”。
- 题型:分析设计(数据通路/微程序/硬连线)、计算(流水线性能)、简答。
第 6 章 总线系统 ★★★☆☆ 6/10
总线概念 ── 分类(数据/地址/控制)、特性(物理/功能/电气/时间)、性能(宽度/周期/带宽)
连接方式 ── 单总线 / 双总线 / 三总线 / 多总线(桥)
总线仲裁 ─┬─ 集中式:链式查询 / 计数器定时查询 / 独立请求
└─ 分布式
总线定时 ── 同步定时 / 异步定时(握手)
数据传送 ── 读写/块传送(猝发)/读改写/广播广集
标准总线 ── HOST/PCI/ISA/InfiniBand
- 必考点:总线带宽计算 ★9|三种集中式仲裁对比 ★8|同步/异步定时区别 ★8
- 易错点:带宽 = 一次传送字节数 × 总线频率;独立请求方式响应最快、最灵活,现代总线常用。
- 题型:计算(带宽)、简答(仲裁/定时)、选择。
第 7 章 外围设备 ★★★☆☆ 5/10
分类 ── 输入/输出/外存/数据通信/过程控制
磁盘 ─┬─ 磁记录原理、组成、温盘
├─ 信息分布:磁道/扇区/柱面
├─ 技术指标:存储密度/容量/存取时间(寻道+等待+传输)/数据传输率
└─ 磁盘Cache、RAID 0~6
光盘/磁光盘、磁带、显示设备(分辨率/灰度/刷新/显存容量)、打印机
- 必考点:磁盘容量/数据传输率/平均存取时间计算 ★9|RAID 各级特点 ★7|显存容量计算 ★7
- 易错点:平均等待时间 = 旋转一周时间 ÷ 2;柱面数 = 有效半径 × 道密度;文件应存”同一柱面”(省寻道)。
- 题型:计算(磁盘/显存)、简答(RAID)、选择。
第 8 章 输入输出系统 ★★★★☆ 7/10
定时与编址 ── 统一编址 / 独立编址
四种I/O方式 ─┬─ 程序查询:CPU死等,最浪费
├─ 程序中断:设备主动叫CPU;中断过程、向量中断、单/多级中断、屏蔽字
├─ DMA:硬件直传内存,三种方式(停CPU/周期挪用/交替访内)
└─ 通道:专用处理器,选择/字节多路/数组多路通道
接口标准 ── SCSI(并行) / IEEE1394(串行)
- 超高频必考:四种 I/O 方式对比 ★10|中断处理过程+中断屏蔽字 ★9|DMA 三种方式+传送过程 ★9|通道三种类型对比 ★7
- 易错点:
- 中断:指令执行结束才响应;DMA:一个总线/机器周期结束就可响应(更紧急、更快)。
- DMA 与 CPU 争的是”内存访问权(总线)“,不是中断 CPU 程序。
- 中断屏蔽字:响应某级后屏蔽本级及更低级,开放更高级。
- 题型:简答(四方式对比)、分析(中断优先级/屏蔽字)、计算(DMA/中断饱和)。
第 9 章 并行体系结构 ★★★☆☆ 5/10
- 必考点:Flynn 分类(SISD/SIMD/MISD/MIMD) ★8|并行性的两种含义/三条途径 ★7|多核优势”三高三低” ★6|超线程/SMT ★6|Cache一致性 ★6
- 易错点:MISD 实际不存在;超线程是”把1个核模拟成2个逻辑核”。
- 题型:选择、简答。
第 10 章 现代计算机系统结构 ★★☆☆☆ 3/10
- 安腾(IA-64/EPIC)、酷睿等实例,集大成。多为了解性内容,考试占比低,看懂前9章的综合即可。
5. 考点热力图(背这张表就抓住了 80% 的分)
| 排名 | 考点 | 所在章 | 重要度 | 最常见题型 | 出现概率 |
|---|---|---|---|---|---|
| 1 | 补码运算与溢出判断 | 2 | ★★★★★ | 计算 | 极高 |
| 2 | IEEE754 浮点数互转 | 2 | ★★★★★ | 计算/选择 | 极高 |
| 3 | Cache 三种映射 + 地址位数计算 | 3 | ★★★★★ | 计算/分析 | 极高 |
| 4 | 指令周期与数据通路分析 | 5 | ★★★★★ | 分析设计 | 极高 |
| 5 | 流水线相关冲突 + 时空图 + 加速比 | 5 | ★★★★★ | 分析/计算 | 极高 |
| 6 | 微程序控制器设计 | 5 | ★★★★★ | 分析设计 | 高 |
| 7 | 四种 I/O 方式对比 | 8 | ★★★★☆ | 简答 | 高 |
| 8 | 浮点加减运算五步 | 2 | ★★★★☆ | 计算 | 高 |
| 9 | 性能指标 / Amdahl 定律 | 1 | ★★★★☆ | 计算 | 高 |
| 10 | 寻址方式与有效地址 | 4 | ★★★★☆ | 选择/计算 | 高 |
| 11 | 中断处理 + 屏蔽字 | 8 | ★★★★☆ | 分析 | 中高 |
| 12 | 虚存页式地址变换 + TLB | 3 | ★★★★☆ | 计算/简答 | 中高 |
| 13 | 总线带宽计算 + 仲裁方式 | 6 | ★★★☆☆ | 计算/简答 | 中 |
| 14 | 磁盘容量/传输率/存取时间 | 7 | ★★★☆☆ | 计算 | 中 |
| 15 | 冯·诺依曼三特点 / 结构组成实现 | 1 | ★★★☆☆ | 简答/选择 | 中 |
| 16 | CISC vs RISC | 4 | ★★★☆☆ | 简答 | 中 |
| 17 | Flynn 分类 / 多核 / 超线程 | 9 | ★★★☆☆ | 选择/简答 | 中低 |
6. 题型分布与考场时间分配(白中英教材期末典型)
简答题 20% ─ 概念辨析、对比类(冯诺依曼、RISC/CISC、四种I/O…)
计算题 40% ─ 补码/浮点/Cache/流水线/磁盘/总线 ← 分值最高,最该练
分析设计 20% ─ 数据通路/微程序/硬连线/中断屏蔽
论述题 20% ─ 综合理解(层次结构、并行性、存储体系…)
(题型分布参考公开复习资料,具体以任课老师为准)
- 建议时间分配(120分钟卷):简答20′ → 计算50′ → 分析设计30′ → 论述15′ → 检查5′。
- 得分策略(0基础友好):先拿下”简答+论述”这 40 分概念分(背就有),再死磕”计算”这 40 分(练就有),分析设计是拉开差距的硬骨头。
7. 这张地图怎么用
- 第一遍:只看第 1、2、3 节,建立”硬件软件两棵树 + a+b 全书地图”的骨架感。
- 第二遍:对照第 4 节逐章知识树,去 02_a+b学习手册 里看对应章节的详细图文讲解。
- 冲刺期:背第 5 节热力图 + 第 6 节题型分配,刷《03_模拟卷》。
记住:这门课不是”背”出来的,是”看着 a+b 怎么跑一遍”想明白的。下一份文件,我们就让它真的跑起来。