6. Интерфейс АТА

Интерфейс АТА- AT Attachment for Disk Drives - разрабаты-
вался в 1986-1990 гг. для подключения накопителей на жест-
ких магнитных дисках к компьютерам IBM PC AT с шиной
ISA. Стандарт, выработанный комитетом ХЗТ10, определя-
ет набор регистров и назначение сигналов 40-контактного
интерфейсного разъема. Интерфейс появился в результате
переноса контроллера жесткого диска ближе к накопителю,
то есть создания устройств со встроенным контроллером -
IDE (Integrated Device Electronic). Стандартный для AT кон-
троллер жесткого диска был перенесен на плату электрони-
ки накопителя с сохранением регистровой модели. При этом
удлинилась связь с устройством со стороны системной шины,
которую непосредственно выводить на длинный ленточный
кабель было нецелесообразно. Это сказалось бы на скорости
работы шины, надежности и цене. Из всех сигналов шины
ISA выбрали минимальный набор сигналов, часть из кото-
рых буферизовали на небольшой плате, устанавливаемой в
слот, а часть направили прямо на разъем ленточного кабеля
нового интерфейса. Из сигналов системной шины потребо-
вались следующие:

^ шина данных - используется полностью;

т шина адреса - 3 младших бита поступают в интерфейс,
старшие биты и сигнал AEN проходят через дешифратор,
вырабатывающий сигналы выбора устройства CSO# и
CS1#;

^ шина управления - используются сигналы чтения и за-
писи портов и аппаратного сброса, запрос прерывания,
пара сигналов канала DMA, сигналы готовности и
управления разрядностью передачи.

Поскольку стандартный контроллер AT позволял подклю-
чать до двух накопителей, эту возможность получил и ин-
терфейс АТА. Однако теперь два накопителя стали означать
и два контроллера. Их подключили к одной интерфейсной


шине, а для программной совместимости бит выбора нако-
пителя (DEV) в регистре номера головки и номера устрой-
ства (Drive/Head register) стали использовать для выбора ус-
тройства. Для взаимодействия пары устройств на шине ввели
несколько дополнительных сигналов. Так появился интерфейс
АТА для подключения устройств IDE к шине ISA. Позже их
стали подключать и к локальным шинам, но набор сигналов
интерфейса и протоколы обмена сохранились. Достаточно
универсальный набор сигналов позволяет подключать любое
устройство со встроенным контроллером, которому в про-
странстве портов ввода/вывода достаточно того же набора
регистров и которое способно поддержать режим выбора уст-
ройства через вышеупомянутый бит. Принятая система ко-
манд и регистров, являющаяся частью спецификации АТА,
ориентирована на блочный обмен данными с устройствами
прямого доступа. Для иных устройств существует специфи-
кация ATAPI, основанная на тех же аппаратных средствах, но
позволяющая обмениваться пакетами управляющей инфор-
мации (PI - Package Interface). Пакетный интерфейс позво-
ляет расширить границы применения шины АТА.

Адресация в АТА тоже имеет "дисковые корни": для нако-
пителей изначально указывали адрес цилиндра (Cylinder),
головки (Head) и сектора (Sector) - так называемая трех-
мерная адресация CHS.
Позже по ряду причин стали разли-
чать физическую (реальную для накопителя) и логическую
(по которой с устройством общается программа) адресацию
CHS.
При этом одно и то же устройство могло иметь раз-
личную логическую геометрию (но, естественно,
CxHxSnor < CxHxStjHo). Преобразование логической адреса-
ции в физическую выполняется встроенным контроллером
устройства. Позже пришли к линейной адресации логических
блоков LBA
(Logical Block Addressing), где адрес блока (сек-
тора) определяется 28-битным числом.

В спецификации АТА фигурируют следующие компоненты:

^ Хост-адаптер - средства сопряжения интерфейса АТА с
системной шиной (набор буферных схем между шинами
ISA и АТА). Хостом мы будем называть компьютер с хост-
адаптером интерфейса АТА.


^ Кабель-шлейф с двумя или тремя 40-контактными IDC-
разъемами. В стандартном кабеле одноименные контак-
ты всех разъемов соединяются вместе.

^ Ведущее устройство (Master) - ПУ, в спецификации АТА
официально называемое Device-0 (устройство 0).

^ Ведомое устройство (Slave) - ПУ, в спецификации офи-
циально называемое D^ice-У (устройство 1).

Если к шине АТА подключено одно устройство, оно должно
быть ведущим. Если подключены два устройства, одно долж-
но быть ведущим, другое - ведомым. О своей роли (ведущее
или ведомое) устройства "узнают" с помощью предваритель-
но установленных конфигурационных джамперов. Если при-
меняется "кабельная выборка" (см. ниже), роль устройства
определяется его положением на специальном кабеле-шлейфе.

Оба устройства воспринимают команды от хост-адаптера од-
новременно. Однако исполнять команду будет лишь выбран-
ное
устройство. Если бит DEV^O, выбрано ведущее устрой-
ство, если DЈV=1 - ведомое. Выходные сигналы на шину АТА
имеет право выводить только выбранное устройство. Такая
система подразумевает, что, начав операцию обмена с одним
из устройств, хост-адаптер не может переключиться на об-
служивание другого
до завершения начатой операции. Парал-
лельно могут работать только устройства IDE, подключаемые
к разным шинам (каналам) АТА. Спецификация АТА-4 оп-
ределяет способ обхода этого ограничения (см. 6.6).

Выполняемая операция и направление обмена данными меж-
ду устройством и хост-адаптером определяются предвари-
тельно записанной командой. Непременным компонентом ус-
тройства является буферная память. Ее наличие позволяет
выполнять обмен данными в темпе, предлагаемом хост-адап-
тером (в пределах возможности устройства), без оглядки на
внутреннюю скорость передачи данных между носителем и
буферной памятью ПУ.

Для подключения устройств IDE существует несколько раз-
новидностей интерфейса:

^ АТА, он же AT-BUS - 16-битный интерфейс подключения
к шине компьютера AT. Наиболее распространенный

8 Зак.№530


40-проводной сигнальный и 4-проводной питающий интер-
фейс для подключения дисковых накопителей к компью-
терам AT. Для миниатюрных (2,5" и менее) накопителей
используют 44-проводной кабель, по которому передается
и питание.

^ PC Card ATA - 16-битный интерфейс с 68-контактным
разъемом PC Card (PCMCIA) для подключения к блок-
нотным PC.

т XT IDE (8-бит), он же XT-BUS - 40-проводный интер-
фейс, похожий на ATA, но несовместимый с ним.

^ МСА IDE (16-бит) - 72-проводный интерфейс, предназ-
наченный специально для шины и накопителей PS/2.

^ АТА-2 - расширенная спецификация ATA. Включает 2 ка-
нала, 4 устройства, PIO Mode 3, multiword DMA mode 1,
Block mode, объем диска до 8 Гбайт, поддержка LBA и CHS.

ш Fast АТА-2 разрешает использовать Multiword DMA
Mode 2 (13,3 Мбайт/с), PIO Mode 4.

^ АТА-3 - расширение АТА-2. Включает средства парольной
защиты, улучшенного управления питанием, самотести-
рования с предупреждением приближения отказа -
SMART (Self Monitoring Analysis and Report Technology).

^ ATA/ATAPI-4 - расширение АТА-3, включающее режим
Ultra DMA со скоростью обмена до 33 Мбайт/с и пакет-
ный интерфейс ATAPI.

^ E-IDE(EnhancedЮЕ) - расширенный интерфейс, введенный
фирмой Western Digital. Реализуется в адаптерах для шин
PCI и VLB. Позволяет подключать до 4 устройств (к двум
каналам), включая CD-ROM и стриммеры (ATAPI). Поддер-
живает PIO Mode 3, multiword DMA mode 1, объем диска
до 8 Гбайт, LBA и CHS. С аппаратной точки зрения прак-
тически полностью соответствует спецификации АТА-2.

Устройства ATA IDE, E-IDE, АТА-2, Fast АТА-2, АТА-3 и ATA/
ATAPI-4 электрически совместимы. Степень логической со-
вместимости достаточно высока (все базовые возможности
ATA доступны). Однако для полного использования всех рас-
ширений необходимо соответствие спецификаций устройств,
хост-адаптера и его ПО. В настоящее время наиболее широко


распространен и четко стандартизован интерфейс, официаль-
но называемый А ТА -2, о котором в основном и пойдет речь.

6.1. Электрический интерфейс

Все информационные сигналы интерфейса передаются через
40-контактный разъем, у которого ключом является отсут-
ствующий на вилке и закрытый на розетке контакт № 20. Ис-
пользование в качестве ключа выступа на корпусе розетки и
прорези в бандаже вилки стандартом не приветствуется. Для
соединения устройств спецификация требует применения
плоского многожильного кабеля (Flat cable stranded 28 AWG)
типа ЗМ 3365-40 или эквивалентного. Возможно применение
экранированного кабеля (Flat cable stranded 28 AWG ЗМ 3517-
40 shielded). Длина кабеля не должна превышать 0,46 м (18"),
допустимая емкость проводников не более 35 пФ. Термина-
торы стандартом не предусматриваются (они имеются в каж-
дом устройстве и хост-адаптере), но если кабель с тремя разъе-
мами (розетками) используют для подключения одного
устройства, то и его, и хост-адаптер рекомендуется подклю-
чать к противоположным концам кабеля. Состав информа-
ционных сигналов интерфейса АТА приведен в табл. 6.1. Все
сигналы АТА являются логическими со стандартными ТТЛ-
уровнями. Вид кабеля приведен на рис. 6.1. Одноименные
контакты всех разъемов соединяются своими проводами.
Встречается (редко) шлейф с кабельной выборкой (рис. 6.2).
В нем провод 28 в шлейфе перерезан, так что контакт 28
(CSEL) для ведущего устройства заземлен через хост-адаптер,
а для ведомого - не подключен. Кабель должен соответство-
вать системе адресации, выбранной для обоих устройств. Для
устойчивой работы в режиме Ultra DMA рекомендуется при-
менение 80-проводных кабелей, обеспечивающих чередование
сигнальных цепей и проводов схемной земли (эти кабели
"разделываются" на обычные 40-контактные разъемы).
Устройства и адаптеры, рассчитанные на использование Ultra
DMA, должны иметь в сигнальных цепях последовательные
согласующие резисторы с сопротивлением для различных це-
пей 22, 33 или 82 Ом. Спецификация АТА "узаконивает"
40-контактный сигнальный и 4-контактный разъемы пита-
ния (рис. 6.36), но для малогабаритных устройств питание
может подаваться по 44-проводному интерфейсному кабелю.


61.jpg

Сигнал

Тип1

Контакт

Контакт

Тип1

Сигнал

RESET*

I

1

2

-

GND

DD7

I/OTS

3

4

I/OTS

DD8

DD6

I/OTS

5

6

I/OTS

DD9

DD5

I/OTS

7

8

I/OTS

DD10



Сигнал

Тип1

Контакт

Контакт

Тип'

Сигнал

DD4

I/OTS

9

10

I/OTS

DD 11

DD3

I/OTS

11

12

I/OTS

DD12

DD2

I/OTS

13

14

I/OTS

DD13

DD 1

I/OTS

15

16

I/OTS

DD14

DDO

I/OTS

17

18

I/OTS

DD15

GND

-

19

20

-

Клкм
(нет штырька)

DMARQ

OTS2

21

22

-

GND

DIOW#
/STOP3

I

23

24

-

GND

DIOFW
/HDMARDY#
/HSTROBE з

I

25

26

GND

IORDY
/DDMARDY*
/DSTROBE 3

OTS2

27

28

I/O

SPSYNC/CSEL

DMACK#

I

29

30

-

GND

INTRQ

OTS2

31

32

ООК

IOCS16#

DA1

I

33

34

I.04

PDIAG#
/CBLID з

DAO

I

35

36

I

DA 2

CSO#

I

37

38

I

CS1#

DASP#

I/O OK5

39

40

-

GND

+5 В (Logic)

-

416

426

-

+5 В (Motor)

GND

-

436

446

-

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


) Тип сигнала для устройства: I - вход, О - выход, I/O - двунаправ-
ленный, TS - трйстабильный, ОС - открытый коллектор.

2 У старых устройств сигнал может иметь тип ОС (при разнотипных
сигналах на одной шине возможен конфликт).

3 Сигналы, приведенные после символа /, используются только в режиме
Ultra DMA (ATA-4).

4 У ведущего устройства - вход, у ведомого - выход.

5 У ведомого устройства - только выход.

6 Контакты 41-44 используются только для миниатюрных дисков.


В документации на устройства могут применяться несколь-
ко отличающиеся обозначения сигналов. Здесь приведены
обозначения из стандарта ATA/ATAPI-4. Сигналы имеют
следующее назначение:

RESET# (Device reset) - сброс устройства (инвертированный
сигнал сброса системной шины). Сигнал длительностью не
менее 25 мкс вырабатывается после установления питающих
напряжений.

DA[2:0] (Device Address) - три младших бита системной
шины адреса, используемые для выбора регистров устройств.

DD[15:0] (Device Data) -двунаправленная 16-битная шина
данных между адаптером и устройствами. При 8-битных
обменах используются младшие биты D[7:0].

DIOFW (Device I/O Read) - строб чтения портов ввода/вы-
вода. Данные фиксируются по положительному перепаду
сигнала.

DIOW# (Device I/O Write) - строб записи портов ввода/вы-
вода. Данные фиксируются по положительному перепаду
сигнала.

IORDY (I/O channel ready) - готовность устройства завер-
шить цикл обмена. Низким уровнем сигнала во время цик-
ла обмена устройство может ввести такты ожидания шины.
Сигнал требуется при обмене в РЮ MODE 3 и выше.

IOCS16# - разрешение 16-битных операций. Обращение ко
всем регистрам, кроме регистра данных, всегда 8-битное. Для
PIO MODE О, 1, 2 при активном сигнале обращения 16-бит-
ные, при неактивном - 8-битные. Для PIO MODE 3, 4 и
DMA все обмены 16-битные, кроме дополнительных байт
(выходящих за границу 512-байтного сектора) "длинного"
считывания и записи.

DMARQ (DMA ReQuest) - запрос обмена по каналу DMA (сиг-
нал необязательный). При разрешении обмена сигнал (высо-
кий уровень) вводится устройством по готовности к обмену.
Введя сигнал DMARQ, устройство должно дождаться подтвер-
ждения от хост-адаптера сигналом DMACK#, после чего мо-
жет снять запрос DMARQ. Для очередной передачи запрос дол-
жен быть введен снова. В режиме Multi-Word DMA запрос может


удерживаться на время передачи всех данных. Выход должен
быть тристабильным, в активном состоянии (0 или 1) он
может быть только у выбранного устройства во время рабо-
ты с DMA. В АТА-1 для этого сигнала мог использоваться
как тристабильный, так и стандартный ТТЛ-выход. Работа
на одной шине устройств с разнотипными выходами DMARQ
может привести к конфликтам.

DMACK# (DMA aCKnowledge) - подтверждение DMA. Сиг-
нал вырабатывается хост-адаптером как подтверждение цикла
передачи. Передача слова данных управляется сигналами
DIOR# или DIOW#. Во время обмена по каналу DMA сигна-
лы IOCS16#, CSO# и CS1# не используются, обмен всегда
производится 16-битными словами.

INTRQ (Device interrupt) - запрос прерывания. Выход дол-
жен быть тристабильным, активный сигнал (логическую 1)
вырабатывает только выбранное устройство, когда у него
имеется необслуженный запрос прерывания и его выраба-
тывание не запрещено битом nIEN в регистре Device Control.
Запрос сбрасывается по сигналу RESET#, установке бита
SRST в регистре Device Control, записи в регистр команд или
чтении регистра состояния. При обменах PIO запрос уста-
навливается в начале передачи каждого блока (сектора или
группы секторов при многосекторных операциях). Ис-
ключения: по командам Format Track, Write Sector(S), Write
Buffer
и Write Long в начале передачи первого блока данных
запрос прерывания не вырабатывается. При обменах DMA
запрос прерывания вырабатывается только по завершении
операции.

