1

我正在阅读 O'Reilly Linux Kernel 的书,在分页一章中指出的一件事是 Pentium 缓存允许操作系统将不同的缓存管理策略与每个页框相关联。因此,我知道在某些情况下,程序的空间/时间局部性非常少,并且内存访问是随机/不频繁的,以至于缓存命中的概率低于某种阈值。

我想知道这种机制今天是否真的在实践中使用?或者,当缓存相当小且不如现在高效时,它是否更像是一个必要的功能?我可以看到它对于嵌入式系统很有用,只要系统调用是必要的,我还缺少其他应用程序吗?

4

1 回答 1

1

拥有多个缓存管理策略被广泛使用,无论是通过使用 MTRR(固定/动态,如 Intel 的 PRM 中所述)、MMIO 区域还是通过特殊指令(例如流加载/存储、非临时预取等)分配整个区域。 )。用例也有很大差异,无论您是尝试将外部 I/O 设备映射到虚拟内存(并且不希望 CPU 缓存影响其一致性),还是您是否想要更好地定义直写区域某些数据库的完整性管理,或者只是想要简单的写回以最大化缓存层次结构的容量和替换效率(这意味着性能)。这些用法经常重叠(尤其是在运行多个应用程序时),因此非常需要灵活性,正如您所说 - 您不需要

顺便说一句,在可预见的未来(使用任何已知技术),缓存永远不会足够大,因为增加它们需要您将它们定位在离核心更远的地方并支付延迟。因此,缓存管理仍然并将在很长一段时间内成为性能关键系统和应用程序最重要的事情之一

于 2013-07-07T17:56:15.540 回答