Pae что это
Перейти к содержимому

Pae что это

  • автор:

Pae что это

Physical Address Extension (PAE) — режим работы встроенного блока управления памятью x86-совместимых процессоров, в котором используются 64-битные элементы таблиц страниц (из которых для адресации используются только 36 бит), c помощью которых процессор может адресовать 64 ГБ физической памяти (вместо 4 ГБ, адресуемых при использовании 32-разрядных таблиц), хотя каждая задача (программа) всё равно может адресовать максимум до 4 ГБ виртуальной памяти [1] . Также, в новых моделях процессоров в PAE-режиме старший бит элемента таблицы страниц отвечает за запрет исполнения кода в странице, что затрудняет атаку по методу переполнения буфера.

Впервые расширение появилось в процессоре Pentium Pro. Для использования 36-разрядной адресации памяти необходима поддержка расширения физических адресов на аппаратном уровне (можно определить по команде CPUID) и программное включение режима PAE в ОС.

Варианты применения

  • PAE позволяет использовать более 4GB оперативной памяти в 32-битной ОС
  • выделить память, урезанную 32-битной ОС — стандартным резервированием адресного пространства под драйверные аппаратные адреса — под RAM drive, обычно это от 0.5 до 0.9 GB из установленных 4GB(не говоря уже больше) — в зависимости от ОС и её версии
  • задействуя замену драйвера ОС кэширования файлов, выделить вышеуказанный потерянный объём памяти под ОС файл кэш

Проблемы

  • Из-за увеличения количества страничных уровней [2] , система начинает тратить больше времени при обращении к памяти. Таким образом, если типичный объем используемый программой памяти незначительно больше 2GB, то работа без PAE может быть эффективнее.
  • Некоторые драйверы [3] несовместимы с режимом PAE
  • — кроме некоторых версий Linux, начиная с ядра ~2.6.2, где это стоит вручную выключать для задания нормальной скорости работы ПК.
  • В 32-битной windows режим включается автоматически когда система поддерживает PAE (Physical Address Extension) и присутствует более 4 Гб памяти, и если не задать «/nopae» в boot.ini который запрещает загрузчику (NTLDR) использовать PAE-версию ядра.
  • Включение режима PAE необходимо для использования технологии DEP в 32-хбитных версиях ОС windows. Т.е. этот режим включается автоматически независимо от наличия «/nopae» — если пользователь включил запрет исполнения кода в страницах памяти (NX)

Поддержка PAE в различных ОС

Windows

Начиная с Windows XP Service Pack 2, по умолчанию, на процессорах с поддержкой технологий no-execute (NX) или execute-disable (XD) система использует PAE для возможности использования DEP [4]

В 32-битных клиентах Microsoft Windows (начиная с Windows XP SP2) использование 36-битного PAE включается ключом /PAE в файле boot.ini, однако, максимальный физический адрес доступного операционной системе ОЗУ ограничен программно на уровне ядра [5] . В Windows XP это ограничение составляет 4 ГБ, 32-разрядный Windows Server 2003 Enterprise Edition поддерживает до 64 ГБ. Существуют программы, позволяющие обойти ограничение на доступную память, но их использование является нарушением лицензионного соглашения Microsoft. В случае 4 ГБ ОЗУ, память можно использовать в Windows XP почти полностью, переместив системные области адресного пространства выше 4 ГБ, такую функцию поддерживают некоторые версии BIOS. Тем не менее, согласно заявлениям Microsoft, введение 4 ГБ ограничения адресного пространства связано с отсутствующей или плохой поддержкой 36-битного адресного пространства некоторыми драйверами устройств.

Одним из пунктов минимальных системных требований Windows 8 является обязательная поддержка процессором PAE.

Другой возможностью для использования более чем 4 гигабайт памяти является интерфейс Address Windowing Extensions.

Linux

В ядре Linux поддержка PAE имеется начиная с версии 2.3.23. Оно поддерживает до 64 Гб ОЗУ, но требует от процессора поддержки PAE. Также для включения PAE необходимо пересобрать ядро с параметром PAE. Поскольку это не всегда удобно, большинство дистрибутивов включили в свои репозитории готовые ядра с этим параметром. Также последние версии некоторых дистрибутивов поставляются с ядром с уже включенной поддержкой PAE.

