Прерывания в IBM-совместимых РС

IBM РС может выполнять 256 различных прерываний, каждое из которых имеет свой номер (двухразрядное шестнадцатеричное число).

Все прерывания делятся на две группы: прерывания с номера 00h по номер 0Fh (16 прерываний) называются прерываниями базовой системы ввода-вывода - BIOS; прерывания с номера 10h по номер FFh называются прерываниями DOS. Прерывания DOS имеют более высокий уровень организации, чем прерывания BIOS, они строятся на использовании модулей BIOS в качестве элементов.

Прерывания BIOS – это, как правило, аппаратные прерывания. Они вырабатываются устройствами и передаются по специальным линиям – IRQ (Interrupt-Requests). Каждое устройство имеет свой номер IRQ.

Стандартное распределение прерываний BIOS приведено в таблице 3.2. Вектор – это адрес ОП, где расположен обработчик прерывания.

Номера векторов, соответствующих линиям IRQ, система приоритетов и другие параметры задаются программно при инициализации контроллеров устройств. Эти настройки сохраняются традиционно для совместимости с программным обеспечением.

Общая схема формирования запросов прерываний изображена на рис. 3.4. Для запросов прерывания с шины PCI используются 4 линии запросов прерывания: INTА, В, С, D. Эти линии работают по низкому уровню, что дает возможность их совместного (разделяемого) использования. Линии циклически сдвигаются в слотах и независимо коммутируются на доступные линии IRQx с помощью конфигурационных регистров чипсета. Линии IRQx, используемые шиной PCI, становятся недоступными для шины ISA. Распределение линий между шинами задают настройки параметров CMOS Setup, а также система РпР. В параметрах настройки «ISA» или «Legacy» подразумевают использование линий IRQx традиционными адаптерами шины ISA (статическое распределение), а «PCI/PnP» — использование адаптерами шины PCI или адаптерами РпР для шины ISA (динамическое распределение).

Каждому устройству, для работы которого требуются прерывания, должен быть назначен свой номер прерывания. Назначения номеров прерываний выполняются с двух сторон.

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

Во-вторых, программное обеспечение, поддерживающее данный адаптер, должно быть проинформировано о номере используемого вектора. В процессе назначения прерываний может участвовать система РnР для шин ISA и PCI, для распределения линий запросов между шинами служат специальные параметры CMOS Setup.

Прерывания DOS - это, как правило, программные прерывание. Запрос на программное прерывание формируется по команде INTn, где n–номер вызываемого прерывания.

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

Команда INT, кроме определения адреса обработчика прерывания, выполняет следующие действия:

сохраняет в стеке часть слова состояния процессора;

сбрасывает флаги разрешения прерывания и трассировки;

заносит адрес точки входа обработчика прерываний в регистры CS и IP.

Команда INT относится к парным командам, – каждый обработчик прерывания заканчивается командой IRET (возврат из прерывания).

Кроме команд INT и IRET в IBM PC, с прерываниями работают команды регистра флагов: СLI (запрещение маскируемых прерываний) и STI (отмена запрета прерывания).

 

 

.

 








Дата добавления: 2016-01-26; просмотров: 2137;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

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

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.004 сек.