Programowalne układy przetwarzania sygnałów i informacji technika cyfrowa w multimediach i kryptografii

Wielkość: px
Rozpocząć pokaz od strony:

Download "Programowalne układy przetwarzania sygnałów i informacji technika cyfrowa w multimediach i kryptografii"

Transkrypt

1 Tadeusz ŁUBA*, Krzysztof JASIŃSKI*, Bogdan ZBIERZCHOWSKI* Programowalne układy przetwarzania sygnałów i informacji technika cyfrowa w multimediach i kryptografii W dzisiejszych czasach trudno sobie wyobrazić dziedzinę szeroko rozumianej telekomunikacji, w której cyfrowe przetwarzanie sygnałów DSP (Digital Signal Processing) nie miałoby zasadniczego znaczenia. Odnosi się to do wszystkich warstw systemu telekomunikacyjnego: od urządzeń przetwarzających obrazy, dźwięki, dane alfanumeryczne na sygnały (i odwrotnie), przez sieci telekomunikacyjne przenoszące i komutujące te sygnały, aż po systemy urządzeń, zapewniających dostarczanie różnorakich treści, zwanych powszechnie usługami. Można tu wymienić takie przykłady, jak: modemy telefoniczne, systemy cyfrowego szerokopasmowego dostępu abonenckiego DSL (Digital Subscriber Line), dostępu radiowego, rozpoznawanie mowy i mówców, telewizja cyfrowa wysokiej rozdzielczości, telefonia komórkowa i satelitarna czy związana z większością wymienionych systemów kryptografia. Trzeba podkreślić, że tak szerokie zastosowanie techniki cyfrowej w telekomunikacji znalazło zastosowanie dopiero w momencie opanowania technologii wytwarzania na wielką skalę scalonych układów specjalizowanych ASIC (Application Specific Integrated Circuits). Coraz większą popularnością w tym zakresie cieszą się procesory sygnałowe mikrokomputery skonstruowane specjalnie do cyfrowego przetwarzania sygnałów. Obecnie z procesorami sygnałowymi w wielu zastosowaniach mogą konkurować układy programowalne i reprogramowalne. 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, wzajemnie zsynchronizowanych, środków przekazu, takich jak: mowa, muzyka, ruchomy obraz, tekst, grafika itp. Powszechnie jest on utożsamiany z takimi usługami, jak: wideotelefonia, wideokonferencja, wideo na żądanie (lub prawie na żądanie), telepraca, teleedukacja, telezakupy itd. W takim systemie wyróżnia się trzy podstawowe elementy funkcjonalne: serwer usług multimedialnych, terminale multimedialne oraz sieć dostępu do usług. Zadaniem sieci jest przeniesienie sygnałów dotyczących usług oferowanych przez serwery do terminali, a także wymiana danych między serwerami. Płaszczyzna transportowa takiej sieci jest na ogół bardzo dobrze rozwinięta i przystosowana do przenoszenia sygnałów cyfrowych z dużą szybkością. Najczęściej są w niej stosowane kable światłowodowe i szybkie techniki transmisyjne: SDH, ATM, Frame-Relay itp. Najbardziej krytycznym elementem tego systemu jest abonencka sieć dostępowa, przenosząca sygnały multimedialne od węzłów sieci transportowej do terminalu i na odwrót. Ze względu na istniejącą infrastrukturę kablową tej sieci (najczęściej symetryczna para przewodów miedzianych, tzw. skrętka), stało się konieczne opracowanie systemów umożliwiających transmisję cyfrową do (i od) abonenta z dużą szybkością. * Instytut Telekomunikacji Politechniki Warszawskiej luba@tele.pw.edu.pl, kjasio@tele.pw.edu.pl, bogdan@tele.pw.edu.pl W tej części sieci powszechnie przyjmowana szerokość pasma podstawowego 300 Hz 3400 Hz nie wynika z własności linii transmisyjnej, 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 cyfrowej jest długość kabla i jakość jego wykonania. Efektywne zwiększenie wykorzystania pasma do transmisji dwukierunkowej osiąga się przez stosowanie odpowiednich kodów liniowych oraz przez stosowanie 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 liniowy 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 Subscribe 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 dostępowych i sieciach ISDN to niewielka część szerokiego zakresu stosowania cyfrowego przetwarzania sygnałów. Ogromne znaczenie 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 gospodarczego i kulturalnego korzysta z elektronicznego przekazywania danych. Ogromnego znaczenia nabiera zatem poufność, a nawet tajność 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 informacyjnych. Dotyczy ona głównie aplikacji telekomunikacyjnych, takich jak telefonia bezprzewodowa i komórkowa, faksy, pagery, płatna telewizja, komercyjne produkty audio/wideo itp. Jednak najważniejszym 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 pomocą specjalnych protokołów bezpieczeństwa i w formie algorytmów kryptograficznych stały się częścią wielu standardowych rozwią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 zakresie 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/

2 Jak widać, zakres zastosowań układów cyfrowych w telekomunikacji będzie coraz większy i niedobrze byłoby, gdyby w rozwoju tej techniki i jej ogromnych rynkowych możliwości nie uczestniczyły firmy 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 programowalnych oraz możliwości ich zastosowania w przetwarzaniu sygnałów i informacji. Omówiono przykłady eksperymentalnych i przemysłowych aplikacji multimedialnych oraz realizacje algorytmów kryptograficznych. 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łytki drukowanej do specjalizowanych układów ASIC i specjalizowanych procesorów ASIP (Application Specific Instruction Set Processors) o złożoności sięgającej milionów bramek. W szczególności udoskonalenia procesu technologicznego, polegające na redukowaniu wymiarów elementów półprzewodnikowych i zwiększaniu liczby warstw metalizowanych połączeń, a także nowe techniki programowania umożliwiły opracowanie generacji struktur FPLD (Field Programmable Logic Devices) z możliwością reprogramowania i rekonfiguracji [21], [30]. Te cechy układów FPLD umożliwiają implementacje 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 wykorzystanie w układach wielu struktur typu PAL (Programmable Array Logic) zgrupowanych w bloki SPLD (Simple PLD). Bloki te są ze sobą 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 zdolności łączeniowej rozumie się możliwość łączenia dowolnych elementów struktury programowalnej. Producenci układów rozwiązują związane z tym problemy w różny sposób, czego efektem są różnorodne 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 propagacji sygnału przez matrycę połączeniową nie przekracza zazwyczaj 0, ns (m. in. matryce GRP firmy Lattice, PIA Altera, PIM Cypress, ZIA Xilinx). Dostępne są także układy, w których czas propagacji skrócono do ok ps (ZIA, AIM Xilinx). Grupą układów programowalnych o architekturze i budowie elementarnych komórek logicznych, znacznie odmiennej od architektury 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. O Rys. 2. Struktura FPGA. Oznaczenia: PIP (Programmable Interconnect Point) programowalne punkty połączeniowe, RC (Routing Channels) trakty połączeniowe, I/O bloki wejściowo-wyjściowe, LB (Logic Blocks) bloki logiczne O Rys. 1. Struktura CPLD. Oznaczenia: PIA (Programmable Interconnect Array) matryca połączeniowa, SPLD prosta struktura PLD typu PAL Praktycznie wszystkie obecnie produkowane układy programowalne 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ę ograniczoną liczbą dopuszczalnych cykli reprogramowania, zazwyczaj od 100 do 1000, gwarantują natomiast długi czas przechowywania zapisanych w nich konfiguracji (do 100 lat) bez zasilania. W aplikacjach wymagających dużej pojemności logicznej są stosowane 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 danych o konfiguracji, czyli tzw. inicjalizacja konfiguracji matrycy. Proces rekonfiguracji we wszystkich układach FPGA przebiega podobnie, 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łady FLEX10K). Dzięki wykorzystaniu standardowych interfejsów szeregowych SDI (Serial Data Interface) w układach FPGA oraz JTAG- ISP w układach CPLD, dane konfiguracyjne można załadować do 410 PRZEGLĄD TELEKOMUNIKACYJNY ROCZNIK LXXVI nr 8 9/2003

3 O Rys. 3. Jednowymiarowa systoliczna matryca sumatora; D przerzutnik struktury programowalnej za pomocą lokalnego sterownika lub specjalnego interfejsu programującego. Strumień danych konfiguracyjnych 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 struktury funkcjonalnej, dostępnej w ramach jego architektury podstawowej, do wymagań realizowanych algorytmów. W przypadku realizacji algorytmów, które nie mieszczą się w całości w strukturze systemu, 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 rekonfiguracji systemu podczas jego działania jest wyróżniany terminem run-time. Obecnie stosuje się kilka metod rekonfiguracji układów FPGA [40]. Najprostszym implementacyjnie, ale niezbyt efektywnym sposobem rekonfiguracji, jest zmiana konfiguracji (tzw. kontekstu) całej struktury programowalnej. Polega ona na szeregowym wprowadzeniu strumienia nowych danych konfiguracyjnych. Wadą tej metody jest konieczność przerwania pracy całego układu, co w konsekwencji 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ładu, podobnie jak w przypadku układów jednokontekstowych, chociaż dzięki możliwości wymiany tylko niezbędnej części danych konfiguracyjnych ś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żliwość 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 zaawansowanemu 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żliwość częściowej rekonfiguracji) i podstawowe parametry matryc rekonfigurowalnych są identyczne jak dla matryc stosowanych w układach AT40K. Możliwości użytkowe układów AT94K znacznie zwiększa fakt zintegrowania w ich strukturze szybkiego mikrokontrolera 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 rekonfiguracji struktury układu doskonale nadają się układy z rodzin Virtex oraz APEX, które należą obecnie do grupy najwyżej zaawansowanych 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 bloków logicznych w bloki funkcjonalne bez wykorzystywania lokalnych 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 czynnikiem 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 poziomie najprostszych ale wyjątkowo typowych w DSP układów mnożenia skalarnego z akumulacją. Na rys. 3 pokazano uproszczoną strukturę mnożenia szeregowego, realizowanego w jednowymiarowej matrycy systolicznej. Każde ogniwo tego układu można bezpoś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 realizowanych algorytmów. Układy szeregowego mnożenia bitowego znajdują zastosowanie w realizacjach filtrów typu FIR [26], [36]. Komórkowa budowa struktur FPGA, a w szczególności możliwość grupowania często wykorzystywanych bloków tablic odwzorowań (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 implementacja w strukturach FPGA. Przeprowadzone eksperymenty [36] wskazują, że równoległe i rozproszone układy mnożące implementowane 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ż doskonał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 autentyczności informacji i dokumentów oraz do realizacji maszyn wyszukujących klucze w kryptoanalizie. Głównym atutem układów rekonfigurowalnych jako medium konstrukcyjnego jest ich zdolność adaptacyjna, polegająca na możliwości dostosowania architektury logicznej do typu, kształtu i właściwości realizowanych funkcji. Do efektywnego wykorzystania możliwości tych układów, zarówno pod względem optymalizacji logicznej, jak też parametrów fizycznych (szybkość, moc, powierzchnia) jest potrzebna gruntowna znajomość funkcji i własności implementowanych algorytmów. Środkiem do osiągnięcia tak określonego celu jest wiedza o sposobach odwzorowywania podstawowych operacji i funkcji algorytmu w strukturę podstawową matrycy rekonfigurowalnej oraz wybór logicznej reprezentacji danych, odpowiedniej do specyfikacji algorytmu architektury. Większość algorytmów szyfrowania można przedstawić za pomocą grafu przepływu danych, który jest zbudowany zaledwie z kilku różnych komponentów, realizujących mniej lub bardziej złożone operacje arytmetyczne i funkcje logiczne. Poniżej przedstawiono listę najczęściej stosowanych operacji i funkcji. M Proste operacje arytmetyczne, takie jak dodawanie i odejmowanie. M Operacje na krótkich słowach binarnych o nietypowych długościach. O Rys. 4. Architektura DA. Oznaczenia: RP rejestry przesuwające, POT rejestr potokowy, R rejestr wyjściowy PRZEGLĄD TELEKOMUNIKACYJNY ROCZNIK LXXVI nr 8 9/

4 M Operacje mnożenia mnożenie ogólne (dowolne wartości operandó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ć efektywne odwzorowanie w strukturze matrycy rekonfigurowalnej. Zastosowanie takich wzorów realizacyjnych do projektowania algorytmów kryptograficznych pozwala lepiej wykorzystać walory systemów rekonfigurowalnych. EKSPERYMENTALNE I PRZEMYSŁOWE APLIKACJE MULTIMEDIALNE Wraz z wprowadzeniem rekonfigurowalnych struktur logicznych pojawiły się nowe możliwości ich zastosowań w dziedzinie przetwarzania obrazów i dźwięku. Pierwszą architekturą komputera konfigurowanego ze strukturami FPGA była wirtualna maszyna, pomyślana jako programowalna pamięć aktywna PAM (Programmable Active Memory); miała ona formę rekonfigurowalnego koprocesora sterowanego 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, analogicznie jak w konwencjonalnych komputerach. Przykładami zastosowania platformy PAM do realizacji specjalizowanych maszyn liczących są między innymi: system DECPeRLe zaprojektowany przez Digital Equipment Corporation s Paris Research Laboratory [38] i system SPLASH, opracowany w Supercomputer 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ń wymagających dużych mocy obliczeniowych przy założeniu, że części realizowanego 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 programowania 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 zadaniem wymagającym dużych mocy obliczeniowych. Architektura SPLASH-2 została zaprojektowana jako macierz systoliczna na pojedynczej płytce o 16 elementach obliczeniowych, z których każdy zawiera układ FPGA oraz lokalną pamięć. Analogicznie jak w przypadku 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 przetestowano wiele aplikacji. Otrzymane wyniki świadczą o jego dużej efektywności. Lista przykładowych problemów rozwiązanych za pomocą systemu SPLASH-2 zawierała m. in. następujące zadania: wyszukiwanie tekstu, przetwarzanie obrazów, ustalanie zmiennego przecinka oraz splot w dziedzinie dwuwymiarowej. Eksperymenty przeprowadzone z architekturami PeRLe i SPLASH pokazały, że pojedyncza platforma obliczeniowa zbudowana z układów FPGA może zapewnić imponującą efektywność dla bardzo szerokiej rodziny zastosowań. Tak wysoki poziom efektywności był możliwy do osiągnięcia dzięki zaprojektowaniu dla każdego z wymienionych problemów specjalizowanej architektury. Mechanizmy rekonfiguracji gwarantują, że z wykorzystaniem tego samego sprzętu można realizować niezliczoną liczbę różnych architektur logicznych. Osiągnięcie wysokiej efektywności systemó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 (przemysł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, automatycznie dostosowującego się do protokołu transmisyjnego śledzonej 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 Division Multiple Access), W-CDMA (Wideband CDMA) oraz WLL (Wireless Local Loop). We współpracy z firmą Hanaro Telecom [12] firma LGIE wdrożyła do produkcji modemy W-CDMA, w których zastosowano po cztery układy EPF10K100. Zastosowanie układów rekonfigurowalnych wiąże się z możliwością szybkiego i w miarę bezproblemowego dostosowania toru obróbki sygnału do modyfikacji wprowadzanych w zaleceniach ITU, które mają na celu m. in. zwiększenie 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ładem może być rodzina procesorów wizyjnych D1 firmy Snell & Wilcox [12]. Według danych producenta, zastosowanie układów rekonfigurowalnych spowodowało obniżenie kosztu wykonania takiego procesora o ok. 30% w stosunku do klasycznych rozwiązań opartych na procesorach sygnałowych. Amerykańska firma Metalithic Systems jest producentem profesjonalnego, studyjnego sprzętu audio, w tym wielu cyfrowych konsol mikserskich. W 1999 roku inżynierowie tej firmy opracowali O Rys. 5. Schemat blokowy systemu ze zdalnie rekonfigurowanym blokiem sprzętowym; 1, 2, 3, 4 etapy rekonfiguracji 412 PRZEGLĄD TELEKOMUNIKACYJNY ROCZNIK LXXVI nr 8 9/2003

5 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 kompresji 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 Reconfigurable 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 samochodowych [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 rekonfigurowalne: 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 Technicznym 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 wykonanym w tej architekturze była realizacja symetrycznego szyfru blokowego 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 procesor PipeRench opracowany w Carnegie Mellon University [37]. Oryginalna warstwowa architektura procesora PipeRench, zaprojektowana 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. Wirtualizacja 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] realizacji algorytmów kryptograficznych można określić funkcje i wymagania, 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 systemu 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. Zasadniczymi 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 zasilania 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 przepisuje 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 magistrali ISA. Tą samą drogą, z komputera do systemu, są przekazywane nowe zbiory modyfikujące lub rozszerzające bibliotekę algorytmów. O Rys. 6. Architektura elastycznego systemu kryptograficznego Naszkicowana wyżej koncepcja elastycznego systemu kryptograficznego została wykorzystana przez autorów przy opracowaniu prototypu wieloalgorytmowego koprocesora kryptograficznego, który zrealizowano w ramach prac badawczych w Instytucie Telekomunikacji 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 przedstawiony na rys. 7. Karta wymaga wstępnej inicjalizacji kilku wewnętrznych rejestrów, których zawartość ustawia się przez interfejs programowy 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ą testowane 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 zarówno jawnych, jak i zaszyfrowanych. Zastosowane mechanizmy wykrywają pewne odstępstwa od oczekiwanych prawidłowych sekwencji instrukcji inicjujących proces szyfrowania/deszyfrowania i blokują reakcje koprocesora na sygnał startu GO lub niszczą zawartość rejestrów kluczy i rejestru stanu początkowego. Algorytm DES został zaprojektowany według amerykańskiej normy 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 O Rys. 7. Schemat blokowy wieloalgorytmowego koprocesora kryptograficznego PRZEGLĄD TELEKOMUNIKACYJNY ROCZNIK LXXVI nr 8 9/

6 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 normami ISO/IEC 8372 i ISO/IEC Główna część projektu została wyspecyfikowana w języku AHDL dla środowiska MAX+PLUS II firmy ALTERA, z przeznaczeniem dla rodziny układów rekonfigurowalnych FLEX 10K. W prototypie 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 optymalnych 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 Technology). Wyłoniona w ostatniej rundzie konkursu grupa najlepszych algorytmów kryptograficznych została poddana niezwykle gruntownym badaniom teoretycznym i szczegółowej analizie ich walorów praktycznych, zwłaszcza implementacji sprzętowych wybranej grupy szyfrów pod względem oceny ich wydajności i przydatności w przyszłych systemach kryptograficznych. Analizowane implementacje szyfrów zostały zrealizowane w kilku ośrodkach akademickich na podstawie tych samych założeń funkcjonalnych, wspólnej metodologii i wspólnych narzędzi projektowania, tej samej technologii i tych samych architektur układów rekonfigurowalnych. Za podstawę oceny implementacji zgłoszonych na forum III Konferencji Kandydató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 kwalifikacji szyfrów w konkursie na nowy standard były: bezpieczeństwo, efektywność w realizacjach sprzętowych i programowych oraz elastyczność. Spośród tych czterech parametrów efektywność realizacji sprzętowej okazała się szczególnie ważnym czynnikiem, umożliwiającym zróżnicowanie konkurujących algorytmów, przy założeniu, że: M porównanie było oparte na zbiorze obiektywnych i zgodnie akceptowanych 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. się zestawieniem parametrów użytkowych, własności funkcjonalnych i charakterystyki procesu projektowania. Do grupy parametrów użytkowych, które mają istotny wpływ na efektywność przetwarzania danych, należą: możliwość przetwarzania równoległego i potokowego, zmienna długość słowa i szybkość działania. Do najważniejszych właściwości funkcjonalnych, decydujących o elastyczności i bezpieczeństwie implementacji kryptograficznej, zalicza się: możliwość wymiany algorytmu w trakcie pracy (algorithm agility), zabezpieczenie przed penetracją (tamper resistance) i kontrolę dostępu do kluczy. Charakterystykę procesu projektowania określają między innymi: języki specyfikacji, długość cyklu projektowania, koszty narzędzi do projektowania, koszty testowania, utrzymania i modyfikacji. Z porównania parametrów użytkowych wynika, że układy ASIC i FPGA mają wyraźną przewagę nad implementacją programową pod względem efektywności przetwarzania. 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ępuje 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 podobny w sposobie specyfikacji (język opisu sprzętu), weryfikacji (symulator) i testowania (płyta prototypowa). Zasadnicza różnica pomiędzy nimi polega na tym, że układy FPGA nie wymagają projektu warstwy fizycznej (layout), wytwarzania i testowania defektów fizycznych. 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 technologią 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 architektur. 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 funkcjonalno-czasowych gotowych struktur i eksperymentalnego testowania 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ępujących części: M modułu szyfrowania/deszyfrowania, w którym są kodowane i dekodowane 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 klucze utworzone w bloku generacji kluczy lub dostarczone przez interfejs wejściowy z zewnątrz, Wybór technologii Algorytmy kryptograficzne mogą być realizowane zarówno w formie programu, jak i sprzętu. Implementacje programowe są projektowane i kodowane przy użyciu języków programowania, takich jak C, C ++, Java czy asembler, a następnie wykonywane w uniwersalnych mikroprocesorach, procesorach sygnałowych lub kartach inteligentnych. Implementacje sprzętowe są projektowane i specyfikowane 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 rekonfigurowalnych matryc logicznych FPGA. Do porównania i oceny wymienionych technologii pod względem ich przydatności do zastosowań kryptograficznych można posłużyć O Rys. 8. Schemat blokowy realizacji sprzętowej szyfrów blokowych 414 PRZEGLĄD TELEKOMUNIKACYJNY ROCZNIK LXXVI nr 8 9/2003

7 M interfejsu wejściowego, służącego do wprowadzania danych wejściowych i kluczy oraz do buforowania danych wejściowych oczekujących na kodowanie/dekodowanie, M interfejsu wyjściowego, używanego do buforowania danych przetworzonych 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 porównywania szyfrów z punktu widzenia efektywności ich implementacji sprzętowych. Szybkość szyfrowania (deszyfrowania) jest określana jako liczba 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 (zdeszyfrowania) 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 proporcjonalny do jego powierzchni. Dla ścisłości należy jednak uwzględnić koszt obudowy, na który ma wpływ liczba wyprowadzeń. W pewnych aplikacjach mogą wystąpić ograniczenia maksymalnej dostępnej 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 mikrokontrolerem. 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 implementacji 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 operacyjnych, 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 zaszyfrowanych (CBC), tryb sprzężenia zwrotnego szyfrogramu (CFB) i tryb sprzężenia zwrotnego wyjściowego (OFB). W trybach bez sprzężenia zwrotnego szyfrowanie każdego kolejnego bloku danych może być wykonane niezależnie od przetwarzania 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 szyfrowania kluczy podczas ich dystrybucji. Te wymagania bezpieczeństwa uniemożliwiają wykorzystanie w pełni efektywności implementacji sprzętowych opartych na równoległym przetwarzaniu wielu bloków danych. Podstawowe architektury Wybierając architekturę dla implementacji szyfrów w strukturach FPGA, wystarczy ograniczyć się do dwóch typów: bazowej architektury iteracyjnej i architektury z rozwiniętą (częściowo lub w pełni) pętlą. Podstawową architekturę sprzętową stosowaną do implementacji jednostki szyfrującej/deszyfrującej typowego szyfru blokowego z tajnym kluczem pokazano na rys. 10a. Jedną rundę szyfru zrealizowano jako układ kombinacyjny, uzupełniony rejestrem i multiplekserem. W pierwszym cyklu zegara wejściowy blok danych jest podawany przez multiplekser i zapisywany w rejestrze. W każdym kolejnym cyklu zegara jest realizowana operacja jednej rundy szyfrowania, a jej rezultat podawany zwrotnie do układu przez multiplekser 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ą iteracyjną polega na tym, że część kombinacyjna układu realizuje K rund szyfrowania zamiast jednej. Liczba K musi być podzielnikiem całkowitej liczby rund. Liczba cykli zegara koniecznych do zaszyfrowania jednego bloku danych jest K-krotnie mniejsza od liczby rund. Minimalny okres zegara wzrasta ze współczynnikiem nieco mniejszym niż K. 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 wykorzystano wektory testowe i pośrednie wyniki przetwarzania z opublikowanych wcześniej implementacji programowych. Przedstawione raporty zawierają powierzchnię, szybkość i inne dane o implementacji oraz zbiory danych do symulacji czasowej i do skonfigurowania układu. O Rys. 10. Podstawowe architektury szyfrów w trybach ze sprzężeniem zwrotnym: a) bazowa architektura iteracyjna, b) z częściowo rozwiniętą pętlą, c) z pętlą w pełni rozwiniętą PRZEGLĄD TELEKOMUNIKACYJNY ROCZNIK LXXVI nr 8 9/

