и DDMA. Механизм PC/PCI (см. п. 6.2.7) был разработан фирмой Intel для обеспечения возможности использования слотов ISA блокнотными ПК, подключаемыми к док-станции по шине PCI. Альтернативное решение — механизм DDMA (Distributed DMA — распределенный DMA) позволяет «расчленить» стандартный контроллер и отдельные его каналы эмулировать средствами карт PCI. Оба этих механизма реализуемы только как часть моста между первичной шиной PCI и шиной ISA, поэтому их поддержка может обеспечиваться (или не обеспечиваться) только на системной плате и разрешаться в CMOS Setup.

12.4.1. Контроллер прямого доступа 8237A

Микросхема 8237A, применявшаяся в PC вплоть до первых моделей AT, представляет собой четырехканальный контроллер прямого доступа к памяти, допускающий каскадирование. Вторичный контроллер (8237#2) каскадно соединен с первичным, при этом теряется возможность использования одного канала вторичного контроллера. Контроллер 8237А имеет 16-разрядные регистры адреса и счетчики, что обеспечивает возможность программирования передачи блока данных размером до 64 Кбайт или слов. Назначение регистров контроллеров DMA, применительно к их адресам в пространстве ввода-вывода компьютера, приведено в табл. 12.4. Контроллер допускает довольно гибкое конфигурирование. Корректное оперативное управление отдельными каналами не затрагивает общих настроек. Общее конфигурирование контроллеров (запись в регистры 008 и 0D0) выполняет BIOS при инициализации во время теста POST; в XT тогда же программируется и канал 0, применяемый для регенерации памяти. Для использования каналов устройствами шины ISA запись в регистры 008 и 0D0 не рекомендуется. Обмен с регистрами контроллера выполняется только однобайтными операциями ввода-вывода. Для загрузки 16-битных значений задействуется триггер младшего/старшего байта. По сбросу контроллера или записи любого байта по адресу 00Ch (0D8h для второго контроллера) этот триггер сбрасывается, и контроллер готовится к приему младшего байта. После приема этого байта триггер меняет состояние, и контроллер воспринимает старший байт, после которого триггер опять переключается.

Таблица 12.4. Регистры контроллера DMA 8237A

8237#1 8237#2 R/W, Назначение регистров
000, 002, 004, 006 0C0, 0C4, 0C8, 0CC W — регистры начального адреса для каналов 0–3 (8237#1) и 4–7 (8237#2). R — регистры текущего адреса тех же каналов
001, 003, 005, 007 0С2, 0C6, 0CA, 0СЕ W — начальное значение счетчика передач для каналов 0–3 (8237#1) и 4–7 (8237#2). R — текущее значение счетчика передач тех же каналов
008 0D0 W, Command Register — конфигуратор контроллера. Бит 7: 1 — активный уровень (DACK# — высокий, 0 — низкий); бит 6: 1 — активный уровень (DRQ — низкий, 0 — высокий); бит 5: 1 — режим расширенной записи (должен быть 0); бит 4: 0 — фиксированный приоритет, 1 — циклический; бит 3: 1 — укороченный цикл обмена (должен быть 0); бит 2: 1 — запрет работы контроллера; бит 1: 1 — фиксация адреса 0 канала (должен быть 0); бит 0: 1 — передача память-память (в PC не используется, должен быть 0)
008 0D0 R, Status Register — состояние каналов. Биты 4–7: запросы каналов 0–3; биты 0–3: завершение цикла каналов 0-3
009 0D2 W, Request Register — регистр программных запросов. Биты 7–3 не используются; бит 2: 1 — установка, 0 — сброс бита запроса; биты 1–0: выбор канала (00 — 0; 01 — 1; 10 — 2; 11 — 3)
00А 0D4 W, Single Mask Bit Register — управление масками. Биты 7–3 не используются; бит 2:1 — установка, 0 — сброс бита маски; биты 1–0: выбор канала (00 — 0; 01 — 1; 10 — 2; 11 — 3)
00B 0D6 W, Mode Register — режимы работы каналов. Биты 7–6: режим передачи (00 — по запросу, 01 — одиночный, 10 — блочный, 11 — каскадирование); бит 5: 0 — инкремент, 1 — декремент адреса; бит 4: 1 — разрешение автоматической реинициализации
00B 0D6 Биты 3–2; тип передачи (00 — холостой, проверка канала, 01 — запись в память, 10 — чтение памяти, 11 — недопустимо); биты 1–0: выбор канала (00 — 0; 01 — 1; 10 — 2; 11 — 3)
00C 0D8 W, Clear Byte Pointer Flip/Flop — сброс триггера младшего/старшего байта
Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату