Книга: Аппаратные интерфейсы ПК. Энциклопедия
9.2.2. Последовательный интерфейс Serial ATA
Разделы на этой странице:
9.2.2. Последовательный интерфейс Serial ATA
Параллельный интерфейс ATA исчерпал свои ресурсы пропускной способности, достигшей 100 Мбайт/с в режиме UltraDMA Mode 5. Для дальнейшего повышения пропускной способности интерфейса (но, конечно же, не самих устройств хранения, которые имеют гораздо меньшие внутренние скорости обмена с носителем) было принято решение о переходе на последовательный интерфейс. Цель перехода — улучшение и удешевление кабелей и коннекторов, улучшение условий охлаждения устройств внутри системного блока (избавление от широкого шлейфа), обеспечение возможности разработки компактных устройств, облегчение конфигурирования устройств пользователем. Попутно расширяется адресация блоков (достижение предельной емкости адресации ATA в 137 Гбайт не за горами). Спецификация Serial ATA версии 1.0 опубликована в 2001 г. и доступна в Сети по адресу www.serialata.org. Сейчас уже ведутся работы над новой спецификацией Serial ATA II с большей пропускной способностью и специальными средствами для поддержки сетевых устройств хранения. Приведенная ниже информация относится к версии 1.0.
Интерфейс Serial ATA является хост-центрическим, в нем определяется только взаимодействие хоста с каждым из подключенных устройств, а взаимодействие между ведущим и ведомым устройствами, свойственное традиционному интерфейсу ATA, исключается. Программно хост видит множество устройств, подключенных к контроллеру, как набор каналов ATA, у каждого из которых имеется единственное ведущее устройство. Имеется возможность эмуляции пар устройств (ведущее — ведомое) на одном канале, если такая необходимость возникнет. Программное взаимодействие с устройствами Serial ATA практически совпадает с прежним, набор команд соответствует ATA/ATAPI-5. В то же время аппаратная реализация хост-адаптера Serial ATA сильно отличается от примитивного (в исходном варианте) интерфейса ATA. В параллельном интерфейсе ATA хост-адаптер был простым средством, обеспечивающим программное обращение к регистрам, расположенным в самих подключенных устройствах. В Serial ATA ситуация иная: хост-адаптер имеет блоки так называемых «теневых» регистров (Shadow Registers), совпадающих по назначению с обычными регистрами устройств ATA. Каждому подключенному устройству соответствует свой набор регистров. Обращения к этим теневым регистрам вызывают процессы взаимодействия хост-адаптера с подключенными устройствами и исполнение команд.
В стандарте рассматривается многоуровневая модель взаимодействия хоста и устройства, где прикладным уровнем является обмен командами, информацией о состоянии и хранимыми данными. На физическом уровне для передачи информации между контроллером и устройством используются две пары проводов. Данные передаются кадрами, транспортный уровень формирует и проверяет корректность информационных структур кадров (Frame Information Structure, FIS). Для облегчения высокоскоростной передачи на канальном уровне данные кодируются по схеме 8B/10B (8 бит данных кодируются 10-битным символом) и скремблируются, после чего по физической линии передаются по простейшему методу NRZ (уровень сигнала соответствует передаваемому биту). Между канальным и прикладным уровнем имеется транспортный уровень, отвечающий за доставку кадров. На каждом уровне имеются свои средства контроля достоверности и целостности.
В первом поколении Serial ATA данные по кабелю передаются со скоростью 1500 Мбит/с, что с учетом кодирования 8B/10B обеспечивает скорость 150 Мбайт/с (без учета накладных расходов протоколов верхних уровней). В дальнейшем планируется повышать скорость передачи, и в интерфейсе заложена возможность согласования скоростей обмена по каждому интерфейсу в соответствии с возможностями хоста и устройства, а также качеством связи. Хост-адаптер имеет средства управления соединениями, программно эти средства доступны через специальные регистры Serial ATA.
В стандарте предусматривается управление энергорежимом интерфейсов. Каждый интерфейс кроме активного состояния может находиться в состояниях PARTIAL и SLUMBER с пониженным энергопотреблением, для выхода из которых требуется заметное время (10 мс).
Команды, требующие передачи данных, могут исполняться в различных режимах обмена. Обращение в режиме PIO и традиционный способ обмена по DMA (legacy DMA) выполняется аналогично привычному интерфейсу ATA. Однако внутренний протокол обмена между хост-адаптером и устройствами позволяет передавать между ними разноплановую информацию (структуры FIS определены не только для команд, состояния и собственно хранимых данных). В приложении D к спецификации описывается весьма своеобразный способ обмена по DMA, который предполагается основным (First-party DMA) для устройств Serial ATA. В традиционном контроллере DMA адаптера ATA для каждого канала имеется буфер, в который перед выполнением операции обмена загружают дескрипторы блоков памяти, участвующей в обмене (см. п. 9.2.1). Теперь же предполагается, что адресная информация, относящаяся к оперативной памяти хост компьютера, будет доводиться до устройства хранения, подключенного к адаптеру Serial ATA. Эта информация из устройства хранения при исполнении команд обмена выгружается в контроллер DMA хост-адаптера и используется им для формирования адреса текущей передачи. Мотивы и полезность этого нововведения не совсем понятны; расплатой за некоторое упрощение хост-адаптера (особенно многоканального) является усложнение протокола и расширение функций, выполняемых устройством хранения. Все-таки более привычно традиционное разделение функций, при котором задача устройств внешней памяти — хранить данные, «не интересуясь» тем, в каком месте оперативной памяти компьютера они должны находиться при операциях обмена.
Физический интерфейс 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.
Остальные биты и значения полей зарезервированы.
- 9.2. Интерфейс ATA
- Информация заголовочной страницы (Database header)
- Database dialect
- 12. Лекция: Создание приложений с графическим интерфейсом пользователя.
- DATABASE CACHE SIZE
- Data sending and control session
- SCTP DATA chunk
- Binary Serialization
- 5.21 IP-адреса, интерфейсы и множественное пребывание
- Множественные интерфейсы и имена методов
- Data Binding Using the GridView Control
- 2.1 Интерфейс SCSI