Алгоритм - Учебный центр

Версия сайта для слабовидящих
Заполните форму ниже! Мы вам перезвоним!

Нажав на кнопку "Отправить", Я даю своё согласие на автоматизированную обработку указанной информации, распространяющейся на осуществление всех действий с ней, включая сбор, передачу по сетям связи общего назначения, накопление, хранение, обновление, изменение, использование, обезличивание, блокирование, уничтожение и обработку посредством внесения в электронную базу данных, систематизации, включения в списки и отчетные формы.


Прерывание – аппаратная функция процессора (ликбез).

Прерывание – аппаратная функция процессора (ликбез).

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

Событий, вызывающих прерывания достаточно много: аппаратные ошибки, определяемые схемами контроля устройств; ошибка четности; ошибка ввода-вывода (немаскируемые прерывания NMI); внутренние ошибки МП (ошибка деления на 0, нарушение прав доступа к сегменту памяти и др.); выполнение команд INT (программные прерывания); запрос на переход в режим управления системой (SMI); запросы на обслуживание от внешних устройств - маскируемые прерывания по сигналам IRQ (маскируемые прерывания вызываются переходом в высокий уровень сигнала на входе INTR (Interrupt Request) процессора при установленном флаге разрешения (IF=1)); и др..

Все события, вызывающие прерывания, пронумерованы от 0 через единицу до FFh (256 событий). За каждым событием (в режиме реального адреса) жестко закреплен вектор прерывания (четыре байта ОЗУ). В векторе прерывания хранится «программный адрес» (CS:IP), определяющий начало программы обслуживания данного события. Под вектора прерывания в режиме реального адреса отводится область ОЗУ с 0 до 400h (256 векторов х 4 байта = 1024 байта). Адрес вектора прерывания (АВП) – это адрес младшего из четырех байтов вектора прерывания. АВП=(номер события вызывающего прерывание) х 4.

Запросы на прерывания (сигналы IRQ) от внешних устройств являются сигналом о полной готовности устройства к обмену данными с процессором. Сигналы IRQ (Interrupt ReQuest - запрос прерывания) поступают на входы контроллера прерываний, который формирует запрос на маскируемое прерывание в микропроцессор.

IRQ (Interrupt ReQuest - запрос прерывания) - сигнал от одного из узлов компьютера, требующий обслуживания этого узла процессором. Сигнал IRQ возникает при наступлении какого-либо события (например, нажатии клавиши, завершении операции чтения/записи на диске и т.п.). Стандартно было предусмотрено 15 линий IRQ, часть которых использовалась внутренними контроллерами системной платы, а остальные были заняты стандартными адаптерами либо не использовались.

С прерываниями связано понятие «Стек». Стек это буфер в оперативной памяти, предназначенный для хранения данных, имеющих временную ценность, например, в стеке сохраняется текущее состояние микропроцессора, необходимое для возврата в прерванную программу по команде IRET. Запись в стек выполняется с автоуменьшением адресов, а чтение с автоувеличением адресов. Физический адрес для обращения в стек формируется из регистров процессора (SS:SP). При выполнении записи в стек содержимое регистра SP автоматически уменьшается на 2, а затем используется в качестве смещения при вычислении физического адреса. При обращении по чтению в стек содержимое регистра SP используется в качестве смещения при вычислении физического адреса, а затем к регистру SP автоматически прибавляется 2. Обращение в стек может быть выполнено во время выполнения микропроцессором аппаратной функции (например, прерывание) и по командам микропроцессора (например, PUSH, POP).


Лицензия