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

ЭВМ лекции

.pdf
Скачиваний:
61
Добавлен:
08.05.2015
Размер:
2.95 Mб
Скачать

23. Организация системы прерывания программ

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

Прерывающие

ЭВМ программы

(обработчики)

Внутренний

Прерываемая

программа

запрос

Внешний

Внешняя

среда

запрос

Рис. 23. 1 Прерывание программы

Каждое событие, требующее прерывания, сопровождается сигналом, оповещающим об этом ЭВМ и называемым запросом прерывания. Прерывания могут порождаться внутренними и внешними событиями:

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

191

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

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

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

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

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

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

контроллеры прерываний небольших микроЭВМ часто строятся на логических микросхемах общего назначения.

Основными функциями системы прерывания являются:

o запоминание состояния прерываемой программы и осуществление перехода к прерывающей программе;

o восстановление состояния прерванной программы и возврат к ней.

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

192

микрокоманды, команды, программы). Однако не вся эта информация искажается при переходе к другой команде или программе, поэтому из всего многообразия информации о состоянии программы (процессора) отбирают наиболее существенные ее элементы, изменяющиеся при переходе к другой команде или программе.

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

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

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

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

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

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

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

193

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

Характеристики систем прерывания

Общее количество запросов прерывания количество источников запросов прерывания.

Тип представления прерывания. Как правило, запрос прерывания представлен уровнем потенциала.

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

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

Прерываемая программа

Запрос

 

t

прерываний

 

 

Прерывающая

 

t

 

 

программа

 

 

(обработчик)

 

t

 

 

tр tз

tппр

tв

tp время реакции системы на прерывание;

tз время запоминания состояния прерываемой программы; tппр время собственно прерывающей программы;

tв время восстановления состояния прерванной программы

Рис. 23. 2. Упрощенная временная диаграмма процесса прерывания

194

Задержка прерывания (издержка прерывания). Задержка прерывания (tзад)

определяется суммарным временем на запоминание (tз) и восстановление (tв)

программы:

 

 

 

 

 

 

 

 

 

 

 

tзад

= tз + tв.

 

 

 

 

 

 

 

 

 

 

Запрос

1

2

3

 

 

Глубина

 

 

прерывания

 

 

определяет

 

максимальное

прерываний

 

 

 

 

 

Глубина преры-

1

2

3

t

число

программ,

которые

 

 

 

 

могут

прерывать

друг друга.

вания = 1

 

 

 

 

Если

после

перехода

от

 

 

 

3

 

t

 

 

2

 

2

 

основной

программы

к

 

 

 

 

прерывающей

обслуживание

Глубина преры-

1

 

1

 

 

 

 

 

 

 

 

 

 

вания ¹ 1

 

 

 

 

остальных

 

 

 

запросов

 

 

 

 

 

t

запрещено,

то

считается,

что

Рис. 23. 3 Упрощенная временная диаграмма процесса

система

имеет

 

глубину

прерывания в системах с различной глубиной

 

 

 

прерывания,

 

равную

1.

 

 

 

 

 

 

 

Глубина равна n, если допускается последовательное прерывание до n программ.

Глубина прерывания обычно совпадает с числом уровней приоритетов в системе

прерывания. Как правило, приоритет прерываний возрастает у каждого

следующего запроса. Системы с большим значением глубины прерывания

обеспечивают более быструю реакцию на срочные запросы.

 

 

 

 

 

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

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

195

время реакции на прерывание определяется, в основном, длительностью выполнения одной команды.

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

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

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

 

 

 

 

 

1 ОСП

Число

 

уровней

 

 

 

 

 

прерываний.

Число

 

РгЗП

 

 

 

 

 

 

 

 

 

 

В процессор

различных

источников

 

0

 

 

 

 

прерываниянаЗапросы

 

 

 

 

 

запросов

 

(причин)

0

1

ЗПК1

распознаванияСхема

прерываниякласса

 

 

 

прерывания

 

может

 

 

 

 

 

 

1

1

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

достигать

десятков

и

 

 

 

 

 

 

 

 

.

 

 

 

 

В контроллер

даже

сотен. Однако

в

 

.

1

ЗПКk

 

 

прерываний

ряде

случаев

многие

 

.

 

 

 

запросы поступают

от

 

k

 

 

 

 

 

.

 

 

 

 

групп

 

однотипных

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

РгЗП регистр запросов прерывания;

устройств,

 

для

 

ОСП общий сигнал прерывания;

 

 

 

 

 

 

 

 

 

 

ЗПК запросы классов прерывания

 

обслуживания

которых

Рис. 23. 4 Разделение запросов на классы прерывания

требуется одна и та же

 

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

196

(обработчик). Запросы от всех источников поступают в РгЗП, устанавливая соответствующие его разряды (флажки) в состояние 1, указывающее на наличие запроса прерывания. Запросы классов прерывания ЗПК1-ЗПКk формируют элементы ИЛИ, объединяющие разряды РгЗП, относящиеся к соответствующим уровням. Еще одна схема ИЛИ формирует ОСП, поступающий в УУ процессора. Он формируется при любом запросе (поднятом флажке) прерывания.

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

управления прерывающей программе соответствующий триггер РгЗП сбрасывается.

Организация перехода к вызывающей программе

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

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

Различают абсолютный и относительный приоритеты.

Абсолютный приоритет (асинхронное прерывание) запрос, имеющий абсолютный приоритет, при поступлении сразу же прерывает выполняемую в

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

197

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

Структуры систем прерывания

Две основные базовые структуры радиальная и цепочечная.

Радиальная структура

 

Шина данных (ШД)

 

Адрес вектора

 

прерывания

Процес-

ОСП

Контрол-

 

сор

ЛПП

лер пре-

 

рываний

 

ПП

 

ЛЗП1

РгЗП ЗПk

ЛЗПk

ИЗП1

ЛЗПi

ИЗПk

ИЗП источник запросов прерывания; ЗП сигнал запроса прерывания;

ПП сигнал подтверждения прерывания;

ОСП общий сигнал прерывания; ЛЗП линия запросов прерывания;

ЛПП линия подтверждения прерывания; РгЗП регистр запросов прерывания

Рис. 23. 5 Радиальная структура системы прерывания

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

Основным преимуществом такой структуры является упрощение аппаратных средств ИЗП, относящихся к обслуживанию процесса прерывания,

198

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

Все запросы от ИЗП фиксируются в разрядах РгЗП. При поступлении запроса в соответствующий разряд РгЗП записывается 1. Дальнейшая

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

1.При поступлении любого запроса (или нескольких запросов) в РгЗП формируется ОСП. Этот сигнал транслируется в процессор, а также инициирует процедуру поиска запроса с максимальным приоритетом, результатом

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

2.Процессор заканчивает выполнение текущей команды и посылает в контроллер сигнал "Подтверждение прерывания".

3.В ответ на сигнал "Подтверждение прерывания" контроллер выставляет на ШД код адреса вектора прерывания.

4.Процессор считывает с ШД код адреса вектора прерывания, сохраняет

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

Цепочечная структура

Характерной особенностью цепочечной структуры является то, что к одной ЛЗП может подключаться множество ИЗП. Каждая ЛЗП соответствует одному входу в систему прерывания и обладает собственным уровнем приоритета. В

отличие от радиальной структуры запросы от ИЗП всегда представлены уровнем потенциала. Запросы прерывания, поступающие с разных ЛЗП и имеющие различный приоритет, могут фиксироваться в разрядах РгЗП.

199

 

 

Шина данных (ШД)

 

 

 

 

Адрес вектора

 

 

 

 

 

 

прерывания

 

 

6

 

 

 

 

 

 

 

 

2

ОСП

 

ЛЗП1

 

 

Процес-

 

Контрол-

РгЗП

 

 

 

ЛЗПi

1

 

сор

 

рываний

 

ЛПП лер пре-

 

 

 

3

ПП

 

 

 

ЛЗПk

 

 

 

ЗПj

 

 

 

 

ЛППk

4

 

 

 

 

ИЗПj

ИЗПm

 

 

 

 

ИЗП1

 

 

 

ППk

 

5

 

ЛППi

ЛПП1

ИЗП источник запросов прерывания; ЗП сигнал запроса прерывания;

ПП сигнал подтверждения прерывания;

ОСП общий сигнал прерывания;

ЛЗП линия запросов прерывания; ЛПП линия подтверждения прерывания

Рис. 23. 6 Цепочечная структура системы прерывания (цифрами обозначена последовательность прохождения сигналов)

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

объем аппаратуры поддержки системы прерывания в каждом ИЗП существенно увеличиваются, что увеличивает стоимость системы прерывания и ЭВМ в целом.

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

чтобы при отсутствии любого ИЗП цепь распространения сигнала ПП не размыкалась. Это обеспечивается либо специальной конструкцией контактов слота, либо перемычками на системной плате.

К каждой ЛЗП (входу системы прерывания) может быть подключено множество запросчиков ИЗП, объединенных по схеме "или". Сигнал "подтверждение прерывания" распространяется по цепочке ИЗП, подключенных к одной ЛЗП. Распространение этого сигнала блокируется ИЗПj, выставившим

200

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]