Компактный, недорогой и экономичный процессорный Ethernet-мост с использованием плис


PDF версия

С тех пор, как интернет-провайдеры и операторы кабельных сетей начали предоставлять абонентам услуги «видео по запросу» и доступ к интернету, телевидению и голосовой связи по единому широкополосному каналу, OEM-производители разрабатывают все больше систем на базе интернет-протоколов. Сюда входит оборудование для пассивных оптических сетей, системы управления соединениями, IP DSLAM и прочее оборудование для обеспечения доступа к сетям, в том числе на участке «последней мили». В качестве низшего — физического — уровня обычно используются распространенные в настоящее время Ethernet-сети, совмещенные с сетевыми службами, позволяющими контролировать качество соединения (QoS — Quality of Service). В связи с этим стало актуальным объединение коммутирующих Ethernet-узлов с сетевыми процессорами. При этом обычно выбор Ethernet-коммутаторов и сетевых процессоров обусловлен требуемыми от них характеристиками, но без учета возможных сложностей совмещения этих узлов. Таким образом, перед разработчиками встает задача создания «моста», реализующего такое объединение с минимальными затратами. Более того, поскольку оба интерфейса работают на очень высоких скоростях, необходимо учитывать и потребляемую ими мощность. Рассмотрению этих проблем и посвящена статья.

Типичная архитектура, реализующая протокол Ethernet, состоит из Ethernet-коммутатора, который, в свою очередь, состоит из нескольких 10-Гбит интерфейсов, соединенных с набором линейных плат, ядром которых является сетевой процессор (см. рис. 1). Ethernet-коммутатор содержит набор XAUI (Ten) Attachment Unit Interface) портов. Каждый такой порт состоит из четырех 3,125-гигабитных последовательных портов (SERDES), служащих для присоединения линейных модулей, и размещенных на системной или несущей плате.

 

Рис. 1. Типичная архитектура системы, реализующей Ethernet-протокол

Некоторые Ethernet-коммутаторы поддерживают переключение портов, контроль потоков или обработку адресной информации, что соответствует требованиям QoS, но не входит в исходный стандарт Ethernet. Чтобы поддерживать скорости передачи данных порядка 10 Гбит/с, XAUI-порты должны работать со скоростями выше, чем указанные 3,125 Гбит/с на канал. В качестве примера можно привести протокол HiGig+ компании Broadcom, который работает со скоростью 3,75 Гбит/с. При использовании подобных специализированных протоколов запас пропускной способности позволяет разработать специфические средства коммутации, которые оптимально распределяют трафик в сети. Подобные стековые коммутационные протоколы допускают возможность практически неограниченного масштабирования приложений, основанных на протоколе IP.
В линейных платах с сетевыми процессорами зачастую используют SPI4.2 (синхронный периферийный интерфейс) — распространенный скоростной параллельный интерфейс, обеспечивающий связь между сетевыми процессорами, блоками управления трафиком, блоками управления доступом к сети (MAC) и т.д. в дополнение к основной 10-гигабитной полосе. В SPI4.2 используется параллельный 16-разрядный LVDS-интерфейс. Он входит в состав канала состояния (status channel) и предназначен для контроля потока данных. Данные отправляются по SPI4.2-каналу одним пакетом или с помощью пакетной пересылки, включая управляющий заголовок, который описывает каждую подобную передачу. Каждый управляющий заголовок пакета также определяет (задает) SPI4.2-канал, по которому идет передача данных. Заголовки могут использоваться и для разнесения общего потока по нескольким каналам.
Спецификации SPI4.2 предусматривают до 256 каналов на один поток. Очевидно, что протоколы SPI4.2 и XAUI имеют значительные различия как на физическом, так и на логическом уровнях. Поэтому для соединения этих двух протоколов необходим мост.

 

Рис. 2. Структура моста между интерфейсами XAUI и SPI4.2

Канал передачи данных, соединяющий XAUI (или XAUI с повышенной рабочей частотой) с интерфейсом SPI4.2, состоит из четырех основных компонентов: блока последовательных портов XAUI SERDES-, 10-Гбит/с блока MAC, схемы преобразования (PTL — Protocol Translation Logic) и, наконец, блока интерфейса SPI4.2. Управление системой осуществляет встроенный микропроцессор (см. рис. 2) .

 

Экономичные (маломощные) полнофункциональные порты XAUI

