Serial Storage Architecture






 

История и реальность

Готов держать пари, что если спросить о существующих интерфейсах жестких дисков кого-нибудь, кто знает что такое интерфейс, то сходу он сможет назвать только ATA, ну еще SCSI быть может. Особенно продвинутые могут вспомнить про Fibre Channel и вряд ли кто либо назовет SSA. А между тем интерфейс такой существует. Я упоминал его в своей статье по выбору винчестеров, а сегодня мне хочется рассказать о нем немного больше.

SSA, полное имя Serial Storage Architecture - последовательный интерфейс, предназначенный для подключения разнообразных устройств хранения информации, но в первую очередь оптимизированный для винчестеров.

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

Первые эксперименты по созданию последовательных интерфейсов IBM начала проводить около пятнадцати лет назад, так как неизбежность перехода к такого типа шинам была очевидна уже тогда. Развитие параллельных архитектур сопряжено с некоторыми проблемами, рано или поздно которые стали или станут непреодолимыми.

Простейшим способом наращивания пропускной способности шины является увеличение ее ширины (обычно ее удвоение). Такое решение выливается в увеличение размеров коннекторов, усложнение их производства и разделки, как следствие удорожание, а увеличение числа сигнальных проводников выливается в усложнение производства соединительных кабелей, приобретение ими массивности и сложности монтажа, увеличение взаимных наводок проводов кабеля друг на друга.

При повышении тактовой частоты появляется сложность с распознаванием сигналов, необходимость использования проводов с высокой помехоустойчивостью, производство которых не самое дешевое; в большей степени проявляется неравномерность распространения сигнала по проводникам, что в сочетании с другими явлениями выливается не всегда в дешевую доработку приемопередатчиков.

Эти недостатки не характерны для последовательных шин:

Основные преимущества последовательных шин:

Первой внешней подсистемой хранения с последовательным интерфейсом стала 9333 серия компании IBM в 1991 году. Этот интерфейс еще не был и даже не задумывался промышленным стандартом, скорее это был эксперимент, но высокие достигнутые показатели (большое установившееся число операций дискового ввода-вывода, высокие скорости интерфейса работающего в полном дуплексе, позволяющего передавать одновременно команды на чтение и на запись, высокая надежность и возможность расширения без потери производительности) утвердили разработчиков в верности избранного ими пути.

Собственно интерфейс SSA был разработан IBM в 1995. И в 95-96 и даже немного 97 годах вокруг него было довольно много шуму, что неудивительно: новый интерфейс предлагал в распоряжение устройств 4 канала (2 направленных к устройству, и 2 направленных от него), каждый пропускной способностью 20 Мбайт/с, что в сумме превосходило возможности современной ему версии SCSI-2. И хотя во всех публикациях посвященных SSA она упоминается как популярная дешевая альтернатива SCSI, на практике все было совсем по другому, и после 96-го разговоры вокруг нее начали постепенно стихать, пока не и исчезли вовсе, и я уже было грешным делом подумал, что технология отмерла, пока меня не поправили на форуме.

Сразу же после представления IBM, интерфейс был подхвачен комитетом ANSI, который работал над формализацией стандарта два года. Компаниями-энтузиастами была образована SSA Industry Association, насчитывавшая более 40 членов. Микросхемы производились самой IBM, Pathlight Technology производила адаптеры, а Conner Peripherals оснащала этим перспективным интерфейсом свои винчестеры.

Увлеченные участники разработки были полны надежд на крупные заказы и миллионные прибыли, но, увы, спроса на SSA системы практически не было. Дело в том, что при сравнении с сопоставимыми по производительности продуктами на SCSI, SSA не давала никакого выигрыша в цене.

Проблема заключалась в необходимом числе DMA-каналов. Передача на скорости 80Мбайт/с - четыре потока по 20 Мбайт, требует четырех DMA-каналов, и 4 современных SCSI адаптера, использующих те же 4 DMA канала, в сумме могли обеспечить пропускную способность в 160 Мбайт/с, при этом обходясь гораздо дешевле.

