- •Билет №1 Структура эвм общего назначения. Алу, уу
- •Арифметико-логические устройства.
- •Устройства управления.
- •Описание сегментного механизма
- •Билет №2 Структура эвм общего назначения. Risc и cisc процессоры. Форматы машинных команд.
- •Risc и cisc процессоры.
- •Форматы машинных команд.
- •Описание страничного механизма.
- •Способы адресации.
- •Билет №3 Структура эвм общего назначения. Способы адресации. Стековая адресация. Виды стеков.
- •Стековая адресация. Виды стеков.
- •Особенности страничного механизма в Pentium и в р6.
- •Билет №4 Микропроцессор вм86. Назначение входов/выходов вм86 в минимальном/максимальном режиме.
- •Назначение входов/выходов вм86 в максимальном режиме.
- •Общие сведения о механизмах адресации в защищенном режиме.
- •Билет №5 Внутренняя архитектура мп вм86. Программная модель мп вм86.
- •Программная модель мп вм86.
- •Форматы системных таблиц защищенного режима. Системные таблицы
- •Билет №6 мп вм86. Сегментация памяти. Организация оперативной памяти.
- •Общие сведения о 32х разрядных процессорах фирмы Intel. Tss, ldt, gdt. Селектор,дескриптор. Билет №7 мп вм86. Организация адресного пространства портов ву.
- •Общие сведения о 32х разрядных процессорах фирмы Intel. Режимы работы, Режимы работы 32 разрядного процессора.
- •Билет №8 Программируемый адаптер к1810вв55 (i8255)
- •Битовая карта ввода вывода
- •Билет 9 Программируемый таймер к1810ви54 (i8254)
- •Механизм перехода в защищенном режиме
- •Билет №10 Общие сведения об обработке прерываний.
- •Формат машинной команды 32х разрядного процессора.
- •Билет №11 Система прерываний вм86.
- •Внутренняя кэш-память.
- •Билет №12 Контроллер прерываний к1810вн59 (i8259). Настройка вн59.
- •Сведения о внутренней организации 32-х разрядных процессорах, (состав, назначение).
- •Билет №13 Общие сведения о прямом доступе к памяти.
- •Буфер tlb. Кэш-память страниц.
- •Билет 14 Контроллер прямого доступа к памяти к1810вт37 (i8237).
- •Программирование кпдп вт37
- •Вопрос №2
- •Билет 15
- •1. Организация процессорного модуля вм86.
- •2.21 Организация процессорного модуля вм86.
- •Программная модель 32-разрядного мп.
- •Программная модель 32 разрядного мп
- •Билет 16 Слабосвязанная конфигурация.
- •2.23. Слабо связанные конфигурации.
- •Форматы таблиц gdt, ldt и idt.
- •3.4. Системные таблицы
- •Билет 17 Арбитр шин к1810вб89 (i8289).
- •2.24. Арбитр шин к1810вб89 (i8289).
- •Формат дескриптора.
- •3.15 Формат дескриптора.
- •Билет №18 Сильно связанные конфигурации на примере совместной работы мп86 и арифметического сопроцессора вм87.
- •Форматы элементов pte и pde.
- •3.8. Формат элемента pte (pde).
- •Билет №19 Формат машинных команд мп вм86.
- •Механизм переключения задач. Формат сегмента tss
- •Билет №20 мп вм86. Сегментация памяти. Организация оперативной памяти.
- •Сегментация памяти.
- •2.7 Организация оперативной памяти.
- •Общие сведения о кэш-памяти.
- •Внутренняя кэш-память
- •Сведения о кэшах в процессорах фирмы Intel.
Программирование кпдп вт37
Часть внутренних регистров ВТ37 имеют формат восемь бит, другая часть – 16 бит. Для того, чтобы по восьмиразрядной шине загрузить 16 разрядный регистр, требуется две передачи. Перед началом загрузки (или считывания) 16 битного регистра ВТ37, необходимо программным образом установить в ноль триггер «старший/младший», находящийся внутри ВТ37.
Системные адреса 0h, 2h, 4h и 6h выделены 16 разрядным регистрам адреса, соответственно канала 0, канала 1 и. т. д.
Системные адреса 1h, 3h, 5h и 7h присвоены счетчиком байт соответствующих каналов. По этим адресам загружаются размеры передаваемых блоков (число байт в блоке минус 1). Счетчики имеют формат 16 бит, но максимальный размер блока 214.
Все остальные регистры КПДП имеют формат 8 бит.
По адресу 8h загружается командное слово КПДП. Оно относится сразу ко всем каналам и имеет формат, показанный (в упрощенном виде!) на рис. 27.
Рис. 27
D1=1 – режим автофиксации при передаче «память –память».
=0 – нет режима автофиксации.
D0 =1 – режим «память – память».
=0 – нет режима «память – память».
По адресу 0bh производится настройка каналов на режимы работы. Настройка по этому адресу производится для каждого канала. Настроечное слово имеет формат, показанный на рис. 28.
Рис. 28
N1 и N0 задают двоичный номер канала.
D7 и D6 задают режим работы канала (00 – передача по требованию, 01 – одиночная передача, 10 – блоковая передача, 11 – каскадный режим).
D5 =1 – автодекремент адреса.
=0 – автоинкремент адреса.
D4 =1 – есть автоинициализация.
=0 – нет автоинициализации.
D3 и D2 задают направление передачи (01- из ВУ в ОП, 10 – из ОП в ВУ).
Передача любого байта по адресу 0ch, сбрасывает триггер старший/младший.
Передача любого байта по адресу 0dh вызывает программный сброс контроллера (аналогично действию сигнала RESET).
Передача любого байта по адресу 0eh демаскирует все каналы контроллера.
Вопрос №2
В общем случае переключение в защищенный режим требует серьезной подготовительной работы со стороны программиста, который должен выполнить примерно следующую последовательность действий.
Создать в памяти таблицы GDT и IDT.
Запретить внешние прерывания, в том числе и по входу NMI (если последний в системе используется). Связано это с тем, что в процессе переключения есть временной интервал когда таблица векторов прерываний реального режима уже не действует, а таблица IDT ещё не действует. Если на этом интервале МП воспримет любое прерывание наступит крах системы.
Перенастроить контроллеры прерываний на новые типы (номера) прерываний, с тем чтобы исключить конфликты между внутренними и внешними прерываниями. Собственно этот пункт не имеет никакого отношения к самому МП, а связан с особенностями функционирования IBM-подобных ПЭВМ. Когда фирма Intel выпустила МП 8086 она заняла под внутренние прерывания типы 0 - 4, но предупредила, что типы 5 -31 резервируются для внутренних прерываний будущих процессоров. По каким-то причинам (нам они не известны) фирма IBM это предупреждение проигнорировала и отвела типы 8 - 15 внешним прерываниям. В результате, например, тип 8 присвоен внешнему прерыванию от таймера (этот тип выдает на МП контроллер прерываний) и одновременно в 32 разрядных МП этот тип отведен особому случаю (внутреннему прерыванию) «двойная ошибка». Получается конфликт так как МП не знает какой обработчик он должен выполнять.
Открыть линию А20 (если она была закрыта).
Во внутренние регистры процессора gdtr и idtr загрузить начальные адреса и размеры таблиц GDT и IDT.
Установить бит РЕ. С этого момента мы в защищенном режиме.
Обычно первой командой в защищенном режиме ставится команда jmp far next (дальний переход на следующую команду программы). Команда очищает очередь команд от команд защищенного режима, а также заносит в видимую часть cs правильный селектор, по которому в дескрипторной таблице GDT отыскивается дескриптор сегмента кода. Далее этот дескриптор копируется в теневую часть cs. Очистка очереди команд нужна исходя из следующих соображений. Во всех рассматриваемых процессорах реализован конвейер команд. То есть в любой момент времени внутри процессора обрабатывается сразу несколько команд, находящихся на разных стадиях выполнения. Отсюда при переключении режимов возникает ситуация когда с конвейера еще сходят команды одного режима, а на конвейер уже поступают команды другого режима. Поскольку в разных режимах одни и те же команды выполняются по разному, такая ситуация иногда может приводить к различным коллизиям. Использование команды jmp снимает эту проблему. Начиная с Pentium использование команды jmp, для рассмотренной выше цели, необязательно, поскольку команды, меняющие содержимое регистров управления cr0-cr4, гарантируют, что все команды, идущие перед ними, будут завершены (так называемые «сериалайзд» команды – serialized instruction).
Разрешить внешние прерывания.
Не следует считать что все эти пункты всегда обязательны к исполнению, Это только общая схема действий, причем подразумевающая что мы переключаемся в защищенный режим «всерьёз и надолго». Если же требуется только «нырнуть» в защищенный режим и тут же вернуться обратно многие пункты можно исключить. В частности можно не создавать IDT, не загружать IDTR, и вообще не выполнять пункты 3,4 и 7.
