Технология S.M.A.R.T. (Self-Monitoring, Analysis and Reporting Technology - технология самонаблюдения, анализа и сообщений) используется для предупреждения пользователей о возможном отказе устройства. Предсказание отказов осуществляется в результате контроля за выходом ряда параметров за некоторый предел. По технологии SMART осуществляют контроль следующих параметров : время разгона до номинальной скорости, время позиционирования головок, процент ошибок операций позиционирования, «высота полета» головок, производительность обмена с учетом числа повторов, количество использованных резервных секторов и т. п. Слежение может осуществляться в рабочем режиме on-line (одновременно с выполнением команд хоста при возможном некотором замедлении). Слежение в режиме off-line выполняется устройством в паузе между обычными командами без снижения производительности. Если во время выполнения этой процедуры придет внешняя команда, то мониторинг прервется на время исполнения команды (начало исполнения команды может задержаться на время до двух секунд). Значения атрибутов, за которыми ведется наблюдение, сохраняются в служебной области носителя.
Для непакетных устройств имеется команда SMART (пакетные используют для этих целей собственный протокол), подкоманды которой задаются через регистр свойств FR. Перед подачей команд в регистры CL и СН заносятся константы: CL=4Fh, CH=C2h. Из подкоманд SMART стандартизованы следующие:
SMART Read Data (FR=D0h) - чтение блока данных SMART. Блок данных (512 байт) имеет стандартную структуру, в нем содержатся следующие сведения:
- состояние мониторинга off-line: запускался ли, завершался ли успешно, прерывался ли и почему;
- состояние самотестирования (чем кончился предыдущий тест, тестирование выполняется в данный момент);
- время до завершения тестирования off-line;
- возможности тестирования off-line, поддержка журнала регистрации ошибок;
- рекомендуемое время, через которое имеет смысл запрашивать результат после запуска коротких и расширенных тестов;
- информация, специфичная для производителя.
SMART Enable/Disable Attribute Autosave (FR=D2h) - управление автосохранением атрибутов: SC=00h - запрет, SC=F1h - разрешение автосохранения. Подкоманда необязательная. Автосохранение в энергонезависимую память выполняется по наступлению какого-то события (зависит от разработчика).
SMART Save Attribute Values (FR=D3h) - сохранение значений атрибутов в энергонезависимой памяти устройства.
SMART Execute Off-Line Immediate (FR=D4h) - немедленное выполнение мониторинга off-line в режиме off-line или captive. В режиме off-line устройство, получив команду, сразу выполняет действия, обычные при завершении команд (снять флаг занятости и т. п.). В режиме captive команда выполняется как обычная, то есть устройство устанавливает флаг занятости на время ее выполнения; по окончании в регистрах сообщается результат и снимается флаг занятости. Функции задаются в регистре SN:
0 - выполнение программы SMART off-line в режиме off-line]
1 - выполнение короткого самотестирования SMART в режиме off-line;
2 - выполнение расширенного самотестирования SMART в режиме off-line;
127 - прекращение самотестирования SMART;
1 - выполнение короткого самотестирования SMART в режиме off-line;
129 - выполнение короткого самотестирования SMART в режиме captive;
130 - выполнение расширенного самотестирования SMART в режиме captive.
Для подкоманд, определяющих режим captive, в случае ошибок после их выполнения регистры CL и СH позволяют уточнить ошибку: если CL=4F, CH=C2ht то не прошло самотестирование, если CL=4Fh, CH=2Ch, то ошибка иная (неподдерживаемые функции, ошибка задания параметров и т, п.).
SMART Read Log (FR=D5h) - чтение журнала ошибок (5+). В регистре SC указывается число передаваемых секторов, в регистре SN - адрес журнала. Журналов может быть несколько, имеется и каталог журналов. В спецификации задана структура каталога и некоторых журналов.
SMART Write Log (FR=D6h) - запись в журнал ошибок или в каталог журналов (5+).
SMART Enable Operations (FR=D8h) - разрешение команд и внутренних функций SMART,
SMART Disable Operations (FR=D9h) - запрет команд и функций SMART, все команды SMART, кроме Smart Enable Operations, будут отвергаться. Состояние (разрешены или нет функции SMART) сохраняется и после последующих включений питания.
SMART Return Status (FR=DAh) - опрос результатов мониторинга. Если какой-либо порог перейден, регистры СH и CL будут иметь значения C2h и 4Fh соответственно, если все в порядке - 2Ch и F4h.