
Системная шина компьютера может тактироваться сигналом либо CLK2IN, либо CLK2IN/2, либо ATCLK (BBUSCLK). Для каналов прямого доступа в память DMA на системной плате используется еще один тактовый сигнал — SCLK, который зависит от частоты сигналов CLK2IN и ATCLK. Для часов же реального времени на системной плате используется свой «часовой» кварц (обычно 32 768 кГц).
1.6.2 Контроллер прерываний
В первых компьютерах IBM PC использовалась микросхема контроллера прерываний I8259 (Interrupt Controller), которая имеет восемь входов для сигналов прерываний (IRQO-IRQ7). Как известно, в одно и то же время микропроцессор может обслуживать только одно событие, и в этом ему помогает контроллер прерываний, который устанавливает для каждого из своих входов определенный уровень важности — приоритет. Наивысший приоритет имеет линия запроса прерывания IRQO, а наименьший — IRQ7, то есть приоритет убывает в порядке возрастания номера линии.
В IBM PC/AT восьми линий прерывания оказалось уже недостаточно, и их количество было увеличено до 15 путем каскадного включения двух микросхем контроллеров прерываний 18259. Такое каскадное включение осуществлялось путем соединения выхода второго контроллера ко входу IRQ2 первого. Важно понять следующее: линии прерывания IRQ8—IRQ15 (то есть входы второго контроллера) имеют приоритет ниже, чем IRQ1, но выше IRQ3.
В таблице 2 приведено распределение номеров прерываний по устройствам для большинства IBM РС/АТ – совместимых компьютеров.
IRQ INT Доступно Использование
0 08h нет Системные часы (18,2 Гц)
1 09h да Клавиатура
2 OAh да Второй блок IRQ8-15
8 70h нет Таймер (1024 Гц)
9 71h да Переадресовано на IRQ2
10 72h да -
11 73h да -
12 74h ‘да -
13 75h нет Сопроцессор
14 76h да Контроллер винчестера
15 77h да -
3 OBh да COM2 или COM4
4 OCh да СОМ1 или COM3
5 ODh да LPT2
6 OEh да Контроллер флоппи
7 OFh да LPT1
Таблица 2. Таблица прерываний
Для компьютеров, совместимых с PC/AT, обычно свободны всего четыре линии запроса прерываний: IRQ 10, 11, 12 и 15. Это, разумеется, касается только полноразмерных плат (16 разрядов данных). Для шин ISA и PCI используется одинаковый набор IRQ. Однако для PCI обычно используются прерывания, активные не по фронту, а по уровню, хотя и первая возможность также не исключается. Это позволяет использовать одну линию для передачи нескольких сигналов прерываний. Обычно для устройств PCI автоматически используются оставшиеся прерывания после установки ISA-плат.
Помимо прерываний, есть еще один способ вызывать какие-то события внутри PC без прямого вмешательства CPU. Это канал DMA.
1.6.3 Контроллер прямого доступа в память
Пересылка байта информации из одной области памяти в другую или из памяти в порт обычно проходит в два шага. На первом шаге CPU получает этот байт, из памяти и записывает в один из своих регистров. На втором шаге он записывает байт в место назначения.
Немного подумав, сразу же можно назвать два основных недостатка подобного подхода: Первый из них заключается в том, что во время перемещения байта CPU ни чем другим заниматься не может. Второй — на перемещение байта требуется два шага. Кажется, мелочь, но если нужно переместить не один байт, а целый блок, мелочью это уже не назовешь.
Внутри PC есть несколько типов устройств, которым нужно пересылать именно большие группы байт. Устройство чтения гибких дисков, например. Звуковые карты также очень интенсивно пересылают байты, настолько интенсивно, что часто они используют сразу несколько каналов DMA. Многие сканеры пользуются каналом DMA, и кто знает, какие еще подобные устройства появятся в дальнейшем.

8th Май 2011
|
Теги:
|