Смещение для каналаДлина, байтРегистр для первого/второго каналов
12
081BMICP/BMICS (RW) — регистр команд: бит 0: 1 — запуск, 0 — останов; бит 3 — направление: 0 — чтение памяти, 1 — запись в память; биты 1–2, 3–7 — резерв (0)
191Резерв (0)
20Ah1BMISP/BMISS — регистр состояния: бит 0 (R/O) — активность канала; бит 1 (RWC) — ошибка обмена по PCI; бит 2 (RWC) — запрос прерывания от устройства; биты 3–4 — резерв (0); бит 5 (RW) — устройство 0 поддерживает DMA; бит 6 (RW) — устройство 1 поддерживает DMA; бит 7 — признак симплексного режима (1, если каналы не могут работать одновременно)
30Bh1Резерв (0)
40Ch4BMIDPTP/BMIDPTS (RW) — адрес таблицы дескрипторов

Регистр командBMICx, доступный по чтению и записи, используется для запуска контроллера и задания направления передачи. Запуск осуществляется при переходе бита 0 из нуля в единицу, останов для текущего сеанса необратим. Останов контроллера (сброс бита) обычно выполняют по окончании выполнения команды ATA/ATAPI (по прерыванию). Преждевременный останов приведет к ошибке выполнения команды с соответствующим сообщением. Направление должно быть задано до запуска контроллера, изменять его «на ходу» нельзя.

В регистре состояния BMISx биты 1 и 2 устанавливаются аппаратно, а сбрасываются при записи байта с единичным значением в соответствующем бите. После сброса бита запроса прерывания он снова установится только по следующему фронту сигнала прерывания от устройства. Биты 5 и 6 устанавливаются программно, обычно когда POST определяет возможности подключенных устройств и программирует режимы контроллера. Регистр состояния должен быть прочитан после завершения выполнения команды для определения успешности операций на шине PCI.

В регистр BMIDPTx заносят адрес таблицы дескрипторов областей памяти, с которыми производится обмен данными. Контроллер способен при чтении памяти собрать поток данных из произвольного числа областей (gathered read), а при записи «разбросать» поток по этим областям (scatter write). Такая возможность встречалась еще в EISA-системах, она позволяет преодолевать барьеры на границах страниц, свойственные стандартным контроллерам DMA и страничной переадресации процессоров х86. Каждый дескриптор занимает 8 байтов:

♦ байты 0–3 (двойное слово) — физический адрес начала области (четный);

♦ байты 4–5 (слово) — счетчик байтов (четный, 0000 соответствует 65 536);

♦ байты 6–7 (слово) — признак конца таблицы (бит 15), биты 0-14 не используются (0).

Каждая область может быть расположена в произвольном месте памяти (кроме отображаемой на шину ISA) и иметь произвольный размер, но не должна пересекать границы страниц размером 64 Кбайт. Таблица дескрипторов должна быть выровнена по границе двойного слова и не должна пересекать границы страниц, имеющих размер 64 Кбайт. Число дескрипторов в таблице произвольно, последний должен содержать признак конца таблицы. Обмен начинается с области, описанной первым дескриптором; за ней идет область следующего дескриптора и так далее до последнего. Контроллер остановится по исчерпании счетчика в последнем дескрипторе или по инициативе устройства, если в обмене должно участвовать меньшее число данных. Если устройству данных не хватит, оно укажет на ошибку при завершении команды.

После запуска контроллера второй и нулевой биты регистра состояния отражают следующие ситуации:

♦ 0,1 — происходит обмен с памятью, прерывания по концу операции еще нет;

♦ 1,0 — обмен завершен, переданный объем соответствует объему описанных буферов (нормальное завершение);

♦ 1,1 — устройство завершило обмен, но по команде ATA передано меньше данных, чем описано в таблицах (допустимое завершение);

♦ 0,0 — ошибка на шине (бит 1), или в таблицах описано меньше данных, чем в команде ATA.

Конфигурирование устройств

Устройства ATA перед подключением к шине должны быть корректно сконфигурированы. Конфигурирование подразумевает выбор типа интерфейса и определение адреса устройства. Тип интерфейса — XT или AT — определяется моделью накопителя. В изделиях фирмы Seagate, например, тип обозначается последней буквой в шифре модели: А — ATA (16 бит,) X — для XT (8 бит), а сочетание АХ означает возможность выбора AT/XT с помощью джампера.

Перейти на страницу:

Все книги серии Наиболее полное и подробное руководство

Похожие книги