2015-04-09 5 views
1

У меня есть сомнение: я понял, что он использует аппаратный параллелизм и что он контролирует ввод/вывод на аппаратном уровне, чтобы обеспечить более быстрое время отклика, но которые являются преимуществами программного обеспечения для ПЛИС? Какие программные компоненты могут быть ускорены? Заранее спасибо.Преимущества программного обеспечения FPGA

+1

Это довольно широкий вопрос, и нет простого ответа. Но ты почти сам ответил: параллелизм. –

+0

Обычно fpgas полезны для обработки низкого уровня, как свертки с «большими» ядрами: http://cas.ee.ic.ac.uk/people/btc00/index_files/Convolution_filter.pdf. Кроме того, потребление ПЛИС значительно ниже потребления графических процессоров. С другой стороны, итеративные алгоритмы на FPGA имеют плохие характеристики (низкая тактовая частота) –

ответ

2

Как для прототипирования, так и для параллелизма. Поскольку FPGA являются дешевыми, они являются хорошими кандидатами для использования как при создании промышленных протипов, так и в системах паралелей. ПЛИС состоят из массивов логических элементов, связанных с проводами. Элементы содержат небольшие таблицы поиска и триггеры. FPGA масштабируются до тысяч таблиц поиска. Таблицы поиска и программируемые провода являются достаточно гибкими, чтобы реализовать любую логическую функцию. После того, как функция будет готова, вы можете использовать ASIC. Xilinx и Altera являются основными брендами. Лично я использую Altera DE2 и DE2-115.

1

Вы правильно относитесь к параллелизму и управлению вводом/выводом FPGA. FPGA - это просто переконфигурируемые логические схемы, которые позволяют разработчику создавать схемы с очень специфическими и специализированными функциями. Обычно они поставляются с очень большим объемом ввода-вывода по сравнению с типичными микроконтроллерами. Потому что это в основном куча ворот в кремнии, все, что вы кодируете на языке описания аппаратных средств (HDL), будет происходить параллельно. Это в сочетании с тем, что вы можете создавать пользовательские схемы, - это то, что дает возможность ускорить работу в FPGA по сравнению с типичным процессором, даже если процессор может иметь гораздо более высокую тактовую частоту. Чтобы лучше проиллюстрировать этот момент, скажем, у вас есть алгоритм, который вам нужно запустить, и вы хотите сравнить FPGA с процессором. FPGA работает с частотой 100 МГц и процессором с частотой 3Ghz. Это означает, что процессор работает со скоростью, в 30 раз превышающей FPGA. Предположим, вы кодируете схему, которая способна вычислять алгоритм на FPGA за 10 тактов. Эквивалентный алгоритм на процессоре может принимать тысячи инструкций для выполнения. Это помещает FPGA намного опережать процессор с точки зрения производительности. И из-за параллельной природы FPGA, если вы правильно ее кодируете, а поток через FPGA будет непрерывным, каждый тактовый цикл, FPGA может завершить вычисление нового результата. Это связано с тем, что каждый этап FPGA будет выполняться одновременно. Таким образом, это может занять 10 тактов, но на каждом такте может быть вычислен другой фрагмент из 10 различных результатов (это называется pipelinine: http://en.wikipedia.org/wiki/Pipeline_%28computing%29). Процессор не способен на это и не может вычислять разные этапы параллельно, не затрачивая на это дополнительное время. Процессоры также привязаны к уровню производительности по их набору команд, тогда как на FPGA это можно преодолеть с помощью хорошей и специфичной для приложения схемы. Процессор - это очень общий дизайн, который может выполнять любую комбинацию инструкций, поэтому для вычисления вещей требуется больше времени из-за его обобщенного характера. ПЛИС также не имеют проблем с перемещением вещей и из кеша или ОЗУ. Обычно они используют ОЗУ, но в параллельной природе, которая не препятствует или не ограничивает поток обработки. Также интересно отметить, что процессор может быть создан и реализован на FPGA, поскольку вы можете реализовать схемы, которые составляют процессор.

Как правило, вы обнаружите FPGA на плате с процессорами или микроконтроллерами для ускорения задач с интенсивной математикой или цифровой обработки сигналов (DSP) или задач, требующих большого потока данных. Например, беспроводной модем, который передает через радиочастотный канал, должен будет сделать немного DSP для выбора сигналов из эфира и их декодирования. Что-то вроде микросхемы приемника в мобильном телефоне. Будут много данных, которые постоянно текут в устройстве и выходят из него. Это идеально подходит для FPGA, потому что он может обрабатывать такой большой объем данных и параллельно. Затем FPGA может передать декодированные данные микроконтроллеру, чтобы он мог делать такие вещи, как отображение текста из текстового сообщения на симпатичном сенсорном экране. Обратите внимание, что чип на вашем сотовом телефоне не является FPGA, а ASIC (специальная интегральная схема). Это куча схем, разделенных до минимального минимума для максимальной производительности и минимальных затрат. Тем не менее, легко проецировать ASIC на FPGA, и они очень похожи. FPGA может быть расточительным, потому что у него может быть много ресурсов на борту, которые не нужны.Как правило, вы переходите от FPGA к ASIC, если вы собираетесь создавать TON из них, и вы знаете, что они работают отлично и будут делать только то, что они сейчас делают. Для этого идеально подходят чипы для приемопередатчиков сотовых телефонов. Они продают миллионы и миллионы из них, и они должны делать это всего лишь всю свою жизнь.

На чем-то подобном настольном процессоре принято рассматривать термин «аппаратная афферрация». Это обычно означает, что FPGA или ASIC находятся на борту, чтобы ускорить выполнение определенных операций. Много раз это означает, что ASIC (возможно, на кристалле процессора) включен для выполнения любых задач, таких как математика с плавающей запятой, шифрование, хэширование, обработка сигналов, обработка строк и т. Д. Это позволяет процессору более эффективно обрабатывать данные путем разгрузки определенных операций, которые, как известно, являются сложными и трудоемкими для процессора. Схема на матрице, ASIC или FPGA может выполнять вычисления параллельно, так как процессор делает что-то еще, а затем возвращает ответ. Таким образом, скорость может быть очень большой, потому что процессор не увязывается с вычислением и освобождается, чтобы продолжить обработку других вещей, в то время как другая схема выполняет операцию.

1

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

Подумайте о процессорной системе. Он может иметь последовательный порт, USB, Ethernet. Что делать, если вам нужен еще один специализированный интерфейс, который ваша процессорная система не поддерживает? Вам нужно будет изменить свое оборудование. Возможно создание новой ASIC.

С помощью FPGA вы можете реализовать новый интерфейс без необходимости использования нового оборудования или ASIC.

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

+0

Есть ли достоверные источники для резервного копирования вашего ответа? – stevenll

+0

За исключением мягких (например, Micorblaze) или жестких (например, Zynq) основных процессоров на FPGA ... – mbschenkel

+0

Stiven: Любая конкретная часть, для которой вы хотите использовать источник? mbschenkel: Как я указывал в своем первом абзаце. Есть ли мягкий ЦП, реализованный в FPGA (microblaze, nios, ...), и жесткий процессор интегрирован на том же кремнии, что и FPGA (Zynq), или как отдельный чип. Там, как правило, существует процессор с обычным программным обеспечением. Возможно, я должен уточнить свой третий абзац, чтобы сказать что-то вроде «ПЛИС почти никогда не используются для замены концепции процессора, выполняющего нормальное программное обеспечение»? –

Смежные вопросы

 Смежные вопросы