2012-01-22 4 views
1

В 32-битной системе логический адрес делится на: 10 | 10 | 12 |, смещение страницы страницы, смещение таблицы страниц и смещение страницы.32-битный системный логический адрес

Так как страница в системах x86 является 4KBytes, и представлять 4K записи, log2 (4k) = 12 бит требуется, следовательно, 12. Таким образом, число битов, остальные = (32-12) = 20.

Предполагая, что мое понимание правильное, мой вопрос в том, откуда пришли 10 и 10? Почему нет 8 и 12 или что-то еще?

+0

Не все 32-разрядные процессоры используют 10-10-12, поэтому ответ «нет причин, по которым он должен был быть 10-10-12». –

+0

Да, если размер страницы отличается от того, что было бы делением. Но в приведенном выше случае 10 и 10 выбраны случайным образом или есть какая-то логика? – rgamber

ответ

1

Однородность здесь допускает меньший и простой код (и, вероятно, аппаратное обеспечение).

Если вы внимательно посмотрите на форматы каталога страниц и записей в таблице страниц, вы заметите, что они почти идентичны на x86.

Теперь, если вы сделаете один из PDEs точки обратно в PD, доступа ко всем PDEs и PTEs становится тривиальным. Я не знаю, планировалось ли это в те дни, когда разрабатывался i80386 или нет, но это, безусловно, пригодится.

+0

Спасибо за объяснение! – rgamber

Смежные вопросы