Czy ewolucja układów reprogramowalnych przyczyni się do zagłady
Transkrypt
Czy ewolucja układów reprogramowalnych przyczyni się do zagłady
Mirosław FOLEJEWSKI* Czy ewolucja układów reprogramowalnych przyczyni się do zagłady procesorów sygnałowych?1) Ekspansja telekomunikacji analogowej i cyfrowej oraz techniki internetowej jest czynnikiem stymulującym rozwój technologii mikroelektronicznej. Z tego względu na potrzeby systemów telekomunikacyjnych zostały stworzone procesory sygnałowe (DSP). Nieustanna ewolucja tych struktur jest odpowiedzią na stale rosnące zapotrzebowanie rynku nowych generacji telefonii cyfrowej na bardziej wydajne platformy sprzętowe, a także odpowiedzią na konkurencję ze strony alternatywnych rozwiązań systemów cyfrowych. Warto zauważyć, że klasyczna, sztywna architektura procesorów, pomimo licznych modyfikacji i usprawnień, traci powoli na sile i znaczeniu na rzecz nowych koncepcji. Nasila się tendencja przenoszenia architektury procesora do wnętrza układu rekonfigurowalnego i tworzenia tym samym architektury heterogenicznej, łączącej rdzeń klasycznego procesora wspomaganego rekonfigurowalnym modułem, realizującym koncepcję sprzętu adaptacyjnego (mogącego dynamicznie dostosować się do aktualnie realizowanej aplikacji). Aby efektywnie wykonać wiele zadań z dziedziny telekomunikacji, układy programowalne FPGA wyposaża się w mechanizmy wydajnej obsługi, oparte na wbudowanych w strukturę krzemową dedykowanych blokach o szerokim zakresie funkcjonalnym oraz elastyczności. Dojrzałość tej techniki umożliwia osiągnięcie wydajności znacznie przekraczającej tę, którą oferują wiodące układy DSP i nawet najnowsze usprawnienia budowy architektur procesorów sygnałowych nie są w stanie skutecznie temu zjawisku przeciwdziałać. Specjalizowana architektura rdzeni procesorów sygnałowych stanowi wsparcie dla cyfrowego przetwarzania sygnałów w systemy mogące efektywnie realizować algorytmy czasu rzeczywistego. Stosuje się wiele rozwiązań, mających wspierać tę ideę, takich jak: rozszerzona architektura harwardzka, wbudowana dwuportowa pamięć RAM, moduły generatorów adresowych, bloki: multiplikatora, przesuwnika i jednostki arytmetyczno-logicznej ALU o liście rozkazów zasobnej w instrukcje DSP. Rozdzielone magistrale, równoległa praca poszczególnych bloków i wykorzystanie mechanizmów wielopoziomowego przetwarzania potokowego sprawiają, że w jednym takcie możliwe jest równoczesne wykonanie kilku operacji. Poza tym nowoczesna technika umożliwia nie tylko zwiększanie częstotliwości pracy procesora, ale również rozszerzanie liczby wbudowanych w system jednostek obliczeniowych, potrafiących równolegle przetwarzać dane. Taka tendencja jest zauważalna w proceso- * Koło Naukowe Elektroników – KNE działające w Instytucie Elektroniki na Wydziale Automatyki, Elektroniki i Informatyki Politechniki Śląskiej w Gliwicach, e-mail: [email protected]. 1) W tytule artykułu nawiązano polemikę z artykułem J. Izydorczyka: Czy postęp w telekomunikacji przyczyni się do zagłady procesorów sygnałowych? [10] 78 rach o bardzo długim słowie rozkazu (architektura VLIW), w procesorach superskalarnych oraz macierzowych SIMD. Przykładem takich koncepcji są architektury: VelociTI oraz zmodernizowana VelociTI. 2 (są one dostępne w procesorach rodziny TMS320C6000 firmy Texas Instruments). Ich cechą wspólną jest to, że mają osiem niezależnie pracujących jednostek wykonawczych, podzielonych na dwie grupy. Dzięki specjalnej konstrukcji jest możliwe jednoczesne wykonanie do ośmiu 8-bitowych operacji MAC lub czterech (dla VelociTI. 2) albo dwóch (dla VelociTI) 16-bitowych mnożeń w jednym takcie zegara. Wymienione rozwiązania są dostępne także w wielu innych platformach DSP, jak Carmel (Infineon), TigerSHARC czy Blackfin firmy Analog Devices. Czytelnikom zainteresowanym szczegółową analizą budowy tych architektur polecam przestudiowanie doskonałych artykułów dostępnych w prasie polskiej [8], [9], [10] oraz skorzystanie z materiałów katalogowych wymienionych firm. TENDENCJE ROZWOJU UKŁADÓW FPGA W przeciwieństwie do architektury procesorów sygnałowych macierz elementów logicznych struktur FPGA nie przewiduje ukierunkowania na stosowanie w konkretnych aplikacjach. Dlatego dzięki uniwersalności tych układów jest możliwe odwzorowanie dowolnie złożonego systemu cyfrowego. Jednak ogromna popularność tej klasy układów logicznych w dziedzinie telekomunikacji wymusiła i ukształtowała wiele rozwiązań konstrukcyjnych wzbogacających architekturę matryc reprogramowalnych FPGA oraz przyczyniła się do stworzenia nowych metodologii projektowych. Wśród nich istnieją następujące trendy i koncepcje: M nasilające się tendencje opracowywania bloków logicznych (będących elementarnym składnikiem struktury logicznej) o coraz większej uniwersalności, funkcjonalności i możliwościach konfigurowania, M oferowanie zaawansowanych trybów pracy przez wbudowane moduły pamięci RAM (pamięć dwuportowa, kolejka FIFO), M implementacja dedykowanych bloków obliczeniowych DSP, mających wydajnie zwiększyć prędkość wykonywania podstawowych operacji arytmetycznych oraz odciążyć strukturę logiczną, M rosnąca złożoność struktur PLD powodująca zacieranie się różnic w budowie między układami CPLD i FPGA, M integrowanie wraz z matrycą reprogramowalną wydajnych procesorów RISC z architekturą wspierającą funkcje przetwarzania sygnałów DSP, M rozwinięcie wielu mechanizmów statycznej i dynamicznej rekonfiguracji sprzętu, PRZEGLĄD TELEKOMUNIKACYJNY ! ROCZNIK LXXVII ! nr 2–3/2004 MODUŁY SPRZĘTOWE DLA POTRZEB TELEKOMUNIKACJI jednostek (a więc zarazem większego stopnia upakowania elementów) w stosunku do rozwiązań opartych na arytmetyce zmiennoprzecinkowej. Dzięki nowoczesnej technologii submikronowej3) możliwe jest scalenie kilkunastu (a nawet kilkuset) bloków obliczeniowych z matrycą rekonfigurowalną w pojedynczej strukturze FPGA, co jest równoważne mocy obliczeniowej systemu wieloprocesorowego (np. macierzy procesorów sygnałowych) – zauważalne jest zmierzanie w kierunku architektury SIMD (Single Instruction Multiple Data). Komponenty te wspomagają wykonywanie obliczeń i ułatwiają realizację funkcji z zakresu telekomunikacji i technik teleinformatycznych, takich jak: cyfrowa filtracja sygnałów, szybka transformata Fouriera FFT, dyskretna transformata kosinusowa DCT czy też kompresja obrazu ruchomego według standardu MPEG. Dostępne w obecnie produkowanych strukturach reprogramowalnych architektury bloków logicznych (makrokomórek), mające szerokie możliwości konfiguracji dzięki różnorodnym trybom pracy, nie są w stanie sprostać efektywnej realizacji aplikacji z zakresu nowoczesnej telekomunikacji. Skomplikowane obliczenia arytmetyczne, algorytmy cyfrowego przetwarzania sygnałów DSP (Digital Signal Processing) oraz przetwarzania obrazów (Video & Image Processing), działające w czasie rzeczywistym, wymagają dużej mocy obliczeniowej i dostępnej pamięci operacyjnej. Wskutek tego ich implementacja w matrycach FPGA pochłania wiele zasobów sprzętowych2) i powoduje niezbyt wysoką wydajność wykonywania aplikacji oraz znaczne rozpraszanie mocy przez układ scalony. Tabela 1 zawiera ogólną charakterystykę parametrów obecnie produkowanych struktur reprogramowalnych z uwzględnieniem wsparcia aplikacji DSP. Zintegrowane bloki DSP, wspierające aplikacje cyfrowego przetwarzania sygnałów, można podzielić na dwie grupy. M Pierwszą stanowią jednofunkcyjne, dedykowane moduły realizujące proste i ściśle określone operacje arytmetyczne (jak mnożenie lub sumowanie) w ustalonej, stałoprzecinkowej reprezentacji danych. Stosunkowo prosta struktura logiczna tych bloków, przekładająca się na niewielką zajmowaną powierzchnię struktury krzemowej, umożliwia umieszczanie wielu setek takich jednostek scalonych wraz z matrycą FPGA. Najczęściej spotykanym rozwiązaniem są multiplikatory wykonujące opera- M integracja w zasobach FPGA ultraszybkich interfejsów komunikacyjnych dla szerokopasmowej wymiany danych; takie rozwiązania są przeznaczone do implementacji sprzętowej gigabitowych protokołów teleinformatycznych, M intensywny rozwój metod i narzędzi w dziedzinie nowoczesnej syntezy układów logicznych, umożliwiający efektywną implementację złożonych systemów cyfrowych programowalnych w strukturach bramkowych, M pojawienie się i rozwinięcie rynku własności intelektualnej IP w zakresie projektowania uniwersalnych komponentów wirtualnych (IP-Core), opisanych językami HDL. O Tabela 1. Zestawienie zasobów sprzętowych wybranych układów PLD Rodzina Producent Liczba bloków logicznych Wbudowana pamięć RAM [kbit] Bloki DSP Dostępne Wbudowany Liczba kanały komu- rdzeń procesora końcówek I/O RISC nikacyjne Pętle PLL Stratix Altera 10570–114140 898–9980 6–28 426–1314 – – 6–12 Stratix GX Altera 10570–41250 898–3343 6–14 328–542 4–20 – 4–8 EclipsePlus QuickLogic 960–4032 45–81 10–18 250–506 – – 4 QuickMIPS QuickLogic 1152–2016 20–81 10–18 109–252 1–2 MIPS 4Kc 2 Virtex–II Pro Xilinx 3168–125136 216–10008 12–5561) 204–1200 4–24 0–4, PowerPC 4–12 Spartan–3 Xilinx 1728–74880 12–2392 124–784 – – 0–4 Excalibur Altera 4160–38400 52–320 – 246–711 – ARM922T 2 ORCA 4 Lattice 4992–16192 154–404 – 262–466 – – 8 Mercury Altera 4800–14400 48–112 – 303–486 8–18 – 2–4 Axcelerator Actel 2016–32256 28–330 – 168–684 – – 8 Delta39K Cypress 512–3072 – – 174–428 – – 4 0–104–1) Uwagi: Jako moduły dedykowanych sprzętowych multiplikatorów 18 × 18 bitów 1) Przeciwdziałając tym niekorzystnym zjawiskom oraz wykorzystując fakt, że aplikacje przetwarzające strumień danych multimedialnych są oparte na podstawowych operacjach arytmetycznych (którymi są dodawanie i mnożenie), producenci układów reprogramowalnych integrują w strukturach FPGA różnego rodzaju sprzętowe moduły obliczeniowe DSP, takie jak: ultraszybkie sumatory, multiplikatory i rejestry przesuwające. Układy te mają zaimplementowaną stałoprzecinkową arytmetykę, co w konsekwencji umożliwia uzyskanie większej prędkości taktowania struktury i znacznie mniej skomplikowanej budowy cje w formacie 18 × 18 bitów (układy Spartan-3, Virtex-II i VirtexII Pro firmy Xilinx). M W drugiej grupie znajdują się złożone, uniwersalne bloki obliczeniowe DSP, charakteryzujące się szerokim zakresem realizowanych operacji oraz dynamiczną konfiguracją architektury. Ich złożoność oraz osiągana wydajność jest porównywalna z jednostkami przetwarzającymi procesorów sygnałowych. Ze względu na wysoki stopień skomplikowania budowy bloków DSP, integracja wewnątrz struktur FGPA takich zasobów jest ograniczona i waha się od kilku do kilkunastu modułów. 2) Ze względu na ograniczoną liczbę dostępnych bloków logicznych w strukturach FPGA ogromne znaczenie odgrywają narzędzia syntezy logicznej, których zadaniem jest optymalne umieszczenie (wpasowanie) tworzonej aplikacji w docelowym układzie scalonym. 3) Ciekawostką mogą być wprowadzane obecnie do produkcji układy FPGA rodziny Spartan-3 firmy Xilinx, wykonywane z minimalnym wymiarem charakterystycznym, wynoszącym 90 nm. Na jednym płatku krzemu dostępnych jest 5 milionów bramek systemowych! PRZEGLĄD TELEKOMUNIKACYJNY ! ROCZNIK LXXVII ! nr 2–3/2004 79 Przedstawicielami tej klasy rozwiązań są układy generacji Eclipse i QuickMIPS firmy QuickLogic, a także platformy Stratix produkowane przez firmę Altera. W celu efektywnego gromadzenia i obróbki cyfrowej reprezentacji obrazu i dźwięku, w strukturach programowalnych PLD umieszcza się wbudowane, konfigurowalne bloki pamięciowe RAM. Mogą one pracować w różnych trybach organizacji (np. jako moduły 256 × 16, 512 × 8 lub 2048 × 2 bity). Zasoby te można wykorzystać jako jedno- lub dwuportową pamięć ulotną SRAM (pracującą w trybie synchronicznym albo asynchronicznym) lub pamięć ROM o ustalonej przez projektanta zawartości. Możliwe jest także skonfigurowanie jej jako pamięci kolejkowej FIFO (First In First Out). W niektórych rozwiązaniach jest dostępny dodatkowy bit parzystości dla kontroli i detekcji błędów. Elementy pamięciowe RAM są implementowane w strukturach PLD jako niezależnie pracujące jednostki (np. bloki dwuportowej pamięci SRAM w matrycach FPGA serii Eclipse firmy QuickLogic) lub jako moduły wchodzące w skład większych bloków logicznych. Przykładem tego są układy serii APEX (Altera), w których moduły pamięciowe EAB (Embedded Array Block) zostały umieszczone w blokach MegaLAB. Spotykane są układy FPGA, w których pojemności wbudowanych bloków RAM osiągają 10 Mbit (generacja Virtex-II Pro). Ponieważ aplikacje multimedialne i teleinformatyczne wymagają zapewnienia ogromnej ilości dostępnej pamięci operacyjnej o dużej przepływności danych, układy reprogramowalne są wyposażane w sterowniki pamięci synchronicznych RAM. Są to moduły obsługujące nowoczesne standardy SDRAM, DDR SDRAM oraz QDR SRAM. Osiągany w nich transfer danych przekracza 600 Mbit/s. Stale rosnące zapotrzebowanie na ultraszybką transmisję informacji jest podstawowym czynnikiem rozwoju nowoczesnych systemów telekomunikacyjnych. W tym celu zostało opracowanych wiele zaawansowanych protokołów dla wydajnej wymiany ogromnej liczby danych, wspierających cyfrowe sieci teleinformatyczne. Pakietowe przesyłanie informacji według tych standardów odbywa się w najniższej, fizycznej warstwie, będącej newralgicznym punktem sieci. Jej sprzętowa realizacja jest doskonale wspomagana przez cyfrowe technologie oparte na układach reprogramowalnych. Dzięki nieustannemu dążeniu do coraz większej integracji urządzeń, jest możliwa budowa systemów sieci telekomunikacyjnej w pojedynczych strukturach FPGA. Aby to osiągnąć, producenci układów logiki programowalnej implementują w układach kompletne interfejsy, umożliwiające szerokopasmowy przepływ informacji. Są one niezbędne przy realizacji gigabitowych sieci światłowodowych, szybkich lokalnych sieci komputerowych LAN, w asynchronicznej technice transmisji ATM czy też w cyfrowej telefonii komórkowej. KOMPONENTY WIRTUALNE W zakresie zastosowań układy rekonfigurowalne odniosły najpoważniejszy sukces w systemach telekomunikacyjnych i technikach informatycznych. Złożoność obecnie produkowanych struktur logicznych FPGA sięga wielu milionów bramek przeliczeniowych. Spowodowało to wyparcie tradycyjnych metod projektowych przez systemy komputerowego projektowania CAD (Computer Aided Design), opartego na językach opisu sprzętu HDL (Hardware Description Language), wśród których dominującą rolę odgrywają obecnie języki VHDL i Verilog. Taka metodyka projektowa umożliwia projektantowi układów cyfrowych i systemów zbudowanych z ich wykorzystaniem opisanie funkcji, struktury i parametrów realizowanego systemu bądź układu na wyższym niż bramkowy poziomie abstrakcji. 80 Dzięki możliwości ponownego wykorzystania wcześniej stworzonych komponentów (kodów źródłowych powstałych przy okazji innych projektów) w bieżących opracowaniach, pojawił się i rozwinął rynek własności intelektualnej IP (Intellectual Property) w zakresie projektowania nowoczesnych i uniwersalnych komponentów opisanych językami HDL (tzw. komponentów wirtualnych IP-Core) dla potrzeb wykorzystania w telekomunikacji [7]. Spełniają one rolę klasycznych podzespołów, są rdzeniami bloków funkcjonalnych o różnym stopniu złożoności, dostarczanymi przez producentów w postaci syntezowalnych opisów w językach HDL. Zakres tematyczny dotyczący takich rdzeni funkcjonalnych jest bardzo obszerny i obejmuje wiele zagadnień, takich jak [4], [17], [25]: M standardowe interfejsy magistral: IIC (Inter-Integrated Circuit), 32- i 64-bitowe interfejsy i mostki PCI (Peripheral Component Interconnect), magistrale szeregowe USB (Universal Serial Bus), CAN (Controller Area Network), SPI (Serial Protocol Interface) oraz FireWire (wg standardu IEEE 1394), M przetwarzanie obrazów (Video & Image Processing): bloki jedno- i dwuwymiarowej dyskretnej i odwrotnej transformaty kosinusowej, transformaty waveletowej, kodery i dekodery kompresji grafiki (wg standardu JPEG i JPEG2000) oraz ruchomego obrazu (wg standardu MPEG2 i MPEG4), dekodery Huffmana, funkcje splotu, konwertery przestrzeni kolorów, moduły rozpoznawania krawędzi, M układy mikroprocesorowe: sterowniki łączy szeregowych UART, optymalizowane rdzenie mikrokontrolerów 8051, mikroprocesory Z80, PIC, procesory RISC, sterowniki bezpośredniego dostępu do pamięci DMA, układy peryferyjne: liczniki, timery, sterowniki I/O, sterowniki przerwań, moduły obsługi pamięci synchronicznej SDRAM, DDR SDRAM i QDR SRAM, M bloki funkcji matematycznych i układy ALU: stało- i zmiennoprzecinkowe sumatory, mnożarki, generatory funkcji sinus i cosinus, pierwiastka kwadratowego, logarytmu i uzupełnienia w kodzie U2, M bloki cyfrowego przetwarzania sygnałów DSP: filtry cyfrowe FIR (o strukturach szeregowych i równoległych), IIR, medianowe i adaptacyjne, układy DDS (Digital Direct Synthesizer), bloki prostej i odwrotnej szybkiej transformaty Fouriera FFT (Fast Fourier Transform), rdzenie procesorów sygnałowych DSP, funkcje kodów korekcyjnych: transkodery kodu cyklicznego Redda-Solomona i dekodery Viterbiego, Equalizery QPSK, kompandery µ-Law i A-Law, M moduły kryptograficzne: bloki szyfrujące DES (Data Encryption Standard), 3DES, AES (Advanced Encryption Standard), IDEA, funkcje SHA-1 i MD5A, procesory kryptograficzne, M funkcje i bloki sieci telekomunikacyjnych i informatycznych: funkcje protokołów sieciowych, sterowniki HLDL (High-Level Data Link), transkodery ADPCM, interfejsy UTOPIA, CSIX-L1 (Common Switch Interface Layer 1), Flexbus, POS-PHY, układy dopasowania szybkości transmisji Speedbridge i Speed-Matching, komutatory i rutery sieci ATM, interfejsy sieci Ethernet. MODUŁY ECU Mniej znana na polskim rynku firma QuickLogic wyposaża rodziny układów programowalnych FPGA w dodatkowe, specjalizowane jednostki wspomagające obliczenia ECU (Embedded Computational Units), o dość bogatych możliwościach. Rozwiązanie to jest bardzo popularne i stosowane od wielu lat w układach tej firmy, m. in. w generacji układów Eclipse i QuickMIPS [21]. Na rys. 1 przedstawiono budowę pojedynczego bloku ECU. W jego skład wchodzą ultraszybkie moduły: 8-bitowy multiplikator, 16-bitowy sumator z funkcją przeniesienia, 17-bitowy rejestr PRZEGLĄD TELEKOMUNIKACYJNY ! ROCZNIK LXXVII ! nr 2–3/2004 O Rys. 1. Uproszczony oraz szczegółowy schemat budowy bloku ECU [21] równoległy, dekoder instrukcji oraz multipleksery. Tryby pracy tego modułu są dynamicznie rekonfigurowalne przez dostępną jednostkę sekwencera instrukcji. Operacje realizowane przez blok ECU są następujące: mnożenie, mnożenie z dodawaniem, akumulacja, dodawanie, mnożenie (rejestrowe), mnożenie z dodawaniem (rejestrowe), mnożenie z akumulacją – MAC, a także dodawanie (rejestrowe). W zależności od wersji układu FPGA jest dostępnych od 10 do 18 bloków ECU w pojedynczym układzie. Ich komunikację z otoczeniem zapewniają rozdzielone magistrale danych. W celu zwiększenia precyzji obliczeń moduły ECU można ze sobą łączyć. Dzięki możliwości równolegle pracujących osiemnastu bloków ECU jest osiągana wydajność 2,6 miliarda 8-bitowych operacji MACS przy częstotliwości taktowania struktury FPGA wynoszącej 144 MHz. Kolejną cechą, korzystnie zwiększającą funkcjonalność, jest możliwość bezpośredniego dostępu do bloków dwuportowej pamięci RAM. Dlatego też moduły ECU mogą szybko wykonywać operacje bezpośrednio na jej zawartości. Dodatkowo 8-bitowe operacje MAC mogą być efektywnie zaimplementowane w dostępnych blokach logicznych struktury programowalnej. W ten sposób zapewnia się wydajność osiągającą 2 GMACS. Łącząc ten wynik z maksymalnymi osiągami bloków ECU, otrzymuje się 4,6 GMACS, co stanowi sumaryczną ocenę uzyskanej mocy obliczeniowej w układach FPGA rodziny Eclipse. wanych na rynku struktur reprogramowalnych. Wykonane z zastosowaniem nowoczesnej technologii 0,13 µm układy te mają architekturę zapewniającą podstawy do realizacji blokowej metody projektowania. Dzięki niej jest osiągana maksymalna wydajność systemu i minimalny czas jej tworzenia. Dzięki wyposażeniu układów tych rodzin w kompleksowe rozwiązania oparte na wydajnych i ultraszybkich blokach funkcjonalnych (m. in. różnorodnych modułach pamięciowych, złożonych blokach DSP, interfejsach o dużej przepływności i pracujących w wielu protokołach komunikacyjnych) oraz wsparciu dla niesymetrycznych i różnicowych elektrycznych standardów I/O są możliwe nowe poziomy integracji systemu dla budowy jednoukładowych, programowalnych systemów cyfrowych SoPC (Systemon-a-Programmable-Chip) [16]. Programowalne moduły DSP dostępne w układach FPGA rodzin Stratix i Stratix GX są wysoce wydajnymi, wbudowanymi jednostkami arytmetycznymi, optymalizowanymi dla zastosowań w aplikacjach telekomunikacyjnych, takich jak: bramki telefonii internetowej VoIP (Voice over Internet Protocol Gateways), transceiwery OFDM (Orthogonal Frequency Division Multiplexing), operacje przetwarzania obrazu (Image Processing Applications) i systemy multimedialne. Elastyczne, efektywne i cenne dla różnorodnych aplikacji, które wymagają wysokiej szybkości prędkości przesyłania danych, bloki DSP mają zaimplementowane wsparcie typowych funkcji DSP (jak filtry FIR, funkcje szybkiej transformaty Fouriera FFT, korelatory oraz funkcje szyfrowania i deszyfrowania danych). Takie rozwiązanie jest idealne dla rynku bezprzewodowej telekomunikacji, sprzętu audiowizualnego oraz przetwarzania obrazów. Bloki DSP eliminują ograniczanie wydajności w złożonych aplikacjach, ukierunkowanych na funkcje arytmetyczne, dostarczają łatwo przewidywalnej i niezawodnej mocy obliczeniowej oraz zachowują dostępne zasoby – bez kompromisów dotyczących ich wydajności. Umożliwia to blokom DSP doskonałą implementację złożonych obliczeniowo systemów, z jednoczesnym zapewnieniem wysokiej szybkości przesyłania danych. Inżynierowie firmy Altera dokonali opracowania modułów DSP w sposób przemyślany i staranny, wykorzystując przy tym ogólnie dostępne rozwiązania konstrukcyjne i doświadczenia stosowane od lat w procesorach sygnałowych. Takie podejście zaowocowało stworzeniem modułów cyfrowych o bogatej architekturze, zapewniającej złożoną funkcjonalność oraz moc obliczeniową szybkich procesorów DSP. Przyjrzyjmy się bliżej architekturze tych bloków. Na rys. 2 przedstawiono ogólny zarys budowy pojedynczego bloku DSP. Zawiera on we wnętrzu STRATIX I STRATIX GX – NOWE POZIOMY INTEGRACJI SYSTEMU Najnowsze układy rodzin Stratix i Stratix GX kalifornijskiej korporacji Altera stanowią kwintesencję możliwości układów FPGA pod względem zastosowań telekomunikacyjnych wśród ofero- PRZEGLĄD TELEKOMUNIKACYJNY ! ROCZNIK LXXVII ! nr 2–3/2004 O Rys. 2. Zarys architektury pojedynczego bloku DSP w układach Stratix i Stratix GX [16] 81 sprzętowy moduł mnożenia, blok arytmetyczny (dynamicznie konfigurowalny w trzech trybach: sumatora, subtraktora i akumulatora), jednostkę sumacyjną, interfejs i rejestry wyjściowe. Z kolei każdy multiplikator ma rejestry wejściowe, stopień mnożenia i rejestry potokowe. Bloki DSP można scharakteryzować następująco: M wykonywanie operacji mnożenia w trybach 9 × 9, 18 × 18 i 36 × 36 bitów, M zaimplementowana arytmetyka stałoprzecinkowa, M operacje ze znakiem lub bez, M pełna precyzja obliczeń we wszystkich trybach, M opcjonalny rejestr przesuwający na wejściu multiplikatora (dla realizacji linii opóźniającej, stosowanej w cyfrowej filtracji typu FIR), M dynamiczne przełączanie pomiędzy sumatorem i subtraktorem, M 9-, 18- i 36-bitowe operacje dodawania i odejmowania, M 52-bitowy akumulator, M jednostka sumacyjna, generująca cztery produkty w pojedynczym takcie zegara, M złożone funkcje przemieszczania strumienia bitów, takie jak: przesuwnik (Barrel Shifter), przełącznik krzyżowy i mieszanie bitów (wykorzystywane w algorytmach szyfrowania danych). Układy rodzin Stratix cechuje struktura pamięciowa TriMatrix, którą tworzą wbudowane bloki RAM o trzech rozmiarach. Są to następujące moduły: 512-bitowe bloki M512, 4-kbitowe M4K oraz 512-kbitowe bloki M-RAM. Mogą być one skonfigurowane jako wsparcie obszernego zestawu zastosowań. Każdy wbudowany blok RAM struktury pamięciowej TriMatrix jest przewidziany do różnych klas aplikacji. I tak bloki M512 mogą być wykorzystane do realizacji niewielkich funkcji, jak kolejka pamięciowa FIFO czy też linia opóźniająca cyfrowych filtrów o skończonej odpowiedzi impulsowej FIR. Większe bloki M4K są przewidziane do przechowywania nadchodzących danych z wielokanałowych portów komunikacyjnych I/O lub jako pamięć programu dla wbudowanych rdzeni procesorów. Najbardziej pojemne moduły M-RAM mogą być natomiast zastosowane w aplikacjach ukierunkowanych na intensywność wykorzystania pamięci. Chodzi tu o buforowanie pakietów protokołów IP (Internet Protocol) czy też o zastosowanie jako pamięci danych i programu dla zintegrowanych w strukturze programowalnej procesorów RISC. Zaletą, niespotykaną na szeroką skalę w dotychczas oferowanych blokach pamięci, jest wyposażanie wszystkich bloków struktury TriMatrix w dodatkowy bit parzystości do kontroli i detekcji błędów. Kolejną cechą, zwiększającą funkcjonalność, jest dodanie wbudowanych rejestrów przesuwających, trybów pracy o różnej szerokości słowa oraz wsparcie wielu metod taktowania pamięci. Dodatkowo dla zaawansowanych operacji zapisu i odczytu danych największe bloki M4K i M-RAM wyposażono w pełny, dwuportowy tryb pracy i funkcje maskowania bajtów. Na przykładzie rodziny Stratix GX można przedstawić szeroki zakres oferowanego wsparcia dla potrzeb budowy kanałów telekomunikacyjnych z wykorzystaniem układów FPGA [15]. W strukturach tych zawarto wbudowane bloki transceiwerowe, mające po cztery niezależnie pracujące kanały w trybie full-duplex, o przepływności bitowej w zakresie od 622 Mbit/s do 3,125 Gbit/s. Każdy kanał zawiera dedykowane obwody do realizacji funkcji warstwy fizycznej (m.in. układy kodera/dekodera 8B/10B). Stanowią one czynnik wspomagający prostą i skuteczną implementację ultraszybkich protokołów według standardów: 10 Gigabit Ethernet XAUI, Gigabit Ethernet, InfiniBand, 1G i 2G Fibre Channel, Serial RapidIO, SONET/SDH, SFI-5, SPI5, PCI Express, SMPTE 292M. Stosowanie wewnątrzukładowych interfejsów komunikacyjnych powoduje uzyskanie zupełnie nowej cechy, poszerzającej 82 znacznie uniwersalność i zdolność zmiany właściwości dostępnej struktury funkcjonalnej układów FPGA. Chodzi tutaj o mechanizmy zdalnej i dynamicznej rekonfiguracji systemu cyfrowego. W metodzie tej wykorzystuje się dostępne łącze komunikacyjne nie tylko do wymiany danych pomiędzy siecią telekomunikacyjną i modułem bazowym, ale także do załadowania strumienia danych konfiguracyjnych wprost do matrycy pamięciowej. Taki sposób poszerza możliwości częściowej lub całkowitej rekonfiguracji struktury układów jedno- lub wielokontekstowych, działających w trybie on-line. Korzyści wynikające z możliwości zmiany architektury na odległość są bardzo duże. Można bowiem tworzyć sprzęt zdalnie rekonfigurowalny w czasie rzeczywistym RTR (Run-Time Reconfiguration), niedostępny dla statycznych, specjalizowanych systemów cyfrowych [15]. MIARODAJNA OCENA WYDAJNOŚCI Porównanie wydajności (performance benchmark) procesorów sygnałowych i układów logiki programowalnej FPGA jest zadaniem bardzo trudnym, ponieważ są to platformy systemowe o dość specyficznej i znacznie różniącej się budowie wewnętrznej. Rzetelna ocena osiąganych parametrów powinna być przeprowadzona z uwzględnieniem właściwości oraz cech architektur porównywanych klas układów. Po pierwsze, podstawowe współczynniki wydajności MIPS (Million Instruction Per Second) oraz MFLOPS (Million of Floating-Point Operations per Second), określające wydajność mikroprocesorów, oznaczają liczbę wykonywanych instrukcji (stało- lub zmiennoprzecinkowych) w jednostce czasu. Parametry te zależą wprost proporcjonalnie od częstotliwości taktowania i liczby dostępnych jednostek obliczeniowych, ale niestety nie mogą służyć oszacowaniu osiągów uzyskiwanych w układach FPGA. Po drugie, silnie specjalizowana i niesymetryczna architektura procesorów sygnałowych jest słabo odzwierciedlana przez te parametry4). Mają one znaczenie ogólnikowe i przybliżają jedynie szybkość wykonywania rozkazów, nie wnosząc wiele do oszacowania rzeczywistej wydajności. Lepszym rozwiązaniem wydaje się stosowanie terminu MAC (Multiple and ACcumulate), określającego wykonywanie operacji mnożenia dwóch liczb binarnych, połączonych z akumulacją wyniku. Odnosząc ten parametr do określonego przedziału czasu i skalując go, otrzymuje się tym samym powszechnie używaną jednostkę MMACS (Million Multiple and ACcumulate per Second), określającą wielokrotność miliona operacji MAC w ciągu sekundy wykonanych przez jednostkę przetwarzającą dane. Parametr ten jest o tyle ważny, że podstawowym składnikiem architektury procesora DSP jest właśnie efektywna realizacja instrukcji MAC i są one optymalizowane pod kątem ich wydajnego wykonywania. Z kolei operacja ta jest podstawowym budulcem wielu algorytmów cyfrowego przetwarzania sygnałów, począwszy od typowego zadania procesora DSP (jakim jest filtracja sygnałów – struktury typu FIR i IIR), poprzez szybką transformatę Fouriera FFT, a skończywszy na algorytmach kompresji obrazu ruchomego według standardu MPEG. Kolejną zaletą tego parametru jest możliwość bezpośredniego porównania wydajności skrajnie odmiennych architektur: procesora sygnałowego DSP i układu reprogramowalnego FPGA. A staje się to realne dzięki implementacji dedykowanych bloków realizujących funkcje MAC w strukturach FPGA (w postaci wbudowanych rdzeni bądź też z wykorzystaniem dostępnych zasobów logicznych). 4) Chociaż możemy wpaść w zachwyt przeglądając dane katalogowe najnowszych produktów DSP to jednak jednostki MIPS nie są zbyt wiarygodnym współczynnikiem. PRZEGLĄD TELEKOMUNIKACYJNY ! ROCZNIK LXXVII ! nr 2–3/2004 Powyżej opisane wskaźniki można zaklasyfikować do grupy prostych miar. Parametry te są również wyrażane względem innych jednostek, w celu uwzględnienia czynnika ekonomicznego (jak pobór mocy i koszt produktu – odpowiednio miary MACS/mW i MACS/$). Chociaż wydajne wykonywanie operacji MAC jest ważnym czynnikiem charakteryzującym wydajność jednostek DSP, to jednak nie odzwierciedla pełnych możliwości dedykowanej wielu aplikacjom dostępnej architektury oraz bogactwa wykonywanych instrukcji. Taka uniwersalność ma bezpośredni wpływ na efektywność i jakość implementacji wybranych algorytmów, zjawisk niemierzalnych prostymi współczynnikami. Istotną rolę w przetłumaczeniu algorytmu (często zawierającego równolegle wykonywane fragmenty) na sekwencyjny program zarządzający przepływem strumienia danych odgrywa problem napełniania potoku instrukcji wszystkich jednostek obliczeniowych w procesorach o architekturze VLIW. W niekorzystnych wypadkach objawia się to obniżeniem efektywności pracy systemu, a tym samym spadkiem wydajności. Przyczyną tego jest nieciągła praca układów wykonawczych. Dlatego stosowane są osobne grupy testów porównawczych dla oszacowania skuteczności wykonania danej aplikacji w testowanej platformie sprzętowej. Jest to również metoda, która uwidocznia wady i zalety testowanych architektur w określonym zastosowaniu oraz przedstawia osiąganą przez nie wydajność dla celów porównawczych. Testy te stanowią zestawienie czasu realizacji typowych zadań i aplikacji z dziedziny szeroko pojętej telekomunikacji. Można w nich wyróżnić dwie odrębne kategorie: do pierwszej grupy należą w pełni funkcjonalne i kompletne aplikacje (mogą to być np. modemy telefoniczne wg standardu V. 90), natomiast drugą grupę tworzą jądra algorytmów i podzadania dotyczące szerokiego zakresu zagadnień cyfrowego przetwarzania sygnałów. A są to m. in. następujące operacje: M filtry cyfrowe o skończonej i nieskończonej odpowiedzi impulsowej (struktury FIR i IIR) o współczynnikach w stałoprzecinkowym formacie 8- lub 16-bitowym i operujące na rzeczywistych lub zespolonych danych, M filtry adaptacyjne LMS, M operacje wektorowe, M 256- i 1024-punktowa rzeczywista i zespolona szybka transformacja Fouriera FFT, operująca na danych 8- lub 16-bitowych, M transkodery kodu cyklicznego Reeda-Solomona, M dekodery Viterbiego, M transkodery turbokodów splotowych. Jest to zagadnienie o tyle ważne, że porównanie wydajności układów DSP i FPGA z zastosowaniem takiego kryterium umożliwia bezpośrednie oszacowanie efektywności i właściwości implementacji programowych i sprzętowych na podstawie testowanych aplikacji i różnych zastosowań. Na marginesie należy zaznaczyć, iż gruntowną i kompleksową analizą wydajności oraz śledzeniem rozwoju technologii z użyciem techniki mikroprocesorowej zajmuje się wiele korporacji, jak BDTI (Berkeley Design Technology, Inc.) lub konsorcjum EEMBC (Embedded Microprocessor Benchmark Consortium). W POGONI ZA WYDAJNOŚCIĄ Na rynku zaawansowanych generacji systemów i aplikacji telekomunikacyjnych intensywnie poszukuje się nowych kierunków i sprzętowych rozwiązań, mogących sprostać stawianym wymaganiom wydajnościowym. Takie zapotrzebowanie jest siłą napędową rozwoju współczesnej technologii cyfrowej, która pokonuje kolejne bariery wydajności. Przejdźmy do porównania rynku rozwiązań, opartych na dwóch platformach systemowych: procesorach sygnałowych PRZEGLĄD TELEKOMUNIKACYJNY ! ROCZNIK LXXVII ! nr 2–3/2004 O Rys. 3. Zestawienie prędkości wykonywania 8-bitowych operacji MAC w implementacjach opartych o procesory sygnałowe i struktury programowalne (przyjęta jednostka: GMACS) i logice programowalnej FPGA. Jak widać na rys. 3, ogromna prędkość taktowania obecnie produkowanych struktur DSP (przekraczająca ponad 1 GHz) nie przekłada się na równoważną moc obliczeniową, mogącą skutecznie dorównać rozwiązaniom opartym na najnowszych układach FPGA. Warto także zauważyć, że wpływ czasu ma nieuchronny wpływ na starzenie się technologii półprzewodnikowych. Również układy FPGA starszej generacji (jakimi są EcipsePlus i FLEX 8000A) kolosalnie różnią się od liderów wydajności wśród platform logiki programowalnej. Ponadto okazuje się, iż podstawowe zadanie procesora sygnałowego, jakim jest filtracja sygnałów, o wiele efektywniej można wykonać w strukturze FPGA (tabela 2). Dzięki takiej alternatywie uzyskuje się osiągi, które dotychczas były niemożliwe do zrealizowania. Chodzi tu o przepływność danych na wyjściu tak zbudowanego filtru, przekraczającą barierę 300 milionów wyliczonych próbek w jednostce czasu! Chociaż matryce reprogramowalne są taktowane kilkakrotnie mniejszymi częstotliwościami (typowo pomiędzy 100–300 MHz), niż konkurencyjne procesory DSP, to jednak implementacja struktury FIR o równoległej architekturze w zasobach FPGA (a jest to przeważająca tendencja) skutecznie niweluje tę różnicę oraz umożliwia jednotaktowy cykl pracy. Dla pełniejszej analizy porównania niezbędne jest omówienie także problemu realizacji kluczowej aplikacji z dziedziny przetwarzania sygnałów, jaki stanowi szybkie przekształcenie Fouriera FFT. W tabeli 3 przedstawiono obecnie dostępne wykonania tego algorytmu z uwzględnieniem najważniejszych parametrów jego sprzętowej integracji. Jednym z parametrów określających wydajność implementacji transformaty FFT jest całkowity czas jej wykonania. Porównując za pomocą tego wskaźnika otrzymane osiągi, można dojść do wniosku, iż realizacja tego algorytmu oparta na platformie DSP nie odbiega znacząco od analogicznego umieszczenia tej funkcji w strukturze FPGA. Warto jednak zauważyć silną zależność czasu wykonania od częstotliwości taktowania układu, którą należy uwzględnić w porównaniu. Dlatego też czynnikiem właściwiej odzwierciedlającym rzeczywistą wydajność, otrzymaną po procesie sprzętowego odwzorowania omawianej aplikacji, jest liczba taktów potrzebnych do uzyskania końcowego wyniku transformacji Fouriera. Zestawienie z takim kryterium uwidocznia znaczną przewagę implementacji algorytmu FFT w strukturach FPGA nad analogicznym wykonaniem z użyciem procesorów sygnałowych. 83 O Tabela. 2. Porównanie realizacji filtru FIR wykonanego z zastosowaniem procesorów DSP i matryc reprogramowalnych FPGA Platforma DSP Rodzaj implementacji Stałoprzecinkowy Zmiennoprzecinkowy Rodzina Wydajność1) [MSPS] 22,5 Częstotliwość zegara [MHz] Liczba taktów zegara2) Inne3) 720 32 0,17 ns 250 128 2 ns 64 0,35 ns 256 8-bitowe TMS320C62x 256 16-bitowe TMS320C64x 256 16-bitowe 11,3 720 TMS320C64x 256 16-bitowe 17,2 1100 64 0,23 ns SHARC 256 16-bitowe 0,26 66 256 15 ns SHARC II 256 16-bitowe 0,78 100 128 5 ns TigerSHARC 256 16-bitowe 18,75 600 32 0,21 ns TigerSHARC 256 IEEE 754 4,7 600 128 0,83 ns FLEX 8000A Stałoprzecinkowy Współczynniki/dane TMS320C64x ACEX 1K FPGA Rząd filtru 1,95 8 16-bitowe 192 192 1 32 8-bitowe 105 105 1 bloki LE bloki LE Virtex-E 256 16-bitowe 160 160 1 bloki CLB Virtex-II 256 16-bitowe 180 180 1 bloki CLB Virtex-II Pro 256 16-bitowe 300 300 1 bloki CLB Stratix 256 8-bitowe 200 200 1 bloki LE Stratix 224 8-bitowe 300 300 1 bloki DSP Stratix 256 16-bitowe 300 300 1 bloki M512 Uwagi: 1) Wydajność struktury FIR określana przez liczbę próbek uzyskanych w ciągu jednej sekundy na wyjściu filtru – charakteryzowana z użyciem jednostek MSPS (Million Samples Per Second) 2) Liczba taktów zegara potrzebna do obliczenia pojedynczej próbki na wyjściu struktury FIR 3) W przypadku procesorów DSP: czas obliczenia pojedynczej operacji MAC; w przypadku struktury FPGA: sposób implementacji filtru O Tabela 3. Zestawienie uzyskanych osiągów realizacji algorytmu FFT w wybranych platformach sprzętowych Platforma Rodzaj implementacji Stałoprzecinkowy DSP Zmiennoprzecinkowy FPGA Stałoprzecinkowy Zmienno przecinkowy Rodzina FFT [punkty] Czas Częstotliwość Współczynniki/ /dane wykonania [ps] zegara [MHz] Wydajność1) Inne TigerSHARC 256 1,55 600 16-bitowe 930 TMS320C55x 256 23,93 200 16-bitowe 4786 – Radix 2 TMS320C62x 256 7,9 300 16-bitowe 2370 – TMS320C64x 1024 8,34 720 16-bitowe 6002 Radix 4 Radix 4 SHARC 1024 279 66 IEEE 754 18221 SHARC II 1024 92 100 IEEE 754 9200 TMS320C67x 1024 28,9 500 IEEE 754 14464 – TigerSHARC 1024 16,77 600 IEEE 754 10062 Radix 2 1,9 100 16-bitowe 190 Virtex-II 64 Virtex-II 256 7,7 100 16-bitowe 770 ACEX 1K 512 23,4 113 8-bitowe 2645 Radix 4 FFT/IFFT FFT/IFFT – Virtex-II 1024 41 100 16-bitowe 4100 FFT/IFFT Virtex-E 1024 41 100 16-bitowe 4100 – Virtex-II Pro 1024 1 150 16-bitowe 150 Virtex-II 1024 <1 140 16-bitowe <140 – Stratix 1024 57 185 IEEE 754 10630 Radix 2 Stratix 1024 28 185 IEEE 754 5315 Radix 4 Uwagi: 1) Szacowana wydajność implementacji algorytmu FFT obliczana jako iloczyn częstotliwości taktowania struktury i czasu wykonania algorytmu. Parametr ten określa bezpośrednio liczbę taktów zegara potrzebnych do obliczenia pełnej transformaty FFT. Im wartość ta jest mniejsza, tym implementacja taka jest bardziej efektywna. Podsumowując, układy reprogramowalne stanowią przyszłościową alternatywę dla platform DSP i w wielu typowych aplikacjach zapewniają znacznie większą elastyczność i wydajność, dotychczas nieosiągalną klasycznymi metodami. ✽✽✽ Ogromny rynek usług telekomunikacyjnych i aplikacji z dziedziny cyfrowego przetwarzania sygnałów w dużej mierze jest 84 wspierany przez systemy cyfrowe, tworzone z zastosowaniem procesorów sygnałowych. Rynek ten przyciąga także producentów alternatywnych platform sprzętowych, szukających nowych dziedzin ekspansji i zapotrzebowania na swoje produkty. Takie zagrożenie i groźną konkurencję dla układów DSP stanowią struktury reprogramowalne FPGA, oferujące zupełnie nowe rozwiązania i niespotykaną dotychczas wydajność budowanych z ich udziałem systemów telekomunikacyjnych. Oznacza PRZEGLĄD TELEKOMUNIKACYJNY ! ROCZNIK LXXVII ! nr 2–3/2004 to również nieuchronny zmierzch klasycznych koncepcji realizacji architektur procesorów (także DSP), przeniesienie ich i integrację w strukturze krzemowej, zapewniającej kompleksowe rozwiązania dla implementacji obszernej klasy aplikacji z dziedziny telekomunikacji oraz dostarczającej niespotykane dotychczas mechanizmy i techniki (jak rekonfiguracja sprzętu czy komponenty wirtualne). Trend ten stanowi kolejny etap ewolucji układów DSP i nie przyczyni się definitywnie do odejścia od sprawdzonej przez lata architektury procesorów sygnałowych. Dokona się natomiast przemiana w sposobie jej fizycznej implementacji. Oznacza to odejście od klasycznych realizacji procesorów DSP w pojedynczych układach scalonych, do jakich dotychczas byliśmy przyzwyczajeni. Przyszłość pokaże, czy alternatywa FPGA istotnie zrewolucjonizowała systemy cyfrowe i przyczyniła się do odejścia od wysłużonych rozwiązań. Na przytoczonych przykładach widać, że nie ma powodu by tak się nie miało stać. LITERATURA [1] Łuba T., Zbierzchowski B.: Komputerowe projektowanie układów cyfrowych, WKŁ, Warszawa 2000 [2] Pasierbiński J., Zbysiński P.: Układy programowalne w praktyce, WKŁ, Warszawa 2001 3] Łuba T., Zbierzchowski B., Zbysiński P.: Układy reprogramowalne dla potrzeb telekomunikacji cyfrowej, Przegląd Telekomunikacyjny i Wiadomości Telekomunikacyjne, nr 5, 2002 [4] Jasiński K., Łuba T., Zbierzchowski B.: Programowalne struktury logiczne w projektowaniu układów cyfrowych dla telekomunikacji i informatyki, Materiały II Krajowej Konferencji Naukowej RUC1999, Szczecin, 1999 [5] Zbysiński P.: Wspomaganie obliczeń za pomocą struktur rekonfigurowalnych, Elektronizacja, nr 4, 2000 [6] Bora P., Łuba T., Zbierzchowski B.: Układy FPGA w przetwarzaniu sygnałów i w telekomunikacji, Przegląd Telekomunikacyjny i Wiadomości Telekomunikacyjne, nr 4, 1995 [7] Jakóbiec T.: IP Cores. Nowoczesna technologia projektowania układów cyfrowych, Elektronika Praktyczna, nr 10, 2002 PRZEGLĄD TELEKOMUNIKACYJNY ! ROCZNIK LXXVII ! nr 2–3/2004 [8] Gajer M.: Nowoczesne procesory sygnałowe TMS320C6000 firmy Texas Instruments przewidziane do zastosowań telekomunikacyjnych, Elektronika, nr 1, 2002 [9] Izydorczyk J.: Co nowego w krainie DSP?, Przegląd Telekomunikacyjny i Wiadomości Telekomunikacyjne, nr 4, 2001 [10] Izydorczyk J.: Czy postęp w telekomunikacji przyczyni się do zagłady procesorów sygnałowych?, Przegląd Telekomunikacyjny i Wiadomości Telekomunikacyjne, nr 10, 2000 [11] Altera: Digital Signal Processing in FLEX Devices, PIB23, ver. 1, January 1996 [12] Altera: Using PLDs for High-Performance DSP Applications, ver. 1.0, February 2002 [13] Altera: DSP Performance in Stratix Devices. Using LEs to Implement Multipliers, www. altera. com [14] Altera: Using Soft Multipliers with Stratix & Stratix GX Devices, AN246, ver. 2.0, November 2002 [15] Altera: Stratix GX – The Low-Risk to 3.125-Gbps Transceiver Applications, ver. 1.0, October 2002 [16] Altera: Stratix – New Levels of System Integration, ver. 2.0, October 2002 [17] Altera: Intellectual Property Selector Guide – IP Functions for Systemon-a-Programmable-Chip Solutions, ver. 3.0, March 2003 [18] Altera: Using the DSP Blocks in Stratix & Stratix GX Devices, AN214, ver. 3.0, November 2002 [19] Altera: Implementing High-Performance DSP Functions in Stratix & Stratix GX Devices, AN215, ver. 2.0, November 2002 [20] QuickLogic: Embedded Standard Products FPGA Solutions Guide – Secure Programmable Logic Solutions, 2002 [21] QuickLogic: EclipsePlus Family Data Sheet, 2003 [22] Xilinx: Virtex-II Platform FPGA User Guide, ver. 1.5, December 2002 [23] Xilinx: FPGA for DSP, www. xilinx. com [24] Xilinx: Xilinx XtremeDSP Initiative meets the Demand for Extreme Performance and Flexibility, Xcell journal, Issue 38, Summer 2001 [25] Xilinx: Xcell Journal, Issue 45, Spring 2003 [26] CD-ROM: Documentation Library, Altera, June 2003 [27] CD-ROM: DataSource™ CD-ROM, Xilinx, Rev. 8, 2003 Artykuł recenzowany (Artykuł nadesłano do red. – październik 2003) 85