You are on page 1of 225

ARHITEKTURA MIKROSISTEMA

- materijal za pripremu ispita –

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


2
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

3
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

4
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

5
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

6
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.

1
VLSI(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
Arhitektura mikrosistema

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.

8
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.

9
Arhitektura mikrosistema

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.

10
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.

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.

11
Arhitektura mikrosistema

Tabela 1.1 Reprezentacije dizajna i nivoi apstrakcije.

Nivo Bihejvioralne forme Strukturne komponente Fizički objekti


apstrakcije
Tranzistor Diferencijalne jednačine, U-I Tranzistori, otpornici, Analogne i digitalne ćelije
dijagrami kondenzatori
Gejt Bulove jednačine, konačni Gejtovi, flip-flopovi Moduli, jedinice
automati
Registar Algoritmi, dijagrami toka, Sabirači, komparatori, registri, Mikročipovi
skupovi instrukcija, ASM brojači, registarski fajlovi,
dijagrami staze podataka
Procesor Izvršna specifikacija, Procesori, kontroleri, Štampane ploče, mikročip-
programi memorije, ASIC kola 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

12
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

13
Arhitektura mikrosistema

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.

14
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.

15
Arhitektura mikrosistema

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

16
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.

17
Arhitektura mikrosistema

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.

18
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
Arhitektura mikrosistema

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.

20
Logičko projektovanje

(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.
x1 x2 xn-1 xn f(x1, x2, …, xn-1, xn)
indeks
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)
. . .
. . .
. . .
n
2 -1 1 1 1 0 f(1, 1, …, 1, 0)
n
2 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
n
funkciju. Odatle sledi da broj različitih prekidačkih funkcija od n promenljivih iznosi 22 .

21
Arhitektura mikrosistema

PRIMER 2.2 Za funkciju F zadatu tabelom PRIMER 2.1 Odrediti tabele istinitosti funkcija f, g i
istinitosti: h od 3 promenljive, zadatih:

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


x y z F(x, y, z)
indeks (b) skupom decimalnih indeksa g(1) = (1,3,4,6)
0 0 0 0 1
1 0 0 1 0 (c) skupom decimalnih indeksa h(0) = (0,1,5)
2 0 1 0 0
Odgovor:
3 0 1 1 1
4 1 0 0 1 Dec.
5 1 0 1 1 x y z f(x, y, z) g(x, y, z) h(x, y, z)
indeks
6 1 1 0 0
7 1 1 1 1 0 0 0 0 1 0 0
1 0 0 1 0 1 0
odrediti: 2 0 1 0 0 0 1
3 0 1 1 0 1 1
(a) skupove decimalnih indeksa F(0) i F(1) 4 1 0 0 1 1 1
(b) vektor istinitosti KF. 5 1 0 1 1 0 0
Odgovor: 6 1 1 0 1 1 1
7 1 1 1 1 0 1
(a) F(0) =(1,2,6), F(1) =(0,3,4,5,7)
(b) KF = (1,0,0,1,1,1,0,1)

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

22
Logičko projektovanje

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 desna
strana 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.

23
Arhitektura mikrosistema

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.3 Dokazati logički identitet: PRIMER 2.4 Dokazati da sledeća dva logička izraza
predstavljaju istu funkciju:
(x1 + x3) · (x1’ + x3’) = x1 · x3' + x1' · x3
F1(x, y, z) = x·y+x·y’·z+x’·y·z
Rešenje: Izraz sa leve strane znaka jednakosti,
LS, možemo transformisati na sledeći način: F1(x, y, z) = x·y+x·z+y·z
Primenom zakona distributivnosti, A3.a, Rešenje: Dokazaćemo da su prethodna dva izraza
dobijamo: ekvivalentna tako što ćemo prvi izraz redukovati na
drugi, na sledeći način:
LS = (x1 + x3) · x1’ + (x1 + x3) · x3’
x·y+x·y’·z+x’·y·z =
Ponovnom primenom zakona distributivnosti,
dolazimo do izraza: = x·y+x·y·z+x·y’·z+x’·y·z apsorbcija
= x·y+x·(y+y’)·z+x’·y·z distributivnost
LS = x1 · x1’ + x3 · x1’ + x1 · x3’ + x3 · x3’
= x·y+x·1·z+x’·y·z komplement
Uočimo da osobina distributivnosti omogućava
= x·y+x·z+x’·y·z identitet
“AND-ovanje” članova u zagradi na isti način
kao kod množenja u standardnoj algebri. = x·y+x·y·z+x·z+x’·y·z apsorpcija
= x·y+x·z+(x+x’) ·y·z distributivnost
Shodno aksiomi A5.b članovi x1 · x1’ i x3 · x3’
jednaki su 0, što daje: = x·y+x·z+1·y·z komplement
= x·y+x·z+y·z identitet
LS = 0 + x3 · x1’ + x1 · x3’ + 0
Nakon što smo dokazali da su dva izraza
Iz A2.a sledi:
ekvivalentna, nadalje možemo koristiti jednostavniji,
LS = x3 · x1’ + x1 · x3’ tj. onaj sa manjim brojem operatora. Brojanjem
operatora pristunih u algebarskim izrazima, možemo
Konačno, korišćenjem zakona komutativnosti,
zaključiti da izraz F1=x·y+x·z+y·z sadrži samo tri
A3.a i A3.b, dolazimo do izraza:
AND i dva OR operatora, umesto pet AND, dva OR i
LS = x1’ · x3 + x3’ · x1 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,
koji je identičan izrazu sa desne strane znaka možemo pretpostaviti da će on, takođe, zahtevati i
jednakosti polaznog identiteta. manje hardvera kada se funkcija F1 bude realizovala u
vidu kombinacione mreže.

24
Logičko projektovanje

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.

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

25
Arhitektura mikrosistema

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,

26
Logičko projektovanje

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.

27
Arhitektura mikrosistema

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.

28
Logičko projektovanje

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 Dec.
x y z f(x, y, z)
indeks
= m0 + m1+ m3
= x1’x2’ + x1’x2 + x1x2 0 0 0 0 0
1 0 0 1 1
Uočimo da se u konačnom izrazu pojavljaju samo oni mintermi koji 2 0 1 0 0
odgovaraju slogovima na kojima funkcija ima vrednost f=1. Ovo 3 0 1 1 0
zapažanje možemo uopštiti na proizvoljnu prekidačku funkciju: 4 1 0 0 1
5 1 0 1 1
Bilo koja prekidačka funkcija f može se predstaviti zbirom minterma koji 6 1 1 0 1
odgovaraju vrstama tabele istinitosti u kojima funkcija ima vrednost f=1. 7 1 1 1 0
Za logički izraz koji je sačinjen isključivo od sabranih proizvoda Sl. 2.11 Funkcija od tri
kaže se da je oblika zbir-proizvoda. Ako je pri tome svaki produktni član promenljive.
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:

29
Arhitektura mikrosistema

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) = ∑(m , m , m , m )


1 4 5 6

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.

30
Logičko projektovanje

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.

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
x1 x2 f(x1, x2)
njen komplement, f’, može predstaviti zbirom minterma za koje važi f=0. Na
primer, za funkciju sa Sl. 2.13 važi: 0 0 1
f’(x1, x2) = m2 0 1 1
1 0 0
= x1x2’
1 1 1
ako sada komplementiramo obe strane gornjeg iskaza dobićemo: Sl. 2.13 Funkcija dve
f’’ = f = (x1x2’)’ = x1’ + x2 promenljive.

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.

