Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

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



Системные устройства вычислительной техники.

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

Задача контроллера – прием запросов прерываний от вычислительных устройств, сравнение из приоритетов и посылки запросов прерывания в ЦП вместе с информацией о местоположении соответствующих подпрограмм. В функции ПКП также входит изменение дисциплины обслуживания вычислительного устройства, т.е. установка различных режимов, присвоение приоритетов исследуемого устройства в соответствии с общими требованиями к системе. Один контроллер позволяет обслуживать 8 вычислительных устройств, число которых может быть увеличено путем каскадирования контроллеров. Если в вычислительной машине используется 2 контроллера прерывания, то соответственно число обслуживаемых аппаратных прерываний будет равно 15.

Регистр Запроса Прерываний – служит для запоминания всех запросов от вычислительного устройства по входам IR7-IR0.

Регистр Масок Прерываний – хранит маску, с помощью которой можно запретить обслуживание запросов по любому входу.

Схема Сравнения Приоритетов – выбирает запрос с наибольшим приоритетом среди вновь поступивших и уже обслуживаемых запросов.

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

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

Блок Каскадирования – осуществляет связь ведущего контроллера с ведомым при использовании нескольких ПКП микропроцессорной системы.

Последовательность действий при обслуживании прерываний:

1)ПКП воспринимает запрос к прерыванию по входам IR от одного или нескольких вычислительных устройств.

Записывает 1 соответственно РЗП.

Проверяет маскирование.

Проверяет запрос с наивысшим приоритетом.

Посылает сигнал прерывания intна соотв. вход ЦП.

2)Если прерывания разрешены, ЦП заканчивает выполнение текущей команды и активизирует сигнал подтверждения прерывания inta.

3) По получении импульса inta, ПКП устанавливает 1 в разряд регистра РОП соответств. запросу, подтверждающему обслуживание. Одноименный разряд регистра РЗП сбрасывается в ноль.

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

5) ЦП переходит на выполнение подпрограммы обслуживания прерывания. В режиме автоматического окончания прерывания, цикл входа в прерывание завершается по окончанию второго импульса Inta, по которому соответствующий разряд РОП сбрасывается в ноль. В режиме обычного окончания разряд регистра РОП соответствующий текущему уровню прерывания остается 1, до появления команды конца прерывания EOI. Контроллер программируется с помощью команд, которые формируются в регистре Aл ЦП и передаются в ПКП по команде Out.

Команды инициализации ICW –используются дляначальной подготовке контроллера к работе.

Рабочие команды – OCW – для задания маски, задания различных режимов работы и дял обеспечения контрольного считывания содержимого регистров ПКП.

Режимы работы контроллера:

1) Полной вложенности

2) Циклического приоритета

3) Специального маскирования

4) Поллинга (последовательного опроса)

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

Режим полной вложенности устанавливается сразу после окончания инициализации. Приоритеты запросов прерываний упоряд-ся в стороны прерывания от 0 до 7.

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

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

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

Режим специального маскирования.

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

Режим поллинга(опроса).

Применяется для организации обслуживания запросов прерываний по инициативе программы, выполняемой микропроцессором. При этом прерывания процессора запрещаются путем сброса флага IF и используется команда POLL, которая задается с помощью OCW3. Тогда контроллер воспринимает следующий импульс по входу RD как подтверждение прерывания и выдает на шину данных байт, в котором D7=1, если на вход данного контроллера поступил запрос, соответственно разряды D2- D0 задают двоичный код входа высшего уровня среди тех, по которым поступили запросы. С помощью команды POLL последовательно опрашиваются все контроллеры прерывания в системе, что позволяет легко наращивать число уровней приоритетов. В этом режиме таблица адресов подпрограмм обслуживания не используется и он полезен в тех случаях, когда одна подпрограмма применяется для обслуживания нескольких уровней прерывания.

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





Дата публикования: 2015-01-24; Прочитано: 1595 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.008 с)...