首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在计算具有转发功能的mips管道的CPI时需要帮助

在计算具有转发功能的mips管道的CPI时需要帮助
EN

Stack Overflow用户
提问于 2019-06-10 00:37:58
回答 1查看 3K关注 0票数 1

你好,我有一个家庭作业的问题,我坚持在计算机结构课。我有一个带转发和代码的流水线mips处理器,我需要计算处理器CPI。我知道,如果我计算一些东西,我会在lw之后得到一个停顿,在分支之后,会有某种停顿,我也计算了每条指令的频率。

我该如何计算CPI呢?我知道如何在多周期中做到这一点,但不知道如何在管道中实现。

非常感谢您能给予的任何帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-10 01:09:40

在流水线上下文中,CPU可能能够在每个周期读取并开始执行指令。因此,由于CPI关注的是执行吞吐量,没有任何数据或控制风险造成停顿,我们会认为每条指令都需要一个周期。

这显然是错误的,因为一条指令需要几个周期才能完成,但带有N>>1指令的程序将需要N个周期,我们可以认为每条指令的周期是1。

现在,当我们由于内存访问的延迟、分支延迟或其他原因而出现停滞时,会发生什么?由于这种停顿,我们将不再有1条指令每个周期。在停顿期间,流水线将被冻结或获取不正确的指令,其总体结果是处理器丢失一个周期。

出于这个原因,我们认为,对于CPI计算而言,创建1周期停滞的指令将持续2个周期。类似地,如果有两个周期的停顿,我们认为指令是3个周期,依此类推。

假设50%的ld指令创建停顿,无危险的ld将具有1个周期的“持续时间”,并且如果存在停顿,“持续时间”是2个周期,因此对于ld,我们平均具有1.5个周期。

还假设由于分支延迟,分支是2个周期。

如果其他指令是1个周期,20%的指令是ld,另外20%是分支,我们有

CPI = 0.20*1.5 + 0.20*2 +每条指令的0.6*1=1.3周期。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56516451

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档