设计一个简易的处理器(10)--性能评估(完)
来源:互联网 发布:下载flash软件 编辑:程序博客网 时间:2024/06/05 11:50
性能评价
————
最终需要的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:
1. 深入理解计算机系统(原书第2版)
(版权所有,转载时请注明作者和出处-dennis_fan-http://blog.csdn.net/dennis_fan
- 设计一个简易的处理器(10)--性能评估(完)
- 设计一个简易的处理器(2)--处理器的硬件部件
- 设计一个简易的处理器(5)--SEQ+ CPU的实现
- 设计一个简易的处理器(8)--流水线冒险的避免
- 设计一个简易的处理器(3)--SEQ CPU的实现(1): 将指令组织成阶段
- 设计一个简易的处理器(6)--简单的流水线实现PIPE-
- 设计一个简易的处理器(7)--流水线的相关和冒险
- 设计一个简易的处理器(9)--PIPE的硬件结构, 流水线控制逻辑
- 设计一个简易的处理器(1)--定义指令集体系结构(ISA)
- 设计一个简易的处理器(4)--SEQ CPU的实现(2):SEQ CPU的控制逻辑与硬件实现
- 开源处理器Rocket的分支预测机制研究与性能评估(一)
- 开源处理器Rocket的分支预测机制研究与性能评估(二)
- 开源处理器Rocket的分支预测机制研究与性能评估(三)
- 下一代信息推荐系统的算法设计与性能评估
- 基于STK 的星座设计与性能评估
- 利用JavaFX设计一个简易的时钟
- 设计一个简易计算器
- 分类器的性能评估
- java最新资料大全
- 一个介绍写PHP框架(Framework)的不错网址
- 《Linux Kernel Development》读书笔记
- FusionCharts(Falsh图表)免费版下载和使用
- linux环境下如何确定安装好交叉编译器
- 设计一个简易的处理器(10)--性能评估(完)
- 关于Verilog HDL的学习
- 利用mmap /dev/mem 读写Linux内存---root 权限
- ubuntu 9.10创建samba共享的问题
- /dev/mem
- 挖掘长尾词
- C 指针和数组
- 120941138:使用接口有什么好处?
- LINUX下MYSQL代码开发