Akceleracja obliczeń metodami sprzętowymi



Podobne dokumenty
Tarnów. nowoczesne technologie. Tarnów - 27 marca 2007 r.

Akceleracja obliczeń metodami sprzętowymi w ACK CYFRONET AGH. Prof. Kazimierz Wiatr

Programowalne Układy Logiczne Konfiguracja/Rekonfiguracja

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

Architektura Systemów Komputerowych. Rozwój architektury komputerów klasy PC

System mikroprocesorowy i peryferia. Dariusz Chaberski

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

Układ sterowania, magistrale i organizacja pamięci. Dariusz Chaberski

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

Komputer IBM PC niezależnie od modelu składa się z: Jednostki centralnej czyli właściwego komputera Monitora Klawiatury

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

Dynamiczna lista rozkazów procesora implementowanego w układzie FPGA

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

Architektura mikroprocesorów TEO 2009/2010

Architektura komputera. Cezary Bolek. Uniwersytet Łódzki. Wydział Zarządzania. Katedra Informatyki. System komputerowy

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

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

Budowa i zasada działania komputera. dr Artur Bartoszewski

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

Wykład Mikroprocesory i kontrolery

Procesory. Schemat budowy procesora

Organizacja typowego mikroprocesora

Magistrala systemowa (System Bus)

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne

Architektura komputerów

Systemy operacyjne i sieci komputerowe Szymon Wilk Superkomputery 1

Wstęp do informatyki. System komputerowy. Magistrala systemowa. Architektura komputera. Cezary Bolek

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

Systemy na Chipie. Robert Czerwiński

Architektura komputera

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

Architektura komputerów

FPGA, CPLD, SPLD. Synteza systemów reprogramowalnych 1/27. dr inż. Mariusz Kapruziak pok. 107, tel

Kierunek Inżynieria Akustyczna, V rok Programowalne Układy Cyfrowe. Platforma sprzętowa. Rajda & Kasperek 2014 Katedra Elektroniki AGH 1

Architektura komputerów

Temat: Pamięci. Programowalne struktury logiczne.

Architektura systemu komputerowego

RDZEŃ x86 x86 rodzina architektur (modeli programowych) procesorów firmy Intel, należących do kategorii CISC, stosowana w komputerach PC,

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

6. Algorytmy ochrony przed zagłodzeniem dla systemów Linux i Windows NT.

WPROWADZENIE Mikrosterownik mikrokontrolery

Architektura systemów komputerowych

REALIZACJA KONTROLERÓW

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

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

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

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

LEKCJA TEMAT: Zasada działania komputera.

Zakład Techniki Cyfrowej. Tematy prac dyplomowych na rok akademicki

Zygmunt Wróbel i Robert Koprowski. Praktyka przetwarzania obrazów w programie Matlab

Programowanie Układów Logicznych kod kursu: ETD6203 W dr inż. Daniel Kopiec. Pamięć w układach programowalnych

Budowa Mikrokomputera

Zaliczenie Termin zaliczenia: Sala IE 415 Termin poprawkowy: > (informacja na stronie:

Wydajność systemów a organizacja pamięci. Krzysztof Banaś, Obliczenia wysokiej wydajności. 1

Współczesne techniki informacyjne

Technika mikroprocesorowa. Linia rozwojowa procesorów firmy Intel w latach

MIKROKONTROLERY I MIKROPROCESORY

Wykład 4. Przegląd mikrokontrolerów 16-bit: - PIC24 - dspic - MSP430

Architektura systemów komputerowych. dr Artur Bartoszewski

Budowa komputera Komputer computer computare

LEKCJA TEMAT: Współczesne procesory.

Adam Korzeniewski - p. 732 dr inż. Grzegorz Szwoch - p. 732 dr inż.

Architektura komputerów egzamin końcowy

ARCHITEKTURA PROCESORA,

Elektronika i techniki mikroprocesorowe

Technika mikroprocesorowa. W. Daca, Politechnika Szczecińska, Wydział Elektryczny, 2007/08

Procesory firmy ARM i MIPS

Przykładowe pytania DSP 1

Projektowanie. Projektowanie mikroprocesorów

Programowanie Niskopoziomowe

Systemy wbudowane Mikrokontrolery

Który z podzespołów komputera przy wyłączonym zasilaniu przechowuje program rozpoczynający ładowanie systemu operacyjnego? A. CPU B. RAM C. ROM D.

Projektowanie układów FPGA. Żródło*6+.

Systemy wbudowane. Układy programowalne

Podstawy techniki cyfrowej i mikroprocesorowej - opis przedmiotu

Architektura komputerów

PAMIĘCI SYNCHRONICZNE

Mikroprocesory rodziny INTEL 80x86

Procesor ma architekturę rejestrową L/S. Wskaż rozkazy spoza listy tego procesora. bgt Rx, Ry, offset nand Rx, Ry, A add Rx, #1, Rz store Rx, [Rz]

Wydajność obliczeń a architektura procesorów. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1

Wykład Mikrokontrolery i mikrosystemy Cele wykładu:

Podstawy Techniki Mikroprocesorowej

Pośredniczy we współpracy pomiędzy procesorem a urządzeniem we/wy. W szczególności do jego zadań należy:

Układy logiczne układy cyfrowe

Architektura komputerów

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

Architektura komputerów

Bajt (Byte) - najmniejsza adresowalna jednostka informacji pamięci komputerowej, z bitów. Oznaczana jest literą B.

Zasada działania pamięci RAM Pamięć operacyjna (robocza) komputera - zwana pamięcią RAM (ang. Random Access Memory - pamięć o swobodnym dostępie)

Wykład 4. Interfejsy USB, FireWire

Wyjścia analogowe w sterownikach, regulatorach

Wykład 2. Mikrokontrolery z rdzeniami ARM

Architektury komputerów Architektury i wydajność. Tomasz Dziubich

16. Taksonomia Flynn'a.

Architektura Systemów Komputerowych. Bezpośredni dostęp do pamięci Realizacja zależności czasowych

Architektura potokowa RISC

Logiczny model komputera i działanie procesora. Część 1.

ZL6PLD zestaw uruchomieniowy dla układów FPGA z rodziny Spartan 3 firmy Xilinx

System czasu rzeczywistego

Transkrypt:

Akceleracja obliczeń metodami sprzętowymi Kazimierz Wiatr Akademickie Centrum Komputerowe CYFRONET AGH email: k.wiatr@cyfronet.krakow.pl

Dzisiejsze wymagania wobec komputerów szybkość!!!! cena wielkość niezawodność

Szybkość komputerów wczoraj dziś jutro

Metody zwiększania szybkości pracy komputerów szybszy zegar optymalizacja kodu wiele procesorów architektura wewnętrzna sprawne otoczenie procesora

Rodzaje komputerów komputery osobiste superkomuptery architektury specjalizowane

Sprzętowe metody akceleracji obliczeń Akceleracja obliczeń Systemy wizyjne Wpływ architektury systemu na szybkość obliczeń Specjalizowane procesory sprzętowe Implementacja w układach FPGA Parametryzacja implementacji Rekonfigurowalne systemy obliczeniowe Dedykowane użytkownikowi platformy CCM Projektowanie Hardware/Software CoDesign Wzrost potrzeb obliczeniowych

1. Akceleracja obliczeń g zbyt długie czasy obliczeń w procesorach GPP i DSP g poszukiwanie przyspieszenia-akceleracji obliczeń g ograniczenie rodzaju obliczeń i ich aplikacji g poszukiwanie nowych jakościowo metod szybkiej realizacji algorytmów S = t sys_klasycznego /t sys_specjalizowanego

Akceleracja obliczeń w systemach wieloprocesorowych Dla systemów wieloprocesorowych (Prawo Amdahl a) S = (s + p) / (s + p/n) gdzie: s - czas algorytmu w części szeregowej programu p - czas algorytmu w części równolegległej

Akceleracja obliczeń w systemie wieloprocesorowym 16 14 12 10 8 6 4 2 S (n) s = 0% s = 5% s = 10% s = 15% 0 liczba procesorów (n) 0 4 8 12 16

Potrzeby obliczeniowe (2004) systemy on-line systemy off-line np. obliczenia symulacyjne DNA (Itanium2): 20 atomów - 3 godziny 200 atomów - 34 lata np. medycyna z interakcją itp.

Sprzętowa akceleracja obliczeń wielkie ilości przetwarzanych danych bardzo szybkie systemy obliczeniowe algorytmy zdominowane przez dane algorytmy zdominowane przez instrukcje

Kierunki badawcze poszukiwanie przyspieszenia obliczeń ograniczenie rodzaju obliczeń i ich aplikacji poszukiwanie nowych jakościowo metod szybkiej realizacji algorytmów poszukiwania w 2 kierunkach: specjalizowane elementy obliczeniowe - procesory dedykowane połączenia tych elementów - architektura prace badawcze oprzeć na realnych możliwościach implementacji w dostępnych technologiach

2. Systemy wizyjne czasu rzeczywistego a. bardzo szybkie, b. bardzo dużo danych A N hor B N hor N hact N hact N ver Nvact N ver Nvact f = K N t hor ver = 14, 75 MHz

Poziomy przetwarzania i analizy obrazów w czasie rzeczywistym parametry I II III algorytmy sekwencje operacji OUT sterowanie obiektem

Operacje wstępnego przetwarzania obrazów Operacje jednopunktowe: operacja LUT binaryzacja operacje punktowe na dwu obrazach obliczanie histogramu Filtracje kontekstowe: filtracja medianowa filtracja logiczna operacja splotu (konwolucji) Operacje morfologiczne: erozja i dylatacja otwarcie i zamknięcie inne operacje morfologiczne

Ramię robota - obraz źródłowy

Efekt działania operacji look-up-table

Obraz po operacji binaryzacji

Efekt detekcji krawędzi

3. Architektura systemu a szybkość obliczeń t = t + t I obl _ d tr _ d gdzie: t obl_d - czas związany z obliczeniami t tr_d - czas związany z transmisją danych

M a b t = t + t I obl _ d ijk tr_ d i = 1 j = 1 k = 1 i = 1 j = 1 l = 1 gdzie: M - liczba pikseli (np. 512x512) M a c a - liczba operacji wstępnego przetwarzania b - liczba operacji arytmetycznych związanych z obliczaniem nowej wartości piksela dla danej operacji c - liczba transmisji danych (argumentów i wyniku) związanych z daną operacją dla jednego piksela ijl

M a b M a c t'= t + t + t + t I obl_ d tr_ d tr_ roz dekroz _ i= 1 j= 1 k= 1 i= 1 j= 1 l= 1 i= 1 j= 1 m= 1 i= 1 j= 1 n= 1 M a ijk ijl ijm ijn d M a e gdzie: d - liczba transmisji (pobieranie kodów rozkazów i argumentów nie będących danymi wizyjnymi (np. adresy skoków) dla danej operacji e - liczba rozkazów podlegających dekodowaniu dla danej operacji wstępnego przetwarzania

Liczba przesłań operandów w operacjach przetwarzania obrazów OPERACJA 1 PIKSEL 1 OBRAZ 1 SEKUNDA LUT 1 262 144 6 553 600 MEDIANA-5 5 1 510 720 37 768 000 KONWOLUCJA 3x3 9 4 718 592 117 964 800

Liczba operacji w przetwarzaniu obrazów (w czasie 1 s) OPERACJA MNOŻENIA DODAWANIA PRZESŁANIA PORÓWNANIA LUT 0 6 553 600 13 107 200 MEDIANA-5 0 65 536 000 44 321 600 MEDIANA-9 0 294 912 000 124 518 400 KONWOLUCJA 3x3 117 964 800 4 718 592 124 518 400

Architektura procesora specjalizowanego pozbawiona przesyłania i dekodowania rozkazów FPGA JS SR SD JP MP

Architektura systemu z procesorami specjalizowanymi FPGA FPGA FPGA JS JS JS SR SR SR A/C Pamięć video JP JP... JP Pamięć video wy SD SD SD SD SD BUS

Architektura MISD specjalizowanych procesorów sprzętowych FPGA FPGA FPGA JS JS... JS SR SR SR A/C SD SD SD JP JP JP SD PAMIĘĆ VIDEO SD BUS

Czas realizacji obliczeń w architekturze MISD procesorów sprzętowych t ''''= I t MISD obl _ dj = j a 1 gdzie: t obl_d - czas związany z obliczeniami a - liczba operacji wstępnego przetwarzania

Schemat blokowy architektury potokowej DePiAr L Sygnały Przerwan Procesor Dane Video WEJŚCIE P P P WYJŚCIE Sygnały Sterujące Magistrala Danych [8 bitów] Magistrala Adresowa [13 bitów] Magistrala VME

Moduł z architekturą potokową DePiAr

Architektura potokowa DePiAr Zalety: minimalizacja czasu transmisji minimalizacja czasu obliczeń przez dedykowane procesory sprzętowe procesory są autonomiczne: elastyczna zmiana kolejności operacji niezależne projektowanie procesorów implementacja w dowolnym otoczeniu sprzętowym dostęp do procesorów z zewnętrznej magistrali: dynamiczna zmiana parametrów przetwarzania dynamiczna rekonfiguracja kolejności operacji Wymagania: kolejnoliniowy sygnał wizyjny szybka transmisja na wyjściu potoku konieczność zachowania wymogów czasowych: jednakowe opóźnienia dla danych i sygnałów sterujących opóźnienie wielokrotnością czasu trwania piksela

4. Specjalizowane procesory sprzętowe Schemat blokowy procesora logicznego TPRAM FPGA VME SAM 1 RAM Sterowanie Dane Video WE SAM 2 8 8 BUF 1 BUF 2 8 8 ALU 8 BUF 3 Dane Video WY Sterowanie WE DEL 1 DEL 2 DEL 3 Sterowanie WY

Procesor konwolucji Dane Video WE 8 W11 W12 8 8 W13 FIFO 512x8 8 W21 W22 W23 FIFO 512x8 8 W31 W32 W33 FPGA SUMOWANIE & NORMALIZACJA 8 Dane Video WY

Procesor morfologiczny DANE VIDEO WE Rej.1x1 Rej.1x1 Rej.1x1 R - I FPGA FIFO 512x1 Rej.1x1 Rej.1x1 Rej.1x1 STEROWANIE FIFO 512x1 Rej.1x1 Rej.1x1 Rej.1x1 Comp. Comp. Comp. C - I C - II Comp. Comp. Comp. Comp. Comp. Comp. Comp. Comp. Comp. AND DANE VIDEO WY Comp. Comp. Comp. Comp. Comp. Comp. Rej.1x1 Rej.1x1 Rej.1x1 Rej.1x1 Rej.1x1 Rej.1x1 Rej.1x1 Rej.1x1 Rej.1x1 Rej.1x1 Rej.1x1 Rej.1x1 Rej.1x1 Rej.1x1 Rej.1x1 R - II Rej.1x1 Rej.1x1 Rej.1x1 R - III BUS

Procesor medianowy DANE VIDEO WE 8 Rej.1x8 Rej.1x8 8 8 Rej.1x8 FIFO 512x8 8 Rej.1x8 Rej.1x8 Rej.1x8 FIFO 512x8 8 Rej.1x8 Rej.1x8 Rej.1x8 DANE VIDEO WY 8 MUX KOMPARATORY WE_MEM FPGA WY_MEM ROM / RAM

Opóźnienia w procesorze potokowym Dane_Video_WE Rejestr we1 Dane_Video_WY t1p Procesor Rejestr Dane_Video_FIFO Rejestr potokowy wy t3p we2 t1p t2p Sterowanie_WE Opóźnienie Opóźnienie Opóźnienie t1s t2s t3s Sterowanie_WY

Czasy realizacji operacji przetwarzania obrazów przez procesory specjalizowane OPERACJA OPÓŹNIENIE LUT - ROM 66 ns LUT - RAM 132 ns HISTOGRAM 66 ns ODEJMOWANIE 132 ns MEDIANA 5-PUNKTÓW 68 µs MEDIANA 9-PUNKTÓW 68 µs KONWOLUCJA 3x3 102 µs DWUKIERUNKOWY GRADIENT SOBELA 102 µs

6 t '''' I = tobl dj = ns+ ns+ s + s + s + ns = s MISD _ 66 66 68 μ 102 μ 102 μ 132 272, 3μ j= 1 Czasy realizacji obliczeń przez system przetwarzania obrazów Przykład: algorytm wstępnego przetwarzania danych wizyjnych wymaga zastosowania procesorów potokowych: look-up-table liczenia histogramu medianowego procesora konwolucji dwukierunkowego gradientu Sobela odejmowania dwu obrazów

Zalety opracowanej architektury DePiAr procesorów specjalizowanych Znacznie przyspiesza obliczenia wstępnego przetwarzania danych wizyjnych (akceleracja rzędu od 10 3 do 10 6 ) LUT, histogram - czas 66 ns zamiast 180-300 ms konwolucja 3x3 - czas 102 µs zamiast 51-2200 ms Pozwala na realizację sprzężeń z innymi etapami przetwarzania obrazów i zmianę parametrów przetwarzania Umożliwia zmianę kolejności realizowanych operacji implementowanych w uniwersalnym procesorze rekonfigurowalnym

Czasy realizacji operacji wizyjnych: DePiAr, DSP i GPP System Histogram Odejmowanie Konwolucja 3 3 Mediana LUT DePiAr 15 MHz 66,0 ns 132,0 ns 102,0 μs 68,0 μs 66,0 ns 198,0 ns 198,0 ns TMS320C80 4,3 ms 5,4 ms 19,4 ms 10,7 ms Dedykowany moduł Pentium II 466 MHz 4,0 ms 2,7 ms 6,8 ms 3,0 ms Akceleracja 60 000 20 000 34 000 54 000 45 000

5. Implementacja w układach FPGA

Struktura bloku CLB w układach XC4000

Połączenia w układach FPGA 3 5 2 8 1 4

Układy programowalne PLD RODZAJ FIRMA BRAMKI CLB I/O REJESTRY KONFIG. Max5000 Altera 3.800 192 64 192 EPROM Max7000 Altera 5.000 256 160 256 EEPROM Flex8000 Altera 24.000 1296 204 1500 SRAM ACT2 Actel 20.000 140 998 OTP Mach400 AMD 10.000 256 146 384 ISP(EEPROM) ATV5100 Atmel 5.000 60 128 EPROM ATV6010 Atmel 10.000 6400 204 6400 EEPROM XC4000 Xilinx 62.000 2304 384 5376 SRAM XC8100 Xilinx 45.000 6144 320 3072 OTP XC7300 Xilinx 144 156 276 EPROM XC9500 Xilinx 12.800 576 232 576 ISP(EEPROM)

6. Parametryzacja implementacji w układach FPGA parametryzacja szybkości pracy parametryzacja użytych zasobów układu FPGA automatyczna generacja kodu VHDL optymalizacja implementacji struktur obliczeniowych DA

Dobór struktury elementów obliczeniowych układy mnożące bezmnożne MM układy mnożące LM z pamięcią LUT układy ze stałym współczynnikiem KCM układy ze zmiennym współczynnikiem VCM układy z dynamiczną rekonfiguracją DKCM

DKCM LM + AND wejście 8 4 RAM B Dane wy. 12 4 4 4 Układ dodający 12 16 Adres Pr. Mux 2 :1 Mux 2 :1 4 4 Adres RAM A 8 12 Dane Pr. Write Enable 4 4 RAM Program ming Unit (RPU) Współczynnik Programuj Programowanie 256 16 DP MSBs 5 7 1 16 17 2 1 AND 1 Adder 17 12 24 7 7 3 256 16 DP 16 21 14 2 16 1 DP 7 2 LSBs 1 2 1 AND 1 wyjście

ns 18 16 14 12 10 8 6 4 2 0 MM MM Pipe LM LM Pipe CoreGen CoreGen Pipe Okres zegara dla MM, LM i Core Generator (Pipe wersja z potokowością) wynik implementacji dla układu XC4000E-1, 8-bitowej danej bez znaku oraz losowo wybranych współczynników mnożenia: 41, 108, 132, 190, 225:

7. Rekonfigurowalne systemy obliczeniowe Licznik - synchronizacja Korekcja błędów Licznik - synchronizacja Korekcja błędów Układ transmisyjny Układ transmisyjny Filtr A Weryfikacja CRC Filtr B Weryfikacja CRC Przed rekonfiguracją Po rekonfiguracji

Rekonfiguracja częściowa Logika Logika Nowa częściowa konfiguracja Pamięć konfiguracyjna przed rekonfiguracją Pamięć konfiguracyjna po rekonfiguracji

Konflikt przy rekonfiguracji (rozwiązania przez relokację) Aktualna konfiguracja Przychodząca konfiguracja Konflikty Rekonfiguracja

Defragmentacja w rekonfiguracji układów FPGA Przychodząca konfiguracja Konfiguracja 4 Konfiguracja 1 Konfiguracja 2 Konfiguracja 1 Konfiguracja 2 Konfiguracja 3 Konfiguracja 1 Konfiguracja 2 Konfiguracja 3 Konfiguracja 3 Konfiguracja 4 Przed defragmentacją Po defragmentacji Po rekonfiguracji

System z wielokrotnym wykorzystaniem do obliczeń jednego układu FPGA FPGA Linia transmisyjna FPGA 010110... 010110... A C C A Kamera Przyjęcie danych Kompresja Wstępne przetworzenie Modulacja Pamięć konfiguracyjna 1 2 3 4

Parametry rekonfiguracji układów FPGA Seria układu Komórki CLB Bramki [ 1000] Czas rekonfig. Rekonfig. częściowa Flex6000 1 960 24 100 [ms] Flex8000 1 296 16 100 [ms] Flex10000 12 160 250 320 [ms] XC3000 484 7,5 10 [ms] XC4000 7 448 85 240 [ms] XC4000EX/XL 7 448 180 50 [ms] XC6200 16 384 100 0,2 [ms] Y Spartan 1 862 40 32 [ms] Virtex 27 648 1 124 0,1 [ms] Virtex II 122 880 10 000 1 [ms] Y AT6000 6 400 30 8 [ms] Y AT40K 2 304 50 5 [ms] Y QL4000 1 584 90 40 [ms] DY8000 6 272 105 200 [ms]

Systemy RTR i CTR systemy rekonfigurowane przed wykonaniem całości obliczeń CTR (ang. Compile Time Reconfigurable), systemy rekonfigurowane w trakcie obliczeń w celu wielokrotnego wykorzystania tego samego sprzętu dla realizacji różnych fragmentów realizowanego algorytmu RTR (ang. Run Time Reconfigurable).

Efektywność stosowania systemów CTR i RTR f = T T R O E E RTR CTR max 1 f

Struktura cztero-kontekstowego FPGA 1 Pamięć konfiguracyjna 2 3 4 Logika sprzętowa Aktywna konfiguracja

Struktura pamięci konfiguracyjnej w wielokontekstowym modelu FPGA I/O Biblioteka konfiguracji sprzętowych Poziomy pamięci konfiguracyjnej (konteksty)

8. Dedykowane użytkownikowi platformy obliczeniowe CCM Custom Computing Machines Elasty czność CISC RISC DSP CCM FPGA/CPLD Specjalizowane moduły ASIC Wydajność Wydajność a elastyczność układów obliczeniowych

Architektura karty procesorowej w systemie Splash2 SBus Poprzednia karta 36 M0 M1 M2 M3 M4 M5 M6 M7 M8 X1 X2 X3 X4 X5 X6 X7 X8 SIMD 36 X0 Matryca krzyżowa (crossbar switch) RBus 36 X16 X15 X14 X13 X12 X11 X10 X9 Następna karta 36 M16 M15 M14 M13 M12 M11 M10 M9

Implementacja detekcji obiektów i etykietowania Buforowanie danych Oznaczanie Scalanie Scalanie PE-0 PE-1 PE-2 PE-3 PE-4 PE-5 PE-6 PE-7 PE-8 Wejście wideo Wyjście wideo PE-16 Układy niewykorzystywane PE-15 PE-14 PE-13 PE-12 PE-11 PE-10 PE-9 Formatowanie danych wyjściowych

Implementacja transformacji Hough a Wejście wideo LUT i szeregowanie Hough P1 Hough P2 Hough P3 Hough P4 Hough P5 Hough P6 PE-0 PE-1 PE-2 PE-3 PE-4 PE-5 PE-6 PE-7 PE-8 Bufor wejścia Wyjście wideo PE-16 PE-15 PE-14 PE-13 PE-12 PE-11 PE-10 PE-9 Hough P14 Hough P13 Hough P12 Hough P11 Hough P10 Hough P9 Hough P8 Hough P7

Implementacja szybkiej transformaty Fouriera FFT Podwójne buforowanie Bank 1 lewy renumeracja Algorytm Butterfly PE-0 PE-1 PE-2 PE-3 PE-4 PE-5 PE-6 PE-7 PE-8 Wejście wideo Wyjście wideo PE-16 PE-15 PE-14 PE-13 PE-12 PE-11 PE-10 PE-9 Filtracja w dziedzinie częstotliwości Bank 2 prawy renumeracja

9. Projektowanie metodą Hardware/Software CoDesign Wczesne i późne rozdzielanie hardware u i software u w projektowaniu systemów a) b) Design Design Hardware Software Hardware Software

