课件来源:唐朔飞《计算机组成原理》配套课件第1章(Slide 3–35,整页原图见
../extracted/cod/slides/slide_NNN.png),以课件提取文本extracted/cod/chapters/ch01.md为主、整页原图核对为辅。本章是全书的"地图",概念题(选择/填空/简答)与 MAR/MDR 容量计算、MIPS/CPI 计算是期末必考点,难度低但覆盖面广,属于"背了就能拿分"的章节。
| 考点 | 常见题型 | 重要度 |
|---|---|---|
| 冯·诺依曼计算机六大特点、存储程序思想 | 选择/填空/简答 | ★★★ |
| 主要技术指标:机器字长、主频、MIPS、CPI、FLOPS、存储容量(MAR/MDR 换算) | 选择/填空/计算 | ★★★ |
| 计算机系统层次结构 M0–M4、软硬件分界、翻译与解释 | 选择/填空/简答 | ★★★ |
| 运算器寄存器 ACC/MQ/X 在加减乘除中的分工 | 填空/选择/简答 | ★★★ |
| 主机完成一条指令的过程(取数/存数微操作序列) | 简答/排序/综合 | ★★★ |
| 计算机体系结构 vs 计算机组成 | 选择/简答 | ★★ |
| 硬件框图:五大部件、以运算器/存储器为中心、现代框图(CPU/主机/I/O) | 选择/填空 | ★★ |
| 存储器基本组成:存储体/存储单元/存储字/存储字长、MAR/MDR | 填空/选择 | ★★ |
| 控制器基本组成:PC/IR/CU 功能、(PC)+1→PC | 填空/选择 | ★★ |
| 软硬件概念、系统软件 vs 应用软件 | 选择 | ★★ |
| 指令格式(操作码+地址码)、ax²+bx+c 程序清单 | 填空/综合 | ★★ |
| 计算机的工作步骤、编程举例(两种算法对比) | 简答/选择 | ★ |
| 本书结构(四篇对应关系) | 选择 | ★ |
概念精讲:计算机系统 = 硬件 + 软件,二者缺一不可。
软件分类(课件 p.5):
| 类别 | 定义 | 包含 |
|---|---|---|
| 系统软件 | 用来管理整个计算机系统 | 语言处理程序、操作系统、服务性程序、数据库管理系统、网络软件 |
| 应用软件 | 按任务需要编制成的各种程序 | 各类用户应用程序 |
要点: - 系统软件是"管机器的",应用软件是"干活的";操作系统是最核心的系统软件。 - 语言处理程序(编译/汇编/解释程序)属于系统软件,不要误归为应用软件。
易错警示:数据库管理系统、网络软件在课件中列于系统软件一侧(课件 p.5),不要凭直觉把它们当成应用软件。
解题过程(课件 p.6):
高级语言程序 ──翻译──> 目标程序 ──运行──> 结果
层次结构(课件 p.7、p.8):自顶向下共 5 层,M4–M2 为虚拟机器,M1 为实际机器,M0 为微程序机器。
| 层次 | 名称 | 语言/系统 | 属性 |
|---|---|---|---|
| M4 | 虚拟机器 | 高级语言 | 软件 |
| M3 | 虚拟机器 | 汇编语言 | 软件 |
| M2 | 虚拟机器 | 操作系统 | 软件 |
| M1 | 实际机器 | 机器语言 | 硬件 |
| M0 | 微程序机器 | 微指令系统 | 硬件 |
软硬件分界:在 M2 与 M1 之间(课件 p.8 的点划线)。M2 及以上为软件,M1 及以下为硬件。
层间翻译/解释关系(课件 p.8):
| 相邻层 | 实现方式 |
|---|---|
| M4 → M3 | 用编译程序翻译成汇编语言程序 |
| M3 → M2 | 用汇编程序翻译成机器语言程序 |
| M2 → M1 | 用机器语言解释操作系统 |
| M1 → M0 | 用微指令解释机器指令 |
| M0 | 由硬件直接执行微指令 |

