Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: DSP И ПЛИС
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Сигнальные процессоры и их программирование - DSP
simple
Я только начинаю осваивать эти технологии, поэтому прошу знающих людей поделиться
информацией о применении ПЛИС и DSP в телекоммуникационных технологиях.
Главное - достоинства и недостатки одной технологии перед другой.
Спасибо за помощь!
SM
Нет недостатков. Самое оптимальное обычно применять и то и это одновременно, грамотно распределяя задачу между обоими.
simple
Спасибо за ответ, но меня интересует качественные характеристики тех и других в применении для задач современных систем радиосвязи. Архитектура, распределение задач, ситемы команд, параллельные вычисления, быстродействие. Конкретно какие виды задач лучше реализовывать на одних и на других. Примером: модемы, скремблеры, вакодеры....
SM
Цитата(simple @ Oct 25 2005, 17:20)
Конкретно какие виды задач лучше реализовывать на одних и на других. Примером: модемы, скремблеры, вакодеры....
*


Да нельзя так подходить. Берете конкретную задачу, и решаете, что выгоднее для ее решения - ДСП, ПЛИС или их комбинация. В общем виде поставленная задача не решается.
iosifk
Цитата(SM @ Oct 25 2005, 22:32)
Цитата(simple @ Oct 25 2005, 17:20)
Конкретно какие виды задач лучше реализовывать на одних и на других. Примером: модемы, скремблеры, вакодеры....
*


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



Более того, добавляю к тому, что сказал коллега. Все зависит от того как идут данные - потоком или кадрами. Если кадрами - получил, обработал, отдал. Между кадрами может быть небольшая пауза. Тогда успеем загрузить в DSP и потом выгрузить. Если данные идут потоком, то обрабатывать нужно довольно быстро. И, скорее всего конвейерная обработка в FPGA будет предпочтительнее.
Но все зависит от конкретной реализации.
Удачи.
SergeyX
Могу предложить следующий подход (не раз им приходилось пользоваться): по возможности стремиться все реализовать в DSP... а часть задачи котрая требует значительных затрат времени или плохо ложиться на структуру программы переносить в плис. Если изначально правильно разработать структуру алгоритма все распределяется как правило само собой.
katarsis
расскажу о DSP. в трех словах - это мегамолотилки.это их задача считать. по сути. + их особенность (не не всегда) - программируемые ноги. их архитектура такова, что команды сложения и перенесения данных их одной ячейки в другую выполняются за один такт ( или несколько независимых команд аля шарков). благодаря этому осуществляется высокая производительность в общете данных и позволяет делать девайсы обрабатывающие данные в реальном времению =)
SpyBot
Думаю, что можно привести простой пример. Допустим, необходимо захватывать изображение с видеокамеры, сжимать его и сохранять.
В этом случае измерение видеосигнала является простой операцией, но в силу высокой частоты довольно ресурсоемкой, её выгоднее реализовать, используя ПЛИС. При этом ПЛИС можно сконфигурировать так, чтобы у нее было несколько шин. Например, для работы с АЦП, для работы с "видео" ОЗУ, для соединения с ДСП. Причем думаю, что для небольших ч/б разрешений эта последняя шина может быть последовательной.
А вот уже алгоритм сжатия, являющийся довольно сложным, проще реализовать на ДСП, хотя у Телесистем есть видеорекордер, где сжатие реализовано на ПЛИС.
Думаю, что на начальном этапе изучения можно было бы сделать универсальную модульную систему, включающую в себя модули с ПЛИС, ДСП, различной перифирией, например АЦП, ЦАП, обладающую большим вычислительным запасом. Мне кажется, что модульное построение удобно в плане быстрого изменения ошибочного узла, при этом не надо переделывать всю плату.
Ещё я считаю, что по мере углубления в тему ПЛИС и ДСП такие вопросы сами собой отпадут, их заменят более сложные, например "какие варианты загрузки есть у ХХХ".
AndreyNP
Плюсы ПЛИС
очень высокая производительность на операциях с фиксированной точкой (на 2-3 порядка выше чем процессоры)
Недостатки
практическо невозможно использовать для алгоритмов с плавающей точкий
необходимость применения хост процессора для управления и загрузки/выгрузки данных (хост процессора)
более высокая стоимость единицы
более высокая стоимость разработки изделия
сложности изменения алгоритмов в готовом железе

