Разделы:


Best links:

Программируемый контроллер прерываний

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

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

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

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

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

предыдущаяследующая