Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

В вычислении , Расширение физических адресов ( РАЕ ), иногда называют страницу Address Extension , [1] это функция управления памятью для архитектуры x86. PAE был впервые представлен Intel в Pentium Pro , а затем AMD в процессоре Athlon . [2] Он определяет трехуровневую иерархию таблицы страниц (вместо двух) с записями таблицы по 64 бита каждая вместо 32, что позволяет этим процессорам напрямую обращаться к физическому адресному пространству размером более 4  гигабайт (2 32 байта).

Структура таблицы страниц, используемая процессорами x86-64 при работе в длинном режиме, дополнительно расширяет иерархию таблицы страниц до четырех уровней, расширяя виртуальное адресное пространство, и использует дополнительные биты физического адреса на всех уровнях таблицы страниц, расширяя физическое адресное пространство. . Он также использует самый верхний бит записи в таблице 64-битных страниц как бит «невыполнение» или «NX» , указывая, что код не может быть выполнен со связанной страницы. Функция NX также доступна в защищенном режиме, когда эти процессоры работают под управлением 32-разрядной операционной системы, при условии, что операционная система включает PAE.

История [ править ]

Впервые PAE был реализован в Intel Pentium Pro в 1995 году [3], хотя в сопутствующих наборах микросхем обычно отсутствовала поддержка требуемых дополнительных битов адреса. [4]

PAE поддерживается процессорами Pentium Pro, Pentium II , Pentium III и Pentium 4 . Первые процессоры семейства Pentium M (Banias), представленные в 2003 году, также поддерживают PAE; однако они не показывают флаг поддержки PAE в своей информации CPUID . [5] Он также был доступен на процессорах AMD, включая AMD Athlon [6] [7] (хотя наборы микросхем для ограничены 32-битной адресацией [8] ) и более поздних моделях процессоров AMD.

Когда AMD определила свое 64-битное расширение стандартной архитектуры x86 , AMD64 или x86-64, они также улучшили систему подкачки в « длинном режиме » на основе PAE. [9] Он поддерживает 64-битные виртуальные адреса [10] ( p24 ) (по состоянию на ноябрь 2018 года реализовано 48 битов [10] ( p120 ) [11] ), 52-битные физические адреса, [10] ( p24 ) и включает бит NXфункциональность. При инициализации процессора x86-64 необходимо включить функцию PAE до того, как процессор переключится из устаревшего режима в длительный режим. [9]

Дизайн [ править ]

С PAE запись в таблице страниц архитектуры x86 увеличена с 32 до 64 бит. Это дает больше места для физического адреса страницы или поля «номер кадра страницы» в записи таблицы страниц. В первоначальных реализациях PAE поле номера кадра страницы было расширено с 20 до 24 бит. Размер «байтового смещения» от транслируемого адреса по-прежнему составляет 12 бит, поэтому общий размер физического адреса увеличивается с 32 бит до 36 бит (т. Е. С 20 + 12 до 24 + 12). Это увеличило физическую память, которая теоретически может быть адресована ЦП, с 4 ГБ до 64 ГБ.

В первых процессорах, поддерживающих PAE, поддержка больших физических адресов очевидна в их распиновке корпуса, при этом обозначения контактов адресов идут до A35 вместо того, чтобы останавливаться на A31. [12] Более поздние семейства процессоров используют межсоединения, такие как Hypertransport или QuickPath Interconnect , в которых отсутствуют выделенные сигналы адресации памяти, поэтому эта взаимосвязь менее очевидна.

32-битный размер виртуального адреса не изменяется, поэтому обычное прикладное программное обеспечение продолжает использовать инструкции с 32-битными адресами и (в модели с плоской памятью ) ограничено 4 гигабайтами виртуального адресного пространства. Операционные системы, поддерживающие этот режим, используют таблицы страниц для сопоставления обычного виртуального адресного пространства 4 ГБ с физической памятью, которая, в зависимости от операционной системы и остальной аппаратной платформы, может достигать 64 ГБ. Сопоставление обычно применяется отдельно для каждого процесса , поэтому дополнительная оперативная память полезна, даже если ни один процесс не может получить доступ ко всем этим процессам одновременно.

Более поздние работы, связанные с разработкой AMD архитектуры x86-64, расширили теоретический возможный размер физических адресов до 52 бит. [ необходима цитата ]

Структуры таблиц страниц [ править ]

