<<
>>

Основные сведения о сетевых процессорах

К сети подключаются самые разные устройства. Для конечных пользователей это, прежде всего, персональные компьютеры (настольные и ноутбуки), но растет также число игровых консолей, персональных электронных секретарей (карманных компьютеров), сотовых телефонов.
Для компаний роль оконечных систем играют серверы и персональные компьютеры. Помимо этого, в сетях функционирует бесчисленное количество разнообразных промежуточных устройств, в их число входят маршрутизаторы, коммутаторы, брандмауэры, прокси-серверы, системы балансировки нагрузки. Достаточно любопытно, что к этим промежуточным системам предъявляются самые серьезные требования — именно они должны обеспечивать передачу максимального числа пакетов в секунду. Кроме того, серьезные требования налагаются на серверы, что касается пользовательских компьютеров, то к ним особых требований нет.

В зависимости от сети и самого пакета, поступающий в сеть пакет перед отправкой по исходящей линии или передачей прикладной программе может требовать той или иной обработки.

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

Когда скорость передачи данных в локальной сети приближается к 40 Гбит/с, а размер пакета — к 1 Кбайт, сетевой компьютер должен обрабатывать почти 5 млн. пакетов в секунду. Для пакетов размером 64 байт это значение возрастает примерно до 80 млн. пакетов в секунду. Выполнение всех упомянутых функций за время порядка 12-200 нс, в дополнение к неизменно необходимому копированию пакетов, просто невозможно реализовать программно. Аппаратная поддержка здесь принципиально необходима.

Одним из путей аппаратного решения проблемы быстрой обработки пакетов является использование специализированных интегральных схем (Application- Specific Integrated Circuit, ASIC).

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

Второй подход основан на использовании программируемых вентильных матриц (Field Programmable Gate Array, FPGA). Такая матрица представляет собой набор вентилей, из которых путем перекоммутации строится требуемая схема. Сроки выхода программируемых вентильных матриц на рынок гораздо короче, чем у специализированных интегральных схем, к тому же их можно перепрограммировать в «полевых условиях» при помощи специального программатора. Но в то же время они очень сложные, дорогие и более медленные, чем схемы ASIC, поэтому программируемые вентильные матрицы не получили широкого распространения, исключая некоторые узкоспециальные области.

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

Типичный сетевой процессор и его плата показаны на рис. 8.13.

Обычно на плате имеется как статическая (SRAM), так и синхронная динамическая оперативная память (SDRAM) — эти виды памяти применяются для разных целей. SRAM быстрее SDRAM, но из-за дороговизны памяти этого типа обычно немного. Она используется для хранения таблиц маршрутизации и прочих ключевых структур данных, в то время как в SDRAM записываются сами обрабатываемые пакеты. Благодаря тому, что память обоих этих типов располагается вне кристалла сетевого процессора, можно гибко подойти к вопросу о выборе объема памяти. Так, в простых системах с единственной сетевой линией (такие платы могут ставиться, например, в персональный компьютер или сервер) памяти может быть немного, в то время как маршрутизатору ее требуется намного больше.

Рис. 8.13. Кристалл и плата типичного сетевого процессора

Сетевые процессоры оптимизированы для быстрой обработки большого количества входящих и исходящих пакетов. Это означает, что по каждой из сетевых линий проходят миллионы пакетов в секунду, а маршрутизатор должен поддерживать десятки таких линий. Столь серьезных показателей можно достигнуть только на процессорах с высокой степенью внутреннего параллелизма. Кроме того, в процессор обязательно входят несколько РРЕ-контроллеров (Protocol/ Program- mable/Packet Processing Engine — программируемая система обработки пакетов и протоколов), каждая из которых состоит из RISC-ядра (возможно, модифицированного) и внутренней памяти небольшого объема для хранения программы и нескольких переменных.

