Введение

Технология высокоскоростного межсоединения

Архитектура RapidIO — это высокопроизводительная технология электрического соединения с коммутацией пакетов. Она поддерживает передачу сообщений, операции чтения/записи и обеспечение когерентности кэша. Основываясь на отраслевых стандартных электрических спецификациях, таких как спецификации для Ethernet, RapidIO может использоваться для межсоединения чип-чип, плата-плата и шасси-шасси.

История

Протокол RapidIO был первоначально разработан компаниями Mercury Computer Systems и Motorola (Freescale) как замена проприетарной шине RACEway, разработанной Mercury, и шине PowerPC от Freescale. Торговая ассоциация RapidIO была создана в феврале 2000 года и объединяла OEM-производителей телекоммуникационного и запоминающего оборудования, а также компании, специализирующиеся на FPGA, процессорах и коммутаторах.

Беспроводная инфраструктура

Ткани RapidIO используются в сотовой инфраструктуре сетей 3G, 4G и LTE, при этом миллионы портов RapidIO установлены в беспроводных базовых станциях по всему миру. Изначально ткани RapidIO были разработаны для соединения различных типов процессоров от разных производителей в рамках одной системы. Эта гибкость обусловила широкое распространение RapidIO в оборудовании беспроводной инфраструктуры, где требуется объединять разнородные процессоры, включая DSP, FPGA и коммуникационные процессоры, в тесно интегрированную систему с низкой задержкой и высокой надежностью.

Центр обработки данных

Системы аналитики центров обработки данных и высокопроизводительных вычислений (HPC) были развернуты с использованием RapidIO 2D Torus Mesh Fabric, обеспечивающей высокоскоростной универсальный интерфейс между системными модулями. Это позволяет приложениям, которым требуется высокая пропускная способность и низкая задержка, эффективно обмениваться данными между узлами. Унифицированная структура RapidIO 2D Torus реализована в виде тороидальной кольцевой конфигурации, соединяющей до 45 серверных модулей. Благодаря этому она способна обеспечивать соединения со скоростью 5 Гбит/с на линию в каждом направлении к северному, южному, восточному и западному соседям. Это позволяет системе соответствовать требованиям многих уникальных приложений HPC, где необходим эффективный локальный трафик. Кроме того, благодаря использованию открытой модульной платформы центра обработки данных и вычислительной платформы, гетерогенная система HPC продемонстрировала низкую задержку RapidIO, что позволило реализовать аналитику в реальном времени. В марте 2015 года был представлен коммутатор верхнего уровня стойки, призванный расширить применение RapidIO в основных приложениях центров обработки данных.

Космическая промышленность

Интерконнект или "шина" – одна из ключевых технологий в проектировании и разработке авионики космических аппаратов, определяющая их архитектуру и уровень сложности. Существует множество устоявшихся архитектур, которые до сих пор используются благодаря своей зрелости. Эти системы достаточны для определенных архитектурных потребностей и требований. Однако для миссий нового поколения требуется более производительная архитектура авионики, возможности которой превосходят существующие архитектуры. Перспективным решением для проектирования и разработки таких архитектур является использование существующих коммерческих протоколов, способных обеспечивать высокую скорость передачи данных. В 2012 году рабочая группа по стандарту межсоединений космических аппаратов нового поколения (NGSIS) выбрала RapidIO в качестве основы для стандартных коммуникационных интерконнектов, предназначенных для использования в космических аппаратах. NGSIS – это комплексная работа по стандартизации, включающая разработку RapidIO версии 3.1 и разработку аппаратных стандартов на уровне блоков в соответствии с VITA 78, известных как SpaceVPX или High ReliabilityVPX. Комитет по требованиям NGSIS разработал обширные критерии, включающие 47 различных параметров для интерконнекта NGSIS. Независимые исследования, проведенные компаниями-членами NGSIS, продемонстрировали превосходство RapidIO над другими коммерческими протоколами, такими как InfiniBand, Fibre Channel и 10G Ethernet. В результате группа пришла к выводу, что RapidIO обеспечивает наилучшее общее решение для межсоединений в космических аппаратах нового поколения.

Плана PHY

Дорожная карта RapidIO синхронизирована с развитием Ethernet PHY. Спецификации RapidIO для каналов со скоростью 50 Гбит/с и выше находятся в стадии изучения.

Пакеты

