Почему FPGA не являются повсеместными?

Чтение о ПЛИС, если я правильно понимаю, они в основном полностью конфигурируют логические схемы логики. Будучи этим, вы можете проектировать с ними что угодно. Можно спроектировать все по самому настраиваемому способу и, следовательно, выполнить те же самые цели в гораздо более эффективном виде, которые можно получить с помощью микроконтроллера. Имея это, похоже, что FPGA бьет микроконтроллер в любое время и в любой день. Поэтому мой вопрос заключается в том, действительно ли FPGA действительно удивительны, что мешает им быть более распространенными, чем микроконтроллеры? С этой точки зрения, мне кажется, что FPGA давно должны были уничтожить микроконтроллеры. Так почему же это не так? Это стоимость, трудность программирования FPGA или что-то еще?

61 голос | спросил Utku 13 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowSun, 13 Sep 2015 15:26:57 +0300 2015, 15:26:57

8 ответов


92

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

  1. <Б> Стоимость . ПЛИС более дороги, чем микроны, для такой же сложности логики.

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

  3. Простота разработки . Легче писать исполняемый код, чем определять логику для всех, кроме небольших проблем. Даже скромные проекты микроконтроллеров имеют тысячи строк кода. Разработка эквивалентных логических определений займет гораздо больше времени и будет гораздо сложнее отлаживать и проверять.

  4. Потребляемая мощность . Поскольку FPGA предназначены для высокоскоростных операций, которые микроны не могут обрабатывать (иначе вы бы использовали микро), они не оптимизированы для малой мощности. Это делает их непригодными для некоторых приложений с малой потребляемой мощностью. Некоторые микрофоны имеют токи сна менее 1 мкА и могут работать только на нескольких ÂμA при низких тактовых частотах. Попробуйте найти FPGA, который может это сделать.

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

ответил Olin Lathrop 13 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowSun, 13 Sep 2015 15:41:47 +0300 2015, 15:41:47
44

Одно из различий, которое я не видел здесь, - это то, что FPGA используются и ведут себя по-разному для процессоров.

FPGA действительно хорошо справляется с одной и той же задачей снова и снова. Например, обработка видео, аудио или радиосигналов. Или маршрутизация Ethernet-пакетов. Или имитация потока жидкости. Любая ситуация, когда у вас есть много одинаковых данных, которые бросаются на вас очень быстро, и вы хотите иметь дело со всем этим одинаково. Или вы хотите повторять один и тот же алгоритм. У FPGA действительно нет «задач», которые запускаются и останавливаются [1], вся его работа заключается в том, чтобы делать то же самое с любыми данными, которые она получает, до тех пор, пока она включена. Он не меняет передач, он ничего не делает. Это конечный работник производственной линии. Он будет делать то же самое многократно, насколько это возможно, навсегда.

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

ПЛИС и ЦП - это полные противоположности. Товар ЦП - это время - оно должно ускорить работу. Чем быстрее выполняется ваше приложение, тем лучше.

Товары FPGA - это пространство. Ваша FPGA только такая большая, и для выполнения требуемой задачи доступно только так много доступных ворот. В большинстве случаев проблема больше, чем скорость [2].

Можно сделать действие FPGA, как процессор. Вы можете поместить ядро ​​центрального процессора в FPGA, однако его очень сложно оправдать по причинам, описанным другими [3]. FPGA и CPU - это противоположности, имеющие свои сильные и слабые стороны, и оба имеют свое собственное место в результате.


Примечания:

1) FPGA может быть спроектирован для выполнения различных задач, но даже тогда это будет определенный номер, для которого он был предварительно разработан.

2) Скорость также является спецификацией FPGA. Это действительно компромисс между скоростью и размером.

3) Ввод процессора в FPGA выполняется относительно часто, однако это делается в каждом конкретном случае, в зависимости от конкретных приложений. Например, если вам нужен действительно крошечный микроконтроллер и есть дополнительное пространство FPGA.

И наконец: этот ответ - большое упрощение - ПЛИС используются чрезвычайно разнообразными и сложными способами, и это очень краткий обзор того, как они используются в целом.

ответил stanri 13 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowSun, 13 Sep 2015 20:48:24 +0300 2015, 20:48:24
21

Как говорит Олин, что-то вроде микро более эффективно для многих задач, и вы почти всегда найдете микроприемник везде, где появляется FPGA. Используемая площадь кремния (что приводит к стоимости нелинейным способом), а потребляемая мощность намного меньше. По этой причине нет ничего необычного в реализации «мягкого» MCU на FPGA, но стоимость и производительность такого микрофона недовольны.

Некоторые современные ПЛИС содержат один или несколько «твердых» ядер, таких как вездесущие серии ARM. Кроме того, они могут содержать выделенные блоки памяти, так как это действительно неэффективно, чтобы сделать память из ворот. 32-битное микроядро занимает небольшую часть площади кремния в типичной FPGA, что дает вам представление об относительных затратах.

Разработка значительно сложнее, и IP не так свободно доступен, как микрофоны и выделенные SOC-решения - например, LCD-контроллеры, PCI-интерфейсы, Ethernet-MAC. Причина частично заключается в том, что, раскрывая логические описания HDL, они переносят дизайн не только на создание дизайна. Другая причина заключается в том, что производительность зависит от компоновки логики в FPGA, что требует больших усилий во время разработки.

