- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1.CUP性能公式
评价cache性能公式:
? 平均存储访问时间 = 命中时间 + 缺失率×缺失代价
? 命中时间:缓冲命中需要的时间。
? Cpu性能公式 分析
经典的CPU性能公式
现在我们可以用指令数、CPI和时钟周期时间来写出基本的性能公式:
CPU时间=指令数×CPI×时钟周期时间
CPI:每条指令的时钟周期数,表示执行某个程序或者程序片段时每条指令所需的时钟周期平均数。
指令数:执行某程序所需的总指令数量。
或 CPU时间=指令数×CPI/时钟频率
这些公式特别有用,因为它们把性能分解为三个关键因素。我们可用这些公式来比较不同的实现方案或评估某个设计的替代方案。
举例 代码段的比较
一个编译器设计者试图在两个代码序列之间进行选择。硬件设计者给出了如下数据:
?
对于某行高级语言语句的实现,两个代码序列所需的指令数量如下:
?
代码序列1共执行2+1+2=5条指令。代码序列2共执行4+1+1=6条指令。所以,代码序列2执行的指令数更多。
基于指令数和CPI,我们可以用CPU时钟周期公式计算出每个代码序列的总时钟周期数为:
?
因此,代码序列1的CPU时钟周期数=(2×1)+(1×2)+(2×3)=10周期,代码序列2的CPU时钟周期数=(4×1)+(1×2)+(1×3)=9周期。故代码序列2更快,尽管它多执行了一条指令。由于代码序列2总时钟周期数较少,而指令数较多,它一定具有较小的CPI。CPI的计算公式为:
CPI=CPU时钟周期数/指令数
代入相应数据可得CPI1=CPU时钟周期数1/指令数1=10/5=2
CPI2=CPU时钟周期数2/指令数2=9/6=1.5。重点
图1-14给出了计算机在不同层次上的性能测试指标及其测试单位。通过这些指标的组合可以计算出程序的执行时间(单位为秒):
执行时间=秒/程序=指令数/程序×时钟周期数/指令×秒/时钟周期
永远记住,唯一能够被完全可靠测量的计算机性能指标是时间。例如,对指令集减少指令数目的改进可能降低时钟周期时间或提高CPI,从而抵消了改进的效果。类似地,CPI与执行的指令类型相关,执行指令数最少的代码其执行速度未必是最快的。
?
图1-14 基本的性能指标及其测量单位
如何确定性能公式中这些因素的值呢?我们可以通过运行程序来测量CPU的执行时间,并且计算机的说明书中通常介绍了时钟周期时间。难以测量的是指令数和CPI。当然,如果确定了时钟频率和CPU执行时间,我们只需要知道指令数或者CPI两者之一,就可以依据性能公式计算出另一个。
用仿真器等软件工具可以测量出指令数,也可以用现代处理器中的硬件计数器来测量执行的指令数、平均CPI和性能损失源等。由于指令数量取决于计算机体系结构,并不依赖于计算机的具体实现,因而我们可以在不知道计算机全部实现细节的情况下对指令数进行测量。但是,CPI与计算机的各种设计细节密切相关,包括存储系统和处理器结构(我们将在第4、5章中看到),以及应用程序中不同类型的指令所占的比例。因此,CPI对于不同应用程序是不同的,对于相同指令集的不同实现方式也是不同的。
上述的例子表明,只用一种因素(如指令数)去评价性能是危险的。当比较两台计算机时,必须考虑全部三个因素,它们组合起来才能确定执行时间。如果某个因素相同(如上例中的时钟频率),必须考虑不同的因素,才能确定性能的优劣。因为CPI随着指令组合(instruction mix)而变化,这样指令的条数和CPU必须被比较,即使时钟频率是相同的。在本章最后的练习题中,有几个是关于计算机和编译程序的性能评价。在1.8节,我们将讨论一种因没有全面考虑各种因素而导致的对性能的误解。
理解程序性能
程序的性能与算法、编程语言、编译程序、体系结构以及实际的硬件有关。下表概括了这些成分是如何影响CPU性能公式中的各种因素的。
?
精解:也许你期望CPI最小值为1.0。在第4章我们将看到,有些处理器在每个时钟周期可对多条指令取指并执行。有些设计者用IPC(instruction per clock cycle)来代替CPI。如一个处理器每时钟周期可执行2条指令,则它的IPC=2,CPI=0.5。
2.verlog描述状态机(硬件描述语言(verylog)写状态机)
状态机描述方法:状态机描述时关键是要描述清楚几个状态机的要素,即如何进行状态转移,每个状态的输出是什么,状态转移的条件等。常见的三种描述方式:
第一, 整个状态机写到一个always模块里面,在该模块中既描述状态转移,又描述状态的输入和输出;
第二, 用两个always模块来描述状态机,其中一个always模块采用同步时序描述状态转移;另一个模块采用组合逻辑判断状态转移条件,描述状态转移规律以输出。
第三, 在两个awlays模块描述方法基础上,使用三
文档评论(0)