5097
备注:
|
5260
|
删除的内容标记成这样。 | 加入的内容标记成这样。 |
行号 1: | 行号 1: |
基本原理 | [[TableOfContents]] = 基本原理 = |
行号 28: | 行号 29: |
指令集原理 | = 指令集原理 = |
行号 36: | 行号 37: |
寄存器-寄存器结构:简单、定长的指令编码,简单的代码生成模式,每条指令运行所需的时钟周期相近。一个程序的指令数量比可以直接访问存储器的系统结构多;指令多、指令密度低使程序变大 寄存器-存储器结构:数据不需要专门的载入指令就可以直接访问;指令格式更易于程序员编码;代码密度高。操作数位置不同使每条指令的执行时钟周期不同;同一条指令内对内存地址和寄存器编码,限制了寄存器的数量;源操作数在二元操作中被破坏,操作数不是等价的。 存储器存储器结构:最紧凑;不浪费寄存器来做临时交换空间。指令长短各不相同;每条指令的操作各不相同;内存访问带来存储器瓶颈。 |
* 寄存器-寄存器结构:简单、定长的指令编码,简单的代码生成模式,每条指令运行所需的时钟周期相近。一个程序的指令数量比可以直接访问存储器的系统结构多;指令多、指令密度低使程序变大 * 寄存器-存储器结构:数据不需要专门的载入指令就可以直接访问;指令格式更易于程序员编码;代码密度高。操作数位置不同使每条指令的执行时钟周期不同;同一条指令内对内存地址和寄存器编码,限制了寄存器的数量;源操作数在二元操作中被破坏,操作数不是等价的。 * 存储器存储器结构:最紧凑;不浪费寄存器来做临时交换空间。指令长短各不相同;每条指令的操作各不相同;内存访问带来存储器瓶颈。 |
行号 44: | 行号 43: |
Little Endian:二进制地址形如"x...x00",位于32位字中最低位置的字节。 Big Endian:二进制地址形式如"x...x00",位于32字中的最高位置的字节。 |
* Little Endian:二进制地址形如"x...x00",位于32位字中最低位置的字节。 * Big Endian:二进制地址形式如"x...x00",位于32字中的最高位置的字节。 |
行号 60: | 行号 58: |
行号 68: | 行号 67: |
行号 100: | 行号 100: |
行号 105: | 行号 106: |
行号 109: | 行号 111: |
行号 113: | 行号 116: |
行号 117: | 行号 121: |
* 边长编码 * 定长编码 * 混合编码 编译器相关问题 |
|
行号 125: | 行号 134: |
指令级并行 |
= 指令级并行 = |
行号 136: | 行号 143: |
软件方法 | = 软件方法 = |
行号 142: | 行号 149: |
存储器层次结构设计 | = 存储器层次结构设计 = |
行号 154: | 行号 161: |
多处理器和线程级并行 | = 多处理器和线程级并行 = |
行号 156: | 行号 163: |
存储系统 | = 存储系统 = |
行号 158: | 行号 165: |
互联网络和集群 | = 互联网络和集群 = |
行号 169: | 行号 176: |
参考资料 | = 参考资料 = |
基本原理
- 体系结构的发展 成本、价格
- 集成电路成本
- 加快经常性事件的速度 Amdahl定律: 总加速比 = 原来执行时间/新的执行时间 = 1/( (1-增强部分比例)+增强部分比例/增强部分加速比 ) CPU性能公式
- CPI:每条指令执行所需要的时钟周期数。CPI = 一个程序的CPU时钟周期数 / 该程序的指令数IC CPU时间 = 一个程序的CPU时钟周期数 * 时钟周期长度 = 指令数IC * 每指令时钟周期数CPI * 时钟周期的长度 MIPS = 指令数 / (指令的执行时间 * 1M) = 时钟频率 / (CPI * 1M)
- 程序经常会重复使用它最近使用过的指令和数据。经验规律指出程序有90%的执行时间执行的是其10%的代码。
指令集原理
- 指令集系统结构分类
- 堆栈系统结构 累加器系统结构 通用寄存器系统结构
- 寄存器-寄存器结构:简单、定长的指令编码,简单的代码生成模式,每条指令运行所需的时钟周期相近。一个程序的指令数量比可以直接访问存储器的系统结构多;指令多、指令密度低使程序变大
- 寄存器-存储器结构:数据不需要专门的载入指令就可以直接访问;指令格式更易于程序员编码;代码密度高。操作数位置不同使每条指令的执行时钟周期不同;同一条指令内对内存地址和寄存器编码,限制了寄存器的数量;源操作数在二元操作中被破坏,操作数不是等价的。
- 存储器存储器结构:最紧凑;不浪费寄存器来做临时交换空间。指令长短各不相同;每条指令的操作各不相同;内存访问带来存储器瓶颈。
- 字节顺序
Little Endian:二进制地址形如"x...x00",位于32位字中最低位置的字节。
Big Endian:二进制地址形式如"x...x00",位于32字中的最高位置的字节。
- 寄存器寻址
- 立即数寻址
- 位移量寻址
- 寄存器间接寻址
- 间接寻址
- 直接寻址
- 存储器间接寻址
- 自动递增寻址
- 自动递减寻址
- 比例寻址
- 循环递增(递减)寻址
- 位反转寻址
- 指定操作数类型的方式
- 通过操作码编码
- 通过在数据上附带类型标记
- 字符(单字节)
- 半字(16位)
- 字(32位)
- 单精度浮点(一个字)
- 双精度浮点(两个字) 绝大多数情况下,整数使用补码,浮点数使用IEEE754 有些系统有字符串类型,操作很有限 有些计算机提供十进制数字格式,称作压缩十进制或者二进制编码十进制:用4个二进制位对一位十进制进行编码。数值字符串有时称为非压缩十进制。在压缩和非压缩编码之间转换成为压缩和解压缩。
- 顶点
- 像素
- 定点数
- 算数与逻辑运算
- 数据传输
- 控制
- 系统
- 浮点
- 十进制
- 字符串
- 图像 多媒体指令
- 单指令流多数据流(SIMD)或称为向量指令
- 饱和算法
- 多种舍入方式
- 乘加指令(MAC)
- 条件转移
- 无条件跳转
- 过程调用
- 过程返回 指定地址的方式
- 直接地址
- PC相对寻址
- 寄存器间接跳转 条件转移方案
- 条件码
- 条件寄存器
- 比较并分支 过程调用方案
- 调用者保存
- 被调用者保存
- 边长编码
- 定长编码
- 混合编码
- 堆栈系统结构 累加器系统结构 通用寄存器系统结构
指令级并行
- 反相关(Antidependence):由名字重复使用造成的相关,它与先读后写(WAR)冲突对应。
- 记分板调度
- 寄存器重命名
- Tomasulo调度
软件方法
- 循环展开
- 软件流水
- 路径调度
- 超级块调度
存储器层次结构设计
- 降低cache缺失率
- 增加块大小 增加cache容量 增加相联度 路预测和伪相联cache 编译优化
多处理器和线程级并行
存储系统
互联网络和集群
- 集群
- 缺点 优势
- 可靠性和可扩展性
- 缺点 优势
参考资料
- John Hennessy, David Patterson, Computer Architecture: A Quantitative Approach (3rd Edition)