Интегрированные сетевые процессоры компании Cavium Networks


PDF версия

В статье представлены недорогие микроконтроллеры (МК) с сетевой поддержкой и высокопроизводительные интегрированные процессоры сетевых сервисов семейств Econa и Octeon компании Cavium Networks — одного из мировых лидеров в создании высокоинтегрированных систем на кристалле, ориентированных на широкий спектр интеллектуальных сетевых приложений.

В новом веке на рынок интегрированной сетевой микроэлектроники, где до этого безраздельно господствовали такие гиганты как Intel и Freescale Semiconductor, выходят молодые компании, нацеленные, быть может, на более узкий спектр приложений, но амбициозно претендующие на ведущие роли в своем спектре. В числе таких компаний не последнее место занимает Cavium Networks, поставляющая высокоинтегрированные многоядерные процессоры сетевых сервисов. Расположение в Кремниевой долине изначально предполагало ориентацию на самую современную микроэлектронную технологию, а близость к штаб-квартире MIPS Technologies в соседнем Саннивейле позволяет думать, что неслучайной была ставка на процессорные ядра архитектуры MIPS в основных продуктах фирмы. Cavium до сих остается верной этой архитектуре в своем самом мощном и представительном семействе интегрированных сетевых процессоров Octeon, но покупка в 2008 г. компании Star Semiconductor — производителя систем на базе архитектуры ARM, позволила диверсифицировать продукцию семейством более дешевых интегрированных МК Econa с ARM-ядрами.

Сетевые микроконтроллеры семейства Econa

Семейство Econa составляют универсальные МК средней производительности. Семейство делится на три подсемейства, два из которых — CNS1xxx и CNS3xxx — снабжены несколькими фирменными, нетрадиционными для такого рода приборов, аппаратными блоками, придающими им выраженную сетевую направленность и обеспечивающими уникальные возможности в сетевых применениях. Сетевые подсемейства МК Econa ориентированы главным образом на применение в точках подключения к сетям абонентов уровня небольшого офиса SOHO (Small Office/Home Office), включая беспроводные сети.
Все модели подсемейства Econa CNS1xxx базируются на процессорном ядре ARM922, работающем на частотах до 250 МГц и снабженном кэшами инструкций и данных L1 объемом по 16 Kбайт. Все приборы подсемейства CNS1xxx имеют универсальные микроконтроллерные возможности:
– различные таймеры, в том числе, сторожевой (watch dog);
– контроллер динамической памяти DDR2 SDRAM;
– контроллер статической памяти SMC (Static Memory Controller);
– контроллер 32-разрядной шины PCI, работающей в режиме host на частоте до 66 МГц;
– интерфейс PCMCIA;
– контроллер USB 2.0 со встроенным трансивером, способный обслуживать в режиме host два устройства на скоростях low, full и high;
– адаптер UART.
Повышенная производительность в сетевых приложениях обеспечивается особой фирменной организацией внутренних шин и введением в состав МК специальных аппаратных блоков:
– одного-двух MAC-контроллеров Ethernet для скоростей 10/100 Мбит/с, а в некоторых моделях до 1 Гбит/с;
– встроенного неблокирующего механизма пакетной коммутации PSE (Packet Switch Engine) с фильтрацией пакетов и таблицей коммутации на 1 K адресов, работающего на скоростях до 1 Гбит/с;
– блока аппаратной трансляции сетевых адресов HNAT (Hardware Network Address Translation);
– механизма обработки пакетов PPE (Packet Processing Engine) с поддержкой протоколов IP, TCP и UDP;
– механизма проверки контекста CIE (Context Inspection Engine) на прикладном уровне.
Особенности отдельных моделей подсемейства CNS1xxx отражены в таблице 1.

Таблица 1. Особенности моделей подсемейства Econa CNS1xxx

Модель

Разрядность шины DDR

Интерфейсы MAC Ethernet

CIE

USB 2.0

PCI 2.2 Host

Корпус

CNS1102

16 / 32

2 × RGMII

2 устройства

BGA-304

