|
В начало
Микропроцессор
80286
(Лекция)
ПЛАН ЛЕКЦИИ – Управление памятью – Образование адреса – Организация прерываний в защищенном режим – Команды (в защищенном режиме) защиты управления многозадачностью и виртуальным пространством Это вторая очередь 16 разрядного микропроцессора. Работает в двух режимах: реальном (real mode) и защищенном (protected mode). Features: 1. Управление виртуальной памятью 2. Защита памяти 3. Возможность многопрограммных режимов 1. Четыре одновременно работающих блока. Блоки согласования шины организует циклы шины и формирует адресные коды. Содержит двунаправленный приемо-передатчик для согласования с внешней шиной данных. 16-битная очередь команд в которую команды выбираются с запасом. Командное устройство формирует наборы управляющих сигналов воздействия на узлы процессора в соответствии с очередной командой, содержит трех звенную очередь докодируемых команд. Операционное устройство – защита памяти, формирование и управление адресов. В protected mode: TR – поддержка многозадачности.
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Кбайта.
CS:
P – бит присутствия. Если P==1 – сегмент присутствует в основной памяти. DPL – уровень привелегия сегмента (2 бита): 00 – 0, 01 – 1, 10 – 2, 11 – 3. A – частота обращения к сегменту. Нужна для выгрузки из памяти. R – разрешение считывания. 1 – считывание разрешено. DPL+CS – дополнительная защита. DS,ES:
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 – загрузить флаг прерывания. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||