2010-05-11 4 views
1

ARM Linux에서 사용자 커널 가상 주소 범위는 3 : 1 비율로 나뉩니다. 사용자 커널 주소 부분

그러나 MIPS 리눅스에서

이 보통 2 : 2

누군가가이 디자인의 차이를 동기를 알고 있나요?

이것은 MIPS에서 TLB 리필이 s/w로 관리되고 커널 TLB 항목이 일종의 유선이며 TLB를 결코 겪지 않을 것이라는 사실과 관련이있다는 희미한 생각이 있습니다 미스.

답변

3

이것은 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 설명서를 참조하십시오.