CNS1104

16

2 × MII

2

LFBGA-257

CNS1105

16 / 32

2 × MII

2

1 устройство

BGA-304

CNS1105

16

1 × RGMII

2

2 устройства

PQFP-208

CNS1202

16 / 32

2 × RGMII

+

2

3 устройства

BGA-304

CNS1205

16

2 × MII

+

2

3 устройства

BGA-304

 

Типичные применения МК подсемейства CNS1xxx: точки доступа в беспроводные сети, маршрутизаторы SOHO, в том числе со средствами сетевой защиты, и широкополосные шлюзы VDSL (Very-high data rate Digital Subscriber Line). На рисунке 1 показан пример реализации на МК CNS1102 маршрутизатора SOHO с поддержкой проводных и беспроводной сетей.
Более производительное подсемейство Econa CNS3xxx базируется на ядре ARM11 и включает всего две модели: одноядерную CNS3410 и двуядерную CNS3420. На рисунке 2 представлена упрощенная структура МК CNS3xxx (присутствующее только в двуядерной модели второе процессорное ядро показано пунктиром).

 

Рис. 1. Маршрутизатор SOHO с WLAN на основе МК CNS1102

Основные характеристики МК подсемейства CNS3xxx:

– рабочие частоты ядер ARM11 — 300…600 МГц;
– объемы кэшей инструкций и данных L1 — по 32 Kбайта;
– объем кэша L2 (общего для обоих ядер) — 256 Kбайт;
– разрядность шины памяти DDR — 16/32 разряда;
– 2D графический сопроцессор GE (Graphic Engine);
– механизм подсчета контрольных сумм XOR для дисковых массивов RAID;
– 2 контроллера USB 2.0 с встроенными трансиверами (скорости low/full/high);
– 2 контроллера PCIe ×1 с встроенными трансиверами;
– 2 контроллера SATA с встроенными трансиверами;
– 4 адаптера SPI, адаптеры I2C и I2S с режимом TDM;
– адаптер flash-карт MMC / SD;
– встроенный адаптер UART;
– контроллер жидкокристаллического дисплея;
– потребляемая мощность не более 2,2 Вт со средствами энергосбережения;
– корпус — PBGA-484 (HSBGA-484 для расширенного диапазона температур).

Специфические сетевые возможности МК подсемейства:

– 3 MAC-контроллера Ethernet с интерфейсами 1×GMII/RGMII + 2×RGMII;
– встроенный пакетный коммутатор PSE с HNAT;
– механизм проверки контекста CIE;
– сопроцессор безопасности SE (Security Engine) с поддержкой IPSec и SSL;
– пакетный сопроцессор PPE для обработки пакетов уровней 2–4;
– поисковый блок PMU (Pattern Matching Unit).
Встроенные блоки PSE, HNAT, PPE и PMU обеспечивают подсемейству CNS3xxx суммарную пропускную способность (в том числе с коммутацией коротких IP-пакетов длиной 64 байта) не ниже 2 Гбит/с, а благодаря сопроцессору SE она удерживается на уровне 1,7 Гбит/с даже при задействовании протоколов безопасности IPSec и SSL. Наличие CIA позволяет эффективно реализовать разнообразные средства сетевой безопасности на прикладном уровне, такие как антивирусная защита и фильтры спама.
Старшее подсемейство МК Econa находит применение в тех же областях, что и младшее, если требуется повышенная производительность. Кроме того, оно расширяет сферы применения и уже используется в сетевых дисковых серверах NAS (Network Attached Storage), аудио- и видеошлюзах, устройствах сетевой информационной безопасности, нетбуках и смартбуках, а также многих других встраиваемых приложениях. Пример реализации резидентного шлюза и медиасервера на основе МК Econa CNS3xxx показан на рисунке 3.

Рис. 2. Структура МК CNS34xx
Рис. 3. Резидентный шлюз и медиа-сервер на основе МК CNS3xxx
Многоядерные процессоры сетевых сервисов Octeon