Каждый пакет содержит два значения, управляющие обменом на физическом уровне для этого пакета. Первое – это идентификатор подтверждения (ackID), уникальное значение, специфичное для канала связи, размером 5, 6 или 12 бит, используемое для отслеживания пакетов, обмененных по каналу. Пакеты передаются с последовательно возрастающими значениями ackID. Поскольку ackID специфичен для канала, он не защищен CRC, а протоколом. Это позволяет ackID изменяться на каждом канале, через который он проходит, в то время как CRC пакета может оставаться постоянной проверкой целостности пакета от начала до конца. При успешном получении пакета он подтверждается с использованием ackID этого пакета. Передатчик должен сохранять пакет до тех пор, пока не получит успешное подтверждение от партнера по каналу связи. Второе значение – физический приоритет пакета. Физический приоритет состоит из бита идентификатора виртуального канала (VC), битов приоритета и бита критического потока запросов (CRF). Бит VC определяет, идентифицируют ли биты приоритета и CRF виртуальный канал от 1 до 8, или используются в качестве приоритета внутри виртуального канала 0. Виртуальным каналам назначаются гарантированные минимальные полосы пропускания. Внутри виртуального канала 0 пакеты с более высоким приоритетом могут обгонять пакеты с более низким приоритетом. Ответные пакеты должны иметь физический приоритет выше, чем у запросов, чтобы избежать взаимной блокировки. Вклад физического уровня в пакеты RapidIO – это 2-байтовый заголовок в начале каждого пакета, включающий ackID и физический приоритет, а также конечное 2-байтовое значение CRC для проверки целостности пакета. Пакеты размером более 80 байт также содержат промежуточный CRC после первых 80 байт. За одним исключением, значение (значения) CRC пакета выполняет функцию проверки целостности от начала до конца.

Символы управления

Символы управления RapidIO могут быть отправлены в любое время, в том числе внутри пакета. Это обеспечивает RapidIO минимальную возможную задержку в канале управления, позволяя протоколу достигать высокой пропускной способности с использованием буферов меньшего размера, чем в других протоколах. Символы управления используются для разграничения пакетов (начало пакета, конец пакета, Stomp), подтверждения пакетов (Подтверждение пакета, Пакет не подтвержден), сброса (Сброс устройства, Сброс порта) и распространения событий в системе RapidIO (Символ управления многоадресным событием). Символы управления также используются для управления потоком данных (Повтор, Статус буфера, Обратное давление виртуальной выходной очереди) и восстановления после ошибок. Процедура восстановления ошибок выполняется очень быстро. Когда приемник обнаруживает ошибку передачи в принятом потоке данных, он инициирует отправку символа управления "Пакет не принят" соответствующим передатчиком. Получив символ управления "Пакет не принят", партнер по каналу связи прекращает передачу новых пакетов и отправляет символ управления "Запрос связи/Статус порта". Символ управления "Ответ на связь" указывает ackID, который следует использовать для следующего передаваемого пакета. После этого передача пакетов возобновляется.

Последовательность IDLE

IDLE-последовательность используется при инициализации канала связи для оптимизации качества сигнала. Она также передается, когда в канале связи отсутствуют какие-либо управляющие символы или пакеты для передачи.

Транспортный слой

Каждая конечная точка RapidIO однозначно идентифицируется идентификатором устройства (deviceID). Каждый пакет RapidIO содержит два идентификатора устройства. Первый – это идентификатор получателя (destID), указывающий, куда следует направить пакет. Второй – идентификатор отправителя (srcID), указывающий, откуда пакет был отправлен. Когда конечная точка получает запрос RapidIO, требующий ответа, ответный пакет формируется путем замены идентификатора отправителя (srcID) и идентификатора получателя (destID) в запросе. Коммутаторы RapidIO используют идентификатор получателя (destID) входящих пакетов для определения выходного порта или портов, которым следует переслать пакет. Как правило, destID используется для индексации в массив управляющих значений. Операция индексации выполняется быстро и с минимальными затратами. Коммутаторы RapidIO поддерживают стандартную модель программирования таблицы маршрутизации, что упрощает управление системой. Транспортный уровень RapidIO поддерживает любую топологию сети, от простых деревьев и сеток до n-мерных гиперкубов, многомерных торов и более сложных архитектур, таких как сети с перепутанными связями. Транспортный уровень RapidIO обеспечивает аппаратную виртуализацию (например, конечная точка RapidIO может поддерживать несколько идентификаторов устройств). Части идентификатора получателя (destID) каждого пакета могут использоваться для идентификации конкретных компонентов виртуального оборудования внутри конечной точки.

Логический слой

Логический уровень RapidIO состоит из нескольких спецификаций, каждая из которых определяет форматы пакетов и протоколы для различных семантик транзакций.

Логические вводы и выводы

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

Сообщения