Еще одно осложнение заключается в том, что большинство сложных ПЛИС основаны на ОЗУ для конфигурации, а затраты на процесс таковы, что требуется внешняя энергонезависимая память для хранения конфигурации и памяти программ для любого MCU на борту. Эта память должна быть загружена в ОЗУ при включении питания.

ПЛИС являются чрезвычайно полезными инструментами на панели инструментов, но в ближайшее время они не будут заменять MCU или ASIC.

ответил Spehro Pefhany 13 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowSun, 13 Sep 2015 16:13:26 +0300 2015, 16:13:26
9

С точки зрения энергопотребления и использования кремния FPGA очень плохо по сравнению с микропроцессором.

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

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

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

ответил Kevin White 13 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowSun, 13 Sep 2015 19:59:10 +0300 2015, 19:59:10
9

Лучшее использование кремния для работы - это ASIC, ничего не теряется, но они имеют огромную кривую обучения, NRE и негибкость.

Существует два способа создания гибкости в чипе. a) Используйте ALU с оптимизированным пространством и используйте его снова и снова по сохраненным данным. Это называется MCU и требует обширной области кремния, которая «ничего не делает», программная память, широкие шины, работающие от устройства к блоку, и переключатели доступа к шине. b) иметь мелкозернистую логику с несколькими дополнительными оптимизированными по пространству частями, такими как множители, небольшие операционные системы и простые процессоры. Это называется FPGA и требует обширной области кремния, которая «ничего не делает», программируемых переключателей и линий связи.

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

Когда приложение является легким, но большим объемом, в стоимость преобладают упаковка, а не кремний, и любой из них жизнеспособен. У Altera есть очень маленькие очень маломощные FPGA, чтобы конкурировать с MCU с несколькими долларами.

Для приложений с низким объемом затраты на разработку, как правило, доминируют, и там MCU выигрывают, полагая, что они имеют скорость

ответил Neil_UK 15 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowTue, 15 Sep 2015 11:01:15 +0300 2015, 11:01:15
7

Микропроцессорные dsystems и более поздние микроконтроллеры смогли достичь огромной функциональности благодаря своей способности использовать многие из отдельных частей схемы для выполнения различных задач в разное время. Я думаю, что поучительно сравнить аркадный танк, разработанный в 1976 году, с игрой Combat, которая работает на второй в мире микропроцессорной игровой машине Atari 2600. Хотя в игровом процессе есть некоторые отличия, аппаратное обеспечение Atari 2600 было по существу спроектировано для реализации таких игр, как Tank, при минимальных затратах; тот факт, что его можно было заставить играть в разные игры, вставляя различные картриджи с ПЗУ, был приятным бонусом.

Игра Tank позволяет двум игрокам управлять танками по экрану и выстреливать друг в друга. Он имеет «скользкие» счетчики для каждой позиции X и Y каждого танкера, позиции игроков X и Y каждого игрока, счетчик вверх /вниз для угла каждого игрока и угол выстрела каждого игрока, счетчик для каждого игрока, растровый луч X и Y -позиционные счетчики и множество контрольных схем поверх этих вещей. Он имеет аппаратное обеспечение для извлечения данных из плей-листа из ПЗУ и отображения его, а также имеет оборудование для извлечения форм для танков двух игроков и баллы из ПЗУ и отображения их.

Atari 2600 имеет счетчик скольжения для горизонтальных положений каждого из двух игровых объектов, каждого из двух ракетных объектов и одного дополнительного объекта, называемого «шаром», который не используется в Combat, но используется в некоторых других играх , Для каждого из объектов игрока он имеет аппаратное обеспечение для вывода шаблона, хранящегося в 8-битной защелке, а также «задержанную» восьмибитную защелку для каждого игрока, который копируется на основную 8-битную защелку, когда у игрока другого игрока форма обновлена. Он также имеет горизонтальный счетчик положения луча и 20-битную защелку формы игрового поля, которая выводится на экран дважды на линию сканирования, при этом правая копия появляется как повторение или отражение слева. У этого есть аппаратное обеспечение, чтобы обнаружить столкновения, но не делать ничего из-за них. not имеет какое-либо оборудование для вертикальных позиций любых объектов, а также вертикальное положение растрового луча (!), А также не имеет оборудования, связанного с сохранением баллов, отображением показа, продолжительностью игры и т. Д.

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

Обычный подход к реализации игры, такой как «Танк» в FPGA, будет заключаться в использовании отдельных схем для разных функций во многом так же, как и в аркадной машине 1976 года. Такой подход будет работать, но использовать значительное количество аппаратного обеспечения. Микропроцессорный подход мог бы устранить более половины этого аппаратного обеспечения в обмен на добавление микропроцессора, который, вероятно, будет содержать меньше схем, чем аппаратное обеспечение, которое он заменил (2600 может реализовать игры гораздо более сложные, чем Tank, что потребует гораздо большего количества аппаратных средств если они не использовали микропроцессор).

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

ответил supercat 15 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowTue, 15 Sep 2015 22:21:26 +0300 2015, 22:21:26
5

Это полная стоимость. Когда микро может составлять всего 30 центов, дешевая FPGA находится на территории 5 долларов. Стоимость может показаться не такой высокой, но когда вы делаете миллион перчаток новизны для продажи по цене 10 долларов, тогда цена на FPGA убивает вашу прибыль.

ответил vini_i 13 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowSun, 13 Sep 2015 15:39:44 +0300 2015, 15:39:44
5

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

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

ответил gaborous 13 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowSun, 13 Sep 2015 19:59:51 +0300 2015, 19:59:51

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132