Технологии

Введение в сетевые процессоры

С точки зрения разработчика ситуация на рынке сетевого оборудования характеризуется тремя главными тенденциями: сетевой трафик постоянно растет, требуя обновления имеющейся инфраструктуры; появляются новые технологии, сервисы и стандарты, которые относительно быстро внедряются; происходит конвергенция голоса и данных. Всё это в условиях жёсткой конкуренции диктует ускорение темпов разработки, необходимость быстрого вывода продукции на рынок и наличие возможности простой модификации ранее разработанных устройств. Эти требования выполнимы, если большинство изменений производится в ПО, а не в "железе". Один из подходов к решению проблемы – создание так называемых сетевых процессоров.

По определению сетевой процессор (network processor, NP) – это программируемый процессор, архитектура которого оптимизирована для использования в сетевых устройствах и обеспечение устойчивого режима обработки пакетов (packet processing).

Если посмотреть на историю их появления, то нужно заметить, что первоначально, когда компьютерные сети были медленными, передаваемые по ним пакеты данных обрабатывались обычными процессорами. И всё было бы хорошо, но с ростом пропускной способности сетей производительности таких процессоров стало не хватать. Следующим шагом (начало 1990-х годов) было широкое внедрение в сетевое оборудование заказных микросхем (ASIC). При этом в связке с ASIC использовались и процессоры общего назначения, но они обрабатывали небольшой процент пакетов, связанных с управлением сетью, маршрутизацией и конфигурированием устройства. Однако сетевые технологии быстро сменяют друг друга, а заказные микросхемы хотя и можно конфигурировать, но нельзя перепрограммировать. Им недостает гибкости обычных процессоров, где все изменения могут быть сделаны на уровне замены ПО. Из-за этого время разработки в жизненном цикле модернизируемого сетевого устройства оказалось слишком длинным. Таким образом, нынешние сетевые процессоры объединили оба подхода: стали программируемыми и специализированными.

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

Общая схема сетевого процессора

Рис. 1. Общая схема сетевого процессора

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

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

Основной рабочий блок NP – это пакетный процессор (packet processor, PP), способный обрабатывать несколько пакетов одновременно. Обычно он выполняет следующие функции:

  1. Получает с сетевого интерфейса пакеты, ячейки или кадры и записывает их полностью либо частично в ОЗУ.
  2. Определяет порядок обработки пакетов.
  3. Обрабатывает пакеты. Обработка может включать в себя определение типа пакета, проверку политики (policing), маршрутизацию, модификацию и присвоение правильного QoS.
  4. Управляет перенаправлением пакета. На основании QoS пакет может быть задержан.
  5. Отправляет пакет.

Функция 3 в РР реализуется программно, остальные – аппаратно. Поскольку архитектура пакетного процессора оптимизируется для выполнения общих задач обработки пакетов (копирование данных, просмотр таблиц, преобразование протоколов и т. д.), они разрабатываются либо как мини-RISC-процессоры, либо как макроячейки DSP-процессоров.

Интерфейс с общим ОЗУ используется и ядром, и пакетными процессорами.

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

Общая схема сетевого процессора

Рис. 2. Общая схема сетевого процессора

В качестве примера рассмотрим структуру сетевого процессора IPX 1200 корпорации Intel (рис. 2). Он базируется на ядре 32-разрядного RISC-процессора StrongARM, содержит шесть пакетных мини-RISC-процессоров (поддерживает до 256 Мб ОЗУ типа SDRAM), а также интерфейсы с системной шиной PCI и 64-разрядной шиной IX bus, поддерживающей набор сетевых интерфейсов ATM, T1/E1, 10, 100 и 1024 Мбит/с Ethernet и др.

Каждый пакетный процессор имеет локальную управляющую память объёмом в 1 Кслово и поддерживает четыре потока, т. е. одновременно NP может обрабатывать до 24 пакетов. Общая пропускная способность этого NP – 1,2 Гб/с, или 2,4 млн. пакетов/с.

В высокопроизводительных NP из-за требований по надёжности и устойчивости к ошибкам, как правило, используются процессно-ориентированные системы реального времени типа OS-9. Особенностью ОС сетевого процессора (NPOS) является то, что она должна уметь, не останавливая работу (либо с минимальным временем простоя), динамически добавлять, удалять или заменять отдельные компоненты системы либо приложения. Это важно, например, при изменении алгоритма обработки пакетов при модификации устройства. Отдельная тема – обеспечение безопасности ОС сетевых процессоров.

В статье описана только общая схема NP. На самом деле этот класс устройств сейчас бурно развивается и находится в том прекрасном возрасте, когда разработчики не сильно зажаты требованиями совместимости и им позволено экспериментировать. Тем, кто хочет ближе познакомиться с сетевыми процессорами, рекомендую заглянуть на инженерные онлайновые курсы www.techonline.com.

Статья опубликована в PC Week/RE №2 от 25.01.2005 г., стр. 21.