ВУЗ:
Составители:
Система прерывания при такой организации имеет несколько уровней прерываний (линий
запросов прерываний) к которым могут подключаться различные устройства, причем
каждый уровень имеет свой вектор прерывания.
Для реализации векторного приоритетного прерывания необходимо распределить
приоритеты между уровнями и обеспечить механизм взаимодействия подпрограмм
обслуживания прерывания соответствующих уровней.
Распределение приоритетов между уровнями могут реализовываться различными
способами.
Одним из этих способов является векторное прерывание с фиксированным
приоритетом. Каждому уровню (входу) запросов прерывания присваивается фиксированный
приоритет в порядке возрастания. Запрос с более высоким приоритетом прерывает
обслуживание прерывания с меньшим приоритетом.
Вторым способом является векторное прерывание с циклическим приоритетом.
Каждому входу, как и в предыдущем случае, присваивается фиксированный приоритет.
После запроса прерывания и выполнения соответствующей подпрограммы обслуживания
приоритеты изменяются в круговом порядке таким образом, что последний обслуженный
вход будет иметь низший приоритет.
Этот способ характерен для таких применений, в которых ПУ имеют одинаковый
приоритет и ни одному из них нельзя отдать предпочтения.
Реализация векторного прерывания с адресуемым приоритетом аналогична второму
способу, но допускает программное определение уровня запросов прерывания, которому
назначается низший приоритет.
Запрещение прерывания на время обслуживания любого ПУ может привести к потере
запросов прерываний высокоприоритетных устройств, появляющихся при обслуживании
устройств с меньшими приоритетами. Для исключения такой ситуации возникает
необходимость использования механизма вложения прерываний, который позволит
обеспечить взаимодействие подпрограмм обслуживания соответствующих уровней между
собой.
Прерывание подпрограмм обслуживания прерываний называется вложенным
прерыванием. На рис.3.6. показан процесс вложения прерываний.
ПУ1
ПУ2
ПУ3
ПУ4
ПУ5
Основная
программа
Убывание
приоритета
t
1
t
2
t
3
t
4
t
5
t
6
t
7
t
8
Рис.3.6. Вложение прерываний
В момент t
1
запрашивает обслуживание устройство ПУ
4
и микропроцессор переходит
на его подпрограмму обслуживания. В свою очередь, эта подпрограмма прерывается в
момент времени t
2
запросом ПУ
3
с более высоким приоритетом. Подпрограмма
обслуживания ПУ
3
в момент времени t
3
прерывается запросом ПУ
2
с еще более высоким
приоритетом, и по завершении обслуживания ПУ
2
в момент времени t
4
управление
возвращается к продолжению обслуживания ПУ
3
. В интервале t
5
-t
6
аналогичным образом
обслуживается запрос ПУ
1
с максимальным приоритетом, после чего управление
последовательно возвращается к прерванным подпрограммам обслуживания ПУ
3
и ПУ
4
.
Наконец, в момент t
8
возобновляется выполнение основной программы. Для того, чтобы
Система прерывания при такой организации имеет несколько уровней прерываний (линий запросов прерываний) к которым могут подключаться различные устройства, причем каждый уровень имеет свой вектор прерывания. Для реализации векторного приоритетного прерывания необходимо распределить приоритеты между уровнями и обеспечить механизм взаимодействия подпрограмм обслуживания прерывания соответствующих уровней. Распределение приоритетов между уровнями могут реализовываться различными способами. Одним из этих способов является векторное прерывание с фиксированным приоритетом. Каждому уровню (входу) запросов прерывания присваивается фиксированный приоритет в порядке возрастания. Запрос с более высоким приоритетом прерывает обслуживание прерывания с меньшим приоритетом. Вторым способом является векторное прерывание с циклическим приоритетом. Каждому входу, как и в предыдущем случае, присваивается фиксированный приоритет. После запроса прерывания и выполнения соответствующей подпрограммы обслуживания приоритеты изменяются в круговом порядке таким образом, что последний обслуженный вход будет иметь низший приоритет. Этот способ характерен для таких применений, в которых ПУ имеют одинаковый приоритет и ни одному из них нельзя отдать предпочтения. Реализация векторного прерывания с адресуемым приоритетом аналогична второму способу, но допускает программное определение уровня запросов прерывания, которому назначается низший приоритет. Запрещение прерывания на время обслуживания любого ПУ может привести к потере запросов прерываний высокоприоритетных устройств, появляющихся при обслуживании устройств с меньшими приоритетами. Для исключения такой ситуации возникает необходимость использования механизма вложения прерываний, который позволит обеспечить взаимодействие подпрограмм обслуживания соответствующих уровней между собой. Прерывание подпрограмм обслуживания прерываний называется вложенным прерыванием. На рис.3.6. показан процесс вложения прерываний. ПУ1 У бы вание п ри о ри тета ПУ2 ПУ3 ПУ4 ПУ5 О сн ов н а я п ро г ра м м а t1 t2 t3 t4 t5t6 t7 t8 Рис.3.6. Вложение прерываний В момент t1 запрашивает обслуживание устройство ПУ4 и микропроцессор переходит на его подпрограмму обслуживания. В свою очередь, эта подпрограмма прерывается в момент времени t2 запросом ПУ3 с более высоким приоритетом. Подпрограмма обслуживания ПУ3 в момент времени t3 прерывается запросом ПУ2 с еще более высоким приоритетом, и по завершении обслуживания ПУ2 в момент времени t4 управление возвращается к продолжению обслуживания ПУ3. В интервале t5-t6 аналогичным образом обслуживается запрос ПУ1 с максимальным приоритетом, после чего управление последовательно возвращается к прерванным подпрограммам обслуживания ПУ3 и ПУ4. Наконец, в момент t8 возобновляется выполнение основной программы. Для того, чтобы
Страницы
- « первая
- ‹ предыдущая
- …
- 50
- 51
- 52
- 53
- 54
- …
- следующая ›
- последняя »