stringtranslate.com

Сетевой процессор

Intel FWIXP422BB

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

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

История развития

В современных телекоммуникационных сетях информация (голос, видео, данные) передается в виде пакетных данных (называемых коммутацией пакетов ), что отличается от старых телекоммуникационных сетей, которые передавали информацию в виде аналоговых сигналов, таких как в телефонной сети общего пользования (PSTN) или аналоговых сетях телевидения и радио . Обработка этих пакетов привела к созданию интегральных схем (ИС), оптимизированных для работы с этой формой пакетных данных. Сетевые процессоры имеют особые функции или архитектуры, которые предоставляются для улучшения и оптимизации обработки пакетов в этих сетях.

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

Сетевые процессоры используются при производстве множества различных типов сетевого оборудования, таких как:

Реконфигурируемые таблицы соответствий

Реконфигурируемые таблицы соответствия [1] [2] были введены в 2013 году, чтобы позволить коммутаторам работать на высоких скоростях, сохраняя гибкость в отношении сетевых протоколов, работающих на них, или обработки, которая должна быть выполнена для них. P4 [3] используется для программирования чипов. Компания Barefoot Networks была основана вокруг этих процессоров и позже была куплена Intel в 2019 году.

Описание трубопровода RMP

Конвейер RMT опирается на три основных этапа: программируемый парсер, [2] таблицы Match-Action и программируемый депарсер. Парсер считывает пакет по частям и обрабатывает эти части, чтобы выяснить, какие протоколы используются в пакете ( Ethernet , VLAN , IPv4 ...) и извлекает определенные поля из пакета в вектор заголовка пакета (PHV). Некоторые поля в PHV могут быть зарезервированы для специальных целей, таких как текущие заголовки или общая длина пакета. Протоколы, как правило, программируемы, как и поля для извлечения. Таблицы Match-Action представляют собой ряд блоков, которые считывают входной PHV, сопоставляют определенные поля в нем с помощью перекрестной шины и памяти CAM , результатом является широкая инструкция, которая работает с одним или несколькими полями PHV и данными для поддержки этой инструкции. Затем выходной PHV отправляется на следующий этап MA или в депарсер. Депарсер принимает PHV, а также исходный пакет и его метаданные (чтобы заполнить недостающие биты, которые не были извлечены в PHV), а затем выводит измененный пакет в виде фрагментов. Обычно он программируется, как и парсер, и может повторно использовать некоторые файлы конфигурации.

FlexNIC [4] пытается применить эту модель к контроллерам сетевых интерфейсов, позволяя серверам отправлять и получать пакеты на высоких скоростях, сохраняя гибкость протокола и не увеличивая нагрузку на ЦП.

Общие функции

В общей роли процессора пакетов сетевой процессор обычно выполняет ряд оптимизированных функций и возможностей, в том числе:

Архитектурные парадигмы

Для работы с высокими скоростями передачи данных обычно используются несколько архитектурных парадигм:

Кроме того, управление трафиком, которое является критическим элементом в обработке сети L2 - L3 и которое раньше выполнялось различными сопроцессорами, стало неотъемлемой частью архитектуры сетевого процессора, и значительная часть его кремниевой области («недвижимость») отведена под интегрированный менеджер трафика. [5] Современные сетевые процессоры также оснащены сетями межсоединений с малой задержкой и высокой пропускной способностью на кристалле, оптимизированными для обмена небольшими сообщениями между ядрами (несколько слов данных). Такие сети могут использоваться в качестве альтернативного средства для эффективной межъядерной связи помимо стандартного использования общей памяти. [6]

Приложения

Используя общую функцию сетевого процессора, программа реализует приложение, которое выполняет сетевой процессор, в результате чего физическое оборудование выполняет задачу или предоставляет услугу. Некоторые типы приложений, обычно реализуемые как программное обеспечение, работающее на сетевых процессорах: [7]

Смотрите также

Ссылки

  1. ^ Боссхарт, Пэт; Гибб, Глен; Ким, Хун-Сок; Варгезе, Джордж; МакКеон, Ник; Иззард, Мартин; Мухика, Фернандо; Горовиц, Марк (01.08.2013). «Метаморфозы пересылки: быстрая программируемая обработка совпадений и действий в оборудовании для SDN». {{cite journal}}: Цитировать журнал требует |journal=( помощь )
  2. ^ ab Гибб, Глен; Варгезе, Джордж; Хоровиц, Марк; МакКеон, Ник (октябрь 2013 г.). «Принципы проектирования анализаторов пакетов». Архитектуры сетевых и коммуникационных систем . стр. 13–24. doi :10.1109/ANCS.2013.6665172. ISBN 978-1-4799-1641-2. S2CID  12282067.
  3. ^ "P4: Программирование независимых от протокола пакетных процессоров | acm sigcomm". www.sigcomm.org . Получено 26.03.2022 .
  4. ^ Кауфманн, Антуан; Питер, Саймон; Шарма, Навин Кр.; Андерсон, Томас; Кришнамурти, Арвинд (2016-03-25). "Высокопроизводительная обработка пакетов с FlexNIC". Труды Двадцать первой международной конференции по архитектурной поддержке языков программирования и операционных систем . ASPLOS '16. Нью-Йорк, штат Нью-Йорк, США: Ассоциация вычислительной техники. стр. 67–81. doi : 10.1145/2872362.2872367 . ISBN 978-1-4503-4091-5. S2CID  9625891.
  5. ^ Giladi, Ran (2008). Сетевые процессоры: архитектура, программирование и реализация. Systems on Silicon. Morgan Kaufmann. ISBN 978-0-12-370891-5.
  6. ^ Buono, Daniele; Mencagli, Gabriele (21–25 июля 2014 г.). Механизмы выполнения для мелкозернистого параллелизма на сетевых процессорах: опыт TILEPro64 (PDF) . Международная конференция по моделированию высокопроизводительных вычислений 2014 г. (HPCS 2014). Болонья, Италия. стр. 55–64. doi :10.1109/HPCSim.2014.6903669. ISBN 978-1-4799-5313-4. Архивировано (PDF) из оригинала 27 марта 2019 года.Альтернативный URL-адрес
  7. ^ Комер, Дуглас Э. (2005). Проектирование сетевых систем с использованием сетевых процессоров: версия Intel 2XXX . Addison-Wesley. ISBN 978-0-13-187286-8.