9 层抽象层次
4 种位置化数制
IEEE 754浮点标准
Simple-1简单计算机

第3章 计算机体系基础:
抽象层次简单计算机

本章沿两条主线展开:先自上而下认识计算机系统的抽象层次,理解"复杂性靠抽象来管理";再自底向上从二进制数制、数据表示、数字逻辑,一步步搭建出一台能执行程序的简单计算机 Simple-1。

抽象层次数字系统与数制转换 数据的表示和存储布尔代数与逻辑门冯·诺依曼架构

本章知识地图

一条主线:抽象分层理解 → 二进制数制 → 数据编码 → 数字逻辑 → 整机组成

抽象层次用分层简化复杂系统
数字系统0/1 与各进制转换
数据表示数值·字符·多媒体编码
数字逻辑门电路构建运算部件
计算机组成冯·诺依曼架构与执行
01

SECTION 1计算机系统的层次结构

计算机既是最复杂的系统,也是最简单的系统——复杂世界由 0 和 1 的二进制逻辑层层抽象而成。

抽象:管理复杂性的关键Abstraction —— 隐藏底层细节,分层处理问题

计算机由数以亿计的晶体管、庞大的软件系统和复杂的人机交互组成,但本质上只遵循两个基本规则:0 和 1、开与关。管理复杂性的关键技术是抽象:通过隐藏底层细节,在不同层次上处理不同复杂度的问题。

CEO 的类比:战略层只关心各"业务板块"营收 → 管理层关心"部门"绩效 → 执行层分配任务 → 实施层处理具体事务。CEO 不需要知道每个员工的工作细节,就能掌控整个公司。

计算机系统的抽象层次(自底向上) 物理(电子运动) 器件(晶体管、二极管) 模拟电路(放大器、滤波器) 数字电路(与门、或门) 逻辑(加法器、存储器) 微体系结构(数据路径、控制器) 体系结构(指令、寄存器) 操作系统 应用软件 越向上,离物理世界越远、越贴近用户;越向下,越接近电子的物理本质
计算机系统的抽象层次 —— 每个层次只关心本层的模块与元素

各抽象层次速览表 1.1 计算机系统的抽象层次

抽象层次模块与元素一句话说明
应用软件电子游戏、浏览器使用操作系统功能解决用户问题
操作系统设备驱动程序等管理底层抽象,如访问硬盘、管理存储器
体系结构指令、寄存器程序员视角的计算机抽象(如 x86)
微体系结构数据路径、控制器用逻辑实现体系结构定义的指令
逻辑加法器、存储器用数字电路构造复杂结构
数字电路与门、或门电压限定在离散范围表示 0/1
模拟电路放大器、滤波器输入输出为连续电压
器件晶体管、二极管建立端子上电压与电流的关系模型
物理电子最底层抽象,由量子力学和麦克斯韦方程描述
要点:同一个体系结构可以有不同微结构实现(如 Intel Core i7、80486、AMD Athlon 都是 x86 的不同微结构),在价格、性能、功耗间取折中。
一句话总结:计算机通过"抽象"把从电子到应用软件的复杂系统划分为逐层简化的层次,每层只关注本层细节,这正是理解复杂计算机系统的钥匙。
本节小结
  • 计算机本质只遵循 0 和 1 两个基本规则,复杂来自层层叠加与抽象。
  • 抽象通过隐藏底层细节,在不同层次处理不同复杂度的问题(CEO 分层管理类比)。
  • 抽象层次自底向上:物理 → 器件 → 模拟电路 → 数字电路 → 逻辑 → 微体系结构 → 体系结构 → 操作系统 → 应用软件。
  • 一个体系结构(如 x86)可有多种微结构实现,以取得价格、性能、功耗的折中。
  • 理解计算机系统应同时关注上下层关系,选择合适的抽象层次思考问题。
?
课堂练习 · 1 计算机系统的层次结构
1计算机系统管理复杂性的关键技术是(  )。
解析:参考答案:B
教材明确指出"管理复杂性的关键技术在于抽象(Abstraction)"——通过隐藏底层细节,在不同层次处理不同复杂度的问题。
2在抽象层次中,位于"逻辑"层次之下(更接近物理)的一层是(  )。
解析:参考答案:D
自底向上为:物理 → 器件 → 模拟电路 → 数字电路 → 逻辑 → 微体系结构 → …,因此逻辑之下(更底层)是数字电路。
3程序员编写程序时直接面对、定义了指令系统和寄存器的抽象层次是(  )。
解析:参考答案:C
体系结构描述了程序员观点的计算机抽象,例如 x86 定义了一套指令系统和寄存器,程序员可以使用这些指令和寄存器。
4关于"一个体系结构对应多种微结构实现",下列说法正确的是(  )。
解析:参考答案:B
Intel Core i7、Intel 80486 和 AMD Athlon 都是 x86 体系结构的三种不同微结构实现,目的就是取得价格、性能、功耗等方面的折中。
5"数字电路"层次最核心的特征是(  )。
解析:参考答案:A
数字电路将电压控制在离散范围内以表示 0 和 1;连续电压是模拟电路的特征,电子行为属物理层,管理硬盘属操作系统层。
6本章学习抽象层次的主要目的是(  )。
解析:参考答案:C
教材强调:理解系统时不能局限于某一层次,应同时关注上下层关系,在面对问题时能选择合适的抽象层次,并意识到设计决策对其他层次的影响。
02

