计算机系统结构
第1章 概述
Flynn’s 分类,市场分类
系统结构的原始定义和现在的定义
原始定义:
程序员看见的系统属性,即结构及行为,区分数据流动和控制逻辑,及物理实现
现在定义:
是在满足功能、性能和价格目标的条件下,设计、选择和互连硬件部件构成计算机。
了解实现技术、功耗、成本的趋势,可靠性
- 摩尔定律
- 带宽增加速度与响应时间改进的平方成比例
- 带宽改进优于时延
- 多核有更高的功率利用率
- 模块可用性:
- $\frac{平均无故障时间}{平均故障间隔时间}$
性能评价指标:响应时间、CPU时间、吞吐量
性能评价方法:
基准测试程序,SPEC测试程序集及指标( SPEC Ratio、 Spec mark )
SPEC:
提供基于现有应用程序的一套标准化源代码作为基准测试程序(SM为SPEC速率的几何平均值)
- $SM = \sqrt[n] {\prod_{i-1}^{n} SPECRatio_i}$
- $SPECRatio_i = \frac{参考计算机执行时间}{A机执行时间}$
TPC:
测试每秒处理的事务数
量化:Amdahl定律,CPU时间计算
CPU时间:执行一组指令用的时间
$Instruction_Num * \overline{Instruction_Time}$
$\overline{Instruction_Time}=CPI * Clock_Cycle_Time$
Amdahl定律
$S_e(加速比) = \frac{改进后的性能/(未改进执行时间)}{未改进的性能/(改进后的执行时间)}$
$改进后的执行时间 = \frac{改进部分执行时间}{加速比}+不可改进部分执行时间$
$F_e$:改进部分所占执行时间比例
- $T_n = T_0(1 - F_e + \frac{F_e}{S_e})$
- 改进后系统加速比为:
- $\frac{1}{1 - F_e + \frac{F_e}{S_e}}$
了解性价比:桌面机,服务器
第2章 指令系统
指令集系统结构分类及特点
堆栈、累加器、通用寄存器
通用寄存器系统结构的分类及特点
r-m
r-r/load-store
存储器寻址:基本单位、小端与大端模式、对齐访问
最常用寻址方式
常用操作数类型
- 用操作码编码指定
- 用硬件解释字段表示数据类型
常用指令操作
常用指令系统编码方式
- 变长编码:代码长度可以减少
- 定长编码:性能提高,利用流水线
- 混合方法:折中方式
MIPS系统结构的指令格式、寻址方式特点。
32位定长指令
第3章 流水线技术
流水线定义
利用执行指令操作间的并行性,实现多条指令重叠执行的技术
流水线的三种冒险及解决方法
控制冒险
- WB先写,ID后读
- 分离指令寄存器和数据寄存器
- 增加硬件资源或功能部件完全流水
- 停顿流水线
数据冒险
- WB先写,ID后读
- Forwarding
- Load数据冒险
- 停顿
控制冒险
- 停顿流水线
- 预测转移不发生
- 预测转移发生
- 转移延迟
流水线模型机指令系统、无相关流水线模型机多条指令执行过程,流水线模型机的控制信号的产生
流水线模型机中结构相关处理,数据前推、load前推实现, 控制相关处理,指令执行的时序图
精确异常与非精确异常
精确异常
- 异常发生之前的指令正常结束,之后的指令暂停,并在处理完异常之后能重新启动。
- 要求顺序处理异常
- 设置异常向量,异常发生,记录异常,禁止写操作。
- 一条指令将离开流水线,检测异常向量
- 若多个异常,响应最早流水段的异常
非精确异常
- 异常乱序
经典5段流水线扩展浮点流水线,涉及到的写冲突、相关及处理
除法部件不参与流水线
RAW
- ID级检测源寄存器是否和EX/A/DIV/M各级流水线的目的寄存器相同
WAW
- ID级检测目的寄存器是否和EX/A/DIV/M各级流水线的目的寄存器相同
WAR
异常处理
- 忽略这个异常
- 缓存结果,cpu执行完之前不改变任何状态(中间寄存器或历史文件未来文件)
- 确认无异常,才继续流水线
第4章 指令级并行及限制
静态调度的循环展开方法,名相关,寄存器换名(编译器实现)
动态调度,记分牌算法, Tomasulo算法
记分牌
- IS:
无WAW & 无结构冒险
- RO:
源操作数就绪 & 无 RAW
- EXE
- WR:
无WAR
- 等待此寄存器的R即为yes
Tomasulo
IS
进入条件:
有空闲保留栈/缓冲
浮点操作:
- 若源操作数有效,写数据,否则写产生源操作数的部件
- 本保留栈busy
- 送结果寄存器的表
存取操作
- 若地址基址寄存器有效写$V_j$,否则将产生基址寄存器的部件写$Q_j$
- 本保留栈busy
- A存偏移
- 取:将取缓冲送至寄存器表
- 存:若存结果有效写$V_k$,否则写$Q_k$
EXE
进入条件:
源操作数就绪 & 基址寄存器有效(LD|SD) & 到达缓冲队首(LD|SD)
浮点操作:
- 产生结果
存取操作
- 计算A
- 取:读数
WR
进入条件:
CDB空闲 & 结果有效 & 要存入的数据准备好
- 写寄存器/存储器
- 寄存器表相应位置清
- 找源操作是本保留栈的将数据填入
动态转移预测,BPB,BTB,前瞻执行的 基本概念
branch prediction buffer:减少判断跳转的停顿
branch target buffer:记录转移地址在buffer中,转移成功,直接取buffer中的目标地址
前瞻执行:ROB存放未确认结果
第5章 存储系统
Cache存储器的三种映像方式(全相联、直接映像,组相联)
物理地址与Cache地址的映射计算
Cache的映像规则,块标识,替换算法,写策略
写策略
- 写直达:缺失时不按写分配
- 写回:缺失时写分配
Cache性能优化的方法
减少缺失率
$^4$
增加块大小
增大cache容量
更高相联度
编译优化
减少缺失代价
$^5$
多级caches
关键字优先
读缺失优于写缺失
合并写缓冲
牺牲缓冲
并行减少缺失率与缺失代价
$^3$
非阻塞caches
硬件预取
编译预取
减少命中时间
$^5$
- 小和简单的caches
- 避免地址转换
- 流水线cache访问
- 路预测
- 踪迹 caches
主存储器优化性能的技术
- 增加带宽
- 交叉访问存储器
虚拟存储器基本概念,页式虚拟存储器,映像规则,查找方法,替换算法,写策略,快表TLB的结构与作用 虚拟存储器与cache的综合
- 全相联
第6章 多线程和多处理器
ILP与TLP的基本概念
ILP:指令级并行
TLP:线程级并行
超标量、粗粒度、细粒度和SMT的基本概念。
超标量:单线程
粗粒度:仅在长空闲周期才切换线程
细粒度:可在每个周期切换线程
同时多线程:SMT,一个周期内发射不同线程的指令
多处理器的两种分类结构。
- 集中共享存储器架构
- 分布式存储器架构
同构多核与异构多核的基本概念。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!