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

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

1) выводы микропроцессора (INTR, INTA, NMI);

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

Рис. Аппаратная организация системы прерываний IBM PC.

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

Два контроллера используются для увеличения допустимого количества внешних устройств. Дело в том, что каждый контроллер прерываний может обслуживать сигналы лишь от 8 устройств. Для обслуживания большего количества устройств контроллеры можно объединять, образуя из них веерообразную структуру. В современных машинах устанавливают два контроллера, увеличивая тем самым возможное число входных устройств до 15 (7 у ведущего и 8 у ведомого контроллеров).

Выход ведущего контроллера подключается к входу INT микропроцессора, а выход ведомого - к входу IRQ2 ведущего. Основная функция контроллеров - передача сигналов запросов прерываний от внешних устройств на единственный вход прерываний микропроцессора. При этом, кроме сигнала INT, контроллеры передают в микропроцессор по линиям данных номер вектора, который образуется в контроллере путем сложения базового номера, записанного в одном из его регистров, с номером входной линии, по которой поступил запрос прерывания. Номера базовых векторов заносятся в контроллеры автоматически в процессе начальной загрузки компьютера. Для ведущего контроллера базовый вектор всегда равен 8, для ведомого - 70h. Таким образом, номера векторов, закрепленных за аппаратными прерываниями, лежат в диапазонах 8h...Fh и 70h...77h.

3) внешние устройства.

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

1) таблица векторов прерываний; первый килобайт ОП (адреса 00000h-003FFh) занимает таблица векторов прерываний; она содержит адреса (векторы) обработчиков прерываний и состоит из 256 (0..255) элементов по 4 байта каждый (см. рис.);

Рис. Таблица векторов прерываний IBM PC

2) два флага в регистре флагов:

IF (Interrupt Flag) - флаг прерывания. Предназначен для маскирования (запрещения) аппаратных прерываний. Если IF=1, микропроцессор обрабатывает внешние прерывания, если = 0, то игнорирует.

TF (Trace Flag) - флаг трассировки. Если он=1, то микропроцессор переходит в режим покомандной работы. В этом режиме в микропроцессоре генерируется внутреннее прерывание с номером 1. Флаг захвата (специального прерывания) TF помогает при отладке программ. Этот флаг устанавливается не в результате работы микропроцессора, а - программой, с помощью специальной команды. Этот флаг называется также флагом трассировки или шага. Когда этот флаг установлен, после выполнения каждой команды возникает прерывание. Эффект при этом такой же, как если бы после каждой команды некоторое внешнее устройство запрашивало прерывание. Прерывание по трассировке передает управление в ячейку, определенную вектором прерывания 4. Во время процедуры прерывания микропроцессор сбрасывает флаг специального прерывания. Это позволяет программе обработки прерывания по трассировке избежать прерывания после каждой команды. Когда обработчик прерывания по трассировке возвращает управление программе пользователя, он восстанавливает начальное состояние регистра флагов, в котором флаг трассировки установлен. Микропроцессор выполняет следующую команду пользователя, и снова возникает специальное прерывание. Обработчик прерываний по трассировке получает управление после каждой команды до тех пор, пока программа пользователя не сбросит флаг захвата.

3) машинные команды микропроцессора: int, into, iret, cli, sti.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: