DSP czy FPGA?
| TechnikaW systemach przetwarzania sygnałów znajdują obecnie zastosowanie zarówno procesory sygnałowe DSP, jak i programowalne układy logiczne FPGA. Wybór właściwej architektury wymaga przeanalizowania szeregu parametrów projektu, takich jak wydajność, cena, pobór mocy, liczba komponentów, możliwość przyszłej rozbudowy oraz czas wprowadzenia urządzenia na rynek i ryzyko projektowe. Wybór zależy również od znajomości danej technologii. W niektórych przypadkach zespół projektowy ma wiedzę na temat DSP, jednak tematyka FPGA jest mu zupełnie obca. Decyzja o wyborze danej architektury może więc zależeć od umiejętności projektantów. W artykule pominięto tę kwestię i założono, że wybór zastosowanej technologii nie zależy od wiedzy projektantów.
W artykule przeanalizowano układy pochodzące od głównego dostawcy systemów DSP, firmy Texas Instruments, oraz głównego dostawcy FPGA, firmy Altera. Przedstawiono kilka praktycznych aplikacji przetwarzania sygnałów, w których każda z rozpatrywanych technologii ma przewagę nad drugą. Ponadto rozważono sytuację, w której FPGA jest stosowany jako koprocesor w układzie DSP.
Rodziny urządzeń DSP firmy Texas Instruments
Tabela 1 zawiera zestawienie procesorów DSP produkcji Texas Instruments w różnych kategoriach cenowych. Obejmuje ona ponad 160 układów charakteryzujących się współczynnikami ceny do wydajności od 1,8 do 48 centów na MMAC (Million Multiply Accumulate Operations Per Second). Oprócz analizy współczynników, przy wyborze odpowiedniej architektury należy uwzględnić szczegóły dotyczące danego układu.
Tabela 1. Rodziny układów DSP produkcji Texas Instruments podzielone na kategorie cenowe | |||||
---|---|---|---|---|---|
Rodzina urządzeń | Cena1[USD] | MIPS² | Maks. 32-bitowy MMAC3³ |
Liczba centów/MIPS | Liczba centów/MMAC |
Stałoprzecinkowe DSP C5000 DSP C2000 |
< 10 | 50-600 | 25-300 | 0,9-23 | 1,8-46 |
DaVinci DSP C2000 |
10-30 | 100-4800 | 50-1200 | 0,4-17 | 1,6-35 |
DaVinci DSP C5000 |
30-100 | 100-5760 | 50-1440 | 0,7-11 | 3-44 |
DaVinci DSP C6000 |
100-300 | 532-8000 | 266-2000 | 1,4-24 | 5,8-48 |
Stałoprzecinkowe DSP C6000 |
300-330 | 8000-9600 | 2000-2400 | 3,4-3,6 | 13,4-14,4 |
1 Ceny przy zamówieniach 100 sztuk ze stycznia 2008 roku wg strony www.ti.com, ² Liczba milionów operacji wykonywanych w ciągu sekundy, ³ Liczba milionów operacji typu "pomnóż i dodaj", stałoprzecinkowych 32-bitowych lub zmiennoprzecinkowych pojedynczej precyzji, które mogą być wykonane w ciągu sekundy
|
Na przykład, każdy układ z rodziny DaVinci zawiera procesor ARM9 taktowany zegarem o częstotliwości do 297MHz, rdzeń DSP TMS320C64x+ o mocy obliczeniowej do 4752 MIPS, zintegrowaną pamięć itd. W tabeli 1 pominięto konkretne nazwy układów, podając tylko rodziny, do których należą. Niektóre z rodzin występują więcej niż raz, ponieważ należące do nich układy można zaliczyć do różnych kategorii cenowych.
Rodziny układów FPGA firmy Altera
W tabeli 2 przeanalizowano współczynniki ceny do wydajności ponad 100 układów FPGA, jednak nie uwzględniono szczegółów dotyczących każdej rodziny, takich jak przepustowość interfejsu czy architektura wewnętrznej pamięci. Wydajność MMAC została oszacowana w oparciu o maksymalne częstotliwości taktowania przy ogólnym wykorzystaniu zasobów na poziomie 70%.
Tabela 2. Rodziny urządzeń FPGA firmy Altera podzielone na kategorie cenowe | ||||||
---|---|---|---|---|---|---|
Rodzina urządzeń | Cena1[USD] | Maksymalna liczba rejestrów |
Liczba multiplekserów 18bit×18bit |
Maksymalna pamięć (kB) |
Maksymalny MMAC ² ³ |
Liczba centów/MMAC |
Cyclone II Cyclone III |
10-30 | 4608-10320 | 13-23 | 15-52 | 270-660 | 1,4-7 |
Cyclone II Cyclone III |
30-100 | 5136-33216 | 18-66 | 20-74 | 380-1900 | 2,8-20 |
Cyclone II Cyclone III Stratix III |
100-300 | 6240-68416 | 48-156 | 51-293 | 1000-4500 | 2,9-34 |
Cyclone II Cyclone III Stratix II |
300-1000 | 6240-119088 | 48-288 | 51-486 | 1000-8300 | 4,2-47 |
Stratix II Stratix III |
1000-3000 | 24176-113600 | 144-384 | 311-687 | 3000-11000 | 20-100 |
Stratix II Stratix III |
3000-10000 | 36384-113600 | 192-384 | 552-1145 | 4000-11000 | 20-130 |
1Ceny urządzeń pochodzą ze stycznia 2008 ze strony www.altera.com, ²Liczba milionów operacji typu "pomnóż i dodaj", stałoprzecinkowych 32-bitowych lub zmiennoprzecinkowych pojedynczej precyzji wykonywanych w ciągu sekundy. Wydajność MMAC rośnie czterokrotnie dla operacji 16-bitowych, ³Przy założeniu 70-procentowego wykorzystania zasobów i częstotliwości zegarowej 120MHz dla Cylcone II i Stratix II oraz 165MHz dla Cyclone III i Stratix III. Należy zauważyć, że FPGA charakteryzują się lepszym wykorzystaniem zasobów i większą wydajnością. |
W tabeli 2 nie podano wydajności w MIPS. Jej zdefiniowanie dla FPGA jako całości jest niemożliwe, gdyż zależy ściśle od danego projektu. Należy zaznaczyć, że wydajność MMAC może zostać zwiększona dzięki wykorzystaniu zasobów logicznych oraz rejestrów układu FPGA.
Wybór między FPGA i DSP
FPGA i DSP to różne układy przeznaczone do różnych celów. DSP od początku stosowano do realizacji algorytmów przetwarzania sygnałów zaimplementowanych w oprogramowaniu, a FPGA – do łączenia struktur logicznych. Później nastąpił rozwój obu tych architektur i obecnie są one stosowane w podobnych aplikacjach. Ogólnie rzecz biorąc, układy FPGA są optymalnym wyborem w aplikacjach sieciowych o przepustowości rzędu Gb/s, natomiast DSP najlepiej sprawdzają się w aplikacjach wideo, np. w systemach monitoringu.
W tabeli 3 układy zostały podzielone według współczynnika MMAC na trzy różne kategorie i pogrupowane według ceny. Na przykład urządzenia o średniej wydajności znajdują się w podkategoriach cenowych 10–30 USD oraz 30–100 USD. Różnice między FPGA i DSP dotyczą ich cech oraz dodatkowych funkcji, co również należy brać pod uwagę przy wyborze odpowiedniej architektury. Błędem byłby wybór tańszego układu FPGA tylko z uwagi na jego niską cenę.
Tabela 3. Porównanie układów FPGA i DSP | |||
---|---|---|---|
Wydajność | Zakres cenowy | Minimalna liczba centów/MMAC dla DSP |
Minimalna liczba centów/MMAC dla FPGA |
Niska (<300 MMAC) |
<10 dol. | 1,8 | - |
Średnia (300-1000 MMAC) |
10-30 dol. | 1,6 | 1,4 |
30-100 dol. | 3 | 2,8 | |
Wysoka (>1000 MMAC) |
100-300 dol. | 5,8 | 2,9 |
300-1000 dol. | 13,4 | 4,2 | |
1000-10000 dol. | - | 20 |
Do porównania cech DSP i FPGA można wykorzystać tabelę 3 lub 4. W tabeli 4 zaprezentowano proces decyzyjny uwzględniający cechy przydatne w konkretnych aplikacjach DSP. Cyfrowe procesory sygnałowe zwykle zawierają dodatkowe funkcje, co może przyczynić się do oszczędności. Zatem urządzenia DSP z cechami przydatnymi w konkretnej aplikacji mają przewagę nad układami FPGA o podobnych współczynnikach ceny do wydajności. Dla projektów wymagających mocy obliczeniowej poniżej 300 MMAC, DSP są generalnie optymalnym rozwiązaniem z perspektywy współczynnika ceny do wydajności.
Tabela 4. Wskazówki dotyczące wyboru między układami DSP i FPGA | |||
---|---|---|---|
Czy dostępny jest DSP z dodatkowymi cechami przydatnymi w danej aplikacji? | Tak | Nie | |
Wymagana wydajność MMAC |
Niska <300 MMAC | DSP | DSP |
Średnia 300-1000 MMAC | DSP | DSP lub FPGA | |
Wysoka 1000-10000 MMAC | Hybrydowy układ DSP/FPGA |
FPGA |
W projektach o wymaganiach od 300 do 1000 MMAC z reguły najlepszym wyborem są DSP zawierające konkretne cechy (np. porty audio/wideo czy procesor ARM w układach z rodziny DaVinci). Jeśli DSP z cechami przydatnymi w konkretnej aplikacji nie istnieje, należy rozpatrzyć inne aspekty projektu. Do aplikacji wymagających mocy obliczeniowej ponad 1000 MMAC idealnym wyborem są hybrydowe rozwiązania DSP/ FPGA. Zaawansowane aplikacje zawierają wiele algorytmów przetwarzania sygnałów, z których część nie wymaga maksymalnej wydajności.
W takim przypadku relatywnie tanie układy DSP mogą być stosowane do realizacji zadań o niskich lub średnich wymaganiach obliczeniowych, podczas gdy układy FPGA powinny obsługiwać najbardziej wymagające algorytmy. Należy zauważyć, że każdy projekt jest unikatowy i nie ma ogólnych wytycznych odnośnie do wyboru między DSP i FPGA. Celem artykułu jest ogólny przegląd dostępnych układów DSP i FPGA wraz z ich konkretnymi cechami oraz współczynnikami ceny do wydajności. Przy wyborze muszą zostać uwzględnione także inne wymogi projektu, które zostaną opisane w dalszej części artykułu.
DSP w aplikacjach przetwarzania sygnałów
DSP jest specjalistycznym procesorem stosowanym do przetwarzania sygnałów. Jego rdzeń jest zaprojektowany do optymalnego wykonywania operacji typu "pomnóż i dodaj", stosowanych w niemal wszystkich algorytmach. Układy DSP są podobne do mikrokontrolerów, gdyż zawierają wiele zintegrowanych obwodów peryferyjnych i różnych rodzajów pamięci. Stanowią optymalne rozwiązanie do przetwarzania algorytmów wymagających niskiej i średniej wydajności.
Przykładem może być laserowa pętla sterująca realizowana przez firmę Nu-vation. Do tego projektu optymalny jest mikrokontroler z możliwościami DSP ze względu na jego niską cenę i dodatkowe peryferie. Układy FPGA w odróżnieniu od DSP nie zawierają wbudowanych przetworników A/C oraz C/A. Firma Nuvation zastosowała więc układ DSP ze zintegrowanym 12-bitowym przetwornikiem A/C, 8-bitowym przetwornikiem C/A oraz interfejsem Ethernet, co pozwoliło na realizację całej pętli sterującej bez konieczności montażu dodatkowych elementów.
Takie podejście zmniejszyło koszty materiałowe oraz stopień złożoności projektu. Innym przykładem może być aplikacja napędowa z wieloma pętlami sterującymi, w której odpowiednia byłaby architektura FPGA. Jednak po rozważeniu kosztu implementacji funkcji komunikacyjnych czy monitorowania, optymalnym rozwiązaniem okazał się układ DSP produkcji Texas Instruments.
FPGA w aplikacjach przetwarzania sygnałów
Układy FPGA pozwalają projektantom tworzyć własne konstrukcje logiczne dla wysoko wydajnych aplikacji przetwarzania sygnałów. Filtr FIR 81 pracujący z częstotliwością próbkowania 400 MSPS wymaga wydajności ponad 32 miliardów MMAC, która o rząd wielkości przewyższa możliwości DSP. Niemniej jednak, pojedynczy układ FPGA może zapewnić taką wydajność. Trzeba pamiętać, że z tak dużą wydajnością związany jest spory koszt, nawet o rząd wielkości większy od kosztu procesora DSP.
Większość systemów przetwarzania sygnałów wymaga implementacji więcej niż jednej funkcji, takiej jak np. wspomniany wcześniej filtr FIR. Dochodzi tu cały szereg funkcji związanych z obsługą danych i podejmowaniem decyzji. Każda dodatkowa funkcja przetwarzania sygnałów czy obsługi danych wymaga własnego specjalizowanego bloku logicznego. Dlatego też w miarę zwiększania się stopnia złożoności projektu szybko rosną wymogi odnośnie do wymaganej pojemności logicznej układu FPGA oraz koszty.
Hybrydowe architektury FPGA-DSP
Jak wspomniano wcześniej, każda dodatkowa funkcja FPGA zwiększa koszt systemu. Jeśli niezbędna funkcjonalność znajduje się wśród cech DSP, tańsza byłaby jej realizacja w procesorze sygnałowym, powierzając FPGA wykonywanie jedynie najbardziej wymagających operacji. Oznacza to, że procesory DSP powinny wykonywać operacje wymagające mocy obliczeniowej mniejszej niż 1000 MMAC, a bardziej wymagające algorytmy powinny być realizowane przez układy FPGA.
Przykładowo, aplikacja do detekcji obwiedni o częstotliwości próbkowania 500 MSPS została zaimplementowana na hybrydowym układzie DSP-FPGA. Układ FPGA dokonuje wstępnego filtrowania i decymacji sygnału w.cz., a procesor DSP realizuje pozostałe operacje przetwarzania. Taka konfiguracja pozwala na wykorzystanie zalet każdej z zastosowanych platform.
Referencyjny projekt kamery IP
Aby bardziej szczegółowo zilustrować decyzje podejmowane w procesie projektowania, rozważono przykładową aplikację wideo. Dekodery, cyfrowe rejestratory obrazu i inne urządzenia multimedialne rozwijają się w bardzo szybkim tempie. Projektanci systemów szukają optymalnej platformy, mogącej zapewnić obsługę portów wideo, interfejsów, funkcji przetwarzania sygnałów itp. Z reguły aplikacje te są skierowane na rynek elektroniki użytkowej.
Oznacza to, że znaczną rolę odgrywa koszt, w tym także koszt opracowania projektowego. Co więcej, rynek elektroniki użytkowej należy do szybko zmieniających się obszarów, dlatego też kluczowym czynnikiem jest czas wprowadzenia produktu na rynek. Zminimalizowane musi być również całkowite ryzyko projektowe. Duże znaczenie ma tendencja do miniaturyzacji urządzeń elektronicznych. Szybki rozwój aplikacji do monitoringu czy telekonferencji spowodował powstanie tanich referencyjnych projektów kamer IP.
Taki projekt powinien umożliwić klientom krótki czas wejścia na rynek przy minimalnym koszcie opracowania projektowego oraz pozwalać na dostosowanie projektu do konkretnej aplikacji. Przykładowy projekt kamery IP zrealizowany przez firmę Nuvation charakteryzuje się następującymi cechami:
- małe wymiary,
- standardowa optyka z przetwornikiem WDM,
- mały pobór mocy,
- obsługa standardu PoE (Power over Ethernet),
- niskie koszty materiałowe,
- zgodność z przyszłymi procesami produkcyjnymi (DFM),
- zgodność z RoHS,
- wbudowany system czasu rzeczywistego Linux,
- obsługa TCP/IP,
- analogowe wyjście wideo,
- kodowanie w standardach H.264,
- MPEG-4 i MJPEG,
- wsparcie dla własnego lub licencjonowanego oprogramowania analitycznego.
Do realizacji projektu wybrano układ TMS320DM6446 firmy Texas Instruments należący do rodziny DaVinci, zapewniający dużą wydajność w cyfrowych aplikacjach wideo. Zawiera on dwa mikroprocesory: rdzeń DSP C64x+ niezbędny do wydajnego przetwarzania strumienia wideo oraz rdzeń ARM9 do zarządzania peryferiami i realizacji zadań koprocesora. TMS320DM6446 odpowiada za gromadzenie danych wideo, kodowanie ich do pożądanego formatu oraz przesyłanie przez sieć Ethernet.
Jako układ z dwoma mikroprocesorami, pozwala projektantom na zaimplementowanie algorytmów przetwarzania sygnałów w rdzeniu DSP C64x+, powierzając wykonywanie innych zadań mikrokontrolerowi ARM9. Dla ARM9 dostępna jest pełna dystrybucja Linuksa, pozwalającego projektantom systemów na wykorzystanie sterowników na licencji open source. TMS320DM6446 zawiera porty Ethernet i wideo, a ponadto zajmuje małą powierzchnię i jest energooszczędny. Pozwolił na spełnienie nakreślonych przez firmę wymogów przy minimalizacji kosztu opracowania projektowego.
FPGA czy DSP?
Wybór pomiędzy układem FPGA i DSP zależy od wielu kryteriów. Nie ma ogólnej recepty sprawdzającej się w każdych warunkach. Co więcej, zawsze istnieje konieczność bilansowania wydajności i ceny. W artykule przedstawiono aplikacje, w których optymalnym wyborem byłoby użycie FPGA, DSP lub hybrydowego układu DSP-FPGA. Podane przykłady powinny pomóc w wyborze optymalnej architektury, najlepiej spełniającej wymogi konkretnego projektu.
Grzegorz Michałowski