2. Применением адаптеров (dongles), превращающих параллельную шину АТА в последовательную, и наоборот (см. блок-схему).
Общие данные интерфейса SATA.
В первой версии стандарта Serial ATA (SATA 1.0) предусмотрена максимальная пропускная способность 150 Мбайт/с, а об ограничениях на размеры дисков можно просто забыть на ближайшие лет десять. В следующих версиях SATA предусматривается удвоение скорости передачи, то есть сначала будет 300, а затем и 600 Мбайт/с.
Как уже отмечалось, стандарт SATA подразумевает последовательную передачу данных, а потому в кабелях передачи данных используются всего две дифференциальные пары. Одна из них работает на передачу, а другая — на прием. Всего же в кабеле SATA допускается (опционально) использование семи проводников, три из которых «земля» (рис. 1 и 2). Максимальная длина кабеля при этом составляет 1 м.
Рис. 1 Структура кабеля передачи данных SATA.
Рис. 2 Разъем шлейфа данных и питания в устройствах SATA.
Рис. 3 (a) модуль подключения кабеля передачи данных; (b) модуль подключения кабеля питания; (c) кабель передачи данных; (d) кабель питания; (e) схема подключения кабеля передачи данных, к модулю подключения (f);
По сравнению с традиционным параллельным интерфейсом интерфейс Serial ATA имеет большую помехозащищенность и мало восприимчив к электромагнитным помехам благодаря использованию низкоуровневых дифференциальных сигналов. Уровень сигнала измеряется не по отношению к «земле», а по отношению к уровню сигнала в соседнем проводе, то есть как разница сигналов в двух проводниках. Любая наведенная помеха сказывается на обоих сигналах, однако их дифференциальная разница при этом не меняется.
Физический уровень.
Физический уровень занимается передачей битов по физическим каналам связи. Здесь определяются основные характеристики среды используемой для передачи данных и характеристики электрических сигналов.
Сигналы. При современных технологиях использование 5-ти вольтовых сигналов стало очень затруднительно, и кроме того, с ростом скорости работы возникают дополнительные сложности при переключении из одного состояния в другое. С такой проблемой уже однажды столкнулась SCSI, и сейчас, в Serial ATA был использован тот же подход. Уровень сигналов снижен и составляет 250 мв.
Способ передачи. Кроме того, вместо использовавшейся раннее в ATA однополярной передачи, обладающей низкой помехоустойчивостью, применена двухполярная (или еще ее называют дифференциальной. Снова же, так как и SCSI). Преимущество ее в гораздо большей помехозащищенности. При дифференциальной передаче по двум проводам передается один и тот же сигнал, но разной полярности. Шумы наводимые в проводах симметричны, и сложив оба полученных разнополярных сигнала можно получить шум, а вычев его из полученного сигнала - непосредственно чистый переданный сигнал. Собственно использование дифференциальной передачи и дало возможность снизить уровни используемого сигнала.
На физическом уровне для передачи данных используется двухэтапное логическое кодирование 8b/10b.
При логическом кодировании 8b/10b каждые 8 бит исходной последовательности заменяются на 10 бит в соответствии с определенными правилами. В результате для 256 возможных комбинаций из 8 входных бит получаем 1024 возможные комбинации для 10 выходных бит. Но разрешенными из этих 1024 комбинаций являются только 256, а остальные — запрещенными. Как правило, такая избыточность используется для того, чтобы повысить помехоустойчивость кодирования (если при приеме обнаруживается запрещенная последовательность, то распознается ошибка передачи). Кроме того, незначительная избыточность улучшает спектральные характеристики сигнала, поскольку исключает возможность появления в цепочке передаваемых бит длинных последовательностей нулей и единиц. Также повышаются и самосинхронизирующие свойства кода. При приеме данных происходит декодирование 8b/10b, то есть каждой группе из 10 бит ставится в соответствие 8 бит, а лишние биты вырезаются.
Однако в случае протокола SATA разрешенных к использованию комбинаций значительно больше, чем 256. При этом каждой входной последовательности может соответствовать несколько выходных, а какая именно выходная комбинация будет использована, зависит от контрольного сигнала rd, формируемого в процессе передачи. Рассмотрим подробнее два этапа кодирования.
При кодировании 8 исходных бит разбиваются на две подгруппы: из 5 бит и из 3 бит. На первом этапе подгруппа 5 бит подвергается кодированию 5b/6b, то есть каждые 5 бит заменяются на 6. На втором этапе оставшиеся 3 бита подвергаются кодированию 3b/4b.
Целесообразность использования двухэтапного кодирования вызвана тем, что при кодировании каждой группы (сначала 5 бит, а потом оставшихся 3 бит) формируется специальный бинарный контрольный сигнал rd (Running Disparity), который может быть либо отрицательным (rd-), либо положительным (rd+).
При кодировании 5b/6b для 32 возможных 5-битных комбинаций на входе существует 46 6-битных возможных комбинаций на выходе (не 32 и не 64, а именно 46!). Получаются эти 46 возможных комбинаций следующим образом: каждой из 32 возможных 5-битных комбинаций на входе ставится в соответствие две 6-битные выходные последовательности: прямая и инверсная, за исключением тех 6-битных последовательностей, для которых количество «1» совпадает с количеством «0» — отсюда именно 46 возможных комбинаций на выходе.
При кодировании 3b/4b для 8 возможных 3-битных комбинаций на входе существует 14 возможных 4-битных комбинаций на выходе, которые формируются так же, как и прежде.
При кодировании 3b/4b, так же как и при 5b/6b, использование прямой или инверсной выходной последовательности определяется текущим значением контрольного сигнала rd. Если сигнал rd положителен, то используется прямая последовательность, а если отрицателен — то инверсная. При этом текущее значение сигнала rd определяется по предыдущей переданной последовательности из 6 или 4 бит.
Правило для формирования сигнала rd достаточно простое. Сигнал положителен, если количество единиц больше количества нулей в группе закодированных бит. Исключение составляют последовательности с равным количество нулей и единиц. Для последовательностей 000111 (подгруппа 6 бит) и 0011 (подгруппа 4 бит) сигнал считается положительным, а для последовательностей 111000 и 1100 — отрицательным. Во всех остальных случаях сигнал rd нейтрален и не меняет своего состояния.
К примеру, если входная последовательность 5 бит 00001 подвергается кодированию 5b/6b, то при положительном текущем сигнале rd+ последовательность 00001 будет заменена на последовательность 100010. Если текущее значение сигнала rd отрицательно (rd-), то будет сформирована инверсная последовательность 011101. Но в обоих случаях последующее состояние сигнала rd изменится на противоположное, так как при rd+ в последовательности 100010 нулей больше, чем единиц, и, следовательно, сигнал rd примет отрицательное значение, а при rd- в последовательности 011101 единиц больше, чем нулей, и сигнал rd станет положительным.
Аналогичному кодированию в зависимости от текущего значения сигнала rd подвергается и подгруппа из 3 бит (кодированию 3b/4b), причем с учетом того, что сперва происходит кодирование 5b/6b, а потом 3b/4b, текущее значение сигнала rd при кодировании 3b/4b определяется по результату кодирования 5b/6b.
Таким образом, в стандарте SATA предусмотрен довольно нетривиальный метод логического кодирования.
Кроме логического двухэтапного кодирования, при передаче данных используется метод циклического избыточного контроля CRC-32 (Cyclic Redundancy Check) с образующим 32-битным полиномом
и скрэмблирование с образующим полиномом
На физическом уровне используется потенциальный код NRZ (Non Return to Zero).
Другой особенностью стандарта SATA является организация взаимодействия между контроллером и диском по принципу «точка-точка» (peer-to-peer). Напомним, что стандарт Parallel ATA предусматривает подключение на один канал до двух устройств (Master и Slave); соответственно полоса пропускания для обоих устройств не превышает 133 Мбайт/с. В стандарте SATA к одному контроллеру можно подключить только один жесткий диск, поэтому каждому устройству стандарта SATA предоставляется вся полоса пропускания целиком.
Физическая среда. Ключевой момент, ради которого то все и было затеяно: используется не параллельная физическая шина, а последовательная, состоящая из 2-х пар проводов (одной передачи и одной на прием) и несколько нулевых. Всего семь. Провод которыми соединяются устройство последовательной ATA становится таким образом тонким и круглым, гибким и удобным в использовании, не препятствует воздухообмену. С другой стороны, изготовление провода функционирующего на столь высоких скоростях, как у Serial ATA, и при этом обладающего высокими механическими характеристиками, пусть и содержащего всего 7 проводов, обходится вряд ли дешевле, чем обычного 80-ти жильного. И если где-то и содержится возможность снижения стоимости пользования, как обещано разработчиками изначально, то вряд ли здесь. Зато безусловно задача согласования (терминирования) решается теперь намного дешевле. А длина кабелей может достигать 1 метра. SATA может быть не только интерфейсом внутренних устройств хранения, но и… внешниих…
К тому же в стандарте SATA предусмотрена поддержка технологии «hot swap» (использование дисков с горячей заменой), которая уже давно используется в дорогих серверных SCSI-дисках, а с появлением устройств Serial ATA станет стандартом для всех устройств хранения данных.
Канальный уровень.
Канальный уровень выполняет функции арбитража и результата выполнения операций передачи данных, скремблирование, а также реализует механизмы обнаружения и коррекции ошибок.
Арбитраж и контроль передачи. Сам по себе физический уровень может только передавать данные, поступившие на его вход. Для предотвращения конфликтов, когда одновременно и устройство, и хост контроллер хотят передать данные, на канальном уровне предусмотрен специальный механизм контроля, получивший название арбитража. Кроме того в обязанности канального уровня входит слежение за тем, были ли данные успешно переданы и сообщение об этом вышестоящему - транспортному уровню. Легко сообразить зачем это нужно.
Обнаружение и коррекция ошибок. В отличие от стандарта ATA, который различными механизмами обнаружения и коррекции ошибок обрастал по мере роста быстродействия, т.е. тогда, когда припирало и без них было не обойтись, в Serial ATA несколько механизмов заложены изначально. Во-первых, хорошей распознаваемостью обладает используемый на физическом уровне NRZ. Но это не главное, ряд ошибок может успешно его миновать. Как говорилось выше, применяется избыточное кодирование 8B/10B. Суть его проста: 8 бит исходных данных дополняются 2-мя дополнительными битами. Итого получается 10 бит - т.е. 1024 возможных битовых комбинаций может быть в получившемся коде, в то время как в исходном - только 256. Из результирующего кода отбирают 256 комбинаций, которые будут соответствовать 256-ти комбинациям исходного кода, а остальные считают запрещенными. Это позволяет распознавать искажение данных - если принята запрещенная последовательность, то при передаче произошла ошибка. Кроме того, в Serial ATA используется CRC код. Кстати то, что жесткие диски с SATA имеют максимальную скорость обмена по интерфейсу в 150 Мбайт в секунду, при том, что для SATA заявлена скорость передачи на физическом уровне в 1.5 Гбит/с, объясняется использованием избыточного 8B/10B кодирования, снижающего полезную пропускную способность интерфейса до 1.2 Гбит/с.
Скремблирование. Код NRZ, используемый на физическом уровне не обладает свойством самосинхронизации, так как при последовательности нулей или единиц сигнал в линии просто превращается в постоянный сигнал определенного уровня. Скремблирование помогает бороться с этим явлением, перемешивая данные, подлежащие передаче определенным образом так, чтобы вероятность появления единиц и нулей на выходе была приблизительно одинаковой. Работает канальный уровень так: получает информационный кадр от транспортного, выполняя логическое кодирование и вычисление CRC, и спускает вниз - к физическому уровню. При получении данных от физического порядок действия обратный.
Транспортный и прикладной уровни.
Задачей транспортного уровня является обеспечение вышележащим протоколам передачи с той степенью надежности, которая им требуется. Он упаковывает поступившие от прикладного уровня ATA команды в кадры и предает их следующему, или распаковывает поступившие снизу данные и передает на прикладной уровень.
Задачей прикладного уровня является организация взаимодействия между драйвером контроллера и всего программного, что за ним дальше стоит и самим контроллером через блок регистров и портов.
Перспективы развития.
Сравнительно недавно началась работа над последующим стандартом - Serial ATA II,1 который определяет расширения Serial ATA 1.0. Они включают в себя большую скорость передачи данных - 3 Гб/сек (или 300 Мб/сек). Ожидается, что последующие спецификации будут определять скорости передачи данных до 6 Гб/сек (или 600 Мб/сек). Разрабатываются также и такие характеристики, как организация очереди команд, направленная в основном на корпоративные приложения хранения. Эти новые характеристики направлены на то, чтобы отвечать потребностям сред хранения данных, нуждающихся в простоте конфигурации и оптимальном соотношении цена/емкость.
По аналогии с ATA, также происходит развитие последовательного варианта технологии Parallel SCSI. Serial-Attached SCSI (SAS) создан для тех сред хранения данных, которые требуют высокой производительности, масштабируемости и надежности. Кроме того, системы SAS будут поддерживать как диски SAS, так и диски Serial ATA.
Основной целью рабочей группы Serial ATA II является сохранение небольшой стоимости дисков Serial ATA, сходной с нынешними ценами Parallel ATA. По этой причине, ни одна из новых характеристик не будет изменять спецификации Serial ATA 1.0 или требовать внесения изменений в жесткие диски Serial ATA 1.0.
Serial ATA позволит в будущем увеличить производительность клиентских систем, необходимых для того, чтобы не отставать от требований и усовершенствований других систем. Этот переход также облегчит внедрение, потребляемую мощность и вопросы дизайна для компаний, производящих компьютерные системы.
Используемая литература:
1. www.storus.ru (“Интерфейс Serial ATA для клиентских систем”)
2. www.ixbt.com (“Serial ATA: в ожидании чуда”)
3. www.cpress.ru (“SATA и SATA II (по материалам весеннего форума IDF 2003)”)
4. www.ferra.ru (“UltraATA/100: последний писк”)
5. www.computerra.ru (“Serial ATA: первые признаки жизни”)
6. www.3dnews.ru (“Реализация стандарта Serial ATA”)
7. www.3dnews.ru (“Parallel ATA умер, да здравствует Serial ATA!”)
8. www.serialata.org (Спецификация интерфейса Serial ATA)
0 комментариев