SECTION 2数字系统

任何语言的符号数量都有限——选取哪些符号、如何重复使用,就产生了各种位置化数字系统(数制)。

基数与位权:数制的两个基本概念Radix 与 Place Value —— 一切数制转换的基础

基数(Radix)R该数制中符号的总数。如十进制的基数 R=10,二进制的 R=2。
位权(Place Value)Rⁱ不同数位上的固定常数,即以基数为底的整数次幂。

以 R 为基数、n 个整数位、m 个小数位的数 K,可按位权展开为多项式:

K = Σ Kᵢ × Rⁱ = Kₙ₋₁Rⁿ⁻¹ + … + K₁R¹ + K₀R⁰ + K₋₁R⁻¹ + … + K₋ₘR⁻ᵐ

例:(1011.01)₂ = 1×2³ + 0×2² + 1×2¹ + 1×2⁰ + 0×2⁻¹ + 1×2⁻² = 11.25D

四种位置化数字系统表 2.1 数字系统的基本概念

数字系统英文名基数基本符号进位规则
十进制Decimal100…9逢 10 进 1
二进制Binary20, 1逢 2 进 1
八进制Octal80…7逢 8 进 1
十六进制Hexadecimal160…9, A…F逢 16 进 1
记忆点:二进制书写冗长易错,常用八进制(1 位对应 3 位二进制)与十六进制(1 位对应 4 位二进制)缩写。右下角标注或后缀 D / B / O(Q) / H 表示所属数制。

数制转换规则2.5 数制转换 —— 四把"瑞士军刀"

转换方法要点
任意进制 → 十进制按位权展开多项式并求和例如 (456.7)₈ = 4×8²+5×8¹+6×8⁰+7×8⁻¹ = 302.875D
十进制整数 → 二进制除二取余法不断除以 2 取余数,逆序输出(余数为最低位)
十进制小数 → 二进制乘二取整法不断乘 2 取整数部分,顺序输出(达到所需精度即可停止)
二进制 ↔ 八进制三位一并 / 一分为三以小数点为界分组,不足三位补零
二进制 ↔ 十六进制四位一并 / 一分为四以小数点为界分组,不足四位补零
八进制 ↔ 十六进制以二进制为中介先转二进制再转目标进制

例:111101001.11001B = 751.62Q = 1E9.C8H23D = 10111B0.8125D = 0.1101B

数制转换演示 交互
二进制
10111
八进制
27
十六进制
17
一句话总结:计算机只用 0 和 1 的二进制数制,通过基数与位权可统一描述十进制、二进制、八进制、十六进制,并以"位权展开、除二取余、乘二取整、三位/四位分组"完成各进制间的相互转换。
本节小结
  • 位置化数字系统中,每个符号的值与它所在的位置有关;基数 = 符号总数,位权 = Rⁱ。
  • 十进制 R=10、二进制 R=2、八进制 R=8、十六进制 R=16(A…F 代表 10…15)。
  • 任意进制转十进制:按位权展开求和;十进制转二进制:整数"除二取余逆序",小数"乘二取整顺序"。
  • 二进制与八进制"三位一并/一分为三",与十六进制"四位一并/一分为四",分组不足补零。
  • 八进制与十六进制之间以二进制为中介转换;小数转换满足所需精度即可停止。