31
Arhitektura mikrosistema

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:

∏ (M , M , M , M ), ili, čak, jednostavnije:


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

f(x , x , x ) = ∏M(0, 2, 3, 7)
1 2 3

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.
x y z f(x, y, z)
indeks
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) = x ’x x ’ + x ’x x
1 2 3 1 2 3 + 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) = x ’x ’x ’ + x ’x ’x
1 2 3 1 2 3 + x1x2’x3’
Kanonički proizvod-suma funkcije f uključuje sve maksterme iz skupa f(0):
f(x1, x2, x3) = ∏M(0, 1, 4) = (x +x 1 2 +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’)

32
Logičko projektovanje

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

33
Arhitektura mikrosistema

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.

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)

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


2n
Kao što je poznato, broj Bulovih funkcija od n promenljivih iznosi 2 . 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.

34
Logičko projektovanje

Simbol Vrednosti funkcije za x,z= Algebarski


Ime operacije Komentar
operatora 00 01 10 11 izraz

Zero 0 0 0 0 F0=0 Binarna konstanta 0


AND x·y 0 0 0 1 F1=xy xiy
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

35
Arhitektura mikrosistema

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.

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

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.

36
Logičko projektovanje

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, Sl. 2.16 Tabela istinitosti
bićemo u mogućnosti da iskoristimo podizraz (xi ⊕ yi), koji je već deo potpunog sabirača.
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

1.4 2.4

xi yi ci+1 1.4
1.4 ci

1.4

2.4 4.2

Cena = 46 tran. 1.4 2.4 Cena = 36 tran.


2.4 2.4
ci+1 ci Putanja Kašnjenje Putanja Kašnjen
ulaz-izlaz (ns) ulaz-izlaz (ns)
4.2
ci -> ci+1 4.8 ci -> ci+1 2.8
1.4
ci -> si 4.2 ci -> si 3.8
xi,yi -> ci+1 9.0 xi,yi -> ci+1 5.2
xi,yi -> si 8.4 xi,yi -> si 7.2
si
si
(a) (b)
Sl. 2.17 Projektovanje potpunog sabirača: (a) rešenje sa minimalnim brojem operatora; (b) rešenje sa NAND i
OR kolima.

37
Arhitektura mikrosistema

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.