Плюсы DSP
часто можно обойтись без хост процессора
простота реализации и отладки
простота изменения алгоритмов в готовом железе
Недостатки
?? smile.gif

Чаще всего выбор делается:
если требуестся очень высокая производительность на фиксированной точке, алгоритм не будет меняться и не можем использовать DSP тогда сделам на ПЛИС или комбинации ПЛИС+DSP
zhorro
А еще на кусочке ПЛИС'а можно накрутить маленький DSP и на нем отрабатывать всякие дурные алгоритмы с кучей ветвлений и прочего, чего достаточно трудно добиться на плисе. Вообщем плис (простенький) хорош для достаточно дубовых алгоритмов, что-то сложнее это уже дсп. Ну и конечно все определяется теми, кто под это дело будет все писать. На мой взгляд, програмирование плиса гораздо более трудоемкая задача.
des00
Цитата(zhorro @ Mar 2 2006, 16:31) *
А еще на кусочке ПЛИС'а можно накрутить маленький DSP и на нем отрабатывать всякие дурные алгоритмы с кучей ветвлений и прочего, чего достаточно трудно добиться на плисе. Вообщем плис (простенький) хорош для достаточно дубовых алгоритмов, что-то сложнее это уже дсп. Ну и конечно все определяется теми, кто под это дело будет все писать. На мой взгляд, програмирование плиса гораздо более трудоемкая задача.


Хмм не согласен, городить ДСП проц на плис не даст ничего хорошего, ни в объеме, ни в быстродействии. Лучше разбить задачу на логику и управление. Управление сделать на маленьком и тормозном софт проце, а математику/логику на хардваре.
MrLeron
Цитата(des00 @ Mar 7 2006, 10:29) *
Управление сделать на маленьком и тормозном софт проце, а математику/логику на хардваре.


Я правильно понял? - Управление на процессоре, а математику на плис.

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

И да и нет.
DSP предназначен для математики, это да. Но не всегда хватает его производительности.
Здесь и приходится либо комбинировать его с ПЛИС, либо переходить на ПЛИС.

На ПЛИС организовывают:
- контроллер ввода-вывода (на DSP иногда мало портов в.-в., или они медленные, или вообще не подходят)
- выполнение простейшей обработки (масштабировать, поднять/опустить уровни и т. п., чтобы не тратить ресурсы DSP на эту мелочь, которая съедает много ресурсов у ядра)
- если частота сигнала большая, для обработки необходимо помнить минимум отсчетов (напр. БИХ фильтры, небольшие КИХ, демодулятор/модулятор), то целесообразней исп. ПЛИС.

естественно, речь идет об обработке в реальном времени.

DSP выполняет математику быстро, благодаря (у каждого DSP свои примочки):
- к ядру идут две шины от ОЗУ - одна входные данные, другая - выходные. Это позволяет быстро общаться с памятью
- несколько АЛУ - за один такт можно сделать сложение и умножение (удобно для свертки)
- разрядность АЛУ 24, 32, 48, 64 бита. Правда, сейчас есть контроллеры с разрядностью АЛУ 32бита, и некоторые задачи, которые раньше делали на DSP, сейчас можно сделать на мк.
- есть возможность работать с упакованными данными (например, за один такт умножить 8 8-ми битных значений на к-л константу. Как MMX, SSE)

но если в тупую дерагать портом (1->0 и 0->1) вся производительность падает до уровня обычного мк.
vladec
И всетаки DSP обработку лучше реализовывать на сигнальных процессорах, кроме слечаев требующих сверх высоких производительностей на достаточно простых алгоритмах. ПЛИС же очень хороша для реализации разного рода интерфейсов и иной обвязки.
jorikdima
Цитата(vladec @ Apr 3 2006, 10:04) *
И всетаки DSP обработку лучше реализовывать на сигнальных процессорах, кроме слечаев требующих сверх высоких производительностей на достаточно простых алгоритмах. ПЛИС же очень хороша для реализации разного рода интерфейсов и иной обвязки.

