据我所知,要计算CPI,它是指令类型的百分比乘以周期数,对吗?这台机器的类型是否包含此计算的任何部分?
我有一个问题,问我是否应该建议进行更改。
机器1:在2.5 GHz的机器上,40% R-5周期,30% lw -6周期,15% sw -6周期,15% beq 3周期
机器2:在2.7 GHz机器上,40% R-5周期,30% lw -6周期,15% sw -6周期,15% beq 4周期
根据我的计算,机器1的CPI为5.15,而机器2的CPI为5.3。可以忽略机器的GHz,然后说更改不是一个好主意,或者我必须考虑机器的因素?
发布于 2018-09-06 10:22:37
我认为重点是评估设计更改,使指令占用更多的时钟,但允许您提高时钟频率。(例如,倾向于像奔腾4这样的速度恶魔设计,而不是像苹果的A7/A8 ARM内核那样的brainiac。http://www.lighterra.com/papers/modernmicroprocessors/)
,所以你需要计算每秒的指令数,看看哪一个能在相同的实时时间内完成更多的工作。,即(clock/sec) / (clocks/insn) = insn/sec,从单元中抵消clocks。
你的CPI计算看起来没问题;我没有检查它,但确实是根据指令组合的周期的加权平均值。
这些数字显然是超级简化的;任何值得在2.5 the上构建的CPU都会有某种类型的分支预测,因此分支的成本不仅仅是3或4个指令泡。平均每个指令需要5个周期是很可悲的。(大多数流水线设计的目标是每个时钟至少有一条指令。)
缓存和超标量CPU还会导致指令之间的复杂交互,这取决于它们是否依赖于较早的结果。
但这有点像您可能会考虑将L1d缓存加载-使用延迟增加1个周期(例如),前提是这会将其从关键路径中移除,并允许您提高时钟频率。反之亦然,在以降低频率为代价的情况下,收紧延迟或减少流水线阶段的数量。
发布于 2018-09-06 14:24:59
每条指令的周期数。至于这个平均值,ghz并不重要。但是我们可以从你们的数字中看出,一条指令有更多的时钟,但是处理器的速度不同。
所以,虽然在更快的处理器上做同样的工作需要更多的周期,但处理器的速度确实弥补了这一点,所以很明显,这是一个关于处理器速度是否考虑了额外时钟的问题。
5.15周期/指令/ 2.5 (千兆)周期/秒,周期抵消得到2.06秒/(千兆)指令或(纳米)秒/指令
5.30 / 2.7 = 1.96296 (纳米)秒/指令
速度越快的程序所需的时间越少,因此它运行程序的速度也就越快。
另一种方式来看这个,以检查数学。
在速度较慢的机器上,对于100个时钟周期,其中15%是beq。100个时钟中的15个,也就是5条beq指令。同样的5beq指令在较快的机器上需要20个时钟,因此在较快的机器上相同的指令总共需要105个时钟。
2.5 105下100个周期与2.7 105下105个周期
我们想要的是
赫兹是周期/秒,我们希望秒在顶部,所以我们想
周期/(周期/秒),使周期抵消,并在顶部有秒
1/2.5 = 0.400 (400皮秒) 1/2.7 = 0.370
0.400 * 100 = 40.00个时间单位0.370 * 105 = 38.85个时间单位
因此,尽管多花了5个周期,但处理器速度的差异足以补偿。
2.7/2.5 = 1.08
105/100 = 1.05
因此,2.5 * 1.05 = 2.625,因此2.625 that或更快的处理器可以更快地运行该程序。
现在,更换计算机的规则是什么,更少的时间是否被定义为更换计算机的原因?什么是更好的定义?消耗的电量越多,消耗的时间可能就越少,但功耗可能不是线性的,所以尽管耗时较少,但消耗的功率可能会更多。我假设这个问题没有那么详细,这意味着它是模糊的,意味着它本身就是一个写得很差的问题,所以它涉及到教科书或讲座中定义的改变其他处理器的阈值。
免责声明,如果你在家庭作业/考试中错过了这个问题,不要怪我。
在这样的学术练习之外,现实世界充满了流水线处理器(并非所有但大多数编写程序的人都在为其编写程序),并且基本上您不能在每个指令类型上设置一个时钟周期的数字,因为有一系列的因素可以进行这种计算。让你明白这一点,很好的练习,但在现实世界的处理器上尝试这种特定的练习是困难和危险的。危险之处在于,尽管你努力工作,但你可能会错误地衡量某些事情,并得出错误的结论,从而做出糟糕的建议。同时,现实情况是,更快的ghz确实提高了一定百分比的执行,但另一个百分比受到了影响,是否存在净收益或净损失。或者更快或更慢的新处理器设计可能具有比旧处理器性能更好的功能,但并不是所有的功能都会更好,这是一个权衡,然后我们进入“更好”的含义。
https://stackoverflow.com/questions/52195320
复制相似问题