Как называется временная приостановка основной программы для обработки запроса от внешнего устрйоств

Аппаратные прерывания. Контроллер прерываний

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

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

Ключевые слова

КОНТРОЛЛЕР ПРЕРЫВАНИЙ, КОНТРОЛЛЕР, АППАРАТНЫЕ ПРЕРЫВАНИ, ПРЕРЫВАНИЕ, ЭВМ

Текст научной работы

Введение

Как исправить автоматическое отключение USB-устройств в Windows | XP, 7, 8, 10

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

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

Механизм прерываний поддерживается на аппаратном уровне. В зависимости от источника, прерывания делятся на:

  • аппаратные — возникают как реакция микропроцессора на физический сигнал от некоторого устройства (клавиатура, системные часы, клавиатура, жесткий диск и т.д.), по времени возникновения эти прерывания асинхронны, т.е. происходят в случайные моменты времени;
  • программные — вызываются искусственно с помощью соответствующей команды из программы (int), предназначены для выполнения некоторых действий операционной системы, являются синхронными;
  • исключения — являются реакцией микропроцессора на нестандартную ситуацию, возникшую внутри микропроцессора во время выполнения некоторой команды программы (деление на ноль, прерывание по флагу TF (трассировка)) [1].

Аппаратные средства системы прерываний

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

Реестр запросов на изменения

К аппаратным средствам системы прерываний относятся:

  • выводы микропроцессора — на них формируются сигналы, извещающие микропроцессор либо о том, что некоторое внешнее устройство «просит уделить ему внимание» (INTR), либо о том, что требуется безотлагательная обработка некоторого события или катастрофическая ошибка (NMI);
  • INTR — вывод для входного сигнала запроса на прерывание;
  • NMI — вывод для входного сигнала немаскируемого прерывания;
  • INTA — вывод для выходного сигнала подтверждения получения сигнала прерывания микропроцессором (этот сигнал поступает на одноименный вход микросхемы контроллера 8259А;
  • программируемый контроллер прерываний 8259А (предназначен для фиксирования сигналов прерываний от восьми различных внешних устройств; он выполнен в виде микросхемы; обычно используют две последовательно соединенные микросхемы, поэтому кол-во возможных источников внешних прерываний до 15 плюс одно немаскируемое прерываний; именно он формирует номер вектора прерывания и выдает его шину данных);
  • внешние устройства (таймер, клавиатура, магнитные диски и т.п.).

Обработка прерываний

Прерывание вызывает ряд событий, которые происходят как в аппаратном, так и в программном обеспечении. На рис. 1 показана типичная последовательность этих событий.

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

Временная диаграмма программы: медленный ввод-вывод

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

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

Обработка простого прерывания

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

Читайте также:
Код программы для перевода чисел

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

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

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

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

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

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

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

Из-за того, что прерывание не является подпрограммой, вызываемой из программы, для полного восстановления важно сохранить всю информацию состояния прерываемой программы. Однако прерывание может произойти в любой момент и в любом месте программы пользователя. Это событие непредсказуемо [2].

Контроллер прерываний

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

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

  • IRQ 0, системный таймер;
  • IRQ 1, клавиатура;
  • IRQ 2, используется для запросов устройств, подключенных каскадом;
  • IRQ 8, часы реального времени;
  • IRQ 9, зарезервировано;
  • IRQ 10, зарезервировано;
  • IRQ 11, зарезервировано;
  • IRQ 12, ps/2–мышь;
  • IRQ 13, сопроцессор;
  • IRQ 14, контроллер «жёсткого» диска;
  • IRQ 15, зарезервировано;
  • IRQ 3, порты COM2,COM4;
  • IRQ 4, порты COM1,COM3;
  • IRQ 5, порт LPT2;
  • IRQ 6, контроллер дисковода;
  • IRQ 7, порт LPT1,принтер.

Здесь сигналы приведены в порядке убывания приоритетов. Можно заметить, что после IRQ 2, следует IRQ 8. Дело в том, что в своё время контроллер прерываний состоял из двух микросхем, одна была подключена к другой. Вот эта вторая микросхема и подключается к линии IRQ 2, образуя каскад. Она обслуживает линии IRQ8–IRQ 15. А затем следуют линии первой микросхемы [3].

Работа контроллера прерывания

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

Схема подключения контроллеров прерываний и их взаимодействие с центральным процессором

На рисунке 3 изображена схема подключения контроллеров прерываний и их взаимодействие с центральным процессором. Сигналы на прерывание от периферийных устройств или ведомых контроллеров поступают на входы IR0–IR7 ведущего контроллера. Внутренняя логика ведущего контроллера обрабатывает поступившие запросы с точки зрения приоритета. Если приоритет запроса устройства достаточен, то на выходе INT контроллера вырабатывается сигнал, поступающий на вход INTR процессора. В противном случае, запрос блокируется.

Читайте также:
В чем может быть новизна программы

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

Разрешение на прерывание процессор передаёт контроллеру прерываний через контроллер шины. Сигнал RD предназначен для того, чтобы контроллер прерываний поместил на шину данных содержимое внутренних регистров. По сигналу WR контроллер прерываний, наоборот, принимает данные с одноимённой шины и записывает их во внутренние регистры. Соответственно, это влияет на режим работы контроллера прерываний.

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

Входы IR0–IR7 предназначены для приёма запросов на прерывание от периферийных устройств и ведомых контроллеров.

Выходы CAS0–CAS2 предназначены для идентификации конкретного ведомого контроллера [4].

В статье рассмотрены аппаратные прерывания и устройство, функции, работу контроллера прерываний. Данный контроллер прерываний появился ещё в первых PC–совместимых компьютерах. С тех пор, и процессоры, и сам компьютер во многом изменились, хотя некоторые моменты остались. Поэтому, для того, чтобы было понятней и была рассмотрена организация контроллера прерываний 8295A.

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

В современных компьютерах уже давно функции контроллера прерываний выполняют не микросхемы 8259A, а южный мост. Однако, для всех программ и устройств всё остаётся по–прежнему. Более того, контроллер прерываний можно программировать, и обращаться к внутренним регистрам и портам необходимо точно также, как и к контроллеру 8259A [5].

Заключение

В данной работе были рассмотрены прерывания, а именно аппаратные средства обработки прерываний и принцип обработки прерываний. Также рассмотрены контроллеры прерываний и принцип их работы.

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

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

Заполнение документации в турфирме

  1. Васильев С.С.
  2. Алиева Е.В.
  3. Бочкова Е.Г.

Разработка модели информационной системы юридического отдела по сопровождению и заключению договоров предприятия

  1. Бочкова Е.Г.
  2. Алиева Е.В.
  3. Васильев С.С.

Cals-технологии, внедрение case-технологий в производство

  1. Алиева Е.В.

Calls-технологии, особенности, применение и эффективность

  1. Алиева Е.В.
  2. Бочкова Е.Г.
  3. Васильев С.С.

Автоматизация документооборота склада производственного предприятия

  1. Алиева Е.В.

Список литературы

  1. Лекция. Прерывания. Эл. Ресурс. http://hromatron.narod.ru/_lekcii/prerivania_lekcia_g2013.htm
  2. Системные прерывания | Аппаратное прерывание | Обработка прерываний http://life-prog.ru/view_os.php?id=16
  3. Контроллер прерываний. Эл. Ресурс http://sdelaycomputersam.ru/Controller_irq.php,
  4. Прерывания. Контроллер прерываний. Устройство, функции, работа. Эл. Ресурс http://sdelaycomputersam.ru/Controller_irq.php
  5. Структура и инициализация контроллера прерываний Intel 8259A Эл.ресурс https://dev64.wordpress.com/2012/05/30/8259-programming/

Цитировать

Алиева, Е.В. Аппаратные прерывания. Контроллер прерываний / Е.В. Алиева. — Текст : электронный // NovaInfo, 2017. — № 58. — С. 47-55. — URL: https://novainfo.ru/article/10802 (дата обращения: 24.06.2023).

Поделиться

Настоящий ресурс содержит материалы 16+

Источник: novainfo.ru

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

5.1. Функции и характеристики системы прерывания программ

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

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

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

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

Читайте также:
Как открыть файл ким программа

Запросы прерывания могут возникать внутри самой ЭВМ или во внешней среде. К первым относятся: запросы при переполнении разрядной сетки, при попытке деления на 0, при выходе из установленной для программы области памяти, затребование периферийным устройством операции ввода/вывода, завершение операции ввода/вывода устройством или возникновение особой ситуации при этой операции. Запросы во внешней среде возникают от других ЭВМ, от аварийных и некоторых других датчиков управления объектами.

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

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

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

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

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

общее число запросов прерывания (входов в систему прерываний);

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

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

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

Затраты времени на переключение программ (издержки прерывания) равны суммарному расходу времени на заполнение и восстановление состояния программы.

Глубина прерывания – максимальное число программ, которые могут прерывать друг друга. Если после перехода к прерывающей программе и до ее окончания прием запросов прекращается, то говорят, что система имеет глубину n, равную 1. Глубина n равна N, если допускается последовательное прерывание до N программ. Глубина прерывания обычно совпадает с числом уровней приоритетов в системе прерываний.

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

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

Рис. 55. Процессы прерывания с различной глубиной

прерывания и дисциплиной обслуживания.

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

В ЭВМ число различных запросов (причин) прерывания может достигать нескольких десятков или сотен. В таких случаях часть запросов разделяют на отдельные классы или уровни.

Класс или уровень прерывания — совокупность запросов, инициирующих одну и ту же прерывающую программу. Разделение запросов на классы прерывания представлено на рис. 56.

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

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

Источник: studfile.net

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru