Будучи "умными", диски IDE могут принимать и исполнять множество команд от
главной системы. Вы выдаете команду диску, устанавливая все соответствующие
регистры поддержки, а затем записывая байт команды в регистр команд диска (по
шестнадцатиричному адресу 1F7). Команды подразде /* asplinux 11 */ ляются на две категории:
обязательные и дополнительные. Обязательные команды - это те, которые
поддерживаются оригинальным контроллером жесткого диска IBM ST506.
Команды IDE (и обязательные и дополнительные) еще подразделяются на три
рабочих /* norton */ класса, в зависимости от того, как диск отрабатывает запрос. После
приема команды Класса 1, диск устанавливает бит BSY (busy - занят) в регистре
состояния на 400 наносекунд. После приема команды Класса 2 диск устанавливает
бит BSY, готовит свои буфера для операции записи, устанавливает бит DRQ (data
request - запрос данных) в регистре состояния на 700 микросекунд, п /* nod32 */ осле чего
сбрасывает бит BSY. После приема команды Класса 3 диск действует точно так же,
как и для Класса 2, но устанавливает бит DRQ на время 20 миллисекунд. В Таблице
3 приведен список команд IDE, описанных в текущем черновом стандарте.
Таблица 3. Команды IDE. Обязательные команды поддерживаются оригинальным
контроллером IBM AT ST506. Когда BIOS будет поддерживает дополнительные команды,
такие как Read /* антивирус panda */ Multiple и Write Multiple, то производители дисков смогут
поддерживать продвинутые возможности IDE. Все коды команд даны в 16-ричном виде.
Команда Класс Код команды Дополнительная?
-----------------------------------------------------------------------------
Check Power Mode 1 98 E5 Да
Execute Drive Diagnostic 1 90 Hет
Format Track 2 50 Hет
Identify Drive 1 EC /* avast 4 */ Да
Idle 1 97 E3 Да
Idle Immediate 1 95 E1 Да
Initialize Drive Parameters 1 91 Hет
Recalibrate 1 1x Hет
Read Buffer 1 E4 Да
Read DMA (with retry) /* kaspersky */ 1 C8 Да
Read DMA (without retry) 1 C9 Да
Read Multiple 1 C4 Да
Read Sector(s) (with retry) 1 20 Hет
Read Sector(s) (without retry) 1 21 Hет
Read Long (with retry) 1 22 Hет
Re /* английский словарь */ ad Long (without retry) 1 23 Hет
Read Verify Sector(s) (with retry) 1 40 Hет
Read Verify Sector(s) (without retry) 1 41 Hет
/* win zip */ Seek 1 7x Hет
Set Features 1 EF Да
Set Multiple Mode 1 C6 Да
Set Sleep Mode 1 99 E6 Да
Standby 1 96 E2 Да
Standby Immediate 1 94 E0 Да
Write Buffer 2 E8 Да
Write DMA (with retry) 3 CA /* англо русский словарь */ Да
Write DMA (without retry) 3 CB Да
Write Multiple 3 C5 Да
Write Same 3 E9 Да
Write Sector(s) (with retry) 2 30 Hет
Write Sector(s) (without retry) 2 31 Hет
Write Sector(s) (with retry) 2 32 Hет
Write Sector(s) (without retry) 2 33 Hет
Write Verify 3 3C Да
Vendor unique /* avast 4 server */
|