《计算机组成原理》知识点汇总
本笔记严格贴合 408 考试大纲,基于王道考研核心资料提炼,覆盖本章全部高频考点,适用于考研全阶段复习。
第一章 计算机系统概述
注:计算机发展历程已从 408 大纲删除,仅作知识完整性补充,简单了解即可。
一、计算机系统的组成与发展历程
核心概念
-
计算机系统:由硬件和软件共同组成,计算机整体性能由软硬件功能的总和决定。
-
硬件:计算机的物理实体部分,如主机、外设等实际装置。
-
软件:由具备各类特殊功能的程序组成,分为系统软件和应用软件两大类。
-
摩尔定律:集成电路上可容纳的晶体管数目约每隔 18 个月增加一倍,芯片整体性能也同步提升一倍,揭示了信息技术的进步速度。
-
发展趋势:计算机发展呈现 “两极分化” 特征:微型计算机向更微型化、网络化、高性能、多用途方向发展;巨型机向更巨型化、超高速、并行处理、智能化方向发展。
原理透析
1. 硬件的四代发展历程
计算机硬件的发展以逻辑元件的迭代为核心标志,共分为四个阶段:
-
第一代(1946-1957)电子管时代:逻辑元件为电子管,体积大、功耗高;使用机器语言编程;内存采用汞延迟线、磁鼓,外存为穿孔卡片、纸带;运算速度为几千到几万次 / 秒。
-
第二代(1958-1964)晶体管时代:逻辑元件为晶体管,体积与功耗显著降低;出现 FORTRAN 等面向过程的高级语言,诞生操作系统雏形;内存为磁芯存储器,外存为磁带;运算速度为几万到几十万次 / 秒。
-
第三代(1964-1971)中小规模集成电路时代:逻辑元件为中小规模集成电路;高级语言快速发展,出现分时操作系统;内存为半导体存储器,外存新增磁盘;运算速度为几十万到几百万次 / 秒。
-
第四代(1972 - 至今)大规模、超大规模集成电路时代:出现微处理器与微型计算机,个人计算机(PC)萌芽并普及;操作系统成熟完善(Windows、MacOS、Linux 等);半导体存储器广泛应用于内存与外存;运算速度可达上千万到万亿次 / 秒。
2. 软件的发展与分类
-
编程语言演进路径:机器语言→汇编语言→高级语言(FORTRAN、PASCAL、C++、Java 等)。
-
系统软件:负责管理整个计算机系统,向上层应用提供基础服务,典型代表有操作系统、数据库管理系统(DBMS)、标准程序库、网络软件、语言处理程序、服务程序。
-
应用软件:为解决特定应用领域的问题编制的程序,如办公软件、游戏、专业设计工具等。
3. 软硬件的逻辑功能等效性
同一个功能既可以通过硬件电路实现,也可以通过软件编程实现:硬件实现性能更高、研发与制造成本更高;软件实现性能更低、开发成本更低。
指令集体系结构(ISA)是软件与硬件之间的界面,定义了一台计算机支持的指令集合、每条指令的功能与使用规则。
易混淆点辨析
-
系统软件与应用软件的区分
系统软件面向计算机本身的资源管理与运行支撑,是所有应用程序运行的基础;应用软件面向具体用户的业务需求,必须依赖系统软件才能运行。编译器、汇编器等语言处理程序属于系统软件,而非应用软件。 -
摩尔定律的单位性质
摩尔定律描述的是集成电路晶体管数量的增长规律,属于经验性总结,并非物理定律;随着芯片制程逼近物理极限,其增长速度已逐步放缓。
408 真题考法预测
-
选择题:考查软件分类的判断、软硬件逻辑等效性的理解、摩尔定律的核心含义;发展历程部分大纲已删除,考查概率极低。
-
概念辨析题:判断某类程序属于系统软件还是应用软件。
二、计算机硬件的基本组成与工作原理
核心概念
-
存储程序:冯・诺依曼结构的核心思想,指将指令以二进制代码形式预先输入主存储器,按指令在存储器中的首地址执行第一条指令,之后按程序规定的顺序自动执行后续指令,直至程序结束。
-
冯・诺依曼计算机:早期经典计算机结构,由运算器、控制器、存储器、输入设备、输出设备五大部件组成,整体以运算器为中心。
-
现代计算机结构:以存储器为中心的结构,CPU 由运算器和控制器共同组成,I/O 设备可直接与存储器完成数据交互,无需经过运算器中转。
-
主存储器核心概念
-
存储元:存储 1 位二进制数据的电子元件,是存储器的最小组成单位。
-
存储单元:由多个存储元组成,存放一串二进制代码,每个存储单元对应唯一地址。
-
存储字:单个存储单元中二进制代码的组合。
-
存储字长:单个存储单元中二进制代码的位数。
-
MAR(存储地址寄存器):指明要读 / 写的存储单元地址,其位数直接反映可寻址的存储单元总数。
-
MDR(存储数据寄存器):暂存从存储单元读出的数据,或暂存要写入存储单元的数据,其位数与存储字长相等。
-
-
运算器组成
-
ALU(算术逻辑单元):通过内部硬件电路实现算术运算与逻辑运算。
-
ACC(累加器):用于存放操作数,或存放运算的结果。
-
MQ(乘商寄存器):执行乘法、除法运算时,存放操作数或对应运算结果。
-
X:通用操作数寄存器,用于存放参与运算的操作数。
-
-
控制器组成
-
CU(控制单元):分析指令操作码,输出对应控制信号,指挥各硬件部件协同工作。
-
IR(指令寄存器):存放当前正在执行的指令。
-
PC(程序计数器):存放下一条指令的存储地址,具备自动加 1 的功能。
-
原理透析
1. 冯・诺依曼计算机的六大特点
-
计算机由运算器、控制器、存储器、输入设备、输出设备五大部件组成。
-
指令和数据以同等地位存于存储器中,可按地址独立寻访。
-
指令和数据均采用二进制表示。
-
指令由操作码和地址码两部分组成,操作码指明操作类型,地址码指明操作数的存储地址。
-
核心设计思想:存储程序。
-
早期结构以运算器为中心,输入输出设备与存储器的数据传送必须经过运算器。
2. 主存储器的工作逻辑
MAR 接收地址信号后选中对应存储单元;若为读操作,存储单元的数据送入 MDR 暂存;若为写操作,MDR 中的数据写入对应存储单元。
示例:MAR 为 4 位时,共有24=162^4=1624=16个存储单元;MDR 为 16 位时,每个存储单元可存放 16bit,即 1 个字(word)= 16bit。
3. 运算器寄存器的功能分工
| 运算类型 | ACC | MQ | X |
|---|---|---|---|
| 加法 | 被加数、和 | / | 加数 |
| 减法 | 被减数、差 | / | 减数 |
| 乘法 | 乘积高位 | 乘数、乘积低位 | 被乘数 |
| 除法 | 被除数、余数 | 商 | 除数 |
4. 指令执行的完整流程
指令和数据预先装入主存,PC 初始指向第一条指令地址,单条指令的执行分为三个阶段:
-
取指阶段:PC 内容送入 MAR,主存根据 MAR 地址读出指令,经 MDR 送入 IR;同时 PC 自动加 1,指向下一条指令地址。
-
分析阶段:IR 中的操作码送入 CU,CU 识别指令类型,生成对应控制信号。
-
执行阶段:IR 中的地址码送入 MAR,根据指令类型完成对应操作(取数、运算、存数、停机等)。
CPU 区分指令和数据的核心依据:指令周期的不同阶段。取指阶段从主存取出的是指令,执行阶段从主存取出的是数据。
易混淆点辨析
-
MAR 与 MDR 的功能差异
MAR 是地址类寄存器,负责指定存储单元的位置,位数决定了计算机的寻址空间大小;MDR 是数据类寄存器,负责暂存读写过程中的数据,位数与存储字长一致。现代计算机通常将 MAR 和 MDR 集成在 CPU 内部。 -
存储字、存储字长与字节的区分
-
字节(Byte)是固定通用单位,1Byte = 8bit,是计算机数据计量的基本单位。
-
存储字是单个存储单元的二进制内容,存储字长是存储单元的二进制位数,不同架构的机器存储字长可以不同(如 16 位、32 位、64 位)。
- 两类计算机中心结构的区别
冯・诺依曼机以运算器为中心,所有数据传输都需经过运算器,运算器易成为系统性能瓶颈;现代计算机以存储器为中心,I/O 设备可直接与存储器交换数据,大幅提升了系统整体效率。
408 真题考法预测
-
选择题:考查冯・诺依曼机的核心特点;考查 MAR、MDR、ACC、PC、IR 等寄存器的功能;考查存储单元数量、存储容量的计算;考查 CPU 区分指令与数据的依据。
-
应用题:结合具体指令,分析取指、执行阶段各寄存器的状态变化与数据流向。
三、计算机软件与系统层次结构
核心概念
-
三级编程语言
-
机器语言:二进制代码语言,是硬件唯一可以直接识别和执行的语言。
-
汇编语言:用助记符编写的语言,与机器语言指令一一对应,需经汇编程序翻译为机器语言后执行。
-
高级语言:面向人类编程逻辑的编程语言(如 C、Java),需经编译程序翻译为汇编语言,再汇编为机器语言。
-
-
翻译程序:将高级语言或汇编语言转换为机器语言的程序,包括编译程序、汇编程序、解释程序三类。
-
指令集体系结构(ISA):软件与硬件之间的交互界面,定义计算机支持的指令集合、指令功能与使用规则。
-
计算机系统多级层次结构:从底层到上层依次为微程序机器 M0、传统机器 M1、操作系统机器 M2、汇编语言机器 M3、高级语言机器 M4。下层是上层的实现基础,上层是下层的功能扩展。
-
计算机体系结构:机器语言程序员可见的计算机系统属性,属于概念性的结构与功能特性,如指令系统、数据类型、寻址技术、I/O 机理。
-
计算机组成原理:计算机体系结构所定义功能的具体实现方式,对上层程序员 “透明”,如乘法指令的硬件电路实现。
原理透析
1. 多级层次结构各层说明
-
M0 微程序机器:最底层硬件层级,由硬件直接执行微指令。
-
M1 传统机器:机器语言机器,直接执行二进制机器指令,即通常所说的硬件层。
-
M2 操作系统机器:向上提供广义指令(系统调用),由操作系统实现硬件资源管理与抽象。
-
M3 汇编语言机器:执行汇编语言指令,需通过汇编程序翻译为机器语言。
-
M4 高级语言机器:执行高级语言程序,需通过编译程序翻译为汇编语言。
2. 计算机体系结构与计算机组成的区别
-
体系结构回答 “有无某功能”,例如 “计算机是否支持乘法指令”,是编程者可见的属性。
-
组成回答 “功能如何实现”,例如 “乘法指令如何通过硬件电路完成”,属于底层实现细节,对上层程序员透明。
易混淆点辨析
- 编译、汇编、解释的差异
-
编译程序:将高级语言完整翻译为汇编 / 机器语言目标程序,生成目标文件后再执行,如 C 语言编译器。
-
汇编程序:将汇编语言逐行翻译为机器语言,指令一一对应。
-
解释程序:边翻译边执行,不生成完整的目标程序,如 Python 解释器。
- “透明” 概念的特殊含义
计算机领域中的 “透明” 指 “不可见、无需感知”,即底层实现细节对上层程序员不可见,无需关注。与日常语境中 “公开透明” 的含义完全相反。
408 真题考法预测
-
选择题:考查多级层次结构的层级顺序;判断某属性属于体系结构还是计算机组成范畴;考查三类翻译程序的特点与区别。
-
概念辨析题:区分计算机体系结构与计算机组成的不同研究范畴。
四、计算机的性能指标
核心概念
-
存储器性能指标
- 存储总容量:存储器能够存储的二进制数据总量,常用单位为 bit、Byte、KB、MB、GB 等。
-
CPU 性能指标
-
CPU 时钟周期:CPU 内数字脉冲信号的振荡周期,是 CPU 操作的最小时间单位。
-
CPU 主频(时钟频率):时钟周期的倒数,即单位时间内的时钟周期数,单位为 Hz。
-
CPI(每条指令时钟周期数):执行一条指令所需的时钟周期数,不同指令的 CPI 通常不同。
-
IPS(每秒指令数):单位时间内 CPU 可执行的指令条数,单位为 KIPS、MIPS。
-
FLOPS(每秒浮点运算次数):单位时间内 CPU 可执行的浮点运算次数,单位为 KFLOPS、MFLOPS、GFLOPS、TFLOPS、PFLOPS、EFLOPS、ZFLOPS。
-
-
系统整体性能指标
-
数据通路带宽:数据总线一次能够并行传送的信息位数。
-
吞吐量:系统在单位时间内处理请求的数量,主要取决于主存的存取周期。
-
响应时间:从用户向系统发送请求,到系统返回处理结果的总等待时间,包括 CPU 运行时间与 I/O、操作系统开销等等待时间。
-
-
基准程序:专门用于测量计算机处理速度的测试程序,可用于不同计算机之间的性能横向对比。
原理透析
1. 存储器容量计算
核心公式:
总容量=存储单元个数×存储字长(单位:bit)总容量 = 存储单元个数 × 存储字长 \quad (单位:bit)总容量=存储单元个数×存储字长(单位:bit)
总容量=存储单元个数×存储字长/8(单位:Byte)总容量 = 存储单元个数 × 存储字长 / 8 \quad (单位:Byte)总容量=存储单元个数×存储字长/8(单位:Byte)
示例:MAR 为 32 位,MDR 为 8 位,则总容量 = 232×8 bit=4GB2^{32} × 8\ bit = 4GB232×8 bit=4GB。
2. CPU 核心性能公式
-
主频与时钟周期的关系:
CPU主频=1CPU时钟周期CPU主频 = \frac{1}{CPU时钟周期}CPU主频=CPU时钟周期1 -
单条指令执行时间:
单指令耗时=CPI×CPU时钟周期单指令耗时 = CPI × CPU时钟周期单指令耗时=CPI×CPU时钟周期 -
程序总 CPU 执行时间:
CPU执行时间=CPU时钟周期总数主频=指令条数×平均CPI主频CPU执行时间 = \frac{CPU时钟周期总数}{主频} = \frac{指令条数 × 平均CPI}{主频}CPU执行时间=主频CPU时钟周期总数=主频指令条数×平均CPI -
IPS 计算:
IPS=主频平均CPIIPS = \frac{主频}{平均CPI}IPS=平均CPI主频
3. FLOPS 单位换算
FLOPS 的数量级按10310^3103递增:
1 KFLOPS=103FLOPS1\ KFLOPS=10^3 FLOPS1 KFLOPS=103FLOPS,1 MFLOPS=106FLOPS1\ MFLOPS=10^6 FLOPS1 MFLOPS=106FLOPS,1 GFLOPS=109FLOPS1\ GFLOPS=10^9 FLOPS1 GFLOPS=109FLOPS,1 TFLOPS=1012FLOPS1\ TFLOPS=10^{12} FLOPS1 TFLOPS=1012FLOPS,1 PFLOPS=1015FLOPS1\ PFLOPS=10^{15} FLOPS1 PFLOPS=1015FLOPS,1 EFLOPS=1018FLOPS1\ EFLOPS=10^{18} FLOPS1 EFLOPS=1018FLOPS,1 ZFLOPS=1021FLOPS1\ ZFLOPS=10^{21} FLOPS1 ZFLOPS=1021FLOPS。
注意:此处 K、M、G 等为十进制数量单位,与存储容量的二进制单位(2102^{10}210)计量规则不同。
易混淆点辨析
-
主频越高不代表性能一定更强
CPU 整体性能不仅取决于主频,还与平均 CPI、指令系统的功能密度相关。若 A CPU 主频更高,但 CPI 更大、单条指令功能简单,实际性能可能低于主频更低的 CPU。 -
CPI 不是固定常量
不同类型指令的 CPI 存在差异,即使是同一条指令,在不同硬件实现架构下 CPI 也可能变化;通常使用平均 CPI 来衡量 CPU 的指令执行效率。 -
基准程序的局限性
基准程序的测试语句存在频度偏差,其运行结果只能部分反映机器性能,无法完全代表实际场景下的整体性能。
408 真题考法预测
-
选择题:考查存储器容量计算;考查主频、CPI、执行时间的单位换算;考查 FLOPS 的单位辨析;考查吞吐量、响应时间的概念理解。
-
计算题:给定主频、指令条数与平均 CPI,计算程序的总执行时间或 IPS。
-
辨析题:判断 “主频越高计算机性能越强” 等说法的正误并说明原因。
第二章 数据的表示和运算
一、进位计数制与机器数基础
核心概念
-
进位计数制:以 r 为基数的计数体系,逢 r 进一,每位数码对应位权rir^iri。计算机常用进制包括二进制(B)、八进制(O)、十进制(D)、十六进制(H)。
-
真值:符合人类使用习惯、带正负号的实际数值。
-
机器数:将正负号数字化后存储在计算机中的数值形式,符号位通常位于最高位,0 表示正,1 表示负。
原理透析
-
任意进制转十进制:按权展开求和法,每位数码乘以对应位权后累加。
通用公式:
KnKn−1...K0.K−1...K−m=∑i=−mnKi×riK_nK_{n-1}...K_0.K_{-1}...K_{-m} = \sum_{i=-m}^{n} K_i \times r^iKnKn−1...K0.K−1...K−m=∑i=−mnKi×ri -
十进制转任意进制
-
整数部分:除基取余法,反复除以基数取余数,先得到的余数为低位,后得到的为高位,直到商为 0。
-
小数部分:乘基取整法,反复乘以基数取整数,先得到的整数为高位,后得到的为低位,直到小数部分为 0 或满足精度要求。
-
快速技巧:拼凑法,熟记常用 2 的幂次位权,直接组合得到二进制结果。
-
-
二进制与八 / 十六进制快速转换
-
二进制转八进制:3 位一组,整数部分从右往左补 0,小数部分从左往右补 0,每组对应 1 位八进制数。
-
二进制转十六进制:4 位一组,补位规则同上,每组对应 1 位十六进制数。
-
反向转换同理,每位八 / 十六进制数对应 3/4 位二进制数。
-
易混淆点辨析
-
十进制小数的二进制精度问题:部分十进制小数(如 0.3D)无法用二进制精确表示,只能近似存储,属于正常现象。
-
进制书写规范:二进制后缀 B,十六进制后缀 H 或前缀 0x,避免不同进制数值混淆。
408 真题考法预测
-
选择题:直接考查进制转换计算,或结合浮点数、补码综合考查进制转换能力。
-
应用题:结合数据存储,考查字节内的位权与地址对应关系。
二、定点数的编码表示
核心概念
-
定点数:约定小数点位置固定不变的数,分为定点整数(小数点隐含在最低位之后)和定点小数(小数点隐含在符号位之后)。
-
无符号数:全部二进制位均为数值位,无符号位,等价于数的绝对值,通常只有无符号整数。
-
四种编码:原码、反码、补码、移码,用于表示有符号定点数;其中移码仅可表示定点整数。
原理透析
设机器字长为 n+1 位(1 位符号位,n 位数值位),各编码规则如下:
1. 原码
-
定义:符号位 0 表示正、1 表示负,数值位为真值的绝对值。
-
定点整数表示范围:−(2n−1)≤x≤2n−1-(2^n -1) \le x \le 2^n -1−(2n−1)≤x≤2n−1,关于原点对称。
-
定点小数表示范围:−(1−2−n)≤x≤1−2−n-(1-2^{-n}) \le x \le 1-2^{-n}−(1−2−n)≤x≤1−2−n,关于原点对称。
-
特点:真值 0 有 + 0 和 - 0 两种表示;直观易懂,但减法运算硬件实现复杂。
2. 反码
-
定义:正数反码与原码完全相同;负数符号位不变,数值位全部按位取反。
-
表示范围与原码完全一致,真值 0 同样有两种形式。
-
特点:仅作为原码转补码的中间状态,不直接用于运算。
3. 补码
-
定义:正数补码与原码相同;负数补码为对应反码末位加 1(含进位)。
-
定点整数表示范围:−2n≤x≤2n−1-2^n \le x \le 2^n -1−2n≤x≤2n−1,比原码多表示一个最小负数−2n-2^n−2n。
-
定点小数表示范围:−1≤x≤1−2−n-1 \le x \le 1-2^{-n}−1≤x≤1−2−n,比原码多表示 - 1。
-
核心特点:真值 0 唯一表示(全 0);可将减法转换为加法,是计算机中定点数的主流存储方式。
-
常用技巧:负数补码转原码同样遵循 “数值位取反,末位加 1”;由[x]补[x]_{补}[x]补求[−x]补[-x]_{补}[−x]补,全部位取反后末位加 1。
4. 移码
-
定义:在补码基础上将符号位取反,仅用于表示定点整数。
-
表示范围与补码完全一致,真值 0 唯一表示。
-
特点:移码的大小关系与真值完全一致,便于硬件比较大小,是浮点数阶码的标准编码。
8 位机器字长各编码对比
| 编码类型 | 表示范围 | 0 的表示数量 | 机器码 10000000 对应真值 |
|---|---|---|---|
| 无符号数 | 0 ~ 255 | 1 种 | 128 |
| 原码 | -127 ~ +127 | 2 种(+0、-0) | -0 |
| 反码 | -127 ~ +127 | 2 种(+0、-0) | -127 |
| 补码 | -128 ~ +127 | 1 种 | -128 |
| 移码 | -128 ~ +127 | 1 种 | 0 |
易混淆点辨析
-
补码的最小负数:补码中符号位为 1、数值位全 0 时,对应真值为−2n-2^n−2n,该值没有对应的原码和反码。
-
移码与补码的关系:仅符号位相反,数值位完全相同;移码全 0 对应真值最小,全 1 对应真值最大,与补码规律相反。
-
定点小数的补码 - 1:定点小数补码
1.0000000对应真值 - 1,为补码独有,原码和反码无法表示。
408 真题考法预测
-
选择题:给定机器码,判断不同编码下的真值;考查各编码的表示范围与 0 的表示形式。
-
应用题:结合补码运算、浮点数阶码,考查补码与移码的转换。
三、定点数的加减运算
核心概念
-
补码加减运算:计算机定点数加减的主流实现方式,符号位参与运算,减法可转换为加法。
-
溢出:运算结果超出机器字长所能表示的数值范围,仅发生在同号相加、异号相减场景。
-
标志位:CF(进位 / 借位标志,对应无符号数溢出)、OF(溢出标志,对应有符号数溢出)、SF(符号标志)、ZF(零标志)。
原理透析
1. 补码加减运算规则
-
加法:[A+B]补=[A]补+[B]补[A+B]_{补} = [A]_{补} + [B]_{补}[A+B]补=[A]补+[B]补,符号位参与运算,结果保留 n+1 位。
-
减法:[A−B]补=[A]补+[−B]补[A-B]_{补} = [A]_{补} + [-B]_{补}[A−B]补=[A]补+[−B]补,先求减数的负补(全部位取反末位加 1),再执行加法。
-
数学本质:基于模运算性质,负数的补码等价于其模下补数,减法等价于加补数后取模。
2. 溢出判断三种方法
-
一位符号位逻辑法
V=ASBSSS‾+AS‾BS‾SSV = A_S B_S \overline{S_S} + \overline{A_S} \overline{B_S} S_SV=ASBSSS+ASBSSS
即 “正 + 正结果为负、负 + 负结果为正” 时发生溢出。 -
进位判断法(一位符号位)
V=CS⊕C1V = C_S \oplus C_1V=CS⊕C1
符号位的进位CSC_SCS与最高数值位的进位C1C_1C1不同时,发生溢出。 -
双符号位法(模 4 补码)
正数符号扩展为 00,负数扩展为 11;运算后两位符号位不同则溢出:01 为上溢,10 为下溢。
V=SS1⊕SS2V = S_{S1} \oplus S_{S2}V=SS1⊕SS2
实际存储仅存 1 位符号位,运算时复制扩展为 2 位。
3. 标志位生成规则
-
OF:最高位进位与次高位进位异或,反映有符号数运算是否溢出。
-
SF:取运算结果最高位(符号位),反映有符号数结果的正负。
-
ZF:所有位或非运算,全 0 时为 1,反映运算结果是否为 0。
-
CF:最高位进位与进位输入异或,反映无符号数加减的进位 / 借位。
易混淆点辨析
-
CF 与 OF 的核心区别
-
CF 针对无符号数,表示最高位的进位 / 借位,CF=1 说明无符号数溢出。
-
OF 针对有符号数,由符号位与数值位进位差异决定,OF=1 说明有符号数溢出。
-
二者相互独立,可同时为 0、同时为 1,或分别为 1。
-
-
原码加减的局限性:原码加减需单独处理符号位,异号相加需比较绝对值大小,硬件实现复杂,因此计算机不采用。
408 真题考法预测
-
选择题:给定补码运算式判断是否溢出;考查标志位的含义与生成逻辑。
-
应用题:结合加法器电路,分析溢出判断与标志位生成;结合 C 语言程序考查补码运算溢出。
四、定点数的乘除运算
核心概念
-
无符号整数乘法:基于 “逐位相乘、错位相加” 原理,通过加法 + 移位实现。
-
Booth 乘法(补码一位乘法):带符号整数乘法的主流算法,符号位参与运算。
-
除法运算:核心为 “逐位上商,错位相减”,分为无符号数除法与补码除法。
-
乘法三类实现方式:软件移位加法、ALU + 移位器乘法电路、阵列乘法器。
原理透析
1. 无符号整数乘法
-
执行流程:
-
初始化:被乘数存入 X,乘数存入 Y,乘积寄存器 P 置 0,计数器置 n。
-
每轮判断 Y 最低位,为 1 则 P 加被乘数,为 0 则加 0;随后
[C, P, Y]整体逻辑右移一位。 -
计数器减 1,重复 n 轮后,
[P, Y]共同保存 2n 位乘积。
-
-
溢出判断:若高 n 位(P)不全为 0,说明溢出,置 OF=1。
2. 带符号整数(补码)乘法(Booth 算法)
-
特点:乘数寄存器末尾增设 1 位辅助位,通过相邻两位差值判断操作。
-
操作规则(辅助位 - Y 最低位):
-
结果为 1:部分积加[x]补[x]_{补}[x]补
-
结果为 0:部分积加 0
-
结果为 - 1:部分积减[x]补[x]_{补}[x]补(即加[−x]补[-x]_{补}[−x]补)
-
-
执行流程:每轮判断后,
[P, Y, 辅助位]整体算术右移一位,共执行 n 轮。 -
溢出判断:2n 位结果的高 n+1 位不完全相同时,发生溢出。
3. 除法运算核心规则
-
通用公式:被除数 = 商 × 除数 + 余数,余数与被除数同号。
-
无符号数除法:
-
上商规则:余数≥除数则上商 1,否则上商 0。
-
异常:除数为 0 触发 “除数为 0” 异常;双精度除法(2n 位 ÷n 位)可能发生商溢出。
-
-
补码除法:
-
上商规则:同号做减法,异号做加法;新余数符号不变则上商 1,符号改变则上商 0。
-
唯一溢出场景:绝对值最大的负数 ÷ (-1),触发商溢出异常。
-
4. 乘法三种实现方式对比
| 实现方式 | 运算速度 | 硬件成本 | 适用场景 |
|---|---|---|---|
| 软件移位 + 加减法 | 最慢 | 最低(无需专用硬件) | 无乘法指令的低端处理器 |
| ALU + 移位器 + 控制逻辑 | 中等 | 中等 | 通用处理器乘法指令 |
| 阵列乘法器(快速乘法器) | 最快(1 个时钟周期) | 最高 | 高性能处理器 |
易混淆点辨析
-
乘法的位数特性:n 位乘 n 位,乘积为 2n 位;通常仅保留低 n 位作为结果,高 n 位用于溢出判断。
-
除法的商溢出:单精度除法(n 位 ÷n 位)不会溢出;双精度除法(2n 位 ÷n 位)才可能溢出。
-
Booth 算法优势:无论乘数正负均适用,且当乘数中连续 1 较多时,可减少加法次数,提升效率。
408 真题考法预测
-
选择题:考查乘除法的运算步骤、溢出判断;对比三种乘法实现的速度与硬件成本。
-
应用题:结合 C 语言代码,分析乘法溢出与异常处理;考查 Booth 算法的操作规则。
五、运算部件
核心概念
-
一位全加器(FA):实现 1 位二进制加法的基本电路,输入为被加数、加数、低位进位,输出为本位和、向高位进位。
-
并行加法器:由多个全加器组成,实现 n 位二进制加法;按进位方式分为串行进位与并行进位。
-
算术逻辑单元(ALU):运算器核心,实现算术运算与逻辑运算的组合逻辑电路。
-
辅助部件:多路选择器(MUX)用于数据选择,三态门用于总线通断控制。
原理透析
1. 一位全加器
-
本位和:Si=Ai⊕Bi⊕Ci−1S_i = A_i \oplus B_i \oplus C_{i-1}Si=Ai⊕Bi⊕Ci−1(输入含奇数个 1 时输出 1)
-
进位输出:Ci=AiBi+(Ai⊕Bi)Ci−1C_i = A_i B_i + (A_i \oplus B_i) C_{i-1}Ci=AiBi+(Ai⊕Bi)Ci−1(至少两个输入为 1 时输出 1)
2. n 位并行加法器
-
串行进位加法器:n 个全加器串行连接,进位逐级传递。
特点:结构简单,但进位延迟随位数增加而增大,运算速度慢。 -
并行进位加法器(CLA):通过先行进位逻辑,所有进位同时生成。
特点:运算速度快,几乎无进位延迟,但硬件电路更复杂。
3. 算术逻辑单元(ALU)
-
功能:支持算术运算(加减乘除)、逻辑运算(与或非异或移位)、求补、直送等操作。
-
控制信号:若支持 k 种功能,则控制信号位数 m≥⌈log2k⌉m \ge \lceil log_2 k \rceilm≥⌈log2k⌉ bit。
-
核心:加法器是 ALU 的核心,所有算术运算都基于加法实现。
-
输出:除运算结果外,通常输出 OF、SF、ZF、CF 等标志位,存入程序状态字(PSW/FR)。
4. 辅助电路
-
多路选择器(MUX):从多个输入数据中选择一个输出,k 个输入需至少⌈log2k⌉\lceil log_2 k \rceil⌈log2k⌉位控制信号。
-
三态门:单输入单输出,1 位控制信号决定数据是否通过,用于总线数据传输控制。
易混淆点辨析
-
并行加法器的 “并行” 含义:指数据输入并行,进位方式分串行和并行;串行进位的加法器仍属于并行加法器。
-
ALU 与加法器的关系:加法器是 ALU 的组成部分,ALU 功能更丰富,包含逻辑运算等更多操作。
408 真题考法预测
-
选择题:考查全加器的逻辑表达式;计算 ALU、MUX 的控制信号位数;对比串 / 并行进位的速度差异。
-
应用题:结合数据通路图,分析 ALU 的功能与控制信号作用。
六、浮点数的表示与运算
核心概念
-
浮点数:通过阶码与尾数表示数值,等价于二进制科学计数法,可在有限位数下大幅扩大表示范围。
-
IEEE 754 标准:国际通用二进制浮点数标准,定义了单精度(float)、双精度(double)等格式。
-
规格化浮点数:尾数最高位为 1 的浮点数,保证尾数精度最大化。
-
非规格化浮点数:阶码全 0、尾数非 0 的浮点数,用于表示绝对值极小的数。
-
浮点数加减五步骤:对阶、尾数加减、尾数规格化、舍入、溢出判断。
原理透析
1. IEEE 754 标准格式
| 类型 | 符号位 | 阶码位 | 尾数位 | 总位数 | 阶码偏置值 |
|---|---|---|---|---|---|
| 单精度 float | 1bit | 8bit | 23bit | 32bit | 127 |
| 双精度 double | 1bit | 11bit | 52bit | 64bit | 1023 |
-
符号位:0 表示正,1 表示负。
-
阶码:用移码存储,真值 = 阶码无符号值 - 偏置值。
-
尾数:规格化尾数小数点前隐含 1,实际精度为 “隐含 1 + 存储位”。
2. 特殊状态(阶码全 0 或全 1)
| 阶码状态 | 尾数状态 | 表示含义 |
|---|---|---|
| 全 0 | 全 0 | ±0 |
| 全 0 | 非 0 | 非规格化数,阶码真值固定为 1 - 偏置值,尾数隐含 0 |
| 全 1 | 全 0 | ± 无穷大(上溢结果) |
| 全 1 | 非 0 | NaN(非数,如 0/0、负数开方) |
3. 单精度规格化浮点数表示范围
-
最大正数:+(2−2−23)×2127+(2-2^{-23}) \times 2^{127}+(2−2−23)×2127
-
最小规格化正数:+1.0×2−126+1.0 \times 2^{-126}+1.0×2−126
-
绝对值最大负数:−(2−2−23)×2127-(2-2^{-23}) \times 2^{127}−(2−2−23)×2127
-
最小规格化负数:−1.0×2−126-1.0 \times 2^{-126}−1.0×2−126
4. 浮点数加减运算五步
-
对阶:小阶向大阶对齐,阶码小的尾数右移、阶码增加。原则:小阶向大阶靠,避免丢失高位有效数字。
-
尾数加减:对阶后的尾数执行加减运算,硬件上通常用补码实现。
-
尾数规格化
-
右规:尾数溢出(如
1x.xxxx)时,尾数右移 1 位,阶码加 1。 -
左规:尾数高位为 0(如
0.0xxxx)时,尾数左移、阶码减 1,直到尾数最高位为 1。
-
-
舍入处理:IEEE 754 定义 4 种舍入模式,默认就近舍入(类似 0 舍 1 入,中间值向偶数舍入);其余包括正向舍入、负向舍入、截断法。
-
溢出判断
-
上溢:右规后阶码全 1,结果置为 ±∞,置溢出标志。
-
下溢:左规后阶码全 0,结果用非规格化数表示或置为机器零,置下溢标志。
-
易混淆点辨析
-
隐含 1 的处理:规格化浮点数尾数的 1 不存储,转换真值时必须补上;非规格化数隐含 0,无隐含 1。
-
阶码偏置值:单精度偏置 127 而非 128,因此最小规格化阶码真值是 - 126 而非 - 127。
-
浮点数溢出的判断:尾数溢出不代表整体溢出,可通过右规修正;只有阶码溢出才是真正的浮点数溢出。
-
正负零的区别:IEEE 754 中 + 0 和 - 0 数值相等,但符号位不同,底层存储有区别。
408 真题考法预测
-
选择题:给定真值求 IEEE754 编码,或给定编码求真值;考查浮点数加减步骤、舍入规则、溢出判断;考查特殊值的含义。
-
应用题:结合 C 语言程序,分析浮点数运算的精度损失、舍入结果与溢出。
七、数据存储排列与类型转换
核心概念
-
大小端模式:多字节数据在内存中的字节存储顺序。
-
大端模式:最高有效字节(MSB)存低地址,最低有效字节(LSB)存高地址。
-
小端模式:最低有效字节(LSB)存低地址,最高有效字节(MSB)存高地址。
-
-
边界对齐:数据存储地址需为数据长度的整数倍,以空间换时间,减少访存次数。
-
强制类型转换:C 语言中不同整数类型的转换,分为长短转换、有符号 / 无符号转换。
-
符号扩展 / 零扩展:短数据扩展为长数据时的高位填充规则。
原理透析
1. 大小端存储
-
多字节数据占用连续内存单元,字节顺序由处理器架构决定(x86 架构为小端)。
-
判断方法:从低地址读取第一个字节,若为数据的低位字节则是小端,否则是大端。
2. 边界对齐
-
背景:存储器按字节编址,但通常按字长(如 32 位)访存,每次读写一个字。
-
对齐存储:半字地址为 2 的倍数,字地址为 4 的倍数,访问任意数据仅需 1 次访存。
-
不对齐存储:数据可任意存放,但访问跨字边界的数据需 2 次访存,速度更慢。
3. 强制类型转换规则
-
有符号 ↔ 无符号:不改变二进制内容,仅改变数值解释方式,数值可能发生变化。
-
长整数 → 短整数:高位截断,保留低位,数值可能溢出失真。
-
短整数 → 长整数:
-
无符号数:零扩展,高位全部补 0。
-
有符号数(补码):符号扩展,高位全部补符号位,保持真值不变。
-
易混淆点辨析
-
符号扩展与零扩展的适用场景:仅当有符号数短转长时用符号扩展;无符号数短转长用零扩展,与数值正负无关。
-
类型转换的本质:有符号 / 无符号转换是解释方式变化,不修改比特位;长短转换是比特位截断或扩展。
408 真题考法预测
-
选择题:考查大小端字节顺序计算;考查类型转换后的数值变化;判断扩展方式的正确性。
-
应用题:结合内存地址布局,分析数据存储的边界对齐与地址计算。
第三章 存储系统
注:双端口 RAM 已从 408 大纲删除,仅作知识完整性补充,简单了解即可。
一、存储系统概述
核心概念
-
存储器层次化结构
-
Cache - 主存层次:解决 CPU 与主存速度不匹配的问题。
-
主存 - 辅存层次:实现虚拟存储系统,解决主存容量不足的问题。
-
数据交互规则:辅存数据需调入主存后才能被 CPU 访问。
-
-
存储器分类
-
按存储介质分:半导体存储器(主存、Cache)、磁表面存储器(磁盘、磁带)、光存储器。
-
按存取方式分:
-
随机存取存储器(RAM):访问任意单元时间相同,与物理位置无关。
-
顺序存取存储器(SAM):访问时间与单元物理位置相关,如磁带。
-
直接存取存储器(DAM):兼具随机与顺序特性,先选区域再顺序存取,如磁盘。
-
相联存储器(CAM):按内容访问,如快表 TLB。
-
SAM 与 DAM 同属串行访问存储器。
-
-
按信息可更改性分:读写存储器(RAM、磁盘)、只读存储器(ROM)。
-
按信息可保存性分:
-
易失性存储器:断电后数据消失,如主存、Cache。
-
非易失性存储器:断电后数据保留,如磁盘、光盘、ROM。
-
破坏性读出:读后原数据被破坏,需重写,如 DRAM。
-
非破坏性读出:读后原数据保持不变,如 SRAM、磁盘。
-
-
-
存储器性能指标
-
存储容量:存储字数 × 字长,单位常用 bit、Byte、KB、MB、GB。
-
单位成本:每位价格 = 总成本 / 总容量。
-
存储速度:
-
存取时间:从启动操作到完成操作的时间,分读出时间和写入时间。
-
存取周期:连续两次独立访存的最小时间间隔,包含存取时间与恢复时间。
-
主存带宽(数据传输率):每秒主存进出的最大信息量,单位为字 / 秒、B/s 或 b/s。
-
-
原理透析
-
层次化结构的核心逻辑
存储器设计遵循速度、容量、成本的三角权衡:越靠近 CPU 的存储器速度越快、单位成本越高、容量越小;越远离 CPU 的存储器速度越慢、单位成本越低、容量越大。通过局部性原理,将高频访问数据放在高速存储器中,从宏观上获得接近高速存储器的速度,同时拥有大容量存储器的成本优势。 -
存取方式的本质差异
随机存取通过地址直接定位单元,访问时间恒定;串行存取依赖物理位置顺序,访问时间随位置变化;直接存取是折中方案,先粗定位再细查找;相联存储器跳过地址,直接通过内容匹配定位,用于高速查找场景。
易混淆点辨析
-
存取时间与存取周期的区分
存取时间仅指完成单次读写操作的时间;存取周期是两次连续操作的最小间隔,包含存取时间和存储器内部的恢复时间,因此存取周期一定大于存取时间。 -
易失性与破坏性读出的区别
易失性是断电后数据永久丢失,属于电源维度的特性;破坏性读出是读取操作本身会破坏存储的数据,属于访问维度的特性,读后可通过重写恢复数据。二者无必然关联,例如 DRAM 既是易失性存储器,也是破坏性读出存储器。 -
辅存与外存的概念边界
不同教材称呼存在差异:部分教材将内置磁盘称为辅存,U 盘、光盘称为外存;多数教材将磁盘、U 盘、光盘等统称为辅存或外存,核心都是主存之外的大容量非易失存储。
408 真题考法预测
-
选择题:考查存储器分类的判断、层次化结构各层的作用、存取周期与存取时间的概念辨析。
-
概念题:判断某类存储器属于随机 / 顺序 / 直接存取中的哪一种。
二、主存储器的基本组成
核心概念
-
半导体存储基础元件
-
MOS 管:电控开关,达到阈值电压时导通,用于控制读写通路。
-
电容:通过存储电荷表示二进制 0/1,是 DRAM 的核心存储元件。
-
-
存储层级概念
-
存储元:存储 1 位二进制的最小电子元件。
-
存储单元:由多个存储元组成,存放一串二进制代码,对应唯一地址。
-
存储体:由大量存储单元构成,是存储器的核心存储阵列。
-
存储字:单个存储单元中二进制代码的组合。
-
存储字长:单个存储单元中二进制代码的位数,与 MDR 位数相等。
-
-
存储器芯片结构
-
地址线:输入存储单元地址,n 位地址线对应2n2^n2n个存储单元。
-
数据线:传输读写数据,位数等于存储字长。
-
片选线:选中指定存储芯片,分高电平有效和低电平有效。
-
读写控制线:控制读 / 写操作,可合并为一根,也可分为读、写两根。
-
-
多粒度寻址
现代计算机通常按字节编址,每个字节对应一个地址,支持多种寻址粒度:-
按字节寻址:每个单元 1 字节。
-
按半字寻址:每个单元 2 字节。
-
按字寻址:每个单元 4 字节(32 位字长)。
-
按双字寻址:每个单元 8 字节。
-
原理透析
-
存储芯片工作流程
地址信号经译码器转换为字选通信号,选中对应存储单元;读操作时,存储单元的数据输出到数据线;写操作时,数据线上的数据写入选中的存储单元。 -
寻址计算规则
总地址线位数决定了可寻址的总字节数。例如 10 根地址线,总寻址空间为210=10242^{10}=1024210=1024字节:
-
按字节寻址:1024 个单元
-
按字寻址(4B / 字):256 个单元
-
按半字寻址(2B / 半字):512 个单元
-
按双字寻址(8B / 双字):128 个单元
- 芯片容量描述规范
常用描述格式为 “存储字数 × 字长”,如 8K×8 位表示有2132^{13}213个存储单元,每个单元 8 位,总容量为 8KB。
易混淆点辨析
-
地址线位数与存储单元数的关系
n 位地址线对应2n2^n2n个可寻址单元,默认按字节编址时,总容量为2n2^n2n字节。若题目指定按字编址,需根据字长换算。 -
存储字长与数据线宽度
存储字长是单个存储单元的二进制位数,数据线宽度等于存储字长,也等于 MDR 的位数,三者数值一致。
408 真题考法预测
-
选择题:给定地址线数量与编址方式,计算不同寻址粒度下的单元数量;考查存储芯片各引脚的功能。
-
计算题:根据芯片规格计算总存储容量。
三、半导体随机存取存储器(SRAM 与 DRAM)
核心概念
-
SRAM(静态随机存取存储器)
-
存储原理:双稳态触发器存储信息。
-
核心特性:非破坏性读出,无需刷新,速度快,集成度低,功耗大,成本高。
-
典型用途:Cache。
-
-
DRAM(动态随机存取存储器)
-
存储原理:栅极电容存储电荷表示信息。
-
核心特性:破坏性读出,读后需重写;电容漏电需定期刷新;速度慢,集成度高,功耗小,成本低。
-
典型用途:主存。
-
-
DRAM 刷新
-
刷新周期:通常为 2ms,即所有行需在 2ms 内全部刷新一次。
-
刷新单位:以行为单位,每次刷新一行存储单元。
-
刷新方式:集中刷新、分散刷新、异步刷新。
-
-
地址线复用技术
DRAM 将地址拆分为行地址和列地址,分两次发送,可减少芯片地址引脚数量。
原理透析
-
SRAM 与 DRAM 的存储原理差异
SRAM 依靠触发器的两个稳定状态保存数据,只要不断电数据就稳定;DRAM 依靠电容存储电荷,电荷会缓慢泄漏,必须定期补充电荷(刷新)才能维持数据。 -
DRAM 三种刷新方式
-
集中刷新:在 2ms 内集中一段连续时间,刷新所有行。这段时间无法访存,称为访存 “死区”。
-
分散刷新:将每个存取周期拆分为两部分,前半段正常读写,后半段刷新一行。系统存取周期变长,无长死区,但整体访存效率降低。
-
异步刷新:将刷新请求均匀分散在 2ms 内,每隔固定时间刷新一行。每次刷新仅产生极短死时间,是常用的高效刷新方式。
-
-
行列地址拆分的意义
若 n 位地址直接译码需要2n2^n2n根选通线;拆分为 n/2 行地址和 n/2 列地址后,仅需2n/2+2n/22^{n/2}+2^{n/2}2n/2+2n/2根选通线,大幅减少了选通线数量与芯片引脚数。
易混淆点辨析
- SRAM 与 DRAM 全方位对比
特性 SRAM DRAM 存储元件 双稳态触发器 栅极电容 破坏性读出 否 是 是否需要刷新 不需要 需要 运行速度 快 慢 集成度 低 高 发热量 大 小 存储成本 高 低 易失性 易失 易失 地址传送 同时发送行列地址 分两次发送(地址复用) 典型用途 Cache 主存 -
刷新与重写的区别
重写是针对破坏性读出的补救操作,每次读出后立即执行;刷新是针对电容漏电的定期维护操作,按行周期性执行,与是否读出无关。 -
三种刷新方式的死时间
集中刷新有一段较长的连续死时间;分散刷新没有集中死时间,但每个周期都有一半时间用于刷新,有效访存速度下降;异步刷新死时间短且分散,综合性能最优。
408 真题考法预测
-
选择题:考查 SRAM 与 DRAM 的特性对比;考查 DRAM 刷新方式的优缺点。
-
计算题:给定 DRAM 参数,计算异步刷新的间隔时间、集中刷新的死区时间。
四、只读存储器(ROM)
核心概念
-
ROM 共性
非易失性存储器,断电后数据不丢失;多数 ROM 具备随机存取特性。 -
各类 ROM 特点
-
MROM(掩模式 ROM):厂家生产时直接写入信息,不可改写,可靠性高、灵活性差,适合批量定制。
-
PROM(可编程 ROM):用户可一次性写入,写入后不可更改。
-
EPROM(可擦除可编程 ROM):可多次擦写,分为 UVEPROM(紫外线擦除全部内容)和 EEPROM(电擦除,可按字修改)。
-
Flash Memory(闪存):在 EEPROM 基础上发展而来,快速块擦除,读写速度更快;U 盘、SD 卡均为闪存。
-
SSD(固态硬盘):由控制单元 + Flash 存储芯片组成,速度快、功耗低,核心存储介质为闪存。
-
-
系统中的 ROM
主板 BIOS 芯片为 ROM,存放自举装入程序,负责开机引导操作系统启动;ROM 是主存的组成部分之一。
原理透析
-
ROM 技术演进逻辑
从完全不可改写的 MROM,到一次性写入的 PROM,再到可多次擦除的 EPROM,最终发展到高速块擦除的闪存,核心演进方向是提升改写灵活性与速度,同时保持非易失特性。 -
闪存的读写特性
闪存的写入操作需要先擦除原有数据,且按块为单位擦除,因此闪存的写速度通常慢于读速度。每个存储元仅需单个 MOS 管,位密度高于 RAM。 -
SSD 的磨损均衡
闪存块的擦写次数有限,磨损均衡技术将擦写操作均匀分布到所有存储块,避免部分块过度磨损,大幅提升 SSD 整体使用寿命。
易混淆点辨析
-
RAM 与 ROM 的核心区别
RAM 是易失性的,读写灵活速度快;ROM 是非易失性的,写入受限,用于存放固化程序与数据。二者都属于随机存取存储器。 -
EEPROM 与 Flash 的差异
EEPROM 支持按字节 / 字擦除,改写粒度更细但速度慢;Flash 按块擦除,速度更快、集成度更高,适合大容量存储。 -
Flash 与 DRAM 的差异
Flash 非易失、写前需擦除、位密度高、成本低;DRAM 易失、可随机读写、速度快、成本高。
408 真题考法预测
- 选择题:考查各类 ROM 的特点与适用场景;考查闪存的读写特性;考查 BIOS 所在的存储介质。
五、主存储器与 CPU 的连接
核心概念
-
位扩展法:增加存储器的存储字长,多芯片并联,地址线与控制线共用,数据线拼接。
-
字扩展法:增加存储器的存储字数,多芯片串联,数据线与低位地址线共用,高位地址译码产生片选信号。
-
字位同时扩展:同时扩展存储字数与字长,是实际系统中最常用的扩展方式。
-
片选实现方式
-
线选法:直接用高位地址线作为片选信号,电路简单,地址空间不连续。
-
译码片选法:通过译码器对高位地址译码产生片选信号,地址空间连续,电路稍复杂。
-
原理透析
-
位扩展连接逻辑
当单芯片字长小于系统数据总线宽度时,多片芯片的地址线、片选线、读写控制线全部并联,每片芯片的数据线分别接数据总线的不同位,共同组成完整字长。例如 8 片 8K×1 位芯片可组成 8K×8 位的存储器。 -
字扩展连接逻辑
当单芯片容量小于系统总容量时,所有芯片的数据线、低位地址线、读写控制线并联;高位地址经译码器输出,分别连接各芯片的片选端,每次仅选中一片工作。例如 2 片 8K×8 位芯片可组成 16K×8 位的存储器。 -
译码器工作原理
常用 3-8 译码器(74LS138),输入 3 位地址,输出 8 根片选信号,低电平有效;配备多个使能端,只有使能有效时译码器才工作,可用于控制片选的生效时机。
易混淆点辨析
-
位扩展与字扩展的功能区分
位扩展补 “宽度”,解决芯片字长不足的问题;字扩展补 “长度”,解决芯片存储单元数量不足的问题。 -
线选法与译码片选法对比
线选法无需额外电路,一根地址线选一片芯片,但地址存在大量空隙,空间利用率低;译码片选法地址连续,空间利用率高,适合大容量扩展。
408 真题考法预测
-
计算题:给定总容量与单芯片规格,计算所需芯片数量,判断扩展方式。
-
选择题:考查字扩展的地址范围计算;判断译码电路的片选逻辑是否正确。
六、多模块存储器
核心概念
-
多体并行存储器
-
高位交叉编址:高位地址选择存储体,连续地址位于同一个存储体内。
-
低位交叉编址:低位地址选择存储体,连续地址交错分布在不同存储体内。
-
-
单体多字存储器:单个存储体,每个存储单元存放 m 个字,一次并行读出 m 个字。
-
流水线存取:低位交叉编址采用流水线方式并行存取,宏观上提升带宽。
原理透析
-
高位交叉编址
本质是单纯的容量扩展,连续访存始终访问同一个存储体,无法并行。连续读取 n 个存储字的总耗时为nTnTnT,其中 T 为单个存储体的存取周期。 -
低位交叉编址
连续地址分散在不同存储体中,前一个存储体启动读写后,可立即启动下一个存储体,形成流水线。存取周期为 T,总线传输周期为 r,连续读取 n 个存储字的总耗时为T+(n−1)rT+(n-1)rT+(n−1)r。
为保证流水线不间断,存储体数量需满足 m≥T/rm ≥ T/rm≥T/r。 -
单体多字存储器
一次读写操作可同时取出 m 个字,总线宽度与存储字长均为 m 个字。缺点是只能连续读取 m 个字,无法单独读取其中某一个,要求指令与数据在主存中连续存放。
易混淆点辨析
-
高位交叉与低位交叉的核心差异
高位交叉是 “顺序存储,串行访问”,仅扩容不提速;低位交叉是 “交叉存储,流水线访问”,既扩容又提升连续访存带宽。 -
存取周期 T 与传输周期 r 的区别
存取周期 T 是单个存储体完成一次完整读写的总时间;传输周期 r 是总线传送一次数据的时间,T 远大于 r。 -
多体并行与单体多字的区别
多体并行有多个独立存储体,可独立寻址,支持随机访问加速;单体多字只有一个存储体,一次必须读出多个字,灵活性差。
408 真题考法预测
-
计算题:给定存储体数量、存取周期、传输周期,计算低位交叉编址下连续访存的总时间。
-
选择题:考查低位交叉编址的模块数计算;区分两种编址方式的特点。
七、外部存储器
核心概念
-
磁盘存储器
-
结构:由盘片、磁头、驱动器、控制器组成;盘片分为多个记录面,每个记录面划分为磁道,每个磁道划分为扇区,扇区是磁盘读写的最小单位。
-
相关概念:磁头数、柱面数(不同记录面同编号磁道组成柱面)、扇区数。
-
-
磁盘性能指标
-
容量:分非格式化容量与格式化容量,格式化容量更小。
-
记录密度:道密度(径向单位长度磁道数)、位密度(磁道单位长度位数)、面密度(道密度 × 位密度)。
-
平均存取时间:寻道时间 + 旋转延迟时间 + 传输时间。
-
数据传输率:单位时间向主机传送的字节数。
-
-
磁盘阵列(RAID)
将多个物理磁盘组成逻辑盘,通过数据分块并行访问提升性能,通过冗余校验提升可靠性。常见级别:RAID0~RAID5。 -
固态硬盘(SSD)
-
结构:由控制单元与 Flash 存储芯片组成;存储单元分为页(读写单位)和块(擦除单位)。
-
核心技术:磨损均衡,均匀分配擦写操作,延长使用寿命。
-
原理透析
-
磁盘核心性能计算
-
平均存取时间 = 寻道时间(磁头移动到目标磁道)+ 平均旋转延迟(磁头定位到目标扇区,通常为半圈时间)+ 数据传输时间
-
数据传输率:Dr=r×ND_r = r \times NDr=r×N,其中 r 为磁盘转速(转 / 秒),N 为每条磁道的容量(字节)
-
所有磁道的总信息量相等,因此内圈磁道的位密度大于外圈磁道。
-
-
磁盘地址结构
磁盘地址由四部分组成:驱动器号、柱面号、盘面号、扇区号。寻址时先寻道(移动磁头到目标柱面),再选中对应磁头,最后等待扇区旋转到磁头下方。 -
常见 RAID 级别特性
-
RAID0:无冗余校验,并行分块存储,性能最高,可靠性最低。
-
RAID1:镜像存储,数据存两份,可靠性高,容量利用率 50%。
-
RAID2:海明码校验,位交叉存储。
-
RAID3:位交叉奇偶校验,单块校验盘。
-
RAID4:块交叉奇偶校验,单块校验盘。
-
RAID5:无独立校验盘,校验信息分散在各磁盘中。
-
-
SSD 寿命计算原理
磨损均衡下,所有块擦写次数均匀。总写入量除以单块擦写寿命,结合磁盘总容量可估算理论使用寿命。
易混淆点辨析
-
道密度与位密度
道密度沿磁盘半径方向计算,单位为道 / 毫米;位密度沿磁道圆周方向计算,单位为位 / 毫米。所有磁道道密度相同,内圈位密度更高。 -
非格式化容量与格式化容量
非格式化容量是磁记录表面的总磁化单元数;格式化后每个扇区间留有间隙,还有校验、标识信息,因此格式化可用容量更小。 -
磁盘与 SSD 的对比
磁盘是机械部件,存取速度慢、怕震动、容量成本比高;SSD 是电子器件,读写速度快、功耗低、耐震动,擦写次数有限,单位容量成本更高。
408 真题考法预测
-
计算题:给定磁盘转速、磁道容量、寻道时间,计算平均存取时间与数据传输率。
-
选择题:考查记录密度的概念;考查 RAID 各级的核心特点;考查 SSD 磨损均衡的作用。
八、高速缓冲存储器(Cache)
(一)Cache 基本原理
核心概念
-
局部性原理
-
时间局部性:当前正在使用的信息,近期很可能再次被使用,如循环结构。
-
空间局部性:当前正在使用的信息,其邻近的信息近期也可能被使用,如数组、顺序指令。
-
-
Cache 核心作用
基于局部性原理,将 CPU 近期可能访问的数据从主存调入 Cache,缓解 CPU 与主存的速度差。 -
块与行
主存与 Cache 都划分为大小相等的块,主存中称为主存块,Cache 中称为 Cache 行;数据以块为单位在主存与 Cache 间交换。 -
命中率与平均访问时间
-
命中率 H:CPU 访问的信息已在 Cache 中的比率;缺失率M=1−HM=1-HM=1−H。
-
tct_ctc:访问一次 Cache 的时间;tmt_mtm:访问一次主存的时间。
-
原理透析
-
平均访问时间的两种计算模型
-
串行访问(先 Cache 后主存):先访问 Cache,未命中再访问主存
t=H⋅tc+(1−H)⋅(tc+tm)t = H \cdot t_c + (1-H) \cdot (t_c + t_m)t=H⋅tc+(1−H)⋅(tc+tm) -
并行访问(同时访问):同时访问 Cache 与主存,Cache 命中则终止主存访问
t=H⋅tc+(1−H)⋅tmt = H \cdot t_c + (1-H) \cdot t_mt=H⋅tc+(1−H)⋅tm
-
-
主存地址结构
主存地址分为两部分:主存块号 + 块内地址。块大小决定块内地址位数,主存总容量决定块号总位数。例如主存 4MB,块大小 1KB,则块内地址 10 位,块号 12 位。
易混淆点辨析
-
两种平均访问时间的适用场景
串行访问是常规架构,未命中时才启动主存访问,总耗时更长;并行访问是优化架构,主存与 Cache 同时启动,命中时主存访问提前终止,平均耗时更短。 -
Cache 块与操作系统页的区别
二者都是对存储空间的划分,大小通常为 2 的整数次幂;Cache 块是主存 - Cache 层次的传输单位,页是主存 - 辅存虚拟存储层次的传输单位,分属不同存储层次。
408 真题考法预测
-
计算题:给定命中率、Cache 与主存访问时间,计算平均访问时间与性能提升倍数。
-
选择题:判断程序访问行为体现的局部性类型。
(二)Cache 与主存的映射方式
核心概念
-
全相联映射:主存块可以放置到 Cache 的任意一行。
-
直接映射:每个主存块只能放到 Cache 的一个固定位置,映射规则:Cache 行号 = 主存块号 % Cache 总行数。
-
组相联映射:Cache 分为若干组,主存块只能放到指定分组的任意一行,映射规则:组号 = 主存块号 % 分组数。
-
有效位与标记位
-
有效位:标记该行是否存储有效数据。
-
标记位:记录对应主存块的高位编号,用于匹配判断。
-
原理透析
-
全相联映射
地址结构:标记 + 块内地址。访存时需对比所有 Cache 行的标记,电路实现复杂,成本高;优点是块冲突概率最低,Cache 利用率最高。 -
直接映射
地址结构:标记 + Cache 行号 + 块内地址。访存时先根据行号定位唯一 Cache 行,再对比标记。电路实现最简单,成本最低;缺点是块冲突概率最高,Cache 利用率低。 -
组相联映射
地址结构:标记 + 组号 + 块内地址。访存时先根据组号定位分组,再在组内对比所有行的标记。是全相联与直接映射的折中,n 路组相联表示每组有 n 行。
- 当分组数等于 Cache 行数时,退化为直接映射;当分组数为 1 时,退化为全相联映射。
易混淆点辨析
-
三种映射方式的地址字段计算
块内地址位数由块大小决定;组号 / 行号位数由分组数 / 总行数决定;标记位数 = 主存块号总位数 - 组号 / 行号位数。 -
冲突概率与硬件成本的权衡
冲突概率:直接映射 > 组相联 > 全相联
硬件成本与实现复杂度:全相联 > 组相联 > 直接映射
408 真题考法预测
-
计算题:给定主存容量、Cache 容量、块大小、映射方式,计算地址各字段的位数;判断指定主存地址映射到 Cache 的行号 / 组号。
-
选择题:考查三种映射方式的优缺点对比。
(三)Cache 替换算法
核心概念
-
随机算法(RAND):Cache 满时随机选择一块替换,实现简单,未考虑局部性,命中率不稳定。
-
先进先出算法(FIFO):替换最先调入 Cache 的块,实现简单;易出现抖动现象,即刚被替换的块很快又需要调入。
-
近期最少使用算法(LRU):为每行设置计数器,记录未被访问的时长,替换最久未访问的块。基于局部性原理,命中率高。
-
最不经常使用算法(LFU):为每行设置计数器,记录被访问的总次数,替换访问次数最少的块。
-
抖动:Cache 频繁地换入换出,大量时间消耗在块替换上,导致性能急剧下降。
原理透析
-
LRU 计数器规则
-
命中时:命中行计数器清零,计数器值比它小的行加 1,其余不变。
-
未命中且有空闲行:新行计数器置 0,其余非空闲行加 1。
-
未命中且无空闲行:替换计数器值最大的行,新行计数器置 0,其余全行加 1。
-
若 Cache 有2n2^n2n行,则计数器只需 n 位,且 Cache 装满后所有计数器值互不重复。
-
-
各算法性能对比
LRU 最贴合局部性原理,实际命中率最高;FIFO 实现简单但易抖动;RAND 性能随机;LFU 侧重历史访问频率,无法反映近期访问热度,效果弱于 LRU。
易混淆点辨析
-
LRU 与 LFU 的核心区别
LRU 关注 “最近多久没被访问”,是时间维度的最近性;LFU 关注 “总共被访问了多少次”,是累计维度的频率。LRU 更符合程序局部性规律。 -
FIFO 与抖动
FIFO 算法最容易出现抖动,即使增加 Cache 容量,命中率也可能不升反降(Belady 异常);LRU 算法不会出现 Belady 异常。
408 真题考法预测
-
计算题:给定访问序列与 Cache 行数,模拟执行 LRU/FIFO 算法,计算命中率与缺页次数。
-
选择题:考查各替换算法的特点与适用场景。
(四)Cache 写策略
核心概念
-
写命中策略
-
全写法(写直通法):写命中时,同时写入 Cache 和主存。
-
写回法:写命中时,只修改 Cache,仅当该块被换出时才写回主存;需增加脏位标记块是否被修改。
-
-
写不命中策略
-
写分配法:写不命中时,将主存块调入 Cache 再修改,通常搭配写回法。
-
非写分配法:写不命中时,只写入主存,不调入 Cache,通常搭配全写法。
-
-
写缓冲:搭配全写法使用,缓解 CPU 写速度与主存写速度的差异。
-
多级 Cache 策略
各级 Cache 之间常采用全写法 + 非写分配法;Cache 与主存之间常采用写回法 + 写分配法。
原理透析
-
全写法的特性
优点:数据一致性好,实现简单;缺点:写操作都要访问主存,速度慢,增加访存次数。搭配写缓冲后,CPU 写数据先写入写缓冲即可继续执行,由写缓冲慢慢写入主存;但写操作频繁时易出现写缓冲饱和阻塞。 -
写回法的特性
优点:写操作仅访问 Cache,访存次数少,速度快;缺点:存在数据不一致风险,需要脏位辅助,实现更复杂。未被修改的块换出时无需写回主存,节省时间。 -
策略搭配逻辑
写回法的核心是尽量减少主存写入,因此写不命中时调入 Cache(写分配),后续写操作可直接命中 Cache;全写法的核心是始终保持主存数据最新,因此写不命中时直接写主存即可(非写分配),无需额外调入。
易混淆点辨析
-
全写法与写回法的权衡
全写法优先保证数据一致性,写性能较低;写回法优先保证写性能,一致性稍弱。Cache 容量越大、写操作越频繁,写回法的优势越明显。 -
脏位的作用
脏位仅用于写回法,标记 Cache 块是否被修改过;换出时仅脏块需要写回主存,干净块可直接丢弃。
408 真题考法预测
-
选择题:考查两种写命中策略的优缺点;考查写不命中策略与写命中策略的搭配关系;考查脏位的功能。
-
辨析题:判断 “写回法不需要访问主存” 等说法的正误。
第四章 指令系统
一、指令格式与指令分类
核心概念
-
指令与指令系统
-
指令(机器指令):指示计算机执行某种操作的命令,是计算机运行的最小功能单位。
-
指令系统(指令集):一台计算机所有指令的集合,不同架构(如 x86、ARM)指令系统互不兼容。
-
-
指令基本格式
一条指令由操作码字段和地址码字段两部分组成:-
操作码(OP):指明指令执行的操作性质与功能。
-
地址码:指明操作数地址、结果存放地址、下一条指令地址等。
-
-
按地址码数目分类
-
零地址指令:仅含操作码,无显式地址码。
适用场景:①无需操作数的指令,如空操作、停机、关中断;②堆栈计算机中,操作数隐含在栈顶与次栈顶,结果压回栈顶,对应后缀表达式运算。 -
一地址指令:格式为
OP + A₁。
两种含义:①单操作数指令(加 1、减 1、取反、求补等),操作逻辑:OP(A₁) → A₁,完整执行需 3 次访存(取指 + 读操作数 + 写回结果);②隐含目的操作数(如 ACC),操作逻辑:(ACC) OP (A₁) → ACC,完整执行需 2 次访存(取指 + 读操作数)。 -
二地址指令:格式为
OP + 目的地址A₁ + 源地址A₂。
用于算术、逻辑运算,操作逻辑:(A₁) OP (A₂) → A₁,完整执行需 4 次访存(取指 + 读 A₁+ 读 A₂+ 写回 A₁)。 -
三地址指令:格式为
OP + A₁ + A₂ + 结果地址A₃。
操作逻辑:(A₁) OP (A₂) → A₃,完整执行需 4 次访存(取指 + 读 A₁+ 读 A₂+ 写回 A₃)。 -
四地址指令:格式为
OP + A₁ + A₂ + 结果地址A₃ + 下址A₄。
操作逻辑:(A₁) OP (A₂) → A₃,A₄直接指定下一条指令地址,执行后直接修改 PC 值。
-
-
按指令长度分类
-
基础概念:
-
指令字长:单条指令包含的总二进制位数。
-
机器字长:CPU 一次整数运算能处理的二进制位数,与 ALU 位宽直接相关。
-
存储字长:一个主存存储单元的二进制位数,与 MDR 位数一致。
-
-
长度分类:半字长指令、单字长指令、双字长指令(长度为机器字长的对应倍数)。
-
结构类型:
-
定长指令字结构:所有指令长度相等,译码简单,取指效率稳定。
-
变长指令字结构:指令长度不等,空间利用率高但译码复杂,取指时间不固定。
-
-
-
按操作码长度分类
-
定长操作码:所有指令操作码长度固定,n 位操作码最多支持2n2^n2n条指令;译码电路简单,灵活性差。
-
可变长操作码:操作码长度随地址码数量动态变化,灵活性高但译码复杂,典型实现为扩展操作码。
-
-
按操作类型分类
-
数据传送类:完成主存与 CPU 间的数据传送,如 LOAD(主存→寄存器)、STORE(寄存器→主存)。
-
算术逻辑操作类:算术运算(加减乘除、增 1 减 1、浮点运算等)、逻辑运算(与或非、异或、位操作等)。
-
移位操作类:算术移位、逻辑移位、循环移位(带进位 / 不带进位)。
-
程序控制类(转移操作):改变程序执行顺序,如无条件转移 JMP、条件转移(JZ/JO/JC 等)、调用与返回(CALL/RETURN)、陷阱指令。
-
输入输出类:完成 CPU 寄存器与 I/O 端口之间的数据传送。
-
原理透析
-
地址码数量与寻址能力的权衡
指令总长度固定时,地址码数量越多,单个地址码的位数越少,直接寻址范围越小;反之地址码越少,单个地址码位数越多,寻址范围越大。扩展操作码正是通过减少地址码位数来扩充操作码位数,平衡指令种类与寻址能力。 -
不同编址下的指令寻址步长
-
按字编址 + 定长指令字:取指后 PC+1 即可指向下一条指令。
-
按字节编址 + 定长指令字:若单指令占 n 字节,取指后 PC+n 指向下一条指令。
-
变长指令字结构:CPU 取指后根据操作码判断指令总长度,再对应修改 PC 值。
-
-
指令操作类型的底层逻辑
数据传送类仅完成数据位置移动,不修改数据值;算术逻辑类通过 ALU 完成运算;转移类通过修改 PC 值改变执行流;I/O 类完成主机与外设的数据交互。
易混淆点辨析
-
指令字长、机器字长、存储字长的区分
-
机器字长是 CPU 运算能力的指标,决定整数运算的精度;
-
存储字长是主存存储单元的宽度,与 MDR 位数一致;
-
指令字长是单条指令的二进制位数,可取存储字长的整数倍。
三者数值可能相等,也可能不等,需根据系统设定判断。
-
-
零地址指令的两种场景差异
停机、空操作类零地址指令本质是无操作数;堆栈计算机的零地址指令是操作数隐含,并非没有操作数,其操作数来自栈顶与次栈顶。
408 真题考法预测
-
选择题:考查不同地址数指令的访存次数计算;考查指令字长相关概念的辨析;考查各类指令的功能分类。
-
概念题:判断某类指令所属的操作类型,或分析给定指令的执行访存次数。
二、扩展操作码指令格式
核心概念
-
扩展操作码定义
扩展操作码是定长指令字结构下的可变长操作码实现方式:不同地址数的指令使用不同长度的操作码,地址码越少的指令,操作码位数越多。 -
设计原则(前缀编码规则)
-
不允许短操作码是长操作码的前缀,即短操作码不能与长操作码的前几位完全相同。
-
所有指令的操作码不能重复。
-
优化原则:使用频率高的指令分配较短操作码,频率低的分配较长操作码,缩短译码与分析时间。
-
-
典型扩展规律
设单个地址码长度为 n 位,上一层留出 m 种编码状态,下一层可扩展出 m×2nm \times 2^nm×2n 种新编码状态。
原理透析
-
标准扩展示例(16 位指令,单地址码 4 位)
指令字长 16 位,含 3 个 4 位地址字段A1、A2、A3A_1、A_2、A_3A1、A2、A3,基本操作码 4 位:-
三地址指令:留出 1 种编码(如 1111)作为扩展标志,最多支持 15 条三地址指令。
-
二地址指令:利用三地址留出的 1 种扩展标志,第二个地址字段作为扩展操作码,再留出 1 种编码(如 1111 1111),最多支持 15 条二地址指令。
-
一地址指令:利用二地址留出的扩展标志,第三个地址字段作为扩展操作码,再留出 1 种编码,最多支持 15 条一地址指令。
-
零地址指令:利用一地址留出的扩展标志,最多支持 16 条零地址指令。
-
-
灵活扩展计算方法
以 “16 位指令、4 位地址码,15 条三地址、12 条二地址、62 条一地址、32 条零地址” 为例:-
三地址:4 位操作码共 16 种状态,用 15 种,剩余 1 种用于扩展;
-
二地址:1×24=161 \times 2^4=161×24=16种状态,用 12 种,剩余 4 种用于扩展;
-
一地址:4×24=644 \times 2^4=644×24=64种状态,用 62 种,剩余 2 种用于扩展;
-
零地址:2×24=322 \times 2^4=322×24=32种,刚好满足需求。
-
易混淆点辨析
- 定长操作码与扩展操作码的对比
特性 定长操作码 扩展操作码 操作码长度 固定 随地址数变化 译码难度 简单 复杂 指令种类上限 受操作码位数严格限制 相同指令字长下可支持更多指令种类 适用场景 RISC 架构、定长指令系统 CISC 架构、变长操作码系统 - 扩展操作码的前缀禁忌
短码不能是长码的前缀,否则译码时无法区分是短操作码还是长操作码的前几位,会产生歧义。例如若存在操作码1111的三地址指令,就不能用1111开头的编码扩展二地址指令。
408 真题考法预测
-
计算题:给定指令字长、地址码位数,计算不同地址数指令的最大数量;或给定指令数量要求,判断扩展方案是否可行。
-
选择题:考查扩展操作码的设计原则;判断某组操作码编码是否符合前缀规则。
三、寻址方式
(一)指令寻址
核心概念
-
指令寻址定义:确定下一条将要执行指令的存储地址,最终结果始终由程序计数器 PC 给出。
-
两种寻址方式
-
顺序寻址:指令按顺序执行,取指后 PC 自动递增,指向下一条指令,递增值由指令长度与编址方式决定。
-
跳跃寻址:通过转移类指令修改 PC 的值,跳转到指定地址执行下一条指令。
-
原理透析
-
不同场景下的 PC 增量计算
-
定长指令字 + 按字编址:
PC = (PC) + 1,1 表示 1 个指令字长。 -
定长指令字 + 按字节编址:若单指令占 n 字节,则
PC = (PC) + n。 -
变长指令字 + 按字节编址:取指后根据操作码判断指令总字节数 n,再执行
PC = (PC) + n。
-
-
跳跃寻址的本质
跳跃寻址本质是用转移指令的地址码字段覆盖 PC 原值,实现程序分支、循环、子程序调用等功能。跳跃完成后仍回到顺序寻址模式。
易混淆点辨析
指令寻址与数据寻址的核心区别
指令寻址的目标是下一条指令的地址,全程围绕 PC;数据寻址的目标是当前指令操作数的有效地址,围绕地址码字段与寻址特征位展开。408 真题考法预测
- 选择题:考查不同编址与指令长度下 PC 的增量计算;考查指令寻址两种方式的特点。
(二)数据寻址
核心概念
-
数据寻址定义:根据指令的形式地址,计算出操作数的真实有效地址(EA)。典型指令格式为:操作码 + 寻址特征位 + 形式地址 A。
-
各类寻址方式
-
隐含寻址:操作数地址隐含在指令或硬件约定中,不明显给出。
特点:缩短指令字长,需额外硬件支持隐含地址。 -
立即寻址:形式地址 A 就是操作数本身(立即数),通常用补码表示,# 为常用寻址特征。
特点:执行阶段不访存,指令执行速度最快;立即数范围受 A 位数限制。 -
直接寻址:形式地址 A 就是操作数的有效地址,即
EA = A。
特点:执行阶段访存 1 次;寻址范围受 A 位数限制,操作数地址不易修改。 -
间接寻址:形式地址 A 存放的是操作数有效地址所在的存储单元地址,即
EA = (A)。
特点:可扩大寻址范围;一次间址执行阶段访存 2 次,多次间址需更多次访存;便于实现子程序返回。 -
寄存器寻址:形式地址给出寄存器编号,操作数在对应寄存器中,即
EA = R_i。
特点:执行阶段不访存,只访问寄存器,指令字短、速度快;寄存器数量有限。 -
寄存器间接寻址:寄存器中存放操作数的主存地址,即
EA = (R_i)。
特点:执行阶段访存 1 次;速度比普通间接寻址更快。 -
基址寻址:有效地址 = 基址寄存器 (BR) 内容 + 形式地址 A,即
EA = (BR) + A。
特点:基址寄存器面向操作系统,程序执行中基址不变,形式地址作为偏移量;利于多道程序并发,支持程序浮动。 -
变址寻址:有效地址 = 变址寄存器 (IX) 内容 + 形式地址 A,即
EA = (IX) + A。
特点:变址寄存器面向用户,程序执行中变址值可修改,形式地址作为基地址;适合数组处理与循环程序。 -
相对寻址:有效地址 = 程序计数器 (PC) 内容 + 形式地址 A,即
EA = (PC) + A。
特点:A 为相对位移量,可正可负,用补码表示;便于程序段在内存中浮动,广泛用于转移指令。 -
堆栈寻址:操作数存放在堆栈中,隐含使用堆栈指针 (SP) 作为操作数地址,按后进先出 (LIFO) 原则管理。
特点:硬堆栈(寄存器组)不访存,速度快;软堆栈(主存区域)访存 1 次;用于函数调用、表达式求值。
-
原理透析
-
偏移类寻址的核心差异
基址、变址、相对寻址都属于偏移寻址,有效地址均为 “基准地址 + 偏移量”,区别仅在于基准地址的来源:-
基址寻址:基准是基址寄存器(系统设定,用户不可改),A 是偏移量,面向多道程序重定位;
-
变址寻址:基准是形式地址 A(固定数组首址),IX 是偏移量(用户可修改),面向数组循环访问;
-
相对寻址:基准是取出当前指令后的 PC 值(下一条指令地址),A 是相对偏移,面向程序浮动与转移。
-
-
堆栈寻址的操作规则(栈向低地址生长)
-
入栈:先修改 SP(SP 减 1),再将数据写入 SP 指向单元;
-
出栈:先读取 SP 指向单元的数据,再修改 SP(SP 加 1)。
注:栈生长方向由系统决定,也存在向高地址生长的堆栈,操作顺序对应调整。
-
-
复合寻址
实际系统中可组合多种寻址方式,如先基址后变址寻址:EA = (IX) + (BR) + A,兼顾多道程序重定位与数组处理能力。
易混淆点辨析
- 各类寻址方式的访存次数对比
寻址方式 有效地址 执行阶段访存次数 隐含寻址 程序指定 0 立即寻址 A 即是操作数 0 直接寻址 EA = A 1 一次间接寻址 EA = (A) 2 寄存器寻址 EA = Rᵢ 0 寄存器间接寻址 EA = (Rᵢ) 1 基址寻址 EA = (BR) + A 1 变址寻址 EA = (IX) + A 1 相对寻址 EA = (PC) + A 1 软堆栈寻址 隐含 SP 1 -
基址寻址与变址寻址的本质区别
基址寻址中基址寄存器的值固定,形式地址可变,侧重解决程序在内存中的重定位问题;变址寻址中形式地址固定,变址寄存器的值可变,侧重解决数组元素的循环访问问题。二者应用场景与面向对象完全不同。 -
相对寻址的基准值说明
相对寻址的基准是取出当前指令后的 PC 值,即下一条指令的地址,而非当前指令的地址。计算时需注意指令长度对 PC 值的影响。
408 真题考法预测
-
选择题:考查各类寻址方式的有效地址计算、访存次数统计;考查基址 / 变址 / 相对寻址的应用场景与特点。
-
计算题:给定寻址方式与参数,计算操作数的有效地址;分析转移指令的跳转范围。
四、高级语言与机器级代码的对应
核心概念
-
语言层级关系
高级语言 → 编译 → 汇编语言 → 汇编 → 机器语言(二进制代码)。汇编语言与机器语言一一对应。 -
x86 核心寄存器
-
通用数据寄存器:eax、ebx、ecx、edx,可按 8 位、16 位、32 位分段访问。
-
变址寄存器:esi、edi,用于字符串、数组处理。
-
堆栈相关寄存器:ebp(栈帧基址指针)、esp(栈顶指针)。
-
-
常用 x86 汇编指令
-
数据传送:
mov 目的, 源,支持寄存器、立即数、主存间的数据复制。 -
算术运算:add(加)、sub(减)、mul/imul(乘)、div/idiv(除)、neg(取负)、inc(自增)、dec(自减)。
-
逻辑运算:and、or、not、xor、shl(左移)、shr(右移)。
-
程序控制:cmp(比较)、test(测试)、jmp(无条件转移)、条件转移指令(jxxx 系列)、loop 循环指令。
-
堆栈与函数:push(入栈)、pop(出栈)、call(函数调用)、ret(函数返回)。
-
-
两种汇编格式
-
Intel 格式:Windows 系统常用,操作数顺序为
指令 目的, 源,寄存器直接写名称,主存用[],长度用byte/word/dword ptr声明。 -
AT&T 格式:Unix/Linux 系统常用,操作数顺序为
指令 源, 目的,寄存器前加%,立即数前加$,主存用(),指令后缀 b/w/l 表示字节 / 字 / 双字。
-
-
程序状态字(PSW / 标志寄存器)
记录 ALU 运算结果的状态标志,条件转移指令基于标志位判断:-
CF:进位 / 借位标志,最高位有进位 / 借位时置 1。
-
ZF:零标志,运算结果为 0 时置 1。
-
SF:符号标志,运算结果为负时置 1。
-
OF:溢出标志,运算结果溢出时置 1。
-
-
栈帧与函数调用
-
栈帧(Stack Frame):每个函数在调用栈中对应的内存区域,保存局部变量、调用参数、返回地址、上一层栈帧基址等。
-
ebp:指向当前栈帧的底部(基址);esp:指向当前栈帧的顶部。
-
call 指令:①将当前 IP 值(返回地址)压栈;②跳转到被调用函数起始地址。
-
ret 指令:将栈顶的返回地址出栈,恢复到 IP 寄存器。
-
原理透析
-
选择语句的机器级实现
分支结构通过 cmp/test 指令设置标志位,再通过条件转移指令根据标志位决定是否跳转。if-else 结构中,通常先判断条件,不满足则跳转到 else 分支,满足则顺序执行 if 分支。 -
循环语句的机器级实现
循环由四部分组成:循环初始化、循环条件判断、循环体、循环变量更新与条件再判断。可通过条件转移指令实现,也可通过 loop 指令(结合 ecx 计数器)实现。 -
函数调用的完整流程
-
调用者将函数参数依次压入栈(或通过寄存器传递);
-
执行 call 指令,返回地址压栈,跳转到被调用函数入口;
-
被调用函数入口:
push ebp保存上一层栈帧基址,mov ebp, esp设置当前栈帧基址; -
函数内部执行逻辑,通过
ebp+正偏移访问参数,ebp-负偏移访问局部变量; -
函数返回前:
mov esp, ebp恢复栈顶,pop ebp恢复上一层栈帧基址; -
执行 ret 指令,弹出返回地址到 IP,回到调用者继续执行;
-
调用者清理栈中的参数,函数返回值通常通过 eax 寄存器传递。
-
-
主存操作的长度声明
x86 汇编中访问主存时,需明确读写长度:byte ptr(8 位)、word ptr(16 位)、dword ptr(32 位);未声明时默认 32 位。
易混淆点辨析
- Intel 格式与 AT&T 格式的核心差异
对比项 Intel 格式 AT&T 格式 操作数顺序 目的在前,源在后 源在前,目的在后 寄存器表示 直接写名称(eax) 加前缀 %(% eax) 立即数表示 直接写数值 加前缀$($5) 主存表示 中括号 [地址] 小括号 (地址) 长度声明 ptr 前缀在地址前 指令加后缀 b/w/l -
call 指令与 jmp 指令的区别
jmp 仅修改 IP 值实现跳转,不保存返回地址,用于同一段程序内的分支与循环;call 指令跳转前会保存返回地址到栈中,用于函数调用,可通过 ret 返回原位置。 -
esp 与 ebp 的作用区分
esp 始终指向栈顶元素,入栈出栈都会修改 esp;ebp 指向当前栈帧的底部,函数执行过程中 ebp 固定不变,通过 ebp 的偏移量稳定访问参数与局部变量。
408 真题考法预测
-
选择题:结合 C 语言代码与对应汇编代码,分析指令功能、变量存储位置、循环执行次数;考查函数调用时栈帧的结构与变化。
-
分析题:给定汇编代码,判断寻址方式、计算跳转地址、分析函数调用的栈帧布局。
五、CISC 与 RISC
核心概念
-
CISC(复杂指令集计算机)
-
设计思路:一条指令完成一个复杂的基本功能,指令系统庞大复杂。
-
代表架构:x86 架构,多用于台式机、笔记本。
-
设计背景:基于 80-20 规律,即典型程序中 80% 的语句仅使用 20% 的指令,为提升高层编程效率加入大量复杂指令。
-
-
RISC(精简指令集计算机)
-
设计思路:一条指令完成一个基本动作,通过多条指令组合实现复杂功能,指令系统精简。
-
代表架构:ARM 架构,多用于手机、平板等嵌入式设备。
-
设计优势:单条指令电路简单、功耗低,适合流水线与并行执行。
-
原理透析
-
80-20 规律的指导意义
典型程序中大部分时间都在执行简单指令,复杂指令使用频率很低。RISC 舍弃复杂指令,全部用简单指令组合实现,虽然复杂功能需要多条指令,但高频的简单指令执行速度更快,整体性能更优,也更适合编译器优化。 -
控制方式差异
CISC 指令复杂多样,多采用微程序控制(微指令存储在控制存储器中)实现;RISC 指令规整简单,绝大多数采用组合逻辑控制(硬布线),执行速度更快。
易混淆点辨析
CISC 与 RISC 全方位对比
对比项目 CISC RISC 指令系统 复杂、庞大 简单、精简 指令数目 一般大于 200 条 一般小于 100 条 指令字长 不固定 定长 可访存指令 不加限制 仅 Load/Store 指令可访存 指令执行时间 相差较大 绝大多数在一个周期内完成 指令使用频度 相差很大 都比较常用 通用寄存器数量 较少 多 编译优化 难以生成高效目标代码 易通过优化编译生成高效代码 控制方式 绝大多数为微程序控制 绝大多数为组合逻辑控制 指令流水线 可通过一定方式实现 必须实现流水线 408 真题考法预测
- 选择题:考查 CISC 与 RISC 的特性对比,判断某描述属于哪类指令集;考查两种架构的典型代表与应用场景。
-
第五章 中央处理器
一、CPU 的功能和基本结构
核心概念
-
CPU 的核心功能
-
指令控制:完成取指令、分析指令和执行指令的操作,实现程序的顺序控制。
-
操作控制:产生每条指令的操作信号并送往对应部件,控制部件按指令要求动作。
-
时间控制:对各类操作进行时序管控,为每条指令按时间顺序提供控制信号。
-
数据加工:通过算术逻辑单元对数据完成算术运算和逻辑运算。
-
中断处理:处理计算机运行中的异常情况与特殊 I/O 请求。
-
-
CPU 的组成结构
CPU 由运算器和控制器两大部分组成。-
运算器:负责数据加工处理
-
算术逻辑单元(ALU):实现算术与逻辑运算的核心电路。
-
通用寄存器组:如 AX、BX、CX、DX、堆栈指针 SP 等,存放操作数、中间结果与地址信息。
-
暂存寄存器:暂存从主存读取的数据,避免破坏通用寄存器的原有内容。
-
累加寄存器(ACC):通用寄存器的一种,暂存 ALU 运算结果,隐含参与加法等运算。
-
程序状态字寄存器(PSW):保存运算状态标志,如溢出标志 OF、符号标志 SF、零标志 ZF、进位标志 CF。
-
移位器、乘除计数器:辅助完成移位、乘除运算。
-
-
控制器:负责协调控制整机执行指令序列
-
程序计数器(PC):存放下一条指令的主存地址,具备自动加 1 功能。
-
指令寄存器(IR):保存当前正在执行的指令。
-
指令译码器:对指令操作码字段译码,输出对应操作的控制信号。
-
控制单元(CU):结合指令、状态与时序信号,产生全系统的微操作控制信号。
-
时序系统:产生节拍、机器周期等时序信号,由系统时钟分频得到。
-
存储器地址寄存器(MAR):存放待访问主存单元的地址。
-
存储器数据寄存器(MDR):暂存写入主存或从主存读出的数据。
-
-
-
运算器的两类典型结构
-
专用数据通路结构:按数据流动方向直接用线路连接各部件,通过多路选择器或三态门控制通路。
-
CPU 内部单总线结构:所有寄存器的输入输出端都连接到一条公共总线上,通过控制输入输出门完成数据传送。
-
原理透析
-
经典运算器寄存器的四则运算分工
在 ACC、MQ、X 组成的运算器结构中,四则运算的寄存器分工如下:运算类型 ACC 存放内容 MQ 存放内容 X 存放内容 加法 被加数、和 — 加数 减法 被减数、差 — 减数 乘法 乘积高位 乘数、乘积低位 被乘数 除法 被除数、余数 商 除数 -
两类运算器结构的特性对比
-
专用数据通路:数据冲突少、性能高,但结构复杂、硬件成本高,不易扩展。
-
单总线结构:结构简单、易于实现,但同一总线只能传输一路数据,传输冲突多、性能较低,需暂存寄存器配合 ALU 运算。
-
-
寄存器的可见性划分
-
用户不可见寄存器:MAR、MDR、IR、暂存寄存器,仅由 CPU 内部硬件调用,程序员无法直接编程访问。
-
用户可见寄存器:通用寄存器组、PC、PSW,程序员可通过指令直接读写或修改。
-
易混淆点辨析
-
运算器与控制器的功能边界
运算器只负责数据的运算与暂存,不产生控制信号;控制器不参与数据运算,只负责发出控制信号、协调各部件按指令流程工作。数据加工是运算器的核心职能,取指、分析、执行指令的流程控制是控制器的核心职能。 -
MAR/MDR 与通用寄存器的区别
MAR、MDR 是专门服务于主存访问的专用寄存器,仅用于暂存访存地址与数据,用户不可见;通用寄存器功能通用,可存放操作数、地址、中间结果,用户可直接编程使用。
408 真题考法预测
-
选择题:考查 CPU 各部件的核心功能;判断用户可见 / 不可见寄存器;对比两类运算器结构的特点。
-
概念题:结合指令执行场景,判断某寄存器的作用或数据流向。
二、指令执行过程
核心概念
-
时序层级概念
-
指令周期:CPU 从主存取出并执行完一条指令的全部时间,不同指令的指令周期长度可不同。
-
机器周期(CPU 周期):指令周期的细分阶段,通常以一次访存的时间作为一个机器周期。
-
时钟周期(节拍、T 周期):CPU 操作的最基本时间单位,一个机器周期包含若干时钟周期。
层级关系:指令周期 > 机器周期 > 时钟周期。
-
-
指令周期的四个典型阶段
-
取指周期:从主存取出当前指令,同时 PC 自增指向下一条指令。
-
间址周期:若指令采用间接寻址,此阶段从主存取出操作数的有效地址。
-
执行周期:根据指令功能完成运算、访存等核心操作,不同指令的执行周期操作差异很大。
-
中断周期:响应中断请求时,保存程序断点、关中断、加载中断服务程序入口地址。
-
-
三种指令执行方案
-
单指令周期:所有指令使用相同长度的指令周期,串行执行;结构简单但效率低,周期由最慢指令决定。
-
多指令周期:不同指令使用不同长度的指令周期,串行执行;硬件更复杂,但资源利用率更高。
-
流水线方案:多条指令重叠执行,每个时钟周期可启动一条指令,并行度最高。
-
原理透析
-
取指周期的标准数据流
所有指令的取指周期操作完全一致,固定包含 5 个微操作:-
(PC) → MAR,将下一条指令地址送入地址寄存器 -
CU 发读控制信号
1→R,启动主存读操作 -
M(MAR) → MDR,从主存读出指令送入数据寄存器 -
(MDR) → IR,将指令送入指令寄存器 -
(PC)+1 → PC,形成下一条指令的地址
-
-
间址周期的标准数据流
-
Ad(IR) → MAR,将指令的形式地址送入 MAR -
CU 发读信号
1→R -
M(MAR) → MDR,从主存读出有效地址 -
(MDR) → Ad(IR),将有效地址写回指令的地址码字段
-
-
中断周期的核心任务与数据流
中断周期由硬件隐指令完成,核心完成三件事:保存断点、关中断、加载中断入口。标准流程(栈向低地址生长):-
(SP)-1 → SP,(SP) → MAR,栈指针下移,栈顶地址送 MAR -
CU 发写信号
1→W -
(PC) → MDR,将断点 PC 值送入 MDR -
(MDR) → M(MAR),将断点写入主存栈区 -
向量地址 → PC,加载中断服务程序入口地址
-
易混淆点辨析
-
四个阶段的访存目的区分
四个机器周期都包含访存操作,但目的完全不同:取指周期取指令,间址周期取有效地址,执行周期取 / 存操作数,中断周期保存程序断点。 -
指令周期长度的可变性
不是所有指令都包含四个阶段:无间接寻址的指令没有间址周期,无中断时没有中断周期;不同指令的执行周期长度也不同,因此指令周期的长度不固定。
408 真题考法预测
-
选择题:考查三类周期的层级关系;判断某微操作所属的周期阶段;对比三种执行方案的特点。
-
分析题:给定指令类型,写出对应指令周期包含的阶段与核心微操作。
三、数据通路
核心概念
-
数据通路定义
数据在 CPU 各功能部件之间传送的路径,描述了信息的起点、途经部件与终点,由 CU 发出的控制信号控制通路的通断。-
内部总线:CPU 内部连接寄存器与运算部件的总线。
-
系统总线:连接 CPU、主存、I/O 接口等整机部件的总线,分为地址总线、数据总线、控制总线。
-
-
三类基本数据操作
-
寄存器之间的数据传送
-
主存与 CPU 之间的数据传送
-
ALU 执行算术逻辑运算
-
-
两类典型数据通路结构
-
单总线结构:所有寄存器共享一条内部总线,通过寄存器的输入门(in)、输出门(out)控制数据传输。
-
专用通路结构:各部件之间设置独立的数据连线,通过独立控制信号选通对应通路。
-
原理透析
-
单总线结构的三类操作实现
-
寄存器间传送:以 PC→MAR 为例,微操作为
(PC)→Bus→MAR,对应控制信号为PCout、MARin有效。 -
主存读操作:以取指令为例,先通过总线将 PC 地址送 MAR,CU 发读信号,主存数据送入 MDR,再通过总线送入 IR。
-
ALU 运算操作:以加法为例,先将一个操作数送暂存器 Y,再将另一个操作数送上总线,CU 向 ALU 发运算命令,结果送入暂存器 Z,最后写回目标寄存器。
-
-
两类数据通路的特性对比
特性 单总线结构 专用通路结构 硬件复杂度 结构简单,硬件量小 结构复杂,硬件量大 数据冲突 冲突多,同一时刻仅能传输一路数据 基本无冲突,可并行传输多路数据 执行性能 较低,运算需暂存器配合 较高,可直接向 ALU 传输数据 扩展性 易扩展寄存器 扩展难度大 -
暂存寄存器的作用
单总线结构下 ALU 的两个输入端不能同时从总线获取数据,因此需要暂存器先保存其中一个操作数;同时从主存读出的操作数可暂存于此,避免覆盖通用寄存器的原有数据。
易混淆点辨析
-
内部总线与系统总线的区别
内部总线是 CPU 芯片内部的连线,仅连接 CPU 内部寄存器与 ALU;系统总线是主板级的总线,连接 CPU、主存、I/O 等多个独立部件,分为地址、数据、控制三组独立总线。 -
MAR/MDR 的位置归属
MAR 和 MDR 在逻辑上分别属于地址总线、数据总线的接口,物理上通常集成在 CPU 内部,是 CPU 与主存交互的必经桥梁。
408 真题考法预测
-
选择题:考查数据通路的基本操作;判断单总线结构下某操作的控制信号。
-
综合题:给定单总线结构与指令功能,写出完整的微操作序列与对应有效控制信号。
四、控制器
(一)硬布线控制器
核心概念
-
工作原理
微操作控制信号由组合逻辑电路根据当前的指令操作码、机器周期、节拍信号、机器状态条件即时生成,属于纯硬件控制。 -
设计步骤
-
分析取指、间址、执行、中断四个阶段的微操作序列
-
选择 CPU 控制方式(定长 / 不定长机器周期)
-
安排微操作时序
-
电路设计:列出操作时间表、写出微命令最简逻辑表达式、画出逻辑图
-
-
微操作时序安排三原则
-
原则一:微操作的先后顺序不得随意更改。
-
原则二:被控对象不同的微操作,尽量安排在同一个节拍内并行完成。
-
原则三:占用时间较短的微操作,尽量安排在同一个节拍内,允许有先后顺序。
-
-
核心特点
执行速度快,指令越多设计越复杂,扩充指令难度大,适用于 RISC 架构。
原理透析
-
微操作命令的逻辑表达
每个微命令的逻辑式可统一表示为:微命令 = 机器周期 · 节拍 · 指令操作码 · 状态条件。
例如M(MAR)→MDR微命令的逻辑式:
FE·T1 + IND·T1·(ADD+STA+LDA+JMP+BAN) + EX·T1·(ADD+LDA)
表示在取指周期 T1、间址周期 T1(对应指定指令)、执行周期 T1(对应指定指令)时,该微命令有效。 -
定长机器周期的设计逻辑
为简化设计,通常采用定长机器周期,节拍数按访存这类最慢操作的需求设定;耗时更短的微操作,安排在机器周期靠后的节拍执行,空闲节拍不执行操作。
易混淆点辨析
-
相容微操作:可以在同一个节拍内并行执行的微操作,对应不同的被控部件。
-
互斥微操作:不能在同一个节拍内同时执行的微操作,如同一总线的多个输出门信号。
408 真题考法预测
-
选择题:考查硬布线控制器的特点与适用场景;考查微操作时序安排的原则。
-
分析题:给定指令与周期,判断某微命令有效的条件。
(二)微程序控制器
核心概念
-
核心思想
采用 “存储程序” 思想,将每条机器指令对应的微操作序列编写成微程序,预先存入控制器内部的控制存储器(CM)中;执行指令时依次读出微指令,产生对应控制信号。 -
基础术语
-
微命令:控制部件执行某个微操作的命令,是最小控制单位。
-
微操作:微命令对应的具体操作,与微命令一一对应。
-
微指令:包含多个微命令与下一条微指令地址,是微程序的基本单位。
-
微程序:一条机器指令对应一段微程序,由多条微指令组成。
-
控制存储器(CM):存放全部微程序的高速存储器,属于控制器的一部分。
-
控制存储器地址寄存器(CMAR):存放当前待读取微指令的地址。
-
控制存储器数据寄存器(CMDR):存放当前读出的微指令。
-
-
微指令格式分类
-
水平型微指令:一条微指令可定义多个可并行的微命令;微程序短、执行快,但微指令字长、编写复杂。
-
垂直型微指令:一条微指令仅定义一个微命令,通过微操作码指定功能;微指令短、规整,但微程序长、速度慢。
-
混合型微指令:在垂直型基础上增加少量并行操作,兼顾易用性与性能。
-
-
微指令编码方式
-
直接编码(直接控制):操作控制字段每一位对应一个微命令,1 表示有效。优点是简单速度快,缺点是微指令字长过长。
-
字段直接编码:将控制字段分为多个段,每段互斥的微命令经译码后输出;互斥微命令分同一段,相容微命令分不同段,每段需预留一个 “不操作” 状态。可大幅缩短微指令字长。
-
字段间接编码:一个字段的微命令需另一个字段解释,进一步缩短字长,但并行能力下降、速度更慢,常作为辅助手段。
-
-
微地址形成方式
-
断定方式:微指令自带下地址字段,直接指明后继微指令地址。
-
操作码映射:机器指令取入 IR 后,由操作码经硬件生成对应执行微程序的入口地址。
-
增量计数器法:
(CMAR)+1 → CMAR,顺序执行下一条微指令。 -
分支转移:根据判别条件选择转移地址。
-
硬件生成:由硬件生成取指周期、中断周期微程序的首地址。
-
原理透析
-
微程序控制器的工作流程
-
硬件自动加载取指微程序首地址到 CMAR,执行取指微程序,完成取指令操作。
-
取指完成后,根据 IR 中的指令操作码,通过微地址形成部件生成对应执行微程序的入口地址。
-
依次执行执行微程序的各条微指令,完成指令功能。
-
执行结束后,回到取指微程序,开始下一条指令的取指周期。
-
-
字段直接编码的位数计算
每个互斥类的微命令数 + 1(不操作状态),向上取 2 的整数次幂的位数,再将所有段的位数相加。
例:5 个互斥类分别含 7、3、12、5、6 个微命令,对应各需 3、2、4、3、3 位,总控制字段至少 15 位。 -
硬布线与微程序控制器对比
对比项目 微程序控制器 硬布线控制器 工作原理 微命令以微程序形式存在控制存储器中,执行时读出 微命令由组合逻辑电路根据指令、状态、时序即时生成 执行速度 慢 快 规整性 规整,设计难度低 繁琐不规整,设计复杂度高 指令扩充 易修改扩充,只需修改控存内容 困难,需重新设计电路 适用场景 CISC 架构 CPU RISC 架构 CPU
易混淆点辨析
-
机器指令与微指令的关系
一条机器指令对应一段微程序,包含多条微指令;机器指令面向程序员,描述指令功能;微指令面向硬件,描述具体控制信号。 -
控制存储器与主存的区别
控制存储器在 CPU 控制器内部,速度极快,只存放微程序,掉电不丢失;主存在 CPU 外部,存放运行的程序与数据,容量大、速度相对慢。
408 真题考法预测
-
选择题:考查微指令编码方式的位数计算;考查微地址形成方式;对比硬布线与微程序控制器的特性。
-
计算题:给定指令数与微程序长度,计算断定方式下下地址字段的最小位数。
五、指令流水线
核心概念
-
指令流水的基本思想
将一条指令的执行过程拆分为多个阶段,每个阶段由独立硬件完成,多条指令的不同阶段重叠执行,提升指令吞吐率。典型分为取指、分析、执行 3 段,或 IF、ID、EX、M、WB 五段。 -
三种执行方式的时间对比
设每条指令分 k 个阶段,每个阶段耗时 Δt,共 n 条指令:-
顺序执行:总时间
T = n × k × Δt,各部件利用率低。 -
一次重叠执行:总时间
T = kΔt + (n-1)×(k-1)Δt,第 k 条指令取指与第 k-1 条指令分析重叠。 -
二次重叠执行:总时间
T = kΔt + (n-1)×Δt,理想流水线模式,同时有 k 条指令在执行。
-
-
流水线三大性能指标
-
吞吐率(TP):单位时间内流水线完成的任务数,
TP = n / T_k;理想最大吞吐率TP_max = 1/Δt。 -
加速比(S):顺序执行时间与流水线执行时间之比,
S = nkΔt / T_k;理想最大加速比S_max = k。 -
效率(E):流水线设备利用率,等于时空图有效面积与总面积之比;理想最高效率为 1。
-
-
流水线的三类冲突
-
结构相关(资源冲突):多条指令同时争用同一硬件资源导致;解决方法:指令暂停一个周期、资源重复配置(如指令 Cache 与数据 Cache 分离)。
-
数据相关(数据冲突):后续指令需用到前一条指令的运算结果,但结果尚未写回导致;分为三类:
-
RAW(写后读):先写后读依赖,按序发射下仅会出现此类。
-
WAR(读后写):先读后写依赖,乱序执行时可能出现。
-
WAW(写后写):先后写同一寄存器,乱序执行时可能出现。
解决方法:插入暂停周期、数据旁路(转发)技术、编译优化调整指令顺序。
-
-
控制相关(控制冲突):转移指令等修改 PC 值导致流水线断流;解决方法:分支预测、预取双方向指令、提前形成条件码。
-
-
流水线分类
-
按级别:部件功能级、处理机级、处理机间级流水线。
-
按功能数:单功能流水线、多功能流水线。
-
按连接方式:静态流水线(同一时间只能按一种功能连接)、动态流水线(同一时间可按多种功能连接)。
-
按有无反馈:线性流水线(无反馈,每段只经过一次)、非线性流水线(有反馈,部分段可多次经过)。
-
-
三种多发技术
-
超标量技术:配置多个功能部件,每个时钟周期并发发射多条独立指令,靠硬件实现指令级并行。
-
超流水技术:将一个时钟周期再细分为多个子阶段,一个周期内同一功能部件使用多次,靠细分流水提升吞吐。
-
超长指令字(VLIW):由编译程序将多条可并行指令组合成一条超长指令,内置多个操作码字段,驱动多个功能部件并行执行。
-
-
五段式经典流水线
标准五段:IF(取指)、ID(译码 & 取数)、EX(执行)、M(访存)、WB(写回寄存器)。
五类典型指令的流水段占用:-
运算类指令:IF→ID→EX→空→WB,M 段为空。
-
LOAD 指令:IF→ID→EX→M→WB,全段有效,M 段读数据。
-
STORE 指令:IF→ID→EX→M→空,WB 段为空,M 段写数据。
-
条件转移指令:IF→ID→EX→M→空,M 段修改 PC,WB 段为空。
-
无条件转移指令:IF→ID→EX→空→空,EX 段修改 PC,后续段为空。
-
原理透析
-
流水线性能公式推导
理想流水线中,第一条指令需要 k 个时钟周期完成,后续每条指令只需 1 个周期即可完成,因此 n 条指令总周期数为k + n - 1,总时间T_k = (k+n-1)Δt。
当 n 远大于 k 时,吞吐率趋近于每周期 1 条指令,加速比趋近于流水段数 k,效率趋近于 100%。 -
数据旁路技术的原理
前一条指令的运算结果刚在 EX 段产生,还未写回寄存器时,直接通过专用旁路通路送到下一条指令的 ALU 输入端,无需等待写回再读出,可消除大部分 RAW 相关的流水线暂停。
易混淆点辨析
-
三类数据相关的区分
RAW 是最基础的数据依赖,按序发射按序完成的流水线只会出现 RAW;WAR 和 WAW 仅在乱序发射、乱序完成的流水线中才会出现,本质是指令执行顺序被打乱导致的写覆盖或读错误。 -
超标量与超流水线的区别
超标量是 “空间换时间”,通过复制多套功能部件实现并行;超流水线是 “时间换空间”,通过细分时钟周期、重复利用单套部件提升吞吐,二者都能提升指令级并行度,但硬件实现方向不同。
408 真题考法预测
-
选择题:考查流水线性能指标的计算;判断三类流水线冲突;区分多发技术的特点。
-
综合题:给定指令序列与五段流水线,绘制时空图,计算总执行时间,分析数据相关导致的阻塞周期。
六、多处理器与硬件多线程基本概念
核心概念
-
Flynn 计算机系统分类
-
SISD(单指令流单数据流):单处理器,单控制单元,同一时刻执行一条指令、处理一路数据;传统冯・诺依曼结构均属此类。
-
SIMD(单指令流多数据流):单一控制单元,同一指令对多路数据执行相同操作;典型应用:显卡像素渲染、数组并行运算、向量处理机。
-
MIMD(多指令流多数据流):多个处理器同时执行不同指令、处理不同数据;分为两类:
-
共享存储多处理器:多个处理器共享统一主存,如多核 CPU。
-
多计算机系统:每个计算机有独立主存,通过网络互联协作,如分布式计算集群。
-
-
-
向量处理机
属于 SIMD 架构,设置向量寄存器与向量运算指令,一条指令可完成一整组向量数据的运算;适用于大规模浮点运算、科学计算场景,如超级计算机。 -
三种硬件多线程
-
细粒度多线程:每个时钟周期轮流切换线程发射指令,线程切换代价低,可隐藏流水线阻塞;仅实现指令级并行,线程间不并行。
-
粗粒度多线程:连续发射同一线程的指令,仅当流水线发生阻塞时才切换线程;线程切换代价高,需重载流水线。
-
同时多线程(SMT):一个时钟周期内同时发射多个线程的指令,同时实现指令级并行与线程级并行,资源利用率最高。
-
原理透析
硬件多线程的核心价值是隐藏流水线阻塞,提升功能部件利用率。细粒度切换频繁,适合阻塞频繁的场景;粗粒度切换开销大,适合长阻塞场景;同时多线程结合了多核与多线程优势,是现代高性能 CPU 的主流技术。
易混淆点辨析
-
指令级并行:同一线程内多条指令重叠执行,代表技术是流水线、超标量。
-
线程级并行:多个线程同时执行,代表技术是多核 CPU、硬件多线程。
408 真题考法预测
-
选择题:考查 Flynn 分类的判断与典型实例;对比三种硬件多线程的特点与差异。
-
概念题:判断某技术属于指令级并行还是线程级并行。
第六章 总线
一、总线概述
核心概念
-
总线的定义与核心特点
总线是一组能为多个部件分时共享的公共信息传送线路。-
共享:总线上可挂接多个部件,各部件间交换的信息均可通过这组线路分时传递。
-
分时:同一时刻只允许一个部件向总线发送信息,多个部件只能分时发送,但可同时接收。
引入总线的核心价值是解决分散连接方式下 I/O 设备扩展困难的问题,提升系统连接的灵活性。
-
-
总线的四大特性
-
机械特性:总线的物理尺寸、形状、管脚数量、引脚排列顺序。
-
电气特性:信号的传输方向、有效电平范围。
-
功能特性:每根传输线的具体功能,如地址传输、数据传输、控制信号传输。
-
时间特性:总线上信号的时序关系,即各信号的有效时间顺序。
-
-
总线的分类
(1)按数据传输格式划分
-
串行总线:数据逐位通过一条传输线传送。
优点:传输线少、成本低,长距离传输优势明显,芯片内部可节省布线空间;抗干扰能力强,工作频率可大幅提升。
缺点:需要串并转换电路,控制逻辑相对复杂。 -
并行总线:多位数据通过多条传输线同时传送。
优点:逻辑时序简单,电路易实现,同频率下传输速率更高。
缺点:信号线多、布线成本高;高频下信号线间干扰严重,线长一致性要求高,工作频率难以持续提升。
(2)按总线功能 / 所处位置划分
-
片内总线:芯片内部的总线,用于 CPU 内部寄存器之间、寄存器与 ALU 之间的连接。
-
系统总线:计算机系统内各功能部件(CPU、主存、I/O 接口)之间互连的总线,按传输信息分为三类:
-
数据总线:传输数据信息,双向传输,位数与机器字长、存储字长相关。
-
地址总线:传输主存单元或 I/O 端口的地址,单向传输,位数决定主存地址空间大小。
-
控制总线:传输控制命令与反馈信号,包含 CPU 发出的控制信号和外设返回的状态信号。
-
-
通信总线(外部总线):用于计算机系统之间,或计算机与其他系统(如远程设备、测试设备)之间信息传送的总线。
(3)按系统总线的结构划分
-
单总线结构:CPU、主存、所有 I/O 设备均连接在同一组系统总线上。
优点:结构简单、成本低,易于接入新设备。
缺点:总线带宽低、负载重,所有部件争用同一总线,不支持并发传输。 -
双总线结构:包含主存总线(CPU、主存、通道间传输)和 I/O 总线(外设与通道间传输)。
优点:将低速 I/O 设备从单总线分离,实现存储总线与 I/O 总线分流。
缺点:需增加通道等专用硬件。 -
三总线结构:包含主存总线、I/O 总线、DMA 总线三组独立总线。
优点:提升 I/O 设备响应速度与系统吞吐量。
缺点:系统整体工作效率较低。
-
原理透析
-
总线分时共享的工作逻辑
同一组物理线路在不同时间承担不同的传输任务:发送方在获得总线控制权后,将数据、地址或控制信号送上总线;接收方在对应时间采样总线上的信号,完成信息传递。同一时间仅允许一个主设备驱动总线,避免信号冲突。 -
系统总线结构的演进逻辑
单总线是最基础的结构,所有部件共享通路,瓶颈明显;双总线通过通道将低速 I/O 与高速主存访问分离;三总线进一步加入 DMA 总线,让 I/O 可直接与主存交互,进一步释放 CPU 与主存总线的压力。总线结构越复杂,并行性越强,但硬件成本与控制难度越高。
易混淆点辨析
-
数据通路与数据总线的区别
数据通路是数据流经的完整路径,描述数据从起点到终点的全部途经部件;数据总线是承载数据传输的物理媒介,是数据通路的组成部分。 -
片内总线、系统总线、通信总线的边界
片内总线在芯片内部,系统总线在主机内部各部件间,通信总线在系统与系统之间,三者所处的层级和覆盖范围依次扩大。 -
串行总线与并行总线的速度认知
同频率下并行总线传输速度更快,但并行总线受信号干扰限制,工作频率无法持续提升;串行总线可通过大幅提高工作频率,最终实际传输速率超过并行总线,这也是现代总线普遍向串行发展的核心原因。
408 真题考法预测
-
选择题:考查总线的核心特性(分时、共享);判断总线分类的依据与典型实例;对比单 / 双 / 三总线结构的优缺点。
-
概念题:区分地址总线、数据总线、控制总线的功能与传输方向。
二、总线的性能指标
核心概念
-
时序类指标
-
总线时钟周期:即机器的时钟周期,是总线操作的最小时间单位,总线受系统统一时钟控制。
-
总线传输周期(总线周期):完成一次完整总线操作所需的时间,包含申请、寻址、传输、结束四个阶段,通常由若干个总线时钟周期构成。
-
总线时钟频率:机器时钟频率,即时钟周期的倒数,代表每秒包含的时钟周期数。
-
总线工作频率:总线上数据传输操作的频率,为总线周期的倒数,代表每秒完成的数据传输次数。
关系:若总线周期 = N 个时钟周期,则总线工作频率 = 总线时钟频率 / N。
-
-
传输能力类指标
-
总线宽度(总线位宽):总线上同时能传输的数据位数,通常指数据总线的根数,如 32 位总线即 32 根数据线。
-
总线带宽:总线的数据传输率,指单位时间内总线上可传输的数据量,单位常用字节 / 秒(B/s)。
核心公式:注:总线带宽是总线的理论最高传输速率;实际有效传输率需用实际传输数据量除以总耗时。
-
-
其他指标
-
总线复用:同一组信号线在不同时间传输不同信息(如地址线与数据线分时复用),可减少信号线数量,节省空间与成本。
-
信号线数:地址总线、数据总线、控制总线的信号线总数,是总线硬件规模的直观指标。
-
原理透析
-
总线带宽的典型计算场景
例:某同步总线采用地址 / 数据线复用,共 32 根,总线时钟频率 66MHz,每个时钟周期上升沿、下降沿各传一次数据。-
每个时钟周期传 2 次数据 → 总线工作频率 = 2 × 66MHz = 132MHz
-
总线宽度 = 32bit = 4B
-
总线带宽 = 132MHz × 4B = 528MB/s
-
-
突发(猝发)传输的时间计算
突发传输:一次总线事务中,主设备仅发送首地址,从设备即可连续读写多个连续地址单元。
接上例,传输 128 位数据,首地址占 1 个时钟周期,128 位数据需传 4 次,共 2 个时钟周期:-
总时钟周期数 = 1 + 2 = 3
-
总耗时 = 3 × (1/66MHz) ≈ 45ns
-
易混淆点辨析
-
总线时钟频率与总线工作频率
时钟频率是系统时钟的固有频率,是时间的最小刻度;工作频率是总线实际传输数据的频率,受总线周期长度影响。当一个时钟周期完成一次传输时,二者数值相等;当采用双沿传输或多周期传输时,二者不等。 -
理论带宽与实际有效传输率
总线带宽是理想峰值速率,不包含寻址、总线申请、等待等开销;实际传输中,地址传输、总线仲裁、握手等待都占用时间,因此实际有效传输率通常低于理论总线带宽。
408 真题考法预测
-
选择题:考查总线性能指标的定义辨析;给定参数计算总线带宽、突发传输总时间。
-
计算题:结合总线复用、双沿传输等条件,计算总线最大数据传输率。
三、总线仲裁(拓展了解,408 大纲已删除)
核心概念
-
基础概念
-
主设备:获得总线控制权、可主动发起总线传输的设备。
-
从设备:被主设备访问,只能响应主设备命令,不能主动发起传输的设备。
总线仲裁的作用:多个主设备同时申请总线时,按优先级规则选择一个设备获得总线使用权,避免传输冲突。
-
-
集中仲裁方式
由中央总线控制器统一完成仲裁,三类典型方式对比如下:对比项 链式查询方式 计数器定时查询方式 独立请求方式 控制线数 3 根(总线请求、总线允许、总线忙) ⌈log₂n⌉ + 2 根 2n + 1 根 优先级规则 离控制器越近优先级越高,固定不变 可通过设置计数初值灵活调整优先级 优先级可灵活配置 优点 结构简单,扩充容易,优先级固定 对故障不敏感,优先级灵活 响应速度快,优先级控制灵活 缺点 对电路故障敏感,低优先级设备易 “饥饿” 控制线较多,控制逻辑较复杂 控制线数量多,仲裁逻辑最复杂 -
分布仲裁方式
无需中央仲裁器,每个主设备都有独立仲裁器与唯一仲裁号;设备申请总线时将仲裁号发到共享仲裁总线,通过比较仲裁号高低决定使用权,最终优先级高的设备获得总线。
易混淆点辨析
- 总线忙信号的建立者:是获得总线控制权的设备,而非总线控制器。设备获得总线后主动置位总线忙信号,传输结束后撤销。
四、总线操作和定时
核心概念
-
总线传输的四个阶段
-
申请分配阶段:主设备提出总线使用申请,仲裁机构决定将总线使用权授予哪个设备。
-
寻址阶段:获得使用权的主设备发出从设备地址与操作命令,启动对应从设备。
-
传输阶段:主从设备之间进行数据交换,支持单向或双向传输。
-
结束阶段:主设备撤销相关信号,释放总线使用权。
-
-
四种总线定时方式
总线定时是总线双方数据交互的时间配合规则,本质是传输协议。(1)同步定时方式(同步通信)
由统一的时钟信号协调收发双方的传输时序,每个总线周期由固定数目的时钟周期组成。
-
优点:传输速度快、传输速率高,总线控制逻辑简单。
-
缺点:强制同步,无法适配速度差异大的设备;无法有效校验数据有效性,可靠性一般。
-
适用场景:总线长度较短、所接部件存取时间比较接近的系统。
(2)异步定时方式(异步通信)
无统一时钟,无固定时间间隔,完全依靠收发双方的 “握手” 信号实现定时控制。主设备发请求信号,从设备回回答信号。
根据握手信号的撤销互锁关系分为三类:-
不互锁:请求、回答信号各自延时后自动撤销,无互锁;速度最快、可靠性最差。
-
半互锁:主设备的请求需等回答到达后才撤销,回答信号自动撤销;仅主设备侧互锁。
-
全互锁:请求需等回答后撤销,回答需等请求撤销后再撤销;双方完全互锁,最可靠、速度最慢。
-
优点:总线周期长度可变,可适配速度差异很大的设备,自动适配时序,可靠性高。
-
缺点:控制逻辑复杂,传输速度慢于同步通信。
(3)半同步通信
同步与异步结合的方式:以统一时钟为基础,增加 “等待”(WAIT)响应信号。发送方按时钟发信号,接收方可通过 WAIT 信号要求主设备等待,延长总线周期。既保留了同步的简洁性,又能适配不同速度的设备。
(4)分离式通信
将一个总线传输周期拆分为两个子周期:
-
子周期 1:主模块申请并占用总线,发送地址、命令后立即释放总线。
-
子周期 2:从模块准备好数据后,主动申请总线,将数据发送到总线上。
核心特点:各模块均可申请总线;准备数据时不占用总线,总线空闲时间被充分利用,大幅提升总线利用率;采用同步通信,无需握手应答。
-
原理透析
-
同步通信的典型读写时序
以 CPU 读外设为例:T1 上升沿 CPU 发地址;T2 上升沿发读命令;从设备需在 T3 上升沿前将数据放到数据总线;T3 周期 CPU 采样数据;T4 上升沿撤销读命令。若从设备速度不足,无法在 T3 前准备好数据,就会出现传输错误。 -
四种定时方式的演进逻辑
同步最简单但适配性差;异步适配性强但复杂速度慢;半同步折中兼顾;分离式则进一步挖掘总线利用率,适合高并发、多主设备的场景。
易混淆点辨析
-
同步与异步的核心区别
核心区别是是否存在统一的时钟基准。同步所有操作都对齐到时钟沿;异步完全依靠握手信号,没有全局时钟参考。 -
半同步与异步的差异
半同步本质仍是同步框架,只是允许插入等待周期,时钟依然是基准;异步没有时钟,完全由握手信号驱动。
408 真题考法预测
-
选择题:考查总线传输的四个阶段;判断四种定时方式的特点与适用场景;区分异步通信的三种互锁类型。
-
分析题:给定定时方式,描述一次总线读操作的完整时序。
五、总线标准(拓展了解,408 大纲已删除)
核心概念
-
总线标准的定义
总线标准是模块互连的统一规范,规定了总线的机械、电气、功能、时序特性;符合标准的设备可直接互连,无需额外适配,实现通用接口。 -
常见总线标准分类与特点
(1)系统总线标准
-
ISA:早期并行系统总线,8/16 位,8MHz,速率低,已淘汰。
-
EISA:ISA 的 32 位扩展,速率提升但仍有限,被 PCI 取代。
(2)局部总线标准
-
VESA:视频局部总线,32 位,33MHz,针对高速图像传输设计。
-
PCI:32/64 位,33/66MHz,不依附于具体处理器,支持突发传输、即插即用、多主设备,曾广泛应用。
-
AGP:显卡专用局部总线,从 PCI 扩展而来,专为 3D 图形加速设计,带宽高于 PCI。
-
PCI-E(PCI-Express):串行点对点总线,取代 PCI 的第三代 I/O 标准,支持双向全双工、热插拔,带宽远高于并行总线,是当前主流。
(3)设备 / 通信总线标准
-
RS-232C:串行通信接口,速率极低,用于早期串口设备。
-
SCSI:智能通用接口,可连接多类外设,CPU 占用率低,扩展性强。
-
IDE(ATA):并行硬盘光驱接口,已被 SATA 取代。
-
SATA:串行硬盘接口,针脚少、频率高,速率远超并行 IDE。
-
USB:通用串行总线,支持即插即用、热插拔,可通过集线器链式连接最多 127 个外设,应用最广泛。
-
PCMCIA:笔记本便携设备接口,支持即插即用。
-
-
总线发展趋势
串行总线逐步取代并行总线。核心原因:并行总线受线间串扰、线长一致性限制,频率难以提升;串行总线采用差分信号,抗干扰能力强,可通过极高的工作频率实现更高带宽,且布线成本更低。
易混淆点辨析
-
并行总线与串行总线的代际关系:并非并行一定比串行快。早期低频场景下并行更快;随着频率提升,串行的高频优势逐步凸显,现代高速总线普遍采用串行架构。
第七章 输入 / 输出系统
一、I/O 系统概述
核心概念
- I/O 系统的基本组成
I/O 系统由 I/O 硬件和 I/O 软件两部分构成。
-
I/O 硬件:包括外部设备、I/O 接口(I/O 控制器)、I/O 总线等。I/O 接口负责协调主机与外部设备之间的数据传输,常集成在主板南桥芯片中。
-
I/O 软件:包括驱动程序、用户程序、管理程序等,通常采用 I/O 指令和通道指令实现主机与 I/O 设备的信息交换。
- I/O 设备的分类
-
输入设备:向计算机输入命令、文本、数据的部件,如键盘、鼠标。
-
输出设备:将计算机信息输出到外部的部件,如显示器、打印机。
-
外存设备:除内存、CPU 缓存外的存储器,如硬盘、光盘,兼具输入和输出功能。
- 四种 I/O 控制方式
-
程序查询方式:CPU 不断轮询检查 I/O 控制器的状态寄存器,检测到 “已完成” 后再读取数据。CPU 与外设串行工作,CPU 处于 “忙等” 状态。
-
程序中断方式:外设准备数据时 CPU 可执行其他程序,I/O 完成后控制器向 CPU 发中断请求,CPU 响应后处理数据。CPU 与外设可并行工作。
-
DMA 方式(直接内存访问):主存与高速 I/O 设备间有直接数据通路,由 DMA 控制器自动控制数据传输,传输完一整块数据后才向 CPU 发一次中断。
-
通道控制方式:通道是具有特殊功能的处理器,可识别并执行通道指令,对 I/O 设备进行统一管理。CPU 执行 I/O 指令启动通道,通道执行通道程序完成 I/O 管理。
原理透析
I/O 控制方式的演进核心是逐步降低 CPU 在 I/O 过程中的参与度:
-
程序查询方式完全由 CPU 轮询,CPU 利用率最低,只适合低速简单设备。
-
中断方式让 CPU 在设备准备数据时可以并行执行其他任务,解放了 CPU 的等待时间,但每传输一个字就需要中断一次,中断开销较大。
-
DMA 方式将数据传输的控制权交给 DMA 控制器,CPU 仅在数据块传输前后参与,大幅减少中断次数,适合高速块设备。
-
通道方式进一步将 I/O 管理完全交给通道处理器,CPU 只需发启动命令,通道可管理多台设备,适合大型机多 I/O 场景。
易混淆点辨析
- I/O 指令与通道指令的区别
-
I/O 指令是 CPU 执行的指令,用于控制 I/O 接口或通道,属于 CPU 指令集的一部分。
-
通道指令是通道执行的指令,与 CPU 机器指令相互独立,通道程序提前编制并存放在主存中。
- 四种控制方式的 CPU 干预频率
干预频率从高到低:程序查询方式 > 程序中断方式 > DMA 方式 > 通道控制方式。
并行程度从低到高:程序查询方式 < 程序中断方式 < DMA 方式 < 通道控制方式。
408 真题考法预测
-
选择题:考查四种 I/O 控制方式的核心特点与适用场景;判断 I/O 指令与通道指令的执行主体。
-
概念辨析题:对比不同 I/O 控制方式下 CPU 的工作状态与并行性。
二、外部设备
核心概念
- 显示器
显示器是最核心的输出设备,按显示器件可分为 CRT 显示器、LCD 液晶显示器、LED 显示器等。
(1)核心性能参数
-
分辨率:屏幕所能表示的像素个数,以宽 × 高的像素乘积表示,如 1440×900。
-
灰度级:像素点的亮暗差别或颜色种类,n 位灰度级可表示2n2^n2n种亮度 / 颜色。灰度级越多,图像层次越逼真。
-
刷新:光点发光时间极短,需在消失前重新扫描显示的过程。刷新频率需大于 30Hz 人眼才不会感到闪烁,通常为 60~120Hz。
-
刷新存储器(VRAM / 显存):存储一帧图像信息的存储器,用于持续刷新屏幕。
-
VRAM 容量公式:
VRAM容量=分辨率×灰度级位数VRAM容量 = 分辨率 \times 灰度级位数VRAM容量=分辨率×灰度级位数 -
VRAM 带宽公式:
VRAM带宽=分辨率×灰度级位数×帧频VRAM带宽 = 分辨率 \times 灰度级位数 \times 帧频VRAM带宽=分辨率×灰度级位数×帧频
-
(2)常见显示器类型
-
CRT 显示器:由电子枪、偏转线圈、荫罩等组成,可视角度大、色彩还原度高、响应时间短,但体积大、功耗高。字符显示基于点阵原理,字符点阵存入 ROM 字符发生器,VRAM 存储字符的 ASCII 码。
-
LCD 显示器:利用液晶电光效应实现显示,体积小、重量轻、省电、无辐射。
-
LED 显示器:通过半导体发光二极管显示,亮度、功耗、可视角度、刷新速率均优于 LCD。
- 打印机
(1)按印字原理分类
-
击打式打印机:通过机械动作撞击色带和纸打印字符。优点是成本低、印字质量好、可多层复写;缺点是噪声大、速度慢,典型代表为针式打印机。
-
非击打式打印机:通过电、磁、光、喷墨等物理 / 化学方法印刷。优点是速度快、噪声小;缺点是成本高,典型代表为喷墨打印机、激光打印机。
(2)常见打印机特点
-
针式打印机:擅长多层复写打印,适合票据打印,耗材便宜,但分辨率和速度不高。
-
喷墨打印机:噪声小,可高质量彩色打印,但防水性差,高质量打印需专用纸。
-
激光打印机:打印质量高、速度快、噪声小、处理能力强;但耗材贵、不能复写,对纸张要求高,核心部件是感光鼓(硒鼓)。
原理透析
-
VRAM 容量与带宽的计算逻辑
VRAM 需要完整存储一帧的所有像素信息,因此容量由像素总数和每个像素的灰度位数决定。而每秒需要刷新多帧,因此带宽是每帧数据量乘以每秒刷新的帧数,是显存数据传输的最低要求。 -
CRT 字符显示原理
屏幕上每个字符对应一个字符窗口,包含字符点阵和字符间隔。字符的字形点阵固化在 ROM 字符发生器中,VRAM 中只存储字符的 ASCII 码;扫描时通过 ASCII 码查询字符发生器得到点阵,控制电子束的开关,从而在屏幕上显示出字符。
易混淆点辨析
-
分辨率与灰度级的区别
分辨率决定屏幕的像素总数,是空间维度的参数;灰度级决定每个像素能表示的颜色 / 亮度数量,是每个像素的信息深度。二者共同决定一帧图像的数据量。 -
LCD 与 LED 的关系
LCD 和 LED 是不同层级的显示技术:LCD 是液晶显示屏,依靠背光模组发光;LED 是发光二极管直接发光。日常所说的 LED 显示器通常指采用 LED 背光的 LCD 屏幕,二者并非并列对等的概念。
408 真题考法预测
-
选择题:考查显示器核心参数的定义;给定分辨率、灰度级、刷新率,计算 VRAM 容量与带宽。
-
概念题:区分击打式与非击打式打印机的特点与典型代表。
三、I/O 接口与端口编址
核心概念
- I/O 接口的定义与功能
I/O 接口又称 I/O 控制器,是主机与外设之间的连接部件,负责协调数据传输。其核心功能包括:
-
设备选址:识别 CPU 要访问的具体设备。
-
传送命令:接收并执行 CPU 发出的控制命令。
-
传送数据:在主机和外设之间缓冲传输数据。
-
反映设备状态:向 CPU 反馈设备的工作状态。
- I/O 接口的结构
-
内部接口:与系统总线相连,对接 CPU 和主存,数据采用并行传输。
-
外部接口:通过电缆连接外设,可采用串行传输,因此接口需具备串 / 并转换功能。
- I/O 端口
I/O 端口是接口电路中可被 CPU 直接访问的寄存器,分为三类:
-
数据寄存器:缓冲传输的数据。
-
控制寄存器:存放 CPU 发来的控制命令。
-
状态寄存器:存放设备的工作状态。
注:控制寄存器和状态寄存器可分时复用同一物理寄存器。
- I/O 端口的两种编址方式
(1)统一编址(存储器映射方式)
把 I/O 端口当作存储器单元进行地址分配,使用统一的访存指令即可访问 I/O 端口。
-
优点:无需专门的 I/O 指令,所有访存指令均可访问端口,编程灵活;端口编址空间大;读写控制逻辑简单。
-
缺点:端口占用主存地址空间,导致主存可用空间变小;地址位数多,译码速度慢,外设寻址时间长。
(2)独立编址(I/O 映射方式)
I/O 端口地址与存储器地址相互独立,CPU 需要专门的输入 / 输出指令(如 IN、OUT)访问端口。
-
优点:专用 I/O 指令使程序编制清晰;端口地址位数少,译码速度快;不占用主存地址空间。
-
缺点:I/O 指令类型少,编程灵活性差;需要存储器读写、I/O 读写两组控制信号,控制逻辑更复杂。
- I/O 接口的分类
-
按数据传送方式:并行接口(多位同时传送)、串行接口(逐位传送)。
-
按主机访问控制方式:程序查询接口、中断接口、DMA 接口。
-
按功能灵活性:可编程接口、不可编程接口。
原理透析
两种编址方式的本质区别是 I/O 地址空间是否与主存地址空间独立。统一编址将 I/O 纳入主存地址体系,硬件设计简单,可用指令丰富;独立编址则地址空间分离,主存空间不受占用,但需要额外的控制信号和专用指令。
易混淆点辨析
-
I/O 接口与 I/O 端口的区别
I/O 接口是完整的控制器硬件,包含多个寄存器和控制逻辑;I/O 端口是接口中可被 CPU 访问的寄存器,是接口的组成部分。一个接口通常对应多个端口(数据、控制、状态)。 -
统一编址与独立编址的指令使用
统一编址下,所有访存指令都可操作 I/O 端口,没有专用 I/O 指令;独立编址下,必须用专门的 I/O 指令访问端口,普通访存指令无法操作 I/O 地址。
408 真题考法预测
-
选择题:考查两种编址方式的优缺点对比;判断 I/O 接口的核心功能;区分接口与端口的概念。
-
分析题:给定地址线数量,分析统一编址下主存与 I/O 的地址分配。
四、程序查询方式
核心概念
-
工作原理
CPU 启动 I/O 后,停止现行程序,不断查询 I/O 接口的状态寄存器;直到设备准备完成,CPU 才执行数据传送。整个过程 CPU 与外设串行工作,存在 “踏步” 等待现象。 -
两种查询模式
-
独占查询:CPU 全程只查询该设备,100% 时间用于查询和等待,完全串行工作。
-
定时查询:在保证数据不丢失的前提下,每隔固定时间查询一次设备状态,查询间隔内 CPU 可执行其他程序。
- 优缺点
-
优点:接口设计简单,硬件成本低,适合设备量少的场景。
-
缺点:CPU 大量时间消耗在查询等待上,效率极低;独占查询模式下一段时间内只能与一台外设交互。
原理透析
程序查询方式的 CPU 利用率取决于查询频率和单次查询耗时。对于低速设备(如鼠标),每秒查询次数少,CPU 占用率极低;对于高速设备(如硬盘),单位时间内需要大量查询,CPU 甚至无法满足传输要求。
典型计算逻辑:-
每秒查询总时钟周期数 = 单次查询时钟周期数 × 每秒查询次数
-
查询时间占比 = 每秒查询总时钟周期数 / CPU 每秒总时钟周期数
易混淆点辨析
程序查询方式的 “串行” 含义
程序查询方式下,CPU 和外设是串行工作的:外设准备数据时,CPU 不执行其他任务,一直在循环查询;只有数据传送完成后,CPU 才能继续执行原程序。这也是其效率低下的核心原因。408 真题考法预测
-
计算题:给定设备传输率、单次查询时钟周期、CPU 主频,计算 CPU 查询的时间占比。
-
选择题:考查程序查询方式的特点与适用场景。
五、程序中断方式
核心概念
-
中断的基本概念
程序中断是指 CPU 执行现行程序时,出现急需处理的异常或特殊请求,CPU 暂时中止现行程序,转去处理该事件,处理完毕后自动返回原程序断点继续执行。 -
中断处理的三个阶段
(1)中断请求
每个中断源通过中断请求标记触发器(INTR)记录请求状态,所有触发器组成中断请求标记寄存器。外中断的请求由 I/O 设备发起,到达时间随机。
(2)中断响应
CPU 响应中断的三个必要条件:
① 中断源有中断请求;
② CPU 处于开中断状态(允许中断);
③ 一条指令执行完毕,且没有更紧迫的任务。
CPU 在每条指令执行阶段结束前,统一查询中断请求。(3)中断处理
-
中断隐指令:CPU 检测到中断后自动执行的一系列硬件操作,不属于普通指令。完成三个核心任务:
① 关中断:保证保护现场的过程不被新中断打断;
② 保存断点:将程序计数器(PC)的内容保存,以便中断返回后继续执行;
③ 引出中断服务程序:将中断服务程序的入口地址送入 PC。 -
中断服务程序:软件层面的中断处理流程,步骤为:
① 保护现场:保存通用寄存器和状态寄存器的内容;
② 中断服务:执行具体的设备处理逻辑;
③ 恢复现场:将保存的寄存器内容还原;
④ 中断返回:回到原程序断点处。
- 中断判优
多个中断同时请求时,按优先级顺序响应。可通过硬件排队器实现,也可通过软件查询实现。
通用优先级规则:
-
硬件故障中断优先级最高,其次是软件中断;
-
非屏蔽中断优于可屏蔽中断;
-
DMA 请求优于普通 I/O 设备中断;
-
高速设备优于低速设备,输入设备优于输出设备,实时设备优于普通设备。
- 单重中断与多重中断
-
单重中断:执行中断服务程序时,不响应新的中断请求,直到当前中断处理完毕。
-
多重中断(中断嵌套):执行中断服务程序时,可响应优先级更高的新中断请求。
实现多重中断的必要条件:
① 中断服务程序中提前设置开中断指令;
② 高优先级中断源有权中断低优先级中断源。
- 中断屏蔽技术
每个中断源对应一个屏蔽触发器,所有屏蔽触发器组成屏蔽字寄存器,其内容称为屏蔽字。通常用 “1” 表示屏蔽该中断,“0” 表示允许正常申请。
通过修改屏蔽字,可以动态调整中断处理的优先级。屏蔽字中 “1” 越多,对应中断源的处理优先级越高;每个屏蔽字至少有 1 个 “1”,用于屏蔽自身中断。
原理透析
-
中断的完整工作流程
外设准备数据 → 发起中断请求 → CPU 在指令周期末尾查询并响应 → 执行中断隐指令(关中断、存断点、取入口) → 进入中断服务程序,保护现场 → 开中断(多重中断需此步) → 执行中断服务 → 关中断 → 恢复现场 → 开中断 → 中断返回。 -
中断屏蔽调整优先级的原理
硬件排队决定了中断请求的默认优先级,而中断屏蔽字可以在某个中断服务过程中,屏蔽掉指定的中断请求,从而改变实际的中断处理顺序,实现更灵活的优先级控制。
易混淆点辨析
-
中断隐指令与普通指令的区别
中断隐指令不是指令系统中的正式指令,没有操作码,是 CPU 响应中断时自动执行的硬件操作;普通指令是程序员可编写、有明确操作码的软件指令。 -
关中断的时机与作用
中断响应时(中断隐指令阶段)首先关中断,目的是保护断点和现场的过程不被打断;单重中断整个服务过程都保持关中断;多重中断在保护现场完成后重新开中断,允许高优先级中断嵌套。 -
中断判优与中断屏蔽的关系
中断判优是多个中断同时到来时,选择先响应哪一个,是硬件层面的请求优先级;中断屏蔽是在某个中断服务过程中,屏蔽哪些中断请求,可动态调整处理优先级。
408 真题考法预测
-
选择题:考查中断响应的条件;中断隐指令的功能;单重与多重中断的流程差异;根据优先级规则判断中断响应顺序。
-
综合题:给定硬件优先级和目标处理次序,写出各中断源的屏蔽字;绘制中断执行轨迹。
-
计算题:给定中断响应周期、服务程序指令数与 CPI,计算处理一批数据的 CPU 耗时。
六、DMA 方式
核心概念
-
DMA 的基本概念
DMA(直接内存访问)是一种由硬件直接控制主存与外设之间数据传输的方式。DMA 控制器接管总线控制权,数据传输不经过 CPU,仅在传输完一整块数据后,才向 CPU 发一次中断请求。 -
DMA 控制器的功能
① 接收外设的 DMA 请求,并向 CPU 发出总线请求;
② 接收 CPU 的总线响应信号,接管总线控制权,进入 DMA 操作周期;
③ 自动维护主存地址、传送长度计数,自动修改地址和计数值;
④ 发出读写控制信号,执行数据传送操作;
⑤ 传送结束后向 CPU 报告 DMA 操作完成,发起中断请求。 -
DMA 传送过程
-
预处理:CPU 通过程序向 DMA 控制器发送读写命令、主存地址、外设地址、传送长度等参数。
-
数据传送:DMA 控制器接管总线,自动完成整块数据的传输,全程无需 CPU 干预。
-
后处理:传送结束后,DMA 发中断请求,CPU 执行中断服务程序进行校验、收尾等工作。
-
DMA 与主存的冲突处理
当 CPU 和 DMA 同时访问主存时,典型解决方式为停止 CPU 访问主存:DMA 传送期间,CPU 暂停访问主存,直到 DMA 传送完一个数据块后交还总线控制权。 -
DMA 方式的特点
① 主存既可被 CPU 访问,也可被外设访问,脱离了与 CPU 的固定绑定;
② 数据块传送时,地址生成、传送计数均由硬件电路直接实现;
③ 主存中需开辟专用缓冲区,用于及时收发外设数据;
④ 传送速度快,CPU 与外设并行工作,系统效率高;
⑤ 传送开始前需程序预处理,结束后需通过中断进行后处理。
原理透析
DMA 方式的核心价值是将数据传输的控制权从 CPU 转移到硬件控制器,将 CPU 从频繁的中断中解放出来。对于高速块设备(如磁盘),若采用中断方式,每传输一个字就中断一次,CPU 开销极大;而 DMA 方式传输整个数据块只中断一次,大幅提升了系统效率。
易混淆点辨析
DMA 方式与中断方式的核心区别
对比维度 程序中断方式 DMA 方式 数据传送控制 程序控制,需切换程序、保存恢复现场 硬件控制,CPU 仅做预处理和后处理 中断时机 传送一个数据就发一次中断 传送完一整块数据才发一次中断 响应时机 指令执行周期结束后响应 每个机器周期结束、总线空闲时即可响应 适用场景 CPU 控制,适合低速设备 DMA 控制器控制,适合高速设备 优先级 优先级低于 DMA 优先级高于中断 处理能力 能处理异常事件 仅负责数据传送,不处理异常 408 真题考法预测
-
选择题:考查 DMA 方式的特点与适用场景;DMA 传送过程中 CPU 的参与程度;中断与 DMA 的优先级对比。
-
对比分析题:从数据传送、中断次数、响应时机等维度对比中断方式与 DMA 方式。
七、通道方式(拓展了解)
核心概念
通道是具有特殊功能的处理器,拥有独立的通道指令,可执行通道程序,对 I/O 设备进行统一管理。通道程序提前编制好存放在主存中。
工作流程:CPU 执行 I/O 指令向通道发出命令 → 通道执行主存中的通道程序,自主管理多台 I/O 设备 → 全部任务完成后向 CPU 发中断。
通道方式进一步降低了 CPU 的 I/O 管理负担,主要应用于中大型计算机,可连接大量 I/O 设备。 - I/O 系统的基本组成
-
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)