Блок XAUI SERDES состоит из четырех каналов, передающих данные со скоростью 3,125 Гбит/с. Несмотря на то, что эта схема использует всего 4 сигнала на передачу и 4 — на прием, она работает очень быстро и потребляет малую мощность. Выбор SERDES, потребляющих порядка 100 мВт на линию, оправдан. При синхронизации каждого из каналов необходимо достичь согласованной передачи данных по всем четырем линиям и суммарной скорости передачи 10 Гбит/с. За это отвечает конечный автомат, входящий в состав XAUI. Подобная структура (логика) является общей для многих PCS (Physical Coding Sublayer) устройств, входящих в SERDES. Данные, передаваемые по четырем каналам со скоростью 10 Гбит/с, преобразуются в XGMII-формат.
XGMII-интерфейс — это 64-битная шина, работающая на частоте 156 МГц при скорости передачи данных 10 Гбит/с, или на частоте 187 МГц при скорости 12 Гбит/с. XGMII реализует стандарт 802.3ae, предназначенный для форматирования данных, поступающих с физического уровня со скоростью 10 Гбит/с, для передачи в 10-гигабитный блок MAC. Идеальным было бы размещение ПЛИС типа FPGA с PCS-блоком вслед за SERDES портами для преобразования  XAUI-данных непосредственно в стандарт XGMII. Это позволило бы сэкономить логические элементы и уменьшить потреб­ляемую мощность.

 

Экономичный (маломощный), конструируемый из готовых компонентов 10-гигабитный блок MAC

Блок MAC получает данные в формате XGMII и извлекает из них Ethernet-пакеты. Это происходит благодаря идентификаторам начала (SOP — Start of Packet) и конца (EOP — End of Packet) пакета. Так как длина Ethernet-данных может быть различна, то и блок MAC должен обеспечивать возможность обработки пакетов различной длины, включая пакеты jumbo, длина которых равна 8 Кбайт. При получении данных их целостность проверяется вычислением контрольной суммы (CRC). Это происходит при приеме данных, когда информация поступает на вход блока MAC. Если контрольная сумма не совпадает, такой пакет отбрасывается и выставляется флаг об ошибке. При этом MAC передает код ошибки. Необходимо также вести статистику приема/передачи данных для организации баз данных, упрощающих управление и контроль системы. Кроме того, 10-гигабитный MAC позволяет фильт­ровать входящие пакеты. Исходя из конечной структуры системы, можно выбрать несколько настроек фильт­рации. Нефильтруемые пакеты, проходящие через мост, записываются с выхода MAC в 64-разрядный FIFO для отправки на вход схемы преобразования (блок PTL).
Хотя 10-гигабитные блоки МАС могут быть реализованы с помощью ПЛИС (FPGA), это потребует свыше четырех тысяч LUT и, следовательно, немалой мощности. В качестве альтернативы можно использовать 10-гигабитный МАС, встроенный в некоторые FPGA, что позволит сократить потребление мощности на 50% и освободить логические элементы FPGA для реализации других блоков.

 

Передача данных между сетевым процессором и SPI4.2

После адресной фильтрации Ethernet-пакеты попадают в 64-разрядные FIFO блока PTL (схемы преобразования). Перед передачей данных на вход SPI4.2 их извлекают из FIFO и преобразуют из 64-разрядного в 128-разрядный формат. FIFO в этом случае используются для управления потоками информации в обоих направлениях (при приеме и передаче). Блок МАС, взаимодействуя с блоком PTL, позволяет временно прекратить работу, если образуется затор трафика (чтобы избежать потери данных из-за переполнения входных буферов). В схеме используется и микропроцессор, с помощью управляющих регистров которого реализовано управление потоками данных.
Управление трафиком со стороны схемы преобразования на этапе передачи данных от МАС осуществляется с помощью стандартных Ethernet-команд X_ON/X_OFF. Затем блок PTL преобразует эти управляющие команды в команды управления состоянием SPI4.2-интерфейса.
У интерфейса SPI4.2 есть две схемы, управляющие потоками данных на линиях. Первая схема требует наличия разрешения на передачу очередного пакета. Для каждого канала происходит обмен контрольной («разрешающей») информацией между принимающей и передающей сторонами. Если в канале образуется «затор» (переполнение буфера) со стороны приемника, он перестает выдавать разрешения передающей стороне до тех пор, пока проблема «затора» не будет решена. Вторая схема — схема с контролем состояния входной очереди. В этом случае состояние входной очереди определяется как «неудовлетворительное» (переполнение очереди) или «удовлетворительное», и когда очередь переполняется — передача данных останавливается. Вторая схема управлением потоком данных применяется чаще, так как ее проще реализовать. Например, мост Lattice Semiconductor SPI4.2 <–> XAUI  использует именно эту схему.
Ниже приводится пример управления информационным потоком, идущим от сетевого процессора по направлению к Ethernet-коммутатору. После формирования пакета сетевой процессор определяет состояние канала передачи данных. Возможные состояния («пустой/заполненный» или «частично заполненный») определяются с помощью контрольных регистров моста или управляющих регистров канала, входящих в состав микропроцессора, и зависят от объема входного FIFO. Если изменение настроек информационного канала не требуется, сетевой процессор инициирует передачу пакета на вход интерфейса SPI4.2.
В процессе транспортировки происходит преобразование данных из 128- в 64-разрядные. Далее пакет попадает во входной FIFO, характеризуемый конфигурируемой шириной (объем FIFO), что необходимо для реализации режима запись — хранение — передача за один цикл. Как только происходит изменение границы очереди, MAC узнает о поступлении нового пакета. Затем МАС проверяет состояние XAUI-интерфейса, и если не выставлено флагов, свидетельствующих о занятости канала, передает пакет.
Управление потоком в обратном направлении имеет схожую структуру, но требует, чтобы ширина выходного FIFO была больше. Это связано с тем, что ширина полосы пропускания у интерфейса SPI4.2 больше, чем у XAUI. К примеру, HiGig+ требует ширины полосы пропускания 12 Гбит/с. Однако SPI4.2  обычно работает с 400…500-МГц памятью DDR, которая реализует полосу пропускания 12,8…16 Гбит/с. Благодаря тому, что схема управления информационным потоком реализуется с помощью логических элементов и встроенной памяти FPGA, можно разработать и еще более сложную схему.

 

