Transcript Sprzętowa akceleracja obliczeń
Slide 1
Akceleracja obliczeń metodami sprzętowymi
Kazimierz Wiatr
Akademickie Centrum Komputerowe
CYFRONET AGH
email: [email protected]
Slide 2
Dzisiejsze wymagania wobec komputerów
szybkość !!!!
cena
wielkość
niezawodność
Slide 3
Szybkość komputerów
wczoraj
dziś
jutro
Slide 4
Metody zwiększania szybkości pracy komputerów
szybszy zegar
optymalizacja kodu
wiele procesorów
architektura wewnętrzna
sprawne otoczenie procesora
Slide 5
Rodzaje komputerów
komputery osobiste
superkomuptery
architektury specjalizowane
Slide 6
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
Slide 7
1. Akceleracja obliczeń
zbyt długie czasy obliczeń w procesorach GPP i DSP
poszukiwanie przyspieszenia-akceleracji obliczeń
ograniczenie rodzaju obliczeń i ich aplikacji
poszukiwanie nowych jakościowo metod
szybkiej realizacji algorytmów
S = tsys_klasycznego / tsys_specjalizowanego
Slide 8
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
Slide 9
Akceleracja obliczeń w systemie wieloprocesorowym
S (n)
16
s = 0%
14
12
10
s = 5%
8
s = 10%
6
s = 15%
4
2
liczb a pro ceso ró w (n)
0
0
4
8
12
16
Slide 10
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.
Slide 11
Sprzętowa akceleracja obliczeń
wielkie ilości przetwarzanych danych
bardzo szybkie systemy obliczeniowe
•
•
algorytmy zdominowane przez dane
algorytmy zdominowane przez instrukcje
Slide 12
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
Slide 13
2. Systemy wizyjne czasu rzeczywistego
a. bardzo szybkie, b. bardzo dużo danych
A
N
B
hor
N hact
N
ver
N
hor
N hact
N vact
N
f
K N ver
t hor
ver
N vact
14 , 75 MHz
Slide 14
Poziomy przetwarzania i analizy obrazów
w czasie rzeczywistym
parametry
II
I
III
algorytmy
sekwencje operacji
OUT
sterowanie obiektem
Slide 15
Operacje wstępnego przetwarzania obrazów
Operacje jednopunktowe:
Filtracje kontekstowe:
operacja LUT
binaryzacja
operacje punktowe na dwu obrazach
obliczanie histogramu
filtracja medianowa
filtracja logiczna
operacja splotu (konwolucji)
Operacje morfologiczne:
erozja i dylatacja
otwarcie i zamknięcie
inne operacje morfologiczne
Slide 16
Ramię robota - obraz źródłowy
Slide 17
Efekt działania operacji look-up-table
Slide 18
Obraz po operacji binaryzacji
Slide 19
Efekt detekcji krawędzi
Slide 20
3. Architektura systemu a szybkość obliczeń
tI
t obl _ d t tr_ d
gdzie:
tobl_d - czas związany z obliczeniami
ttr_d - czas związany z transmisją danych
Slide 21
M
tI
a
b
t
i 1
j 1
k 1
M
obl _ d ijk
a
c
t
i 1
j 1
tr _ d ijl
l 1
gdzie:
• M - liczba pikseli (np. 512x512)
• 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
Slide 22
M
t I '
a
b
t
i 1
j 1
M
obl _ d ijk
k 1
i 1
a
c
t
j 1
l 1
M
tr _ d ijl
i 1
a
d
t
j 1
m 1
M
tr _ roz ijm
i 1
a
e
t
j 1
dek _ roz ijn
n 1
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
Slide 23
Liczba przesłań operandów
w operacjach przetwarzania obrazów
OPERACJA
1 PIKSEL
1 OBRAZ
1 SEKUNDA
LUT
MEDIANA-5
1
5
262 144
1 510 720
6 553 600
37 768 000
KONWOLUCJA 3x3
9
4 718 592
117 964 800
Slide 24
Liczba operacji w przetwarzaniu obrazów
(w czasie 1 s)
OPERACJA
LUT
MEDIANA-5
MEDIANA-9
KONWOLUCJA 3x3
MNOŻENIA
0
0
0
117 964 800
DODAWANIA
PORÓWNANIA
6 553 600
65 536 000
294 912 000
4 718 592
PRZESŁANIA
13 107 200
44 321 600
124 518 400
124 518 400
Slide 25
Architektura procesora specjalizowanego
pozbawiona przesyłania i dekodowania rozkazów
FPGA
JS
SR
JP
SD
MP
Slide 26
Architektura systemu z procesorami specjalizowanymi
FPGA
FPGA
JS
JS
Pamięć
video
SD
JS
SR
SR
A/C
FPGA
JP
JP
SD
SD
BUS
SR
...
JP
SD
Pamięć
video wy
SD
Slide 27
Architektura MISD specjalizowanych procesorów sprzętowych
FPGA
FPGA
JS
JS
SD
...
SR
SR
A/C
FPGA
SD
JP
JP
JS
SR
SD
JP
SD
PAMIĘĆ
VIDEO
SD
BUS
Slide 28
Czas realizacji obliczeń
w architekturze MISD procesorów sprzętowych
a
t I MISD ''''
t
obl _ d j
j 1
gdzie:
tobl_d - czas związany z obliczeniami
a - liczba operacji wstępnego przetwarzania
Slide 29
Schemat blokowy architektury potokowej DePiAr
L
Sygnały Przerwan
Procesor
Dane Video
WEJŚCIE
P
P
P
Sygnały Sterujące
Magistrala Danych [8 bitów]
Magistrala Adresowa [13 bitów]
Magistrala VME
WYJŚCIE
Slide 30
Moduł z architekturą potokową DePiAr
Slide 31
Architektura potokowa DePiAr
Zalety:
minimalizacja czasu transmisji
minimalizacja czasu obliczeń przez dedykowane procesory sprzętowe
procesory są autonomiczne:
dostęp do procesorów z zewnętrznej magistrali:
elastyczna zmiana kolejności operacji
niezależne projektowanie procesorów
implementacja w dowolnym otoczeniu sprzętowym
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
Slide 32
4. Specjalizowane procesory sprzętowe
Schemat blokowy procesora logicznego
FPGA
TPRAM
SAM 1
Sterowanie
VME
RAM
SAM 2
BUF 1
8
8
ALU
BUF 3
8
Dane Video WE
BUF 2
8
8
DEL 1
Sterowanie WE
Dane Video WY
DEL 2
DEL 3
Sterowanie WY
Slide 33
Procesor konwolucji
Dane Video WE
W11
FIFO 512x8
W21
8
FIFO 512x8
8
W12
8
8
W31
W22
W32
W13
8
W23
W33
Dane Video WY
SUMOWANIE & NORMALIZACJA
FPGA
8
Slide 34
Procesor morfologiczny
DANE VIDEO WE
Rej.1x1
FIFO 512x1
Rej.1x1
R-I
Rej.1x1
Rej.1x1
Rej.1x1
FPGA
Rej.1x1
STEROWANIE
FIFO 512x1
Rej.1x1
Rej.1x1
Rej.1x1
C-I
C - II
Comp.
Comp.
Comp.
Comp.
Comp.
Comp.
Comp.
Comp.
Comp.
DANE VIDEO WY
AND
Comp.
Comp.
Comp.
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
R - II
BUS
Rej.1x1
Rej.1x1
Rej.1x1
Rej.1x1
Rej.1x1
Rej.1x1
Rej.1x1
R - III
Slide 35
Procesor medianowy
DANE VIDEO WE
Rej.1x8
8
FIFO 512x8
Rej.1x8
8
FIFO 512x8
8
Rej.1x8
Rej.1x8
8
Rej.1x8
Rej.1x8
Rej.1x8
Rej.1x8
DANE VIDEO WY
MUX
8
KOMPARATORY
WE_MEM
ROM / RAM
WY_MEM
FPGA
Rej.1x8
8
Slide 36
Opóźnienia w procesorze potokowym
Dane_Video_WE
Rejestr
we1
Dane_Video_WY
t1p
Dane_Video_FIFO
Procesor
Rejestr
potokowy
wy
t3p
Rejestr
we2
t1p
Opóźnienie
Sterowanie_WE
t1s
t2p
Opóźnienie
t2s
Opóźnienie
t3s
Sterowanie_WY
Slide 37
Czasy realizacji operacji przetwarzania obrazów
przez procesory specjalizowane
OPERACJA
LUT - ROM
LUT - RAM
HISTOGRAM
ODEJMOWANIE
MEDIANA 5-PUNKTÓW
MEDIANA 9-PUNKTÓW
KONWOLUCJA 3x3
DWUKIERUNKOWY
GRADIENT SOBELA
OPÓŹNIENIE
66 ns
132 ns
66 ns
132 ns
68 µs
68 µs
102 µs
102 µs
Slide 38
Czasy realizacji obliczeń
przez system przetwarzania obrazów
6
t I MISD ''''
t
obl _ d j
66 ns 66 ns 68 s 102 s 102 s 132 ns 2 7 2 , 3 s
j 1
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
Slide 39
Zalety opracowanej architektury DePiAr
procesorów specjalizowanych
Znacznie przyspiesza obliczenia wstępnego przetwarzania
danych wizyjnych (akceleracja rzędu od 103 do 106)
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
Slide 40
Czasy realizacji operacji wizyjnych: DePiAr, DSP i GPP
System
Histogram Odejmowanie Konwolucja 3 3
Mediana
LUT
66,0 ns
DePiAr – 15 MHz
66,0 ns
132,0 ns
102,0 s
198,0 ns
68,0 s
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
Akceleracja
60 000
20 000
34 000
–
54 000
–
3,0 ms
45 000
Slide 41
5. Implementacja w układach FPGA
Slide 42
Struktura bloku CLB w układach XC4000
Slide 43
Połączenia w układach FPGA
3
4
5
2
8
1
Slide 44
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
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
576
232
576
ISP(EEPROM)
12.800
256
Slide 45
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
Slide 46
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
Slide 47
DKCM
LM + AND
w ejście
A dres P r.
8
4
5
W spółcz ynnik
4
4
4
4
M ux 2 :1
M ux 2 :1
4
A dres
4
RAM
B
RAM
A
D ane w y.
12
D ane P r.
W rite
E nable
16
w yjście
7
P rogram uj
7
1
256 16
DP
21
AND
16
1
P rogram ow anie
7
256 16
DP
2 16 1
DP
2
21
12
L SB s
14
M SB s
8
3
16
17
7
A dder
U kład dodając y
12
RAM
P rogram
m ing
U nit
(R P U )
12
4
17
24
1
21
AND
1
Slide 48
ns
b)
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:
Slide 49
7. Rekonfigurowalne systemy obliczeniowe
Licznik synchronizacja
Korekcja
błędów
Układ transmisyjny
Filtr A
Weryfikacja
CRC
Przed
rekonfiguracją
Licznik synchronizacja
Korekcja
błędów
Układ transmisyjny
Filtr B
Weryfikacja
CRC
Po
rekonfiguracji
Slide 50
Rekonfiguracja częściowa
Logika
Logika
Nowa częściowa
konfiguracja
Pamięć
konfiguracyjna przed
rekonfiguracją
Pamięć
konfiguracyjna po
rekonfiguracji
Slide 51
Konflikt przy rekonfiguracji
(rozwiązania przez relokację)
Aktualna
konfiguracja
Przychodząca
konfiguracja
Konflikty
Rekonfiguracja
Slide 52
Defragmentacja w rekonfiguracji układów FPGA
Konfiguracja 1
Przychodząca
konfiguracja
Konfiguracja 1
Konfiguracja 1
Konfiguracja 2
Konfiguracja 2
Konfiguracja 3
Konfiguracja 3
Konfiguracja 2
Konfiguracja 4
Konfiguracja 3
Przed
defragmentacją
Konfiguracja 4
Po
defragmentacji
Po
rekonfiguracji
Slide 53
System z wielokrotnym wykorzystaniem
do obliczeń jednego układu FPGA
FPGA
Linia
transmisyjna
FPGA
010110...
010110...
AC
CA
Przyjęcie danych
1
2
Kompresja
Wstępne przetworzenie
Modulacja
Kamera
Pamięć
konfiguracyjna
3
4
Slide 54
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]
–
10 [ms]
–
XC3000
484
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]
–
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]
–
Virtex
7,5
Slide 55
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).
Slide 56
Efektywność stosowania systemów CTR i RTR
f
TR
TO
E RTR
max
E CTR
1 f
Slide 57
Struktura cztero-kontekstowego FPGA
1
Pamięć
konfiguracyjna
2
3
4
Aktywna
konfiguracja
Logika sprzętowa
Slide 58
Struktura pamięci konfiguracyjnej
w wielokontekstowym modelu FPGA
I/O
Poziomy
pamięci
konfiguracyjnej
(konteksty)
Biblioteka
konfiguracji
sprzętowych
Slide 59
8. Dedykowane użytkownikowi platformy obliczeniowe CCM
Custom Computing Machines
Elasty
czność CISC
RISC
DSP
CCM
Specjalizowane
moduły
FPGA/CPLD
ASIC
Wydajność
Wydajność a elastyczność
układów obliczeniowych
Slide 60
Architektura karty procesorowej w systemie Splash2
SBus
M0
Poprzednia
karta
M1
M2
M3
M4
M5
M6
M7
M8
X1
X2
X3
X4
X5
X6
X7
X8
36
36
RBus
Następna
karta
Matryca krzyżowa (crossbar switch)
X0
SIMD
36
X16
X15
X14
X13
X12
X11
X10
X9
M16
M15
M14
M13
M12
M11
M10
M9
36
Slide 61
Implementacja detekcji obiektów i etykietowania
B ufo ro w a nie d an yc h
P E -0
P E -1
O znaczan ie
P E -2
P E -3
S calanie
P E -4
P E -5
S calanie
P E -6
P E -7
P E -8
P E -1 1
P E -1 0
P E -9
W ejście w id eo
U kład y nie w yko rz ysty w a ne
W yjście w id eo
P E -1 6
P E -1 5
F o rm ato w anie
d an yc h w yjścio w ych
P E -1 4
P E -1 3
P E -1 2
Slide 62
Implementacja transformacji Hough’a
W ejście w id eo
P E -0
L U T i szerego w a nie
H o ug h
P1
H o ug h
P2
H o ug h
P3
H o ug h
P4
H o ug h
P5
H o ug h
P6
P E -1
P E -2
P E -3
P E -4
P E -5
P E -6
P E -7
P E -8
P E -1 6
P E -1 5
P E -1 4
P E -1 3
P E -1 2
P E -1 1
P E -1 0
P E -9
H o ug h
P14
H o ug h
P13
H o ug h
P12
H o ug h
P11
H o ug h
P10
H o ug h
P9
H o ug h
P8
H o ug h
P7
B ufo r
w ejścia
W yjście w id eo
Slide 63
Implementacja szybkiej transformaty Fouriera FFT
B ank 1 – le w y
renu m eracja
P o d w ó jne b ufo ro w anie
P E -0
A lgo rytm B utterfly
P E -1
P E -2
P E -3
P E -4
P E -5
P E -6
P E -7
P E -8
P E -1 6
P E -1 5
P E -1 4
P E -1 3
P E -1 2
P E -1 1
P E -1 0
P E -9
W ejście w id eo
W yjście w id eo
F iltracja w d zied zinie
często tliw o ści
B ank 2 – p raw y
renu m eracja
Slide 64
9. Projektowanie metodą Hardware/Software CoDesign
Wczesne i późne rozdzielanie hardware’u i software’u
w projektowaniu systemów
a)
b)
D esig n
H a rd w a re
D esig n
S o ftw a re
H a rd w a re
S o ftw a re
Slide 65
Hardware/Software CoDesign
K o d źród ło w y
(C )
P o d ział
hard w are/so ftw are
H ard w are
(P L D , F P G A )
S o ftw are
(uP , uC , D S P )
Język o p isu sp rzętu
(V H D L , V erilo g)
Język p ro gra m o w an ia
(C , A se m b ler)
Slide 66
Wzrost pojemności układów programowalnych PLD
RODZAJ
FIRMA
Classic
Max5000
Flex8000
APEX 20k
APEX II
ACT2
A500k
AX2000
ATV5100
ATK40k
XC4000
XC9500
SPARTAN
VIRTEX
VIRTEX II
Altera
Altera
Altera
Altera
Altera
Actel
Actel
Actel
Atmel
Atmel
Xilinx
Xilinx
Xilinx
Xilinx
Xilinx
VIRTEX Pro
Xilinx
BRAMKI
900
3 800
24 000
526 000
5 250 000
20 000
473 000
2 000 000
5 000
50 000
250 000
12 800
200 000
1 124 022
10 000 000
CLB
I/O
48
48
192
64
1 296
204
8 320
376
67 200 1 060
140
26 880
446
21 504
684
60
2 304
384
8 464
448
576
232
1 176
284
6 144
512
15 360 1 108
125 136 1 200
REJESTRY
48
192
1 500
998
26 880
21 504
128
2 304
18 400
576
4 704
24 576
61 440
KONFIG.
EEPROM
EPROM
SRAM
SRAM
SRAM
OTP
EPROM
SRAM
SRAM
ISP(EEPROM)
SRAM
SRAM (2,5V)
SRAM (2,5V)
SRAM (1,5V)
Slide 67
Struktura układu FPGA serii Virtex-II Pro
Pamięć
blokowa
BSRAM
PowerPC
Pamięć
blokowa
BSRAM
Logika stała
Logika rekonfigurowalna
Slide 68
Zasoby układów FPGA serii Virtex-II Pro
Układ
Rocket
I/O
Power
PC
LC
Slice
Distr. RAM
kb
Mnożarki
18x18
BSR DCM I/O
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
Slide 69
Lokalizacja zasobów w układzie Virtex-II Pro
Slide 70
Przyłączenie wbudowanego procesora PowerPC
do zasobów układu Virtex-II Pro
Slide 71
Blok łącz szeregowych Rocket I/O
o przepustowości 3,125 Gb/s
Slide 72
Rekonfigurowalny moduł z układem Virtex-II Pro
Slide 73
Połączenie elementów IP poprzez interfejs IPIF
z magistralą peryferyjną OPB i magistralą lokalną procesora PLB
Slide 74
Przyłączenie jednego z procesorów PowerPC 405
do magistrali lokalnej procesora PLB oraz układów peryferyjnych
Slide 75
Elementy IP - operacje przetwarzania obrazów
Funkcja
Biblioteka
Firma
Układ
Użyte zasoby f [MHz]
FFT/IFFT 1024 p-kty
FFT/IFFT 64 p-kty
FFT/IFFT 32 p-kty
FFT/IFFT 16 p-któw
2D DCT/IDCT
2D FDCT
2D DWT
FIDCT
MAC FIR
Dekoder Huffmana
Dekoder
Reed Solomon
TMS32025
DSP core
LogiCORE
LogiCORE
LogiCORE
LogiCORE
AllianceCORE
AllianceCORE
AllianceCORE
AllianceCORE
LogiCORE
AllianceCORE
Xilinx
Xilinx
Xilinx
Xilinx
Barco-Silex
CAST
CAST
Telecom
Xilinx
CAST
XC2V500
XC2V500
XC2V500
XC2V500
XC2V250
XC2V500
XC2V250
XCV200
XCV250
XC2V1000
62 %
38 %
29 %
37 %
77 %
42 %
62 %
77 %
16 %
22 %
100
100
110
130
133
83
52
78
AllianceCORE Telecom
XC2V500
97 %
61
AllianceCORE CAST
XC2V500
66 %
63
25
Slide 76
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)
Slide 77
1280 x 1024 x 628 = 823 MHz (823 132 160 Hz)
10 bitów/piksel
Slide 78
Wzrost liczby tranzystorów w układach różnego typu
200
150
100
50
0
94
19
95
19
96
19
Lata
97
19
Inte
98
19
99
19
AM
00
20
FPG
A
l
Po w
erPC
D
Slide 79
Pojemności i szybkość układów FPGA
wzrastają bardzo szybko
Slide 80
Moce obliczeniowe układów FPGA wielokrotnie przekraczają
moce procesorów ogólnego przeznaczenia
M iliard y o p eracji M A C /s
6 00 G M A C
32 G M A C
2 GMAC
8 M A C s P ro c. V irtex -E
V irtex -II
Slide 81
Mikroprocesor z rekonfigurowalnym koprocesorem
Główny procesor
Rejestry danych
Cache
instrukcji
Cache
danych
Globalna
jednostka
kontrolna
Matryca
rekonfigurowalna
Koprocesor rekonfigurowalny
Interfejs jednostki
Slide 82
Logika rekonfigurowana za pomocą internetu
wykorzystywana do akceleracji obliczeń
H o st
T arget
P A V E C + + A p p licatio n
PAVE API
P A V E S IF
PAVE API
W in d R iv er
W in d R iv er
V xW o rks R T O S
V xW o rks B o ard S up p o rt
P ackage (B S P )
M icro p ro cesso r
FPG A
P A V E P a ylo ad
U p grad e P o rtal
T C P / IP
N etw o rk
Slide 83
Slide 84
Dziękuję za uwagę
Slide 85
Slide 86
Slide 87
Akceleracja obliczeń metodami sprzętowymi
Kazimierz Wiatr
Akademickie Centrum Komputerowe
CYFRONET AGH
email: [email protected]
Slide 2
Dzisiejsze wymagania wobec komputerów
szybkość !!!!
cena
wielkość
niezawodność
Slide 3
Szybkość komputerów
wczoraj
dziś
jutro
Slide 4
Metody zwiększania szybkości pracy komputerów
szybszy zegar
optymalizacja kodu
wiele procesorów
architektura wewnętrzna
sprawne otoczenie procesora
Slide 5
Rodzaje komputerów
komputery osobiste
superkomuptery
architektury specjalizowane
Slide 6
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
Slide 7
1. Akceleracja obliczeń
zbyt długie czasy obliczeń w procesorach GPP i DSP
poszukiwanie przyspieszenia-akceleracji obliczeń
ograniczenie rodzaju obliczeń i ich aplikacji
poszukiwanie nowych jakościowo metod
szybkiej realizacji algorytmów
S = tsys_klasycznego / tsys_specjalizowanego
Slide 8
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
Slide 9
Akceleracja obliczeń w systemie wieloprocesorowym
S (n)
16
s = 0%
14
12
10
s = 5%
8
s = 10%
6
s = 15%
4
2
liczb a pro ceso ró w (n)
0
0
4
8
12
16
Slide 10
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.
Slide 11
Sprzętowa akceleracja obliczeń
wielkie ilości przetwarzanych danych
bardzo szybkie systemy obliczeniowe
•
•
algorytmy zdominowane przez dane
algorytmy zdominowane przez instrukcje
Slide 12
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
Slide 13
2. Systemy wizyjne czasu rzeczywistego
a. bardzo szybkie, b. bardzo dużo danych
A
N
B
hor
N hact
N
ver
N
hor
N hact
N vact
N
f
K N ver
t hor
ver
N vact
14 , 75 MHz
Slide 14
Poziomy przetwarzania i analizy obrazów
w czasie rzeczywistym
parametry
II
I
III
algorytmy
sekwencje operacji
OUT
sterowanie obiektem
Slide 15
Operacje wstępnego przetwarzania obrazów
Operacje jednopunktowe:
Filtracje kontekstowe:
operacja LUT
binaryzacja
operacje punktowe na dwu obrazach
obliczanie histogramu
filtracja medianowa
filtracja logiczna
operacja splotu (konwolucji)
Operacje morfologiczne:
erozja i dylatacja
otwarcie i zamknięcie
inne operacje morfologiczne
Slide 16
Ramię robota - obraz źródłowy
Slide 17
Efekt działania operacji look-up-table
Slide 18
Obraz po operacji binaryzacji
Slide 19
Efekt detekcji krawędzi
Slide 20
3. Architektura systemu a szybkość obliczeń
tI
t obl _ d t tr_ d
gdzie:
tobl_d - czas związany z obliczeniami
ttr_d - czas związany z transmisją danych
Slide 21
M
tI
a
b
t
i 1
j 1
k 1
M
obl _ d ijk
a
c
t
i 1
j 1
tr _ d ijl
l 1
gdzie:
• M - liczba pikseli (np. 512x512)
• 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
Slide 22
M
t I '
a
b
t
i 1
j 1
M
obl _ d ijk
k 1
i 1
a
c
t
j 1
l 1
M
tr _ d ijl
i 1
a
d
t
j 1
m 1
M
tr _ roz ijm
i 1
a
e
t
j 1
dek _ roz ijn
n 1
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
Slide 23
Liczba przesłań operandów
w operacjach przetwarzania obrazów
OPERACJA
1 PIKSEL
1 OBRAZ
1 SEKUNDA
LUT
MEDIANA-5
1
5
262 144
1 510 720
6 553 600
37 768 000
KONWOLUCJA 3x3
9
4 718 592
117 964 800
Slide 24
Liczba operacji w przetwarzaniu obrazów
(w czasie 1 s)
OPERACJA
LUT
MEDIANA-5
MEDIANA-9
KONWOLUCJA 3x3
MNOŻENIA
0
0
0
117 964 800
DODAWANIA
PORÓWNANIA
6 553 600
65 536 000
294 912 000
4 718 592
PRZESŁANIA
13 107 200
44 321 600
124 518 400
124 518 400
Slide 25
Architektura procesora specjalizowanego
pozbawiona przesyłania i dekodowania rozkazów
FPGA
JS
SR
JP
SD
MP
Slide 26
Architektura systemu z procesorami specjalizowanymi
FPGA
FPGA
JS
JS
Pamięć
video
SD
JS
SR
SR
A/C
FPGA
JP
JP
SD
SD
BUS
SR
...
JP
SD
Pamięć
video wy
SD
Slide 27
Architektura MISD specjalizowanych procesorów sprzętowych
FPGA
FPGA
JS
JS
SD
...
SR
SR
A/C
FPGA
SD
JP
JP
JS
SR
SD
JP
SD
PAMIĘĆ
VIDEO
SD
BUS
Slide 28
Czas realizacji obliczeń
w architekturze MISD procesorów sprzętowych
a
t I MISD ''''
t
obl _ d j
j 1
gdzie:
tobl_d - czas związany z obliczeniami
a - liczba operacji wstępnego przetwarzania
Slide 29
Schemat blokowy architektury potokowej DePiAr
L
Sygnały Przerwan
Procesor
Dane Video
WEJŚCIE
P
P
P
Sygnały Sterujące
Magistrala Danych [8 bitów]
Magistrala Adresowa [13 bitów]
Magistrala VME
WYJŚCIE
Slide 30
Moduł z architekturą potokową DePiAr
Slide 31
Architektura potokowa DePiAr
Zalety:
minimalizacja czasu transmisji
minimalizacja czasu obliczeń przez dedykowane procesory sprzętowe
procesory są autonomiczne:
dostęp do procesorów z zewnętrznej magistrali:
elastyczna zmiana kolejności operacji
niezależne projektowanie procesorów
implementacja w dowolnym otoczeniu sprzętowym
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
Slide 32
4. Specjalizowane procesory sprzętowe
Schemat blokowy procesora logicznego
FPGA
TPRAM
SAM 1
Sterowanie
VME
RAM
SAM 2
BUF 1
8
8
ALU
BUF 3
8
Dane Video WE
BUF 2
8
8
DEL 1
Sterowanie WE
Dane Video WY
DEL 2
DEL 3
Sterowanie WY
Slide 33
Procesor konwolucji
Dane Video WE
W11
FIFO 512x8
W21
8
FIFO 512x8
8
W12
8
8
W31
W22
W32
W13
8
W23
W33
Dane Video WY
SUMOWANIE & NORMALIZACJA
FPGA
8
Slide 34
Procesor morfologiczny
DANE VIDEO WE
Rej.1x1
FIFO 512x1
Rej.1x1
R-I
Rej.1x1
Rej.1x1
Rej.1x1
FPGA
Rej.1x1
STEROWANIE
FIFO 512x1
Rej.1x1
Rej.1x1
Rej.1x1
C-I
C - II
Comp.
Comp.
Comp.
Comp.
Comp.
Comp.
Comp.
Comp.
Comp.
DANE VIDEO WY
AND
Comp.
Comp.
Comp.
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
R - II
BUS
Rej.1x1
Rej.1x1
Rej.1x1
Rej.1x1
Rej.1x1
Rej.1x1
Rej.1x1
R - III
Slide 35
Procesor medianowy
DANE VIDEO WE
Rej.1x8
8
FIFO 512x8
Rej.1x8
8
FIFO 512x8
8
Rej.1x8
Rej.1x8
8
Rej.1x8
Rej.1x8
Rej.1x8
Rej.1x8
DANE VIDEO WY
MUX
8
KOMPARATORY
WE_MEM
ROM / RAM
WY_MEM
FPGA
Rej.1x8
8
Slide 36
Opóźnienia w procesorze potokowym
Dane_Video_WE
Rejestr
we1
Dane_Video_WY
t1p
Dane_Video_FIFO
Procesor
Rejestr
potokowy
wy
t3p
Rejestr
we2
t1p
Opóźnienie
Sterowanie_WE
t1s
t2p
Opóźnienie
t2s
Opóźnienie
t3s
Sterowanie_WY
Slide 37
Czasy realizacji operacji przetwarzania obrazów
przez procesory specjalizowane
OPERACJA
LUT - ROM
LUT - RAM
HISTOGRAM
ODEJMOWANIE
MEDIANA 5-PUNKTÓW
MEDIANA 9-PUNKTÓW
KONWOLUCJA 3x3
DWUKIERUNKOWY
GRADIENT SOBELA
OPÓŹNIENIE
66 ns
132 ns
66 ns
132 ns
68 µs
68 µs
102 µs
102 µs
Slide 38
Czasy realizacji obliczeń
przez system przetwarzania obrazów
6
t I MISD ''''
t
obl _ d j
66 ns 66 ns 68 s 102 s 102 s 132 ns 2 7 2 , 3 s
j 1
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
Slide 39
Zalety opracowanej architektury DePiAr
procesorów specjalizowanych
Znacznie przyspiesza obliczenia wstępnego przetwarzania
danych wizyjnych (akceleracja rzędu od 103 do 106)
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
Slide 40
Czasy realizacji operacji wizyjnych: DePiAr, DSP i GPP
System
Histogram Odejmowanie Konwolucja 3 3
Mediana
LUT
66,0 ns
DePiAr – 15 MHz
66,0 ns
132,0 ns
102,0 s
198,0 ns
68,0 s
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
Akceleracja
60 000
20 000
34 000
–
54 000
–
3,0 ms
45 000
Slide 41
5. Implementacja w układach FPGA
Slide 42
Struktura bloku CLB w układach XC4000
Slide 43
Połączenia w układach FPGA
3
4
5
2
8
1
Slide 44
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
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
576
232
576
ISP(EEPROM)
12.800
256
Slide 45
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
Slide 46
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
Slide 47
DKCM
LM + AND
w ejście
A dres P r.
8
4
5
W spółcz ynnik
4
4
4
4
M ux 2 :1
M ux 2 :1
4
A dres
4
RAM
B
RAM
A
D ane w y.
12
D ane P r.
W rite
E nable
16
w yjście
7
P rogram uj
7
1
256 16
DP
21
AND
16
1
P rogram ow anie
7
256 16
DP
2 16 1
DP
2
21
12
L SB s
14
M SB s
8
3
16
17
7
A dder
U kład dodając y
12
RAM
P rogram
m ing
U nit
(R P U )
12
4
17
24
1
21
AND
1
Slide 48
ns
b)
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:
Slide 49
7. Rekonfigurowalne systemy obliczeniowe
Licznik synchronizacja
Korekcja
błędów
Układ transmisyjny
Filtr A
Weryfikacja
CRC
Przed
rekonfiguracją
Licznik synchronizacja
Korekcja
błędów
Układ transmisyjny
Filtr B
Weryfikacja
CRC
Po
rekonfiguracji
Slide 50
Rekonfiguracja częściowa
Logika
Logika
Nowa częściowa
konfiguracja
Pamięć
konfiguracyjna przed
rekonfiguracją
Pamięć
konfiguracyjna po
rekonfiguracji
Slide 51
Konflikt przy rekonfiguracji
(rozwiązania przez relokację)
Aktualna
konfiguracja
Przychodząca
konfiguracja
Konflikty
Rekonfiguracja
Slide 52
Defragmentacja w rekonfiguracji układów FPGA
Konfiguracja 1
Przychodząca
konfiguracja
Konfiguracja 1
Konfiguracja 1
Konfiguracja 2
Konfiguracja 2
Konfiguracja 3
Konfiguracja 3
Konfiguracja 2
Konfiguracja 4
Konfiguracja 3
Przed
defragmentacją
Konfiguracja 4
Po
defragmentacji
Po
rekonfiguracji
Slide 53
System z wielokrotnym wykorzystaniem
do obliczeń jednego układu FPGA
FPGA
Linia
transmisyjna
FPGA
010110...
010110...
AC
CA
Przyjęcie danych
1
2
Kompresja
Wstępne przetworzenie
Modulacja
Kamera
Pamięć
konfiguracyjna
3
4
Slide 54
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]
–
10 [ms]
–
XC3000
484
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]
–
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]
–
Virtex
7,5
Slide 55
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).
Slide 56
Efektywność stosowania systemów CTR i RTR
f
TR
TO
E RTR
max
E CTR
1 f
Slide 57
Struktura cztero-kontekstowego FPGA
1
Pamięć
konfiguracyjna
2
3
4
Aktywna
konfiguracja
Logika sprzętowa
Slide 58
Struktura pamięci konfiguracyjnej
w wielokontekstowym modelu FPGA
I/O
Poziomy
pamięci
konfiguracyjnej
(konteksty)
Biblioteka
konfiguracji
sprzętowych
Slide 59
8. Dedykowane użytkownikowi platformy obliczeniowe CCM
Custom Computing Machines
Elasty
czność CISC
RISC
DSP
CCM
Specjalizowane
moduły
FPGA/CPLD
ASIC
Wydajność
Wydajność a elastyczność
układów obliczeniowych
Slide 60
Architektura karty procesorowej w systemie Splash2
SBus
M0
Poprzednia
karta
M1
M2
M3
M4
M5
M6
M7
M8
X1
X2
X3
X4
X5
X6
X7
X8
36
36
RBus
Następna
karta
Matryca krzyżowa (crossbar switch)
X0
SIMD
36
X16
X15
X14
X13
X12
X11
X10
X9
M16
M15
M14
M13
M12
M11
M10
M9
36
Slide 61
Implementacja detekcji obiektów i etykietowania
B ufo ro w a nie d an yc h
P E -0
P E -1
O znaczan ie
P E -2
P E -3
S calanie
P E -4
P E -5
S calanie
P E -6
P E -7
P E -8
P E -1 1
P E -1 0
P E -9
W ejście w id eo
U kład y nie w yko rz ysty w a ne
W yjście w id eo
P E -1 6
P E -1 5
F o rm ato w anie
d an yc h w yjścio w ych
P E -1 4
P E -1 3
P E -1 2
Slide 62
Implementacja transformacji Hough’a
W ejście w id eo
P E -0
L U T i szerego w a nie
H o ug h
P1
H o ug h
P2
H o ug h
P3
H o ug h
P4
H o ug h
P5
H o ug h
P6
P E -1
P E -2
P E -3
P E -4
P E -5
P E -6
P E -7
P E -8
P E -1 6
P E -1 5
P E -1 4
P E -1 3
P E -1 2
P E -1 1
P E -1 0
P E -9
H o ug h
P14
H o ug h
P13
H o ug h
P12
H o ug h
P11
H o ug h
P10
H o ug h
P9
H o ug h
P8
H o ug h
P7
B ufo r
w ejścia
W yjście w id eo
Slide 63
Implementacja szybkiej transformaty Fouriera FFT
B ank 1 – le w y
renu m eracja
P o d w ó jne b ufo ro w anie
P E -0
A lgo rytm B utterfly
P E -1
P E -2
P E -3
P E -4
P E -5
P E -6
P E -7
P E -8
P E -1 6
P E -1 5
P E -1 4
P E -1 3
P E -1 2
P E -1 1
P E -1 0
P E -9
W ejście w id eo
W yjście w id eo
F iltracja w d zied zinie
często tliw o ści
B ank 2 – p raw y
renu m eracja
Slide 64
9. Projektowanie metodą Hardware/Software CoDesign
Wczesne i późne rozdzielanie hardware’u i software’u
w projektowaniu systemów
a)
b)
D esig n
H a rd w a re
D esig n
S o ftw a re
H a rd w a re
S o ftw a re
Slide 65
Hardware/Software CoDesign
K o d źród ło w y
(C )
P o d ział
hard w are/so ftw are
H ard w are
(P L D , F P G A )
S o ftw are
(uP , uC , D S P )
Język o p isu sp rzętu
(V H D L , V erilo g)
Język p ro gra m o w an ia
(C , A se m b ler)
Slide 66
Wzrost pojemności układów programowalnych PLD
RODZAJ
FIRMA
Classic
Max5000
Flex8000
APEX 20k
APEX II
ACT2
A500k
AX2000
ATV5100
ATK40k
XC4000
XC9500
SPARTAN
VIRTEX
VIRTEX II
Altera
Altera
Altera
Altera
Altera
Actel
Actel
Actel
Atmel
Atmel
Xilinx
Xilinx
Xilinx
Xilinx
Xilinx
VIRTEX Pro
Xilinx
BRAMKI
900
3 800
24 000
526 000
5 250 000
20 000
473 000
2 000 000
5 000
50 000
250 000
12 800
200 000
1 124 022
10 000 000
CLB
I/O
48
48
192
64
1 296
204
8 320
376
67 200 1 060
140
26 880
446
21 504
684
60
2 304
384
8 464
448
576
232
1 176
284
6 144
512
15 360 1 108
125 136 1 200
REJESTRY
48
192
1 500
998
26 880
21 504
128
2 304
18 400
576
4 704
24 576
61 440
KONFIG.
EEPROM
EPROM
SRAM
SRAM
SRAM
OTP
EPROM
SRAM
SRAM
ISP(EEPROM)
SRAM
SRAM (2,5V)
SRAM (2,5V)
SRAM (1,5V)
Slide 67
Struktura układu FPGA serii Virtex-II Pro
Pamięć
blokowa
BSRAM
PowerPC
Pamięć
blokowa
BSRAM
Logika stała
Logika rekonfigurowalna
Slide 68
Zasoby układów FPGA serii Virtex-II Pro
Układ
Rocket
I/O
Power
PC
LC
Slice
Distr. RAM
kb
Mnożarki
18x18
BSR DCM I/O
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
Slide 69
Lokalizacja zasobów w układzie Virtex-II Pro
Slide 70
Przyłączenie wbudowanego procesora PowerPC
do zasobów układu Virtex-II Pro
Slide 71
Blok łącz szeregowych Rocket I/O
o przepustowości 3,125 Gb/s
Slide 72
Rekonfigurowalny moduł z układem Virtex-II Pro
Slide 73
Połączenie elementów IP poprzez interfejs IPIF
z magistralą peryferyjną OPB i magistralą lokalną procesora PLB
Slide 74
Przyłączenie jednego z procesorów PowerPC 405
do magistrali lokalnej procesora PLB oraz układów peryferyjnych
Slide 75
Elementy IP - operacje przetwarzania obrazów
Funkcja
Biblioteka
Firma
Układ
Użyte zasoby f [MHz]
FFT/IFFT 1024 p-kty
FFT/IFFT 64 p-kty
FFT/IFFT 32 p-kty
FFT/IFFT 16 p-któw
2D DCT/IDCT
2D FDCT
2D DWT
FIDCT
MAC FIR
Dekoder Huffmana
Dekoder
Reed Solomon
TMS32025
DSP core
LogiCORE
LogiCORE
LogiCORE
LogiCORE
AllianceCORE
AllianceCORE
AllianceCORE
AllianceCORE
LogiCORE
AllianceCORE
Xilinx
Xilinx
Xilinx
Xilinx
Barco-Silex
CAST
CAST
Telecom
Xilinx
CAST
XC2V500
XC2V500
XC2V500
XC2V500
XC2V250
XC2V500
XC2V250
XCV200
XCV250
XC2V1000
62 %
38 %
29 %
37 %
77 %
42 %
62 %
77 %
16 %
22 %
100
100
110
130
133
83
52
78
AllianceCORE Telecom
XC2V500
97 %
61
AllianceCORE CAST
XC2V500
66 %
63
25
Slide 76
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)
Slide 77
1280 x 1024 x 628 = 823 MHz (823 132 160 Hz)
10 bitów/piksel
Slide 78
Wzrost liczby tranzystorów w układach różnego typu
200
150
100
50
0
94
19
95
19
96
19
Lata
97
19
Inte
98
19
99
19
AM
00
20
FPG
A
l
Po w
erPC
D
Slide 79
Pojemności i szybkość układów FPGA
wzrastają bardzo szybko
Slide 80
Moce obliczeniowe układów FPGA wielokrotnie przekraczają
moce procesorów ogólnego przeznaczenia
M iliard y o p eracji M A C /s
6 00 G M A C
32 G M A C
2 GMAC
8 M A C s P ro c. V irtex -E
V irtex -II
Slide 81
Mikroprocesor z rekonfigurowalnym koprocesorem
Główny procesor
Rejestry danych
Cache
instrukcji
Cache
danych
Globalna
jednostka
kontrolna
Matryca
rekonfigurowalna
Koprocesor rekonfigurowalny
Interfejs jednostki
Slide 82
Logika rekonfigurowana za pomocą internetu
wykorzystywana do akceleracji obliczeń
H o st
T arget
P A V E C + + A p p licatio n
PAVE API
P A V E S IF
PAVE API
W in d R iv er
W in d R iv er
V xW o rks R T O S
V xW o rks B o ard S up p o rt
P ackage (B S P )
M icro p ro cesso r
FPG A
P A V E P a ylo ad
U p grad e P o rtal
T C P / IP
N etw o rk
Slide 83
Slide 84
Dziękuję za uwagę
Slide 85
Slide 86
Slide 87