页面 Table 和缓存命中率

Page Table and Cache Hit Rates

我做了一个关于页面 table 和多级页面 table 所需的寄存器数量的 post 并且发现每一页 table,无论该级别,只需一个寄存器即可访问页面顶部table。但是我的第二个问题没有得到解答

处理器中的高速缓存 (L1-L3) 将如何影响对页面 table 的内存引用访问?大多数人会错过还是命中?为什么会这样?有人告诉我,这个话题可能会根据所使用的架构有不同的答案,所以也许一般的答案就可以了。

我试图找到这方面的参考资料,但找不到。可以说我真的是OS.

的初学者

link 我之前的问题:

编辑:由于 TLB,可以减少对页面 Table 的内存引用的访问,从而使其获得更多的命中。这是正确的吗?请帮忙:D

基本思想(没有任何类型的缓存)是当你访问内存时 CPU:

  • 找到最高级别的页面 table(例如从虚拟地址和控制寄存器)并从 RAM

    中获取最高级别​​的页面 table 条目
  • 找到下一级页面table(例如从虚拟地址和最高级别页面table条目)并从中获取下一级页面table条目内存;依此类推(对页面 table 的每个级别重复)直到 CPU 到达最低级别的页面 table 条目。

  • 找到物理地址(例如从虚拟地址和最低级别页面table条目),并从该物理地址获取数据

这显然很慢。为了加快速度,有多个“类似缓存的东西”:

a) 缓存本身。例如。 CPU 可以从缓存中获取而不是从 RAM 中获取任何内容(包括当 CPU 获取页面 table 条目时)。请注意,通常有多个级别的缓存(例如 L1 数据缓存、L2 统一缓存......),这可能适用于某些缓存而不适用于其他缓存(例如 CPU 不会获取页面 table 条目来自“L1 指令缓存”,但可能会从“L3 统一缓存”中获取它们。

b) TLB(翻译后备缓冲器);它主要缓存最低级别的页面 table 条目。这允许跳过几乎所有的工作(如果有“TLB 命中”)。

c) 更高级别的翻译缓存。现代 CPUs 有额外的缓存,可以缓存页面 table 层次结构的中间级别(例如,如果有 4 个或更多级别,而不是最高或最低,则可能是第 3 级页面 table 条目级条目)。这些通过允许跳过一些工作来减少“TLB 未命中”(如果有“更高级别的翻译命中”)的成本。