计算机组成原理 · a+b 学习手册

—— 一个加法程序的”一生”,带你走遍计算机的五脏六腑

配套阅读:先看 01_知识图谱与考点地图 建立骨架,读完本手册后用 03_模拟卷与小白深度解析 自测。

写给零基础的你 这本手册不假设你学过任何计算机硬件知识。我们只用一个你能看懂的小程序当主角,跟着它”活一遍”,把整门课讲完。

阅读约定(每个知识点都有两句话):

  • 🎓 专业版:一句正式、考试能写的话。
  • 🌱 大白话:一句讲给初中生也能听懂的话。

图示约定:方框=部件/寄存器,箭头=数据流动方向,①②③=步骤顺序。建议用等宽字体阅读(PDF 已排好)。

覆盖承诺:虽然我们只讲一个 a+b 程序,但不会因此省略任何知识点。凡是课本里有的(连乘除法、浮点、RAID、通道、多核…),都会在”a+b 的某个环节”上挂靠讲到。


序章:我们的主角是谁?

#include <stdio.h>
int main() {
    int a, b;
    scanf("%d %d", &a, &b);   // 第①步:从键盘读入两个整数
    printf("%d", a + b);      // 第②步:算出 a+b,打印到屏幕
    return 0;                 // 第③步:结束,把控制权还给操作系统
}

别看它只有几行,它要正常跑起来,整台计算机几乎所有部件都得出力。我们先剧透一下它这一生要闯哪些”关”:

   你写的 a+b.c
        │  ① 编译/汇编(第1章:翻译成机器能懂的二进制)
        ▼
   a+b 可执行程序(一串01指令 + 数据)
        │  ② 装入内存(第3章:程序住进存储器)
        ▼
 ┌──────────────────────────────────────────────────────┐
 │  CPU 开始按地址自动执行(第5章:取指→译码→执行)      │
 │   ├─ 需要"加法怎么算"           → 第2章 运算器          │
 │   ├─ 需要"a、b、指令放哪、咋取快" → 第3章 存储器/Cache   │
 │   ├─ 需要"用哪条指令、怎么找操作数"→ 第4章 指令系统      │
 │   ├─ 数据在部件间跑,走哪条路     → 第6章 总线           │
 │   ├─ scanf 从键盘读、printf 往屏幕写 → 第7章 外设        │
 │   └─ 慢键盘怎么配合快CPU          → 第8章 I/O方式        │
 └──────────────────────────────────────────────────────┘
        │  ③ 如果要同时算一万个 a+b 更快? → 第9章 并行/多核
        ▼
   屏幕显示出 a+b 的结果

🎓 专业版:一个高级语言程序的执行,本质是”源程序经翻译变为机器指令序列,存入主存,由 CPU 在时序控制下按地址自动取指并执行,期间通过总线在运算器、存储器、I/O 之间传送地址/数据/控制信息”。

🌱 大白话:你写的代码就像一张菜谱,得先翻译成厨师(CPU)认识的暗号,存进冰箱(内存),厨师再照着暗号一步步把菜(a+b 的结果)做出来端给你看。


📖 章节导航

#章节a+b 在这一章核心考点
002a_序章_四个前置概念补四个被教材跳过的”前置常识”存储程序 / 二进制 / 寄存器 / 时钟
102b_第1章_计算机系统概论a+b 住进什么样的机器五大部件 / CPI·MIPS / Amdahl / Flynn
202c_第2章_运算方法与运算器a 和 b 怎么存、a+b 怎么算补码 / IEEE754 / 溢出 / 浮点五步
302d_第3章_多层次存储器指令和数据住哪、怎么取得快Cache 三映射 / 命中率 / 虚存·TLB
402e_第4章_指令系统教 CPU 说”取 a 加 b 存回去”寻址方式 / 指令格式 / CISC vs RISC
502f_第5章_中央处理器a+b 真正被一步步执行微程序 / 硬连线 / 流水线 / Forwarding
6-802g_第6至8章_总线外设IO数据走什么路、外设怎么配合总线带宽 / 中断 / DMA / 四种 I/O 对比
9-1002h_第9至10章_并行与展望同时算一万个 a+b多核 / 超线程 / Cache 一致性

阅读建议

  1. 首次学习:按 序章→第1章→…→第9章 顺序通读,跟着 a+b 的故事走一遍
  2. 考前复习:直接跳到需要的章节,每章末尾都有「高频考点 & 易错坑」速查
  3. 查单个知识点:用 Obsidian 搜索(Ctrl+Shift+F)搜关键词,或在上面目录表定位章节
  4. 做题遇到不会:看 01_知识图谱与考点地图 定位知识点所在章节,跳转过去

🎯 核心学习心法:看任何概念时都问自己——“这个概念是在解决什么问题?是为了对付硬件的什么限制?” 只要能答上,你就真的懂了。


🏁 全书合龙:a+b 的”一生”完整回放

你写下 a+b.c                                         【第1章: 高级语言级, 冯诺依曼机器】
   │ gcc 编译 / 汇编器汇编                            【第4章: 翻译成机器指令 LOAD/ADD/STORE】
   ▼
机器指令(补码表示的数 + 01指令)                       【第2章: a,b存成补码】
   │ 装入主存, 必要时虚存映射                          【第3章: 住进内存, Cache加速, 虚存扩容】
   ▼
┌──────────────── CPU 循环 ────────────────┐
│ 取指: 按PC取指令入IR, PC+1                 │         【第5章: 指令周期-取指】
│ 译码: 认出这是ADD                         │
│ 执行: ALU用补码加法算a+b, 防溢出           │         【第2章+第5章: 运算器执行】
│   ↑ 取a/b、回写, 经总线传输, 仲裁定时       │         【第6章: 总线】
└───────────────────────────────────────────┘
   │ scanf 输入(键盘) / printf 输出(屏幕)             【第7章: 外设硬件】
   │   慢外设用 中断/DMA 与CPU高效配合                 【第8章: I/O方式】
   ▼
屏幕显示 a+b 的结果 ✅
   │ 想同时算一万个? → 多核/流水/超线程                【第9章: 并行】
   ▼
现代真实机器(酷睿/安腾)把这一切综合实现               【第10章: 实例】

🎓 一句话总纲:计算机组成原理 = “存储程序 + 程序控制”思想下,五大部件如何用合适的数据表示、运算方法、存储层次、指令系统、控制时序、总线互连和 I/O 机制,协同把内存里的指令自动执行完。

🌱 一句话大白话:你写的每一行代码,最后都变成内存里一堆开关(0/1),CPU 像个超守纪律的工头,照着这些开关一拍一拍把活干完,再把结果给你看——这门课就是把这台”自动工厂”每个车间拆开讲清楚。

看懂这张回放图,你就拥有了所谓的”整机概念”——这正是这门课最想给你的东西。接下来去做 03_模拟卷与小白深度解析,检验一下吧!