In "latency value table": 每级缓存的延迟值是否包括上一级缓存访问?

In "latency value table": latency values of each level cache are including the previous level cache access?

对于这个问题,我将以这个table为例:

但是这个处理器的内存层次与这个问题无关!

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

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

正如我所说,请忽略处理器的确切数字,请笼统地回答这个问题。

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

通常(包括这种情况)延迟给出为停止在内存层次结构该级别的访问的延迟 (在内层失踪后)。

这是您实际可以衡量的(例如,链表不适合 L1d、不适合 L2 或其他),也是最容易考虑的。


请注意,L3 和内存延迟取决于来自其他内核的争用,以及请求必须经过多大的环形总线或网格才能从该内核到达 L3 的一部分。 。例如对于英特尔,四核“客户端”芯片比具有相同内核的大型至强芯片具有更好的 L3 和内存延迟(以及单核带宽)。

OTOH 为 L1d 和 L2 缓存提供相当硬的数字在某种程度上是合理的,因为它们是每个内核私有的。请注意,L1d 加载使用延迟并不总是 4 个周期;仅当您正在追逐指针(取消引用刚刚加载的指针)并且您使用的是简单的寻址模式时才会这样。