8 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 iteracyjna. Zapewnia ona maksymalny współczynnik szybkość/powierzchnia 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 powszechnie 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 poprawy parametrów funkcjonalnych i czasowych oraz zmian w architekturze logicznej, ale również z samej istoty reprogramowalności. Jeden z kierunków takich aplikacji określa koncepcja produktu wirtualnego 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 produkty o zmiennych funkcjach i właściwościach, jak również elastyczne klocki, z których można konstruować większe systemy. Powstał ogromny rynek wirtualnych produktów specjalizowanych, tzw. rynek własności intelektualnej IP (Intellectual Property Business) 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 Viterbiego dla sieci LAN, skramblery i deskramblery itp. Rynek produktów wirtualnych to jednocześnie ogromne wyzwanie 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 specjalistycznym oprogramowaniu uniwersyteckim. Duża złożoność struktur FPGA, a także ich nietypowe konstrukcje (komórki), spowodowały wzrost roli i znaczenia zaawansowanych procedur syntezy logicznej. Wpływ zaawansowanych procedur syntezy logicznej na jakość implementacji sprzętowych układów przetwarzania informacji i sygnałów jest szczególnie znaczący w algorytmach wykorzystujących struktury tablicowe typu LUT. Struktury takie są powszechnie stosowane w filtrach cyfrowych, układach transformacji falkowej [31], w szczególności do realizacji wykorzystujących arytmetykę rozproszoną [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: W systemie DEMAIN, jako główną procedurę syntezy logicznej zorientowanej na struktury FPGA, wykorzystuje się tzw. algorytm dekompozycji zrównoważonej. Skuteczność tego oprogramowania można ocenić na podstawie eksperymentó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 realizacji 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 zakresu od 0 do 99, M bin2bcd2 konwerter kodu binarnego na BCD dla liczb z zakresu 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 implementacji algorytmu kryptograficznego DES, M 5B6B kombinacyjną część układu kodera 5B-6B. W tabeli 1 przedstawiono wyniki porównania metody wykorzystują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 O Tabela 1. Wyniki implementacji rzeczywistych układów przy użyciu różnych narzędzi syntezy logicznej Przykład DEMAIN MAX +Plus II Architektura FPGA EPF10K10LC84-3 FPGA Express Leonardo Spectrum SIS liczba komórek logicznych bin2bcd bin2bcd DESboxes rd DESaut B6B FLEX. W tabeli podano liczbę komórek logicznych wymaganych do implementacji poszczególnych układów. Z podanych rezultatów wynika, że realizacja za pomocą metody wykorzystującej dekompozycję zrównoważoną jest najoszczędniejsza pod względem liczby zajętych komórek i wygrywa nawet z realizacją osiągniętą za pomocą uniwersyteckiego systemu SIS [35], opracowanego na Uniwersytecie Kalifornijskim w Berkeley. W szczególności warto zwrócić uwagę na implementację konwertera kodu binarnego na kod BCD (wersja 1) oraz na implementacje skrzynek podstawieniowych (s-box) szyfrów DES i Rijndael. Jak widać, wspomaganie procesu projektowania zaawansowanymi procedurami syntezy logicznej prowadzi do rezultatów niemożliwych do uzyskania nawet za pomocą najlepszych systemów komercyjnych. Trzeba również podkreślić, że na jakość powyższych implementacji w systemach komercyjnych nie mają wpływu nawet najlepsze kompilatory języków HDL. Konwerter BIN2BCD1 jest typowym przykładem takiej sytuacji. Otóż konwerter ten można zaprojektować bądź to w strukturze zbudowanej z bloków funkcjonalnych według tzw. algorytmu +3 1), bądź też jako układ kombinacyjny realizują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 dekompozycji, 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 permutacyjnych 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] 416 PRZEGLĄD TELEKOMUNIKACYJNY ROCZNIK LXXVI nr 8 9/2003

