Podjela sklopa FER zimski semestar šk. g. 2007./08. Predavač: Julijana Divković Pukšec e-mail: [email protected] J.

Download Report

Transcript Podjela sklopa FER zimski semestar šk. g. 2007./08. Predavač: Julijana Divković Pukšec e-mail: [email protected] J.

Podjela sklopa
FER
zimski semestar šk. g. 2007./08.
Predavač: Julijana Divković Pukšec
e-mail: [email protected]
J. Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09.
1
Podjela sistema
Podjela sklopa je nužna jer je sklop sastavljen od velikog broja elemenata.
J. Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09.
2
Podjela po nivoima
sistem
podjela sistema
štampane pločice
podjela na štampanoj pločici
čipovi
podjela na “čipu”
podsklopovi
/blokovi
J. Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09.
3
Podjela sklopa (1)
Pri podjeli sklopa
neke veze
između pojedinih
komponenti će
biti prekinute;
prekinute veze su
nepoželjne, jer
uzrokuju različite
poteškoće
(kašnjenje, broj
priključaka..).
J. Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09.
4
Podjela sklopa (2)
Pri podjeli sklopa neke će veze biti prekinute
(“off chip wiring”).
Takve veze su nepoželjne, jer uzrokuju različite
poteškoće (kašnjenje, povećani broj priključaka...).
A
B
C
D
Definicija problema:
Opći slučaj je podjela sklopa na k- dijelova,
pri čemu se sklop prikazuje kao hipergraf:
čvorovi  komponente
hiperbridovi  veze između njih
B
A
podjela sklopa  podjela (hiper)grafa
C
D
J. Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09.
5
Podjela sklopa (2)
Netlist:
Gates: A, B, C, D
Nets: {A,B,C}, {B,D}, {C,D}
A
B
C
Hipergraf:
Čvorovi: A, B, C, D
Hiperbridovi: {A,B,C}, {B,D}, {C,D}
parametar čvora: veličina/površina
parametar brida: važnost neta –težina
(weight)
D
B
A
C
D
J. Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09.
6
Podjela sklopa - definicija
Definicija:
Zadanom grafu G(V,E), u kojem svaki čvor ima veličinu s(v) i svaki brid ima težinu
(weight) w(e), treba podijeliti skup čvorova V na k-podskupova, V1, V2,....Vk tako da je
objektna funkcija optimizirana ovisno o postavljenim zahtjevima (constraints).
zahtjevi (Cons) - moraju biti ispunjeni:
- Cons1: površina podsklopa
Amin   s(v)  Amax , i  1,2....k
vVi
Obično treba podijeliti sklop na podsklopove podjednakih površina.
- Cons2: broj podsklopova
kmin  k  kmax
objektne funkcije (Obj) - treba ih poboljšati:
k
- Obj1:
k
 c i, j ,
