计算机组成原理小结
一、概述
- 计算机系统的层次结构
- 冯诺依曼机器
- 计算机由运算器、控制器、存储器、输入和输出五大部分组成,并且以运算器为核心
- 指令和数据以二进制形式、同的地位存放于存储器中,并且可以按址访问
- 指令由操作码和地址码组成,顺序存放于存储器中
- 普林斯顿体系(冯诺依曼)VS哈佛体系
- 五大部件的基本工作原理
二、总线
- 计算机总线的概念
- 总线的分类
- 片内总线
- 系统总线
- 通信总线
- 总线特性
- 总线宽度
- 总线频率
- 由a和b得到总线带宽
- 总线结构
- 单总线
- 多总线
- DMA三总线结构
- 计算机系统总线
- 通信线路
- 总线控制器
三、CPU架构
- SMP:FSB、Hub-link
- NUMA:QPI(CSI)、DMI
- MPP:SMP+通信总线
四、存储系统
计算机的存储系统由两个子系统组成:cache缓存系统和虚拟存储系统
- 计算机存储系统层次结构:速度、容量和每位价格
- 主存:主存承上启下(承上cache启下磁盘)
- 主存组成:MAR+地址总线+译码驱动+存储体+读写控制电路+数据总线+MDR
- 编址方式:存储单元+数据对齐的访问方式(参考蒋本珊《计算机组成原理》5.2部分讲解)
- 字编址
- 字节编址
- 位编址
- 寻址
- 数据对齐:存储系统边界对齐(数据对齐)
- cache缓存子系统
- 指令预取
- 局部性原理
- cache结构(SMP+NUMA)
- 缓存映射方式
- 全相联
- 直接映射
- 组相联
- 缓存读写流程
- 读流程
- 写流程
- 单核:write through和write back
- 多核:write update和write invalid+MESI缓存一致性协议
- 缓存替换策略
- 虚拟存储系统
- 控制器和驱动器
- 机械盘结构
- SSD结构
- raid
- 虚拟内存
- 虚拟内存的三个主要功能(参看《深入理解计算机系统》):
- 内存作为磁盘缓存
- 为所有进程提供一致的地址空间
- 访问隔离保护
- 分段、分页、段页式
- swap
- 虚拟内存的三个主要功能(参看《深入理解计算机系统》):
- 内存映射:内存映射文件、内存映射IO
- 《深入理解计算机系统》cache+虚拟内存
五、IO
- IO接口
- 程序查询
- 程序中断
- 中断
- DMA
- DMA与CPU访问主存冲突:周期窃取
- DMA结构:总线结构和DMAC硬件结构
- DMA数据流程
- IO通道
- IO复用
- select
- poll
- epoll
六、CPU(运算器和控制器)
- 计算机信息表示
- 数值
- 有符号数
- 无符号数
- 非数值
- 字符:编码
- 布尔值:布尔运算(与、或、非、异或)
- 数值
- CPU结构和功能
- 结构:ALU、CU、寄存器和时钟
- 功能:取指、译码和执行指令
- 指令系统
- 指令格式
- 操作码和地址码
- 指令类型
- 计算类指令
- 数据传送指令
- 地址转移指令
- IO类指令
- 寻址技术
- 编址:字编址、字节编址和位编址
- 寻址:指令寻址和数据寻址
- 指令流水
- 相关性:结构相关、数据相关和控制相关
- 结构相关:流水线冒泡(暂停)、冲突部件冗余
- 数据相关:流水线冒泡(暂停)、操作数前推(寄存器重命名)、乱序执行(指令的动态调度)
- 控制相关:流水线冒泡(暂停)、分支预测
- 乱序:指令的动态调度,常见算法有记分牌和tomasulo
- 相关性:结构相关、数据相关和控制相关
- 指令格式