让我们使用两个术语:独占和共享缓存来代替 L1、L2、L3、L4 缓存。不同的CPU系列开始在不同级别上共享缓存。在所提出的术语中,最初的问题是 - 是否可以将共享缓存分割成多个部分,每个部分将由其中一个 CPU/核心独占使用?没有明确的答案。此外,还有两个彼此相反的答案。
1)第一个也是一般性的答案:不。缓存按照设计是在硬件中管理的。软件中只有少数可访问的缓存控制杆,例如启用/禁用整个内存或定义的内存区域的缓存,应用指定的缓存刷新策略(直写/回写)。不,基本上是因为它被设计为在硬件中管理。因此,没有任何有用的界面可以允许在软件中对其进行优雅的管理。
2)第二个答案:是的。事实上,高速缓存的设计方式是,高速缓存的每一行都可以保存指定一组内存行的数据。因此,如果内存管理器提供保证,即同一个 CPU(一个 CPU/核心)独占并使用分配给同一高速缓存行的所有内存行,则内存管理器保证该高速缓存行将由该 CPU 独占使用。这是一个非常棘手的解决方法。它的好处非常有限,并且有严重的缺点:内存布局非常碎片化,缓存使用不平衡,内存管理复杂,非常依赖hadrware(详细信息可以参见“MetallicPriest”提供的论文)。
简历:理论上可行,实践上几乎不可能。