Распределение областей системной памяти ([5], с.39)
Логическая структура памяти PC обусловлена особенностями системы адресации процессоров семейства x86. Процессоры 8086/88, применявшиеся в первых моделях PC, имели адресуемое пространство оперативной памяти 1 Мбайт (что ограничивалось 20-разрядной адресной шиной). Эти процессоры использовали сегментную модель памяти, унаследованную и старшими моделями в реальном режиме.
Согласно этой модели, исполнительный адрес AE вычисляется как
AE = S 16 + D,
где S – содержимое сегментного регистра, а D – смещение (записанное в каком-либо регистре или непосредственно в команде), причем и S и D ограничены двумя байтами, т.е. 16-ю двоичными или 4-мя шестнадцатеричными разрядами каждое.
Такое формирование исполнительного адреса обеспечивает доступ к адресному пространству от 00000h до FFFFFh (соответствующему 20-разрядному адресу). Кроме того, при значениях S = FFFFh и D = FFFFh получаемый исполнительный адрес AE = 10FFEFh, указывает на область выше первого мегабайта памяти, однако, старшая единица такого адреса расположена в 21-м разряде, что при 20-разрядной шине адреса дает AE = 0FFEFh. Таким образом, адресное пространство как бы сворачивается в кольцо с небольшим “нахлестом”.
Начиная с процессора 80286 шина адреса была расширена до 24-х разрядов, с 386DX – до 32-х разрядов, а с Pentium II – до 36 разрядов. Но в реальном режиме, используемом DOS, формально доступен только 1 Мбайт памяти, а при эмуляции реального режима в процессоре 80286 было обнаружено, что он эмулирует 8086 с ошибкой: единица двадцать первого разряда адреса A20 (считая с нуля) попадает на шину адреса, и адрес выходит за границы первого мегабайта.
Ошибку исправлять не стали, так как она давала доступ в дополнительный сегмент (64K – 16) оперативной памяти, позволяя увеличить ее объем, доступный прикладным программам. А саму область адресов 100000h - 10EEFEh стали называть высокой областью памяти (High Memory Area – HMA) и грузить в нее небольшие резидентные программы и часть операционной системы. Но для обеспечения полной совместимости с 8086/88 в IBM PC ввели дополнительный вентиль Gate20 адресной шины A20, управляющий передачей на нее сигнала процессора. Переключение этого вентиля сперва осуществлял контроллер клавиатуры, а затем, так как этот вариант оказался слишком медленным, появились и иные варианты его реализации. Это нашло свое отражение в соответствующей опции утилиты установки параметров BIOS.
Основную часть доступного адресного пространства занимает оперативная память. Объем установленной памяти определяет тест, выполняемый сразу после включения питания – Power On Self Test (POST). Обнаружив отсутствие памяти или ошибку, тест останавливается и сообщает объем реально работающий памяти.
Распределение памяти PC, непосредственно адресуемой процессором, приведено в таблице 2 и является следующим
Таблица 2. Распределение памяти ПЭВМ
Адреса | Объем | Название |
1000000h и выше | Общий – 16 МБ | Дополнительная память (XMS-EMS) |
FE0000h – FFFFFFh | 128 КБ | Образ BIOS |
10FFF0h – FDFFFFh | До 14,8 МБ | Дополнительная память (XMS-EMS) |
100000h – 10FFEFh | 64 КБ – 16 байт | Высокая область памяти (HMA) |
E0000h – FFFFFh | 128 КБ | ПЗУ BIOS |
A0000h – DFFFFh | 256 КБ | Верхняя область памяти (UMA) |
00000h – 9FFFFh | 640 КБ | Стандартная (базовая) память |
00000h – 9FFFFh – Conventional (Base) Memory – Стандартная (базовая) память – 640 КБ оперативной памяти, доступныхDOSи программам реального режима (и защищенного, конечно, тоже). В иногда встречающихся системах с монохромным видеоадаптеромMDAэта память расширяется на 64 КБ до адресаAFFFFh.
A0000h – FFFFFh – Upper Memory Area (UMA – не путать с совпадающей аббревиатурой дляUnified Memory Architecture, подход, предполагающий единую адресацию оперативной и видео памяти) – Верхняя область памяти, или просто верхняя память, зарезервированная для системных целей. В этой области размещаются буферы видеоадаптеров, постоянная (или флэш) памятьBIOSс расширениями. Эта область разделяет оперативную память, используемую прикладными программами, создавая определенные затруднения для управления оперативной памятью.
Память выше 100000h–Extended Memory (Extended вместе сExpanded также означают области дополнительной памяти, различающиеся способом доступа, что создает некоторую запутанность в терминологии)– дополнительная память, непосредственно доступная только в защищенном режиме. В ней особо выделяется область 100000h – 10FFEFh(высокая память –HMA – High Memory Area) –доступная непосредственно в реальном режиме процессорам 286 и старше при открытом вентилеGate20 21-го разряда адресной шины. Эта область используется драйверомHYMEM.SYSдля размещения ядраDOSи некоторых резидентных программ с целью экономии стандартной памяти.
Для компьютеров с 24-разрядной шиной адреса (286 и 386SX) верхняя граница дополнительной памяти – FDFFFh (16 МБ без последних 128 КБ). Область адресов FE0000h – FFFFFFh соответствует ПЗУ BIOS и обращение по этим адресам эквивалентно обращению к ПЗУ BIOS (ROM BIOS) по адресам 0E0000h – 0FFFFFh.
Для процессоров 386DX, 486 и Pentium, имеющих 32-разрядную шину адреса теоретическая верхняя граница 4 ГБ, а образ BIOS дополнительно отображается в адреса диапазона FFFE0000h – FFFFFFFFh.
(В некоторых системах BIOS отображается в область FE0000h – FFFFFFh, что можно запретить в соответствующей в опции настройки BIOS, поскольку при таком отображении ОЗУ не может быть более 16 МБ. Иногда, наоборот, для старых карт расширения на шине ISA требуется область буфера с адресами в 16-м мегабайте, что можно задать с помощью опции Memory Hole At 15-16M BIOS. Однако, это также не позволит использовать в таких системах более 16 МБ оперативной памяти.)
Для процессоров с 36-разрядной шиной адреса (Pentium PRO, II и III) – теоретическая верхняя граница ОЗУ составляет 64 ГБ.
Реально в ПЭВМ образца 2000-2001 г.г. устанавливается оперативная память объемом 32 – 256 КБ, хотя в серверах она может достигать до 2 ГБ.
Стандартная (conventional) память распределяется так, как показано в табл.3:
Таблица 3. Распределение стандартной памяти ПЭВМ
Адреса | Объем | Название |
00000h – 003FFh | 1 КБ | Векторы прерываний |
00400h – 004FFh | 256 байт | Область переменных BIOS |
00500h – xxxxxh | Зависит от загрузки DOS | Область DOS |
Xxxxxh – 9FFFFh | До 638 КБ | Область программ пользователя. (В случае PS/2 мыши 9FC00h – 9FFFF Занимает расширение области переменных BIOS |
В верхней памяти (UMA) располагаются системные области: буферная память видео адаптеров, область BIOS, резерв для адаптеров, имеющих собственные модули BIOS, область конфигурирования системы (Extended System Configuration Data – ESCD ) для устройств Plug & Play. Кроме того, остающееся место (которое называют UMB – Upper Memory Blocks) используют для загрузки резидентных компонент DOS.
Дополнительная память (вся память выше 1 МБ + область HMA) может использоваться DOS-программами либо с помощью спецификации EMS (Expanded Memory Specification) либо в соответствии со спецификацией XMS (eXtended Memory Specification). Оба слова: Extended и Expanded переводятся примерно одинаково – расширенный, что создает определенную путаницу в терминах.
EMS поддерживается в DOS драйвером (диспетчером памяти) EMM386.EXE, который организует доступ к дополнительной памяти через добавление старших разрядов (адрес страницы) к адресам области D0000h – DFFFFh (хотя эта зона может несколько смещаться). Такой метод используется только для старых программ и то только для хранения данных, но не исполняемых кодов.
XMS поддерживает драйвер HYMEM.SYS, который организует доступ к дополнительной памяти через переключение в защищенный режим и обратно.
- Средства тестирования и отладки пэвм
- Программные средства отладки
- Команда прерывания
- Пошаговый режим
- Регистры отладки
- Аппаратные средства отладки
- Режим системного управления smm
- Режим виртуального процессора 8086 (v86)
- Распределение областей системной памяти ([5], с.39)
- Пространство ввода-вывода (адреса компонентов системной платы) ([5], с.49)
- Автоматическое распределение системных ресурсов (Первоначальный заголовок – Спецификация Plug&Play для шины isa) ([5], с.69)
- Системный порт, таймер и динамик (компоненты системной платы) ([5], с.81)
- Интерфейс и контроллер клавиатуры ([5], с.85)
- Кмоп память и часы реального времени (cmos Memory и rtc – Real Time Clock)([5], с.89)
- Цифровой аудиоканал ([5], с.107)
- Rom bios.Тест начального включения([5], с.С.111,148)
- Rom bios.Конфигурирование пэвм –bios Setup([5], с.156)
- Адресация информации на жестких дисках и их разделы ([5], с.553)
- Блок питания пэвм ([5], с.783)
- Заземление пэвм ([5], с.769)