Аппаратные прерывания. Контроллер прерываний
Прерывание как временное прекращение процесса вычислений для выполнения действий. Принцип действия и функции контроллера прерываний для обработки и арбитража поступающих запросов на обслуживание к центральному процессору от периферийных устройств.
Рубрика | Коммуникации, связь, цифровые приборы и радиоэлектроника |
Вид | статья |
Язык | русский |
Дата добавления | 15.07.2018 |
Размер файла | 443,1 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Аппаратные прерывания. Контроллер прерываний
Прерывание означает временное прекращение основного процесса вычислений для выполнения некоторых запланированных или незапланированных действий, вызываемых работой аппаратуры или программы. Т.е. это процесс, временно переключающий микропроцессор на выполнение другой программы с последующим возвратом к прерванной программе. Нажимая клавишу на клавиатуре, мы инициируем немедленный вызов программы, которая распознает клавишу, заносит ее код в буфер клавиатуры, из которого он считывается другой программой. Т.е. на некоторое время микропроцессор прерывает выполнение текущей программы и переключается на программу обработки прерывания, так называемый обработчик прерывания. После того, как обработчик прерывания завершит свою работу, прерванная программа продолжит выполнение с точки, где было приостановлено ее выполнение. Адрес программы-обработчика прерывания вычисляется по таблице векторов прерываний.
Механизм прерываний поддерживается на аппаратном уровне. В зависимости от источника, прерывания делятся на:
· аппаратные - возникают как реакция микропроцессора на физический сигнал от некоторого устройства (клавиатура, системные часы, клавиатура, жесткий диск и т.д.), по времени возникновения эти прерывания асинхронны, т.е. происходят в случайные моменты времени;
· программные - вызываются искусственно с помощью соответствующей команды из программы (int), предназначены для выполнения некоторых действий операционной системы, являются синхронными;
· исключения - являются реакцией микропроцессора на нестандартную ситуацию, возникшую внутри микропроцессора во время выполнения некоторой команды программы (деление на ноль, прерывание по флагу TF (трассировка)) [1].
Система прерываний - это совокупность программных и аппаратных средств, реализующих механизм прерываний.
К аппаратным средствам системы прерываний относятся:
· выводы микропроцессора - на них формируются сигналы, извещающие микропроцессор либо о том, что некоторое внешнее устройство «просит уделить ему внимание» (INTR), либо о том, что требуется безотлагательная обработка некоторого события или катастрофическая ошибка (NMI)
· INTR - вывод для входного сигнала запроса на прерывание,
· NMI - вывод для входного сигнала немаскируемого прерывания
· INTA - вывод для выходного сигнала подтверждения получения сигнала прерывания микропроцессором (этот сигнал поступает на одноименный вход микросхемы контроллера 8259А;
· программируемый контроллер прерываний 8259А (предназначен для фиксирования сигналов прерываний от восьми различных внешних устройств; он выполнен в виде микросхемы; обычно используют две последовательно соединенные микросхемы, поэтому кол-во возможных источников внешних прерываний до 15 плюс одно немаскируемое прерываний; именно он формирует номер вектора прерывания и выдает его шину данных);
· внешние устройства (таймер, клавиатура, магнитные диски и т.п.)
Прерывание вызывает ряд событий, которые происходят как в аппаратном, так и в программном обеспечении. На рис. 1 показана типичная последовательность этих событий.
После завершения работы устройства ввода-вывода происходит следующее:
· Устройство посылает процессору сигнал прерывания.
· Перед тем как ответить на прерывание, процессор должен завершить исполнение текущей команды (см. рис. 1).
· Процессор производит проверку наличия прерывания, обнаруживает его и посылает устройству, приславшему это прерывание, уведомляющий сигнал об успешном приеме. Этот сигнал позволяет устройству снять свой сигнал прерывания.
Рисунок 1. Временная диаграмма программы: медленный ввод-вывод
прерывание контроллер процессор периферийный
Теперь процессору нужно подготовиться к передаче управления обработчику прерываний. Сначала необходимо сохранить всю важную информацию, чтобы в дальнейшем можно было вернуться к тому месту текущей программы, где она была приостановлена. Минимальная требуемая информация - это слово состояния программы и адрес очередной выполняемой команды, который находится в программном счетчике. Эти данные заносятся в системный управляющий стек.
Рисунок 2. Обработка простого прерывания
Далее в программный счетчик процессора загружается адрес входа программы обработки прерываний, которая отвечает за обработку данного прерывания. В зависимости от архитектуры компьютера и устройства операционной системы может существовать как одна программа для обработки всех прерываний, так может быть и своя программа обработки для каждого устройства и каждого типа прерываний. Если для обработки прерываний имеется несколько программ, то процессор должен определить, к какой из них следует обратиться. Эта информация может содержаться в первоначальном сигнале прерывания; в противном случае для получения необходимой информации процессор должен по очереди опросить все устройства, чтобы определить, какое из них отправило прерывание.
Как только в программный счетчик загружается новое значение, процессор переходит к следующему циклу команды, приступая к ее извлечению из памяти. Так как команда извлекается из ячейки, номер которой задается содержимым программного счетчика, управление переходит к программе обработки прерываний. Исполнение этой программы влечет за собой следующие операции.
Содержимое программного счетчика и слово состояния прерываемой программы уже хранятся в системном стеке. Однако это еще не вся информация, имеющая отношение к состоянию исполняемой программы. Например, нужно сохранить содержимое регистров процессора, так как эти регистры могут понадобиться обработчику прерываний. Поэтому необходимо сохранить всю информацию о состоянии программы. Обычно обработчик прерываний начинает свою работу с записи в стек содержимого всех регистров. Другая информация, которая должна быть сохранена, обсуждается в главе 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. Схема подключения контроллеров прерываний и их взаимодействие с центральным процессором
На рисунке 3 изображена схема подключения контроллеров прерываний и их взаимодействие с центральным процессором. Сигналы на прерывание от переферийных устройств или ведомых контроллеров поступают на входы IR0-IR7 ведущего контроллера. Внутренняя логика ведущего контроллера обрабатывает поступившие запросы с точки зрения приоритета. Если приоритет запроса устройства достаточен, то на выходе INT контроллера вырабатывается сигнал, поступающий на вход INTR процессора. В противном случае, запрос блокируется.
Если процессор разрешает прерывания, то после завершения выполнения текущей команды, он вырабатывает по линии INTA последовательность сигналов, которая переводит ведомый контроллер в состояние невосприимчивости к поступающим новым запросам на прерывание, а кроме того, на линию данных выводится информация из внутренних регистров контроллера по которой процессор распознаёт тип прерывания.
Разрешение на прерывание процессор передаёт контроллеру прерываний через контроллер шины. Сигнал RD предназначен для того, чтобы контроллер прерываний поместил на шину данных содержимое внутренних регистров. По сигналу WR контроллер прерываний, наоборот, принимает данные с одноимённой шины и записывает их во внутренние регистры. Соответственно, это влияет на режим работы контроллера прерываний.
Вход CS подключается к шине адреса и по этому сигналу происходит идентификация конкретного контролллера прерываний. Вход A0 указывает на порт контроллера прерываний в пространстве ввода-вывода.
Входы IR0-IR7 предназначены для приёма запросов на прерывание от переферийных устройств и ведомых контроллеров.
Выходы CAS0-CAS2 предназначены для идентификации конкретного ведомого контроллера [4].
В статье рассмотрены аппаратные прерывания и устройство, функции, работу контроллера прерываний. Данный контроллер прерываний появился ещё в первых PC-совместимых компьютерах. С тех пор, и процессоры, и сам компьютер во многом изменились, хотя некоторые моменты остались. Поэтому, для того, чтобы было понятней и была рассмотрена организация контроллера прерываний 8295A.
На приведенной выше схеме показаны сигналов приходящие не только на ведомый и ведущий контроллеры прерываний, но и на остальные ведомые. Однако на вашем компьютере или ноутбуке на самом деле 2 контроллера прерываний, как выше указывалось: ведущий и ведомый. Но можно создавать свои компьютерные системы, используя таким образом до 64 ведомых контроллеров прерываний.
В современных компьютерах уже давно функции контроллера прерываний выполняют не микросхемы 8259A, а южный мост. Однако, для всех программ и устройств всё остаётся по-прежнему. Более того, контроллер прерываний можно программировать, и обращаться к внутренним регистрам и портам необходимо точно также, как и к контроллеру 8259A [5].
В данной работе были рассмотрены прерывания, а именно аппаратные средства обработки прерываний и принцип обработки прерываний. Также рассмотрены контроллеры прерываний и принцип их работы.
Прерывание означает временное прекращение основного процесса вычислений для выполнения некоторых запланированных или незапланированных действий, вызываемых работой аппаратуры или программы. Механизм прерываний поддерживается на аппаратном уровне. Аппаратные прерывания возникают как реакция микропроцессора на физический сигнал от некоторого устройства (клавиатура, системные часы, клавиатура, жесткий диск и т.д.), по времени возникновения эти прерывания асинхронны, т.е. происходят в случайные моменты времени.
Контроллер прерываний предназначен для обработки и арбитража поступающих запросов на обслуживание к центральному процессору от переферийных устройств. Прерывания имеют определённый приоритет, который позволяет контроллеру прерываний отдавать предпочтение в данный момент времени одному устройству, а не другому. В современном компьютере существует до 16 внешних и переферийных устройств, генерирующие прерывания.
Список литературы
прерывание контроллер процессор периферийный
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/
Размещено на Allbest.ru
...Подобные документы
Описание процесса разработки схемы приоритета прерываний: определение условий работы программы, выбор и обоснование функциональной и принципиальной микросхем, конструкции типового элемента замены. Расчет быстродействия схемы и потребляемой мощности.
курсовая работа [480,1 K], добавлен 25.07.2013Аналого-цифровой преобразователь, дешифратор адреса, запросчик прерываний. Устройство ввода сигналов с термосопротивлений. Поддержка протокола шины приоритетных прерываний. Генерация сигналов записи базового вектора прерываний в регистры запросчика.
курсовая работа [198,9 K], добавлен 28.12.2013Программируемый логический контроллер, его структура и внутреннее устройство, принцип действия и функциональные возможности, описание электрооборудования. Разработка программы работы логического контроллера, экономическое обоснование его создания.
дипломная работа [802,4 K], добавлен 25.04.2015Общие сведения о микроконтроллере ADuC812, его функциональная блок-схема. Использование памяти данных. Пример процесса побайтного программирования. Векторы прерываний и уровни приоритетов. Выбор датчиков давления и влажности. Параметры контроллера экрана.
курсовая работа [1,9 M], добавлен 14.11.2010Требования технологического процесса к системе автоматического управления. Требования к функциям пожарного контроллера, его внутреннее устройство и принцип действия, сферы практического применения. Эксплуатация систем сигнализации и регулирования.
курсовая работа [400,9 K], добавлен 08.04.2015Процесс производства стали, способы детектирования шлака. Обзор периферийных устройств контроллера, определение режимов их работы. Разработка программного обеспечения для модуля, позволяющего применять данную плату для любой системы детектирования шлака.
дипломная работа [3,3 M], добавлен 07.07.2012Разработка программируемого контроллера, предназначенного для управления в функции времени судовыми механизмами дискретного действия. Характеристики микропроцессорного модуля NL-4AO. Укрупнённая блок-схема алгоритма работы. Расчёт задержки времени.
курсовая работа [369,0 K], добавлен 03.03.2015Алгоритм функционирования контроллера имитатора навигационного сигнала, его упрощенная структурная схемы. Спецификация входных и выходных сигналов. Разработка аппаратной части заданного блока контроллера и программного обеспечения. Исходный код программы.
курсовая работа [1,1 M], добавлен 13.10.2017Структура устройств обработки радиосигналов, внутренняя структура и принцип работы, алгоритмами обработки сигнала. Основание формирование сигнала на выходе линейного устройства. Модели линейных устройств. Расчет операторного коэффициента передачи цепи.
реферат [98,4 K], добавлен 22.08.2015Разработка контроллера прибора, обеспечивающего реализацию функций оцифровки аналоговых данных с выводом результата в виде графического вида сигнала. Выбор контроллера и элементов схемы, их описание. Общий алгоритм работы и листинг программы управления.
курсовая работа [1,1 M], добавлен 26.12.2012Кнопки управления: понятие, главное назначение, конструкция. Контроллер как многоступенчатый, многоцепной коммутационный аппарат с ручным управлением, его предназначение. Строение барабанного контроллера, главный недостаток. Плоский и кулачный контроллер.
практическая работа [777,8 K], добавлен 16.02.2012Принцип работы бытового двухкамерного холодильника с электромеханической системой управления. Функции контроллера и требования к характеристикам. Выбор и описание алгоритмов работы микропроцессорной системы. Расчет вероятности безотказной работы.
курсовая работа [652,5 K], добавлен 24.02.2015Преобразование релейно-контактной схемы управления механизмом подъема крана с использованием силового магнитного контроллера. Группировка и обозначение сигналов. Механические характеристики магнитного контроллера. Функциональные схемы узлов механизма.
курсовая работа [471,5 K], добавлен 09.04.2012Использование импульсного сигнала в качестве носителя информации (сканирование диаграммы направленности или переключение процесса слежения с одного объекта на другой и т.д.). Функциональные схемы следящих систем при наличии прерываний входного сигнала.
реферат [117,3 K], добавлен 21.01.2009Автоматизация технологического процесса разваривания на спиртзаводе. Современная платформа автоматизации TSX Momentum. Программное обеспечение логического контроллера. Спецификация приборов, используемых в технологическом процессе пищевого производства.
дипломная работа [8,7 M], добавлен 19.03.2014Определение перечня устройств и элементов, которые будут входить в аппаратную часть. Выбор компонентов: микроконтроллера AT89C51RC2 фирмы Atmel, ЖК-индикатора LM020L. Алгоритм функционирования программы, разбраковывающей микросхемы по частоте в диапазоне.
курсовая работа [1,5 M], добавлен 19.06.2014Обзор характеристик контроллера по сбору аналоговой информации и преобразовании ее в цифровую, типы корпусов и исполнений, функциональное назначение выводов. Описание регистров PIC, тактовых генераторов. Система команд, блок ввода аналоговых данных.
курсовая работа [338,0 K], добавлен 05.09.2011Техническая структура и программно-алгоритмическое обеспечение микропроцессорного регулирующего контроллера МПК Ремиконты Р-130. Разработка функциональной схемы контроллера для реализации автоматической системы регулирования. Схема внешних соединений.
контрольная работа [403,6 K], добавлен 18.02.2013Анализ конструктивной схемы механизма закрывания-открывания крышки котла. Рассмотрение особенностей программы управления крышкой котла для ПЛК DL05, проведение исследования. Общая характеристика способов программируемого логического контроллера.
контрольная работа [642,0 K], добавлен 25.03.2013Разработка структурной, функциональной и принципиальной схемы контроллера, управляющего работой инкубатора. Аналогово-цифровой преобразователь, потребляемая мощность и быстродействие системы. Алгоритмическое и программное обеспечение, листинг программы.
курсовая работа [900,8 K], добавлен 28.12.2012