КОМПЬЮТЕРНОЕ ЖЕЛЕЗО
HARDWARE FOR PC

Интерфейсы устройств хранения

Все настройки вре¬менных параметров выполняются через конфигурационные регистры 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, доступный по чтению и записи, используется для запуска контроллера и задания направления передачи.

Hosted by uCoz