Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
АВМиС - бывшее АПЭВМ / Шпоргалка_apevm.doc
Скачиваний:
32
Добавлен:
15.09.2014
Размер:
146.94 Кб
Скачать

Билет 18 Таблица дескрипторов idt

В защищенном режиме МП 80286 и МП 80386 используется еще и третья дескрипторная таблица – таблица дескрипторов прерываний - IDT (рис), рассчитанная для хранения 256 дескрипторов. Она может состоять только из дескрипторов шлюза задачи, шлюза прерываний и шлюза ловушек. Таблица дескрипторов прерываний имеет в CPU 24-разрядный (МП 80286) или 32-разрядный (МП 80386) регистр физической базы и 16-разрядный регистр предела (длины) таблицы - IDTR. Привилегированная команда LIDT загружает регистр IDTR шестибайтовым значением так, как показано на рис (идентично команде LGDT).

Обращение к элементам IDT происходит через команды INT, векторы внешних прерываний или исключительных ситуаций. Для резервирования входов в обработчики всех прерываний IDT должна иметь размер 256*8 байт.

CPU Память, таблица

┌───────────────────────┐ дескрипторов прерываний (IDT)

│ │ ┌─├──────────────┤

│ 15 IDTR 0 │ │ │ Шлюз для │

│ ┌─────────────┐│ │ │прерывания n │

│ │ ├──>│ ├──────────────┤

│ │ Предел IDT ││ │ │ Шлюз для │

│┌───────┴─────────────┤│ │ │прерывания n-1│

││База IDT. 24-разряд- ││ │ ├──────────────┤

││ный или 32-разрядный ││ │ │ │

││физический адрес ├──┐│ │ . . . │

│└─────────────────────┘│ ││ │ │

│ 23(31) 0 │ ││ ├──────────────┤/\

│ │ ││ │ Шлюз для │││ Направление

│ │ ││ │прерывания 1 │││ увеличения

│ │ ││ ├──────────────┤││ адресов

│ │ ││ │ Шлюз для │││ памяти

└───────────────────────┘ ││ │прерывания 0 │││

└┴>├──────────────┤

Рис. 3.32. Определение таблицы дескрипторов прерываний

Команда LIDT может использоваться для загрузки базы таблицы векторов прерываний и в реальном режиме работы. После включения питания машины база таблицы IDT принимает нулевое значение и длину 3FFh.

Интерфейс Multi BUS 1

Билет 19 Дескриптор шлюзов (S=0, тип=4-7, С, F)

Дескрипторы шлюзов - это одна из форм системного дескриптора, используемая для обращения к данным, находящимся на уровне привилегий, отличном от текущего. Формат дескриптора шлюза показан на рис.

Разряды 63-48 в МП 80286 - резерв, должны быть равны нулю

┌───────────────────^────────────────────┐

7 0 7 0

┌───────────────────┬────────────────────┐

│ Смещение 31-16 │+6

├───┬───┬──┬────────┼─┬─┬─┬──────────────┤

│ P │DPL│ S│ Тип │0│0│0│ Счетчик 4-0 │+4

├───┴─┴─┴──┴─┴─┴─┴──┼─┴─┴─┴──────────────┤

│ Селектор сегмента назначения 15-0 │+2

├───────────────────┼────────────────────┤

│ Смещение 15-0 │0

└───────────────────┴────────────────────┘

15 8 7 0

Рис. 3.36. Формат дескриптора шлюза

Распределение полей дескриптора шлюза приведено в табл

┌───────┬────────────┬────────────────────────────────────────────────────┐

│ Имя │ Значение │ Описание │

│ поля │ │ │

├───────┼────────────┼────────────────────────────────────────────────────┤

│Тип │ 4 │ Шлюз вызова МП 80286 │

│Тип │ 5 │ Шлюз задачи (для задач МП 80286 или МП 80386) │

│Тип │ 6 │ Шлюз прерывания МП 80286 │

│Тип │ 7 │ Шлюз ловушки МП 80286 │

│Тип │ С │ Шлюз вызова МП 80386 │

│Тип │ Е │ Шлюз прерывания МП 80386 │

│Тип │ F │ Шлюз ловушки МП 80386 │

├───────┼────────────┼────────────────────────────────────────────────────┤

│Р │ 0 │ Содержимое сегмента не доступно (нет в памяти) │

│Р │ 1 │ Содержимое сегмента доступно (находится в памяти) │

├───────┴────────────┴────────────────────────────────────────────────────┤

│DPL - наименее привилегированный уровень, на котором задаче может быть │

│ доступен шлюз │

├─────────────────────────────────────────────────────────────────────────┤

│Счетчик - количество параметров, копируемых из стека вызывающей задачи в │

│ стек вызываемой процедуры. Размерность параметров - 32 бит для │

│ МП 80386 и 16 бит для МП 80286. См. главу "Многозадачность" │

├─────────────────────────────────────────────────────────────────────────┤

│Селектор - селектор кодового сегмента места назначения для │

│сегмента шлюза вызова, прерывания, ловушки или │

│назначения селектор сегмента состояния задачи места назначения │

│ (16-разрядный селектор) │

├─────────────────────────────────────────────────────────────────────────┤

│Смещение - точка входа внутри кодового сегмента места │

│назначения назначения (размерность 16 бит для МП 80286 и 32 │

│ бит для МП 80386) │

└─────────────────────────────────────────────────────────────────────────┘

Основное различие между дескрипторами МП 80286 и дескрипторами МП 80386 состоит в интерпретации поля счетчика слов шлюза вызовов и поля D/В дескриптора сегмента назначения. Поле счетчика слов определяет количество 16-разрядных копий для шлюза вызова МП 80286 и 32-разрядных копий для шлюза вызова МП 80386. Поле D управляет размером операндов, сохраняемых при использовании шлюза вызовов. Если D=0, сохраняются 16-разрядные слова, если D=1, сохраняются 32-разрядные двойные слова.

Интерфейс Multi BUS 2