Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Работа системы прерываний в реальном режиме работы процессора



В реальном режиме работы система прерываний использует понятие вектора прерывания. Термин «вектор прерываний» используется потому, что для указа-

1 WC (Word Counter) — счетчик слов, см. рис. 3.11.


ния адреса используется не одно значение, а два, то есть мы имеем дело не со скалярной величиной, а с «векторной».

Итак, каждый вектор прерываний состоит из 4 байтов или 2 слов: первые два содержат новое значение для регистра IP, а следующие два — новое значение регистра QS. Таблица векторов прерываний занимает 1024 байта. Таким образом, в ней может быть задано 256 векторов прерываний. В процессоре i8086 эта таб­лица располагается на адресах OQOOOH-Q03FFH. Расположение этой таблицы в про­цессорах i80286 и старше определяется значением регистра IDTR — Interrupt Descriptor Table Register. При включении или сбросе процессора i80x86 этот ре­гистр обнуляется. Однако при необходимости можно в регистре IDTR указать смещение и, таким образом, перейти на новую таблицу векторов прерываний.

Таблица векторов прерываний заполняется (инициализируется) при запуске сис­темы, но в принципе может быть изменена или перемещена.

Каждый вектор прерывания имеет свой номер, называемый номером прерыва­ния, который указывает его место в таблице. Этот номер, помноженный на четы­ре (сдвиг на два разряда влево и заполнение освободившихся битов нулями), и сложенный с содержимым регистра IDTR, дает абсолютный адрес первого бай­та вектора в оперативной памяти.

Подобно вызову процедуры, прерывание заставляет микропроцессор сохранить в стеке информацию для последующего возврата, а затем перейти к группе ко­манд, адрес которых определяется вектором прерывания. Таким образом, Преры­вание вызывает Косвенный переход к своей подпрограмме обработки за счет по­лучения ее адреса из вектора прерывания.

В IBM PC, как и в других вычислительных системах, прерывания бывают двух видов: внутренние и внешние.

Внутренние прерывания, как мы уже знаем, возникают в результате работы про­цессора. Они возникают в ситуациях, которые нуждаются в специальном обслу­живании, или при выполнении специальных инструкций — INT или INTO. Это следующие прерывания:

Q прерывание при делении на ноль; номер прерывания — 0;

Q прерывание по флагу TF (trap flag1). В этом случае прерывание обычно ис­пользуется специальными программами отладки типа DEBUG. Номер прерыва­ния — 1;

Q инструкции INT (interrupt — выполнить прерывание с соответствующим но­мером) и INTO (interrupt if overflow — прерывание по переполнению). Эти пре­рывания называются программными.

В качестве операнда команды INT указывается номер прерывания, которое нужно выполнить, например I NT 10H. Программные прерывания как средство перехода

1 Trap Flag — специальный бит в регистре PSW (program status word, слово состояния про­граммы), который в случае значения TF-1 вызывает «останов» после каждой команды и генерируется прерывание для организации режима отладки с пошаговым выполнением программы. Чаще всего этот регистр в микропроцессорах Intel 80x86 называют регист­ром флагов.


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

Внешние прерывания возникают по сигналу какого-нибудь внешнего устройства. Существуют два специальных внешних сигнала среди входных сигналов процес­сора, при помощи которых можно прервать выполнение текущей программы и тем самым переключить работу центрального процессора. Это сигналы NMI (no mask interrupt, немаскируемое прерывание) и INTR (interrupt request, запрос на прерывание). Соответственно, внешние прерывания подразделяются на не­маскируемые и маскируемые.

Маскируемые прерывания генерируются контроллером прерываний по заявке определенных периферийных устройств1. Контроллер прерываний (его обозна­чение — i8259A) поддерживает восемь уровней (линий) приоритета; к каждому уровню «привязано» одно периферийное устройство2. Маскируемые прерывания часто называют еще аппаратными прерываниями. В ПК, начиная с IBM PC AT, построенных на базе микропроцессора i80286, используются два контроллера прерываний i8259A; они соединяются каскадным образом. Схема последователь­ного соединения этих контроллеров изображена на рис. 3.12.

Таким образом, на IBM PC AT предусмотрено 15 линий IRQ3, часть которых ис­пользуется внутренними контроллерами системной платы, а остальные заняты стандартными адаптерами либо не используются. Ниже перечислены линии за­проса на прерывание, которые мы приводим потому, что каждый специалист по вычислительной технике должен знать основные стандарты ПК. Итак, линии IRQ:

0 — системный таймер;

1 — контроллер клавиатуры;

2 — сигнал возврата по кадру (EGA/VGA), на AT соединен с IRQ 9;

3 - обычно СОМ2/СОМ4;

4 - обычно СОМ1/СОМЗ;

5 — контроллер HDD (на первых компьютерах IBM PC XT), обычно свободен

на IBM PC AT и используется звуковой картой;

6 — контроллер FDD;

7 — LPT1, многими LPT-контроллерами не используется;

8 — часы реального времени с автономным питанием (RTC — real time clock);

9 — параллельна IRQ 2;

' Сигнал запроса на прерывание чаще всего является сигналом готовности внешнего уст­ройства (соответствующего контроллера внешнего устройства) на выполнение следую­щей команды, связанной с управлением операциями ввода/вывода.

2 В качестве внешнегр периферийного устройства, занимающего одну линию запроса на
прерывание, может быть использовано специальное управляющее устройство, которое
позволяет разделять эту самую линию запроса между несколькими внешними устройст­
вами.

3 IRQ (Interrupt Request) — запрос на прерывание.


10 — не используется, то есть свободно;





Дата публикования: 2015-01-23; Прочитано: 835 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...