【问题标题】:Statistics of CPU read versus write instructions ( including reading of program )CPU读写指令统计(包括程序的读取)
【发布时间】:2017-05-14 15:45:32
【问题描述】:

我正在寻找内存读取和写入 CPU 指令(包括读取程序的读取指令)之间的百分比,但我找不到任何此类统计数据。一个合理的数量可能是 1 条指令读取、1 条数据读取、1 条数据写入。所以读取与写入相比可能是 2/1。但我想它应该更高(比如 3/1)。有这方面的资料吗?

【问题讨论】:

  • 这实际上取决于您执行的任务类型。总结一个数组或者做一个点积都是读取,复制数据更像是1:1等等。
  • 这很明显,但应该有一个关于桌面办公使用的“平均”用户统计数据,例如.至少可以想到的东西。

标签: cpu cpu-usage cpu-architecture


【解决方案1】:

Hennessey 和 Patterson 的 Computer Architecture: A Quantitative Approach 提供了 MIPS 的五个 SPEC CPU2000 整数基准测试(gap、gcc、gzip、mcf、perlbmk)的统计数据:

           % 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 和编译器(以及选择的优化级别)的影响。复杂指令的可用性将倾向于减少执行的指令数量。在更高的编译器优化下,更多的寄存器往往会减少内存流量。

通过编译器优化,执行的指令数量可以减少(例如,循环展开可以消除分支指令)或增加(例如,强度减少乘以常数为移位和加法,用条件移动替换预测不佳的分支可以增加指令计数)。编译器优化还可以减少加载和存储的数量(例如,使用来自链接时代码生成或内联的扩展活动信息更好地分配寄存器)或增加加载或存储的数量(例如,使用加载和操作指令可能会减少注册压力允许循环的软件流水线完全隐藏操作延迟)。

【讨论】:

  • 谢谢,但是我下载了这本书,快速浏览(700页),找不到相关的页面......你能帮忙......
  • 这个想法是要知道如果我们使写入指令变慢(例如读取速度的一半)写入指令(而程序读取和数据读取保持不变)将对整体速度产生什么影响。正如您所说,1/4 是读取 1/8 写入和 5/8 程序。在这种情况下,系统只会延迟 1/8。
  • @GeorgeKourtis 在第 4 版中,表格在附录 B 中(图 B.27)。由于可以缓冲写入,因此写入速度通常并不重要。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-07-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-08
  • 2010-11-05
相关资源
最近更新 更多