Олимпиада "Наноэлектроника"
Неофициальный сайт

Меню сайта
Категории раздела
Рефераты (курсы КП, ПК, ИТ и Сети) [95]
Рефераты по курсу "Компьютерный практикум", "Применение персональных компьютеров", "Информационная техника" и "Сети ПК" в НИЯУ МИФИ
Аналитика (курсы КП, ПК, ИТ и Сети) [1]
ТЗ учебных проектов [7]
Виртуальные калькуляторы [2]
Пресс-релизы [4]
Материалы по итогам учебных проектов
Наш опрос
Оцените сайт олимпиады
Всего ответов: 122
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Главная » Статьи » Публикации студентов МИФИ » Рефераты (курсы КП, ПК, ИТ и Сети)

FPGA и SoCs – современная элементная база сетевого оборудования

 

Министерство образования и науки Российской Федерации

Федеральное государственное автономное образовательное учреждение высшего профессионального образования  «Национальный исследовательский ядерный университет «МИФИ»

 

Факультет «Автоматики и Электроники»

Кафедра «Микро- и наноэлектроники» 

Отчет о курсовом проекте

по курсу "Сети-15" 

«FPGA и SoCs – современная элементная база сетевого оборудования»

Подготовили студенты группы А9-11:

Макарова С.В.

Моторин Д.Н.

Преподаватель: доц. Лапшинский В.А.

 

Аннотация

Данная публикация содержит информацию о FPGA и SoCs, как элементной базе сетевого оборудования, примеры использования и оценку целесообразности такого применения.

Ключевые слова: компьютерная сеть, сетевое оборудование, ПЛИС, система на кристалле (SoC), IP-ядра.

Отчет содержит 31 стр.,  8 рис, 13 источников.

 

Оглавление

Определения...............................................................................................................4

Введение....................................................................................................................5

1. Сетевое оборудование.............................................................................................6

1.1. Типы................................................................................................................6

1.2. Сетевая плата...................................................................................................8

1.3. Сетевой коммутатор.......................................................................................10

1.4. Маршрутизатор..............................................................................................12

1.5. Сетевой трансивер..........................................................................................13

2. FPGA...................................................................................................................14

2.1. Что такое PLD, FPGA и ASIC.........................................................................14

2.2. Принципиальная структура FPGA....................................................................16

2.3. Обзор семейств FPGA компании Xilinx...........................................................17

3. SoC......................................................................................................................18

3.1. Понятия «система на кристалле» и IP-ядро..................................................... 18

3.2. Устройство СнК.............................................................................................19

3.3. РазработкаСнК...............................................................................................20

4. FPGA как элементная база для реализации СнК..................................................... 21

5. Применение FPGA - плат.......................................................................................23

5.1. Процессорный Ethernet-мост с использованием ПЛИС......................................23

5.2. DPI.................................................................................................................27

   5.3. Анализ и захват трафика..................................................................................27

   5.4. Сетевая карточка..............................................................................................28

   5.5. Сетевой ускоритель..........................................................................................28

   5.6. Оборудование для измерений........................................................................... 29

6. Заключение............................................................................................................30

7. Список использованных источников....................................................................... 31

 

Введение

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

Под ЛВС понимают совместное подключение нескольких отдельных компьютерных рабочих мест (рабочих станций) к единому каналу передачи данных. Благодаря вычислительным сетям мы получили возможность одновременного использования программ и баз данных несколькими пользователями.

Преимущества, получаемые при сетевом объединении персональных компьютеров в виде внутрипроизводственной вычислительной сети:

• разделение ресурсов;

• разделение данных;

• разделение программных средств;

• разделение ресурсов процессора.

 

1. Сетевое оборудование

В состав активного оборудования включаются следующие типы приборов:

Сетевой адаптер — плата, которая устанавливается в компьютер и обеспечивает его подсоединение к ЛВС.

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

Концентратор (активный хаб, многопортовый репитер) — прибор с 4-32 портами, применяемый для объединения пользователей в сеть.

Мост — прибор с 2 портами, обычно используемый для объединения нескольких рабочих групп ЛВС, позволяет осуществлять фильтрацию сетевого трафика, разбирая сетевые (MAC) адреса.

Коммутатор — прибор с несколькими (4-32) портами, обычно используемый для объединения нескольких рабочих групп ЛВС (иначе называется многопортовый мост).

Маршрутизатор (роутер) — используется для объединения нескольких рабочих групп ЛВС, позволяет осуществлять фильтрацию сетевого трафика, разбирая сетевые (IP) адреса.

Медиаконвертер — прибор, как правило, с двумя портами, обычно используемый для преобразования среды передачи данных (коаксиал-витая пара, витая пара-оптоволокно).

Сетевой трансивер — прибор, как правило, с двумя портами, обычно используемый для преобразования интерфейса передачи данных (RS232-V35, AUI-UTP).

 

2. FPGA

2.1. Что такое PLD, FPGA  и ASIC

На сегодняшний день существует множество различных типов интегральных микросхем. Наиболее интересные и устоявшиеся: PLD (Programmable Logic Devices), FPGA (Field Programmable Gate Arrays), ASIC (Application Specific Integrated Circuit).

PLD (ПЛУ) являются цифровыми интегральными микросхемами, состоящими из программируемых логических блоков и программируемых соединений между этими блоками. Внутренняя архитектура PLD определена производителем таким образом, что они могут быть перепрограммированы для выполнения самых различных функций. Данные интегральные схемы имеют малую емкость, характеризуются отсутствием встроенных аппаратных блоков, таких как память, процессорные ядра и т.д. Преимуществом данной технологии является то, что при отключении питания микросхема сохраняет всю запрограммированную логику работы, поэтому после включения питания повторное программирование не требуется.

FPGA (ПЛИС) представляют собой логические устройства, содержащие двумерный массив универсальных логических ячеек и программируемых переключателей. Логические ячейки конфигурируются так, чтобы они выполняли необходимые элементарные функции, а программируемый переключатель осуществляют требуемое межсоединение логических ячеек. Проект, требующий разработки, может быть реализован с помощью определения функций каждой логической ячейки и выборочной установки каждого программируемого переключателя. В архитектуру данных интегральных микросхем включено также огромное многообразие аппаратных блоков, таких как DSP-ядра, блоки памяти большой емкости, процессорные и сопроцессорные ядра, а также различные интерфейсные модули. Данные интегральные микросхемы также могут работать на высоких частотах (до 600 MHz), что позволяет использовать их в самых передовых разработках. FPGA, однако, теряют свою конфигурацию при отключении питания, что приводит к необходимости применения внешней памяти. 

ASIC (заказные интегральные микросхемы) в свою очередь содержат сотни миллионов логических вентилей и могут выполнять чрезвычайно сложные функции. Данный тип устройств разрабатывается для использования в составе специальных приложений, т.е. призван максимально эффективно решать ограниченный круг задач. Высокая сложность данного типа интегральных микросхем, привела к делению на следующие основные подтипы: структурированные ASIC, схемы на стандартных элементах (Standard Cell) и полностью заказные интегральные схемы (Full Custom). 

Таким образом, FPGA занимают промежуточное положение между сравнительно простыми CPLD и сложными ASIC. Данное положение FPGA позволяет использовать их в ряде важных технических решений, таких как:

  • Прототипирование ASIC.

  • Создание специфических сопроцессоров для работы в составе системы совместно с ведущим процессором. 

  • Цифровая обработка сигналов. 

  • Физический уровень передачи данных [1].

 

2.2. Принципиальная структура FPGA

