读书《计算机体系结构:量化研究方法》。这份笔记的特点:只记下我觉得可能会在比赛/面试/项目中理解的理论和技巧。别的用到的时候再update一下。
这篇文章是完全的实用功利主义的文章,因此不可避免的会缺少一些原书中非常值得玩味的部分和知识,比如第一章中,我不关心成本/功耗/面积等参数,而在实际的处理器设计中,这三者有时比性能更重要。
处理器的性能分析
第一章中主要总结了处理器性能的各个指标以及其公式。
总的目的的降低程序的CPU时间(秒),最重要的公式是公式(8):
- 时钟周期时间: 硬件技术与组成
- CPI: 组成与指令集体系结构
- 指令数: 指令集体系结构和编译器技术
处理器设计主要集中在降低CPI上,不过事实上这三个因素之间相互影响。因此提高处理器性能主要是这三个因素相互之间tradeoff。
n=执行时间X执行时间Y=性能Y性能X(1)
加速比=改进后的执行时间未改进时的执行时间(2)
时钟频率=时钟周期时间1s(3)
CPU时间=程序的CPU时钟周期数∗时钟周期时间(4)
CPU时间=时钟频率程序的CPU时钟周期数(5)
CPI=指令数程序的CPU时钟周期数(6)
IPC=程序的CPU时钟周期数指令数(7)
CPU时间=指令数∗CPI∗时钟周期时间(8)
CPU时间=程序指令数∗指令数时钟周期数∗时钟周期数秒=程序秒(9)
CPU时间=(CPU时钟周期数+存储器停顿周期数)∗时钟周期时间(10)
缓存
缓存性能
2索引=块大小∗组相连度缓存大小(1)
存储器停顿周期=缺失数∗缺失代价=IC∗指令缺失数∗缺失代价=IC∗指令存储器访问次数∗缺失率∗缺失代价(2)
存储器停顿周期=IC∗读指令占比∗读缺失率∗写缺失代价=IC∗写指令占比∗写缺失率∗写缺失代价(3)
指令缺失数=指令数缺失率∗存储器访问次数=缺失率∗指令存储器访问次数(4)
存储器平均访问时间=命中时间+缺失率∗缺失代价(5)
存储器结构问题
Opteron数据缓存:
- 64KB
- 块大小为64字节 : 1024块
- 两路组相连 : 512块/路
- LRU替代策略
- 写回策略
- 写缺失时写分配