?
课堂练习 · 2 数字系统
1二进制数 (1011)₂ 按位权展开为十进制是(  )。
解析:参考答案:B
(1011)₂ = 1×2³ + 0×2² + 1×2¹ + 1×2⁰ = 8 + 2 + 1 = 11。
2十六进制数 9AC 中的字母 C 表示十进制数(  )。
解析:参考答案:C
十六进制中 A、B、C、D、E、F 分别代表十进制 10、11、12、13、14、15。
3十进制数 23 转换为二进制数是(  )。
解析:参考答案:D
23 ÷ 2 余 1,11 ÷ 2 余 1,5 ÷ 2 余 1,2 ÷ 2 余 0,1 ÷ 2 余 1,逆序输出 10111。
4十进制小数 0.8125 转换为二进制数为(  )。
解析:参考答案:A
0.8125×2=1.625 取 1;0.625×2=1.25 取 1;0.25×2=0.5 取 0;0.5×2=1 取 1,顺序输出 0.1101。
5二进制数 111101001.11001B 对应的八进制数是(  )。
解析:参考答案:C
三位一并:111 101 001 . 110 010 → 7 5 1 . 6 2,即 751.62Q。
6二进制数 111101001.11001B 对应的十六进制数是(  )。
解析:参考答案:B
四位一并:0001 1110 1001 . 1100 1000 → 1 E 9 . C 8,即 1E9.C8H。
7将十六进制数 3C98.A6H 转为二进制,正确的补零分组结果是(  )。
解析:参考答案:D
一分为四:3→0011、C→1100、9→1001、8→1000,A→1010、6→0110,即 0011 1100 1001 1000 . 1010 0110B。
8关于二进制与十六进制的转换,正确的是(  )。
解析:参考答案:A
16¹ = 2⁴,故一位十六进制数对应四位二进制数;八进制才是对应三位(8¹ = 2³)。
03

SECTION 3数据的表示和存储

在计算机中,数据是一串包含 0 和 1 的二进制组合——数值、字符、音频、图像、视频都必须先"编码"成二进制才能被计算机识别和处理。

数据类型与数据单位3.1–3.2 —— 数据分三类,单位按 2 的幂次递进

数值型无符号数、定点数、浮点数…
字符型ASCII、GBK、Unicode…
多媒体数据音频、图像、视频…
中文简称英文字节数近似值
bbit1/8数据最小单位
字节BByte11B = 8b
千字节KBKiloByte2¹⁰≈ 10³
兆字节MBMegaByte2²⁰≈ 10⁶
吉字节GBGigaByte2³⁰≈ 10⁹
太字节TBTeraByte2⁴⁰≈ 10¹²
拍字节PBPetabyte2⁵⁰≈ 10¹⁵
字(Word):计算机一次处理数据的位数,字长通常为 8 的整数倍(8/16/32/64 位),位数越多精度越高、运算越快。

数值型数据:无符号数、原码、补码3.3 —— 一个"符号"与"减法转加法"的故事

无符号数字长 n 范围 0 ~ 2ⁿ−1(8 位:0~255);超出字长即溢出
原码最高位为符号位(0 正 1 负),数值位为绝对值;±0 两种表示;范围 −(2ⁿ⁻¹−1) ~ +(2ⁿ⁻¹−1)
补码正数与原码相同;负数 = 符号位不变、数值位取反加 1;0 唯一;范围 −2ⁿ⁻¹ ~ +(2ⁿ⁻¹−1)

补的直觉(时钟模型):把 8 点拨到 5 点,可逆拨 3 格也可顺拨 9 格——对模 12,−3 ≡ +9。只要确定"模"(n 位二进制的模为 2ⁿ),就可以用等价正数代替负数,把减法变成加法

[A+B]补 = [A]补 + [B]补 (mod 2ⁿ)  [A−B]补 = [A]补 + [−B]补 (mod 2ⁿ)
运算规则:符号位和数值位一起参加运算,符号位产生的进位直接丢掉;[-B]补 = [B]补连同符号位取反加 1(求补)。

例:8 位下求 [50−30]补 → [50]补=00110010,[−30]补=11100010,相加得 00010100(进位丢弃)= 20 ✓

原码 / 补码转换演示 交互
二进制真值
−100001
原码
1010 0001
补码
1101 1111

实数:从定点到浮点3.4 —— 小数点要么固定,要么浮动

表示法核心思想优点缺点
定点数预先约定小数点位置(定点整数 / 定点小数)实现简单、计算速度快表示范围有限、精度浪费
浮点数小数点位置随数值大小浮动(借鉴科学计数法 N = M × Rᴱ)表示范围极大、灵活性高实现复杂、存在舍入误差

8 位简化浮点模型:符号位 1 位 + 指数位 3 位(偏移 Bias = 2³⁻¹−1 = 3)+ 尾数位 4 位(隐含整数位 1,只存小数部分)。

+5.5 → 标准化 1.011×2² → 符号 0,指数 2+3=5=101,尾数 .011 补零为 0110 → 存储 0 101 0110

工业标准 IEEE 754:单精度 float 32 位(1 符号 + 8 指数 + 23 尾数);双精度 double 64 位(1 + 11 + 52)。

字符型数据:ASCII → Unicode → 汉字国标码3.5 —— 从 128 个字符到全人类字符

