除了asid不同之外,是否可以用相同的虚拟地址和物理地址映射两个条目?
最佳答案
http://pages.cs.wisc.edu/~remzi/OSTEP/vm-tlbs.pdf
一个真正的TLB条目
最后,让我们简单地看看一个真正的tlb。这个例子来自mips
R4000[H93],一种使用软件管理的TLB的现代系统;稍微
简化的MIPS TLB条目如图19.4所示。
mips r4000支持32位的地址空间和4kb的页面。因此,
我们期望在典型的虚拟地址中有20位vpn和12位偏移量。
但是,正如您在tlb中看到的,只有19位用于
vpn;事实证明,用户地址只能来自一半的地址
空间(剩下的留给内核)因此只有19位vpn
是必要的。vpn转换为最多24位物理帧号
(pfn),因此可以支持高达64gb(物理)主系统
内存(2^24 4KB页)。
MIPS TLB中还有一些其他有趣的部分。我们看到一个全球性的
位(g),用于进程间全局共享的页。
因此,如果设置了全局位,则忽略ASID。我们也看到了8位
ASID,操作系统可以使用它来区分地址空间(如
如上所述)。有一个问题要问你:如果操作系统存在
一次运行的进程是否超过256个(2^8)?最后,我们看到3
一致性(C)位,它决定硬件如何缓存页
(超出这些注释范围的一点);当
该页已写入(稍后我们将看到它的用法);有效位
它告诉硬件条目中是否存在有效的翻译。
还有一个页面掩码字段(未显示),它支持多个页面
大小;我们稍后将看到为什么有更大的页面可能有用。最后,
一些64位未使用(图中为灰色阴影)。
是的,根据操作系统教科书(操作系统:三个简单的部分),对于一些MIPS系统(例如,MIPS R4000),他们确实有这个方案。例如,两个进程之间共享的操作系统的全局页面符合您的描述。
关于linux - 在MIPS TLB中,除了ASID字段外,两个条目是否可能相同?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28506358/