Аннотация
Григорьев А.В., Матвиенко М.В. Компоненты сетевых процессоров.
Общая постановка проблемы
Существует большое множество архитектур сетевых процессоров, предназначенных для обслуживания не менее большого множества топологий сетей. Для того чтобы подобрать оптимальную архитектуру сетевого процессора для той или иной сети, необходимо выделить его основные компоненты и исследовать их функции. Полученные данные, в дальнейшем, будут применены для создания экспертной системы по проектированию архитектур сетевых процессоров для различных топологий сетей.
Память
Используется на нескольких уровнях в и вне процессора. Предназначена для хранения контента программ и регистров, буферизации пакетов, хранения промежуточных результатов и различных данных, полученных в процессе обработки. Скорость доступа к памяти должна соответствовать скорости обработки пакетов. Основные факторы: скорость доступа и размер.
Использование внутренней памяти более приемлемо для обеспечения скорости, но возникают ограничения на ее размер. Поэтому чаще всего используется связка внутренней и
Внутренние соединения (Шины)
Используются для передачи данных между функциональными блоками, интерфейсами входа/выхода, планировщиками. Архитектура внутренних шин один из наиболее важных факторов определяющих производительность сетевых процессоров. Должны обеспечивать большую пропускную способность данных внутри сетевого процессора. Существует три проблемы: а) занимают большую область чипа; б) много потенциального «шума», который необходимо учесть проектировщику чипа; в) осложнение проблемы синхронизации при длинных путях в результате большого размера чипа.
Внешние интерфейсы
Наиболее важными интерфейсами являются интерфейсы входных и выходных пакетов, памяти, адресуемая память, необходимая для хранения статистики, счетчиков, и просмотров таблиц. Внешние интерфейсы создаются с помощью внутренних схем или внешних чипов (связанных с сетевым процессором). Они могут быть разделены на две группы: 1) интерфейсы соединения между устройствами сетевой обработки; 2) интерфейсы с несетевыми устройствами обработки, содержащие интерфейсы внешней памяти, сопроцессоров и хост-компьютеров.
Интерфейсы пакетов
Представляют соединения между любыми устройствами сетевой обработки: сетевыми процессорами, многовходовыми системами коммутации, сопроцессорами, интерфейсами физического уровня и фреймерами.
В случае соединения между сетевыми процессорами и магистралью (физический уровень), сетевые процессоры обычно содержат всю пакетную логику на уровне управления передачей данных, а физические интерфейсы являются внешними. Иногда схемы MAC [1] уровня могут быть найдены вне сетевого процессора. В любом случае, все интерфейсы обычно реализуются с использованием IP блоков (внутри сетевого процессора), или специфичной интегральной схемы, которая содержит необходимые интерфейсы.
Потоковые интерфейсы сетевой обработки и расширяемый интерфейс системных пакетов
Существует 2 стандарта, описывающих пакетные интерфейсы: потоковые интерфейсы сетевой обработки (NPSI); расширяемый интерфейс системных пакетов (SPI-S)
Оба определяют спецификацию фреймворка интерфейсов двухточечной маршрутизации данных с поддержкой адресации и контроля потока. NPSI определяет соединения между устройствами сетевой обработки, скорость передачи данных в OC-192[1]. NPSI также содержит 3 главные группы интерфейсов: интерфейсы многовходовой системы коммутации, интерфейсы фреймера, интерфейсы сетевой процессор-сопроцессор. SPI-S был введен после NPSI и, в принципе, заменил его. Также данный интерфейс является приемником SPI интерфейсов. Это обобщенный двухточечный интерфейс, не является специфическим для некоторых физических интерфейсов и пропускающей полосы, который позволяет производить адресацию мульти-фреймовых каналов, многовходовых систем коммутации и сетевых процессоров. SPI-S определяет требования к уровню канала передачи данных, которые относятся к фреймингу, адресации, поиску неполадок, управлениию потоком.
UTOPIA (Universal Test & Operations PHY Interface for ATM)
UTOPIA – физический интерфейс универсального тестирования и операций при асинхронном способе передачи данных. Описывает интерфейс пути данных между магистралью с асинхронной передачей данных (ATM [1]) и устройствами физического уровня (PHY [1]) . Определяет, как ячейки в действительности отсылаются от канала передачи данных к чипам физического уровня и наоборот.
Интерфейс системных пакетов (SPI) и физический уровень пакетов синхронной оптической сети (SONET)
SPI определяет интерфейс, который направляет пакеты между физическим уровнем и уровнем передачи данных, согласно стандартам OIF [2]. SPI – фреймер пакетов SONET, двусторонний интерфейс, который имеет два похожих уровня: SPI-3[1] и SPI-4[1], которые являются последователями POS-PHY[1] третьего уровня и POS-PHY четвертого уровня соответственно. POS-PHY интерфейс третьего уровня (SPI-3) состоит из 8 или 32 сигналов для данных, 8 контрольных сигналов, 8 опциональных мультиканальных сигналов статуса и одного сигнала такта, которые являются общими для всех направлений и представляют собой TTL сигналы. [1] Интерфейс четвертого уровня физического уровня пакетов синхронной оптической сети (идентичный SPI-4.2) состоит из 16 LVDS [3] пар для данных и нескольких сигналов контроля, такта и статуса, на каждое направление.
IEE 802.3 Ethernet интерфейсы
IEEE 802.3 [1] определяет несколько Ethernet интерфейсов, скорость которых ранжируется от 1 Мбит/с до 10Гбит/с. За высшие уровни Ethernet отвечает программное обеспечение сетевого процессора. Данные интерфейсы должны включать: независящий от среды интерфейс (MII), который используется для 10 и 100 Мбит/с Ethernet, гигабитный не зависящий от среды интерфейс (GMII), и десяти гигабитный не зависящий от среды интерфейс (XGMII), использующийся для 10 Гбит/с Ethernet.
MII и GMII
Интерфейсы MII и GMII получены из IEEE 802.3 MII и GMII стандартов и были приняты разработчиками сетевых процессоров. Reduced MII (RMII) и Reduced GMII (RGMII) или TBI (RTBI) – интерфейсы, которые снижают количество контактов, необходимых для соединения MAC и PHY. RMII сокращает количество контактов интерфейса от 16 в MII до 7 на каждый порт, в то время как RTBI сокращает максимум в 28 контактов до 12. Существует 2 режима оперирования для GMII: RGMII и RTBI режимы, которые определяются специфичным входным сигналом. Serial MII и GMII (SMII и SGMII) спецификации опубликованные Cisco Inc. (ENG-46080 и ENG-46158 соответственно). Их основная идея - использовать 2 контакта на каждый порт и, при необходимости, соединять несколько PHY устройств с одним MAC уровнем, в синхронизации с одним тактом.
Спецификация обобщенного интерфейса коммутатора (CSIX)
Стандарт CSIX первого уровня (CSIX-L1) определяет двусторонний интерфейс между менеджерами трафика (и сетевыми процессорами) и многовходовыми системами коммутации для ATM, IP, MPLS, Ethernet и так далее. Данная спецификация определяет физический интерфейс и заголовок директивы (CSIX фрейм, или CFRAME), который несет информацию о том, как следует обрабатывать фреймы (то есть контролирует поведение интерфейса между менеджером трафика и многовходовой системой коммутации). Каждый полученный фрейм классифицируется и перенаправляется через многовходовую систему коммутации в соответствии с CFRAME.
Интерфейсы доступа
Интерфейсы доступа, в контексте сетевых процессоров – интерфейсы со скоростью менее 1 Гбит/с. Они включают в себя множество типов интерфейсов и используются в основном сетевыми процессорами доступа. Пакетные данные, клеточные данные и последовательные данные имеют различные интерфейсы доступа.
Хост-интерфейсы
Почти все сетевые процессоры имеют интерфейсы с хост процессорами для различных заданий, например, инициализации, конфигурации, обработки пакетов, заданий управления и отчета, поддержки и других функций, для которых сетевой процессор не оптимизирован (или не способен выполнять вообще). Некоторые сетевые процессоры имеют встроенный процессор, который выполняет некоторые задания подобного рода. Но даже в этом случае, характерно существование внешнего хост процессора.
Когда хост процессор подсоединен, его необходимо связать с сетевым процессором; это может быть сделано с помощью некоторого собственного интерфейса, интерфейса с запоминающим устройством, или стандартного интерфейса используемого в хост-системах.
Интерфейсы памяти
Сетевой процессор может быть соединен с несколькими блоками памяти параллельно, применять одну и ту же адресную шину и одни и те же сигналы контроля для всех блоков, создавать шину данных произвольной ширины, которая ограничивается суммой памяти шин данных подключенных чипов. Размер памяти, в свою очередь, определяется размером чипов и их количеством, а также шириной адресной шины, которая используется сетевым процессором. Когда используется Error Correction Code (ECC) в DRAM [1], необходимы дополнительные чипы для хранения ECC битов, а шина данных должна быть прикреплена к ECC битам, которые, в свою очередь, соединены с битами данных.
LA-1
Look Aside (LA-1) – это интерфейс одновременного параллельного поиска первого поколения. Его цель – соединение памяти (в основном CAM [1]) и сопроцессоров, или любого устройства, которое обеспечивает разгрузку сетевого процессора и является смежным с ним. LA-1, по сути, является SRAM интерфейсом с некоторыми модификациями, предназначенными для подключения сопроцессоров, таких как сопроцессор переменной задержки доступа, сопроцессор не валидных ответов и так далее. Адресная шина используется для регистрации адресации при необходимости, в случае установления связи с сопроцессором, и происхождения внутреннего «рукопожатия» для передачи необходимого контроля и результатов в/из сопроцессора. LA-1 использует отдельные 16-битные шины данных чтения и записи (SIO) и вместе с 200 МГц DDR интерфейсом.
Механизм контроля и синхронизации
Данный механизм – то, что делает сетевой процессор работоспособным, более того он определяет, как он должен работать. Схемы контроля и синхронизации обеспечивают корректное функционирование процессора. В конвейерных конфигурациях, механизм контроля обрабатывает все промежуточные результаты, таким образом, обеспечивая плавный переход между конвейерными операциями и получая выгоду даже в ситуациях несбалансированного использования этапов обработки. В параллельной конфигурации, данный механизм отслеживает порядок следования пакетов и корректное использование ресурсов сетевого процессора.
Функциональные блоки
Поисковые системы и трафик менеджеры – основные обрабатывающие элементы, которые в основном, располагаются внутри сетевого процессора. Но существует также множество реализаций поисковых систем и менеджеров трафика, расположенных вне его и работающих как сопроцессор или присоединенных как устройство с отображением портов. Внедрение этих двух типов процессоров в сетевой процессор дает весомое преимущество, касающееся скорости перемещения данных, и требует наличие нескольких компонентов системного уровня. Любой сетевой процессор должен иметь функциональный блок для улучшения своих возможностей. Существует множество дополнительных функциональных блоков. Например, обработчики контрольных сумм пакетов (IP и TCP), конверторы контента пакета из одного представления в другое, менеджеры одновременно параллельного поиска, менеджеры памяти и тому прочие.
Встроенные процессоры
Некоторые сетевые процессоры содержат встроенные процессоры. Такие как ARM, PowerPC, MIPS или даже конфигурированные ядра процессоров (например, Tensilica), которые осуществляют поддержку основных функций сетевого процессора и обработку некоторых операций.
Выводы
Сетевые процессоры имеют достаточно сложную архитектуру, насчитывающую большое количество различных элементов. Для построения экспертной системы, которая будет подбирать оптимальную архитектуру сетевого процессора, были выделены ее элементы и их назначение, что в дальнейшем поможет при выборе оптимального сетевого процессора, исходя из топологии сети и требований, представленных к ее работе.
Список использованной литературы
1. Ran Giladi «Network Processors. Architecture, Programming, and Implementation».
2. «Официальный сайт IOF». Электронный ресурс. Режим доступа [http://www.oiforum.com].
3. National semiconductor «LVDS Owner’s Manual». Fourth edition, 2008.