ASCII7 位编码 2⁷=128 个字符;通常用 1 字节存储(最高位为 0);控制字符 00H–1FH 与 7FH,可显示字符 20H–7EH
Unicode为每个字符定义唯一码位(如"知"= U+77E5);UTF-8 用 1–4 字节变长编码且完全兼容 ASCII,是互联网主流
汉字国标码GB2312(6763 汉字)→ GBK(21003 汉字,Windows 默认 CP936)→ GB18030(70244 汉字,现行强制标准,兼容 ASCII/GBK)

例:"BYTE" 每个字符占 1 字节:B=42H、Y=59H、T=54H、E=45H,共 4 字节。例:U+77E5 在 UTF-8 中编码为 E7 9F A5(3 字节)。

为什么不用定长 UTF-32 直接存码位?① 对大量 ASCII 字符浪费 3/4 空间;② 多字节码位引发大端/小端字节序问题。UTF-8 无字节序问题、兼容 ASCII,因此成为 Web 与存储首选。

多媒体数据:音频、图像、视频3.6–3.8 —— 数字化 + 压缩

音频数字化:采样(奈奎斯特定理:采样率 ≥ 最高频率 2 倍;CD 44.1kHz)→ 量化(位深度 8/16/24 位)→ 编码(PCM/DPCM)。

音频比特率 = 采样率 × 位深度 × 通道数 (CD:44.1k×16×2 ≈ 1.41 Mbit/s,1 小时约 635MB)
模拟信号连续波形 采样按时隔取振幅 量化映射离散等级 编码转为二进制 数字信号 音频数字化的三个基本步骤
图 3.1 音频数字化过程:采样 → 量化 → 编码

图像:位图由像素矩阵组成(分辨率 + 色彩深度决定质量,放大有锯齿);矢量图用数学公式描述(无限缩放不失真,适合标志/字体)。

位图文件大小 = 宽 × 高 × 色彩深度 / 8 (1600×1200×24bit ≈ 5.49MB)
矢量图(放大 300% 边缘光滑) 位图(放大 300% 出现锯齿) 图 3.2 位图和矢量图放大对比(示意)

视频:帧率(24/30/60fps)× 分辨率 × 色彩深度决定数据量;I 帧(独立帧)、P 帧(参考前帧)、B 帧(参考前后帧)通过帧间压缩消除时间冗余,可把数据量减少数十至数百倍。

未压缩视频比特率 = 帧率 × 宽 × 高 × 色彩深度 (1080p@30fps×24bit ≈ 1.5 Gbit/s,1 小时约 675GB!)
主流编码:H.264/AVC(最广泛)、H.265/HEVC(效率翻倍)、AV1/VP9(开放格式);容器 MP4/AVI/MKV/MOV/WebM。音频编码:无损 WAV/FLAC/ALAC,有损 MP3/AAC/WMA/Ogg,语音 AMR/Opus。
一句话总结:一切数据(数值、字符、音频、图像、视频)最终都编码为二进制——整数用无符号/原码/补码、实数用定点/浮点、文本用 ASCII/Unicode/国标码、多媒体用采样量化编码,并通过压缩在有限存储内实现。
本节小结
  • 数据分数值型、字符型、多媒体三类;位是最小单位,1B=8b,容量单位按 2¹⁰ 递进。
  • 无符号数范围 0~2ⁿ−1;原码有 ±0、范围 −(2ⁿ⁻¹−1)~+(2ⁿ⁻¹−1);补码 0 唯一、范围 −2ⁿ⁻¹~+(2ⁿ⁻¹−1),且减法可转加法。
  • 定点数小数点固定、简单但范围小;浮点数借鉴科学计数法(符号+指数+尾数),IEEE 754 定义 float/double。
  • ASCII 7 位 128 字符;Unicode 提供唯一码位,UTF-8 变长编码兼容 ASCII;汉字编码演进 GB2312→GBK→GB18030。
  • 音频 = 采样×量化×编码,数据量 = 采样率×位深×通道数;图像分位图/矢量图;视频靠 I/P/B 帧帧间压缩大幅减量。
