Core-i3 / i7中H / W预取器的实现逻辑

时间:2015-08-13 18:41:36

标签: x86 cpu-architecture prefetch

我在英特尔酷睿i3 / i7中有两个与H / W预取器相关的问题。

  1. 一旦Core-i3 / i7中的H / W预取器检测到固定步幅,预取了多少行内存?它只是下一个索引还是多个缓存行?
  2. 例如,如果我访问0,2,4,6索引,是否只会预取第8个索引或8,10个或更多索引?

    1. 当没有固定步幅时(例如,随机访问数据时)Core i3 / i7如何设置预取数据?
    2. 当我以随机顺序访问索引时,如下4,8,72,16,32,64,54,34,68,62,50,26,52,30,60,46,18,36,70,66,58,42,10,20,40,6,12,24,48,22,44,14,28,56,38,2,0

      那么H / W预取器如何能够预取所有以下索引

      18 22 28 34 38 44 50 56 58 72

      我试图了解H / W预取器的行为。

      我听说过一些前进或后退步幅探测器,但无法理解这些前进或后退步幅探测器如何存储已经访问的索引以及它们如何计算以预取下一个缓存线或何时激活(在第一次或第二次失误后或更多)。

      要调查的任何链接或想法都会有很大的帮助。

      我发布了另一个问题How to defeat hardware prefetcher in core i3/i7 in linux,但是这个概念适用于Core2Duo,而不适用于Core-i3 / i7。

      任何英特尔文档或其他来源,我都可以理解H / W预取器实现的逻辑,这将是一个很大的帮助。

0 个答案:

没有答案