use*_*112 1 cpu performance x86 assembly
在此网站链接:
http://www.7-cpu.com/cpu/IvyBridge.html
它说Ivy Bridge L1缓存访问的延迟是:
- L1数据高速缓存延迟=通过指针进行简单访问的4个周期
- L1数据高速缓存延迟=使用复杂地址计算进行访问的5个周期(size_t n,*p; n = p [n]).
而不是"简单",它们是否意味着指针大小是否与字大小相同?因此,如果指针是32位且它是32位操作系统,那么这将是"简单",否则它将花费"复杂"延迟?
我只是不太明白他们对两个延迟差异的解释.
完整的x86有效地址看起来像displacement + base + index * scale(在哪里displacement是常量,base并且index是寄存器,并且scale是1,2,4或8).
听起来他们称一个地址很简单,只要displacement它存在(或者可能是附加的 base术语),而index * scale肯定属于复杂类别.
更新:事实上,英特尔优化手册有这样的说法(但对于Sandy Bridge):常见的加载延迟是五个周期.当使用简单的寻址模式,基本加偏移小于2048时,负载延迟可以是四个周期.另见表2-12.寻址模式对负载延迟的影响.
| 归档时间: |
|
| 查看次数: |
265 次 |
| 最近记录: |