?
课堂练习 · 3 数据的表示和存储
1字长为 8 位时,无符号数的表示范围是(  )。
解析:参考答案:C
无符号数只含零和正数,范围 0 ~ 2ⁿ−1 = 0 ~ 255。
2真值 −33 的 8 位原码机器数是(  )。
解析:参考答案:D
33 的 7 位二进制为 010 0001,符号位为 1(负)置于最高位:1010 0001。
3字长为 8 位的补码可表示的最小负数是(  )。
解析:参考答案:B
补码中 0 只有一种表示,因此比原码多表示一个数 −2ⁿ⁻¹ = −128,范围 −128 ~ +127。
4已知 [x]补 = 1110 0110,则 [x]原 和真值 x 为(  )。
解析:参考答案:A
由补码求原码:符号位不变,数值位取反加 1 → 1 001 1010 = −(0011010)₂ = −26。
58 位字长下计算 [50−30]补,正确的是(  )。
解析:参考答案:C
[50]补=00110010,[−30]补=11100010,相加得 1 00010100,丢弃最高位进位得 00010100 = 20。
68 位简化浮点模型中表示 +5.5(1 位符号 + 3 位指数 + 4 位尾数,偏移 3),存储结果是(  )。
解析:参考答案:B
+5.5 = 1.011×2²:符号 0;指数 2+3=5=101;尾数隐含 1 只存 011,补零为 0110 → 0 101 0110。
7IEEE 754 双精度浮点数(double)的位分配是(  )。
解析:参考答案:D
double 共 64 位 = 1 符号 + 11 指数 + 52 尾数;float 共 32 位 = 1 + 8 + 23。
8汉字"知"的 Unicode 码位 U+77E5 在 UTF-8 中编码为(  )。
解析:参考答案:A
U+77E5 落在 3 字节区(0800~FFFF),填入 1110xxxx 10xxxxxx 10xxxxxx 得 E7 9F A5。
9CD 音质音频(44.1kHz、16 位、双声道)的未压缩比特率约为(  )。
解析:参考答案:C
比特率 = 44100 × 16 × 2 ≈ 1,411,200 bit/s ≈ 1.41 Mbit/s。
10关于视频压缩中的帧,下列说法正确的是(  )。
解析:参考答案:B
I 帧是独立完整帧;P 帧记录与前一 I/P 帧的差别;B 帧双向参考前后帧(需解码后面的帧),帧间压缩利用连续帧的相似性。
04

SECTION 4数字逻辑基础

计算机对二进制的处理最终由数字逻辑电路完成——理论源于布尔代数,物理实现是逻辑门。

布尔代数:与、或、非4.1 —— 乔治·布尔 19 世纪提出的二值逻辑体系

真/假对应二进制 1/0、电路中的高/低电平。任何复杂逻辑运算都可以由三种基本运算组合而成:

运算表达式规则
与 ANDC = A · B所有输入为 1 才输出 1
或 ORC = A + B只要一个输入为 1 即输出 1
非 NOTB = Ā输出是输入的相反值
与非 NANDC = A·B 取反仅全 1 时输出 0
或非 NORC = A+B 取反仅全 0 时输出 1
异或 XORC = A ⊕ B相同时输出 0,不同时输出 1(加法器核心)
同或 XNORC = A ⊕ B 取反相同时输出 1,不同时输出 0
亨廷顿公理:封闭性 · 单位元(A+0=A,A·1=A)· 互补律(A+Ā=1,A·Ā=0)· 交换律 · 分配律
常用定理:同一律 A·A=A · 零元律 A·0=0 · 吸收律 A·(A+B)=A · 德摩根:A·B 取反 = Ā+B̄
最小项与 SOP:n 变量最小项是包含全部 n 个变量(原/反变量各一次)的乘积项,共 2ⁿ 个;任何逻辑函数可写成"所有输出为 1 的最小项之和"(标准与或式 F = Σmᵢ)。

逻辑运算的位操作应用4.1.5 —— 用掩码做复位、置位、翻转

操作方法示例(8 位)公式
复位(清 0)掩码目标位为 0、其余为 1,按位与1011 1100 AND 1111 0000 = 1011 0000原数 AND 掩码
置位(置 1)掩码目标位为 1、其余为 0,按位或1011 0000 OR 0000 1111 = 1011 1111原数 OR 掩码
翻转(取反)掩码目标位为 1、其余为 0,按位异或1011 1100 XOR 1000 0000 = 0011 1100原数 XOR 掩码
位操作演示 交互
原数
1011 1100
掩码
1111 0000
结果
1011 0000

逻辑门与组合逻辑电路4.2–4.3 —— 从门到加法器、译码器、选择器

AND 与门 OR 或门 NOT 非门 XOR 异或门
图 4.1 基本逻辑门图形符号(示意)
部件功能构成
半加器两个 1 位二进制相加:S = A⊕B,C = A·B1 个异或门 + 1 个与门
全加器A、B 与低位进位 Cin 三者相加2 个半加器 + 1 个或门
串行进位加法器n 个全加器级联;结构简单但进位逐级传递、速度慢n 个全加器
超前进位加法器并行预计算所有进位,速度快但电路复杂、面积大功耗高额外组合逻辑
译码器 Decodern 位输入 → 2ⁿ 个输出中唯一有效(如 2-4 译码器);典型应用:内存地址译码2 个非门 + 4 个与门(2-4)
多路选择器 MUX按选择信号从多路输入选一路输出(4 选 1:S₁S₀=00/01/10/11 选 I₀~I₃);CPU 中选寄存器送 ALU2-4 译码器 + 4 与门 + 1 或门
半加器演示 交互
本位和 S = A⊕B
0
进位 C = A·B
0
二进制结果
00
记忆:异或恰好符合"和"的定义,与运算恰好符合"进位"的定义——这就是半加器只需要一个异或门和一个与门的原因。

