Мегаобучалка Главная | О нас | Обратная связь  


Слова рабочих приказов




Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

 

Содержимое операционных регистров изменяется в процессе работы КПП записью в них новой информации.

OCW1– это слово представляет собой маску запросов прерываний. Маскирование (запрещение) запросов осуществляется единичным значением соответствующего бита маски. Этот приказ при выводе в нечетный порт пересылается в регистр IMR.

Регистр OCW1 (IMR) - регистр маски прерывания. Код 1 в разряде i запрещает, а код 0 - разрешает обработку запроса прерывания по входу IRQi.

Регистр OCW2 - определяет один из трех возможных порядков изменения приоритетов запросов прерываний:

- приоритеты не меняются в процессе работы КПП;

- приоритеты меняются циклически: после обработки очередного запроса его приоритет становится самым низким, а приоритеты остальных запросов циклически сдвигаются;

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

OCW2 – этот приказ предназначен для выполнения следующих функций:

1) вывод команды завершения обработки аппаратного прерывания (EOI);

2) циклический сдвиг или явное изменение уровней приоритетов.



 

Формат OCW2 имеет вид, представленный на рисунке 14.7.

 

R SL EOI L2 L1 L0

7 6 5 4 3 2 1 0

Рисунок 14.7 – Формат OCW2

RRotation – вращение приоритетов;

SLSet Level – установка уровней приоритетов;

EOIEnd Of Interrupt – приказ конца прерывания;

L2, L1 ,L0 – уровень приоритета (это поле является актуальным только при SL=1).

Биты 3 и 4 являются битами идентификации OCW2.

 

Бит EOI непосредственным образом связан с аналогичным по смыслу битом AEOI (Automatic EOI). Единичное значение бита AEOI означает автоматический конец прерывания, что приводит к тому, что установленный запросом прерывания бит в регистре ISR автоматически сбрасывается в цикле подтверждения прерывания.

При нулевом значении бита AEOI установленный в регистре ISR бит, соответствующий обслуживаемому запросу прерывания, необходимо сбрасывать специальным приказом конца прерывания. Выдача этого приказа возлагается на программу - обработчик прерываний, и команды, связанные с этой выдачей, размещаются в самом конце программы-обработчика (как правило, непосредственно перед командой возврата IRET). Для ведущего PIC выдача этого приказа осуществляется командами:

 

MOV AL, 20H; пересылка приказа EOI в регистр AL

OUT 20H, AL; вывод приказа EOI в PIC

 

Для ведомого контроллера используется команда OUT 0A0H, AL.

 

После вывода этого приказа PIC работает в режиме обычных приоритетов (соответствует описанному выше режиму FNM).

Таблица –

R SL  
Режим обычных приоритетов (FNM)
В регистре ISR производится сброс бита, соответствующего заданному в приказе уровню приоритета, после чего устанавливается обычный режим приоритетов.
После сброса в ISR бита, соответствующего запросу с наивысшим приоритетом, запросы этого уровня опускаются на дно приоритетного кольца (им присваивается низший приоритет), в то время как наивысший приоритет переходит к следующему по порядку уровню. Так, например, после запроса с уровнем IRQ3 линейка запросов принимает вид:
Сброс в ISR бита, соответствующего запросу с заданным в приказе уровнем, после чего этому уровню присваивается низший приоритет. Наивысший приоритет получает следующий по порядку уровень.

В принципе, биты R и SL являются актуальными и при нулевом значении бита EOI, т.е., не посылая приказа конца прерывания, можно, тем не менее, реализовать изменение приоритетов. Так, например, комбинация 10 предполагает разрешение вращения уровней приоритетов, причем изменение приоритетов происходит каждый раз при автоматическом сбросе бита запроса в ISR (AEOI=1).

Аналогично комбинация 11 осуществляет принудительную установку дна приоритетного кольца так же при каждом сбросе бита в регистре ISR.

Возврат к обычному режиму приоритетов при условии, что AEOI = 1, осуществляется выводом нулевого байта в порт с адресом 20.

В персональной ЭВМ установлено постоянство приоритетов запросов прерываний, при этом запрос IRQ0 имеет самый высокий приоритет.

Так как здесь используются два каскадновключенных контроллера, приоритеты запросов прерываний IRQi имеют вид, представленный на рисунке 14.7.

Рисунок 14.8 – Приоритетность запросов прерываний IRQi в персональной ЭВМ

 

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

OCW3 – с помощью этого приказа могут быть реализованы следующие функции:

