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

       

а также других устройств) набора


6.7. Пакетный интерфейс АТДР1

Для подключения к интерфейсу АТА накопителей CD-ROM и стриммеров ( а также других устройств) набора регистров и системы команд АТА недостаточно. Для них существует аппаратно-программный интерфейс ATAPI (АТА Package Interface - пакетный интерфейс АТА). Устройство ATAPI поддерживает минимальный набор команд АТА, который

неограниченно расширяется 16-байтным командным паке- том, посылаемым хост-контроллером в регистр данных уст- ройства по команде Packet. Структура командного пакета пришла от SCSI, что обеспечивает схожесть драйверов для устройств со SCSI и ATAPI. Классификация устройств совпа- дает с принятой в SCSI (см. табл. 5.12), класс устройства сообщается им в начале блока параметров идентификации.

Интерфейс ATAPI может использоваться с неинтеллектуаль- ными адаптерами АТА, поскольку для хост-адаптера поддержка ATAPI может выполняться чисто программно. Сложные кон- троллеры АТА, имеющие кэш-память и собственный процес- сор, неориентированные на интерфейс ATAPI, могут не дога- даться, что в регистр данных устройства кроме 512-байтных блоков данных можно записывать 16-байтный с командным пакетом. Устройства ATAPI имеют следующие особенности:

Команду Identify Device они должны отвергать, чтобы хост не пытался к ним обратиться как к АТА-устройствам. Для идентификации устройств ATAPI предназначена специ- альная команда Identify Packet Device, а блок параметров, сообщаемых устройством, трактуется иначе (табл. 6.12).

Для программного сброса устройства ATAPI предназна- чена команда Device Reset, которую устройства АТА от- вергают. Программный сброс через регистр управления не прекращает выполнения команды Packet

Специфические команды вместе с необходимыми пара- метрами передаются по команде Packet, код которой яв- ляется недействительным для устройств АТА.

Слово



F/V

Назначение

о

F

Общая конфигурационная информация Биты [15:14] = 10 для всех устройств ATAPI Бит 13 - зарезервирован Биты 12-8 - набор поддерживаемых команд (класс устройства) Бит 7: 1 - устройство со сменным носителем Бит 6-5: 00 - устройство установит DRQ в течение 3 мс после получения комавды Packet,

<
Слово

F/V

Назначение

01 - устройство введет INTRQ по установке DRQ после получения команды Packet, 10 - устройство установит DRQ в течение 50 мкс после получения команды Packet, 11 -зарезервировано Биты 4-2 - зарезервированы Биты 1-0 - длина командного пакета: 00-12 байт, 01 -16 байт, 1х - зарезервировано

1-9

R

Зарезервировано

10-19

F

Серийный номер (20 символов ASCII), если слово 10 не нулевое; иначе - специфичная информация

20-22

R

Зарезервировано

23-26

F

Версия встроенного ПО (8 символов ASCII), если слово 23 не нулевое; иначе - специфичная информация

27-46

F

Номер модели (40 символов ASCII), если слово 27 не нулевое; иначе - специфичная информация

47-48

R

Зарезервировано

49

Возможности:

F

Бит 15: 1 - поддержка чередующегося (interleaved) DMA

F

Бит 14: 1 - поддержка очередей команд

F

Бит 13: 1 - поддержка перекрывающихся команд

F

Бит 12: 1 - требуется программный сброс (устарело)

F

Бит 11: 1 - IORDY поддерживается (для PIO Mode 3 и выше - обязательно), 0 - IORDY не обязано поддерживаться

F

Бит 10: 1 - сигнал IORDY может быть запрещен командой Set Features

F

Бит 9: 1 - поддержка LBA

F

Бит 8: 1 - поддержка DMA

X

Биты 7-0 специфичны

Слово

F/V

Назначение

50

R

Зарезервировано

51

F X

БИТЬ! 15-8: номер PIO Mode Биты 7-0 специфичны

52

R

Зарезервировано

53

R F

F V

Биты 15-3 зарезервированы Бит 2: 1 - поля в слове 88 действительны, О-нет

Бит1: 1 - поля в словах 64-70 действительны, 0-нет Устройство, поддерживающее PIO Mode 3 и старше или Multiword DMA Mode 1 и выше, должно использовать эти поля

Бит 0: 1 - поля в словах 54-58 действительны, 0 - поля могут быть действительны