9 ki przepływu danych nie wymaga żadnych dalszych zmian w innych plikach składowych projektu. Implementacje ścieżki przepływu danych w strukturze rodziny FLEX10K program DEMAIN redukuje do 296 komórek logicznych. W porównaniu do 709 komórek niezbędnych do realizacji tego bloku bez zastosowania programu DEMAIN stanowi to ponad dwukrotną redukcję wymaganych zasobów. Optymalizacja 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 jawnego 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 bloku ścieżki przepływu danych. Podobnie jak w przypadku bloku rundy zrealizowanego bez wykorzystania dekompozycji, rzeczywista szybkość układu realizującego cały algorytm DES będzie zależała od sposobu realizacji pozostał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 realizacji w języku AHDL podano w tabeli 2. Wykorzystano tu zmodyfikowany 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 potokowo. 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ż realizacja 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 komercyjne systemy projektowania układów cyfrowych niejednokrotnie 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 O Tabela 2. Specyfikacja rozpływu danych w języku AHDL 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; FPGA i FLEX. Przyczyna tego zjawiska tkwi w niedostosowaniu procedur syntezy logicznej, które w systemach komercyjnych są z reguły realizowane według klasycznych metod minimalizacji funkcji boolowskich i nie uwzględniają metod dekompozycji funkcjonalnej [22]. Zatem stosowanie zaawansowanych systemów uniwersyteckich 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 reprogramowalnych w cyfrowym przetwarzaniu sygnałów i kryptografii, dzięki możliwości zmiany konfiguracji w trakcie pracy i elastycznemu wykorzystywaniu 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 logicznej stwarza to szansę dla rozwoju rodzimych opracowań urządzeń telekomunikacyjnych. Jest ona szczególnie widoczna w systemach 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 Architectures, 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, Napa, 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 algorithm finalists, Proc. 3 rd Advanced Encryption Standard (AES) Candidate 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 Advanced 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 description generator. Technical Report SRC-TR , 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 addressable memory, Parallel and Distributed Processing. Springer- Verlag, Berlin, May 2000 [12] [13] [14] [15] [16] [17] [18] IEEE Computer Society, Proceedings of IEEE Workshop on FPGAs for Custom Computing Machines, [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 cyfrowych. 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, Warszawa 2001 PRZEGLĄD TELEKOMUNIKACYJNY ROCZNIK LXXVI nr 8 9/

10 [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.: Synteza układów cyfrowych. WKŁ Warszawa (przewidywany termin wydania listopad 2003) [25] Mosanya E. et al.: CryptoBooster: A Reconfigurable and Modular Cryptographic Coprocesor, Proceedings of the Workshop on Cryptographic 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 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 International Conference Mixed Design of Integrated Circuits and Systems, Kraków 1999 [29] IFAC Workshop on Programmable Devices and Systems (E. Hrynkiewicz 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 falkowej. Przegląd Telekomunikacyjny i Wiadomości Telekomunikacyjne, nr 2 3, 2003 [32] Rawski M., Jóźwiak L., Łuba T.: Functional decomposition with an efficient 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 Komitetu Programowego), materiały IV Konferencji Naukowej, Szczecin 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 Synthesis. 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 Hardware 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 obrazów w systemach wizyjnych czasu rzeczywistego. AGH, Kraków 2002 [40] Zbysiński P.: Rekonfigurowalne układy FPSLIC firmy Atmel, Elektronizacja nr PRZEGLĄD TELEKOMUNIKACYJNY ROCZNIK LXXVI nr 8 9/2003

ZASTOSOWANIA UKŁADÓW FPGA W ALGORYTMACH WYLICZENIOWYCH APPLICATIONS OF FPGAS IN ENUMERATION ALGORITHMS

ZASTOSOWANIA UKŁADÓW FPGA W ALGORYTMACH WYLICZENIOWYCH APPLICATIONS OF FPGAS IN ENUMERATION ALGORITHMS inż. Michał HALEŃSKI Wojskowy Instytut Techniczny Uzbrojenia ZASTOSOWANIA UKŁADÓW FPGA W ALGORYTMACH WYLICZENIOWYCH Streszczenie: W artykule przedstawiono budowę oraz zasadę działania układów FPGA oraz

Bardziej szczegółowo

Mechatronika i inteligentne systemy produkcyjne. Modelowanie systemów mechatronicznych Platformy przetwarzania danych

Mechatronika i inteligentne systemy produkcyjne. Modelowanie systemów mechatronicznych Platformy przetwarzania danych Mechatronika i inteligentne systemy produkcyjne Modelowanie systemów mechatronicznych Platformy przetwarzania danych 1 Sterowanie procesem oparte na jego modelu u 1 (t) System rzeczywisty x(t) y(t) Tworzenie

Bardziej szczegółowo

Systemy na Chipie. Robert Czerwiński

Systemy na Chipie. Robert Czerwiński Systemy na Chipie Robert Czerwiński Cel kursu Celem kursu jest zapoznanie słuchaczy ze współczesnymi metodami projektowania cyfrowych układów specjalizowanych, ze szczególnym uwzględnieniem układów logiki

Bardziej szczegółowo

Elementy cyfrowe i układy logiczne

Elementy cyfrowe i układy logiczne Elementy cyfrowe i układy logiczne Wykład 5 Legenda Procedura projektowania Podział układów VLSI 2 1 Procedura projektowania Specyfikacja Napisz, jeśli jeszcze nie istnieje, specyfikację układu. Opracowanie

Bardziej szczegółowo

Architektury akceleratorów kryptograficznych opartych o układy programowalne. Marcin Rogawski

Architektury akceleratorów kryptograficznych opartych o układy programowalne. Marcin Rogawski Architektury akceleratorów kryptograficznych opartych o układy programowalne. Marcin Rogawski rogawskim@prokom.pl Plan referatu: Budowa akceleratora kryptograficznego; Struktura programowalna element fizyczny;

Bardziej szczegółowo

METODY ZINTEGROWANEGO PROJEKTOWANIA SPRZĘTU I OPROGRAMOWANIA Z WYKORZYSTANIEM NOWOCZESNYCH UKŁADÓW PROGRAMOWALNYCH

METODY ZINTEGROWANEGO PROJEKTOWANIA SPRZĘTU I OPROGRAMOWANIA Z WYKORZYSTANIEM NOWOCZESNYCH UKŁADÓW PROGRAMOWALNYCH METODY ZINTEGROWANEGO PROJEKTOWANIA SPRZĘTU I OPROGRAMOWANIA Z WYKORZYSTANIEM NOWOCZESNYCH UKŁADÓW PROGRAMOWALNYCH Arkadiusz Bukowiec mgr inż. Agnieszka Węgrzyn Instytut Informatyki i Elektroniki, Uniwersytet

Bardziej szczegółowo

Zagadnienia egzaminacyjne ELEKTRONIKA I TELEKOMUNIKACJA studia rozpoczynające się przed r.

Zagadnienia egzaminacyjne ELEKTRONIKA I TELEKOMUNIKACJA studia rozpoczynające się przed r. (EAE) Aparatura elektroniczna 1. Podstawowe statyczne i dynamiczne właściwości czujników. 2. Prawa gazów doskonałych i ich zastosowania w pomiarze ciśnienia. 3. Jakie właściwości mikrokontrolerów rodziny

Bardziej szczegółowo

Język opisu sprzętu VHDL

Język opisu sprzętu VHDL Język opisu sprzętu VHDL dr inż. Adam Klimowicz Seminarium dydaktyczne Katedra Mediów Cyfrowych i Grafiki Komputerowej Informacje ogólne Język opisu sprzętu VHDL Przedmiot obieralny dla studentów studiów

Bardziej szczegółowo

Temat: Pamięci. Programowalne struktury logiczne.

Temat: Pamięci. Programowalne struktury logiczne. Temat: Pamięci. Programowalne struktury logiczne. 1. Pamięci są układami służącymi do przechowywania informacji w postaci ciągu słów bitowych. Wykonuje się jako układy o bardzo dużym stopniu scalenia w

Bardziej szczegółowo

Spis treúci. Księgarnia PWN: Krzysztof Wojtuszkiewicz - Urządzenia techniki komputerowej. Cz. 1. Przedmowa... 9. Wstęp... 11

Spis treúci. Księgarnia PWN: Krzysztof Wojtuszkiewicz - Urządzenia techniki komputerowej. Cz. 1. Przedmowa... 9. Wstęp... 11 Księgarnia PWN: Krzysztof Wojtuszkiewicz - Urządzenia techniki komputerowej. Cz. 1 Spis treúci Przedmowa... 9 Wstęp... 11 1. Komputer PC od zewnątrz... 13 1.1. Elementy zestawu komputerowego... 13 1.2.

Bardziej szczegółowo

Większe możliwości dzięki LabVIEW 2009: programowanie równoległe, technologie bezprzewodowe i funkcje matematyczne w systemach czasu rzeczywistego

Większe możliwości dzięki LabVIEW 2009: programowanie równoległe, technologie bezprzewodowe i funkcje matematyczne w systemach czasu rzeczywistego Większe możliwości dzięki LabVIEW 2009: programowanie równoległe, technologie bezprzewodowe i funkcje matematyczne w systemach czasu rzeczywistego Dziś bardziej niż kiedykolwiek narzędzia używane przez

Bardziej szczegółowo

WPROWADZENIE Mikrosterownik mikrokontrolery

WPROWADZENIE Mikrosterownik mikrokontrolery WPROWADZENIE Mikrosterownik (cyfrowy) jest to moduł elektroniczny zawierający wszystkie środki niezbędne do realizacji wymaganych procedur sterowania przy pomocy metod komputerowych. Platformy budowy mikrosterowników:

Bardziej szczegółowo

Katedra Mikroelektroniki i Technik Informatycznych

Katedra Mikroelektroniki i Technik Informatycznych Katedra Mikroelektroniki i Technik Informatycznych Bloki obieralne na kierunku Mechatronika rok akademicki 2013/2014 ul. Wólczańska 221/223, budynek B18 www.dmcs.p.lodz.pl Nowa siedziba Katedry 2005 2006

Bardziej szczegółowo

Systemy wbudowane. Uproszczone metody kosyntezy. Wykład 11: Metody kosyntezy systemów wbudowanych

Systemy wbudowane. Uproszczone metody kosyntezy. Wykład 11: Metody kosyntezy systemów wbudowanych Systemy wbudowane Wykład 11: Metody kosyntezy systemów wbudowanych Uproszczone metody kosyntezy Założenia: Jeden procesor o znanych parametrach Znane parametry akceleratora sprzętowego Vulcan Początkowo

Bardziej szczegółowo

POLITECHNIKA WARSZAWSKA Wydział Elektroniki i Technik Informacyjnych. Instytut Telekomunikacji Zakład Podstaw Telekomunikacji

POLITECHNIKA WARSZAWSKA Wydział Elektroniki i Technik Informacyjnych. Instytut Telekomunikacji Zakład Podstaw Telekomunikacji POLITECHNIKA WARSZAWSKA Wydział Elektroniki i Technik Informacyjnych Instytut Telekomunikacji Zakład Podstaw Telekomunikacji Kamil Krawczyk Metody optymalizacji soft-procesorów NIOS Opiekun naukowy: dr

Bardziej szczegółowo

Opracował: Jan Front

Opracował: Jan Front Opracował: Jan Front Sterownik PLC PLC (Programowalny Sterownik Logiczny) (ang. Programmable Logic Controller) mikroprocesorowe urządzenie sterujące układami automatyki. PLC wykonuje w sposób cykliczny

Bardziej szczegółowo

Bezpieczeństwo kart elektronicznych

Bezpieczeństwo kart elektronicznych Bezpieczeństwo kart elektronicznych Krzysztof Maćkowiak Karty elektroniczne wprowadzane od drugiej połowy lat 70-tych znalazły szerokie zastosowanie w wielu dziedzinach naszego życia: bankowości, telekomunikacji,

Bardziej szczegółowo

Programowalne Układy Logiczne. Wykład I dr inż. Paweł Russek

Programowalne Układy Logiczne. Wykład I dr inż. Paweł Russek Programowalne Układy Logiczne Wykład I dr inż. Paweł Russek Literatura www.actel.com www.altera.com www.xilinx.com www.latticesemi.com Field Programmable Gate Arrays J.V. Oldfield, R.C. Dorf Field Programable

Bardziej szczegółowo

Elektronika i techniki mikroprocesorowe

Elektronika i techniki mikroprocesorowe Elektronika i techniki mikroprocesorowe Technika cyfrowa ZłoŜone one układy cyfrowe Katedra Energoelektroniki, Napędu Elektrycznego i Robotyki Wydział Elektryczny, ul. Krzywoustego 2 PLAN WYKŁADU idea

Bardziej szczegółowo

Układy logiczne układy cyfrowe

Układy logiczne układy cyfrowe Układy logiczne układy cyfrowe Jak projektować układy cyfrowe (systemy cyfrowe) Układy arytmetyki rozproszonej filtrów cyfrowych Układy kryptograficzne X Selektor ROM ROM AND Specjalizowane układy cyfrowe

Bardziej szczegółowo

Zagadnienia egzaminacyjne INFORMATYKA. stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ

Zagadnienia egzaminacyjne INFORMATYKA. stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ (INT) Inżynieria internetowa 1.Tryby komunikacji między procesami w standardzie Message Passing Interface. 2. HTML DOM i XHTML cel i charakterystyka. 3. Asynchroniczna komunikacja serwerem HTTP w technologii

Bardziej szczegółowo

XXXII Olimpiada Wiedzy Elektrycznej i Elektronicznej. XXXII Olimpiada Wiedzy Elektrycznej i Elektronicznej

XXXII Olimpiada Wiedzy Elektrycznej i Elektronicznej. XXXII Olimpiada Wiedzy Elektrycznej i Elektronicznej Zestaw pytań finałowych numer : 1 1. Wzmacniacz prądu stałego: własności, podstawowe rozwiązania układowe 2. Cyfrowy układ sekwencyjny - schemat blokowy, sygnały wejściowe i wyjściowe, zasady syntezy 3.

Bardziej szczegółowo

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE Nazwa przedmiotu: Jednostki obliczeniowe w zastosowaniach mechatronicznych Kierunek: Mechatronika Rodzaj przedmiotu: dla specjalności Systemy Sterowania Rodzaj zajęć: Wykład, laboratorium Computational

Bardziej szczegółowo

Wykorzystanie układów FPGA w implementacji systemów bezpieczeństwa sieciowego typu Firewall

Wykorzystanie układów FPGA w implementacji systemów bezpieczeństwa sieciowego typu Firewall Grzegorz Sułkowski, Maciej Twardy, Kazimierz Wiatr Wykorzystanie układów FPGA w implementacji systemów bezpieczeństwa sieciowego typu Firewall Plan prezentacji 1. Architektura Firewall a załoŝenia 2. Punktu

Bardziej szczegółowo

Wykład Mikroprocesory i kontrolery

Wykład Mikroprocesory i kontrolery Wykład Mikroprocesory i kontrolery Cele wykładu: Poznanie podstaw budowy, zasad działania mikroprocesorów i układów z nimi współpracujących. Podstawowa wiedza potrzebna do dalszego kształcenia się w technice

Bardziej szczegółowo

Zagadnienia egzaminacyjne INFORMATYKA. Stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ

Zagadnienia egzaminacyjne INFORMATYKA. Stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ (INT) Inżynieria internetowa 1. Tryby komunikacji między procesami w standardzie Message Passing Interface 2. HTML DOM i XHTML cel i charakterystyka 3. Asynchroniczna komunikacja serwerem HTTP w technologii

Bardziej szczegółowo

Metody optymalizacji soft-procesorów NIOS

Metody optymalizacji soft-procesorów NIOS POLITECHNIKA WARSZAWSKA Wydział Elektroniki i Technik Informacyjnych Instytut Telekomunikacji Zakład Podstaw Telekomunikacji Kamil Krawczyk Metody optymalizacji soft-procesorów NIOS Warszawa, 27.01.2011

Bardziej szczegółowo

Szerokopasmowy dostęp do Internetu Broadband Internet Access. dr inż. Stanisław Wszelak

Szerokopasmowy dostęp do Internetu Broadband Internet Access. dr inż. Stanisław Wszelak Szerokopasmowy dostęp do Internetu Broadband Internet Access dr inż. Stanisław Wszelak Rodzaje dostępu szerokopasmowego Technologia xdsl Technologie łączami kablowymi Kablówka Technologia poprzez siec

Bardziej szczegółowo

2 Kryptografia: algorytmy symetryczne

2 Kryptografia: algorytmy symetryczne 1 Kryptografia: wstęp Wyróżniamy algorytmy: Kodowanie i kompresja Streszczenie Wieczorowe Studia Licencjackie Wykład 14, 12.06.2007 symetryczne: ten sam klucz jest stosowany do szyfrowania i deszyfrowania;

Bardziej szczegółowo

LEKCJA TEMAT: Zasada działania komputera.

LEKCJA TEMAT: Zasada działania komputera. LEKCJA TEMAT: Zasada działania komputera. 1. Ogólna budowa komputera Rys. Ogólna budowa komputera. 2. Komputer składa się z czterech głównych składników: procesor (jednostka centralna, CPU) steruje działaniem

Bardziej szczegółowo

PROGRAMOWALNE STEROWNIKI LOGICZNE

PROGRAMOWALNE STEROWNIKI LOGICZNE PROGRAMOWALNE STEROWNIKI LOGICZNE I. Wprowadzenie Klasyczna synteza kombinacyjnych i sekwencyjnych układów sterowania stosowana do automatyzacji dyskretnych procesów produkcyjnych polega na zaprojektowaniu

Bardziej szczegółowo

Przykładowe pytania DSP 1

Przykładowe pytania DSP 1 Przykładowe pytania SP Przykładowe pytania Systemy liczbowe. Przedstawić liczby; -, - w kodzie binarnym i hexadecymalnym uzupełnionym do dwóch (liczba 6 bitowa).. odać dwie liczby binarne w kodzie U +..

Bardziej szczegółowo

Budowa i zasada działania komputera. dr Artur Bartoszewski

Budowa i zasada działania komputera. dr Artur Bartoszewski Budowa i zasada działania komputera 1 dr Artur Bartoszewski Jednostka arytmetyczno-logiczna 2 Pojęcie systemu mikroprocesorowego Układ cyfrowy: Układy cyfrowe służą do przetwarzania informacji. Do układu

Bardziej szczegółowo

PROGRAMMABLE DEVICES UKŁADY PROGRAMOWALNE

PROGRAMMABLE DEVICES UKŁADY PROGRAMOWALNE Paweł Bogumił BRYŁA IV rok Koło Naukowe Techniki Cyfrowej Dr inŝ. Wojciech Mysiński opiekun naukowy PROGRAMMABLE DEVICES UKŁADY PROGRAMOWALNE Keywords: PAL, PLA, PLD, CPLD, FPGA, programmable device, electronic

Bardziej szczegółowo

Cyfrowe układy scalone

Cyfrowe układy scalone Cyfrowe układy scalone Ryszard J. Barczyński, 2012 Politechnika Gdańska, Wydział FTiMS, Katedra Fizyki Ciała Stałego Materiały dydaktyczne do użytku wewnętrznego Publikacja współfinansowana ze środków

Bardziej szczegółowo

Cyfrowe układy scalone

Cyfrowe układy scalone Cyfrowe układy scalone Ryszard J. Barczyński, 2010 2015 Politechnika Gdańska, Wydział FTiMS, Katedra Fizyki Ciała Stałego Materiały dydaktyczne do użytku wewnętrznego Cyfrowe układy scalone Układy cyfrowe

Bardziej szczegółowo

Implementacja algorytmu szyfrującego

Implementacja algorytmu szyfrującego Warszawa 25.01.2008 Piotr Bratkowski 4T2 Przemysław Tytro 4T2 Dokumentacja projektu Układy Cyfrowe Implementacja algorytmu szyfrującego serpent w układzie FPGA 1. Cele projektu Celem projektu jest implementacja

Bardziej szczegółowo

Badanie właściwości wysokorozdzielczych przetworników analogowo-cyfrowych w systemie programowalnym FPGA. Autor: Daniel Słowik

Badanie właściwości wysokorozdzielczych przetworników analogowo-cyfrowych w systemie programowalnym FPGA. Autor: Daniel Słowik Badanie właściwości wysokorozdzielczych przetworników analogowo-cyfrowych w systemie programowalnym FPGA Autor: Daniel Słowik Promotor: Dr inż. Daniel Kopiec Wrocław 016 Plan prezentacji Założenia i cel

Bardziej szczegółowo

Układy FPGA. Programowalne Układy Cyfrowe dr inż. Paweł Russek

Układy FPGA. Programowalne Układy Cyfrowe dr inż. Paweł Russek Układy FPGA Programowalne Układy Cyfrowe dr inż. Paweł Russek Program wykładu Geneza Technologia Struktura Funktory logiczne, sieć połączeń, bloki we/wy Współczesne układy FPGA Porównanie z ASIC Literatura

Bardziej szczegółowo

Wykład I. Podstawowe pojęcia. Studia Podyplomowe INFORMATYKA Architektura komputerów

Wykład I. Podstawowe pojęcia. Studia Podyplomowe INFORMATYKA Architektura komputerów Studia Podyplomowe INFORMATYKA Architektura komputerów Wykład I Podstawowe pojęcia 1, Cyfrowe dane 2 Wewnątrz komputera informacja ma postać fizycznych sygnałów dwuwartościowych (np. dwa poziomy napięcia,

Bardziej szczegółowo

Współczesne techniki informacyjne

Współczesne techniki informacyjne Współczesne techniki informacyjne są multimedialne, można oczekiwać, że po cywilizacji pisma (i druku) nastąpi etap cywilizacji obrazowej czyli coraz większa jest potrzeba gromadzenia i przysyłania wielkiej

Bardziej szczegółowo

Szyfry strumieniowe w układach programowalnych FPGA. Marcin Rogawski

Szyfry strumieniowe w układach programowalnych FPGA. Marcin Rogawski Szyfry strumieniowe w układach programowalnych FPGA Marcin Rogawski rogawskim@prokom.pl Plan referatu Szyfry strumieniowe, Wybór tematu, Struktury programowalne element fizyczny, Architektury akceleratorów

Bardziej szczegółowo

1.1. Standard szyfrowania DES

1.1. Standard szyfrowania DES 1.1. Standard szyrowania DES Powstał w latach siedemdziesiątych i został przyjęty jako standard szyrowania przez Amerykański Narodowy Instytut Standaryzacji (ang. American National Standards Institute

Bardziej szczegółowo

Programowanie sterowników przemysłowych / Jerzy Kasprzyk. wyd. 2 1 dodr. (PWN). Warszawa, Spis treści

Programowanie sterowników przemysłowych / Jerzy Kasprzyk. wyd. 2 1 dodr. (PWN). Warszawa, Spis treści Programowanie sterowników przemysłowych / Jerzy Kasprzyk. wyd. 2 1 dodr. (PWN). Warszawa, 2017 Spis treści Przedmowa 11 ROZDZIAŁ 1 Wstęp 13 1.1. Rys historyczny 14 1.2. Norma IEC 61131 19 1.2.1. Cele i

Bardziej szczegółowo

PROJEKT I OPTYMALIZACJA STRUKTURY LOGICZNEJ DYDAKTYCZNEGO SYSTEMU MIKROPROCESOROWEGO DLA LABORATORIUM PROJEKTOWANIA ZINTEGROWANEGO

PROJEKT I OPTYMALIZACJA STRUKTURY LOGICZNEJ DYDAKTYCZNEGO SYSTEMU MIKROPROCESOROWEGO DLA LABORATORIUM PROJEKTOWANIA ZINTEGROWANEGO II Konferencja Naukowa KNWS'05 "Informatyka- sztuka czy rzemios o" 15-18 czerwca 2005, Z otniki Luba skie PROJEKT I OPTYMALIZACJA STRUKTURY LOGICZNEJ DYDAKTYCZNEGO SYSTEMU MIKROPROCESOROWEGO DLA LABORATORIUM

Bardziej szczegółowo

PROBLEMATYKA BEZPIECZEŃSTWA SIECI RADIOWYCH Algorytm szyfrowania AES. Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

PROBLEMATYKA BEZPIECZEŃSTWA SIECI RADIOWYCH Algorytm szyfrowania AES. Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska PROBLEMATYKA BEZPIECZEŃSTWA SIECI RADIOWYCH Algorytm szyfrowania AES Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska Wprowadzenie Problemy bezpieczeństwa transmisji Rozwiązania stosowane dla

Bardziej szczegółowo

Magistrala. Magistrala (ang. Bus) służy do przekazywania danych, adresów czy instrukcji sterujących w różne miejsca systemu komputerowego.

Magistrala. Magistrala (ang. Bus) służy do przekazywania danych, adresów czy instrukcji sterujących w różne miejsca systemu komputerowego. Plan wykładu Pojęcie magistrali i jej struktura Architektura pamięciowo-centryczna Architektura szynowa Architektury wieloszynowe Współczesne architektury z połączeniami punkt-punkt Magistrala Magistrala

Bardziej szczegółowo

Bezpieczeństwo informacji oparte o kryptografię kwantową

Bezpieczeństwo informacji oparte o kryptografię kwantową WYŻSZA SZKOŁA BIZNESU W DĄBROWIE GÓRNICZEJ WYDZIAŁ ZARZĄDZANIA INFORMATYKI I NAUK SPOŁECZNYCH Instrukcja do laboratorium z przedmiotu: Bezpieczeństwo informacji oparte o kryptografię kwantową Instrukcja

Bardziej szczegółowo

Systemy wbudowane. Paweł Pełczyński ppelczynski@swspiz.pl

Systemy wbudowane. Paweł Pełczyński ppelczynski@swspiz.pl Systemy wbudowane Paweł Pełczyński ppelczynski@swspiz.pl 1 Program przedmiotu Wprowadzenie definicja, zastosowania, projektowanie systemów wbudowanych Mikrokontrolery AVR Programowanie mikrokontrolerów

Bardziej szczegółowo

Algorytmy i Struktury Danych

Algorytmy i Struktury Danych POLITECHNIKA KRAKOWSKA - WIEiK KATEDRA AUTOMATYKI i TECHNIK INFORMACYJNYCH Algorytmy i Struktury Danych www.pk.edu.pl/~zk/aisd_hp.html Wykładowca: dr inż. Zbigniew Kokosiński zk@pk.edu.pl Wykład 12: Wstęp

Bardziej szczegółowo

Elektronika cyfrowa i mikroprocesory. Dr inż. Aleksander Cianciara

Elektronika cyfrowa i mikroprocesory. Dr inż. Aleksander Cianciara Elektronika cyfrowa i mikroprocesory Dr inż. Aleksander Cianciara Sprawy organizacyjne Warunki zaliczenia Lista obecności Kolokwium końcowe Ocena końcowa Konsultacje Poniedziałek 6:-7: Kontakt Budynek

Bardziej szczegółowo

Zagadnienia egzaminacyjne TELEKOMUNIKACJA studia rozpoczynające się po 1.10.2012 r.

Zagadnienia egzaminacyjne TELEKOMUNIKACJA studia rozpoczynające się po 1.10.2012 r. (TEM) Telekomunikacja mobilna 1. Pasmo zajmowane przez transmisję cyfrową, a szybkość transmisji i przepustowość łącza radiowego. 2. Kodowanie informacji transmitowanej w cyfrowych systemach wizyjnych.

Bardziej szczegółowo

PROBLEMATYKA BEZPIECZEŃSTWA SIECI RADIOWYCH Algorytm szyfrowania AES. Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

PROBLEMATYKA BEZPIECZEŃSTWA SIECI RADIOWYCH Algorytm szyfrowania AES. Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska PROBLEMATYKA BEZPIECZEŃSTWA SIECI RADIOWYCH Algorytm szyfrowania AES Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska Wprowadzenie Problemy bezpieczeństwa transmisji Rozwiązania stosowane dla

Bardziej szczegółowo

Układy sekwencyjne. Podstawowe informacje o układach cyfrowych i przerzutnikach (rodzaje, sposoby wyzwalania).

Układy sekwencyjne. Podstawowe informacje o układach cyfrowych i przerzutnikach (rodzaje, sposoby wyzwalania). Ćw. 10 Układy sekwencyjne 1. Cel ćwiczenia Celem ćwiczenia jest zapoznanie się z sekwencyjnymi, cyfrowymi blokami funkcjonalnymi. W ćwiczeniu w oparciu o poznane przerzutniki zbudowane zostaną układy rejestrów

Bardziej szczegółowo

Programowalne Układy Logiczne Konfiguracja/Rekonfiguracja

Programowalne Układy Logiczne Konfiguracja/Rekonfiguracja Programowalne Układy Logiczne Konfiguracja/Rekonfiguracja dr inż. Paweł Russek Program wykładu Metody konfigurowania PLD Zaawansowane metody konfigurowania FPGA Rekonfigurowalne systemy obliczeniowe Pamięć

Bardziej szczegółowo

Budowa komputera Komputer computer computare

Budowa komputera Komputer computer computare 11. Budowa komputera Komputer (z ang. computer od łac. computare obliczać) urządzenie elektroniczne służące do przetwarzania wszelkich informacji, które da się zapisać w formie ciągu cyfr albo sygnału

Bardziej szczegółowo

2. STRUKTURA RADIOFONICZNYCH SYGNAŁÓW CYFROWYCH

2. STRUKTURA RADIOFONICZNYCH SYGNAŁÓW CYFROWYCH 1. WSTĘP Radiofonię cyfrową cechują strumienie danych o dużych przepływnościach danych. Do przesyłania strumienia danych o dużych przepływnościach stosuje się transmisję z wykorzystaniem wielu sygnałów

Bardziej szczegółowo

Bezpieczeństwo systemów komputerowych. Algorytmy kryptograficzne (1) Algorytmy kryptograficzne. Algorytmy kryptograficzne BSK_2003

Bezpieczeństwo systemów komputerowych. Algorytmy kryptograficzne (1) Algorytmy kryptograficzne. Algorytmy kryptograficzne BSK_2003 Bezpieczeństwo systemów komputerowych Algorytmy kryptograficzne (1) mgr Katarzyna Trybicka-Francik kasiat@zeus.polsl.gliwice.pl pok. 503 Algorytmy kryptograficzne Przestawieniowe zmieniają porządek znaków

Bardziej szczegółowo

Podstawy techniki cyfrowej i mikroprocesorowej - opis przedmiotu

Podstawy techniki cyfrowej i mikroprocesorowej - opis przedmiotu Podstawy techniki cyfrowej i mikroprocesorowej - opis przedmiotu Informacje ogólne Nazwa przedmiotu Podstawy techniki cyfrowej i mikroprocesorowej Kod przedmiotu 06.5-WE-AiRP-PTCiM Wydział Kierunek Wydział

Bardziej szczegółowo

Układy logiczne układy cyfrowe

Układy logiczne układy cyfrowe Układy logiczne układy cyfrowe Jak projektować układy cyfrowe (systemy cyfrowe) Układy arytmetyki rozproszonej filtrów cyfrowych Układy kryptograficzne Evatronix KontrolerEthernet MAC (Media Access Control)

Bardziej szczegółowo

Bezpieczeństwo informacji w systemach komputerowych

Bezpieczeństwo informacji w systemach komputerowych Bezpieczeństwo informacji w systemach komputerowych Andrzej GRZYWAK Rozwój mechanizmów i i systemów bezpieczeństwa Szyfry Kryptoanaliza Autentyfikacja Zapory Sieci Ochrona zasobów Bezpieczeństwo przechowywania

Bardziej szczegółowo

Ochrona własności intelektualnej projektów w układach FPGA poprzez szyfrowanie danych konfiguracyjnych

Ochrona własności intelektualnej projektów w układach FPGA poprzez szyfrowanie danych konfiguracyjnych Ochrona własności intelektualnej projektów w układach FPGA poprzez szyfrowanie danych konfiguracyjnych (Na przykładzie projektowania układów sterujacych) Grzegorz Łabiak i Marek Węgrzyn Instytut Informatyki

Bardziej szczegółowo

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE Nazwa przedmiotu: ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH Kierunek: Informatyka Rodzaj przedmiotu: obowiązkowy w ramach treści kierunkowych, moduł kierunkowy ogólny Rodzaj zajęć: wykład, ćwiczenia I KARTA

Bardziej szczegółowo

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE Nazwa przedmiotu: SYSTEMY KOMUNIKACJI MIĘDZYKOMPUTEROWEJ Kierunek: Mechatronika Rodzaj przedmiotu: obowiązkowy Rodzaj zajęć: wykład, laboratorium I KARTA PRZEDMIOTU CEL PRZEDMIOTU PRZEWODNIK PO PRZEDMIOCIE

Bardziej szczegółowo

Kryptografia na procesorach wielordzeniowych

Kryptografia na procesorach wielordzeniowych Kryptografia na procesorach wielordzeniowych Andrzej Chmielowiec andrzej.chmielowiec@cmmsigma.eu Centrum Modelowania Matematycznego Sigma Kryptografia na procesorach wielordzeniowych p. 1 Plan prezentacji

Bardziej szczegółowo

Wykorzystanie standardu JTAG do programowania i debugowania układów logicznych

Wykorzystanie standardu JTAG do programowania i debugowania układów logicznych Politechnika Śląska w Gliwicach Wydział Automatyki Elektroniki i Informatyki Wykorzystanie standardu JTAG do programowania i debugowania układów logicznych Promotor dr inż. Jacek Loska Wojciech Klimeczko

Bardziej szczegółowo

Struktura i funkcjonowanie komputera pamięć komputerowa, hierarchia pamięci pamięć podręczna. System operacyjny. Zarządzanie procesami

Struktura i funkcjonowanie komputera pamięć komputerowa, hierarchia pamięci pamięć podręczna. System operacyjny. Zarządzanie procesami Rok akademicki 2015/2016, Wykład nr 6 2/21 Plan wykładu nr 6 Informatyka 1 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr II, studia niestacjonarne I stopnia Rok akademicki 2015/2016

Bardziej szczegółowo

Podstawy Informatyki Systemy sterowane przepływem argumentów

Podstawy Informatyki Systemy sterowane przepływem argumentów Podstawy Informatyki alina.momot@polsl.pl http://zti.polsl.pl/amomot/pi Plan wykładu 1 Komputer i jego architektura Taksonomia Flynna 2 Komputer i jego architektura Taksonomia Flynna Komputer Komputer

Bardziej szczegółowo

JĘZYKI PROGRAMOWANIA STEROWNIKÓW

JĘZYKI PROGRAMOWANIA STEROWNIKÓW JĘZYKI PROGRAMOWANIA STEROWNIKÓW dr inż. Wiesław Madej Wstęp Języki programowania sterowników 15 h wykład 15 h dwiczenia Konsultacje: - pokój 325A - środa 11 14 - piątek 11-14 Literatura Tadeusz Legierski,

Bardziej szczegółowo

Szczegółowe efekty kształcenia studiów I stopnia na kierunku Teleinformatyka na Wydziale Elektroniki i Telekomunikacji Politechniki Poznańskiej

Szczegółowe efekty kształcenia studiów I stopnia na kierunku Teleinformatyka na Wydziale Elektroniki i Telekomunikacji Politechniki Poznańskiej Szczegółowe efekty kształcenia studiów I stopnia na kierunku Teleinformatyka na Wydziale Elektroniki i Telekomunikacji Politechniki Poznańskiej Zastosowane oznaczenia: K (przed podkreślnikiem) kierunkowe

Bardziej szczegółowo

Systemy operacyjne i sieci komputerowe Szymon Wilk Superkomputery 1

Systemy operacyjne i sieci komputerowe Szymon Wilk Superkomputery 1 i sieci komputerowe Szymon Wilk Superkomputery 1 1. Superkomputery to komputery o bardzo dużej mocy obliczeniowej. Przeznaczone są do symulacji zjawisk fizycznych prowadzonych głównie w instytucjach badawczych:

Bardziej szczegółowo

Projektowanie. Projektowanie mikroprocesorów

Projektowanie. Projektowanie mikroprocesorów WYKŁAD Projektowanie mikroprocesorów Projektowanie układ adów w cyfrowych - podsumowanie Algebra Boole a Bramki logiczne i przerzutniki Automat skończony System binarny i reprezentacja danych Synteza logiczna

Bardziej szczegółowo

USŁUGI DODATKOWE W SIECIACH BEZPRZEWODOWYCH VoIP oraz multimedia w sieciach WiFi problemy

USŁUGI DODATKOWE W SIECIACH BEZPRZEWODOWYCH VoIP oraz multimedia w sieciach WiFi problemy Seminarium poświęcone sieci bezprzewodowej w Politechnice Krakowskiej - projekt Eduroam USŁUGI DODATKOWE W SIECIACH BEZPRZEWODOWYCH VoIP oraz multimedia w sieciach WiFi problemy Wprowadzenie Problematyka

Bardziej szczegółowo

Podsumowanie wyników ankiety

Podsumowanie wyników ankiety SPRAWOZDANIE Kierunkowego Zespołu ds. Programów Kształcenia dla kierunku Informatyka dotyczące ankiet samooceny osiągnięcia przez absolwentów kierunkowych efektów kształcenia po ukończeniu studiów w roku

Bardziej szczegółowo

Sprawdzian test egzaminacyjny 2 GRUPA I

Sprawdzian test egzaminacyjny 2 GRUPA I ... nazwisko i imię ucznia Sprawdzian test egzaminacyjny 2 GRUPA I 1. Na rys. 1 procesor oznaczony jest numerem A. 2 B. 3 C. 5 D. 8 2. Na rys. 1 karta rozszerzeń oznaczona jest numerem A. 1 B. 4 C. 6 D.

Bardziej szczegółowo

Programowanie niskopoziomowe. dr inż. Paweł Pełczyński ppelczynski@swspiz.pl

Programowanie niskopoziomowe. dr inż. Paweł Pełczyński ppelczynski@swspiz.pl Programowanie niskopoziomowe dr inż. Paweł Pełczyński ppelczynski@swspiz.pl 1 Literatura Randall Hyde: Asembler. Sztuka programowania, Helion, 2004. Eugeniusz Wróbel: Praktyczny kurs asemblera, Helion,

Bardziej szczegółowo

Przetworniki cyfrowo analogowe oraz analogowo - cyfrowe

Przetworniki cyfrowo analogowe oraz analogowo - cyfrowe Przetworniki cyfrowo analogowe oraz analogowo - cyfrowe Przetworniki cyfrowo / analogowe W cyfrowych systemach pomiarowych często zachodzi konieczność zmiany sygnału cyfrowego na analogowy, np. w celu

Bardziej szczegółowo

Wstęp do Techniki Cyfrowej... Układy kombinacyjne

Wstęp do Techniki Cyfrowej... Układy kombinacyjne Wstęp do Techniki Cyfrowej... Układy kombinacyjne Przypomnienie Stan wejść układu kombinacyjnego jednoznacznie określa stan wyjść. Poszczególne wyjścia określane są przez funkcje boolowskie zmiennych wejściowych.

Bardziej szczegółowo

Teraz bajty. Informatyka dla szkół ponadpodstawowych. Zakres rozszerzony. Część 1.

Teraz bajty. Informatyka dla szkół ponadpodstawowych. Zakres rozszerzony. Część 1. Teraz bajty. Informatyka dla szkół ponadpodstawowych. Zakres rozszerzony. Część 1. Grażyna Koba MIGRA 2019 Spis treści (propozycja na 2*32 = 64 godziny lekcyjne) Moduł A. Wokół komputera i sieci komputerowych

Bardziej szczegółowo

Szybkie prototypowanie w projektowaniu mechatronicznym

Szybkie prototypowanie w projektowaniu mechatronicznym Szybkie prototypowanie w projektowaniu mechatronicznym Systemy wbudowane (Embedded Systems) Systemy wbudowane (ang. Embedded Systems) są to dedykowane architektury komputerowe, które są integralną częścią

Bardziej szczegółowo

Układy kombinacyjne. cz.2

Układy kombinacyjne. cz.2 Układy kombinacyjne cz.2 Układy kombinacyjne 2/26 Kombinacyjne bloki funkcjonalne Kombinacyjne bloki funkcjonalne - dekodery 3/26 Dekodery Są to układy zamieniające wybrany kod binarny (najczęściej NB)

Bardziej szczegółowo

Elektrotechnika II Stopień (I stopień / II stopień) Ogólno akademicki (ogólno akademicki / praktyczny)

Elektrotechnika II Stopień (I stopień / II stopień) Ogólno akademicki (ogólno akademicki / praktyczny) Załącznik nr 7 do Zarządzenia Rektora nr 10/12 z dnia 21 lutego 2012r. KARTA MODUŁU / KARTA PRZEDMIOTU Kod modułu Nazwa modułu Nazwa modułu w języku angielskim Obowiązuje od roku akademickiego 2012/2013

Bardziej szczegółowo

DLA SEKTORA INFORMATYCZNEGO W POLSCE

DLA SEKTORA INFORMATYCZNEGO W POLSCE DLA SEKTORA INFORMATYCZNEGO W POLSCE SRK IT obejmuje kompetencje najważniejsze i specyficzne dla samego IT są: programowanie i zarządzanie systemami informatycznymi. Z rozwiązań IT korzysta się w każdej

Bardziej szczegółowo

Architektura komputerów

Architektura komputerów Architektura komputerów Tydzień 11 Wejście - wyjście Urządzenia zewnętrzne Wyjściowe monitor drukarka Wejściowe klawiatura, mysz dyski, skanery Komunikacyjne karta sieciowa, modem Urządzenie zewnętrzne

Bardziej szczegółowo

Architektura komputerów

Architektura komputerów Architektura komputerów Wykład 7 Jan Kazimirski 1 Pamięć podręczna 2 Pamięć komputera - charakterystyka Położenie Procesor rejestry, pamięć podręczna Pamięć wewnętrzna pamięć podręczna, główna Pamięć zewnętrzna

Bardziej szczegółowo

Skalowalność obliczeń równoległych. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1

Skalowalność obliczeń równoległych. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1 Skalowalność obliczeń równoległych Krzysztof Banaś Obliczenia Wysokiej Wydajności 1 Skalowalność Przy rozważaniu wydajności przetwarzania (obliczeń, komunikacji itp.) często pojawia się pojęcie skalowalności

Bardziej szczegółowo

Spis treści 1. Wstęp 2. Ćwiczenia laboratoryjne LPM

Spis treści 1. Wstęp 2. Ćwiczenia laboratoryjne LPM Spis treści 1. Wstęp... 9 2. Ćwiczenia laboratoryjne... 12 2.1. Środowisko projektowania Quartus II dla układów FPGA Altera... 12 2.1.1. Cel ćwiczenia... 12 2.1.2. Wprowadzenie... 12 2.1.3. Przebieg ćwiczenia...

Bardziej szczegółowo

Budowa Mikrokomputera

Budowa Mikrokomputera Budowa Mikrokomputera Wykład z Podstaw Informatyki dla I roku BO Piotr Mika Podstawowe elementy komputera Procesor Pamięć Magistrala (2/16) Płyta główna (ang. mainboard, motherboard) płyta drukowana komputera,

Bardziej szczegółowo

Sprzęt komputerowy 2. Autor prezentacji: 1 prof. dr hab. Maria Hilczer

Sprzęt komputerowy 2. Autor prezentacji: 1 prof. dr hab. Maria Hilczer Sprzęt komputerowy 2 Autor prezentacji: 1 prof. dr hab. Maria Hilczer Budowa komputera Magistrala Procesor Pamięć Układy I/O 2 Procesor to CPU (Central Processing Unit) centralny układ elektroniczny realizujący

Bardziej szczegółowo

Szczegółowy opis przedmiotu zamówienia:

Szczegółowy opis przedmiotu zamówienia: Załącznik nr 1 do SIWZ Szczegółowy opis przedmiotu zamówienia: I. Opracowanie polityki i procedur bezpieczeństwa danych medycznych. Zamawiający oczekuje opracowania Systemu zarządzania bezpieczeństwem

Bardziej szczegółowo

SERWERY KOMUNIKACYJNE ALCATEL-LUCENT

SERWERY KOMUNIKACYJNE ALCATEL-LUCENT SERWERY KOMUNIKACYJNE ALCATEL-LUCENT OmniPCX Enterprise Serwer komunikacyjny Alcatel-Lucent OmniPCX Enterprise Communication Server (CS) to serwer komunikacyjny dostępny w formie oprogramowania na różne

Bardziej szczegółowo

Układy arytmetyczne. Joanna Ledzińska III rok EiT AGH 2011

Układy arytmetyczne. Joanna Ledzińska III rok EiT AGH 2011 Układy arytmetyczne Joanna Ledzińska III rok EiT AGH 2011 Plan prezentacji Metody zapisu liczb ze znakiem Układy arytmetyczne: Układy dodające Półsumator Pełny sumator Półsubtraktor Pełny subtraktor Układy

Bardziej szczegółowo

SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX)

SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX) (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX) W informatyce występują ściśle obok siebie dwa pojęcia: sprzęt (ang. hardware) i oprogramowanie

Bardziej szczegółowo

Architektura komputerów

Architektura komputerów Architektura komputerów Wykład 12 Jan Kazimirski 1 Magistrale systemowe 2 Magistrale Magistrala medium łączące dwa lub więcej urządzeń Sygnał przesyłany magistralą może być odbierany przez wiele urządzeń

Bardziej szczegółowo

Zadania badawcze prowadzone przez Zakład Technik Programowania:

Zadania badawcze prowadzone przez Zakład Technik Programowania: Zadania badawcze prowadzone przez Zakład Technik Programowania: - Opracowanie metod zrównoleglania programów sekwencyjnych o rozszerzonym zakresie stosowalności. - Opracowanie algorytmów obliczenia tranzytywnego

Bardziej szczegółowo

Programowalne scalone układy cyfrowe PLD, CPLD oraz FPGA

Programowalne scalone układy cyfrowe PLD, CPLD oraz FPGA Programowalne scalone układy cyfrowe PLD, CPLD oraz FPGA Ogromną rolę w technice cyfrowej spełniają układy programowalne, często określane nazwą programowalnych modułów logicznych lub krótko hasłem FPLD

Bardziej szczegółowo

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O Budowa komputera Magistrala Procesor Pamięć Układy I/O 1 Procesor to CPU (Central Processing Unit) centralny układ elektroniczny realizujący przetwarzanie informacji Zmiana stanu tranzystorów wewnątrz

Bardziej szczegółowo

Odniesienie do efektów kształcenia dla obszaru nauk EFEKTY KSZTAŁCENIA Symbol

Odniesienie do efektów kształcenia dla obszaru nauk EFEKTY KSZTAŁCENIA Symbol KIERUNKOWE EFEKTY KSZTAŁCENIA Wydział Informatyki i Zarządzania Kierunek studiów INFORMATYKA (INF) Stopień studiów - pierwszy Profil studiów - ogólnoakademicki Projekt v1.0 z 18.02.2015 Odniesienie do

Bardziej szczegółowo

dokument DOK 02-05-12 wersja 1.0 www.arskam.com

dokument DOK 02-05-12 wersja 1.0 www.arskam.com ARS3-RA v.1.0 mikro kod sterownika 8 Linii I/O ze zdalną transmisją kanałem radiowym lub poprzez port UART. Kod przeznaczony dla sprzętu opartego o projekt referencyjny DOK 01-05-12. Opis programowania

Bardziej szczegółowo