Структурно  FPGA состоит из следующих компонентов (Рисунок 1):

 

  • Logic Cell. Логическая ячейка обычно содержит небольшие комбинационные схемы с перестраиваемой конфигурацией и один или несколько триггеров D-типа;

  • Macro Cell. Макро ячейка представляет некоторый законченный физический блок, дополняющий базовый функционал FPGA. Т.е. Блок, спроектированный и изготовленный на транзисторном уровне. Обычно используют макро ячейки, содержащие блоки памяти, комбинационные умножители, схемы управления временем, периферийные схемы. Продвинутые FPGA устройства могут даже содержать одно или несколько готовых процессорных ядер;

  • S. Представляет собой программируемый переключатель.

                               

Рисунок 1. Принципиальная структура FPGA

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

 

2.3. Обзор семейств FPGA компании Xilinx

Лидерами рынка ПЛИС являются компании Xilinx, Altera и Lattice. Они занимают 95% всего рынка. Остальные 5% делят компании Actel, Atmel, QuckLogic, AMIS и NEC.

Рассмотрим семейства FPGA компании Xilinx.

Spartan — массовые FPGA, имеющие довольно низкую стоимость и предназначенные для решения задач, не требующих больших вычислительных мощностей.

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

Kintex  —  имеют большой объем памяти и расширенные ресурсы DSP, что делает это семейство идеальным для построения LTE, светодиодных и 3D цифровых видео дисплеев, устройств отображения для медицины и авиации;

Virtex — самые быстрые и емкие FPGA, содержащие самую богатую периферию и наибольшее количество дополнительных блоков, таких как DSP-ядра, блочная память и т.д. Все это делает данное семейство FPGA сравнимым с кристаллами ASIC. В состав семейства входят три типа микросхем: Virtex_II, Virtex_II Pro и Virtex4;

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

Все микросхемы поддерживают JTAG интерфейс. Основные параметры микросхем приведены в табл. 1.

 

Таблица 1. Основные параметры ПЛИС фирмы Xilinx

      

 

 

 

 

 

 

 

3. SoC

3.1. Понятия “система на кристалле” и IP-ядро

“Система на кристалле” (СнК, System-on-Chip, SoC) – современная методология проектирования, предполагающая многократное повторное использование законченных и протестированных сложно-функциональных блоков (IP-ядро). По критерию гибкости повторного использования все IP-ядра могут быть разделены на следующие классы:

  • синтезируемые ядра (“soft-core”) – технологически независимые блоки, описание которых осуществляется на высокоуровневых языках описания аппаратуры;

  • ядра класса “firm”, ориентированные на определенную технологию, привязка к которой осуществляется на уровне предварительного разбиения на структурные единицы в выбранном технологическом процессе для достижения требуемых характеристик по быстродействию и площади;

  • “жесткие” ядра (“hard-core”) – привязанные к одному технологическому процессу ядра (готовая топология) [1].

    Если разместить все необходимые цепи на одном полупроводниковом кристалле не удается, применяется схема из нескольких кристаллов, помещенных в единый корпус (System in a package, SiP). SoC считается более выгодной конструкцией, так как позволяет увеличить процент годных устройств при изготовлении и упростить конструкцию корпуса [6].

    В качестве технологической платформы для реализации цифровых СнК могут выступать ПЛИС. При этом активно используются IP-ядра класса “soft-core”.

 

3.2. Устройство СнК

Типичная SoC содержит:

  • один или несколько микроконтроллеров, микропроцессоров или ядер цифровой обработки сигналов (DSP). SoC, содержащий несколько процессоров, называют многопроцессорной системой на кристалле (MPSoC);

  • банк памяти, состоящий из модулей ПЗУ, ОЗУ, ППЗУ или флеш;

  • источники опорной частоты, например, кварцевые резонаторы и схемы ФАПЧ (фазовой автоподстройки частоты);

    • таймеры, счетчики, цепи задержки после включения;

    • блоки, реализующие стандартные интерфейсы для подключения внешних устройств;

    • блоки АЦП и ЦАП;

    • регуляторы напряжения и стабилизаторы питания [6].

 

4. FPGA как элементная база для реализации СнК

