gpt4 book ai didi

cpu - 现代 Intel CPU L3 缓存是如何组织的?

转载 作者:行者123 更新时间:2023-12-01 19:42:19 25 4
gpt4 key购买 nike

考虑到 CPU 现在是多核的,并且有自己的 L1/L2 缓存,我很好奇 L3 缓存是如何组织的,因为它是由多个核心共享的。我可以想象,如果我们有 4 个核心,那么 L3 缓存将包含 4 页的数据,每个页面对应于特定核心正在引用的内存区域。假设我的观点是正确的,那么就目前情况而言吗?例如,它可以将每个页面划分为子页面。这样,当多个线程在同一核心上运行时,每个线程都可以在其中一个子页面中找到其数据。我只是突然想到这个,所以我非常有兴趣了解幕后真正发生的事情。谁能分享他们的见解或为我提供一个链接来治愈我的无知?

提前非常感谢。

最佳答案

单插槽芯片中有单个(切片)L3 缓存,以及多个 L2 缓存(每个真实物理核心一个)。L3缓存以64字节大小的段(缓存线)缓存数据,有特殊的Cache coherence protocol L3 和不同的 L2/L1 之间(以及 NUMA/ccNUMA 多插槽系统中的多个芯片之间);它跟踪哪个缓存行是实际的,哪个缓存行在多个缓存之间共享,哪个缓存行刚刚被修改(并且应该从其他缓存中失效)。一些协议(protocol)(缓存行可能的状态和状态转换):https://en.wikipedia.org/wiki/MESI_protocol , https://en.wikipedia.org/wiki/MESIF_protocol , https://en.wikipedia.org/wiki/MOESI_protocol

在较旧的芯片(Core 2 时代)中,缓存一致性为 snooped在共享巴士上,现在在 directory 的帮助下进行检查.

在现实生活中,L3 不仅仅是“单个”,而是被分成多个片,每个片都有高速接入端口。有一些基于物理地址选择片的方法,允许多核系统在每个时刻进行多次访问(每次访问都会由 undocumented method 定向到某个片;当两个核使用相同的物理地址时,它们的访问将被由相同切片或将执行缓存一致性协议(protocol)检查的切片提供服务)。关于L3缓存片的信息在几篇论文中被颠倒了:

使用最新的芯片,程序员能够在应用程序“缓存分配技术”(v4 系列)之间对 L3 缓存进行分区:https://software.intel.com/en-us/articles/introduction-to-cache-allocation-technology https://software.intel.com/en-us/articles/introduction-to-code-and-data-prioritization-with-usage-models https://danluu.com/intel-cat/ https://lwn.net/Articles/659161/

关于cpu - 现代 Intel CPU L3 缓存是如何组织的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28891349/

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