性能评价
————
最终需要的PIPE处理器已经设置完毕了,现在要评价它的性能,采用CPI这个指标进行评价.
CPI: PIPE执行一条指令所需的平均时钟周期数.
(1). PIPE的CPI直观判断
PIPE采用了"加载互锁+转发"技术,转发技术不会降低流水线的吞吐量,而加载互锁是通过暂停技术来实现的,所以会降低流水线的吞吐量.这样基本上可以达到每个时钟周期发射一条新指令的目标,也就是PIPE的CPI≈1(CPI>1).
(2).量化
C-时钟周期数
I-需要执行的指令数
B-插入Bubble数
CPI = C/I= (I + B) / I = 1.0 + B/I
B/I -惩罚因子
PIPE中有三种情况会插入Bubble.
-加载/使用冒险-->加载惩罚(load
penalty, lp)
-错误预测分支-->错误预测分支惩罚(mispreadictedbranch
penalty, mp)
-处理ret-->ret惩罚(return
penalty, rp)
CPI = 1.0+ lp + mp + rp
(3).一个计算CPI的实例
原因 |
名称 |
指令频率 |
满足条件频率 |
气泡 |
乘积 |
加载/使用 |
lp |
0.25 |
0.20 |
1 |
0.25*0.20*1=0.05 |
预测错误 |
mp |
0.20 |
0.40 |
2 |
0.20*0.40*2=0.16 |
返回 |
rp |
0.02 |
1.00 |
3 |
0.02*1.00*3=0.06 |
总和 |
|
|
|
|
0.05+0.16+0.06=0.27 |
CPI = 1.27≈1.0
注*:本篇中的图片均来自本书的官网,我进行了改造(注释和添加),详见http://csapp.cs.cmu.edu/public/figures.html
(Copyright© 2011, Randal E. Bryant and David R. O'Hallaron )
reference:
(版权所有,转载时请注明作者和出处-dennis_fan-http://blog.csdn.net/dennis_fan