Hardware/Software CoDesign Kod źródłowy ( C ) Podział hardware/software Hardware (PLD, FPGA) Software (up, uc, DSP) Język opisu sprzętu (VHDL, Verilog) Język programowania (C, Asembler)

Wzrost pojemności układów programowalnych PLD RODZAJ FIRMA BRAMKI CLB I/O REJESTRY KONFIG. Classic Altera 900 48 48 48 EEPROM Max5000 Altera 3 800 192 64 192 EPROM Flex8000 Altera 24 000 1 296 204 1 500 SRAM APEX 20k Altera 526 000 8 320 376 SRAM APEX II Altera 5 250 000 67 200 1 060 SRAM ACT2 Actel 20 000 140 998 OTP A500k Actel 473 000 26 880 446 26 880 AX2000 Actel 2 000 000 21 504 684 21 504 ATV5100 Atmel 5 000 60 128 EPROM ATK40k Atmel 50 000 2 304 384 2 304 SRAM XC4000 Xilinx 250 000 8 464 448 18 400 SRAM XC9500 Xilinx 12 800 576 232 576 ISP(EEPROM) SPARTAN Xilinx 200 000 1 176 284 4 704 SRAM VIRTEX Xilinx 1 124 022 6 144 512 24 576 SRAM (2,5V) VIRTEX II Xilinx 10 000 000 15 360 1 108 61 440 SRAM (2,5V) VIRTEX Pro Xilinx 125 136 1 200 SRAM (1,5V)

