缓存性能,缩短执行时间

时间:2012-03-16 12:37:06

标签: architecture cpu

我有以下情况:

  

一台机器每个指令平均需要c个周期而没有   考虑记忆失速,       所有未命中都有未命中罚金。设i和d分别为指令缓存       具有n条指令和f存储器引用的程序的未命中率和数据高速缓存未命中率       每条指令。假设命中时间不是确定缓存性能的因素。

我已经知道运行带有内存档的程序所需的周期数是n(c + ip + fdp)。

下一部分说:

  

如果我们想通过一个因素来改善该程序的执行时间   k,多少钱       我们需要减少每条指令的周期数吗?       改善执行时间的另一种方法是减少机器的循环时间。       如果我们想要将执行时间提高k倍,我们需要多少       改善周期时间?

我有n(c + ip + fdp)/ k所以我认为第一部分答案必须是1 / k,但这似乎太明显了。当然,如果循环时间为t,则n(c + ip + fdp)* t给出总执行时间,因此它必须再次为1 / k?

由于

1 个答案:

答案 0 :(得分:1)

对于第一部分,我不相信你可以改变c以外的任何东西来获得所需的加速;您的解决方案假设您正在加速缓存未命中。

第二部分有一个类似的问题:加快​​循环时间并不一定会减少缓存惩罚,因此当你减少循环时间时,p的值会增加(为了保持时间不变,你需要更多的这些较短的周期)。

如您所见,这假设p是以周期来衡量的。