Информатика и технология программирования


Механизм прерываний в архитектуре I


Прерывание в IBM PC представляет собой вызов подпрограммы по длинному (far) адресу с предварительным сохранением в стеке состояния процессора (регистр флагов) и полного текущего адреса (CS:IP). Вектор прерывания - область памяти из 4-х байтов, содержащая начальный адрес подпрограммы обработки прерывания. В терминологии Си вектор прерывания - это указатель на функцию обработки прерывания . Первые 1024 байта оперативной памяти содержат 256 векторов прерывания, имеющих номера от 0 до 255. В терминах Си такой массив векторов прерываний определяется как


void interrupt (*IVEC[256])();

Значение индекса в этом массиве имеет также называние - номер вектора прерывания. Каждому источнику аппаратного прерывания соответствует свой номер вектора прерывания. Команда "INT nn" при выполнении процессором вызывает программное прерывание с номером nn.

Само вхождение в процесс обработки прерывания, а также управление источниками прерывания осуществляется на нескольких уровнях :



- на первом уровне устройство, имеющее несколько источников прерывания, при помощи собственных уникальных команд устанавливает " разрешение" или " запрещение" прерывания от каждого из источников. Сформированный таким образом запрос на прерывание поступает на контроллер прерываний по одной из линий запроса. Каждой такой линии присвоен аппаратно определенный приоритет, согласно которым контроллер " пропускает через себя" полученные запросы;



- контроллер прерываний аналогично имеет возможность " разрешить" или " запретить" прерывание по каждой из линий запроса. Сформированный общий запрос на прерывание с выделенным источником максимального приоритета поступает в процессор ;



- процессор также имеет возможность устанавливать собственное " разрешение" и " запрещение" прерывания, которое представлено соответствующим битом в слове состояния процессора. В Си для этой цели существуют стандартные функции enable() и disable().

Процесс вхождения в прерывание по вектору N можно условно проиллюстрировать средствами Си :




Начало  Назад  Вперед



Книжный магазин