FreeBSD

FreeBSD поддерживает PAE: в линейке 4.x версий — начиная с 4.9, в линейке 5.x версий — начиная с 5.1, все 6.x и более поздние. Не все драйверы поддерживают более 4 Гб ОЗУ и поэтому могут работать некорректно.

Mac OS X

В Mac OS X режим PAE включён по умолчанию при использовании 32-разрядного ядра.

Solaris

Solaris поддерживает PAE, начиная с версии 7. Однако драйверы сторонних разработчиков могут работать некорректно.

См. также

Примечания

  1. часть адресного пространства, обычно от 0.9 до 2 ГБ резервируется под нужды ОС и недоступны приложению, см en:3 GB barrier, [1]
  2. Physical Address Extension
  3. Например, драйвер Microsoft Device Emulator
  4. The RAM reported by the System Properties dialog box and the System Information tool is less than you expect in Windows Vista or in Windows XP Service Pack 2 or later version
  5. Licensed Memory in Windows Vista (англ.)

Ссылки

  • Physical Address Extension — PAE Memory and Windows (англ.)
  • Physical Address Extension
  • Поддержка памяти большого размера в Windows Server 2003 и Windows 2000
  • PAE в Ubuntu (англ.)
  • Расширения архитектуры x86
  • Защита памяти
  • Виртуальная память

Wikimedia Foundation . 2010 .

Полезное

Смотреть что такое «PAE» в других словарях:

  • PAE — or PAE may refer to: Contents 1 Science and technology 2 People 3 Places … Wikipedia
  • PAE — ist die Abkürzung für: Flughafen Everett (Paine Field) im US Bundesstaat Washington (IATA Code) Physical Address Extension ist eine technische Erweiterung aus dem Gebiet der Rechnerarchitektur Personal Accidents and Effects bei Autovermietungen… … Deutsch Wikipedia
  • Pae — ist die Abkürzung für: Flughafen Everett (Paine Field) im US Bundesstaat Washington (IATA Code) Physical Address Extension ist eine technische Erweiterung aus dem Gebiet der Rechnerarchitektur Personal Accidents and Effects bei Autovermietungen… … Deutsch Wikipedia
  • PAE — es un acrónimo que puede significar: Pequeño Aparato Electrodoméstico Píldora Anticonceptiva de Emergencia Proceso de Atención de Enfermería Producción Agroalimentaria Ecológica Portal de Administración Electrónica Prueba de Aptitud Escolar… … Wikipedia Español
  • pae|an — «PEE uhn», noun. 1. a song of praise, thanksgiving, joy, or triumph: »Loud paeans chanted through the valley announced the approach of the victors (Herman Melville). He ended with a fervent paean to the country he had served so long (Newsweek).… … Useful english dictionary
  • pae|o|ny — «PEE uh nee», noun, plural nies. Especially British. peony … Useful english dictionary
  • pae|on — «PEE uhn», noun. (in Greek and Latin verse) a foot of four syllables, one long and three short. The long syllable may come anywhere in the foot. ╂[< Latin paeon < Greek pei , pai paean] … Useful english dictionary
  • pae — gym·no·pae·dia; hy·pae·thral; pae·dog·a·mous; pae·dog·a·my; pae·do·genesis; pae·do·ge·net·ic; pae·do·mor·phic; pae·do·mor·phism; pae·do·mor·pho·sis; pae·do·mor·phy; pae·do·tribe; pae·nu·la; pae·on; pae·o·nia; pae·o·ni·a·ce·ae; pae·o·ny; pae·pae;… … English syllables
  • PAE — Cette page d’homonymie répertorie les différents sujets et articles partageant un même nom. Sigles d’une seule lettre Sigles de deux lettres > Sigles de trois lettres Sigles de quatre lettres … Wikipédia en Français
  • PAE — abbr. Physical Address Extension (Intel, Pentium, PAE) … United dictionary of abbreviations and acronyms
  • Обратная связь: Техподдержка, Реклама на сайте
  • �� Путешествия

