Добавил:
Rumpelstilzchen2018@yandex.ru Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

3-й семестр / Организация ЭВМиС; Орлов С.А., Цилькер Б.Я

..pdf
Скачиваний:
422
Добавлен:
25.12.2020
Размер:
5.43 Mб
Скачать

Система прерывания программ

161

 

 

от i-го источника ЗПi соответствующий (i-й) разряд РЗП устанавливается в 1. Выходы всех разрядов РЗП подключены к логическому элементу «ИЛИ», где формируется общий сигнал прерывания (ЗПОБЩ), если хотя бы в одном из разрядов РЗП содержится единица. Поступив в процессор, этот сигнал вызывает общую прерывающую программу, которая считывает состояние РЗП и определяет, какой разряд содержит единицу. После определения такого разряда вызывается соответствующая запросу программа обработки прерывания. По завершении обработки прерывания процессор путем посылки сигнала подтверждения ПДТi обнуляет тот разряд РЗП, для которого выполнялась обработка. СПП получается простой, но одновременно и самой медленнодействующей, поскольку анализ запросов выполняется программно.

Рис. 4.14. Система прерывания с регистром запросов прерывания

Обзорные системы прерывания предполагают процедуру опроса источников прерывания, которая, даже если и выполняется аппаратными средствами, требует сравнительно больших затрат времени. Более гибкими и динамичными являются СПП с векторными прерываниями, где исключается опрос источников прерывания. По этой причине в современных ВМ доминируют векторные СПП, и именно они будут предметом дальнейшего рассмотрения.

Прерывание называется векторным, если источник прерывания, выставляя запрос, посылает в процессор информацию о месте расположения в памяти ВМ своего вектора прерывания. Вектор прерывания содержит адрес соответствующей ему прерывающей программы, что и позволяет сразу же передать ей управление.

Идею векторного прерывания иллюстрирует рис. 4.15. Как и в схеме с регистром запросов прерывания, общий сигнал запроса ЗПОБЩ формируется путем объединения сигналов ЗП от всех потенциальных источников. Так как векторы прерываний поступают в процессор по общей шине данных, то возникает проблема подключения к этой шине именно того источника, который выставил запрос. На рис. 4.15 показан простейший вариант ее решения — цепочечный. Если процессор готов к обслуживанию прерывания, он выдает сигнал подтверждения ПДТ, который последовательно проходит через источники запросов, образующие цепочку, пока не достигнет источника, выставившего запрос. Именно этот источник получает право выдать на шину данных свой вектор прерывания.

162

Глава 4. Устройства управления

 

 

Рис. 4.15. Цепочечная схема векторных прерываний

Векторы прерывания хранятся в фиксированных ячейках основной памяти, поэтому обычно формируется не собственно вектор прерывания, а код номера запроса (КНЗ), который либо совпадает, либо легко преобразуется в адрес той фиксированной ячейки, где хранится соответствующий вектор прерывания.

Фиксированные ячейки, где хранятся векторы, рассматриваются как элементы таблицы векторов прерывания. Таблица эта обычно размещается в основной памяти, начиная с адреса 0. Элемент таблицы занимает несколько смежных ячеек, с тем чтобы в нем можно было разместить полный адрес обработчика прерываний (вектор прерывания). Пример таблицы векторов показан на рис. 4.16. Предполагается, что она располагается, начиная с адреса 0000H1, а длина вектора прерывания равна четырем байтам (32 бита). Так как при 8-битовой длине ячейки памяти вектор занимает четыре смежных ячейки, то адрес входа в таблицу вычисляется умножением КНЗ на четыре (это достигается сдвигом кода номера запроса на два разряда влево).

Рис. 4.16. Структура таблицы векторов прерывания

Векторная организация позволяет отказаться от общей программы обработки прерывания, благодаря чему обеспечивается малое время реакции.

1 Символ H означает, что адрес указан в 16-й системе счисления.

Система прерывания программ

163

 

 

Выбор и обслуживание запроса с наиболее высоким приоритетом

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

впервую очередь, а также имеет ли право данный запрос прервать выполняемую

вданный момент программу.

Каждому потенциальному источнику ЗП присваивается свой уровень приоритета. Определенный уровень приоритета имеет и выполняемая в данный момент программа. При поступлении нескольких запросов СПП, прежде всего, должна выделить из них тот, который имеет наиболее высокий уровень приоритета. Далее этот уровень сравнивается с уровнем приоритета прерываемой программы. Общий сигнал запроса ЗПОБЩ должен подаваться на вход процессора только в случае, когда уровень приоритета прерываемой программы ниже.

В случае векторной СПП все эти задачи возлагаются на контроллер векторных прерываний (КВП), обобщенная структура которого показана на рис. 4.17.

Рис. 4.17. Структура контроллера векторных прерываний

КВП имеет отдельные входы для каждого из n источников ЗП. Обычно это 8 или 16 входов. Поступившие запросы фиксируются в регистре запросов прерывания.

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

164

Глава 4. Устройства управления

 

 

На вход схемы выделения наиболее приоритетного запроса поступает код, содержащий единицы в позициях, соответствующих незамаскированным ЗП. Если таких единиц несколько (поступило несколько запросов), схема оставляет из них одну, а именно ту, что представляет запрос, имеющий более высокий уровень приоритета.

Далее код с единственной единицей поступает на вход формирователя номера запроса. Обычно код номера запроса (КНЗ) совпадает с номером бита в коде прерывания. Таким образом, формирователь преобразует унитарный код на своем входе в двоичный код номера запроса. По сложившейся практике уровень приоритета принимается равным КНЗ, причем считается, что наименьшим уровнем приоритета обладает запрос с КНЗ = 0.

Как уже отмечалось выше, прервать выполняемую программу может лишь тот ЗП, у которого уровень приоритета больше, чем у прерываемой программы. Уровень приоритета выполняемой в данный момент программы хранится в регистре порога прерываний. Содержимое регистра обновляется при каждом изменении уровня приоритета программы, текущее значение регистра называют порогом прерывания. Схема сравнения приоритетов сопоставляет приоритет поступившего запроса с порогом прерывания, и только если порог превышен (приоритет запроса выше), вырабатывает общий сигнал запроса прерывания ЗПОБЩ.

Получив сигнал ЗПОБЩ, процессор выдает в контроллер векторных прерываний сигнал подтверждения ПДТ. По этому сигналу КВП выставляет на шине данных код номера запроса, который поступает в процессор и используется как номер входа в таблицу векторов прерываний. Одновременно сигнал ПДТ обнуляет в регистре запросов прерывания разряд, представляющий ЗП, к обслуживанию которого приступил процессор.

В свою очередь, процессор, используя принятый КНЗ в качестве номера входа в таблицу векторов, извлекает из последней вектор прерывания (адрес обработчика) и приступает к обслуживанию прерывания. В момент запуска обработчика прерывания в регистр порога прерывания КВП заносится уровень приоритета обработчика прерывания, численно равный КНЗ. Обновление содержимого регистра порога может быть произведено процессором, но возможно и средствами контроллера (на схеме такой вариант не отражен). В любом случае, при возврате к прерванной программе процессор должен вернуть в регистр порога прерывания значение уровня приоритета этой программы.

Система приоритетов

Система приоритетов позволяет определить: имеет ли право поступивший запрос прерывания прервать выполняемую в данный момент программу. В случае одновременного поступления нескольких ЗП эта система дает возможность выбрать тот из них, который должен быть обслужен в первую очередь.

Различают абсолютный и относительный приоритеты. Запрос, имеющий абсолютный приоритет, прерывает выполняемую программу и запускает выполнение соответствующей прерывающей программы. Запрос с относительным приоритетом является первым кандидатом на обслуживание после завершения выполнения текущей программы.

Система прерывания программ

165

 

 

Простейший способ установления приоритетных соотношений между источниками ЗП заключается в том, что уровень приоритета определяется порядком присоединения линий сигналов запроса к линии общего сигнала ЗП. При появлении нескольких ЗП первым воспринимается запрос, поступивший на вход с большим номером. В этом случае приоритет является жестко фиксированным. Изменить приоритетные соотношения можно лишь изменением порядка подключения источников запросов на входах системы прерывания.

На практике степень важности прерывающих программ в процессе вычислений может меняться, поэтому соотношение приоритетов между ЗП должно быть динамичным, то есть программно-управляемым. В ВМ широко применяются два способа реализации программно-управляемого приоритета: способ порога прерывания и способ маски прерывания.

Сущность способа порога прерывания и его реализация были рассмотрены в рамках описания контроллера векторных прерываний.

В методе маски, изменяя содержимое регистра маски, можно устанавливать произвольные приоритетные соотношения между программами без коммутации линий, по которым поступают запросы. Каждая прерывающая программа может установить свою маску. С замаскированным запросом можно поступить двояко: или он игнорируется, или запоминается, с тем чтобы осуществить затребованные действия, когда запрет будет снят.

Метод порога более часто используется в микро- и мини-ЭВМ, а метод маски — в ВМ общего назначения.

Запоминание состояния процессора при прерываниях

Поскольку обслуживание запросов прерывания связано с необходимостью временного переключения на новую программу, то для обеспечения последующего корректного возврата к прерванной программе требуется запомнить состояние основных узлов ВМ на момент прерывания — контекст программы.

Неотъемлемым элементом контекста программы является состояние счетчика команд — там хранится адрес команды, с которой начинается возобновление выполнения прерванной программы. Как правило, работа обработчика прерывания сопровождается изменением содержимого аккумулятора (Акк) и регистра признаков (Рпрз), и последние также следует считать обязательными элементами контекста. Запоминание содержимого СК, Акк и Рпрз и их восстановление по завершении прерывания производится автоматически.

Помимо этого обработчик прерывания может менять и содержимое некоторых регистров общего назначения (РОН). Хотя в некоторых ВМ их состояние также сохраняется и восстанавливается автоматически, в общем случае забота о РОН, используемых в прерывающей программе, возлагается на эту прерывающую программу. Команды, отвечающие за такое сохранение и восстановление, размещаются в самом начале и самом конце обработчика прерывания соответственно. На время выполнения этих команд система прерывания отключается, чтобы исключить искажение сохраняемой и восстанавливаемой информации в случае, если в этот момент поступит новый ЗП и начнется его обслуживание.

166

Глава 4. Устройства управления

 

 

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

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

при прерывании с помощью аппаратных средств происходит автоматическая передача содержимого всех РОН в стек, а после окончания обработки прерывания — обратная передача. Эта система сохраняет содержимое всех регистров, вне зависимости от того, есть ли в этом необходимость.

В роли регистров в прерывающих программах используются ячейки основной памяти. Эта часть памяти разделена на секции, и каждой программе обработки прерываний выделена своя секция. Таким образом, каждая прерывающая программа как бы имеет свой независимый набор регистров, поэтому в их запоминании и восстановлении нет необходимости.

Вычислительные машины с опросом внешних запросов

В ряде случаев процессоры могут не иметь системы прерываний. Реагирование на внешние события в них осуществляется за счет периодического опроса источников таких событий («сканирования входов»). Если внешнее событие предполагает обслуживание, то запускается обработчик события, аналогичный обработчику прерывания. Опрос осуществляется периодически, причем частота опроса может выбираться в зависимости от важности события и возможной интенсивности возникновения данного события. Чтобы учесть случай возникновения события с высоким приоритетом в момент обслуживания события низкого приоритета, обработчики низкоприоритетных событий сами должны содержать цикл опроса высокоприоритетных событий.

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

Контрольные вопросы

1.Охарактеризуйте основные функции устройства управления.

2.Дайте характеристику входной и выходной информации модели УУ.

3.Поясните задачи декодирования команд и основные этапы такого декодирования.

4.Перечислите достоинства и недостатки МПА с аппаратной логикой.

5.Обоснуйте название МПА с программируемой логикой. Сформулируйте достоинства и недостатки таких МПА.

Контрольные вопросы

167

 

 

6.Объясните принцип управления на основе МПА с программируемой логикой.

7.Какие способы кодирования микрокоманд вы знаете? Перечислите их достоинства и недостатки.

8.Поясните подходы к адресации микрокоманд, охарактеризуйте их сильные и слабые стороны.

9.Какими параметрами характеризуются системы прерывания программ?

10. На какой стадии выполнения команды анализируются запросы прерывания?

11. Опишите последовательность действий, выполняемых при поступлении запроса прерывания.

12. Решение каких проблем позволяет решить маскирование прерываний?

13. Какие методы используются для идентификации источника запроса прерывания?

14. Как обеспечивается возобновление вычислений после обработки прерывания?

15. Для чего в обработчике прерываний предусмотрен временный запрет на прием запросов прерывания? Когда он вводится и снимается?

Глава 5

Операционные устройства

В классической фон-неймановской ВМ арифметическая и логическая обработка данных возлагается на арифметико-логическое устройство (АЛУ). В реальных вычислительных машинах АЛУ обычно реализуется не как единое устройство, а в виде комплекса операционных устройств (ОПУ), каждое из которых ориентировано на определенные операции и определенные типы данных. В общем случае можно выделить:

ОПУ для арифметической обработки чисел в форме с фиксированной запятой;ОПУ для арифметической обработки чисел в форме с плавающей запятой;ОПУ для логической обработки данных;ОПУ десятичной арифметики.

Специализированные ОПУ для логической обработки данных и десятичной арифметики в современных ВМ встречаются достаточно редко, поскольку подобную обработку можно достаточно эффективно организовать на базе ОПУ для чисел с фиксированной запятой. Таким образом, будем считать, что АЛУ образуют два вида операционных устройств: для обработки чисел в форме с фиксированной запятой (ФЗ) и обработки чисел в форме с плавающей запятой (ПЗ). В свою очередь, эти ОПУ также могут представлять собой совокупность операционных устройств, специализированных под определенную арифметическую операцию, например ОПУ сложения и вычитания, ОПУ умножения, ОПУ деления и т. п.

В минимальном варианте АЛУ должно содержать аппаратуру для реализации лишь основных логических операций, сдвигов, а также сложения и вычитания чисел в форме с фиксированной запятой. Опираясь на этот набор, можно программным способом обеспечить выполнение остальных арифметических и логических операций как для чисел с фиксированной запятой, так и для других форм представления информации. Подобный вариант, однако, не позволяет добиться высокой скорости вычислений, поэтому по мере расширения технологических возможностей доля аппаратных средств в АЛУ постоянно возрастает.

На рис. 5.1 показана динамика изменения соотношения между аппаратной и программной реализациями функций АЛУ по мере развития элементной базы вычисли­

Структуры операционных устройств

169

 

 

тельной техники. Здесь подразумевается, что по вертикальной оси откладывается календарное время.

Рис. 5.1. Динамика изменения соотношения между аппаратной и программной реализациями функций АЛУ

Структуры операционных устройств

Набор элементов, на основе которых строятся различные ОПУ, называется структурным базисом. Структурный базис ОПУ включает в себя:

регистры, обеспечивающие кратковременное хранение слов данных;управляемые шины, предназначенные для передачи слов данных;

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

Используя методику, изложенную в [15], можно синтезировать ОПУ с так называемой канонической структурой, являющуюся основополагающей для синтеза других структур. Каноническая структура предполагает максимальную производительность по сравнению с другими вариантами структур, однако по затратам оборудования является избыточной. С практических позиций больший интерес представляют другие виды структур ОПУ: жесткая и магистральная.

Операционные устройства с жесткой структурой

ВОПУ с жесткой структурой комбинационные схемы жестко распределены между всеми регистрами. Каждому регистру придается свой набор комбинационных схем, позволяющих реализовать определенные микрооперации. Пример ОПУ с жесткой структурой, обеспечивающего выполнение операций типа «сложение», приведен на рис. 5.2.

Всостав ОПУ входят три регистра со своими логическими схемами:

регистр первого слагаемого РСл1 и схема ЛРСл1;регистр второго слагаемого РСл2 и схема ЛРСл2;

регистр суммы РСм и схема комбинационного сумматора См.

Логическая схема ЛРСл1 обеспечивает передачу результата из регистра РСм в регистр РСл1:

170Глава 5. Операционные устройства

прямым кодом РСл1 := РСм (по сигналу управления П2РСл1);

со сдвигом на один разряд влево РСл1 := L1(РСм • 0) (по сигналу управления

L1РСм);

со сдвигом на два разряда вправо РСл1 := R2(s • s • РСм) (по сигналу управления

R1РСм).

Рис. 5.2. Операционное устройство с жесткой структурой

Логическая схема ЛРСл2 реализует микрооперации передачи второго слагаемого из РСл2 на левый вход сумматора:

прямым кодом ЛСм := РСл2 (по сигналу управления В РСл2);

 

инверсным кодом ЛСм :=

(по сигналу управления

);

со сдвигом на один разряд влево ЛСм := L1(РСл2 • 0) (по сигналу управления

L1РСл2).

Комбинационный сумматор См предназначен для суммирования (обычного или по модулю 2) операндов, поступивших на его левый (ЛСм) и правый (ПСм) входы. Результат суммирования заносится в регистр РСм: РСм := ЛСм + ПСм (по сигналу управления П2РСм) или РСм := ЛСм ПСм (по сигналу управления П2М2РСм).

Моделью ОПУ с жесткой структурой является так называемый I-автомат, с особенностями синтеза которого можно ознакомиться в [15, 20].

Аппаратные затраты на ОПУ с жесткой структурой CЖ можно оценить по выражению:

N

K

N

K

CÆ = nCT N + 3ni kij + ni Cj kij ,

i=1

j=1

i=1

j=1

гдеN —количествовнутреннихсловОПУ;n1,…,nN —длиныслов;n =(n1 +...+nN)/N — средняя длина слова; kij — количество микроопераций типа j = 1, 2, …, K (сложение, сдвиг, передача и т. п.), используемых для вычисления слов с номерами i = 1, 2, …, N; CT — цена триггера; Cj — цена одноразрядной схемы для реализации микрооперации j-го типа.

В приведенном выражении первое слагаемое определяет затраты на хранение n-разрядных слов, второе — на связи регистров с комбинационными схемами,