L1缓存的延迟访问时间

时间:2014-04-04 17:17:25

标签: performance assembly x86 cpu

在此网站链接:

http://www.7-cpu.com/cpu/IvyBridge.html

它表示Ivy Bridge L1缓存访问的延迟是:

  
      
  • L1数据高速缓存延迟=通过指针
  • 进行简单访问的4个周期   
  • L1数据高速缓存延迟=使用复杂地址计算进行访问的5个周期(size_t n,* p; n = p [n])。
  •   

而不是"简单",它们是否意味着指针大小是否与字大小相同?因此,如果指针是32位且它是32位操作系统,那么这将是简单的"否则它将花费"复杂"延迟?

我不太明白他们对两次延迟差异的解释。

1 个答案:

答案 0 :(得分:6)

完整的x86有效地址看起来像displacement + base + index * scale(其中displacement是常量,baseindex是寄存器,scale是1,2 ,4或8)。

如果只有displacement存在(或者可能另外是base术语),听起来他们称地址简单,而index * scale肯定属于复杂类别。< / p>

更新:实际上,英特尔优化手册有此声明(但对于Sandy Bridge):常见的加载延迟是五个周期。当使用简单的寻址模式时,基本加偏移就是 小于2048,负载延迟可以是四个周期。另见表2-12。 寻址模式对负载延迟的影响