要点: - 上层是下层的"抽象/扩展",下层是上层的"实现/支撑";虚拟机器靠软件(翻译或解释)实现,实际机器与微程序机器靠硬件实现。 - "翻译"= 先把整段程序换成下层语言再执行(编译、汇编);"解释"= 逐条边译边执行(操作系统、微指令)。
易错警示:课件 p.7 把高级语言标为 M3、汇编标为 M2、操作系统未编号,与 p.8 的 M4/M3/M2 不一致。课件原文如此,存疑:p.7 编号整体下移了一位;应以 p.8(与教材通行)为准:M4 高级语言、M3 汇编语言、M2 操作系统、M1 实际机器、M0 微程序机器。 考试按 M4–M0 五层作答。
概念精讲(课件 p.9):
| 概念 | 定义 | 关注内容 | 典型例子 |
|---|---|---|---|
| 计算机体系结构 | 程序员所见到的计算机系统的属性,概念性的结构与功能特性 | 指令系统、数据类型、寻址技术、I/O 机理 | 有无乘法指令 |
| 计算机组成 | 实现计算机体系结构所体现的属性 | 具体指令的实现 | 如何实现乘法指令 |

要点: - 体系结构是"做什么/有没有"(逻辑属性),组成是"怎么做"(物理实现)。 - 同一体系结构可以有多种组成实现(如乘法可用硬件乘法器或加法移位微程序实现)。
易错警示:判断归属时抓关键词——"有无/是否提供某指令、数据类型、寻址方式"属体系结构;"用什么器件/微操作/时序实现"属组成。
六大特点(课件 p.10):
要点: - "存储程序"是冯·诺依曼思想的核心:程序与数据一样预先存放,机器自动连续执行,无需人工干预每一步。 - 经典冯·诺依曼机以运算器为中心;现代计算机改为以存储器为中心(见 §5)。
易错警示:课件 p.10 中"5. 存储程序"重复出现一次,为排版重复,特点仍为 6 条。不要把"以存储器为中心"当成冯·诺依曼原始特点(那是现代改进)。
冯·诺依曼硬件框图(以运算器为中心)(课件 p.11、p.12):五大部件及功能——
| 部件 | 功能 |
|---|---|
| 存储器 | 存放数据和程序 |
| 输入设备 | 将信息转换成机器能识别的形式 |
| 运算器 | 算术运算、逻辑运算 |
| 控制器 | 指挥程序运行 |
| 输出设备 | 将结果转换成人们熟悉的形式 |

以存储器为中心的硬件框图(课件 p.13):输入设备、输出设备、运算器都直接与存储器交换数据,控制器指挥各部件;数据/程序经输入设备入存储器,结果经存储器到输出设备。

现代计算机硬件框图(课件 p.14):
运算器 ALU ┐
├─ CPU ┐
控制器 CU ┘ │
├─ 主机 ┐
存储器 主存 ──────┘ │
├─ 硬件
输入设备 ┐ │
├─ I/O 设备 ─────┘
输出设备 ┘
(存储器另含辅存;主机框内仅主存 + CPU)

