Мегаобучалка Главная | О нас | Обратная связь  


Последовательность событий при прерываниях




Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

Раздел 6. Система прерываний.

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

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

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

Рис.6.1 Общая реакция системы на прерывание

 

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

Запрос прерывания – сигнал, оповещающий ЭВМ о наличии события, требующего прерывания.

Прерывающая программа - программа, затребованная запросом прерывания.

Прерываемая программа – программа, выполняемая машиной до появления запроса прерывания.



Запросы на прерывания могут возникать внутри самой ЭВМ и в ее внешней среде.

Внутренние запросы прерываний:

· запросы при возникновении ошибки в работе аппаратуры

· переполнение разрядной сетки

· попытка деления на 0

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

· затребование периферийным устройством операции ввода-вывода

· завершение операции ввода-вывода периферийным устройством

Запросы во внешней среде:

· от других ЭВМ

· от аварийных и некоторых других датчиков технологического процесса

 

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

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

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

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

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

 

 

Последовательность событий при прерываниях.

 

Каждое периферийное устройство может посылать в процессор сиг­нал INT запроса прерывания или запроса на обслужива­ние, когда оно готово к операциям ВВ, т. е. требует немед­ленной реакции процессора.

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

Кроме как увеличением времени выполнения факт об­служивания прерывания не должен влиять на прерванную программу. Следовательно, содержимое всех регистров, не­обходимых подпрограмме обслуживания прерывания, сле­дует временно запоминать. Удобно и просто использовать в качестве такого временного «хранилища» стек.

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

1. периферийное устройство генерирует сигнал прерыва­ний, который подается на вход INT процессора; на этой линии по схеме ИЛИ объединяются запросы всех устройств, работающих в режиме прерываний;

2. процессор завершает текущую команду и, если преры­вания разрешены (не замаскированы), формирует сигнал INTA (или INT ACK) подтверждения прерывания; до по­лучения этого сигнала устройство сохраняет активный уро­вень сигнала INT;

3. осуществляется запоминание содержимого PC и некото­рых других внутренних регистров в стеке, причем содержи­мое PC обычно запоминается автоматически;

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

5. выполняется короткая (30—50 байт) подпрограмма об­служивания прерывания, в которой запрограммированы действия по передаче данных, модификации указателей, проверке окончания операций ВВ и др.;

6. восстанавливается состояние прерванной программы, для чего запомненное содержимое регистров извлекается из стека;

7. возобновляется выполнение прерванной программы; это действие инициируется командой возврата из прерывания RTI, являющейся последней командой подпрограммы об­служивания прерывания.

 

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

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

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

 

 

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

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

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




Читайте также:
Почему человек чувствует себя несчастным?: Для начала определим, что такое несчастье. Несчастьем мы будем считать психологическое состояние...
Как вы ведете себя при стрессе?: Вы можете самостоятельно управлять стрессом! Каждый из нас имеет право и возможность уменьшить его воздействие на нас...



©2015-2020 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (465)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.01 сек.)
Поможем в написании
> Курсовые, контрольные, дипломные и другие работы со скидкой до 25%
3 569 лучших специалисов, готовы оказать помощь 24/7