Caching 在;延迟值表";:每个级别缓存的延迟值是否包括上一级别缓存访问?

Caching 在;延迟值表";:每个级别缓存的延迟值是否包括上一级别缓存访问?,caching,memory,x86,processor,cpu-cache,Caching,Memory,X86,Processor,Cpu Cache,对于这个问题,我将使用此表作为示例: 但该处理器的内存层次结构与此问题无关 我的问题是,每一级缓存的延迟值是否包括上一级缓存访问。我的意思是,如果我们假设在L1未命中后仅访问L2(并且在L2未命中后仅访问L3),在我的示例中(对于L1未命中、L2未命中和L3命中),所花费的CICLE数将是~21个周期,或者是~4+12+21个周期 而且,如果答案是延迟值包括上一级缓存访问,那么RAM访问延迟值也包括吗 正如我所说的,忽略处理器的确切数字,请大致回答这个问题 我见过很多“延迟值表”,但由于这个疑

对于这个问题,我将使用此表作为示例:

但该处理器的内存层次结构与此问题无关

我的问题是,每一级缓存的延迟值是否包括上一级缓存访问。我的意思是,如果我们假设在L1未命中后仅访问L2(并且在L2未命中后仅访问L3),在我的示例中(对于L1未命中、L2未命中和L3命中),所花费的CICLE数将是~21个周期,或者是~4+12+21个周期

而且,如果答案是延迟值包括上一级缓存访问,那么RAM访问延迟值也包括吗

正如我所说的,忽略处理器的确切数字,请大致回答这个问题

我见过很多“延迟值表”,但由于这个疑问,我一直不知道如何正确解释它们。

通常(包括本例)延迟是指在内存层次结构的该级别停止的访问的总延迟(在内部级别中丢失后)

这就是您可以实际测量的内容(例如,使用不适用于L1d、不适用于L2或其他类型的链接列表),以及最容易思考的内容


请注意,L3和内存延迟取决于来自其他内核的争用,以及请求必须穿过多大的环总线或网格才能从该内核到达L3的一个片。e、 对于英特尔来说,四核“客户机”芯片的L3和内存延迟(以及单核带宽)比具有相同内核的大型Xeon要好

OTOH对于L1d和L2缓存来说,给出非常硬的数字是合理的,因为它们是每个核心私有的。请注意,L1d负载使用延迟并不总是4个周期;只有当您在跟踪指针(取消对刚加载的指针的引用)并且使用简单的寻址模式时,才会出现这种情况