Как BIOS определяет объем доступной оперативной памяти?

Как BIOS определяет объем доступной оперативной памяти?

Если BIOS — это 16-битная программа, работающая в реальном режиме, и в этом режиме можно адресовать только 1 МБ, как BIOS определяет объем доступной оперативной памяти, например, 1 ГБ?

решение1

BIOS — это 16-битная программа, работающая в реальном режиме, и в этом режиме возможна адресация только 1 МБ.

Это неверно.

16-битный реальный режим не ограничивает процессор 1 МБ памяти.

Хотя верно, что процессор x86 запускается в реальном режиме и по умолчанию использует 16-битный набор инструкций 8086, в наборе инструкций 80286 есть расширения. Если вы добавите к инструкции 8086 префикс байта 0x67, это позволит этой инструкции получить доступ к 32-битному регистру, который имеет доступ к 2 32 байтам или 4 ГБ памяти.

Если вы используете 64-битный процессор, процессор может использовать PAE (Расширение физического адреса), что дает процессору доступ к 252 байтам памяти, что больше, чем может быть физически установлено на любой современной материнской плате.

ИсточникКак BIOS может определить полный размер расширенной памяти


Как BIOS определяет объем доступной оперативной памяти, например, 1 ГБ?

Он использует методы, описанные в технических описаниях контроллера памяти (Северный мост).

Большинство BIOS не могут использовать оперативную память, пока не определят тип установленной оперативной памяти, затем не определят размер каждого модуля памяти и не настроят чипсет на использование обнаруженной оперативной памяти.

Все это зависит от методов, специфичных для чипсета, и обычно документируется в технических описаниях контроллера памяти (северного моста).

Во время этого процесса ОЗУ непригодно для запуска программ. BIOS изначально работает из ПЗУ, поэтому он может запускать необходимые игры с помощью микросхем ОЗУ. Но сделать это изнутри любой другой программы совершенно невозможно.

ИсточникОбнаружение памяти (x86)

Связанный контент