Преимущества реализации СнК на базе FPGA:

  • малые затраты на разработку и создание опытных образцов;

  • возможность многократной коррекции проекта;

  • использование хорошо проверенных серийных изделий;

  • более простой процесс тестирования и отладки (возможность реализации и отладки «по частям»).

СнК на базе FPGA имеют практически те же достоинства, что и системы на плате, но отличаются лучшими техническими характеристиками  —  более низким энергопотреблением, меньшими габаритами и массой. При этом по таким параметрам как производительность и энергопотребление СнК на базе FPGA уступают СнК, реализованным в виде ASIC.

Методика интеграции в составе одной FPGA всех системных функций, включая процессорные, пока не получила достаточно широкого распространения. В большинстве проектов FPGA используются совместно с микропроцессорами и микроконтроллерами, выполняя различные функции специальной обработки данных. Однако ведущие производители FPGA активно предлагают разработчикам синтезируемые процессорные СФ-блоки, обеспечивающие достаточно высокие характеристики при использовании ограниченных ресурсов кристалла. Так как современные FPGA содержат несколько десятков тысяч LUT, открываются возможности реализации на кристалле систем, содержащих несколько процессорных ядер и значительное число периферийных и специализированных блоков. По зарубежным данным уже сейчас около трети разработчиков используют в своих проектах FPGA с реализованными процессорными ядрами. В ближайшие годы следует ожидать существенного возрастания доли проектов, использующих процессорные ядра в составе систем, реализованных на базе FPGA [3].

 

5.  Применение FPGA-плат

5.1. Процессорный Ethernet-мост с использованием ПЛИС

Типичная архитектура состоит из Ethernet-коммутатора, который, в свою очередь, состоит из нескольких 10-Гбит интерфейсов, соединенных с набором линейных плат, ядром которых является сетевой процессор (рис. 2). Ethernet-коммутатор содержит набор XAUI (Ten) Attachment Unit Interface) портов. Каждый такой порт состоит из четырех 3,125-гигабитных последовательных портов (SERDES), служащих для присоединения линейных модулей, и размещенных на системной или несущей плате.

 

                               

Рис. 2.  Типичная архитектура системы, реализующей Ethernet-протокол

 

Канал передачи данных, соединяющий XAUI с интерфейсом SPI4.2, состоит из четырех основных компонентов: блока последовательных портов XAUI SERDES-, 10-Гбит/с блока MAC, схемы преобразования (PTL — Protocol Translation Logic) и блока интерфейса SPI4.2. Управление системой осуществляет встроенный микропроцессор (рис. 3) .

 

                                     

Рис. 3. Структура моста между интерфейсами XAUI и SPI4.2

Мост между интерфейсами XAUI и SPI4.2 — необходимый элемент многих коммутирующих Ethernet-систем. Преимущество применения FPGA состоит в возможности обеспечить общую гибкость, необходимую для работы с произвольным числом сетевых процессоров и Ethernet-коммутаторов, в возможности разработки настраиваемых мостовых схем, позволяющих группировать различные потоки Ethernet-данных, а также объединять несколько мостов в одном блоке. Тем не менее, поскольку при разработке цена всегда является одним из ограничивающих параметров, важно, чтобы стоимость, энергопотреб­ление и занимаемая площадь были как можно меньше [13].

В этом случае правильнее использовать FPGA со встроенными блоками, реализующими необходимые интерфейсы, например микросхемы семейства LatticeSCM FPGA, которые содержат готовые блоки, реализующие 10-гигабитный MAC и интерфейс SPI4.2 (рис. 4). При этом на FPGA остается достаточно свободных ресурсов и памяти для реализации мостовой схемы. Если требуется построить одноканальный мост с SPI4.2 на XAUI (или подобный протокол на основе Ethernet), то схему можно реализовать на недорогой и экономичной микросхеме FPGA LatticeSCM15 в компактном 256-выводном корпусе BGA размером 17 × 17 мм [13].

 

                                               

