PLD 3 id 362492 Nieznany

background image

409

W dzisiejszych czasach trudno sobie wyobrazić dziedzinę szero-

ko rozumianej telekomunikacji, w której cyfrowe przetwarzanie sy-
gnałów DSP (Digital Signal Processing) nie miałoby zasadniczego
znaczenia. Odnosi się to do wszystkich warstw systemu telekomuni-
kacyjnego: od urządzeń przetwarzających obrazy, dźwięki, dane
alfanumeryczne na sygnały (i odwrotnie), przez sieci telekomunika-
cyjne przenoszące i komutujące te sygnały, aż po systemy urzą-
dzeń, zapewniających dostarczanie różnorakich treści, zwanych po-
wszechnie usługami. Można tu wymienić takie przykłady, jak: mode-
my telefoniczne, systemy cyfrowego szerokopasmowego dostępu
abonenckiego DSL (Digital Subscriber Line), dostępu radiowego,
rozpoznawanie mowy i mówców, telewizja cyfrowa wysokiej roz-
dzielczości, telefonia komórkowa i satelitarna czy związana z więk-
szością wymienionych systemów – kryptografia. Trzeba podkreślić,
że tak szerokie zastosowanie techniki cyfrowej w telekomunikacji
znalazło zastosowanie dopiero w momencie opanowania technolo-
gii wytwarzania na wielką skalę scalonych układów specjalizowa-
nych ASIC (Application Specific Integrated Circuits). Coraz większą
popularnością w tym zakresie cieszą się procesory sygnałowe – mi-
krokomputery skonstruowane specjalnie do cyfrowego przetwarza-
nia sygnałów. Obecnie z procesorami sygnałowymi w wielu zastoso-
waniach mogą konkurować układy programowalne i reprogramo-
walne.

Dynamiczny rozwój cyfrowych technik telekomunikacyjnych daje

się zauważyć zwłaszcza w systemach multimedialnych. Ogólnie
można powiedzieć, że telekomunikacyjny system multimedialny to
zespół środków technicznych i procesów, umożliwiających przekaz
i prezentację wiadomości za pomocą przynajmniej dwóch, wzajem-
nie zsynchronizowanych, środków przekazu, takich jak: mowa, mu-
zyka, ruchomy obraz, tekst, grafika itp. Powszechnie jest on utożsa-
miany z takimi usługami, jak: wideotelefonia, wideokonferencja, wi-
deo na żądanie (lub prawie na żądanie), telepraca, teleedukacja,
telezakupy itd. W takim systemie wyróżnia się trzy podstawowe ele-
menty funkcjonalne: serwer usług multimedialnych, terminale multi-
medialne oraz sieć dostępu do usług. Zadaniem sieci jest przenie-
sienie sygnałów dotyczących usług – oferowanych przez serwery –
do terminali, a także wymiana danych między serwerami. Płaszczy-
zna transportowa takiej sieci jest na ogół bardzo dobrze rozwinięta
i przystosowana do przenoszenia sygnałów cyfrowych z dużą szyb-
kością. Najczęściej są w niej stosowane kable światłowodowe
i szybkie techniki transmisyjne: SDH, ATM, Frame-Relay itp. Najbar-
dziej krytycznym elementem tego systemu jest abonencka sieć do-
stępowa, przenosząca sygnały multimedialne od węzłów sieci trans-
portowej do terminalu i na odwrót. Ze względu na istniejącą infra-
strukturę kablową tej sieci (najczęściej symetryczna para
przewodów miedzianych, tzw. skrętka), stało się konieczne opraco-
wanie systemów umożliwiających transmisję cyfrową do (i od) abo-
nenta z dużą szybkością.

W tej części sieci powszechnie przyjmowana szerokość pasma

podstawowego 300 Hz – 3400 Hz nie wynika z własności linii trans-
misyjnej, lecz z przepustowości filtrów stosowanych (dla transmisji
telefonicznej) w punktach styku z siecią transportową. Wspomniana
skrętka umożliwia (oczywiście po usunięciu filtrów) wykorzystanie
pasma do 1 MHz, a jedynym ograniczeniem szybkości transmisji cy-
frowej jest długość kabla i jakość jego wykonania. Efektywne zwięk-
szenie wykorzystania pasma do transmisji dwukierunkowej osiąga
się przez stosowanie odpowiednich kodów liniowych oraz przez sto-
sowanie cyfrowej kompensacji (kasowania) echa (Echo Canceller)
w układach rozgałęźnych po stronie abonenta i po stronie sieci.

Na przykład w sieciach ISDN dla dostępu podstawowego

(2B + D) do transmisji o szybkości 144 kbit/s (2 kanały po 64 kbit/s
+ 16 kbit/s dla kanału sygnalizacyjnego) wykorzystuje się kod linio-
wy 2B1Q (2-Binary 1-Quatenary) oraz technikę kompensacji echa.
Sprowadza się ona do wytworzenia w nadajniku przez adaptacyjny
filtr cyfrowy sygnału identycznego z przebiegiem echowym i odjęcia
go od całkowitego sygnału odbieranego.

Podobną zasadę kasowania echa stosuje się w systemach dostę-

powych DSL. Opracowano (i dalej się rozwija) systemy HDSL (High
data rate Digital Subscribe Line
), ADSL (Asymmetric Digital Sub-
scribe Line
), VDSL (Very high data rate Digital Subscribe Line) o róż-
nych przepływnościach i różnych technikach kodowania.

Kodowanie liniowe i cyfrowe kasowanie echa w systemach do-

stępowych i sieciach ISDN to niewielka część szerokiego zakresu
stosowania cyfrowego przetwarzania sygnałów. Ogromne znacze-
nie mają techniki kodowania sygnałów telefonicznych i wizyjnych,
umożliwiające zmniejszenie przepływności kanałów służących do
ich przenoszenia, a także wykrywanie i ewentualnie korekcję błędów
transmisji. Wystarczy powiedzieć, że w systemach radiokomunikacji
ruchomej szybkość strumienia sygnału mowy zmniejsza się
z 64 kbit/s (w systemach PCM) do szybkości poniżej 10 kbit/s.

W społeczeństwie informacyjnym wiele dziedzin życia gospodar-

czego i kulturalnego korzysta z elektronicznego przekazywania da-
nych. Ogromnego znaczenia nabiera zatem poufność, a nawet taj-
ność przekazywanych informacji. Z coraz większym przekonaniem
przyjmowany jest pogląd, że ochrona danych będzie odgrywała
podstawową rolę w funkcjonowaniu przyszłych systemów informa-
cyjnych. Dotyczy ona głównie aplikacji telekomunikacyjnych, takich
jak telefonia bezprzewodowa i komórkowa, faksy, pagery, płatna te-
lewizja, komercyjne produkty audio/wideo itp. Jednak najważniej-
szym obszarem, w którym decydujące znaczenie mają mechanizmy
ochrony informacji, jest komunikacja cyfrowa, a w szczególności
sieć internetowa.

Mechanizmy ochrony komunikacji cyfrowej są realizowane za po-

mocą specjalnych protokołów bezpieczeństwa i w formie algoryt-
mów kryptograficznych stały się częścią wielu standardowych roz-
wiązań, jak IPSec (protokół internetowy), SSL (Secure Socket
Layer
), szyfrowane komórki sieci ATM oraz różnych standardów
ANSI dla bankowości. Eksplozja wzrostu usług internetowych w za-
kresie handlu i biznesu, w tym operacji finansowych i obrotu kapita-
łowego, spowodowała, że realizacja mechanizmów zabezpieczenia
przed nieuprawnionym dostępem do informacji stała się ogromnym
wyzwaniem.

PRZEGLĄD TELEKOMUNIKACYJNY

ROCZNIK LXXVI

nr 8–9/2003

Tadeusz ŁUBA*, Krzysztof JASIŃSKI*, Bogdan ZBIERZCHOWSKI*

Programowalne układy

przetwarzania sygnałów

i informacji – technika cyfrowa

w multimediach i kryptografii

*

Instytut Telekomunikacji Politechniki Warszawskiej
e-mail: luba@tele.pw.edu.pl, kjasio@tele.pw.edu.pl,
bogdan@tele.pw.edu.pl

background image

Jak widać, zakres zastosowań układów cyfrowych w telekomuni-

kacji będzie coraz większy i niedobrze byłoby, gdyby w rozwoju tej
techniki i jej ogromnych rynkowych możliwości nie uczestniczyły fir-
my polskie. Zrozumienie tych szans jest szczególnie istotne w dobie
rewolucyjnego rozwoju technologii układów programowalnych [26].
Dotychczasowe sukcesy polskich firm w komercyjnych aplikacjach
techniki cyfrowej w telekomunikacji potwierdzają tę tezę. Doskona-
łym przykładem może tu być firma ADB Polska, założona przed pię-
ciu laty przez pracowników naukowych Politechniki Zielonogórskiej.
Z dużym powodzeniem opracowuje ona i sprzedaje w milionach
sztuk – również na rynki zagraniczne – urządzenia telewizji cyfrowej.

W artykule opisano podstawowe właściwości układów programo-

walnych oraz możliwości ich zastosowania w przetwarzaniu sygna-
łów i informacji. Omówiono przykłady eksperymentalnych i przemy-
słowych aplikacji multimedialnych oraz realizacje algorytmów kryp-
tograficznych. Przedstawiono nową ofertę na rynku cyfrowych
układów telekomunikacyjnych – produkty wirtualne. Wskazano tak-
że na ogromne znaczenie syntezy logicznej w tych zastosowaniach.

ROLA UKŁADÓW PROGRAMOWALNYCH
W ROZWOJU TECHNIKI CYFROWEJ
DLA POTRZEB PRZETWARZANIA
SYGNAŁÓW I INFORMACJI

