Назначение битов регистра DA
:
♦ бит 7 — (HiZ) — высокоимпедансный, при считывании не выдается на шину;
♦ бит 6 — nWTG
— инверсный признак записи (во время физического выполнения записи на носитель бит нулевой);
♦ биты [5:2] — nHS[3:0]
— номер головки (инверсные биты);
♦ биты [1:0] — nDS[1:0]
— выбор устройства (инверсные биты): 10 — выбрано устройство 0, 01 — выбрано устройство 1.
Регистр данных DR
(1F0h, 170h) может использоваться как 8-битный или 16-битный в зависимости от типа данных, передаваемых в текущей команде. Обращение к этому регистру происходит в режиме обмена PIO (когда сигнал DMACK#
неактивен), при выполнении передач протокола PIO (PIO Out) хост производит запись в этот регистр, при PI (PIO In) — чтение. В режиме DMA обмен данными происходит через порт данных , при этом активны сигналы DMARQ
и DMACK#
, а сигналы CS0#
и CS1#
неактивны.
Регистр ошибок ER
(1F1h, 171h) хранит состояние выполнения последней операции или диагностический код. После завершения операции на наличие ошибки указывает бит ERR
регистра состояния.
Назначение битов регистра ER
:
♦ бит 7 — зарезервирован;
♦ бит 6 — UNC
(Uncorrectable Data Error) — неисправимая ошибка данных;
♦ бит 5 — МС
(Media Changed) — смена носителя (после смены носителя первая команда обращения отвергается и устанавливается данный бит, после сброса бита следующие команды будут выполняться нормальным образом);
♦ бит 4 — IDNF
(ID Not Found) — указывает на ненайденный идентификатор сектора;
♦ бит 3 — MCR
(Media Change Requested) — индикатор запроса смены носителя (после обнаружения запроса смены носителя команды Door Lock
будут возвращать бит ошибки ERR
и бит MCR
, бит MCR
сбрасывается командами Door Unlock
, Media Eject
или сигналом аппаратного сброса);
♦ бит 2 — ABRT
(Aborted Command) — устанавливается, если команда отвергнута как недействительная или в случае возникновения иной ошибки;
♦ бит 1 — TK0NF
(Track 0 Not Found) — указывает на то, что по команде Recalibrate не удалось найти нулевой трек;
♦ бит 0 — AMNF
(Address Mark Not Found) — не найден адресный маркер данных в заголовке сектора.
После выполнения любого сброса или команды Execute Device Diagnostic
регистр ошибок содержит диагностический код. Трактовка битов, за исключением бита 2 ( ABRT
), может меняться в зависимости от исполненной команды.
Регистр свойств FR
(1F1h, 171h) используется в зависимости от команды. В команде Set Features
через него задается код подкоманды. Некоторые старые устройства могут игнорировать запись в этот регистр. До принятия спецификации ATA-2 в этот регистр помещали значение рекомендуемого номера цилиндра для предкомпенсации записи.
Регистр счетчика секторов SC
(1F2h, 172h) содержит число секторов, участвующих в обмене. Хост инициализирует этот регистр до подачи команды (нулевое значение соответствует 256 секторам). По успешному завершению операции доступа к данным регистр должен обнулиться. Если команда завершилась с ошибкой, в регистре будет число секторов, которые должны быть переданы для успешного завершения предыдущего запроса. Команды Initialize Device Parameters
или Write Same
могут переопределить значение этого регистра. В некоторых командах регистр используется для передачи иных параметров.
Регистры номера сектора SN
(1F3h, 173h) и номера цилиндра — младшего СL
(1F4h, 174h) и старшего байта СН
(1F5h, 175h) — имеют двоякое назначение в зависимости от выбранной системы адресации (CHS или LEA). Они инициализируются хост-адаптером, а в случае возникновения ошибки при выполнении операции устройство поместит в них адрес, по которому встретилась ошибка.
Регистр номера устройства и головки D/H
(1F6h, 176h) кроме хранения части адресной информации служит для выбора ведущего или ведомого устройства и метода адресации.
Назначение битов регистра D/H
:
♦ биты 7 и 5 вплоть до ATA-3 должны были быть единичными, в ATA/ATAPI-4 их объявили устаревшими;
♦ бит 6 — L
— единичным значением указывает на применение режима адресации LBA, при нулевом значении бита используется режим CHS;
♦ бит 4 — DEV
(Device) — выбор устройства, при DEV
=0 выбрано ведущее, при DEV
=1 — ведомое;
♦ биты [3:0] имеют двоякое назначение в зависимости от выбранной системы адресации, в режиме CHS они содержат номер головки, в режиме LBA — старшие биты логического адреса.
Как и предыдущие ( SN
, CH
и CL
), адресный регистр D/H
инициализируется хост-адаптером, а в случае возникновения ошибки при операции устройство поместит в них адрес, по которому встретилась ошибка. До принятия спецификации ATA-2 считалось, что адресные регистры должны модифицироваться и после успешного выполнения операции, отражая текущее значение адреса в носителе.
Читать дальше