Система команд
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 В АТА-4 команда не определена.
4 Для АТА-2 и выше.
5 Только для АТА-3.
6 Для АТА-3 и выше.
7 Коды поддерживаются для совместимости.
8 Использование регистра зависит от производителя.