Интерфейсы ПК

       

Если хост обнаружил единичное значение


9. Если хост обнаружил единичное значение бита DRQ, он производит чтение первого блока данных в режиме PIO (адресуясь к регистру данных). Если обнаружена ошиб- ка, считанные данные могут быть недостоверными.

После передачи блока данных возможно одно из следующих действий:

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

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

Для операций записи данных после шага 6 для устройства начинается активная фаза записи на носитель, что отмеча- ется установкой бита BSY.

Для команд, требующих записи данных в режиме РЮ (РО и Р):

7. Подготовившись к приему первого блока данных по шине АТА, устройство устанавливает бит DRQ (если нет оши- бок) и сбрасывает бит BSY. Если была ошибка, она фик- сируется.

8. Зафиксировав обнуление бита BSY, хост считывает регистр состояния.

9. Если хост обнаружил единичное значение бита DRQ, он производит запись первого блока данных в режиме РЮ по адресу в регистре данных.

10. После передачи блока данных возможно одно из следую- щих действий:

Если обнаружена ошибка, устройство сбрасывает бит DRQ, устанавливает запрос прерывания и выполнение коман- ды завершается. Переданные по шине данные остаются необработанными устройством (не записываются на но- ситель).

Если ошибка не обнаружена, устройство устанавливает бит BSY и переходит к следующему шагу.

11. Устройство обрабатывает принятый блок данных, затем:

" если нет ошибок и обработанный блок - последний, уст- ройство сбрасывает бит BSY и устанавливает запрос пре- рывания, на чем выполнение команды успешно заверша- ется;

если обнаружена ошибка, выполнение команды заверша- ется таким же образом, но с установкой бит ошибок;

если нет ошибок и требуется передача следующего бло- ка, выполняются следующие шаги:

12. По готовности приема следующего блока устройство уста- навливает бит DRQ, сбрасывает бит BSY и устанавливает запрос прерывания.

13. По обнулению бита BSY (или по прерыванию) хост счи- тывает регистр состояния.

14. Обнаружив бит DRQ, хост выполняет запись очередного блока в регистр данных, и последовательность повторя- ется с шага 11.

Команды с передачей данных в режиме DMA выполняются похожим образом, но:

Вместо PIO используется прямой доступ к памяти. Хост должен проинициализировать канал DMA до записи кода в регистр команд, чтобы по появлении сигнала DMARQ начался обмен.

1s Запрос прерывания даже в многосекторных передачах производится один раз - по выполнении команды.


Содержание раздела