1) установка и отмена режима специального маскирования;

2) установка и отмена режима опроса (полинга);

3) разрешение чтения регистров IRR и ISR контроллера.

Формат OCW3:

ESMM SMM P RR RIS

7 6 5 4 3 2 1 0

Рисунок 14.9 – Формат OCW3

ESMM (Enable Special Mask Mode) – разрешение специального режима маскирования;

SMM (Special Mask Mode) – специальный режим маскирования;

Р (Polling) - бит разрешения полинга;

RR – Read Register – разрешение чтения регистров; RIS (“0” – чтение регистра IRR, “1” – чтение регистра ISR);

Биты 3 и 4 – биты идентификации.

При включении режима специального маскирования запросы прерываний, поступающие в регистр IRR, обслуживаются в порядке их поступления во времени (дисциплины обслуживания FIFO (FCFS – First Come First Served)).

В режиме опроса (Р = 1) контроллеру запрещается автоматически прерывать работу CPU при появлении запроса прерывания от ВУ. В связи с этим CPU не воспринимает запросов прерываний по входу INTR (IF = 0). Для того чтобы CPU мог узнать о наличии запроса на прерывание, он должен подать команду ввода с указание четного адреса порта: IN AL, 20H.

При выполнении этой команды в регистр AL будет помещен байт следующего формата:

 

I XXXX L

7 6 3 2 0

Рисунок 14.10 – Формат байта, помещенного в AL при выполнении команды IN AL, 20H

 

Старший бит I (Interrupt) установлен при наличии незамаскированного запроса в IRR. Младшие 3 бита содержат уровень выделенного запроса с наивысшим приоритетом.

По активному уровню сигнала чтения (RD), сгенерированному командой IN, происходит установка соответствующего бита в ISR, как будто был получен сигнал подтверждения прерывания INTA. Путем программной модификации номера уровня выделенного запроса номер (тип) прерывания CPU программным путем осуществляет вызов обработчика соответствующего аппаратного прерывания. В этом режиме процедура полинга, как выделение наиболее приоритетного из незамаскированных запросов прерываний, реализуется непосредственно в PIC, т.е. на аппаратном уровне. Для реализации программного полинга могут использоваться специальные приказы чтения регистров IRR и IMR с целью последующего программного анализа их содержимого.

В режиме разрешения чтения регистров (RR = 1) содержимое регистров IRR и ISR можно прочитать в регистр AL, используя команду ввода из порта с четным адресом (см. выше).

Замечание: перечисленные выше три режима, реализуемые с помощью OCW3, являются взаимоисключающими, из чего следует, что только один из трех битов (ESMM, R, RR) могут быть установлены.

 

§ 3. Организация прерываний в реальном и защищенном режимах
в старших моделях семейства Intel 80x86, Pentium

3.1. Аппаратные средства системы прерываний Intel 80x86

 

Система прерываний - это совокупность программных и аппаратных средств, реализующих механизм прерываний.

 

К аппаратным средствам системы прерываний относятся:

1) выводы микропроцессора - на них формируются сигналы, извещающие микропроцессор либо о том, что некоторое внешнее устройство «просит уделить ему внимание» (INTR), либо о том, что требуется безотлагательная обработка некоторого события или катастрофическая ошибка (NMI)

2) INTR - вывод для входного сигнала запроса на прерывание,

3) NMI - вывод для входного сигнала немаскируемого прерывания

4) INTA - вывод для выходного сигнала подтверждения получения сигнала прерывания микропроцессором (этот сигнал поступает на одноименный вход микросхемы контроллера 8259А;

5) программируемый контроллер прерываний 8259А (предназначен для фиксирования сигналов прерываний от восьми различных внешних устройств; он выполнен в виде микросхемы; обычно используют две последовательно соединенные микросхемы, поэтому кол-во возможных источников внешних прерываний до 15 плюс одно немаскируемое прерывание; именно он формирует номер вектора прерывания и выдает его шину данных);

6) внешние устройства (таймер, клавиатура, магнитные диски и т.п.)

 




Читайте также:
Генезис конфликтологии как науки в древней Греции: Для уяснения предыстории конфликтологии существенное значение имеет обращение к античной...
Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ...
Организация как механизм и форма жизни коллектива: Организация не сможет достичь поставленных целей без соответствующей внутренней...



©2015-2020 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (331)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.014 сек.)
Поможем в написании
> Курсовые, контрольные, дипломные и другие работы со скидкой до 25%
3 569 лучших специалисов, готовы оказать помощь 24/7