54-62

R

Зарезервировано

63

R

R V

Режим множественного обмена Multiword DMA: Биты 15-11 зарезервированы Биты 10-8: активный режим: бит 8=1 - Mode 0, бит 9=1 - Mode 1 и т. д. Единичное значение может иметь только один бит

Биты 7-3 зарезервированы Биты 2-0: поддерживаемые режимы: бит 0=1 - Mode 0, бит 1-1 - Mode 1 и т. д.

64

R F

Биты 15-8 зарезервированы

Биты 7-0 - поддерживаемые прогрессивные режимы, программного обмена (Advanced PIO): бит 0=1 - PIO Mode 3, бит l-l - PIO Mode 4, биты 2-7 - зарезервированы

65

F

Минимальная длительность цикла передачи множественного DMA (в наносекувдах)

66

F

Рекомендованная длительность цикла передачи множественного DMA (в наносекувдах). При многосекторной передаче обеспечивает оптимальную скорость, при которой устройство не тормозит поток снятием запроса DMARQ

<


Слово

F/V

Назначение

67

F

Минимальная длительность цикла передачи PIO без использования сигнала готовности (в наносекундах)

68

F

Минимальная длительность цикла передачи PIO с использованием сигнала готовности (в наносекундах)

69-70

R

Зарезервированы для поддержки перекрытия команд и очередей

71

F

Типовое время от получения команды Packet до освобождения шины (в наносекундах)

72

F

Типовое время от получения команды Service до сброса BSY (в наносекундах)

73-74

R

Зарезервирован о

75

F

Глубина очереди команд: биты 15-5 - зарезервированы, биты 4-0 - максимальная глубина очереди

76-79

R

Зарезервировано

80

F

Номер основной версии интерфейса (если не OOOOh или FFFFh): 1 - АТА-1, 2 - АТА-2 и т. д.

81

F

Младший номер версии интерфейса (если не OOOOh или FFFFh)

82

F

Поддержка команд и свойств (если слова 82 и 83 не равны OOOOh или FFFFh): Бит 15 - не используется Бит 14 - команды Nop Бит 13 - команды Read Buffer Бит 12 - команды Write Buffer Бит 11 - не используется Бит 10 - ограничение доступного пространства Бит 9 - команда Device Reset Бит 8 - вырабатывание прерывания во время команды Service Бит 7 - прерывание по освобождению шины Бит 6 - кэширование с упреждающим чтением Бит 5 - кэширование записи Бит 4 - команда Packet Бит 3 - управление энергопотреблением Бит 2 - смена носителя Бит 1 - команды Security Бит 0 - SMART

Слово

F/V

Назначение

83

F

Поддержка команд и свойств (как и слово 82): Бит 15=0 Бит 14 = 1 Биты 13-5 -зарезервированы Бит 4 - уведомление о смене носителя Биты 3-1 - зарезервированы Бит 0 - команда Download Microcode

84

F

Поддержка команд и свойств (если слова 82, 83 и 84 не равны ООООЬ или FFFFh): Бит 15-0 Бит 14 = 1 Биты 13-0-зарезервированы

85-87

F

Разрешенные команды и свойства - поля и правила аналогичны словам 82-84

88

R

R V

Режим Ultra DMA: Биты 15-11 -зарезервированы Биты 10-8 - активный режим Ultra DMA: бит 8°1 - Mode 0, бит 9=1 - Mode 1 и т. д. Единичное значение может иметь только один бит

Биты 7-3 - зарезервированы Биты 2-0 - поддерживаемые режимы одиночного обмена DMA: бит 0=1 - Mode 0, бит i=°i - Mode 1 и т. д.

89-126

R

Зарезервировано

127

R F

Биты 15-2 -зарезервированы Биты 1-0 - уведомление о смене носителя: 00 - не поддерживается, 01 -поддерживается, 1х - зарезервированы

128

V

Состояние защиты: Биты 15-9 - зарезервированы Бит 8 - уровень защиты: 0 - высокий, 1 -максимальный Биты 7-6 - зарезервированы Бит 5: 1 - поддержка расширенного защитного стирания Бит 4: 1 - счетчик попыток иссяк Бит 3: 1 - команды защиты блокированы

<


Слово

F/V

Назначение

Бит 2: 1 - устройство заблокировано Бит 1:1- защита разрешена Бит 0: 1 - защита поддерживается

129-159

X

Специфично

160-255

R

Зарезервировано

При подаче команды Packet регистр свойств FR содержит признаки команды:

Бит 0 - DMA - является указанием на использование DMA или Ultra DMA для обмена данными.

Бит 1 - OVL - является признаком возможности пере- крывающегося выполнения.

Регистры СН и CL содержат лимит счетчика байт данных, передаваемых по каждому введению DRQ в режиме PIO. Если команда не предусматривает обмена данными, поле игнори- руется. Если общее число требуемых байт данных превыша- ет лимит, значение лимита задается четным. Если оно равно или меньше лимита, лимит нечетен. Значение лимита FFFFh воспринимается устройством как FFFEh. Лимит счетчика, как и бит DMA, к передаче пакета отношения не имеет.

Регистр DH используется только для выбора устройства. Для устройств, поддерживающих очереди команд, биты [7:3] ре- гистра SC содержат тег (Tag).

После подачи команды регистр SC кроме тега будет содер- жать следующие биты:

Бит 2 - PEL (Release) - признак освобождения шины (для перекрывающихся команд).

Бит 1 - I/O (Input/Output) - указатель направления пе- редачи данных (0 - передача к устройству, 1 - к хосту).

т Бит 0 - C/D (Command/Data) - признак передачи коман- ды (1) или данных (0).

В регистре состояния некоторые биты получают новое на- значение:

Бит 5 - DMRDY(DMA Ready) - при ОЯО=1 использует- ся как признак готовности к обмену в режиме (Ultra)

DMA. При DRQ=0 является признаком отказа устрой- ства DF (Device Fault).

Бит 4 - SERV (Service) - признак готовности к обслужи- ванию команды, освободившей шину.

Биты 1, 2 не используются.

щ Бит 0 - СНК (Check) - признак ошибки.

Остальные биты сохранили обычное назначение.

После подачи команды Packet хост определяет состояние устройства, прочитав его регистры. Возможны следующие варианты:

Ожидание команды Packet в регистре SC биты C/D= 1, 1/0=0, REL=0, поле Tag содержит ранее установленное зна- чение.


В регистре состояния BSY-0, DMRDY=0, СНК=0, DRQ=i, бит SERV может указывать на наличие команды, ожидающей обслуживания.

т Передача данных: в регистре SC биты C/D=Q, REL=0, I/O указывает на направление передачи. Регистры СН, CL при использовании PIO содержат счетчик байт данных. В ре- гистре состояния BSY=0, DRQ-i, СНК=0, DMRDY указы- вает на использование DMA, бит SERV может указывать на наличие команды, ожидающей обслуживания.

Освобождение шины: в регистре SC биты C/D=0, 1/0=0, REL=i, поле Tag содержит тег. В регистре состояния BSY=0, DMRDY=0, СНК=0, DRQ=0, бит SERV может ука- зывать на наличие команды, ожидающей обслуживания.

йй Запрос обслуживания: в регистре SC биты C/D=0, //0=0, REL=i, поле Tag содержит тег. В регистре состояния BSY=0, DMRDY=0, CHK-0, DRQ-0, бит SERV=i.

m Успешное завершение: в регистре SC биты C/D=1,1/0=1, REL=0, поле Tag содержит тег. В регистре состояния BSY=0, DRDY=i, CHK=0, DRQ=0, бит SERV может указы- вать на наличие команды, ожидающей обслуживания.

m Завершение с ошибкой (только после передачи последнего байта пакета): в регистре SC биты C/D=1, //0=1, REL=0, поле Tag содержит тег. В регистре состояния BSY=0, DRDY=i, DRQO, DF=1 при отказе устройства, CHK=i, если

регистр ошибок содержит код ошибки" бит SERV может указывать на наличие команды, ожидающей обслужива- ния. В регистре ошибок биты 0 и 1 трактуются в зависи- мости от команды, бит 2 - признак отвергнутой команды (ABR7), биты [7:4] могут содержать уточненное состояние.

Структуру командного пакета см. в 5.5. При любой длине блока дескрипторов, определяемой кодом команды (нулевой байт пакета), передаваемый пакет имеет длину 16 байт, но используется только указанное количество байт. Систему команд и структуру пакетов стандарт ATA/ATAPI-4 не опи- сывает, но для каждого класса устройств существует стан- дартизованный набор команд с определенной структурой пакетов.


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