从逻辑到运算器4.4 —— 四步搭建计算机硬件

层级内容
基础抽象晶体管构成逻辑门(与、或、非)
功能模块逻辑门组合成半加器、全加器、译码器、多路选择器
核心部件功能模块组成加法器、运算器(ALU)
完整系统运算器、控制器、存储器等组成完整计算机

一个简单 ALU 能进行加、减(补码加法)、逻辑与、逻辑或等操作——内部由加法器、逻辑门阵列和多路选择器构成,控制信号通过选择器决定当前执行哪种运算。

一句话总结:从与、或、非三种基本运算出发,借助布尔代数的公理与定理,可以搭建逻辑门、加法器、译码器与多路选择器,最终构成能完成算术运算的 ALU 等核心部件。
本节小结
  • 三种基本运算 AND / OR / NOT 可组合出 NAND、NOR、XOR、XNOR 等复合运算。
  • 布尔代数有亨廷顿公理(封闭、单位元、互补、交换、分配)与常用定理(同一律、零元律、吸收律、德摩根)。
  • 最小项对应真值表中唯一一行;逻辑函数可写成标准与或式(SOP)Σmᵢ。
  • 位操作:AND 掩码复位(清 0)、OR 掩码置位(置 1)、XOR 掩码翻转(取反)。
  • 半加器 = 异或 + 与;全加器 = 2 半加器 + 或;n 个全加器级联成串行进位加法器。
  • 译码器把 n 位代码翻译成 2ⁿ 个输出中唯一有效者(内存地址译码);MUX 按选择信号选一路数据输出。
?
课堂练习 · 4 数字逻辑基础
1逻辑表达式 C = A · B 中,当 A=1、B=0 时输出 C 为(  )。
解析:参考答案:B
与运算要求所有输入都为 1 才输出 1,任一输入为 0 则输出 0。
2异或运算(XOR)的真值特征是(  )。
解析:参考答案:D
XOR:两个输入相同时输出 0,不同时输出 1;它是加法器中"和"运算的核心。
3将 8 位数 1011 1100 的低 4 位复位(清 0),应使用的掩码和运算是(  )。
解析:参考答案:C
复位用 AND,掩码目标位为 0、其余为 1:1011 1100 AND 1111 0000 = 1011 0000。
4半加器中本位和 S 与进位 C 的表达式是(  )。
解析:参考答案:A
异或符合"和",与符合"进位":S = A⊕B,C = A·B;由 1 个异或门和 1 个与门构成。
5全加器与半加器的区别在于全加器(  )。
解析:参考答案:D
全加器实现 A、B 与低位进位 Cin 三者相加,输出 S 与 Cout;可由两个半加器加一个或门构成。
6关于串行进位加法器与超前进位加法器,正确的是(  )。
解析:参考答案:C
串行进位:结构简单、延迟高、位数越多越慢;超前进位:打破进位依赖链、并行算进位,速度极快但需大量额外逻辑门。
72-4 译码器输入 A₁A₀ = 10 时,输出端状态为(  )。
解析:参考答案:B
2-4 译码器把 2 位输入翻译成 4 个输出中唯一有效者:10 对应 D₂ = 1(其余为 0)。
84 选 1 多路选择器,选择信号 S₁S₀ = 11 时输出为(  )。
解析:参考答案:A
S₁S₀ = 00/01/10/11 依次选 I₀/I₁/I₂/I₃,故 11 选 I₃。CPU 中用它从多个寄存器中选一个送 ALU。
05

SECTION 5计算机组成

把表示数据的部件与实现运算的部件组合起来,构成一台最简单的存储程序式计算机——Simple-1。

冯·诺依曼架构5.1 —— 现代计算机的蓝图

存储程序程序指令和数据共同存储在同一个存储器中
顺序执行CPU 通过程序计数器 PC 逐条取指令并执行
三大子系统CPU(中央处理单元)、主存储器、输入/输出子系统,经系统总线互连
CPU 中央处理单元 ALU · 寄存器 · CU 主存储器 Memory 存放程序与数据 RAM · ROM · Cache 输入/输出 子系统 系统总线(数据 / 地址 / 控制) 图 5.1 计算机硬件:三大子系统经系统总线互连(示意)

CPU 与主存储器5.2–5.3 —— 大脑与仓库