W technice cyfrowej w ostatnich latach obserwuje się ogromne

zmiany w metodach projektowania układów i systemów cyfrowych
oraz w technologiach wykonywania urządzeń cyfrowych. Z punktu
widzenia technologii jest to postęp od układów katalogowych i płyt-
ki drukowanej do specjalizowanych układów ASIC i specjalizowa-
nych procesorów ASIP (Application Specific Instruction Set Proces-
sors
) o złożoności sięgającej milionów bramek. W szczególności
udoskonalenia procesu technologicznego, polegające na reduko-
waniu wymiarów elementów półprzewodnikowych i zwiększaniu
liczby warstw metalizowanych połączeń, a także nowe techniki pro-
gramowania umożliwiły opracowanie generacji struktur FPLD (Field
Programmable Logic Devices
) z możliwością reprogramowania i re-
konfiguracji [21], [30]. Te cechy układów FPLD umożliwiają imple-
mentacje algorytmów DSP, niekiedy znacznie lepsze w porównaniu
z implementacjami na procesorach sygnałowych.

Obecnie produkowane układy FPLD, w zależności od struktury,

klasyfikuje się na układy matrycowe – CPLD (Complex PLD) oraz
układy komórkowe – FPGA.

Elementem charakterystycznym dla architektury CPLD jest wyko-

rzystanie w układach wielu struktur typu PAL (Programmable Array
Logic
) zgrupowanych w bloki SPLD (Simple PLD). Bloki te są ze so-
bą połączone szybką, programowaną matrycą połączeniową, jak to
pokazano na rys. 1. Jej zadaniem jest przesyłanie sygnałów między

wejściami zewnętrznymi a wewnętrznymi blokami logicznymi oraz
między tymi blokami.

Niezależnie od wykonania, ważnymi parametrami matrycy połą-

czeniowej, będącej krytycznym fragmentem układów CPLD, są:
zdolność łączeniowa i czas propagacji sygnału. Pod pojęciem zdol-
ności łączeniowej rozumie się możliwość łączenia dowolnych ele-
mentów struktury programowalnej. Producenci układów rozwiązują
związane z tym problemy w różny sposób, czego efektem są różno-
rodne architektury matryc połączeniowych, w „dużych” układach
CPLD – także wielopoziomowe. Architektura matrycy połączeniowej
i technologia zastosowana do jej realizacji mają duży wpływ na czas
propagacji sygnału. We współczesnych układach CPLD czas propa-
gacji sygnału przez matrycę połączeniową nie przekracza zazwyczaj
0,8... 3 ns (m. in. matryce GRP firmy Lattice, PIA – Altera, PIM – Cy-
press, ZIA – Xilinx). Dostępne są także układy, w których czas pro-
pagacji skrócono do ok. 100... 200 ps (ZIA, AIM – Xilinx).

Grupą układów programowalnych o architekturze i budowie ele-

mentarnych komórek logicznych, znacznie odmiennej od architektu-
ry i budowy komórek układów SPLD i CPLD, są struktury FPGA
(Field Progammable Gate Array). Na rys. 2 pokazano ułożenie komó-
rek logicznych oraz traktów połączeniowych, charakterystyczne dla
większości układów FPGA.

410

PRZEGLĄD TELEKOMUNIKACYJNY

ROCZNIK LXXVI

nr 8–9/2003

O

O

Rys. 1. Struktura CPLD. Oznaczenia: PIA (Programmable Inter-

connect Array) – matryca połączeniowa, SPLD – prosta struktura PLD
typu PAL

O

O

Rys. 2. Struktura FPGA. Oznaczenia: PIP (Programmable Intercon-

nect Point) – programowalne punkty połączeniowe, RC (Routing
Channels
) – trakty połączeniowe, I/O – bloki wejściowo-wyjściowe, LB
(Logic Blocks
) – bloki logiczne

Praktycznie wszystkie obecnie produkowane układy programo-

walne są wyposażone w reprogramowalne matryce pamięciowe.
Najczęściej są stosowane dwa rodzaje matryc: z komórkami pamię-
ci SRAM (Static RAM) i trwałej EEPROM, a coraz rzadziej PROM lub
EPROM. Układy reprogramowalne CPLD i FPGA oferuje na świecie
kilku producentów. Są to zarówno układy z matrycami SRAM, jak
i EEPROM. Nieulotne matryce EEPROM charakteryzują się ograni-
czoną liczbą dopuszczalnych cykli reprogramowania, zazwyczaj od
100 do 1000, gwarantują natomiast długi czas przechowywania za-
pisanych w nich konfiguracji (do 100 lat) bez zasilania.

W aplikacjach wymagających dużej pojemności logicznej są sto-

sowane przede wszystkim struktury FPGA, w których rolę elementu
pamięciowego spełnia komórka pamięci nietrwałej SRAM. Po każ-
dorazowym włączeniu zasilania niezbędne jest wprowadzenie da-
nych o konfiguracji, czyli tzw. inicjalizacja konfiguracji matrycy. Pro-
ces rekonfiguracji we wszystkich układach FPGA przebiega podob-
nie, przy czym – w zależności od typu układu – czas inicjalizacji
struktury waha się od 1ms (układy serii AT6000) aż do 320 ms (ukła-
dy FLEX10K). Dzięki wykorzystaniu standardowych interfejsów sze-
regowych SDI (Serial Data Interface) w układach FPGA oraz JTAG-
ISP
w układach CPLD, dane konfiguracyjne można „załadować” do

background image

411

struktury programowalnej za pomocą lokalnego sterownika lub spe-
cjalnego interfejsu programującego. Strumień danych konfiguracyj-
nych jest zwykle przechowywany w standardowej pamięci stałej
o dowolnej organizacji lub w specjalnej pamięci szeregowej.

Ze względu na właściwości matryc pamięciowych, do stosowania

w aplikacjach rekonfigurowalnych są predestynowane układy
FPGA.

Głównym celem rekonfiguracji systemu jest dostosowanie struk-

tury funkcjonalnej, dostępnej w ramach jego architektury podstawo-
wej, do wymagań realizowanych algorytmów. W przypadku realiza-
cji algorytmów, które „nie mieszczą” się w całości w strukturze sys-
temu, istnieje konieczność ich rozłożenia na sekwencje podzadań
realizowanych kolejno w odpowiednich konfiguracjach. Warunkiem
niezbędnym do realizacji całego algorytmu jest zdolność systemu
rekonfigurowalnego do wymiany danych konfiguracyjnych wraz
z przekazaniem wyników uzyskanych w bieżącej konfiguracji do
kontynuowania obliczeń w następnej konfiguracji. Taki sposób re-
konfiguracji systemu podczas jego działania jest wyróżniany termi-
nem run-time.

Obecnie stosuje się kilka metod rekonfiguracji układów FPGA

[40]. Najprostszym implementacyjnie, ale niezbyt efektywnym spo-
sobem rekonfiguracji, jest zmiana konfiguracji (tzw. kontekstu) całej
struktury programowalnej. Polega ona na szeregowym wprowadze-
niu strumienia nowych danych konfiguracyjnych. Wadą tej metody
jest konieczność przerwania pracy całego układu, co w konsekwen-
cji może obniżyć wydajność całego systemu. Układy wyposażone
w taki mechanizm rekonfiguracji są nazywane jednokontekstowymi.
Większość obecnie produkowanych układów FPGA można uważać
za układy jednokontekstowe o różnych czasach rekonfiguracji.

Bardziej efektywnym sposobem rekonfiguracji jest rekonfiguracja

częściowa. Jest ona możliwa pod warunkiem przerwania pracy ukła-
du, podobnie jak w przypadku układów jednokontekstowych, cho-
ciaż dzięki możliwości wymiany tylko niezbędnej części danych kon-
figuracyjnych średni czas rekonfiguracji może być – zależnie od
przyjętego sposobu przydziału zadań – znacznie krótszy.

Do najbardziej znanych układów rekonfigurowalnych należą

struktury AT40K/KA/KAL, AT6000 oraz FPSLIC AT94 (wszystkie
wymienione rodziny są to układy FPGA, produkowane przez firmę
Atmel [13]) oraz Virtex/Virtex II i Virtex E (produkowane przez firmę
Xilinx).

Ogromną zaletą układów AT40K/KA/KAL oraz AT6000 jest możli-

wość ich częściowej rekonfiguracji bez konieczności „wyłączania”
pozostałej, nie poddawanej rekonfiguracji, części układu. Uzyskanie
tak dobrego efektu użytkowego jest możliwe dzięki zaawansowane-
mu mechanizmowi wymiany danych konfiguracyjnych CacheLogic,
w który wyposażono wszystkie układy obydwu rodzin.

Zupełnie inną architekturę i nieco inne walory użytkowe mają

układy AT94, nazywane w nomenklaturze producenta także FPSLIC
(Field Programmable System Level Integrated Circuit). Integrują one
bowiem w jednej strukturze rekonfigurowalną matrycę FPGA oraz 8-
bitowy mikrokontroler RISC. Budowa, właściwości (w tym możli-
wość częściowej rekonfiguracji) i podstawowe parametry matryc re-
konfigurowalnych są identyczne jak dla matryc stosowanych w ukła-
dach AT40K. Możliwości użytkowe układów AT94K znacznie
zwiększa fakt zintegrowania w ich strukturze szybkiego mikrokontro-
lera o architekturze RISC, którego wydajność dochodzi do 40 MIPS.
Szczegółowy opis architektury układów FPSLIC można znaleźć m.
in. w artykule [40].

Do stosowania w aplikacjach nie wymagających częściowej re-

