Сделай Сам Свою Работу на 5

Ресурсы для каналов базовый адрес (смещение





В конфигурационном пространстве) для канала

12 12

 

Блок командных регистров 1FOh-1F7h 170h-177h 10h 14h
Блок управляющих регистров 3F6h 376h 18h 1Ch
Прерывание    

Типовой контроллер имеет класс 01:01:80h и реализован в чипсетах большинства современных системных плат. Контроллер выглядит как расширение стандартно­го АТА-контроллера, обеспечивающего доступ к регистрам устройств AT A/ AT API по известным адресам. Расширение касается прямого управления шиной PCI (bus mastering), благодаря которому можно реализовать обмен данными с устройства­ми в режимах DMA. Контроллер позволяет использовать все доступные ему ре­жимы обмена РЮ (3,3-16,6 Мбайт/с), режимы DMA в стиле контроллера 8237 А (2-16,6 Мбайт/с) и режимы UltraDMA (16,6-100 Мбайт/с). Все настройки вре­менных параметров выполняются через конфигурационные регистры PCI, их со­став может быть специфичным. Однако с этими регистрами должна иметь дело только процедура POST, устанавливая для каждого обнаруженного устройства AT A/ AT API оптимальные режимы РЮ и DMA/UltraDMA. В эти настройки мо­жет вмешаться пользователь, установив какие-либо ограничивающие параметры в BIOS Setup. В итоге после конфигурирования во время POST при обращении программ к устройствам остается выбор лишь между РЮ и DMA (если устрой­ство поддерживает DMA). Для обмена в режиме РЮ никаких специальных дей­ствий не требуется, программа просто выполняет чтение или запись в регистр дан­ных командами REP IN5/OUTS. Для обмена в режиме DMA требуется «зарядить» и запустить контроллер прямого управления, о чем и пойдет речь ниже.




386________________________________ Глава 9. Интерфейсы устройств хранения

Двухканальный контроллер имеет 16-байтный блок регистров, расположенный в пространстве портов ввода-вывода. Базовый адрес блока хранится в конфи­гурационном пространстве устройства по смещению 20h (берутся младшие 16 бит двойного слова). Расположение регистров в блоке показано в табл. 9.10, имена регистров имеют префикс BMI (Bus Master IDE) и окончание Р (Primary) для первого канала, S (Secondary) — для второго; в описании будем использовать окон­чание х (любой канал).

Таблица 9.10.Блок регистров контроллера PCI IDE

Смещение для канала Длина, байт Регистр для первого/второго каналов



J________ 2________________________________________________________________________

0 8 1 BMICP/BMICS (RW) — регистр команд: бит 0:

1 — запуск, 0 — останов; бит 3 — направление: 0 — чтение памяти, 1 — запись в память; биты 1 -2, 3-7 — резерв (0)

1 9 1 Резерв (0)

2 OAh 1 BMISP/BMISS— регистр состояния: бит 0 (R/O) —

активность канала; бит 1 (RWC) — ошибка обмена по PCI; бит 2 (RWC) — запрос прерывания от устройства; биты 3-4 — резерв (0); бит 5 (RW) — устройство 0 поддерживает DMA; бит 6 (RW) — устройство 1 поддерживает DMA; бит 7 — признак симплексного режима (1, если каналы не могут работать одновременно)

3 OBh 1 Резерв (0)

4 ОСИ 4 BMIDPTP/BMIDPTS(RW)— адрес таблицы

дескрипторов

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

В регистре состояния BMISx биты 1 и 2 устанавливаются аппаратно, а сбрасывают­ся при записи байта с единичным значением в соответствующем бите. После сброса бита запроса прерывания он снова установится только по следующему фронту сигнала прерывания от устройства. Биты 5 и 6 устанавливаются программно, обыч­но когда POST определяет возможности подключенных устройств и программи­рует режимы контроллера. Регистр состояния должен быть прочитан после завер­шения выполнения команды для определения успешности операций на шине PCI. В регистр ВМI DPTx заносят адрес таблицы дескрипторов областей памяти, с кото­рыми производится обмен данными. Контроллер способен при чтении памяти собрать поток данных из произвольного числа областей (gathered read), а при запи­си «разбросать» поток по этим областям (scatter write). Такая возможность ветре-




9.2. Интерфейс ДТА/ATAPI (IDE)_______________________________________ 387

чалась еще в 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 — устройство завершило обмен, но по команде АТА передано меньше дан­ных, чем описано в таблицах (допустимое завершение);

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

 








Не нашли, что искали? Воспользуйтесь поиском по сайту:



©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.