i j
i 1 j 1
Broj presječenih veza treba biti što manji.
J. Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09.
7
Podjela sklopa - definicija
funkcija cijene (cost function -Cost) - treba biti što manja
Cost   w(e)
e
Cost = broj presječenih veza, broj bridova koji pripadaju cutset-u 
Podjela je težak (intractable) problem. Obično se provodi podjela na dva dijela;
TWPP (Two Way Partitioning Problem);
- skup od V=2n elemenata treba podijeliti na dva podskupa od po n elemenata svaki.
Cost = veličina cutseta 
Kada podjela ne bi trebala biti izbalansirana problem bi bio lako rješiv. Kriterij balansa je
bitan.
Broj uravnoteženih podjela od 2n elemenata raste eksponencijalno s brojem elemenata n.
Nepraktično je, pa i nemoguće napraviti sve podjele i izabrati najbolju. Moramo se zadovoljiti
dobrim, ali ne i nužno najboljim rješenjem;
na pr. izbalansirana podjela, ali cutset nije minimalan. To su tzv heuristička rješenja, dobra
ali ne i najbolja.
J. Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09.
8
Podjela sklopa – osnovni algoritmi
•
•
Deterministički algoritmi: Kernighan –Lin (KL) i Fiduccia-Mattheyses (FM)
Stohastički:
Simulated annealing (SA)
Zadatak: Nađi sve moguće podjele sklopa na dva dijela. Koja je od njih najbolja?
-
Za sklop sa 2n čvorova, broj mogućih podskupova je (2n)! /n!2
-
Za 4 čvora (A,B,C,D), 6 različitih podskupova s 2 čvora; odnosno postoje 3 različite
podjele:
1. X={A,B} & Y={C,D}
2. X={A,C} & Y={B,D}
3. X={A,D} & Y={B,C}
- Za 100 čvorova, 5x1028 mogućih podskupova.
J. Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09.
9
Kernighan –Lin algoritam (1)
KL algoritam – jedan od najpopularnijih TWPP algoritama
Iterativno poboljšavajući. Sklop se dijeli na dva dijela, cut set treba biti što
manji.
Veze između elemenata mogu se prikazati uz pomoć kvadratne matrice:
broj redaka = broju elemenata, čvorova
element cij predstavlja težinu bridova koji povezuju elemente “i” i “j”.
Izlaz iz algoritma je podjela sklopa na dva dijela A i B tako da je:
A B V
Početna podjela: A i B
A*  A  X  Y
cutset T 
A B  0
cab

