Title: Projektowanie system
1Projektowanie systemów informatycznych
System informatyczny (SI)
System oprogramowania(software)
Platforma sprzetowa (hardware)
Architektura systemu
SISD
?P, ?K
Program1
SIMD
?P DSP
Program2
MISD
ASIC
...
FPGA
MIMD
ProgramN
...
2Projektowanie systemów informatycznych
Osiagniecia technologii VLSI i jej wplyw na
architektury nowoczesnych systemów komputerowych
i na metody projektowania systemów informatycznych
- Wymagania rynku wobec systemów informatycznych
- wzrost wydajnosci systemów informatycznych
- realizacja mieszanych systemów analogowo-
cyfrowych SoC -
- zwiekszenie jakosci projektowania systemów SoC.
3Projektowanie systemów informatycznych
- Nowoczesna technologia VLSI
-
- 0,09 ?m ? 80 mln bramek w 1 ukladzie scalonym
- 0,065 ?m ? ponad 100 mln bramek/uklad
- mozliwosc umieszczenia calego systemu w jednym
ukladzie SoC (System-on-Chip)
Problem Zagospodarowanie tak ogromnych
resursów sprzetowych
4Projektowanie systemów informatycznych
Co robic z 1 miliardem tranzystorów?
Jaka platforme sprzetowa wybrac?
Jaka architektura SI bedzie najbardziej efektywna?
Jak podzielic zadania (funkcje) systemu pomiedzy
software i hardware?
5Projektowanie systemów informatycznych
równolegle przetwarzanie danych
- Wymagania rynku wobec systemów informatycznych
- wzrost wydajnosci systemów informatycznych
- realizacja mieszanych systemów analogowo-
cyfrowych SoC -
- zwiekszenie jakosci projektowania systemów
SoC.
specjalistyczna platforma sprzetowa
stosowanie nowoczesnych technologii VLSI
skrócenie czasu projektowania i weryfikacji
systemu
zgodnosc z zasada projektowania bezblednego
(ang. First-Time-Right)
optymalizacja sprzetowa i czasowa
6Projektowanie systemów informatycznych
- Sposoby zwiekszenia jakosci projektowania SI
- zautomatyzowanie procesu projektowania i
weryfikacji - software-hardware codesign
- wykorzystanie komponentów IP-core
- realizacja w ukladzie scalonym róznych
technologicznych wysp (obszarów) - realizacja obszarów reprogramowalnych.
skrócenie czasu projektowania i weryfikacji
systemu
mozliwosc zmiany architektury jednostki
przetwarzajacej(po wyprodukowaniu ukladu, a
nawet w trakcie pracy systemu)
wieksza funkcjonalnosc ukladu scalonego
relatywne zmniejszenie poboru mocy systemu
7Uproszczona struktura ukladu reprogramowalnego
FPGA Virtex II Pro
8Uproszczona struktura bloku procesorowego
9Uproszczona struktura ukladu reprogramowalnego
FPGA Xilinx
pamiec konfiguracyjna bloki We/Wy komórki prze
laczniki
10Uproszczona struktura fragmentu reprogramowalnego
11Uproszczona struktura bloku SLB (slice) ukladów
FPGA rodzin Virtex i Spartan II
generatory funkcji uklad sterowania zapisem
przerzutniki typu D
12Projektowanie systemów informatycznych
- Negatywne skutki stosowania zaawansowanych
technologii VLSI - relatywny wzrost opóznienia sygnalów w
liniach - relatywny wzrost wzajemnego oddzialywania
sygnalów - wzrost róznicy poziomu sygnalu na poczatku i
koncu linii.
relatywne zmniejszenie czestotliwosci pracy
systemu
wzrost prawdopodobienstwa powstania zaklócen
wpracy systemu
WYNIK. Dodatkowe wymaganie do projektantów SoC
stosowanie zasady lokalnosci i regularnosci
polaczen
13Projektowanie systemów informatycznych
- Wybór typu architektury systemu SoC
- lokalnosc i regularnosc polaczen wewnetrznych
- realizacja w obszarze reprogramowalnym
ukladu scalonego - regularne algorytmy przetwarzania danych
- równolegle przetwarzanie danych.
WynikArchitektury macierzy procesorowych
Najwiekszy wspólczynnik wydajnosc/zlozonosc
sprzetowa wsród równoleglych architektur innych
typów
Istnieja teoretyczne podstawy systematycznego
projektowania MP (metody odwzorowania algorytmów
regularnych)
14Przykladowe architektury macierzy procesorowych
15Przykladowe architektury macierzy procesorowych
n 3
m 1
m 2
16Zalozenia wstepne
- czesc cyfrowa systemu SoC zawiera jeden lub
kilka obszarów reprogramowalnych - podstawowymi architekturami jednostek
przetwarzajacych dla systemów SoC sa
architektury macierzy procesorowych.
Zagadnienia podstawowe
- opracowanie programów równoleglych (WYKLAD)
- zapoznanie sie z analitycznymi metodami
projektowania jednostek przetwarzajacych
systemów SoC na poziomie strukturalnym
(WYKLAD) - realizacja komputerowa w/w metod (CWICZENIA).
17Metoda konstruowania grafów zaleznosciinformacyjn
ych dla algorytmów regularnych
Dane wejsciowe algorytm przedstawiony w postaci
programu zawierajacego zlozone gniazda petli
(ang. imperfectly nested loops)
Wyniki wspólrzedne wszystkich wierzcholków i
luków grafu algorytmu (dla okreslonego rozmiaru
tablic danych wejsciowych)
for i1 1 to N-1 do begin for i2 i11 to N
do mi2,i1 - ai2,i1 / ai1,i1 for i2
i11 to N do for i3 i31 to N do
ai2,i3ai2,i3mi2,i1?ai1,i3 end
18Metoda konstruowania grafów zaleznosciinformacyjn
ych dla algorytmów regularnych
- Podstawowe kroki
- uzupelnienie cial wszystkich instrukcji petli
programu wejsciowego instrukcjami
wspomagajacymi uzyskanie informacji o lukach i
wierzcholkach grafu algorytmu - uruchomienie zmodyfikowanego programu i
wypelnienie tablic wyjsciowych - analiza danych z tablic wyjsciowych i uzyskanie
informacji wynikowych.
19Konstruowanie grafów algorytmów (c.d.)
Pierwsze gniazdo petli for i1 1 to N-1 do
for i2 i1 1 to N do m i2,i1 -
ai2,i1 / ai1,i1
for i1 1 to N-1 do begin for i2 i11 to N
do mi2,i1 - ai2,i1 / ai1,i1 for i2
i11 to N do for i3 i31 to N do
ai2,i3ai2,i3mi2,i1?ai1,i3 end
Drugie gniazdo petli for i1 1 to N-1 do for
i2 i1 1 to N do for i3 i1 1 to N do
ai2,i3ai2,i3mi2,i1ai1,i3
20Konstruowanie grafów algorytmów (c.d.)
Drugie gniazdo (zmodyfikowane) nr 0 for i1
1 to N-1 do for i2 i1 1 to N do for i3
i1 1 to N do begin ai2,i3ai2,i3mi2
,i1ai1,i3 nrnr1 W1nr i1
W2nr i2 W3nr i3 Ia1nr
lti2,i3gt Ia2nr lti1,i3gt Imnr
lti2,i1gt end
21Konstruowanie grafów algorytmów (c.d.)
ai2,i3ai2,i3mi2,i1ai1,i3
22Konstruowanie grafów algorytmów (c.d.)
Zmodyfikowane pierwsze gniazdo for i1 1 to
N-1 do for i2 i11 to N do for i3 i1
to i1 do m i2,i1 - ai2,i1 /
ai1,i1
23Konstruowanie grafów zaleznosciinformacyjnych
dla algorytmów regularnych
for i1 1 to N-1 do begin for i2 i11 to N
do mi2,i1 - ai2,i1 / ai1,i1 for i2
i11 to N do for i3 i31 to N do
ai2,i3ai2,i3mi2,i1?ai1,i3 end
24Odwzorowanie algorytmów w architektury MP
n 3
m 1
m 2
25Odwzorowanie algorytmów (c.d.)
n 3
m 1
26Przeksztalcenie grafów algorytmów
Zmniejszenie liczby EP
(taktów)
27Przeksztalcenie grafów algorytmów (c.d.)
Mnozenie macierzy przez wektor Metoda
iteracji prostej
Graf przeksztalcony zmniejszenie liczby We/Wy w
MP
28Przeksztalcenie grafów algorytmów (c.d.)
Metoda Gaussa-Siedela (rozwiazywanie ukladów
równan liniowych)
Graf bazowyDlugosc sciezki krytycznej wynosi
(N2-N1)
Graf przeksztalconyZmniejszenie czasu
realizacji algorytmu Dlugosc sciezki krytycznej
(3?N-2)
29Strategie dekompozycji grafów algorytmów w
przypadku otrzymania równoleglych architektur z
ograniczona liczba EP
Strategia LSGR (lokalnie szeregowa globalnie
równolegla)
30Strategie dekompozycji grafów algorytmów w
przypadku otrzymania równoleglych architektur z
ograniczona liczba EP
Strategia LRGS (lokalnie równolegla globalnie
szeregowa)
31Przeksztalcenie grafów algorytmów (c.d.)
Projektowanie MP z ograniczona liczba EP
Graf przeksztalconyZmniejszenie zlozonosci
sprzetowej EP
32Organizacja i projektowanie bloków sterowania EP
Koncepcja sterowania autonomicznego
- Kazdy EP ma osobny blok sterowania (BS)
- Kazdy BS otrzymuje niezbedne informacje przed
rozpoczeciem obliczen i dziala niezaleznie od
pozostalych - Jesli EP sa sterowane programowo, to odpowiednie
programy wykonawcze dla wszystkich EP sa
formowane przed rozpoczeciem obliczen - Jesli EP sa sterowane sprzetowo, to dla
wszystkich EP sa projektowane odpowiednie uklady
BS.
33Konstruowanie grafów zaleznosciinformacyjnych
dla algorytmów regularnych
Dane wejsciowe algorytm przedstawiony w postaci
programu zawierajacego gniazda petli (ang.
imperfectly nested loops)
Wyniki wspólrzedne wszystkich wierzcholków i
luków grafu algorytmu (dla okreslonego rozmiaru
tablic danych wejsciowych)
for i 1 to N-1 do begin for j i1 to N do
mj,i - aj,i / ai,i for j i1 to
N do for k i1 to N do
aj,kaj,kmj,i?ai,k end
34Realizacja koncepcji sterowania autonomicznego
Metoda generowania programów wykonawczychEP (lub
opisu w VHDL bloków sterowania EP)
35Realizacja koncepcji sterowania autonomicznego
Metoda generowania programów wykonawczychEP
(c.d.)
min
Program wykonawczy p-tego EP
t1 for jp to N step 1 for kp to j step 1
TNjkpN1 if(j?p j?p)(k?p k?p)then
KOP1 else if(j?p1 j?N)(k?p k?p)then
KOP2 else if(j?p1
j?N)(k?p1 k?j)then KOP3 else
KOP0 dopóki t ltgt T t t1 generowanie
NOP wyslanie na wyjscie BS kodu KOP
endfor endfor
max
36Zalety metody generowania programów wykonawczych
EP
-
- programy wykonawcze wszystkich EP sa jednakowe
(róznia sie parametrami otrzymanymi z tablic
operacji poszczególnych EP) - niezaleznosc rozmiaru i tresci szablonu
programu od rozmiarów macierzy danych
wejsciowych - niezaleznosc (w pewnych granicach) tresci
programu od algorytmu realizowanego przez
system - mozliwosc automatycznego generowania programów
wykonawczych dla wszystkich EP lub opisów VHDL
wszystkich BS - jednakowa struktura wewnetrzna BS wszystkich EP.
37Organizacja i projektowanie bloków sterowania EP
Koncepcja sterowania lokalnego
- Oparta o zasade systolicznego przetwarzania
danych - Dopasowana do realizacji w ukladach FPGA
- Jednobitowe i przewaznie krótkie linie polaczen
miedzy EP - Lokalne BS poszczególnych EP zawieraja wylacznie
jedno-bitowe i przewaznie krótkie kolejki typu
FIFO i dekodery - Liczba kolejek FIFO jest równa liczbie róznych
typów KOP
38Realizacja koncepcji sterowania lokalnego
- Co jest zadane
- tabela typów wierzcholków grafu algorytmu
- funkcje odwzorowania przestrzennego Fs i
szeregujacego Ft
Dowolny wierzcholek K( k1 , k2 ,..., kn) grafu
bedzie realizowany w elemencie przetwarzajacym
jednostki o wspólrzednych w momencie czasu
T FT K const1 f1 k1 f2 k2 ...
fn kn const1 , gdzie const1 1 - FT
Kmin
39Realizacja koncepcji sterowania lokalnego c.d.
Podstawowe kroki proponowanej metody 1. dla
kazdego typu wierzcholków grafu formuje sie
program umozliwiajacy otrzymanie listy
wierzcholków danego typu wraz z numerem taktu T i
wspólrzednymi WEP, w którym konkretny wierzcholek
powinien byc realizowany.
Program dla i-tego typu wierzcholków
(i 1, 2, ..., q) for k1 xi,1 to yi,1 step
ci,1 for k2 xi,2 to yi,2 step ci,2 . . . .
. . . . . . . for kn xi,n to yi,n
step ci,n T obliczenie numeru taktu
WEP obliczenie wspólrzednych EP endfor
. . . . . . . . . . .
endfor endfor, gdzie wartosci xi,j , yi,j i ci,j
(j1, 2, , n) sa pobierane z i-tego wiersza
tabeli typów wierzcholków.
40Realizacja koncepcji sterowania lokalnego c.d.
Podstawowe kroki proponowanej metody (c.d.) 2.
Uruchomienie sformowanych programów wyniki
kazdego z nich formuja liste wierzcholków danego
typu wraz z numerem taktu T i wspólrzednymi WEP,
w którym konkretny wierzcholek powinien byc
realizowany.
Przykladowa lista numerów taktów i wspólrzednych
EP dla i-tego typu wierzcholków
3. Sortowanie wygenerowanych list wedlug
zwiekszenia T.
41Realizacja koncepcji sterowania lokalnego c.d.
Podstawowe kroki proponowanej metody (c.d.)
4. Na podstawie uporzadkowanych danych z i-tej
listy okreslane sa polaczenia miedzy EP
wykonujacymi operacje KOPi.
5. Okresla sie dlugosc kolejek FIFOi znajdujacych
sie w LBS poszczególnych EP
6. Okresla sie tabela pracy centralnego bloku
sterowania CBS
42Realizacja koncepcji sterowania lokalnego EP c.d.
Przyklad Metoda podstawienia A(N,N)?x(N)b(N)
for i1 to N step 1 for j1 to i-1 step 1
b(i)b(i)-a(i,j)x(j) endfor x(i)b(i)/a(i,i) en
dfor
43Realizacja koncepcji sterowania lokalnego EP c.d.
FS0 1j, FT1 0i
44Realizacja koncepcji sterowania lokalnego EP c.d.
45Realizacja koncepcji sterowania lokalnego EP c.d.
Program generujacy nr EP i nr taktu dla
wierzcholków typu KOP3
i KOP5
for j(N1)/2 to 2 step -1 for
i(N-j2)to(N-j2)step 1 Ti
numerEPj endfor endfor
for j2 to (N1)/2 step 1 for
i(j2)to(2N-j)step 2 Ti numerEPj
endfor endfor
FS0 1j FT1 0i
46Realizacja koncepcji sterowania lokalnego EP c.d.
Architektura MP z blokami LBS
Wyniki pracy programów generujacych nr EP i nr
taktu dla wierzcholków wszystkich typów
Tabela pracy bloku CBS
47Opracowanie struktury EP do realizacji operacji
bazowej FFT (o podstawie 2 z podzialem w czasie)
- Parametry operacji bazowej
- 4 operacje mnozenia
- 8 operacji dodawania.
48Opracowanie struktury EP do realizacji operacji
bazowej FFT (c.d.)
- Parametry operacji bazowej
- 4 operacje mnozenia
- 8 operacji dodawania
- Parametry urzadzenia
- 1 blok mnozacy
- 2 sumatory
- czas obliczen - 4 takty.
49Opracowanie struktury EP do realizacji operacji
bazowej FFT (c.d.)
- Parametry operacji bazowej
- 4 operacje mnozenia
- 8 operacji dodawania
- Parametry urzadzenia
- 1 blok mnozacy
- 2 sumatory
- czas obliczen - 4 takty.
50Opracowanie struktury EP do realizacji operacji
bazowej FFT (c.d.)
- Parametry urzadzenia równoleglego
- 4 bloki mnozace
- 8 sumatorów ( lub )
- 10 rejestrów
- czas obliczen - 1 takt.
P(U2, f, C, A)
- Parametry urzadzenia szeregowego
- 1 blok mnozacy
- 2 sumatory ( i )
- 10 rejestrów
- 5 multiplekserów
- blok sterowania (7 wyjsc)
- czas obliczen - 4 takty.