Аппаратные прерывания МП

Бывают: немаскируемые (запросы поступает на входы NMI и SMI МП) и маскируемые (запрос поступает на вход INTR МП)

Маскируемые аппаратные прерывания

Микропроцессору можно запретить реагировать на запрос, поступающий на вход INTR, обнулив флаг прерывания IF командой CLI.

Разрешить МП реагировать на прерывания можно, установив в «1» флаг IF командой STI.

 

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

В компьютере IBM PC AT ПКП состоит из двух ПКП.

- ведущий ПКП. К нему подключатся линии прерываний IRQ0- IRQ7.Из пространства ввода-вывода для него выделены адреса 20h- 21h

- ведомый ПКП. Подключается по второму входу ведущего ПКП. К ведомому ПКП подключаются линии IRQ8- IRQ15. Из пространства ввода-вывода за ним закрепляется адреса А0h; А1h.

Программная модель ПКП соответствует ИМС i8259.

Каждый ПКП содержит три восьми разрядных регистра:

1. IRR фиксирует запросы, поступившие на входы 7-0 ПКП

2. IMR – регистр масок. Хранит маскируемые (запрещённые) входы ПКП. Установка бита в «1» запрещает ПКП реагировать на соответствующий вход (в IRR запрос фиксируется)

3. ISR- регистр обслуживаемых прерываний.

Хранит обслуживаемые прерывания. Установка в «1» бита в регистре ISR предотвращает прерывание от этого входа и всех других входов с меньшими преритетами. После установки бита в регистре ISR соответствующий бит в регистре IRR обнуляется.

Функции ПКП

1. Принимает запросы в компьютере по линиями IRQ15 - IRQ0.

2. Присваивает фиксированные или циклически изменяемые приоритеты входам ПКП.

3. Формирует и передаёт по шине данных микропроцессору код команды CALL и адрес вектора прерывания (CALL – переход на подпрограмму).

Реакция системы прерывания на запрос.

Рассмотрим на примере прерывания от клавиатуры.

Поступил запрос от клавиатуры на первый вход ведущего ПКП (смотри рисунок). Этот запрос фиксируется в регистре ISR установкой в «1» первого разряда. Проверяется содержимое первого разряда регистра IMR. Если IMR [1] равен 0, то ПКП может реагировать на запрос и этот запрос поступает на шифратор приоритетов. Если запросов с более высоким приоритетом нет, то ПКП формирует сигнал на выходе INT, который поступает на вход INTR МП. МП проверяет флаг прерывания IF. Если IF равен 1, т.е. прерывания разрешены. МП завершает выполнение текущей команды и переходит на выполнения цикла магистрали – «подтверждение прерывания», формируя на выходах М/IO#- 0, D/C# - 0, W/R#- 0.

Системный контроллер по этому коду формирует сигнал, поступающий на вход INTА ПКП.

ПКП обнуляет первый разряд в регистре IRR и устанавливает в «1» первый разряд в регистре ISR. ПКП по шине данных передает МП код команды CALL и адрес вектора прерывания. Адрес вектора формирует ПКП, прибавляя к базовому адресу вектора 08h, который загружается в ПКП приказом инициализации ICW2, номер входа ПКП. Адрес вектора - 08h + 1 = 09h.

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

0000h : 0024h - логический адрес вектора прерывания.

 

 

МП считывает содержимое вектора прерывания. Младшее слово (относительный адрес) загружает в счётчик команд IP. Старшее слово (селектор) загружает в сегментный регистр CS. Диспетчер памяти формирует физический адрес первой команды обработчика прерывания, процессор считывает первую команд, таким образом осуществляется переход на выполнение обработчика.



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

 

Обрабатываются МП не зависимо от состояния флага IF. К ним относятся прерывания, поступающие на входе INT МП. А для МП, поддерживающих режим системного управления ещё по линии SMI.

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

Сигналы на входе NMI формируются схемами контроля по паритету памяти, либо схемами контроля шин расширения и поступают по линиям IOCHK шины ISA, SERR шины PCI.

Запретить запросам, поступающим от схем контроля, поступать на вход NMI можно, обнулив второй и третий разряды системного порта 61h. Обработчик прерывания NMI располагается по вектору с адресом 0h.

Обработчик прерывания определяет источник прерывания, анализируя разряды 7 и 6 порта 61h. Вложенности прерываний нет, т.е. если во время обработки немаскируемого прерывания снова появится сигнал NMI повторный вызов обработчика возможен только после выполнения команды IRET (выход из подпрограммы).

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

Прерывания на входе SMI возникают от схем чипсетов, участвующих в управлении энергопотреблением. При возникновении прерывания МП переходит в режим SMM. В памяти SM RAM, а не в стеке сохраняется слово состояние микропроцессора (адрес следующей команды и регистр флагов). Затем начинается исполнение обработчика прерывания, расположенного по определенному адресу в памяти SM RAM. В режиме SMM прерывания запрещены, выход из режима SMM происходит при выполнении команды RSM, которая завершает обработчик прерывания.

 

Системный порт РС/АТ

 

Восьмибитный системный порт с адресом 61h пришел в архитектуру АТ на смену порту 8255, поскольку обслуживание клавиатуры перешло на микроконтроллер 8042, а переключатели конфигурации заменили на CMOS – память, функции системного порта РС/АТ свелись к следующим

- управление звуком;

- разрешение и идентификация немаскируемых аппаратных прерываний NMI.

 

Назначение бит системного порта АТ (061h):

-7R – РСК – ошибка четности ОЗУ или сигнал – SERR# на шине РСI;

- 6R – IOCHK- ошибка на шине;

- 5R – Т20 - выход второго канала системного таймера;

- 4R – RFD – регенерация памяти;

-3R/W –EIC – разрешение контроля канала;

-2R/ W – ERP – разрешение контроля ОЗУ и сигнала SERR# шины РСI;

-1 R/ W SPK – управление звуком;

-0 R/ W T2G – вход второго канала системного таймера;

(R – бит доступен для чтения; W – бит доступен для записи)

 








Дата добавления: 2015-07-30; просмотров: 1075;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.01 сек.