2010-05-11 3 views
1

В линейке ARM linux диапазон виртуальных адресов пользователя и ядра делится на соотношение 3: 1.разделение адреса пользователя и ядра

Но в MIPS Linux, обычно это 2: 2

Кто-то знает, что мотивирует эту разницу дизайн?

У меня есть слабое представление о том, что это связано с тем, что в MIPS перезарядка TLB управляется в s/w, а записи TLB ядра являются проводными, гарантируя, что они никогда не пострадают от TLB Мисс.

ответ

3

Это ограничение 32-битной архитектуры MIPS. Пользовательский режим ограничен большинством MIPS-процессоров на 2 ГБ.

Только нижние виртуальные адреса 2GB (0x0000_00000 to 0x7fff_ffff) доступны в пользовательском режиме. Эта часть адресного пространства называется kuseg. Kuseg адреса переведены TLB. Заполнение TLB в программном обеспечении не имеет значения.

Ядро живет в виртуальном пространстве 512 МБ, которое простирается от 0x8000_0000 to 9fff_ffff. Эта часть адресного пространства называется kseg0. Адреса Kseg0 не транслируются TLB. Эти адреса преобразуются путем удаления MSB (то есть диапазон виртуальных адресов 0x8000_0000-9fff_ffff привязан к диапазону физических адресов 0x0000_0000-0x1fff_0000)

Для получения более подробной информации обратитесь к руководству MIPS.