课程
9449 字
约 27 分钟
大二下
计算机组成原理期末终极复习指南
计算机组成原理notes·更新于 2026-09-15
计算机组成原理期末终极复习指南
Note
本文档整理自课程核心知识点、典型计算题以及期末备考重点
目录
第二章:数据的表示与运算
1. 定点数补码加减法及溢出判断
- 计算公式:
- 注: 是将 连同符号位在内全部按位取反,并在末位加 。
- 溢出判断方法(须根据题目要求选择):
- 单符号位法:若参与运算的两个数符号相同,而运算结果的符号与原符号相反,则表示溢出。
- 双符号位法(变形补码):用两位表示符号( 表示正, 表示负)。
- 运算结果的符号位为 或 :无溢出。
- 运算结果的符号位为 :正溢出。
- 运算结果的符号位为 :负溢出。
- 注意点:注意题目要求是“单符号位”还是“双符号位”判断溢出,必须严格按照题目指令作答。
2. 补码除法(加减交替法)
- 核心规则:
- 操作数表示:所有的操作数均写为补码形式。
- 商符处理:商符是在求商的过程中自动形成的,无需作为符号位单独进行特殊处理。
3. IEEE 754 浮点数标准
- 单精度(32位)格式分配:
- 偏置值(Bias):单精度为 (实际指数 )。
- 尾数特点:采用规格化表示,最高位的隐藏位为 ,实际尾数值为 。
- 十进制与 IEEE 754 转换步骤:
- 将十进制数转换为二进制。
- 规格化为 的形式。
- 计算阶码 ,转为 8 位二进制。
- 拼接 ,每 4 位一组写成 16 进制。
4. 浮点数的规格化
- 原码规格化:尾数绝对值在 之间,即尾数最高数值位(小数点后第一位)必须是 (形如 或 )。
- 补码规格化:尾数最高数值位与符号位相反(形如 或 )。
5. 浮点数加减法运算(补码表示)
- 运算基本步骤:
- 对阶:求阶差,原则为**“小阶向大阶看齐”**。小阶的尾数向右移,每右移一位,阶码加 ,直到两数阶码一致(补码右移时高位补符号位)。
- 尾数求和:对阶后的尾数(用补码表示)进行加减运算。
- 规格化:
- 右规:当尾数相加溢出(双符号位出现 或 )时,尾数右移一位,阶码加 。
- 左规:当尾数结果不满足规格化时,尾数连续左移,阶码依次减 ,直到规格化。
- 舍入:对阶或右规过程中尾数右移丢失低位时,采用“0舍1入”法或“恒置1”法。
- 溢出判断:
- 阶码上溢:指数超过最大允许值(阶码双符号位为 ),发生真正溢出,需进行溢出中断处理。
- 阶码下溢:指数低于最小允许值,按“机器零”处理,不作溢出。
- 典型例题背景(阶码和尾数位数限制):
- 条件:假设阶码为 位,尾数为 位(均不包含符号位,计算时要单独加上符号位)。如分数 ,。
三、 存储系统
1. 存储器容量与寻址范围计算(主存编址)
- 基本原理:若机器字长为 位,总容量为 :
- 按字节寻址:寻址范围 字节。
- 按字寻址:寻址范围 。
- 计算实例:假设机器字长为 位,主存容量为 。
- 机器字长:。
- 按字节寻址:寻址范围为 (每个字节占 1 个地址)。
- 按字寻址:寻址范围为 (字)。
2. 存储器与 CPU 的连接设计
- 容量扩展方式:
- 位扩展(字长扩展):适用于芯片字数满足要求但字长位数不足的场景。各芯片的地址线、片选线和读写控制线并联,数据线分别连接到系统数据总线的不同位上。
- 字扩展(字数扩展):适用于芯片字长满足要求但字数不足的场景。各芯片的数据线、读写控制线并联,地址线低位并联,高位部分通过译码器(如 74LS138)产生片选信号(),分别连接到不同芯片。
- 字位同时扩展:先进行位扩展形成一个大组,再通过译码器对各个大组进行字扩展。
- 连接设计注意事项:
- 系统程序区:通常存放在 ROM 中。
- 用户程序区:通常存放在 RAM 中。
- 设计步骤:
- 确定系统程序区和用户程序区的十六进制/二进制地址范围。
- 根据容量和字长选择合适的芯片数量(进行字扩展或位扩展)。
- 利用高位地址线作为译码器的输入,产生片选信号。
- 绘制连接图,注意读写控制信号()、访存控制信号()及数据线、地址线的正确连接。
3. 多体并行存储器与高低位交叉编址
- 低位交叉编址:
- 目的:利用多模块流水线并行存取,提高存储器带宽。
- 地址分配:高位地址表示体内地址(体内单元的偏移量);低位地址表示体号(用于选择存储体)。每传送一个字,只需占用一个存储模块的存取周期,实现流水线式读取。
4. 高速缓冲存储器(Cache)地址映射与计算
- Cache 映射方式与地址划分:
- 直接映射:主存块只能映射到固定的 Cache 块()。
- 全相联映射:主存块可以装入任意 Cache 块。
- 组相联映射:主存块映射到固定的 Cache 组(),可装入该组内的任意块。
- 组相联地址格式计算实例(如四路组相联):
- 条件:主存容量为 字,Cache 容量为 字,块长为 字。
- 步骤:
- 块内地址(字地址):由于块长为 字,块内地址占用 位。
- 组地址(组号):
- Cache 总块数 块。
- 四路组相联(每组 4 块),Cache 总组数 组。
- 组地址位数 位。
- 主存 Tag:
- 主存总容量 字,主存地址共 位。
- 主存 Tag 位数 位。
- 主存地址格式: \hline \text{主存字块标记 (Tag) [9位]} & \text{组号 (Set) [7位]} & \text{字地址 (Offset) [2位]} \\ \hline \end{array}$$
5. DRAM 刷新方式
- 集中刷新:在最大刷新间隔内,集中安排时间进行刷新,存在无法读写的“死时间(死区)”。
- 分散刷新:将刷新安排在每个存取周期内完成,无死时间,但存取周期翻倍,效率低。
- 异步刷新:在两行刷新的最大间隔(如 2ms)内,将刷新操作分散到各个存取周期中,效率最高。
6. 虚拟存储器、TLB、Page与Cache的关系
- 逻辑地址(虚拟地址) 物理地址(主存地址) Cache 地址的转换关系。
- 命中关系规律:
- 若发生缺页(Page Fault,主存中没有该页),则 Cache 必定未命中(Cache Miss)。
- 若 TLB(快表)命中,则页表(慢表)必定命中。
7. 校验码:海明码(Hamming Code)
- 纠错与译码步骤(以偶校验为例):
- 根据校验位位置,写出各纠错指征字(校验方程) 的计算公式。
- 计算各指征字的值。若指征字不全为 ,说明传输过程中出错;指征字组合形成的二进制数值即为出错的位数。
- 对出错位进行纠错(取反),然后去除海明码中的校验位,还原出原本发送的有效信息。
第四章:指令系统
1. 寻址方式与有效地址 计算
- 立即寻址: 不存在,操作数直接包含在指令中。
- 直接寻址:(指令中的地址直接就是主存物理地址)。
- 间接寻址:(指令中的地址存放的是操作数有效地址的地址)。
- 寄存器寻址: 不存在,操作数存放在寄存器 中。
- 寄存器间接寻址:(寄存器中存放的是主存物理地址)。
- 相对寻址:(常用于转移指令。注意:计算时 往往已经完成了“自动加”操作)。
- 基址寻址:。面向系统,多用于多道程序定位,基址寄存器内容由操作系统/硬件维护,程序员无权修改。
- 变址寻址:。面向用户,适用于循环和数组操作,变址寄存器内容由程序员修改。
2. 扩展操作码技术
- 基本思想:在指令字长固定的情况下,通过减少地址码的个数,将其占用的位数释放给操作码,从而增加指令条数。
- 计算实例:
- 已知条件:指令字长为 位,操作数地址码均为 位。设计 种三地址指令, 种二地址指令,没有零地址指令。求一地址指令最多有多少种?
- 推导步骤:
- 三地址指令:
- 拥有 3 个地址码,占 位。
- 操作码(Opcode)剩余 位,最多有 种状态。
- 设计了 种三地址指令,则剩余操作码状态数为: 个。
- 二地址指令:
- 拥有 2 个地址码,占 位。
- 操作码扩展至 位。
- 可扩展出 种状态。
- 设计了 种二地址指令,则剩余状态数为: 个。
- 一地址指令:
- 拥有 1 个地址码(占 4 位)。
- 操作码再扩展 4 位,达到 位。
- 最大数量为:
- 三地址指令:
五、 中央处理器
1. 数据通路微操作流程
- 取指阶段通用流程:
- (程序计数器送入主存地址寄存器)
- (向主存发送读命令)
- (从主存读出指令到数据寄存器)
- (指令送入指令寄存器)
- (程序计数器加 1,指向下一条指令)
- 执行阶段微操作:根据具体机器指令(如 或 ),在控制信号的作用下,完成相应的寄存器级数据传送或 ALU 运算。
2. 微程序控制器设计
- 核心概念辨析:
- 微命令:控制部件向执行部件发出的控制信号(最基本的控制信号)。
- 微操作:微命令的执行过程(最基本的硬件动作)。
- 微指令:若干个微命令的组合,存放在控制存储器中(控制字)。
- 微程序:实现一条机器指令的一系列微指令序列。
- 控制存储器(CM):位于 CPU 内部,采用 ROM 实现,用于存放微程序。
- 微指令后续地址形成方式:主要通过“下地址字段(断定方式)”或“操作码译码(OP CM 地址)”形成。
3. 指令流水线
- 三大性能指标:
- 吞吐率(TP):单位时间内流水线所完成的指令数。 (其中 为指令数, 为执行总时间)
- 加速比(Sp):不采用流水线时的执行时间 与采用流水线时的执行时间 之比。
- 效率(E):流水线各部件占用的时空面积之和与总时空面积之比。
- 流水线冲突(冒险)及解决方法:
- 结构冲突:多个指令在同一时刻争用同一硬件资源。解决方法:增加硬件资源(如指令和数据分离的 Harvard 架构)或使冲突指令推迟执行。
- 数据冲突(写后读 RAW、读后写 WAR、写后写 WAW):
- 最常见的是 RAW(写后读)。
- 解决方法:数据旁路/前推技术(Forwarding)、插入气泡/暂停(Stall)、编译器指令重排。
- 控制冲突:由转移指令引起。解决方法:分支预测、延迟转移。
第六章:总线系统
1. 集中式总线仲裁
- 链式查询方式:仅需 3 根控制线。结构简单,但对电路故障敏感(级联线路中断后,后面的设备均不可用),优先级由物理连接位置决定(离总线控制器近的优先级高)。
- 计数器定时查询方式:线数较多。灵活性高,可以通过改变计数器初始值或计数规则来灵活分配设备优先级。
- 独立请求方式:响应速度最快,每个设备有独立的请求/允许线,控制线数最多(约 根)。
2. 总线通信方式
- 同步通信:由统一的时钟控制,效率高,但要求所有连接设备速度一致。
- 异步通信:通过应答信号(“握手”)完成,允许设备速度不一致。按互锁程度分为:不互锁、半互锁、全互锁。
八、 输入输出系统
1. 程序中断方式
- 中断处理过程:中断请求 中断判优 中断响应 中断服务(关中断 保存断点 保护现场 中断服务 恢复现场 开中断 中断返回)。
- 注意点:CPU 在当前指令周期结束时才会响应该指令周期的中断请求。
- 中断隐指令三大功能:
- 保护断点:将当前的程序计数器 PC 内容压入堆栈保存。
- 关中断:硬件自动关中断,防止在保存现场和断点时被新的中断打扰。
- 送中断入口地址:寻找中断服务程序的向量地址/入口地址,使 CPU 能跳转执行相应程序。
- 多重中断(嵌套中断)与屏蔽字:
- 屏蔽字原则:屏蔽字中“1”代表屏蔽该设备的中断请求,使其无法打断当前设备的运行。“1”越多的设备,其优先级越高。高级别中断可以屏蔽同级和所有比它低级的中断。
- 中断嵌套轨迹图绘制注意点:绘制 CPU 执行轨迹图时,应看清时间轴方向以及各设备优先级的高低关系,按照高优先级能打断低优先级、低优先级不能打断高优先级的规则画出嵌套轨迹。
2. 直接内存访问(DMA)方式
- DMA 与 CPU 共享主存的三种方式:
- 停止 CPU 访问主存:外设传送数据时,由 DMA 控制器向 CPU 发出停止信号,使其让出总线控制权。
- 周期挪用(周期窃取):外设准备好数据后,挪用一个或几个主存周期进行传输。每传送一个字,就要占用一个存储周期,DMA 优先占用总线。
- DMA 与 CPU 交替访问:将 CPU 工作周期分为两个子周期,一个专供 CPU 访问,另一个专供 DMA 访问。
- 工作阶段:预处理(CPU 初始化) 数据传送(完全由 DMA 硬件控制主存与外设,不通过 CPU) 后处理(数据传完,DMA 向 CPU 发中断报告)。
- DMA 与中断方式对比:
对比维度 程序中断方式 DMA 方式 传送控制 靠软件(中断服务程序) 靠硬件(DMA 控制器) 响应时刻 当前指令周期结束时 当前存取周期/总线周期结束时 传输位置 外设 CPU 内存 外设 内存(直接) 优先级 优先级低于 DMA 优先级高于中断
备考答题规范
- 详写步骤:计算题与应用设计题必须写出完整的计算公式、分析步骤和推理过程。切忌只写出最终数值,否则无法获得步骤分。
- 严遵要求:
- 定点数加减运算时,注意题目要求是用“单符号位”还是“双符号位”进行溢出判断。
- 绘制多重中断 CPU 执行轨迹图时,务必仔细对照屏蔽字表与各设备的实际优先级,注意时间轴的演进方向。













