Служебные команды
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 |
Зарезервировано |
Команда установки свойств 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 |
Зарезервированы |
Команда задания параметров блочного режима передачи 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 |
Неисправно |
Неисправно |