ALU执行算术(加减乘除)与逻辑(与或非异或)运算,接收寄存器操作数并送回结果
寄存器高速临时存储:数据寄存器 R0–Rn、指令寄存器 IR(当前指令)、程序计数器 PC(下条指令地址)
控制单元 CU协调控制所有部件,发送控制信号,解释指令并生成微操作序列,管理指令周期
存储容量 = 存储单元个数 × 存储字长 / 8 (10 位地址 × 16 位字长 = 1K × 2B = 2KB)

编址方式:按字节编址(每字节唯一地址,n = ⌈log₂B⌉ 位;32MB 内存需 25 位地址)或按字编址(每字唯一地址,n = ⌈log₂(B/W)⌉ 位;128MB、字长 8B 需 24 位)。

存储器特点用途
SRAM(静态 RAM)触发器保存数据,通电不刷新;快而贵高速缓存
DRAM(动态 RAM)电容存储,需周期性刷新;慢而便宜主存
ROM(MROM/PROM/EPROM/EEPROM)只读、非易失;可编程性与擦写能力逐级增强开机程序等不可丢失内容
寄存器(最快·最小·最贵) 高速缓存 Cache 主存储器(DRAM) 辅助存储器(硬盘、SSD——最慢·最大·最便宜) 容量↑ 速度↓ 成本↓ 图 5.2 存储器的层次结构
Cache 与 80-20 规则:Cache 是 CPU 与主存之间的小容量高速存储器,保存主存部分内容的副本。访问时先查 Cache——命中立即存取,未命中则把含目标字的数据块整体复制进 Cache(利用程序访问的局部性原理)。据统计计算机约 80% 的时间读取 20% 的数据,Cache 高速存下这 20%,存取至少快 80%。

I/O 子系统与子系统互连5.4–5.5 —— 与外界通信的桥

非存储设备键盘、显示器、打印机、鼠标——不能存储信息,需专用控制器与驱动
存储设备(辅助存储器)磁表面(硬盘/磁带)、光存储(CD/DVD/蓝光)、半导体(SSD/闪存)——大容量非易失
I/O 控制器I/O 设备是机电/磁性/光学设备,速度远慢于电子设备,必须经控制器(接口)接入总线;串行/并行
三组总线作用与宽度
数据总线传送数据,每根线每次 1 位;宽度取决于字长(32 位字长需 32 根)
地址总线寻址存储器的特定字;宽度取决于存储容量(2ⁿ 个字需 n 根)
控制总线传输读写等控制信息;宽度取决于控制命令数量(2ᵐ 条命令需 m 根)

I/O 寻址两种方式:

方式要点
I/O 独立寻址读写内存与读写 I/O 的指令不同(Read 101 读内存 / Input 101 读 I/O),I/O 地址可与内存地址重叠而不混淆
I/O 存储器映射寻址把 I/O 控制器每个寄存器看作内存存储字,指令集更小但 I/O 控制器占用一部分内存地址(5 控制器 × 4 寄存器 = 占 20 个字)

简单计算机模型 Simple-15.6 —— 一台能跑程序的机器

CPU16 个 16 位数据寄存器 R0–R15 + ALU + CU(PC 8 位保存下条指令地址、IR 16 位存当前指令)
主存256 个 16 位存储单元;地址 00–FD;前 64 个单元(00–3F)存指令,其余(40–FD)存数据
I/O键盘(FE)与监视器(FF),采用 I/O 存储器映射寻址,像 16 位寄存器一样与 CPU 交互

指令格式:每条指令 16 位、分 4 个 4 位域;最左域为操作码,其余 3 个域为操作数或地址。16 条指令:HALT、LOAD、STORE、ADDI、ADDF、MOVE、NOT、AND、OR、XOR、INC、DEC、ROTATE、JUMP 等。

机器周期:取指令 Fetch(按 PC 从内存读指令入 IR,PC+1)→ 译码 Decode(CU 解析指令与操作数)→ 执行 Execute(CU 发送命令,执行操作并存储结果)
取指令 译码 执行 图 5.3 机器周期:取指 → 译码 → 执行,循环直至无指令 / 停机
Simple-1 执行演示:两数相加(161 + 254 = 415) 交互 · 逐步

程序 5 条指令:LOAD R₀←M₄₀ → LOAD R₁←M₄₁ → ADDI R₂←R₀+R₁ → STORE M₄₂←R₂ → HALT。点击"下一步"逐周期观察 PC、IR、寄存器与内存的变化。

