首页 文章

内核可以管理在TLB条目上写入的进程ID吗?

提问于
浏览
2

我发现TLB包含每个进程的PID,这是出于性能原因,这意味着将每个进程的VA保留在TLB中的PA映射中,以节省上下文切换成本 . 所以,我的问题是内核可以操纵TLB中的PID条目吗?

我很好奇,因为我听说TLB是MMU内部维护的缓存 . 请给我回答:)

*我假设x86 :)

1 回答

  • 3

    Intel® 64 and IA-32 Architectures Software Developer's Manual

    进程上下文标识符(PCID)进程上下文标识符(PCID)是逻辑处理器可以缓存多个线性地址空间的信息的工具 . 当软件切换到具有不同PCID的不同线性地址空间时,处理器可以保留高速缓存的信息(例如,通过加载CR3;有关细节,请参见第4.10.4.1节) . PCID是12位标识符 . ...当逻辑处理器在TLB(第4.10.2节)和分页结构缓存(第4.10.3节)中创建条目时,它将这些条目与当前PCID相关联 . 当使用TLB和分页结构高速缓存中的条目来转换线性地址时,逻辑处理器仅使用与当前PCID关联的条目

    相关:Does Linux use x86 CPU's PCID feature for TLB? If not, why?

相关问题