要点: - CPU = 运算器(ALU) + 控制器(CU);主机 = CPU + 主存;硬件 = 主机 + I/O 设备(课件 p.14)。 - 辅存列于"存储器"下,但不属于主机(课件 p.14 主机框内只有主存与 CPU);辅存通常视作外设(补充常识)。 - 现代计算机以存储器为中心,克服了以运算器为中心时 I/O 与运算争用运算器的瓶颈。
易错警示:主机 ≠ CPU。主机 = CPU + 主存;CPU 只含 ALU + CU。辅存(硬盘等)不算主机。
上机前的准备(课件 p.15):建立数学模型 → 确定计算方法 → 编制解题程序。
编程举例:计算 ax² + bx + c(课件 p.16),两种算法:
| 算法 | 步骤 | 步数 |
|---|---|---|
| 直接法 | 取x→乘x→乘a→存ax²→取b→乘x→加ax²→加c | 8 |
| 秦九韶/霍纳法 (ax+b)x+c | 取x→乘a→加b→乘x→加c | 5 |
霍纳法把 ax²+bx+c 改写为 (ax+b)x+c,减少乘法与访存次数,效率更高。
指令格式举例(课件 p.17):指令 = 操作码 + 地址码。
| 指令 | 操作码 | 地址码例 | 功能 |
|---|---|---|---|
| 取数 | 000001 | α(0000001000) | [α] → ACC |
| 存数 | 000010 | β | [ACC] → β |
| 加 | 000011 | γ | [ACC]+[γ] → ACC |
| 乘 | 000100 | δ | [ACC]×[δ] → ACC |
| 打印 | 000101 | σ | [σ] → 打印机 |
| 停机 | 000110 | (无) | 停机 |
计算 ax²+bx+c 程序清单(课件 p.18,霍纳法):
| 主存地址 | 操作码 | 地址码 | 注释 |
|---|---|---|---|
| 0 | 000001 | 0000001000 | 取数 x 至 ACC |
| 1 | 000100 | 0000001001 | 乘 a 得 ax,存于 ACC |
| 2 | 000011 | 0000001010 | 加 b 得 ax+b,存于 ACC |
| 3 | 000100 | 0000001000 | 乘 x 得 (ax+b)x,存于 ACC |
| 4 | 000011 | 0000001011 | 加 c 得 ax²+bx+c,存于 ACC |
| 5 | 000010 | 0000001100 | 将结果存于主存单元 12 |
| 6 | 000101 | 0000001100 | 打印 |
| 7 | 000110 | (空) | 停机 |
| 8 | x | 原始数据 x | |
| 9 | a | 原始数据 a | |
| 10 | b | 原始数据 b | |
| 11 | c | 原始数据 c | |
| 12 | (空) | 存放结果 |

要点:地址码 10 位二进制对应十进制主存地址(0000001000=8、…、0000001100=12);指令与数据混存于同一主存,体现"指令和数据同等地位、按地址寻访"。
易错警示:停机指令只有操作码、没有地址码;打印指令的地址码指向"存放结果的单元"(12),而非结果本身。
概念精讲(课件 p.19):
| 术语 | 定义 | 类比 |
|---|---|---|
| 存储体 | 由若干存储单元组成 | 大楼 |
| 存储单元 | 存放一串二进制代码 | 房间 |
| 存储元件 | 存 0/1 的最小单位 | 床位(无人/有人) |
| 存储字 | 存储单元中二进制代码的组合 | — |
| 存储字长 | 存储单元中二进制代码的位数 | — |
每个存储单元赋予一个地址号,按地址寻访(课件 p.19)。
MAR 与 MDR(课件 p.20):
| 寄存器 | 全称 | 反映 |
|---|---|---|
| MAR | 存储器地址寄存器 | 存储单元的个数(MAR 位数 → 2^MAR 个单元) |
| MDR | 存储器数据寄存器 | 存储字长(MDR 位数 = 字长位数) |
例:设 MAR = 4 位、MDR = 8 位 → 存储单元个数 = 2⁴ = 16,存储字长 = 8(课件 p.20)。

要点:MAR 位数决定"有多少个房间"(地址空间),MDR 位数决定"每个房间住几位"(字长)。主存容量 = 2^MAR × MDR(位)。
易错警示:MAR 反映的是单元个数(2 的幂),不是个数本身;MAR=4 位对应 16 个单元而非 4 个。
组成(课件 p.21):ACC(累加器)、MQ(乘商寄存器)、X(操作数寄存器)、ALU(算术逻辑单元)。
各寄存器在四则运算中的分工(课件 p.21):
| 运算 | ACC | MQ | X |
|---|---|---|---|
| 加法 | 被加数 → 和 | — | 加数 |
| 减法 | 被减数 → 差 | — | 减数 |
| 乘法 | 乘积高位 | 乘数 → 乘积低位 | 被乘数 |
| 除法 | 被除数 → 余数 | 商 | 除数 |

