Пример: Глобальная сеть INTERNET
Я ищу:
На главную  |  Добавить в избранное  

Главная/

Радиоэлектроника, компьютеры и периферийные устройства. /

Вычислительныемашины и системы, 2 семестр

Документ 1 | Документ 2 | Документ 3 | Документ 4 | Документ 5 | Документ 6 | Документ 7 | Документ 8 | Документ 9 | Документ 10 | Документ 11 | Документ 12 | Документ 13 | Документ 14 | Документ 15 | Документ 16 | Документ 17 | Документ 18 | Документ 19 | Документ 20 | Документ 21

←предыдущая  следующая→
1 2 

                         ВТОРОЙ СЕМЕСТР

 

                           СЕМИНАР N 3

       ОРГАНИЗАЦИЯ СИСТЕМЫ ПРЕРЫВАНИЙ МИКРОПРОЦЕССОРА 8086

     Микропроцессор 8086 имеет простую, но достаточно универсаль-

ную систему прерываний.  Каждому  прерыванию  поставлен  в  соот-

ветствие код типа. Допускается обработка до 256 типов прерываний.

Прерывания могут инициироваться внешними устройствами и командами

программных прерываний. В некоторых случаях прерывания генерирует

сам микропроцессор.

                Возможные источники прерываний:

        Немаскируемое прерывание

        ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї

                                                 іNMI

            ЪДДДДДДДДДДї      Ъ Д Д Д Д Д Д Д Д ДіД Д Д Д Д Д Д ї

        ДДД>і          і                         V      МП 8086

        ДДД>і          і INT  і  ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДїі

Запросы ДДД>і          ГДДДДДДДД>і       Схемы прерываний      і

  от    ДДД>іКонтроллері      і  АДДДВДДДДДВДДДДДВДДДДДВДДДДДДДЩі

 уст-   ДДД>іпрерыванийі             і     і     і     і

ройств  ДДД>і          і      і  ЪДДДБДДДї і ЪДДДБДДДї і        і

        ДДД>і          і         іКомандаі і іОшибка і і

        ДДД>і          і      і  і  INT  і і іделенияі і        і

            АДДДДДДДДДДЩ         АДДДДДДДЩ і АДДДДДДДЩ і

                              і        ЪДДДБДДДї ЪДДДДДБДДДДДї  і

                                       іКомандаі іОдношаговыйі

                              і        і INT0  і і   режим   і  і

                                       АДДДДДДДЩ АДДДДДДДДДДДЩ

                              А Д Д Д Д Д Д Д Д Д Д Д Д Д Д Д Д Щ

                       Внешние прерывания

     В микропроцессоре имеются два входа прерываний - маскируемо-

го прерывания INT и немаскируемого прерывания NMI.

     На вход INT подается сигнал от программируемого  контроллера

прерываний, который  обрабатывает  сигналы запросов прерываний от

периферийных устройств.  Для программы контроллер прерываний выг-

лядит,  как  порт ввода-вывода,  в  котором  фиксируется код типа

прерывания. Его основная функция заключается в восприятии  сигна-

лов от периферийных устройств, определении запроса с максимальным

приоритетом  и  генерировании  сигнала  INT,  если  запрос  имеет

больший приоритет, чем выполняемая микропроцессором программа.

     Если установлен сигнал на линии INT и установлен в 1  флажок

разрешения прерывания IF,  то после завершения выполнения текущей

команды происходит прерывание  и  процессор  выполняет  следующие

действия:

  1) выдает контроллеру прерывания подтверждение прерывания;

  2) считывает из контроллера прерывания код типа прерывания;

  3) заносит в стек содержимое регистра флагов;

  4) заносит в стек содержимое регистров IP и CS;

  5) вызывает и выполняет процедуру прерывания;

  6) извлекает из стека содержимое CS и IP;

  7) извлекает из стека содержимое регистра флагов;

  8) возвращается к выполнению следующей команды прерванной прог-