Cena (broj Kašnjenje


Ime gejta Grafički simbol Funkcija
tranzistora) (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.

38
Logičko projektovanje

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.

Cena (broj Kašnjenje


Ime gejta Grafički simbol Funkcija
tranzistora) (ns)

dvostruki 2-
F = (wx+yz)’ 8 2.0
ulazni AOI

trostruki 2-
F = (uv+wz+yz)' 12 2.4
ulazni AOI

dvostruki 3-
F = (uvw+xyz)’ 12 2.2
ulazni AOI

dvostruki 3-
F = ((w+x)(y+z)')' 8 2.0
ulazni OAI

trostruki 2-
F = ((u+v)(w+x)(y+z))' 12 2.2
ulazni OAI

dvostruki 3-
F = ((u+v+w)(x+y+z))' 12 2.4
ulazni OAI

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.

39
Arhitektura mikrosistema

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

1.8 1.8 1.8 1.8 Cena = 56 tran.


1.4 1.4 1.4
Putanja Kašnjenje
ulaz-izlaz (ns)

1.8 2.2 ci -> ci+1 3.2


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

(a) (b)
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.

40
Logičko projektovanje

PRIMER 2.12 (nastavak …)

xi

yi

ci

2.0 2.0 Cena = 46 tran.


2.4
Putanja Kašnjenje
ulaz-izlaz (ns)

ci -> ci+1 3.4


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

(a) (b)

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).

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.

41
Arhitektura mikrosistema

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

42
Logičko projektovanje

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`

43
Arhitektura mikrosistema

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.

44
Logičko projektovanje

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

45
Arhitektura mikrosistema

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

46
Logičko projektovanje

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)

47
Arhitektura mikrosistema

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.

48
Logičko projektovanje

(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.

49
Arhitektura mikrosistema

(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)

50
Logičko projektovanje

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

51
Arhitektura mikrosistema

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.

52
Logičko projektovanje

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.

53
Arhitektura mikrosistema

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

54
Logičko projektovanje

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

55
Arhitektura mikrosistema

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,

56
Logičko projektovanje

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.

57
Arhitektura mikrosistema

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.

58
Logičko projektovanje

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.

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.

59
Arhitektura mikrosistema

Shodno proceduri dekompozicije gejtova, svako n-ulazno AND (OR) kolo se može razložiti na stablo m-
ulaznih AND (OR) gejtova. Stablo ima log m n  nivoa sa ukupno ( n − 1) /( m − 1) m-ulaznih gejtova. Na
prvom nivou ovog stabla nalazi se n / m gejtova; izlazi ovih gejtova, zajedno sa preostalih ( n − n / m)
ulaza formiraju prvi nivo i služe kao ulazi u gejtove sa drugog nivoa. Ova procedura se ponavlja za svaki od
log m n 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 log 3 10 = 3 nivoa, sa ukupno
(10 − 1)(3 − 1) = 5 gejtova. Pošto postoji 10 ulaza u AND stablo, broj gejtova na prvom nivou biće
10 / 3 = 3 gejta. Broj ulaza u drugi nivo biće 3 + (10 − 3( 10 / 3)) = 4 što zahteva 4 / 3 = 1 gejt. Treći
nivo imaće 1 + (4 − 3( 4 / 3)) = 2 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 10 / 3 = 3
2 3 + (10 − 3( 10 / 3)) = 4 4 / 3 = 1
3 1 + (4 − 3( 4 / 3)) = 2 2 / 3 = 1
(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.

60
Logičko projektovanje

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.

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.

61
Arhitektura mikrosistema

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.
g3
p3
g2
p3
p2
g1 c4
p3
p2
p1
g0
p3
p2
p1
p0
c0

(a)

g3 g3
p3 p3
g2 g2 1.4

p3 p3
p2 p2 1.8
g1 g1
p3 p3
p2 c4 p2 1.8 1.8 c4
1.4 1.8
p1 p1
g0 g0
p3 p3
p2 p2 1.8
1.8
p1 p1
p0 p0
c0 c0

(b) (c)

62
Logičko projektovanje

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.

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

63
Arhitektura mikrosistema

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.

64
Logičko projektovanje

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.

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.

65
Arhitektura mikrosistema

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.

66
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).
Arhitektura mikrosistema

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)

68
Komponente digitalnih sistema

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.

69
Arhitektura mikrosistema

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.

70
Komponente digitalnih sistema

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)

bi

S0

S1
M

S1S0
bi 00 01 11 10 AE
0 1 1

1 1 1

yi = MS1'bi + MS0'bi’ yi

(c) (d)
Sl. 3.5 Aritmetički ekspander: (a) funkcionalna tabela; (b) tabela istinitosti; (c) Karnoova mapa; (d) struktura.

71
Arhitektura mikrosistema

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.

72
Komponente digitalnih sistema

(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.

73
Arhitektura mikrosistema

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 ∑ (0,2,3,5) . 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.

74
Komponente digitalnih sistema

PRIMER 3.1 (nastavak …)

Sl. 3.12 Sinteza funkcije ∑ (0,2,3,5) : (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.

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.

75
Arhitektura mikrosistema

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.

76
Komponente digitalnih sistema

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.

77
Arhitektura mikrosistema

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 log 2 n 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

78
Komponente digitalnih sistema

konstruisati pomoću n-1 multipleksera 2-u-1 raspoređenih u log 2 n 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.

79
Arhitektura mikrosistema

Sl. 3.21 Alternativno rešenje multipleksera 8-u-1: (a) tabela istinitosti; (b) realizacija na bazi dekodera.

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.

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.

80
Komponente digitalnih sistema

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.

81
Arhitektura mikrosistema

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 log 2 n 
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.

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.

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

82
Komponente digitalnih sistema

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.

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.

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.

83
Arhitektura mikrosistema

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.


n
Prioritetni koder 2 -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 = x2' n −1 x2' n − 2 K xi' xi , 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

84
Komponente digitalnih sistema

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.

85
Arhitektura mikrosistema

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.

86
Komponente digitalnih sistema

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 × 2 4 + 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.

87
Arhitektura mikrosistema

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:
1 ako je g > l
G=
0 inace

88
Komponente digitalnih sistema

1 ako je g = l
E=
0 inace
1 ako je g < l
L=
0 inace
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.

89
Arhitektura mikrosistema

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

90
Komponente digitalnih sistema

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

91
Arhitektura mikrosistema

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.

92
Komponente digitalnih sistema

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

93
Arhitektura mikrosistema

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.

94
Komponente digitalnih sistema

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.

95
Arhitektura mikrosistema

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).

96
Komponente digitalnih sistema

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.

97
Arhitektura mikrosistema

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.

98
Komponente digitalnih sistema

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.

99
Arhitektura mikrosistema

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

100
Komponente digitalnih sistema

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.

101
Arhitektura mikrosistema

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

Q(next) = S + R’Q
SR
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.

102
Komponente digitalnih sistema

Tip flip-flopa Dijagram stanja

SR

JK

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.

103
Arhitektura mikrosistema

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.

104
Komponente digitalnih sistema

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.

105
Arhitektura mikrosistema

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.

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).

1
=1 0
1 D 1
C D=
=1
D 10 C
1 C D=
=1 0 C
1 D 1
C D=
=1
D 10 C
C D=
C
Sl. 3.63 Procedura
sinteze konačnih
automata

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.

106
Komponente digitalnih sistema

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.

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 log 2 m flip-flopova. S
obzirom da će smanjenje broja stanja za ∆ zahtevati log 2 (m − ∆) stanja, ∆ mora biti takav broj da je log 2 m  -
log 2 (m − ∆) ≥ 1. Razmotrimo, na primer, kolo sa m=6 stanja. Smanjenje broja stanja na pet neće smanjiti broj
flip-flopova zato što je log 2 6 = log 2 5 =3. Sa druge strane, smanjenje broja stanja na četiri smanjiće broj flip-
flopova za 1, zato što je log 2 4 =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).

107
Arhitektura mikrosistema

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).
1

CD
=1

CD
0
CD

=1
=1

1
=1
CD

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.

108
Komponente digitalnih sistema

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 Redni Redni
s0 s1 s2 s3 s0 s1 s2 s3 s0 s1 s2 s3
broj broj broj
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,

109
Arhitektura mikrosistema

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.

110
Komponente digitalnih sistema

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.

111
Arhitektura mikrosistema

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.

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.

112
Komponente digitalnih sistema

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.

113
Arhitektura mikrosistema

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.
C D

1 1

1 1

Q 1'
Q1

2.4 J Q
4.0
K Q’

1.8

1.4 Y

2.2

2.4 J Q
Ulazno/izlazna
4.0 kašnjenja
K Q’
Q0' C,D Clk 4.4
Clk Y 7.6
C,D Y 5.6
Q0
Clk Clk 6.4
Clk

(a) (b)

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.

114
Komponente digitalnih sistema

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

115
Arhitektura mikrosistema

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.

116
Komponente digitalnih sistema

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).
Tekuće
Sledeće stanje
IL stanje
Shift Q3 Q2 Q1 Q0
Pomerački registar
Shift Q3 Q2 Q1 Q0 0 Bez promene

1 IL Q3 Q2 Q1

(a) (b)

IL

1 0 1 0 1 0 1 0
mux mux mux mux

Shift

D3 Q3 D2 Q2 D1 Q1 D0 Q0

Clk

Q3 Q2 Q1 Q0

(c)

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.

117
Arhitektura mikrosistema

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.

118
Komponente digitalnih sistema

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).

119
Arhitektura mikrosistema

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.

120
Komponente digitalnih sistema

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 2n
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

121
Arhitektura mikrosistema

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.

122
Komponente digitalnih sistema

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

123
Arhitektura mikrosistema

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.

124
Komponente digitalnih sistema

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

125
Arhitektura mikrosistema

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.

126
Komponente digitalnih sistema

Ulazna
A RWS magistrala

16 8

2 14 8
Dekoder
2-u-4
14 I
3 2 1 0 A

CS M0

RWS

8
8

14 I
A

CS M1

RWS

8
8

14 I
A

CS M2

RWS

8
8

14 I
A

CS M3

RWS

8
8
Izlazna
magistrala

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.

127
Arhitektura mikrosistema

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
Push/pop Enable Operacija preko ulaza IL pomeračkog registra i upisuje se na poziciju Q3, koja
X 0 Bez promene predstavlja vrh steka. Stanje brojača ukazuje na broj podataka u
steku. Sinhronizovano sa svakom rastućom ivicom taktnog signala,
0 1 Upis (push) pomerački registri obavljaju pomeranje na desno, a brojač broji
1 1 Čitanje (pop) unapred za 1 (Push/pop=0 i Enable=1), odnosno pomeranje na levo i
brojanje unazad (Push/pop=1 i Enable=1).
(a)

Kontrola pom. Kontrola Izlazi brojača


Push/ registra brojača Q2 Q1 Q0 Empty Full
pop Enable S1 S0 D E 0 0 0 1 0
X 0 0 0 X 0 0 0 1 0 0
0 1 1 1 0 1 0 1 0 0 0
1 1 1 0 1 1 0 1 1 0 0
1 0 0 0 1
(b)
(c)

128
Komponente digitalnih sistema

“0”
IN0
Reset IL IR
S1 Pom.Reg.
S0 Q3 Q2 Q1 Q0
.
OUT0

.
“0”
INm-1 .
Reset IL IR
S1 Pom.Reg.
S0 Q3 Q2 Q1 Q0
Push/pop
OUTm-1

Reset
D
Up/Down brojač
Enable E
Q3 Q2 Q1 Q0
Upravljačka logika

Empty

Full
Reset
Izlazna 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

129
Arhitektura mikrosistema

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).

Push/pop Enable Operacija


X 0 Bez promene
0 1 Upis (push)
1 1 Čitanje (pop)
(b)

Kontrola mux-a Kontrola mem. Kontrola broj.


Push/pop Enable 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

(c)

130
Komponente digitalnih sistema

D D
E Top E Top-1
Reset Reset Set

n n

Push/pop
1 0
S mux

1K RAM
Enable A

CS
Upravljačka RWS
logika

U/I
m
magistrala

n Empty

n Full
Izlazna logika

(d)

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.

131
Arhitektura mikrosistema

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
Sl. 3.95 Blok dijagram FIFO reda. 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)

132
Komponente digitalnih sistema

(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.

E E
Read/write Enable Operacija Read/write Enable S CS RWS
(Početak) (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)

133
Arhitektura mikrosistema

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
sum = ∑ xi
i =1

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.

134
Komponente digitalnih sistema

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.

135
Arhitektura mikrosistema

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.

136
Komponente digitalnih sistema

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 Adresa Adresa Adresa ALU Operacija


IE OE
reč upisa čitanja A čitanja B Operacija pom. reg.
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
Pomeranje na
6 0 R1 R1 0 Sabiranje 0
desno
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.

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,
Sl. 3.101 Algoritam brojanja jedinica
Brojač jedinica postavlja rezultat na izlaz, aktivira
prikazan u obliku konačnog automata
signal Done i vraća se u stanje S0.

137
Arhitektura mikrosistema

Upravljačka jedinica Brojača jedinica


ima dva ulazna signala, Start i Start (Podatak=0)
Podatak<>0 i jedan izlazni signal, Stanje Q2 Q1 Q0 00 01 10 11
Done. Signali Start i Done se koriste S0 0 0 0 000 000 001 001
S1 0 0 1 010 010 010 010
za komunikaciju sa okruženjem, dok
S2 0 1 0 011 011 011 011
signal Podatak≠0, u suštini, S3 0 1 1 100 100 100 100
predstavlja statusni signal staze S4 1 0 0 101 101 101 101
podataka. U svakom taktnom ciklusu, S5 1 0 1 110 110 110 110
upravljačka jedinica generiše 20 bita S6 1 1 0 100 111 100 111
upravljačke reči. Uočimo da su za S7 1 1 1 000 000 000 000
realizaciju osam stanja neophodna tri (a)
D flip-flopa, označena sa Q2, Q1 i Q0.
Na Sl. 3.103(a), (b) i (c) su prikazani Q1Q0 Q2=0 Q2=1
tabela sledećeg stanja, odgovarajuća 00 01 11 10 00 01 11 10
Karnoova mapa i jednačine sledećeg
Start(Pod=0)

stanja. 00 000 010 100 011 101 110 000 100


Izlazna logika Brojača jedinica se 01 000 010 100 011 101 110 000 111
dobija na osnovu upravljačke reči 10 001 010 100 011 101 110 000 111
prikazane na Sl. 3.101(c). Na Sl. 11 001 010 100 011 101 110 000 100
3.103(a) je prikazana tabela istinitosti
(b)
izlazne logike, koja je dobijena na
’ ’ ’
osnovu Sl. 3.101(c) zamenom Q2=Q2 Q1Q0+Q2Q1 +Q2Q0
odgovarajućih binarnih vrednosti za
Q1=Q1’Q0+Q2’Q1Q0’+ (Podatak=0)Q1Q0’
svaki mnemonik. Napomenimo da se
minimalni izrazi upravljačkih signala Q0=Q2’Q1Q0’+Q2Q1’Q0’+ StartQ1’Q0’+(Podatak=0)Q2Q0’
mogu dobiti na osnovu tabele
(c)
istinitosti sa Sl. 3.103(a), primenom
nekog od metoda logičke Sl. 3.103 Logika sledećeg stanja Brojača jedinica: (a)
minimizacije. Konačno, na Sl. 3.104 Tabela sledećih stanja; (b) Karnoova mapa; (c) Jendačine
dat je šematski prikaz Brojača jedinica sledećeg stanja.
koji koristi stazu podataka sa Sl.
3.99(a).

ALU Operacija
Adresa upisa Adresa čitanja A Adresa čitanja B
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

138
Komponente digitalnih sistema

Sl. 3.104 Šematski prikaz brojača jedinica.

139
Arhitektura mikrosistema

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.

140
Komponente digitalnih sistema

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

141
Arhitektura mikrosistema

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.
Upravljački ulazi

Statusni
Upravljački
signali
ulazi Statusni
signali
.. .
. ..
D Q
Logika
sledećeg stanja

Upravljački
Logika D Q . signali staze
Izlazna .
sledećeg
logika . podataka .. Upravljački
stanja . signali staze
. podataka
.
.
.
..
D Q
Upravljački
Registar
izlazi .. ..
stanja . .
Upravljački
Izlazna logika
izlazi
(a) (b)

Upravljački
ulazi
Upravljački
ulazi

load/count
Statusni
signali Statusni
signali
Inkrementer
Logika
sledećeg
Interno Logika
stanja
grananje sledećeg
. Upravljački stanja
. signali staze
. Upravljački
Eksterno . podataka . signali staze
grananje . podataka
Izlazna
logika Izlazna
logika
Eksterno
Upravljački grananje
izlazi Upravljački
izlazi
(c) (d)

Upravljački
ulazi
. Statusni
.. signali

Izbor uslova
mux

Inkrementer

ROM . Upravljački
ili . signali staze
PROM . podataka

Eksterna
adresa

Logika za izbor adrese

Upravljački
izlazi
(e)

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

142
Komponente digitalnih sistema

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.

143
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.
Arhitektura mikrosistema

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 ZELENO

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
ZUTO
namenu. U hardveru, jednobitnom signalu odgovara žica (veza), dok STOP
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 CRVENO
ove dve vrednosti smatra podrazumevanom. U kontekstu jednobitnih STOP
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 Sl. 4.2 ASM dijagram sa
signal postavljen za sve vreme dok je ASM dijagram u stanju koje je komandnim (upravljačkim)
pridruženo odgovarajućem pravougaoniku. U ostalim izlazima
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

146
ASM Dijagrami

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 ZELENO
se signal postavlja sa desne strane znaka jednakosti (=). U svim stanjima BRZINA=3

(pravougaonicima) gde vrednost višebitnog signala nije eksplicitno


definisana naredbom dodele, signal uzima svoju podrazumevanu
vrednost. ZUTO
STOP
BRZINA=1
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
CRVENO
pretpostavkom da je podrazumevana vrednost signala BRZINA 0, STOP
ponašanje opisano ASM dijagramom sa Sl. 4.3, može se predstaviti
sledećom tabelom:

Sl. 4.3 ASM dijagram sa


višebitnim izlazom

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 ZELENO
BRZINA=3
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 ZUTO STOP
BRZINA=1
memorisanja, već je njihova vrednost direktno određena tekućim BROJAC<-BROJAC+1
stanjem ASM dijagrama.
Operacija upisa u registar se označava naredbom registarskog CRVENO
STOP
prenosa, tj. naredbom dodele kod koje je znak jednakosti (=) zamenjen BROJAC<-BROJAC+2
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 Sl. 4.4 ASM dijagram sa
okviru nekog pravougaonika, to znači da će sadržaj tog registra ostati registarskim izlazom.
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

147
Arhitektura mikrosistema

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 Sl. 4.5 ASM dijagram sa odlukom.
stanju sledećih šest taktnih ciklusa. Razlog za napuštanje stanja
ŽUTO nalazi se u činjenici da je BROJAČ trobitna promenljiva,

148
ASM Dijagrami

č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 Sl. 4.6 ASM dijagram sa eksternim
romba. Po usvojenoj konvenciji, romb sa upisanim imenom statusom.
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

149
Arhitektura mikrosistema

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.
PREKIDAC STOP

ASM 2
BRZINA
3
BROJAC

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]).
Blok dijagram
PROVERA PROVERA

3
A ASM

0
A[0]
0 1
A==2

1
0 1
A[1]
NE DA

1 0
A[2]

NE DA

(1) (2)

Sl. 4.8 Dva načina tretiranja višebitnih ulaza.

150
ASM Dijagrami

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

151
Arhitektura mikrosistema

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.

152
ASM Dijagrami

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

153
Arhitektura mikrosistema

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.

PASIVNO
SPREMAN

0 1
TS

Stanja i odluke koje


realizuju izracunavanje
kolicnika. (ova stanja ne
postavljaju signal
SPREMAN TS SPREMAN

MASINA ZA
x DELJENJE x/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.

154
ASM Dijagrami

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

155
Arhitektura mikrosistema

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

156
ASM Dijagrami

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:

157
Arhitektura mikrosistema

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 <- x
SPREMAN

0 1
TS

INIT
r2 <- 0

1
r1 >= y

0 IZRACUNAVANJE_1

r1 <- r1 - y

IZRACUNAVANJE_2

r2 <- r2 + 1

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

158
ASM Dijagrami

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 <- x
r2 <- 0
SPREMAN

0 1
TS

1
r1 >= y

0 IZRACUNAVANJE_1

r1 <- r1 - y

IZRACUNAVANJE_2

r2 <- r2 + 1

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:

159
Arhitektura mikrosistema

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.

160
ASM Dijagrami

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:

161
Arhitektura mikrosistema

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 <- x
r2 <- 0
SPREMAN

0 1
TS

0 1
r1 >= y

NULA3
1
r3 <- 0 r1 >= y

0 IZRACUNAVANJE
r1 <- r1 - y
r2 <- r2 + 1
r3 <- r2

Sl. 4.21 Ispravna paralelizacija.

162
ASM Dijagrami

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

163
Arhitektura mikrosistema

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.

164
ASM Dijagrami

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

165
Arhitektura mikrosistema

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.

12 ldr1 clrr2 incr2 ldr3

12 12
x/y
12
12 (-)
y
r1 r2 r3

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:

aluctrl 12 ldr1 clrr2 incr2 ldr3


6

12 12
12 x/y
x 12
0 12 ALU
y
12
1
r1 r2 r3

muxctrl

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

166
ASM Dijagrami

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.

aluctrl 12 ldr1
6 clrr2 incr2 ldr3

12 12 12
x 12 x/y
0 12 ALU
12 r1
y 1 r1gey r2 r3
cmp

muxctrl
12

Sl. 4.26 Konačni oblik staze podataka.

PASIVNO
ldr1
clrr1
aluctrl = 'PROPUSTANJE
muxtrcl = 0
SPREMAN

0 1
TS

1
r1 >= y | TS

IZRACUNAVANJE
0
ldr1
incr2
ldr3
aluctrl = 'ODUZIMANJE
muxctrl = 1

Sl. 4.27 Razrađena ASM koja odgovara slikama Sl. 4.22 i Sl. 4.26.

167
Arhitektura mikrosistema

MAŠINA ZA DELJENJE

r1gey ldr1

clrr2

TS ldr3

aluctrl 6
x/y
UPRAVLJACKA 12
muxctrl STAZA PODATAKA
JEDINICA
incr2

12
x
12
y SPREMAN

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 ldr1
aluctrl = 'PROPUŠTANJE
muxctrl = 0
SPREMAN

0 1
TS

INIT
clrr2

TEST

1
r1gey

IZRACUNAVANJE_1
0
ldr1
aluctrl = 'ODUZIMANJE
muxctrl = 1

IZRACUNAVANJE_2

incr2

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

168
ASM Dijagrami

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.
12

ldr1
12
x 0 12
1 a
12 2
r1 ALU
12 cout
2 y b
muxctrl
ldr2 6

aluctrl
12
x/y

r2

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.

169
Arhitektura mikrosistema

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 log 2 ( n ) -
bitni kod.
Razrađena ASM iz odeljka 4.7.1 sadrži
samo dva stanja. Usvojićemo da se stanje tst sst
PASIVNO kodira sa 0, a stanje Kombinaciona Registar
IZRAČUNAVANJE sa 1. logika tekuceg
sledeceg stanja
Takođe, neophodno je poznavati konkretne statusni upravljacki
binarne kombinacije za kontrolu ALU jedinice. signali stanja signali
Usvojićemo da su operacije ALU jedinice
kodirane u skladu sa specifikacijama standardne
ALU komponente 74xx181: gde je
Sl. 4.32 Upravljačka jedinica.

170
ASM Dijagrami

'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.

171
Arhitektura mikrosistema

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.

172
ASM Dijagrami

a[0]
SUMA[0]
a b[0]

a[1]

SUMA[1]
b b[1] SUMA

SUMA[2]

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.

173
Arhitektura mikrosistema

1 a[0]
2
a 1
1 sum[2]
HA
b[0]

1 a[1]

1 3
sum[1]
b
2
b[1]
FA sum

1 sum[2]

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.

174
ASM Dijagrami

12

12 MAŠINA ZA
DELJENJE

(opis ponašanja je dat 12


u obliku ASM
dijagrama) SPREMAN
TS

Sl. 4.38 Polazni blok dijagram.

MAŠINA ZA DELJENJE
x

STAZA PODATAKA

0
ALU <
1
r1 komp.
r1gey muxctrl

aluctrl
TS ldr1
UPRAVLJACKA
JEDINICA ldr3

(opis ponašanja dat u incr2


obliku razradjenog ASM
dijagrama) clrr2

12 x/y

r2 r3

SPREMAN

Sl. 4.39 Razrađeni blok dijagram.

MAŠINA ZA DELJENJE
x

y
KONTROLER

STAZA PODATAKA

Registar
sst tst
tekuceg 0
stanja ALU <
1
r1 komp.
r1gey muxctrl

aluctrl
Logika
TS sledeceg ldr1
stanja
ldr3

incr2

clrr2

12 x/y

r2 r3

SPREMAN

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.

175
Arhitektura mikrosistema

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.

176
ASM Dijagrami

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:

177
Arhitektura mikrosistema

ZELENO
BRZINA=3

ŽUTO STOP
BRZINA=1
INC
LD INC

3 3
BROJACQ0
3 0
+ 3
Komp. BROJACQ0 OSTANI
3 0
BROJAC
2

NAPUSTI

CRVENO
STOP
LD

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):

178
ASM Dijagrami

r1 <- x
SPREMAN
PASIVNO

0 1
TS

r2 <- 0

1
r1 >= y

0 IZRACUNAVANJE_1

r1 <- r1 - y

IZRACUNAVANJE_2

r2 <- r2 + 1

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:

r1 <- x
SPREMAN
PASIVNO

0 1
TS

r2 <- 0

1
r1 >= y

0
IZRACUNAVANJE_12

r1 <- r1 - y
r2 <- r2 + 1

Sl. 4.44 Neispravna mašina za deljenje Milijevog tipa.

179
Arhitektura mikrosistema

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:

PASIVNO
r1 <- x
SPREMAN

0 1
TS

r2 <- 0

1
r1 >= y

0
IZRACUNAVANJE
r1 <- r1 - y

1
r1 >= y

r2 <- r 2 + 1 0

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.

180
ASM Dijagrami

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.

PASIVNO
r1 <- x
SPREMAN

0 1
TS

r2 <- 0

1
r1 >= y

0
IZRACUNAVANJE
r1 <- r1 - y

1 0
r1 >= y

r2 <- r2 + 1 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.

181
Arhitektura mikrosistema

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

182
ASM Dijagrami

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 detekciju
ukljucenja
napona napajanja

D
reset
R
Q
PASIVNO

TS
0 1

reset D
R
Q
INIT

TEST

r1gey
0 1

reset D
R
Q
IZRACUNAVANJE_1

reset D
R
Q
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

183
Arhitektura mikrosistema

¨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).
"1"

reset D
R
Q

Kolo za detekciju
ukljucenja 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.

184
ASM Dijagrami

Kolo za detekciju "1" ldr1


ukljucenja aluctrl[3]
napona napajanja
"0" aluctrl[2]

IZRACUNAVANJE incr2
ldr3
muxctrl
aluctrl[4]
aluctrl[0]
D PASIVNO
reset clrr2
R
aluctrl[5]
Q
PASIVNO aluctrl[1]
SPREMAN

TS
0 1

r1gey
TS 0 1

D
reset
R
Q
IZRACUNAVANJE

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.

185
Arhitektura mikrosistema

PASIVNO ldr1
aluctrl = 'PROPUSTANJE
muxctrl = 0
SPREMAN

0 1
TS

clrr2

1
r1gey
IZRACUNAVANJE
0 ldr1
aluctrl = 'ODUZIMANJE
muxctrl = 1

1 0
r1gey

incr2 SPREMAN

Sl. 4.52 Razrađeni ASM koji opisuje ponašanje upravljačke jedinice sa Sl. 4.51.

Kolo za detekciju
"1" ldr1
ukljucenja
napona napajanja aluctrl[3]

"0" aluctrl[2]
IZRACUNAVANJE
muxctrl
aluctrl[4]
aluctrl[0]
PASIVNO
aluctrl[5]
D
reset aluctrl[1]
R
Q
PASIVNO SPREMAN
CMD2
CMD3 incr2
TS
CMD1 clrr2
0 1
CMD1

r1gey
0 1

D
reset
R
Q
IZRACUNAVANJE

r1gey
0 1
CMD2
CMD3

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

186
ASM Dijagrami

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.

187
Arhitektura mikrosistema

188
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:

a 2 + b 2 ≈ max((0.875x + 0.5 y ), x )
Arhitektura mikrosistema

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.

Sl. 5.1 ASIC za izračunavanje kvadratnog


korena zbira dva označena cela broja.

Max. broj
s1 s2 s3 s4 s5 s6 s7 s1 s2 s3 s4 s5 s6 s7
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 Broj 2 1 2 1 1 1
t4 X X operacija
t5 X
t6 X
t7 X
Broj živih 2 2 2 3 3 2 1
promenljivih
(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.

190
Sinteza staze podataka

Š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).
¨0¨ b ¨0¨ b
bit znaka

Oduzimac Oduzimac
bit znaka

1 0 1 0
Mux Mux

|b| |b|
(a) Jedinica za odredjivanje (b) Jedinica za odredjivanje
apsolutne vrednosti (Verzija 1) apsolutne vrednosti (Verzija 2)

a b a b a b

Oduzimac Oduzimac Oduzimac


bit znaka bit znaka bit znaka

1 0 1 0 Min/Max 1 0
Mux Mux Mux

min(a,b) max(a,b) min/max(a,b)

(c) Jedinica Min (d) Jedinica Max (e) Jedinica Min/Max

a
a a
... ...
>> 1 >> 3
...
¨0¨ 0 0 0 ...
upravljanje 1 0
Mux
... ... pomeranjem

a >> 1 a >> 3 a>>3/ a >> 1


(f) Pomerac udesno (g) Pomerac (h) 1-bitni/3-bitni
za jedan bit udesno za tri bita pomerac udesno

a b a b
a b
Add/Sub

0 1
Sabirac Sabirac Sabirac

a+b a-b a+b/a-b

(i) Sabirac (j) Oduzimac (k) Sabirac/Oduzimac

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

191
Arhitektura mikrosistema

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 a b t1 t2 x y t3 t4 t5 t6 t7
pomoć jedinice abs1, zahteva prenos tipa I (ulaznu
abs1 I O
veza) iz registra a do jedinice abs1 i prenos tipa O abs2 I O
(izlazna veza) od jedinice abs1 do registra t1. min I I O
Slično, operacija x=max(t1, t2) iz stanja s2 koja se max I I I O I O
obavlja u jedinici max, zahteva da između registara >>3 I O
t1 i t2, sa jedne i jedinice max, sa druge stane, >>1 I O
postoje dve ulazne veze, i da između jedinice max i - I I O
registra x postoji jedna izlazna veza. Kao što se + I I O
može uočiti sa Sl. 5.4, SRA kolo zahteva 14 ulaznih Sl. 5.4 Tabela povezanosti.
i 9 izlaznih veza, što čini ukupno 23 veze.

192
Sinteza staze podataka

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. Sl. 5.5 Algoritam ¨leve ivice¨.
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

193
Arhitektura mikrosistema

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.
Ul1 Ul2

Multiplekser Multiplekser Multiplekser

R1 R2 R3

|a| |b| min max + - >>1 >>3

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

194
Sinteza staze podataka

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.

. a c b d a,c b,d
.
. m2
m1
Multiplekser Multiplekser Multiplekser Multiplekser
si
x=a+b

. + +
.
.
sj m3 m4
y=c+d Multiplekser Multiplekser Multiplekser

.
. x y x,y
.
(a) (b) (c)

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.

195
Arhitektura mikrosistema

Promenljive koje u grafu kompatabilnosti nisu spojene granom su


takođe kompatabilne, u smislu da se mogu udružiti, ali se njihovim Pocetak
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 Kreirati graf kompatibilnosti
promenljivih
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 Kombinovati cvorove sa
superčvora i ostalih čvorova. Algoritam kreira nekompatabilnu granu najvišim prioritetom

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 Modifikovati graf
jednim čvorom u superčvoru, a koji je kompatabilan sa svim kompatibilnosti
č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.
Ne Svi cvorovi su
Ako algoritam podele grafa primenimo stazu podataka SRA kola, nekompatiblini
dobićemo grupisanje promenljivih koje se neznatno razlikuje od Da
grupisanja koga daje algoritam leve ivice. Prvo, neophodno je kreirati
Kraj
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 Sl. 5.9 Algoritam podele grafa.
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.

196
Sinteza staze podataka

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.

197
Arhitektura mikrosistema

Ul1 Ul2

Multiplekser Multiplekser

R1 R2 R3

|a| |b| min max + - >>1 >>3

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.
.
.
.
a c b d
si
x=a+b a b c d

Multiplekser Multiplekser
.
.
. + -
sj +/-
y=c-d

x y
.
.
. x y

(a) Parcijalni ASM (b) Resenje kod koga nije (c) Resenje kod koga je
dijagram izvrsena dodela izvrsena dodela
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

198
Sinteza staze podataka

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.

a b a b

c1

Sabirac Sabirac
Bit znaka
Bit znaka

1 0 1 0
Mux
c1 Mux

c0 c1 OPERACIJA
0 0 Apsolutna c0 c1 OPERACIJA
0 1 Minimum 0 0 Sabiranje
1 1 Maksimu c0 1 0
1 0 0 1 Minimum
Mux Mux
c0 1 0 Oduzimanje
1 1 Maksimum

(a) Jedinica za izracunavanje minimuma, (a) Jedinica za izracunavanje zbira, razlike,


maksimuma i apsolutne vrednosti minimuma, maksimuma

a b

a b

c0 c2
c1

Sabirac
Sabirac Bit znaka

Bit znaka
1 0
Mux
1 0
Mux

c0 c1 c2 OPERACIJA
c1 1 0 0 0 1 Sabiranje
c0 c1 OPERACIJA
Mux 1 0 0 Apsolutna
1 0 Sabiranje
0 1 Apsolutna 1 0 1 Oduzimanje
1 1 Oduzimanje 1 1 0 Minimum
c0 1 1 1 Maksimum

(c) Jedinica za izracunavanje zbira, razlike i (d) Jedinica za izracunavanje zbira, razlike,
apsolutne vrednosti minimuma, maksimuma i apsolutne vrednosti

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

199
Arhitektura mikrosistema

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.

Komponenta
|a| |b|
AND Invertor EX-OR
Jedinica logika logika logika Sabirac Multiplekser
|a| 1 1 1
min max |b| 1 1 1
min 1 1 1
max 1 1 1
+ 1
+ - - 1 1
Ukupno 5 6 4
(a) Graf kompatibilnosti (b) Tabela cene

|a| |b|

Komponenta
min max AND Invertor EX-OR
Jedinica logika logika logika Sabirac Multiplekser
|a|/min 1 1 1 2
|b|/max/+/- 1 1 1 2
+ - Ukupno 2 1 1 2 4
(d) Tabela cene
(b) Resenje I

|a| |b|

Komponenta
min max
AND Invertor EX-OR
Jedinica logika logika logika Sabirac Multiplekser
|a|/min/+ 1 1 1 2
|b|/max/-Sl. 5-11Kombinovanje
1 1
operatora kod implementacije2SRA
+ - Ukupno 2 1 1 2 4
(f) Tabela cene
(c) Resenje II
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.

200
Sinteza staze podataka

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

201
Arhitektura mikrosistema

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].

202
Sinteza staze podataka

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] AU1 = [|b|/min/+/-]
R2 = [b, t2, y, t3, t5, t6] AU2 = [|a|/max]
R3 = [t4] SH1 = [>>1]
SH2 = [>>3]

(a) Dodela registara i funkcijskih jedinica

Ul1 Ul2

Multiplekser Multiplekser

R1 R2 R3

Multiplekser

>> 1 >> 3
[abs/max] [abs/min/+/-]

Izl

(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-

203
Arhitektura mikrosistema

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.

204
Sinteza staze podataka

Ul1 Ul2

Multiplekser Multiplekser

R1 R2 R3

D E

B C Multiplekser
F G H
A >> 1 >> 3
[abs/max] [abs/min/+/-]
K L
I J

Izl
(a) Staza podataka SRA kola

A M
s0 s1 s2 s3 s4 s5 s6 s7
A X
B X X
H
C x X X C
D X X
E X I K
D E
F X X X X
G x
H X
I X X X
J X x x X
F J L
K X B
L X
M X
N X N
G

(b) Tabela koriscenja veza (c) Graf kompatibilnosti za (d) Graf kompatibilnosti za
ulazne grane izlazne grane

Ul1 Ul2

R1 R2 R3

Bus1
Bus2

[abs/max] [abs/min/+/-]
Bus1 = [A,C,D,E,H] >> 3 >> 1
Bus2 = [B,F,G]
Bus3
Bus3 = [I,K,M] Bus4
Bus4 = [J,L,N]
(c) Staza podataka
(e) Dodela magistrala Izl zasnovana na magistralama

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

205
Arhitektura mikrosistema

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.
s0 s1 s2 s3 s4 s5 s6 s7 R1 R2

R1

R1 = [a, t1, x, t7] R2


R2 = [b, t2, y, t3, t5, t6]
R3 = [t4] R3 R3

(a) Dodela registara (b) Tabela pristupa registrima (c) Graf kompatibilnosti

Ul1 Ul2

R1

R3 R2

Bus1
Bus2

[abs/max] [abs/min/+/-]
>> 1 >> 3

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

206
Sinteza staze podataka

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.

207
Arhitektura mikrosistema

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.

208
Sinteza staze podataka

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

209
Arhitektura mikrosistema

jedinica može da radi sa taktnim ciklusom koji je


približno dva puta kraći u odnosu na taktni ciklus a b

neprotočne jedinice. Napomenimo da to nije slučaj u c0


konkretnom primeru protočne AU pošto treba očekivati c1
c2
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 Lecevi
stepen. Kao što je već rečeno, protočnoj jedinici su i Sabirac
dalje potrebna dva taktna ciklusa (ili stanja) za
izračunavanje rezultata; u prvom taktnom ciklusu,
parcijalni rezultat (međurezultat) se pamti u registrima; Bit znaka

u drugom taktnom ciklusu drugi stepen generiše


1 0
konačni rezultat, dok, u isto vreme prvi stepen generiše Mux

parcijalni rezultat za sledeći skup operanada, i tako


dalje za svaki sledeći skup operanada.
1 0
Da bi smo uporedili performanse protočnih i Mux

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 Sl. 5.23 Protočna aritmetička jedinica.
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.

210
Sinteza staze podataka

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.

211
Arhitektura mikrosistema

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

212
Sinteza staze podataka

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
STEPEN 1
Pomerači >>1 >>3
R1 – upis a t1
R2 – upis b t2
R3 – čitanje t3 t5 t6 t7
R4 – čitanje x x
R5 – čitanje t4
AU stepen 2 - + max STEPEN 2
R3 – upis t3 t5 t6 t7
R4 – upis x
R5 – upis t4
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.

213
Arhitektura mikrosistema

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.

214
Sinteza staze podataka

(a) Standardna (neprotočna) realizacija upravljačke jedinice i staze podataka


Ulazi staze podataka
Upravljacki ulazi

Upravljacki
signali
Multiplekser

Registarski Memorija
Registar fajl

. . .
Logika Registar
. sledeceg . sledeceg . Izlazna Bus1
logika
. stanja
. stanja
. Bus2

AU2 */
Statusni
signali

Registar
- Upravljacka jedinica - - Staza podataka -

Upravljacki izlazi Izlazi staze 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.

215
Arhitektura mikrosistema

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,

216
Sinteza staze podataka

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.

Ul1 Ul2
a = Ul1
b = Ul2
a b

0 0
Start Start

1 1
a b
|a| |b|

min max
t1 = |a|
t2 = |b|
x = max(t1,t2)
y = min(t1,t2) >>1 >>3
t3 = x >> 3
t4 = y >> 1
t5 = x - t3
t6 = t4 + t5 -
t7 = max(t6,x)
Obavljeno = 1 +
Izl = t7

max

Izl Obavljeno

(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.

217
Arhitektura mikrosistema

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 a b a b
dodeljena različitim stanjima, a to znači da ASAP
algoritam generiše raspored koji ima najmanji mogući s1 |a| |b| |a| |b|
broj stanja, tj. najkraće vreme izvršenja, a koje je
jednako broju operacija (čvorova) na kritičnom putu t 1
t t 2
t 1 2

DFG grafa.
s2 min max max
Za razliku od ASAP pristupa, ALAP algoritam x
y x
raspoređuje svaku operaciju u najkasnije stanje pre
stanja u kome je rezultat te operacije potreban kao s3 >>1 >>3 min >>3
operand nekoj od operacija koje su njeni neposredni
t4 t3 y t3
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 s4 - >>1 -
prolazi kroz DFG od dna prema vrhu i svakom stanju, t5 t4 t5

počev od najkasnijeg stanja konačnog rasporeda,


dodeljuje sve one operacije čiji su svi neposredni s5 + +
naslednici već dodeljeni nekom od kasnijih stanja. Ako t6 t6
je zadata dužina rasporeda jednaka broju stanja u
rasporedu koji je dobijen ASAP algoritmom, tada će s6 max max
ALAP algoritam rasporediti sve čvorove sa kritičnog t7 t7
puta DFG grafa u ista stanja u koja ih je rasporedio i
ASAP algoritam. Kod rasporeda dobijenog ASAP s7
algoritmom, operacije koje nisu na kritičnom putu
izvršavaju se ranije nego što je to neophodno. Suprotno,
Izl Izl
kod rasporeda dobijenog ALAP algoritmom, operacije
koje nisu na kritičnom putu, izvršavaju se što je kasnije (a) ASAP raspored (b) ALAP raspored
moguće.
Sl. 5.31 ASAP i ALAP šeduling.

218
Sinteza staze podataka

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.

219
Arhitektura mikrosistema

5.10.3 Resursima ograničeno raspoređivanje


Jedan od najčešće korišćenih RC šeduling algoritama je list-šeduling Pocetak
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.
Primeniti ASAP algoritam
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. Primeniti ALAP algoritam
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 Odrediti mobilnosti
operacija
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, Kreirati inicijalnu listu
dodeliti raspoloživim funkcionalnim jedinicama; (2) izbaciti iz liste sve spremnih operacija

operacije koje su dodeljene u koraku (1); (3) umetnuti u listu spremnih


operacija sve operacije koje postaju raspoložive za raspoređivanje nakon Sortirati listu spremnih
koraka (1) i to na pozicije koje odgovaraju njihovim mobilnostima i operacija po mobilnosti
urgentnostima. Dijagram toka list-šeduling algoritma prikazan je na Sl. 5.32.
Operacije iz liste
Rad list-šeduling algoritma ilustrovan je na Sl. 5.33, na primeru DFG grafa rasporediti u tekuce
iz bloka dodele sa Sl. 5.30(b), pod pretpostavkom da su na raspolaganju: (a) stanje
jedna aritmetička jedinicom koja je u stanju da obavlja operacije: minimum,
maksimum, sabiranje, oduzimanje i određivanje apsolutne vrednosti i (b) dva Rasporedjene operacije
pomerača. Prvo, kreiraju se ASAP i ALAP rasporedi, kao što je prikazano na izbaciti iz liste
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
Ubaciti u listu operacije
slučaju, u prvom stanju, jedino su operacije |a| i |b| raspoložive za koje su postale spremne
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.
Uvecati za jedan indeks
Dajmo prednost operaciji |a| i postavimo je na početak liste. Sada, uzimamo tekuceg stanja
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
ne Sve operacije su
moguće rasporediti u isto stanje gde i operaciju |a|, pa je time raspoređivanje rasporedjene?
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 da

algoritam prelazi na raspoređivanje drugog stanja, s2. Jedina spremna operacija Kraj
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
Sl. 5.32 List-šeduling
operacija max nalazi na kritičnom putu, njena pokretljivost je M(max)=0, što algoritam.
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.

220
Sinteza staze podataka

s1 |a| |b| |a| |b| |a| |b| |a|


0 0

s2 min max max


|b| |b|
0

s3 max min
>>1 >>3 min >>3 max

0 1

>>3 min
s4 - >>1 - min >>3

0 1

s5 + + - >>1
>>1 -
0 1

s6 max max
+ +
0

max
s7 max

Izl Izl

s8

Izl
(a) ASAP (b) ALAP (c) Lista spremnih
operacija (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.

221
Arhitektura mikrosistema

Nakon što su određeni opsezi mobilnosti za sve operacije iz


DFG grafa, za svako stanje si iz opsega mobilnosti neke operacije op Pocetak
dodeljuje se verovatnoća da će ta operacija biti raspoređena u to
stanje, P(op,si). Svim stanjima iz opsega mobilnosti operacije op
Primeniti ASAP algoritam
dodeljuje se ista verovatnoća, jednaka:
1 (5.1)
P(op, si ) =
ALAP (op ) − ASAP (op ) + 1 Primeniti ALAP algoritam

gde je ASAP(op) redni broj stanja u koje je operacija op


Odrediti opsege
raspoređena ASAP algoritmom, a ALAP(op) redni broj stanja u koje mobilnosti operacija
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 Kreirati distribucioni graf
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.
Sve operacije su da
U sledećem koraku, TC šeduling algoritam prolazi kroz sva rasporedjene?
stanja i za svako stanje nalazi sve operacije čiji opsezi mobilnosti
pokrivaju to stanje; zatim, grupiše kompatabilne operacije (operacije ne
istog tipa, tj. one koje se izvršavaju na funkcionalnim jedinicama Za sve nerasporedjene
istog tipa) i za svaku grupu, posebno, sabira verovatnoća sa kojima operacije odrediti ukupne
sile u svim stanjima iz
pojedinačne operaciju iz te grupe pokrivaju dato stanje. Na taj način, opsega mobilnosti
za svaki tip operacije, kreira se poseban distribucioni grafikon (ili
grafikon raspodele suma verovatnoća) DG, koji ukazuje na raspodelu
Izabrati par operacija-
konkurentnosti (istovremenosti) operacija po stanjima. Za svaki DG, stanje sa najmanjom
raspodela u stanu si iznosi: ukupnom silom i
rasporediti tu operaciju u

∑ P(op, s )
to stanje
DG ( si ) = (5.2)
i
op∈Tip operacije

Azurirati opsege
gde suma obuhvata sve operacije datog tipa. Drugim rečima, DG(si) mobilnosti i distribucioni
graf
ukazuje na očekivani broj funkcionalnih jedinica datog tipa, potreban
da bi se obavile sve operacije tog tipa koje se javljaju u stanju si.
Kraj
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 Sl. 5.34 TC šeduling.
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,

222
Sinteza staze podataka

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 a b

s1 |a| |b| 1.0

|a| |b|

s2 min max |a| |b| 1.83

max
min
s3 >>1 >>3 max
0.83 0.83

>>3
>>1
s4 - min >>3 0.83 0.83

-
s5 + >>1 - 1.0 0.33

s6 max + 1.0
max

s7 max 0.5

Izl

s8

Izl
(a) ASAP (b) ALAP (c) Opsezi mobilnosti (d) Distribucioni graf (e) Opsezi mobilnosti (f) Distribucioni
raspored raspored AU operacija za AU operacije pomerackih operacija graf za pomeracke
operacije

s1 1.0

|a| |b|

s2 1.5
max

min

s3 1.5 0.5
>>3

s4 0.5 1.0
>>1

-
s5 1.0 0.5

s6 1.0
max

s7 0.5

s8

(g) Opsezi mobilnosti i distribucioni grafovi nakon rasporedjivanja operacije min u stanje s2

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

223
Arhitektura mikrosistema

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
DG ( sk )
DF ( si ) = DG ( si ) − ∑ (5.3)
k =b b − t + 1

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:
nt t
DG ( sk ) DG ( sk )
DF ( snb , snt ) = ∑ b − t +1 − ∑ b − t +1
k = nb k =b
(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

224
Sinteza staze podataka

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.

225

You might also like