Физический интерфейс Serial ATA

Последовательный интерфейс ATA, как и его параллельный предшественник, предназначен для подключений устройств внутри компьютера. Длина кабелей не превышает 1 м, при этом все соединения радиальные, каждое устройство подключается к хост-адаптеру своим кабелем. В стандарте предусматривается и непосредственное подключение устройств к разъемам кросс-платы с возможностью «горячей» замены. Стандарт определяет новый однорядный двухсегментный разъем с механическими ключами, препятствующими ошибочному подключению. Сигнальный сегмент имеет 7 контактов (S1-S7), питающий — 15 (P1-Р15); все контакты расположены в один ряд с шагом 1,27 мм. Назначение контактов приведено в табл. 9.11. Малые размеры разъема (полная длина — около 36 мм) и малое количество цепей облегчают компоновку системных плат и карт расширения. Питающий сегмент может отсутствовать (устройство может получать питание и от обычного 4-контактного разъема ATA). Вид разъемов приведен на рис. 9.6. Для обеспечения «горячего» подключения контакты разъемов имеют разную длину, в первую очередь соединяются контакты «земли» Р4 и Р12, затем остальные «земли» и контакты предзаряда конденсаторов в цепях питания P3, Р7 и Р13 (для уменьшения броска потребляемого тока), после чего соединяются основные питающие контакты и сигнальные цепи.

Таблица 9.11 . Разъем Serial ATA

Контакт Цепь Назначение
S1 GND Экран
S2 А+ Дифференциальная пара сигналов А
S3 А- Дифференциальная пара сигналов А
S4 GND Экран
S5 В- Дифференциальная пара сигналов В
S6 В+ Дифференциальная пара сигналов В
S7 GND Экран
Ключи и свободное пространство
P1
V33 Питание 3,3 В
P2 V33 Питание 3,3 В
P3 V33 Питание 3,3 В, предзаряд
Р4 GND Общий
P5 GND Общий
P6 GND Общий
Р7 V5 Питание 5 В, предзаряд
Р8 V5 Питание 5 В
P9 V5 Питание 5 В
P10 GND Общий
Р11 Резерв  
Р12 GND Общий
Р13 V12 Питание 12В, предзаряд
P14 V12 Питание 12 В
Р15 V12 Питание 12 В

Рис. 9.6 . Разъемы Serial ATA: a — полный разъем на устройстве, б — сигнальный сегмент кабельного разъема, в — питающий сегмент кабельного разъема, г — сигнальный сегмент разъема хост-адаптера, д — разъем хоста для непосредственного подключения устройства

Регистры Serial ATA

Каждое устройство, подключенное к адаптеру Serial ATA, представляется тремя блоками регистров, два из которых соответствуют традиционным регистрам ATA (см. п. 9.2.1) и называются «теневыми», третий блок — новый. Привязка адресов блоков к адресному пространству хоста стандартом не регламентируется; для PCI-контроллера блоки задаются регистрами конфигурационного пространства и «теневые» регистры могут располагаться по стандартным адресам ATA.

В блоке управляющих регистров, как и в ATA, используется лишь один (AS для чтения, DC для записи). В блоке командных регистров разрядность регистров SC, SN, CL и СН расширена до 16 бит, назначение младших байтов сохранилось. В режиме LBA старшие байты регистров SN, CL и СН несут биты логического адреса [24:31], [32:39] и [40:47] соответственно. В регистре D/H бит DEV игнорируется (при эмуляции пар устройств на одном канале бит DEV используется для выбора устройства). Из спецификации не совсем ясно, используются ли младшие биты D/H для задания бит LBA[27:24], поскольку эти же биты фигурируют в старшем байте SN.

Новый блок регистров SCR (Serial ATA Status and Control registers) состоит из 16 смежных 32-разрядных регистров SCR0-SCR15, из которых пока определены лишь 3 (остальные зарезервированы).

Регистр SStatus (SCR0) — регистр текущего состояния интерфейса хост адаптера (только чтение).

♦ Биты [3:0] — поле DET, подключение устройств:

• 0000 — устройство не обнаружено, физической связи нет;

• 0001 — устройство обнаружено, но физическая связь не установлена;

• 0011 — устройство обнаружено, физическая связь установлена;

• 0100 — устройство отключено (запретом интерфейса или запуском внутреннего теста).

♦ Биты [7:4] — SPD, скорость:

• 0000 — нет согласованной скорости (устройство не подключено или связь не установлена);

• 0001 — согласована скорость 1-го поколения.

♦ Биты [11:8] — поле IPM, состояние энергопотребления интерфейса:

• 0000 — устройство не обнаружено, физической связи нет;

• 0001 — интерфейс в активном состоянии;

• 0010 — интерфейс в состоянии PARTIAL ;

• 0110 — интерфейс в состоянии SLUMBER .

Остальные биты и значения полей зарезервированы.

Регистр SError (SCR1) — регистр диагностической информации, относящейся к интерфейсу. В регистре представлены ошибки, накапливающиеся с момента последней очистки регистра. Регистр очищается операцией сброса, отдельные биты можно сбрасывать операцией записи в регистр (единицы в позициях сбрасываемых бит).

♦ Биты [15:0] — поле ERR , ошибки, обрабатываемые обычным программным обеспечением:

• бит 9 — С — устойчивая неисправимая ошибка связи или нарушение целостности данных (может возникать при неправильном подключении, отказе или отключении устройства);

• бит 11 — Е — внутренняя ошибка, обнаруженная хост-адаптером (если ошибка повторяется после сброса, она может быть признаком несовместимости адаптера и устройства);

• бит 0 — I — исправленное нарушение целостности данных (не требует действий со стороны ПО, но может учитываться, например, для принятия решения о снижении скорости);

• бит 1 — М — исправленная ошибка связи (может возникать при временном отключении устройства, потере синхронизации, не требует действий со стороны ПО);

• бит 10 — P — протокольная ошибка, требует сброса интерфейса и повтора операции (в случае устойчивости может быть признаком несовместимости устройства и адаптера);

• бит 8 — T — не исправленное нарушение целостности данных, требует повтора операции.

♦ Биты [31:16] — поле DIAG , используемое диагностическим ПО:

• бит 19 — В — ошибка декодирования 10B/8B;

• бит 21 — С — ошибка CRC на канальном уровне;

• бит 20 — D — ошибка паритета блоков данных (Disparity);

• бит 26 — F — неопознанный тип FIS (ошибка, обнаруженная на транспортном уровне при корректном CRC-коде);

• бит 17 — I — внутренняя ошибка физического уровня интерфейса;

• бит 16 — N — сигнал готовности физического уровня менял состояние;

• бит 22 — H — ошибка подтверждения кадров (может возникать как следствие ошибок В, С, D);

• бит 23 — S — ошибка последовательности состояний канального уровня;

• бит 24 — T — ошибка на транспортном уровне;

• бит 18 — W — обнаружен пробуждающий сигнал Comm Wake .

Остальные биты зарезервированы.

Регистр SControl (SCR2) — регистр управления интерфейсом (запись и чтение).

♦ Биты [3:0] — поле DET, управление обнаружением и инициализацией устройств:

• 0000 — нет действий;

• 0001 — инициализация и установление соединения (эквивалентно аппаратному сбросу);

• 0100 — запрет интерфейса и перевод физического уровня в режим Offline .

♦ Биты [7:4] — поле SPD, задает ограничение на скорость при согласовании соединений:

• 0000 — нет ограничений;

• 0001 — скорость не выше 1-го поколения.

♦ Биты [11:8] — поле IPM, управление энергорежимом интерфейса:

• 0000 — нет ограничений;

• 0001 — запрет перехода в состояние PARTIAL ;

• 0010 — запрет перехода в состояние SLUMBER ;

• 0011 — запрет перехода в состояние PARTIAL и SLUMBER .

Остальные биты и значения полей зарезервированы.

Наши рекомендации