周期
0 / 5
PC
00
IR(指令)
R₀
R₁
R₂
00程序装入内存:地址 00–04 存指令 (1040)(1141)(3201)(2422)(0000)₁₆,地址 40/41/42 存数据 00A1 / 00FE / —
思考:若要数据从键盘输入、结果在监视器显示,应如何修改程序?——用 LOAD(操作数取 FE)从键盘读入,用 STORE(操作数取 FF)向监视器输出。
一句话总结:冯·诺依曼架构把程序和数据同存于存储器,CPU 通过总线与主存、I/O 协作,以"取指—译码—执行"的机器周期循环驱动 Simple-1 这样的计算机完成计算。
本节小结
  • 冯·诺依曼架构三要素:存储程序、顺序执行(PC 控制)、CPU+主存+I/O 三大子系统经总线互连。
  • CPU = ALU(运算)+ 寄存器组(R、IR、PC)+ 控制单元(协调、解释指令、管理指令周期)。
  • 主存按字节或按字编址;存储容量 = 单元个数 × 字长/8;RAM(SRAM/DRAM)易失,ROM(MROM~EEPROM)非易失。
  • 存储层次:寄存器 → Cache → 主存 → 辅助存储,速度递减、容量递增;Cache 依赖局部性与 80-20 规则。
  • 三组总线:数据(按字长)、地址(按容量)、控制(按命令数);I/O 经控制器接入总线,寻址分独立寻址与存储器映射寻址。
  • Simple-1:16 位指令分 4 域(操作码 + 3 操作数),机器周期 = 取指→译码→执行;5 条指令即可完成两数相加。
?
课堂练习 · 5 计算机组成
1冯·诺依曼架构的核心思想不包括(  )。
解析:参考答案:C
冯·诺依曼架构的核心是存储程序、顺序执行、三大子系统;并行多处理器并非其核心思想。
2CPU 中保存"下一条要执行指令地址"的寄存器是(  )。
解析:参考答案:D
程序计数器 PC 存下一条要执行指令的地址;IR 存当前正在执行的指令。
3一台计算机有 32MB 内存、按字节编址,需要的地址位数是(  )。
解析:参考答案:B
32MB = 2²⁵ 字节,按字节编址需 n = log₂(2²⁵) = 25 根地址线。
4关于 SRAM 与 DRAM,下列说法正确的是(  )。
解析:参考答案:A
SRAM:触发器、通电即存、不需刷新、快而贵,用于高速缓存;DRAM:电容存储、需周期性刷新、慢而便宜,用于主存。
5Cache 高效工作的主要依据是(  )。
解析:参考答案:C
约 80% 的时间读取 20% 的数据,相同数据常被多次访问;Cache 高速存下这部分数据,使存取至少快 80%。
6地址总线宽度由什么决定(  )。
解析:参考答案:B
存储容量为 2ⁿ 个字时需要 n 根地址线;数据总线宽度取决于字长,控制总线宽度取决于控制命令数量。
7I/O 存储器映射寻址的特点是(  )。
解析:参考答案:D
CPU 把 I/O 控制器寄存器看作内存存储字,无专属指令、指令集小;代价是 I/O 控制器占用内存地址(如 5 控制器 × 4 寄存器 = 20 个地址)。
8Simple-1 完成"两数相加"至少需要的指令条数是(  )。
解析:参考答案:C
两条 LOAD 装入 A、B,一条 ADDI 相加,一条 STORE 存结果,一条 HALT 停机——共 5 条。

EXTRA延伸学习资源(网络资源)

课上演示与课后拓展建议——先试官方与交互工具,再读原始资料。

数制转换练习器

csgnetwork.com/numberhexconversion.html

在线十进制/二进制/八进制/十六进制互转,可随机出题自测数制转换。

Logic Gate Simulator

academo.org/demos/logic-gate-simulator

拖拽搭建与门、或门、异或门等,直观观察真值表与组合电路。

NandGame

nandgame.com

从与非门开始一步步搭出加法器、ALU 甚至 CPU 的互动游戏,对应"从逻辑到运算器"。

Nand2Tetris 课程

nand2tetris.org

《计算机系统的要素》配套课程:从与非门构建一台能运行程序的完整计算机。

维基百科 · 计算机组成原理

zh.wikipedia.org 计算机组成原理词条

冯·诺依曼结构、总线、存储层次等概念的扩展阅读与历史背景。

维基百科 · IEEE 754

zh.wikipedia.org 的 IEEE 754 词条

单精度/双精度浮点格式、特殊值(无穷、NaN)与舍入规则的权威说明。

ASCII Table 在线表

asciitable.com

完整 ASCII 编码表,十进制/十六进制/二进制对照,课堂查表演示。

哈佛 CS50(第 1 周)

cs50.harvard.edu

以"二进制与数据表示"为主题的公开课视频,双语对照理解本章核心。

随机提问
点击下方按钮开始
今日已提问:0/0