- •Билет №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.
Битовая карта ввода вывода
В регистре флагов ( ef ) имеется двух битовое поле IOPL, задающее уровень привилегий, на котором задаче разрешены операции ввода/вывода. Например, если CPL = 3, а в поле IOPL задана 2-ка при попытке выполнить команду in ( out или аналогичные) будет прерывание. Связано это с тем, что операции ввода/вывода - «опасные» операции, они могут вывести систему из строя. Поэтому система принимает меры защиты. Скорее всего наша команда in все же будет выполнена, но не напрямую. Обработчик прерывания запросит ОС и она, если это допустимо, выполнит нашу команду гарантированно корректно. Сменить содержимое поля IOPL можно только находясь на 0-м уровне привилегий.
Такое ограничение на операции ввода/вывода зачастую оказывается излишне жестким. Например имеет смысл ограничить доступ пользователя к 0-му каналу таймера (порт 40h), на работе которого базируется служба системного времени. Однако нет никакого смысла ограничивать доступ ко 2-му каналу таймера (порт 42h), заведующему генерацией звука. Для решения этой проблемы в TSS может быть создана битовая карта ввода/вывода.
Карта содержит в себе столько бит, сколько в системе портов. Каждый бит карты соответствует одному восьмиразрядному порту. Максимально в карте может быть 64Кбит. Если в i-ом бите записан 0-ль, то доступ к i-му порту разрешен всегда (IOPL игнорируется), если же там записана 1-ца, доступ к порту будет предоставлен только если не нарушаются права, заданные полем IOPL.
Процессор может работать не только с восьмиразрядными но и 16-ти и 32-х разрядными портами. 16-ти разрядному порту в карте ставятся в соответствие два смежных бита, начинающихся с четного номера. Аналогично 32-х разрядному порту соответствуют четыре смежных бита, начинающихся с номера, кратного 4-м. Приведем пример (рис. 61):
Из приведенного примера карты видно, что в системе всегда доступны 8-ми разрядные порты с адресами 1h, 2h, 3h, 4h и 6h, а также один 16-ти разрядный порт с адресом 2h. Остальные порты защищены полем IOPL.
Рис. 61
В режиме V86 условие CPL IOPL при выполнении команд in и out не проверяется и доступ к портам определяется битом в битовой картой ввода-вывода, то есть последняя для задач V86 создается обязательно. Кроме того в TSS задачи V86 непосредственно перед битовой картой ввода-вывода может располагаться битовая карта перенаправления прерываний.
Билет 9 Программируемый таймер к1810ви54 (i8254)
Назначение и внутренняя структура таймера.
Микросхема таймера разработана специально для использования в вычислительных системах, построенных на базе микропроцессоров фирмы Intel и им подобных. Она предназначена для получения программно-управляемых временных задержек, генерации временных функций, организации службы системного времени и других целей. Здесь можно отметить, что настроенный таймер работает независимо (асинхронно) от процессора, поэтому теоретически имеется возможность использовать данную микросхему саму по себе. Однако при отсутствии процессора возникает проблема программирования таймера, которую в этом случае придется решать аппаратным путем.
Микросхема таймера содержит три независимых канала (соответственно, Канал 0, Канал 1 и Канал 2), каждый из которых в процессе инициализации может быть настроен на счет в одном из шести режимов (режим 0 – режим 5). Внутри канала стоит 16 разрядный счетчик, работающий на вычитание. Перед началом работы канал должен быть запрограммирован (настроен). В процессе этой настройки каналу задается режим работы и система счисления (двоичная или двоично-десятичная), в которой он будет считать. После того как канал настроен, в счетчик канала загружается исходное число, из которого в процессе работы и будет производиться вычитание. Это число обычно называют коэффициентом пересчета и обозначают Кпр. Далее канал считает импульсы, поступающие на вход CLK канала. Декремент счетчика происходит по заднему фронту сигнала на этом входе. Например, пусть в счетчик загружен Кпр = 4, тогда после первого импульса на входе CLK содержимое счетчика будет равно 3, после второго – 2 и так далее. Результат работы канала формируется на его выходе OUT и напрямую зависит от режима, на который настроен данный канал.
Структурная схема таймера приведена на рис 1.1.
Рис
1.1. Структурная схема таймера ВИ54
Буфер шины данных. Это 8 битный буфер, связывающий таймер с системной шиной данных с помощью двунаправленных линий с тремя состояниями. Когда двунаправленные линии буфера переведены в Z-состояние, таймер отключен от шины данных. Подключение таймера к системной шине данных происходит, когда процессор, выполняя команду in или out, выставляет на шину адреса адрес одного из четырех адресуемых устройств таймера (соответственно канала 0, канала 1, канала 2 или регистра управляющего слова). Например:
out 43h, al |
; запись настроечного слова в регистр ; управляющего слова |
out 41h,al |
; запись байта Кпр в канал 1 |
in al, 40h |
; чтение байта из канала 0 |
Логика чтения/записи. Эта логика принимает сигналы с системных шин адреса и управления и на их основании генерирует управляющие сигналы для других внутренних блоков таймера. Комбинация сигналов на адресных входах А1 и А0 определяет выбор одного из четырех адресуемых устройств внутри таймера (один из каналов или регистр управляющего слова). Низкий уровень сигнала на входе IOR (input/output read – читаю порт внешнего устройства) говорит о том, что процессор выполняет команду in, читая информацию из порта какого-либо внешнего устройства. Аналогично, низкий уровень сигнала на входе IOW (input/output write – пишу в порт внешнего устройства) говорит о записи в порт (выполняется команда out). При этом невозможно одновременное поступление активного IOR и активного IOW, поскольку процессор не может выполнять команды in и out одновременно. Сигналы на входах IOR и IOW воспринимаются таймером только при наличии активного (низкого) сигнала на входе CS (chip select - выбор кристалла). Активный сигнал на CS подключает линии буфера шины данных к системной шине данных и означает, что процессор обращается именно к одному из устройств внутри таймера, а не к порту какого-либо другого внешнего устройства.
Регистр управляющего слова (РУС). Этот регистр выбирается при А0 = А1 = 1, CS = 0 и IOW = 0. При такой комбинации входных сигналов байт информации снимается с системной шины данных и через буфер шины данных и внутреннюю шину таймера попадает в РУС. Далее этот байт рассматривается как управляющее (настроечное) слово одного из каналов. Оно содержит в себе информацию о режиме работы канала, системе счисления и формате передачи Кпр в этот канал (точнее о формате передачи информации между процессором и каналом). Два старших бита управляющего слова задают номер канала, которому оно предназначено. Из РУС эта информация (без двух старших бит) переписывается в регистр статуса (смотри ниже) соответствующего канала. Важным является то, что в РУС информацию можно только записывать, считывание информации из РУС невозможно. То есть недопустима команда in al, 43h.
