SATA, SATA II и SAS (по материалам весеннего форума IDF 2003)
б интерфейсе Serial ATA (SATA) говорили достаточно много, а потому в смысле технологии новым назвать его уже нельзя. Действительно, сам стандарт SATA версии 1.0 был опубликован еще в августе 2001 года, а спецификация Serial ATA II в окончательной версии в октябре 2002 года на Форуме Intel для разработчиков в Токио. Но интерес к этому стандарту ничуть не ослабевает. Так, интерфейс Serial ATA стал популярной темой на весеннем Форуме Intel для разработчиков (Intel Developer Forum, IDF), проходившем 18-21 февраля в г.Сан-Хосе (шт. Калифорния, США). На выставке, организованной в рамках форума, были представлены десятки новых систем и устройств с интерфейсом Serial ATA 1.0. Кроме того, здесь были впервые показаны устройства на основе усовершенствованной спецификации Serial ATA II. А на самом форуме было объявлено, что рабочая группа по Serial ATA II выступает с двумя дополнительными спецификациями: представляет предварительную версию спецификации умножителя портов, а также сообщает о завершении и предстоящем принятии первого тома спецификации кабелей и разъемов Serial ATA II.
Впрочем, прежде чем переходить к рассмотрению систем и устройств с интерфейсом Serial ATA, еще раз напомним, что же это за новый интерфейс и чем он отличается от традиционного интерфейса Parallel ATA (PATA).
SATA 1.0
ри использовании параллельного интерфейса PATA биты данных передаются параллельно по нескольким проводам. Первоначально интерфейс PATA имел максимальную скорость передачи данных 33 Мбайт/с (ATA33). В настоящее время физическая скорость чтения жестких дисков превосходит 50 Мбайт/с, поэтому интерфейс ATA33 не позволяет реализовать возможности жестких дисков. На смену этому интерфейсу пришел сначала интерфейс ATA66 с максимальной пропускной способностью 66 Мбайт/с, а затем и интерфейс ATA100 с пропускной способностью 100 Мбайт/с. Несколько позднее был выпущен интерфейс ATA133 с максимальной пропускной способностью 133 Мбайт/с.
Появление интерфейса ATA133 может показаться не вполне логичным, поскольку возможности по пропускной способности ATA100 до сих пор не исчерпаны. Однако создание нового интерфейса было вызвано отнюдь не стремлением увеличить пропускную способность шины. Это скорее побочный (хоть и приятный) эффект новой технологии. Реальное же преимущество нового интерфейса заключается в максимально возможном объеме жесткого диска. Дело в том, что стандарт ATA100 допускает использование максимального объема жесткого диска до 137 Гбайт, что связано с 28-битной адресацией сектора. Однако современные диски вплотную подошли к этому пределу их максимальный объем составляет 120 Гбайт, поэтому дальнейшее увеличение емкости дисков в стандарте ATA100 просто невозможно. В стандарте же ATA133 (и в этом его главное достоинство) используется 48-битная адресация сектора, что позволяет адресовать диски с невероятно большим объемом 144 Пбайт (петабайт).
Казалось бы, стандарт ATA133 решил все проблемы и можно на этом успокоиться, но, увы, параллельная передача данных имеет свои ограничения. В этом смысле скорость интерфейса в 133 Мбайт/с является предельной, а значит, и у самого интерфейса отсутствует перспектива дальнейшего развития, то есть он не имеет потенциальной возможности для масштабирования. И если сейчас скорость чтения для жестких дисков составляет в среднем 50 Мбайт/с, то по прогнозам на 2007 год она достигнет уже 150 Мбит/с, то есть пропускной способности в 133 Мбайт/с будет явно недостаточно.
Существует несколько способов повысить пропускную способность интерфейса: увеличить или разрядность шины данных, или тактовую частоту передачи, или и то и другое сразу. Увеличение разрядности шины данных (то есть когда передача становится все более «параллельной») налагает жесткие ограничения на максимальную частоту передачи. Это вызывает сложности синхронизации, возникновение паразитных модуляционных сигналов при одновременном переключении сигналов в соседних проводах, интерференцию сигналов на высоких частотах и т.д. Поэтому для реализации большей пропускной способности был выбран путь последовательной передачи данных, то есть разрядность шины данных свели к минимуму и повысили тактовую частоту передачи. Именно в этом заключается принципиальное отличие нового интерфейса Serial ATA от интерфейса PATA.
В первой версии стандарта Serial ATA (SATA 1.0) предусмотрена максимальная пропускная способность 150 Мбайт/с, а об ограничениях на размеры дисков можно просто забыть на ближайшие лет десять. В следующих версиях SATA предусматривается удвоение скорости передачи, то есть сначала будет 300, а затем и 600 Мбайт/с.
Как уже отмечалось, стандарт SATA подразумевает последовательную передачу данных, а потому в кабелях передачи данных используются всего две дифференциальные пары. Одна из них работает на передачу, а другая на прием. Всего же в кабеле SATA допускается (опционально) использование семи проводников, три из которых «земля» (рис. 1 и 2). Максимальная длина кабеля при этом составляет 1 м.
По сравнению с традиционным параллельным интерфейсом интерфейс Serial ATA имеет большую помехозащищенность и мало восприимчив к электромагнитным помехам благодаря использованию низкоуровневых дифференциальных сигналов. Уровень сигнала измеряется не по отношению к «земле», а по отношению к уровню сигнала в соседнем проводе, то есть как разница сигналов в двух проводниках. Любая наведенная помеха сказывается на обоих сигналах, однако их дифференциальная разница при этом не меняется.
На физическом уровне для передачи данных используется двухэтапное логическое кодирование 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 предоставляется вся полоса пропускания целиком.
К тому же в стандарте SATA предусмотрена поддержка технологии «hot swap» (использование дисков с горячей заменой), которая уже давно используется в дорогих серверных SCSI-дисках, а с появлением устройств Serial ATA станет стандартом для всех устройств хранения данных.
SATA II Phase 1
тандарт SATA II является логическим продолжением стандарта SATA 1.0. Как правило, стандарт SATA II связывают с большей пропускной способностью интерфейса. Так, если для версии SATA 1.0 она составляет 150 Мбайт/с, то для SATA II уже 300 Мбайт/с.
Впрочем, увеличенная в два раза полоса пропускания интерфейса в стандарте SATA II это не единственное различие между SATA 1.0 и SATA II. На самом деле существует два этапа реализации стандарта SATA II. Первый этап реализации SATA II Phase 1 не подразумевает удвоения полосы пропускания. Речь идет лишь о расширении стандарта SATA 1.0 (SATA Extensions).
Основных нововведений в стандарте SATA II Phase 1 два: технология изменения очередности команд (Native Command Queuing) и технология умножения портов.
Технология Native Command Queuing, обеспечивающая значительный прирост производительности при операциях ввода-вывода, представляет собой особый алгоритм изменения очередности выполнения команд с целью увеличения пропускной способности. То есть при использовании технологии Native Command Queuing контроллер SATA-устройства анализирует очередь запросов от процессора и оптимизирует очередность их выполнения таким образом, чтобы максимизировать скорость передачи и минимизировать время поиска. Механизм работы технологии Native Command Queuing в общих чертах схож с организацией очередности выполнения команд в SCSI-устройствах. Однако если для SCSI-устройств контроллер поддерживает очередь глубиной в 256 команд, то для SATA-устройств обеспечивается оптимизация очереди глубиной в 32 команды.
Попытаемся на элементарном уровне объяснить, как за счет перераспределения очередности выполнения команд можно повысить производительность и сократить время доступа. Пусть, к примеру, имеется очередь из четырех команд A-B-C-D. Для выполнения этой очередности команд может потребоваться, скажем, 2,5 оборота диска. Если же выполнять те же команды в порядке B-D-A-C, то потребуется всего 1 оборот диска. Таким образом уменьшается время выполнения команд, а следовательно, увеличивается производительность выполнения операций ввода-вывода.
Другим нововведением в стандарте SATA II Phase 1 стала технология умножения портов. Напомним, что в стандарте SATA 1.0 взаимодействие между контроллером и диском организовано по принципу «точка-точка» (peer-to-peer), то есть к одному каналу контроллера можно подключить только один жесткий диск. Применение концентраторов (умножителей портов) позволяет подключить к одному каналу до 15 устройств вместо одного. Такое расширение возможностей подключения весьма существенно в задачах, где используется большое количество дисков; кроме того, оно увеличивает количество доступных пользователям портов.
SAS (Serial Attached SCSI)
а рынке серверов традиционным решением на протяжении многих лет считался параллельный интерфейс SCSI, в котором применяется низковольтная дифференциальная передача данных и который неплохо защищен от помех, а также отказоустойчив. За время своего существования этот интерфейс неоднократно совершенствовался, сохраняя при этом обратную совместимость. По сравнению с IDE-дисками для настольных ПК SCSI-диски всегда были более производительными, надежными и дорогими. В процессе эволюции SCSI-интерфейса появились стандарты Ultra160 SCSI и Ultra320 SCSI, которые обеспечивают пропускную способность 160 и 320 Мбайт/с соответственно, что вполне достаточно для современных систем хранения данных, RAID-массивов и серверных дисков.
Но… тенденция все сделать последовательным не миновала и SCSI-интерфейс. В результате появился новый стандарт Serial Attached SCSI (SAS), подразумевающий последовательную передачу данных для SCSI-дисков.
Первая спецификация Serial Attached SCSI еще пребывает в стадии разработки и утверждения (выход намечен на начало 2004 года), поэтому рановато говорить о том, что из нее получится и как она будет состязаться с Serial ATA. Хотя известно, что пропускная способность Serial Attached SCSI составит 300 и 600 Мбайт/с.
Впрочем, основное достоинство SAS-систем заключается не в пропускной способности, а в возможности подключения до 128 жестких дисков, полнодуплексном режиме работы, возможности использования кабеля длиной до 6 м (а следовательно, имеется возможность построения внешних дисковых систем с высокой плотностью монтажа).
Еще одна особенность стандарта Serial Attached SCSI его совместимость с SATA-дисками на физическом уровне (кабели и разъемы) и на уровне команд, то есть возможность подключать SATA-диски к любому SAS-контроллеру. Правда, обратная ситуация уже невозможна, то есть к SATA-контроллеру нельзя подключить SAS-диск.
В таблице дано сравнение стандартов SATA 1.0 и SAS.
Для передачи и приема данных и команд используются две дифференциальные пары (так же как и в стандарте SATA 1.0), что позволяет организовать полнодуплексный режим работы (рис. 3). Как и в стандарте SATA 1.0, передача по дифференциальным парам происходит в противофазе, что позволяет избежать перекрестных наводок без скручивания проводов. Кроме того, используются низковольтные сигналы (рис. 4).
Одна или несколько физических связей, каждая из которых является дифференциальной парой, образуют порт. Причем если в порте используется только одна физическая связь, то говорят об узком порте (Narrow port), а при объединении в одном порте нескольких связей получают широкий порт (Wide port) (рис. 5).
Каждое физическое SAS-устройство должно иметь один или несколько узких или широких портов. Кроме конечных устройств (жестких дисков) и контроллеров в стандарте SAS используются расширители (Expander), которые также могут иметь как узкие, так и агрегированные широкие порты (рис. 6).
К расширителям подключаются как оконечные устройства, так и другие расширители. Причем используется два типа расширителей: оконечный (Edge Expander) и корневой (Fanout Expander). К оконечным расширителям подключаются только конечные SAS-устройства, например жесткие диски. Корневой расширитель предназначен для подключения к нему только оконечных расширителей и выполняет своеобразные функции маршрутизатора (рис. 7).
Использование корневого и оконечных расширителей позволяет создавать разветвленные топологии подключения SAS-устройств, причем всего можно подключать до 128 жестких дисков.
Заключение
ак уже отмечалось в начале статьи, на выставке, проходившей в рамках весеннего форума IDF, было продемонстрировано немало устройств Serial ATA.
Так, компания Silicon Image представила на выставке свой новый чип: двухпортовый PCI-to-Serial ATA-контроллер Sil 3512. На настоящий момент этот чип размером 14Ѕ14 мм является самым миниатюрным. Контроллер Sil 3512 поддерживает шину PCI 2.3 (32 бит, 33/66 МГц) и полностью совместим со стандартом Serial ATA 1.0. Каждый из двух портов имеет пропускную способность 150 Мбит/с. Другая особенность нового чипа аппаратная поддержка DMA-команд, что является непременным требованием для совместимости с технологией Native Command Queuing. Кроме того, контроллер поддерживает (программно) создание RAID-массивов уровня 0 и 1. Чип Sil 3512 предназначен для интегрирования на системные платы и для создания PCI-контроллеров на его основе.
Компания ServerWorks (Broadcom) всемирно известный производитель серверных чипсетов еще 15 января этого года анонсировала новую линейку Serial ATA хост-контроллеров. Эта линейка включает четырехканальный PCI-X SATA-контроллер SWC-IB7453, восьмиканальный PCI-X SATA-контроллер SWC-IB7451 и двухканальный мультиплексор SWC-IB7452, связывающий SATA- или PATA-устройства с двумя независимыми хост-контроллерами.
Компания Marvell представила на форуме первый образец SATA-умножителя портов, который определяется в спецификации SATA II Phase 1.
Компания Western Digital продемонстрировала на выставке свой новый диск с интерфейсом Serial ATA, получивший название WD Raptor. Этот диск был анонсирован компанией Western Digital 10 февраля этого года. Отличительной особенностью нового диска является не только его интерфейс, но и скорость вращения шпинделя, составляющая 10 000 RPM, малое время доступа (всего 5,2 мс), рекордно высокая наработка на отказ (1,2 млн. ч) и пятилетняя гарантия.
Конечно, приведенных примеров не достаточно, чтобы рассказать обо всех многочисленных стендах выставки, посвященной продуктам SATA. На выставке была также продемонстрирована действующая система компании Harddrive.com, в которой используется устройство хранения информации Seagate Barracuda ATA V SATA одно из двух имеющихся на рынке решений с интерфейсом Serial ATA с пропускной способностью 150 Мбайт/с. Другая инновационная система была представлена компанией Okapi Software: ускоритель резервного копирования ipXcelerator D2D2T, позволяющий одновременно вести резервное копирование данных с нескольких серверов по сети Gigabit Ethernet. В устройстве используются RAID-контроллер Intel SRCS14L SATA RAID и дисковые накопители Maxtor DiamondMax Plus II SATA.