Одновременно может возникать несколько запросов на прерывание, поэтому микропроцессор должен обслуживать их в соответствии с приоритетом. Сначала обслуживаются прерывания с высоким приоритетом, а затем – с более низким. Максимальный приоритет соответствует уровню 0 и убывает с возрастанием номера.
Высший приоритет имеют исключения деления, точки останова и переполнения и программные прерывания. Они взаимно исключают друг друга, т.е. могут произойти при выполнении только определённых инструкций микропроцессора. Поэтому ситуации, когда необходимо обслужить одновременно несколько прерываний этих видов, возникнуть не может. Затем по приоритету следует немаскируемое внешнее прерывание, и потом маскируемые внешние прерывания. Самый низкий приоритет имеет трассировочное прерывание.
11.4. Контроллер прерываний 8259
Внешние устройства не выдают запросы прерываний напрямую микропроцессору, а передают их специальной микросхеме – контроллеру прерываний, который способен обслуживать запросы прерываний сразу от нескольких устройств и обеспечивает выдачу соответствующих векторов. Заметим, что микропроцессор не задает необходимость обязательного использования контроллера прерывания. Можно разработать систему, в которой каждое устройство будет самостоятельно выдавать определённый для него вектор прерывания. Однако при этом необходимо будет решать вопрос приоритетности прерываний.
В IBM PC совместимых устройствах используется микросхема программируемого котроллера прерываний Intel 8259 (отечественный аналог КР580ВН59 или КР1810ВН59А) для обслуживания запросов прерываний от различных устройств. Контроллер обеспечивает восемь векторов.
Запрос на прерывание обозначается как IRQ (Interrupt Request) с соответствующим порядковым номером. Для IBM PC XT существует 8 уровней приоритетов, а для IBM PC AT и последующих серий – 16. Обращения к соответствующим уровням обозначаются сокращениями от IRQ0 до IRQ7 (или от IRQ0 до IRQ15), что означает запрос на прерывание.
Микросхемы контроллера прерываний можно объединять (каскадировать) для увеличения количества уровней приоритетов. При этом общее число уровней прерываний будет достигать 64. Запросы на прерывание 0-7 соответствуют векторам прерываний от 8H до 0FH, запросы на прерывания 8-15 – векторами от 70H до 77H. В табл. 92 приведены назначения этих прерываний.
Табл. 92. Аппаратные прерывания в порядке приоритета.
Do'stlaringiz bilan baham: |