2017-05-14 24 views
1

我期待找到内存读取和写入CPU指令(包括读取指令来获取程序)之间的百分比,但我找不到任何这样的统计信息。可能的数量可能是1个指令读取,1个数据读取,1个数据写入。所以读取与写入相比可能是2/1。但它应该更高,我想(有点像3/1)。有关于此的任何信息?CPU读取与写入指令的统计(包括程序读取)

+0

这实际上取决于您正在执行的任务类型。总结一个数组或做一个点积是所有的读取,复制数据更像是1:1等。 – Leeor

+0

这是显而易见的,但是应该有关于桌面办公室使用的“平均”用户统计。 。至少可以想到的东西。 –

回答

2

轩尼诗和帕特森的计算机系统结构:一种定量方法提供五个SPEC CPU2000整数基准(间隙,GCC,gzip的,MCF,perlbmk)为MIPS统计:

  % loads % stores 
gap   26.5  10.3 
gcc   25.1  13.2 
gzip   20.1  5.1 
mcf   30.3  4.3 
perlbmk  28.7  16.2 

正如你所看到的,体面的经验法则是大约四分之一的指令是负载,并且有一半的商店是负载。

即使在整数工作站基准测试中,您也可以看到存在显着差异。

你从这些统计中看不到的是ISA和编译器(以及所选优化级别)的影响。复杂指令的可用性往往会减少执行的指令数量。较高编译器优化下的更多寄存器将倾向于减少内存通信量。通过编译器优化,可以减少执行的指令数量(例如,循环展开可以消除分支指令)或增加(例如,强度可以将乘法乘以恒定值,转换为移位并添加,用条件移动代替预测不佳的分支可以增加指令计数)。编译器优化还可以减少加载和存储的数量(例如,使用来自链接时代码生成或内联的扩展活跃度信息来更好地分配寄存器)或增加加载或存储的数量(例如,使用加载和操作指令可能会减少注册压力允许软件流水线循环来完全隐藏操作延迟)。

+0

谢谢,但我下载了这本书,看起来很快(700页),无法找到相关页面......你能帮忙吗? –

+0

这个想法是知道我们是否做得慢一点(例如阅读速度的一半)写入指令(当程序读取和数据读取保持不变时)会对整体速度产生什么影响。正如你所说,1/4是读取1/8写入和5/8程序。在这种情况下,系统只会延迟1/8。 –

+0

@GeorgeKourtis在第4版中,表格在附录B中(图B.27)。由于写入可以被缓冲,写入速度通常不是关键。 –