В защищенном режиме с включенной подкачкой (установлен бит 31 PG, регистра управления CR0), но без PAE, процессоры x86 используют двухуровневую схему трансляции страниц. Регистр управления CR3 содержит выровненный по страницам физический адрес одного каталога страниц длиной 4 КБ . Он разделен на 1024 четырехбайтовых записей каталога страниц, которые, в свою очередь, если они действительны, содержат выровненные по страницам физические адреса таблиц страниц , каждая размером 4 КБ. Они также состоят из 1024 записей таблицы четырехбайтовых страниц, которые, если они действительны, содержат выровненные по страницам физические адреса страниц физической памяти (ОЗУ) длиной 4 КБ .

Включение PAE (установкой бита 5 PAE, системного регистра CR4) вызывает серьезные изменения в этой схеме. По умолчанию размер каждой страницы составляет 4 КБ. Каждая запись в таблице страниц и каталоге страниц становится длиной 64 бита (8 байтов) вместо 32 бита, чтобы учесть дополнительные биты адреса. Однако размер каждой таблицы не меняется, поэтому и таблица, и каталог теперь имеют только 512 записей. Потому что это позволяет только одна половине записей исходной схемы, дополнительный уровень иерархии был добавлен, так CR3 теперь указует физически на указатель таблицу Page Справочника , короткую таблицу , содержащую четыре указателей на страницы каталогов.

Записи в каталоге страниц имеют дополнительный флаг в бите 7, названный PS(для размера страницы ). Если система установила этот бит в значение 1, запись каталога страниц указывает не на таблицу страниц, а на одну большую страницу размером 2 МБ ( расширение размера страницы ).

Во всех форматах таблиц страниц, поддерживаемых x86 и x86-64 , 12 младших битов записи таблицы страниц либо интерпретируются блоком управления памятью, либо зарезервированы для использования операционной системой. В процессорах, которые реализуют функцию запрета выполнения или запрета выполнения, старший бит (бит 63) - это бит NX.. Следующие одиннадцать наиболее значимых битов (биты с 52 по 62) зарезервированы для использования операционной системой спецификациями архитектуры как Intel, так и AMD. Таким образом, из 64 битов в записи таблицы страниц 12 младших и 12 старших битов используются для других целей, оставляя 40 бит (биты с 12 по 51) для физического номера страницы. В сочетании с 12 битами «смещения внутри страницы» от линейного адреса для адресации физической памяти доступно максимум 52 бита. Это позволяет максимальную конфигурацию ОЗУ 2 52  байта или 4 петабайта (около 4,5 × 10 15 байтов).

На процессорах x86-64 в собственном длинном режиме схема трансляции адресов использует PAE, но добавляет четвертую таблицу, таблицу уровня 4 карты страниц с 512 записями и расширяет таблицу указателей каталога страниц до 512 записей вместо исходных 4 записей. находится в защищенном режиме. В настоящее время транслируется 48 бит номера виртуальной страницы, что дает виртуальное адресное пространство размером до 256 ТБ. [10] ( p148 ) В записях таблицы страниц в исходной спецификации реализовано 40 бит физического номера страницы.

  • Структуры таблиц страниц
  • Без PAE, страницы 4 КБ

  • Без PAE, страницы 4 МБ

  • С PAE; 4 КБ страницы

  • С PAE; 2 МБ страницы

Поддержка оборудования [ править ]

Программное обеспечение может определить с помощью CPUIDфлага PAE, поддерживает ли ЦП режим PAE или нет. Доступна бесплатная программа для Microsoft Windows, в которой перечислены многие возможности процессора, включая поддержку PAE. [13] В Linux такие команды, как cat /proc/cpuinfoмогут выводить список paeфлагов, если они есть, [14], а также другие инструменты, такие как SYSLINUX Hardware Detection Tool.

Для работы процессора в режиме PAE требуется поддержка операционной системы . Чтобы использовать PAE для доступа к более чем 4 ГБ ОЗУ, требуется дополнительная поддержка в операционной системе, в наборе микросхем и на материнской плате. Некоторые наборы микросхем не поддерживают адреса физической памяти размером более 4 ГБ (FFFFFFFF в шестнадцатеричном формате), а на некоторых материнских платах просто не хватает разъемов RAM для установки более 4 ГБ оперативной памяти. Тем не менее, даже если доступно и доступно не более 4 ГБ ОЗУ, ЦП с поддержкой PAE может работать в режиме PAE, например, чтобы разрешить использование функции « Не выполнять» .

