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手冊瞭解更多細節。