gpt4 book ai didi

caching - 当 L1 未命中与 L2 访问有很大不同时……与 TLB 相关?

转载 作者:行者123 更新时间:2023-12-04 11:13:29 26 4
gpt4 key购买 nike

我一直在对一些算法运行一些基准测试,并分析它们的内存使用情况和效率(L1/L2/TLB 访问和未命中),其中一些结果对我来说非常有趣。

考虑到包含缓存层次结构(L1 和 L2 缓存), 的数量不应该是L1 缓存未命中 的数量一致L2缓存访问 ?我发现的一种解释与 TLB 相关:当虚拟地址未映射到 TLB 时,系统会自动跳过某些缓存级别中的搜索。
这看起来合法吗?

最佳答案

首先,包容性缓存层次结构可能并不像您想象的那么普遍。例如,我认为当前的任何英特尔处理器(不是 Nehalem,不是 Sandybridge,可能是 Atoms)都没有包含在 L2 中的 L1。 (不过,Nehalem 和 Sandybridge 也可能将 L1 和 L2 都包含在 L3 中;使用英特尔当前的术语,LLC 中的 FLC 和 MLC。)

但是,这并不一定重要。在大多数缓存层次结构中,如果您有一个 L1 缓存未命中,那么该未命中可能会在 L2 中查找。是否包容都没有关系。否则,您必须有一些东西告诉您您关心的数据(可能)不在 L2 中,您不需要查看。尽管我设计了执行此操作的协议(protocol)和内存类型 - 例如一种仅缓存在 L1 而不是 L2 的内存类型,对于图形之类的东西很有用,在这种情况下,您可以获得在 L1 中组合的好处,但是您要重复扫描大型阵列,因此在 L2 中缓存不是一个好主意.我目前不知道有人在运送它们。

无论如何,以下是 L1 缓存未命中数可能不等于 L2 缓存访问数的一些原因。

你没有说你在什么系统上工作——我知道我的答案适用于 Intel x86,比如 Nehalem 和 Sandybridge,它们的 EMON 性能事件监控允许你计算 L1 和 L2 缓存未命中等。它可能会也适用于任何具有缓存未命中硬件性能计数器的现代微处理器,例如 ARM 和 Power 上的那些。

大多数现代微处理器不会在第一次缓存未命中时停止,而是继续尝试做额外的工作。这通常被称为投机执行。此外,处理器可能是有序的或无序的,但尽管后者可能会给您带来更大的 L1 未命中次数和 L2 访问次数之间的差异,但这不是必需的 - 您甚至可以在-订单处理器。

简短回答:许多这些推测性内存访问将访问相同的内存位置。它们将被压扁和组合。

性能事件“L1 缓存未命中”可能是[*] 计算未命中 L1 缓存的(推测性)指令的数量。然后分配一个硬件数据结构,在英特尔称为填充缓冲区,在其他一些地方分配一个未命中状态处理寄存器。同一高速缓存线的后续高速缓存未命中将错过 L1 高速缓存但命中填充缓冲区,并将被压缩。只有其中一个,通常是第一个将被发送到 L2,并计为 L2 访问。)

顺便说一下,可能有一个性能事件:Squashed_Cache_Misses。

也可能有性能事件 L1_Cache_Misses_Retired。但这可能会低估,因为推测可能会将数据拉入缓存,而在退休时可能永远不会发生缓存未命中。

([*] 顺便说一句,当我在这里说“可能”时,我的意思是“在我帮助设计的机器上”。几乎可以肯定。我可能需要检查定义,查看 RTL,但如果没有。几乎可以保证。)

例如。假设您正在访问字节 A[0], A[1], A[2], ... A[63], A[64], ...

如果 A[0] 的地址等于 0 模 64,则 A[0]..A[63] 将在同一缓存线中,在具有 64 字节缓存线的机器上。如果使用这些的代码很简单,很可能所有这些都可以投机发布。 QED:64 次推测内存访问,64 次 L1 缓存未命中,但只有 1 次 L2 内存访问。

(顺便说一句,不要指望这些数字非常干净。每个 L2 访问您可能不会获得 64 次 L1 访问。)

还有一些可能性:

如果 L2 访问的次数大于 L1 缓存未命中的次数(我几乎从未见过,但有可能),您可能会遇到使硬件预取器混淆的内存访问模式。硬件预取器尝试预测您将需要哪些缓存行。 如果预取器预测得不好,它可能会获取您实际上并不需要的缓存行。 通常情况下,计算 Prefetches_from_L2 或 Prefetches_from_Memory 的性能会有所不同。

一些机器可能会在它们被发送到 L2 之前取消导致 L1 缓存未命中的推测访问。但是,我不知道英特尔这样做。

关于caching - 当 L1 未命中与 L2 访问有很大不同时……与 TLB 相关?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8475118/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com