Аппаратные интерфейсы ПК

         

Последовательный интерфейс Serial АТА


Параллельный интерфейс АТА исчерпал свои ресурсы пропускной способности, достигшей 100 Мбайт/с в режиме UltraDM A Mode 5. Для дальнейшего повышения пропускной способности интерфейса (но, конечно же, не самих устройств хране­ния, которые имеют гораздо меньшие внутренние скорости обмена с носителем) было принято решение о переходе на последовательный интерфейс. Цель пере­хода — улучшение и удешевление кабелей и коннекторов, улучшение условий охлаждения устройств внутри системного блока (избавление от широкого шлейфа), обеспечение возможности разработки компактных устройств, облегчение конфи­гурирования устройств пользователем. Попутно расширяется адресация блоков (достижение предельной емкости адресации АТА в 137 Гбайт не за горами). Спе­цификация Serial ATA версии 1.0 опубликована в 2001 г. и доступна в Сети по адресу www.serialata.org. Сейчас уже ведутся работы над новой спецификацией Serial ATA II с большей пропускной способностью и специальными средствами для поддержки сетевых устройств хранения. Приведенная ниже информация от­носится к версии 1.0.

Интерфейс Serial ATA является хост-центрическим, в нем определяется только взаимодействие хоста с каждым из подключенных устройств, а взаимодействие между ведущим и ведомым устройствами, свойственное традиционному интер­фейсу АТА, исключается. Программно хост видит множество устройств, подклю­ченных к контроллеру, как набор каналов АТА, у каждого из которых имеется единственное ведущее устройство. Имеется возможность эмуляции пар устройств (ведущее — ведомое) на одном канале, если такая необходимость возникнет. Про­граммное взаимодействие с устройствами Serial ATA практически совпадает с прежним, набор команд соответствует ATA/ATAPI-5. В то же время аппаратная реализация хост-адаптера Serial ATA сильно отличается от примитивного (в ис­ходном варианте) интерфейса АТА. В параллельном интерфейсе АТА хост-адап­тер был простым средством, обеспечивающим программное обращение к регист­рам, расположенным в самих подключенных устройствах.
В Serial ATA ситуация иная: хост-адаптер имеет блоки так называемых «теневых» регистров (Shadow Registers), совпадающих по назначению с обычными регистрами устройств АТА. Каждому подключенному устройству соответствует свой набор регистров. Обраще­ния к этим теневым регистрам вызывают процессы взаимодействия хост-адапте­ра с подключенными устройствами и исполнение команд.

390________________________________ Глава 9. Интерфейсы устройств хранения

В стандарте рассматривается многоуровневая модель взаимодействия хоста и устройства, где прикладным уровнем является обмен командами, информацией о состоянии и хранимыми данными. На физическом уровне для передачи инфор­мации между контроллером и устройством используются две пары проводов. Дан­ные передаются кадрами, транспортный уровень формирует и проверяет коррек­тность информационных структур кадров (Frame Information Structure, FIS). Для облегчения высокоскоростной передачи на канальном уровне данные кодируются по схеме 8В/10В (8 бит данных кодируются 10-битным символом) и скремблиру-ются, после чего по физической линии передаются по простейшему методу NRZ (уровень сигнала соответствует передаваемому биту). Между канальным и приклад­ным уровнем имеется транспортный уровень, отвечающий за доставку кадров. На каждом уровне имеются свои средства контроля достоверности и целостности.

В первом поколении Serial ATA данные по кабелю передаются со скоростью 1500 Мбит/с, что с учетом кодирования 8В/10В обеспечивает скорость 150 Мбайт/с (без учета накладных расходов протоколов верхних уровней). В дальнейшем планируется повышать скорость передачи, и в интерфейсе заложена возможность согласования скоростей обмена по каждому интерфейсу в соответствии с возмож­ностями хоста и устройства, а также качеством связи. Хост-адаптер имеет сред­ства управления соединениями, программно эти средства доступны через специ­альные регистры Serial ATA.

В стандарте предусматривается управление энергорежимом интерфейсов.


Каж­ дый интерфейс кроме активного состояния может находиться в состояниях PARTIAL и SLUMBER с пониженным энергопотреблением, для выхода из которых требуется заметное время (10 мс).

Команды, требующие передачи данных, могут исполняться в различных режимах обмена. Обращение в режиме PIO и традиционный способ обмена по DMA (legacy DMA) выполняется аналогично привычному интерфейсу АТ А. Однако внутрен­ний протокол обмена между хост-адаптером и устройствами позволяет передавать между ними разноплановую информацию (структуры FIS определены не только для команд, состояния и собственно хранимых данных). В приложении D к спе­цификации описывается весьма своеобразный способ обмена по DMA, который предполагается основным (First-party DMA) для устройств Serial ATA. В тради­ционном контроллере DMA адаптера АТ А для каждого канала имеется буфер, в который перед выполнением операции обмена загружают дескрипторы блоков памяти, участвующей в обмене (см. п. 9.2.1). Теперь же предполагается, что адрес­ная информация, относящаяся к оперативной памяти хост компьютера, будет до­водиться до устройства хранения, подключенного к адаптеру Serial ATA. Эта ин­формация из устройства хранения при исполнении команд обмена выгружается в контроллер DMA хост-адаптера и используется им для формирования адреса текущей передачи. Мотивы и полезность этого нововведения не совсем понятны; расплатой за некоторое упрощение хост-адаптера (особенно многоканального) является усложнение протокола и расширение функций, выполняемых устрой­ством хранения. Все-таки более привычно традиционное разделение функций, при котором задача устройств внешней памяти — хранить данные, «не интересуясь» тем, в каком месте оперативной памяти компьютера они должны находиться при операциях обмена.

9.2. Интерфейс АТА/ATAPI (IDE)_______________________________________ 391



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

Последовательный интерфейс АТА, как и его параллельный предшественник, пред­назначен для подключений устройств внутри компьютера.


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

Таблица 9.11. Разъем Serial ATA Контакт    Цепь     Назначение

51

GND

Экран

52

А+

Дифференциальная пара сигналов А

53

А-

Дифференциальная пара сигналов А

54

GND

Экран

55

В-

Дифференциальная пара сигналов В

56

В+

Дифференциальная пара сигналов В

57

GND

Экран

Ключи и свободное пространство

Р1

V33

Питание 3,3 В

Р2

V33

Питание 3,3 В

РЗ

V33

Питание 3,3 В, предзаряд

Р4

GND

Общий

Р5

GND

Общий

Р6

GND

Общий

Р7

V5

Питание 5 В, предзаряд

Р8

V5

Питание 5 В

Р9

V5

Питание 5 В

Р10

GND

Общий

Р11

Резерв

Р12

GND

Общий

Р13

V12

Питание 12В, предзаряд

Р14

V12

Питание 12 В

Р15

V12

Питание 12 В

<


Рис. 9.6. Разъемы Serial ATA: a — полный разъем на устройстве, б — сигнальный сегмент кабельного разъема, в — питающий сегмент кабельного разъема, г — сигнальный сегмент разъема хост-адаптера, д — разъем хоста для непосредственного подключения устройства Регистры Serial ATA Каждое устройство, подключенное к адаптеру Serial ATA, представляется тремя блоками регистров, два из которых соответствуют традиционным регистрам АТА (см. п. 9.2.1) и называются «теневыми», третий блок — новый. Привязка адре­сов блоков к адресному пространству хоста стандартом не регламентируется; для PCI-контроллера блоки задаются регистрами конфигурационного пространства и «теневые» регистры могут располагаться по стандартным адресам АТА. В блоке управляющих регистров, как и в АТА, используется лишь один (AS для чтения, DC для записи). В блоке командных регистров разрядность регистров SC, SN, CL и СН расширена до 16 бит, назначение младших байтов сохранилось. В режи­ме LBA старшие байты регистров SN, С L и СН несут биты логического адреса [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 — устройство обнаружено, но физическая связь не установлена; •       ООП — устройство обнаружено, физическая связь установлена;

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

9.2. Интерфейс АТА/ATAPI (IDE)_______________________________________ 393

¦   Биты [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 — Р — протокольная ошибка, требует сброса интерфейса и повтора операции (в случае устойчивости может быть признаком несовместимости устройства и адаптера);

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

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

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

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

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

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

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

394________________________________ Глава 9. Интерфейсы устройств хранения

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

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

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

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

•       бит 18 — W — обнаружен пробуждающий сигнал Сотт 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.

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


Содержание раздела