CSO# (СЫр Select 0) - сигнал выбора блока командных ре-
гистров (Command Block Registers). Для первого канала он
вырабатывается при наличии на системной шине адреса пор-
та ввода/вывода в диапазоне lFOh~lF7h (сигнал также на-
зывают CS1FX#).

CS1# (Chip Select 1) - выбор блока управляющих регист-
ров (Control Block Registers). Для первого канала он выраба-
тывается при наличии на системной шине адреса порта
ввода/вывода в диапазоне 3F6h-3F7h (часто этот сигнал на-
зывается CS3FX#/


PDIAGft (Passed diagnostics) - сигнал о прохождении диаг-
ностики. Ведущее устройство наблюдает за этим сигналом,
который ведомое устройство должно выработать в ответ на
сброс или команду диагностики. Если ведомое устройство
обнаружено (по сигналу DASP#), ведущее устройство ожи-
дает сигнал в течение 31с после сброса и 6 с после команды
диагностики. Если за это время сигнал не появился, веду-
щее устройство отмечает этот факт установкой бита 7 реги-
стра ошибок. Если ведомое устройство не обнаружено, ве-
дущее обнуляет регистр состояния ведомого устройства и
сообщает свое состояние сразу после завершения собствен-
ной самодиагностики. Сигнал служит только для связи двух
устройств и хост-адаптером не используется (в АТА-4 кон-
такт задействован для сигнала CBLID#).

CBUD# (Cable assembly type identifier) - идентификация типа
кабеля. В 80-проводной сборке контакт 34 на разъеме хост-
адаптера соединяется с шиной GND, а контакты 34 разъемов
устройств соединяются между собой, но связи с разъемом
хост-адаптера не имеют. После прохождения сброса (когда
сигнал PDIAG# снимается) хост может определить наличие
80-проводного кабеля по низком/уровню сигнала.

DASP# (Device Active, Slave Present) - сигнал двойного на-
значения: индикатор активности устройства и присутствия
ведомого устройства. Устройства имеют выход типа "откры-
тый коллектор" с нагрузочным резистором 10 кОм к шине
+5 В. После сброса по сигналу RESET# или при инициали-
зации по включении питания оба устройства в течение 1 мс
должны деактивировать этот сигнал, после чего не позже чем
через 400 мс его вводит ведомое устройство для сообщения
о своем присутствии. Ведущее устройство не активирует этот
сигнал в течение 450 мс. Сигнал деактивируется ведомым
устройством после получения им команды или через 31 с
автоматически (смотря что произойдет раньше). После это-
го сигнал может быть введен любым устройством как инди-
катор активности. Адаптер использует этот сигнал для вклю-
чения светодиодного индикатора доступа к диску.

SPSYNC/CSEL (Spindle Synchronization/Cable Select) - син-
хронизация шпинделя/выборка кабелем. Сигнал двойного


назначения, которое должно быть единым для обоих уст-
ройств. Сигнал SPSYNC позволяет синхронизировать шпин-
дели устройств (актуально для RAID-массивов); использу-
ется по усмотрению производителя накопителя. Сигнал CSEL
позволяет устройствам определять свой адрес по положению
на специальном кабеле с разрывом провода 28 между разъе-
мами двух устройств (малораспространенная "кабельная
выборка"). Эта линия на хост-адаптере заземлена, и веду-
щее устройство получает заземленную линию, а ведомое -
не подключенную. Состояние сигнала (если он управляется
хост-адаптером) должно удерживаться по крайней мере 31с
после сигнала RESET*.

При использовании режима Ultra DMA четыре линии полу-
чают новое назначение сигналов:

^ STOP (Stop Ultra DMA burst) - останов передачи паке-
та Ultra DMA.

^ DDMARDY# (Device Ultra DMA ready) - готовность ус-
тройства при приеме пакета Ultra DMA (управление по-
током).

^ DSTROBE (Host Ultra DMA data strobe) - строб данных
устройства при передаче пакета хосту. Данные переда-
ются по обоим перепадам DSTROBE.

т HDMARDY# (Host Ultra DMA ready) - готовность хос-
та при приеме им пакета Ultra DMA (управление по-
током).

^ HSTROBE (Host Ultra DMA data strobe) - строб данных
хоста при передаче пакета устройству. Данные переда-
ются по обоим перепадам HSTROBE.

Для компьютеров класса XT существует 8-битная версия ин-
терфейса, называемая XT-IDE, реже - XT-Bus. Этот интер-
фейс (табл. 6.2), как и АТА, реализован на 40-проводном
кабеле, и многие его сигналы совпадают с 16-битной шиной
АТА. Интерфейс XT-IDE можно рассматривать как подмно-
жество АТА, хотя прямой совместимости нет. Ряд устройств
АТА имеют джампер выбора режима XT/AT (в накопите-
лях Seagate на это указывает окончание АХ в обозначении
модели).


Сигнал

Тип'

Контакт

Контакт

Сигнал

RESET*

I

1

2

GND

DD7

I/OTS

3

4

GND

DD6

I/OTS

5

6

GND

DD5

I/OTS

7

8

GND

DD4

I/OTS

9

10

GND

DD3

I/OTS

11

12

GND

DD2

I/OTS

13

14

GND

DD 1

I/OTS

15

16

GND

DDO

I/OTS

17

18

GND

GND

-

19

20

Ключ
(нет штырька)

AEN

I

21

22

GND

DIOW#

I

23

24

GND

DIOR#

I

25

26

GND

DMACK#

I

27

28

GND

DMARQ

ooc

29

30

GND

INTRQ

OTS2

31

32

GND

DA 1

I

33

34

GND

DAO

I

35

36

GND

CSO#

I

37

38

GND

DASP#

I/O ОС3

39

40

GND


' Тип сигнала для устройства: I - вход, О - выход, I/O - дву-
направленный, TS - тристабильный, ОС - открытый коллектор.

2 У старых устройств сигнал может иметь тип ОС (при разнотипных
сигналах на одной шине возможен конфликт).

3 У ведомого устройства - только выход.

6.2. Регистры устройств

Каждое устройство АТА имеет стандартный набор регист-
ров,
адресуемых сигналами от хост-адаптера (CSOff, CS1#,
DA2, DA1, DAO, DIOR# и DIOW#). Набор регистров (табл. 6.3)


состоит из двух блоков, выбираемых сигналом CSO^/CS1#.
Блок командных регистров служит для посылки команд уст-
ройству и чтения информации о его состоянии. Блок управ-
ляющих регистров
используется для управления устройством
и получения более подробной информации о его состоянии.
На действительность содержимого регистров командного бло-
ка и альтернативного регистра состояния указывает нулевое
значение бита BSY регистра состояния. Если устройство под-
держивает управление энергопотреблением, в "спящем" ре-
жиме содержимое этих регистров недействительно.

Адрес

Назначение
(R - чтение, W - запись)

CSOff

CS1#

DA2

DA1

DAO

1

1

X

X

X

Не используется
(шина данных в третьем
состоянии)

Control Block Registers - блок управляющих регистров

1

0

0

X

X

Не используется (шина данных
в третьем состоянии)

1

0

1

0

X

Не используется (шина данных
в третьем состоянии)

1

0

1

0

R: Alternate Status (AS) -
альтернативный регистр
состояния
W: Device Control (DC) - регистр
управления устройством

1

0

1

1

1

Не используется1

Command Block Registers - блок командных регистров

0

1

0

0

0

R/W: Data (DR) - регистр
данных

0

1

0

0

1

R: Error (ER) - регистр ошибок
W: Features (FR) - регистр свойств

о

1

0

1

0

R/W: Sector Count (SC) - регистр
счетчика секторов

0

1

0

1

1

R/W: Sector Number (SN) -
регистр номера сектора LBA
[7:0]2



Адрес

Назначение
(R - чтение, W - запись)

CSO"

CSIff

DA2

DA1

ОАО

Command Block Registers - блок командных регистров

0

1

1

0

0

R/W: Cylinder Low (CL) - регистр
младшего байта номера цилиндра
LBA[15:8]2

0

1

1

0

1

R/W: CyhnderHigh (CH) -
регистр старшего байта номера
цилиндра LBA[23:16]2

0

1

1

1

0

R/W: Deuice/Head (DH) - регистр
номера устройства
и головки LBA[27:24]2

0

1

1

1

1

R: Status (SR) - регистр состояния
W: Command (CR) - регистр
команд

о

0

X

X

X

Недопустимый адрес


' Регистр выпадает из блока. Рекомендуется, чтобы на сигнал чтения
по этому адресу устройство не отвечало. Если устройство отвечает,
то оно не должно управлять битом DD7 во избежание конфликта
с контроллером НГМД.

2 Регистры сектора, цилиндра и головки в режиме LBA содержат ука-
занные биты логического адреса.

Регистр состояния SR отражает текущее состояние устрой-
ства в процессе выполнения команд. Чтение регистра состо-
яния разрешает дальнейшее изменение его бит и сбрасывает
запрос аппаратного прерывания.

Назначение бит регистра SR:

т Бит 7 - BSY(Busy) указывает на занятость устройства. При
BSY=1 устройство игнорирует попытки записи в команд-
ный блок регистров, а чтение этих регистров дает неопре-
деленный результат. При BSY=0 регистры командного блока
доступны, а устройство может изменять только значение
бит IDX, DRDY, DF, DSC и CORR. Бит устанавливается при
аппаратном/программном сбросе устройства и по получе-
нии команды. Бит может устанавливаться на кратковре-
менный интервал, так что хост может этого не заметить.


is Бит 6 - DRDY(Device Ready) указывает на готовность ус-
тройства к восприятию любых кодов команд. Если со-
стояние бита изменилось, оно не может измениться
обратно до чтения регистра состояния. При DRDY=0 уст-
ройство воспринимает только команды Execute Device
Diagnostic
и Initialize Device Parameters, прекращая выпол-
нение текущей команды и сообщая об этом флагом ABRT
в регистре ошибок и ERR в регистре состояния. Другие
команды приводят к непредсказуемым результатам.

^ Бит 5 - DF(Device Fault) - индикатор отказа устройства.

^ Бит 4 - DSC(Device Seek Complete) - индикатор завер-
шения поиска трека. В командах, допускающих перекры-
тие (см. 6.6), бит называется SERV (Service Required) -
устройство требует обслуживания.

^ Бит 3 - DRQfData Request) - индикатор готовности к об-
мену словом или байтом данных.

^ Бит 2 - CORR(Corrected Data) - индикатор исправлен-
ной ошибки данных.

^ Бит 1 - IDX (InDeX) - индекс, трактуется особо каждым
производителем.

^ Бит 0 - ERR (Error) - индикатор ошибки выполнения пре-
дыдущей операции. Дополнительная информация содер-
жится в регистре ошибок. Если установлен бит ERR, до
приема следующей команды, программного или аппарат-
ного сброса устройство не изменит состояние этого бита,
а также регистра ошибок, регистра количества секторов
и регистров цилиндра, головки и номера сектора.

В стандарте АТА-4 для некоторых команд биты 4 и 5 могут
иметь иное назначение, а биты 1 и 2 объявлены устаревшими.

Альтернативный регистр состояния AS имеет те же биты,
что и основной, но его чтение не приводит ни к каким изме-
нениям состояния устройства.

Назначение регистра команд CR очевидно из названия. Уст-
ройство начинает исполнять команду сразу, как только ее
код записан в данный регистр.

Регистры номера цилиндра (старшего СН и младшего байта
CL) и номера сектора SN имеют двоякое назначение в зави-
симости от выбранной системы адресации (CHS или LBA).


Они инициализируются хост-адаптером, а в случае возник-
новения ошибки при операции устройство поместит в них
адрес, по которому встретилась ошибка.

Регистр номера устройства и головки DH кроме хранения
части адресной информации служит для выбора ведущего
или ведомого устройства и метода адресации.

Назначение бит регистра DH:

йя Биты 7 и 5 зарезервированы.

т Бит 6 - L - единичным значением указывает на приме-
нение режима адресации LBA. При нулевом значении би-
та используется режим CHS.

as Бит 4 - DEV (Device) - выбор устройства. При DEV=0
выбрано ведущее, при DEH=1 - ведомое.

^ Биты [3:0] имеют двоякое назначение в зависимости от
выбранной системы адресации. В режиме CHS они со-
держат номер головки, в режиме LBA - старшие биты
логического адреса. Как и предыдущие, этот адресный
регистр инициализируется хост-адаптером, а в случае
возникновения ошибки при операции устройство помес-
тит в них адрес, по которому встретилась ошибка.

До принятия АТА-2 считалось, что адресные регистры дол-
жны модифицироваться и после успешного выполнения опе-
рации, отражая текущее значение адреса в носителе.

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

т SC=01h, S/V=01h, CL=OOh, CH==OOh, DH-OOh - устройст-
ва ATA;

Щ SC=01h, SA/=01h, CL=Uh, CH=EBh, DH=OOh или Olh -

устройства ATAPI.

Регистр данных DR может использоваться как 8-битный
или 16-битный в зависимости от типа данных, передаваемых
в текущей команде.

Из регистра управления устройством CR используются толь-
ко два бита.

Назначение бит регистра CR:

ш Биты [7:3] зарезервированы.


iss Бит 2 - SRST(Software Reset) - программный сброс, дей-
ствует все время, пока бит не будет снят. Оба устройства
на шине воспринимают программный сброс одновре-
менно. На устройства ATAPI не действует.

^ Бит 1 - nlEN(Interrupt Enable) - инверсный бит разреше-
ния прерывания. При нулевом значении бита выбранное
устройство может вырабатывать сигнал INTRQ через три-
стабильный выход.

^ Бит 0 всегда должен быть нулевым.

Регистр ошибок ER хранит состояние выполнения последней
операции или диагностический код. После завершения опе-
рации на наличие ошибки указывает бит ERR регистра со-
стояния.

Назначение бит регистра ER:

^ Бит 7 зарезервирован.

^ Бит 6 - UNC(Uncorrectable Data Error) -неисправимая
ошибка данных.

^ Бит 5 - МС (Media Changed) - смена носителя. После
смены носителя первая команда обращения отвергается
и устанавливается данный бит. После сброса бита следу-
ющие команды будут выполняться нормальным образом.

^ Бит 4 - IDNFfID Not Found) - указывает на ненайденный
идентификатор сектора.

^ Бит 3 - ABRT(AbortedCommand) - устанавливается, если
команда отвергнута как недействительная или в случае
возникновения иной ошибки.

^ Бит 2 - MCR(Media Change Requested) - индикатор за-
проса смены носителя. После обнаружения запроса сме-
ны носителя следующие команды Door Lock будут воз-
вращать бит ошибки ERR и установленный бит MCR. Бит
MCR сбрасывается командами Door Unlock, Media Eject или
аппаратным сбросом.

^ Бит 1 - TKONF(Track 0 Not Found) - указывает на то, что
по команде Recalibrate не удалось найти нулевой трек.

^ Бит 0 - AMNF( Address Mark Not Found) - не найден ад-
ресный маркер данных в заголовке сектора.


После включения питания, сброса или команды Execute Device
Diagnostic
регистр ошибок содержит диагностический код.

Регистр свойств FR используется в зависимости от команды. В
команде Set Features через него задается код подкоманды. Не-
которые устройства могут игнорировать запись в этот регистр.
До принятия АТА-2 в этот регистр помещали значение реко-
мендуемого номера цилиндра для предкомпенсации записи.

Регистр счетчика секторов SC содержит число секторов, уча-
ствующих в обмене. Хост инициализирует этот регистр до
подачи команды (нулевое значение соответствует 256 секто-
рам). По успешному завершению операции доступа' к дан-
ным регистр должен обнулиться. Если команда завершилась
с ошибкой, в регистре будет число секторов, которые долж-
ны быть переданы для успешного завершения предыдущего
запроса. Команды Initialize Device Parameters или Write Same
могут переопределить значение этого регистра.

6.3. Система команд

Стандарт АТА задает систему команд, ориентированную на
накопители на магнитных дисках. В табл. 6.4 графа "Прото-
кол" определяет протокол передачи данных, требуемых для
команды (см. 6.5): PI - ввод данных от устройства в режиме
PIO, РО - вывод данных в устройство в режиме PIO, Р - про-
токол передачи командного пакета (16 байт вывода в режиме
PIO), DM - обмен данными по каналу DMA, DMQ - обмен
DMA с очередями, ND - нет обмена данными, DR - протокол
сброса, VS - специфично для устройства. Графа "Тип" опреде-
ляет характеристику команды: О - обязательная для всех уст-
ройств,/? -обязательная для ATAPI,/? - дополнительная, С -
специфическая. Графа "Код" содержит шестнадцатеричный
код, загружаемый в регистр команды. Коды, помеченные звез-
дочкой, поддерживаются для совместимости со старым ПО.
В графе "Использование регистров" приняты следующие обо-
значения: СУ - регистры цилиндров, SC - регистр счетчика
секторов, DH - регистр номера устройства и головки, SN -
регистр номера сектора, FR - регистр свойств. Назначение
регистров: у - регистр содержит параметры для команды (для
регистра номера устройства и головки используются оба пара-


Команда

Протокол

Тип

Код

Использование регистров

FR

sc

SN

CY

он

Door Unlock -
разрешить смену
носителя3

VS

Д

DFh

D

Device Reset - сброс
устройства ATAPI2

DR

п

08h

-

-

-

-

D

Download
Microcode -
загрузка микрокода
внутреннего ПО4

РО

Д

92h

У

У

У

У

D

Execute Device
Diagnostic -
диагностика

ND

о

90h

DOS

Flush Cache -
выгрузка кэша записи
на носитель (время
выполнения может
достигать 30 с)2

ND

Д

E7h

D

Format Track -
форматирование
трека3

VS

с

50h

D8

Get Media Status -
получение
информации
о состоянии носителя
(наличие, смена,
защита записи)2

ND

Д

DAh

D

Identify Device -
идентификация
устройства
(не пакетного)

PI

о

Ech

D

Identify Device
DMA-
идентификация
устройства с ответом
в режиме DMA5

DM

Д

EEh

D

Identify Packet
Device -
идентифи-
кация устройства
(пакетного)2

PI

п

Alh

D



Команда

Протокол

Тип

Код

Использование регистров

FR

sc

SN

CY

ОН

Idle - переход в со-
стояние ожидания

ND

Д

97h
E3h

-

У

-

-

D

Idle Immediate -
немедленный
переход в состояние
ожидания

ND

д

95h
Elh

D

Initialize Device
Parameters -
инициализация
параметров
устройства

ND

о

91h

у

у

Media Eject -
извлечь носитель4

ND

д

EDh

-

-

-

-

D

Media Lock -
заблокировать
носитель (не
ATAPI)2

ND

д

DEh

D

Media Unlock -
разблокировать
носитель (не
ATAPI)2

ND

д

DFh

D

Nop - холостая
команда

ND

д

OOh

-

-

-

-

У

Packet - посылка
командного пакета2

Р

п

AOh

у

у

У

у

D

Read Buffer-
чтение буфера

PI

д

E4h

-

-

-

-

D

Read DMA
(w/retry) -
чтение
по DMA с повторами

DM

д

C8h

у

у

у

у

Read DMA (w/o
retry) -
чтение по
DMA без повторов

DM

д

C9h

у

у

у

у

Read DMA Queued -
чтение по DMA
с возможностью
постановки команды
в очередь
и освобождения
шины2

DMQ

д

C7h

у

y8

у

у

у



Команда

Протокол

Тип

Код

Использование регистров

FR

SC

SN

CY

DH

Read Long
(w/retry) -
"длинное" чтение
с повторами3

PI

Д

22h

У

У

У

У

Read Long (w/o
retry) -
"длинное"
чтение без повторов3

PI

д

23h

у

У

У

У

Read Multiple -
множественное
чтение

PI

Д

C4h

у

У

У

У

Read Native
Address -
чтение
максимального
адреса сектора (за-
водской установки)2

ND

д

F8h

D

Read Sector(s)
(w/retry) -
чтение
секторов с повторами

PI

о

20h

у

У

У

У

Read Sectors)
(w/o retry) -
чтение
секторов без повторов

PI

о

21h

у

у

у

у

Read Verify
Sectorfs)
(w/retry) -
верификационное
чтение секторов
с повторами

ND

о

40h

У

У

У

у

Read Verify
Sector(s)
(w/o retry) -
верификационное
чтение секторов
без повторов

ND

о

41h

у

у

у

у

Recalibrate -
рекалибровка (поиск
нулевого трека)3

ND

д

Ixh

D

Security Disable
Password -
отмена
защиты (с посылкой
пароля)6

РО

д

F6h

D



Команда

Протокол

Тип

Код

Использование регистров

FR

sc

SN

CY

он

Security Erase
Prepare -
подготовка к защит-
ному стиранию6

ND

Д

F3h

D

Security Erase Unit -
защитное стирание
(с посылкой пароля)6

РО

д

F4h

D

Security Freeze
Lock -
блокировка
команд защиты6

ND

Д

F5h

-

^-

^~

D

Security Set
Password -
установ-
ка пароля защиты6

РО

д

Flh

D

Security Unlock -
снятие защиты6

РО

д

Flh

-

-

-

-

D

Seek - поиск

ND

о

7xh

-

-

У

у

У

Service - передача
данных и/или
состояния команды,
освободившей шину2

Рили
DMQ

д

A2h

D

Set Features -
установка свойств

ND

д

Efh

У

-

-

-

D

Set Max Address -
установка макси-
мального адреса2

ND

д

F9h

У8

У

У

У

Set Multiple Mode -
установка множест-
венного режима

ND

д

C6h

У

D

Steep - перевод
в "спящий" режим

ND

д

99h
E6h

-

-

-

-

D

SMART - группа
команд мониторинга6

ND,PI

д

BOh

у

У8

У8

У8

"D

Standby - перевод
в дежурный режим

ND

д

96h
E2h

-

у

-

-

D

Standby
Immediate -
немед-
ленный перевод
в дежурный режим

ND

д

94h
EOh

D



Команда

Протокол

Тип

Код

Использование регистров

FR

sc

SN

CY

он

Write Buffer -
запись в буфер

РО

Д

E8h

-

-

-

-

D

Write DMA
(w/retry) -
запись
по DMA с повторами

DM

д

CAh

У

У

У

У

Write DMA
(w/o retry) -
запись
no DMA без повторов

DM

Д

CBh

у

у

у

у

Write DMA
Queued -
запись
no DMA с возмож-
ностью постановки
команды в очередь
и освобождения
шины2

DMQ

д

CCh

У

У8

У

У

У

Write Long
(w/retry)-
<длинная" запись
с повторами3

РО

д

32h7

у

у

у

У

Write Long
(w/o retry)
•"длинная" запись
без повторов3

РО

д

33h7

У

У

У

У

Write Multiple -
множественная
запись

РО

д

C5h7

у

у

у

у

Write Same - запись
с размножением

РО

д

E9h

у

у

у

у

у

Write Sectorfs)
(with retry) -
запись
секторов с повторами

РО

о

30h7

у

у

у

у

Write Sectorfs)
(without retry) -
запись секторов
без повторов

РО

о

31h7

у

у

у

у

Write Verify - запись
с верификацией

РО

д

3Ch7

-

у

у

у

у


' В АТА-3+ команда не определена.
2 Только для АТА-4.


3 В АТА-4 команда не определена.

4 Для АТА-2 и выше.

5 Только для АТА-3.

6 Для АТА-3 и выше.

7 Коды поддерживаются для совместимости.

8 Использование регистра зависит от производителя.

6.3.1. Основные команды

К этой группе относятся команды АТА для доступа к дан-
ным. Для устройств, существенно отличающихся от НЖМД,
имеется альтернативный способ доставки команд и парамет-
ров - команда Packet. По этой команде, используя вывод в
режиме PIO, хост-адаптер передает пакет с блоком дескрип-
тора команды.
Подробнее о пакетном интерфейсе см. в 6.7.

Минимальной адресуемой единицей команд чтения и запи-
си
является 512-байтный сектор.

Команды чтения секторов в режимах обмена PIO - Read
Sectorfs)
и DMA - Read DMA позволяют считывать после-
довательно расположенные секторы, количество которых за-
дано в регистре SC, а адрес начального сектора - в регист-
рах СН, CL, DH и SN. Команды чтения бывают с повторами
или без них. В первом случае, если при чтении сектора об-
наружена неисправимая ошибка, устройство автоматически
делает несколько повторных попыток чтения. После испол-
нения команды в случае неисправимой ошибки блок команд-
ных регистров содержит адрес сектора с ошибкой. Если уст-
ройство использует ЕСС-код, то некоторые ошибки чтения
оно исправляет без повторов, но указывает на этот факт в
регистре ошибок.

Команда чтения в блочном режиме передачи Read Multiple
отличается от обычного (с обменом PIO) тем, что запросы
прерывания вырабатываются не на каждый сектор, а на блок
секторов, размер которого задан командой Set Multiple Mode.
Кроме того, в случае появления неисправимой ошибки чте-
ния содержимое блока командных регистров не определено
(не указывает на сбойный сектор). За счет сокращения чис-
ла прерываний, которые должен обслужить процессор, блоч-
ный режим в многозадачной системе позволяет повысить


производительность на 30%. Производительность обмена за-
висит от размера блока. Размер, оптимальный для устрой-
ства, может не быть оптимальным для ОС.

Команда "длинного" чтения Read Long считывает сектор
данных вместе с контрольными байтами. При ее вызове ре-
гистр SC должен указывать на запрос только одного секто-
ра. Блок данных считывается 16-битными словами, а конт-
рольные байты - 8-битными. Некоторые устройства АТА-1
неспособны быстро передавать байты ЕСС вслед за данны-
ми. Для их считывания используют 8-битный обмен в ре-
жиме PIO Mode 0.

Команда верификации Read Verify Sectors) в отличие от
обычного чтения не передает данные от устройства. В слу-
чае ошибки на адрес сбойного сектора указывает блок ко-
мандных регистров. Запрос прерывания выполняется после
исполнения команды.

