Отверстие PCI - PCI hole

В Отверстие PCI или же Отверстие памяти PCI это ограничение 32-битный оборудование и 32-битные операционные системы в результате на компьютере оказывается меньше доступной памяти, чем установлено физически.[1] Это ограничение адресации памяти и более поздние обходные пути, необходимые для его преодоления, функционально аналогичны ограничениям памяти начала 8088 IBM PC архитектура памяти (см. Обычная память ).

Подобные ситуации часто возникали в истории вычислений, когда оборудование, предназначенное для использования до определенного уровня ресурсов, спроектировано так, чтобы обрабатывать в несколько раз максимальный ожидаемый объем, что в конечном итоге становится серьезным ограничением, поскольку Закон Мура увеличивает экономически доступные ресурсы. Оригинальный IBM PC обычно поставлялся с 64 КБ памяти или меньше; он был разработан, чтобы занимать максимум 640 КБ, что намного больше, чем предполагалось когда-либо. Это быстро превратилось в ограничение, с которым пришлось справляться сложным Управление памятью DOS. Подобные последовательные ограничения на размер были наложены и преодолены на жесткие диски.

Недоступная память

Потеря полезной памяти из-за отверстия PCI при использовании ввод-вывод с отображением памяти, вызвано использованием одного и того же адресного пространства как для физической памяти, так и для связи с аппаратными устройствами. Таким образом, установленным аппаратным устройствам требуется некоторая часть адресного пространства для связи с процессором и системным программным обеспечением. Поскольку 32-разрядное оборудование имеет в общей сложности четыре гигабайта адресуемой памяти,[а] При наличии достаточного количества памяти необходимо пожертвовать некоторой реальной физической памятью 32-разрядной машины, сделав ее скрытой, чтобы у устройств было место для связи. Какая часть физической памяти будет заменена пространством связи устройства, зависит от машины, но обычно она превышает 2,5–3,5 ГБ.

Объем скрытой и недоступной системной памяти сильно различается в зависимости от реальной материнской платы и набора микросхем, BIOS, объема физической памяти, объема видео RAM установленных на видеокартах, а также количество и тип Карты PCI установлен в системе. Если установлено четыре гигабайта физической памяти и несколько 3D-карт с большим объемом видеопамяти, может быть недоступно более гигабайта 32-разрядной системной памяти; на некоторых материнских платах размер отверстия всегда составляет не менее одного гигабайта, независимо от установленного карты расширения.

Расширение физического адреса

Обходной путь, впервые разработанный в Pentium Pro, известный как Расширение физического адреса (PAE), позволяет некоторым 32-битным операционным системам получать доступ к 36-битным адресам памяти, хотя отдельные программы по-прежнему ограничены 32-битным адресным пространством. При условии, что установлено достаточно памяти, каждая программа может иметь собственное адресное пространство размером четыре гигабайта, вместе используя до 64 гигабайт памяти для всех программ.

Но одного PAE недостаточно для решения проблемы дырки PCI, поскольку адреса памяти и адреса ввода-вывода PCI по-прежнему перекрываются где-то между 3-м и 4-м гигабайтами. Операционная система, совместимая с PAE, вместе с процессором, совместимым с PAE, не может работать лучше, чем доступ к памяти с 1-го по 3-й гигабайт, а затем с 5-го по 64-й гигабайт. Отверстие PCI все еще там. На хосте 4 ГБ и при отсутствии того или иного дополнительного обходного пути PAE ничего не делает для доступа к ~ 1 ГБ памяти, перекрытой PCI I / O.

PAE полностью поддерживался в Windows XP до выпуска Service Pack 1 (SP1), но затем был исключен для SP2; единственные 32-битные версии Майкрософт Виндоус для полной поддержки этого есть определенные серверные версии высокого класса 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-разрядную операционную систему; если машина настроена таким образом, необходимо временно изменить настройку BIOS для загрузки 16- или 32-разрядной операционной системы, например с загрузочного компакт-диска или USB-накопителя.

Отображение памяти на адреса выше 4 ГБ

Другой способ удалить отверстие PCI, который полезен только для 64-разрядных операционных систем и тех 32-разрядных систем, которые поддерживают метод расширения физического адреса, описанный выше, - это «переназначить» часть или всю память между двумя и ограничение в четыре гигабайта для адресов выше четырех гигабайт. Это должно поддерживаться набором микросхем компьютера и обычно может быть активировано в программе настройки BIOS. Это переназначение работает на уровне физические адреса, в отличие от высокоуровневого переназначения виртуальный на физические адреса, которые происходят внутри ЦПУ основной. Активация этого для традиционных 32-битных операционных систем приносит больше вреда, чем пользы, поскольку переназначенная память (часто больше, чем само отверстие PCI) непригодна для таких операционных систем, даже если, например, Виндоус виста покажет, что такая память физически существует на странице «Свойства системы».

Смотрите также

Примечания

  1. ^ При 16 битах два в степени 16 равняются 65 536 различным адресам; с 32 битами это 4 294 967 296 ячеек, а с 64 битами - 18 446 744 073 709 551 616.

Рекомендации

  1. ^ «Отверстие в памяти в системах на базе X86 с большим объемом памяти» (PDF). techfiles.de. Sun Microsystems. 19 мая 2014 года. Архивировано с оригинал (PDF) 19 июля 2011 г.. Получено 7 ноября, 2014.
  2. ^ Dansdata: Что с барьером памяти 3 Гб?