《计算机组成思维导图》
一、计算机系统概述
1.1 计算机的概念
- 定义: 按照预先存储的程序,自动、高速地进行数据处理的电子设备。
- 特点:
- 高速运算
- 逻辑判断
- 存储能力
- 自动执行
- 通用性
1.2 计算机系统的层次结构
- 硬件层:
- 微指令级(微程序机器级)
- 机器语言级(传统机器级)
- 操作系统级
- 软件层:
- 汇编语言级
- 高级语言级
- 应用语言级
- 虚拟机器:每一层都是一个虚拟机器,其指令集由下一层实现。
1.3 计算机组成与计算机体系结构
- 计算机体系结构:
- 指对计算机系统中各部件的逻辑安排和功能定义。
- 是对程序员可见的属性。
- 例如:指令集、寻址方式、数据表示。
- 计算机组成:
- 指实现计算机体系结构所体现的属性。
- 是对程序员不可见的属性。
- 例如:cache是否采用、乘法器是否采用移位加法实现。
- 联系: 体系结构是抽象的,组成是具体的实现。
二、数据的表示和运算
2.1 数制与编码
- 数制:
- 二进制、八进制、十进制、十六进制
- 相互转换
- 编码:
- 整数:
- 原码、反码、补码、移码
- 表示范围和特点
- 浮点数:
- IEEE 754 标准
- 尾数、阶码
- 单精度、双精度
- 规格化浮点数
- 字符:
- ASCII码
- 汉字编码 (GBK, UTF-8)
- 逻辑值:
- True/False, 1/0
- 整数:
2.2 定点数的表示和运算
- 定点数表示:
- 定点整数、定点小数
- 表示范围
- 定点数运算:
- 加法、减法
- 溢出判断
- 补码加减法
- 乘法
- 原码乘法、补码乘法
- 除法
- 原码除法、补码除法
- 逻辑运算:与、或、非、异或
- 加法、减法
- 移位运算:
- 算术移位、逻辑移位、循环移位
2.3 浮点数的表示和运算
- 浮点数表示: IEEE 754 标准
- 浮点数运算:
- 加法、减法
- 对阶
- 尾数加/减
- 规格化
- 舍入
- 溢出判断
- 乘法、除法
- 加法、减法
- 浮点运算部件: ALU 扩展
2.4 算术逻辑单元 (ALU)
- ALU 的功能:
- 算术运算:加、减、乘、除
- 逻辑运算:与、或、非、异或
- 移位运算
- ALU 的组成:
- 输入:操作数、控制信号
- 输出:结果、标志位 (进位、溢出、零、符号)
- 加法器的实现:
- 半加器、全加器
- 串行进位加法器、并行进位加法器 (CLA)
三、存储系统
3.1 存储器的分类
- 按存储介质:
- 半导体存储器 (SRAM, DRAM, ROM)
- 磁表面存储器 (磁盘、磁带)
- 光存储器 (CD-ROM, DVD)
- 按存取方式:
- 随机存储器 (RAM)
- 只读存储器 (ROM)
- 顺序存储器 (磁带)
- 直接存储器 (磁盘)
- 按在计算机中的作用:
- 主存储器 (内存)
- 辅助存储器 (外存)
- 高速缓冲存储器 (Cache)
3.2 存储器的层次结构
- Cache - 主存 - 外存
- 目的: 提高存储系统的性能/价格比
- 依据: 局部性原理 (时间局部性、空间局部性)
3.3 主存储器
- 组成:
- 存储体
- 地址寄存器 (MAR)
- 数据寄存器 (MDR)
- 地址译码器
- 读写控制电路
- 寻址: 地址译码
- DRAM 刷新:
- 原因:电容存储,电荷会泄漏
- 刷新方式:集中刷新、分散刷新、异步刷新
- 存储器的扩展:
- 位扩展、字扩展、字位扩展
3.4 高速缓冲存储器 (Cache)
- 原理: 利用局部性原理,将主存中最活跃的部分数据复制到 Cache 中。
- Cache 的性能指标:
- 命中率
- 平均访问时间
- Cache 的地址映射方式:
- 直接映射
- 全相联映射
- 组相联映射
- Cache 的替换算法:
- FIFO (先进先出)
- LRU (最近最少使用)
- LFU (最不经常使用)
- Cache 的写策略:
- 写直通 (Write-Through)
- 写回 (Write-Back)
3.5 辅助存储器
- 磁盘存储器:
- 磁盘的组成:磁头、磁道、扇区
- 磁盘的性能指标:容量、平均寻道时间、旋转延迟、数据传输率
- 固态硬盘 (SSD):
- 基于闪存存储
- 优点:速度快、抗震动、低功耗
四、指令系统
4.1 指令格式
- 指令的组成:
- 操作码 (Opcode): 指定指令的操作类型
- 地址码 (Address): 指定操作数的地址
- 指令字长:
- 定长指令字
- 变长指令字
- 操作码的扩展:
- 解决操作码位数不足的问题
4.2 指令的类型
- 数据传送指令:
- MOV (传送)
- PUSH (压栈)
- POP (出栈)
- XCHG (交换)
- 算术逻辑指令:
- ADD (加法)
- SUB (减法)
- MUL (乘法)
- DIV (除法)
- AND (与)
- OR (或)
- NOT (非)
- XOR (异或)
- 控制转移指令:
- JMP (无条件跳转)
- JE/JZ (相等/为零则跳转)
- JNE/JNZ (不相等/不为零则跳转)
- CALL (调用子程序)
- RET (返回)
- 输入/输出指令:
- IN (输入)
- OUT (输出)
4.3 寻址方式
- 指令寻址:
- 顺序寻址
- 跳转寻址
- 数据寻址:
- 立即寻址
- 直接寻址
- 间接寻址
- 寄存器寻址
- 寄存器间接寻址
- 基址寻址
- 变址寻址
- 相对寻址
- 堆栈寻址
4.4 CISC 与 RISC
- CISC (复杂指令集计算机):
- 指令数量多
- 指令字长不固定
- 寻址方式多样
- 指令执行速度慢
- RISC (精简指令集计算机):
- 指令数量少
- 指令字长固定
- 寻址方式少
- 指令执行速度快
- 更依赖编译器优化
五、中央处理器 (CPU)
5.1 CPU 的功能和组成
- CPU 的功能:
- 指令控制
- 操作控制
- 时间控制
- 数据处理
- CPU 的组成:
- 运算器 (ALU)
- 控制器 (CU)
- 寄存器组
- 内部总线
5.2 指令执行过程
- 取指令 (IF): 从存储器中取出指令
- 指令译码 (ID): 分析指令的操作码和地址码
- 执行指令 (EX): 执行指令的操作
- 访存取数 (MEM): 从存储器中读取或写入数据
- 写回结果 (WB): 将结果写回寄存器
5.3 控制器的功能和实现
- 控制器的功能:
- 控制指令的执行顺序
- 产生各种控制信号
- 控制器的实现:
- 硬布线控制器:采用组合逻辑实现,速度快,但灵活性差
- 微程序控制器:采用微程序实现,灵活性好,但速度慢
5.4 流水线技术
- 流水线的概念: 将指令的执行过程分解成多个阶段,并行执行多条指令。
- 流水线的分类:
- 指令流水线
- 运算流水线
- 流水线的性能指标:
- 吞吐率
- 加速比
- 流水线的冲突:
- 结构冲突
- 数据冲突
- 控制冲突
- 解决冲突的方法:
- 暂停/插入气泡
- 数据旁路/转发
- 分支预测
六、总线系统
6.1 总线的概念和分类
- 总线的概念: 连接计算机系统中各个部件的公共通道。
- 总线的分类:
- 内部总线
- 系统总线
- 通信总线
- 系统总线的类型:
- 数据总线 (DB)
- 地址总线 (AB)
- 控制总线 (CB)
6.2 总线的特性
- 机械特性
- 电气特性
- 功能特性
- 时间特性
6.3 总线控制
- 总线仲裁:
- 目的:解决多个设备竞争总线控制权的问题
- 仲裁方式:
- 集中式仲裁
- 分布式仲裁
- 总线定时:
- 同步定时
- 异步定时
- 总线标准:
- PCI
- USB
- SATA
七、输入/输出系统
7.1 I/O 系统的组成
- I/O 设备
- I/O 接口 (I/O 控制器)
- I/O 总线
- I/O 软件 (驱动程序)
7.2 I/O 接口
- 功能:
- 地址译码
- 数据缓冲
- 控制信号转换
- 设备状态指示
- 组成:
- 数据寄存器
- 控制寄存器
- 状态寄存器
7.3 I/O 方式
- 程序查询方式: CPU 轮询检查 I/O 设备的状态,效率低。
- 中断方式: I/O 设备完成操作后,向 CPU 发出中断请求,CPU 响应中断并处理 I/O 操作。
- DMA 方式 (直接存储器访问): I/O 设备直接与存储器进行数据传输,不需要 CPU 的干预,效率高。
- 通道方式: 一种更高级的 DMA 方式,由专门的通道程序控制 I/O 操作。
7.4 中断系统
- 中断的概念: CPU 暂停当前程序的执行,转而去处理中断事件的过程。
- 中断的类型:
- 内部中断 (异常)
- 外部中断 (外设请求)
- 中断处理过程:
- 中断请求
- 中断判优 (确定优先级)
- 中断响应
- 中断服务程序
- 中断返回
- 中断向量: 指向中断服务程序入口地址的指针。