Struktura układu FPGA serii Virtex-II Pro Pamięć blokowa BSRAM PowerPC Pamięć blokowa BSRAM Logika stała Logika rekonfigurowalna

Zasoby układów FPGA serii Virtex-II Pro Układ Rocket Power LC Slice Distr. RAM Mnożarki BSR DCM I/O I/O PC kb 18x18 kb XC2VP2 4 0 3 168 1 408 44 12 216 4 204 XC2VP4 4 1 6 768 3 008 94 28 504 4 348 XC2VP7 8 1 11 088 4 928 154 44 792 4 396 XC2VP20 8 2 20 880 9 280 290 88 1 584 8 564 XC2VP30 8 2 30 816 13 696 428 136 2 448 8 692 XC2VP40 12 2 43 632 19 392 606 192 3 456 8 804 XC2VP50 16 2 53 136 23 616 738 232 4 176 8 852 XC2VP70 20 2 74 448 33 088 1 034 328 5 904 8 996 XC2VP100 20 2 99 216 44 096 1 378 444 7 992 12 1164 XC2VP125 24 4 125 136 55 616 1 738 556 10 008 12 1200

Lokalizacja zasobów w układzie Virtex-II Pro

Przyłączenie wbudowanego procesora PowerPC do zasobów układu Virtex-II Pro

Blok łącz szeregowych Rocket I/O o przepustowości 3,125 Gb/s

Rekonfigurowalny moduł z układem Virtex-II Pro

Połączenie elementów IP poprzez interfejs IPIF z magistralą peryferyjną OPB i magistralą lokalną procesora PLB

Przyłączenie jednego z procesorów PowerPC 405 do magistrali lokalnej procesora PLB oraz układów peryferyjnych

Elementy IP - operacje przetwarzania obrazów Funkcja Biblioteka Firma Układ Użyte zasoby f [MHz] FFT/IFFT 1024 p-kty LogiCORE Xilinx XC2V500 62 % 100 FFT/IFFT 64 p-kty LogiCORE Xilinx XC2V500 38 % 100 FFT/IFFT 32 p-kty LogiCORE Xilinx XC2V500 29 % 110 FFT/IFFT 16 p-któw LogiCORE Xilinx XC2V500 37 % 130 2D DCT/IDCT AllianceCORE Barco-Silex XC2V250 77 % 133 2D FDCT AllianceCORE CAST XC2V500 42 % 83 2D DWT AllianceCORE CAST XC2V250 62 % 52 FIDCT AllianceCORE Telecom XCV200 77 % 78 MAC FIR LogiCORE Xilinx XCV250 16 % Dekoder Huffmana AllianceCORE CAST XC2V1000 22 % 25 Dekoder Reed Solomon AllianceCORE Telecom XC2V500 97 % 61 TMS32025 DSP core AllianceCORE CAST XC2V500 66 % 63

10. Potrzeby obliczeniowe systemów nieustannie rosną szybkość akwizycji 1000 do 5000 obrazów na sekundę rozdzielczość 128x128 i 256x256 napływ pikseli do 327,68 MHz (3,1 ns) standardowo 14,75 MHz (67,8 ns)

1280 x 1024 x 628 = 823 MHz (823 132 160 Hz) 10 bitów/piksel

Wzrost liczby tranzystorów w układach różnego typu 200 150 100 50 0 FPGA Intel PowerPC AMD 1994 1995 1996 1997 1998 1999 2000 Lata

Pojemności i szybkość układów FPGA wzrastają bardzo szybko

Moce obliczeniowe układów FPGA wielokrotnie przekraczają moce procesorów ogólnego przeznaczenia Miliardy operacji MAC/s 600 GMAC 2 GMAC 32 GMAC 8 MACs Proc. Virtex-E Virtex-II

Mikroprocesor z rekonfigurowalnym koprocesorem Główny procesor Cache instrukcji Cache danych Globalna jednostka kontrolna Rejestry danych Matryca rekonfigurowalna Koprocesor rekonfigurowalny Interfejs jednostki

Logika rekonfigurowana za pomocą internetu wykorzystywana do akceleracji obliczeń Host PAVE SIF WindRiver PAVE Payload Upgrade Portal Target PAVE API WindRiver TCP / IP Network PAVE C++ Application PAVE API VxWorks RTOS VxWorks Board Support Package (BSP) Microprocessor FPGA

Dziękuję za uwagę