Команды записи Write DMA, Write Sectors), Write Long, Write
Multiple
работают аналогично соответствующим им коман-
дам чтения и также имеют версии с повторами и без. Ко-
манда записи с верификацией Write Verify аналогична команде
Write Sectors), но для каждого сектора после записи выпол-
няется контрольное считывание. Для логической инициали-
зации (очистки области) дисков имеется команда записи Write
Same,
которая позволяет содержимое 512 байт, принятых от
хоста, записать в группу секторов. Если в регистр свойств
занесен код 22h, область записываемых секторов определя-
ется регистрами командного блока. Если в регистр свойств
занесен код DDh, запись производится во все доступные сек-
торы устройства.

Команды чтения и записи буфера Read Buffer и Write Buffer
служат для обмена в режиме PIO с 512-байтной буферной
памятью устройства (но не сектором носителя).

Команда форматирования трека Format Track по входным пара-
метрам специфична для каждого устройства, и ее использова-
ние не рекомендуется. Многие устройства ее отвергают как
недопустимую. Поскольку команда форматирования традици-
онно ориентирована на один трек, форматирование дисков
АТА в режиме трансляции геометрии, при котором физическая


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

Вспомогательное назначение имеют команды поиска. По ко-
манде поиска Seek устройство устанавливает головки на за-
данный цилиндр/трек и считывает идентификатор сектора.

