1
在ARM linux中,用户内核虚拟地址范围按3:1的比例分配。用户内核地址分区
但在MIPS Linux中,这通常是2:2
是否有人知道是什么促使这种设计区别?
我有一个微弱的想法,这与MIPS中TLB补充是在s/w中管理的事实有关,而内核TLB项是硬连接的确保它们永远不会遭受TLB小姐。
在ARM linux中,用户内核虚拟地址范围按3:1的比例分配。用户内核地址分区
但在MIPS Linux中,这通常是2:2
是否有人知道是什么促使这种设计区别?
我有一个微弱的想法,这与MIPS中TLB补充是在s/w中管理的事实有关,而内核TLB项是硬连接的确保它们永远不会遭受TLB小姐。
这是MIPS 32位体系结构的限制。大多数MIPS CPU上的用户模式被限制为2GB。
只有较低的2GB虚拟地址(0x0000_00000 to 0x7fff_ffff
)可在用户模式下访问。这部分地址空间被称为kuseg
。 Kuseg
地址由TLB翻译。 TLB补充是否用软件完成是无关紧要的。
内核位于从0x8000_0000 to 9fff_ffff
延伸的512MB虚拟空间中。这部分地址空间被称为kseg0
。 KSEG0地址不由TLB翻译。这些地址通过去除MSB被转换(即,虚拟地址范围0x8000_0000-9fff_ffff被硬连线到物理地址范围0x0000_0000-0x1fff_0000
)
参考MIPS手册了解更多细节。