
- •Микропроцессорные системы
- •Регистры общего назначения
- •Системные регистры мп
- •Недостатки сегментной организации памяти режима реального адреса.
- •Сегментная организация памяти в защищенном режиме.
- •Страничное преобразование адреса
- •Регистр cl3, старшие 20 бит которого называются регистром каталога страниц pdbr. Это единственный физический адрес, который находится в защищенном режиме.
- •Команды работы с цепочками (строковые) данных
- •Копирование строк
Недостатки сегментной организации памяти режима реального адреса.
28.02.2013
Небольшой размер сегмента - 64 килобайта.
Отсутствие аппаратных средств контроля за правильным размещением сегментов. В общем случае могут частично либо полностью перекрываться.
Любая программа, в том числе и пользовательская, может обратиться к любому сегменту памяти, в том числе и сегментному, для выполнения операций считывания и записи.
Наличие эффекта заворачивания адреса
Сегментная организация памяти в защищенном режиме.
В защищенном режиме может 4 гб в соответствии с разрядностью адресной шины – максимальный размер сегмента. В защищенном режиме реализуется механизм виртуальной памяти, которая обеспечивает поддержку работы множества задач и распределение физической памяти между процессами. В защищенном режиме линейный адрес, который формируется механизмом поддержки сегментной организации, не равен физическому адресу памяти, т.е. является виртуальным. для получения из линейного адреса физический получается страничное преобразование адреса. Каждый сегмент в защищенном режиме характеризуется некоторым объемом информации, которая записывается в специальную системную структуру данных, называемую дескриптором (64 разряда). В системе может быть большое количество дескрипторов.
63 47 0
ЛБА |
G |
D |
X |
U |
Предел (4 б) |
AR |
ЛБА |
31 15 0
ЛБА |
предел |
7 AR 0
P |
DPL (2 б) |
S |
Тип (3 б) |
А |
ЛБА (2,3,4,7) – определяет линейный базовый адрес сегмента в 4-гб линейном пространстве.
20-битное поле ПРЕДЕЛА предназначено для хранения максимально возможного размера адреса смещения, что фактически определяет размер сегмента.
Если G = 0, то единица измерения 1 байт. Следовательно не больше 1 Мб. Если равен 1, то единица измерения – страница (4 Кб), соответственно 1 Мб*4Кб = 4Гб.
Бит D (размер по умолчанию) определяет совместимость с 16-разрядным процессором. При =0, операнды считаются имеющие 16 бит, при =1 – 32-разрядня адресация.
Х – резервный бит.
U – пользовательский бит.
AR – байт прав доступа.
Бит A – доступа. Устанавливается в 1 автоматически. При поддержке использования режима виртуальной памяти.
Поле ТИПА (3 бита) справа налево: 1 бит определяет, что находится в соответствующем сегменте (0 – данные, 1 - код);
для сегмента данных 2 бит – бит расширения вниз (0 – обычный сегмент данных, 1 – сегмент стека); 3 бит 0 – разрешает чтение-запись, 1 – только чтение (для сегмента стека 3 бит только 0, для данных и 0 и 1).
для кодового сегмент 2 бит называется битом подчиненности (0 – обычный кодовый, 1 – подчиненный (не имеет собственного уровня привилегий) кодовый сегмент); 3 бит 0 – чтение/исполнение соответствующего кода, 1 – только исполнение.
Бит системы S – предназначен для описания системного объекта, т.е. соответствующий дескриптор описывает системный объект.
Двухбайтное поле привилегии дескриптора DPL - определяет уровень привилегий дескриптора. С каждым сегментом ассоциируется уровень привилегий. Всего 4 уровня:
00 – 0
01 – 1
10 – 2
11 – 3
Наиболее привилегированным является 0 уровень, 3 – уровень пользовательских программ – наименее привилегированный.
Бит Р – бит присутствия. При =1, когда описываемый дескриптором сегмент находится в физической памяти. При выгрузке дескриптора в область файла подкачки, бит сбрасывается в 0. Если генерируется обращение к сегменту, который выгружен на диск, т.е. Р=0, то в этом случае генерируется исключение, в процессе обработки которого сегмент отыскивается и загружается в оперативную память. Нормальный механизм поддержки виртуальной памяти.
Все дескрипторы группируются в дескрипторные таблицы. Отличают глобальную дескрипторную таблицу и локальную дескрипторную таблицу. Глобальная таблица существует в единственном экземпляре и предназначена для поддержки работы системы в целом и работы программ. Локальная дескрипторная таблица может создаваться для каждой задачи, доступ к ней возможен только из задачи.
Команда les помещает базовый адрес источника s в соответствующий регистр es, а адрес смещения в указанный приемник, т.е. соответственно будут помещены не базовые адреса, а селекторы. Размер зависит от выбора адресации.
Mov d, offset s
Mov d, seg (сегментный адрес) s