Professional Documents
Culture Documents
Arhitektura Mikrosistema PDF
Arhitektura Mikrosistema PDF
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
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.
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.
9
Arhitektura mikrosistema
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.
11
Arhitektura mikrosistema
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.
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.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.
15
Arhitektura mikrosistema
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.
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.
17
Arhitektura mikrosistema
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.
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
(b) OR gejtovi
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)
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:
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.
22
Logičko projektovanje
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.
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.
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.
28
Logičko projektovanje
29
Arhitektura mikrosistema
(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:
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
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.
31
Arhitektura mikrosistema
f(x , x , x ) = ∏M(0, 2, 3, 7)
1 2 3
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:
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
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.
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.
34
Logičko projektovanje
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
XOR F = x⊕ y 14 4.2
NXOR F = x⊗ y 12 3.2
36
Logičko projektovanje
1.4 2.4
xi yi ci+1 1.4
1.4 ci
1.4
2.4 4.2
37
Arhitektura mikrosistema
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.
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
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
(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
xi
yi
ci
(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.
41
Arhitektura mikrosistema
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.)
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.
44
Logičko projektovanje
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.
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.
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.
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
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.
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.
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.
52
Logičko projektovanje
53
Arhitektura mikrosistema
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.
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.
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.
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).
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
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.
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
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
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.
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.
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.
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.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.
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
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.
75
Arhitektura mikrosistema
76
Komponente digitalnih sistema
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.
(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.
(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.
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.
3.1.9 Koderi
Koder je digitalno kolo koje ima suprotnu funkciju od dekodera. Namena kodera je da kodira ulaynu
informaciju u kompaktniji oblik.
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.
(a) (b)
Sl. 3.27 Binarni koder 4-u-2: (a) tabela istinitosti; (b) kolo.
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.
(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.
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.
85
Arhitektura mikrosistema
86
Komponente digitalnih sistema
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.
87
Arhitektura mikrosistema
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.
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.
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.
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.
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“.
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.
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.
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.
95
Arhitektura mikrosistema
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
102
Komponente digitalnih sistema
SR
JK
103
Arhitektura mikrosistema
104
Komponente digitalnih sistema
105
Arhitektura mikrosistema
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
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.
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
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
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.
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.
112
Komponente digitalnih sistema
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
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
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
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č.
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.
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.
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
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)
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).
(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
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.
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č.
136
Komponente digitalnih sistema
137
Arhitektura mikrosistema
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
139
Arhitektura mikrosistema
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.
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
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
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
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
… … …
146
ASM Dijagrami
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.
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
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)
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.
151
Arhitektura mikrosistema
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.
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
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.
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.
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.
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
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.
PASIVNO r1 <- x
r2 <- 0
SPREMAN
0 1
TS
1
r1 >= y
0 IZRACUNAVANJE_1
r1 <- r1 - y
IZRACUNAVANJE_2
r2 <- r2 + 1
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.
159
Arhitektura mikrosistema
160
ASM Dijagrami
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
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
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.
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
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 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:
12 12
12 x/y
x 12
0 12 ALU
y
12
1
r1 r2 r3
muxctrl
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
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
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.
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.31 Razrađena ASM koja odgovara slikama Sl. 4.12 i Sl. 4.30.
169
Arhitektura mikrosistema
170
ASM Dijagrami
171
Arhitektura mikrosistema
172
ASM Dijagrami
a[0]
SUMA[0]
a b[0]
a[1]
SUMA[1]
b b[1] SUMA
SUMA[2]
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
174
ASM Dijagrami
12
12 MAŠINA ZA
DELJENJE
MAŠINA ZA DELJENJE
x
STAZA PODATAKA
0
ALU <
1
r1 komp.
r1gey muxctrl
aluctrl
TS ldr1
UPRAVLJACKA
JEDINICA ldr3
12 x/y
r2 r3
SPREMAN
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
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.
176
ASM Dijagrami
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
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
r1 <- x
SPREMAN
PASIVNO
0 1
TS
r2 <- 0
1
r1 >= y
0
IZRACUNAVANJE_12
r1 <- r1 - y
r2 <- r2 + 1
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.
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
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
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
181
Arhitektura mikrosistema
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.
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
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
184
ASM Dijagrami
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.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
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
a 2 + b 2 ≈ max((0.875x + 0.5 y ), x )
Arhitektura mikrosistema
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
1 0 1 0 Min/Max 1 0
Mux Mux Mux
a
a a
... ...
>> 1 >> 3
...
¨0¨ 0 0 0 ...
upravljanje 1 0
Mux
... ... pomeranjem
a b a b
a b
Add/Sub
0 1
Sabirac Sabirac Sabirac
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.
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
R1 R2 R3
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
196
Sinteza staze podataka
197
Arhitektura mikrosistema
Ul1 Ul2
Multiplekser Multiplekser
R1 R2 R3
Izl
Sl. 5.11 Dodela registara generisana algoritmom podele grafa kompatabilnosti promenljivih.
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 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
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
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.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]
Ul1 Ul2
Multiplekser Multiplekser
R1 R2 R3
Multiplekser
>> 1 >> 3
[abs/max] [abs/min/+/-]
Izl
Sl. 5.18 Staza podataka SRA kola dobijena korišćenjem prioritetne podele.
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
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
(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.
207
Arhitektura mikrosistema
208
Sinteza staze podataka
209
Arhitektura mikrosistema
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.
211
Arhitektura mikrosistema
212
Sinteza staze podataka
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.
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.
214
Sinteza staze podataka
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 -
215
Arhitektura mikrosistema
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
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.
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
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.
219
Arhitektura mikrosistema
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
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
221
Arhitektura mikrosistema
∑ 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
|a| |b|
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
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