操作过程(初态均先将被操作数送 ACC):
![乘法操作过程:[M]→MQ、[ACC]→X、0→ACC、[X]×[MQ]→ACC∥MQ](images/extracted_cod_slides_slide_024.png)
要点:加减法只用 ACC 与 X;乘法用 ACC、MQ、X 三个寄存器(结果双字长 ACC∥MQ);除法商在 MQ、余数在 ACC。
易错警示:乘法开始前要把 ACC 清 0(0→ACC)并把被乘数转存到 X,否则被乘数会被覆盖;除法"商在 MQ、余数在 ACC"不要记反。
组成(课件 p.26):CU(控制单元)、IR(指令寄存器)、PC(程序计数器)。
完成一条指令的三阶段(课件 p.26):
| 阶段 | 主要寄存器 | 是否访存 |
|---|---|---|
| 取指令 | PC | 访存 |
| 分析指令 | IR | — |
| 执行指令 | CU | 访存 |

要点:PC 指向"下一条要取的指令",取指后自动 +1;IR 保存"正在执行的这条指令"。取指阶段靠 PC 访存,执行阶段靠 CU 访存。
易错警示:PC 存的是地址不是指令;IR 存的是指令不是地址。(PC)+1 发生在取指阶段,不是执行阶段。
以取数指令为例(课件 p.27,配合 p.29 微操作):
取指阶段同时完成 (PC)+1→PC。

以存数指令为例(课件 p.28):取指阶段 1–5 与取数相同;执行阶段:
要点:取数与存数的取指阶段完全相同;区别在执行阶段的数据流向——取数是 M→MDR→ACC(读),存数是 ACC→MDR→M(写)。
易错警示:任何指令都要先"取指"(访存一次)再"执行"(可能再访存);不要漏掉取指阶段的 MDR→IR 与 (PC)+1。
运行流程(课件 p.29):

要点:程序运行的本质是"取指—分析—执行"的循环;PC 自动递增保证顺序执行,直到停机指令。
易错警示:启动前必须把程序首地址送 PC,否则机器不知道从哪条指令开始取。
1. 机器字长(课件 p.30):CPU 一次能处理数据的位数,与 CPU 中的寄存器位数有关。
2. 运算速度(课件 p.30):
| 指标 | 含义 |
|---|---|
| 主频 | CPU 时钟频率(补充常识:时钟周期 T = 1/主频) |
| 吉普森法 | Tₘ = Σᵢ₌₁ⁿ f·tᵢ(考虑指令混合比;补充常识:fᵢ 为第 i 类指令使用频度/比例,tᵢ 为其执行时间) |
| MIPS | 每秒执行百万条指令 |
| CPI | 执行一条指令所需时钟周期数 |
| FLOPS | 每秒浮点运算次数 |
补充常识(课件未列,衔接用):MIPS = 主频 / (CPI × 10⁶);吞吐量 = 单位时间内系统处理的请求/任务数或数据量(如 事务/秒、MB/s),反映系统整体处理能力。

3. 存储容量(课件 p.31):存放二进制信息的总位数。
| MAR | MDR | 容量 |
|---|---|---|
| 10 | 8 | 1K × 8 位 |
| 16 | 32 | 64K × 32 位 |
单位换算(课件 p.31):1K = 2¹⁰;1B = 2³b;2¹³b = 1KB;2²¹b = 256KB。