Рис. 5. Архитектура FPGA LatticeSCM FPGA

 

5.2. DPI

Интеллектуальный DPI реализуется на базе процессора, а передача пакетов и простая фильтрация (например, много правил 5-tuple) реализуется на базе ПЛИС. 

Как это можно сделать:

  • Потоки, которым мы доверяем, либо решение по ним уже находится в таблице по FPGA, проходят насквозь чипа с небольшой задержкой, остальные копируются на CPU и там делается обработка.
  • FPGA может снимать часть нагрузки с CPU.
  • На процессоре обрабатывается только тот трафик, который интересен — FPGA отбирает по заданным критериям пакеты и копирует их на CPU, всё остальное проходит через FPGA без значительной задержки.

Все эти три варианта могут быть скомбинированы в различных вариациях. Так же FPGA может, например, собирать статистику по потокам[8]. 

 

5.3. Анализ и захват трафика

Иногда такие платы используют для захвата трафика и дальнейшей постобработке на CPU.

Здесь от ПЛИС требуется:

  • Фильтрация по полям (типа 5-tuple): для отбора только того трафика, который интересен.
  • Синхронизация по PTP, для аппаратного timestamping пакетов: фиксируется время, когда пришел пакет, и эта метка размещается в конец пакета. Затем на CPU можно посчитать, например, время отклика на запрос.
  •  Слайсинг — отрезание только необходимого куска данных (чаще всего это первые N байт от пакета — для того, чтобы копировать только заголовки, т.к. очень часто данные не очень интересны).
  • Буферизация пакетов: 
  • если CPU не успевает записывать в случае каких-то берстов, то можно это сгладить, если разместить пакеты во внешней памяти на пару гигабайт
  • если мы хотим гарантировать запись пакетов в течении небольшого времени (например, после срабатывания триггера) — чаще всего применимо для больших скоростей (40G/100G).
  • Раскидывания пакетов по очередям и ядрам CPU.

Имея доступ к самому низкому уровню, можно поддержать любой протокол или туннелирование [8].

 

5.4. Сетевая карточка

Карточки с ПЛИС можно использовать в качестве обычного NIC, но смысла в этом не много. На сегодняшний момент на всех скоростях Ethernet (до 100G включительно) есть сетевые карточки на базе ASIC'ов. По цене они будут дешевле, чем решения на FPGA.Смысл появляется только тогда, когда необходимо обеспечить уникальную функцию, которой никогда не будет в чипе от Intel'a. Например, аппаратного шифрования поГОСТу или Кузнечику.[8]. 

 

5.5.  Cетевой ускоритель

Снижение нагрузки с CPU. Когда появляются большие скорости, процессор не успевает всё делать: хочется часть задач с него снять. Например, что происходит, когда вы копируете какой-то большой объем данных по сети? 

Процессор должен:

  • принять какой-то объем данных;
  • поместить в TCP, разбить на несколько пакетов, согласно MTU;
  • подставить заголовок (MAC/IP-адреса);
  • рассчитать чексуммы IP и TCP (хотя большинство NIC это уже берут на себя);
  • передать дескриптор в NIC.

Так же надо:

  • следить за ответами;
  • перепосылать пакеты, если пакет потерялся;
  • снижать/повышать tcp-window и так далее.

TCP-стек может быть реализован на FPGA. Есть готовые IP-ядра, которые всё это делают: например, реализации TCP и UDP стеков от компании PLDA. Они имеют стандартные интерфейсы (Avalon или AXI), что позволяет их легко соединять с другими IP-ядрами [8].

 

5.6. Оборудование для измерений

Эмуляторы сетей. Очень часто происходит, что надо проверить инженерное решение в лаборатории, т.к. в боевых условиях это может быть очень дорого. Чаще всего необходимо уметь задавать такие параметры как задержка/джиттер, потери пакетов. Без аппаратной поддержки (ПЛИС) здесь не обойтись, но так же нужен и «умный» процессор, для эмуляции различных протоколов. Для того чтобы не разрабатывать устройство с нуля можно взять сервер и вставить PCIe карточку с FPGA.

