Download as pdf or txt
Download as pdf or txt
You are on page 1of 225

ARHITEKTURA MIKROSISTEMA

- materijal za pripremu ispita

Pripremio: dr. Goran Lj. orevi, predmetni nastavnik

SADRAJ
1 Principi digitalnog projektovanja .........................................................................................................................7 1.1 Reprezentacije dizajna..................................................................................................................................7 1.2 Nivoi apstrakcije ........................................................................................................................................11 1.3 Proces projektovanja ..................................................................................................................................13 1.3.1 Specifikacija dizajna...........................................................................................................................13 1.3.2 Razvoj biblioteke komponenti ............................................................................................................13 1.3.3 Sinteza dizajna....................................................................................................................................13 1.3.4 Analiza dizajna ...................................................................................................................................14 1.3.5 Dokumentovanje dizajna ....................................................................................................................14 1.3.6 Proizvodnja.........................................................................................................................................14 1.4 CAD alati ...................................................................................................................................................15 1.4.1 Opis i modelovanje dizajna ................................................................................................................15 1.4.2 Alati za sintezu ...................................................................................................................................15 1.4.3 Verifikacija i simulacija......................................................................................................................16 1.4.4 Fiziko projektovanje .........................................................................................................................16 1.4.5 Testiranje ............................................................................................................................................16 1.5 Tipian proces projektovanja .....................................................................................................................16 1.6 Mapa procesa projektovanja.......................................................................................................................17 1.7 Zakljuak....................................................................................................................................................18 2 Logiko projektovanje .......................................................................................................................................19 2.1 Bulova algebra............................................................................................................................................19 2.1.1 Prekidake funkcije ............................................................................................................................21 2.1.2 Osnovne teoreme prekidake algebre .................................................................................................22 2.1.3 Generalizovane teoreme prekidake algebre ......................................................................................25 2.1.4 Princip dualnosti .................................................................................................................................26 2.1.5 Kanonike forme ................................................................................................................................29 2.1.6 Standardne forme................................................................................................................................33 2.1.7 Logike operacije ...............................................................................................................................34 2.1.8 Digitalna logika kola.........................................................................................................................35 2.1.9 Vie-ulazna i vie-operatorska logika kola .......................................................................................38 2.2 Minimizacija prekidakih funkcija.............................................................................................................41 2.2.1 Karnaughova mapa .............................................................................................................................42 2.2.2 Minimizacija prekidakih funkcija pomou Karnaughovih mapa ......................................................46 2.2.2.1 Terminologija .............................................................................................................................46 2.2.2.2 Procedura za minimizaciju..........................................................................................................48 2.2.2.3 Minimizacija POS izraza ............................................................................................................50 2.2.2.4 Minimizacija nepotpuno definisanih funkcija.............................................................................51

2.3 VLSI tehnologije ....................................................................................................................................... 53 2.3.1 Tehnoloko mapiranje za gejtovska polja.......................................................................................... 57 2.3.2 Tehnoloko mapiranje za custom biblioteke...................................................................................... 63 2.4 Zakljuak ................................................................................................................................................... 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 Logika jedinica................................................................................................................................. 69 3.1.4 Aritmetiko-logika jedinica ............................................................................................................. 70 3.1.5 Dekoderi...............................................................................................................................................73 3.1.5.1 Dekoderske mree...................................................................................................................... 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 mree............................................................................................... 88 3.1.10.2 Hijerarhijske komparatorske mree ......................................................................................... 88 3.1.11 Kombinacioni pomerai i rotatori.................................................................................................... 89 3.1.11.1 Barel pomera .......................................................................................................................... 90 3.1.12 ROM memorije................................................................................................................................ 91 3.1.13 Programabilna logika 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 Konani automati............................................................................................................................. 104 3.2.3 Sinteza sekvencijalne logike ............................................................................................................ 105 3.2.3.1 Unos modela konanog 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 Pomeraki registri .................................................................................................................... 117 3.2.4.3 Brojai...................................................................................................................................... 118

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 upravljake 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 viebitnih 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 Upravljaki izlazi......................................................................................................................151 4.4.2.2 Izlazi podataka ..........................................................................................................................151 4.5 Projektovanje odozgo-nanie.................................................................................................................151 4.5.1 Opis ponaanja..................................................................................................................................152 4.5.2 Razrada........ .....................................................................................................................................152 4.5.3 Realizacija ........................................................................................................................................153 4.5.4 Automatsko projektovanje................................................................................................................153 4.6 Primer opisa ponaanja.............................................................................................................................153 4.6.1 Interfejs.............................................................................................................................................153 4.6.2 ASM sa ugraenim softverskim zavisnostima..................................................................................154 4.6.3 Eliminacija stanja TEST...................................................................................................................157 4.6.4 Eliminacija stanja INIT ....................................................................................................................159 4.6.5 Pamenje kolinika...........................................................................................................................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 Trei primer ......................................................................................................................................168

4.7.4 Poreenje metodike 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 maine.............................................................................................................. 176 4.10.2 Primer Milijeve maine.................................................................................................................. 176 4.10.3 Primer razraene Milijeve maine ................................................................................................. 177 4.10.4 Primer strukturne Milijeve maine................................................................................................. 178 4.10.5 Milijeva verzija maine za deljenje................................................................................................ 178 4.10.5.1 Eliminacija stanja INIT (po drugi put)................................................................................... 178 4.10.5.2 Spajanje stanja IZRAUNAVANJE_1 i IZRAUNAVANJE_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 upravljaku 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 Ulanavanje funkcionalnih jedinica ........................................................................................................ 207 5.6 Usitnjavanje ciklusa................................................................................................................................. 208 5.7 Protone funkcionalne jedinice ............................................................................................................... 209 5.8 Protonost staze podataka........................................................................................................................ 212 5.9 Protone upravljake jedinice.................................................................................................................. 214 5.10 Rasporeivanje operacija....................................................................................................................... 216 5.10.1 Algoritmi ASAP i ALAP............................................................................................................... 218 5.10.2 Prioriteti operacija ......................................................................................................................... 219 5.10.3 Resursima ogranieno rasporeivanje ........................................................................................... 220 5.10.4 Vremenom ogranieno rasporeivanje .......................................................................................... 221 5.11 Zakljuak. .............................................................................................................................................. 225

Principi digitalnog projektovanja

Napredak VLSI1 tehnologije omoguio je proizvodnju mikroipova sa nekoliko miliona tranzistora. S obzirom da je manuelno projektovanje u toj meri sloenih integrisanih kola praktino nemogue, napredak VLSI tehnologije uslovio je takoe i pojavu industrije CAD2 alata, koja se bavi razvojem softverskih sredstava i alata za podrku projektovanju mikroipova. Kao rezultat toga, mnoge standardne tehnike digitalnog projektovanja danas su ugraene u CAD alate. Rastereen projektovanja na niskom nivou, projektant moe slobodno da se usredsredi na proces projektovanja u celini, poev od specifikacije zahteva do fabrikacije konkretnog proizvoda. Meutim, sa tako irokim fokusom, savremeni projektanti su u poziciji da moraju vladati razliitim tehnikama kao to su tehnike za analizu i sprecifikaciju zahteva, modelovanje dizajna, softver-hardver kodizajn, sintezu, verifikaciju, simulciju i testiranje mikroipova. U tom smislu, definicija pojma strunjak za projektovanje digitalnih kola i sistema je promenjena; to vie nije ekspert za jednu konkretnu tehniku projektovanja, ve neko ko poznaje principe projektovanja i koristi CAD alate u cilju istraivanja alternativnih reenja i implementacionih tehnika. 1.1 Reprezentacije dizajna

Proces projektovanja svakog konkretnog proizvoda predstavlja sloenu aktivnost u koju su, svako sa svojim specifiinim zadacima, ukljueni razliiti profili strunjaka. Na primer, sluba za marketing ispituje trite i postaljva zahteve koje novi proizvod treba da ispuni. Tehnolozi biraju implementacionu tehnologiju, sastavne komponente i dobavljae tih komponenti. Grupa za podrku pribavlja ili razvija softverska sredstva koja e biti koriena za projektovanje proizvoda i svakog njegovog dela. Projektanti pretau polazne zahteve u proizvodnu dokumentaciju. Test inenjeri osmiljavaju strategiju testiranja koja e omoguiti verifikaciju ispravnosti projektovanog reenja kao i ispravan rad gotovih proizvoda. Konano, inenjeri proizvodnje razvijaju plan proizvodnje i prizvodnog procesa. Svaka osoba ukljuena u proces razvoja novog proizvoda, poev od definicije zahteva, preko projektovanja do proizvodnje, na proizvod gleda iz svog, donekle razliitog, ugla posmatranja i u svom radu koristi neke specifine informacije. Iz tog razloga, svaki proizvod, a time i svaki projekat, zahteva nekoliko razliitih reprezentacija ili pogleda, koji se razlikuju po tipu informacija koje sadre i na koje se stavlja naglasak. Pored toga, jedna ista reprezentnacija esto zahteva razliite nivoe detaljnosti u razliitim fazama projektnog ili proizvodnog ciklusa. Tri tipa reprezentacija koje su najee u upotrebi su: bihejvioralna, strukturna i fizika reprezentacija. Bihejvioralna ili funkcionalna reprezentacija je ona koja na projekat gleda kao na crnu kutiju i fokusira se na opis njegovog ponaanja u funkciji ulaza i proteklog vremena. Drugim reima, bihejvioralna reprezentacija opisuje funkcionalnost, ali ne i realizaciju konkretnog dizajna. Ova reprezentacija definie odziv crne kutije na bilo koju kombinaciju vrednosti ulaznih promenljivih, ali pri tome nita ne kazuje o tome kao napraviti crnu kutiju korienjem raspoloivih komponenti. Strukturna reprezentacija je ona koja definie crnu kutiju kao skup komponenti i njihovih veza. Za razliku od bihejvioralne reprezentacije, ovde se opisuje realizacija proizvoda, ali bez direktnog pozivanja na njegovu funkcionalnost. Naravno, u nekim sluajevima, funkcionalnost se moe odrediti na osnovu funkcije sastavnih komponenti. Meutim, dokuiti funkciju nekog sistema na ovaj nain je teko i podlono grekama. Funkcionalnost komponente ne mora biti u potpunosti iskoriena ili moe biti izmenjena nekim specifinim kodiranjem njenih ulaza i izlaza. Takoe, u sluajevima kada je broj komponenti veliki, praktino je nemogue otkriti njihovu zajedniku funkcionalnost, naroito danas kad tehnologija omoguava proizvodnju mikroipova sa nekoliko desetina miliona tranzistora.

1
2

VLSI(Very Large Scale Integration) je pojam koji ukazuje na integrisana kola veoma visokog stepena integracije. CAD(Computer Aided Design) projektovanje uz pomo raunara

Arhitektura mikrosistema

Konano, fizika reprezentacija je ona koja opisuje fizike karakteristike crne kutije, koje se odnose na dimenzije i poziciju svake pojedinane komponente i veze sadrane u strukturnom opisu. Uoimo da strukturna reprezentacija definie sastav i povezanost sistema, ali tek fizika reprezentacija opisuje precizan prostorni raspored razliitih komponenti. Drugim reima, fizika reprezentacija se koristi za opis dizajna nakon to je on fabrikovan, navodei njegovu teinu, veliinu, disipaciju toplote, potronju kao i poziciju svakog ulaznog i izlaznog prikljuka. PRIMER 1.1 Elektronski budilnik Problem: Razviti bihejvioralnu, strukturnu i fiziku reprezentaciju projekta jednostavnog elektronskog budilnika (sata sa alarmom). Reenje: Jednostavan elektonski budilnik se sastoji od displeja sa tenim kristalom (LCD) koji pokazuje sekunde, minute i sate i pet prekidaa koji se koriste za: podeavanje vremena (S1), podeavanje alarma, tj. zvonjenja (S2), podeavanja minuta (S3), podeavanja sati (S4) i dozvole zvonjenja (S5). Kada je S1 zatvoren, omogueno je podeavanje vremena pomou prekidaa S3 i S4. Svaki pritisak na S3 ili S4 uveava minute ili sate za 1, to se moe pratiti na displeju. Kada je S2 zatovoren, na slian nain pomou prekidaa S3 i S4, omogueno je podeavanje vremena buenja. U toku ovog podeavanja na displeju je prikazano vreme buenja. Konano, kada je S5 zatvoren, budilnik je aktiviran, a onda kada sat dostigne vreme buenja emituje se jednolian zvuni signal u trajanju od 5s. Ponaanje elektronskog budilnika (tj. bihejvioralna reprezentacija) moe se opisati sa tri konkurentna zadatka ili procesa: sat, podeavanje i zvono. Svaki od ovih procesa moe se opisati uz pomo jednostavnog dijagrama toka koji sadri grafike simbole kao to su rombovi (koji ukazuju na pitanja) i pravougaonike (koji ukazuju na izraunavanja). Predstava u vidu dijagrama toka, sva tri procesa, prikazana je na Sl. 1.1, Sl. 1.3 i Sl. 1.3. Kao to se moe videti sa Sl. 1.1, proces sat ima jedan ulazni signal Takt i est internih promenljivih: Sekunde, Minuti, Sati, Sdisplej, Mdisplej i Cdisplej. Takt je periodini signal, periode 1s, koji se koristi za brojanje sekundi. Tri interne promenljive, Sekunde, Minuti i Sati, koriste se za brojanje sekundi, minuta i sati. Promenljive Sekunde i Minuti su brojai po modulu 60 (nakon 59, vraaju se na 0). Promenljiva Sati je broja po modulu 24. U toku rada, uvek kada se signal Takt promeni sa 0 na 1 (to je u dijagramu toka naznaeno simbolom ) promenljiva Sekunde uveava se za jedan. Slino, uvek kada se promenljiva Sekude posle 59 vrati na 0, promenljiva Minuti se uvea za 1, a uvek kada Minuti postane 0, Sati se uvea za 1. Preostale tri interne promenljive, Sdisplej, Mdisplej i Cdisplej, uvaju vrednosti koje su trenutno prikazane na displeju sekundi, minuta i sati. Uoimo da se svaka od ovih promenljivih aurira uvek kada se promeni odgovarajua promenljiva sata, tj. Sekunde, Minuti ili Sati.

Sl. 1.1 Bihejvioralna reprezentacija elektronskog budilnika: proces sat.

PRIMER 1.1 (nastavak ) Za razliku od procesa sat, proces podeavanje, opisuje postupak za podeavanje sata i vremena buenja (Sl. 1.3). On koristi dve dodatne interne promenljive, Cbuenje i Mbuenje, za smetanje sata i minuta vremena buenja. Zatvaranjem prekidaa S3 i S4, sat i minut buenja, zapameni u promenljivima Cbuenje i Mbuenje, uveavaju se za jedan. Podeavanje se obavlja tako to se najpre zatvori S1 ili S2, zavisno od toga da li podeavamo vreme sata ili vreme buenja, a zatim uzastopnim pritiscima na S3 i S4 podeava eljeno vreme. Uoimo da S1 i S2 ne mogu biti zatvoreni u isto vreme. Takoe, uoimo da se vreme podeeno zatvaranjem S3 i S4 odmah i prikazuje na displeju. Poslednji od tri procesa, proces zvono, osmiljen je tako da u trenutku kad vreme sata postane jednako vremenu buenja, a pod uslovom da je prekida S5 zatvoren, ukljui zvono postavljanjem izlazne promenljive Zujalica na 1 (Sl. 1.3). Drugim reima, uvek kada je Minuti=Mbuenje i Sati=Cbuenje i S5 zatvoren, Zujalica postaje 1.

Sl. 1.3 Bihejvioralna reprezentacija elektronskog budilnika: proces podeavanje.

Sl. 1.3 Bihejvioralna reprezentacija elektronskog budilnika: proces zvono.


9

Arhitektura mikrosistema

PRIMER 1.1 (nastavak ) Jednom bihejvioralnom opisu, kao to je ovaj koga smo upravo predstavili, moe odgovarati vei broj razliitih strukturnih opisa. To je zato to bihejvioralni opis ne namee neku tano odreenu strukturu, ve samo definie interne promenljive, koje se koriste za pamenje podataka, i naredbe dodela koje se koriste za transformaciju podataka. Imajui na raspolaganju ove informacije, u mogunosti smo da promenljivima pridruimo memorijske komponente i biramo aritmetike komponente koje e obavljati tranformaciju podataka shodno naredbama dodele. Ovakav pristup rezultuje u strukturi koja je prikazana na Sl. 1.4. Uoimo da se shodno Sl. 1.4 elektronski budilnik pobuuje oscilatorom koji generie signal sinusnog talasnog oblika periode 1s. Ovaj signal se uz pomo bloka Generator impulsa konvertuje u taktni signal pravougaonog talasnog oblika, koji ima istu periodu kao i sinusni signal, ali uzima samo dve razliite vrednosti: 0 i 1. Signal koji moe imati samo dve vrednosti zove se digitalni signal. Sistemi koji obrauju digitalne signale zovu se digitalni sistemi. Vratimo se na Sl. 1.4 i uoimo da se preostali deo strukturne specifikacije elektronskog budilnika sastoji od: tri brojaa, Broja sekundi, Broja minuta i Broja sati, koji odbrojavaju sekunde, minute i sate, respektivno, kao i dve memorijske komponente, Registar minuta i Registar sati, koje se koriste za uvanje podeenog vremena buenja. Jedinica displeja prikazuje sate, minute i sekunde tekueg vremena ili vremena buenja, to se regulie prekidaem S2. Komparator minuta poredi minute tekueg vremena i minute vremena buenja. Ako su ova dva vremena jednaka, Komparator minuta generie 1 to se presleuje Komparatoru sati. Slino, Komparator sati generie 1 ako su sati tekueg vremena jednaki satima vremena buenja i pri tome je ulaz dobijen od Komparatora minuta jednak 1. Pod pretpostavkom da je prekida S5 zatvoren, izlaz Komparatora sati postavlja signal Zujalica na 1. Blok Generator zvuka konvertuje prelaz sa 0 na 1 signala Zujalica u ton trajanja 5s, koji, dalje, pobuuje minijaturni zvunik elektronskog budilnika.

Sl. 1.4 Strukturna reprezentacija elektronskog budilnika.

10

PRIMER 1.1 (nastavak ...) Komponente elektronskog budilnika navedene u strukturnoj reprezentaciji mogu se klasifikovati kao analogne ili digitalne komponete. Oscilator i zvunik su analogne komponente, s obzirom da su njihovi ulazi i izlazi analogni signali, koji mogu imati bilo koju vrednost iz odreenog opsega. Na primer, u toku svake sekunde, oscilator generie na svom izlazu sve vrednosti napona izmeu -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 generie 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 sainjen od iskljuivo digitalnih komponenti. Na Sl. 1.5 data je fizika reprezentacija elektronskog budilnika koja prikazuje veliine i pozicije realnih komponenti, onako kako su one postavljene na tampanoj ploi koja se nalazi unutar kutije elektronskog budilnika. Uoimo da na tampanoj ploi postoji nekoliko mikroipova: oscilator, generator takta, generator zvuka i mikroip koji objedinjuje sve ostale digitalne delove elektronskog budilnika. Ureaj, takoe, sadri displej, prekidae i dra za bateriju, kao i tampane metalne veze koje na odgovarajui nain povezuju sve komponente.

Sl. 1.5 Fizika reprezentacija elektronskog budilnika: (a) Prednja ploa; (b) tampana ploa.

Kao to je ukazano primerom 1.1, proces projektovanja elektronskih ureaja, a posebno digitalnih sistema, uvek prolazi kroz tri faze koje su pozicionirane oko tri glavne reprezentacije: 1. 2. 3. Razvoj bihejvioralne reprezentacije koja definie funkcionalnost proizvoda. Prevoenje bihejvioralne u strukturnu reprezentaciju koja sadri komponente iz raspoloive biblioteke komponenti. Razvoj fizike reprezentacije koja opisuje kako sklopiti i fabrikovati proizvod.

Bilo koji digitalni dizajn moe proi kroz ove tri faze na nekoliko razliitih nivoa apstrakcije, kao to emo videti u sledeem odeljku. 1.2 Nivoi apstrakcije

U odeljku 1.1 opisane su bihejvioralna, strukturna i fizika reprezentacija dizajna. U toku procesa projektovanja elektronskog sistema, svaka od ove tri reprezentacije moe biti koriena na nekoliko razliitih nivoa apstrakcije ili nivoa detaljnosti, gde je svaki nivo definisan tipom gradivnih elemenata koji se u njemu koriste. U optem sluaju, kod elektronskih sistema mogu se identifikovati etiri nivoa apstrakcije: tranzistori, gejtovi, registri i procesorske komponente. Pregled nivoa apstrakcije dat je u tabeli 1.1.

11

Arhitektura mikrosistema

Tabela 1.1 Reprezentacije dizajna i nivoi apstrakcije. Nivo apstrakcije Tranzistor Gejt Registar Bihejvioralne forme Diferencijalne jednaine, U-I dijagrami Bulove jednaine, konani automati Algoritmi, dijagrami toka, skupovi instrukcija, ASM dijagrami Izvrna specifikacija, programi Strukturne komponente Tranzistori, otpornici, kondenzatori Gejtovi, flip-flopovi Sabirai, komparatori, registri, brojai, registarski fajlovi, staze podataka Procesori, kontroleri, memorije, ASIC kola Fiziki objekti Analogne i digitalne elije Moduli, jedinice Mikroipovi

Procesor

tampane ploe, mikroipmoduli

Kao to se moe uoiti iz gornje tabele, glavne komponente na tranzistorskom nivou su tranzistori, otpornici i kondenzatori, koji se povezuju u analogna ili digitalna kola. Funkcionalnost ovih kola obino se opisuje diferencijalnim jednainama ili nekom vrstom prenosne karakteristike koja pokazuje zavisnost izmeu napona i struja u kolu (U-I dijagrami). Fizika reprezentacija analognih i digitalnih kola se zove elija i sadri komponente sa tranzistorskog nivoa, kao i veze koje ih povezuju. U optem sluaju, elija se definie u vidu tranzistorskog layout-a, koga ini skup pravougaonika, obino prikazanih razliitim bojama, koji predstavljaju pravougaone oblasti razliitih slojeva materijala u mikroipu. Na osnovu layouta, izrauju se maske za fotolitografski proces, to predstavlja prvi korak u procesu fabrikacije mikroipa. U ovom procesu, maske se koriste da bi se odreene oblasti na povrini silicijuma izloile dejstvu hemikalija u cilju kreiranja razliitih slojevi materijala na silicijumskoj povrini. Konano, odgovarajua kombinacija materijala kreira tranzistorski efekat. Glavne komponente nivoa gejtova su logika kola i flip-flopovi. Logika kola ili gejtovi su specijalizovanja elektronska kola koja obavljaju logike operacije. Flip-flopovi su osnovni memorijski elementi koji su u stanju da pamte jedan bit informacije koji uzima jednu od dve vrednosti: 0 (netano, ne) ili 1 (tano, da). Gejtovi i flip-flopovi su primeri tipinih digitalnih elija koje imaju ulaze i izlaze na svojim obodima. Ove elije se grupiu, rasporeuju po silicijumskoj poviini i meusobno povezuju tako da ine aritmetike i memorijske module ili jedinice, koje se dalje koriste kao bazine komponente na registarskom nivou apstrakcije. Bihejvioralni opis registarskih modula se predstavlja u obliku logikih jednaina ili dijagrama konanih automata. Glavne komponente registarskog nivoa su aritmetike i memorijske jedinice, kao to su sabirai, komparatori, mnoai, brojai, registri, registarski fajlovi. Svaka od ovih komponenti je modul ili jedinica koja ima fiksne dimenzije, fiksno propagaciono kanjenje i fiksnu poziciju ulaz i izlaza rasporeenih po obodu. Registarske komponente mogu se rasporediti i povezati tako da ine mikroipove, koji se koriste kao osnovne komponente na sledeem viem nivou apstrakcije. U optem sluaju, mikroipovi se opisuju dijagramima toka, ASM dijagramima, skupovima instrukcija, ili tabelama stanja. Nivo procesora je najvii nivo apstrakcije, s obzirom da su osnovne komponente na ovom nivou procesori, memorije, kontroleri i interfejsi, kao i aplikaciono-specifina integrisana kola (ASIC). U optem sluaju, jedna ili vie ovih komponenti se postavlja na tampanu plou i povezuje metalnim vezama koje su odtampane na ploi. U nekim sluajevima, dimenzije ploe se mogu smanjiti ako se za povezivanje mikroipova, umesto tampane ploe, koristi silicijumski substrat. Takav nain pakovanja mikroipova se zove mikroip modul (MCM MicroChip Module). Sistem koji je sainjen od procesorskih komponenti obino se opisuje tekstualno, izvrnom specifikacijom napisanom u jeziku za opis hardvera ili algoritmom ili programom napisanim u viem programskom jeziku (npr. C). U toku procesa projektovanja digitalnog sistema, tri nivoa apstrakcije mogu se koristiti jednom ili vei broj puta, u zavisnosti od toga koliko razliitih ciljeva, tehnologija, komponenti, biblioteka ili alternativnih reenja elimo da istraimo. S obzirom da istrivanje alternativa moe biti obavljeno na razliite naine, neophodno je paljivo izabrati efikasnu metodologiju projektovanja, koja odreuje odgovarajui podskup apstraktnih nivoa, projektnih zadataka, redosled u kome e oni biti obavljeni, kao i tipove CAD alata koji e biti korieni 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 moe biti relizovanja uz pomo komponenti iz ove biblioteke. Tako, uz pomo biblioteke gejtova u mogunosti smo da

12

kreiramo biblioteku registarskih komponenti, koje emo potom koristiti za sintezu procesorskih komponenti opte ili specijalne namene. U zadnjih 20 godina, najee su koriene biblioteke komponenti sa nivoa gejtova, dok u novije vreme sve veu popularnost dobijaju biblioteke registarskih komponenti. 1.3 Proces projektovanja

Uopteno govorei, proces projektovanja moe se definisati kao niz aktivnosti koje su neophodne da bi se polazni koncept nekog proizvoda pretoio u proizvodne crtee koji pokazuju kako napraviti taj proizvod. U realnim uslovima, proces projektovanja uslovljen je tipom proizvoda koji se projektuje, koliko brzo proizvod mora biti iznet na trite, tehnologijom koja se koristi za njegovu proizvodnju, pa ak i faktorima kao to su organizacija projektantskog tima, iskustvo tima, raspoloivost CAD alata i adekvatno finansiranja. Zbog toga, proces projektovanja varira od organizacije do organizacije, pa ak i od projekta do projekta unutar iste organizacije. Uprkos ovim varijacijama, proces projektovanja moe se razloiti na sledee osnovne faze: 1.3.1 Specifikacija dizajna

Nakon to je zavrena analiza trinih zahteva, glavni projektant pie specifikaciju proizvoda, koja sadri funkcionalni opis proizvoda i opis interfejsa proizvoda prema okruenju u kome e proizvod biti korien. U mnogim sluajevima, glavni projektant, u sklopu specifikacije moe da da i jedan pojednostavljen nacrt reenja, koji je obino predstavljen u vidu blok dijagrama. U tom dijagramu, svaki blok ima lako razumljivu funkciju, koja se moe predstaviti matematikom formulom ili algoritmom ili, prosto, tekstualnim opisom u prirodnom jeziku. Takoe, blok dijagram moe sadrati i specifikaciju tipova i formata podataka koji se prenose izmeu blokova i ulaznih/izlaznih portova. U mnogim sluajevima, ovakva vrsta specifikacije je nedovoljno precizna i esto nekompletna, to je i normalno jer proizvod jo uvek nije napravljen i ispitan. Meutim, ova nekompletnost obino ne predstavlja problem, s obzirom da se specifikacija proizvoda koristi samo kao polazna osnova za rad projektantskog tima. esto, u toku daljeg razvoja proizvoda, polazna specifikacija se koriguje i dopunjuje. U mnogim sluajevima, specifikacija je napisana u prirodnom jeziku (kao to je Srpski), mada u novije vreme sve veu popularnost stie i izvrna specifikacija, napisana u nekom formalnom jeziku tako da se moe lake verifikovati, analizirati i, konano, sintetizovati. 1.3.2 Razvoj biblioteke komponenti

Nakon to je u fazi specifikacije zavren razvoj globalnog blok dijagrama, ovaj dijagram se dalje iterativno rezloe na jednostavnije komponente. Cilj ovog procesa je obezbediti da proizvod sadri samo one komponente koje su na raspolaganju, tj. nalaze se u biblioteci komponenti, koja je izabrana na osnovu ciljne proizvodne tehnologije. U nekim sluajevima biblioteka sadri komponente sa dva ili vie nivoa apstrakcije. Na primer, nije neuobiajeno da se u okviru iste biblioteke pored gejtovskih komponenti nau i registarske komponente. Komponente iz biblioteke moraju biti projektovane, testirane i precizno dokumentovane, kako bi projektant mogo da ih koristi, a da pri tome ne mora da analizira njihovu strukturu. Informacije koje se odnose na karakterizaciju biblioteke komponente ukljuuju sledee: 1. 2. 3. 4. 5. Funkcionalnost komponente, tipina primena, imena ulaza i izlaza Fizike dimenzije komponente, pozicija ulaza i izlaza i opis pakovanja Elektrina ogranienja, zahtevi koji se odnose na napajanje, opsezi napona i struja koji su dozvoljeni na ulazima i izlazima, kao i disipacija toplote Talasni oblici napona na ulazima i izlazima, vremenski odnosi izmeu njih, kao i kritina kanjenja od ulaza do izlaza Modeli komponente, koji e biti korieni u CAD alatima za simulaciju, sintezu, fiziko projektovanje i testiranje. Sinteza dizajna

1.3.3

Sinteza je proces transformacije specifikacije ili bihejvioralnog opisa u strukturni opis korienjem komponenti sa nieg nivoa apstrakcije koje su ukljuene u raspoloivu biblioteku. U sluajevima kada se javi potreba za komponentama koje se ne mogu nai u biblioteci neophodna je dodatna sinteza. Sinteza se moe razumeti kao proces razrade bihejvioralnog opisa, korak po korak, gde se u svakom koraku dodaju novi strukturni detalji. U praksi, to obino znai da se bihejvioralni opis deli na vie blokova, a onda se formira novi opis koji odslikava rezultat podele. Ovaj novi, razraeni opis sadri strukturni opis podeljenih

13

Arhitektura mikrosistema

blokova i njihovih veza zajedno sa bihejvioralnim opisom svakog bloka. Ovaj proces se iterativno nastavlja sve dok svakom bloku ne odgovara jedna konketna komponenta iz raspoloive biblioteke. Imajui u vidu nivoe apstrakcije navedene u tabeli iz odeljka 1.2 moemo identifikovati sledee zadatke sinteze: 1. 2. 3. 4. Sinteza sistema konvertuje specifikaciju proizvoda u strukturu komponenti sa procesorskog nivoa, kao to su procesori, memorije i ASIC kola. Sinteza arhitekture konvertuje algoritme, dijagrame toka ili skupove instrukcija u komponente sa registarskog nivoa, kao to su brojai, registri, sabirai i mnoai. Sekvencijalna sinteza transforimie opis konanih automata u mreu logikih kola i flip-flopova. Logika sinteza transformie Bulove izraze u mreu logikih kola.

Tehnike za sintezu, koje se primenjuju ispod nivoa gejtova, dele se shodno konkretnoj oblasti primene. Na primer, za sintezu kola iz razliitih domena, kao to su A/D konvertori, filtri, audio procesiranje i video procesiranje neophodne su razliite tehnike sinteze. 1.3.4 Analiza dizajna

Nakon obavljene sinteze, sledei korak u procesu projektovanja odnosi se na procenu valjanosti dobijenog reenja. Ova procena treba da verifikuje da su zahtevi postavljeni polaznom specifikacijom ispunjeni, i da u skupu moguih alternativnih reenje ne postoji bolje. Analiza reenja obino se fokusira na jednu od nekoliko mera kvaliteta, kao to su cena, performanse ili testabilnost. Na primer, jedna od najvanijih metrika je cena proizvodnje konkretnog proizvoda, koja se obino aproksimira veliinom potrebne povrine na tampanoj ploi ili mikroipu, s obzirom da ova povrina direktno odreuje cenu njihove izrade. Broj ulaznih i izlaznih pinova je takoe vaan pokazatelj cene, poto je cena pakovanja mikroipa srazmerna broju pinova na ipu. U novije vreme, potronja je postala bitna metrika, s obzirom na sve veu rasprostranjenost prenosivih ureaja kao to su laptop raunari i mobilni telefoni. Poto potronja energije direktno odreuje veliinu baterije, ona ima znaajan uticaj i na teinu proizvoda. Performanse proizvoda predstavljaju jo jedan vaan aspekt projektovanja. Mada se performanse mogu meriti na mnogo razliitih naina, tri najvanije performansne metrike su: (1) kanjenje signala od ulaza do izlaza; (2) frekvencija taktnog signala i (3) vreme izvrenja programa, algoritma, dijagrama toka ili pojedinane instrukcije. U optem sluaju, smatra se da komponente sa manjim kanjenjem, projektovane da mogu raditi na vioj taktnoj frekvenciji, i proizvodi sa kraim vremenom izvrenja programa imaju bolje performanse. Konano, metrika testabilnost proizvoda definie se u smislu broja otkaza koji se mogu otkriti testiranjem i broja test sekvenci koje su potrebne da bi se ovi otkazi otkrili. Svaka test-sekvenca ili test-vektor se sastoji od skupa ulaznih vrednosti i pridruenog skupa izlaznih vrednosti koje se oekuju na izlazu ispravnog ureaja nakon primene test sekvence. U optem sluaju, broj potrebnih test vektora, srazmeran je broju potencijalnih otkaza, dok broj test vektora odreuje vreme koje je potrebno da bi se gotov proizvod testirao. 1.3.5 Dokumentovanje dizajna

Poslednji korak u procesu projektovanja sastoji se u pripremi dokumentacije za proizvedeni mikroip ili sistem. Ova dokumentacija namenjena je korisniku proizvoda. U optem sluaju, dokumentacija ukljuuje bihejvioralnu i fiziku reprezentaciju, ali izostavlja detalje strukturne reprezentacije, ta se smatra poverljivom informacijom, koja moe biti dostupna samo odelenju za proizvodnju. Bihejvioralne informacije su obino date u obliku grubih blok dijagrama dopunjenih dijagramima toka koji opisuju ponaanje celokupnog sistema ili nekog njegovog dela. Uz to, bihejvioralna dokumentacija opisuje komunikacione protokole, koji govore o tome kako sistem komunicira sa okurenjem, a tipino sadri vremenske dijagrame koji se odnose na jedan ili vie ulaza i izlaza. Sa druge strane, fizika reprezentacija sadri dimenzije proizvoda, informaciju o nainu pakovanja, imena i pozicije spoljnih prikljuaka. Konano, u dokumentaciji su navedeni minimalni, normalni i maksimalni opsezi struja i napona, snage, temperatore i ostalih elektrinih i neelektrinih parametara bitnih za pravilnu eksplataciju proizvoda. 1.3.6 Proizvodnja

Strogo govorei, proizvodnja nije deo projektovanja, ve je njegov cilj. Zadatak proizvodnje je da na osnovu konanih proizvodnih nacrta fabrikuje proizvod, rasporeivanjem i povezivanjem sastavnih delova. Nakon proizvodnje, obino se obavlja testiranje kako bi se identifikovali i izdvojili neispravni proizvodi. Testiranje moe biti obavljeno u radnom reimu 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 teko ostvarivo, zato to oprema za testiranje mora biti mnogo bra od proizvoda koji se testira. 1.4 CAD alati

U odeljku 1.3 razmatrani su osnovni koraci u procesu projektovanja. U ovom odeljku razmatraju se softverski alati za projektovanje pomou raunara (ili CAD alati) koji se koriste u razliitim fazama procesa projektovanja. Shodno ulozi koju imaju u procesu projektovanja, CAD alati se mogu podeliti u sledeih pet kategorija: 1. 2. 3. 4. 5. Opis i modelovanje (capture, modeling) Sinteza (synthesis) Verifikacija i simulacija (verification, simulation) Rasporeivanje i rutiranje (placement, routing) Generisanje testa (test generation)

Napomenimo da ovih pet kategorija odgovaraju glavnim oblastima specijalizacje u domenu istraivanja i razvoja CAD alata. 1.4.1 Opis i modelovanje dizajna

Jo u ranoj fazi projektovanja javlja se potreba transformacije bihejvioralnog opisa u strukturnu reprezentaciju sainjenu od komponenti iz dobro-definisane biblioteke. Komponente i nain na koji su meusobno povezane, moemo opisati tekstualno, ali takav nain je naporan i podloan grekama. Mnogo laki i precizniji opis strukture sistema moe se ostvariti uz pomo specijalizovanih grafikih editora. U osnovi, takav jedan alat omoguava projektantu da izabere komponentu iz menija, pozicionira je na ekranu i povee sa drugim komponentama linijam koje predstavljaju elektrine veze. Ovakav nain strukturne reprezentacije zove se elektrina ema, dok se alati koji se koriste za unos elektrinih ema zovu grafiki ematski editori. Drugi nain za postizanje istog cilja, tj. kreiranje opisa strukture, sastoji se u korienju jezika za opis hardvera, kao to su VHDL i Verilog. Jezici za opis hardvera su optiji od ematskih editora, zato to omoguavaju opis ne samo strukture sistema, ve i njegovog ponaanja. ta vie, uz pomo jezika za opis hardvera, projektant je u mogunosti da kombinuje ova dva tipa reprezentacije u jedinstveni opis, gde su pojedini delovi sistema opisani bihejvioralno, a preostali strukturno. Opis sistema obino poinje kreiranjem strukturnog opisa visokog nivoa i opisom ponaanja svakog pojedinanog bloka iz ove strukture. U daljem toku procesa projektovanja, bihejvioralno opisani blokovi se zamenjuju strukturama blokova nieg nivoa, sve dok dizajn na postane hijerarhija blokova gde svakom bloku sa najnieg nivoa hijerarhije odgovara jedna komponenta iz ciljne biblioteke. Na taj nain, dizajn prolazi kroz vie nivoa apstrakcije, pri emu svaki nivo sadri razliiti tip i koliinu detalja. Ovakav nain projektovanja se zove projektovanje odozgo-nanie i omoguava efikasno upravljanje projektom i raspodelu posla, olakava koordinaciju i komunikaciju izmeu projektanata, pojednostavljuje integraciju sistema i smanjuje broj greaka u projektovanju. Odravanje i kasnije usavravanje proizvoda lake je ako je on projektovan na opisani nain. Svaki od opisa koji se javljaju u ovom procesu se zove model realnog sistema, poto prua neke, ali ne sve informacije o konkretnom sistemu. Informacije o sistemu sadrane u modelu moe kristiti projektant ili CAD alat u cillju dalje analize i procene kvaliteta reenja, ili ak za nastavak sinteze. 1.4.2 Alati za sintezu

Sinteza se primenjuje uvek kada treba konvertovati bihejvioralni u strukturni opis koji sadri komponente iz raspoloive biblioteke. Na primer, alati za logiku sintezu omoguavaju konverziju logikih jednaina u mree gejtova, minimizujui pri tome broj gejtova, propagaciono kanjenje, potronju ili neki drugi unapred postavljeni cilj. Alati za logiku sintezu koriste se za projektovanje kombinacionih kola kao to su aritmetika kola, komparatori, koderi, dekoderi i upravljaka logika. Alati za sekvencijalnu sintezu koriste se za sintezu struktura koje sadre memorijske elemente, kao to su konani automati. Ovi alati su projektovani tako da minimizuju broj memorijskih elemenata koji se koriste u kolu, da kodiraju stanja i ulaze na nain koji minimizuje ukupnu cenu (tj. hardversku sloenost), da minimizuju ulazno-izlazno kanjenje i pojednostave logike jednaine koje su potrebne za realizaciju konanog automata. Alati za bihejvioralnu sintezu ili sintezu visokog nivoa, koriste se za transformaciju aritmetikih izraza, skupova instrukcija ili algoritamskih opisa u strukturu sainjenu od komponenti sa registarskog nivoa apstrakcije, pri tome minimizujui veliinu mikroipa i vreme izvrenja. Bihejvioralna sinteza je korisna prilikom projektovanja interfejsnih kola, raznih hardverskih akceleratora, i kola za digitalnu obradu signala.

15

Arhitektura mikrosistema

1.4.3

Verifikacija i simulacija

Nakon to je sistem koji se projektuje opisan uz pomo ematskog editora ili jezika za opis hardvera, neophodno je proveriti (verifikovati) da li se on ponaa onako kao se oekuje. Ovo je teak zadatak, s obzirom da se samo na osnovu opisa, koji moe biti i pogrean, ne moe zakljuiti kakvu funkcionalnost sistem treba da obezbedi. Sa druge strane, ono ta se moe verifikovati poreenjem strukturnih i bihejvioralnih opisa jeste injenica da je sistem korektno sintetizovan. Korienjem simbolikog izraunavanja, ili algebarskih manipulacija mogue je dokazati da su dve reprezentacije sistema identine za sve mogue skupove ulaznih vrednosti. Pored toga, dokaz ekvivalentnosti dve reprezentacije zahteva garanciju da su pored funkcionalnih zahteva ispotovani i zahtevi koji se odnose na tajming. S obzirom da dokaz identinosti funkcija dva opisa mora obuhvatiti proveru svakog skupa ulaznih vrednosti, a dokaz ispunjenosti vremenskih ogranienja ispitati svaku ulazno-izlaznu putanju u sistemu, ovakav nain verifikacije obino zahteva ekstremno dugo vreme. Iz tog razloga, najpopularniji nain verifikacije je simulacija dizajna, gde se rad sistema verifikuje samo za neki podskup ulaznih vrednosti tako to se na osnovu strukturne predstave dizajna generiu izlazne vrednosti i porede sa odgovarajuim skupom oekivanih vrednosti koje slede na osnovu bihejvioralnog opisa. Pod pretpostavkom da se strukturni opis sastoji od komponenti iji su modeli dostupni, simulator radi na sledei nain. Najpre, simulator odreuje vrednosti na izlazu svake komponente iji su ulazi povezani na ulazne portove sistema. Zatim, simulator uveava vreme simulacije za iznos definisan modelom tih komponenti, i bira sledei skup komponenti ije su ulazne vrednosti sada poznate i izraunava njihove izlazne vrednosti, uveavajui vreme simulacije na isti nain. Ovaj korak se ponavlja sve dok se simulacija rada svih komponenti ne zavri ili do trenutka kada vie ne postoje promene izlaznih vrednosti. Konano, generie se izlazna vrednost i poredi sa tanom (oekivanom) vrednou. Takoe, odreuje se ulazno-izlazno kanjenje i poredi sa zadatim vremenskim ogranienjima. Na ovaj nain, simulator moe verifikovati funkcionalnu i vremensku ispravnost reenja, mada je ova verifikacija validna samo za konkretni, korieni skup ulaznih vrednosti. Iz tog razloga, projektant kada koristi simulator treba da tei da simulacijom obuhvati takav skup ulaznih i oekivanih izlaznih vrednosti koje e pobuditi sve putanje kroz sistem koji se testira. U sluajevima kada sistem sadri 1 milion gejtova, to nije ni malo lak zadatak. 1.4.4 Fiziko projektovanje

CAD alati za fiziko projektovanje su alati za rasporeivanje i rutiranje. Alati za rasporeivanje omoguavaju optimizaciju rasporeda komponenti na tampanoj ploi ili elija i modula na mikroipu. Uzimajui u obzir dimenzije i raspored pinova svake komponente, alati za rasporeivanje pozicioniraju komponente, sadrane u strukturnoj reprezentaciji dizajna, tako da ukupna povrina zauzeta svim komponentama bude minimalna. Nakon to su pozicije svih komponenti odreene, koristi se alat za rutiranje koji odreuje pozicuju svake veze koja povezuje komponente, na nain koji e minimizovati maksimalnu duinu neke veze ili zbir duina svih veza i pri tome optimizovati korienje nivoa za povezivanje na tampanoj ploi ili mikroipu. Prilikom rutiranja, posebna panja posveuje se linijama za napajanje, koje moraju biti tako izvedene da kontaktiraju svaku komponentu i pri tome su u stanju da prenesu potrebnu struju. Slino, posebna panja se obraa na linije koje prenose taktni signal, s obzirom da prevelika duina ovih linija moe da narui taktni signal to moe postati uzrok povremenih ili trajnih otkaza. 1.4.5 Testiranje

U toku fabrikacije ureaja ili mikroipa, usled varijacija u tehnolokom procesu, moe doi do greaka u proizvodnji. Testiranje se obavlja nakon fabrikacije proizvoda sa ciljem da se dobre jedinice razdvoje od neispravnih. U optem sluaju, procedura testiranja se obavlja tako to se na jedinice koje se testiraju primenjuju odreene test sekvence, a odziv jedinice poredi za odzivom koji se oekuje od jedinice koja radi ispravno. U okviru procesa testiranja, CAD alati se koriste za generisanje test sekvenci. Ovi alati olakavaju posao projektanta prilikom pronalaenja skupa test vektora koji e pobuditi to je mogue vei broj putanja kroz sistem. 1.5 Tipian proces projektovanja

Tipian proces projektovanja, koji se poslednih 30 godina praktikuje u industriji, je onaj koji zapoinje analizom trita i definicijom zahteva koje proizvod treba da ispuni. Na bazi tih zahteva, glavni projektant sprovodi analizu izvodljivosti kao bi odredio implementacionu tehnologiju, arhitekturu i tipinu primenu konkretnog proizvoda. Takoe, glavni projektant razvija preliminarni blok dijagram i pie specifikaciju proizvoda. Preliminarni blok dijagram preuzima projektantski tim i dalje ga razrauje u strukturu, najpre na nivou sistema, zatim na registarskom nivou i konano na nivou gejtova. Struktura na nivou gejtova se obino opisuje uz pomo ematskih editora, a zatim simulira, kako bi se verifikovala njena funkcionalnost i tajming. Ako se ustanovi da

16

neko polazno ogranienje nije mogue ostvariti ili neka mera kvaliteta nije zadovoljavajua, projekat se vraa 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 fiziko projektovanje, sa ciljem da se ostvari rasporeivanje i rutiranje projektovane strukture dizajna. Konano, nakon to je fiziko projektovanje zavreno, tim za testiranje generie odgovarajue test sekvence koje e biti koriene u proizvodnji, a projektantski tim pie dokumentaciju proizvoda. U prolosti, veina navedenih poslova obavljana je manuelno, s obzirom da je samo mali deo procesa projektovanje bio automatizovan. Sa pojavom CAD alata, ovakva situacija je poela da se menja. Najpre su razvijeni CAD alati za fiziko projektovanje, tj. za rasporeivanje i rutiranje. Neto kasnije, razvijeni su ematski editori i alati za simulaciju na nivou gejtova, to je omoguilo dalju automatizaciju procesa projektovanja. U novije vreme, 90 godina, automatizacija procesa projektovanje je znaajno napredovala uvoenjem u proces projektovanja standardnih jezika za opis hardvera i alata za sintezu. Jazici za opis hardvera omoguili su da danas projektanti mogu generisati bihejvioralni opis koji se lako simulira, a sa novim alatima za sintezu znaajno je olakano prevoenje bihejvioralne u strukturnu reprezentaciju. Sva ova nova dostignua, vode do redefinicije procesa projektovanja, koji se danas, mnogo vie nego ranije, oslanja na bihejvioralno opisivanje dizajna na viem apstraktnom nivou i razradu odnosno sintezu bihejvioralnog opisa. Poetni uspesi savremenih alata za sitezu, inicirali su zahteve za automatizacijom procesa projektovanja na jo viem nivou, sa konanim ciljem da se razviju tehnike za sintezu celokupnog sistema, na osnovu polazne specifikacije. 1.6 Mapa procesa projektovanja

Osnovna tema ovog kursa je prouavanje tehnika projektovanja digitalnih sistema. Na Sl. 1.6 prikazana je mapa koja ukazuje na meuzavisnosti i uslovljenosti razliitih teorijskih osnova, tehnika i metoda koje ine osnovu projektovanja savremenih digitalnih i raunarskih sistema. Osenena oblast na Sl. 1.6 ukazuje na materiju koja je obuhvaena ovim kursom. Uopteno govorei, projektovanje raunarskih sistema kree od fizike vrstog stanja i tehnolokih postupaka za fabrikaciju integrisanih kola, koji odreuju tipove i osobine veine osnovnih elektronskih komponenti, kao to su tranzistori, otpornici i kondenzatori. Ove komponente se zatim povezuju u digitalna ili analogna kola, shodno osnovnim zakonima elektronike. Digitalna kola procesiraju signale koji mogu imati samo mali broj fiksnih vrednosti, obino dve, to ih ini robusnim i lakim za projektovanje. Ove dve osobine su glavni razlog zbog koga se danas za izraunavanja i obradu podataka prevashodno koriste digitalna kola. Sa druge strane, analogna kola obrauju signale koji mogu imati bilo koju vrednost unutar datog opsega. Veina signala koje ovek generie ili prepoznaje, kao to je tekst, govor, slika i zvuk su analogni signali. Poto se celokupno procesiranje izvodi u digitalnom domenu, jedan generalni elektronski sistem najpre konvertuje analogne signale u digitalne, zatim u digitalnom domenu obavlja sva potrebna izraunavanja, transformacije i komunikacije, da bi konano, rezultat konvertovao nazad u analogni domen. Konverzije iz analognog u digitalni domen i obrnuto se obavlja uz pomo interfejsnih kola, kao to su A/D i D/A konvertori. Digitalno projektovanje kree od nivoa gejtova i flip-flopova, koji su raspoloivi u vidu biblioteke logikih komponenti. ta vie, projektant digitalnog hardvera ne mora da poznaje detalje koji se odnose na fabrikaciju logikih komponenti i VLSI projektovanje, ve je njegov zadatak da koristei raspoloive bibiloteke komponente kreira opis sistema koga projektuje. Teorijsku osnovu digitalnog projektovanja ini Bulova algebra i teorija konanih automata, to je u bliskoj vezi sa nainima reprezentacije podataka u binarnom brojnom sistemu. Koristei tehnike logikog i sekvencijalnog projektovanja, kreiraju se biblioteke kombinacionih i sekvencijalnih modula ili blokova, koji predstavljaju bazine gradivne blokove procesorskih komponenti. Projektovanje procesorskih komponenti zasnovano je bihejvioralnom opisu u vidu ASM dijagrama. Standardne i specijalizovane procesorske komonente, zajedno sa interfejsnim komponentama i elektro-mehanikim ureajima, kao to su hard-disk i tastatura koriste se za projektovanje razliitih tipova raunarskih sistema, kao to su personalni raunari, radne stanice i komunikacioni kontroleri. Raunarski sitemi se dalje koriste za projektovanje sloenijih, tzv. embedded sistema koji se primenjuju u oblastima kao to su digitalna obrada signala, robotika, komunikacije, medicinska instrumenticija, multimedija i mnoge druge.

17

Arhitektura mikrosistema

Sl. 1.6 Mapa procesa projektovanja elktronskih, digitalnih i raunarskih sistema.

1.7

Zakljuak

U ovom poglavlju uvedene su tri osnovne reprezentacije dizajna: bihejvioralna, strukturna i fizika reprezentacije. Opisana su etiri nivoa apstrakcije: novo tranzistora, nivo gejtova, registarski nivo i procesorski nivo. Takoe, kroz opis procesa projektovanja elektronskih digitalnih sistema, poev od specifikacije pa do fabrikacije proizvoda, istraene su meuzavisnosti izmeu reprezentacije dizajna i nivoa apstrakcije. Ukratko su opisani neki od CAD alata koji se koriste u procesu projektovanja.

18

Logiko projektovanje

Osnova uspeha raunarskih tehnologija u najveoj meri lei u jednostavnosti projektovanja i proizvodnje digitalnih elektronskih kola. Digitalna elektronska kola su sainjena od bazinih elemenata za obradu digitalnih signala, koji se zovu logika kola ili gejtovi i bazinih memorijskih elemenata, koji se zovu flip-flopovi. Jednostavnost projektovanja digitalnih kola, tj. logikog projektovanja, potie od injenice da ulazni i izlazni signali svakog gejta ili filip-flopa mogu imati samo dve razliite vrednosti, 0 ili 1, dok su promene vrednosti signala deavaju shodno zakonima Bulove algebre. Bulova algebra je konana i poseduje daleko bogatiji skup osobina u odnosu na standardnu algebru, to omoguava primenu jednostavnih tehnika za pojednostavljenje Bulovih funkcija prilikom njihove realizacije pomou gejtova i flip-flopova. Iz tog razloga, uspeno 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 bie opisana osnovna digitalna logika kola i postupak kreiranja biblioteke gejtova. Takoe, bie opisane osnovne implementacione tehnologije, koje se koriste za fabrikaciju digitalnih komponenti, kao i specifinosti logikog projektovanja koje su uslovljene karakteristikama pojedinih implementacionih tehnologija. 2.1 Bulova algebra

Sve inenjerske discipline imaju matematiku podlogu na osnovu koje dalje razvijaju svoje koncepte. Digitalni sistemi, ukljuujui i raunarske sisteme, nisu razliiti u tom pogledu. Tehnike za formalnu analizu i projektovanje digitalnih kola i sistema imaju svoje korene u radovima engleskog matematiara Dorda Bula. Godine 1854., on je formulisao algebarski sistem, danas poznat kao Bulova algebra, za izraavanje fundamentalnih zakona rezonovanja u simbolikom jeziku matematike logike. Bulova algebra manipulie iskazima koji mogu biti tani ili netani i definie pravila na osnovu kojih je mogue utvrditi tanost sloenijih iskaza dobijenih kombinovanjem polaznih iskaza. Sve do kasnih tridesetih godina prolog veka, Bulova algebra nije naila na neku znaajniju praktinu primenu. Godine 1938., ameriki istraiva Klod E. enon iskoristio je Bulovu algebru za analizu i opis ponaanja relejnih mrea. U enonovoj interpretaciji Bulove algebre, koja se zove prekidaka algebra, stanje prekidaa ili relejnog kontakta, otvoreno ili zatvoreno, se predstavlja promenljivom x koja moe imati jednu od dve mogue vrednosti, 0 ili 1. Ovo je bila veoma vana primena, s obzirom da su u to doba telefonski sistemi bili u naglom razvoju, pa je bilo neophodno iznai neki pogodan matematiki aparat kojim bi se opisivale eljene komutacije i naini uspostavljanja veze. Od tog trenutka, primena Bulove algebra doivela je veliku ekspanziju, to je pospeilo interesovanje za uvoenje digitalne tehnike i u mnogim drugim oblastima. Zbog vanosti Bulove algebre za projektovanje ne samo raunarskih sistema nego i komunikacionih sistema, sistema upravljanja i bilo kog drugog sistema koji koristi digitalnu tehniku, veoma je vano razumeti znaaj Bulove, odnosno prekidake algebre i prouiti njene osnovne koncepte. Aksiome Bulove algebre Bulova algebra, kao i bilo koja druga algebarska struktura, zasnovana je na skupu pravila, ili teorema, izvedenih na osnovu malog broja polaznih pretpostavki, ili aksioma. Jedan od ciljeva matematiara je da redukuju broj potrebnih aksioma na minimalan konzistentni skup aksioma. Godine 1904. matematiar Hantington (E. V. Huntington) ustanovio je da se svi rezultati i posledice algebre koju je opisao Bul mogu svesti na samo est aksioma. Koristei ovih est aksioma, Hantington je definisao Bulovu algebru na sledei nain: Ureena etvorka (B, +, , ), gde je B skup elemenata ili konstanti, + i dve binarne operacije i unarna operacija, naziva se Bulovom algebrom ako su zadovoljene sledee aksiome: A1. Zatvorenost: za svaki element x i y iz skupa B vai: a. x + y je element B b. x y je element B

Arhitektura mikrosistema

A2. Identitet: postoje elementi 0 i 1 iz B takavi da za svako x iz B vai: a. 0 + x = x + 0 = x b. 1 x = x 1 = x A3. Komutativnost: za sve elemente x i y u skupu B vai: a. x + y = y + x b. x y = y x A4. Distributivnost: za sve elemente x, y i z u skupu B vai: a. x(y + z) = xy + xz b. x + (yz) = (x + y) (x + z) A5. Komplement: za svaki element x iz skupa B postoji u B element x, takav da vai: a. x + x = 1 b. x x = 0 A6. U skupu B postoje najmanje dva razliita elementa, tj. 01. Uoimo da Bulova algebra, iako uvodi tri operacije, ne definie eksplicitno te operacije, ve samo definie pravila koja one moraju da zadovolje. Takoe, Bulova algebra ne definie broj elemenata u skupu B, ve samo ograniava njihov minimalni broj na dva elementa. Konkretizacija Bulove algebre na sluaj kada skup B ima tano dva elementa zove se prekidaka algebra. Prekidaka algebra Ako u skupu B={0,1} definiemo operacije +, i ` na sledei nain:
+ 0 1 0 0 1 1 0 1 0 1 0 0 0 1 0 1 0 1 1 0

tada se lako moe pokazati da skup B zajedno sa navedenim operacijama zadovoljava aksiome Bulove algebre. Bulova algebra na skupu od dva elementa zove se prekidaka algebra. U prekidakoj 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 prekidakom algebrom, tj. B={0,1}. Zbog slinosti sa operacijama aritmetikog sabiranja i mnoenja, za operacije OR i AND se esto koriste i termini logiki zbir i logiki proizvod. Tako, za x1+ x2 kaemo da predstavlja logiki zbir ili sabirak, a za x1x2 logiki proizvod promenljivih x1 i x2. Takoe, uobiajeno je da se umesto logiki zbir i logiki proizvod kae samo zbir i proizvod. Logiki zbir proizvoda ini izraz oblika suma proizvoda (sum-of-product SOP). Slino, logiki proizvod sabiraka ini izraz oblika proizvod sabiraka (product-of-sums - POS). Tako, kaemo 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 logike operacije, AND, OR i NOT, fiziki se ralizuju u obliku elektronskih tranzistorskih kola koja se zovu logika kola ili gejtovi. Logiko kolo ima jedan ili vie ulaza i jedan izlaz koji je u funkciji ulaza. Za predstavljanje logikih kola koriste se standardni grafiki simboli. Simboli AND, OR i NOT logikih kola prikazani su na Sl. 2.1. Na levom delu slike dati su simboli dvo-ulaznih logikih kola, dok su na desnom delu slike prikazani simboli za odgovarajua vie-ulazna logika kola.

20

Logiko projektovanje

(a) AND gejtovi

(b) OR gejtovi

(c) NOT gejt Sl. 2.1 Elementarna logika kola.

2.1.1

Prekidake funkcije f: Bn B

Formalno, prekidaka funkcija n promenljivih, f(x1, x2, ..., xn), definie se kao preslikavanje: Elementi skupa Bn su ureene n-torke: (x1, x2, ..., xn), gde su xi, i=1,n, promenljive u skupu B. Ove ureene n-torke nazivamo vektorima ili slogovima. Njih ima ukupno 2n, a funkcija f svakoj n-torki pridruuje 0 ili 1. Funkcija se moe zadati u obliku tabele istinitosti, iji je opti oblik prikazan na Sl. 2.2. Svaki slog u tabeli istinitosti se moe interpretirati kao binarni broj. Kada se ovaj binarni broj konvertuje u decimalni broj dobijamo decimalni indeks konkretnog sloga. Uobiajeno je da se u tabeli istinitosti slogovi navode u prirodnom redosledu, tj. u rastuem redosledu njihovih decimalnih indeksa. Tabela istinitosti prekidake funkcije f moe se u potpunosti odrediti zadavanjem skupa decimalnih indeksa slogova na kojima funkcija ima vrednost 1 ili 0. Te skupove oznaavaemo redom sa f(1) i f(0).
Dec. indeks 0 1 2 . . . n 2 -1 n 2 x1 0 0 0 x2 0 0 0 . . . 1 1 1 1 1 1 0 1 xn-1 0 0 1 xn 0 1 0 f(x1, x2, , xn-1, xn) f(0, 0, , 0, 0) f(0, 0, , 0, 1) f(0, 0, , 1, 0) . . . f(1, 1, , 1, 0) f(1, 1, , 1, 1)

Sl. 2.2 Opti oblik tabele istinitosti.

Vrednosti prekidake funkcije f na slogovima formiraju vektor istinitosti, Kf. Vektor istinitosti je niz od 2n binarnih vrednosti, pri emu svaka konkretna kombinacija ovih vrednosti potpuno definie jednu prekidaku funkciju. Odatle sledi da broj razliitih prekidakih funkcija od n promenljivih iznosi

22 .

21

Arhitektura mikrosistema

PRIMER 2.2 Za funkciju F zadatu tabelom istinitosti:


Dec. indeks 0 1 2 3 4 5 6 7 x 0 0 0 0 1 1 1 1 y 0 0 1 1 0 0 1 1 z 0 1 0 1 0 1 0 1 F(x, y, z) 1 0 0 1 1 1 0 1

PRIMER 2.1 Odrediti tabele istinitosti funkcija f, g i h od 3 promenljive, zadatih: (a) algebarskim izrazom f(x,y,z) = x+yz (b) skupom decimalnih indeksa g(1) = (1,3,4,6) (c) skupom decimalnih indeksa h(0) = (0,1,5) Odgovor:
Dec. indeks 0 1 2 3 4 5 6 7 x 0 0 0 0 1 1 1 1 y 0 0 1 1 0 0 1 1 z 0 1 0 1 0 1 0 1 f(x, y, z) 1 0 0 0 1 1 1 1 g(x, y, z) 0 1 0 1 1 0 1 0 h(x, y, z) 0 0 1 1 1 0 1 1

odrediti: (a) skupove decimalnih indeksa F(0) i F(1) (b) vektor istinitosti KF. Odgovor: (a) F(0) =(1,2,6), F(1) =(0,3,4,5,7) (b) KF = (1,0,0,1,1,1,0,1)

Bilo koja logika funkcija, proizvoljne sloenosti, moe se izraziti pomou tri osnovne logike operacije: AND, OR i NOT. Logike funkcije fiziki se realizuju povezivanjem (tj. kombinovanjem) logikih kola u logike, ili kombinacione mree. Kombinaciona mrea se konstruie direktno na osnovu algebarskog izraza date logike funkcije. Na primer, na Sl. 2.3 je prikazana kombinaciona mrea koja realizuje funkciju f(x1, x2) = (x1+x2)x3.

Sl. 2.3 Kombinaciona mrea za funkciju f(x1, x2) = (x1+x2)x3.

2.1.2

Osnovne teoreme prekidake algebre

Prilikom analize ili sinteze digitalnih kola, algebarski izrazi se esto koriste za karakterizaciju ponaanja postojeih kola ili eljenog ponaanja kola koja projektujemo. Teoreme prekidake algebre su dokazano tana tvrenja, ili osobine. Aksiome i teoreme nam omoguavaju da manipuliemo algebarskim izrazima, to nam olakava analizu i poveava efikasnost sinteze odgovarajuih kola. Na primer, teorema x+x=x omoguava da se svako pojavljivanje x+x u nekom sloenijem izraz zameni sa x. Ispod su navedene osnovne teoreme prekidake algebre, zajedno sa imenima pod kojima su poznate. Ako su x, y i z promenljive u skupu B={0,1}, tada vae sledee osobine: T1. Zakon idenpotencije (zakon nevaenja stepenovanja) a. x + x = x b. x x = x T2. Neutralni elementi a. x + 1 = 1 b. x 0 = 0 T3. Zakon apsorpcije a. x + x y = x b. x (x + y) = x T4. Zakon involucije operacije negacije (zakon dvojne negacije) a. (x) = x T5. Zakon asocijativnosti a. x + (y + z) = (x + y) + z b. x (y z) = (x y) z

22

Logiko projektovanje

T6. Zakon saimanja a. x y + x y = x b. (x + y) (x + y) = x T7. De Morganova teorema a. (x + y) = x y b. (x y) = x + y Veina teorema prekidake algebre mogu se lako dokazati korienjem postupka koji se zove savrena indukcija. Ovaj postupak se oslanja na injenicu da logika promenljiva moe imati samo jednu od dve mogue vrednosti, 0 ili 1, pa ja zbog toga i broj moguih kombinacija vrednosti svih promenljivih u jednom logikom iskazu konaan. Dakle, da bi teorema bila dokazana, dovoljno je u iskaz teoreme zameniti sve mogue kombinacije vrednosti promenljivih i za svaki takav sluaj ispitati da li izrazi sa leve i desne strane znaka jednakosti imaju istu vrednost. Na primer, teoreme T2.a glasi x + 1 = 1. S obzirom da x moe biti 0 ili 1, ova teorema se razlae na dva identiteta koji sadre samo konstante: 1 + 1 = 1 i 0 + 1 = 1, a ija tanost direktno sledi na osnovu definicije operatora +. Na Sl. 2.4 je ilustrovano kako se savrenom indukcijom moe dokazati De Morganova teorema (T7.a). Poto u iskazu ove teoreme figuriu dve promenljive, x i y, broj kombinacija njihovih vrednosti je etiri. Kao to se vidi sa Sl. 2.4, za svaku od ove etiri kombinacije, izrazi sa leve i desne strane znaka jednakosti daju isti rezultat.
x 0 0 1 1 y 0 1 0 1 xy 0 0 0 (x y) 1 1 1 x 1 1 0 y 1 0 1 x+y 1 1 1 0

1 0 leva strana

0 0 desna strana

Sl. 2.4 Dokaz De Morganove teoreme 7a.

Iako na prvi pogled izgledaju kao jednostavna i oigledna pravila, aksiome i navedene teoreme prekidake algebre predstavljaju teorijsku osnovu celokupnog logikog projektovanja. Razmotrimo, na primer, zakon asocijativnosti. Ovaj zakon, u kombinaciji sa zakonom komutativnosti, ukazuje da u logikoj sumi ili proizvodu proizvoljnog broja promenljivih redosled promenljivih i raspored zagrada nije od znaaja. Na primer, strogo algebarski gledano, izraz xyzv je neodreen, jer nije jasno u kom redosledu treba obaviti izraunavanje izraza. Neke od moguih opcija su: (x(y(zv))), (((xy)z)v), ili (xy)(zv). Meutim, zakon asocijativnosti kae da emo bez obzira na redosled primene operatora uvek dobiti isti rezultat. ta vie, ako imamo u vidu zakon komutativnosti, do istog rezultata doiemo ak iako u polaznom izrazu promenimo redosled promenljivh, na primer, (y(z(xv))) ili (xv)(zy). Prevedeno na jezik logikih kola, iz navedenog primera primene zakona asocijativnosti sledi da se 4-ulazna AND funkcija moe realizovati pomou 2-ulaznih AND kola na bilo koji od naina predstavljenih na Sl. 2.5. Zakon komutativnosti kae da redosled povezivanja ulaznih signala na ulaze logikog AND ili OR kola nije bitan.

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

Zakoni apsorpcije i saimanja esto se koriste za minimizaciju (pojednostavljenje) logikih funkcija. Shodno zakonu apsorpcije, izraz x + xy, koji je deo nekog sloenijeg izraza, moe se redukovati na x. Kae se da je promenljiva x apsorbovala promenljivu y. Primenom zakona saimanja, izraz oblika xy+xy moe se redukovati, takoe, na samo jednu promenljivu, x. Nakon izvrenih apsorpcija i saimanja, polazni sloeni izraz bie jednostavniji, to znai da e i za njegovu realizaciju biti potrebno upotrebiti manji broj logikih kola.

23

Arhitektura mikrosistema

Sloenost algebarskog izraza moe se izraziti brojem operatora koje sadri, tj. brojem operacija koje treba obaviti da bi se izraunala njegove vrednost. Primenom apsorpcije broj operatora u polaznom izrazu se smanjuje za 2, a primenom zakona saimanja za 3 operatora. Napomenimo da polazei od bilo koje aksiome ili teoreme i smenom promenljivih proizvoljnim aritmetikim izrazima dobijamo iskaz koji je takoe taan. Najjednostavnija smena je zamena promenljivih komplemenima promenljivih. Na primer, ako u iskaz zakona asocijativnosti uvedemo smene: x=x i y=y dobiemo taan identitet: x + (y + z) = (x + y) + z Izraz koji zamenjuje promenljivu moe biti znaajno sloeniji. Na primer, smenama: x=x+v i y=y+vz u iskaz zakona apsorpcije dobijamo taan identitet: x + v + (x+v) (y+v z) = x + v Algebarske manipulacije Pokazali smo kako se teoreme prekidake algebre mogu dokazati primenom savrene indukcije. Meutim, dokaz teoreme moe biti izveden i direktnom primenom aksioma i dokazanih teorema na izraze koji ine iskaz date teoreme, tj. algebarskim manipulacijama. Na primer, dokaz zakona apsorpcije moemo izvesti tako to emo izraz sa leve strane znaka jednakosti, x + xy, primenom poznatih identiteta, svesti na izraz sa desne strane znaka jednakosti, tj. x: x+xy = x1+xy (shodno A2.b) = x (1+ y) (shodno A4.a) = x1 (shodno T2.a) = x (shodno A2.b) Algebarske manipulacije moemo koristiti i za dokazivanje sloenijih logikih identiteta sa veim brojem promenljivih, kao to je to ilustrovano sledeim primerima. PRIMER 2.3 Dokazati logiki identitet: (x1 + x3) (x1 + x3) = x1 x3' + x1' x3 Reenje: Izraz sa leve strane znaka jednakosti, LS, moemo transformisati na sledei nain: Primenom dobijamo: zakona distributivnosti, A3.a, PRIMER 2.4 Dokazati da sledea dva logika izraza predstavljaju istu funkciju: F1(x, y, z) = xy+xyz+xyz F1(x, y, z) = xy+xz+yz Reenje: Dokazaemo da su prethodna dva izraza ekvivalentna tako to emo prvi izraz redukovati na drugi, na sledei nain: xy+xyz+xyz = = xy+xyz+xyz+xyz = xy+x(y+y)z+xyz = xy+x1z+xyz = xy+xz+xyz = xy+xyz+xz+xyz = xy+xz+(x+x) yz = xy+xz+1yz = xy+xz+yz apsorbcija distributivnost komplement identitet apsorpcija distributivnost komplement identitet

LS = (x1 + x3) x1 + (x1 + x3) x3 Ponovnom primenom zakona distributivnosti, dolazimo do izraza: LS = x1 x1 + x3 x1 + x1 x3 + x3 x3 Uoimo da osobina distributivnosti omoguava AND-ovanje lanova u zagradi na isti nain kao kod mnoenja u standardnoj algebri. Shodno aksiomi A5.b lanovi x1 x1 i x3 x3 jednaki su 0, to daje: LS = 0 + x3 x1 + x1 x3 + 0 Iz A2.a sledi: LS = x3 x1 + x1 x3 Konano, korienjem zakona komutativnosti, A3.a i A3.b, dolazimo do izraza: LS = x1 x3 + x3 x1 koji je identian izrazu sa desne strane znaka jednakosti polaznog identiteta.

Nakon to smo dokazali da su dva izraza ekvivalentna, nadalje moemo koristiti jednostavniji, tj. onaj sa manjim brojem operatora. Brojanjem operatora pristunih u algebarskim izrazima, moemo zakljuiti da izraz F1=xy+xz+yz sadri samo tri AND i dva OR operatora, umesto pet AND, dva OR i dva NOT, koliko sadri izraz F1=xy+xyz+xyz. Znai, poto drugi izraz sadri manji broj operatora, moemo pretpostaviti da e on, takoe, zahtevati i manje hardvera kada se funkcija F1 bude realizovala u vidu kombinacione mree.

24

Logiko projektovanje

PRIMER 2.5 Dokazati: x1 x3' + x2' x3' + x1 x3 + x2' x3 = x1' x2' + x1 x2 + x1 x2' Reenje: Izraz sa leve strane znaka jednakosti moemo transformisati na sledei nain: 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, takoe moemo 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) (shodno A3.a) = x1 + x2' Svoenjem obe strane polaznog iskaza na identine izraze, dokazali smo da je polazni izraz taan. Uoimo da obe strane polazne jednakosti predstavljaju istu logiku funkciju: f(x1, x2, x3) = x1 x3' + x2' x3' + x1 x3 + x2' x3 = x1' x2' + x1 x2 + x1 x2' Kao rezultat algebarskih manipulacija, doli smo do mnogo jednostavnijeg izraza: f(x1, x2, x3) = x1 + x2' koji, takoe, predstavlja istu funkciju. Na osnovu primera 2.5, moemo 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, sadri ukupno pet AND i OR operatora, tj. tri AND i dva OR. Znai, 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 logikim izrazima. Meutim, ak i ovi jednostavni primeri ukazuju da bi baratanje sloenim izrazima na ovakav nain bilo nepraktino. Meutim, aksiome i teoreme prekidake algebre predstavljaju osnovu za automatizaciju sinteze logikih funkcija u CAD alatima. Bez obzira to projektanti retko neposredno koriste algebarske manipulacije, razumevanje fundamentalnih koncepta logikog projektovanja je preduslov za efkasno korienje CAD alata. 2.1.3 Generalizovane teoreme prekidake algebre

Nekoliko vanih teorema iz skupa osnovnih teorema prekidake algebre, T1-T7, mogu se uoptiti na proizvoljan broj promenljivih. etiri takve teoreme navedene su ispod: T8. Generalizovana idenpotencija a. x + x + + x = x b. x x x = x T9. De Morganova teorema za n promenljive a. (x + x + + x) = x x x b. (x x x) = x + x + + x T10. Generalizovana De Morganova teorema [F(x1, x2, , xn, +, ,)]' = F(x1, x2, , xn, ,+,) T11. enonova teorema razvoja a. F(x1, x2, , xn) = x1 F(1, x2, ..., xn) + x1 F(0, x2, ..., xn) b. F(x1, x2, , xn) = [x1 + F(0, x2, ..., xn)] [x1 + F(1, x2, ..., xn)] Teoreme T8-11 mogu se dokazati postupkom koji se zove konana indukcija najpre se dokae da je teorema tana za n=2, a zatim se dokae da ako je teorema tana za n=i tada je takoe tana i za n=i+1. Razmotrimo, na primer, teoremu generalizovane idenpotencije, T8.a. Za n=2, teorema T8.a se svodi na teoremu

25

Arhitektura mikrosistema

T1.a i zbog toga je tana. Ako je teorema T8.a tana za logiku sumu od i x-ova, tada je takoe tana i za logiku sumu i+1 x-ova, shodno sledeem rezonovanju: x + x + x + ... + x = x + (x + x + ... + x) = x + (x) =x (i+1 x sa obe strane) (pod pretpostavkom da je T8.a tana za n=i) (na osnovu T1.a)

Ovime je dokazano da je teorema T8.a tana za bilo koje konano n. De Morganova teorema je verovatno najee koriena teorema prekidake algebre. De Morganova teorema za n promenljivih kae da je komplement zbira jednak proizvodu komplemenata promenljivih (T9.a), odnosno, da je komplement proizvoda jednak zbiru komplemenat promenljivih (T9.b). Primenjeno na logika kola, to znai da je OR kolo sa komplemeniranim izlazom identino AND kolu sa komplementiranim ulazima, tj. NAND (skraeno od Not AND) kolu (Sl. 2.6a). Slino, AND kolo sa komplementiranim izlazom identino je OR kolu sa komplementiranim ulazima, tj. NOR (skraeno od Not OR) kolu (Sl. 2.6b). esto, prilikom crtanja logikih ema invertor se zamenjuje kruiem koji se pridruuje ulazu ili izlazu logikog kola, to nas dovodi do alternativnih simbola za NOR i NAND logika kola (Sl. 2.6c). Shodno De Morganovoj teoremi, prethodna diskusija se moe uoptiti na logika kola sa proizvoljnim brojem ulaza.

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

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

(c) alternativni grafiki simboli za NAND i NOR kola. Sl. 2.6 Ekvivalentna kola shodno De Morganovoj teoremi.

Teorema T9 je specijalan sluaj generalizovane De Morganove teoreme, T10, koja se moe primeniti na bilo koji logiki izraz. Tanije, De Morganova teorema za n promenljivih je primena generalizovane De Morganove teoreme na izraze oblika logikog zbira i logikog proizvoda. Po definiciji, komplement logikog izraza F, u oznaci F, je logiki izraz ija je vrednost jednaka komplementu vrednosti izraza F za sve kombinacije vrednosti promenljivih. Generalizovana De Morganova teorema kae da se F' moe odrediti tako to e se u izrazu F komplementirati sve promenljive, svi AND operatori zameniti OR operatorima, i svi OR operatori zameniti AND operatorima. Teorema T10 je veoma bitna, jer definie jedan jednostavan postupak za izvoenje izraza za komplent date funkcije. Na primer, odredimo komplement sledee funkcije: F(x1, x2, x3, x4) = x1x2 + x2x3 + x1 (x2' + x4') = ((x1)x2) + (x2x3) + (x1 ((x2)' + (x4)')) U drugoj liniji, zagradam su izdvojene promenljive koje se komplementiraju. To je uinjeno iz razloga da bi se naglasilo da nije deo imena promenljive ve operator koji se primenjuje na promenljivu. Primenom teoreme T10 dobijamo: [F(x1, x2, x3, x4)] = ((x1)+ x2) (x2+x3) (x1 + ((x2)' (x4)')) Primenom teoreme dvojne negacije, T4, dobijeni izraz se moe dodatno pojednostaviti: [F(x1, x2, x3, x4)] = (x1+x2) (x2+x3) (x1 + x2 x4) 2.1.4 Princip dualnosti

Uoimo da su aksiome Bulove algebre navedene u parovima. To je uinjeno iz razloga da bi se naglasila jedna bitna osobina Bulove algebre, koja se zove princip dualnosti, a ije vaenje nije ogranieno samo na aksiome,

26

Logiko projektovanje

ve se odnosi i na sve teoreme i identitete koji se mogu izvesti polazei od aksioma i poznatih teorema. Ako je A logiki 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. Uoimo da svi parovi aksioma i teorema prekidake algebre predstavljaju dualne iskaze. Princip dualnosti kae da ako je iskaz A taan tada je i njegov dualni iskaz, AD, takoe taan. Princip dualnosti je u sutini metateorema, tj. teorema o teoremama. Ova metateorema je tana zato to su duali svih aksioma tani, pa se duali svih teorema prekidake algebre mogu dokazati korienjem duala aksioma. Iako su pravila za izvoenje dualnog iskaza jednostavna, ipak, moramo biti obazrivi u njihovoj primeni. Naime, direktna primena principa dualnosti na iskaze koji su napisani pod pretpostavkom konvencije o prethoenju operacija, moe da nas dovede do pogrenog rezultata. Na primer, primenimo princip dualnosti na teoremu T3.a: x+xy=x xx+y=x x+y=x (teorema T3.a) (nakon primene principa dualnosti) (shodno T1.b)

Oigledno, poslednja linija u prethodnom izvoenju je netana. Problem je u prethoenju operacija. Iako je polazni iskaz napisan bez zagrada, on se tumai na sledei nain: x + (x y) = x Ako sada primenimo princip dualnosti, dobiemo taan 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 prethoenja operacija. Definiimo sada pojam dualnog logikog izraza. Ako je F(x1, x2, , xn, +, ,) logiki izraz koji sadri promenljive x1, x2, , xn, i operatore +, i , i kod koga zagrade nisu eliminisane zbog konvencije prethoenja operacija, tada je njegov dual, FD, identian izraz ali sa zamenjenim operatorima + i , tj: FD(x1, x2, , xn, +, ,) = F(x1, x2, , xn, , +,) Uoimo da korienjem ove notacije, De Morganovu teoremu moemo napisati na sledei nain: [F (x1, x2, , xn)]' = FD(x1, x2, , xn) Poslednji iskaz ukazuje na vezu izmeu principa dualnosti i generalizovane De Morganove teoreme. Naime, generalizovni De Morganovu teoremu moemo iskazati i na sledei nain: Komplement logike funkcije identian je njenoj dualnoj funkciji primenjenoj na komplemente promenljivih. Razmotrimo sada znaenje ove konstatacije u kontekstu fizikih, kombinacionih mrea. Promenljive prekidake algebre odgovaraju signalima kombinacione mree. Kao to promenljiva moe imati dve razliite logike vrednosti, 0 ili 1, tako i signal moe biti u jednom od dva razliita stanja. U digitalnoj elektronici, stanjima signala odgovaraju naponski nivoi: vii nivo, ili HIGH (npr. 5V) i nii nivo, ili LOW (npr. 0V). Oigledno, postoje dva naina kako se moe uspostaviti korespondencija izmeu logikih vrednosti i naponskih nivoa. Ako usvojimo da logikoj nuli odgovara naponski nivo LOW, a logikoj jedinici naponski nivo HIGH, kaemo da koristimo pozitivnu logiku. U suprotnom, ako usvojimo HIGH=0 i LOW=1, kaemo da koristimo negativnu logiku.

Sl. 2.7 Logiki gejt tip_1: (a) elektrina funkcionalna tabela; (b) logika funkcionalna tabela i simbol za sluaj pozitivne logike; (c) logika funkcionalna tabela i simbol za sluaj negativne logike.

27

Arhitektura mikrosistema

Pretpostavimo da raspolaemo logikim elektronskim elementom ija je elektrina funkcionalna tabela data na Sl. 2.7.a. Ova tabela pokazuje zavisnost izmeu naponskog nivoa na izlazu i naponskih nivoa na ulazima elementa. Neka se ovaj element zove gejt tip_1. Ako se drimo konvencije pozitivne logike (HIGH=1, LOW=0), gejt tip_1 predstavlja AND logiko kolo. Meutim, ako usvojimo negativno logiku (HIGH=0, LOW=1), gejt tip_1 predstavljae logiko OR kolo. Uoimo da promena sa pozitivne na negativnu logiku ne zahteva nikakvu intervenciju nad fizikim elementom, ve samo predstavlja promenu naina tumaenja naponskih nivoa. Logike operacije AND i OR su dualne, a ovaj primer pokazuje da logiki element, u sutini, realizuje dve razliite logike operacije u zavisnosti od usvojene konvencije tumaenja naponskih nivoa. Naime, ako u pozitivnoj logici element realizuje operaciju F, tada u negativnoj logici taj isti element realizuje operaciju FD. Ova konstatacija ne vai samo na nivou elementarnih logikih kola, ve se odnosi i na logike mree proizvoljne sloenosti.

Sl. 2.8 Logiki gejt tip_2: (a) elektrina funkcionalna tabela; (b) logika funkcionalna tabela i simbol za sluaj pozitivne logike; (c) logika funkcionalna tabela i simbol za sluaj negativne logike.

Pretpostavimo da osim gejtom tip_1, raspolaemo i gejtom tip_2, koji u pozitivnoj logici obavlja logiku OR, a u negativnoj logici logiku AND operaciju (Sl. 2.8). Takoe, neka je dat proizvoljni logiki izraz F(x1, x2, , xn). Sledei konvenciju pozitivne logike, moemo realizovati kombinacionu mreu koja odgovara ovom izrazu korienjem 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 logiku konvenciju sa pozitivne na negativnu. Iako se fiziki nita nije promenilo, sa take gledita prekidake algebre, desile su se znaajne promene: operacije AND sada su OR, a operacije OR sada su AND. Dakle, mrea vie ne odgovara izrazu F, ve izrazu FD. Jasno, za svaku moguu izlaznu kombinaciju naponskih nivoa (HIGH i LOW), mrea i dalje generie na izlazu isti napon. Meutim, logika izlazna vrednost, 0 ili 1, suprotna je onoj koja je vaila u pozitivnoj logici. Slino, svaka ulazna vrednost sada je suprotna svom ranijem znaenju. Dakle, za svaku moguu ulaznu kombinaciju kola sa Sl. 2.9.a, izlaz je suprotan (komplementaran) onome koji se za komplementarnu ulaznu kombinaciju generie na izlazu kola sa Sl. 2.9.b.

Sl. 2.9 Dualne logike mree: (a) logika mrea za funkciju F koja koristi invertore i gejtove tip_1 i tip_2 pod pretpostavkom pozitivne logike; (b) realizacija prethodnog kola za negativnu logiku.

Prethodna diskusija moe se saeti na sledea dva opta zakljuka:

1. Logika mrea koja u pozitivnoj logici realizuje izraz F, u negativnoj logici realizuje izraz FD. 2. Ako mreu koja realizuje izraz F proirimo ugradnjom invertora na njenim ulazima i izlazima
dobiemo mreu koja realizuje izraz FD (a ne F, kako bi se moda moglo oekivati, ako bi smo pokuali da pravilo dvojene negacije uoptimo na proizvoljan logiki izraz!).

Uoimo da princip dualnosti ne deluje na operator NOT. Naime, dual izraza x je x. Operacija negacije pripada jednoj posebnoj klasi prekidakih funkcija za koje vai: F=FD, a koje se zovu samodulane funkcije.

28

Logiko projektovanje

2.1.5

Kanonike forme

U odeljku 2.1.1 pokazano je kako se Bulova fukcija moe definisati pomou tabele istinitosti. U ovom odeljku bie pokazano kako se tabela istinitosti moe konvertovati u algebarski izraz. Mintermi Za funkciju od n promenljivih, produktni lan u kome se svaka od n promenljivih pojavljuje tano jednom zove se potpuni proizvod ili minterm. U mintermu, promenljive se mogu pojavljivati u komplementiranom ili nekomplementiranom obliku. Na primer, proizvodi x1x2x3, x1x2x3 i x1x2x3 su primeri potpunih proizvoda od tri promenljive: x1, x2 i x3. Minterm ima vrednost 1 samo za jednu kombinaciju vrednosti promenljivih i to onu kod koje sve promenljive koje se u mintermu javljaju bez komplementa imaju vrednost 1, a sve one koje se u mintermu javljaju sa komplementom imaju vrednost 0. Na primer, minterm x1x2x3 ima vrednost 1 samo ako vai: x1=0 i x2=1 i x3=1. Minterm se moe definisati i kao prekidaka funkcija koja ima 1 smo u jednoj, a 0 u svim ostalim vrstama, tj. slogovima, tabele istinitosti. Poto tabela istinitosti sadri 2n vrste, broj razliitih minterma je, takoe, 2n. Dakle, svakom slogu odgovara jedan minterm. Pri tome pozicije nula u slogu odreuju pozicije komplemenata u algebarskom izrazu odgovarajueg minterma. Ovaj koncept ilustrovan je na Sl. 2.10. U tabeli sa Sl. 2.10 navedeni su svi mintermi od tri promenljive. Na primer, u prvoj vrsti promenljive imaju vrednosti: x1=x2=x3=0, to odgovara mintermu x1x2x3. U drugoj vrsti, vrednosti promenljivih su: x1=x2=0 i x3=1 to daje minterm x1x2x3 i tako dalje. Uobiajeno je da se pojedinani mintermi oznaavaju pomou decimalnog indeksa sloga kome su pridrueni. Koristiemo notaciju mi da bi smo oznaili minterm za slog sa decimalnim ideksom i. Znai, m0= x1x2x3, m1= x1x2x3 i tako dalje.
x1 0 0 0 0 1 1 1 1 x2 0 0 1 1 0 0 1 1 x3 0 1 0 1 0 1 0 1 Minterm m0 = x1x2x3 m1 = x1x2x3 m2 = x1x2x3 m3 = x1x2x3 m4 = x1x2x3 m5 = x1x2x3 m6 = x1x2x3 m7 = x1x2x3 Maksterm M0 = x1+x2+x3 M1 = x1+x2+x3 M2 = x1+x2+x3 M3 = x1+x2+x3 M4 = x1+x2+x3 M5 = x1+x2+x3 M6 = x1+x2+x3 M7 = x1+x2+x3

Sl. 2.10 Mintermi i makstermi od tri promenljive.

Prekidaka funkcija f moe se predstaviti u obliku zbira svih minterma, gde je svaki minterm pomnoen vrednou funkcije za odgovarajuu kombinaciju vrednosti ulaznih promenljivih. Na primer, za dve promenljive postoje etiri minterma: m0=x1x2, m1=x1x2, m2=x1x2 i m3=x1x2. Funkcija definisana tabelom istinitosti sa Sl. 2.11 moe se predstaviti u obliku: f = m01 + m11 + m20 + m31 = m0 + m1+ m3 = x1x2 + x1x2 + x1x2 Uoimo da se u konanom izrazu pojavljaju samo oni mintermi koji odgovaraju slogovima na kojima funkcija ima vrednost f=1. Ovo zapaanje moemo uoptiti na proizvoljnu prekidaku funkciju: Bilo koja prekidaka funkcija f moe se predstaviti zbirom minterma koji odgovaraju vrstama tabele istinitosti u kojima funkcija ima vrednost f=1.
Dec. indeks 0 1 2 3 4 5 6 7 x 0 0 0 0 1 1 1 1 y 0 0 1 1 0 0 1 1 z 0 1 0 1 0 1 0 1 f(x, y, z) 0 1 0 0 1 1 1 0

Sl. 2.11 Funkcija od tri Za logiki izraz koji je sainjen iskljuivo od sabranih proizvoda promenljive. kae se da je oblika zbir-proizvoda. Ako je pri tome svaki produktni lan minterm, za takav logiki izraz se kae da je oblika kanonikog zbira proizvoda (kanoniki SOP). Dakle, prethodno opisani postupak definie proceduru za sintezu prekidake funkcije u oblik kanonikog zbira proizvoda. Rezultujui izraz je korektan i jedinstven, ali ne mora da znai da je i minimalan u smislu cene realizacije funkcije f. U sutini, konverzija tabele istinitosti u kanoniki algebarski izraz predstavlja samo prvi korak u sintezi prekidakih funkcija. Da bi smo snizili cenu realizacije funkcije, u nastavku procesa sinteze, na dobijeni kanoniki izraz moemo primeniti algebarske manipulacije i tako doi do jednostavnijeg izraza oblika zbir-proizvoda.

Kao drugi primer sinteze, razmotrimo funkciju tri promenljive f(x1, x2, x3) zadatu tabelom istinitosti sa Sl. 2.11. Kanoniki zbir proizvoda funkcije f sadrae minterme m1, m4, m5 i m6. Prostim prepisivanje ovih minterma iz tabele sa Sl. 2.10, dobijamo sledei izraz:

29

Arhitektura mikrosistema

f(x1, x2, x3) = x1x2x3 + x1x2x3 + x1x2x3 + x1x2x3 Ovaj izraz moemo pojdnostaviti na sledei nain: f = (x1 + x1)x2x3 + x1(x2 + x2)x3 = 1 x2x3 + x1 1 x3 = x2x3 + x1 x3 Dobijeni izraz predstavlja zbir-proizvoda minimalne cene koji realizuje funkciju f. Na osnovu ovog izraza moemo direktno nacrtati emu logike mreu sa Sl. 2.12.a.

(a) minimalna realizacija tipa zbir-proizvoda

(b) minimalna realizacija tipa proizvoda-suma

Sl. 2.12 Dve realizacije funkcije sa Sl. 2.11

Dobar indikator cene logike mree je ukupan broj logikih kola plus ukupan broj ulaza u sva logika kola u mrei. Korienjem ove mere, cena mree sa Sl. 2.12.a iznosi 13, zato to u mrei postoje 5 logikih kola i ukupno 8 ulaza u logika kola. Radi poreenja, mrea realizovana direktno na osnovu polazne kanonike forme imala bi cenu 27. Mintermi, predstavljeni u obliku mi, mogu se, takoe, koristiti za koncizno zadavanje funkcije. Na primer, funkcija, ija je tabela istinitosti prikazana na Sl. 2.11, moe se zadati na sledei nain: f(x1, x2, x3) = ili, ak, jednostavnije: f(x1, x2, x3) =

(m , m , m , m )
1 4 5 6

m(1, 4, 5, 6)

Simbol za sumiranje oznaava OR operaciju nad mintermima iji su indeksi navedeni u zagradama. Promenljive koje su navedene u zagradama nakon f predstavljaju promenljive koje se u istom redosledu javljaju u mintermima kada su oni napisani u obliku proizvoda. Uoimo da je skup navedenih indeksa identian skupu decimalnih indeksa f(1). Dakle, vai: f(x1, x2, x3) =

(f

(1)

Nije teko uoiti da vai: [f(x1, x2, x3)]' =

(f

(0)

Odnosno, zbir minterma koji odgovaraju vrstama tabele istinitosti u kojima funkcija f ima vrednost 0, predstavlja izraz oblika kanoniki zbir-proizvoda za funkciju f. Kao to je ve reeno, za datu funkciju postoji tano jedan izraz oblika kanonikog zbira-proizvoda kojim se ta funkcija moe predstaviti. Sa druge strane, ne postoji jedinstven izraz oblika zbir-proizvoda koji predstavljaja istu funkciju, ve je obino broj takvih izraza veoma veliki. Za razliku od postupak izvoenja minimalnog izraza oblika zbir-proizvoda, koji nije trivijalan, i zahteva izvesnu vetinu manipulisanja algebarskim izrazima, obrnuti postupak, tj. izvoenje kanonikog zbira-proizvoda na osnovu datog zbiraproizvoda predstavlja gotovo trivijalan zadata. Naima, dovoljno je u polaznom izrazu svaki proizvod koji ne sadri sve promenljive proiriti lanovima oblika (x+x) za svaku promenljivu x koja nedostaje u tom proizvodu, a zatim izvriti sva potrebna mnoenja kako bi se oslobodili zagrada. Ovaj postupak bie ilustrovan sledeim primerom.

30

Logiko projektovanje

PRIMER 2.6 Odrediti tabelu istinitosti funkcije: f(x1, x2, x3, x4) = x1x3x4 + x2x3 + x1x2x3x4 Odgovor: Postavljeni zadatak moemo reiti na poznati nain: direktnim popunjavanjem tabele istinitosti izraunatim vrednostima funkcije za sve mogue kombinacije vrednosti promenljivih. Meutim, s obzirom da funkcija ima 4 promenljive, broj binarnih kombinacija za koje bi smo morali da raunamo vrednost funkcije iznosi 16, to moe biti dugotrajan posao. Zato emo do reenja doi na drukiji nain: polazni izraz koji je oblika zbir-proizvoda proiriemo na oblik kanonikog zbira-proizvoda, a zatim emo na osnovu dobijenih minterma odrediti decimalne indekse vrsti tabele istinitosti u kojima funkcija ima vrednost 1. Data izraz za funkciju f sastoji se iz tri proizvoda, od kojih je samo trei minterm. Prvom proizvodu nedostaje jedna promenljiva, x2, a drugom dve, x1 i x4, da bi i oni bili mintermi. Znai da bi smo dobili izaz u kanonikom obliku potrebno je prvi produkni lan pomonoiti sa (x2+x2), a drugi sa (x1+x1) (x4+x4): f(x1, x2, x3, x4) = x1(x2+x2)x3x4 + (x1+x1)x2x3(x4+x4) + x1x2x3x4 nakon obavljenih mnoenja dobijamo: f(x1, x2, x3, x4) = x1x2x3x4 + x1x2x3x4 + x1x2x3x4 + x1'x2x3x4 + x1x2x3x4 + = x1'x2x3x4 + x1'x2x3x4 + x1x2x3x4 nakon saimanja identinih produktnih lanova, dobijamo: f(x1, x2, x3, x4) = m13 + m9 + m11 + m3 + m10 + m2 Dakle, funkciju f moemo predstaviti u obliku: f(1) = (2, 3, 9, 10, 11, 13) Tabela istinitosti za funkciju od etiri promenljive ima 16 vrsta. Dobijeni skup decimalnih indeksa f(1) ukazuje u koje vrste tabele istinitosti treba upisati 1.

Maxtermi Princip dualnosti sugerie da ako je mogue sintetizovati funkciju f uzimajui u obzir samo one vrste tabele istinitosti gde je f=1, tada bi takoe trebalo biti mogue sintetizovati funkciju f uzimajui 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 mogui makstermi za funkciju od tri promenljive. Maksterme emo oznaavati sa Mj, gde je j decimalni indeks odgovarajueg minterma, mj. Kao to je ve napomenuto, ako je funkcija f zadata tabelom istinitosti, tada se njen komplement, f, moe predstaviti zbirom minterma za koje vai f=0. Na primer, za funkciju sa Sl. 2.13 vai: f(x1, x2) = m2 = x1x2 ako sada komplementiramo obe strane gornjeg iskaza dobiemo: f = f = (x1x2) = x1 + x2 Dakle, f = m2 = M2. Razmotrimo ponovo funkciju sa Sl. 2.11. Komplement ove funkcije moemo predstaviti u obliku: f(x1, x2, x3) = m0 + m2 + m3 + m7 = x1x2x3 + x1x2x3 + x1x2x3 + x1x2x3 Na osnovu f' dobijamo izraz za f: f = (m0 + m2 + m3 + m7) = m0' m2' m3' m7' = M0 M2 M3 M7 = (x1 +x2 +x3)(x1 + x2 +x3)(x1 +x2 +x3)(x1 +x2 +x3) Dobijeni izraz predstavlja funkciju f u obliku proizvoda maksterma. Za logiki izraz koji je sainjen iskljuivo od pomnoenih zbirnih lanova kae se da je oblika proizvodsuma. Ako je pri tome svaki zbirni lan maksterm, za takav logiki izraz se kae da je oblika kanoniki proizvod-suma. Bilo koja funkcija f moe biti sintetizovana tako to e najpre biti predstavljena u oblik kanonikog proizvoda-suma. To znai da najpre treba identifikovati, a zatim pomnoiti sve maksterme koji odgovaraju vrstama tabele istinitosti gde funkcija ima vrednost f=0.
x1 0 0 1 1 x2 0 1 0 1 f(x1, x2) 1 1 0 1

Sl. 2.13 Funkcija dve promenljive.

31

Arhitektura mikrosistema

Vratimo se na prethodni primer i pokuajmo da uprostimo izvedeni izraz. Korienjem osobina komutativnosti i asocijativnosti, ovaj izraz se moe napisati u obliku: f = ((x1 +x3) + x2)((x1 + x3) + x2)(x1 + (x2 +x3))(x1 +(x2 +x3)) Zatim, korienjem zakona saimanja, T6.b, izraz moemo redukovati na oblik: f = (x1 +x3) (x2 +x3) Na Sl. 2.12.b je prikazana odgovarajua logika mrea. Cena ove mree iznosi 13. Iako se desilo da je cena ove mree ista kao i cena mree konstruisane na osnovu izraza oblika suma-proizvoda sa Sl. 2.12.a, to u optem sluaju ne mora biti tako. Korienjem skraene notacije, funkciju f moemo predstaviti na alternativni nain:

(M , M , M , M ), ili, ak, jednostavnije: f(x , x , x ) = M(0, 2, 3, 7) gde, simbol oznaava operaciju logikog proizvoda.
f(x1, x2, x3) =
1 2 3 0 2 3 7

Nije teko zakljuiti da e izraz za komplement funkcije f, oblika kanonikog proizvoda-suma, sadrati sve preostale maksterme, tj. one koji se ne javljaju u izraz za funkcija f: f(x1, x2, x3) =

M(1, 4, 5, 6)

U sledeem primeru rezimirani su zakljuci do kojih smo doli u ovom odeljku, a koji se odnose na predstavljanje prekidakih funkcija u kanonikom obliku.

PRIMER 2.7 Na osnovu tabele istinitosti:


Dec. indeks 0 1 2 3 4 5 6 7 x 0 0 0 0 1 1 1 1 y 0 0 1 1 0 0 1 1 z 0 1 0 1 0 1 0 1 f(x, y, z) 0 0 1 1 0 1 1 1

odrediti izraze oblika kanonikog zbira-proizvoda i kanonikog proizvoda-suma za funkcije f i f. Odgovor: Na osnovu tabele istinitosti, sve decimalne indekse moemo 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. Kanoniki zbir-proizvoda funkcije f sadri 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

+ x1x2x3 + x1x2x3 + x1x2x3

Kanoniki zbir-proizvoda funkcije f ukljuuje 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 1 2

+ x1x2x3

Kanoniki proizvod-suma funkcije f ukljuuje sve maksterme iz skupa f(0): f(x1, x2, x3) =

M(0, 1, 4) = (x +x M(2, 3, 5, 6, 7)

+x3)(x1 + x2 +x3)(x1 +x2 + x3)

Kanoniki proizvod-suma funkcije f ukljuuje sve maksterme iz skupa f(1): [f(x1, x2, x3)]' =

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

32

Logiko projektovanje

2.1.6

Standardne forme

Dve kanonike forme opisane u odeljku 2.1.5 omoguavaju nam da na osnovu tabele istinitosti, direktno, izvedemo dva razliita algebarska izraza za datu prekidaku funkciju. Meutim, s obzirom da svaki minterm ili maksterm sadri n-1 AND ili OR operatora, ove dve forme veoma retko predstavljaju forme sa najmanjim brojem operatora. Kao alternativa kanonikim formama, prekidake funkcije se mogu definisati u obliku standardne forme, kod koje proizvodi (tj. sabirci) mogu imati i manje od n-1 operatora. Postoje dve vrste standardnih formi, suma proizvoda (Sum of Products - SOP) i proizvod suma (Product of Sum - POS). Suma proizvoda se definie kao logiki izraz koji sadri proizvode, ili implikante, od jednog ili vie literala (ali, ne obavezno n). Na primer, funkcija F1 je zadata u obliku sume proizvoda: F1=xy+xyz+xyz Uoimo da izraz za funkciju F1 ima tri implikanta, od kojih svaki sadri dva ili tri literala. Sa druge strane, algebarski izraz tipa proizvod-suma sadri sabirke, ili implikate. Svaki implikat moe sadrati proizvoljan broj literala, a proizvod moe imati proizvoljan broj implikata. Sledei izraz predstavlja primer funkcije izraene u obliku proizvod-suma: F1=(x+y)(x+y+z)(x+y+z) Uoimo da izraz za funkciju F1 sadri tri implikata sa po dva ili tri literala. Standardne forme tipa suma-proizvoda i proizvod suma nisu jedinstvene, u smislu da proizvoljna logiku funkciju moe biti predstavljena preko vie razliitih SOP ili POS izraza. Meutim, iako nisu jedinstvene, standardne forme su korisne, zato to sadre manji broj literala u odnosu na kanonike forme. Korienjem aksioma Bulove algebre, standardne forme se mogu izvesti na osnovu kanonike forme kombinovanjem lanova koji se razlikuju po jednom literalu. Na primer, izraz xyz+xyz moe se redukovati na izraz xy, na sledei nain: xyz+xyz = xy(z+z) (distributivnost Aksioma 4(a)) = xy1 (komplement Aksioma 5(a)) = xy (identitet - Aksioma 2(a)) Slino, izraz xyz+xyz+xyz+xyz se moe svesti na x, ako se gornja procedura primeni dva puta: xyz+xyz+xyz+xyz = xy(z+z)+xy(z+z) = xy+xy = x(y+y) =x Takoe, standardna forma sa manjim brojem operatora moe se izvesti ako se opisana procedura primeni vie puta nad razliitim grupama proizvoda, kao to je pokazano u primeru 2.9. U optem sluaju, lanovi iz standardne forme se mogu kombinovati, a literali eliminisati, sve dok dalja redukcija vie nije mogua. U tom sluaju, svaki preostali proizvod, tj. implikant, u formi tipa suma-proizvoda se zove primarni implikant, odnosno, primarni implikat, ako se radi o sumama, tj. implikatima, u standardnoj formi tipa proizvod-suma. Svaki primarni implikant reprezentuje jedan ili vie 1-minterma date funkcije. Uoimo da svaki 1-minterm moe biti ukljuen u jedan ili vie primarnih implikanata. Ako je 1-minterm sadran samo u jednom primarnom implikantu, takav implikant se zove esencijalni primarni implikant, s obzirom da ne moe biti izostavljen iz bilo koje standardne forme, a da se pri tome ne promeni data funkcionalnost. Na slian nain, moemo definisati esencijalni primarni implikat za standardnu formu tipa proizvod-suma. PRIMER 2.8 Izvesti standardnu formu sa smanjenim brojem operatora za funkciju: F1=xyz+xyz+xyz+xyz. Reenje: Kao to se moe videti, proizvod xyz se moe kombinovati sa svakim od preostalih proizvoda. To znai, da pre samog kombinavanja, prvi lan treba umnoiti u jo dva primerka: F1 = xyz+xyz+xyz+xyz = xyz+xyz+ xyz+xyz + xyz+xyz = xy(z+z)+ x(y+y)z + (x+x)yz = xy+xz+yz

33

Arhitektura mikrosistema

Nestandardna forma Iako standardne forme mogu sadrati manji broj operatora nego kanonike forme, one i dalje ne moraju imati apsolutno najmanji broj operatora. Naime, faktorizacijom literala, data prekidaka funkcija se moe izraziti u obliku nestandardne forme, koja, ponekada, moe zahtevati ak i manji broj operatora. Na primer, broj operatora u izrazu xy+xyz+xyw se moe smanjiti ako se izraz najpre faktorizuje po x, a onda po y: xy+xyz+xyz = x(y+yz+yw) = x(y+y(z+w)) Kao to se moe videti, ova forma nije ni suma-proizvoda, a ni proizvod-suma, iako se moe lako konvertovati u standradnu formu ako se korienjem zakona distributivnosti oslobodimo zagrada. PRIMER 2.9 Redukovati broj operatora u standardnoj formi funkcije F1=xy+xz+yz. Reenje: Mogu se izvesti tri nestandardne forme funkcije F1 koje zahtevaju manji broj operanada: Svaka od njih zahteva dve AND i dve OR operacije, u odnosu na tri AND i dva OR kod polazne standardne forme: F1 = xy+xz+yz = xy+(x+y)z = x(y+z)+yz = xz+y(x+y) Kao to je u ovom odeljku pokazano, postoji nekoliko strategija za smanjenje broja operatora u logikim izrazima. Jedna uoptena procedura bi sadrala sledee korake: 1) dati algebarski izraz se najpre konvertuje u tabelu istinitosti; 2) na osnovu tabele istinitosti generie se kanonika forma; 3) broj operatora se smanjuje konverotovanje kanonike u standardnu formu; 4) Konano, broj operatora se dodatno moe smanjiti faktorizacijom po svim zajednikim podizrazima, to daje nestandarnu formu.

2.1.7

Logike operacije
2n

Kao to je poznato, broj Bulovih funkcija od n promenljivih iznosi 2 . To znai da za dve promenljive postoji ukupno 16 razliitih Bulovih funkcija. Poto su operacije AND i OR samo dve od 16 moguih Bulovih funkcija, u ovom odeljku definisaemo peostalih 14 funkcija od dve promenljive. U tabeli sa Sl. 2.14 navedeno je svih 16 funkcija dve promenljive, x i y. Svaka vrsta u ovoj tabeli odgovara jednoj funkciji. U prvoj koloni navedena su imena funkcija; tabele istinitosti date su u treoj, a odgovarajui algebarski izrazi u etvrtoj koloni. Uoimo da su funkcije oznaene sa Fi, gde i predstavlja decimalni ekvivalent binarnog broja koji se dobija kada se vrednosti funkcija navedene u treoj koloni interpretiraju kao binarni brojevi. Kao to je poznato, svaka od navedenih funkcija moe se predstaviti u vidu standardne forme pomou operatora AND, OR i NOT. Meutim, ne postoji razlog zbog koga svakoj od ovih funkciji ne bi bio dodeljen poseban operator, kao to je navedeno u drugoj koloni tabele. Bez obzira na to, po pravilu, sa izuzetkom simbola za funkciju XOR, ostali simboli se retko koriste u praksi. Funkcije iz tabele mogu se razvrstati u sledee tri kategorije: 1. 2. Postoje dve funkcije koje generiu konstante: Zero i One. Za svaku kombinaciju vrednosti promenljivih, funkcija Zero ima vrednost 0, a funkcija One vrednost 1. Postoje etiri funkcije jedne promenljive, imenovane kao operacije Komplement i Transfer. Konkretno, funkcija Komplement generie komplement jedne od promenljivih, a funkcija Transfer prenosi, bez promene, jednu od promenljivih na izlaz. Postoji 10 funkcija koje definiu osam binarnih operacija: AND, Inhibicija, XOR, OR, NOR, Ekvivalencija, Implikacija i NAND.

3.

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

34

Logiko projektovanje

Ime operacije Zero AND Inhibicija Transfer Inhibicija Transfer XOR OR NOR Ekvivalencija Komplement Implikacija Komplement Implikacija NAND One

Simbol operatora

Vrednosti funkcije za x,z= 00 0 01 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 10 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 11 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

Algebarski izraz F0=0 F1=xy F2=xy F3=x F4=xy F5=y F6=xy+xy F7=x+y F8=(x+y) F9=xy+xy F10=y F11=x+y F12=x F13=x+y F14=(xy) F15=1

Komentar Binarna konstanta 0 xiy x, ali ne y x y, ali ne x y x ili y ali ne oba x ili y NOT-OR x jednako y NOT y Ako y, tada x NOT x Ako x, tada y NOT-AND Binarna konstanta 1

xy x/y y/x xy x+y x y xy y xy x x y x y

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

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

NOR funkcija je komplement OR, NAND komplement AND funkcije. XOR (to je skraeno od eXclusive iskljuivo OR) funkcija slina je OR funkciji, osim to iskljuuje rezultat 1 kada su obe promenljive jednake 1. Operator Ekvivalencija daje rezultat 1 kada obe promenljive imaju istu vrednost. Funkcije XOR i Ekvivalencija su meusobno komplementarne. Iz tog razloga Ekvivalencija se esto zove XNOR (eXlusive iskljuivo NOR). U skupu od 16 funkcija navedenih u tabeli sa Sl. 2.14, postoji 12 jedinstvenih funkcija (javljaju se samo jednom), s obzirom da se etiri funkcije ponavljaju dva puta. Funkcije Zero i One se naroito lako realizuju povezivanjem na linije za napajanje. Dve funkcije, Inhibicija i Implikacije nisu ni komutativne ni asocijativne, to ih ini nepodesnim za logiko projektovanje. Preostalih osam funkcija mogu se lako ralizovati u vidu standardnih logikih kola i esto se koriste u logikom projektovanju. 2.1.8

Digitalna logika kola

Prekidake funkcije se realizuju u obliku prekidakih ili kombinacionih mrea. Ulazi kombinacione mree su promenljive, a izlaz rezultat prekidake funkcije. Kombinaciona mrea se sastoji od jednog ili vie logikih kola ili gejtova, gde svako logiko kolo obavlja jednu ili vie standardnih logikih operacija. Kolekcija logikih kola, koja koristimo za konstrukciju kombinacionih mrea, zove se biblioteka gejtova, dok se gejtovi koji pripadaju biblioteci zovu standardni gejtovi. Iako svaki Bulov operator moe biti realizovan u vidu logikog kola, u cilju smanjenja trokova odravanja biblioteke i pojednostavljenja razvoja CAD alata za logiko projektovanje, savremene biblioteke gejtova retko sadre vie od desetak logikih kola. Prilikom izbora Bulovih operatora koji e biti ukljueni u biblioteku gejtova, od interesa su sledei kriterijumi: Frekvencija korienja u tipinom dizajnu, definisana kao sposobnost gejta da u kombinaciji sa drugim gejtovima iz biblioteke realizuje raznorodne prekidake funkcije. Proirljivost operatora na vie od dve promenljive. Preduslov za proirljivost operatora je posedovanje osobine komutativnosti i asocijativnosti. Jednostavnost konstrukcije, koja se karakterie brojem tranzistora potrebih za realizaciju gejta kao i vremenom koje je potrebno da se promena na ulazu gejta prenese na izlaz gejta.

Na osnovu navedenih kriterijuma, za realizaciju u vidu standardnih gejtova obino se bira samo sledeih osam operatora: NOT, Transfer, AND, OR, NAND, NOR, XOR i XNOR. Operator NOT se realizuje

35

Arhitektura mikrosistema

pomou invertora. Operator Transfer (ili Identitet) se esto zove drajver ili bafer, jer se koristi za pobudu veza velike duine ili veih optereenja. Po funkciji, drajver je identian rednoj vezi dva invertora. U tabeli sa Sl. 2.15 prikazani su grafiki simboli i Bulovi izrazi koji odgovaraju svakom od ovih osam standardnih gejtova. Uoimo da svaki gejt ima jedan ili dva binarna ulaza, oznaenih sa x i/ili y i jedan binarni izlaz, oznaen sa F. U tabeli sa Sl. 2.15 su, takoe, za svaki gejt navedene cena, izraena brojem tranzistora potrebnih za konstrukciju gejta u CMOS tehnologiji, i propagaciono kanjenje kroz gejt, normalizovano na kanjenje 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 naznaeno kruiima na izlaznim linijama ova dva gejta. Napomenimo da se NAND i NOR gejtovi mnogo ee 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. Takoe, NAND i NOR gejtovi su bri u odnosu na odgovarajue AND i OR gejtove. Prilikom realizacije prekidake funkcije pomou gejtova iz raspoloive biblioteke gejtova obino se trai takva forma funkcije koja e na najbolji nain zadovoljiti postavljene zahteve. U optem sluaju, ovi zahtevi se odnose na cenu, tj. ukupan broj ekvivalentnih tranzistora, i/ili kanjenje signala kroz logiku mreu, koje se obino izraava u nanosekundama. Veoma esto, primarni cilj projektovanja je konstrukcija najbreg reenja, tj. konstrukcija logike mree sa najmanjim ulazno-izlaznim kanjenjem. Sa druge strana, isto tako esto, primarni cilj projektovanja moe biti konstrukcija najevtinijeg reenja. Po svojoj prirodi ova dva zahteva su meusobno suprotstavljena, s obzirom da potraga za brim reenjem obino rezultuje kombinacionom mreom gde se, inae, identini podizrazi izraunavaju u paraleli, to zahteva vei broj gejtova u odnosu na jevtinije reenje gde preovladava redni nain izraunavanja.
Cena (broj tranzistora) 2

Ime Invertor

Grafiki simbol

Funkcija F = x

Kanjenje (ns) 1

Drajver

F=x

AND

F = xy

2.4

OR

F=x+y

2.4

NAND

F = (xy)'

1.4

NOR

F = (x + y)'

1.4

XOR

F = x y F = x y

14

4.2

NXOR

12

3.2

Sl. 2.15 Osnovna logika biblioteka.

36

Logiko projektovanje

PRIMER 2.10 (Projektovanje potpunog sabiraa) Projektovati potpuni sabira na osnovu tabele istinitosti sa Sl. 2.16. Na raspologanju su logika kola iz biblioteke gejtova definisane u tabeli sa Sl. 2.15. Primarni cilj projektovanja je minimizacija kanjenje od ulaza ci do izlaza ci+1, a sekundarni korienje to je mogue manjeg broj tranzistora. Reenje: Najpre, naimo izraz koji sadri najmanji broj operatora. Izraz za funkciju si moe se svesti na dva XOR gejta: si = xiyici+xiyici+xiyici+xiyici = (xiyi+xiyi)ci+(xi yi)ci = (xi yi)ci+(xi yi)ci = (xi yi) ci Izraz za funkciju ci+1 moe se pojednostaviti na sledei oblik: ci+1 = (xiyi)+ci(xi+yi) Meutim, transformacijom polaznog izraza za ci+1 u jedan drukiji oblik, biemo u mogunosti da iskoristimo podizraz (xi yi), koji je ve deo izraza za si:

Sl. 2.16 Tabela istinitosti potpunog sabiraa.

ci+1 = xiyici'+xiyici+xi'yici+xiyi'ci = xiyi(ci'+ci)+ci(xi'yi+xiyi') = xiyi+ci(xi yi) Nakon ovog izvoenja, u mogunosti smo da za realizaciju obe funkcije, si i ci+1, koristimo isti podizraz, (xi yi). Ova optimizacija nam omoguava da relizujemo potpuni sabira sa pet gejtova, kao to je prikazano na Sl. 2.17(a). Uoimo da reenje sa Sl. 2.17(a) zahteva ukupno 46 tranzistora i ima kanjenje od ulaza ci do izlaza ci+1 od 4.8ns. Reenje koristi AND, OR i XOR kola, koja su sporija od odgovarajuih NAND, NOR i NXOR gejtova. Ako izraze za funkcije si i ci+1 transformiemo na odgovarajui nain, moiemo da iskoristimo prednost brih i jevtinijih NAND i NOR gejtova. U tom cilju, korienjem DeMorganove teoreme, izraz za ci+1 modifikovaemo na sledei nain: ci+1 = xiyi+ci(xi+yi) = [(xiyi)(ci(xi+yi))] Slino, izraz za si treba transformisati na sledei nain: si = (xi yi)ci' + (xi yi)ci = (xi yi)'ci' + (xi yi)ci = (xi yi) ci Operacija xi yi moe se realizovati pomou dva NAND i jednog OR kola: xi yi = xiyi+xi'yi' = [(xiyi)'(xi'yi')']' = [(xiyi)'(xi+yi)]' Korienjem izvedenih izraza moemo realizovati bri potpuni sabira, prikazan na Sl. 2.17(b). Uoimo da propagaciono kanjenje potpunog sabiraa sa Sl. 2.17(b) iznosi 2.8ns u poreenju sa 4.8ns kod prethodnog reenja. Takoe, novo reenje koristi samo 36 tranzistora umesto ranijih 46.
xi yi

1.4

2.4

xi

yi

ci+1

1.4

1.4

ci 1.4

2.4

4.2 Cena = 46 tran. 2.4

ci+1

2.4

1.4

Cena = 36 tran. Putanja ulaz-izlaz Kanjen (ns) 2.8 3.8 5.2 7.2

2.4

ci 4.2

Putanja ulaz-izlaz ci -> ci+1 ci -> si xi,yi -> ci+1 xi,yi -> si

Kanjenje (ns) 4.8 4.2 9.0 8.4 1.4

si

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

si

(a)

(b)

Sl. 2.17 Projektovanje potpunog sabiraa: (a) reenje sa minimalnim brojem operatora; (b) reenje sa NAND i OR kolima.

37

Arhitektura mikrosistema

2.1.9

Vie-ulazna i vie-operatorska logika kola

Jedan od naina za smanjenje cene i kanjenja logikih mrea sastoji se u proirenju biblioteke gejtova logikim kolima sa vie od dva ulaza. Po pravilu, svaki gejt se moe proiriti tako da ima vie ulaza ako binarni operator koga gejt realizuje poseduje osobine komutativnosti i asocijativnosti. Ove dve osobine garantuju da promenljive mogu biti povezane na ulaze kola u bilo kom redosledu. Poto, shodno Bulovoj algebri, operatori AND i OR poseduju osobine komutativnosti i asocijativnosti, oni se mogu direktno proiriti na vie ulaza. Sa druge strane, operatori NAND i NOR su komutativni ali nisu asocijativni. Bez obzira na to, vie-ulazne NAND i NOR funkcije se mogu zamisliti kao komplementi odgovarajuih vie-ulaznih AND i OR funkcija. Znai, vie-ulazne NAND i NOR funkcije se definiu na sledei nain:

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


NAND(x, y, z,...) = (xyz ...)' Poto oba operatora XOR i NXOR poseduju osobine komutativnosti i asocijativnosti, oni se, takoe, mogu proiriti na vie od dva ulaza. Drugim reima, bilo koji gejt iz tabele sa Sl. 2.15, osim invertora i drajvera, moe se proiriti na vie ulaza. Meutim, XOR i NXOR gejtovi sa vie od dva ulaza retko se koriste, zato to veina logikih funkcija, koje se sreu u praksi, sa izuzetkom funkcije parnosti, moe biti realizovana korienjem dvo-ulaznih XOR i NXOR kola. ta vie, da bi se pojednostavila biblioteka gejtova, ak se i dvo-ulazni XOR i NXOR gejtovi obino realizuju pomou NAND, NOR i NOT gejtova. Dakle, proirena biblioteka gejtova bi dodatno ukljuivala NAND, NOR, AND i OR gejtove sa 3 ili 4 ulaza. Mogue je ralizovati gejtove sa veim brojem ulaza, ali takvi gejtovi se tee konstruiu, a poto se retko koriste, cena biblioteke i CAD alata sposobnih da koriste ovakve gejtove obino ponitava dobit koju bi smo imali njihovim korienjem. Grafiki simboli tro- i etvoro-ulaznih AND, OR, NAND i NOR gejtova prikazani su u tabeli sa Sl. 2.18, zajedno sa odgovarajuim cenama i kanjenjima.
Ime gejta Grafiki simbol Funkcija Cena (broj tranzistora) 8 Kanjenje (ns) 2.8

3-ulazni AND

F = xyz

4-ulazni AND

F = xyzw

10

3.2

3-ulazni OR

F = x+ y+z

2.8

4-ulazni OR

F = x+y+z+w

10

3.2

3-ulazni NAND

F = (xyz)'

1.8

4-ulazni NAND

F = (xyzw)'

10

2.2

3-ulazni NOR

F = (x+y+z)'

1.8

4-ulazni NOR

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

10

2.2

Sl. 2.18 Biblioteka vie-ulaznih standardnih gejtova.

38

Logiko projektovanje

Drugi nain za poveanje performansi i smanjenje cene realizacije prekidake funkcija, sastoji se u proirenju biblioteke gejtovima koji su u stanju da obavljaju vie od jedne Bulove operacije. Na primer, u mnogim sluajevima, prekidake funkcije se realizuju na osnovu standardnih formi tipa suma proizvoda ili proizvod suma. Imajui to u vidu, bilo bi korisno imati na raspolaganju standardne gejtove koji bi na efikasan nain realizovali ove forme. Kao to je navedeno u tabeli sa Sl. 2.19, ovakvi vie-operatorski gejtovi se zovi AND-OR-INVERT (AOI) i OR-AND-INVERT (OAI) gejtovi. Njihovim korienjem, u mogunosti smo da realizujemo standardne forme tip suma proizvoda i proizvod suma manjeg kanjenja i po nioj ceni nego to je to sluaj pri realizaciji ovih formi na bazi jedno-operatorskih gejtova. Na primer, trostruki tro-ulazni AOI gejt, koji se realizuje pomou 12 tranzistora i ima kanjenje od 2.2ns, moe da realizuje bilo koju sumu dva proizvoda sa po tri literala. Sa druge strane, realizacija istog tipa sume proizvoda pomou jedno-operatorskih gejtova (dva tro-ulazna AND i jedan 2-ulazni NOR gejt) zahtevala bi 20 tranzistora i pri tome bi unosi kanjenje od 4.2ns.
Ime gejta Grafiki simbol Funkcija Cena (broj tranzistora) Kanjenje (ns)

dvostruki 2ulazni AOI

F = (wx+yz)

2.0

trostruki 2ulazni AOI

F = (uv+wz+yz)'

12

2.4

dvostruki 3ulazni AOI

F = (uvw+xyz)

12

2.2

dvostruki 3ulazni OAI

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

2.0

trostruki 2ulazni OAI

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

12

2.2

dvostruki 3ulazni OAI

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

12

2.4

Sl. 2.19 Vie-operatorski standardni logiki gejtovi.

Gejtovi koji imaju vie ulaza i mogu da obavljaju vie operacija zovu se kompleksni gejtovi. Sledea dva primera ilustruju prednosti korienja kompleksnih gejtova.

39

Arhitektura mikrosistema

PRIMER 2.11 (Realizacija kombinacione mree pomou vie-ulaznih gejtova) Realizovati potpuni sabira iz primera 2.7 koristei, po potrebi, vie-ulazne gejtove. Reenje: Da bi smo iskoristili vie-ulazne gejtove, treba krenuti od standardne forme, a najbolje od one sa najamanjim brojem operatora, jer e nam to omoguiti da minimizujemo cenu. Takoe, da bi smo dobili najmanje mogue kanjenje, treba koristiti najbre gejtove. Najbri gejtovi u biblioteci su NAND i NOR gejtovi, a to znai da polaznu standardnu formu, primenom De-Morganove teoreme, treba transformisati u izraz koji sadri iskljuivo NAND i NOT operacije. U sluaju potpunog sabiraa, izraze za funkcije ci+1 i si treba transformisati na sledei nain: 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 sabiraa na bazi ovako modifikovanih izraza. Kao to se moe videti, maksimalno kanjenje od bilo kog ulaza do izlaza si iznosi samo 5.0ns, a do izlaza ci+1 samo 3.2ns. Naalost, ovo reenje zahteva 56 tranzistora, u odnosu na 36 kod realizacije sa dvo-ulaznim gejtovima.
xi yi zi 1.4 1.4 1.4 1.8 1.8 1.8 1.8 Cena = 56 tran. Putanja ulaz-izlaz 1.8 2.2 ci -> ci+1 ci -> si xi,yi -> ci+1 xi,yi -> si Kanjenje (ns) 3.2 5.0 4.2 5.0

ci+1

si

(a)

(b)

Sl. 2.20 Realizacija potpunog sabiraa pomou vie-ulaznih gejtova: (a) reenje sa vie-ulaznim gejtovima; (b) ulazno-izlazna kanjenja za reenje sa slike (a).

PRIMER 2.12 (Realizacija kombinacionih mrea pomou vie-operatorskih gejtova) Realizovati potpuni sabira koristei, po potrebi, vie-operatorskih gejtove iz tabele sa Sl. 2.19. Reenje: Kada se koriste vie-operatorski gejtovi, projektovanje treba poeti razlaganjem funkcije na podizraze tipa OAI i AOI. Poto 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. Meutim, poto u biblioteci gejtova takav gejt ne postoji, najbolja realizacija bie 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 pomou 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. Uoimo da kanjenje od ulaza ci do izlaza ci+1 iznosi 3.4ns, to je za samo 0.2ns due u odnosu na reenje sa vie-ulaznim gejtovima. Sa druge strane, kanjenje od ulaza ci do izlaza si iznosi samo 4.4ns, to je 0.4ns krae u odnosu na reenje sa vie-ulaznim gejtovima. Uz to, upotrebom vie-operatorskih gejtova cena je smanjena sa 56 na 46 tranzistora.

40

Logiko projektovanje

PRIMER 2.12 (nastavak )


xi yi ci

2.4

2.0

2.0

Cena = 46 tran. Putanja ulaz-izlaz Kanjenje (ns) 3.4 4.4 3.4 4.4

ci+1

1.4

si

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

(a)

(b)

Sl. 2.21 Realizacija potpunog sabiraa pomou vie-operatorskih gejtova: (a) reenje sa vieoperatorskim gejtovima; (b) ulazno-izlazna kanjenja za reenje sa slike (a). U primerima 2.10, 2.11 i 2.12 ukazano je na algebarske manipulacije nad logikim izrazima koje su neophodne kako bi se data logika funkcija realizovala uz pomo razliitih tipova gejtova. Kao to se moe zakljuiti, ne postoji jedan tip gejta koji uvek daje najbolje reenje. Obino, da bi se nalo najbolje reenje, neophodno je isprobati vie alternativa. 2.2 Minimizacija prekidakih funkcija

U prethodnim odeljcima izloeni su osnovni principi Bulove algebre i pokazano je kako se prekidake funkcije mogu realizovati pomou razliitih tipova logikih kola. Logika kola se razlikuju po ceni, veliini i kanjenju, to, samim tim, vai i za realizacije prekidakih funkcija pomou tih kola. S obzirom da cena, veliina i kanjenje logikih mrea znaajno zavisi od oblika logikog izraza i tipova korienih gejtova, od interesa je poznavanje tehnika za transformaciju logikih izraza koja e nam omoguiti da optimizujemo cenu i kanjenje kombinacionih mrea. Kao to je poznato, svaka prekidaka funkcija se moe predstaviti u obliku tri razliite algebarske forme: kanonika, standardna i nestandardna forma. Kanonika forma je jedinstvena i lako se izvodi na osnovu tabele istinitosti. Meutim, kanonika forma, tipino, sadri vei broj operatora u odnosu na druga dva naina predstavljanja prekidakih funkcija. Sa druge strane, standardna forma sadri manji broj operatora, ali nije jedinstvena. Slino, nestandardna forma, koja obino ima manji broj operatora u odnosu na standardnu, takoe, nije jedinstvena. S obzirom da ove forme nisu jedinstvene, neophodna je procedura koja e nam omoguiti da u skupu svih moguih standardnih ili nestandardnih formu koje predstavljaju datu funkciju naemo onu sa najmanjim brojem operatora. Za ovu namenu razvijen je vei broj algoritamskih postupaka. S obzirom da u optem sluaju, tj. za proizvolju biobloteku gejtova, direktna optimizacija predstavlja izuetno sloen zadatak, proces pojednostavljena logikog izraza se obino razlae na niz koraka kojim se postepeno, polazni izraz transformie u oblik pogodan za fiziku realizaciju. Tipino, u prvom koraku, na osnovu tabele istinitosti ili izraza kanonikog oblika, pronalazi se minimalna standardna forma (SOP ili POS). U narednom koraku, SOP, odnosno POS izraz se fatorizuje u nestandardnu formu sa najmanjim brojem operatora. Konano, nizom zamena, dobijeni izraz se prevodi u oblik pogodan za realizaciju pomou raspoloivih logikih kola. Svaki od ovih koraka sam za sebe predstavlja sloen zadatak, pa se obino, umesto izvoenja optimalnog reenja, za ta bi trebalo utroiti enormno (raunarsko) vreme pribegava sub-optimalnim reenjima. U nastavku izalaganja, ograniiemo se na prvi korak, tj. minimizaciju standardnih formi. Treba napomenuti da tenja ka smanenju cene realizacije, tipino vodi ka poveanju kanjenja kroz kombinaciou mreu. Standardne forme se realizuju u vidu dvonivolskih kombinacionih mrea, bilo da su SOP ili POS oblika, i zbog toga se odlikuju malim propagacionim kanjenjem. Na primer, kod SOP varijante, prvi nivo ine AND kola koja realizuju proizvode, a drugi nivo ini jedno OR kolo koje sabira generisane proizvode. Sa druge strane, nestandardne forme sadre ugnjedene zagrade, to preslikano na strukturu kombinacione mree znai vei broj nivoa logikih kola, a time i due propagaciono kanjenje signala od ulaza do izlaza.

41

Arhitektura mikrosistema

2.2.1

Karnaughova mapa

Zakon saimanja (teorema T6 iz odeljka 2.1.2) predstavlja kljunu osobinu prekidake algebre koja omoguava uproavanje logikih izraza. Primenom ove teorema, koja kae xy + xy = x, odnosno (x + y)(x + y) = x, u mogunosti smo da smanjimo broj proizvoda (ili sabiraka) u logikom izrazu i na taj nain snizimo cenu realizacije date logike funkcije. Metod Karnaughovih mapa upravo predstavlja jednu jednostavnu proceduru za sistematsku primenu zakona saimanja na logike izraze oblika suma-proizvoda (SOP), odnosno, proizvodsuma (POS), u cilju njihovog pojednostavljenja. Na Sl. 2.22 je ilustrovan odnos izmeu tabele istinitosti i Karnaughovu mapu za funkciju dve promenljive. Kao to tabela istinitosti ima etiri vrste, tako Kranoughova mapa ima etiri polja. Svakom polju mape, kao i svakoj vrsti tabele, odgovara jedan minterm. Kolone mape su oznaene vrednostima promenljive x1, a vrste vrednostima promenljive x2. Ovo oznaavanje direktno odreuje lokaciju minterma u mapi, kao to je prikazano na Sl. 2.22b. Raspored minterma u Karnaughovoj mapi je takav da na bilo koja dva susedna minterma, bilo da su u istoj vrsti ili istoj koloni, moe da se primeni zakon saimanja. Na primer, mintermi m2 i m3 mogu da se samu u proizvod x1: m2 + m3 = x1x2` + x1`x2 = x1(x2` + x2) = x11 = x1

(a) tabela istinitosti

(b) Karnaughova mapa

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

Karnaughova mapa za dve promenljive Na Sl. 2.23 su prikazane tabela istinitosti i Karnaughova mapa za jednu konkretnu funkciju dve promenljive. Uoimo da oba polja donje vrste Karnaughove mape sadre vrednost 1. S obzirom da su ova dva polja susedna, zakljuujemo da postoji proizvod koji ima vrednost 1 uvek kada i funkcija ima vrednost f=1, tj. kada su vrednosti promenljivih x1 i x2 takve da odgovaraju bilo kom od ova dva polja. Slino zapaanje vai i za dve 1ce u levoj koloni mape. Da se ukazalo na ova zapaanja, odgovarajua polja u mapi su uokvirena. Umesto da na minterme koji odgovaraju uokvirenim poljima formalno primenimo zakon saimanja kako bi smo izveli odgovarajue proizvode, do izraza za proizvode moemo doi intuitivno. Uoimo da za oba polja u donjoj vrsti vai x2=1, dok x1 ima vrednost 1 za levo, a 0 za desno polje. To znai da za x2=1 funkcija ima vrednost f=1, bez obzira da li je x1 jednako 1 ili 0. Proizvod koji reprezentuje ova dva polja je, prosto, x2. Slino, polja u levoj koloni su odreena uslovom x1=0. Zbog toga njima odgovara proizvod x1`. S obzirom da su sa ova dva proizvoda obuhvaeni svi sluajevi kada funkcija ima vrednost f=1, minimalni SOP izraza za funkciju f je oblika: f = x2 + x1`

(a) tabela istinitosti

(b) Karnaoughova mapa Sl. 2.23 Funkcija dve promenljive.

Oigledno, da bi smo za datu funkciju izveli minimalni SOP izraz, neophodno je nai najmanji broj proizvoda koji daju vrednost 1 za sve sluajeve kada je f=1. Uz to, cena samih proizvoda (broj literala) treba da bude to je mogue nia. Uoimo da je cena proizvoda koji pokriva dva susedna polja u Karnaughovoj mapi nia od cene proizvoda koji pokriva samo jedan polje. U konkretnom primeru, nakon to su dva polja u donjoj vrsti mape pokrivena proizvodom x2, preostalo je samo jedno nepokriveno polje (gore levo). Mada je ovo polje

42

Logiko projektovanje

moglo biti proizvodom x1`x2, bolje reenje 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 naznaenim pozicijama minterma. Moemo 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 tree promenljive, x3, odreuje jednu od dve vrste. Da bi se obezbedilo da bilo koja dva susedna polja u mapi mogu biti udruena u jedan proizvod, neophodno je da se susedna polja razlikuju samo po jednoj promenljivoj. To je razlog zato je redosled kolona: (x1, x2) = 00, 01, 11, 10, a ne, recimo, kako bi se moglo oekivati: 00, 01, 10, 11. (Usvojeni redosled oznaavanja obezbeuje da se druga i trea kolona razlikuju samo po promenljivoj x1.) Treba uoiti da se prva i etvrta kolona, takoe, razlikuju samo po jednoj promenljivoj, x1, te se stoga i ove dve kolone mogu smatrati susednim. Moemo zamisliti kao da je mapa savijena u cilindar tako da su leva i desna ivica mape spojene. (Napomenimo da se sekvenca binarnih kombinacija kod koje se svake dve susedne kombinacije razlikuju samo na jednoj bitskoj poziciji zove Grejov kod.)

(a) tabela istinitosti

(b) Karnaughova mapa

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

Na Sl. 2.25a je prikazana tabela istinitosti, a na Sl. 2.25b odgovarajua Karnaughova mapa za jednu konkretnu funkciju tri promenljive. Da bi smo nali minimalni SOP izraz za funkciju f, potrebno je na to efikasniji nain proizvodima pokriti sve etiri 1-ce u Karnaughovoj mapi. Nije teko uoiti da su u konkretnom primeru dovoljna dva proizvoda. Prvi proizvod, x1x3`, pokriva 1-ce u gornjoj, a drugi, x2`x3, u donjoj vrsti Karnaughove mape. Dakle, f = x1x3` + x2`x3

(a) tabela istinitosti

(b) Karnaughova mapa Sl. 2.25 Funkcija tri promenljive.

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

43

Arhitektura mikrosistema

Takoe, mogue je da se u Karnaughovoj mapi za tri promenljive nae i grupa od osam 1-ca, to odgovara trivijalnom sluaju kada je f=1 za bilo koju kombinaciju vrednosti ulaznih promenljivih, tj. kada je f jednaka konstanti 1.

Sl. 2.26 Primer Karnaughove mape za tri promenljive.

Na osnovu prethodnih primera moemo zakljuiti da Karaughova mapa, u sutini, predstavlja jednostavno sredstvo za identifikovanje proizvoda neophodnih za realizaciju date logike funkcije. Sutina metoda se sastoji u objedinjavanju 1-ca prisutnih u Karnaughovoj mapi u grupe tako da se svaka grupa moe predstaviti jednim proizvodom. U optem sluaju, za funkciju n promenljivih, vai da proizvod od n-k promenljivih pokriva grupu od 2k susednih polja u Karnaughovoj mapi. Svaka od n-k promenljivih proizvoda, ima istu vrednost na svim poljima grupe; ako je ta vrednost 0, promenljiva je komplementirana, ako je 0, promenljiva nije komplementirana. Preostale promenljive, koje su u pokrivenoj grupi polja nekada 1 a nekada 0, ne pojavljuju se u proizvodu. Grupa polja pokrivenih proizvodom uvek ima oblik pravougaonika ije su dimenzije stepeni broja 2, uzimajui u obzir da su krajnje kolone susedne. Karnaughova mapa za etiri promenljive Karnaughova mapa za etiri promenljive crta se u obliku kvadratne matrice sa ukupno 16 polja rasporeenih u etiri vrste i etiri kolone. Kao to se mapa za tri promenljive formira horizontalnim spajanje dve mape za dve promenljive, tako se mapa za etiri promenljive moe dobiti vertikalnim spajanjem dve mape za tri promenljive. Na Sl. 2.27 je prikazan izgled Karnaughove mape za etiri promenljive sa naznaenim pozicijama minterma. Vrednosti promenljivih x1 i x2 odreuju kolonu, a vrednosti promenljivih x3 i x4, vrstu. Kao to je prikazano na Sl. 2.27, za jednoznano oznaavanje vrsta/kolona dovoljno je naznaiti vrste i kolone za koje je data promenljiva jednaka 1. Tako, za dve krajnje leve kolone vai x1=1; za dve srednje kolone x2=1; za dve donje vrste x3=1 i za dve srednje vrste x4=1. Na Sl. 2.28 su data etiri primera funkcije etiri promenljive. Funkcija f1 poseduje grupu od etiri 1-ce u susednim poljima dve donje vrste za koja vai x2=0 i x3=1 i koja se stoga mogu predstaviti proizvodom x2`x3. Izvan ovog proizvoda ostaju jo dve 1-ce u drugoj vrsti. One se mogu pokriti proizvodom x1x3`x4, tako da minimalni SOP izraz za funkciju f1 ima oblik: f1 = x2`x3 + x1x3`x4 Funkcija f2 sadri grupu od osam 1-ca koje se mogu pokriti jednim proizvodom, x3. Ako preostale dve 1-ce tretiramo nezavisno od pokrivenih osam 1-ca, rezultujui proizvod e biti x1x3`x4. Naravno, bolje reenje je objediniti dve preostale 1-ce sa susednim parom ve pokrivenih 1-ca i tako dobiti jednostavniji proizvod, x1x4.

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

44

Logiko projektovanje

Sl. 2.28 Primeri Karnaugovih mapa za etiri promenljive

Svako polje u Karnaughovoj mapi za etiri promenljive se granii sa etiri druga polja koji se razlikuju po jednoj promenljivoj, ukljuujui pri tome i polja po obodu mape. Naime, kod Karnaughove mape za etiri promenljive, polja iz prve vrste i polja iz odgovarajuih kolona etvrte vrste su susedna, kao i polja iz istih vrsta krajnje leve i krajnje desne kolone. Slino kao to mapu za tri promenljive zamiljamo kao cilindar, tako mapu za etiri promenljive moemo zamisliti kao torus. Tako, postaje jasno da polja u uglovima mape za etiri promenljive ine grupu od etiri susedna polja, koja, ako su popunjena 1-cama, mogu biti pokrivena jednim produktnim lanom, x2`x4`. Ovo je upravo sluaj kod funkcije f3. Osim etiri 1-ce u uglovima mape, funkcija f3 poseduje jo etiri 1-ce koje se mogu pokriti na nain kao na Sl. 2.28. U svim do sada razmatranim primerima uvek je postojalo jedinstveno reenje za optimalno pokrivanje 1-ca u Karnaughovoj mapi. Da to ne mora biti uvek sluaj, pokazuje primer funkcije f4. Raspored 1-ca u Karnaughovoj mapi za funkciju f4 je takav da omoguava kreiranje dva razliita pokrivanja koja rezultuju u SOP izrazima iste sloenosti. Grupe od etiri 1-ce u gornjem-desnom i donjem-levom uglu mape realizuju se proizvodima x1`x3` i x1x3, respektivno. Na taj nain, ostaju jo dve nepokrivene 1-ce kojima odgovara proizvod x1x2x3`. Meutim, ove dve 1-ce mogu biti ekonominije realizovane ako se tretiraju kao deo grupe od etiri 1-ca. Kao to je prikazano na Sl. 2.28, ove dve 1-ce mogu biti udruene u dve razliite grupe od etiri 1-ca. Prva mogunost daje proizvod x1x2, a druga x2x3`. Oba ova proizvoda imaju istu sloenost, pa iz tog razloga moemo proizvoljno izabrati jedan od njih koji e biti realizovan u konanom kolu. Karnaughova mapa za pet promenljivih Karnaughove mape za pet i vie promenljivih nisu tako pogodne za korienje kao mape za etiri i manje promenljivih. To je zato to je za vei broj promenljivih tee vizuelno prikazati osobinu susedstva. Na primer, kod Karnaughove mape za etiri promenljive, svako polje je sused sa etiri druga polja, sa kojima deli zajedniku ivicu. Da bi se na vizuelni nain predstavila osobina susedstva kod mape za pet promenljivih potrebno je koristiti dve mape za etiri promenljive koje se crtaju jedna do druge, kao to je prikazano na Sl. 2.29. Za prvu mapu vai x5=0, a za drugu x5=1. Kod ove reprezentacije, zamiljamo da je druga mapa postavljena iznad prve tako da zajedno kreiraju tro-dimenzionalni objekat. Sa ovakvom predstavom na umu, svako polje ima etiri suseda u svojoj mapi i jo jednog, petog koji se nalazi u istoj vrsti i koloni druge mape. Za logiku funkciju pet promenljivih predstavljenu parom Karnaughovih mapa sa Sl. 2.29 vai da se dve grupe od po etiri promenljive javljaju na istim pozicijama u dve mape za etiri promenljive. To znai da realizacija ovih, ukupno osam, 1-ca ne zavisi od x5. Isto vai i za dve grupe od po dve 1-ce u drugoj vrsti. Jedinica u gornjem desnom uglu pojavljuje se samo u desnoj mapi, gde vai x5=1. Ova 1-ca je deo grupe od dve 1-ce koja se

45

Arhitektura mikrosistema

realizuje proizvodom x1x2`x3`x5. Uoimo da se u mapi sa Sl. 2.29 polja za koja vai f=0 ostala prazna. To je uinjeno da bi mapa bila preglednija.

Sl. 2.29 Karnaughova mapa za pet promenljivih.

Proirenje koncepta Karnaughove mape na vei broj promenljivih nema praktini znaaj. ta vie, danas, projektanti digitalnih sistema, retko koriste manuelne metode za sintezu logikih funkcije, osim prilikom projektovanja jednostavnih struktura. U praksi, projektanti se oslanjaju na CAD alate koji automatski obavljaju sve neophodne optimizacije. Bez obzira na to, Karnaughove mape mogu posluiti za ilustraciju glavnih ideja na kojima su zasnivani postupci za minimizaciju logikih funkcija. 2.2.2 Minimizacija prekidakih funkcija pomou Karnaughovih mapa

U prethodnom odeljku pokazano je kao se prekidaka funkcija moe prestaviti Karnaughovom mapom i kako se grupisanjem 1-ca u Karnaughovoj mapi moe doi do optimalnog SOP izraza za datu funkciju. Na cilj je bio da sve 1-ce u Karnaughovoj mapi razvrstamo u to je mogue manji broj to veih grupa, sa ogranienjem da svaka grupa obuhvata polja koja se mogu predstaviti samo jednim proizvodom. to je grupa 1-ca vea, to odgovarajui prizvod sadri manji broj promenljivih. Ovaj, u sutini, intuitivni pristup, pokazao se efikasnim u svim razmatranim primerima. Meutim, injenica je da smo razmatrali samo primere logikih funkcija malog broja promenljivih. Za sloenije funkcija, sa veim brojem promenljivih, intuitivni pristup je neprimenljiv. Umesto toga, neophodno je raspolagati organizovanim i jasno definisanim metodom za izvoenje optimalnih SOP izraza. U ovom odeljku bie opisan jedan takav metod, slian tehnikama koje se koriste u CAD alatima. Za ilustraciju glavnih ideja, i dalje e biti koriene Karnaughove mape. Kasnije u ovom poglavlju bie opisan jedan drugaiji nain reprezentacije logikih funkcija, koji se koristi u CAD alatima. 2.2.2.1 Terminologija

U ovom odeljku bie definisano znaenje pojmova koji e biti korieni za opis procesa minimizacije logikih funkcija. Implikant Proizvod P je implikant za logiku funkciju f ako za sve ulazne vektore definisane proizvodom P, funkcija ima vrednost f=1. Drugim reima, P je implikant za f, ako za P=1 sledi (tj. implicira) f=1. Za funkciju n promenljivih, implikanti mogu sadrati n ili manje literala. Minterm je implikant od tano n literala. Razmotrimo funkciju tri promenljive sa Sl. 2.30. Ova funkcija sadri 11 implikanata: pet minterma: x1`x2`x3`, x1`x2`x3, x1`x2x3`, x1`x2x3 i x1x2x3; pet implikanata koji odgovaraju svim moguim 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 takoe u Q. Na primer, neka je c1 = x1`x3` i c2 = x1`x2x3`. Kako se svi literali (x1` i x3`) u proizvodu c1 javljaju takoe 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 reima, iz prostog implikanta nije mogue odstraniti ni jedan

46

Logiko projektovanje

literal, a da dobijeni proizvod i dalje bude implikant za datu funkciju. Takoe, prosti implikant se ne moe objediniti ni sa jednim drugim implikantom. Za funkciju sa Sl. 2.30 postoje dva prosta implikanta: x1` i x2x3. Nije mogue 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. Meutim, x2 i x3 nisu implikanti za funkciju f; x2 zato to sadri vektor (x1, x2, x3) = 110 za koga je f=0, a x3 zato to sadri vektor (x1, x2, x3) = 101 za koga je takoe f=0.

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

Pokrivanje Skup implikanata koji sadre sve ulazne vektore za koje funkcija ima vrednost 1 predstavlja pokrivanje date funkcije. Za veinu logikih funkcija postoji veliki broj razliitih pokrivanja. Oigledno, skup svih minterma za koje f=1 predstavlja jedno mogue pokrivanje. Skup svih prostih implikanata takoe predstavlja pokrivanje. Svakom konkretnom pokrivanju odgovara jedan SOP izraz koji definie jednu moguu realizaciju date logike funkcije. Na Sl. 2.31 su prikazana tri razliita pokrivanja za funkciju f sa Sl. 2.29. Prvo pokrivanje odgovara skupu minterma, a poslednje skupu prostih implikanata. Iako svako od ovih pokrivanja predstavlja korektan SOP izraz za funkciju f, pokrivanje koga ine prosti implikanti daje minimalni SOP izraz.

Sl. 2.31 Pokrivanja funkcije tri promenljive.

Cena logike mree U poglavlju 2 reeno je da se kao dobar pokazatelj cene logike mree moe koristiti zbir broja logikih kola i ukupnog broja ulaza u sva logika kola u mrei. Ova definicija cene bie koriena nadalje u knjizi. Meutim, prilikom odreivanja cene logike mree pretpostaviemo da su primarni ulazi, tj. ulazne promenljive, dostupne kako u pravoj tako i u komplementarnoj formi, odnosno da je cena komplementiranja ulazne promenljive jednaka nuli. Tako, cena izraza: f = x2`x3 + x1x3` iznosi devet, s obzirom da se dati izraz moe realizovati pomou tri logika kola (dva AND i jednog OR) sa ukupno est ulaza u AND i OR kola, tj. cena = 3 l.k. + 6 u.l. = 9. Meutim, ako je komplementiranje neophodno unutar mree, tada odgovarajue NOT kolo i njegov ulaz ulaze u cenu. Na primer, izraz: g = (x2`x3 + x1)`(x3` + x5)

47

Arhitektura mikrosistema

se realizuje pomou dva AND, dva OR i jednog NOT kola, koje komplementira (x2`x3 + x1), sa ukupno devet ulaza. To znai da cena ovog izraza iznosi 14. Minimalni SOP Minimalni SOP izraz je izraz najnie cene od svih moguih SOP izraz za datu logiku funkciju. 2.2.2.2 Procedura za minimizaciju

Kao to je vie puta do sada naglaeno, jedna logika funkcija se moe realizovati pomou vie mrea, koje se mogu znaajno razlikovati po strukturi i ceni. Kada realizuje logiku funkciju, projektant uvek tei da zadovolji neke unapred postavljene zahteve. Jedan takav zahtev je po pravilu cena logike mree. Iako mogu postojati i drukije postavljeni optimizacioni kriterijumi, u ovom odeljku pretpostaviemo da je primarni cilj projektanta da nae minimalni SOP izraz date logike funkcije. Od posebno znaaja za minimizaciju SOP izraza su prosti implikanti. Kljuno tvrenje je sledee: Minimalni SOP izraz je suma prostih implikanata. Drugim reima, kada se odreuje minimalni SOP izraz, dovoljno je uzeti u obzir samo proste implikante. Ovo tvrenje se lako dokazuje kontradikcijom. Pretpostavimo da minimalni SOP izraz funkcije f sadri proizvod p koji nije prost. Shodno definiciji prostog implikanta, sledi da u p postoji literal koji se moe odstraniti, a da tako dobijeni novi proizvod, p*, i dalje predstavlja implikant za f. Ako u polaznom SOP izrazu, proizvod p zamenimo novim proizvodom p* dobiemo SOP izraz koji je i dalje jednak f, i pri tome ima jedan literal manje, tj. ima niu cenu, to predstavlja kontradikciju polaznoj pretpostavci. Meutim, iako minimalni SOP izraz sadri iskljuivo proste implikante, to ne znai da svi prosti implikanti moraju biti prisutni u minimalnom SOP izrazu. Na primer, funkcija f4 sa Sl. 2.28 ima etiri prosta implikanta, ali su za formiranje minimalnog SOP izraza dovoljna samo tri. Upravo je zadatak logike minimizacije da iz skupa prostih implikanata date funkcije f izdvoji podskup prostih implikanata koji na optimalan nain pokrivaju f. Da bi smo doli do sistematske procedure za logiku minimizaciju, neophodno je najpre definisati pojmove bitnog minterma i bitnog prostog implikanta. Neka je m minterm za logiku funkciju f. Ako samo jedan prosti implikant za f pokriva m, tada je m bitni (ili esencijalni) minterm. Bitni (ili esencijalni) prosti implikant za logiku funkciju f je prosti implikant za f koji pokriva jedan ili vie bitnih minterma. Na primer, svi mintermi za funkciju tri promenljive sa Sl. 2.30 su bitni, osim minterma m3 = x1`x2x3, koga pokrivaju oba prosta implikanta, x1` i x2x3. Funkcija sa Sl. 2.32 ima tri bitna minterma, m2, m4 i m14, naznaena podebljanim jedinicama u Karnaughovoj mapi sa Sl. 2.32b. Bitni mintermi odreuju bitne proste implikante. Tako, oba prosta implikanta funkcije sa Sl. 2.30 su bitna: x1` pokriva tri bitna minterma, m0, m2 i m3, dok x2x3 pokriva jedan bitni minterm, m7. Funkcija sa Sl. 2.32 ima tri bitna prosta implikanta (uokvireni podebljanim linijama na Sl. 2.32b): x1`x2` (zbog m2), x1`x3` (zbog m4) i x1x2x3 (zbog m14). Poto je bitni prosti implikant jedini prosti implikant koji pokriva neku 1-cu u Karnaughovoj mapi, on mora biti sadran u bilo kom minimalnom SOP izrazu. Na primer, ako bi smo iz pokrivanja za funkciju sa Sl. 2.32 izostavili bitni prosti implikant x1`x2`, tada u skupu preostalih prostih implikanata ne bi smo mogli da naemo neki drugi implikant koji bi pokrio minterm m2. Skup bitnih prostih implikanata moe, ali ne mora da pokrije sve minterme za koje vai f=1. Na primer, tri bitna prosta implikanta za funkciju sa Sl. 2.32 pokrivaju sve minterme za f, osim m7. Ako iz Karnaughove mape odstranimo bitne proste implikante i 1-ce pokrivene bitnim prostim implikantima, dobiemo redukovanu mapu koja sadri jednu 1-cu (odgovara mintermu m7) i dva prosta implikanta, x1`x4 i x2x3x4, koji je pokrivaju (Sl. 2.32c). Da bi smo dovrili pokrivanje funkcije f dovoljno je izabrati jedan od ova dva prosta implikanta. Izbor je, zbog nie cene, naravno, x1`x4. Tako dolazimo do konanog oblika minimalnog SOP izraza za funkciju f: f = x1`x2` + x1`x3` + x1x2x3 + x1`x4 Dakle, dolazimo do zakljuka da minimalni SOP izraz sadri sve bitne proste implikante i podskup preostalih, ne-bitnih, prostih implikanata koji su neophodni da bi pokrili minterme za datu funkciju koji nisu pokriveni bitnim prostim implikantima.

48

Logiko projektovanje

(a) Karnaughova mapa

(b) prosti implikanti i bitni mintermi

(c) redukovana mapa, nakon uklanjanja bitnih prostih implikanata i pokrivenih 1ca

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

Na osnovu prethodnog razmatranja, u mogunosti smo da proceduru logike minimizacije razloimo na tri koraka: 1. 2. 3. Generisati sve proste implikante za datu funkciju f. Nai skup bitnih prostih implikanata. Ako skup bitnih prostih implikanata pokriva sve minterme za koje f=1, tada ovaj skup predstavlja traeno minimalno pokrivanje funkcije f. Inae, odrediti podskup ne-bitnih prostih implikanata koje treba pridodati pokrivanju kako bi se kompletiralo minimalno pokrivanje.

Prva dva koraka procedure su precizno definisana. Meutim, izbor ne-bitnih prostih implikanata, u treem koraku, nije uvek oigledan 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, sloenijim primerima, potrebno je u mnotvu razliito komponovanih podskupova ne-bitnih prostih implikanata, od kojih svaki takav podskup dopunjuje skup bitnih prostih implikanata do potpunog pokrivanja, nai 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. Oigledno postoji vie naina kako pokrivanje moe da se dovriti. Ako odluimo da u konano 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, moemo izabrati bilo koji od njih, recimo x1x2x4 i x1x3x4. Tako dolazimo do prve mogue realizacije funkcije f: f = x3`x4` + x1x2x3` + x1x2x4 + x1x3x4 Druga mogunost je da x1x2x3` ne bude ukljuen u konano pokrivanje. Tada implikant x1x2x4 postaje bitan, s obzirom da nema drugog naina kako se moe pokriti minterm m13. Poto x1x2x4 pokriva i minterm m15, za pokrivanje ostaju jo samo dve 1-ce (mintermi m10 i m11), to se moe postii implikantom x1x2`x3. Tako dolazimo do alternativne realizacije: f = x3`x4` + x1x2x4 + x1x2`x3 Jasno, druga realizacija ima niu cenu. Strategija koriena u ovom primeru predstavlja osnovu za sistematsko generisanje svih moguih alternativnih pokrivanja date funkcije. Na poetku, proizvoljno biramo ne-bitan prost implikant; ukljuimo ga u pokrivanje, a zatim pokrivanje dovrimo korienjem preostalih implikanata. Tako dolazimo do prvog reenja. Drugo reenje dobijamo tako to iz razmatranja iskljuujemo nebitni implikant, koji je prethodno bio izabran kao prvi i biramo neki drugi ne-bitni implikant sa kojim zapoinjemo pokrivanje preostalih minterma. Ovu proceduru ponavljamo sve dok ne iscrpem sve mogunosti.

49

Arhitektura mikrosistema

(a) Karnaughova mapa

(b) redukovana mapa, nakon uklanjanja bitnog prostog implikanata

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

Moe se desiti da funkcija nema bitnih prostih implikanata. Primer takve funkcije dat je na Sl. 2.34. U ovakvoj situaciji proizvoljno biramo jedan prosti implikant koga inicijalno ukljuujem u pokrivanje. Na primer, ako krenemo od x1`x3`x4` a zatim nastavimo dalje sa horizontalnim implikantima, dolazimo do reenja: f = x1`x3`x4` + x2x3`x4 + x1x3x4 + x2`x3x4` Da smo krenuli od implikanta i pokrivanje zavrili uz pomo vertikalnih implikanata, dobili bi smo reenje: f = x1`x2`x4` + x1`x2`x3 + x1x2x4 + x1x2`x3` Uoimo da dva reenja imaju istu cenu, i da pri tome sadre razliite implikante.

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

Kao to se moe naslutiti iz prethodnih primera, logika minimizacija u izvesnim sluajevima moe postati sloen i dugotrajan proces, naroito ako funkcija koja se minimizira ima veliki broj promenljivih. Kako bi se procedura uinila to efikasnijom, automatski programi za logiku minimizaciju koriste dodatne optimizacije i tehnike, koje ovde nisu razmatrane. Neke od takvih tehnika bie razmatrane u odeljku. Ipak, treba napomenuti da se projektanti, u praksi, najee sreu sa dva tipa minimizacionih problema: to su ili funkcije sa malim brojem promenljivih koje se lako miniminiziraju primenom metoda Karnaughovih mapa ili sloene funkcije sa veim brojem promenljivih ija se minimizacija moe obaviti jedino pomou specijalizovanih CAD programa. 2.2.2.3 Minimizacija POS izraza

Korienjem principa dualnosti, metod Karnaughovih mapa za SOP izraze, izloen u prethodnom odeljku, lako se moe modifikovati u metod za minimizaciju POS izraza. Kao to smo objedinjavanjem minterma za koje f=1 nalazili proizvode SOP izraza, tako sada treba objedinjavati maksterme za koje f=0 u sabirke POS izraza. Smatra se da je sabirak vei ako pokriva vei broj maksterma. to je sabirak vei to je cena njegove realizacije nia. Na Sl. 2.35 je prikazana ista funkcija kao na Sl. 2.30. Funkcija sadri tri maksterma koje treba pokriti: M4, M5 i M6. Kao to je prikazano na Sl. 2.35, za pokrivanje ovih makstema potrebna su dva sabirka, to nas dovodi do sledeeg POS izraza: f = (x1` + x2)(x1` + x3)

50

Logiko projektovanje

Gornjem izrazu odgovara mrea sa dva dvo-ulazna OR i jednim dvo-ulaznim AND kolom. Uoimo da je cena ove mree via od cene ekvivalentne mree koja realizuje SOP izraz izveden na osnovu Sl. 2.30, a koja sadri 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, tree OR kolo je etvoro-ulazno, dok AND kolo ima tri ulaza. Pretpostavljajui da su na ulazu mree dostupne prave i komplementirane verzije ulaznih promenljivih, cena mree iznosi 15. Uoimo da je cena ove mree nia je od cene odgovarajue SOP realizacije (Sl. 2.28) koja zahteva pet logikih 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 optem sluaju, minimalne SOP i POS realizacije date logike funkcije mogu, ali ne moraju, da imaju istu cenu. Ako je cilj projekta da se data funkcija realizuje u vidu dvonivovske mree, pri emu postoji sloboda izbora izmeu SOP i POS varijante, tada se do optimalnog reenja dolazi tako to se izvedu oba minimalna izraza, SOP i POS, i za realizaciju izabere izraz nie cene. Minimalni POS izraz se moe takoe 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, korienjem De Morganove teoreme, dobijamo: f = ((f)`)`= (x1x2` + x1x3`)` = (x1x2`)`( x1x3`)` = (x1` + x2)(x1` + x3) to je isti izraz koga smo prethodno dobili pomou Karnaughove mape. 2.2.2.4 Minimizacija nepotpuno definisanih funkcija

U prethodnim odeljcima razmatrana je minimizacija potpuno definisanih logikih funkcija, tj. funkcija koje za svaku kombinaciju vrednosti ulaznih promenljivih imaju tano definisanu izlaznu vrednost, 0 ili 1. Potpuno definisana logika funkcija moe se jednoznano predstaviti skupom minterma za koje f=1 ili skupom maksterma za koje f=0. Meutim, u mnogim konkretnim primenama, logika funkcija ne mora biti definisana za sve kombinacije vrednosti promenljivih, zato to se neke kombinacije nikada nee javiti na ulazu odgovarajue mree u toku njene normalne eksplatacije. Na primer, BCD kod koristi 10 od 16 moguih kombinacija za

51

Arhitektura mikrosistema

kodiranje decimalnih cifara od 0 do 9. Drugim reima, est kombinacija, koje odgovaraju brojevima 10, 11, 12, 13, 14 i 15, se nikada ne koriste. Iz tog razloga, bilo koja logika 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 logike funkcije. Poto se nedefinisane vrednosti nikada ne javljaju na ulazu, odgovarajuim nedefinisanim mitermima se moe, u toku optimizacije, dodeliti bilo koja od vrednosti 0 ili 1 i to tako da cena rezultujue logike mree bude to nia. U Karnaughovoj mapi, nedefinisani mintermi se oznaavaju upisivanjem znaka X u odgovarajua polja, to ukazuje da konkretne vrednosti funkcije za takve minterme nisu od znaaja. 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 moe imati vrednost 1 ili 0, tj. za koje f=X. Funkcija f se moe predstaviti u skraenoj notaciji na sledei nain: f(x1, , x4) = m(2, 4, 5, 6, 10) + D(12, 13, 14, 15) gde je D skup nedefinisanih minterma.

(a) SOP realizacija

(b) POS realizacija

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

Na Sl. 2.37a prikazano je minimalno pokrivanje za SOP realizaciju. Da bi se oformile najvee mogue grupe susednih 1-ca i na taj nain generisali prosti implikanti najnie cene, neophodno je pretpostaviti da nedefinisani mintermi D12, D13 i D14 (odgovaraju mintermima m12, m13 i m14) imaju vrednost 1, dok D7 i D14 imaju vrednost 0. Na taj nain dolazimo do minimalnog SOP izraza: f = x2x3` + x3x4` Minimizacija nepotpuno definisane logike funkcije se razlikuje od minimizacije potpuno definisane funkcije samo u delu generisanja prostih implikanata. Konkretno, osim minterma za koje f=1, prosti implikant moe pokriti i proizvoljan broj nedefinisanih minterma, ako to vodi njegovom poveanju. Ovim postupkom nepotpuno definisana funkcija postaje potpuno definisana, tako to joj je dodeljena vrednost 1 za sve nedefinisane minterme koji su pokriveni barem jednim prostim implikantom, odnosno vrednost 0 za nedefinisane minterme koji su ostali nepokriveni. Na Sl. 2.37b je prikazano minimalno pokrivanje razmatrane funkcije za POS realizaciju. Sada je usvojeno da D15 ima vrednost 0, a da D12, D13 i D14 imaju vrednost 1. Odgovarajui minimalni POS izraz ima oblik: f = (x2 + x3)(x3` + x4`) Sloboda u izboru vrednosti nedefinisanih minterma ima za posledicu znaajno pojednostavljenje realizacije date funkcije. Ako bi smo nedefinisane minterme iskljuili iz minimizacije, pretpostavljajui da oni uvek imaju vrednost 0, rezultujui SOP i POS izraz za funkciju sa Sl. 2.37 bi bili: f = x1`x2x3` + x1`x3x4` + x2`x3x4` f = (x2 + x3)(x3` + x4`)(x1` + x2`) Oigledno, oba izraza imaju viu cenu realizacije u odnosu na izraze koji su dobijeni pod pretpostavkom da nedefinisanim minterma mogu biti dodeljene proizvoljne vrednosti. Ako funkcija ima k nedefinisanih minterma, tada postoji 2k moguih dodela konkretnih vrednosti, 0 ili 1, nedefinisanim mintermima. Realizacije koje slede na osnovu svake konkretne dodele mogu se znaajno razlikovati po sloenosti. Korienjem Karnaughove mape u mogunosti smo da relativno lako uoimo onu dodelu koja daje optimalnu realizaciju.

52

Logiko projektovanje

2.3

VLSI tehnologije

Digitalni sistemi se realizuju pomou integrisanih kola, ili IC, koja su izraena na malom silicijumskom krastalu, ili ipu. Na povrini ipa nalazi se veliki broj tranzistora formiranih odgovarajuim tehnolokim postupkom koji menja hemijski sastav povrine ipa. Tranzistori su meusobno povezani tako da kreiraju razliite tipove logikih kola, koja se dalje mogu koristiti da bi se formirale vee komponente, kao to su memorije i procesori. Svaki silicijumski ip je ugraen u keramiko ili plastino kuite i povezan sa pinovima na kuitu, to daje integrisano kolo. Broj pinova na ipu se kree od 14, kod malih IC, do nekoliko stotina kod veih pakovanja. Bez obzira na broj pinova, IC su komponente malih dimenzija, do te mere da se celokupan mikropocesora moe smestiti unutar 40-pinskog pakovanja dimenzija 5.0x1.5x0.5cm. Nakon to je proizvedeno, a u cilju identifikacije, svakom integrisanom kolu se dodeljuje numerika oznaka koja se tampa na povrini kuita. Uz to, proizvoai integrisanih kola publikuju prateu dokumentaciju koja sadri sve bitne informacije o elektinim i mehanikim osobinama integrisanog kola, to ukljuuje funkcionalni opis, dijagrame toka i vremenske dijagrame ulaznih i izlaznih signala. esto, integrisana kola se klasifikuju shodno broju tranzistora ili gejtova sadranih u jednom kuitu. Prema ovoj podeli, razlikuju se integrisana kola niskog-, srednjeg-, visokog- i veoma-visokog-nivoa integracije. Integrisana kola niskog nivoa integracije (SSI Small Scale Integration) sadre do 10 nezavisnih gejtova. Poto su ulazi i izlazi ovih gejtova direktno povezani sa pinovima na kuitu, broj gejtova je ogranien brojem raspoloivih pinova. Tipian primer IC niskog nivoa integracije su bazina kola iz TTL familije 7400. Na primer, kolo SN7400 sadri 4 NAND gejta, a kolo SN7404 6 invertora. Integrisana kola srednjeg nivoa integracije (MSI - Medium-Scale Integration) su sloenosti od 10 do 100 gejtova. Ovakve komponente obino realizuju standardne digitalne memorijske i aritmetike komponente za logike operacije nad malim brojem bitova, kao to su registri, brojai i sabirai. Primer integrisanog kola srednjeg nivoa integracije je TTL kolo SN74180 9-bitni generator bita parnosti. Integirsana kola visokog nivoa integracije (LSI - Large-Scale Integration) sadre izmeu 100 i nekoliko stotina gejtova. Ova kategorija integrisanih kola ukljuuje digitalne komponente kao to su kontroleri, memorijski ipovi manjeg kapaciteta i programabilne logike komponente. Konano, integrisana kola veoma visokog nivoa integracije (VLSI Very-large-scale Integration) sadre vie stotina hiljada gejtova i vie. Primeri ovih kola su memorije velikog kapaciteta, mikroprocesori, mikroraunari na ipu i razliiti hardverski akceleratori. Mala veliina i niska cena VLSI ipova proizvela je revoluciju u oblasti digitalnog projektovanja. Sa VLSI tehnologijom na raspolaganju, projektati su dobili priliku da kreiraju jeftina, aplikaciono-specifina kola (ASIC) visokih performansi, optimizovna za efikasno obavljanje pojedinih zadataka. Danas, VLSI komponente predstavljaju jedine komponente koje su u upotrebi. Integrisana kola tipa SSI, MSI i LSI bila su aktuelna 70 i 80 godina, dok se danas najee koriste samo kao rezervni delovi za starije ureaje. Razvojem VLSI tehnologije dolo je do jedne znaajne promene u nainu procene cene dizajna. Na primer, cena proizvoda projektovanih na bazi SSI, MSI ili LSI komponenti odreivana je na osnovu ukupnog broja integrisanh kola na tampanoj ploi. Sa druge strane, cena VLSI ipa meri se povrinom ipa. Poto je ova povrina srazmerna broju tranzistora ili gejtova, kod logikog dizajna, odnosno memorijskom kapacitetu, kod memorijskog dizajan, glavni cilj projektovanja je minimizacija broja potrebnih gejtova i memorije. VLSI ipovi koji se koriste u veini savremenih dizajna mogu se svrstati u tri kategorije: kola potpuno po narudbini (custom), kola po narudbini (semi-custom) i programabilna kola. Custom VLSI kola se projektuju u potpunosti, do nivoa pojedinanih tranzistora i veza, za tano definisanu primenu. Svaki tranzistor i veza predstavljaju se u vidu poligona koji se koriste za generisanje foto-litografskih maski, koje su neophodne za proces fabrikcije ipa. Poto je proces manuelnog projektovanje na ovako niskom nivou veoma naporan, dugotrajan i podloan grekama, razvijena je metodologija projektovanja na bazi standardnih elija. Standardne elije su unapred projektovani moduli koje se u vidu gradivnih blokova koriste za konstrukciju sloenijih struktura na ipu. Po pravilu, svaka standardna elija sadri jedan gejt, tipa NOT, AND, OR, NAND i sliana. Sve standardne elije imaju istu visinu, a razlikuju se po irini. Ulazi i izlazi elije uvek su postavljeni du gornje i donje ivice elije. Standardne elije se pakuju u horizontalne redove, jedna do druge, a povezuju vezama koje se smetaju u kanale izmeu redova. Horizontalne i vertikalne veze se izvode na dva razliita nivoa koji su postavljeni iznad standardnih elija, kao to je prikazano na Sl. 2.38.

53

Arhitektura mikrosistema

Sl. 2.38 Organizacija standardnih elija.

U toku projektovanja, standardne elije su rasploive u vidu biblioteke standardnih elija, a proces projektovanja sastoji se od sledeih aktivnosti: unos dizajna, simulacija, rasporeivanje i povezivanje. U toku prve aktivnosti, uz pomo grafikog editora logika ema dizajna se unosi u raunar. Nakon toga, korienjem simulatora, projektant verifikuje funkcionalu ispravnost unete logike eme i procenjuje propagaciona kanjenja od ulaza do izlaza. Nakon to je simulacijom potvrena ispravnost logike eme, standardne elije se rasporeuju po povrini silicijuma. Za tu namenu projektant koristi CAD alat za rasporeivanje, koji za svaku eliju definie red i poziciju u redu gde e elija biti postavljena. Cilj je nai takav raspored koji e minimizovati povrinu koja je neophodna za povezivanje eilija, a koja se ocenjuje na osnovu potrebnog broja staza za povezivanje u svakom kanalu. Konano, nakon to je proces rasporeivanja zavren, projektant povezuje elije, korienjem CAD alat za povezivanje. Cilj je ostvariti sva potrebna povezivanja vezama minimalne duine. Na Sl. 2.39 je prikazana realizacija potpunog sabiraa na bazi standardnih elija. Uoimo da raspored elija, kako je dat na ovoj slici, zahteva etiri horizontalne staze za povezivanje u gornjem i pet u donjem kanalu.

Sl. 2.39 Realizacija potpunog sabiraa pomou standardnih elija.

Za razliku od custom pristupa, semi-custom pristup se zasniva na korienju polu-fabrikovanih integrisanih kola, poznatih pod imenom gejtovska polja ili gejtovske matrice. Gejtovsko polje ini veliki broj identinih gejtova, rasporeenih na mikroipu u vidu regularne dvodimenzionalne matrice. Gejtovi su obino 3- ili 4ulazna NAND ili NOR kola, a na jednom ipu ih moe biti od 100.000 do 1.000.000. Poto su svi gejtovi prefabrikovani, eljena fukcionalnosti se postie odgovarajuim povezivanjem gejtova, za ta je neophodna naknadnom dorada gejtovaskog polja nanoenjem zavrnog sloja metalizacije. Cena ovakve dorade je znaajno nia u odnosu na custom projektovanje, gde se celokupan ip projektuje za tano jednu namenu, od poetka. Sa druge strane, gustina gejtovskih polja je znaajno manja u odnosu na custom ipove. Tipino, broj raspoloivih gejtova u gejtovskom polju je izmeu etiri i deset puta manji od broja gejtova koji se mogu realizovati na custom ipu iste povrine. Proces projektovanja zasnovan na gejtovskim poljima je slian onome koji se koristi za custum dizajn, s tom razlikom da zahteva jo jedan dodatni korak koji se zove tehnoloko mapiranje, a obavlja se nakon unosa i

54

Logiko projektovanje

simulacije dizajna. Cilj tehnolokog mapiranja je konverzija svih komponenti prisutnih u logikoj emi u gejtove istog tipa koji su raspoloivi u izabranom gejtovskom polju. Na primer, ako se gejtovsko polje sastoji od tro-ulaznih NAND kola, sve Bulove funkcije definisane logikom emom moraju biti realizovane uz pomo troulaznih NAND kola. Nakon obavljenog tehnolokog mapiranja, rasporeivanje i povezivanje se moe 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 sabiraa. Prvo, izrazi za funkcije sum i carry moraju biti konvertovane u formu koja e omoguiti realizaciju pomou tro-ulaznih NAND kola. Do ove formi se moe doi primenom De-Morganove teoreme, na sledei nain: ci+1 = xiyi+yici+xici = ((xiyi)(yici)(xici)) i si = xiyici+xiyici+xiyici+xiyici = (xiyici+xiyici+xiyici)+xiyici = ((xiyici+xiyici+xiyici)(xiyici)) =((((xiyici)(xiyici)(xiyici)))(xiyici)) Realizacija potpunog sabiraa u gejtovskom polju NAND tipa prikazana je na Sl. 2.40. Uoimo da je funkcija carry reaizovana pomou 4 gejta, to predstavlja minimalni broj gejtova koji je potreban za realizaciju ove funkcije. Sa druge strane funkcija sum zahteva sedam gejtova, poto etvoro-ulazno NAND kolo zahteva tri gejta kada se ralizuje pomou tro-ulaznih NAND gejtova. Uoimo da su u strukturi sa Sl. 2.40 dva od ukupno 16 gejtova ostala neiskoriena. Treba napomenuti da je kod tipinog dizajna nivo iskorienosti raspoloivih gejtova obino znaajno nii.

Sl. 2.40 Realizacija potpunog sabiraa u tehnologiji gejtovskih polja.

Trei pristup projektovanju zasnovan je programabilnim logikim kolima (PLD Programmable Logic Devices). PLD su polja logikih komponenti ija se povezanost uspostavlja prostim punjenjem (tj. programiranjem) konfiguracionih podataka u internu memoriju ovih kola. Poto PLD kola mogu biti reprogramirana vei broj puta, ona su pogodna za novi dizajn, kada specifikacija u startu nije dovoljno precizna, ve evoluira tokom vremena, kao i u sluajevima kada hardver mora biti prilagoen pojedinim korisnicima. PLD kola su idealna za realizaciju prototipova i predstavljaju ekonomino reenje za komponente koje se proizvode u malim serijama. Naalost, logika gustina i brzina PLD kola je znaajno manja u odnosu kola koja se mogu projektovani u custom ili semi-custom tehnologijama. Na Sl. 2.41(a) je prikazana PLD struktura tipa FPGA (Field Programmable Gate Array) koju ini polje programabilnih logikih blokova (PLB Programmable Logic Block) okruenih programabilni vezama (PM), kao i nekoliko ulazno-izlaznih blokova rasporeenih po obodu ipa (ne vide se na Sl. 2.41(a)), a koji se koriste za spregu sa drugim komponentama lociranim izvan ipa. Kao to se moe videti na Sl. 2.41(b), svaki PLB

55

Arhitektura mikrosistema

sadri dva etvoro-ulazna logika bloka i dva jedno-bitna memorijska elementa. Svaki logiki blok se moe programirati tako da realizuje bilo koju logiku funkciju etiri promenljive, dok se rezultat funkcije moe direktno proslediti nekom drugom logikom bloku, ili se moe zapamtiti u pridruenom memorijskom elementu radi kasnijeg korienja.

Sl. 2.41 PLD kolo: (a) struktura polja; (b) programabilni logiki blok (PLB); (c) spojna taka.

Unutar FPGA kola, programabilno povezivanje se ostvaruje uz pomo skupova paralelnih vertikalnih i horizontalnih veza u ijim se presecima nalaze prekidake matrice (PM). Prekidaka matrica dimenzija n n sadri mn n programabilnih spojnih taaka uz pomo kojih se vertikalne i horizontalne veze mogu spojiti na nekoliko razliitih naina. Kao to se moe videti na Sl. 2.41(c), svaka spojna taka sadri est prekidaa koji se programiranjem mogu postaviti u otvoreno ili zatvoreno stanje. U zavisnosti od toga koji su prekidai zatvoreni,

56

Logiko projektovanje

mogue je ostvariti jedan od 64 razliita naina povezivanja izmeu veza koje sa razliitih strana ulaze u prekidaku matricu. Pored nadovezivanja kraih veza u cilju formiranja duih linija, prekidake matrice slue i za povezivanje PLB blokova sa vertikalnim i horizontalnim vezama, kao to se moze videti na Sl. 2.41(a). Kao to se moe videti na Sl. 2.42, FPGA tehnologija omoguava realizaciju potpunog sabiraa unutar samo jednog PLB bloka, gde se za funkcije sum i carry koristi po jedan logiki blok. Poto obe funkcije, carry i sum, imaju po tri ulazne promenljive, po jedan ulaz u svaki od dva logika bloka ostaje neiskorien.

Sl. 2.42 Realizacija potpunog sabiraa pomou jednog PLB bloka.

2.3.1

Tehnoloko mapiranje za gejtovska polja

U cilju smanjenja cene i vremena razvoja, danas se mnogi digitalni sistemi proizvode u tehnologiji gejtovskih polja. Kao to je opisano u odeljku 2.3, gejtovsko polje je dvodimenzionala matrica elija, gde svaka elija sadri jedan gejt sa fiksnim brojem ulaza. Obino se koriste m-ulazni NAND (ili NOR) gejtovi, a najee se sreu 3-ulazni NAND (NOR) gejtovi. Projektovanje na bazi gejtovskih polja zahteva transformaciju Bulovih izraza ili logikih ema koje sadre AND, OR i NOT gejtove u oblik koji sadri iskljuivo m-ulazne NAND (NOR) gejtove. Ova transformacija se zove tehnoloko mapiranje i ukljuuje nekoliko zadataka, koji e biti opisani u ovom odeljku. Najpre e biti objanjeno kako transformisati logiku emu koja sadri AND, OR i NOT kola u emu koja sadri iskljuivo NAND (NOR) kola. Ova transformacija ukljuuje dva koraka: konverzija i optimizacija. U koraku konverzije, svako AND i OR kolo se zamenjuje ekvivalentnim NAND (NOR) kolom, dok se u koraku optimizacije, eliminiu duplirani invertori koji su kreirani u toku konverzije. Takoe, bie pokazano kako se AND (OR) kolo sa vie od m ulaza moe razloiti na mreu AND (OR) kolo sa m ulaza. Konano, bie demostrirana tehnika za minimizovanje kanjenja u NAND (NOR) logikoj mrei. Pravila za konverziju zasnovana su na osnovnim postulatima Bulove algebre i sledeeg su oblika: Pravilo 1: Pravilo 2: Pravilo 3: Pravilo 4: xy = ((xy)) x+y = ((x+y)) = (xy) xy = ((xy)) = (x+y) x+y = ((x+y))

Pravila 1 i 2 se koriste za konverziju u NAND, a pravila 3 i 4 za konverziju u NOR logiku mreu. Grafika reprezentacija pravila 1 do 4 se moe videti na Sl. 2.43(a). Takoe koristiemo jo jedno dodatno pravilo za optimizaciju, Pravilo 5, koje kae da duple invertore (tj. dva invertora vezana na red) treba zameniti prostom vezom. Ovo pravilo je posledica postulata x=(x), a grafiki je ilustrovano na Sl. 2.43(b). Treba napomenuti da se u praksi invertori obino realizuju pomou NAND ili NOR gejtova kod kojih su svi ulazi meusobno spojeni. Meutim, u logikim emama koristiemo simbole za invertor, umesto NAND ili NOR gejtova, kako bi smo jasnije ukazali na pozicije invertora u logikoj mrei.

57

Arhitektura mikrosistema

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

Jednostavno reeno, procedura za konverziju AND-OR logike mree u NAND (NOR) logiku mreu glasi: Primenom pravila 1 i 2 (3 i 4) AND i OR kola zameniti NAND (NOR) kolima, a zatim, svuda gde je to mogue, eliminisati duple invertore. Opisana procedura konverzije se lako primenjuje na standarde forme tipa "suma proizvoda" i "proizvod suma". Na primer, kao to se moe videti iz tabele sa Sl. 2.44, forma tipa "suma proizvoda" se moe konvertovati u NAND mreu jednostavnom zamenom svakog gejta jednim NAND gejtom. Slino, forma tipa "suma proizvoda" se konvertuje u NOR mreu tako to se najpre svaki gejt zameni NOR gejtom, a zatim se na svaki ulazni i izlazni port mree postave invertori. Meutim, zbog dodatnih invertora, forma tipa "suma proizvoda" se retko konvertuje u NOR mreu. Za konverziju forme tipa "proizvod suma" vai suprotno, dodatni invertori se javljaju u NAND mrei, dok kod NOR realizacije postoji "1-1" preslikavanje gejtova iz NOR mree 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 mree.

58

Logiko projektovanje

PRIMER 2.13 (Konverzija u NAND (NOR) mreu) Projektovati NAND i NOR logike mree za funkciju carry (ci+1) definisanom tabelom istinitosti sa Sl. 2.16. Reenje: 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 pomou AND i OR gejtova. Prilikom konverzije forme "suma proizvoda" u NAND mreu, 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 mreu koja je prikazana na desnoj strani Sl. 2.45(c). Na slian nain, primenom pravila 3 i 4, konvertujemo formu "proizvod suma" u NOR mreu, a nakon eliminacije duplih invertora dobijamo reenje 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

Poreenjem AND-OR i OR-AND mrea, sa jedne i rezultujuih NAND i NOR mrea, sa druge strane, moemo zakljuiti da NAND i NOR mree imaju bolje performanse. Naime, kanjenje od ulaza do izlaza NAND i NOR mrea iznosi 3.2ns, u odnosu na 5.2ns kod polaznih mrea. Uz to, NAND i NOR reenja imaju niu cenu jer zahtevaju 16 tranzistora, za razliku od AND-OR i OR-AND realizacije koje zahtevaju 24 tranzistora.

Dekompozicija AND (OR) gejtova U prethodnom primeru je pokazano kako se AND i OR gejtovi konvertuju u NAND (NOR) gejtove. Meutim, ako se ova konverzija vri u cilju implementacije dizajna u gejtovskom polju, treba imati na umu da su svi gejtovi u gejtovskom polju identini i imaju m ulaza, dok AND i OR kola mogu imati do n ulaza, gde n moe biti znaajno vee od m. Da bi smo mogli koristiti m-ulazne NAND (NOR) gejtove, moramo znati kako razloiti vee AND i OR gejtove na m-ulazne AND i OR gejtove. Procedura kojom se to postie zove se dekompozicija AND (OR) gejtova.

59

Arhitektura mikrosistema

Shodno proceduri dekompozicije gejtova, svako n-ulazno AND (OR) kolo se moe razloiti na stablo mulaznih AND (OR) gejtova. Stablo ima log m n nivoa sa ukupno ( n 1) /( m 1) m-ulaznih gejtova. Na gejtova; izlazi ovih gejtova, zajedno sa preostalih ( n n / m) ulaza formiraju prvi nivo i slue kao ulazi u gejtove sa drugog nivoa. Ova procedura se ponavlja za svaki od log m n nivoa. prvom nivou ovog stabla nalazi se

n / m

PRIMER 2.14 (Dekompozicija gejtova) Razloiti AND lan koji se sastoji od 10 promenljivih, x9x8x7x6x5x4x3x2x1x0, na stablo tro-ulaznih AND gejtova. Reenje: lanu od 10 promenljivih odgovara stablo od

log 3 10 = 3

nivoa,

sa

ukupno

(10 1)(3 1) = 5 gejtova. Poto postoji 10 ulaza u AND stablo, broj gejtova na prvom nivou bie 10 / 3 = 3 gejta. Broj ulaza u drugi nivo bie 3 + (10 3( 10 / 3)) = 4 to zahteva 4 / 3 = 1 gejt. Trei nivo imae 1 + (4 3( 4 / 3)) = 2 ulaza i, shodno tome, 1 gejt. Navedena izraunavanja koja se odnose na
broj gejtova na svakom nivou, prikazana su na Sl. 2.46(a).
Nivo 1 2 3 Broj ulaza 10 Broj gejtova

3 + (10 3( 10 / 3)) = 4 1 + (4 3( 4 / 3)) = 2


(a)

10 / 3 = 3 4 / 3 = 1 2 / 3 = 1

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

Nakon to je za svaki nivo izraunat 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 sledeeg nivoa. Ovo povezivanje se moe ostvariti na vie razliitih naina, pri emu svaki od nain moe da rezultuje u reenju sa razliitim maksimalnim kanjenjima ulaza do izlaza mree. Na Sl. 2.46(b) i (c) prikazane su dve mogue dekompozicije 10-ulaznog AND gejta na pet 3-ulaznih AND gejtova. Uoimo da se dva reenja razlikuju samo u propagacionom kanjenju du nekih od ulazno-izlaznih putanja. Na primer, u mrei sa Sl. 2.46(b), propagaciono kanjenje od svi ulaza, osim krajnjeg desno, do izlaza iznosi 8.4ns, dok kanjenje od krajnjeg desnog ulaza do izlaza iznosi samo 2.8ns. Sa druge strane, kod reenja sa Sl. 2.46(c), kanjenje od prva tri ulaza sa leve strane, kako i od krajnjeg desnog ulaza, do izlaza iznosi 5.6ns, dok je kanjenje od preostalih ulaza do izlaza vee i iznosi 8.4ns. Po pravilu, uvek kada je broj literala u datom proizvodu ili sumi vei od m, konverziji u NAND (NOR) gejtove, mora da prethodi dekomponzicija AND i OR gejtova.

60

Logiko projektovanje

PRIMER 2.15 (Tehnoloko mapiranje za gejtovska polja) Realizovati funkciju sum (si) potpunog sabiraa pomou tro-ulaznih NAND gejtova. Reenje: 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 = xiyici+xiyi'ci+xiyici+xiyici Na osnovu ovog izlaza lako se dolazi do AND-OR mree prikazane na Sl. 2.47(b). S obzirom da OR gejt sa Sl. 2.47(b) ima etiri ulaza, neophodno ga je razloiti na dva OR gejta, tako da svaki gejt nema vie 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 mree sa Sl. 2.47(c) konvertujemo u tro-ulazni NAND gejt, to daje logiku mreu prikazanu na Sl. 2.47(d). Konano, nakon eliminacije duplih invertora, dobijamo optimizovanu NAND mreu prikazanu na Sl. 2.47(e).

Sl. 2.47 Realizacija funkcije sum pomou 3-ulaznih NAND gejtova: (a) Karnoova mapa funkcije sum; (b) ANDOR mrea; (c) dekompozicija OR gejta; (d) konverzija u NAND mreu; (e) optimizovana NAND mrea.

Retajming Kao to se moe videti iz prethodnog primera, kao posledica dekompozicije veih AND i OR gejtova, u NAND (NOR) mrei se javljaju stabla gejtova, zbog ega razliite putanje kroz mreu mogu imati razliita kanjenja. Ova injenica se moe iskoristi prilikom optimizacije performansi (minimizovanje kaenjenja) date logike mree. Zadatak optimizacije performansi se zove retiming i obavlja se nakon dekompozicije, konverzije i eliminacije invertora, onda kada se precizno mogu izraunati kanjenja kroz logiku mreu. U toku retiming-a, putanjama kroz stablo dekomponovanih gejtova koje imaju najkrae kanjenje dodeljuju se signali koji imaju najvee kaenjenje kroz celokupnu logiku mreu. Nakon retiming-a, esto je potrebno jednom ili vie puta, ponoviti konverziju i eliminaciju duplih gejtova. Procedura retiming-a bie objanjena na sledeem primeru.

61

Arhitektura mikrosistema

PRIMER 2.16 (Retiming) Realizovati carry-look-ahead funkciju c4 pomou 3-ulaznih NAND gejtova. Reenje: Funkcija carry za za i-ti razred sabiraa, tj. carry-look-ahead funkcija ci, definisana je sledeom rekurzivnom jednainom: ci+1=gi+pici, gde je gi=xiyi i pi=xi+yi. Na osnovu ove jednaina, sledi: c1=g0+p0c0; c2=g1+p1c1; c3=g2+p2c2; c4=g3+p3c3 Zamenom unazad, izraz c4 moe se predstaviti u funkciji izraza c0, gi i pi, 0i3: 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 sabiraa, c4, ne zavisi od meu-prenosa, c3, c2 i c1. Na Sl. 2.48(a) prikazana je direktna realizacija funkcije c4 u vidu AND-OR mree. Na Sl. 2.48(b) prikazana je jedna mogua dekompozicija polazne AND-OR mree na 3-ulazne AND i OR gejtove. Konverzija u NAND gejtove i eliminacija duplih invertora daje NAND mreu sa Sl. 2.48(c). Kao to se moe videti sa ove slike, najvee ulazno-izlazno kanjenje u carry-look-ahead logikoj mrei iznosi 8.2ns. Meutim, postoji mogunost da bi sa nekom drugaijom dekompozicijom OR gejta, kanjenje kroz mreu bilo krae. Uoimo da je OR gejt iz polazne logike mree razloen na dva tro-ulazna gejta, tako da je ukupan broj slobodnih ulaza u rezultujue stablo OR gejtova pet. Svih pet ulaza su funkcionalno ravnopravni, to znai da signali koji ulaze u stablo OR gejtova slobodno mogu biti permutovani. Meutim, svih pet ulaza nemaju isto kanjenje 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 logike mree, kanjenja do ulaza u stablo OR gejtova se takoe razlikuju. Kanjenje od prvog ulaza, gledano odozgo, do OR stabla je 0ns. Signal koji polazi sa jednog od sledea etiri ulaza do OR stabla prolazi kroz jedan AND gejt, dok putanje koje kreu od preostalih ulaza i proteu se do OR stabla prolaze kroz dva AND gejta. Oigledno, kanjenje kroz celokupnu logiku mreu se moe smanjiti ako se putanje, od ulaza u logiku mreu do ulaza u OR stablo, sa najveim kanjenjem preusmere na ulaze OR stabla sa najmanjim kanjenjem do izlaza. Sledei ovakvo razmiljanje, dolazimo do nove dekompozicije prikazane na Sl. 2.48(d). Kao to se moe videti, lanovi p3p2p1g0 i p3p2p1c0 koji se formiraju pomou dva redno vezana AND gejta, preusmereni su na slobodne ulaze izlaznog OR gejta. Nakon konverzije i eliminacije dupli invertora, dobijamo NAND mreu sa Sl. 2.48(e). Analizom ove mree moemo zakljuiti da je kanjenje samo 6.4ns, to predstavlja poboljanje od 30% u odnosu na polazno, neoptimizovano reenje.
g3 p3 g2 p3 p2 g1 p3 p2 p1 g0 p3 p2 p1 p0 c0

c4

(a)
g3 p3 g2 p3 p2 g1 p3 p2 p1 g0 p3 p2 p1 p0 c0 c4 g3 p3 g2 p3 p2 g1 p3 p2 p1 g0 p3 p2 p1 p0 c0 1.4 1.8

1.8

1.4

1.8

1.8

c4

1.8

1.8

(b)

(c)

62

Logiko projektovanje

PRIMER 2.16 (nastavak )

Sl. 2.48 Dve NAND realizacije 4-bitne carry-look-ahead funkcije: (a) AND-OR mrea; (b) dekompozicija mree (a); (c) NAND ralizacija mree (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 mree u mreu mulaznih 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 taki procedure, odreuju se kanjenja du svih ulazno-izlaznih putanja, i registruju putanje sa najveim kanjenjem, kako bi se, primenom retiming-a, njihovo kanjenje smanjilo, ako je mogue. Procedura moe biti ponovljena vei broj puta, sve dok ne doemo do reenja kod koga dalje smanjenje maksimalnog kanjenja kroz mreu vie nije mogue ostvariti.

Sl. 2.49 Procedura tehnolokog mapiranja za gejtovska polja. 2.3.2 Tehnoloko mapiranje za custom biblioteke

U prethodnom odeljku razmatran je postupak transformacije logike mree sainjen od AND, OR i NOT gejtova u logiku mreu sa iskljuivo NAND (NOR) gejtovima, gde svaki NAND (NOR) gejti ima tano m ulaza. Kao to je pokazano na primerima, postupak transformacije ovog tipa je jednostavan, jer nakon dekompozicije polazne mree na m-ulazna AND i OR kola, sledi direktna zamena svakog AND ili OR gejta

63

Arhitektura mikrosistema

tano odreenom kombinacijom NAND (NOR) gejtova i invertora. Meutim, kada radimo sa custom bibliotekom, postupak transformacije postaje znaajno sloeniji, s obzirom da ove biblioteke sadre kompleksne gejtove, kao to su AOI i OAI, to znai da svaki gejt, ili grupa povezanih gejtova, iz polazne mree moe biti zamenjen sa vie razliitih gejtova ili kombinacijom gejtova iz raspoloive biblioteke. Iz tog razloga, tehnoloko mapiranje za custom biblioteke zahteva grupisanje gejtova iz polazne mree na takav nain da svaka grupa predstavlja jedan gejt iz biblioteke, teei pri tome da rezultujua mrea ima minimalnu cenu ili kanjenje. Zadatak grupisanja gejtova iz polazne mree se moe razumeti kao zadatak pokrivanja polazne mree bibliotekim gejtovima. Naravno, broj razliitih pokrivanja moe biti veoma veliki. Gledano na ovaj nain, minimizovanje kanjenja znai izbor takvog pokrivanja kod koga e maksimalno kanjenje od bilo kog ulaza do izlaza biti minimalno. Slino, minimizovanje cene znai izbor pokrivanja sa minimalnom cenom (npr. sa minimalnim brojem ekvivalentnih tranzistora). Iako je ponekada mogue u isto vreme minimizovati kanjenje i cenu, u optem sluaju minimizovanje kanjenja i cene predstavlja dva suprotsvatljena cilja. Na primer, da bi se minimizovalo kanjenje, ulazni signali bi trabalo da prolaze kroz to je mogue manje gejtova. Iz tog razloga, logiki izrazi optimizovani po kriterijumu kanjenja esto su oblika standardnih formi tipa suma proizvoda ili proizvod suma, kod kojih postoje samo dva nivoa gejtova, mada takve forme mogu imati vei broj gejtova ili gejtove sa veim brojem ulaza u odnosu na nestandardne (vie-nivolske) forme. Sa druge strane, prilikom minimizovanja cena, suprotno je tano, jer mrea optimizovana po kriterijumu cene treba da ima to je mogue manji broj gejtova sa to manjim brojem ulaza. Iz tog razloga, mree optimizovane po ceni, obino koriste maksimalno faktorizovane nestandardne forme, sa vie od dva nivoa gejtova, to zahteva manji broj gejtova sa manjim brojem ulaza u odnosu na standardne forme. Iz ove diskusije moemo zakljuiti da minimizacija cene poveava kanjenje jer unosi dodatne nivoe gejtova, dok minimizovanje kanjenja poveava cenu, jer poveava broj gejtova i broj ulaza u gejtove. Meutim, u mnogim sluajevima, u toku tehnolokog mapiranja, ova dva cilja mogu biti usklaena. Poto je cilj minimizacije kanjenja smanjenje kanjenja na najduoj ulazno-izlaznoj putanji, koja se zove kritina putanja, ne postoji razlog zato ne bi smo sve ostale, nekritine putanje optimizovali po ceni, sve dok kanjenje nekritinih putanja ne premai kanjenje kritine putanje. Iz tog razloga, tehnoloko mapiranje uvek poinje minimizovanjem kanjenja kritine putanje, a nastavlja se minimizovanjem cene nekritinih putanja. Da bi se odredila kritina putanja, obino se polazna mrea trasformie u NAND ili NOR mreu, poto su NAND i NOR gejtovi najee i najbri gejtovi u biblioteci. U sledeem primeru predstavljen je zadatak tehnolokog mapiranja za custom biblioteke.

PRIMER 2.17 (Tehnoloko mapiranje za custom biblioteke). Transformisati izraz wz+z(w+y) u logiku mreu korienjem gejtova iz biblioteke definisane tabelama sa Sl. 2.15, Sl. 2.18 i Sl. 2.19. Reenje: Kao to je prikazanano na Sl. 2.50(a), izraz wz+z(w+y) se moe lako realizovati pomou AND, OR i NOT gejtova koje moemo nai u biblioteci. Sabirajui pojedinana kanjenja gejtova, koja su naznaena unutar simbola za svaki gejt, moemo zakljuiti da se najdue kanjenje javlja na putanju izmeu ulaza y ili w i izlaza F i iznosi 7.2ns. Uz to, poto znamo da svako 2-ulazno AND ili OR kolo zahteva est, a svaki invertor dva tranzistora, lako moemo odrediti ukupnu cenu ove realizacije, koja iznosi 28 tranzistora. Sa druge strane, ako logiku mreu sa Sl. 2.50(a) konvertujemo u NAND mreu, sledei proceduru opisanu u odeljku 2.3.1, dobiemo logiku mreu prikazanu na Sl. 2.50(b), ija je cena samo 22 tranzistora i kod koje kanjenje kritine putanje iznosi samo 5.2ns. Kao to se moe videti sa Sl. 2.50 (c), logika prisutna na kritinoj putanji mree sa Sl. 2.50 (b) se moe konvertovati na dva razliita naina, oznaena sa A i B na Sl. 2.50(c). Ako usvojimo reenje A, tri gejta zameniemo jednim dvostrukim 2-ulaznim AOI gejtom i jednim invertorom, kao to je prikazano na Sl. 2.50(d). Naalost, ova zamena, iako smanjuje utroak tranzistora na 20, ipak poveava kanjenje kritine putanje za 0.2ns. Meutim, ako usvojimo reenje B i jednim dvostrukim 2-ulaznim AOI gejtom zamenimo tri gejta, na nain kao to je prikazano na (e) kanjenje na kritinoj putanji bie smanjeno na 3.4ns, dok e, broj tranzistora biti smanjen na 20. U isto vreme, ova zamena, kreirala je novu kritinu putanju, od ulaza w i z do izlaza F, sa kanjenjem od 3.8ns. Poto smo dobili novu kritinu putanju, potrebno je usmeriti panju na smanjenje njenog kanjenja. Meutim, kanjenje na ovoj novoj kritinoj putanji se ne moe vie smanjiti. Meutim, izvesno smanjenje cene se moe postii zamenom grupe od dva invertora i jednog 2-ulaznog NAND gejta jednim 2-ulaznim OR gejtom i jednim invertorom, na nain koji je naznaen na Sl. 2.50(e). Konano reenje, prikazano na Sl. 2.50 (f), ima cenu od 18 tranzistora i kanjenje na kritinoj putanji od 3.8ns.

64

Logiko projektovanje

PRIMER 2.17 (nastavak)

Sl. 2.50 Primer tehnolokog mapiranja: (a) AND-OR realizacija, kanjenje=7.2ns, cena=28; (b) NAND realizacija, kanjenje=5.2ns, cena=22; (c) Dve mogue konverzije; (d) Reenje A, kanjenje=5.4ns, cena=20; (e) reenje B, kanjenje=3.8ns, cena=20; (f) reenje B optimizovano po ceni, kanjenje=3.8ns, cena=18.

Postupak transformacije koji je demostriran u prethodnom primeru, a koji je opisan dijagramom toka sa Sl. 2.51, moe se primeniti na bilo koju logiku mreu i bilo koju biblioteku. Transfomracija poinje konverzijom polazne logike mree u NAND ili NOR mreu, s obzirom da na taj nain moemo precizno oceniti ulaznoizlazna kanjenja. Nakon toga, sve putanje se sortiraju shodno njihovim kanjenjima. To nam omoguava da odredimo kritinu putanju. Zatim pokuavamo da gejt ili grupu gejtova sa kritine putanje pokrijemo gejtom iz biblioteke. Za svako mogue pokrivanje, koje smo isprobali, pamtimo dobitak u performansama i ceni, a u cilju nalaenja pokrivanja pojedinanim gejtom koje daje najvei dobitak. Ova procedura se ponavlja sve dok ne pokrijemo sve gejtove sa kritine putanje barem jednim bibliotekim gejtom. U ovoj taki, biramo najprofitabilniju alternativu, preraunavamo kanjenja za preostale putanje i primenjujemo istu proceduru na najduu od nepokrivenih putanja. Konano, kada su sve putanje pokrivene, transformacija je zavrena.

65

Arhitektura mikrosistema

Sl. 2.51 Procedura konverzije za custom biblioteke.

2.4

Zakljuak

U ovom poglavlju razmatrani su osnovni principi Bulove algebre i naini realizacije Bulovih funkcija pomou razliitih logikih kola. Poto se razliiti tipovo logikih kola razlikuju po ceni (veliini) i kanjenju, isto vai i za realizacije Bulovih funkcija koje koriste ova kola. Poto cena i kanjenje realizacije Bulove funkcije zavisi od forme Bulovog izraza i tipa korienih gejtova, neophodno je znati kako izvesti odgovaraju izraz i izabrati odgovarajui tip gejta tako da se dobije minimalna cena ili kanjenje.

66

Komponente digitalnih sistema

Sloeni digitalni sistemi projektuju se tako to se najpre ukupna funkcija sistema razloi na vie pod-funkcija. Zatim se pod-funkcije realizuju u vidu jednostavnijih digitalnih modula, ijim se povezivanjem konstruie eljeni sistem. Iako je u nekim sluajevima neophodno projektovati module za neke specifine funkcije, ipak, najee, u praksi, sloeniji digitalni sistemi se mogu realizovati korienjem standardnih modula ili komponenti. Standardne komponente obavljaju funkcije za koje je uoeno da su korisne za veliki broj razliitih primena, a dostupne su u vidu integrisanih kola ili bibliotekih komponenti i kao takve spremne za direktnu ugradnju u sistem koji se projektuje. Veina digitalnih sistema, ukljuujui i raunare, projektovana je da obrauje ili transformie podatke. Ove transformacije mogu biti razliitih tipova, ukljuujui aritmetike i logike operacije, kodiranje i dekodiranje podataka i reorganizaciju podataka. U optem sluaju, navedene transformacije podataka se obavljaju pomou kombinacionih komponenti. Osnovna osobina kombinacionih kola jeste injenica da se njihove izlazne vrednosti izraunavaju iskljuivo na osnovu tekuih ulaznih vrednosti. Nakon svake promene ulaznih vrednosti, na izlazu se javljaju nove izlazne vrednosti sa kanjenjem koje je neophodno da bi se izraunao novi rezultat. Kombinaciono kolo nije u stanju da zapamti prethodne rezultate, i da onda tu informaciju, zajedno sa tekuim ulazom, koristi za odreivanje novog izlaza. Za razliku od kombinacionih, sekvencijalne komponente sadre memorijske elemente, kao to su le kola i flip-flopovi. Kao posledica toga, izlazne vrednosti sekvencijalnih komponenti zavise ne samo od tekuih ve i od prethodnih ulaznih vrednosti. Spektar sekvencijalne komponenti se protee od bazinih memorijskih elemenata, kao to su le kola i flip-flopovi, preko generikih (standardnih) registarskih komponti, kao to su prihvatni, pomeraki i brojaki registri, i sloenijih memorijskih struktura, kao to su RAM, FIFO, stek, do staza podataka i upravljakih jednica koje su u mogunosti da izvravaju sloene algoritme. U ovom poglavlju, korienjem tehnika za logiko projektovanje, opisanih u poglavlju 2, bie pokazano kao se projektuju generike kombinacione i sekvencijalne komponente sa registarskog nivoa apstrakcije. 3.1 Kombinacione komponente

Kombinacione komponente se koriste za: transformaciju podataka, povezivanje, konverziju podataka i upravljanje. Konkretno, kombinacione komponente za transformaciju podataka obavljaju: (1) aritmetike operacije (sabiranje, oduzimanje, mnoenje i deljenje), (2) logike operacije (AND, OR, XOR i komplement), (3) operacije poreenja (vee ili jednako, manje) i (4) operacije za manipulaciju nad bitovima (pomeranje, rotiranje, izdvajanje i umetanje bitova). Kombinacione komponente za povezivanje su multiplekseri i magistrale, a koriste se za povezivanje aritmetikih i memorijskih komponenti. Komponente za konverziju podataka, kao to su koderi i dekoderi, se koriste za konverziju podatka iz jednog u neki drugi kod. Konano, univerzalne kombinacione komponente, kao to su ROM memorije i programabilna logika polja (PLD) prevashodno se koriste za projektovanje upravljakih jedinica. 3.1.1 Sabira sa rednim prenosom

Sabira je kombinaciona komponenta koja se koristi za obavljanje operacije sabiranja binarnih brojeva. Dva binarna broja, kao to su x=xn-1 x0 i y=yn-1 y0, sabiraju se tako to se na zbir svakog par bita xi i yi doda bit prenosa ci koji je preneen iz prethodne bitske pozicije. Sabiranjem tri bita, xi, yi i ci, za svaku bitsku poziciju i, 0in-1, generie se bit sume si i bit prenosa ci+1. Procedura sabiranja na nivou jedne bitske pozicije opisana je tabelom istinitosti sa Sl. 3.1(a). Polazei od tabele istinitosti sa Sl. 3.1(a), a uz pomo Karnaughovih mapa sa Sl. 3.1(b), moemo izvesti logike jednaine sa minimalnim brojem literala na osnovu kojih projektujemo logiku emu jedno-bitnog sabiraa (Sl. 3.1(c)). Jedno-bitni sabira, koji sabira dva jedno-bitna operanda xi i yi, i bit ulaznog prenosa ci, poznat je pod nazivom potpuni sabira (FA Full Adder).

Arhitektura mikrosistema

Binarni sabira se formira rednim povezivanjem potpunih sabiraa, tako to izlazni prenos svakog potpunog sabiraa slui kao ulazni prenos za potpuni sabira koji zauzima prvu narednu bitsku poziciju vee teine. Na primer, 8-bitni sabira se sastoji od osam potpunih sabiraa koji su povezani kao na Sl. 3.1(d). U optem sluaju, n-bitni sabira, iji je grafiki simbol prikazan na Sl. 3.1(e), moe se konstruisati na ovaj nain. Kao to se moe lako zakljuiti, najdue kanjenje u sabirau sa rednim prenosom odreeno je putanjom od ulaznog prenosa c0, ili bitske pozicije najmanje teine x0 i y0, do izlaznog prenosa cout. Drugim reima, svaka promena nekog od bita c0, x0 ili y0, mora da se prenese kroz sve potpune sabirae, kako bi se izraunali svi izlazni bitovi.

Sl. 3.1 Sabira sa rednim prenosom: (a) tabela istinitosti potpunog sabiraa; (b) Karnoove mape; (c) ematski prikaz potpunog sabiraa; (d) struktura 8-bitnog sabiraa; (e) grafiki simbol binarnog sabiraa.

3.1.2

Sabira/oduzima

Po pravilu, oduzimanje binarnih brojeva se obavlja sabiranjem umanjenika i dvojinog komplementa umanjioca. Dvojini 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 sabiraa, 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 sabiraa/oduzimaa prikazana je na Sl. 3.2(a), a grafiki simbol na Sl. 3.2(b). Konano, kao primer, na Sl. 3.2(c)

68

Komponente digitalnih sistema

je prikazana struktura 8-bitnog sabiraa/oduzimaa. Kod ovog reenja, komplementiranje ulaza B realizuje se kao XOR operacija izmeu S i B.

Sl. 3.2 Sabira/oduzima: (a) tabela istinitosti; (b) grafiki simbol; (c) struktura 8-bitnog sabiraa/oduzimaa.

3.1.3

Logika jedinica

Uopteno govorei, logika jedinica nam omoguava da obavimo jednu od nekoliko logikih funkcija nad dva proizvoljna n-bitna operanda X=xn-1 x0 i Y=yn-1 y0. Binarne logike operacije se primenjuju na vie-bitne operande tako to se logika operacije primeni na svaki par odgovarajuih bitova dva operanda. Na primer, logika AND operacije primenjena na dva 4-bitna operanda 1010 i 1100, daje 4-bitni rezultat 1000. Drugim reima, uvek kada je izabrana funkcija fi, logika jedinica e izraunati rezultat: S = fi(X,Y)=fi(xn-1,yn-1) fi(x0,y0) S obzirom da logika jedinica, koja je sposobna da izrauna svih 16 Bulovih funkcija koje koriste dva operanda, i nije tako sloena, iskoristiemo takvu jednu jedinicu kako bi smo demonstrirali optu proceduru za projektovanje bilo koje logike jedinice. Na Sl. 3.3(a) prikazano je svih 16 Bulovih funkcija koje koriste dve promenljive. Poto je broj funkcija 16, za izbor jedne od njih, potrebne su etiri binarne promenljive, S3, S2, S1 i S0. Kodiranje selekcionih ulaza je takvo da je Si=1, 0i3, ako i samo ako je minterm mi u izabranoj funkcije jednak mi=1. Na primer, OR funkcija, izraena kao logika suma minterma ima oblik f14=m3+m2+m1, to znai da je njen kod S3S2S1S0=1110. Uoimo da selekcione promenljive interpretirane kao binarni broj imaju vrednost jednaku indeksu izabrane funkcije. Drugim reima, za funkciju f14 vrednost S3S2S1S0 je jednaka 1110 to odgovara binarnoj reprezentaciji broja 14. Poto svaka selekciona promenjiva kontrolie jedan minterm, logika funkcija koja odgovara logikoj jedinici za jednu bitsku poziciju je oblika: si = S0m0+S1m1+S2m2+S3m3 = S0xiyi+S1xiyi+S2xiyi+S3xiyi Struktura logike jedinice za jednu bitsku poziciju prikazan je na Sl. 3.3(b), dok je na Sl. 3.3(c) prikazan grafiki simbol n-bitne logike jedinice. U optem sluaju, bilo koja n-bitna logika jedinica imae n identinih segmenata, koji konkurentno obavljaju istu funkciju nad parovima odgovarajuih bitova dva n-bitna operanda. Na Sl. 3.3(d) prikazan je primer 8-bitne logike jedinice.

69

Arhitektura mikrosistema

Sl. 3.3 Logika jedinica: (a) funkcije od dve promenljive; (b) realizacije logike jedinice; (c) grafiki simbol; (d) 8bitna logika jedinica.

3.1.4

Aritmetiko-logika jedinica

Aritmetiko-logika jedinica (ili ALU prema engleskom nazivu Arithmetic and Logic Unit) je viefunkcijsko, kombinaciono kolo koje moe da obavi bilo koju od vie razliitih aritmetikih i logikih operacija nad parom b-bitnih operanada. Pri tome, jedna od raspoloivih operacija bira se preko skupa selekcionih ulaza. Broj i sloenost operacija podranih od strane ALU modula su pitanje izbora projektanta i mogu znaajno da variraju od ALU do ALU modula. Tipine aritmetike operacije, koje se sreu kod veine ALU modula, obino su zasnovane na sabiranju, kao na primer, sabiranje, oduzimanje, inkrementriranje i dekrementiranje. Inkrementiranje je operacija sabiranja sa 1, a dekrementiranje oduzimanja za 1. Meutim, postoje i ALU moduli koji su u stanju da obavljaju i sloenje aritmetike operacije, kao to su mnoenje, deljenje, stepenovanje, pomeranje, poreenje i dr. Tipine logike operacije su AND, OR, komplement, XOR. Postoje dva glavna razloga za projektovanje ALU jedinica u obliku standardnih modula. Prvo, dostupnost univerzalnih aritmetikih modula omoguava da se isti modul koristi u mnogim razliitim primenama, ime se smanjuje broj razliitih modula koji se koriste u projektovanju. Drugo, ALU moduli se mogu efikasno koristiti u sistemima, kao to je procesor, kod kojih operacija koju treba obaviti u datom trenutku bira dinamiki, od strane upravljake jedinice procesora. U ovom odeljku bie izloen postupak projektovanje jedne konkretne 4-bitne ALU jedinice. S obzirom da su aritmetike operacija zasnovane na sabiranju, ALU se moe projektovati tako to e se modifikovati ulazi binarnog sabiraa. Logika koja obavlja ovu modifikciju, a tie se aritmetikih operacija, zove se aritmetiki ekspander (AE), dok se ona koja se koristi za logike operacije zove logiki ekspander (LE). Ekspanderi su povezani su na ulaz sabiraa, na nain kako je to isprekidanim linijama prikazano na slici. U nastavku e biti izloena procedura projektovanja ekspandera AE i LE na primeru ALU jedinice koja obavlja etiri aritmetike i etiri logike operacije.

70

Komponente digitalnih sistema

Sl. 3.4 4-bitni sabira u spoju sa aritmetikim (AE) i logikim (LE) ekspanderima.

Najpre, neophodan je ulaz za izbor reima rada, M, koji e birati aritmetike ili logike operacije, tako da pri M=1, ALU obavlja aritmetike, a pri M=0 logike operacije. Takoe, potrebne su dve promenljive za izbor operacije, S1 i S0, koje e, u zavisnosti od vrednosti ulaza M, birati jednu od etiri aritmetikih ili etiri logikih operacija, na nain kako je to definisano funcijskom tabelom sa Sl. 3.5a, za aritmetike, i tabelom sa Sl. 3.6a, za logike operacije. U funkcionalnnoj tabeli sa Sl. 3.5(a), za svaku aritmetiku operaciju, navedene su vrednost izlaza ALU jedinice, F, kao i vrednosti ulaza sabiraa, X i Y, i ulaznog prenosa c0 koje su neophodne da bi se dobila odgovarajua vrednost F. Shodno ovoj tabeli, na ulaz X sabiraa 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 generiu 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 . Konano, struktura AE ekspandera prikazana je na Sl. 3.5(d).
M 1 1 1 1 1 1 1 1 0 S1 0 0 0 0 1 1 1 1 X S0 0 0 1 1 0 0 1 1 X (b)
bi

M 1 1 1 1

S1 0 0 1 1

S0 0 1 0 1

Ime funkcije Dekrement Sabiranje Oduzimanje Inkrement (a)

F A-1 A+B A+B'+1 A+1

X A A A A

Y sve jedinice B B' sve nule

c0 0 0 1 1

bi 0 1 0 1 0 1 0 1 X

yi 1 1 0 1 1 0 0 0 0

S0 S1 M

bi

S1S0 00 0 1 1 1

01

11

10 1

AE

yi = MS1'bi + MS0'bi

yi

(c)

(d)

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

71

Arhitektura mikrosistema

Projektovanje logikog ekspandera, takoe, zapoinje funkcionalnom tabelom koja definie logike operacije, a koja je prikazana na Sl. 3.6(a). Kao to se moe zakljuiti analizom ove tabele, za bilo koju logiku operaciju, ulazi Y i c0 sabiraa su uvek postavljeni na vrednost 0, dok se na ulaz X postavlja rezultat logike jednaine koja odgovara izabranoj logikoj operaciji. Na osnovu funkcionalne tabele sa Sl. 3.6(a), u mogunosti smo da formiramo tabelu istinitosti logikog ekspandera, koja je prikazana na Sl. 3.6(b). Na osnovu odgovarajue Karnoove mape Sl. 3.6(c), sledi logiki izraz za jednu bitsku poziciju logikog ekspandera: xi=MS1S0ai` +MS1S0bi+S0aibi+S1ai+Mai Kombinaciona mrea logikog ekspandera koja sledi na osnovu dobijenog izraza prikazana je na Sl. 3.6(d).
M 0 0 0 0 S1 0 0 1 1 S0 0 1 0 1 Ime funkcije Komplement AND Identitet OR F A' A AND B A A OR B (a) X A' A AND B A A OR B Y 0 0 0 0 c0 0 0 0 0 M 0 0 0 0 1 S1 0 0 1 1 X S0 0 1 0 1 X (b) xi ai' aibi ai ai+bi ai

Sl. 3.6 Logiki ekspander: (a) funkcionalna tabela; (b) tabela istinitosti; (c) Karnoova mapa; (d) struktura.

Nakon obavljenog projektovanja aritmetikog i logikog ekspandera, ALU jedinica formira se povezivanjem AE i LE ekspandera sa binarnim sabiraem, na nain kao to je prikazano na Sl. 3.7(a). Uoimo da se kod ALU jedinice, logike operacije obavljaju u logikim ekspanderima, a da potpuni sabirai (FA) proputaju na izlaz F rezultat LE ekspandera bez ikakve promene. Drugim reima, prilikom obavljanja logikih operacija potpuni sabirai se koriste kao veze sa fiksnim propagacionim kanjenjem. Uoimo, takoe, da prlikom izvrenja aritmetikih operacija nad neozneenim brojnim vrednostima, signal izlaznog prenosa iz pozicije najvee teine ukazuje na prekoraenje. Za sluaj aritmetikih operacija nad oznaenim brojevima (predstavljenim u obliku dvojinog komplementa), uslov prekoraenja je drugaiji i formira se kao XOR operacija izlaznih prenosa iz dve bitske pozicije najvee teine. Ako je neophodno, 4-bitna ALU jedinica sa slikaa se moe proiriti na n-bitnu ALU jedinicu, korienjem n-bitnog sabiraa u spoju sa n aritmetikih i n logikih ekspandera. Grafiki simbol ovakve ALU jedinice prikazan je na Sl. 3.7(b). Veina ALU jedinica, koje se koriste u praksi, konstruiu se na opisani nain, osim to se razlikuju po tipu i broju aritmetikih i logikih operacija koje podravaju.

72

Komponente digitalnih sistema

(a)

(b) Sl. 3.7 ALU modul: (a) 4-bitna ALU; (b) grafiki 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 logikih vrednosti na ulazu. Dodatni ulaz za dozvolu rada, E, upravlja izlazom dekodera na sledei nain: 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 potie od engleske rei Enable koja znai dozvola). Ovo kolo se zove binarni dekoder n-u-2n ili n-to ulazni binarni dekoder.

Sl. 3.8 Binarni dekoder n-u-2n.

Na Sl. 3.9 je prikazan binarni dekoder 1-u-2. Grafiki simbol ovog dekodera se moe videti na Sl. 3.9(a), a tabela istinitosti na Sl. 3.9(b). Dekoder 1-u-2 ima jedan ulaza za podatak w0, ulaz za dozvolu rada E i dva izlaza y1 i y0. Sve dok je E=1, vai: y0=1 za w0=0 ili y1=1 za w0=1. Logike jednaine koje definiu dekoder 1-u-2 su oblika: y0 = Ew0` y1 = Ew0 Logika ema dekodera 1-u-2 prikazana je Sl. 3.9(c).

Sl. 3.9 Dekoder 1-u-2: (a) grafiki simbol; (b) tabela istinitosti; (c) logika mrea.

73

Arhitektura mikrosistema

Dekoder 2-u-4 je predstavljen na Sl. 3.10(a). Uoimo 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 objanjeno, 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. Ponaanje dekodera 2-u-4 definisano je sledeim sistemom logikih jednaina: y0 = Ew1`w0` y1 = E w1`w0 y2 = E w1w0` y3 = E w1w0

Sl. 3.10 Dekoder 2-u-4: (a) grafiki simbol; (b) tabela istinitosti; (c) logika mrea.

U optem sluaju, dekoder n-u-2n moe se konstruisati na osnovu sistema logikih jednaina: yi = Emi, i = 0, ..., 2n, 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 kaemo da je aktivan. Ovo vai za dekodere sa aktivnim visokim naponskim nivoom na izlazu. Meutim, 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. Grafiki simbol dekodera 2-u-4 sa aktivnim niskim naponskim nivoom na izlazu prikazan je na Sl. 3.11(a). Uoimo da je aktivan nizak naponski nivo naznaen kruiim na izlaznim prikljucima dekodera. Tabela istinitosni ovog dekodera je prikazana na Sl. 3.11(b), a logika mrea na Sl. 3.11(c). Uoimo da je logika mrea, po strukturi, identina onoj sa Sl. 3.10(c), s tom razlikom to se sada umesto AND koriste NAND kola. (3.1)

Sl. 3.11 Dekoder 2-u-4 sa aktivnim niskim naponskim nivoom na izlazu.

PRIMER 3.1 Sinteza prekidakih funkcija na bazi dekodera. Shodno jednaini (3.1), dekoder n-u-2n se ponaa kao generator minterma od n promenljivih. Kada je rad dekodera dozvoljen, svaki izlaz dekodera se aktivira tano jednom vrstom tabele istinitosti od n promenljivih. Ako je logika funkcija zadata u obliku tabele istinitosti ili skupom decimalnih indeksa, tada se ona moe direktno realizovati pomou dekodera u vidu kanonike sume-proizvoda. Na primer, razmotrimo funkciju f zadatu skupom decimalnih indeksa

(0,2,3,5) . Karnoova mapa

funkcije f prikazana je na Sl. 3.12(a), a realizacija ove funkcije u obliku minimalne sume-proizvoda na Sl. 3.12(b). Ista funkcija se moe realizovati pomou dekodera 3-u-8, koji generie sve mogue minterme od tri promenljive, i jednog OR kola, koje sumira minterme funkcije f, kao to je prikazano na Sl. 3.12(c). Na ovaj nain, korienjem dekodera odgovarajue veliine, mogue je realizovati proizvoljnu prekidaku funkciju.

74

Komponente digitalnih sistema

PRIMER 3.1 (nastavak )

Sl. 3.12 Sinteza funkcije

(0,2,3,5) : (a) Karnoova mapa; (b) logika mrea; (c) realizacija pomou dekodera
3-u-8.

Iako je opisana tehnika sinteze gotovo trivijalna, ona postaje izrazito neefikasna u sluajevima kada je broj promenljivih vei od nekoliko. Broj minterma, a time i sloenost dekodera, raste eksponencijalno sa poveanjem broja promenljivih, tako da e za tipnu funkciju od veeg broj promenljivih, od svih generisani minterma biti iskorien tek mali deo. Meutim, ima punog smisla koristiti dekoder za realizaciju sistema prekidakih funkcija, s obzirom na mogunost da se isti mintermi koriste kod vie razliitih prekidakih funkcija. Na primer, na slici je prikazano kako se jedan dekoder 3-u-8 i tri OR kola mogu iskoristiti za realizaciju tri razliite prekidake funkcije od istih ulaznih promenljivih. Danas se dekoderi retko koriste za sintezu prekidakih funkcija na nain koji je opisan u ovom primeru. Meutim, izloeni koncept, sinteze zasnovan na sumiranju generisanih minterma, ili u optem sluaju, sumiranju generisanih produktnih lanova, predstavlja osnovu programabilnih logikih kola, kao to su ROM, PLA i PAL strukture. Programabilna logika kola bie razmatrana u poglavlju X.

3.1.5.1

Dekoderske mree

Shodno jednaini (6.1) binarni dekoder n-u-2n se moe realizovati pomou 2n n-to ulaznih AND gejtova. Meutim, sa poveanjem n ukupan broj gejtova i broj ulaza u gejtove postaju ograniavajui faktor, tako da se dekoderi sa veim brojem ulaza obino realizuju u vidu dekoderskih mrea sainjenih od vie manjih dekodera. Razmotriemo dve tehnike konstrukcije dekoderskih mrea: koincidentno dekodiranje i hijerarhijsko dekodiranje. Koincidentno dekodiranje U cilju ilustracije koncepta koincidentnog dekodiranja, razmotrimo realizaciju 8-ulaznog binarnog dekodera pomou 4-ulaznih binarnih dekodera (Sl. 3.13). Neka su W=w7w6...w0 osam ulaz, a Y= y255y254...y0 256 izlazi dekoderske mree 8-u-256. Najpre, podelimo ulaze u dve grupe: WH=w7w6w5w4 i WL=w3w2w1w0. Za realizaciju dekoderske mree koristimo dva dekodera 4-u-16, kao na Sl. 3.13. Grupa ulaza WH se dekodira pomou jednog, a grupa ulaza WL pomou drugog 4-ulaznog dekodera. Neka su H=h15h14...h0 i L=l15l14...l0 16-to bitni izlazi ovih dekodera. Izlazi dekoderske mree 8-u-256 formiraju se pomou 256 2-ulaznih AND kola, tako to se svako AND kolo povezuje sa jednim parom signala (hi, lj). Izlazu yk odgovara izlaz AND kola iji su ulazi hi i lj, pri emu vai: k = 24 i + j. Na primer, izlaz y36 odgovara AND kolu iji su ulazi h2 i l4, s obzirom da vai: 36 = 24 2 + 4. Uoimo da je ulaz za dozvolu rada dekoderske mree, E, povezan sa ogovarajuim ulazom jednog od dekodera 4-u-16, dok je ulaz za dozvolu rada drugog dekodera postavljen na 1. Ako je E=1, tada su svi izlazi iz jednog dekodera jednaki 0, to uslovljava yi=0 za svako i. U optem sluaju, n-to ulazni koincidenti dekoder se realizuje pomou dva n/2 ulazna binarna dekodera i 2n 2-ulaznih AND kola, na nain kako je to prikazano na Sl. 3.14.

75

Arhitektura mikrosistema

Sl. 3.13 8-ulazni koincidentni dekoder.

Sl. 3.14 n-to ulazni koincidentni dekoder.

Hijerarhijsko dekodiranje Druga tehnika za konstrukciju veih dekodera je hijerarhijsko dekodiranje. Radi ilustracije ove tehnike razmotimo realizaciju binarnog dekodera 16-u-4 pomou dekodera 2-u-4. Kao i kod koincidentnog dekodiranja, ulazi dekoderske mree, W=w3w2w1w0, se dele u dve grupe: WH=w3w2 i WL=w1w0. Na osnovu ove podele, moemo realizovati dvo-nivolsku mreu koja se sastoji iz jednog dekodera 2-u-4 u prvom i etiri dekodera 2-u-4 u drugom nivou, kao to je prikazano na Sl. 3.15. Grupa ulaza WH se dekodira u prvom, a grupa ulaza WL u drugom nivou. esnaest izlaza dekoderske mree su rasporeeni u 4 grupe od po 4 izlaza, gde se svaka grupa generie na izlazima jednog dekodera sa drugog nivoa. Princip rada je sledei: Dekodiranjem ulaza WH, dekodera sa prvog nivoa, dozvoljava rad jednog dekodera sa drugog nivoa, koji dekodiranjem ulaza WL aktivira jedan od svojih izlaza. Na primer, ako je W=0110, tada je WH=01, a WL=10. To znai da e dekoder DEC dozvoliti rad dekoderu DEC1 koji s obzirom na WL=10 aktivira svoj izlaz sa indeksom 2, to odgovara izlazu dekoderske mree y4x1+2=y6. Uoimo da je ulaz za dozvolu rada dekoderske mree, E, povezan sa odgovarajuim ulazom dekodera sa prvog nivoa. Ako je E=0, tada su svi izlazi dekodera DEC postavljeni na 0. To znai da je rad svih dekodera sa drugog nivoa zabranjen i da su na svim izlazima dekoderske mree prisutne nule.

76

Komponente digitalnih sistema

Sl. 3.15 4-ulazni hijerarhijski dekoder.

U optem sluaju, n-to ulazni dekoder se moe realizovati u vidu dvo-nivolske dekoderske mree sa jednim (n/2)-ulaznim dekoderom u prvom i 2n/2 (n/2)-ulaznih dekodera u drugom nivou. Takoe, hijerarhijska dekoderska mrea moe imati vie od dva nivoa. Na primer, ako za projektovanje koristimo dekodere 1-u-2, dekoder n-u-2n, imae 2n-1 dekodera 2-u-1, rasporeenih u n nivoa tako da se na svakom nivo dekodira jedan ulazni bit. Drugim reima, ulaz najvee teine dekodira se jednim dekoderom 1-u2, sledei ulaz manje teine dekodira se sa dva dekodera 1-u-2, i tako dalje, sve do ulaza najmanje teine koji se dekodira sa n/2 dekodera 1-u-2. Izlazi dekodera sa odreenog nivoa se koriste kao signali dozvole jednog od dekodera sa sledeeg nivoa. Znai, na svakom sledeem nivou, broj dekodera e biti dva puta vei u odnosu na prethodni nivo. Kao primer opisanog postupka konstrukcije dekodera n-u-2n, na Sl. 3.16 je prikazan dekoder 3-u8 realizovan na bazi dekodera 1-u-2.

Sl. 3.16 3-ulazni hijerarhijski dekoder 3-u-8.

U optem sluaju, n-to ulazni dekoder se moe ralizovati u obliku hijerarhijske mree k-ulaznih dekodera rasporeenih u r nivoa, pri emu vai n=rk. n ulaza dekoderske mree se deli na r grupa od po k ulaza, pri emu se svaka takva grupa dekodira u jednom nivou. Prvi novo sadri jedan dekoder, a broj dekodera u svakom sledeem nivou je 2k puta vei od broj dekodera u prethodnom nivou. Ukupan broj k-ulaznih dekodera potrebih za realizaciju n-to ulazne dekoderske mree iznosi: 1 + 2k + 22k + ... + 2(r-1)k = (2n 1)/(2k 1) Na primer, za n=12 i k=4, broj nivoa je r=3, a broj 4-ulaznih dekodera (212 1)/(24 1) = 273.

77

Arhitektura mikrosistema

3.1.6

Mulitiplekseri

Multiplekser, esto u oznaci MUX, je digitalni preklopnik tj. kolo koje omoguava da se jedan od n izvora podataka logiki povee na zajedniko odredite. Multiplekser ima vei broj ulaza za podatke, jedan ili vie selekcionih ulaza i jedan izlaz. Vrednost selekcionih ulaza odreuje (tj. bira) jedan od ulaza za podatke ija se vrednost, u datom trenutku, prenosi na izlaz. Na Sl. 3.17(a) je prikazan grafiki simbol multipleksera 2-u-1. Ako je s=0, izlaz multipleksera bie f=w0; ako je s=1, izlaz multipleksera je f=w1. Multiplekser 2-u-1 je po funkciji analogan elektro-mehanikom dvo-poloajnom prekidau sa Sl. 3.17(b), kod koga signal s upravlja poloajem preklopnika. Ponaanje multipleksera 2-u-1 opisano je tabelom istinitosti sa Sl. 3.17(c), na osnovu koje lako moemo izvesti logiki izraz oblika suma-proizvoda: f=s`w0 + sw1. Ovom izrazu odgovara logika mrea sa Sl. 3.17(d). Na Sl. 3.17(e) je prikazano kako se multiplekser 2-u-1 moe realizovati pomou transmisionih gejtova.

(a)

(b)

(c)

(d)

(e)

Sl. 3.17 Multiplekser 2-u-1: (a) grafiki simbol; (b) analogija sa elektromehanikim preklopnikom; (c) tabela istinitosti; (d) logika mrea; (e) realizacija pomou transmisionih gejtova.

Na Sl. 3.18(a) je prikazan jedan vei multiplekser, sa etiri ulaza za podatke, w0, , w3 i dva selekciona ulaza s1 i s0. Kao to se moe videti iz tabele istinitosti sa Sl. 3.18(b), kombinacija selekcionih ulaza (s1, s0), interpretirana kao binarna celobrojna vrednost i, za prosleivanje na izlaz f bira ulaz wi. Multiplekseru 4-u-1 odgovara sledei logiki izraz oblika suma-proizvoda: f = s1`s0`w0 + s1`s0w1 + s1s0`w2 + s1s0w3 Ovom izrazu odgovara logika mrea sa Sl. 3.18(c).

(a)

(b)

(c) Sl. 3.18 Multiplekser 4-u-1: (a) grafiki simbol; (b) tabela istinitosti; (c) logika mrea.

Korienjem istog principa, mogue je realizovati i vee multipleksere. Obino, broj ulaza za podatke, n, je stepen broja 2. Multiplekser n-u-1 zahteva log 2 n selekcionih ulaza. Vei multiplekseri se takoe mogu realizovati pomou manjih multipleksera. Na primer, multiplekser n-u-1, gde je n stepen broja 2, moe se

78

Komponente digitalnih sistema

konstruisati pomou n-1 multipleksera 2-u-1 rasporeenih u log 2 n nivoa. Svaki od n/2 multiplekser sa prvog nivoa bira izmeu dva izvora podataka, dok svaki od n/4 multiplekser sa drugog nivoa bira izmeu dva multiplekserska izlaza sa prvog nivoa. Drugim reima, na svakom nivou, nakon prvog, svaki multiplekser se koristi za izbor izmeu 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 pomou multipleksera 2-u-1.

Sl. 3.19 Multiplekser 8-u-1: (a) tabela istinitosti: (b) struktura.

Na Sl. 3.20(a) prikazan je grafiki simbol multipleksera 2xm-u-m. Ovaj simbol na kompaktan nain predstavlja strukturu od m paralelno povezanih multipleksera sa Sl. 3.20(b). Pomou multipleksera 2xm-u-m omoguen je izbor jednog od dva m-bitna operanda. U optem sluaju, multiplekser kxm-u-m sastoji se iz m multipleksera k-u-1 sa zajednikim selekcionim ulazima.

(a)

(b)

Sl. 3.20 Multiplekser 2xm-u-m: (a) grafiki simbol; (b) struktura.

Multiplekser 8-u-1 se moe realizovati i na nain koji je prikazan na Sl. 3.21. U ovom sluaju, za dekodovanje selekcionih signal koristi se dekoder 3-u-8. Iako ovo reenje izgleda jednostavno, ono, meutim, nije lako proirljivo. Drugim reima, broj i veliina gejtova u dekoderu, kao i veliina izlaznih OR gejtova raste sa poveanjem broja ulaza u multiplekser. S obzirom da se gejtovi velikim brojem ulaza realizuju kao stabla gejtova, cena i kanjenje se znaajno poveavaju. Iz tog razloga, reenje sa Sl. 3.14 se koriste samo za male vrednosti n, dok se multiplekseri za vee vrednosti n konstruiu ranije opisanom metodom, korienjem vie nivoa multipleksera 2-u-1 ili 4-u-1.

79

Arhitektura mikrosistema

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

PRIMER 3.2 Krozbar prekida Na Sl. 3.22(a) prikazano je kolo sa dva ulaza, x1 i x2, i dva izlaza, y1 i y2. Kao to je naznaeno isprekidanim linijama, kolo obezbeuje kontrolisanu vezu izmeu ulaznih i izlaznih prikljuaka, tj. omoguava da bilo koji ulaz moe biti povezan na bilo koji izlaz. U optem sluaju, kolo ovog tipa, sa n ulaza i k izlaza, ija je jedina funkcija da obezbedi spregu bilo koji ulaz sa bilo kojim izlazom, zove se krozbar prekida nxk. Ako postoje dva ulaza i dva izlaza, radi se o krozbar prekidau 2x2. Na Sl. 3.22(b) je prikazana realizacija krozbar prekidaa 2x2 pomou multipleksera 2-u-1. Selekcioni ulazi oba multipleksera povezana su na ulazni signal s. Ako je s=0, krozbar povezuje x1 na y1 i x2 na y2; za s=1, veze su ukrtene, tako da se podatak sa ulaza x1 sprovodi na izlaz y2, a podatak sa ulaza x2 na izlaz y1. Krozbar prekidai su korisna kola koja nalaze primenu svuda tamo gde je neophodno povezati dva skupa veza, pri emu se nain sprege menja s vremena na vreme.

Sl. 3.22 Jedna primena multipleksera.

3.1.7

Magistrale

U prethodnom odeljku opisana je konstrukcija multipleksera pomou logikih kola. Iako je takav tip multipleksera u irokoj primeni, upotreba multipleksera sa velikim brojem ulaza moe predstavljati problem, s obzirom da veliki broj veza mora biti doveden do jednog mesta u sistemu, tamo gde je postavljen multiplekser. Na sreu, za reenje ovog problema postoji jedno elegantno reenje, koje se zove magistrala. Za konstrukciju magistrale koristi se komponenta koja se zove tro-statiki bafer (ili tro-statiki drajver) koja ima tri razliita stanja na izlazu: 0, 1 i Z. Vrednost Z predstavlja stanje visoke impedanse, koje se kod svih praktinih primena moe smatrati prekidom veze.

80

Komponente digitalnih sistema

Sl. 3.23 Realizacija magistrale : (a) simbol tro-statikog bafera; (b) tabela istinitosti tro-statikog bafera; (c) dvoulazna magistrala; (d) tabela istinitosti dvo-ulazne magistrale; (e) etvoro-ulazna magistrala; (f) tabela istinitosti etvoro-ulazne magistrale.

Kao to se moe videti sa Sl. 3.23(a) i (b), tro-statiki bafer ima liniju podataka D, liniju dozvole, E, i izlaznu liniju, Y. Uvek kada je E=1, vrednost na izlazu je identina 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 reima, za E=1 tro-statiki bafer se ponaa kao zatvoren, a za E=0 kao otvoren prekida. Magistralu ini skup tro-statikih bafera, od kojih svaki slui za spregu jednog izvora podataka na zajedniku magistralu. Poto u jednom vremenu najvie jedan izvor moe pobuivati magistralu, jer bi u suprotnom dolo do konflikta na magistrali, neophodno je obezbediti da u svakom trenutku najvie jedan trostatiki bafer bude aktivan (E=1). Poto ima n ulaza podataka, ali u svakom trenutku dozvoljava prenos samo jednog podatka na zajedniku 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. Uoimo da je tabela istinitosti dvo-ulazne magistrale, prikazana na Sl. 3.23(d), identina tabeli istinitosti dvo-ulaznog multipleksera. Primenom istog principa, moemo konstruisati magistrale sa veim 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 moe videti, ova magistrala sadri 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-statika bafera koji pobuuju magistralu. U optem sluaju, magistrale se lako realizuju i lako modifikuju kada je se javi potreba da se doda novi izvor podataka ili obrie stari. Iz tog razloga, magistrale se esto koriste za povezivanje veeg broja izvora podataka na zajedniku liniju, bilo da se radi o mikroipu, tampanoj ploi ili lokalnoj raunarskoj mrei.

81

Arhitektura mikrosistema

3.1.8

Demultiplekser

Kao to je reeno 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 prosleuje na jedan od vie izlaza za podatke, zove se demultiplekser. Na Sl. 3.24(a) je prikazan grafiki 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 moe realizovati pomou dekodera 2-u-4, kao to je prikazano na Sl. 3.24(c). U ovom sluaju, ulaz E dekodera se koristi kao ulaz za podatak demultipleksera, dok su izlazi dekodera izlazi za podatke demultipleksera. Binarna kombinacija w1w0 odreuje izlaz koji e biti postavljen na vrednost E. Ako je E=0, tada e svi izlazi dekodera biti 0, ukljuujui i izlaz koji je izabran kombinacijom w1w0; ako je E=1, tada kombinacija w1w0 postavlja 1 na odgovarajui izlaz. Dakle, uvek vai y(w1w0) = E.

Sl. 3.24 Demultiplekser 1-u-4: (a) grafiki simbol; (b) tabela istinitosti; (c) dekoder 2-u-4 kao demultiplekser 1-u-4.

PRIMER 3.3 Vremenski multipleks Par multiplekser-demultiplekser se moe koristiti za prenos informacije od n izvora do n odredita preko jedinstvene komunikacione linije, kao to je to za sluaj n=8, prikazano na Sl. 3.25. Multiplekser bira jedan od n izvora i prenosi podatak tog izvora na komunikacionu liniju. Na drugom kraju linije, demultiplekser usmerava primljeni podatak ka jednom od n odredita. Izbor para izvor-odredite obavlja se preko selekcionih ulaza multipleksera i demultipleksera. Ovakav nain prenosa informacija zove se vremenski multipleks. Uz ogranienje da u bilo kom trenutku moe postojati direktna sprega samo jednog para izvorodredite, vremenski multipleks omoguava znaajno smanjenje broja potrebnih prenosnih linija, to moe predstavljati znaajnu utedu, naroito ako je rastojanje izmeu izvori i odredita podataka veliko.

Sl. 3.25 Princip vremenskog multipleksa.

3.1.9

Koderi

Koder je digitalno kolo koje ima suprotnu funkciju od dekodera. Namena kodera je da kodira ulaynu informaciju u kompaktniji oblik. 3.1.9.1 Binarni koderi

Binarni koder 2n-u-n (Sl. 3.26) kodira (transformie) informaciju od 2n bita u n-bitnu kodnu re. Sa ogranienjem da u bilo kom trenutku samo jedan od 2n ulaza moe imati vrednost 1, na izlazu binarnog kodera generie se nbitni binarni broj koji ukazuje na indeks ulaza ija je vrednost 1. Na Sl. 3.26(a) je prikazana tabela istinitosti kodera 4-u-2. Tabela istinitosti je nepotpuna, jer sadri samo one slogove koji su dozvoljeni na ulazu binarnog kodera. Za sve ostale slogove, odziv kodera je nedefinisan. Uoimo da izlaz y0 ima vrednost 1 ako je w1=1 ili w3=1. Slino, izlaz y1 ima vrednost 1, ako je w2=1 ili w3=1. Na osnovu ovog zapaanja moemo konstruisati logiku mreu binarnog kodera 4-u-2 prikazanu na Sl. 3.26(b). U optem sluaju, binarni koder 2n-u-n moe se

82

Komponente digitalnih sistema

realizovati pomou n (2n-1)-to ulaznih OR kola. Svako OR kolo postavlja jedan izlaz. Ulaz wi je povezan sa jtim OR kolom ako j-ti bit u binarnoj reprezenaciji indeksa i ima vrednost 1.

Sl. 3.26 Binarni koder 2n-u-n.

(a)

(b)

Sl. 3.27 Binarni koder 4-u-2: (a) tabela istinitosti; (b) kolo.

PRIMER 3.4 Jedna primena binarnog kodera Na Sl. 3.28 je prikazan osmo-poloajni mehaniki preklopnik. Preklopnik ima 8 izlaza koji u kodu 1-od-8 kodiraju poloaj kliaa. U ovoj primeni, binarni koder 8-u-3 se koristi za kodiranje poloaj klizaa u oblik trobitnog celog broja.

Sl. 3.28 Primena binarnog kodera.

3.1.9.2

Prioritetni koderi

Kod binarnog kodera opisanog u prethodnom odeljku postoji ogranienje da u bilo kom trenutku najvie jedan ulaz sme biti aktivan. Ako se ovo ogranienje ne potuje, u sluajevim kada je aktivno vie od jednog ulaza, izlaz kodera bie pogrean. Meutim, u mnogim primenama ovo ogranienje se ne moe nametnuti. U takvim sluajevima, umesto kodera treba koristiti prioritetni koder. Kod prioritetnog kodera, svakom ulazu je dodeljen prioritet, a izlaz kodera, interpretiran kao binarni broj, ukazuje na indeks aktivnog ulaza najvieg prioriteta. Za sve vreme dok je aktivan ulaz visokog prioriteta, svi ulazi nieg prioriteta se ignoriu. Na Sl. 3.29 je prikazana tabela istinitosti prioritetnog kodera 4-u-2, pod pretpostavkom da ulaz w3 ima najvii, a w0 najnii prioritet. Izlazi y1 i y0 predstavljaju binarni broj koji identifikuje ulaz navieg prioriteta koji ima vrednost 1. Poto je mogue da ni jedan ulaz nema vrednost 1, predvien je jo jedan, dodatni izlaz, z koji treba da ukae na ovu sitaciju. Naime, ako je barem jedan ulaz jednak 1, tada je z=1; inae, ako ni jedan ulaz nije jednak 1, vai z=0.

Sl. 3.29 Tabela istinitosti prioritetnog kodera 4-u-2.

83

Arhitektura mikrosistema

Rad prioritetnog kodera se najlake moe razumeti ako najpre razmotrimo poslednju vrstu u tabeli istinitosti. Ova vrsta kazuje da ako je w3=1, izlaz se postavlja na y1y0=11. Poto ulaz w3 ima najvii prioritet, vrednosti ulaza w2, w1 i w0 nisu od znaaja. Da bi se ukazalo na injenicu da su njihove vrednosti irelevantne, promenljive w2, w1 i w0 su oznaene 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. Slino, ulaz w1 uslovljava da izlaz bude postavljen na y1y0=01, ali samo pod uslovom da vai w3=w2=0. Konano, ulaz w0 se kodira na izlazu binarnom kombinacijom y1y0=00, ali samo pod uslovom da je w0 jedini aktivan ulaz.

Sl. 3.30 Realizacija prioritetnog kodera.

Prioritetni koder 2 -u-n se moe realizovati kombinovanjem dva modula kao na Sl. 3.30. Prvi modul je kolo za razreavanje prioriteta koje menja na 0 sve ulaze ija je vrednost 1, osim onog iji je prioritet najvii. Drugi modul je standardni binarni koder. Modul za razreavanje prioriteta definisan je sledeim skupom logikih jednaina: zi =
' ' x2 n 1 x2 n 2 K xi' xi , i=0, 1, ..., 2n-1

Prethodni izraz kae da aktivan ulaz xi zadrava vrednost 1 samo ako su svi ulazi vieg prioriteta jednaki 0.

(a)

(b)

Sl. 3.31 Modul za razreavanje prioriteta: (a) paralelna realizacija; (b) iterativna realizacija.

Modul za razreavanje prioriteta se moe realizovati u obliku logike mree sa Sl. 3.31(a). Kod ove realizacije, izlaz i se generie pomou AND kola sa 2n-i ulaza. Ovakvo reenje je adekvatno za module sa malim brojem ulaza, ali je nepraktino za vee 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 vei broj ulaza, mada ispoljava vee kanjenje. Ovo reenje je zasnovano na umnoavanju elija definisanih logikim jednainama: ci-1 = ci + xi zi = ci`xi Prosto, xi=1 postavlja ci-1 na 1, to iskljuuje sve ulaze nieg prioriteta. Hijerajhijska realizacija prioritetnog kodera Ako za realizaciju prioritetnog kodera sa veim brojem ulaza koristimo binarne kodere 2-u-1, postupamo na sledei nain: Najpre, ulaze grupiemo u parove i svaki par ulaza kodiramo jednim prioritetnim koderom 2-u-1. Na taj nain formiramo prvi nivo kodiranja, koji sadri ukupno n/2 kodera 2-u-1, koji na svojim izlazima A

84

Komponente digitalnih sistema

generiu n/2 kandidata za adresni bit najmanje teine x0. Jedan od ovih kandidata bie izabran multiplekserom (n/2)-u-1. Generisanje sledeeg teeg adresnog bita, A1, zahteva kodiranje n/2 izlaza z iz svih kodera sa prvog nivoa. To se radi tako to se ovi z izlazi grupiu 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 generiu 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 odgovarajui adresni bit. Svaki multiplekser bira jedan od izlaza iz grupe od dva kodera korienjem 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 nain 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 pomou kodera 2-u-1 i multipleksera; (c) realizacija na bazi kodera 4-u-2.

PRIMER 3.5. Selekcija prekidnih signala pomou prioritetnog kodera U ovoj primeni, prioritetni koder se koristi za izbor jednog od vie dogaaja koji se mogu desiti u isto vreme. Izabrani dogaaj se predstavlja binarnim celim brojem. Na primer, kod raunarskih sistema razliiti periferijski ureaji, putem prekidnih signala, obraaju se procesoru zahtevima za opsluivanjem. S obzirom da vie ovakvih zahteva moe biti aktivno u isto vreme, neophodno je izabrati jedan koji e biti opsluen. Kao to je prikazano na Sl. 3.33, prioritetni koder se koristi za identifikaciju prekidnog signala najvieg prioriteta.

Sl. 3.33 Primena prioritetnog kodera za izbor signala prekida.

85

Arhitektura mikrosistema

3.1.10 Komparatori magnitude Veina programskih jezika poseduje relacione operatore koji nam omoguavaju da ispitamo izvesne uslove kako bi smo odredili kada odreene akcije treba preduzeti. Kod programskih jezika, uslovi se predstavljaju u obliku relacije izmeu dva entiteta, X i Y, koji mogu biti konstante, promenlive ili aritmetiki izrazi. Relacioni izrazi se formiraju uz pomo tri osnovna operatora: vee (X>Y), jednako (X=Y) i manje (X<Y). Takoe, za svaki od ovih operatora postoji komplementarni operator. Operator vee ili jednako (XY) je komplement od manje, manje ili jednako (XY) je komplement od vee, dok je razliito (XY) komplement od jednako. Rezultat bilo kog od navedenih operatora je logika promenljiva koja moe imati vrednost 0 ili 1. Za izraunavanje realicionih operatora koriste se digitalna kola koja se zovu komparatori magnitude ili samo komparatori. Iako je mogue projektovati komparator za bilo koji operator, u ovom odeljku pokazaemo kao se projektuje univerzalni komparator, koji je se moe koristiti za izraunavanje bilo kog od navedenih operatora. U optem sluaju, n-bitni univerzalni komparator (Sl. 3.34) poredi dva pozitivna cela broja X=xn1,,x0 i Y=yn-1,,y0 i generie tri binarna rezultata, G, E i L, koji imaju sledee znaenje: Ako je izlaz G=1, tada je X>Y; E=1 ukazuje na X=Y, a L=1 na X<Y.

Sl. 3.34 n-to bitni univerzalni komparator magnitude.

Logika mrea komparatora se moe sintetizovati na osnovu tabele istinitosti u kojoj bi za svaku kombinaciju n-bitnih operanada X i Y bile navedene vrednosti izlaza G, E i L. Meutim, takva tabela bi bila previe velika, ak i za relatino malo n. Zato je bolji pristup da se u cilju realizacije kompartora razmatraju pojedinani parovi odgovarajuih bitova dva operanda. Razmotrimo konstrukciju 4-bitnog komparatora. Neka su X=x3x2x1x0 i Y=y3y2y1y0. Definiimo skup internih signala i3, i2, i1 i i0. Signal ik je jednak 1 ako su bitovi sa indeksom k operanada X i Y meusobno jednaki, tj. ik = (xk yk)`. Dva binarna broja su jednaka ako imaju iste bitove. Dakle, E = i3i2i1i0 Izraz za izlaz G se moe izvesti tako to e se bitovi operanada X i Y ispitivati u redosledu poev od bita najvee do bita najmanje teine. Prva bitska pozicija k na kojoj se bitovi xk i yk razlikuju odredie da li je X vee ili manje od Y. Pri tome, ako je xk=0 i yk=1, vai X<Y; ako je xk=1 i yk=0, vai X<Y. Dakle, izlaz G definisan je sledeim logikim izrazom: G = x3y3` + i3x2y2` + i3i2x1y1` + i3i2i1x0y0` Izlaz L se moe odrediti na osnovu druga dva izlaza. Naime, X je manje od Y ako X i Y nisu ni jednaki niti je X vea od Y, tj. L = (E+G)` Logika mrea koja realizuje etvorobitni univerzalni komparator prikazana je na Sl. 3.35. Opisana procedura se moe primeniti za konstrukcije univerzalnog komparatora za proizvoljno n.

Sl. 3.35 Logika mrea 4-bitnog univerzalnog komparatora.

86

Komponente digitalnih sistema

PRIMER 3.6 8-bitni univerzalni komparator Na Sl. 3.36 je prikazano kako se pomou dva 4-bitna univerzalna komparatora i dodatnih logikih kola moe realizovati 8-bitni univerzalni komparator. Operande X i Y moemo napisati u obliku: X = XH 2 4 + XL Y = YH 24 + YL gde su XH= x7x6x5x4, XL= x3x2x1x0, YH= y7y6y5y4 i YL= y3y2y1y0 vie i nie tetrade brojeva X i Y. Najpre, dva 4-bitna komparatora nezavisno porede vie i nie tetrade brojeva X i Y, a zatim se na osnovu njihovih izlaza odreuje konani rezultat. Dva broja su jednaka ako vai XH=YH i XL=YL. X je vee od Y ako je XH>YH ili ako su ako su XH i YH jednaki i pri tome XL>YL. Konano, X je manje od Y ako je via tetrada broja X manja od vie tetrade broja Y ili ako su vie tetrade dva broja jednake i pri tome nia tetrada broja X manja od nie tetrade broja Y.

Sl. 3.36 Realizacija 8-bitnog komparatora pomou 4-bitnih komparatora.

PRIMER 3.7 Realzacija komparatora pomou binarnog sabiraa Na Sl. 3.37 je prikazano kako se 4-bitni univerzalni komparator moe realizovati pomou 4-bitnog sabiraa. Odnos izmeu dva broja X i Y moe se odrediti ako se brojevi najpre oduzmu, a zatim ispita rezultat. Oduzimanje X-Y se ralizuje kao sabiranje broja X i dvojinog komplementa broja Y. Kod oduzimanja neoznaenih binarnih brojeva vai pravilo da je izlazni prenos iz sabiraa, c4, jednak 0 ako je razlika negativna, odnosno 1 ako je razlika nula ili pozitivna. Drugim reima, c4=0 ukazuje na X<Y, a c4=1 na XY. Ovo pravilo se lako moe proveriti na sledeim konkretnim primerima:

Uslov XY se moe razloiti na dva uslova X>Y i X=Y ako se dodatno detektuje kada je rezultat 0. Za detekciju uslova sve nule moe 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 vee od Y.

Sl. 3.37 Realizacija univerzalnog komparatora pomou binarnog sabiraa.

87

Arhitektura mikrosistema

3.1.10.1

Iterativne komparatorske mree

Razmotrimo konstrukciju 16-bitnog komparatora na osnovu 4-bitnih komparatorskih modula. Za ovu namenu, ulazni 16-bitni operandi X=x15x14...x0 i Y=y15y14...y0 se razlau na po etiri 4-bitna vektora: X(i) = xi*4+3xi*4+2xi*4+1xi*4, i=0,..., 3 Y(i) = yi*4+3yi*4+2yi*4+1yi*4, i=0,..., 3 koji se koriste kao ulazi u pojedinane 4-bitne komparatorske module. Poreenje se obavlja sukvesivno (tj. iterativno), poev od bit-vektora najmanje teine, X(0) i Y(0), a rezultat poreenja, izraen promenljivama G, E i L se prenosi u naredni stepen. Ako su bit-vektori X(i) i Y(i) jednaki, preuzima se rezultat iz prethodnog stepena; ako se X(i) i Y(i) razlikuju, rezultat prethodnog stepena se zanemeruje, a stepen i dalje prosleuje rezultat svog poreenja. Izlazi G, E i L su u isto vreme i izazi celokupne komparatorske mree. Da bi se omoguila sprega komparatorskih modula, neophodno je strukturu 4-bitnog komparatora sa Sl. 3.35 proiriti sa tri ulazna signala prenosa, kao na Sl. 3.38. Na Sl. 3.39 je prikazana struktura 16-bitnog iterativnog komparatora magnitude, realizovanog pomou 4-bitnih komparatora sa Sl. 3.39.

Sl. 3.38 4-bitni komparator sa ugraenim signalima ulaznog prenosa.

Sl. 3.39 16-bitna iterativna komparatorska mrea.

Opisani postupak se moe primeniti za konstrukciju iterativnog komparatora sa proizvoljno velikim brojem bitova. Meutim, kao i kod sabiraa sa rednim prenosom, sa poveanjem broj spregnutih bazinih modula propagaciono kanjenje komparatorske mree linearno raste. 3.1.10.2 Hijerarhijske komparatorske mree

Bra struktura za poreenje veih brojeva se moe realizovati ako se umesto iterativne koristi hijerarhijska mrea komparatora. Razmotrimo ponovo konstrukciju 16-bitnog komparatora na osnovu 4-bitnih komparatorskih modula, ali sada tako da komparatorski moduli budu povezani u hijerarhijsku strukturu, kao to je ona sa Sl. 3.40. Svaki od etiri modula sa prvog nivoa, K0 do K3 poredi dva bit-vektora od etiri bita. Izlazi iz prvog nivoa se koriste kao ulazi u jedinstveni komparatorski modul sa drugog nivoa, K4, na sledei nain: Svi izlazi G iz komparatorskih modula sa prvog nivoa ine bit-vektor g koji je povezan na grupu ulaza x komparatora K4. Slino, bit-vektor l, koga ine svi izlazi L iz prvog nivoa, povezan je na grupu ulaza y komparatora K4. Da mrea sa Sl. 3.40 zaista realizuje funkciju 16-bitnog komparatora, moe se pokazati sledeom analizom. Na osnovu definicije komparatorskog modula, izlazi hijerarhijske mree komparatora su:

1 ako je g > l G= 0 inace

88

Komponente digitalnih sistema

1 ako je g = l E= 0 inace

1 ako je g < l L= 0 inace


gde su g i l celi brojevi predstavljeni istoimenim bit-vektorima. S obzirom da su g i l izlazi iz provog nivoa komparatorskih modula, nije mogue da oba bita gi i li u isto vreme imaju vrednost 1. Shodno tome, g>l znai da je 1 najvee teine u vektoru g tea od 1 najvee teine u vektoru s, to odgovara sluajevima kada je X>Y. Slino, g<l sledi iz X<Y. Sluaj g=l se javlja samo ako vai g=l=0, to znai da vai X=Y. Dakle, mrea sa slike realizuje funkciju poreenja brojeva X i Y.

Sl. 3.40 16-bitni hijerarhijski komparator.

3.1.11 Kombinacioni pomerai i rotatori Opracije pomeranja i rotiranja esto se koriste za pakovanje i raspakovanje cifara i karaktera, izdvajanje i umetanje bitskih polja, kao i za realizaciju operacije za rad u pokretnom zarezu. Na primer, svaki procesor poseduje barem nekoliko instrukcija za 1-bitno pomeranje i rotiranje na levo i na desno. Operacije pomeranja mogu se obavljati u logikom ili aritmetikom reimu. Pri logikom pomeranju, bit-vektor se pomera za m bitskih pozicija na levo ili na desno. Kao rezultat ove operacije, m bita sa jedne strane vektora se izbacuje, a m novih bita se ubacuje sa druge strane vektora. Pri aritmetikom pomeranju, pretpostavlja se da bit-vektor koji se pomera predstavlja binarni broj, tako da pomeranje za m pozicija na desno ima isti efekat kao deljenje broja sa 2m, dok je pomeranje za m pozicija na levo isto to i mnoenje sa 2m. Ako bit-vektor predstavlja brojnu vrednost u formatu dvojinog komplementa, tada se prilikom pomeranja na desno, u vektor, sa leve strane, ubacuje m kopija bita znaka. Za sluaj pomeranja na levo, u vektor se, sa desne stane, ubacuje m nula. Dodatno, nakon pomeranja na levo, na poziciju bita najvee teine treba postaviti vrednost koja je jednaka bitu znaka polazne rei. Pri operaciji rotiranja, bitovi se ne gube, jer se bit koji izae sa jedne strane rei, vraa u re sa druge strane. Za obavljanje operacija pomeranja i rotiranja, koriste se digitalne komponente koje se zovu pomerai i rotatori. Ove komponente se konstruiu pomou multipleksera. Na primer, na Sl. 3.41(a) je prikazan grafiki simbol 8-bitnog univerzalnog pomeraa/rotatora, koji moe da obavlja logiko pomeranje ili rotiranje za jednu bitsku poziciju na levo ili na desno. Kolo ima 8-bitni ulaz za podatak D=d7...d0, 8-bitni izlaz za podatak Y=y7...y0, i tri selekcione linije, S2, S1 i S0, preko kojih se vri izbor eljene operacije. Ulaz dl definiu bitsku vrednost koja se prilikom pomeranja na desno postavlja na krajni levi izlaz, y7, dok ulaz dl definie vrednost koja se postaljva na krajnji desni izlaz, y0, prilikom pomeranja na levo. Shodno funkcionalnoj tabeli sa Sl. 3.41(b), kada je S2=0, ulazni podatak se, bez ikakve promene, prenosi na izlaz. Ako je S2=1, nad ulaznim podatkom se obavlja operacija pomeranja ili rotiranja. Smer pomeranja, odnosno rotiranja, zavisi od vrednosti S1: za S1=0 bitski sadraj podatka se pokree na levo, a za S0=1 na desno. Konano, S0 slui za izbor izmeu pomeranja i rotiranja, tako da pri S0=0 pomera/rotator radi kao pomera, a pri S0=1 kao rotator. Na Sl. 3.41(c) su ilustrovani razliiti reimi rada univerzalog pomeraa/rotatora.

89

Arhitektura mikrosistema

Sl. 3.41 Univerzalni pomera/rotator: (a) grafiki simbol; funkcionalna tabela; (c) reimi rada.

Na Sl. 3.42 je prikazana realizacija 8-bitnog univerzalnog pomeraa/rotatora. Kao to se moe videti, pomera/rotator je realizovan tako to je za svaku bitsku poziciju iskorien jedan multipleksera 4-u-1. Ulazi multipleksera su tako rasporeeni da multiplekser koji zauzima poziciju i, moe da bira izmeu ulazih bita i-1, i i i+1. Dodatno, pomera/rotator ima dva multipleksera 2-u-1, koji slue za izbor krajnjeg levog ili krajnjeg desnog bita.

Sl. 3.42 Realizacija 8-bitnog univerzalnog pomeraa/rotatora sa Sl. 3.41 pomou multipleksera.

3.1.11.1

Barel pomera

Pomera/rotator opisan u prethodnom odeljku ima mogunost pomeranja ili rotiranja za jednu bitsku poziciju na levo ili na desno. To znai da ako je potrebno obaviti pomeranje ili rotiranje za vie od jedne bitske pozicije, podatak bi morao biti propueten kroz pomera/rotator vei broj puta. Drugim reima, na ovakvom tipu pomeraa, operacija pomeranja za proizvoljan broj pozicija se izvrava sporo. Da bi se izbeglo ovo veliko kanjenje, kod sistema gde se zahtevaju visoke performanse, koristi se barel pomera, koji je tako projektovan da moe obaviti pomeranje za proizvoljan broj pozicija. n-bitni pomera ovog tipa, gde je n=2m, sadri m=log2n nivoa multipleksera rasporeenih tako da i-ti nivo multipleksera (0im-1) obavlja pomeranje za 2i pozicija, ako je selekciona linija ovog nivoa Si=1. Ako je Si=0, podatak prolazi kroz i-ti nivo nepromenjen. Drugim

90

Komponente digitalnih sistema

reima, ako elimo da pomerimo podatak za B pozicija, gde je B binarni broj bm-1...b0, tada je potrebno postaviti Si=bi, za 0im-1. Na Sl. 3.43 je prikazano jedno mogue reenje barel pomeraa, kod koga je, u cilju pojednostavljenja, broj funkcija sveden samo na jednu, rotiranje na desno. Kao to se moe videti, ovaj 8-bitni barel rotator realizovan je sa tri nivoa multipleksera 2-u-1, koji se kontroliu sa tri selekcione linije, S0, S1 i S0, na sledei nain: 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 trei nivo obavlja rotiranje za etiri bitske pozicije. Za konstrukciju sloenijih pomeraa/rotatora, koji mogu obavljati vei broj razliitih operacija, koristi se u sutini isti potupak, stim da je neophodan vei broj multipleksera sa veim brojem ulaza za podatke.

Sl. 3.43 8-bitni barel rotator na desno: (a) tabela istinitosti; (b) struktura.

3.1.12 ROM memorije ROM memorija (Read Only Memory - ROM) se moe razumeti kao univerzalni logiki element koji, u isto vreme, moe da realizuje vei broj razliitih logikih funkcija definisanih nad istim skupom promenljivih. Uopteno govorei, svaka ROM memorija sadri n rei duine m bita i oznaava se kao m x n ROM. ROM memorija, takoe, ima log2n adresnih linija koje se koriste za adresiranje svake od njenih n rei. Znai, mxn ROM je u stanju da realizuje m proizvoljnih logikih funkcija od log2n promenljivih. Pre nego to preemo na razmatrane strukture ROM memorije uveemo dva nova grafika simbola koji reprezentuju programabilne varijante AND i OR gejtova. Kao to se moe videti u tabeli sa Sl. 3.44, ulazne linije

91

Arhitektura mikrosistema

gejta zamenjene su jedinstvenom linijom koja je preseena sa nekoliko ulaznih linija. U svakom preseku nacrtan je crni kvadrat koji ukazuje na vezu izmeu ulaza i gejta. Ova veza se moe ostvariti na dva naina: u toku fabrikacije komponente, kada se dve linije fiziki povezuju uvek kada je takva veza potrebna, ili nakon fabrikacije, kada se svuda tamo gde veze ne treba da postoje pregore topljivi osigura ugraeni u presecima naznaenim u grafikom simbolu. ROM memorija sa osiguraima se zove programablini ROM ili PROM (Programmable ROM). PROM je veoma praktina komponenta, s obzirom da se moe proizvoditi u velikim serijama a tek kasnije, pre ugradnje u ciljni sistem prilagodi (programira) konkretnoj primeni. PROM se moe razumeti kao poseban sluaj FPGA kola; s obzirom na slinu funkciju, PROM se moe smatrati preteom FPGA kola, koja se karakteriu sloenijom internom organizacijom.
Kombinacioni simbol Programabilni simbol

Sl. 3.44 Programabilni simboli AND i OR kola.

Kao to je ve reeno, tipina n m ROM ili PROM memorija ima k=log2n adresnih linija oznaenih kao Ak-1,...,A0, kao i m izlaznih linija oznaenih kao Fm-1,...,F0. ROM memorija sadri adresni dekoder ku-n i m programabilnih OR kola. Na primer, na Sl. 3.45 je prikazan 16x4 ROM kod koga dekoder 4-u-16 slui za izbor jedne od 16 rei. Unutar programabilnog OR polja, vrednost svakog bita u svakoj rei je odreena postojanjem ili nepostojanjem veze izmeu horizontalnih i vertikalnih linija: poto crni kvadrat u preseku ukazuje postojanje veze (nepregoreni osigura), a na Sl. 3.45 nema ni jednog kvadrata, sadraj prikazane ROM memorije je sve nule.

Sl. 3.45 16x4 ROM.

Na Sl. 3.46 je pokazano kako se 16x4 ROM moe iskoristiti za realizaciju sabiraa/oduzimaa za jednu bitsku poziciju (vidi odeljak 3.1.2). Kao to se moe videti na Sl. 3.46(a), kolo ima jednu selekcionu liniju S, koja odreuje da li se obavlja sabiranje ili oduzimanje dva jednobitna operanda ai i bi, i ulazni prenos iz prethodne bitske pozicije, ci. Kolo generie bit sume/razlike fi i izlazni prenos ci+1. Tabela istinitosti ovog kola prikazana je na Sl. 3.46(b), dok je na Sl. 3.46(c) prikazana realizacija pomou ROM memorije. Uoimo da je svaka 1-ca iz izlaznih kolona tabele istinitosti konvertovana u odgovarajue veze unutar OR polja ROM memorije. Ulazne linije S, ai, bi i ci su preslikani na adresne linije A3, A2, A1 i A0, dok su izlazne linije preslikane na F1 i F0.

92

Komponente digitalnih sistema

Sl. 3.46 16x4 ROM programiran kao sabira/oduzima za jednu bitsku poziciju; (a) sabira/oduzima za jednu bitsku poziciju; (b) tabela istinitosti; (c) ema programiranja ROM memorije.

U primeru sa Sl. 3.46, vano je uoiti da rei ROM memorije sa adresama 0 i 10 nisu potrebne. Naalost, kod ovakvih primena, re u ROM e biti neiskoriena ako su svi izlazi te rei jednake 0. Zbor ovakvog neracionalnog korienja raspoloivih rei, realizacija funkcija sa milim brojem 1-ca pomou ROM memorije je veoma skupa. Sa druge strane, s obzirom da poseduje znaajno veu gustinu bitova u poreenju sa RAM memorijom, ROM memorija predstavlja odlino reenje za uvanje konstantnih podataka. Iz tog razloga, ROM memorije se esto koriste za generisanje upravljakih signala kod upravljakih jedinica standardnih procesora i aplikaciono-specifinih koprocesora. Uz to, ROM memorije su postojane, tj. ne gube memorisani sadraj nakon iskljuenja napajanja i zbog toga se koriste za smetanje programa kod mikroraunarskih sistema. 3.1.13 Programabilna logika polja U odeljku 3.1.13 je napomenuto da ROM memorije predstavlja izrazito neefikasno reenje kada se koristi za realizaciju retkih funkcija, tj. funkcija sa malim brojem 1-ca, jer e u takvim situacijama mnoge rei ROM memorije imati vrednost 0, to dovodi do neracionalnog korienja povrine silicijuma. Programabilna logika polja (PLA Programmable Logic Arrays) su razvijena upravo iz potrebe minimizovanja ovog nepotrebnog gubitka. PLA polja se razlikuju od ROM memorije u nainu realizacije adresnog dekodera: umesto potpunog dekodera, kao to je to sluaj kod ROM memorije, PLA koristi programabilni dekoder, koji se zove AND polje, i koji se moe programirati tako da dekoduje samo one rei koje imaju sadraj razliit od nule. Uz to, PLA moe imati i programabilno izlazno polje koje se koristi onda kada postoji potreba da se komplementira izlazna vrednost. Ovo izlazno polje moe da pobolja efikasnost PLA strukture jer prua veu fleksibilnost prilikom realizacije proizvoljnih funkcija. Na primer, ako data funkcija ima samo nekoliko nula, AND i OR polja mogu

93

Arhitektura mikrosistema

biti programirana tako da realizuju komplement date funkcije, to e zahtevati samo nekoliko rei, a da se onda komplementiranjem u izlaznom polju dobije eljena funkcija.

Sl. 3.47 PLA struktura.

Po pravilu, PLA se karakterie brojem rei, n, i brojem izlaza, m. Uz to, poto broj adresnih linija nee biti jednak log2n, prilikom specifikacije PLA strukture, potrebno je navesti i broj ulaza ili adresnih ulaza, k. Znai, k n m PLA imae: adresne linije Ak-1,...,A0, n rei, gde svaka re predstavlja jedan minterm adresnih ulaza, i m izlaza, Fm-1,...,F0. Takva jedna PLA struktura moe da realizuje m proizvoljnih logikih funkcija k promenljivih sve dok je ukupan broj razliitih AND lanova u skupu od m funkcija manji ili jednak m. Na Sl. 3.47 prikazana je struktura 4 8 4 PLA polja. Kao to se moe videti, PLA sa slike ima etiri ulaza A3, A2, A1 i A0, etiri izlaza F3, F2, F1 i F0, i 8 AND lanova ili rei. Kod ovog PLA polja, svaki AND lan moe da sadri do etiri literala (promenljivih ili njihovih komplemenata), svaka izlazna funkcija moe imati do osam AND lanova, a svaki izlaz moe biti generisan u svojoj pravoj ili komplementarnoj formi. Na Sl. 3.48 pokazano je kako se 4 8 4 PLA moe iskoristiti za realizaciju funkcija ci+1 i si potpunog sabiraa. Treba uoiti da se ovo PLA polje ne moe iskoristiti za realizaciju sabiraa/oduzimaa za jednu bitsku poziciju (Sl. 3.46(a)) zato to ovo kolo zahteva ukupno 13 AND lanova, osam za funkciju fi i pet za funkciju ci+1, to prevazilazi granicu od osam AND lanova raspoloivih u 4 8 4 PLA polju. U cilju realizacije potpunog sabiraa, ulazi xi, yi i ci su dodeljeni adresnim linijama A2, A1 i A0, a izlazi ci+1 i fi izlazima PLA polja F1 i F0. Tabela istinitosti i odgovarajue Karnoove mape prikazane su na Sl. 3.48(a) i (b), dok je logika ema PLA polja, u kojoj su naznaene sve potrebne veze, data na Sl. 3.48(c). Fleksibilnost PLA strukture priblina je fleksibilnosti ROM memorije uz dodatnu prednost u pogledu vee efikasnosti prilikom realizacije proizvoljne logike. Shodno tome, PLA se mnogo ee nego ROM koristi za realizaciju upravljakih jedinica, dok se ROM ee primenjuje za uvanje tabela koeficijenata, programa, test vektora i drugih proizvoljnih, fiksnih podataka.

94

Komponente digitalnih sistema

Sl. 3.48 Realizacija potpunog sabiraa pomou PLA polja: (a) tabela istinitosti; (b) Karnoove mape; (c) ema programiranja. PLA polja.

3.2

Sekvencijalne komponente

Kombinaciona kola, koja su razmatrana u prethodnim poglavljima, imaju osobinu da vrednost svakog njihovog izlaza zavisi iskljuivo od vrednosti signala prisutnih na njihovim ulazima. Osim kombinacionih, postoji jo jedna iroka klasa digitalnih kola, kod kojih vrednosti izlaza zavise ne samo od trenutnih vrednosti ulaza, ve i od ranijeg ponaanja kola. Ovakava kola sadre memorijske elemente koji zadravaju, pamte odnosno memoriu vrednosti logikih signala. Kae se da ukupni sadraj svih memorijskih elemenata u jednom kolu predstavlja stanje tog kola. Kada se promene vrednosti ulaza, kolo ili ostane u istom (tj. tekuem) stanju, ili promeni svoje stanje. Vremenom, kao posledica promena ulaza, kolo prolazi kroz sekvencu stanja. Kolo koja se ponaaju na ovaj nain zovu se sekvencijalna kola. Sekvencijalna kola mogu biti sinhrona ili asinhrona. Asinhrona sekvencijalna kola menjaju svoje stanje uvek kada se desi promena ulaznih vrednosti, dok sinhrona sekvencijalna kola menjaju svoje stanje i izlazne vrednosti samo u fiksnim vremenskim trenucima, koji su odreeni rastuom ili opadajuom ivicom taktnog signala. Na Sl. 3.49 je prikazan vremenski dijagram tipinog taktnog signala. Taktni period je vremenski interval izmeu dve uzastopne promene taktnog signala u istom smeru, tj. izmeu dve rastue ili izmeu dve opadajue ivice taktnog signala. Reciprona vrednost taktnog perioda je taktna frekvencija. irina taktnog impulsa je vreme u toku koga je vrednost taktnog signala jednaka 1. Faktor popune taktnog signala je kolinik irine taktnog impulsa i taktnog perioda.

Sl. 3.49 Taktni signal.

95

Arhitektura mikrosistema

3.2.1

Le kola i flip-flopovi

Elementi koji zadravaju, tj. pamte uspostavljena stanja i po prestanku dejstva pobudnih signala koji su ih prouzrokovali, nazivaju se memorijski elementi. Osnovna karakteristika memorijskih elemenata jeste postojanje stabilnih stanja u kojima mogu ostati neogranieno vreme i koja se mogu menjati pod uticajem ulaznih signala. U digitalnoj tehnici kao memorijski elementi koriste se bistabilana kola koja imaju dva stabilna stanja. Bistabilno kolo moe da memorie informaciju od jednog bita. Dva osnovna tipa bistabilnih kola su: le kola i flip-flopovi. 3.2.1.1 SR le SR le je najjednostavniji memoriski element koji se koristi za projektovanje digitalnih sistema. SR le ine dva unakrsno spregnuta NOR kola. Kao to se moe videti na Sl. 3.50(a), SR le ima dva ulazna signala, signal za setovanje, S, i signal za resetovanje, R i dva izlazna signala Q i Q. SR le ima dva stanja: kada je Q=1 (Q=0), SR le je u setovanom stanju; kada je Q=0 (Q=1), le je u resetovanom stanju. Sve dok su oba ulazna signala, S i R, jednaka 0, SR le ostaje u istom stanju. Na primer, ako je Q=1, izlaz gornjeg NOR kola bie 0, to zajedno sa R=0 dri izlaz donjeg NOR kola na 1. Slino, ako je Q=0, izlaz gornjeg NOR kola bie jednak 1, to zajedno sa R=0, dri 0 na izlazu donjeg NOR kola. Meutim, ako ulaz S (ulaz R) postane jednak 1, SR le prelazi u setovano stanje (resetovano stanje). Le kola

Sl. 3.50 SR le (realizacija pomou NOR kola): (a) logika ema; (b) tabela istinitosti.

Ako oba ulazna signala, S i R, u isto vreme postanu jednaka 1, oba izlazna signala Q i Q postae jednaka 0. Ako se, zatim, jedan od ulaznih signala deaktivira ranije, SR le e prei u stanje odreeno signalom koji je deaktiviran kasnije. Problem koji je karakteristian za SR le nastaje u situaciji kada se oba ulazna signala, S i R, deaktiviraju u isto vreme, s obzirom da se u tom sluaju ne moe predvideti izlaz lea. Ako se oba ulazna signala deaktiviraju tano u isto vreme, izlazi oba NOR kola, u isto vreme, postae 1, to e, zbog povratnih veza usloviti da, nakon nekog kraeg kanjenja, oba izlaza ponovo postanu 0; 0, vraena ulaze NOR kola inicira promenu izlaza na 1, i tako dalje do u beskonanost. Dakle, pod ovim uslovima, SR le poinje da osciluje. Ovakav tip oscilacija se zove kritina trka i javlja se pod uslovom da oba gejta imaju identino kanjenje. Meutim ako kanjenja NOR gejtova nisu ista, jedno od NOR kola bie bre 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. Meutim, bez obzira to pri ovim uslovima oscilacije na javljaju, i dalje moemo smatrati da je novo stanje lea nakon istovremenog deaktiviranja oba ulazna signala nedefinisano, s obzirom da ne moemo znati koji je od dva NOR gejta bri. Da bi se spreilo opisano nedetirministiko ponaanje, moramo obezbediti da signali S i R nikada ne budu deaktivirani u isto vreme. Naalost, ovaj zahtev je teko ostvariti zbog nepoznatog kanjenja logikih mrea koja generiu vrednosti signala S i R. Zbog toga, kada koristimo SR leeve, moramo se drati stroeg ograniena: signali S i R nikada ne smeju biti aktivirani u isto vreme. Na osnovu sprovedene analize SR lea u mogunosti smo da formiramo tabelu istinitosti koja e opisivati ponaanje SR lea (Sl. 3.50(b)). Za svaku kombinaciju ulazni vrednosti, S i R, i tekueg stanja Q, ova tabela definie rezultujue izlazne vrednosti, Q(next) i Q(next).

96

Komponente digitalnih sistema

Sl. 3.51 SR le (realizacija pomou NAND kola): (a) logika ema; (b) tabela istinitosti.

SR le se, takoe, moe realizovati pomou NAND kola. U ovom sluaju, 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 lea. Realizacija SR lea na bazi NAND kola prikazana je na Sl. 3.51. SR le sa dozvolom SR le sa dozvolom je slian SR leu, s tom razlikom da poseduje trei, upravljaki ulazni signal, C, koji dozvoljava ili zabranjuje rad SR lea (Sl. 3.52). To znai da kada je C=1, SR le sa dozvolom se ponaa identino SR leu. Meutim, kada je C=0, setovanje ili resetovanje lea je zabranjeno i kolo ostaje u istom stanju, bez obzira na eventualne promene vrednosti ulaznih signala S i R. Drugim reima, sve dok je C=1, le prati promene ulaznih signala. Onog trenutka kada C postane jednako 0, tekue stanje lea se zamrzava, sve do trenutka kada C ponovo postane 1, kada le nastavlja normalno da funkcionie.

Sl. 3.52 SR le sa dozvolom: (a) grafiki simbol; (b) logika ema; (c) tabela istinitosti.

U radu sa SR leom sa dozvolom neophodno je voditi rauna o sledeem ogranienju: ulazni signali S i R se ne smeju menjati u vremenskom intervalu u okolini opadajue ivice signala C. Ovaj vremenski interval poine u trenutku tsetup pre i traje do vremena thold nakon opadajue ivice signala C. Ukoliko ovo ograniene nije obezbeeno moe doi do nedetirministikog ponaanja lea. S obzirom da je u veini primena upravljaki signal C povezan sa sistemskim taktnom, SR le sa dozvolom se esto naziva taktovani SR le. D le sa dozvolom Projektanti koji koriste SR leeve moraju voditi rauna da ulazi S i R nikada u isto vreme ne postanu jednaki 1. Ovo ogranienje se moe izbei korienjem D lea, koji ima samo jedan ulaz. Kao to je prikazano na Sl. 3.53(b), D le sa dozvolom se konstruie na bazi SR lea tako to se ulaz D vee na ulaz S, a D na ulaz R SR lea. Povezivanjem D i D na ulaze S i R obezbeeno je S i R nikada nee biti jednaki 1 u isto vreme. D le, takoe, ima ulaz C, koji dozvoljava rad D lea, na slian nain kao to je to bio sluaj kod SR lea 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 zadrava poslednju vrednost koju je ulaz D imao pre opadajue ivice signala C. Drugim reima, sve dok je C=1, Q prati promene ulaza D. Kae se da je le transparentan. U trenutku kada C postane jednako 0, tekue stanje lea se zamrzava. Kae se da je le zakljuan. Kao i kod SR lea sa dozvolom, postoji ogranienje da ulaz D ne sme da menja svoju vrednost u vremenu tsetup pre i thold nakon opadajue ivice signala C.

97

Arhitektura mikrosistema

Sl. 3.53 D le sa dozvolom: (a) grafiki simbol; (b) logika ema; (c) tabela istinitosti.

3.2.1.2

Flip-flopovi

Kao to je ve objanjeno, leevi sa dozvolom predstavljaju jednostavne memorijske elemente koji su aktivni, tj. iji je rad dozvoljen, za sve vreme dok je vrednost upravljakog signala C=1. Takvi leevi se esto nazivaju leevi 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 kanjenjem. Leevi osetljivi na nivo se ponaaju kao memorijski elementi tek nakon opadajue ivice upravljakog signala, C, kada zadravaju stanje postavljeno poslednjom promenom ulazne vrednosti koja se desila pre opadajue ivice signala C. Projektanti moraju biti veoma obazrivi kada koriste leeve osetljive na nivo, poto dugi vremenski intervali tokom kojih je le transparentan ponekada mogu omoguiti neeljenim informacijama da uu u le. Na primer, razmotrimo 3-bitni pomeraki registar koga ine tri D lea sa dozvolom, kao to je prikazano na Sl. 3.54(a). U prikazanoj strukturi, ulazni signal X je povezan na ulaz D prvog lea. Izlaz, Q1, prvog lea je povezan na ulaz D drugog lea, a izlaz, Q2, dugog lea na ulaz D treeg lea. Upravljaki ulaz C je povezan na sistemski takt Clk koji sinhronizuje rad svih leeva. Idealno, ovaj pomeraki registar bi trebalo da radi na sledei nain: u toku svakog taktnog impulsa, vrednost X se upisuje u prvi le, vrednost prvog lea se premeta u drugi, a vrednost drugog lea u trei. Meutim, kao to se moe videti na vremenskom dijagramu sa Sl. 3.54(b), pomeranje informacije, koje se zaista deava, ne odgovara oekivanom. Na primer, pretpostavimo da su svi leevi 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 reima, sadraj pomerakog registara bi trebalo da poev od 000, a nakon prvog, drugog i treeg taktnog impulsa redom dobija vrednosti 100, 010 i 001. Meutim, u realnosti deava se neto drugo: poev od sadraja 000, nakon prvog taktnog impulsa, sadraj pomerakog registara se menja na 111, da bi nakon drugog ponovo postao 000, a ova vrednost se zadrava i posle treeg taktnog impulsa. Drugim reima, pomeraki registar se ponaa kao jedinstveni D le koji u svakom taktnom ciklusu memorie vrednost ulaznog signala X.

Sl. 3.54 Neispravno pomeranje u pomerakom registru sa D leevima; (a) logika ema; (b) vremenski dijagram.

98

Komponente digitalnih sistema

Razlog za opisano ponaanje pomerakog registra sainjenog od D leeva lei u injenici da su leevi osetljivi na nivo transparentni za sve vreme trajanja taktnog impulsa. Ukoliko je trajanje taktnog impulsa dovoljno dugo, ulazni podatak X ima dovoljno vremena da proe kroz sve leeve u nizi i javi se na izlazu pomerakog registra. Onog trenutka kada prestane dejstvo taktnog impulsa, svi leevi memoriu istu vrednost, X. Jedna mogua ideja za reenje opisanog problema bila bi da se skrati trajanje taktnog impulsa do iznosa propagacionog kanjenja kroz jedan le. Meutim, kanjenja prilikom setovanja i resetovanja lea nisu ista, a to znai da takt koji pri upisu 1 ispravno pobuuje le, ne bi imao dovoljnu irinu pri upisu 0, ili obrnuto. Takoe, zbog varijacija u procesu fabrikacije, proizvoai leeva ne mogu garantovati tane vrednosti kanjenja. U tom smislu, deklarisana kanjenja predstavljaju oekivane vrednosti za realna kanjenja koja podleu normalnoj raspodeli. Imajui u vidu navedena ogranienja, postoje dva mogua reenja naeg problema: master-slave flip-flop ili flip-flop sa ivinim okidanjem. Master-slave flip-flopovi se realizuju pomou dva lea, 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 lea. Izlaz slave lea je ujedno i izlaz flip-flopa. Unutar flip-flopa, oba lea se pobuuju 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 korienja ovakvih flip-flopova je oigledna: s obzirom da master i slave leevi nikada u isto vreme nisu dozvoljeni, master-slave flip-flop nikada nije transparentan. Kada je Clk=0, dozvoljen je samo master le, a njegov sadraj se prenosi u slave le tek kada taktni signal postane 1. Uoimo da prelazak taktnog signala Clk na vrednost 1, zakljuava master le, tako da se njegov sadraj vie ne moe menjati.

Sl. 3.55 Master-slave flip-flop; (a) logika ema; (b) vremenski dijagram.

Ponaanje master-slave flip-flopa opisano je vremenskim dijagramima sa Sl. 3.55(b). Vremenski dijagrami su nacrtani pod pretpostavkom da je propagaciono kanjenje 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. Meutim, 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 lea, 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. Znai, Qm dobija vrednost 1 u t6+5.0ns. Uoimo da je kanjenje poveano za 1.0ns zbog invertora koji pobuuje ulaz C master lea. Nakon to u t7 slave le postane dozvoljen, na izlaz Qs se postavlja 1 u t7+4.0ns. Slinu 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 rastue ivice taktnog signala, a prenosi u slave le neposredno nakon iste rastue ivice. Za sve praktine primene, moemo smatrati da se vrednost ulaza D upisuje u flip-flop u trenutku delovanja rastue ivice taktnog signala. Ako ponovo konstruiemo 3-bitni pomeraki registar, ali sada umesto D leeva upotrebimo master-slave flip-flopove, dobiemo logiku emu prikazanu na Sl. 3.56(a) kojoj odgovaraju vremenski dijagrami sa Sl. 3.56(b). Uoimo da ovi novi vremenski dijagrami sadre isti taktni signal Clk i isti ulazni signal X kao i vremenski dijagrami sa Sl. 3.55(b), ali su proireni tako da za svaki flip-flop ukljuuju dva talasna oblika: izlaze iz master i slave leeva, Qim i Qis, 1i3. 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 neto 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). Uoimo da kada se u t3 ulazni signal X vrati na 0, master le prvog flip-flopa se setuje (Q1m=0). Nakon sledee rastue ivice takta, u t3+3.0ns Q1s se vraa na 0, dok se u t4+4.0ns Q2m postavlja na 1. Slino, trea ivica taktnog signala resetuje Q2m i setuje Q3m.

Sl. 3.56 Pomeraki registar realizovan master-slave flip-flopovima; (a) logika ema; (b) vremenski dijagram.

Kao to se moe videti, pomeraki registar konstruisan pomou master-slave flip-flopova se ponaa ba kao to treba: sa svakom rastuom ivicom taktnog signala pomera upisani sadraj za jednu poziciju na desno. Znai, svakom taktnom ciklusu odgovara jedno stanje pomerakog registra, koja (za sekvencu vrednosti ulaznog signala sa Sl. 3.56(b)) se poev od stanja 000, menjaju u redosledu 100, 010, 001, da bi se, konano, registra vratio u stanje 000. Flip-flop sa ivinim okidanjem realizuje se pomou tri SR lea: set le, reset le i izlazni le, kao to se moe videti na Sl. 3.57(a). U trenutku delovanja rastue ivice taktnog signala Clk, promena signala Clk se pamti u set leu, ako je D=1, odnosno u reset le, ako je D=0. Drugim reima, signali A i B registruju promene ulaza D

100

Komponente digitalnih sistema

sve dok je Clk=0. Nain rada flip-flopa sa ivinim okidanjem detaljno je objanjen vremenskim dijagramom sa Sl. 3.57(b).

Sl. 3.57 Flip-flop sa ivinim okidanjem: (a) logika ema; (b) vremenski dijagram.

Pretpostavimo da propagaciono kanjenje svih NAND kola ugraenih u flip-flop sa Sl. 3.57(a) iznosi 1.4ns. Dok je Clk=0, oba signala S i R su jednaka 1, to dri izlazni le u tekuem 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 vraa na 1, a Q zadrava tekue 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 rastue 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 opadajue ivice signala Clk u t6, kada se u t6+1.4ns R vraa na 1, u t6+2.8ns B postaje 1 i u t6+4.3ns A postaje 1. Nakon rastue ivice signala Clk, i postavljanja S na 0 u t7+1.4ns, u t7+2.8ns Q se postavlja na 1. Uoimo, 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 postae 0 sa sledeom rastuom ivicom signala Clk. Meutim, ako se posle t8, a pre rastue ivice signala Clk, D promeni, vrednosti signala A i B e registrovati ovu promenu i prosledie je na izlaz Q u trenutku delovanja sledee rastue ivice signala Clk.

101

Arhitektura mikrosistema

Tipovi flip-flopova Postoji vie tipova flip-flopova koji se razlikuju po funkciji i nainu konstrukcije. Opte karakteristike svih flipflopova su sledee: (a) flip-flop menja stanje sa rastuom ili opadajuom 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 nainu na koji flip-flop reaguje na vrednosti koje su postavljene na njegovim ulazima. Flip-flop se opisuje grafikim simbolom, tabelom prelaza, prenosnom funkcijom i tabelom pobude. Tabela sa Sl. 3.58 sadri definicije etiri tipa flip-flopova. Grafiki 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 tekue stanje flip-flopa. Na izlazu Q je uvek prisutna komplementarna vrednost izlaza Q. Takoe, svi flip-flopovi poseduju ulaz za taktni signal. Trougao na ulazu na takt ukazuje da se flip-flop taktuje rastuom ivicom taktnog signala. Suprotno, krui na ulazu za takt ukazuje na taktnovanje opadajuom ivicom.
Tip flip-flopa Simbol Tabela prelaza Prenosna funkcija Tabela pobude

SR

Q(next) = S + RQ sa ogranienjem SR=0

JK

Q(next) = JQ + KQ

Q(next) = D

Q(next) = TQ + TQ

Sl. 3.58 Tipovi flip-flopova.

Svaki flip-flop ima jedan ili dva ulaza podataka. RS flip-flop ima dva ulaza, S (Set) i R (Reset) koji, kada su aktivni, setuju, odnosno resetuju flip-flop. Drugim reima, pri S=1 i R=0, izlaz flip-flopa Q se postavlja na 1, a pri S=0 i R=1 na 0. Slino RS flip-flopu, JK flip-flop, takoe, ima dva ulaza, J i K, koji, kada su aktivni, setuju ili resetuju flip-flop. Dodatno, kada su oba ulaza J i K aktivna u isto vreme, JK flip-flop menja (tj. komplementira) svoje stanje. D flip-flop ima jedan ulaz, D (Data), koji setuje flip-flop ako je 1, odnosno resetuje flip-flop ako je 0. T flip-flop ima jedan ulaz T, koji, kada je aktivan, menja (tj. komplementira) stanje flip-flopa. U drugoj koloni tabele sa Sl. 3.58 date su tabele prelaza, koje predstavljaju skraenu formu tabele istinitosti. U tabeli prelaza, za svaku kombinaciju ulaznih vrednosti i svako tekue stanje flip-flopa, tj. stanje pre rastue ivice taktnog signala, navedeno je sledee stanje flip-flopa, tj. stanje u koje flip-flop prelazi nakon rastue ivice taktnog signala. Tekue stanje flip-flopa oznaeno je sa Q, a sledee sa Q(next). Tabela prelaza se koristi prilikom analize sekvencijalnog kola, kada su vrednosni ulaza u flip-flop poznate, a mi elimo da odredimo stanje flip-flopa nakon rastue ivice taktnog signala. Na bazi tabele prelaza mogu se izvesti prenosne funkcije flip-flopova, koje su prikazane u treoj koloni tabele sa Sl. 3.58. U etvrtoj koloni tabele sa Sl. 3.58 prikazane su tabele pobude koje se koriste prilikom sinteze sekvencijalnih kola. Tabela pobude je inverzna tabeli prelaza i definie ulaze flip-flopa koji su potrebni da bi flip-flop iz datog tekueg stanja, nakon rastue ivice taktnog signala, preao u eljeno sledee stanje.

102

Komponente digitalnih sistema

Tip flip-flopa

Dijagram stanja

SR

JK

Sl. 3.59 Dijagrami stanja razliitih tipova flip-flopova.

Pored grafikih simbola, tabela i funkcija, flip-flopovi se mogu jednoznano opisati i dijagramom prelaza ili grafom stanja, kod koga je svako stanje prikazano krugom, a prelaz izmeu stanja linijom (tj. granom) koja ima strelicu na strani odredinog stanja. Ovakav nain opisa fili-flopova prikazan je u tabeli sa Sl. 3.59. Uoimo da su svakoj grani u grafu stanja pridruene vrednosti ulaznih signala koji uslovljavaju prelaz iz jednog u drugo stanje. Takoe, treba uoiti da isto stanje moe biti i izvor i odredite prelaza. Poto se prelazi deavaju u trenutku delovanja ivice taktnog signala, svako stanje moe se tretirati kao vremenski interval izmeu dve rastue ivice taktnog signala. Iz tabele sa Sl. 3.59 vidimo da dijagrami stanja svih flip-flopova imaju isti broj stanja i isti broj prelaza. Flipflop je u stanju set kada je Q=1, odnosno, u stanju reset kada je Q=0. Uz to, svaki flip-flop moe da pree iz jednog u drugo stanje ili da ostane u istom stanju. Jedina razlika izmeu etiri tipa flip-flopova je u vrednostima ulaznih signala koji iniciraju prelaze. Dijagrami stanja se veoma esto koriste za vizuelni prikaz rada flipflopova, kao i drugih, mnogo sloenijih sekvencijalnih kola.

(a)

(b)

(c)

(d)

Sl. 3.60 Simboli flip-flopova sa asinhronim ulazima: (a) SR flip-flop; (b) JK flip-flop; (c) D flip-flop; (d) T flip-flop.

Svaki flip-flop je obino dostupan u dve varijante: sa ili bez ulaza za direktno, ili asinhrono postavljanje, koji se koriste za setovanje (ulaz SET) i resetovanje (ulaz CLR) flip-flopa nezavisno od ostalih ulaza. Ovi ulazi se koriste za postavljanje flip-flopa u poznato poetno (ili inicijalno) stanje. Na primer, stanje u koje e se flipflop spontano postaviti nakon to je ukljueno napajanje ne moe se predvideti. Zato je neophodno da se pre poetka normalnog, sinhronog rada, flip-flop, posredstvom asinhronih ulaza, postaviti u odgovarajue poetno stanje. Ulazi SET i CLR se zovu asinhroni zato to ne zavise od taktnog signala i zbog toga imaju prioritet nad svim ostalim sinhronim ulazima. Drugim reima, dok je asinhroni ulaz aktivan, vrednosti ostalih ulaza flip-flopa se ignoriu. Dejstvo asinhronog ulaza poinje onog trenutka kada se na ulaz dovede aktivan naponski nivo (0 ili 1), i traje sve dok se ulaz ne deaktivira. Ako flip-flop poseduje oba asinhrona ulaza, SET i CLR, njihovo istovremeno dejstvo nije dozvoljeno. Na Sl. 3.60 su prikazani grafiki simboli flip-flopova sa ulazima za direktno postavljanje sa aktivnim niskom naponskim nivoom, to je naznaeno kruiima na odgovarajuim ulazima. Kod asinhronih ulaza sa aktivnim visokim naponskim nivoom, kruii su izostavljeni.

103

Arhitektura mikrosistema

3.2.2

Konani automati

Formalno, konani automat (ili Finite-State Machine FSM) se definisati kao ureena petorka: <S, I, O, f, h> gde su S, I i O skup stanja, skup ulaza i skup izlaza, respektivno, dok su f i h funkcija sledeeg stanja i funkcija izlaza. Funkcija sledeeg stanja, f, definie se kao preslikavanje S I S. Drugim reima, funkcija f svakom paru stanja i ulaznog simbola pridruuje simbol stanja. Model konanog automata podrazumeva da je vreme podeljeno na intervale fiksnog trajanja, a da se prelaz iz jednog u drugo stanje deava na poetku svakog vremenskog intervala. Znai, za dato stanje i ulazne vrednosti u tekuem vremenskom intervalu, funkcija f definie u kom e stanju konani automat biti u toku sledeeg vremenskog intervala. Funkcija izlaza, h, odreuje izlazne vrednosti u tekuem stanju automata. Postoje dve vrste konanih automata, kojima odgovaraju dve razliite definicije funkcije izlaz h. Jedna vrsta se zove Murov, a druga Milijev konani automat. Kod Murovog konanog automata, funkcija h je definisana kao preslikavanje: S O, to znai da je svakom stanju pridruen izlazni simbol tj. izlaz zavisi samo od tekueg stanja. Kod Milijevog konanog automata, funkcija h je preslikavanje: S I O. U ovom sluaju, u svakom stanju, izlazni simbol je odreen parom stanje ulazni simbol, tj. izlaz zavisi od tekueg stanja i ulaza. Shodno definiciji konanog automata, skupovi S, I i O mogu imati proizvoljan broj simbola. Meutim, kod praktinih problema, barata se samo sa binarnim promenljivim, binarnim operatorima i binarnim memorijskim elementima. Iz tog razloga, funkcije f i h se definiu kao Bulove funkcije koje se realizuju uz pomo logikih kola. Znai, konani automat moe modelirati bilo koje sekvencijalno kolo sa k ulaznih signala A1, ..., Ak, m flipflopova Q1, ..., Qm i n izlaznih signala Y1, ..., Yn, kao to je prikazano na Sl. 3.61. Za jedno ovakvo sekvencijalno kolo, S, I i O predstavljaju unakrsni proizvod flip-flopova ili signala, na sledei nain: S = Q1 Q2 ... Qm I = A1 A2 ... Ak O = Y1 Y2 ... Yn S obzirom da vrednost flip-flopa ili signala moe biti samo 0 ili 1, svaki element iz S, I i O predstavljen je kao niz nula i jedinica duine m, k i n, respektivno.

Sl. 3.61 Model konanog automata.

Vremenski interval konanog automata definisan je taktnim signalom i zove se taktni ciklus. Svaki konani automat moe se realizovati uz pomo flip-flopova i logikih kola. Sadraj flip-flopova definie stanje konanog automata, dok su funkcije f i h realizovane u obliku kombinacionih mrea. Uopteni blok dijagrami konanih automata Murovog i Milijevog tipa, prikazani su na Sl. 3.62.

104

Komponente digitalnih sistema

Sl. 3.62 Tipovi konanih automata: (a) Murov; (b) Milijev.

3.2.3

Sinteza sekvencijalne logike

Opta procedura za sintezu sekvencijalne logike prikazana je na Sl. 3.63. Kao to vidimo, ova procedura poinje opisom u prirodnom jeziku, eventualno dopunjenim sa jednim ili vie vremenskih dijagram, ili ponekada, formalnim opisom u jeziku kao to je VHDL ili Verilog. Poev od ovog opisa, prvi korak u procesu sinteze sastoji se od razvoja dijagrama stanja i konvertovanja dijagrama stanja u tabelu sledeeg stanja i tabelu izlaza. Zatim sledi optimizacija broja stanja, koja se sastoji u izbacivanju redundantnih i spajanju ekvivalentnih stanja. Redukcija broja stanja je bitna zato to manji broj stanja zahteva manji broj flip-flopova. S obzirom da svako stanje mora biti predstavljeno n-torkom vrednosti flip-flopova, neophodno je svim stanjima dodeliti razliite binarne n-torke. Ovaj postupak se zove kodiranje stanja i predstavlja bitan korak sinteze, zato to pravilno kodiranje moe znaajno da pojednostavi ulaznu i izlaznu logiku. Nakon kodiranja stanja, u mogunosti smo da izvedemo binarne forme Bulovih jednaina sledeeg stanja i izlaza.

105

Arhitektura mikrosistema

Imajui u vidu da e razliiti tipovi flip-flopova zahtevati razliitu koliinu logike za realizaciju funkcija sledeeg stanja, sledei zadatak sinteze sastoji se u izboru tipa flip-flopa. Nakon izbora tipa flip-flopova, spremni smo za izvoenje jednaina za pobudu ulaza flip-flopova, to obuhvata i optimizaciju logike realizacije pobudnih i izlaznih Bulovih jednaina, to e nam omoguiti da nacrtamo logiku emu, koja e nam posluiti kao osnova za generisanje vremenskih dijagrama. Poslednji korak u postupku sinteze sekvencijalne logike je simulacija logike eme i poreenje izlaza sa izvedenim vremenskim dijagramima kao bi se utvrdilo da li se logika ema zaista realizuje eljeno ponaanje. U narednim odeljcima, procedura sinteze sekvencijalne logike bie opisana sa vie detalja. 3.2.3.1 Unos modela konanog automata

Projektovanje sekvencijalne logike poinje generisanjem dijagrama stanja i/ili tabela sledeeg stanja i izlaza. Inicijalno, ove tabele moraju biti izvedene na osnovu opisa ponaanja sekvencijalnog kola datog u prirodnom jeziku. Naalost opisi u prirodnom jeziku esto mogu biti dvosmisleni, nepotpuni i obino su fokusirani samo na glavnu funkciju, bez nabranja svih moguih sluajeva ponaanja konanog automata. Iz tog razloga, opis u prirodnom jeziku se ponekada dopunjuje vremenskim dijagramima. Meutim, i vremenski dijagrami mogu biti nepotpuni, zato to oni ne pokazuju odziv kola za sve mogue ulazne sekvence, ve samo na one najvanije. Znai, u veini sluajeva, bolje je umesto opisa u prirodnom jeziku koristiti jezik za opis hardvera, kao to je VHDL ili Verilog, ili neku grafiku formu kao to je dijagram toka ili ASM dijagram. Bez obzira na to koji se od navedenih naina koristi za modelovanje konanog automata, konstrukcija modela konanog automata predstavlja kreativni deo procesa projektovanja.

PRIMER 3.8 Obostrani broja po modulu 3 Problem: Izvesti dijagram stanja za obostrani broja po modulu 3. Broja ima dva ulaza: dozvola brojanja (C) i smer brojanja (D). Kada je C=1, broja broji u smeru koji je odreen ulazom D, dok za C=0, broja ne broji. Broja broji unapred ako je D=0, odnosno, unazad ako je D=1. Broja ima jedan izlaz, Y, koji se postavlja na Y=1 kada pri brojanju unapred broja doe u stanje 2, odnosno u stanje 0, kada broji unazad. Simbol brojaa je prikazan na Sl. 3.64(a).

1 =1 D 10 C D= C

1 =1 0 D 1 C D= C

1 =1 D 10 C D= C

1 =1 0 D 1 C D= C

Sl. 3.63 Procedura sinteze konanih automata Sl. 3.64 Dijagram stanja za broja po modulu 3: (a) simbol brojaa; (b) delimini dijagram stanja (brojanje napred i nazad); (c) delimini dijagram stanja (promene smera brojanja); (d) konani dijagram stanja.

106

Komponente digitalnih sistema

PRIMER 3.8 (nastavak ) Reenje: Na osnovu opisa problema, moemo zakljuiti da broja zahteva barem dva flip-flopa, s obzirom da mora da pamti tri cifre: 0, 1 i 2. Uz to, poto broja moe da broji i unapred i unazad, potrebne su dve sekvence: napred i nazad. Sekvenca napred sastoji se od tri stanja: u0, u1 i u2, pri emu sve dok je CD=10, broja prolazi rednom kroz stanja u0, u1 i u2 i vraa se u poetno stanje u0. Slino, kada broja broji unazad (CD=11), on takoe prolazi kroz tri stanja, koja su u ovom sluaju d0, d1 i d2. U sekvenci nazad, redosled stanja kroz koja broja prolazi je d2, d1 i d0, a nakon stanja d0 sledi povratak u stanje d2. Sekvence napred i nazad prikazane su na Sl. 3.64(b). Prilikom kreiranja dijagrama stanja za broja, moramo voditi rauna o mogunosti da broja promeni smer brojanja za vreme dok broji drugim reima, potrebno je omoguiti da vrednost ulaza D moe biti promenjena pri C=1. Iako ovaj sluaj nije eksplicitno naveden u postavci problema, moemo usvojiti da e nakon promene smera brojanja, broja nastaviti brojanje u suprotnom smeru poev od odgovarajueg stanja iz nove sekvence. Znai, ako se D promeni sa 0 na 1, broja prelazi iz stanja ui u stanje d(i-1)mod3, za i=0, 1 i 2. U suprotnom, ako se D promeni sa 1 na 0, broja e iz stanja di prei u stanje u(i+1)mod3, za i=0, 1 i 2. est novih prelaza, koji su posledica promene smera brojanja, dodati su u dijagram stanja sa Sl. 3.64(c). Meutim, dijagram stanja nee biti potpun ako se ne ukljui sluaj kada se promenom ulaza C sa 1 na 0 zabrani brojanje. U tom sluaju pretpostaviemo da broja ostaju u zateenom stanju sve dok C ponovo ne postane 1. Prelazi koji odgovaraju ovom ponaanju, dodati su u dijagram stanja sa Sl. 3.64(d), koji predstavlja i konani oblik dijagrama stanja obostranog brojaa po modulu 3. Iako je dijagram stanja izveden u prethodnom promeru potpun, vano je napomenuti da ovaj dijagram ipak ne sadri minimalan broj stanja. U dijagramu sa Sl. 3.64(d) lako se uoavaju razliiti sluajevi ponaanja brojaa. Meutim, kod projektovanja sekvencijalne logike, jasnoa prikaza obino nije cilj, ve su primarni ciljevi cena i performanse realizacije. Imajui to u vidu, u sledeem odeljku bie razmatran postupak za minimizaciju broja stanja. 3.2.3.2 Minimizacija stanja

Cilj minimizacije stanje je smanjenje broja stanja sekvencijalnog kola. Sekvencijalno kolo sa manjim brojem stanja zahteva manji broj flip-flopova, a time je i cena realizacije kola nia. Treba napomenuti da smanjenje broja stanje ne mora obaveyno da smanji broj potrebnih flip-flopova, osim ako se broj stanja ne smanji ispod tekueg nivoa stepena dvojke. Na primer, sekvencijalno kolo sa m stanja zahteva log 2 m flip-flopova. S obzirom da e smanjenje broja stanja za zahtevati log 2 (m ) stanja, mora biti takav broj da je log 2 m log 2 (m ) 1. Razmotrimo, na primer, kolo sa m=6 stanja. Smanjenje broja stanja na pet nee smanjiti broj flip-flopova zato to je log 2 6 = log 2 5 =3. Sa druge strane, smanjenje broja stanja na etiri smanjie broj flipflopova za 1, zato to je log 2 4 =2. Meutim, ak iako se smanjenje broja stanje nema za posledicu smanjenje broja flip-flopova, kolo sam manjim brojem stanja imae jednostavnije funkcije sledeeg 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 korienja gejtova sa manjim brojem ulaza je u tome to su takvi gejtovi bri, to znai da e i kanjenje sekvencijalnog kola biti manje, a to nam omoguava poveanje taktne frekvencije i ukupnih performansi kola. U optem sluaju, minimizacija stanja je zasnovana na konceptu ekvivalentnog ponaanje konanih automata. Dva konana automata su ekvivalentna ako za svaku sekvencu ulaznih simbola generiu istu sekvencu izlaznih simbola. U nekim sluajevima, ekvivalentni konani automati mogu imati razliiti broj stanja i mogu prolaziti kroz razliita stanja za istu ulaznu sekvencu, ali, bez obzira na to, sve dok generiu istu izlaznu sekvencu oni se smatraju ekvivalentnim. Dakle, moemo zakljuiti da u konanom automatu sa veim brojem stanja postoje stanja koja su ekvivalentna i mogu se spojiti u jedno stanje. Evivalentnost stanja moe se definisati na osnovu vrednosti izlaza i sledeeg stanja koje vae u stanjim ija se ekvivalentnost ispituje. Formalno, dva stanja sj i sk su ekvivalentna, sj sk, ako i samo ako su ispunjena sledea dva uslova: Oba stanja, sj i sk, generiu iste izlazne simbole za svaki ulazni simbol i, tj. h(sj,i)=h(sk,i). Oba stanja imaju ekvivalentna sledea stanja za svaki ulazni simbol i, tj. f(sj,i) f(sk,i).

107

Arhitektura mikrosistema

Na osnovu definicije ekvivalentnosti stanja, moemo formulisati jednostavnu proceduru za minimizaciju stanja konanog automata. Shodno ovoj proceduri, najpre se stanja konanog automata grupiu u klase ekvivalencije, a zatim se konstruie novi konani automat, sa minimalnim brojem stanja, ije svako stanje reprezentuje jednu klasu ekvivalencije polaznog automata. U praksi, ova procedura se obavlja u dva koraka. U prvom koraku, porede se izlazni simboli za svako stanje i svaki ulazni simbol. Cilj ovog poreenja je grupisanje stanja na takav nain da sva stanja iz iste grupe generiu isti izlazni simbol za svaki ulazni simbol. U drugom koraku, grupe se dele na podgrupe na takav nain da za isti ulazni simbol, sledea stanja svih stanja iz iste podgrupe pripadaju istoj grupi. U nekim sluajevima, nakon podele, sledea stanja svih stanja iz iste podgrupe iako u istoj grupi nee pripadati istoj podgrupi. U takvim sluajevima, drugi korak procedure mora biti ponovljen i to, ako je potrebno, vie puta, sve dok je dalja podela mogua. Konano, svaka podgrupa predstavlja klasu ekvivalencije kojoj odgovara jedno stanje u minimalnom konanom automatu. Procedura minimizacije stanja bie ilustrovana na primeru obostranog brojaa po modulu 3.

PRIMER 3.9 Minimizacija stanja konanog automata Problem: Nai minimalni konani automat obostranog brojaa po modulu 3. Reenje: Kao to se vidi sa Sl. 3.64(d), obostrani broja po modulu 3 ima est stanja. Dijagrama stanja sa Sl. 3.64(d), moemo konvertovati u tabelu sledeeg-stanja/izlaza, kao to je prikazano na Sl. 3.65(a). Polazei od ove tabela, u mogunosti smo da prethodno opisanu proceduru primenimo na skup stanja sa Sl. 3.65(b). Uoimo da treba poeti od skupa svih stanja, a zatim odrediti izlazne vrednosti za svaku kombinaciju ulaznih vrednosti. Za ulazne vrednosti CD=0X, 10, 11, vrednost izlaznog signala bie Y=0,0,1 ili 0,0,0 ili 0,1,0 (odgovara razliitim kolonama u tabeli izlaznih vrednosti). Na osnovu toga, moemo kreirati tri grupe: G0={u0,d0}, G1={u1,d1} i G2={u2,d2}. Zatim, za svako stanje u svakoj grupi i svaki skup ulaznih vrednosti odreujemo sledee stanje. Kao to se moe videti, za svaku vrednost ulaznih signala, sledee stanje svakog stanja iz bilo koje grupi pripada istoj grupi. Znai, dalja podela nije potrebna. Poto svaka grupa predstavlja klasu ekvivalentnih stanja, grupe G0, G1 i G2 postaju stanja s0, s1 i s2 u minimalnom konanom automatu. Tabela stanja/izlaza minimalnog konanog automata prikazana je na Sl. 3.65(c), a dijagram stanja na Sl. 3.65(d).

CD =1 1 CD =1 0

Sl. 3.65 Redukcija stanja obostranog brojaa po modulu 3: Polazna tabela stanja; (b) podela na klase ekvivalencije; (c) konana tabela sledeeg-stanja/izlaza; (d) minimalni konani automat.

1 =1 CD 0 =1 CD

108

Komponente digitalnih sistema

3.2.3.3

Kodiranje stanja

Cena i kanjenje ulazne i izlazne logike konanog automata znaajno zavise od naina na koji su simbolikim stanjima pridruene Bulove vrednosti. Na primer, konani automat sa etiri stanja s0, s1, s2 i s3 moe se realizovati sa dva flip-flopa, koji bi sadrali vrednosti 00, 01, 10 ili 11. U ovom sluaju, postoji 4!=24 moguih kodiranja etiri stanja, kao to je prikazano u tabeli sa Sl. 3.66. U optem sluaju, broj razliitih kodiranja n stanja moe biti vei od n!, poto za kodiranje stanja moemo koristiti vie od log2n bita. Iz tog razloga, eksplicitno ispitivanje i procena cene i kanjenja za svako pojedinano kodiranje moe biti naporan posao, ak i za mali broj stanja. U cilju prevazilaenja ovog problema, projektanti koriste razliite strategije ili heuristike za kodiranje stanja. U nastavku ovog odeljka bie objanjene tri najee koriene strategije: minimalna promena bitova, prioritetna susednost i one-hot kodiranje. Strategija minimalne-promene-bitova dodeljuje Bulove vrednosti stanjima na takav nain da je ukupan broj bita koji se menja prilikom promene stanja minimalan. Drugim reima, ako svakoj grani u grafu stanja dodelimo teinu jednaku broju bita na kojima se polazno i odredino stanje razlikuju, optimalno kodiranje je ono sa najmanjom sumom teina grana u grafu stanja.
Redni broj 1 2 3 4 5 6 7 8 s0 00 00 00 00 00 00 01 01 s1 01 01 10 10 11 11 00 00 s2 10 11 01 11 00 10 10 11 s3 11 10 11 01 10 01 11 10 Redni broj 9 10 11 12 13 14 15 16 s0 01 01 01 01 10 10 10 10 s1 10 10 11 11 00 00 01 01 s2 00 11 00 10 01 11 00 11 s3 11 00 10 00 11 01 11 00 Redni broj 17 18 19 20 21 22 23 24 s0 10 10 11 11 11 11 11 11 s1 11 11 00 00 01 01 10 10 s2 00 01 01 10 00 10 00 01 s3 01 00 10 01 10 00 01 00

Sl. 3.66 Dvadesetetiri razliita kodiranja etiri stanja

Na Sl. 3.67(a) i (b) prikazana su dva kodiranja istog grafa stanja. U kodiranju sa Sl. 3.67(a), postoje dve grane sa teinom 1 i dve grane sa teinom 2, to rezultuje u ukupnoj teini od 6. Sa druge strane, kod kodiranja sa minimalnom-promenom-bitova (Sl. 3.67(b)), sve etiri grane imaju teinu 1. Kodiranje sa Sl. 3.67(b) ima minimalnu teinu zato to se kodovi bilo koja dva stanja moraju razlikovati barem na jednoj bitskoj poziciji. Strategija minimalne-promene-bitova se zasniva na zapaanju da je za svaki bit koji se menja pri promeni stanja potrebno setovati ili resetovati jedan flip-flop, to u logici sledeeg stanja zahteva barem jedan dodatni AND i jedan dodatni OR gejt, za svaki flip-flop. to je broj bita koji se menjaju manji, to e biti potrebno manje dodatne logike.

Sl. 3.67 Dva razliita kodiranja 2-bitnog binarnog brojaa: (a) trivijalno kodiranje; (b) kodiranje sa minimalnompromenom-bitova.

Druga strategija za kodiranje stanja konanog automata, prioritetna-susednost, dodeljuje susedne kodne rei stanjima koja imaju zajedniki izvor (prethodno stanje), odredite (sledee stanje) ili izlaz. Dve kodne rei su susedne ako se razlikuju samo na jednoj bitskoj poziciji. Najvii, tj. prvi, nivo prioriteta se daje stanjima koja za datu ulaznu re imaju isto sledee stanje. Opravdanje za ovakav nain dodele prioriteta nalazi se u injenici da e se tokom minimizacije funkcija sledeeg stanja ista kodna re javiti u dva susedna polja Karnoove mape, to e omoguiti da se za svaku 1 u kodu sledeeg stanja broj literala u izrazu za funkciju smanji za jedan. Sledei, nii, tj. drugi, nivo prioriteta dodeljuje se stanjima koja imaju isto prethodno stanje, s obzirom da e se kodovi takvih stanja, takoe, nai u susednim poljima Karnoove mape. Uoimo da e se to desiti samo pod uslovom da se ulazne vrednosti, koje iniciraju prelaz, razlikuju samo na jednoj bitskoj poziciji. Konano, trei nivo prioriteta se daje stanjima koja za istu ulaznu vrednosti imaju istu izlaznu vrednost, s obzirom da e kondiranje ovakvih stanja susednim kodnim reima kreirati 1-kub u Karnoovoj mapi prilikom minimizacije funkcija izlaznih signala. Na Sl. 3.68(a) prikazan je dijagram stanja sa etiri stanja. Uoimo da stanja s1 i s2 zadovoljavaju uslov prvog nivoa prioriteta: ulazna vrednost 0 oba stanja, s1 i s0, vodi u isto stanje s3. Takoe, stanja s1 i s2 zadovoljavaju i kriterijum za drugi nivo prioriteta, jer su sledea stanja istog stanja, s3. Stanja s0 i s1 daju isti izlaz, 0, za isti ulaz,

109

Arhitektura mikrosistema

0, te stoga zadovoljavaju uslov treeg nivoa prioriteta, to je sluaj 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 vie grupa od dva, ili, u optem sluaju, vie stanja. Prilikom kodiranja, tei se da kodne rei dodeljene stanjima iz iste prioritetne grupe budu susedne. Meutim, ovaj zahtev nee biti mogue ostvariti u svim sluajevima i tada prednost dobijaju prioritetne grupe vieg prioriteta. Na Sl. 3.68(c) prikazano je jedno mogue 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) mogue kodiranje.

Trea strategija kodiranja stanja, one-hot kodiranje, koristi redundantno kodiranje kod koga se svakom stanju dodeljuje jedan flip-flop. Drugim reima, svako stanje se prepoznaje po 1 u flip-flopu koji je pridruen tom stanju, dok pri tome svi ostali flip-flopovi imaju vrednost 0. To praktino znai da e pri prelazu iz jednog u neko drugo stanje, flip-flop koji odgovara prvom stanju biti resetovan, dok e flip-flop pridruen drugom stanju biti setovan. Ime ovog naina kodiranja, one-hot, asocira na vru krompir koje prelazi iz ruke u ruku, tj. na 1cu koja prelazi iz flip-flopa u flip-flop. Oigledno, one-hot nain kodiranja je praktino primenljiv samo kod konanih automata sa malim brojem stanja. U optem sluaju, najbolja strategija za kodiranje stanja jeste odrediti nekoliko alternativnih kodiranja, za svako kodiranje proceniti cenu i kanjenje, i onda izabrati najbolje.

PRIMER 3.10 Kodiranje stanja brojaa po modulu 3 Problem: Za obostrani broja po modulu 3, definisan minimalnom tabelom sledeeg-stanja/izlaza sa Sl.
3.65(c), nai kodiranje koje minimizuje cenu i kanjenje kombinacione logike brojaa.

Reenje: Kao to se moe videti sa Sl. 3.65(d), broja ima samo tri stanja, za ije kodiranje se koriste dva bita. U skupu od tri stanja postoje tri para stanja. Bez obzira na nain kodiranja, dva od tri para stanja uvek e sadrati susedne kodne rei, dok e se kodne rei dodeljene stanjima iz treeg para razlikovati na obe bitske pozicije. Takoe, poto sa dva bita, Q1 i Q0, moemo kodirati etiri stanja, jedna dvo-bitna kombinacije ostae neiskoriena. U startu, eliminisaemo kombinaciju Q1Q0=11, poto emo na taj nain smanjiti broj 1-ca prilikom logike minimizacije. Jedno mogue kodiranje je kodiranje A sa Sl. 3.69. Kodiranje A je u skladu sa strategijom kodiranja minimalna-promena-bitova.

Sl. 3.69 Mogua kodiranja stanja obostranog brojaa po modulu 3.

Ako koristimo strategiju prioritetne-susednosti, primetiemo da ni jedan od parova stanje ne zadovoljava kriterijume prvog i drugog nivoa prioriteta. Shodno kriterijumu treeg nivoa prioriteta, susedne kodne ree bi trebalo dodeliti stanjima s0 i s1, kao i stanjima s1 i s2, to je ve zadovoljeno kodiranjem A. Kod ovog jednostavnog problema, moemo, takoe, koristiti strategiju koja pojednostavljuje dekodiranje stanja, tako to emo kombinacije Q1Q0=01 i Q1Q0=10 dodeliti stanjima s0 i s2, koja oba daju Y=1. Ovakav nain kodiranja, oznaen kao kodiranje B, prikazan je na Sl. 3.69. Osnovna prednost kodiranja B je u tome to prilikom realizacije izlazne logike smanjuje broj potrebnih ulaza u AND gejt. Konano, trea strategija, one-hot, daje kodiranje C sa Sl. 3.69.

110

Komponente digitalnih sistema

Kodiranja A, B i C predstavljaju kandidate izmeu kojih treba izabrati jedno reenje. Konani izbor emo izvriti nakon analize cene i kanjenja implementacije ulazne i izlazne logike koje odgovaraju svakom od tri alternativna kodiranja. U tom cilju, izveemo jednaine sledeeg stanja i izlaza i proceniti cenu i kanjenje odgovarajuih realizacija u vidu dvo-nivolske NAND mree. Da bi smo pojednostavili analizu, usvojiemo da su prave i komplementarne vrednosti promenljivih uvek dostupne i da ne zahtevaju dodatni hardver. Ova pretpostavka je uvek tana za promenljive koje se uvaju u flipflopovima, 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 kanjenje i cenu, i mogu biti zanemareni prilikom analize jer ne utiu na rezultat poreenja dva alternativna reenja. Na Sl. 3.71 je prikazano kako se procenjuje cena i kanjenje za kodiranje A. Najpre su kreirane Karnoove mape za funkcije sledeeg stanja i izlaza (Sl. 3.71(a) i (b)), a zatim su na osnovu Karnoovih mapa izvedene jednaine pobude flip-flopova i jednaina izlaza (Sl. 3.71(c)). Konano, svaka od ovih jednaina je realizovana u obliku dvo-nivolske NAND mree. Kao to se moe videti, ukupna cena je jednaka cena(Q1)+cena(Q2)+cena(Y) =24+24+18=66, maksimalno ulazno kanjenje iznosi 4.0ns, dok je izlazno kanjenje jednako 3.6ns. Na Sl. 3.71 je prikazana slina analiza koja se odnosi na kodiranje B. Kao to se moglo i oekivati, cena i kanjenje izlazne logike su donekle poboljani, s obzirom da je ukupna cena jednaka cena(Q1)+cena(Q2)+cena(Y)=24+24+16=64, maksimalno ulazno kanjenje je 4.0ns, dok je izlazno kanjenje 3.2ns.

Sl. 3.71 Procena cene i kanjenja kodiranja A: (a) mapa sledeeg stanja; (b) izlazna mapa; (c) pobudne i izlazna jednaina; (d) procena cene i kanjenja.

Sl. 3.71 Procena cene i kanjenja kodiranja B: (a) mapa sledeeg stanja; (b) izlazna mapa; (c) pobudne i izlazna je dnaina; (d) procena cene i kanjenja.

111

Arhitektura mikrosistema

Procena cene i kanjenja kodiranja C prikazana je na Sl. 3.72. Uoimo da su cena i kanjenje pobudnih jednaina smanjenji, ali je zato ukupna cena mnogo vea od cena dva prethodna reenja. Glavno razlog za poveanje cene je korienje 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 kanjenje je smanjeno na 3.6ns, dok je izlazno kanjenje isto kao kod kodiranja B.

Sl. 3.72 Procena cene i kanjenja kodiranja C: (a) mapa sledeeg stanja; (b) izlazna mapa; (c) pobudne i izlazna jednaina; (d) procena cene i kanjenja.

Na osnovu analiziranih alternativnih kodiranja, moemo zakljuiti da kodiranje C daje najbru i najskuplju realizaciju, dok kodiranje B zahteva najjeftiniju realizaciju, koja je meutim sporija od kodiranja C. Konano, realizacija kodiranja A je veoma slina realizaciji kodiranja B, iako je donekle niih performansi. U optem sluaju, veoma je teko proceniti uticaj kodiranja stanja na karakteristike konanog reenja, osim ako se ne postupi kao u prethodnom primeru, gde smo najpre izabrali vie razliitih kodiranja, a zatim realizovali svako od njih i konano obavili poreenje u pogledu cene i kanjenja. U nastavku ovog poglavlja, za realizaciju brojaa po modulu 3 koristiemo kodiranje A. 3.2.3.4 Izbor memorijskih elemenata

Nakon obavljene minimizacije stanja i kodiranja stanja, sledei korak u procesu sinteze konanog automata je izbor tipa flip-flopa. Kao to je prikazano u tabeli sa Sl. 3.58, postoje etiri tipa flip-flopova. U optem sluaju, T flip-flop predstavlja dobar izbor kod sekvencijalnih kola tipa brojaa, gde flip-flopovi esto menjaju stanje. D flip-flopovi se obino koriste u aplikacijama gde se ulazna informacija pamti na neko vreme, a koristi kasnije. Praktino, D flip-flop se koristi kao memorija za privremeno uvanje informacija. SR flip-flop se koristi u sluajevima kada razliiti signali setuju i resetuju flip-flopove. Konano JK flip-flop, koji je i najsloeniji tip flip-flopa, je koristan kada je potrebno kombinovati ponaanje T i SR flip-flopova. Na osnovu prethodne diskusije, moemo zakljuiti da su za sintezu konanih automata najkorisniji SR i JK flipflopovi. Meutim, iako upotreba ova dva tipa flip-flopova obino redukuje cenu ulazne logike, oni zahtevaju dva puta vie veza u odnosu na T i D flip-flopove. U optem sluaju, T i D flip-flopovi su pogodniji za VLSI implementacije konanih automata, s obzirom da zahtevaju manji broj veza. U cilju poreenja efikasnosti razliitih tipova flip-flopova, za svaki od etiri tipa flip-flopova, izveemo izraze za funkcije ulazne logike brojaa po modulu 3.

112

Komponente digitalnih sistema

PRIMER 3.11 Izbor tipa flip-flopa Problem: Za obostrani broja po modulu 3, sa kodiranjem stanja u skladu sa kodiranjem A sa slike, izabrati tip flip-flopa tako da cena i/ili kanjenje ulazne logike bude minimalno. Reenje: Poeemo od tabele sledeih stanja brojaa po modulu 3, koja je prikazana na Sl. 3.73(a). Da bi smo izveli jednaine pobude za razliite tipove flip-flopova, koristiemo tabele pobude flip-flopova sa Sl. 3.73(b). Zatim, u svakom paru tekue-sledee stanje iz tabele sledeih stanja, zamenjujemo sledee stanje odgovarajuim ulaznim vrednostima, koje oitavamo iz tabele pobude konkretnog flip-flopa. Na ovaj nain, u mogunosti smo da kreiramo Karnoove mape za ulaze flip-flopva SR, JK, T i D tipa, koje su prikazane na Sl. 3.73(c), (d), (e) i (f). Uoimo da Karnoove mape za ulaze flip-flopova, u sutini, kombinuju etiri mape, u sluaju SR i JK flip-flopova, odnosno dve mape, u sluaju T i D flip-flopova. Na osnovu ovih Karnoovih mapa, za svaki ulaz flip-flopa moemo izvesti minimalni izraz. Izvedeni izrazi, zajedno sa procenjenom cenom i kanjenjem, prikazani su ispod odgovarajuih Karnoovih mapa. Procenjene cene i kanjenja ne uzimaju u obzir ulazne drajvere (ili invertore), kao ni cenu i kanjenje flip-flopova. Na osnovu procenjenih cena i kanjenja, moemo zakljuiti da realizacija koja koristi JK flip-flopove ima najmanju cenu i najmanje kanjenje. To je najveim delom zbog toga to u ovom se sluaju za realizaciju funkcija J1 i J0 moe koristiti jedan AOI gejt umesto dva nivoa NAND gejtova. Meutim, u mnogim sluajevima, kada je broj stanja u kolu koje se projektuje veliki, prednost JK u odnosu na ostale tipove flip-flopova nee biti tako velika. Takoe, moemo zakljuiti da su cene i kanjenja realizacija na bazi T, D i SR flip-flopova priblino ista.

Sl. 3.73 Realizacija brojaa po modulu 3 pomou razliitih tipova flip-flopova: (a) tabela sledeih stanja za kodiranje A; (b) tabela pobude flip-flopova; (c) realizacija pomou SR flip-flopova; (d) realizacija pomou JK flip-flopova; (e) realizacija pomou T flip-flopova; (f) realizacija pomou D flip-flopova.

113

Arhitektura mikrosistema

3.2.3.5

Optimizacija i tajming

Pretposlednji korak procedure sinteze sekvencijalne logike sastoji se u mapiranju ulazne i izlazne logike na komponente iz raspoloive biblioteke gejtova. U sluaju brojaa po modulu 3, ve smo koristili AOI gejtove kada smo izraunavali kanjenje i cenu realizacije pomou JK flip-flopova. Nakon tehnolokog mapiranja, u mogunosti smo da nacrtamo logiku emu koja e na vizuelni nain predstaviti sve gejtove i veze brojaa. Na primer, na Sl. 3.74 je prikazana logika ema obostranog brojaa po modulu tri realizovanog pomou JK flip-flopova. (Jednaine izlazne logike izvedene su na Sl. 3.73(c).) Kao to se vidi na Sl. 3.74, na ulazima kola postavljeni su invertori. Na taj nain obezbeuje se vea pobudna struja, to e smanjiti kanjenje usled punjenja i pranjenja parazitnih kapacitivnosti veza izmeu ulaza i gejtova ulazne logike. Uoimo da je logika ema namenjena projektantu, za vizuelni pregled, a da je za korienje u softverima za simulaciju i sintezu, logiku mreu potrebno konvertovati u netlistu odgovarajueg formata.
C D

1 1 1

Q 1' Q1

2.4

J K

Q 4.0 Q

1.8 1.4 2.2 Y

2.4

J K

Q 4.0 Ulazno/izlazna kanjenja C,D Clk C,D Clk Clk Y Y Clk 4.4 7.6 5.6 6.4 Q

Q0' Q0 Clk

(a)

(b)

Sl. 3.74 Logika ema obostranog brojaa po modulu 3: (a) logika ema; (b) tabela kanjenja.

U poslednjem koraku procedure za sintezu sekvencijalne logike, a na osnovu logike eme i poznatih kanjenja signala kroz gejtove i flip-flopove kreira se vremenski dijagram. Vremenski dijagram brojaa po modulu 3 prikazan je na Sl. 3.75. Uoimo da kanjenja naznaena u vremenskom dijagramu odgovaraju kanjenjima datim na Sl. 3.74(b). Kao to se vidi sa Sl. 3.75, rad brojaa je dozvoljen u trenutku t0, meutim, broja ne menja stanje sve do prve rastue ivice taktnog signala Clk (trenutak t1). Broja ulazi u stanje s1 (Q1Q0=01) u trenutku t1+4.0ns. Nakon druge rastue 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 vraa na 0 u t5+7.6ns (zato to Y mora biti 0 u stanju s2 ako je CD=11). Konano, u trenutku t6+4.0ns, broja ulazi u stanje s1 (Q1Q0=01), to je ujedno i poslednje stanje prikazano u vremenskom dijagramu.

114

Komponente digitalnih sistema

Sl. 3.75 Vremenski dijagram brojaa po modulu 3.

Vremenski dijagrami ovog tipa se koriste za verifikaciju ponaanja sintetizovanog kola, kao i za generisanje ulaznih i izlaznih talasnih oblika za potrebe simulacije. Za dati skup ulaznih talasnih oblika, simulator e generisati talasne oblike izlaznih signala, koji se porede sa oekivanim talasnim oblicima izlaznih signala dobijenih na osnovu logike eme, specifikacije kola ili nekog drugog oblika bihejvioralnog opisa. Talasni oblici ulaznih i izlaznih signala se ponekada zovu test vektori, poto e, takoe, biti korieni i prilikom testiranja kola nakon to je ono fabrikovano. 3.2.4 Memorijske komponente

Osnovna namena memorijskih komponenti je uvanje podataka i obavljanje jednostavnih transformacija podataka, kao to su brojanje i pomeranje memorisanog sadraja. U ovom poglavlju bie definisani i projektovani razliiti tipovi memorijskih komponenti, kao to su: registri, brojai, RAM memorija, stek i FIFO. Takoe, bie razmatrano nekoliko tipova staza podataka i upravljakih jedinica. 3.2.4.1 Registri

Registar je memorijska komponenta koja se sastoji od n flip-flopova sa zajednikim taktnim signalom. Sinhronizovano sa rastuom 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. Grafiki simbol 4-bitnog registra dat je na Sl. 3.76(a), dok je na Sl. 3.76(b) prikazana njegova unutranja struktura, koju ine etiri paralelno povezana D flip-flopa.

Sl. 3.76 4-bitni registar: (a) grafiki simbol; (b) unutranja struktura.

Funkcionalnost osnovne varijante registra, prikazane na Sl. 3.76, moe se proiriti dodavanjem razliitih upravljakih signala. Na primer, ako registar treba biti resetovan ili setovan nezavisno od taktnog signala, bilo pri ukljuenju napajanja, bilo pri pojavi nekih specifinih dogaaja, mogu se dodati signali za asinhrono resetovanje i setovanje. Takvo jedno proirenje se postie 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 sadraj registra se brie ili resetuje, tj. postavlja na sve nule. Slino, registar se setuje, tj. njegov sadraj 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 znai postavljanje 0 na odgovarajui ulaz). Ulazi Clear i Set su nezavisni od taktnog signala i da imaju prioritet nad njim. To znai da ako je u trenutku pojave rastue ivice taktnog signala, Set ili Clear jednak 0, ulaz I se ignorie, a registar se setuje, odnosno resetuje.

Sl. 3.77 4-bitni registar sa asinhronim resetovanjem i setovanjem: (a) grafiki simbol; (b) unutranja struktura.

Sl. 3.78 Registar sa dozvolom: (a) grafiki simbol; (b) tabela operacija; (c) unutranja struktura.

Kod obe varijante registra, prikazane na Sl. 3.76 i Sl. 3.77, novi podatak se automatski upisuje u registar sa svakom rastuom ivicom takta. Meutim, kod mnogih digitalnih sistema, podatak koji je upisan u registar ostaje u registru nekoliko taktnih ciklusa pre nego to se upie novi podatak. Iz tog razloga, mogunost kontrole upisa predstavlja korisnu funkciju registra. Kontrola upisa se postie korienjem upravljakog 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 grafiki simbol, tabela operacija i unutranja struktura registar sa dozvolom. Registar sadri multipleksere 2-u-1 koji omoguavaju izbor izmeu ulaznog podatka ili podatka koje je ve u registru. Signal Load upravlja multiplekserima na takav nain 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 vraa na ulaze flip-flopova i sa sledeom rastuom ivicom takta ponovo upisuje u registar.

116

Komponente digitalnih sistema

3.2.4.2

Pomeraki registri

U odeljku 3.2.4.1 pokazano je kako se postavljanjem multipleksera ispred ulaza flip-flopova moe kontrolisati upis u registar. Sledei slinu logiku, multiplekseri se mogu iskoristiti i za pomeranje podatka zapamenog u registru. Ovakav tip registra se zove pomeraki registar i omoguava pomeranje upisanog sadraja za jednu bitsku poziciju. U osnovnoj varijanti, pomeraki registar poseduje upravljaki signal Shift u eljenom smeru uvek kada je upravljaki signal Shift koji kada je 1 postavlja registar u reim pomeranja. Na Sl. 3.79 je prikazan primer 4-bitnog pomerakog registra. Serijski ulaz, IL, se koristi za unos novog 1-bitnog podatka u krajnji levi flip-flop registara. Pomeraki registar, kao to je registar sa Sl. 3.79, tipino se koristi za konverziju informacije iz serijskog u paralelni oblik. Iz tog razloga, ovakav registar se zove i pomeraki registar sa serijskim ulazom i paralelnim izlazom (SIPO Serial-In, Parallel-Out).
IL Pomeraki registar Shift Q3 Q2 Q1 Q0 Tekue stanje Shift 0 1 Sledee stanje Q3 Q2 Q1 Q0 Bez promene IL Q3 Q2 Q1

(a)
IL 1 mux Shift 0 1 mux 0 1

(b)

0 mux

1 mux

D3

Q3

D2

Q2

D1

Q1

D0

Q0

Clk

Q3

Q2

Q1

Q0

(c)

Sl. 3.79 etvorobitni pomeraki registar sa serijskim ulazom i paralelnim izlazom: (a) grafiki simbol; (b) tabela operacija; (c) unutranja strukura.

Korienjem multpleksera 4-u-1, umesto multipleksera 2-u-1, mogue je kombinovati funkcije pomeranja i paralelnog upisa. Na primer, pomeraki registar sa Sl. 3.80 ima mogunost kako pomeranja memorisanog sadraja tako i upisa novog podatka. Takoe, registar sa Sl. 3.80 moe 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 grafiki simbol i tabela operacija, dok se na Sl. 3.80(c) moe videti unutranja 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 obino projektuju prvi, poto je njihova funkcija najoiglednija. Na primer, jednaine ulaza flip-flopova za svaki od tri tipa razreda, dobijene na osnovu tabele operacija sa Sl. 3.80(c) imaju sledei oblik: D0=S1S0Q0+S1S0I0+S1S0IR+S1S0Q1 D1=S1SiQ0+S1S0Ii+S1S0Qi-1+S1S0Qi+1, 1i2 D2=S1S0Q3+S1S0I3+S1S0Q2+S1S0IL Pomeraki registar sa paralelnim upisom moe se koristiti za konverziju informacija iz serijskog u paralelni oblik i obrnuto, sa opcijom da prilikom paralelno-serijske konverzije prvo generie bit najmanje ili bit najvee teine. Registri ovog tipa, esto se koriste za konverziju raunarskih podataka u serijski oblik pogodan za komunikaciju i rekonstrukciju serijski prenetih podataka u cilju obrade unutar raunara.

117

Arhitektura mikrosistema

Sl. 3.80 4-bitni pomeraki registar sa paralelnim upisom: (a) grafiki simbol; (b) tabela operacija; (c) unutranja struktura.

3.2.4.3

Brojai

Broja je posebna vrsta registara koji sadri inkrementer, to omoguava brojanja navie ili nanie. Na primer, na Sl. 3.81 je prikazan broja navie koji ima dva upravljaka signala: signal dozvole (E), koji kada je 1 omoguava brojanje i signal Clear koji resetuje broja, tj. postavlja ga u stanje 0. Grafiki simbol 4-bitnog binarnog brojaa navie 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-sabiraa (half-adder HA) rasporeenih tako da su dva ulaza polu-sabiraa na bitskoj poziciji i povezani na izlaz i-tog flip-flopa Qi i izlazni prenos polu-sabiraa sa pozicije i-1, Ci. Uoimo 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 bie jednak 1 samo ako su Qi i Ci oba jednaki 1. Tabela istinitosti polu-sabiraa data je na Sl. 3.81(c). Polazei od ove tabele dolazimo do sledeih jednaine za Di i Ci+1: Di = Qi Ci Ci+1= QiCi Sve dok je signal E jednak 1, broja e brojati navie po modulu 16, sabirajui 1 na svoj tekui sadraj sa svakom rastuom ivicom taktnog signala.

118

Komponente digitalnih sistema

Sl. 3.81 4-bitni binarni broja: (a) grafiki simbol; (b) tabela operacija; (c) tabela istinitosti polu-sabiraa; (d) unutranja struktura.

Obostrani broja, tj. broja koji moe brojati i navie i nanie, konstruie se tako to se u brojau navie polu-sabirai zamene polu-sabiraima/oduzimaima (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 najveem delu nalikuje brojau navie sa Sl. 3.81 s tom razlikom to poseduje dodatni upravljaki ulaz, D. Kao to je ukazano tabelom operacija sa Sl. 3.82(b), svrha ovog dodatnog ulaza je postavljanje brojaa u reim brojanja navie, kada je njegova vrednost 0, odnosno u reim brojanja nanie, kada je njegova vrednost 1. Na osnovu tabela istinitosti polu-sabiraima/oduzimaima sa Sl. 3.82(c) moemo izvesti sledee jednaine za Di i Ci+1: Di = Qi Ci Ci+1= DQiCi+ DQiCi 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. Vano je uoiti da obostrani broja sa Sl. 3.82 uvek poinje brojanje od 0. Meutim, u mnogim primenama korisno je imati mogunost postavljanja brojaa na vrednost razliitu od nule, a zatim nastaviti sa brojanjem, navie ili nanie. Ovakav tip brojaa se zove broja sa paralelnim upisom, a konstruie se kombinovanjem inkrementera/dekrementera i registra sa dozvolom. Kao to je prikazano na Sl. 3.83, broja sa paralelnim upisom ima tri upravljaka signala: E, D i Load. Signal E omoguava brojanje u smeru koji je odreen 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 ponaa na identian nain kao obostrani broja sa Sl. 3.82. Tabela operacija i unutranja struktura brojaa sa paralelnim upisom prikazani su na Sl. 3.83(b) i (c).

119

Arhitektura mikrosistema

Sl. 3.82 4-bitni obostrani broja: (a) grafiki simbol; (b) tabela operacija; (c) tabela istinitosti polusabiraa/oduzimaa; (d) unutranja struktura.

Sl. 3.83 4-bitni obostrani broja sa pralelenim upisom: (a) grafiki simbol; (b) tabela operacija; (c) unutranja struktura.

120

Komponente digitalnih sistema

BCD broja Broja sa paralelnim upisom moe biti iskorien za konstrukciju drugih tipova brojaa. Jedna takva primena je BCD broja koji broji na sledei nain: 0, 1, 2, 4, 5, 6, 7, 8, 9, 0, ... Kao to je pokazano na Sl. 3.84(a), BCD broja se moe konstruisati tako to e se detektovati kada broja stigne u stanje 9, a onda, u sledeem 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 sadraj brojaa 1001. Izlaz AND kola je povezan sa ulazom Load brojaa, koji omoguava da se sa sledeom rastuom ivicom taktnog signala u broja upie 0. Obostrani BCD broja se konstruie na slian nain. U smeru navie, u broja treba upisati 0 uvek kada njegovo stanje postane 9, dok u smeru nanie u broja treba upisati 9 kada njegovo stanje postane 0. Kao to je prikazano na Sl. 3.84(b), za izbor izmeu upisa 0 ili 9 koristi se multiplekser, dok se detekcija stanja 0 i 9 vri uz pomo AND-OR mree. Na slian nain projektuju se brojai koji poinju brojanje iz bilo kog stanja i broje u gotovo bilo kom redosledu. Meutim, uoimo 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 brojai: (a) BCD broja navie; (b) obostrani BCD broja.

3.2.4.4 Registarski fajlovi U prethodnim odeljcima opisani su razliiti tipovi registara i brojaa, od kojih se svaki sastoji od m flip-flopova i dodatne kombinacione logike. Meutim, takoe je mogue rasporediti flip-flopove u dvo-dimenzionalno polje koje e sadrati 2n vrsta od po m flip-flopova. Svaka vrsta u jednoj takvoj dvo-dimenzionalnoj strukturi, koja se zove registarski fajl, moe se smatrati jednim registrom. U optem sluaju, registarski fajl memorie istu koliinu informacije kao i 2n m-bitnih registara. Meutim, s obzirom na regularnost strukture, registarski fajl zahteva manji broj internih veza, a time i manju povrinu na mikroipu, u odnosu na odgovarajui broj nezavisnih registara. Uz to, flip-flopovi registarskog fajla se mogu realizovati sa manjim brojem tranzistora. Takoe, uvek se pristupa samo jednom flip-flopu u svakoj koloni. Registarski fajl ine: dvo-dimenzonalno polje elija registarskog fajla (register-file cells RFC), dekoderi za itanje i upis i izlazna baferska logika. Kao to je prikazano na Sl. 3.85(a), tipinu eliju registarskog fajla ine jedan D flip-flop i dva logika kola. Osim taktnog signala, elija ima tri ulaza i jedan izlaz: Write_select, Read_select, Input i Output. Pri Write_select=1, D flip-flop pamti vrednost signala Input. Kada je Read_select=1, sadraj D flip-flopa se kroz tro-statiki bafer prenosi na izlaz Output. Na Sl. 3.85(b) prikazan je blok dijagram registarskog fajla kapaciteta 2nxm, dok je na Sl. 3.85(c) prikazana unutranja organizacija registarskog fajla kapaciteta 4x4. (Iz razloga jednostavnijeg prikaza, na Sl. 3.85(c) je izostavljen taktni signala.) Registarski fajl kapaciteta 2nxm ima m ulaza Im-1, , I0, m izlaza Om-1, , O0 i 2n vrsta flip-flopova, kao to je prikazano na Sl. 3.85(c). Dekodera za upis slui za izbor vrste u koju e, u trenutku delovanja rastue ivice taktnog signala, biti smetena ulazna vrednost. Ulaz dekodera za upis se sastoji od n adresnih linija, WAn-1, , WA0 i signala za dozvolu upisa, WE. Ako je WE=0, ulazna vrednost se ne upisuje u registarski fajl. Slino dekoderu za upis, dekoder za itanja bira vrstu iji sadraj se prenosi na izlazu registarskog fajla. Dekoder za itanje ima n adresnih linija, RAn-1, , RA0 i signal dozvole itanja, RE. Pri RE=1, na izlazu

121

Arhitektura mikrosistema

registarskog fajla javlja se, nakon manjeg kanjenja kroz izlazne bafere, sadraj 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) grafiki simbol; (c) unutranja struktura.

Glavno ogranienje registarskog fajla sastoj se u injenici da on omoguava ogranien pristup registrima iz fajla tj. uvek se moe upisivati samo u jedan registar (vrstu) i itati iz samo jednog registara (vrste). Ovakva situacija moe se donekle popraviti konstrukcijom registarskog fajla sa vie od jednog porta za itanje ili upis. Naalost, cena registarskog fajla raste srazmerno broju portova. Iz tog razloga, veina 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 veina aritmetikih i logikih operacija binarne i da stoga, u isto vreme, zahtevaju dva operanda. Sa dva porta za itanje i jednim za upis, mogue je, u toku istog taktnog ciklusa, iz registaraskog fajla pribaviti dva operanda i smestiti rezultat nazad u registarski fajl. Sa druge strane, opravdanje za korienje dva porta za upis lei 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 mogunost da se u svakom taktnog ciklusu, pored rezultata koji se vraa 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) grafiki simbol; (c) unutranja 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 podrka za dva porta za itanje. Grafiki simbol registarskog fajla prikazan je na Sl. 3.86(b). Na Sl. 3.86(c) prikazana je unutranja struktura registarskog fajla kapaciteta 4x4.. Uoimo da je dijagram sa Sl. 3.86(c) slian 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 omoguen je prenos sadraja do drugog porta za itanje. Registarski fajlovi spadaju u brze memorijske komponente, zahvaljui injenici da su memorijske elije realizovane na bazi flip-flopova ili le kola. Meutim, s obzirom da svaki flip-flop sadri barem 6 tranzistora, registarski fajl je skupa memorija. Iz tog razloga, registarski fajlovi se tipino koriste kao privremena memorija malog kapaciteta kod aplikacija koje zahtevaju veliku brzinu obrade podataka. 3.2.4.5 RAM memorija

U odeljku 3.2.4.4 opisan je registarski fajl, koji predstavlja brzu memoriju malog kapaciteta pogodnu za privremeno uvanje vrednosti promenljivih u toku izraunavanja. Sa druge strane, RAM (Random-access memory, ili memorija sa proizvoljnim pristupom) predstavlja sporiju memoriju daleko veeg kapaciteta pogodnu

123

Arhitektura mikrosistema

za dugotrajno smetanje programa i podataka koji se koriste tokom izraunavanja. Slino registarskim fajlovima, memorije su organizovane u vidu polja od 2n vrsta sa m bita u svakoj vrsti. U optem sluaju, n se kree izmeu 16 i 32, dok je m, obino 1, 4, 8, 16 ili 32. Tipina memorija nalikuje onoj sa Sl. 3.87(a). S obzirom da memorija ima 2n vrsta, za jednoznanu identifikaciju svake vrste potrebno je n adresnih linija. Pored adresnih linija, memorija poseduje ulazni signal Chip_select (CS) koji se koristi prilikom konstrukcije veih memorija na bazi memorijskih ipova. Uvek kada je CS=1, memorija normalno funkcionie. Meutim, kada je CS=0, rad memorije je onemoguen. Takoe, svaki memorijski ip ima jo upravljaku liniju, Read/write_select (RWS), koja bira jednu od dve memorijske operacije: upis ili itanje. Kada je RWS=0, memorija ita svoj sadraj sa lokacije odreene adresinim linijama koji postaje dostupan na izlaznom portu. Sa druge strane, kada je RWS=1, memorija upisuje sadraj prisutan na ulaznom portu u lokaciju odreenu adresnim linijama. Memorija, takoe, ima m-bitni ulazni i m-bitni izlazni port. Za male vrednosti m (npr. 1 ili 4), memorija moe imati razdvojene ulazne i izlazne portove. Meutim, da bi se smanjio broj pinova na memorijskom ipu, ulazni i izlazni port su obino objedinjeni u jedinstven ulazno/izlazni port. U optem sluaju, broj pinova na ipu odreuje povrnu na tampanoj ploi koja je zauzeta ipom. Grafiki simboli oba tipa pakovanja memorije su prikazana na Sl. 3.87(b).

Sl. 3.87 RAM memorija: (a) memorijske adrese i sadraj; (b) grafiki 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) moe se simboliki predstaviti kao struktura koju ine: taktovani D le, jedno AND kolo i izlazni tro-statiki bafer. Kada je signal Row_select jednak 1, bit informacije zapamen u leu se prenosi na izlaz Output. Ako je pri tome i signal Write_enable jednak 1, vrednost sa ulaza Input se pamti u leu. Uoimo da signal Write_enable slui kao signal takta za le. Iako je memorijska elija predstavljena uz pomo lea i dva gejta, treba razumeti da se ona realizuje sa daleko manjim brojem tranzistora. Shodno nainu implementacije, memorije se dele na statiki i dinamiki RAM. Statiki RAM (SRAM) se konstruie 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-statiki bafer koristi jo po jedan tranzistor. SRAM memorija uva upisani sadraj sve dok se ne upie novi ili iskljui napajanje. Sa druge strane, kod dinamike RAM memorije (DRAM), za realizaciju memorijske elije koristi se samo jedan tranzistor. Takva memorijska elija gubi upisani sadraj pri svakom itanju, te zbog toga nakon svakog itanje mora da sledi upis uprvo proitanog podataka. Takoe, kao posledica nesavrenog postupka fabrikacije, sadraj memorijske elije se spontano, nepovratno gubi nakon izvesnog vremena po upisu. Da bi memorijska elija uspela da sauva svoj sadraj, neophodno joj je pristupati sa nekom odreenom frekvencijom, ili periodino obnavljati (ili osveavati) upisani sadraj. U toku osveavanja, operacije itanja i upisa se suspenduju, to moe u nekim sluajevima biti problem. Meutim, bez obzira na sve to, zahvaljujui superiornim karakteristikama u pogledu gustine pakovanja i cene, DRAM memorije se veoma esto koriste za projektovanje najrazliitijih elektronskih ureaja. Sa druge strane, SRAM memorije su, iako skuplje, bre i zbog toga pogodne za primene koje ne zahtevaju veliku koliinu 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) unutranja struktura.

SRAM i DRAM memorije su tzv. nepostojane memorije (volatile memories), s obzirom da se njihov sadraj gubi kada se iskljui napajanje. Sa druge strane, ROM i PROM memorije su tzv. postojane memorije, s obzirom da zadravaju sadraj ak i nakon iskljuenja 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 sadraj. Iako su sadraji svih elija prisutni na izlaznim linijama, izlazni tro-statiki baferi su zakoeni to omoguava novom podatku koji je pisutan na ulazno/izlaznom portu da bude upisan. Meutim, ako je RWS=0 i CS=1, podatak iz selektovane vrste se kroz tro-statike bafere prosleuje na U/I port. Kao to je ve reeno, memorijske komponente se po pravilu proizvode u veliinama 2nxm, gde n i m mogu da varairaju unutar irokog opsega brojeva. Meutim, uopteno govorei, za konkretnu implementacionu tehnologiju i godinu proizvodnje, proizvod 2nxm, tj. kapacitet memorije, je konstanta. Imajui to u vidu, u sluajevima kada memorija potrebnog kapaciteta nije dostupna u vidu monolitnog ipa, ona se mora konstruisati pomou memorijskih ipova manjeg kapaciteta, koji su dostupni na tritu u vremenu projektovanja. U nastavku ovog odeljka bie opisano kao se realizuju ire i vee memorije, tj. kao uiniti da m i n budu vei od kapaciteta koji je rasploiv na jednom ipu. Proirenje memorijske rei, tj. formiranje memorije sa veim m, postie se paralelnim vezivanjem nekoliko memorijskih ipova. Na Sl. 3.89 je prikazan primer konstrukcije RAM memorije kapaciteta 16Kx32 korienjem

125

Arhitektura mikrosistema

RAM ipova kapaciteta 16Kx8. Kao to se vidi, kod ovog reenja, adresne linije, kao i linije CS i RWS, povezane su sa svim memorijskim ipovima. Uoimo da su ulazna i izlazna magistrala podeljene na etiri bajta, pri emu je svaki bajt povezan sa odgovarajuom memorijom. Korienjem ovog postupka u mogunosti smo da konstuiemo memoriju bilo koje irine.

Sl. 3.89 16Kx32 RAM, realizovan pomou 16Kx8 RAM.

Da bi smo realizovali veu memoriju, tj. memoriju sa veim brojem memorijskih lokacija, neophodno je povezati nekoliko memorijskih ipova na red, tako da svaki ip sadri jedan deo od ukupnog broja memorijskih rei. Princip reenja prikazan je na Sl. 3.90, gde je pomou etiri RAM ipa kapaciteta 16Kx8 realizovana RAM memorija kapaciteta 64Kx8. Uoimo da u ovom sluaju svi memorijski ipovi dele istu ulazne i istu izlaznu magistralu, kao i zajedniki upravljaki signal RWS. U toku pristupa memoriji, za izbor ipa koji sadri traeni podatak, koristi se signal CS. Pretpostavimo da M0 sadri sve podatke sa adresama od 0 do 214-1, M1 od 214 do 215-1, M2 od 215 do 215+214-1 i M3 od 215+214 do 216-1. esnestobitna adresna magistrala je podeljena na dva dela, tako da se dva bita najvee teine koriste za izbor odgovarajueg ipa, a preostalih 14 bita se koriste za izbor konkretne lokacije unutar ipa. Da bi se ovo postiglo, 14 bita na pozicijama manje teine adresne magistrale su povezani na adresne portove svih memorijskih ipova, dok su dva bita najvee teine povezana na dekoder 2-u-4, koji odreuje koji od etiri memorijska ipa e biti izabran za upis ili itanje. Ovaj izbor se ostvaruje povezivanjem svakog od izlaza dekodera na ulaz CS odgovarajueg memorijskog ipa, kao to je prikazano na Sl. 3.90.

126

Komponente digitalnih sistema


Ulazna magistrala 8 8

A 16 2 Dekoder 2-u-4 3 2 1 0 14

RWS

14

I A CS RWS O 8 8 M0

14

I A CS RWS O 8 8 M1

14

I A CS RWS O 8 8 M2

14

I A CS RWS O 8 8 Izlazna magistrala M3

Sl. 3.90 64Kx8 RAM realizovan pomou 16Kx8 RAM.

3.2.4.6

Stek

Stek (stack) je memorijska struktura koja se esto koristi kako u softveru tako i u hardveru. Po definiciji, stek je memorija sa ogranienim pristupom. Za razliku od RAM memorije gde se bilo kom zapamenom podatku moe pristupati u bilo kom vremenu, podacima zapamenim u steku pristupa se samo preko jedne lokacije: vrh steka. Drugim reima, kada se podatak upisuje u stek, ili stavlja na stek (operacije push), on se smeta na vrh steka i pri tome se svi prethodno upisani podaci sputaju 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 podiu za jednu poziciju navie uz stek. Na Sl. 3.91(a) je prikazan stek dubine 4 (tj. kapacita 4 rei) koji inicijalno sadri dva broja: 34 na lokaciji Top i 23 na lokaciji Top-1. Na Sl. 3.91(b) moe se videti da stavljanje broja 45 na stek zahteva da brojevi 34 i 23 budu premeteni na lokacije Top-1 i Top-2. Sa druge strane, kada se broj 45 uzima sa steka, brojevi 34 i 23 se pomeraju navie tako da ponovo zauzimaju lokacije Top i Top-1 (Sl. 3.91(c)). U ovom konkretnom sluaju, na stek se moe staviti najvie etiri broja, pre nego to se stek napuni. Nakon toga, svaki novi upis u stek znai gubitak podatka sa dna steka.

127

Arhitektura mikrosistema

Sl. 3.91 Rad steka: (a) sadraj steka pre upisa broja 45; (b) sadraj steka nakon upisa broj 45; (c) sadraj steka nakon itanja broja 45.

Prilikom projektovanja steka, vano je uoiti da se prilikom operacija upisa i itanja, zapameni podaci pomeraju za jednu poziciju nanie, odnosno navie. Na osnovu ovog zapaanja zakljuujemo da za realizaciju steka treba koristiti pomerake registre u kombinaciji sa obostranim brojaem za detekciju praznog, odnosno punog steka. Ove komponente su koriene za realizaciju m-bitnog steka dubine 4 koji je prikazan na Sl. 3.92. Uoimo da ovaj stek ima m ulaznih linija INi i m izlaznih linija OUTi, gde je 0im-1. Takoe, stek ima tri upravljaka 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 omoguava (dozvoljava) rad steka, dok signal Reset, uvek kada je 0, brie sadraj pomerakih registara i resetuje obostrani broja. Rad steka je opisan tabelom operacija sa Sl. 3.92(a). Uoimo da stek ima dva izlazna signala, Empty i Full, koji ukazuju na status steka, na sledei nain: 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 moe videti da se stek sastoji od m 4-bitnih pomerakih registara sa paralelnim upisom tako da svakom ulazu odgovara jedan pomeraki registar. Pri svakom upisu u stek, svi pomeraki registri obavljaju operaciju pomeranja na desno. Slino, pri svakom itanju iz steka, svi pomeraki registri obavljaju operaciju pomernja na levo. Svaki novi podatak koji se stavlja na stek Push/pop Enable Operacija preko ulaza IL pomerakog registra i upisuje se na poziciju Q3, koja predstavlja vrh steka. Stanje brojaa ukazuje na broj podataka u X 0 Bez promene steku. Sinhronizovano sa svakom rastuom ivicom taktnog signala, Upis (push) 0 1 pomeraki registri obavljaju pomeranje na desno, a broja broji unapred za 1 (Push/pop=0 i Enable=1), odnosno pomeranje na levo i itanje (pop) 1 1 brojanje unazad (Push/pop=1 i Enable=1).
(a)

Push/ pop X 0 1

Kontrola pom. registra Enable 0 1 1 S1 0 1 1 (b) S0 0 1 0

Kontrola brojaa D X 0 1 E 0 1 1

Q2 0 0 0 0 1

Izlazi brojaa Q1 Q0 0 0 0 1 1 0 1 1 0 0 (c)

Empty 1 0 0 0 0

Full 0 0 0 0 1

128

Komponente digitalnih sistema

0 IN0 Reset S1 IL Pom.Reg. Q3 Q2 Q1 Q0 IR

S0

OUT0

.
INm-1 Reset S1 S0 Push/pop Q3 IL Pom.Reg. Q2

IR

Q1 Q0

OUTm-1 Reset D Up/Down broja Enable Upravljaka logika E Q3 Q2 Q1 Q0

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 upravljakih signala pomerakih registara i brojaa mogu se izvesti na osnovu tabele upravljanja koja je prikazana na Sl. 3.92(b). Na osnovu ove tabele moemo izvesti sledee Bulove jednaine: S1 = Enable S0 = (Push/pop)Enable D = (Push/pop)Enable E = Enable Realizacija ovih jednaina predstavlja upravljaku logiku steka. Na osnovu tabele izlaza sa Sl. 3.92(c), vidi se da izlazna logika dekoduje stanja brojaa 000 i 100. Uvek kada je stanje brojaa 000, signal Empty bie 1; u bilo kom drugom stanju Empty je 0. Suprotno, uvek kada je stanje brojaa 100, signal Full bie 1; u bilo kom drugom stanju Full je 0. Na osnovu toga, moemo izvesti sledee Bulove jednaine za izlaznu logiku: Empty = Q2Q1Q0 Full = Q2Q1Q0 Glavna slabost reenja steka sa Sl. 3.92 ogleda se u injenici da je za realizaciju steka vee dubine potreban veliki broj skupih pomerakih registara. Iz tog razloga, za realizaciju steka veeg kapaciteta koristi se RAM memorija. Sa druge strane, poto RAM memorija nema mogunost pomeranja memorisanog sadraja, push i pop operacije moraju biti realizovane na neto drugaiji nain promenom tekue lokacije vrha steka. Drugim reima, kada se podaci stavljaju na stek, adresa vrha steka bie uveana za jedan pri svakom upisu novog podatka. Suprotno, kada se podaci uzimaju sa steka, adresa vrha steka bie 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 uveava za jedan, tako da vrh steka uvek ukazuje na praznu lokaciju u koju e biti upisan sledei 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. Sledei ovu logiku, znamo da je za RAM memoriju kapaciteta 2n rei stek prazan ako je vrh steka na adresi 0, a pun ako je vrh na adresi 2n1. Uoimo da se lokacija sa adresom 2n-1 nikada ne koristi za smetanje podatka, ve samo za odreivanje da li

129

Arhitektura mikrosistema

je stek prazan. Iako se na ovaj nain gubi jedna od 2n raspoloivih rei RAM memorije, opisani pristup znaajno pojednostavljuje izlaznu logiku. Na Sl. 3.93 je prikazana realizacija steka koja koristi RAM memoriju kapaciteta 1K (210) i dva brojaa koji ukazuju na vrh steka i prvu lokaciju ispod vrha. Uoimo da su ulazi i izlazi i operacije steka identine kao na Sl. 3.92. Kao to se vidi sa Sl. 3.93(d), stek ine: dva 10-bitna brojaa, jedan 10-bitni multiplekser 2-u-1, 1K RAM, upravljaka i izlazna logika. Dva brojaa, nazvana Top i Top-1, razlikuju se za 1, i oba se uveavaju za jedan pri svakoj push operaciji, a umanjuju za jedan pri pop operaciji. Pri operaciji push, adresa RAM-a je sadraj brojaa Top, dok pri operaciji pop, adresa RAM-a je sadraj brojaa Top-1. Polazei od prethodnog razmatranja, u mogunosti smo da konstruiemo tabelu upravljanja koja je prikazana na Sl. 3.93(c) koja sadri vrednosti svih internih signala koji upravljaju brojaima, multiplekserom i RAM memorijom kako pri push i tako i pri pop operaciji. Na osnovu ove tabele, moemo izvesti sledee Bulove jednaine za upravljaku 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. Poto je stek prazan uvek kada je sadraj brojaa Top jedak 0, da bi se detektovao uslov Empty koristi se 10-ulazno NOR kolo iji ulazi su povezani na izlaze brojaa Top. Slino, stek je pun uvek kada broja Top sadri sve jedinice, to se detektuje 10ulaznim AND. ematski prikaz strukture steka zasnovanog na RAM memoriji prikazan je na Sl. 3.93(d).

Push/pop X 0 1

Enable 0 1 1

Operacija Bez promene Upis (push) itanje (pop)

(b)

Push/pop X 0 1

Enable 0 1 1

Kontrola mux-a S X 1 0

Kontrola mem. CS RWS 0 0 1 1 1 0

Kontrola broj. D E X 0 0 1 1 1

(c)

130

Komponente digitalnih sistema

Reset

D E Reset

Top n

D E Set

Top-1

Push/pop 1 S Enable 0 mux 1K RAM A CS RWS

Upravljaka logika

U/I magistrala Empty Full

n n Izlazna logika

(d)

Sl. 3.93 Realizacija steka na bazi RAM memorije: (a) Simboliko reenje; (b) Tabela operacija; (c) Tabela upravljanja; (d) ematski prikaz.

3.2.4.7

FIFO

FIFO red je struktura koja se esto koristi kada treba uravnoteiti 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 opslueni. Slina situacija se javlja kod razliitih procesora, ASIC kola ili bilo kog ureaja koji alje podatke nekom drugom ureaju radi dalje obrade, u smislu da onda kada u jednom trenutku brzina generisanja podataka nadmai brzinu kojom se podaci obrauju, neophodno je izmeu proizvoaa i potroaa umetnuti red ekanja, tj. FIFO red. Naravno, u takvim situacijama, brzina kojom proizvoa generie podatke ne moe u nedogled biti vea od brzine kojom potroa moe da prihvata podatke, jer bi to zahtevalo red ekanja beskonane duine. U svakom sluaju, u proseku, obe brzine moraju biti iste, a veliina reda ekanja odreuje koliko dugo se moe tolerisati neujednaenost izmeu zahteva za obradom i brzine obrade. Svrha FIFO reda je da sauva podatke upuene potroau, koje on trenutno nije u stanju da prihvati, ali koje e u dogledno vreme preuzeti i to u redosledu u kome su oni poslati. Znai, 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) moemo videti sadraj FIFO reda nakon upisa broja 45. Uoimo da je nakon itanja FIFO reda, broj 23 odbaene i da je sadraj reda pomeren za jednu poziciju na dole. Sadraj reda ekanja nakon pomeranja prikazan je na Sl. 3.94(c).

Sl. 3.94 Princip rada FIFO reda: (a) sadraj reda pre upisa broja 45; (b) sadraj reda posle upis broja 45; (c) sadraj reda nakon itanja brja 23.

131

Arhitektura mikrosistema

Na Sl. 3.95 je prikazan blok dijagram FIFO reda. U optem sluaju, FIFO red ima m ulaznih linija INi i m izlaznih linija OUTi, gde je 0im-1. Takoe, FIFO red ima tri upravljaka signala: Read/write, Enable i Reset. Kada je Read/write=0, na izlazu FIFO reda postavljen je podatak, uzet sa poetka reda, tj. podatak koji je najdue u redu ekanja. Kada je Read/write=1, u FIFO red se upisuje podatak prisutan na ulazima INi i smeta na kraj reda ekanja. Tipina realizacija FIFO reda ima jo dva Sl. 3.95 Blok dijagram FIFO reda. upravljaka signala, Full i Empty, koji se koriste za kontrolu proizvoaa i potroaa. Kada je red pun, signal Full ima vrednost 1, to predstavlja upozorenje proizvoau da e svaki naredni poslati podatak biti odbaen. Kada se red isprazan, signal Empty postaje 1, to predstavlja upozorenje potroau da novi podaci jo uvek nisu stigli. Imajui u vidu da je unutar reda ekanja redosled pristizanja podataka ouvan, FIFO red moemo konstruisati uz pomo pomerakih registara u kombinaciji sa brojaem koji e brojati vaee podatke u redu. Takva jedna realizacija FIFO reda prikazana je na Sl. 3.96(c), a tabela operacija na Sl. 3.96(a). Kraj reda je uvek na poziciji Q3 pomerakih registara, dok se poetak reda pomera za jednu poziciju na desno, pri svakom upisu novog podatka. Pri upisu, podatak se upisuje na poziciju Q3, pomeraki registri pomeraju svoj sadraj za jednu poziciju na desno, a broja se inkrementira tako da njegov sadraj ponovo ukazuje na prvi upisani podatak. Sa druge strane, pri svakom itanju podatka iz reda, uz pomo multipleksera, bira se podatak sa poetka reda i postavlja na izlaz, a broja se dekrementira. Uoimo da se proitani podatak ne ponitava, ve samo postaje nevaei, time to je broja dekrementiran. Na Sl. 3.96(b) prikazana je tabela upravljanja koja sadri vrednosti internih upravljakih signala u zavisnosti od izabrane operacije. U toku operacije itanja, sadraj pomerakih registara se ne menja, a broja broji za 1 unazad. Meutim, u toku operacije upisa, pomeraki registri e obaviti pomeranje za jednu poziciju na desno, a broja e odbrojati za 1 unapred. Broja, takoe, upravlja izborom podatka prilikom operacije itanja. U toku inicijalizacije, broja se postavlja na 1111, tako da njegovo stanje pri upisu prvog podatka u red postaje 0000. Ovakva inicijalizacija brojaa je neophodna kako bi se ostvarila pravilno upravljanje multiplekserima, koji zahtevaju vrednosti 00, 01, 10 i 11 na svojim selekcionim ulazima da bi izabrali jedan od izlaza pomerakih registara. Na osnovu tabele upravljanja moemo odrediti jednaine preostalih upravljakih signala: S0 = S1 = (Read/write)Enable D = (Read/write)Enable E = Enable Svrha izlazne logike je generisanje signala Full i Empty. Red ekanja je prazan (Empty=1) ako je stanje brojaa 111, a pun (Full=1) ako je stanje brojaa 011. U svim ostalim stanjima brojaa, oba signala, Full i Empty, imaju vrednost 0. Dakle: Full = Q2Q1Q0 Empty = Q2Q1Q0 Na Sl. 3.96(c) dat je ematski prikaz FIFO reda duine 4.

Read/write X 0 1

Enable 0 1 1 (a)

Operacija Bez promene itanje Upis

Read/write X 0 1 (b)

Enable 0 1 1

S1 0 0 1

S0 0 0 0

D X 1 0

E 0 1 1

132

Komponente digitalnih sistema

(c) Sl. 3.96 FIFO red duine 4 rei: (a) Tabela operacija; (b) Tabela upravljanja; (c) ematski prikaz.

Kao i kod steka, redovi ekanja vee duine, obino, umesto pomerakih registara, za smetanje podataka koriste RAM memoriju i sadre dva brojaa koji ukazuju na poetak i kraj reda. Takva jedna struktura poznata je pod nazivom kruni bafer. Simbolika predstava krunog bafera prikazana je na Sl. 3.97(a). Uoimo da struktura sa Sl. 3.97(a) koristi RAM memoriju kapaciteta 1K rei i dva brojaa, oznaena kao Poetak i Kraj. Broja Poetak sadri adresu najranije upisanog podatka. Uvek kada se zahteva operacija itanja, podatak se ita sa adrese na koju ukazuje broja Poetak i postavlja na U/I magistralu, a broja Poetak se inkrementira. Broja Kraj sadri 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 ee itaju nego upisuju, desie se situacija da baja Poetak ukazuje na istu lokaciju kao i broja Kraj, to znai da je red prazan. Sa druge strane, ako se u rad podaci ee upisuju nego to se itaju, broja Kraj koji se inkrementira po modulu 1024, u jednom trenutku ukazivae na istu lokaciju kao i broja Poetak, to, meutim, sada znai da je red pun. Da bi se izbegla dvosmislenost u znaenju uslova Poetak=Kraj, umesto 10-bitnih moemo koristiti 11-bitne (po modulu 2048) brojae. Kod ovakve realizacije, red ekanja je prazan ako su sadraji oba brojaa identini, dok je red pun ako se sadraji brojaa razlikuju samo na bitu najvee teine. Na Sl. 3.97 prikazana je realizacija FIFO reda koja koristi 1K RAM i dva brojaa. Takoe, FIFO sadri multiplekser preko koga se bira jedan od brojaa kao izvor adrese za RAM i komparator koji poredi sadraje brojaa. Tabela operacija je prikazana na Sl. 3.97(b), tabela upravljanja na Sl. 3.97(c), dok je na Sl. 3.97(d) dat konani ematski izgled FIFO reda zasnovanog na RAM memoriji.
Read/write X 0 1 Enable 0 1 1 Operacija Bez promene itanje Upis Read/write X 0 1 Enable 0 1 1 S X 1 0 CS 0 1 1 RWS X 0 1 E (Poetak) 0 1 0 E (Kraj) 0 0 1

(b)

(c)

133

Arhitektura mikrosistema

Sl. 3.97 FIFO red realizovan na bazi 1K RAM memorije: (a) princip rada; (b) Tabela operacija; (c) Tabela upravljanja; (d) ematski prikaz.

3.2.5

Sekvencijalne staze podataka

Staze podataka (datapaths) su sastavni deo svih standardnih procesora i ASIC kola, gde se koriste za izvrenje sloenih numerikih izraunavanja i manipulaciju podacima. Staza podataka se sastoji od izvesne koliine memorije za privremeno smetanje podataka i aritmetikih, logikih i pomerakih jedinica. Razmotrimo, na primer, realizaciju kola za sabiranje 100 32-bitnih brojeva:

sum = xi
i =1

100

Ovo izraunavanje moe 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 izvrenje tela petlja potrebna je 32-bitna staza podataka koja se sastoji od jednog registra, koji se zove akumulator, i jedne ALU jedinice. Promenljiva sum bie smetena u akumulatoru; u svakom taktnom ciklusu novo xi, bie dodato uz pomo ALU jedinice na sum, a nova vrednost promenljive sum bie ponovo upisana u akumulator. Na Sl. 3.98 prikazana je jednostavna staza podataka koja moe da obavi opisano sumiranje. Ova staza podataka sadri multiplekser, preko koga se kao levi operand ALU jedinice dovodi 0 ili ulazni podatka. Sadraj akumulator se koristi kao desni operand ALU jedinice. Takoe, sadraj akumulatora se preko trostatikog bafera vodi na izlaz staze podataka. Akumulator je pomeraki 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 upravljaka 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. Uopteno govorei, veina digitalnih projektanata postupa na isti nain kada projektuje sisteme sline opisanom. Vrednosti promenljivih i konstante se uvaju u registrima ili memoriji, odakle se itaju nakon rastue ivice taktnog signala i sve do sledee rastue ivice transformiu uz pomo kombinacine logike, da bi, konano, sa sledeom rastuom 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) Upravljaka re.

U toku svakog taktnog ciklusa, upravljaka re odreuje operaciju staze podataka. Izraunavanje zbira 100 brojeva zahteva 102 taktna ciklusa. Upravljaka re bie ista u svim taktnim cikusima osim u prvom i poslednjem. U prvom taktnom ciklusu, neophodno je obrisati akumulator (sum=0), u sledeih 100 taktnih ciklusa na akumuliranu sumu dodaje se novi broj, a u poslednjem taktnom ciklusu sadraj akumulatora se prenosi na izlaz. Iako opisana staza podataka moe biti iskoriena i za neka druga jednostavna aritmetika izraunavanja, sloenija izraunavanja zahtevaju vei broj privremenih promenljivih kao i sloeniju stazu podataka koja, na primer, za smetanje promenljivih, umesto akumulatora, koristi registarski fajl. Na Sl. 3.99 prikazan je primer sloenije staza podataka koja sadri multiplekser, registarski fajl sa 8 registra i tri porta, jednu ALU jedinicu, pomera i izlazni trostatiki bafer. U ovom sluaju, 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 pomeraa, dok je format upravljake rei prikazana na Sl. 3.99(d). Uoimo da je za upravljanje stazom podataka neophodna 20-bitna upravljaka re, koja odreuje sva odredita, izvore podataka kao i operacije u stazi podataka. Radi boljeg razumevanja rada staze podataka, iskoristiemo 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 pomerakog registra; (d) Upravljaka re.

PRIMER 3.12 Realizacija brojaa jedinica Problem: Korienjem staze podataka sa Sl. 3.99, projektovati broja jedinica koji odreuje broj 1-ca u ulaznoj rei. Registar R0 registarskog fajla sadri konstantu 0. Reenje: Za opis algoritma rada brojaa jedinica koristiemo etiri promenljive: Podatak, BrojJedinica, Maska i Temp. Promenljiva Podatak sadrae vrednost ulazne rei, tj. rei u kojoj se broje jedinice. Algoritam analizira promenljivu Podatak, bit po bit, od bita najmanje do bita najvee teine i dodaje 1 na BrojJedinica za svaku 1 na koju naie u ulaznoj rei. Promenljiva Maska sadri konstantu 1, a promenljiva Temp se koristi za privremeno uvanje bita najmanje teine promenljive Podatak. Nakon inicijalizacije, algoritam izdvaja bit najmanje teine promenljive Podatak i smeta ga u promenjljivu Temp, zatim dodaje Temp na BrojJedinica i konano, pomera promenljivu Podatak za jednu poziciju na desno. Ova sekvenca operacija se ponavlja sve dok promenljiva Podatak sadri vrednost razliitu od sve nule. Uoimo da e za razliite ulazne rei, broj ponavljanja ove sekvence operacija biti razliit.

136

Komponente digitalnih sistema

PRIMER 3.12 (nastavak ) Na Sl. 3.101(a), prikazan je algoritam brojanja jedinica. Naredbe 1, 2 i 3 se koriste za inicijalizaciju promenljivih. Naredbe 4 i 5 dodaju bit najmanje teine promenljive Podatak na tekuu vrednost promenljive BrojJedinica, dok naredba 6 pomera sadraj promenljive Podatak za jednu poziciju na desno. (Pri pomeranju na desno, u bit najvee teine upisuje se 0.) Konano, naredba 7 prenosi sadraj promenljive BrojJedinica na izlaz.

Upravljaka re 1 2 3 4 5 6 7

IE 1 0 0 0 0 0 0

Adresa upisa R1 R3 R2 R4 R3 R1 -

Adresa itanja A X 0 0 R1 R3 R1 R3 (c)

Adresa itanja B X 0 X R2 R4 0 0

ALU Operacija X Sabiranje Inkrement AND Sabiranje Sabiranje Sabiranje

Operacija pom. reg. Proputanje Proputanje Proputanje Proputanje Proputanje Pomeranje na desno Proputanje

OE 0 0 0 0 0 0 1

Sl. 3.101 Algoritam brojanja jedinica: (a) Polazni algoritam; (b) Dodela registara; (c) Upravljake rei brojaa jedinica.

Prvi korak prilikom projektovanja hardverske realizacije algoritma je pridruivanje promenljivih ragistrima registarskog fajla. Kao to je prikazano na Sl. 3.101(b), promenljive Podatak, Maska, BrojJedinica i Temp, pridruene su redom registrima R1, R2, R3 i R4. Nakon to su promenljive dodeljene registrima, za svaku algoritamsku naredbu odreuje se upravljaka re, kao to je prikazano na Sl. 3.101(c). Upravljaka re je podeljena na polja koja definiu operacije ALU jedinice i pomerakog registara zajedno sa adresama registara koji slue kao izvori operanada i adresom registra gde se smeta rezultat. U cilju upravljanja stazom podataka, pretpostaviemo da se Broja jedinica realizuje kao nezavisni modul koji poinje sa radom uvek kada signal Start postane 1, a postavlja 1 na izlazu Done odmah nakon to je zavrio izraunavanje. Kao to se moe videti na Sl. 3.103, konani automat koji opisuje rad Brojaa jedinica, ima osam stanja. Broja jedinica ostaje u stanju S0 sve dok signal Start nepostane jednak 1, a zatim, u sledeih sedam stanja, S1, S2, ..., S7, Broja jedinica radi shodno algoritmu sa Sl. 3.101(a). Konano, u stanju S7, Broja jedinica postavlja rezultat na izlaz, aktivira signal Done i vraa se u stanje S0.

Sl. 3.101 Algoritam brojanja jedinica prikazan u obliku konanog automata

137

Arhitektura mikrosistema

Upravljaka jedinica Brojaa jedinica ima dva ulazna signala, Start i Podatak<>0 i jedan izlazni signal, Done. Signali Start i Done se koriste za komunikaciju sa okruenjem, dok signal Podatak0, u sutini, predstavlja statusni signal staze podataka. U svakom taktnom ciklusu, upravljaka jedinica generie 20 bita upravljake rei. Uoimo da su za realizaciju osam stanja neophodna tri D flip-flopa, oznaena sa Q2, Q1 i Q0. Na Sl. 3.103(a), (b) i (c) su prikazani tabela sledeeg stanja, odgovarajua Karnoova mapa i jednaine sledeeg stanja. Izlazna logika Brojaa jedinica se dobija na osnovu upravljake rei prikazane na Sl. 3.101(c). Na Sl. 3.103(a) je prikazana tabela istinitosti izlazne logike, koja je dobijena na osnovu Sl. 3.101(c) zamenom odgovarajuih binarnih vrednosti za svaki mnemonik. Napomenimo da se minimalni izrazi upravljakih signala mogu dobiti na osnovu tabele istinitosti sa Sl. 3.103(a), primenom nekog od metoda logike minimizacije. Konano, na Sl. 3.104 dat je ematski prikaz Brojaa jedinica koji koristi stazu podataka sa Sl. 3.99(a).
Adresa upisa

Stanje S0 S1 S2 S3 S4 S5 S6 S7

Q2 0 0 0 0 1 1 1 1

Q1 0 0 1 1 0 0 1 1

Q0 0 1 0 1 0 1 0 1

Start (Podatak=0) 00 01 10 11 000 000 001 001 010 010 010 010 011 011 011 011 100 100 100 100 101 101 101 101 110 110 110 110 100 111 100 111 000 000 000 000 (a)

Q1Q0 00 Start(Pod=0) 00 01 10 11 000 000 001 001

Q2=0 01 11 010 010 010 010 100 100 100 100

10 011 011 011 011

00 101 101 101 101 (b)

Q2=1 01 11 110 110 110 110 000 000 000 000

10 100 111 111 100

Q2=Q2 Q1Q0+Q2Q1 +Q2Q0

Q1=Q1Q0+Q2Q1Q0+ (Podatak=0)Q1Q0 Q0=Q2Q1Q0+Q2Q1Q0+ StartQ1Q0+(Podatak=0)Q2Q0


(c) Sl. 3.103 Logika sledeeg stanja Brojaa jedinica: (a) Tabela sledeih stanja; (b) Karnoova mapa; (c) Jendaine sledeeg stanja.

Adresa itanja A

Adresa itanja B

Operacija ALU 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 S2 S3 S4 S5 S6 S7 0 0 0 1 1 1 1 0 1 1 0 0 1 1

1 0 1 0 1 0 1

1 0 0 0 0 0 0

0 0 0 1 0 0 X

0 1 1 0 1 0 X

1 1 0 0 1 1 X

1 1 1 1 1 1 0

X X X 0 0 0 0

X X X 0 1 0 1

X X X 1 1 1 1

0 0 0 1 1 1 1

X X X 0 1 X X

X X X 1 0 X X

X X X 0 0 X X

0 0 0 1 1 0 0

X X X X X X 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 1 1 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0

0 0 0 0 0 0 1

IE =Q2 Q1 Q0 WA2=Q1 Q0 WA1=Q2Q0+Q2 Q1 WA0=Q1 Q0+Q1Q0 WE =Q2Q1 +Q2 Q0+Q1Q0

(a) RAA2=0 RAB=Q0 RAA1=Q0 RAB1=Q0 RAA0=1 RAB0=0 REA=Q1 REB=Q2Q1

M=Q1+Q0 S1=Q2 Q0 S0=1 S2=S1=Q2Q1Q0 S0=0 OE=Q2Q1Q0

(b) Sl. 3.103 Izlazna logika upravljake jedinice Brojaa jedinica: (a) Tabela izlazne logike; (b) jednaine izlazne logike

138

Komponente digitalnih sistema

Sl. 3.104 ematski prikaz brojaa jedinica.

139

Arhitektura mikrosistema

3.2.6

Paralelne staze podataka

U odeljku 3.2.5 opisano je vie primera jednostavnih staza podataka. Meutim, za primene koje zahtevaju veliku brzinu obrade podataka, takve, jednostavne staze podataka bile bi verovatno previe spore. Poveanje performansi zahteva redizajniranje ovih staza podataka na nain koji e omoguiti konkurentno izvrenje vie operacija. Staze podataka koje omoguavaju istovremeno (konkurentno) izvrenje vie opcija zovu se paralelne staze podataka. Oigledan nain za paralelizaciju staze podataka sastoji se u poveanju broja portova registarskog fajla i korienju nekoliko funkcionalnih jedinica, kao to je prikazano na primeru paralelne staze podataka sa Sl. 3.105. Uoimo da ova staza podataka ima 6-to portni registarski fajl (sa 4 porta za itanje i 2 za upis), est magitrala (etiri za prenos operanada i dve za prenos rezultata) i etiri funkcionalnih jedinice (ALU, pomera, mnoa i delitelj). Prikazana staza podataka moe da izvrava dve operacije u paraleli, jednu u ALU jedinici ili pomerau i drugu u mnoau ili delitelju.

Sl. 3.105 Paralelna staza podataka.

Sa druge strane, staza podataka saSl. 3.105, ipak omoguava samo ogranien paralizam, s obzirom da ne moe istovremeno da obavlja bilo koje dve operacije. Na primer, u ovoj stazi podataka nije mogue u paraleli obaviti dva sabiranja ili dva mnoenja (zato to postoji samo jedna ALU jedinica i samo jedan mnoa). Drugim reima, staza podataka sa Sl. 3.105 moe ispoljiti dva puta bolje performanse u odnosu na jednostavne staze podataka iz odeljka 3.2.5, samo pod uslovom da algiritam ne zahteva ovakav tip paralelizma. Takoe, u ovoj stazi podataka komponente nisu potpuno povezane, to znai da izvesni tipovi paralelizma, koji iako postoje u algoritmu, nee moi biti iskorieni. Na primer, s obzirom da ALU jedinica i pomera, kao i mnoa i delitelj koriste zajednike magistrale za prenos operanada i rezultata, staza podataka ne moe u isto vreme da izvrava operaciju mnoenja i operaciju deljenja, odnosno operaciju sabiranja i operaciju pomeranja. Drugim reima, ak iako algoritam omoguava istovremeno izvrenje operacija sabiranja i pomeranja, staza podataka je u mogunosti da u jednom vremenu obavlja samo jednu od ove dve operacije, bez obzira to hardverski resursi, u vidu funkcionalnih jedinica, postoje. Na osnovu prethodne diskusije moemo zakljuiti da poveanje performansi kod paralelne staze podataka zavisi ne samo od broja i tipa ugraenih funkcionalnih jedinica, ve i od naina na koji su funkcionalne jedinice povezane, kao i od nivoa i tipa paralelizma koji je sadran u algoritmu koji se izvrava na toj stazi podataka. Drugim reima, najbolji odnos cena/performanse se postie ako su tipovi jedinica i nain njihovog povezivanja usklaeni sa paralelizmu koji je dostupan u algoritmu. Takoe, moramo biti svesni injenice da, tipino, algoritam ne obezeuje isti nivo paralizma za sve vreme svog izvrenja.

140

Komponente digitalnih sistema

U optem sluaju, da bi se postiglo najbolje poklapanje izmeu algoritma i namenski projektovane staze podataka, potrebno je nai optimalan broj ALU jedinica, brojaa, registarskih fajlova, memorija, sa razliitim brojem portova, koji su povezani pomou vie 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. Takoe, mogue je da funkcionalne jedinice dobijaju operande sa vie od jedne magistrale, mada takvo jedno reenje zahteva ugradnju dodatnih multipleksera na ulazima funkcionalnih jedinica. Takoe, mogue je ispred ulaza i izlaza funkcionalne jedinice ugraditi leeve, koji bi se koristili za privremeno smetanje ulaznih operanada i rezultata. Na ovaj nain se znaajno skrauje vreme u kome se magistrale koriste za prenos operanada, ime se posredno poveava saobraaj na magistralama.

Sl. 3.106 Primer uoptene staze podataka.

Sa druge strane, ugradnja ulaznih i izlaznih leeva zahteva sloenije upravljanje, s obzirom da bi kod takvog reenja obavljanje svake operacije zahteva vie od jednog taktnog ciklusa. Najmanje jedan taktni ciklus je neophodan za svaku od sledeih aktivnosti: (a) pribavljanje operanada iz registara, registarskih fajlova ili memorije i upis u ulazne registre funkcionalnih jedinica, (b) izvrenje operacije i upis rezultata u izlazne registre i (c) smetanje rezultata iz izlaznih registara nazad u registre ili memoriju. Na Sl. 3.106 prikazan je primer jedne ovakve staze podataka. Uoimo da staza podataka sadri jedan broja, jedan registar, tro-portni registarski fajl i memoriju. Za izraunavanje se koriste dve ALU jedinice i mnoa, dok se za spregu komponenti koriste etiri magistrale. Kao to se moe videti, kod ALU1 ne leevi nisu ugraeni, kod ALU2 postoje leevi i na ulazima i na izlazima, dok kod mnoaa leevi postoje samo na ulazima. U ovakvoj strukturi, ALU1 moe da dobije svoj levi operand preko magistrala Magistrala_2 i Magistrala_3, dok desni operand mnoaa moe doi bilo preko Magistrala_1 bilo preko Magistrala_4. Slino, memorijske komponente mogu da prime podatke preko vie od jedne magistrale. Ovakav tip staze podataka se esto koristi kod aplikaciono-specifinih integrisanih kola da bi se za dati algoritam ostvario najbolji odnos performanse/cena. 3.2.7 Projektovanje upravljake jedinice

U prethodnim odeljcima pretpostavili smo da se upravljaka jedinica projektuje shodno standardnom modelu konanog automata, to znai da se sastoji od logike sledeeg stanja, registra stanja i izlazne logike. Primer takve upravljake jedinice se moe videti na Sl. 3.107(a), gde se registar stanja sastoji od D flip-flopova, a logika sledeeg stanja i izlazna logika su realizovane kao dvonivolske ili vie-nivolske kombinacione mree. Takoe, ovakav tip upravljake jedinice iskorien je u primeru 3.12. Meutim, u nekim sluajevima, upravljaka

141

Arhitektura mikrosistema

jedinica moe imati ak vie hiljada stanja i vie stotina ulaza i izlaza i upravljakih signala. Projektovanje takvih upravljakih jedinica na standardni nain je previe sloeno. Iz tog razloga, u ovom odeljku bie opisano nekoliko alternativnih stilova projektovanja koji se mogu primeniti za realizaciju sloenih upravljakih jedinica.
Upravljaki ulazi

Upravljaki ulazi

Statusni signali

Statusni signali

. . .

. . .
Logika sledeeg stanja

Logika sledeeg stanja

. . .
D Q

Izlazna logika

. . .

Upravljaki signali staze podataka

. . . . . .

Upravljaki signali staze podataka

Registar stanja

Upravljaki izlazi

. . .

. . .
Izlazna logika Upravljaki izlazi

(a)
Upravljaki ulazi

(b)

Upravljaki ulazi load/count Statusni signali Inkrementer Interno grananje Logika sledeeg stanja Logika sledeeg stanja Statusni signali

Eksterno grananje

. . .
Izlazna logika

Upravljaki signali staze podataka

. . .
Eksterno grananje Izlazna logika

Upravljaki signali staze podataka

Upravljaki izlazi

Upravljaki izlazi

(c)
Upravljaki ulazi

(d)

. . .
Izbor uslova mux

Statusni signali

Inkrementer

ROM ili PROM

. . .

Upravljaki signali staze podataka

Eksterna adresa Logika za izbor adrese Upravljaki izlazi

(e)

Sl. 3.107 Stilovi realizacije upravljake jedinice: (a) bazini model upravljake jedinice; (b) upravljaka jedinica sa registrom stanja i dekoderom; (c) upravljaka jedinica sa brojaem; (d) upravljaka jedinica sa registrom stanja i stekom; (e) upravljaka jedinica sa registrom stanja, stekom ROM memorijom.

Upravljaka jedinica sa dekoderom. Logika sledeeg stanja i izlazna logika upravljake jedinice se mogu pojednostaviti korienjem registra stanja i dekodera, kao to je prikazano na Sl. 3.107(b). Kod ovog reenja, svakom stanju odgovara jedan izlazni signal dekodera signal stanja, koji je 1 kada je registar stanja u tom konkretnom stanju, a 0 inae. Upotrebom dekodera pojednostavljuju se jednaine za ulaze registra stanja, upravljake signale staze podataka i upravljake izlaze. U svim sluajevima kada neki od ovih signala zavisi samo od tekueg stanja (tj. sadraja registra stanja) on se moe 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, najee, imaju samo dva ulaza, gde je jedan ulaz signal stanja, a drugi statusni ili ulazni signal, kao to se moe videti na Sl. 3.107(b). Upravljaka jedinica sa brojaem. Sloenost logike sledeeg stanja se moe smanjiti ako uoimo da kod veine konanih 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 moe dobiti inkrementiranjem koda prethodnog stanja, registar stanja se moe zameniti brojaem. Ovakav stil projektovanja upravljake jedinice prikazan je na Sl. 3.107(c). Kao to se vidi, logici sledeeg stanja dodata su jo dva signala, signal za upravljanje brojaem (load/count) i signal za upravljanje multiplekserom. Signal load/count moe da inkrementira broja (to odgovara prelazu upravljake jedinice u sledee stanje iz niza) ili upie u broja kod stanja grananja (stanje u koje se prelazi prilikom izlaska iz niza). U drugom sluaju, stanje grananja odreuje se interno (logika sledeeg stanja) ili se postavlja spolja preko upravljakih ulaza upravljake jedinice. Izbor izmeu ove dve opcije se realizuje multiplekserom. Upravljaka jedinica sa stekom. Sloenost upravljake jedinice se moe smanjiti ako se esto korieni zadaci kodiraju kao potprogrami. Na primer, umesto da se ista upravljaka sekvenca ponovi nekoliko puta, ona se moe zameniti nizom poziva potprograma. Za realizaciju ovog koncepta neophodan je stek za uvanje stanja koje sledi odmah nakon poziva potprograma. Upravljaka jedinica koja koristi stek prikazana je na Sl. 3.107(d). Kao to se vidi, stek uva naslednika tekueg stanja, koje se, po zavretku potprograma, upisuje u registar stanja. Uoimo da su logici sledeeg stanja dodati novi signali, koji upravljaju upisom i itanjem iz steka. Mikroprogramsko upravljanje. Kod ovog stila projektovanja upravljake jedinice, logika sledeeg stanja zamenjena je upravljakom memorijom, koja se obino realizuje kao ROM ili PROM memorija. Kod reenja ovog tipa, registar stanja slui kao generator adresa za upravljaku memoriju, kao to se moe videti na Sl. 3.107(e). Da bi reenje bilo efikasno, bitno je ograniiti broj upravljakih i statusnih signala koji utiu na izbor sledeeg stanja, poto svaki dodatni upravljaki ili statusni signal duplira cenu upravljake memorije. Iz tog razloga, za izbor sledeeg stanja koristi se samo jedan ulazni ili statusni signal, to redukuje mogunost grananja na dvostruko grananje. Drugim reima, sledea adresa je inkrementirana tekua adresa ili jedna od adresa grananja. Dvostruko grananje je realizovano korienjem dva kaskadno povezana adresna multipleksera i jednog multipleksera uslova preko koga se bira jedan od upravljakih ili statusnih signala koji e upravljati izborom sledee adrese. Sledea adresa moe biti: inkrementirana tekua adresa, proitana iz stek ili ROM memorije ili postavljena iz okruenja. Stil projektovanja upravljake jedinice sa Sl. 3.107(e), obino se zove mikroprogramsko upravljanje, a zadatak prevoenja ASM dijagrama u sadraj ROM memorije poznat kao mikroprogramiranje. Najee korieni stilovi projektovanja upravljake jedinice su direktan pristup, koji se koristi kod ASIC kola, i mikroprogramsko upravljanje, koje se esto koristi kod sloenih procesora.

143

ASM dijagrami

ASM dijagram (Algorithmic State Machine Diagram) predstavlja standardnu grafiku notaciju, u formi dijagrama toka, koja se koristi za opis (specifikaciju) ponaanja (funkcionisanja) digitalnih sistema. ASM dijagrami se koriste prilikom projektovanja digitalnog hardvera koji realizuje (implementira) neki konkretan algoritam. Uz pomo ASM dijagrama, mogue je opisati rad digitalnog sistema na apstraktnom nivou, nezavisno od konkretne hardverske realizacije. Drugim reima, ASM dijagram govori ta sistem radi (tj. definie 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 slue za opis algoritama. Softverske dijagrame toka koriste programeri, kao poetni korak u procesu razvoja programa ija je namena da omogui izvrenje konkretnog algoritam na raunskoj maini. ASM dijagrame koriste projektanti digitalnog hardvera, kao poetni korak u procesu realizacije konkretnog algoritma direktno u hardveru. U pogledu interpretacije, razlika izmeu softverskog dijagrama toka i ASM dijagrama ogleda se pre svega u odnosu na to kako protok vremena utie na rad algoritma. Raunska maina izvrava algoritam instrukciju-poinstrukciju; svaka instrukcija se obavlja u toku jednog instrukcijskog ciklusa, pri emu instrukcijski ciklusi mogu imati razliito trajanje. S toga, softverski dijagram ne navodi taan iznos vremena koji je potreban da bi se izvrio jedan algoritamski korak, ve samo jednoznano odreuje tok (sekvencu) algoritamskih koraka. Programer je svestan injenice da izvrenje algoritma na raunskoj maini zahteva neko konano vreme, koje zavisi od broja i sloenosti operacija koje treba izvriti, ali sam tok algoritma i konani rezultat ne zavise od vremena izvrenja pojedinanih operacija. Sa druge strane, rad digitalnog sistema je iniciran taktnim signalom, a u toku jednog taktnog perioda digitalni sistem moe da obavi jednu ili vie elementarnih operacija. Naime, u radu digitalnog sistema ispoljava se paralelizam. S toga, osnovna pretpostavka kod ASM dijagram se sastoji u sledeem: svaki algoritamski korak traje isto, fiksno vreme (jednako taktnom periodu), a sve operacije obuhvaene jednim algoritamskim korakom se izvravaju istovremeno (u paraleli). Za crtanje ASM dijagrama koriste se sledei grafiki simboli: pravougaonici, zaobljeni (ovalni) pravougaonici, rombovi i strelice koje povezuju pravougaonike, zaobljene pravougaonike i rombove. ASM dijagrami koji sadre samo pravougaonike i rombove opisuju konane automate Murovog tipa, dok se za opis konanih automata Milijevog tipa dodatno koriste i zaobljeni pravougaonici. 4.1 Stanja

U ASM dijagramu, svaki pravougaonik definie jedno stanje. Uobiajeno je da se stanja imenuju, a ime stanja zapisuje uz spoljnu ivicu odgovarajueg pravougaonika. Pojam tekue stanje odnosi se na pravougaonik ASM dijagrama koji je aktivan u toku konkretnog taktnog ciklusa. Pojam sledee stanje odnosi se na pravougaonik ASM dijagrama koji e postati aktivan u toku narednog taktnog ciklusa. Svaki par tekue-sledee stanje povezan je strelicom koja polazi sa pravougaonika tekueg, a zavrava se na pravougaoniku sledeeg stanja. S obzirom da ASM dijagram sadri konaan broj stanja, gde svako stanje traje tano jedan taktni ciklus, i da svaki digitalni sistem radi bez prestanka (sve dok je pod napajanjem), svaki ASM dijagram mora sadrati barem jednu petlju. Na Sl. 4.1 prikazan je ASM dijagram sa tri stanja. Uz pretpostavku da je poetno 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 izmeu 0.5 i 1.0s, ASM dijagram je u stanju UTO, da bi se u vremenu izmeu 2.0 i 2.5 ponovo naao u istom tom stanju.

Arhitektura mikrosistema

Vreme 0.0 0.5 1.0 1.5 2.0 2.5

Tekue stanje ZELENO UTO CRVENO ZELENO UTO CRVENO

Sledee stanje UTO CRVENO ZELENO UTO CRVENO ZELENO

Sl. 4.1 ASM dijagram sa tri stanja

4.2

Komande

Normalno, pravougaonici ASM dijagrama nisu prazni, kao u primeru sa, ve sadre komande. Razlikujemo tri tipa komandi: 4.2.1 Postavljanje jednobitnih signala Postavljanje viebitnih signala Naredbe registrarskog prenosa Postavljanje jednobitnih signala
ZELENO

Signal je jedan bit, ili grupa vie bitova, koji prenose binarnu informaciju izmeu digitalnih kola ili sklopova. Uobiajeno je da projektant dodeljuje imena signalima kao bi dokumentovao njihovu namenu. U hardveru, jednobitnom signalu odgovara ica (veza), dok viebitnom signalu odgovara magistrala. U ASM dijagramu, signali se javljaju pod svojim imenima. Jednobitni signal moe imati vrednost 0 ili 1, pri emu se jedna od ove dve vrednosti smatra podrazumevanom. U kontekstu jednobitnih signala, pojam signal je postavljen znai da signal uzima vrednost koja je razliita od podrazumevane. Na primer, ako za podrazumevanu vrednost usvojimo 1, postavljeni signal imae vrednost 0. Postojanje imena signala unutar pravougaonika ASM dijagrama znai da je taj signal postavljen za sve vreme dok je ASM dijagram u stanju koje je pridrueno odgovarajuem pravougaoniku. U ostalim pravougaonicima, gde se ime signala ne javlja, signal ima podrazumevanu vrednost.

ZUTO STOP

CRVENO STOP

Sl. 4.2 ASM dijagram sa komandnim (upravljakim) izlazima

Na Sl. 4.2, prikazan je ASM dijagram koji sadri jednobitni signal STOP. Pod pretpostavkom da je podrazumevana vrednost signala STOP 0, ovaj signal imae vrednost 1 u stanjima UTO i CRVENO, a vrednost 0 u stanju ZELENO. Ponaanje ASM dijagrama ilustrovano je sledeom tabelom:
Vreme 0.0 0.5 1.0 1.5 2.0 2.5 Tekue stanje ZELENO UTO CRVENO ZELENO UTO CRVENO Sledee stanje UTO CRVENO ZELENO UTO CRVENO ZELENO Signali STOP=0 STOP=1 STOP=1 STOP=0 STOP=1 STOP=1

4.2.2

Postavljanje viebitnih signala

Za razliku od jednobitnih, viebitni signali mogu uzeti vie od dve razliite vrednosti. Tanije, n-to bitni signal moe biti postavljen na jednu od 2n razliitih vrednosti. Iz tog razloga, prosto navoenje imena signala nije

146

ASM Dijagrami

dovoljno da se jednoznano ukae na vrednost na koju se viebitni signal postavlja, ve se za oznaavanje postavljanja viebitnih signala koristi naredba dodele, kod koje se ime signala nalazi sa leve, a vrednost na koju se signal postavlja sa desne strane znaka jednakosti (=). U svim stanjima (pravougaonicima) gde vrednost viebitnog signala nije eksplicitno definisana naredbom dodele, signal uzima svoju podrazumevanu vrednost. Na Sl. 4.3, pikazan je ASM dijagram koji pored jednobitnog signala STOP sadri i dvobitni signal BRZINA. Mogue vrednosti signala BRZINA su 0, 1, 2 i 3, ili, u binarnom obliku 00, 01, 10 i 11, respektivno. Pod pretpostavkom da je podrazumevana vrednost signala BRZINA 0, ponaanje opisano ASM dijagramom sa Sl. 4.3, moe se predstaviti sledeom tabelom:

ZELENO BRZINA=3

ZUTO

STOP BRZINA=1

CRVENO STOP

Sl. 4.3 ASM dijagram sa viebitnim izlazom Vreme 0.0 0.5 1.0 1.5 2.0 2.5 Tekue stanje ZELENO UTO CRVENO ZELENO UTO CRVENO Sledee stanje UTO CRVENO ZELENO UTO CRVENO ZELENO Signali STOP=0 BRZINA=11 STOP=1 BRZINA=01 STOP=1 BRZINA=00 STOP=0 BRZINA=11 STOP=1 BRZINA=01 STOP=1 BRZINA=00

Jasno se uoava da signal BRZINA ima vrednost 0 u stanju CRVENO, vrednost 1 u stanju UTO i vrednost 3 u stanju ZELENO. 4.2.3 Registarski prenos
ZELENO BRZINA=3

U digitalnim sistema, registri se koriste kao memorijski elementi za uvanje vrednosti promenljivih koje su definisane algoritmom. Dodela vrednosti promenljivoj je ekvivalentna operaciji upisa u odgovarajui registar, a registar zadrava upisanu vrednost sve do novog upisa. Treba praviti jasnu razliku izmeu signala i registarskih promenljivih. Signali su proste veze (ice), koje, za razliku od registara, nemaju sposobnost memorisanja, ve je njihova vrednost direktno odreena tekuim stanjem ASM dijagrama. Operacija upisa u registar se oznaava naredbom registarskog prenosa, tj. naredbom dodele kod koje je znak jednakosti (=) zamenjen horizontalnom strelicom usmerenom na levo (). Ova naredba ukazuje na vrednost koja se upisuje (prenosi) u registar u trenutku poetka sledeeg taktnog ciklusa, tj. pri ulasku u sledee stanje. Ukoliko se ime registra ne javlja sa leve strane ni jedne naredbe registarskog prenosa u okviru nekog pravougaonika, to znai da e sadraj tog registra ostati nepromenjen prilikom ulaska u sledee stanje.

ZUTO

STOP BRZINA=1 BROJAC<-BROJAC+1

CRVENO

STOP BROJAC<-BROJAC+2

Sl. 4.4 ASM dijagram sa registarskim izlazom.

Razmotrimo ASM dijagram sa Sl. 4.4, koji pored dva signala, STOP i BRZINA, sadri i registarsku promenljivu BROJA. Rad ASM dijagrama, pod pretpostavkom da je promenljiva BROJA tro-bitna sa poetnim stanjem 000, detaljno je opisan sledeom tabelom:
Vreme 0.0 0.5 1.0 1.5 2.0 2.5 Tekue stanje ZELENO UTO CRVENO ZELENO UTO CRVENO Sledee stanje UTO CRVENO ZELENO UTO CRVENO ZELENO Signali i promenljive STOP=0 BRZINA=11 BROJA=000 STOP=1 BRZINA=01 BROJA=000 STOP=1 BRZINA=00 BROJA=001 STOP=0 BRZINA=11 BROJA=011 STOP=1 BRZINA=01 BROJA=011 STOP=1 BRZINA=00 BROJA=100

Za razliku od signala STOP i BRZINA, promenljiva BROJA nije u funkciji iskljuivo tekueg stanja. Na primer, uvek kada je ASM dijagram u stanju ZELENO, signal STOP je 0. Sa druge strane, prilikom prvog

147

Arhitektura mikrosistema

ulaska u stanje ZELENO, registar BROJA ima vrednost 000, ali kod drugog ulaska u isto stanje, vrednost promenljive BROJA je 001, itd. Treba uoiti da operacija ukazuje na odloenu ili zakasnelu dodelu (delayed assignment), tj. na dodelu koja se obavlja u trenutku ulaska u sledee stanje u odnosu na stanje u kome je naredba zakasnele dodele navedena. To predstavlja sutinsku razliku u odnosu na naredbu dodele koja se koristi kod konvencionalnih softverskih programskih jezika, kakvi su, na primer, C ili FORTRAN. Mehanizam odloene dodele moe se lako uoiti u gornjem primeru. Naredba BROJA BROJA + 1, koja uveava vrednost promenljive BROJA za jedan, nalazi se u stanju UTO. Meutim, kako se moe uoiti u gornjoj tabeli, za sve vreme dok je ASM u stanju UTO, ova naredba nema dejastva, a promenljiva BROJA zadrava vrednost koju je imala u prethodnom stanju (ZELENO). Tek kada se stanje UTO napusti i novo stanje postane stanje ZELENO, promenljiva BROJA se uveava za jedan. Drugim reima, dejstvo naredbe BROJA BROJA + 1 je odloeno do trenutka poetka sledeeg stanja. 4.3 Odluke

Kod svih prethodno navedenih primera ASM dijagrama, tok izvrenja jednoznano je odreen, tj. redosled promene stanja je uvek isti: ZELENO-UTO-CRVENO. Meutim, esto postoji potreba da se tok izvrenja promeni, u zavisnosti od tekue vrednosti jednog ili vie signala ili registarskih promenljivih. Kod ASM dijagrama, tok izvrenja se regulie odlukama, koje se grafiki predstavljaju u vidu rombova. Romb ima jedan ulaz i dva izlaza, pri emu svaki izlaz ukazuje na jedno od dva alternativna sledea stanja ili ponovo na romb u kome se nastavlja odluivanje o novom stanju ASM dijagrama. Odluka koja se nalazi unutar romba deava se u isto vreme (tj. u istom taktnom ciklusu) kada i operacije navedene u pravougaoniku koji neposredno prethodi rombu. Rezultat odluke odreuje du kojeg od dva izlaza romba se nastavlja izvrenje ASM dijagrama. Koriste se dve vrste odluka: 4.3.1 Relacije Externi statusi Relacije

Relacije su odluke koje se donose na osnovu tekuih vrednosti internih signala i registara. Relacioni izrazi koji se koriste za opis odluka, mogu sadrati relacione operatore (==, <, >, <=, >=, !=), i logike operatore (&&, ||, !). Takoe, ako su svi operandi koji uestvuju u konkretnoj relaciji jednobitni, dozvoljeno je koristiti i bitske logike operatore (&, |, ~). Navedeni relacioni i logiki operatori imaju isto znaenje kao kod programskog jezika C. U sluajevima kada relacija, navedena u rombu, ukljuuje ime registra, koji se, takoe, koristi i u pravougaoniku koji prethodi rombu, akcija koja je rezultat odluke se obino 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 izvravaju i operacije navedene u pravougaoniku koji neposredno prethodi tom rombu, prilikom izraunavanja relacije treba ignorisati dejstvo svih naredbi registarskog prenosa koje pripadaju pravougaoniku. Eventualni registarski prenos je aktivnost koja e se desiti tek na poetku sledeeg taktnog ciklusa znai, tek nakon to je odluka o novom stanju doneta. Na Sl. 4.5 prikazan je ASM dijagram koji sadri odluku BROJA != 0 (!= znai razliito). Ako je vrednost registarske promenljive BROJA razliita 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 razliito od 0. Meutim, odluka BROJA != 0 zasnovana je na tekuoj vrednosti registra BROJA, koja ostaje 000 sve do poetka sledeeg taktnog ciklusa. Iz tog razloga, ASM naputa stanje UTO i ulazi u stanje CRVENO. Prilikom sledeeg ulaska u stanje UTO, BROJA ima vrednost 011, a ASM ostaje u ovom stanju sledeih est taktnih ciklusa. Razlog za naputanje stanja UTO nalazi se u injenici da je BROJA trobitna promenljiva,

Sl. 4.5 ASM dijagram sa odlukom.

148

ASM Dijagrami

ija je najvea 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 sledeoj tabeli:
Vreme 0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4,0 4.5 5.0 Tekue stanje ZELENO UTO CRVENO ZELENO UTO UTO UTO UTO UTO UTO CRVENO Sledee stanje UTO CRVENO ZELENO UTO UTO UTO UTO UTO UTO CRVENO ZELENO Signali i promenljive STOP=0 BRZINA=11 BROJA=000 STOP=1 BRZINA=01 BROJA=000 STOP=1 BRZINA=00 BROJA=001 STOP=0 BRZINA=11 BROJA=011 STOP=1 BRZINA=01 BROJA=011 STOP=1 BRZINA=01 BROJA=100 STOP=1 BRZINA=01 BROJA=101 STOP=1 BRZINA=01 BROJA=110 STOP=1 BRZINA=01 BROJA=111 STOP=1 BRZINA=01 BROJA=000 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, pree u stanje CRVENO. Uoava se da je svrha uvoenja registra BROJA produenje trajanja stanja UTO na 6 taktnih ciklusa. 4.3.2 Eksterni statusi

Veina digitalnih sistema u toku svog rad ineraguje sa svojim okruenjem. Okruenje mogu initi drugi digitalni sistemi, nedigitalni ureaji, kao to su prekidai ili senzori, pa ak i ovek koji posredstvom odgovarajuih ulazno-izlaznih ureaja komunicira sa sistemom. Reiemo da se okruenje digitalnog sistema sastoji od nezavisnih aktora, koji koordinirano, ali u paraleli, rade i interaguju kako sa digitalnim sistemom tako i izmeu sebe. Sa take gledita projektanta, detalji koji se odnose na rad i implementaciju aktora nisu od znaaja. Za projektanta digitalnog sistema bitno je da poznaje informacije koje se razmenjuju izmeu sistema i aktora kao i nain na koji aktori komuniciraju sa sistemom. Informacije koje aktori alju sistemu tipino se odnose na interni status aktora (npr. prekida je zatvoren, senzor je aktivan i sl.). Sistem, opisan u obliku ASM dijagrama, koristi ovu informaciju da bi u sluaju promene stanja aktora reagovao na odgovarajui nain. Informacija koju sistem dobija od aktora, a koja se moe predstaviti jednim bitom, zove se eksterni status. (Napomenimo da se viebitni signali uvek mogu razloiti na pojedinane jednobitne signale). Razlika izmeu eksternog statusa i signala je u tome to vrednost signala postavlja sam sistem, dok vrednost eksternog statusa definie aktor. Drugim reima, sistem moe samo da nadgleda vrednost eksternog statusa, ali ne moe, na direktan nain, da kontrolie njegovu vrednost. Svakom eksternom statusu je pridrueno ime (oznaka), koje ukazuje na odgovarajuu fiziku vezu koja povezuje sistem sa spoljnim svetom. Ime eksternog statusa se moe nai unutar romba. Po usvojenoj konvenciji, romb sa upisanim imenom eksternog statusa oznaava testiranje da li je eksterni status jednak 1, ili taan.

Sl. 4.6 ASM dijagram sa eksternim statusom.

Na Sl. 4.6 prikazan je ASM dijagrama koji sadri ispitivanje eksternog statusa PREKIDA. ASM dijagram ostaje u stanju ZELENO sve dok je vrednost eksternog statusa PREKIDA 0. Kada PREKIDA dobije vrednost 1, ASM prelazi u stanje UTO. U stanjima UTO i CRVENO, ASM ignorie stanje eksternog statusa PREKIDA. 4.4 Ulazi i izlazi ASM dijagrama

ASM dijagram najee opisuje ponaanje samo jednog dela celokupnog digitalnog sistema, i to bez specificiranja njegove unutranje (interne) strukture. Sistem, ili maina, opisana ASM dijagramom, esto je deo

149

Arhitektura mikrosistema

neke vee strukture. Maina dobija ulaze od drugih aktora i obezbeuje izlaze za druge aktore u toj veoj strukturi. Sprega maine 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 pojedinane veze ili magistrale ija imena odgovaraju onima koja se za njihovo oznaavanje koriste u ASM dijagramu. esto, ASM dijagramu je pridruzen blok dijagram maine. Takav dijagram se ponekad zove i crna kutija, s obzirom da pokazuje samo ulaze i izlaze maine, a sakriva internu strukturu maine. Ulazni portovi se oznaavaju strelicom koja je usmerena ka bloku, a izlazni strlicom koja je usmerena od bloka. Broj bitova viebitnog porta, zapisuje se uz kosu crtu koja preseca strelicu. Na Sl. 4.7 prikazan je blok dijagram maine ije ponaanje je opisano ASM dijagramom sa Sl. 4.6. Uoimo da ASM dijagram i blok dijagram, u kombinaciji, detaljno govore o ponaanju maine, njenim ulazima i izlazima. Meutim, i dalje, bilo kakva informacija o detaljima implementacije maine nije dostupna.
PREKIDAC ASM 2 3 BROJAC STOP

BRZINA

Sl. 4.7 Blok dijagram.

4.4.1

ASM ulazi

Razlikujemo sledee dve vrste ulaza u mainu opisanu ASM dijagramom i blok dijagramom: statusi ulazi i ulazi podataka. Klasifikacija ulaza na statuse i podatke nije stroga, a projektant ima slobodu da klasifikaciju obavi na nain za koji smatra da je najprikladniji u kontekstu konkretnog problema. Meutim, u kasnijim fazama projektovanja, koje se tiu sinteze, statusi i podaci razliito se tretiraju, te je s toga bitno naglasiti razliku izmeu njih. 4.4.1.1 Statusni ulazi

Projektant moe tretirati jednobitni ulazni port kao statusni ulaz ukoliko se u ASM dijagramu ime tog signala javlja samo unutar rombova, tj. ukoliko ASM koristi taj ulaz samo za donoenje direktnih odluka, a ne i za neka druga izraunavanja. Uobiajeno, statusni ulaz se tretira kao ulaz preko koga spoljni svet isporuuje maini odgovor na pitanje tipa da-ne, kao to je, na primer, pitanje: da li je prekida zatvoren?. U blok dijagramu na Sl. 4.7, PREKIDA predstavlja statusni ulaz. 4.4.1.2 Ulazi podataka

Ulaz, bilo da je jednobitni ili viebitni, koji se u ASM dijagramu uvek javlja samo sa desne strane naredbi registarskog prenosa i/ili u relacijama, smatra se eksternim ulazom podataka. Takvi ulazi imaju istu ulogu kao i ulazne promenljive kod konvencionalnih programskih jezika. Svaki jednobitni ulaz u ASM se moe tretirati bilo kao status bilo kao jednobitni podatak. Viebitni ulaz koji se javlja samo u okviru relacija (rombova), ali ne i sa desne strane naredbi registarskog prenosa, moe se tretirati kao skup od vie pojedinanih statusnih bitova. Na primer, razmotrimo mainu koja poseduje trobitni ulaz podataka, A. U toku rada, maina testira da li je vrednost koja se preko magistrale A dostavlja maini iz spoljneg sveta jednaka 2. Sl. 4.8 prikazuje blok dijagram i dva ekvivalentna ASM dijagrama ove maine. ASM dijagram (1) tretira A kao jedinstveni trobitni ulaz. ASM dijagram (2) tretira A kao tri nezavisna jednobitna statusna ulaza (A[0], A[1] i A[2]).
Blok dijagram PROVERA 3 A PROVERA

ASM

A==2

A[0] 1 0

A[1] NE DA 1

0 A[2]

NE

DA

(1)

(2)

Sl. 4.8 Dva naina tretiranja viebitnih ulaza.

150

ASM Dijagrami

U zakljuku, ulazne informacije tipa da-ne prirodno je smatrati statusima. U veini ostalih sluajeva, sa take gledita projektanta, lake je ulaznu informaciju tretirati kao podatak, kao to to pokazuje prethodni primer. Ulazi koji se koriste u naredbama registarskog prenosa moraju se tretirati kao podaci. 4.4.2 4.4.2.1 ASM Izlazi

Razlikujemo dve vrste izlaza iz maine opisane blok dijagramom i ASM dijagamom: Upravljaki izlazi Izlazi podataka Upravljaki izlazi

Upravljaki ili komandni izlazi su izlazi iz ASM koji zavise samo od tekueg stanja ASM dijagrama. Upravljaki izlazi ne zadravaju svoju vrednost nakon promene stanja. Ukoliko ime upravljakog izlaza nije navedeno u pravougaoniku sledeeg stanja, u sledeem stanju upravljaki izlaz dobija podrazmevanu vrednost. U blok dijagramu sa Sl. 4.7, signali STOP i BRZINA su upravljaki izlazi. 4.4.2.2 Izlazi podataka

Izlazi podataka su imena registara koja se javljaju sa leve strane barem jedne naredbe registarskog prenosa. Za razliku od upravljakih izlaza, izlazi podataka zadravaju svoju vrednost nakon promene stanja ASM dijagrama. Naime, ako se ime izlaza podataka ne javlja u nekom pravougaoniku, taj izlaz zadrava zateenu vrednost i u sledeem stanju. Nisu svi registri koji se javljaju u ASM dijagramu istovremeno i izlazi podataka. Registar ije ime nije navedeno u blok dijagramu kao izlazni port, predstavlja interni registar maine, a njegova vrednost nije dostupna spoljenem svetu (iz prostog razloga jer ne postoji magistrala i port koji povezuju taj registar sa spoljnim svetom). U blok dijagramu sa Sl. 4.7 jedini izlaz podataka je BROJA. 4.5 Projektovanje odozgo-nanie

Postoje dva osnovna pristupa reavanju problema: odozdo-navie (bottom-up) i odozgo-nanie (top-down). Kod pristupa odozdo-navie, projektant zapoinje rad reavanjem nekog izdvojenog detalja celokupnog problema. Nakon toga, projektant prelazi na neki drugi detalj, koji nije u vezi sa prvim. Konano, projektant dolazi u situaciju da spaja nezavisno reene delove problema u jednistveno reenje. Kod problema veeg obima, pojedinano reavani delovi se obino ne uklapaju idealno jedni s drugim. To je posledica samog pristupa koji fokusiranjem na izdvojene detalje odvlai panju projektanta sa slike o celovitosti reenja. Konani rezultat je takav da se najvei deo ukupnog projektantskog vremena troi na uklapanje nezavisnih detalja, to esto ukljuuje i prepravku ve reenih delova opteg problema. Kod pristupa odozdo-navie, projektant zapoinje rad na problemu razradom globalnog plana to podrazumeva sveobuhvatno sagledavanje problema, razradu strategije reavanja problema, dekompoziciju problema na potprobleme manjeg obima, i definisanje odnosa izmeu pojedinih potproblema. Drugim reima, projektant se trudi da polazni problem, koji je obino isuvie obiman da bi se reio u jednom dahu, razloi na vei broj jasno definisanih problema manjeg obima. Pri tome, projektant ne reava odmah uoene potprobleme, ve ih tretira kao apstraktne sklopove (crne kutije) koje meusobno uklapa i povezuje. U drugoj fazi projektovanja, projektant nastavlja sa razradom i reavanjem uoenih potproblema. Pri tome, projektant moe slobodno da se usredsredi na svaki pojedinani, prethodno definisani potproblem, bez brige oko njihovog uklapanja, koje je razradio u prvoj fazi projekta i time ih ugradio u definiciju svakog pojedinanog potproblema. Projektanti-poetnici obino ne doivljavaju projektovanje odozgo-nanie kao prirodni pristup. Prirodno je da neko ko nema iskustva u projektovanju hardvera bude zabrinut detaljima koji se odnose na realizaciju (kao razvesti napajanje, koja digitalna kola koristiti i kako ih povezati, i td.). Pristup odozgo-nanie zasnovan je na iskustvu i samopouzdanju projektanta: neko ko je ranije reavao detalje sline onima koji se javljaju u tekuem problemu, moe ignorisati te detalje u toku razrade globalnog plana, siguran da e onda kada pree na realizaciju svog globalnog plana, moi da rei svaki od izdvojenih potproblema. ASM dijagrami predstavljaju korisnu notaciju za opis sveukupne funkcionalnosti digitalnog sistema bez potrebe ulaenja u hardverske detalje. S toga, ASM dijagrami predstavljaju dobru polaznu taku za projektovanje u stilu odozgo-nanie. Generalno, projektavanje odozgo-nanie ostvaruje se u sledee tri faze: Opis ponaanja Razrada Realizacija

151

Arhitektura mikrosistema

4.5.1

Opis ponaanja

Opis ponaanja je najvanija faza celokupnog procesa projektovanja. U ovoj fazi, maina koja se projektuje opisuje se u vidu ASM dijagrama. Jedina struktura koja postoji u ovoj fazi je blok dijagram koji specificira ulazne i izlazne portove maine (Sl. 4.9). Drugim reima, u ovoj fazi, maina se tretira kao crna kutija sa naznaenim ulazima i izlazima koja se ponaa na nain koji je opisan ASM dijagramom. Obino, projektant ne kreira samo jedan ASM dijagram, ve istrauje razliite opcije i varijante moguih reenja, vrednujui ih u skladu sa postavljenim performansnim kriterijumima (brzina rada, hardverska sloenost i sl.). Napomenimo da ASM dijagram, iako apstraktni opis, prua dovoljno informacija na osnovu kojih se moe odrediti broj taktnih ciklusa potrebnih za obavljanje pojedinih aktivnosti i grubo proceniti sloenost hardverske realizacije, na primer, na osnovu broja registarskih promenljivih.

Sl. 4.9 Blok dijagram koji odgovara opisu ponaanja.

4.5.2

Razrada

ASM dijagram nije nita vie od grafikog prikaza algoritma, sa preciznom informacijom o tajmingu i indikacijom o tome koje operacije se obavljaju u paraleli, a koje sekvencijalno. ASM dijagram nita ne govori o hardverskim komponentama koje su potrebne da bi se opisano izraunavanje realizovalo. Krajnji cilj projektovanja je relizacija fizikog sistema, tj. precizna specifikacija strukture maine (na primer, u vidu logike eme). ASM dijagram govori o tome ta projektant eli da maina radi, a ne govori nita o tome kako povezati fizike komponente da bi se osvarilo eljeno ponaanje maine. Sa programerske take gledita, postavlja se pitanje zato nastaviti dalje, zar problem nije reen samim tim to smo nali algoritam. Slino, projektant hardvera, moe se zapitati zato troiti vreme na ASM dijagram, kada to ionako nije oblik reenja koji nam je potreban. Odgovor na oba ova pitanja je da kreiranje ASM dijagrama poveava ansu da e projektant realizovati korektno reenje. Sledea faza projektovanja, razrada, upravo ukljuuje jedan deo ukupne transformacije algoritma u hardversku strukturu.

Sl. 4.10 Blok dijagram koji kombinuje kontroler i stazu podataka.

Faza razrade ima za cilj da polazni problem, prethodno precizno opisan ASM dijagramom, podeli na dva razdvojena ali povezana aktora: upravljaku jedinicu i staza podataka (Sl. 4.10). Staza podataka sadri: (a) hardverske registre neophodne za uvanje vrednosti promenljivih koje se javljaju u naredbama registarskog prenosa; i (b) kombinacionu logiku neophodnu za obavljanje izraunavanja specificiranih naredbama registarskog prenosa. Na primer, aku u ASM dijagramu postoji naredba A <- B + C, tada u stazi podatak postoje tri registra za smetanje vrednosti promenljivih A, B i C i sabira. Iako sadri sve to je neophodno da bi se izvrila izraunavanja i memorisali meu-rezultati, staza podataka nije u stanju da samostalno sprovodi sekvencu izraunavanja na nain koji je predvien algoritmom. To je razlog postojanja upravljake jedinice, iji je zadatak da u svakom taktnom ciklusu naloi stazi podataka ta da uradi. Drugim reima, u upravljakoj jedinici ugraeno je ponaanje maine, dok se resursi neophodni za obavljanje svih potrebnih izraunavanja i memorisanje podataka nalaze u stazi podataka. Upravljaka jedinica umesto naredbi registarskog prenosa izdaje komande stazi podataka (tj. postavlja upravljake signale). Staza podataka prima komande, obavlja aktivnosti koje su naloene komandom i kao odgovor generie status. Upravljaka jedinica ispituje statusne signale koje dobija od staze podataka i na bazi njihove vrednosti i vrednosti statusnih ulaza, donosi odluke koje odreuju dalji tok rada maine.

152

ASM Dijagrami

Uobiajeno je da se i u ovoj fazi projektovanja koristi ASM dijagram, ali samo za opis ponaanja upravljake jedinice, dok se staza podataka predstavlja u vidi hardverskog strukturnog dijagrama (ematski prikaz). ASM dijagram pridruen upravljakoj jedinici ne sadri naredbe registarskog prenosa i relacije (jer su registri prebaeni u stazu podataka), ali zato sadri detaljan opis aktivnosti upravljake jedinice, u vidu postavljanja upravljakih signala i ispitivanja statusa, koje su neophodne da bi se u stazi podatak obavila izraunavanja i registarski prenosi i to u redosledu i na nain koji je predvien polaznim ASM dijagramom. Mada je nakon obavljene razrade, struktura maine sloenija, a opis ponaanja sadri vie detalja, ponaanje maine, gledano sa strane spoljnjeg sveta ostaje identino sa polaznom specifikacijom. 4.5.3 Realizacija

Zavrna faza projektovanja bavi se realizacijom hardverske strukture upravljake jedinice. Transformacija ASM dijagrama, koji opisuje rad upravljake jedinice, u hardversku strukturu predstavlja direktan postupak, koji se moe obaviti automatski uz pomo odgovarajuih softverskih alata za sintezu digitalnog hardvera. Tipino, ASM dijagram najpre se prevodi u tabelu prelaza, a zatim se primenjuje neka od raspoloivih tehnika za sintezu konanih automata. Na primer, tabela prelaza se moe upisati u ROM. U tom sluaju, za realizaciju upravljake jedinice potreban je jo samo jedan registar koji e memorisati tekue stanje upravljake jedinice. 4.5.4 Automatsko projektovanje

Danas, postiji vei broj softverskih alata za sintez digitalnog hardvera koji automatizuju najvei deo zavrnih faza projektovanja. Prilikom korienja alata za sintezu, kreativni deo posla projektanta obino se zavrava okonanjem opisa ponaanja. esto, projektanti preskau ak i fazu razrade i preputaju alatu za sintezu da na osnovu opisa ponaanja automatski kreira netlistu gejtova potrebnih za fabrikaciju integrisanog kola. Ipak, vano je da projektant dobro razume nain 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 ponaanja

U cilju ilustracije primene ASM dijagrama, razmotriemo primer hardverske realizacije delitelja neoznaenih celih brojeva. Mada, za ovu namenu postoji vei broj efikasnih i brzih algoritama, u ovom primeru bie korien trivijalni algoritam deljenja, koji se zasniva na uzastopnom oduzimanju delioca od deljenika. Rad algoritma prikazan je u vidu sledeeg programskog koda (u notaciji programskog jezika C):
r1 = x; r2 = 0; while (r1 >= y) { r1 = r1 y; r2 = r2 + 1; }

Lako se uoava da nakon izlaska iz petlje, promenljiva r2 uzima vrednost x/y. Oigledno, radi se o sporom algoritmu, s obzirom da se petlja mora izvriti x/y puta. Uoimo da e algoritam biti korektan i u sluaju 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 transformiemo u ASM dijagram, neophodno je razmotriti na koji nain e hardver (maina za deljenje) komunicirati sa aktorima (tj. spoljnim svetom). U konkretnom sluaju, pretpostaviemo da je aktor ovek (korisnik). Korisnik snabdeva mainu za deljenje vrednostima x i y, a zatim eka da maina zavri rad i generie kolinik x/y. Za razliku od projektanata digitalnog hardvera, programeri imaju na raspolaganju standardne, sofisticirane korisnike interfejse (tastatura, mi, monitor), koji olakavaju korisnicima da interaguju sa softverom. Korisniki interfejski ovog tipa reavaju dva bazina problema koji se uvek javljaju kada dva aktora pokuavaju 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 rei. Jednostavan intefejs, koga emo koristiti u konkretnom primeru, podrazumeva da prijateljski korisnik pritiskom na taster generie signal TS koga ASM koristi kao signal za poetak rada. Takoe, pretpostaviemo

153

Arhitektura mikrosistema

da pritisak na taster daje TS=1 u trajanju od tano jednog taktnog perioda. (Treba napomenuti da je projektovanje ovakvog tastera, problem za sebe, koji moe posluiti kao jo jedan primer korienja ASM dijagrama). Pretpostaviemo, takoe, da maina za deljenje generie signal SPREMAN, koji, kada je 1, ukazuje da je maina spremna za radi i da eka na pritisak tastera. SPREMAN=0, znai da je maina zauzeta izraunavanjem kolinika. Po zavrenom izraunavanju, maina postavlja kolinik na izlaz i aktivira signal SPREMAN. Dalje, pretpostaviemo da je korisnik u obavezi da pre sledeeg pritiska na taster eka barem dva taktna ciklusa nakon to je maina zavrila prethodno izraunavanje. 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 maina izraunava kolinik. Kao to se moe zakljuiti, specifikacija interfejsa ukljuuje specifikaciju ulaza i izlaza, proirenu pravilima za korienje maine od strane korisnika. U sutini, interfejs predstavlja neku vrstu ugovora izmeu dva aktora, koga se moraju pridravati obe strane kako bi krajnji rezultat njihove interakcije bio korektan. Prijateljski korisnik je onaj koji se u radu sa mainom pridrava svih navedenih ogranienja.

PASIVNO SPREMAN

TS

Stanja i odluke koje realizuju izracunavanje kolicnika. (ova stanja ne postavljaju signal SPREMAN

TS

SPREMAN

x y

MASINA ZA DELJENJE

x/y

(a)

(b)

Sl. 4.11 (a) ASM dijagram korisnikog interfejsa; (b) blok dijagram maine za deljenje.

Globalni oblik ASM dijagrama, koji opisuje ponaanje korisnikog interfejsa, i blok dijagram maine za deljenje prikazani su na Sl. 4.11. U nastavku projektovanja, oblak u ASM dijagramu bie zamenjen pravougonicima i rombovima, uz pomo kojih e biti opisan rad algoritma za deljenje. Meutim, ni u jednom od pravougaonika (stanja) koja e zameniti oblak nee postojati naredba koja e postavljati signal SPREMAN. To znai da u prvom narednom taktnom periodu nakon to korisnik pritisne taster, signal SPREMAN postaje 0 i zadrava ovu vrednost za sve vreme izraunavanja kolinika. Kada je kolinik izraunat i ASM se vrati u stanje PASIVNO, signal SPREMAN ponovo uzima vrednost 1. U narednim odeljcima razmotiemo vie razliitih relizacija algoritma deljenja koji je za sada sakriven u oblaku ASM dijagrama sa Sl. 4.11. Iskusan projektant, obino, nema potrebu za ispitivanjem tolikog broja alternativa kako bi doao do konanog reenja. Meutim, alternativna reenja koja e biti prezentovana u narednim odeljcima, istaie neke bitne karakteristike ASM dijagrama koje prave jasnu razliku u odnosu na konvencionalne softverske dijagrame toka. Tokom diskusije, videemo da pojedini ASM dijagrami koji gledano oima programera izgledaju korektno, ustvari to nisu, i obrnuto. 4.6.2 ASM sa ugraenim softverskim zavisnostima

U ovom odeljku bie opisano kako se softverski program moe prevesti u ASM dijagram. Osnovna pretpostavka kod softverskih programa jeste da se programske naredbe izvravaju jedna za drugom, strogo sekvencijalno, tako to izvrenje sledee naredbe poinje u trenutku kada se tekua zavri. Sa druge strane, ASM dijagrami ne nameu strogu sekvencijalnost u izvravanju algoritamskih operacija, s obzirom na pretpostavku da se sve operacije navedene u istom pravougaoniku izvravaju u paraleli. Iz tog razloga, direktno prevoenje softverskog programa u ASM dijagram, naradba po naredba, nije mogue. Da bi rezultujui ASM bio korektan, neophodno je prilikom prevoenja, u ASM dijagram uvesti dodatna ogranienja kako redosled izvrenja softverskih naredbi ne bi bio naruen. To se postie primenom sledeih pravila: 1. Svaka naredba dodeljivanja softverskog programa se prevodi u naredbu registarskog prenosa koja se smeta u zaseban pravougaonik ASM dijagrama iza koga ne sledi romb.

154

ASM Dijagrami

2.

Svaka if ili while naredba softverskog programa se transformie u prazan pravougaonik nakon koga sledi romb sa upisanom relacijom iz softverske naredbe.

Primenom ovih pravila, softverski programi dati na poetku odeljka 4.6, koji opisuju algoritam deljenja, lako se prevode u ASM dijagrame koji su prikazani na Sl. 4.12 i Sl. 4.13.

Sl. 4.12 ASM dijagram sa ugraenim softverskim zavisnostima (varijanta 1).

Sl. 4.13 ASM dijagram sa ugraenim softverskim zavisnostima (varijanta 2).

Jedina razlika izmeu ASM dijagrama prikazanih na Sl. 4.12 i Sl. 4.13 je u redosledu stanja IZRAUNAVANJE_1 i IZRAUNAVANJE_2 u petlji koja oduzima delilac od deljenika i rauna kolinik. Sa stanovita algoritma deljenja, redosled ove dve operacije je nebitan, tako da su oba ASM dijagrama korektna. Pregledom dva ASM dijagrama moe se zapaziti da iza stanja PASIVNO sledi romb koji ispituje eksterni status TS, to, na prvi pogled, nije u skladu sa prvim pravilom prevoenja softverskog programa u ASM dijagram. Meutim, testiranje signal TS u stanju PASIVNO deo je specifikacije korisnikog interfejsa i ne potie iz softverskog program, i time ne naruava softverske zavisnosti izmeu naredbi registarskog prenosa. Razmotrimo, sada, sa vie detalja rad ASM dijagrama sa Sl. 4.12. Vrednost x se upisuje u registar r1 u stanju PASIVNO. (S obzirom na uvedenu pretpostavku da korisnik, pri SPREMAN=1, eka barem dva taktna ciklusa

155

Arhitektura mikrosistema

pre nego to pritisne taster, za izvoenje 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 kolinika, tj. 0. U suprotnom, ako je TS=0, stanje PASIVNO se ponavlja. Kako se u stanju PASIVNO registar r2 ne menja, a pri tome, tipino, r2 sadri rezultat poslednjeg deljenja, ovako koncipiran interfejs, prua korisniku onoliko vremena koliko mu je potrebno da oita rezultat. Uoimo, da korisniki interfejs, a ne algoritam deljenja, zahteva da r2 bude inicijalizovan nakon pritiska na taster. Naime, sa stanovita 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. Meutim, kod takvog reenja, rezultat deljenja bio bi dostupan za oitavanje sa izlaza registra r2 samo u trajanju od jednog taktnog ciklusa. Deo ASM dijagrama koji izraunava kolinik je petlja koju ine stanja TEST, IZRAUNAVANJE_1 i IZRAUNAVANJE_2. U stanju TEST (tj. u rombu koji je pridruen ovom stanju) ispituje se da li je r1 vee od y, a to je isto ono ispitivanje koje postoji u while naredbi softverskog programa. Stanja IZRAUNAVANJE_1 i IZRAUNAVANJE_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 sluajevima kada je x < y. Na primer, sledea tabela pokazuje rad ASM-a kada je x=5 i y=7:
Tekue stanje PASIVNO PASIVNO INIT TEST PASIVNO r1= ? r1= 5 r1= 5 r1= 5 r1= 5 r2= ? r2= ? r2= ? r2= 0 r2= 0 TS=0 TS=1 TS=0 TS=0 TS=0 SPREMAN=1 SPREMAN=1 SPREMAN=0 SPREMAN=0 SPREMAN=1

Kao to se moe uoiti, ve kod prvog testiranja, ASM detektuje kraj izraunavanja i vraa se u stanje PASIVNO sa nulom u registru r2 (to, u ovom sluaju, predstavalja korektan kolinik). U sluajevima kada je x y, ASM ulazi u petlju i ponavlja je sve dok preostala vrednost deljenika u registru r1 ne postane manja od delioca. Sledea tabela prikazuje rad ASM-a za sluaj x=14 i y=7:
Tekue stanje PASIVNO PASIVNO INIT TEST IZRAUNAVANJE_1 IZRAUNAVANJE_2 TEST IZRAUNAVANJE_1 IZRAUNAVANJE_2 TEST PASIVNO PASIVNO r1= ? r1= 14 r1= 14 r1= 14 r1= 14 r1= 7 r1= 7 r1= 7 r1= 0 r1= 0 r1= 0 r1= ? r2= ? r2= ? r2= ? r2= 0 r2= 0 r2= 0 r2= 1 r2= 1 r2= 1 r2= 2 r2= 2 r2= 2 TS=0 TS=1 TS=0 TS=0 TS=0 TS=0 TS=0 TS=0 TS=0 TS=0 TS=0 TS=0 SPREMAN=1 SPREMAN=1 SPREMAN=0 SPREMAN=0 SPREMAN=0 SPREMAN=0 SPREMAN=0 SPREMAN=0 SPREMAN=0 SPREMAN=0 SPREMAN=1 SPREMAN=1

Primenom ASM dijagrama sa Sl. 4.12, ukupno vreme potrebno za izraunavanje kolinika ukljuuje dva taktna ciklusa u stanju PASIVNO, jedan taktni ciklus u stanju INIT i vreme potrebno za izvrenje petlje. Broj prolazaka kroz petlju jednak je konanoj vrednosti kolinika (r2). Poto petlja sadri 3 stanja, ukupno vreme izraunavanja kolinika iznosi: 3+3*kolinik. Razmotrimo rad ASM dijagrama sa Sl. 4.13, kod koga je stanje IZRAUNAVANJE_2 na poetku petlje:
Tekue stanje PASIVNO PASIVNO INIT TEST IZRAUNAVANJE_2 IZRAUNAVANJE_1 TEST IZRAUNAVANJE_2 IZRAUNAVANJE_1 TEST PASIVNO PASIVNO r1= ? r1= 14 r1= 14 r1= 14 r1= 14 r1= 14 r1= 7 r1= 7 r1= 7 r1= 0 r1= 0 r1= ? r2= ? r2= ? r2= ? r2= 0 r2= 0 r2= 1 r2= 1 r2= 1 r2= 2 r2= 2 r2= 2 r2= 2 TS=0 TS=1 TS=0 TS=0 TS=0 TS=0 TS=0 TS=0 TS=0 TS=0 TS=0 TS=0 SPREMAN=1 SPREMAN=1 SPREMAN=0 SPREMAN=0 SPREMAN=0 SPREMAN=0 SPREMAN=0 SPREMAN=0 SPREMAN=0 SPREMAN=0 SPREMAN=1 SPREMAN=1

156

ASM Dijagrami

Paljivom analizom gornje tabele, moe se uoiti razlog neophodnosti stanja TEST. Stanje TEST, osim ispitivanja relacije r1y, koja mu je pridruena, ne sadri nikakvu dodatnu aktivnost. U stanju IZRAUNAVANJE_1, koje u ovoj varijanti ASM dijagrama, prethodi stanju TEST, sadrana je naredba registarskog prenosa r1r1y. Prenos u registar r1 obavie se pri ulasku u stanje TEST, gde e, zatim, nova vrednost registra r1, biti iskoriena u relaciji r1y. Izostavljanjem stanja TEST, rad algoritma bio bi poremeen, jer bi ispitivanje r1y bilo, praktino, pridrueno stanju IZRAUNAVANJE_1 i koristilo bi staru vrednost registra r1. Razmatranje u ovom odeljku pokazuje da je softverski program uvek mogue prevesti u korektan ASM dijagram, primenom jednostavnih pravila. Meutim, esto, za isti polazni algoritam postoji vie varijanti ASM dijagrama, pri emu ona koja se dobija direktnim prevoenjem softverskog programa ne mora biti uvek i najbolja. Naime, ASM dijagrami, dobijeni direktnim prevoenjem softverskih programa, mada garantovano ispravni, ne moraju biti i najefikasniji mogui, u smislu broja stanja, broja registara i ukupnog vremena izraunavanja. Glavni uzrok neefikasnosti se krije u injenici da su u ovako dobijene ASM dijagrame prenesene zavisnosti iz softverskog programa, koje forsirajui strogo sekvencijalan redosled izvrenja naredbi registarskog prenosa, onemoguavaju ispoljavanje paralelizma u radu razliitih delova digitalne maine. Zato, ovako dobijene ASM treba koristiti kao polaznu osnovu za detaljniju analizu koja bi imala za cilj pronalaenje optimalne varijante ASM dijagrama, to e biti tema narednih odeljaka. Napomenimo, da postoje formalne tehnike za prevoenje 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 raspoloivim paralelizmom minimizuje vreme izvrenja ASM dijagrama iili minimizuju hardverski resursi neophodni za realizaciju ASM dijagrama. Ove tehnike bie razmatrane u petom poglavlju. 4.6.3 Eliminacija stanja TEST

Prazan pravougaonik u stanju TEST uveden je samo iz razloga mehanikog (direktnog) prevoenja softvera u ASM. U mnogim sluajevima, ispitivanje, kao to je ono koje je pridruenu stanju TEST moe biti spojeno sa nekim drugim stanjem, a da to ne narii korektnost algoritma. Na taj nain, eliminie se jedno stanje, to ubrzava rad maine. Podsetimo se da romb koji sledi nakon pravougaonika koji nije prazan, znai da se ispitivanje u rombu i izraunavanja u pravougaoniku obavljaju u paraleli. Iz tog razloga, nije korektno spojiti ispitivanje sa stanjem u kome se obavlja izraunavanje iji se rezultat koristi u ispitivanju. Razmotrimo modifikovanu verziju ASM dijagrama sa Sl. 4.13, kod koje je stanje TEST, prosto, obrisano:

Sl. 4.14 Neispravna verzija maine za deljenje sa etiri stanja.

Mada, ASM dijagram sa Sl. 4.14 ispravno radi za x<y, greka u izraunavanju kolinika se javlja pri xy. Kao ilustraciju pogrenog rada, razmotrimo rad ovog ASM dijagrama za x=14 i y=7, pod pretpostavkom da je registar r1 12-bitni:

157

Arhitektura mikrosistema

Tekue stanje PASIVNO PASIVNO INIT IZRAUNAVANJE_2 IZRAUNAVANJE_1 IZRAUNAVANJE_2 IZRAUNAVANJE_1 IZRAUNAVANJE_2 IZRAUNAVANJE_1 PASIVNO PASIVNO

r1= ? r1= 14 r1= 14 r1= 14 r1= 14 r1= 7 r1= 7 r1= 0 r1= 0 r1= 4089 r1= ?

r2= ? r2= ? r2= ? r2= 0 r2= 1 r2= 1 r2= 2 r2= 2 r2= 3 r2= 3 r2= 3

TS=0 TS=1 TS=0 TS=0 TS=0 TS=0 TS=0 TS=0 TS=0 TS=0 TS=0

SPREMAN=1 SPREMAN=1 SPREMAN=0 SPREMAN=0 SPREMAN=0 SPREMAN=0 SPREMAN=0 SPREMAN=0 SPREMAN=0 SPREMAN=1 SPREMAN=1

Uoimo da se relacija r1y javlja u dva razliita stanja: PASIVNO i IZRAUNAVANJE_1. Izraunavanje obuhvaeno stanjem PASIVNO ukljuuje jedino registar r2, to nema uticaja na ispitivanje r1y (tj. 14 7). Problem postoji u stanju IZRAUNAVANJE_1, jer izraunavanje obuhvaeno ovim stanjem ukljuuje registar r1, a odluivanje koje sledi zasnovano je upravo na vrednosti registra r1. Prilikom drugog prolaska kroz stanje IZRAUNAVANJE_1 (vrsta u tabeli prikazana masnim slovima), r1 jo uvek sadri vrednost 7. Naredba registarskog prenosa r1r1 y nalae promenu vrednosti u r1 na 0, ali to e se desiti tek prilikom ulaska u sledee stanje. S obzirom da ispitivanje r1y koristi tekuu vrednost registra r1 (tj. 7), petlja e se ponoviti jo jednom, to daje pogrean rezultat (r2=3). Vrednost 4089, koju dobija registar r1 prilikom treeg prolaska kroz petlju, posledica je podkoraenja prilikom izvoenja operacije r1 y (4089+7 = 212). Mada je odstranjivanje stanja TEST iz ASM dijagrama sa Sl. 4.13 pogreno, postavlja se pitanje ta se deava ako se to isto stanje odstrani iz ASM dijagrama sa Sl. 4.12, gde je stanje IZRAUNAVANJE_1 na poetku petlje (Sl. 4.15).

PASIVNO

r1 <- x SPREMAN

TS INIT

r2 <- 0

r1 >= y 0

IZRACUNAVANJE_1 r1 <- r1 - y IZRACUNAVANJE_2 r2 <- r2 + 1

Sl. 4.15 Ispravna varijanta maine za deljenje sa etiri stanja.

Kad ASM dijagram sa Sl. 4.15, ispitivanje r1y se javlja u dva razliita stanja PASIVNO i IZRAUAVANJE_2. Razlika u odnosu na prethodno analizirani ASM je u tome to sada izraunavanje obuhvaeno stanjem IZRAUAVANJE_2, r2 r2 + 1, koje prethodi ispitivanju uslova r1y, ne utie na rezultat ispitivanje. S toga, ASM dijagram sa Sl. 4.15 je ispravan. Za ilustraciju, razmotrimo rad ove ASM za sluaj x=14 i y=7:
Tekue stanje PASIVNO PASIVNO INIT IZRAUNAVANJE_1 IZRAUNAVANJE_2 IZRAUNAVANJE_1 IZRAUNAVANJE_2 PASIVNO PASIVNO

r1= ? r1= 14 r1= 14 r1= 14 r1= 7 r1= 7 r1= 0 r1= 0 r1= ?

r2= ? r2= ? r2= ? r2= 0 r2= 0 r2= 1 r2= 1 r2= 2 r2= 2

TS=0 TS=1 TS=0 TS=0 TS=0 TS=0 TS=0 TS=0 TS=0

SPREMAN=1 SPREMAN=1 SPREMAN=0 SPREMAN=0 SPREMAN=0 SPREMAN=0 SPREMAN=0 SPREMAN=1 SPREMAN=1

158

ASM Dijagrami

Prilikom drugog prolaska kroz stanje IZRAUNAVANJE_1, inicira se operacija registarskog prenosa r1 r1 y, koja e promeniti vrednost registra r1 sa 7 na 0. Naravno, to se deava na poetku taktnog ciklusa u kome ASM po drugi put ulazi u stanje IZRAUNAVANJE_2 (vrsta u tabeli prikazana masnim slovima). Ispitivanje, koje je sada deo stanja IZRAUNAVANJE_2, zasnovano je na tekuoj vrednosti registra r1 (0). To znai da e petlja imati ispravan broj ponavljanja i da e konani rezultat biti ispravan. S obzirom da petlja sada obuhvata dva stanja, a ne tri kao to je to bio sluaj kod ASM dijagrama iz odeljka 4.6.2, ukupno vreme izraunavanja kolinika je smanjeno i iznosi: 3+2*kolinik. U sutini, ubrzanje koje smo dobili, posledica je preklapanja izvrenja dve nezavisne operacije, naredbe registarskog prenosa r2 r2 + 1 i ispitivanja uslova r1y. 4.6.4 Eliminacija stanja INIT

U analiziranim varijantama ASM dijagrama maine za deljenje, stanje INIT se koristi za inicijalni upis vrednosti 0 u registar r2. U ovom odeljku, razmotriemo mogunost eliminacije stanja INIT, pripajanjem operacije r20 stanju PASIVNO. Prosto prebacivanje izrauvanja iz stanja INIT u stanje PASIVNO daje ASM dijagram sa Sl. 4.16:

PASIVNO

r1 <- x r2 <- 0 SPREMAN

TS

r1 >= y 0

IZRACUNAVANJE_1 r1 <- r1 - y IZRACUNAVANJE_2 r2 <- r2 + 1

Sl. 4.16 Pogrena varijanta ASM dijagrama (neispravan koriki interfejs).

Broj naredbi registarskog prenosa koje se, obuhvaene istim stanjem, izvravaju u paraleli, moe biti proizvoljan, sve dok su registari sa leve strane ovih naredbi jedinstveni u okviru tog stanja. U konkretnom primeru, stanje PASIVNO sadri dve naredbe registarskog prenosa, koje iniciraju upise u registre r1 i r2; sam upis bie obavljen na poetku sledeeg taktnog perioda, tj. pri ulasku u stanje IZRAUNAVANJE_1. S obzirom na pretpostavku da pri SPREMAN=1, korisnik eka barem dva taktna ciklusa pre nego to pritisne taster, r1 i r2 e biti ispravno inicijalizovani pre ulaska u petlju. ASM e korektno izraunati kolinik i napustiti petlju posle odgovarajueg broja prolazaka. Naredna tabela pokazuje tok izraunavanja koje se obavlja u ASM sa Sl. 4.16, za x=14 i y=7:
Tekue stanje PASIVNO PASIVNO IZRAUNAVANJE_1 IZRAUNAVANJE_2 IZRAUNAVANJE_1 IZRAUNAVANJE_2 PASIVNO PASIVNO

r1= ? r1= 14 r1= 14 r1= 7 r1= 7 r1= 0 r1= 0 r1= ?

r2= ? r2= 0 r2= 0 r2= 0 r2= 1 r2= 1 r2= 2 r2= 0

TS=0 TS=1 TS=0 TS=0 TS=0 TS=0 TS=0 TS=0

SPREMAN=1 SPREMAN=1 SPREMAN=0 SPREMAN=0 SPREMAN=0 SPREMAN=0 SPREMAN=1 SPREMAN=1

Meutim, kod ove ASM javlja se novi problem, koji nije postojao kod prethodnih varijanti: kolinik (=2) se zadrava u registru r2 samo za vreme jednog taktnog ciklusa. Razlog za ovakvo ponaanje je taj to se ASM odmah nakon zavrenog izraunavanja vraa u stanje PASIVNO, gde se u r2 upisuje 0. Sa matematike take gledita, ASM je ispravna, ali sa take gledita korisnikog interfejsa, ovakvo ponaanje je neprihvatljivo. 4.6.5 Pamenje kolinika

Problem u radu korisnikog interfejsa koji se javlja u ASM iz odeljka 4.6.4, moe se prevazii uvoenjem jo jednog registra, r3, koji se koristi za pamenje kolinika:

159

Arhitektura mikrosistema

Sl. 4.17 Pamenje kolinika u r3.

ASM sa Sl. 4.17 korektno radi za xy (konani rezultat sada je smeten u r3, a ne u r2). Na primer, za x=14 i y=7, sled deavanja u ASM je sledei:
Tekue stanje PASIVNO PASIVNO IZRAUNAVANJE_1 IZRAUNAVANJE_2 IZRAUNAVANJE_3 IZRAUNAVANJE_1 IZRAUNAVANJE_2 IZRAUNAVANJE_3 PASIVNO PASIVNO r1= ? r1= 14 r1= 14 r1= 7 r1= 7 r1= 7 r1= 0 r1= 0 r1= 0 r1= ? r2= ? r2= 0 r2= 0 r2= 0 r2= 1 r2= 1 r2= 1 r2= 2 r2= 2 r2= 0 r3= ? r3= ? r3= ? r3= ? r3= ? r3= 1 r3= 1 r3= 1 r3= 2 r3= 2 TS=0 TS=1 TS=0 TS=0 TS=0 TS=0 TS=0 TS=0 TS=0 TS=0 SPREMAN=1 SPREMAN=1 SPREMAN=0 SPREMAN=0 SPREMAN=0 SPREMAN=0 SPREMAN=0 SPREMAN=0 SPREMAN=1 SPREMAN=1

Naalost, u gornjoj ASM postoji jedna suptilna greka: u sluajevima kada rezultat treba da bude nula (x<y), r3 ostaje nepromenjen, umesto da bude obrisan. To se dogaa zato to se upis u r3 obavlja samo unutar petlje. Meutim, u sluajevima kada je x<y, u petlju se ne ulazi, a r3 zadrava zateenu vrednost. Problem se moe reiti ako se uvede jo jedno grananje, neposredno pre ulaska u petlju, koje e ispitati uslov x<y (to se moe postii ispitivanjem r1y), kao to je prikazano na Sl. 4.18.

Sl. 4.18 Reenje za situaciju kada je kolinik jednak nuli.

160

ASM Dijagrami

Uvoenje dodatnog stanja, IZRAUNAVANJE_3, ima za posledicu produenje vremena izraunavanja, koje sada iznosi: 2+3*kolinik. (Ponekada, projektant mora da razmotri sporije reenje, da bi nakon toga, eventualno, stigao do breg). 4.6.6 Varijacije unutar petlje

U ovom odeljku, polazei od ASM iz odeljka 4.6.5 (Sl. 4.18), isprobaemo razliite varijante realizacije petlje, u smislu promene redosleda operacija i uvoenja paralelizma u izvrenju operacija. Konani cilj je nai reenje koje e biti bre od polaznog. Zamena redosleda stanja IZRAUNAVANJE_2 i IZRAUNAVANJE_3, daje pogreno reenje:

Sl. 4.19 Neispravno preureenje stanja.

Sledea tabela pokazuje na koji nain dolazi do greke u ASM sa Sl. 4.19, za sluaj x=14 i y=7:
Tekue stanje PASIVNO PASIVNO IZRAUNAVANJE_1 IZRAUNAVANJE_3 IZRAUNAVANJE_2 IZRAUNAVANJE_1 IZRAUNAVANJE_3 IZRAUNAVANJE_2 PASIVNO PASIVNO

r1= ? r1= 14 r1= 14 r1= 7 r1= 7 r1= 7 r1= 0 r1= 0 r1= 0 r1= ?

r2= ? r2= 0 r2= 0 r2= 0 r2= 0 r2= 1 r2= 1 r2= 1 r2= 2 r2= 0

r3= ? r3= ? r3= ? r3= ? r3= 0 r3= 0 r3= 0 r3= 1 r3= 1 r3= 1

TS=0 TS=1 TS=0 TS=0 TS=0 TS=0 TS=0 TS=0 TS=0 TS=0

SPREMAN=1 SPREMAN=1 SPREMAN=0 SPREMAN=0 SPREMAN=0 SPREMAN=0 SPREMAN=0 SPREMAN=0 SPREMAN=1 SPREMAN=1

Oigledno, upis u r3 se obavlja prerano i konani rezultat je za jedan manji od ispravnog. Jo jedna varijanta izvoenja petlje, koja je, naalost, iz slinih razloga kao i prethodna, takoe, pogrena, dobija se spajanjem stanja IZRAUNAVANJE_2 i IZRAUNAVANJE_3 u jedinstveno stanje IZRAUNAVANJE_23:

161

Arhitektura mikrosistema

Sl. 4.20 Neuspean pokuaj uvoenja paralelizma.

Sledea tabela pokazuje kako dolazi do greke, za sluaj x=14 i y=7:


Tekue stanje PASIVNO PASIVNO IZRAUNAVANJE_1 IZRAUNAVANJE_23 IZRAUNAVANJE_1 IZRAUNAVANJE_23 PASIVNO PASIVNO r1= ? r1= 14 r1= 14 r1= 7 r1= 7 r1= 0 r1= 0 r1= ? r2= ? r2= 0 r2= 0 r2= 0 r2= 1 r2= 1 r2= 2 r2= 0 r3= ? r3= ? r3= ? r3= ? r3= 0 r3= 0 r3= 1 r3= 1 TS=0 TS=1 TS=0 TS=0 TS=0 TS=0 TS=0 TS=0 SPREMAN=1 SPREMAN=1 SPREMAN=0 SPREMAN=0 SPREMAN=0 SPREMAN=0 SPREMAN=1 SPREMAN=1

Mada je unutar pravougaonika IZRAUNAVANJE_23, operacija upisa u registar r2 navedena ispred operacije upisa u registar r3, ove dve operacije izvravaju se u paraleli (istovremeno). Znaenje stanja u ASM ne zavisi od redosleda naredbi u pravougaoniku koji odgovara tom stanju. S obzirom da izmeu operacija r2 r2 + 1 i r3 r2 postoji zavisnost, ASM sa Sl. 4.20 nije ekvivalentan korektnom ASM dijagramu sa Sl. 4.18, kod koga su ove dve operacije razdvojene u posebna stanja. Nasuprot tome, ponaanje ASM sa Sl. 4.20, ekvivalentno je ponaanju pogrenog ASM dijagrama sa Sl. 4.19. Nakon drugog ulaska u stanje IZRAUNAVANJE_23 (vrsta u tabeli prikazana masnim slovima), r2 se uveava za jedan (sa 1 na 2), ali se zato u r3 prenosi stara vrednost r2 (=1), to ne odgovara onome ta oekujemo. Varijanta petlje, koja daje ne samo korektno, ve i bre reenje je ona kod koje su sve tri operacije, koje ine telo petlje, spojene u jedinstveno stanje:
PASIVNO r1 <- x r2 <- 0 SPREMAN

TS 0

r1 >= y

NULA3 r3 <- 0 r1 >= y 0 1

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

Sl. 4.21 Ispravna paralelizacija.

162

ASM Dijagrami

ASM sa Sl. 4.21 je korektan, to ilustruje sledea tabela (x=14 i y=7):


Tekue stanje PASIVNO PASIVNO IZRAUNAVANJE IZRAUNAVANJE IZRAUNAVANJE PASIVNO PASIVNO

r1= ? r1= 14 r1= 14 r1= 7 r1= 0 r1= 4089 r1= ?

r2= ? r2= 0 r2= 0 r2= 1 r2= 2 r2= 3 r2= 0

r3= ? r3= ? r3= ? r3= 0 r3= 1 r3= 2 r3= 2

TS=0 TS=1 TS=0 TS=0 TS=0 TS=0 TS=0

SPREMAN=1 SPREMAN=1 SPREMAN=0 SPREMAN=0 SPREMAN=0 SPREMAN=1 SPREMAN=1

Ispitivanje uslova r1y pripada stanju IZRAUNAVANJE (kao to pripada i stanju PASIVNO). Uoimo da se r1 menja u ovim stanjima. Takoe, izmeu operacija obuhvaenih stanjem IZRAUNAVANJE postoji, ranije pomenuta, meuzavisnost. Meutim, i pored svega toga, ASM sa Sl. 4.21 predstavlja ispravno reenje, a razlog za to je upravo injenica da se sve pomenute operacije izvravaju u paraleli. U tom smislu, reenje sa Sl. 4.21 predstavlja suprotnost u odnosu na koncept softverske sekvencijalnosti, od koga smo poli u traenju reenja koje bi bilo optimalno u kontekstu hardverske realizacije maine za deljenje. U razmatranoj ASM, registar r3 i dalje se koristi za uvanje kolinika nakon to se maina po zavrenom izraunavanju vrati u stanje PASIVNO. Meutim, u ASM sa Sl. 4.21, registar r3 ostvaruje jo jednu, ak vaniju funkciju. Postojanje registra r3 kompenzuje injenicu da se stanje IZRAUNAVANJE izvrava jedanput vie u odnosu na odgovarajuu softversku petlju. ak iako je konana vrednost u registru r2 za jedan vea od ispravnog rezultata, registar r3, koji se uvek puni starom (prethodnom) vrednou registra r2, na kraju izraunavanja sadri ispravan kolinik (vrsta iz prethodne tabele prikazana masnim slovima). Petlja, koja sada sadri samo jedno stanje, IZRAUNAVANJE, poseduje jo jednu zanimljivu osobinu, koja se retko sree kod softverskih petlji: petlja se ili ne izvri ni jedanput ili se izvrava barem dva puta. Razlog za ovakvo ponaanje je u tome to je ispitivanje r1y sastavni deo dva razliita stanja: PASIVNO i IZRAUNAVANJE. Za ilustraciju, razmotrimo rad ASM-a sa Sl. 4.21 za sluaj x=7 i y=7:
Tekue stanje PASIVNO PASIVNO IZRAUNAVANJE IZRAUNAVANJE PASIVNO PASIVNO r1= ? r1= 7 r1= 7 r1= 0 r1= 4089 r1= ? r2= ? r2= 0 r2= 0 r2= 1 r2= 2 r2= 0 r3= ? r3= ? r3= ? r3= 0 r3= 1 r3= 1 TS=0 TS=1 TS=0 TS=0 TS=0 TS=0 SPREMAN=1 SPREMAN=1 SPREMAN=0 SPREMAN=0 SPREMAN=1 SPREMAN=1

S obzirom da u stanju PASIVNO vai r1=7, uslov r1y je ispunjen i ASM prelazi u stanje IZRAUNAVANJE. U stanju IZRAUNAVANJE inicira se upis u r1 (r1r1-y), ali u toku prvog prolaska kroz ovo stanje, r1 zadrava svoju vrednost iz stanja PASIVNO (=7). To znai da e uslov r1y biti ispunjen i pri prvom narednom ispitivanju, to ostavlja ASM u stanju IZRAUNAVANJE. Promena sadraja registra r1 sa 7 na 0 desie se tek pri drugom ulasku u stanje IZRAUNAVANJE; uslov r1y vie nije ispunjen i ASM se vraa u stanje PASIVNO. Kao i prethodne varijante ASM dijagrama, i ASM sa Sl. 4.21, zahvaljujui stanju NULA3, ispravno radi i u sluajevima kada je x<y. Na primer, razmotrimo sluaj x=5, y=7:
Tekue stanje PASIVNO PASIVNO NULA3 PASIVNO PASIVNO r1= ? r1= 5 r1= 5 r1= 5 r1= ? r2= ? r2= 0 r2= 0 r2= 0 r2= 0 r3= ? r3= ? r3= ? r3= 0 r3= 0 TS=0 TS=1 TS=0 TS=0 TS=0 SPREMAN=1 SPREMAN=1 SPREMAN=0 SPREMAN=1 SPREMAN=1

Vreme rada ASM iznosi 3+kolinik taktnih ciklusa. Znaajno ubrzanje rada ostvareno je zahvaljujui maksimalnoj paralelizaciji unutranje petlje ASM dijagrama. 4.6.7 Eliminacija stanja NULA3

Paljivom analizom rada ASM-a iz prethodnog odeljka moemo zakljuiti da bi se stanje NULA3 moglo eliminisati ako bi se stanje IZRAUNAVANJE izvravalo jednom ili vie puta, umesto dva ili vie puta. Naime, ako bi smo obezbedili da ASM ue u petlju i za x<y, tada bi naredba registarskog prenosa r3r2, koja je deo stanja IZRAUNAVANJE, imala isti efekta kao i naredba r30, koja je deo stanja NULA3. (Zato to pri naputanju stanja PASIVNO, r2 ima vrednost 0). Drugim reima, treba obezbediti da ASM iz stanja PASIVNO

163

Arhitektura mikrosistema

pree u stanje IZRAUNAVANJE, bez obzira na ishod ispitivanja r1y, 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 moe se ostvariti na osnovu vrednosti statusnog signala TS, koji je 1 pri prelasku iz stanja PASIVNO u stanje IZRAUNAVANJE, a 0 za sve vreme dok traje izraunavanje kolinika. (Ovo podrazumeva da mainu koristi prijateljski korisnik, koji se pridrava zahteva da trajanje TS=1 mora biti tano jedan taktni ciklus.) Na Sl. 4.22 prikazan je ASM dijagram kod koga je ispitivanje uslova za kraj petlje proireno testiranjem statusnog signala TS:

Sl. 4.22 ASM dijagram maine za deljenje sa dva stanja. Notacija r1y | TS je ekvivalentna notaciji r1y OR TS.

Aktiviranje signala TS, koji traje tano jedan taktni ciklus ima kao jedinu posledicu inicijalni ulazak u petlju. Svako naredno eventualno ponavljanje petlje iskljuivo zavisi od sadraja registra r1. S obzirom da se za xy petlja izvrava najmanje dva puta, pridruivanje signala TS uslovu r1y nema efekta na rad ASM-a za xy. Efekat pridruivanja signala TS uslovu r1y ispoljava se kada je x<y. Drugim reima, umesto da se stanje IZRAUNAVANJE ne izvri ni jedanput, TS=1 forsira da se ovo stanje izvri. U ovom sluaju, stanje IZRAUNAVANJE se izvrava tano jednom zato to x (tj. r1) nije y. Na primer, razmotrimo rad ASM-a za sluaj x=5 i y=7:
Tekue stanje PASIVNO PASIVNO IZRAUNAVANJE PASIVNO PASIVNO r1= ? r1= 5 r1= 5 r1= 4094 r1= ? r2= ? r2= 0 r2= 0 r2= 1 r2= 0 r3= ? r3= ? r3= ? r3= 0 r3= 0 TS=0 TS=1 TS=0 TS=0 TS=0 SPREMAN=1 SPREMAN=1 SPREMAN=0 SPREMAN=1 SPREMAN=1

injenica da se nakon izvrenja stanja IZRAUNAVANJE sadraji registara r1 i r2 razlikuju od onih koje su oni imali nakon izvrenja stanja NULA3 u prethodnoj varijanti ASM-a nema znaaja, s obzirom da korisnik oekuje konani rezultat u registru r3. Vreme rada ASM sa Sl. 4.22 iznosi, kao i kod prethodne ASM, 3+kolinik 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 sutini, konkretni ASM dijagram sadri while petlju (testiranje uslova r1y | TS) ugnedenu unutar if naredbe (testiranje signala TS). Takoe, uoimo 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 tenje za strukturnom formom ASM dijagram. Dvostruko ispitivanje signala TS moemo lako eliminisati, ali to rezultuje u ASM dijagramu koji nije vie strukturnog oblika (Sl. 4.23). Strukturni oblik ASM dijagrama je bitna karakteristika u sluajevima kada se u kasnijim fazama projektovanja, dijagram opisuje pomou nekog od strukturnih jezika za opis hardvera, kao to su VHDL ili Verilog.

164

ASM Dijagrami

Sl. 4.23 Ekvivalentan prikaz ASM dijagrama sa Sl. 4.22.

U ASM dijagramu sa Sl. 4.23, radi lakeg praenja rada ASM-a, izmenjen je redosled naredbi u stanju IZRAUNAVANJE. Kao to je ranije napomenuto, promena redosleda naredbi unutar pravougaonika, ne menja njegovo znaenje. 4.7 Primer razrade

Proces projektovanja na nain odozgo-nanie ukljuuje tri glavne faze, kao to je to opisano u odeljku 4.5. U odeljku 4.6, kao primer prve faze, razmatrane su razliite varijante opisa ponaanja maine za deljenje. U ovom odeljku bie razmatrana druga faza projektovanja (razrada) maine za deljenje. Zadatak razrade je podela maine za deljenje na dva dela: upravljaku jedinicu i stazu podataka. 4.7.1 Prvi primer

Za ilustraciju razrade opisa ponaanja u strukturu sainjenu od upravljake jedinice i staze podataka moemo uzeti bilo koji korektan ASM dijagram iz odeljka 4.6. Na primer, usredsredimo se na ASM opisan u odeljku 4.6.7 (Sl. 4.22), koji je ujedno predstavlja i najjednostavniju ASM mainu za deljenje. Za poetak, ignorisaemo signale TS i SPREMAN, s obzirom da se radi o statusnim ulazima, koji ionako ostaju nepromenjeni u fazi razrade. Cilj faze razrade jeste eliminacija naredbi registarskog prenosa i relacionih izraza. Uoimo naredbe registarskog prenosa u ASM dijagramu sa Sl. 4.22. U stanju PASIVNO, inicira se upis vrednosti x u registar r1 i, u paraleli, brisanje registra r2. U stanju IZRAUNAVANJE, inicira se upis u sva tri registra. Naravno, sve inicirane promene registara desie se na poetku sledeeg taktnog ciklusa. Postoji veliki broj razliitih hardverskih struktura koje bi mogle realizovati naredbe registarskog prenosa iz ASM sa Sl. 4.22. Na projektantu je da se odlui koje e hardverske komponente koristiti za ovu namenu. Kriterijumi mogu biti razliiti: brzina rada, cena, raspoloivost komponenti, i td. Jedini zahtev je da nain na koji su izabrane komponente povezane moe obezbediti izvoenje svih naredbi registarskog prenosa uz striktno potovanje tajminga koje je specificiran polaznim ASM dijagramom. Najlaki (mada ne obavezno uvek i najbolji) nain da se ovo postigne jeste izabrati takve registarske komponente koje osim osnovne funkcije memorisanja podataka, omoguavaju i neku dodatnu obradu koja se moe iskoristiti za realizaciju celokupne (ili barem jednog dela) naredbe registarskog prenosa. Na primer, u konkretnom sluaju, za realizaciju registra r2 moemo iskoristiti broja. Broja, kao digitalna registarska komponenta, osim memorisanja podatka, omoguava brisanje (resetovanje) i inkrementiranje sadraja, upravo one funkcije koje su potrebne za izvoenje naredbi r20 i r2r2+1, koje se javljaju u stanjima PASIVNO i IZRAUNAVANJE, a ukljuuju registar r2. Realizacijom registra r2 uz pomo brojaa bili bi smo u mogunosti da eliminiemo obe ove naredbe registarskog prenosa i zamenimo ih upravljakim signalima za resetovanje i inkrementiranje brojaa. Ukoliko projektant za realizaciju registra r2, umesto brojaa, odlui da koristi prihvatni registar, on e morati da obezbedi dodatnu kombinacionu logiku kako bi nadomestio nedostatak funkcija resetovanja i inkrementiranja, ugraenih u broja. Izbor prihvatnog registra za realizaciju r2 nije pogreno reenje, ve samo zahteva vee angaovanje projektanta. Da bi smo zadrali jednostavnost primera, usvojiemo da se r2 realizuje uz pomo brojaa. Sa druge strane, registri r1 i r3, za razliku od brojaa, uvek se pune vrednostima koje ne zavise direktno od tekueg sadraja tih registara. Iz tog razloga, za realizaciju r1 i r3, razumno je koristiti najjednostavnije registarske komponente, kao to je prihvatni registar, koji osim bazinih registarskih funkcija upisa i

165

Arhitektura mikrosistema

memorisanja podataka, poseduje jo jedino funkciju dozvole upisa. Naravno, bie neophodan dodatni hardver kako bi se obezbedili podaci za upis u ove registre. Nakon to smo odluili koje tipove registara emo koristiti u stazi podataka, neophodno je razmotriti na koji nain e registri biti povezani. Za trenutak, usredsredimo se samo na naredbe registarskog prenosa u stanju IZRAUNAVANJE. U ovom stanju, r1 se puni razlikom r1-y, r2 se inkrementira, a r3 se puni starom vrednou registra r2. Sve tri operacije izvravaju se u paraleli. Za izraunavanje razlike r1-y koristiemo oduzima. Ovo kolo e uvek raunati razliku izmeu r1 i y (nezavisno od toga to se razlika upisuje u r1 samo kada je maina u stanju IZRAUNAVANJE). Punjenje registra r3 starom vrednou registra r2 lako se ostvaruje, tako to se izlazi brojakog 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 IZRAUNAVANJE, staza podataka bi izgledala kao na Sl. 4.24.
12 ldr1 clrr2 incr2 12 12 ldr3 12

(-)

12

x/y

r1

r2

r3

Sl. 4.24 Staza podataka sa oduzimaem. Napomena: ldr signal dozvole upisa u registar; clr signal dozvole resetovanja brojaa; inc signal dozvole inkrementiranja brojaa; trougao oznaava taktni ulaz registra.

Uoimo da u stazi podataka sa Sl. 4.24 nije mogue realizovati operacije registarskog prenosa koje se javljaju u stanju PASIVNO, r20 i r1x. Naime, ne postoji mogunost da se u r1 upie x. Pristupa koji se esto koristi kada staza podataka u razliitim stanjima treba da obavi razliite operacije sastoji se u ugradnji aritmetiko-logike jedinice (ALU). Za razliku od kombinacionih kola fiksne funkcije (kao to je oduzima), ALU predstavlja kombinaciono kolo koje moe da obavi vei broj razliitih aritmetikih ili logikih operacija nad dva viebitna operanda. Takoe, prilikom korienja ALU obino je potrebno ugraditi jedan ili vie multipleksera za izbor podataka koji e kao operandi biti prosleena do ulaza ALU. U konkretnom primeru, u r1, u razliitim stanjima, upisuju se sledee informacije: (1) razlika r1-y, ili (2) vrednost deljenika x. Ako usvojimo da se informacija za upis u r1 generie od strane ALU jedinice, takva ALU mora biti sposobna da obavi barem dve razliite operacije: izraunavanje razlike i proputanje, bez ikakve promene, jednog od ulaznih operanada na izlaz. Usvojiemo da se izbor operacije koju e ALU obaviti vri postavljanjem odgovarajue binarne kombinacije na upravljakom, 6-bitnom ulazu aluctr1, ALU jedinice. 6-bitne binarne kombinacije kojima se biraju dve operacije koje su nam potrebne u konkretnom primeru simboliki emo imenovati kao: 'ODUZIMANJE i 'PROPUTANJE. (Simbol ' oznaava da dotino ime ukazuje na binarnu kombinaciju). Znai, u jednom sluaju ALU oduzma y od r1, a u drugom proputa 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 upravljaki ulaz muxctr1 multipleksera postavljen na 0, multiplekser proputa x, a kada je postavljen na 1, proputa y. Korienjem ALU kola i multipleksera, staza podataka dobija oblik kao na Sl. 4.25:
aluctrl 6 12 x y 12 0 1 12 12 ldr1 clrr2 incr2 12 ldr3 12

ALU

12

x/y

r1

r2

r3

muxctrl

Sl. 4.25 Staza podataka sa ALU

Staza podataka, prikazana na Sl. 4.25, iako je u stanju da realizuje sve naredbe registarskog prenosa koje se javljaju u ASM dijagramu iz odeljka 4.6.7, ne prua mogunost ispitivanja relacionog izraza r1y. Najjednostavniji nain za realizaciju relacionog izraza jeste korienje namenske kombinacione logike (obino je to komparator), koja izraunava interni statusni signal ija vrednost ukazuje na rezultat poreenja. U

166

ASM Dijagrami

razraenoj varijanti ASM dijagrama, koja opisuje ponaanje upravljake jedinice, relacioni izraz iz polaznog ASM dijagrama zamenjuje se testiranjem ovog internog statusnog signala. U konkretnom primeru, za obavljanje poreenja r1y koristiemo komparator iji su ulazi r1 i y. Komparator, kao namensko kombinaciono kolo, poseduje tri izlaza: strogo manje (<); jednako (==) i strogo vee (>). Izlaz tipa ne postoji, ali se moe lako oformiti, s obzirom da predstavlja negaciju izlaza strogo manje. Znai, da bi smo realizovali eljeno poreenje, iskoristiemo izlaz strogo manje komparatora i invertor. Izlaz invertora bie interni statusni signal r1gey, koji kada je 1 ukazuje da je r1 vee ili jednako y (r1gey r1 is Grater or Equal then Y). Konano, doli smo do strukture staze podataka koja moe 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, prevoenje polaznog ASM dijagrama iz odeljka 4.6.7 u razraeni ASM dijagram upravljake jedinice, predstavlja, u sutini, mehaniki postupak. Svrha ovog prevoenja je da se umesto naredbi registarskog prenosa koriste upravljaki signali (kao to je incr1), a umesto relacionih izraza interni statusni signali (kao to je r1gey). Svaka naredba se prevodi u jedan ili vie upravljakih signala (kao to su ldr1, clrr2, incr2 ili ldr3). Na primer, da bi se u stazi podataka sa Sl. 4.25 obavila naredba r2r2+1 potrebno je aktivirati upravljaki signal incr2. Znai, u ASM dijagramu narebu r2r2+1 treba zameniti signalom incr2. Slino, naredbu r1r1-y treba zameniti naredbama postavljanja signala muxctrl, aluctrl='ODUZIMANJE i ldr1, i td. Prelaz sa ASM dijagrama koji opisuje ponaanje celokupne maine na razraeni ASM koji opisuje ponaanje upravljake jedinice, uvek ima u vidu strukturu staze podataka. Mada, obino, postoji vei broj staza podataka, razliite strukture, koje mogu realizovati naredbe registarskog prenosa i relacione izraze sadrane u polaznim ASM dijagramom, svaka od varijanti zahtevae razliiti razraeni ASM, prilagoen 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, razraeni ASM dijagram dobijen na osnovu polaznog ASM dijagrama i usvojene staze podataka, i blok dijagram koji pokazuje spregu upravljake jedinice i staze podataka.
aluctrl 6 12 x y 12 0 1 12 12 ldr1 clrr2 incr2 12 ldr3 12

ALU

12

x/y

r1 cmp

r1gey

r2

r3

muxctrl 12

Sl. 4.26 Konani oblik staze podataka.

PASIVNO

ldr1 clrr1 aluctrl = 'PROPUSTANJE muxtrcl = 0 SPREMAN

TS

r1 >= y | TS

IZRACUNAVANJE ldr1 incr2 ldr3 aluctrl = 'ODUZIMANJE muxctrl = 1

Sl. 4.27 Razraena ASM koja odgovara slikama Sl. 4.22 i Sl. 4.26.

167

Arhitektura mikrosistema

MAINA ZA DELJENJE

r1gey

ldr1 clrr2

TS

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

x y

12 12 SPREMAN

Sl. 4.28 Razraeni blok dijagram maine za deljenje.

4.7.2 Drugi primer Paljivom analizom, moemo zakljuiti da staza podataka, razvijena u prethodnom odeljku, moe da realizuje bilo koji ASM dijagrama maine za deljenje iz odeljka 4.6. Meutim, to nije morao biti sluaj; ta vie, retko se deava da jedna staza podataka moe posluiti za realizaciju razliitih ASM-a. Ono to izdvaja ASM dijagram sa Sl. 4.22, koji je posluio kao osnova za razvoj staze podataka iz prethodnog odeljka, od ostalih ASM dijagrama razmatranih u odeljku 4.6, jeste maksimalni paralelizam. Postoji jedno neformalno pravilo koje kae da staza podataka projektovana za maksimalni paralelizam moe realizovati ASM koji zahteva manji nivo paralelizma. Na primer, prva ASM iz odeljka 4.6.2 moe biti realizovana korienjem staze podataka i sistemskog blok dijagrama iz prethodnog odeljka (slike Sl. 4.26 i Sl. 4.28). U ovom ASM dijagramu, registar r3 se ne koristi. To znai da e izlaz podataka maine biti r2 umesto r3. Na Sl. 4.29 prikazan je razraeni ASM dijagram koji odgovara ASM-u iz odeljka 4.6.2 i stazi podataka iz odeljka 4.7.1.

PASIVNO ldr1 aluctrl = 'PROPUTANJE muxctrl = 0 SPREMAN

TS INIT

clrr2

TEST

r1gey 0

1 IZRACUNAVANJE_1 ldr1 aluctrl = 'ODUZIMANJE muxctrl = 1 IZRACUNAVANJE_2 incr2

Sl. 4.29 Razraena ASM koja odgovara slikama Sl. 4.12 i Sl. 4.26.

4.7.3 Trei primer Ukoliko za realizaciju maine za deljenje usvojimo sekvencijalni ASM dijagram iz odeljka 4.6.2 (Sl. 4.12), postoji mogunost da emo nai jeftiniju stazu podataka (ali sa manjim potencijalnim paralelizmom). Naravno, jednu takvu staza podataka neemo moi iskoristiti za realizaciju ASM dijagrama koji zahtevaju vei nivo paralelizma (npr. ASM dijagram iz odeljka 4.6.7). Jedan od uobiajenih naina za smanjenje cene (tj. hardverske sloenosti) reenja, mada na raun smanjenja brzine rada, zasnovan je na korienju ALU kao

168

ASM Dijagrami

centralne jedinice uz pomo koje se obavljaju sve operacije koje su specificirane polaznim ASM dijagramom. Konkretno, ALU moe na svom izlaz da postavi sve nule (kada je aluctrl = NULA) i da inkrementira jedan od ulaznih operanada (kada je aluctrl = INKREMENT). Poto se ALU koristi za razliite operacije nad razliitim podacima, reenje 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 znai da je ulaz multipleksera za selekciju muxctrl dvo-bitni). Ovo e omoguiti da se izabere jedna od vrednosti x, r1 i r2 i prosledi do ulaza u ALU. Kod opisanog reenja vie nije neophodno da r2 bude realizovan kao brojaki registar, s obzirom da operaciju r2r2+1 moe da obavi ALU. Takoe, izlaz ALU jedinice mora biti dostupan na centralnoj magistrali, sa koje e se vriti upis u registre r1 i r2. ALU jedinica standardno poseduje signal izlaznog prenosa (cout) koji se moe iskoristiti za odreivanje rezultata testa r1y. Ovo je dozvoljeno jer ASM iz odeljka 4.6.2 poseduje stanje TEST sa praznim pravougaonikom. U razraenoj ASM, ovaj pravougaonik nee biti prazan, mada i dalje nee sadrati bilo kakav upis u registre r1 ili r2. Postavljanjem odgovarajuih internih upravljakih signala (aluctrl i muxctrl) u prazan pravougaonika stanja TEST, staza podataka se moe tako konfigurisati da ALU izraunava razliku r1 i y, ali bez upisa rezultata u bilo koji registar. Izlazni prenos postavljen prilikom izraunavanja ove razlike, tanije njegova komplementarna vrednost, ~cout, ukazuje na ishod poreenja r1y. Struktura staze podataka za trei primer prikazana je na Sl. 4.30, a razraeni ASM koji opisuje ponaanje upravljake jedinice na Sl. 4.31.
12 ldr1 x 12 0 1 2 2 y muxctrl ldr2 12 12

r1

12

ALU
12 b 6 aluctrl x/y

cout

r2

Sl. 4.30 Staza podataka sa centralnom ALU jedinicom.

Sl. 4.31 Razraena ASM koja odgovara slikama Sl. 4.12 i Sl. 4.30.

169

Arhitektura mikrosistema

4.7.4

Poreenje metodike i staze podataka zasnovane na ALU jedinici

Primeri razrade opisa ponaanja u strukturu upravljaka jedinica staza podataka, opisani u prethodnim odeljcima, ukazuju da se u fazi razrade projektant sree sa irokim spektarom mogunih reenja. Staza podataka zasnovana na centralnoj ALU (ilustrovana u odeljku 4.7.3) koja obavlja sva neophodna izraunavanja, predstavlja jedan kraj ovog spektra. Druga krajnost je metodika staza podataka, ilustrovana u odeljcima 4.7.1 i 4.7.2, kod koje se sva izraunavanja predviena algoritmom, obavljaju zasebnim hardverskim jedinicama. Pristup zasnovan na centralizovanoj ALU, tipino, zahteva manje hardvera, ali zato, moe da realizuje samo odreene vrste ASM-ova. Na primer, polazni ASM, koji je osnova za metodiku staza podataka, ne moe se ostvariti u stazi podataka zasnovanoj na centralizovanoj ALU, zato to takva ASM predvia vie od jednog izraunavanja po taktnom ciklusu. U sledeoj tabeli navedene su kljune razlike izmeu ova dva pristupa:
Kriterijum Gde se izvode izraunavanja? Centralizovana ALU Jedna ALU Metodika staza podataka U samim registrima ili registrima povezanim sa multiplekserima, ALU jedinicama i namenskim kombinacionim kolima. Samo sa jednim registrom. Bilo kog tipa. Jedna ili vie Bra Via 4.7.1; 4.7.2 Sl. 4.26; Sl. 4.27; Sl. 4.30.

Gde je vezan izlaz ALU jedinice? Kog su tipa registri? Broj po taktnom ciklusu Brzina Cena Primeri (odeljci) Slike

Sa svakim registrom. Prihvatni registri sa dozvolom. Jedan Sporija Nia 4.7.3 Sl. 4.30; Sl. 4.31

Kod metodike staze podataka iz odeljka 4.7.2, izlaz ALU jedinice je povezan samo sa ulazom u registra r1; kod staze podataka sa centralizovanom ALU iz odeljka 4.7.3, izlaz ALU jedinice je povezan sa oba registra r1 i r2. Kod ASM koja je realizovana uz pomo metodike staze podataka, u jednom taktnom ciklusu izvrava se vie naredbi registarskog prenosa. Pristup koji koristi centralizovanu ALU je sporiji jer polazi od sekvencijalnog ASM dijagrama. 4.8 Primeri realizacije

U fazi razrade (opisane u odeljku 4.7), maina za deljenje je podeljena na upravljaku jedinicu (opisanu razraenim ASM dijagramom) i stazu podataka. U ovom odeljku razmatra se zavrna, trea faza procesa projektovanja maine za deljenje. Trea faza projektovanja ukljuuje konverziju razraenog ASM dijagrama u hardversku strukturu koja e realiyovati ponaanje opisano razraenim ASM dijagramom. Na kraju ove faze, polazni sistem, opisan ASM dijagramom, bie u potpunosti opisan u obliku strukturne blok eme. Na taj nain, sistem vie nee biti opisan u smislu ta radi (tj. kako se ponaa), ve e biti opisan u smislu kako je napravljen (struktura). Rezultujua strukturna blok ema sadrae dovoljno informacija na osnovu kojih e projektant moi da povee hardverske komponente u fiziku, hardversku mainu. 4.8.1 Prvi primer

Prvi korak u procesu prevoenja razraenog ASM dijagrama u hardversku strukturu sastoji se u dodeli jedinstvenih binarnih kombinacija stanjima ASM dijagrama. Binarne kombinacije mogu biti proizvoljne, osim to se projektantu preporuuje da pri izboru binarnih kombinacija bude konzistentan kako se ne bi desilo da ista kombinacija bude upotrebljena dva ili vie puta. Jedan pristup, koji je lak za projektanta, jeste korienje binarnog koda. Za ASM sa dva stanja, jednobitni kod je dovoljan. Za ASM sa tri ili etiri stanja, potreban je dvobitni kod, dok je trobitni kod dovoljan za ASM dijagrame sa brojem stanja od pet do osam. U optem sluaju, ASM sa n stanja zahteva log 2 ( n ) bitni kod. Razraena ASM iz odeljka 4.7.1 sadri samo dva stanja. Usvojiemo da se stanje PASIVNO kodira sa 0, a stanje IZRAUNAVANJE sa 1. Takoe, neophodno je poznavati konkretne binarne kombinacije za kontrolu ALU jedinice. Usvojiemo da su operacije ALU jedinice kodirane u skladu sa specifikacijama standardne ALU komponente 74xx181: gde je

tst

sst

statusni signali

Kombinaciona logika sledeceg stanja

Registar tekuceg stanja


upravljacki signali

Sl. 4.32 Upravljaka jedinica.

170

ASM Dijagrami

'PROPUSTIB = 101010, a 'ODUZIMANJE = 011001. Struktura upravljake jedinice sastoji se iz dva dela: (1) registar tekueg stanja i (2) kombinaciona logika sledeeg stanja. Statusni signali i tekue stanje su ulazi u kombinacionu logiku, a sledee stanje i upravljaki signali su izlaz iz kombinacione logike. Sledee stanje je ulaz u registar tekueg stanja, kao to je prikazano na Sl. 4.32. Kombinaciona logika sledeeg stanja moe biti opisana tabelarno. ASM dijagramu iz odeljka 4.7.1 odgovara sledea tabela prelaza:
Ulaz tst 0 0 0 0 1 1 1 1 TS 0 0 1 1 0 0 1 1 r1gey 0 1 0 1 0 1 0 1 sst 0 0 1 1 0 1 1 1 ldr1 1 1 1 1 1 1 1 1 clrr2 1 1 1 1 0 0 0 0 incr2 0 0 0 0 1 1 1 1 ldr3 0 0 0 0 1 1 1 1 Izlaz muxctrl 0 0 0 0 1 1 1 1 Aluctrl 101010 101010 101010 101010 011001 011001 011001 011001 SPREMAN 1 1 1 1 0 0 0 0

U gornjoj tabeli, jednobitni signal tst reprezentuje tekue, a sst sledee stanje. Jedna mogua realizacija ove tabele je uz pomo ROM-a. Ulazni signali se dovode na adresne linije ROM-a, a izlazni signali se uzimaju sa linija podataka ROM-a. Poto je broj ulaza tri, a broj izlaza 13, neophodan je ROM kapaciteta 8x13, tj. osam trinaestobitnih lokacija (rei). U lokaciju ROM-a sa adresom koja je, u binarnom obliku, navedena u levom delu tabele upisuje se podatak iz desnog dela tabele. Drugi nain za implementaciju logike sledeeg stanja jeste uz pomo logikih kola; svaki od izlaza tretira se kao logika funkcija tri ulazne promenljive (tst, TS i r1gey). Do analitikih izraza za ove funkcije dolazi se postupkom logike minimizacije, da bi se potom, na osnovu analitikih izraza, direktno, projektovala AND-OR kombinaciona mrea. Sledee logike funkcije predstavljaju ekvivalent gornje tabele:
sst = ~ tst & TS | tst & (r1gey | TS) ldr1 = 1 clrr2 = ~tst incr2 = tst ldr3 = tst muxctrl = tst aluctrl[5] = ~tst aluctrl[4] = tst aluctrl[3] = 1 aluctrl[2] = 0 aluctrl[1] = ~tst aluctrl[0] = tst SPREMAN = ~tst

Konverzija tabele prelaza u hardversku strukturu predstavlja zadatak koji se moe automatizovati. Za ovu namenu dostupni su brojni softverski alati. Uoimo da u gornjoj tabeli postoje identine vrste. Na primer, vrste 000 i 001 su identine jer prelaz iz stanja PASIVNO u stanje IZRAUNAVANJE zavisi samo od signala TS, a ne i od signala r1gey. (Ako je TS=0, tada ASM ostaje u stanje PASIVNO bez obzira na vrednost signala r1gey; slino, ako je TS=1, tada ASM prelazi iz stanja PASIVNO u stanje IZRAUNAVANJE, bez obzira na signal r1gey.) Imajui to u vidu, gornja tabela se moe predstaviti u skraenom obliku:
Ulaz tst 0 0 1 1 1 TS 0 1 0 1 r1gey 0 0 1 sst 0 1 0 1 1 ldr1 1 1 1 1 1 clrr2 1 1 0 0 0 incr2 0 0 1 1 1 ldr3 0 0 1 1 1 Izlaz muxctrl 0 0 1 1 1 aluctrl 101010 101010 011001 011001 011001 SPREMAN 1 1 0 0 0

Znak - ukazuje na proizvoljnu vrednost, tj. na injenicu da od vrednosti konkretnog signala ne zavisi uslov za promenu datog stanja. Ova tabela ima identino znaenje kako i prethodno data, dua varijanta tabele.

171

Arhitektura mikrosistema

4.8.2

Drugi primer

Razmotrimo, sada, ASM dijagram iz odeljka 4.7.2 (Sl. 4.29). Pretpostavimo da su stanja ovog ASM dijagrama kodirana na sledei nain:
Stanje PASIVNO INIT TEST IZRAUNAVANJE_1 IZRAUNAVANJE_2 Kod 000 001 010 011 100

Sledea tabela opisuje upravljaku jedinicu:


Ulaz tst 000 000 001 010 010 011 100 101 11TS 0 1 r1gey 0 1 sst 000 001 010 000 011 100 010 000 000 ldr1 1 1 0 0 0 1 0 0 0 clrr2 0 0 1 0 0 0 0 0 0 incr2 0 0 0 0 0 0 1 0 0 Izlaz muxctrl 0 0 0 0 1 0 0 0 0 aluctrl 101010 101010 101010 101010 101010 011001 101010 101010 101010 SPREMAN 1 1 0 0 0 0 0 0 0

Skraeni zapis tabele prelaza je koristan jer bi u suprotnom, eksplicitno navoenje svih kombinacija ulaznih signala rezultovalo u tabeli sa 32 vrste. Vrednosti muxctrl i aluctrl u stanjima INIT (001), TEST (010) i IZRAUNAVANJE_2 (100) proizvoljno su izabrane. S obzirom da ASM poseduje 5 stanja, javljaju se tri trobitne kombinacije koje se ne koriste za kodiranje stanja (101, 110 i 111). U toku normalnog rada upravljake jedinice, ove binarne kombinacije nikada se nee javiti kao vrednost trobitnog signala tst. Meutim, pri ukljuenju napajanja sadraj registra tekueg stanja je proizvoljan, a to znai da moe biti jednak i nekoj od nedozvoljenih binarnih kombinacija. Da bi se prevaziao ovaj problem, u tabeli prelaza je navedeno da upravljaka jedinica iz svakog nedozvoljenog stanja prelazi u stanje PASIVNO. 4.9 Hijerarhijsko projektovanje

Rezultat tree faze projektovanja je opis sistema u vidu iste strukturne blok eme. Meutim, ak i na ovom nivou, neka kola koja su deo upravljake jedinice ili staze podataka mogu i dalje biti predstavljena u vidu opisa ponaanja. Na primer, ako staza podataka sadri sabira, u strukturnom blok dijagramu staze podataka ova komponenta e biti prikazana u obliku bloka sa dva ulaza i jednim izlazom uz tekstualnu naznaku da se radi o sabirau. Postoji veliki broj razliitih hardverskih realizacija sabiraa, ali bez obzira koju od njih usvojili, moemo smatrati da nam je unutranja struktura sabiraa poznata i dostupna (npr. u okviru biblioteke standardnih digitalnih modula). Iz tog razloga, nema potrebe optereivati strukturni blok dijagram detaljima koji se odnose na unutranju strukturu sabiraa, ve je dovoljno sabra predstaviti kao crnu kutiju (Sl. 4.33).

Sl. 4.33 Blok dijagram i ASM dijagram sabiraa.

172

ASM Dijagrami

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

a[1]

SUMA[1] b[1]

SUMA

SUMA[2]

Sl. 4.34 Ravni strukturni dijagram sabiraa.

Na Sl. 4.34 ematski je prikazana jedna mogua unutranja struktura sabiraa. ema sa Sl. 4.34 ne sadri bilo kakvu hijerarhiju i zbog toga se zove ravni (ili razvijeni) strukturni dijagram (ili dijagram kola ili gejtova). Ravni strukturni dijagram koji sadri samo logika kola, zove se netlista. Netlista je lista (spisak) gejtova i jednobitnih veza (mrea) koje povezuju gejtove. Netlista predstavlja formalni opis hardverske strukture najveeg nivoa detaljnosti i koristi se kao precizna specifikacija u procesu fizike realizacije kola. Mada ravni strukturni dijagram (ili ekvivalentna netlista) predstavlja konani opis na osnovu koga se izgrauje maina, on, upravo zbog obilja detalja, na kazuje puno o toku kreativnog procesa koji nas je doveo do njegovog kreiranja. Pojam hijerarhijski projekat odnosi se na stil projektovanja kod koga je hijerarhija ouvana sve do nivoa konanog rezultata projekta. U hijerarhijskom projektu, projektant dokumentuje na koji nain je doao do konanog strukturnog dijagrama. Umesto proste eme gejtova, projektant definie module. Na primer, blok dijagram dvo-bitnog sabiraa predstavlja modul. Tipino, modul se sastoji od gejtova i instanci drugih modula, koji se dalje mogu razloiti na jednostavnije module, i tako dalje, sve do nivoa netliste. Na primer, dvobitni sabira se sastoji od jednog potpunog sabiraa i jednog polu-sabiraa (Sl. 4.35); potpuni-sabira ine dva polusabiraa i jedno OR kolo (Sl. 4.36), a polu-sabira se moe predstaviti kako kombinaciona mrea od jednog XOR i jednog AND kola (Sl. 4.37). Hijerarhijski projekat, definisan blok dijagramima sa Sl. 4.35, Sl. 4.36 i Sl. 4.37, i ravni strukturni dijagram sa Sl. 4.34, prikazuju hardversku strukturu dvobitnog sabiraa. Hijerarhijski prikaz je kompaktniji i laki za razumevanje. Pri tome, zamenom modula njihovom definicijom, hijerarhijski projekat se uvek moe transformisati u ravni strukturni dijagram, tj. netlistu.

173

Arhitektura mikrosistema

2 a

1 1

a[0]

HA
b[0]

sum[2]

1 2 b 1

a[1]

b[1]

FA

sum[1]

3 sum

sum[2]

Sl. 4.35 Definicija modula dvo-bitnog sabiraa. HA modul polu-sabiraa; FA modul potpunog sabiraa.

HA

HA

Sl. 4.36 Definicija modula potpunog sabiraa (FA).

Sl. 4.37 Definicija polu-sabiraa (HA).

Iako se hijerarhijsko projektovanje moe primeniti i kod projektovanja odozdo-navie, njegova uloga je vanija kod projektovanja odozgo-nanie. U odozgo-nanie procesu, nakon okonanja tree faze projektovanja, projektant moe iznova da primeni istovetni postupak projektovanja na bilo koji modul nestandardne funkcije. Komponente, kao to je sabira, su dobro poznate, i obino, projektant nije optereen razradom njihove unutranje strukture. Meutim, neke druge komponente, specifine za konkretan problem, zahtevaju dalju razradu, kako bi konani rezultat ovog iterativnog procesa projektovanja sadrao samo logika kola i komponente standardne funkcije. 4.9.1 Hijerarhija u prvom primeru

U odeljcima 4.6.7, 4.7.1 i 4.8.1 detaljno su opisane tri faze projektovanja maine za deljenje u varijanti sa dva stanja. Sledea tri dijagrama (Sl. 4.38, Sl. 4.39 i Sl. 4.40) ilustruju kako se u toku projektovanja menja odnos izmeu koliine strukture i koliine opisa ponaanja. U svakom od ovih dijagrama, pojedinani blok dijagrami (crne kutije) i konkretne komponente (koje inae same za sebe predstavljaju crne kutije) reprezentuju delove sistema ija je unutranja priroda poznata samo po ponaanju.

174

ASM Dijagrami

12 12 MAINA ZA DELJENJE (opis ponaanja je dat u obliku ASM dijagrama) 12 SPREMAN

TS

Sl. 4.38 Polazni blok dijagram.


MAINA ZA DELJENJE x y

STAZA PODATAKA

ALU
1 r1gey muxctrl aluctrl TS UPRAVLJACKA JEDINICA (opis ponaanja dat u obliku razradjenog ASM dijagrama) ldr1 ldr3 incr2 clrr2 12

<

r1

komp.

x/y

r2

r3
SPREMAN

Sl. 4.39 Razraeni blok dijagram.


MAINA ZA DELJENJE x

y
KONTROLER STAZA PODATAKA

sst

Registar tst tekuceg stanja

ALU
1

<

r1

komp.

r1gey

muxctrl

TS

Logika sledeceg stanja

aluctrl ldr1 ldr3 incr2 clrr2 x/y

12

r2

r3
SPREMAN

Sl. 4.40 Strukturalni blok dijagram.

Prvi dijagram (Sl. 4.38), koji ilustruje fazu opisa ponaanja, prikazuje mainu za deljenje u vidu jedinstvene crne kutije. Ponaanje maine se opisuje ASM dijagramom (vidi odeljak 4.6.7). Jedini element strukture u ovoj fazi projektovanja jeste struktura portova koji omoguavaju maini da komunicira sa spoljnim svetom.

175

Arhitektura mikrosistema

Drugi dijagram (Sl. 4.39) prikazuje stanje projekta nakon faze razrade. U strukturi maine za deljenje sada se izdvajaju dva glavna dela: upravljaka jedinica i staza podataka. U fazi razrade, struktura upravljake jedinice ostaje misterija (crna kutija) koja je opisana jedino u vidu razraenog ASM dijagrama iz odeljka 4.7.1. Ovaj ASM ne sadri naredbe registarskog prenosa i bavi se jedino statusnim i upravljakim signalima. Nasuprot tome, struktura staze podataka je vidljiva. Meutim, neke komponente staze podataka, kao to je ALU, ostaju i dalje crne kutije. Trei dijagram (Sl. 4.40) prikazuje istu strukturu. Upravljaka jedinica je razloena na logiku sledeeg stanja (sa pridruenom tabelom prelaza) i registar tekueg stanja. Staza podataka je ostala ista kao u fazi razrade. Iako se radi o istoj strukturi, unutranja struktura preostalih crnih kutija ostaje sakrivena (logika sledeeg stanja, multiplekser, ALU, komparator, registri). Meitim, kako se radi o komponentama standardne funkcionalnosti (ALU, komparator, multiplekser, registri) ili o blokovima ija se interna struktura moe automatski sintetizovati (logika sledeeg stanja), posao projektanta je zavren. 4.10 Napredne ASM tehnike

Tehnika projektovanja zasnovana na ASM dijagramima, iako primenljiva na mnoge probleme, u nekim sluajevima moe rezultovati u hardverskom reenju koje ne zadovoljava zahteve u pogledu brzine (broj taktnih ciklusa) iili cene (broj gejtova). Treba naglasiti da bez obzira na znaaj kriterijuma kao to su cena i brzina rada, glavna odgovornost projektanta jeste realizacija ispravnog reenja. Meutim, bez obzira to brzina rada ne bi trebalo da bude primarni cilj, kod mnogih problema korektnost reenja zavisi i od toga da li je algoritam moe da se izvri u tano odreenim vremenskim granicama, to je, na primer, sluaj kod sistema za rad u realnom vremenu. Potraga za brim reenjem uvek bi trebalo zapoeti u apstraktnom svetu algoritama, a ne u prenaseljenom svetu gejtova. Najbolji nain da se rad neke maine ubrza, nisu trikovi sa gejtovima, ve je najbolji nain traenje efikasnijeg algoritma za dati problem. Prvi deo ovog poglavlja, koji opisuje razliite varijante maine za deljenje, pri emu je konana varijanta tri puta bra od polaznog, jasno ukazuje na ovu poentu. Meutim, jedan problem sa izvesnim brim algoritmima je u tome to se oni ne mogu opisati notacijom koja je prethodno uvedena. U ovom odeljku razmatraju se neka proirenja ASM dijagrama koja mogu pomoi u traenju efikasnijih algoritama. 4.10.1 Murove i Milijeve maine Podsetimo se da se ASM dijagram sastoji od rombova, pravougaonika i zaobljenih pravougaonika, povezanih strelicama. U prethodnim odeljcima, zaobljeni pravougaonici nisu korieni. ASM dijagram koji ne sadri zaobljene pravougaonike predstavlja mainu (tj. konani automat) Murovog tipa. Sve ASM razmatrane do sada su Murovog tipa. ASM dijagrami koji pored rombova i pravougaonika sadre i zaobljene pravougaonike predstavljaju maine Milijevog tipa. ASM dijagrami Milijevog tipa omoguavaju opis algoritama koji su bri (a u nekim sluajevima i nie cene) od odgovarajuih Murovih ASM dijagrama. Komande koje se javljaju u pravougaonicima (kako naredbe registarskog prenosa tako i signali), nazivaju se bezuslovnim komandama, s obzirom da se izvravaju uvek kada se ASM nae u stanju koje odgovara konkretnom pravougaoniku. Zaobljeni paravougaonici se koriste da bi se predstavile uslovne komande, koje se ponekad (ali ne i uvek) izvravaju kada je ASM u odreenom stanju. Zaobljeni pravougaonici nisu sami po sebi stanja, ve se mogu smatrati decom nekog roditeljskog stanja. S obzirom da zaobljeni pravougaonici predstavljaju uslovne komande, oni se uvek nalaze ispod jednog ili vie rombova. Kada se u ASM dijagramu Milijevog tipa prate strelice, onda se uvek proe kroz jedan ili vie rombova dok se ne stigne do zaobljenog pravougaonika. Strelica koja izvire iz zaobljenog pravougaonika, utie ili u romb ili u pravougaonik. Sve komande i realcije navedene u pravougaoniku i svim zaobljenim pravougaonicima i rombovima koji su meusobno povezani (bez pravougaoinka izmeu njih) obavljaju se u istom taktnom ciklusu. U sutini, kombinacija rombova i zaobljenih pravougaonika omoguava projektantu da realizuje ugnedenu if then else konstrukciju koja se izvrava u jednom taktnom ciklusu. U takvoj ASM, veliki broj uslova se moe ispitivati u paraleli, to moe bitno ubrzati rad algoritma. 4.10.2 Primer Milijeve maine Na Sl. 4.41 prikazan je ASM dijagram iz odeljka 4.3.1 proiren sa dva uslovna upravljaka signala: OSTANI i NAPUSTI. Signal OSTANI ima vrednost 1 za sve vreme dok je maina, zbog BROJA 0, ostaje u stanju UTO. Signal NAPUSTI ima vrednost 1 u toku poslednjeg taktnog perioda u kome je maina u stanju UTO. Signali OSTANI i NAPUSTI se nikada ne postavljaju u isto vreme.

176

ASM Dijagrami

Sl. 4.41 ASM Milijevog tipa.

U sledeoj tabeli prikazano je ponaanje ASM dijagrama sa Sl. 4.41, pod pretpostavkom da je trajanje taktnog perioda 0.5s:
Vreme 0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5 6.0 Tekue stanje ZELENO UTO CRVENO ZELENO UTO UTO UTO UTO UTO UTO CRVENO ZELENO UTO STOP=0 STOP=1 STOP=1 STOP=0 STOP=1 STOP=1 STOP=1 STOP=1 STOP=1 STOP=1 STOP=1 STOP=0 STOP=1 BRZINA=11 BRZINA=01 BRZINA=00 BRZINA=11 BRZINA=01 BRZINA=01 BRZINA=01 BRZINA=01 BRZINA=01 BRZINA=01 BRZINA=00 BRZINA=11 BRZINA=01 Signali i promenljive BROJA=000 BROJA=000 BROJA=001 BROJA=011 BROJA=011 BROJA=100 BROJA=101 BROJA=110 BROJA=111 BROJA=000 BROJA=001 BROJA=011 BROJA=011 OSTANI = 0 OSTANI = 0 OSTANI = 0 OSTANI = 0 OSTANI = 1 OSTANI = 1 OSTANI = 1 OSTANI = 1 OSTANI = 1 OSTANI = 0 OSTANI = 0 OSTANI = 0 OSTANI = 1 NAPUSTI = 0 NAPUSTI = 1 NAPUSTI = 0 NAPUSTI = 0 NAPUSTI = 0 NAPUSTI = 0 NAPUSTI = 0 NAPUSTI = 0 NAPUSTI = 0 NAPUSTI = 1 NAPUSTI = 0 NAPUSTI = 0 NAPUSTI = 0

Izmeu 0.5 s i 1.0 s, maina je u stanju UTO, ali, zbog toga to je BROJA = 0, maina nastavlja putanjom koja vodi u stanje CRVENO. Na ovom putanji nalazi se zaobljeni pravougaonik koji postavlja signal NAPUSTI. Ovaj uslovni signal je postavljen u toku celog taktnog ciklusa, ba kao i bezuslovni signal STOP. Signal OSTANI, koji se nalazi na drugoj putanji, ostaje nepostavljen u toku ovog taktnog ciklusa. Izmeu 2.0 s i 2.5 s, maina je ponovo u stanju UTO, ali kako je sada BROJA razliit od nule, maina nastavlja putanjom koja je vraa u isto stanje. Ova putanja prolazi kroz zaobljeni pravougaonik koji postavlja signal OSTANI. Signal NAPUSTI se ne postavlja u ovom taktnom ciklusu. S obzirom da je BROJA trobitna promenljiva, BROJA ponovo postaje nula u vremenu 4.5-5.0s. To je zadnji taktni ciklus u kome je maina u stanju UTO. Znai, u toku ovog taktnog ciklusa, signal NAPUSTI je postavljen, a signal OSTANI nije. 4.10.3 Primer razraene Milijeve maine Staza podataka koja realizuje primer iz prethodnog odeljka sastoji se od brojakog registra u sprezi sa sabiraem. Na jednom ulazu sabiraa postavljena je konstanta 2. Takoe, postoji i komparator, koji poredi vrednost BROJA sa nulom. Struktura staze podataka i odgovarajui, razraeni ASM prikazani su na Sl. 4.42:

177

Arhitektura mikrosistema

ZELENO BRZINA=3

UTO LD INC

STOP BRZINA=1 INC

3 3 BROJAC 2 3

BROJACQ0 0 3

Komp.

BROJACQ0

OSTANI

NAPUSTI

CRVENO

STOP LD

Sl. 4.42 Razraena Milijeva maina.

4.10.4 Primer strukturne Milijeve maine Uopteni dijagram strukture upravljake jedinice dat u odeljku 4.8.1, primenljiv je na bilo koju mainu, bez obzira da li je ona Murovog ili Milijevog tipa. Meutim, kombinaciona logika sledeeg stanja kod maine Milijevog tipa donekle se razlikuje u odnosu na onu kod maine Murovog tipa. Kao to je poznato, kod Murove maine sledee stanje je u funkciji tekueg stanja i ulaza, dok su upravljaki izlazi u funkciji iskljuivo tekueg stanja (tst). Drugim reima, kod Murove maine, u vrstama tabele prelaza sa istom vrednou tst, vrednosti upravljakih signala su identine. Milijeva maina je generalnija, u odnosu na Murovu mainu. Upravljaki signali, kao i sledee stanje, su u funkciji kako tekueg stanja, tako i ulaza maine. Razmotrimo tabelu prelaza maine opisanu razraenim ASM dijagramom i stazom podataka iz odeljka 4.10.3:
Ulaz tst 00 01 01 10 BROJAQ0 0 1 sst 01 10 01 00 STOP 0 1 1 1 BRZINA 11 01 01 00 Izlaz NAPUSTI 0 1 0 0 OSTANI 0 0 1 0 INC 0 1 1 0 LD 0 0 0 1

Signali BRZINA, STOP, INC i LD su bezuslovni signali i zavise samo od tst. Uslovni signali NAPUSTI i OSTANI zavise od tst i BROJAQ0. Upravo ova zavisnost vrednosti signala od statusa, ini ovu mainu Milijevom. 4.10.5 Milijeva verzija maine za deljenje U odeljcima 4.1 do 4-10 date su brojne varijante maine za deljenje Murovog tipa. U ovom odeljku bie pokazano kako se maina za deljenje moe dalje usavriti uvoenjem zaobljenih pravougaonika u ASM dijagram. 4.10.5.1 Eliminacija stanja INIT (po drugi put)

U odeljku 4.6.3 opisana je jedna korekna varijanta maine za deljenje sa etiri stanja koja u stazi podataka sadri samo dva registra (r1 i r2). Odeljak 4.6.4 opisuje jedan neuspean pokuaj eliminacije stanja INIT iz ove ASM. U odeljku 4.6.5 uveden je registar r3 kako bi se ispravila greka u korisnikom interfejsu koja je postojala u ASM iz odeljka 4.6.4. Problem koji postoji u ASM iz odeljaka 4.6.4 posledica je injenice da se u stanju PASIVNO upis u r2 inicira bezuslovnom komandom. Korienjem Milijeve maine, mogue je eliminisati stanje INIT, a da se pri tome ne narui sadraj registra r2 za vreme dok maina u stanju PASIVNO eka da taster (TS) bude pritisnut. Drugim reima, u r2 se upisuje nula u trenutku kada maina prelazi iz stanja PASIVNO u stanje IZRAUNAVANJE_1 (Sl. 4.43):

178

ASM Dijagrami

PASIVNO

r1 <- x SPREMAN

0 TS

r2 <- 0

r1 >= y 0

IZRACUNAVANJE_1 r1 <- r1 - y IZRACUNAVANJE_2 r2 <- r2 + 1

Sl. 4.43 Milijeva maina za deljenje sa dva stanja u petlji.

U narednoj tabeli ilustrovan je rad maine za sluaj x=14 i y=7:


Tekue stanje PASIVNO PASIVNO PASIVNO IZRAUNAVANJE_1 IZRAUNAVANJE_2 IZRAUNAVANJE_1 IZRAUNAVANJE_2 PASIVNO PASIVNO r1= ? r1= ? r1= 14 r1= 14 r1= 7 r1= 7 r1= 0 r1= 0 r1= ? r2= ? r2= ? r2= ? r2= 0 r2= 0 r2= 1 r2= 1 r2= 2 r2= 2 TS=0 TS=0 TS=1 TS=0 TS=0 TS=0 TS=0 TS=0 TS=0 SPREMAN=1 SPREMAN=1 SPREMAN=1 SPREMAN=0 SPREMAN=0 SPREMAN=0 SPREMAN=0 SPREMAN=1 SPREMAN=1

Vrsta u gornjoj tabeli napisana masnim slovima, ukazuje na situaciju kada se ispoljava dejstvo komande uslovnog upisa nule u registar r2. Naravno, efekat ove komande je vidljiv u trenutku delovanja naredne restue ivice taktnog signala, odnosno u trenutku kada maina iz stanja PASIVNO prelazi u stanje IZRAUNAVANJE_1. ASM sa Sl. 4.43 izraunava kolinik za 2+2*kolinik taktnih ciklusa., to je za jedan taktni ciklus bre u odnosu na korektni ASM iz odeljka 4.6.3. 4.10.5.2 Spajanje stanja IZRAUNAVANJE_1 i IZRAUNAVANJE_2

ASM iz prethodnog odeljka zahteva dvostruko due vreme izraunavanja u odnosu na najbre reenje koje ne koristi zaobljene pravougaonike. Da bi smo postigli isti nivo preformansi i sa Milijevom varijantom maine za deljenje, neophodno je paralelizovati operacije koje se izvravaju unutar petlje. Razmotrimo sledeu neispravnu ASM:

PASIVNO

r1 <- x SPREMAN

0 TS

r2 <- 0

r1 >= y 0

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

Sl. 4.44 Neispravna maina za deljenje Milijevog tipa.

179

Arhitektura mikrosistema

Naredna tabela ilustruje kako u ASM sa Sl. 4.44 dolazi do greke u izraunavanju, za x=14 i y=7:
Tekue stanje PASIVNO PASIVNO PASIVNO IZRAUNAVANJE_12 IZRAUNAVANJE_12 IZRAUNAVANJE_12 PASIVNO PASIVNO

r1= ? r1= ? r1= 14 r1= 14 r1= 7 r1= 0 r1= 4089 r1= ?

r2= ? r2= ? r2= ? r2= 0 r2= 1 r2= 2 r2= 3 r2= 3

TS=0 TS=0 TS=1 TS=0 TS=0 TS=0 TS=0 TS=0

SPREMAN=1 SPREMAN=1 SPREMAN=1 SPREMAN=0 SPREMAN=0 SPREMAN=0 SPREMAN=1 SPREMAN=1

U trenutku kada se, nakon obavljenog izraunavanja, maina vraa u stanje PASIVNO registar r2 je inkrementiran jedanput vie nego to bi to bio sluaj pri ispravnom radu maine. U odeljku 4.6.5, ovaj problem bio je reen uvoenjem registra r3 koji je sluio za uvanje ispravnog kolinika. Meutim, bolje reenje bilo bi ono kod koga bi se izbeglo korienje dodatnog registra. 4.10.5.3 Uslovni upis u registar r2

Da bi ispravili greku koja se javlja u ASM iz prethodnog odeljka, neophodno je u stanju IZARUNAVANJE vriti upis u r2 samo ako maina ostaje u petlji, a zadrati zateenu vrednost ako maina naputa petlju da bi se vratila u stanje PASIVNO. Ovakav rad maine zahteva uvoenje zaobljenog pravougaonika u ASM dijagram:
PASIVNO

r1 <- x SPREMAN

0 TS

r2 <- 0

r1 >= y 0

IZRACUNAVANJE r1 <- r1 - y

r1 >= y 0

r2 <- r 2 + 1

Sl. 4.45 Milijeva maina za deljenje sa uslovnim upisom.

Naredna tabela ilustruje rad ASM sa Sl. 4.45 za x=14 i y=7:


Tekue stanje PASIVNO PASIVNO PASIVNO IZRAUNAVANJE IZRAUNAVANJE IZRAUNAVANJE PASIVNO PASIVNO r1= ? r1= 13 r1= 14 r1= 14 r1= 7 r1= 0 r1= 4089 r1= ? r2= ? r2= ? r2= ? r2= 0 r2= 1 r2= 2 r2= 2 r2= 2 TS=0 TS=0 TS=1 TS=0 TS=0 TS=0 TS=0 TS=0 SPREMAN=1 SPREMAN=1 SPREMAN=1 SPREMAN=0 SPREMAN=0 SPREMAN=0 SPREMAN=1 SPREMAN=1

ASM sa Sl. 4.45 izraunava korektan kolinik za 3+kolinik taktnih ciklusa i to korienjem samo dva umesto tri registra. Znai, ASM sa Sl. 4.45 je jednako brza kao i najbra Murova maina i pri tome koristi manji broj registara.

180

ASM Dijagrami

4.10.5.4

Ranije postavljanje signala SPREMAN

Razlog zbog koga Milijeva maina iz odeljka 4.10.5.3 nije bra od Murove maine iz odeljka 4.6.7 jeste pretpostavka da je korisnik u obavezi da eka barem dva taktna ciklusa nakon to maina postavi signal SPREMAN. Kod Murovih maina situacija SPREMAN =1 je isto to i biti u stanju PASIVNO. Meutim, kod Milijevih maina postoji mogunost da se signal SPREMAN postavi jedan taktni ciklus ranije. Postoje dva razloga koji opravdavaju ranije postavljanje signala SPREMAN. Prvo, u toku poslednjeg taktnog ciklusa u kome je maina u stanju IZRAUNAVANJE (ASM iz odeljka 4.10.5.3), registar r2 ve sadri ispravan kolinik, te se zbog toga ne inicira operacija inkrementiranja registra r2 (grana 0 uslovnog koraka r1y iz romba koji sledi odmah nakon pravougaonika IZRAUNAVANJE). Drugo, korisnik nije svestan tekueg stanja maine, ve se on oslanja na signal SPREMAN koji ukazuje na trenutak kada taster TS moe ponovo biti pritisnut. ASM sa Sl. 4.46 postavlja signal SPREMAN u stanju PASIVNO, ali i u poslednjem taktnom ciklusu stanja IZRAUNAVANJE. Kada je maina u stanju IZRAUNAVANJE, test r1y sa dna petlje se obavlja u isto vreme kada i test r1y sa vrha petlje. Kada maina treba da ostane u petlji, r2 se inkrementira. Kada maina treba da napusti petlju, postavlja se signal SPREMAN.
PASIVNO

r1 <- x SPREMAN

0 TS

r2 <- 0

r1 >= y 0

IZRACUNAVANJE r1 <- r1 - y

r1 >= y

r2 <- r2 + 1

SPREMAN

Sl. 4.46 Milijeva maina za deljenje sa uslovnim postavljanjem signala SPREMAN.

Uslovno postavljanje signala SPREMAN nakon izlaska iz petlje (grana 0 romba sa vrha petlje) ne bi bila legalna operacija, jer postavljanje signala SPREMAN ve postoji u okviru stanja PASIVNO, kome, takoe, pripada i dotini romb. Postavljanje signala SPREMAN, na nain kako je to pokazano na Sl. 4.46, predstavlja legalnu operaciju, jer se ona deava samo u stanju IZRAUNAVANJE, tj. romb sa dna petlje pripada samo stanju IZRAUNAVANJE, a ne i stanju PASIVNO. Naredna tabela ilustruje rad ASM sa Sl. 4.46 za x=14 i y=7:
Tekue stanje PASIVNO PASIVNO IZRAUNAVANJE IZRAUNAVANJE IZRAUNAVANJE PASIVNO r1= ? r1= 14 r1= 14 r1= 7 r1= 0 r1= 4089 r2= ? r2= ? r2= 0 r2= 1 r2= 2 r2= 2 TS=0 TS=1 TS=0 TS=0 TS=0 TS=0 SPREMAN=1 SPREMAN=1 SPREMAN=0 SPREMAN=0 SPREMAN=1 SPREMAN=1

U poslednjem taktnom ciklusu stanja IZRAUNAVANJE, r2 ve sadri korektan kolinik i signal SPREMAN je postavljen. Umesto da eka jo jedan taktni ciklus, korisnik moe od ovog momenta otpoeti sa odbrojavanjem ciklusa. ASM sa Sl. 4.46 izraunava korektan kolinik za 2+kolinik taktnih ciklusa korienjem samo dva registra. Znai, ova Milijeva maina za deljenje je jeftinija i bra od bilo koje Murove maine.

181

Arhitektura mikrosistema

4.11 Realizacija kontrolera one-hot metodom Manuelni proces transformacije ASM dijagrama u hardversku strukturu, obino, predstavlja dugotrajan i zahtevan posao. Zavrni korak u procesu sinteze upravljake jedinice, koji ukljuuje definisanje logike sledeeg stanja, je naporan, s obzirom da formiranje tabele prelaza zahteva da se za svaku moguu situaciju odredi novo stanje upravljake jedinice. Meutim, postoji jedana alternativna metoda sinteze upravljake jedinice koja ne zahteva definisanje logike sledeeg stanja. Metod, poznat kao one-hot metod, daje neto sloeniji hardver, ali je zato postupak sinteze razumljiviji i laki. Upravljaka jedinica tipa one-hot koristi tano onoliko flip-flopova koliko ima stanja u odgovarajuem ASM dijagramu. 4.11.1 Konverzija Murove ASM u one-hot kontroler

Kao to je to izloeno ranije u ovom poglavlju, Murova ASM sadri tri grafika simbola: pravougaonici (opisuju stanja), romovi (opisuju odluivanja) i strelice (ukazuju na tok izvrenja). Kod one-hot metode, svaki od ovih simbola se direktno preslikava u odgovarajui hardverski element: Pravougaonik - flip flop Svaki pravougaonik iz ASM dijagrama preslikava se u flip-flop. Ova tehnika je poznata pod imenom one-hot zbog pretpostavke da je u svakom taktnom ciklusu samo jedan od flip-flopova u stanju 1 (hot vru), dok su preostali flip-flopovi u stanju 0 (cold hladan). Ako je one-hot uslov ispunjen nakon startovanja upravljake jedinice (ukljuenja napajanja), tada e, zahvaljujui hardverskim vezama u upravljakoj jedinici tipa one-hot, uslov biti ispunjen za sve vreme rada jedinice. Strelica veza (ica) Svaka strelica iz ASM dijagrama se preslikava u fiziku vezu. Slino flip-flopovima i veze mogu biti vrue ili hladne, ali za razliku od flip-flopova, od kojih je samo jedan vru, broj vruih veza u toku jednog taktnog perioda moe biti vei od jedan. Spoj OR kolo Spoj je taka u ASM dijagramu u kojoj se spajaju dve ili vie strelica. Do spajanja strelica dolazi zato to u razliitim taktnim ciklusima postoje razliiti putevi kojima se dolazi do istog sledeeg stanja. Spoju iz ASM dijagrama, u upravljakoj jedinici tipa one-hot odgovara OR kolo koje spaja odgovarajue veze. Odluivanje demultiplekser Svako grananje, tj. odluivanje predstavljeno rombom u ASM dijagramu preslikava se u demultiplekser tipa 1-u-2. Uslov iz romba definie selekcioni ulaz demultipleksera; ulaz u romb je ulaz podataka, a dva izlaza iz romba odgovaraju izlazima podataka demultipleksera. Na Sl. 4.47 prikazan su simboli Murove ASM i odgovarajui hardverski elementi koji se koriste za sintezu one-hot upravljake jedinice:

Sl. 4.47 Simboli Murovog ASM dijagrama i odgovarajui hardverski elementi upravljake jedinice tipa one-hot.

One-hot metod zahteva upotrebu veeg broja flip-flopova u odnosu na standardni metod sinteze upravljake jedinice. Kod standardnog metoda sinteze, broj flip-flopova koji ine registar tekueg stanja iznosi priblino 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, sloenost projektovanja na bazi standardne tehnike brzo raste sa poveanjem broja stanja ASM i ulaza u upravljaku jedinicu. Na primer, tabela prelaza koja definie upravljaku jedinicu sa 32 stanja i 8 ulaza ima 256 vrsta. Nasuprot tome, sloenost projektovanja na bazi one-hot metode raste priblino linearno sa poveanjem 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 upravljake jedinice. 4.11.1.1 Prvi primer

Razmotrimo ASM dijagram iz odeljka 4.6.2 (Sl. 4.12) i odgovarajui razraeni ASM dijagram iz odeljka 4.7.3 (Sl. 4.31). Na Sl. 4.48 prikazan je dijagram upravljake jedinice koja je projektovana primenom one-hot metode na ASM iz odeljka 4.6.2. Razmatrani ASM dijagram sadri pet stanja; iz tog razloga, upravljaka jedinica sadri pet flip-flopova. Radi lakeg razumevanja, veze koje su povezane sa Q izlazima flip-flopova oznaene su imenima odgovarajuih stanja. Kasnije, ova imena bie zamenjena numerikim vrednostima.
Kolo za detekciju ukljucenja napona napajanja

reset

D R Q PASIVNO

TS 0 1

reset

D R Q INIT

TEST r1gey 0 1

reset

D R Q IZRACUNAVANJE_1 D R Q IZRACUNAVANJE_2

reset

Sl. 4.48 One-hot upravljaka jedinica za ASM iz odeljka 4.6.2 i 4.7.3.

Po izlasku iz stanja PASIVNO, obavlja se grananje u odnosu na vrednost signala TS. Za TS=0, postoji putanja koja vraa upravljaku jedinicu ponovo u stanje PASIVNO. Za TS=1, postoji putanja koja vodi u stanje INIT. Kod one-hot upravljake jedinice sa Sl. 4.48, ovom grananju odgovara demultiplekser iji ulaz je Q izlaz flip-flopa PASIVNO. Izlaz demultipleksera out0 je povezan sa OR kolo koje formira ulaz flip-flopa PASIVNO. Izlaz out1 demultipleksera povezan je sa D ulazom flip-flopa INIT. Drugim reima, ASM dijagram i one-hot upravljaka jedinica imaju identinu strukturu (topologiju). U ASM dijagramu sa Sl. 4.31 postoje dve putanje koje vode u stanje TEST. Jedna polazi iz stanja INIT, a druga iz stanja IZRAUNAVANJE_2. Neposredno pre ulaska u stanje TEST, ove dve putanje se spajaju. Kod

183

Arhitektura mikrosistema

one-hot upravljake jedinice, za spajanje veza koristi se OR kolo. U stanju TEST, testira se signal r1rey (koji govori da li je r1y). Ako je rezultat testiranja TRUE (tj., r1gey=1), ASM prelazi u stanje IZRAUNAVANJE_1; inae, ASM prelazi u stanje PASIVNO. Kod one-hot upravljake 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 IZRAUNAVANJE_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) vai neposredno po ukljuenju napajanja, na ulaze za asinhrono resetovanje svih flip-flopova doveden je signal reset. Kod projektovanja fizikog hardvera, signal reset se realizuje kao impuls (1) koji se javlja neposredno po ukljuenju napajanja i traje neko krae vreme, dovoljno da se obavi resetovanje flip-flopova. Nakon povratka na vrednost 0, signal reset zadrava ovu neaktivnu vrednost za sve vreme dok je hardver operativan,. Samo po sebi, resetovanje flip-flopova nije dovoljno da postavi upravljaku jedinicu u korektno poetno stanje. Potrebno je da nakon delovanja prve rastue ivice taktnog signala, tano jedan flip-flop (u konkretnom sluaju, flip-flop za stanje PASIVNO) postane vru (tj. setovan). Kako bi se zahtevani poetni uslov ostvario, neophodno je jo jedno OR kolo i veza na putu koji vodi u flip-flop za stanja PASIVNO. Ova dodatna veza bie izlaz kola za detekciju ukljuenja napajanja, koje e biti vrue od trenutka ukljuenja napajanja pa do trenutka dejstva prve rastue ivice taktnog signala. Nakon prve rastue ivice taktnog signala, ovo kolo prelazi i nadalje stalno ostaje hladno. Kolo za detekciju ukljuenja napona napajanja se sastoji od D flip-flopa sa 1-com na D ulazu. Izlaz Q flipflopa se komplementira kako bi se formirao signal koji puni prvi flip-flop kontrolera inicijalom jedinicom (Sl. 4.49).
"1"

reset

D R Q

Kolo za detekciju ukljucenja napona napajanja

Sl. 4.49 Kolo za detekciju ukljuenja napona napajanja.

Na Sl. 4.50 prikazan je dijagram one-hot upravljake jedinice za ASM iz odeljka 4.6.7 (Sl. 4.22) i 4.7.1 (Sl. 4.27). Osim to odreuje korektan redosled stanja, zadatak upravljake jedinice je i da generie signale neophodne za upravljanje stazom podataka. S obzirom da se radi o Murovoj maini, svaki upravljaki signal ili uzima konstantnu vrednost (0 ili 1) ili se formira kao OR funkcija odreenog podskupa signala koji se javljaju na izlazima flip-flopova. U optem sluaju, ako se neki upravljaki signal CS postavlja u stanjima STANJE_1, STANJE_2,..., STANJE_n (tj. javlja se u pravougaonicima ASM dijagrama koji odgovaraju ovim stanjima), tada se on formira kao CS = STANJE_1 .OR. STANJE_2 .OR. ... .OR. STANJE_n. Na primer, upravljaki signal ldr1 se postavlja u oba stanja, PASIVNO i IZRAUNAVANJE, ASM dijagrama iz odeljka 4.7.1. S obzirom da upravljaka jedinica uvek mora biti u jednom od svojih stanja, OR funkcija primenjena na signale PASIVNO i IZRAUNAVANJE sa izlaza flip-flopova one-hot kontrolera daje konstantnu vrednost 1. Komandni signal clr2 se postavlja samo u stanju PASIVNO; zbog toga, on je identian signalu sa izlaza flipflopa koji odgovara stanju PASIVNO.

184

ASM Dijagrami

Kolo za detekciju ukljucenja napona napajanja

"1"

ldr1 aluctrl[3] aluctrl[2] incr2 ldr3 muxctrl aluctrl[4] aluctrl[0] clrr2 aluctrl[5] aluctrl[1] SPREMAN

"0" IZRACUNAVANJE

reset

D R Q

PASIVNO PASIVNO

TS 0 1

r1gey TS 0 1

reset

D R Q IZRACUNAVANJE

Sl. 4.50 One-hot upravljaka jedinica za ASM iz odeljeka 4.6.7 i 4.7.1.

4.11.2 Konverzija Milijeve ASM u one-hot upravljaku jedinicu Milijeve ASM, za razliku od Murovih, sadri uslovne komande. Izvrenje uslovnih komandi, prikazanih u vidu zaobljenih pravougaonika u ASM dijagramu, nije zagarantovano samim tim to je maina u nekom odreenom stanju. Da bi se uslovna (Milijeva) komanda izvrila, neophodno je da neki specifian uslov bude zadovoljen (taan). Kod one-hot upravljake jedinice, ovom uslovu odgovara izlazna veza iz tano odreenog demultipleksera. 4.11.2.1 Prvi primer Razmotrimo realizaciju Milijeve maine za deljenje sa ranijim postavljanjem signala SPREMAN, ije ponaanje je opisano ASM dijagram sa Sl. 4.46 iz odeljka 4.10.5.4. Na Sl. 4.51 prikazana je razraena arhitekturalna blok ema sistema koji moe da realizuje mainu za deljenje iz odeljka 4.10.5.4. Ponaanje upravljake jedinice opisano je razraenim ASM dijagramom sa Sl. 4.52. U razraenom ASM, naredbe registarskog prenosa i relacioni izrazi iz polaznog ASM dijagrama, zamenjeni su upravljakim signalima koji u stazi podataka iniciraju aktivnosti kojima se ove naredbe i testiranja ostvaruju. Realizacija upravljake jedinice one-hot metodom prikazana je na Sl. 4.53.

Sl. 4.51 Arhitekturalna blok ema koja moe da implementira ASM sa Sl. 4.46. Napomena: r1 prihvatni registar sa dozvolom; r2 brojaki registar; cmp komparator.

185

Arhitektura mikrosistema

PASIVNO

ldr1 aluctrl = 'PROPUSTANJE muxctrl = 0 SPREMAN

0 TS

clrr2

r1gey 0

1 IZRACUNAVANJE ldr1 aluctrl = 'ODUZIMANJE muxctrl = 1

r1gey

incr2

SPREMAN

Sl. 4.52 Razraeni ASM koji opisuje ponaanje upravljake jedinice sa Sl. 4.51.
Kolo za detekciju ukljucenja napona napajanja "1" ldr1 aluctrl[3] aluctrl[2] muxctrl aluctrl[4] aluctrl[0] PASIVNO reset D R Q PASIVNO CMD2 CMD3 TS 0 1 CMD1 CMD1 aluctrl[5] aluctrl[1] SPREMAN incr2 clrr2

"0" IZRACUNAVANJE

r1gey 0 1

reset

D R Q IZRACUNAVANJE

r1gey 0 1 CMD2 CMD3

Sl. 4.53 One-hot upravljaka jedinica za ASM iz odeljka 4.10.5.4.

Postupak formiranja strukture one-hot upravljake jedinice Milijevog tipa prati pravila uvedena u odeljku 4.11.1. Topologija strukture upravljake jedinice identina je topologiji razraenog ASM dijagrama. Za razliku od pravougaonika, rombova i strelica, kojima u one-hot kontroleru odgovaraju hardverski elementi (D flipflopovi, demultiplekseri, OR kola i veze), uslovne komande (zaobljeni provougaonici) iz Milijevog ASM dijagrama se ne preslikavaju u hardverske elemente, ve se jednostavno, izostavljaju, a veze u koje bi inae bili

186

ASM Dijagrami

umetnuti oznaavaju jedinstvenim imenima. Svaka od ovih oznaka (CMD1, CMD2 i CMD3, u konkretnom primeru) predstavlja signal koji kada je vru (1) znai da su ispunjeni uslovi za aktiviranje odgovarajueg Milijevog upravljakog signala. Tako, signal CMD1, kada je vru znai da treba aktivirati upravljaki signal clrr2; signal CMD2 aktivira komandu SPREMAN, a CMD3 komandu incr2. Milijevi signali CMD1, CMD2 i CMD3, i signali stanja PASIVNO i IZRAUNAVANJE, zajedno i ravnopravno uestvuju u formiranju izlaznih, upravljakih signala. Tako, na primer, upravljaki signal SPREMAN je postavljen u stanju PASIVNO ili kada je ispunjen uslov r1gey u stanju IZRAUNAVANJE. To znai da se ovaj signal formira kao OR funkcija signala IZRAUNAVANJE i CMD2.

187

Arhitektura mikrosistema

188

Sinteza staze podataka

U prethodnom poglavlju detaljno je razmatrano projektovanje digitalnog hardvera do RT (registarskog) nivoa uz pomo ASM dijagrama. Pokazano je kako se ASM dijagrami koriste za opis ponaanja i kako se, pretei filozofiju projektovanja odozgo-nanie, polazni opis ponaanja postepeno transformie u hardversku strukturu. Ukazano je da u svakoj fazi projektovanja obino postoji vei broj alternativnih reenja koja se razlikuju u pogledu cene i brzine rada. U ovom poglavlju bie opisano vie tehnika za optimizaciju reenja dobijenih na osnovu ASM dijagrama. S obzirom da se RT implementacija sastoji od upravljake jedinice i staze podataka, optimizaciji moemo pristupiti tako to emo nezavisno optimizovati ova dva dela. Tehnike za optimizaciju upravljake jedinice ukljuuju minimizovanje broja stanja, kroz eliminaciju ekvivalentnih stanja, i minimizaciju logike sledeeg stanja, kroz pravilno kodiranje stanja. Za minimizovanje staze podataka, postoje tri opte tehnike zasnovane na trima glavnim tipovima komponenti koje se koriste za realizaciju staza podataka: memorijske komponente, funkcionalne jedinice (ALU, komparator, i td.) i magistrale. Na nivou opisa ponaanja, staza podataka je implicitno definisana naredbama registarskog prenosa koje se izvravaju u odreenim stanjima maine. Tanije, u svakom stanju maine, pojedinim promenljivama se dodeljuju nove vrednosti kao rezultat aritmetikih, logikih ili operacija pomeranja koje se izvravaju u funkcionalnim jedinicama. Da bi se naredba registarskog prenosa izvrila, podaci nad kojim se obavlja operacija, najpre moraju biti uzeti iz registara koji uvaju vrednosti promenljivih sa desne strane naredbe, zatim treba proslediti ove podatke do funkcionalnih jedinica koje izraunavaju novu vrednost i konano, vratiti rezultat u registar koji uva vrednost promenljive sa leve strane naredbe. Ova procedura se ponavlja prilikom izvrenja svake naredbe registarskog prenosa. Promenljive se uvaju u memorijskim komponentama kao to su registri, registarski fajlovi ili RAM. Meutim, kako, tipino, sve promenljive nisu aktuelne (nisu ive) u isto vreme, ostvarivo je da pojedine promenljive dele isti registar ili istu lokaciju u registarskom fajlu ili RAM-u, a da to ne narui korektnost algoritma. Drugim reima, postoji mogunost da se dve ili vie promenljivih spoje (kombinuju, tj. zamene jednom promenljivom) kako bi se redukovao broj memorijskih komponenti u stazi podataka. ta vie, ak iako su pojedine promenljive aktuelne u isto vreme, ali im se ne pristupa u isto vreme (u okviru istog stanja), one mogu biti smetene u isti registarski fajl ili RAM i da na taj nain dele isti port registarskog fajla ili port RAM-a. Na ovaj nain, objedinjavanjem memorijskih lokacija u registarske fajlove ili RAM, minimizuje se broj pristupnih portova, a time i broj potrebnih magistrala. Optimizacija staze podataka takoe moe biti usredsreena na minimizovanje broja funkcionalnih jedinica. Namena funkcionalnih jedinica u stazi podataka je izvravanje aritmetikih, logikih i operacija pomeranja, koje se javljaju u naredbama registarskog prenosa. Meutim, kako se veina ovih operacija izvrava u razliitim stanjima, one mogu da dele istu funkcionalnu jedinicu. Drugim reima, udruivanjem identinih operacija iz razliitih stanja u grupe tako da se sve operacije iz jedne grupe izvravaju na istoj jedinici, broj potrebnih funkcionalnih jedinica moe biti smanjen. Trea tehnika za optimizaciju fokusirana je na veze u stazi podataka. Kao to je ve reeno, izvrenje naredbe registarskog prenosa ukljuuje prenos podataka iz jedne memorijske komponente do funkcionalne jedinice gde se izraunava novu vrednost koja se, potom, prenosi nazad do druge memorijske komponente. Za prenos podataka izmeu memorijskih komponenti i funkcionalnih jedinica koriste se veze. Meutim, ukupan broj veza (ica) u stazi podataka moe biti smanjen, ako se veze koje se koriste u razliitim stanjima grupiu u magistrale. Navedene tri tehnike za optimizaciju staze podataka bie detaljnije opisane kroz primer projektovanja ASIC (Application Specific Integrated Circuit aplikaciono-specifino integrisano kolo) za izraunavanje kvadratnog korena zbira dva oznaena cela broja. Za izraunavanje se koristi sledea priblina formula:
a 2 + b 2 max((0.875x + 0.5 y ), x )

Arhitektura mikrosistema

gde je x=max(|a|,|b|), i y=min(|a|,|b|). Shodno Sl. 5.1(a), ovo ASIC kolo ima dva ulazna porta Ul1 i Ul2, preko kojih se dovode vrednosti a i b, i jedan izlazni port Izl. Kao to se moe videti u ASM dijagramu sa Sl. 5.1(b), ASIC uzima podatke sa ulaznih portova i zapoinje izraunavanje u trenutku kada ulazni signal Start dobije vrednost 1. U stanju s1, izraunava se apsolutna vrednost operanada a i b. U stanju s2, vea od ovih vrednosti se dodeljuje promenljivoj x, a manja promenljivoj y. U stanju s3, x se pomera za tri, a y za jednu bitsku poziciju u desno kako bi se dobilo 0.125x, odnosno 0.5y. U stanju s4, izraunava se 0.875x, tako to se 0.125x oduzme od x. U stanju s5, vrednosti 0.875x i 0.5y se sabiraju, dok se u stanju s6 odreuje maksimum od x i izraza 0.875x+0.5y. U stanju s7, generie se rezultat, koji postaje dostupan na portu Izl u toku jednog taktnog ciklusa. U isto vreme, setuje se signal Obavljeno, ime se okruenje obavetava da podatak koji se upravo pojavio na portu Izl predstavlja validni rezultat. Da bi se na osnovu ASM dijagrama sa Sl. 5.1(b) odredile potrebe za resursima, neophodno je definisati tabele koje ukazuju na obim korienja promenljivih i operacija (Sl. 5.2). U tabeli koja ukazuje na korienje promenljivih (Sl. 5.2(a)), svakoj promenljivoj iz ASM dijagrama odgovara jedna vrsta, a svakom stanju jedna kolona. Za svaku promenljivu, unosi se znak X u svim kolonama koje odgovaraju stanjima u kojima je ta promenljiva iva. Promenljiva se smatra ivom u vremenu izmeu prve rastue ivice taktnog signala koji joj dodeljuje novu vrednost, pa sve do isteka stanja u kome se ta vrednost koristi poslednji put. Na primer, kao to se vidi sa Sl. 5.1(b), promenljivama a i b su dodeljene vrednosti sa rastuom ivicom taktnog signal koji oznaava poetak stanja s1. Osim u stanju s1, ove dve vrednosti se ne koriste ni u jednom od narednih stanja. Zbog toga su one ive samo u stanju s1. Nasuprot tome, promenljiva x dobija novu vrednost na poetku stanja s3, ali kako se ta vrednost koristi i u stanjima s4 i s6, ova promenljiva je iva u svim stanjima izmeu stanja s3 i s6, tj. u stanjima s3, s4, s5 i s6. Dakle, tabela sa Sl. 5.2(a) nam govori o tome koje promenljive su ive u kojim stanjima.
Sl. 5.1 ASIC za izraunavanje kvadratnog korena zbira dva oznaena cela broja. s1 a b t1 t2 x y t3 t4 t5 t6 t7 Broj ivih promenljivih X X X X X X X X X X X s2 s3 s4 s5 s6 s7 abs min max >> + Broj operacija s1 2 1 1 2 1 2 1 2 1 1 1 1 1 s2 s3 s4 s5 s6 s7 Max. broj jedinica 2 1 1 2 1 1

X X X X 1

(a)

(b)

Sl. 5.2 ema korienja resursa u ASM dijagramu sa Sl. 5.1(b). (a) Iskorienje promenljivih; (b) iskorienje operacija.

190

Sinteza staze podataka

to je jo vanije, tabela korienja 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 zakljuujemo da je za realizaciju SRA kola, u stazu podataka potrebno ugraditi najmanje 3 registara. Imajui to u vidu, potrebno je sve promenljive iz tabele korienja promenljivih (ukupno 11 promenljivih) razvrstati u tri grupe tako da promenljive iz iste grupe nisu ive u isto vreme. Svakoj takvoj grupi se moe pridruiti jedan registar koji e sluiti za memorisanje vrednosti svih promenljivih iz te grupe. Iz ovog primera se moe zakljuiti da se prvi glavni zadatak sinteze staze podataka sastoji u kombinovanju ili grupisanju promenljivih i dodeli tih grupa registrima ili memorijskim lokacijama na nain koji e minimizovati broj potrebnih memorijskih komponenti ili neku drugu projektantsku metriku, kao to su brzina rada, potronja, mogunost testiranja i sl. S obzirom da svaka grupa promenljivih deli isti registar ili memorijsku lokaciju, ovaj zadatak se esto naziva dodela registaramemorije (registermemory sharing).
0 bit znaka b 0 b

Oduzimac bit znaka 1 Mux |b| 0 1

Oduzimac

Mux |b|

(a) Jedinica za odredjivanje apsolutne vrednosti (Verzija 1)


a b

(b) Jedinica za odredjivanje apsolutne vrednosti (Verzija 2)


a b a b

Oduzimac bit znaka 1 0 bit znaka 1

Oduzimac bit znaka 0 1

Oduzimac

Mux min(a,b)

Mux max(a,b)

Min/Max

Mux

min/max(a,b)

(c) Jedinica Min

(d) Jedinica Max

(e) Jedinica Min/Max


a

a ... ... 0 ... a >> 1 0 0 0 ...

a >> 1 ... ... a >> 3 1 >> 3 0

upravljanje pomeranjem

Mux

a>>3/ a >> 1

(f) Pomerac udesno za jedan bit

(g) Pomerac udesno za tri bita


a b a

(h) 1-bitni/3-bitni pomerac udesno


b

b Add/Sub Sabirac 0 Sabirac 1 Sabirac

a+b

a-b

a+b/a-b

(i) Sabirac

(j) Oduzimac

(k) Sabirac/Oduzimac

Sl. 5.3 Jednostavne biblioteke komponente.

Na slian nain mogue je odrediti minimalan broj funkcionalnih jedinica potrebnih da se izvre sve operacije iz ASM dijagrama. Za ovu namenu koristi se prikaz dat na Sl. 5.2(b), kod koga vrste odgovaraju razliitim tipovima operatora koje sreemo u ASM dijagramu, a kolone predstavljaju stanja. Vrednost u preseku vrste i kolone ukazuje na broj operacija tog tipa koji se obavljaju u tom stanju. Na primer, operacija abs se izvrava dva puta u stanju s1, a operacija max jednom u stanju s2 i jednom u stanju s6. S obzirom da se sve operacije u okviru istog stanja izvravaju u paraleli, stanje s1 zahteva dve funkcionalne jedinice za odreivanje apsolutne vrednosti podatka, stanje s2 jednu jedinicu koja moe da obavi operaciju min i jednu jedinicu koja

191

Arhitektura mikrosistema

moe 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) zakljuujemo da su nam za sintezu staze podataka SRA kola potrebne: (a) dve jedinice pomou kojih se odreuje apsolutna vrednost; (b) dve jedinice koje vre pomeranje podataka, i (c) po jedna jedinica za operacije max, min, + i -. Shodno ovim zahtevima, direktan pristup projektovanju staze podataka SRA kola rezultovae u strukturi koja se sastoji od: dve jedinice za odreivanje apsolutne vrednosti, dva pomeraa, jedne jedinice za odreivanje maksimumaminimuma, jednog sabiraa i jednog oduzimaa. Na Sl. 5.3 prikazana su reenja za svaku od ovih jedinica. Kao to se moe uoiti sa Sl. 5.3, direktna implementacija zahteva ukupno: jedan sabira, pet oduzimaa, etiri multipleksera i nekoliko gejtova. Uoimo da su pomerai realizovani prostim preureenjem (permutacijom, tj. preusmeravanjem) signala i ne zahtevaju ugradnju dodatnih hardverskih elemenata. Problem sa direktnom implementacijom je taj to, u sutini, 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, najvei broj jedinica bie pasivne (ne koriste se). Konkretno, kod SRA kola, analizom tabele korienja funkcionalnih jedinica moemo zakljuiti da najvei 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 najveem delu vremena u toku izraunavanja koristi manje od jedne etvrtine ugraenog hardvera. Ovo namee zakljuak da bi se upotrebom funkcionalnih jedinica koje su u stanju da obavljaju vie od jedne operacije mogle ostvariti znaajne utede u hardveru. Na primer, kod SRA kola, sabiranje i oduzimanje se nikada ne obavljaju u isto vreme (tj. u istom stanju). To znai da umesto dve nezavisne jedinice (sabira i oduzima), moemo konstruisati i koristiti samo jednu jedinicu (sabiraoduzima), koja e po potrebi obavljati jednu ili drugu operaciju. Hardver potreban za realizaciju jedinice sabiraoduzima je manjeg obima od ukupnog hardvera nezavisnih jedinica sabira i oduzima. Konkretno, uteda je u jednom sabirau na raun dodatne EX-OR logike (Sl. 5.3(k)). Treba napomenuti, da objedinjavanje jednostavnih funkcionalnih jedinica u sloenije ne mora u svakom sluaju da rezultuje u utedi hardvera. Na primer, konstrukcija pomeraa koji objedinjuje funkcije 1-bitnog i 3-bitnog pomeraa, ne samo da ne tedi, ve, s obzirom da zahteva ugradnju dodatnog multipleksera, poveava utroak 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, povrina koju staza podataka zauzima na ipu, broj gejtova ili tranzistora, ili ukupan broj funkcionalnih jedinica. Ovaj zadatak obino se naziva dodela funkcionalnih jedinica (functional unit sharing). U izvesnim sluajevima, primarni cilj sinteze moe biti minimizovanje veza u stazi podataka. Veze se koriste za prenos podataka izmeu funkcionalnih jedinca i memorijskih kola (registara, registarskih polja ili RAM-a). Reenje kod koga se svaki pojedinani prenos podataka ostvaruje preko zasebne, direktne veze izmeu odgovarajue 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 mogunost grupisanja veza u magistrale, preko kojih bi se u razliitim stanjima obavljao prenos podataka izmeu razliitih 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. Nain sprege izmeu 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 slui za prenos podatka sa izlaza tog registra do ulaza u tu funkcionalnu jedinicu. Slino, 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 O abs1 I veza) iz registra a do jedinice abs1 i prenos tipa O I O abs2 (izlazna veza) od jedinice abs1 do registra t1. I I O min Slino, operacija x=max(t1, t2) iz stanja s2 koja se I I I O I O max obavlja u jedinici max, zahteva da izmeu registara I O >>3 I O >>1 t1 i t2, sa jedne i jedinice max, sa druge stane, I I O postoje dve ulazne veze, i da izmeu jedinice max i I I O + registra x postoji jedna izlazna veza. Kao to se moe uoiti 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

Meutim, od svih 23 veza, u toku jednog stanja koristi se najvie nekoliko. Na osnovu polaznog ASM dijagrama zakljuujemo da se najvei broj veza koristi u stanju s2. U ovom stanju izvravaju se dve operacije (max i min) od kojih svaka zahteva po dva ulazna operanda, to trai 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, zakljuujemo da svi prenosi u stazi podataka mogu biti ostvareni uz pomo 6 magistrala. Na osnovu prethodnog primera, uoava se da se trei glavni zadatak sinteze staze podataka sastoji u kombinovanju ili grupisanju veza (merging ili grouping connections) i dodeli po jedne magistrale svakoj grupi na nain koji e minimizovati ukupnu cenu povezivanja. Ukaimo da cena povezivanja ukljuuje 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 vie magistrala. 5.1 Dodela registara

Kao to smo ve naglasili, jedan od glavnih zadataka u optimizaciji staze podataka sastoji se u grupisanju promenljivih tako da one mogu da dele zajednike registre ili memorijske lokacije. Grupisanjem promenljiv smanjuje se potreban broj i veliina memorijskih komponenti, to indirektno smanjuje povrinu silicijuma, a time i cenu ASIC kola. S obzirom da promenljive mogu da dele isti registar samo ako se njihova vremena ivota ne preklapaju, postupak grupisanja promenljivih uvek zapoinje odreivanjem vremena ivota promenljivih iz polaznog ASM dijagram. Vreme ivota promenljive definie se kao skup stanja u kojima je promenljiva iva, a ukljuuje: (a) stanje nakon stanja u toku kojeg je promenljivoj dodeljena nova vrednost (stanje upisa); (b) svako stanje u toku koga se promenljiva koristi na desnoj strani naredbe registarskog prenosa (stanje itanja); i (c) sva stanja na putu izmeu stanja upisa i stanja itanja. Naglasimo da se svakoj promenljivoj moe vie puta dodeljivati vrednost i da se svaka dodeljena vrednost moe koristiti po nekoliko puta. Nakon to su vremena ivota promenljivih odreena, mogue je grupisati promenljive ija se vremena ivota ne preklapaju i svakoj grupi dodeliti po jedan registar. Cilj grupisanja promenljivih je minimizovanje potrebnog broja registara. To znai da treba teiti podeli skupa promenljivih na to je mogue manji broj grupa, ali tako da svaka promenljiva pripada samo jednoj grupi. Ovaj cilj se moe postii pomou algoritma leve ivice (left-edge algorithm). Kao to se moe videti sa Sl. 5.5, algoritam poinje kreiranjem prioritetne liste promenljivih, u kojoj se promenljive sortirane na osnovu rednog broja stanja upisa. Ako dve promenljive imaju isto stanje upisa, vii prioritet dobija promenljiva iji je ivot dui. Ako promenljive imaju isto stanje upisa i isto vreme ivota, prioritet se dodeljuje sluajno. Nakon to su promenljive sortirane, algoritam ulazi u petlju, gde se kao prvi korak instancira (uvodi) novi registar. Ovom registru se najpre dodeljuje promenljiva sa vrha liste. Zatim se redom ispituju promenljive iz sortirane liste i svaka promenljiva ije se vreme ivota ne preklapa sa vremenima ivota promenljivih prethodno dodeljenih tom registru, se izbacuje iz liste i dodeljuje registru. Nakon to je ispitana i poslednja promenljiva iz liste, dodela promenljivih tom registru je zavrena. Ako je u toj taki, lista prazna (sve promenljive su dodeljene), algoritam zavrava sa radom; inae, algoritam instancira novi registar i ponavlja opisani postupak.

Sl. 5.5 Algoritam leve ivice.

Princip rada algoritma leve ivice objasniemo na primeru dodele registra kod staze podataka SRA kola. Prvo, sortiraju se promenljive na osnovu stanja upisa i vremena ivota, kao to je prikazano na Sl. 5.6(a). Simboli X ukazuju na stanja u kojima su pojedine promenljive ive. Najvii prioritet imaju promenljive a i b, jer se najranije javljaju u ASM dijagramu, tj. u stanju s1. Zatim slede t1 i t2 (stanje s2), a onda x i y (stanje s3), pri emu x, zbog dueg ivota ima prednost, i td.. Nakon to smo formirali prioritetnu listu promenljivih ulazimo u petlju, gde u svakoj iteraciji uvodimo jedan novi registar i dodeljujemo mu promenljive. Neka je prvi uvedeni registar R1. Ovom registru se dodeljuje promenljiva a, kao prva u listi, zatim promenljiva t1, kao prva promenljiva nakon promenljive a ije se vreme ivota ne preklapa sa vremenom ivota promenljive a. Registar R1, takoe, dodeljuje se promenljivoj x, jer se njen ivotni vek (stanja s2 do s6) ne

193

Arhitektura mikrosistema

preklapa sa ivotnim vekom ni jedne promenljive prethodno dodeljene istom registru. Konano, 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 nain, 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 identian nain na novu listu (Sl. 5.6(b)). To rezultuje u dodeli promenljivih b, t2, y, t4 i t6 registru R2. Konano, lista promenljivih postaje prazna nakon tree iteracije u kojoj se registru R3 dodeljuju promenljive t3 i t5, preostale nakon druge iteracije. Na osnovu izvrene dodele projektuje se staza podataka SRA kola koju ine tri registra, kako je to prikazano na Sl. 5.7.
Iteracija I a b t1 t2 x y t3 t4 t5 t6 t7 s1 X X s2 s3 s4 s5 s6 s7 b t2 y t4 t3 t5 t6 s1 X s2 X X X X X X X Iteracija II s3 s4 s5 s6 s7 t3 t5 s1 s2 Iteracija III s3 s4 X s5 X s6 s7

X X X X X X X X X

X X X X

(a) R1=[a, t1, x, t7]

(b) R2=[b, t2, y, t4, t6] Sl. 5.6 Prioritetna lista promenljivih.

(c) R3=[t3, t5]

Nain na koji su stazi podataka sa Sl. 5.7 povezani registri, funkcionalne jedinice i UI portovi, direktno sledi na osnovu naina 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 izraunavaju apsolutnu vrednosti; vrednost promenljive x je rezultat operacije max(t1, t2) koja se obavlja u jedinici max; ista funkcionalna jedinica generie vrednost za promenljivu t7 (t7=max(t6, x)). Poto vrednosti za promenljive dodeljene registru R1 dolaze iz tri razliita izvora (ulazni port Ul1, i izlazi jedinica |a| i max) neophodan je multiplekser za izbor vrednosti koja e biti upisana u R1.
Ul1 Ul2

Multiplekser

Multiplekser

Multiplekser

R1

R2

R3

|a|

|b|

min

max

>>1

>>3

Izl

Sl. 5.7 Staza podataka SRA kola generisana algoritmom leve ivice.

Kao to smo ve ranije ukazali, broj registara u stazi podataka SRA kola ne moe biti manji od tri. U tom smislu, reenje dobijeno primenom algoritma leve-ivice je optimalno. Meutim, treba naglasiti da dobijeno reenje nije jedina mogua dodela koja zahteva tri registra, ve postoje i drugaija, alternativna grupisanja

194

Sinteza staze podataka

promenljivih na tri razdvojene grupe. Svaka takva, alternativna dodela rezultovae u drugaijoj strukturi staze podataka, u pogledu naina na koji su UI portovi, funkcionalne jedinice i registari meusobno povezani. To nam daje mogunost da bez naruavanja optimalnosti reenja, u pogledu broja registara, pokuamo da optimizujemo neku drugu projektantsku metriku, kao to je cena povezivanja. Cena povezivanja UI portova, registara i funkcionalnih jedinica u stazu podataka se moe 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, udruivanju odreenih promenljivih. Prioritet imaju: (a) one dve promenljive koje se koriste kao levi ili desni operandi za isti tip operatora; i (b) promenljive koje se generiu od strane istog tipa operatora. Udruivanje promenljivih koje zadovoljavaju jedan od navedenih uslova moe potencijalno da dovede do utede jednog ili vie multiplekserskih ulaza. Ovakav princip dodele registara ilustrovan je na Sl. 5.8 za sluaj kada se dve naredbe registarskog prenosa (x=a+b i y=c+d) obavljaju u razliitim stanjima (si i sj), nad razliitim operandima (a, b, c i d) i pri tome dodeljuju izraunate vrednosti razliitim promenljivama (x i y). Ako se usvoji da se oba sabiranja mogu izvriti u istoj funkcionalnoj jedinici, grupisanjem odgovarajuih operanada i rezultata iz dve operacije sabiranja moe se postii uteda u broju multiplekserskih ulaza. Na primer, pretpostavimo da dodela zasebnog registra svakoj promenljivoj (nema grupisanja promenljivih) rezultuje u reenju 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 delimino prikazanog ASM dijagrama sa Sl. 5.8(a)). Meutim, 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 smanjie se za tri.

. . .
si x=a+b

d m2

a,c

b,d

m1

Multiplekser

Multiplekser

Multiplekser

Multiplekser

. . .
sj y=c+d m3 Multiplekser

+
m4 Multiplekser

Multiplekser

. . .
(a)

x,y

(b)

(c)

Sl. 5.8 Grupisanje promenljivih sa zajednikim izvorima i odreditima: (a) delimini ASM dijagram; (b) staza podataka kod koje nije izvreno grupisanje promenljivih; (c) staza podataka kod koje je izvreno grupisanje promenljivih.

U optem sluaju, ako se n promenljivih koristi kao izvorite ili odredite istom operatoru ili funkcionalnoj jedinici, tada se moe ostvariti potencijalna uteda od n-1 multiplekserskih ulaza ako se svih n promenljivih dele istom registru. U nastavku, razmotriemo novi algoritam za dodelu registara iji je cilj da osim minimizovanja broja registara ostvari i to je mogue veu utedu 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 izmeu njih. Korieni graf se zove graf kompatabilnosti promenljivih (ili, samo, graf kompatabilnosti). Svaki vor u ovom grafu odgovara jednoj promenljivoj, a svaka grana izmeu dva vora ukazuje da li su ta dva vora kompatabilna ili nekompatabilna, u smislu da li odgovarajue 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 udrueni, (b) prioritetna grana (predstavljena punom linijom) povezuje vorove (promenljive) ija se vremena ivota ne preklapaju i pri tome se koriste kao izvorita ili odredita iste funkcionalne jedinice. Svakoj prioritetnoj grani pridruuje se teina koja ukazuje na broj multiplekserskih ulaza koji se mogu utedeti ako se vorovima povezanim tom granom dodeli isti registar. Prioritetna teina je oblika sd, gde s odgovara broju razliitih funkcionalnih jedinica koje koriste oba vora za leve ili desne operande, a d odgovara broju razliitih funkcionalnih jedinica koje generiu rezultate za oba vora.

195

Arhitektura mikrosistema

Promenljive koje u grafu kompatabilnosti nisu spojene granom su takoe kompatabilne, u smislu da se mogu udruiti, ali se njihovim kombinovanjem ne moe utedeti na broju multiplekserskih ulaza. U nastavku e biti opisan algoritam podele grafa (graphpartitionnig algorithm) koji kombinuje kompatabilne vorove u supervorove sve dok svi vorovi u grafu ne postanu nekompatabilni. Preciznije, algoritam uvek bira dva vora povezana prioritetnom granom nejvieg prioritet i od njih kreira supervor. Nakon toga, sve grane unutar supervora se briu, a kreiraju se nove grane izmeu supervora i ostalih vorova. Algoritam kreira nekompatabilnu granu ka bilo kom voru koji je nekompatabilan sa najmanje jednim vorom u supervoru; odnosno, kreira prioritetnu granu ka bilo kom voru koji se koristi kao zajedniko izvorite ili odredite sa najmanje jednim vorom u supervoru, a koji je kompatabilan sa svim vorovima u supervoru. Teina prioritetne grane se izraunava kao i za granu izmeu dva prosta vora. Opisana procedura je prikazana na Sl. 5.9.

Pocetak

Kreirati graf kompatibilnosti promenljivih

Kombinovati cvorove sa najviim prioritetom

Modifikovati graf kompatibilnosti

Ne

Svi cvorovi su

nekompatiblini Ako algoritam podele grafa primenimo stazu podataka SRA kola, dobiemo grupisanje promenljivih koje se neznatno razlikuje od Da grupisanja koga daje algoritam leve ivice. Prvo, neophodno je kreirati Kraj graf kompatabilnosti promenljivih, kao to je prikazano na Sl. 5.10(a). Naglasimo da je svaki par promenljivih ija se vremena ivota preklapaju povezan isprekidanom linijom, tj. nekompatabilnom Sl. 5.9 Algoritam podele grafa. granom, to ukazuje da se te dve promenljive ne mogu kombinovati. Da bi smo kreirali prioritetne grane, koje ukazuju na kompatabilnosti promenljivih, usvojiemo da raspolaemo jednostavnim bibliotekim kolima sa Sl. 5.3 u koje spadaju jedinice za izraunavanje apsolutne vrednosti, minimuma, maksimuma, pomeranje, zbira i razlike, kao i jedinice koje su sposobne da obavljaju kombinovane operacija, kao to su sabiraoduzima, i minmax jedinica. Uoimo da se operator max koristi dva puta u ASM dijagramu SRA kola i to u operaciji x=max(t1, t2), iz stanja s2, i operaciji t7=max(t6, x), iz stanja s6. Dakle, kao ulazi u funkcionalnu jedinicu max koriste se dva para promenljivih (t1, t2) i (t6, x), pri emu je bilo koja promenljiva iz jednog kompatabilna sa bilo kojom promenljivom iz drugog para. Ako bi se za smetanje ovih promenljivih koristili posebni registri, ispred oba ulaza funkcionalne jedinice max trebalo bi ugraditi dvo-ulazni multiplekser. Meutim, ako promenljive t1 i t6 dele isti registar i pri tome se obe koriste kao levi (desni) operandi jedinice max, onda multiplekser ispred levog (desnog) ulaza jedinice max vie nije potreban, jer ovaj ulaz moe biti direktno spojen sa izlazom odgovarajueg registra. Napomenimo da bi se uteda ovog tipa javila i kod bilo koje druge funkcionalne jedinice koja kao ulazne operande koristi promenljive t1 i t6. Meutim, kako je jedinica max jedina kod koje se t1 i t6 koriste kao ulazi, parametar s pridruen grani izmeu vorova t1 i t6 ima vrednost s=1. Iz slinih razloga, koji se tiu ulaznih operanada jedinice max u grafu kompatabilnosti sa Sl. 5.10(a) postoje prioritetne grane izmeu vorova t1 i x, kao i izmeu t2 i vorova t6 i x. Sa druge strane, jedinica max generie nove vrednosti za dve meusobno kompatabilne promenljive: x (u stanju s2) i t7 (u stanju s6). Ako se ove dve promenljive dodele razliitim registrima, Ri i Rj, tada e izlaz max jedinice biti u vezi sa jednim ulazom u multiplekser koji su postavljeni ispred registra Ri i jednim ulazom u multiplekser ispred registra Rj. Meutim, ako promenljive x i t7 dele isti registar, Rk, tada e izlaz jedinice max biti u vezi samo sa multiplekserom koji je eventualno postavljen ispred registra Rk. Dakle, javie se uteda od jednog multiplekserskog ulaza. Ista uteda bi se javila i za bilo koju drugu funkcionalnu jedinicu koja bi eventualno generisala rezultat za obe ove promenljive. Meutim, kako je to sluaj samo kod jedinice max, parametar d pridruen prioritetnoj grani izmeu vorova x i t4 ima vrednost d=1. Osim pomenutih, prioritetne grane postoje i izmeu promenljivih t3 i t5, kao i t5 i t6 jer su to mogui ulazi i izlazi jedinice za sabiranjeoduzimanje. Konano, prioritetna grana izmeu promenljivih y i t7 postoji zato to su ove dve promenljive mogui izlazi jedinice minmax.

196

Sinteza staze podataka

Sl. 5.10 Algoritam podele grafa primenjen na SRA problem.

Nakon to smo kreirali inicijalni graf kompatabilnosti, poinjemo sa grupisanjem promenljivih i kreiranjem supervorova. U konkretnom sluaju, sve prioritetne grane imaju istu teinu, tako da se najpre biraju oni vorovi ije grupisanje nee odstraniti iz grafa neku drugu prioritetnu granu. To znai da, na primer, kombinovanje promenljivih t3 i t5 ima prednost nad kombinovanjem promenljivih t1 i x. Naime, ako bi smo kombinovali promenljive t1 i x, to bi dovelo do odstranjivanja iz grafa prioritetne grane (t2, x) jer je vor t2 spojen nekompatabilnom granom sa vorem t1. Odstranjivanje prioritetne grane, na ovakav nain, nije poeljno, jer se time ukida mogunost da prilikom nekog narednog kombinovanja upravo ta prioritetna grana iskoristi za dodatnu utedu. Sa druge strane, kombinovanje promenljivih t3 i t5 ne ponitava ni jednu drugu prioritetnu granu, jer u grafu ne postoji vor koji je sa jednim od ovih vorova spojen nekompatabilnom, a sa drugim prioritetnom granom. Dakle, kombinovaemo promenljive t3, t5 i t6, kako bi smo ostvarili moguu utedu od dva multiplekserska ulaza. Time se kreira supervor [t3, t5, t6] kao to se vidi na Sl. 5.10(b). Zatim, biramo vor koji ima najvei broj prioritetnih grana konkretno to je vor x i udruujemo ga sa t1, a onda i sa t7 (Sl. 5.10(c)). Naglasimo da udruivanje vorova x, t1 i t7, odstranjuje dve prioritetne grane iz grafa kompatabalinosti, koje se nalaze izmeu y i t7 (zato to je y nekompatabilan sa x) i izmeu t2 i x (zato to je t2 nekompatabilan sa t1). Sada, moemo, najpre vor y, a zatim i vor t2 pripojiti supervoru [t3, t5, t6], to daje graf kompatabilnosti sa Sl. 5.10(d). Konano, jednu od promenljivih a i b, pridodajemo supervoru [t2, y, t3, t5, t6], a drugu supervoru [t1, x, t7]. U rezultujuem grafu kompatabilnosti (Sl. 5.10(e)) vie nema kompatabilnih vorova i algoritam zavrava sa radnom. U skladu sa konanim grafom kompatabilnosti, zakljuujemo da su za sintezu staze podataka SRA kola, potrebna tri registra, R1, R2 i R3, kojima su promenljive dodeljene na sledei nain: R1=[a,t1,x, t7], R2=[b,t2, y, t3, t5, t6] i R3=[t4]. Da bi smo izvrili poreenje cena povezivanja staza podataka generisanih algoritmom leve ivice i algoritmom podele grafa kompatabilnosti koristiemo istih osam funkcionalnih jedinica koje smo prethodno koristili za sintezu staze podataka na bazi algoritma leve ivice (vidi Sl. 5.7). Na Sl. 5.11 prikazano je reenje staze podataka SRA kola kod koga je dodela registara obavljena algoritmom podele grafa kompatabilnosti. Kao to se vidi sa Sl. 5.11, ukupan broj multiplekserskih ulaza je 9, to je za jedan multiplekserski ulaz manje u odnosu na reenje sa Sl. 5.7. Napomenimo da se znaajnije smanjenje cene povezivanja moe postii ako se u reenju sa Sl. 5.11 umesto jedno-funkcionalnih koriste vie-funkcionalne jedinice. Logino je oekivati da e manji broj jedinica zahtevati i manji broj veza. Ovo zapaanje sugerie da se dodatno smanjenje cene resursa u stazi podataka moe postii grupisanjem operacija u vie-funkcionalne jedinice, to je upravo tema sledeeg odeljka.

197

Arhitektura mikrosistema

Ul1

Ul2

Multiplekser

Multiplekser

R1

R2

R3

|a|

|b|

min

max

>>1

>>3

Izl

Sl. 5.11 Dodela registara generisana algoritmom podele grafa kompatabilnosti promenljivih.

5.2

Dodela funkcionalnih jedinica

Glavni cilj aktivnosti dodele funcijskih jedinica ili kombinovanja operatora jeste minimizovanje broja funkcionalnih jedinica u stazi podataka. Slino kao i kod dodele registara, dodela funkcionalnih jedinica omoguena je injenicom da u okviru jednog stanja, staza podataka, gotovo nikada, ne obavlja sve tipove operacija. Shodno tome, slini operatori se mogu grupisati u vie-funkcionalne jedinice, koja e se ee koristiti. U nekim sluajevima, grupisanje operacija na ovaj nain nee rezultovati u smanjenju cene staze podataka. Naime, operatori koji nisu srodni obino zahtevaju strukturno razliita reenja, tako da njihovo grupisanje najee dovodi do toga da se ne ostvare dobici. Meutim, u velikom broju sluajeva, grupisanje operatora ipak dovodi do smanjenja cene koja obino nije zanemarljiva. Princip grupisanja operatora ilustrovan je na Sl. 5.12.

. . .
si x=a+b a b c d Multiplekser Multiplekser a c b d

. . .
sj y=c-d

+/-

. . .
(a) Parcijalni ASM dijagram

y x (b) Resenje kod koga nije izvrsena dodela (c) Resenje kod koga je izvrsena dodela y

Sl. 5.12 Dodela funkcionalnih jedinica.

U primeru sa Sl. 5.12, staza podataka obavlja dve razliite operacije, sabiranje i oduzimanje, nad razliitim operandima u razliitim stanjima (Sl. 5.12(a)). Za sluaj kada se operacije sabiranja i oduzimanja implementiraju posebnim funkcionalnim jedinicama, dobija se reenje prikazano na Sl. 5.12(b). Ista funkcionalnost se moe dobiti ako se koristi jedna jedinica za sabiranjeoduzimanje i dva multipleksera (Sl. 5.12(c)). Jasno je da je drugo reenje bolje onda kada je cena kola za sabiranjeoduzimanje i dva multipleksera nia od cene kola za sabiranje i oduzimanje zajedno. Znai, namera je razvoj algoritma koji e objedinjavati operatore u vie-funkcionalne jedinice tako da je ukupna cena svih vie-funkcionalnih jedinica i potrebnih multipleksera minimalna. Za tu namenu, koristiemo algoritam podele grafa, slian 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. Usvojiemo da raspolaemo bibliotekom

198

Sinteza staze podataka

jednostavnih komponenata (Sl. 5.3) i bibliotekom sloenih komponenata (Sl. 5.13). Biblioteka sloenih komponenata sa Sl. 5.13 sadri nekoliko vie-funkcionalnih jedinica od kojih svaka moe da izraunava tri ili vei broj od sledeih operacija: apsolutna vrednost, minimum, maksimum, sabiranje i oduzimanje. Svaka od ovih jedinica koristi sabira, jedan ili dva multipleksera, AND iili EX-OR logike nizove i nekoliko upravljakih gejtova. Radi pojednostavljivanja, cena gejtova je izostavljena prilikom odreivanja cena jedinica.
a b a b

c1

Sabirac
Bit znaka Bit znaka 1 0 c0 c1 0 0 0 1 1 1 OPERACIJA Apsolutna Minimum Maksimu 1

Sabirac

Mux

c1

Mux

c0

Mux

c0

Mux

c0 c1 0 0 0 1 1 0 1 1

OPERACIJA Sabiranje Minimum Oduzimanje Maksimum

(a) Jedinica za izracunavanje minimuma, maksimuma i apsolutne vrednosti

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

a a c0 c1 b c2

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

c0 c1 1 0 0 1 1 1

OPERACIJA Sabiranje Apsolutna Oduzimanje

c1

Mux

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

Sl. 5.13 Biblioteka sloenih komponenti.

Grupisanju operanada koji se javljaju u ASM dijagramu prethodi konstrukcija grafa kompatabilnosti. Ovaj graf ukazuje koji operandi se mogu grupisati, a koji ne. Svaki vor u grafu kompatabilnosti predstavlja jedan tip operatora iz ASM dijagrama, mada u grafu moe postojati vie od jednog vora za isti operatorski tip. Po pravilu, broj vorova koji odgovaraju istom operatorskom tipu bie jednak najveem broju pojavljivanja tog operatorskog tipa u nekom stanju. Kako bi se ukazalo na kompatabilnosti razliitih operatora, u graf se umeu prioritetne grane i nekompatabilne grane. Kao to se i oekuje, nekompatabilna grane povezuju vorove (operatore) koji se koriste u istom stanji i iz tog razloga se ne mogu grupisati. Nasuprot tome, prioritetne grane ukazuju na vorove koje je poeljno kombinovati, prvenstveno zbog slinosti u konstrukciji odgovarajuih funkcionalnih jedinica ili zbog znaajnog smanjenja cene povezivanja. U nastavku, obe metrike, tj. cena hardvera i cena povezivanja, bie uzete u obzir prilikom grupisanja operatora. Graf kompatabilnosti za SRA kolo prikazan je na Sl. 5.14(a). U graf nisu ukljueni operatori pomeranja (>>1, >>3) zbog toga to je njihova pojedinana cena implementacije nula, te stoga njihovo objedinjavanje sa nekim dugim operatorima moe samo da povea utroak hardvera. Kao to se vidi sa Sl. 5.14(a), graf kompatabilnosti sadri dva vora za operand koji izraunava apsolutnu vrednost. To je zato to u okviru stanja s1 postoje dve operacije ovog tipa i koje zbog toga moraju biti obavljene u paraleli, na razliitim funkcionalnim

199

Arhitektura mikrosistema

jedinicama. U konanom obliku, graf kompatabilnosti sadri 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 odreivanje 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 logikih nizova, est sabiraa i etiri multipleksera.

|a|

|b|

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

min

max

(a) Graf kompatibilnosti

|a|

|b|

Komponenta
min
max

Jedinica |a|/min |b|/max/+/Ukupno

AND logika 1 1 2

Invertor logika 1 1

EX-OR logika

1 1 (d) Tabela cene

Sabirac 1 1 2

Multiplekser 2 2 4

(b) Resenje I

|a|

|b|

Komponenta
min
max

AND Invertor EX-OR Jedinica logika Sabirac Multiplekser logika logika |a|/min/+ 1 1 1 2 |b|/max/-Sl. 5-11 1 1 Kombinovanje 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 mogue je sniziti cenu staze podataka na nekoliko razliitih naina. Dva naina prikazana su na Sl. 5.14(c) i Sl. 5.14(e), a odgovarajue cene rezultujuih staza podataka na Sl. 5.14(d) i Sl. 5.14(f). Uoimo da oba reenja zahtevaju ugradnju: dva AND logika niza, jedan invertorski logiki niz, jedan EX-OR logiki niz, dva sabiraa i dva multipleksera, to predstavlja niu cenu u odnosu na polazno reenje 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 moe videti sa Sl. 5.15, oba reenja zahtevaju po devet multiplekserskih ulaza, slino kao i reenje staze podataka sa Sl. 5.11. Sa druge strane, reenja sa Sl. 5.15 imaju znaajno niu cenu funkcijskih jedinica, pa su u celini jeftinija od reenja sa Sl. 5.11.

200

Sinteza staze podataka

Sl. 5.15 Alternativna reenja staze podataka.

Cena staze podataka se dalje moe smanjiti ako se tokom kombinovanja operatora, kao sekundarni kriterijum, minimizuje cena povezivanja. U tom cilju koriste se prioritetne grane u grafu kompatabilnosti, na slian nain kao prilikom kombinovanja promenljivih. Kao i kod kombinovanja promenljivih, teine prioritetnih grana odreuju na osnovu broja zajednikih izvorita i zajednikih odredita, s tom razlikom to se sada izvorita i odredita ne odnose na promenljive, ve na registre. Da bi smo pokazali kako se odreuju teine prioritetnih grana, razmotrimo delimini ASM dijagram sa Sl. 5.16(a), kod koga se operacije sabiranja i oduzimanja obavljaju u razliitim stanjima nad razliitim skupovima operanada, a rezultati se dodeljuju razliitim promenljivama. Ako parovi promenljivih: a i c, b i d, i x i y dele iste registre, reenje staze podataka koje koristi posebne funkcionalne jedinice za sabiranje i oduzimanje zahtevae: etiri dvo-ulazna multipleksera i jedan tro-ulazni multiplekser sa ukupno 11 multiplekserskih ulaza (Sl. 5.16(b)). Sa druge strane, reenje staze podataka koje koristi jedinstvenu funkcionalnu jedinicu za sabiranjeoduzimanje zahteva samo dva tro-ulazna multipleksera i jedan dvo-ulazni multiplekser sa ukupno 8 multiplekserskih ulaza, kao to je prikazano na Sl. 5.16(c). Drugim reima, kombinovanje sabiraa i oduzimaa u jedinstveni sabiraoduzima rezultuje dobitkom od tri multiplekserska ulaza, jer sabira i oduzima imaju dva zajednika izvorita i jedno zajedniko odredite. Opte pravilo bi glasilo: grupisanje operatora koji imaju n zajednikih izvorita kao leve (desne) operande smanjuje broj multiplekserskih ulaza za n-1. Slino, grupisanje operatora koji imaju n zajednikih odredita smanjuje broj multiplekserskih ulaza za n-1. Imajui u vidu ova

201

Arhitektura mikrosistema

pravila, mogue je grupisati operatore na nain koji e minimizovati ukupan broj multiplekserskih ulaza. To se postie tako to se najvii prioritet prilikom izbora operatora za grupisanje daje onim operatorima koji su povezani prioritetnom granom i imaju najvei broj zajednikih izvorita i odredita.

Sl. 5.16 Prioriteti kod kombinovanja jedinica.

Na Sl. 5.17(a) prikazan je graf kompatabilnosti sa Sl. 5.14(a) proiren prioritetnim granama. Svakoj prioritetnoj grani je pridruena teina oblika sd, gde je s broj izvorita, a d broj odredita koji su zajedniki za dva operanda povezana tom granom. Razmotrimo operatore + i - iz ASM dijagrama SRA kola. Ovi operandi se javljaju u operacijama t5=x-t3 (stanje s4) i t6=t4+t5 (stanje s5). S obzirom na nain kako je izvrena dodela registara, zakljuujemo da ove operacije imaju jedno zajedniko izvorite (desni operandi t3 i t5 dele registar R2) i jedno zajedniko odredite (rezultati obe operacije, t5 i t6, se upisuju u isti registar, R2). Znai, prioritetnoj grani izmeu operanada (vorova) + i - pridruuje se teina 11. Slino, grana izmeu operatora min i - ima teinu 21, s obzirom da operatori min i - imaju dva zajednika izvorita i jedno zajedniko odredite. Naime, levi operandi t1 i x dele registar R1, desni operandi, t2 i t3, dele registar R2, a rezultati, y i t5, registar R2.

Sl. 5.17 Podela grafa kompatabilnosti za staza podataka SRA kola sa R1=[a, t1, x, t7], R2=[b, t2, y, t3, t5, t6] i R3=[t4].

202

Sinteza staze podataka

Nakon to smo kreirali graf kompatabilnosti sa ubaenim prioritetnim granama, za grupisanje operatora u odgovarajue funkcionalne jedinice moemo koristiti algoritam za podelu grafa sa Sl. 5.9. Shodno ovom algoritmu, najpre pokuavamo da grupiemo operande koji imaju slinu arhitekturu, kao to su sabiranje i oduzimanje ili min i max. U optem sluaju, grupisanje slinih operanada daje najvee smanjenje cene. U sluaju SRA algoritma, operandi + i - predstavljaju prirodan izbor za inicijalno grupisanje. Graf kompatabilnosti koji se dobija nakon formiranja supervora [+,-] prikazan je na Sl. 5.17(d). U sledeem koraku, supervoru [+,-] pridodajemo vor min, s obzirom da prioritetna grana koja povezuje supervor i vor min ima najveu teinu (21 = 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 najveim prioritetom, 11, su grana izmeu vora |a| i vora max, i grana izmeu vora |b| i supervora [min,+,-]. Grupisanjem vorova povezanih ovim granama dolazimo do konane podele grafa kompatabilnosti, prikazane na Sl. 5.17(f). Na osnovu konanog grafa kompatabilnosti, u mogunosti smo da sintetiemo stazu podataka SRA kola korienjem tri registara i etiri funkcionalne jedinice. Konana dodela promenljivih i operatora registrima i funkcionalnim jedinicama prikazana je na Sl. 5.18(a), a struktura staze podataka na Sl. 5.18(b). Uoimo da dobijeno reenje staze podataka zahteva samo sedam multiplekserskih ulaza, to je poboljanje u odnosu na prethodno reenje koje ima devet multiplekserskih ulaza.
R1 = [a, t1, x, t7] R2 = [b, t2, y, t3, t5, t6] R3 = [t4] AU1 = [|b|/min/+/-] AU2 = [|a|/max] SH1 = [>>1] SH2 = [>>3]

(a) Dodela registara i funkcijskih jedinica


Ul1 Ul2

Multiplekser

Multiplekser

R1

R2

R3

Multiplekser >> 1 >> 3

[abs/max]

[abs/min/+/-]

Izl

(b) Staza podataka

Sl. 5.18 Staza podataka SRA kola dobijena korienjem prioritetne podele.

5.3

Dodela magistrala

U prethodnim poglavljima pokazano je kako se promenljive i operatori grupiu i dodeljuju registrima i funkcionalnim jedinicama. Meutim, i nakon izvrene dodele, sinteza staze podataka nije zavrena, jer registre i funkcionalne jedinice treba meusobno povezati, tj. spojiti izlaze registara sa ulazima funkcionalnih jedinica i izlaze funkcionalnih jedinica sa ulazima registara. Izlazi registara i funkcionalnih jedinica se nazivaju izvorima, a njihovi ulazi odreditima veza. S obzirom da vie veza moe imati isto odredite, staza podataka esto sadri multipleksere koji treba da obezbede pravu povezanost u pravo vreme. S obzirom da veze koje postoje u stazi podataka, obino, zauzimaju znaajan deo povrine na silicijumskom ipu, jedan od ciljeva sinteze staze podataka sastoji se u minimizovanju broja veza, to se postie grupisanjem veza u magistrale. Slino kao kod grupisanja promenljivih i operatora, grupisanje veza se ostvaruje tako to se, najpre, sve one veze koje se ne koriste u isto vreme (u istom stanju) kombinuju u grupe, da bi se, zatim, svakoj grupi dodelila jedna magistrala. Svaki izvor veze iz jedne grupe spregnut je sa magistralom posredstvom tro-

203

Arhitektura mikrosistema

statikog drajvera koji pobuuje magistralu u onim stanjima u kojima taj izvor alje podatak svom odreditu; u preostalim stanjima, veza izmeu izvora i magistrale je raskinuta. Tehnike za grupisanje veza sline su tehnikama koje se koriste za grupisanje promenljivih i operatora. Najpre se kreira tabele korienja 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 izmeu 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 odgovarajue veze ne potiu iz istog izvora i koriste se u isto vreme. Suprotno, vorovi se povezuju prioritetnim granama uvek kada odgovarajue veze imaju isti izvor ili isto odredite. Nakon to je konstruisan graf kompatabilnosti, koristi se algoritam podele grafa, kako bi se obavilo grupisanje veza na nain koji e maksimizovati broj prioritetnih grana obuhvaenih 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). Polazei od ASM dijagrama (Sl. 5.1(b)) i strukture staze podataka (Sl. 5.19(a)), najpre kreiramo tabelu korienja veza (Sl. 5.19(b)). U ovoj tabeli, simbol X se koristi da bi se za svaku vezu oznaila stanja u kojima se ta veza koristi. Uoimo da ova tabele sadri kako ulazne veze (povezuju izlaze registara sa ulazima funkcionalnih jedinica) tako i izlazne veze (povezuju izlaze funkcionalnih jedinica sa ulazima odgovarajuih registara). Da bi postupak grupisanja veza bio laki, korisno je razdvojiti ova dva tipa veza i grupisanje obaviti nezavisno za svaki tip. Ukoliko postupimo na ovaj nain, dobiemo razdvojene ulazne i izlazne magistrale, to pojednostavljuje arhitekturu staze podataka. U sledeem koraku, tabela korienja veza transformie se u graf kompatabilnosti, tako to se svaka veza preslika na jedan vor, a zatim se dodaju grane izmeu vorova. Na Sl. 5.19(c) i Sl. 5.19(d) prikazani su posebni grafovi kompatabilnosti za ulazne i izlazne magistrale. Uoimo da grane nekompatabilnosti postoje i izmeu onih vorova (veza) koji nisu elektrino 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. Takoe, dodate su prioritetne grane izmeu vorova koji imaju isto izvorite i odredite, to ukazuje, na primer, da veze A, C, D i H potiu iz istog registra R1, i da veze B, F i G potiu iz istog registra R2. vorovi D i E su takoe povezani prioritetnom granom, jer oba imaju isto odredite levi ulaz funkcionalne jedinice, AU2. Na Sl. 5.19(d), na slian nain, odreene su prioritetne grane za izlazne veze. U ovom trenutku, kada su odreene prioritetne grane i grane nekompatabilnosti, moemo pristupiti grupisanju vorova, sa ciljem da odstranimo to vei broj grana nekompatabilnosti, a sauvamo to vei broj prioritetnih grana. Kao to je prikazano na Sl. 5.19(e), optimalna podela ulazni veza je ona koja grupie veze A, C, D, E i H u magistralu Bus1 i veze B, F i G u Bus2. Slino, 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. Konano, na Sl. 5.19(f) je prikazana rezultujua staza podataka SRA kola. Oigledno, korienje etiri magistrala umesto 14 direktnih veza, znaajno smanjuje cenu povezivanja.

204

Sinteza staze podataka

Ul1

Ul2

Multiplekser

Multiplekser

R1

R2

R3

D B A C
[abs/max]

E F G
>> 1

Multiplekser

H
>> 3

[abs/min/+/-]

K I J

Izl

(a) Staza podataka SRA kola A M

s0 A B C D E F G H I J K L M N

s1

s2 X X X X

s3

s4

s5

s6 X X

s7 X

C D E

H I K

X X x X X X

X X

X x X X

X x X

X X

G (c) Graf kompatibilnosti za ulazne grane


Ul1

N (d) Graf kompatibilnosti za izlazne grane


Ul2

(b) Tabela koriscenja veza

R1

R2

R3

Bus1 Bus2

[abs/max]

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

Bus1 = [A,C,D,E,H] Bus2 = [B,F,G] Bus3 = [I,K,M] Bus4 = [J,L,N] (e) Dodela magistrala
Izl

Bus3 Bus4 (c) Staza podataka zasnovana na magistralama

Sl. 5.19 Grupisanje veza u stazi podataka SRA kola.

5.4

Grupisanje registara

U odeljku 5.1 opisane su procedure za grupisanje promenljivih kojima se postie da vie promenljivih dele isti registar. Kao to je naglaeno, promenljive mogu deliti isti registar pod uslovom da im se vremena ivota ne preklapaju, jer pod tim uslovom smetanje vrednosti jedne promenljive u registar, gde se do tog trenutka uvala vrednost neke druge promenljive, ne naruava ispravnost rada algoritma. Sledei slinu logiku, mogue je kombinovati ne samo promenljive u deljive registre, ve i same registri u registarske fajlove. Registarski fajl je

205

Arhitektura mikrosistema

hardverska struktura koja se sastoji od dva ili vie registara koji dele zajednike ulazne i izlazne portove. Pojedinanim 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. Takoe, registarski fajlovi se odlikuju kompaktnom hardverskom strukturom, i zahtevaju manju povrinu na silicijumskom ipu u odnosu na povrinu koja bi bila zauzeta odgovarajuim brojem izolovanih registara. Meutim, neophodnost dekodiranja adrese registra prilikom pristupa registarskom fajlu, unosi dodatno kanjenje i usporava prenos podataka. Ipak, imajui u vidu ostvarenu redukciju u smislu zamene mnotva registara jednim registarskim fajlom, dodatno kanjenje je obino prihvatljivo. Uslov da dva registra mogu biti smetena 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 vie od jednom registru iz nekog registarskog fajla. Za kombinovanje registara moe se koristiti slian pristup koji je prethodno opisan kada je razmatrano grupisanje promenljivih, operatora i veza. Na poetku, kreira se tabela pristupa registara, na bazi koje se konstruie graf kompatabilnosti. Konano, primenom algoritma za podelu grafa, meusobno kompatabilni registri se grupiu u registarske fajlove. Poto, u optem sluaju, registarski fajl moe imati vie od jednog pristupnog porta, ogranienje prilikom grupisanja jeste da u toku bilo kog stanja ukupan broj zahteva za itanjem i upisom registara iz neke grupe ne premauje 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. Nain 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 tumaenja ove tabele, treba zamisliti da granina linija izmeu dva stanja predstavlja rastuu ivicu taktnog signala koja upisuje podatke u registre. Prazan (beli) trougao, koji svojim vrhom dodiruje graninu liniju ukazuje da e tom rastuom ivicom taktnog signala, novi podatak biti upisan u konkretni registar. Crni trougao, naslonjen jednom svojom ivicom na graninu liniju ukazuje da se koristi u datom stanju odgovarajui registra ita. Drugim reima, tabela pristupa registrima, govori kada se (u kojim stanjima) vri upis u i itanje iz svakog pojedinog registra.
s0 R1 R1 = [a, t1, x, t7] R2 = [b, t2, y, t3, t5, t6] R3 = [t4] (a) Dodela registara R2 R3 (b) Tabela pristupa registrima
Ul1 Ul2

s1

s2

s3

s4

s5

s6

s7

R1

R2

R3 (c) Graf kompatibilnosti

R1 R3 R2

Bus1 Bus2

[abs/max]

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

Bus3 Bus4

Izl

(d) Staza podataka

Sl. 5.20 Grupisanje registara.

U sledeem koraku, polazei 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 vri upis. (Naglasimo da postojanje stanja u kome se jedan registar ita a u drugi upisuje, ne naruava 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. Slino, ni registri R2 i R3 nisu meusobno kompatabilni, jer se u stanju s3 u oba registra vri upis, a u stanju s5 oba registra itaju. Sa druge strane, registri R1 i R3 su kompatabilni (a odgovarajui 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 zakljuujemo da je mogue 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) moemo uoiti da grupisanje registara R1 i R3 u jedinstveni registarski fajl ima za posledicu utedu u jednom tro-statikom baferu (s obzirom da R1 i R3 dele isti port za itanje, za spregu sa magistralom umesto dva potreban je samo jedan tro-statiki bafer). U optem sluaju, kombinovanjem n registara koji izlaze na m magistrala, u jedan registarski fajl sa jednim portom za itanje, broj tro-statikih, magistralnih bafera se smanjuje za n-m. Meutim, ako kombinujemo n registara u koje se upisuje sa razliitih magistrala, u jedan registarski fajl sa jednim portom za upis, ispred registarskog fajla mora biti postavljen m-to ulazni multiplekser. Zbog mogue utede u drajverima magistrale i multiplekserskim ulazima, vii prioritet prilikom grupisanja treba dati registrima sa zajednikim izvorima i odreditima, odnosno registrima u koje se upisuje sa iste magistrale ili iz kojih se ita preko iste magistrale. 5.5 Ulanavanje funkcionalnih jedinica

U odeljcima od 5.1 do 5.4 predstavili smo tehniku za sintezu staze podataka koja se zasniva na relativno jednostavnom modelu staze podataka. Na primer, sve staze podataka koje su razmatrane u prethodnim odeljcima sadre registre, funkcionalne jedinice i magistrale. Dodatno, za spregu registara i funkcionalnih jedinica, tamo gde je to neophodno, ugrauju se tro-statiki baferi i multiplekseri. U svakom taktnom ciklusu, u stazi podataka izvrava se jedna ili vie naredbi registarskog prenosa, pri emu izvrenje svake naredbe ukljuuje: itanje vrednosti operanada iz izvorinih registara, prenos proitanih vrednosti do ulaza funkcionalnih jedinica, izraunavanje rezultata, prenos rezultata od izlaza funkcionalnih jedinica do odredinih registra i upis vrednosti rezultata u registre. Kod staza podataka ovog tipa, registri se taktuju taktnim signalom ija perioda mora biti vea ili jednaka najduem vremenu izvrenja neke naredbe registarskog prenosa. Na taj nain, taktni period je direktno odreen najsporijom funkcijskom jedinicom u stazi podataka, to znai da su ostale, bre funkcionalne jedinice zauzete samo u delu taktnog ciklusa, a zatim do isteka taktnog ciklusa ostaju pasivne (tj. neiskoriene). Meutim, ako je zbirno kanjenje neke dve funkcionalne jedinice krae od taktnog ciklusa, tada ih je mogue redno povezati i na taj nain izvriti dve operacije u jednom taktnom ciklusu. Isti princip se moe proiriti i na vie od dve funkcionalne jedinice, ako je taktni period dovoljno dug. Funkcionalne jedinice se spreu direktno, bez posrednih registara. Na taj nain, praktino, formira se jedna sloena funkcionalna jedinica. Tehnika rednog povezivanja funkcionalnih jedinica zove se ulanavanje. U cilju prikaza tehnike ulanavanja koristiemo ASM dijagram sa Sl. 5.21(a), koji opisuje rad SRA kola. Naglasimo da je ASM dijagram sa Sl. 5.21(a) dobijen tako to su u ASM dijagramu sa Sl. 5.1(b) stanja s2 i s3 spojena u jedno stanje, s2. Kao to se moe videti, u stanju s2 novog ASM dijagrama obavljaju se tri naredbe registarskog prenosa: prva naredbi zahteva jednu binarnu operaciju (max), dok druge dve sadre po dve operacije. Tanije, nova vrednost koja se dodeljuje promenljivoj t3 izraunava se tako to se vea od dve vrednosti, t1 i t2, (max(t1,t3)) pomeri udesno za tri bitske pozicije (>>3). U isto vreme, nova vrednost promenljive t4 se dobija tako to se najpre izrauna minimum od t1 i t2, a onda dobijena vrednosti pomeri za jednu bitsku poziciju udesno. Poto pomeranje za jednu ili tri pozicije ne unosi kanjenje (vidi Sl. 5.3(f) i Sl. 5.3(g)) taktni ciklus za stazu podataka sa ulananim funkcionalnih jedinicama, [max, >>3] i [min, >>1], nee biti produen u odnosu na originalnu stazu podataka. Sa druge strane, poto novi ASM dijagram ima sedam stanja, umesto osam, koliko ih ima u polaznom ASM dijagramu, zakljuujemo da modifikovana staza podataka izvrava SRA algoritam 12.5% bre. Struktura staze podataka sa ulananim funkcionalnih jedinicama prikazana je na Sl. 5.21(c). Naglasimo da je neophodno kreirati dodatnu vezu od pomeraa oznaenog sa >>1 do registra R3, kako bi se u stanju s2 omoguio prenos tri nove vrednosti za promenljive x, t3 i t4.

207

Arhitektura mikrosistema

Sl. 5.21 Staza podataka sa ulananim funkcionalnih jedinicama.

5.6

Usitnjavanje ciklusa

Tehnika ulanavanja omoguava nam da na efikasan nain u stazu podataka ugradimo brze funkcionalne jedinice. Meutim, u nekim sluajevima, kada niska cena realizacije predstavlja imperativ, poeljno je koristiti sporije, ali jeftinije jedinica, koje za izraunavanje rezultata zahtevaju dva ili vie taktnih ciklusa. Tehnika koja to omoguava zove se usitnjavanje ciklusa (multicycling), dok se te sporije jedinice zovu funkcionalne jedinice sa usitnjenim ciklusima (multicycle units). Iz oiglednih razloga, jedinice sa usitnjenim ciklusima koriste se samo na putanjama kroz ASM dijagram koje nisu kritine. Na primer, u ASM dijagramu sa Sl. 5.21(a), promenljiva t4 dobija novu vrednost, t4=(min(t1, t2)) >> 1, u stanju s2, ali se ta vrednost ne koristi sve do stanja s4. To znai da u ovom sluaju moemo koristiti jedinicu koja za odreivanje minimuma zahteva dva taktna ciklusa i ulanati je sa pomeraem udesno, koji ne unosi kanjenje, a da konani rezultat ipak bude generisan na vreme. Na Sl. 5.22 ilustrovana je tehnika usitnjavanja ciklusa na primeru sinteze staze podataka SRA kola. Kao to se vidi na Sl. 5.22(a), ASM dijagram je modifikovan uvoenjem uglastih zagrada koje ukazuju da e rezultat biti dostupan tek u nekom od sledeih stanja ili je izraunavanje uokvirenog izraza ve zapoeto u nekom od prethodnih stanja. Na primer, naredba registarskog prenosa [t4] =(min(t1,t2)) >> 1 ukazuje da e promenljiva t4 dobiti novu vrednost u nekom od sledeih stanja. Slino, izraz t4 =[(min(t1,t2)) >> 1] kazuje da u tekuem stanju promenljiva t4 dobija novu vrednost, pri emu je izraunavanje izraza uokvirenog uglastim zagradama zapoeto u nekom od prethodnih stanja. Kao to se vidi na Sl. 5.22(c), ovakav ASM dijagram se lako prevodi u stazu podataka sa ugraenom jedinicom sa usitnjenim ciklusima. Uoimo da ASM dijagram sa Sl. 5.22(a) sadri jedno dodatno stanje (s3). Naime, s obzirom da izraunavanje izraza t4 = (min(t1,t2)) >> 1 traje dva taktna ciklusa, operandi t1 i t2 moraju biti prisutni na ulazim funkcionalne jedinice min, tj. na magistralama Bus1 i Bus2, za sve to vreme, to ima za posledicu odlaganje izvrenja naredbe t5=x-t3 za jedan taktni ciklus.

208

Sinteza staze podataka

Sl. 5.22 Staza podataka sa sporom funkcijskom jedinicom.

U odeljcima 5.5 i 5.6 ukazano je kako se performanse staze podataka mogu poboljati ulanavanjem brzih funkcionalnih jedinica i kako se cena staze podataka moe sniziti korienjem jedinica sa usitnjenim ciklusima. Kao to se moe oekivati, prethodno opisane tehnike za grupisanje promenljivih, operatora i veza, mogu se uoptiti kako bi bile primenljive u kombinaciji sa tehnikama ulanavanja i usitnjavanja ciklusa. 5.7 Protone funkcionalne jedinice

Do sada je bilo rei o razliitim tehnikama za smanjenje cene staze podataka, to je uglavnom bilo ostvareno smanjenjem broja registara, funkcionalnih jedinica i veza. U ovom odeljku, panja e biti posveena tehnikama za poboljanje performansi staze podataka. Najznaajnija tehnika za poboljanje performansi digitalnih sistema jeste protonost. Protona staza podataka nalikuje montanoj fabrikoj liniji kojom se proizvod kree od jednog do drugog radnog mesta. Na svakom radnom mestu preduzimaju se uvek iste operacije nad svakim proizvodom, ali svako radno mesto obavlja razliite zadatke u montai proizvoda. Na ovaj nain se znaajno poveava broj montiranih proizvoda u jedinici vremena. Protonosti se moe uvesti na nivou funkcionalnih jedinica, staze podataka ili upravljake jedinice. Na nivou funkcionalne jedinice, uvoenje protonosti se sastoji u podeli jedinice na dva ili vie stepena (delova) razdvojenih registrima tako da svaki stepen moe da obrauje razliite skupove operanada. Tako, u bilo kom trenutku, u protonoj funkcionalnoj jedinici boravi nekoliko skupova operanada tanije, broj skupova operanada u protonoj jedinici jednak je broju stepena. Korienje protonih funkcionalnih jedinica ne utie na vreme koje je potrebno za generisanje rezultata za prvi skup operanada, i jednako je vremenu koje bi inae bilo potrebno da se rezultat izrauna u funkcionalnoj jedinici koja nije protona. Meutim, za svaki sledei skup operanada, rezultat je dostupan ve nakon vremena koje je jednako kanjenju kroz jedan stepen. Na primer, kod dvo-stepene protone jedinice sa neprotonim kanjenjem od 100ns, rezultat za prvi skup operanada generie se za 100ns, ali je zato rezultat za drugi skup operanada, kao i za svaki sledei, dostupan na izlazu jedinice nakon 50ns. U optem sluaju, vreme potrebno za generisanje rezultata n-to stepene protone jedinice je n puta krae od neprotonog vremena izvrenja, sa izuzetkom prvog rezultata. Kao primer protone funkcionalne jedinice, razmotrimo dvo-stepenu aritmetiku jedinicu (AU) sa Sl. 5.23. Ova protona jedinica je dobijena umetanjem tri registra za podatke i jednog registra za upravljake signale po sredini izmeu ulaznih i izlaznih portova neprotone AU sa Sl. 5.13(d). Prilikom projektovanja 2-stepene protone jedinice treba teiti da registri budu postavljeni po sredini kritinog puta, kako bi kanjenje oba stepena bilo priblino isto i jednako polovini kanjenja kroz neprotonu verziju jedinice. U tom sluaju, protona

209

Arhitektura mikrosistema

jedinica moe da radi sa taktnim ciklusom koji je priblino dva puta krai u odnosu na taktni ciklus neprotone jedinice. Napomenimo da to nije sluaj u konkretnom primeru protone AU poto treba oekivati da je kanjenje sabiraa vee od kanjenja kroz dva multipleksera. U optem sluaju, taktni ciklus protone jedinice odreen je najduim kanjenjem kroz neki stepen. Kao to je ve reeno, protonoj jedinici su i dalje potrebna dva taktna ciklusa (ili stanja) za izraunavanje rezultata; u prvom taktnom ciklusu, parcijalni rezultat (meurezultat) se pamti u registrima; u drugom taktnom ciklusu drugi stepen generie konani rezultat, dok, u isto vreme prvi stepen generie parcijalni rezultat za sledei skup operanada, i tako dalje za svaki sledei skup operanada.

a c0 c1 c2

Lecevi

Sabirac

Bit znaka 1 0

Mux

Mux Da bi smo uporedili performanse protonih i neprotonih funkcionalnih jedinica, razmotrimo stazu podataka SRA kola koja sadri samo jednu, neprotonu AU koja je u stanju da obavlja operacije: minimum, Sl. 5.23 Protona aritmetika jedinica. maksimum, odreivanje apsolutne vrednosti, sabiranje i oduzimanje (Sl. 5.24(b)). Ovakva staza podataka zahteva devet stanja (ili devet taktnih ciklusa) za izraunavanje rezultata po SRA algoritmu (ponovo prikazan na Sl. 5.24(a)). Sa druge strane, staza podataka sa Sl. 5.24 se moe redizajnirati tako to e se neprotona AU zameniti dvo-stepenom protonom AU, kao sto je prikazano na Sl. 5.25(a). Nova staza podataka zahteva 13 stanja, ili taktnih ciklusa, za izraunavanje rezultata po SRA algoritmu, kao to je prikazano na vremenskom dijagramu sa Sl. 5.25(b).

Sl. 5.24 Staza podataka sa jedinstvenom neprotonom AU.

210

Sinteza staze podataka

U vremenskom dijagramu sa Sl. 5.25(b) postoji posebna vrsta za svako registarsko itanje ili upis, kao i za svaki stepen protone AU i jedinice za pomeranje. Svaka kolona predstavlja jedno stanje upravljake jedinice, a njen sadraj ukazuje na vrednosti koje se itaju ili upisuju u pojedine registre, odnosno na operacije koje se obavljaju u stepenima AU jedinice i pomeraima. Kao to se vidi, u stanju s0, vrednosti a i b uzimaju se sa ulaznih portova i smetaju u registre R1 i R2. U stanju s1 ita se vrednost a iz registra R1, delimino se izraunava njena apsolutna vrednost (u prvom stepenu AU) i parcijalni rezultat se pamti u registrima koji razdvajaju dva stepena protone AU. Zatim, u stanju s2 staza podataka zavrava izraunavanje |a| i dodeljuje ovu vrednost promenljivoj t1, koja se pamti u registru R1. U isto vreme, u stanju s2, staza podataka zapoinje izraunavanje |b| i pamti parcijalni rezultat u protone registre. Znai, u stanju s2, oba stepena AU jedinice su aktivna, mada, obrauju razliite operande. U stanju s3 staza podataka zavrava izraunavanje |b| i rezultat dodeljuje promenljivoj t2, koja deli registar R2. Uoimo da u ovom trenutku, staza podataka jo uvek ne moe da zapone sledeu 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 zapoinje novu operaciju, iako je njen prvi stepen slobodan. Slino, staza podataka u stanjima s4, s5 i s6 zapoinje izraunavanje maksimuma, minimuma i razlike, koje zavrava, ukljuujui i pomeranje, u stanjima s5, s6, i s7. Staza podataka ne moe da zapone sabiranje sve do stanja s8, poto mora da eka da vrednost koja je prethodno dodeljena promenljivoj t5 postane dostupna. Slino, operacija max zapoinje u stanju s10 i zavrava se u stanju s11. Konano, u stanju s12, rezultat se postavlja na izlazni port, Izl. Shodno vremenskom dijagramu sa Sl. 5.25(b), izvrenje SRA algoritma u stazi podataka sa Sl. 5.25(a) traje 13 stanja ili ciklusa. Meutim, kako je ve reeno, trajanje taktnog ciklusa je dva puta krae u odnosu na neprotono reenje. To praktino znai da, mereno taktnim periodom neprotone staze podataka, staza podataka sa protonom AU zahteva est i po ciklusa, umesto devet, to su bolje performanse u odnosu na bilo koje neprotono reenje koje smo do sada razmatrali.

(a) staza podataka sa protonom AU. s0 R1 itanje R2 itanje R3 itanje AU stepen 1 AU stepen 2 Pomerai R1 upis R2 upis R3 upis Izl a b |a| |b| |a| t1 t2 s1 s2 s3 s4 t1 t2 max |b| s5 t1 t2 min max >>3 x t3 s6 x t3 min >>1 s7 s8 t5 t4 + + s9 x t6 max max t7 t5 t4 t7 (b) Vremenski dijagram Sl. 5.25 Staza podataka sa protonom funkcijskom jedinicom. t6 s10 s11 s12 t7

a b

211

Arhitektura mikrosistema

5.8

Protonost staze podataka

U prethodnom odeljku pokazano je kako se performanse staze podataka mogu poboljati uvoenjem protonosti u funkcionalne jedinice. Meutim, ako staza podataka obavlja isto izraunavanje nad razliitim skupovima operanada, dodatno poboljanje performansi moe se postii uvoenjem protonosti na nivou ASM dijagrama. To se postie tako to se polazni ASM dijagram podeli na nekoliko segmenata iste veliine, a zatim se za svaki takav segment projektuje zaseban stepen staze podataka. Na taj nain, formira se staza podataka koja se sastoji od niza redno povezanih segmenata, od kojih je svaki za sebe, po strukturi, staza podataka. Svi stepeni staze podataka, u paraleli, obrauju razliite skupove operanada i generiu parcijalne rezultate koji se koriste u sledeem stepenu. Kao primer uvoenja protonosti u ASM dijagram, razmotrimo dijagram sa Sl. 5.26, koji opisuje SRA algoritam. ASM dijagram sa Sl. 5.26(a) realizovan je u obliku beskonane petlje sa devet uzastopnih stanja. Petlja se neprekidno ponavlja, bez ekanja na neki spoljni aktivacioni signal (kao to je signal Start, kod prethodno razmatranih verzija ASM dijagrama koji su opisivali SRA algoritam). Pretpostavlja se da je novi skup operanada dostupan na ulaznim portovima, In1 i In2, svakih 10 taktnih ciklusa. Ovakav ASM dijagram se moe lako podeliti na dva segmenta, tako da stanja s0 do s4 ine prvi, a stanja s5 do s8 drugi segment. Na Sl. 5.26(a) granica izmeu dva segmenta je naznaena punom linijom izmeu stanja s4 i s5. Dakle, SRA algoritam je podeljen na dva dela, sa ciljem da svaki deo obrauje zasebna staza podataka. Dvostepena staza podataka, koja je u stanju da realizuje protoni ASM dijagram sa Sl. 5.26(a), prikazana je na Sl. 5.26(b). Prvi stepen staze podataka ukljuuje: dva registra, R1 i R2, jednu AU jedinicu i dva pomeraa. Drugi stepen staze podataka ine: tri registra R3, R4 i R5 i jedna AU. Nain na koji su promenljive ASM dijagrama dodeljene registrima prikazan je na Sl. 5.26(c).

(a) ASM dijagram

(b) Protona staza podataka

(c) Dodela registara i funkcionalnih jedinica

212

Sinteza staze podataka

n-ti par s0 R1 itanje R2 itanje AU stepen 1 Pomerai R1 upis R2 upis R3 itanje R4 itanje R5 itanje AU stepen 2 R3 upis R4 upis R5 upis a |a| a b t1 t2 t3 x t5 t5 t4 + t6 b |b| s1 s2 s3 t1 t2 min >>1 s4 t1 t2 max >>3 s5 s6

(n+1) - par s7 s8 s9

STEPEN 1

t6 x max t7

t7

STEPEN 2

t3 x t4

n-ti par (d) Vremenski dijagram Sl. 5.26 Protona staza podataka.

Na Sl. 5.26(d) prikazan je vremenski dijagram koji opisuje vremenski sled operacija u protonoj 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 odgovarajue vrednosti promenljivama t1, t2, t3, x i t4 i upie poslednje tri promenljive u registre R3, R4 i R5, koji se mogu smatrati registrima koji razdvajaju dva protona stepena staze podataka. Za procesiranje drugog segmenta ASM dijagrama u drugom stepenu staze podataka potrebna su samo etiri taktna ciklusa, poto su registri R3, R4 i R5 ve napunjeni od strane prvog stepena. Sve ukupno, izvrenje jedne iteracije petlje SRA algoritma traje devet taktnih ciklusa. Meutim, s obzirom da oba stepena staze podataka rade u paraleli, vano je uoiti da je prvi stepen spreman da prihvati novi skup ulaznih operanada na svakih pet taktnih ciklusa. Tanije, prvi stepen izraunava parcijalni rezultat (n+1)-vog skupa operanada u isto vreme kada drugi stepen zavrava izraunavanje konanog rezultata n-tog skupa operanada. Znai, ako staza podataka obrauje ukupno n sukcesivnih parova operanada, potrebno je 5n+4 taktna ciklusa da bi se zavrilo izraunavanje rezultata za sve parove. Kao poreenje, napomenimo da se u neprotonoj stazi podataka sa jednom AU i dva pomeraa isti posao obavi za 9n taktnih ciklusa.
s0 R1 itanje R2 itanje R3 itanje AU1 stepen 1 AU1 stepen 2 Pomerai R1 upis R2 upis R3 itanje R4 itanje R5 itanje AU2 stepen 1 AU2 stepen 2 R3 upis R4 upis R5 upis Izl a |a| s1 s2 b |b| |a| s3 s4 t1 t2 min |b| s5 t1 t2 max min >>1 s6 s7 s8 s9 s10 s11 s12 s13

max >>3

a b

t1 t2 t3 x t3 x t4 t5 t5 t4 + + t6 t6 x max max t7 t4 t7 t3 x t7

Sl. 5.27 Vremenski dijagram protone staze podataka sa protonim funkcionalnim jedinicama.

213

Arhitektura mikrosistema

Performanse mogu biti jo i bolje ako se u protonu stazu podataka ugrade protone funkcionalne jedince. Na primer, ako neprotone AU iz protone staze podataka sa Sl. 5.26(b) zamenimo odgovarajuim 2-stepenom protonim AU jedinicama dobiemo 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 izraunavanje svog rezultata. Meutim, kako je sada trajanje svakog stanja dva puta krae u odnosu na trajanje stanja u reenju sa Sl. 5.26(zato to koristimo 2-stepenu protonu AU), nova staza podataka izraunava SRA algoritam za (72)n + (72) = 3.5n + 3.5 taktnih ciklusa, u poreenju sa 5n+4 taktna ciklusa, koliko je potrebno kod realizacije koja koristi neprotone funkcionalne jedinice. Drugim reima, uvoenje dvo-stepene protonosti u stazu podataka kombinovano sa korienjem dvo-stepenih protonih funkcionalnih jedinica ima za posledicu smanjenje vremena izvrenja na priblino jednu treinu vremena izvrenja kod reenja gde se protonost ne koristi. Dakle, performanse su poboljane za faktor 3. 5.9 Protone upravljake jedinice

U odeljcima 5.7 i 5.8 razmatrano je uvoenje protonosti na nivou funkcionalnih jedinica i nivou staze podataka. Protonost na nivou staze podataka omoguava konkurentnu obradu razliitih skupova operanada, to smanjuje ukupno vreme potrebno za izvrenje datog algoritma. Uvoenje protonosti na nivou funkcionalnih jedinica smanjuje maksimalno propagaciono kanjenje u stazi podataka, to ima za posledicu poveanje stope iskorienosti razliitih komponenata staze podataka i skraenje taktnog ciklusa. Meutim, vano je napomenuti da najdue propagaciono kanjenje, obino, prolazi kroz upravljaku jedinicu, kao to je to sluaj u strukturi sa Sl. 5.28(a) gde je kritini put, u smislu propagacionog kanjenja, onaj koji polazi sa izlaza registra tekueg stanja i zavrava se na ulazu tog istog registar. Naravno, do izvesne mere, ovo kanjenje varira u zavisnosti od toga da li upravljaki signali zavise od statusnih signala ili ne, to je na Sl. 5.28(a) naznaeno isprekidanom linijom. Ako se statusni signali koriste samo za odreivanje sledeeg stanja, ali ne utiu na formiranje upravljakih signala, kritini put polazi od izvora taktnog signala, do izlaza registra tekueg stanja, zatim preko izlazne logike, registarskog fajla, i ALU, a onda preko statusnih signala do izlaza logike sledeeg stanja nazad do ulaza u registar tekueg stanja, ukljuujui i vreme postavljanja (set_up time) ovog registra. Sa druge strane, ako se neki od statusnih signala koriste za odreivanje upravljakih signala, kritini put je dui, poto prolazi dva puta kroz stazu podataka: prvi put da bi se odredili statusni signali, a drugi put da bi se formirali upravljaki signali i obavila odgovarajua obrada vrednosti koje su zapamene u registrima staze podataka. U ovom sluaju, kritini put polazi sa izvora taktnog signala, dolazi do izlaza registra tekueg stanja, a onda preko izlazne logike, registarskog fajla, ALU ponovo kroz izlaznu logiku, a onda dalje preko registarskog fajla ili memorije, mnoaadelitelja i nazad do registra ili registarskog fajla, ukljuujui vreme postavljanja registra ili registarskog fajla. U svakom sluaju, kritini put prolazi kroz upravljaku jedinicu. Shodno tome, ako elimo da poboljamo performanse tako to emo skratiti kritini put, potrebno je kritini put podeliti na vie delova i umetnuti registre izmeu njih. Na primer, na Sl. 5.28(b), registri su postavljeni na tri razliita mesta. Prvo, uveden je statusni registar, postavljen izmeu staze podataka i upravljake jedinice tako da se svi statusni signali koji naputaju stazu podataka upisuju u ovom registru, gde za svaki statusni signal postoji jedan flip-flop. Drugo, izmeu staze podataka i upravljake jedinice umetnuti je upravljaki registar tako da se svi upravljaki signali generisani od strane izlazne logike upisuju u ovaj registru, gde za svaki upravljaki signal postoji jedan flip-flop. Konano, sama staza podataka je uinjena protonom, tako to su izmeu memorijskih jedinica (registar, registarski fajl i memorija) i funkcionalnih jedinica (ALU, mnoadelitelj) umetnuti protoni registri.

214

Sinteza staze podataka

(a) Standardna (neprotona) realizacija upravljake jedinice i staze podataka


Ulazi staze podataka Upravljacki ulazi Upravljacki signali

Multiplekser

Registar

Registarski fajl

Memorija

. . .

Logika sledeceg stanja

. . .

Registar sledeceg stanja

. . .

Izlazna logika

Bus1 Bus2

AU2
Statusni signali

*/

- Upravljacka jedinica Upravljacki izlazi

Registar

- Staza podataka -

Izlazi staze podataka

(b) Protona realizacija upravljake jedinice i staze podataka Sl. 5.28 Uvoenje protonosti u upravljaku jedinicu i stazu podataka.

U optem sluaju, glavne projektantske odluke koje se tiu uvoenja protonosti u stazu podataka i upravljaku jedinicu donose se jo u fazi konstrukcije ASM dijagrama. Radi ilustracije, razmotrimo ASM dijagram sa Sl. 5.29(a), koji u svom poetnom obliku ima tri stanja. U prvom stanju, s1, testira se uslov a>b, a onda se prelazi u stanje s2, ako nejednakost nije tana, odnosno u stanje s3, ako je nejednakost tana. U stanju s2 obavlja se naredba x=c*d, a u stanju s3 naredba y=x-1. ASM dijagram ovog oblika ne pretpostavlja bilo kakvu protonost u svojoj implementaciji.

215

Arhitektura mikrosistema

Sl. 5.29 dijagrami za protonu realizaciju.

Meutim, ako predvidimo statusni registar, kao deo protone organizacije upravljake jedinice, neophodno je, shodno tome, modifikovati i sam ASM dijagram. Modifikacija se sastoji u uvoenju nove, statusne promenljive, Stat. U stanju s1, rezultat poreenja a>b (tanonetano) dodeljuje se promenljivoj Stat, koja se potom, u stanju s2, koristi za grananje (Sl. 5.29(b)). S obzirom da u jednom taktnom ciklusu nije ostvarivo izvriti upis nove vrednosti u statusnu promenljivu, a zatim jo i obaviti grananje u odnosu na tu novu vrednost, neophodno je uvesti dodatni taktni ciklus (stanje s2 na Sl. 5.29(b)) koji e vremenski razdvojiti ove dve aktivnosti. Dakle, upis u promenljivu Stat se obavlja u trenutku prelaza u stanje s2, a vrednost promenljive Stat se testira u toku stanja s2. Slino, ako uvedemo upravljaki i statusni registar, tada e biti neophodno u ASM dijagram ubaciti dva nova stanja (Sl. 5.29(c)). Naime, izraunavanje nejednakosti a>b se inicira u stanju s1, ali kako izmeu upravljake jedinice i staze podataka postoji registar (upravljaki registar), upravljaki signali koji treba da u stazi podataka iniciraju ovo izraunavanje, kasne za jedan taktni ciklus, tj. dolaze do staze podataka u trenutku prelaza u stanje s2. U toku stanja s2, u stazi podataka se izraunava nejednakost a>b, i formira odgovarajui statusni signal. Meutim, kako izmeu staze podataka i upravljake jedinice postoji registar (statusni registar), statusni signal stie do logike sledeeg stanja sa jednim taktnim ciklusom zakanjenja, tj. u trenutku prelaska u stanje s3. Konano, stanje s3 se koristi za odreivanje novog stanja na osnovu vrednosti statusnog signala. Konano, ASM dijagram sa Sl. 5.29(d) odgovara situaciji kada osim statusnog i upravljakog registra koji razdvajaju upravljaku jedinicu i stazu podataka, u samoj stazi podataka postoje i protoni registri koji dele stazu podataka na dva protona stepena. Uvoenje dvo-stepene protonosti u stazu podataka poveava kanjenje u izraunavanju nejednakosti a>b za jedan taktni ciklus, to je razlog za uvoenje novog stanja s4. Takoe, kao to se moe videti na Sl. 5.29(d), izmeu stanja s5 i s7 umetnuto je prazno stanje s6. To je zato to naredba registarskog prenosa y=x-1, iz stanja s7, koristi novu vrednost promenljive x ije se izraunavanje inicira u stanju s5, ali zbog dvo-stepene protonosti staze podataka, traje dva taktna ciklusa. Opisani primeri jasno pokazuju da su esto neophodne znaajne modifikacije ASM dijagrama kako bi se precizno opisalo ponaanje protonog sistema. Ove modifikacije imaju za posledicu poveanja broja stanja, tj. vremena izvrenja algoritma merenog brojem taktnih ciklusa. Meutim, poto, sa druge strane, uvoenje protonosti omoguava skraenje trajanja taktnog ciklusa, vreme izvrena algoritma, mereno u sekundama, po pravilu je krae u odnosu na neprotonu realizaciju. 5.10 Rasporeivanje operacija U prethodnim odeljcima ovog poglavlja opisano je vie tehnika za transformaciju ASM dijagrama u strukturu koju ine upravljaka jedinica i staza podataka. U optem sluaju, sinteza na bazi ASM dijagrama zasnovana je na modelu koji eksplicitno definie stanja, prelaze izmeu stanja i naredbe dodele koje se obavljaju u svakom stanju. Naalost, polazna specifikacija funkcionalnih zahteva, obino, nije dostupna u obliku ASM dijagrama,

216

Sinteza staze podataka

ve je dostupna u obliku matematike formule, softverskog programa ili softverskog dijagrama toka. Ni jedan od ovih naina ne podrava koncept stanja, mada svaki od njih, implicitno ili eksplicitno, definie redosled izvrenja naredbi dodele. Dakle, glavna razlika izmeu programskih jezika ili dijagrama toka, sa jedne i ASM dijagram, sa druge strane, jeste u tome to kod prvih ne postoje granice izmeu stanja niti su naredbe dodele vezane za pojedina stanja. Da bi smo standardni program ili dijagram toka transformisali u ASM dijagram, neophodno je vreme izvrenja algoritma podeliti na niz vremenskih intervala, tj. stanja, a onda svaku naredbu dodele pridruiti nekom stanju. Drugim reima, neophodno je obaviti rasporeivanje naredbi dodele, ili operacija, po stanjima, ali tako da se ne narue ogranienja koja se odnose na redosled izvrenja operacija, raspoloivost resursa u stazi podataka ili na maksimalno dozvoljeno vreme izvrenja algoritma. U ovom poglavlju bie opisana dva pristupa za transformaciju softverskog dijagrama toka u ASM dijagram, tj. dva tipa eduling3 algoritama: (1) resursima ogranien eduling ili RC eduling (resourceconstrained scheduling) i (2) vremenom ogranien eduling, ili TC eduling (time-constrained scheduling). Rasporeivanju operacija uvek prethodi konverzija programa ili dijagrama toka u jedan specifian graf koji se zove graf upravljanja i toka podataka ili CDFG (CDFG - controldataflow graph) koji osim toka algoritma (grananja, petlje) eksplicitno pokazuje i zavisnosti po podacima koje postoje izmeu naredbi dodele. Drugim reima, CDFG zadrava upravljaku 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 izmeu 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 sainjenu od redno i paralelno povezanih blokova dodele i blokova odluivanja (grananja), CDFG se razlikuje od standardnog dijagrama toka samo u reprezentaciji blokova dodele. Naime, kod dijagrama toka, blok dodele sadri sekvencu naredbi dodeljivanja; kod CDFG, blok dodele sadri isti skup naredbi, ali prikazan u vidu DFG grafa. Na Sl. 5.30 prikazan je primer dijagram toka i odgovarajui CDFG: Sl. 5.30(a) prikazuje dijagram toka SRA algoritma, a Sl. 5.30(b) odgovarajui CDFG.
Ul1 a = Ul1 b = Ul2 a b 0 Start 1 a b Ul2

Start 1

|a|

|b|

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

min

max

>>1

>>3

+
max

Izl

Obavljeno

(a) Dijagram toka

(b) CDFG

Sl. 5.30 CDFG graf za SRA algoritam.

eduling scheduling je engleska re koja znai planiranje u smislu odreivanja vremenskog rasporeda skupa aktivnosti, kao to je pravljenje rasporeda asova, voznog reda ili organizacija izraunavanja skupa operacija na funkcionalnim jedinicama.

217

Arhitektura mikrosistema

DFG odslikava ogranienja u pogledu redosleda izvrenja operacija. Naime, izvrenje operacije, predstavljene vorom u DFG grafu, moe da pone tek onda kada su svi neposredni prethodnici tog vora izvreni. To praktino znai da dve operacije povezane putanjom u DFG grafu moraju biti izvravane u razliitim stanjima. Odnosno, dve operacije mogu biti izvravane u paraleli, tj. u okviru istog stanja, samo ako nisu povezane putanjom u DFG grafu. Minimalno vreme izvrenja DFG grafa odreeno je najduom putanjom, tj. kritinim putem, DFG grafa. CDFG predstavlja polaznu osnovu za kreiranje tzv. rasporeenog CDFG grafa, koji je, u sutini, ekvivalentan ASM dijagramu. Rasporeivanje 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 izvrena, i to na nain da su sva ogranienja u pogledu redosleda izvrenja, nametnuta CDFG grafom, ispotovana. Jednom CDFG grafu, obino, odgovara veliki broj alternativnih rasporeenih 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 nee uvek biti mogue u isto stanje rasporediti sve one operacije koje bi inae mogle biti izvravane u paraleli. To moe imati za posledicu produenje vremena izvrenja. Cilj RC edulinga je nai takav raspored operacija po stanjima koji e obezbediti najkrae vreme izvrenja 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 izvri u unapred zadatom vremenu. Pre nego to RC i TC eduling algoritmi budu objanjeni sa vie detalja, razmotriemo dva pomona eduling algoritma, ASAP (as-soon-as-possible - to je ranije mogue) i ALAP (as-late-as-possible - to je kasnije mogue), koji se esto koriste u sklopu drugih, sloenijih eduling algoritama u cilju odreivanja prioriteta operacija radi njihovog rangiranja u toku rasporeivanja. 5.10.1 Algoritmi ASAP i ALAP Algoritmi ASAP i ALAP podrazumevaju da vreme izvrenja svake operacija traje tano jedan taktni ciklus i da je broj funkcionalnih jedinica, ili resursa, u stazi podataka neogranien. Drugim reima, jedina ogranienja o kojima ova dva algoritma vode rauna su zavisnosti po podacima. ASAP algoritam rasporeuje svaku operaciju u najranije stanje u kome su svi njeni operandi dostupni. Algoritam radi tako to prolazi kroz DFG, od vrha prema dnu, i svakom stanju dodeljuje sve vorove iz grafa iji su prethodnici (ili roditeljski vorovi) ve dodeljeni nekom od prethodnih stanja. Na taj nain, nikada se nee desiti da dva nezavisna vora budu a b a b dodeljena razliitim stanjima, a to znai da ASAP algoritam generie raspored koji ima najmanji mogui s1 |a| |b| |a| |b| broj stanja, tj. najkrae vreme izvrenja, a koje je t t t t jednako broju operacija (vorova) na kritinom putu DFG grafa.
1 2 1 2

Za razliku od ASAP pristupa, ALAP algoritam rasporeuje svaku operaciju u najkasnije stanje pre stanja u kome je rezultat te operacije potreban kao operand nekoj od operacija koje su njeni neposredni naslednici u DFG grafu. Pri tome, duina rasporeda (tj. vreme izvrenja izraeno brojem stanja u rasporeenom DFG), je unapred zadata veliina. ALAP algoritam prolazi kroz DFG od dna prema vrhu i svakom stanju, poev od najkasnijeg stanja konanog rasporeda, dodeljuje sve one operacije iji su svi neposredni naslednici ve dodeljeni nekom od kasnijih stanja. Ako je zadata duina rasporeda jednaka broju stanja u rasporedu koji je dobijen ASAP algoritmom, tada e ALAP algoritam rasporediti sve vorove sa kritinog puta DFG grafa u ista stanja u koja ih je rasporedio i ASAP algoritam. Kod rasporeda dobijenog ASAP algoritmom, operacije koje nisu na kritinom putu izvravaju se ranije nego to je to neophodno. Suprotno, kod rasporeda dobijenog ALAP algoritmom, operacije koje nisu na kritinom putu, izvravaju se to je kasnije mogue.

s2

min

max

max

s3

>>1 t4

>>3 t3

min

>>3 y t3

s4

t5

>>1 t4

t5

s5

+
t6

+
t6

s6

max

max

t7

t7

s7

Izl

Izl

(a) ASAP raspored

(b) ALAP raspored

Sl. 5.31 ASAP i ALAP eduling.

218

Sinteza staze podataka

Na Sl. 5.31 ilustrovana je primena ASAP i ALAP eduling algoritama na DFG iz veeg od dva bloka dodele CDFG grafa sa Sl. 5.30. Kao to se moe videti, oba rasporeda zahtevaju sedam stanja, a osim operacija min i >>1 sve ostale operacije su na kritinom putu. Operacije min i >>1 rasporeene su to je ranije mogue (stanja s2 i s3), kod ASAL rasporeda, odnosno, to je kasnije mogue (stanja s3 i s4), kod ALAP rasporeda. Operacije sa kritinog puta mogu se smatrati nekom vrstom kostura u rasporedu, jer je njihova pozicija (dodeljeno stanje) fiksirana u smislu da svako odlaganje startovanja operacije sa kritinog puta direktno poveava duinu rasporeda. Sa druge strane, operacije koje nisu na kritinom putu poseduju izvesnu pokretljivost, u smislu da za svaku takvu operaciju postoji opseg stanja kome operacija moe biti dodeljena, a da to nema uticaja na ukupnu duinu rasporeda. Na primer, sa stanovita ukupnog vremena izvrenja algoritma, potpuno je sve jedno da li e operacije min i >>1 biti izvrene u stanjima s2 i s3 ili u stanjima s3 i s4. Meutim, ako se, na primer, izvrenje operacija -, koja pripada kritinom putu, odloi za jedno stanje, i operacija izvri u stanju s5 umesto u stanju s4, to e vremenski pomeriti izvrenje za jedno stanje svih operacija koje su na kritinom putu, a slede nakon operacije -, a to su operacije +, max i operacija postavljanja rezultata na izlazni port, to e kako posledicu imati produenje vremena izvrenja algoritma na osam stanja. 5.10.2 Prioriteti operacija injenica da algoritmi ASAP i ALAP rasporeuju kritine operacije u ista stanja, koristi se kod sloenijih eduling algoritama za razdvajanje kritinih od nekritinih operacija. Veina eduling algoritama radi tako to u svakom koraku rasporeuje po jednu operaciju, pri emu se kao sledea operacija za rasporeivanje uvek bira ona koja po nekom kriterijumi ima najvii prioritet u odnosu na preostale nerasporeene operacije. Tipino, najvii prioritet se daje operacijama koje su na kritinom putu, s obzirom da je dovoljno da se izvrenja bilo koje od ovih operacija odloi za jedno stanje, pa da to uslovi produenje ukupnog vremena izvrenja za jedan taktni ciklus. Sa druge strane, nii prioritet se obino daje operacijama koje nisu na kritinom putu, poto one imaju veu fleksibilnost u smislu mogunosti rasporeivanja u vie razliitih stanja, a da to nema uticaja na vreme izvrenja celokupnog DFG grafa. U toku rasporeivanja, za procenu prioriteta operacija mogu se koristiti razliite metrike. Jedna od esto korienih metrika je pokretljivost ili mobilnost operacije, koja je jednaka rastojanju, izraenom brojem stanja, izmeu stanja koje je dodeljeno operaciji primenom ASAP algoritma i stanja koje je dodeljeno toj istoj operaciji primenom ALAP algoritma. Drugim reima, ako je neka operacija op, primenom algoritma ASAP, rasporeena u stanje si, a primenom algoritma ALAP u stanje sk, tada je pokretljivost ove operacije, M(op), jednaka k-i. Znai, mobilnost definie sposobnost operacije da bude odloena bez uticaja na ukupno vreme izvrenja. Drugim reima, operacije sa veom pokretljivou imaju nii prioritet. Druga metrika, koja se moe koristiti za procenu prioriteta operacija, zasnovana je na kriterijumu koji se zove ugrentnost operacije. Urgentnost operacije jednaka je rastojanju, izraenom brojem stanja, izmeu stanja u kome je operacija raspoloiva za rasporeivanje i stanja u koje je ta operacija rasporeena primenom algoritma ALAP. Drugim reima, neka je u stanju si operacija op raspoloiva za rasporeivanje (svi njeni prethodnici su ve rasporeeni u nekim od prethodnih stanja) i neka je sk stanje koje je toj operaciji dodeljeno primenom ALAP algoritma. Tada je urgentnost operacije op u stanju si, U(op), jednaka k-i. to je U(op) manje, to je urgentnost operacije, a time i njen prioritet, vea. Za razliku od mobilnosti, koja predstavlja statiku meru, u smislu da je odreena jedino pozicijom operacije u DFG grafu, i ne menja se u toku rasporeivanja, urgentnost predstavlja dinamiku meru, koja se menja u toku rasporeivanja i koja osim od pozicije operacije u DFG grafu, zavisi i od trenutne situacije u rasporedu koje se formira. Na primer, u stanju u kome neka operacija op postaje raspoloiva za rasporeivanje, urgentnost operacije je jednaka njenoj mobilnosti, U(op)=M(op). Ukoliko se operacija ne rasporedi u to stanje, ve se, iz bilo kog razloga, njeno rasporeivanje odloi za neko naredno stanje, vrednost U(op) u prvom sledeem stanju postaje za jedan manja od mobilnosti, U(op)=M(op)-1. To praktino znai da prioritet operacije raste kako se rasporeivanje operacije odlae, a stanje dodeljeno operaciji ALAP algoritmom, sk, pribliava. Ukoliko je eduling algoritam stigao sa rasporeivanjem do stanja sk, a pri tom jo uvek nije rasporedio operaciju op, urgentnost ove operacije postaje U(op)=0, to odgovara prioritetu operacije sa kritinog puta. Trea metrika za procenu prioriteta operacaija najvii prioritet daje operaciji ijim se rasporeivanjem maksimizuje broj operacija koje postaju raspoloive za rasporeivanje. Pored navedenih, postoji jo nekoliko drugih mera prioriteta operacija, ali ni jedna od njih, ukljuujui i navedene, ne predstavlja najbolje reenje u svim sluajevima. Drugim reima, optimalna metrika za procenu prioriteta, ija bi primena garantovala optimalni raspored, ne postoji. ta vie, ni jedna metrika nije apsolutno bolja od ostalih, ve postoje sluajevi kada se najbolji rezultati dobijaju primenom jedne metrike, ali i sluajevi kada ta ista metrika daje lo rezultat.

219

Arhitektura mikrosistema

5.10.3 Resursima ogranieno rasporeivanje Jedan od najee korienih RC eduling algoritama je list-eduling algoritam. Ime ovog algoritma potie otuda to u radu koristi sortiranu listu spremnih operacija, tj. listu operacija koje su raspoloive za rasporeivanje. Kod lista-eduling algoritma, lista spremnih operacija sortirana je shodno mobilnost operacija, tako to se spremne operacije sa nultom mobulnou nalaze na poetku, a spremne operacije sa najveom mobilnou na kraju liste. U sluajevima kada dve operacije imaju istu mobilnost, prednost se moe dati urgentnijoj operaciji, tj. operaciji sa veom vrednou U(op). Ukoliko su dve operacije identine po oba prethodna kriterijuma, prednost se daje operaciji koja se bira na sluajan nain. List-eduling algoritam konstruie raspored stanje-po-stanje, pri emu za svako stanje ponavlja sledee aktivnosti: (1) operacije najvieg prioriteta iz liste spremnih operacija, jednu po jednu, dodeliti raspoloivim funkcionalnim jedinicama; (2) izbaciti iz liste sve operacije koje su dodeljene u koraku (1); (3) umetnuti u listu spremnih operacija sve operacije koje postaju raspoloive za rasporeivanje nakon koraka (1) i to na pozicije koje odgovaraju njihovim mobilnostima i urgentnostima. Dijagram toka list-eduling algoritma prikazan je na Sl. 5.32.
Pocetak

Primeniti ASAP algoritam

Primeniti ALAP algoritam

Odrediti mobilnosti operacija

Kreirati inicijalnu listu spremnih operacija

Sortirati listu spremnih operacija po mobilnosti

Operacije iz liste Rad list-eduling algoritma ilustrovan je na Sl. 5.33, na primeru DFG grafa rasporediti u tekuce iz bloka dodele sa Sl. 5.30(b), pod pretpostavkom da su na raspolaganju: (a) stanje jedna aritmetika jedinicom koja je u stanju da obavlja operacije: minimum, maksimum, sabiranje, oduzimanje i odreivanje apsolutne vrednosti i (b) dva Rasporedjene operacije pomeraa. Prvo, kreiraju se ASAP i ALAP rasporedi, kao to je prikazano na izbaciti iz liste Sl. 5.33(a) i Sl. 5.33(b). Zatim, formira se lista spremnih operacija za prvo stanje (Sl. 5.33(c)) i izraunaju mobilnosti operacija iz liste. U konkretnom Ubaciti u listu operacije sluaju, u prvom stanju, jedino su operacije |a| i |b| raspoloive za koje su postale spremne rasporeivanje. Poto obe operacije imaju istu pokretljivost (M(|a|)=M(|b|)=0), njihov redosled u listi spremnih operacija odreujemo na sluajan nain. Uvecati za jedan indeks Dajmo prednost operaciji |a| i postavimo je na poetak liste. Sada, uzimamo tekuceg stanja operaciju sa poetka liste, |a|, i rasporeujemo je u stanje s1. S obzirom da imamo na raspolaganju samo jednu aritmetiku jedinicu, operaciju |b| nije ne Sve operacije su mogue rasporediti u isto stanje gde i operaciju |a|, pa je time rasporeivanje rasporedjene? za prvo stanje, s1, zavreno. Kako rasporeivanje operacije |a| ne oslobaa ni da jednu operaciju, lista spremnih operacija za sada ostaje nepromenjena, a algoritam prelazi na rasporeivanje drugog stanja, s2. Jedina spremna operacija Kraj je |b|. Rasporeivanjem ove operacije u stanje s2, oslobaaju se dve nove operacije max i min, koje ubacujemo u listu spremnih operacija. Poto se Sl. 5.32 List-eduling operacija max nalazi na kritinom putu, njena pokretljivost je M(max)=0, to algoritam. joj daje prioritet u odnosu na operaciju min ija pokretljivost iznosi M(min)=1. Znai, za rasporeivanje u stanje s3, biramo operaciju max, to ima za posledicu oslobaanje operacije >>3. Poto je mobilnost ove operacije M(>>3)=0, ona se smeta na vrh liste spremnih operacija, ispred operacije min. U stanje s4 mogue je rasporediti obe operacije iz liste spremnih operacija, min i >>3, s obzirom da se one izvravaju na razliitim funkcionalnim jedinicama. Rasporeivanje operacija min i >>3 oslobaa operacije - i >>1, koje se nakon toga, obe rasporeuju u stanje s5. Na slian nain, algoritam nastavlja sa rasporeivanjem operacije + u stanje s6 i operacije min u stanje s7 i konano, postavljanje rezultata na izlazni port u stanje s8. Konani RC raspored prikazan je na Sl. 5.33(d).

Kao to je pokazano, cilj RC edulinga je da u svako stanje rasporedi to je mogue vie operacija imajui u vidu broj raspoloivih funkcionalnih jedinica. U stanjima kada je broj spremnih operacija vei od broja raspoloivih jedinica, koristi se prioritetna metrika, kao to je mobilnost ili urgentnost, da bi se odredilo koje operacije e biti rasporeene u tekue stanje, a koje biti odloene za naredno stanje. U konkretnom primeru, dobijen je raspored koji zahteve jedno stanje vie u odnosu na rasporede dobijene primenom ASAP i ALAP algoritama, ali zato ima niu cenu implementacije poto zahteva jednu aritmetiku jedinicu i dva pomeraa, za razliku od ASAP i ALAP rasporeda koji zahtevaju dve aritmetike jedinice i dva pomeraa.

220

Sinteza staze podataka

s1

|a|

|b|

|a|

|b|

|a|
0

|b|
0

|a|

s2

min

max

max

|b|
0

|b|

s3

>>1

>>3

min

>>3

max

min

max

s4

>>1

>>3 0

min

min

>>3

s5

>>1 1

>>1

s6

max

max

+
0

s7

max

max

0 Izl Izl

s8
Izl

(a) ASAP

(b) ALAP

(c) Lista spremnih operacija

(d) RC raspored

Sl. 5.33 RC eduling.

5.10.4 Vremenom ogranieno rasporeivanje U mnogim sluajevima, primarni cilj optimizacije nije cena ve performanse, u smislu da staza podataka mora da izvri dati algoritam za neko fiksno, unapred zadato vreme, bez obzira na cenu implementacije. Kada performanse predstavljaju primarni cilj, koriste se TC eduling algoritmi. Ova klasa algoritama generie raspored kod koga je broj stanja (tj. duina rasporeda, odnosno, vreme izvrenja) unapred zadat, pokuavajui, u isto vreme, da minimizuju broj potrebnih funkcionalnih jedinica u stazi podataka. Zadati cilj se postie tako to TC eduling algoritam tei da operacije istog tipa (izvravaju se na funkcionalnim jadnicama istog tipa) to ravnomernije rasporedi po stanjima. Uravnoteena raspodela operacija rezultuje u potpunijem iskorienju funkcionalnih jedinica, a time i minimizuje broj funkcionalnih jedinica svakog pojedinanog tipa. Na Sl. 5.34 prikazan je dijagram toka TC eduling algoritama. Kao to se vidi sa slike, na poetku rada, primenjuju se ASAP i ALAP algoritmi sa ciljem da se odrede opsezi mobilnosti svih operacija iz polaznog DFG grafa. Opseg mobilnosti operacije op je niz stanja OM(op)=(si, si+1, , sk), koji poinje stanjem si u koje je operacija op rasporeena ASAP algoritmom, a zavrava se stanjem sk u koje je operacija op rasporeena ALSP algoritmom. Na primer, opseg mobilnosti operacije >>1 sa Sl. 5.33 ine stanja OM(>>1)={s3, s4}. Pored DFG, ulaz u TC eduling algoritam je i zadato vreme izvrenja, izraeno brojem stanja u konanom rasporedu, T. Ovo vreme mora biti vee ili jednako kritinom putu DFG grafa, tj. duini rasporeda dobijenog primenom ASAP algoritma. Pri tome, ako je zadata duina rasporeda T=n stanja, tada konstrukcija ALAP rasporeda kree od stanja sn. Ako je zadata duina rasporeda jednaka duini kritinog puta DFG grafa, tada e opseg mobilnosti bilo koje operacije sa kritinog puta ini samo jedno stanje, u koje su tu operaciju rasporedila oba algoritma ASAP i ALAP. U suprotnom, ako je zadato vreme izvrenja za m stanja due od kritinog puta DFG grafa, tada e opseg mobilnosti svake operacije sa kritinog puta pored stanja u koje je operacija rasporeena ASAP algoritmom initi i m narednih stanja. TC eduling se zasniva na injenici da e duina konanog rasporeda ostati jednaka zadatoj duini T ukoliko se svaka operacija rasporedi u neko od stanja iz svog opsega mobilnosti. Praktino, TC eduling radi tako to uz potovanje obaveze da svaka operacija mora biti rasporeena u neko stanje iz svog opsega mobilnosti, pokuava da du celog rasporeda, to je vie mogue, uravnotei zahteve za funkcionalnim jedinicama.

221

Arhitektura mikrosistema

Nakon to su odreeni opsezi mobilnosti za sve operacije iz DFG grafa, za svako stanje si iz opsega mobilnosti neke operacije op dodeljuje se verovatnoa da e ta operacija biti rasporeena u to stanje, P(op,si). Svim stanjima iz opsega mobilnosti operacije op dodeljuje se ista verovatnoa, jednaka:
P(op, si ) = 1 ALAP (op ) ASAP (op ) + 1

Pocetak

Primeniti ASAP algoritam

(5.1)

Primeniti ALAP algoritam

gde je ASAP(op) redni broj stanja u koje je operacija op rasporeena ASAP algoritmom, a ALAP(op) redni broj stanja u koje je operacija op rasporeena ALAP algoritmom. Oigledno, zbir verovatnoa u svakom opsegu mobilnosti jednak je 1. Na primer, verovatnoa da e operacija >>1 sa Sl. 5.33 biti rasporeena u stanje s3 jednaka je verovatnoi da e ta operacija biti rasporeena u stanje s4 i iznosi P(>>1, s3)=P(>>1, s4) = 0.5. U sledeem koraku, TC eduling algoritam prolazi kroz sva stanja i za svako stanje nalazi sve operacije iji opsezi mobilnosti pokrivaju to stanje; zatim, grupie kompatabilne operacije (operacije istog tipa, tj. one koje se izvravaju na funkcionalnim jedinicama istog tipa) i za svaku grupu, posebno, sabira verovatnoa sa kojima pojedinane operaciju iz te grupe pokrivaju dato stanje. Na taj nain, za svaki tip operacije, kreira se poseban distribucioni grafikon (ili grafikon raspodele suma verovatnoa) DG, koji ukazuje na raspodelu konkurentnosti (istovremenosti) operacija po stanjima. Za svaki DG, raspodela u stanu si iznosi:
DG ( si ) =
opTip operacije

Odrediti opsege mobilnosti operacija

Kreirati distribucioni graf

Sve operacije su rasporedjene? ne Za sve nerasporedjene operacije odrediti ukupne sile u svim stanjima iz opsega mobilnosti

da

P(op, s )
i

(5.2)

Izabrati par operacijastanje sa najmanjom ukupnom silom i rasporediti tu operaciju u to stanje

gde suma obuhvata sve operacije datog tipa. Drugim reima, DG(si) mobilnosti i distribucioni graf ukazuje na oekivani broj funkcionalnih jedinica datog tipa, potreban da bi se obavile sve operacije tog tipa koje se javljaju u stanju si. Kraj Najvea 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 pojedinanom stanju. esto, radi jasnijeg prikaza, rezultati ove analize se prikazuju u obliku histograma. U ovom trenutku, sve je spremno za rasporeivanje operacija. Meutim, pre objanjena strategije rasporeivanja koju koristi TC eduling, pokaimo, na primeru DFG grafa za SRA algoritam, kako se odreuju opsezi mobilnosti operacija i formiraju distribucioni grafikoni. Usvojiemo da su za sintezu staze podataka dostupna dva tipa funkcionalnih jedinica: (1) AU - aritmetike jedinice koje su u stanju da obavljaju operacije: sabiranje, oduzimanje, maksimum, minimum, i odreivanje apsolutne vrednosti i (2) pomerai. Znai, operacije +, -, min, max, |a| i |b| su istog tipa, kao i operacije >>1 i >>3. Takoe, postaviemo uslov da duina rasporeda operacija mora biti T=8 stanja, to je za jedno stanje vie od duine kritinog puta polaznog DFG grafa. Na Sl. 5.35(a) prikazan je ASAP, a na Sl. 5.35(b) ALAP raspored. Treba uoiti da ALAP raspored, koji se inae formira odozdo navie, kree od stanja s8, s obzirom na postavljeno ogranienje u duini konanog rasporeda od T=8 stanja. Na bazi ASAP i ALAP rasporeda moemo odrediti opsege mobilnosti svih operacija. Lako se zakljuuje da e opsezi mobilnosti svih operacija, osim operacija >>1 i min imati 2 stanja. Drugim reima, verovatnoa za svaku od ovih operacija da e biti rasporeena u neko stanje iz svog opsega mobilnosti iznosi 0.5. S obzirom da operacije >>1 i min imaju opsege mobilnosti od po tri stanja, verovatnoa da svaka od njih bude rasporeena u neko konkretno od svojih stanja iznosi 0.33. Pozicije opsega mobilnosti operacija, razvrstanih po tipu, prikazane su zajedno sa odgovarajuim distribucionim grafikonima na slikama Sl. 5.35(c)-(f). Slike Sl. 5.35(c)-(d) odgovaraju aritmetikim jedinicama, a Sl. 5.35(e)-(f) pomeraima. Na ovim slikama, opsezi mobilnosti operacija prikazani su u vidu praznih uspravnih pravougaonika. Svaki pravougaonik, po visini, obuhvata sva stanja iz opsega mobilnosti odgovarajue operacije, dok je irina pravougaonika srazmerna verovatnoi da ta operacija bude rasporeena u neko konkretno stanje iz opsega mobilnosti. Oigledno, to je pravougaonik vii, to je njegova irina manja, tj. povrina svih pravougaonika je ista i iznosi 1. U distribucionom grafikonu, svakom stanju si odgovara jedna horizontalna rafirana traka, ija je duina srazmerna vrednosti DG(si), tj. ukupnoj irini svih praznih pravougaonika koji pokrivaju to stanje. Distribucioni grafikon, na oigledan nain, pokazuje raspodelu po stanjima konkurentnosti operacija istog tipa. Na primer,

Azurirati opsege

222

Sinteza staze podataka

DG sa Sl. 5.35(d) ukazuje da se u stanju s1 oekuje konkurentno (istovremeno) korienje jedne aritmetike jedinice, dok se u stanju s2 oekuje se zauzee 1.83 aritmetikih jedinica. Najvei oekivani broj zauzetih aritmetikih jedinica u nekom stanju je 1.83, to ukazuje da treba oekivati da e za implementaciju staze podataka biti potrebne dve (tj. vee celo od 1.83) aritmetikih jedinica. Naravno, svrha TC edulinga je da se ovaj broj to je mogue vie smanji.
a b a b

s1

|a|

|b|
|a| |b|

1.0

s2

min

max

|a|

|b|
max

1.83

s3

>>1

>>3

max

min

0.83
>>3

0.83

s4

min

>>3

0.83

>>1

0.83

s5 +
>>1

1.0

0.33

s6

max

+
max

1.0

s7

max

0.5

Izl

s8
Izl

(a) ASAP raspored

(b) ALAP raspored

(c) Opsezi mobilnosti AU operacija

(f) Distribucioni (d) Distribucioni graf (e) Opsezi mobilnosti za AU operacije pomerackih operacija graf za pomeracke operacije

s1
|a| |b|

1.0

s2
max

1.5

s3

min

1.5
>>3

0.5

s4

0.5

1.0
>>1

s5 + s6
max

1.0

0.5

1.0

s7

0.5

s8

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

Sl. 5.35 TC eduling.

Uvek kada se neka operacija rasporedi u neko konkretno stanje, visina odgovarajueg praznog pravougaonika se smanjuje, tako da obuhvata samo ono stanje u koje je operacija rasporeena, a u isto vreme

223

Arhitektura mikrosistema

njegova irina se poveava na 1. To ima za posledicu da duina trake koja odgovara tom stanju u distribucionom grafikonu postaje vea za (1 irina pravougaonika), dok se sve trake koje odgovaraju preostalim stanjima iz opsega mobilnosti rasporeene operaciju skrauju za irinu praznog pravougaonika. Na primer, ako bi smo operaciju min rasporedili u stanje s3, konkuretnost aritmetikih operaciju u ovom stanju bi porasla na DG(s3)=0.83+(1-0.33)=1.5, dok bi se konkurentnost aritmetikih 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). Takoe, treba uoiti da je zbog fiksiranja operacije min za stanje s3 dolo do promene opsega mobilnosti operacije >>1, koji sada obuhvata stanja s4 i s5. Treba uoiti da iako su se duine traka u distribucionim grafikonima promenile, ukupna duina svih traka je ostala ista kao u polaznim distribucionim grafikonima. S obzirom na to, zakljuujemo da e sa stanovita broja potrebnih funkcionalnih jedinica u stazi podataka, biti najbolja ona raspodela kod koje e distribucioni graf biti uravnoteen, tj. u kome e sve trake imati priblino istu duinu. Kao i algoritmi ASAP, ALAP i List eduling, TC eduling algoritam u svakoj iteraciji rasporeuje jednu operaciju. Meutim, za razliku od prethodnih eduling algoritama, koji prilikom formiranja rasporeda, strogo prate topoloki redosled operacija tako to kao sledeu operaciju za rasporeivanje uvek biraju jednu od operacija iji su svi neposredni prethodnici (ili naslednici, kod ALAP) u DFG grafu ve rasporeeni, kod TC eduling algoritama, u svakoj iteraciji, potencijalni kandidati za rasporeivanje su sve nerasporeene operacije. Naime, da bi TC eduling algoritam odluio koju e nerasporeenu operaciju izabrati i gde je rasporediti, on eksplicitno analizira svaki par (op, si), gde je op nerasporeena operacija, a si stanje iz opsega mobilnosti te operacije i bira onaj par koji u tekuoj iteraciji najvie doprinosi ostvarenju globalnog cilja - uravnoteenje distribucionog grafikona. TC eduling, kao metriku na bazi koje vrednuje pojedinane opcije (op, si), koristi funkciju koja se zove ukupna sila, a koja predstavlja zbir direktne sile i indirektne sile. Direktna sila odslikava direktni uticaj rasporeivanja operacije op u stanje si na uravnoteenost distribucionog grafa. Rasporeivanje operacije op u neko konkretno stanje, u optem sluaju, moe imati za posledicu promenu opsega mobilnosti nekih od preostalih nerasporeenih operacija, to onda, indirektno utie na oblik distribucionog grafa. Uticaj ovog, sekundarnog efektna na uravnoteenost distribucionog grafa izraen je indirektnom silom. Direktna sila izmeu operacije op i stanja si se definie kao razlika izmeu konkurentnosti operacija u stanju si, i srednje konkurentnosti operacija u stanjima iz opsega mobilnosti operacije op. Neka se opseg mobilnosti operacije op protee od stanja sb do stanja st. Tada je direktna sila privlaenja operacije op i stanja si odreena izrazom:
DF ( si ) = DG ( si ) DG ( sk ) k =b b t + 1
t

(5.3)

Smisao ove metrike se ogleda u sledeem. Ako se operacija op rasporedi u stanje si, duina trake iz distribucionog grafa, koja odgovara stanju si raste na raun smanjenja duine ostalih traka koji su pokriveni opsegom mobilnosti operacije op. S obzirom da je cilj da trake distribucionog grafa budu to je mogue vie bliske po duini, logian izbor za rasporeivanje operacije op je stanje iz njenog opsega mobilnosti kome odgovara najkraa traka u delu distribucionog grafa koji odgovara opsegu mobilnosti operacije op. Upravo minimalna vrednost sopstvene sile privlaenja u skupu stanja iz opsega mobilnosti date operacije, ukazuje na ovakvo stanje. Na primer, direktna sila koja odgovara rasporeivanju operacije min u stanje s3 iznosi: DF(s3) = 0.83(1.83+0.83+0.83)(4-2+1) = -0.33. Slino, moemo utvrditi da je direktna sila izmeu operacije min i stanja s2 DF(s2) =0.66, ili recimo, operacije max i stanja s7 DF(s7) =-0.25 i td. U optem sluaju, sila ne mora biti vezana za tano jedno stanje, ve se moe pridruiti i grupi stanja iz polaznog opsega mobilnosti date operacije. Naime, ako se opseg mobilnosti neke operacije protee od stanja sb do stanja st, tada je sila koja je pridruena skraenom opsegu mobilnosti, od stanja snb do snt (nbb i ntt), definisana sledeim izrazom:
DF ( snb , snt ) =

k = nb

b t +1 b t +1
k =b

nt

DG ( sk )

DG ( sk )

(5.4)

Svaka suma u gornjem izrazu predstavlja srednju konkurentnost operacija u zadatom opsegu stanja. Sila je razlika izmeu srednje konkurentnosti operacija u novom, skraenom opsegu i srednje konkurentnosti operacija u polaznom opsegu mobilnosti date operacije. Kao to je ve napomenuto, rasporeivanje operacije u neko konkretno stanje znai ogranienje njenog opsega mobilnosti samo na to stanje, to esto ima za posledicu promenu opsega mobilnosti nekih od preostalih nerasporeenih operacija sa kojima je upravo rasporeena 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. Oigledno, promena mobilnosti drugih nerasporeenih operacija imae uticaj na raspodelu konkurentnosti

224

Sinteza staze podataka

operacija u distribucionom grafikonu, koji moe biti pozitivan, ali i negativan. Iz tog razloga je bitno prilikom ocene dobitkagubitka koji je posledica rasporeivanja 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 izraunava kao zbir sila odreenih na osnovu izraza (5.4) za svaku operaciju iji je opseg mobilnosti promenjen, od polaznog sb-st na novi snb-snt. Konano, ukupna sila pridruena eventualnom rasporeivanju 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 poetku obuhvata stanja s3, s4 i s5 suava se na stanja s4 i s5, kao to se moe videti na Sl. 5.35(g). Indirektna sila koja odgovara ovom suenju 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 utie rasporeivanje operacije min u stanje s3, ukupna sila koja karakterie eventualno rasporeivanje operacije min u stanje s3 iznosi TF=DF+IF=-0.33+0.17=-0.16. Nakon to su za sve nerasporeene operacije odreene ukupne sile za svako pojedinano stanje iz odgovarajuih 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 moguih opcija, izraunavajui ukupnu silu za svaku opciju, pre nego to izabere jednu od njih i obavi odgovarajue rasporeivanje. Opisani postupak se ponavlja sve dok postoje nerasporeene operacije. Napomenimo da je broj iteracija obino manji od broja operacija, s obzirom da, esto, rasporeivanje jedne operacije ima kao indirektni efekat rasporeivanje jo jedne ili vie drugih operacija. Na primer, ako bi TC eduing algoritam odluio da u prvoj iteraciji rasporedi operaciju max u stanje s2, u toj iterciji bi efektivno bile rasporeene tri operacije, jer rasporeivanje operacije min u stanje s2 suava opseg mobilnosti operacija |a| i |b| na samo jedno stanje, s1. 5.11 Zakljuak U ovom poglavlju predstavljeno je vie tehnika za sintezu i optimizaciju staze podataka. Posebno su razmatrane razliite procedure koje pokazuju kao se grupiu promenljive i dodeljuju registrima, kako se grupiu registri u registarske fajlove, kako se grupiu operatori i dodeljuju vie-funkcionalnim jedinicama i kako se grupiu veze u magistrale. Takoe, pokazano je kako se staza podataka moe optimizovati u sluajevima kada se koriste funkcionalne jedinice razliite brzine rada i kako se u stazu podataka mogu na efikasan nain ugraditi spore funkcionalne jedinice. U drugom delu poglavlja, objanjen je koncept protonosti i pokazano je kako se performanse staze podataka mogu poboljati uvoenjem protonosti na nivou funkcionalnih jedinica i upravljake jedinice, kao i na nivou celokupne staze podatak U poslednjem odeljku, pokazano je kako se standardni softverski programi mogu transformisati u ASM dijagrame korienjem algoritama za rasporeivanje operacije. Posebno je razmatrano rasporeivanje operacija koje ima za cilj da minimizuje vreme izvrenja algoritma u uslovima ogranienih resursa u stazi podataka, kako i rasporeivanje operacija koje tei minimizovanju potrebnih resursa u uslovima strogih vremenskih ogranienja. U zakljuku, u ovom poglavlju predstavljena je jedna celovita, opta metoda za sintezu staze podataka na bazi ASM dijagrama.

225

You might also like