要点: - 由 MAR/MDR 求容量:个数 = 2^MAR,字长 = MDR,容量(位) = 2^MAR × MDR,容量(字节) = 2^MAR × MDR / 8。 - 2¹³b = 2¹³/2³ B = 2¹⁰ B = 1KB;2²¹b = 2²¹/2³ B = 2¹⁸ B = 256KB(课件 p.31 的 2¹³、2²¹ 指位数)。
易错警示:课件原文如此,存疑:p.31 标注"1GB = 2³⁰b"。按 1B = 2³b,应为 1GB = 2³⁰B = 2³³b;课件此处 b 疑为 B 之误。 考试若遇 1GB 换算,按 1GB = 2³⁰B = 2³³b 计算,并注意与课件 2¹³b=1KB 的"位→字节"口径保持一致。
| 篇 | 内容 | 对应部件 |
|---|---|---|
| 第1篇 概论 | 计算机系统 overview(本章) | 计算机整体 |
| 第2篇 计算机系统的硬件结构 | 存储器、系统总线、I/O、CPU | 系统级互连 |
| 第3篇 CPU | ALU、CU、寄存器、内部互连 | 中央处理器 |
| 第4篇 CU | 控制存储器、排队逻辑、控制、寄存器和解码器 | 控制单元 |
(课件 p.32–35。本篇为后续章节的导航:第2篇讲"部件怎么连",第3篇讲"CPU 内部",第4篇讲"CU 内部"。)
例1(层次结构,选择):在计算机系统层次结构中,操作系统虚拟机器是( )。 A. M1 B. M2 C. M3 D. M4 解析:自顶向下 M4 高级语言、M3 汇编语言、M2 操作系统、M1 实际机器、M0 微程序机器(课件 p.8)。操作系统层 = M2。逐项排除:M1 是机器语言实际机器、M3 是汇编、M4 是高级语言。答案 B。
例2(MAR/MDR 容量,计算):某机 MAR = 16 位、MDR = 32 位,求主存容量(位与字节)。 解析: - 存储单元个数 = 2^MAR = 2¹⁶ = 64K; - 存储字长 = MDR = 32 位; - 容量(位) = 64K × 32 位 = 2¹⁶ × 32 = 2²¹ 位; - 容量(字节) = 2²¹ / 2³ = 2¹⁸ B = 256KB。 与课件 p.31 表中"16 / 32 → 64K×32位"及"2²¹=256KB"一致。答案:64K×32 位 = 256KB。
例3(取数指令微操作,排序/简答):写出取数指令执行阶段的微操作序列,并说明 (PC)+1 发生在哪个阶段。 解析:取指阶段:PC→MAR;MAR→M(读);M→MDR;MDR→IR;同时 (PC)+1→PC。分析:OP(IR)→CU。执行阶段:Ad(IR)→MAR;MAR→M(读);M→MDR;MDR→ACC(课件 p.27、p.29)。(PC)+1 发生在取指阶段。答案:执行阶段为 Ad(IR)→MAR→M→MDR→ACC;(PC)+1 在取指阶段。
层次结构:M4 高级语言 / M3 汇编语言 / M2 操作系统 / M1 实际机器(机器语言) / M0 微程序机器(微指令);软硬件分界 M1|M2。
冯·诺依曼六特点:五大部件;指令数据同等地位按地址寻访;二进制;操作码+地址码;存储程序;以运算器为中心。
组成关系:CPU=ALU+CU;主机=CPU+主存;硬件=主机+I/O设备;存储器=主存+辅存。
寄存器分工:加法 ACC(被加数/和)+X(加数);减法 ACC(被减数/差)+X(减数);乘法 ACC(积高)+MQ(乘数/积低)+X(被乘数);除法 ACC(被除数/余数)+MQ(商)+X(除数)。
控制器:PC 存地址、(PC)+1→PC;IR 存指令;CU 发控制命令;取指(PC,访存)→分析(IR)→执行(CU,访存)。
取数微操作:PC→MAR→M→MDR→IR;OP(IR)→CU;Ad(IR)→MAR→M→MDR→ACC。
公式: - 主存容量(位) = 2^MAR × MDR;容量(字节) = 2^MAR × MDR / 8 - 时钟周期 = 1/主频;MIPS = 主频 / (CPI × 10⁶) - 吉普森法 Tₘ = Σᵢ₌₁ⁿ fᵢ·tᵢ - 1K = 2¹⁰;1B = 2³b;1KB = 2¹⁰B = 2¹³b;1MB = 2²⁰B;1GB = 2³⁰B = 2³³b
opcode 表(p.18):000001 取数 / 000010 存数 / 000011 加 / 000100 乘 / 000101 打印 / 000110 停机。
技术指标:机器字长=CPU 一次处理位数(与寄存器位数有关);MIPS=每秒百万条指令;CPI=每条指令时钟周期数;FLOPS=每秒浮点运算次数;吞吐量=单位时间处理任务/数据量(补充常识)。