计算机组成原理 期末复习知识点总结
计算机组成原理期末复习,知识点总结,期末试题。链接:地址
前言
本文档按 “基础概念→核心模块→实战应用” 逻辑组织,涵盖计算机组成原理全部核心知识点,标注高频考点、易错点及公式,适用于期末复习、考研基础阶段或知识体系梳理。
一、计算机系统概述(基础铺垫,占比 5%-10%)
1. 计算机系统层次结构
硬件层:核心是冯・诺依曼体系(运算器、控制器、存储器、输入设备、输出设备)
软件层:系统软件(OS、编译器、BIOS)→ 应用软件(办公软件、游戏等)
核心关系:硬件是基础,软件通过硬件实现功能,固件(如 BIOS)是软硬件过渡
2. 关键性能指标
| 指标 | 定义与公式 | 考点提示 |
|---|---|---|
| 响应时间 | 完成单个任务的总时间(CPU 时间 + I/O 时间 + 等待时间) | 与吞吐量成反比 |
| 吞吐量 | 单位时间完成的任务数(理想值 = 1 / 响应时间) | 性能优化的核心目标之一 |
| CPU 时钟周期 | 时钟信号的周期(T=1 / 时钟频率) | 如 2GHz 时钟→T=0.5ns |
| CPI | 平均每条指令的时钟周期数(总时钟周期 / 总指令数) | 性能对比的核心指标 |
| MIPS | 百万条指令 / 秒(时钟频率 /(CPI×10⁶)) | 仅适用于整数运算 |
| MFLOPS | 百万浮点运算 / 秒 | 科学计算类程序性能指标 |
3. 冯・诺依曼体系 vs 哈佛体系
| 对比维度 | 冯・诺依曼体系 | 哈佛体系 |
|---|---|---|
| 存储结构 | 指令与数据同存一个存储器 | 指令存储器与数据存储器分离 |
| 总线 | 单总线(共享传输) | 双总线(并行传输) |
| 核心特点 | 存储程序 + 程序控制,结构简单 | 指令执行速度快,结构复杂 |
| 适用场景 | 通用计算机(x86、ARM) | 专用计算机(DSP、单片机) |
二、数据表示与运算(核心计算模块,占比 15%-20%)
1. 数制与编码
(1)数制转换
二进制↔十进制:
二进制转十进制:按权展开(例:1011.01B = 1×2³+0×2²+1×2¹+1×2⁰+0×2⁻¹+1×2⁻²=11.25D)
十进制转二进制:整数 “除 2 取余逆序”,小数 “乘 2 取整顺序”
二进制↔十六进制:4 位二进制 = 1 位十六进制(例:1101011B=6BH,1A3H=110100011B)
BCD 码(8421 码):
- 0-9 对应 0000-1001,加法修正规则:结果 > 9 或有进位时加 6(例:5+8=13→0101+1000=1101→加 6 修正为 10011)
(2)定点数表示
定点整数:小数点固定在最低位后(如 1101B=13D)
定点小数:小数点固定在符号位后(如 0.1011B=0.6875D)
符号位:0 表示正数,1 表示负数(原码、反码、补码的符号位不变)
(3)补码运算(必考)
补码定义:
正数:[X] 补 =[X] 原 =[X] 反
负数:[X] 反 = 符号位不变 + 数值位取反;[X] 补 =[X] 反 + 1
核心公式:
[X+Y] 补 =[X] 补 +[Y] 补
[X-Y] 补 =[X] 补 +[-Y] 补([-Y] 补 = 对 [Y] 补按位取反 + 1)
溢出判断:
符号位法:两正相加得负、两负相加得正→溢出
双符号位法(变形补码):01→正溢,10→负溢,00/11→无溢出(例:X=+0.110,Y=+0.101→[X] 补 = 00.110,[Y] 补 = 00.101→和为 01.011→正溢)
(4)浮点数运算(IEEE 754 标准)
格式(单精度 32 位):符号位 S (1 位)+ 阶码 E (8 位)+ 尾数 M (23 位)
阶码 E:移码表示,偏移量 = 127(E = 真值 + 127)
尾数 M:隐含整数部分 1(例:M=0110→实际尾数 = 1.0110)
运算步骤(必考):
对阶:小阶向大阶看齐(阶码差 =ΔE,尾数右移 ΔE 位,保持数值不变)
尾数加减:按定点小数运算规则计算
规格化:使尾数最高位为 1(左规:尾数左移,阶码减 1;右规:尾数右移,阶码加 1)
舍入:0 舍 1 入法
溢出判断:阶码溢出为真溢出,尾数溢出可通过规格化修正
2. 算术逻辑单元(ALU)
核心功能:执行算术运算(加减乘除)和逻辑运算(与、或、非、异或、比较)
组成:加法器(核心)、移位器、寄存器、控制逻辑
乘法实现:累加移位法(逐位相乘 + 累加结果)
除法实现:恢复余数法 / 不恢复余数法
三、指令系统(体系核心,占比 15%-20%)
1. 指令格式设计
基本结构:操作码(OP)+ 地址码(A)
地址码格式分类:
| 格式 | 结构 | 适用场景 | 优缺点 |
|--------------|---------------------|---------------------------|---------------------------------|
| 零地址指令 | OP | 栈操作(NOP、HALT) | 简洁,依赖栈 / 累加器 |
| 一地址指令 | OP+A1 | 单操作数(INC、DEC) | 节省地址码,需隐含操作数 |
| 二地址指令 | OP+A1+A2 | 双操作数(ADD、SUB) | 最常用,平衡简洁与功能 |
| 三地址指令 | OP+A1+A2+A3 | 复杂运算(结果存 A3) | 功能强,地址码占用空间大 |
操作码设计:
固定长度:译码快,浪费空间(如 8 位操作码支持 256 条指令)
可变长度:高频指令短码、低频指令长码,节省空间(需避免二义性)
2. 寻址方式(高频考点)
| 寻址方式 | 有效地址(EA)计算 | 核心特点 | 适用场景 |
|---|---|---|---|
| 立即寻址 | EA = 指令中的地址码(操作数) | 速度最快,无需访存 | 小常数操作(如 MOV AX, 10) |
| 直接寻址 | EA=A | 简单,一次访存 | 固定地址访问(如访问全局变量) |
| 间接寻址 | EA=(A) | 寻址范围大,两次访存 | 大地址空间访问 |
| 寄存器寻址 | EA = 寄存器号 | 速度最快,无需访存 | 临时数据存储(如寄存器运算) |
| 寄存器间接寻址 | EA=(寄存器号) | 结合寄存器与间接寻址优点 | 数组访问、指针操作 |
| 基址寻址 | EA = 基址寄存器 + A(位移量) | 支持程序重定位 | 多任务系统(基址固定,位移量可变) |
| 变址寻址 | EA = 变址寄存器 + A(基地址) | 支持数组遍历 | 循环访问数组(变址器自增) |
| 相对寻址 | EA=PC+A(位移量) | 程序可重定位 | 分支指令(如 JMP SHORT LABEL) |
3. RISC 与 CISC 对比(核心考点)
| 对比维度 | RISC(精简指令集) | CISC(复杂指令集) |
|---|---|---|
| 指令数量 | 少(100 条内),格式统一 | 多(数百条),格式复杂 |
| 指令周期 | 单周期为主(CPI≈1) | 多周期为主(CPI≈10-20) |
| 寄存器数量 | 多(32 个以上),寄存器窗口技术 | 少(8-16 个),依赖存储器操作 |
| 访存指令 | 仅 Load/Store 指令访存 | 多种指令支持访存 |
| 编译器要求 | 高(需优化指令调度、寄存器分配) | 低(指令功能强,无需复杂优化) |
| 代表架构 | ARM、RISC-V、MIPS | x86、Intel Pentium |
| 适用场景 | 移动设备、服务器、嵌入式系统 | 桌面计算机、工作站 |
四、中央处理器(CPU)(核心模块,占比 20%-25%)
1. CPU 组成与工作原理
(1)核心组件
运算器(ALU):执行算术 / 逻辑运算,含累加器、暂存器、状态寄存器(PSW)
控制器:
核心流程:取指(PC)→ 译码(ID)→ 执行(ALU)→ 访存(MEM)→ 写回(WB)
组成:程序计数器(PC,存下条指令地址)、指令寄存器(IR,存当前指令)、指令译码器(ID)、时序产生器、微操作信号发生器
寄存器组:
通用寄存器:EAX、EBX、ECX、EDX(存放操作数 / 中间结果)
专用寄存器:PC、IR、PSW(存进位 / 溢出 / 零标志)、SP(栈指针)、BP(基址指针)
(2)指令执行过程(综合题考点)
取指周期:PC→地址总线→存储器→指令→IR,PC 自动 + 1
译码周期:IR 中操作码→ID→译码为微操作信号
执行周期:微操作信号→控制 ALU / 寄存器组执行运算
访存周期(按需):若需访问存储器,通过地址总线 / 数据总线传输数据
写回周期:运算结果→寄存器或存储器
2. 指令流水线(计算题必考)
(1)流水线基本概念
定义:将指令执行拆分为多个子阶段(IF 取指、ID 译码、EX 执行、MEM 访存、WB 写回),不同指令并行执行
核心优势:提高 CPU 吞吐量(单位时间完成更多指令)
(2)性能指标计算
流水线周期(T):最长子阶段的时间(瓶颈阶段)
吞吐率(TP):
理想 TP=1/T(单位时间完成指令数)
n 条指令 TP=n/[(k+n-1)×T](k 为流水线级数)
加速比(S):
S = 串行执行时间 / 流水线执行时间
串行时间 = n×k×T,流水线时间 =(k+n-1)×T
n→∞时,S→k(理想加速比 = 流水线级数)
效率(E):
- E = 加速比 / 流水线级数 = S/k(理想 E=100%)
(3)流水线冒险与解决方法
| 冒险类型 | 产生原因 | 解决方法 |
|---|---|---|
| 结构冒险 | 多个指令竞争同一硬件资源(如同时访存) | 资源重复配置(分离 I/D Cache)、暂停流水线 |
| 数据冒险 | 后指令依赖前指令的结果(RAW/WAR/WAW) | 数据转发(旁路)、插入气泡(NOP)、编译器重排指令 |
| 控制冒险 | 分支指令导致 PC 突变(流水线清空) | 分支预测(静态 / 动态)、延迟分支、BTB(分支目标缓冲) |
3. 多核处理器(新增考点)
核心概念:单芯片集成多个独立 CPU 核心,共享 L3 Cache 和系统总线,私有 L1/L2 Cache
关键技术:
缓存一致性协议(MESI):解决多核共享数据的缓存同步(Modified/Exclusive/Shared/Invalid)
任务调度:OS 将任务分配到不同核心,实现并行执行(需负载均衡)
五、存储器层次结构(核心模块,占比 20%-25%)
1. 存储系统层次原理
层次结构:Cache(高速缓存)→ 主存(RAM)→ 辅存(硬盘 / SSD)
设计依据:局部性原理(时间局部性:近期访问的数据再次访问概率高;空间局部性:访问某地址时,周边地址访问概率高)
核心目标:以辅存的成本、Cache 的速度提供存储服务(等效访问速度≈Cache 速度,等效容量≈辅存容量)
2. Cache(高速缓冲存储器)
(1)核心功能
- 缓存主存中高频访问的数据,减少 CPU 访存时间(CPU 访问 Cache 速度是主存的 10-100 倍)
(2)映射方式(必考)
| 映射方式 | 实现逻辑 | 命中率 | 复杂度 | 真题频次 |
|---|---|---|---|---|
| 直接映射 | 主存块 i→Cache 块 i mod 2^c(c 为 Cache 块数对数) | 较低 | 最低 | 高频 |
| 全相联映射 | 主存块可映射到任意 Cache 块,需比较所有标记 | 最高 | 最高 | 中频 |
| 组相联映射 | 主存块 i→Cache 组 i mod 2^g,组内全相联 | 中等 | 中等 | 最高 |
(3)替换算法
LRU(最近最少使用):替换最近最少访问的块(命中率最高,需栈 / 计数器实现)
FIFO(先进先出):替换最早进入 Cache 的块(简单,可能替换常用块)
随机替换:随机选择替换块(简单,命中率最低)
(4)写策略
写直达(Write Through):写 Cache 时同时写主存(一致性好,速度慢)
写回(Write Back):仅写 Cache,替换时写主存(速度快,需脏位标记)
写分配:写失效时,将主存块调入 Cache 再写(配合写回)
非写分配:写失效时,直接写主存,不调入 Cache(配合写直达)
(5)命中率与平均访问时间(计算题)
命中率 h = 命中次数 / 总访问次数
平均访问时间 ta=h×tc + (1-h)×tm(tc:Cache 访问时间,tm:主存访问时间)
例:h=90%,tc=1ns,tm=100ns→ta=0.9×1 + 0.1×100=10.9ns
3. 主存储器
(1)分类与特性
| 类型 | 存储原理 | 速度 | 容量 | 成本 | 适用场景 |
|---|---|---|---|---|---|
| SRAM(静态 RAM) | 触发器存储数据 | 快 | 小 | 高 | Cache、寄存器 |
| DRAM(动态 RAM) | 电容存储数据(需定期刷新) | 中 | 大 | 中 | 主存(内存) |
| ROM(只读 ROM) | 熔丝 / 浮栅存储数据(断电不丢) | 中 | 中 | 中 | BIOS、固件程序 |
| Flash ROM(闪存) | 电擦除可编程(断电不丢) | 中 | 大 | 低 | SSD、U 盘、手机存储 |
(2)DRAM 刷新
原因:电容漏电导致数据丢失,需每 2-8ms 刷新一次
刷新方式:
集中刷新:一段时间内集中刷新所有行(CPU 访存阻塞)
分散刷新:每个时钟周期刷新一行(不阻塞,总线利用率低)
异步刷新:每行按固定间隔刷新(平衡阻塞与利用率)
4. 虚拟存储器(综合题高频)
(1)核心思想
- 操作系统与 MMU(内存管理单元)协同,将主存与辅存结合,为用户提供比主存大的虚拟地址空间
(2)地址转换
虚拟地址(VA)→ MMU(查页表 / TLB)→ 物理地址(PA)
分页存储:虚拟地址 = 虚拟页号(VPN)+ 页内偏移量;物理地址 = 物理页框号(PFN)+ 页内偏移量
(3)快表(TLB)
页表的 Cache,存储近期访问的页表项(VPN→PFN 映射)
地址转换流程:先查 TLB→命中则直接获取 PFN;未命中则查页表(可能访问主存),并更新 TLB
(4)页面置换算法
| 算法 | 核心逻辑 | 特点 | 真题频次 |
|---|---|---|---|
| OPT(最优) | 替换未来最久不使用的页 | 理论最优,无法实现 | 中频 |
| FIFO | 替换最早进入主存的页 | 简单,可能出现 Belady 异常 | 高频 |
| LRU | 替换最近最少使用的页 | 实际最优,需硬件支持 | 最高 |
| Clock(NRU) | 近似 LRU,通过访问位判断 | 效率高,实现简单 | 高频 |
六、总线与 I/O 系统(占比 15%-20%)
1. 总线系统
(1)总线定义与分类
定义:CPU、主存、I/O 设备之间的公共传输线路,传输数据、地址、控制信号
分类(按功能):
| 总线类型 | 传输内容 | 特性 | 关键指标 |
|--------------|-----------------------------------|-------------------------------|---------------------------|
| 地址总线(AB) | 内存 / I/O 端口地址 | 单向传输(CPU→外设) | 位数决定寻址范围(32 位→4GB)|
| 数据总线(DB) | CPU 与外设之间的数据 | 双向传输 | 位数决定单次传输量(64 位→8 字节)|
| 控制总线(CB) | 控制信号(读 / 写、中断请求等) | 双向传输 | 信号类型决定控制能力 |
(2)总线性能指标
总线带宽:单位时间传输的数据量(带宽 = 总线宽度 × 总线频率 / 8,单位 MB/s)
例:64 位总线,1333MHz→带宽 = 64×1333/8=10664MB/s≈10.4GB/s
总线频率:总线工作时钟频率(如 800MHz、1600MHz)
总线周期:完成一次总线传输的时间(=1 / 总线频率)
(3)总线仲裁与定时
总线仲裁:解决多个设备竞争总线的问题
集中式仲裁:由仲裁器分配总线(如 PCI 总线),支持固定优先级 / 轮换优先级
分布式仲裁:设备自行竞争总线(如 CSMA/CD),去中心化
总线定时:
同步定时:统一时钟控制,传输速度快,灵活性差(如 DDR 内存总线)
异步定时:握手信号(REQ/ACK)控制,灵活性高,支持不同速度设备(如 USB 总线)
2. I/O 系统
(1)I/O 接口(控制器)
功能:协调 CPU 与 I/O 设备(信号转换、数据缓冲、命令译码、状态反馈)
核心寄存器:
数据寄存器(DR):暂存传输数据
命令寄存器(CR):存储 CPU 命令(如读 / 写)
状态寄存器(SR):反映设备状态(忙 / 就绪 / 出错)
地址编址:
统一编址:I/O 寄存器与主存统一地址(用访存指令访问)
独立编址:I/O 寄存器独立地址(用 IN/OUT 指令访问)
(2)I/O 传输方式(必考)
| 传输方式 | 核心逻辑 | CPU 占用率 | 适用设备 | 真题频次 |
|---|---|---|---|---|
| 程序查询 | CPU 循环查询设备状态,就绪则传输 | 100% | 低速设备(键盘、打印机) | 高频 |
| 中断驱动 | 设备就绪发中断,CPU 响应并处理 | 低 | 中高速设备(磁盘、网卡) | 最高 |
| DMA(直接存储器访问) | DMA 控制器直接控总线,CPU 不参与传输 | 最低 | 高速设备(显卡、SSD) | 高频 |
(3)中断系统
- 中断处理流程(综合题考点):
中断请求:设备发中断信号(如键盘按键)
中断响应:CPU 关中断、保护断点(PC 值入栈)
中断服务:保护现场→执行中断处理程序→恢复现场
中断返回:开中断、恢复断点→返回主程序
- 中断向量表:存储中断服务程序入口地址,中断号对应表项索引(如中断号 0x08 对应时钟中断)
七、核心考点与复习策略
1. 题型重点分布
选择题:概念辨析(RISC/CISC、寻址方式、总线类型)、简单计算(CPI、总线带宽)
计算题:数制转换、补码运算、浮点数运算、流水线性能、Cache 平均访问时间
综合题:指令执行流程、流水线冒险分析、Cache 映射 + 虚拟内存地址转换、中断处理流程
2. 易错点警示
补码运算中,负数的补码计算需注意 “反码 + 1”,符号位不变
流水线加速比的理想值是级数,但实际受冒险影响,需考虑阻塞时间
Cache 组相联映射的 “组号计算” 是主存块号 mod Cache 组数,而非总块数
虚拟内存的 TLB 是页表的 Cache,未命中时需访问页表(可能多次访存)
DMA 传输时,CPU 不参与数据传输,但需初始化 DMA 控制器
3. 复习建议
公式牢记:补码运算公式、流水线性能公式、Cache 平均访问时间公式、总线带宽公式
对比记忆:RISC/CISC、同步 / 异步总线、各种寻址方式 / 映射方式的区别
真题训练:重点练习综合题(指令执行 + 流水线、Cache + 虚拟内存),掌握解题逻辑
知识关联:将 CPU、存储器、总线、I/O 系统串联,理解数据传输的完整流程
