
- •Вопрос 1 Понятие прерываний
- •Вопрос 2
- •Вопрос 3.
- •Вопрос 4.
- •Вопрос 5.
- •Вопрос 6.
- •Вопрос 7.
- •Вопрос 8. Блочная организация основной памяти
- •Расслоение памяти
- •Ускорение ядра» микросхемы зу
- •Вопрос 9.
- •Вопрос 10
- •Вопрос 11.
- •Виды адресов[2]
- •Вопрос 12
- •Вопрос 13
- •Вопрос 14.
- •Вопрос 15
- •Кэш с прямым отображением (direct mapped);
- •Полностью ассоциативный кэш (fully associative);
- •Множественно-ассоциативный кэш (set associative).
- •Вопрос 17.
- •Вопрос 18.
- •Вопрос 19.
- •Вопрос 20.
- •Вопрос 21.
- •Вопрос 22.
- •Вопрос 23.
- •Вопрос 24.
- •Вопрос 25.
- •Вопрос 26.
- •Процесс передачи команды от процессора к внешнему устройству в эвм с магистральной архитектурой
- •Вопрос 27.
- •Вопрос 28.
- •Вопрос 30
- •Вопрос 31
- •Вопрос 32
- •Вопрос 33
- •Вопрос 34.
- •Вопрос 35
Вопрос 3.
Приоритеты прерываний. Прерывание происходит в момент окончания текущей команды. За время выполнения команды, а также за время выполнения обработчика прерывания, в процессор может поступить несколько сигналов прерываний, одновременное обслуживание которых невозможно. Для разрешения конфликтной ситуации сигналам (причинам) прерываний присваиваются различные приоритеты. Приоритет – это преимущественное право (перед другими) на обслуживание – привилегия в обслуживании. Приоритет характеризуется целым числом 0, 1, … . Чем меньше число, тем выше приоритет. Приоритеты распределяются между причинами в зависимости от степени важности причины. В зависимости от динамики процессов быстропротекающим процессам обычно назначают более высокие приоритеты. Некорректность в работе аппаратуры (отказ) в отличие от некорректности в программе также необходимо обслуживать в первую очередь. Некорректную программу можно снять со счета и начать выполнять другую программу. Отказ же аппаратуры делает невозможным выполнение любой программы. Поэтому реакция на отказ должна иметь преимущества перед другими причинами прерываний.
Программные прерывания осуществляются по командам прерывания INTО, INT3, INT N, используемым при программировании (встраиваемым в программы). Команда INT N (длиной два байта) вызывает обработчик прерываний с номером N(0,1, … ,256), указанным в адресной части команды. Используется обычно для вызова программ ОС. Команда INTО (прерывание по переполнению) является (безадресной) командой условного перехода. Обеспечивает вызов подпрограммы (с фиксированным номером N=4) по условию (флагу) переполнения OF=1. Команда INT3 (программный останов в контрольной точке) используется для отладки программы и обслуживается вектором с фиксированным номером N=3.
Внешние (аппаратные) прерывания вызываются сигналами от внешних устройств. Делятся на маскируемые и немаскируемые прерывания, вырабатываются асинхронно по отношению к исполняемой программе. Прерывание исполняемой программы по внешним сигналам может наступить только после исполнения текущей команды. Длительные строковые команды имеют специальные окна для прерываний.
Схема системы прерываний представлена на рисунке 5. Для внешних сигналов прерываний система прерываний является двухуровневой: арбитр системы прерываний имеет два входа – NMI, INTR, на которые могут подаваться внешние сигналы прерываний.
Маскируемые прерывания вызываются сигналами, поступающими на вход INTR (Interrupt Request – запрос прерывания). На этот вход подается сигнал (запрос) прерывания с выхода программируемого контроллера прерываний ПКП типа i8259А. Запросы прерываний от различных устройств У1, … , УК подаются на входы IRQk ПКП. Каждый из них может быть замаскирован маской m1 ... mk внутри ПКП. Объединенные по ИЛИ сигналы прерывания выдаются на выход ПКП: =m11 … mkk, k=15, где 1 … k – сигналы прерываний на входах IRQk ПКП. Запросом на прерывание является фронт сигнала . Он вызовет прерывание, если, в свою очередь, не замаскирован битом маски IF из регистра флагов. Кроме маскирования контроллер ПКП обеспечивает возможность программирования приоритетов сигналов по входам IRQ0 …IRQ15.
Немаскируемые прерывания вызываются сигналами, поступающими на вход NMI (Non Mascable Interrupt – немаскируемое прерывание). На этот вход подаются сигналы прерываний от источников, требующих безотлагательной обработки, поэтому по отношению к входу INTR имеют более высокий приоритет. Маска IF на вход NMI не действует. На входе NMI запросом на прерывание является высокий уровень сигнала. Запрос, поступивший на этот вход, обслуживается вектором прерываний с номером N=2. Этот номер формируется процессором автоматически. Обслуживание прерывания по входу NMI осуществляется без прерывания, так как этот сигнал сбрасывается только после выполнения команды IRET.