The private L1i/d caches are always part of each core, not on a separate clock, in modern CPUs1. L1d is very tightly coupled with load execution units, and the L1dTLB. This is pretty universally true across architectures. ().
在具有每核专用 L2 缓存的 CPU 上,它还part of核心,在同一频域。通过保持时序(在核心时钟周期内)固定,并且不需要任何异步逻辑来跨时钟域传输数据,这可以使 L2 延迟保持在非常低的水平。这在 Intel 和 AMD x86 CPU 上是正确的,我假设大多数其他设计也是如此。
脚注 1:几十年前,即使在片上拥有 L1 缓存对于晶体管预算来说也是一种延伸,有时只有比较器和标签在片上,因此该部分可以在开始设置对数据的访问时快速运行在外部 SRAM 上。 (或者,如果不是外部的,有时在同一塑料/陶瓷封装中使用单独的芯片(硅片),因此电线可能非常短,并且不会作为可能需要 ESD 保护等的外部引脚暴露出来)。
或者例如早期的奔腾II以半核时钟速度运行其片外/封装内 L2 缓存(低于 PPro 中的全速)。 (但都是相同的“频域”;这是在用于电源管理的 DVFS 动态频率/电压之前的情况。)L1i/d 像今天一样紧密集成到核心中;你必须追溯到更远的地方才能找到具有片外 L1 的 CPU,就像早期经典的 RISC CPU 一样。
这个答案的其余部分主要是关于 Intel x86 CPU 的,因为从你提到的 L3 切片来看,我认为这就是你所想象的。
L3 缓存(切片)怎么样,因为它们现在是非包容性的并且在所有核心之间共享?
在主流 Intel CPU(P6/SnB 系列)中,只有 Skylake-X 具有非包容性 L3 缓存。自 Nehalem 以来,英特尔一直使用包容性末级缓存,因此其标签可以成为窥探过滤器。看intel core i7处理器使用哪种缓存映射技术?。但SKX从环变成了网,并且使L3非包容/非排他。
在 Intel 台式机/笔记本电脑 CPU(双/四)上,所有内核(包括其 L1+L2 缓存)都处于相同的频域。非核心(L3 缓存 + 环形总线)位于单独的频域中,但我认为通常以核心的速度运行。如果 GPU 繁忙但核心都空闲,它的时钟可能会高于核心。
即使 CPU 降频,内存时钟仍保持高电平。 (不过,如果 CPU 决定将时钟频率从 4.0 GHz 降低到 2.7 GHz,单核带宽可能会受到影响,因为它在唯一的活动核心上运行受内存限制的代码。单核带宽受 max_concurrency / 延迟的限制,而不是受 DRAM 带宽本身的限制如果您有双通道 DDR4 或 DDR3。为什么 Skylake 在单线程内存吞吐量方面比 Broadwell-E 好很多?我认为这是因为非核心延迟增加。)
The 维基百科非核心文章提到将其与核心分开超频以减少 L3/内存延迟。
在 Haswell 和后来的 Xeon (E5 v3) 上,非核心(环形总线和 L3 切片)和每个单独的核心都有单独的频域。(来源:弗兰克·丹尼曼的NUMA 深入探讨第 2 部分:系统架构。它有一个拼写错误,说 Haswell (v4),而 Haswell 实际上是 Xeon E[357]-xxxx v3。但其他来源如这篇论文量子化学应用中核心和非核心频率缩放模式的比较 GAMESS确认 Haswell 确实具有这些功能。非核心频率缩放 (UFS) 和每核心功耗状态 (PCPS) 都是 Haswell 中的新增功能。
在至强上beforeHaswell,非核心以该软件包上当前最快核心的速度运行。在双插槽 NUMA 设置上,这可能会严重成为瓶颈other套接字,通过使其缓慢跟上窥探请求。请参阅 John“带宽博士”McCalpin 的帖子这个英特尔论坛主题:
在 Xeon E5-26xx 处理器上,“uncore”(包含 L3 缓存、环形互连、内存控制器等)的运行速度不高于最快的核心,因此“package C1E state”会导致 uncore也降至 1.2 GHz。在此状态下,芯片需要更长的时间来响应 QPI 探听请求,从而增加了有效local另一个芯片上的处理器和 DMA 引擎看到的内存延迟!
...在我的 Xeon E5-2680 芯片上,“package C1E”状态增加local另一个芯片上的延迟几乎增加了 20%
“封装 C1E 状态”还会将位于“空闲”芯片上的内存的持续带宽减少高达约 25%,因此任何 NUMA 放置错误都会产生更大的性能损失。
Dr. Bandwidth 运行了一个简单的无限循环,固定在另一个插槽的核心上以保持时钟正常,并且能够测量差异。
支持四插槽的 Xeon (E7-xxxx) 在每个插槽中都有一个小型探听过滤器缓存。双插槽系统只是通过每个探听请求向另一个插槽发送垃圾邮件,即使它们在 L3 未命中后访问自己的本地 DRAM,也使用 QPI 带宽的很大一部分。
我认为即使所有核心都空闲时,Broadwell 和 Haswell Xeon 也可以保持其非核心时钟较高,这正是为了避免这个瓶颈。
Bandwidth 博士表示,他在 Haswell Xeon 上禁用了包 C1E 状态,但这可能没有必要。他还发布了一些东西关于使用非核心性能计数器来测量非核心频率以了解您的 CPU 真正在做什么,以及关于可能影响非核心频率决策的 BIOS 设置。
更多背景:我发现https://www.anandtech.com/show/8423/intel-xeon-e5-version-3-up-to-18-haswell-ep-cores-/4关于一些更改,例如新的监听模式选项(在环形总线上跳跃将监听发送到另一个核心),但它没有提到时钟。