Еще одним гвоздем в крышку гроба SSA стало приобретение Conner Peripherals в октябре 1995-го Seagate'ом, который делал ставки на FC-AL (Fibre Channel Arbitrated Loop), и не стал продолжать участвовать в SSA разработках. Увидев, что самый крупный производитель жестких дисков отказался от поддержки SSA, Micropolis и другие мелкие винчестеростроители тоже ушли в сторону.

Так трагически развернувшиеся события вовсе не означают, что SSA не имеет никаких ни в чем преимуществ и абсолютно безнадежна. Нет. По информации опубликованной на array.ru IBM ежегодно удается продавать SSA-систем приблизительно на пять сотен мегадолларов. И Paramaunt Pictures отдала предпочтение именно системам на базе SSA, намыкавшись со SCSI.

Но, получилось так, что IBM осталась и единственной компанией, продвигающей этот стандарт. Она сама занимается и производством дисков с этим интерфейсом, и сбором высокопроизводительных системы хранения на их основе, и дальнейшим развитием технологии. В то же время сама прекрасно осознает, что SSA - это временный стандарт, который в будущем, безусловно, будет заменен FC-AL.

Технология изнутри

История вещь безусловно интересная, но она не позволяет нам судить о причинах успехов или неудач той или иной технологии, ведь эти причины в большинстве случаев кроются в самой технологии и ее особенностях. Поэтому давайте покопаемся у SSA внутри.

Спецификация SSA определяет три компонента (Первым приведено обозначение компонента первой версии спецификации, в скобках - более поздней, второй):

Вкратце шина SSA характеризуется следующими свойствами.

Устройства SSA бывают:

Наиболее распространенными являются двухпортовые устройства: жесткие диски, например, оснащаются исключительно двумя портами.

Устройства могут объединятся в последовательные цепочки, петли, и коммутируемые петли и цепочки. Цепочки представляют собой последовательное соединение двух портовых устройств.


Крайними устройствами в цепочке могут быть не только однопортовые устройства, но и двух. Здесь возможен особенный случай, когда только два однопртовых устройства соединяются непосредственно между собой. Такое соединение называется выделенным (Dedicated).

В петлях могут использоваться только двухпортовые устройства. Представляют собой последовательную цепочку, в которой первое устройство соединено с последним.


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

Коммутируемые конфигурации. Более сложные конфигурации, содержащие коммутатор(ы) и некоторое число простых конструкций из приведенных выше. Например:


Позволяют объединять большое число устройств, и могут также создавать альтернативные пути передачи данных между устройствами.

Единицей обмена информации является кадр, имеющий длину до 128 байт. Каждый кадр содержит поле адреса, точно определяющее устройство назначения и позволяющее провести передачу по цепи устройств от источника.

Каждое устройство на шине может производить обмен данными только с соседним устройством.

Двухпортовые устройства или коммутаторы получив кадр предназначенный для другого узла могут начать передавать его дальше по сети с задержкой в 5 байт (сквозная маршрутизация), что сводит задержки передачи к минимуму, по сравнению с обычной (кадр-за-кадром) и обеспечивает высокую производительность.

В распоряжение каждого устройства может быть предоставлено до двух каналов передачи в каждом направлении, это позволяет достичь скорости обмена в 2*20 = 40 Мбайт/с на чтение + 2*20 = 40 Мабйт/с на запись, т.е. 80 Мбайт/с. Так, за вычетом накладных расходов протоколов, получается 73 Мбайт/с полезной.

Во второй версии стандарта пропускная способность каналов увеличена вдвое - до 40 Мбайт/с, соответственно максимальная суммарная скорость обмена по шине составляет 160 Мбайт/с. Кроме того, по сути сети образуемые соединением SSA устройств являются сегментными, и это позволяет любому устройству начинать и производить обмен данными независимо от других устройств и одновременно с ними. Т.е реальна ситуация, когда обмен происходит между несколькими устройств на шине независимо друг от друга. Например:


Для этого используется специальный алгоритм арбитража шины, называемый SAT.