раммы.

     Линия немаскируемого прерывания NMI используется для  сигна-

лизации о  катастрофических  событиях в системе.  Немаскированные


                              - 2 -

прерывания имеют фиксированный код 2.  Немаскированное прерывание

выполняется быстрее маскированного,  так как не требует подтверж-

дения и считывания типа.

     Если установлен сигнал  на  линии  NMI,  то после завершения

выполнения текущей  команды  происходит  прерывание  и  процессор

выполняет следующие действия:

  1) заносит в стек содержимое регистра флагов;

  2) заносит  в  стек содержимое регистра IP и CS,  запоминая тем

самым точку возврата из процедуры прерывания;

  3) вызывает и выполняет процедуру прерывания;

  4) извлекает из стека содержимое CS и IP;

  5) извлекает из стека содержимое регистра флагов;

  6) возвращается к выполнению следующей команды.

     Наибольшее время  запаздывания реакции на внешние прерывания

получается при выполнении команд умножения, деления и многобитно-

го сдвига.

                      Внутренние прерывания

     В процессоре  8086 предусмотрено несколько внутренних преры-

ваний,  генерируемых  при  выполнении  программы.  Команда  INT n

вызывает прерывание сразу после своего завершения. Тип прерывания

n, закодированный программистом в команде,  определяет вызываемую

процедуру прерывания.  Следовательно, эту команду можно использо-

вать для отладки процедур прерываний,  обслуживающих периферийные

устройства.

     Команда  INTO  генерирует  прерывание  типа  4  после своего

завершения, если установлен флаг переполнения OF.

     Процессор самостоятельно генерирует прерывание типа 0  сразу

после выполнения команд деления  DIV  и  IDIV,  если  имело место

деление на 0.

     Если установлен флаг пошаговой работы TF,  процессор автома-

тически  генерирует  прерывание  типа  1  после выполнения каждой

команды. Пошаговый режим предназначен для отладки программ.

     Внутренние прерывания характеризуются следующими свойствами:

  1) Тип  прерывания  либо предопределен,  либо содержится в коде

команды.

  2) Подтверждение прерывания не выдается.

  3) Внутренние  прерывания  нельзя  запретить,  кроме прерываний

пошаговой работы.

  4) Любое внутреннее прерывание (за исключением прерывания поша-

говой работы) имеет более высокий приоритет, чем внешние прерыва-

ния. Если запрос NMI или INT появляется при  выполнении  команды,

которая сама  генерирует внутреннее прерывание (например,  ошибка

деления), оно обрабатывается первым.

     По  командам  внутреннего  прерывания  процессор   выполняет

следующие действия:

  1) заносит в стек содержимое регистра флагов;

  2) заносит в стек содержимое регистра IP и CS;

  3) вызывает и выполняет процедуру прерывания;

  4) извлекает из стека содержимое CS и IP;

  5) извлекает из стека содержимое регистра флагов;

  6) возвращается к выполнению следующей команды.

     Приоритеты прерываний в порядке их убывания:

  1) прерывание из-за ошибки деления;

  2) программное прерывание, инициируемое командой INT;

  3) команда прерывания при переполнении;


                              - 3 -

  4) немаскируемое прерывание NMI;

  5) маскируемое прерывание INT;

  6) прерывание пошаговой работы.

             Таблица указателей векторов прерываний

     Таблица указателей  векторов  прерываний  осуществляет связь

между кодом типа прерывания  и  процедурой,  которая  обслуживает

прерывание данного типа. Таблица занимает 1 Кбайт памяти с диапа-

зоном адресов 0 - 3FF и может содержать до 256 элементов.  Каждый

элемент i таблицы представляет собой  полный начальный логический

адрес процедуры,  которая обслуживает прерывание типа

←предыдущая  следующая→
1 2 


Copyright © 2005—2007 «RefStore.Ru»