Ускорение вычислений. Такие карточки так же можно использовать для ускорения каких-то вычислений или моделирования, например, для биологии или химии. В таком случае порты Ethernet могут и не понадобиться, а с другой стороны могут быть полезны, если захочется сделать ферму из плат: входные или выходные данные для расчета передавать через Ethernet[8].

 

6. Заключение

Можно сделать вывод, что СнК на базе FPGA будут конкурировать и постепенно вытеснять системы на плате. При этом вместо микропроцессоров и микроконтроллеров в этих СнК будут использоваться различные варианты процессорных СФ-блоков. СнК в виде ASIC перспективны для реализации высокобюджетных проектов, предполагающих последующий крупносерийный выпуск изделий. Они будут применяться в тех случаях, когда реализация заданных технических характеристик невозможна с помощью других. Учитывая достаточно высокие риски, связанные с разработкой СнК в виде ASIC, можно ожидать, что доля таких проектов будет относительно небольшой. СнК на базе FPGA могут стать основной элементной базой для широкой номенклатуры мало- и среднесерийных изделий с ограниченными требованиями к параметрам [3].

Преимущества использования ПЛИС

  1. Простота и скорость разработки, удобство программирования, отладки и экспериментирования по сравнению с разработкой специализированной интегральной схемой для коммуникационного оборудования.

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

  3. Удобство перепрограммирования ПЛИС позволяет реализовывать в ней алгоритмы маршрутизации, специализированные под задачу.

Недостатки ПЛИС

  1. Более низкая эффективность по сравнению со специализированными интегральными схемами.

  2. Малый объем встроенной статической памяти (SRAM).

Специфика использования ПЛИС в сетевом оборудовании позволяет нивелировать недостатки. Алгоритмы работы не являются вычислительно сложными, поэтому даже сравнительно низкая частота ПЛИС является достаточной для решения поставленных задач. Встроенная память требуется в основном лишь для буферизации данных. Также имеется возможность подключить внешнюю память DRAM при необходимости.

 

7. Список использованных источников

1. Е.И. Литвинов. Лабораторный практикум, проектирование цифровых устройств на базе FPGA    фирмы Xilinx/ Е.И. Литвинов, И.И. Шагурин, 2012. -173с.

2. Шагурин И., Шалтырев В., Волов А. «Большие» FPGA как элементная база для реализации систем на кристалле//Электронные компоненты, 2006, №5, c.83—88.

3. Системы на кристалле. Особенности реализации и перспективы применения// Время электроники//

 http://www.russianelectronics.ru/leader-r/review/2189/doc/40316/

4. ПЛИС// «Википедия» — универсальная энциклопедия

// https://ru.wikipedia.org/wiki/ПЛИС#FPGA

5. Программируемая пользователем вентильная матрица// «Википедия» — универсальная энциклопедия//

https://ru.wikipedia.org/wiki/Программируемая_пользователем_вентильная_матрица

6. Система на кристалле// «Википедия» — универсальная энциклопедия//

https://ru.wikipedia.org/wiki/Система_на_кристалле

7. Сетевое оборудование// «Википедия» — универсальная энциклопедия//

https://ru.wikipedia.org/wiki/Сетевое_оборудование

8. Ethernet + PCIe + FPGA = LOVE// habrahabr//

http://habrahabr.ru/company/metrotek/blog/267183/

 

9. Компактный, недорогой и экономичный процессорный Ethernet-мост с использованием плис// «Время электроники»//

http://www.russianelectronics.ru/developer-r/review/2189/doc/44095/

Категория: Рефераты (курсы КП, ПК, ИТ и Сети) | Добавил: mifistka11 (21.12.2015) | Автор: Макарова С.В., Моторин Д.Н.
Просмотров: 3189 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа
Поиск
Друзья сайта