Skip to content

Latest commit

 

History

History
30 lines (19 loc) · 3.26 KB

6-fpga-field-programmable-gate-array.md

File metadata and controls

30 lines (19 loc) · 3.26 KB

FPGA — Field Programmable Gate Array

Не всё по силам ASIC'ам. Всё, что касается минимального интеллекта и возможности повлиять на поведение чипа — это к FPGA.

Это программируемая микросхема, в которую заливается прошивка, определяющая её роль в оборудовании.
Как и ASIC, FPGA изначально нацелен на решение какой-то задачи.
То есть FPGA для пакетной сети и для управления подачей топлива в инжектор двигателя — вещи разные и прошивкой одно в другое не превратишь.
Итак, имеем специализированный чип с возможностью управлять его поведением и модернизировать алгоритмы.

FPGA может использоваться для маршрутизации пакетов, перемаркировки, полисинга, зеркалирования.
Например, извне мы можем сообщить чипу, что нужно отлавливать все BGP и LDP пакеты, отправляемые на CPU, в .pcap файл.

Зачем здесь гибкость и возможность программирования? Примеров много:

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

Получается без разработки новых чипов, перепайки транзисторов, выбраковывания целых партий, просто новой прошивкой можно сделать всё вышеприведённое и больше.

Опять же, если обнаружена неисправность, то можно написать патч для ПО, который сможет её починить, и при этом обновить только конкретно данный чип, без влияния на всю остальную систему.

FPGA значительно дороже в разработке и производстве, главным образом из-за заранее заложенной гибкости.

Из-за гибкости возможностей FPGA иногда используются для обкатки какой-либо новой технологии, когда с помощью прошивки можно менять поведение компонента. И когда логика обкатана, можно запускать в производство ASIC, реализующий её.