konfiguracji struktury układu doskonale nadają się układy z rodzin
Virtex oraz APEX, które należą obecnie do grupy najwyżej zaawan-
sowanych technologicznie układów FPGA. O ich dużych zaletach
decydują m. in. mechanizmy sprzętowej implementacji pamięci róż-
nego typu (w tym FIFO oraz DualPort FIFO), możliwość łączenia blo-
ków logicznych w bloki funkcjonalne bez wykorzystywania lokal-
nych zasobów połączeniowych, a także krótki czas rekonfiguracji.

Jednak nie tylko z tych powodów układy FPGA mają przeważają-

ce zalety w implementacjach algorytmów DSP. Decydującym czyn-
nikiem w coraz powszechniejszym zastosowaniu układów FPGA do
syntezy układów DSP jest ich specyficzna, ziarnista i potokowa
struktura wewnętrzna. Zalety tej struktury objawiają się już na pozio-
mie najprostszych – ale wyjątkowo typowych w DSP – układów
mnożenia skalarnego z akumulacją. Na rys. 3 pokazano uproszczo-
ną strukturę mnożenia szeregowego, realizowanego w jednowymia-

rowej matrycy systolicznej. Każde ogniwo tego układu można bez-
pośrednio zrealizować w pojedynczych komórkach struktur FPGA,
a niezależność tej struktury od liczby bitów przetwarzanych słów jest
dodatkową zaletą decydującą o wydajności i skalowalności realizo-
wanych algorytmów. Układy szeregowego mnożenia bitowego znaj-
dują zastosowanie w realizacjach filtrów typu FIR [26], [36].

Komórkowa budowa struktur FPGA, a w szczególności możli-

wość grupowania często wykorzystywanych bloków tablic odwzoro-
wań (tablic prawdy) LUT (Look Up Table) w wielowyjściowe pamię-
ci, znakomicie ułatwia realizację układów arytmetyki rozproszonej
DA (Distributed Arithmetic) [26]. Strukturę układu DA pokazano na
rys. 4. Zaletą architektury DA jest wygodna i efektywna implementa-
cja w strukturach FPGA. Przeprowadzone eksperymenty [36] wska-
zują, że równoległe i rozproszone układy mnożące implementowa-
ne w strukturach FPGA są 6 razy szybsze przy zaledwie 2,5-krotnym
zwiększeniu zasobów sprzętowych.

Rekonfigurowalne układy FPGA, które zapoczątkowały nową erę

w dziedzinie projektowania układów DSP, stanowią również dosko-
nałe medium implementacyjne do realizacji algorytmów szyfrują-
cych w różnych zastosowaniach, takich jak protokoły bezpieczeń-
stwa komunikacji w sieciach, ochrona i potwierdzanie autentycz-
ności informacji i dokumentów oraz do realizacji maszyn wyszukują-
cych klucze w kryptoanalizie.

Głównym atutem układów rekonfigurowalnych jako medium kon-

strukcyjnego jest ich zdolność „adaptacyjna”, polegająca na możli-
wości dostosowania architektury logicznej do typu, kształtu i właści-
wości realizowanych funkcji. Do efektywnego wykorzystania
możliwości tych układów, zarówno pod względem optymalizacji lo-
gicznej, jak też parametrów fizycznych (szybkość, moc, powierzch-
nia) jest potrzebna gruntowna znajomość funkcji i własności imple-
mentowanych algorytmów. Środkiem do osiągnięcia tak określone-
go celu jest wiedza o sposobach odwzorowywania podstawowych
operacji i funkcji algorytmu w strukturę podstawową matrycy rekon-
figurowalnej oraz wybór logicznej reprezentacji danych, odpowied-
niej do specyfikacji algorytmu architektury.

Większość algorytmów szyfrowania można przedstawić za po-

mocą grafu przepływu danych, który jest zbudowany zaledwie z kil-
ku różnych komponentów, realizujących mniej lub bardziej złożone
operacje arytmetyczne i funkcje logiczne. Poniżej przedstawiono li-
stę najczęściej stosowanych operacji i funkcji.

M

Proste operacje arytmetyczne, takie jak dodawanie i odejmowa-

nie.

M

Operacje na krótkich słowach binarnych o nietypowych długo-

ściach.

PRZEGLĄD TELEKOMUNIKACYJNY

ROCZNIK LXXVI

nr 8–9/2003

O

O

Rys. 3. Jednowymiarowa systoliczna matryca sumatora; D – prze-

rzutnik

O

O

Rys. 4. Architektura DA. Oznaczenia: RP – rejestry przesuwające,

POT – rejestr potokowy, R – rejestr wyjściowy

background image

M

Operacje mnożenia – mnożenie ogólne (dowolne wartości ope-

randów), mnożenie modularne, mnożenie z obcięciem wyniku, mno-
żenie przez stałą, mnożenie z użyciem kodowania nadmiarowego
operandów etc.

M

Równoległe operacje logiczne.

M

Sekwencje operacji logicznych.

M

Tablice odwzorowań LUT, np. nieliniowe typu S-box.

M

Operacje rotacji i przesunięcia.
Dla każdej z wymienionych operacji można wyznaczyć efektyw-

ne odwzorowanie w strukturze matrycy rekonfigurowalnej. Zastoso-
wanie takich „wzorów” realizacyjnych do projektowania algorytmów
kryptograficznych pozwala lepiej wykorzystać walory systemów re-
konfigurowalnych.

EKSPERYMENTALNE I PRZEMYSŁOWE
APLIKACJE MULTIMEDIALNE

Wraz z wprowadzeniem rekonfigurowalnych struktur logicznych

pojawiły się nowe możliwości ich zastosowań w dziedzinie przetwa-
rzania obrazów i dźwięku. Pierwszą architekturą komputera konfigu-
rowanego ze strukturami FPGA była wirtualna maszyna, pomyślana
jako programowalna pamięć aktywna PAM (Programmable Active
Memory
); miała ona formę rekonfigurowalnego koprocesora stero-
wanego standardowym procesorem. Rola procesora sprowadzała
się do zarządzania konfiguracją macierzy układów FPGA, które peł-
niły funkcje koprocesora, i współpracy z tym koprocesorem, analo-
gicznie jak w konwencjonalnych komputerach.

Przykładami zastosowania platformy PAM do realizacji specjali-

zowanych maszyn liczących są między innymi: system DECPeRLe
zaprojektowany przez Digital Equipment Corporation’s Paris Re-
search Laboratory [38] i system SPLASH, opracowany w Super-
computer Research Center [3].

Systemy PeRLe-0 i PeRLe-1 cechuje wielka efektywność rozwią-

zywania zadziwiająco szerokiej klasy problemów obliczeniowych.
Są one zbudowane z macierzy dwuwymiarowej układów FPGA
komunikującej się z otoczeniem zewnętrznym za pomocą szyny
o dużej przepływności.

Oprócz 16 układów macierzy 4x4 FPGA system zawiera 1 MB

pamięci statycznej RAM na każdej z krawędzi macierzy FPGA. Układ
został zaprojektowany do przyspieszenia realizacji zadań wymaga-
jących dużych mocy obliczeniowych przy założeniu, że części reali-
zowanego algorytmu, które stanowią jego „wąskie gardło”, będą
przekazywane do wykonania układowi. Do specyfikacji zadań zosta-
ło zaprojektowane specjalne środowisko programowe [4], które
łączy w sobie cechy kompilatorów złożonych języków programowa-
nia oraz systemów do projektowania sprzętu. Lista problemów, któ-
re efektywnie rozwiązywano za pomocą DEC PeRLe, zawiera wiele
istotnych zadań z dziedziny przetwarzania obrazu i dźwięku, jak na
przykład: mnożenie dużych liczb całkowitych, kompresja danych,
rozwiązywanie równań Laplace’a, synteza dźwięku, rozpoznawanie
wzorca, splot w dziedzinie dwuwymiarowej, kompresja obrazu.

Innym przykładem wysoko wyspecjalizowanej maszyny liczącej

jest system SPLASH zaprojektowany w Supercomputer Research
Center [3], [8] oraz jego następca SPLASH-2. Podobnie jak system
DEC PeRLe, współpracuje on ze stacją roboczą, przyspieszając jej
działanie w tych sytuacjach, gdy nie może ona uporać się z zada-
niem wymagającym dużych mocy obliczeniowych. Architektura
SPLASH-2 została zaprojektowana jako macierz systoliczna na po-
jedynczej płytce o 16 elementach obliczeniowych, z których każdy
zawiera układ FPGA oraz lokalną pamięć. Analogicznie jak w przy-
padku PeRLe, stworzono środowisko programistyczne, dające moż-
liwość tworzenia aplikacji. Miało ono wbudowany symulator języka
VHDL [1], [2], język opisu logiki LDG [9] oraz model programowy
SIMD [10]. Za pomocą systemu SPLASH uruchomiono i przetesto-
wano wiele aplikacji. Otrzymane wyniki świadczą o jego dużej efek-
tywności. Lista przykładowych problemów rozwiązanych za pomocą
systemu SPLASH-2 zawierała m. in. następujące zadania: wyszuki-
wanie tekstu, przetwarzanie obrazów, ustalanie zmiennego przecin-
ka oraz splot w dziedzinie dwuwymiarowej.

Eksperymenty przeprowadzone z

architekturami PeRLe

i SPLASH pokazały, że pojedyncza platforma obliczeniowa zbudo-
wana z układów FPGA może zapewnić imponującą efektywność dla

bardzo szerokiej rodziny zastosowań. Tak wysoki poziom efektyw-
ności był możliwy do osiągnięcia dzięki zaprojektowaniu dla każde-
go z wymienionych problemów specjalizowanej architektury. Me-
chanizmy rekonfiguracji gwarantują, że z wykorzystaniem tego sa-
mego sprzętu można realizować niezliczoną liczbę różnych
architektur logicznych. Osiągnięcie wysokiej efektywności syste-
mów PeRLe i SPLASH było możliwe dzięki:
M

