TLB转换与缓存

时间:2013-05-18 14:44:08

标签: linux memory-management operating-system virtual-memory tlb

我对操作系统中的内存管理存在疑问。我知道缓存是用于加速内存访问的临时存储位置,而TLB用于加速从虚拟地址到物理地址的转换。

  1. 现在,如果生成了虚拟内存地址,那么第一步是什么?
  2. 如果第一步是指TLB并生成物理地址,那么第二步是什么?(它是指缓存以查看该数据是否存储在缓存中)?
  3. 现代计算机是否使用TLB?
  4. cpu如何知道页表的位置?

1 个答案:

答案 0 :(得分:2)

  1. 这取决于“生成”的含义。如果你的意思是“读”,那么第一步就是要查看TLB,如果地址已被翻译,或者如果你的缓存支持虚拟地址,则要查看缓存本身以查看是否存在对应于该虚拟地址的条目(如果它属于适当的进程,则虚拟地址本身是不够的。)
  2. 如果第一步是虚拟到物理转换,则缓存用于物理地址。假设您想要读取,那么下一步确实是要查看缓存。
  3. 是的,他们这样做。大多数使用虚拟内存的处理器都使用TLB。
  4. 是的,但这取决于您的架构。例如,在Intel(x86)处理器上,页表指针存储在cr3寄存器中。