Логический адрес. Физический адрес.


Логический адрес, также называемый виртуальным, состоит из селектора (в реальном режиме — просто адреса сегмента) и смещения. Смещение формируется суммированием компонентов (base, index, disp) в эффективный адрес. Поскольку каждая задача может иметь до 16К селекторов, а смещение, ог­раниченное размером сегмента, может достигать 4 Гб, логическое адресное пространство для каждой задачи может достигать 64 Тб. Все это пространство виртуальной памяти в принципе доступно программисту (этот «принцип» долж­на реализовать операционная система).

Блок сегментации транслирует логическое адресное пространство в 32-бит­ное пространство линейных адресов. Линейный адрес образуется сложением базового адреса сегмента с эффективным адресом. Базовый адрес сегмента в реальном режиме образуется умножением содержимого используемого сегмент­ного регистра на 16 (как и в 8086). В защищенном режиме базовый адрес загружается из дескриптора, хранящегося в таблице, по селектору, загруженно­му в используемый сегментный регистр.

Физический 32-битный адрес памяти образуется после преобразования ли­нейного адреса блоком страничной переадресации. В простейшем случае (при отключенном блоке страничной переадресации) линейный адрес совпадает с физическим — присутствующим на внешней шине адреса процессора. Включен­ный блок страничной переадресации осуществляет трансляцию линейного ад­реса в физический блоками (страницами) размером 4 Кб. Этот блок может включаться только в защищенном режиме, подробнее его назначение и работа будут рассмотрены в п. 3.8.6.

Загрузка...