我在英特尔酷睿i3 / i7中有两个与H / W预取器相关的问题。
例如,如果我访问0,2,4,6索引,是否只会预取第8个索引或8,10个或更多索引?
当我以随机顺序访问索引时,如下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预取器实现的逻辑,这将是一个很大的帮助。