Поддержка операционной системы [ править ]

Microsoft Windows [ править ]

32-разрядные версии Microsoft Windows поддерживают PAE при загрузке с соответствующей опцией. По словам технического специалиста Microsoft Марка Руссиновича , некоторые драйверы оказались нестабильными при обнаружении физических адресов размером более 4 ГБ. [15]

В следующей таблице показаны ограничения памяти для 32-разрядных версий Microsoft Windows:

В исходных выпусках Windows XP и Windows XP SP1 использовался режим PAE, позволяющий расширять ОЗУ за пределы адреса в 4 ГБ. Однако это привело к проблемам совместимости со сторонними драйверами, что привело к тому, что Microsoft удалила эту возможность в Windows XP с пакетом обновления 2 (SP2). Windows XP SP2 и более поздние версии по умолчанию на процессорах с запретом выполнения (NX) или отключением выполнения (XD ) , запускается в режиме PAE, чтобы разрешить NX. [19]Бит NX находится в бите 63 записи таблицы страниц, и без PAE записи таблицы страниц в 32-битных системах имеют только 32 бита; поэтому для использования функции NX требуется режим PAE. Однако «клиентские» версии 32-битной Windows (Windows XP SP2 и новее, Windows Vista, Windows 7) ограничивают физическое адресное пространство первыми 4 ГБ для совместимости драйверов [15] через механизм ограничения лицензирования [20], хотя эти версии работают в режиме PAE, если включена поддержка NX.

Windows 8 и более поздние версии будут работать только на процессорах, поддерживающих PAE, в дополнение к NX и SSE2 . [21]

macOS [ править ]

Mac OS X Tiger через Mac OS X Snow Leopard поддерживает PAE и бит NX на процессорах IA-32; Snow Leopard была последней версией, поддерживающей процессоры IA-32. На процессорах x86-64 все версии macOS используют четырехуровневую подкачку (подкачка IA-32e, а не PAE) для адресации памяти более 4 ГБ. Системы Mac Pro и Xserve могут использовать до 64 ГБ ОЗУ. [22]

Linux [ править ]

Ядро Linux включает в себя полный PAE-режим поддержки , начиная с версии 2.3.23, [23] в 1999 г. для обеспечения доступа до 64 ГБ оперативной памяти на 32-разрядных машинах. Ядро Linux с поддержкой PAE требует, чтобы ЦП также поддерживал PAE. Ядро Linux поддерживает PAE в качестве варианта сборки, а основные дистрибутивы предоставляют ядро ​​PAE по умолчанию или в качестве опции.

Для битовой функции NX требуется ядро, построенное с поддержкой PAE. [24]

В настоящее время дистрибутивы Linux обычно используют ядро ​​с поддержкой PAE по умолчанию, тенденция, которая началась в 2009 году. [25] С 2012 года многие, включая Ubuntu (и производные, такие как Xubuntu и Linux Mint ), [26] [27] Red Hat Enterprise Linux 6.0 [28] и CentOS прекратили распространение ядер без PAE, что сделало оборудование с поддержкой PAE обязательным. Дистрибутивы Linux, которым требуется PAE, могут отказываться загружаться на процессорах семейства Pentium M , потому что они не показывают флаг поддержки PAE в своей информации CPUID (даже если он поддерживается внутри). [5]Однако это можно легко обойти, по крайней мере в Ubuntu , с помощью этой forcepaeопции. [29]

Дистрибутивы, которые по-прежнему предоставляют вариант без PAE, включая Debian (и производные, такие как LMDE 2 (Linux Mint Debian Edition) [30] ), Slackware и LXLE , обычно делают это с «i386», «i486» или «ретро». этикетки. [31] [32] В статье « Легкий дистрибутив Linux» перечислены некоторые другие, позволяющие устанавливать Linux на старые компьютеры.

Другое [ править ]

FreeBSD и NetBSD также поддерживают PAE как вариант сборки ядра. FreeBSD поддерживает PAE в серии 4.x, начиная с 4.9, в серии 5.x, начиная с 5.1, и во всех выпусках 6.x и более поздних. Для поддержки требуется PAEопция конфигурации ядра . Загружаемые модули ядра могут быть загружены в ядро ​​с включенным PAE, только если модули были собраны с включенным PAE; бинарные модули в дистрибутивах FreeBSD не собираются с включенным PAE и поэтому не могут быть загружены в ядра PAE. Не все драйверы поддерживают более 4 ГБ физической памяти; эти драйверы не будут правильно работать в системе с PAE. [33]

