|
Все блин, я придумал как разрешить этот вопрос:
Аппаратные прерывания:
У каждой шины (PCI, ISA и т.д.) существуют определенные линии (читай – контакты), которые отвечают за прерывания, вызываемые устройствами. Номера аппаратных прерываний не прямо соответствуют адресам программных, то есть аппаратному IRQ 0 соответствует INT 8, и так далее по таблице. Зачем, спрашивается, нужны эти IRQ? Во-первых – постоянно опрашивать все устройства на предмет “а не желаете ли Вы нам что-нибудь этакое передать?” просто непозволительно с точки зрения производительности. Процессор просто утомится это делать – гораздо легче дать устройству какие-то права, и пусть оно командует. Во-вторых, сам механизм позволяет программам и процессору абсолютно наплевательски относиться ко всем выступлениям со стороны устройств.
0 (INT 08h) - системный таймер
1 (INT 09h) - контроллер клавиатуры
2 (INT 0Ah) – сопряжен с видеокартой на XT; на AT и выше используется
для каскадирования второй микросхемы контроллера прерываний
3 (INT 0Bh) – стандартный для COM2/COM4
4 (INT 0Ch) - стандартный для COM1/COM3
5 (INT 0Dh) – обычно свободен, но на XT на этом IRQ находился контроллер жесткого диска
6 (INT 0Eh) - контроллер FDD
7 (INT 0Fh) – прерывание параллельного порта (LPT), однако многими LPT-контроллерами не используется
8 (INT 70h) - часы реального времени (RTC – Real Time Clock), прерывание вызывается 18,2 раза в секунду
9 (INT 71h) – эмуляция IRQ2 (для совместимости)
10 (INT 72h) – свободен
11 (INT 73h) – свободен
12 (INT 74h) – ублажитель контроллера PS/2 мыши
13 (INT 75h) - математический сопроцессор
14 (INT 76h) – первый канал контроллера IDE HDD
15 (INT 77h) – второй канал контроллера IDE HDD
Считайте сами от 0 до 15 -- равно 16 IRQ
Для того, чтобы не загружать каждый раз процессор передачей данных от устройства к памяти, используется DMA (Direct Memory Access – прямой доступ к памяти). Передача данных ведется по так называемым каналам, которых всего семь:
0 – используется для регенерации памяти в некоторых системах
1 - свободен
2 – обслуживает контроллер FDD
3 – свободен (на XT – контроллер жесткого диска)
5 – свободен
6 - свободен
7 - свободен
Считать они не умеют: 0..7 == 8 DMA
Следует учитывать, что каналы 0-3 - восьмиразрядные, а каналы 5-7 - шестнадцатиразрядные.
Вот так.
__________________
Старые игры раздают здесь
Последний раз редактировалось CEO; 23.12.2003 в 18:22.
|