Здавалка
Главная | Обратная связь

Блок радиальных прерываний (БРП).



Блок предназначен для концентрации запросов на прерывание от различных устройств и блоков УЧПУ. Вообще в УЧПУ, как в устройстве, построенном на основе микроЭВМ, существует три вида прерываний: векторное, радиальное и комбинированное. Рассмотрим их подробнее. При векторном прерывании каждое устройство, которое способно работать в режиме обслуживания прерываний, имеет свой собственный идентификационный код, называемый вектором прерывания. В данном случае задача котроллера такого устройства в случае необходимости его обслуживания, подать процессору сигнал об этом и сообщить ему свой идентификационный код - вектор прерывания. Процессор по этому коду - вектору определяет устройство, точнее переходит к подпрограмме обслуживания данного конкретного устройства. На рис. 2.11. показана схема решения этой задачи.

 

Магистраль

                                   
               
   
 
 
 
 
 


МП У1 У2 У3

               
   
 
   
 
     


INT INT INT INT

EIO EII EIO EII EIO EII EIO

               
       

 

 


Рис.2.11. Схема векторного прерывания:

МП - микропроцессор, У1...У3 - внешние устройства.

 

В тот момент, когда какое либо устройство требует его обслужить (передать или принять информацию), оно выставляет на магистраль сигнал запроса прерывания - INT. Запросы прерываний от всех устройств подаются на одну и туже линию связи магистрали, поэтому устройства должны иметь выходы этого сигнала, позволяющие объединение по ИЛИ. Процессор, получив сигнал INT, заканчивает выполнение текущей операции, записывает в стек свои параметры (состояние счетчика адресов и собственный регистр состояния), и выдает на магистраль два сигнала: EIO и MSR. Сигнал EIO (на входе устройств он уже называется сигналом EII) проходит последовательно через все устройства, могущие работать в режиме обслуживания прерываний. Если устройство, на которое пришел сигнал EII не требовало прерывания, то оно передает этот сигнал далее по цепи уже как сигнал EIO ( в нашем случае, например, устройство У1). Если же устройство затребовало прерывание ( в нашем случае - У2), то оно прерывает распространение сигнала E I I на последующие устройства и выдает на шину данных свой идентификационный код - вектор прерывания , об этом устройство сообщает процессору сигналом ASW. Процессор читает на шине код вектора прерывания, идентифицирует его как адрес, к которому ему нужно обратиться для перехода к подпрограмме обслуживания данного устройства. Цикл предоставления прерывания на этом заканчивается, и дальнейшая работа процессора осуществляется по программе. По окончании работы подпрограммы (она обязательно должна заканчиваться командой RTI - выход из прерывания) процессор восстанавливает из стека свои параметры и продолжает работу по прерванной основной программе. Если в процессе обслуживания устройства (работа по подпрограмме) затребует прерывание устройство У1, т.е. на магистрали снова появится сигнал INT, процессор прервет свою работу по подпрограмме, снова выдаст в магистраль сигналы EIO и MSR и получит в ответ код вектора прерывания устройства У1. Таким образом процессор начнет обслуживание устройства У1 не закончив обслуживания устройства У2. Обслуживание устройства У2 будет продолжено по окончании обслуживания устройства У1. Если же в момент обслуживания устройства У2 и тем более устройства У1 затребует прерывание устройство У3, то его запрос будет игнорирован, поскольку сигнал предоставления прерывания от процессора (EIO) будет блокирован предыдущими устройствами. Таким образом, чисто геометрическое расположение устройств по отношению к процессору автоматически устанавливает их приоритет в обслуживании прерываний: чем ближе устройство к процессору, тем выше его приоритет. Если устройство, имеющее более низкий приоритет, не допускает прекращения его обслуживания, то в подпрограмме его работы (в самом начале) необходимо ввести команду маскирования прерываний в процессоре (установить Т-разряд регистра состояния), в этом случае устройство будет обслужено до конца. Надо только не забыть в конце подпрограммы, перед выходом из прерывания, ввести команду размаскирования.

Таким образом, принцип векторного прерывания предполагает последовательно распространение сигнала предоставления прерывания через все устройства, что не всегда удобно, так как таких устройств может быть много (только в вычислителе их 5). Для сокращения времени на выполнение запроса целесообразно использовать принцип радиального прерывания. В этом случае запросы на прерывание от отдельных устройств поступают к процессору по отдельным сигнальным линиям на отдельные входы микропроцессора. Такой принцип реализован в частности во всех применяемых в настоящее время персональных компьютерах, где число таких входов достигает 15 и более (см. состав шины ISA в материалах блока 1). Код вектора прерывания в данном случае жестко закреплен за каждым входом БРП и процессору нет необходимости распознавать устройство, запросившее прерывание. Однако такое решение для УЧПУ неприемлемо, так как число устройств в УЧПУ значительно больше, входов радиальных запросов в микропроцессоре всего два, да и требование уменьшения числа сигнальных линий в магистрали также имеет немаловажное значение. Поэтому в УЧПУ МС2101 применен комбинированный способ организации прерываний. На рис. 2.12. показана схема комбинированного способа прерываний.

 
 


У1 У9 У17

МП БРП БРП БРП

№1 №2 №3

INT

                               
         
 
   
 
   
       
 
           
 


У8 У16 У24

EIO EII EIO EII EIO EII EIO

               
       
 
 

 


Рис. 2.12. Схема комбинированного способа прерываний

МП - микропроцессор, У1...У24 - внешние устройства.

Суть этого способа заключается в том, что все устройства в части сигналов запроса на прерывание подключаются к специальным БИС (БРП), позволяющим концентрировать запросы на прерывание от восьми устройств. Сами же БИС БРП подключены к процессору по схеме векторного прерывания. Таким образом значительно увеличивается (в восемь раз ) число устройств, требующих обслуживания по прерыванию без увеличения входов в микропроцессоре и соответственно без увеличения числа сигнальных линий.

В качестве БРП в УЧПУ использована БИС типа К1801ВП1-031. Принципиальная схема этой БИС показана на рис. 2.13.

Микросхема также как и таймер содержит интерфейсную часть контроллера БРП, а исполнительными сигналами являются запросы на прерывание от различных устройств, подаваемые на входы EVN0...EVN7. БРП сигналами INT, EII и EIO входит цепь и структуру векторного прерывания микропроцессора, вычислителя и всего модуля в целом.

Управление БРП осуществляется с помощью трех регистров:

- регистра управления РУ,

- регистра маски РМ,

- регистра причины РП.

Регистр управления обеспечивает требуемые режимы работы БРП. Формат регистра приведет в таблице 2.7.

БРП может работать в двух режимах: в режиме индивидуального прерывания - при РУ(0) =1, и в режиме группового прерывания РУ (0) = 0. В режиме индивидуального прерывания БРП, работая в цикле векторного прерывания выставляет на магистраль вектор прерывания, присвоенный конкретному устройству.

Таким образом, процессор сразу по вектору идентифицирует устройство, запросившее прерывание, и приступает к его обслуживанию.

 







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.