Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Б М.docx
Скачиваний:
148
Добавлен:
09.06.2015
Размер:
2.63 Mб
Скачать

Маска внешних прерываний

г Режим управления Маска прерывания от схем контроля ,iСостояние: оживание/счет Состояние: задача/супервизор у Признак результата

ООО

Маска ввоОагвывода

Режим пвре-

адресации^

Л

Ш

раммы

х

0 1\2 *56 7 8 1111131*151617101920 \ Z3Z* 31

Маска рееистрации Маска программных

программных мобытий прерываний

00000000

Адрес команды

32

39*0

63

б)

Рис. 9.31. Структура ССП в машинах ЕС ЭВМ: а — режим основного управления; б — режим расширенного управления

Прерывания повторного пуска поступают от кнопки повтор­ного пуска на пульте оператора.

Система прерывания в ЕС является комбинированной — с аппаратурным выделением наиболее приоритетного из запро­сов от классов прерывания и программно-опросным выявлением конкретной причины прерывания внутри класса по «коду пре­рывания», который запоминается в ОП при каждом прерывании, а также по дополнительной информации, запоминаемой в ОП при некоторых видах прерывания (например, по слову состояния канала при прерываниях от ввода-вывода). Особую гибкость этой системе прерывания придают маски прерывания.

Текущее состояние программы характеризуется вектором состояния, который в ЕС ЭВМ называется словом состояния программы (ССП).

В ЭВМ ЕС, архитектура которых сложилась в основном раньше, чем получили развитие малые и микроЭВМ, отсутствует

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

На рис. 9.31 представлена структура ССП дЛй обоих режи­мов управления. Слово состояния программы занимает два 32-разрядных слова.

Режим управления устанавливается значением 12-го разря­да ССП. При 0 в этом разряде имеет место режим основного управления, при 1 — расширенного.

Рассмотрим значения полей ССП основного режима управ­ления.

Непосредственно к системе прерывания относятся поля ССП, содержащие маски прерывания и код прерывания. Предусмотре­ны следующие маски:

маска системных прерываний. Отдельные разряды этой маски имеют следующий смысл: 0—маска мультиплексного канала; /—6 — маска селекторных каналов соответственно № I—5; 6 — определяет, допустимо ли прерывание для каналов с номерами' выше 5 (прерывание возможно, если равны 1 этот разряд и разряд маски соответствующего канала в управляю­щем регистре); 7 — маска внешних прерываний. Замаскирован­ные прерывания ввода-вывода и внешние сохраняются в ожида­нии последующей обработки;

маска прерывания от схем контроля (разряд 13). Замаскиро­ванное прерывание теряется;

маска программных прерываний. Отдельные разряды этой маски имеют следующий смысл: 36 — маска переполнения с фик­сированной точкой; 37 — маска десятичного переполнения; 38 — маска исчезновения порядка; 39 — маска потери значимости (нулевая мантисса). Замаскированные прерывания теряются.

Маски устанавливаются и изменяются программным путем. Прерывание данного класса разрешается при наличии 1 в со­ответствующем разряде маски и запрещается (маскируется), если этот разряд содержит 0. Установка масок производится либо в момент прерывания в соответствии с содержанием но­вого ССП, либо при выполнении специальной команды загрузки ССП.

Код прерывания (разряды 1631) указывает для данного класса прерывания фактическую причину (источник) запроса прерывания. Например, при прерывании от ввода-вывода этот код указывает источник запроса прерывания (номер канала, номер периферийного устройства), при программном прерыва­нии — причину прерывания (некорректность кода операции, ад­ресации, представления данных, переполнение разрядной сетки, исчезновение порядка, потеря значимости и др.).

В остальных полях ССП содержится информация, характе­ризующая другие параметры состояния программы в момент прерывания. Сюда относятся присвоенный программе код клю­ча защиты памяти и код признака результата последней вы­полнявшейся команды. Слово состояния программы содержит адрес команды, с которой программа должна начать работать при новом пурке, а также код длины предшествующей коман­ды. Это позволяет в ряде случаев определить ее адрес, что ис­пользуется при некоторых прерываниях (например, от програм­мных ошибок).

Слово состояния программы хранит также программные состояния процессора для данной программы, определяемые состоянием соответствующих управляющих триггеров.

В рассматриваемых ЭВМ существуют четыре альтернатив­ных программных состояния процессора:

  1. Стоп или Работа (переключение производится вручную). В состоянии Стоп команды программы и прерывания не выпол­няются, электронные часы ЭВМ стоят. В состоянии Работа команды и прерывания могут выполняться;

  2. Ожидание или Счет (определяется значением разряда 14 ССП). В состоянии Ожидание программа ожидает прерыва­ния (например, от ввода-вывода), команды не выполняются, машинные часы работают. В состоянии Счет команды выпол­няются обычным путемг"

  3. Супервизор или Задача (определяется значением разря­да 15 ССП). В состоянии Супервизор могут выполняться все команды, а в состоянии Задача не выполняются жоманды ввода- вывода и некоторые команды управления (привилегированные команды);

  4. Прерывание разрешено или Прерывание замаскировано. Прерывание может быть замаскировано установкой нулей в раз­ряды масок прерываний. Если какие-либо разряды этих масок содержат единицу, то соответствующие прерывания выполняют­ся (состояние Прерывания разрешено).

В режиме расширенного управления введены новые пре­рывания. К ним относятся программные прерывания, связанные: а) с работой монитора (программа сбора статистических по­казателей о работе программ и процессора); б) с регистрацией программных событий; в) с динамической переадресацией (не­правильное использование сегмента, страницы, нарушения спе­цификации при переадресации). Введены новые внешние пре­рывания для режима многопроцессорной системы (оповещение о сбое, экстренный сигнал и сигнал внешнего вызова) и от систе­

мы отсчета времени (от таймера процессора, компаратора и при нарушении синхронизации часов). Потребовалось ввести новые маски и коды прерывания. Поэтому в режиме' ЕС расширен состав и изменено расположение полей в ССП — часть полей ССП вынесена в управляющие регистры и ячейки постоянно распределенной области памяти. Поля с кодом прерывания и ко­дом длины команды располагаются в фиксированных ячейках этой области памяти.

В управляющем регистре 0 разряд 0 задает (запрещает) блок-мультиплексный режим каналов ввода-вывода; разряд 1 — управление запретом установки маски системы; разряд 2 — управление синхронизацией часов; разряды 8, 9 и 11 — управле­ние размером страниц и сегментов при динамическом распреде­лении памяти; разряды 1619 — маски оповещения о сбое, экстренном сигнале, сигнале внешнего вызова.

В управляющем регистре 1 разряды 0—7 и 8—25 выделены для указания соответственно длины и адреса таблицы сегментов. Расширенные маски каналов находятся в разрядах 0—31 управ­ляющего регистра 2. Маска монитора находится в разрядах 16—31 управляющего регистра 8. Расширенная маска програм­мных событий размещена в разрядах 0—3 и 16—31 управляю­щего регистра 9. В управляющих регистрах 10 и 11 в разрядах 8—31 находятся граничные адреса области памяти, на которую распространяется регистрация программных событий.

Процедура перехода к прерывающей программе и возврата из нее, реализуемая в ЕС ЭВМ, пояснена на рис. 9.32. Каждому