Экспорт словарей на сайты, сделанные на PHP,
WordPress, MODx.

  • Пометить текст и поделитьсяИскать в этом же словареИскать синонимы
  • Искать во всех словарях
  • Искать в переводах
  • Искать в ИнтернетеИскать в этой же категории

Что такое PAE, NX и SSE2?

Расширение физических адресов (PAE), разряд защиты выполнения процессора (NX) и поддержка расширений SIMD 2 (SSE2) являются функциями процессора, которые необходимы для работы Windows 8.1.

  • PAE позволяет 32-разрядным процессорам работать с более чем 4 ГБ физической памяти в соответствующих версиях Windows и служит необходимым условием для технологии NX.
  • Технология NX помогает защищать компьютер от атак со стороны вредоносных программ.
  • SSE2 является стандартным набором инструкций для процессоров, который во все большей мере используется приложениями и драйверами сторонних поставщиков.

Если ваш компьютер не поддерживает PAE, NX и SSE2, вы не сможете установить Windows 8.1. При скачивании Windows 8.1 из Магазина или запуске помощника по обновлению мы дадим вам знать, если ваш процессор не поддерживает PAE и SSE2, если он может не поддерживать NX или если технология NX отключена в настройках BIOS компьютера. Если NX представляется отключенной, установщик попытается включить ее во время установки; а если это невозможно, то он возвратит ваш компьютер к текущей операционной системе.

Как включить технологию NX в BIOS

Чтобы проверить, поддерживает ли процессор технологию NX, или включить ее, если она отключена, перейдите в параметры BIOS компьютера. Способы открытия BIOS различаются в зависимости от изготовителя компьютера. На большинстве компьютеров пользователь должен нажать одну клавишу (например, F2, F12, DEL или ESC) или сочетание клавиш сразу же после включения компьютера, но перед загрузкой Windows. Подробнее см. в документации к компьютеру или на веб-сайте его изготовителя.

Войдя в BIOS, найдите параметры NX или XD на вкладке Security (Безопасность), чтобы включить поддержку технологии NX. Если в параметрах BIOS компьютера поддержка NX отсутствует, свяжитесь с изготовителем компьютера, чтобы получить сведения об обновлении BIOS. Чтобы получить помощь в доступе к параметрам BIOS на вашем компьютере или во включении технологии NX, обратитесь в службу технической поддержки.

Автор статьи : Microsoft, help

  1. Системные требования ОС Windows 8
  2. HTC представил первые смартфоны на Windows Phone 8
  3. В смартфонах и планшетах Samsung найдена «дыра» для слежки за пользователями
  4. Sony скрестила настольный ПК «все в одном» с телевизором
  5. Окна 8.1
  6. 8 причин отказаться от Windows XP прямо сейчас
  7. Разработчики из Disney придумали, как превратить человеческое тело в секретный динамик
  8. Почему стоит делать покупки в Microsoft Store?

4GB оперативной памяти

Довольно долго думал, в какой блог это запостить, и так и не придумал.
Описываемая проблема в своё время лишила меня массы нервных клеток, и в будущем (цены на оперативку падают) с ней будет сталкиваться только больше людей, поэтому я решил поделиться всем, что знаю.

Проблема проста: вы поставили в компьютер 4 гигабайта оперативки, но операционка не оценила вашей щедрости.

Немножко подумав, Вы вспоминаете, что ваша операционка 32-битная, следовательно адресуемое пространство — 4ГБ. Беда в том, что занимает его не только оперативка, но и другие устройства. В том числе видеокарта. И вот, от ваших четырёх гигабайт остаётся в лучшем случае три с половиной. Обидно? Обидно.

Хочу сразу расстроить. 32битные XP и Vista ни с каким бубном не захотят видеть ничего кроме своих 32бит.
upd: kitich сказал, что в Vista SP1 PAE тоже сделали. Однако, этот факт пока не доказан и в комментариях бытует мнение, что это ошибка: винда всего лишь стала показывать количество физически установленной памяти, используя по-прежнему 3 гига.

Распутье

  • Забить и жить с этим — наименее тернистый путь, имхо
  • Поставить 64битную ось — всё-таки у 64битных систем ещё есть проблемы с совместимостью. Вылечив одно, покалечите другое.
  • Поставить серверную 32битку — именно о нём я и собираюсь рассказать поподробнее.

Что же волшебного в Windows 2003 Server Enterprise? Она может на полную использовать PAE (Physical Address Extension). В XP она тоже есть, но начиная с SP2, она не производит расширения адресного пространства в интересах совместимости и используется лишь для поддержки работы DEP. Эта технология позволяет использовать 36-битную адресацию для доступа к адресам, вылезающим за 4 гигабайта. Поддерживается процессорами начиная с Pentium Pro.

Вкусно? Да. При помощи PAE винда сможет использовать довольно существенный объём памяти, оставаясь 32-битной. Однако приложениям по-прежнему будет выделяться 2ГБ виртуального адресного пространства. Это означает, что используя много ресурсоёмких программ вы почувствуете выигрыш. А если вы хотите «накормить» фотошоп – то ничего не изменится.

PAE добавляет также технологию AWE. Она позволяет программе обойти это ограничение путём передвигания двухгигового «окна» по адресному пространству. Однако, увы, большинство приложений эту технологию не поддерживают, так что можете о ней и не думать. Разьве что MSSQL Server, но на нём фотошопить не выйдет.
upd: fixed (20.07.2009)

Проблемы

Вполне радужно? Рано радуетесь. Не забывайте, это всё-таки виндоуз 2003 сервер. Все отключённые мультимедиа возможности легко включатся, это не проблема. И система будет железно стабильной. Но Вы столкнётесь с массой принципиальных производителей, любящих проверку версий, но не любящих вашу систему. Например HP, Logitech (как раз вот буквально на днях). К счастью, при помощи бубна (режим совместимости и Application Verifier) вы вполне заставите всё работать.

Правда, если какая-то программа полезет в память ядра, то она рискует столкнуться с неожиданностью, видимо не обнаружив половины. Одна из них — движок Source. Портал у меня запускаются раз через раз…

Также, некоторые драйверы в теории могут некорректно работать.

Впрочем, я живу с этим уже третий месяц, и вполне счастлив, не испытывая практически никаких проблем. Синего экрана я не видел ещё ни разу, тьфу-тьфу.

Окей, так как этот PAE применить?

Ребята из Microsoft неплохо всё объяснили: support.microsoft.com/kb/283037
Но на всякий случай добавлю: кроме ключа PAE вам возможно потребуется включить в BIOS опцию ремаппинга памяти. У себя я нашёл её в параметрах чипсета.

Ещё почитать

upd: Внёс некоторые поправки.

Pae что это

Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно.
Необходимо обновить браузер или попробовать использовать другой.

Страничная адресация: PAE

Дата публикации 16 окт 2007

Страничная адресация: PAE — Архив WASM.RU