Спецификация обмена сообщениями определяет "Дверные звонки" и "Сообщения". "Дверные звонки" передают 16-битный код события. "Сообщения" передают до 4 КиБ данных, сегментированных на до 16 пакетов, каждый из которых имеет максимальный размер полезной нагрузки 256 байт. Для каждого запроса "Дверного звонка" и "Сообщения" необходимо отправлять ответный пакет. Значение статуса в ответном пакете указывает на завершение, ошибку или повторную попытку. Статус "повторная попытка" требует от инициатора запроса повторно отправить пакет. Логический уровень обработки повторных попыток позволяет нескольким отправителям совместно использовать ограниченное число ресурсов приема, обеспечивая высокую пропускную способность при низком энергопотреблении.

Контроль потока

Спецификация управления потоком определяет форматы пакетов и протоколы для простых операций управления потоком XON/XOFF. Пакеты управления потоком могут инициироваться коммутаторами и конечными точками. Прием пакета управления потоком XOFF приостанавливает передачу одного или нескольких потоков до получения пакета управления потоком XON или истечения времени ожидания. Пакеты управления потоком также могут использоваться как универсальный механизм для управления системными ресурсами.

CC-NUMA

Спецификация глобальной разделяемой памяти определяет форматы пакетов и протоколы для функционирования кеш-когерентной системы разделяемой памяти по сети RapidIO.

Поток данных

Спецификация Data Streaming поддерживает обмен сообщениями с использованием различных форматов пакетов и семантики, отличных от спецификации Messaging. Форматы пакетов Data Streaming поддерживают передачу до 64 КБ данных, сегментированных на несколько пакетов. Каждая передача связана с классом обслуживания и идентификатором потока, что обеспечивает возможность организации тысяч уникальных потоков между конечными точками. Спецификация Data Streaming также определяет форматы и семантику пакетов управления потоком расширенного заголовка для управления производительностью в клиент-серверной системе. Каждый клиент использует пакеты управления потоком расширенного заголовка, чтобы информировать сервер об объеме работы, который можно ему отправить. Сервер отвечает пакетами управления потоком расширенного заголовка, использующими протоколы XON/XOFF, ограничения скорости или кредитные системы для контроля скорости и объема работы, отправляемой клиентом на сервер.

Инициализация системы

Системы с известной топологией могут быть инициализированы специфическим для системы способом, не нарушая совместимость. Спецификация инициализации системы RapidIO поддерживает инициализацию системы, когда топология системы неизвестна или динамически изменяется. Алгоритмы инициализации системы обеспечивают поддержку избыточных хостов, что исключает наличие единой точки отказа в процессе инициализации. Каждый системный хост рекурсивно просматривает структуру RapidIO, захватывая владение устройствами, назначая идентификаторы устройств конечным точкам и обновляя таблицы маршрутизации коммутаторов. В случае конфликта владения, хост с большим идентификатором устройства выигрывает. "Проигравший" хост освобождает владение своими устройствами и прекращает попытки, ожидая "победителя". "Победитель" завершает перечисление, включая захват владения устройствами "проигравшего" хоста. После завершения перечисления "победитель" освобождает владение устройствами "проигравшего" хоста. "Проигравший" хост затем обнаруживает систему, считывая таблицы маршрутизации коммутаторов и регистрируясь на каждой конечной точке для получения информации о конфигурации системы. Если "победитель" не завершит перечисление в течение заданного времени, "проигравший" хост определяет, что "победитель" не смог выполнить инициализацию, и завершает перечисление самостоятельно. Перечисление системы поддерживается в Linux подсистемой RapidIO.

Управление ошибками

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

Программное обеспечение

Поддержка RapidIO, не зависящая от конкретного процессора, реализована в ядре Linux.

Конкурирующие протоколы

PCI Express ориентирован на рынок "хост-периферия", в отличие от встраиваемых систем. В отличие от RapidIO, PCIe не оптимизирован для одноранговых сетей с несколькими процессорами. PCIe идеально подходит для связи между хостом и периферийными устройствами. PCIe не так хорошо масштабируется в больших многопроцессорных одноранговых системах, поскольку базовое предположение PCIe о существовании "корневого комплекса" создает проблемы с отказоустойчивостью и управлением системой. Ethernet – еще одна альтернативная технология межсоединений. Ethernet представляет собой надежный подход к соединению компьютеров на больших географических территориях, где топология сети может неожиданно меняться, используемые протоколы могут изменяться, а задержки связи велики. Для решения этих задач системы на основе Ethernet требуют значительных вычислительных ресурсов, программного обеспечения и памяти во всей сети для реализации протоколов управления потоком данных, передачи данных и маршрутизации пакетов. RapidIO оптимизирован для энергоэффективной, малозадержной связи между процессорами в отказоустойчивых встраиваемых системах, охватывающих географические области менее одного километра. SpaceFibre является конкурирующей технологией для космических приложений. Time Triggered Ethernet – конкурирующая технология для более сложных межсоединений (VPX) и магистральных приложений в космосе (пусковые установки и интегрированная авионика, рассчитанная на присутствие человека).