Барьер 3 ГБ
В вычислительной технике термин «барьер 3 ГБ» относится к ограничению некоторых 32-битных операционных систем, работающих на x86 микропроцессорах . Это не позволяет операционным системам использовать все 4 ГиБ ( 4 × 1024 3 байт ) основной памяти. [1] Точный барьер зависит от конфигурации материнской платы и устройства ввода-вывода, особенно от размера видеопамяти ; он может находиться в диапазоне от 2,75 ГБ до 3,5 ГБ. [2] Барьер отсутствует при использовании 64-разрядного процессора и 64-разрядной операционной системы , а также при использовании определенного оборудования x86 и операционной системы, такой как Linux или определенных версий Windows Server и macOS , которые позволяют использовать режим расширения физического адреса (PAE) на x86 для доступа к более чем 4 ГБ ОЗУ.
Каким бы ни было фактическое положение «барьера», в программном обеспечении операционной системы нет ни кода, ни какого-либо аппаратного архитектурного ограничения, которое непосредственно налагало бы его. Скорее, «барьер» является результатом взаимодействия между несколькими аспектами того и другого.
Ограничения физических адресов
[ редактировать ]Многие 32-битные компьютеры имеют 32 бита физического адреса и, таким образом, ограничены 4 ГиБ (2 ГиБ). 32 слова ) памяти . [3] [4] Процессоры x86 до Pentium Pro имели 32 или менее бита физического адреса; однако большинство процессоров x86, начиная с Pentium Pro, который был впервые продан в 1995 году, имеют механизм расширения физического адреса (PAE), [5] : 445 что позволяет адресовать до 64 ГиБ (2 36 слова) памяти. PAE — это модификация схемы трансляции адресов в защищенном режиме , которая позволяет преобразовывать виртуальные или линейные адреса в 36-битные физические адреса вместо 32-битных адресов, доступных без PAE. [6] : 3-15 Распиновка ЦП также обеспечивает 36-битные линии физического адреса материнской платы. [7]
Многие операционные системы x86, включая любую версию Linux с ядром PAE и некоторые версии Windows Server и macOS , могут использовать PAE для адресации до 64 ГиБ памяти в системе x86. [8] [9] [10]
Существуют и другие факторы, которые могут ограничить эту возможность использования до 64 ГиБ памяти и при определенных обстоятельствах привести к «барьеру в 3 ГБ», даже на процессорах, реализующих PAE. Они описаны в следующих разделах.
Чипсет и другие проблемы с материнской платой
[ редактировать ]Хотя, как отмечалось выше, большинство процессоров x86, начиная с Pentium Pro , способны генерировать физические адреса до 64 ГиБ, остальная часть материнской платы должна участвовать в разрешении процессору адресации ОЗУ выше точки 4 ГиБ. Чипсеты и материнские платы, поддерживающие более 4 ГиБ ОЗУ с процессорами x86, существуют, но в прошлом большинство из тех, которые предназначены не для рынка высокопроизводительных серверов, могли получить доступ только к 4 ГиБ ОЗУ. [11]
Однако этого недостаточно, чтобы объяснить «барьер в 3 ГБ», который возникает даже при запуске некоторых версий Microsoft Windows x86 на платформах, которые могут получить доступ к более чем 4 ГБ ОЗУ.
Отображенный в памяти ввод-вывод и отключенное ОЗУ
[ редактировать ]Современные персональные компьютеры построены на основе набора стандартов, которые зависят, среди прочего, от характеристик исходной шины PCI . Исходная шина PCI реализовала 32-битные физические адреса и передачу данных 32-битной шириной. Устройства PCI (а также PCI Express и AGP ) представляют по крайней мере некоторые, если не все, свои интерфейсы управления хостом через набор отображенных в памяти мест ввода-вывода (MMIO). Адресное пространство, в котором появляются эти местоположения MMIO, является тем же адресным пространством, которое используется ОЗУ, и хотя ОЗУ может существовать и иметь адресацию выше точки 4 ГиБ, эти местоположения MMIO, декодируемые устройствами ввода-вывода, не могут быть. Спецификациями шины PCI они ограничены адресами 0xFFFFFFFF (2 32 − 1) и ниже. Если установлено 4 ГБ или более ОЗУ и ОЗУ занимает непрерывный диапазон адресов, начиная с 0, некоторые местоположения MMIO будут перекрываться с адресами ОЗУ. Было обнаружено, что на машинах с большим объемом видеопамяти ячейки MMIO занимают до 1,8 ГБ 32-битного адресного пространства. [12]
BIOS . и набор микросхем отвечают за обнаружение этих конфликтов адресов и отключение доступа к оперативной памяти в этих местах [13] Из-за того, как на шине PCI определяются диапазоны адресов шины, это отключение часто происходит с относительно большой степенью детализации, что приводит к отключению относительно больших объемов ОЗУ. [14]
Переназначение адреса
[ редактировать ]Наборы микросхем x86, которые могут адресовать более 4 ГиБ ОЗУ, обычно также допускают перераспределение памяти (на некоторых экранах настройки BIOS это называется « перераспределением дыр памяти »). В этой схеме BIOS обнаруживает конфликт адресов памяти и фактически перемещает мешающую ОЗУ, чтобы процессор мог обращаться к ней по новому физическому адресу, который не конфликтует с MMIO. [ нужна ссылка ] Со стороны Intel эта функция когда-то была ограничена серверными чипсетами; однако он есть и в более новых наборах микросхем для настольных ПК, таких как Intel 955X и 965 и более поздних версиях. [ нужна ссылка ] Что касается AMD , то AMD K8 и более поздних версий имел его с самого начала. встроенный контроллер памяти процессоров [ нужна ссылка ]
Поскольку новые физические адреса превышают отметку 4 ГиБ, для адресации этой оперативной памяти требуется, чтобы операционная система могла использовать физические адреса размером более 2 ГБ. 32 . [15] Эту возможность предоставляет PAE. Обратите внимание, что операционная система не обязательно должна поддерживать общий объем ОЗУ более 4 ГиБ, поскольку общий объем ОЗУ может составлять всего 4 ГиБ; просто часть его отображается в ЦП по адресам в диапазоне от 4 ГиБ и выше. [15]
Эта форма барьера в 3 ГБ затрагивает одно поколение MacBook . [16] длительностью 1 год (Core2Duo (Merom) – с ноября 2006 г. по октябрь 2007 г.): предыдущее поколение было ограничено 2 ГиБ, тогда как более поздние поколения (ноябрь 2007 г. – октябрь 2009 г.) допускали 4 ГиБ за счет использования PAE и перераспределения дыр в памяти, и последующие поколения (с конца 2009 г.) используют 64-битные процессоры и, следовательно, могут адресовать более 4 ГиБ.
Зависимости версий Windows
[ редактировать ]«Несерверные» или «клиентские» SKU x86 Windows XP и более поздних версий по умолчанию работают с процессорами x86 в режиме PAE, когда присутствующий ЦП реализует бит NX . Тем не менее, эти операционные системы не позволяют адресовать физическую память выше границы адреса в 4 ГиБ. Это не архитектурное ограничение; это ограничение, наложенное Microsoft в качестве обходного пути для проблем совместимости драйверов устройств , обнаруженных во время тестирования. [17]
Таким образом, «барьер в 3 ГБ» в «клиентских» операционных системах Windows x86 может возникнуть в двух несколько разных сценариях. В обоих случаях ОЗУ рядом с точкой 4 ГиБ конфликтует с пространством ввода-вывода, отображаемым в памяти. Либо BIOS просто отключает конфликтующую оперативную память; или BIOS переназначает конфликтующую ОЗУ на физические адреса выше точки 4 ГиБ, [ нужна ссылка ] но клиентские версии Windows x86 отказываются использовать физические адреса выше этого значения, даже если они работают с включенным PAE. Таким образом, конфликтующая ОЗУ недоступна для операционной системы независимо от того, переназначена она или нет.
См. также
[ редактировать ]- Ограничение ОЗУ
- барьер 640 КБ
- х86-64
- PSE-36 — альтернатива PAE на процессорах x86 для расширения возможностей адресации физической памяти с 32 бит до 36 бит.
- PCI-отверстие
- Защитное кольцо
- RAM-накопитель — использование переназначенной оперативной памяти
- Виртуальная память — которая управляет памятью, доступной процессам.
- Пользовательское пространство и пространство ядра, что накладывает еще одно ограничение
Ссылки
[ редактировать ]- ^ Корпорация Майкрософт. «Ограничения памяти для выпусков Windows» . Проверено 7 августа 2017 г.
Устройствам необходимо отобразить объем памяти ниже 4 ГБ для совместимости с выпусками Windows, не поддерживающими PAE. Поэтому, если в системе установлено 4 ГБ ОЗУ, некоторая ее часть либо отключена, либо переназначается BIOS выше 4 ГБ. Если память переназначается, X64 Windows может использовать эту память. Клиентские версии Windows X86 не поддерживают физическую память объемом выше 4 ГБ, поэтому они не могут получить доступ к этим переназначенным областям.
- ^ Руссинович, Марк (21 июля 2008 г.). «Расширяя возможности Windows: физическая память» . Microsoft TechNet . Майкрософт . Архивировано из оригинала 8 августа 2019 года . Проверено 14 декабря 2022 г.
- ^ Мюррей, Мэтью (27 октября 2009 г.). «Windows 7: вопрос о 64-битной версии» . PCMag . Проверено 7 августа 2017 г.
32-битная система ограничена использованием 4 ГБ ОЗУ (2 32 адреса)
- ^ Патрицио, Энди (22 июля 2002 г.). «AMD отвечает на 64-битный вопрос» . Проводной . Архивировано из оригинала 16 декабря 2008 г. Проверено 7 августа 2017 г.
32-разрядные процессоры, такие как Intel Pentium III/IV и AMD Athlon, имеют ограничение памяти в 4 ГБ на процессор. Любая дополнительная память не может быть адресована.
- ^ Шенли, Том (1998). Системная архитектура Pentium Pro и Pentium II . Серия системной архитектуры ПК (второе изд.). Аддисон-Уэсли . п. 445 . ISBN 0-201-30973-4 .
- ^ «Том 1: Технические характеристики» (PDF) . Руководство разработчика семейства Pentium Pro . Корпорация Интел . Январь 1996 г. с. 3–15 . Проверено 12 декабря 2018 г.
Физическое адресное пространство процессора Pentium Pro равно 2. 36 байт или 64 гигабайта (64 Гбайт).
- ^ «Том 1: Технические характеристики» (PDF) . Руководство разработчика семейства Pentium Pro . Корпорация Интел . Январь 1996 г. с. 15–5 . Проверено 12 декабря 2018 г.
Контакт №: C1; Имя сигнала: A35#
- ^ Корпорация Майкрософт. «Ограничения памяти для выпусков Windows» . Проверено 7 августа 2017 г.
Windows Server 2008 Корпоративная; Ограничение в 32-битной Windows: 64 ГБ
- ^ «Включение ПАЕ» . Документация Убунту . 19 мая 2010 г. Проверено 7 июня 2010 г.
Расширение физического адреса — это технология, которая позволяет 32-разрядным операционным системам использовать до 64 ГБ памяти... PAE сегодня поддерживается на большинстве компьютеров, и включить ее в Ubuntu — простая процедура, если это еще не сделано.
- ^ «Ядро Linux» . Документация Федоры . 18 мая 2010 г. Проверено 7 июня 2010 г.
Fedora 8 включает следующие сборки ядра: ... Ядро-PAE для использования в 32-разрядных системах x86 с объемом оперативной памяти более 4 ГБ или с процессорами, имеющими функцию NX (без eXecute).
- ^ Корпорация Intel (февраль 2005 г.). «Поддержка системной памяти набора микросхем Intel 4 ГБ» (PDF) . Руководство разработчика семейства Pentium Pro . п. 7. Архивировано из оригинала (PDF) 6 марта 2007 г. Проверено 7 августа 2017 г.
В однопроцессорных системах для мобильных, настольных компьютеров, рабочих станций и серверов начального уровня максимальный объем памяти наборов микросхем может быть ограничен 4 ГБ. В современных двухпроцессорных серверных чипсетах Intel и рабочих станциях максимальный объем системной памяти может превышать 16 ГБ.
- ^ Руссинович, Марк Евгений (21 июля 2008 г.). «Расширяя возможности Windows: физическая память» . Архивировано из оригинала 8 августа 2019 г. Проверено 7 августа 2017 г.
Windows XP SP2 также включила поддержку расширений физических адресов (PAE) по умолчанию на оборудовании, которое реализует неисполняемую память, поскольку это необходимо для предотвращения выполнения данных (DEP), но это также обеспечивает поддержку памяти объемом более 4 ГБ.
- ^ Корпорация Intel (февраль 2005 г.). «Поддержка системной памяти набора микросхем Intel 4 ГБ» (PDF) . Архивировано из оригинала (PDF) 6 марта 2007 г. Проверено 7 августа 2017 г.
На платформах с объемом физической памяти, приближающимся к 4 ГБ и более, требования к встроенным системным ресурсам, скорее всего, не позволят операционной системе использовать преимущества всей физической памяти, заполненной из-за требований спецификации PCI и других ресурсов ввода-вывода, отображаемых в памяти. Части физической памяти могут перекрываться с пространством памяти, выделенным для других подсистем, и становиться недоступными для операционной системы.
- ^ Корпорация Intel (февраль 2005 г.). «Поддержка системной памяти набора микросхем Intel 4 ГБ» (PDF) . Руководство разработчика семейства Pentium Pro . п. 8. Архивировано из оригинала (PDF) 6 марта 2007 г. Проверено 7 августа 2017 г.
- ^ Jump up to: а б Корпорация Intel (февраль 2005 г.). «Поддержка системной памяти набора микросхем Intel 4 ГБ» (PDF) . Руководство разработчика семейства Pentium Pro . п. 13, 14. Архивировано из оригинала (PDF) 6 марта 2007 г. Проверено 7 августа 2017 г.
Чтобы использовать перераспределение, операционная система должна иметь возможность адресовать диапазоны памяти более 4 ГБ.
- ^ «Понимание Intel Mac RAM» . Архивировано из оригинала 2 марта 2010 г. Проверено 11 марта 2010 г.
- ^ Руссинович, Марк Евгений (21 июля 2008 г.). «Расширяя возможности Windows: физическая память» . Архивировано из оригинала 8 августа 2019 г. Проверено 7 августа 2017 г.
Windows XP SP2 также включила поддержку расширений физических адресов (PAE) по умолчанию на оборудовании, которое реализует неисполняемую память, поскольку это необходимо для предотвращения выполнения данных (DEP), но это также обеспечивает поддержку памяти объемом более 4 ГБ. […] Проблемная экосистема клиентских драйверов привела к тому, что клиентские SKU решили игнорировать физическую память, объем которой превышает 4 ГБ, хотя теоретически они могут ее адресовать. […] 4 ГБ — это лицензионный предел для 32-битных клиентских SKU.