Конвейер обработки пакетов

Конвейер обработки пакетов близок к модели, рекомендованной компанией Xilinx в [9] и модель используемая в проекте Liberouter [8]. заголовки пакетов обрабатываются в конвейре в то время, когда полезная нагрузка должна быть буферизирована, как показано на рисунке 1.

 

Рисунок 1

 

В начальной реализации работы для буферизации пакетов используется встроенная в чип оперативная память, которая называется Block RAM или BRAM, доступная в ПЛИС. В финальном релизе пакеты буферизируются во внешней памяти типа DDR. Т.к. доступ к памяти может быть узким местом конвейра обработки пакетов, реализация минимизирует копирование пакетов. При реализации платформы было решено использовать модель пересылки пакетов с общей памятью. Такое решение позволяет избежать ненужных операций копирования данных. Также модель имеет другую особенность: даже широковещательные (broadcasting) и мультивещательные (multicasting) операции могут быть  фактически реализованы без копирования данных.

Прибывшие пакеты буферизируются, в то время как их заголовки обрабатываются во входном блоке. Входной блок применяет определенные правила для фильтрации пакетов и пересылает заголовок в модуль перенаправления. Модуль коммутации/маршрутизации ответсвеннен за то,  через какой интерфейс пакет будет переслан. Для  широковещательных и мультивещательных операций может быть выбрано неколько интерфейсов. Для различных типов приложений могут быть разработаны  различные модули коммутации/маршрутизации. После принятия решения, пакет может быть отфильтрован на выходе и заголовок персылается в выходной буфер исходящего порта. Пакет будет собран в процессе передачи: когда запланировано, заголовок будет передан тз буфера заголовков, в то время как полезная нагрузка будет считана из буфера полезной нагрузки.

Каждый блок имеет функции локального управления энергосбережением и вместе с центральным менеджером питания получается эффективное решение по управлению потреблением.

Конвейер обработки пакетов иллюстрирует пример по реализации пересылки пакетов. Однако, возможности по разработке новых приложений с использованием платформы безграничны; с использованием уже существующих модулей может быть лего проведена разработкка новых приложений в части мониторинга, маршрутизации и коммутации, глубокой обработки пакетов и т.д.. Это типовые модели, и заранее разработаны с учетом легкой кастомизации и реализации на базе дугих ПЛИС. Кроме того, принято во внимание масштабируемость для них. Для большинства моделей масштабируемость обеспечивается дизайном, предоставляющим потактовую модель аппаратной част. Некоторые симуляционные модели тем не менее требуют высокого использования процессора и длинного программного цикла. Такие модели апрроксимируются.

Входные и выходные блоки

Входящие фреймы данных будут сохранены в  блоках памяти BRAM, доступных в ПЛИС на время обработки заголовков. Для приёмной информации используются входные модули (рисунок 2).

Рисунок 2

Такие индивидуальные входные модули получают фреймы от приемопередатчика физического уровня PHY. Битовый поток десереализируется и затем передается одновременно и во входной буфер и в фильтры заголовка. Входные фильтры совершают действия по фильтрации до  модуля коммутации/маршрутизации. До того как новые фреймы будут приняты, проверяется заполненность буфера с целью проверки наличия свободных слотов. Модуль, который называется менеджер BRAM, отвечаетза управлени буферами BRAM, назначенными для вход.

Рисунок 3

Выходной модуль (рисунок 3) отвечает за передачу маршрутизированных фреймов. Чтобы это сделать, модуль верхнего уровня посылают новые заголовки пакетов совместно с информацией о буфере полезной нагрузки. Входящий порт и адрес BRAM требуется для извлечения ассоциированной полезной нагрузки. Информация заголовка сохраняется в буфере заголовком, который функционирует как буфер FIFO.  Этот буфер играет роль выходного буфера, но с учетом того, что есть желание обойтись без копирования полезной нагрузки, в очередь устанавливаются только заголовки. Мультиплексор заголовок/полезная нагрузка забирает заголовки из FIFO, начинает посылать их затем присоединяет соответствующую полезную нагрузку. Сериалайзер переводит пакет в формат, который требуется для приемопередатчика физического уровня PHY.

 

Ссылки

  1. D. Antos, V. Rehak, J. Korenek: Hardware Router’s Lookup Machine and its Formal Verification, ICN’2004 Conference Proceedings, 2004.
  2. M. Ciobotaru, M. Ivanovici, R. Beuran, S. Stancu, Versatile FPGA-based Hardware Platform for Gigabit Ethernet Applications, 6th Annual Postgraduate Symposium, Liverpool, UK, June 27-28, 2005.
  3. J. Ou, V. K. Prasanna, Rapid Energy Estimation of Computations on FPGA-based SoftProcessors, IEEE System-on-Chip Conference, 2004.
  4. Werner M., Richling J., Milanovic N., Stantchev V.: Composability Concept for Dependable Embedded Systems, Proceedings of the International Workshop on Dependable Embedded Systems at the 22nd Symposium on Reliable Distributed Systems (SRDS 2003), Florence, Italy, 2003.
  5. OSCI SystemC 2.2.0 Documentation: User’s Guide, Functional Specifications, LanguageReference Manual. Online: http://www.systemc.org/
    D. Teuchert, S. Hauger: A Pipelined IP Address Lookup Module for 100 Gbps Line Ratesand beyond, The Internet of Future, pp. 148—157., ISBN 978-3-642-03699-6 (2009)
  6. Intel White Paper: Enhanced Intel SpeedStep Technology for the Intel Pentium M Processor, Online: ftp://download.intel.com/design/network/papers/30117401.pdf, March 2004.
  7. Liberouter project homepage, http://www.liberouter.org/
  8. Nick Possley, Traffic Management in Xilinx FPGAs, White Paper, April 10, 2006
  9. A. Kennedy et. al., Low Power Architecture for High Speed Packet Classification,ANCS’08, November 6–7, 2008, San Jose, CA, USA.
  10. A. Iranli and M. Pedram: System-level power management: An overview, In: The VLSIHandbook Second Edition, Edited by W-K. Chen, Taylor and Francis, December 2006

Источники

  • https://hal.inria.fr/hal-01056561/file/030_scalopes_eunice2010_final.pdf

 

Материал предназначен для использования в образовательных целях