wyspecjalizowaniu bloków funkcjonalnych;

M

wykorzystaniu współbieżności;

M

optymalizacji procesów i interfejsów komunikacyjnych;

M

wyspecjalizowaniu układów wejściowo-wyjściowych.
Niewątpliwie eksperymenty te stały się bezpośrednią przyczyną

zastosowania układów programowalnych w komercyjnych (przemy-
słowych) aplikacjach telekomunikacyjnych. Typowym przykładem
mogą być satelitarne systemy telemetryczne firmy TSI TelSys [16],
w których rekonfigurowalna matryca składająca się z 12 układów
APEX20K100 spełnia rolę rekonfigurowalnego systemu DSP, auto-
matycznie dostosowującego się do protokołu transmisyjnego śle-
dzonej misji satelitarniej (EOS, SBIRS-High, DRTS, Heliosat).

Możliwość rekonfiguracji układów CPLD wykorzystała firma LG

Information & Telecommunications. W jej ofercie znajdują się urzą-
dzenia stosowane w systemach komórkowych CDMA (Code Divi-
sion Multiple Access
), W-CDMA (Wideband CDMA) oraz WLL (Wire-
less Local Loop
). We współpracy z firmą Hanaro Telecom [12] firma
LGIE wdrożyła do produkcji modemy W-CDMA, w których zastoso-
wano po cztery układy EPF10K100. Zastosowanie układów rekonfi-
gurowalnych wiąże się z możliwością szybkiego i w miarę bezpro-
blemowego dostosowania toru obróbki sygnału do modyfikacji
wprowadzanych w zaleceniach ITU, które mają na celu m. in. zwięk-
szenie przepływności kanałów transmisyjnych, przy jednoczesnym
zawężeniu zajmowanego pasma.

Układy rekonfigurowalne znalazły zastosowanie także we współ-

czesnych telewizyjnych systemach retransmisyjnych, czego przykła-
dem może być rodzina procesorów wizyjnych D1 firmy Snell & Wil-
cox [12]. Według danych producenta, zastosowanie układów rekon-
figurowalnych spowodowało obniżenie kosztu wykonania takiego
procesora o ok. 30% w stosunku do klasycznych rozwiązań opar-
tych na procesorach sygnałowych.

Amerykańska firma Metalithic Systems jest producentem profe-

sjonalnego, studyjnego sprzętu audio, w tym wielu cyfrowych
konsol mikserskich. W 1999 roku inżynierowie tej firmy opracowali

412

PRZEGLĄD TELEKOMUNIKACYJNY

ROCZNIK LXXVI

nr 8–9/2003

O

O

Rys. 5. Schemat blokowy systemu ze zdalnie rekonfigurowanym

blokiem sprzętowym; 1, 2, 3, 4 – etapy rekonfiguracji

background image

413

128-kanałową konsolę, wykonaną na układach Spartan firmy Xilinx,
w której możliwość rekonfiguracji układów wykorzystano do budowy
różnego rodzaju efektów audio, w tym cyfrowego pogłosu i kompre-
sji szumów [15].

Szczególnym przykładem w grupie opracowań komercyjnych

jest propagowana od 1998 roku przez firmę Xilinx idea budowania
sprzętu rekonfigurowanego przez Internet – IRL (Internet Reconfigu-
rable Logic
), co schematycznie pokazano na rys. 5 [17].

Pierwsze komercyjne aplikacje IRL opracowały i wdrożyły w 1999

roku firmy Bosch i Siemens, które testują możliwości stosowania
układów zdalnie rekonfigurowalnych w aplikacjach samochodo-
wych [17]. Na początku 2001 roku, w wyniku prac prowadzonych
wspólnie z LG Electronics oraz konsorcjum: Xilinx, Celoxica oraz
WindRiver, powstały – wykorzystujące układy Virtex E – zdalnie re-
konfigurowalne: odtwarzacz MP3 oraz internetowy telefon VoIP
[14]. Urządzenia te mają zostać wdrożone do masowej produkcji
przed końcem 2003 roku.

UKŁADY PROGRAMOWALNE
W KRYPTOGRAFII

Wśród pierwszych implementacji szyfrów blokowych w układach

programowalnych szczególnie interesujące były dwa opracowania.
Pierwsze powstało w Szwajcarskim Federalnym Instytucie Technicz-
nym w Lozannie pod akronimem CryptoBooster [25]. CryptoBooster
spełnia funkcje rekonfigurowalnego, modułowego koprocesora
kryptograficznego, który współpracuje z głównym komputerem jako
akcelerator operacji kryptograficznych. Próbnym modułem wykona-
nym w tej architekturze była realizacja symetrycznego szyfru bloko-
wego IDEA. Przeprowadzone testy wykazały, że pod względem
szybkości i przepustowości koprocesor nadaje się do zastosowań
w szybkich sieciach, jak ATM, SONET i GigaEthernet.

Drugi przykład to projekt wykorzystujący rekonfigurowalny proce-

sor PipeRench opracowany w Carnegie Mellon University [37]. Ory-
ginalna warstwowa architektura procesora PipeRench, zaprojektowa-
na w CMU, została zoptymalizowana pod względem implementacji
kryptograficznych. Jej głównymi cechami są: wirtualizacja, potokowa
organizacja ścieżki danych i zerowy pozorny czas rekonfiguracji. Wir-
tualizacja umożliwia implementację algorytmów nie mieszczących
się w całości w fizycznej strukturze systemu. W architekturze
PipeRench zrealizowano szereg algorytmów, jak CRYPTON, IDEA,
RC6 i Twofish.

Na podstawie analizy wielu zastosowań sprzętowych [5] realiza-

cji algorytmów kryptograficznych można określić funkcje i wymaga-
nia, jakie powinien spełniać elastyczny system kryptograficzny. Są
to:

M

możliwość zmiany algorytmu w trakcie pracy,

M

możliwość wprowadzania nowych algorytmów,

M

duża szybkość przetwarzania danych,

M

łatwa obsługa interfejsu użytkownika,

M

modyfikowalność oprogramowania sterującego (upgradable

firmware),

M

modyfikowalność sprzętu.
Traktując powyższe warunki jako założenia do konstrukcji syste-

mu kryptograficznego, współpracującego z głównym komputerem
PC na zasadzie koprocesora, można zaproponować konstrukcję,
której uproszczona architektura jest przedstawiona na rys. 6. Zasad-
niczymi blokami takiego systemu są:
M

koprocesor kryptograficzny z pamięcią buforową,

M

układ sterujący,

M

biblioteka algorytmów.
Koprocesor kryptograficzny wykonuje wszelkie operacje zwią-

zane z szyfrowaniem i deszyfrowaniem danych. Po włączeniu zasi-
lania koprocesor rezydujący w strukturach FPGA nie jest jeszcze
zaprogramowany. Na sygnał wyboru algorytmu, wydany przez
użytkownika za pośrednictwem interfejsu, układ sterujący przepi-
suje do koprocesora z biblioteki algorytmów odpowiedni zbiór
konfiguracyjny. Po skonfigurowaniu koprocesor jest gotowy do
pracy. Transmisja danych szyfrowanych i deszyfrowanych pomię-
dzy systemem a komputerem odbywa się za pośrednictwem ma-
gistrali ISA. Tą samą drogą, z komputera do systemu, są przeka-
zywane nowe zbiory modyfikujące lub rozszerzające bibliotekę al-
gorytmów.

Naszkicowana wyżej koncepcja elastycznego systemu krypto-

graficznego została wykorzystana przez autorów przy opracowaniu
prototypu wieloalgorytmowego koprocesora kryptograficznego, któ-
ry zrealizowano w ramach prac badawczych w Instytucie Telekomu-
nikacji PW. Prototyp koprocesora został wykonany w formie karty do
komputerów klasy PC. Schemat blokowy karty koprocesora,
uwzględniający szczegółowo sygnały magistrali ISA, jest przedsta-
wiony na rys. 7. Karta wymaga wstępnej inicjalizacji kilku wewnętrz-
nych rejestrów, których zawartość ustawia się przez interfejs progra-
mowy w komputerze. Ich wartości definiują szczegółowo następują-
ce funkcje i parametry karty:

M

wybór algorytmu kryptograficznego – DES, X_DES_X,

DES3_EEE, DES3_EDE;

M

tryb pracy algorytmu – ECB, CBC, OFB_64, CFB_01, CFB_08,

CFB_16, CFB_64;

M

tryb współpracy z magistralą ISA – normal lub pipeline;

M

funkcje karty – szyfrowanie/deszyfrowanie, wpisywanie kluczy

i wektora stanu początkowego.

Przed rozpoczęciem cyklu szyfrowania/deszyfrowania są testo-

wane wybrane komórki rejestru stanów w celu ustalenia prawidłowo-
ści przeprowadzonej inicjalizacji. Aby zapobiec lub przynajmniej
utrudnić ataki hackerów, wprowadzono dodatkowe mechanizmy
ochronne zapewniające bezpieczeństwo kluczy i bloków danych za-
równo jawnych, jak i zaszyfrowanych. Zastosowane mechanizmy
wykrywają pewne odstępstwa od oczekiwanych prawidłowych se-
kwencji instrukcji inicjujących proces szyfrowania/deszyfrowania
i blokują reakcje koprocesora na sygnał startu GO lub niszczą za-
wartość rejestrów kluczy i rejestru stanu początkowego.

Algorytm DES został zaprojektowany według amerykańskiej nor-

my FIPS 46, zaś tryby pracy opracowano na podstawie normy FIPS
81. Algorytmy DES-EDE i DES-EEE, mimo iż nie są aktualnie ujęte
w normach, należą obecnie do najczęściej używanych szyfrów