Процессоры сетевых сервисов семейства Octeon — «визитная карточка» компании Cavium — уже имеют свою историю: на смену первым процессорам под брендом Octeon пришли два следующих поколения приборов этого семейства: Octeon Plus и Octeon II. Процессоры семейства Octeon ориентированы на интеллектуальные сетевые приложения, предполагающие при реализации самых разно­образных сетевых сервисов суммарную пропускную способность до 40 Гбит/с. Интеллектуальность семейству обеспечивают 64 разрядные процессорные ядра с архитектурой MIPS64 release 2, а высокая производительность достигается как за счет очень большого числа таких ядер (до 32), так и за счет функционального разнообразия сопроцессоров и специализированных аппаратных блоков, реализующих типовые функции сетевых сервисов.
Процессоры семейства Octeon — приборы сверхвысокой интеграции, причем степень интеграции растет от поколения к поколению. Но и внутри каждого поколения Cavium предлагает несколько подсемейств приборов, функционально ориентированных на различные сетевые применения.
Представление о процессорах поколения Octeon Plus дают рисунки 4 и 5, на которых изображены обобщенные структуры процессоров двух старших подсемейств этого поколения CN57xx и CN58xx, отличающихся наборами сопроцессоров, аппаратных ускорителей и контроллеров ввода-вывода. Во всех моделях обоих подсемейств используются одни и те же процессорные ядра MIPS64 с рабочей частотой 600…800 МГц, число которых доходит до 12 в подсемействе CN57xx и до 16 в подсемействе CN58xx. Каждое ядро включает кэши L1 инструкций и данных, объемом 32 Kбайт и 16 Kбайт соответственно, механизм обработки пакетов PP (Packet Processing), буфер записи WB(Write Buffer) объемом 2 Kбайта и дополнительно, в некоторых моделях, блок безопасности и шифрования S/E (Security/Encryption). Все модели имеют общий кэш L2 объемом 2 Mбайта и контроллер памяти DDR2 с гипердоступом и вариантной внешней шиной 1×144 или 2×72 разряда.

Рис. 4. Обобщенная структура процессоров Octeon Plus CN57xx
Рис. 5. Обобщенная структура процессоров Octeon Plus CN58xx

Подсемейство CN57xx позиционируется как процессоры сервисов внешней памяти, рассчитанных на применение в высокопроизводительных контроллерах RAID-массивов и сетевых дисковых серверах.

Основные особенности подсемейства CN57x:

– аппаратные ускорители компрессии/декомпрессии C/D (Compression/Decompression) и дедупликации (De-dup) данных;
– аппаратная поддержка шифрования «налету» по алгоритмам XOR, AES и XTS (XOR-in-XOR with Text Stealing);
– 2 MAC-контроллера Ethernet, каждый из которых предоставляет либо 4 гигабитных порта с интерфейсами SGMII, либо один 10-гигабитный порт с интерфейсом XAUI;
– сопроцессоры сетевого ввода-вывода NIOP (Network I/O Processor) и TCP-пакетов;
– 32-канальный ускоритель поиска регулярных выражений RegEx (Regular Expressions);
– контроллеры PCIe Gen1 (до четырех портов ×4, частично конфликтующих с портами Ethernet), USB и Fast Ethernet (FE), контроллер flash-памяти начальной загрузки.
Модели подсемейства CN57xx помимо полной конфигурации SSP (Secure Storage Processor), включающей все функциональные блоки, показанные на рисунке 4, имеют усеченную конфигурацию SP (Storage Processor) без аппаратного блока шифрования S/E. Все приборы подсемейства, независимо от конфигурации, выпускаются в корпусе FCBGA-1217 и совместимы по выводам.
Подсемейство CN58xx в большей степени нацелено на разнообразные собственно сетевые применения с суммарной пропускной способностью до 10 Гбит/с. Эта нацеленность проявляется в специальных аппаратных блоках пакетной обработки: пакетных интерфейсах, пакетном вводе-выводе, сопроцессорах TCP, RegEx и C/D. Для ускорения табличного поиска дополнительно введен контроллер памяти RLDRAM2, непосредственно связанный с ускорителем RegEx. Блок шифрования дополнен поддержкой алгоритма Касуми. Все модели подсемейства CN58xx выпускаются в корпусах FCBGA-1521 и совместимы между собой по выводам, но могут иметь три функциональные конфигурации:
– процессор сетевых сервисов NSP (Network Services Processor) с полным набором аппаратных блоков, показанных на рисунке 5;
– экстрим-процессор EXP (Extreme Processor) без аппаратных средств шифрования;
– процессор безопасных коммуникаций SCP (Secure Communications Processor), не включающий сопроцессоры RegEx с контроллером RLDRAM2 и ускоритель C/D.
Прочие подсемейства Octeon Plus представляют собой усеченные варианты двух рассмотренных и выпускаются в более дешевых корпусах, но, по-прежнему, с сохранением совместимости по выводам внутри каждого подсемейства. Особенности подсемейств Octeon Plus отражены в таблице 2. Модели внутри подсемейств различаются в основном числом процессорных ядер.
Новейшее поколение Octeon II оснастилось второй версией процессорных ядер MIPS64 с рабочей частотой до 1,5 ГГц и объемами кэшей L1 инструкций и данных 37 Kбайт и 32 Kбайт соответственно. К реализуемым алгоритмам шифрования добавился SNOW 3G. Новая версия контроллера памяти DDR3 может работать на частотах до 800 МГц (1,6 Гбит/с на разряд). Улучшенные преобразователи SerDes поддерживают помимо XAUI стандарты PCIe Gen2 ×4 и SRIO 4× (Serial Rapid IO). Упрощенные структуры процессоров обоих подсемейств, CN66xx и CN68xx, показаны соответственно на рисунках  6 и 7.

Рис. 6. Упрощенная структура процессоров Octeon II CN66xx
Рис. 7. Упрощенная структура процессоров Octeon II CN68xx

Подсемейство Octeon II CN66xx, предлагаемое в качестве процессоров интернет-приложений, может также использоваться в маршрутизаторах уровня предприятия, базовых станциях 3G/4G, интеллигентных контроллерах и серверах сетевой дисковой памяти, а также в устройствах объединенной сетевой защиты UTM (Unified Threat Management), включающих брандмауэры, поддержку VPN, средства против вирусов и спама. Разные модели подсемейства могут иметь до 10 процессорных ядер MIPS64 II и обеспечивают суммарную пропускную способность до 15 Гбит/с и более. Подсемейство сохранило вспомогательный контроллер памяти с 16 разрядной шиной, к которому имеют прямой доступ сопроцессоры и ускорители. Из вновь появившихся аппаратных блоков следует отметить тривиальный ускоритель плавающей запятой FPA, механизм гиперконечных автоматов HFA (Hyper Finite Automata) с пропускной способностью 15 Гбит/с, заменивший ускорители RegEx, и средства сбережения потребляемой мощности, которая в приборах подсемейства CN66xx варьируется в диапазоне 12…28 Вт. Приборы подсемейства выпускаются в корпусе FCBGA-900 и совместимы по выводам.

Таблица 2. Особенности подсемейств Octeon Plus 

Подсемейство

Шина DDR

Ядер

Кэш

Пакет

RegEx

C/D

De-dup

RAID

PCI

Корпус

CN58xx

144 разр.

4–16

2 M

PIO

+

+

FCBGA-1521

CN57xx

144 разр.

8–12

2 M

NIOP

+

+

+

2 PCIe ×4

FCBGA-1217

CN56xx

144 разр.

8–12

2 M

PIO

+

2 PCIe ×4

FCBGA-1217

CN55xx

72 разр.

4–6

1 M

PIO

+

+

+

2 PCIe ×4

FCBGA-1217

CN54xx

72 разр.

4–6

1 M

PIO

+

2 PCIe ×4

FCBGA-1217

CN52xx

72 разр.

2–4

512 K

PIO

+

+

PCIe ×4

HSBGA-729

CN50xx

