4. Пространство физической памяти
Основную часть
физического адресного пространства PC
занимает оперативная
память (ОЗУ),
начинающаяся с нулевого адреса. В нее
вклинивается область адресов A0000h-FFFFFh
— Upper
Memory
Area
(UMA),
384 Кбайт —
верхняя память,
зарезервированная со времен IBM
PC
для системных нужд. В UMA
размещаются области буферной памяти
адаптеров шины (E)ISA
(например, видеопамять) и постоянная
память (BIOS
с расширениями). ОЗУ продолжается и за
областью UMА.
Под самой верхней границей физического
адресного пространства имеется образ
памяти системной ROM
BIOS.
Для доступности
сервисов BIOS
в реальном режиме все ПК имеют образ
ROM
BIOS
в адресах E0000h-FFFFFh
или F0000h-0FFFFFh.
Кроме того, образ BIOS
должен находиться и под самой верхней
границей адресного пространства,
поскольку все процессоры х86 по аппаратному
сбросу стартуют с адреса начала последнего
параграфа памяти (FFFFFFF0h
– с 32-разрядной шиной адреса, FFFFFFFF0h
– Р6 и выше с 36-разрядной шиной адреса).
FE0000h-FFFFFFh
содержит образ ROM
BIOS,
обращение к этой области эквивалентно
обращению к ROM
BIOS
по адресам 0E0000h-0FFFFFh.
Для ПК с 32-битной шиной адреса теоретический
предел объема ОЗУ — почти 4 Гбайт, верхний
образ BIOS
находится в адресах FFFE0000h-FFFFFFFFh.
Для ПК на процессорах Р6+ с 36-битной шиной
адреса предел объема ОЗУ — почти 64 Гбайт
и верхний образ BIOS
находится в адресах FFFFE0000h-FFFFFFFFFh.
Области физических
адресов, не занятые ОЗУ и ROM
BIOS,
могут быть использованы устройствами
шин (E)ISA
и PCI,
AGP.
Шина PCI
имеет 32-разрядную шину адреса, поэтому
ее ведущим устройствам доступна вся
физическая память. Для вариантов
системных плат с памятью более 4 Гбайт
и 36-разрядной физической адресацией
последних моделей процессоров PCI
может использовать двухадресные циклы
обращения с 64-битным адресом.
Для устройств PCI
могут выделяться любые области адресов,
свободные от ОЗУ, ROM
BIOS
и устройств ISA.
Области адресов памяти, используемые
каждым устройством PCI,
описаны в заголовках их конфигурационных
пространств. Эти данные требуются при
распределении ресурсов и настройке
мостов PCI
в процессе инициализации шины.