PRZEGLĄD TELEKOMUNIKACYJNY

ROCZNIK LXXVI

nr 8–9/2003

O

O

Rys. 6. Architektura elastycznego systemu kryptograficznego

O

O

Rys. 7. Schemat blokowy wieloalgorytmowego koprocesora kryp-

tograficznego

background image

w protokołach bezpieczeństwa stosowanych w sektorze bankowym
na całym świecie. Tryby pracy, pozwalające dopasować właściwości
szyfru do wymagań otoczenia, są zgodne z międzynarodowymi nor-
mami ISO/IEC 8372 i ISO/IEC 10116.

Główna część projektu została wyspecyfikowana w języku

AHDL dla środowiska MAX+PLUS II firmy ALTERA, z przeznacze-
niem dla rodziny układów rekonfigurowalnych FLEX 10K. W proto-
typie wykorzystano układ FLEX 10K30. Eksperymenty symulacyjne
przeprowadzone z algorytmem DES, uwzględniające zastosowanie
w koprocesorze układu FLEX 10K50, wykazały, że maksymalna
częstotliwość zegara systemowego może wynosić około 70 MHz.
Odpowiada to maksymalnej szybkości przetwarzania rzędu 190
Mbit/s. Dla algorytmu potrójny DES osiągalna szybkość wynosi
około 66 Mbit/s.

NOWY STANDARD SZYFROWANIA:
ALGORYTMY – ANALIZA I WYBÓR
OPTYMALNYCH IMPLEMENTACJI

Przedstawione powyżej przykłady implementacji algorytmów

kryptograficznych były jedną z wielu prób poszukiwania optymal-
nych realizacji nowych algorytmów szyfrujących, które w XXI wieku
mogłyby zastąpić dotychczasowy światowy standard DES.

Wydarzeniem o przełomowym znaczeniu – kamieniem milowym

w dziedzinie ochrony systemów informacyjnych i bezpieczeństwa
w sieciach teleinformatycznych – stał się konkurs zorganizowany
przez amerykański NIST (National Institute of Standards and Tech-
nology). Wyłoniona w ostatniej rundzie konkursu grupa najlepszych
algorytmów kryptograficznych została poddana niezwykle gruntow-
nym badaniom teoretycznym i szczegółowej analizie ich walorów
praktycznych, zwłaszcza implementacji sprzętowych wybranej gru-
py szyfrów pod względem oceny ich wydajności i przydatności
w przyszłych systemach kryptograficznych. Analizowane implemen-
tacje szyfrów zostały zrealizowane w kilku ośrodkach akademickich
na podstawie tych samych założeń funkcjonalnych, wspólnej meto-
dologii i wspólnych narzędzi projektowania, tej samej technologii
i tych samych architektur układów rekonfigurowalnych. Za podsta-
wę oceny implementacji zgłoszonych na forum III Konferencji Kan-
dydatów AES (Advanced Encryption Standard) posłużyły przyjęte
i uzgodnione wcześniej miary parametrów związanych z szybkością
przetwarzania i złożonością realizacji.

Głównymi kryteriami przyjętymi przez NIST do oceny i kwalifika-

cji szyfrów w konkursie na nowy standard były: bezpieczeństwo,
efektywność w realizacjach sprzętowych i programowych oraz ela-
styczność. Spośród tych czterech parametrów efektywność realiza-
cji sprzętowej okazała się szczególnie ważnym czynnikiem, umożli-
wiającym zróżnicowanie konkurujących algorytmów, przy założeniu,
że:
M

porównanie było oparte na zbiorze obiektywnych i zgodnie ak-

ceptowanych miar,
M

istniały dostrzegalne różnice pomiędzy „kandydatami”,

M

ustalono wyraźną zgodność pomiędzy wynikami uzyskanymi

przez niezależne grupy.

W celu osiągnięcia większej jednolitości i czytelności porównań

wyników otrzymanych przez różne grupy, zaproponowano zgodną
terminologię, która może być użyta do opisu różnych architektur
i parametrów wydajności szyfrów blokowych.

Wybór technologii

Algorytmy kryptograficzne mogą być realizowane zarówno w for-

mie programu, jak i sprzętu. Implementacje programowe są projek-
towane i kodowane przy użyciu języków programowania, takich jak
C, C

++

, Java czy asembler, a następnie wykonywane w uniwersal-

nych mikroprocesorach, procesorach sygnałowych lub kartach inte-
ligentnych. Implementacje sprzętowe są projektowane i specyfiko-
wane za pomocą języków opisu sprzętu, takich jak VHDL i Verilog
HDL i realizowane z wykorzystaniem jednej z dwóch technologii:
specjalizowanych układów scalonych typu ASIC lub rekonfigurowal-
nych matryc logicznych FPGA.

Do porównania i oceny wymienionych technologii pod względem

ich przydatności do zastosowań kryptograficznych można posłużyć

się zestawieniem parametrów użytkowych, własności funkcjonal-
nych i charakterystyki procesu projektowania.

Do grupy parametrów użytkowych, które mają istotny wpływ na

efektywność przetwarzania danych, należą: możliwość przetwarza-
nia równoległego i potokowego, zmienna długość słowa i szybkość
działania. Do najważniejszych właściwości funkcjonalnych, decydu-
jących o elastyczności i bezpieczeństwie implementacji kryptogra-
ficznej, zalicza się: możliwość wymiany algorytmu w trakcie pracy
(algorithm agility), zabezpieczenie przed penetracją (tamper resi-
stance
) i kontrolę dostępu do kluczy. Charakterystykę procesu pro-
jektowania określają między innymi: języki specyfikacji, długość
cyklu projektowania, koszty narzędzi do projektowania, koszty testo-
wania, utrzymania i modyfikacji. Z porównania parametrów użytko-
wych wynika, że układy ASIC i FPGA mają wyraźną przewagę nad
implementacją programową pod względem efektywności przetwa-
rzania. Istotna różnica pomiędzy technologią ASIC i FPGA dotyczy
szybkości działania układów FPGA, które są wolniejsze, co wynika
z opóźnień wprowadzanych przez elementy programowalnych połą-
czeń i proces rekonfiguracji. Pod względem funkcjonalnym następu-
je większe zróżnicowanie: największe bezpieczeństwo zapewnia
ASIC, natomiast wadą jest całkowity brak możliwości modyfikacji.
W przypadku układów ASIC i FPGA proces projektowania jest po-
dobny w sposobie specyfikacji (język opisu sprzętu), weryfikacji (sy-
mulator) i testowania (płyta prototypowa). Zasadnicza różnica po-
między nimi polega na tym, że układy FPGA nie wymagają projektu
warstwy fizycznej (layout), wytwarzania i testowania defektów fizycz-
nych. Konsekwencją tego są: znacznie krótszy cykl projektowania
i dużo tańsze narzędzia do projektowania i testowania. Z porównań
wynika, że implementacje oparte na FPGA mają przewagę nad tech-
nologią ASIC pod względem kosztów i długości cyklu opracowania
prototypu, możliwości wielokrotnego i szybkiego rekonfigurowania
i możliwości eksperymentalnego testowania dużej liczby różnych ar-
chitektur. Ponadto implementacje na układach FPGA zapewniają
znacznie wyższy stopień zgodności i wiarygodności porównań. Są
bowiem weryfikowane na podstawie dokładnych symulacji funkcjo-
nalno-czasowych gotowych struktur i eksperymentalnego testowa-
nia prototypu.

Założenia, porównywane parametry
i zasady projektowania

Ogólny model sprzętowej implementacji symetrycznych szyfrów

blokowych jest pokazany w formie schematu blokowego na rys. 8.
Według tego schematu zostały zrealizowane wszystkie szyfry
z ostatniej rundy konkursu AES. Schemat ten składa się z następu-
jących części:

M

modułu szyfrowania/deszyfrowania, w którym są kodowane i de-

kodowane bloki danych wejściowych,

M

bloku generacji kluczy pochodnych, w którym wyznacza się zbiór

kluczy wewnętrznych na podstawie jednego klucza zewnętrznego,

M

pamięci kluczy wewnętrznych, w której są przechowywane klu-

cze utworzone w bloku generacji kluczy lub dostarczone przez inter-
fejs wejściowy z zewnątrz,

414

PRZEGLĄD TELEKOMUNIKACYJNY

ROCZNIK LXXVI

nr 8–9/2003

O

O

Rys. 8. Schemat blokowy realizacji sprzętowej szyfrów blokowych

background image

415

M

interfejsu wejściowego, służącego do wprowadzania danych wej-

ściowych i kluczy oraz do buforowania danych wejściowych oczeku-
jących na kodowanie/dekodowanie,

M

interfejsu wyjściowego, używanego do buforowania danych prze-

tworzonych i przesyłania ich do zewnętrznej pamięci,

M

jednostki sterującej, w której są wytwarzane sygnały sterujące

pracą pozostałych bloków.

W celu ujednolicenia procedury projektowania implementacji

szyfrów, przyjęto wstępnie następujące założenia:

M

długość klucza 128 bitów, co upraszcza porównywanie i analizę

M

generowanie kluczy pochodnych na zewnątrz,

M

długość bloku danych 128 bitów,

M

dzielenie zasobów funkcjonalnych pomiędzy część szyfrującą

i deszyfrującą.

Poniżej przedstawiono definicje parametrów używanych do po-

równywania szyfrów z punktu widzenia efektywności ich implemen-
tacji sprzętowych.

Szybkość szyfrowania (deszyfrowania) jest określana jako licz-

ba bitów zaszyfrowanych (zdeszyfrowanych) w jednostce czasu.
Jednostką szybkości jest Mbit/s.

Czas opóźnienia szyfrowania (deszyfrowania) (latency) jest

