МПС

Микропроцессор 80286 (Лекция)

ПЛАН ЛЕКЦИИ

– Управление памятью

– Образование адреса

– Организация прерываний в защищенном режим

– Команды (в защищенном режиме) защиты управления многозадачностью и виртуальным пространством

 

            Это вторая очередь 16 разрядного микропроцессора. Работает в двух режимах: реальном (real mode) и защищенном (protected mode). Features:

1. Управление виртуальной памятью

2. Защита памяти

3. Возможность многопрограммных режимов

            1. Четыре одновременно работающих блока. Блоки согласования шины организует циклы шины и формирует адресные коды. Содержит двунаправленный приемо-передатчик для согласования с внешней шиной данных. 16-битная очередь команд в которую команды выбираются с запасом. Командное устройство формирует наборы управляющих сигналов воздействия на узлы процессора в соответствии с очередной командой, содержит трех звенную очередь докодируемых команд. Операционное устройство – защита памяти, формирование и управление адресов.

            В protected mode: TR – поддержка многозадачности.

 

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

 

NT

IOPL

OF

DF

IF

TF

SF

ZF

0

AF

0

PF

1

CF

IOPL – уровень привелегий ввода-вывода. Составная часть защиты микропроцессора. Действует только в PM, то есть IOPL привлекается механизмом защиты проца для управления доступом к адресному пространству ввода-вывода.

NT – флажок вложенной задачи. Действует в PM и устанавливается в 1 когда текущая задача переключается на другую задачу командой CALL. С помощью NT организуется цепь вложенных задач (по аналогии с вложенными подпрограммами). IRET и при NT=1, а при NT=0 производится обыкновенный возврат из подпрогаммы.

MSW – слово состояния машины, служит для управления состоянием машины. Содержит биты TS,EM,MP,PE.

PE – бит PM. если PE==1, то микропроцессор находиться в PM.

MP – наличие сопроцессора. 1 – есть, 0 – нет.

EM – бит эмуляции сопроцессора. 1 – эмуляция разрешена.

TS – бит переключеня задач. Автоматически устанавливается в 1 в момент переключения задач. Если в другой задаче встречаются команды для сопроцессора и TS=1, то микропроцессор генерит специальное прерывание по которому вызывается процедура реализующая сохранение содержимого регистров сопроцессора в стеке. Далее загружается новое состояние в сопроцессора и флажок TS сбрасывается в 0.

Управление памятью

            224=16 Мбайт. 230=1Гб – виртуальное адресное пространство. УУП опирается на таблицы дескрипторов, которые находятся в физической памяти, которые содержат по одному дескриптору для каждого имеющегося в системе сегмента. Дескриптор имеет 8 байт, а описывает 64Кбайта.

резерв для 386

доступ

база сегмента (16-23)

база сегмента (0-15)

граница сегмента

CS:

P

DPL

1

1

C

R

A

P – бит присутствия. Если P==1 – сегмент присутствует в основной памяти.

DPL – уровень привелегия сегмента (2 бита): 00 – 0, 01 – 1, 10 – 2, 11 – 3.

A – частота обращения к сегменту. Нужна для выгрузки из памяти.

R – разрешение считывания. 1 – считывание разрешено.

DPL+CS – дополнительная защита.

DS,ES:

P

DPL

1

0

ED

W

A

W – разрешение записи

ED – расширение сегмента стека. Если ED=1, то вниз, то есть в сторону меньших адресов. И служит для интерпретации поля границы предела. Если ED=0, то в сторону больших адресов.

            Таким образом дескриптор сегмента описывает сегмент:

1. поле база и поле границы определяет местонахождение и размер сегмента, при этом ED определяет как интерпретировать предел.

2. бит P и A помогает программам в защищенном режиме найти сегменты, которые надо предавать на диск или в основную память.

3. сегменты кода данных локальной дескрипторной табилцы (LDT) различаются кодированием, что позволяет реализовать их защиту.

4. биты W,R применяются для реализации дальнейших ограничений на доступ к сегментам.

5. поле уровня привелегий DPL и бит C используются для защиты сегмента кода от несанкционированного обращения.

Образование адреса

В реальном режиме.

В зщищенном режиме.

            Виртуальный адрес.

            213×232+213×232=213×216+213×216=229+229=230=8Гбайт.

            Формирование физического адреса из виртуального.

            Наличие cache-регистров дескрипторов в микропроцессоре позволяет автоматически переписывать в эти регистры содержимое регистров дескрипторов из глобальных дескрипторных таблиц при загрузке слекторов. Так как загрузка селекторов происходит очень редко, то быстродействие системы не ухудшается.

Организация прерываний в защищенном режим

1. INT n

2. Особые случаи. Микропроцессор сам формирует n

3. Аппаратные прерывания V(0-7)=n

            В защищенном режиме для адресной таблицы прерываний имеется регистр IDTR. Его можно загрузить с помощью команды LIDT или запомнить содержимое SIDT. Таблица IDT (как и GDT) – одна в системе. При переключении задач ее содержимое не изменяется. IDT доступна и в реальном режиме. Загружая с помощью команд LIDT и IDTR программист может размещать таблицу IDT в любом месте адресного пространства или перемещать ее. Шлюз (или дескриптор) вызывающий программу обработки прерываний – 8 байтный.

 

Команды (в защищенном режиме) защиты управления многозадачностью и виртуальным пространством

LGDT src ; src – 6-ти байтная ячейка или регистр

SGDT dst – запомнить содержимое регистра GDT

LIDT src

SIDT dst – запомнить содержимое регистра IDT

 

LLDT src – только в protected mode

SLDT dst – запоминает содержимое регистра локальной дескрипторной таблицы

 

LMSW src – загрузить слово состояния машины

SMSW dst – запомнить слов состояния машины

 

LTR src – загрузить регистр задачи

STR dst

 

LAR dst,src – загрузить страший байта права доступа к сегменту, соответствующе памяти

LSL dst,src – загрузить границу сегмента

 

ARPL – скорректировать запрашиваемый уровень прерывания к командам

VERR seg – установить флаг доступа по чтению

VERW seg – установть флаг доступа по записи

 

            Имеются следующие средства защиты, ограничивающие доступ к пользованию программ системы:

1. обычным программам запрещается применять некоторые программы

2. обычным программам делаются недоступными сегменты памяти, доступные для ОС

3. обычным программам делается невозможность получения привилегий ОС, кроме как вход в нее в разрешенных точках (через шлюзы).

            Допустимые точки входа в ОС идентифицируются специальными дескрипторами, называемыми шлюзами вызова. Вызвающая программа выполняет косвенно передачу управления через шлюз вызова. Команды CALL вызывающей проги обращаются через шлюз, который определяет точку входа вызывающей программы. В шлюзе имеется описание привелегий. Дескриптор шлюза содержит виртуальный адрес точки входа в првелегированном сегменте. Команда вызова содержит вируальный адрес сегмента, через который адресуется шлюз вызова.

Привелегированные команды.

            Уровень 0: LIDT, LLDT, LGDT, LTR, LMSW.

            Команды недоступные выше ввода/вывода (IOPL): пространство ввода/вывода защищено отдельно в регистре флагов. INS – ввести блок D, OUTS – вывести блок D, STI – запомнить флаг прерывания, CLI – загрузить флаг прерывания.