PCI-отверстие
Эта статья нуждается в дополнительных цитатах для проверки . ( октябрь 2012 г. ) |
Дыра PCI или дыра в памяти PCI — это ограничение 32-битного оборудования и 32-битных операционных систем , из-за которого на компьютере кажется, что у него меньше доступной памяти, чем физически установлено. [1] Это ограничение адресации памяти и последующие обходные пути, необходимые для его преодоления, функционально аналогичны ограничениям памяти ранней архитектуры памяти IBM PC 8088 (см. Обычная память ).
Подобные ситуации часто возникали в истории вычислений, когда аппаратное обеспечение, предназначенное для использования определенного уровня ресурсов, рассчитано на обработку в несколько раз максимального ожидаемого объема, что в конечном итоге становится серьезным ограничением, поскольку закон Мура увеличивает экономически доступные ресурсы. Исходный IBM PC обычно поставлялся с объемом памяти 64 КБ или меньше; он был спроектирован так, чтобы занимать максимум 640 КБ . Это быстро стало ограничением, которое пришлось преодолевать с помощью сложного управления памятью DOS . Подобные последовательные ограничения по размеру были наложены и преодолены на жестких дисках .
Недоступная память
[ редактировать ]Потеря полезной памяти, вызванная дырой PCI при использовании ввода-вывода с отображением в памяти , вызвана использованием одного и того же адресного пространства как для физической памяти, так и для связи с аппаратными устройствами. Таким образом, установленным аппаратным устройствам требуется некоторая часть адресного пространства для связи с процессором и системным программным обеспечением. Поскольку 32-разрядное оборудование имеет в общей сложности четыре гигабайта адресуемой памяти, [а] частью реальной физической памяти 32-битной машины, когда установлено достаточно памяти, необходимо пожертвовать, сделав ее скрытой, чтобы у устройств было место для обмена данными. Какая часть физической памяти будет заменена пространством связи устройства, зависит от машины, но обычно это объем выше 2,5–3,5 ГБ.
Объем скрытой и недоступной системной памяти широко варьируется в зависимости от фактической материнской платы и набора микросхем, BIOS, объема физической памяти, объема видеопамяти, установленной на видеокартах, а также количества и типа карт PCI , установленных в системе. . Более гигабайта 32-битной системной памяти может быть недоступно при установке четырех гигабайт физической памяти и нескольких 3D-карт с большим объемом видеопамяти; на некоторых материнских платах отверстие всегда имеет размер не менее одного гигабайта независимо от установленных карт расширения .
Расширение физического адреса
[ редактировать ]Обходной путь, впервые разработанный в Pentium Pro, известный как расширение физического адреса (PAE), позволяет некоторым 32-битным операционным системам получать доступ к 36-битным адресам памяти, хотя отдельные программы по-прежнему ограничены работой в пределах 32-битного адресного пространства. . При наличии достаточного количества установленной памяти каждая программа может иметь собственное адресное пространство размером в четыре гигабайта, в результате чего для всех программ используется до 64 гигабайт памяти.
Но одного только PAE недостаточно для решения проблемы дыр PCI, поскольку адреса памяти и адреса ввода-вывода PCI все еще перекрываются где-то между 3-м и 4-м гигабайтом. PAE-совместимая операционная система вместе с PAE-совместимым процессором не может работать лучше, чем доступ к памяти с 1-го по 3-й гигабайт, а затем с 5-го по 64-й гигабайт. Дыра PCI все еще там. На хосте объемом 4 ГБ и при отсутствии того или иного дополнительного обходного пути PAE ничего не делает для доступа к памяти ~ 1 ГБ, перекрытой интерфейсом ввода-вывода PCI.
PAE полностью поддерживался в Windows XP вплоть до выпуска пакета обновления 1 (SP1), но затем был отменен для SP2; единственные 32-разрядные версии Microsoft Windows , полностью поддерживающие это, — это некоторые высокопроизводительные серверные версии Windows Server 2003 и более ранние версии; по состоянию на 2014 год он в основном используется в 32-битных Linux дистрибутивах ; Ubuntu сделала его обязательным для своей 32-битной версии с 2013 года. Microsoft отключила поддержку в Windows XP SP2 и более поздних операционных системах, поскольку было много проблем совместимости с видеокартой и другими устройствами, для которых требовались драйверы с поддержкой PAE, отличные от обоих стандартных. 32-битные и более поздние 64-битные драйверы. [2] Многие версии MS Windows могут активировать то, что до сих пор называется PAE, с целью использования бита NX , но это больше не расширяет адресное пространство.
Заполнение дыры в памяти
[ редактировать ]Как говорилось ранее, в 32-битных системах с поддержкой PAE и даже в 64-битных системах память ниже и выше «дыры памяти» доступна, но от 512 МБ до 1,5 ГБ ОЗУ недоступно, около 3-х гигабайт, поскольку использует свои адреса памяти, необходимые для устройств. Учитывая снижение стоимости памяти, возможно, это не является серьезной проблемой, но существуют способы восстановить доступ к недостающей памяти.
Сопоставление устройств с адресами более 4 ГБ
[ редактировать ]Ограничения 32-битного отверстия PCI могут повлиять на чисто 64-битные операционные системы, поскольку системный BIOS должен обслуживать все операционные системы, которые поддерживаются оборудованием (все 16-, 32- и 64-битные операционные системы работают на то же оборудование). BIOS должен иметь возможность загружать все устройства размером менее четырех гигабайт, хотя 64-битная система этого не требует. Многие BIOS могут быть настроены пользователем так, чтобы заполнить дыру в памяти путем сопоставления устройств высоко в 64-битном адресном пространстве, если устройства, их драйверы и набор микросхем поддерживают это. Машина, настроенная таким образом, не может загрузить 16- или 32-битную операционную систему; поддерживается только режим загрузки UEFI.
Отображение памяти на адреса выше 4 ГБ
[ редактировать ]Другой способ устранить дыру PCI, который полезен только для 64-битных операционных систем и тех 32-битных систем, которые поддерживают описанный выше метод расширения физических адресов, — это «перераспределить» часть или всю память между двух- и ограничение в четыре гигабайта для адресов выше четырех гигабайт. Это должно поддерживаться чипсетом компьютера и обычно может быть активировано в настройках BIOS. Это переназначение работает на уровне физических адресов более высокого уровня , в отличие от переназначения виртуальных на физические адреса , которое происходит внутри ядра ЦП . Активация этого режима для традиционных 32-битных операционных систем приносит больше вреда, чем пользы, поскольку переназначенная память (часто больше, чем само отверстие PCI) непригодна для использования в таких операционных системах, хотя, например, Windows Vista покажет, что такая память физически существует на " Свойства системы».
См. также
[ редактировать ]- Апертура AGP
- Барьер 3 ГБ
- Расширенная память
- PSE-36 - альтернатива PAE на процессорах x86 для расширения возможностей адресации физической памяти с 32 бит до 36 бит.
- Ограничение ОЗУ
Примечания
[ редактировать ]- ^ При 16 битах два в 16-й степени равны 65 536 различным местам, к которым можно обратиться; при 32-битной версии это 4 294 967 296 ячеек, а при 64-битной — 18 446 744 073 709 551 616.
Ссылки
[ редактировать ]- ^ «Дыра в памяти в системах на базе X86 с большой памятью» (PDF) . techfiles.de . Сан Микросистемс. 19 мая 2014 г. Архивировано из оригинала (PDF) 19 июля 2011 г. . Проверено 7 ноября 2014 г.
- ^ Dansdata: Что с барьером памяти в 3 ГБ?