Podjela sklopa FER zimski semestar šk. g. 2007./08. Predavač: Julijana Divković Pukšec e-mail: [email protected] J.
Download ReportTranscript 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 vVi 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 aA,bB 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 aA i bB zamijene mjesta smanjenje cost funkcije biti će: gab=Da+Db-2cab Lemma 2: Ako dva elementa aA i bB 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 YB, 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 aA i bB 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: 1kn 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