Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

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




Система прерываний

 

Прерывание – это переход на специальную программу (обработчик прерывания) с последующим возвратом в прерванную программу.

1. Программные прерывания

Вызываются командой INT номер прерывания.

Например,

MOV AH, 4Ch

INT 21h

Завершить работу программы и передать управление операционной системе.

2. Исключения или ловушки

Этот вид прерывания формируется блоками МП (например, деление на нуль).

Фирма Intel для этого вида прерываний выделяет 32 вектора прерывания.

3. Аппаратные прерывания

Формируются аппаратурой компьютера.

Логический адрес обработчика прерывания хранится в векторе прерывания. Разрядность вектора прерывания 4 байта.

 

Младшее слово хранит относительный адрес, старшее слово - селектор.

Векторы прерывания размещаются в нулевом сегменте ОП, в ячейках с адресами 00000h-003FFh.Векторы прерывания в памяти размещает программа POST. Всего 256 векторов.

 

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

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

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

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

 

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

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

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

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

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

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

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 – бит доступен для записи)

 




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


Дата добавления: 2014-11-06; Просмотров: 587; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.007 сек.