Команда рекалибровки Recalibrate заставляет устройство
найти нулевой цилиндр. Если устройству это не удается,
устанавливается бит ошибки Track O Not Found. Эту коман-
ду обычно применяют при обработке ошибок: часто после
такого "встряхивания" ошибка не повторяется. После ус-
пешного выполнения команды блок командных регистров
содержит адрес первого сектора диска в формате, завися-
щем от режима адресации (LBA или CHS).

Для накопителей со сменными носителями в АТА-2 были
предназначены команды загрузки и выгрузки, подтверждения
смены носителя, блокировки и разблокировки устройства -
Boot - Post-Boot, Boot - Pre-Boot, Media Eject, Acknowledge
Media Change, Door Lock, Door Unlock.
Их реализация специ-
фична для каждой модели устройства. В АТА-4 набор этих
команд сокращен. Смену носителя вызывает только коман-
да Media Eject (для устройств ATAPI - пакетная команда
Start/Stop Unit). Здесь может работать один из двух меха-
низмов защиты от несанкционированной смены носителя.
При использовании уведомления о смене носителя Removable
Media Status Notification
нажатие кнопки на накопителе сме-
ны носителя не вызывает, этот факт и состояние носителя
могут определяться по команде Get Media Status. Этот меха-
низм включается и отключается соответствующими подко-
мандами Set Features', по любому сбросу устройства он от-
ключается. Когда механизм уведомления отключен, работает
другой: для запрета/разрешения смены носителей от кноп-
ки устройства (только для непакетных устройств) применя-
ют команды Media Lock/Media Unlock, они же используются
для определения состояния (наличия, защиты записи и факта
смены носителя).

Для запоминающих устройств на флэш-памяти в АТА-4 вве-
ли команды, начинающиеся с аббревиатуры CFA (Compact


Flash Association - ассоциация производителей компактных
флэш-карт). Специфика этих устройств заключается в за-
писи: запись обеспечивается лишь в предварительно стер-
тые ячейки (сектор), хотя есть устройства, автоматически
осуществляющие стирание при записи. Операция записи
выполняется существенно медленнее, чем чтения, скорость
которого приближается к скорости динамической памяти.
Операция стирания занимает еще больше времени. Интерес
представляет информация о состоянии сектора: стертый или
нет и сколько раз выполнялась запись.

6.3.2. Служебные команды

В системе команд имеются средства идентификации и
управления свойствами
устройств. Команда идентификации
Identify Device позволяет считать из контроллера блок из 256
слов, характеризующих устройство АТА. Устройства с па-
кетным интерфейсом эту команду должны отвергать, для них
имеется команда Identify Packet Device (см. 6.7). Блок пара-
метров может храниться как в энергонезависимой памяти
устройства, так и на самом носителе в месте, недоступном
для обычных обращений. Состав полей блока для непакет-
ных устройств приведен в табл. 6.5. Графа "F/V" определяет
свойства соответствующих полей: F - содержимое фиксиро-
вано, V - содержимое меняется в зависимости от состояния
устройства или выполненных команд, Х - специфично для
данного устройства (может быть и F, и V), R - зарезервиро-
ванные поля. Для устройств со сменными носителями зна-
чения полей F могут меняться при смене носителя.

Слово

F/V

Назначение

о

F

Оби^ конфигурационная информация
Бит 15: 0 для всех устройств АТА
Бит 7: 1 - устройство со сменным носителем
Бит 6: 1 - устройство (контроллер) с несменным
носителем
Бит 0 - зарезервирован
Значение остальных бит специфично для устройств

1

F

Число логических цилиндров



Оюво

F/V

Назначение

2

R

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

3

F

Число логических головок

4

X

Специфично

5

X

Специфично

6

F

Число логических секторов на логическом треке

7-9

X

Специфично

10-19

F

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

20

X

Специфично

21

X

Специфично

22

F

Число дополнительных байт в командах "длинного"
чтения и записи (в АТА-4 объявлено устаревшим)

23-26

F

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

27-46

F

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

47

X

Биты 15-8 специфичны (в АТА-4 - 80h)

F

Биты 7-0 - возможности множественных операций:
0 - зарезервирован, Olh-FFh - максимальное
количество секторов, передаваемых за сеанс

48

R

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

49

R
F

R

F

F
F

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

Биты 15-14 - зарезервированы для Identify Packet
Device

Бит 13 - значения таймера режима Standby:
1 - соответствуют стандарту,
0 - задаются особо

Бит 12 зарезервирован для Identify Packet Device

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

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

Бит 9 =1 (в АТА-4 используется для Identify Packet
Device,
в АТА-2 - как указание
на поддержку LBA и действительности слов 60-61)



Слово

F/V

Назначение

F
X

Бит 8=1 (в АТА-4 используется для Identify Packet
Device,
в АТА-2 - как указание
на поддержку DMA)

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

50

F

Возможности (АТА-4):
Бит 15°0
Бит 14-1
Биты 13-1 - зарезервирован
Бит О"! указывает на специфичное значение
минимума для Standby Timer

51

F
X

Биты 15-8: длительность цикла обмена в режиме PIO.
Если значение параметра не соответствует
режимам 0, 1 или 2, используется PIO Mode 0

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

52

F
X

Специфично.
В АТА-2 биты 15-8: временной режим цикла
одиночного обмена DMA (Single Word DMA). Если
значение параметра не соответствует режимам 0, 1
или 2, используется Mode 0. Если поддерживаются
слова 62 или 63, значение поля игнорируется

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

53

R
F

F

V

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

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

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

54

V

Текущее число логических цилиндров. Для устройств
АТА-1, если команда Initialize Device Parameters
не применялась, значение слова специфично

55

V

Текущее число логических головок. Для устройств
АТА-1, если команда Initialize Device Parameters
не применялась, значение слова специфично



Слово

F/V

Назначение

56

V

Текущее число логических секторов на трек. Для
устройств АТА-1, если команда Initialize Device
Parameters
не применялась, значение слова
специфично

57-58

V

Текущая емкость в секторах (произведение слов 54,
55, 56)

59

R
V

V

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

Бит 8: 1 - установка для многосекторной передачи
действительна

Биты 7-0: текущая установка максимального числа
секторов для многосекторных команд

60-61

F

Общее число секторов, адресуемых пользователем
(только в режиме LBA)

62

V
F

Для АТА-4 специфично, в АТА-2 - режим одиночного
обмена DMA:
Биты 15-8: активный режим:
бит 8=1 - Mode 0,
бит 9=1 - Mode 1 и т. д. Единичное значение может
иметь только один бит

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

63

V
F

Режим множественного обмена Multiword DMA:
Биты 15-8: активный режим, аналогично слову 62

БИТЬ! 7-0: поддерживаемые режимы, аналогично
слову 62

64

R
F

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

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

65

F

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

66

F

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



Слово

F/V

Назначение

67

F

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

68

F

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

69-70

R

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

71-74

R

Зарезервировано для команды Identify Packet Device

75

F

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

76-79

R

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

80

F

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

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 - расширенное управление
энергопотреблением
Бит 2 - команды CFA
Бит 1 - команды Read/Write DMA Queued
Бит 0 - команда Download Microcode

84

F

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

85-87

F

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

88

R

R

V

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

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

89

F

Время защитного стирания: О-не указано; значение
1 - 254, умноженное на 2, дает время в минутах,
255 - более 508 мин

90

F

Время расширенного защитного стирания (аналогично
слову 89)

91

V

Текущий уровень
Advanced Power Management

92-126

R

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

127

R

F

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



Слово

F/V

Назначение

128

V

Состояние защиты:

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

Бит 8 - уровень защиты:

0 - высокий,

1 - максимальный

Биты 7-6 - зарезервированы

Бит 5: 1 - поддержка расширенного защитного

стирания

Бит 4: 1 - счетчик попыток иссяк

Бит 3: 1 - команды защиты блокированы

Бит 2: 1 - устройство заблокировано

Бит 1: 1 -защита разрешена

Бит 0: 1 - защита поддерживается

129-159

X

Специфично

160-255

R

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


Команда установки параметров Initialize Device Parameters за-
дает режим трансляции логической геометрии в системе CHS.
Регистр SC указывает число логических секторов на трек, а
в поле номера головки регистра DH указывается уменьшен-
ное на единицу число логических головок. Если запрошенный
режим трансляции устройство не поддерживает, оно выдаст
ошибку "команда отвергнута" (прежняя спецификация АТА
не четко описывала эту ситуацию, и некоторые системы не
обнаруживали отказ при данной команде). После запроса
неподдерживаемого режима трансляции устройство блоки-
рует доступ к носителю с ошибкой ID Not Found до запроса
поддерживаемого режима трансляции. Устройство обязано
поддерживать режим, описанный словами 1, 3 и 6 блока его
параметров. Некоторые устройства АТА-1 требовали, чтобы
данная команда выполнялась до доступа к носителю.

Команда установки свойств Set Features (специфичная для
устройства) подразумевает помещение кода подкоманды
(табл. 6.6) в регистр свойств.

Код

Назначение

01h1

Разрешение 8-битного обмена

02h

Разрешение кэширования записи



Код

пв^г-вчснмс

03h

Установка режима передачи по значению регистра SC
(табл. 6.7)

04h'

Разрешение автоматического переназначения дефектных
блоков

05h

Разрешение расширенного управления энергопотреблением
(уровень в регистре SC)

31h

Запрет уведомления о смене носителя

33h'

Запрет повторов

44h'

Установка количества дополнительных байт в командах
Read Long/Write Long

54h1

Установка количества сегментов кэша по значению регистра
SC

55h

Запрет упреждающего чтения

5Dh

Разрешение прерывания по освобождению шины

5Eh

Разрешение прерывания при выполнении команды Service

66h

Запрет возврата к параметрам по умолчанию
при включении питания

77h1

Запрет ЕСС

81 h1

Запрет 8-битного обмена

82h

Запрет кэширования записи

84h1

Запрет автоматического переназначения дефектных блоков

85h

Запрет расширенного управления энергопотреблением

88h1

Разрешение ЕСС

99h1

Разрешение повторов

9Ah1

Ограничение тока потребления значением в регистре SC,
умноженным на 4 (мА)

AAh

Разрешение упреждающего чтения

ABh1

Установка максимального количества кэшируемых блоков
по регистру SC

BBh1

Установка 4-байтной длины дополнительного поля
для команд Read Long/Write Long

CCh

Разрешение возврата к параметрам по умолчанию
при включении питания

DDh

Запрет прерывания по освобождению шины

DEh

Запрет прерывания при выполнении команды Service


1 В АТА-4 подкоманда изъята.
9 Зак.№530


После включения питания или аппаратного сброса установ-
ленные свойства заменяются на принятые по умолчанию. Ре-
зультат подкоманд можно и закрепить, подав подкоманду 66h
(отмена - подкоманда с кодом CCh).

Биты [7:0]

Режим обмена

00000000

Режим PIO, принятый для устройства по умолчанию

00000001

Режим PIO, принятый для устройства по умолчанию;
запрет IORDY

00001 mm

Режим PIO Mode x* с сигналом IORDY

00010 ппп

Режим одиночного DMA Mode x

00100 ппп

Режим множественного DMA Mode x