Полностью согласен именно с такой формулировкой.
des00
Цитата(MrLeron @ Mar 28 2006, 10:00) *
Цитата(des00 @ Mar 7 2006, 10:29) *

Управление сделать на маленьком и тормозном софт проце, а математику/логику на хардваре.


Я правильно понял? - Управление на процессоре, а математику на плис.

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


хмм, подскажите мне пожалуста где в моем посте я говорю про ДСП процессор?
а на ПЛИС можно реализовать все что угодно, весь вопрос во времени и стоимости разработки.
кроме того, есть задачи где дсп, какие бы они не были разпальцованые, просто не справяться с обработкой информации и даже много процессорность не спасет.
scum
Цитата(des00 @ Apr 4 2006, 13:23) *
Цитата(MrLeron @ Mar 28 2006, 10:00) *

Цитата(des00 @ Mar 7 2006, 10:29) *

Управление сделать на маленьком и тормозном софт проце, а математику/логику на хардваре.


Я правильно понял? - Управление на процессоре, а математику на плис.

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


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


Условно говоря на чем угодно можно реализовать что угодно. Вопрос в стоимости (время это тоже стоимость) реализации конкретного алгоритма на конкретной железке. Мне лично было бы очень интересно где-нибудь найти внятные результаты реализации типовых алгоритмов из обработки видео\аудио на альтерах с ксайлами и на TI с тримедиями.
Ну а если говорить за максимальную производительность -- то вопрос этот мутный, дкт наверняка на фпга быстрее, а вот арифметический кодер в силу обилия ветвлений, подозреваю, будет быстрее на дсп.
vladec
Вряд ли тут можно говорить о точных количественных оценках и сравнении. Здесь скорее уместны экспертные оценки, тобы не впасть в крайности. Всетаки сложные алгоритмы типа MPEG-ов, или тем более крутых аудио кодеков (G610, G723, G729 и т.п.) имеет смысл реализовывать на DSP.
scum
Под алгоритмами я имел в виду примитивы, а не видео-енкодер целиком. Чтобы при раскладывании его на связку фпга+дсп руководствоваться не абстрактными соображениями, а реальными цифрами.
AndrewKirs
Народ, объясните, а почему на ПЛИС "практически невозможно"(как написал AndreyNP) реализовать алгоритмы с плавающей точкой? Дело в трудоемкости, низком быстродействии, или в чем-то еще?
sK0T
Цитата(AndrewKirs @ May 16 2006, 14:16) *
Народ, объясните, а почему на ПЛИС "практически невозможно"(как написал AndreyNP) реализовать алгоритмы с плавающей точкой? Дело в трудоемкости, низком быстродействии, или в чем-то еще?


Это занимает слишком много ресурсов, так что либо просто не поместится в ПЛИС, либо этот ПЛИС будет стоить как небольшое государство. ;-)

Не совсем точное слово, надо было так: «на ПЛИС практически не имеет никакого смысла делать»…
kst
В добавок к сообщению sK0T поясню.
Алгоритмы ЦОС, как правило, представляют из себя последовательность операций, львиная доля которых приходится на арифметико-логические действия. И таких операций бывает не одна, не две и не десяток.
Если дело касается целых чисел - ПЛИС к вашим услугам. Там все под это заточено. Логические операции, операции умножения, сложения - все это можно сделать, если не на специализированных вычислителях (типа DSP-секций), то на основе нескольких конфигурируемых логических блоков.
Если же речь идет о числах с плавающей точкой, то для реализации каждой операции над такими данными потребуется уже несколько вычислителей (сумматоров/умножителей) плюс комбинационная логика (поправьте, если в чем ошибаюсь, с ПТ работал мало). Соответственно, растут аппаратные затраты.

