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

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


2.
Дождавшись освобождения устройства, хост записывает в регистр D/H байт,у которого бит DEV указывает на адресуемое устройство. Здесь кроется причи¬на невозможности параллельной работы двух устройств на одной шине AT А:обратиться к устройству можно только после освобождения обоих устройств.
3.
Хост читает основной или альтернативный регистр состояния адресованного
устройства, дожидаясь признака готовности (DRDY=1).
4.
Хост заносит требуемые параметры в блок командных регистров.
5.
Хост записывает код команды в регистр команд.
6.
Устройство устанавливает бит BSY и переходит к исполнению команды.
Дальнейшие действия зависят от протокола передачи данных, заданного командой.
Для команд, не требующих передачи данных, следующий шаг (шаг 7) — последний. Завершив исполнение команды, устройство сбрасывает бит BSY и устанавливает запрос прерывания (если он не запрещен). К этому моменту в регистрах состо¬яния и ошибок уже имеется информация о результате исполнения. Единичное зна¬чение бита BSY может «промелькнуть» между шагами 6 и 7 так быстро, что хост его не зафиксирует, но для фиксации факта выполнения команды или ее части предназначен запрос прерывания.
Для команд, требующих чтения данных в режиме РЮ, процедура продолжается следующим образом.
7.
Подготовившись к передаче первого блока данных по шине АТА, устройство
устанавливает бит DRQ. Если была ошибка, она фиксируется в регистрах со¬стояния и ошибок. Далее устройство сбрасывает бит BSY и устанавливает за¬прос прерывания (если он не запрещен).
8.
Зафиксировав обнуление бита BSY (или по прерыванию), хост считывает регистр состояния, что приводит к сбросу прерывания от устройства.

9.2. Интерфейс АТА/ATAPI (IDE)
381
9. Если хост обнаружил единичное значение бита DRQ, он производит чтение пер¬вого блока данных в режиме PIO (адресуясь к регистру данных). Если обнару¬жена ошибка, считанные данные могут быть недостоверными. После передачи блока данных возможно одно из следующих действий:

если на шаге 8 ошибка не обнаружена и требуется передача следующего
блока, устройство устанавливает бит BSY и данная последовательность повторяется с шага 7;

если есть ошибка или передан последний блок данных, устройство сбрасы¬
вает бит DRQ и выполнение команды завершается.

Hosted by uCoz