Распределение адресного пространства диспетчером памяти
Другой подход к реализации метода сегментов (базовых регистров), когда и программы, и данные, и регистры внешних устройств располагаются в одном логическом адресном пространстве, использует схему преобразования логических адресов в физические, которая называется диспетчером памяти, и использует механизм дополнительных граничных регистров. Суть этого подхода состоит в том, что логическое адресное пространство разделяется на отдельные сегменты, как правило, по их функциональному назначению. Например, сегмент операционной системы, сегмент исполняемой программы, сегмент данных, сегмент стека, сегмент регистров внешних устройств, сегмент векторов прерываний и т.п.
Рис. Распределение физического адресного пространства диспетчером памяти
Аф.б. – адрес физический базовый
Каждая секция характеризуется Агр.мл. и Агр.ст. (Агр.мл. – адрес границы младший, Агр.ст. – адрес границы старший)
Осуществляем трансляцию адреса, когда попадаем в i-ю секцию
Для каждой исполняемой программы границы логических сегментов определяются заранее (до этапа выполнения) и фиксируются на специальных регистрах граничных адресов. Кроме того, каждому логическому сегменту соответствует свой базовый регистр, на который заносится начальный (базовый) адрес соответствующего сегмента физической памяти. При обращении к физической памяти или внешним устройствам логический адрес сравнивается со значениями граничных адресов каждого логического сегмента. После определения того, к какому логическому сегменту происходит обращение, логический адрес складывается с содержимым соответствующего регистра базового адреса, в результате чего получается исполнительный физический адрес.
Схема формирования физического адреса в диспетчере памяти:
По сравнению с методом сегментов применение диспетчера памяти требует больших аппаратных затрат. Во-первых, число сегментов, как следует из приведенного выше перечисления, как правило, больше четырех, а во-вторых, для каждого сегмента необходимо иметь кроме собственно сегментного регистра еще два регистра граничных адресов и схемы сравнения.
Поскольку диспетчер памяти имеет достаточно много регистров (более двадцати), то обращение к ним организуется как к регистрам внешних устройств, т.е. по операциям ввода-вывода, что позволяет:
· исключить из системы команд операции с регистрами расширения памяти;
· исключить операции "длинного" перехода, который реализуется несколькими командами в сегменте операционной системы;
· рассматривать диспетчер памяти как дополнительное особое внешнее устройство, и таким образом, работать уже готовому центральному процессору, формирующему только короткие логические адреса, с физической памятью большого объема.
Больше 1 Мб схема становится неудобной; такие схемы используются для физической памяти небольшого объема – или несколько Мб, а у Intel – 1Мб.
Рг в схеме 16-ти разрядные
80286 16Мб
идея страничной организации памяти
идея окна – схема выносится за пределы ЦП
всего 2n-1 регистров, т.е. примерно используется 2n регистров
Схема встраивается в схему управления памятью
Диспетчер памяти становится внешним устройством, обращение к регистрам осуществляется как обращение к регистрам внешнего устройства (ВУ)
Зона ВУ должна транслироваться одним и тем же образом