225
ARHITEKTURA MIKROSISTEMA - materijal za pripremu ispita – Pripremio: dr. Goran Lj. Đorđević, predmetni nastavnik

ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

  • Upload
    others

  • View
    18

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

ARHITEKTURA MIKROSISTEMA - materijal za pripremu ispita –

Pripremio: dr. Goran Lj. Đorđević, predmetni nastavnik

Page 2: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

2

Page 3: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

3

SADRŽAJ

1 Principi digitalnog projektovanja .........................................................................................................................7

1.1 Reprezentacije dizajna..................................................................................................................................7

1.2 Nivoi apstrakcije ........................................................................................................................................11

1.3 Proces projektovanja ..................................................................................................................................13

1.3.1 Specifikacija dizajna...........................................................................................................................13

1.3.2 Razvoj biblioteke komponenti ............................................................................................................13

1.3.3 Sinteza dizajna....................................................................................................................................13

1.3.4 Analiza dizajna ...................................................................................................................................14

1.3.5 Dokumentovanje dizajna ....................................................................................................................14

1.3.6 Proizvodnja.........................................................................................................................................14

1.4 CAD alati ...................................................................................................................................................15

1.4.1 Opis i modelovanje dizajna ................................................................................................................15

1.4.2 Alati za sintezu ...................................................................................................................................15

1.4.3 Verifikacija i simulacija......................................................................................................................16

1.4.4 Fizičko projektovanje .........................................................................................................................16

1.4.5 Testiranje ............................................................................................................................................16

1.5 Tipičan proces projektovanja .....................................................................................................................16

1.6 Mapa procesa projektovanja.......................................................................................................................17

1.7 Zaključak....................................................................................................................................................18

2 Logičko projektovanje .......................................................................................................................................19

2.1 Bulova algebra............................................................................................................................................19

2.1.1 Prekidačke funkcije ............................................................................................................................21

2.1.2 Osnovne teoreme prekidačke algebre .................................................................................................22

2.1.3 Generalizovane teoreme prekidačke algebre ......................................................................................25

2.1.4 Princip dualnosti .................................................................................................................................26

2.1.5 Kanoničke forme ................................................................................................................................29

2.1.6 Standardne forme................................................................................................................................33

2.1.7 Logičke operacije ...............................................................................................................................34

2.1.8 Digitalna logička kola.........................................................................................................................35

2.1.9 Više-ulazna i više-operatorska logička kola .......................................................................................38

2.2 Minimizacija prekidačkih funkcija.............................................................................................................41

2.2.1 Karnaughova mapa .............................................................................................................................42

2.2.2 Minimizacija prekidačkih funkcija pomoću Karnaughovih mapa ......................................................46

2.2.2.1 Terminologija .............................................................................................................................46

2.2.2.2 Procedura za minimizaciju..........................................................................................................48

2.2.2.3 Minimizacija POS izraza ............................................................................................................50

2.2.2.4 Minimizacija nepotpuno definisanih funkcija.............................................................................51

Page 4: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

4

2.3 VLSI tehnologije ....................................................................................................................................... 53

2.3.1 Tehnološko mapiranje za gejtovska polja.......................................................................................... 57

2.3.2 Tehnološko mapiranje za custom biblioteke...................................................................................... 63

2.4 Zaključak ................................................................................................................................................... 66

3 Komponente digitalnih sistema ......................................................................................................................... 67

3.1 Kombinacione komponente....................................................................................................................... 67

3.1.1 Sabirač sa rednim prenosom.............................................................................................................. 67

3.1.2 Sabirač/oduzimač............................................................................................................................... 68

3.1.3 Logička jedinica................................................................................................................................. 69

3.1.4 Aritmetičko-logička jedinica ............................................................................................................. 70

3.1.5 Dekoderi...............................................................................................................................................73

3.1.5.1 Dekoderske mreže...................................................................................................................... 75

3.1.6 Mulitiplekseri..................................................................................................................................... 78

3.1.7 Magistrale .......................................................................................................................................... 80

3.1.8 Demultiplekser................................................................................................................................... 82

3.1.9 Koderi .................................................................................................................................................82

3.1.9.1 Binarni koderi ............................................................................................................................ 82

3.1.9.2 Prioritetni koderi ........................................................................................................................ 83

3.1.10 Komparatori magnitude ................................................................................................................... 86

3.1.10.1 Iterativne komparatorske mreže............................................................................................... 88

3.1.10.2 Hijerarhijske komparatorske mreže ......................................................................................... 88

3.1.11 Kombinacioni pomerači i rotatori.................................................................................................... 89

3.1.11.1 Barel pomerač .......................................................................................................................... 90

3.1.12 ROM memorije................................................................................................................................ 91

3.1.13 Programabilna logička polja ............................................................................................................ 93

3.2 Sekvencijalne komponente ........................................................................................................................ 95

3.2.1 Leč kola i flip-flopovi ........................................................................................................................ 96

3.2.1.1 Leč kola...................................................................................................................................... 96

3.2.1.2 Flip-flopovi ................................................................................................................................ 98

3.2.2 Konačni automati............................................................................................................................. 104

3.2.3 Sinteza sekvencijalne logike ............................................................................................................ 105

3.2.3.1 Unos modela konačnog automata ............................................................................................ 106

3.2.3.2 Minimizacija stanja .................................................................................................................. 107

3.2.3.3 Kodiranje stanja ....................................................................................................................... 109

3.2.3.4 Izbor memorijskih elemenata................................................................................................... 112

3.2.3.5 Optimizacija i tajming.............................................................................................................. 114

3.2.4 Memorijske komponente ................................................................................................................. 115

3.2.4.1 Registri ......................................................................................................................................115

3.2.4.2 Pomerački registri .................................................................................................................... 117

3.2.4.3 Brojači...................................................................................................................................... 118

Page 5: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

5

3.2.4.4 Registarski fajlovi .....................................................................................................................121

3.2.4.5 RAM memorija .........................................................................................................................123

3.2.4.6 Stek........... ................................................................................................................................127

3.2.4.7 FIFO..........................................................................................................................................131

3.2.5 Sekvencijalne staze podataka ...........................................................................................................134

3.2.6 Paralelne staze podataka...................................................................................................................140

3.2.7 Projektovanje upravljačke jedinice...................................................................................................141

4 ASM Dijagrami................................................................................................................................................145

4.1 Stanja............ ............................................................................................................................................145

4.2 Komande ..................................................................................................................................................146

4.2.1 Postavljanje jednobitnih signala .......................................................................................................146

4.2.2 Postavljanje višebitnih signala..........................................................................................................146

4.2.3 Registarski prenos ............................................................................................................................147

4.3 Odluke........ ..............................................................................................................................................148

4.3.1 Relacije . ...........................................................................................................................................148

4.3.2 Eksterni statusi..................................................................................................................................149

4.4 Ulazi i izlazi ASM dijagrama ...................................................................................................................149

4.4.1 ASM ulazi.........................................................................................................................................150

4.4.1.1 Statusni ulazi.............................................................................................................................150

4.4.1.2 Ulazi podataka ..........................................................................................................................150

4.4.2 ASM Izlazi........................................................................................................................................151

4.4.2.1 Upravljački izlazi......................................................................................................................151

4.4.2.2 Izlazi podataka ..........................................................................................................................151

4.5 Projektovanje ¨odozgo-naniže¨.................................................................................................................151

4.5.1 Opis ponašanja..................................................................................................................................152

4.5.2 Razrada........ .....................................................................................................................................152

4.5.3 Realizacija ........................................................................................................................................153

4.5.4 Automatsko projektovanje................................................................................................................153

4.6 Primer opisa ponašanja.............................................................................................................................153

4.6.1 Interfejs.............................................................................................................................................153

4.6.2 ASM sa ugrađenim softverskim zavisnostima..................................................................................154

4.6.3 Eliminacija stanja TEST...................................................................................................................157

4.6.4 Eliminacija stanja INIT ....................................................................................................................159

4.6.5 Pamćenje količnika...........................................................................................................................159

4.6.6 Varijacije unutar petlje .....................................................................................................................161

4.6.7 Eliminacija stanja NULA3 ...............................................................................................................163

4.7 Primer razrade ..........................................................................................................................................165

4.7.1 Prvi primer........................................................................................................................................165

4.7.2 Drugi primer .....................................................................................................................................168

4.7.3 Treći primer ......................................................................................................................................168

Page 6: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

6

4.7.4 Poređenje metodičke i staze podataka zasnovane na ALU jedinici ................................................. 170

4.8 Primeri realizacije.................................................................................................................................... 170

4.8.1 Prvi primer ....................................................................................................................................... 170

4.8.2 Drugi primer .................................................................................................................................... 172

4.9 Hijerarhijsko projektovanje ..................................................................................................................... 172

4.9.1 Hijerarhija u prvom primeru ............................................................................................................ 174

4.10 Napredne ASM tehnike ......................................................................................................................... 176

4.10.1 Murove i Milijeve mašine.............................................................................................................. 176

4.10.2 Primer Milijeve mašine.................................................................................................................. 176

4.10.3 Primer razrađene Milijeve mašine ................................................................................................. 177

4.10.4 Primer strukturne Milijeve mašine................................................................................................. 178

4.10.5 Milijeva verzija mašine za deljenje................................................................................................ 178

4.10.5.1 Eliminacija stanja INIT (po drugi put)................................................................................... 178

4.10.5.2 Spajanje stanja IZRAČUNAVANJE_1 i IZRAČUNAVANJE_2 ......................................... 179

4.10.5.3 Uslovni upis u registar r2...................................................................................................... 180

4.10.5.4 Ranije postavljanje signala SPREMAN................................................................................. 181

4.11 Realizacija kontrolera ¨one-hot¨ metodom ............................................................................................ 182

4.11.1 Konverzija Murove ASM u ¨one-hot¨ kontroler ............................................................................ 182

4.11.1.1 Prvi primer ............................................................................................................................. 183

4.11.2 Konverzija Milijeve ASM u ¨one-hot¨ upravljačku jedinicu ......................................................... 185

4.11.2.1 Prvi primer ............................................................................................................................. 185

5 Sinteza staze podataka..................................................................................................................................... 189

5.1 Dodela registara....................................................................................................................................... 193

5.2 Dodela funkcionalnih jedinica................................................................................................................. 198

5.3 Dodela magistrala.................................................................................................................................... 203

5.4 Grupisanje registara................................................................................................................................. 205

5.5 Ulančavanje funkcionalnih jedinica ........................................................................................................ 207

5.6 Usitnjavanje ciklusa................................................................................................................................. 208

5.7 Protočne funkcionalne jedinice ............................................................................................................... 209

5.8 Protočnost staze podataka........................................................................................................................ 212

5.9 Protočne upravljačke jedinice.................................................................................................................. 214

5.10 Raspoređivanje operacija....................................................................................................................... 216

5.10.1 Algoritmi ASAP i ALAP............................................................................................................... 218

5.10.2 Prioriteti operacija ......................................................................................................................... 219

5.10.3 Resursima ograničeno raspoređivanje ........................................................................................... 220

5.10.4 Vremenom ograničeno raspoređivanje .......................................................................................... 221

5.11 Zaključak. .............................................................................................................................................. 225

Page 7: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

1 Principi digitalnog projektovanja

Napredak VLSI1 tehnologije omogućio je proizvodnju mikročipova sa nekoliko miliona tranzistora. S obzirom da je manuelno projektovanje u toj meri složenih integrisanih kola praktično nemoguće, napredak VLSI tehnologije uslovio je takođe i pojavu industrije CAD2 alata, koja se bavi razvojem softverskih sredstava i alata za podršku projektovanju mikročipova. Kao rezultat toga, mnoge standardne tehnike digitalnog projektovanja danas su ugrađene u CAD alate. Rasterećen projektovanja na niskom nivou, projektant može slobodno da se usredsredi na proces projektovanja u celini, počev od specifikacije zahteva do fabrikacije konkretnog proizvoda. Međutim, sa tako širokim fokusom, savremeni projektanti su u poziciji da moraju vladati različitim tehnikama kao što su tehnike za analizu i sprecifikaciju zahteva, modelovanje dizajna, softver-hardver kodizajn, sintezu, verifikaciju, simulciju i testiranje mikročipova. U tom smislu, definicija pojma stručnjak za projektovanje digitalnih kola i sistema je promenjena; to više nije ekspert za jednu konkretnu tehniku projektovanja, već neko ko poznaje principe projektovanja i koristi CAD alate u cilju istraživanja alternativnih rešenja i implementacionih tehnika.

1.1 Reprezentacije dizajna

Proces projektovanja svakog konkretnog proizvoda predstavlja složenu aktivnost u koju su, svako sa svojim specifičinim zadacima, uključeni različiti profili stručnjaka. Na primer, služba za marketing ispituje tržište i postaljva zahteve koje novi proizvod treba da ispuni. Tehnolozi biraju implementacionu tehnologiju, sastavne komponente i dobavljače tih komponenti. Grupa za podršku pribavlja ili razvija softverska sredstva koja će biti korišćena za projektovanje proizvoda i svakog njegovog dela. Projektanti pretaču polazne zahteve u proizvodnu dokumentaciju. Test inženjeri osmišljavaju strategiju testiranja koja će omogućiti verifikaciju ispravnosti projektovanog rešenja kao i ispravan rad gotovih proizvoda. Konačno, inženjeri proizvodnje razvijaju plan proizvodnje i prizvodnog procesa.

Svaka osoba uključena u proces razvoja novog proizvoda, počev od definicije zahteva, preko projektovanja do proizvodnje, na proizvod gleda iz svog, donekle različitog, ugla posmatranja i u svom radu koristi neke specifične informacije. Iz tog razloga, svaki proizvod, a time i svaki projekat, zahteva nekoliko različitih reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže i na koje se stavlja naglasak. Pored toga, jedna ista reprezentnacija često zahteva različite nivoe detaljnosti u različitim fazama projektnog ili proizvodnog ciklusa. Tri tipa reprezentacija koje su najčešće u upotrebi su: bihejvioralna, strukturna i fizička reprezentacija.

Bihejvioralna ili funkcionalna reprezentacija je ona koja na projekat gleda kao na crnu kutiju i fokusira se na opis njegovog ponašanja u funkciji ulaza i proteklog vremena. Drugim rečima, bihejvioralna reprezentacija opisuje funkcionalnost, ali ne i realizaciju konkretnog dizajna. Ova reprezentacija definiše odziv crne kutije na bilo koju kombinaciju vrednosti ulaznih promenljivih, ali pri tome ništa ne kazuje o tome kao napraviti crnu kutiju korišćenjem raspoloživih komponenti.

Strukturna reprezentacija je ona koja definiše crnu kutiju kao skup komponenti i njihovih veza. Za razliku od bihejvioralne reprezentacije, ovde se opisuje realizacija proizvoda, ali bez direktnog pozivanja na njegovu funkcionalnost. Naravno, u nekim slučajevima, funkcionalnost se može odrediti na osnovu funkcije sastavnih komponenti. Međutim, dokučiti funkciju nekog sistema na ovaj način je teško i podložno greškama. Funkcionalnost komponente ne mora biti u potpunosti iskorišćena ili može biti izmenjena nekim specifičnim kodiranjem njenih ulaza i izlaza. Takođe, u slučajevima kada je broj komponenti veliki, praktično je nemoguće otkriti njihovu zajedničku funkcionalnost, naročito danas kad tehnologija omogućava proizvodnju mikročipova sa nekoliko desetina miliona tranzistora.

1VLSI(Very Large Scale Integration) je pojam koji ukazuje na integrisana kola veoma visokog stepena integracije. 2 CAD(Computer Aided Design) – projektovanje uz pomoć računara

Page 8: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

8

Konačno, fizička reprezentacija je ona koja opisuje fizičke karakteristike crne kutije, koje se odnose na dimenzije i poziciju svake pojedinačne komponente i veze sadržane u strukturnom opisu. Uočimo da strukturna reprezentacija definiše sastav i povezanost sistema, ali tek fizička reprezentacija opisuje precizan prostorni raspored različitih komponenti. Drugim rečima, fizička reprezentacija se koristi za opis dizajna nakon što je on fabrikovan, navodeći njegovu težinu, veličinu, disipaciju toplote, potrošnju kao i poziciju svakog ulaznog i izlaznog priključka.

PRIMER 1.1 Elektronski budilnik

Problem: Razviti bihejvioralnu, strukturnu i fizičku reprezentaciju projekta jednostavnog elektronskog budilnika (sata sa alarmom).

Rešenje: Jednostavan elektonski budilnik se sastoji od displeja sa tečnim kristalom (LCD) koji pokazuje sekunde, minute i sate i pet prekidača koji se koriste za: podešavanje vremena (S1), podešavanje alarma, tj. zvonjenja (S2), podešavanja minuta (S3), podešavanja sati (S4) i dozvole zvonjenja (S5). Kada je S1

zatvoren, omogućeno je podešavanje vremena pomoću prekidača S3 i S4. Svaki pritisak na S3 ili S4 uvećava minute ili sate za 1, što se može pratiti na displeju. Kada je S2 zatovoren, na sličan način pomoću prekidača S3 i S4, omogućeno je podešavanje vremena buđenja. U toku ovog podešavanja na displeju je prikazano vreme buđenja. Konačno, kada je S5 zatvoren, budilnik je aktiviran, a onda kada sat dostigne vreme buđenja emituje se jednoličan zvučni signal u trajanju od 5s.

Ponašanje elektronskog budilnika (tj. bihejvioralna reprezentacija) može se opisati sa tri konkurentna zadatka ili procesa: sat, podešavanje i zvono. Svaki od ovih procesa može se opisati uz pomoć jednostavnog dijagrama toka koji sadrži grafičke simbole kao što su rombovi (koji ukazuju na pitanja) i pravougaonike (koji ukazuju na izračunavanja). Predstava u vidu dijagrama toka, sva tri procesa, prikazana je na Sl. 1.1, Sl. 1.3 i Sl. 1.3.

Kao što se može videti sa Sl. 1.1, proces sat ima jedan ulazni signal Takt i šest internih promenljivih: Sekunde, Minuti, Sati, Sdisplej, Mdisplej i Cdisplej. Takt je periodični signal, periode 1s, koji se koristi za brojanje sekundi. Tri interne promenljive, Sekunde, Minuti i Sati, koriste se za brojanje sekundi, minuta i sati. Promenljive Sekunde i Minuti su brojači po modulu 60 (nakon 59, vraćaju se na 0). Promenljiva Sati je brojač po modulu 24. U toku rada, uvek kada se signal Takt promeni sa 0 na 1 (što je u dijagramu toka naznačeno simbolom ↑) promenljiva Sekunde uvećava se za jedan. Slično, uvek kada se promenljiva Sekude posle 59 vrati na 0, promenljiva Minuti se uveća za 1, a uvek kada Minuti postane 0, Sati se uveća za 1.

Preostale tri interne promenljive, Sdisplej, Mdisplej i Cdisplej, čuvaju vrednosti koje su trenutno prikazane na displeju sekundi, minuta i sati. Uočimo da se svaka od ovih promenljivih ažurira uvek kada se promeni odgovarajuća promenljiva sata, tj. Sekunde, Minuti ili Sati.

Sl. 1.1 Bihejvioralna reprezentacija elektronskog budilnika: proces sat.

Page 9: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

9

PRIMER 1.1 (nastavak …)

Za razliku od procesa sat, proces podešavanje, opisuje postupak za podešavanje sata i vremena buđenja (Sl. 1.3). On koristi dve dodatne interne promenljive, Cbuđenje i Mbuđenje, za smeštanje sata i minuta vremena buđenja. Zatvaranjem prekidača S3 i S4, sat i minut buđenja, zapamćeni u promenljivima Cbuđenje i Mbuđenje, uvećavaju se za jedan. Podešavanje se obavlja tako što se najpre zatvori S1 ili S2, zavisno od toga da li podešavamo vreme sata ili vreme buđenja, a zatim uzastopnim pritiscima na S3 i S4 podešava željeno vreme. Uočimo da S1 i S2 ne mogu biti zatvoreni u isto vreme. Takođe, uočimo da se vreme podešeno zatvaranjem S3 i S4 odmah i prikazuje na displeju.

Poslednji od tri procesa, proces zvono, osmišljen je tako da u trenutku kad vreme sata postane jednako vremenu buđenja, a pod uslovom da je prekidač S5 zatvoren, uključi zvono postavljanjem izlazne promenljive Zujalica na 1 (Sl. 1.3). Drugim rečima, uvek kada je Minuti=Mbuđenje i Sati=Cbuđenje i S5 zatvoren, Zujalica postaje 1.

Sl. 1.3 Bihejvioralna reprezentacija elektronskog budilnika: proces podešavanje.

Sl. 1.3 Bihejvioralna reprezentacija elektronskog budilnika: proces zvono.

Page 10: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

10

PRIMER 1.1 (nastavak …)

Jednom bihejvioralnom opisu, kao što je ovaj koga smo upravo predstavili, može odgovarati veći broj različitih strukturnih opisa. To je zato što bihejvioralni opis ne nameće neku tačno određenu strukturu, već samo definiše interne promenljive, koje se koriste za pamćenje podataka, i naredbe dodela koje se koriste za transformaciju podataka. Imajući na raspolaganju ove informacije, u mogućnosti smo da promenljivima pridružimo memorijske komponente i biramo aritmetičke komponente koje će obavljati tranformaciju podataka shodno naredbama dodele. Ovakav pristup rezultuje u strukturi koja je prikazana na Sl. 1.4.

Uočimo da se shodno Sl. 1.4 elektronski budilnik pobuđuje oscilatorom koji generiše signal sinusnog talasnog oblika periode 1s. Ovaj signal se uz pomoć bloka Generator impulsa konvertuje u taktni signal pravougaonog talasnog oblika, koji ima istu periodu kao i sinusni signal, ali uzima samo dve različite vrednosti: 0 i 1. Signal koji može imati samo dve vrednosti zove se digitalni signal. Sistemi koji obrađuju digitalne signale zovu se digitalni sistemi.

Vratimo se na Sl. 1.4 i uočimo da se preostali deo strukturne specifikacije elektronskog budilnika sastoji od: tri brojača, Brojač sekundi, Brojač minuta i Brojač sati, koji odbrojavaju sekunde, minute i sate, respektivno, kao i dve memorijske komponente, Registar minuta i Registar sati, koje se koriste za čuvanje podešenog vremena buđenja. Jedinica displeja prikazuje sate, minute i sekunde tekućeg vremena ili vremena buđenja, što se reguliše prekidačem S2. Komparator minuta poredi minute tekućeg vremena i minute vremena buđenja. Ako su ova dva vremena jednaka, Komparator minuta generiše 1 što se presleđuje Komparatoru sati. Slično, Komparator sati generiše 1 ako su sati tekućeg vremena jednaki satima vremena buđenja i pri tome je ulaz dobijen od Komparatora minuta jednak 1. Pod pretpostavkom da je prekidač S5 zatvoren, izlaz Komparatora sati postavlja signal Zujalica na 1. Blok Generator zvuka konvertuje prelaz sa 0 na 1 signala Zujalica u ton trajanja 5s, koji, dalje, pobuđuje minijaturni zvučnik elektronskog budilnika.

Sl. 1.4 Strukturna reprezentacija elektronskog budilnika.

Page 11: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

11

Kao što je ukazano primerom 1.1, proces projektovanja elektronskih uređaja, a posebno digitalnih sistema, uvek prolazi kroz tri faze koje su pozicionirane oko tri glavne reprezentacije:

1. Razvoj bihejvioralne reprezentacije koja definiše funkcionalnost proizvoda.

2. Prevođenje bihejvioralne u strukturnu reprezentaciju koja sadrži komponente iz raspoložive biblioteke komponenti.

3. Razvoj fizičke reprezentacije koja opisuje kako sklopiti i fabrikovati proizvod.

Bilo koji digitalni dizajn može proći kroz ove tri faze na nekoliko različitih nivoa apstrakcije, kao što ćemo videti u sledećem odeljku.

1.2 Nivoi apstrakcije

U odeljku 1.1 opisane su bihejvioralna, strukturna i fizička reprezentacija dizajna. U toku procesa projektovanja elektronskog sistema, svaka od ove tri reprezentacije može biti korišćena na nekoliko različitih nivoa apstrakcije ili nivoa detaljnosti, gde je svaki nivo definisan tipom gradivnih elemenata koji se u njemu koriste. U opštem slučaju, kod elektronskih sistema mogu se identifikovati četiri nivoa apstrakcije: tranzistori, gejtovi, registri i procesorske komponente. Pregled nivoa apstrakcije dat je u tabeli 1.1.

PRIMER 1.1 (nastavak ...)

Komponente elektronskog budilnika navedene u strukturnoj reprezentaciji mogu se klasifikovati kao analogne ili digitalne komponete. Oscilator i zvučnik su analogne komponente, s obzirom da su njihovi ulazi i izlazi analogni signali, koji mogu imati bilo koju vrednost iz određenog opsega. Na primer, u toku svake sekunde, oscilator generiše na svom izlazu sve vrednosti napona između -1.5 i +1.5 volti. Generator takta je kolo tipa analogno-digitalni (AD) konvertor, s obzirom da na ulazu prihvata analogni signal, a na izlazu generiše digitalni signal. Suprotno, generator zvuka je kolo tipa digitalno-analogni (DA) konvertor, s obzirom da je projektovan tako da konvertuje digitalni signal u analogni signal. Ostatak sistema, uokviren isprekidanim linijama na Sl. 1.4, predstavlja digitalni sistem sačinjen od isključivo digitalnih komponenti.

Na Sl. 1.5 data je fizička reprezentacija elektronskog budilnika koja prikazuje veličine i pozicije realnih komponenti, onako kako su one postavljene na štampanoj ploči koja se nalazi unutar kutije elektronskog budilnika. Uočimo da na štampanoj ploči postoji nekoliko mikročipova: oscilator, generator takta, generator zvuka i mikročip koji objedinjuje sve ostale digitalne delove elektronskog budilnika. Uređaj, takođe, sadrži displej, prekidače i držač za bateriju, kao i štampane metalne veze koje na odgovarajući način povezuju sve komponente.

Sl. 1.5 Fizička reprezentacija elektronskog budilnika: (a) Prednja ploča; (b) Štampana ploča.

Page 12: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

12

Tabela 1.1 Reprezentacije dizajna i nivoi apstrakcije.

Nivo apstrakcije

Bihejvioralne forme Strukturne komponente Fizički objekti

Tranzistor Diferencijalne jednačine, U-I dijagrami

Tranzistori, otpornici, kondenzatori

Analogne i digitalne ćelije

Gejt Bulove jednačine, konačni automati

Gejtovi, flip-flopovi Moduli, jedinice

Registar Algoritmi, dijagrami toka, skupovi instrukcija, ASM dijagrami

Sabirači, komparatori, registri, brojači, registarski fajlovi, staze podataka

Mikročipovi

Procesor Izvršna specifikacija, programi

Procesori, kontroleri, memorije, ASIC kola

Štampane ploče, mikročip-moduli

Kao što se može uočiti iz gornje tabele, glavne komponente na tranzistorskom nivou su tranzistori, otpornici i kondenzatori, koji se povezuju u analogna ili digitalna kola. Funkcionalnost ovih kola obično se opisuje diferencijalnim jednačinama ili nekom vrstom prenosne karakteristike koja pokazuje zavisnost između napona i struja u kolu (U-I dijagrami). Fizička reprezentacija analognih i digitalnih kola se zove ćelija i sadrži komponente sa tranzistorskog nivoa, kao i veze koje ih povezuju.

U opštem slučaju, ćelija se definiše u vidu tranzistorskog layout-a, koga čini skup pravougaonika, obično prikazanih različitim bojama, koji predstavljaju pravougaone oblasti različitih slojeva materijala u mikročipu. Na osnovu layouta, izrađuju se maske za fotolitografski proces, što predstavlja prvi korak u procesu fabrikacije mikročipa. U ovom procesu, maske se koriste da bi se određene oblasti na površini silicijuma izložile dejstvu hemikalija u cilju kreiranja različitih slojevi materijala na silicijumskoj površini. Konačno, odgovarajuća kombinacija materijala kreira tranzistorski efekat.

Glavne komponente nivoa gejtova su logička kola i flip-flopovi. Logička kola ili gejtovi su specijalizovanja elektronska kola koja obavljaju logičke operacije. Flip-flopovi su osnovni memorijski elementi koji su u stanju da pamte jedan bit informacije koji uzima jednu od dve vrednosti: 0 (netačno, ne) ili 1 (tačno, da).

Gejtovi i flip-flopovi su primeri tipičnih digitalnih ćelija koje imaju ulaze i izlaze na svojim obodima. Ove ćelije se grupišu, raspoređuju po silicijumskoj povišini i međusobno povezuju tako da čine aritmetičke i memorijske module ili jedinice, koje se dalje koriste kao bazične komponente na registarskom nivou apstrakcije. Bihejvioralni opis registarskih modula se predstavlja u obliku logičkih jednačina ili dijagrama konačnih automata.

Glavne komponente registarskog nivoa su aritmetičke i memorijske jedinice, kao što su sabirači, komparatori, množači, brojači, registri, registarski fajlovi. Svaka od ovih komponenti je modul ili jedinica koja ima fiksne dimenzije, fiksno propagaciono kašnjenje i fiksnu poziciju ulaz i izlaza raspoređenih po obodu. Registarske komponente mogu se rasporediti i povezati tako da čine mikročipove, koji se koriste kao osnovne komponente na sledećem višem nivou apstrakcije. U opštem slučaju, mikročipovi se opisuju dijagramima toka, ASM dijagramima, skupovima instrukcija, ili tabelama stanja.

Nivo procesora je najviši nivo apstrakcije, s obzirom da su osnovne komponente na ovom nivou procesori, memorije, kontroleri i interfejsi, kao i aplikaciono-specifična integrisana kola (ASIC). U opštem slučaju, jedna ili više ovih komponenti se postavlja na štampanu ploču i povezuje metalnim vezama koje su odštampane na ploči. U nekim slučajevima, dimenzije ploče se mogu smanjiti ako se za povezivanje mikročipova, umesto štampane ploče, koristi silicijumski substrat. Takav način pakovanja mikročipova se zove mikročip modul (MCM – MicroChip Module). Sistem koji je sačinjen od procesorskih komponenti obično se opisuje tekstualno, izvršnom specifikacijom napisanom u jeziku za opis hardvera ili algoritmom ili programom napisanim u višem programskom jeziku (npr. C).

U toku procesa projektovanja digitalnog sistema, tri nivoa apstrakcije mogu se koristiti jednom ili veći broj puta, u zavisnosti od toga koliko različitih ciljeva, tehnologija, komponenti, biblioteka ili alternativnih rešenja želimo da istražimo. S obzirom da istrživanje alternativa može biti obavljeno na različite načine, neophodno je pažljivo izabrati efikasnu metodologiju projektovanja, koja određuje odgovarajući podskup apstraktnih nivoa, projektnih zadataka, redosled u kome će oni biti obavljeni, kao i tipove CAD alata koji će biti korišćeni u toku obavljanja svakog od zadataka u procesu projektovanja.

Standardna metodologija projektovanja je ona koja se zasniva na kreiranju biblioteka gradivnih blokova sa nekog nivoa apstrakcije i primeni sinteze u cilju konverzije bihejvioralnog opisa u strukturu koja može biti relizovanja uz pomoć komponenti iz ove biblioteke. Tako, uz pomoć biblioteke gejtova u mogućnosti smo da

Page 13: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

13

kreiramo biblioteku registarskih komponenti, koje ćemo potom koristiti za sintezu procesorskih komponenti opšte ili specijalne namene. U zadnjih 20 godina, najčešće su korišćene biblioteke komponenti sa nivoa gejtova, dok u novije vreme sve veću popularnost dobijaju biblioteke registarskih komponenti.

1.3 Proces projektovanja

Uopšteno govoreći, proces projektovanja može se definisati kao niz aktivnosti koje su neophodne da bi se polazni koncept nekog proizvoda pretočio u proizvodne crteže koji pokazuju kako napraviti taj proizvod. U realnim uslovima, proces projektovanja uslovljen je tipom proizvoda koji se projektuje, koliko brzo proizvod mora biti iznet na tržište, tehnologijom koja se koristi za njegovu proizvodnju, pa čak i faktorima kao što su organizacija projektantskog tima, iskustvo tima, raspoloživost CAD alata i adekvatno finansiranja. Zbog toga, proces projektovanja varira od organizacije do organizacije, pa čak i od projekta do projekta unutar iste organizacije. Uprkos ovim varijacijama, proces projektovanja može se razložiti na sledeće osnovne faze:

1.3.1 Specifikacija dizajna

Nakon što je završena analiza tržišnih zahteva, glavni projektant piše specifikaciju proizvoda, koja sadrži funkcionalni opis proizvoda i opis interfejsa proizvoda prema okruženju u kome će proizvod biti korišćen. U mnogim slučajevima, glavni projektant, u sklopu specifikacije može da da i jedan pojednostavljen nacrt rešenja, koji je obično predstavljen u vidu blok dijagrama. U tom dijagramu, svaki blok ima lako razumljivu funkciju, koja se može predstaviti matematičkom formulom ili algoritmom ili, prosto, tekstualnim opisom u prirodnom jeziku. Takođe, blok dijagram može sadržati i specifikaciju tipova i formata podataka koji se prenose između blokova i ulaznih/izlaznih portova.

U mnogim slučajevima, ovakva vrsta specifikacije je nedovoljno precizna i često nekompletna, što je i normalno jer proizvod još uvek nije napravljen i ispitan. Međutim, ova nekompletnost obično ne predstavlja problem, s obzirom da se specifikacija proizvoda koristi samo kao polazna osnova za rad projektantskog tima. Često, u toku daljeg razvoja proizvoda, polazna specifikacija se koriguje i dopunjuje. U mnogim slučajevima, specifikacija je napisana u prirodnom jeziku (kao što je Srpski), mada u novije vreme sve veću popularnost stiče i izvršna specifikacija, napisana u nekom formalnom jeziku tako da se može lakše verifikovati, analizirati i, konačno, sintetizovati.

1.3.2 Razvoj biblioteke komponenti

Nakon što je u fazi specifikacije završen razvoj globalnog blok dijagrama, ovaj dijagram se dalje iterativno rezlože na jednostavnije komponente. Cilj ovog procesa je obezbediti da proizvod sadrži samo one komponente koje su na raspolaganju, tj. nalaze se u biblioteci komponenti, koja je izabrana na osnovu ciljne proizvodne tehnologije. U nekim slučajevima biblioteka sadrži komponente sa dva ili više nivoa apstrakcije. Na primer, nije neuobičajeno da se u okviru iste biblioteke pored gejtovskih komponenti nađu i registarske komponente.

Komponente iz biblioteke moraju biti projektovane, testirane i precizno dokumentovane, kako bi projektant mogo da ih koristi, a da pri tome ne mora da analizira njihovu strukturu. Informacije koje se odnose na karakterizaciju bibliotečke komponente uključuju sledeće:

1. Funkcionalnost komponente, tipična primena, imena ulaza i izlaza

2. Fizičke dimenzije komponente, pozicija ulaza i izlaza i opis pakovanja

3. Električna ograničenja, zahtevi koji se odnose na napajanje, opsezi napona i struja koji su dozvoljeni na ulazima i izlazima, kao i disipacija toplote

4. Talasni oblici napona na ulazima i izlazima, vremenski odnosi između njih, kao i kritična kašnjenja od ulaza do izlaza

5. Modeli komponente, koji će biti korišćeni u CAD alatima za simulaciju, sintezu, fizičko projektovanje i testiranje.

1.3.3 Sinteza dizajna

Sinteza je proces transformacije specifikacije ili bihejvioralnog opisa u strukturni opis korišćenjem komponenti sa nižeg nivoa apstrakcije koje su uključene u raspoloživu biblioteku. U slučajevima kada se javi potreba za komponentama koje se ne mogu naći u biblioteci neophodna je dodatna sinteza.

Sinteza se može razumeti kao proces razrade bihejvioralnog opisa, korak po korak, gde se u svakom koraku dodaju novi strukturni detalji. U praksi, to obično znači da se bihejvioralni opis deli na više blokova, a onda se formira novi opis koji odslikava rezultat podele. Ovaj novi, razrađeni opis sadrži strukturni opis podeljenih

Page 14: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

14

blokova i njihovih veza zajedno sa bihejvioralnim opisom svakog bloka. Ovaj proces se iterativno nastavlja sve dok svakom bloku ne odgovara jedna konketna komponenta iz raspoložive biblioteke.

Imajući u vidu nivoe apstrakcije navedene u tabeli iz odeljka 1.2 možemo identifikovati sledeće zadatke sinteze:

1. Sinteza sistema konvertuje specifikaciju proizvoda u strukturu komponenti sa procesorskog nivoa, kao što su procesori, memorije i ASIC kola.

2. Sinteza arhitekture konvertuje algoritme, dijagrame toka ili skupove instrukcija u komponente sa registarskog nivoa, kao što su brojači, registri, sabirači i množači.

3. Sekvencijalna sinteza transforimiše opis konačnih automata u mrežu logičkih kola i flip-flopova.

4. Logička sinteza transformiše Bulove izraze u mrežu logičkih kola.

Tehnike za sintezu, koje se primenjuju ispod nivoa gejtova, dele se shodno konkretnoj oblasti primene. Na primer, za sintezu kola iz različitih domena, kao što su A/D konvertori, filtri, audio procesiranje i video procesiranje neophodne su različite tehnike sinteze.

1.3.4 Analiza dizajna

Nakon obavljene sinteze, sledeći korak u procesu projektovanja odnosi se na procenu valjanosti dobijenog rešenja. Ova procena treba da verifikuje da su zahtevi postavljeni polaznom specifikacijom ispunjeni, i da u skupu mogućih alternativnih rešenje ne postoji bolje. Analiza rešenja obično se fokusira na jednu od nekoliko mera kvaliteta, kao što su cena, performanse ili testabilnost. Na primer, jedna od najvažnijih metrika je cena proizvodnje konkretnog proizvoda, koja se obično aproksimira veličinom potrebne površine na štampanoj ploči ili mikročipu, s obzirom da ova površina direktno određuje cenu njihove izrade. Broj ulaznih i izlaznih pinova je takođe važan pokazatelj cene, pošto je cena pakovanja mikročipa srazmerna broju pinova na čipu. U novije vreme, potrošnja je postala bitna metrika, s obzirom na sve veću rasprostranjenost prenosivih uređaja kao što su laptop računari i mobilni telefoni. Pošto potrošnja energije direktno određuje veličinu baterije, ona ima značajan uticaj i na težinu proizvoda.

Performanse proizvoda predstavljaju još jedan važan aspekt projektovanja. Mada se performanse mogu meriti na mnogo različitih načina, tri najvažnije performansne metrike su: (1) kašnjenje signala od ulaza do izlaza; (2) frekvencija taktnog signala i (3) vreme izvršenja programa, algoritma, dijagrama toka ili pojedinačne instrukcije. U opštem slučaju, smatra se da komponente sa manjim kašnjenjem, projektovane da mogu raditi na višoj taktnoj frekvenciji, i proizvodi sa kraćim vremenom izvršenja programa imaju bolje performanse.

Konačno, metrika testabilnost proizvoda definiše se u smislu broja otkaza koji se mogu otkriti testiranjem i broja test sekvenci koje su potrebne da bi se ovi otkazi otkrili. Svaka test-sekvenca ili test-vektor se sastoji od skupa ulaznih vrednosti i pridruženog skupa izlaznih vrednosti koje se očekuju na izlazu ispravnog uređaja nakon primene test sekvence. U opštem slučaju, broj potrebnih test vektora, srazmeran je broju potencijalnih otkaza, dok broj test vektora određuje vreme koje je potrebno da bi se gotov proizvod testirao.

1.3.5 Dokumentovanje dizajna

Poslednji korak u procesu projektovanja sastoji se u pripremi dokumentacije za proizvedeni mikročip ili sistem. Ova dokumentacija namenjena je korisniku proizvoda. U opštem slučaju, dokumentacija uključuje bihejvioralnu i fizičku reprezentaciju, ali izostavlja detalje strukturne reprezentacije, šta se smatra poverljivom informacijom, koja može biti dostupna samo odelenju za proizvodnju. Bihejvioralne informacije su obično date u obliku grubih blok dijagrama dopunjenih dijagramima toka koji opisuju ponašanje celokupnog sistema ili nekog njegovog dela. Uz to, bihejvioralna dokumentacija opisuje komunikacione protokole, koji govore o tome kako sistem komunicira sa okurženjem, a tipično sadrži vremenske dijagrame koji se odnose na jedan ili više ulaza i izlaza. Sa druge strane, fizička reprezentacija sadrži dimenzije proizvoda, informaciju o načinu pakovanja, imena i pozicije spoljnih priključaka. Konačno, u dokumentaciji su navedeni minimalni, normalni i maksimalni opsezi struja i napona, snage, temperatore i ostalih električnih i neelektričnih parametara bitnih za pravilnu eksplataciju proizvoda.

1.3.6 Proizvodnja

Strogo govoreći, proizvodnja nije deo projektovanja, već je njegov cilj. Zadatak proizvodnje je da na osnovu konačnih proizvodnih nacrta fabrikuje proizvod, raspoređivanjem i povezivanjem sastavnih delova. Nakon proizvodnje, obično se obavlja testiranje kako bi se identifikovali i izdvojili neispravni proizvodi. Testiranje može biti obavljeno u radnom režimu proizvoda, tj. pri normalnoj brzini rada, ili pri smanjenoj brzini rada.

Page 15: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

15

Ukoliko se radi o proizvodu visokih performansi, testiranje pri normalnoj brzini rada je veoma teško ostvarivo, zato što oprema za testiranje mora biti mnogo brža od proizvoda koji se testira.

1.4 CAD alati

U odeljku 1.3 razmatrani su osnovni koraci u procesu projektovanja. U ovom odeljku razmatraju se softverski alati za projektovanje pomoću računara (ili CAD alati) koji se koriste u različitim fazama procesa projektovanja. Shodno ulozi koju imaju u procesu projektovanja, CAD alati se mogu podeliti u sledećih pet kategorija:

1. Opis i modelovanje (capture, modeling)

2. Sinteza (synthesis)

3. Verifikacija i simulacija (verification, simulation)

4. Raspoređivanje i rutiranje (placement, routing)

5. Generisanje testa (test generation)

Napomenimo da ovih pet kategorija odgovaraju glavnim oblastima specijalizacje u domenu istraživanja i razvoja CAD alata.

1.4.1 Opis i modelovanje dizajna

Još u ranoj fazi projektovanja javlja se potreba transformacije bihejvioralnog opisa u strukturnu reprezentaciju sačinjenu od komponenti iz dobro-definisane biblioteke. Komponente i način na koji su međusobno povezane, možemo opisati tekstualno, ali takav način je naporan i podložan greškama. Mnogo lakši i precizniji opis strukture sistema može se ostvariti uz pomoć specijalizovanih grafičkih editora. U osnovi, takav jedan alat omogućava projektantu da izabere komponentu iz menija, pozicionira je na ekranu i poveže sa drugim komponentama linijam koje predstavljaju električne veze. Ovakav način strukturne reprezentacije zove se električna šema, dok se alati koji se koriste za unos električnih šema zovu grafički šematski editori.

Drugi način za postizanje istog cilja, tj. kreiranje opisa strukture, sastoji se u korišćenju jezika za opis hardvera, kao što su VHDL i Verilog. Jezici za opis hardvera su opštiji od šematskih editora, zato što omogućavaju opis ne samo strukture sistema, već i njegovog ponašanja. Šta više, uz pomoć jezika za opis hardvera, projektant je u mogućnosti da kombinuje ova dva tipa reprezentacije u jedinstveni opis, gde su pojedini delovi sistema opisani bihejvioralno, a preostali strukturno. Opis sistema obično počinje kreiranjem strukturnog opisa visokog nivoa i opisom ponašanja svakog pojedinačnog bloka iz ove strukture. U daljem toku procesa projektovanja, bihejvioralno opisani blokovi se zamenjuju strukturama blokova nižeg nivoa, sve dok dizajn na postane hijerarhija blokova gde svakom bloku sa najnižeg nivoa hijerarhije odgovara jedna komponenta iz ciljne biblioteke. Na taj način, dizajn prolazi kroz više nivoa apstrakcije, pri čemu svaki nivo sadrži različiti tip i količinu detalja. Ovakav način projektovanja se zove projektovanje odozgo-naniže i omogućava efikasno upravljanje projektom i raspodelu posla, olakšava koordinaciju i komunikaciju između projektanata, pojednostavljuje integraciju sistema i smanjuje broj grešaka u projektovanju. Održavanje i kasnije usavršavanje proizvoda lakše je ako je on projektovan na opisani način. Svaki od opisa koji se javljaju u ovom procesu se zove model realnog sistema, pošto pruža neke, ali ne sve informacije o konkretnom sistemu. Informacije o sistemu sadržane u modelu može kristiti projektant ili CAD alat u cillju dalje analize i procene kvaliteta rešenja, ili čak za nastavak sinteze.

1.4.2 Alati za sintezu

Sinteza se primenjuje uvek kada treba konvertovati bihejvioralni u strukturni opis koji sadrži komponente iz raspoložive biblioteke. Na primer, alati za logičku sintezu omogućavaju konverziju logičkih jednačina u mreže gejtova, minimizujući pri tome broj gejtova, propagaciono kašnjenje, potrošnju ili neki drugi unapred postavljeni cilj. Alati za logičku sintezu koriste se za projektovanje kombinacionih kola kao što su aritmetička kola, komparatori, koderi, dekoderi i upravljačka logika.

Alati za sekvencijalnu sintezu koriste se za sintezu struktura koje sadrže memorijske elemente, kao što su konačni automati. Ovi alati su projektovani tako da minimizuju broj memorijskih elemenata koji se koriste u kolu, da kodiraju stanja i ulaze na način koji minimizuje ukupnu cenu (tj. hardversku složenost), da minimizuju ulazno-izlazno kašnjenje i pojednostave logičke jednačine koje su potrebne za realizaciju konačnog automata.

Alati za bihejvioralnu sintezu ili sintezu visokog nivoa, koriste se za transformaciju aritmetičkih izraza, skupova instrukcija ili algoritamskih opisa u strukturu sačinjenu od komponenti sa registarskog nivoa apstrakcije, pri tome minimizujući veličinu mikročipa i vreme izvršenja. Bihejvioralna sinteza je korisna prilikom projektovanja interfejsnih kola, raznih hardverskih akceleratora, i kola za digitalnu obradu signala.

Page 16: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

16

1.4.3 Verifikacija i simulacija

Nakon što je sistem koji se projektuje opisan uz pomoć šematskog editora ili jezika za opis hardvera, neophodno je proveriti (verifikovati) da li se on ponaša onako kao se očekuje. Ovo je težak zadatak, s obzirom da se samo na osnovu opisa, koji može biti i pogrešan, ne može zaključiti kakvu funkcionalnost sistem treba da obezbedi. Sa druge strane, ono šta se može verifikovati poređenjem strukturnih i bihejvioralnih opisa jeste činjenica da je sistem korektno sintetizovan. Korišćenjem simboličkog izračunavanja, ili algebarskih manipulacija moguće je dokazati da su dve reprezentacije sistema identične za sve moguće skupove ulaznih vrednosti. Pored toga, dokaz ekvivalentnosti dve reprezentacije zahteva garanciju da su pored funkcionalnih zahteva ispoštovani i zahtevi koji se odnose na tajming. S obzirom da dokaz identičnosti funkcija dva opisa mora obuhvatiti proveru svakog skupa ulaznih vrednosti, a dokaz ispunjenosti vremenskih ograničenja ispitati svaku ulazno-izlaznu putanju u sistemu, ovakav način verifikacije obično zahteva ekstremno dugo vreme. Iz tog razloga, najpopularniji način verifikacije je simulacija dizajna, gde se rad sistema verifikuje samo za neki podskup ulaznih vrednosti tako što se na osnovu strukturne predstave dizajna generišu izlazne vrednosti i porede sa odgovarajućim skupom očekivanih vrednosti koje slede na osnovu bihejvioralnog opisa.

Pod pretpostavkom da se strukturni opis sastoji od komponenti čiji su modeli dostupni, simulator radi na sledeći način. Najpre, simulator određuje vrednosti na izlazu svake komponente čiji su ulazi povezani na ulazne portove sistema. Zatim, simulator uvećava vreme simulacije za iznos definisan modelom tih komponenti, i bira sledeći skup komponenti čije su ulazne vrednosti sada poznate i izračunava njihove izlazne vrednosti, uvećavajući vreme simulacije na isti način. Ovaj korak se ponavlja sve dok se simulacija rada svih komponenti ne završi ili do trenutka kada više ne postoje promene izlaznih vrednosti. Konačno, generiše se izlazna vrednost i poredi sa tačnom (očekivanom) vrednošću. Takođe, određuje se ulazno-izlazno kašnjenje i poredi sa zadatim vremenskim ograničenjima. Na ovaj način, simulator može verifikovati funkcionalnu i vremensku ispravnost rešenja, mada je ova verifikacija validna samo za konkretni, korišćeni skup ulaznih vrednosti. Iz tog razloga, projektant kada koristi simulator treba da teži da simulacijom obuhvati takav skup ulaznih i očekivanih izlaznih vrednosti koje će pobuditi sve putanje kroz sistem koji se testira. U slučajevima kada sistem sadrži 1 milion gejtova, to nije ni malo lak zadatak.

1.4.4 Fizičko projektovanje

CAD alati za fizičko projektovanje su alati za raspoređivanje i rutiranje. Alati za raspoređivanje omogućavaju optimizaciju rasporeda komponenti na štampanoj ploči ili ćelija i modula na mikročipu. Uzimajući u obzir dimenzije i raspored pinova svake komponente, alati za raspoređivanje pozicioniraju komponente, sadržane u strukturnoj reprezentaciji dizajna, tako da ukupna površina zauzeta svim komponentama bude minimalna. Nakon što su pozicije svih komponenti određene, koristi se alat za rutiranje koji određuje pozicuju svake veze koja povezuje komponente, na način koji će minimizovati maksimalnu dužinu neke veze ili zbir dužina svih veza i pri tome optimizovati korišćenje nivoa za povezivanje na štampanoj ploči ili mikročipu. Prilikom rutiranja, posebna pažnja posvećuje se linijama za napajanje, koje moraju biti tako izvedene da kontaktiraju svaku komponentu i pri tome su u stanju da prenesu potrebnu struju. Slično, posebna pažnja se obraća na linije koje prenose taktni signal, s obzirom da prevelika dužina ovih linija može da naruši taktni signal što može postati uzrok povremenih ili trajnih otkaza.

1.4.5 Testiranje

U toku fabrikacije uređaja ili mikročipa, usled varijacija u tehnološkom procesu, može doći do grešaka u proizvodnji. Testiranje se obavlja nakon fabrikacije proizvoda sa ciljem da se dobre jedinice razdvoje od neispravnih. U opštem slučaju, procedura testiranja se obavlja tako što se na jedinice koje se testiraju primenjuju određene test sekvence, a odziv jedinice poredi za odzivom koji se očekuje od jedinice koja radi ispravno. U okviru procesa testiranja, CAD alati se koriste za generisanje test sekvenci. Ovi alati olakšavaju posao projektanta prilikom pronalaženja skupa test vektora koji će pobuditi što je moguće veći broj putanja kroz sistem.

1.5 Tipičan proces projektovanja

Tipičan proces projektovanja, koji se poslednih 30 godina praktikuje u industriji, je onaj koji započinje analizom tržišta i definicijom zahteva koje proizvod treba da ispuni. Na bazi tih zahteva, glavni projektant sprovodi analizu izvodljivosti kao bi odredio implementacionu tehnologiju, arhitekturu i tipičnu primenu konkretnog proizvoda. Takođe, glavni projektant razvija preliminarni blok dijagram i piše specifikaciju proizvoda. Preliminarni blok dijagram preuzima projektantski tim i dalje ga razrađuje u strukturu, najpre na nivou sistema, zatim na registarskom nivou i konačno na nivou gejtova. Struktura na nivou gejtova se obično opisuje uz pomoć šematskih editora, a zatim simulira, kako bi se verifikovala njena funkcionalnost i tajming. Ako se ustanovi da

Page 17: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

17

neko polazno ograničenje nije moguće ostvariti ili neka mera kvaliteta nije zadovoljavajuća, projekat se vraća na reviziju kako bi se modifikovali polazni zahtevi, specifikacija i arhitektura, a zatim se celokupan proces ponavlja. Nakon što je postignut željeni rezultat, prelazi se na fizičko projektovanje, sa ciljem da se ostvari raspoređivanje i rutiranje projektovane strukture dizajna. Konačno, nakon što je fizičko projektovanje završeno, tim za testiranje generiše odgovarajuće test sekvence koje će biti korišćene u proizvodnji, a projektantski tim piše dokumentaciju proizvoda.

U prošlosti, većina navedenih poslova obavljana je manuelno, s obzirom da je samo mali deo procesa projektovanje bio automatizovan. Sa pojavom CAD alata, ovakva situacija je počela da se menja. Najpre su razvijeni CAD alati za fizičko projektovanje, tj. za raspoređivanje i rutiranje. Nešto kasnije, razvijeni su šematski editori i alati za simulaciju na nivou gejtova, što je omogućilo dalju automatizaciju procesa projektovanja.

U novije vreme, 90’ godina, automatizacija procesa projektovanje je značajno napredovala uvođenjem u proces projektovanja standardnih jezika za opis hardvera i alata za sintezu. Jazici za opis hardvera omogućili su da danas projektanti mogu generisati bihejvioralni opis koji se lako simulira, a sa novim alatima za sintezu značajno je olakšano prevođenje bihejvioralne u strukturnu reprezentaciju. Sva ova nova dostignuća, vode do redefinicije procesa projektovanja, koji se danas, mnogo više nego ranije, oslanja na bihejvioralno opisivanje dizajna na višem apstraktnom nivou i razradu odnosno sintezu bihejvioralnog opisa. Početni uspesi savremenih alata za sitezu, inicirali su zahteve za automatizacijom procesa projektovanja na još višem nivou, sa konačnim ciljem da se razviju tehnike za sintezu celokupnog sistema, na osnovu polazne specifikacije.

1.6 Mapa procesa projektovanja

Osnovna tema ovog kursa je proučavanje tehnika projektovanja digitalnih sistema. Na Sl. 1.6 prikazana je mapa koja ukazuje na međuzavisnosti i uslovljenosti različitih teorijskih osnova, tehnika i metoda koje čine osnovu projektovanja savremenih digitalnih i računarskih sistema. Osenčena oblast na Sl. 1.6 ukazuje na materiju koja je obuhvaćena ovim kursom.

Uopšteno govoreći, projektovanje računarskih sistema kreće od fizike čvrstog stanja i tehnoloških postupaka za fabrikaciju integrisanih kola, koji određuju tipove i osobine većine osnovnih elektronskih komponenti, kao što su tranzistori, otpornici i kondenzatori. Ove komponente se zatim povezuju u digitalna ili analogna kola, shodno osnovnim zakonima elektronike. Digitalna kola procesiraju signale koji mogu imati samo mali broj fiksnih vrednosti, obično dve, što ih čini robusnim i lakim za projektovanje. Ove dve osobine su glavni razlog zbog koga se danas za izračunavanja i obradu podataka prevashodno koriste digitalna kola.

Sa druge strane, analogna kola obrađuju signale koji mogu imati bilo koju vrednost unutar datog opsega. Većina signala koje čovek generiše ili prepoznaje, kao što je tekst, govor, slika i zvuk su analogni signali. Pošto se celokupno procesiranje izvodi u digitalnom domenu, jedan generalni elektronski sistem najpre konvertuje analogne signale u digitalne, zatim u digitalnom domenu obavlja sva potrebna izračunavanja, transformacije i komunikacije, da bi konačno, rezultat konvertovao nazad u analogni domen. Konverzije iz analognog u digitalni domen i obrnuto se obavlja uz pomoć interfejsnih kola, kao što su A/D i D/A konvertori.

Digitalno projektovanje kreće od nivoa gejtova i flip-flopova, koji su raspoloživi u vidu biblioteke logičkih komponenti. Šta više, projektant digitalnog hardvera ne mora da poznaje detalje koji se odnose na fabrikaciju logičkih komponenti i VLSI projektovanje, već je njegov zadatak da koristeći raspoložive bibilotečke komponente kreira opis sistema koga projektuje. Teorijsku osnovu digitalnog projektovanja čini Bulova algebra i teorija konačnih automata, što je u bliskoj vezi sa načinima reprezentacije podataka u binarnom brojnom sistemu. Koristeći tehnike logičkog i sekvencijalnog projektovanja, kreiraju se biblioteke kombinacionih i sekvencijalnih modula ili blokova, koji predstavljaju bazične gradivne blokove procesorskih komponenti. Projektovanje procesorskih komponenti zasnovano je bihejvioralnom opisu u vidu ASM dijagrama. Standardne i specijalizovane procesorske komonente, zajedno sa interfejsnim komponentama i elektro-mehaničkim uređajima, kao što su hard-disk i tastatura koriste se za projektovanje različitih tipova računarskih sistema, kao što su personalni računari, radne stanice i komunikacioni kontroleri. Računarski sitemi se dalje koriste za projektovanje složenijih, tzv. embedded sistema koji se primenjuju u oblastima kao što su digitalna obrada signala, robotika, komunikacije, medicinska instrumenticija, multimedija i mnoge druge.

Page 18: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

18

Sl. 1.6 Mapa procesa projektovanja elktronskih, digitalnih i računarskih sistema.

1.7 Zaključak

U ovom poglavlju uvedene su tri osnovne reprezentacije dizajna: bihejvioralna, strukturna i fizička reprezentacije. Opisana su četiri nivoa apstrakcije: novo tranzistora, nivo gejtova, registarski nivo i procesorski nivo. Takođe, kroz opis procesa projektovanja elektronskih digitalnih sistema, počev od specifikacije pa do fabrikacije proizvoda, istražene su međuzavisnosti između reprezentacije dizajna i nivoa apstrakcije. Ukratko su opisani neki od CAD alata koji se koriste u procesu projektovanja.

Page 19: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

2 Logičko projektovanje

Osnova uspeha računarskih tehnologija u najvećoj meri leži u jednostavnosti projektovanja i proizvodnje digitalnih elektronskih kola. Digitalna elektronska kola su sačinjena od bazičnih elemenata za obradu digitalnih signala, koji se zovu logička kola ili gejtovi i bazičnih memorijskih elemenata, koji se zovu flip-flopovi. Jednostavnost projektovanja digitalnih kola, tj. logičkog projektovanja, potiče od činjenice da ulazni i izlazni signali svakog gejta ili filip-flopa mogu imati samo dve različite vrednosti, 0 ili 1, dok su promene vrednosti signala dešavaju shodno zakonima Bulove algebre. Bulova algebra je konačna i poseduje daleko bogatiji skup osobina u odnosu na standardnu algebru, što omogućava primenu jednostavnih tehnika za pojednostavljenje Bulovih funkcija prilikom njihove realizacije pomoću gejtova i flip-flopova. Iz tog razloga, uspešno ovladavanje tehnikama za projektovanje digitalnih kola, podrazumeva dobro poznavanje osobina Bulove algebre, šta predstavlja temu prvog dela ovog poglavlja. Nakon upoznavanja sa osnovnim postulatima i osobinama Bulove algebre, u nastavku ovog poglavlja biće opisana osnovna digitalna logička kola i postupak kreiranja biblioteke gejtova. Takođe, biće opisane osnovne implementacione tehnologije, koje se koriste za fabrikaciju digitalnih komponenti, kao i specifičnosti logičkog projektovanja koje su uslovljene karakteristikama pojedinih implementacionih tehnologija.

2.1 Bulova algebra

Sve inženjerske discipline imaju matematičku podlogu na osnovu koje dalje razvijaju svoje koncepte. Digitalni sistemi, uključujući i računarske sisteme, nisu različiti u tom pogledu. Tehnike za formalnu analizu i projektovanje digitalnih kola i sistema imaju svoje korene u radovima engleskog matematičara Džordža Bula. Godine 1854., on je formulisao algebarski sistem, danas poznat kao Bulova algebra, za izražavanje fundamentalnih zakona rezonovanja u simboličkom jeziku matematičke logike. Bulova algebra manipuliše iskazima koji mogu biti tačni ili netačni i definiše pravila na osnovu kojih je moguće utvrditi tačnost složenijih iskaza dobijenih kombinovanjem polaznih iskaza. Sve do kasnih tridesetih godina prošlog veka, Bulova algebra nije naišla na neku značajniju praktičnu primenu. Godine 1938., američki istraživač Klod E. Šenon iskoristio je Bulovu algebru za analizu i opis ponašanja relejnih mreža. U Šenonovoj interpretaciji Bulove algebre, koja se zove prekidačka algebra, stanje prekidača ili relejnog kontakta, otvoreno ili zatvoreno, se predstavlja promenljivom x koja može imati jednu od dve moguće vrednosti, 0 ili 1. Ovo je bila veoma važna primena, s obzirom da su u to doba telefonski sistemi bili u naglom razvoju, pa je bilo neophodno iznaći neki pogodan matematički aparat kojim bi se opisivale željene komutacije i načini uspostavljanja veze. Od tog trenutka, primena Bulove algebra doživela je veliku ekspanziju, što je pospešilo interesovanje za uvođenje digitalne tehnike i u mnogim drugim oblastima. Zbog važnosti Bulove algebre za projektovanje ne samo računarskih sistema nego i komunikacionih sistema, sistema upravljanja i bilo kog drugog sistema koji koristi digitalnu tehniku, veoma je važno razumeti značaj Bulove, odnosno prekidačke algebre i proučiti njene osnovne koncepte.

Aksiome Bulove algebre

Bulova algebra, kao i bilo koja druga algebarska struktura, zasnovana je na skupu pravila, ili teorema, izvedenih na osnovu malog broja polaznih pretpostavki, ili aksioma. Jedan od ciljeva matematičara je da redukuju broj potrebnih aksioma na minimalan konzistentni skup aksioma. Godine 1904. matematičar Hantington (E. V. Huntington) ustanovio je da se svi rezultati i posledice algebre koju je opisao Bul mogu svesti na samo šest aksioma. Koristeći ovih šest aksioma, Hantington je definisao Bulovu algebru na sledeći način:

Uređena četvorka (B, +, ·, ’), gde je B skup elemenata ili konstanti, + i · dve binarne operacije i ’ unarna operacija, naziva se Bulovom algebrom ako su zadovoljene sledeće aksiome:

A1. Zatvorenost: za svaki element x i y iz skupa B važi: a. x + y je element B b. x · y je element B

Page 20: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

20

A2. Identitet: postoje elementi 0 i 1 iz B takavi da za svako x iz B važi: a. 0 + x = x + 0 = x b. 1 · x = x · 1 = x

A3. Komutativnost: za sve elemente x i y u skupu B važi: a. x + y = y + x b. x · y = y · x

A4. Distributivnost: za sve elemente x, y i z u skupu B važi: a. x·(y + z) = x·y + x·z b. x + (y·z) = (x + y) ·(x + z)

A5. Komplement: za svaki element x iz skupa B postoji u B element x’, takav da važi: a. x + x’ = 1 b. x · x’ = 0

A6. U skupu B postoje najmanje dva različita elementa, tj. 0≠1.

Uočimo da Bulova algebra, iako uvodi tri operacije, ne definiše eksplicitno te operacije, već samo definiše pravila koja one moraju da zadovolje. Takođe, Bulova algebra ne definiše broj elemenata u skupu B, već samo ograničava njihov minimalni broj na dva elementa. Konkretizacija Bulove algebre na slučaj kada skup B ima tačno dva elementa zove se prekidačka algebra.

Prekidačka algebra

Ako u skupu B={0,1} definišemo operacije +, · i ` na sledeći način:

+ 0 1 · 0 1 ‘

0 0 0 0 0 0 0 1

1 1 1 1 0 1 1 0

tada se lako može pokazati da skup B zajedno sa navedenim operacijama zadovoljava aksiome Bulove algebre. Bulova algebra na skupu od dva elementa zove se prekidačka algebra. U prekidačkoj algebri, binarni operatori predstavljeni znacima + i · zovu se OR i AND, tj. ILI i I, dok se unarni operator, predstavljen znakom ’ zove NOT, tj. NE ili komplement. Napomenimo da ćemo nadalje u tekstu podrazumevati da radimo sa prekidačkom algebrom, tj. B={0,1}.

Zbog sličnosti sa operacijama aritmetičkog sabiranja i množenja, za operacije OR i AND se često koriste i termini logički zbir i logički proizvod. Tako, za x1+ x2 kažemo da predstavlja logički zbir ili sabirak, a za x1·x2 logički proizvod promenljivih x1 i x2. Takođe, uobičajeno je da se umesto ˝logički zbir˝ i ˝ logički proizvod˝ kaže samo ˝zbir˝ i ˝proizvod˝. Logički zbir proizvoda čini izraz oblika suma proizvoda (sum-of-product – SOP). Slično, logički proizvod sabiraka čini izraz oblika proizvod sabiraka (product-of-sums - POS). Tako, kažemo da:

x1 · x2’ · x3 + x1' · x4 + x2 · x3 · x4'

predstavlja SOP izraz od tri proizvoda, dok:

(x1 + x3) · (x1 + x3') · (x2' + x3 + x4)

predstavlja POS izraz od tri sabirak.

Elementarne logičke operacije, AND, OR i NOT, fizički se ralizuju u obliku elektronskih tranzistorskih kola koja se zovu logička kola ili gejtovi. Logičko kolo ima jedan ili više ulaza i jedan izlaz koji je u funkciji ulaza. Za predstavljanje logičkih kola koriste se standardni grafički simboli. Simboli AND, OR i NOT logičkih kola prikazani su na Sl. 2.1. Na levom delu slike dati su simboli dvo-ulaznih logičkih kola, dok su na desnom delu slike prikazani simboli za odgovarajuća više-ulazna logička kola.

Page 21: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Logičko projektovanje

21

(a) AND gejtovi

(b) OR gejtovi

(c) NOT gejt

Sl. 2.1 Elementarna logička kola.

2.1.1 Prekidačke funkcije

Formalno, prekidačka funkcija n promenljivih, f(x1, x2, ..., xn), definiše se kao preslikavanje:

f: Bn → B

Elementi skupa Bn su uređene n-torke: (x1, x2, ..., xn), gde su xi, i=1,n, promenljive u skupu B. Ove uređene n-torke nazivamo vektorima ili slogovima. Njih ima ukupno 2n, a funkcija f svakoj n-torki pridružuje 0 ili 1.

Funkcija se može zadati u obliku tabele istinitosti, čiji je opšti oblik prikazan na Sl. 2.2. Svaki slog u tabeli istinitosti se može interpretirati kao binarni broj. Kada se ovaj binarni broj konvertuje u decimalni broj dobijamo decimalni indeks konkretnog sloga. Uobičajeno je da se u tabeli istinitosti slogovi navode u prirodnom redosledu, tj. u rastućem redosledu njihovih decimalnih indeksa. Tabela istinitosti prekidačke funkcije f može se u potpunosti odrediti zadavanjem skupa decimalnih indeksa slogova na kojima funkcija ima vrednost 1 ili 0. Te skupove označavaćemo redom sa f(1) i f(0).

Dec. indeks

x1 x2 xn-1 xn f(x1, x2, …, xn-1, xn)

0 0 0 … 0 0 f(0, 0, …, 0, 0) 1 0 0 … 0 1 f(0, 0, …, 0, 1) 2 0 0 1 0 f(0, 0, …, 1, 0) . . .

.

.

.

.

.

. 2n-1 1 1 1 0 f(1, 1, …, 1, 0) 2n 1 1 … 1 1 f(1, 1, …, 1, 1)

Sl. 2.2 Opšti oblik tabele istinitosti.

Vrednosti prekidačke funkcije f na slogovima formiraju vektor istinitosti, Kf. Vektor istinitosti je niz od 2n binarnih vrednosti, pri čemu svaka konkretna kombinacija ovih vrednosti potpuno definiše jednu prekidačku

funkciju. Odatle sledi da broj različitih prekidačkih funkcija od n promenljivih iznosi n22 .

Page 22: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

22

Bilo koja logička funkcija, proizvoljne složenosti, može se izraziti pomoću tri osnovne logičke operacije: AND, OR i NOT. Logičke funkcije fizički se realizuju povezivanjem (tj. kombinovanjem) logičkih kola u logičke, ili kombinacione mreže. Kombinaciona mreža se konstruiše direktno na osnovu algebarskog izraza date logičke funkcije. Na primer, na Sl. 2.3 je prikazana kombinaciona mreža koja realizuje funkciju f(x1, x2) = (x1+x2)·x3.

Sl. 2.3 Kombinaciona mreža za funkciju f(x1, x2) = (x1+x2)·x3.

2.1.2 Osnovne teoreme prekidačke algebre

Prilikom analize ili sinteze digitalnih kola, algebarski izrazi se često koriste za karakterizaciju ponašanja postojećih kola ili željenog ponašanja kola koja projektujemo. Teoreme prekidačke algebre su dokazano tačna tvrđenja, ili osobine. Aksiome i teoreme nam omogućavaju da manipulišemo algebarskim izrazima, što nam olakšava analizu i povećava efikasnost sinteze odgovarajućih kola. Na primer, teorema x+x=x omogućava da se svako pojavljivanje x+x u nekom složenijem izraz zameni sa x.

Ispod su navedene osnovne teoreme prekidačke algebre, zajedno sa imenima pod kojima su poznate. Ako su x, y i z promenljive u skupu B={0,1}, tada važe sledeće osobine:

T1. Zakon idenpotencije (zakon nevaženja stepenovanja) a. x + x = x b. x · x = x

T2. Neutralni elementi a. x + 1 = 1 b. x · 0 = 0

T3. Zakon apsorpcije a. x + x · y = x b. x · (x + y) = x

T4. Zakon involucije operacije negacije (zakon dvojne negacije) a. (x’)’ = x

T5. Zakon asocijativnosti a. x + (y + z) = (x + y) + z b. x · (y · z) = (x · y) · z

PRIMER 2.2 Za funkciju F zadatu tabelom istinitosti:

Dec. indeks

x y z F(x, y, z)

0 0 0 0 1 1 0 0 1 0 2 0 1 0 0 3 0 1 1 1 4 1 0 0 1 5 1 0 1 1 6 1 1 0 0 7 1 1 1 1

odrediti:

(a) skupove decimalnih indeksa F(0) i F(1) (b) vektor istinitosti KF.

Odgovor:

(a) F(0) =(1,2,6), F(1) =(0,3,4,5,7) (b) KF = (1,0,0,1,1,1,0,1)

PRIMER 2.1 Odrediti tabele istinitosti funkcija f, g i h od 3 promenljive, zadatih:

(a) algebarskim izrazom f(x,y,z) = x+y’z’

(b) skupom decimalnih indeksa g(1) = (1,3,4,6)

(c) skupom decimalnih indeksa h(0) = (0,1,5)

Odgovor:

Dec. indeks

x y z f(x, y, z) g(x, y, z) h(x, y, z)

0 0 0 0 1 0 0 1 0 0 1 0 1 0 2 0 1 0 0 0 1 3 0 1 1 0 1 1 4 1 0 0 1 1 1 5 1 0 1 1 0 0 6 1 1 0 1 1 1 7 1 1 1 1 0 1

Page 23: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Logičko projektovanje

23

T6. Zakon sažimanja a. x · y + x · y’ = x b. (x + y) · (x + y’) = x

T7. De Morganova teorema a. (x + y)’ = x’ · y’ b. (x · y)’ = x’ + y’

Većina teorema prekidačke algebre mogu se lako dokazati korišćenjem postupka koji se zove savršena indukcija. Ovaj postupak se oslanja na činjenicu da logička promenljiva može imati samo jednu od dve moguće vrednosti, 0 ili 1, pa ja zbog toga i broj mogućih kombinacija vrednosti svih promenljivih u jednom logičkom iskazu konačan. Dakle, da bi teorema bila dokazana, dovoljno je u iskaz teoreme zameniti sve moguće kombinacije vrednosti promenljivih i za svaki takav slučaj ispitati da li izrazi sa leve i desne strane znaka jednakosti imaju istu vrednost.

Na primer, teoreme T2.a glasi x + 1 = 1. S obzirom da x može biti 0 ili 1, ova teorema se razlaže na dva identiteta koji sadrže samo konstante: 1 + 1 = 1 i 0 + 1 = 1, a čija tačnost direktno sledi na osnovu definicije operatora +.

Na Sl. 2.4 je ilustrovano kako se savršenom indukcijom može dokazati De Morganova teorema (T7.a). Pošto u iskazu ove teoreme figurišu dve promenljive, x i y, broj kombinacija njihovih vrednosti je četiri. Kao što se vidi sa Sl. 2.4, za svaku od ove četiri kombinacije, izrazi sa leve i desne strane znaka jednakosti daju isti rezultat.

x y x · y (x · y)’ x’ y’ x’+y’

0 0 0 1 1 1 1

0 1 0 1 1 0 1

1 0 0 1 0 1 1

1 1 1 0 0 0 0

leva strana

desna strana

Sl. 2.4 Dokaz De Morganove teoreme 7a.

Iako na prvi pogled izgledaju kao jednostavna i očigledna pravila, aksiome i navedene teoreme prekidačke algebre predstavljaju teorijsku osnovu celokupnog logičkog projektovanja. Razmotrimo, na primer, zakon asocijativnosti. Ovaj zakon, u kombinaciji sa zakonom komutativnosti, ukazuje da u logičkoj sumi ili proizvodu proizvoljnog broja promenljivih redosled promenljivih i raspored zagrada nije od značaja. Na primer, strogo algebarski gledano, izraz x·y·z·v je neodređen, jer nije jasno u kom redosledu treba obaviti izračunavanje izraza. Neke od mogućih opcija su: (x·(y·(z·v))), (((x·y)·z)·v), ili (x·y)·(z·v). Međutim, zakon asocijativnosti kaže da ćemo bez obzira na redosled primene operatora · uvek dobiti isti rezultat. Šta više, ako imamo u vidu zakon komutativnosti, do istog rezultata doćićemo čak iako u polaznom izrazu promenimo redosled promenljivh, na primer, (y·(z·(x·v))) ili (x·v)·(z·y). Prevedeno na jezik logičkih kola, iz navedenog primera primene zakona asocijativnosti sledi da se 4-ulazna AND funkcija može realizovati pomoću 2-ulaznih AND kola na bilo koji od načina predstavljenih na Sl. 2.5. Zakon komutativnosti kaže da redosled povezivanja ulaznih signala na ulaze logičkog AND ili OR kola nije bitan.

Sl. 2.5 Realizacija funkcije f=xyzv: (a) pomoću jedinstvenog 4-ulaznog AND gejta; (b) pomoću 3 2-ulazna AND gejta - varijanta 1; (c) pomoću 3 2-ulazna AND gejta - varijanta 2.

Zakoni apsorpcije i sažimanja često se koriste za minimizaciju (pojednostavljenje) logičkih funkcija. Shodno zakonu apsorpcije, izraz x + x·y, koji je deo nekog složenijeg izraza, može se redukovati na x. Kaže se da je promenljiva x apsorbovala promenljivu y. Primenom zakona sažimanja, izraz oblika x·y+x·y’ može se redukovati, takođe, na samo jednu promenljivu, x. Nakon izvršenih apsorpcija i sažimanja, polazni složeni izraz biće jednostavniji, što znači da će i za njegovu realizaciju biti potrebno upotrebiti manji broj logičkih kola.

Page 24: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

24

Složenost algebarskog izraza može se izraziti brojem operatora koje sadrži, tj. brojem operacija koje treba obaviti da bi se izračunala njegove vrednost. Primenom apsorpcije broj operatora u polaznom izrazu se smanjuje za 2, a primenom zakona sažimanja za 3 operatora.

Napomenimo da polazeći od bilo koje aksiome ili teoreme i smenom promenljivih proizvoljnim aritmetičkim izrazima dobijamo iskaz koji je takođe tačan. Najjednostavnija smena je zamena promenljivih komplemenima promenljivih. Na primer, ako u iskaz zakona asocijativnosti uvedemo smene: x=x’ i y=y’ dobićemo tačan identitet:

x’ + (y’ + z) = (x’ + y’) + z

Izraz koji zamenjuje promenljivu može biti značajno složeniji. Na primer, smenama: x=x+v’ i y=y+v·z’ u iskaz zakona apsorpcije dobijamo tačan identitet:

x + v’ + (x+v’) · (y+v · z’) = x + v’

Algebarske manipulacije

Pokazali smo kako se teoreme prekidačke algebre mogu dokazati primenom savršene indukcije. Međutim, dokaz teoreme može biti izveden i direktnom primenom aksioma i dokazanih teorema na izraze koji čine iskaz date teoreme, tj. algebarskim manipulacijama. Na primer, dokaz zakona apsorpcije možemo izvesti tako što ćemo izraz sa leve strane znaka jednakosti, x + x·y, primenom poznatih identiteta, svesti na izraz sa desne strane znaka jednakosti, tj. x:

x + x · y = x · 1 + x · y (shodno A2.b) = x · (1+ y) (shodno A4.a) = x · 1 (shodno T2.a) = x (shodno A2.b)

Algebarske manipulacije možemo koristiti i za dokazivanje složenijih logičkih identiteta sa većim brojem promenljivih, kao što je to ilustrovano sledećim primerima.

PRIMER 2.4 Dokazati da sledeća dva logička izraza predstavljaju istu funkciju:

F1(x, y, z) = x·y+x·y’·z+x’·y·z

F1(x, y, z) = x·y+x·z+y·z

Rešenje: Dokazaćemo da su prethodna dva izraza ekvivalentna tako što ćemo prvi izraz redukovati na drugi, na sledeći način:

x·y+x·y’·z+x’·y·z =

= x·y+x·y·z+x·y’·z+x’·y·z apsorbcija

= x·y+x·(y+y’)·z+x’·y·z distributivnost

= x·y+x·1·z+x’·y·z komplement

= x·y+x·z+x’·y·z identitet

= x·y+x·y·z+x·z+x’·y·z apsorpcija

= x·y+x·z+(x+x’) ·y·z distributivnost

= x·y+x·z+1·y·z komplement

= x·y+x·z+y·z identitet

Nakon što smo dokazali da su dva izraza ekvivalentna, nadalje možemo koristiti jednostavniji, tj. onaj sa manjim brojem operatora. Brojanjem operatora pristunih u algebarskim izrazima, možemo zaključiti da izraz F1=x·y+x·z+y·z sadrži samo tri AND i dva OR operatora, umesto pet AND, dva OR i dva NOT, koliko sadrži izraz F1=x·y+x·y’·z+x’·y·z. Znači, pošto drugi izraz sadrži manji broj operatora, možemo pretpostaviti da će on, takođe, zahtevati i manje hardvera kada se funkcija F1 bude realizovala u vidu kombinacione mreže.

PRIMER 2.3 Dokazati logički identitet:

(x1 + x3) · (x1’ + x3’) = x1 · x3' + x1' · x3

Rešenje: Izraz sa leve strane znaka jednakosti, LS, možemo transformisati na sledeći način:

Primenom zakona distributivnosti, A3.a, dobijamo:

LS = (x1 + x3) · x1’ + (x1 + x3) · x3’

Ponovnom primenom zakona distributivnosti, dolazimo do izraza:

LS = x1 · x1’ + x3 · x1’ + x1 · x3’ + x3 · x3’

Uočimo da osobina distributivnosti omogućava “AND-ovanje” članova u zagradi na isti način kao kod množenja u standardnoj algebri.

Shodno aksiomi A5.b članovi x1 · x1’ i x3 · x3’ jednaki su 0, što daje:

LS = 0 + x3 · x1’ + x1 · x3’ + 0

Iz A2.a sledi:

LS = x3 · x1’ + x1 · x3’

Konačno, korišćenjem zakona komutativnosti, A3.a i A3.b, dolazimo do izraza:

LS = x1’ · x3 + x3’ · x1

koji je identičan izrazu sa desne strane znaka jednakosti polaznog identiteta.

Page 25: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Logičko projektovanje

25

Na osnovu primera 2.5, možemo postaviti pravilo po kome je broj AND i OR operatora u algebarskom izrazu jednak broju literala umanjenom za jedan. Na primer, prvi izraz ima osam literala, odnosno ukupno sedam AND i OR operatora, tj. pet AND i dva OR. Drugi izraz, koji ima samo šest literala, sadrži ukupno pet AND i OR operatora, tj. tri AND i dva OR. Znači, smenjenje broj literala je ekvivalentno smanjenju broja operator.

Primeri 2.3, 2.4 i 2.5 ilustruju primenu aksioma i teorema kao mehanizma za algebarske manipulacije nad logičkim izrazima. Međutim, čak i ovi jednostavni primeri ukazuju da bi baratanje složenim izrazima na ovakav način bilo nepraktično. Međutim, aksiome i teoreme prekidačke algebre predstavljaju osnovu za automatizaciju sinteze logičkih funkcija u CAD alatima. Bez obzira što projektanti retko neposredno koriste algebarske manipulacije, razumevanje fundamentalnih koncepta logičkog projektovanja je preduslov za efkasno korišćenje CAD alata.

2.1.3 Generalizovane teoreme prekidačke algebre

Nekoliko važnih teorema iz skupa osnovnih teorema prekidačke algebre, T1-T7, mogu se uopštiti na proizvoljan broj promenljivih. Četiri takve teoreme navedene su ispod:

T8. Generalizovana idenpotencija a. x + x + … + x = x b. x · x · … · x = x

T9. De Morganova teorema za n promenljive a. (x + x + … + x)’ = x’ · x’ · … · x’ b. (x · x · … · x)’ = x’ + x’ + … + x’

T10. Generalizovana De Morganova teorema

[F(x1, x2, …, xn, +, ·,’)]' = F(x1’, x2’, …, xn’, ·,+,’)

T11. Šenonova teorema razvoja a. F(x1, x2, …, xn) = x1 · F(1, x2, ..., xn) + x1’ · F(0, x2, ..., xn) b. F(x1, x2, …, xn) = [x1 + F(0, x2, ..., xn)] · [x1’ + F(1, x2, ..., xn)]

Teoreme T8-11 mogu se dokazati postupkom koji se zove konačna indukcija – najpre se dokaže da je teorema tačna za n=2, a zatim se dokaže da ako je teorema tačna za n=i tada je takođe tačna i za n=i+1. Razmotrimo, na primer, teoremu generalizovane idenpotencije, T8.a. Za n=2, teorema T8.a se svodi na teoremu

PRIMER 2.5 Dokazati: x1· x3' + x2' · x3' + x1 · x3 + x2' · x3 = x1' · x2' + x1 · x2 + x1 · x2'

Rešenje: Izraz sa leve strane znaka jednakosti možemo transformisati na sledeći način:

LS = x1· x3' + x1 · x3 + x2' · x3' + x2' · x3 (shodno A3.a) = x1· (x3' + x3) + x2' · (x3' + x3) (shodno A4.a)

= x1· 1 + x2' · 1 (shodno A5.a) = x1 + x2' (shodno A2.b)

Izraz sa desne strane znaka jednakosti, DS, takođe možemo transformisati:

DS = x1' · x2' + x1 · (x2 + x2') (shodno A4.a) = x1' · x2' + x1 · 1 (shodno A5.a) = x1' · x2' + x1 (shodno A2.b) = (x1' + x1) · (x2' + x1) (shodno A4.b) = 1 · (x2' + x1) (shodno A5.a) = x2' + x1 (shodno A2.b) = x1 + x2' (shodno A3.a)

Svođenjem obe strane polaznog iskaza na identične izraze, dokazali smo da je polazni izraz tačan. Uočimo da obe strane polazne jednakosti predstavljaju istu logičku funkciju:

f(x1, x2, x3) = x1· x3' + x2' · x3' + x1 · x3 + x2' · x3 = x1' · x2' + x1 · x2 + x1 · x2'

Kao rezultat algebarskih manipulacija, došli smo do mnogo jednostavnijeg izraza:

f(x1, x2, x3) = x1 + x2'

koji, takođe, predstavlja istu funkciju.

Page 26: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

26

T1.a i zbog toga je tačna. Ako je teorema T8.a tačna za logičku sumu od i x-ova, tada je takođe tačna i za logičku sumu i+1 x-ova, shodno sledećem rezonovanju:

x + x + x + ... + x = x + (x + x + ... + x) (i+1 x sa obe strane) = x + (x) (pod pretpostavkom da je T8.a tačna za n=i) = x (na osnovu T1.a)

Ovime je dokazano da je teorema T8.a tačna za bilo koje konačno n.

De Morganova teorema je verovatno najčešće korišćena teorema prekidačke algebre. De Morganova teorema za n promenljivih kaže da je komplement zbira jednak proizvodu komplemenata promenljivih (T9.a), odnosno, da je komplement proizvoda jednak zbiru komplemenat promenljivih (T9.b). Primenjeno na logička kola, to znači da je OR kolo sa komplemeniranim izlazom identično AND kolu sa komplementiranim ulazima, tj. NAND (skraćeno od Not AND) kolu (Sl. 2.6a). Slično, AND kolo sa komplementiranim izlazom identično je OR kolu sa komplementiranim ulazima, tj. NOR (skraćeno od Not OR) kolu (Sl. 2.6b). Često, prilikom crtanja logičkih šema invertor se zamenjuje kružićem koji se pridružuje ulazu ili izlazu logičkog kola, što nas dovodi do alternativnih simbola za NOR i NAND logička kola (Sl. 2.6c). Shodno De Morganovoj teoremi, prethodna diskusija se može uopštiti na logička kola sa proizvoljnim brojem ulaza.

(a) NAND kolo ekvivalentno je OR kolu sa komplementiranim ulazima

(b) NOR kolo ekvivalentno je AND kolu sa komplementiranim ulazima.

(c) alternativni grafički simboli za NAND i NOR kola.

Sl. 2.6 Ekvivalentna kola shodno De Morganovoj teoremi.

Teorema T9 je specijalan slučaj generalizovane De Morganove teoreme, T10, koja se može primeniti na bilo koji logički izraz. Tačnije, De Morganova teorema za n promenljivih je primena generalizovane De Morganove teoreme na izraze oblika logičkog zbira i logičkog proizvoda. Po definiciji, komplement logičkog izraza F, u oznaci F’, je logički izraz čija je vrednost jednaka komplementu vrednosti izraza F za sve kombinacije vrednosti promenljivih. Generalizovana De Morganova teorema kaže da se F' može odrediti tako što će se u izrazu F komplementirati sve promenljive, svi AND operatori zameniti OR operatorima, i svi OR operatori zameniti AND operatorima. Teorema T10 je veoma bitna, jer definiše jedan jednostavan postupak za izvođenje izraza za komplent date funkcije. Na primer, odredimo komplement sledeće funkcije:

F(x1, x2, x3, x4) = x1’·x2 + x2·x3 + x1 · (x2' + x4')

= ((x1)’·x2) + (x2·x3) + (x1 · ((x2)' + (x4)'))

U drugoj liniji, zagradam su izdvojene promenljive koje se komplementiraju. To je učinjeno iz razloga da bi se naglasilo da ’ nije deo imena promenljive već operator koji se primenjuje na promenljivu. Primenom teoreme T10 dobijamo:

[F(x1, x2, x3, x4)]’ = ((x1’)’+ x2’) · (x2’+x3’) · (x1’ + ((x2’)' · (x4’)'))

Primenom teoreme dvojne negacije, T4, dobijeni izraz se može dodatno pojednostaviti:

[F(x1, x2, x3, x4)]’ = (x1+x2’) · (x2’+x3’) · (x1’ + x2 · x4)

2.1.4 Princip dualnosti

Uočimo da su aksiome Bulove algebre navedene u parovima. To je učinjeno iz razloga da bi se naglasila jedna bitna osobina Bulove algebre, koja se zove princip dualnosti, a čije važenje nije ograničeno samo na aksiome,

Page 27: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Logičko projektovanje

27

već se odnosi i na sve teoreme i identitete koji se mogu izvesti polazeći od aksioma i poznatih teorema. Ako je A logički iskaz, tada pod njegovim dualnim iskazom, AD, podrazumevamo iskaz koji se dobija kada se u iskazu A operacije + zamene operacijama ·, operacije · zamene operacijama +, konstanta 1 zameni konstantom 0 i konstanta 0 zameni konstantom 1. Uočimo da svi parovi aksioma i teorema prekidačke algebre predstavljaju dualne iskaze. Princip dualnosti kaže da ako je iskaz A tačan tada je i njegov dualni iskaz, AD

, takođe tačan.

Princip dualnosti je u suštini metateorema, tj. teorema o teoremama. Ova metateorema je tačna zato što su duali svih aksioma tačni, pa se duali svih teorema prekidačke algebre mogu dokazati korišćenjem duala aksioma.

Iako su pravila za izvođenje dualnog iskaza jednostavna, ipak, moramo biti obazrivi u njihovoj primeni. Naime, direktna primena principa dualnosti na iskaze koji su napisani pod pretpostavkom konvencije o prethođenju operacija, može da nas dovede do pogrešnog rezultata. Na primer, primenimo princip dualnosti na teoremu T3.a:

x + x · y = x (teorema T3.a) x · x + y = x (nakon primene principa dualnosti) x + y = x (shodno T1.b)

Očigledno, poslednja linija u prethodnom izvođenju je netačna. Problem je u prethođenju operacija. Iako je polazni iskaz napisan bez zagrada, on se tumači na sledeći način:

x + (x · y) = x

Ako sada primenimo princip dualnosti, dobićemo tačan rezultat, tj. teoremu T3.b:

x · (x + y) = x

Dakle, pre primene principa dualnosti treba u polazni iskaz umetnuti zagrade svuda tamo gde su one izostavljene zbog konvencije prethođenja operacija.

Definišimo sada pojam dualnog logičkog izraza. Ako je F(x1, x2, …, xn, +, ·,’) logički izraz koji sadrži promenljive x1, x2, …, xn, i operatore +, · i ’, i kod koga zagrade nisu eliminisane zbog konvencije prethođenja operacija, tada je njegov dual, FD, identičan izraz ali sa zamenjenim operatorima + i ·, tj:

FD(x1, x2, …, xn, +, ·,’) = F(x1, x2, …, xn, ·, +,’)

Uočimo da korišćenjem ove notacije, De Morganovu teoremu možemo napisati na sledeći način:

[F (x1, x2, …, xn)]' = FD(x1’, x2’, …, xn’)

Poslednji iskaz ukazuje na vezu između principa dualnosti i generalizovane De Morganove teoreme. Naime, generalizovni De Morganovu teoremu možemo iskazati i na sledeći način: Komplement logičke funkcije identičan je njenoj dualnoj funkciji primenjenoj na komplemente promenljivih.

Razmotrimo sada značenje ove konstatacije u kontekstu fizičkih, kombinacionih mreža.

Promenljive prekidačke algebre odgovaraju signalima kombinacione mreže. Kao što promenljiva može imati dve različite logičke vrednosti, 0 ili 1, tako i signal može biti u jednom od dva različita stanja. U digitalnoj elektronici, stanjima signala odgovaraju naponski nivoi: viši nivo, ili HIGH (npr. 5V) i niži nivo, ili LOW (npr. 0V). Očigledno, postoje dva načina kako se može uspostaviti korespondencija između logičkih vrednosti i naponskih nivoa. Ako usvojimo da logičkoj nuli odgovara naponski nivo LOW, a logičkoj jedinici naponski nivo HIGH, kažemo da koristimo pozitivnu logiku. U suprotnom, ako usvojimo HIGH=0 i LOW=1, kažemo da koristimo negativnu logiku.

Sl. 2.7 Logički gejt tip_1: (a) električna funkcionalna tabela; (b) logička funkcionalna tabela i simbol za slučaj pozitivne logike; (c) logička funkcionalna tabela i simbol za slučaj negativne logike.

Page 28: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

28

Pretpostavimo da raspolažemo logičkim elektronskim elementom čija je električna funkcionalna tabela data na Sl. 2.7.a. Ova tabela pokazuje zavisnost između naponskog nivoa na izlazu i naponskih nivoa na ulazima elementa. Neka se ovaj element zove gejt ˝tip_1˝. Ako se držimo konvencije pozitivne logike (HIGH=1, LOW=0), gejt tip_1 predstavlja AND logičko kolo. Međutim, ako usvojimo negativno logiku (HIGH=0, LOW=1), gejt tip_1 predstavljaće logičko OR kolo. Uočimo da promena sa pozitivne na negativnu logiku ne zahteva nikakvu intervenciju nad fizičkim elementom, već samo predstavlja promenu načina tumačenja naponskih nivoa. Logičke operacije AND i OR su dualne, a ovaj primer pokazuje da logički element, u suštini, realizuje dve različite logičke operacije u zavisnosti od usvojene konvencije tumačenja naponskih nivoa. Naime, ako u pozitivnoj logici element realizuje operaciju F, tada u negativnoj logici taj isti element realizuje operaciju FD. Ova konstatacija ne važi samo na nivou elementarnih logičkih kola, već se odnosi i na logičke mreže proizvoljne složenosti.

Sl. 2.8 Logički gejt tip_2: (a) električna funkcionalna tabela; (b) logička funkcionalna tabela i simbol za slučaj pozitivne logike; (c) logička funkcionalna tabela i simbol za slučaj negativne logike.

Pretpostavimo da osim gejtom tip_1, raspolažemo i gejtom tip_2, koji u pozitivnoj logici obavlja logičku OR, a u negativnoj logici logičku AND operaciju (Sl. 2.8). Takođe, neka je dat proizvoljni logički izraz F(x1, x2, …, xn). Sledeći konvenciju pozitivne logike, možemo realizovati kombinacionu mrežu koja odgovara ovom izrazu korišćenjem invertora za NOT, gejta tip_1 za AND, i gejta tip_2 za OR operacije (Sl. 2.9.a). Pretpostavimo da sada, bez ikakvih promena u kolu, jednostavno premenimo logičku konvenciju sa pozitivne na negativnu. Iako se fizički ništa nije promenilo, sa tačke gledišta prekidačke algebre, desile su se značajne promene: operacije AND sada su OR, a operacije OR sada su AND. Dakle, mreža više ne odgovara izrazu F, već izrazu FD. Jasno, za svaku moguću izlaznu kombinaciju naponskih nivoa (HIGH i LOW), mreža i dalje generiše na izlazu isti napon. Međutim, logička izlazna vrednost, 0 ili 1, suprotna je onoj koja je važila u pozitivnoj logici. Slično, svaka ulazna vrednost sada je suprotna svom ranijem značenju. Dakle, za svaku moguću ulaznu kombinaciju kola sa Sl. 2.9.a, izlaz je suprotan (komplementaran) onome koji se za komplementarnu ulaznu kombinaciju generiše na izlazu kola sa Sl. 2.9.b.

Sl. 2.9 Dualne logičke mreže: (a) logička mreža za funkciju F koja koristi invertore i gejtove tip_1 i tip_2 pod pretpostavkom pozitivne logike; (b) realizacija prethodnog kola za negativnu logiku.

Prethodna diskusija može se sažeti na sledeća dva opšta zaključka:

1. Logička mreža koja u pozitivnoj logici realizuje izraz F, u negativnoj logici realizuje izraz FD.

2. Ako mrežu koja realizuje izraz F proširimo ugradnjom invertora na njenim ulazima i izlazima dobićemo mrežu koja realizuje izraz FD (a ne F, kako bi se možda moglo očekivati, ako bi smo pokušali da pravilo dvojene negacije uopštimo na proizvoljan logički izraz!).

Uočimo da princip dualnosti ne deluje na operator NOT. Naime, dual izraza x’ je x’. Operacija negacije pripada jednoj posebnoj klasi prekidačkih funkcija za koje važi: F=FD, a koje se zovu samodulane funkcije.

Page 29: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Logičko projektovanje

29

2.1.5 Kanoničke forme

U odeljku 2.1.1 pokazano je kako se Bulova fukcija može definisati pomoću tabele istinitosti. U ovom odeljku biće pokazano kako se tabela istinitosti može konvertovati u algebarski izraz.

Mintermi

Za funkciju od n promenljivih, produktni član u kome se svaka od n promenljivih pojavljuje tačno jednom zove se potpuni proizvod ili minterm. U mintermu, promenljive se mogu pojavljivati u komplementiranom ili nekomplementiranom obliku. Na primer, proizvodi x1’x2x3, x1’x2x3’ i x1x2x3 su primeri potpunih proizvoda od tri promenljive: x1, x2 i x3. Minterm ima vrednost 1 samo za jednu kombinaciju vrednosti promenljivih i to onu kod koje sve promenljive koje se u mintermu javljaju bez komplementa imaju vrednost 1, a sve one koje se u mintermu javljaju sa komplementom imaju vrednost 0. Na primer, minterm x1’x2x3 ima vrednost 1 samo ako važi: x1=0 i x2=1 i x3=1.

Minterm se može definisati i kao prekidačka funkcija koja ima 1 smo u jednoj, a 0 u svim ostalim vrstama, tj. slogovima, tabele istinitosti. Pošto tabela istinitosti sadrži 2n vrste, broj različitih minterma je, takođe, 2n. Dakle, svakom slogu odgovara jedan minterm. Pri tome pozicije nula u slogu određuju pozicije komplemenata u algebarskom izrazu odgovarajućeg minterma. Ovaj koncept ilustrovan je na Sl. 2.10. U tabeli sa Sl. 2.10 navedeni su svi mintermi od tri promenljive. Na primer, u prvoj vrsti promenljive imaju vrednosti: x1=x2=x3=0, što odgovara mintermu x1’x2’x3’. U drugoj vrsti, vrednosti promenljivih su: x1=x2=0 i x3=1 što daje minterm x1’x2’x3 i tako dalje. Uobičajeno je da se pojedinačni mintermi označavaju pomoću decimalnog indeksa sloga kome su pridruženi. Koristićemo notaciju mi da bi smo označili minterm za slog sa decimalnim ideksom i. Znači, m0= x1’x2’x3’, m1= x1’x2’x3 i tako dalje.

x1 x2 x3 Minterm Maksterm 0 0 0 m0 = x1’x2’x3’ M0 = x1+x2+x3 0 0 1 m1 = x1’x2’x3 M1 = x1+x2+x3’ 0 1 0 m2 = x1’x2x3’ M2 = x1+x2’+x3 0 1 1 m3 = x1’x2x3 M3 = x1+x2’+x3’ 1 0 0 m4 = x1x2’x3’ M4 = x1’+x2+x3 1 0 1 m5 = x1x2’x3 M5 = x1’+x2+x3’ 1 1 0 m6 = x1x2x3’ M6 = x1’+x2’+x3 1 1 1 m7 = x1x2x3 M7 = x1’+x2’+x3’

Sl. 2.10 Mintermi i makstermi od tri promenljive.

Prekidačka funkcija f može se predstaviti u obliku zbira svih minterma, gde je svaki minterm pomnožen vrednošću funkcije za odgovarajuću kombinaciju vrednosti ulaznih promenljivih. Na primer, za dve promenljive postoje četiri minterma: m0=x1’x2’, m1=x1’x2, m2=x1x2’ i m3=x1x2. Funkcija definisana tabelom istinitosti sa Sl. 2.11 može se predstaviti u obliku:

f = m0·1 + m1·1 + m2·0 + m3·1 = m0 + m1+ m3 = x1’x2’ + x1’x2 + x1x2

Uočimo da se u konačnom izrazu pojavljaju samo oni mintermi koji odgovaraju slogovima na kojima funkcija ima vrednost f=1. Ovo zapažanje možemo uopštiti na proizvoljnu prekidačku funkciju:

Bilo koja prekidačka funkcija f može se predstaviti zbirom minterma koji odgovaraju vrstama tabele istinitosti u kojima funkcija ima vrednost f=1.

Za logički izraz koji je sačinjen isključivo od sabranih proizvoda kaže se da je oblika zbir-proizvoda. Ako je pri tome svaki produktni član minterm, za takav logički izraz se kaže da je oblika kanoničkog zbira proizvoda (kanonički SOP). Dakle, prethodno opisani postupak definiše proceduru za sintezu prekidačke funkcije u oblik kanoničkog zbira proizvoda. Rezultujući izraz je korektan i jedinstven, ali ne mora da znači da je i minimalan u smislu cene realizacije funkcije f. U suštini, konverzija tabele istinitosti u kanonički algebarski izraz predstavlja samo prvi korak u sintezi prekidačkih funkcija. Da bi smo snizili cenu realizacije funkcije, u nastavku procesa sinteze, na dobijeni kanonički izraz možemo primeniti algebarske manipulacije i tako doći do jednostavnijeg izraza oblika zbir-proizvoda.

Kao drugi primer sinteze, razmotrimo funkciju tri promenljive f(x1, x2, x3) zadatu tabelom istinitosti sa Sl. 2.11. Kanonički zbir proizvoda funkcije f sadržaće minterme m1, m4, m5 i m6. Prostim prepisivanje ovih minterma iz tabele sa Sl. 2.10, dobijamo sledeći izraz:

Dec. indeks

x y z f(x, y, z)

0 0 0 0 0 1 0 0 1 1 2 0 1 0 0 3 0 1 1 0 4 1 0 0 1 5 1 0 1 1 6 1 1 0 1 7 1 1 1 0

Sl. 2.11 Funkcija od tri promenljive.

Page 30: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

30

f(x1, x2, x3) = x1’x2’x3 + x1x2’x3’ + x1x2’x3 + x1x2x3’

Ovaj izraz možemo pojdnostaviti na sledeći način:

f = (x1’ + x1)x2’x3 + x1(x2’ + x2’)x3’ = 1· x2’x3 + x1 · 1 ·x3’ = x2’x3 + x1 x3’

Dobijeni izraz predstavlja zbir-proizvoda minimalne cene koji realizuje funkciju f. Na osnovu ovog izraza možemo direktno nacrtati šemu logičke mrežu sa Sl. 2.12.a.

(a) minimalna realizacija tipa “zbir-proizvoda” (b) minimalna realizacija tipa “proizvoda-suma”

Sl. 2.12 Dve realizacije funkcije sa Sl. 2.11

Dobar indikator cene logičke mreže je ukupan broj logičkih kola plus ukupan broj ulaza u sva logička kola u mreži. Korišćenjem ove mere, cena mreže sa Sl. 2.12.a iznosi 13, zato što u mreži postoje 5 logičkih kola i ukupno 8 ulaza u logička kola. Radi poređenja, mreža realizovana direktno na osnovu polazne kanoničke forme imala bi cenu 27.

Mintermi, predstavljeni u obliku mi, mogu se, takođe, koristiti za koncizno zadavanje funkcije. Na primer, funkcija, čija je tabela istinitosti prikazana na Sl. 2.11, može se zadati na sledeći način:

f(x1, x2, x3) = ∑(m1, m4, m5, m6)

ili, čak, jednostavnije:

f(x1, x2, x3) = ∑m(1, 4, 5, 6)

Simbol za sumiranje označava OR operaciju nad mintermima čiji su indeksi navedeni u zagradama. Promenljive koje su navedene u zagradama nakon f predstavljaju promenljive koje se u istom redosledu javljaju u mintermima kada su oni napisani u obliku proizvoda. Uočimo da je skup navedenih indeksa identičan skupu decimalnih indeksa f(1). Dakle, važi:

f(x1, x2, x3) = ∑(f(1))

Nije teško uočiti da važi:

[f(x1, x2, x3)]' = ∑(f(0))

Odnosno, zbir minterma koji odgovaraju vrstama tabele istinitosti u kojima funkcija f ima vrednost 0, predstavlja izraz oblika kanonički zbir-proizvoda za funkciju f’.

Kao što je već rečeno, za datu funkciju postoji tačno jedan izraz oblika kanoničkog zbira-proizvoda kojim se ta funkcija može predstaviti. Sa druge strane, ne postoji jedinstven izraz oblika zbir-proizvoda koji predstavljaja istu funkciju, već je obično broj takvih izraza veoma veliki. Za razliku od postupak izvođenja minimalnog izraza oblika zbir-proizvoda, koji nije trivijalan, i zahteva izvesnu veštinu manipulisanja algebarskim izrazima, obrnuti postupak, tj. izvođenje kanoničkog zbira-proizvoda na osnovu datog zbira-proizvoda predstavlja gotovo trivijalan zadata. Naima, dovoljno je u polaznom izrazu svaki proizvod koji ne sadrži sve promenljive proširiti članovima oblika (x+x’) za svaku promenljivu x koja nedostaje u tom proizvodu, a zatim izvršiti sva potrebna množenja kako bi se oslobodili zagrada. Ovaj postupak biće ilustrovan sledećim primerom.

Page 31: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Logičko projektovanje

31

Maxtermi

Princip dualnosti sugeriše da ako je moguće sintetizovati funkciju f uzimajući u obzir samo one vrste tabele istinitosti gde je f=1, tada bi takođe trebalo biti moguće sintetizovati funkciju f uzimajući u obzir samo vrste tabele istinitosti gde je f=0. Ovaj alternativni pristup koristi komplemente minterma koji se zovu makstermi, ili potpune sume. U tabeli sa Sl. 2.10 navedeni su svi mogući makstermi za funkciju od tri promenljive. Maksterme ćemo označavati sa Mj, gde je j decimalni indeks odgovarajućeg minterma, mj.

Kao što je već napomenuto, ako je funkcija f zadata tabelom istinitosti, tada se njen komplement, f’, može predstaviti zbirom minterma za koje važi f=0. Na primer, za funkciju sa Sl. 2.13 važi:

f’(x1, x2) = m2 = x1x2’

ako sada komplementiramo obe strane gornjeg iskaza dobićemo:

f’’ = f = (x1x2’)’ = x1’ + x2

Dakle, f = m2’ = M2.

Razmotrimo ponovo funkciju sa Sl. 2.11. Komplement ove funkcije možemo predstaviti u obliku:

f’(x1, x2, x3) = m0 + m2 + m3 + m7 = x1’x2’x3’ + x1’x2x3’ + x1’x2x3 + x1x2x3

Na osnovu f' dobijamo izraz za f:

f = (m0 + m2 + m3 + m7)’ = m0' · m2' · m3' · m7' = M0 · M2 · M3 · M7 = (x1 +x2 +x3)(x1 + x2’ +x3)(x1 +x2’ +x3’)(x1’ +x2’ +x3’)

Dobijeni izraz predstavlja funkciju f u obliku proizvoda maksterma.

Za logički izraz koji je sačinjen isključivo od pomnoženih zbirnih članova kaže se da je oblika proizvod-suma. Ako je pri tome svaki zbirni član maksterm, za takav logički izraz se kaže da je oblika “kanonički proizvod-suma”. Bilo koja funkcija f može biti sintetizovana tako što će najpre biti predstavljena u oblik kanoničkog proizvoda-suma. To znači da najpre treba identifikovati, a zatim pomnožiti sve maksterme koji odgovaraju vrstama tabele istinitosti gde funkcija ima vrednost f=0.

PRIMER 2.6 Odrediti tabelu istinitosti funkcije:

f(x1, x2, x3, x4) = x1x3’x4 + x2’x3 + x1’x2’x3x4

Odgovor: Postavljeni zadatak možemo rešiti na poznati način: direktnim popunjavanjem tabele istinitosti izračunatim vrednostima funkcije za sve moguće kombinacije vrednosti promenljivih. Međutim, s obzirom da funkcija ima 4 promenljive, broj binarnih kombinacija za koje bi smo morali da računamo vrednost funkcije iznosi 16, što može biti dugotrajan posao. Zato ćemo do rešenja doći na drukčiji način: polazni izraz koji je oblika zbir-proizvoda proširićemo na oblik kanoničkog zbira-proizvoda, a zatim ćemo na osnovu dobijenih minterma odrediti decimalne indekse vrsti tabele istinitosti u kojima funkcija ima vrednost 1. Data izraz za funkciju f sastoji se iz tri proizvoda, od kojih je samo treći minterm. Prvom proizvodu nedostaje jedna promenljiva, x2, a drugom dve, x1 i x4, da bi i oni bili mintermi. Znači da bi smo dobili izaz u kanoničkom obliku potrebno je prvi produkni član pomonožiti sa (x2+x2’), a drugi sa (x1+x1’) (x4+x4’):

f(x1, x2, x3, x4) = x1(x2+x2’)x3’x4 + (x1+x1’)x2’x3(x4+x4’) + x1’x2’x3x4

nakon obavljenih množenja dobijamo:

f(x1, x2, x3, x4) = x1x2x3’x4 + x1x2’x3’x4 + x1x2’x3x4 + x1'x2’x3x4 + x1x2’x3x4’ +

= x1'x2’x3x4 + x1'x2’x3x4’ + x1’x2’x3x4

nakon sažimanja identičnih produktnih članova, dobijamo:

f(x1, x2, x3, x4) = m13 + m9 + m11 + m3 + m10 + m2

Dakle, funkciju f možemo predstaviti u obliku:

f(1) = (2, 3, 9, 10, 11, 13)

Tabela istinitosti za funkciju od četiri promenljive ima 16 vrsta. Dobijeni skup decimalnih indeksa f(1) ukazuje u koje vrste tabele istinitosti treba upisati 1.

x1 x2 f(x1, x2)

0 0 1 0 1 1 1 0 0 1 1 1

Sl. 2.13 Funkcija dve promenljive.

Page 32: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

32

Vratimo se na prethodni primer i pokušajmo da uprostimo izvedeni izraz. Korišćenjem osobina komutativnosti i asocijativnosti, ovaj izraz se može napisati u obliku:

f = ((x1 +x3) + x2)((x1 + x3) + x2’)(x1 + (x2’ +x3’))(x1’ +(x2’ +x3’))

Zatim, korišćenjem zakona sažimanja, T6.b, izraz možemo redukovati na oblik:

f = (x1 +x3) (x2’ +x3’)

Na Sl. 2.12.b je prikazana odgovarajuća logička mreža. Cena ove mreže iznosi 13. Iako se desilo da je cena ove mreže ista kao i cena mreže konstruisane na osnovu izraza oblika suma-proizvoda sa Sl. 2.12.a, to u opštem slučaju ne mora biti tako.

Korišćenjem skraćene notacije, funkciju f možemo predstaviti na alternativni način:

f(x1, x2, x3) = ∏ (M0, M2, M3, M7), ili, čak, jednostavnije:

f(x1, x2, x3) = ∏M(0, 2, 3, 7)

gde, simbol ∏ označava operaciju logičkog proizvoda.

Nije teško zaključiti da će izraz za komplement funkcije f, oblika kanoničkog proizvoda-suma, sadržati sve preostale maksterme, tj. one koji se ne javljaju u izraz za funkcija f:

f’(x1, x2, x3) = ∏M(1, 4, 5, 6)

U sledećem primeru rezimirani su zaključci do kojih smo došli u ovom odeljku, a koji se odnose na predstavljanje prekidačkih funkcija u kanoničkom obliku.

PRIMER 2.7 Na osnovu tabele istinitosti:

Dec. indeks

x y z f(x, y, z)

0 0 0 0 0 1 0 0 1 0 2 0 1 0 1 3 0 1 1 1 4 1 0 0 0 5 1 0 1 1 6 1 1 0 1 7 1 1 1 1

odrediti izraze oblika kanoničkog zbira-proizvoda i kanoničkog proizvoda-suma za funkcije f i f’.

Odgovor: Na osnovu tabele istinitosti, sve decimalne indekse možemo grupisati u dva skupa: f(1)=(2, 3, 5, 6, 7) i f(0)=(0, 1, 4). Prvi skup odgovara slogovima na kojima funkcija f ima vrednost 1, a drugi slogovima na kojima funkcija f ima vrednost 0.

Kanonički zbir-proizvoda funkcije f sadrži sve minterme iz skupa f(1):

f(x1, x2, x3) = ∑m(2, 3, 5, 6, 7) = x1’x2x3’ + x1’x2x3 + x1x2’x3 + x1x2x3’ + x1x2x3

Kanonički zbir-proizvoda funkcije f’ uključuje sve minterme iz skupa f(0):

[f(x1, x2, x3)]' = ∑m(0, 1, 4) = x1’x2’x3’ + x1’x2 ’x3 + x1x2’x3’

Kanonički proizvod-suma funkcije f uključuje sve maksterme iz skupa f(0):

f(x1, x2, x3) = ∏M(0, 1, 4) = (x1 +x2 +x3)(x1 + x2 +x3’)(x1’ +x2 + x3)

Kanonički proizvod-suma funkcije f’ uključuje sve maksterme iz skupa f(1):

[f(x1, x2, x3)]' = ∏M(2, 3, 5, 6, 7)

= (x1 +x2’ +x3)(x1 + x2’ +x3’)(x1’ + x2 + x3’) (x1’ + x2’ + x3) (x1’ + x2’ + x3’)

Page 33: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Logičko projektovanje

33

2.1.6 Standardne forme

Dve kanoničke forme opisane u odeljku 2.1.5 omogućavaju nam da na osnovu tabele istinitosti, direktno, izvedemo dva različita algebarska izraza za datu prekidačku funkciju. Međutim, s obzirom da svaki minterm ili maksterm sadrži n-1 AND ili OR operatora, ove dve forme veoma retko predstavljaju forme sa najmanjim brojem operatora.

Kao alternativa kanoničkim formama, prekidačke funkcije se mogu definisati u obliku standardne forme, kod koje proizvodi (tj. sabirci) mogu imati i manje od n-1 operatora. Postoje dve vrste standardnih formi, suma proizvoda (Sum of Products - SOP) i proizvod suma (Product of Sum - POS). Suma proizvoda se definiše kao logički izraz koji sadrži proizvode, ili implikante, od jednog ili više literala (ali, ne obavezno n). Na primer, funkcija F1 je zadata u obliku sume proizvoda:

F1=xy+x’yz+xy’z

Uočimo da izraz za funkciju F1 ima tri implikanta, od kojih svaki sadrži dva ili tri literala.

Sa druge strane, algebarski izraz tipa proizvod-suma sadrži sabirke, ili implikate. Svaki implikat može sadržati proizvoljan broj literala, a proizvod može imati proizvoljan broj implikata. Sledeći izraz predstavlja primer funkcije izražene u obliku proizvod-suma:

F1’=(x’+y’)(x+y’+z’)(x’+y+z’)

Uočimo da izraz za funkciju F1’ sadrži tri implikata sa po dva ili tri literala.

Standardne forme tipa suma-proizvoda i proizvod suma nisu jedinstvene, u smislu da proizvoljna logičku funkciju može biti predstavljena preko više različitih SOP ili POS izraza. Međutim, iako nisu jedinstvene, standardne forme su korisne, zato što sadrže manji broj literala u odnosu na kanoničke forme. Korišćenjem aksioma Bulove algebre, standardne forme se mogu izvesti na osnovu kanoničke forme kombinovanjem članova koji se razlikuju po jednom literalu.

Na primer, izraz xyz+xyz’ može se redukovati na izraz xy, na sledeći način:

xyz+xyz’ = xy(z+z’) (distributivnost – Aksioma 4(a))

= xy1 (komplement – Aksioma 5(a))

= xy (identitet - Aksioma 2(a))

Slično, izraz xyz+xyz’+xy’z+xy’z’ se može svesti na x, ako se gornja procedura primeni dva puta:

xyz+xyz’+xy’z+xy’z’ = xy(z+z’)+xy’(z+z’)

= xy+xy’

= x(y+y’)

= x

Takođe, standardna forma sa manjim brojem operatora može se izvesti ako se opisana procedura primeni više puta nad različitim grupama proizvoda, kao što je pokazano u primeru 2.9.

U opštem slučaju, članovi iz standardne forme se mogu kombinovati, a literali eliminisati, sve dok dalja redukcija više nije moguća. U tom slučaju, svaki preostali proizvod, tj. implikant, u formi tipa suma-proizvoda se zove primarni implikant, odnosno, primarni implikat, ako se radi o sumama, tj. implikatima, u standardnoj formi tipa proizvod-suma. Svaki primarni implikant reprezentuje jedan ili više 1-minterma date funkcije. Uočimo da svaki 1-minterm može biti uključen u jedan ili više primarnih implikanata. Ako je 1-minterm sadržan samo u jednom primarnom implikantu, takav implikant se zove esencijalni primarni implikant, s obzirom da ne može biti izostavljen iz bilo koje standardne forme, a da se pri tome ne promeni data funkcionalnost. Na sličan način, možemo definisati esencijalni primarni implikat za standardnu formu tipa proizvod-suma.

PRIMER 2.8 Izvesti standardnu formu sa smanjenim brojem operatora za funkciju:

F1=xyz+xyz’+xy’z+x’yz.

Rešenje: Kao što se može videti, proizvod xyz se može kombinovati sa svakim od preostalih proizvoda. To znači, da pre samog kombinavanja, prvi član treba umnožiti u još dva primerka:

F1 = xyz+xyz’+xy’z+x’yz

= xyz+xyz’+ xyz+xy’z + xyz+x’yz

= xy(z+z’)+ x(y+y’)z + (x+x’)yz

= xy+xz+yz

Page 34: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

34

Nestandardna forma

Iako standardne forme mogu sadržati manji broj operatora nego kanoničke forme, one i dalje ne moraju imati apsolutno najmanji broj operatora. Naime, faktorizacijom literala, data prekidačka funkcija se može izraziti u obliku nestandardne forme, koja, ponekada, može zahtevati čak i manji broj operatora. Na primer, broj operatora u izrazu xy+xy’z+xy’w se može smanjiti ako se izraz najpre faktorizuje po x, a onda po y:

xy+xy’z+xy’z = x(y+y’z+y’w)

= x(y+y’(z+w))

Kao što se može videti, ova forma nije ni suma-proizvoda, a ni proizvod-suma, iako se može lako konvertovati u standradnu formu ako se korišćenjem zakona distributivnosti oslobodimo zagrada.

Kao što je u ovom odeljku pokazano, postoji nekoliko strategija za smanjenje broja operatora u logičkim izrazima. Jedna uopštena procedura bi sadržala sledeće korake: 1) dati algebarski izraz se najpre konvertuje u tabelu istinitosti; 2) na osnovu tabele istinitosti generiše se kanonička forma; 3) broj operatora se smanjuje konverotovanje kanoničke u standardnu formu; 4) Konačno, broj operatora se dodatno može smanjiti faktorizacijom po svim zajedničkim podizrazima, što daje nestandarnu formu.

2.1.7 Logičke operacije

Kao što je poznato, broj Bulovih funkcija od n promenljivih iznosi n22 . To znači da za dve promenljive postoji

ukupno 16 različitih Bulovih funkcija. Pošto su operacije AND i OR samo dve od 16 mogućih Bulovih funkcija, u ovom odeljku definisaćemo peostalih 14 funkcija od dve promenljive.

U tabeli sa Sl. 2.14 navedeno je svih 16 funkcija dve promenljive, x i y. Svaka vrsta u ovoj tabeli odgovara jednoj funkciji. U prvoj koloni navedena su imena funkcija; tabele istinitosti date su u trećoj, a odgovarajući algebarski izrazi u četvrtoj koloni. Uočimo da su funkcije označene sa Fi, gde i predstavlja decimalni ekvivalent binarnog broja koji se dobija kada se vrednosti funkcija navedene u trećoj koloni interpretiraju kao binarni brojevi. Kao što je poznato, svaka od navedenih funkcija može se predstaviti u vidu standardne forme pomoću operatora AND, OR i NOT. Međutim, ne postoji razlog zbog koga svakoj od ovih funkciji ne bi bio dodeljen poseban operator, kao što je navedeno u drugoj koloni tabele. Bez obzira na to, po pravilu, sa izuzetkom simbola za funkciju XOR, ostali simboli se retko koriste u praksi.

Funkcije iz tabele mogu se razvrstati u sledeće tri kategorije:

1. Postoje dve funkcije koje generišu konstante: Zero i One. Za svaku kombinaciju vrednosti promenljivih, funkcija Zero ima vrednost 0, a funkcija One vrednost 1.

2. Postoje četiri funkcije jedne promenljive, imenovane kao operacije Komplement i Transfer. Konkretno, funkcija Komplement generiše komplement jedne od promenljivih, a funkcija Transfer prenosi, bez promene, jednu od promenljivih na izlaz.

3. Postoji 10 funkcija koje definišu osam binarnih operacija: AND, Inhibicija, XOR, OR, NOR, Ekvivalencija, Implikacija i NAND.

Binarne operacije Ekvivalencija i Implikacija nikada se ne koriste u digitalnom projektovanje. Razlog za to je što se one veoma teško ralizuju u obliku elektronskih komponenti, ali se zato veoma lako realizuju pomoću AND ili OR kola u kombinaciji sa NOT kolom na jednom od ulaza. Po pravilu, projektanti češće koriste NOR i NAND nego OR i AND operatore iz razloga što se NOR i NAND operatori mogu realizovati sa manjim brojem tranzistora.

PRIMER 2.9 Redukovati broj operatora u standardnoj formi funkcije F1=xy+xz+yz.

Rešenje: Mogu se izvesti tri nestandardne forme funkcije F1 koje zahtevaju manji broj operanada: Svaka od njih zahteva dve AND i dve OR operacije, u odnosu na tri AND i dva OR kod polazne standardne forme:

F1 = xy+xz+yz

= xy+(x+y)z

= x(y+z)+yz

= xz+y(x+y)

Page 35: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Logičko projektovanje

35

Vrednosti funkcije za x,z= Ime operacije Simbol

operatora 00 01 10 11 Algebarski

izraz Komentar

Zero 0 0 0 0 F0=0 Binarna konstanta 0

AND x·y 0 0 0 1 F1=xy x i y

Inhibicija x/y 0 0 1 0 F2=xy’ x, ali ne y

Transfer 0 0 1 1 F3=x x

Inhibicija y/x 0 1 0 0 F4=x’y y, ali ne x

Transfer 0 1 0 1 F5=y y

XOR x ⊕ y 0 1 1 0 F6=xy’+x’y x ili y ali ne oba

OR x+y 0 1 1 1 F7=x+y x ili y

NOR x ↓ y 1 0 0 0 F8=(x+y)’ NOT-OR

Ekvivalencija x ⊗ y 1 0 0 1 F9=xy+x’y’ x jednako y

Komplement y’ 1 0 1 0 F10=y’ NOT y

Implikacija x ⊂ y 1 0 1 1 F11=x+y’ Ako y, tada x

Komplement x’ 1 1 0 0 F12=x’ NOT x

Implikacija x ⊃ y 1 1 0 1 F13=x’+y Ako x, tada y

NAND x ↑ y 1 1 1 0 F14=(xy)’ NOT-AND

One 1 1 1 1 F15=1 Binarna konstanta 1

Sl. 2.14 Bulovi izrazi za 16 funkcija od dve promenljive.

NOR funkcija je komplement OR, NAND komplement AND funkcije. XOR (što je skraćeno od eXclusive – isključivo – OR) funkcija slična je OR funkciji, osim što isključuje rezultat 1 kada su obe promenljive jednake 1. Operator Ekvivalencija daje rezultat 1 kada obe promenljive imaju istu vrednost. Funkcije XOR i Ekvivalencija su međusobno komplementarne. Iz tog razloga Ekvivalencija se često zove XNOR (eXlusive – isključivo – NOR).

U skupu od 16 funkcija navedenih u tabeli sa Sl. 2.14, postoji 12 jedinstvenih funkcija (javljaju se samo jednom), s obzirom da se četiri funkcije ponavljaju dva puta. Funkcije Zero i One se naročito lako realizuju povezivanjem na linije za napajanje. Dve funkcije, Inhibicija i Implikacije nisu ni komutativne ni asocijativne, što ih čini nepodesnim za logičko projektovanje. Preostalih osam funkcija mogu se lako ralizovati u vidu standardnih logičkih kola i često se koriste u logičkom projektovanju.

2.1.8 Digitalna logička kola

Prekidačke funkcije se realizuju u obliku prekidačkih ili kombinacionih mreža. Ulazi kombinacione mreže su promenljive, a izlaz rezultat prekidačke funkcije. Kombinaciona mreža se sastoji od jednog ili više logičkih kola ili gejtova, gde svako logičko kolo obavlja jednu ili više standardnih logičkih operacija. Kolekcija logičkih kola, koja koristimo za konstrukciju kombinacionih mreža, zove se biblioteka gejtova, dok se gejtovi koji pripadaju biblioteci zovu standardni gejtovi. Iako svaki Bulov operator može biti realizovan u vidu logičkog kola, u cilju smanjenja troškova održavanja biblioteke i pojednostavljenja razvoja CAD alata za logičko projektovanje, savremene biblioteke gejtova retko sadrže više od desetak logičkih kola. Prilikom izbora Bulovih operatora koji će biti uključeni u biblioteku gejtova, od interesa su sledeći kriterijumi:

• Frekvencija korišćenja u tipičnom dizajnu, definisana kao sposobnost gejta da u kombinaciji sa drugim gejtovima iz biblioteke realizuje raznorodne prekidačke funkcije.

• Proširljivost operatora na više od dve promenljive. Preduslov za proširljivost operatora je posedovanje osobine komutativnosti i asocijativnosti.

• Jednostavnost konstrukcije, koja se karakteriše brojem tranzistora potrebih za realizaciju gejta kao i vremenom koje je potrebno da se promena na ulazu gejta prenese na izlaz gejta.

Na osnovu navedenih kriterijuma, za realizaciju u vidu standardnih gejtova obično se bira samo sledećih osam operatora: NOT, Transfer, AND, OR, NAND, NOR, XOR i XNOR. Operator NOT se realizuje

Page 36: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

36

pomoću invertora. Operator Transfer (ili Identitet) se često zove drajver ili bafer, jer se koristi za pobudu veza velike dužine ili većih opterećenja. Po funkciji, drajver je identičan rednoj vezi dva invertora.

U tabeli sa Sl. 2.15 prikazani su grafički simboli i Bulovi izrazi koji odgovaraju svakom od ovih osam standardnih gejtova. Uočimo da svaki gejt ima jedan ili dva binarna ulaza, označenih sa x i/ili y i jedan binarni izlaz, označen sa F. U tabeli sa Sl. 2.15 su, takođe, za svaki gejt navedene cena, izražena brojem tranzistora potrebnih za konstrukciju gejta u CMOS tehnologiji, i propagaciono kašnjenje kroz gejt, normalizovano na kašnjenje invertora.

Gejtovi AND i OR se koriste za realizaciju operatora AND i OR, dok gejtovi NAND i NOR realizuju funkcije koje predstavljaju komplemente operacija AND i OR, što je naznačeno kružićima na izlaznim linijama ova dva gejta. Napomenimo da se NAND i NOR gejtovi mnogo češće koriste od AND i OR gejtova, zato što je za njihovu realizaciju potrebno samo četiri tranzistora u odnosu na šest koliko je potrebno da bi se realizovali gejtovi AND i OR. Takođe, NAND i NOR gejtovi su brži u odnosu na odgovarajuće AND i OR gejtove.

Prilikom realizacije prekidačke funkcije pomoću gejtova iz raspoložive biblioteke gejtova obično se traži takva forma funkcije koja će na najbolji način zadovoljiti postavljene zahteve. U opštem slučaju, ovi zahtevi se odnose na cenu, tj. ukupan broj ekvivalentnih tranzistora, i/ili kašnjenje signala kroz logičku mrežu, koje se obično izražava u nanosekundama. Veoma često, primarni cilj projektovanja je konstrukcija najbržeg rešenja, tj. konstrukcija logičke mreže sa najmanjim ulazno-izlaznim kašnjenjem. Sa druge strana, isto tako često, primarni cilj projektovanja može biti konstrukcija najevtinijeg rešenja. Po svojoj prirodi ova dva zahteva su međusobno suprotstavljena, s obzirom da potraga za bržim rešenjem obično rezultuje kombinacionom mrežom gde se, inače, identični podizrazi izračunavaju u paraleli, što zahteva veći broj gejtova u odnosu na jevtinije rešenje gde preovladava redni način izračunavanja.

Ime Grafički simbol Funkcija Cena (broj tranzistora) Kašnjenje (ns)

Invertor

F = x’ 2 1

Drajver

F = x 4 2

AND

F = xy 6 2.4

OR

F = x + y 6 2.4

NAND

F = (xy)' 4 1.4

NOR

F = (x + y)' 4 1.4

XOR

F = x ⊕ y 14 4.2

NXOR

F = x ⊗ y 12 3.2

Sl. 2.15 Osnovna logička biblioteka.

Page 37: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Logičko projektovanje

37

PRIMER 2.10 (Projektovanje potpunog sabirača) Projektovati potpuni sabirač na osnovu tabele istinitosti sa Sl. 2.16. Na raspologanju su logička kola iz biblioteke gejtova definisane u tabeli sa Sl. 2.15. Primarni cilj projektovanja je minimizacija kašnjenje od ulaza ci do izlaza ci+1, a sekundarni korišćenje što je moguće manjeg broj tranzistora.

Rešenje: Najpre, nađimo izraz koji sadrži najmanji broj operatora. Izraz za funkciju si može se svesti na dva XOR gejta:

si = xi’yi’ci+xi’yici’+xiyi’ci’+xiyici = (xi’yi+xiyi’)ci’+(xi ⊗ yi)ci

= (xi ⊕ yi)ci’+(xi ⊕ yi)’ci = (xi ⊕ yi) ⊕ ci

Izraz za funkciju ci+1 može se pojednostaviti na sledeći oblik:

ci+1 = (xiyi)+ci(xi+yi)

Međutim, transformacijom polaznog izraza za ci+1 u jedan drukčiji oblik, bićemo u mogućnosti da iskoristimo podizraz (xi ⊕ yi), koji je već deo izraza za si:

ci+1 = xiyici'+xiyici+xi'yici+xiyi'ci = xiyi(ci'+ci)+ci(xi'yi+xiyi') = xiyi+ci(xi ⊕ yi)

Nakon ovog izvođenja, u mogućnosti smo da za realizaciju obe funkcije, si i ci+1, koristimo isti podizraz, (xi ⊕ yi). Ova optimizacija nam omogućava da relizujemo potpuni sabirač sa pet gejtova, kao što je prikazano na Sl. 2.17(a). Uočimo da rešenje sa Sl. 2.17(a) zahteva ukupno 46 tranzistora i ima kašnjenje od ulaza ci do izlaza ci+1 od 4.8ns. Rešenje koristi AND, OR i XOR kola, koja su sporija od odgovarajućih NAND, NOR i NXOR gejtova. Ako izraze za funkcije si i ci+1 transformišemo na odgovarajući način, moćićemo da iskoristimo prednost bržih i jevtinijih NAND i NOR gejtova. U tom cilju, korišćenjem De-Morganove teoreme, izraz za ci+1 modifikovaćemo na sledeći način:

ci+1 = xiyi+ci(xi+yi) = [(xiyi)’(ci(xi+yi))’]’

Slično, izraz za si treba transformisati na sledeći način:

si = (xi ⊕ yi)ci' + (xi ⊗ yi)ci = (xi ⊗ yi)'ci' + (xi ⊗ yi)ci = (xi ⊗ yi) ⊗ ci

Operacija xi ⊗ yi može se realizovati pomoću dva NAND i jednog OR kola:

xi ⊗ yi = xiyi+xi'yi' = [(xiyi)'(xi'yi')']' = [(xiyi)'(xi+yi)]'

Korišćenjem izvedenih izraza možemo realizovati brži potpuni sabirač, prikazan na Sl. 2.17(b). Uočimo da propagaciono kašnjenje potpunog sabirača sa Sl. 2.17(b) iznosi 2.8ns u poređenju sa 4.8ns kod prethodnog rešenja. Takođe, novo rešenje koristi samo 36 tranzistora umesto ranijih 46.

xi yi

ci+1 ci

si

Putanja Kašnjenjeulaz-izlaz (ns)

ci -> ci+1 4.8ci -> si 4.2xi,yi -> ci+1 9.0xi,yi -> si 8.4

(a)

4.2

4.2

2.4

2.4

2.4

2.4

2.4

1.4

1.4

1.4

1.41.4

1.4

xi yi

ci

ci+1

si

Putanja Kašnjenulaz-izlaz (ns)

ci -> ci+1 2.8ci -> si 3.8xi,yi -> ci+1 5.2xi,yi -> si 7.2

(b)

Cena = 46 tran. Cena = 36 tran.

Sl. 2.17 Projektovanje potpunog sabirača: (a) rešenje sa minimalnim brojem operatora; (b) rešenje sa NAND i OR kolima.

Sl. 2.16 Tabela istinitosti

potpunog sabirača.

Page 38: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

38

2.1.9 Više-ulazna i više-operatorska logička kola

Jedan od načina za smanjenje cene i kašnjenja logičkih mreža sastoji se u proširenju biblioteke gejtova logičkim kolima sa više od dva ulaza. Po pravilu, svaki gejt se može proširiti tako da ima više ulaza ako binarni operator koga gejt realizuje poseduje osobine komutativnosti i asocijativnosti. Ove dve osobine garantuju da promenljive mogu biti povezane na ulaze kola u bilo kom redosledu. Pošto, shodno Bulovoj algebri, operatori AND i OR poseduju osobine komutativnosti i asocijativnosti, oni se mogu direktno proširiti na više ulaza. Sa druge strane, operatori NAND i NOR su komutativni ali nisu asocijativni. Bez obzira na to, više-ulazne NAND i NOR funkcije se mogu zamisliti kao komplementi odgovarajućih više-ulaznih AND i OR funkcija. Znači, više-ulazne NAND i NOR funkcije se definišu na sledeći način:

NAND(x, y, z,...) = (xyz ...)' ≠ x ↑ y ↑ z ↑ ...

NOR(x, y, z,...) = (x+y+z+...)' ≠ x ↓ y ↓ z ↓ ...

Pošto oba operatora XOR i NXOR poseduju osobine komutativnosti i asocijativnosti, oni se, takođe, mogu proširiti na više od dva ulaza. Drugim rečima, bilo koji gejt iz tabele sa Sl. 2.15, osim invertora i drajvera, može se proširiti na više ulaza.

Međutim, XOR i NXOR gejtovi sa više od dva ulaza retko se koriste, zato što većina logičkih funkcija, koje se sreću u praksi, sa izuzetkom funkcije parnosti, može biti realizovana korišćenjem dvo-ulaznih XOR i NXOR kola. Šta više, da bi se pojednostavila biblioteka gejtova, čak se i dvo-ulazni XOR i NXOR gejtovi obično realizuju pomoću NAND, NOR i NOT gejtova. Dakle, proširena biblioteka gejtova bi dodatno uključivala NAND, NOR, AND i OR gejtove sa 3 ili 4 ulaza. Moguće je ralizovati gejtove sa većim brojem ulaza, ali takvi gejtovi se teže konstruišu, a pošto se retko koriste, cena biblioteke i CAD alata sposobnih da koriste ovakve gejtove obično poništava dobit koju bi smo imali njihovim korišćenjem. Grafički simboli tro- i četvoro-ulaznih AND, OR, NAND i NOR gejtova prikazani su u tabeli sa Sl. 2.18, zajedno sa odgovarajućim cenama i kašnjenjima.

Ime gejta Grafički simbol Funkcija Cena (broj tranzistora)

Kašnjenje (ns)

3-ulazni AND

F = xyz 8 2.8

4-ulazni AND

F = xyzw 10 3.2

3-ulazni OR

F = x+ y+z 8 2.8

4-ulazni OR

F = x+y+z+w 10 3.2

3-ulazni NAND

F = (xyz)' 8 1.8

4-ulazni NAND

F = (xyzw)' 10 2.2

3-ulazni NOR

F = (x+y+z)' 8 1.8

4-ulazni NOR

F = (x+y+z+w)' 10 2.2

Sl. 2.18 Biblioteka više-ulaznih standardnih gejtova.

Page 39: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Logičko projektovanje

39

Drugi način za povećanje performansi i smanjenje cene realizacije prekidačke funkcija, sastoji se u proširenju biblioteke gejtovima koji su u stanju da obavljaju više od jedne Bulove operacije. Na primer, u mnogim slučajevima, prekidačke funkcije se realizuju na osnovu standardnih formi tipa “suma proizvoda” ili “proizvod suma”. Imajući to u vidu, bilo bi korisno imati na raspolaganju standardne gejtove koji bi na efikasan način realizovali ove forme. Kao što je navedeno u tabeli sa Sl. 2.19, ovakvi više-operatorski gejtovi se zovi AND-OR-INVERT (AOI) i OR-AND-INVERT (OAI) gejtovi. Njihovim korišćenjem, u mogućnosti smo da realizujemo standardne forme tip “suma proizvoda” i “proizvod suma” manjeg kašnjenja i po nižoj ceni nego što je to slučaj pri realizaciji ovih formi na bazi jedno-operatorskih gejtova. Na primer, trostruki tro-ulazni AOI gejt, koji se realizuje pomoću 12 tranzistora i ima kašnjenje od 2.2ns, može da realizuje bilo koju sumu dva proizvoda sa po tri literala. Sa druge strane, realizacija istog tipa sume proizvoda pomoću jedno-operatorskih gejtova (dva tro-ulazna AND i jedan 2-ulazni NOR gejt) zahtevala bi 20 tranzistora i pri tome bi unosi kašnjenje od 4.2ns.

Ime gejta Grafički simbol Funkcija Cena (broj tranzistora)

Kašnjenje (ns)

dvostruki 2-ulazni AOI

F = (wx+yz)’ 8 2.0

trostruki 2-ulazni AOI

F = (uv+wz+yz)' 12 2.4

dvostruki 3-ulazni AOI

F = (uvw+xyz)’ 12 2.2

dvostruki 3-ulazni OAI

F = ((w+x)(y+z)')' 8 2.0

trostruki 2-ulazni OAI

F = ((u+v)(w+x)(y+z))' 12 2.2

dvostruki 3-ulazni OAI

F = ((u+v+w)(x+y+z))' 12 2.4

Sl. 2.19 Više-operatorski standardni logički gejtovi.

Gejtovi koji imaju više ulaza i mogu da obavljaju više operacija zovu se kompleksni gejtovi. Sledeća dva primera ilustruju prednosti korišćenja kompleksnih gejtova.

Page 40: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

40

PRIMER 2.11 (Realizacija kombinacione mreže pomoću više-ulaznih gejtova) Realizovati potpuni sabirač iz primera 2.7 koristeći, po potrebi, više-ulazne gejtove.

Rešenje: Da bi smo iskoristili više-ulazne gejtove, treba krenuti od standardne forme, a najbolje od one sa najamanjim brojem operatora, jer će nam to omogućiti da minimizujemo cenu. Takođe, da bi smo dobili najmanje moguće kašnjenje, treba koristiti najbrže gejtove. Najbrži gejtovi u biblioteci su NAND i NOR gejtovi, a to znači da polaznu standardnu formu, primenom De-Morganove teoreme, treba transformisati u izraz koji sadrži isključivo NAND i NOT operacije. U slučaju potpunog sabirača, izraze za funkcije ci+1 i si

treba transformisati na sledeći način:

ci+1 = xiyi+cixi+ciyi = [(xiyi)'(cixi)'(ciyi)']' , i

si = xi'yi'ci + xi'yici' + xiyi'ci' + xiyici = ((xi'yi'ci)'(xi'yici')'(xiyi'ci')'(xiyici)')'

Na Sl. 2.20(a) prikazana je realizacija potpunog sabirača na bazi ovako modifikovanih izraza. Kao što se može videti, maksimalno kašnjenje od bilo kog ulaza do izlaza si iznosi samo 5.0ns, a do izlaza ci+1 samo 3.2ns. Nažalost, ovo rešenje zahteva 56 tranzistora, u odnosu na 36 kod realizacije sa dvo-ulaznim gejtovima.

xi

yi

zi

ci+1 si

1.4 1.4 1.4 1.8 1.8 1.8 1.8

1.8 2.2

Putanja Kašnjenjeulaz-izlaz (ns)

ci -> ci+1 3.2ci -> si 5.0xi,yi -> ci+1 4.2xi,yi -> si 5.0

(b)(a)

Cena = 56 tran.

Sl. 2.20 Realizacija potpunog sabirača pomoću više-ulaznih gejtova: (a) rešenje sa više-ulaznim gejtovima; (b)

ulazno-izlazna kašnjenja za rešenje sa slike (a).

PRIMER 2.12 (Realizacija kombinacionih mreža pomoću više-operatorskih gejtova) Realizovati potpuni sabirač koristeći, po potrebi, više-operatorskih gejtove iz tabele sa Sl. 2.19.

Rešenje: Kada se koriste više-operatorski gejtovi, projektovanje treba početi razlaganjem funkcije na podizraze tipa OAI i AOI. Pošto izrazi za funkcije si i ci+1 imaju četiri AND člana sa po tri literala, najbolji izbor za realizaciju bio bi četvorostruki 3-ulazni AOI gejt. Međutim, pošto u biblioteci gejtova takav gejt ne postoji, najbolja realizacija biće ona koja koristi dva dvostruka 3-ulazna AOI gejta u kombinaciji sa jednim NAND gejtom:

si = xi'yi'ci + xi'yici' + xiyi'ci' + xiyici

= ((xi'yi'ci + xi'yici)'(xiyi'ci' + xiyici)')'

Da bi smo funkciju ci+1 realizovali pomoću jednog trostrukog 2-ulaznog AOI gejta, neophodno je transformisati ovu funkciju u izraz za njen komplement:

ci+1 = xiyi+cixi+ciyi

= ((xiyi)'(cixi)'(ciyi)')'

= [(xi'+yi')(ci'+xi')(ci'+yi')]'

= [xi'yi' + ci'xi' + ci'yi']'

Rezultat je prikazan na Sl. 2.21. Uočimo da kašnjenje od ulaza ci do izlaza ci+1 iznosi 3.4ns, što je za samo 0.2ns duže u odnosu na rešenje sa više-ulaznim gejtovima. Sa druge strane, kašnjenje od ulaza ci do izlaza si iznosi samo 4.4ns, što je 0.4ns kraće u odnosu na rešenje sa više-ulaznim gejtovima. Uz to, upotrebom više-operatorskih gejtova cena je smanjena sa 56 na 46 tranzistora.

Page 41: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Logičko projektovanje

41

U primerima 2.10, 2.11 i 2.12 ukazano je na algebarske manipulacije nad logičkim izrazima koje su neophodne kako bi se data logička funkcija realizovala uz pomoć različitih tipova gejtova. Kao što se može zaključiti, ne postoji jedan tip gejta koji uvek daje najbolje rešenje. Obično, da bi se našlo najbolje rešenje, neophodno je isprobati više alternativa.

2.2 Minimizacija prekidačkih funkcija

U prethodnim odeljcima izloženi su osnovni principi Bulove algebre i pokazano je kako se prekidačke funkcije mogu realizovati pomoću različitih tipova logičkih kola. Logička kola se razlikuju po ceni, veličini i kašnjenju, što, samim tim, važi i za realizacije prekidačkih funkcija pomoću tih kola. S obzirom da cena, veličina i kašnjenje logičkih mreža značajno zavisi od oblika logičkog izraza i tipova korišćenih gejtova, od interesa je poznavanje tehnika za transformaciju logičkih izraza koja će nam omogućiti da optimizujemo cenu i kašnjenje kombinacionih mreža.

Kao što je poznato, svaka prekidačka funkcija se može predstaviti u obliku tri različite algebarske forme: kanonička, standardna i nestandardna forma. Kanonička forma je jedinstvena i lako se izvodi na osnovu tabele istinitosti. Međutim, kanonička forma, tipično, sadrži veći broj operatora u odnosu na druga dva načina predstavljanja prekidačkih funkcija. Sa druge strane, standardna forma sadrži manji broj operatora, ali nije jedinstvena. Slično, nestandardna forma, koja obično ima manji broj operatora u odnosu na standardnu, takođe, nije jedinstvena. S obzirom da ove forme nisu jedinstvene, neophodna je procedura koja će nam omogućiti da u skupu svih mogućih standardnih ili nestandardnih formu koje predstavljaju datu funkciju nađemo onu sa najmanjim brojem operatora. Za ovu namenu razvijen je veći broj algoritamskih postupaka. S obzirom da u opštem slučaju, tj. za proizvolju biobloteku gejtova, direktna optimizacija predstavlja izuetno složen zadatak, proces pojednostavljena logičkog izraza se obično razlaže na niz koraka kojim se postepeno, polazni izraz transformiše u oblik pogodan za fizičku realizaciju. Tipično, u prvom koraku, na osnovu tabele istinitosti ili izraza kanoničkog oblika, pronalazi se minimalna standardna forma (SOP ili POS). U narednom koraku, SOP, odnosno POS izraz se fatorizuje u nestandardnu formu sa najmanjim brojem operatora. Konačno, nizom zamena, dobijeni izraz se prevodi u oblik pogodan za realizaciju pomoću raspoloživih logičkih kola. Svaki od ovih koraka sam za sebe predstavlja složen zadatak, pa se obično, umesto izvođenja optimalnog rešenja, za šta bi trebalo utrošiti enormno (računarsko) vreme pribegava sub-optimalnim rešenjima. U nastavku izalaganja, ograničićemo se na prvi korak, tj. minimizaciju standardnih formi.

Treba napomenuti da težnja ka smanenju cene realizacije, tipično vodi ka povećanju kašnjenja kroz kombinaciou mrežu. Standardne forme se realizuju u vidu dvonivolskih kombinacionih mreža, bilo da su SOP ili POS oblika, i zbog toga se odlikuju malim propagacionim kašnjenjem. Na primer, kod SOP varijante, prvi nivo čine AND kola koja realizuju proizvode, a drugi nivo čini jedno OR kolo koje sabira generisane proizvode. Sa druge strane, nestandardne forme sadrže ugnježdene zagrade, što preslikano na strukturu kombinacione mreže znači veći broj nivoa logičkih kola, a time i duže propagaciono kašnjenje signala od ulaza do izlaza.

PRIMER 2.12 (nastavak …)

xi

yi

ci

si

ci+1

Putanja Kašnjenjeulaz-izlaz (ns)

ci -> ci+1 3.4ci -> si 4.4xi,yi -> ci+1 3.4xi,yi -> si 4.4

(b)(a)

2.42.0 2.0

1.4

Cena = 46 tran.

Sl. 2.21 Realizacija potpunog sabirača pomoću više-operatorskih gejtova: (a) rešenje sa više-

operatorskim gejtovima; (b) ulazno-izlazna kašnjenja za rešenje sa slike (a).

Page 42: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

42

2.2.1 Karnaughova mapa

Zakon sažimanja (teorema T6 iz odeljka 2.1.2) predstavlja ključnu osobinu prekidačke algebre koja omogućava uprošćavanje logičkih izraza. Primenom ove teorema, koja kaže xy + xy’ = x, odnosno (x + y)(x + y’) = x, u mogućnosti smo da smanjimo broj proizvoda (ili sabiraka) u logičkom izrazu i na taj način snizimo cenu realizacije date logičke funkcije. Metod Karnaughovih mapa upravo predstavlja jednu jednostavnu proceduru za sistematsku primenu zakona sažimanja na logičke izraze oblika suma-proizvoda (SOP), odnosno, proizvod-suma (POS), u cilju njihovog pojednostavljenja.

Na Sl. 2.22 je ilustrovan odnos između tabele istinitosti i Karnaughovu mapu za funkciju dve promenljive. Kao što tabela istinitosti ima četiri vrste, tako Kranoughova mapa ima četiri polja. Svakom polju mape, kao i svakoj vrsti tabele, odgovara jedan minterm. Kolone mape su označene vrednostima promenljive x1, a vrste vrednostima promenljive x2. Ovo označavanje direktno određuje lokaciju minterma u mapi, kao što je prikazano na Sl. 2.22b. Raspored minterma u Karnaughovoj mapi je takav da na bilo koja dva susedna minterma, bilo da su u istoj vrsti ili istoj koloni, može da se primeni zakon sažimanja. Na primer, mintermi m2 i m3 mogu da se sažmu u proizvod x1:

m2 + m3 = x1x2` + x1`x2 = x1(x2` + x2) = x1·1 = x1

(a) tabela istinitosti (b) Karnaughova mapa

Sl. 2.22 Pozicije minterma u Karnaughovoj mapi za dve promenljive.

Karnaughova mapa za dve promenljive

Na Sl. 2.23 su prikazane tabela istinitosti i Karnaughova mapa za jednu konkretnu funkciju dve promenljive. Uočimo da oba polja donje vrste Karnaughove mape sadrže vrednost 1. S obzirom da su ova dva polja susedna, zaključujemo da postoji proizvod koji ima vrednost 1 uvek kada i funkcija ima vrednost f=1, tj. kada su vrednosti promenljivih x1 i x2 takve da odgovaraju bilo kom od ova dva polja. Slično zapažanje važi i za dve 1-ce u levoj koloni mape. Da se ukazalo na ova zapažanja, odgovarajuća polja u mapi su uokvirena. Umesto da na minterme koji odgovaraju uokvirenim poljima formalno primenimo zakon sažimanja kako bi smo izveli odgovarajuće proizvode, do izraza za proizvode možemo doći intuitivno. Uočimo da za oba polja u donjoj vrsti važi x2=1, dok x1 ima vrednost 1 za levo, a 0 za desno polje. To znači da za x2=1 funkcija ima vrednost f=1, bez obzira da li je x1 jednako 1 ili 0. Proizvod koji reprezentuje ova dva polja je, prosto, x2. Slično, polja u levoj koloni su određena uslovom x1=0. Zbog toga njima odgovara proizvod x1`. S obzirom da su sa ova dva proizvoda obuhvaćeni svi slučajevi kada funkcija ima vrednost f=1, minimalni SOP izraza za funkciju f je oblika:

f = x2 + x1`

(a) tabela istinitosti (b) Karnaoughova mapa

Sl. 2.23 Funkcija dve promenljive.

Očigledno, da bi smo za datu funkciju izveli minimalni SOP izraz, neophodno je naći najmanji broj proizvoda koji daju vrednost 1 za sve slučajeve kada je f=1. Uz to, cena samih proizvoda (broj literala) treba da bude što je moguće niža. Uočimo da je cena proizvoda koji pokriva dva susedna polja u Karnaughovoj mapi niža od cene proizvoda koji pokriva samo jedan polje. U konkretnom primeru, nakon što su dva polja u donjoj vrsti mape pokrivena proizvodom x2, preostalo je samo jedno nepokriveno polje (gore levo). Mada je ovo polje

Page 43: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Logičko projektovanje

43

moglo biti proizvodom x1`x2, bolje rešenje je objediniti dva polja u levoj koloni kako bi se dobio jednostavniji produktni član, x1`.

Karnaughova mapa za tri promenljive

Karnaughova mapa za tri promenljive se sastoji od osam polja od kojih svako odgovara jednom od osam minterma funkcije tri promenljive. Na Sl. 2.24 je prikazan izgled Karnaughove mape za tri promenljive sa naznačenim pozicijama minterma. Možemo zamisliti kao da je Karnaughova mapa za tri promenljive formirana spajanjem dve mape za dve promenljive. Svaka kombinacija vrednosti promenljivih x1 i x2 identifikuje jednu kolonu, dok vrednost treće promenljive, x3, određuje jednu od dve vrste. Da bi se obezbedilo da bilo koja dva susedna polja u mapi mogu biti udružena u jedan proizvod, neophodno je da se susedna polja razlikuju samo po jednoj promenljivoj. To je razlog zašto je redosled kolona: (x1, x2) = 00, 01, 11, 10, a ne, recimo, kako bi se moglo očekivati: 00, 01, 10, 11. (Usvojeni redosled označavanja obezbeđuje da se druga i treća kolona razlikuju samo po promenljivoj x1.) Treba uočiti da se prva i četvrta kolona, takođe, razlikuju samo po jednoj promenljivoj, x1, te se stoga i ove dve kolone mogu smatrati susednim. Možemo zamisliti kao da je mapa savijena u cilindar tako da su leva i desna ivica mape spojene. (Napomenimo da se sekvenca binarnih kombinacija kod koje se svake dve susedne kombinacije razlikuju samo na jednoj bitskoj poziciji zove Grejov kod.)

(a) tabela istinitosti (b) Karnaughova mapa

Sl. 2.24 Pozicije minterma u Karnaughovoj mapi za tri promenljive.

Na Sl. 2.25a je prikazana tabela istinitosti, a na Sl. 2.25b odgovarajuća Karnaughova mapa za jednu konkretnu funkciju tri promenljive. Da bi smo našli minimalni SOP izraz za funkciju f, potrebno je na što efikasniji način proizvodima pokriti sve četiri 1-ce u Karnaughovoj mapi. Nije teško uočiti da su u konkretnom primeru dovoljna dva proizvoda. Prvi proizvod, x1x3`, pokriva 1-ce u gornjoj, a drugi, x2`x3, u donjoj vrsti Karnaughove mape. Dakle,

f = x1x3` + x2`x3

(a) tabela istinitosti (b) Karnaughova mapa

Sl. 2.25 Funkcija tri promenljive.

Proizvodi koji se javljaju u Karnaughovoj mapi za tri promenljive mogu da pokriju jedno polje, dva susedna polja ili grupu od četiri susedna polja. Proizvod koji pokriva četiri polja, prikazan je na primeru sa Sl. 2.26. Poljima u gornjoj vrsti Karnaughove mape odgovaraju ulazni vektori (x1, x2, x3) = {000, 010, 110 i 100}. S obzirom da za x3=0, a bez obzira na vrednosti promenljivih x1 i x2, funkcija ima vrednost f=1, četiri polja gornje vrste Karnaughove mape se mogu predstaviti proizvodom x3`. Preostala, peta 1-ca odgovara mintermu m5. Za dati raspored 1-ca u Karnaughovoj mapi, najbolji način za pokrivanje ovog minterma je proizvod x1x2`, koji se dobija objedinjavanjem dva polja u krajnjoj desnoj koloni mape. Konačno, SOP izraz za funkciju f je oblika:

f = x3` + x1x2`

Page 44: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

44

Takođe, moguće je da se u Karnaughovoj mapi za tri promenljive nađe i grupa od osam 1-ca, što odgovara trivijalnom slučaju kada je f=1 za bilo koju kombinaciju vrednosti ulaznih promenljivih, tj. kada je f jednaka konstanti 1.

Sl. 2.26 Primer Karnaughove mape za tri promenljive.

Na osnovu prethodnih primera možemo zaključiti da Karaughova mapa, u suštini, predstavlja jednostavno sredstvo za identifikovanje proizvoda neophodnih za realizaciju date logičke funkcije. Suština metoda se sastoji u objedinjavanju 1-ca prisutnih u Karnaughovoj mapi u grupe tako da se svaka grupa može predstaviti jednim proizvodom. U opštem slučaju, za funkciju n promenljivih, važi da proizvod od n-k promenljivih pokriva grupu od 2k susednih polja u Karnaughovoj mapi. Svaka od n-k promenljivih proizvoda, ima istu vrednost na svim poljima grupe; ako je ta vrednost 0, promenljiva je komplementirana, ako je 0, promenljiva nije komplementirana. Preostale promenljive, koje su u pokrivenoj grupi polja nekada 1 a nekada 0, ne pojavljuju se u proizvodu. Grupa polja pokrivenih proizvodom uvek ima oblik pravougaonika čije su dimenzije stepeni broja 2, uzimajući u obzir da su krajnje kolone susedne.

Karnaughova mapa za četiri promenljive

Karnaughova mapa za četiri promenljive crta se u obliku kvadratne matrice sa ukupno 16 polja raspoređenih u četiri vrste i četiri kolone. Kao što se mapa za tri promenljive formira horizontalnim spajanje dve mape za dve promenljive, tako se mapa za četiri promenljive može dobiti vertikalnim spajanjem dve mape za tri promenljive. Na Sl. 2.27 je prikazan izgled Karnaughove mape za četiri promenljive sa naznačenim pozicijama minterma. Vrednosti promenljivih x1 i x2 određuju kolonu, a vrednosti promenljivih x3 i x4, vrstu. Kao što je prikazano na Sl. 2.27, za jednoznačno označavanje vrsta/kolona dovoljno je naznačiti vrste i kolone za koje je data promenljiva jednaka 1. Tako, za dve krajnje leve kolone važi x1=1; za dve srednje kolone x2=1; za dve donje vrste x3=1 i za dve srednje vrste x4=1.

Na Sl. 2.28 su data četiri primera funkcije četiri promenljive. Funkcija f1 poseduje grupu od četiri 1-ce u susednim poljima dve donje vrste za koja važi x2=0 i x3=1 i koja se stoga mogu predstaviti proizvodom x2`x3. Izvan ovog proizvoda ostaju još dve 1-ce u drugoj vrsti. One se mogu pokriti proizvodom x1x3`x4, tako da minimalni SOP izraz za funkciju f1 ima oblik:

f1 = x2`x3 + x1x3`x4

Funkcija f2 sadrži grupu od osam 1-ca koje se mogu pokriti jednim proizvodom, x3. Ako preostale dve 1-ce tretiramo nezavisno od pokrivenih osam 1-ca, rezultujući proizvod će biti x1x3`x4. Naravno, bolje rešenje je objediniti dve preostale 1-ce sa susednim parom već pokrivenih 1-ca i tako dobiti jednostavniji proizvod, x1x4.

Sl. 2.27 Pozicija minterma u Karnaughovoj mapi za četiri promenljive.

Page 45: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Logičko projektovanje

45

Sl. 2.28 Primeri Karnaugovih mapa za četiri promenljive

Svako polje u Karnaughovoj mapi za četiri promenljive se graniči sa četiri druga polja koji se razlikuju po jednoj promenljivoj, uključujući pri tome i polja po obodu mape. Naime, kod Karnaughove mape za četiri promenljive, polja iz prve vrste i polja iz odgovarajućih kolona četvrte vrste su susedna, kao i polja iz istih vrsta krajnje leve i krajnje desne kolone. Slično kao što mapu za tri promenljive zamišljamo kao cilindar, tako mapu za četiri promenljive možemo zamisliti kao torus. Tako, postaje jasno da polja u uglovima mape za četiri promenljive čine grupu od četiri susedna polja, koja, ako su popunjena 1-cama, mogu biti pokrivena jednim produktnim članom, x2`x4`. Ovo je upravo slučaj kod funkcije f3. Osim četiri 1-ce u uglovima mape, funkcija f3 poseduje još četiri 1-ce koje se mogu pokriti na način kao na Sl. 2.28.

U svim do sada razmatranim primerima uvek je postojalo jedinstveno rešenje za optimalno pokrivanje 1-ca u Karnaughovoj mapi. Da to ne mora biti uvek slučaj, pokazuje primer funkcije f4. Raspored 1-ca u Karnaughovoj mapi za funkciju f4 je takav da omogućava kreiranje dva različita pokrivanja koja rezultuju u SOP izrazima iste složenosti. Grupe od četiri 1-ce u gornjem-desnom i donjem-levom uglu mape realizuju se proizvodima x1`x3` i x1x3, respektivno. Na taj način, ostaju još dve nepokrivene 1-ce kojima odgovara proizvod x1x2x3`. Međutim, ove dve 1-ce mogu biti ekonomičnije realizovane ako se tretiraju kao deo grupe od četiri 1-ca. Kao što je prikazano na Sl. 2.28, ove dve 1-ce mogu biti udružene u dve različite grupe od četiri 1-ca. Prva mogućnost daje proizvod x1x2, a druga x2x3`. Oba ova proizvoda imaju istu složenost, pa iz tog razloga možemo proizvoljno izabrati jedan od njih koji će biti realizovan u konačnom kolu.

Karnaughova mapa za pet promenljivih

Karnaughove mape za pet i više promenljivih nisu tako pogodne za korišćenje kao mape za četiri i manje promenljivih. To je zato što je za veći broj promenljivih teže vizuelno prikazati osobinu susedstva. Na primer, kod Karnaughove mape za četiri promenljive, svako polje je sused sa četiri druga polja, sa kojima deli zajedničku ivicu. Da bi se na vizuelni način predstavila osobina susedstva kod mape za pet promenljivih potrebno je koristiti dve mape za četiri promenljive koje se crtaju jedna do druge, kao što je prikazano na Sl. 2.29. Za prvu mapu važi x5=0, a za drugu x5=1. Kod ove reprezentacije, zamišljamo da je druga mapa postavljena iznad prve tako da zajedno kreiraju tro-dimenzionalni objekat. Sa ovakvom predstavom na umu, svako polje ima četiri suseda u svojoj mapi i još jednog, petog koji se nalazi u istoj vrsti i koloni druge mape. Za logičku funkciju pet promenljivih predstavljenu parom Karnaughovih mapa sa Sl. 2.29 važi da se dve grupe od po četiri promenljive javljaju na istim pozicijama u dve mape za četiri promenljive. To znači da realizacija ovih, ukupno osam, 1-ca ne zavisi od x5. Isto važi i za dve grupe od po dve 1-ce u drugoj vrsti. Jedinica u gornjem desnom uglu pojavljuje se samo u desnoj mapi, gde važi x5=1. Ova 1-ca je deo grupe od dve 1-ce koja se

Page 46: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

46

realizuje proizvodom x1x2`x3`x5. Uočimo da se u mapi sa Sl. 2.29 polja za koja važi f=0 ostala prazna. To je učinjeno da bi mapa bila preglednija.

Sl. 2.29 Karnaughova mapa za pet promenljivih.

Proširenje koncepta Karnaughove mape na veći broj promenljivih nema praktični značaj. Šta više, danas, projektanti digitalnih sistema, retko koriste manuelne metode za sintezu logičkih funkcije, osim prilikom projektovanja jednostavnih struktura. U praksi, projektanti se oslanjaju na CAD alate koji automatski obavljaju sve neophodne optimizacije. Bez obzira na to, Karnaughove mape mogu poslužiti za ilustraciju glavnih ideja na kojima su zasnivani postupci za minimizaciju logičkih funkcija.

2.2.2 Minimizacija prekidačkih funkcija pomoću Karnaughovih mapa

U prethodnom odeljku pokazano je kao se prekidačka funkcija može prestaviti Karnaughovom mapom i kako se grupisanjem 1-ca u Karnaughovoj mapi može doći do optimalnog SOP izraza za datu funkciju. Naš cilj je bio da sve 1-ce u Karnaughovoj mapi razvrstamo u što je moguće manji broj što većih grupa, sa ograničenjem da svaka grupa obuhvata polja koja se mogu predstaviti samo jednim proizvodom. Što je grupa 1-ca veća, to odgovarajući prizvod sadrži manji broj promenljivih. Ovaj, u suštini, intuitivni pristup, pokazao se efikasnim u svim razmatranim primerima. Međutim, činjenica je da smo razmatrali samo primere logičkih funkcija malog broja promenljivih. Za složenije funkcija, sa većim brojem promenljivih, intuitivni pristup je neprimenljiv. Umesto toga, neophodno je raspolagati organizovanim i jasno definisanim metodom za izvođenje optimalnih SOP izraza. U ovom odeljku biće opisan jedan takav metod, sličan tehnikama koje se koriste u CAD alatima. Za ilustraciju glavnih ideja, i dalje će biti korišćene Karnaughove mape. Kasnije u ovom poglavlju biće opisan jedan drugačiji način reprezentacije logičkih funkcija, koji se koristi u CAD alatima.

2.2.2.1 Terminologija

U ovom odeljku biće definisano značenje pojmova koji će biti korišćeni za opis procesa minimizacije logičkih funkcija.

Implikant

Proizvod P je implikant za logičku funkciju f ako za sve ulazne vektore definisane proizvodom P, funkcija ima vrednost f=1. Drugim rečima, P je implikant za f, ako za P=1 sledi (tj. implicira) f=1. Za funkciju n promenljivih, implikanti mogu sadržati n ili manje literala. Minterm je implikant od tačno n literala. Razmotrimo funkciju tri promenljive sa Sl. 2.30. Ova funkcija sadrži 11 implikanata: pet minterma: x1`x2`x3`, x1`x2`x3, x1`x2x3`, x1`x2x3 i x1x2x3; pet implikanata koji odgovaraju svim mogućim parovima minterma koji se mogu objedinjeni: x1`x2` (m0 i m1), x1`x3` (m0 i m3), x1`x3 (m1 i m3), x1`x2 (m2 i m3) i x2x3 (m3 i m7) i jedan implikant koji pokriva grupu od četiri minterma, x1`.

Sub-proizvod

Neka su P i Q dva proizvoda. Proizvod P je sub-proizvod za Q ako se svi literali u P javljaju takođe u Q. Na primer, neka je c1 = x1`x3` i c2 = x1`x2x3`. Kako se svi literali (x1` i x3`) u proizvodu c1 javljaju takođe i u proizvodu c2, c2 je sub-proizvod za c1.

Prosti implikant

Neka je P implikant funkcije f. Ako nijedan drugi implikant Q za f nije sub-proizvod za P, tada je P prosti (ili primarni) implikant za funkciju f. Drugim rečima, iz prostog implikanta nije moguće odstraniti ni jedan

Page 47: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Logičko projektovanje

47

literal, a da dobijeni proizvod i dalje bude implikant za datu funkciju. Takođe, prosti implikant se ne može objediniti ni sa jednim drugim implikantom. Za funkciju sa Sl. 2.30 postoje dva prosta implikanta: x1` i x2x3. Nije moguće obrisati literal ni jednom od njih. Na primer, ako bi smo iz proizvoda x1` obrisali literal, ovaj proizvod bi nestao. Ako bi smo obrisali literal u proizvodu x2x3, dobili bi smo proizvod x2 ili proizvod x3. Međutim, x2 i x3 nisu implikanti za funkciju f; x2 zato što sadrži vektor (x1, x2, x3) = 110 za koga je f=0, a x3 zato što sadrži vektor (x1, x2, x3) = 101 za koga je takođe f=0.

Sl. 2.30 Funkcija f(x1,x2,x3) =∑m(0,1,2,3,7).

Pokrivanje

Skup implikanata koji sadrže sve ulazne vektore za koje funkcija ima vrednost 1 predstavlja pokrivanje date funkcije. Za većinu logičkih funkcija postoji veliki broj različitih pokrivanja. Očigledno, skup svih minterma za koje f=1 predstavlja jedno moguće pokrivanje. Skup svih prostih implikanata takođe predstavlja pokrivanje.

Svakom konkretnom pokrivanju odgovara jedan SOP izraz koji definiše jednu moguću realizaciju date logičke funkcije. Na Sl. 2.31 su prikazana tri različita pokrivanja za funkciju f sa Sl. 2.29. Prvo pokrivanje odgovara skupu minterma, a poslednje skupu prostih implikanata. Iako svako od ovih pokrivanja predstavlja korektan SOP izraz za funkciju f, pokrivanje koga čine prosti implikanti daje minimalni SOP izraz.

Sl. 2.31 Pokrivanja funkcije tri promenljive.

Cena logičke mreže

U poglavlju 2 rečeno je da se kao dobar pokazatelj cene logičke mreže može koristiti zbir broja logičkih kola i ukupnog broja ulaza u sva logička kola u mreži. Ova definicija cene biće korišćena nadalje u knjizi. Međutim, prilikom određivanja cene logičke mreže pretpostavićemo da su primarni ulazi, tj. ulazne promenljive, dostupne kako u pravoj tako i u komplementarnoj formi, odnosno da je cena komplementiranja ulazne promenljive jednaka nuli. Tako, cena izraza:

f = x2`x3 + x1x3`

iznosi devet, s obzirom da se dati izraz može realizovati pomoću tri logička kola (dva AND i jednog OR) sa ukupno šest ulaza u AND i OR kola, tj. cena = 3 l.k. + 6 u.l. = 9. Međutim, ako je komplementiranje neophodno unutar mreže, tada odgovarajuće NOT kolo i njegov ulaz ulaze u cenu. Na primer, izraz:

g = (x2`x3 + x1)`(x3` + x5)

Page 48: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

48

se realizuje pomoću dva AND, dva OR i jednog NOT kola, koje komplementira (x2`x3 + x1), sa ukupno devet ulaza. To znači da cena ovog izraza iznosi 14.

Minimalni SOP

Minimalni SOP izraz je izraz najniže cene od svih mogućih SOP izraz za datu logičku funkciju.

2.2.2.2 Procedura za minimizaciju

Kao što je više puta do sada naglašeno, jedna logička funkcija se može realizovati pomoću više mreža, koje se mogu značajno razlikovati po strukturi i ceni. Kada realizuje logičku funkciju, projektant uvek teži da zadovolji neke unapred postavljene zahteve. Jedan takav zahtev je po pravilu cena logičke mreže. Iako mogu postojati i drukčije postavljeni optimizacioni kriterijumi, u ovom odeljku pretpostavićemo da je primarni cilj projektanta da nađe minimalni SOP izraz date logičke funkcije.

Od posebno značaja za minimizaciju SOP izraza su prosti implikanti. Ključno tvrđenje je sledeće:

Minimalni SOP izraz je suma prostih implikanata.

Drugim rečima, kada se određuje minimalni SOP izraz, dovoljno je uzeti u obzir samo proste implikante. Ovo tvrđenje se lako dokazuje kontradikcijom. Pretpostavimo da ˝minimalni˝ SOP izraz funkcije f sadrži proizvod p koji nije prost. Shodno definiciji prostog implikanta, sledi da u p postoji literal koji se može odstraniti, a da tako dobijeni novi proizvod, p*, i dalje predstavlja implikant za f. Ako u polaznom SOP izrazu, proizvod p zamenimo novim proizvodom p* dobićemo SOP izraz koji je i dalje jednak f, i pri tome ima jedan literal manje, tj. ima nižu cenu, što predstavlja kontradikciju polaznoj pretpostavci.

Međutim, iako minimalni SOP izraz sadrži isključivo proste implikante, to ne znači da svi prosti implikanti moraju biti prisutni u minimalnom SOP izrazu. Na primer, funkcija f4 sa Sl. 2.28 ima četiri prosta implikanta, ali su za formiranje minimalnog SOP izraza dovoljna samo tri. Upravo je zadatak logičke minimizacije da iz skupa prostih implikanata date funkcije f izdvoji podskup prostih implikanata koji na optimalan način pokrivaju f. Da bi smo došli do sistematske procedure za logičku minimizaciju, neophodno je najpre definisati pojmove bitnog minterma i bitnog prostog implikanta.

Neka je m minterm za logičku funkciju f. Ako samo jedan prosti implikant za f pokriva m, tada je m bitni (ili esencijalni) minterm.

Bitni (ili esencijalni) prosti implikant za logičku funkciju f je prosti implikant za f koji pokriva jedan ili više bitnih minterma.

Na primer, svi mintermi za funkciju tri promenljive sa Sl. 2.30 su bitni, osim minterma m3 = x1`x2x3, koga pokrivaju oba prosta implikanta, x1` i x2x3. Funkcija sa Sl. 2.32 ima tri bitna minterma, m2, m4 i m14, naznačena podebljanim jedinicama u Karnaughovoj mapi sa Sl. 2.32b. Bitni mintermi određuju bitne proste implikante. Tako, oba prosta implikanta funkcije sa Sl. 2.30 su bitna: x1` pokriva tri bitna minterma, m0, m2 i m3, dok x2x3

pokriva jedan bitni minterm, m7. Funkcija sa Sl. 2.32 ima tri bitna prosta implikanta (uokvireni podebljanim linijama na Sl. 2.32b): x1`x2` (zbog m2), x1`x3` (zbog m4) i x1x2x3 (zbog m14).

Pošto je bitni prosti implikant jedini prosti implikant koji pokriva neku 1-cu u Karnaughovoj mapi, on mora biti sadržan u bilo kom minimalnom SOP izrazu. Na primer, ako bi smo iz pokrivanja za funkciju sa Sl. 2.32 izostavili bitni prosti implikant x1`x2`, tada u skupu preostalih prostih implikanata ne bi smo mogli da nađemo neki drugi implikant koji bi pokrio minterm m2. Skup bitnih prostih implikanata može, ali ne mora da pokrije sve minterme za koje važi f=1. Na primer, tri bitna prosta implikanta za funkciju sa Sl. 2.32 pokrivaju sve minterme za f, osim m7. Ako iz Karnaughove mape odstranimo bitne proste implikante i 1-ce pokrivene bitnim prostim implikantima, dobićemo redukovanu mapu koja sadrži jednu 1-cu (odgovara mintermu m7) i dva prosta implikanta, x1`x4 i x2x3x4, koji je pokrivaju (Sl. 2.32c). Da bi smo dovršili pokrivanje funkcije f dovoljno je izabrati jedan od ova dva prosta implikanta. Izbor je, zbog niže cene, naravno, x1`x4. Tako dolazimo do konačnog oblika minimalnog SOP izraza za funkciju f:

f = x1`x2` + x1`x3` + x1x2x3 + x1`x4

Dakle, dolazimo do zaključka da minimalni SOP izraz sadrži sve bitne proste implikante i podskup preostalih, ne-bitnih, prostih implikanata koji su neophodni da bi pokrili minterme za datu funkciju koji nisu pokriveni bitnim prostim implikantima.

Page 49: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Logičko projektovanje

49

(a) Karnaughova mapa (b) prosti implikanti i bitni mintermi (c) redukovana mapa, nakon uklanjanja bitnih prostih implikanata i pokrivenih 1-

ca

Sl. 2.32 Funkcija f=∑m(0,1,2,3,4,5,7,14,15).

Na osnovu prethodnog razmatranja, u mogućnosti smo da proceduru logičke minimizacije razložimo na tri koraka:

1. Generisati sve proste implikante za datu funkciju f.

2. Naći skup bitnih prostih implikanata.

3. Ako skup bitnih prostih implikanata pokriva sve minterme za koje f=1, tada ovaj skup predstavlja traženo minimalno pokrivanje funkcije f. Inače, odrediti podskup ne-bitnih prostih implikanata koje treba pridodati pokrivanju kako bi se kompletiralo minimalno pokrivanje.

Prva dva koraka procedure su precizno definisana. Međutim, izbor ne-bitnih prostih implikanata, u trećem koraku, nije uvek očigledan i direktan. Za razliku od minimizacije funkcije sa Sl. 2.32, gde se u poslednjem koraku izbor sveo ne jedan od dva ne-bitna prosta implikanta, u mnogim drugim, složenijim primerima, potrebno je u mnoštvu različito komponovanih podskupova ne-bitnih prostih implikanata, od kojih svaki takav podskup dopunjuje skup bitnih prostih implikanata do potpunog pokrivanja, naći onaj sa najmanjom cenom. Razmotrimo funkciju sa Sl. 2.33a. Od ukupno šest prostih implikanata, bitan je samo jedan, x3`x4`. Eliminacijom iz Karnaughove mape 1-ca pokrivenih bitnim prostim implikantom dobijamo redukovanu mapu sa Sl. 2.33b koja pokazuje pet ne-bitnih prostih implikanata koji pokrivaju četiri preostale 1-ce. Očigledno postoji više načina kako pokrivanje može da se dovršiti. Ako odlučimo da u konačno pokrivanje uvrstimo implikant x1x2x3`, za pokrivanje ostaju tri 1-ce (mintermi m10, m11 i m15). Za pokrivanje ova tri minterma dovoljna su dva od tri preostala prosta implikanta. To mogu biti x1x2x4 i x1x3x4, ili x1x2x4 i x1x2`x4`. S obzirom da ova dva para implikanata imaju istu cenu, možemo izabrati bilo koji od njih, recimo x1x2x4 i x1x3x4. Tako dolazimo do prve moguće realizacije funkcije f:

f = x3`x4` + x1x2x3` + x1x2x4 + x1x3x4

Druga mogućnost je da x1x2x3` ne bude uključen u konačno pokrivanje. Tada implikant x1x2x4 postaje bitan, s obzirom da nema drugog načina kako se može pokriti minterm m13. Pošto x1x2x4 pokriva i minterm m15, za pokrivanje ostaju još samo dve 1-ce (mintermi m10 i m11), što se može postići implikantom x1x2`x3. Tako dolazimo do alternativne realizacije:

f = x3`x4` + x1x2x4 + x1x2`x3

Jasno, druga realizacija ima nižu cenu. Strategija korišćena u ovom primeru predstavlja osnovu za sistematsko generisanje svih mogućih alternativnih pokrivanja date funkcije. Na početku, proizvoljno biramo ne-bitan prost implikant; uključimo ga u pokrivanje, a zatim pokrivanje dovršimo korišćenjem preostalih implikanata. Tako dolazimo do prvog rešenja. Drugo rešenje dobijamo tako što iz razmatranja isključujemo ne-bitni implikant, koji je prethodno bio izabran kao prvi i biramo neki drugi ne-bitni implikant sa kojim započinjemo pokrivanje preostalih minterma. Ovu proceduru ponavljamo sve dok ne iscrpem sve mogućnosti.

Page 50: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

50

(a) Karnaughova mapa (b) redukovana mapa, nakon uklanjanja bitnog prostog implikanata

Sl. 2.33 Funkcija f(x1, ..., x4)=∑m(0, 4, 8, 10, 11, 12, 13, 15).

Može se desiti da funkcija nema bitnih prostih implikanata. Primer takve funkcije dat je na Sl. 2.34. U ovakvoj situaciji proizvoljno biramo jedan prosti implikant koga inicijalno uključujem u pokrivanje. Na primer, ako krenemo od x1`x3`x4` a zatim nastavimo dalje sa ˝horizontalnim˝ implikantima, dolazimo do rešenja:

f = x1`x3`x4` + x2x3`x4 + x1x3x4 + x2`x3x4`

Da smo krenuli od implikanta i pokrivanje završili uz pomoć ˝vertikalnih˝ implikanata, dobili bi smo rešenje:

f = x1`x2`x4` + x1`x2`x3 + x1x2x4 + x1x2`x3`

Uočimo da dva rešenja imaju istu cenu, i da pri tome sadrže različite implikante.

Sl. 2.34 Funkcija f(x1, ..., x4)=∑m(0, 2, 4, 5, 10, 11, 13, 15).

Kao što se može naslutiti iz prethodnih primera, logička minimizacija u izvesnim slučajevima može postati složen i dugotrajan proces, naročito ako funkcija koja se minimizira ima veliki broj promenljivih. Kako bi se procedura učinila što efikasnijom, automatski programi za logičku minimizaciju koriste dodatne optimizacije i tehnike, koje ovde nisu razmatrane. Neke od takvih tehnika biće razmatrane u odeljku. Ipak, treba napomenuti da se projektanti, u praksi, najčešće sreću sa dva tipa minimizacionih problema: to su ili funkcije sa malim brojem promenljivih koje se lako miniminiziraju primenom metoda Karnaughovih mapa ili složene funkcije sa većim brojem promenljivih čija se minimizacija može obaviti jedino pomoću specijalizovanih CAD programa.

2.2.2.3 Minimizacija POS izraza

Korišćenjem principa dualnosti, metod Karnaughovih mapa za SOP izraze, izložen u prethodnom odeljku, lako se može modifikovati u metod za minimizaciju POS izraza. Kao što smo objedinjavanjem minterma za koje f=1 nalazili proizvode SOP izraza, tako sada treba objedinjavati maksterme za koje f=0 u sabirke POS izraza. Smatra se da je sabirak veći ako pokriva veći broj maksterma. Što je sabirak veći to je cena njegove realizacije niža.

Na Sl. 2.35 je prikazana ista funkcija kao na Sl. 2.30. Funkcija sadrži tri maksterma koje treba pokriti: M4, M5 i M6. Kao što je prikazano na Sl. 2.35, za pokrivanje ovih makstema potrebna su dva sabirka, što nas dovodi do sledećeg POS izraza:

f = (x1` + x2)(x1` + x3)

Page 51: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Logičko projektovanje

51

Gornjem izrazu odgovara mreža sa dva dvo-ulazna OR i jednim dvo-ulaznim AND kolom. Uočimo da je cena ove mreže viša od cene ekvivalentne mreže koja realizuje SOP izraz izveden na osnovu Sl. 2.30, a koja sadrži jedno dvo-ulazno AND i jedno dvo-ulazno OR kolo.

Sl. 2.35 POS minimizacija funkcije f(x1, x2, x3) = ПM(4, 5, 6).

Na Sl. 2.36 je ponovo prikazana funkcija sa Sl. 2.28. Makstermi za koje f=0 mogu se pokriti sa tri sabirka, kao što je prikazano na slici, što daje POS izraz:

f = (x2 + x3)(x3 + x4) (x1` + x2` + x3` + x4`)

Za realizaciju gornjeg izraza potrebna su tri OR i jedno AND kolo. Pri tome, dva OR kola su dvo-ulazna, treće OR kolo je četvoro-ulazno, dok AND kolo ima tri ulaza. Pretpostavljajući da su na ulazu mreže dostupne prave i komplementirane verzije ulaznih promenljivih, cena mreže iznosi 15. Uočimo da je cena ove mreže niža je od cene odgovarajuće SOP realizacije (Sl. 2.28) koja zahteva pet logičkih kola sa ukupno 13 ulaza, što daje cenu od 18.

Sl. 2.36 POS minimizacija funkcije f(x1, ..., x4) = ПM(0, 1, 4, 8, 9, 12, 15).

U opštem slučaju, minimalne SOP i POS realizacije date logičke funkcije mogu, ali ne moraju, da imaju istu cenu. Ako je cilj projekta da se data funkcija realizuje u vidu dvonivovske mreže, pri čemu postoji sloboda izbora između SOP i POS varijante, tada se do optimalnog rešenja dolazi tako što se izvedu oba minimalna izraza, SOP i POS, i za realizaciju izabere izraz niže cene.

Minimalni POS izraz se može takođe izvesti posredno, primenom DeMorganove teoreme na minimalni SOP izraz izveden za komplementarnu funkciju date funkcije. Razmotrimo, ponovo funkciju f sa Sl. 2.35. Minimalni SOP izraz funkcije f` je oblika:

f` = x1x2` + x1x3`

Komplementiranjem ovog izraza, korišćenjem De Morganove teoreme, dobijamo:

f = ((f)`)`= (x1x2` + x1x3`)` = (x1x2`)`( x1x3`)` = (x1` + x2)(x1` + x3)

što je isti izraz koga smo prethodno dobili pomoću Karnaughove mape.

2.2.2.4 Minimizacija nepotpuno definisanih funkcija

U prethodnim odeljcima razmatrana je minimizacija potpuno definisanih logičkih funkcija, tj. funkcija koje za svaku kombinaciju vrednosti ulaznih promenljivih imaju tačno definisanu izlaznu vrednost, 0 ili 1. Potpuno definisana logička funkcija može se jednoznačno predstaviti skupom minterma za koje f=1 ili skupom maksterma za koje f=0. Međutim, u mnogim konkretnim primenama, logička funkcija ne mora biti definisana za sve kombinacije vrednosti promenljivih, zato što se neke kombinacije nikada neće javiti na ulazu odgovarajuće mreže u toku njene normalne eksplatacije. Na primer, BCD kod koristi 10 od 16 mogućih kombinacija za

Page 52: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

52

kodiranje decimalnih cifara od 0 do 9. Drugim rečima, šest kombinacija, koje odgovaraju brojevima 10, 11, 12, 13, 14 i 15, se nikada ne koriste. Iz tog razloga, bilo koja logička funkcija koja koristi BCD kod kao ulaz, kao što je npr. BCD sabirač, trebalo bi da se smatra nedefinisanom za minterme koje predstavaljaju brojeve 10, 11, 12, 13, 14 i 15. Funkcije čiji izlaz nije definisan za neke ulazne kombinacije zovu se nepotpuno definisana funkcije, dok se mintermi za koje funkcija nije definisana zovu nedefinisani mintermi ili nedefinisane vrednosti (don`t-cares).

Nedefinisane vrednosti se mogu koristiti za dodatno pojednostavljenje nepotpuno definisane logičke funkcije. Pošto se nedefinisane vrednosti nikada ne javljaju na ulazu, odgovarajućim nedefinisanim mitermima se može, u toku optimizacije, dodeliti bilo koja od vrednosti 0 ili 1 i to tako da cena rezultujuće logičke mreže bude što niža. U Karnaughovoj mapi, nedefinisani mintermi se označavaju upisivanjem znaka X u odgovarajuća polja, što ukazuje da konkretne vrednosti funkcije za takve minterme nisu od značaja.

Razmotrimo nepotpuno definisanu funkciju f prikazanu na Sl. 2.37. Funkcija ima pet minterma za koje f=1, sedam minterma za koje f=0 i četiri nedefinisana minterma za koje funkcija može imati vrednost 1 ili 0, tj. za koje f=X. Funkcija f se može predstaviti u skraćenoj notaciji na sledeći način:

f(x1, …, x4) = ∑m(2, 4, 5, 6, 10) + D(12, 13, 14, 15)

gde je D skup nedefinisanih minterma.

(a) SOP realizacija (b) POS realizacija

Sl. 2.37 Dve realizacje funkcije f(x1, …, x4) = ∑m(2, 4, 5, 6, 10) + D(12, 13, 14, 15)

Na Sl. 2.37a prikazano je minimalno pokrivanje za SOP realizaciju. Da bi se oformile najveće moguće grupe susednih 1-ca i na taj način generisali prosti implikanti najniže cene, neophodno je pretpostaviti da nedefinisani mintermi D12, D13 i D14 (odgovaraju mintermima m12, m13 i m14) imaju vrednost 1, dok D7 i D14 imaju vrednost 0. Na taj način dolazimo do minimalnog SOP izraza:

f = x2x3` + x3x4`

Minimizacija nepotpuno definisane logičke funkcije se razlikuje od minimizacije potpuno definisane funkcije samo u delu generisanja prostih implikanata. Konkretno, osim minterma za koje f=1, prosti implikant može pokriti i proizvoljan broj nedefinisanih minterma, ako to vodi njegovom povećanju. Ovim postupkom nepotpuno definisana funkcija postaje potpuno definisana, tako što joj je dodeljena vrednost 1 za sve nedefinisane minterme koji su pokriveni barem jednim prostim implikantom, odnosno vrednost 0 za nedefinisane minterme koji su ostali nepokriveni.

Na Sl. 2.37b je prikazano minimalno pokrivanje razmatrane funkcije za POS realizaciju. Sada je usvojeno da D15 ima vrednost 0, a da D12, D13 i D14 imaju vrednost 1. Odgovarajući minimalni POS izraz ima oblik:

f = (x2 + x3)(x3` + x4`)

Sloboda u izboru vrednosti nedefinisanih minterma ima za posledicu značajno pojednostavljenje realizacije date funkcije. Ako bi smo nedefinisane minterme isključili iz minimizacije, pretpostavljajući da oni uvek imaju vrednost 0, rezultujući SOP i POS izraz za funkciju sa Sl. 2.37 bi bili:

f = x1`x2x3` + x1`x3x4` + x2`x3x4`

f = (x2 + x3)(x3` + x4`)(x1` + x2`)

Očigledno, oba izraza imaju višu cenu realizacije u odnosu na izraze koji su dobijeni pod pretpostavkom da nedefinisanim minterma mogu biti dodeljene proizvoljne vrednosti. Ako funkcija ima k nedefinisanih minterma, tada postoji 2k mogućih dodela konkretnih vrednosti, 0 ili 1, nedefinisanim mintermima. Realizacije koje slede na osnovu svake konkretne dodele mogu se značajno razlikovati po složenosti. Korišćenjem Karnaughove mape u mogućnosti smo da relativno lako uočimo onu dodelu koja daje optimalnu realizaciju.

Page 53: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Logičko projektovanje

53

2.3 VLSI tehnologije

Digitalni sistemi se realizuju pomoću integrisanih kola, ili IC, koja su izrađena na malom silicijumskom krastalu, ili čipu. Na površini čipa nalazi se veliki broj tranzistora formiranih odgovarajućim tehnološkim postupkom koji menja hemijski sastav površine čipa. Tranzistori su međusobno povezani tako da kreiraju različite tipove logičkih kola, koja se dalje mogu koristiti da bi se formirale veće komponente, kao što su memorije i procesori. Svaki silicijumski čip je ugrađen u keramičko ili plastično kućište i povezan sa pinovima na kućištu, što daje integrisano kolo. Broj pinova na čipu se kreće od 14, kod malih IC, do nekoliko stotina kod većih pakovanja. Bez obzira na broj pinova, IC su komponente malih dimenzija, do te mere da se celokupan mikropocesora može smestiti unutar 40-pinskog pakovanja dimenzija 5.0x1.5x0.5cm. Nakon što je proizvedeno, a u cilju identifikacije, svakom integrisanom kolu se dodeljuje numerička oznaka koja se štampa na površini kućišta. Uz to, proizvođači integrisanih kola publikuju prateću dokumentaciju koja sadrži sve bitne informacije o elektičnim i mehaničkim osobinama integrisanog kola, što uključuje funkcionalni opis, dijagrame toka i vremenske dijagrame ulaznih i izlaznih signala.

Često, integrisana kola se klasifikuju shodno broju tranzistora ili gejtova sadržanih u jednom kućištu. Prema ovoj podeli, razlikuju se integrisana kola niskog-, srednjeg-, visokog- i veoma-visokog-nivoa integracije. Integrisana kola niskog nivoa integracije (SSI – Small Scale Integration) sadrže do 10 nezavisnih gejtova. Pošto su ulazi i izlazi ovih gejtova direktno povezani sa pinovima na kućištu, broj gejtova je ograničen brojem raspoloživih pinova. Tipičan primer IC niskog nivoa integracije su bazična kola iz TTL familije 7400. Na primer, kolo SN7400 sadrži 4 NAND gejta, a kolo SN7404 6 invertora.

Integrisana kola srednjeg nivoa integracije (MSI - Medium-Scale Integration) su složenosti od 10 do 100 gejtova. Ovakve komponente obično realizuju standardne digitalne memorijske i aritmetičke komponente za logičke operacije nad malim brojem bitova, kao što su registri, brojači i sabirači. Primer integrisanog kola srednjeg nivoa integracije je TTL kolo SN74180 – 9-bitni generator bita parnosti.

Integirsana kola visokog nivoa integracije (LSI - Large-Scale Integration) sadrže između 100 i nekoliko stotina gejtova. Ova kategorija integrisanih kola uključuje digitalne komponente kao što su kontroleri, memorijski čipovi manjeg kapaciteta i programabilne logičke komponente.

Konačno, integrisana kola veoma visokog nivoa integracije (VLSI – Very-large-scale Integration) sadrže više stotina hiljada gejtova i više. Primeri ovih kola su memorije velikog kapaciteta, mikroprocesori, mikroračunari na čipu i različiti hardverski akceleratori. Mala veličina i niska cena VLSI čipova proizvela je revoluciju u oblasti digitalnog projektovanja. Sa VLSI tehnologijom na raspolaganju, projektati su dobili priliku da kreiraju jeftina, aplikaciono-specifična kola (ASIC) visokih performansi, optimizovna za efikasno obavljanje pojedinih zadataka. Danas, VLSI komponente predstavljaju jedine komponente koje su u upotrebi. Integrisana kola tipa SSI, MSI i LSI bila su aktuelna ’70 i ’80 godina, dok se danas najčešće koriste samo kao rezervni delovi za starije uređaje.

Razvojem VLSI tehnologije došlo je do jedne značajne promene u načinu procene cene dizajna. Na primer, cena proizvoda projektovanih na bazi SSI, MSI ili LSI komponenti određivana je na osnovu ukupnog broja integrisanh kola na štampanoj ploči. Sa druge strane, cena VLSI čipa meri se površinom čipa. Pošto je ova površina srazmerna broju tranzistora ili gejtova, kod logičkog dizajna, odnosno memorijskom kapacitetu, kod memorijskog dizajan, glavni cilj projektovanja je minimizacija broja potrebnih gejtova i memorije.

VLSI čipovi koji se koriste u većini savremenih dizajna mogu se svrstati u tri kategorije: kola potpuno po narudžbini (custom), kola po narudžbini (semi-custom) i programabilna kola. Custom VLSI kola se projektuju u potpunosti, do nivoa pojedinačnih tranzistora i veza, za tačno definisanu primenu. Svaki tranzistor i veza predstavljaju se u vidu poligona koji se koriste za generisanje foto-litografskih maski, koje su neophodne za proces fabrikcije čipa. Pošto je proces manuelnog projektovanje na ovako niskom nivou veoma naporan, dugotrajan i podložan greškama, razvijena je metodologija projektovanja na bazi standardnih ćelija. Standardne ćelije su unapred projektovani moduli koje se u vidu gradivnih blokova koriste za konstrukciju složenijih struktura na čipu.

Po pravilu, svaka standardna ćelija sadrži jedan gejt, tipa NOT, AND, OR, NAND i sličana. Sve standardne ćelije imaju istu visinu, a razlikuju se po širini. Ulazi i izlazi ćelije uvek su postavljeni duž gornje i donje ivice ćelije. Standardne ćelije se pakuju u horizontalne redove, jedna do druge, a povezuju vezama koje se smeštaju u kanale između redova. Horizontalne i vertikalne veze se izvode na dva različita nivoa koji su postavljeni iznad standardnih ćelija, kao što je prikazano na Sl. 2.38.

Page 54: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

54

Sl. 2.38 Organizacija standardnih ćelija.

U toku projektovanja, standardne ćelije su raspložive u vidu biblioteke standardnih ćelija, a proces projektovanja sastoji se od sledećih aktivnosti: unos dizajna, simulacija, raspoređivanje i povezivanje. U toku prve aktivnosti, uz pomoć grafičkog editora logička šema dizajna se unosi u računar. Nakon toga, korišćenjem simulatora, projektant verifikuje funkcionalu ispravnost unete logičke šeme i procenjuje propagaciona kašnjenja od ulaza do izlaza. Nakon što je simulacijom potvrđena ispravnost logičke šeme, standardne ćelije se raspoređuju po površini silicijuma. Za tu namenu projektant koristi CAD alat za raspoređivanje, koji za svaku ćeliju definiše red i poziciju u redu gde će ćelija biti postavljena. Cilj je naći takav raspored koji će minimizovati površinu koja je neophodna za povezivanje ćeilija, a koja se ocenjuje na osnovu potrebnog broja staza za povezivanje u svakom kanalu. Konačno, nakon što je proces raspoređivanja završen, projektant povezuje ćelije, korišćenjem CAD alat za povezivanje. Cilj je ostvariti sva potrebna povezivanja vezama minimalne dužine.

Na Sl. 2.39 je prikazana realizacija potpunog sabirača na bazi standardnih ćelija. Uočimo da raspored ćelija, kako je dat na ovoj slici, zahteva četiri horizontalne staze za povezivanje u gornjem i pet u donjem kanalu.

Sl. 2.39 Realizacija potpunog sabirača pomoću standardnih ćelija.

Za razliku od custom pristupa, semi-custom pristup se zasniva na korišćenju polu-fabrikovanih integrisanih kola, poznatih pod imenom gejtovska polja ili gejtovske matrice. Gejtovsko polje čini veliki broj identičnih gejtova, raspoređenih na mikročipu u vidu regularne dvodimenzionalne matrice. Gejtovi su obično 3- ili 4-ulazna NAND ili NOR kola, a na jednom čipu ih može biti od 100.000 do 1.000.000. Pošto su svi gejtovi prefabrikovani, željena fukcionalnosti se postiže odgovarajućim povezivanjem gejtova, za šta je neophodna naknadnom dorada gejtovaskog polja nanošenjem završnog sloja metalizacije. Cena ovakve dorade je značajno niža u odnosu na custom projektovanje, gde se celokupan čip projektuje za tačno jednu namenu, ˝od početka˝. Sa druge strane, gustina gejtovskih polja je značajno manja u odnosu na custom čipove. Tipično, broj raspoloživih gejtova u gejtovskom polju je između četiri i deset puta manji od broja gejtova koji se mogu realizovati na custom čipu iste površine.

Proces projektovanja zasnovan na gejtovskim poljima je sličan onome koji se koristi za custum dizajn, s tom razlikom da zahteva još jedan dodatni korak koji se zove tehnološko mapiranje, a obavlja se nakon unosa i

Page 55: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Logičko projektovanje

55

simulacije dizajna. Cilj tehnološkog mapiranja je konverzija svih komponenti prisutnih u logičkoj šemi u gejtove istog tipa koji su raspoloživi u izabranom gejtovskom polju. Na primer, ako se gejtovsko polje sastoji od tro-ulaznih NAND kola, sve Bulove funkcije definisane logičkom šemom moraju biti realizovane uz pomoć tro-ulaznih NAND kola. Nakon obavljenog tehnološkog mapiranja, raspoređivanje i povezivanje se može ostvariti uz pomoć istih CAD alata koji se koriste za projektovanje na bazi standardnih ćelija.

Kao primer semi-custom projektovanja, razmotrimo kako bi smo u gejtovskom polju tro-ulaznih NAND kola realizovali funkcije sum i carry potpunog sabirača. Prvo, izrazi za funkcije sum i carry moraju biti konvertovane u formu koja će omogućiti realizaciju pomoću tro-ulaznih NAND kola. Do ove formi se može doći primenom De-Morganove teoreme, na sledeći način:

ci+1 = xiyi+yici+xici

= ((xiyi)’(yici)’(xici)’)’

i

si = xi’yi’ci+xi’yici’+xiyi’ci’+xiyici

= (xi’yici+xi’yici+xiyi’ci’)+xiyici

= ((xi’yici+xi’yici+xiyi’ci’)’(xiyici)’)’

=((((xi’yici)’(xi’yici)’(xiyi’ci’)’)’)’(xiyici)’)’

Realizacija potpunog sabirača u gejtovskom polju NAND tipa prikazana je na Sl. 2.40. Uočimo da je funkcija carry reaizovana pomoću 4 gejta, što predstavlja minimalni broj gejtova koji je potreban za realizaciju ove funkcije. Sa druge strane funkcija sum zahteva sedam gejtova, pošto četvoro-ulazno NAND kolo zahteva tri gejta kada se ralizuje pomoću tro-ulaznih NAND gejtova. Uočimo da su u strukturi sa Sl. 2.40 dva od ukupno 16 gejtova ostala neiskorišćena. Treba napomenuti da je kod tipičnog dizajna nivo iskorišćenosti raspoloživih gejtova obično značajno niži.

Sl. 2.40 Realizacija potpunog sabirača u tehnologiji gejtovskih polja.

Treći pristup projektovanju zasnovan je programabilnim logičkim kolima (PLD – Programmable Logic Devices). PLD su polja logičkih komponenti čija se povezanost uspostavlja prostim punjenjem (tj. programiranjem) konfiguracionih podataka u internu memoriju ovih kola. Pošto PLD kola mogu biti reprogramirana veći broj puta, ona su pogodna za novi dizajn, kada specifikacija u startu nije dovoljno precizna, već evoluira tokom vremena, kao i u slučajevima kada hardver mora biti prilagođen pojedinim korisnicima. PLD kola su idealna za realizaciju prototipova i predstavljaju ekonomično rešenje za komponente koje se proizvode u malim serijama. Nažalost, logička gustina i brzina PLD kola je značajno manja u odnosu kola koja se mogu projektovani u custom ili semi-custom tehnologijama.

Na Sl. 2.41(a) je prikazana PLD struktura tipa FPGA (Field Programmable Gate Array) koju čini polje programabilnih logičkih blokova (PLB – Programmable Logic Block) okruženih programabilni vezama (PM), kao i nekoliko ulazno-izlaznih blokova raspoređenih po obodu čipa (ne vide se na Sl. 2.41(a)), a koji se koriste za spregu sa drugim komponentama lociranim izvan čipa. Kao što se može videti na Sl. 2.41(b), svaki PLB

Page 56: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

56

sadrži dva četvoro-ulazna logička bloka i dva jedno-bitna memorijska elementa. Svaki logički blok se može programirati tako da realizuje bilo koju logičku funkciju četiri promenljive, dok se rezultat funkcije može direktno proslediti nekom drugom logičkom bloku, ili se može zapamtiti u pridruženom memorijskom elementu radi kasnijeg korišćenja.

Sl. 2.41 PLD kolo: (a) struktura polja; (b) programabilni logički blok (PLB); (c) spojna tačka.

Unutar FPGA kola, programabilno povezivanje se ostvaruje uz pomoć skupova paralelnih vertikalnih i horizontalnih veza u čijim se presecima nalaze prekidačke matrice (PM). Prekidačka matrica dimenzija n×n sadrži m≤n×n programabilnih spojnih tačaka uz pomoć kojih se vertikalne i horizontalne veze mogu spojiti na nekoliko različitih načina. Kao što se može videti na Sl. 2.41(c), svaka spojna tačka sadrži šest prekidača koji se programiranjem mogu postaviti u otvoreno ili zatvoreno stanje. U zavisnosti od toga koji su prekidači zatvoreni,

Page 57: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Logičko projektovanje

57

moguće je ostvariti jedan od 64 različita načina povezivanja između veza koje sa različitih strana ulaze u prekidačku matricu. Pored nadovezivanja kraćih veza u cilju formiranja dužih linija, prekidačke matrice služe i za povezivanje PLB blokova sa vertikalnim i horizontalnim vezama, kao što se moze videti na Sl. 2.41(a).

Kao što se može videti na Sl. 2.42, FPGA tehnologija omogućava realizaciju potpunog sabirača unutar samo jednog PLB bloka, gde se za funkcije sum i carry koristi po jedan logički blok. Pošto obe funkcije, carry i sum, imaju po tri ulazne promenljive, po jedan ulaz u svaki od dva logička bloka ostaje neiskorišćen.

Sl. 2.42 Realizacija potpunog sabiraća pomoću jednog PLB bloka.

2.3.1 Tehnološko mapiranje za gejtovska polja

U cilju smanjenja cene i vremena razvoja, danas se mnogi digitalni sistemi proizvode u tehnologiji gejtovskih polja. Kao što je opisano u odeljku 2.3, gejtovsko polje je dvodimenzionala matrica ćelija, gde svaka ćelija sadrži jedan gejt sa fiksnim brojem ulaza. Obično se koriste m-ulazni NAND (ili NOR) gejtovi, a najčešće se sreću 3-ulazni NAND (NOR) gejtovi. Projektovanje na bazi gejtovskih polja zahteva transformaciju Bulovih izraza ili logičkih šema koje sadrže AND, OR i NOT gejtove u oblik koji sadrži isključivo m-ulazne NAND (NOR) gejtove. Ova transformacija se zove tehnološko mapiranje i uključuje nekoliko zadataka, koji će biti opisani u ovom odeljku. Najpre će biti objašnjeno kako transformisati logičku šemu koja sadrži AND, OR i NOT kola u šemu koja sadrži isključivo NAND (NOR) kola. Ova transformacija uključuje dva koraka: konverzija i optimizacija. U koraku konverzije, svako AND i OR kolo se zamenjuje ekvivalentnim NAND (NOR) kolom, dok se u koraku optimizacije, eliminišu duplirani invertori koji su kreirani u toku konverzije. Takođe, biće pokazano kako se AND (OR) kolo sa više od m ulaza može razložiti na mrežu AND (OR) kolo sa m ulaza. Konačno, biće demostrirana tehnika za minimizovanje kašnjenja u NAND (NOR) logičkoj mreži.

Pravila za konverziju zasnovana su na osnovnim postulatima Bulove algebre i sledećeg su oblika:

Pravilo 1: xy = ((xy)’)’ Pravilo 2: x+y = ((x+y)’)’ = (x’y’)’ Pravilo 3: xy = ((xy)’)’ = (x’+y’)’ Pravilo 4: x+y = ((x+y)’)’

Pravila 1 i 2 se koriste za konverziju u NAND, a pravila 3 i 4 za konverziju u NOR logičku mrežu. Grafička reprezentacija pravila 1 do 4 se može videti na Sl. 2.43(a). Takođe koristićemo još jedno dodatno pravilo za optimizaciju, Pravilo 5, koje kaže da duple invertore (tj. dva invertora vezana na red) treba zameniti prostom vezom. Ovo pravilo je posledica postulata x=(x’)’, a grafički je ilustrovano na Sl. 2.43(b). Treba napomenuti da se u praksi invertori obično realizuju pomoću NAND ili NOR gejtova kod kojih su svi ulazi međusobno spojeni. Međutim, u logičkim šemama koristićemo simbole za invertor, umesto NAND ili NOR gejtova, kako bi smo jasnije ukazali na pozicije invertora u logičkoj mreži.

Page 58: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

58

Sl. 2.43 Pravila za konverziju i optimizaciju: (a) pravila za konverziju; (b) pravilo za optimizaciju.

Jednostavno rečeno, procedura za konverziju AND-OR logičke mreže u NAND (NOR) logičku mrežu glasi:

Primenom pravila 1 i 2 (3 i 4) AND i OR kola zameniti NAND (NOR) kolima, a zatim, svuda gde je to moguće, eliminisati duple invertore.

Opisana procedura konverzije se lako primenjuje na standarde forme tipa "suma proizvoda" i "proizvod suma". Na primer, kao što se može videti iz tabele sa Sl. 2.44, forma tipa "suma proizvoda" se može konvertovati u NAND mrežu jednostavnom zamenom svakog gejta jednim NAND gejtom. Slično, forma tipa "suma proizvoda" se konvertuje u NOR mrežu tako što se najpre svaki gejt zameni NOR gejtom, a zatim se na svaki ulazni i izlazni port mreže postave invertori. Međutim, zbog dodatnih invertora, forma tipa "suma proizvoda" se retko konvertuje u NOR mrežu. Za konverziju forme tipa "proizvod suma" važi suprotno, dodatni invertori se javljaju u NAND mreži, dok kod NOR realizacije postoji "1-1" preslikavanje gejtova iz NOR mreže na gejtove iz polazne forme.

Tip forme Standardna realizacija NAND realizacija NOR realizacija

suma proizvoda

proizvod suma

Sl. 2.44 Konverzija formi tipa "suma proizvoda" i "proizvod suma" u NAND i NOR mreže.

Page 59: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Logičko projektovanje

59

Dekompozicija AND (OR) gejtova

U prethodnom primeru je pokazano kako se AND i OR gejtovi konvertuju u NAND (NOR) gejtove. Međutim, ako se ova konverzija vrši u cilju implementacije dizajna u gejtovskom polju, treba imati na umu da su svi gejtovi u gejtovskom polju identični i imaju m ulaza, dok AND i OR kola mogu imati do n ulaza, gde n može biti značajno veće od m. Da bi smo mogli koristiti m-ulazne NAND (NOR) gejtove, moramo znati kako razložiti veće AND i OR gejtove na m-ulazne AND i OR gejtove. Procedura kojom se to postiže zove se dekompozicija AND (OR) gejtova.

PRIMER 2.13 (Konverzija u NAND (NOR) mrežu) Projektovati NAND i NOR logičke mreže za funkciju carry (ci+1) definisanom tabelom istinitosti sa Sl. 2.16.

Rešenje: Na Sl. 2.45(b) dati su izrazi za funkciju ci+1 u vidu standardnih formi "suma proizvoda" i "proizvod suma", dok su u levim delovima Sl. 2.45(c) i (d) prikazane direktne realizacije ovih formi pomoću AND i OR gejtova. Prilikom konverzije forme "suma proizvoda" u NAND mrežu, a shodno pravilu 1, najpre se svako AND kolo zamenjuje NAND gejtom, da bi se zatim, primenom pravila 2, svaki OR gejt zamenio NAND gejtom sa invertorom na izlazu. Nakon eliminacije duplih invertora, dobijamo NAND mrežu koja je prikazana na desnoj strani Sl. 2.45(c). Na sličan način, primenom pravila 3 i 4, konvertujemo formu "proizvod suma" u NOR mrežu, a nakon eliminacije duplih invertora dobijamo rešenje prikazano na desnoj strani Sl. 2.45(d).

Sl. 2.45 NAND i NOR realizacija funkcije carry: (a) Karnoova mapa funkcije carry; (b) standardne forme; (c)

NAND realizacija; (d) NOR realizacija

Poređenjem AND-OR i OR-AND mreža, sa jedne i rezultujućih NAND i NOR mreža, sa druge strane, možemo zaključiti da NAND i NOR mreže imaju bolje performanse. Naime, kašnjenje od ulaza do izlaza NAND i NOR mreža iznosi 3.2ns, u odnosu na 5.2ns kod polaznih mreža. Uz to, NAND i NOR rešenja imaju nižu cenu jer zahtevaju 16 tranzistora, za razliku od AND-OR i OR-AND realizacije koje zahtevaju 24 tranzistora.

Page 60: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

60

Shodno proceduri dekompozicije gejtova, svako n-ulazno AND (OR) kolo se može razložiti na stablo m-ulaznih AND (OR) gejtova. Stablo ima nmlog nivoa sa ukupno )1/()1( −− mn m-ulaznih gejtova. Na

prvom nivou ovog stabla nalazi se mn / gejtova; izlazi ovih gejtova, zajedno sa preostalih )/( mnn −

ulaza formiraju prvi nivo i služe kao ulazi u gejtove sa drugog nivoa. Ova procedura se ponavlja za svaki od

nmlog nivoa.

PRIMER 2.14 (Dekompozicija gejtova) Razložiti AND član koji se sastoji od 10 promenljivih, x9x8x7x6x5x4x3x2x1x0, na stablo tro-ulaznih AND gejtova.

Rešenje: Članu od 10 promenljivih odgovara stablo od 310log3 = nivoa, sa ukupno

5)13)(110( =−− gejtova. Pošto postoji 10 ulaza u AND stablo, broj gejtova na prvom nivou biće

33/10 = gejta. Broj ulaza u drugi nivo biće 4))3/10(310(3 =−+ što zahteva 13/4 = gejt. Treći nivo imaće 2))3/4(34(1 =−+ ulaza i, shodno tome, 1 gejt. Navedena izračunavanja koja se odnose na

broj gejtova na svakom nivou, prikazana su na Sl. 2.46(a).

Nivo Broj ulaza Broj gejtova

1 10 33/10 =

2 4))3/10(310(3 =−+ 13/4 =

3 2))3/4(34(1 =−+ 13/2 =

(a)

Sl. 2.46 Dekompozicija 10-ulaznog AND gejta na 2-ulazne AND gejtove: (a) broj ulaza i broj gejtova na svakom nivou; (b) jedna moguća dekompozicija; (a) alternativna dekompozicija.

Nakon što je za svaki nivo izračunat broj gejtova, neophodno je odrediti kako će ulazi biti povezani sa gejtovima na prvo nivou i kako će izlazi gejtova sa jednog nivoa biti povezani sa ulazima u gejtove sa sledećeg nivoa. Ovo povezivanje se može ostvariti na više različitih načina, pri čemu svaki od način može da rezultuje u rešenju sa različitim maksimalnim kašnjenjima ulaza do izlaza mreže. Na Sl. 2.46(b) i (c) prikazane su dve moguće dekompozicije 10-ulaznog AND gejta na pet 3-ulaznih AND gejtova. Uočimo da se dva rešenja razlikuju samo u propagacionom kašnjenju duž nekih od ulazno-izlaznih putanja. Na primer, u mreži sa Sl. 2.46(b), propagaciono kašnjenje od svi ulaza, osim krajnjeg desno, do izlaza iznosi 8.4ns, dok kašnjenje od krajnjeg desnog ulaza do izlaza iznosi samo 2.8ns. Sa druge strane, kod rešenja sa Sl. 2.46(c), kašnjenje od prva tri ulaza sa leve strane, kako i od krajnjeg desnog ulaza, do izlaza iznosi 5.6ns, dok je kašnjenje od preostalih ulaza do izlaza veće i iznosi 8.4ns.

Po pravilu, uvek kada je broj literala u datom proizvodu ili sumi veći od m, konverziji u NAND (NOR) gejtove, mora da prethodi dekomponzicija AND i OR gejtova.

Page 61: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Logičko projektovanje

61

Retajming

Kao što se može videti iz prethodnog primera, kao posledica dekompozicije većih AND i OR gejtova, u NAND (NOR) mreži se javljaju stabla gejtova, zbog čega različite putanje kroz mrežu mogu imati različita kašnjenja. Ova činjenica se može iskoristi prilikom optimizacije performansi (minimizovanje kašenjenja) date logičke mreže. Zadatak optimizacije performansi se zove retiming i obavlja se nakon dekompozicije, konverzije i eliminacije invertora, onda kada se precizno mogu izračunati kašnjenja kroz logičku mrežu. U toku retiming-a, putanjama kroz stablo dekomponovanih gejtova koje imaju najkraće kašnjenje dodeljuju se signali koji imaju najveće kašenjenje kroz celokupnu logičku mrežu. Nakon retiming-a, često je potrebno jednom ili više puta, ponoviti konverziju i eliminaciju duplih gejtova. Procedura retiming-a biće objašnjena na sledećem primeru.

PRIMER 2.15 (Tehnološko mapiranje za gejtovska polja) Realizovati funkciju sum (si) potpunog sabirača pomoću tro-ulaznih NAND gejtova.

Rešenje: Funkcija sum, ranije definisana tabelom istinitosti, reprezentovana je Karnoovom mapom sa Sl. 2.47(a). Bulov izraz u formi "suma proizvoda" koji sledi na osnovu Karnoove mape sa Sl. 2.47(a) je oblika:

si = xi’yici’+xi’yi'ci+xiyi’ci’+xiyici

Na osnovu ovog izlaza lako se dolazi do AND-OR mreže prikazane na Sl. 2.47(b).

S obzirom da OR gejt sa Sl. 2.47(b) ima četiri ulaza, neophodno ga je razložiti na dva OR gejta, tako da svaki gejt nema više od tri ulaza, kao što je prikazano na Sl. 2.47(c). Nakon što je dekompozicija obavljena, primenom prva dva pravila konverzije, u stanju smo da svaki gejt iz AND-OR mreže sa Sl. 2.47(c) konvertujemo u tro-ulazni NAND gejt, što daje logičku mrežu prikazanu na Sl. 2.47(d). Konačno, nakon eliminacije duplih invertora, dobijamo optimizovanu NAND mrežu prikazanu na Sl. 2.47(e).

Sl. 2.47 Realizacija funkcije sum pomoću 3-ulaznih NAND gejtova: (a) Karnoova mapa funkcije sum; (b) AND-OR mreža; (c) dekompozicija OR gejta; (d) konverzija u NAND mrežu; (e) optimizovana NAND mreža.

Page 62: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

62

PRIMER 2.16 (Retiming) Realizovati “carry-look-ahead” funkciju c4 pomoću 3-ulaznih NAND gejtova.

Rešenje: Funkcija carry za za i-ti razred sabirača, tj. “carry-look-ahead” funkcija ci, definisana je sledećom rekurzivnom jednačinom:

ci+1=gi+pici, gde je gi=xiyi i pi=xi+yi. Na osnovu ove jednačina, sledi:

c1=g0+p0c0; c2=g1+p1c1; c3=g2+p2c2; c4=g3+p3c3

Zamenom unazad, izraz c4 može se predstaviti u funkciji izraza c0, gi i pi, 0≤i≤3:

c4=g3+p3g2+p3p2g1+p3p2p1g0+p3p2p1p0c0

Ova funkcija se zove 4-bitna “carry-look-ahead” funkcija, s obzirom da izlazni prenos iz četvrte bitske pozicije sabirača, c4, ne zavisi od među-prenosa, c3, c2 i c1. Na Sl. 2.48(a) prikazana je direktna realizacija funkcije c4 u vidu AND-OR mreže. Na Sl. 2.48(b) prikazana je jedna moguća dekompozicija polazne AND-OR mreže na 3-ulazne AND i OR gejtove. Konverzija u NAND gejtove i eliminacija duplih invertora daje NAND mrežu sa Sl. 2.48(c). Kao što se može videti sa ove slike, najveće ulazno-izlazno kašnjenje u “carry-look-ahead” logičkoj mreži iznosi 8.2ns.

Međutim, postoji mogućnost da bi sa nekom drugačijom dekompozicijom OR gejta, kašnjenje kroz mrežu bilo kraće. Uočimo da je OR gejt iz polazne logičke mreže razložen na dva tro-ulazna gejta, tako da je ukupan broj slobodnih ulaza u rezultujuće stablo OR gejtova pet. Svih pet ulaza su funkcionalno ravnopravni, što znači da signali koji ulaze u stablo OR gejtova slobodno mogu biti permutovani. Međutim, svih pet ulaza nemaju isto kašnjenje do izlaza. Kao što se vidi sa Sl. 2.48(b), gornja dva ulaza u OR stablo prolaze kroz jedno, dok preostala tri ulaza prolaze kroz dva OR gejta. Sa druge strane, gledano sa ulaza celokupne logičke mreže, kašnjenja do ulaza u stablo OR gejtova se takođe razlikuju. Kašnjenje od prvog ulaza, gledano odozgo, do OR stabla je 0ns. Signal koji polazi sa jednog od sledeća četiri ulaza do OR stabla prolazi kroz jedan AND gejt, dok putanje koje kreću od preostalih ulaza i protežu se do OR stabla prolaze kroz dva AND gejta. Očigledno, kašnjenje kroz celokupnu logičku mrežu se može smanjiti ako se putanje, od ulaza u logičku mrežu do ulaza u OR stablo, sa najvećim kašnjenjem preusmere na ulaze OR stabla sa najmanjim kašnjenjem do izlaza. Sledeći ovakvo razmišljanje, dolazimo do nove dekompozicije prikazane na Sl. 2.48(d). Kao što se može videti, članovi p3p2p1g0 i p3p2p1c0 koji se formiraju pomoću dva redno vezana AND gejta, preusmereni su na slobodne ulaze izlaznog OR gejta. Nakon konverzije i eliminacije dupli invertora, dobijamo NAND mrežu sa Sl. 2.48(e). Analizom ove mreže možemo zaključiti da je kašnjenje samo 6.4ns, što predstavlja poboljšanje od 30% u odnosu na polazno, neoptimizovano rešenje.

p3g2

p3p2g1

p3p2p1g0

p3p2p1

c0

g3

c4

p3g2

p3p2g1

p3p2p1g0

p0

p3p2p1

c0

p0

g3

c4

p3g2

p3p2g1

p3p2p1g0

p3p2p1

c0

p0

g3

c4

1.4

1.8

1.8

1.8

1.4

1.8

1.8 1.8

(b) (c)

(a)

Page 63: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Logičko projektovanje

63

Na Sl. 2.49 je prikazan dijagram toka procedure za transformaciju proizvoljne AND-OR mreže u mrežu m-ulaznih NAND gejtova. Kao što je pokazano u prethodnom primeru, ova procedura se sastoji od četiri koraka: dekompozicija, konverzija, eliminacija i retiming. Zadatak dekompozicije je razlaganje velikih AND i OR kola na stabla m-ulaznih AND i OR kola. Zadatak konverzije je zamena svakog od ovih AND i OR kola ekvivalentnom kombinacijom NAND (NOR) gejtova i invertora. Cilj eliminacije je uklanjanje parova redno vezanih invertora. U ovoj tački procedure, određuju se kašnjenja duž svih ulazno-izlaznih putanja, i registruju putanje sa najvećim kašnjenjem, kako bi se, primenom retiming-a, njihovo kašnjenje smanjilo, ako je moguće. Procedura može biti ponovljena veći broj puta, sve dok ne dođemo do rešenja kod koga dalje smanjenje maksimalnog kašnjenja kroz mrežu više nije moguće ostvariti.

Sl. 2.49 Procedura tehnološkog mapiranja za gejtovska polja.

2.3.2 Tehnološko mapiranje za custom biblioteke

U prethodnom odeljku razmatran je postupak transformacije logičke mreže sačinjen od AND, OR i NOT gejtova u logičku mrežu sa isključivo NAND (NOR) gejtovima, gde svaki NAND (NOR) gejti ima tačno m ulaza. Kao što je pokazano na primerima, postupak transformacije ovog tipa je jednostavan, jer nakon dekompozicije polazne mreže na m-ulazna AND i OR kola, sledi direktna zamena svakog AND ili OR gejta

PRIMER 2.16 (nastavak …)

Sl. 2.48 Dve NAND realizacije 4-bitne carry-look-ahead funkcije: (a) AND-OR mreža; (b) dekompozicija mreže (a); (c) NAND ralizacija mreže (b); (d) dekompozicija sa optimizovanim performansama; (e) NAND realizacija

sa optimizovanim performansama.

Page 64: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

64

tačno određenom kombinacijom NAND (NOR) gejtova i invertora. Međutim, kada radimo sa custom bibliotekom, postupak transformacije postaje značajno složeniji, s obzirom da ove biblioteke sadrže kompleksne gejtove, kao što su AOI i OAI, što znači da svaki gejt, ili grupa povezanih gejtova, iz polazne mreže može biti zamenjen sa više različitih gejtova ili kombinacijom gejtova iz raspoložive biblioteke. Iz tog razloga, tehnološko mapiranje za custom biblioteke zahteva grupisanje gejtova iz polazne mreže na takav način da svaka grupa predstavlja jedan gejt iz biblioteke, težeći pri tome da rezultujuća mreža ima minimalnu cenu ili kašnjenje.

Zadatak grupisanja gejtova iz polazne mreže se može razumeti kao zadatak “pokrivanja” polazne mreže bibliotečkim gejtovima. Naravno, broj različitih pokrivanja može biti veoma veliki. Gledano na ovaj način, minimizovanje kašnjenja znači izbor takvog pokrivanja kod koga će maksimalno kašnjenje od bilo kog ulaza do izlaza biti minimalno. Slično, minimizovanje cene znači izbor pokrivanja sa minimalnom cenom (npr. sa minimalnim brojem ekvivalentnih tranzistora).

Iako je ponekada moguće u isto vreme minimizovati kašnjenje i cenu, u opštem slučaju minimizovanje kašnjenja i cene predstavlja dva suprotsvatljena cilja. Na primer, da bi se minimizovalo kašnjenje, ulazni signali bi trabalo da prolaze kroz što je moguće manje gejtova. Iz tog razloga, logički izrazi optimizovani po kriterijumu kašnjenja često su oblika standardnih formi tipa “suma proizvoda” ili “proizvod suma”, kod kojih postoje samo dva nivoa gejtova, mada takve forme mogu imati veći broj gejtova ili gejtove sa većim brojem ulaza u odnosu na nestandardne (više-nivolske) forme. Sa druge strane, prilikom minimizovanja cena, suprotno je tačno, jer mreža optimizovana po kriterijumu cene treba da ima što je moguće manji broj gejtova sa što manjim brojem ulaza. Iz tog razloga, mreže optimizovane po ceni, obično koriste maksimalno faktorizovane nestandardne forme, sa više od dva nivoa gejtova, što zahteva manji broj gejtova sa manjim brojem ulaza u odnosu na standardne forme. Iz ove diskusije možemo zaključiti da minimizacija cene povećava kašnjenje jer unosi dodatne nivoe gejtova, dok minimizovanje kašnjenja povećava cenu, jer povećava broj gejtova i broj ulaza u gejtove.

Međutim, u mnogim slučajevima, u toku tehnološkog mapiranja, ova dva cilja mogu biti usklađena. Pošto je cilj minimizacije kašnjenja smanjenje kašnjenja na najdužoj ulazno-izlaznoj putanji, koja se zove kritična putanja, ne postoji razlog zašto ne bi smo sve ostale, nekritične putanje optimizovali po ceni, sve dok kašnjenje nekritičnih putanja ne premaši kašnjenje kritične putanje. Iz tog razloga, tehnološko mapiranje uvek počinje minimizovanjem kašnjenja kritične putanje, a nastavlja se minimizovanjem cene nekritičnih putanja. Da bi se odredila kritična putanja, obično se polazna mreža trasformiše u NAND ili NOR mrežu, pošto su NAND i NOR gejtovi najčešće i najbrži gejtovi u biblioteci. U sledećem primeru predstavljen je zadatak tehnološkog mapiranja za custom biblioteke.

PRIMER 2.17 (Tehnološko mapiranje za custom biblioteke). Transformisati izraz w’z’+z(w+y) u logičku mrežu korišćenjem gejtova iz biblioteke definisane tabelama sa Sl. 2.15, Sl. 2.18 i Sl. 2.19.

Rešenje: Kao što je prikazanano na Sl. 2.50(a), izraz w’z’+z(w+y) se može lako realizovati pomoću AND, OR i NOT gejtova koje možemo naći u biblioteci. Sabirajući pojedinačna kašnjenja gejtova, koja su naznačena unutar simbola za svaki gejt, možemo zaključiti da se najduže kašnjenje javlja na putanju između ulaza y ili w i izlaza F i iznosi 7.2ns. Uz to, pošto znamo da svako 2-ulazno AND ili OR kolo zahteva šest, a svaki invertor dva tranzistora, lako možemo odrediti ukupnu cenu ove realizacije, koja iznosi 28 tranzistora.

Sa druge strane, ako logičku mrežu sa Sl. 2.50(a) konvertujemo u NAND mrežu, sledeći proceduru opisanu u odeljku 2.3.1, dobićemo logičku mrežu prikazanu na Sl. 2.50(b), čija je cena samo 22 tranzistora i kod koje kašnjenje kritične putanje iznosi samo 5.2ns. Kao što se može videti sa Sl. 2.50 (c), logika prisutna na kritičnoj putanji mreže sa Sl. 2.50 (b) se može konvertovati na dva različita načina, označena sa A i B na Sl. 2.50(c). Ako usvojimo rešenje A, tri gejta zamenićemo jednim dvostrukim 2-ulaznim AOI gejtom i jednim invertorom, kao što je prikazano na Sl. 2.50(d). Nažalost, ova zamena, iako smanjuje utrošak tranzistora na 20, ipak povećava kašnjenje kritične putanje za 0.2ns. Međutim, ako usvojimo rešenje B i jednim dvostrukim 2-ulaznim AOI gejtom zamenimo tri gejta, na način kao što je prikazano na (e) kašnjenje na kritičnoj putanji biće smanjeno na 3.4ns, dok će, broj tranzistora biti smanjen na 20. U isto vreme, ova zamena, kreirala je novu kritičnu putanju, od ulaza w i z do izlaza F, sa kašnjenjem od 3.8ns.

Pošto smo dobili novu kritičnu putanju, potrebno je usmeriti pažnju na smanjenje njenog kašnjenja. Međutim, kašnjenje na ovoj novoj kritičnoj putanji se ne može više smanjiti. Međutim, izvesno smanjenje cene se može postići zamenom grupe od dva invertora i jednog 2-ulaznog NAND gejta jednim 2-ulaznim OR gejtom i jednim invertorom, na način koji je naznačen na Sl. 2.50(e). Konačno rešenje, prikazano na Sl. 2.50 (f), ima cenu od 18 tranzistora i kašnjenje na kritičnoj putanji od 3.8ns.

Page 65: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Logičko projektovanje

65

Postupak transformacije koji je demostriran u prethodnom primeru, a koji je opisan dijagramom toka sa Sl. 2.51, može se primeniti na bilo koju logičku mrežu i bilo koju biblioteku. Transfomracija počinje konverzijom polazne logičke mreže u NAND ili NOR mrežu, s obzirom da na taj način možemo precizno oceniti ulazno-izlazna kašnjenja. Nakon toga, sve putanje se sortiraju shodno njihovim kašnjenjima. To nam omogućava da odredimo kritičnu putanju. Zatim pokušavamo da gejt ili grupu gejtova sa kritične putanje pokrijemo gejtom iz biblioteke. Za svako moguće pokrivanje, koje smo isprobali, pamtimo dobitak u performansama i ceni, a u cilju nalaženja pokrivanja pojedinačnim gejtom koje daje najveći dobitak. Ova procedura se ponavlja sve dok ne pokrijemo sve gejtove sa kritične putanje barem jednim bibliotečkim gejtom. U ovoj tački, biramo “najprofitabilniju” alternativu, preračunavamo kašnjenja za preostale putanje i primenjujemo istu proceduru na najdužu od nepokrivenih putanja. Konačno, kada su sve putanje pokrivene, transformacija je završena.

PRIMER 2.17 (nastavak…)

Sl. 2.50 Primer tehnološkog mapiranja: (a) AND-OR realizacija, kašnjenje=7.2ns, cena=28; (b) NAND realizacija, kašnjenje=5.2ns, cena=22; (c) Dve moguće konverzije; (d) Rešenje A, kašnjenje=5.4ns, cena=20; (e)

rešenje B, kašnjenje=3.8ns, cena=20; (f) rešenje B optimizovano po ceni, kašnjenje=3.8ns, cena=18.

Page 66: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

66

Sl. 2.51 Procedura konverzije za custom biblioteke.

2.4 Zaključak

U ovom poglavlju razmatrani su osnovni principi Bulove algebre i načini realizacije Bulovih funkcija pomoću različitih logičkih kola. Pošto se različiti tipovo logičkih kola razlikuju po ceni (veličini) i kašnjenju, isto važi i za realizacije Bulovih funkcija koje koriste ova kola. Pošto cena i kašnjenje realizacije Bulove funkcije zavisi od forme Bulovog izraza i tipa korišćenih gejtova, neophodno je znati kako izvesti odgovarajuć izraz i izabrati odgovarajući tip gejta tako da se dobije minimalna cena ili kašnjenje.

Page 67: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

3 Komponente digitalnih sistema

Složeni digitalni sistemi projektuju se tako što se najpre ukupna funkcija sistema razloži na više pod-funkcija. Zatim se pod-funkcije realizuju u vidu jednostavnijih digitalnih modula, čijim se povezivanjem konstruiše željeni sistem. Iako je u nekim slučajevima neophodno projektovati module za neke specifične funkcije, ipak, najčešće, u praksi, složeniji digitalni sistemi se mogu realizovati korišćenjem standardnih modula ili komponenti. Standardne komponente obavljaju funkcije za koje je uočeno da su korisne za veliki broj različitih primena, a dostupne su u vidu integrisanih kola ili bibliotečkih komponenti i kao takve spremne za direktnu ugradnju u sistem koji se projektuje.

Većina digitalnih sistema, uključujući i računare, projektovana je da obrađuje ili transformiše podatke. Ove transformacije mogu biti različitih tipova, uključujući aritmetičke i logičke operacije, kodiranje i dekodiranje podataka i reorganizaciju podataka. U opštem slučaju, navedene transformacije podataka se obavljaju pomoću kombinacionih komponenti. Osnovna osobina kombinacionih kola jeste činjenica da se njihove izlazne vrednosti izračunavaju isključivo na osnovu tekućih ulaznih vrednosti. Nakon svake promene ulaznih vrednosti, na izlazu se javljaju nove izlazne vrednosti sa kašnjenjem ∆τ koje je neophodno da bi se izračunao novi rezultat. Kombinaciono kolo nije u stanju da ¨zapamti¨ prethodne rezultate, i da onda tu informaciju, zajedno sa tekućim ulazom, koristi za određivanje novog izlaza.

Za razliku od kombinacionih, sekvencijalne komponente sadrže memorijske elemente, kao što su leč kola i flip-flopovi. Kao posledica toga, izlazne vrednosti sekvencijalnih komponenti zavise ne samo od tekućih već i od prethodnih ulaznih vrednosti. Spektar sekvencijalne komponenti se proteže od bazičnih memorijskih elemenata, kao što su leč kola i flip-flopovi, preko generičkih (standardnih) registarskih komponti, kao što su prihvatni, pomerački i brojački registri, i složenijih memorijskih struktura, kao što su RAM, FIFO, stek, do staza podataka i upravljačkih jednica koje su u mogućnosti da izvršavaju složene algoritme.

U ovom poglavlju, korišćenjem tehnika za logičko projektovanje, opisanih u poglavlju 2, biće pokazano kao se projektuju generičke kombinacione i sekvencijalne komponente sa registarskog nivoa apstrakcije.

3.1 Kombinacione komponente

Kombinacione komponente se koriste za: transformaciju podataka, povezivanje, konverziju podataka i upravljanje. Konkretno, kombinacione komponente za transformaciju podataka obavljaju: (1) aritmetičke operacije (sabiranje, oduzimanje, množenje i deljenje), (2) logičke operacije (AND, OR, XOR i komplement), (3) operacije poređenja (veće ili jednako, manje) i (4) operacije za manipulaciju nad bitovima (pomeranje, rotiranje, izdvajanje i umetanje bitova). Kombinacione komponente za povezivanje su multiplekseri i magistrale, a koriste se za povezivanje aritmetičkih i memorijskih komponenti. Komponente za konverziju podataka, kao što su koderi i dekoderi, se koriste za konverziju podatka iz jednog u neki drugi kod. Konačno, univerzalne kombinacione komponente, kao što su ROM memorije i programabilna logička polja (PLD) prevashodno se koriste za projektovanje upravljačkih jedinica.

3.1.1 Sabirač sa rednim prenosom

Sabirač je kombinaciona komponenta koja se koristi za obavljanje operacije sabiranja binarnih brojeva. Dva binarna broja, kao što su x=xn-1 … x0 i y=yn-1 … y0, sabiraju se tako što se na zbir svakog par bita xi i yi doda bit prenosa ci koji je prenešen iz prethodne bitske pozicije. Sabiranjem tri bita, xi, yi i ci, za svaku bitsku poziciju i, 0≤i≤n-1, generiše se bit sume si i bit prenosa ci+1. Procedura sabiranja na nivou jedne bitske pozicije opisana je tabelom istinitosti sa Sl. 3.1(a).

Polazeći od tabele istinitosti sa Sl. 3.1(a), a uz pomoć Karnaughovih mapa sa Sl. 3.1(b), možemo izvesti logičke jednačine sa minimalnim brojem literala na osnovu kojih projektujemo logičku šemu jedno-bitnog sabirača (Sl. 3.1(c)). Jedno-bitni sabirač, koji sabira dva jedno-bitna operanda xi i yi, i bit ulaznog prenosa ci, poznat je pod nazivom potpuni sabirač (FA – Full Adder).

Page 68: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

68

Binarni sabirač se formira rednim povezivanjem potpunih sabirača, tako što izlazni prenos svakog potpunog sabirača služi kao ulazni prenos za potpuni sabirač koji zauzima prvu narednu bitsku poziciju veće težine. Na primer, 8-bitni sabirač se sastoji od osam potpunih sabirača koji su povezani kao na Sl. 3.1(d). U opštem slučaju, n-bitni sabirač, čiji je grafički simbol prikazan na Sl. 3.1(e), može se konstruisati na ovaj način. Kao što se može lako zaključiti, najduže kašnjenje u sabiraču sa rednim prenosom određeno je putanjom od ulaznog prenosa c0, ili bitske pozicije najmanje težine x0 i y0, do izlaznog prenosa cout. Drugim rečima, svaka promena nekog od bita c0, x0 ili y0, mora da se prenese kroz sve potpune sabirače, kako bi se izračunali svi izlazni bitovi.

⊕ ⊕ ⊕

Sl. 3.1 Sabirač sa rednim prenosom: (a) tabela istinitosti potpunog sabirača; (b) Karnoove mape; (c) šematski prikaz

potpunog sabirača; (d) struktura 8-bitnog sabirača; (e) grafički simbol binarnog sabirača.

3.1.2 Sabirač/oduzimač

Po pravilu, oduzimanje binarnih brojeva se obavlja sabiranjem umanjenika i dvojičnog komplementa umanjioca. Dvojični komplement se dobija tako što se, najpre, svaki bit umanjioca komplementira, a zatim doda 1. Dodavanje 1-ce se ostvaruje tako što se prilikom sabiranja umanjenika i komplementiranog umanjioca ulazni prenos sabirača, c0, postavi na 1. S obzirom da se oduzimanje realizuje preko sabiranja, pogodno je konstruisati funkcionalnu jedinicu koja će obavljati obe operacije, sabiranje i oduzimanje.

Sabirač/oduzimač ima dva ulaza, A = an-1 … a0 i B = bn-1 … b0, jedan izlaz F = fn-1 … f0 i jedan selekcioni signal, S. Kada je S=0, sabirač/oduzimač obavlja sabiranje, a kada je S=1 oduzimanje. Funkcionalna tabela sabirača/oduzimača prikazana je na Sl. 3.2(a), a grafički simbol na Sl. 3.2(b). Konačno, kao primer, na Sl. 3.2(c)

Page 69: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Komponente digitalnih sistema

69

je prikazana struktura 8-bitnog sabirača/oduzimača. Kod ovog rešenja, komplementiranje ulaza B realizuje se kao XOR operacija između S i B.

Sl. 3.2 Sabirač/oduzimač: (a) tabela istinitosti; (b) grafički simbol; (c) struktura 8-bitnog sabirača/oduzimača.

3.1.3 Logička jedinica

Uopšteno govoreći, logička jedinica nam omogućava da obavimo jednu od nekoliko logičkih funkcija nad dva proizvoljna n-bitna operanda X=xn-1 … x0 i Y=yn-1 … y0. Binarne logičke operacije se primenjuju na više-bitne operande tako što se logička operacije primeni na svaki par odgovarajućih bitova dva operanda. Na primer, logička AND operacije primenjena na dva 4-bitna operanda 1010 i 1100, daje 4-bitni rezultat 1000. Drugim rečima, uvek kada je izabrana funkcija fi, logička jedinica će izračunati rezultat:

S = fi(X,Y)=fi(xn-1,yn-1) … fi(x0,y0)

S obzirom da logička jedinica, koja je sposobna da izračuna svih 16 Bulovih funkcija koje koriste dva operanda, i nije tako složena, iskoristićemo takvu jednu jedinicu kako bi smo demonstrirali opštu proceduru za projektovanje bilo koje logičke jedinice.

Na Sl. 3.3(a) prikazano je svih 16 Bulovih funkcija koje koriste dve promenljive. Pošto je broj funkcija 16, za izbor jedne od njih, potrebne su četiri binarne promenljive, S3, S2, S1 i S0. Kodiranje selekcionih ulaza je takvo da je Si=1, 0≤i≤3, ako i samo ako je minterm mi u izabranoj funkcije jednak mi=1. Na primer, OR funkcija, izražena kao logička suma minterma ima oblik f14=m3+m2+m1, što znači da je njen kod S3S2S1S0=1110. Uočimo da selekcione promenljive interpretirane kao binarni broj imaju vrednost jednaku indeksu izabrane funkcije. Drugim rečima, za funkciju f14 vrednost S3S2S1S0 je jednaka 1110 što odgovara binarnoj reprezentaciji broja 14.

Pošto svaka selekciona promenjiva kontroliše jedan minterm, logička funkcija koja odgovara logičkoj jedinici za jednu bitsku poziciju je oblika:

si = S0m0+S1m1+S2m2+S3m3 = S0xi’yi’+S1xi’yi+S2xiyi’+S3xiyi

Struktura logičke jedinice za jednu bitsku poziciju prikazan je na Sl. 3.3(b), dok je na Sl. 3.3(c) prikazan grafički simbol n-bitne logičke jedinice. U opštem slučaju, bilo koja n-bitna logička jedinica imaće n identičnih segmenata, koji konkurentno obavljaju istu funkciju nad parovima odgovarajućih bitova dva n-bitna operanda. Na Sl. 3.3(d) prikazan je primer 8-bitne logičke jedinice.

Page 70: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

70

Sl. 3.3 Logička jedinica: (a) funkcije od dve promenljive; (b) realizacije logičke jedinice; (c) grafički simbol; (d) 8-

bitna logička jedinica.

3.1.4 Aritmetičko-logička jedinica

Aritmetičko-logička jedinica (ili ALU prema engleskom nazivu Arithmetic and Logic Unit) je više-funkcijsko, kombinaciono kolo koje može da obavi bilo koju od više različitih aritmetičkih i logičkih operacija nad parom b-bitnih operanada. Pri tome, jedna od raspoloživih operacija bira se preko skupa selekcionih ulaza. Broj i složenost operacija podržanih od strane ALU modula su pitanje izbora projektanta i mogu značajno da variraju od ALU do ALU modula. Tipične aritmetičke operacije, koje se sreću kod većine ALU modula, obično su zasnovane na sabiranju, kao na primer, sabiranje, oduzimanje, inkrementriranje i dekrementiranje. Inkrementiranje je operacija sabiranja sa 1, a dekrementiranje oduzimanja za 1. Međutim, postoje i ALU moduli koji su u stanju da obavljaju i složenje aritmetičke operacije, kao što su množenje, deljenje, stepenovanje, pomeranje, poređenje i dr. Tipične logičke operacije su AND, OR, komplement, XOR.

Postoje dva glavna razloga za projektovanje ALU jedinica u obliku standardnih modula. Prvo, dostupnost univerzalnih aritmetičkih modula omogućava da se isti modul koristi u mnogim različitim primenama, čime se smanjuje broj različitih modula koji se koriste u projektovanju. Drugo, ALU moduli se mogu efikasno koristiti u sistemima, kao što je procesor, kod kojih operacija koju treba obaviti u datom trenutku bira dinamički, od strane upravljačke jedinice procesora.

U ovom odeljku biće izložen postupak projektovanje jedne konkretne 4-bitne ALU jedinice. S obzirom da su aritmetičke operacija zasnovane na sabiranju, ALU se može projektovati tako što će se modifikovati ulazi binarnog sabirača. Logika koja obavlja ovu modifikciju, a tiče se aritmetičkih operacija, zove se aritmetički ekspander (AE), dok se ona koja se koristi za logičke operacije zove logički ekspander (LE). Ekspanderi su povezani su na ulaz sabirača, na način kako je to isprekidanim linijama prikazano na slici. U nastavku će biti izložena procedura projektovanja ekspandera AE i LE na primeru ALU jedinice koja obavlja četiri aritmetičke i četiri logičke operacije.

Page 71: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Komponente digitalnih sistema

71

Sl. 3.4 4-bitni sabirač u spoju sa aritmetičkim (AE) i logičkim (LE) ekspanderima.

Najpre, neophodan je ulaz za izbor režima rada, M, koji će birati aritmetičke ili logičke operacije, tako da pri M=1, ALU obavlja aritmetičke, a pri M=0 logičke operacije. Takođe, potrebne su dve promenljive za izbor operacije, S1 i S0, koje će, u zavisnosti od vrednosti ulaza M, birati jednu od četiri aritmetičkih ili četiri logičkih operacija, na način kako je to definisano funcijskom tabelom sa Sl. 3.5a, za aritmetičke, i tabelom sa Sl. 3.6a, za logičke operacije.

U funkcionalnnoj tabeli sa Sl. 3.5(a), za svaku aritmetičku operaciju, navedene su vrednost izlaza ALU jedinice, F, kao i vrednosti ulaza sabirača, X i Y, i ulaznog prenosa c0 koje su neophodne da bi se dobila odgovarajuća vrednost F. Shodno ovoj tabeli, na ulaz X sabirača uvek se dovodi operand A, dok su na ulazu Y u zavisnosti od izabrane operacije prisutne: sve jedinice, operand B, komplement operanda B, ili sve nule. Vrednosti ulaza Y se generišu uz pomoć AE ekspandera, čija je tabela istinitosti prikazan na Sl. 3.5(b). Ova tabela je dobijena na osnovu funkcionalne tabele sa Sl. 3.5(a) tako što je kolona Y zamenjena kolonama bi i yi. Na Sl. 3.5(c) prikazana je Karnoova mapa AE ekspandera, na osnovu koje sledi izlaz: yi=MS1

’bi+MS0’bi

'. Konačno, struktura AE ekspandera prikazana je na Sl. 3.5(d).

M S1 S0 bi yi 1 0 0 0 1 1 0 0 1 1 1 0 1 0 0 1 0 1 1 1

M S1 S0 Ime funkcije F X Y c0 1 1 0 0 1 1 0 0 Dekrement A-1 A sve jedinice 0 1 1 0 1 0 1 0 1 Sabiranje A+B A B 0 1 1 1 0 0 1 1 0 Oduzimanje A+B'+1 A B' 1 1 1 1 1 0 1 1 1 Inkrement A+1 A sve nule 1 0 X X X 0

(a) (b)

1 1

1 1

00 01 11 10

0

1

S1S0

bi

yi = MS1'bi + MS0'bi’

bi

S0

S1

M

yi

AE

(c) (d)

Sl. 3.5 Aritmetički ekspander: (a) funkcionalna tabela; (b) tabela istinitosti; (c) Karnoova mapa; (d) struktura.

Page 72: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

72

Projektovanje logičkog ekspandera, takođe, započinje funkcionalnom tabelom koja definiše logičke operacije, a koja je prikazana na Sl. 3.6(a). Kao što se može zaključiti analizom ove tabele, za bilo koju logičku operaciju, ulazi Y i c0 sabirača su uvek postavljeni na vrednost 0, dok se na ulaz X postavlja rezultat logičke jednačine koja odgovara izabranoj logičkoj operaciji. Na osnovu funkcionalne tabele sa Sl. 3.6(a), u mogućnosti smo da formiramo tabelu istinitosti logičkog ekspandera, koja je prikazana na Sl. 3.6(b). Na osnovu odgovarajuće Karnoove mape Sl. 3.6(c), sledi logički izraz za jednu bitsku poziciju logičkog ekspandera:

xi=M’S1’S0’ai` +M’S1S0bi+S0aibi+S1ai+Mai

Kombinaciona mreža logičkog ekspandera koja sledi na osnovu dobijenog izraza prikazana je na Sl. 3.6(d).

M S1 S0 Ime funkcije F X Y c0 M S1 S0 xi 0 0 0 Komplement A' A' 0 0 0 0 0 ai' 0 0 1 AND A AND B A AND B 0 0 0 0 1 aibi 0 1 0 Identitet A A 0 0 0 1 0 ai 0 1 1 OR A OR B A OR B 0 0 0 1 1 ai+bi 1 X X ai

(a) (b)

Sl. 3.6 Logički ekspander: (a) funkcionalna tabela; (b) tabela istinitosti; (c) Karnoova mapa; (d) struktura.

Nakon obavljenog projektovanja aritmetičkog i logičkog ekspandera, ALU jedinica formira se povezivanjem AE i LE ekspandera sa binarnim sabiračem, na način kao što je prikazano na Sl. 3.7(a). Uočimo da se kod ALU jedinice, logičke operacije obavljaju u logičkim ekspanderima, a da potpuni sabirači (FA) propuštaju na izlaz F rezultat LE ekspandera bez ikakve promene. Drugim rečima, prilikom obavljanja logičkih operacija potpuni sabirači se koriste kao veze sa fiksnim propagacionim kašnjenjem.

Uočimo, takođe, da prlikom izvršenja aritmetičkih operacija nad neoznečenim brojnim vrednostima, signal izlaznog prenosa iz pozicije najveće težine ukazuje na prekoračenje. Za slučaj aritmetičkih operacija nad označenim brojevima (predstavljenim u obliku dvojičnog komplementa), uslov prekoračenja je drugačiji i formira se kao XOR operacija izlaznih prenosa iz dve bitske pozicije najveće težine. Ako je neophodno, 4-bitna ALU jedinica sa slikaa se može proširiti na n-bitnu ALU jedinicu, korišćenjem n-bitnog sabirača u spoju sa n aritmetičkih i n logičkih ekspandera. Grafički simbol ovakve ALU jedinice prikazan je na Sl. 3.7(b). Većina ALU jedinica, koje se koriste u praksi, konstruišu se na opisani način, osim što se razlikuju po tipu i broju aritmetičkih i logičkih operacija koje podržavaju.

Page 73: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Komponente digitalnih sistema

73

(a)

(b)

Sl. 3.7 ALU modul: (a) 4-bitna ALU; (b) grafički simbol.

3.1.5 Dekoderi

Dekoderi su digitalna kola koja se koriste za dekodiranje kodiranih informacija. Binarni dekoder, predstavljen na Sl. 3.8, je digitalno kolo sa n ulaza za binarno kodirani podatak i 2n binarnih izlaza, pri čemu svakom izlazu odgovara jedna kombinacija n logičkih vrednosti na ulazu. Dodatni ulaz za dozvolu rada, E, upravlja izlazom dekodera na sledeći način: ako je E=0, tada ni jedan izlaz dekodera nije aktivan; ako je E=1, aktivan je samo izlaz yi, gde je i ceo broj jednak binarnoj vrednosti ulaza wn-1, ..., w1, w0. (Ime ulaza E potiče od engleske reči Enable koja znači dozvola). Ovo kolo se zove binarni dekoder n-u-2n ili n-to ulazni binarni dekoder.

Sl. 3.8 Binarni dekoder n-u-2n.

Na Sl. 3.9 je prikazan binarni dekoder 1-u-2. Grafički simbol ovog dekodera se može videti na Sl. 3.9(a), a tabela istinitosti na Sl. 3.9(b). Dekoder 1-u-2 ima jedan ulaza za podatak w0, ulaz za dozvolu rada E i dva izlaza y1 i y0. Sve dok je E=1, važi: y0=1 za w0=0 ili y1=1 za w0=1. Logičke jednačine koje definišu dekoder 1-u-2 su oblika:

y0 = E·w0`

y1 = E·w0

Logička šema dekodera 1-u-2 prikazana je Sl. 3.9(c).

Sl. 3.9 Dekoder 1-u-2: (a) grafički simbol; (b) tabela istinitosti; (c) logička mreža.

Page 74: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

74

Dekoder 2-u-4 je predstavljen na Sl. 3.10(a). Uočimo da dekoder 2-u-4 ima dva ulaza za podatak, w1 i w0, ulaz za dozvolu rada, E, i četiri izlaza, y0, ..., y3. Kao što je već objašnjeno, funkcija ovog dekodera je da dekodira binarni broj postavljen na ulazima w1 i w0 i postavi 1 na izlaz čiji je indeks jednak tom broju. Ponašanje dekodera 2-u-4 definisano je sledećim sistemom logičkih jednačina:

y0 = E·w1`w0`

y1 = E· w1`w0

y2 = E· w1w0`

y3 = E· w1w0

Sl. 3.10 Dekoder 2-u-4: (a) grafički simbol; (b) tabela istinitosti; (c) logička mreža.

U opštem slučaju, dekoder n-u-2n može se konstruisati na osnovu sistema logičkih jednačina:

yi = E·mi, i = 0, ..., 2n, (3.1)

gde je mi i-ti minterm n ulaznih promenljivih wn-1, ...., w0.

Na izlazu dekodera, pod uslovom da je njegov rad dozovljen, postoji samo jedna jedinica. Za izlaz na kome je prisutna jedinica kažemo da je aktivan. Ovo važi za dekodere sa aktivnim visokim naponskim nivoom na izlazu. Međutim, u upotrebi su i dekoderska kola sa aktivnim niskim naponskim nivoom na izlazu. Kod takvih dekodera, nula je prisutna na jednom izlazu, koji je izabran binarnom kombinacijom na ulazu, dok su na svim ostalim izazima prisutne jednice. Grafički simbol dekodera 2-u-4 sa aktivnim niskim naponskim nivoom na izlazu prikazan je na Sl. 3.11(a). Uočimo da je aktivan nizak naponski nivo naznačen kružićim na izlaznim priključcima dekodera. Tabela istinitosni ovog dekodera je prikazana na Sl. 3.11(b), a logička mreža na Sl. 3.11(c). Uočimo da je logička mreža, po strukturi, identična onoj sa Sl. 3.10(c), s tom razlikom što se sada umesto AND koriste NAND kola.

Sl. 3.11 Dekoder 2-u-4 sa aktivnim niskim naponskim nivoom na izlazu.

PRIMER 3.1 Sinteza prekidačkih funkcija na bazi dekodera.

Shodno jednačini (3.1), dekoder n-u-2n se ponaša kao generator minterma od n promenljivih. Kada je rad dekodera dozvoljen, svaki izlaz dekodera se aktivira tačno jednom vrstom tabele istinitosti od n promenljivih. Ako je logička funkcija zadata u obliku tabele istinitosti ili skupom decimalnih indeksa, tada se ona može direktno realizovati pomoću dekodera u vidu kanoničke sume-proizvoda.

Na primer, razmotrimo funkciju f zadatu skupom decimalnih indeksa ∑ )5,3,2,0( . Karnoova mapa

funkcije f prikazana je na Sl. 3.12(a), a realizacija ove funkcije u obliku minimalne sume-proizvoda na Sl. 3.12(b). Ista funkcija se može realizovati pomoću dekodera 3-u-8, koji generiše sve moguće minterme od tri promenljive, i jednog OR kola, koje sumira minterme funkcije f, kao što je prikazano na Sl. 3.12(c). Na ovaj način, korišćenjem dekodera odgovarajuće veličine, moguće je realizovati proizvoljnu prekidačku funkciju.

Page 75: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Komponente digitalnih sistema

75

3.1.5.1 Dekoderske mreže

Shodno jednačini (6.1) binarni dekoder n-u-2n se može realizovati pomoću 2n n-to ulaznih AND gejtova. Međutim, sa povećanjem n ukupan broj gejtova i broj ulaza u gejtove postaju ograničavajući faktor, tako da se dekoderi sa većim brojem ulaza obično realizuju u vidu dekoderskih mreža sačinjenih od više manjih dekodera. Razmotrićemo dve tehnike konstrukcije dekoderskih mreža: koincidentno dekodiranje i hijerarhijsko dekodiranje.

Koincidentno dekodiranje

U cilju ilustracije koncepta koincidentnog dekodiranja, razmotrimo realizaciju 8-ulaznog binarnog dekodera pomoću 4-ulaznih binarnih dekodera (Sl. 3.13). Neka su W=w7w6...w0 osam ulaz, a Y= y255y254...y0 256 izlazi dekoderske mreže 8-u-256. Najpre, podelimo ulaze u dve grupe: WH=w7w6w5w4 i WL=w3w2w1w0. Za realizaciju dekoderske mreže koristimo dva dekodera 4-u-16, kao na Sl. 3.13. Grupa ulaza WH se dekodira pomoću jednog, a grupa ulaza WL pomoću drugog 4-ulaznog dekodera. Neka su H=h15h14...h0 i L=l15l14...l0 16-to bitni izlazi ovih dekodera. Izlazi dekoderske mreže 8-u-256 formiraju se pomoću 256 2-ulaznih AND kola, tako što se svako AND kolo povezuje sa jednim parom signala (hi, lj). Izlazu yk odgovara izlaz AND kola čiji su ulazi hi i lj, pri čemu važi: k = 24× i + j. Na primer, izlaz y36 odgovara AND kolu čiji su ulazi h2 i l4, s obzirom da važi: 36 = 24×2 + 4. Uočimo da je ulaz za dozvolu rada dekoderske mreže, E, povezan sa ogovarajućim ulazom jednog od dekodera 4-u-16, dok je ulaz za dozvolu rada drugog dekodera postavljen na 1. Ako je E=1, tada su svi izlazi iz jednog dekodera jednaki 0, što uslovljava yi=0 za svako i.

U opštem slučaju, n-to ulazni koincidenti dekoder se realizuje pomoću dva n/2 – ulazna binarna dekodera i 2n 2-ulaznih AND kola, na način kako je to prikazano na Sl. 3.14.

PRIMER 3.1 (nastavak …)

Sl. 3.12 Sinteza funkcije ∑ )5,3,2,0( : (a) Karnoova mapa; (b) logička mreža; (c) realizacija pomoću dekodera

3-u-8.

Iako je opisana tehnika sinteze gotovo trivijalna, ona postaje izrazito neefikasna u slučajevima kada je broj promenljivih veći od nekoliko. Broj minterma, a time i složenost dekodera, raste eksponencijalno sa povećanjem broja promenljivih, tako da će za tipčnu funkciju od većeg broj promenljivih, od svih generisani minterma biti iskorišćen tek mali deo. Međutim, ima punog smisla koristiti dekoder za realizaciju sistema prekidačkih funkcija, s obzirom na mogućnost da se isti mintermi koriste kod više različitih prekidačkih funkcija. Na primer, na slici je prikazano kako se jedan dekoder 3-u-8 i tri OR kola mogu iskoristiti za realizaciju tri različite prekidačke funkcije od istih ulaznih promenljivih.

Danas se dekoderi retko koriste za sintezu prekidačkih funkcija na način koji je opisan u ovom primeru. Međutim, izloženi koncept, sinteze zasnovan na sumiranju generisanih minterma, ili u opštem slučaju, sumiranju generisanih produktnih članova, predstavlja osnovu programabilnih logičkih kola, kao što su ROM, PLA i PAL strukture. Programabilna logička kola biće razmatrana u poglavlju X.

Page 76: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

76

Sl. 3.13 8-ulazni koincidentni dekoder.

Sl. 3.14 n-to ulazni koincidentni dekoder.

Hijerarhijsko dekodiranje

Druga tehnika za konstrukciju većih dekodera je hijerarhijsko dekodiranje. Radi ilustracije ove tehnike razmotimo realizaciju binarnog dekodera 16-u-4 pomoću dekodera 2-u-4. Kao i kod koincidentnog dekodiranja, ulazi dekoderske mreže, W=w3w2w1w0, se dele u dve grupe: WH=w3w2 i WL=w1w0. Na osnovu ove podele, možemo realizovati dvo-nivolsku mrežu koja se sastoji iz jednog dekodera 2-u-4 u prvom i četiri dekodera 2-u-4 u drugom nivou, kao što je prikazano na Sl. 3.15. Grupa ulaza WH se dekodira u prvom, a grupa ulaza WL u drugom nivou. Šesnaest izlaza dekoderske mreže su raspoređeni u 4 grupe od po 4 izlaza, gde se svaka grupa generiše na izlazima jednog dekodera sa drugog nivoa. Princip rada je sledeći: Dekodiranjem ulaza WH, dekodera sa prvog nivoa, dozvoljava rad jednog dekodera sa drugog nivoa, koji dekodiranjem ulaza WL aktivira jedan od svojih izlaza. Na primer, ako je W=0110, tada je WH=01, a WL=10. To znači da će dekoder DEC dozvoliti rad dekoderu DEC1‚ koji s obzirom na WL=10 aktivira svoj izlaz sa indeksom 2, što odgovara izlazu dekoderske mreže y4x1+2=y6. Uočimo da je ulaz za dozvolu rada dekoderske mreže, E, povezan sa odgovarajućim ulazom dekodera sa prvog nivoa. Ako je E=0, tada su svi izlazi dekodera DEC postavljeni na 0. To znači da je rad svih dekodera sa drugog nivoa zabranjen i da su na svim izlazima dekoderske mreže prisutne nule.

Page 77: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Komponente digitalnih sistema

77

Sl. 3.15 4-ulazni hijerarhijski dekoder.

U opštem slučaju, n-to ulazni dekoder se može realizovati u vidu dvo-nivolske dekoderske mreže sa jednim (n/2)-ulaznim dekoderom u prvom i 2n/2 (n/2)-ulaznih dekodera u drugom nivou.

Takođe, hijerarhijska dekoderska mreža može imati više od dva nivoa. Na primer, ako za projektovanje koristimo dekodere 1-u-2, dekoder n-u-2n, imaće 2n-1 dekodera 2-u-1, raspoređenih u n nivoa tako da se na svakom nivo dekodira jedan ulazni bit. Drugim rečima, ulaz najveće težine dekodira se jednim dekoderom 1-u-2, sledeći ulaz manje težine dekodira se sa dva dekodera 1-u-2, i tako dalje, sve do ulaza najmanje težine koji se dekodira sa n/2 dekodera 1-u-2. Izlazi dekodera sa određenog nivoa se koriste kao signali dozvole jednog od dekodera sa sledećeg nivoa. Znači, na svakom sledećem nivou, broj dekodera će biti dva puta veći u odnosu na prethodni nivo. Kao primer opisanog postupka konstrukcije dekodera n-u-2n, na Sl. 3.16 je prikazan dekoder 3-u-8 realizovan na bazi dekodera 1-u-2.

Sl. 3.16 3-ulazni hijerarhijski dekoder 3-u-8.

U opštem slučaju, n-to ulazni dekoder se može ralizovati u obliku hijerarhijske mreže k-ulaznih dekodera raspoređenih u r nivoa, pri čemu važi n=rk. n ulaza dekoderske mreže se deli na r grupa od po k ulaza, pri čemu se svaka takva grupa dekodira u jednom nivou. Prvi novo sadrži jedan dekoder, a broj dekodera u svakom sledećem nivou je 2k puta veći od broj dekodera u prethodnom nivou. Ukupan broj k-ulaznih dekodera potrebih za realizaciju n-to ulazne dekoderske mreže iznosi:

1 + 2k + 22k + ... + 2(r-1)k = (2n – 1)/(2k – 1)

Na primer, za n=12 i k=4, broj nivoa je r=3, a broj 4-ulaznih dekodera (212 – 1)/(24 – 1) = 273.

Page 78: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

78

3.1.6 Mulitiplekseri

Multiplekser, često u oznaci MUX, je digitalni preklopnik – tj. kolo koje omogućava da se jedan od n izvora podataka logički poveže na zajedničko odredište. Multiplekser ima veći broj ulaza za podatke, jedan ili više selekcionih ulaza i jedan izlaz. Vrednost selekcionih ulaza određuje (tj. bira) jedan od ulaza za podatke čija se vrednost, u datom trenutku, prenosi na izlaz. Na Sl. 3.17(a) je prikazan grafički simbol multipleksera 2-u-1. Ako je s=0, izlaz multipleksera biće f=w0; ako je s=1, izlaz multipleksera je f=w1. Multiplekser 2-u-1 je po funkciji analogan elektro-mehaničkom dvo-položajnom prekidaču sa Sl. 3.17(b), kod koga signal s upravlja položajem preklopnika. Ponašanje multipleksera 2-u-1 opisano je tabelom istinitosti sa Sl. 3.17(c), na osnovu koje lako možemo izvesti logički izraz oblika suma-proizvoda: f=s`w0 + sw1. Ovom izrazu odgovara logička mreža sa Sl. 3.17(d). Na Sl. 3.17(e) je prikazano kako se multiplekser 2-u-1 može realizovati pomoću transmisionih gejtova.

(a) (b) (c)

(d) (e)

Sl. 3.17 Multiplekser 2-u-1: (a) grafički simbol; (b) analogija sa elektromehaničkim preklopnikom; (c) tabela istinitosti; (d) logička mreža; (e) realizacija pomoću transmisionih gejtova.

Na Sl. 3.18(a) je prikazan jedan veći multiplekser, sa četiri ulaza za podatke, w0, …, w3 i dva selekciona ulaza s1 i s0. Kao što se može videti iz tabele istinitosti sa Sl. 3.18(b), kombinacija selekcionih ulaza (s1, s0), interpretirana kao binarna celobrojna vrednost i, za prosleđivanje na izlaz f bira ulaz wi. Multiplekseru 4-u-1 odgovara sledeći logički izraz oblika suma-proizvoda:

f = s1`s0`w0 + s1`s0w1 + s1s0`w2 + s1s0w3

Ovom izrazu odgovara logička mreža sa Sl. 3.18(c).

(a) (b)

(c)

Sl. 3.18 Multiplekser 4-u-1: (a) grafički simbol; (b) tabela istinitosti; (c) logička mreža.

Korišćenjem istog principa, moguće je realizovati i veće multipleksere. Obično, broj ulaza za podatke, n, je stepen broja 2. Multiplekser n-u-1 zahteva n2log selekcionih ulaza. Veći multiplekseri se takođe mogu

realizovati pomoću manjih multipleksera. Na primer, multiplekser n-u-1, gde je n stepen broja 2, može se

Page 79: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Komponente digitalnih sistema

79

konstruisati pomoću n-1 multipleksera 2-u-1 raspoređenih u n2log nivoa. Svaki od n/2 multiplekser sa prvog

nivoa bira između dva izvora podataka, dok svaki od n/4 multiplekser sa drugog nivoa bira između dva multiplekserska izlaza sa prvog nivoa. Drugim rečima, na svakom nivou, nakon prvog, svaki multiplekser se koristi za izbor između dva izlaza generisana od strane multipleksera sa prethodnog nivoa. Konkretno, za realizaciju multipleksera 8-u-1 potrebna su 8-1=7 multipleksera 2-u-1, a broj nivoa je 3. Na Sl. 3.19(a) je prikazana tabela istinitosti, a na Sl. 3.19(b) realizacija multipleksera 8-u-1 pomoću multipleksera 2-u-1.

Sl. 3.19 Multiplekser 8-u-1: (a) tabela istinitosti: (b) struktura.

Na Sl. 3.20(a) prikazan je grafički simbol multipleksera 2xm-u-m. Ovaj simbol na kompaktan način predstavlja strukturu od m paralelno povezanih multipleksera sa Sl. 3.20(b). Pomoću multipleksera 2xm-u-m omogućen je izbor jednog od dva m-bitna operanda. U opštem slučaju, multiplekser kxm-u-m sastoji se iz m multipleksera k-u-1 sa zajedničkim selekcionim ulazima.

(a) (b)

Sl. 3.20 Multiplekser 2xm-u-m: (a) grafički simbol; (b) struktura.

Multiplekser 8-u-1 se može realizovati i na način koji je prikazan na Sl. 3.21. U ovom slučaju, za dekodovanje selekcionih signal koristi se dekoder 3-u-8. Iako ovo rešenje izgleda jednostavno, ono, međutim, nije lako proširljivo. Drugim rečima, broj i veličina gejtova u dekoderu, kao i veličina izlaznih OR gejtova raste sa povećanjem broja ulaza u multiplekser. S obzirom da se gejtovi velikim brojem ulaza realizuju kao stabla gejtova, cena i kašnjenje se značajno povećavaju. Iz tog razloga, rešenje sa Sl. 3.14 se koriste samo za male vrednosti n, dok se multiplekseri za veće vrednosti n konstruišu ranije opisanom metodom, korišćenjem više nivoa multipleksera 2-u-1 ili 4-u-1.

Page 80: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

80

Sl. 3.21 Alternativno rešenje multipleksera 8-u-1: (a) tabela istinitosti; (b) realizacija na bazi dekodera.

3.1.7 Magistrale

U prethodnom odeljku opisana je konstrukcija multipleksera pomoću logičkih kola. Iako je takav tip multipleksera u širokoj primeni, upotreba multipleksera sa velikim brojem ulaza može predstavljati problem, s obzirom da veliki broj veza mora biti doveden do jednog mesta u sistemu, tamo gde je postavljen multiplekser. Na sreću, za rešenje ovog problema postoji jedno elegantno rešenje, koje se zove magistrala. Za konstrukciju magistrale koristi se komponenta koja se zove tro-statički bafer (ili tro-statički drajver) koja ima tri različita stanja na izlazu: 0, 1 i Z. Vrednost Z predstavlja stanje visoke impedanse, koje se kod svih praktičnih primena može smatrati prekidom veze.

PRIMER 3.2 Krozbar prekidač

Na Sl. 3.22(a) prikazano je kolo sa dva ulaza, x1 i x2, i dva izlaza, y1 i y2. Kao što je naznačeno isprekidanim linijama, kolo obezbeđuje kontrolisanu vezu između ulaznih i izlaznih priključaka, tj. omogućava da bilo koji ulaz može biti povezan na bilo koji izlaz. U opštem slučaju, kolo ovog tipa, sa n ulaza i k izlaza, čija je jedina funkcija da obezbedi spregu bilo koji ulaz sa bilo kojim izlazom, zove se krozbar prekidač nxk. Ako postoje dva ulaza i dva izlaza, radi se o krozbar prekidaču 2x2.

Na Sl. 3.22(b) je prikazana realizacija krozbar prekidača 2x2 pomoću multipleksera 2-u-1. Selekcioni ulazi oba multipleksera povezana su na ulazni signal s. Ako je s=0, krozbar povezuje x1 na y1 i x2 na y2; za s=1, veze su ukrštene, tako da se podatak sa ulaza x1 sprovodi na izlaz y2, a podatak sa ulaza x2 na izlaz y1. Krozbar prekidači su korisna kola koja nalaze primenu svuda tamo gde je neophodno povezati dva skupa veza, pri čemu se način sprege menja s vremena na vreme.

Sl. 3.22 Jedna primena multipleksera.

Page 81: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Komponente digitalnih sistema

81

Sl. 3.23 Realizacija magistrale : (a) simbol tro-statičkog bafera; (b) tabela istinitosti tro-statičkog bafera; (c) dvo-ulazna magistrala; (d) tabela istinitosti dvo-ulazne magistrale; (e) četvoro-ulazna magistrala; (f) tabela istinitosti

četvoro-ulazne magistrale.

Kao što se može videti sa Sl. 3.23(a) i (b), tro-statički bafer ima liniju podataka D, liniju dozvole, E, i izlaznu liniju, Y. Uvek kada je E=1, vrednost na izlazu je identična ulazu, Y=D. Suprotno, za E=0, izlaz je u stanju visoke impedanse, Y=Z, bez obzira na vrednost koja je prisutna na ulaznoj liniji podataka. Drugim rečima, za E=1 tro-statički bafer se ponaša kao zatvoren, a za E=0 kao otvoren prekidač.

Magistralu čini skup tro-statičkih bafera, od kojih svaki služi za spregu jednog izvora podataka na zajedničku magistralu. Pošto u jednom vremenu najviše jedan izvor može pobuđivati magistralu, jer bi u suprotnom došlo do konflikta na magistrali, neophodno je obezbediti da u svakom trenutku najviše jedan tro-statički bafer bude aktivan (E=1).

Pošto ima n ulaza podataka, ali u svakom trenutku dozvoljava prenos samo jednog podatka na zajedničku magistralu, magistrala je, po funkciji, ekvivalentna multiplekseru. Na primer dvo-ulazna magistrala, prikazana na Sl. 3.23(c) ima dve linije podataka D0 i D1 i jednu adresnu liniju, S, tako da je za S=0, Y jednako D0, dok je za S=1, Y jednako D1. Uočimo da je tabela istinitosti dvo-ulazne magistrale, prikazana na Sl. 3.23(d), identična tabeli istinitosti dvo-ulaznog multipleksera. Primenom istog principa, možemo konstruisati magistrale sa većim brojem ulaza, kao što je četvoro-ulazna magistrala prikazana na Sl. 3.23(e), kojoj odgovara tabela istinitosti sa Sl. 3.23(f). Kao što se može videti, ova magistrala sadrži dekoder 2-u-4 koji konvertuje dve adresne linije S1 i S0 u četiri linije za dozvolu od kojih svaka upravlja jednim od četiri tro-statička bafera koji pobuđuju magistralu.

U opštem slučaju, magistrale se lako realizuju i lako modifikuju kada je se javi potreba da se doda novi izvor podataka ili “obriše” stari. Iz tog razloga, magistrale se često koriste za povezivanje većeg broja izvora podataka na zajedničku liniju, bilo da se radi o mikročipu, štampanoj ploči ili lokalnoj računarskoj mreži.

Page 82: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

82

3.1.8 Demultiplekser

Kao što je rečeno u odeljku 3.1.6, multiplekser je digitalno kolo sa jednim izlazom, n ulaza za podatke i n2log

selekcionih ulaza. Namena multipleksera je da multipleksira n ulaza za podatke preko jedinstvenog izlaza za podatak, pod kontrolom selekcionih ulaza. Kolo koje obavlja suprotnu funkciju – vrednost sa jedinstvenog ulaza za podatak prosleđuje na jedan od više izlaza za podatke, zove se demultiplekser.

Na Sl. 3.24(a) je prikazan grafički simbol demultipleksera 4-u-1. Kao što se vidi iz tabele istinitosti sa Sl. 3.24(b), binarna kombinacija vrednosti selekcionih ulaza s1 i s2 bira jedan od četiri izlaza, y0, ..., y3, na koji se prenosi vrednost jedinstvenog ulaza za podatak, d. Demultiplekser 1-u-4 se može realizovati pomoću dekodera 2-u-4, kao što je prikazano na Sl. 3.24(c). U ovom slučaju, ulaz E dekodera se koristi kao ulaz za podatak demultipleksera, dok su izlazi dekodera izlazi za podatke demultipleksera. Binarna kombinacija w1w0 određuje izlaz koji će biti postavljen na vrednost E. Ako je E=0, tada će svi izlazi dekodera biti 0, uključujući i izlaz koji je izabran kombinacijom w1w0; ako je E=1, tada kombinacija w1w0 postavlja 1 na odgovarajući izlaz. Dakle, uvek važi y(w1w0) = E.

Sl. 3.24 Demultiplekser 1-u-4: (a) grafički simbol; (b) tabela istinitosti; (c) dekoder 2-u-4 kao demultiplekser 1-u-4.

3.1.9 Koderi

Koder je digitalno kolo koje ima suprotnu funkciju od dekodera. Namena kodera je da kodira ulaynu informaciju u kompaktniji oblik.

3.1.9.1 Binarni koderi

Binarni koder 2n-u-n (Sl. 3.26) kodira (transformiše) informaciju od 2n bita u n-bitnu kodnu reč. Sa ograničenjem da u bilo kom trenutku samo jedan od 2n ulaza može imati vrednost 1, na izlazu binarnog kodera generiše se n-bitni binarni broj koji ukazuje na indeks ulaza čija je vrednost 1. Na Sl. 3.26(a) je prikazana tabela istinitosti kodera 4-u-2. Tabela istinitosti je nepotpuna, jer sadrži samo one slogove koji su dozvoljeni na ulazu binarnog kodera. Za sve ostale slogove, odziv kodera je nedefinisan. Uočimo da izlaz y0 ima vrednost 1 ako je w1=1 ili w3=1. Slično, izlaz y1 ima vrednost 1, ako je w2=1 ili w3=1. Na osnovu ovog zapažanja možemo konstruisati logičku mrežu binarnog kodera 4-u-2 prikazanu na Sl. 3.26(b). U opštem slučaju, binarni koder 2n-u-n može se

PRIMER 3.3 Vremenski multipleks

Par multiplekser-demultiplekser se može koristiti za prenos informacije od n izvora do n odredišta preko jedinstvene komunikacione linije, kao što je to za slučaj n=8, prikazano na Sl. 3.25. Multiplekser bira jedan od n izvora i prenosi podatak tog izvora na komunikacionu liniju. Na drugom kraju linije, demultiplekser usmerava primljeni podatak ka jednom od n odredišta. Izbor para izvor-odredište obavlja se preko selekcionih ulaza multipleksera i demultipleksera. Ovakav način prenosa informacija zove se vremenski multipleks. Uz ograničenje da u bilo kom trenutku može postojati direktna sprega samo jednog para izvor-odredište, vremenski multipleks omogućava značajno smanjenje broja potrebnih prenosnih linija, što može predstavljati značajnu uštedu, naročito ako je rastojanje između izvori i odredišta podataka veliko.

Sl. 3.25 Princip vremenskog multipleksa.

Page 83: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Komponente digitalnih sistema

83

realizovati pomoću n (2n-1)-to ulaznih OR kola. Svako OR kolo postavlja jedan izlaz. Ulaz wi je povezan sa j-tim OR kolom ako j-ti bit u binarnoj reprezenaciji indeksa i ima vrednost 1.

Sl. 3.26 Binarni koder 2n-u-n.

(a) (b)

Sl. 3.27 Binarni koder 4-u-2: (a) tabela istinitosti; (b) kolo.

3.1.9.2 Prioritetni koderi

Kod binarnog kodera opisanog u prethodnom odeljku postoji ograničenje da u bilo kom trenutku najviše jedan ulaz sme biti aktivan. Ako se ovo ograničenje ne poštuje, u slučajevim kada je aktivno više od jednog ulaza, izlaz kodera biće pogrešan. Međutim, u mnogim primenama ovo ograničenje se ne može nametnuti. U takvim slučajevima, umesto kodera treba koristiti prioritetni koder.

Kod prioritetnog kodera, svakom ulazu je dodeljen prioritet, a izlaz kodera, interpretiran kao binarni broj, ukazuje na indeks aktivnog ulaza najvišeg prioriteta. Za sve vreme dok je aktivan ulaz visokog prioriteta, svi ulazi nižeg prioriteta se ignorišu. Na Sl. 3.29 je prikazana tabela istinitosti prioritetnog kodera 4-u-2, pod pretpostavkom da ulaz w3 ima najviši, a w0 najniži prioritet. Izlazi y1 i y0 predstavljaju binarni broj koji identifikuje ulaz navišeg prioriteta koji ima vrednost 1. Pošto je moguće da ni jedan ulaz nema vrednost 1, predviđen je još jedan, dodatni izlaz, z koji treba da ukaže na ovu sitaciju. Naime, ako je barem jedan ulaz jednak 1, tada je z=1; inače, ako ni jedan ulaz nije jednak 1, važi z=0.

Sl. 3.29 Tabela istinitosti prioritetnog kodera 4-u-2.

PRIMER 3.4 Jedna primena binarnog kodera

Na Sl. 3.28 je prikazan osmo-položajni mehanički preklopnik. Preklopnik ima 8 izlaza koji u kodu 1-od-8 kodiraju položaj kližača. U ovoj primeni, binarni koder 8-u-3 se koristi za kodiranje položaj klizača u oblik trobitnog celog broja.

Sl. 3.28 Primena binarnog kodera.

Page 84: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

84

Rad prioritetnog kodera se najlakše može razumeti ako najpre razmotrimo poslednju vrstu u tabeli istinitosti. Ova vrsta kazuje da ako je w3=1, izlaz se postavlja na y1y0=11. Pošto ulaz w3 ima najviši prioritet, vrednosti ulaza w2, w1 i w0 nisu od značaja. Da bi se ukazalo na činjenicu da su njihove vrednosti irelevantne, promenljive w2, w1 i w0 su označene simbolom X. Pretposlednja vrsta u tabeli istinitosti kazuje da se za w2=1 izlazi postavljaju na y1y0=10, ali samo ako je pri tome w3=0. Slično, ulaz w1 uslovljava da izlaz bude postavljen na y1y0=01, ali samo pod uslovom da važi w3=w2=0. Konačno, ulaz w0 se kodira na izlazu binarnom kombinacijom y1y0=00, ali samo pod uslovom da je w0 jedini aktivan ulaz.

Sl. 3.30 Realizacija prioritetnog kodera.

Prioritetni koder 2n-u-n se može realizovati kombinovanjem dva modula kao na Sl. 3.30. Prvi modul je kolo za razrešavanje prioriteta koje menja na 0 sve ulaze čija je vrednost 1, osim onog čiji je prioritet najviši. Drugi modul je standardni binarni koder. Modul za razrešavanje prioriteta definisan je sledećim skupom logičkih jednačina:

zi = ii xxxx nn''

22

'

12K−− , i=0, 1, ..., 2n-1

Prethodni izraz kaže da aktivan ulaz xi zadržava vrednost 1 samo ako su svi ulazi višeg prioriteta jednaki 0.

(a) (b)

Sl. 3.31 Modul za razrešavanje prioriteta: (a) paralelna realizacija; (b) iterativna realizacija.

Modul za razrešavanje prioriteta se može realizovati u obliku logičke mreže sa Sl. 3.31(a). Kod ove realizacije, izlaz i se generiše pomoću AND kola sa 2n-i ulaza. Ovakvo rešenje je adekvatno za module sa malim brojem ulaza, ali je nepraktično za veće module, s obzirom da zahteva AND kola sa velikim brojem ulaza. Na Sl. 3.31(b) je prikazana iterativna implementacija istog kola, koja je pogodna za veći broj ulaza, mada ispoljava veće kašnjenje. Ovo rešenje je zasnovano na umnožavanju ćelija definisanih logičkim jednačinama:

ci-1 = ci + xi

zi = ci`xi

Prosto, xi=1 postavlja ci-1 na 1, što isključuje sve ulaze nižeg prioriteta.

Hijerajhijska realizacija prioritetnog kodera

Ako za realizaciju prioritetnog kodera sa većim brojem ulaza koristimo binarne kodere 2-u-1, postupamo na sledeći način: Najpre, ulaze grupišemo u parove i svaki par ulaza kodiramo jednim prioritetnim koderom 2-u-1. Na taj način formiramo prvi nivo kodiranja, koji sadrži ukupno n/2 kodera 2-u-1, koji na svojim izlazima A

Page 85: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Komponente digitalnih sistema

85

generišu n/2 kandidata za adresni bit najmanje težine x0. Jedan od ovih kandidata biće izabran multiplekserom (n/2)-u-1. Generisanje sledećeg težeg adresnog bita, A1, zahteva kodiranje n/2 izlaza z iz svih kodera sa prvog nivoa. To se radi tako što se ovi z izlazi grupišu u parove i svaki par kodira jednim koderom 2-u-1. Za ovaj drugi nivo kodiranja koristimo n/4 prioritetnih kodera 2-u-1 i multiplekser (n/4)-u-1 koji treba da izabere vrednost adresnog bita x1. Ovih n/4 kodera generišu n/4 izlaza z koji se dalje kodiraju kako bi se dobio adresni bit x2. Opisana procedura se ponavlja sve dok ne preostane samo jedan izlaz z.

Na svakom nivou kodera koristimo multipleksere 2-u-1 kao bi smo izabrali odgovarajući adresni bit. Svaki multiplekser bira jedan od izlaza iz grupe od dva kodera korišćenjem koda njihovih z izlaza kao linija za selekciju. Na primer, na Sl. 3.32(b) je prikazana realizacija prioritetnog kodera 8-u-3 koja koristi kodere 2-u-1 i multipleksere 2-u-1. Tabele istinitosti ovog kodera prikazana je na Sl. 3.32(a). Na Sl. 3.32(c) prikazan je drugi način za realizaciju prioritetnog kodera 8-u-3 koji koristi dva kodera 4-u-2, jedan koder 2-u-1 i jedan multiplekser 2-u-1.

Sl. 3.32 Prioritetni koder 8-u-3: (a) tabela istinitosti; (b) realizacija pomoću kodera 2-u-1 i multipleksera; (c)

realizacija na bazi kodera 4-u-2.

PRIMER 3.5. Selekcija prekidnih signala pomoću prioritetnog kodera U ovoj primeni, prioritetni koder se koristi za izbor jednog od više događaja koji se mogu desiti u isto vreme. Izabrani događaj se predstavlja binarnim celim brojem. Na primer, kod računarskih sistema različiti periferijski uređaji, putem prekidnih signala, obraćaju se procesoru zahtevima za opsluživanjem. S obzirom da više ovakvih zahteva može biti aktivno u isto vreme, neophodno je izabrati jedan koji će biti opslužen. Kao što je prikazano na Sl. 3.33, prioritetni koder se koristi za identifikaciju prekidnog signala najvišeg prioriteta.

Sl. 3.33 Primena prioritetnog kodera za izbor signala prekida.

Page 86: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

86

3.1.10 Komparatori magnitude

Većina programskih jezika poseduje relacione operatore koji nam omogućavaju da ispitamo izvesne uslove kako bi smo odredili kada određene akcije treba preduzeti. Kod programskih jezika, uslovi se predstavljaju u obliku relacije između dva entiteta, X i Y, koji mogu biti konstante, promenlive ili aritmetički izrazi. Relacioni izrazi se formiraju uz pomoć tri osnovna operatora: veće (X>Y), jednako (X=Y) i manje (X<Y). Takođe, za svaki od ovih operatora postoji komplementarni operator. Operator “veće ili jednako” (X≥Y) je komplement od “manje”, “manje ili jednako” (X≤Y) je komplement od “veće”, dok je “različito” (X≠Y) komplement od “jednako”. Rezultat bilo kog od navedenih operatora je logička promenljiva koja može imati vrednost 0 ili 1.

Za izračunavanje realicionih operatora koriste se digitalna kola koja se zovu komparatori magnitude ili samo komparatori. Iako je moguće projektovati komparator za bilo koji operator, u ovom odeljku pokazaćemo kao se projektuje univerzalni komparator, koji je se može koristiti za izračunavanje bilo kog od navedenih operatora. U opštem slučaju, n-bitni univerzalni komparator (Sl. 3.34) poredi dva pozitivna cela broja X=xn-

1,…,x0 i Y=yn-1,…,y0 i generiše tri binarna rezultata, G, E i L, koji imaju sledeće značenje: Ako je izlaz G=1, tada je X>Y; E=1 ukazuje na X=Y, a L=1 na X<Y.

Sl. 3.34 n-to bitni univerzalni komparator magnitude.

Logička mreža komparatora se može sintetizovati na osnovu tabele istinitosti u kojoj bi za svaku kombinaciju n-bitnih operanada X i Y bile navedene vrednosti izlaza G, E i L. Međutim, takva tabela bi bila previše velika, čak i za relatino malo n. Zato je bolji pristup da se u cilju realizacije kompartora razmatraju pojedinačni parovi odgovarajućih bitova dva operanda. Razmotrimo konstrukciju 4-bitnog komparatora.

Neka su X=x3x2x1x0 i Y=y3y2y1y0. Definišimo skup internih signala i3, i2, i1 i i0. Signal ik je jednak 1 ako su bitovi sa indeksom k operanada X i Y međusobno jednaki, tj. ik = (xk ⊗ yk)`. Dva binarna broja su jednaka ako imaju iste bitove. Dakle,

E = i3i2i1i0

Izraz za izlaz G se može izvesti tako što će se bitovi operanada X i Y ispitivati u redosledu počev od bita najveće do bita najmanje težine. Prva bitska pozicija k na kojoj se bitovi xk i yk razlikuju odrediće da li je X veće ili manje od Y. Pri tome, ako je xk=0 i yk=1, važi X<Y; ako je xk=1 i yk=0, važi X<Y. Dakle, izlaz G definisan je sledećim logičkim izrazom:

G = x3y3` + i3x2y2` + i3i2x1y1` + i3i2i1x0y0`

Izlaz L se može odrediti na osnovu druga dva izlaza. Naime, X je manje od Y ako X i Y nisu ni jednaki niti je X veća od Y, tj.

L = (E+G)`

Logička mreža koja realizuje četvorobitni univerzalni komparator prikazana je na Sl. 3.35. Opisana procedura se može primeniti za konstrukcije univerzalnog komparatora za proizvoljno n.

Sl. 3.35 Logička mreža 4-bitnog univerzalnog komparatora.

Page 87: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Komponente digitalnih sistema

87

PRIMER 3.6 8-bitni univerzalni komparator Na Sl. 3.36 je prikazano kako se pomoću dva 4-bitna univerzalna komparatora i dodatnih logičkih kola može realizovati 8-bitni univerzalni komparator. Operande X i Y možemo napisati u obliku:

X = XH×24 + XL

Y = YH×24 + YL

gde su XH= x7x6x5x4, XL= x3x2x1x0, YH= y7y6y5y4 i YL= y3y2y1y0 više i niže tetrade brojeva X i Y. Najpre, dva 4-bitna komparatora nezavisno porede više i niže tetrade brojeva X i Y, a zatim se na osnovu njihovih izlaza određuje konačni rezultat. Dva broja su jednaka ako važi XH=YH i XL=YL. X je veće od Y ako je XH>YH ili ako su ako su XH i YH jednaki i pri tome XL>YL. Konačno, X je manje od Y ako je viša tetrada broja X manja od više tetrade broja Y ili ako su više tetrade dva broja jednake i pri tome niža tetrada broja X manja od niže tetrade broja Y.

Sl. 3.36 Realizacija 8-bitnog komparatora pomoću 4-bitnih komparatora.

PRIMER 3.7 Realzacija komparatora pomoću binarnog sabirača Na Sl. 3.37 je prikazano kako se 4-bitni univerzalni komparator može realizovati pomoću 4-bitnog sabirača. Odnos između dva broja X i Y može se odrediti ako se brojevi najpre oduzmu, a zatim ispita rezultat. Oduzimanje X-Y se ralizuje kao sabiranje broja X i dvojičnog komplementa broja Y. Kod oduzimanja neoznačenih binarnih brojeva važi pravilo da je izlazni prenos iz sabirača, c4, jednak 0 ako je razlika negativna, odnosno 1 ako je razlika nula ili pozitivna. Drugim rečima, c4=0 ukazuje na X<Y, a c4=1 na X≥Y. Ovo pravilo se lako može proveriti na sledećim konkretnim primerima:

Uslov X≥Y se može razložiti na dva uslova X>Y i X=Y ako se dodatno detektuje kada je rezultat 0. Za detekciju uslova “sve nule” može se iskoristiti 4-ulazno NOR kolo, kao što je prikazano na Sl. 3.37. Dakle, ako je razlika 0, brojevi su jednaki; ako je c4=0, tada je X manje od Y, a ako razlika nije jednaka nuli i c4=1, tada je X veće od Y.

Sl. 3.37 Realizacija univerzalnog komparatora pomoću binarnog sabirača.

Page 88: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

88

3.1.10.1 Iterativne komparatorske mreže

Razmotrimo konstrukciju 16-bitnog komparatora na osnovu 4-bitnih komparatorskih modula. Za ovu namenu, ulazni 16-bitni operandi X=x15x14...x0 i Y=y15y14...y0 se razlažu na po četiri 4-bitna vektora:

X(i) = xi*4+3xi*4+2xi*4+1xi*4, i=0,..., 3

Y(i) = yi*4+3yi*4+2yi*4+1yi*4, i=0,..., 3

koji se koriste kao ulazi u pojedinačne 4-bitne komparatorske module. Poređenje se obavlja sukvesivno (tj. iterativno), počev od bit-vektora najmanje težine, X(0) i Y(0), a rezultat poređenja, izražen promenljivama G, E i L se prenosi u naredni stepen. Ako su bit-vektori X(i) i Y(i) jednaki, preuzima se rezultat iz prethodnog stepena; ako se X(i) i Y(i) razlikuju, rezultat prethodnog stepena se zanemeruje, a stepen i dalje prosleđuje rezultat svog poređenja. Izlazi G, E i L su u isto vreme i izazi celokupne komparatorske mreže. Da bi se omogućila sprega komparatorskih modula, neophodno je strukturu 4-bitnog komparatora sa Sl. 3.35 proširiti sa tri ulazna signala prenosa, kao na Sl. 3.38. Na Sl. 3.39 je prikazana struktura 16-bitnog iterativnog komparatora magnitude, realizovanog pomoću 4-bitnih komparatora sa Sl. 3.39.

Sl. 3.38 4-bitni komparator sa ugrađenim signalima ulaznog prenosa.

Sl. 3.39 16-bitna iterativna komparatorska mreža.

Opisani postupak se može primeniti za konstrukciju iterativnog komparatora sa proizvoljno velikim brojem bitova. Međutim, kao i kod sabirača sa rednim prenosom, sa povećanjem broj spregnutih bazičnih modula propagaciono kašnjenje komparatorske mreže linearno raste.

3.1.10.2 Hijerarhijske komparatorske mreže

Brža struktura za poređenje većih brojeva se može realizovati ako se umesto iterativne koristi hijerarhijska mreža komparatora. Razmotrimo ponovo konstrukciju 16-bitnog komparatora na osnovu 4-bitnih komparatorskih modula, ali sada tako da komparatorski moduli budu povezani u hijerarhijsku strukturu, kao što je ona sa Sl. 3.40. Svaki od četiri modula sa prvog nivoa, K0 do K3 poredi dva bit-vektora od četiri bita. Izlazi iz prvog nivoa se koriste kao ulazi u jedinstveni komparatorski modul sa drugog nivoa, K4, na sledeći način: Svi izlazi G iz komparatorskih modula sa prvog nivoa čine bit-vektor g koji je povezan na grupu ulaza x komparatora K4. Slično, bit-vektor l, koga čine svi izlazi L iz prvog nivoa, povezan je na grupu ulaza y komparatora K4.

Da mreža sa Sl. 3.40 zaista realizuje funkciju 16-bitnog komparatora, može se pokazati sledećom analizom. Na osnovu definicije komparatorskog modula, izlazi hijerarhijske mreže komparatora su:

>

=inace

lgjeakoG

0

1

Page 89: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Komponente digitalnih sistema

89

=

=inace

lgjeakoE

0

1

<

=inace

lgjeakoL

0

1

gde su g i l celi brojevi predstavljeni istoimenim bit-vektorima.

S obzirom da su g i l izlazi iz provog nivoa komparatorskih modula, nije moguće da oba bita gi i li u isto vreme imaju vrednost 1. Shodno tome, g>l znači da je 1 najveće težine u vektoru g teža od 1 najveće težine u vektoru s, što odgovara slučajevima kada je X>Y. Slično, g<l sledi iz X<Y. Slučaj g=l se javlja samo ako važi g=l=0, što znači da važi X=Y. Dakle, mreža sa slike realizuje funkciju poređenja brojeva X i Y.

Sl. 3.40 16-bitni hijerarhijski komparator.

3.1.11 Kombinacioni pomerači i rotatori

Opracije pomeranja i rotiranja često se koriste za pakovanje i raspakovanje cifara i karaktera, izdvajanje i umetanje bitskih polja, kao i za realizaciju operacije za rad u pokretnom zarezu. Na primer, svaki procesor poseduje barem nekoliko instrukcija za 1-bitno pomeranje i rotiranje na levo i na desno. Operacije pomeranja mogu se obavljati u logičkom ili aritmetičkom režimu. Pri logičkom pomeranju, bit-vektor se pomera za m bitskih pozicija na levo ili na desno. Kao rezultat ove operacije, m bita sa jedne strane vektora se izbacuje, a m novih bita se ubacuje sa druge strane vektora. Pri aritmetičkom pomeranju, pretpostavlja se da bit-vektor koji se pomera predstavlja binarni broj, tako da pomeranje za m pozicija na desno ima isti efekat kao deljenje broja sa 2m, dok je pomeranje za m pozicija na levo isto što i množenje sa 2m. Ako bit-vektor predstavlja brojnu vrednost u formatu dvojičnog komplementa, tada se prilikom pomeranja na desno, u vektor, sa leve strane, ubacuje m kopija bita znaka. Za slučaj pomeranja na levo, u vektor se, sa desne stane, ubacuje m nula. Dodatno, nakon pomeranja na levo, na poziciju bita najveće težine treba postaviti vrednost koja je jednaka bitu znaka polazne reči. Pri operaciji rotiranja, bitovi se ne gube, jer se bit koji izađe sa jedne strane reči, vraća u reč sa druge strane.

Za obavljanje operacija pomeranja i rotiranja, koriste se digitalne komponente koje se zovu pomerači i rotatori. Ove komponente se konstruišu pomoću multipleksera. Na primer, na Sl. 3.41(a) je prikazan grafički simbol 8-bitnog univerzalnog pomerača/rotatora, koji može da obavlja logičko pomeranje ili rotiranje za jednu bitsku poziciju na levo ili na desno. Kolo ima 8-bitni ulaz za podatak D=d7...d0, 8-bitni izlaz za podatak Y=y7...y0, i tri selekcione linije, S2, S1 i S0, preko kojih se vrši izbor željene operacije. Ulaz dl definišu bitsku vrednost koja se prilikom pomeranja na desno postavlja na krajni levi izlaz, y7, dok ulaz dl definiše vrednost koja se postaljva na krajnji desni izlaz, y0, prilikom pomeranja na levo. Shodno funkcionalnoj tabeli sa Sl. 3.41(b), kada je S2=0, ulazni podatak se, bez ikakve promene, prenosi na izlaz. Ako je S2=1, nad ulaznim podatkom se obavlja operacija pomeranja ili rotiranja. Smer pomeranja, odnosno rotiranja, zavisi od vrednosti S1: za S1=0 bitski sadržaj podatka se pokreće na levo, a za S0=1 na desno. Konačno, S0 služi za izbor između pomeranja i rotiranja, tako da pri S0=0 pomerač/rotator radi kao pomerač, a pri S0=1 kao rotator. Na Sl. 3.41(c) su ilustrovani različiti režimi rada univerzalog pomerača/rotatora.

Page 90: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

90

Sl. 3.41 Univerzalni pomerač/rotator: (a) grafički simbol; funkcionalna tabela; (c) režimi rada.

Na Sl. 3.42 je prikazana realizacija 8-bitnog univerzalnog pomerača/rotatora. Kao što se može videti, pomerač/rotator je realizovan tako što je za svaku bitsku poziciju iskorišćen jedan multipleksera 4-u-1. Ulazi multipleksera su tako raspoređeni da multiplekser koji zauzima poziciju i, može da bira između ulazih bita i-1, i i i+1. Dodatno, pomerač/rotator ima dva multipleksera 2-u-1, koji služe za izbor krajnjeg levog ili krajnjeg desnog bita.

Sl. 3.42 Realizacija 8-bitnog univerzalnog pomerača/rotatora sa Sl. 3.41 pomoću multipleksera.

3.1.11.1 Barel pomerač

Pomerač/rotator opisan u prethodnom odeljku ima mogućnost pomeranja ili rotiranja za jednu bitsku poziciju na levo ili na desno. To znači da ako je potrebno obaviti pomeranje ili rotiranje za više od jedne bitske pozicije, podatak bi morao biti propušeten kroz pomerač/rotator veći broj puta. Drugim rečima, na ovakvom tipu pomerača, operacija pomeranja za proizvoljan broj pozicija se izvršava sporo. Da bi se izbeglo ovo veliko kašnjenje, kod sistema gde se zahtevaju visoke performanse, koristi se barel pomerač, koji je tako projektovan da može obaviti pomeranje za proizvoljan broj pozicija. n-bitni pomerač ovog tipa, gde je n=2m, sadrži m=log2n nivoa multipleksera raspoređenih tako da i-ti nivo multipleksera (0≤i≤m-1) obavlja pomeranje za 2i pozicija, ako je selekciona linija ovog nivoa Si=1. Ako je Si=0, podatak prolazi kroz i-ti nivo nepromenjen. Drugim

Page 91: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Komponente digitalnih sistema

91

rečima, ako želimo da pomerimo podatak za B pozicija, gde je B binarni broj bm-1...b0, tada je potrebno postaviti Si=bi, za 0≤i≤m-1.

Na Sl. 3.43 je prikazano jedno moguće rešenje barel pomerača, kod koga je, u cilju pojednostavljenja, broj funkcija sveden samo na jednu, rotiranje na desno. Kao što se može videti, ovaj 8-bitni barel rotator realizovan je sa tri nivoa multipleksera 2-u-1, koji se kontrolišu sa tri selekcione linije, S0, S1 i S0, na sledeći način: kada je S0=1, prvi nivo obavlja rotiranje za jednu bitsku poziciju; kada je S1=1 drugi nivo obavlja rotiranje za dve, a kada je S2=1 treći nivo obavlja rotiranje za četiri bitske pozicije.

Za konstrukciju složenijih pomerača/rotatora, koji mogu obavljati veći broj različitih operacija, koristi se u suštini isti potupak, stim da je neophodan veći broj multipleksera sa većim brojem ulaza za podatke.

Sl. 3.43 8-bitni barel rotator na desno: (a) tabela istinitosti; (b) struktura.

3.1.12 ROM memorije

ROM memorija (Read Only Memory - ROM) se može razumeti kao univerzalni logički element koji, u isto vreme, može da realizuje veći broj različitih logičkih funkcija definisanih nad istim skupom promenljivih. Uopšteno govoreći, svaka ROM memorija sadrži n reči dužine m bita i označava se kao m x n ROM. ROM memorija, takođe, ima log2n adresnih linija koje se koriste za adresiranje svake od njenih n reči. Znači, mxn ROM je u stanju da realizuje m proizvoljnih logičkih funkcija od log2n promenljivih.

Pre nego što pređemo na razmatrane strukture ROM memorije uvešćemo dva nova grafička simbola koji reprezentuju programabilne varijante AND i OR gejtova. Kao što se može videti u tabeli sa Sl. 3.44, ulazne linije

Page 92: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

92

gejta zamenjene su jedinstvenom linijom koja je presečena sa nekoliko ulaznih linija. U svakom preseku nacrtan je crni kvadrat koji ukazuje na vezu između ulaza i gejta. Ova veza se može ostvariti na dva načina: u toku fabrikacije komponente, kada se dve linije fizički povezuju uvek kada je takva veza potrebna, ili nakon fabrikacije, kada se svuda tamo gde veze ne treba da postoje pregore topljivi osigurač ugrađeni u presecima naznačenim u grafičkom simbolu. ROM memorija sa osiguračima se zove programablini ROM ili PROM (Programmable ROM). PROM je veoma praktična komponenta, s obzirom da se može proizvoditi u velikim serijama a tek kasnije, pre ugradnje u ciljni sistem prilagodi (programira) konkretnoj primeni. PROM se može razumeti kao poseban slučaj FPGA kola; s obzirom na sličnu funkciju, PROM se može smatrati pretečom FPGA kola, koja se karakterišu složenijom internom organizacijom.

Kombinacioni simbol Programabilni simbol

Sl. 3.44 Programabilni simboli AND i OR kola.

Kao što je već rečeno, tipična n×m ROM ili PROM memorija ima k=log2n adresnih linija označenih kao Ak-1,...,A0, kao i m izlaznih linija označenih kao Fm-1,...,F0. ROM memorija sadrži adresni dekoder k-u-n i m programabilnih OR kola. Na primer, na Sl. 3.45 je prikazan 16x4 ROM kod koga dekoder 4-u-16 služi za izbor jedne od 16 reči. Unutar programabilnog OR polja, vrednost svakog bita u svakoj reči je određena postojanjem ili nepostojanjem veze između horizontalnih i vertikalnih linija: pošto crni kvadrat u preseku ukazuje postojanje veze (nepregoreni osigurač), a na Sl. 3.45 nema ni jednog kvadrata, sadržaj prikazane ROM memorije je “sve nule“.

Sl. 3.45 16x4 ROM.

Na Sl. 3.46 je pokazano kako se 16x4 ROM može iskoristiti za realizaciju sabirača/oduzimača za jednu bitsku poziciju (vidi odeljak 3.1.2). Kao što se može videti na Sl. 3.46(a), kolo ima jednu selekcionu liniju S, koja određuje da li se obavlja sabiranje ili oduzimanje dva jednobitna operanda ai i bi, i ulazni prenos iz prethodne bitske pozicije, ci. Kolo generiše bit sume/razlike fi i izlazni prenos ci+1. Tabela istinitosti ovog kola prikazana je na Sl. 3.46(b), dok je na Sl. 3.46(c) prikazana realizacija pomoću ROM memorije. Uočimo da je svaka 1-ca iz izlaznih kolona tabele istinitosti konvertovana u odgovarajuće veze unutar OR polja ROM memorije. Ulazne linije S, ai, bi i ci su preslikani na adresne linije A3, A2, A1 i A0, dok su izlazne linije preslikane na F1 i F0.

Page 93: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Komponente digitalnih sistema

93

Sl. 3.46 16x4 ROM programiran kao sabirač/oduzimač za jednu bitsku poziciju; (a) sabirač/oduzimač za jednu bitsku poziciju; (b) tabela istinitosti; (c) šema programiranja ROM memorije.

U primeru sa Sl. 3.46, važno je uočiti da reči ROM memorije sa adresama 0 i 10 nisu potrebne. Nažalost, kod ovakvih primena, reč u ROM će biti neiskorišćena ako su svi izlazi te reči jednake 0. Zbor ovakvog neracionalnog korišćenja raspoloživih reči, realizacija funkcija sa milim brojem 1-ca pomoću ROM memorije je veoma skupa. Sa druge strane, s obzirom da poseduje značajno veću gustinu bitova u poređenju sa RAM memorijom, ROM memorija predstavlja odlično rešenje za čuvanje konstantnih podataka. Iz tog razloga, ROM memorije se često koriste za generisanje upravljačkih signala kod upravljačkih jedinica standardnih procesora i aplikaciono-specifičnih koprocesora. Uz to, ROM memorije su postojane, tj. ne gube memorisani sadržaj nakon isključenja napajanja i zbog toga se koriste za smeštanje programa kod mikroračunarskih sistema.

3.1.13 Programabilna logička polja

U odeljku 3.1.13 je napomenuto da ROM memorije predstavlja izrazito neefikasno rešenje kada se koristi za realizaciju retkih funkcija, tj. funkcija sa malim brojem 1-ca, jer će u takvim situacijama mnoge reči ROM memorije imati vrednost 0, što dovodi do neracionalnog korišćenja površine silicijuma. Programabilna logička polja (PLA – Programmable Logic Arrays) su razvijena upravo iz potrebe minimizovanja ovog nepotrebnog gubitka. PLA polja se razlikuju od ROM memorije u načinu realizacije adresnog dekodera: umesto potpunog dekodera, kao što je to slučaj kod ROM memorije, PLA koristi programabilni dekoder, koji se zove AND polje, i koji se može programirati tako da dekoduje samo one reči koje imaju sadržaj različit od nule. Uz to, PLA može imati i programabilno izlazno polje koje se koristi onda kada postoji potreba da se komplementira izlazna vrednost. Ovo izlazno polje može da poboljša efikasnost PLA strukture jer pruža veću fleksibilnost prilikom realizacije proizvoljnih funkcija. Na primer, ako data funkcija ima samo nekoliko nula, AND i OR polja mogu

Page 94: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

94

biti programirana tako da realizuju komplement date funkcije, što će zahtevati samo nekoliko reči, a da se onda komplementiranjem u izlaznom polju dobije željena funkcija.

Sl. 3.47 PLA struktura.

Po pravilu, PLA se karakteriše brojem reči, n, i brojem izlaza, m. Uz to, pošto broj adresnih linija neće biti jednak log2n, prilikom specifikacije PLA strukture, potrebno je navesti i broj ulaza ili adresnih ulaza, k. Znači, k×n×m PLA imaće: adresne linije Ak-1,...,A0, n reči, gde svaka reč predstavlja jedan minterm adresnih ulaza, i m izlaza, Fm-1,...,F0. Takva jedna PLA struktura može da realizuje m proizvoljnih logičkih funkcija k promenljivih sve dok je ukupan broj različitih AND članova u skupu od m funkcija manji ili jednak m.

Na Sl. 3.47 prikazana je struktura 4×8×4 PLA polja. Kao što se može videti, PLA sa slike ima četiri ulaza A3, A2, A1 i A0, četiri izlaza F3, F2, F1 i F0, i 8 AND članova ili reči. Kod ovog PLA polja, svaki AND član može da sadrži do četiri literala (promenljivih ili njihovih komplemenata), svaka izlazna funkcija može imati do osam AND članova, a svaki izlaz može biti generisan u svojoj pravoj ili komplementarnoj formi.

Na Sl. 3.48 pokazano je kako se 4×8×4 PLA može iskoristiti za realizaciju funkcija ci+1 i si potpunog sabirača. Treba uočiti da se ovo PLA polje ne može iskoristiti za realizaciju sabirača/oduzimača za jednu bitsku poziciju (Sl. 3.46(a)) zato što ovo kolo zahteva ukupno 13 AND članova, osam za funkciju fi i pet za funkciju ci+1, što prevazilazi granicu od osam AND članova raspoloživih u 4×8×4 PLA polju.

U cilju realizacije potpunog sabirača, ulazi xi, yi i ci su dodeljeni adresnim linijama A2, A1 i A0, a izlazi ci+1 i fi izlazima PLA polja F1 i F0. Tabela istinitosti i odgovarajuće Karnoove mape prikazane su na Sl. 3.48(a) i (b), dok je logička šema PLA polja, u kojoj su naznačene sve potrebne veze, data na Sl. 3.48(c).

Fleksibilnost PLA strukture približna je fleksibilnosti ROM memorije uz dodatnu prednost u pogledu veće efikasnosti prilikom realizacije proizvoljne logike. Shodno tome, PLA se mnogo češće nego ROM koristi za realizaciju upravljačkih jedinica, dok se ROM češće primenjuje za čuvanje tabela koeficijenata, programa, test vektora i drugih proizvoljnih, fiksnih podataka.

Page 95: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Komponente digitalnih sistema

95

Sl. 3.48 Realizacija potpunog sabirača pomoću PLA polja: (a) tabela istinitosti; (b) Karnoove mape; (c) šema programiranja. PLA polja.

3.2 Sekvencijalne komponente

Kombinaciona kola, koja su razmatrana u prethodnim poglavljima, imaju osobinu da vrednost svakog njihovog izlaza zavisi isključivo od vrednosti signala prisutnih na njihovim ulazima. Osim kombinacionih, postoji još jedna široka klasa digitalnih kola, kod kojih vrednosti izlaza zavise ne samo od trenutnih vrednosti ulaza, već i od ranijeg ponašanja kola. Ovakava kola sadrže memorijske elemente koji zadržavaju, pamte odnosno memorišu vrednosti logičkih signala. Kaže se da ukupni sadržaj svih memorijskih elemenata u jednom kolu predstavlja stanje tog kola. Kada se promene vrednosti ulaza, kolo ili ostane u istom (tj. tekućem) stanju, ili promeni svoje stanje. Vremenom, kao posledica promena ulaza, kolo prolazi kroz sekvencu stanja. Kolo koja se ponašaju na ovaj način zovu se sekvencijalna kola.

Sekvencijalna kola mogu biti sinhrona ili asinhrona. Asinhrona sekvencijalna kola menjaju svoje stanje uvek kada se desi promena ulaznih vrednosti, dok sinhrona sekvencijalna kola menjaju svoje stanje i izlazne vrednosti samo u fiksnim vremenskim trenucima, koji su određeni rastućom ili opadajućom ivicom taktnog signala. Na Sl. 3.49 je prikazan vremenski dijagram tipičnog taktnog signala. Taktni period je vremenski interval između dve uzastopne promene taktnog signala u istom smeru, tj. između dve rastuće ili između dve opadajuće ivice taktnog signala. Recipročna vrednost taktnog perioda je taktna frekvencija. Širina taktnog impulsa je vreme u toku koga je vrednost taktnog signala jednaka 1. Faktor popune taktnog signala je količnik širine taktnog impulsa i taktnog perioda.

Sl. 3.49 Taktni signal.

Page 96: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

96

3.2.1 Leč kola i flip-flopovi

Elementi koji zadržavaju, tj. pamte uspostavljena stanja i po prestanku dejstva pobudnih signala koji su ih prouzrokovali, nazivaju se memorijski elementi. Osnovna karakteristika memorijskih elemenata jeste postojanje stabilnih stanja u kojima mogu ostati neograničeno vreme i koja se mogu menjati pod uticajem ulaznih signala. U digitalnoj tehnici kao memorijski elementi koriste se bistabilana kola koja imaju dva stabilna stanja. Bistabilno kolo može da memoriše informaciju od jednog bita. Dva osnovna tipa bistabilnih kola su: leč kola i flip-flopovi.

3.2.1.1 Leč kola

SR leč

SR leč je najjednostavniji memoriski element koji se koristi za projektovanje digitalnih sistema. SR leč čine dva unakrsno spregnuta NOR kola. Kao što se može videti na Sl. 3.50(a), SR leč ima dva ulazna signala, signal za setovanje, S, i signal za resetovanje, R i dva izlazna signala Q i Q’. SR leč ima dva stanja: kada je Q=1 (Q’=0), SR leč je u setovanom stanju; kada je Q=0 (Q’=1), leč je u resetovanom stanju. Sve dok su oba ulazna signala, S i R, jednaka 0, SR leč ostaje u istom stanju. Na primer, ako je Q=1, izlaz gornjeg NOR kola biće 0, što zajedno sa R=0 drži izlaz donjeg NOR kola na 1. Slično, ako je Q=0, izlaz gornjeg NOR kola biće jednak 1, što zajedno sa R=0, drži 0 na izlazu donjeg NOR kola. Međutim, ako ulaz S (ulaz R) postane jednak 1, SR leč prelazi u setovano stanje (resetovano stanje).

Sl. 3.50 SR leč (realizacija pomoću NOR kola): (a) logička šema; (b) tabela istinitosti.

Ako oba ulazna signala, S i R, u isto vreme postanu jednaka 1, oba izlazna signala Q i Q’ postaće jednaka 0. Ako se, zatim, jedan od ulaznih signala deaktivira ranije, SR leč će preći u stanje određeno signalom koji je deaktiviran kasnije. Problem koji je karakterističan za SR leč nastaje u situaciji kada se oba ulazna signala, S i R, deaktiviraju u isto vreme, s obzirom da se u tom slučaju ne može predvideti izlaz leča. Ako se oba ulazna signala deaktiviraju tačno u isto vreme, izlazi oba NOR kola, u isto vreme, postaće 1, što će, zbog povratnih veza usloviti da, nakon nekog kraćeg kašnjenja, oba izlaza ponovo postanu 0; 0, vraćena ulaze NOR kola inicira promenu izlaza na 1, i tako dalje do u beskonačnost. Dakle, pod ovim uslovima, SR leč počinje da osciluje. Ovakav tip oscilacija se zove kritična trka i javlja se pod uslovom da oba gejta imaju identično kašnjenje. Međutim ako kašnjenja NOR gejtova nisu ista, jedno od NOR kola biće brže i prvo će postavi 1 na svom izlaz i to u vremenu dok je na izlazu drugog gejta još uvek 0, koja će tu i ostati zbog 1 koja se upravo pojavila na povratnoj vezi. Međutim, bez obzira što pri ovim uslovima oscilacije na javljaju, i dalje možemo smatrati da je novo stanje leča nakon istovremenog deaktiviranja oba ulazna signala nedefinisano, s obzirom da ne možemo znati koji je od dva NOR gejta brži.

Da bi se sprečilo opisano nedetirminističko ponašanje, moramo obezbediti da signali S i R nikada ne budu deaktivirani u isto vreme. Nažalost, ovaj zahtev je teško ostvariti zbog nepoznatog kašnjenja logičkih mreža koja generišu vrednosti signala S i R. Zbog toga, kada koristimo SR lečeve, moramo se držati strožeg ograničena: signali S i R nikada ne smeju biti aktivirani u isto vreme.

Na osnovu sprovedene analize SR leča u mogućnosti smo da formiramo tabelu istinitosti koja će opisivati ponašanje SR leča (Sl. 3.50(b)). Za svaku kombinaciju ulazni vrednosti, S i R, i tekućeg stanja Q, ova tabela definiše rezultujuće izlazne vrednosti, Q(next) i Q’(next).

Page 97: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Komponente digitalnih sistema

97

Sl. 3.51 SR leč (realizacija pomoću NAND kola): (a) logička šema; (b) tabela istinitosti.

SR leč se, takođe, može realizovati pomoću NAND kola. U ovom slučaju, ulazni signali S i R su normalno jednaki 1, a postavljanje S ili R na 0 setuje, odnosno, resetuje leč, što je upravo suprotno u odnosu na realizaciju koja koristi NOR kola, gde postavljanje S ili R na 1 uzrokuje setovanje, odnosno, resetovanje leča. Realizacija SR leča na bazi NAND kola prikazana je na Sl. 3.51.

SR leč sa dozvolom

SR leč sa dozvolom je sličan SR leču, s tom razlikom da poseduje treći, upravljački ulazni signal, C, koji dozvoljava ili zabranjuje rad SR leča (Sl. 3.52). To znači da kada je C=1, SR leč sa dozvolom se ponaša identično SR leču. Međutim, kada je C=0, setovanje ili resetovanje leča je zabranjeno i kolo ostaje u istom stanju, bez obzira na eventualne promene vrednosti ulaznih signala S i R. Drugim rečima, sve dok je C=1, leč prati promene ulaznih signala. Onog trenutka kada C postane jednako 0, tekuće stanje leča se “zamrzava”, sve do trenutka kada C ponovo postane 1, kada leč nastavlja normalno da funkcioniše.

Sl. 3.52 SR leč sa dozvolom: (a) grafički simbol; (b) logička šema; (c) tabela istinitosti.

U radu sa SR lečom sa dozvolom neophodno je voditi računa o sledećem ograničenju: ulazni signali S i R se ne smeju menjati u vremenskom intervalu u okolini opadajuće ivice signala C. Ovaj vremenski interval počine u trenutku tsetup pre i traje do vremena thold nakon opadajuće ivice signala C. Ukoliko ovo ograničene nije obezbeđeno može doći do nedetirminističkog ponašanja leča.

S obzirom da je u većini primena upravljački signal C povezan sa sistemskim taktnom, SR leč sa dozvolom se često naziva taktovani SR leč.

D leč sa dozvolom

Projektanti koji koriste SR lečeve moraju voditi računa da ulazi S i R nikada u isto vreme ne postanu jednaki 1. Ovo ograničenje se može izbeći korišćenjem D leča, koji ima samo jedan ulaz. Kao što je prikazano na Sl. 3.53(b), D leč sa dozvolom se konstruiše na bazi SR leča tako što se ulaz D veže na ulaz S, a D’ na ulaz R SR leča. Povezivanjem D i D’ na ulaze S i R obezbeđeno je S i R nikada neće biti jednaki 1 u isto vreme. D leč, takođe, ima ulaz C, koji dozvoljava rad D leča, na sličan način kao što je to bio slučaj kod SR leča sa dozvolom. Kada je C=1, izlaz Q se postavlja na vrednost koja je prisutna na ulazu D. Suprotno, kada je C=0, izlaz Q zadržava poslednju vrednost koju je ulaz D imao pre opadajuće ivice signala C. Drugim rečima, sve dok je C=1, Q prati promene ulaza D. Kaže se da je leč transparentan. U trenutku kada C postane jednako 0, tekuće stanje leča se zamrzava. Kaže se da je leč zaključan. Kao i kod SR leča sa dozvolom, postoji ograničenje da ulaz D ne sme da menja svoju vrednost u vremenu tsetup pre i thold nakon opadajuće ivice signala C.

Page 98: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

98

Sl. 3.53 D leč sa dozvolom: (a) grafički simbol; (b) logička šema; (c) tabela istinitosti.

3.2.1.2 Flip-flopovi

Kao što je već objašnjeno, lečevi sa dozvolom predstavljaju jednostavne memorijske elemente koji su aktivni, tj. čiji je rad dozvoljen, za sve vreme dok je vrednost upravljačkog signala C=1. Takvi lečevi se često nazivaju lečevi osetljivi na nivo, s obzirom da su aktivni za sve vreme dok je signal C na visokom naponskom nivou. Aktivan leč je transparentan, u smislu da se bilo koja promena na ulazu prenosi na izlaz, naravno, sa izvesnim kašnjenjem. Lečevi osetljivi na nivo se ponašaju kao memorijski elementi tek nakon opadajuće ivice upravljačkog signala, C, kada zadržavaju stanje postavljeno poslednjom promenom ulazne vrednosti koja se desila pre opadajuće ivice signala C.

Projektanti moraju biti veoma obazrivi kada koriste lečeve osetljive na nivo, pošto dugi vremenski intervali tokom kojih je leč transparentan ponekada mogu omogućiti neželjenim informacijama da uđu u leč. Na primer, razmotrimo 3-bitni pomerački registar koga čine tri D leča sa dozvolom, kao što je prikazano na Sl. 3.54(a). U prikazanoj strukturi, ulazni signal X je povezan na ulaz D prvog leča. Izlaz, Q1, prvog leča je povezan na ulaz D drugog leča, a izlaz, Q2, dugog leča na ulaz D trećeg leča. Upravljački ulaz C je povezan na sistemski takt Clk koji sinhronizuje rad svih lečeva. Idealno, ovaj pomerački registar bi trebalo da radi na sledeći način: u toku svakog taktnog impulsa, vrednost X se upisuje u prvi leč, vrednost prvog leča se premešta u drugi, a vrednost drugog leča u treći.

Međutim, kao što se može videti na vremenskom dijagramu sa Sl. 3.54(b), pomeranje informacije, koje se zaista dešava, ne odgovara očekivanom. Na primer, pretpostavimo da su svi lečevi u resetovanom stanju (Q1=Q2=Q3=0) i da u toku prvog taktnog impulsa ulazni signal X ima vrednost 1, a da je nakon toga njegova vrednost 0. Drugim rečima, sadržaj pomeračkog registara bi trebalo da počev od 000, a nakon prvog, drugog i trećeg taktnog impulsa redom dobija vrednosti 100, 010 i 001. Međutim, u realnosti dešava se nešto drugo: počev od sadržaja 000, nakon prvog taktnog impulsa, sadržaj pomeračkog registara se menja na 111, da bi nakon drugog ponovo postao 000, a ova vrednost se zadržava i posle trećeg taktnog impulsa. Drugim rečima, pomerački registar se ponaša kao jedinstveni D leč koji u svakom taktnom ciklusu memoriše vrednost ulaznog signala X.

Sl. 3.54 Neispravno pomeranje u pomeračkom registru sa D lečevima; (a) logička šema; (b) vremenski dijagram.

Page 99: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Komponente digitalnih sistema

99

Razlog za opisano ponašanje pomeračkog registra sačinjenog od D lečeva leži u činjenici da su lečevi osetljivi na nivo transparentni za sve vreme trajanja taktnog impulsa. Ukoliko je trajanje taktnog impulsa dovoljno dugo, ulazni podatak X ima dovoljno vremena da prođe kroz sve lečeve u nizi i javi se na izlazu pomeračkog registra. Onog trenutka kada prestane dejstvo taktnog impulsa, svi lečevi memorišu istu vrednost, X.

Jedna moguća ideja za rešenje opisanog problema bila bi da se skrati trajanje taktnog impulsa do iznosa propagacionog kašnjenja kroz jedan leč. Međutim, kašnjenja prilikom setovanja i resetovanja leča nisu ista, a to znači da takt koji pri upisu 1 ispravno pobuđuje leč, ne bi imao dovoljnu širinu pri upisu 0, ili obrnuto. Takođe, zbog varijacija u procesu fabrikacije, proizvođači lečeva ne mogu garantovati tačne vrednosti kašnjenja. U tom smislu, deklarisana kašnjenja predstavljaju očekivane vrednosti za realna kašnjenja koja podležu normalnoj raspodeli.

Imajući u vidu navedena ograničenja, postoje dva moguća rešenja našeg problema: master-slave flip-flop ili flip-flop sa ivičnim okidanjem. Master-slave flip-flopovi se realizuju pomoću dva leča, od kojih se jedan zove master, a drugi slave. Kao što je prikazano na Sl. 3.55(a), ulaz u master leč je ujedno i ulaz flip-flopa, dok je ulaz u slave leč izlaz iz master leča. Izlaz slave leča je ujedno i izlaz flip-flopa. Unutar flip-flopa, oba leča se pobuđuju istim taktnim signalom, Clk, s tom razlikom da je master leč dozvoljen kada je taktni signal jednak 0, a slave leč kada je taktni signal jednak 1.

Prednost korišćenja ovakvih flip-flopova je očigledna: s obzirom da master i slave lečevi nikada u isto vreme nisu dozvoljeni, master-slave flip-flop nikada nije transparentan. Kada je Clk=0, dozvoljen je samo master leč, a njegov sadržaj se prenosi u slave leč tek kada taktni signal postane 1. Uočimo da prelazak taktnog signala Clk na vrednost 1, “zaključava” master leč, tako da se njegov sadržaj više ne može menjati.

Sl. 3.55 Master-slave flip-flop; (a) logička šema; (b) vremenski dijagram.

Ponašanje master-slave flip-flopa opisano je vremenskim dijagramima sa Sl. 3.55(b). Vremenski dijagrami su nacrtani pod pretpostavkom da je propagaciono kašnjenje kroz D leč pri setovanju 4.0ns, odnosno 3.0ns, pri resetovanju. Ulaz D postaje 1 u trenutku t0. Master leč prihvata ovu promenu, s obzirom da je njegov C ulaz jednak 1, i postavlja Qm=1 u t0+4.0ns. Međutim, sve dok je Clk=0, ova promena ne prolazi kroz slave leč. U t1 Clk postaje 1, slave leč postaje transparentan i u t1+4.0ns na izlazu slave leča, Qs, postavlja se 1. Kada ulaz D, u t3, ponovo postane 0, master leč prihvata novu vrednost, ali se ona ne prenosi kroz slave leč sve do t4+3.0ns. U t5 ulaz D se menja na 1, ali master leč ne prihvata ovu promenu sve do t6 kada Clk postaje 0. Znači, Qm dobija vrednost 1 u t6+5.0ns. Uočimo da je kašnjenje povećano za 1.0ns zbog invertora koji pobuđuje ulaz C master leča. Nakon što u t7 slave leč postane dozvoljen, na izlaz Qs se postavlja 1 u t7+4.0ns. Sličnu promenu ulaza D na 0 u t8 master leč ne registruje sve do t9+4.0ns i ona se ne prenosi kroz slave leč sve dok taktni signal ponovo ne postane 1.

Page 100: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

100

Kao što je pokazano na Sl. 3.55, vrednost ulaza D se unosi u master leč pre rastuće ivice taktnog signala, a prenosi u slave leč neposredno nakon iste rastuće ivice. Za sve praktične primene, možemo smatrati da se vrednost ulaza D upisuje u flip-flop u trenutku delovanja rastuće ivice taktnog signala.

Ako ponovo konstruišemo 3-bitni pomerački registar, ali sada umesto D lečeva upotrebimo master-slave flip-flopove, dobićemo logičku šemu prikazanu na Sl. 3.56(a) kojoj odgovaraju vremenski dijagrami sa Sl. 3.56(b). Uočimo da ovi novi vremenski dijagrami sadrže isti taktni signal Clk i isti ulazni signal X kao i vremenski dijagrami sa Sl. 3.55(b), ali su prošireni tako da za svaki flip-flop uključuju dva talasna oblika: izlaze iz master i slave lečeva, Qim i Qis, 1≤i≤3.

Kao što vremenski dijagram pokazuje, nakon što se u t0 ulazni signal X promeni na 1, samo će master leč prvog flip-flopa biti setovan (Q1m=1), u t0+4.0ns. Zatim, nakon što se u t1 taktni signal promeni na 1, slave leč se setuje u t1+4.0ns. Samo nešto malo kasnije, nakon što se u t2 taktni signal vrati na 0, u t2=5.0ns setuje se master leč drugog flip-flopa (Q2m=1). Uočimo da kada se u t3 ulazni signal X vrati na 0, master leč prvog flip-flopa se setuje (Q1m=0). Nakon sledeće rastuće ivice takta, u t3+3.0ns Q1s se vraća na 0, dok se u t4+4.0ns Q2m postavlja na 1. Slično, treća ivica taktnog signala resetuje Q2m i setuje Q3m.

Sl. 3.56 Pomerački registar realizovan master-slave flip-flopovima; (a) logička šema; (b) vremenski dijagram.

Kao što se može videti, pomerački registar konstruisan pomoću master-slave flip-flopova se ponaša baš kao što treba: sa svakom rastućom ivicom taktnog signala pomera upisani sadržaj za jednu poziciju na desno. Znači, svakom taktnom ciklusu odgovara jedno stanje pomeračkog registra, koja (za sekvencu vrednosti ulaznog signala sa Sl. 3.56(b)) se počev od stanja 000, menjaju u redosledu 100, 010, 001, da bi se, konačno, registra vratio u stanje 000.

Flip-flop sa ivičnim okidanjem realizuje se pomoću tri SR leča: set leč, reset leč i izlazni leč, kao što se može videti na Sl. 3.57(a). U trenutku delovanja rastuće ivice taktnog signala Clk, promena signala Clk se pamti u set leču, ako je D=1, odnosno u reset leč, ako je D=0. Drugim rečima, signali A i B registruju promene ulaza D

Page 101: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Komponente digitalnih sistema

101

sve dok je Clk=0. Način rada flip-flopa sa ivičnim okidanjem detaljno je objašnjen vremenskim dijagramom sa Sl. 3.57(b).

Sl. 3.57 Flip-flop sa ivičnim okidanjem: (a) logička šema; (b) vremenski dijagram.

Pretpostavimo da propagaciono kašnjenje svih NAND kola ugrađenih u flip-flop sa Sl. 3.57(a) iznosi 1.4ns. Dok je Clk=0, oba signala S i R su jednaka 1, što drži izlazni leč u tekućem stanju. Kada se u t0 D promeni, B ide na 0 u t0+1,4ns a A na 1 u t0+2.8ns. Izlaz Q ostaje nepromenjen sve dok se u t1 Clk ne promeni na 1, što u t1+1.4ns postavlja S=0, a u t1+2.8ns Q=1. Kada se u t2 Clk vrati na 0, S se u t2+1.4ns vraća na 1, a Q zadržava tekuće stanje, tj. 1. nakon što u t3 D postane 0, B postaje 1 u t3+1.4ns, a A postaje 0 u t3+2.8ns.

Nakon rastuće ivice signala Clk u t4, R se menja na 0 u t4+1.4ns, a Q na 0 u t4+4.2ns. Promena ulaza D u t5 se ne registruje sve do opadajuće ivice signala Clk u t6, kada se u t6+1.4ns R vraća na 1, u t6+2.8ns B postaje 1 i u t6+4.3ns A postaje 1. Nakon rastuće ivice signala Clk, i postavljanja S na 0 u t7+1.4ns, u t7+2.8ns Q se postavlja na 1.

Uočimo, ponovo, da se naknadne promene ulaza D u t8 ne prenose na izlaz Q, ali se zato unose u reset leč kada u t8+1.4ns B postane 1 i u set leč kada u t8+2.8ns A postane 0. Ako se nakon t8 D ne promeni, vrednost izlaza Q postaće 0 sa sledećom rastućom ivicom signala Clk. Međutim, ako se posle t8, a pre rastuće ivice signala Clk, D promeni, vrednosti signala A i B će registrovati ovu promenu i proslediće je na izlaz Q u trenutku delovanja sledeće rastuće ivice signala Clk.

Page 102: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

102

Tipovi flip-flopova

Postoji više tipova flip-flopova koji se razlikuju po funkciji i načinu konstrukcije. Opšte karakteristike svih flip-flopova su sledeće: (a) flip-flop menja stanje sa rastućom ili opadajućom ivicom taktnog signala; (b) ulazi podataka moraju biti stabilni u vremenu tsetup pre i vremenu thold nakon aktivne ivice taktnog signala.

U primeni su četiri osnovna tipa flip-flopova: SR, JK, D i T, koji se razlikuju po broju ulaza i načinu na koji flip-flop reaguje na vrednosti koje su postavljene na njegovim ulazima. Flip-flop se opisuje grafičkim simbolom, tabelom prelaza, prenosnom funkcijom i tabelom pobude. Tabela sa Sl. 3.58 sadrži definicije četiri tipa flip-flopova. Grafički simbol pokazuje broj i tipove ulaza i izlaza. Svi flip-flopovi imaju izlazne signale Q i Q’. Vrednost na izlazu Q (pravi izlaz flip-flopa) ukazuje na tekuće stanje flip-flopa. Na izlazu Q’ je uvek prisutna komplementarna vrednost izlaza Q. Takođe, svi flip-flopovi poseduju ulaz za taktni signal. Trougao na ulazu na takt ukazuje da se flip-flop taktuje rastućom ivicom taktnog signala. Suprotno, kružić na ulazu za takt ukazuje na taktnovanje opadajućom ivicom.

Tip flip-flopa Simbol Tabela prelaza Prenosna funkcija Tabela pobude

SR

Q(next) = S + R’Q sa ograničenjem SR=0

JK

Q(next) = JQ + K’Q

D

Q(next) = D

T

Q(next) = TQ’ + T’Q

Sl. 3.58 Tipovi flip-flopova.

Svaki flip-flop ima jedan ili dva ulaza podataka. RS flip-flop ima dva ulaza, S (Set) i R (Reset) koji, kada su aktivni, setuju, odnosno resetuju flip-flop. Drugim rečima, pri S=1 i R=0, izlaz flip-flopa Q se postavlja na 1, a pri S=0 i R=1 na 0. Slično RS flip-flopu, JK flip-flop, takođe, ima dva ulaza, J i K, koji, kada su aktivni, setuju ili resetuju flip-flop. Dodatno, kada su oba ulaza J i K aktivna u isto vreme, JK flip-flop menja (tj. komplementira) svoje stanje. D flip-flop ima jedan ulaz, D (Data), koji setuje flip-flop ako je 1, odnosno resetuje flip-flop ako je 0. T flip-flop ima jedan ulaz T, koji, kada je aktivan, menja (tj. komplementira) stanje flip-flopa.

U drugoj koloni tabele sa Sl. 3.58 date su tabele prelaza, koje predstavljaju skraćenu formu tabele istinitosti. U tabeli prelaza, za svaku kombinaciju ulaznih vrednosti i svako tekuće stanje flip-flopa, tj. stanje pre rastuće ivice taktnog signala, navedeno je sledeće stanje flip-flopa, tj. stanje u koje flip-flop prelazi nakon rastuće ivice taktnog signala. Tekuće stanje flip-flopa označeno je sa Q, a sledeće sa Q(next). Tabela prelaza se koristi prilikom analize sekvencijalnog kola, kada su vrednosni ulaza u flip-flop poznate, a mi želimo da odredimo stanje flip-flopa nakon rastuće ivice taktnog signala. Na bazi tabele prelaza mogu se izvesti prenosne funkcije flip-flopova, koje su prikazane u trećoj koloni tabele sa Sl. 3.58.

U četvrtoj koloni tabele sa Sl. 3.58 prikazane su tabele pobude koje se koriste prilikom sinteze sekvencijalnih kola. Tabela pobude je inverzna tabeli prelaza i definiše ulaze flip-flopa koji su potrebni da bi flip-flop iz datog tekućeg stanja, nakon rastuće ivice taktnog signala, prešao u željeno sledeće stanje.

Page 103: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Komponente digitalnih sistema

103

Tip flip-flopa Dijagram stanja

SR

JK

D

T

Sl. 3.59 Dijagrami stanja različitih tipova flip-flopova.

Pored grafičkih simbola, tabela i funkcija, flip-flopovi se mogu jednoznačno opisati i dijagramom prelaza ili grafom stanja, kod koga je svako stanje prikazano krugom, a prelaz između stanja linijom (tj. granom) koja ima strelicu na strani odredišnog stanja. Ovakav način opisa fili-flopova prikazan je u tabeli sa Sl. 3.59. Uočimo da su svakoj grani u grafu stanja pridružene vrednosti ulaznih signala koji uslovljavaju prelaz iz jednog u drugo stanje. Takođe, treba uočiti da isto stanje može biti i izvor i odredište prelaza. Pošto se prelazi dešavaju u trenutku delovanja ivice taktnog signala, svako stanje može se tretirati kao vremenski interval između dve rastuće ivice taktnog signala.

Iz tabele sa Sl. 3.59 vidimo da dijagrami stanja svih flip-flopova imaju isti broj stanja i isti broj prelaza. Flip-flop je u stanju set kada je Q=1, odnosno, u stanju reset kada je Q=0. Uz to, svaki flip-flop može da pređe iz jednog u drugo stanje ili da ostane u istom stanju. Jedina razlika između četiri tipa flip-flopova je u vrednostima ulaznih signala koji iniciraju prelaze. Dijagrami stanja se veoma često koriste za vizuelni prikaz rada flip-flopova, kao i drugih, mnogo složenijih sekvencijalnih kola.

(a) (b) (c) (d)

Sl. 3.60 Simboli flip-flopova sa asinhronim ulazima: (a) SR flip-flop; (b) JK flip-flop; (c) D flip-flop; (d) T flip-flop.

Svaki flip-flop je obično dostupan u dve varijante: sa ili bez ulaza za direktno, ili asinhrono postavljanje, koji se koriste za setovanje (ulaz SET) i resetovanje (ulaz CLR) flip-flopa nezavisno od ostalih ulaza. Ovi ulazi se koriste za postavljanje flip-flopa u poznato početno (ili inicijalno) stanje. Na primer, stanje u koje će se flip-flop spontano postaviti nakon što je uključeno napajanje ne može se predvideti. Zato je neophodno da se pre početka normalnog, sinhronog rada, flip-flop, posredstvom asinhronih ulaza, postaviti u odgovarajuće početno stanje. Ulazi SET i CLR se zovu asinhroni zato što ne zavise od taktnog signala i zbog toga imaju prioritet nad svim ostalim sinhronim ulazima. Drugim rečima, dok je asinhroni ulaz aktivan, vrednosti ostalih ulaza flip-flopa se ignorišu. Dejstvo asinhronog ulaza počinje onog trenutka kada se na ulaz dovede aktivan naponski nivo (0 ili 1), i traje sve dok se ulaz ne deaktivira. Ako flip-flop poseduje oba asinhrona ulaza, SET i CLR, njihovo istovremeno dejstvo nije dozvoljeno. Na Sl. 3.60 su prikazani grafički simboli flip-flopova sa ulazima za direktno postavljanje sa aktivnim niskom naponskim nivoom, što je naznačeno kružićima na odgovarajućim ulazima. Kod asinhronih ulaza sa aktivnim visokim naponskim nivoom, kružići su izostavljeni.

Page 104: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

104

3.2.2 Konačni automati

Formalno, konačni automat (ili Finite-State Machine – FSM) se definisati kao uređena petorka:

<S, I, O, f, h>

gde su S, I i O skup stanja, skup ulaza i skup izlaza, respektivno, dok su f i h funkcija sledećeg stanja i funkcija izlaza. Funkcija sledećeg stanja, f, definiše se kao preslikavanje S× I → S. Drugim rečima, funkcija f svakom paru stanja i ulaznog simbola pridružuje simbol stanja. Model konačnog automata podrazumeva da je vreme podeljeno na intervale fiksnog trajanja, a da se prelaz iz jednog u drugo stanje dešava na početku svakog vremenskog intervala. Znači, za dato stanje i ulazne vrednosti u tekućem vremenskom intervalu, funkcija f definiše u kom će stanju konačni automat biti u toku sledećeg vremenskog intervala.

Funkcija izlaza, h, određuje izlazne vrednosti u tekućem stanju automata. Postoje dve vrste konačnih automata, kojima odgovaraju dve različite definicije funkcije izlaz h. Jedna vrsta se zove Murov, a druga Milijev konačni automat. Kod Murovog konačnog automata, funkcija h je definisana kao preslikavanje: S → O, što znači da je svakom stanju pridružen izlazni simbol – tj. izlaz zavisi samo od tekućeg stanja. Kod Milijevog konačnog automata, funkcija h je preslikavanje: S× I → O. U ovom slučaju, u svakom stanju, izlazni simbol je određen parom stanje – ulazni simbol, tj. izlaz zavisi od tekućeg stanja i ulaza.

Shodno definiciji konačnog automata, skupovi S, I i O mogu imati proizvoljan broj simbola. Međutim, kod praktičnih problema, barata se samo sa binarnim promenljivim, binarnim operatorima i binarnim memorijskim elementima. Iz tog razloga, funkcije f i h se definišu kao Bulove funkcije koje se realizuju uz pomoć logičkih kola.

Znači, konačni automat može modelirati bilo koje sekvencijalno kolo sa k ulaznih signala A1, ..., Ak, m flip-flopova Q1, ..., Qm i n izlaznih signala Y1, ..., Yn, kao što je prikazano na Sl. 3.61. Za jedno ovakvo sekvencijalno kolo, S, I i O predstavljaju unakrsni proizvod flip-flopova ili signala, na sledeći način:

S = Q1×Q2× ... ×Qm

I = A1×A2× ... ×Ak O = Y1 ×Y2 × ... ×Yn

S obzirom da vrednost flip-flopa ili signala može biti samo 0 ili 1, svaki element iz S, I i O predstavljen je kao niz nula i jedinica dužine m, k i n, respektivno.

Sl. 3.61 Model konačnog automata.

Vremenski interval konačnog automata definisan je taktnim signalom i zove se taktni ciklus.

Svaki konačni automat može se realizovati uz pomoć flip-flopova i logičkih kola. Sadržaj flip-flopova definiše stanje konačnog automata, dok su funkcije f i h realizovane u obliku kombinacionih mreža. Uopšteni blok dijagrami konačnih automata Murovog i Milijevog tipa, prikazani su na Sl. 3.62.

Page 105: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Komponente digitalnih sistema

105

Sl. 3.62 Tipovi konačnih automata: (a) Murov; (b) Milijev.

3.2.3 Sinteza sekvencijalne logike

Opšta procedura za sintezu sekvencijalne logike prikazana je na Sl. 3.63. Kao što vidimo, ova procedura počinje opisom u prirodnom jeziku, eventualno dopunjenim sa jednim ili više vremenskih dijagram, ili ponekada, formalnim opisom u jeziku kao što je VHDL ili Verilog. Počev od ovog opisa, prvi korak u procesu sinteze sastoji se od razvoja dijagrama stanja i konvertovanja dijagrama stanja u tabelu sledećeg stanja i tabelu izlaza. Zatim sledi optimizacija broja stanja, koja se sastoji u izbacivanju redundantnih i spajanju ekvivalentnih stanja. Redukcija broja stanja je bitna zato što manji broj stanja zahteva manji broj flip-flopova. S obzirom da svako stanje mora biti predstavljeno n-torkom vrednosti flip-flopova, neophodno je svim stanjima dodeliti različite binarne n-torke. Ovaj postupak se zove kodiranje stanja i predstavlja bitan korak sinteze, zato što pravilno kodiranje može značajno da pojednostavi ulaznu i izlaznu logiku. Nakon kodiranja stanja, u mogućnosti smo da izvedemo binarne forme Bulovih jednačina sledećeg stanja i izlaza.

Page 106: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

106

Imajući u vidu da će različiti tipovi flip-flopova zahtevati različitu količinu logike za realizaciju funkcija sledećeg stanja, sledeći zadatak sinteze sastoji se u izboru tipa flip-flopa. Nakon izbora tipa flip-flopova, spremni smo za izvođenje jednačina za pobudu ulaza flip-flopova, što obuhvata i optimizaciju logičke realizacije pobudnih i izlaznih Bulovih jednačina, što će nam omogućiti da nacrtamo logičku šemu, koja će nam poslužiti kao osnova za generisanje vremenskih dijagrama.

Poslednji korak u postupku sinteze sekvencijalne logike je simulacija logičke šeme i poređenje izlaza sa izvedenim vremenskim dijagramima kao bi se utvrdilo da li se logička šema zaista realizuje željeno ponašanje. U narednim odeljcima, procedura sinteze sekvencijalne logike biće opisana sa više detalja.

3.2.3.1 Unos modela konačnog automata

Projektovanje sekvencijalne logike počinje generisanjem dijagrama stanja i/ili tabela sledećeg stanja i izlaza. Inicijalno, ove tabele moraju biti izvedene na osnovu opisa ponašanja sekvencijalnog kola datog u prirodnom jeziku. Nažalost opisi u prirodnom jeziku često mogu biti dvosmisleni, nepotpuni i obično su fokusirani samo na glavnu funkciju, bez nabranja svih mogućih slučajeva ponašanja konačnog automata. Iz tog razloga, opis u prirodnom jeziku se ponekada dopunjuje vremenskim dijagramima. Međutim, i vremenski dijagrami mogu biti nepotpuni, zato što oni ne pokazuju odziv kola za sve moguće ulazne sekvence, već samo na one najvažnije. Znači, u većini slučajeva, bolje je umesto opisa u prirodnom jeziku koristiti jezik za opis hardvera, kao što je VHDL ili Verilog, ili neku grafičku formu kao što je dijagram toka ili ASM dijagram. Bez obzira na to koji se od navedenih načina koristi za modelovanje konačnog automata, konstrukcija modela konačnog automata predstavlja kreativni deo procesa projektovanja.

Sl. 3.63 Procedura sinteze konačnih

automata

PRIMER 3.8 Obostrani brojač po modulu 3 Problem: Izvesti dijagram stanja za obostrani brojač po modulu 3. Brojač ima dva ulaza: dozvola brojanja (C) i smer brojanja (D). Kada je C=1, brojač broji u smeru koji je određen ulazom D, dok za C=0, brojač ne broji. Brojač broji unapred ako je D=0, odnosno, unazad ako je D=1. Brojač ima jedan izlaz, Y, koji se postavlja na Y=1 kada pri brojanju unapred brojač dođe u stanje 2, odnosno u stanje 0, kada broji unazad. Simbol brojača je prikazan na Sl. 3.64(a).

CD=11

CD=10CD=11

CD=10

CD=11

CD=10CD=1

1

CD=10

Sl. 3.64 Dijagram stanja za brojač po modulu 3: (a) simbol brojača; (b) delimični

dijagram stanja (brojanje napred i nazad); (c) delimični dijagram stanja (promene smera brojanja); (d) konačni dijagram stanja.

Page 107: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Komponente digitalnih sistema

107

Iako je dijagram stanja izveden u prethodnom promeru potpun, važno je napomenuti da ovaj dijagram ipak ne sadrži minimalan broj stanja. U dijagramu sa Sl. 3.64(d) lako se uočavaju različiti slučajevi ponašanja brojača. Međutim, kod projektovanja sekvencijalne logike, jasnoća prikaza obično nije cilj, već su primarni ciljevi cena i performanse realizacije. Imajući to u vidu, u sledećem odeljku biće razmatran postupak za minimizaciju broja stanja.

3.2.3.2 Minimizacija stanja

Cilj minimizacije stanje je smanjenje broja stanja sekvencijalnog kola. Sekvencijalno kolo sa manjim brojem stanja zahteva manji broj flip-flopova, a time je i cena realizacije kola niža. Treba napomenuti da smanjenje broja stanje ne mora obaveyno da smanji broj potrebnih flip-flopova, osim ako se broj stanja ne smanji ispod tekućeg nivoa stepena dvojke. Na primer, sekvencijalno kolo sa m stanja zahteva m2log flip-flopova. S

obzirom da će smanjenje broja stanja za ∆ zahtevati )(log2 ∆−m stanja, ∆ mora biti takav broj da je m2log -

)(log2 ∆−m ≥ 1. Razmotrimo, na primer, kolo sa m=6 stanja. Smanjenje broja stanja na pet neće smanjiti broj

flip-flopova zato što je 6log2= 5log2

=3. Sa druge strane, smanjenje broja stanja na četiri smanjiće broj flip-

flopova za 1, zato što je 4log2=2.

Međutim, čak iako se smanjenje broja stanje nema za posledicu smanjenje broja flip-flopova, kolo sam manjim brojem stanja imaće jednostavnije funkcije sledećeg stanja i izlaza, u smislu da će broj gejtova potrebnih za realizaciju ovih funkcija biti manji i/ili će broj potrebnih ulaza u gejtove biti manji. Prednost korišćenja gejtova sa manjim brojem ulaza je u tome što su takvi gejtovi brži, što znači da će i kašnjenje sekvencijalnog kola biti manje, a to nam omogućava povećanje taktne frekvencije i ukupnih performansi kola.

U opštem slučaju, minimizacija stanja je zasnovana na konceptu ekvivalentnog ponašanje konačnih automata. Dva konačna automata su ekvivalentna ako za svaku sekvencu ulaznih simbola generišu istu sekvencu izlaznih simbola. U nekim slučajevima, ekvivalentni konačni automati mogu imati različiti broj stanja i mogu prolaziti kroz različita stanja za istu ulaznu sekvencu, ali, bez obzira na to, sve dok generišu istu izlaznu sekvencu oni se smatraju ekvivalentnim. Dakle, možemo zaključiti da u konačnom automatu sa većim brojem stanja postoje stanja koja su ekvivalentna i mogu se spojiti u jedno stanje.

Evivalentnost stanja može se definisati na osnovu vrednosti izlaza i sledećeg stanja koje važe u stanjim čija se ekvivalentnost ispituje. Formalno, dva stanja sj i sk su ekvivalentna, sj ≡ sk, ako i samo ako su ispunjena sledeća dva uslova:

• Oba stanja, sj i sk, generišu iste izlazne simbole za svaki ulazni simbol i, tj. h(sj,i)=h(sk,i).

• Oba stanja imaju ekvivalentna sledeća stanja za svaki ulazni simbol i, tj. f(sj,i) ≡ f(sk,i).

PRIMER 3.8 (nastavak …)

Rešenje: Na osnovu opisa problema, možemo zaključiti da brojač zahteva barem dva flip-flopa, s obzirom da mora da pamti tri cifre: 0, 1 i 2. Uz to, pošto brojač može da broji i unapred i unazad, potrebne su dve sekvence: napred i nazad. Sekvenca napred sastoji se od tri stanja: u0, u1 i u2, pri čemu sve dok je CD=10, brojač prolazi rednom kroz stanja u0, u1 i u2 i vraća se u početno stanje u0. Slično, kada brojač broji unazad (CD=11), on takođe prolazi kroz tri stanja, koja su u ovom slučaju d0, d1 i d2. U sekvenci nazad, redosled stanja kroz koja brojač prolazi je d2, d1 i d0, a nakon stanja d0 sledi povratak u stanje d2. Sekvence napred i nazad prikazane su na Sl. 3.64(b).

Prilikom kreiranja dijagrama stanja za brojač, moramo voditi računa o mogućnosti da brojač promeni smer brojanja za vreme dok broji – drugim rečima, potrebno je omogućiti da vrednost ulaza D može biti promenjena pri C=1. Iako ovaj slučaj nije eksplicitno naveden u postavci problema, možemo usvojiti da će nakon promene smera brojanja, brojač nastaviti brojanje u suprotnom smeru počev od odgovarajućeg stanja iz nove sekvence. Znači, ako se D promeni sa 0 na 1, brojač prelazi iz stanja ui u stanje d(i-1)mod3, za i=0, 1 i 2. U suprotnom, ako se D promeni sa 1 na 0, brojač će iz stanja di preći u stanje u(i+1)mod3, za i=0, 1 i 2. Šest novih prelaza, koji su posledica promene smera brojanja, dodati su u dijagram stanja sa Sl. 3.64(c).

Međutim, dijagram stanja neće biti potpun ako se ne uključi slučaj kada se promenom ulaza C sa 1 na 0 zabrani brojanje. U tom slučaju pretpostavićemo da brojač ostaju u zatečenom stanju sve dok C ponovo ne postane 1. Prelazi koji odgovaraju ovom ponašanju, dodati su u dijagram stanja sa Sl. 3.64(d), koji predstavlja i konačni oblik dijagrama stanja obostranog brojača po modulu 3.

Page 108: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

108

Na osnovu definicije ekvivalentnosti stanja, možemo formulisati jednostavnu proceduru za minimizaciju stanja konačnog automata. Shodno ovoj proceduri, najpre se stanja konačnog automata grupišu u klase ekvivalencije, a zatim se konstruiše novi konačni automat, sa minimalnim brojem stanja, čije svako stanje reprezentuje jednu klasu ekvivalencije polaznog automata.

U praksi, ova procedura se obavlja u dva koraka. U prvom koraku, porede se izlazni simboli za svako stanje i svaki ulazni simbol. Cilj ovog poređenja je grupisanje stanja na takav način da sva stanja iz iste grupe generišu isti izlazni simbol za svaki ulazni simbol. U drugom koraku, grupe se dele na podgrupe na takav način da za isti ulazni simbol, sledeća stanja svih stanja iz iste podgrupe pripadaju istoj grupi.

U nekim slučajevima, nakon podele, sledeća stanja svih stanja iz iste podgrupe iako u istoj grupi neće pripadati istoj podgrupi. U takvim slučajevima, drugi korak procedure mora biti ponovljen i to, ako je potrebno, više puta, sve dok je dalja podela moguća. Konačno, svaka podgrupa predstavlja klasu ekvivalencije kojoj odgovara jedno stanje u minimalnom konačnom automatu. Procedura minimizacije stanja biće ilustrovana na primeru obostranog brojača po modulu 3.

PRIMER 3.9 Minimizacija stanja konačnog automata

Problem: Naći minimalni konačni automat obostranog brojača po modulu 3.

Rešenje: Kao što se vidi sa Sl. 3.64(d), obostrani brojač po modulu 3 ima šest stanja. Dijagrama stanja sa Sl. 3.64(d), možemo konvertovati u tabelu sledećeg-stanja/izlaza, kao što je prikazano na Sl. 3.65(a). Polazeći od ove tabela, u mogućnosti smo da prethodno opisanu proceduru primenimo na skup stanja sa Sl. 3.65(b). Uočimo da treba početi od skupa svih stanja, a zatim odrediti izlazne vrednosti za svaku kombinaciju ulaznih vrednosti. Za ulazne vrednosti CD=0X, 10, 11, vrednost izlaznog signala biće Y=0,0,1 ili 0,0,0 ili 0,1,0 (odgovara različitim kolonama u tabeli izlaznih vrednosti). Na osnovu toga, možemo kreirati tri grupe: G0={u0,d0}, G1={u1,d1} i G2={u2,d2}. Zatim, za svako stanje u svakoj grupi i svaki skup ulaznih vrednosti određujemo sledeće stanje. Kao što se može videti, za svaku vrednost ulaznih signala, sledeće stanje svakog stanja iz bilo koje grupi pripada istoj grupi. Znači, dalja podela nije potrebna. Pošto svaka grupa predstavlja klasu ekvivalentnih stanja, grupe G0, G1 i G2 postaju stanja s0, s1 i s2 u minimalnom konačnom automatu. Tabela stanja/izlaza minimalnog konačnog automata prikazana je na Sl. 3.65(c), a dijagram stanja na Sl. 3.65(d).

CD=1

1CD

=10 CD=10

CD=11

Sl. 3.65 Redukcija stanja obostranog brojača po modulu 3: Polazna tabela stanja; (b) podela na klase

ekvivalencije; (c) konačna tabela sledećeg-stanja/izlaza; (d) minimalni konačni automat.

Page 109: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Komponente digitalnih sistema

109

3.2.3.3 Kodiranje stanja

Cena i kašnjenje ulazne i izlazne logike konačnog automata značajno zavise od načina na koji su simboličkim stanjima pridružene Bulove vrednosti. Na primer, konačni automat sa četiri stanja s0, s1, s2 i s3 može se realizovati sa dva flip-flopa, koji bi sadržali vrednosti 00, 01, 10 ili 11. U ovom slučaju, postoji 4!=24 mogućih kodiranja četiri stanja, kao što je prikazano u tabeli sa Sl. 3.66. U opštem slučaju, broj različitih kodiranja n stanja može biti veći od n!, pošto za kodiranje stanja možemo koristiti više od log2n bita. Iz tog razloga, eksplicitno ispitivanje i procena cene i kašnjenja za svako pojedinačno kodiranje može biti naporan posao, čak i za mali broj stanja. U cilju prevazilaženja ovog problema, projektanti koriste različite strategije ili heuristike za kodiranje stanja. U nastavku ovog odeljka biće objašnjene tri najčešće korišćene strategije: minimalna promena bitova, prioritetna susednost i one-hot kodiranje.

Strategija minimalne-promene-bitova dodeljuje Bulove vrednosti stanjima na takav način da je ukupan broj bita koji se menja prilikom promene stanja minimalan. Drugim rečima, ako svakoj grani u grafu stanja dodelimo težinu jednaku broju bita na kojima se polazno i odredišno stanje razlikuju, optimalno kodiranje je ono sa najmanjom sumom težina grana u grafu stanja.

Redni broj s0 s1 s2 s3 Redni

broj s0 s1 s2 s3 Redni broj s0 s1 s2 s3

1 00 01 10 11 9 01 10 00 11 17 10 11 00 01 2 00 01 11 10 10 01 10 11 00 18 10 11 01 00 3 00 10 01 11 11 01 11 00 10 19 11 00 01 10 4 00 10 11 01 12 01 11 10 00 20 11 00 10 01 5 00 11 00 10 13 10 00 01 11 21 11 01 00 10 6 00 11 10 01 14 10 00 11 01 22 11 01 10 00 7 01 00 10 11 15 10 01 00 11 23 11 10 00 01 8 01 00 11 10 16 10 01 11 00 24 11 10 01 00

Sl. 3.66 Dvadesetčetiri različita kodiranja četiri stanja

Na Sl. 3.67(a) i (b) prikazana su dva kodiranja istog grafa stanja. U kodiranju sa Sl. 3.67(a), postoje dve grane sa težinom 1 i dve grane sa težinom 2, što rezultuje u ukupnoj težini od 6. Sa druge strane, kod kodiranja sa minimalnom-promenom-bitova (Sl. 3.67(b)), sve četiri grane imaju težinu 1. Kodiranje sa Sl. 3.67(b) ima minimalnu težinu zato što se kodovi bilo koja dva stanja moraju razlikovati barem na jednoj bitskoj poziciji. Strategija minimalne-promene-bitova se zasniva na zapažanju da je za svaki bit koji se menja pri promeni stanja potrebno setovati ili resetovati jedan flip-flop, što u logici sledećeg stanja zahteva barem jedan dodatni AND i jedan dodatni OR gejt, za svaki flip-flop. Što je broj bita koji se menjaju manji, to će biti potrebno manje dodatne logike.

Sl. 3.67 Dva različita kodiranja 2-bitnog binarnog brojača: (a) trivijalno kodiranje; (b) kodiranje sa minimalnom-promenom-bitova.

Druga strategija za kodiranje stanja konačnog automata, prioritetna-susednost, dodeljuje susedne kodne reči stanjima koja imaju zajednički izvor (prethodno stanje), odredište (sledeće stanje) ili izlaz. Dve kodne reči su susedne ako se razlikuju samo na jednoj bitskoj poziciji. Najviši, tj. prvi, nivo prioriteta se daje stanjima koja za datu ulaznu reč imaju isto sledeće stanje. Opravdanje za ovakav način dodele prioriteta nalazi se u činjenici da će se tokom minimizacije funkcija sledećeg stanja ista kodna reč javiti u dva susedna polja Karnoove mape, što će omogućiti da se za svaku 1 u kodu sledećeg stanja broj literala u izrazu za funkciju smanji za jedan. Sledeći, niži, tj. drugi, nivo prioriteta dodeljuje se stanjima koja imaju isto prethodno stanje, s obzirom da će se kodovi takvih stanja, takođe, naći u susednim poljima Karnoove mape. Uočimo da će se to desiti samo pod uslovom da se ulazne vrednosti, koje iniciraju prelaz, razlikuju samo na jednoj bitskoj poziciji. Konačno, treći nivo prioriteta se daje stanjima koja za istu ulaznu vrednosti imaju istu izlaznu vrednost, s obzirom da će kondiranje ovakvih stanja susednim kodnim rečima kreirati 1-kub u Karnoovoj mapi prilikom minimizacije funkcija izlaznih signala.

Na Sl. 3.68(a) prikazan je dijagram stanja sa četiri stanja. Uočimo da stanja s1 i s2 zadovoljavaju uslov prvog nivoa prioriteta: ulazna vrednost 0 oba stanja, s1 i s0, vodi u isto stanje s3. Takođe, stanja s1 i s2 zadovoljavaju i kriterijum za drugi nivo prioriteta, jer su sledeća stanja istog stanja, s3. Stanja s0 i s1 daju isti izlaz, 0, za isti ulaz,

Page 110: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

110

0, te stoga zadovoljavaju uslov trećeg nivoa prioriteta, što je slučaj i sa parom stanja s2 i s3. Liste prioriteta, za sva tri nivoa prioriteta, navedene su na Sl. 3.68(b). Svaka lista se sastoji od jedne ili više grupa od dva, ili, u opštem slučaju, više stanja. Prilikom kodiranja, teži se da kodne reči dodeljene stanjima iz iste prioritetne grupe budu susedne. Međutim, ovaj zahtev neće biti moguće ostvariti u svim slučajevima i tada prednost dobijaju prioritetne grupe višeg prioriteta. Na Sl. 3.68(c) prikazano je jedno moguće kodiranje stanja za dijagram sa Sl. 3.68(a), shodno strategiji prioritetne-susednosti.

Sl. 3.68 Kodiranje stanja zasnovano na prioritetnom-susedstvu: (a) polazni dijagram stanja; (b) liste prioriteta; (c) moguće kodiranje.

Treća strategija kodiranja stanja, one-hot kodiranje, koristi redundantno kodiranje kod koga se svakom stanju dodeljuje jedan flip-flop. Drugim rečima, svako stanje se prepoznaje po 1 u flip-flopu koji je pridružen tom stanju, dok pri tome svi ostali flip-flopovi imaju vrednost 0. To praktično znači da će pri prelazu iz jednog u neko drugo stanje, flip-flop koji odgovara prvom stanju biti resetovan, dok će flip-flop pridružen drugom stanju biti setovan. Ime ovog načina kodiranja, one-hot, asocira na “vruć krompir” koje prelazi iz ruke u ruku, tj. na 1-cu koja prelazi iz flip-flopa u flip-flop. Očigledno, one-hot način kodiranja je praktično primenljiv samo kod konačnih automata sa malim brojem stanja.

U opštem slučaju, najbolja strategija za kodiranje stanja jeste odrediti nekoliko alternativnih kodiranja, za svako kodiranje proceniti cenu i kašnjenje, i onda izabrati najbolje.

PRIMER 3.10 Kodiranje stanja brojača po modulu 3

Problem: Za obostrani brojač po modulu 3, definisan minimalnom tabelom sledećeg-stanja/izlaza sa Sl. 3.65(c), naći kodiranje koje minimizuje cenu i kašnjenje kombinacione logike brojača.

Rešenje: Kao što se može videti sa Sl. 3.65(d), brojač ima samo tri stanja, za čije kodiranje se koriste dva bita. U skupu od tri stanja postoje tri para stanja. Bez obzira na način kodiranja, dva od tri para stanja uvek će sadržati susedne kodne reči, dok će se kodne reči dodeljene stanjima iz trećeg para razlikovati na obe bitske pozicije. Takođe, pošto sa dva bita, Q1 i Q0, možemo kodirati četiri stanja, jedna dvo-bitna kombinacije ostaće neiskorišćena. U startu, eliminisaćemo kombinaciju Q1Q0=11, pošto ćemo na taj način smanjiti broj 1-ca prilikom logičke minimizacije. Jedno moguće kodiranje je kodiranje A sa Sl. 3.69. Kodiranje A je u skladu sa strategijom kodiranja minimalna-promena-bitova.

Sl. 3.69 Moguća kodiranja stanja obostranog brojača po modulu 3.

Ako koristimo strategiju prioritetne-susednosti, primetićemo da ni jedan od parova stanje ne zadovoljava kriterijume prvog i drugog nivoa prioriteta. Shodno kriterijumu trećeg nivoa prioriteta, susedne kodne reče bi trebalo dodeliti stanjima s0 i s1, kao i stanjima s1 i s2, što je već zadovoljeno kodiranjem A. Kod ovog jednostavnog problema, možemo, takođe, koristiti strategiju koja pojednostavljuje dekodiranje stanja, tako što ćemo kombinacije Q1Q0=01 i Q1Q0=10 dodeliti stanjima s0 i s2, koja oba daju Y=1. Ovakav način kodiranja, označen kao kodiranje B, prikazan je na Sl. 3.69. Osnovna prednost kodiranja B je u tome što prilikom realizacije izlazne logike smanjuje broj potrebnih ulaza u AND gejt. Konačno, treća strategija, one-hot, daje kodiranje C sa Sl. 3.69.

Page 111: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Komponente digitalnih sistema

111

Kodiranja A, B i C predstavljaju kandidate između kojih treba izabrati jedno rešenje. Konačni izbor ćemo izvršiti nakon analize cene i kašnjenja implementacije ulazne i izlazne logike koje odgovaraju svakom od tri alternativna kodiranja. U tom cilju, izvešćemo jednačine sledećeg stanja i izlaza i proceniti cenu i kašnjenje odgovarajućih realizacija u vidu dvo-nivolske NAND mreže. Da bi smo pojednostavili analizu, usvojićemo da su prave i komplementarne vrednosti promenljivih uvek dostupne i da ne zahtevaju dodatni hardver. Ova pretpostavka je uvek tačna za promenljive koje se čuvaju u flip-flopovima, kao i za ulazne promenljive jer se na svakom ulazu digitalnog modula, po pravilu, koriste dva redno vezana invertora kako bi se regenerisao nivo ulaznog signala. Dupli invertori na ulazu unose konstantno kašnjenje i cenu, i mogu biti zanemareni prilikom analize jer ne utiču na rezultat poređenja dva alternativna rešenja.

Na Sl. 3.71 je prikazano kako se procenjuje cena i kašnjenje za kodiranje A. Najpre su kreirane Karnoove mape za funkcije sledećeg stanja i izlaza (Sl. 3.71(a) i (b)), a zatim su na osnovu Karnoovih mapa izvedene jednačine pobude flip-flopova i jednačina izlaza (Sl. 3.71(c)). Konačno, svaka od ovih jednačina je realizovana u obliku dvo-nivolske NAND mreže. Kao što se može videti, ukupna cena je jednaka cena(Q1)+cena(Q2)+cena(Y) =24+24+18=66, maksimalno ulazno kašnjenje iznosi 4.0ns, dok je izlazno kašnjenje jednako 3.6ns.

Na Sl. 3.71 je prikazana slična analiza koja se odnosi na kodiranje B. Kao što se moglo i očekivati, cena i kašnjenje izlazne logike su donekle poboljšani, s obzirom da je ukupna cena jednaka cena(Q1)+cena(Q2)+cena(Y)=24+24+16=64, maksimalno ulazno kašnjenje je 4.0ns, dok je izlazno kašnjenje 3.2ns.

Sl. 3.71 Procena cene i kašnjenja kodiranja A: (a) mapa sledećeg stanja; (b) izlazna mapa; (c) pobudne i

izlazna jednačina; (d) procena cene i kašnjenja.

Sl. 3.71 Procena cene i kašnjenja kodiranja B: (a) mapa sledećeg stanja; (b) izlazna mapa; (c) pobudne i

izlazna je dnačina; (d) procena cene i kašnjenja.

Page 112: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

112

U opštem slučaju, veoma je teško proceniti uticaj kodiranja stanja na karakteristike konačnog rešenja, osim ako se ne postupi kao u prethodnom primeru, gde smo najpre izabrali više različitih kodiranja, a zatim realizovali svako od njih i konačno obavili poređenje u pogledu cene i kašnjenja. U nastavku ovog poglavlja, za realizaciju brojača po modulu 3 koristićemo kodiranje A.

3.2.3.4 Izbor memorijskih elemenata

Nakon obavljene minimizacije stanja i kodiranja stanja, sledeći korak u procesu sinteze konačnog automata je izbor tipa flip-flopa. Kao što je prikazano u tabeli sa Sl. 3.58, postoje četiri tipa flip-flopova. U opštem slučaju, T flip-flop predstavlja dobar izbor kod sekvencijalnih kola tipa brojača, gde flip-flopovi često menjaju stanje. D flip-flopovi se obično koriste u aplikacijama gde se ulazna informacija pamti na neko vreme, a koristi kasnije. Praktično, D flip-flop se koristi kao memorija za privremeno čuvanje informacija. SR flip-flop se koristi u slučajevima kada različiti signali setuju i resetuju flip-flopove. Konačno JK flip-flop, koji je i najsloženiji tip flip-flopa, je koristan kada je potrebno kombinovati ponašanje T i SR flip-flopova.

Na osnovu prethodne diskusije, možemo zaključiti da su za sintezu konačnih automata najkorisniji SR i JK flip-flopovi. Međutim, iako upotreba ova dva tipa flip-flopova obično redukuje cenu ulazne logike, oni zahtevaju dva puta više veza u odnosu na T i D flip-flopove. U opštem slučaju, T i D flip-flopovi su pogodniji za VLSI implementacije konačnih automata, s obzirom da zahtevaju manji broj veza. U cilju poređenja efikasnosti različitih tipova flip-flopova, za svaki od četiri tipa flip-flopova, izvešćemo izraze za funkcije ulazne logike brojača po modulu 3.

Procena cene i kašnjenja kodiranja C prikazana je na Sl. 3.72. Uočimo da su cena i kašnjenje pobudnih jednačina smanjenji, ali je zato ukupna cena mnogo veća od cena dva prethodna rešenja. Glavno razlog za povećanje cene je korišćenje tri umesto dva flip-flopa. Kao rezultat toga, ukupna cena iznosi cena(Q1)+cena(Q2)+cena(Y)= 22+22+22+16=82. Sa druge strane, ulazno kašnjenje je smanjeno na 3.6ns, dok je izlazno kašnjenje isto kao kod kodiranja B.

Sl. 3.72 Procena cene i kašnjenja kodiranja C: (a) mapa sledećeg stanja; (b) izlazna mapa; (c) pobudne i izlazna jednačina; (d) procena cene i kašnjenja.

Na osnovu analiziranih alternativnih kodiranja, možemo zaključiti da kodiranje C daje najbržu i najskuplju realizaciju, dok kodiranje B zahteva najjeftiniju realizaciju, koja je međutim sporija od kodiranja C. Konačno, realizacija kodiranja A je veoma slična realizaciji kodiranja B, iako je donekle nižih performansi.

Page 113: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Komponente digitalnih sistema

113

PRIMER 3.11 Izbor tipa flip-flopa

Problem: Za obostrani brojač po modulu 3, sa kodiranjem stanja u skladu sa kodiranjem A sa slike, izabrati tip flip-flopa tako da cena i/ili kašnjenje ulazne logike bude minimalno.

Rešenje: Počećemo od tabele sledećih stanja brojača po modulu 3, koja je prikazana na Sl. 3.73(a). Da bi smo izveli jednačine pobude za različite tipove flip-flopova, koristićemo tabele pobude flip-flopova sa Sl. 3.73(b). Zatim, u svakom paru tekuće-sledeće stanje iz tabele sledećih stanja, zamenjujemo sledeće stanje odgovarajućim ulaznim vrednostima, koje očitavamo iz tabele pobude konkretnog flip-flopa. Na ovaj način, u mogućnosti smo da kreiramo Karnoove mape za ulaze flip-flopva SR, JK, T i D tipa, koje su prikazane na Sl. 3.73(c), (d), (e) i (f). Uočimo da Karnoove mape za ulaze flip-flopova, u suštini, kombinuju četiri mape, u slučaju SR i JK flip-flopova, odnosno dve mape, u slučaju T i D flip-flopova. Na osnovu ovih Karnoovih mapa, za svaki ulaz flip-flopa možemo izvesti minimalni izraz. Izvedeni izrazi, zajedno sa procenjenom cenom i kašnjenjem, prikazani su ispod odgovarajućih Karnoovih mapa. Procenjene cene i kašnjenja ne uzimaju u obzir ulazne drajvere (ili invertore), kao ni cenu i kašnjenje flip-flopova.

Na osnovu procenjenih cena i kašnjenja, možemo zaključiti da realizacija koja koristi JK flip-flopove ima najmanju cenu i najmanje kašnjenje. To je najvećim delom zbog toga što u ovom se slučaju za realizaciju funkcija J1 i J0 može koristiti jedan AOI gejt umesto dva nivoa NAND gejtova. Međutim, u mnogim slučajevima, kada je broj stanja u kolu koje se projektuje veliki, prednost JK u odnosu na ostale tipove flip-flopova neće biti tako velika. Takođe, možemo zaključiti da su cene i kašnjenja realizacija na bazi T, D i SR flip-flopova približno ista.

Sl. 3.73 Realizacija brojača po modulu 3 pomoću različitih tipova flip-flopova: (a) tabela sledećih stanja za

kodiranje A; (b) tabela pobude flip-flopova; (c) realizacija pomoću SR flip-flopova; (d) realizacija pomoću JK flip-flopova; (e) realizacija pomoću T flip-flopova; (f) realizacija pomoću D flip-flopova.

Page 114: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

114

3.2.3.5 Optimizacija i tajming

Pretposlednji korak procedure sinteze sekvencijalne logike sastoji se u mapiranju ulazne i izlazne logike na komponente iz raspoložive biblioteke gejtova. U slučaju brojača po modulu 3, već smo koristili AOI gejtove kada smo izračunavali kašnjenje i cenu realizacije pomoću JK flip-flopova.

Nakon tehnološkog mapiranja, u mogućnosti smo da nacrtamo logičku šemu koja će na vizuelni način predstaviti sve gejtove i veze brojača. Na primer, na Sl. 3.74 je prikazana logička šema obostranog brojača po modulu tri realizovanog pomoću JK flip-flopova. (Jednačine izlazne logike izvedene su na Sl. 3.73(c).) Kao što se vidi na Sl. 3.74, na ulazima kola postavljeni su invertori. Na taj način obezbeđuje se veća pobudna struja, što će smanjiti kašnjenje usled punjenja i pražnjenja parazitnih kapacitivnosti veza između ulaza i gejtova ulazne logike. Uočimo da je logička šema namenjena projektantu, za vizuelni pregled, a da je za korišćenje u softverima za simulaciju i sintezu, logičku mrežu potrebno konvertovati u netlistu odgovarajućeg formata.

J Q

K Q’

J Q

K Q’

C D

Clk

Y

Q1'Q1

Q0'

Q0

Ulazno/izlazna kašnjenja

C,D Clk 4.4Clk Y 7.6C,D Y 5.6Clk Clk 6.4

(a) (b)

2.4

2.4

4.0

4.0

1.8

2.2

1.4

1 1

11

Sl. 3.74 Logička šema obostranog brojača po modulu 3: (a) logička šema; (b) tabela kašnjenja.

U poslednjem koraku procedure za sintezu sekvencijalne logike, a na osnovu logičke šeme i poznatih kašnjenja signala kroz gejtove i flip-flopove kreira se vremenski dijagram. Vremenski dijagram brojača po modulu 3 prikazan je na Sl. 3.75. Uočimo da kašnjenja naznačena u vremenskom dijagramu odgovaraju kašnjenjima datim na Sl. 3.74(b). Kao što se vidi sa Sl. 3.75, rad brojača je dozvoljen u trenutku t0, međutim, brojač ne menja stanje sve do prve rastuće ivice taktnog signala Clk (trenutak t1). Brojač ulazi u stanje s1 (Q1Q0=01) u trenutku t1+4.0ns. Nakon druge rastuće ivice, brojač ulazi u stanje s2 (Q1Q0=10) u trenutku t2+4.0ns. Izlazni signal Y postaje jednak 1 u trenutku t2+7.2ns. Nakon što je u trenutku t4 signal D postavljen na 0, izlaz Y ponovo postaje jednak 1 u t4+5.6ns (zato što Y mora biti 1 u stanju s0 ako je CD=11). Nakon toga, brojač ulazi u stanje s2 (Q1Q0=10) u t5+4.0ns, dok se Y vraća na 0 u t5+7.6ns (zato što Y mora biti 0 u stanju s2 ako je CD=11). Konačno, u trenutku t6+4.0ns, brojač ulazi u stanje s1 (Q1Q0=01), što je ujedno i poslednje stanje prikazano u vremenskom dijagramu.

Page 115: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Komponente digitalnih sistema

115

Sl. 3.75 Vremenski dijagram brojača po modulu 3.

Vremenski dijagrami ovog tipa se koriste za verifikaciju ponašanja sintetizovanog kola, kao i za generisanje ulaznih i izlaznih talasnih oblika za potrebe simulacije. Za dati skup ulaznih talasnih oblika, simulator će generisati talasne oblike izlaznih signala, koji se porede sa očekivanim talasnim oblicima izlaznih signala dobijenih na osnovu logičke šeme, specifikacije kola ili nekog drugog oblika bihejvioralnog opisa. Talasni oblici ulaznih i izlaznih signala se ponekada zovu test vektori, pošto će, takođe, biti korišćeni i prilikom testiranja kola nakon što je ono fabrikovano.

3.2.4 Memorijske komponente

Osnovna namena memorijskih komponenti je čuvanje podataka i obavljanje jednostavnih transformacija podataka, kao što su brojanje i pomeranje memorisanog sadržaja. U ovom poglavlju biće definisani i projektovani različiti tipovi memorijskih komponenti, kao što su: registri, brojači, RAM memorija, stek i FIFO. Takođe, biće razmatrano nekoliko tipova staza podataka i upravljačkih jedinica.

3.2.4.1 Registri

Registar je memorijska komponenta koja se sastoji od n flip-flopova sa zajedničkim taktnim signalom. Sinhronizovano sa rastućom ivicom taktnog signala, u svaki flip-flop upisuje se jedan bit informacije. U svom osnovnom obliku, pored taktnog signala, registar ima n ulaza i n izlaza. Na Sl. 3.76 je prikazan primer 4-bitnog registra. Grafički simbol 4-bitnog registra dat je na Sl. 3.76(a), dok je na Sl. 3.76(b) prikazana njegova unutrašnja struktura, koju čine četiri paralelno povezana D flip-flopa.

Sl. 3.76 4-bitni registar: (a) grafički simbol; (b) unutrašnja struktura.

Funkcionalnost osnovne varijante registra, prikazane na Sl. 3.76, može se proširiti dodavanjem različitih upravljačkih signala. Na primer, ako registar treba biti resetovan ili setovan nezavisno od taktnog signala, bilo pri uključenju napajanja, bilo pri pojavi nekih specifičnih događaja, mogu se dodati signali za asinhrono resetovanje i setovanje. Takvo jedno proširenje se postiže zamenom jednostavnih flip-flopova sa Sl. 3.76(b), flip-flopovima sa ulazima za direktno postavljanje, kao što je prikazano na Sl. 3.77.

Kao što se vidi na Sl. 3.77, kratkotrajnim aktiviranjem signala Clear sadržaj registra se briše ili resetuje, tj. postavlja na “sve nule”. Slično, registar se setuje, tj. njegov sadržaj postaviti na “sve jedinice”, kratkotrajnim

Page 116: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

116

aktiviranjem signala Set. (S obzirom da je aktivni nivo signala Clear i Set nizak, aktiviranje jednog od ova dva signala znači postavljanje 0 na odgovarajući ulaz). Ulazi Clear i Set su nezavisni od taktnog signala i da imaju prioritet nad njim. To znači da ako je u trenutku pojave rastuće ivice taktnog signala, Set ili Clear jednak 0, ulaz I se ignoriše, a registar se setuje, odnosno resetuje.

Sl. 3.77 4-bitni registar sa asinhronim resetovanjem i setovanjem: (a) grafički simbol; (b) unutrašnja struktura.

Sl. 3.78 Registar sa dozvolom: (a) grafički simbol; (b) tabela operacija; (c) unutrašnja struktura.

Kod obe varijante registra, prikazane na Sl. 3.76 i Sl. 3.77, novi podatak se automatski upisuje u registar sa svakom rastućom ivicom takta. Međutim, kod mnogih digitalnih sistema, podatak koji je upisan u registar ostaje u registru nekoliko taktnih ciklusa pre nego što se upiše novi podatak. Iz tog razloga, mogućnost kontrole upisa predstavlja korisnu funkciju registra. Kontrola upisa se postiže korišćenjem upravljačkog signala Load (ili Enable) koji kada je 1 dozvoljava upis novog podatka u registar. Ovakav tip registra se zove registar sa dozvolom.

Na Sl. 3.78 su prikazani grafički simbol, tabela operacija i unutrašnja struktura registar sa dozvolom. Registar sadrži multipleksere 2-u-1 koji omogućavaju izbor između ulaznog podatka ili podatka koje je već u registru. Signal Load upravlja multiplekserima na takav način da kada je Load=1, u registar se upisuje novi, tj. ulazni podatak. Sa druge strane, ako je Load=0, podatak koji je prethodno upisan u registar se vraća na ulaze flip-flopova i sa sledećom rastućom ivicom takta ponovo upisuje u registar.

Page 117: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Komponente digitalnih sistema

117

3.2.4.2 Pomerački registri

U odeljku 3.2.4.1 pokazano je kako se postavljanjem multipleksera ispred ulaza flip-flopova može kontrolisati upis u registar. Sledeći sličnu logiku, multiplekseri se mogu iskoristiti i za pomeranje podatka zapamćenog u registru. Ovakav tip registra se zove pomerački registar i omogućava pomeranje upisanog sadržaja za jednu bitsku poziciju. U osnovnoj varijanti, pomerački registar poseduje upravljački signal Shift u željenom smeru uvek kada je upravljački signal Shift koji kada je 1 postavlja registar u režim pomeranja. Na Sl. 3.79 je prikazan primer 4-bitnog pomeračkog registra. Serijski ulaz, IL, se koristi za unos novog 1-bitnog podatka u krajnji levi flip-flop registara. Pomerački registar, kao što je registar sa Sl. 3.79, tipično se koristi za konverziju informacije iz serijskog u paralelni oblik. Iz tog razloga, ovakav registar se zove i pomerački registar sa serijskim ulazom i paralelnim izlazom (SIPO – Serial-In, Parallel-Out).

IL

Pomerački registar

Shift Q3 Q2 Q1 Q0

(a)

Tekućestanje Sledeće stanje

Shift Q3 Q2 Q1 Q0

0

1

Bez promene

IL Q3 Q2 Q1

(b)

D3 Q3 D2 Q2 D1 Q1 D0 Q0

Q3 Q2 Q1 Q0

Clk

(c)

1 0 mux

1 0 mux

1 0 mux

1 0 mux

Shift

IL

Sl. 3.79 Četvorobitni pomerački registar sa serijskim ulazom i paralelnim izlazom: (a) grafički simbol; (b) tabela operacija; (c) unutrašnja strukura.

Korišćenjem multpleksera 4-u-1, umesto multipleksera 2-u-1, moguće je kombinovati funkcije pomeranja i paralelnog upisa. Na primer, pomerački registar sa Sl. 3.80 ima mogućnost kako pomeranja memorisanog sadržaja tako i upisa novog podatka. Takođe, registar sa Sl. 3.80 može da obavlja pomeranje u oba smera. Pri pomeranju na levo 1-bitni podatak sa ulaza IR (serijski ulaz sa desne strane) se upisuje na krajnju desnu poziciju, dok se pri pomeranju na desno, na krajnju levu poziciju se upisuje 1-bitni podatak sa ulaza IL (serijski ulaz sa leve strane). Na Sl. 3.80(a) i (b) su prikazani grafički simbol i tabela operacija, dok se na Sl. 3.80(c) može videti unutrašnja struktura ovog multi-funkcijskog registra.

Registar sa Sl. 3.80 čine četiri razreda, gde svaki razred odgovara jednoj bitskoj poziciji i sastoji se od jednog flip-flopa i multipleksera 4-u-1. Postoje tri tipa razreda, koji se neznatno razlikuju u strukturi: krajnji levi, krajnji desni i srednji. Srednji razredi se obično projektuju prvi, pošto je njihova funkcija najočiglednija. Na primer, jednačine ulaza flip-flopova za svaki od tri tipa razreda, dobijene na osnovu tabele operacija sa Sl. 3.80(c) imaju sledeći oblik:

D0=S1’S0

’Q0+S1’S0

’I0+S1S0’IR+S1S0Q1

D1=S1’Si

’Q0+S1’S0

’Ii+S1S0’Qi-1+S1S0Qi+1, 1≤i≤2

D2=S1’S0

’Q3+S1’S0

’I3+S1S0’Q2+S1S0IL

Pomerački registar sa paralelnim upisom može se koristiti za konverziju informacija iz serijskog u paralelni oblik i obrnuto, sa opcijom da prilikom paralelno-serijske konverzije prvo generiše bit najmanje ili bit najveće težine. Registri ovog tipa, često se koriste za konverziju računarskih podataka u serijski oblik pogodan za komunikaciju i rekonstrukciju serijski prenetih podataka u cilju obrade unutar računara.

Page 118: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

118

Sl. 3.80 4-bitni pomerački registar sa paralelnim upisom: (a) grafički simbol; (b) tabela operacija; (c) unutrašnja struktura.

3.2.4.3 Brojači

Brojač je posebna vrsta registara koji sadrži inkrementer, što omogućava brojanja naviše ili naniže. Na primer, na Sl. 3.81 je prikazan brojač naviše koji ima dva upravljačka signala: signal dozvole (E), koji kada je 1 omogućava brojanje i signal Clear koji resetuje brojač, tj. postavlja ga u stanje 0. Grafički simbol 4-bitnog binarnog brojača naviše prikazan je na Sl. 3.81(a), a tabela operacija na Sl. 3.81(b). Shodno Sl. 3.81(d) inkrementer se sastoji od niza polu-sabirača (half-adder – HA) raspoređenih tako da su dva ulaza polu-sabirača na bitskoj poziciji i povezani na izlaz i-tog flip-flopa Qi i izlazni prenos polu-sabirača sa pozicije i-1, Ci. Uočimo da će nova vrednost flip-flopa Di biti 1 ako je bilo Qi bilo Ci, ali ne oba, jednako 1. Suprotno tome, izlaz Ci+1 biće jednak 1 samo ako su Qi i Ci oba jednaki 1. Tabela istinitosti polu-sabirača data je na Sl. 3.81(c). Polazeći od ove tabele dolazimo do sledećih jednačine za Di i Ci+1:

Di = Qi ⊕ Ci

Ci+1= QiCi

Sve dok je signal E jednak 1, brojač će brojati naviše po modulu 16, sabirajući 1 na svoj tekući sadržaj sa svakom rastućom ivicom taktnog signala.

Page 119: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Komponente digitalnih sistema

119

Sl. 3.81 4-bitni binarni brojač: (a) grafički simbol; (b) tabela operacija; (c) tabela istinitosti polu-sabirača; (d) unutrašnja struktura.

Obostrani brojač, tj. brojač koji može brojati i naviše i naniže, konstruiše se tako što se u brojaču naviše polu-sabirači zamene polu-sabiračima/oduzimačima (half-adder/substractor – HAS). HAS moduli, pod kontrolom signala za izbor smera brojanja, obavljaju inkrementiranje ili dekrementiranje. Na primer, na Sl. 3.82 prikazan je obostrani brojač koji u najvećem delu nalikuje brojaču naviše sa Sl. 3.81 s tom razlikom što poseduje dodatni upravljački ulaz, D. Kao što je ukazano tabelom operacija sa Sl. 3.82(b), svrha ovog dodatnog ulaza je postavljanje brojača u režim brojanja naviše, kada je njegova vrednost 0, odnosno u režim brojanja naniže, kada je njegova vrednost 1. Na osnovu tabela istinitosti polu-sabiračima/oduzimačima sa Sl. 3.82(c) možemo izvesti sledeće jednačine za Di i Ci+1:

Di = Qi ⊕ Ci

Ci+1= D’QiCi+ DQi’Ci

Kao što vidimo na Sl. 3.82(d), svaki polu-sabirač/oduzimač se sastoji od jednog XOR kola povezanog na ulaz flip-flopa, kao i dva AND i jednog OR kola koja se koriste za propagaciju izlaznog prenosa.

Važno je uočiti da obostrani brojač sa Sl. 3.82 uvek počinje brojanje od 0. Međutim, u mnogim primenama korisno je imati mogućnost postavljanja brojača na vrednost različitu od nule, a zatim nastaviti sa brojanjem, naviše ili naniže. Ovakav tip brojača se zove brojač sa paralelnim upisom, a konstruiše se kombinovanjem inkrementera/dekrementera i registra sa dozvolom. Kao što je prikazano na Sl. 3.83, brojač sa paralelnim upisom ima tri upravljačka signala: E, D i Load. Signal E omogućava brojanje u smeru koji je određen signalom D, dok signal Load, uvek kada je 1, zabranjuje brojanje i upisuje u registar podatak sa ulaza I. Sa druge strana, ako je Load=0, brojač se ponaša na identičan način kao obostrani brojač sa Sl. 3.82. Tabela operacija i unutrašnja struktura brojača sa paralelnim upisom prikazani su na Sl. 3.83(b) i (c).

Page 120: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

120

Sl. 3.82 4-bitni obostrani brojač: (a) grafički simbol; (b) tabela operacija; (c) tabela istinitosti polu-sabirača/oduzimača; (d) unutračnja struktura.

Sl. 3.83 4-bitni obostrani brojač sa pralelenim upisom: (a) grafički simbol; (b) tabela operacija; (c) unutrašnja struktura.

Page 121: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Komponente digitalnih sistema

121

BCD brojač

Brojač sa paralelnim upisom može biti iskorišćen za konstrukciju drugih tipova brojača. Jedna takva primena je BCD brojač koji broji na sledeći način: 0, 1, 2, 4, 5, 6, 7, 8, 9, 0, ... Kao što je pokazano na Sl. 3.84(a), BCD brojač se može konstruisati tako što će se detektovati kada brojač stigne u stanje 9, a onda, u sledećem taktnom ciklusu umesto prelaza u stanje 10, u brojač upisati 0. Detekcije stanje 9 ostvarena je uz pomoć AND kola čiji izlaz je 1 kada je sadržaj brojača 1001. Izlaz AND kola je povezan sa ulazom Load brojača, koji omogućava da se sa sledećom rastućom ivicom taktnog signala u brojač upiše 0.

Obostrani BCD brojač se konstruiše na sličan način. U smeru “naviše”, u brojač treba upisati 0 uvek kada njegovo stanje postane 9, dok u smeru “naniže” u brojač treba upisati 9 kada njegovo stanje postane 0. Kao što je prikazano na Sl. 3.84(b), za izbor između upisa 0 ili 9 koristi se multiplekser, dok se detekcija stanja 0 i 9 vrši uz pomoć AND-OR mreže.

Na sličan način projektuju se brojači koji počinju brojanje iz bilo kog stanja i broje u gotovo bilo kom redosledu. Međutim, uočimo da bilo koje “iskakanje” iz prirodne sekvence brojanja zahteva dodatni gejt za detekciju i dodatni multiplekser za izbor vrednosti koja se upisuje u brojač.

Sl. 3.84 BCD brojači: (a) BCD brojač naviše; (b) obostrani BCD brojač.

3.2.4.4 Registarski fajlovi U prethodnim odeljcima opisani su različiti tipovi registara i brojača, od kojih se svaki sastoji od m flip-flopova i dodatne kombinacione logike. Međutim, takođe je moguće rasporediti flip-flopove u dvo-dimenzionalno polje koje će sadržati 2n vrsta od po m flip-flopova. Svaka vrsta u jednoj takvoj dvo-dimenzionalnoj strukturi, koja se zove registarski fajl, može se smatrati jednim registrom. U opštem slučaju, registarski fajl memoriše istu količinu informacije kao i 2n m-bitnih registara. Međutim, s obzirom na regularnost strukture, registarski fajl zahteva manji broj internih veza, a time i manju površinu na mikročipu, u odnosu na odgovarajući broj nezavisnih registara. Uz to, flip-flopovi registarskog fajla se mogu realizovati sa manjim brojem tranzistora. Takođe, uvek se pristupa samo jednom flip-flopu u svakoj koloni.

Registarski fajl čine: dvo-dimenzonalno polje ćelija registarskog fajla (register-file cells – RFC), dekoderi za čitanje i upis i izlazna baferska logika. Kao što je prikazano na Sl. 3.85(a), tipičnu ćeliju registarskog fajla čine jedan D flip-flop i dva logička kola. Osim taktnog signala, ćelija ima tri ulaza i jedan izlaz: Write_select, Read_select, Input i Output. Pri Write_select=1, D flip-flop pamti vrednost signala Input. Kada je Read_select=1, sadržaj D flip-flopa se kroz tro-statički bafer prenosi na izlaz Output.

Na Sl. 3.85(b) prikazan je blok dijagram registarskog fajla kapaciteta 2nxm, dok je na Sl. 3.85(c) prikazana unutrašnja organizacija registarskog fajla kapaciteta 4x4. (Iz razloga jednostavnijeg prikaza, na Sl. 3.85(c) je izostavljen taktni signala.) Registarski fajl kapaciteta 2nxm ima m ulaza Im-1, …, I0, m izlaza Om-1, …, O0 i 2

n

vrsta flip-flopova, kao što je prikazano na Sl. 3.85(c). Dekodera za upis služi za izbor vrste u koju će, u trenutku delovanja rastuće ivice taktnog signala, biti smeštena ulazna vrednost. Ulaz dekodera za upis se sastoji od n adresnih linija, WAn-1, …, WA0 i signala za dozvolu upisa, WE. Ako je WE=0, ulazna vrednost se ne upisuje u registarski fajl.

Slično dekoderu za upis, dekoder za čitanja bira vrstu čiji sadržaj se prenosi na izlazu registarskog fajla. Dekoder za čitanje ima n adresnih linija, RAn-1, …, RA0 i signal dozvole čitanja, RE. Pri RE=1, na izlazu

Page 122: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

122

registarskog fajla javlja se, nakon manjeg kašnjenja kroz izlazne bafere, sadržaj izabrane vrste. Sa druge strane, ako je RE=0, izlazni signali registarskog fajla su u stanju visoke impedanse.

Sl. 3.85 Registarski fajl sa jednim portom za upis i jednim portom za čitanje: (a) ćelija registarskog fajla; (b) grafički simbol; (c) unutrašnja struktura.

Glavno ograničenje registarskog fajla sastoj se u činjenici da on omogućava ograničen pristup registrima iz fajla – tj. uvek se može upisivati samo u jedan registar (vrstu) i čitati iz samo jednog registara (vrste). Ovakva situacija može se donekle popraviti konstrukcijom registarskog fajla sa više od jednog porta za čitanje ili upis. Nažalost, cena registarskog fajla raste srazmerno broju portova. Iz tog razloga, većina popularnih tipova registarskih fajlova ima jedan ili dva porta za upis i dva porta za čitanje. Glavno opravdanje za dva porta za čitanje jeste da su većina aritmetičkih i logičkih operacija binarne i da stoga, u isto vreme, zahtevaju dva operanda. Sa dva porta za čitanje i jednim za upis, moguće je, u toku istog taktnog ciklusa, iz registaraskog fajla pribaviti dva operanda i smestiti rezultat nazad u registarski fajl. Sa druge strane, opravdanje za korišćenje dva porta za upis leži u brzini konzumiranja operanada: U svakom taktnom ciklusu koristimo dva operanda da bi smo dobili jedan rezultat. Shodno tome, ako nam je cilj da obavljamo jednu operaciju po taktnom ciklusu, mora postojati mogućnost da se u svakom taktnog ciklusu, pored rezultata koji se vraća u registarski fajl u registarski fajl unese i jedan novi podatak.

Page 123: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Komponente digitalnih sistema

123

Sl. 3.86 Registarski fajl sa jednim upisnim portom i dva porta čitanje: (a) ćelija registarskog fajla; (b) grafički simbol; (c) unutrašnja struktura.

Na Sl. 3.86 prikazan je primer registarskog fajla sa jednim portom za upis i dva porta za čitanje. Kao što se vidi na Sl. 3.86(a), ćelija registarskog fajla je modifikovana u odnosu na Sl. 3.85(a) kako bi se obezbedila podrška za dva porta za čitanje. Grafički simbol registarskog fajla prikazan je na Sl. 3.86(b). Na Sl. 3.86(c) prikazana je unutrašnja struktura registarskog fajla kapaciteta 4x4.. Uočimo da je dijagram sa Sl. 3.86(c) sličan strukturi registarskog fajla sa Sl. 3.85(c), osim što nova verzija ima dodatni dekoder za čitanje, koji, sa svoje strane, unosi po jednu dodatnu vezu ka svakoj vrsti i koloni. Uz pomoć ovih veza omogućen je prenos sadržaja do drugog porta za čitanje.

Registarski fajlovi spadaju u brze memorijske komponente, zahvaljući činjenici da su memorijske ćelije realizovane na bazi flip-flopova ili leč kola. Međutim, s obzirom da svaki flip-flop sadrži barem 6 tranzistora, registarski fajl je skupa memorija. Iz tog razloga, registarski fajlovi se tipično koriste kao privremena memorija malog kapaciteta kod aplikacija koje zahtevaju veliku brzinu obrade podataka.

3.2.4.5 RAM memorija

U odeljku 3.2.4.4 opisan je registarski fajl, koji predstavlja brzu memoriju malog kapaciteta pogodnu za privremeno čuvanje vrednosti promenljivih u toku izračunavanja. Sa druge strane, RAM (Random-access memory, ili memorija sa proizvoljnim pristupom) predstavlja sporiju memoriju daleko većeg kapaciteta pogodnu

Page 124: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

124

za dugotrajno smeštanje programa i podataka koji se koriste tokom izračunavanja. Slično registarskim fajlovima, memorije su organizovane u vidu polja od 2n vrsta sa m bita u svakoj vrsti. U opštem slučaju, n se kreće između 16 i 32, dok je m, obično 1, 4, 8, 16 ili 32. Tipična memorija nalikuje onoj sa Sl. 3.87(a). S obzirom da memorija ima 2n vrsta, za jednoznačnu identifikaciju svake vrste potrebno je n adresnih linija. Pored adresnih linija, memorija poseduje ulazni signal Chip_select (CS) koji se koristi prilikom konstrukcije većih memorija na bazi memorijskih čipova. Uvek kada je CS=1, memorija normalno funkcioniše. Međutim, kada je CS=0, rad memorije je onemogućen. Takođe, svaki memorijski čip ima još upravljačku liniju, Read/write_select (RWS), koja bira jednu od dve memorijske operacije: upis ili čitanje. Kada je RWS=0, memorija čita svoj sadržaj sa lokacije određene adresinim linijama koji postaje dostupan na izlaznom portu. Sa druge strane, kada je RWS=1, memorija upisuje sadržaj prisutan na ulaznom portu u lokaciju određenu adresnim linijama.

Memorija, takođe, ima m-bitni ulazni i m-bitni izlazni port. Za male vrednosti m (npr. 1 ili 4), memorija može imati razdvojene ulazne i izlazne portove. Međutim, da bi se smanjio broj pinova na memorijskom čipu, ulazni i izlazni port su obično objedinjeni u jedinstven ulazno/izlazni port. U opštem slučaju, broj pinova na čipu određuje površnu na štampanoj ploči koja je zauzeta čipom. Grafički simboli oba tipa pakovanja memorije su prikazana na Sl. 3.87(b).

. . .

. . .

Sl. 3.87 RAM memorija: (a) memorijske adrese i sadržaj; (b) grafički simboli.

RAM memoriju čine: polje memorijskih ćelija, adresni dekoder i ulazno/izlazni (U/I) baferi. Kao što je prikazano na Sl. 3.88(a), memorijska ćelija (memory cell – MC) može se simbolički predstaviti kao struktura koju čine: taktovani D leč, jedno AND kolo i izlazni tro-statički bafer. Kada je signal Row_select jednak 1, bit informacije zapamćen u leču se prenosi na izlaz Output. Ako je pri tome i signal Write_enable jednak 1, vrednost sa ulaza Input se pamti u leču. Uočimo da signal Write_enable služi kao signal takta za leč.

Iako je memorijska ćelija predstavljena uz pomoć leča i dva gejta, treba razumeti da se ona realizuje sa daleko manjim brojem tranzistora. Shodno načinu implementacije, memorije se dele na statički i dinamički RAM. Statički RAM (SRAM) se konstruiše na bazi memorijskih ćelija sa četiri do šest tranzistora kod kojih se leč realizuje uz pomoć unakrsno spregnutih invertora (2 tranzistora), dok se za AND kolo i tro-statički bafer koristi još po jedan tranzistor. SRAM memorija čuva upisani sadržaj sve dok se ne upiše novi ili isključi napajanje. Sa druge strane, kod dinamičke RAM memorije (DRAM), za realizaciju memorijske ćelije koristi se samo jedan tranzistor. Takva memorijska ćelija gubi upisani sadržaj pri svakom čitanju, te zbog toga nakon svakog čitanje mora da sledi upis uprvo pročitanog podataka. Takođe, kao posledica nesavršenog postupka fabrikacije, sadržaj memorijske ćelije se spontano, nepovratno gubi nakon izvesnog vremena po upisu. Da bi memorijska ćelija uspela da sačuva svoj sadržaj, neophodno joj je pristupati sa nekom određenom frekvencijom, ili periodično obnavljati (ili osvežavati) upisani sadržaj. U toku osvežavanja, operacije čitanja i upisa se suspenduju, što može u nekim slučajevima biti problem. Međutim, bez obzira na sve to, zahvaljujući superiornim karakteristikama u pogledu gustine pakovanja i cene, DRAM memorije se veoma često koriste za projektovanje najrazličitijih elektronskih uređaja. Sa druge strane, SRAM memorije su, iako skuplje, brže i zbog toga pogodne za primene koje ne zahtevaju veliku količinu memorije, kao i tamo gde brzi pristup memoriji predstavlja imperativni zahtev.

Page 125: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Komponente digitalnih sistema

125

Sl. 3.88 Organizacija RAM memorije: (a) meorijska ćelija; (b) unutrašnja struktura.

SRAM i DRAM memorije su tzv. nepostojane memorije (volatile memories), s obzirom da se njihov sadržaj gubi kada se isključi napajanje. Sa druge strane, ROM i PROM memorije su tzv. postojane memorije, s obzirom da zadržavaju sadržaj čak i nakon isključenja napajanja.

Na Sl. 3.88(b) je prikazan primer memorije 4x4 koja ima 16 memorijskih ćelija. Radi pristupa svakoj memorijskoj ćeliji, adresni dekoder dekodira adresu i selektuje jednu od vrsta. Pri tome, ako su oba signala RWS i CS jednaka 1, u selektovanu vrstu upisuje se novi sadržaj. Iako su sadržaji svih ćelija prisutni na izlaznim linijama, izlazni tro-statički baferi su zakočeni što omogućava novom podatku koji je pisutan na ulazno/izlaznom portu da bude upisan. Međutim, ako je RWS=0 i CS=1, podatak iz selektovane vrste se kroz tro-statičke bafere prosleđuje na U/I port.

Kao što je već rečeno, memorijske komponente se po pravilu proizvode u veličinama 2nxm, gde n i m mogu da varairaju unutar širokog opsega brojeva. Međutim, uopšteno govoreći, za konkretnu implementacionu tehnologiju i godinu proizvodnje, proizvod 2nxm, tj. kapacitet memorije, je konstanta. Imajući to u vidu, u slučajevima kada memorija potrebnog kapaciteta nije dostupna u vidu monolitnog čipa, ona se mora konstruisati pomoću memorijskih čipova manjeg kapaciteta, koji su dostupni na tržištu u vremenu projektovanja. U nastavku ovog odeljka biće opisano kao se realizuju “šire” i veće memorije, tj. kao učiniti da m i n budu veći od kapaciteta koji je rasploživ na jednom čipu.

Proširenje memorijske reči, tj. formiranje memorije sa većim m, postiže se paralelnim vezivanjem nekoliko memorijskih čipova. Na Sl. 3.89 je prikazan primer konstrukcije RAM memorije kapaciteta 16Kx32 korišćenjem

Page 126: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

126

RAM čipova kapaciteta 16Kx8. Kao što se vidi, kod ovog rešenja, adresne linije, kao i linije CS i RWS, povezane su sa svim memorijskim čipovima. Uočimo da su ulazna i izlazna magistrala podeljene na četiri bajta, pri čemu je svaki bajt povezan sa odgovarajućom memorijom. Korišćenjem ovog postupka u mogućnosti smo da konstuišemo memoriju bilo koje širine.

Sl. 3.89 16Kx32 RAM, realizovan pomoću 16Kx8 RAM.

Da bi smo realizovali veću memoriju, tj. memoriju sa većim brojem memorijskih lokacija, neophodno je povezati nekoliko memorijskih čipova na red, tako da svaki čip sadrži jedan deo od ukupnog broja memorijskih reči. Princip rešenja prikazan je na Sl. 3.90, gde je pomoću četiri RAM čipa kapaciteta 16Kx8 realizovana RAM memorija kapaciteta 64Kx8. Uočimo da u ovom slučaju svi memorijski čipovi dele istu ulazne i istu izlaznu magistralu, kao i zajednički upravljački signal RWS. U toku pristupa memoriji, za izbor čipa koji sadrži traženi podatak, koristi se signal CS. Pretpostavimo da M0 sadrži sve podatke sa adresama od 0 do 214-1, M1 od 214 do 215-1, M2 od 215 do 215+214-1 i M3 od 215+214 do 216-1. Šesnestobitna adresna magistrala je podeljena na dva dela, tako da se dva bita najveće težine koriste za izbor odgovarajućeg čipa, a preostalih 14 bita se koriste za izbor konkretne lokacije unutar čipa. Da bi se ovo postiglo, 14 bita na pozicijama manje težine adresne magistrale su povezani na adresne portove svih memorijskih čipova, dok su dva bita najveće težine povezana na dekoder 2-u-4, koji određuje koji od četiri memorijska čipa će biti izabran za upis ili čitanje. Ovaj izbor se ostvaruje povezivanjem svakog od izlaza dekodera na ulaz CS odgovarajućeg memorijskog čipa, kao što je prikazano na Sl. 3.90.

Page 127: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Komponente digitalnih sistema

127

IA

CS M0

RWS

O

IA

CS M1

RWS

O

IA

CS M2

RWS

O

IA

CS M3

RWS

O

Dekoder2-u-4

3 2 1 0

142

A RWSUlazna

magistrala

Izlazna magistrala

16

14

14

14

14

8

8

8

8

8

8

8

8

8

8

Sl. 3.90 64Kx8 RAM realizovan pomoću 16Kx8 RAM.

3.2.4.6 Stek

Stek (stack) je memorijska struktura koja se često koristi kako u softveru tako i u hardveru. Po definiciji, stek je memorija sa ograničenim pristupom. Za razliku od RAM memorije gde se bilo kom zapamćenom podatku može pristupati u bilo kom vremenu, podacima zapamćenim u steku pristupa se samo preko jedne lokacije: vrh steka. Drugim rečima, kada se podatak upisuje u stek, ili stavlja na stek (operacije push), on se smešta na vrh steka i pri tome se svi prethodno upisani podaci spuštaju za jednu poziciju niz stek. Suprotno tome, kada se podatak čita iz steka ili uzima sa steka (operacija pop), on se sklanja sa vrha steka i pri tome se svi ostali podaci podižu za jednu poziciju naviše uz stek. Na Sl. 3.91(a) je prikazan stek dubine 4 (tj. kapacita 4 reči) koji inicijalno sadrži dva broja: 34 na lokaciji Top i 23 na lokaciji Top-1. Na Sl. 3.91(b) može se videti da stavljanje broja 45 na stek zahteva da brojevi 34 i 23 budu premešteni na lokacije Top-1 i Top-2. Sa druge strane, kada se broj 45 uzima sa steka, brojevi 34 i 23 se pomeraju naviše tako da ponovo zauzimaju lokacije Top i Top-1 (Sl. 3.91(c)). U ovom konkretnom slučaju, na stek se može staviti najviše četiri broja, pre nego što se stek napuni. Nakon toga, svaki novi upis u stek znači gubitak podatka sa dna steka.

Page 128: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

128

Sl. 3.91 Rad steka: (a) sadržaj steka pre upisa broja 45; (b) sadržaj steka nakon upisa broj 45; (c) sadržaj steka nakon čitanja broja 45.

Prilikom projektovanja steka, važno je uočiti da se prilikom operacija upisa i čitanja, zapamćeni podaci pomeraju za jednu poziciju naniže, odnosno naviše. Na osnovu ovog zapažanja zaključujemo da za realizaciju steka treba koristiti pomeračke registre u kombinaciji sa obostranim brojačem za detekciju praznog, odnosno punog steka. Ove komponente su korišćene za realizaciju m-bitnog steka dubine 4 koji je prikazan na Sl. 3.92. Uočimo da ovaj stek ima m ulaznih linija INi i m izlaznih linija OUTi, gde je 0≤i≤m-1. Takođe, stek ima tri upravljačka signala, Push/pop, Enable i Reset.

Signal Push/pop upravlja upisom i čitanjem iz steka. Kada je Push/pop=0, podatak se upisuje u stek; kada je Push/pop=1, podatak se čita iz steka. Signal Enable omogućava (dozvoljava) rad steka, dok signal Reset, uvek kada je 0, briše sadržaj pomeračkih registara i resetuje obostrani brojač. Rad steka je opisan tabelom operacija sa Sl. 3.92(a). Uočimo da stek ima dva izlazna signala, Empty i Full, koji ukazuju na status steka, na sledeći način: kada Empty ima vrednost 1, stek je prazan; sa druge strane, kada Full ima vrednost 1, stek je pun.

Na Sl. 3.92(d) se može videti da se stek sastoji od m 4-bitnih pomeračkih registara sa paralelnim upisom tako da svakom ulazu odgovara jedan pomerački registar. Pri svakom upisu u stek, svi pomerački registri obavljaju operaciju pomeranja na desno. Slično, pri svakom čitanju iz steka, svi pomerački registri obavljaju

operaciju pomernja na levo. Svaki novi podatak koji se stavlja na stek preko ulaza IL pomeračkog registra i upisuje se na poziciju Q3, koja predstavlja vrh steka. Stanje brojača ukazuje na broj podataka u steku. Sinhronizovano sa svakom rastućom ivicom taktnog signala, pomerački registri obavljaju pomeranje na desno, a brojač broji unapred za 1 (Push/pop=0 i Enable=1), odnosno pomeranje na levo i brojanje unazad (Push/pop=1 i Enable=1).

Push/pop Enable Operacija

X 0 Bez promene

0 1 Upis (push)

1 1 Čitanje (pop)

(a)

Izlazi brojača Q2 Q1 Q0 Empty Full

0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1 0 0 1 0 0 0 1

(c)

Kontrola pom. registra

Kontrola brojača Push/

pop Enable S1 S0 D E X 0 0 0 X 0 0 1 1 1 0 1 1 1 1 0 1 1

(b)

Page 129: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Komponente digitalnih sistema

129

Reset IL IR

S1 Pom.Reg.

S0 Q3 Q2 Q1 Q0

“0”

Reset IL IR

S1 Pom.Reg.

S0 Q3 Q2 Q1 Q0

“0”

Reset D Up/Down brojačE Q3 Q2 Q1 Q0

...OUT0

OUTm-1

Empty

Full

Izlazna logika

...

IN0

INm-1

Push/pop

Enable

Reset

Upravljačka logika

...

(d)

Sl. 3.92 Stek dubine 4. (a) Tabela operacija; (b) Tabela izlaza; (c) Tabela upravljanja; (d) struktura steka.

Vrednosti upravljačkih signala pomeračkih registara i brojača mogu se izvesti na osnovu tabele upravljanja koja je prikazana na Sl. 3.92(b). Na osnovu ove tabele možemo izvesti sledeće Bulove jednačine:

S1 = Enable S0 = (Push/pop)’Enable D = (Push/pop)Enable E = Enable

Realizacija ovih jednačina predstavlja upravljačku logiku steka.

Na osnovu tabele izlaza sa Sl. 3.92(c), vidi se da izlazna logika dekoduje stanja brojača 000 i 100. Uvek kada je stanje brojača 000, signal Empty biće 1; u bilo kom drugom stanju Empty je 0. Suprotno, uvek kada je stanje brojača 100, signal Full biće 1; u bilo kom drugom stanju Full je 0. Na osnovu toga, možemo izvesti sledeće Bulove jednačine za izlaznu logiku:

Empty = Q2’Q1’Q0’ Full = Q2Q1’Q0’

Glavna slabost rešenja steka sa Sl. 3.92 ogleda se u činjenici da je za realizaciju steka veće dubine potreban veliki broj ¨skupih¨ pomeračkih registara. Iz tog razloga, za realizaciju steka većeg kapaciteta koristi se RAM memorija. Sa druge strane, pošto RAM memorija nema mogućnost pomeranja memorisanog sadržaja, push i pop operacije moraju biti realizovane na nešto drugačiji način – promenom tekuće lokacije vrha steka. Drugim rečima, kada se podaci stavljaju na stek, adresa vrha steka biće uvećana za jedan pri svakom upisu novog podatka. Suprotno, kada se podaci uzimaju sa steka, adresa vrha steka biće smanjena za jedan pri svakom čitanju podatka. Neka je, na primer, stek prazan: vrh steka je na adresi 0. Pri svakom upisu podatka, podatak se upisuje na vrh steka, a adresa vrha se uvećava za jedan, tako da vrh steka uvek ukazuje na praznu lokaciju u koju će biti upisan sledeći podatak. Sa druge strane, pri svakom čitanju podatka, podatak se uzima iz lokacije koja se nalazi odmah ispod vrha steka, na adresi za jedan manje od adrese vrha steka. Sledeći ovu logiku, znamo da je za RAM memoriju kapaciteta 2n reči stek prazan ako je vrh steka na adresi 0, a pun ako je vrh na adresi 2n-1. Uočimo da se lokacija sa adresom 2n-1 nikada ne koristi za smeštanje podatka, već samo za određivanje da li

Page 130: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

130

je stek prazan. Iako se na ovaj način gubi jedna od 2n raspoloživih reči RAM memorije, opisani pristup značajno pojednostavljuje izlaznu logiku.

Na Sl. 3.93 je prikazana realizacija steka koja koristi RAM memoriju kapaciteta 1K (210) i dva brojača koji ukazuju na vrh steka i prvu lokaciju ispod vrha. Uočimo da su ulazi i izlazi i operacije steka identične kao na Sl. 3.92. Kao što se vidi sa Sl. 3.93(d), stek čine: dva 10-bitna brojača, jedan 10-bitni multiplekser 2-u-1, 1K RAM, upravljačka i izlazna logika. Dva brojača, nazvana Top i Top-1, razlikuju se za 1, i oba se uvećavaju za jedan pri svakoj push operaciji, a umanjuju za jedan pri pop operaciji. Pri operaciji push, adresa RAM-a je sadržaj brojača Top, dok pri operaciji pop, adresa RAM-a je sadržaj brojača Top-1.

Polazeći od prethodnog razmatranja, u mogućnosti smo da konstruišemo tabelu upravljanja koja je prikazana na Sl. 3.93(c) koja sadrži vrednosti svih internih signala koji upravljaju brojačima, multiplekserom i RAM memorijom kako pri push i tako i pri pop operaciji. Na osnovu ove tabele, možemo izvesti sledeće Bulove jednačine za upravljačku logiku:

E = CS = Enable S = RWS = (Push/pop)’Enable

D = (Push/pop)Enable

Izlaznu logiku čine dva gejta koja ukazuju kada je stek pun, odnosno prazan. Pošto je stek prazan uvek kada je sadržaj brojača Top jedak 0, da bi se detektovao uslov Empty koristi se 10-ulazno NOR kolo čiji ulazi su povezani na izlaze brojača Top. Slično, stek je pun uvek kada brojač Top sadrži sve jedinice, što se detektuje 10-ulaznim AND. Šematski prikaz strukture steka zasnovanog na RAM memoriji prikazan je na Sl. 3.93(d).

(c)

Kontrola mem. Kontrola broj. Push/pop Enable

Kontrola mux-a S CS RWS D E

X 0 X 0 0 X 0 0 1 1 1 1 0 1 1 1 0 1 0 1 1

Push/pop Enable Operacija

X 0 Bez promene

0 1 Upis (push)

1 1 Čitanje (pop)

(b)

Page 131: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Komponente digitalnih sistema

131

DE Top-1Set

1K RAMA

CS RWS

1 0 S mux

DE TopReset

Izlazna logika

U/I magistrala

Empty

Full

Upravljačka logika

Reset

Push/pop

Enable

(d)

nn

n

n

m

Sl. 3.93 Realizacija steka na bazi RAM memorije: (a) Simboličko rešenje; (b) Tabela operacija; (c) Tabela upravljanja; (d) šematski prikaz.

3.2.4.7 FIFO

FIFO red je struktura koja se često koristi kada treba uravnotežiti zahteve za nekom obradom. Zamislimo, na primer, ljude kako stoje ispred šaltera u banci ili kako ulaze u autobus, koji moraju čekati u redu dok ne stignu na red da budu opsluženi. Slična situacija se javlja kod različitih procesora, ASIC kola ili bilo kog uređaja koji šalje podatke nekom drugom uređaju radi dalje obrade, u smislu da onda kada u jednom trenutku brzina generisanja podataka nadmaši brzinu kojom se podaci obrađuju, neophodno je između proizvođača i potrošača umetnuti red čekanja, tj. FIFO red. Naravno, u takvim situacijama, brzina kojom proizvođač generiše podatke ne može u nedogled biti veća od brzine kojom potrošač može da prihvata podatke, jer bi to zahtevalo red čekanja beskonačne dužine. U svakom slučaju, u proseku, obe brzine moraju biti iste, a veličina reda čekanja određuje koliko dugo se može tolerisati neujednačenost između zahteva za obradom i brzine obrade.

Svrha FIFO reda je da sačuva podatke upućene potrošaču, koje on trenutno nije u stanju da prihvati, ali koje će u dogledno vreme preuzeti i to u redosledu u kome su oni poslati. Znači, podatak koji je prvi upisan u FIFO, prvi se i čita, i td., kao što je ilustrovano na Sl. 3.94. Na Sl. 3.94(a) je prikazan red čekanja nakon što su brojevi 23 i 34 upisani, ali pre nego što je stigao broj 45. Na Sl. 3.94(b) možemo videti sadržaj FIFO reda nakon upisa broja 45. Uočimo da je nakon čitanja FIFO reda, broj 23 odbačene i da je sadržaj reda pomeren za jednu poziciju na dole. Sadržaj reda čekanja nakon pomeranja prikazan je na Sl. 3.94(c).

Sl. 3.94 Princip rada FIFO reda: (a) sadržaj reda pre upisa broja 45; (b) sadržaj reda posle upis broja 45; (c) sadržaj reda nakon čitanja brja 23.

Page 132: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

132

Na Sl. 3.95 je prikazan blok dijagram FIFO reda. U opštem slučaju, FIFO red ima m ulaznih linija INi i m izlaznih linija OUTi, gde je 0≤i≤m-1. Takođe, FIFO red ima tri upravljačka signala: Read/write, Enable i Reset. Kada je Read/write=0, na izlazu FIFO reda postavljen je podatak, uzet sa početka reda, tj. podatak koji je najduže u redu čekanja. Kada je Read/write=1, u FIFO red se upisuje podatak prisutan na ulazima INi i smešta na kraj reda čekanja. Tipična realizacija FIFO reda ima još dva upravljačka signala, Full i Empty, koji se koriste za kontrolu proizvođača i potrošača. Kada je red pun, signal

Full ima vrednost 1, što predstavlja upozorenje proizvođaču da će svaki naredni poslati podatak biti odbačen. Kada se red isprazan, signal Empty postaje 1, što predstavlja upozorenje potrošaču da novi podaci još uvek nisu stigli.

Imajući u vidu da je unutar reda čekanja redosled pristizanja podataka očuvan, FIFO red možemo konstruisati uz pomoć pomeračkih registara u kombinaciji sa brojačem koji će brojati važeće podatke u redu. Takva jedna realizacija FIFO reda prikazana je na Sl. 3.96(c), a tabela operacija na Sl. 3.96(a). Kraj reda je uvek na poziciji Q3 pomeračkih registara, dok se početak reda pomera za jednu poziciju na desno, pri svakom upisu novog podatka. Pri upisu, podatak se upisuje na poziciju Q3, pomerački registri pomeraju svoj sadržaj za jednu poziciju na desno, a brojač se inkrementira tako da njegov sadržaj ponovo ukazuje na prvi upisani podatak. Sa druge strane, pri svakom čitanju podatka iz reda, uz pomoć multipleksera, bira se podatak sa početka reda i postavlja na izlaz, a brojač se dekrementira. Uočimo da se pročitani podatak ne poništava, već samo postaje nevažeći, time što je brojač dekrementiran. Na Sl. 3.96(b) prikazana je tabela upravljanja koja sadrži vrednosti internih upravljačkih signala u zavisnosti od izabrane operacije. U toku operacije čitanja, sadržaj pomeračkih registara se ne menja, a brojač broji za 1 unazad. Međutim, u toku operacije upisa, pomerački registri će obaviti pomeranje za jednu poziciju na desno, a brojač će odbrojati za 1 unapred. Brojač, takođe, upravlja izborom podatka prilikom operacije čitanja. U toku inicijalizacije, brojač se postavlja na 1111, tako da njegovo stanje pri upisu prvog podatka u red postaje 0000. Ovakva inicijalizacija brojača je neophodna kako bi se ostvarila pravilno upravljanje multiplekserima, koji zahtevaju vrednosti 00, 01, 10 i 11 na svojim selekcionim ulazima da bi izabrali jedan od izlaza pomeračkih registara.

Na osnovu tabele upravljanja možemo odrediti jednačine preostalih upravljačkih signala:

S0 = S1 = (Read/write)Enable

D = (Read/write)’Enable

E = Enable

Svrha izlazne logike je generisanje signala Full i Empty. Red čekanja je prazan (Empty=1) ako je stanje brojača 111, a pun (Full=1) ako je stanje brojača 011. U svim ostalim stanjima brojača, oba signala, Full i Empty, imaju vrednost 0. Dakle:

Full = Q2’Q1Q0 Empty = Q2Q1Q0

Na Sl. 3.96(c) dat je šematski prikaz FIFO reda dužine 4.

Read/write Enable Operacija Read/write Enable S1 S0 D E X 0 Bez promene X 0 0 0 X 0 0 1 Čitanje 0 1 0 0 1 1 1 1 Upis 1 1 1 0 0 1

(a) (b)

Sl. 3.95 Blok dijagram FIFO reda.

Page 133: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Komponente digitalnih sistema

133

(c)

Sl. 3.96 FIFO red dužine 4 reči: (a) Tabela operacija; (b) Tabela upravljanja; (c) Šematski prikaz.

Kao i kod steka, redovi čekanja veće dužine, obično, umesto pomeračkih registara, za smeštanje podataka koriste RAM memoriju i sadrže dva brojača koji ukazuju na početak i kraj reda. Takva jedna struktura poznata je pod nazivom kružni bafer. Simbolička predstava kružnog bafera prikazana je na Sl. 3.97(a). Uočimo da struktura sa Sl. 3.97(a) koristi RAM memoriju kapaciteta 1K reči i dva brojača, označena kao Početak i Kraj. Brojač Početak sadrži adresu najranije upisanog podatka. Uvek kada se zahteva operacija čitanja, podatak se čita sa adrese na koju ukazuje brojač Početak i postavlja na U/I magistralu, a brojač Početak se inkrementira. Brojač Kraj sadrži adresu prve prazne lokacije u redu. Prilikom operacije upisa, podatak se upisuje na lokaciju na koju ukazuje brojač Kraj, a brojač Kraj se inkrementira. Ukoliko se podaci iz reda češće čitaju nego upisuju, desiće se situacija da bajač Početak ukazuje na istu lokaciju kao i brojač Kraj, što znači da je red prazan. Sa druge strane, ako se u rad podaci češće upisuju nego što se čitaju, brojač Kraj koji se inkrementira po modulu 1024, u jednom trenutku ukazivaće na istu lokaciju kao i brojač Početak, što, međutim, sada znači da je red pun. Da bi se izbegla dvosmislenost u značenju uslova Početak=Kraj, umesto 10-bitnih možemo koristiti 11-bitne (po modulu 2048) brojače. Kod ovakve realizacije, red čekanja je prazan ako su sadržaji oba brojača identični, dok je red pun ako se sadržaji brojača razlikuju samo na bitu najveće težine.

Na Sl. 3.97 prikazana je realizacija FIFO reda koja koristi 1K RAM i dva brojača. Takođe, FIFO sadrži multiplekser preko koga se bira jedan od brojača kao izvor adrese za RAM i komparator koji poredi sadržaje brojača. Tabela operacija je prikazana na Sl. 3.97(b), tabela upravljanja na Sl. 3.97(c), dok je na Sl. 3.97(d) dat konačni šematski izgled FIFO reda zasnovanog na RAM memoriji.

Read/write Enable Operacija

Read/write Enable S CS RWS E

(Početak) E

(Kraj) X 0 Bez promene X 0 X 0 X 0 0 0 1 Čitanje 0 1 1 1 0 1 0 1 1 Upis 1 1 0 1 1 0 1

(b) (c)

Page 134: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

134

Sl. 3.97 FIFO red realizovan na bazi 1K RAM memorije: (a) princip rada; (b) Tabela operacija; (c) Tabela upravljanja; (d) šematski prikaz.

3.2.5 Sekvencijalne staze podataka

Staze podataka (datapaths) su sastavni deo svih standardnih procesora i ASIC kola, gde se koriste za izvršenje složenih numeričkih izračunavanja i manipulaciju podacima. Staza podataka se sastoji od izvesne količine memorije za privremeno smeštanje podataka i aritmetičkih, logičkih i pomeračkih jedinica. Razmotrimo, na primer, realizaciju kola za sabiranje 100 32-bitnih brojeva:

∑=

=100

1iixsum

Ovo izračunavanje može se obaviti u petlji, gde bi sum bila privremena promenljiva inicijalno postavljena na nulu:

sum = 0 loop:

for i=1 to 100 sum=sum+xi

end loop

Za izvršenje tela petlja potrebna je 32-bitna staza podataka koja se sastoji od jednog registra, koji se zove akumulator, i jedne ALU jedinice. Promenljiva sum biće smeštena u akumulatoru; u svakom taktnom ciklusu novo xi, biće dodato uz pomoć ALU jedinice na sum, a nova vrednost promenljive sum biće ponovo upisana u akumulator.

Na Sl. 3.98 prikazana je jednostavna staza podataka koja može da obavi opisano sumiranje. Ova staza podataka sadrži multiplekser, preko koga se kao levi operand ALU jedinice dovodi 0 ili ulazni podatka. Sadržaj akumulator se koristi kao desni operand ALU jedinice. Takođe, sadržaj akumulatora se preko trostatičkog bafera vodi na izlaz staze podataka. Akumulator je pomerački registar sa paralelnim upisom. Na Sl. 3.98(a) dat je šematski prikaz staze podataka, dok je na Sl. 3.98(b) prikazana 9-bitna upravljačka reč u okviru koje su navedene vrednosti signala koji upravljaju multiplekserom, ALU jedinicom, akumulatorom i izlaznim baferom. Sve komponente staze podataka su širine 32 bita.

Uopšteno govoreći, većina digitalnih projektanata postupa na isti način kada projektuje sisteme slične opisanom. Vrednosti promenljivih i konstante se čuvaju u registrima ili memoriji, odakle se čitaju nakon rastuće ivice taktnog signala i sve do sledeće rastuće ivice transformišu uz pomoć kombinacine logike, da bi, konačno, sa sledećom rastućom ivicom takta rezultat bio upisan nazad u memorijske komponente.

Page 135: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Komponente digitalnih sistema

135

Sl. 3.98 Staza podataka sa jednim akumulatorom: (a) Šematski prikaz; (b) Upravljačka reč.

U toku svakog taktnog ciklusa, upravljačka reč određuje operaciju staze podataka. Izračunavanje zbira 100 brojeva zahteva 102 taktna ciklusa. Upravljačka reč biće ista u svim taktnim cikusima osim u prvom i poslednjem. U prvom taktnom ciklusu, neophodno je obrisati akumulator (sum=0), u sledećih 100 taktnih ciklusa na akumuliranu sumu dodaje se novi broj, a u poslednjem taktnom ciklusu sadržaj akumulatora se prenosi na izlaz.

Iako opisana staza podataka može biti iskorišćena i za neka druga jednostavna aritmetička izračunavanja, složenija izračunavanja zahtevaju veći broj privremenih promenljivih kao i složeniju stazu podataka koja, na primer, za smeštanje promenljivih, umesto akumulatora, koristi registarski fajl. Na Sl. 3.99 prikazan je primer složenije staza podataka koja sadrži multiplekser, registarski fajl sa 8 registra i tri porta, jednu ALU jedinicu, pomerač i izlazni trostatički bafer. U ovom slučaju, u svakom taktnom ciklusu, oba operanda ALU jedinice se uzimaju iz registarskog fajla, gde se upisuje i rezultat. Iz razloga kompletnosti, na Sl. 3.99(b) i (c) su prikazane tabele operacija ALU jedinice i pomerača, dok je format upravljačke reči prikazana na Sl. 3.99(d). Uočimo da je za upravljanje stazom podataka neophodna 20-bitna upravljačka reč, koja određuje sva odredišta, izvore podataka kao i operacije u stazi podataka. Radi boljeg razumevanja rada staze podataka, iskoristićemo je za realizaciju algoritma brojanja jedinica.

Page 136: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

136

Sl. 3.99 Staza podataka sa registarskim fajlom sa 3 porta: (a) Šematski prikaz. (b) ALU operacije; (c) Operacije pomeračkog registra; (d) Upravljačka reč.

PRIMER 3.12 Realizacija brojača jedinica

Problem: Korišćenjem staze podataka sa Sl. 3.99, projektovati brojač jedinica koji određuje broj 1-ca u ulaznoj reči. Registar R0 registarskog fajla sadrži konstantu 0.

Rešenje: Za opis algoritma rada brojača jedinica koristićemo četiri promenljive: Podatak, BrojJedinica, Maska i Temp. Promenljiva Podatak sadržaće vrednost ulazne reči, tj. reči u kojoj se broje jedinice. Algoritam analizira promenljivu Podatak, bit po bit, od bita najmanje do bita najveće težine i dodaje 1 na BrojJedinica za svaku 1 na koju naiđe u ulaznoj reči. Promenljiva Maska sadrži konstantu 1, a promenljiva Temp se koristi za privremeno čuvanje bita najmanje težine promenljive Podatak. Nakon inicijalizacije, algoritam izdvaja bit najmanje težine promenljive Podatak i smešta ga u promenjljivu Temp, zatim dodaje Temp na BrojJedinica i konačno, pomera promenljivu Podatak za jednu poziciju na desno. Ova sekvenca operacija se ponavlja sve dok promenljiva Podatak sadrži vrednost različitu od “sve nule”. Uočimo da će za različite ulazne reči, broj ponavljanja ove sekvence operacija biti različit.

Page 137: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Komponente digitalnih sistema

137

PRIMER 3.12 (nastavak …)

Na Sl. 3.101(a), prikazan je algoritam brojanja jedinica. Naredbe 1, 2 i 3 se koriste za inicijalizaciju promenljivih. Naredbe 4 i 5 dodaju bit najmanje težine promenljive Podatak na tekuću vrednost promenljive BrojJedinica, dok naredba 6 pomera sadržaj promenljive Podatak za jednu poziciju na desno. (Pri pomeranju na desno, u bit najveće težine upisuje se 0.) Konačno, naredba 7 prenosi sadržaj promenljive BrojJedinica na izlaz.

Upravljačka reč IE Adresa

upisa Adresa čitanja A

Adresa čitanja B

ALU Operacija

Operacija pom. reg. OE

1 1 R1 X X X Propuštanje 0 2 0 R3 0 0 Sabiranje Propuštanje 0 3 0 R2 0 X Inkrement Propuštanje 0 4 0 R4 R1 R2 AND Propuštanje 0 5 0 R3 R3 R4 Sabiranje Propuštanje 0

6 0 R1 R1 0 Sabiranje Pomeranje na desno 0

7 0 - R3 0 Sabiranje Propuštanje 1

(c)

Sl. 3.101 Algoritam brojanja jedinica: (a) Polazni algoritam; (b) Dodela registara; (c) Upravljačke reči brojača jedinica.

Sl. 3.101 Algoritam brojanja jedinica prikazan u obliku konačnog automata

Prvi korak prilikom projektovanja hardverske realizacije algoritma je pridruživanje promenljivih ragistrima registarskog fajla. Kao što je prikazano na Sl. 3.101(b), promenljive Podatak, Maska, BrojJedinica i Temp, pridružene su redom registrima R1, R2, R3 i R4. Nakon što su promenljive dodeljene registrima, za svaku algoritamsku naredbu određuje se upravljačka reč, kao što je prikazano na Sl. 3.101(c). Upravljačka reč je podeljena na polja koja definišu operacije ALU jedinice i pomeračkog registara zajedno sa adresama registara koji služe kao izvori operanada i adresom registra gde se smešta rezultat. U cilju upravljanja stazom podataka, pretpostavićemo da se Brojač jedinica realizuje kao nezavisni modul koji počinje sa radom uvek kada signal Start postane 1, a postavlja 1 na izlazu Done odmah nakon što je završio izračunavanje.

Kao što se može videti na Sl. 3.103, konačni automat koji opisuje rad Brojača jedinica, ima osam stanja. Brojač jedinica ostaje u stanju S0 sve dok signal Start nepostane jednak 1, a zatim, u sledećih sedam stanja, S1, S2, ..., S7, Brojač jedinica radi shodno algoritmu sa Sl. 3.101(a). Konačno, u stanju S7, Brojač jedinica postavlja rezultat na izlaz, aktivira signal Done i vraća se u stanje S0.

Page 138: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

138

Start (Podatak=0)

Stanje Q2 Q1 Q0 00 01 10 11 S0 0 0 0 000 000 001 001 S1 0 0 1 010 010 010 010 S2 0 1 0 011 011 011 011 S3 0 1 1 100 100 100 100 S4 1 0 0 101 101 101 101 S5 1 0 1 110 110 110 110 S6 1 1 0 100 111 100 111 S7 1 1 1 000 000 000 000

(a)

Q2=0 Q2=1 Q1Q0

00 01 11 10 00 01 11 10

00 000 010 100 011 101 110 000 100

01 000 010 100 011 101 110 000 111

10 001 010 100 011 101 110 000 111

Start(P

od=0) 11 001 010 100 011 101 110 000 100

(b)

Q2=Q2’Q1Q0+Q2Q1

’+Q2Q0’

Q1=Q1’Q0+Q2

’Q1Q0’+ (Podatak=0)Q1Q0

Q0=Q2’Q1Q0

’+Q2Q1’Q0

’+ StartQ1’Q0

’+(Podatak=0)Q2Q0’

(c)

Sl. 3.103 Logika sledećeg stanja Brojača jedinica: (a) Tabela sledećih stanja; (b) Karnoova mapa; (c) Jendačine

sledećeg stanja.

Adresa upisa Adresa čitanja A Adresa čitanja B ALU

operacija

Operacija

pom.reg.

Stanje Q2 Q1 Q0 IE WA2 WA1 WA0 WE RAA2 RAA1 RAA0 REA RAB2 RAB1 RAB0 REB M S1 S0 S2 S1 S0 OE

S0 0 0 0 0 X X X 0 X X X 0 X X X 0 X X X X X X 0

S1 0 0 1 1 0 0 1 1 X X X 0 X X X 0 X X X X X X 0

S2 0 1 0 0 0 1 1 1 X X X 0 X X X 0 1 0 1 0 0 0 0

S3 0 1 1 0 0 1 0 1 X X X 0 X X X 0 1 1 1 0 0 0 0

S4 1 0 0 0 1 0 0 1 0 0 1 1 0 1 0 1 0 0 1 0 0 0 0

S5 1 0 1 0 0 1 1 1 0 1 1 1 1 0 0 1 1 0 1 0 0 0 0

S6 1 1 0 0 0 0 1 1 0 0 1 1 X X X 0 1 0 1 1 1 0 0

S7 1 1 1 0 X X X 0 0 1 1 1 X X X 0 1 0 1 0 0 0 1

(a) IE =Q2

’Q1’Q0 RAA2=0 RAB=Q0 M=Q1+Q0

WA2=Q1’Q0

’ RAA1=Q0 RAB1=Q0’ S1=Q2

’Q0 WA1=Q2Q0+Q2

’Q1 RAA0=1 RAB0=0 S0=1 WA0=Q1

’Q0+Q1Q0’ REA=Q1 REB=Q2Q1

’ S2=S1=Q2Q1Q0’

WE =Q2Q1’+Q2

’Q0+Q1Q0’ S0=0

OE=Q2Q1Q0 (b)

Sl. 3.103 Izlazna logika upravljačke jedinice Brojača jedinica: (a) Tabela izlazne logike; (b) jednačine izlazne logike

Upravljačka jedinica Brojača jedinica ima dva ulazna signala, Start i Podatak<>0 i jedan izlazni signal, Done. Signali Start i Done se koriste za komunikaciju sa okruženjem, dok signal Podatak≠0, u suštini, predstavlja statusni signal staze podataka. U svakom taktnom ciklusu, upravljačka jedinica generiše 20 bita upravljačke reči. Uočimo da su za realizaciju osam stanja neophodna tri D flip-flopa, označena sa Q2, Q1 i Q0. Na Sl. 3.103(a), (b) i (c) su prikazani tabela sledećeg stanja, odgovarajuća Karnoova mapa i jednačine sledećeg stanja.

Izlazna logika Brojača jedinica se dobija na osnovu upravljačke reči prikazane na Sl. 3.101(c). Na Sl. 3.103(a) je prikazana tabela istinitosti izlazne logike, koja je dobijena na osnovu Sl. 3.101(c) zamenom odgovarajućih binarnih vrednosti za svaki mnemonik. Napomenimo da se minimalni izrazi upravljačkih signala mogu dobiti na osnovu tabele istinitosti sa Sl. 3.103(a), primenom nekog od metoda logičke minimizacije. Konačno, na Sl. 3.104 dat je šematski prikaz Brojača jedinica koji koristi stazu podataka sa Sl. 3.99(a).

Page 139: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Komponente digitalnih sistema

139

Sl. 3.104 Šematski prikaz brojača jedinica.

Page 140: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

140

3.2.6 Paralelne staze podataka

U odeljku 3.2.5 opisano je više primera jednostavnih staza podataka. Međutim, za primene koje zahtevaju veliku brzinu obrade podataka, takve, jednostavne staze podataka bile bi verovatno previše spore. Povećanje performansi zahteva redizajniranje ovih staza podataka na način koji će omogućiti konkurentno izvršenje više operacija. Staze podataka koje omogućavaju istovremeno (konkurentno) izvršenje više opcija zovu se paralelne staze podataka.

Očigledan način za paralelizaciju staze podataka sastoji se u povećanju broja portova registarskog fajla i korišćenju nekoliko funkcionalnih jedinica, kao što je prikazano na primeru paralelne staze podataka sa Sl. 3.105. Uočimo da ova staza podataka ima 6-to portni registarski fajl (sa 4 porta za čitanje i 2 za upis), šest magitrala (četiri za prenos operanada i dve za prenos rezultata) i četiri funkcionalnih jedinice (ALU, pomerač, množač i delitelj). Prikazana staza podataka može da izvršava dve operacije u paraleli, jednu u ALU jedinici ili pomeraču i drugu u množaču ili delitelju.

Sl. 3.105 Paralelna staza podataka.

Sa druge strane, staza podataka saSl. 3.105, ipak omogućava samo ograničen paralizam, s obzirom da ne može istovremeno da obavlja bilo koje dve operacije. Na primer, u ovoj stazi podataka nije moguće u paraleli obaviti dva sabiranja ili dva množenja (zato što postoji samo jedna ALU jedinica i samo jedan množač). Drugim rečima, staza podataka sa Sl. 3.105 može ispoljiti dva puta bolje performanse u odnosu na jednostavne staze podataka iz odeljka 3.2.5, samo pod uslovom da algiritam ne zahteva ovakav tip paralelizma. Takođe, u ovoj stazi podataka komponente nisu potpuno povezane, što znači da izvesni tipovi paralelizma, koji iako postoje u algoritmu, neće moći biti iskorišćeni. Na primer, s obzirom da ALU jedinica i pomerač, kao i množač i delitelj koriste zajedničke magistrale za prenos operanada i rezultata, staza podataka ne može u isto vreme da izvršava operaciju množenja i operaciju deljenja, odnosno operaciju sabiranja i operaciju pomeranja. Drugim rečima, čak iako algoritam omogućava istovremeno izvršenje operacija sabiranja i pomeranja, staza podataka je u mogućnosti da u jednom vremenu obavlja samo jednu od ove dve operacije, bez obzira što hardverski resursi, u vidu funkcionalnih jedinica, postoje.

Na osnovu prethodne diskusije možemo zaključiti da povećanje performansi kod paralelne staze podataka zavisi ne samo od broja i tipa ugrađenih funkcionalnih jedinica, već i od načina na koji su funkcionalne jedinice povezane, kao i od nivoa i tipa paralelizma koji je sadržan u algoritmu koji se izvršava na toj stazi podataka. Drugim rečima, najbolji odnos cena/performanse se postiže ako su tipovi jedinica i način njihovog povezivanja usklađeni sa paralelizmu koji je dostupan u algoritmu. Takođe, moramo biti svesni činjenice da, tipično, algoritam ne obezeđuje isti nivo paralizma za sve vreme svog izvršenja.

Page 141: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Komponente digitalnih sistema

141

U opštem slučaju, da bi se postiglo najbolje poklapanje između algoritma i namenski projektovane staze podataka, potrebno je naći optimalan broj ALU jedinica, brojača, registarskih fajlova, memorija, sa različitim brojem portova, koji su povezani pomoću više magistrala. Magistrale se koriste kako za prenos operanada iz memorijskih komponenti do funkcionalnih jedinica, tako i za prenos rezultata funkcionalnih jedinica nazad u memorijske komponente. Takođe, moguće je da funkcionalne jedinice dobijaju operande sa više od jedne magistrale, mada takvo jedno rešenje zahteva ugradnju dodatnih multipleksera na ulazima funkcionalnih jedinica. Takođe, moguće je ispred ulaza i izlaza funkcionalne jedinice ugraditi lečeve, koji bi se koristili za privremeno smeštanje ulaznih operanada i rezultata. Na ovaj način se značajno skraćuje vreme u kome se magistrale koriste za prenos operanada, čime se posredno povećava saobraćaj na magistralama.

Sl. 3.106 Primer uopštene staze podataka.

Sa druge strane, ugradnja ulaznih i izlaznih lečeva zahteva složenije upravljanje, s obzirom da bi kod takvog rešenja obavljanje svake operacije zahteva više od jednog taktnog ciklusa. Najmanje jedan taktni ciklus je neophodan za svaku od sledećih aktivnosti: (a) pribavljanje operanada iz registara, registarskih fajlova ili memorije i upis u ulazne registre funkcionalnih jedinica, (b) izvršenje operacije i upis rezultata u izlazne registre i (c) smeštanje rezultata iz izlaznih registara nazad u registre ili memoriju. Na Sl. 3.106 prikazan je primer jedne ovakve staze podataka. Uočimo da staza podataka sadrži jedan brojač, jedan registar, tro-portni registarski fajl i memoriju. Za izračunavanje se koriste dve ALU jedinice i množač, dok se za spregu komponenti koriste četiri magistrale. Kao što se može videti, kod ALU1 ne lečevi nisu ugrađeni, kod ALU2 postoje lečevi i na ulazima i na izlazima, dok kod množača lečevi postoje samo na ulazima. U ovakvoj strukturi, ALU1 može da dobije svoj levi operand preko magistrala Magistrala_2 i Magistrala_3, dok desni operand množača može doći bilo preko Magistrala_1 bilo preko Magistrala_4. Slično, memorijske komponente mogu da prime podatke preko više od jedne magistrale. Ovakav tip staze podataka se često koristi kod aplikaciono-specifičnih integrisanih kola da bi se za dati algoritam ostvario najbolji odnos performanse/cena.

3.2.7 Projektovanje upravljačke jedinice

U prethodnim odeljcima pretpostavili smo da se upravljačka jedinica projektuje shodno standardnom modelu konačnog automata, što znači da se sastoji od logike sledećeg stanja, registra stanja i izlazne logike. Primer takve upravljačke jedinice se može videti na Sl. 3.107(a), gde se registar stanja sastoji od D flip-flopova, a logika sledećeg stanja i izlazna logika su realizovane kao dvonivolske ili više-nivolske kombinacione mreže. Takođe, ovakav tip upravljačke jedinice iskorišćen je u primeru 3.12. Međutim, u nekim slučajevima, upravljačka

Page 142: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

142

jedinica može imati čak više hiljada stanja i više stotina ulaza i izlaza i upravljačkih signala. Projektovanje takvih upravljačkih jedinica na standardni način je previše složeno. Iz tog razloga, u ovom odeljku biće opisano nekoliko alternativnih stilova projektovanja koji se mogu primeniti za realizaciju složenih upravljačkih jedinica.

D Q

D Q

D Q

.

.

.

Logika sledećeg

stanja

Izlazna logika

.

.

.

Upravljački ulazi Statusni

signali

Upravljački izlazi

Upravljački signali staze podataka

(a)

Registar stanja

...

...

Logika sledećeg stanja

...

Izlazna logika

...

...

...

Upravljački ulazi

Upravljački signali staze podataka

Statusnisignali

Upravljački izlazi

Logika sledećeg

stanja

Izlazna logika

.

.

.

Upravljački ulazi

Statusnisignali

Eksterno grananje

Internogrananje

Upravljački signali staze podataka

Upravljački izlazi

Inkrementer

Logika sledećeg

stanja

Izlazna logika

.

.

.

Upravljački ulazi

Statusnisignali

Upravljački izlazi

Upravljački signali staze podataka

Eksterno grananje

Eksterna adresa

Inkrementer

ROMili

PROM

Upravljački izlazi

.

.

.Upravljački signali staze podataka

mux

...

Upravljački ulazi

Statusnisignali

Logika za izbor adrese

Izbor uslova

(c)

(b)

(d)

(e)

load/count

Sl. 3.107 Stilovi realizacije upravljačke jedinice: (a) bazični model upravljačke jedinice; (b) upravljačka jedinica sa registrom stanja i dekoderom; (c) upravljačka jedinica sa brojačem; (d) upravljačka jedinica sa registrom stanja i

stekom; (e) upravljačka jedinica sa registrom stanja, stekom ROM memorijom.

Upravljačka jedinica sa dekoderom. Logika sledećeg stanja i izlazna logika upravljačke jedinice se mogu pojednostaviti korišćenjem registra stanja i dekodera, kao što je prikazano na Sl. 3.107(b). Kod ovog rešenja, svakom stanju odgovara jedan izlazni signal dekodera – signal stanja, koji je 1 kada je registar stanja u tom konkretnom stanju, a 0 inače. Upotrebom dekodera pojednostavljuju se jednačine za ulaze registra stanja, upravljačke signale staze podataka i upravljačke izlaze. U svim slučajevima kada neki od ovih signala zavisi samo od tekućeg stanja (tj. sadržaja registra stanja) on se može realizovati uz pomoć n-to ulaznog OR kola, gde

Page 143: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Komponente digitalnih sistema

143

n predstavlja broj stanja u kojima je taj signal postavljen na 1. Ukoliko signal dodatno zavisi od statusnih ili ulaznih signala, on se realizuje uz pomoć AND-OR logike kod koje AND kola, najčešće, imaju samo dva ulaza, gde je jedan ulaz signal stanja, a drugi statusni ili ulazni signal, kao što se može videti na Sl. 3.107(b).

Upravljačka jedinica sa brojačem. Složenost logike sledećeg stanja se može smanjiti ako uočimo da kod većine konačnih automata postoji niz stanja u kome svako stanje ima samo jednog naslednika. Dodatno, ako su stanja iz tog niza kodirana tako da se kod svakog stanja može dobiti inkrementiranjem koda prethodnog stanja, registar stanja se može zameniti brojačem. Ovakav stil projektovanja upravljačke jedinice prikazan je na Sl. 3.107(c). Kao što se vidi, logici sledećeg stanja dodata su još dva signala, signal za upravljanje brojačem (load/count) i signal za upravljanje multiplekserom. Signal load/count može da inkrementira brojač (što odgovara prelazu upravljačke jedinice u sledeće stanje iz niza) ili upiše u brojač kod stanja grananja (stanje u koje se prelazi prilikom izlaska iz niza). U drugom slučaju, stanje grananja određuje se interno (logika sledećeg stanja) ili se postavlja spolja preko upravljačkih ulaza upravljačke jedinice. Izbor između ove dve opcije se realizuje multiplekserom.

Upravljačka jedinica sa stekom. Složenost upravljačke jedinice se može smanjiti ako se često korišćeni zadaci kodiraju kao potprogrami. Na primer, umesto da se ista upravljačka sekvenca ponovi nekoliko puta, ona se može zameniti nizom poziva potprograma. Za realizaciju ovog koncepta neophodan je stek za čuvanje stanja koje sledi odmah nakon poziva potprograma. Upravljačka jedinica koja koristi stek prikazana je na Sl. 3.107(d). Kao što se vidi, stek čuva naslednika tekućeg stanja, koje se, po završetku potprograma, upisuje u registar stanja. Uočimo da su logici sledećeg stanja dodati novi signali, koji upravljaju upisom i čitanjem iz steka.

Mikroprogramsko upravljanje. Kod ovog stila projektovanja upravljačke jedinice, logika sledećeg stanja zamenjena je upravljačkom memorijom, koja se obično realizuje kao ROM ili PROM memorija. Kod rešenja ovog tipa, registar stanja služi kao generator adresa za upravljačku memoriju, kao što se može videti na Sl. 3.107(e). Da bi rešenje bilo efikasno, bitno je ograničiti broj upravljačkih i statusnih signala koji utiču na izbor sledećeg stanja, pošto svaki dodatni upravljački ili statusni signal duplira cenu upravljačke memorije. Iz tog razloga, za izbor sledećeg stanja koristi se samo jedan ulazni ili statusni signal, što redukuje mogućnost grananja na dvostruko grananje. Drugim rečima, sledeća adresa je inkrementirana tekuća adresa ili jedna od adresa grananja. Dvostruko grananje je realizovano korišćenjem dva kaskadno povezana adresna multipleksera i jednog multipleksera uslova preko koga se bira jedan od upravljačkih ili statusnih signala koji će upravljati izborom sledeće adrese. Sledeća adresa može biti: inkrementirana tekuća adresa, pročitana iz stek ili ROM memorije ili postavljena iz okruženja. Stil projektovanja upravljačke jedinice sa Sl. 3.107(e), obično se zove mikroprogramsko upravljanje, a zadatak prevođenja ASM dijagrama u sadržaj ROM memorije poznat kao mikroprogramiranje.

Najčešće korišćeni stilovi projektovanja upravljačke jedinice su direktan pristup, koji se koristi kod ASIC kola, i mikroprogramsko upravljanje, koje se često koristi kod složenih procesora.

Page 144: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže
Page 145: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

4 ASM dijagrami

ASM dijagram (Algorithmic State Machine Diagram) predstavlja standardnu grafičku notaciju, u formi dijagrama toka, koja se koristi za opis (specifikaciju) ponašanja (funkcionisanja) digitalnih sistema. ASM dijagrami se koriste prilikom projektovanja digitalnog hardvera koji realizuje (implementira) neki konkretan algoritam. Uz pomoć ASM dijagrama, moguće je opisati rad digitalnog sistema na apstraktnom nivou, nezavisno od konkretne hardverske realizacije. Drugim rečima, ASM dijagram govori šta sistem radi (tj. definiše tok elementarnih operacija u vremenu), a ne kako je sistem realizovan (tj. koja konkretna digitalna kola se koriste i kako su povezana).

Mada, ASM dijagram nalikuje konvencionalnom, softverskom dijagramu toka, interpretacija i oblasti primene ova dva tipa dijagrama se razlikuju. Oba tipa dijagrama služe za opis algoritama. Softverske dijagrame toka koriste programeri, kao početni korak u procesu razvoja programa čija je namena da omogući izvršenje konkretnog algoritam na računskoj mašini. ASM dijagrame koriste projektanti digitalnog hardvera, kao početni korak u procesu realizacije konkretnog algoritma direktno u hardveru.

U pogledu interpretacije, razlika između softverskog dijagrama toka i ASM dijagrama ogleda se pre svega u odnosu na to kako protok vremena utiče na rad algoritma. Računska mašina izvršava algoritam instrukciju-po-instrukciju; svaka instrukcija se obavlja u toku jednog instrukcijskog ciklusa, pri čemu instrukcijski ciklusi mogu imati različito trajanje. S toga, softverski dijagram ne navodi tačan iznos vremena koji je potreban da bi se izvršio jedan algoritamski korak, već samo jednoznačno određuje tok (sekvencu) algoritamskih koraka. Programer je svestan činjenice da izvršenje algoritma na računskoj mašini zahteva neko konačno vreme, koje zavisi od broja i složenosti operacija koje treba izvršiti, ali sam tok algoritma i konačni rezultat ne zavise od vremena izvršenja pojedinačnih operacija. Sa druge strane, rad digitalnog sistema je iniciran taktnim signalom, a u toku jednog taktnog perioda digitalni sistem može da obavi jednu ili više elementarnih operacija. Naime, u radu digitalnog sistema ispoljava se paralelizam. S toga, osnovna pretpostavka kod ASM dijagram se sastoji u sledećem: svaki algoritamski korak traje isto, fiksno vreme (jednako taktnom periodu), a sve operacije obuhvaćene jednim algoritamskim korakom se izvršavaju istovremeno (u paraleli).

Za crtanje ASM dijagrama koriste se sledeći grafički simboli: pravougaonici, zaobljeni (ovalni) pravougaonici, rombovi i strelice koje povezuju pravougaonike, zaobljene pravougaonike i rombove. ASM dijagrami koji sadrže samo pravougaonike i rombove opisuju konačne automate Murovog tipa, dok se za opis konačnih automata Milijevog tipa dodatno koriste i zaobljeni pravougaonici.

4.1 Stanja

U ASM dijagramu, svaki pravougaonik definiše jedno stanje. Uobičajeno je da se stanja imenuju, a ime stanja zapisuje uz spoljnu ivicu odgovarajućeg pravougaonika. Pojam tekuće stanje odnosi se na pravougaonik ASM dijagrama koji je aktivan u toku konkretnog taktnog ciklusa. Pojam sledeće stanje odnosi se na pravougaonik ASM dijagrama koji će postati aktivan u toku narednog taktnog ciklusa. Svaki par ¨tekuće-sledeće¨ stanje povezan je strelicom koja polazi sa pravougaonika tekućeg, a završava se na pravougaoniku sledećeg stanja. S obzirom da ASM dijagram sadrži konačan broj stanja, gde svako stanje traje tačno jedan taktni ciklus, i da svaki digitalni sistem radi bez prestanka (sve dok je pod napajanjem), svaki ASM dijagram mora sadržati barem jednu petlju.

Na Sl. 4.1 prikazan je ASM dijagram sa tri stanja. Uz pretpostavku da je početno stanje dijagrama stanje ZELENO, i da je taktni period jednak 0.5s, ASM dijagram neprekidno ponavlja sekvencu prelaza koja je navedena u tabeli sa Sl. 4.1. Na primer, u vremenu između 0.5 i 1.0s, ASM dijagram je u stanju ŽUTO, da bi se u vremenu između 2.0 i 2.5 ponovo našao u istom tom stanju.

Page 146: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

146

Vreme Tekuće stanje Sledeće stanje 0.0 ZELENO ŽUTO 0.5 ŽUTO CRVENO 1.0 CRVENO ZELENO 1.5 ZELENO ŽUTO 2.0 ŽUTO CRVENO 2.5 CRVENO ZELENO … … …

Sl. 4.1 ASM dijagram sa tri stanja

4.2 Komande

Normalno, pravougaonici ASM dijagrama nisu prazni, kao u primeru sa, već sadrže komande. Razlikujemo tri tipa komandi:

• Postavljanje jednobitnih signala • Postavljanje višebitnih signala • Naredbe registrarskog prenosa

4.2.1 Postavljanje jednobitnih signala

Signal je jedan bit, ili grupa više bitova, koji prenose binarnu informaciju između digitalnih kola ili sklopova. Uobičajeno je da projektant dodeljuje imena signalima kao bi dokumentovao njihovu namenu. U hardveru, jednobitnom signalu odgovara žica (veza), dok višebitnom signalu odgovara magistrala. U ASM dijagramu, signali se javljaju pod svojim imenima.

Jednobitni signal može imati vrednost 0 ili 1, pri čemu se jedna od ove dve vrednosti smatra podrazumevanom. U kontekstu jednobitnih signala, pojam ¨signal je postavljen¨ znači da signal uzima vrednost koja je različita od podrazumevane. Na primer, ako za podrazumevanu vrednost usvojimo 1, postavljeni signal imaće vrednost 0. Postojanje imena signala unutar pravougaonika ASM dijagrama znači da je taj signal postavljen za sve vreme dok je ASM dijagram u stanju koje je pridruženo odgovarajućem pravougaoniku. U ostalim pravougaonicima, gde se ime signala ne javlja, signal ima podrazumevanu vrednost.

Na Sl. 4.2, prikazan je ASM dijagram koji sadrži jednobitni signal STOP. Pod pretpostavkom da je podrazumevana vrednost signala STOP 0, ovaj signal imaće vrednost 1 u stanjima ŽUTO i CRVENO, a vrednost 0 u stanju ZELENO. Ponašanje ASM dijagrama ilustrovano je sledećom tabelom:

Vreme Tekuće stanje Sledeće stanje Signali 0.0 ZELENO ŽUTO STOP=0 0.5 ŽUTO CRVENO STOP=1 1.0 CRVENO ZELENO STOP=1 1.5 ZELENO ŽUTO STOP=0 2.0 ŽUTO CRVENO STOP=1 2.5 CRVENO ZELENO STOP=1 … … …

4.2.2 Postavljanje višebitnih signala

Za razliku od jednobitnih, višebitni signali mogu uzeti više od dve različite vrednosti. Tačnije, n-to bitni signal može biti postavljen na jednu od 2n različitih vrednosti. Iz tog razloga, prosto navođenje imena signala nije

ZELENO

ZUTO

CRVENO

STOP

STOP

Sl. 4.2 ASM dijagram sa komandnim (upravljačkim)

izlazima

Page 147: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

ASM Dijagrami

147

dovoljno da se jednoznačno ukaže na vrednost na koju se višebitni signal postavlja, već se za označavanje postavljanja višebitnih signala koristi naredba dodele, kod koje se ime signala nalazi sa leve, a vrednost na koju se signal postavlja sa desne strane znaka jednakosti (=). U svim stanjima (pravougaonicima) gde vrednost višebitnog signala nije eksplicitno definisana naredbom dodele, signal uzima svoju podrazumevanu vrednost.

Na Sl. 4.3, pikazan je ASM dijagram koji pored jednobitnog signala STOP sadrži i dvobitni signal BRZINA. Moguće vrednosti signala BRZINA su 0, 1, 2 i 3, ili, u binarnom obliku 00, 01, 10 i 11, respektivno. Pod pretpostavkom da je podrazumevana vrednost signala BRZINA 0, ponašanje opisano ASM dijagramom sa Sl. 4.3, može se predstaviti sledećom tabelom:

Vreme Tekuće stanje Sledeće stanje Signali 0.0 ZELENO ŽUTO STOP=0 BRZINA=11 0.5 ŽUTO CRVENO STOP=1 BRZINA=01 1.0 CRVENO ZELENO STOP=1 BRZINA=00 1.5 ZELENO ŽUTO STOP=0 BRZINA=11 2.0 ŽUTO CRVENO STOP=1 BRZINA=01 2.5 CRVENO ZELENO STOP=1 BRZINA=00 … … …

Jasno se uočava da signal BRZINA ima vrednost 0 u stanju CRVENO, vrednost 1 u stanju ŽUTO i vrednost 3 u stanju ZELENO.

4.2.3 Registarski prenos

U digitalnim sistema, registri se koriste kao memorijski elementi za čuvanje vrednosti promenljivih koje su definisane algoritmom. Dodela vrednosti promenljivoj je ekvivalentna operaciji upisa u odgovarajući registar, a registar zadržava upisanu vrednost sve do novog upisa. Treba praviti jasnu razliku između signala i registarskih promenljivih. Signali su proste veze (žice), koje, za razliku od registara, nemaju sposobnost memorisanja, već je njihova vrednost direktno određena tekućim stanjem ASM dijagrama.

Operacija upisa u registar se označava naredbom registarskog prenosa, tj. naredbom dodele kod koje je znak jednakosti (=) zamenjen horizontalnom strelicom usmerenom na levo (←). Ova naredba ukazuje na vrednost koja se upisuje (prenosi) u registar u trenutku početka sledećeg taktnog ciklusa, tj. pri ulasku u sledeće stanje. Ukoliko se ime registra ne javlja sa leve strane ni jedne naredbe registarskog prenosa u okviru nekog pravougaonika, to znači da će sadržaj tog registra ostati nepromenjen prilikom ulaska u sledeće stanje.

Razmotrimo ASM dijagram sa Sl. 4.4, koji pored dva signala, STOP i BRZINA, sadrži i registarsku promenljivu BROJAČ. Rad ASM dijagrama, pod pretpostavkom da je promenljiva BROJAČ tro-bitna sa početnim stanjem 000, detaljno je opisan sledećom tabelom:

Vreme Tekuće stanje Sledeće stanje Signali i promenljive 0.0 ZELENO ŽUTO STOP=0 BRZINA=11 BROJAČ=000 0.5 ŽUTO CRVENO STOP=1 BRZINA=01 BROJAČ=000 1.0 CRVENO ZELENO STOP=1 BRZINA=00 BROJAČ=001 1.5 ZELENO ŽUTO STOP=0 BRZINA=11 BROJAČ=011 2.0 ŽUTO CRVENO STOP=1 BRZINA=01 BROJAČ=011 2.5 CRVENO ZELENO STOP=1 BRZINA=00 BROJAČ=100 … … … …

Za razliku od signala STOP i BRZINA, promenljiva BROJAČ nije u funkciji isključivo tekućeg stanja. Na primer, uvek kada je ASM dijagram u stanju ZELENO, signal STOP je 0. Sa druge strane, prilikom prvog

BRZINA=3ZELENO

ZUTO

CRVENO

STOPBRZINA=1

STOP

Sl. 4.3 ASM dijagram sa višebitnim izlazom

BRZINA=3ZELENO

ZUTO

CRVENO

STOPBRZINA=1

BROJAC<-BROJAC+1

STOPBROJAC<-BROJAC+2

Sl. 4.4 ASM dijagram sa registarskim izlazom.

Page 148: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

148

ulaska u stanje ZELENO, registar BROJAČ ima vrednost 000, ali kod drugog ulaska u isto stanje, vrednost promenljive BROJAČ je 001, itd.

Treba uočiti da operacija ← ukazuje na odloženu ili zakasnelu dodelu (delayed assignment), tj. na dodelu koja se obavlja u trenutku ulaska u sledeće stanje u odnosu na stanje u kome je naredba zakasnele dodele navedena. To predstavlja suštinsku razliku u odnosu na naredbu dodele koja se koristi kod konvencionalnih softverskih programskih jezika, kakvi su, na primer, C ili FORTRAN. Mehanizam odložene dodele može se lako uočiti u gornjem primeru. Naredba ¨BROJAČ ← BROJAČ + 1¨, koja uvećava vrednost promenljive BROJAČ za jedan, nalazi se u stanju ŽUTO. Međutim, kako se može uočiti u gornjoj tabeli, za sve vreme dok je ASM u stanju ŽUTO, ova naredba nema dejastva, a promenljiva BROJAČ zadržava vrednost koju je imala u prethodnom stanju (ZELENO). Tek kada se stanje ŽUTO napusti i novo stanje postane stanje ZELENO, promenljiva BROJAČ se uvećava za jedan. Drugim rečima, dejstvo naredbe BROJAČ ← BROJAČ + 1 je odloženo do trenutka početka sledećeg stanja.

4.3 Odluke

Kod svih prethodno navedenih primera ASM dijagrama, tok izvršenja jednoznačno je određen, tj. redosled promene stanja je uvek isti: ZELENO-ŽUTO-CRVENO. Međutim, često postoji potreba da se tok izvršenja promeni, u zavisnosti od tekuće vrednosti jednog ili više signala ili registarskih promenljivih. Kod ASM dijagrama, tok izvršenja se reguliše odlukama, koje se grafički predstavljaju u vidu rombova. Romb ima jedan ulaz i dva izlaza, pri čemu svaki izlaz ukazuje na jedno od dva alternativna sledeća stanja ili ponovo na romb u kome se nastavlja odlučivanje o novom stanju ASM dijagrama. Odluka koja se nalazi unutar romba dešava se u isto vreme (tj. u istom taktnom ciklusu) kada i operacije navedene u pravougaoniku koji neposredno prethodi rombu. Rezultat odluke određuje duž kojeg od dva izlaza romba se nastavlja izvršenje ASM dijagrama. Koriste se dve vrste odluka:

• Relacije • Externi statusi

4.3.1 Relacije

Relacije su odluke koje se donose na osnovu tekućih vrednosti internih signala i registara. Relacioni izrazi koji se koriste za opis odluka, mogu sadržati relacione operatore (==, <, >, <=, >=, !=), i logičke operatore (&&, ||, !). Takođe, ako su svi operandi koji učestvuju u konkretnoj relaciji jednobitni, dozvoljeno je koristiti i bitske logičke operatore (&, |, ~). Navedeni relacioni i logički operatori imaju isto značenje kao kod programskog jezika C.

U slučajevima kada relacija, navedena u rombu, uključuje ime registra, koji se, takođe, koristi i u pravougaoniku koji prethodi rombu, akcija koja je rezultat odluke se obično razlikuje od one koja bi se desila u softverskom algoritmu iste strukture. S obzirom da se odluka navedena u rombu donosi u isto vreme kada se izvršavaju i operacije navedene u pravougaoniku koji neposredno prethodi tom rombu, prilikom izračunavanja relacije treba ignorisati dejstvo svih naredbi registarskog prenosa koje pripadaju pravougaoniku. Eventualni registarski prenos je aktivnost koja će se desiti tek na početku sledećeg taktnog ciklusa – znači, tek nakon što je odluka o novom stanju doneta.

Na Sl. 4.5 prikazan je ASM dijagram koji sadrži odluku BROJAČ != 0 (!= znači ˝različito˝). Ako je vrednost registarske promenljive BROJAČ različita od nule, ASM ostaje u stanju ŽUTO. U suprotnom, ako je vrednost registra BROJAČ jednaka 0, ASM prelazi u stanje CRVENO. Na prvi pogled, izgleda da ASM nakon prvog ulaska u stanje ŽUTO, trajno ostaje u ovom stanju, jer BROJAČ + 1, u stanju ŽUTO, daje 001, što je različito od 0. Međutim, odluka BROJAČ != 0 zasnovana je na tekućoj vrednosti registra BROJAČ, koja ostaje 000 sve do početka sledećeg taktnog ciklusa. Iz tog razloga, ASM napušta stanje ŽUTO i ulazi u stanje CRVENO. Prilikom sledećeg ulaska u stanje ŽUTO, BROJAČ ima vrednost 011, a ASM ostaje u ovom stanju sledećih šest taktnih ciklusa. Razlog za napuštanje stanja ŽUTO nalazi se u činjenici da je BROJAČ trobitna promenljiva,

Sl. 4.5 ASM dijagram sa odlukom.

Page 149: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

ASM Dijagrami

149

čija je najveća vrednost 111, tj. 7. Operacija BROJAČ + 1 primenjena na registar BROJAČ u kome je vrednost 111, daje 000. Detaljni opis rada ASM dijagram prikazan je u sledećoj tabeli:

Vreme Tekuće stanje Sledeće stanje Signali i promenljive 0.0 ZELENO ŽUTO STOP=0 BRZINA=11 BROJAČ=000 0.5 ŽUTO CRVENO STOP=1 BRZINA=01 BROJAČ=000 1.0 CRVENO ZELENO STOP=1 BRZINA=00 BROJAČ=001 1.5 ZELENO ŽUTO STOP=0 BRZINA=11 BROJAČ=011 2.0 ŽUTO ŽUTO STOP=1 BRZINA=01 BROJAČ=011 2.5 ŽUTO ŽUTO STOP=1 BRZINA=01 BROJAČ=100 3.0 ŽUTO ŽUTO STOP=1 BRZINA=01 BROJAČ=101 3.5 ŽUTO ŽUTO STOP=1 BRZINA=01 BROJAČ=110 4,0 ŽUTO ŽUTO STOP=1 BRZINA=01 BROJAČ=111 4.5 ŽUTO CRVENO STOP=1 BRZINA=01 BROJAČ=000 5.0 CRVENO ZELENO STOP=1 BRZINA=00 BROJAČ=001 … … … …

Vrsta u tabeli napisana masnim slovima odgovara taktnom ciklusu u kome je ASM poslednji put u stanju ŽUTO, pre nego što, zbog BROJAČ=000, pređe u stanje CRVENO. Uočava se da je svrha uvođenja registra BROJAČ produženje trajanja stanja ŽUTO na 6 taktnih ciklusa.

4.3.2 Eksterni statusi

Većina digitalnih sistema u toku svog rad ineraguje sa svojim okruženjem. Okruženje mogu činiti drugi digitalni sistemi, ne-digitalni uređaji, kao što su prekidači ili senzori, pa čak i čovek koji posredstvom odgovarajućih ulazno-izlaznih uređaja komunicira sa sistemom. Rećićemo da se okruženje digitalnog sistema sastoji od nezavisnih aktora, koji koordinirano, ali u paraleli, rade i interaguju kako sa digitalnim sistemom tako i između sebe. Sa tačke gledišta projektanta, detalji koji se odnose na rad i implementaciju aktora nisu od značaja. Za projektanta digitalnog sistema bitno je da poznaje informacije koje se razmenjuju između sistema i aktora kao i način na koji aktori komuniciraju sa sistemom.

Informacije koje aktori šalju sistemu tipično se odnose na interni status aktora (npr. ¨prekidač je zatvoren¨, ¨senzor je aktivan¨ i sl.). Sistem, opisan u obliku ASM dijagrama, koristi ovu informaciju da bi u slučaju promene stanja aktora reagovao na odgovarajući način. Informacija koju sistem dobija od aktora, a koja se može predstaviti jednim bitom, zove se eksterni status. (Napomenimo da se višebitni signali uvek mogu razložiti na pojedinačne jednobitne signale). Razlika između eksternog statusa i signala je u tome što vrednost signala postavlja sam sistem, dok vrednost eksternog statusa definiše aktor. Drugim rečima, sistem može samo da nadgleda vrednost eksternog statusa, ali ne može, na direktan način, da kontroliše njegovu vrednost. Svakom eksternom statusu je pridruženo ime (oznaka), koje ukazuje na odgovarajuću fizičku vezu koja povezuje sistem sa spoljnim svetom. Ime eksternog statusa se može naći unutar romba. Po usvojenoj konvenciji, romb sa upisanim imenom eksternog statusa označava testiranje da li je eksterni status jednak 1, ili ´tačan´.

Na Sl. 4.6 prikazan je ASM dijagrama koji sadrži ispitivanje eksternog statusa PREKIDAČ. ASM dijagram ostaje u stanju ZELENO sve dok je vrednost eksternog statusa PREKIDAČ 0. Kada PREKIDAČ dobije vrednost 1, ASM prelazi u stanje ŽUTO. U stanjima ŽUTO i CRVENO, ASM ignoriše stanje eksternog statusa PREKIDAČ.

4.4 Ulazi i izlazi ASM dijagrama

ASM dijagram najčešće opisuje ponašanje samo jednog dela celokupnog digitalnog sistema, i to bez specificiranja njegove unutrašnje (interne) strukture. Sistem, ili mašina, opisana ASM dijagramom, često je deo

Sl. 4.6 ASM dijagram sa eksternim

statusom.

Page 150: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

150

neke veće strukture. Mašina dobija ulaze od drugih aktora i obezbeđuje izlaze za druge aktore u toj većoj strukturi. Sprega mašine opisane ASM dijagramom sa spoljnim svetom ostvaruje se putem portova, koji mogu biti ulazni (za prijem informacija) i izlazni (za slanje informacija). Portovi mogu biti pojedinačne veze ili magistrale čija imena odgovaraju onima koja se za njihovo označavanje koriste u ASM dijagramu.

Često, ASM dijagramu je pridruzen blok dijagram mašine. Takav dijagram se ponekad zove i crna kutija, s obzirom da pokazuje samo ulaze i izlaze mašine, a sakriva internu strukturu mašine. Ulazni portovi se označavaju strelicom koja je usmerena ka bloku, a izlazni strlicom koja je usmerena od bloka. Broj bitova višebitnog porta, zapisuje se uz kosu crtu koja preseca strelicu. Na Sl. 4.7 prikazan je blok dijagram mašine čije ponašanje je opisano ASM dijagramom sa Sl. 4.6. Uočimo da ASM dijagram i blok dijagram, u kombinaciji, detaljno govore o ponašanju mašine, njenim ulazima i izlazima. Međutim, i dalje, bilo kakva informacija o detaljima implementacije mašine nije dostupna.

ASM

PREKIDAC STOP

BRZINA

BROJAC

2

3

Sl. 4.7 Blok dijagram.

4.4.1 ASM ulazi

Razlikujemo sledeće dve vrste ulaza u mašinu opisanu ASM dijagramom i blok dijagramom: statusi ulazi i ulazi podataka. Klasifikacija ulaza na statuse i podatke nije stroga, a projektant ima slobodu da klasifikaciju obavi na način za koji smatra da je najprikladniji u kontekstu konkretnog problema. Međutim, u kasnijim fazama projektovanja, koje se tiču sinteze, statusi i podaci različito se tretiraju, te je s toga bitno naglasiti razliku između njih.

4.4.1.1 Statusni ulazi

Projektant može tretirati jednobitni ulazni port kao statusni ulaz ukoliko se u ASM dijagramu ime tog signala javlja samo unutar rombova, tj. ukoliko ASM koristi taj ulaz samo za donošenje direktnih odluka, a ne i za neka druga izračunavanja. Uobičajeno, statusni ulaz se tretira kao ulaz preko koga spoljni svet isporučuje mašini odgovor na pitanje tipa ¨da-ne¨, kao što je, na primer, pitanje: ¨da li je prekidač zatvoren?¨. U blok dijagramu na Sl. 4.7, PREKIDAČ predstavlja statusni ulaz.

4.4.1.2 Ulazi podataka

Ulaz, bilo da je jednobitni ili višebitni, koji se u ASM dijagramu uvek javlja samo sa desne strane naredbi registarskog prenosa i/ili u relacijama, smatra se eksternim ulazom podataka. Takvi ulazi imaju istu ulogu kao i ulazne promenljive kod konvencionalnih programskih jezika.

Svaki jednobitni ulaz u ASM se može tretirati bilo kao status bilo kao jednobitni podatak. Višebitni ulaz koji se javlja samo u okviru relacija (rombova), ali ne i sa desne strane naredbi registarskog prenosa, može se tretirati kao skup od više pojedinačnih statusnih bitova. Na primer, razmotrimo mašinu koja poseduje trobitni ulaz podataka, A. U toku rada, mašina testira da li je vrednost koja se preko magistrale A dostavlja mašini iz spoljneg sveta jednaka 2. Sl. 4.8 prikazuje blok dijagram i dva ekvivalentna ASM dijagrama ove mašine. ASM dijagram (1) tretira A kao jedinstveni trobitni ulaz. ASM dijagram (2) tretira A kao tri nezavisna jednobitna statusna ulaza (A[0], A[1] i A[2]).

PROVERA

A==2 10

PROVERA

A[0]

1

0

A[1]

A[2]

0

NE DA

NE DA

1 0

1

(1) (2)

ASMA3

Blok dijagram

Sl. 4.8 Dva načina tretiranja višebitnih ulaza.

Page 151: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

ASM Dijagrami

151

U zaključku, ulazne informacije tipa ¨da-ne¨ prirodno je smatrati statusima. U većini ostalih slučajeva, sa tačke gledišta projektanta, lakše je ulaznu informaciju tretirati kao podatak, kao što to pokazuje prethodni primer. Ulazi koji se koriste u naredbama registarskog prenosa moraju se tretirati kao podaci.

4.4.2 ASM Izlazi

Razlikujemo dve vrste izlaza iz mašine opisane blok dijagramom i ASM dijagamom:

• Upravljački izlazi • Izlazi podataka

4.4.2.1 Upravljački izlazi

Upravljački ili komandni izlazi su izlazi iz ASM koji zavise samo od tekućeg stanja ASM dijagrama. Upravljački izlazi ne zadržavaju svoju vrednost nakon promene stanja. Ukoliko ime upravljačkog izlaza nije navedeno u pravougaoniku sledećeg stanja, u sledećem stanju upravljački izlaz dobija podrazmevanu vrednost. U blok dijagramu sa Sl. 4.7, signali STOP i BRZINA su upravljački izlazi.

4.4.2.2 Izlazi podataka

Izlazi podataka su imena registara koja se javljaju sa leve strane barem jedne naredbe registarskog prenosa. Za razliku od upravljačkih izlaza, izlazi podataka zadržavaju svoju vrednost nakon promene stanja ASM dijagrama. Naime, ako se ime izlaza podataka ne javlja u nekom pravougaoniku, taj izlaz zadržava zatečenu vrednost i u sledećem stanju. Nisu svi registri koji se javljaju u ASM dijagramu istovremeno i izlazi podataka. Registar čije ime nije navedeno u blok dijagramu kao izlazni port, predstavlja interni registar mašine, a njegova vrednost nije dostupna spoljenem svetu (iz prostog razloga jer ne postoji magistrala i port koji povezuju taj registar sa spoljnim svetom). U blok dijagramu sa Sl. 4.7 jedini izlaz podataka je BROJAČ.

4.5 Projektovanje ¨odozgo-naniže¨

Postoje dva osnovna pristupa rešavanju problema: ¨odozdo-naviše¨ (bottom-up) i ¨odozgo-naniže¨ (top-down). Kod pristupa ¨odozdo-naviše¨, projektant započinje rad rešavanjem nekog izdvojenog detalja celokupnog problema. Nakon toga, projektant prelazi na neki drugi detalj, koji nije u vezi sa prvim. Konačno, projektant dolazi u situaciju da spaja nezavisno rešene delove problema u jednistveno rešenje. Kod problema većeg obima, pojedinačno rešavani delovi se obično ne uklapaju idealno jedni s drugim. To je posledica samog pristupa koji fokusiranjem na izdvojene detalje odvlači pažnju projektanta sa slike o celovitosti rešenja. Konačni rezultat je takav da se najveći deo ukupnog projektantskog vremena troši na uklapanje nezavisnih detalja, što često uključuje i prepravku već rešenih delova opšteg problema.

Kod pristupa ¨odozdo-naviše¨, projektant započinje rad na problemu razradom globalnog plana što podrazumeva sveobuhvatno sagledavanje problema, razradu strategije rešavanja problema, dekompoziciju problema na potprobleme manjeg obima, i definisanje odnosa između pojedinih potproblema. Drugim rečima, projektant se trudi da polazni problem, koji je obično isuviše obiman da bi se rešio ¨u jednom dahu¨, razloži na veći broj jasno definisanih problema manjeg obima. Pri tome, projektant ne rešava odmah uočene potprobleme, već ih tretira kao apstraktne sklopove (crne kutije) koje međusobno uklapa i povezuje. U drugoj fazi projektovanja, projektant nastavlja sa razradom i rešavanjem uočenih potproblema. Pri tome, projektant može slobodno da se usredsredi na svaki pojedinačni, prethodno definisani potproblem, bez brige oko njihovog uklapanja, koje je razradio u prvoj fazi projekta i time ih ugradio u definiciju svakog pojedinačnog potproblema.

Projektanti-početnici obično ne doživljavaju projektovanje ¨odozgo-naniže¨ kao prirodni pristup. Prirodno je da neko ko nema iskustva u projektovanju hardvera bude zabrinut detaljima koji se odnose na realizaciju (kao razvesti napajanje, koja digitalna kola koristiti i kako ih povezati, i td.). Pristup ¨odozgo-naniže¨ zasnovan je na iskustvu i samopouzdanju projektanta: neko ko je ranije rešavao detalje slične onima koji se javljaju u tekućem problemu, može ignorisati te detalje u toku razrade globalnog plana, siguran da će onda kada pređe na realizaciju svog globalnog plana, moći da reši svaki od izdvojenih potproblema.

ASM dijagrami predstavljaju korisnu notaciju za opis sveukupne funkcionalnosti digitalnog sistema bez potrebe ulaženja u hardverske detalje. S toga, ASM dijagrami predstavljaju dobru polaznu tačku za projektovanje u stilu ¨odozgo-naniže¨.

Generalno, projektavanje ¨odozgo-naniže¨ ostvaruje se u sledeće tri faze:

• Opis ponašanja • Razrada • Realizacija

Page 152: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

152

4.5.1 Opis ponašanja

Opis ponašanja je najvažnija faza celokupnog procesa projektovanja. U ovoj fazi, mašina koja se projektuje opisuje se u vidu ASM dijagrama. Jedina struktura koja postoji u ovoj fazi je blok dijagram koji specificira ulazne i izlazne portove mašine (Sl. 4.9). Drugim rečima, u ovoj fazi, mašina se tretira kao crna kutija sa naznačenim ulazima i izlazima koja se ponaša na način koji je opisan ASM dijagramom. Obično, projektant ne kreira samo jedan ASM dijagram, već istražuje različite opcije i varijante mogućih rešenja, vrednujući ih u skladu sa postavljenim performansnim kriterijumima (brzina rada, hardverska složenost i sl.). Napomenimo da ASM dijagram, iako apstraktni opis, pruža dovoljno informacija na osnovu kojih se može odrediti broj taktnih ciklusa potrebnih za obavljanje pojedinih aktivnosti i grubo proceniti složenost hardverske realizacije, na primer, na osnovu broja registarskih promenljivih.

Sl. 4.9 Blok dijagram koji odgovara opisu ponašanja.

4.5.2 Razrada

ASM dijagram nije ništa više od grafičkog prikaza algoritma, sa preciznom informacijom o tajmingu i indikacijom o tome koje operacije se obavljaju u paraleli, a koje sekvencijalno. ASM dijagram ništa ne govori o hardverskim komponentama koje su potrebne da bi se opisano izračunavanje realizovalo. Krajnji cilj projektovanja je relizacija fizičkog sistema, tj. precizna specifikacija strukture mašine (na primer, u vidu logičke šeme). ASM dijagram govori o tome šta projektant želi da mašina radi, a ne govori ništa o tome kako povezati fizičke komponente da bi se osvarilo željeno ponašanje mašine. Sa programerske tačke gledišta, postavlja se pitanje zašto nastaviti dalje, zar problem nije rešen samim tim što smo našli algoritam. Slično, projektant hardvera, može se zapitati zašto trošiti vreme na ASM dijagram, kada to ionako nije oblik rešenja koji nam je potreban. Odgovor na oba ova pitanja je da kreiranje ASM dijagrama povećava šansu da će projektant realizovati korektno rešenje. Sledeća faza projektovanja, razrada, upravo uključuje jedan deo ukupne transformacije algoritma u hardversku strukturu.

Sl. 4.10 Blok dijagram koji kombinuje kontroler i stazu podataka.

Faza razrade ima za cilj da polazni problem, prethodno precizno opisan ASM dijagramom, podeli na dva razdvojena ali povezana aktora: upravljačku jedinicu i staza podataka (Sl. 4.10). Staza podataka sadrži: (a) hardverske registre neophodne za čuvanje vrednosti promenljivih koje se javljaju u naredbama registarskog prenosa; i (b) kombinacionu logiku neophodnu za obavljanje izračunavanja specificiranih naredbama registarskog prenosa. Na primer, aku u ASM dijagramu postoji naredba A <- B + C, tada u stazi podatak postoje tri registra za smeštanje vrednosti promenljivih A, B i C i sabirač. Iako sadrži sve što je neophodno da bi se izvršila izračunavanja i memorisali među-rezultati, staza podataka nije u stanju da samostalno sprovodi sekvencu izračunavanja na način koji je predviđen algoritmom. To je razlog postojanja upravljačke jedinice, čiji je zadatak da u svakom taktnom ciklusu ¨naloži¨ stazi podataka šta da uradi. Drugim rečima, u upravljačkoj jedinici ugrađeno je ponašanje mašine, dok se resursi neophodni za obavljanje svih potrebnih izračunavanja i memorisanje podataka nalaze u stazi podataka. Upravljačka jedinica umesto naredbi registarskog prenosa izdaje komande stazi podataka (tj. postavlja upravljačke signale). Staza podataka prima komande, obavlja aktivnosti koje su naložene komandom i kao odgovor generiše status. Upravljačka jedinica ispituje statusne signale koje dobija od staze podataka i na bazi njihove vrednosti i vrednosti statusnih ulaza, donosi odluke koje određuju dalji tok rada mašine.

Page 153: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

ASM Dijagrami

153

Uobičajeno je da se i u ovoj fazi projektovanja koristi ASM dijagram, ali samo za opis ponašanja upravljačke jedinice, dok se staza podataka predstavlja u vidi hardverskog strukturnog dijagrama (šematski prikaz). ASM dijagram pridružen upravljačkoj jedinici ne sadrži naredbe registarskog prenosa i relacije (jer su registri prebačeni u stazu podataka), ali zato sadrži detaljan opis aktivnosti upravljačke jedinice, u vidu postavljanja upravljačkih signala i ispitivanja statusa, koje su neophodne da bi se u stazi podatak obavila izračunavanja i registarski prenosi i to u redosledu i na način koji je predviđen polaznim ASM dijagramom. Mada je nakon obavljene razrade, struktura mašine složenija, a opis ponašanja sadrži više detalja, ponašanje mašine, gledano sa strane spoljnjeg sveta ostaje identično sa polaznom specifikacijom.

4.5.3 Realizacija

Završna faza projektovanja bavi se realizacijom hardverske strukture upravljačke jedinice. Transformacija ASM dijagrama, koji opisuje rad upravljačke jedinice, u hardversku strukturu predstavlja direktan postupak, koji se može obaviti automatski uz pomoć odgovarajućih softverskih alata za sintezu digitalnog hardvera. Tipično, ASM dijagram najpre se prevodi u tabelu prelaza, a zatim se primenjuje neka od raspoloživih tehnika za sintezu konačnih automata. Na primer, tabela prelaza se može upisati u ROM. U tom slučaju, za realizaciju upravljačke jedinice potreban je još samo jedan registar koji će memorisati tekuće stanje upravljačke jedinice.

4.5.4 Automatsko projektovanje

Danas, postiji veći broj softverskih alata za sintez digitalnog hardvera koji automatizuju najveći deo završnih faza projektovanja. Prilikom korišćenja alata za sintezu, kreativni deo posla projektanta obično se završava okončanjem opisa ponašanja. Često, projektanti preskaču čak i fazu razrade i prepuštaju alatu za sintezu da na osnovu opisa ponašanja automatski kreira netlistu gejtova potrebnih za fabrikaciju integrisanog kola. Ipak, važno je da projektant dobro razume način i postupke koji se primenjuju u kasnijim fazama projektovanja, kako bi bio u stanju da kreira efikasan i korektan projekat. U narednom odeljku dati su primeri koji ilustruju proces projektovanja u sve tri faze.

4.6 Primer opisa ponašanja

U cilju ilustracije primene ASM dijagrama, razmotrićemo primer hardverske realizacije delitelja neoznačenih celih brojeva. Mada, za ovu namenu postoji veći broj efikasnih i brzih algoritama, u ovom primeru biće korišćen trivijalni algoritam deljenja, koji se zasniva na uzastopnom oduzimanju delioca od deljenika. Rad algoritma prikazan je u vidu sledećeg programskog koda (u notaciji programskog jezika C):

r1 = x; r2 = 0; while (r1 >= y) { r1 = r1 – y; r2 = r2 + 1; }

Lako se uočava da nakon izlaska iz petlje, promenljiva r2 uzima vrednost x/y. Očigledno, radi se o sporom algoritmu, s obzirom da se petlja mora izvršiti x/y puta. Uočimo da će algoritam biti korektan i u slučaju da se zameni redosled naredbi unutar while petlje:

r1 = x; r2 = 0; while (r1 >= y) { r2 = r2 + 1; r1 = r1 – y; }

4.6.1 Interfejs

Pre nego što algoritam deljenja transformišemo u ASM dijagram, neophodno je razmotriti na koji način će hardver (mašina za deljenje) komunicirati sa aktorima (tj. spoljnim svetom). U konkretnom slučaju, pretpostavićemo da je aktor čovek (korisnik). Korisnik snabdeva mašinu za deljenje vrednostima x i y, a zatim čeka da mašina završi rad i generiše količnik x/y. Za razliku od projektanata digitalnog hardvera, programeri imaju na raspolaganju standardne, sofisticirane korisničke interfejse (tastatura, miš, monitor), koji olakšavaju korisnicima da interaguju sa softverom. Korisnički interfejski ovog tipa rešavaju dva bazična problema koji se uvek javljaju kada dva aktora pokušavaju da komuniciraju: (a) koji podaci se razmenjuju u toj komunikaciji i (b) kada obaviti prenos podataka. Ovi problemi se javljaju zato što aktori rade nezavisno i u paraleli jedan u odnosu na drugog. Kod projektovanja hardvera, javljaju se isti problemi, ali, sada odgovornost je na projektantu ASM dijagrama da ih reši.

Jednostavan intefejs, koga ćemo koristiti u konkretnom primeru, podrazumeva da ¨prijateljski¨ korisnik pritiskom na taster generiše signal TS koga ASM koristi kao signal za početak rada. Takođe, pretpostavićemo

Page 154: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

154

da pritisak na taster daje TS=1 u trajanju od tačno jednog taktnog perioda. (Treba napomenuti da je projektovanje ovakvog tastera, problem za sebe, koji može poslužiti kao još jedan primer korišćenja ASM dijagrama). Pretpostavićemo, takođe, da mašina za deljenje generiše signal SPREMAN, koji, kada je 1, ukazuje da je mašina spremna za radi i da čeka na pritisak tastera. SPREMAN=0, znači da je mašina zauzeta izračunavanjem količnika. Po završenom izračunavanju, mašina postavlja količnik na izlaz i aktivira signal SPREMAN. Dalje, pretpostavićemo da je korisnik u obavezi da pre sledećeg pritiska na taster čeka barem dva taktna ciklusa nakon što je mašina završila prethodno izračunavanje. Pre pritiska na taster, korisnik, uz pomoć preklopnika, postavlja deljenik i delilac na magistralama x i y. Korisnik ne sme da menja x i y za vreme dok mašina izračunava količnik.

Kao što se može zaključiti, specifikacija interfejsa uključuje specifikaciju ulaza i izlaza, proširenu pravilima za korišćenje mašine od strane korisnika. U suštini, interfejs predstavlja neku vrstu ugovora između dva aktora, koga se moraju pridržavati obe strane kako bi krajnji rezultat njihove interakcije bio korektan. ¨Prijateljski¨ korisnik je onaj koji se u radu sa mašinom pridržava svih navedenih ograničenja.

PASIVNOSPREMAN

TS 10

Stanja i odluke koje realizuju izracunavanje kolicnika. (ova stanja ne

postavljaju signal SPREMAN

MASINA ZA DELJENJE

TS

x

SPREMAN

x/y

y

(a) (b) Sl. 4.11 (a) ASM dijagram korisničkog interfejsa; (b) blok dijagram mašine za deljenje.

Globalni oblik ASM dijagrama, koji opisuje ponašanje korisničkog interfejsa, i blok dijagram mašine za deljenje prikazani su na Sl. 4.11. U nastavku projektovanja, ¨oblak¨ u ASM dijagramu biće zamenjen pravougonicima i rombovima, uz pomoć kojih će biti opisan rad algoritma za deljenje. Međutim, ni u jednom od pravougaonika (stanja) koja će zameniti ¨oblak¨ neće postojati naredba koja će postavljati signal SPREMAN. To znači da u prvom narednom taktnom periodu nakon što korisnik pritisne taster, signal SPREMAN postaje 0 i zadržava ovu vrednost za sve vreme izračunavanja količnika. Kada je količnik izračunat i ASM se vrati u stanje PASIVNO, signal SPREMAN ponovo uzima vrednost 1.

U narednim odeljcima razmotićemo više različitih relizacija algoritma deljenja koji je za sada sakriven u ¨oblaku¨ ASM dijagrama sa Sl. 4.11. Iskusan projektant, obično, nema potrebu za ispitivanjem tolikog broja alternativa kako bi došao do konačnog rešenja. Međutim, alternativna rešenja koja će biti prezentovana u narednim odeljcima, istaćiće neke bitne karakteristike ASM dijagrama koje prave jasnu razliku u odnosu na konvencionalne softverske dijagrame toka. Tokom diskusije, videćemo da pojedini ASM dijagrami koji gledano očima programera izgledaju korektno, ustvari to nisu, i obrnuto.

4.6.2 ASM sa ugrađenim softverskim zavisnostima

U ovom odeljku biće opisano kako se softverski program može prevesti u ASM dijagram. Osnovna pretpostavka kod softverskih programa jeste da se programske naredbe izvršavaju jedna za drugom, strogo sekvencijalno, tako što izvršenje sledeće naredbe počinje u trenutku kada se tekuća završi. Sa druge strane, ASM dijagrami ne nameću strogu sekvencijalnost u izvršavanju algoritamskih operacija, s obzirom na pretpostavku da se sve operacije navedene u istom pravougaoniku izvršavaju u paraleli. Iz tog razloga, direktno prevođenje softverskog programa u ASM dijagram, naradba po naredba, nije moguće. Da bi rezultujući ASM bio korektan, neophodno je prilikom prevođenja, u ASM dijagram uvesti dodatna ograničenja kako redosled izvršenja softverskih naredbi ne bi bio narušen. To se postiže primenom sledećih pravila:

1. Svaka naredba dodeljivanja softverskog programa se prevodi u naredbu registarskog prenosa koja se smešta u zaseban pravougaonik ASM dijagrama iza koga ne sledi romb.

Page 155: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

ASM Dijagrami

155

2. Svaka if ili while naredba softverskog programa se transformiše u prazan pravougaonik nakon koga sledi romb sa upisanom relacijom iz softverske naredbe.

Primenom ovih pravila, softverski programi dati na početku odeljka 4.6, koji opisuju algoritam deljenja, lako se prevode u ASM dijagrame koji su prikazani na Sl. 4.12 i Sl. 4.13.

Sl. 4.12 ASM dijagram sa ugrađenim softverskim zavisnostima (varijanta 1).

Sl. 4.13 ASM dijagram sa ugrađenim softverskim zavisnostima (varijanta 2).

Jedina razlika između ASM dijagrama prikazanih na Sl. 4.12 i Sl. 4.13 je u redosledu stanja IZRAČUNAVANJE_1 i IZRAČUNAVANJE_2 u petlji koja oduzima delilac od deljenika i računa količnik. Sa stanovišta algoritma deljenja, redosled ove dve operacije je nebitan, tako da su oba ASM dijagrama korektna.

Pregledom dva ASM dijagrama može se zapaziti da iza stanja PASIVNO sledi romb koji ispituje eksterni status TS, što, na prvi pogled, nije u skladu sa prvim pravilom prevođenja softverskog programa u ASM dijagram. Međutim, testiranje signal TS u stanju PASIVNO deo je specifikacije korisničkog interfejsa i ne potiče iz softverskog program, i time ne narušava softverske zavisnosti između naredbi registarskog prenosa.

Razmotrimo, sada, sa više detalja rad ASM dijagrama sa Sl. 4.12. Vrednost x se upisuje u registar r1 u stanju PASIVNO. (S obzirom na uvedenu pretpostavku da korisnik, pri SPREMAN=1, čeka barem dva taktna ciklusa

Page 156: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

156

pre nego što pritisne taster, za izvođenje operacije upisa vrednosti x u registar r1, moglo je biti uvedeno posebno stanje.) Ako je TS=1, ASM prelazi u stanje INIT, gde će u registar r2 biti upisana inicijalna vrednost količnika, tj. 0. U suprotnom, ako je TS=0, stanje PASIVNO se ponavlja. Kako se u stanju PASIVNO registar r2 ne menja, a pri tome, tipično, r2 sadrži rezultat poslednjeg deljenja, ovako koncipiran interfejs, pruža korisniku onoliko vremena koliko mu je potrebno da očita rezultat. Uočimo, da korisnički interfejs, a ne algoritam deljenja, zahteva da r2 bude inicijalizovan nakon pritiska na taster. Naime, sa stanovišta algoritma deljenja, inicijalizacija registra r2 u stanju PASIVNO bila bi korektna, a pri tome bi i ukupan broj stanja u ASM dijagramu bio manji za jedan. Međutim, kod takvog rešenja, rezultat deljenja bio bi dostupan za očitavanje sa izlaza registra r2 samo u trajanju od jednog taktnog ciklusa.

Deo ASM dijagrama koji izračunava količnik je petlja koju čine stanja TEST, IZRAČUNAVANJE_1 i IZRAČUNAVANJE_2. U stanju TEST (tj. u rombu koji je pridružen ovom stanju) ispituje se da li je r1 veće od y, a to je isto ono ispitivanje koje postoji u while naredbi softverskog programa. Stanja IZRAČUNAVANJE_1 i IZRAČUNAVANJE_2, u razdvojenim taktnim ciklusima, realizuju, u vidu naredbi registarskog prenosa, naredbe dodeljivanja koje čine telo while petlje.

Obe varijante ASM dijagrama, ispravno rade i u slučajevima kada je x < y. Na primer, sledeća tabela pokazuje rad ASM-a kada je x=5 i y=7:

Tekuće stanje PASIVNO r1= ? r2= ? TS=0 SPREMAN=1 PASIVNO r1= 5 r2= ? TS=1 SPREMAN=1

INIT r1= 5 r2= ? TS=0 SPREMAN=0 TEST r1= 5 r2= 0 TS=0 SPREMAN=0

PASIVNO r1= 5 r2= 0 TS=0 SPREMAN=1

Kao što se može uočiti, već kod prvog testiranja, ASM detektuje kraj izračunavanja i vraća se u stanje PASIVNO sa nulom u registru r2 (što, u ovom slučaju, predstavalja korektan količnik). U slučajevima kada je x ≥ y, ASM ulazi u petlju i ponavlja je sve dok preostala vrednost deljenika u registru r1 ne postane manja od delioca. Sledeća tabela prikazuje rad ASM-a za slučaj x=14 i y=7:

Tekuće stanje

PASIVNO r1= ? r2= ? TS=0 SPREMAN=1 PASIVNO r1= 14 r2= ? TS=1 SPREMAN=1

INIT r1= 14 r2= ? TS=0 SPREMAN=0 TEST r1= 14 r2= 0 TS=0 SPREMAN=0

IZRAČUNAVANJE_1 r1= 14 r2= 0 TS=0 SPREMAN=0 IZRAČUNAVANJE_2 r1= 7 r2= 0 TS=0 SPREMAN=0

TEST r1= 7 r2= 1 TS=0 SPREMAN=0 IZRAČUNAVANJE_1 r1= 7 r2= 1 TS=0 SPREMAN=0 IZRAČUNAVANJE_2 r1= 0 r2= 1 TS=0 SPREMAN=0

TEST r1= 0 r2= 2 TS=0 SPREMAN=0 PASIVNO r1= 0 r2= 2 TS=0 SPREMAN=1 PASIVNO r1= ? r2= 2 TS=0 SPREMAN=1

Primenom ASM dijagrama sa Sl. 4.12, ukupno vreme potrebno za izračunavanje količnika uključuje dva taktna ciklusa u stanju PASIVNO, jedan taktni ciklus u stanju INIT i vreme potrebno za izvršenje petlje. Broj prolazaka kroz petlju jednak je konačnoj vrednosti količnika (r2). Pošto petlja sadrži 3 stanja, ukupno vreme izračunavanja količnika iznosi: 3+3*količnik.

Razmotrimo rad ASM dijagrama sa Sl. 4.13, kod koga je stanje IZRAČUNAVANJE_2 na početku petlje:

Tekuće stanje PASIVNO r1= ? r2= ? TS=0 SPREMAN=1 PASIVNO r1= 14 r2= ? TS=1 SPREMAN=1

INIT r1= 14 r2= ? TS=0 SPREMAN=0 TEST r1= 14 r2= 0 TS=0 SPREMAN=0

IZRAČUNAVANJE_2 r1= 14 r2= 0 TS=0 SPREMAN=0 IZRAČUNAVANJE_1 r1= 14 r2= 1 TS=0 SPREMAN=0

TEST r1= 7 r2= 1 TS=0 SPREMAN=0 IZRAČUNAVANJE_2 r1= 7 r2= 1 TS=0 SPREMAN=0 IZRAČUNAVANJE_1 r1= 7 r2= 2 TS=0 SPREMAN=0

TEST r1= 0 r2= 2 TS=0 SPREMAN=0 PASIVNO r1= 0 r2= 2 TS=0 SPREMAN=1 PASIVNO r1= ? r2= 2 TS=0 SPREMAN=1

Page 157: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

ASM Dijagrami

157

Pažljivom analizom gornje tabele, može se uočiti razlog neophodnosti stanja TEST. Stanje TEST, osim ispitivanja relacije r1≥y, koja mu je pridružena, ne sadrži nikakvu dodatnu aktivnost. U stanju IZRAČUNAVANJE_1, koje u ovoj varijanti ASM dijagrama, prethodi stanju TEST, sadržana je naredba registarskog prenosa r1←r1–y. Prenos u registar r1 obaviće se pri ulasku u stanje TEST, gde će, zatim, nova vrednost registra r1, biti iskorišćena u relaciji r1≥y. Izostavljanjem stanja TEST, rad algoritma bio bi poremećen, jer bi ispitivanje r1≥y bilo, praktično, pridruženo stanju IZRAČUNAVANJE_1 i koristilo bi staru vrednost registra r1.

Razmatranje u ovom odeljku pokazuje da je softverski program uvek moguće prevesti u korektan ASM dijagram, primenom jednostavnih pravila. Međutim, često, za isti polazni algoritam postoji više varijanti ASM dijagrama, pri čemu ona koja se dobija direktnim prevođenjem softverskog programa ne mora biti uvek i najbolja. Naime, ASM dijagrami, dobijeni direktnim prevođenjem softverskih programa, mada garantovano ispravni, ne moraju biti i najefikasniji mogući, u smislu broja stanja, broja registara i ukupnog vremena izračunavanja. Glavni uzrok neefikasnosti se krije u činjenici da su u ovako dobijene ASM dijagrame prenesene zavisnosti iz softverskog programa, koje forsirajući strogo sekvencijalan redosled izvršenja naredbi registarskog prenosa, onemogućavaju ispoljavanje paralelizma u radu različitih delova digitalne mašine. Zato, ovako dobijene ASM treba koristiti kao polaznu osnovu za detaljniju analizu koja bi imala za cilj pronalaženje optimalne varijante ASM dijagrama, što će biti tema narednih odeljaka. Napomenimo, da postoje formalne tehnike za prevođenje softverskih programa u ASM dijagrame, koje osim preslikavanja funkcionalnosti softverskog programa u ASM dijagram obavljaju i izvesne optimizacije na nivou ASM dijagrama, sa ciljem da se manipulacijom raspoloživim paralelizmom minimizuje vreme izvršenja ASM dijagrama i⁄ili minimizuju hardverski resursi neophodni za realizaciju ASM dijagrama. Ove tehnike biće razmatrane u petom poglavlju.

4.6.3 Eliminacija stanja TEST

Prazan pravougaonik u stanju TEST uveden je samo iz razloga mehaničkog (direktnog) prevođenja softvera u ASM. U mnogim slučajevima, ispitivanje, kao što je ono koje je pridruženu stanju TEST može biti spojeno sa nekim drugim stanjem, a da to ne nariši korektnost algoritma. Na taj način, eliminiše se jedno stanje, što ubrzava rad mašine. Podsetimo se da romb koji sledi nakon pravougaonika koji nije prazan, znači da se ispitivanje u rombu i izračunavanja u pravougaoniku obavljaju u paraleli. Iz tog razloga, nije korektno spojiti ispitivanje sa stanjem u kome se obavlja izračunavanje čiji se rezultat koristi u ispitivanju. Razmotrimo modifikovanu verziju ASM dijagrama sa Sl. 4.13, kod koje je stanje TEST, prosto, obrisano:

Sl. 4.14 Neispravna verzija mašine za deljenje sa četiri stanja.

Mada, ASM dijagram sa Sl. 4.14 ispravno radi za x<y, greška u izračunavanju količnika se javlja pri x≥y. Kao ilustraciju pogrešnog rada, razmotrimo rad ovog ASM dijagrama za x=14 i y=7, pod pretpostavkom da je registar r1 12-bitni:

Page 158: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

158

Tekuće stanje PASIVNO r1= ? r2= ? TS=0 SPREMAN=1 PASIVNO r1= 14 r2= ? TS=1 SPREMAN=1

INIT r1= 14 r2= ? TS=0 SPREMAN=0 IZRAČUNAVANJE_2 r1= 14 r2= 0 TS=0 SPREMAN=0 IZRAČUNAVANJE_1 r1= 14 r2= 1 TS=0 SPREMAN=0 IZRAČUNAVANJE_2 r1= 7 r2= 1 TS=0 SPREMAN=0 IZRAČUNAVANJE_1 r1= 7 r2= 2 TS=0 SPREMAN=0 IZRAČUNAVANJE_2 r1= 0 r2= 2 TS=0 SPREMAN=0 IZRAČUNAVANJE_1 r1= 0 r2= 3 TS=0 SPREMAN=0

PASIVNO r1= 4089 r2= 3 TS=0 SPREMAN=1 PASIVNO r1= ? r2= 3 TS=0 SPREMAN=1

Uočimo da se relacija r1≥y javlja u dva različita stanja: PASIVNO i IZRAČUNAVANJE_1. Izračunavanje obuhvaćeno stanjem PASIVNO uključuje jedino registar r2, što nema uticaja na ispitivanje r1≥y (tj. 14 ≥ 7). Problem postoji u stanju IZRAČUNAVANJE_1, jer izračunavanje obuhvaćeno ovim stanjem uključuje registar r1, a odlučivanje koje sledi zasnovano je upravo na vrednosti registra r1. Prilikom drugog prolaska kroz stanje IZRAČUNAVANJE_1 (vrsta u tabeli prikazana masnim slovima), r1 još uvek sadrži vrednost 7. Naredba registarskog prenosa r1←r1 – y nalaže promenu vrednosti u r1 na 0, ali to će se desiti tek prilikom ulaska u sledeće stanje. S obzirom da ispitivanje r1≥y koristi tekuću vrednost registra r1 (tj. 7), petlja će se ponoviti još jednom, što daje pogrešan rezultat (r2=3). Vrednost 4089, koju dobija registar r1 prilikom trećeg prolaska kroz petlju, posledica je podkoračenja prilikom izvođenja operacije r1 – y (4089+7 = 212).

Mada je odstranjivanje stanja TEST iz ASM dijagrama sa Sl. 4.13 pogrešno, postavlja se pitanje šta se dešava ako se to isto stanje odstrani iz ASM dijagrama sa Sl. 4.12, gde je stanje IZRAČUNAVANJE_1 na početku petlje (Sl. 4.15).

PASIVNO r1 <- xSPREMAN

TS10

r2 <- 0

r1 <- r1 - y

INIT

IZRACUNAVANJE_1

r2 <- r2 + 1

IZRACUNAVANJE_2

r1 >= y 1

0

Sl. 4.15 Ispravna varijanta mašine za deljenje sa četiri stanja.

Kad ASM dijagram sa Sl. 4.15, ispitivanje r1≥y se javlja u dva različita stanja PASIVNO i IZRAČUAVANJE_2. Razlika u odnosu na prethodno analizirani ASM je u tome što sada izračunavanje obuhvaćeno stanjem IZRAČUAVANJE_2, r2 ← r2 + 1, koje prethodi ispitivanju uslova r1≥y, ne utiče na rezultat ispitivanje. S toga, ASM dijagram sa Sl. 4.15 je ispravan. Za ilustraciju, razmotrimo rad ove ASM za slučaj x=14 i y=7:

Tekuće stanje PASIVNO r1= ? r2= ? TS=0 SPREMAN=1 PASIVNO r1= 14 r2= ? TS=1 SPREMAN=1

INIT r1= 14 r2= ? TS=0 SPREMAN=0 IZRAČUNAVANJE_1 r1= 14 r2= 0 TS=0 SPREMAN=0 IZRAČUNAVANJE_2 r1= 7 r2= 0 TS=0 SPREMAN=0 IZRAČUNAVANJE_1 r1= 7 r2= 1 TS=0 SPREMAN=0 IZRAČUNAVANJE_2 r1= 0 r2= 1 TS=0 SPREMAN=0

PASIVNO r1= 0 r2= 2 TS=0 SPREMAN=1 PASIVNO r1= ? r2= 2 TS=0 SPREMAN=1

Page 159: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

ASM Dijagrami

159

Prilikom drugog prolaska kroz stanje IZRAČUNAVANJE_1, inicira se operacija registarskog prenosa r1 ← r1 – y, koja će promeniti vrednost registra r1 sa 7 na 0. Naravno, to se dešava na početku taktnog ciklusa u kome ASM po drugi put ulazi u stanje IZRAČUNAVANJE_2 (vrsta u tabeli prikazana masnim slovima). Ispitivanje, koje je sada deo stanja IZRAČUNAVANJE_2, zasnovano je na tekućoj vrednosti registra r1 (0). To znači da će petlja imati ispravan broj ponavljanja i da će konačni rezultat biti ispravan. S obzirom da petlja sada obuhvata dva stanja, a ne tri kao što je to bio slučaj kod ASM dijagrama iz odeljka 4.6.2, ukupno vreme izračunavanja količnika je smanjeno i iznosi: 3+2*količnik. U suštini, ubrzanje koje smo dobili, posledica je preklapanja izvršenja dve nezavisne operacije, naredbe registarskog prenosa r2 ← r2 + 1 i ispitivanja uslova r1≥y.

4.6.4 Eliminacija stanja INIT

U analiziranim varijantama ASM dijagrama mašine za deljenje, stanje INIT se koristi za inicijalni upis vrednosti 0 u registar r2. U ovom odeljku, razmotrićemo mogućnost eliminacije stanja INIT, pripajanjem operacije r2←0 stanju PASIVNO. Prosto prebacivanje izračuvanja iz stanja INIT u stanje PASIVNO daje ASM dijagram sa Sl. 4.16:

PASIVNO r1 <- xr2 <- 0

SPREMAN

TS10

r1 >= y 1

0

r1 <- r1 - y

IZRACUNAVANJE_1

r2 <- r2 + 1

IZRACUNAVANJE_2

Sl. 4.16 Pogrešna varijanta ASM dijagrama (neispravan korički interfejs).

Broj naredbi registarskog prenosa koje se, obuhvaćene istim stanjem, izvršavaju u paraleli, može biti proizvoljan, sve dok su registari sa leve strane ovih naredbi jedinstveni u okviru tog stanja. U konkretnom primeru, stanje PASIVNO sadrži dve naredbe registarskog prenosa, koje iniciraju upise u registre r1 i r2; sam upis biće obavljen na početku sledećeg taktnog perioda, tj. pri ulasku u stanje IZRAČUNAVANJE_1. S obzirom na pretpostavku da pri SPREMAN=1, korisnik čeka barem dva taktna ciklusa pre nego što pritisne taster, r1 i r2 će biti ispravno inicijalizovani pre ulaska u petlju. ASM će korektno izračunati količnik i napustiti petlju posle odgovarajućeg broja prolazaka. Naredna tabela pokazuje tok izračunavanja koje se obavlja u ASM sa Sl. 4.16, za x=14 i y=7:

Tekuće stanje PASIVNO r1= ? r2= ? TS=0 SPREMAN=1 PASIVNO r1= 14 r2= 0 TS=1 SPREMAN=1

IZRAČUNAVANJE_1 r1= 14 r2= 0 TS=0 SPREMAN=0 IZRAČUNAVANJE_2 r1= 7 r2= 0 TS=0 SPREMAN=0 IZRAČUNAVANJE_1 r1= 7 r2= 1 TS=0 SPREMAN=0 IZRAČUNAVANJE_2 r1= 0 r2= 1 TS=0 SPREMAN=0

PASIVNO r1= 0 r2= 2 TS=0 SPREMAN=1 PASIVNO r1= ? r2= 0 TS=0 SPREMAN=1

Međutim, kod ove ASM javlja se novi problem, koji nije postojao kod prethodnih varijanti: količnik (=2) se zadržava u registru r2 samo za vreme jednog taktnog ciklusa. Razlog za ovakvo ponašanje je taj što se ASM odmah nakon završenog izračunavanja vraća u stanje PASIVNO, gde se u r2 upisuje 0. Sa matematičke tačke gledišta, ASM je ispravna, ali sa tačke gledišta korisničkog interfejsa, ovakvo ponašanje je neprihvatljivo.

4.6.5 Pamćenje količnika

Problem u radu korisničkog interfejsa koji se javlja u ASM iz odeljka 4.6.4, može se prevazići uvođenjem još jednog registra, r3, koji se koristi za pamćenje količnika:

Page 160: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

160

Sl. 4.17 Pamćenje količnika u r3.

ASM sa Sl. 4.17 korektno radi za x≥y (konačni rezultat sada je smešten u r3, a ne u r2). Na primer, za x=14 i y=7, sled dešavanja u ASM je sledeći:

Tekuće stanje PASIVNO r1= ? r2= ? r3= ? TS=0 SPREMAN=1 PASIVNO r1= 14 r2= 0 r3= ? TS=1 SPREMAN=1

IZRAČUNAVANJE_1 r1= 14 r2= 0 r3= ? TS=0 SPREMAN=0 IZRAČUNAVANJE_2 r1= 7 r2= 0 r3= ? TS=0 SPREMAN=0 IZRAČUNAVANJE_3 r1= 7 r2= 1 r3= ? TS=0 SPREMAN=0 IZRAČUNAVANJE_1 r1= 7 r2= 1 r3= 1 TS=0 SPREMAN=0 IZRAČUNAVANJE_2 r1= 0 r2= 1 r3= 1 TS=0 SPREMAN=0 IZRAČUNAVANJE_3 r1= 0 r2= 2 r3= 1 TS=0 SPREMAN=0

PASIVNO r1= 0 r2= 2 r3= 2 TS=0 SPREMAN=1 PASIVNO r1= ? r2= 0 r3= 2 TS=0 SPREMAN=1

Nažalost, u gornjoj ASM postoji jedna suptilna greška: u slučajevima kada rezultat treba da bude nula (x<y), r3 ostaje nepromenjen, umesto da bude obrisan. To se događa zato što se upis u r3 obavlja samo unutar petlje. Međutim, u slučajevima kada je x<y, u petlju se ne ulazi, a r3 zadržava zatečenu vrednost. Problem se može rešiti ako se uvede još jedno grananje, neposredno pre ulaska u petlju, koje će ispitati uslov x<y (što se može postići ispitivanjem r1≥y), kao što je prikazano na Sl. 4.18.

Sl. 4.18 Rešenje za situaciju kada je količnik jednak nuli.

Page 161: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

ASM Dijagrami

161

Uvođenje dodatnog stanja, IZRAČUNAVANJE_3, ima za posledicu produženje vremena izračunavanja, koje sada iznosi: 2+3*količnik. (Ponekada, projektant mora da razmotri sporije rešenje, da bi nakon toga, eventualno, stigao do bržeg).

4.6.6 Varijacije unutar petlje

U ovom odeljku, polazeći od ASM iz odeljka 4.6.5 (Sl. 4.18), isprobaćemo različite varijante realizacije petlje, u smislu promene redosleda operacija i uvođenja paralelizma u izvršenju operacija. Konačni cilj je naći rešenje koje će biti brže od polaznog.

Zamena redosleda stanja IZRAČUNAVANJE_2 i IZRAČUNAVANJE_3, daje pogrešno rešenje:

Sl. 4.19 Neispravno preuređenje stanja.

Sledeća tabela pokazuje na koji način dolazi do greške u ASM sa Sl. 4.19, za slučaj x=14 i y=7:

Tekuće stanje PASIVNO r1= ? r2= ? r3= ? TS=0 SPREMAN=1 PASIVNO r1= 14 r2= 0 r3= ? TS=1 SPREMAN=1

IZRAČUNAVANJE_1 r1= 14 r2= 0 r3= ? TS=0 SPREMAN=0 IZRAČUNAVANJE_3 r1= 7 r2= 0 r3= ? TS=0 SPREMAN=0 IZRAČUNAVANJE_2 r1= 7 r2= 0 r3= 0 TS=0 SPREMAN=0 IZRAČUNAVANJE_1 r1= 7 r2= 1 r3= 0 TS=0 SPREMAN=0 IZRAČUNAVANJE_3 r1= 0 r2= 1 r3= 0 TS=0 SPREMAN=0 IZRAČUNAVANJE_2 r1= 0 r2= 1 r3= 1 TS=0 SPREMAN=0

PASIVNO r1= 0 r2= 2 r3= 1 TS=0 SPREMAN=1 PASIVNO r1= ? r2= 0 r3= 1 TS=0 SPREMAN=1

Očigledno, upis u r3 se obavlja prerano i konačni rezultat je za jedan manji od ispravnog.

Još jedna varijanta izvođenja petlje, koja je, nažalost, iz sličnih razloga kao i prethodna, takođe, pogrešna, dobija se spajanjem stanja IZRAČUNAVANJE_2 i IZRAČUNAVANJE_3 u jedinstveno stanje IZRAČUNAVANJE_23:

Page 162: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

162

Sl. 4.20 Neuspešan pokušaj uvođenja paralelizma.

Sledeća tabela pokazuje kako dolazi do greške, za slučaj x=14 i y=7:

Tekuće stanje PASIVNO r1= ? r2= ? r3= ? TS=0 SPREMAN=1 PASIVNO r1= 14 r2= 0 r3= ? TS=1 SPREMAN=1

IZRAČUNAVANJE_1 r1= 14 r2= 0 r3= ? TS=0 SPREMAN=0 IZRAČUNAVANJE_23 r1= 7 r2= 0 r3= ? TS=0 SPREMAN=0 IZRAČUNAVANJE_1 r1= 7 r2= 1 r3= 0 TS=0 SPREMAN=0

IZRAČUNAVANJE_23 r1= 0 r2= 1 r3= 0 TS=0 SPREMAN=0 PASIVNO r1= 0 r2= 2 r3= 1 TS=0 SPREMAN=1 PASIVNO r1= ? r2= 0 r3= 1 TS=0 SPREMAN=1

Mada je unutar pravougaonika IZRAČUNAVANJE_23, operacija upisa u registar r2 navedena ispred operacije upisa u registar r3, ove dve operacije izvršavaju se u paraleli (istovremeno). Značenje stanja u ASM ne zavisi od redosleda naredbi u pravougaoniku koji odgovara tom stanju. S obzirom da između operacija r2 ← r2 + 1 i r3 ← r2 postoji zavisnost, ASM sa Sl. 4.20 nije ekvivalentan korektnom ASM dijagramu sa Sl. 4.18, kod koga su ove dve operacije razdvojene u posebna stanja. Nasuprot tome, ponašanje ASM sa Sl. 4.20, ekvivalentno je ponašanju pogrešnog ASM dijagrama sa Sl. 4.19. Nakon drugog ulaska u stanje IZRAČUNAVANJE_23 (vrsta u tabeli prikazana masnim slovima), r2 se uvećava za jedan (sa 1 na 2), ali se zato u r3 prenosi stara vrednost r2 (=1), što ne odgovara onome šta očekujemo.

Varijanta petlje, koja daje ne samo korektno, već i brže rešenje je ona kod koje su sve tri operacije, koje čine telo petlje, spojene u jedinstveno stanje:

PASIVNO r1 <- xr2 <- 0

SPREMAN

TS10

r1 >= y 1

0

r1 <- r1 - yr2 <- r2 + 1

r3 <- r2

IZRACUNAVANJE

r1 >= y

r3 <- 0

NULA3

10

Sl. 4.21 Ispravna paralelizacija.

Page 163: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

ASM Dijagrami

163

ASM sa Sl. 4.21 je korektan, što ilustruje sledeća tabela (x=14 i y=7):

Tekuće stanje PASIVNO r1= ? r2= ? r3= ? TS=0 SPREMAN=1 PASIVNO r1= 14 r2= 0 r3= ? TS=1 SPREMAN=1

IZRAČUNAVANJE r1= 14 r2= 0 r3= ? TS=0 SPREMAN=0 IZRAČUNAVANJE r1= 7 r2= 1 r3= 0 TS=0 SPREMAN=0 IZRAČUNAVANJE r1= 0 r2= 2 r3= 1 TS=0 SPREMAN=0

PASIVNO r1= 4089 r2= 3 r3= 2 TS=0 SPREMAN=1 PASIVNO r1= ? r2= 0 r3= 2 TS=0 SPREMAN=1

Ispitivanje uslova r1≥y pripada stanju IZRAČUNAVANJE (kao što pripada i stanju PASIVNO). Uočimo da se r1 menja u ovim stanjima. Takođe, između operacija obuhvaćenih stanjem IZRAČUNAVANJE postoji, ranije pomenuta, međuzavisnost. Međutim, i pored svega toga, ASM sa Sl. 4.21 predstavlja ispravno rešenje, a razlog za to je upravo činjenica da se sve pomenute operacije izvršavaju u paraleli. U tom smislu, rešenje sa Sl. 4.21 predstavlja suprotnost u odnosu na koncept softverske sekvencijalnosti, od koga smo pošli u traženju rešenja koje bi bilo optimalno u kontekstu hardverske realizacije mašine za deljenje.

U razmatranoj ASM, registar r3 i dalje se koristi za čuvanje količnika nakon što se mašina po završenom izračunavanju vrati u stanje PASIVNO. Međutim, u ASM sa Sl. 4.21, registar r3 ostvaruje još jednu, čak važniju funkciju. Postojanje registra r3 kompenzuje činjenicu da se stanje IZRAČUNAVANJE izvršava jedanput više u odnosu na odgovarajuću softversku petlju. Čak iako je konačna vrednost u registru r2 za jedan veća od ispravnog rezultata, registar r3, koji se uvek puni starom (prethodnom) vrednošću registra r2, na kraju izračunavanja sadrži ispravan količnik (vrsta iz prethodne tabele prikazana masnim slovima).

Petlja, koja sada sadrži samo jedno stanje, IZRAČUNAVANJE, poseduje još jednu zanimljivu osobinu, koja se retko sreće kod softverskih petlji: petlja se ili ne izvrši ni jedanput ili se izvršava barem dva puta. Razlog za ovakvo ponašanje je u tome što je ispitivanje r1≥y sastavni deo dva različita stanja: PASIVNO i IZRAČUNAVANJE. Za ilustraciju, razmotrimo rad ASM-a sa Sl. 4.21 za slučaj x=7 i y=7:

Tekuće stanje PASIVNO r1= ? r2= ? r3= ? TS=0 SPREMAN=1 PASIVNO r1= 7 r2= 0 r3= ? TS=1 SPREMAN=1

IZRAČUNAVANJE r1= 7 r2= 0 r3= ? TS=0 SPREMAN=0 IZRAČUNAVANJE r1= 0 r2= 1 r3= 0 TS=0 SPREMAN=0

PASIVNO r1= 4089 r2= 2 r3= 1 TS=0 SPREMAN=1 PASIVNO r1= ? r2= 0 r3= 1 TS=0 SPREMAN=1

S obzirom da u stanju PASIVNO važi r1=7, uslov r1≥y je ispunjen i ASM prelazi u stanje IZRAČUNAVANJE. U stanju IZRAČUNAVANJE inicira se upis u r1 (r1←r1-y), ali u toku prvog prolaska kroz ovo stanje, r1 zadržava svoju vrednost iz stanja PASIVNO (=7). To znači da će uslov r1≥y biti ispunjen i pri prvom narednom ispitivanju, što ostavlja ASM u stanju IZRAČUNAVANJE. Promena sadržaja registra r1 sa 7 na 0 desiće se tek pri drugom ulasku u stanje IZRAČUNAVANJE; uslov r1≥y više nije ispunjen i ASM se vraća u stanje PASIVNO.

Kao i prethodne varijante ASM dijagrama, i ASM sa Sl. 4.21, zahvaljujući stanju NULA3, ispravno radi i u slučajevima kada je x<y. Na primer, razmotrimo slučaj x=5, y=7:

Tekuće stanje PASIVNO r1= ? r2= ? r3= ? TS=0 SPREMAN=1 PASIVNO r1= 5 r2= 0 r3= ? TS=1 SPREMAN=1

NULA3 r1= 5 r2= 0 r3= ? TS=0 SPREMAN=0 PASIVNO r1= 5 r2= 0 r3= 0 TS=0 SPREMAN=1 PASIVNO r1= ? r2= 0 r3= 0 TS=0 SPREMAN=1

Vreme rada ASM iznosi 3+količnik taktnih ciklusa. Značajno ubrzanje rada ostvareno je zahvaljujući maksimalnoj paralelizaciji unutrašnje petlje ASM dijagrama.

4.6.7 Eliminacija stanja NULA3

Pažljivom analizom rada ASM-a iz prethodnog odeljka možemo zaključiti da bi se stanje NULA3 moglo eliminisati ako bi se stanje IZRAČUNAVANJE izvršavalo jednom ili više puta, umesto dva ili više puta. Naime, ako bi smo obezbedili da ASM uđe u petlju i za x<y, tada bi naredba registarskog prenosa r3←r2, koja je deo stanja IZRAČUNAVANJE, imala isti efekta kao i naredba r3←0, koja je deo stanja NULA3. (Zato što pri napuštanju stanja PASIVNO, r2 ima vrednost 0). Drugim rečima, treba obezbediti da ASM iz stanja PASIVNO

Page 164: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

164

pređe u stanje IZRAČUNAVANJE, bez obzira na ishod ispitivanja r1≥y, a da nakon toga, nastavi da koristi ovo ispitivanje kako test za kraj petlje. Razdvajanje prvog ulaska u stanje IZRACUNAVANJE i ulaska u isto ovo stanje koje je posledica ponavljanja petlje može se ostvariti na osnovu vrednosti statusnog signala TS, koji je 1 pri prelasku iz stanja PASIVNO u stanje IZRAČUNAVANJE, a 0 za sve vreme dok traje izračunavanje količnika. (Ovo podrazumeva da mašinu koristi ¨prijateljski¨ korisnik, koji se pridržava zahteva da trajanje TS=1 mora biti tačno jedan taktni ciklus.) Na Sl. 4.22 prikazan je ASM dijagram kod koga je ispitivanje uslova za kraj petlje prošireno testiranjem statusnog signala TS:

Sl. 4.22 ASM dijagram mašine za deljenje sa dva stanja. Notacija r1≥y | TS je ekvivalentna notaciji r1≥y OR TS.

Aktiviranje signala TS, koji traje tačno jedan taktni ciklus ima kao jedinu posledicu inicijalni ulazak u petlju. Svako naredno eventualno ponavljanje petlje isključivo zavisi od sadržaja registra r1. S obzirom da se za x≥y petlja izvršava najmanje dva puta, pridruživanje signala TS uslovu r1≥y nema efekta na rad ASM-a za x≥y. Efekat pridruživanja signala TS uslovu r1≥y ispoljava se kada je x<y. Drugim rečima, umesto da se stanje IZRAČUNAVANJE ne izvrši ni jedanput, TS=1 forsira da se ovo stanje izvrši. U ovom slučaju, stanje IZRAČUNAVANJE se izvršava tačno jednom zato što x (tj. r1) nije ≥y.

Na primer, razmotrimo rad ASM-a za slučaj x=5 i y=7:

Tekuće stanje PASIVNO r1= ? r2= ? r3= ? TS=0 SPREMAN=1 PASIVNO r1= 5 r2= 0 r3= ? TS=1 SPREMAN=1

IZRAČUNAVANJE r1= 5 r2= 0 r3= ? TS=0 SPREMAN=0 PASIVNO r1= 4094 r2= 1 r3= 0 TS=0 SPREMAN=1 PASIVNO r1= ? r2= 0 r3= 0 TS=0 SPREMAN=1

Činjenica da se nakon izvršenja stanja IZRAČUNAVANJE sadržaji registara r1 i r2 razlikuju od onih koje su oni imali nakon izvršenja stanja NULA3 u prethodnoj varijanti ASM-a nema značaja, s obzirom da korisnik očekuje konačni rezultat u registru r3.

Vreme rada ASM sa Sl. 4.22 iznosi, kao i kod prethodne ASM, 3+količnik taktnih ciklusa.

ASM sa Sl. 4.22 prikazan je u obliku strukturnog dijagrama, u smislu da programska realizacija ovog ASM dijagrama ne zahteva upotrebu goto naredbe. U suštini, konkretni ASM dijagram sadrži while petlju (testiranje uslova r1≥y | TS) ugneždenu unutar if naredbe (testiranje signala TS). Takođe, uočimo da se u ASM dijagramu sa Sl. 4.22, TS ispituje dva puta u toku istog taktnog ciklusa (stanje PASIVNO). Ova redundantnost u dijagramu je direktna posledica težnje za strukturnom formom ASM dijagram. Dvostruko ispitivanje signala TS možemo lako eliminisati, ali to rezultuje u ASM dijagramu koji nije više strukturnog oblika (Sl. 4.23). Strukturni oblik ASM dijagrama je bitna karakteristika u slučajevima kada se u kasnijim fazama projektovanja, dijagram opisuje pomoću nekog od strukturnih jezika za opis hardvera, kao što su VHDL ili Verilog.

Page 165: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

ASM Dijagrami

165

Sl. 4.23 Ekvivalentan prikaz ASM dijagrama sa Sl. 4.22.

U ASM dijagramu sa Sl. 4.23, radi lakšeg praćenja rada ASM-a, izmenjen je redosled naredbi u stanju IZRAČUNAVANJE. Kao što je ranije napomenuto, promena redosleda naredbi unutar pravougaonika, ne menja njegovo značenje.

4.7 Primer razrade

Proces projektovanja na način ¨odozgo-naniže¨ uključuje tri glavne faze, kao što je to opisano u odeljku 4.5. U odeljku 4.6, kao primer prve faze, razmatrane su različite varijante opisa ponašanja mašine za deljenje. U ovom odeljku biće razmatrana druga faza projektovanja (razrada) mašine za deljenje. Zadatak razrade je podela mašine za deljenje na dva dela: upravljačku jedinicu i stazu podataka.

4.7.1 Prvi primer

Za ilustraciju razrade opisa ponašanja u strukturu sačinjenu od upravljačke jedinice i staze podataka možemo uzeti bilo koji korektan ASM dijagram iz odeljka 4.6. Na primer, usredsredimo se na ASM opisan u odeljku 4.6.7 (Sl. 4.22), koji je ujedno predstavlja i najjednostavniju ASM mašinu za deljenje. Za početak, ignorisaćemo signale TS i SPREMAN, s obzirom da se radi o statusnim ulazima, koji ionako ostaju nepromenjeni u fazi razrade. Cilj faze razrade jeste eliminacija naredbi registarskog prenosa i relacionih izraza.

Uočimo naredbe registarskog prenosa u ASM dijagramu sa Sl. 4.22. U stanju PASIVNO, inicira se upis vrednosti x u registar r1 i, u paraleli, brisanje registra r2. U stanju IZRAČUNAVANJE, inicira se upis u sva tri registra. Naravno, sve inicirane promene registara desiće se na početku sledećeg taktnog ciklusa.

Postoji veliki broj različitih hardverskih struktura koje bi mogle realizovati naredbe registarskog prenosa iz ASM sa Sl. 4.22. Na projektantu je da se odluči koje će hardverske komponente koristiti za ovu namenu. Kriterijumi mogu biti različiti: brzina rada, cena, raspoloživost komponenti, i td. Jedini zahtev je da način na koji su izabrane komponente povezane može obezbediti izvođenje svih naredbi registarskog prenosa uz striktno poštovanje tajminga koje je specificiran polaznim ASM dijagramom. Najlakši (mada ne obavezno uvek i najbolji) način da se ovo postigne jeste izabrati takve registarske komponente koje osim osnovne funkcije memorisanja podataka, omogućavaju i neku dodatnu obradu koja se može iskoristiti za realizaciju celokupne (ili barem jednog dela) naredbe registarskog prenosa. Na primer, u konkretnom slučaju, za realizaciju registra r2 možemo iskoristiti brojač. Brojač, kao digitalna registarska komponenta, osim memorisanja podatka, omogućava brisanje (resetovanje) i inkrementiranje sadržaja, upravo one funkcije koje su potrebne za izvođenje naredbi r2←0 i r2←r2+1, koje se javljaju u stanjima PASIVNO i IZRAČUNAVANJE, a uključuju registar r2. Realizacijom registra r2 uz pomoć brojača bili bi smo u mogućnosti da eliminišemo obe ove naredbe registarskog prenosa i zamenimo ih upravljačkim signalima za resetovanje i inkrementiranje brojača.

Ukoliko projektant za realizaciju registra r2, umesto brojača, odluči da koristi prihvatni registar, on će morati da obezbedi dodatnu kombinacionu logiku kako bi nadomestio nedostatak funkcija resetovanja i inkrementiranja, ugrađenih u brojač. Izbor prihvatnog registra za realizaciju r2 nije pogrešno rešenje, već samo zahteva veće angažovanje projektanta. Da bi smo zadržali jednostavnost primera, usvojićemo da se r2 realizuje uz pomoć brojača.

Sa druge strane, registri r1 i r3, za razliku od brojača, uvek se pune vrednostima koje ne zavise direktno od tekućeg sadržaja tih registara. Iz tog razloga, za realizaciju r1 i r3, razumno je koristiti najjednostavnije registarske komponente, kao što je prihvatni registar, koji osim bazičnih registarskih funkcija upisa i

Page 166: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

166

memorisanja podataka, poseduje još jedino funkciju dozvole upisa. Naravno, biće neophodan dodatni hardver kako bi se obezbedili podaci za upis u ove registre.

Nakon što smo odlučili koje tipove registara ćemo koristiti u stazi podataka, neophodno je razmotriti na koji način će registri biti povezani. Za trenutak, usredsredimo se samo na naredbe registarskog prenosa u stanju IZRAČUNAVANJE. U ovom stanju, r1 se puni razlikom r1-y, r2 se inkrementira, a r3 se puni starom vrednošću registra r2. Sve tri operacije izvršavaju se u paraleli. Za izračunavanje razlike r1-y koristićemo oduzimač. Ovo kolo će uvek računati razliku između r1 i y (nezavisno od toga što se razlika upisuje u r1 samo kada je mašina u stanju IZRAČUNAVANJE).

Punjenje registra r3 starom vrednošću registra r2 lako se ostvaruje, tako što se izlazi brojačkog registra koji realizuje r2 direktno, posredstvom magistrale, povezuju sa ulazima prihvatnog registra koji realizuje r3. Kada bi se r1, r2 i r3 javljali samo u stanju IZRAČUNAVANJE, staza podataka bi izgledala kao na Sl. 4.24.

(-)

r1y

1212

12 ldr1

r2

clrr2 incr2

r3

ldr3

x/y12 12

Sl. 4.24 Staza podataka sa oduzimačem. Napomena: ldr – signal dozvole upisa u registar; clr – signal dozvole resetovanja brojača; inc – signal dozvole inkrementiranja brojača; trougao označava taktni ulaz registra.

Uočimo da u stazi podataka sa Sl. 4.24 nije moguće realizovati operacije registarskog prenosa koje se javljaju u stanju PASIVNO, r2←0 i r1←x. Naime, ne postoji mogućnost da se u r1 upiše x.

Pristupa koji se često koristi kada staza podataka u različitim stanjima treba da obavi različite operacije sastoji se u ugradnji aritmetičko-logičke jedinice (ALU). Za razliku od kombinacionih kola fiksne funkcije (kao što je oduzimač), ALU predstavlja kombinaciono kolo koje može da obavi veći broj različitih aritmetičkih ili logičkih operacija nad dva višebitna operanda. Takođe, prilikom korišćenja ALU obično je potrebno ugraditi jedan ili više multipleksera za izbor podataka koji će kao operandi biti prosleđena do ulaza ALU. U konkretnom primeru, u r1, u različitim stanjima, upisuju se sledeće informacije: (1) razlika r1-y, ili (2) vrednost deljenika x. Ako usvojimo da se informacija za upis u r1 generiše od strane ALU jedinice, takva ALU mora biti sposobna da obavi barem dve različite operacije: izračunavanje razlike i propuštanje, bez ikakve promene, jednog od ulaznih operanada na izlaz. Usvojićemo da se izbor operacije koju će ALU obaviti vrši postavljanjem odgovarajuće binarne kombinacije na upravljačkom, 6-bitnom ulazu aluctr1, ALU jedinice. 6-bitne binarne kombinacije kojima se biraju dve operacije koje su nam potrebne u konkretnom primeru simbolički ćemo imenovati kao: 'ODUZIMANJE i 'PROPUŠTANJE. (Simbol ' označava da dotično ime ukazuje na binarnu kombinaciju). Znači, u jednom slučaju ALU oduzma y od r1, a u drugom propušta ulaznu vrednost x. Da bi se to ostvarilo neophodan je multiplekser tipa ¨2-u-1¨. Izlaz multipleksera se vezuje na drugi ulaz ALU kola; ulaz 0 multipleksera je povezan sa ulazom podataka x, a ulaz 1 sa ulazom y. Kada je upravljački ulaz muxctr1 multipleksera postavljen na 0, multiplekser propušta x, a kada je postavljen na 1, propušta y. Korišćenjem ALU kola i multipleksera, staza podataka dobija oblik kao na Sl. 4.25:

ALU

r1y

1212

12 ldr1

r2

clrr2 incr2

r3

ldr3

x/y12 12

0

112

12x

muxctrl

6aluctrl

Sl. 4.25 Staza podataka sa ALU

Staza podataka, prikazana na Sl. 4.25, iako je u stanju da realizuje sve naredbe registarskog prenosa koje se javljaju u ASM dijagramu iz odeljka 4.6.7, ne pruža mogućnost ispitivanja relacionog izraza r1≥y. Najjednostavniji način za realizaciju relacionog izraza jeste korišćenje namenske kombinacione logike (obično je to komparator), koja izračunava interni statusni signal čija vrednost ukazuje na rezultat poređenja. U

Page 167: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

ASM Dijagrami

167

razrađenoj varijanti ASM dijagrama, koja opisuje ponašanje upravljačke jedinice, relacioni izraz iz polaznog ASM dijagrama zamenjuje se testiranjem ovog internog statusnog signala. U konkretnom primeru, za obavljanje poređenja r1≥y koristićemo komparator čiji su ulazi r1 i y.

Komparator, kao namensko kombinaciono kolo, poseduje tri izlaza: strogo manje (<); jednako (==) i strogo veće (>). Izlaz tipa ¨≥¨ ne postoji, ali se može lako oformiti, s obzirom da predstavlja negaciju izlaza ¨strogo manje¨. Znači, da bi smo realizovali željeno poređenje, iskoristićemo izlaz ¨strogo manje¨ komparatora i invertor. Izlaz invertora biće interni statusni signal r1gey, koji kada je 1 ukazuje da je r1 veće ili jednako y (r1gey – r1 is Grater or Equal then Y).

Konačno, došli smo do strukture staze podataka koja može korektno da realizuje sve naredbe registarskog prenosa i relacione izraze navedene u polaznom ASM dijagramu iz odeljka 4.6.7. Sada, kad su svi detalji staze podataka poznati, prevođenje polaznog ASM dijagrama iz odeljka 4.6.7 u razrađeni ASM dijagram upravljačke jedinice, predstavlja, u suštini, mehanički postupak. Svrha ovog prevođenja je da se umesto naredbi registarskog prenosa koriste upravljački signali (kao što je incr1), a umesto relacionih izraza interni statusni signali (kao što je r1gey). Svaka naredba ← se prevodi u jedan ili više upravljačkih signala (kao što su ldr1, clrr2, incr2 ili ldr3). Na primer, da bi se u stazi podataka sa Sl. 4.25 obavila naredba r2←r2+1 potrebno je aktivirati upravljački signal incr2. Znači, u ASM dijagramu narebu r2←r2+1 treba zameniti signalom incr2. Slično, naredbu r1←r1-y treba zameniti naredbama postavljanja signala muxctrl, aluctrl='ODUZIMANJE i ldr1, i td.

Prelaz sa ASM dijagrama koji opisuje ponašanje celokupne mašine na razrađeni ASM koji opisuje ponašanje upravljačke jedinice, uvek ima u vidu strukturu staze podataka. Mada, obično, postoji veći broj staza podataka, različite strukture, koje mogu realizovati naredbe registarskog prenosa i relacione izraze sadržane u polaznim ASM dijagramom, svaka od varijanti zahtevaće različiti razrađeni ASM, prilagođen strukturi konkretne staze podataka.

Slike Sl. 4.26, Sl. 4.27 i Sl. 4.28 prikazuju, redom: stazu podataka, koju smo razvili u ovom poglavlju, razrađeni ASM dijagram dobijen na osnovu polaznog ASM dijagrama i usvojene staze podataka, i blok dijagram koji pokazuje spregu upravljačke jedinice i staze podataka.

ALU

r1y

1212

12 ldr1

r2

clrr2 incr2

r3

ldr3

x/y12 12

0

112

12x

muxctrl

6aluctrl

cmp

12

r1gey

Sl. 4.26 Konačni oblik staze podataka.

PASIVNO ldr1clrr1aluctrl = 'PROPUSTANJEmuxtrcl = 0SPREMAN

TS10

r1 >= y | TS 1

0ldr1incr2ldr3aluctrl = 'ODUZIMANJEmuxctrl = 1

IZRACUNAVANJE

Sl. 4.27 Razrađena ASM koja odgovara slikama Sl. 4.22 i Sl. 4.26.

Page 168: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

168

UPRAVLJACKAJEDINICA

STAZA PODATAKA

ldr1

clrr2

ldr3

aluctrl

muxctrl

incr2

6

r1gey

MAŠINA ZA DELJENJE

x

TS

y

x/y

SPREMAN

12

12

12

Sl. 4.28 Razrađeni blok dijagram mašine za deljenje.

4.7.2 Drugi primer Pažljivom analizom, možemo zaključiti da staza podataka, razvijena u prethodnom odeljku, može da realizuje bilo koji ASM dijagrama mašine za deljenje iz odeljka 4.6. Međutim, to nije morao biti slučaj; šta više, retko se dešava da jedna staza podataka može poslužiti za realizaciju različitih ASM-a. Ono što izdvaja ASM dijagram sa Sl. 4.22, koji je poslužio kao osnova za razvoj staze podataka iz prethodnog odeljka, od ostalih ASM dijagrama razmatranih u odeljku 4.6, jeste maksimalni paralelizam. Postoji jedno neformalno pravilo koje kaže da staza podataka projektovana za maksimalni paralelizam može realizovati ASM koji zahteva manji nivo paralelizma. Na primer, prva ASM iz odeljka 4.6.2 može biti realizovana korišćenjem staze podataka i sistemskog blok dijagrama iz prethodnog odeljka (slike Sl. 4.26 i Sl. 4.28). U ovom ASM dijagramu, registar r3 se ne koristi. To znači da će izlaz podataka mašine biti r2 umesto r3. Na Sl. 4.29 prikazan je razrađeni ASM dijagram koji odgovara ASM-u iz odeljka 4.6.2 i stazi podataka iz odeljka 4.7.1.

PASIVNO ldr1aluctrl = 'PROPUŠTANJEmuxctrl = 0SPREMAN

TS 10

clrr2

ldr1aluctrl = 'ODUZIMANJEmuxctrl = 1

INIT

TEST

IZRACUNAVANJE_1

incr2

IZRACUNAVANJE_2

r1gey 1

0

Sl. 4.29 Razrađena ASM koja odgovara slikama Sl. 4.12 i Sl. 4.26.

4.7.3 Treći primer Ukoliko za realizaciju mašine za deljenje usvojimo sekvencijalni ASM dijagram iz odeljka 4.6.2 (Sl. 4.12), postoji mogućnost da ćemo naći jeftiniju stazu podataka (ali sa manjim potencijalnim paralelizmom). Naravno, jednu takvu staza podataka nećemo moći iskoristiti za realizaciju ASM dijagrama koji zahtevaju veći nivo paralelizma (npr. ASM dijagram iz odeljka 4.6.7). Jedan od uobičajenih načina za smanjenje cene (tj. hardverske složenosti) rešenja, mada na račun smanjenja brzine rada, zasnovan je na korišćenju ALU kao

Page 169: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

ASM Dijagrami

169

centralne jedinice uz pomoć koje se obavljaju sve operacije koje su specificirane polaznim ASM dijagramom. Konkretno, ALU može na svom izlaz da postavi ¨sve nule¨ (kada je aluctrl = ‘NULA) i da inkrementira jedan od ulaznih operanada (kada je aluctrl = ‘INKREMENT). Pošto se ALU koristi za različite operacije nad različitim podacima, rešenje zahteva multiplekser sa dovoljnim brojem ulaza kako bi se do ulaza u ALU prosledili svi potrebni podaci. U konkretnom primeru, potreban je multiplekser sa tri ulaza (što znači da je ulaz multipleksera za selekciju muxctrl dvo-bitni). Ovo će omogućiti da se izabere jedna od vrednosti x, r1 i r2 i prosledi do ulaza u ALU.

Kod opisanog rešenja više nije neophodno da r2 bude realizovan kao brojački registar, s obzirom da operaciju r2←r2+1 može da obavi ALU. Takođe, izlaz ALU jedinice mora biti dostupan na centralnoj magistrali, sa koje će se vršiti upis u registre r1 i r2.

ALU jedinica standardno poseduje signal izlaznog prenosa (cout) koji se može iskoristiti za određivanje rezultata testa r1≥y. Ovo je dozvoljeno jer ASM iz odeljka 4.6.2 poseduje stanje TEST sa praznim pravougaonikom. U razrađenoj ASM, ovaj pravougaonik neće biti prazan, mada i dalje neće sadržati bilo kakav upis u registre r1 ili r2. Postavljanjem odgovarajućih internih upravljačkih signala (aluctrl i muxctrl) u prazan pravougaonika stanja TEST, staza podataka se može tako konfigurisati da ALU izračunava razliku r1 i y, ali bez upisa rezultata u bilo koji registar. Izlazni prenos postavljen prilikom izračunavanja ove razlike, tačnije njegova komplementarna vrednost, ~cout, ukazuje na ishod poređenja r1≥y.

Struktura staze podataka za treći primer prikazana je na Sl. 4.30, a razrađeni ASM koji opisuje ponašanje upravljačke jedinice na Sl. 4.31.

r1

ldr1

r2

ldr2

01

muxctrl

2

x

x/y

ALU

y

aluctrl

cout

a

b

12

12

1212

12

12

2

6

Sl. 4.30 Staza podataka sa centralnom ALU jedinicom.

Sl. 4.31 Razrađena ASM koja odgovara slikama Sl. 4.12 i Sl. 4.30.

Page 170: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

170

Kombinacionalogika

sledecegstanja

Registartekucegstanja

statusnisignali

upravljackisignali

ssttst

Sl. 4.32 Upravljačka jedinica.

4.7.4 Poređenje metodičke i staze podataka zasnovane na ALU jedinici

Primeri razrade opisa ponašanja u strukturu ¨upravljačka jedinica – staza podataka¨, opisani u prethodnim odeljcima, ukazuju da se u fazi razrade projektant sreće sa širokim spektarom mogućnih rešenja. Staza podataka zasnovana na centralnoj ALU (ilustrovana u odeljku 4.7.3) koja obavlja sva neophodna izračunavanja, predstavlja jedan kraj ovog spektra. Druga krajnost je metodička staza podataka, ilustrovana u odeljcima 4.7.1 i 4.7.2, kod koje se sva izračunavanja predviđena algoritmom, obavljaju zasebnim hardverskim jedinicama. Pristup zasnovan na centralizovanoj ALU, tipično, zahteva manje hardvera, ali zato, može da realizuje samo određene vrste ASM-ova. Na primer, polazni ASM, koji je osnova za metodičku staza podataka, ne može se ostvariti u stazi podataka zasnovanoj na centralizovanoj ALU, zato što takva ASM predviđa više od jednog izračunavanja po taktnom ciklusu. U sledećoj tabeli navedene su ključne razlike između ova dva pristupa:

Kriterijum Centralizovana ALU Metodička staza podataka Gde se izvode izračunavanja? Jedna ALU U samim registrima ili registrima povezanim sa

multiplekserima, ALU jedinicama i namenskim kombinacionim kolima.

Gde je vezan izlaz ALU jedinice? Sa svakim registrom. Samo sa jednim registrom. Kog su tipa registri? Prihvatni registri sa dozvolom. Bilo kog tipa. Broj ← po taktnom ciklusu Jedan Jedna ili više Brzina Sporija Brža Cena Niža Viša Primeri (odeljci) 4.7.3 4.7.1; 4.7.2 Slike Sl. 4.30; Sl. 4.31 Sl. 4.26; Sl. 4.27; Sl. 4.30.

Kod metodičke staze podataka iz odeljka 4.7.2, izlaz ALU jedinice je povezan samo sa ulazom u registra r1; kod staze podataka sa centralizovanom ALU iz odeljka 4.7.3, izlaz ALU jedinice je povezan sa oba registra r1 i r2. Kod ASM koja je realizovana uz pomoć metodičke staze podataka, u jednom taktnom ciklusu izvršava se više naredbi registarskog prenosa. Pristup koji koristi centralizovanu ALU je sporiji jer polazi od sekvencijalnog ASM dijagrama.

4.8 Primeri realizacije

U fazi razrade (opisane u odeljku 4.7), mašina za deljenje je podeljena na upravljačku jedinicu (opisanu razrađenim ASM dijagramom) i stazu podataka. U ovom odeljku razmatra se završna, treća faza procesa projektovanja mašine za deljenje.

Treća faza projektovanja uključuje konverziju razrađenog ASM dijagrama u hardversku strukturu koja će realiyovati ponašanje opisano razrađenim ASM dijagramom. Na kraju ove faze, polazni sistem, opisan ASM dijagramom, biće u potpunosti opisan u obliku strukturne blok šeme. Na taj način, sistem više neće biti opisan u smislu šta radi (tj. kako se ponaša), već će biti opisan u smislu kako je napravljen (struktura). Rezultujuća strukturna blok šema sadržaće dovoljno informacija na osnovu kojih će projektant moći da poveže hardverske komponente u fizičku, hardversku mašinu.

4.8.1 Prvi primer

Prvi korak u procesu prevođenja razrađenog ASM dijagrama u hardversku strukturu sastoji se u dodeli jedinstvenih binarnih kombinacija stanjima ASM dijagrama. Binarne kombinacije mogu biti proizvoljne, osim što se projektantu preporučuje da pri izboru binarnih kombinacija bude konzistentan kako se ne bi desilo da ista kombinacija bude upotrebljena dva ili više puta. Jedan pristup, koji je lak za projektanta, jeste korišćenje binarnog koda. Za ASM sa dva stanja, jednobitni kod je dovoljan. Za ASM sa tri ili četiri stanja, potreban je dvobitni kod, dok je trobitni kod dovoljan za ASM dijagrame sa brojem stanja od pet do osam. U opštem slučaju, ASM sa n stanja zahteva )(log2 n -

bitni kod.

Razrađena ASM iz odeljka 4.7.1 sadrži samo dva stanja. Usvojićemo da se stanje PASIVNO kodira sa 0, a stanje IZRAČUNAVANJE sa 1.

Takođe, neophodno je poznavati konkretne binarne kombinacije za kontrolu ALU jedinice. Usvojićemo da su operacije ALU jedinice kodirane u skladu sa specifikacijama standardne ALU komponente 74xx181: gde je

Page 171: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

ASM Dijagrami

171

'PROPUSTIB = 101010, a 'ODUZIMANJE = 011001.

Struktura upravljačke jedinice sastoji se iz dva dela: (1) registar tekućeg stanja i (2) kombinaciona logika sledećeg stanja. Statusni signali i tekuće stanje su ulazi u kombinacionu logiku, a sledeće stanje i upravljački signali su izlaz iz kombinacione logike. Sledeće stanje je ulaz u registar tekućeg stanja, kao što je prikazano na Sl. 4.32.

Kombinaciona logika sledećeg stanja može biti opisana tabelarno. ASM dijagramu iz odeljka 4.7.1 odgovara sledeća tabela prelaza:

Ulaz Izlaz

tst TS r1gey sst ldr1 clrr2 incr2 ldr3 muxctrl Aluctrl SPREMAN 0 0 0 0 1 1 0 0 0 101010 1 0 0 1 0 1 1 0 0 0 101010 1 0 1 0 1 1 1 0 0 0 101010 1 0 1 1 1 1 1 0 0 0 101010 1 1 0 0 0 1 0 1 1 1 011001 0 1 0 1 1 1 0 1 1 1 011001 0 1 1 0 1 1 0 1 1 1 011001 0 1 1 1 1 1 0 1 1 1 011001 0

U gornjoj tabeli, jednobitni signal tst reprezentuje tekuće, a sst sledeće stanje. Jedna moguća realizacija ove tabele je uz pomoć ROM-a. Ulazni signali se dovode na adresne linije ROM-a, a izlazni signali se uzimaju sa linija podataka ROM-a. Pošto je broj ulaza tri, a broj izlaza 13, neophodan je ROM kapaciteta 8x13, tj. osam trinaestobitnih lokacija (reči). U lokaciju ROM-a sa adresom koja je, u binarnom obliku, navedena u levom delu tabele upisuje se podatak iz desnog dela tabele.

Drugi način za implementaciju logike sledećeg stanja jeste uz pomoć logičkih kola; svaki od izlaza tretira se kao logička funkcija tri ulazne promenljive (tst, TS i r1gey). Do analitičkih izraza za ove funkcije dolazi se postupkom logičke minimizacije, da bi se potom, na osnovu analitičkih izraza, direktno, projektovala AND-OR kombinaciona mreža. Sledeće logičke funkcije predstavljaju ekvivalent gornje tabele:

sst = ~ tst & TS | tst & (r1gey | TS) ldr1 = 1 clrr2 = ~tst incr2 = tst ldr3 = tst muxctrl = tst aluctrl[5] = ~tst aluctrl[4] = tst aluctrl[3] = 1 aluctrl[2] = 0 aluctrl[1] = ~tst aluctrl[0] = tst SPREMAN = ~tst

Konverzija tabele prelaza u hardversku strukturu predstavlja zadatak koji se može automatizovati. Za ovu namenu dostupni su brojni softverski alati.

Uočimo da u gornjoj tabeli postoje identične vrste. Na primer, vrste 000 i 001 su identične jer prelaz iz stanja PASIVNO u stanje IZRAČUNAVANJE zavisi samo od signala TS, a ne i od signala r1gey. (Ako je TS=0, tada ASM ostaje u stanje PASIVNO bez obzira na vrednost signala r1gey; slično, ako je TS=1, tada ASM prelazi iz stanja PASIVNO u stanje IZRAČUNAVANJE, bez obzira na signal r1gey.) Imajući to u vidu, gornja tabela se može predstaviti u skraćenom obliku:

Ulaz Izlaz

tst TS r1gey sst ldr1 clrr2 incr2 ldr3 muxctrl aluctrl SPREMAN 0 0 - 0 1 1 0 0 0 101010 1 0 1 - 1 1 1 0 0 0 101010 1 1 0 0 0 1 0 1 1 1 011001 0 1 1 0 1 1 0 1 1 1 011001 0 1 - 1 1 1 0 1 1 1 011001 0

Znak ¨-¨ ukazuje na proizvoljnu vrednost, tj. na činjenicu da od vrednosti konkretnog signala ne zavisi uslov za promenu datog stanja. Ova tabela ima identično značenje kako i prethodno data, duža varijanta tabele.

Page 172: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

172

4.8.2 Drugi primer

Razmotrimo, sada, ASM dijagram iz odeljka 4.7.2 (Sl. 4.29). Pretpostavimo da su stanja ovog ASM dijagrama kodirana na sledeći način:

Stanje Kod PASIVNO 000 INIT 001 TEST 010 IZRAČUNAVANJE_1 011 IZRAČUNAVANJE_2 100

Sledeća tabela opisuje upravljačku jedinicu:

Ulaz Izlaz

tst TS r1gey sst ldr1 clrr2 incr2 muxctrl aluctrl SPREMAN 000 0 - 000 1 0 0 0 101010 1 000 1 - 001 1 0 0 0 101010 1 001 - - 010 0 1 0 0 101010 0 010 - 0 000 0 0 0 0 101010 0 010 - 1 011 0 0 0 1 101010 0 011 - - 100 1 0 0 0 011001 0 100 - - 010 0 0 1 0 101010 0 101 - - 000 0 0 0 0 101010 0 11- - - 000 0 0 0 0 101010 0

Skraćeni zapis tabele prelaza je koristan jer bi u suprotnom, eksplicitno navođenje svih kombinacija ulaznih signala rezultovalo u tabeli sa 32 vrste.

Vrednosti muxctrl i aluctrl u stanjima INIT (001), TEST (010) i IZRAČUNAVANJE_2 (100) proizvoljno su izabrane. S obzirom da ASM poseduje 5 stanja, javljaju se tri trobitne kombinacije koje se ne koriste za kodiranje stanja (101, 110 i 111). U toku normalnog rada upravljačke jedinice, ove binarne kombinacije nikada se neće javiti kao vrednost trobitnog signala tst. Međutim, pri uključenju napajanja sadržaj registra tekućeg stanja je proizvoljan, a to znači da može biti jednak i nekoj od nedozvoljenih binarnih kombinacija. Da bi se prevazišao ovaj problem, u tabeli prelaza je navedeno da upravljačka jedinica iz svakog nedozvoljenog stanja prelazi u stanje PASIVNO.

4.9 Hijerarhijsko projektovanje

Rezultat treće faze projektovanja je opis sistema u vidu ¨čiste¨ strukturne blok šeme. Međutim, čak i na ovom nivou, neka kola koja su deo upravljačke jedinice ili staze podataka mogu i dalje biti predstavljena u vidu opisa ponašanja. Na primer, ako staza podataka sadrži sabirač, u strukturnom blok dijagramu staze podataka ova komponenta će biti prikazana u obliku bloka sa dva ulaza i jednim izlazom uz tekstualnu naznaku da se radi o sabiraču. Postoji veliki broj različitih hardverskih realizacija sabirača, ali bez obzira koju od njih usvojili, možemo smatrati da nam je unutrašnja struktura sabirača poznata i dostupna (npr. u okviru biblioteke standardnih digitalnih modula). Iz tog razloga, nema potrebe opterećivati strukturni blok dijagram detaljima koji se odnose na unutrašnju strukturu sabirača, već je dovoljno sabrač predstaviti kao crnu kutiju (Sl. 4.33).

Sl. 4.33 Blok dijagram i ASM dijagram sabirača.

Page 173: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

ASM Dijagrami

173

SUMA[1]

b[0]a

SUMA[2]

a[0]

b[1]b

a[1]

SUMA

SUMA[0]

Sl. 4.34 Ravni strukturni dijagram sabirača.

Na Sl. 4.34 šematski je prikazana jedna moguća unutrašnja struktura sabirača. Šema sa Sl. 4.34 ne sadrži bilo kakvu hijerarhiju i zbog toga se zove ravni (ili razvijeni) strukturni dijagram (ili dijagram kola ili gejtova). Ravni strukturni dijagram koji sadrži samo logička kola, zove se netlista. Netlista je lista (spisak) gejtova i jednobitnih veza (mreža) koje povezuju gejtove. Netlista predstavlja formalni opis hardverske strukture najvećeg nivoa detaljnosti i koristi se kao precizna specifikacija u procesu fizičke realizacije kola. Mada ravni strukturni dijagram (ili ekvivalentna netlista) predstavlja konačni opis na osnovu koga se izgrađuje mašina, on, upravo zbog obilja detalja, na kazuje puno o toku kreativnog procesa koji nas je doveo do njegovog kreiranja.

Pojam hijerarhijski projekat odnosi se na stil projektovanja kod koga je hijerarhija očuvana sve do nivoa konačnog rezultata projekta. U hijerarhijskom projektu, projektant dokumentuje na koji način je došao do konačnog strukturnog dijagrama. Umesto proste šeme gejtova, projektant definiše module. Na primer, blok dijagram dvo-bitnog sabirača predstavlja modul. Tipično, modul se sastoji od gejtova i instanci drugih modula, koji se dalje mogu razložiti na jednostavnije module, i tako dalje, sve do nivoa netliste. Na primer, dvobitni sabirač se sastoji od jednog potpunog sabirača i jednog polu-sabirača (Sl. 4.35); potpuni-sabirač čine dva polu-sabirača i jedno OR kolo (Sl. 4.36), a polu-sabirač se može predstaviti kako kombinaciona mreža od jednog XOR i jednog AND kola (Sl. 4.37). Hijerarhijski projekat, definisan blok dijagramima sa Sl. 4.35, Sl. 4.36 i Sl. 4.37, i ravni strukturni dijagram sa Sl. 4.34, prikazuju hardversku strukturu dvobitnog sabirača. Hijerarhijski prikaz je kompaktniji i lakši za razumevanje. Pri tome, zamenom modula njihovom definicijom, hijerarhijski projekat se uvek može transformisati u ravni strukturni dijagram, tj. netlistu.

Page 174: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

174

HA

FA2

2 1 a[0]

a[1]

b[0]

b[1]

1

1

1

1

1

sum[1]

sum[2]

sum[2]

1

3sum

a

b

Sl. 4.35 Definicija modula dvo-bitnog sabirača. HA – modul polu-sabirača; FA – modul potpunog sabirača.

HA

HA

Sl. 4.36 Definicija modula potpunog sabirača (FA).

Sl. 4.37 Definicija polu-sabirača (HA).

Iako se hijerarhijsko projektovanje može primeniti i kod projektovanja ¨odozdo-naviše¨, njegova uloga je važnija kod projektovanja ¨odozgo-naniže¨. U ¨odozgo-naniže¨ procesu, nakon okončanja treće faze projektovanja, projektant može iznova da primeni istovetni postupak projektovanja na bilo koji modul nestandardne funkcije. Komponente, kao što je sabirač, su dobro poznate, i obično, projektant nije opterećen razradom njihove unutrašnje strukture. Međutim, neke druge komponente, specifične za konkretan problem, zahtevaju dalju razradu, kako bi konačni rezultat ovog iterativnog procesa projektovanja sadržao samo logička kola i komponente standardne funkcije.

4.9.1 Hijerarhija u prvom primeru

U odeljcima 4.6.7, 4.7.1 i 4.8.1 detaljno su opisane tri faze projektovanja mašine za deljenje u varijanti sa dva stanja. Sledeća tri dijagrama (Sl. 4.38, Sl. 4.39 i Sl. 4.40) ilustruju kako se u toku projektovanja menja odnos između ¨količine¨ strukture i ¨količine¨ opisa ponašanja. U svakom od ovih dijagrama, pojedinačni blok dijagrami (crne kutije) i konkretne komponente (koje inače same za sebe predstavljaju crne kutije) reprezentuju delove sistema čija je unutrašnja priroda poznata samo po ponašanju.

Page 175: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

ASM Dijagrami

175

MAŠINA ZADELJENJE

(opis ponašanja je datu obliku ASM

dijagrama)

12

12

12

TS SPREMAN

Sl. 4.38 Polazni blok dijagram.

UPRAVLJACKAJEDINICA

(opis ponašanja dat uobliku razradjenog ASM

dijagrama)

ldr1

clrr2

ldr3

aluctrl

muxctrl

incr2

r1gey

MAŠINA ZA DELJENJEx

TS

y

x/y

SPREMAN

12

ALUr1 komp.

<0

1

r2 r3

STAZA PODATAKA

Sl. 4.39 Razrađeni blok dijagram.

Logikasledeceg

stanjaldr1

clrr2

ldr3

aluctrl

muxctrl

incr2

r1gey

MAŠINA ZA DELJENJEx

TS

y

x/y

SPREMAN

12

ALUr1 komp.

<0

1

r2 r3

STAZA PODATAKA

Registartekucegstanja

sst tst

KONTROLER

Sl. 4.40 Strukturalni blok dijagram.

Prvi dijagram (Sl. 4.38), koji ilustruje fazu opisa ponašanja, prikazuje mašinu za deljenje u vidu jedinstvene crne kutije. Ponašanje mašine se opisuje ASM dijagramom (vidi odeljak 4.6.7). Jedini element strukture u ovoj fazi projektovanja jeste struktura portova koji omogućavaju mašini da komunicira sa spoljnim svetom.

Page 176: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

176

Drugi dijagram (Sl. 4.39) prikazuje stanje projekta nakon faze razrade. U strukturi mašine za deljenje sada se izdvajaju dva glavna dela: upravljačka jedinica i staza podataka. U fazi razrade, struktura upravljačke jedinice ostaje ¨misterija¨ (crna kutija) koja je opisana jedino u vidu razrađenog ASM dijagrama iz odeljka 4.7.1. Ovaj ASM ne sadrži naredbe registarskog prenosa i bavi se jedino statusnim i upravljačkim signalima. Nasuprot tome, struktura staze podataka je vidljiva. Međutim, neke komponente staze podataka, kao što je ALU, ostaju i dalje crne kutije.

Treći dijagram (Sl. 4.40) prikazuje ¨čistu¨ strukturu. Upravljačka jedinica je razložena na logiku sledećeg stanja (sa pridruženom tabelom prelaza) i registar tekućeg stanja. Staza podataka je ostala ista kao u fazi razrade. Iako se radi o ¨čistoj¨ strukturi, unutrašnja struktura preostalih crnih kutija ostaje sakrivena (logika sledećeg stanja, multiplekser, ALU, komparator, registri). Međitim, kako se radi o komponentama standardne funkcionalnosti (ALU, komparator, multiplekser, registri) ili o blokovima čija se interna struktura može automatski sintetizovati (logika sledećeg stanja), posao projektanta je završen.

4.10 Napredne ASM tehnike

Tehnika projektovanja zasnovana na ASM dijagramima, iako primenljiva na mnoge probleme, u nekim slučajevima može rezultovati u hardverskom rešenju koje ne zadovoljava zahteve u pogledu brzine (broj taktnih ciklusa) i⁄ili cene (broj gejtova). Treba naglasiti da bez obzira na značaj kriterijuma kao što su cena i brzina rada, glavna odgovornost projektanta jeste realizacija ispravnog rešenja. Međutim, bez obzira što brzina rada ne bi trebalo da bude primarni cilj, kod mnogih problema korektnost rešenja zavisi i od toga da li je algoritam može da se izvrši u tačno određenim vremenskim granicama, što je, na primer, slučaj kod sistema za rad u realnom vremenu. Potraga za bržim rešenjem uvek bi trebalo započeti u apstraktnom svetu algoritama, a ne u ¨prenaseljenom¨ svetu gejtova. Najbolji način da se rad neke mašine ubrza, nisu ¨trikovi¨ sa gejtovima, već je najbolji način traženje efikasnijeg algoritma za dati problem. Prvi deo ovog poglavlja, koji opisuje različite varijante mašine za deljenje, pri čemu je konačna varijanta tri puta brža od polaznog, jasno ukazuje na ovu poentu. Međutim, jedan problem sa izvesnim bržim algoritmima je u tome što se oni ne mogu opisati notacijom koja je prethodno uvedena. U ovom odeljku razmatraju se neka proširenja ASM dijagrama koja mogu pomoći u traženju efikasnijih algoritama.

4.10.1 Murove i Milijeve mašine

Podsetimo se da se ASM dijagram sastoji od rombova, pravougaonika i zaobljenih pravougaonika, povezanih strelicama. U prethodnim odeljcima, zaobljeni pravougaonici nisu korišćeni. ASM dijagram koji ne sadrži zaobljene pravougaonike predstavlja mašinu (tj. konačni automat) Murovog tipa. Sve ASM razmatrane do sada su Murovog tipa. ASM dijagrami koji pored rombova i pravougaonika sadrže i zaobljene pravougaonike predstavljaju mašine Milijevog tipa. ASM dijagrami Milijevog tipa omogućavaju opis algoritama koji su brži (a u nekim slučajevima i niže cene) od odgovarajućih Murovih ASM dijagrama.

Komande koje se javljaju u pravougaonicima (kako naredbe registarskog prenosa tako i signali), nazivaju se bezuslovnim komandama, s obzirom da se izvršavaju uvek kada se ASM nađe u stanju koje odgovara konkretnom pravougaoniku. Zaobljeni paravougaonici se koriste da bi se predstavile uslovne komande, koje se ponekad (ali ne i uvek) izvršavaju kada je ASM u određenom stanju. Zaobljeni pravougaonici nisu sami po sebi stanja, već se mogu smatrati ¨decom¨ nekog roditeljskog stanja. S obzirom da zaobljeni pravougaonici predstavljaju uslovne komande, oni se uvek nalaze ispod jednog ili više rombova. Kada se u ASM dijagramu Milijevog tipa prate strelice, onda se uvek prođe kroz jedan ili više rombova dok se ne stigne do zaobljenog pravougaonika. Strelica koja izvire iz zaobljenog pravougaonika, utiče ili u romb ili u pravougaonik.

Sve komande i realcije navedene u pravougaoniku i svim zaobljenim pravougaonicima i rombovima koji su međusobno povezani (bez pravougaoinka između njih) obavljaju se u istom taktnom ciklusu. U suštini, kombinacija rombova i zaobljenih pravougaonika omogućava projektantu da realizuje ugneždenu if then else konstrukciju koja se izvršava u jednom taktnom ciklusu. U takvoj ASM, veliki broj uslova se može ispitivati u paraleli, što može bitno ubrzati rad algoritma.

4.10.2 Primer Milijeve mašine

Na Sl. 4.41 prikazan je ASM dijagram iz odeljka 4.3.1 proširen sa dva uslovna upravljačka signala: OSTANI i NAPUSTI. Signal OSTANI ima vrednost 1 za sve vreme dok je mašina, zbog BROJAČ ≠ 0, ostaje u stanju ŽUTO. Signal NAPUSTI ima vrednost 1 u toku poslednjeg taktnog perioda u kome je mašina u stanju ŽUTO. Signali OSTANI i NAPUSTI se nikada ne postavljaju u isto vreme.

Page 177: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

ASM Dijagrami

177

Sl. 4.41 ASM Milijevog tipa.

U sledećoj tabeli prikazano je ponašanje ASM dijagrama sa Sl. 4.41, pod pretpostavkom da je trajanje taktnog perioda 0.5s:

Vreme Tekuće stanje Signali i promenljive

0.0 ZELENO STOP=0 BRZINA=11 BROJAČ=000 OSTANI = 0 NAPUSTI = 0

0.5 ŽUTO STOP=1 BRZINA=01 BROJAČ=000 OSTANI = 0 NAPUSTI = 1 1.0 CRVENO STOP=1 BRZINA=00 BROJAČ=001 OSTANI = 0 NAPUSTI = 0

1.5 ZELENO STOP=0 BRZINA=11 BROJAČ=011 OSTANI = 0 NAPUSTI = 0

2.0 ŽUTO STOP=1 BRZINA=01 BROJAČ=011 OSTANI = 1 NAPUSTI = 0 2.5 ŽUTO STOP=1 BRZINA=01 BROJAČ=100 OSTANI = 1 NAPUSTI = 0

3.0 ŽUTO STOP=1 BRZINA=01 BROJAČ=101 OSTANI = 1 NAPUSTI = 0

3.5 ŽUTO STOP=1 BRZINA=01 BROJAČ=110 OSTANI = 1 NAPUSTI = 0

4.0 ŽUTO STOP=1 BRZINA=01 BROJAČ=111 OSTANI = 1 NAPUSTI = 0

4.5 ŽUTO STOP=1 BRZINA=01 BROJAČ=000 OSTANI = 0 NAPUSTI = 1 5.0 CRVENO STOP=1 BRZINA=00 BROJAČ=001 OSTANI = 0 NAPUSTI = 0

5.5 ZELENO STOP=0 BRZINA=11 BROJAČ=011 OSTANI = 0 NAPUSTI = 0

6.0 ŽUTO STOP=1 BRZINA=01 BROJAČ=011 OSTANI = 1 NAPUSTI = 0

… … …

Između 0.5 s i 1.0 s, mašina je u stanju ŽUTO, ali, zbog toga što je BROJAČ = 0, mašina nastavlja putanjom koja vodi u stanje CRVENO. Na ovom putanji nalazi se zaobljeni pravougaonik koji postavlja signal NAPUSTI. Ovaj uslovni signal je postavljen u toku celog taktnog ciklusa, baš kao i bezuslovni signal STOP. Signal OSTANI, koji se nalazi na drugoj putanji, ostaje nepostavljen u toku ovog taktnog ciklusa.

Između 2.0 s i 2.5 s, mašina je ponovo u stanju ŽUTO, ali kako je sada BROJAČ različit od nule, mašina nastavlja putanjom koja je vraća u isto stanje. Ova putanja prolazi kroz zaobljeni pravougaonik koji postavlja signal OSTANI. Signal NAPUSTI se ne postavlja u ovom taktnom ciklusu.

S obzirom da je BROJAČ trobitna promenljiva, BROJAČ ponovo postaje nula u vremenu 4.5-5.0s. To je zadnji taktni ciklus u kome je mašina u stanju ŽUTO. Znači, u toku ovog taktnog ciklusa, signal NAPUSTI je postavljen, a signal OSTANI nije.

4.10.3 Primer razrađene Milijeve mašine

Staza podataka koja realizuje primer iz prethodnog odeljka sastoji se od brojačkog registra u sprezi sa sabiračem. Na jednom ulazu sabirača postavljena je konstanta 2. Takođe, postoji i komparator, koji poredi vrednost BROJAČ sa nulom. Struktura staze podataka i odgovarajući, razrađeni ASM prikazani su na Sl. 4.42:

Page 178: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

178

BROJAC

LD INC

+ Komp.3

3

2

3

3

03

BROJACQ0

BRZINA=3ZELENO

ŽUTO

CRVENO

STOPBRZINA=1

INC

STOPLD

BROJACQ00

1

NAPUSTI

OSTANI

Sl. 4.42 Razrađena Milijeva mašina.

4.10.4 Primer strukturne Milijeve mašine

Uopšteni dijagram strukture upravljačke jedinice dat u odeljku 4.8.1, primenljiv je na bilo koju mašinu, bez obzira da li je ona Murovog ili Milijevog tipa. Međutim, kombinaciona logika sledećeg stanja kod mašine Milijevog tipa donekle se razlikuje u odnosu na onu kod mašine Murovog tipa. Kao što je poznato, kod Murove mašine sledeće stanje je u funkciji tekućeg stanja i ulaza, dok su upravljački izlazi u funkciji isključivo tekućeg stanja (tst). Drugim rečima, kod Murove mašine, u vrstama tabele prelaza sa istom vrednošću tst, vrednosti upravljačkih signala su identične.

Milijeva mašina je generalnija, u odnosu na Murovu mašinu. Upravljački signali, kao i sledeće stanje, su u funkciji kako tekućeg stanja, tako i ulaza mašine. Razmotrimo tabelu prelaza mašine opisanu razrašenim ASM dijagramom i stazom podataka iz odeljka 4.10.3:

Ulaz Izlaz

tst BROJAČQ0 sst STOP BRZINA NAPUSTI OSTANI INC LD 00 - 01 0 11 0 0 0 0 01 0 10 1 01 1 0 1 0 01 1 01 1 01 0 1 1 0 10 - 00 1 00 0 0 0 1

Signali BRZINA, STOP, INC i LD su bezuslovni signali i zavise samo od tst. Uslovni signali NAPUSTI i OSTANI zavise od tst i BROJAČQ0. Upravo ova zavisnost vrednosti signala od statusa, čini ovu mašinu Milijevom.

4.10.5 Milijeva verzija mašine za deljenje

U odeljcima 4.1 do 4-10 date su brojne varijante mašine za deljenje Murovog tipa. U ovom odeljku biće pokazano kako se mašina za deljenje može dalje usavršiti uvođenjem zaobljenih pravougaonika u ASM dijagram.

4.10.5.1 Eliminacija stanja INIT (po drugi put)

U odeljku 4.6.3 opisana je jedna korekna varijanta mašine za deljenje sa četiri stanja koja u stazi podataka sadrži samo dva registra (r1 i r2). Odeljak 4.6.4 opisuje jedan neuspešan pokušaj eliminacije stanja INIT iz ove ASM. U odeljku 4.6.5 uveden je registar r3 kako bi se ispravila greška u korisničkom interfejsu koja je postojala u ASM iz odeljka 4.6.4.

Problem koji postoji u ASM iz odeljaka 4.6.4 posledica je činjenice da se u stanju PASIVNO upis u r2 inicira bezuslovnom komandom. Korišćenjem Milijeve mašine, moguće je eliminisati stanje INIT, a da se pri tome ne naruši sadržaj registra r2 za vreme dok mašina u stanju PASIVNO čeka da taster (TS) bude pritisnut. Drugim rečima, u r2 se upisuje nula u trenutku kada mašina prelazi iz stanja PASIVNO u stanje IZRAČUNAVANJE_1 (Sl. 4.43):

Page 179: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

ASM Dijagrami

179

PASIVNO

r1 <- xSPREMAN

TS10

r1 >= y1

0

r1 <- r1 - y

IZRACUNAVANJE_1

r2 <- r2 + 1

IZRACUNAVANJE_2

r2 <- 0

Sl. 4.43 Milijeva mašina za deljenje sa dva stanja u petlji.

U narednoj tabeli ilustrovan je rad mašine za slučaj x=14 i y=7:

Tekuće stanje PASIVNO r1= ? r2= ? TS=0 SPREMAN=1 PASIVNO r1= ? r2= ? TS=0 SPREMAN=1 PASIVNO r1= 14 r2= ? TS=1 SPREMAN=1

IZRAČUNAVANJE_1 r1= 14 r2= 0 TS=0 SPREMAN=0 IZRAČUNAVANJE_2 r1= 7 r2= 0 TS=0 SPREMAN=0 IZRAČUNAVANJE_1 r1= 7 r2= 1 TS=0 SPREMAN=0 IZRAČUNAVANJE_2 r1= 0 r2= 1 TS=0 SPREMAN=0

PASIVNO r1= 0 r2= 2 TS=0 SPREMAN=1 PASIVNO r1= ? r2= 2 TS=0 SPREMAN=1

Vrsta u gornjoj tabeli napisana masnim slovima, ukazuje na situaciju kada se ispoljava dejstvo komande uslovnog upisa nule u registar r2. Naravno, efekat ove komande je vidljiv u trenutku delovanja naredne restuće ivice taktnog signala, odnosno u trenutku kada mašina iz stanja PASIVNO prelazi u stanje IZRAČUNAVANJE_1.

ASM sa Sl. 4.43 izračunava količnik za 2+2*količnik taktnih ciklusa., što je za jedan taktni ciklus brže u odnosu na korektni ASM iz odeljka 4.6.3.

4.10.5.2 Spajanje stanja IZRAČUNAVANJE_1 i IZRAČUNAVANJE_2

ASM iz prethodnog odeljka zahteva dvostruko duže vreme izračunavanja u odnosu na najbrže rešenje koje ne koristi zaobljene pravougaonike. Da bi smo postigli isti nivo preformansi i sa Milijevom varijantom mašine za deljenje, neophodno je paralelizovati operacije koje se izvršavaju unutar petlje. Razmotrimo sledeću neispravnu ASM:

PASIVNO

r1 <- xSPREMAN

TS10

r1 >= y1

0

r1 <- r1 - yr2 <- r2 + 1

IZRACUNAVANJE_12

r2 <- 0

Sl. 4.44 Neispravna mašina za deljenje Milijevog tipa.

Page 180: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

180

Naredna tabela ilustruje kako u ASM sa Sl. 4.44 dolazi do greške u izračunavanju, za x=14 i y=7:

Tekuće stanje PASIVNO r1= ? r2= ? TS=0 SPREMAN=1 PASIVNO r1= ? r2= ? TS=0 SPREMAN=1 PASIVNO r1= 14 r2= ? TS=1 SPREMAN=1

IZRAČUNAVANJE_12 r1= 14 r2= 0 TS=0 SPREMAN=0 IZRAČUNAVANJE_12 r1= 7 r2= 1 TS=0 SPREMAN=0 IZRAČUNAVANJE_12 r1= 0 r2= 2 TS=0 SPREMAN=0

PASIVNO r1= 4089 r2= 3 TS=0 SPREMAN=1 PASIVNO r1= ? r2= 3 TS=0 SPREMAN=1

U trenutku kada se, nakon obavljenog izračunavanja, mašina vraća u stanje PASIVNO registar r2 je inkrementiran jedanput više nego što bi to bio slučaj pri ispravnom radu mašine. U odeljku 4.6.5, ovaj problem bio je rešen uvođenjem registra r3 koji je služio za čuvanje ispravnog količnika. Međutim, bolje rešenje bilo bi ono kod koga bi se izbeglo korišćenje dodatnog registra.

4.10.5.3 Uslovni upis u registar r2

Da bi ispravili grešku koja se javlja u ASM iz prethodnog odeljka, neophodno je u stanju IZARČUNAVANJE vršiti upis u r2 samo ako mašina ostaje u petlji, a zadržati zatečenu vrednost ako mašina napušta petlju da bi se vratila u stanje PASIVNO. Ovakav rad mašine zahteva uvođenje zaobljenog pravougaonika u ASM dijagram:

PASIVNOr1 <- x

SPREMAN

TS10

r1 >= y1

0

r1 <- r1 - y

IZRACUNAVANJE

r2 <- 0

r1 >= y

r2 <- r 2 + 1 0

1

Sl. 4.45 Milijeva mašina za deljenje sa uslovnim upisom.

Naredna tabela ilustruje rad ASM sa Sl. 4.45 za x=14 i y=7:

Tekuće stanje PASIVNO r1= ? r2= ? TS=0 SPREMAN=1 PASIVNO r1= 13 r2= ? TS=0 SPREMAN=1 PASIVNO r1= 14 r2= ? TS=1 SPREMAN=1

IZRAČUNAVANJE r1= 14 r2= 0 TS=0 SPREMAN=0 IZRAČUNAVANJE r1= 7 r2= 1 TS=0 SPREMAN=0 IZRAČUNAVANJE r1= 0 r2= 2 TS=0 SPREMAN=0

PASIVNO r1= 4089 r2= 2 TS=0 SPREMAN=1 PASIVNO r1= ? r2= 2 TS=0 SPREMAN=1

ASM sa Sl. 4.45 izračunava korektan količnik za 3+količnik taktnih ciklusa i to korišćenjem samo dva umesto tri registra. Znači, ASM sa Sl. 4.45 je jednako brza kao i najbrža Murova mašina i pri tome koristi manji broj registara.

Page 181: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

ASM Dijagrami

181

4.10.5.4 Ranije postavljanje signala SPREMAN

Razlog zbog koga Milijeva mašina iz odeljka 4.10.5.3 nije brža od Murove mašine iz odeljka 4.6.7 jeste pretpostavka da je korisnik u obavezi da čeka barem dva taktna ciklusa nakon što mašina postavi signal SPREMAN. Kod Murovih mašina situacija SPREMAN =1 je isto što i biti u stanju PASIVNO. Međutim, kod Milijevih mašina postoji mogućnost da se signal SPREMAN postavi jedan taktni ciklus ranije. Postoje dva razloga koji opravdavaju ranije postavljanje signala SPREMAN. Prvo, u toku poslednjeg taktnog ciklusa u kome je mašina u stanju IZRAČUNAVANJE (ASM iz odeljka 4.10.5.3), registar r2 već sadrži ispravan količnik, te se zbog toga ne inicira operacija inkrementiranja registra r2 (grana ¨0¨ uslovnog koraka r1≥y iz romba koji sledi odmah nakon pravougaonika IZRAČUNAVANJE). Drugo, korisnik nije svestan tekućeg stanja mašine, već se on oslanja na signal SPREMAN koji ukazuje na trenutak kada taster TS može ponovo biti pritisnut.

ASM sa Sl. 4.46 postavlja signal SPREMAN u stanju PASIVNO, ali i u poslednjem taktnom ciklusu stanja IZRAČUNAVANJE. Kada je mašina u stanju IZRAČUNAVANJE, test r1≥y sa dna petlje se obavlja u isto vreme kada i test r1≥y sa vrha petlje. Kada mašina treba da ostane u petlji, r2 se inkrementira. Kada mašina treba da napusti petlju, postavlja se signal SPREMAN.

PASIVNOr1 <- x

SPREMAN

TS10

r1 >= y1

0

r1 <- r1 - y

IZRACUNAVANJE

r2 <- 0

r1 >= y

r2 <- r2 + 1

01

SPREMAN

Sl. 4.46 Milijeva mašina za deljenje sa uslovnim postavljanjem signala SPREMAN.

Uslovno postavljanje signala SPREMAN nakon izlaska iz petlje (grana ¨0¨ romba sa vrha petlje) ne bi bila legalna operacija, jer postavljanje signala SPREMAN već postoji u okviru stanja PASIVNO, kome, takođe, pripada i dotični romb. Postavljanje signala SPREMAN, na način kako je to pokazano na Sl. 4.46, predstavlja legalnu operaciju, jer se ona dešava samo u stanju IZRAČUNAVANJE, tj. romb sa dna petlje pripada samo stanju IZRAČUNAVANJE, a ne i stanju PASIVNO. Naredna tabela ilustruje rad ASM sa Sl. 4.46 za x=14 i y=7:

Tekuće stanje PASIVNO r1= ? r2= ? TS=0 SPREMAN=1 PASIVNO r1= 14 r2= ? TS=1 SPREMAN=1

IZRAČUNAVANJE r1= 14 r2= 0 TS=0 SPREMAN=0 IZRAČUNAVANJE r1= 7 r2= 1 TS=0 SPREMAN=0 IZRAČUNAVANJE r1= 0 r2= 2 TS=0 SPREMAN=1

PASIVNO r1= 4089 r2= 2 TS=0 SPREMAN=1

U poslednjem taktnom ciklusu stanja IZRAČUNAVANJE, r2 već sadrži korektan količnik i signal SPREMAN je postavljen. Umesto da čeka još jedan taktni ciklus, korisnik može od ovog momenta otpočeti sa odbrojavanjem ciklusa.

ASM sa Sl. 4.46 izračunava korektan količnik za 2+količnik taktnih ciklusa korišćenjem samo dva registra. Znači, ova Milijeva mašina za deljenje je jeftinija i brža od bilo koje Murove mašine.

Page 182: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

182

4.11 Realizacija kontrolera ¨one-hot¨ metodom

Manuelni proces transformacije ASM dijagrama u hardversku strukturu, obično, predstavlja dugotrajan i zahtevan posao. Završni korak u procesu sinteze upravljačke jedinice, koji uključuje definisanje logike sledećeg stanja, je naporan, s obzirom da formiranje tabele prelaza zahteva da se za svaku moguću situaciju odredi novo stanje upravljačke jedinice. Međutim, postoji jedana alternativna metoda sinteze upravljačke jedinice koja ne zahteva definisanje logike sledećeg stanja. Metod, poznat kao ¨one-hot¨ metod, daje nešto složeniji hardver, ali je zato postupak sinteze razumljiviji i lakši.

Upravljačka jedinica tipa ¨one-hot¨ koristi tačno onoliko flip-flopova koliko ima stanja u odgovarajućem ASM dijagramu.

4.11.1 Konverzija Murove ASM u ¨one-hot¨ kontroler

Kao što je to izloženo ranije u ovom poglavlju, Murova ASM sadrži tri grafička simbola: pravougaonici (opisuju stanja), romovi (opisuju odlučivanja) i strelice (ukazuju na tok izvršenja). Kod ¨one-hot¨ metode, svaki od ovih simbola se direktno preslikava u odgovarajući hardverski element:

Pravougaonik - flip flop Svaki pravougaonik iz ASM dijagrama preslikava se u flip-flop. Ova tehnika je poznata pod imenom ¨one-hot¨ zbog pretpostavke da je u svakom taktnom ciklusu samo jedan od flip-flopova u stanju ¨1¨ (hot – vruć), dok su preostali flip-flopovi u stanju ¨0¨ (cold – hladan). Ako je ¨one-hot¨ uslov ispunjen nakon startovanja upravljačke jedinice (uključenja napajanja), tada će, zahvaljujući hardverskim vezama u upravljačkoj jedinici tipa ¨one-hot¨, uslov biti ispunjen za sve vreme rada jedinice.

Strelica – veza (žica) Svaka strelica iz ASM dijagrama se preslikava u fizičku vezu. Slično flip-flopovima i veze mogu biti vruće ili hladne, ali za razliku od flip-flopova, od kojih je samo jedan vruć, broj vrućih veza u toku jednog taktnog perioda može biti veći od jedan.

Spoj – OR kolo Spoj je tačka u ASM dijagramu u kojoj se spajaju dve ili više strelica. Do spajanja strelica dolazi zato što u različitim taktnim ciklusima postoje različiti putevi kojima se dolazi do istog sledećeg stanja. Spoju iz ASM dijagrama, u upravljačkoj jedinici tipa ¨one-hot¨ odgovara OR kolo koje spaja odgovarajuće veze.

Odlučivanje – demultiplekser

Svako grananje, tj. odlučivanje predstavljeno rombom u ASM dijagramu preslikava se u demultiplekser tipa ¨1-u-2¨. Uslov iz romba definiše selekcioni ulaz demultipleksera; ulaz u romb je ulaz podataka, a dva izlaza iz romba odgovaraju izlazima podataka demultipleksera.

Na Sl. 4.47 prikazan su simboli Murove ASM i odgovarajući hardverski elementi koji se koriste za sintezu ¨one-hot¨ upravljačke jedinice:

Sl. 4.47 Simboli Murovog ASM dijagrama i odgovarajući hardverski elementi upravljačke jedinice tipa ¨one-hot¨.

¨One-hot¨ metod zahteva upotrebu većeg broja flip-flopova u odnosu na standardni metod sinteze upravljačke jedinice. Kod standardnog metoda sinteze, broj flip-flopova koji čine registar tekućeg stanja iznosi približno log2n, gde je n broj stanja u ASM dijagramu. Na primer, ako ASM ima 8 stanja, broj potrebnih flip-flopova

Page 183: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

ASM Dijagrami

183

kod standardne sinteze iznosi 3, dok je za ¨one-hot¨ sintezu potrebno 8 flip-flopova. Ovaj odnos postaje nepovoljniji po ¨one-hot¨ metodu kada je broj stanja veliki. Na primer, ako je broj stanja 32, standardni postupak zahteva 8 flip-flopova, tj. 4 puta manje od broja koji je potreban za ¨one-hot¨ projektovanje. Sa druge strane, složenost projektovanja na bazi standardne tehnike brzo raste sa povećanjem broja stanja ASM i ulaza u upravljačku jedinicu. Na primer, tabela prelaza koja definiše upravljačku jedinicu sa 32 stanja i 8 ulaza ima 256 vrsta. Nasuprot tome, složenost projektovanja na bazi ¨one-hot¨ metode raste približno linearno sa povećanjem broja stanja ASM dijagrama. Kako kod mnogih implementacionih tehnologija (gejtovska polja, FPGA,...) cena flip-flopa nije visoka, ¨one-hot¨ projektovanje predstavlja atraktivnu alternativu standardnoj tehnici sinteze upravljačke jedinice.

4.11.1.1 Prvi primer

Razmotrimo ASM dijagram iz odeljka 4.6.2 (Sl. 4.12) i odgovarajući razrađeni ASM dijagram iz odeljka 4.7.3 (Sl. 4.31). Na Sl. 4.48 prikazan je dijagram upravljačke jedinice koja je projektovana primenom ¨one-hot¨ metode na ASM iz odeljka 4.6.2. Razmatrani ASM dijagram sadrži pet stanja; iz tog razloga, upravljačka jedinica sadrži pet flip-flopova. Radi lakšeg razumevanja, veze koje su povezane sa Q izlazima flip-flopova označene su imenima odgovarajućih stanja. Kasnije, ova imena biće zamenjena numeričkim vrednostima.

Kolo za detekcijuukljucenja

napona napajanja

10TS

DR Q

reset

DR Q

reset

PASIVNO

INIT

10

TEST

r1gey

DR Q

reset

DR Q

reset

IZRACUNAVANJE_1

IZRACUNAVANJE_2

Sl. 4.48 ¨One-hot¨ upravljačka jedinica za ASM iz odeljka 4.6.2 i 4.7.3.

Po izlasku iz stanja PASIVNO, obavlja se grananje u odnosu na vrednost signala TS. Za TS=0, postoji putanja koja vraća upravljačku jedinicu ponovo u stanje PASIVNO. Za TS=1, postoji putanja koja vodi u stanje INIT. Kod ¨one-hot¨ upravljačke jedinice sa Sl. 4.48, ovom grananju odgovara demultiplekser čiji ulaz je Q izlaz flip-flopa PASIVNO. Izlaz demultipleksera out0 je povezan sa OR kolo koje formira ulaz flip-flopa PASIVNO. Izlaz out1 demultipleksera povezan je sa D ulazom flip-flopa INIT. Drugim rečima, ASM dijagram i ¨one-hot¨ upravljačka jedinica imaju identičnu strukturu (topologiju).

U ASM dijagramu sa Sl. 4.31 postoje dve putanje koje vode u stanje TEST. Jedna polazi iz stanja INIT, a druga iz stanja IZRAČUNAVANJE_2. Neposredno pre ulaska u stanje TEST, ove dve putanje se spajaju. Kod

Page 184: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

184

¨one-hot¨ upravljačke jedinice, za spajanje veza koristi se OR kolo. U stanju TEST, testira se signal r1rey (koji govori da li je r1≥y). Ako je rezultat testiranja TRUE (tj., r1gey=1), ASM prelazi u stanje IZRAČUNAVANJE_1; inače, ASM prelazi u stanje PASIVNO. Kod ¨one-hot¨ upravljačke jedinice ovom testu odgovara demultiplekser čiji je ulaz Q izlaz flip-flopa za stanje TEST. Selekcioni ulaz demultipleksera je signal r1gey. Izlaz out1 demultipleksera povezan je sa D ulazom flip-flopa za stanje IZRAČUNAVANJE_1. Izlaz out0 demultipleksera povezan je sa OR kolom koje vodi nazad do flip-flopa za stanje PASIVNO.

Da bi se obezbedilo da ¨one-hot¨ osobina (jedan flip-flop je ¨vruć¨, a svi ostali su ¨hladni¨) važi neposredno po uključenju napajanja, na ulaze za asinhrono resetovanje svih flip-flopova doveden je signal reset. Kod projektovanja fizičkog hardvera, signal reset se realizuje kao impuls (¨1¨) koji se javlja neposredno po uključenju napajanja i traje neko kraće vreme, dovoljno da se obavi resetovanje flip-flopova. Nakon povratka na vrednost ¨0¨, signal reset zadržava ovu neaktivnu vrednost za sve vreme dok je hardver operativan,.

Samo po sebi, resetovanje flip-flopova nije dovoljno da postavi upravljačku jedinicu u korektno početno stanje. Potrebno je da nakon delovanja prve rastuće ivice taktnog signala, tačno jedan flip-flop (u konkretnom slučaju, flip-flop za stanje PASIVNO) postane vruć (tj. setovan). Kako bi se zahtevani početni uslov ostvario, neophodno je još jedno OR kolo i veza na putu koji vodi u flip-flop za stanja PASIVNO. Ova dodatna veza biće izlaz kola za detekciju uključenja napajanja, koje će biti ¨vruće¨ od trenutka uključenja napajanja pa do trenutka dejstva prve rastuće ivice taktnog signala. Nakon prve rastuće ivice taktnog signala, ovo kolo prelazi i nadalje stalno ostaje ¨hladno¨.

Kolo za detekciju uključenja napona napajanja se sastoji od D flip-flopa sa 1-com na D ulazu. Izlaz Q flip-flopa se komplementira kako bi se formirao signal koji ¨puni¨ prvi flip-flop kontrolera inicijalom jedinicom (Sl. 4.49).

DR Q

reset

"1"

Kolo za detekcijuukljucenja napona

napajanja

Sl. 4.49 Kolo za detekciju uključenja napona napajanja.

Na Sl. 4.50 prikazan je dijagram ¨one-hot¨ upravljačke jedinice za ASM iz odeljka 4.6.7 (Sl. 4.22) i 4.7.1 (Sl. 4.27). Osim što određuje korektan redosled stanja, zadatak upravljačke jedinice je i da generiše signale neophodne za upravljanje stazom podataka. S obzirom da se radi o Murovoj mašini, svaki upravljački signal ili uzima konstantnu vrednost (0 ili 1) ili se formira kao OR funkcija određenog podskupa signala koji se javljaju na izlazima flip-flopova. U opštem slučaju, ako se neki upravljački signal CS postavlja u stanjima STANJE_1, STANJE_2,..., STANJE_n (tj. javlja se u pravougaonicima ASM dijagrama koji odgovaraju ovim stanjima), tada se on formira kao CS = STANJE_1 .OR. STANJE_2 .OR. ... .OR. STANJE_n. Na primer, upravljački signal ldr1 se postavlja u oba stanja, PASIVNO i IZRAČUNAVANJE, ASM dijagrama iz odeljka 4.7.1. S obzirom da upravljačka jedinica uvek mora biti u jednom od svojih stanja, OR funkcija primenjena na signale PASIVNO i IZRAČUNAVANJE sa izlaza flip-flopova ¨one-hot¨ kontrolera daje konstantnu vrednost ¨1¨. Komandni signal clr2 se postavlja samo u stanju PASIVNO; zbog toga, on je identičan signalu sa izlaza flip-flopa koji odgovara stanju PASIVNO.

Page 185: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

ASM Dijagrami

185

Kolo za detekcijuukljucenja

napona napajanja

DR Q

reset

10TS

PASIVNO

10

r1gey

TS

DR Q

reset

IZRACUNAVANJE

ldr1aluctrl[3]

aluctrl[2]

incr2ldr3muxctrlaluctrl[4]aluctrl[0]

clrr2aluctrl[5]aluctrl[1]SPREMAN

"1"

"0"

IZRACUNAVANJE

PASIVNO

Sl. 4.50 ¨One-hot¨ upravljačka jedinica za ASM iz odeljeka 4.6.7 i 4.7.1.

4.11.2 Konverzija Milijeve ASM u ¨one-hot¨ upravljačku jedinicu Milijeve ASM, za razliku od Murovih, sadrži uslovne komande. Izvršenje uslovnih komandi, prikazanih u vidu zaobljenih pravougaonika u ASM dijagramu, nije zagarantovano samim tim što je mašina u nekom određenom stanju. Da bi se uslovna (Milijeva) komanda izvršila, neophodno je da neki specifičan uslov bude zadovoljen (tačan). Kod ¨one-hot¨ upravljačke jedinice, ovom uslovu odgovara izlazna veza iz tačno određenog demultipleksera.

4.11.2.1 Prvi primer Razmotrimo realizaciju Milijeve mašine za deljenje sa ranijim postavljanjem signala SPREMAN, čije ponašanje je opisano ASM dijagram sa Sl. 4.46 iz odeljka 4.10.5.4. Na Sl. 4.51 prikazana je razrađena arhitekturalna blok šema sistema koji može da realizuje mašinu za deljenje iz odeljka 4.10.5.4. Ponašanje upravljačke jedinice opisano je razrađenim ASM dijagramom sa Sl. 4.52. U razrađenom ASM, naredbe registarskog prenosa i relacioni izrazi iz polaznog ASM dijagrama, zamenjeni su upravljačkim signalima koji u stazi podataka iniciraju aktivnosti kojima se ove naredbe i testiranja ostvaruju. Realizacija upravljačke jedinice ¨one-hot¨ metodom prikazana je na Sl. 4.53.

Sl. 4.51 Arhitekturalna blok šema koja može da implementira ASM sa Sl. 4.46. Napomena: r1 – prihvatni registar sa dozvolom; r2 – brojački registar; cmp – komparator.

Page 186: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

186

PASIVNO ldr1aluctrl = 'PROPUSTANJEmuxctrl = 0SPREMAN

TS10

r1gey1

0 ldr1aluctrl = 'ODUZIMANJEmuxctrl = 1

IZRACUNAVANJE

clrr2

r1gey

incr2

01

SPREMAN

Sl. 4.52 Razrađeni ASM koji opisuje ponašanje upravljačke jedinice sa Sl. 4.51.

Kolo za detekcijuukljucenja

napona napajanja

DR Q

reset

10

TS

PASIVNO

10

r1gey

DR Q

reset

10

r1gey

IZRACUNAVANJE

CMD1

CMD2CMD3

ldr1aluctrl[3]

aluctrl[2]

muxctrlaluctrl[4]aluctrl[0]

aluctrl[5]aluctrl[1]

SPREMAN

incr2

clrr2

"1"

"0"

IZRACUNAVANJE

PASIVNO

CMD2

CMD3

CMD1

Sl. 4.53 ¨One-hot¨ upravljačka jedinica za ASM iz odeljka 4.10.5.4.

Postupak formiranja strukture ¨one-hot¨ upravljačke jedinice Milijevog tipa prati pravila uvedena u odeljku 4.11.1. Topologija strukture upravljačke jedinice identična je topologiji razrađenog ASM dijagrama. Za razliku od pravougaonika, rombova i strelica, kojima u ¨one-hot¨ kontroleru odgovaraju hardverski elementi (D flip-flopovi, demultiplekseri, OR kola i veze), uslovne komande (zaobljeni provougaonici) iz Milijevog ASM dijagrama se ne preslikavaju u hardverske elemente, već se jednostavno, izostavljaju, a veze u koje bi inače bili

Page 187: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

ASM Dijagrami

187

umetnuti označavaju jedinstvenim imenima. Svaka od ovih oznaka (CMD1, CMD2 i CMD3, u konkretnom primeru) predstavlja signal koji kada je ¨vruć¨ (¨1¨) znači da su ispunjeni uslovi za aktiviranje odgovarajućeg Milijevog upravljačkog signala. Tako, signal CMD1, kada je ¨vruć¨ znači da treba aktivirati upravljački signal clrr2; signal CMD2 aktivira komandu SPREMAN, a CMD3 komandu incr2. Milijevi signali CMD1, CMD2 i CMD3, i signali stanja PASIVNO i IZRAČUNAVANJE, zajedno i ravnopravno učestvuju u formiranju izlaznih, upravljačkih signala. Tako, na primer, upravljački signal SPREMAN je postavljen u stanju PASIVNO ili kada je ispunjen uslov r1gey u stanju IZRAČUNAVANJE. To znači da se ovaj signal formira kao OR funkcija signala IZRAČUNAVANJE i CMD2.

Page 188: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

188

Page 189: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

5 Sinteza staze podataka

U prethodnom poglavlju detaljno je razmatrano projektovanje digitalnog hardvera do RT (registarskog) nivoa uz pomoć ASM dijagrama. Pokazano je kako se ASM dijagrami koriste za opis ponašanja i kako se, preteći filozofiju projektovanja ¨odozgo-naniže¨, polazni opis ponašanja postepeno transformiše u hardversku strukturu. Ukazano je da u svakoj fazi projektovanja obično postoji veći broj alternativnih rešenja koja se razlikuju u pogledu cene i brzine rada. U ovom poglavlju biće opisano više tehnika za optimizaciju rešenja dobijenih na osnovu ASM dijagrama.

S obzirom da se RT implementacija sastoji od upravljačke jedinice i staze podataka, optimizaciji možemo pristupiti tako što ćemo nezavisno optimizovati ova dva dela. Tehnike za optimizaciju upravljačke jedinice uključuju minimizovanje broja stanja, kroz eliminaciju ekvivalentnih stanja, i minimizaciju logike sledećeg stanja, kroz pravilno kodiranje stanja.

Za minimizovanje staze podataka, postoje tri opšte tehnike zasnovane na trima glavnim tipovima komponenti koje se koriste za realizaciju staza podataka: memorijske komponente, funkcionalne jedinice (ALU, komparator, i td.) i magistrale. Na nivou opisa ponašanja, staza podataka je implicitno definisana naredbama registarskog prenosa koje se izvršavaju u određenim stanjima mašine. Tačnije, u svakom stanju mašine, pojedinim promenljivama se dodeljuju nove vrednosti kao rezultat aritmetičkih, logičkih ili operacija pomeranja koje se izvršavaju u funkcionalnim jedinicama. Da bi se naredba registarskog prenosa izvršila, podaci nad kojim se obavlja operacija, najpre moraju biti uzeti iz registara koji čuvaju vrednosti promenljivih sa desne strane naredbe, zatim treba proslediti ove podatke do funkcionalnih jedinica koje izračunavaju novu vrednost i konačno, vratiti rezultat u registar koji čuva vrednost promenljive sa leve strane naredbe. Ova procedura se ponavlja prilikom izvršenja svake naredbe registarskog prenosa.

Promenljive se čuvaju u memorijskim komponentama kao što su registri, registarski fajlovi ili RAM. Međutim, kako, tipično, sve promenljive nisu aktuelne (nisu ¨žive¨) u isto vreme, ostvarivo je da pojedine promenljive dele isti registar ili istu lokaciju u registarskom fajlu ili RAM-u, a da to ne naruši korektnost algoritma. Drugim rečima, postoji mogućnost da se dve ili više promenljivih spoje (kombinuju, tj. zamene jednom promenljivom) kako bi se redukovao broj memorijskih komponenti u stazi podataka. Šta više, čak iako su pojedine promenljive aktuelne u isto vreme, ali im se ne pristupa u isto vreme (u okviru istog stanja), one mogu biti smeštene u isti registarski fajl ili RAM i da na taj način dele isti port registarskog fajla ili port RAM-a. Na ovaj način, objedinjavanjem memorijskih lokacija u registarske fajlove ili RAM, minimizuje se broj pristupnih portova, a time i broj potrebnih magistrala.

Optimizacija staze podataka takođe može biti usredsređena na minimizovanje broja funkcionalnih jedinica. Namena funkcionalnih jedinica u stazi podataka je izvršavanje aritmetičkih, logičkih i operacija pomeranja, koje se javljaju u naredbama registarskog prenosa. Međutim, kako se većina ovih operacija izvršava u različitim stanjima, one mogu da dele istu funkcionalnu jedinicu. Drugim rečima, udruživanjem identičnih operacija iz različitih stanja u grupe tako da se sve operacije iz jedne grupe izvršavaju na istoj jedinici, broj potrebnih funkcionalnih jedinica može biti smanjen.

Treća tehnika za optimizaciju fokusirana je na veze u stazi podataka. Kao što je već rečeno, izvršenje naredbe registarskog prenosa uključuje prenos podataka iz jedne memorijske komponente do funkcionalne jedinice gde se izračunava novu vrednost koja se, potom, prenosi nazad do druge memorijske komponente. Za prenos podataka između memorijskih komponenti i funkcionalnih jedinica koriste se veze. Međutim, ukupan broj veza (žica) u stazi podataka može biti smanjen, ako se veze koje se koriste u različitim stanjima grupišu u magistrale.

Navedene tri tehnike za optimizaciju staze podataka biće detaljnije opisane kroz primer projektovanja ASIC (Application Specific Integrated Circuit – aplikaciono-specifično integrisano kolo) za izračunavanje kvadratnog korena zbira dva označena cela broja. Za izračunavanje se koristi sledeća približna formula:

)),5.0875.0max((22 xyxba +≈+

Page 190: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

190

gde je x=max(|a|,|b|), i y=min(|a|,|b|). Shodno Sl. 5.1(a), ovo ASIC kolo ima dva ulazna porta Ul1 i Ul2, preko kojih se dovode vrednosti a i b, i jedan izlazni port Izl. Kao što se može videti u ASM dijagramu sa Sl. 5.1(b), ASIC uzima podatke sa ulaznih portova i započinje izračunavanje u trenutku kada ulazni signal Start dobije vrednost ¨1¨. U stanju s1, izračunava se apsolutna vrednost operanada a i b. U stanju s2, veća od ovih vrednosti se dodeljuje promenljivoj x, a manja promenljivoj y. U stanju s3, x se pomera za tri, a y za jednu bitsku poziciju u desno kako bi se dobilo 0.125x, odnosno 0.5y. U stanju s4, izračunava se 0.875x, tako što se 0.125x oduzme od x. U stanju s5, vrednosti 0.875x i 0.5y se sabiraju, dok se u stanju s6 određuje maksimum od x i izraza 0.875x+0.5y. U stanju s7, generiše se rezultat, koji postaje dostupan na portu Izl u toku jednog taktnog ciklusa. U isto vreme, setuje se signal Obavljeno, čime se okruženje obaveštava da podatak koji se upravo pojavio na portu Izl predstavlja validni rezultat.

Da bi se na osnovu ASM dijagrama sa Sl. 5.1(b) odredile potrebe za resursima, neophodno je definisati tabele koje ukazuju na obim korišćenja promenljivih i operacija (Sl. 5.2). U tabeli koja ukazuje na korišćenje promenljivih (Sl. 5.2(a)), svakoj promenljivoj iz ASM dijagrama odgovara jedna vrsta, a svakom stanju jedna kolona. Za svaku promenljivu, unosi se znak X u svim kolonama koje odgovaraju stanjima u kojima je ta promenljiva živa. Promenljiva se smatra živom u vremenu između prve rastuće ivice taktnog signala koji joj dodeljuje novu vrednost, pa sve do isteka stanja u kome se ta vrednost koristi poslednji put. Na primer, kao što se vidi sa Sl. 5.1(b), promenljivama a i b su dodeljene vrednosti sa rastućom ivicom taktnog signal koji označava početak stanja s1. Osim u stanju s1, ove dve vrednosti se ne koriste ni u jednom od narednih stanja. Zbog toga su one žive samo u stanju s1. Nasuprot tome, promenljiva x dobija novu vrednost na početku stanja s3, ali kako se ta vrednost koristi i u stanjima s4 i s6, ova promenljiva je živa u svim stanjima između stanja s3 i s6, tj. u stanjima s3, s4, s5 i s6. Dakle, tabela sa Sl. 5.2(a) nam govori o tome koje promenljive su žive u kojim stanjima.

(a) (b)

Sl. 5.2 Šema korišćenja resursa u ASM dijagramu sa Sl. 5.1(b). (a) Iskorišćenje promenljivih; (b) iskorišćenje operacija.

s1 s2 s3 s4 s5 s6 s7 s1 s2 s3 s4 s5 s6 s7

Max. broj jedinica

a X abs 2 2 b X min 1 1 t1 X max 1 1 1 t2 X >> 2 2 x X X X X - 1 1 y X + 1 1 t3 X 2 1 2 1 1 1 t4 X X

Broj operacija

t5 X t6 X t7 X

Broj živih promenljivih

2 2 2 3 3 2 1

Sl. 5.1 ASIC za izračunavanje kvadratnog

korena zbira dva označena cela broja.

Page 191: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Sinteza staze podataka

191

Što je još važnije, tabela korišćenja promenljivih nam ukazuje na maksimalan broj živih promenljivih u nekom stanju. U konkretnom primeru, maksimalan broj živih promenljivih u nekom stanju iznosi 3 (stanja s4 i s5). Na osnovu ovoga zaključujemo da je za realizaciju SRA kola, u stazu podataka potrebno ugraditi najmanje 3 registara. Imajući to u vidu, potrebno je sve promenljive iz tabele korišćenja promenljivih (ukupno 11 promenljivih) razvrstati u tri grupe tako da promenljive iz iste grupe nisu žive u isto vreme. Svakoj takvoj grupi se može pridružiti jedan registar koji će služiti za memorisanje vrednosti svih promenljivih iz te grupe. Iz ovog primera se može zaključiti da se prvi glavni zadatak sinteze staze podataka sastoji u kombinovanju ili grupisanju promenljivih i dodeli tih grupa registrima ili memorijskim lokacijama na način koji će minimizovati broj potrebnih memorijskih komponenti ili neku drugu projektantsku metriku, kao što su brzina rada, potrošnja, mogućnost testiranja i sl. S obzirom da svaka grupa promenljivih deli isti registar ili memorijsku lokaciju, ovaj zadatak se često naziva dodela registara⁄memorije (register⁄memory sharing).

Oduzimac

Mux1 0

b¨0¨

|b|

(a) Jedinica za odredjivanje apsolutne vrednosti (Verzija 1)

bit znaka

Oduzimac

Mux1 0

b¨0¨

|b|

(b) Jedinica za odredjivanje apsolutne vrednosti (Verzija 2)

bit znaka

Oduzimac

Mux1 0

ba

min(a,b)

(c) Jedinica Min

bit znakaOduzimac

Mux1 0

ba

max(a,b)

(d) Jedinica Max

bit znakaOduzimac

Mux1 0

ba

min/max(a,b)

(e) Jedinica Min/Max

bit znaka

Min/Max

¨0¨

a

. . .

. . .

. . .

a >> 1

(f) Pomerac udesno za jedan bit

0

a

. . .

. . .

. . .

a >> 3

(g) Pomerac udesno za tri bita

00Mux1 0

a>>3/ a >> 1

>> 1 >> 3

a

upravljanje pomeranjem

(h) 1-bitni/3-bitni pomerac udesno

Sabirac

a b

0

a+b

(i) Sabirac

Sabirac

a b

1

a-b

(j) Oduzimac

Sabirac

a b

a+b/a-b

(k) Sabirac/Oduzimac

Add/Sub

Sl. 5.3 Jednostavne bibliotečke komponente.

Na sličan način moguće je odrediti minimalan broj funkcionalnih jedinica potrebnih da se izvrše sve operacije iz ASM dijagrama. Za ovu namenu koristi se prikaz dat na Sl. 5.2(b), kod koga vrste odgovaraju različitim tipovima operatora koje srećemo u ASM dijagramu, a kolone predstavljaju stanja. Vrednost u preseku vrste i kolone ukazuje na broj operacija tog tipa koji se obavljaju u tom stanju. Na primer, operacija abs se izvršava dva puta u stanju s1, a operacija max jednom u stanju s2 i jednom u stanju s6. S obzirom da se sve operacije u okviru istog stanja izvršavaju u paraleli, stanje s1 zahteva dve funkcionalne jedinice za određivanje apsolutne vrednosti podatka, stanje s2 jednu jedinicu koja može da obavi operaciju min i jednu jedinicu koja

Page 192: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

192

može da obavi operaciju max i td. Maksimalan broj funkcionalnih jedinica istog tipa u nekom stanju (poslednja kolona u tabeli sa Sl. 5.2(b)) ukazuje na broj jedinica tog tipa koji je dovoljan da zadovolje potrebe za tom jedinicom u svakom stanju ASM dijagrama. Dakle, na osnovu Sl. 5.2(b) zaključujemo da su nam za sintezu staze podataka SRA kola potrebne: (a) dve jedinice pomoću kojih se određuje apsolutna vrednost; (b) dve jedinice koje vrše pomeranje podataka, i (c) po jedna jedinica za operacije max, min, + i -. Shodno ovim zahtevima, direktan pristup projektovanju staze podataka SRA kola rezultovaće u strukturi koja se sastoji od: dve jedinice za određivanje apsolutne vrednosti, dva pomerača, jedne jedinice za određivanje maksimuma⁄minimuma, jednog sabirača i jednog oduzimača. Na Sl. 5.3 prikazana su rešenja za svaku od ovih jedinica. Kao što se može uočiti sa Sl. 5.3, direktna implementacija zahteva ukupno: jedan sabirač, pet oduzimača, četiri multipleksera i nekoliko gejtova. Uočimo da su pomerači realizovani prostim preuređenjem (permutacijom, tj. preusmeravanjem) signala i ne zahtevaju ugradnju dodatnih hardverskih elemenata.

Problem sa direktnom implementacijom je taj što, u suštini, jedna funkcionalna jedinica po operaciji nije neophodna. Naime, s obzirom da ni jedno od stanja ne koristi sve operacije, u implementaciji gde za svaku operaciju iz ASM dijagrama u stazi podataka postoji posebna funkcionalna jedinica, u bilo kom trenutku, najveći broj jedinica biće pasivne (ne koriste se). Konkretno, kod SRA kola, analizom tabele korišćenja funkcionalnih jedinica možemo zaključiti da najveći broj operacija koje se obavljaju u nekom stanju iznosi dva (stanja s1 i s3). Kako je ukupan broj jedinica u stazi podataka SRA kola osam, sledi da se u najvećem delu vremena u toku izračunavanja koristi manje od jedne četvrtine ugrađenog hardvera. Ovo nameće zaključak da bi se upotrebom funkcionalnih jedinica koje su u stanju da obavljaju više od jedne operacije mogle ostvariti značajne uštede u hardveru.

Na primer, kod SRA kola, sabiranje i oduzimanje se nikada ne obavljaju u isto vreme (tj. u istom stanju). To znači da umesto dve nezavisne jedinice (sabirač i oduzimač), možemo konstruisati i koristiti samo jednu jedinicu (sabirač⁄oduzimač), koja će po potrebi obavljati jednu ili drugu operaciju. Hardver potreban za realizaciju jedinice sabirač⁄oduzimač je manjeg obima od ukupnog hardvera nezavisnih jedinica sabirač i oduzimač. Konkretno, ušteda je u jednom sabiraču na račun dodatne EX-OR logike (Sl. 5.3(k)). Treba napomenuti, da objedinjavanje jednostavnih funkcionalnih jedinica u složenije ne mora u svakom slučaju da rezultuje u uštedi hardvera. Na primer, konstrukcija pomerača koji objedinjuje funkcije 1-bitnog i 3-bitnog pomerača, ne samo da ne štedi, već, s obzirom da zahteva ugradnju dodatnog multipleksera, povećava utrošak hardvera (Sl. 5.3(h)). Na osnovu ovih primera, vidi se kako treba ostvariti drugi glavni zadatak u sintezi staze podataka koji se sastoji u kombinovanju ili grupisanju operatora (merging ili grouping operators) i projektovanju funkcionalnih jedinica od kojih će svaka obavljati sve operacije iz jedne grupe, a sve sa ciljem da se minimizuje zadata projektantska metrika, kao što je, na primer, površina koju staza podataka zauzima na čipu, broj gejtova ili tranzistora, ili ukupan broj funkcionalnih jedinica. Ovaj zadatak obično se naziva dodela funkcionalnih jedinica (functional unit sharing).

U izvesnim slučajevima, primarni cilj sinteze može biti minimizovanje veza u stazi podataka. Veze se koriste za prenos podataka između funkcionalnih jedinca i memorijskih kola (registara, registarskih polja ili RAM-a). Rešenje kod koga se svaki pojedinačni prenos podataka ostvaruje preko zasebne, direktne veze između odgovarajuće funkcionalne jedinice i memorijskog kola, bilo bi izrazito neefikasno, s obzirom da bi se takva veza koristila samo u pojedinim stanjima, tj. samo onda kada se obavlja konkretna operacija. Iz tog razloga, treba razmotriti mogućnost grupisanja veza u magistrale, preko kojih bi se u različitim stanjima obavljao prenos podataka između različitih funkcionalnih jedinica i memorijskih kola. Primera radi, razmotrimo veze u stazi podataka SRA kola koja koristi jedan registar po promenljivoj i funkcionalne jedinice koje mogu da obavljaju samo jednu operaciju. Način sprege između funkcionalnih jedinica i registara, kod takve staze podataka, ilustrovan je tabelom povezanosti sa Sl. 5.4. U ovoj tabeli, vrste odgovaraju funkcionalnim jedinicama, a kolone registrima. Simbol I u preseku kolone i vrste ukazuje da u stazi podataka postoji veza koja služi za prenos podatka sa izlaza tog registra do ulaza u tu funkcionalnu jedinicu. Slično, simbol O ukazuje na postojanje veze koja povezuje ulaz registra i izlaz funkcionalne jedinice. Tabela povezanosti se lako popunjava na osnovu operacija navedenih u ASM dijagramu. Na primer, operacija t1=|a|, koja se obavlja u stanju s1 uz pomoć jedinice abs1, zahteva prenos tipa I (ulaznu veza) iz registra a do jedinice abs1 i prenos tipa O (izlazna veza) od jedinice abs1 do registra t1. Slično, operacija x=max(t1, t2) iz stanja s2 koja se obavlja u jedinici max, zahteva da između registara t1 i t2, sa jedne i jedinice max, sa druge stane, postoje dve ulazne veze, i da između jedinice max i registra x postoji jedna izlazna veza. Kao što se može uočiti sa Sl. 5.4, SRA kolo zahteva 14 ulaznih i 9 izlaznih veza, što čini ukupno 23 veze.

a b t1 t2 x y t3 t4 t5 t6 t7

abs1 I O abs2 I O min I I O max I I I O I O >>3 I O >>1 I O

- I I O + I I O

Sl. 5.4 Tabela povezanosti.

Page 193: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Sinteza staze podataka

193

Međutim, od svih 23 veza, u toku jednog stanja koristi se najviše nekoliko. Na osnovu polaznog ASM dijagrama zaključujemo da se najveći broj veza koristi u stanju s2. U ovom stanju izvršavaju se dve operacije (max i min) od kojih svaka zahteva po dva ulazna operanda, što traži 4 ulazne i 2 izlazne veze, tj. ukupno 6 veza koje su aktivne u isto vreme (u toku istog stanja). S obzirom da je u svim ostalim stanjima broj aktivnih veza manji od 6, zaključujemo da svi prenosi u stazi podataka mogu biti ostvareni uz pomoć 6 magistrala.

Na osnovu prethodnog primera, uočava se da se treći glavni zadatak sinteze staze podataka sastoji u kombinovanju ili grupisanju veza (merging ili grouping connections) i dodeli po jedne magistrale svakoj grupi na način koji će minimizovati ukupnu cenu povezivanja. Ukažimo da cena povezivanja uključuje cenu drajvera magistrale, kojima se jedinice povezuju na magistralu, i cenu ulaznih multipleksera, koji su potrebni svuda tamo gde se ulaz neke funkcionalne jedinice ili memorijske komponente povezuje sa dve ili više magistrala.

5.1 Dodela registara

Kao što smo već naglasili, jedan od glavnih zadataka u optimizaciji staze podataka sastoji se u grupisanju promenljivih tako da one mogu da dele zajedničke registre ili memorijske lokacije. Grupisanjem promenljiv smanjuje se potreban broj i veličina memorijskih komponenti, što indirektno smanjuje površinu silicijuma, a time i cenu ASIC kola. S obzirom da promenljive mogu da dele isti registar samo ako se njihova vremena života ne preklapaju, postupak grupisanja promenljivih uvek započinje određivanjem vremena života promenljivih iz polaznog ASM dijagram.

Vreme života promenljive definiše se kao skup stanja u kojima je promenljiva živa, a uključuje: (a) stanje nakon stanja u toku kojeg je promenljivoj dodeljena nova vrednost (stanje upisa); (b) svako stanje u toku koga se promenljiva koristi na desnoj strani naredbe registarskog prenosa (stanje čitanja); i (c) sva stanja na putu između stanja upisa i stanja čitanja. Naglasimo da se svakoj promenljivoj može više puta dodeljivati vrednost i da se svaka dodeljena vrednost može koristiti po nekoliko puta. Nakon što su vremena života promenljivih određena, moguće je grupisati promenljive čija se vremena života ne preklapaju i svakoj grupi dodeliti po jedan registar.

Cilj grupisanja promenljivih je minimizovanje potrebnog broja registara. To znači da treba težiti podeli skupa promenljivih na što je moguće manji broj grupa, ali tako da svaka promenljiva pripada samo jednoj grupi. Ovaj cilj se može postići pomoću algoritma ¨leve ivice¨ (left-edge algorithm). Kao što se može videti sa Sl. 5.5, algoritam počinje kreiranjem prioritetne liste promenljivih, u kojoj se promenljive sortirane na osnovu rednog broja stanja upisa. Ako dve promenljive imaju isto stanje upisa, viši prioritet dobija promenljiva čiji je život duži. Ako promenljive imaju isto stanje upisa i isto vreme života, prioritet se dodeljuje slučajno. Nakon što su promenljive sortirane, algoritam ulazi u petlju, gde se kao prvi korak instancira (uvodi) novi registar. Ovom registru se najpre dodeljuje promenljiva sa vrha liste. Zatim se redom ispituju promenljive iz sortirane liste i svaka promenljiva čije se vreme života ne preklapa sa vremenima života promenljivih prethodno dodeljenih tom registru, se izbacuje iz liste i dodeljuje registru. Nakon što je ispitana i poslednja promenljiva iz liste, dodela promenljivih tom registru je završena. Ako je u toj tački, lista prazna (sve promenljive su dodeljene), algoritam završava sa radom; inače, algoritam instancira novi registar i ponavlja opisani postupak.

Princip rada algoritma ¨leve ivice¨ objasnićemo na primeru dodele registra kod staze podataka SRA kola. Prvo, sortiraju se promenljive na osnovu stanja upisa i vremena života, kao što je prikazano na Sl. 5.6(a). Simboli X ukazuju na stanja u kojima su pojedine promenljive žive. Najviši prioritet imaju promenljive a i b, jer se najranije javljaju u ASM dijagramu, tj. u stanju s1. Zatim slede t1 i t2 (stanje s2), a onda x i y (stanje s3), pri čemu x, zbog dužeg života ima prednost, i td.. Nakon što smo formirali prioritetnu listu promenljivih ulazimo u petlju, gde u svakoj iteraciji uvodimo jedan novi registar i dodeljujemo mu promenljive. Neka je prvi uvedeni registar R1. Ovom registru se dodeljuje promenljiva a, kao prva u listi, zatim promenljiva t1, kao prva promenljiva nakon promenljive a čije se vreme života ne preklapa sa vremenom života promenljive a. Registar R1, takođe, dodeljuje se promenljivoj x, jer se njen životni vek (stanja s2 do s6) ne

Sl. 5.5 Algoritam ¨leve ivice¨.

Page 194: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

194

preklapa sa životnim vekom ni jedne promenljive prethodno dodeljene istom registru. Konačno, u grupu promenljivih koje se dodeljuju registru R1 ulazi promenljiva t7, čije vreme života obuhvata samo stanje s7 – koje ne pokriva ni jedna od promenljivih a, t1 i x. Na ovaj način, formirali smo grupu od četiri promenljive, a, t1, x i t7. čija se vremena života ne preklapaju i koje zbog toga mogu da dele isti registar (R1). Dodeljene promenljive se odstranjuju iz prioritetne liste, instancira se novi registar (R2), a opisani postupak dodele ponavlja se na identičan način na novu listu (Sl. 5.6(b)). To rezultuje u dodeli promenljivih b, t2, y, t4 i t6 registru R2. Konačno, lista promenljivih postaje prazna nakon treće iteracije u kojoj se registru R3 dodeljuju promenljive t3 i t5, preostale nakon druge iteracije. Na osnovu izvršene dodele projektuje se staza podataka SRA kola koju čine tri registra, kako je to prikazano na Sl. 5.7.

Iteracija I Iteracija II Iteracija III

s1 s2 s3 s4 s5 s6 s7 s1 s2 s3 s4 s5 s6 s7 s1 s2 s3 s4 s5 s6 s7

a X b X t3 X b X t2 X t5 X t1 X y X t2 X t4 X X x X X X X t3 X y X t5 X t3 X t6 X t4 X X t5 X t6 X t7 X

(a) R1=[a, t1, x, t7] (b) R2=[b, t2, y, t4, t6] (c) R3=[t3, t5]

Sl. 5.6 Prioritetna lista promenljivih.

Način na koji su stazi podataka sa Sl. 5.7 povezani registri, funkcionalne jedinice i U⁄I portovi, direktno sledi na osnovu načina na koji su registrima dodeljene promenljive. Na primer, registru R1 dodeljene su promenljive a, t1, x i t7. Vrednost promenljive a se uzima sa ulaznog porta Ul1; vrednost promenljive t1 je rezultat operacije t1=|a| i dobija sa na izlazu prve od dve funkcionalne jedinice koje izračunavaju apsolutnu vrednosti; vrednost promenljive x je rezultat operacije max(t1, t2) koja se obavlja u jedinici max; ista funkcionalna jedinica generiše vrednost za promenljivu t7 (t7=max(t6, x)). Pošto vrednosti za promenljive dodeljene registru R1 dolaze iz tri različita izvora (ulazni port Ul1, i izlazi jedinica |a| i max) neophodan je multiplekser za izbor vrednosti koja će biti upisana u R1.

Multiplekser

R1

|a| |b| min max + - >>1 >>3

Multiplekser

R2

Multiplekser

R3

Ul1 Ul2

Izl

Sl. 5.7 Staza podataka SRA kola generisana algoritmom ¨leve ivice¨.

Kao što smo već ranije ukazali, broj registara u stazi podataka SRA kola ne može biti manji od tri. U tom smislu, rešenje dobijeno primenom algoritma ¨leve-ivice¨ je optimalno. Međutim, treba naglasiti da dobijeno rešenje nije jedina moguća dodela koja zahteva tri registra, već postoje i drugačija, alternativna grupisanja

Page 195: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Sinteza staze podataka

195

promenljivih na tri razdvojene grupe. Svaka takva, alternativna dodela rezultovaće u drugačijoj strukturi staze podataka, u pogledu načina na koji su U⁄I portovi, funkcionalne jedinice i registari međusobno povezani. To nam daje mogućnost da bez narušavanja optimalnosti rešenja, u pogledu broja registara, pokušamo da optimizujemo neku drugu projektantsku metriku, kao što je cena povezivanja. Cena povezivanja U⁄I portova, registara i funkcionalnih jedinica u stazu podataka se može oceniti prema ukupnom broju ulaza u multipleksere koje je neophodno ugraditi kako bi se regulisao upis u registre. Na primer, za stazu podataka sa Sl. 5.7 ukupan broj ulaza u multipleksere (a time i cena povezivanja) je 10. Što je ova vrednost manja, to će broj veza u stazi podataka kao i broj gejtova potrebnih za realizaciju multipleksera biti manji.

Algoritam koji pored broja registara minimizuje i cenu povezivanja, zasniva se na davanju prednosti, tj. prioriteta, udruživanju određenih promenljivih. Prioritet imaju: (a) one dve promenljive koje se koriste kao levi ili desni operandi za isti tip operatora; i (b) promenljive koje se generišu od strane istog tipa operatora. Udruživanje promenljivih koje zadovoljavaju jedan od navedenih uslova može potencijalno da dovede do uštede jednog ili više multiplekserskih ulaza. Ovakav princip dodele registara ilustrovan je na Sl. 5.8 za slučaj kada se dve naredbe registarskog prenosa (x=a+b i y=c+d) obavljaju u različitim stanjima (si i sj), nad različitim operandima (a, b, c i d) i pri tome dodeljuju izračunate vrednosti različitim promenljivama (x i y). Ako se usvoji da se oba sabiranja mogu izvršiti u istoj funkcionalnoj jedinici, grupisanjem odgovarajućih operanada i rezultata iz dve operacije sabiranja može se postići ušteda u broju multiplekserskih ulaza. Na primer, pretpostavimo da dodela zasebnog registra svakoj promenljivoj (nema grupisanja promenljivih) rezultuje u rešenju koje je prikazano na Sl. 5.8(b), kod koga je broj multiplekserskih ulaza 10. (Multiplekserski ulazi koji na Sl. 5.8(b) i Sl. 5.8(c) nisu povezani koriste se za prenos podataka koji su rezultat nekih drugih operacija iz delimično prikazanog ASM dijagrama sa Sl. 5.8(a)). Međutim, ako se kombinuju promenljive a sa c, b sa d i x sa y, i svakom paru dodeli jedan registar, kao što je prikazano na Sl. 5.8(c), broj multiplekserskih ulaza smanjiće se za tri.

x = a + b

y = c + d

.

.

.

.

.

.

.

.

.

si

sj

a c b d

Multiplekser Multiplekser

+

Multiplekser Multiplekser

x y

a,c b,d

Multiplekser Multiplekser

+

Multiplekser

x,y

(a) (b) (c)

m1m2

m3 m4

Sl. 5.8 Grupisanje promenljivih sa zajedničkim izvorima i odredištima: (a) delimični ASM dijagram; (b) staza podataka kod koje nije izvršeno grupisanje promenljivih; (c) staza podataka kod koje je izvršeno grupisanje

promenljivih.

U opštem slučaju, ako se n promenljivih koristi kao izvorište ili odredište istom operatoru ili funkcionalnoj jedinici, tada se može ostvariti potencijalna ušteda od n-1 multiplekserskih ulaza ako se svih n promenljivih dele istom registru. U nastavku, razmotrićemo novi algoritam za dodelu registara čiji je cilj da osim minimizovanja broja registara ostvari i što je moguće veću uštedu u broju multiplekserskih ulaza. Za razliku od algoritma leve ivice koji barata prioritetnom listom promenljivih, algoritam, koji će biti prezentovan, koristi graf za predstavljanje promenljivih i zavisnosti između njih. Korišćeni graf se zove graf kompatabilnosti promenljivih (ili, samo, graf kompatabilnosti). Svaki čvor u ovom grafu odgovara jednoj promenljivoj, a svaka grana između dva čvora ukazuje da li su ta dva čvora kompatabilna ili nekompatabilna, u smislu da li odgovarajuće promenljive mogu deliti isti registar ili ne. Razlikuju se dva tipa grana u grafu: (a) nekompatabilna grana (predstavljena isprekidanom linijom) povezuje čvorove (promenljive) čija se vremena života preklapaju i koji iz tog razloga ne mogu biti udruženi, (b) prioritetna grana (predstavljena punom linijom) povezuje čvorove (promenljive) čija se vremena života ne preklapaju i pri tome se koriste kao izvorišta ili odredišta iste funkcionalne jedinice. Svakoj prioritetnoj grani pridružuje se težina koja ukazuje na broj multiplekserskih ulaza koji se mogu uštedeti ako se čvorovima povezanim tom granom dodeli isti registar. Prioritetna težina je oblika s⁄d, gde s odgovara broju različitih funkcionalnih jedinica koje koriste oba čvora za leve ili desne operande, a d odgovara broju različitih funkcionalnih jedinica koje generišu rezultate za oba čvora.

Page 196: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

196

Promenljive koje u grafu kompatabilnosti nisu spojene granom su takođe kompatabilne, u smislu da se mogu udružiti, ali se njihovim kombinovanjem ne može uštedeti na broju multiplekserskih ulaza.

U nastavku će biti opisan algoritam podele grafa (graph-partitionnig algorithm) koji kombinuje kompatabilne čvorove u superčvorove sve dok svi čvorovi u grafu ne postanu nekompatabilni. Preciznije, algoritam uvek bira dva čvora povezana prioritetnom granom nejvišeg prioritet i od njih kreira superčvor. Nakon toga, sve grane unutar superčvora se brišu, a kreiraju se nove grane između superčvora i ostalih čvorova. Algoritam kreira nekompatabilnu granu ka bilo kom čvoru koji je nekompatabilan sa najmanje jednim čvorom u superčvoru; odnosno, kreira prioritetnu granu ka bilo kom čvoru koji se koristi kao zajedničko izvorište ili odredište sa najmanje jednim čvorom u superčvoru, a koji je kompatabilan sa svim čvorovima u superčvoru. Težina prioritetne grane se izračunava kao i za granu između dva ¨prosta¨ čvora. Opisana procedura je prikazana na Sl. 5.9.

Ako algoritam podele grafa primenimo stazu podataka SRA kola, dobićemo grupisanje promenljivih koje se neznatno razlikuje od grupisanja koga daje algoritam leve ivice. Prvo, neophodno je kreirati graf kompatabilnosti promenljivih, kao što je prikazano na Sl. 5.10(a). Naglasimo da je svaki par promenljivih čija se vremena života preklapaju povezan isprekidanom linijom, tj. nekompatabilnom granom, što ukazuje da se te dve promenljive ne mogu kombinovati. Da bi smo kreirali prioritetne grane, koje ukazuju na kompatabilnosti promenljivih, usvojićemo da raspolažemo jednostavnim bibliotečkim kolima sa Sl. 5.3 u koje spadaju jedinice za izračunavanje apsolutne vrednosti, minimuma, maksimuma, pomeranje, zbira i razlike, kao i jedinice koje su sposobne da obavljaju kombinovane operacija, kao što su sabirač⁄oduzimač, i min⁄max jedinica. Uočimo da se operator max koristi dva puta u ASM dijagramu SRA kola i to u operaciji x=max(t1, t2), iz stanja s2, i operaciji t7=max(t6, x), iz stanja s6. Dakle, kao ulazi u funkcionalnu jedinicu max koriste se dva para promenljivih (t1, t2) i (t6, x), pri čemu je bilo koja promenljiva iz jednog kompatabilna sa bilo kojom promenljivom iz drugog para. Ako bi se za smeštanje ovih promenljivih koristili posebni registri, ispred oba ulaza funkcionalne jedinice max trebalo bi ugraditi dvo-ulazni multiplekser. Međutim, ako promenljive t1 i t6 dele isti registar i pri tome se obe koriste kao levi (desni) operandi jedinice max, onda multiplekser ispred levog (desnog) ulaza jedinice max više nije potreban, jer ovaj ulaz može biti direktno spojen sa izlazom odgovarajućeg registra. Napomenimo da bi se ušteda ovog tipa javila i kod bilo koje druge funkcionalne jedinice koja kao ulazne operande koristi promenljive t1 i t6. Međutim, kako je jedinica max jedina kod koje se t1 i t6 koriste kao ulazi, parametar s pridružen grani između čvorova t1 i t6 ima vrednost s=1. Iz sličnih razloga, koji se tiču ulaznih operanada jedinice max u grafu kompatabilnosti sa Sl. 5.10(a) postoje prioritetne grane između čvorova t1 i x, kao i između t2 i čvorova t6 i x. Sa druge strane, jedinica max generiše nove vrednosti za dve međusobno kompatabilne promenljive: x (u stanju s2) i t7 (u stanju s6). Ako se ove dve promenljive dodele različitim registrima, Ri i Rj, tada će izlaz max jedinice biti u vezi sa jednim ulazom u multiplekser koji su postavljeni ispred registra Ri i jednim ulazom u multiplekser ispred registra Rj. Međutim, ako promenljive x i t7 dele isti registar, Rk, tada će izlaz jedinice max biti u vezi samo sa multiplekserom koji je eventualno postavljen ispred registra Rk. Dakle, javiće se ušteda od jednog multiplekserskog ulaza. Ista ušteda bi se javila i za bilo koju drugu funkcionalnu jedinicu koja bi eventualno generisala rezultat za obe ove promenljive. Međutim, kako je to slučaj samo kod jedinice max, parametar d pridružen prioritetnoj grani između čvorova x i t4 ima vrednost d=1. Osim pomenutih, prioritetne grane postoje i između promenljivih t3 i t5, kao i t5 i t6 jer su to mogući ulazi i izlazi jedinice za sabiranje⁄oduzimanje. Konačno, prioritetna grana između promenljivih y i t7 postoji zato što su ove dve promenljive mogući izlazi jedinice min⁄max.

Kreirati graf kompatibilnostipromenljivih

Pocetak

Kombinovati cvorove sanajvišim prioritetom

Modifikovati grafkompatibilnosti

Svi cvorovi sunekompatiblini

Kraj

Da

Ne

Sl. 5.9 Algoritam podele grafa.

Page 197: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Sinteza staze podataka

197

Sl. 5.10 Algoritam podele grafa primenjen na SRA problem.

Nakon što smo kreirali inicijalni graf kompatabilnosti, počinjemo sa grupisanjem promenljivih i kreiranjem superčvorova. U konkretnom slučaju, sve prioritetne grane imaju istu težinu, tako da se najpre biraju oni čvorovi čije grupisanje neće odstraniti iz grafa neku drugu prioritetnu granu. To znači da, na primer, kombinovanje promenljivih t3 i t5 ima prednost nad kombinovanjem promenljivih t1 i x. Naime, ako bi smo kombinovali promenljive t1 i x, to bi dovelo do odstranjivanja iz grafa prioritetne grane (t2, x) jer je čvor t2 spojen nekompatabilnom granom sa čvorem t1. Odstranjivanje prioritetne grane, na ovakav način, nije poželjno, jer se time ukida mogućnost da prilikom nekog narednog kombinovanja upravo ta prioritetna grana iskoristi za dodatnu uštedu. Sa druge strane, kombinovanje promenljivih t3 i t5 ne poništava ni jednu drugu prioritetnu granu, jer u grafu ne postoji čvor koji je sa jednim od ovih čvorova spojen nekompatabilnom, a sa drugim prioritetnom granom. Dakle, kombinovaćemo promenljive t3, t5 i t6, kako bi smo ostvarili moguću uštedu od dva multiplekserska ulaza. Time se kreira superčvor [t3, t5, t6] kao što se vidi na Sl. 5.10(b). Zatim, biramo čvor koji ima najveći broj prioritetnih grana – konkretno to je čvor x – i udružujemo ga sa t1, a onda i sa t7 (Sl. 5.10(c)). Naglasimo da udruživanje čvorova x, t1 i t7, odstranjuje dve prioritetne grane iz grafa kompatabalinosti, koje se nalaze između y i t7 (zato što je y nekompatabilan sa x) i između t2 i x (zato što je t2 nekompatabilan sa t1). Sada, možemo, najpre čvor y, a zatim i čvor t2 pripojiti superčvoru [t3, t5, t6], što daje graf kompatabilnosti sa Sl. 5.10(d). Konačno, jednu od promenljivih a i b, pridodajemo superčvoru [t2, y, t3, t5, t6], a drugu superčvoru [t1, x, t7]. U rezultujućem grafu kompatabilnosti (Sl. 5.10(e)) više nema kompatabilnih čvorova i algoritam završava sa radnom. U skladu sa konačnim grafom kompatabilnosti, zaključujemo da su za sintezu staze podataka SRA kola, potrebna tri registra, R1, R2 i R3, kojima su promenljive dodeljene na sledeći način: R1=[a,t1,x, t7], R2=[b,t2, y, t3, t5, t6] i R3=[t4].

Da bi smo izvršili poređenje cena povezivanja staza podataka generisanih algoritmom leve ivice i algoritmom podele grafa kompatabilnosti koristićemo istih osam funkcionalnih jedinica koje smo prethodno koristili za sintezu staze podataka na bazi algoritma leve ivice (vidi Sl. 5.7). Na Sl. 5.11 prikazano je rešenje staze podataka SRA kola kod koga je dodela registara obavljena algoritmom podele grafa kompatabilnosti. Kao što se vidi sa Sl. 5.11, ukupan broj multiplekserskih ulaza je 9, što je za jedan multiplekserski ulaz manje u odnosu na rešenje sa Sl. 5.7. Napomenimo da se značajnije smanjenje cene povezivanja može postići ako se u rešenju sa Sl. 5.11 umesto jedno-funkcionalnih koriste više-funkcionalne jedinice. Logično je očekivati da će manji broj jedinica zahtevati i manji broj veza. Ovo zapažanje sugeriše da se dodatno smanjenje cene resursa u stazi podataka može postići grupisanjem operacija u više-funkcionalne jedinice, što je upravo tema sledećeg odeljka.

Page 198: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

198

Multiplekser

R1

|a| |b| min max + - >>1 >>3

Multiplekser

R2 R3

Ul1 Ul2

Izl

Sl. 5.11 Dodela registara generisana algoritmom podele grafa kompatabilnosti promenljivih.

5.2 Dodela funkcionalnih jedinica

Glavni cilj aktivnosti dodele funcijskih jedinica ili kombinovanja operatora jeste minimizovanje broja funkcionalnih jedinica u stazi podataka. Slično kao i kod dodele registara, dodela funkcionalnih jedinica omogućena je činjenicom da u okviru jednog stanja, staza podataka, gotovo nikada, ne obavlja sve tipove operacija. Shodno tome, slični operatori se mogu grupisati u više-funkcionalne jedinice, koja će se češće koristiti. U nekim slučajevima, grupisanje operacija na ovaj način neće rezultovati u smanjenju cene staze podataka. Naime, operatori koji nisu srodni obično zahtevaju strukturno različita rešenja, tako da njihovo grupisanje najčešće dovodi do toga da se ne ostvare dobici. Međutim, u velikom broju slučajeva, grupisanje operatora ipak dovodi do smanjenja cene koja obično nije zanemarljiva. Princip grupisanja operatora ilustrovan je na Sl. 5.12.

x = a + b

y = c - d

.

.

.

.

.

.

.

.

.

si

sj

a b c d

+

x y

Multiplekser Multiplekser

+/-

(a) Parcijalni ASMdijagram

(b) Resenje kod koga nijeizvrsena dodela

(c) Resenje kod koga jeizvrsena dodela

-

a c b d

x y

Sl. 5.12 Dodela funkcionalnih jedinica.

U primeru sa Sl. 5.12, staza podataka obavlja dve različite operacije, sabiranje i oduzimanje, nad različitim operandima u različitim stanjima (Sl. 5.12(a)). Za slučaj kada se operacije sabiranja i oduzimanja implementiraju posebnim funkcionalnim jedinicama, dobija se rešenje prikazano na Sl. 5.12(b). Ista funkcionalnost se može dobiti ako se koristi jedna jedinica za sabiranje⁄oduzimanje i dva multipleksera (Sl. 5.12(c)). Jasno je da je drugo rešenje bolje onda kada je cena kola za sabiranje⁄oduzimanje i dva multipleksera niža od cene kola za sabiranje i oduzimanje zajedno. Znači, namera je razvoj algoritma koji će objedinjavati operatore u više-funkcionalne jedinice tako da je ukupna cena svih više-funkcionalnih jedinica i potrebnih multipleksera minimalna. Za tu namenu, koristićemo algoritam podele grafa, sličan onome koji je opisan u odeljku 5.1. Algoritam će biti opisan na primeru grupisanja operatora za ASM dijagram SRA kola sa Sl. 5.1. Usvojićemo da raspolažemo bibliotekom

Page 199: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Sinteza staze podataka

199

jednostavnih komponenata (Sl. 5.3) i bibliotekom složenih komponenata (Sl. 5.13). Biblioteka složenih komponenata sa Sl. 5.13 sadrži nekoliko više-funkcionalnih jedinica od kojih svaka može da izračunava tri ili veći broj od sledećih operacija: apsolutna vrednost, minimum, maksimum, sabiranje i oduzimanje. Svaka od ovih jedinica koristi sabirač, jedan ili dva multipleksera, AND i⁄ili EX-OR logičke nizove i nekoliko upravljačkih gejtova. Radi pojednostavljivanja, cena gejtova je izostavljena prilikom određivanja cena jedinica.

Sabirac

Mux1 0

Mux1 0

c1

c0

Bit znaka

a b

(a) Jedinica za izracunavanje minimuma,maksimuma i apsolutne vrednosti

Sabirac

Mux1 0

Mux1 0

c1

c0

Bit znaka

a b

c0 c1 OPERACIJA0 0 Sabiranje0 1 Minimum1 0 Oduzimanje1 1 Maksimum

(a) Jedinica za izracunavanje zbira, razlike,minimuma, maksimuma

c0 c1 OPERACIJA0 0 Apsolutna0 1 Minimum1 1 Maksimu

Sabirac

Mux1 0

c1

c0

Bit znaka

a b

(c) Jedinica za izracunavanje zbira, razlike iapsolutne vrednosti

c0 c1 c2 OPERACIJA0 0 1 Sabiranje1 0 0 Apsolutna1 0 1 Oduzimanje1 1 0 Minimum1 1 1 Maksimum

Sabirac

Mux1 0

Mux1 0c1

c0

Bit znaka

a b

(d) Jedinica za izracunavanje zbira, razlike,minimuma, maksimuma i apsolutne vrednosti

c2

c0 c1 OPERACIJA1 0 Sabiranje0 1 Apsolutna1 1 Oduzimanje

Sl. 5.13 Biblioteka složenih komponenti.

Grupisanju operanada koji se javljaju u ASM dijagramu prethodi konstrukcija grafa kompatabilnosti. Ovaj graf ukazuje koji operandi se mogu grupisati, a koji ne. Svaki čvor u grafu kompatabilnosti predstavlja jedan tip operatora iz ASM dijagrama, mada u grafu može postojati više od jednog čvora za isti operatorski tip. Po pravilu, broj čvorova koji odgovaraju istom operatorskom tipu biće jednak najvećem broju pojavljivanja tog operatorskog tipa u nekom stanju. Kako bi se ukazalo na kompatabilnosti različitih operatora, u graf se umeću prioritetne grane i nekompatabilne grane. Kao što se i očekuje, nekompatabilna grane povezuju čvorove (operatore) koji se koriste u istom stanji i iz tog razloga se ne mogu grupisati. Nasuprot tome, prioritetne grane ukazuju na čvorove koje je poželjno kombinovati, prvenstveno zbog sličnosti u konstrukciji odgovarajućih funkcionalnih jedinica ili zbog značajnog smanjenja cene povezivanja. U nastavku, obe metrike, tj. cena hardvera i cena povezivanja, biće uzete u obzir prilikom grupisanja operatora.

Graf kompatabilnosti za SRA kolo prikazan je na Sl. 5.14(a). U graf nisu uključeni operatori pomeranja (>>1, >>3) zbog toga što je njihova pojedinačna cena implementacije nula, te stoga njihovo objedinjavanje sa nekim dugim operatorima može samo da poveća utrošak hardvera. Kao što se vidi sa Sl. 5.14(a), graf kompatabilnosti sadrži dva čvora za operand koji izračunava apsolutnu vrednost. To je zato što u okviru stanja s1 postoje dve operacije ovog tipa i koje zbog toga moraju biti obavljene u paraleli, na različitim funkcionalnim

Page 200: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

200

jedinicama. U konačnom obliku, graf kompatabilnosti sadrži šest čvorova i dve nekompatabilne grane: jedna povezuje operatore apsolutnih vrednosti, jer se oni koriste u istom stanju, a druga operatore minimuma i maksimuma, iz istog razloga.

Za sintezu staze podataka SRA kola uz pomoć jedno-funkcionalnih jedinica potrebne su: dve jedinice za određivanje apsolutne vrednosti i po jedna jedinica za maksimum, minimum, sabiranje i oduzimanje. Kao što se vidi sa Sl. 5.14(b) ukupna cena ovih jedinica je pet invertorskih logičkih nizova, šest sabirača i četiri multipleksera.

Sl. 5-1 Kombinovanje operatora kod implementacije SRA

kola.

Sl. 5.14 Kombinovanje operatora kodimplementacije SRA kola.

Kombinovanjem operatora u grafu kompatabilnosti moguće je sniziti cenu staze podataka na nekoliko različitih načina. Dva načina prikazana su na Sl. 5.14(c) i Sl. 5.14(e), a odgovarajuće cene rezultujućih staza podataka na Sl. 5.14(d) i Sl. 5.14(f). Uočimo da oba rešenja zahtevaju ugradnju: dva AND logička niza, jedan invertorski logički niz, jedan EX-OR logički niz, dva sabirača i dva multipleksera, što predstavlja nižu cenu u odnosu na polazno rešenje zasnovano na jedno-funkcijskim jedinicama. Staze podataka koje odgovaraju grupisanju operatora sa Sl. 5.14(c) i Sl. 5.14(e), prikazane su na Sl. 5.15. Kao što se može videti sa Sl. 5.15, oba rešenja zahtevaju po devet multiplekserskih ulaza, slično kao i rešenje staze podataka sa Sl. 5.11. Sa druge strane, rešenja sa Sl. 5.15 imaju značajno nižu cenu funkcijskih jedinica, pa su u celini jeftinija od rešenja sa Sl. 5.11.

Komponenta

Jedinica AND logika

Invertor logika

EX-OR logika Sabirac Multiplekser

|a| 1 1 1 |b| 1 1 1

min 1 1 1 max 1 1 1

+ 1 - 1 1

Ukupno 5 6 4 (b) Tabela cene

Komponenta

Jedinica AND logika

Invertor logika

EX-OR logika Sabirac Multiplekser

|a|/min 1 1 1 2 |b|/max/+/- 1 1 1 2

Ukupno 2 1 1 2 4 (d) Tabela cene

Komponenta

Jedinica AND logika

Invertor logika

EX-OR logika Sabirac Multiplekser

|a|/min/+ 1 1 1 2 |b|/max/- 1 1 1 2 Ukupno 2 1 1 2 4

(f) Tabela cene

|a|

min

|b|

max

+ -

|a|

min

|b|

max

+ -

|a|

min

|b|

max

+ -

(a) Graf kompatibilnosti

(b) Resenje I

(c) Resenje II

Page 201: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Sinteza staze podataka

201

Sl. 5.15 Alternativna rešenja staze podataka.

Cena staze podataka se dalje može smanjiti ako se tokom kombinovanja operatora, kao sekundarni kriterijum, minimizuje cena povezivanja. U tom cilju koriste se prioritetne grane u grafu kompatabilnosti, na sličan način kao prilikom kombinovanja promenljivih. Kao i kod kombinovanja promenljivih, težine prioritetnih grana određuju na osnovu broja zajedničkih izvorišta i zajedničkih odredišta, s tom razlikom što se sada izvorišta i odredišta ne odnose na promenljive, već na registre.

Da bi smo pokazali kako se određuju težine prioritetnih grana, razmotrimo delimični ASM dijagram sa Sl. 5.16(a), kod koga se operacije sabiranja i oduzimanja obavljaju u različitim stanjima nad različitim skupovima operanada, a rezultati se dodeljuju različitim promenljivama. Ako parovi promenljivih: a i c, b i d, i x i y dele iste registre, rešenje staze podataka koje koristi posebne funkcionalne jedinice za sabiranje i oduzimanje zahtevaće: četiri dvo-ulazna multipleksera i jedan tro-ulazni multiplekser sa ukupno 11 multiplekserskih ulaza (Sl. 5.16(b)). Sa druge strane, rešenje staze podataka koje koristi jedinstvenu funkcionalnu jedinicu za sabiranje⁄oduzimanje zahteva samo dva tro-ulazna multipleksera i jedan dvo-ulazni multiplekser sa ukupno 8 multiplekserskih ulaza, kao što je prikazano na Sl. 5.16(c). Drugim rečima, kombinovanje sabirača i oduzimača u jedinstveni sabirač⁄oduzimač rezultuje dobitkom od tri multiplekserska ulaza, jer sabirač i oduzimač imaju dva zajednička izvorišta i jedno zajedničko odredište. Opšte pravilo bi glasilo: grupisanje operatora koji imaju n zajedničkih izvorišta kao leve (desne) operande smanjuje broj multiplekserskih ulaza za n-1. Slično, grupisanje operatora koji imaju n zajedničkih odredišta smanjuje broj multiplekserskih ulaza za n-1. Imajući u vidu ova

Page 202: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

202

pravila, moguće je grupisati operatore na način koji će minimizovati ukupan broj multiplekserskih ulaza. To se postiže tako što se najviši prioritet prilikom izbora operatora za grupisanje daje onim operatorima koji su povezani prioritetnom granom i imaju najveći broj zajedničkih izvorišta i odredišta.

Sl. 5.16 Prioriteti kod kombinovanja jedinica.

Na Sl. 5.17(a) prikazan je graf kompatabilnosti sa Sl. 5.14(a) proširen prioritetnim granama. Svakoj prioritetnoj grani je pridružena težina oblika s⁄d, gde je s broj izvorišta, a d broj odredišta koji su zajednički za dva operanda povezana tom granom. Razmotrimo operatore ¨+¨ i ¨-¨ iz ASM dijagrama SRA kola. Ovi operandi se javljaju u operacijama t5=x-t3 (stanje s4) i t6=t4+t5 (stanje s5). S obzirom na način kako je izvršena dodela registara, zaključujemo da ove operacije imaju jedno zajedničko izvorište (desni operandi t3 i t5 dele registar R2) i jedno zajedničko odredište (rezultati obe operacije, t5 i t6, se upisuju u isti registar, R2). Znači, prioritetnoj grani između operanada (čvorova) ¨+¨ i ¨-¨ pridružuje se težina 1⁄1. Slično, grana između operatora min i ¨-¨ ima težinu 2⁄1, s obzirom da operatori min i ¨-¨ imaju dva zajednička izvorišta i jedno zajedničko odredište. Naime, levi operandi t1 i x dele registar R1, desni operandi, t2 i t3, dele registar R2, a rezultati, y i t5, registar R2.

Sl. 5.17 Podela grafa kompatabilnosti za staza podataka SRA kola sa R1=[a, t1, x, t7], R2=[b, t2, y, t3, t5, t6] i R3=[t4].

Page 203: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Sinteza staze podataka

203

Nakon što smo kreirali graf kompatabilnosti sa ubačenim prioritetnim granama, za grupisanje operatora u odgovarajuće funkcionalne jedinice možemo koristiti algoritam za podelu grafa sa Sl. 5.9. Shodno ovom algoritmu, najpre pokušavamo da grupišemo operande koji imaju sličnu arhitekturu, kao što su sabiranje i oduzimanje ili min i max. U opštem slučaju, grupisanje sličnih operanada daje najveće smanjenje cene. U slučaju SRA algoritma, operandi ¨+¨ i ¨-¨ predstavljaju prirodan izbor za inicijalno grupisanje. Graf kompatabilnosti koji se dobija nakon formiranja superčvora [+,-] prikazan je na Sl. 5.17(d). U sledećem koraku, superčvoru [+,-] pridodajemo čvor min, s obzirom da prioritetna grana koja povezuje superčvor i čvor min ima najveću težinu (2⁄1 = 2+1 = 3) od svih prioritetnih grana u grafu. Graf kompatabilnosti koji je rezultat ovog spajanja, prikazan je na Sl. 5.17(e). Od preostalih prioritetnih grana, grane sa najvećim prioritetom, 1⁄1, su grana između čvora |a| i čvora max, i grana između čvora |b| i superčvora [min,+,-]. Grupisanjem čvorova povezanih ovim granama dolazimo do konačne podele grafa kompatabilnosti, prikazane na Sl. 5.17(f).

Na osnovu konačnog grafa kompatabilnosti, u mogućnosti smo da sintetišemo stazu podataka SRA kola korišćenjem tri registara i četiri funkcionalne jedinice. Konačna dodela promenljivih i operatora registrima i funkcionalnim jedinicama prikazana je na Sl. 5.18(a), a struktura staze podataka na Sl. 5.18(b). Uočimo da dobijeno rešenje staze podataka zahteva samo sedam multiplekserskih ulaza, što je poboljšanje u odnosu na prethodno rešenje koje ima devet multiplekserskih ulaza.

R1 = [a, t1, x, t7]R2 = [b, t2, y, t3, t5, t6] R3 = [t4]

AU1 = [|b|/min/+/-]AU2 = [|a|/max]SH1 = [>>1]SH2 = [>>3]

(a) Dodela registara i funkcijskih jedinica

Multiplekser

R1

Multiplekser

R2 R3

[abs/max] [abs/min/+/-]>> 1 >> 3

Ul1 Ul2

Izl

Multiplekser

(b) Staza podataka

Sl. 5.18 Staza podataka SRA kola dobijena korišćenjem prioritetne podele.

5.3 Dodela magistrala

U prethodnim poglavljima pokazano je kako se promenljive i operatori grupišu i dodeljuju registrima i funkcionalnim jedinicama. Međutim, i nakon izvršene dodele, sinteza staze podataka nije završena, jer registre i funkcionalne jedinice treba međusobno povezati, tj. spojiti izlaze registara sa ulazima funkcionalnih jedinica i izlaze funkcionalnih jedinica sa ulazima registara. Izlazi registara i funkcionalnih jedinica se nazivaju izvorima, a njihovi ulazi odredištima veza. S obzirom da više veza može imati isto odredište, staza podataka često sadrži multipleksere koji treba da obezbede pravu povezanost u pravo vreme.

S obzirom da veze koje postoje u stazi podataka, obično, zauzimaju značajan deo površine na silicijumskom čipu, jedan od ciljeva sinteze staze podataka sastoji se u minimizovanju broja veza, što se postiže grupisanjem veza u magistrale. Slično kao kod grupisanja promenljivih i operatora, grupisanje veza se ostvaruje tako što se, najpre, sve one veze koje se ne koriste u isto vreme (u istom stanju) kombinuju u grupe, da bi se, zatim, svakoj grupi dodelila jedna magistrala. Svaki izvor veze iz jedne grupe spregnut je sa magistralom posredstvom tro-

Page 204: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

204

statičkog drajvera koji pobuđuje magistralu u onim stanjima u kojima taj izvor šalje podatak svom odredištu; u preostalim stanjima, veza između izvora i magistrale je raskinuta.

Tehnike za grupisanje veza slične su tehnikama koje se koriste za grupisanje promenljivih i operatora. Najpre se kreira tabele korišćenja veza, koja za svaku vezu ukazuje na stanja u kojima je ta veza u upotrebi. Zatim se na osnovu ove tabele kreira graf kompatabilnosti u kome svaki čvor predstavlja jednu vezu, dok grana između dva čvora ukazuje da li se ta dva čvora (veze) mogu kombinovati (prioritetna grana) ili ne (grana nekompatabilnosti). Dva čvora su povezana granom nekompatabilnosti ako odgovarajuće veze ne potiču iz istog izvora i koriste se u isto vreme. Suprotno, čvorovi se povezuju prioritetnim granama uvek kada odgovarajuće veze imaju isti izvor ili isto odredište. Nakon što je konstruisan graf kompatabilnosti, koristi se algoritam podele grafa, kako bi se obavilo grupisanje veza na način koji će maksimizovati broj prioritetnih grana obuhvaćenih grupama.

Na Sl. 5.19 prikazan je postupak grupisanje veza staze podataka SRA kola sa Sl. 5.18. Staza podataka sa Sl. 5.18(b), dopunjena novim detaljima ponovo je prikazana na Sl. 5.19(a). Polazeći od ASM dijagrama (Sl. 5.1(b)) i strukture staze podataka (Sl. 5.19(a)), najpre kreiramo tabelu korišćenja veza (Sl. 5.19(b)). U ovoj tabeli, simbol ¨X¨ se koristi da bi se za svaku vezu označila stanja u kojima se ta veza koristi. Uočimo da ova tabele sadrži kako ulazne veze (povezuju izlaze registara sa ulazima funkcionalnih jedinica) tako i izlazne veze (povezuju izlaze funkcionalnih jedinica sa ulazima odgovarajućih registara). Da bi postupak grupisanja veza bio lakši, korisno je razdvojiti ova dva tipa veza i grupisanje obaviti nezavisno za svaki tip. Ukoliko postupimo na ovaj način, dobićemo razdvojene ulazne i izlazne magistrale, što pojednostavljuje arhitekturu staze podataka.

U sledećem koraku, tabela korišćenja veza transformiše se u graf kompatabilnosti, tako što se svaka veza preslika na jedan čvor, a zatim se dodaju grane između čvorova. Na Sl. 5.19(c) i Sl. 5.19(d) prikazani su posebni grafovi kompatabilnosti za ulazne i izlazne magistrale. Uočimo da grane nekompatabilnosti postoje i između onih čvorova (veza) koji nisu električno povezani, ali se koriste u istom stanju. Na primer, na Sl. 5.19(b), ulazna veza B je nekompatabilna sa vezama C i D, veza F je nekompatabilna sa vezama C, D i E, i veza G sa vezom H. Takođe, dodate su prioritetne grane između čvorova koji imaju isto izvorište i odredište, što ukazuje, na primer, da veze A, C, D i H potiču iz istog registra R1, i da veze B, F i G potiču iz istog registra R2. Čvorovi D i E su takođe povezani prioritetnom granom, jer oba imaju isto odredište – levi ulaz funkcionalne jedinice, AU2. Na Sl. 5.19(d), na sličan način, određene su prioritetne grane za izlazne veze.

U ovom trenutku, kada su određene prioritetne grane i grane nekompatabilnosti, možemo pristupiti grupisanju čvorova, sa ciljem da odstranimo što veći broj grana nekompatabilnosti, a sačuvamo što veći broj prioritetnih grana. Kao što je prikazano na Sl. 5.19(e), optimalna podela ulazni veza je ona koja grupiše veze A, C, D, E i H u magistralu Bus1 i veze B, F i G u Bus2. Slično, izlazne veze treba grupisati tako da se veze I, K i M ostvaruju preko magistrale Bus3, a veze J, L i N preko magistrale Bus4. Konačno, na Sl. 5.19(f) je prikazana rezultujuća staza podataka SRA kola. Očigledno, korišćenje četiri magistrala umesto 14 direktnih veza, značajno smanjuje cenu povezivanja.

Page 205: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Sinteza staze podataka

205

Multiplekser

R1

Multiplekser

R2 R3

[abs/max] [abs/min/+/-]>> 1 >> 3

Ul1 Ul2

Izl

Multiplekser

(a) Staza podataka SRA kola

A

B C

D E

F G H

I JK L

A

B

C

D E

F

G

H

I

J

K

L

M

N

(c) Graf kompatibilnosti za ulazne grane

(d) Graf kompatibilnosti za izlazne grane

R1 R2 R3

[abs/max] [abs/min/+/-]

>> 3 >> 1

Ul1 Ul2

Bus1

Bus2

Bus3

Bus4

Izl(c) Staza podataka

zasnovana na magistralama

Bus1 = [A,C,D,E,H]Bus2 = [B,F,G]

Bus3 = [I,K,M]Bus4 = [J,L,N]

(e) Dodela magistrala

s0 s1 s2 s3 s4 s5 s6 s7

A X B X X C x X X D X X E X F X X X X G x H X I X X X J X x x X K X L X

M X N X

(b) Tabela koriscenja veza

Sl. 5.19 Grupisanje veza u stazi podataka SRA kola.

5.4 Grupisanje registara

U odeljku 5.1 opisane su procedure za grupisanje promenljivih kojima se postiže da više promenljivih dele isti registar. Kao što je naglašeno, promenljive mogu deliti isti registar pod uslovom da im se vremena života ne preklapaju, jer pod tim uslovom smeštanje vrednosti jedne promenljive u registar, gde se do tog trenutka čuvala vrednost neke druge promenljive, ne narušava ispravnost rada algoritma. Sledeći sličnu logiku, moguće je kombinovati ne samo promenljive u deljive registre, već i same registri u registarske fajlove. Registarski fajl je

Page 206: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

206

hardverska struktura koja se sastoji od dva ili više registara koji dele zajedničke ulazne i izlazne portove. Pojedinačnim registrima iz registarskog fajla se pristupa preko adrese. Grupisanjem registara u registarske fajlove smanjuje se broj registarskih portova u stazi podataka, a tako se indirektno smanjuje i cena povezivanja. Takođe, registarski fajlovi se odlikuju kompaktnom hardverskom strukturom, i zahtevaju manju površinu na silicijumskom čipu u odnosu na površinu koja bi bila zauzeta odgovarajućim brojem ¨izolovanih¨ registara. Međutim, neophodnost dekodiranja adrese registra prilikom pristupa registarskom fajlu, unosi dodatno kašnjenje i usporava prenos podataka. Ipak, imajući u vidu ostvarenu redukciju u smislu zamene mnoštva registara jednim registarskim fajlom, dodatno kašnjenje je obično prihvatljivo. Uslov da dva registra mogu biti smeštena u isti registarski fajl jeste da se vremena pristupa ovim registrima ne preklapaju, tj. da se nikada ne javlja situacija kada se u okviru istog stanja zahteva pristup više od jednom registru iz nekog registarskog fajla.

Za kombinovanje registara može se koristiti sličan pristup koji je prethodno opisan kada je razmatrano grupisanje promenljivih, operatora i veza. Na početku, kreira se tabela pristupa registara, na bazi koje se konstruiše graf kompatabilnosti. Konačno, primenom algoritma za podelu grafa, međusobno kompatabilni registri se grupišu u registarske fajlove. Pošto, u opštem slučaju, registarski fajl može imati više od jednog pristupnog porta, ograničenje prilikom grupisanja jeste da u toku bilo kog stanja ukupan broj zahteva za čitanjem i upisom registara iz neke grupe ne premašuje broj portova za čitanje i upis registarskog fajla kome je ova grupa dodeljena.

Na Sl. 5.20 ilustrovana je procedura grupisanja registara na primeru staze podataka SRA kola. Način na koji su promenljive dodeljene registrima prikazan je na Sl. 5.20(a). Najpre, kreirana je tabela pristupa registrima (Sl. 5.20(b)). U ovoj tabeli, svakom registru odgovara jedna vrsta, a svakom stanju jedna kolona. Prilikom tumačenja ove tabele, treba zamisliti da granična linija između dva stanja predstavlja rastuću ivicu taktnog signala koja upisuje podatke u registre. Prazan (¨beli¨) trougao, koji svojim vrhom dodiruje graničnu liniju ukazuje da će tom rastućom ivicom taktnog signala, novi podatak biti upisan u konkretni registar. ¨Crni¨ trougao, naslonjen jednom svojom ivicom na graničnu liniju ukazuje da se koristi u datom stanju odgovarajući registra čita. Drugim rečima, tabela pristupa registrima, govori kada se (u kojim stanjima) vrši upis u i čitanje iz svakog pojedinog registra.

R1 = [a, t1, x, t7]R2 = [b, t2, y, t3, t5, t6]R3 = [t4]

(a) Dodela registara

R1

R2

R3

s0 s1 s2 s3 s4 s5 s6 s7

(b) Tabela pristupa registrima

R1 R2

R3

(c) Graf kompatibilnosti

R1

R2R3

[abs/max] [abs/min/+/-]

>> 1 >> 3

Ul1 Ul2

Bus1

Bus2

Bus3

Bus4

Izl(d) Staza podataka

Sl. 5.20 Grupisanje registara.

U sledećem koraku, polazeći od tabele pristupa registrima, kreira se graf kompatabilnosti (Sl. 5.20(c)). Svaki čvor u ovom grafu odgovara jednom registru, grane nekompatabilnosti povezuju nekompatabilne registre (tj. registre koji ne mogu biti dodeljeni istom registarskom fajlu), a prioritetne grane povezuju kompatabilne registre (tj. registre koji se mogu ugraditi u isti registarski fajl). Bilo koja dva registra nisu kompatabilna ako postoji

Page 207: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Sinteza staze podataka

207

stanje u kome se oba registra čitaju ili u kome se u oba registra vrši upis. (Naglasimo da postojanje stanja u kome se jedan registar čita a u drugi upisuje, ne narušava kompatibilnost raegistara.) Na primer, registri R1 i R2

su nekompatabilni jer se u stanjima s0, s1, s2, s3, s4 i s6 pristupa, bilo radi upisa ili čitanja, i jednom i drugom registru. Slično, ni registri R2 i R3 nisu međusobno kompatabilni, jer se u stanju s3 u oba registra vrši upis, a u stanju s5 oba registra čitaju. Sa druge strane, registri R1 i R3 su kompatabilni (a odgovarajući čvorovi u grafu kompatabilnosti povezani prioritetnom granom) zato što se njima nikada ne pristupa u isto vreme (u istom stanju). Na osnovu strukture grafa kompatabilnosti zaključujemo da je moguće grupisati registre R1 i R3 u registarski fajl sa jednim portom za upis i jednim portom za čitanje. Staza podataka SRA kola koja koristi ovakav registarski fajl, prikazana je na Sl. 5.20(d).

Na Sl. 5.20(d) možemo uočiti da grupisanje registara R1 i R3 u jedinstveni registarski fajl ima za posledicu uštedu u jednom tro-statičkom baferu (s obzirom da R1 i R3 dele isti port za čitanje, za spregu sa magistralom umesto dva potreban je samo jedan tro-statički bafer). U opštem slučaju, kombinovanjem n registara koji izlaze na m magistrala, u jedan registarski fajl sa jednim portom za čitanje, broj tro-statičkih, magistralnih bafera se smanjuje za n-m. Međutim, ako kombinujemo n registara u koje se upisuje sa različitih magistrala, u jedan registarski fajl sa jednim portom za upis, ispred registarskog fajla mora biti postavljen m-to ulazni multiplekser. Zbog moguće uštede u drajverima magistrale i multiplekserskim ulazima, viši prioritet prilikom grupisanja treba dati registrima sa zajedničkim izvorima i odredištima, odnosno registrima u koje se upisuje sa iste magistrale ili iz kojih se čita preko iste magistrale.

5.5 Ulančavanje funkcionalnih jedinica

U odeljcima od 5.1 do 5.4 predstavili smo tehniku za sintezu staze podataka koja se zasniva na relativno jednostavnom modelu staze podataka. Na primer, sve staze podataka koje su razmatrane u prethodnim odeljcima sadrže registre, funkcionalne jedinice i magistrale. Dodatno, za spregu registara i funkcionalnih jedinica, tamo gde je to neophodno, ugrađuju se tro-statički baferi i multiplekseri. U svakom taktnom ciklusu, u stazi podataka izvršava se jedna ili više naredbi registarskog prenosa, pri čemu izvršenje svake naredbe uključuje: čitanje vrednosti operanada iz izvorišnih registara, prenos pročitanih vrednosti do ulaza funkcionalnih jedinica, izračunavanje rezultata, prenos rezultata od izlaza funkcionalnih jedinica do odredišnih registra i upis vrednosti rezultata u registre. Kod staza podataka ovog tipa, registri se taktuju taktnim signalom čija perioda mora biti veća ili jednaka najdužem vremenu izvršenja neke naredbe registarskog prenosa. Na taj način, taktni period je direktno određen najsporijom funkcijskom jedinicom u stazi podataka, što znači da su ostale, brže funkcionalne jedinice zauzete samo u delu taktnog ciklusa, a zatim do isteka taktnog ciklusa ostaju pasivne (tj. neiskorišćene). Međutim, ako je zbirno kašnjenje neke dve funkcionalne jedinice kraće od taktnog ciklusa, tada ih je moguće redno povezati i na taj način izvršiti dve operacije u jednom taktnom ciklusu. Isti princip se može proširiti i na više od dve funkcionalne jedinice, ako je taktni period dovoljno dug. Funkcionalne jedinice se sprežu direktno, bez posrednih registara. Na taj način, praktično, formira se jedna složena funkcionalna jedinica. Tehnika rednog povezivanja funkcionalnih jedinica zove se ulančavanje.

U cilju prikaza tehnike ulančavanja koristićemo ASM dijagram sa Sl. 5.21(a), koji opisuje rad SRA kola. Naglasimo da je ASM dijagram sa Sl. 5.21(a) dobijen tako što su u ASM dijagramu sa Sl. 5.1(b) stanja s2 i s3 spojena u jedno stanje, s2. Kao što se može videti, u stanju s2 novog ASM dijagrama obavljaju se tri naredbe registarskog prenosa: prva naredbi zahteva jednu binarnu operaciju (max), dok druge dve sadrže po dve operacije. Tačnije, nova vrednost koja se dodeljuje promenljivoj t3 izračunava se tako što se veća od dve vrednosti, t1 i t2, (max(t1,t3)) pomeri udesno za tri bitske pozicije (>>3). U isto vreme, nova vrednost promenljive t4 se dobija tako što se najpre izračuna minimum od t1 i t2, a onda dobijena vrednosti pomeri za jednu bitsku poziciju udesno. Pošto pomeranje za jednu ili tri pozicije ne unosi kašnjenje (vidi Sl. 5.3(f) i Sl. 5.3(g)) taktni ciklus za stazu podataka sa ulančanim funkcionalnih jedinicama, [max, >>3] i [min, >>1], neće biti produžen u odnosu na originalnu stazu podataka. Sa druge strane, pošto novi ASM dijagram ima sedam stanja, umesto osam, koliko ih ima u polaznom ASM dijagramu, zaključujemo da modifikovana staza podataka izvršava SRA algoritam 12.5% brže. Struktura staze podataka sa ulančanim funkcionalnih jedinicama prikazana je na Sl. 5.21(c). Naglasimo da je neophodno kreirati dodatnu vezu od pomerača označenog sa ¨>>1¨ do registra R3, kako bi se u stanju s2 omogućio prenos tri nove vrednosti za promenljive x, t3 i t4.

Page 208: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

208

Sl. 5.21 Staza podataka sa ulančanim funkcionalnih jedinicama.

5.6 Usitnjavanje ciklusa

Tehnika ulančavanja omogućava nam da na efikasan način u stazu podataka ugradimo brze funkcionalne jedinice. Međutim, u nekim slučajevima, kada niska cena realizacije predstavlja imperativ, poželjno je koristiti sporije, ali jeftinije jedinica, koje za izračunavanje rezultata zahtevaju dva ili više taktnih ciklusa. Tehnika koja to omogućava zove se usitnjavanje ciklusa (multicycling), dok se te sporije jedinice zovu funkcionalne jedinice sa usitnjenim ciklusima (multicycle units). Iz očiglednih razloga, jedinice sa usitnjenim ciklusima koriste se samo na putanjama kroz ASM dijagram koje nisu kritične. Na primer, u ASM dijagramu sa Sl. 5.21(a), promenljiva t4 dobija novu vrednost, t4=(min(t1, t2)) >> 1, u stanju s2, ali se ta vrednost ne koristi sve do stanja s4. To znači da u ovom slučaju možemo koristiti jedinicu koja za određivanje minimuma zahteva dva taktna ciklusa i ulančati je sa pomeračem udesno, koji ne unosi kašnjenje, a da konačni rezultat ipak bude generisan na vreme.

Na Sl. 5.22 ilustrovana je tehnika usitnjavanja ciklusa na primeru sinteze staze podataka SRA kola. Kao što se vidi na Sl. 5.22(a), ASM dijagram je modifikovan uvođenjem uglastih zagrada koje ukazuju da će rezultat biti dostupan tek u nekom od sledećih stanja ili je izračunavanje uokvirenog izraza već započeto u nekom od prethodnih stanja. Na primer, naredba registarskog prenosa [t4] =(min(t1,t2)) >> 1 ukazuje da će promenljiva t4 dobiti novu vrednost u nekom od sledećih stanja. Slično, izraz t4 =[(min(t1,t2)) >> 1] kazuje da u tekućem stanju promenljiva t4 dobija novu vrednost, pri čemu je izračunavanje izraza uokvirenog uglastim zagradama započeto u nekom od prethodnih stanja. Kao što se vidi na Sl. 5.22(c), ovakav ASM dijagram se lako prevodi u stazu podataka sa ugrađenom jedinicom sa usitnjenim ciklusima. Uočimo da ASM dijagram sa Sl. 5.22(a) sadrži jedno dodatno stanje (s3). Naime, s obzirom da izračunavanje izraza t4 = (min(t1,t2)) >> 1 traje dva taktna ciklusa, operandi t1 i t2 moraju biti prisutni na ulazim funkcionalne jedinice min, tj. na magistralama Bus1 i Bus2, za sve to vreme, što ima za posledicu odlaganje izvršenja naredbe t5=x-t3 za jedan taktni ciklus.

Page 209: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Sinteza staze podataka

209

Sl. 5.22 Staza podataka sa sporom funkcijskom jedinicom.

U odeljcima 5.5 i 5.6 ukazano je kako se performanse staze podataka mogu poboljšati ulančavanjem brzih funkcionalnih jedinica i kako se cena staze podataka može sniziti korišćenjem jedinica sa usitnjenim ciklusima. Kao što se može očekivati, prethodno opisane tehnike za grupisanje promenljivih, operatora i veza, mogu se uopštiti kako bi bile primenljive u kombinaciji sa tehnikama ulančavanja i usitnjavanja ciklusa.

5.7 Protočne funkcionalne jedinice

Do sada je bilo reči o različitim tehnikama za smanjenje cene staze podataka, što je uglavnom bilo ostvareno smanjenjem broja registara, funkcionalnih jedinica i veza. U ovom odeljku, pažnja će biti posvećena tehnikama za poboljšanje performansi staze podataka. Najznačajnija tehnika za poboljšanje performansi digitalnih sistema jeste protočnost. Protočna staza podataka nalikuje montažnoj fabričkoj liniji kojom se proizvod kreće od jednog do drugog radnog mesta. Na svakom radnom mestu preduzimaju se uvek iste operacije nad svakim proizvodom, ali svako radno mesto obavlja različite zadatke u montaži proizvoda. Na ovaj način se značajno povećava broj montiranih proizvoda u jedinici vremena.

Protočnosti se može uvesti na nivou funkcionalnih jedinica, staze podataka ili upravljačke jedinice. Na nivou funkcionalne jedinice, uvođenje protočnosti se sastoji u podeli jedinice na dva ili više stepena (delova) razdvojenih registrima tako da svaki stepen može da obrađuje različite skupove operanada. Tako, u bilo kom trenutku, u protočnoj funkcionalnoj jedinici boravi nekoliko skupova operanada – tačnije, broj skupova operanada u protočnoj jedinici jednak je broju stepena. Korišćenje protočnih funkcionalnih jedinica ne utiče na vreme koje je potrebno za generisanje rezultata za prvi skup operanada, i jednako je vremenu koje bi inače bilo potrebno da se rezultat izračuna u funkcionalnoj jedinici koja nije protočna. Međutim, za svaki sledeći skup operanada, rezultat je dostupan već nakon vremena koje je jednako kašnjenju kroz jedan stepen. Na primer, kod dvo-stepene protočne jedinice sa neprotočnim kašnjenjem od 100ns, rezultat za prvi skup operanada generiše se za 100ns, ali je zato rezultat za drugi skup operanada, kao i za svaki sledeći, dostupan na izlazu jedinice nakon 50ns. U opštem slučaju, vreme potrebno za generisanje rezultata n-to stepene protočne jedinice je n puta kraće od neprotočnog vremena izvršenja, sa izuzetkom prvog rezultata.

Kao primer protočne funkcionalne jedinice, razmotrimo dvo-stepenu aritmetičku jedinicu (AU) sa Sl. 5.23. Ova protočna jedinica je dobijena umetanjem tri registra za podatke i jednog registra za upravljačke signale po sredini između ulaznih i izlaznih portova neprotočne AU sa Sl. 5.13(d). Prilikom projektovanja 2-stepene protočne jedinice treba težiti da registri budu postavljeni po sredini kritičnog puta, kako bi kašnjenje oba stepena bilo približno isto i jednako polovini kašnjenja kroz neprotočnu verziju jedinice. U tom slučaju, protočna

Page 210: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

210

jedinica može da radi sa taktnim ciklusom koji je približno dva puta kraći u odnosu na taktni ciklus neprotočne jedinice. Napomenimo da to nije slučaj u konkretnom primeru protočne AU pošto treba očekivati da je kašnjenje sabirača veće od kašnjenja kroz dva multipleksera. U opštem slučaju, taktni ciklus protočne jedinice određen je najdužim kašnjenjem kroz neki stepen. Kao što je već rečeno, protočnoj jedinici su i dalje potrebna dva taktna ciklusa (ili stanja) za izračunavanje rezultata; u prvom taktnom ciklusu, parcijalni rezultat (međurezultat) se pamti u registrima; u drugom taktnom ciklusu drugi stepen generiše konačni rezultat, dok, u isto vreme prvi stepen generiše parcijalni rezultat za sledeći skup operanada, i tako dalje za svaki sledeći skup operanada.

Da bi smo uporedili performanse protočnih i neprotočnih funkcionalnih jedinica, razmotrimo stazu podataka SRA kola koja sadrži samo jednu, neprotočnu AU koja je u stanju da obavlja operacije: minimum, maksimum, određivanje apsolutne vrednosti, sabiranje i oduzimanje (Sl. 5.24(b)). Ovakva staza podataka zahteva devet stanja (ili devet taktnih ciklusa) za izračunavanje rezultata po SRA algoritmu (ponovo prikazan na Sl. 5.24(a)). Sa druge strane, staza podataka sa Sl. 5.24 se može redizajnirati tako što će se neprotočna AU zameniti dvo-stepenom protočnom AU, kao sto je prikazano na Sl. 5.25(a). Nova staza podataka zahteva 13 stanja, ili taktnih ciklusa, za izračunavanje rezultata po SRA algoritmu, kao što je prikazano na vremenskom dijagramu sa Sl. 5.25(b).

Sl. 5.24 Staza podataka sa jedinstvenom neprotočnom AU.

Sabirac

Mux1 0

Mux1 0

c1

c0

Bit znaka

c2

a b

Lecevi

Sl. 5.23 Protočna aritmetička jedinica.

Page 211: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Sinteza staze podataka

211

U vremenskom dijagramu sa Sl. 5.25(b) postoji posebna vrsta za svako registarsko čitanje ili upis, kao i za svaki stepen protočne AU i jedinice za pomeranje. Svaka kolona predstavlja jedno stanje upravljačke jedinice, a njen sadržaj ukazuje na vrednosti koje se čitaju ili upisuju u pojedine registre, odnosno na operacije koje se obavljaju u stepenima AU jedinice i pomeračima. Kao što se vidi, u stanju s0, vrednosti a i b uzimaju se sa ulaznih portova i smeštaju u registre R1 i R2. U stanju s1 čita se vrednost a iz registra R1, delimično se izračunava njena apsolutna vrednost (u prvom stepenu AU) i parcijalni rezultat se pamti u registrima koji razdvajaju dva stepena protočne AU. Zatim, u stanju s2 staza podataka završava izračunavanje |a| i dodeljuje ovu vrednost promenljivoj t1, koja se pamti u registru R1. U isto vreme, u stanju s2, staza podataka započinje izračunavanje |b| i pamti parcijalni rezultat u protočne registre. Znači, u stanju s2, oba stepena AU jedinice su aktivna, mada, obrađuju različite operande. U stanju s3 staza podataka završava izračunavanje |b| i rezultat dodeljuje promenljivoj t2, koja deli registar R2. Uočimo da u ovom trenutku, staza podataka još uvek ne može da započne sledeću operaciju (t3 = min(t1,t2) >> 3) zato što ona zahteva vrednost promenljive t2, koja još uvek nije upisana u registar R2. Iz tog razloga, u stanju s3, AU ne započinje novu operaciju, iako je njen prvi stepen slobodan. Slično, staza podataka u stanjima s4, s5 i s6 započinje izračunavanje maksimuma, minimuma i razlike, koje završava, uključujući i pomeranje, u stanjima s5, s6, i s7. Staza podataka ne može da započne sabiranje sve do stanja s8, pošto mora da čeka da vrednost koja je prethodno dodeljena promenljivoj t5 postane dostupna. Slično, operacija max započinje u stanju s10 i završava se u stanju s11. Konačno, u stanju s12, rezultat se postavlja na izlazni port, Izl.

Shodno vremenskom dijagramu sa Sl. 5.25(b), izvršenje SRA algoritma u stazi podataka sa Sl. 5.25(a) traje 13 stanja ili ciklusa. Međutim, kako je već rečeno, trajanje taktnog ciklusa je dva puta kraće u odnosu na ne-protočno rešenje. To praktično znači da, mereno taktnim periodom neprotočne staze podataka, staza podataka sa protočnom AU zahteva šest i po ciklusa, umesto devet, što su bolje performanse u odnosu na bilo koje neprotočno rešenje koje smo do sada razmatrali.

(a) staza podataka sa protočnom AU.

s0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12

R1 – čitanje a t1 t1 x x t7 R2 – čitanje b t2 t2 t3 t5 t6 R3 – čitanje t4

AU stepen 1 |a| |b| max min - + max

AU stepen 2 |a| |b| max min - + max

Pomerači >>3 >>1

R1 – upis a t1 x t7

R2 – upis b t2 t3 t5 t6

R3 – upis t4

Izl t7

(b) Vremenski dijagram

Sl. 5.25 Staza podataka sa protočnom funkcijskom jedinicom.

Page 212: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

212

5.8 Protočnost staze podataka

U prethodnom odeljku pokazano je kako se performanse staze podataka mogu poboljšati uvođenjem protočnosti u funkcionalne jedinice. Međutim, ako staza podataka obavlja isto izračunavanje nad različitim skupovima operanada, dodatno poboljšanje performansi može se postići uvođenjem protočnosti na nivou ASM dijagrama. To se postiže tako što se polazni ASM dijagram podeli na nekoliko segmenata iste veličine, a zatim se za svaki takav segment projektuje zaseban stepen staze podataka. Na taj način, formira se staza podataka koja se sastoji od niza redno povezanih segmenata, od kojih je svaki za sebe, po strukturi, staza podataka. Svi stepeni staze podataka, u paraleli, obrađuju različite skupove operanada i generišu parcijalne rezultate koji se koriste u sledećem stepenu.

Kao primer uvođenja protočnosti u ASM dijagram, razmotrimo dijagram sa Sl. 5.26, koji opisuje SRA algoritam. ASM dijagram sa Sl. 5.26(a) realizovan je u obliku beskonačne petlje sa devet uzastopnih stanja. Petlja se neprekidno ponavlja, bez čekanja na neki spoljni aktivacioni signal (kao što je signal Start, kod prethodno razmatranih verzija ASM dijagrama koji su opisivali SRA algoritam). Pretpostavlja se da je novi skup operanada dostupan na ulaznim portovima, In1 i In2, svakih 10 taktnih ciklusa. Ovakav ASM dijagram se može lako podeliti na dva segmenta, tako da stanja s0 do s4 čine prvi, a stanja s5 do s8 drugi segment. Na Sl. 5.26(a) granica između dva segmenta je naznačena punom linijom između stanja s4 i s5. Dakle, SRA algoritam je podeljen na dva dela, sa ciljem da svaki deo obrađuje zasebna staza podataka.

Dvostepena staza podataka, koja je u stanju da realizuje protočni ASM dijagram sa Sl. 5.26(a), prikazana je na Sl. 5.26(b). Prvi stepen staze podataka uključuje: dva registra, R1 i R2, jednu AU jedinicu i dva pomerača. Drugi stepen staze podataka čine: tri registra R3, R4 i R5 i jedna AU. Način na koji su promenljive ASM dijagrama dodeljene registrima prikazan je na Sl. 5.26(c).

(a) ASM dijagram (b) Protočna staza podataka

(c) Dodela registara i funkcionalnih jedinica

Page 213: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Sinteza staze podataka

213

n-ti par (n+1) - par

s0 s1 s2 s3 s4 s5 s6 s7 s8 s9

R1 – čitanje a t1 t1

R2 – čitanje b t2 t2

AU stepen 1 |a| |b| min max

Pomerači >>1 >>3

R1 – upis a t1

R2 – upis b t2

STEPEN 1

R3 – čitanje t3 t5 t6 t7

R4 – čitanje x x

R5 – čitanje t4

AU stepen 2 - + max

R3 – upis t3 t5 t6 t7

R4 – upis x

R5 – upis t4

STEPEN 2

n-ti par

(d) Vremenski dijagram

Sl. 5.26 Protočna staza podataka.

Na Sl. 5.26(d) prikazan je vremenski dijagram koji opisuje vremenski sled operacija u protočnoj stazi podataka sa Sl. 5.26(b). Kao i ranije, vremenski dijagram, za svako stanje ASM dijagrama, prikazuje pristupe svim registrima (R1 - R5) radi upisa i čitanja, kao i sve operacije koje se obavljaju u finkcijskim jedinicama. Kao što se vidi, za procesiranje prvog segmenta ASM dijagrama u prvom stepenu staze podataka potrebno je pet taktnih ciklusa; tj. prvom stepenu je potrebno pet ciklusa da preuzme vrednosti a i b sa ulaznih portova, Ul1 i Ul2, dodeli odgovarajuće vrednosti promenljivama t1, t2, t3, x i t4 i upiše poslednje tri promenljive u registre R3, R4 i R5, koji se mogu smatrati registrima koji razdvajaju dva protočna stepena staze podataka. Za procesiranje drugog segmenta ASM dijagrama u drugom stepenu staze podataka potrebna su samo četiri taktna ciklusa, pošto su registri R3, R4 i R5 već napunjeni od strane prvog stepena. Sve ukupno, izvršenje jedne iteracije petlje SRA algoritma traje devet taktnih ciklusa. Međutim, s obzirom da oba stepena staze podataka rade u paraleli, važno je uočiti da je prvi stepen spreman da prihvati novi skup ulaznih operanada na svakih pet taktnih ciklusa. Tačnije, prvi stepen izračunava parcijalni rezultat (n+1)-vog skupa operanada u isto vreme kada drugi stepen završava izračunavanje konačnog rezultata n-tog skupa operanada. Znači, ako staza podataka obrađuje ukupno n sukcesivnih parova operanada, potrebno je 5n+4 taktna ciklusa da bi se završilo izračunavanje rezultata za sve parove. Kao poređenje, napomenimo da se u neprotočnoj stazi podataka sa jednom AU i dva pomerača isti posao obavi za 9n taktnih ciklusa.

s0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12 s13

R1 – čitanje t1 t1 R2 – čitanje a b t2 t2 R3 – čitanje |b| min max

AU1 stepen 1 |a| |a| |b| min

AU1 stepen 2 >>1 max

Pomerači >>3

R1 – upis a t1

R2 – upis b t2

R3 – čitanje t3 t5 t6 t7 R4 – čitanje x x R5 – čitanje t4

AU2 stepen 1 - + max

AU2 stepen 2 - + max

R3 – upis t3 t5 t6 t7 t3

R4 – upis x x

R5 – upis t4 t4

Izl t7

Sl. 5.27 Vremenski dijagram protočne staze podataka sa protočnim funkcionalnim jedinicama.

Page 214: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

214

Performanse mogu biti još i bolje ako se u protočnu stazu podataka ugrade protočne funkcionalne jedince. Na primer, ako neprotočne AU iz protočne staze podataka sa Sl. 5.26(b) zamenimo odgovarajućim 2-stepenom protočnim AU jedinicama dobićemo stazu podataka kojoj odgovara vremenski dijagram prikazan na Sl. 5.27. Ovaj dijagram pokazuje da je svakom od dva stepena staze podataka potrebno sedam taktnih ciklusa za izračunavanje svog rezultata. Međutim, kako je sada trajanje svakog stanja dva puta kraće u odnosu na trajanje stanja u rešenju sa Sl. 5.26(zato što koristimo 2-stepenu protočnu AU), nova staza podataka izračunava SRA algoritam za (7⁄2)n + (7⁄2) = 3.5n + 3.5 taktnih ciklusa, u poređenju sa 5n+4 taktna ciklusa, koliko je potrebno kod realizacije koja koristi neprotočne funkcionalne jedinice. Drugim rečima, uvođenje dvo-stepene protočnosti u stazu podataka kombinovano sa korišćenjem dvo-stepenih protočnih funkcionalnih jedinica ima za posledicu smanjenje vremena izvršenja na približno jednu trećinu vremena izvršenja kod rešenja gde se protočnost ne koristi. Dakle, performanse su poboljšane za faktor 3.

5.9 Protočne upravljačke jedinice

U odeljcima 5.7 i 5.8 razmatrano je uvođenje protočnosti na nivou funkcionalnih jedinica i nivou staze podataka. Protočnost na nivou staze podataka omogućava konkurentnu obradu različitih skupova operanada, što smanjuje ukupno vreme potrebno za izvršenje datog algoritma. Uvođenje protočnosti na nivou funkcionalnih jedinica smanjuje maksimalno propagaciono kašnjenje u stazi podataka, što ima za posledicu povećanje stope iskorišćenosti različitih komponenata staze podataka i skraćenje taktnog ciklusa. Međutim, važno je napomenuti da najduže propagaciono kašnjenje, obično, prolazi kroz upravljačku jedinicu, kao što je to slučaj u strukturi sa Sl. 5.28(a) gde je kritični put, u smislu propagacionog kašnjenja, onaj koji polazi sa izlaza registra tekućeg stanja i završava se na ulazu tog istog registar. Naravno, do izvesne mere, ovo kašnjenje varira u zavisnosti od toga da li upravljački signali zavise od statusnih signala ili ne, što je na Sl. 5.28(a) naznačeno isprekidanom linijom. Ako se statusni signali koriste samo za određivanje sledećeg stanja, ali ne utiču na formiranje upravljačkih signala, kritični put polazi od izvora taktnog signala, do izlaza registra tekućeg stanja, zatim preko izlazne logike, registarskog fajla, i ALU, a onda preko statusnih signala do izlaza logike sledećeg stanja nazad do ulaza u registar tekućeg stanja, uključujući i vreme postavljanja (set_up time) ovog registra. Sa druge strane, ako se neki od statusnih signala koriste za određivanje upravljačkih signala, kritični put je duži, pošto prolazi dva puta kroz stazu podataka: prvi put da bi se odredili statusni signali, a drugi put da bi se formirali upravljački signali i obavila odgovarajuća obrada vrednosti koje su zapamćene u registrima staze podataka. U ovom slučaju, kritični put polazi sa izvora taktnog signala, dolazi do izlaza registra tekućeg stanja, a onda preko izlazne logike, registarskog fajla, ALU ponovo kroz izlaznu logiku, a onda dalje preko registarskog fajla ili memorije, množača⁄delitelja i nazad do registra ili registarskog fajla, uključujući vreme postavljanja registra ili registarskog fajla.

U svakom slučaju, kritični put prolazi kroz upravljačku jedinicu. Shodno tome, ako želimo da poboljšamo performanse tako što ćemo skratiti kritični put, potrebno je kritični put podeliti na više delova i umetnuti registre između njih. Na primer, na Sl. 5.28(b), registri su postavljeni na tri različita mesta. Prvo, uveden je statusni registar, postavljen između staze podataka i upravljačke jedinice tako da se svi statusni signali koji napuštaju stazu podataka upisuju u ovom registru, gde za svaki statusni signal postoji jedan flip-flop. Drugo, između staze podataka i upravljačke jedinice umetnuti je upravljački registar tako da se svi upravljački signali generisani od strane izlazne logike upisuju u ovaj registru, gde za svaki upravljački signal postoji jedan flip-flop. Konačno, sama staza podataka je učinjena protočnom, tako što su između memorijskih jedinica (registar, registarski fajl i memorija) i funkcionalnih jedinica (ALU, množač⁄delitelj) umetnuti protočni registri.

Page 215: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Sinteza staze podataka

215

(a) Standardna (neprotočna) realizacija upravljačke jedinice i staze podataka

Logika sledeceg

stanja

Registar sledeceg

stanja

Izlazna logika

.

.

.

.

.

.

.

.

.

Upravljacki ulazi

Registar

Bus1

Bus2

AU2

Izlazi staze podataka

*/

Registar

Registarski fajl

Multiplekser

Memorija

Ulazi staze podataka

Upravljacki signali

Statusnisignali

Upravljacki izlazi

- Upravljacka jedinica - - Staza podataka -

(b) Protočna realizacija upravljačke jedinice i staze podataka

Sl. 5.28 Uvođenje protočnosti u upravljačku jedinicu i stazu podataka.

U opštem slučaju, glavne projektantske odluke koje se tiču uvođenja protočnosti u stazu podataka i upravljačku jedinicu donose se još u fazi konstrukcije ASM dijagrama. Radi ilustracije, razmotrimo ASM dijagram sa Sl. 5.29(a), koji u svom početnom obliku ima tri stanja. U prvom stanju, s1, testira se uslov a>b, a onda se prelazi u stanje s2, ako nejednakost nije tačna, odnosno u stanje s3, ako je nejednakost tačna. U stanju s2 obavlja se naredba x=c*d, a u stanju s3 naredba y=x-1. ASM dijagram ovog oblika ne pretpostavlja bilo kakvu protočnost u svojoj implementaciji.

Page 216: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

216

Sl. 5.29 dijagrami za protočnu realizaciju.

Međutim, ako predvidimo statusni registar, kao deo protočne organizacije upravljačke jedinice, neophodno je, shodno tome, modifikovati i sam ASM dijagram. Modifikacija se sastoji u uvođenju nove, statusne promenljive, Stat. U stanju s1, rezultat poređenja a>b (tačno⁄netačno) dodeljuje se promenljivoj Stat, koja se potom, u stanju s2, koristi za grananje (Sl. 5.29(b)). S obzirom da u jednom taktnom ciklusu nije ostvarivo izvršiti upis nove vrednosti u statusnu promenljivu, a zatim još i obaviti grananje u odnosu na tu novu vrednost, neophodno je uvesti dodatni taktni ciklus (stanje s2 na Sl. 5.29(b)) koji će vremenski razdvojiti ove dve aktivnosti. Dakle, upis u promenljivu Stat se obavlja u trenutku prelaza u stanje s2, a vrednost promenljive Stat se testira u toku stanja s2. Slično, ako uvedemo upravljački i statusni registar, tada će biti neophodno u ASM dijagram ubaciti dva nova stanja (Sl. 5.29(c)). Naime, izračunavanje nejednakosti a>b se inicira u stanju s1, ali kako između upravljačke jedinice i staze podataka postoji registar (upravljački registar), upravljački signali koji treba da u stazi podataka iniciraju ovo izračunavanje, kasne za jedan taktni ciklus, tj. dolaze do staze podataka u trenutku prelaza u stanje s2. U toku stanja s2, u stazi podataka se izračunava nejednakost a>b, i formira odgovarajući statusni signal. Međutim, kako između staze podataka i upravljačke jedinice postoji registar (statusni registar), statusni signal stiže do logike sledećeg stanja sa jednim taktnim ciklusom zakašnjenja, tj. u trenutku prelaska u stanje s3. Konačno, stanje s3 se koristi za određivanje novog stanja na osnovu vrednosti statusnog signala.

Konačno, ASM dijagram sa Sl. 5.29(d) odgovara situaciji kada osim statusnog i upravljačkog registra koji razdvajaju upravljačku jedinicu i stazu podataka, u samoj stazi podataka postoje i protočni registri koji dele stazu podataka na dva protočna stepena. Uvođenje dvo-stepene protočnosti u stazu podataka povećava kašnjenje u izračunavanju nejednakosti a>b za jedan taktni ciklus, što je razlog za uvođenje novog stanja s4. Takođe, kao što se može videti na Sl. 5.29(d), između stanja s5 i s7 umetnuto je prazno stanje s6. To je zato što naredba registarskog prenosa y=x-1, iz stanja s7, koristi novu vrednost promenljive x čije se izračunavanje inicira u stanju s5, ali zbog dvo-stepene protočnosti staze podataka, traje dva taktna ciklusa. Opisani primeri jasno pokazuju da su često neophodne značajne modifikacije ASM dijagrama kako bi se precizno opisalo ponašanje protočnog sistema. Ove modifikacije imaju za posledicu povećanja broja stanja, tj. vremena izvršenja algoritma merenog brojem taktnih ciklusa. Međutim, pošto, sa druge strane, uvođenje protočnosti omogućava skraćenje trajanja taktnog ciklusa, vreme izvršena algoritma, mereno u sekundama, po pravilu je kraće u odnosu na neprotočnu realizaciju.

5.10 Raspoređivanje operacija U prethodnim odeljcima ovog poglavlja opisano je više tehnika za transformaciju ASM dijagrama u strukturu koju čine upravljačka jedinica i staza podataka. U opštem slučaju, sinteza na bazi ASM dijagrama zasnovana je na modelu koji eksplicitno definiše stanja, prelaze između stanja i naredbe dodele koje se obavljaju u svakom stanju. Nažalost, polazna specifikacija funkcionalnih zahteva, obično, nije dostupna u obliku ASM dijagrama,

Page 217: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Sinteza staze podataka

217

već je dostupna u obliku matematičke formule, softverskog programa ili softverskog dijagrama toka. Ni jedan od ovih načina ne podržava koncept stanja, mada svaki od njih, implicitno ili eksplicitno, definiše redosled izvršenja naredbi dodele. Dakle, glavna razlika između programskih jezika ili dijagrama toka, sa jedne i ASM dijagram, sa druge strane, jeste u tome što kod prvih ne postoje granice između stanja niti su naredbe dodele vezane za pojedina stanja.

Da bi smo standardni program ili dijagram toka transformisali u ASM dijagram, neophodno je vreme izvršenja algoritma podeliti na niz vremenskih intervala, tj. stanja, a onda svaku naredbu dodele pridružiti nekom stanju. Drugim rečima, neophodno je obaviti raspoređivanje naredbi dodele, ili operacija, po stanjima, ali tako da se ne naruše ograničenja koja se odnose na redosled izvršenja operacija, raspoloživost resursa u stazi podataka ili na maksimalno dozvoljeno vreme izvršenja algoritma. U ovom poglavlju biće opisana dva pristupa za transformaciju softverskog dijagrama toka u ASM dijagram, tj. dva tipa šeduling3 algoritama: (1) resursima ograničen šeduling ili RC šeduling (resource–constrained scheduling) i (2) vremenom ograničen šeduling, ili TC šeduling (time-constrained scheduling).

Raspoređivanju operacija uvek prethodi konverzija programa ili dijagrama toka u jedan specifičan graf koji se zove graf upravljanja i toka podataka ili CDFG (CDFG - control⁄dataflow graph) koji osim toka algoritma (grananja, petlje) eksplicitno pokazuje i zavisnosti po podacima koje postoje između naredbi dodele. Drugim rečima, CDFG zadržava upravljačku strukturu polaznog dijagrama toka (control), dok sekvencijalne delove polaznog dijagrama toka prikazuje u vidu grafa toka podataka ili DFG (dataflow graph). U DFG grafu, svaki čvor odgovara jednoj operaciji (naredbi dodele), dok grana između dva čvora predstavlja rezultat koga je generisala prva operacija, a koji se koristi kao operand kod u drugoj operaciji.

S obzirom da softverski dijagram toka predstavlja strukturu sačinjenu od redno i paralelno povezanih blokova dodele i blokova odlučivanja (grananja), CDFG se razlikuje od standardnog dijagrama toka samo u reprezentaciji blokova dodele. Naime, kod dijagrama toka, blok dodele sadrži sekvencu naredbi dodeljivanja; kod CDFG, blok dodele sadrži isti skup naredbi, ali prikazan u vidu DFG grafa. Na Sl. 5.30 prikazan je primer dijagram toka i odgovarajući CDFG: Sl. 5.30(a) prikazuje dijagram toka SRA algoritma, a Sl. 5.30(b) odgovarajući CDFG.

a = Ul1b = Ul2

Start0

1

t1 = |a|t2 = |b|x = max(t1,t2)y = min(t1,t2)t3 = x >> 3t4 = y >> 1t5 = x - t3t6 = t4 + t5t7 = max(t6,x)Obavljeno = 1Izl = t7

|a|

Ul1 Ul2

a b

Start

|b|

min max

>>1 >>3

+

-

max

1

a b

Izl Obavljeno

0

1

(a) Dijagram toka (b) CDFG

Sl. 5.30 CDFG graf za SRA algoritam.

3 Šeduling – scheduling – je engleska reč koja znači planiranje u smislu određivanja vremenskog rasporeda

skupa aktivnosti, kao što je pravljenje rasporeda časova, voznog reda ili organizacija izračunavanja skupa operacija na funkcionalnim jedinicama.

Page 218: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

218

DFG odslikava ograničenja u pogledu redosleda izvršenja operacija. Naime, izvršenje operacije, predstavljene čvorom u DFG grafu, može da počne tek onda kada su svi neposredni prethodnici tog čvora izvršeni. To praktično znači da dve operacije povezane putanjom u DFG grafu moraju biti izvršavane u različitim stanjima. Odnosno, dve operacije mogu biti izvršavane u paraleli, tj. u okviru istog stanja, samo ako nisu povezane putanjom u DFG grafu. Minimalno vreme izvršenja DFG grafa određeno je najdužom putanjom, tj. kritičnim putem, DFG grafa.

CDFG predstavlja polaznu osnovu za kreiranje tzv. raspoređenog CDFG grafa, koji je, u suštini, ekvivalentan ASM dijagramu. Raspoređivanje CDFG grafa se obavlja uz pomoć šeduling algoritma, koji ima zadatak da svakoj operaciji (čvoru) CDFG grafa dodeli vremenski interval (tj. stanje) u toku koga će ta operacija biti izvršena, i to na način da su sva ograničenja u pogledu redosleda izvršenja, nametnuta CDFG grafom, ispoštovana. Jednom CDFG grafu, obično, odgovara veliki broj alternativnih raspoređenih CDFG grafova, koji se razlikuju po broju stanja, raspodeli operacija po stanjima, broju potrebnih funkcionalnih jedinica i td.. Kod RC šedulinga, polazi se od pretpostavke da su broj i tipovi funkcionalnih jedinica i memorijskih jedinica u stazi podataka unapred poznati. Iz tog razloga neće uvek biti moguće u isto stanje rasporediti sve one operacije koje bi inače mogle biti izvršavane u paraleli. To može imati za posledicu produženje vremena izvršenja. Cilj RC šedulinga je naći takav raspored operacija po stanjima koji će obezbediti najkraće vreme izvršenja u stazi podataka poznatog sastava. Kod TC šedulinga, sastav staze podataka nije unapred fiksiran, a cilj šedulinga je odrediti minimalan broj funkcionalnih jedinica koji će obezbediti da se polazni algoritam izvrši u unapred zadatom vremenu. Pre nego što RC i TC šeduling algoritmi budu objašnjeni sa više detalja, razmotrićemo dva pomoćna šeduling algoritma, ASAP (¨as-soon-as-possible¨ - što je ranije moguće) i ALAP (¨as-late-as-possible¨ - što je kasnije moguće), koji se često koriste u sklopu drugih, složenijih šeduling algoritama u cilju određivanja prioriteta operacija radi njihovog rangiranja u toku raspoređivanja.

5.10.1 Algoritmi ASAP i ALAP

Algoritmi ASAP i ALAP podrazumevaju da vreme izvršenja svake operacija traje tačno jedan taktni ciklus i da je broj funkcionalnih jedinica, ili resursa, u stazi podataka neograničen. Drugim rečima, jedina ograničenja o kojima ova dva algoritma vode računa su zavisnosti po podacima. ASAP algoritam raspoređuje svaku operaciju u najranije stanje u kome su svi njeni operandi dostupni. Algoritam radi tako što prolazi kroz DFG, od vrha prema dnu, i svakom stanju dodeljuje sve čvorove iz grafa čiji su prethodnici (ili roditeljski čvorovi) već dodeljeni nekom od prethodnih stanja. Na taj način, nikada se neće desiti da dva nezavisna čvora budu dodeljena različitim stanjima, a to znači da ASAP algoritam generiše raspored koji ima najmanji mogući broj stanja, tj. najkraće vreme izvršenja, a koje je jednako broju operacija (čvorova) na kritičnom putu DFG grafa.

Za razliku od ASAP pristupa, ALAP algoritam raspoređuje svaku operaciju u najkasnije stanje pre stanja u kome je rezultat te operacije potreban kao operand nekoj od operacija koje su njeni neposredni naslednici u DFG grafu. Pri tome, dužina rasporeda (tj. vreme izvršenja izraženo brojem stanja u raspoređenom DFG), je unapred zadata veličina. ALAP algoritam prolazi kroz DFG od dna prema vrhu i svakom stanju, počev od najkasnijeg stanja konačnog rasporeda, dodeljuje sve one operacije čiji su svi neposredni naslednici već dodeljeni nekom od kasnijih stanja. Ako je zadata dužina rasporeda jednaka broju stanja u rasporedu koji je dobijen ASAP algoritmom, tada će ALAP algoritam rasporediti sve čvorove sa kritičnog puta DFG grafa u ista stanja u koja ih je rasporedio i ASAP algoritam. Kod rasporeda dobijenog ASAP algoritmom, operacije koje nisu na kritičnom putu izvršavaju se ranije nego što je to neophodno. Suprotno, kod rasporeda dobijenog ALAP algoritmom, operacije koje nisu na kritičnom putu, izvršavaju se što je kasnije moguće.

|a| |b|

min max

>>1 >>3

+

-

max

Izl

s1

s2

s3

s4

s5

s6

s7

|a| |b|

min

max

>>1

>>3

+

-

max

Izl

a b a b

t1 t2 t1 t2

y x x

yt4 t3 t3

t5 t5t4

t6 t6

t7 t7

(a) ASAP raspored (b) ALAP raspored

Sl. 5.31 ASAP i ALAP šeduling.

Page 219: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Sinteza staze podataka

219

Na Sl. 5.31 ilustrovana je primena ASAP i ALAP šeduling algoritama na DFG iz većeg od dva bloka dodele CDFG grafa sa Sl. 5.30. Kao što se može videti, oba rasporeda zahtevaju sedam stanja, a osim operacija min i >>1 sve ostale operacije su na kritičnom putu. Operacije min i >>1 raspoređene su što je ranije moguće (stanja s2 i s3), kod ASAL rasporeda, odnosno, što je kasnije moguće (stanja s3 i s4), kod ALAP rasporeda. Operacije sa kritičnog puta mogu se smatrati nekom vrstom kostura u rasporedu, jer je njihova pozicija (dodeljeno stanje) fiksirana u smislu da svako odlaganje startovanja operacije sa kritičnog puta direktno povećava dužinu rasporeda. Sa druge strane, operacije koje nisu na kritičnom putu poseduju izvesnu pokretljivost, u smislu da za svaku takvu operaciju postoji opseg stanja kome operacija može biti dodeljena, a da to nema uticaja na ukupnu dužinu rasporeda. Na primer, sa stanovišta ukupnog vremena izvršenja algoritma, potpuno je sve jedno da li će operacije min i >>1 biti izvršene u stanjima s2 i s3 ili u stanjima s3 i s4. Međutim, ako se, na primer, izvršenje operacija ¨-¨, koja pripada kritičnom putu, odloži za jedno stanje, i operacija izvrši u stanju s5 umesto u stanju s4, to će vremenski pomeriti izvršenje za jedno stanje svih operacija koje su na kritičnom putu, a slede nakon operacije ¨-¨, a to su operacije ¨+¨, max i operacija postavljanja rezultata na izlazni port, što će kako posledicu imati produženje vremena izvršenja algoritma na osam stanja.

5.10.2 Prioriteti operacija

Činjenica da algoritmi ASAP i ALAP raspoređuju kritične operacije u ista stanja, koristi se kod složenijih šeduling algoritama za razdvajanje kritičnih od nekritičnih operacija. Većina šeduling algoritama radi tako što u svakom koraku raspoređuje po jednu operaciju, pri čemu se kao sledeća operacija za raspoređivanje uvek bira ona koja po nekom kriterijumi ima najviši prioritet u odnosu na preostale neraspoređene operacije. Tipično, najviši prioritet se daje operacijama koje su na kritičnom putu, s obzirom da je dovoljno da se izvršenja bilo koje od ovih operacija odloži za jedno stanje, pa da to uslovi produženje ukupnog vremena izvršenja za jedan taktni ciklus. Sa druge strane, niži prioritet se obično daje operacijama koje nisu na kritičnom putu, pošto one imaju veću fleksibilnost u smislu mogućnosti raspoređivanja u više različitih stanja, a da to nema uticaja na vreme izvršenja celokupnog DFG grafa.

U toku raspoređivanja, za procenu prioriteta operacija mogu se koristiti različite metrike. Jedna od često korišćenih metrika je pokretljivost ili mobilnost operacije, koja je jednaka rastojanju, izraženom brojem stanja, između stanja koje je dodeljeno operaciji primenom ASAP algoritma i stanja koje je dodeljeno toj istoj operaciji primenom ALAP algoritma. Drugim rečima, ako je neka operacija op, primenom algoritma ASAP, raspoređena u stanje si, a primenom algoritma ALAP u stanje sk, tada je pokretljivost ove operacije, M(op), jednaka k-i. Znači, mobilnost definiše sposobnost operacije da bude odložena bez uticaja na ukupno vreme izvršenja. Drugim rečima, operacije sa većom pokretljivošću imaju niži prioritet.

Druga metrika, koja se može koristiti za procenu prioriteta operacija, zasnovana je na kriterijumu koji se zove ugrentnost operacije. Urgentnost operacije jednaka je rastojanju, izraženom brojem stanja, između stanja u kome je operacija raspoloživa za raspoređivanje i stanja u koje je ta operacija raspoređena primenom algoritma ALAP. Drugim rečima, neka je u stanju si operacija op raspoloživa za raspoređivanje (svi njeni prethodnici su već raspoređeni u nekim od prethodnih stanja) i neka je sk stanje koje je toj operaciji dodeljeno primenom ALAP algoritma. Tada je urgentnost operacije op u stanju si, U(op), jednaka k-i. Što je U(op) manje, to je urgentnost operacije, a time i njen prioritet, veća. Za razliku od mobilnosti, koja predstavlja statičku meru, u smislu da je određena jedino pozicijom operacije u DFG grafu, i ne menja se u toku raspoređivanja, urgentnost predstavlja dinamičku meru, koja se menja u toku raspoređivanja i koja osim od pozicije operacije u DFG grafu, zavisi i od trenutne situacije u rasporedu koje se formira. Na primer, u stanju u kome neka operacija op postaje raspoloživa za raspoređivanje, urgentnost operacije je jednaka njenoj mobilnosti, U(op)=M(op). Ukoliko se operacija ne rasporedi u to stanje, već se, iz bilo kog razloga, njeno raspoređivanje odloži za neko naredno stanje, vrednost U(op) u prvom sledećem stanju postaje za jedan manja od mobilnosti, U(op)=M(op)-1. To praktično znači da prioritet operacije raste kako se raspoređivanje operacije odlaže, a stanje dodeljeno operaciji ALAP algoritmom, sk, približava. Ukoliko je šeduling algoritam stigao sa raspoređivanjem do stanja sk, a pri tom još uvek nije rasporedio operaciju op, urgentnost ove operacije postaje U(op)=0, što odgovara prioritetu operacije sa kritičnog puta.

Treća metrika za procenu prioriteta operacaija najviši prioritet daje operaciji čijim se raspoređivanjem maksimizuje broj operacija koje postaju raspoložive za raspoređivanje. Pored navedenih, postoji još nekoliko drugih mera prioriteta operacija, ali ni jedna od njih, uključujući i navedene, ne predstavlja najbolje rešenje u svim slučajevima. Drugim rečima, optimalna metrika za procenu prioriteta, čija bi primena garantovala optimalni raspored, ne postoji. Šta više, ni jedna metrika nije apsolutno bolja od ostalih, već postoje slučajevi kada se najbolji rezultati dobijaju primenom jedne metrike, ali i slučajevi kada ta ista metrika daje loš rezultat.

Page 220: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

220

5.10.3 Resursima ograničeno raspoređivanje

Jedan od najčešće korišćenih RC šeduling algoritama je list-šeduling algoritam. Ime ovog algoritma potiče otuda što u radu koristi sortiranu listu spremnih operacija, tj. listu operacija koje su raspoložive za raspoređivanje. Kod lista-šeduling algoritma, lista spremnih operacija sortirana je shodno mobilnost operacija, tako što se spremne operacije sa nultom mobulnošću nalaze na početku, a spremne operacije sa najvećom mobilnošću na kraju liste. U slučajevima kada dve operacije imaju istu mobilnost, prednost se može dati urgentnijoj operaciji, tj. operaciji sa većom vrednošću U(op). Ukoliko su dve operacije identične po oba prethodna kriterijuma, prednost se daje operaciji koja se bira na slučajan način. List-šeduling algoritam konstruiše raspored stanje-po-stanje, pri čemu za svako stanje ponavlja sledeće aktivnosti: (1) operacije najvišeg prioriteta iz liste spremnih operacija, jednu po jednu, dodeliti raspoloživim funkcionalnim jedinicama; (2) izbaciti iz liste sve operacije koje su dodeljene u koraku (1); (3) umetnuti u listu spremnih operacija sve operacije koje postaju raspoložive za raspoređivanje nakon koraka (1) i to na pozicije koje odgovaraju njihovim mobilnostima i urgentnostima. Dijagram toka list-šeduling algoritma prikazan je na Sl. 5.32.

Rad list-šeduling algoritma ilustrovan je na Sl. 5.33, na primeru DFG grafa iz bloka dodele sa Sl. 5.30(b), pod pretpostavkom da su na raspolaganju: (a) jedna aritmetička jedinicom koja je u stanju da obavlja operacije: minimum, maksimum, sabiranje, oduzimanje i određivanje apsolutne vrednosti i (b) dva pomerača. Prvo, kreiraju se ASAP i ALAP rasporedi, kao što je prikazano na Sl. 5.33(a) i Sl. 5.33(b). Zatim, formira se lista spremnih operacija za prvo stanje (Sl. 5.33(c)) i izračunaju mobilnosti operacija iz liste. U konkretnom slučaju, u prvom stanju, jedino su operacije |a| i |b| raspoložive za raspoređivanje. Pošto obe operacije imaju istu pokretljivost (M(|a|)=M(|b|)=0), njihov redosled u listi spremnih operacija određujemo na slučajan način. Dajmo prednost operaciji |a| i postavimo je na početak liste. Sada, uzimamo operaciju sa početka liste, |a|, i raspoređujemo je u stanje s1. S obzirom da imamo na raspolaganju samo jednu aritmetičku jedinicu, operaciju |b| nije moguće rasporediti u isto stanje gde i operaciju |a|, pa je time raspoređivanje za prvo stanje, s1, završeno. Kako raspoređivanje operacije |a| ne oslobađa ni jednu operaciju, lista spremnih operacija za sada ostaje nepromenjena, a algoritam prelazi na raspoređivanje drugog stanja, s2. Jedina spremna operacija je |b|. Raspoređivanjem ove operacije u stanje s2, oslobađaju se dve nove operacije max i min, koje ubacujemo u listu spremnih operacija. Pošto se operacija max nalazi na kritičnom putu, njena pokretljivost je M(max)=0, što joj daje prioritet u odnosu na operaciju min čija pokretljivost iznosi M(min)=1. Znači, za raspoređivanje u stanje s3, biramo operaciju max, što ima za posledicu oslobađanje operacije >>3. Pošto je mobilnost ove operacije M(>>3)=0, ona se smešta na vrh liste spremnih operacija, ispred operacije min. U stanje s4 moguće je rasporediti obe operacije iz liste spremnih operacija, min i >>3, s obzirom da se one izvršavaju na različitim funkcionalnim jedinicama. Raspoređivanje operacija min i >>3 oslobađa operacije ¨-¨ i >>1, koje se nakon toga, obe raspoređuju u stanje s5. Na sličan način, algoritam nastavlja sa raspoređivanjem operacije ¨+¨ u stanje s6 i operacije min u stanje s7 i konačno, postavljanje rezultata na izlazni port u stanje s8. Konačni RC raspored prikazan je na Sl. 5.33(d).

Kao što je pokazano, cilj RC šedulinga je da u svako stanje rasporedi što je moguće više operacija imajući u vidu broj raspoloživih funkcionalnih jedinica. U stanjima kada je broj spremnih operacija veći od broja raspoloživih jedinica, koristi se prioritetna metrika, kao što je mobilnost ili urgentnost, da bi se odredilo koje operacije će biti raspoređene u tekuće stanje, a koje biti odložene za naredno stanje. U konkretnom primeru, dobijen je raspored koji zahteve jedno stanje više u odnosu na rasporede dobijene primenom ASAP i ALAP algoritama, ali zato ima nižu cenu implementacije pošto zahteva jednu aritmetičku jedinicu i dva pomerača, za razliku od ASAP i ALAP rasporeda koji zahtevaju dve aritmetičke jedinice i dva pomerača.

Primeniti ASAP algoritam

Primeniti ALAP algoritam

Odrediti mobilnostioperacija

Kreirati inicijalnu listuspremnih operacija

Sortirati listu spremnihoperacija po mobilnosti

Operacije iz listerasporediti u tekuce

stanje

Rasporedjene operacijeizbaciti iz liste

Ubaciti u listu operacijekoje su postale spremne

Uvecati za jedan indekstekuceg stanja

Pocetak

Sve operacije surasporedjene?

Kraj

da

ne

Sl. 5.32 List-šeduling

algoritam.

Page 221: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Sinteza staze podataka

221

|a| |b|

min max

>>1 >>3

+

-

max

Izl

s1

s2

s3

s4

s5

s6

s7

s8

|a| |b|

min

max

>>1

>>3

+

-

max

Izl

|a| |b|

minmax

>>1

>>3

+

-

max

0 0

0

|b|

0 1

min

0 1

0 1

0

0

|a|

|b|

min

max

>>1

>>3

+

-

max

Izl

(a) ASAP (b) ALAP (c) Lista spremnihoperacija (d) RC raspored

Sl. 5.33 RC šeduling.

5.10.4 Vremenom ograničeno raspoređivanje

U mnogim slučajevima, primarni cilj optimizacije nije cena već performanse, u smislu da staza podataka mora da izvrši dati algoritam za neko fiksno, unapred zadato vreme, bez obzira na cenu implementacije. Kada performanse predstavljaju primarni cilj, koriste se TC šeduling algoritmi. Ova klasa algoritama generiše raspored kod koga je broj stanja (tj. dužina rasporeda, odnosno, vreme izvršenja) unapred zadat, pokušavajući, u isto vreme, da minimizuju broj potrebnih funkcionalnih jedinica u stazi podataka. Zadati cilj se postiže tako što TC šeduling algoritam teži da operacije istog tipa (izvršavaju se na funkcionalnim jadnicama istog tipa) što ravnomernije rasporedi po stanjima. Uravnotežena raspodela operacija rezultuje u potpunijem iskorišćenju funkcionalnih jedinica, a time i minimizuje broj funkcionalnih jedinica svakog pojedinačnog tipa.

Na Sl. 5.34 prikazan je dijagram toka TC šeduling algoritama. Kao što se vidi sa slike, na početku rada, primenjuju se ASAP i ALAP algoritmi sa ciljem da se odrede opsezi mobilnosti svih operacija iz polaznog DFG grafa. Opseg mobilnosti operacije op je niz stanja OM(op)=(si, si+1, …, sk), koji počinje stanjem si u koje je operacija op raspoređena ASAP algoritmom, a završava se stanjem sk u koje je operacija op raspoređena ALSP algoritmom. Na primer, opseg mobilnosti operacije >>1 sa Sl. 5.33 čine stanja OM(>>1)={s3, s4}. Pored DFG, ulaz u TC šeduling algoritam je i zadato vreme izvršenja, izraženo brojem stanja u konačnom rasporedu, T. Ovo vreme mora biti veće ili jednako kritičnom putu DFG grafa, tj. dužini rasporeda dobijenog primenom ASAP algoritma. Pri tome, ako je zadata dužina rasporeda T=n stanja, tada konstrukcija ALAP rasporeda kreće od stanja sn. Ako je zadata dužina rasporeda jednaka dužini kritičnog puta DFG grafa, tada će opseg mobilnosti bilo koje operacije sa kritičnog puta čini samo jedno stanje, u koje su tu operaciju rasporedila oba algoritma ASAP i ALAP. U suprotnom, ako je zadato vreme izvršenja za m stanja duže od kritičnog puta DFG grafa, tada će opseg mobilnosti svake operacije sa kritičnog puta pored stanja u koje je operacija raspoređena ASAP algoritmom činiti i m narednih stanja. TC šeduling se zasniva na činjenici da će dužina konačnog rasporeda ostati jednaka zadatoj dužini T ukoliko se svaka operacija rasporedi u neko od stanja iz svog opsega mobilnosti. Praktično, TC šeduling radi tako što uz poštovanje obaveze da svaka operacija mora biti raspoređena u neko stanje iz svog opsega mobilnosti, pokušava da duž celog rasporeda, što je više moguće, uravnoteži zahteve za funkcionalnim jedinicama.

Page 222: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

222

Nakon što su određeni opsezi mobilnosti za sve operacije iz DFG grafa, za svako stanje si iz opsega mobilnosti neke operacije op dodeljuje se verovatnoća da će ta operacija biti raspoređena u to stanje, P(op,si). Svim stanjima iz opsega mobilnosti operacije op dodeljuje se ista verovatnoća, jednaka:

1)()(

1),(

+−=

opASAPopALAPsopP i

(5.1)

gde je ASAP(op) redni broj stanja u koje je operacija op raspoređena ASAP algoritmom, a ALAP(op) redni broj stanja u koje je operacija op raspoređena ALAP algoritmom. Očigledno, zbir verovatnoća u svakom opsegu mobilnosti jednak je 1. Na primer, verovatnoća da će operacija >>1 sa Sl. 5.33 biti raspoređena u stanje s3 jednaka je verovatnoći da će ta operacija biti raspoređena u stanje s4 i iznosi P(>>1, s3)=P(>>1, s4) = 0.5.

U sledećem koraku, TC šeduling algoritam prolazi kroz sva stanja i za svako stanje nalazi sve operacije čiji opsezi mobilnosti pokrivaju to stanje; zatim, grupiše kompatabilne operacije (operacije istog tipa, tj. one koje se izvršavaju na funkcionalnim jedinicama istog tipa) i za svaku grupu, posebno, sabira verovatnoća sa kojima pojedinačne operaciju iz te grupe pokrivaju dato stanje. Na taj način, za svaki tip operacije, kreira se poseban distribucioni grafikon (ili grafikon raspodele suma verovatnoća) DG, koji ukazuje na raspodelu konkurentnosti (istovremenosti) operacija po stanjima. Za svaki DG, raspodela u stanu si iznosi:

∑∈

=operacijeTipop

ii sopPsDG ),()( (5.2)

gde suma obuhvata sve operacije datog tipa. Drugim rečima, DG(si) ukazuje na očekivani broj funkcionalnih jedinica datog tipa, potreban da bi se obavile sve operacije tog tipa koje se javljaju u stanju si. Najveća vrednost u DG grafikonu, u nekom stanju, ukazuje na broj funkcionalnih jedinica datog tipa koji je potrebno ugraditi u stazu podataka, kako bi bili zadovoljeni zahtevi za tim tipom funkcionalnih jedinica u svakom pojedinačnom stanju. Često, radi jasnijeg prikaza, rezultati ove analize se prikazuju u obliku histograma.

U ovom trenutku, sve je spremno za raspoređivanje operacija. Međutim, pre objašnjena strategije raspoređivanja koju koristi TC šeduling, pokažimo, na primeru DFG grafa za SRA algoritam, kako se određuju opsezi mobilnosti operacija i formiraju distribucioni grafikoni. Usvojićemo da su za sintezu staze podataka dostupna dva tipa funkcionalnih jedinica: (1) AU - aritmetičke jedinice koje su u stanju da obavljaju operacije: sabiranje, oduzimanje, maksimum, minimum, i određivanje apsolutne vrednosti i (2) pomerači. Znači, operacije +, -, min, max, |a| i |b| su istog tipa, kao i operacije >>1 i >>3. Takođe, postavićemo uslov da dužina rasporeda operacija mora biti T=8 stanja, što je za jedno stanje više od dužine kritičnog puta polaznog DFG grafa. Na Sl. 5.35(a) prikazan je ASAP, a na Sl. 5.35(b) ALAP raspored. Treba uočiti da ALAP raspored, koji se inače formira odozdo naviše, kreće od stanja s8, s obzirom na postavljeno ograničenje u dužini konačnog rasporeda od T=8 stanja. Na bazi ASAP i ALAP rasporeda možemo odrediti opsege mobilnosti svih operacija. Lako se zaključuje da će opsezi mobilnosti svih operacija, osim operacija ¨>>1¨ i min imati 2 stanja. Drugim rečima, verovatnoća za svaku od ovih operacija da će biti raspoređena u neko stanje iz svog opsega mobilnosti iznosi 0.5. S obzirom da operacije ¨>>1¨ i min imaju opsege mobilnosti od po tri stanja, verovatnoća da svaka od njih bude raspoređena u neko konkretno od svojih stanja iznosi 0.33. Pozicije opsega mobilnosti operacija, razvrstanih po tipu, prikazane su zajedno sa odgovarajućim distribucionim grafikonima na slikama Sl. 5.35(c)-(f). Slike Sl. 5.35(c)-(d) odgovaraju aritmetičkim jedinicama, a Sl. 5.35(e)-(f) pomeračima. Na ovim slikama, opsezi mobilnosti operacija prikazani su u vidu praznih uspravnih pravougaonika. Svaki pravougaonik, po visini, obuhvata sva stanja iz opsega mobilnosti odgovarajuće operacije, dok je širina pravougaonika srazmerna verovatnoći da ta operacija bude raspoređena u neko konkretno stanje iz opsega mobilnosti. Očigledno, što je pravougaonik viši, to je njegova širina manja, tj. površina svih pravougaonika je ista i iznosi 1. U distribucionom grafikonu, svakom stanju si odgovara jedna horizontalna šrafirana traka, čija je dužina srazmerna vrednosti DG(si), tj. ukupnoj širini svih praznih pravougaonika koji pokrivaju to stanje. Distribucioni grafikon, na očigledan način, pokazuje raspodelu po stanjima konkurentnosti operacija istog tipa. Na primer,

Kraj

da

ne

Primeniti ASAP algoritam

Primeniti ALAP algoritam

Odrediti opsegemobilnosti operacija

Kreirati distribucioni graf

Pocetak

Sve operacije surasporedjene?

Za sve nerasporedjeneoperacije odrediti ukupne

sile u svim stanjima izopsega mobilnosti

Izabrati par operacija-stanje sa najmanjom

ukupnom silom irasporediti tu operaciju u

to stanje

Azurirati opsegemobilnosti i distribucioni

graf

Sl. 5.34 TC šeduling.

Page 223: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Sinteza staze podataka

223

DG sa Sl. 5.35(d) ukazuje da se u stanju s1 očekuje konkurentno (istovremeno) korišćenje jedne aritmetičke jedinice, dok se u stanju s2 očekuje se zauzeće 1.83 aritmetičkih jedinica. Najveći očekivani broj zauzetih aritmetičkih jedinica u nekom stanju je 1.83, što ukazuje da treba očekivati da će za implementaciju staze podataka biti potrebne dve (tj. veće celo od 1.83) aritmetičkih jedinica. Naravno, svrha TC šedulinga je da se ovaj broj što je moguće više smanji.

|a| |b|

min max

>>1 >>3

+

-

max

Izl

s1

s2

s3

s4

s5

s6

s7

s8

|a| |b|

min

max

>>1

>>3

+

-

max

Izl(a) ASAPraspored

(b) ALAPraspored

|a| |b|

-

+

(c) Opsezi mobilnostiAU operacija

(d) Distribucioni grafza AU operacije

(e) Opsezi mobilnostipomerackih operacija

(f) Distribucionigraf za pomeracke

operacije

min

max

max

1.0

1.83

0.83

0.83

1.0

1.0

0.5

0.33

0.83

>>1 0.83

a b a b

s1

s2

s3

s4

s5

s6

s7

s8

|a| |b|

-

+

(g) Opsezi mobilnosti i distribucioni grafovi nakon rasporedjivanja operacije min u stanje s2

min

max

max

1.0

1.5

1.5

0.5

1.0

1.0

0.5

0.5

0.5

>>

1

1.0

>>

3

>>

3

Sl. 5.35 TC šeduling.

Uvek kada se neka operacija rasporedi u neko konkretno stanje, visina odgovarajućeg praznog pravougaonika se smanjuje, tako da obuhvata samo ono stanje u koje je operacija raspoređena, a u isto vreme

Page 224: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Arhitektura mikrosistema

224

njegova širina se povećava na 1. To ima za posledicu da dužina trake koja odgovara tom stanju u distribucionom grafikonu postaje veća za (1 – širina pravougaonika), dok se sve trake koje odgovaraju preostalim stanjima iz opsega mobilnosti raspoređene operaciju skraćuju za širinu praznog pravougaonika. Na primer, ako bi smo operaciju min rasporedili u stanje s3, konkuretnost aritmetičkih operaciju u ovom stanju bi porasla na DG(s3)=0.83+(1-0.33)=1.5, dok bi se konkurentnost aritmetičkih operacija u stanjima s2 i s4 smanjila za 0.33 i iznosila bi DG(s2)=1.83-0.33=1.5 i DG(s4)=0.83-0.33=0.5, kao što je prikazano na Sl. 5.35(g). Takođe, treba uočiti da je zbog fiksiranja operacije min za stanje s3 došlo do promene opsega mobilnosti operacije >>1, koji sada obuhvata stanja s4 i s5. Treba uočiti da iako su se dužine traka u distribucionim grafikonima promenile, ukupna dužina svih traka je ostala ista kao u polaznim distribucionim grafikonima. S obzirom na to, zaključujemo da će sa stanovišta broja potrebnih funkcionalnih jedinica u stazi podataka, biti najbolja ona raspodela kod koje će distribucioni graf biti uravnotežen, tj. u kome će sve trake imati približno istu dužinu.

Kao i algoritmi ASAP, ALAP i List šeduling, TC šeduling algoritam u svakoj iteraciji raspoređuje jednu operaciju. Međutim, za razliku od prethodnih šeduling algoritama, koji prilikom formiranja rasporeda, strogo prate topološki redosled operacija tako što kao sledeću operaciju za raspoređivanje uvek biraju jednu od operacija čiji su svi neposredni prethodnici (ili naslednici, kod ALAP) u DFG grafu već raspoređeni, kod TC šeduling algoritama, u svakoj iteraciji, potencijalni kandidati za raspoređivanje su sve neraspoređene operacije. Naime, da bi TC šeduling algoritam odlučio koju će neraspoređenu operaciju izabrati i gde je rasporediti, on eksplicitno analizira svaki par (op, si), gde je op neraspoređena operacija, a si stanje iz opsega mobilnosti te operacije i bira onaj par koji u tekućoj iteraciji najviše doprinosi ostvarenju globalnog cilja - uravnoteženje distribucionog grafikona.

TC šeduling, kao metriku na bazi koje vrednuje pojedinačne opcije (op, si), koristi funkciju koja se zove ukupna ¨sila¨, a koja predstavlja zbir direktne ¨sile¨ i indirektne ¨sile¨. Direktna ¨sila¨ odslikava direktni uticaj raspoređivanja operacije op u stanje si na uravnoteženost distribucionog grafa. Raspoređivanje operacije op u neko konkretno stanje, u opštem slučaju, može imati za posledicu promenu opsega mobilnosti nekih od preostalih neraspoređenih operacija, što onda, indirektno utiče na oblik distribucionog grafa. Uticaj ovog, sekundarnog efektna na uravnoteženost distribucionog grafa izražen je indirektnom silom. Direktna sila između operacije op i stanja si se definiše kao razlika između konkurentnosti operacija u stanju si, i srednje konkurentnosti operacija u stanjima iz opsega mobilnosti operacije op. Neka se opseg mobilnosti operacije op proteže od stanja sb do stanja st. Tada je direktna sila privlačenja operacije op i stanja si određena izrazom:

∑= +−

−=t

bk

kii tb

sDGsDGsDF

1

)()()( (5.3)

Smisao ove metrike se ogleda u sledećem. Ako se operacija op rasporedi u stanje si, dužina trake iz distribucionog grafa, koja odgovara stanju si raste na račun smanjenja dužine ostalih traka koji su pokriveni opsegom mobilnosti operacije op. S obzirom da je cilj da trake distribucionog grafa budu što je moguće više bliske po dužini, logičan izbor za raspoređivanje operacije op je stanje iz njenog opsega mobilnosti kome odgovara najkraća traka u delu distribucionog grafa koji odgovara opsegu mobilnosti operacije op. Upravo minimalna vrednost sopstvene sile privlačenja u skupu stanja iz opsega mobilnosti date operacije, ukazuje na ovakvo stanje.

Na primer, direktna sila koja odgovara raspoređivanju operacije min u stanje s3 iznosi: DF(s3) = 0.83-(1.83+0.83+0.83)⁄(4-2+1) = -0.33. Slično, možemo utvrditi da je direktna sila između operacije min i stanja s2 DF(s2) =0.66, ili recimo, operacije max i stanja s7 DF(s7) =-0.25 i td.

U opštem slučaju, sila ne mora biti vezana za tačno jedno stanje, već se može pridružiti i grupi stanja iz polaznog opsega mobilnosti date operacije. Naime, ako se opseg mobilnosti neke operacije proteže od stanja sb do stanja st, tada je sila koja je pridružena skraćenom opsegu mobilnosti, od stanja snb do snt (nb≥b i nt≥t), definisana sledećim izrazom:

∑∑== +−

−+−

=t

bk

knt

nbk

kntnb tb

sDG

tb

sDGssDF

1

)(

1

)(),( (5.4)

Svaka suma u gornjem izrazu predstavlja srednju konkurentnost operacija u zadatom opsegu stanja. Sila je razlika između srednje konkurentnosti operacija u novom, skraćenom opsegu i srednje konkurentnosti operacija u polaznom opsegu mobilnosti date operacije.

Kao što je već napomenuto, raspoređivanje operacije u neko konkretno stanje znači ograničenje njenog opsega mobilnosti samo na to stanje, što često ima za posledicu promenu opsega mobilnosti nekih od preostalih neraspoređenih operacija sa kojima je upravo raspoređena operacija povezana u DFG grafu. Ova modifikacija se odnosi kako na operacije koje prethode datoj operaciji, tako i na operacije koje su naslednici date operacije. Očigledno, promena mobilnosti drugih neraspoređenih operacija imaće uticaj na raspodelu konkurentnosti

Page 225: ARHITEKTURA MIKROSISTEMA - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.8-AMS-samo-Pog5.pdf · reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadrže

Sinteza staze podataka

225

operacija u distribucionom grafikonu, koji može biti pozitivan, ali i negativan. Iz tog razloga je bitno prilikom ocene dobitka⁄gubitka koji je posledica raspoređivanja operacije op u stanje si, uzeti u obzir i uticaj koji će na distribucioni graf imati i eventualna promena mobilnosti drugih operacija. Ovaj uticaj se iskazuje indirektnom silom, koja se izračunava kao zbir sila određenih na osnovu izraza (5.4) za svaku operaciju čiji je opseg mobilnosti promenjen, od polaznog sb-st na novi snb-snt. Konačno, ukupna sila pridružena eventualnom raspoređivanju operacije op u stanje si dobija se kao zbir direktne i indirektne sile.

Na primer, ako se operacija min rasporedi u stanje s3, opseg mobilnosti operacije >>1, koji na početku obuhvata stanja s3, s4 i s5 sužava se na stanja s4 i s5, kao što se može videti na Sl. 5.35(g). Indirektna sila koja odgovara ovom suženju iznosi: IF(s4,s5)=(1.33+0.33)⁄2-(0.33+1.33+0.33)⁄3=0.83-0.66=0.17. Kako je operacija >>1 jedina na čiji opseg mobilnosti utiče raspoređivanje operacije min u stanje s3, ukupna sila koja karakteriše eventualno raspoređivanje operacije min u stanje s3 iznosi TF=DF+IF=-0.33+0.17=-0.16.

Nakon što su za sve neraspoređene operacije određene ukupne sile za svako pojedinačno stanje iz odgovarajućih opsega mobilnosti, TC šeduling algoritam bira onu opciju kojoj odgovara najmanja ukupna silu. Na primer, u prvoj iteraciji primera sa Sl. 5.35, TC šeduling algoritam analizira 20 mogućih opcija, izračunavajući ukupnu silu za svaku opciju, pre nego što izabere jednu od njih i obavi odgovarajuće raspoređivanje. Opisani postupak se ponavlja sve dok postoje neraspoređene operacije. Napomenimo da je broj iteracija obično manji od broja operacija, s obzirom da, često, raspoređivanje jedne operacije ima kao indirektni efekat raspoređivanje još jedne ili više drugih operacija. Na primer, ako bi TC šeduing algoritam odlučio da u prvoj iteraciji rasporedi operaciju max u stanje s2, u toj iterciji bi efektivno bile raspoređene tri operacije, jer raspoređivanje operacije min u stanje s2 sužava opseg mobilnosti operacija |a| i |b| na samo jedno stanje, s1.

5.11 Zaključak

U ovom poglavlju predstavljeno je više tehnika za sintezu i optimizaciju staze podataka. Posebno su razmatrane različite procedure koje pokazuju kao se grupišu promenljive i dodeljuju registrima, kako se grupišu registri u registarske fajlove, kako se grupišu operatori i dodeljuju više-funkcionalnim jedinicama i kako se grupišu veze u magistrale. Takođe, pokazano je kako se staza podataka može optimizovati u slučajevima kada se koriste funkcionalne jedinice različite brzine rada i kako se u stazu podataka mogu na efikasan način ugraditi spore funkcionalne jedinice. U drugom delu poglavlja, objašnjen je koncept protočnosti i pokazano je kako se performanse staze podataka mogu poboljšati uvođenjem protočnosti na nivou funkcionalnih jedinica i upravljačke jedinice, kao i na nivou celokupne staze podatak U poslednjem odeljku, pokazano je kako se standardni softverski programi mogu transformisati u ASM dijagrame korišćenjem algoritama za raspoređivanje operacije. Posebno je razmatrano raspoređivanje operacija koje ima za cilj da minimizuje vreme izvršenja algoritma u uslovima ograničenih resursa u stazi podataka, kako i raspoređivanje operacija koje teži minimizovanju potrebnih resursa u uslovima strogih vremenskih ograničenja.

U zaključku, u ovom poglavlju predstavljena je jedna celovita, opšta metoda za sintezu staze podataka na bazi ASM dijagrama.