zdefiniowany jako czas niezbędny do zaszyfrowania (zdeszyfrowa-
nia) jednego bloku danych jawnych lub zaszyfrowanych. Jeżeli
w aplikacji podczas jednej sesji są szyfrowane/deszyfrowane duże
porcje danych, to szybkość wyznacza całkowity czas wykonywania
tych operacji i jest najlepszą miarą szybkości szyfru.

Drugi ważny parametr to powierzchnia zajmowana przez układ,

gdyż jest głównym czynnikiem określającym jego koszt. Przyjmuje
się, że z grubsza koszt układu scalonego jest wprost proporcjonal-
ny do jego powierzchni. Dla ścisłości należy jednak uwzględnić
koszt obudowy, na który ma wpływ liczba wyprowadzeń. W pew-
nych aplikacjach mogą wystąpić ograniczenia maksymalnej dostęp-
nej powierzchni do realizacji modułu kryptograficznego, wynikające
z kosztów dostępnej technologii wytwarzania, zużywanej mocy lub
kombinacji tych czynników, np. w inteligentnych kartach z mikrokon-
trolerem.

W układach ASIC powierzchnia wymagana do implementacji jest

zwykle wyrażana w

µ

m

2

, choć są też używane dwie miary względne:

liczba tranzystorów i liczba bramek logicznych. Wartości tych trzech
miar są ze sobą ściśle skorelowane, ale relacje te trudno określić.
W implementacjach FPGA jedyną uznaną miarą wielkości układu
jest liczba komórek logicznych.

Struktura tworzenia projektu w środowisku CAD do implementa-

cji algorytmów w układach FPGA jest pokazana na rys. 9. Wszystkie
szyfry AES zostały w pierwszym kroku opisane w języku VHDL, a na-

Tryby pracy

Symetryczne szyfry blokowe są używane w kilku trybach opera-

cyjnych, które z punktu widzenia implementacji sprzętowej można
podzielić na dwie kategorie:

M

tryby bez sprzężenia zwrotnego, takie jak tryb elektronicznej

książki kodowej (ECB) i tryb licznikowy,

M

tryby ze sprzężeniem zwrotnym, jak tryb wiązania bloków zaszy-

frowanych (CBC), tryb sprzężenia zwrotnego szyfrogramu (CFB)
i tryb sprzężenia zwrotnego wyjściowego (OFB).

W trybach bez sprzężenia zwrotnego szyfrowanie każdego kolej-

nego bloku danych może być wykonane niezależnie od przetwarza-
nia innych bloków. W trybach ze sprzężeniem zwrotnym nie jest
możliwe rozpoczęcie szyfrowania następnego bloku danych przed
zakończeniem kodowania bloku bieżącego i wszystkie bloki muszą
być szyfrowane sekwencyjnie. To ograniczenie nie dotyczy operacji
deszyfrowania, która może być wykonywana równolegle na kilku
blokach szyfrogramu we wszystkich trybach. Zgodnie z obecnymi
standardami bezpieczeństwa, szyfrowanie jest wykonywane przede
wszystkim z użyciem trybów sprzężenia zwrotnego, jak CBC i CFB,
zaś tryby bez sprzężenia zwrotnego są głównie stosowane do szy-
frowania kluczy podczas ich dystrybucji. Te wymagania bezpieczeń-
stwa uniemożliwiają wykorzystanie w pełni efektywności implemen-
tacji sprzętowych opartych na równoległym przetwarzaniu wielu blo-
ków danych.

Podstawowe architektury

Wybierając architekturę dla implementacji szyfrów w strukturach

FPGA, wystarczy ograniczyć się do dwóch typów: bazowej architek-
tury iteracyjnej i architektury z rozwiniętą (częściowo lub w pełni) pę-
tlą. Podstawową architekturę sprzętową stosowaną do implementa-
cji jednostki szyfrującej/deszyfrującej typowego szyfru blokowego
z tajnym kluczem pokazano na rys. 10a. Jedną rundę szyfru zreali-
zowano jako układ kombinacyjny, uzupełniony rejestrem i multiplek-
serem. W pierwszym cyklu zegara wejściowy blok danych jest poda-
wany przez multiplekser i zapisywany w rejestrze. W każdym kolej-
nym cyklu zegara jest realizowana operacja jednej rundy
szyfrowania, a jej rezultat podawany zwrotnie do układu przez mul-
tiplekser i zapisywany następnie w rejestrze. Architektura bazowa
ma dwie cechy charakterystyczne:
M

w tym samym czasie jest kodowany tylko jeden blok danych,

M

liczba cykli zegara, koniecznych do zaszyfrowania jednego bloku

danych, jest równa liczbie rund szyfru.

Architektura z częściowo rozwiniętą pętlą jest przedstawiona na

rys. 10b. Jedyna różnica w porównaniu z bazową architekturą itera-
cyjną polega na tym, że część kombinacyjna układu realizuje K rund
szyfrowania zamiast jednej. Liczba K musi być podzielnikiem całko-
witej liczby rund. Liczba cykli zegara koniecznych do zaszyfrowania
jednego bloku danych jest K-krotnie mniejsza od liczby rund. Mini-
malny okres zegara wzrasta ze współczynnikiem nieco mniejszym
niż K.

PRZEGLĄD TELEKOMUNIKACYJNY

ROCZNIK LXXVI

nr 8–9/2003

O

O

Rys. 9. Środowisko projektowe CAD

stępnie zweryfikowane przy użyciu symulatora Active-HDL z firmy
ALDEC. Do korekcji błędów i weryfikacji kodów źródłowych wyko-
rzystano wektory testowe i pośrednie wyniki przetwarzania z opubli-
kowanych wcześniej implementacji programowych. Przedstawione
raporty zawierają powierzchnię, szybkość i inne dane o implementa-
cji oraz zbiory danych do symulacji czasowej i do skonfigurowania
układu.

O

O

Rys. 10. Podstawowe architektury szyfrów w trybach ze sprzęże-

niem zwrotnym: a) bazowa architektura iteracyjna, b) z częściowo
rozwiniętą pętlą, c) z pętlą w pełni rozwiniętą

background image

Architektura z rozwiniętą w pełni pętlą jest pokazana na rys. 10c.

Schemat ten nie zawiera wejściowego multipleksera ani linii sprzę-
żenia zwrotnego. Dzięki temu jest możliwy niewielki wzrost szybko-
ści i zmniejszenie powierzchni układu w porównaniu z architekturą
o częściowo rozwiniętej pętli zawierającej taką samą liczbę rund.

Z przeglądu architektur wynika, że do implementacji szyfrów AES

w układach FPGA optymalny wybór stanowi bazowa architektura ite-
racyjna. Zapewnia ona maksymalny współczynnik szybkość/po-
wierzchnia dla trybów operacyjnych ze sprzężeniem zwrotnym
(CBC, CFB), używanych powszechnie do szyfrowania masowych
danych i gwarantuje szybkości i powierzchnie bliskie optymalnym.
Wydaje się bardzo prawdopodobne, że architektura ta będzie po-
wszechnie stosowana w większości aplikacji. Jest także względnie
łatwa do implementacji w podobny sposób dla wszystkich szyfrów
AES, dzięki czemu umożliwi bardziej miarodajne porównanie.

PRODUKTY WIRTUALNE
– NOWA OFERTA
NA RYNKU TELEKOMUNIKACJI

Wraz z wprowadzeniem struktur reprogramowalnych pojawiły się

jeszcze inne możliwości aplikacyjne. Wynikają one nie tylko z popra-
wy parametrów funkcjonalnych i czasowych oraz zmian w architek-
turze logicznej, ale również z samej istoty reprogramowalności. Je-
den z kierunków takich aplikacji określa koncepcja produktu wirtual-
nego – systemu, funkcji lub układu scalonego, które nie istnieją
w rzeczywistości materialnej, ale potencjalnie mogą być w każdej
chwili zrealizowane. Takie układy wirtualne to zarówno gotowe pro-
dukty o zmiennych funkcjach i właściwościach, jak również elastycz-
ne „klocki”, z których można konstruować większe systemy.

Powstał ogromny rynek wirtualnych produktów specjalizowa-

nych, tzw. rynek własności intelektualnej IP (Intellectual Property Bu-
siness
) zawartej w układach zaprojektowanych w postaci kodów
źródłowych języków HDL. Działalnością taką zajmują się m.in. firmy:
ALTERA, XILINX INC., TILAB, CAST INC., inSILICON CORPORA-
TION, DIGITAL COMMUNICATION TECHNOLOGIES, IP SEMICON-
DUCTORS, a w Polsce DIGITAL CORE DESIGN. Typową ofertą tych
firm są właśnie układy DSP, a w szczególności: kodery FFT i DCT,
układy kryptograficzne, komutatory i rutery ATM, dekodery Viterbie-
go dla sieci LAN, skramblery i deskramblery itp.

Rynek produktów wirtualnych to jednocześnie ogromne wyzwa-

nie dla zaawansowanych metod optymalizacji logicznej. Wynika to
z faktu, że konkurencję na tym rynku będą wygrywać tylko najlepsze
produkty. Do ich realizacji zostaną wykorzystane zaawansowane
metody syntezy, niejednokrotnie występujące wyłącznie w specjali-
stycznym oprogramowaniu uniwersyteckim. Duża złożoność struk-
tur FPGA, a także ich nietypowe konstrukcje (komórki), spowodowa-
ły wzrost roli i znaczenia zaawansowanych procedur syntezy logicz-
nej.

Wpływ zaawansowanych procedur syntezy logicznej na jakość

