Обзоры
Последовательный протокол из последовательной Европы
0

Последовательный протокол из последовательной Европы

     Совсем недавно бушевавшие страсти по USB, похоже, улеглись. Революции не свершилось — ну появился ряд устройств, использующих USB-интерфейс, улучшилась поддержка USB в операционных системах и… собственно, все. Присущая USB "узкоориентированность" не позволяет превратить ее в "шину всея компьютеров" — для многих приложений пропускная способность USB явно недостаточна, при этом топология типа звезда с аналогом обычного хаба (но не коммутатора) вообще сводит на нет все прелести единой последовательной шины, по крайней мере, в отношении производительности. Более перспективный интерфейс FireWire (IEEE 1394), несмотря на повышение пропускной способности одного соединения, также принципиально не решает проблемы производительности всей системы в целом. Существующие же ориентированные на коммутируемые сети протоколы (FibreChanel или ATM, например) вообще не могут претендовать на интенсивное использование в массовых компьютерах по очевидной причине — недоступной покупателям заоблачной стоимости реализаций.

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

     IEEE 1355-1995

     Именно так называется стандарт главного законодателя мод в мире электроники (IEEE — Институт инженеров электротехники и электроники). Неудивительно, что и международная организация стандартизации ISO также приняла IEEE 1355 за основу единого стандарта ISO/IEC 14575. На человеческом языке расшифровка этих ничего не означающих аббревиатур звучит лаконично и понятно: "Масштабируемое гетерогенное последовательное соединение низкой стоимости с малым временем задержки для создания параллельных вычислительных систем" (перевод не дословный). Вероятнее всего, что кажущаяся отстраненность от потребностей массового рынка персональных вычислений (согласитесь, что параллельные ЭВМ и ПК — вещи из совершенно разных миров) породила сегодняшнюю неизвестность этой очень удачной разработки. На самом деле 1355 действительно способен сыграть первые роли в ПК новых поколений (в отличие от второстепенных взаимодополняющих FireWire и USB) — доказательству этого утверждения и будет в дальнейшем уделено особое внимание.

     В жестком мире больших денег, как известно из истории, значительные изобретения и открытия развиваются только при условии поддержки значительными персонами… А уж если речь идет о нестабильном и изменяющемся каждую секунду мире компьютинга, для выживания идее необходима очень мощная опора в лице "сильных мира сего". Предмету нашего обсуждения в этом плане очень повезло — пусть в перечне корпоративных членов международной Ассоциации 1355 отсутствуют названия компаний, гарантирующие беспроигрышное и быстрое "заражение идеей" разработчиков из разных стран (как было с USB), без "громких имен" здесь не обошлось: Bull, STMicroelectronics, Dornier, Thomson-Marconi, CERN. С точки зрения живучести стандарта сегодняшняя "эксклюзивно-высокотехничная" ориентация 1355 на самом деле очень выгодна: по крайней мере, идее не будет суждено погибнуть под руинами очередной скупленной в рыночных войнах компании.

     1355 — это так просто!

     На сегодняшний день стандарт IEEE 1355 представляет собой детальное описание ряда очень простых и легковесных протоколов последовательного обмена. В основу основ идеи 1355 положено понятие FIFO (First In First Out — на инженерном сленге "первым вошел — первым вышел") — буферной области памяти, допускающей одновременный доступ к ней двух устройств. В соответствии с определением, записанные одним устройством в FIFO в некоторой последовательности данные читаются вторым устройством в той же последовательности.

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

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

     Разработчики 1355 усовершенствовали идею FIFO-обмена, используя пару FIFO-буферов в каждом устройстве (рис. 2),

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

     Второй основной элемент протокола 1355 — пакетная организация обмена с очень простым и компактным заголовком пакета и обязательным терминатором, или завершающим символом (рис. 3). Так как 1355 — достаточно универсальный протокол, при его использовании может осуществляться обмен данными между разными процессами, выполняющимися участниками обмена. Заголовок пакета (1 или 2 байта) содержит идентификатор (или адрес) процесса, которому адресованы данные (процесс-получатель). Терминатор предназначен для автоматического освобождения канала после окончания процесса передачи данных, что обеспечивает беспрепятственный доступ к каналу другим процессам (рис. 4). Наличие терминатора как гарантирует эффективное использование канала связи, так и исключает необходимость в фиксировании длины пакета.

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

     Но все эти достоинства кажутся незначительными по сравнению с главной "изюминкой" 1355 — способностью и приспособленностью протокола к перенаправлению пакетов истинному адресату. Этот процесс, называемый маршрутизацией (routing), предусматривает отправление "чужого" пакета, полученного некоторым устройством, получателю, которому этот пакет адресован.

     Несмотря на кажущуюся простоту заголовка пакета 1355, информации в нем достаточно для осуществления маршрутизации даже чуть ли не полностью аппаратным маршрутизатором-переключателем (routing switch), а очень низкие потребности в вычислительной мощности и простота протоколов позволяют реализовать полноценный многопортовый маршрутизатор в однокристальном исполнении. Например, STMicroelectronics производила микросхему маршрутизатора STC104, уступившую место более производительным моделям и обеспечивавшую подключение до 32-х 1355-устройств со скоростью обмена 100 Mbps (общая пропускная способность около 300 MBps, или до 200 млн. пакетов в секунду).

     Третий основной элемент 1355 — так называемые символы управления потоком (FCC — Flow Control Characters) — непосредственно связан с маршрутизирующими возможностями протокола. Способность быстро передавать очень короткие командные пакеты и использование модели FIFO позволяет устройствам, участвующим в обмене, соблюдать простой набор правил, обеспечивающих высокую эффективность как передачи данных, так и маршрутизации.

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

     Вот теперь самое время разобраться с загадочным терминатором — символом окончания пакета 1355. Каким должно быть его значение, чтобы он отличался от передаваемых в пакете данных, которые, очевидно, могут быть любыми? Никакой тайны здесь нет: разработчики протокола пошли на небольшой компромисс с производительностью, представив каждый передаваемый по интерфейсу 1355 байт 9-битовым словом. Вот этот самый "лишний" бит и хранит сигнал "конец пакета". Такое решение незначительно снижает скорость передачи данных по последовательным шинам за счет избыточности (все-таки на каждые 8 байт данных передается один как бы лишний), но эта потеря в полной мере компенсируется простотой контроллера 1355, очень высокими скоростями передачи (до 1 Gbps) и коммутирующими способностями протокола.

     Масштабирование сетей 1355

     Главное преимущество 1355 обеспечивается быстрыми алгоритмами управления обменом за счет FCC, исключительной простотой реализации необходимого оборудования, выбранной реализацией физического уровня — последовательными шинами, и заключается в уникальной способности к масштабированию.

     Наращивание количества устройств в одной сети (масштабирование) — проблема очень серьезная и особенно усложняющаяся требованием сохранения высоких показателей производительности. Соответственно, возможные решения такой проблемы связаны с громадными финансовыми затратами. Эти утверждения справедливы и для сетей, основанных на Ethernet-технологии, и для ATM-сетей. 1355 в подобном случае является, наверное, единственным исключением из правил: однокристальные, дешевые и многопортовые маршрутизаторы пакетов этого протокола дают практически неисчерпаемые возможности по наращиванию сети без деградации производительности и ощутимого увеличения времени задержки при передаче пакетов. Так, для получения полностью коммутируемого 64-портового маршрутизатора необходимо всего 6 дешевых микросхем типа упомянутой выше STC104 (рис. 6).

     В подобной структуре важен один показатель — максимальное расстояние между передатчиком пакета и его приемником, измеренное в так называемых хопах (hop — количество маршрутизаторов, через которые проходит пакет от передатчика к приемнику), и на техническом сленге именуемое диаметром сети. Элементарные рассуждения показывают, что для приведенной на рис. 6 сети диаметр равен 3: пакет, посланный, например, на порт 1 и адресованный устройству на порте 33, пройдет через 3 маршрутизатора. Диаметр сети определяет общее время задержки "путешествующего" пакета, а этот показатель может быть очень критичным при проектировании как распределенных суперкомпьютеров, так и в более приземленных мультимедийных системах.

     Примеры реально существующих систем, основанных на интерфейсах 1355, вообще способны поразить воображение: так, в рамках проекта EUROPRO с помощью коммутируемой сети 1355 создан 3000-процессорный сверхвычислитель. О пропускной способности сети автору ничего не известно — эти данные скромно умалчиваются, но из доступной информации впечатляет хотя бы упоминание о том, что каждый двухпроцессорный модуль EUROPRO подключен к порту коммутатора по последовательному каналу со скоростью передачи 1 Gbps. Трудно сказать, возможно ли решение подобной задачи с использованием каких-либо других протоколов и интерфейсов, но очевидно, что попытка создать EUROPRO на базе, например, ATM-сети заметно отразилась бы на финансовом положении основных инвесторов проекта — Bull, THOMSON-CSF, GEC-MARCONI.

     Устройства 1355

     Несмотря на малую известность, существует большое разнообразие реализаций контроллеров и маршрутизаторов, соответствующих стандарту IEEE 1355-1995. Самыми примечательными, как всегда, являются представители абсолютно различных семейств — низкопроизводительного (100—200 Mbps) и быстрого (>1 Gbps). В области выпуска "медленных" 1355-устройств лидируют англичане: у компании 4Links можно приобрести "прошивку" самой дешевой FPGA (микросхема программируемой логики) компании Xilinx (2000 логических вентилей, стоимость в партиях — менее $3), реализующую полнодуплексный 100-мегабитовый контроллер 1355 с поддержкой режима hot-plug (допускает подключение устройств в сеть "на лету"), а также готовые платы 1355-контроллеров для ПК семейства IBM PC.

     Вариант 4Links привлекателен не только очень низкой стоимостью реализации и высоким быстродействием, но и полностью "зашитым" механизмом управления потоком с помощью FCC, что превращает процесс написания драйверов для любой операционной системы в рутинное занятие, не требующее особо творческих изысканий. Кроме того, на этом примере наглядной становится и непревзойденная простота заложенных в 1355 идей: по сравнению со здравым минимализмом детища 4Links USB-контроллеры, способные работать со скоростями 12 Mbps в симплексном режиме и требующие для реализации "всего-навсего" 10 тыс. логических вентилей, кажутся настоящими монстрами… При исполнении физического уровня в виде варианта токовой петли (фактически это одна копеечная микросхема, например, от Maxim) можно получить этакую "ATM для бедных" — с длиной сегмента в несколько десятков метров, производительностью 200 Mbps (это все-таки дуплекс) и на практике превосходящую дорогостоящую ATM 25 MBps.

     Изделия из высокопроизводительного сектора 1355, несомненно, более "оторваны от реалий" мира ПК, но… Микросхема RCube, разработанная в университете имени супругов Кюри (Париж) и серийно выпускаемая компанией Tachys Technologies, может превратить привычный нам x86-компьютер в агрессивного соперника SGI Onyx. 16-портовый cross-bar-маршрутизатор, допускающий одновременное существование восьми полноценных одногигабитовых дуплексных (!) каналов передачи данных с суммарной полосой пропускания 640 MBps между восемью парами устройств и гарантирующий время задержки пакетов не более 150 нс, выполненный на маленьком кристалле по "навсегда устаревшей технологии" 0,5 мкм, — это, можно сказать, СОБЫТИЕ. При крупносерийном производстве подобные "чипсеты" наверняка будут стоить несоизмеримо дешевле своих PC-собратьев (в подтверждение этому нужно заметить, что RCube выпускается в очень дешевом 208-выводном корпусе QFP). Высокоскоростные контроллеры 1355 также не блещут сложностью — дуплексный одногигабитовый чип той же компании Tachys упакован всего в "100-ногий" корпус QFP-100, функционально повторяет своего "медленного" собрата от 4Links и размещен на кристалле площадью… 0,2 мм2.

     О будущем…

     Как всегда, размышления на эту тему приводят к результатам грустным. "Раскрутить можно и медведя" — фраза, оказывается, справедливая не только в шоу-бизнесе… Несравнимые по сложности и возможностям USB и FireWire уже заняли свои места на коммерческой арене, и заставить "подвинуться" кого-либо из "группы поддержки" этих технологий Ассоциации 1355 не под силу. Зато подкупающая простота реализации контроллеров и коммутаторов 1355 открывает интересные возможности перед чудом уцелевшими постсоветскими производителями полупроводников — раз англичане и французы могут на 0,5-микронном оборудовании создавать вещи, подобные RCube, то почему это невозможно делать здесь? По крайней мере, реальную, дешевую и производительную альтернативу FastEthernet (с возможностями ATM) для сектора SOHO создать вполне по силам даже в наших удивительных условиях.


Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: