Циклы обмена по прерываниям

Циклы обмена в режиме прерываний строятся по тем же принципам, что и циклы программного обмена, но имеют ряд специфических особен­ностей.

Прерывания в микропроцессорных системах бывают

двух основных типов:

• векторные прерывания, которые требуют проведения цикла чтения
по магистрали;

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

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

При векторном прерывании код номера прерывания передается про­цессору тем устройством ввода/вывода, которое данное прерывание зап­росило. Для этого процессор проводит цикл чтения по магистрали, и по шине данных получает код номера прерывания. Шина адреса в данном цикле обычно не используется, так как устройство, запросившее преры­вание, и так знает, что процессор будет обращаться именно к нему. В этом случае в магистрали достаточно всего одной линии запроса прерывания для всех устройств ввода/вывода. Так организованы прерывания, напри­мер, в магистрали Q-bus.

Системная магистраль

Рис. 2.8. Сигналы запроса и предоставления прерывания в магистрали Q-bus

 

Схема распространения сигналов, участвующих в прерываниях на ма­гистрали Q-bus, показана на рис. 2.8. Упрощенная временная диаграмма цикла запроса и предоставления магистрали представлена на рис. 2.9.

Рис. 2.9. Цикл запроса/предоставления векторного прерывания

на магистрали Q-bus.

Запрос прерывания осуществляется отрицательным сигналом -VIRQ, который может формироваться каждым из устройств, запрашивающих прерывание. Тип выходного каскада для этого сигнала — ОК., чтобы избе­жать конфликтов между запрашивающими прерывания устройствами. Получив сигнал -VIRQ, процессор предоставляет прерывание (закончив предварительно выполнение текущей команды). Для этого он выставляет сигнал чтения данных -DIN и сигнал предоставления прерывания IАКО. Этот сигнал IАКО последовательно проходит через все устройства, кото­рые могут запрашивать прерывания. Если устройство запросило прерывание, то оно не пропускает через себя этот сигнал. В результате получается, что если прерывания одновременно запросили два или более устройств, то сигнал предоставления прерывания получит только одно устройство, а именно то, которое ближе к процессору. Такой механизм разрешения конфликтов называется иногда географическим приоритетом (или цепочечным приоритетом, Daisy Chain). Получив сигнал IАКО, устройство, запросившее прерывание, должно снять свой сигнал -VIRQ. Затем процессор проводит цикл безадресного чтения номера прерыва­ния. В ответ на полученные сигналы -DIN и IАКО устройство, которому предоставлено прерывание, должно выдать на шину адреса/данных АD код номера прерывания (адреса вектора прерывания) и выставить сигнал подтверждения -RРLYУ. Процессор читает код номера прерывания и за­канчивает цикл безадресного чтения снятием сигналов -DIN и IАКО.

Системная магистраль

Рис. 2.10. Структура связей для организации радиальных прерываний на магистрали ISА

.

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

Упрощенная структура связей между устройствами, участвующи­ми в обмене по прерываниям, на магистрали ISА показана на рис. 2,10. Процессор общается с контроллером прерываний как по магистрали (чтобы задать ему режимы работы), так и вне магистрали (при обра­ботке запросов на прерывание). Сигналы запросов прерываний IRQ} распределяются между всеми устройствами магистрали. На каждую линию IRQ приходится одно устройство. Тип выходного каскада для этих линий — 2С, так как конфликты здесь не предусмотрены. Запро­сом прерывания является передний, положительный фронт сигнала IRQ. При одновременном поступлении сигналов IRQ от нескольких устройств порядок их обслуживания определяется контроллером пре­рываний.

 

Какой тип прерываний лучше — векторный или радиальный?

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

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

 








Дата добавления: 2015-08-26; просмотров: 555;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.009 сек.