Метод сегментных регистров (метод сегментов) предполагает разделение физического адресного пространства на сегменты, каждый сегмент может быть любого размера, но не более полного логического адресного пространства. В структуре центрального процессора выделяется не один, а несколько специальных регистров, как правило, не менее четырех, на которых хранятся базовые физические адреса сегментов. Эти регистры, чтобы отличать их от регистров базового адреса при относительной (индексной) адресации, называют сегментными регистрами. Физический адрес определяется путем сложения логического адреса с содержимым одного из сегментных регистров.
Схема формирования физического адреса по методу сегментных регистров
Как правило, выбор сегментного регистра осуществляется по умолчанию, по типу данных, к которым происходит обращение, т.е. за каждым сегментным регистром закрепляется определенная структура данных.
Типовое назначение сегментных регистров:
· кодовый (сегмент программы) CS
· стека (сегмент стека в общей памяти) SS
· данных (сегмент текущих данных по умолчанию) DS
· дополнительный ES
Дополнительный сегментный регистр может быть использован или для определения сегмента внешних устройств, или для определения дополнительного сегмента данных (со специальными командами), или для организации "длинного" перехода и т.д.
Содержимое сегментных регистров, кроме кодового, изменяется по специальным командам, а содержимое регистра кодового сегмента - только по командам "длинного" перехода.
Рассмотренный подход реализации метода базовых регистров является наиболее простым, достаточно универсальным и позволяет одной программе одновременно "работать" с физической памятью, превышающей полное логическое адресное пространство (при четырех сегментных регистрах - до четырех логических адресных пространств).
Метод сегментов является развитием метода банков, здесь банки памяти выделяются под каждый тип данных
Под данные, команды, стек может быть отведено много банков, тогда надо задавать № банка и признак типа данных
Для каждого типа данных заводить большую физическую память
Плавающие банки
Сегменты расположены в памяти с шагом 16 байт
|
Рг – сегментный регистр
Набор сегментных регистров микропроцессора 8086
| ||||
| ||||
| ||||
| ||||
При переполнении сегмента нельзя давать +1 в младший разряд сегментного регистра
Метод окна
В общем случае метод окна предполагает разделение физического адресного пространства на две области: разделяемую, в которой располагаются прикладные программы и массивы данных, и фиксированную, в которой размещаются ядро операционной системы и регистры внешних устройств.
Логические сегменты, содержащие ядро операционной системы (БСП) и регистры внешних устройств, отображаются в фиксированную область памяти (как правило, по фиксированным адресам), а программы и данные - в разделяемую область памяти.
Распределение памяти методом окна:
последняя зона адресов объявляется окном; Алог > k
Схема формирования длинного физического адреса из короткого логического
Использование метода сегментов без участия ЦП невозможно
При использовании метода окна схема может находиться за пределами ЦП
Отметим основные особенности метода окна.
Во-первых, одна и та же программа не может одновременно работать с несколькими массивами данных, расположенными в разных страницах физической памяти. Аналогично, несколько программ из разных областей физической памяти не могут непосредственно обращаться к одному и тому же массиву, так как и программа, и данные должны обязательно находиться в пределах одного окна и, соответственно, требуется перезагрузка или программ, или данных.
Во-вторых, если ЦВМ имеет принстонскую архитектуру, то изменение содержимого регистра старших разрядов адреса расширяемой памяти выполняется только по командам "длинного" перехода.