aA,bB
Optimalna podjela: A* i B*
B*  B  X  Y
A  B  A*  B*
Problem određivanja podskupova X i Y nije jednostavan:
J. Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09.
10
Kernighan –Lin algoritam (2)
Koja je posljedica premještanja čvora iz jednog bloka u drugi?
Za čvor a u bloku A:
Ea – external cost – broj bridova koji povezuju čvor a sa elementima skupa B
Ia – internal cost čvora a u skupu A – broj bridova između tog čvora i drugih čvorova u
skupu A
Ako čvor a premjestimo iz skupa A u skup B to će se odraziti na cutset, koji se
povećava za Ia, a smanjuje za Ea. Poboljšanje je poznato kao “D vrijednost od a”:
Da=Ea-Ia
Da  0 smanjenje cutset-a,
Da  0 povećanje cutset-a.
J. Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09.
11
Kernighan –Lin algoritam (3)
Lemma 1:
Ako dva elementa aA i bB zamijene mjesta smanjenje cost funkcije biti će:
gab=Da+Db-2cab
Lemma 2:
Ako dva elementa aA i bB zamijene mjesta nove D vrijednosti označiti ćemo D’ :
D’x=Dx+2cxa-2cxb
D’y=Dy+2cyb-2cya
x  A  a
y  B  b
J. Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09.
12
Kernighan –Lin algoritam (4)
DA= smanjenje cutseta pri premještanju čvora A
external cost EA
internal cost IA
DA=EA-IA
X
B
Y
X
B
Y
A
D
C
C
A
D
DA = 2-1 = 1
DB = 1-1 = 0
J. Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09.
13
Kernighan –Lin algoritam (5)
Podjela treba biti izbalansirana.
Ako čvorovi A & B zamijene mjesta¸ gain(A,B)
gAB = DA+DB-2cAB
– cAB : broj veza između čvorova A i B edge cost for AB
X
B
Y
X
C
Y
B
C
D
A
A
D
gAB = 1+0-2 = -1
J. Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09.
14
Kernighan –Lin algoritam (6)
Poboljšanje podjele
Početna podjela (A,B) ima n elemenata u svakom skupu.
Koristeći Lemmu 1 i Lemmu 2 razvija se greedy (lakom, gramzljiv) postupak s ciljem da se
nađu dva podskupa X A i YB, tako da njihovim premještanjem cost funkcija postane
bolja.
Podskupovi X i Y mogu biti i prazni, što znači da daljnjeg poboljšanja nema.
Postupak ide na slijedeći način:
- računa se smanjenje cost-a (gain) koji se dobije ako bilo koja dva elementa aA i bB
zamijene mjesta;
- izabire se par (a1,b1) koji daje najveći gain g1;
- ovi se elementi zaključavaju i više se ne ispituju:
- računaju se nove D vrijednosti preostalih slobodnih elemenata prema Lemmi 2 i gain-ovi
prema Lemmi 1;
- određuje se drugi par (a2, b2) koji daje najveći gain g2; elementi (a2, b2) se zaključavaju.
J. Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09.
15
Kernighan –Lin algoritam (7)
- određuje se drugi par (a2, b2) koji daje najveći gain g2; elementi (a2, b2) se zaključavaju
- ukupni gain je sada G=g1+ g2
- postupak se nastavlja ; izabiru se parovi (a1,b1), (a2,b2)...... (ai,bi)........ (an,bn);
tome odgovaraju gain-ovi g1, g2,...... gi ........gn
n
-
G   gi  0
i 1
jer zamjena svih elemenata skupa A sa svim elementima skupa B
daje početnu podjelu.
J. Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09.
16
Kernighan –Lin algoritam (8)
Poboljšanje – gain-a prvih k zamjena:
1kn
Ako ne postoji k za koji bi Gk bio pozitivan, tj Gk > 0, znači da se trenutna
raspodjela ne može poboljšati i ostaje takva kakva je.
Uzima se k koji daje maksimalni Gk, napravi se zamjena svih elemenata
(a1,a2,.....ak) s elementima (b1,b2,.....bk).
KL je iterativni algoritam i opisani postupak predstavlja jedan prolaz KL
postupka.
Dobivena podjela u i-tom koraku početna je podjela u i+1 koraku.
Iterativni postupak završava kada je Gk  0, tj. kada nema daljnjeg
poboljšanja.
J. Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09.
17
Primjer podjele
X
Y
X
1
4
2
5
3
6
Početni podjela Cut = 9
Y
4
1
2
3
5
6
Optimalna podjela Cut = 5
J. Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09.
18
Algoritam KL TWPP
•
•
•
•
•
Begin
korak 1.
korak 2.
•
•
korak 3.
•
•
•
•
•
•
•
•
•
•
•
•
korak 4.
korak 5.
V = skup od 2n elemenata;
*(A,B) je početna podjela, takva da je; A  B
Računaj Dn vrijednosti za sve v  V;
queue = 0: i = 1;
A  B,  V
A'  A
B' B
'
'
izaberi ai  A i bi  B koji daje najveći gain
queue = ( ai , bi );
A B  0
gi  Dai  Dbi  2  cai bi
A'  A'  ai ; B'  B'  bi 
'
If A  0 i B' 0
then Goto korak 5.
Else
Proračunaj nove D vrijednosti za
i=i+1; Goto korak 3.
EndIf
k
Nađi k koji daje maksimalni zbroj G   gi
If G  0
then
Move
X  a1, a2 ,....ak 
Goto korak 2.
Else STOP
A'  B '
i 1
u B
i
Y  b1, b2 ,......bk 
u A;
EndIf
End
J. Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09.
19
Primjer(1)
a) sklop
Korak 1: Početna podjela
Korak 2:
b) graf
A={2,3,4} i B={1,5,6}.
A´ = A ={2,3,4} i B´ = B ={1,5,6}.
queue =0
i=1
J. Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09.
20
Primjer(2)
računanje D vrijednosti:
D1 = E1 -I1 = 1 -0 = +1
D2 = E2 -I2 = 1 -2 = -1
D3 = E3 -I3 = 0 -1 = -1
D4 = E4 -I4 = 2 -1 = +1
D5 = E5 -I5 = 1 -1 = +0
D6 = E6 -I6 = 1 -1 = +0
Korak 3: računanje gainova:
g21 = D2 + D1 -2c21 = (-1) + (+1) -2(1) =-2
g25 = D2 + D5 -2c25 = (-1) + (+0) -2(0) =-1
g26 = D2 + D6 -2c26 = (-1) + (+0) -2(0) =-1
g31 = D3 + D1 -2c31 = (-1) + (+1) -2(0) = +0
g35 = D3 + D5 -2c35 = (-1) + (+0) -2(0) =-1
g36 = D3 + D6 -2c36 = (-1) + (+0) -2(0) =-1
g41 = D4 + D1 -2c41 = (+1) + (+1) -2(0) = +2
g45 = D4 + D5 -2c45 = (+1) + (+0) -2(1) =-1
g46 = D4 + D6 -2c46 = (+1) + (+0) -2(1) =-1
J. Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09.
21
Primjer(3)
gmax= g41= g1=2
(a1,b1)=(4,1)
A’=A’-a1=2,3
B’=B’-b1=5,6
G2=g1=2
5
4
2
1
6
3
korak 4: A’ i B’ nisu prazni; proračun novih D vrijednosti
D’2=D2+2c24-2c21=-1+2. (1-1)=-1
D’3=D3=-1 (čvor 3 nije spojen s čvorovima 1 i 4)
D’5=D5+2c51-2c54=0+2. (0-1)=-2
D’6=D6+2c61-2c64=0+2. (0-1)=-2
korak 3: Di =D’i ; računanje gain-ova:
g25=D2+D5-2c25=-1+(-2)-2.0=-3
g26=D2+D6-2c26=-1+(-2)-2.0=-3
g35=D3+D5-2c35=-1+(-2)-2.0=-3
g36=D3+D6-2c36=-1+(-2)-2.0=-3
J. Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09.
22
Primjer(4)
sve su g- vrijednosti jednake, pa izabiremo par:
(a2,b2)=(3,6)
g2= g36=-3
G2=g1+ g2=2-3=-1
A’=A’-a2=2
B’=B’-b2=5
5
korak 4: :A’ i B’ nisu prazni; proračun novih D vrijednosti
D’2=D2+2c23-2c26=-1+2. 1-2.0=1
D’5=D5+2c55-2c52=-2+2. 1-2.0=0
4
2
1
6
3
korak 3: Di =D’i ; računanje gain-ova
g25=D2+D5-2c25=1+0-2.0=1
g3= g25=1
G3=g1+ g2+ g3=2-3+1=0
J. Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09.
23
Primjer(5)
korak 5: Gmax = G1=2
prihvaća se zamjena X=a1=4
nova podjela A=1,2,3
Y=b1=1
B=4,5.6
5
4
2
1
6
3
Postupak se ponavlja; nastaviti postupak i uvjeriti se da je ova iteracija ujedno i zadnja;
poboljšanja nisu moguća pa je ovo i najbolja podjela
Cijeli postupak zahtjeva dosta vremena, a naročito izbor dvaju čvorova koji će zamijeniti
mjesta; par (ai; bi) izabire se između (n - i + 1)2 parova!
J. Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09.
24
Varijacije KL algoritma
Podjela na blokove nejednolikih veličina:
Podjela grafa G=(V,E) s 2n elemenata na dva podgrafa veličina n1 i n2 tako da je n1+n2=2n
Postupak:
Podjeli skup V na dva podskupa tako da jedan ima MIN(n1,n2) čvorova, a drugi MAX(n1,n2) čvorova.
Primjeni KL algoritam počevši od koraka 2, ali je maksimalan broj čvorova koji se zamjenjuju ograničen s
MIN(n1,n2)
Ako je n1<n2, skup treba podijeliti tako da blok A ima n1 čvorova, a blok B n2; dodaj n2-n1 lažnih (dummy)
čvorova, koji nisu spojeni nigdje, i primjeni KL algoritam od koraka 2.
Na kraju makni lažne čvorove.
Elementi nejednakih veličina (površina):
- najmanji element ima jediničnu veličinu;
- svaki element veličine S nadomjesti sa S čvorova jedinične veličine povezanih bridom čiji je w(e)=
(u praksi je to vrlo veliki broj M).
KL algoritam je dobar za podjelu grafova, ali ne uzima u obzir specijalno svojstvo električkih
mreža, a to je da je grupa čvorova mora biti na istom potencijalu, tj. da je povezana jednim
netom.
J. Divković Pukšec, Fizičko projektiranje VLSI sklopova, FER, šk.g. 2008/09.
25