计算机组成原理核心知识笔记
经典学科基础知识笔记,供学习参考。
1. 计算机系统概述
1.1 计算机系统的组成
- 硬件:运算器、控制器、存储器、输入设备、输出设备
- 软件:系统软件(OS、编译程序、数据库)与应用软件
- 硬件与软件在逻辑功能上等价,可通过软件实现硬件功能(软/硬件逻辑等价性)
1.2 冯·诺依曼体系结构(存储程序)
- 核心思想:存储程序 + 程序控制
- 指令和数据均以二进制形式存放在存储器中,按地址访问
- 五大部件:运算器、控制器、存储器、输入设备、输出设备
- 以运算器为中心(现代计算机已演变为以存储器为中心)
1.3 计算机的层次结构
1 | 应用软件 |
2. 数据的表示与运算
2.1 数制与编码
- 常用进制:二进制、八进制、十六进制;进位计数制转换方法
- BCD 码(8421 码等)、ASCII 码(7 位)、Unicode / UTF-8
2.2 机器数(重点)
| 编码 | 正数 | 负数 | 特点 |
|---|---|---|---|
| 原码 | 符号位 0 + 数值 | 符号位 1 + 数值 | 加减法复杂,0 有两种表示 |
| 反码 | 同原码 | 原码按位取反 | 很少直接用 |
| 补码 | 同原码 | 反码 + 1 | 加减统一用补码,0 唯一 |
| 移码 | 补码符号位取反 | 补码符号位取反 | 常用于浮点阶码 |
- 补码范围:n 位补码表示
-2^(n-1) ~ 2^(n-1)-1 - 溢出判断:双符号位(变形补码)或进位/符号位比较法
2.3 定点数与浮点数
- 定点数:小数点位臵固定,分为定点小数、定点整数
- 浮点数格式:
N = M × r^E(尾数 M、基数 r、阶码 E) - IEEE 754 标准:
- 单精度 float:1 符号位 + 8 位阶码(偏置 127)+ 23 位尾数
- 双精度 double:1 符号位 + 11 位阶码(偏置 1023)+ 52 位尾数
- 规格化数、非规格化数、Infinity、NaN
2.4 运算方法
- 补码加减法:直接按补码相加,符号位参与运算
- 原码/补码一位乘法(Booth 算法)、除法
- 逻辑运算:与、或、非、异或、移位(算术移位 / 逻辑移位 / 循环移位)
3. 存储系统
3.1 存储器层次结构(金字塔)
1 | CPU 寄存器 |
- 上一层作为下一层的缓存,速度递减、容量递增、价格递减
- 局部性原理:时间局部性 + 空间局部性
3.2 半导体存储器
- SRAM:触发器存储,速度快、集成度低,用作 Cache
- DRAM:电容存储,需刷新,集成度高,用作主存
- ROM:只读,存放开机引导程序(BIOS/UEFI)
3.3 Cache(重点)
- 映射方式:
方式 特点 直接映射 主存块只能放固定 Cache 行,实现简单、冲突率高 全相联映射 可放任意行,命中率高、比较开销大 组相联映射 折中,按组分直接映射,组内全相联 - 替换算法:LRU(近期最少使用)、FIFO、随机
- 写策略:写直达(Write Through)、写回(Write Back)
3.4 虚拟存储器
- 页式、段式、段页式管理
- 页表 + TLB(快表),缺页中断,页面置换算法(OPT、FIFO、LRU、Clock)
3.5 主存扩展
- 位扩展(字长扩展)、字扩展(容量扩展)、字位同时扩展
- 需要地址译码器(片选逻辑)
4. 指令系统
4.1 指令格式
- 组成:操作码(OP)+ 地址码(A)
- 常见格式:零地址、一地址、二地址、三地址指令
4.2 寻址方式(重点)
| 寻址方式 | 说明 | 有效地址/操作数 |
|---|---|---|
| 立即寻址 | 操作数在指令中 | 直接给出 |
| 直接寻址 | EA = 地址码 | EA = A |
| 间接寻址 | 地址码指向存放地址的单元 | EA = (A) |
| 寄存器寻址 | 操作数在寄存器 | EA = Ri |
| 寄存器间接寻址 | 寄存器存放 EA | EA = (Ri) |
| 变址寻址 | EA = A + (IX),用于数组 | EA = A + (IX) |
| 基址寻址 | EA = A + (BR),用于程序重定位 | EA = A + (BR) |
| 相对寻址 | EA = (PC) + A,用于转移 | EA = (PC) + A |
4.3 CISC 与 RISC
| CISC | RISC | |
|---|---|---|
| 指令 | 复杂、数量多、变长 | 简单、数量少、定长 |
| 寻址方式 | 多 | 少 |
| 实现 | 微程序控制为主 | 硬布线为主,流水线 |
| 代表 | x86 | ARM、MIPS、RISC-V |
5. 中央处理器(CPU)
5.1 CPU 的功能与结构
- 功能:取指令、分析指令、执行指令、控制时序、中断处理
- 结构:运算器(ALU)、控制器(CU)、寄存器组、内部总线
5.2 控制器实现方式
- 硬布线控制:组合逻辑电路,速度快,不易修改
- 微程序控制:将控制信号编码为微指令,存放于控制存储器(CM),灵活
- 微指令:微操作码 + 下地址;有水平型、垂直型
- 一条机器指令 → 一段微程序
5.3 指令周期与流水线
- 指令周期 = 取指周期 + 执行周期(可能含间址、中断周期)
- 流水线:将指令过程分为取指 IF、译码 ID、执行 EX、访存 MEM、写回 WB
- 流水线冒险:
- 结构冒险(资源冲突)→ 部件冗余 / 停顿
- 数据冒险(RAW/WAR/WAW)→ 转发、停顿、编译器调度
- 控制冒险(转移)→ 分支预测、延迟槽、冲刷
- 流水线性能:吞吐率、加速比;理想加速比 ≈ 流水段数 k
6. 总线
6.1 总线分类
- 按功能:数据总线(DB)、地址总线(AB)、控制总线(CB)
- 按层次:片内总线、系统总线、I/O 总线
- 传输方式:并行 / 串行;同步 / 异步
6.2 总线仲裁
- 集中式:链式查询、计数器定时查询、独立请求
- 分布式仲裁
- 总线周期:申请 → 仲裁 → 传输 → 释放
7. 输入输出(I/O)系统
7.1 I/O 接口
- 作用:数据缓冲、状态/命令寄存器、地址译码、格式转换
- 编址方式:统一编址(存储器映射 I/O)、独立编址(端口寻址)
7.2 I/O 控制方式(重点)
| 方式 | 特点 |
|---|---|
| 程序查询方式 | CPU 轮询状态,效率低 |
| 中断方式 | 设备主动申请,CPU 响应中断,提高并行度 |
| DMA 方式 | 数据不经过 CPU,直接与主存交换(DMAC 控制) |
| 通道方式 | 通道执行通道程序,管理一批设备,效率最高 |
7.3 中断系统
- 中断源、中断请求、中断响应(保护现场、关中断)
- 中断屏蔽与优先级(多重中断 / 中断嵌套)
- 向量中断:中断向量表定位中断服务程序入口
7.4 常用外设
- 磁盘:寻道时间、旋转延迟、传输时间
- SSD:闪存颗粒、读写均衡、无机械延迟
- 显示器、键盘、鼠标、网卡等接口标准
8. 学习要点总结
- 五大部分:运算器、控制器、存储器、输入、输出(冯·诺依曼)
- 三种机器数:原码、反码、补码;加减法一律用补码
- 两个层次:存储器层次(Cache 为核心)、指令流水线(冒险处理为核心)
- 四大 I/O 方式:查询、中断、DMA、通道
- 两大寻址难点:间接寻址与变址/基址寻址的区别
- 两大实现路线:硬布线 vs 微程序;CISC vs RISC
(内容由AI生成,仅供参考)
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 琉璃幻彩的博客!
评论

