Что же с памятью моей стало?

Воскресенье, Май 29, 2011 8:04

Если сравнить объём оперативной памяти, выделяемой ОС и BIOS с реальной вместимостью физически установленных модулей, то можно заметить разницу, иногда незначительную, иногда наоборот. Тут описано, как это происходит и как это минимизировать.

Кругом одни ромашки…

Порой мы покупаем оборудование и с изумлением обнаруживаем, что объёмы памяти значительно ниже, чем нам обещает продавец. То ли сразу в ремонт компьютеров«» нести, то ли жаловаться. Поэтому сначала разберемся, как выявить обыкновенный обман. Система идентифицирует модули по протоколу Serial Presence Detect (SPD). Производитель устанавливает параметры в специальную микросхему Read Only Memory объёмом 256 байт (восемь разрядов шины адреса), установленную на модуле. BIOS считывает эти данные при запуске, и для инициализации использует их. Запущенные под ОС программы диагностики читают SPD, что пользователь и наблюдает. Так вот, если мы видим в SPD меньше памяти, чем нам указали в ценнике, то это работа нечистых на руку дилеров. Если же всё соответствует, но на деле нам доступно меньше, то всё дело в особенностях системной шины и контроллера DRAM, а также в том, что некоторые области памяти выделяются для других физических устройств. Именно об этом далее. Итак, что-то недоступно из-за контроллера DRAM, что-то уходит на BIOS и устройства, что-то теряет ОС.

Shadow RAM

Теневая область RAM, в которую переносятся данные из ROM BIOS системной шины и периферии. Нужно это в виду большего быстродействия RAM по отношению к ROM. Мало того, теперь данные в ROM хранятся в сжатом виде, потому этот процесс стал обязательным. Чипсет северного моста блокирует запись в эту область, притом блокирует сразу диапазон 000F0000h-000FFFFFh для системного BIOS и 000C0000h-000EFFFFh для периферии, не обращая внимания, на то, что второй зачастую не используется.

System Management RAM

Эта память также заблокирована чипсетом северного моста. Используется системным BIOS. Обычно это 128 килобайт, но иногда до нескольких мегабайт.

USB RAM

USB контроллер работает с оперативкой в режиме Bus Master, т.е.без участия процессора. Система довольно сложная и расходует много памяти, а выделиться она должна до ОС т.к. требуется работа с клавиатурой и флешкой. Тоже происходит и с другими устройствами. Обычно это десятки килобайт.

Память для интегрированного видео адаптера

Когда на системной плате есть интегрированный видео адаптер в составе северного моста, используется часть оперативки, как видео память. До загрузки системы BIOS выделяет для видео участок памяти в десятки мегабайт. Иногда BIOS позволяет вручную установить объём выделяемой памяти. При запуске ОС загружает видео драйвер, инициализует графический процессор и для видео автоматически выделяется больше памяти. На некоторых системных платах память резервируется даже, когда интегрированный адаптер не используется. Это вина BIOS. Замечу, что интегрированный видео адаптер иногда реализуется не в составе северного моста, а в виде отдельной микросхемы со своей памятью, в этом случае память для видео не резервируется.

Предел в 4Гб

Тут пропадает столько памяти, что всем остальным можно пренебречь. Особенно, если учесть, что Shadow RAM, ACPI и SMRAM резервируется BIOSом под внутренние нужды. Тут же память просто пропадает. Почему? Вот реальный пример. Процессор Intel Pentium 4 650 3.4 ГГц (ядро Prescott-2M) на Intel Socket 775, чипсет Intel 925XE. Ставим 4Гб оперативки, а ОС доступно приблизительно 365Гб. Что случилось с 0.5Гб? Может быть дело в процессоре? Судя по документации, процессор поддерживает 36-битную адресацию. Адресуется 2 байта в степени 36, что равно 64Гб памяти, а благодаря страничной трансляции их использование возможно как в 64- так и в 32-битном режиме. Значит слабое звено точно не процессор. Далее на пути стоит северный мост чипсета, в нашем случае это микросхема Intel 82925XE. Из документации видим, что чипсет поддерживает 32-битную адресацию, т.е. 4Гб. При этом часть уходит на устройства, доступ к которым реализуется через пространство памяти. Отсюда доступный объём оперативки будет намного меньше 4Гб. В нашем случае больше всего уходит на адресацию видео памяти и окно доступа к регистрам конфигурации PCI Express.

Об этом подробнеё. Адаптеры VGA, производимые во времена ISA, используют постраничный доступ к видео памяти через диапазон 000A0000h-000BFFFFh, что составляет 128Кб. Современные адаптеры для совместимости поддерживают этот режим, а также линейный доступ. При этом из-за стандартизации можно столкнуться с тем, что адаптер со 128Мб требует окно 256Мб. Механизм доступа к PSI использует 256 байт конфигурационных регистров на каждое устройство. PCI Express использует блоки регистров 4Кб, отсюда необходимость в новом механизме доступа. Этот механизм использует участок адресного пространства в 256Мб, через который конфигурационные регистры устройств адресуются, как ячейки оперативки.

Memory Remap

С чипсета Intel 955 ограничение в 4Гб было преодолено. Естественно в чипсетах для серверов это было сделано много раньше. Микросхема Intel 82955X принимает с процессора адрес в 36-бит, чем адресует 64Гб. Но максимальный объём памяти 8Гб. Теперь это связано не с разрядностью адреса, а с контроллером DRAM. При операции Memory Remap, диапазон до 4Гб форматирован, как и раньше. В этом диапазоне находится оперативная память, участок, отведенный под другие устройства. Но теперь этот участок не пропадает, а располагается выше 4Гб. Таким образом, если памяти более 4Гб, то все, что попало на зарезервированный участок располагается выше. Естественно физически доступная память выше 4Гб будет полезна только в том случае, если ОС поддерживает адресацию выше 4Гб, иначе эта память будет недоступна. Нужно учесть, что к памяти обращается не только процессор, но и другие устройства, использующие режим Bus Master, например, контроллер жестких дисков. В случае если он не поддерживает адресацию выше 32 разрядов, то при размещёнии данных выше 4Гб HDD будет писать данные в буффер ниже 4Гб, а от туда пересылку будет выполнять процессор, что снижает производительность и отнимает память.

Вы можете оставить комментарий, или трекбэк с вашего собственного сайта.

Оставьте комент или несколько