implementacji sprzętowych układów przetwarzania informacji i sy-
gnałów jest szczególnie znaczący w algorytmach wykorzystujących
struktury tablicowe typu LUT. Struktury takie są powszechnie stoso-
wane w filtrach cyfrowych, układach transformacji falkowej [31],
w szczególności do realizacji wykorzystujących arytmetykę rozpro-
szoną [26], a także w algorytmach kryptograficznych, korzystają-
cych z tzw. bloków permutacyjno-podstawieniowych.

W Zakładzie Podstaw Telekomunikacji IT-PW opracowano

specjalistyczne oprogramowanie do optymalizacji implementacji
sprzętowych struktur typu LUT. Oprogramowanie to – nazwane
DEMAIN [21], [22], [27] – jest dostępne nieodpłatnie na
stronie internetowej Zakładu Podstaw Telekomunikacji IT-PW:
http://www.zpt.tele.pw.edu.pl. W systemie DEMAIN, jako główną
procedurę syntezy logicznej zorientowanej na struktury FPGA,
wykorzystuje się tzw. algorytm dekompozycji zrównoważonej. Sku-
teczność tego oprogramowania można ocenić na podstawie eks-
perymentów przeprowadzonych z realizacjami układów cyfrowych
wyposażonych w struktury specyfikowane tablicami LUT.

Eksperymenty te polegały na implementacji typowych układów

cyfrowych – głównie z dziedziny teleinformatyki – za pomocą róż-
nych systemów projektowania, a następnie na porównaniu ich reali-
zacji pod względem liczby użytych komórek odpowiedniej struktury
FPGA. Wymowa przeprowadzonych eksperymentów jest znacząca,

bowiem do projektowania użyto systemów renomowanych firm
światowych, takich jak Altera, Synopsys, Exemplar i Xilinx.

W szczególności zrealizowano i porównano następujące układy:

M

bin2bcd1 – konwerter kodu binarnego na BCD dla liczb z zakre-

su od 0 do 99,

M

bin2bcd2 – konwerter kodu binarnego na BCD dla liczb z zakre-

su od 0 do 355,

M

DESboxes – zespół skrzynek podstawieniowych szyfru DES,

M

rd88 – sbox z algorytmu kryptograficznego Rijndael,

M

DESaut – kombinacyjną część układu sekwencyjnego z imple-

mentacji algorytmu kryptograficznego DES,

M

5B6B – kombinacyjną część układu kodera 5B-6B.
W tabeli 1 przedstawiono wyniki porównania metody wykorzystu-

jącej dekompozycję zrównoważoną, zaimplementowaną w systemie
DEMAIN, z metodami zaimplementowanymi w systemach: SIS,
FPGA Express, Leonardo Spectrum i MAX+PlusII. Przykładowe
układy zostały zaimplementowane w strukturach FPGA z rodziny

416

PRZEGLĄD TELEKOMUNIKACYJNY

ROCZNIK LXXVI

nr 8–9/2003

O

O

Tabela 1. Wyniki implementacji rzeczywistych układów przy użyciu

różnych narzędzi syntezy logicznej

Przykład

Architektura FPGA

EPF10K10LC84-3

DEMAIN

MAX

+Plus II

FPGA

Express

Leonardo
Spectrum

SIS

liczba komórek logicznych

bin2bcd1

13

131

30

30

bin2bcd2

39

505

225

120

136

DESboxes

184

585

486

192

rd88

167

332

341

245

248

DESaut

28

46

25

30

32

5B6B

41

92

100

49

51

FLEX. W tabeli podano liczbę komórek logicznych wymaganych do
implementacji poszczególnych układów. Z podanych rezultatów wy-
nika, że realizacja za pomocą metody wykorzystującej dekompozy-
cję zrównoważoną jest najoszczędniejsza pod względem liczby za-
jętych komórek i wygrywa nawet z realizacją osiągniętą za pomocą
uniwersyteckiego systemu SIS [35], opracowanego na Uniwersyte-
cie Kalifornijskim w Berkeley.

W szczególności warto zwrócić uwagę na implementację kon-

wertera kodu binarnego na kod BCD (wersja 1) oraz na implemen-
tacje skrzynek podstawieniowych (s-box) szyfrów DES i Rijndael.
Jak widać, wspomaganie procesu projektowania zaawansowanymi
procedurami syntezy logicznej prowadzi do rezultatów niemożli-
wych do uzyskania nawet za pomocą najlepszych systemów komer-
cyjnych. Trzeba również podkreślić, że na jakość powyższych imple-
mentacji w systemach komercyjnych nie mają wpływu nawet najlep-
sze kompilatory języków HDL. Konwerter BIN2BCD1 jest typowym
przykładem takiej sytuacji. Otóż konwerter ten można zaprojekto-
wać bądź to w strukturze zbudowanej z bloków funkcjonalnych we-
dług tzw. algorytmu +3

1)

, bądź też jako układ kombinacyjny realizu-

jący bezpośrednio tablicę LUT konwertera. W obu przypadkach
strukturę konwertera można zapisać w językach opisu sprzętu, np.
AHDL lub VHDL. Opisując realizację według algorytmu +3 w języku
VHDL i dokonując odpowiedniej kompilacji w systemie MAX+PLUS
II amerykańskiej firmy Altera, uzyskuje się realizację układu
BIN2BCD1 na 62 komórkach struktury FLEX 10K [23]. Ten sam
układ opisany tablicą prawdy (w specyfikacji VHDL instrukcjami
CASE) i skompilowany w tym samym systemie Altery zajmuje 131
komórek FLEX. Ale wprowadzając tablicę prawdy układu
BIN2BCD1 do systemu DEMAIN i dokonując odpowiedniej de-
kompozycji, uzyskuje się realizację tego samego konwertera na
zaledwie 13 komórkach struktury FLEX – czyli 10 razy lepiej.

Nie mniej intrygujące są wyniki implementacji skrzynek S-box

algorytmów kryptograficznych DES i Rijndael.

Istotne jest, że wykorzystanie tak zrealizowanych bloków permu-

tacyjnych do budowy modułu rundy DES, a następnie modułu ścież-

–––––––-–

1)

Dokładny opis takiej realizacji można znaleźć w książce [21]

background image

417

ki przepływu danych nie wymaga żadnych dalszych zmian w innych
plikach składowych projektu. Implementacje ścieżki przepływu da-
nych w strukturze rodziny FLEX10K program DEMAIN redukuje do
296 komórek logicznych. W porównaniu do 709 komórek niezbęd-
nych do realizacji tego bloku bez zastosowania programu DEMAIN
stanowi to ponad dwukrotną redukcję wymaganych zasobów. Opty-
malizacja z użyciem systemu DEMAIN poprawia także maksymalna
częstotliwość taktowania modułu DES. Wzrosła ona o ponad 51,5
MHz. Ponieważ do zaszyfrowania jednego bloku danych tekstu jaw-
nego potrzeba 16 cykli, szacunkowa szybkość szyfrowania P tego
modułu wynosi:

P = 51,5 MHz/16

×

64 bity = 206 Mbit/s.

Oznacza to prawie dwukrotny wzrost szybkości szyfrowania blo-

ku ścieżki przepływu danych.

Podobnie jak w przypadku bloku rundy zrealizowanego bez wy-

korzystania dekompozycji, rzeczywista szybkość układu realizujące-
go cały algorytm DES będzie zależała od sposobu realizacji pozo-
stałych modułów tego algorytmu, a więc modułu sterowania i modu-
łu generacji podkluczy.

Tak zoptymalizowany blok rundy umożliwia realizację całej ścież-

ki rozpływu danych w sposób potokowy. Specyfikację takiej realiza-
cji w języku AHDL podano w tabeli 2. Wykorzystano tu zmodyfiko-
wany blok rundy (desroundp). Modyfikacja polega na dodaniu na
wyjściu modułu odpowiedniego rejestru. Umieszczenie 16 bloków
tak zmodyfikowanych bloków rundy w łańcuchu zapewnia znacznie
efektywniejszą pracę układu, gdyż dane mogą być szyfrowane po-
tokowo. Układ wymaga 4346 komórek logicznych i może pracować
z szybkością P = 86,9 MHz

×

64 bity

5 Gbit/s.

O dużej skuteczności systemu DEMAIN świadczy również reali-

zacja szyfru HIEROCRYPT, wykonana w ramach pracy magisterskiej
na Wydziale Cybernetyki WAT [34]. Efektem jego zastosowania by-
ła redukcja zasobów sprzętowych z ok. 22 tys. komórek logicznych
do 10 tys., a także 5-krotne przyśpieszenie działania układu. Praca
ta zdobyła I nagrodę w konkursie na najlepszą pracę magisterską,
zorganizowanym w ramach konferencji ENIGMA.

Przeprowadzone eksperymenty w pełni potwierdzają tezę, że ko-

mercyjne systemy projektowania układów cyfrowych niejednokrot-
nie realizują projekty dalekie od rozwiązań optymalnych pod wzglę-
dem zajętości zasobów sprzętowych. Sytuacja ta jest szczególnie
niepokojąca dla najnowszych układów reprogramowalnych typu

FPGA i FLEX. Przyczyna tego zjawiska tkwi w niedostosowaniu pro-
cedur syntezy logicznej, które w systemach komercyjnych są z re-
guły realizowane według klasycznych metod minimalizacji funkcji
boolowskich i nie uwzględniają metod dekompozycji funkcjonalnej
[22]. Zatem stosowanie zaawansowanych systemów uniwersytec-
kich niejednokrotnie może się przyczynić do sukcesu rynkowego,
w szczególności specyficznej techniki układów FPLD.

✽ ✽ ✽

Omówione w artykule zastosowania układów reprogramowal-

