我有以下基于ARM的SoC规范:
我想知道什么是PDE缓存?我想这和TLB有点相似,但我不确定。
答案
看起来PDE (Page )是中间表游动缓存,它确实可以与TLB分开实现。
Cortex-A15 MPCore处理器实现了专门的缓存,作为表遍历的一部分存储中间级别的转换表条目。
发布于 2014-11-15 12:49:50
这很有趣。ARM在Cortex-A15、Cortex-A57文档以及ARMv7和ARMv8编程指南中没有命名这个PDE缓存的存在。
PDE通常表示页面目录条目,因此这可能是一个专用的缓存,用于存储这些条目并在进行地址转换时写入TTBR寄存器。
ARM具有一些与ASID字段(地址空间标识符)和VMID字段(虚拟机标识符)相关联的“中间表遍历缓存”,因此,PDE缓存和中间表遍历缓存似乎是相关的。在文档中,“中间表遍历缓存”存储转换表条目的中间级别.因此,这很可能是页面目录条目。
发布于 2014-11-15 12:32:32
TLB缓存完整的翻译,它不反映内存本身的一个连贯部分(虽然不是连贯的,但如果页面映射发生变化,它可能会导致一致性的丢失,因此SW必须通过冲洗显式地强制一致性)。
但是,页面地图本身确实驻留在内存中,因此它的每个部分也可能被缓存,无论是在通用缓存层次结构中,还是在特殊的专用缓存(如PDE缓存)中。这是具体的实现,不同的CPU可能会以不同的方式决定如何这样做。
访问TLB (在任何级别上)都不需要这些数据,但是TLB遗漏将触发分页访问,它将从页面地图发出内存读取--如果它们包含页面地图数据,这些读取可能会在缓存中命中,而不必一直进入内存。
由于页面访问是一个长的、序列化的、关键的访问链(如果您有虚拟化的话,更重要),您可以想象通过缓存这些访问的延迟来优化这些访问的延迟是多么重要。因此,用于任何页面地图级别的专用缓存,这将帮助它们与正常的数据线竞争(这些数据行更频繁地破坏缓存),对于性能来说通常是非常有用的。
https://stackoverflow.com/questions/26945448
复制相似问题