【问题标题】:TLB translation vs cacheTLB 翻译与缓存
【发布时间】:2013-05-13 14:15:45
【问题描述】:

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

  1. 现在如果生成虚拟内存地址,第一步是什么?
  2. 如果第一步是引用TLB并生成物理地址,那么第二步是什么?(是否引用缓存来查看数据是否存储在缓存中)?
  3. 现代计算机是否使用 TLB?
  4. cpu怎么知道页表在哪里?

【问题讨论】:

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


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

    【讨论】:

      猜你喜欢
      • 2012-02-18
      • 2016-12-05
      • 2012-11-11
      • 2012-05-13
      • 2016-05-04
      • 1970-01-01
      • 1970-01-01
      • 2014-10-22
      • 1970-01-01
      相关资源
      最近更新 更多