Каждый отдельный канал имеет довольно небольшую пропускную способность, и позволяет использовать простые и дешевые приемопередающие устройства, что как бы должно привести к снижению стоимости SSA систем. К сожалению только как бы.

Возможность использования нескольких каналов одновременно дает не только возможность увеличить пропускную способность, но является одновременно и средством повышения отказоустойчивости. Благодаря двухпортовости как правило между узлами существует несколько маршрутов, и в случае повреждения или занятости одного сегмента, данные могут быть направлены по альтернативному пути. Не смотря на последовательную природу шины, передача по ней ведется байтами. Для передачи каждый байт преобразуется в 8-ми битовый поток, который и выдается в линию. Для улучшения синхронизирующихся свойств потока, обнаружения и исправления ошибок используется логическое 8B/10B кодирование. Это означает, что 8 бит данных при передаче преобразуются в 10 бит информации. 8 бит определяют 256 возможных значений, а 10 - 1024. Для передачи выбираются значения удовлетворяющие двум правилам: а) в передаваемой последовательности не может быть подряд более 5 одинаковых битов; б) варьирование цифровой суммы (DSV, Digital Sum Variation) не может быть более шести (для вычисления DSV передаваемой единице присваивается значение +1, а нулю -1, внутренний счетчик суммирует значения при кодировании, а разница между его максимальным и минимальным значением есть DSV). Таким образом в 10-ти битной последовательности существует только 268 разрешенных вариантов, 256 из которых используются для кодирования данных, 12 играют роль служебных символов, появление остальных комбинаций сигнализирует о произошедшей ошибке.

В стандарте определены следующие служебные символы:

Передаваемые по SSA кадры содержат как минимум 6 символов данных, заключенных между флагами. Для минимизации накладных расходов, закрывающий флаг одного кадра одновременно является и открывающим для другого, следующего за ним. Кадр может содержать данные или сообщения (для передачи управляющих команд или статуса). Он состоит из четырех полей: управления, адреса, данных, контрольной суммы.


Поле управления всегда первый байт в кадре. Несет информацию о типе передаваемого кадра. Возможны следующие варианты:

Управляющее поле в Privileged и Application кадрах содержит 2-х битовое поле последовательного номера кадра (FSN), позволяющее установить факт потери кадров в результате ошибок.

Поле адреса имеет величину от 2-х до 6-ти байт. Используется для направления кадра к конкретному узлу SSA сети (path) и нужному каналу внутри узла (channel).

Поле данных - полезная нагрузка кадра. Это может быть сообщение размером до 32-х байт, или данные длиной до 128 байт. Отсутствует в управляющих кадрах.

Поле контрольной суммы нетрудно догадаться, содержит контрольную сумму для кадра, давая еще одну возможность обнаружения ошибок. В расчете CRC принимают участие все предшествующие поля кадра.

SSA использует простой механизм управления потоком. Передавая кадр устройство ожидает получения всего двух вариантов ответа:

При обнаружении ошибки при выполнении сквозной маршрутизации, обнаруживший ошибку трансивер, если уже начал передавать поврежденный кадр следующему узлу, должен прекратить передачу, послать сигнал ABORT принимающему порту, а сам пытаться исправить ошибку с помощью ERP (Error Recovery Procedures).

Собственно говоря ERP предназначены для исправления всех ошибок и последствий, которые могут возникнуть в процессе работы и быть обнаружены с помощью 8B/10B кодирования, CRC, неправильного значения FSN, отсутствия подтверждения и др. Рассматривать подробно механизмы их работы не имеет смысла.

Не рассмотренным осталось только отражение SSA на SCSI. Но его мы и не будет рассматривать, так как собственно к самому SSA и его функциональным особенностям это не имеет почти никакого отношения. Основными источниками информации для статьи являлась спецификация SSA и публикация "Serial Storage Architecture" by I. D. Judd, P. J. Murfet, M. J. Palmer в IBM Journal of Research and Development (Volume 40, Number 6, Page 591 (1996)), Если у кого остались вопросы или хотелось бы узнать больше - прошу туда.

 

SpyLOG
  
online dating
HotLog

Hosted by uCoz