Performance 一级缓存的延迟访问时间

Performance 一级缓存的延迟访问时间,performance,assembly,x86,cpu,Performance,Assembly,X86,Cpu,通过此web链接: 它表示常春藤网桥一级缓存访问的延迟为: 一级数据缓存延迟=4个周期,用于通过指针进行简单访问 一级数据缓存延迟=具有复杂地址计算大小的访问的5个周期\u t n,*p;n=p[n]。 它们不是简单的,而是指指针大小是否与单词大小相同?因此,如果指针是32位的,它是一个32位的操作系统,那么这将是简单的,否则它将花费复杂的延迟 我只是不太理解他们对两种延迟差异的解释。完整的x86有效地址看起来像位移+基+索引*刻度,其中位移是常数,基和索引是寄存器,刻度是1、2、4或8 听起来

通过此web链接:

它表示常春藤网桥一级缓存访问的延迟为:

一级数据缓存延迟=4个周期,用于通过指针进行简单访问 一级数据缓存延迟=具有复杂地址计算大小的访问的5个周期\u t n,*p;n=p[n]。 它们不是简单的,而是指指针大小是否与单词大小相同?因此,如果指针是32位的,它是一个32位的操作系统,那么这将是简单的,否则它将花费复杂的延迟


我只是不太理解他们对两种延迟差异的解释。

完整的x86有效地址看起来像位移+基+索引*刻度,其中位移是常数,基和索引是寄存器,刻度是1、2、4或8

听起来他们把地址叫做简单的,如果只存在位移,或者可能另外还有基项,而索引*刻度肯定属于复杂范畴

更新:事实上,《英特尔优化手册》对Sandy Bridge有这样一句话:常见的加载延迟是五个周期。使用简单寻址模式时,基址加上偏移量
小于2048,负载延迟可以是四个周期。另见表2-12。寻址模式对加载延迟的影响。

完整的x86有效地址看起来像位移+基+索引*刻度,其中位移为常数,基和索引为寄存器,刻度为1、2、4或8

听起来他们把地址叫做简单的,如果只存在位移,或者可能另外还有基项,而索引*刻度肯定属于复杂范畴

更新:事实上,《英特尔优化手册》对Sandy Bridge有这样一句话:常见的加载延迟是五个周期。使用简单寻址模式时,基址加上偏移量
小于2048,负载延迟可以是四个周期。另见表2-12。寻址模式对负载延迟的影响。

我认为这是显而易见的:*p是四个周期,p[n]是五个周期。@gnasher729大小n与*p是四个周期,p[n]是五个周期有什么关系?我认为这是显而易见的:*p是四个周期,p[n]是五个周期。@gnasher729大小n与*p是四个周期,p有什么关系[n]是五个周期吗?如果段基为非零,寻址可能会更复杂。x86-64中仍然使用非零段基,例如,提供线程本地存储指针。您能用C编程结构来指导您的答案吗?位移、基、索引和缩放何时不/功能等?以及寻址如果段基为非零,则可能更复杂。x86-64中仍然使用非零段基,例如,提供线程本地存储指针。您是否能够用C编程结构来指导您的答案?位移、基、索引和缩放何时不/功能等?