01000 ппп

Режим Ultra DMA Mode x

10000 mm

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


* x определяется значением поля ппп

Команда задания параметров блочного режима передачи Set
Multiple Mode
через регистр SC указывает число секторов,
передаваемых с одним запросом прерывания. Значению SC==0
соответствует запрет блочного режима. После включения
питания или аппаратного сброса блочный режим запрещен.

Команда диагностики Execute Device Diagnostic, адресуясь все-
гда к ведущему устройству, выполняется одновременно обоими
устройствами. О ее результате ведомое устройство сообщает
ведущему (сигналом PDIAG#). Состояние обоих устройств опре-
деляется по диагностическому коду (табл. 6.8), который счи-
тывается из бит [6:0] регистра ошибок нулевого устройства.

Фиктивная команда Nop, не изменяя содержимого регистров,
позволяет считать информацию о состоянии устройства, вы-
полнив всего одну 16-битную запись по адресу в регистре DH.
Команда всегда возвращает бит ошибки "команда отвергну-
та". В АТА-4 команда объявлена обязательной для устройств
ATAPI и всех, поддерживающих перекрывающиеся команды.
Она имеет подкоманды, указываемые в регистре свойств. Под-
команда с кодом 00 сбрасывает всю оставшуюся очередь, а с
кодом 01 (NOP Auto Poll) на очередь не влияет.


Код

Ведущее устройство

Ведомое устройство

Olh

Нормально

Нормально или отсутствует

OOh, 02h-7Fh

Неисправно

Нормально или отсутствует

81h

Нормально

Неисправно

80h, 82h-FFh

Неисправно

Неисправно


6.3.3. Дополнительные сервисные функции

Устройства АТА и ATAPI могут поддерживать управление
энергопотреблением, защищать данные от несанкциониро-
ванного доступа, выполнять мониторинг своего состояния
для предупреждения об угрозе отказа и перезаписывать
встроенную микропрограмму.

Средства управления энергопотреблением - Power Management -
не обязательны. Различают следующие состояния, перечис-
ленные в порядке возрастания энергопотребления:

Sleep - "заснувшее" устройство - потребляет минимум энер-
гии, "разбудить" его может только сброс. Время "пробуж-
дения" - не более 30 с.

Standby Mode (дежурный режим) - устройство способно при-
нимать команду по интерфейсу, но для доступа к носителю
может потребоваться столь же большое время. В это состоя-
ние устройство может перейти как по команде, так и по тай-
меру (Standby Timer), отсчитывающему время от последнего
запроса, полученного в состоянии ожидания или активном
состоянии. Время срабатывания таймера программируется;

он может быть запрещен.

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

Active Mode (активный режим) - устройство все запросы об-
служивает за кратчайшее время.

Команда проверки режима энергопотребления Check Power
Mode через
регистр SC возвращает состояние: SC=0 - уст-
ройство находится в состоянии Standby или переходит в него,
SC^SS - устройство активно или в состоянии ожидания.


Команда Idle переводит устройство в режим ожидания из
активного или дежурного режимов, а также через регистр
SC программирует таймер дежурного режима (табл. 6.9).

Команда Idle Immediate непосредственного перевода в режим
ожидания таймер не программирует.

Содержимое SC

Тайм-аут

О(ООЬ)

Тайм-аут запрещен

x=l-240(01h-FOh)

(хх5)с

х-241-251 (Flh-FBh)

((х-240)х30) мин

252(FCh)

21 мин

253 (FDh)

Период, заданный производителем
(в пределах 8-12 ч)

254 (FEh)

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

255(FFh)

21 мин 15 с


Команда Steep является единственным способом перевода
устройства в "спящий" режим. После получения команды
устройство генерирует запрос прерывания. Хост должен счи-
тать регистр состояния, что сбросит прерывание и позволит
устройству "заснуть". "Разбудить" устройство можно толь-
ко аппаратным или программным сбросом. Состояние, в ко-
торое оно перейдет, определяется типом сброса и програм-
мируется. Поскольку не каждый хост "знает", что после
команды нужно прочитать регистр состояния, устройство ав-
томатически сбросит запрос прерывания и "заснет" через
определенный период времени (не менее 2 с).

Команда Standby переводит устройство в дежурный режим
потребления и через параметр в регистре SC программирует
таймер. Команда Standby Immediate таймер не программирует.

Устройства могут поддерживать расширенное управление
энергопотреблением АРМ (Advanced Power Management). При
этом задается уровень АРМ Level, определяющий степень
активности: Olh - минимальное потребление, FEh - макси-
мальная производительность. Уровень выше 80h не позво-


ляет устройству останавливать двигатель. АРМ управляет-
ся подкомандами Set Features. Устройства с пакетным ин-
терфейсом для управления энергопотреблением могут ис-
пользовать также команды пакетного протокола.

Начиная с АТА-3 в стандарт введена группа команд защиты.
Защищенное устройство по включению питания или аппа-
ратному сбросу будет находиться в заблокированном состо-
янии, при котором любой доступ к информации на носите-
ле запрещен. Система защиты поддерживает два пароля -
главный (Master Password) и пользовательский (User Password).
Главный пароль устанавливается изготовителем или продав-
цом устройства. Пароль устанавливается командой Security
Set Password,
этой же командой устанавливается защита. В
передаваемом блоке данных (512 байт) нулевое слово явля-
ется управляющим:

ш Бит 0 определяет тип пароля (0 - User, 1 - Master);

^ Бит 8 определяет степень защиты (0 - High, 1 - Maximum).

Слова 1-16 содержат пароль, остальные игнорируются. При
установке главного пароля состояние защиты не меняется.

Разблокировать устройство позволяет команда Security
Unlock,
при этом необходимо указать пароль пользователя.
Если пароль утерян, можно использовать главный пароль,
но доступ к данным будет предоставлен, только если была
выбрана степень защиты High. Если была выбрана степень
защиты Maximum, разблокировать устройство по главному
паролю можно только командой Security Erase Unit, но при
этом вся информация с носителя будет стерта. Чтобы за-
страховаться от случайного стирания, непосредственно пе-
ред этой командой должна быть выполнена команда Security
Erase Prepare.
Команда Security Freeze Lock блокирует вы-
полнение любых команд защиты до следующего сброса. Для
осложнения подбора пароля (его длина составляет 32 байт)
служит счетчик неудачных попыток разблокировки, по сра-
батывании которого команды разблокировки будут отвер-
гаться до выключения питания или аппаратного сброса. От-
менить защиту разблокированного устройства можно
командой Security Disable Password (предъявив один из двух
паролей).


Команды защиты в АТА-4 дополнены ограничением макси-
мального адреса, доступного пользователю (сообщаемого
в блоке параметров идентификации), командой Set Max
Address.
Узнать реальный максимальный адрес позволяет
команда Read Native Address.

Для предупреждения о возможном отказе устройства слу-
жит технология SMART (Self-Monitoring, Analysis and
Reporting Technology - технология самонаблюдения, анали-
за и сообщений). Предсказуемые отказы (Predictable Failure)
появляются в результате выхода параметров за некоторый
порог. Отслеживаемые параметры: время разгона до заданной
скорости, время позиционирования, процент ошибок пози-
ционирования, высота полета головок, производительность
(зависящая от числа повторов), количество использованных
резервных секторов и др. Мониторинг может осуществлять-
ся двояко: в рабочем режиме (On-Line) одновременно с вы-
полнением команд хоста (при некотором возможном замед-
лении). Мониторинг Off-Line выполняется устройством в
паузе между "полезными" командами, не снижая произво-
дительности. Если во время выполнения этой процедуры
придет внешняя команда, то мониторинг прервется на вре-
мя исполнения команды, но начало исполнения команды
может задержаться на время до двух секунд. Значения ат-
рибутов, за которыми ведется наблюдение, сохраняются в
энергонезависимой памяти устройства.

Для непакетных устройств имеется команда Smart (пакет-
ные используют для этих целей собственный протокол), под-
команды которой задаются через регистр свойств. Из этих
подкоманд стандартизованы следующие:

^ Smart Read Data (DOh) - чтение блока данных SMART;

^ Smart Enable/Disable Attribute Autosave (D2h) -управле-
ние автосохранением атрибутов;

^ Smart Save Attribute Values (D3h) - сохранение значений
атрибутов;

^ Smart Execute Off-Line Immediate (D4h) - немедленное
выполнение мониторинга Off-Line;

^ Smart Enable Operations (D8h) - разрешение команд и
внутренних функций SMART;


^ Smart Disable Operations (D9h) - запрет команд и функ-
ций SMART;

^ Smart Return Status (DAh) - опрос результатов монито-
ринга. Если какой-либо порог перейден, регистры СН и
CL будут иметь значения C2h и 4Fh соответственно, если
все в порядке - 2Ch и F4h.

Команда загрузки микрокода Download Microcode позволяет
модифицировать firmware - встроенное ПО устройства. В
зависимости от кода в регистре свойств загруженный мик-
рокод будет действовать до выключения питания (Ffl=01h)
или постоянно (РД=07п). Количество загруженных блоков
задается регистром SN (старший байт) и SC (младший байт).
Таким образом может быть загружено от 0 до 33 553 920 байт,
что более чем достаточно для встроенного ПО. Некоррект-
ная модификация кода может привести к выходу устрой-
ства из строя.

6.4. Протоколы взаимодействия хоста
и устройства

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

1. Хост читает регистр состояния устройства, дожидаясь
нулевого значения бита BSY. Если присутствуют два уст-
ройства, хост обращается к ним "наугад" - состояние
будет сообщать последнее выбранное устройство.

2. Дождавшись освобождения устройства, хост записывает
в регистр DH байт, у которого бит DEV указывает на ад-
ресуемое устройство. Здесь кроется причина невозмож-
ности параллельной работы двух устройств на одной шине
АТА: обратиться к устройству можно только после осво-
бождения обоих устройств.

3. Хост читает основной или альтернативный регистр со-
стояния адресованного устройства, дожидаясь признака
готовности (DRDY=i),

4. Хост заносит требуемые параметры в блок командных
регистров.


5. Хост записывает код команды в регистр команд.

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

Для команд, не требующих передачи данных (ND):

7. Завершив исполнение команды, устройство сбрасывает
бит BSY и устанавливает запрос прерывания (если он не
запрещен). К этому моменту в регистрах состояния и
ошибок уже имеется информация о результате исполне-
ния. Выполнение завершается.

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

Для команд, требующих чтения данных в режиме PIO (Р1):

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

8. Зафиксировав обнуление бита BSY (или по прерыванию),
хост считывает регистр состояния, что приводит к сбро-
су прерывания от устройства.

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 Запрос прерывания даже в многосекторных передачах
производится один раз - по выполнении команды.

6.5. Протоколы и режимы передачи данных

Программа общается с устройствами АТА через регистры,
используя инструкции ввода/вывода IN и OUT. Для переда-
чи данных с максимальной скоростью применяют программ-
ный доступ к регистру данных или DMA. Тип обмена зада-
ется командой. Программный доступ обязателен для всех
устройств. Команды режима DMA устройствами могут не
поддерживаться.

Программный доступ PIO (Programmed Input/Output) вы-
полняется в виде следующих друг за другом операций чте-
ния или записи в пространстве ввода/вывода по адресу ре-
гистра данных. В отличие от программно-управляемого
ввода/вывода, применяемого, например, для общения с LPT-
портом, передача блока данных в режиме PIO производится
без программного опроса какого-либо бита готовности для
передачи каждого слова. Готовность устройства проверяется
перед началом передачи блока, после чего хост производит
серию операций в определенном темпе. Темп определяется
выбранным режимом PIO Mode. Для режимов определены


допустимые параметры временной диаграммы цикла обме-
на (табл. 6.10). Обмен PIO программно реализуется с помо-
щью инструкций ввода/вывода строк REP INS или REP OUTS
с
занесенным в регистр СХ количеством слов (или байт) в
передаваемом блоке. Эти инструкции обеспечивают макси-
мально возможную скорость обмена для данного процессо-
ра и системной шины. "Обуздать" процессор в соответствии
с выбранным режимом входит в задачу адаптера АТА, кото-
рый использует для удлинения цикла сигнал готовности
шины (для ISA - IOCHRDY). Традиционные режимы 0, 1 и 2
имеют временные параметры, фиксируемые только хост-адап-
тером. Для прогрессивных режимов АТА-2 (PIO Mode 3 и
старше) устройство может затормозить обмен, используя
сигнал готовности IORDY. Программный обмен на все время
передачи блока занимает и процессор, и системную шину.

PIO
mode

МимимаяьмА"

ГяП-М^ЧОЛвтЧ^С

время цикла, нс

Скорость
передачи,
Мбайт/с

Интерфейс

0

600

3,3

АТА

1

383

5,2

АТА

2

240

8,3

АТА

3

180

11,1

E-IDE, АТА-2
(используется IORDY)

4

120

16,6

E-IDE, Fast АТА-2
(используется IORDY)


Обмен по каналу DMA занимает исключительно шины ввода/
вывода и памяти. Процессору требуется выполнить только
процедуру инициализации канала, после чего до прерывания
от устройства в конце передачи блока он свободен (этим мо-
гут воспользоваться многозадачные системы). Стандартные
каналы DMA шины ISA для интерфейса АТА практически
не используются из-за низкой пропускной способности. Вы-
сокопроизводительные адаптеры АТА могут иметь собствен-
ные более эффективные контроллеры. Режимы обмена по ка-
налу DMA бывают одиночными и множественными. При
одиночном режиме (Single Word DMA) устройство для переда-


чи каждого слова вырабатывает сигнал запроса DMARQ и сбра-
сывает его по сигналу DMACK#, подтверждающему цикл об-
мена. При множественном режиме (Multiword DMA) на сиг-
нал DMARQ хост отвечает потоком циклов, сопровождаемых
сигналами DMACK#. Если устройство не справляется с пото-
ком, оно может приостановить его снятием сигнала DMARQ, а
по готовности установить его снова. Множественный режим
позволяет развить более высокую скорость передачи.

Новейшее достижение - режим Ultra DMA, позволяющий до-
стигнуть скорости передачи 33 Мбайт/с и обеспечить досто-
верность передачи, чего не делалось ни в PIO, ни в стандарт-
ных режимах DMA (а зря!). Стандартом АТА-4 определено 3
режима Ultra DMA (0, 1 и 2), выбор режима осуществляется
командой Set Features. В режимах Ultra DMA сигналы DMARQ
и DACK# сохраняют свое назначение, а вот смысл сигналов
DIOR#, DIOW# и IORDY на время передачи пакета (Ultra DMA
Burst) существенно меняется (см. 6.1). В пакете данные на
шине сопровождаются стробом, генерируемым источником
данных, причем для синхронизации используются оба пере-
пада сигналов. Это позволяет повысить пропускную способ-
ность шины, не увеличивая частоту переключении сигналов
сверх 8,33 с'1 (этот предел для обычного кабеля достигается в
режиме PIO Mode 4 и Multiword DMA Mode 2). Каждое пе-
реданное слово участвует в подсчете CRC-кода, который пе-
редается в конце пакета. Подсчет ведется и источником
данных, и приемником. При несовпадении принятого и ожи-
даемого кода фиксируется ошибка передачи. Передача в па-
кете может приостанавливаться, если приемник снимет сиг-
нал готовности (DDMARDY# или HDMARDY#). Передача пакета
может прекращаться по инициативе устройства (снятием сиг-
нала) или хоста (сигналом STOP). Противоположная сторона
должна подтвердить окончание цикла сигналом STOP или
DMARQ соответственно.

Правильный выбор режима обмена обеспечивает надежность
и производительность. Все устройства поддерживают режим
PIO Mode 0, в котором считывается блок параметров иден-
тификации. В блоке имеются поля, описывающие режим
обмена по умолчанию и более эффективные режимы обме-
на, поддерживаемые устройством. Командой Set Features


можно изменить параметры режима. Иногда накопитель не
обеспечивает надежной передачи данных в заявленном вы-
сокоскоростном режиме. Если данные начинают пропадать,
первым делом следует понизить режим обмена.

Параметры стандартных режимов обмена по DMA приведе-
ны в табл. 6.11.

Режим

МмиЫиЯЯШПА ВПАЛАв

^•--n^4DAB-w^ W^W^^W

цикла,нс

Скорость передачи,
Мбайт/с

Single word DMA Mode 0

960

2,08

Single word DMA Mode 1

480

4,16

Single word DMA Mode 2

240

8,33

Multiword DMA Mode 0

480

4,12

Multiword DMA Mode 1

150

13,3

Multiword DMA Mode 2

120

16,6

Ultra DMA Mode 0

240*

16,6

Ultra DMA Mode 1

160*

25

Ultra DMA Mode 2

120*

33


* В пакете данных режима Ultra DMA за каждый такт передаются два
слова данных, один по фронту синхронизирующего сигнала, другой -
поспаду.

BIOS определяет режим обмена с каждым устройством с уче-
том ограничений, заданных в Setup. Старые диски, не сооб-
щающие своих параметров, могут не работать со старшими
режимами PIO. На одном шлейфе (канале АТА) могут при-
сутствовать устройства с разным режимом обмена - специ-
фикация это допускает. Однако реально могут возникать
аппаратные или программные ограничения. Некоторые чип-
сеты не позволяют независимо программировать режим об-
мена для устройств канала. В таком случае при подключе-
нии двух разных устройств (например, PIO Mode 1 и 3)
обмен с обоими устройствами будет происходить со ско-
ростью меньшего (PIO Mode 1). Поэтому не рекомендуется
к одному каналу АТА (порту IDE, что то же самое) подклю-
чать быстрый винчестер и медленный CD-ROM. Иногда за-
вязка режимов обмена двух устройств обусловлена ограни-


ченным набором параметров конфигурации в BIOS. Быстрые
режимы множественного обмена по DMA реализуются толь-
ко драйверами ОС. "Глупый" драйвер может попытаться на-
вязать медленный режим обоим устройствам канала, так что
смешивать разные устройства не стоит и по этой причине.

Протокол обмена PIO хорош только для однозадачных ОС.
Для многозадачных ОС
больший интерес представляет обмен
по DMA, если, конечно, поддерживаемый режим обеспечива-
ет приемлемую скорость обмена (с{>авните табл. 6.10 и 6.11).

6.6. Средства многозадачности (ДТА-4)

Главным недостатком интерфейса АТА в многозадачных си-
стемах является то, что когда одно устройство на шине ис-
полняет команду, другое использоваться не может. В этом
АТА существенно уступает SCSI, где устройства на время
длительной внутренней операции могут освобождать шину
и имеется эффективный механизм организации очередей про-
цессов ввода/вывода. Спецификация АТА-4 определяет воз-
можности параллельного выполнения команд обоими ус-
тройствами и создания очередей.

Перекрытие команд - Overlapped Feature - позволяет устрой-
ству, занятому длительной внутренней операцией, освобо-
дить шину. Для этого устройство должно сбросить биты DRQ
и BSY регистра состояния. По окончании выполнения опе-
рации устройство устанавливает бит SERVB своем регистре
состояния. Если хост намерен использовать шину для обра-
щения к другому устройству, он должен запретить прерыва-
ния от устройства, установив бит nIEN в регистре управле-
ния. После того как хост вернется к обслуживанию
устройства, он должен послать ему команду NOP с подко-
мандой 01 для получения информации о состоянии. При
этом он может разрешить прерывание, которое произойдет
по готовности устройства к продолжению. Обнаружив уста-
новленный бит SERV, хост посылает команду Service, кото-
рая вызовет продолжение исполнения команды, во время
которой шина освобождалась. Принятый механизм продол-
жения менее эффективен, чем в SCSI, - он требует привле-
чения хоста для обнаружения готовности устройства. Пере-


крытие допускается только для команд NOP (с подкоман-
дой 01), Packet, Read DMA Queued, Service и Write DMA
Queued.

Устройства могут поддерживать очереди команд, но только
для команд, допускающих перекрытие (эти свойства тесно
связаны). Если при наличии команд в очереди устройство
получает команду, не входящую в этот список, команда от-
вергается (с соответствующим битом в регистре ошибок) и
очередь сбрасывается. Глубина очереди, поддерживаемой
устройством, сообщается в блоке параметров идентифика-
ции. Команды ставятся в очередь с уникальным идентифи-
катором-тегом, который передается через регистр счетчика
секторов. После исполнения команды Service значение тега
для обслуживаемой команды считывается из того же регис-
тра, что позволяет ее идентифицировать. Если устройство
получает команду со значением тега, которое уже присут-
ствует в очереди, и новая, и старая команды отвергаются
(состояние не определено). При возникновении любой ошиб-
ки вся очередь сбрасывается. Следующая команда в очередь
посылается лишь при освобожденной шине. Перед посыл-
кой хост должен запретить прерывания, а разрешить их мо-
жет только после посылки новой команды. Если для выпол-
нения команды устройству не нужно освобождать шину,
команда будет выполнена немедленно, а находящиеся в оче-
реди команды, освободившие шину, будут выполнены поз-
же. Очереди SCSI более эффективны как по набору команд
(в очередь ставятся процессы, которые могут представлять
собой цепочки команд), так и по гибкости управления. SCSI
также обеспечивает независимость исполнения одних команд
очереди от результатов выполнения других.

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, DRQ^O,
DF=1 при отказе устройства, CHK=i, если


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

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

6.8. Адаптеры шины АТА и категории
устройств IDE

Простейший адаптер АТА содержит только буферы сигна-
лов шины и дешифратор зоны адресов. Все регистры кон-
троллера и схемы кодирования размещены в самом устройст-
ве IDE. Шина АТА требует выделения системных ресурсов -
двух областей портов ввода/вывода и линии прерывания;

дополнительно может использоваться канал DMA. Интер-
фейсу АТА первого канала выделили ресурсы, ранее исполь-
зовавшиеся контроллером жестких дисков. Второму каналу
назначили ресурсы альтернативного контроллера жестких
дисков. Позже определили ресурсы еще для двух каналов
(табл. 6.13). Традиционному контроллеру жестких дисков
выделялся канал DMA3, но он является 8-битным, в то вре-
мя как шина АТА требует 16-битного канала DMA. Произ-
водительности стандартных каналов DMA для шины АТА
явно недостаточно. На системных платах с шиной PCI стан-
дартом является установка двухканального адаптера, зани-
мающего ресурсы каналов 1 и 2. Этот адаптер обеспечивает
шинам АТА 16-битные каналы DMA, поддерживающие вы-
сокоскоростные режимы обмена (см. табл. 6.11). В идеаль-
ном варианте двухканальные контроллеры имеют шины, пол-
ностью изолированные друг от друга буферными и
логическими схемами. В самом дешевом варианте они ис-


пользуют общие буферы для линий данных и управляющих
сигналов и отдельные только для некоторых сугубо индиви-
дуальных сигналов. С точки зрения логики, здесь все в по-
рядке, но следует учитывать нагрузочную способность (вли-
яние паразитных параметров): суммарная длина обоих
шлейфов не должна превышать 46 см, а суммарная емкость
каждой линии со всеми устройствами не должна превышать
35 пФ. Иначе на высокоскоростных режимах обмена возмож-
ны неконтролируемые искажения передаваемых данных.

Канал

CSO

CS1

IRQ

1

IFOh-lFZh

3F6h-3F7h

14

2

170h-177h

376h-377h

15 или 10

3

lE8h-lEfh

3EEh-3Efh

12 или 11

4

168h-16Fh

36Eh-36Fh

10 или 9


Поскольку скорость программного обмена задается хост-адап-
тером, интересно индивидуальное программирование PIO
Mode для каждого канала/устройства. Ряд чипсетов этого не
допускает и при инициализации назначает общий минималь-
ный режим. В результате подключение "тихоходного" уст-
ройства замедляет обмен быстрого соседнего устройства.

Адаптеры АТА часто размещают на звуковых картах для под-
ключения накопителей CD-ROM. По умолчанию им назна-
чают ресурсы каналов 3 или 4. К этим каналам можно под-
ключать винчестеры, но будет ли их там искать BIOS во время
POST - вопрос. Современные версии BIOS позволяют хра-
нить конфигурационные параметры четырех жестких дисков,
более старые версии - двух. Четыре канала АТА физически
позволяют подключить до восьми накопителей, но работа с
ними лимитирована программными ограничениями.

Расширенные адаптеры могут иметь аппаратные средства
поддержки высокоэффективных режимов передачи (PIO,
DMA, Bus Master), буферные регистры записи и собствен-
ную кэш-память. Сложные адаптеры аппаратно поддержи-
вают "зеркальные" диски. Некоторые адаптеры позволяют
соединять несколько физических дисков в один логический


на уровне вызовов BIOS (в настоящее время актуальнее об-
ратная задача).

Существуют гибридные адаптеры для подключения АТА
HDD к шинам XT и МСА или, например, к LPT-порту.

Интерфейс АТА позволяет подключать устройства различ-
ных категорий,
отличающихся "уровнем интеллекта" встро-
енного контроллера. Первые дисковые накопители IDE от-
носятся к категории неинтеллектуальных устройств -
Non-Intelligent IDE. Они не выполняли трансляцию нумера-
ции секторов - их логические параметры совпадали с физи-
ческими. Команды идентификации устройства и установки
параметров не выполнялись. Дефектные блоки, отмеченные
в заводском списке, были видны пользователю. Низкоуров-
невое форматирование выполнялось непосредственно по ко-
манде, так что неудачное форматирование могло понизить
производительность из-за нарушения оптимальных устано-
вок чередования и смещения.

Более интеллектуальные устройства - Intelligent АТА IDE.
Они способны выполнять расширенные АТА-команды -
идентификацию устройства и установку параметров. Под-
держивается трансляция физических параметров в логичес-
кие. Дефектные сектора скрыты от пользователя (до исчер-
пания резерва). Низкоуровневое форматирование возможно
только при установке логической геометрии, совпадающей с
физической. Однако форматирование опять-таки "сносит"
заводскую оптимизацию. Для ускорения обмена эти устрой-
ства поддерживают блочные режимы передачи Read Multiple
и Write Multiple, а также высокоскоростные режимы обмена
РЮ и DMA.

К следующей категории относятся устройства с зонным фор-
матом записи - Intelligent Zoned Recording IDE. Поскольку
они имеют различное количество секторов на разных треках
(для повышения плотности хранения), трансляция геомет-
рии является для них обязательной (спецификация АТА не
предусматривает сообщения устройством способа разбиения
на зоны и формата каждой зоны, так что обращаться к ним
можно только по логическому трехмерному (CHS) или ли-
нейному (LBA) адресу).


Устройства IDE отличаются также по интеллектуальности
контроллера: автоматический мониторинг внутренних пара-
метров (SMART), температурная коррекция системы пози-
ционирования, поддержка управления энергопотреблением
и различные усовершенствования, направленные на повы-
шение производительности.

6.9. Конфигурирование устройств

Устройства АТА перед подключением к шине должны быть
корректно сконфигурированы. Конфигурирование подразу-
мевает выбор типа интерфейса и определение адреса устрой-
ства. Тип интерфейса - XT или AT - определяется моделью
накопителя. В изделиях фирмы Seagate тип обозначается
последней буквой в шифре модели: А - АТА (16 бит), Х -
для XT (8 бит), а сочетание АХ означает возможность вы-
бора AT/XT с помощью джампера.

Существует два способа задания адреса устройства - с по-
мощью кабельной выборки или явным заданием адреса на
каждом из устройств. Режим кабельной выборки включается
перемычкой CS (Cable Select - кабельная выборка). В этом
случае оба устройства на шине конфигурируются одинако-
во-в режим CS, а адрес устройства определяется его поло-
жением на специальном кабеле-шлейфе (рис. 6.2). Кабель-
ная выборка будет работать, если она поддерживается и
задана на всех устройствах канала, включая хост-адаптер, ко-
торый обеспечивает заземление контакта 28. При этом спо-
собе задания адресов исключается синхронизация шпинде-
лей накопителей (актуально в RAID-массивах) через тот же
провод контакта 28. Кабельная выборка применяется редко.
Ее условное преимущество - унификация конфигурирова-
ния устройств, а недостаток - привязка физического поло-
жения устройств к кабелю - ведущее устройство должно
быть ближе к адаптеру, чем ведомое. Возможно подключе-
ние адаптера к среднему разъему, а устройств - к крайним,
но это не всегда удобно.

Более распространен режим явной адресации, при котором
используется обычный "прямой" кабель (см. рис. 6.1). В этом
случае перемычка CS не устанавливается, а адрес устрой-


ства задается перемычками, состав которых варьируется. В
принципе, достаточно лишь указать устройству его номер
(0/1), но в устройствах, разработанных до стандарта АТА,
ведущему устройству "подсказывали" о наличии ведомого
(по интерфейсу АТА оно могло бы это определить само по
сигналу DASP^). Итак, на устройствах IDE можно увидеть
следующие джамперы:

^ M/S (Master/Slave - ведущее/ведомое) - переключатель
адреса. Если на шине присутствует одно устройство, оно
должно быть сконфигурировано как ведущее. Если на
шине два устройства - одно должно быть ведущим, дру-
гое - ведомым. Иногда джампер обозначается как "<^/D"
(диск С:/диск D:), но для второго канала IDE такое на-
звание некорректно. Когда появились первые IDE-диски
емкостью 1 Гбайт, для преодоления барьера в 504 Мбайт
некоторые модели допускали конфигурирование в виде
двух устройств (0 и 1) половинной емкости. В таком ре-
жиме на их IDE-шлейф второе физическое устройство
подключать нельзя.

^ SP (Slave Present), DSP (Drive Slave Present), "Master but
Slave is not ATA-compatible", "Master but Slave uses only
PDIAG-signal" - устанавливается на ведущем устройстве
для указания на присутствие ведомого. Если переключа-
тель установлен, а ведомое устройство не подключено,
POST даст сообщение об ошибке. Джампер применяется
для дисков, не использующих сигнал DASP#.

^ ACT (Drive Active) - устанавливается на Master (встре-
чается редко).

Для полностью АТА-совместимых дисков перемычка ставится
только на ведомое устройство, а его присутствие ведущее
определит автоматически.

Разобраться с джамперами старых устройств трудно, если нет
документации. У современных устройств лишние джамперы
упразднили, а существующие комментируются на наклейке-
шильдике. Если джамперы устанавливаются рядом с интер-
фейсным разъемом, вероятно, они расположены в соответствии
со стандартом АТА (рис. 6.4). Здесь буквой k обозначены по-
зиции ключевых (пропущенных) выводов, контакты 1-40 ис-


пользуются для интерфейса, а контакты А-Н - для установ-
ки джамперов (табл. 6.14).

62.jpg

Рис. 6.4. Джамперы на разъемах интерфейса АТА:

а - SFF8212, б - SFF8057, в - SFF8058

Выборка

SFF8212

SFF8057

SFF8058

Используемые контакты

A...D

Е...Н

A...F

Кабельная выборка

B-D

E-F

А-В

Master

-

G-H

E-F

Master при наличии Slave

-

G-H, E-F

E-F

Slave

А-В

-

C-D


Следует учитывать, что перестановка джамперовчасто воспринимается устройством
только по включении питания. Кроме того, установка на один шлейф двух разно-
типных не-АТА-устройств часто невозможна.


7. Последовательные шины

Последовательные шины позволяют объединять множество
устройств, используя всего 1-2 пары проводов. При этом
достигается пропускная способность от 100 кбит/с для шины
ACCESS.Bus до 400 Мбит/с у FireWire. Функциональные
возможности этих шин гораздо шире, чем у традиционных
интерфейсов локальных сетей - USB и FireWire способны
передавать изохронный трафик аудио- и видеоданных.

7.1. Шина USB

USB (Universal Serial Bus - универсальная последователь-
ная шина) является промышленным стандартом расшире-
ния архитектуры PC, ориентированным на интеграцию с
телефонией и устройствами бытовой электроники. Версия 1.0
была опубликована в январе 1996 года. Архитектура USB
определяется следующими критериями:

^ Легко реализуемое расширение периферии PC.

т Дешевое решение, поддерживающее скорость передачи
до 12 Мбит/с.

ш Полная поддержка в реальном времени передачи аудио-
и (сжатых) видеоданных.

^ Гибкость протокола смешанной передачи изохронных дан-
ных и асинхронных сообщений.

^ Интеграция с выпускаемыми устройствами.
^ Доступность в PC всех конфигураций и размеров.

ш Обеспечение стандартного интерфейса, способного быст-
ро завоевать рынок.

^ Создание новых классов устройств, расширяющих PC.

С точки зрения конечного пользователя, привлекательны сле-
дующие черты USB:

^ Простота кабельной системы и подключений.