nych w cyfrowym przetwarzaniu sygnałów i kryptografii, dzięki moż-
liwości zmiany konfiguracji w trakcie pracy i elastycznemu wykorzy-
stywaniu zasobów sprzętowych, zapewniają ich wykorzystanie do
realizacji złożonych algorytmów obliczeniowych. W połączeniu
z możliwościami wspierania procesów optymalizacji komercyjnych
systemów zaawansowanymi systemami syntezy i optymalizacji lo-
gicznej stwarza to szansę dla rozwoju rodzimych opracowań urzą-
dzeń telekomunikacyjnych. Jest ona szczególnie widoczna w syste-
mach multimedialnych i kryptograficznych, dla których istotniejsze
są parametry techniczne, wynikające z istoty reprogramowania, niż
jednostkowy koszt produkcji.

LITERATURA

[1] Arnold J. M.: The Splash 2 software environment. In D. A. Buell and

K. L. Pocek, editors, Proceedings of IEEE Workshop on FPGAs for
Custom Computing Machines, Napa, CA, April, 1993

[2] Arnold M., Buell D. A. and Davis E. G.: VHDL programming on

Splash 2. In More FPGAs: Proceedings of the 1993 International
Workshop on Field-Programmable Logic and Applications, Oxford,
England, September 1993

[3] Arnold, D. A. Buell, and E. G: Davis. Splash 2. In Proceedings of the

4th Annual ACM Symposium on Parallel Algorithms and Architectu-
res, June 1992

[4] Bertin P. and Touati H.: PAM programming environments: Practice

and experience. In D. A. Buell and K. L. Pocek, editors, Proceedings
of IEEE Workshop on FPGAs for Custom Computing Machines, Na-
pa, CA, April 1994

[5] Connor T., Deng S., Marchant S.: Cryptographic Coprocesor with

Algorithm Agility, Worcester Polytechnic Institute, Worcester, March
1999

[6] Elbirt A. J., Yip W., Chetwynd B., Paar C.: An FPGA implementation

and performance evaluation of the AES block cipher candidate algo-
rithm finalists
, Proc. 3

rd

Advanced Encryption Standard (AES) Can-

didate Conference, New York, April 13-14, 2000

[7] Gaj K., Chodowiec P.: Comparison of the hardware performance of

the AES candidates using reconfigurable hardware, Proc. 3

rd

Advan-

ced Encryption Standard (AES) Candidate Conference, New York,
April 13-14, 2000

[8] Gokhale M., Holmes W., Kopser A., Lucas S., Minnich R., Swelly D.,

and Lopresti D.: Building and using a highly parallel programmable
logic array
. IEEE Computer, 24 (1), January 1991

[9] Gokhale M., Kopser A., Lucas S. and Minnich R.: The logic descrip-

tion generator. Technical Report SRC-TR-90-011, Suprtcomputer
Research Center (SRC), 1990

[10] Gokhale M. and Schott B.: Data Parallel C on a reconfigurable logic

array. Journal of Supercomputing, 9 (3), 1994

[11] Guccione S. A., Delon L., Downs D.: A reconfigurable content ad-

dressable memory, Parallel and Distributed Processing. Springer-
Verlag, Berlin, May 2000

[12] http://www.altera.com
[13] http://www.atmel.com
[14] http://www.windriver.com
[15] http://pw1.netcom.com
[16] http://www.tsi-telsys.com
[17] http://www.xilinx.com
[18] IEEE Computer Society, Proceedings of IEEE Workshop on FPGAs

for Custom Computing Machines, 1993-1996

[19] Jachna Z.: Analiza metod specyfikacji układów cyfrowych z punktu

widzenia optymalizacji logicznej i odwzorowania technologicznego.
Rozprawa doktorska, WAT, Warszawa 2002

[20] Jasiński K., Zbysiński P.: Rekonfigurowalny koprocesor systemowy:

uniwersalna platforma obliczeniowa, Przegląd Telekomunikacyjny
i Wiadomości Telekomunikacyjne, nr 10, 2000

[21] Łuba T., Zbierzchowski B.: Komputerowe projektowanie układów cy-

frowych. Wydawnictwa Komunikacji i Łączności, Warszawa 2000

[22] Łuba T.: Synteza układów logicznych, Wyższa Szkoła Informatyki

Stosowanej i Zarządzania, wyd. 2, poprawione i rozszerzone, War-
szawa 2001

PRZEGLĄD TELEKOMUNIKACYJNY

ROCZNIK LXXVI

nr 8–9/2003

OPTIONS BIT0 = MSB;
INCLUDE "iniperm";
INCLUDE "desroundp";
INCLUDE "invperm";
SUBDESIGN datapathp(

clk :

INPUT;

plaintext[1..64]

: INPUT;

subkey[1..16][1..48]

: INPUT;

encrypteddata[1..64]

: OUTPUT;

)

VARIABLE

ip

: iniperm;

round[1..16]

: desroundp;

invp

: invperm;

BEGIN

round[].clk = clk;
ip.IN[] = plaintext[];
round[1].R[] = ip.OUT[33..64];
round[1].L[] = ip.OUT[1..32];
round[1].K[] = subkey[1][];
FOR i IN 1 TO 15 GENERATE

round[i+1].R[] = round[i].NEXTR[];
round[i+1].L[] = round[i].NEXTL[];
round[i+1].K[] = subkey[i+1][];

END GENERATE;
invp.IN[] = (round[16].NEXTR[],round[16].NEXTL[]);
encrypteddata[] = invp.OUT[];

END;

O

O

Tabela 2. Specyfikacja rozpływu danych w języku AHDL

background image

[23] Łuba T., Zbierzchowski B., Zbysiński P.: Układy reprogramowalne dla

potrzeb telekomunikacji cyfrowej. Przegląd Telekomunikacyjny
i Wiadomości Telekomunikacyjne, nr 5, 2002

[24] Łuba T. (red.), Rawski M., Tomaszewicz P., Zbierzchowski B.: Synte-

za układów cyfrowych. WKŁ Warszawa (przewidywany termin wyda-
nia – listopad 2003)

[25] Mosanya E. et al.: CryptoBooster: A Reconfigurable and Modular

Cryptographic Coprocesor, Proceedings of the Workshop on Cryp-
tographic Hardware and Embedded Systems, Worcester August
1999

[26] Meyer-Baese U.: Digital Signal Processing with Field Programmable

Gate Arrays, Springer Verlag, Berlin 2001

[27] National Security Agency, Initial plans for estimating the hardware

performance of AES submissions http://csrc.nist.gov/encryption/
aes/round2/round2.htm

[28] Nowicka M., Rawski M., Łuba T.: DEMAIN – an Interactive Tool for

FPGA-Based Logic Decomposition, Proceedings of the 6

th

Interna-

tional Conference Mixed Design of Integrated Circuits and Systems,
Kraków 1999

[29] IFAC Workshop on Programmable Devices and Systems (E. Hrynkie-

wicz – chairman), PDS2001, materiały konferencyjne, Gliwice 2001

[30] Pasierbiński J., Zbysiński P.: Układy programowalne w praktyce,

WKŁ, Warszawa 2001

[31] Rakowski W.: O implementacjach sprzętowych transformacji falko-

wej. Przegląd Telekomunikacyjny i Wiadomości Telekomunikacyjne,
nr 2–3, 2003

[32] Rawski M., Jóźwiak L., Łuba T.: Functional decomposition with an ef-

ficient input support selection for sub-functions based on information
relationship measures.
Journal of Systems Architecture, 47, Elsevier
Science B. V., 2001

[33] Reprogramowalne układy cyfrowe (J. Sołdek – przewodniczący Ko-

mitetu Programowego), materiały IV Konferencji Naukowej, Szcze-
cin 2001

[34] Rogowski M.: Implementacja algorytmu HIEROCRYPT w strukturach

programowalnych. Praca magisterska, WAT, 2003

[35] Sentovich E., et al.: SIS: A system for Sequential Circuits Synt-

hesis. Electronics Research Laboratory Memorandum, No.
VCB/ERLM92/41, University of California, Berkeley, 1992

[36] Tessier R., Burlesson W.: Reconfigurable Computing for Digital

Signal Processing: A Survej. Journal of VLSI Signal Processing, 28,
2001

[37] Taylor R., Goldstein S.: A High-Perfomance Flexible Architecture for

Cryptography, Proceedings of the Workshop on Cryptographic Har-
dware and Embedded Systems, Worcester August 1999

[38] Vuillemin Bertin P., Roncin D., Shand M., Touati H., and Boucard P.:

Programmable active memories: Reconfigurable systems come of
age
. IEEE Transactions on VLSI Systems, 4 (1), 1996

[39] Wiatr K.: Sprzętowe implementacje algorytmów przetwarzania obra-

zów w systemach wizyjnych czasu rzeczywistego. AGH, Kraków
2002

[40] Zbysiński P.: Rekonfigurowalne układy FPSLIC firmy Atmel, Elektroni-

zacja nr 7–8’2000

418

PRZEGLĄD TELEKOMUNIKACYJNY

ROCZNIK LXXVI

nr 8–9/2003


Wyszukiwarka

Podobne podstrony:
Abolicja podatkowa id 50334 Nieznany (2)
4 LIDER MENEDZER id 37733 Nieznany (2)
katechezy MB id 233498 Nieznany
metro sciaga id 296943 Nieznany
perf id 354744 Nieznany
interbase id 92028 Nieznany
Mbaku id 289860 Nieznany
Probiotyki antybiotyki id 66316 Nieznany
miedziowanie cz 2 id 113259 Nieznany
LTC1729 id 273494 Nieznany
D11B7AOver0400 id 130434 Nieznany
analiza ryzyka bio id 61320 Nieznany
pedagogika ogolna id 353595 Nieznany
Misc3 id 302777 Nieznany
cw med 5 id 122239 Nieznany
D20031152Lj id 130579 Nieznany
mechanika 3 id 290735 Nieznany

więcej podobnych podstron