【发布时间】:2010-05-11 08:25:21
【问题描述】:
在 ARM linux 中,用户内核虚拟地址范围以 3:1 的比例划分。
但在 MIPS linux 中,这通常是 2:2
有人知道造成这种设计差异的原因是什么吗?
我有一个模糊的想法,这与以下事实有关.
【问题讨论】:
标签: linux-kernel kernel paging arm mips
在 ARM linux 中,用户内核虚拟地址范围以 3:1 的比例划分。
但在 MIPS linux 中,这通常是 2:2
有人知道造成这种设计差异的原因是什么吗?
我有一个模糊的想法,这与以下事实有关.
【问题讨论】:
标签: linux-kernel kernel paging arm mips
这是 MIPS 32 位架构的限制。大多数 MIPS CPU 上的用户模式限制为 2GB。
在用户模式下只能访问较低的 2GB 虚拟地址 (0x0000_00000 to 0x7fff_ffff)。这部分地址空间称为kuseg。 Kuseg 地址由 TLB 翻译。 TLB 重新填充是否在软件中完成是无关紧要的。
内核位于从0x8000_0000 to 9fff_ffff 扩展的 512MB 虚拟空间中。这部分地址空间称为kseg0。 TLB 不翻译 Kseg0 地址。这些地址通过删除 MSB 进行转换(即虚拟地址范围 0x8000_0000-9fff_ffff 硬连线到物理地址范围0x0000_0000-0x1fff_0000)
有关详细信息,请参阅 MIPS 手册。
【讨论】: