Материал: А. Д. Чередов, А. Н. Мальчуков

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

tизд =tз + tв.

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

Запросы прерывания
Выполнение прерывающих программ с

n = 1

Выполнение прерывающих

1 2 3

1
2 3
3
t
Относительная

t дисциплина обслуживания

программ с 2

n = 3

1

2
Абсолютная

1 дисциплина

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


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

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

Программно-управляемый приоритет прерывающих программ


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

В ЭВМ широко применяется способ маскирования прерываний.

Существуюбт два специальных внешних сигнала среди входных сигналов процессора, при помощи которых можно прервать выполнение текущей программы и тем самым переключить работу центрального процессора. Это сигналы NMI (Non Mascable Interrupt, немаскируемое прерывание) INTR (INTerrupt Request, запрос на прерывание).

Соответственно внешние прерывания подразделяются на два вида: немаскируемые и маскируемые.

Маска прерывания представляет собой двоичный код, разряды которого поставлены в соответствие запросам или классам (уровням) прерывания. Маска загружается командой программы в регистр маски (рис. 2.33).

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



РгЗП


&







&

&
.

.
INTR

Схема выделения незамаски- рованного запроса

с высшим приоритетом
Код приоритет- ного запроса



РгМ

Код маски

Рис. 2.33. Маскирование прерываний


Состояние 1 в данном разряде регистра
маски (РгМ) разрешает, а состояние 0 запрещает (маскирует) прерывание текущей программы от соответствующего запроса в регистре запросов прерываний (РгЗП). Таким образом, программа, изменяя маску в регистре маски, может устанавливать произвольные приоритетные соотношения между про- граммами без перекоммутации линий, по которым поступают запросы прерывания. Каждая прерывающая программа может установить свою маску. При формировании маски 1 устанавливаются в разряды, соответ- ствующие запросам (прерывающим программам) с более высоким, чем у данной программы, приоритетом. Схемы И выделяют поступившие незамаскированные запросы прерывания, из которых специальная схема выделяет наиболее приоритетный запрос, формирует код его номера и вырабатывает основной сигнал прерывания (INTR).

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

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

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

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

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

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

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

данный запрос (прерывающая программа) прерывать ту или иную про- грамму.

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


В процессе эволюции компьютеров на базе Intel, эволюционирова- ла и архитектура обработки прерываний. Изначально контроллер пре- рываний PIC (Programmable Interrupt Controller) состоял из одной микросхемы Intel 8259 c 8-ю входными линиями от устройств и двумя выходными сигнальными линиями к процессору — INT и NMI. Кроме того контроллер прерываний связан с процессором через шину. Кон- троллер вызывает внимание процессора выставлением сигнала INT или NMI, а номер возникшего прерывания передает через шину. Кроме того, через шину процессор может осуществлять управление контроллером. На физическом уровне различают даже несколько шин, через которые связаны контроллер с процессором.

Восемь входных линий контроллера прерываний позволяли назна- чать устройствам 8 разных аппаратных прерываний. Позже этого оказа- лось не достаточно. Чтобы расширить количество входных линий в IRQ два одинаковых контроллера связали каскадно. Выходная сигнальная линия дополнительного контроллера завязывалась на входную линию главного контроллера с номером 2. Таким образом, для устройств в та- кой совместной схеме осталось 15
входных линий.

С появлением многоядерных систем потребовались дополнитель- ные контроллеры прерываний. Интелу потребовалось решать две зада- чи. Во-первых, снова появилась нехватка входных линий прерываний. Во-вторых, потребовался механизм межпроцессорной синхронизации в многопроцессорных системах. На смену PIC, Intel разработал APIC.

APIC (Advanced Programmable Interrupt Controller) улуч- шенный программируемый контроллер прерываний.

Преимущества расширенного контроллера прерываний:

  • возможность реализации межпроцессорных прерываний сигналов от одного процессора другому;

  • поддержка до 256 входов IRQ, в отличие от 1 5 в классической архи- тектуре;

  • крайне быстрый доступ к регистрам текущего приоритета прерыва- ния и подтверждения прерывания.

APIC поддерживался в ОС Windows, начиная с Windows NT 4.0. APIC состоит из двух модулей:

  • LOCAL APIC располагается в ядре процессора, если система мно- гоядерна - в каждом ядре;

  • I/O APIC — контроллер, расположенный на системной плате, обыч- но как часть микросхем обрамления.

На примере структуры соединения контроллеров прерывания (рис. 2.34) внутрь каждого ядра процессора поместили контроллер с именем Local APIC, а в дополнение к 2-м контроллерам 8259, добавили IOAPIC. Появилась дополнительная шина APIC, связывающая между собой IOAPIC и LocalAPIC. Появились линии синхронизации процессоров.

Шина APIС

Шина синхронизации

Рис. 2.34. Пример структуры соединия контроллеров прерывания
В настоящий момент наблюдается тенденция к отказу от IO APIC, как и проводников IRQ, и переходу на Message Signaled Interrupts.
Источник: https://files.student-it.ru/previewfile/151041