OpenBSD поддерживает PAE с 2006 года со стандартным ядром GENERIC i386. GeNUA mbH поддержал начальную реализацию. [34] Начиная с версии 5.0 PAE претерпел ряд изменений, в частности, изменения в обработке MMU i386 для PMAP, см. Pmap (9). [35]

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

Haiku добавила начальную поддержку PAE через некоторое время после выпуска R1 Alpha 2. С выпуском R1 Alpha 3 теперь официально поддерживается PAE.

ArcaOS имеет ограниченную поддержку PAE с целью создания RAM-дисков размером более 4 ГБ. [37]

См. Также [ править ]

  • Расширение размера страницы
  • Отверстие PCI
  • PSE-36
  • Архитектура Windows NT
  • Барьер 3 ГБ
  • Расширение большого физического адреса (LPAE) - в архитектуре ARM

Ссылки [ править ]

  1. ^ Обновление спецификации двухъядерного процессора Intel® Xeon® 2,80 ГГц (PDF) . Корпорация Intel. Октябрь 2006. с. 18.
  2. AMD, Inc. (февраль 2002 г.). «Приложение Е». Руководство по оптимизации кода процессора AMD Athlon ™ x86 (PDF) (редакция K). п. 250 . Проверено 13 апреля 2017 . 2-битный индекс, состоящий из битов PCD и PWT записи таблицы страниц, используется для выбора одного из четырех полей регистра PAT, когда PAE (расширения адреса страницы) включен или когда PDE не описывает большую страницу.
  3. ^ Т. Shanley (1998). Системная архитектура Pentium Pro и Pentium II . Эддисон-Уэсли Профессионал. п. 439. ISBN. 978-0-201-30973-7.
  4. ^ «Операционные системы и поддержка PAE» . Центр разработчиков оборудования . 14 июля 2006 . Проверено 20 апреля 2014 года .
  5. ^ a b PAE - Справка сообщества Ubuntu
  6. AMD, Inc. (февраль 2002 г.). «Приложение Е». Руководство по оптимизации кода процессора AMD Athlon ™ x86 (PDF) (редакция K). п. 250 . Проверено 13 апреля 2017 . 2-битный индекс, состоящий из битов PCD и PWT записи таблицы страниц, используется для выбора одного из четырех полей регистра PAT, когда PAE (расширения адреса страницы) включен или когда PDE не описывает большую страницу.
  7. ^ «AMD Athlon 500 - AMD-K7500MTR51B C» . Cpu-world.com . 26 марта 2014 . Проверено 20 апреля 2014 года .
  8. ^ AMD-762 Системный контроллер (стр. 2): «Поддерживает до 4 Гбайт памяти»
  9. ^ a b AMD Corporation (март 2017 г.). «Том 2: Системное программирование» (PDF) . Руководство программиста по архитектуре AMD64 . Корпорация AMD. п. 130 . Проверено 23 мая 2017 . Трансляция страниц в длинном режиме требует использования расширений физических адресов (PAE). Перед активацией длительного режима необходимо включить PAE, задав для CR4.PAE значение 1. Активация длительного режима перед включением PAE вызывает исключение общей защиты (#GP).
  10. ^ a b c d AMD Corporation (сентябрь 2018 г.). «Том 2: Системное программирование» (PDF) . Руководство программиста по архитектуре AMD64 . Корпорация AMD . Проверено 19 декабря 2018 .
  11. ^ «Том 3 (3A, 3B, 3C и 3D): Руководство по системному программированию» . Руководство разработчика программного обеспечения для архитектур Intel 64 и IA-32 . Intel. Ноябрь 2018. с. 4-6 . Проверено 19 декабря 2018 .
  12. ^ Описание процессора Pentium® III Xeon ™ с частотой 500 и 550 МГц . Корпорация Intel. Февраль 2000 г. с. 86. 245094-002. A [35:03] # (ввод / вывод): сигналы A [35: 3] # (адрес) определяют адресное пространство физической памяти размером от 2 до 36 байтов.
  13. ^ «Microsoft Sysinternals: Coreinfo» . Windows Sysinternals . Microsoft. 19 декабря 2013 . Проверено 20 апреля 2014 года .
  14. ^ «Обнаружение вашего оборудования» . Gentoo. 8 октября 2008 . Проверено 28 апреля 2013 .
  15. ^ a b Марк Руссинович (21.07.2008). «Расширяя границы Windows: физическая память» . Проверено 11 июля 2010 .
  16. ^ «Ограничения памяти для выпусков Windows» . MSDN . Microsoft . 5 декабря, 2007. Архивировано из оригинала 17 декабря 2007 года . Проверено 16 ноября 2015 .
  17. ^ «Intel Physical Addressing Extensions (PAE) в Windows 2000» . Поддержка . Microsoft . 26 октября 2007 . Проверено 29 декабря 2007 .
  18. ^ «Обзор Windows Server 2003 R2 Datacenter Edition» . TechNet . Microsoft . Проверено 15 мая 2009 .
  19. ^ «ОЗУ, сообщаемое диалоговым окном« Свойства системы »и инструментом« Сведения о системе », меньше, чем вы ожидаете в Windows Vista или Windows XP с пакетом обновления 2 или более поздней версии (MSKB 888137)» . База знаний . Microsoft . Проверено 30 января 2009 .
  20. ^ Чаппелл, Джефф. «Лицензионная память в 32-битной Windows Vista» . geoffchappell.com . РГ: СПС . Проверено 20 апреля 2014 года .
  21. Хуршид, Усман (2 ноября 2012 г.). «Как проверить, поддерживает ли ваш процессор PAE, NX и SSE2 для установки Windows 8» . technize.net . Technize . Проверено 20 апреля 2014 года .
  22. ^ «Дорога к Mac OS X 10.6 Snow Leopard: 64-бит» . 2008-09-26 . Проверено 26 сентября 2008 .
  23. ^ "2.3.23-pre4 x86 64 ГБ RAM изменения [патч HIGHMEM] немного объяснены" .
  24. ^ Профессиональная архитектура ядра Linux , рис. 3.16. Поток кода для paging_init, «Execute Disable Protection также включена, если поддерживается процессором и если ядро ​​было скомпилировано с поддержкой PAE; к сожалению, в противном случае эта функция недоступна».
  25. ^ "Особенности x86 для Fedora 11" .
  26. ^ "Выпущен Xubuntu 12.04" . Xubuntu.org . 26 апреля 2012 . Проверено 24 октября 2015 года . Ядро без PAE не будет доступно в будущих выпусках Xubuntu.
  27. ^ "ВключениеPAE" . Проверено 28 апреля 2013 .
  28. ^ «Примечания к выпуску RHEL 6, 12.6. Общие обновления ядра 12.6.1. Расширение физического адреса (PAE)» . RedHat . Проверено 27 ноября 2013 года .
  29. ^ PAE, Расширение физического адреса , Справочная вики сообщества Ubuntu.
  30. ^ «Известные проблемы в Linux Mint Debian» . Чтобы гарантировать совместимость с процессорами без PAE, 32-разрядные версии Linux Mint Debian по умолчанию поставляются с ядром 486.
  31. ^ "Точный щенок" . puppylinux.org . PuppyLinux . Проверено 20 апреля 2014 года .
  32. ^ «2.1. Поддерживаемое оборудование» . Руководство по установке Debian GNU / Linux . SPI . Проверено 20 апреля 2014 года .
  33. ^ "Справочная страница FreeBSD PAE (4)" . 2003-04-08 . Проверено 26 ноября 2007 .
  34. ^ «PAE для OpenBSD / i386, Майкл Шалаев, Нью-Йорк» . 2006 . Проверено 3 февраля 2018 .
  35. ^ pmap(9)  -  Руководство разработчика ядра OpenBSD
  36. ^ «Добавлена ​​поддержка режима расширения физических адресов (PAE)» . Примечания к выпуску Solaris 7 5/99 (Intel Platform Edition), Приложение B: Список совместимого оборудования и Руководство по настройке устройств (Intel Platform Edition) 5/99 . 1999 . Проверено 23 марта 2018 .
  37. ^ «ArcaOS 5.0 от Arca Noae - это новый выпуск OS / 2 для 21 века» . 2017 . Проверено 16 декабря 2019 .

Дальнейшее чтение [ править ]

  • «Руководство разработчика программного обеспечения для архитектур Intel 64 и IA-32, том 3A: Руководство по системному программированию, часть 1» . Intel . 11 февраля 2014 г.
  • «Расширение физического адреса» . MSDN . Microsoft . Проверено 6 мая 2020 .