36 разр.

1–2

128 K

PIO

+

+

PCI 32 р.

BGA-564

Основные сферы применения приборов подсемейства CN66xx: маршрутизаторы новых поколений, устройства сжатия данных и контроля контекста, коммутаторы и устройства сетевой безопасности беспроводных LAN. На рисунке 8 показан упрощенный пример реализации базовой станции WiMAX на процессоре подсемейства CN66xx.
У процессоров подсемейства Octeon II CN68xx максимальное число процессорных ядер достигает 32, а два полноразмерных контроллера памяти DDR3 с общей шириной внешней шины 288 разрядов поддержаны удвоенным объемом кэша L2. Это позволяет достичь суммарной пропускной способности до 40 Гбит/с. Следует отметить появление в подсемействе интерфейса Interlaken. Приборы подсемейства выпускаются в корпусе FCBGA-1936 и совместимы по выводам.

Рис. 8. Базовая станция WiMAX на процессоре CN66xx

Основные сферы применения приборов подсемейства CN68xx: высокопроизводительные маршрутизаторы новых поколений, средства UTM, контроллеры безопасной сетевой дисковой памяти, устройства инфраструктуры беспроводных сетей, средства управления сетями WAN.
Поколение Octeon II отличается дополнительными возможностями повышения обрабатывающей способности устройств на их основе за счет объединения нескольких приборов, одного и того же или различных подсемейств, через служебные интерфейсы PCIe, SRIO и Interlaken. На рисунке 9 показан полученный в результате такого объединения коммутатор Ethernet с 6 портами 10 Гбит/с.
Прочие подсемейства процессоров Octeon II представляют собой усеченные и более дешевые конфигурации двух рассмотренных подсемейств, их основные отличия показаны в таблице 3. Модели внутри подсемейств различаются числом процессорных ядер.

Рис. 9. 6-портовый коммутатор на двух приборах CN68xx

 

Таблица 3. Особенности подсемейств Octeon II

Подсемей-

ство

Шина DDR

Ядер

Кэш

Пакет

TCP

RAID

Inter-laken

SerDes

Корпус

CN68xx

288 разр.

16—32

4 M

PIO v2

+

+

5 ×4

FCBGA-1936

CN67xx

144 разр.

8—16

4 M

PIO v2

+

+

5 ×4

FCBGA-1936

CN66xx

72 разр.

6—10

2 M

PIO

+

3 ×4

FCBGA-900

CN63xx

72 разр.

2—6

2 M

PIO

+

3 ×4

FCBGA-900

CN62xx

72 разр.

2—4

1 M

PIO

+

3 ×4

FCBGA-900

CN61xx

72 разр.

2—4

1 M

PIO

+

2 ×4

TEBGA-729

CN60xx

36 разр.

1—2

512 K

PIO

+

×3, ×4

TEBGA-729

Все процессоры поколения Octeon II могут поставляться в двух конфигурациях:
– AAP (Application Acceleration Processor) — с полным комплектом блоков, показанных на рисунках 6 или 7;
– CP (Communication Processor) — без блока S/E и сопроцессоров RAID, HFA, C/D.

Некоторые вопросы применения продуктов Cavium

Для оценки применимости и эффективности продуктов компании Cavium в своих разработках потенциальный потребитель может воспользоваться готовыми фирменными оценочными платами EVB (evaluation boards), которые имеются для всех подсемейств Econa и Octeon. Как правило, в таких платах устанавливаются самые мощные модели подсемейства, включающие все свойственные ему функциональные блоки. Для семейства Econa также доступны эталонные схемные решения (reference schematics) и модели приборов, необходимые для быстрой и безошибочной разработки на основе этих МК.
Технические подробности и полную информацию о своих продуктах, особенно семейства Octeon, Cavium предоставляет только пользователям, заключившим с компанией специальное соглашение о неразглашении фирменных ноу-хау. Тем не менее, существуют специальные программы, в частности университетская и общедоступная CNUsers, благодаря которой любой потенциальный пользователь на специальном сайте www.cnusers.org может получить доступ к периодическим релизам компании и открытым версиям фирменных комплектов разработки программного обеспечения (ПО) SDK (Software Development Kit). Эти открытые версии отличаются от полных ограниченным набором функций, в частности, отсутствием поддержки компрессии и шифрования данных.
Комплект SDK для семейства Econa включает:
– ОС Linux 2.4/2.6;
– простейшую фирменную исполнительную систему реального времени RTE (real-time executive), ориентированную на задачи уровня data plane;
– драйверы и загрузчики;
– демонстрационные программы.
В полный комплект SDK для семейства Octeon входят:
– ОС Linux с поддержкой симметричной многопроцессорности (SMP Linux);
– RTE для несимметричной многопроцессорности;
– средства разработки GNU (GCC/GDB/DDD);
– инструменты оценки производительности Viewzilla, Perfzilla и Oprofile;
– оптимизированные Си-библиоте­ки для поддержки блоков S/E, RegEx, C/D.
Помимо SDK Cavium предлагает для своих изделий несколько фирменных наборов программных инструментальных средств (software toolkits) для:
– анализа стандартных протоколов;
– типовой реализации стека TCP/IP и протоколов безопасности IPSec и SSL;
– защиты от вредоносных программ (anti-malware);
– обнаружения и защиты от вторжений (intrusion detection/prevention).
Процессоры семейства Octeon непросты в применении. Множество процессорных ядер и нетривиальных специализированных аппаратных блоков, активно и по-разному взаимодействующих между собой, создают много проблем при разработке прикладного ПО. Особенно неприятно, что результаты и конечный успех сложной разработки трудно предсказуемы. Понимая это, Cavium предоставляет своим пользователям на выбор несколько платных сервисов разработки ПО. Начинающим заказчикам, не имеющим опыта работы с процессорами Octeon, по специальной программе DevelopmentPlus предоставляется возможность полной разработки пользовательского ПО специалистами компании. При этом персонал заказчика обучается до уровня, достаточного для дальнейшей поддержки и развития готового ПО. Для более продвинутых потребителей, которые рискуют вести разработку собственными силами, по программе PerformancePlus предусмотрены консультации и помощь специалистов Cavium в оптимизации пользовательского ПО. Наконец, для опытных клиентов имеется месячная программа ArchitecturePlus мониторинга разработки архитектуры пользовательского ПО специалистами Cavium.
Поддержка многоядерных процессоров Octeon Plus объявлена в широко распространенной и отлично зарекомендовавшей себя в сетевых применениях операционной системе реального времени QNX Neutrino. Эта операционная система обеспечивает оборудованию высокую готовность, поддерживает функции динамического обновления, локализации неисправностей глубокого уровня и быстрого восстановления при возникновении ошибок. В отношении семейства Octeon принципиально появление в ней поддержки многопроцессорности, причем как симметричной, так и несимметричной. Масштабируемость QNX Neutrino позволяет в сетевых устройствах обрабатывать увеличивающийся трафик или расширяющийся спектр услуг без замены оборудования, что хорошо сочетается с совместимостью моделей разной производительности внутри подсемейств Octeon. Пакет поддержки QNX Neutrino для некоторых EVB Cavium с процессорами подсемейства Octeon Plus можно найти на портале сообщества QNX Foundry27: http://community.qnx.com/sf/wiki/do/viewPage/projects.bsp/wiki/CaviumCn57xxEvm. Ограниченную поддержку процессорам семейства Octeon предоставляет также операционная среда FreeBSD. Подробности можно найти на сайте: www.freebsd.org.
Потенциальным пользователям следует иметь в виду, что приборы семейства Octeon непросто найти на открытом рынке. Процессоры Octeon Plus ограниченно поставляются через дистрибьютора Phoenics Electronics по согласованным ценам, а приборы Octeon II, похоже, еще не поступали в продажу. Дополнительная информация об МК Econa, процессорах Octeon и других продуктах Cavium доступна на сайте компании: www.caviumnetworks.com.

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

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