Как правило при реализации алгоритмов ЦОС на ПЛИС бывает достаточно использования формата с фиксированной точкой (тот же целочисленный формат). Таким образом возиться с ПТ на ПЛИС накладно.
kst
А по поводу выбора ПЛИС или DSP следует руководствоваться прежде всего здравым смыслом - успеет ли процессор обработать входной поток данных. Если да, то и нечего думать. Если нет - ПЛИС - наилучшее решение.
Зачастую схема в ПЛИС - это целый ряд простых вычислителей (выполняющих простые арифметические операции), работающих параллельно. Тут налицо преимущество перед сигнальным процессором. Но если сигнальный процессор успевает обрабатывать данные - эти преимущества теряют смысл.

По поводу ценовых преимуществ ничего говорить не буду, чтобы не соврать.

В пользу DSP говорит еще и тот факт, что в случае необходимости подправить алгоритм можно достаточно быстро, причем не сильно важно насколько мощный компьютер. Подправил исходный текст, скомпилировал и в путь. Ну сколько времени займет компиляция большой программы даже на слабых машинах? Больших программ не писал, но думаю, что не очень много. По крайней мере значительно меньше, чем трассировка большой ПЛИСины.
Одним словом, ИМХО, компиляция программ выполняется быстрее трассировки ПЛИС в любом случае. Имеется в виду что в обоих случаях реализуются алгоритмы сходной вычислительной сложности.
Если не нужно выезжать на какие-то "полевые" испытания и есть много килобаксов, то это все, в принципе, не важно smile.gif
AndrewKirs
Цитата(sK0T @ May 16 2006, 14:38) *
Это занимает слишком много ресурсов, так что либо просто не поместится в ПЛИС, либо этот ПЛИС будет стоить как небольшое государство. ;-)


Тогда такой вопрос. Сопроцессор 8087 содержит около 75000 транзисторов (http://cs.usu.edu.ru/study/chips.html#_Toc9352981). Современные ПЛИС, если правильно понимаю,- до 10 млн.вентилей. Каких ресурсов займет слишком много блок FP-вычислений? Или те транзисторы и эти вентили несравнимы?
kst
Если вы хотите сделать несколько процессоров с ПТ на ПЛИС - дерзайте. Только, ИМХО, дешевле купить несколько отдельных процессоров.

В ПЛИС помимо "вычислительных" ресурсов (тех, что требуются на реализацию арифметико-логических операций - т.н. логические элементы) есть и "транспортные" (I/O элементы, межсоединения). При реализации тратятся и те и те.
NiOS
Я считаю главное преимущество ПЛИС (помимо интерфейсных задач) при обработке по какому-либо алгоритму. Когда алгоритм поодерживает параллельность выполнения.

А так обычно в связке ДСП-ПЛИС на откуп ПЛИС отдают часть задач, которые быстрее выполнятся на ПЛИС или ДСП с ними не справляется при обработке в реальном времени.
doc17
Лично мы придерживаемся такого правила:
Те части обработки, которые выполняются по заранее отработанному алгоритму (преобразования, математические операции) и должны отнимать минимум времени- реализуем в ПЛИС.
ДСП же производит управление потоками информации, а также реализует протоколы обмена (с этим уже можно поспорить).
Благодаря такой комбинации можно затратив минимум сил получить весьма быстрое решение почти любой задачи.
dmivs
Цитата(vladec @ Apr 3 2006, 09:04) *
И всетаки DSP обработку лучше реализовывать на сигнальных процессорах, кроме слечаев требующих сверх высоких производительностей на достаточно простых алгоритмах. ПЛИС же очень хороша для реализации разного рода интерфейсов и иной обвязки.


Я не спец по DSP, однако интересен тот факт, что после того как Spartan IIE стал популярен у разработчиков DSP (неожиданно для Xilinx - те его позиционировали как ПЛИС для мостов, всякой логики и т.п), фирма резко сменила курс и сейчас в Spartan 3E значительно упирает именно на их применение для DSP задач.

Это сейчас модно biggrin.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2014 Invision Power Services, Inc.