Физическая память Windows x86-24-разрядная?

Я читаю новую книгу, внутренности Windows 5 об управлении памятью (Глава 9 В разделе расширение физического адреса PAE). На странице 770 упоминается, что "32-разрядная система представляет физические адреса внутренне с 24 битами". Я полностью смущен, и я думаю, что физическая память x86 также должна быть адресована 32-разрядной, и именно поэтому система называется 32-разрядной системой.

любые идеи, что случилось?

11
задан Tom Wijsman
12.11.2022 10:06 Количество просмотров материала 2512
Распечатать страницу

3 ответа

вот более подробная информация о том, что означает загрузка /PAE из главы 7 книги" внутри Windows 2000 " Дэвида Соломона и Марка Руссиновича.

все процессоры семейства Intel x86 поскольку Pentium Pro включают в себя режим сопоставления памяти называется физическим Расширение адресов (PAE). с правильный набор микросхем, режим PAE позволяет доступ к 64 ГБ физической память. Когда x86 выполняется в PAE режим, блок управления памятью (MMU) делит виртуальное адреса в четыре полы.

MMU все еще реализует страницу каталоги и таблицы страниц, но a третий уровень, каталог страниц указатель таблицы, существует над ними. PAE режиме может адресовать больше памяти, чем стандартный режим перевода не потому, что дополнительного уровня перевода, но поскольку PDE и PTEs имеют 64-разрядную ширину а не 32-бит. Система представляет физические адреса внутренне с 24 битами, что дает х86-умение поддержка максимум 2^(24+12) байт, или 64 ГБ, памяти

редактировать: как говорит Джордж Таким образом, 24 бита номеров страниц представляют 24+12=36 битов байтовых адресов. Это расширение адреса над 32-разрядным нормальным пространством.

2
отвечен Preet Sangha 2022-11-13 17:54

Я читаю главу расширение физического адреса (PAE) в четвертом издании Windows Internals (страницы 435-437), и я не могу найти ссылку на 24 бита. Существует ссылка на 25 бит, используемых для базового адреса страницы, что означает, что адресуемое пространство становится 2 ^ (12 + 25) = 128GB. Но мы к этому еще вернемся. Сначала давайте посмотрим, как линейный адрес преобразуется в физический адрес (и это прекрасно описано в книге): линейный адрес разделяется на три кусочки:

  • 12 младших битов смещаются в пределах страницы, адресуя любой байт на странице 4Kb;
  • следующие 10 бит-это индекс записи в таблице страниц (PTE), которая содержит базовый адрес (физический адрес первого байта) страницы;
  • самые высокие 10 битов индекс показателя в таблице директории страницы (PDE), которая содержит низкопробный адрес для PTE.

каждый деталь в PTE и PDE содержит трицатидвухразрядный показатель, 20 битов которые содержат физический адрес страницы или таблицы следующего уровня соответственно. Остальные 12 бит-это флаги, описывающие страницу или таблицу (читаемые/записываемые/исполняемые и так далее). Так работали 80386, x486 и Pentium.

теперь, Pentium Pro и более новые процессоры, при работе в режиме PAE, использовать 64-разрядные записи в таблицах PDE и PTE. В этих записях можно использовать до 40 бит для кодирования базового адреса страницы в памяти. Это означает, что режим PAE теоретически может адрес 2 ^ 40 страниц (1T страниц) из 2 ^ 12 (4Kb каждая). Общая теоретическая адресного пространства 2 ^ (40 + 12) = 2 ^ 52 = 4Peta байт. Однако, операционные системы не используют все эти 40 бит. Например, Windows использует только 24 из них, что приводит к общему адресному адресному пространству 2 ^ (24 + 12) = 2 ^ 36 = 64G байт.

по-видимому, разные версии (разновидности) Windows используют разное количество бит в этой таблице, что кажется немного странным. Согласно 4-му изданию книги в вопрос, в данном случае используется 25 бит, что доводит адресуемое пространство до 128 ГБ, и это также подтверждается на этой странице. Это является источником расхождения между 4-м и 5-м изданиями, упомянутыми выше.

для более подробного объяснения того, как происходит перевод, взгляните на страницы 4-17 и 4-18 (глава 4.4.2) из Intel 64 и ia32 архитектуры руководство разработчика программного обеспечения

О, да, и система называется 32-битной не потому, что он адресует 2^32 байта. Это потому, что он работает в режиме, в котором внутренние регистры 32-битные (что не всегда верно, но достаточно близко к реальности). Если бы адресуемое пространство определяло имя ОС, то DOS была бы 20-битной ОС, а старые Mac были бы 24-битной ОС

1
отвечен Rom 2022-11-13 20:11

речь идет о сопоставлении 32-разрядного виртуального адресного пространства с 24-разрядным физическим адресным пространством. Общие сведения 20-разрядный номер виртуальной страницы преобразуется в 12-разрядный номер физической страницы, а оставшиеся биты являются смещением на страницу

0
отвечен ennuikiller 2022-11-13 22:28

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх