Расширение размера страницы
Эта статья нуждается в дополнительных цитатах для проверки . ( октябрь 2012 г. ) |
В вычислительной технике расширение размера страницы ( PSE ) относится к функции процессоров x86 , которая позволяет создавать страницы , размер которых превышает традиционный размер 4 КиБ . Он был представлен в оригинальном процессоре Pentium , но был публично задокументирован Intel только с выпуском Pentium Pro . [1] Инструкцию CPUID можно использовать для определения доступности PSE на процессорах x86 . [2]
Мотивация
[ редактировать ]Представьте себе следующий сценарий: прикладная программа запрашивает блок памяти размером 1 МБ . Чтобы выполнить этот запрос, операционная система, поддерживающая подкачку и работающая на старых процессорах x86, должна будет выделить 256 страниц по 4 КиБ каждая. Для поддержки каталогов страниц и таблиц страниц требуются затраты памяти в размере 1 КиБ.
При доступе к этой памяти объемом 1 МБ каждая из 256 записей страниц будет кэшироваться в резервном буфере трансляции (TLB; кэш, который запоминает преобразования виртуального адреса в физический адрес для более быстрого поиска при последующих запросах к памяти). Загромождение TLB, возможно, является одним из самых больших недостатков наличия нескольких записей страниц для того, что могло бы быть выделено в одном блоке памяти. Если TLB заполняется, то запись TLB должна быть освобождена, каталог страниц и таблицы страниц должны быть «пройдены» в памяти и, наконец, к памяти будет осуществлен доступ, и новая запись будет перенесена в TLB. . Это серьезное снижение производительности и, возможно, было главной причиной для расширения архитектуры x86 за счет увеличения размеров страниц.
PSE допускает существование страниц размером 4 МБ вместе со страницами размером 4 КиБ. Описанный ранее запрос на 1 МБ можно легко выполнить с помощью одной страницы размером 4 МБ, и для него потребуется только одна запись TLB. Однако недостатком использования страниц большего размера является внутренняя фрагментация .
Операция
[ редактировать ]В традиционном 32-битном защищенном режиме процессоры x86 используют двухуровневую схему трансляции страниц, где регистр управления CR3
указывает на один каталог страниц длиной 4 КиБ , который разделен на 1024 × 4-байтовые записи, которые указывают на таблицы страниц длиной 4 КиБ , аналогично состоящие из 1024 × 4-байтовых записей, указывающих на страницы длиной 4 КиБ.
Включение PSE (путем установки бита 4 PSE системного регистра). CR4
) меняет эту схему. Записи в каталоге страниц имеют дополнительный флаг в бите 7 с именем PS
(для размера страницы ). Этот флаг игнорировался без PSE, но теперь запись каталога страниц с PS, установленным в 1, указывает не на таблицу страниц, а на одну большую страницу размером 4 МБ. Запись каталога страниц с PS, установленным в 0, ведет себя так же, как и без PSE.
новые возможности PSE-36 Если в ЦП доступны , как это проверяется с помощью инструкции CPUID , то в записи каталога страниц, указывающей на большую страницу, используются еще 4 бита в дополнение к обычным 10 битам. Это позволяет разместить большую страницу в 36-битном адресном пространстве.
Если используется расширение физического адреса (PAE), размер больших страниц уменьшается с 4 МБ до 2 МБ, а PSE всегда включен, независимо от бита PSE в CR4
.
Ссылки
[ редактировать ]- ^ Т. Шэнли (1998). Системная архитектура Pentium Pro и Pentium II . Аддисон-Уэсли Профессионал. п. 439 . ISBN 978-0-201-30973-7 .
- ^ Руководство разработчика программного обеспечения для архитектур Intel 64 и IA-32, том 3A . Корпорация Интел . Август 2007 г., стр. 3–26–3–28.