Сейчас на сайте
Сейчас на сайте 0 пользователей и 0 гостей.

IRQ

Процессор обрабатывает какие-то данные, не важно какие. В этот момент у какого-нибудь устройства тоже появились данные для обработки. Что делать? Надо запросить процессор, что бы тот решил, сейчас обрабатывать эти данные или потом. Так вот этот запрос и есть IRQ или (существуют два типа прерываний: аппаратные (внешние) и программные (внутренние)).

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

После получения запроса прерывания, камень сохраняет в стеке содержимое регистров. Затем он обращается к таблице векторов прерываний, где есть список адресов памяти программ, соответствующих определенным номерам прерываний. От номера прерывания зависит, какая программа будет запущена. В основном этими программами являются драйвера, относящиеся к устройствам, пославшим запрос. После всего этого, процедура обработки возвращает из стека то, с чем работал камень, а проще говоря, отдается управление системой той программе, что работала до запроса прерывания. И так постоянно. Сама таблица находится в оперативной памяти и состоит из 256 элементов по 4 байта и начинается с адреса 0000:0000. Занимает она 1024 Кбайт. Если необходимо обработать хотя бы один новый байт от какого-либо устройства, необходимо сначала обработать IRQ этого устройства.

Что бы не было путаницы у IRQ есть иерархия или приоритеты. Чем меньше номер прерывания, тем выше приоритет и наоборот, чем больше номер прерывания, тем ниже приоритет. IRQ всего 16. Самый высокий приоритет у IRQ 0, а самый низкий у IRQ 15. Приведу таблицу иерархии:

IRQ

Стандартная функция

0

Системный таймер

1

Контроллер клавиатуры

2

Программируемый контроллер прерываний

3

Последовательный порт COM 2

4

Последовательный порт COM 1

5

Звуковая или сетевая карты или свободен

6

Стандартный контроллер гибких дисков

7

Параллельный порт LPT

8

CMOS и часы

9

Звуковая или сетевая карты или свободен

10

Свободен

11

USB или SCSI или свободен

12

PS/2 совместимый порт мыши

13

Сопроцессор

14

Основной контроллер IDE

15

Дополнительный контроллер IDE

А хотите посмотреть свои прерывания? Выберите «Пуск – Выполнить», наберите «msinfo32». В появившимся окне «Сведения о системе», слева, выберите вкладку «Ресурсы аппаратуры – Прерывания IRQ».

Если произойдет генерация большого количества IRQ, то стек может переполниться и тогда…. тогда Вы потянитесь к кнопочке [Reset]. Во избежание этого необходимо в файле Config.sys увеличить параметр Stacks. Кроме этого, двум различным устройствам PCI может быть назначено одно и то же прерывание. Теоретически такое не должно происходить, но вот на практике случается. В этом случае придется самому назначить прерывание одному из устройств.

Как это сделать? Жмем [Win][Pause/Break]. Выскакивает окно «Свойства: Система». Выбираем вкладку «Устройства», ищем в списке то устройство, IRQ которого будем подправлять и жмем на него пару раз мышью. Выскочит окно его свойств, где выберем вкладку «Ресурсы» и снимем галку «Автоматическая настройка». Затем чуть ниже выбираем «Запрос на прерывания» и кликаем опять два раза мышью. Появится окно, где можно изменить номер IRQ.

Сверьтесь с таблицей: какие IRQ для чего предназначены. Посмотрите у себя, какие свободны. Может так случится, что свободных прерываний у Вас и не будет. Новых IRQ Вы конечно не добавите, но подумайте, все ли устройства Вам необходимы.

Следует отметить, что каналы запросов прерывания относятся к системным ресурсам. Определение: системными ресурсами называются коммуникационные каналы, адреса и сигналы, используемые узлами компьютера для обмена данными с помощью шин. К системным ресурсам кроме IRQ относятся: адреса памяти, каналы прямого доступа к памяти и адреса портов ввода/вывода.