Аббревиатура PAE расшифровывается как Physical Address Extension (расширение физического адреса). Впервые технология была представлена в Pentium Pro. Наличие PAE определяется с помощью инструкции cpuid: с источником eax = 1, установленный в 1 бит 6 регистра edx говорит о поддержке PAE процессором. Включается же PAE установкой пятого бита регистра CR4 в единицу. С помощью PAE 32битный указатель может адресовать физическую память, находящуюся выше адреса 0xFFFFFFFF (2^32 — 1, четыре гигабайта). А точнее, позволяет адресовать до шестидесяти четырех (2^36) гигабайт физической памяти. Казалось бы, как это возможно? Поговорим об этом чуть позже. Сначала посмотрим на этот процесс с т.з. аппаратной части. Когда процессор производит чтение/запись значения ячейки по какому-либо адресу, он выдает адрес ячейки на шину адреса и генерирует сигнал чтения/записи. (Все, конечно, намного сложнее, но не будем углубляться дальше.) Процессор, поддерживающий PAE имеет 4 дополнительных (к существовавшим ранее тридцати двум) контакта, на которые подается адрес. 2^32 * 2^4 = 2^36. Таким образом , процессор может обращаться к адресам, лежащим за пределами значения 2^32. Как это происходит? Самое главное — понять, что любая страница может быть отображена на физический адрес, лежащий выше четырех гигабайт. Т.е., например, линейный адрес 0х0 может быть преобразован в физический адрес 0x100000000. Чтобы познакомиться с этим процессом поближе, рассмотрим структуры, которые использует процессор для трансляции линейного адреса. С одной стороны, изменения этих структур минимальны. Все так же есть каталог таблиц (далее именуемый просто «каталог») и таблицы страниц. Однако, кое-что добавлено, кое-что изменено. Теперь адрес разбивается на 4 части, и правило «10-10-12» заменено на «2-9-9-12». На индексирование элементов таблицы страниц и каталога теперь выделено 9 бит. Помимо этого, появилась новая структура — Page Directory Pointer Table (PDPT). CR3 теперь содержит адрес таблицы каталогов, а не каталога. О ней более подробно ниже. PAE AddressingРисунок 1. Интерпретация бит линейного адреса. Для начала, разберем формат элемента таблицы страниц. Из него, как вы знаете, в конце концов берутся верхние 20 бит физического адреса страницы в обычном (10-10-12) преобразовании адреса. PAE_PTEРисунок 2. Элемент таблицы страниц. Первое, что бросается в глаза — размер элемента страницы увеличен с тридцати двух бит до шестидесяти четырех. В принципе, это является основным моментом преобразования с использованием PAE: старшие 20 бит линейного адреса заменяются на старшие 24 бита физического. При размере страниц 4 килобайта это дает 2^24 * 2^12 = 2^36 бит физического адреса. Логично предположить, что размер таблицы страниц в таком случае должен увеличиться вдвое. Однако, это не так. Теперь таблица страниц, вместо привычных тысячи двадцати четырех элементов размером 4 байта, содержит пятьсот двенадцать, размером 8 байт. А значит, что для индексации элемента таблицы страниц теперь достаточно девяти бит линейного адреса (2^9 = 512). Таким образом, элементы таблицы страниц теперь выровнены по границе 8 байт относительно базового адреса таблицы страниц. Сама же таблица страниц осталась выровненной по границе 4 килобайта. Значения флагов, находящихся в младших двенадцати битах не изменились. Элемент каталога претерпел аналогичные изменения. Он также расширен до восьми байт, а значит, что таблицы страниц теперь могут размещаться за пределами адреса 0xFFFFFFFF. Выбор элемента каталога осуществляется аналогично выбору элемента таблицы страниц — 9 бит (биты с двадцать первого по двадцать девятый) умножаются на 8 и складываются с базовым адресом каталога. Каталог выровнен по границе 4 килобайта. Значения флагов, находящихся в младших двенадцати битах не изменились. PAE_PDEРисунок 3. Элемент каталога таблиц. Итак, подытожим то, что мы имеем: 12 младших бит линейного адреса — смещение в странице, следующие за ними 9 бит — индекс в таблице страниц, следующие 9 — индекс в каталоге таблиц. 12 + 9 + 9 = 30. Что же происходит с оставшимися двумя битами? Page Directory Pointer Table
Вот тут в игру вступает Page Directory Pointer Table — таблица каталогов. Дело в том, что теперь каталогов может быть несколько, а именно — 4. Физические адреса каталогов хранятся в таблице каталогов — массиве из четырех 64битных элементов, каждый из которых содержит 24 старших бита физического адреса одного из каталогов таблиц. Таким образом, каждый элемент таблицы каталогов представляет собой как бы регистр CR3, но с небольшими отличиями (см. рисунок 4). Во-первых, CR3 содержал 20 старших бит физического адреса каталога таблиц, а элемент таблицы каталогов содержит 24 старших бита, что позволяет каталогам размещаться в памяти выше четырех гигабайт. Во-вторых, каждый элемент таблицы каталогов имеет бит присутствия P, позволяющий выгружать каталог таблиц из памяти. Теперь вспомним о двух, незадействованных ранее, старших битах линейного адреса. Их значение используется как индекс в таблице каталогов, что можно видеть на рисунке 1. PAE_PDPTEРисунок 4. Элемент таблицы каталогов. Но что же теперь содержит CR3? CR3
Нетрудно догадаться, что CR3 (отныне именуемый PDPTR(Page Directory Pointer Table Register)) содержит физический адрес таблицы каталогов. Соответственно, изменен его формат. Старшие 27 бит CR3 теперь содержат физический адрес таблицы каталогов, два из младших пяти бит управляют кэшированием, три зарезервировано, а значит, адрес таблицы каталогов таблиц должен быть выровнен по границе 32 байта. Т.к. размер CR3 не изменился, то таблица каталогов должна находиться в пределах 32битного адресного пространства. PAE_CR3Рисунок 5. Регистр CR3. Немного «математики» При использовании PAE 32битное адресное пространство как бы разбивается на 4 части, каждую часть обслуживает свой каталог и таблица страниц. Это происходит за счет того, что количество элементов в каталоге и таблице уменьшено вдвое. И если раньше один каталог и 1024 таблицы страниц на каждый элемент каталога охватывали 32битное адресное пространство целиком, то теперь каждый каталог содержит 512 (2^9) указателей на таблицы страниц, таблица страниц, в свою очередь, содержит 512 (2^9) физических адресов. Значит, каталог и таблица страниц, теперь охватывают 2^9 * 2^9 * 2^12(размер страницы не изменился) = 2^30, т.е. 1 гигабайт. Таким образом, адреса 0 — 3FFF FFFF обслуживает первый элемент таблицы каталогов таблиц, 4000 0000 — 7FFF FFFF — второй, 8000 0000 — BFFF FFFF — третий и С000 0000 — FFFF FFFF — четвертый. Каким путем адресовать данные выше четырех гигабайт? Пятикнижие Интелово предлагает нам создать каталог и таблицы страниц, которые преобразуют виртуальный адрес в физический, лежащий выше четырех гигабайт, и когда нам потребуется чтение/запись этих адресов, подменять элемент таблицы каталогов, либо менять регистр CR3 целиком. Однако, аффтар думает, что никто не запрещает направить за пределы четырех гигабайт всего одну страницу, либо элемент каталога, что позволит обращаться к большим адресам «окнами» по 4 килобайта, либо 2 мегабайта соответственно. Немного практики К сожалению, далеко не все читатели (как, впрочем, и я) являются счастливыми обладателями планок памяти объемом более четырех гигабайт, и, соответственно, не могут проверить работу режима PAE на практике. Однако, никто не запрещает нам отследить путь, который проделывает процессор, преобразовывая линейный адрес при включенном PAE. Допустим, у нас есть адрес: PAE_ADDR_XMPLРисунок 6. Интерпретация бит линейного адреса. Пример. Первым делом, процессор извлечет индекс таблицы каталогов из двух старших бит (в нашем случае это «1», т.е. второй элемент), и выделит адрес каталога из соответствующего элемента. Затем преобразование осуществляется как обычно: следующие 9 бит определяют индекс PDE в каталоге (в нашем случае «4»), полученный PDE содержит базу таблицы страниц, следующие 9 бит — индекс PTE (в нашем случае «1»). Из этого элемента PTE будет извлечен физически адрес страницы. Допустим, это будет 1 0000 0000. Теперь процессор складывает полученное значение с двенадцатью младшими битами линейного адреса. В результате мы получим физический адрес 1 0000 000C, который и будет подан на шину адреса. Чтобы сделать процесс преобразования более наглядным, приведем алгоритм преобразования линейного адреса в физический на псевдо-С:

qword get_phys_addr(dword addr)
dword PDT_addr, /* Физический адрес таблицы каталогов */
PDT_element_index, /* Индекс элемента таблицы каталогов */
PDT_element_addr, /* Физический адрес элемента таблицы каталогов */
PDE_index, /* Индекс элемента каталога таблиц */
PTE_index; /* Индекс элемента таблицы страниц */
qword PD_addr, /* Физический адрес каталога таблиц */
PDE_addr, /* Физический адрес элемента каталога таблиц */
PT_addr, /* Физический адрес таблицы страниц */
PTE_addr, /* Физический адрес элемента таблицы страниц */
phys_addr; /* Преобразованный физический адрес */

PDT_addr = CR3
PDT_addr &= 1111 1111 1111 1111 1111 1111 1110 0000 /* Нас интересуют только старшие 27 бит CR3 */
PDT_element_index = addr & 1100 0000 0000 0000 0000 0000 0000 0000 /* Выделим из адреса индекс элемента таблицы каталогов */
PDT_element_addr = PDT_addr + PDT_element_index * 0x40 /* Получим физический адрес элемента таблицы каталогов */
PD_addr = *PDT_element_addr /* Из элемента таблицы каталогов получим адрес каталога */
PD_addr &= 1111 1111 1111 1111 1111 1111 0000 0000 0000 /* Нас интересуют лишь старшие 24 бита физ. адреса каталога */

PDE_index = addr & 11 1111 1110 0000 0000 0000 0000 0000 /* Выделим из адреса индекс элемента каталога */
PDE_addr = PD_addr + PDE_index * 0x8; /* Получим физический адрес элемента каталога */
PT_addr = *PDE_addr /* Из элемента каталога получим адрес таблицы страниц */
PT_addr &= 1111 1111 1111 1111 1111 1111 0000 0000 0000 /* Нас интересуют лишь старшие 24 бита физ. адреса таблицы страниц */

PTE_index = addr & 1 1111 1111 0000 0000 0000 /* Выделим из адреса индекс элемента таблицы страниц */
PTE_addr = PT_addr + PTE_index * 0x8; /* Получим физический адрес элемента таблицы страниц */
phys_addr = *PTE_addr /* Из элемента каталога таблиц получим физический адрес страницы */
phys_addr &= 1111 1111 1111 1111 1111 1111 0000 0000 0000 /* Нас интересуют лишь старшие 24 бита физ. адреса */

phys_addr += addr & 1111 1111 1111 /* Добавим к физ. адресу страницы смещение в странице, и физический адрес готов! */

return phys_addr
>

2 мегабайта
Однако, на этом чудеса PAE не заканчиваются. PAE предлагает еще одну опцию преобразования адреса: с увеличенным размером страниц. Что будет, если избавиться от таблицы страниц, оставив только таблицу каталогов и сами каталоги, а значение физического адреса брать прямо из элемента каталога? В этом случае у нас останется «свободными» 21 нижний бит линейного адреса, что приведет к созданию страниц размером 2 мегабайта. При этом, старшие 11 бит линейного адреса в процессе преобразования будут заменены на 15 старших бит физического, взятых из соответствующего элемента каталога (рисунок 7). Младшие 21 бит линейного адреса при этом являются смещением в странице. PAE_ADDR_2MB
Рисунок 7. Интерпретация бит линейного адреса с размером страниц 2 мегабайта. Формат элемента каталога в этом случае будет следующим: PAE_PDE_2MB
Рисунок 8. Элемент каталога таблиц при размере страниц 2 мегабайта. Выбор размера страницы осуществляется флагом PS элемента каталога. Значение «0» означает, что каталог ссылается на таблицу страниц, размер страницы при этом остается 4 килобайта, «1» означает, что размер страницы, подчиненной элементу каталога, равен двум мегабайтам, и физический адрес следует брать прямо из элемента каталога. Таким образом возможно смешивать четырех -килобайтные и двух-мегабайтные страницы в одном каталоге. Размещение данных в страницах разного размера имеет два преимущества: 1. Большие объемы данных лучше держать в страницах размером 2 мегабайта, т.к. это потенциально позволит уменьшить количество исключений неприсутствия страницы при работе с данными.
2. Преобразованные линейные адреса четырех-килобайтных и двух-мегабайтных страниц хранятся в разных TLB кэшах, что позволяет каждому TLB кэшу содержать больше преобразованных адресов одновременно. Итак, подведем итоги по PAE PAE позволяет адресовать до шестидесяти четырех гигабайт физического адресного пространства отображая 32битные адреса на 36битное физическое адресное пространство. Это происходит путем замены старших двадцати бит линейного адреса на двадцать четыре бита физического адреса, позволяя странице, таблице страниц, каталогу таблиц, таблице каталогов, либо всему 32битному пространству отображаться в любую область 36битного адресного пространства. При этом возможен выбор размера страниц между четырьмя килобайтами и двумя мегабайтами. P.s. Спасибо zloi bandit за полезные замечания! © Mika0x65

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *