CPU
指令
举例:
算数、访存、控制
最优化目标:
cycles/instruction * seconds/cycle
CPI(每条指令的时钟数)&时间周期
桌面应用的特点:大量时间用于访存
摩尔定律
芯片的集成密度每两年翻一番,成本下降一半。
流水线
取指、译码、执行、访存、写回
利用指令级并行,极大地减小时钟周期,增加了一些延迟和芯片面积
带来的问题
- 具有依赖关系的指令
- 分支怎么处理
旁路 Bypassing
停滞 Stalls
分支 Branches
分支预测
猜测下一条指令
基于过去的分支记录
分支断定
不使用分支预测器
优势:减少面积,减少错误预测
提升IPC instructions per cycle
常规IPC受限于instrus per clock
超标量 Superscalar - 增加流水线宽度
指令调度
乱序执行 out of order execution
重排指令,获取最大的吞吐率
重排缓存区
发射队列/调度
乱序执行
IPC接近理想状态
- 面积增加
- 功耗增加
存储器架构/ 层次 memory hierarchy
存储器越大越慢
粗略的估计
缓存
将数据放在尽可能接近的位置
利用:
- 时间临近性
- 空间临近性
硬件管理
- L1 instruction/Data caches
- L2 unified cache
- L3 unified cache
级越小,速度越快,容量越小