Organizacja i projektowanie bloków sterowania - kik

Transkrypt

Organizacja i projektowanie bloków sterowania - kik
ORGANIZACJA I PROJEKTOWANIE BLOKÓW STEROWANIA
RÓWNOLEGŁYCH JEDNOSTEK PRZETWARZAJĄCYCH
PRZEZNACZONYCH DO REALIZACJI W UKŁADACH
REPROGRAMOWALNYCH
Oleg Maslennikow
Politechnika Koszalińska, Wydział Elektroniki i Informatyki,
ul. Śniadeckich 2, 75-453 Koszalin
email: [email protected]
Streszczenie
W pracy przedstawiono koncepcję lokalnego sterowania elementami przetwarzającymi
równoległej jednostki przetwarzającej i zaproponowano metodę jej realizacji, która, w
odróżnieniu od znanych metod, jest w pełni sformalizowana. Poza tym, struktury wewnętrzne
otrzymywanych bloków sterowania są prostsze od znanych i dobrze dopasowane do struktur
wewnętrznych komórek FPGA, ponieważ zawierają tylko jedno-bitowe kolejki FIFO o
niewielkiej długości. Zastosowanie zaproponowanej metody pokazano na przykładzie projektowania bloków sterowania EP dla macierzy procesorowej realizującej metodę podstawienia.
1. WPROWADZENIE
W wyniku naukowo-technologicznego rozwoju współczesnej cywilizacji ciągle pojawiają
się nowe problemy, których rozwiązanie wymaga coraz większej mocy obliczeniowej.
Rozwiązanie większości z nich w czasie rzeczywistym mogą zapewnić tylko jednoukładowe
systemy komputerowe SoC (ang. System-on-Chip) zawierające specjalistyczne równoległe
jednostki przetwarzające.
Obecnie, już na etapie projektowania architektury równoległej jednostki przetwarzającej
systemu SoC trzeba uwzględniać kluczowe ograniczenie technologii VLSI, mianowicie to, że
zwiększenie częstotliwości pracy układu wymaga zmniejszenia długości wewnętrznych
połączeń. Na przykład, dla projektowych reguł technologicznych 0,065 μm, których realizacja
zaplanowana jest na 2008 r, wszystkie obliczenia i operacje sterowania wykonywane w ciągu
pojedynczego taktu zegarowego będą wykorzystywać tylko około 8% pola powierzchni
układu scalonego [1–3]. Wynika stąd, że w procesie projektowania architektur równoległych
jednostek przetwarzających dla systemów SoC musi być w maksymalnie możliwym stopniu
uwzględniona zasada lokalności połączeń wewnętrznych.
Przykładami równoległych architektur z regularną siecią lokalnych połączeń są
architektury macierzy procesorowych [4–7], które były realizowane jako układy ASIC już od
końca lat 80, ale nie uzyskały dużego rozpowszechnienia głównie z powodu bardzo wąskiej
specjalizacji. Wąska specjalizacja oznacza, że zwykle macierz procesorowa przeznaczona jest
do realizacji jednego zadanego algorytmu, a jej architektura otrzymywana jest w wyniku
odwzorowania tego algorytmu, zwykle zadanego grafem zależności informacyjnych,
wykorzystując specjalne metody odwzorowania [4,7–10]. Ponieważ architektura macierzy
jest w maksymalnym stopniu dopasowana do operacji i zależności informacyjnych
realizowanego algorytmu, ta architektura ma najlepszy stosunek wydajność/złożoność_sprzętowa wśród wszystkich innych architektur równoległych jednostek przetwarzających. Ale
wąska specjalizacja macierzy procesorowych powoduje wzrost ich ceny przy realizacji w
układach ASIC i uniemożliwia ich szerokie zastosowanie. Realizacja macierzy procesorowych w układach FPGA lub w obszarach reprogramowalnych systemów SoC [11–13] pozwala usunąć wymienione wady, ponieważ struktury wewnętrzne elementów przetwarzających
(EP), ich sterowanie i połączenia można łatwo dopasować do wymaganej architektury
macierzy. Dlatego realizacja algorytmów regularnych na macierzach procesorowych
implementowanych w układach reprogramowalnych jest najbardziej efektywna w porównaniu
z realizacją tych algorytmów na innych równoległych systemach (względem kryterium
wydajność/cena).
Podczas opracowywania metod projektowania architektur macierzy procesorowych
otrzymano wiele ważnych rezultatów, jednak sporo problemów, np. dotyczących
automatyzacji procesu projektowania i sterowania otrzymaną architekturą, nie zostało w pełni
rozwiązanych głównie z powodu braku masowej produkcji takich systemów. W związku z
powyższym, w następnym rozdziale pracy przedstawiono koncepcję sterowania lokalnego
równoległymi jednostkami przetwarzającymi z architekturą macierzy procesorowych. Jest ona
oparta o zasadę systolicznego przetwarzania danych, i zakłada, że w trakcie obliczeń sygnały
sterowania (podobnie, jak i dane) zostają przekazywane pomiędzy lokalnymi blokami
sterowania (LBS) poszczególnych EP jednostki za pomocą specjalnie to tego celu
przeznaczonych i przeważnie krótkich linii sterowania. Dzięki temu realizacja w/w koncepcji
pozwala zmniejszyć złożoność lokalnych bloków sterowania, oraz znacznie zmniejszyć liczbę
i długość linii sterowania w systemie. Następnie, w rozdziale trzecim zaproponowano opartą
o nią metodę projektowania struktur wewnętrznych bloków sterowania dla poszczególnych
EP macierzy procesorowej. Opracowana metoda, w odróżnieniu od znanych, jest w pełni
sformalizowana. Poza tym, struktury wewnętrzne otrzymywanych bloków LBS są najprostsze
wśród znanych oraz dobrze dopasowane do struktur wewnętrznych komórek FPGA, ponieważ
zawierają tylko jedno-bitowe kolejki FIFO różnej długości. W rozdziale czwartym
zastosowanie zaproponowanej metody jest pokazane na przykładzie projektowania bloków
sterowania EP dla macierzy procesorowej realizującej metodę podstawienia.
2. KONCEPCJA STEROWANIA LOKALNEGO ELEMENTAMI
PRZETWARZAJĄCYMI RÓWNOLEGŁEJ JEDNOSTKI
Obecnie istnieje szereg metod odwzorowania algorytmów regularnych, których
zastosowanie pozwala na otrzymanie wysokowydajnych architektur równoległych jednostek
przetwarzających SoC o pożądanych parametrach [4, 7 – 10]. Następnym etapem w
projektowaniu strukturalnym jest organizacja sterowania otrzymaną architekturą. To oznacza,
że, w pewien sposób, jednostka operacyjna każdego EP w trakcie obliczeń powinna
otrzymywać kody kolejnych wykonywanych operacji. Sposób ten, oczywiście, zależy od
realizacji poszczególnych elementów przetwarzających równoległej jednostki. Na przykład,
zakładając, że system SoC zwykle jest przeznaczony do realizacji nie jednego, lecz pewnego
zbioru algorytmów, jego EP mogą być sterowane programowo, lub nawet mogą być
zbudowane na bazie znanych mikroprocesorów bądź mikrokontrolerów. W obu przypadkach,
przed rozpoczęciem obliczeń, muszą być sformowane i zapisane do pamięci programów
każdego EP odpowiednie programy wykonawcze (ang. executing programs) [14]. Natomiast,
w przypadku realizacji równoległej jednostki w oparciu o układ reprogramowalny,
architektura jednostki, struktury wewnętrzne jej EP oraz bloki LBS są za każdym razem
dopasowywane do konkretnego algorytmu realizowanego przez jednostkę. To znacząco
upraszcza złożoność bloków sterowania, ale nie rozwiązuje problemu opracowania (w sposób
systematyczny) ich struktur wewnętrznych lub ich opisu w języku opisu sprzętu.
Jedną z możliwych koncepcji organizacji sterowania w tym przypadku jest koncepcja
sterowania lokalnego, która jest oparta o ideę maksymalnego uproszczenia bloków
sterowania znajdujących się w poszczególnych EP – tzw. lokalnych bloków sterowania
(LBS). Koncepcję tę na przykładzie jednowymiarowej macierzy procesorowej ilustruje rys. 1.
Koncepcja sterowania lokalnego zakłada istnienie w równoległej jednostce przetwarzającej
jednego centralnego bloku sterowania CBS, który ma tylko q jedno-bitowych wyjść (gdzie q
– liczba różnych typów operacji w realizowanym algorytmie), przy czym stan aktywny
wyjścia z numerem i świadczy o niezbędności wykonania operacji z kodem KOPi w tym EP,
do którego to wyjście zostało podłączone. Inaczej mówiąc, wyjście i jest znacznikiem KOPi.
W czasie pracy CBS wydaje sygnały sterowania (uaktywniając odpowiednie wyjścia
1, 2, ..., q) tylko do tych elementów przetwarzających, z którymi jest on połączony, tzn. tylko
do tych EP, w których odpowiednia operacja (KOP1, KOP2 ,..., KOPq) powinna być
wykonana najwcześniej. Np., jeśli i–ta operacja powinna być wykonywana najpierw w j–tym
EP, potem w k–tym EP, potem w l–tym EP, itd., to i–te wyjście CBS będzie połączone tylko z
i–tym wejściem lokalnego bloku sterowania j–tego EP, natomiast i–te wejścia LBS k–tego i l–
tego EP będą połączone z i–tymi wyjściami LBS odpowiednio j–tego i k–tego EP. Poza tym,
jeśli różnica w czasie pomiędzy wykonaniem i–tej operacji w j–tym a k–tym EP wynosi p
taktów, to sygnał uaktywnienia i–tej operacji będzie przechowywany w ciągu tych p taktów w
LBS j–tego EP. W tym celu, w obwodzie łączącym i–te wejście LBS z jego i–tym wyjściem
powinna się znaleźć kolejka typu FIFOi złożona z p przerzutników typu D. W związku z tym,
zgodnie z koncepcją sterowania lokalnego, LBS i–tego EP będzie zawierał tylko kolejki FIFO
różnej długości, których liczba jest równa liczbie różnych typów operacji wykonywanych w
i–tym EP, albo (co oznacza to samo) liczbie wejść lub wyjść LBS.
1
CBS 2
…
q
EP1
EP2
EP3
...
EPh
...
LBS
LBS
LBS
LBS
...
bloki
funkcyjne
bloki
funkcyjne
bloki
funkcyjne
...
bloki
funkcyjne
Rys. 1. Koncepcja sterowania lokalnego
W porównaniu z innymi koncepcjami sterowania, ta koncepcja pozwala zmniejszyć
złożoność LBS poszczególnych EP równoległej jednostki, oraz znacznie zmniejszyć liczbę i
długość linii sterowania w systemie. W związku z tym, w następnym rozdziale pracy
przedstawiono opracowaną przez autora i w pełni sformalizowaną metodę projektowania
bloków sterowania EP, która realizuje opisaną koncepcję. Pozwala to na wykorzystanie
zaproponowanej metody w systemach komputerowego wspomagania projektowania CAD, co
z kolei owocuje skróceniem czasu i kosztów projektowania systemu.
3. METODA PROJEKTOWANIA BLOKÓW STEROWANIA ELEMENTAMI
PRZETWARZAJĄCYMI RÓWNOLEGŁEJ JEDNOSTKI
Jeżeli przy pomocy jednej ze znanych metod konstruowania grafów zależności
informacyjnych algorytmów regularnych, bądź w sposób heurystyczny, otrzymano graf
algorytmu, który musi realizować jednostka, to wówczas informacje o typach poszczególnych
wierzchołków GZI mogą być przedstawione za pomocą tabeli 1, gdzie przez xi,j , yi,j oraz cj
zaznaczone są odpowiednio granice dolne, granice górne oraz przyrosty współrzędnych kj ,
(j = 1, ... , n, i = 1, ... , q), q — liczba różnych typów wierzchołków w grafie algorytmu.
Przypomnijmy, że graf zależności informacyjnych algorytmu jest jego reprezentacją
geometryczną, ponieważ wierzchołki grafu odpowiadają wykonywanym w algorytmie
operacjom, a łuki – przekazaniom zmiennych między wierzchołkami [4-10]. Należy również
zaznaczyć, że liczba q w tab. 1 nie zawsze jest równa liczbie różnych typów operacji
algorytmu, ponieważ dwa wierzchołki mają różne typy wtedy, kiedy odpowiadają wykonaniu
różnych operacji lub posiadają różne zbiory wychodzących i wchodzących do nich łuków.
Tab. 1. Tabela typów wierzchołków grafu algorytmu
Typ
wierzchołka
1
2
...
q
Współrzędna
k1
from
to
step
Współrzędna
k2
from
to
step
...
x1,1
x2,1
c1
c1
x1,2
x2,2
c1
xq,2
...
...
...
...
xq,1
y1,1
y2,1
...
yq,1
y1,2
y2,2
...
yq,2
c2
c2
c2
...
Współrzędna
kn
from
to
step
x1,n
x2,n
xq,n
y1,n
y2,n
...
yq,n
cn
cn
cn
W proponowanej metodzie zakłada się, że n-wymiarowy graf algorytmu oraz m-wymiarowa
architektura macierzy procesorowej realizującej ten algorytm zostały już otrzymane, przy
czym informacje o typach poszczególnych wierzchołków grafu są przedstawione za pomocą
tab.1, natomiast struktura jednostki oraz funkcja szeregująca poszczególne obliczenia w
czasie są określone za pomocą macierzy FS(m,n) odwzorowania przestrzennego i wektora
FT(1,n) odwzorowania czasowego. Poza tym, zakłada się, że funkcja FT(1,n) jest funkcją
liniową. Wtedy dowolny wierzchołek K=( k1 , k2 ,..., kn ), grafu jest realizowany w elemencie
przetwarzającym jednostki o współrzędnych
WEP(m) = FS (m, n) ⋅ K (n) = (k1* , k 2* ,K, k m* )
(1)
T = FT ⋅K + const1 = f1⋅k1 + f2⋅k2 + ... + fn⋅kn + const1 ,
(2)
w momencie czasu
gdzie wartość stałej const1 określa się w taki sposób, żeby pierwszy wierzchołek Kmin grafu
był realizowany w takcie numer jeden, skąd const1 = 1 - FT ⋅Kmin.
Metoda realizująca koncepcję sterowania lokalnego jest oparta na przyjętych założeniach
i zawiera następujące kroki:
1. Na podstawie danych z tab. 1 dla każdego typu wierzchołków grafu algorytmu formuje
się program (3) umożliwiający otrzymanie listy wierzchołków danego typu wraz z
numerem taktu T i współrzędnymi WEP elementu przetwarzającego (lub numerem EP,
jeśli m=1), w którym konkretny wierzchołek powinien być realizowany.
Przykładowa postać tego programu dla wierzchołków i–tego typu (i = 1, 2, ..., q) jest
następująca:
for k1 = xi,1 to yi,1 step ci,1
for k2 = xi,2 to yi,2 step ci,2
. . . . . . . . . . .
(3)
for kn = xi,n to yi,n step ci,n
{obliczenie numeru taktu T, w którym wierzchołek będzie realizowany - wzór (2)}
{obliczenie współrzędnych EP, w którym wierzchołek będzie realizowany - wzór (1)}
{drukowanie obliczonych wartości T i WEP dla wierzchołka (k1 ,k2 ,…,kn)};
endfor
. . . . . . . . . . .
endfor
endfor ,
gdzie wartości xi,j , yi,j i ci,j (j=1, 2, …, n) są pobierane z i-tego wiersza tab. 1.
2. Uruchamia się program (3), a wyniki jego pracy przedstawiają sobą dwie listy: z
numerami taktów oraz z numerami (lub współrzędnymi) elementów przetwarzających, w
których dana operacja KOPi będzie wykonywana. Listy te mogą być przedstawione, na
przykład, w postaci tabeli 2, która może zawierać kilka wierszy z jednakowym numerem
taktu T, jeśli w tym takcie kilka różnych EP wykonuje operację KOPi.
Tab. 2. Przykładowa lista numerów taktów i współrzędnych EP
Numer
taktu T
k
5
2
8
5
2
1
1
3
*
1
Współrzędne EP
…
k*
2
1
2
2
1
…
…
…
…
k m*
3
1
1
3
3. Wykonuje się uporządkowanie (sortowanie) wierszy w tabeli 2, w taki sposób, żeby po
uporządkowaniu numery taktów były umieszczone w kolejności rosnącej.
4. Na podstawie uporządkowanych danych z tab. 2 określane są połączenia między EP
wykonującymi operację KOPi. Odbywa się to w ten sposób, że i-te wyjście LBS EP
umieszczonego w wierszu l tabeli 2 (po uporządkowaniu) podłączone zostaje do i-tego
wejścia LBS elementu przetwarzającego umieszczonego w wierszu (l+1) tabeli, czyli do
tego EP, w którym operacja KOPi powinna być wykonana w najbliższym czasie. Wejście
LBS elementu przetwarzającego znajdującego w pierwszym wierszu uporządkowanej
tabeli jest podłączone do i-tego wyjścia CBS. W przypadku, kiedy tabela zawiera kilka
wierszy (l+1), (l+2), …, (l+z) z jednakowym numerem taktu T, i-te wyjście LBS EP
znajdującego się w l–tym wierszu tabeli powinno być podłączone do i-tych wejść LBS
wszystkich z EP znajdujących się w tych wierszach. Kolejność tych połączeń może być
dowolna, ale najlepszą z nich będzie ta, która daje najmniejszą długość połączeń.
5. Określa się długość kolejek FIFOi znajdujących się w LBS poszczególnych EP. Dla EP
znajdującego w l-tym wierszu tabeli 2, w obwodzie łączącym i–te wejście LBS z jego i–
tym wyjściem, długość kolejki FIFOi wynosi p komórek (przerzutników typu D), gdzie
wartość p jest równa różnicy numerów taktów znajdujących się w (l+1)–szym a l–tym
wierszem tabeli 2.
Dodatkową zaletą zaprojektowanych w ten sposób bloków sterowania EP jest to, że ich
struktura wewnętrzna jest dobrze dopasowana do struktur wewnętrznych komórek układów
reprogramowalnych FPGA, ponieważ zawiera tylko jedno-bitowe i nie duże kolejki FIFO.
4. PRZYKŁAD. PROJEKTOWANIE LOKALNYCH BLOKÓW STEROWANIA DLA
EP RÓWNOLEGŁEJ JEDNOSTKI REALIZUJĄCEJ METODĘ PODSTAWIENIA
Metoda podstawienia jest przeznaczona do rozwiązywania układów równań liniowych
postaci A ⋅ x = b , w których macierz współczynników A(N,N)={ aij } jest macierzą trójkątną
dolną. Przykładowy algorytm realizujący metodę podstawienia może być przedstawiony za
pomocą fragmentu programu (2.34), operującego wyłącznie na elementach macierzy A
znajdujących się na przekątnej głównej i poniżej przekątnej głównej.
for i = 1 to N step 1
for j = 1 to i-1 step 1
b(i)= b(i) - a(i, j)*x(j)
endfor
x(i)= b(i)/ a(i, i)
endfor
(4)
Graf bazowy G1 zależności informacyjnych algorytmu (4) jest dwuwymiarowy i zawiera
dwa typy wierzchołków. Wierzchołki pierwszego typu odpowiadają obliczeniu pierwiastków
x(i), natomiast wierzchołki drugiego typu – modyfikacji elementów wektora b. Dla przypadku
N = 7 graf G1 przedstawiony został na rys. 2.a, gdzie wierzchołki pierwszego typu zaznaczone
są czarnym kolorem. Rys.2.b przedstawia przekształcony graf bazowy G2, cechujący się
prawie dwukrotnie mniejszą szerokością wzdłuż osi j. Liczba różnych typów wierzchołków w
nowym grafie G2 wynosi q = 6. Tabela 3 zawiera informacje o lokalizacji wierzchołków
poszczególnych typów w grafie G2.
a)
b)
j
j*
b1
i
1,1
x1
b2
b3
1,2
1,3
1,4
2,3
2,4
2,2
x2
b4
3, 3
x3
b5
b6
1,5
2,5
b7
1,6
1,7
2,6
2,7
3,4
3,5
3,6
3,7
4,4
4,5
4,6
4,7
5,6
5,7
6,6
6,7
i*
1,1 (1,1)
(1,2)
(2,1)
(1,3)
1,2 (2,2)
2,2 (3,1)
(3,2)
5,5
(4,3)
2,3
x5
(6,1)
x6
7,7
4,4
(2,4)
1,3 (3,3)
3,3 (5,1)
x4
(1,4)
3,4
1,4 (4,4)
2,4 (5,3)
1,5 (5,4)
1,6 (6,3)
2,5 (6,4)
1,7
(8,1)
2,6
4,5 (8,2)
2,7 (8,3)
(7,4)
3,6
(8,4)
3,7
(9,4)
x7
c)
5,5
EP1
EP2
LBS
EP3
LBS
LBS
4,6
5,6
EP4
LBS
(11,2)
4,7
5,7 (11,3)
6,6
bloki
funkcyjne
bloki
funkcyjne
bloki
funkcyjne
bloki
funkcyjne
(12,3)
6,7
x
b
(13,1)
7,7
Rys. 2. Graf bazowy G1 (a) i przekształcony G2 (b) oraz architektura S2 macierzy procesorowej (c)
realizującej metodę podstawienia
W celu otrzymania architektury macierzy procesorowej realizującej algorytm (4),
wykorzystano funkcje odwzorowania przestrzennego FS = [i * j*] = [0 1] oraz odwzorowania
szeregującego FT =[1 0]. W ten sposób powstaje architektura S2 równoległej jednostki
przetwarzającej (przedstawiona na rys. 2c) posiadająca (N+1)/2 elementów przetwarzających
(dwóch różnych typów), jedno wejście (magistralę) do wprowadzenia elementów wektora b, i
jedno wyjście dla wyprowadzenia wyników – elementów wektora x.
Tab. 3. Typy poszczególnych wierzchołków grafu G2 metody podstawienia
Typy
KOP
from
1
2
3
4
5
6
1
j*
N – j*+2
3
j* + 2
N – j* + 4
Współrzędna i*
to
1
j*
N – j*+2
2 ⋅N – 1
2⋅N – j*
N + j* – 2
Współrzędna j*
to
step
from
1
1
1
2
2
2
1
2
(N+1)/2
1
2
(N+1)/2
1
(N+1)/2
2
1
(N+1)/2
3
step
1
1
–1
1
1
–1
Struktury wewnętrzne pierwszego oraz j*-tego EP (j*=2, 3,..., (N-1)/2) bez bloków LBS
przedstawiono odpowiednio na rys. 3a i rys. 3b, gdzie DC oznacza dekoder przekształcający
kod operacji KOP w sygnały sterujące poszczególnymi blokami funkcyjnymi, MUX oznacza
multiplekser, DIV – blok dzielenia, R – rejestr, SM – sumator, MUL – blok mnożący, a FIFO
– kolejkę o długości N komórek. Należy zaznaczyć, że linie przerywane w blokach MUX
pokazują przepływ danych w przypadku podania jedynki logicznej na odpowiednie wejścia
sterujące, a rejestry R2 i R3 pełnią rolę elementów opóźniających o jeden takt zegarowy.
a)
b)
KOP
EP1
KOP
EPj*
DC
DC
MUX
MUX1
“1”
„1”
SM
R1
DIV
R
MUL
F
I
F
O
F
I
F
O
MUX2
„1”
R2
b1
R3
bj
Rys. 3. Struktury wewnętrzne elementów przetwarzających architektury S2
Przykładowa postać programu (3) dla wierzchołków trzeciego typu (KOP3) reprezentuje
konstrukcja (5).
for j* = (N+1)/2 to 2 step -1
for i* = (N - j* + 2) to (N - j* + 2) step 1
T = i*
numerEP = j*
endfor
endfor .
(5)
Wyniki pracy programu (5), jak i programów dla pozostałych kodów KOP, opracowanych
zgodnie z szablonem (3), formują listy z numerami taktów oraz z numerami EP, w których
odpowiednie operacje KOP będą wykonywane. Listy te (posortowane według zwiększenia
wartości T) dla wszystkich numerów KOP są umieszczone w tabeli 4.
Tab. 4. Lista z numerami taktów i EP, w których odpowiednie operacje KOP będą wykonywane.
KOP1
T
EP
1
1
KOP2
T
EP
2
2
3
3
4
4
KOP3
T
EP
5
4
6
3
7
2
KOP4
T
EP
3
1
5
1
7
1
9
1
11
1
13
1
KOP5
T
EP
4
2
5
3
6
4
6
2
7
3
8
4
8
2
9
3
10
4
10
2
11
3
12
4
KOP6
T
EP
7
4
8
3
9
4
Analiza danych z pierwszych dwóch kolumn tabeli 4 świadczy, że sygnał KOP1 będzie
podawany z wyjścia centralnego bloku sterowania na wejście LBS pierwszego EP i nie będzie
przekazywany do żadnego innego EP jednostki. To samo dotyczy sygnału sterującego KOP4.
Z tego powodu, LBS pierwszego EP będzie zawierał tylko dwie linie doprowadzające wymienione sygnały do dekodera DC, który z kolei przekształca te sygnały w sygnały sterowania
multiplekserem MUX i zapisu do rejestru R zgodnie z następującymi wzorami:
MUX = KOP1
i
R = KOP1 ⋅ KOP4 ∨ KOP4 ⋅ KOP1 .
(6)
Analiza trzeciej i czwartej kolumny tab. 4 wykazuje, że drugie wyjście CBS
(odpowiadające operacji KOP2) będzie połączone tylko z wejściem LBS drugiego EP,
natomiast z wyjścia tego LBS sygnał KOP2 będzie przekazany z opóźnieniem o jeden takt na
wejście LBS trzeciego EP, a z jego wyjścia (też z opóźnieniem o 1 takt) na wejście LBS
czwartego EP. W ten sam sposób będą połączone wejścia LBS drugiego, trzeciego i
czwartego EP w celu przekazania sygnału KOP5. W wyniku tego powstaje ostateczna
architektura jednostki przetwarzającej uwzględniająca struktury wewnętrzne LBS wszystkich
EP i cechująca się wyłącznie lokalnymi połączeniami. Dla przypadku N=7 ta architektura
została przedstawiona na rys. 4, gdzie cyfry umieszczone obok wyjść bloku CBS oznaczają
numery KOP, a przekreślone kwadraciki przerzutniki typu D. Dekodery DC elementów
przetwarzających z numerami od 2 do (N+1)/2 przekształcają otrzymywane sygnały KOP2,
KOP3, KOP5 i KOP6 w sygnały sterowania multiplekserów MUX1 i MUX2 oraz w sygnał
zapisu do rejestru R1 zgodnie z następującymi wyrażeniami:
MUX 1 = KOP2 ∨ KOP3 , MUX 2 = KOP2 ∨ KOP5
R1 = KOP2 ⋅ KOP3 ⋅ KOP5 ⋅ KOP6 ∨ KOP3 ⋅ KOP2 ⋅ KOP5 ⋅ KOP6 ∨
∨ KOP5 ⋅ KOP3 ⋅ KOP2 ⋅ KOP6 ∨ KOP6 ⋅ KOP3 ⋅ KOP5 ⋅ KOP2
(7)
.
CBS
1 4
5 2
EP1
3 6
EP2
LBS
bloki
funkcyjne
EP3
EP4
LBS
LBS
LBS
bloki
funkcyjne
bloki
funkcyjne
bloki
funkcyjne
x
b
Rys. 4. Architektura S2 macierzy procesorowej wraz z blokami sterowania LBS i CBS
Praca bloku CBS polega na ustawieniu jedynek logicznych na swoich wyjściach we
właściwych momentach czasu. Tabelę pracy bloku CBS tworzy się na podstawie danych z
tab. 4, poprzez usunięcie z niej wszystkich wierszy z numerami EP, z którymi CBS nie ma
połączeń bezpośrednich. Dla przypadku N = 7 jest ona przedstawiona w tabeli 5.
Należy zaznaczyć, że np. zwiększenie rozmiaru N macierzy danych wejściowych do
rozmiaru N1, spowoduje pojawienie się w jednostce (N1 – N)/2 dodatkowych EP oraz
wydłużenie czasu realizacji algorytmu o (N1 – N) taktów. Jednak struktura wewnętrzna
poszczególnych LBS, jak i bloków funkcyjnych EP jednostki wraz z siecią ich połączeń
zostaną bez zmian. Ważność tej zalety rośnie w przypadku realizacji systemu SoC lub jego
jednostki przetwarzającej w układach reprogramowalnych.
Tab. 5. Tabela pracy bloku CBS architektury S2
KOP1
T
EP
1
1
KOP2
T
EP
2
2
KOP3
T
EP
5
4
KOP4
T
EP
3
1
5
1
7
1
9
1
11
1
13
1
KOP5
T
EP
4
2
6
2
8
2
10
2
KOP6
T
EP
7
4
9
4
5. PODSUMOWANIE
Na podstawie wykonanej w niniejszej pracy analizy ustalono, że architektury macierzy
procesorowych mają najlepszy stosunek wydajność/złożoność_sprzętowa wśród innych
możliwych architektur równoległych jednostek przetwarzających dla jednoukładowych
systemów czasu rzeczywistego; oraz że realizacja algorytmów regularnych na macierzach
procesorowych implementowanych w układach reprogramowalnych jest najbardziej
efektywna w porównaniu z realizacją tych algorytmów na innych równoległych systemach
(względem kryterium wydajność/cena). W związku z tym, przedstawiono koncepcję
sterowania lokalnego równoległymi jednostkami przetwarzającymi z architekturą macierzy
procesorowych, która jest oparta o zasadę systolicznego przetwarzania danych, i zakłada, że
w trakcie obliczeń sygnały sterowania (podobnie, jak i dane) zostają przekazywane pomiędzy
lokalnymi blokami sterowania poszczególnych elementów przetwarzających jednostki za
pomocą specjalnie to tego celu przeznaczonych i przeważnie krótkich linii sterowania. Dzięki
temu realizacja w/w koncepcji pozwala zmniejszyć złożoność lokalnych bloków sterowania,
oraz znacznie zmniejszyć liczbę i długość linii sterowania w systemie. W oparciu o tę
koncepcję opracowano metodę projektowania struktur wewnętrznych bloków sterowania dla
poszczególnych EP macierzy procesorowej, która w odróżnieniu od znanych, jest w pełni
sformalizowana. Poza tym, struktury wewnętrzne otrzymywanych bloków sterowania są
najprostsze wśród znanych oraz dobrze dopasowane do struktur wewnętrznych komórek
FPGA, ponieważ zawierają tylko jedno-bitowe kolejki FIFO o niewielkiej długości. Pozwala
to na wykorzystanie zaproponowanej metody w systemach komputerowego wspomagania
projektowania CAD, co z kolei owocuje skróceniem czasu i kosztów projektowania systemu.
LITERATURA
[1] Matzke D. Will Physical Scalability Sabotage Performance Gains? Computer, Vol.30, N.9, 1997,
s. 37–39.
[2] Berthet C.: Going Mobile: The Next Horizont for Multi-million Gate Designs in the SemiConductor Industry. Proc. Int.Conf. DAC’2002, 2002, s. 375–378.
[3] Lackey D.E., Zuchowski P.S.: Designing Mega-ASICs in Nanogate Technologies. Proc. Int.Conf.
DAC’2003, 2003, s. 769–775.
[4] Quinton P., Robert Y. Systolic algorithms and architectures. Prentice Hall, Engl. Cliffs, 1991.
[5] Kucharew G. A., Tropczenko A. Ju., Szmerko W. P.: Sistoliczeskie procesory dla obrabotki
signalow. Minsk, Białoruś, 1988, 127 s.
[6] Moreno J.H., Lang T. Matrix computations on systolic-type arrays. Kluwer Acad.Publ., 1992.
[7] S. Y. Kung. VLSI Array Processors. Englewood Cliffs, N.J., Prentice Hall, 1988.
[8] Cosnard M. Designing parallel algorithms for linearly connected processors and systolic arrays.
Advances in Parallel Computing, 1990, v.1, s. 273–317.
[9] Barada H., and El-Amawy A.: A methodology for algorithm regularization and mapping
into time-optimal VLSI arrays. Parallel Computing, 1993, N 19, s. 33–61.
[10] Wyrzykowski R., Kanevski J.S., Maslennikov O. Mapping recursive algorithms into processor
arrays. Proc. Int. Workshop „Parallel Numerics'94”, Smolenice, (Slovakia), 1994, pp.169-191.
[11] Abramovici M., Stroud C., Emmert M.: Using Embedded FPGAs for SoC Yield Improvement.
Proc. Int.Conf. DAC’2002, 2002, р. 713–720.
[12] Zeidman B. The Future of Programmable Logic. Embedded Systems Programming, 10/2/2003.
[13] Takahashi D. Reconfigurable chips make a comeback. Electronic Business, 8/1/2003.
[14] Maslennikov O. Systematic generation of executing programs for processor elements in parallel
ASIC or FPGA-based systems and their transformation into VHDL-descriptions of the processor
element control units. Lecture Notes in Computer Science, Springer, 2002, Vol.2328, s. 272–279.
ORGANIZATION AND DESIGN OF CONTROL BLOCKS FOR
PARALLEL PROCESSING UNITS DESTINED FOR
IMPLEMENTATION IN REPROGRAMMABLE DEVICES
Oleg Maslennikow
Technical University of Koszalin, Department of Electronics and Informatics,
ul. Sniadeckich 2, 75-453 Koszalin
email: [email protected]
Abstract
In this paper, the conception of the control of parallel processing units with processor
array architecture, named the local control conception, is presented. This conception is based
on the idea of the systolic type distribution of control signals between processor elements in
the target parallel processing unit. Realization of this conception causes the cardinally
reduction of numbers and lengths of the control lines in the target architecture in comparison
with others known control conceptions, as well as the reduction of a complexity of local
control units in their implementation in reconfigurable FPGA-based devices. Then, the
method of the design of local control unit internal structures is proposed. This method is
based on the above conception and is fully formalized. This method has been used for design
of local control units for processor array architecture destined for realization of the forward
substitution algorithm.

Podobne dokumenty