Случай разделения общего канала Ethernet

Выше, при рассмотрении блока PTL (схемы преобразования протоколов) предполагалось, что существует всего один канал со скоростью передачи данных 10 Гбит/с. Это верно для большинства мостов «сетевой процессор <–> Ethernet». Однако существует определенная группа устройств, для которых возникает необходимость разделения основного канала со скоростью передачи 10 или 12 Гбит/с на несколько линий связи. К примеру, если Ethernet-коммутатор состоит из двенадцати 1-Гбит/с линий, возникает ситуация, при которой блок PTL должен обеспечить разделение 12-Гбит/с потока на 12 каналов. Другой пример — превышение лимита рабочих линий связи. Если суммарная ширина полосы пропускания 24 линий меньше, чем полоса пропускания объединенного канала (меньше 12 Гбит/с), возможно и 24-канальное деление. Организация дополнительных линий потребует большего количества логических элементов и FIFO. Система должна учитывать и возможность подобной конфигурации. Независимо от того, используется один или несколько каналов, информация, чтобы достичь сетевого процессора, должна поступать с выхода блока PTL на вход SPI4.2-интерфейса.

 

Интерфейс SPI4.2

Интерфейс SPI4.2 считывает или записывает данные в FIFO, и затем с помощью пакетных пересылок передает данные на выход через 16-битные SPI4.2-порты LVDS. Для достижения стабильно высоких скоростей интерфейса SPI4.2 большинство высокопроизводительных сетевых процессоров используют схему динамического выравнивания. Ее особенность — в побитной передаче данных в соответствии с тактовым сигналом. При использовании схемы динамического выравнивания 16 LVDS-портов ввода/вывода могут работать на скоростях вплоть до 1 Гбит/с каждый. При этом максимальная суммарная полоса пропускания составит 16 Гбит/с. Ввиду того, что данный интерфейс работает на таких больших скоростях, он зачастую потребляет несколько Вт (без учета тысяч LUT в FPGA). Как и в случае 10-гигабитного блока MAC, здесь эффективнее использовать FPGA со встроенным SPI4.2-интерфейсом. Данный подход позволит сохранить тысячи LUT и уменьшить потребляемую мощность приблизительно до одного ватта.

 

Выводы и заключение

Мост между интерфейсами XAUI и SPI4.2 — необходимый элемент многих коммутирующих Ethernet-систем. Преимущество применения FPGA состоит в возможности обеспечить общую гибкость, необходимую для работы с произвольным числом сетевых процессоров и Ethernet-коммутаторов, в возможности разработки настраиваемых мостовых схем, позволяющих группировать различные потоки Ethernet-данных, а также объединять несколько мостов в одном блоке. Тем не менее, поскольку при разработке цена всегда является одним из ограничивающих параметров, важно, чтобы стоимость, энергопотреб­ление и занимаемая площадь были как можно меньше.

 

Рис. 3. Архитектура FPGA LatticeSCM FPGA

В этом случае правильнее использовать FPGA со встроенными блоками, реализующими необходимые интерфейсы, например микросхемы семейства LatticeSCM FPGA, которые содержат готовые блоки, реализующие 10-гигабитный MAC и интерфейс SPI4.2 (см. рис. 3). При этом на FPGA остается достаточно свободных ресурсов и памяти для реализации мостовой схемы. Если требуется построить одноканальный мост с SPI4.2 на XAUI (или подобный протокол на основе Ethernet), то схему можно реализовать на недорогой и экономичной микросхеме FPGA LatticeSCM15 в компактном 256-выводном корпусе BGA размером 17 × 17 мм.

Оставьте отзыв

Ваш емейл адрес не будет опубликован. Обязательные поля отмечены *