Есть два подхода к организации РРЕ-контроллеров. В простейшем случае все РРЕ-контроллеры делаются идентичными. Когда в сетевой процессор приходит новый пакет, он передается для обработки тому РРЕ-контроллеру, который в данный момент бездействует. Если свободных РРЕ-контроллеров нет, пакет ставится в очередь в расположенной на плате памяти SDRAM, ожидая освобождения одного из РРЕ-контроллеров.

При такой организации горизонтальные связи, показанные на рис. 8.13, отсутствуют, так как у разных РРЕ-контроллеров нет необходимости общаться друг с другом.

Другой подход к организации РРЕ-контроллеров — конвейер, где каждый из РРЕ-контроллеров выполняет один этап обработки, после чего передает указатель на полученный пакет следующему РРЕ-контроллеру в конвейере. Такой конвейер работает во многом аналогично конвейерам ЦП, которые рассматривались в главе 2. В обоих вариантах организации РРЕ-контроллеры являются полностью программируемыми.

В более совершенных сетевых процессорах РРЕ-контроллеры поддерживают многопоточность, то есть каждый из них имеет несколько наборов регистров и аппаратный регистр, показывающий, какой из наборов используется. Это позволяет одновременно выполнять несколько программ (то есть программных потоков) и переключаться между ними, просто изменяя переменную «текущего рабочего набора регистров». Когда один из программных потоков вынужден ждать (например, при обращении к SDRAM, на которое требуется несколько циклов), РРЕ-контроллер может быть мгновенно переключен на поток, способный продолжать работу. Это позволяет добиваться высокой загрузки РРЕ-контроллеров, даже несмотря на необходимость часто ожидать завершения обмена данными с SDRAM или других медленных внешних операций.

Помимо РРЕ-контроллеров, у всех сетевых процессоров имеется управляющий процессор для выполнения всех действий, не относящихся напрямую к обработке пакетов (например, обновление таблиц маршрутизации). Обычно он представляет собой RISC-процессор общего назначения, память для данных и команд которого находится на одном кристалле с процессором. Более того, в сетевом процессоре может быть несколько специализированных процессоров, предназначенных для выполнения критически важных операций. Они представляют собой очень маленькие специализированные интегральные схемы (ASIC), способные выполнять только одно несложное действие, такое как поиск целевого адреса в таблице маршрутизации. Все компоненты сетевого процессора взаимодействуют друг с другом на мультигигабитных скоростях по одной или нескольким расположенным на кристалле параллельным шинам.

<< | >>
Источник: Таненбаум Э.. Архитектура компьютера. 5-е изд. 2007

Еще по теме Основные сведения о сетевых процессорах:

  1. Статья 422. Разглашение сведений военного характера, составляющих государственную тайну, или потеря документов или материалов, содержащих такие сведения
  2. 16.3. Перечни сведений, составляющих государственную тайну, и сведения, которые не могут относиться к государственной тайне
  3. Рождение сетевой журналистики.
  4. Модель сетевого анализа коммуникационных сетей.
  5. Нет-мен или каково быть сетевым журналистом?
  6. Статья 158. Фальсификация избирательных документов, документов референдума или фальсификация итогов голосования, предоставление ложных сведений в органов Государственного реестра избирателей или фальсификация сведений Государственного реестра избирателей
  7. 6. СИСТЕМА СМИ. ОСОБЕННОСТИ ИНФРАСТРУКТУРЫ ПЕЧАТНЫХ, ВЕЩАТЕЛЬНЫХ, СЕТЕВЫХ СМИ. ВЛИЯНИЕ ТЕХНОЛОГИЧЕСКИХ ОСОБЕННОСТЕЙ НА ПРОДУКТ ЖУРНАЛИСТСКОЙ ДЕЯТЕЛЬНОСТИ.
  8. 16.6. Рассекречивание сведений и их носителей
  9. 16.7. Распоряжение сведениями, составляющими государственную тайну
  10. Статья 895. Конфиденциальность сведений о договоре
  11. 16.4. Отнесение сведений к государственной тайне и их засекречивание
  12. I. Общие сведения о профессии.