You are on page 1of 57

4 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 registarskih komponenti, kao to su prihvatni, pomeraki i brojaki registri, i sloenijih memorijskih struktura, kao to su RAM, FIFO, stek, do upravljakih jedinica koje su u mogunosti da izvravaju sloene algoritme.

4.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 kd.

4.1.1 Dekoderi
Dekoderi su digitalna kola koja se koriste za dekodiranje kodiranih informacija. Binarni dekoder, predstavljen na Sl. 4-1, 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-2 n ili n-to ulazni binarni dekoder.

Sl. 4-1 Binarni dekoder n-u-2n. Na Sl. 4-2 je prikazan binarni dekoder 1-u-2. Grafiki simbol ovog dekodera se moe videti na Sl. 4-2(a), a tabela istinitosti na Sl. 4-2(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. 4-2(c).

149

(a)

(b)

(c)

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

Dekoder 2-u-4 je predstavljen na Sl. 4-3(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. Funkcija dekodera 2-u-4 definisana je sledeim sistemom logikih jednaina: y0 = Ew1`w0` y1 = E w1`w0 y2 = E w1w0` y3 = E w1w0

(a)

(b)

(c)

Sl. 4-3 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-1, gde je mi i-ti minterm n ulaznih promenljivih wn-1, ...., w0. (4.1)

Na izlazu dekodera, pod uslovom da je njegov rad dozvoljen, 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 izlazima prisutne jedince. Grafiki simbol dekodera 2-u-4 sa aktivnim niskim naponskim nivoom na izlazu prikazan je na Sl. 4-4(a). Uoimo da je aktivan nizak naponski nivo naznaen kruiima na izlaznim prikljucima dekodera. Tabela istinitosti ovog dekodera je prikazana na Sl. 4-4(b), a logika mrea na Sl. 4-4(c). Uoimo da je logika mrea, po strukturi, identina onoj sa Sl. 4-3(c), s tom razlikom to se sada umesto I koriste NI kola.

(a)

(b)

(c)

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

Pr. 4-1 Sinteza prekidakih funkcija na bazi dekodera. Shodno jednaini (4.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.

150

Na primer, razmotrimo funkciju f zadatu skupom decimalnih indeksa

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

prikazana je na Sl. 4-5(a), a realizacija ove funkcije u obliku minimalne sume-proizvoda na Sl. 4-5(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. 4-5(c). Na ovaj nain, korienjem dekodera odgovarajue veliine, mogue je realizovati proizvoljnu prekidaku funkciju.

(a)

(b)

(c)

Sl. 4-5 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 tipinu funkciju veeg broj promenljivih, od svih generisani minterma biti iskorien tek mali deo. 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 (sekcija Error! Reference source not found.). Shodno jednaini (4.1) binarni dekoder n-u-2n se moe realizovati pomou 2n n-to ulaznih I logikih kola. Meutim, sa poveanjem n ukupan broj logikih kola i broj ulaza u logika kola 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. 4-6). 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. 4-6. 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 I kola, tako to se svako I kolo povezuje sa jednim parom signala (hi, lj). Izlazu yk odgovara izlaz I kola iji su ulazi hi i lj, pri emu vai: k = 24 i + j. Na primer, izlaz y36 odgovara I kolu iji su ulazi h2 i l4, s obzirom da vai: 36 = 2 4 2 + 4. Uoimo da je ulaz za dozvolu rada dekoderske mree, E, povezan sa odgovarajuim ulazom jednog od dekodera 4-u-16, dok je ulaz za dozvolu rada drugog dekodera postavljen na 1. Ako je E=0, tada su svi izlazi iz jednog dekodera jednaki 0, to uslovljava yi=0 za svako i. U optem sluaju, n-to ulazni koincidentni dekoder se realizuje pomou dva n/2 ulazna binarna dekodera i 2n 2-ulaznih I kola, na nain kako je to prikazano na Sl. 4-7.

151

Sl. 4-6 8-ulazni koincidentni dekoder.

Sl. 4-7 n-to ulazni koincidentni dekoder.

Hijerarhijsko dekodiranje Druga tehnika za konstrukciju veih dekodera je hijerarhijsko dekodiranje. Radi ilustracije ove tehnike razmotrimo realizaciju binarnog dekodera 4-u-16 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 dvonivovsku 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. 4-8. 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.

152

Sl. 4-8 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. 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-u-2, 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. 4-9 je prikazan dekoder 3-u-8 realizovan na bazi dekodera 1-u-2.

Sl. 4-9 3-ulazni hijerarhijski dekoder 3-u-8.

U optem sluaju, n-to ulazni dekoder se moe realizovati 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 potrebnih 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 (2 12 1)/(24 1) = 273.

153

4.1.2 Multiplekseri
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. 4-10(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. 4-10(b), kod koga signal s upravlja poloajem preklopnika. Ponaanje multipleksera 2-u-1 opisano je tabelom istinitosti sa Sl. 4-10(c), na osnovu koje lako moemo izvesti logiki izraz oblika suma-proizvoda: f=s`w0 + sw1. Ovom izrazu odgovara logika mrea sa Sl. 4-10(d). Na Sl. 4-10(e) je prikazano kako se multiplekser 2-u-1 moe realizovati pomou transmisionih gejtova.

(a)

(b)
w0 s

(c)

s w0 w1 f w1 f

(d)

(e)

Sl. 4-10 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. 4-11(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. 4-11(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. 4-11(c)

(a)

(b)

(c)

Sl. 4-11 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 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. 4-12(a) je prikazana tabela istinitosti, a na Sl. 4-12(b) realizacija multipleksera 8-u-1 pomou multipleksera 2-u1.

154

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

Na Sl. 4-13(a) prikazan je grafiki simbol multipleksera 2xm-u-m. Ovaj simbol na kompaktan nain predstavlja strukturu od m paralelno povezanih multipleksera sa Sl. 4-13(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 ku-1 sa zajednikim selekcionim ulazima.

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

Multiplekser 8-u-1 se moe realizovati i na nain koji je prikazan na Sl. 4-14. 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 logikih kola u dekoderu, kao i veliina izlaznog ILI kola raste sa poveanjem broja ulaza u multiplekser. S obzirom da se logika kola sa velikim brojem ulaza realizuju u vidu stabla logikih kola sa manjim brojem, cena i kanjenje se znaajno poveavaju. Iz tog razloga, reenje sa Sl. 4-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.

mux 2xm-u-m

155

(a)

(b)

Sl. 4-14 Realizacija multipleksera pomou dekodera: (a) tabela istinitosti multipleksera 8-u-1; (b) realizacija na bazi dekodera.

Na Sl. 4-15 je prikazana jo jedna realizacija multipleksera pomou dekodera kod koje se umesto dvo-nivovske I-ILI mree koristi niz trostatikih bafera sa kratkospojenim izlazima. Dekoder obezbeuje da e uvek biti aktivan samo jedan trostatiki bafer, koji prosleuje vrednost sa svog ulaza na zajedniki izlaz. Izlazi trostatikih bafera ne moraju fiziki biti spojeni u jednu taku, ve mogu biti povezani vezom (magistralom) koja kontaktira svaki izlaz, to je pogodno u sluajevima kada su izvori podatak (moduli koji generiu signale D0-D3) prostorno razueni.

Sl. 4-15 Realizacija multipleksera pomou dekodera i trostatikih bafera.

Pr. 4-2 Krozbar prekida Na Sl. 4-16(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. 4-16(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.

156

(a)

(b)

Sl. 4-16 Krozbar prekida: (a) korzbar 2x2; (b) realizacija pomou multipleksera

4.1.3 Demultiplekseri
Kao to je reeno u odeljku 4.1.2, 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. 4-17(a) je prikazan grafiki simbol demultipleksera 4-u-1. Kao to se vidi iz tabele istinitosti sa Sl. 4-17(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. 4-17(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.

(a)

(b)

(c)

Sl. 4-17 Demultiplekser 1-u-4: (a) grafiki simbol; (b) tabela istinitosti; (c) dekoder 2-u-4 kao demultiplekser 1-u-4. Pr. 4-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. 4-18. 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 izvor-odredite, 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. 4-18 Princip vremenskog multipleksa.

157

4.1.4 Koderi
Binarni koder 2n-u-n (Sl. 4-19) kodira (transformie) informaciju od 2 n 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. 4-20(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. 4-20(b). U optem sluaju, binarni koder 2n-u-n moe se 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 reprezentaciji indeksa i ima vrednost 1.

Sl. 4-19 Binarni koder 2n-u-n.

(a)

(b)

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

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

Sl. 4-21 Primena binarnog kodera.

Prioritetni koder 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. 4-22 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 najvieg 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 situaciju. Naime, ako je barem jedan ulaz jednak 1, tada je z=1; inae, ako ni jedan ulaz nije jednak 1, vai z=0.

158

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

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. 4-23 Realizacija prioritetnog kodera.

Prioritetni koder 2 -u-n se moe realizovati kombinovanjem dva modula kao na Sl. 4-23. 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:
' ' xi = w2n 1w2n 2 K wi'1wi , 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. 4-24 Modul za razreavanje prioriteta: (a) paralelna realizacija; (b) iterativna realizacija.

Modul za razreavanje prioriteta se moe realizovati u obliku logike mree sa Sl. 4-24(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. 4-24(b) je prikazana iterativna realizacija 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.

159

Hijerarhijska realizacija prioritetnog kodera Na Sl. 4-25(a) je prikazana realizacija prioritetnog kodera 4-u-2 pomou prioritetnih kodera 2-u-1. Ulazi su podeljeni u dve dvobitne grupe i nezavisno kodirani prioritetnim koderima H i L. Drugi nivo strukture sa Sl. 4-25(a), koji se sastoji iz dodatnog prioritetnog kodera 2-u-1, G, i multipleksera 2-u-1, formiran je shodno tabeli istinitosti prioritetnog kodera 4-u-2 sa Sl. 4-22 iz koje sledi da izlaz y1 ukazuje na grupu, H ili L, koja sadri aktivan ulaz najvieg prioriteta, a izlaz y0 na poziciju aktivnog ulaza najvieg prioriteta u okviru grupe na koju ukazuje y1. Na osnovu slinog rezonovanja, na Sl. 4-25(b) je nacrtana struktura prioritetnog kodera 8-u-3. U optem sluaju, prioritetni koder 2n-u-n u prvom nivou sadrae dva prioritetna kodera 2n-1-u-(n-1), a u drugom jedan prioritetni koder 2-u-1, za generisanje izlaza z i yn-1 i multiplekser 2x(n-1)-u-(n-1) za prosleivanje kodnih izlaza jednog od kodera H ili L na izlaze yn-2, .., y0 (Sl. 4-25(c)). Koliko je prioritetnih kodera 2-u-1 i multipleksera 2-u-1 potrebno za realizaciju prioritetnog kodera 2 n-u-n ?

(a)

(b) Sl. 4-25 Iterativna realizacija prioritetnog kodera.

(c)

4.1.5 Komparator magnitude


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 relacionih 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 se koristi za izraunavanje bilo kog od navedenih operatora. U optem sluaju, n-bitni univerzalni komparator (Sl. 4-26) poredi dva pozitivna cela broja X=xn-1,,x0 i Y=yn1,,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. 4-26 n-to bitni univerzalni komparator magnitude.

Logika mrea komparatora se moe sintetizovati na osnovu tabele istinitosti u kojoj bi za svaku kombinaciju nbitnih operanada X i Y bile navedene vrednosti izlaza G, E i L. Meutim, takva tabela bi bila previe velika, ak i za relativno 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

160

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. 4-27. Opisana procedura se moe primeniti za konstrukcije univerzalnog komparatora za proizvoljno n.

Sl. 4-27 Logika mrea 4-bitnog univerzalnog komparatora.

Pr. 4-5 8-bitni univerzalni komparator Na Sl. 4-28 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. 4-28 Realizacija 8-bitnog komparatora pomou 4-bitnih komparatora.

Pr. 4-6 Realizacija komparatora pomou binarnog sabiraa Na Sl. 4-29 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 realizuje 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:

161

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. 4-29. 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.
x3 x2 x1 x0 y3 y2 y1 y0

c4

n-bitni sabira

c0

(X=Y)

L G

(X<Y) (X>Y)

Sl. 4-29 Realizacija univerzalnog komparatora pomou binarnog sabiraa. 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 sukcesivno (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 zanemaruje, a stepen i dalje prosleuje rezultat svog poreenja. Izlazi G, E i L su u isto vreme i izrazi celokupne komparatorske mree. Da bi se omoguila sprega komparatorskih modula, neophodno je strukturu 4-bitnog komparatora sa Sl. 4-26 proiriti sa tri ulazna signala prenosa, kao na Sl. 4-30. Na Sl. 4-31 je prikazana struktura 16-bitnog iterativnog komparatora magnitude, realizovanog pomou 4-bitnih komparatora sa Sl. 4-31.

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

Sl. 4-31 16-bitna iterativna komparatorska mrea.

162

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. 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. 4-32. 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. 4-32 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 1 E= 0 1 L= 0 ako je g = l inace

ako je g < l inace

gde su g i l celi brojevi predstavljeni istoimenim bit-vektorima. S obzirom da su g i l izlazi iz prvog 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-ca najvee teine u vektoru g tea od 1-ce najvee teine u vektoru l, 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.
X(3) 4 Y(3) 4 X(2) 4 Y(2) 4 X(1) 4 Y(1) 4 X(0) 4 Y(0) 4

K3 G g3 E L l3 G

K2 E L l2 4 x K4 4 y G

K1 E L l1

K0 G g0 E L l0

g2

g1

E L

Sl. 4-32 16-bitni hijerarhijski komparator.

4.1.6 Kombinacioni pomerai i rotatori


Operacije pomeranja i rotiranja esto se koriste za pakovanje i raspakovanje cifara i karaktera, izdvajanje i umetanje bitskih polja, kao i za realizaciju operacija za rad u pokretnom zarezu. Operacije pomeranja mogu se obavljati u logikom ili aritmetikom reimu. Pri logikom pomeranju, bit-vektor se pomera za m bitskih pozicija ulevo ili udesno. 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 udesno ima isti efekat kao deljenje broja sa 2m, dok je pomeranje za m pozicija ulevo isto to i mnoenje sa 2m. Ako bit-vektor predstavlja brojnu vrednost u formatu dvojinog komplementa, tada se prilikom pomeranja udesno, u vektor, sa leve strane, ubacuje m kopija bita znaka. Za sluaj pomeranja ulevo, u vektor se, sa desne stane, ubacuje m nula. Dodatno, nakon pomeranja ulevo, na poziciju bita najvee teine treba postaviti vrednost koja je jednaka bitu znaka polazne rei. Pri operaciji rotiranja, bitovi se ne gube, jer se svaki 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. 4-33(a) je prikazan grafiki simbol 8-

163

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 postavlja na krajnji desni izlaz, y0, prilikom pomeranja na levo. Shodno funkcionalnoj tabeli sa Sl. 4-33(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. 4-33(c) su ilustrovani razliiti reimi rada univerzalnog pomeraa/rotatora.

(a)

(b)

(c)

Sl. 4-33 Univerzalni pomera/rotator: (a) grafiki simbol; (b) funkcionalna tabela; (c) reimi rada. Na Sl. 4-34 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. 4-34 Realizacija 8-bitnog univerzalnog pomeraa/rotatora sa Sl. 4-33 pomou multipleksera.

164

Barel pomera Prethodno opisani pomera/rotator ima mogunost pomeranja ili rotiranja za jednu bitsku poziciju ulevo ili udesno. To znai da ako je potrebno obaviti pomeranje ili rotiranje za vie od jedne bitske pozicije, podatak bi morao biti proputen 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 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. 4-35 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 postupak, s tim da je neophodan vei broj multipleksera sa veim brojem ulaza za podatke.

(a)

(b)

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

165

4.2

Aritmetika kola

Ovo poglavlje je posveeno digitalnim kolima koja obavljaju aritmetike operacije. Bie razmatrana digitalna kola za sabiranje, oduzimanje i mnoenje.

4.2.1 Sabira sa rednim prenosom


Potpuni sabira (*) Binarno sabiranje obavlja se na slian nain kao decimalno sabiranje, s tom razlikom to pojedinane cifre mogu biti samo 0 ili 1. Sabiranje dva jedno-bitna broja, u optem sluaju, daje dvo-bitni rezultat, kao to je to ilustrovano na Sl. 4-36(a). Ako su oba sabirka 0, tada e i njihov zbir biti 0, tj. (00) 2. Ako je jedan sabirak 0, a drugi 1, zbir je 1, tj. (01) 2. Ako su oba sabirka 1, zbir je 2, tj. (10) 2. Bit manje teine ovog zbira zove se bit sume, ili sum, tj. s. Bit vee teine zove se bit prenosa ili carry, tj. c. Na Sl. 4-36(b) prikazana je tabela istinitosti koja definie operaciju sabiranja dva bita. Lako se moe uoiti da je bit sume AND, a bit prenosa XOR funkcija sabiraka. Na Sl. 4-36(c) je prikazana logika mrea koja realizuje funkcije s i c. Kolo koje obavlja sabiranje dva bita zove se polu-sabira (half-adder - HA). Za predstavljanje polu-sabiraa koristiemo grafiki simbol sa Sl. 4-36(d).
Prenos cx21
0 0 0 1

x
0 0 1 1

y
0 1 0 1

Suma sx20
0 1 1 0

(a)

(b)

(c)

(d)

Sl. 4-36 Polu-sabira: (a) sabiranje dva bita; (b) tabela istinitosti; (c) kolo; (d) grafiki simbol.

Polu-sabira, razmatran kao izolovano kolo, nema neki vei praktini znaaj. Od mnogo veeg interesa su kola koja obavljaju sabiranje vie-bitnih brojeva. Prilikom sabiranja vie-bitnih brojeva, kao i kod sabiranja viecifarskih decimalnih brojeva, potrebno je sabrati svaki par bitova (cifara), ali za svaku bitsku poziciju i dodatno je potrebno uraunati i prenos koji potie iz prethodne pozicije, i-1. Na Sl. 4-37 je dat primer sabiranja dva 5bitna broja X=(01111)2=(15)10 i Y=(01010) 2=(10)10. Sa pet bita mogue je predstaviti cele brojeve iz opsega 0 do 31. Poto u konkretnom sluaju vai S=X+Y=(25)10, pet bita bie dovoljna i za predstavljanje zbira. Uoimo da su na Sl. 4-37, sabirci simboliki oznaeni sa X=x4x3x2x1x0 i Y=y4y3y2y1y0. Na ovoj slici su takoe prikazani prenosi koji se generiu u toku sabiranja. Na primer, prilikom sabiranja bitova x0=1 i y0=0 dobija se suma s0=1 i prenos c0=0; prilikom sabiranja bitova x1=1 i y1=1 dobija se suma s1=0 i prenos c1=1 i tako dalje. Za ci kaemo da predstavlja izlazni prenos (carry-out) iz pozicije i, odnosno ulazni prenos (carry-in) na poziciju i+1.

Sl. 4-37 Sabiranje viebitnih binarnih brojeva.

Standardni nain za projektovanje digitalnih kola polazi od tabele istinitosti. Meutim, ovakav pristup nije praktian za projektovanje sabiraa koji treba da sabira dva 5-bitna broja. 5-bitni sabira ima 10 ulaza, pa bi za opis njegovog ponaanja bilo potrebno formirati tabelu istinitosti od 2 10=1024 vrsta! S toga, bolji pristup je nezavisno razmatrati sabiranje svakog para bita xi i yi. Za poziciju i=0 ne postoji ulazni prenos i s toga se sabiranje obavlja na isti nain kao na Sl. 4-36(a). Na svakoj od preostalih poziciju i=1,..., n-1, i-ti bitovi sabiraka, xi i yi, se sabiraju zajedno sa ulaznim prenosom ci. Tako, sada sabiranje na nivou svake bitske pozicije obuhvata tri bita, xi, yi i ci. Kako najvei zbir tri bita iznosi (11) 2, to su za njegovo predstavljanje, kao i kod sabiranja dva jednobitna broja, potrebna dva bita: suma si, kao bit manje teine, i izlazni prenos ci+1, kao bit vee teine. Bit sume si predstavlja i-ti bit konanog rezultata, dok se bit prenosa ci+1 pridodaje poziciji i+1 kao ulazni prenos. Funkcije sume i izlaznog prenosa definisane su tabelom istinitosti sa Sl. 4-38(a). Bit sume si je zbir po modulu 2 bitova xi, yi i ci. Drugim reima, bit sume je jednak 1 ako neparan broj sabiraka ima vrednost 1, odnosno, 0 ako paran broj sabiraka ima vrednost 1. Izlazni prenos ci+1

166

jednak je 1 ako je zbir bitova xi, yi i ci vei od 1. Karnoove mape za funkcije si i ci+1 prikazane su na Sl. 4-38(a). Na osnovu Karnoovih mapa u mogunosti smo da izvedemo optimalne izraze oblika zbir-proizvoda za funkcije ci+1 i si: ci+1 = xiyi + xici + yici si = xiyici+xiyici+xiyici+xiyici Efikasnija realizacija funkcija si i ci+1 moe se postii korienjem XOR kola. XOR funkcija dve promenljive definisana je izrazom x1 x2 = x1x2 + x1x2. Primenom algebarskih manipulacija, izraz za bit sume moe se svesti na formu koja sadri samo XOR kola, na sledei nain: si = (xiyi+xiyi)ci+( xiyi+xiyi)ci = (xiyi+xiyi)ci+( xiyi+xiyi)ci = (xi yi)ci+(xi yi)ci = (xi yi) ci U sutini, si predstavlja XOR funkcija tri promenljive. Napomenimo, da je za XOR funkciju karakteristian naizmenian raspored jedinica u Karnoovoj mapi, koji je takav da onemoguava saimanje minterma (Sl. 4-38(b)). Izraz za funkciju ci+1, takoe, moemo preurediti na nain da koristi XOR funkciju. Pri tome, treba poi od izraza oblika zbir-minterma: ci+1 = cixiyi + cixiyi + cixiyi + cixiyi = (ci +ci)xiyi + ci(xiyi + cixiyi) = xiyi + ci(xi yi) Uoimo da se lan (xi yi) javlja u izrazima za obe funkcije si i ci+1. Ova injenica omoguava da se prilikom realizacije funkcija si i ci+1 za izraunavanje lana (xi yi) koristi jedinstveno XOR kolo. Kombinaciona mrea koja realizuje funkcije si i ci+1 prikazana je na Sl. 4-38(c). Ovo kolo se zove potpuni-sabira (full-adder - FA). Grafiki simbol potpunog sabiraa prikazan je na Sl. 4-38(d).

(a) (b) (c) (d) Sl. 4-38 Potpuni sabira: (a) tabela istinitosti; (b) Karnoove mape; (c) kolo; (d) grafiki simbol.

Imajui u vidu imena kola, polu- i potpuni-sabira, mogli bi smo naslutiti da je potpuni-sabira mogue konstruisati pomou dva polu-sabiraa. Zaista, ako paljivo pogledamo kombinacionu mreu potpunog sabiraa sa Sl. 4-38(c), moemo uiti da se u njoj kriju dva polu-sabiraa, uz dodatak jednog OR kola preko kojeg se formira izlaz ci+1, kao to je to naznaeno na Sl. 4-72(a). Na Sl. 4-72(b) je prikazana blok ema potpunog sabiraa realizovanog pomou polu-sabiraa.

167

(a) (b) Sl. 4-39 Realizacija potpunog sabiraa na bazi polu-sabiraa: (a) identifikacija polu-sabiraa; (b) blok dijagram

Sabira sa rednim prenosom Kao to dobro znamo, runo sabiranje se obavlja tako to se krene od cifre najmanje teine i redom sabiraju parovi cifara, sve do cifre najvee teine. Ako se na poziciji i javi prenos, tada se on dodaje ciframa na poziciji i+1. Identian postupak se moe primeniti i za konstrukciju digitalnog kola koje e obavljati sabiranje binarnih brojeva. 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. Ovakva vrsta sabiraa se zove sabira sa rednim prenosom ili RCA, prema engleskom nazivu RippleCarry Adder. Struktura n-to bitnog sabiraa sa rednim prenosom prikazana je na Sl. 4-40(a). Ova struktura se predstavlja grafikim simbolom sa Sl. 4-40(b). U optem sluaju, zbir dva neoznaena n-to bitna broja ima n+1 bita. Kod binarnog sabiraa, ovaj dodatni (n+1)-vi bit je predstavljen bitom izlaznog prenosa iz pozicije najvee teine, cn, tako da vai: (cnsn-1s1s0) = (xn-1x1x0) + (yn-1y1y0) + c0.

(a) (b) Sl. 4-40 n-bitni sabira sa rednim prenosom: (a) unutranja struktura; (b) grafiki simbol.

U strukturi sa Sl. 4-40(a), proces izraunavanja poinje onog trenutka kada se na ulaze sabiraa postavi novi par operanada X i Y. Meutim, s obzirom da svako logiko kolo u svakom potpunom sabirau unosi izvesno kanjenje, korektna vrednost izlazne sume S se ne generie istog tog trenutka, ve tek nakon nekog vremena. Da bi se u stepenu n-1 odredio bit sume sn-1 neophodna je informacija o prenosu iz stepena n-2, tj. cn-1; da bi se u stepenu n-2 odredio izlazni prenos cn-1 potrebno je imati informaciju o vrednosti cn-2, i td. Neka kanjenje potpunog sabiraa iznosi t vreme od postavljanja ulaza xi, yi, ci do generisanja korektnih izlaza ci+1 i si. Izlazni prenos iz prvog stepena, c1, stie do drugog stepena posle vremena t nakon to su postavljeni x0 i y0. Izlazni prenos iz drugog stepena, c2, stie do ulaza treeg sa kanjenjem od 2t, i td. Signal cn-1 je vaei posle kanjenja od (n-1)t, a celokupna izlaza suma posle kanjenja od nt. Napomenimo da vreme sabiranja zavisi i od vrednosti operanada. Kanjenje od nt odgovara sluaju kada je jedan operand 11...11, a drugi 00...01. U ovom sluaju, prenos koji se javlja na poziciji 0, prenosi se kroz sve potpune sabirae postavljajui bitove sume na 0. Za bilo koji drugi par vrednosti operanada, kanjenje e biti krae. Na primer, sabiranje brojeva 00...00 i 00...01 traje samo t. U optem sluaju, vreme sabiranja odreeno je najveim brojem uzastopnih pozicija na kojima oba operanda imaju vrednost 1. Meutim, kao se sabirai koriste za sabiranje operanada proizvoljnih vrednosti, u radu sa sabiraem moramo raunati sa maksimalnim kanjenjem, nt, kako bi smo bili sigurni da emo sa izlaza sabiraa uvek oitati ispravan rezultat.

168

Znai, brzina rada sabiraa sa rednim prenosom odreena je vremenom prostiranja signala prenosa kroz potpune sabirae. to je broj bita koji se sabira vei, to je brzina rada manja. Ako se radi sa brojevima velike duine, 32 ili 64 bita, vreme sabiranja moe biti neprihvatljivo dugo. Napomenimo da je sabira sa rednim prenosom samo jednu od veeg broja razliitih konstrukcija sabirakih kola, koje se razlikuju po sloenosti (ukupan broj gejtova) i brzini rada. Sabira sa rednim prenosom je najjednostavnija, ali ujedno i najsporija varijanta. Konstrukcija brzih sabirakih kola bie tema odeljka X. Binarni sabirai sa rednim prenosom se lako spreu kako bi se formirale sabirake mree za vei broj bitova. Na
Sl. 4-41 je pokazano kako se sa dva n-bitna sabiraa formira 2n-bitni sabira.

Sl. 4-41 Sprezanje binarnih sabiraa.

Pr. 4-7 Projektovati kolo za mnoenje neozna enog 8-bitnog broja konstantom 3. Neka je A=a7a6a1a0 i P=3A. Za predstavljanje broja P potrebna su 10 bita: P=p9p8p1p0. Poto vai 3A=A+A+A, za realizaciju kola moemo upotrebiti binarne sabirae. Na Sl. 4-42(a) je prikazano reenje koje koristi dva sabiraa. Pri sabira generie A+A=2A. Njegov rezultat je predstavljen sa 9 bita: 8 bita sume i izlazni prenos sa pozicije najvee teine. Drugi sabira rauna 2A+A=3A. Ovaj sabira je 9-to bitni, iz razlog to jedan od njegovih operanada, 2A, ima 9 bita. Uoimo da je ulaz x8 drugog sabiraa povezan je na konstantu 0, s obzirom da A ima 8-bita. Na Sl. 4-42(b) je prikazano efikasnije reenje, koje koristi samo jedan 9-bitni sabira. Uoimo da je 8-bitni sabira u reenju sa Sl. 4-42(a) nepotreban, s obzirom da se 2A moe dobiti prostim pomeranjem bitova broja A za jednu poziciju ulevo, to daje: 2A=a7a6a1a00. Za obavljanje ovog pomeranja nije potrebno nikakvo kolo, ve je dovoljno dopisati jednu nulu sa desne strane broja, to upravo odgovara nainu na koji je operand A povezan sa Y ulazom sabiraa. Uoimo, sada, da je u reenju sa Sl. 4-42(b), ulaz najmanje teine sabiraa x0 fiksno postavljen na x0=0. To znai da e bit sume s0 uvek imati vrednost s0=a0. Ovo zapaanje nam omoguava da dodatno pojednostavimo reenje, tako to emo 9-bitni sabira zameniti 8-bitnim, kao na Sl. 4-42(c).

(a) (b) (c) Sl. 4-42 Kolo koje mnoi 8-bitni neoznaeni broj sa 3: (a) polazno reenje; (b) poboljano reenje; (c) konano reenje.

Predstavljanje oznaenih brojeva (*) U decimalnom brojnom sistemu, znak broja se oznaava simbolom + ili levo od cifre najvee teine. U binarnom brojnom sistemu, znak broja se oznaava dodatnim bitom koji u zapisu broja zauzima krajnju levu poziciju. Za pozitivne brojeve, ovaj bit jednak je 0, a za negativne 1. Znai, kod oznaenih brojeva, krajnji levi

169

bit ukazuje na znak broja, dok se preostalih n-1 bita predstavlja maginitudu ili apsolutnu vrednost broja, kao to je prikazano na Sl. 4-43. Vano je zapaziti poziciju bita najvee teine (MSB). Kod neoznaenih brojeva svih n bita predstavljaju magnitudu broja kae se da su svi bitvi znaajni, a MSB se nalazi poziciji n-1. Kod oznaenih brojeva, znaajni su n-1 bita, MSB bit se nalazi na poziciji n-2, dok bit na poziciji n-1 ukazuje na znak broja.

(a) (b) Sl. 4-43 Formati predstavljana celih brojeva: (a) neoznaeni broj; (b) oznaeni broj.

Za razliku od pozitivnih brojeva koji se predstavljaju uvek na isti nain, korienjem pozicionog brojnog sistema, za predstavljanje negativnih brojeva u upotrebi su tri reprezentacije: znak-magnituda, jedinini komplement i dvojini komplement. Znak magnituda Kod decimalnog brojnog sistema, magnituda pozitivnih i negativnih brojeva predstavlja se na isti nain, a znak je taj koji ukazuje da li se radi o pozitivnom ili negativnom broju. Ovakav nain predstavljanja oznaenih brojeva zove se znak-magnituda, ili znak-apsolutna vrednost. Ista reprezentacija se moe primeniti i na binarne brojeve, a razlika je samo u nainu kodiranja znaka: umesto + i koristimo 0 i 1, respektivno. Na primer, +5 = 0101, a -5=1101. Brojni sistem koji koristi reprezentaciju znak-magnituda sadri isti broj pozitivnih i negativnih brojeva, a nula ima dvojnu reprezentaciju. Najvei pozitivni broj koji se u ovom sistemu moe iskazati sa n bita je +(2n-1) = 01111; najmanji negativni broj je (2 n-1) = 11111, dok se nula predstavlja sa 00000 ili 10000. Jedinini komplement U formatu jedininog komplementa, n-bitna reprezentacija negativnog broja K se dobija oduzimanjem njemu odgovarajueg pozitivnog broja P od 2n-1, tj. K=(2n-1)-P. Na primer, ako je n=4, tada je K = (24-1)-P = (15)10-P = (1111)2-P. Ako +5 konvertujemo u negativan broj, dobiemo -5 = 1111 0101 = 1010. Slino, +3=0011, a -3 = 1111 0011 = 1100. Jasno se uoava da se jedinini komplement datog binarnog broja dobija komplementiranjem svakog pojedinanog bita, ukljuujui i bit znaka. Najvei pozitivni broj koji se moe predstaviti u jedininom komplementu sa n bita je 01111 = 2 n-1, najmanji negativni broj je 10000 = -(01111) 2 = -(2n-1), dok nula ima dvojnu reprezentaciju: 00000 ili 11111. Jedinini komplement se lako izvodi, ali ispoljava izvesne nedostatke kada se koristi u aritmetikim operacijama. Dvojini komplement U formatu dvojinog komplementa, n-bitna reprezentacija negativnog broja K se dobija oduzimanjem njemu odgovarajueg pozitivnog broja P od 2n, tj. K = 2n - P. Na primer, ako je n = 4, tada je K = 24 - P = (16)10 - P = (10000)2 - P. Da bi smo odredili dvojini komplement broja 5, treba obaviti oduzimanje 10000 0101, to daje 5 = 1011. Ili -3 = 10000 0011 = 1101. Nalaenje dvoji nog komplementa na ovaj nain je naporno jer zahteva da se obavi operacija oduzimanja. Meutim, ako je K1 jedinini, a K2 dvojini komplement broja P tada vai: K1 = (2n-1) P K2 = 2n P Odakle sledi K2 = K1 + 1. Dakle, jednostavniji nain za nalaenje dvojinog komplementa sastoji se u tome da se na jedinini komplement doda jedinica. Ovo je upravo nain na koji se u digitalnoj tehnici dobija dvojini komplement. Za runo izvoenje postoji jo jedan laki nain za nalaenje dvojinog komplementa. Neka je dat broj B=bn-1bn2 ... b1b0. Dvojini komplement broja B, K=kn-1kn-2 ... k1k0, moe se odrediti na sledei nain: kreemo od bita najmanje teine ulevo i prepisujemo bitove broja B sve dok ne naiemo na prvu jedinicu, zatim prepisujemo i ovu jedinicu, a preostale bitove komplementiramo. Na primer, ako je B=0110, tada prepisujemo k0=b0=0 i k1=b1=1, i komplementiramo preostale bitove, k2=b2`=0 i k3=b3`=1. Znai, K=1010. Ili, na sloenijem primeru, ako je B=101101000, tada je K= 010011000.

170

U brojnom sistemu koji koristi dvojini komplement, nula se tretira kao pozitivan broj, i predstavlja na jedinstveni nain: 000...00. Iz tog razloga broj pozitivnih brojeva je za jedan manji od broja negativnih. Naime, najvei pozitivni broj koji se moe predstaviti sa n bita u formatu dvojinog komplementa je 011...11 = 2 n-1, dok je najmanji negativan broj 10000000 = -(011...11 + 1) 2 = -(100...00)2 = -2n. Sabiranje i oduzimanje oznaenih brojeva (*) U prethodnom odeljku opisana su tri standardna naina za binarnu reprezentaciju brojeva. Meutim, nisu svi ovi naini podjednako pogodni za primenu u digitalnim sistemima. Osnovni kriterijum za izbor reprezentacije brojeva je lakoa sa kojom se nad brojevima u konkretnoj reprezentaciji obavljaju osnovne raunske operacije, kao to su sabiranje i oduzimanje. U ovom odeljku, na konkretnim primerima, ukazaemo na dobre i loe strane svake od tri reprezentacije. Sabiranje pozitivnih brojeva se obavlja na isti nain u sve tri reprezentacije, tj. na isti nain kao sabiranje neoznaenih brojeva. Meutim, kada se u raunicu uvedu i negativni brojevi, izmeu razliitih reprezentacija ispoljavaju se znaajne razlike. Sabiranje brojeva u formatu znak-magnituda Ako oba sabirka imaju isti znak, sabiranje brojeva u formatu znak-magnituda je jednostavno. Magnitude se saberu, a zbiru se dodeli znak sabiraka. Meutim, ako su sabirci razliitog znaka, sabiranje postaje sloenije. U tom sluaju, operacija sabiranja se svodi na oduzimanje manjeg broja od veeg. To znai da je za obavljanje operacije sabiranja neophodno digitalno kolo koje e ispitati znake sabiraka, uporediti njihove magnitude i biti u mogunosti da u zavisnosti od ishoda poreenja obavi sabiranje ili oduzimanje. Sloenost takvog kola je znaajno vea od odgovarajuih kola koja barataju brojevima u komplementarnim reprezentacijama. Iz tog razloga reprezentacija znak-magnituda se ne koristi kod digitalnih sistema. Sabiranje brojeva u jedininom komplementu Oigledna prednost jedininog u odnosu na dvojini komplement je u tome to se negativni broj lako odreuje prostim komplementiranjem svih bitova odgovarajueg pozitivnog broja. Na Sl. 4-44 je prikazano ta se deava prilikom sabiranja dva broja predstavljena u jedininom komplementu. Navedena su etiri sluaja, pri emu svaki sluaj odgovara jednoj konkretnoj kombinaciji znakova sabiraka. Kao to se moe videti na gornjoj polovini slike, izraunavanja 5 + 2 = 7 i (-5) + 2 = (-3) su trivijalna; prostim binarnim sabiranjem operanada, ukljuujui pri tome i bit znaka, dobija se ispravan rezultat. Meutim, to nije sluaj kod preostala dva primera. Izraunavanje 5 + (-2) = 3 daje bit vektor 10010. Prvo, rezultat ima pet, a ne etiri bita. Dodatni peti bit je posledica izlaznog prenosa iz pozicije znaka. Drugo, preostala etiri bita predstavljaju broj 2, a ne 3, to je oigledno pogrean rezultat. Meutim, ako uzmemo izlazni prenos sa pozicije znaka i dodamo ga rezultatu na poziciji najmanje teine, novi rezultat bie ispravna suma, tj. 3. Slina situacija se javlja kod sabiranja (-5) + (-2) = (-7). Nakon inicijalnog sabiranja, rezultat je pogrean, zato to su etiri bita sume 0111, to predstavlja +7, a ne -7. Ali, ponovo, tu je izlazni prenos iz pozicije bita znaka koji moe biti iskorien za korekciju rezultata, na nain kako je prikazano na Sl. 4-44.

Sl. 4-44 Primeri sabiranja u jedininom komplementu.

Zakljuak koji se namee na osnovu razmatranih primera je da sabiranje brojeva u jedininom komplementu u nekim sluajevima jednostavno, a u nekima nije. Ako je potrebna korekcija, neophodno je dodatno vreme kako bi se obavilo sabiranje inicijalnog rezultata i izlaznog prenosa. Tako, ukupno vreme sabiranja moe biti i dvostruko due od vremena sabiranja dva neoznaena broja. Sabiranje brojeva u dvojinom komplementu Razmotrimo istu kombinaciju brojeva koju smo koristili u primerima za jedinini komplement. Na Sl. 4-45 je ilustrovano kako se obavlja sabiranje brojeva predstavljenih u dvojinom komplementu. Sabiranja 5 + 2 = 7 i (5) + 2 = (-3) su trivijalna. Izraunavanje 5 + (-2) = 3 daje ispravna etiri bita rezultata, 0011. Pri tome, izlazni prenos iz pozicije bita znaka, koji u ovom sluaju postoji, moemo, prosto, ignorisati. etvrti sluaj je (-5) + (-2) = (-7). Ponovo, etiri bita rezultata, 1001, odgovaraju ispravnoj sumi (-7). I u ovom sluaju, izlazni prenos iz pozicije bita znaka se moe ignorisati.

171

Sl. 4-45 Primeri sabiranja u dvojinom komplementu.

Prethodni primeri pokazuju da je sabiranje brojeva u dvojinom komplementu veoma jednostavno. Brojevi se sabiranju zajedno sa bitom znaka, a rezultat je uvek ispravan. Eventualni izlazni prenos iz pozicije bita znaka se jednostavno ignorie. Znai, procedura sabiranja je uvek ista, nezavisno od znaka operanada, i moe se obaviti binarnim sabiraem, kao to je onaj sa Sl. 4-40. Zbog svega toga, reprezentacija brojeva u dvojinom komplementu je veoma pogodna za primenu u digitalnim sistemima. Oduzimanje u dvojinom komplementu Najlaki nain da se obavi oduzimanje je da se najpre umanjiocu promeni znak, a da se onda dobijena vrednost sabere sa umanjenikom. Promeni znaka umanjioca odgovara nalaenje njegovog dvojinog komplementa. Na Sl. 4-46 je na nekoliko karakteristinih primera ilustrovan ovaj postupak. Operacija 5 (+2) = 3 ukljuuje nalaenje dvojinog komplementa broja +2, to daje 1110. Kada se ovaj broj sabere sa 0101 = (+5), dobija se rezultat 0011 = (+3) uz generisanje prenosa iz pozicije bita znaka. Ako ignoriemo prenos, rezultat je taan. Slina situacija postoji za (-5) + (+2) = (-7). U preostala dva sluaja, izlazni prenos ne postoji i rezultat je taan.

Sl. 4-46 Primeri oduzimanja u dvojinom komplementu. Sl. 4-47 predstavlja jednu vizuelnu ilustraciju procesa sabiranja i oduzimanja 4-bitnih brojeva u dvojinom

komplementu. Slika prikazuje brojanik po ijem obodu su rasporeene svih 16 4-bitnih kombinacija. Ako bi smo ove binarne kombinacije interpretirali kao neoznaene cele brojeve, tada bi one predstavljale brojeve od 0 do 15. Ako ih tretiramo kao brojeve u dvojinom komplementu, tada njima odgovara opseg celih oznaenih brojeva od -8 do 7, kao to je naznaeno po unutranjem obodu brojanika. Kazaljku brojanika moemo podesiti na bilo koji broj, a zatim na taj broj moemo dodati broj +n tako to emo odbrojati n puta unapred, tj. okrenuti kazaljku za n koraka u smeru kretanja kazaljke na asovniku. Jasno je da okretanjem kazaljke za n koraka u suprotnom smeru, od polaznog broja oduzimamo broj n. Naravno, rezultat ovog postupka e biti taan samo ako je n dovoljno malo da kazaljka prilikom okretanje ne pree granicu izmeu +7 i -8.

Sl. 4-47 Grafika reprezentacija 4-bitnih brojeva u dvojinom komplementu.

Interesantno je uoiti jo i sledee. Krajnja pozicija kazaljke bie ista bilo da se ona okrene za n koraka u jednom smeru ili za 16-n koraka u suprotnom smeru. Dakle, umesto da radimo sa brojanikom ija kazaljka moe da se okree u oba smera, moemo koristiti brojanik sa kazaljkom koja se okree samo u smeru kretanja kazaljke na asovniku (odgovara sabiranju), a da u sluajevima kada elimo da obavimo oduzimanje, prethodno preraunamo broj koraka po formuli 16-n. Uoimo da 16-n predstavlja upravo dvojini komplement broja n, a

172

da ova grafika interpretacija potvruje nae ranije tvrenje da se oduzimanje brojeva u dvojinom komplementu moe obaviti sabiranjem umanjenika i dvojinog komplementa umanjioca. Sabira/oduzima Jedina razlika izmeu sabiranja i oduzimanja je u tome to je kod oduzimanja potrebno koristiti dvojini komplement jednog od operanada. Neka su X i Y dva broja, koja treba sabrati ili oduzeti i neka je Y broj koji prilikom oduzimanja slui kao umanjilac, tj. neka je S=XY. Kao to znamo, dvojini komplement operanda Y se moe dobiti dodavanjem jedinice na njegov jedinini komplement. Dodavanje jedinice na poziciju najmanje teine moe se postii postavljanjem bita ulaznog prenosa c0 na 1. Jedinini komplement datog broja se dobija komplementiranjem svih njegovih bitova. Komplementiranje broja se moe obaviti pomou NOT gejtova. Meutim, za ovu namenu bie nam potrebno fleksibilnije kolo, kako bi smo mogli da u zavisnosti od eljene operacije koristimo pravu ili komplementiranu vrednost operanda Y. Takvo kolo je XOR gejt. Interesantna osobina XOR kola je da jedan od njegovih ulaza moemo koristiti kao upravljaku promenljivu pomou koje emo birati da li e se na izlazu kola generisati prava ili komplementarna vrednost drugog ulaza. Ovo je jasno na osnovu definicije XOR operacije: z=x y = xy + xy Neka je x upravljaki ulaz. Za x=0, izlaz e biti identian ulazu y, tj. z= 0y + 0y=1y+0 y= y. Ali, ako je x=1, izlaz e biti jednak komplementu ulaza y, tj. z= 1y + 1y=0y+1 y= y. Drugim reima, za x=1 XOR gejt funkcionie kao invertor, dok za x=0, jednostavno prenosi vrednost sa ulaza y na izlaz. Kolo za sabiranje/oduzimanje moemo konstruisati na sledei nain. Pretpostavimo da postoji upravljaki signal koji odreuje da li treba obaviti sabiranje ili oduzimanje. Neka se ovaj signal zove Add / Sub (prema engleskim nazivima za sabiranje i oduzimanje: addition i subtraction). Takoe, neka vrednost 0 ovog signala bira sabiranje, a 1 oduzimanje. Crta iznad Add upravo ukazuje na ovu injenicu. Napomenimo da je ovo esto koriena konvencija, tj. da crta iznad imena upravljakog signala ukazuje da se akcija specificirana tim imenom obavlja kada signal ima vrednost 0. Neka je svaki bit operanda Y povezan na jedan ulaz jednog od XOR gejtova, a da su drugi ulazi svih XOR gejtova povezani na signal Add / Sub . Izlazi XOR gejtova predstavljaju Y, ako je Add / Sub =0, odnosno Y, ako je Add / Sub =1. Tako dolazimo do kola sa Sl. 4-48. Glavni deo ovog kola je n-to bitni sabira, koji moe biti realizovan korienjem strukture sabiraa sa rednim prenosom sa Sl. 4-40(a). Uoimo da je upravljaki ulaz Add / Sub povezan i na ulaz c0 sabiraa. Na ovaj nain, bie c0=1 kada se obavlja oduzimanje, to dodaje jedinicu koja je neophodna da bi se formirao dvojini komplement operanda Y. Kada se obavlja operacija sabiranja, c0 e biti 0 i nee uticati na rezultat.

Sl. 4-48 Sabira/oduzima.

Kombinovano kolo za sabiranje i oduzimanje je dobar primer jednog vanog koncepta koji se primenjuje u projektovanju digitalnih sistema. Korisno je projektovati kola koja e biti to je mogue vie fleksibilna i na taj nain iskoristiti zajednike delove kola za to vie razliitih zadataka. Ovakvim pristupom minimizuje se broj gejtova potrebnih za realizaciju sistema. Takoe, znaajno se smanjuje sloenost povezivanja komponenti sistema. Aritmetiko prekoraenje Ako operacija sabiranja ili oduzimanja generie rezultat koji premauje opseg brojnog sistema kaemo da je dolo do aritmetikog prekoraenja. Drugim reima, aritmetiko prekoraenje se javlja u situacijama kada je rezultat pozitivan i suvie veliki ili negativan i suvie mali tako da ga nije mogue predstaviti raspoloivim znaajnim bitovima. Ako za predstavljanje oznaenih brojeva koristimo n bita, tada rezultat mora biti u opsegu od -2n-1 do (2n-1-1). Kada su sabirci razliitog znaka, do aritmetikog prekoraenja nikada nee doi, zato to e rezultat uvek biti manji od pozitivnog i vei od negativnog sabirka. Meutim, ako su sabirci istog znaka, moe

173

se desiti da rezultat bude vei od 2n-1-1, ako su oba sabirka pozitivna, odnosno, manji od -2 n-1, ako su sabirci negativni. Da bi se osigurao ispravan rad aritmetikog kola, neophodno je biti u mogunosti detektovati pojavu aritmetikog prekoraenja.

Sl. 4-49 Primeri za odreivanje uslova prekoraenja.

Na Sl. 4-49 su prikazana etiri sluaja sabiranja brojeva u dvojinom komplementu ije su magnitude 7 i 2. S obzirom da u ovom primeru za predstavljanje brojeva koristimo 4 bita, broj znaajnih bitova je tri, b0-2. Kao to se vidi sa Sl. 4-49, kada su sabirci razliitog znaka rezultat je taan, tj. nema prekoraenja. Meutim, ako oba broja imaju isti znak, magnituda rezultata je 9 i ne moe biti predstavljena sa samo tri znaajna bita, tj. dolazi do prekoraenja. Klju za detekciju pojave prekoraenja su dva prenosa: c3 izlazni prenos iz pozicije najvee teine i c4 izlazni prenos iz pozicije znaka. Na osnovu primera sa Sl. 4-49, moe se zakljuiti da se prekoraenje javlja kada ova dva bita imaju razliite vrednosti, a da je rezultat ispravan ako su njihove vrednosti iste. Izraen u obliku logikog izraza, uslov prekoraenja glasi: Prekoraenje = c3c4 + c3c4 = c3 c4 Ili, u optem sluaju, za n bitne brojeve, imamo: Prekoraenje = cn-1 cn Na Sl. 4-50(a) je prikazana struktura sabiraa/oduzimaa sa kolom za detekciju prekoraenja koje ispituje izlazne prenose. Drugi nain za detekciju aritmetikog prekoraenja uporeuje bitove znaka sabiraka i rezultata. Neka su X=xn1xn-2x0 i Y=yn-1yn-2y0 binarni brojevi u dvojinom komplementu, i S=sn-1sn-2s0 rezultat njihovog sabiranja. Bitovi xn-1, yn-1 i sn-1 su bitovi znaka ova tri broja. Aritmetiko prekoraenje postoji ako smo sabiranjem pozitivnih brojeva dobili negativan rezultat ili ako smo sabiranjem negativnih brojeva dobili pozitivan rezultat, tj.: Prekoraenje = xn-1yn-1sn-1 + xn-1yn-1sn-1 Isto tvrenje, kazano drugim reima, glasi: do prekoraenja je dolo ako se rezultat razlikuje po znaku od oba sabirka, tj.: Prekoraenje = (xn-1 sn-1) (yn-1 sn-1) Kolo sabiraa/oduzimaa kod koga je detekcija prekoraenja realizovana shodno gornjem izrazu prikazano je na
Sl. 4-50(b). Uoimo da je prvi nain za detekciju prekoraenja, Sl. 4-50(a), jednostavniji, jer zahteva sam jo

jedno dodatno XOR kolo, za razliku od drugog kod koga je potrebno ugraditi dodatna tri gejta. Meutim, prvo reenje podrazumeva da je signal izlaznog prenosa cn-1 dostupan, to ne mora biti sluaj ako raspolaemo sabiraem koji se realizovan kao monolitna komponenta. U tom smislu, drugo reenja je pogodnije jer koristi samo spoljanje signale sabiraa/oduzimaa.

174

yn-1

yn-2

y1

y0 Add/Sub

xn-1

xn-2

x1

x0

Prekoraenje

cn FA

cn-1 FA

cn-2

...

c2 FA

c1 FA c0

sn-1 Pozicija znaka

sn-2 MSB pozicija

s1

s0 LSB pozicija

(a)

(b) Sl. 4-50 Dva naina za detekciju aritmetikog prekoraenja: (a) na osnovu izlaznih prenosa; (b) na osnovu znaka sabiraka i rezultata.

Napomenimo da su dva pravila za detekciju aritmetikog prekoraenja, u sutini, ekvivalentna. Potpuni sabira na poziciji bita znaka obavlja sledee izraunavanje: (cn, sn-1) = (xn-1 + yn-1 + cn-1). Ako su oba sabirka pozitivna, xn-1=yn-1=0, izlazni prenos iz pozicije znaka bie cn=0, bez obzira na vrednost cn-1. Za cn-1=0, bit znaka rezultata bie sn-1=0, to ukazuje da je rezultat pozitivan i da zbog toga prekoraenja nema. Meutim, ako je cn-1=1, bit znaka dobija vrednost sn-1=1, to ukazuje na negativan rezultat, tj. na pojavu prekoraenja. Slino, ako su oba sabirka negativna, xn-1=yn-1=1, izlazni prenos iz pozicije znaka bie cn=1, bez obzira na vrednost cn-1. Meutim, za cn-1=0, bit znaka dobija vrednost sn-1=0, to ukazuje na pozitivan rezultat, odnosno na prekoraenje. Dakle, u oba sluaja vai da prekoraenje postoji ako je cncn-1. Performanse sabiraa sa rednim prenosom Sabiranje i oduzimanje brojeva su bazine operacije koje se esto obavljaju u raunarskim sistemima. Brzina izvrenja ovih operacija ima veliki uticaj na ukupne performanse raunara. Iz tog razloga, razmotrimo brzinu rada kola za sabiranje i oduzimanje. Brzina rada ovog kola odreena je kanjenjem od trenutka kada se na ulaze kola postave operandi X i Y do trenutka kada se na izlazu kola generiu korektne vrednosti svih bitova sume S i izlaznog prenosa cn. Najvei deo ovog kanjenja potie od n-bitnog sabiraa. Pretpostavimo da je sabira realizovan korienjem strukture sa rednim prenosom (Sl. 4-40), kod koje su potpuni sabirai realizovani kao na Sl. 4-38. Kao to se lako moe zakljuiti sa Sl. 4-38, kod ove realizacije potpunog sabiraa, kanjenje izlaznog prenosa, t, jednako je kanjenju kroz dva gejta, tj. t=2tg, gde je tg kanjenje kroz jedan gejt. Ukupno kanjenje sabiraa sa rednim prenosom iznosi nt, to je ekvivalentno kanjenju kroz 2n gejta. Pored kanjenja koje je posledica prostiranja signala prenosa kroz sabira, na ukupno kanjenje kola za sabiranje i oduzimanje dodatno utiu i ulazna XOR kola. Ako pretpostavimo da je kanjenje kroz XOR kolo jednako tg, dolazimo do zakljuka da kolo za sabiranje i oduzimanje unosi kanjenje ekvivalentno kanjenju kroz 2n+1 gejt. Za vee n, npr. n=32 ili n=64, iznos kanjenja moe biti toliko veliki da znaajno degradira performanse celog sistema. Zato je bitno ispitati mogunost alternativne realizacije binarnog sabiraa, koja e se odlikovati veom brzinom rada. Brzina rada bilo kog digitalnog kola ograniena je najveim kanjenje du neke od putanja kroz kolo. U sluaju kola sa Sl. 4-48, najdue kanjenje se javlja du putanje koja kree od ulaza yi, prolazi kroz XOR gejt, a zatim kroz kola za generisanje prenosa svih potpunih sabiraa. Najdue kanjenje se zove kanjenje kritinog puta, a putanja koja uslovljava ovo kanjenje kritina putanja.

175

4.2.2 Brzi sabirai


Sabira sa ubrzanim prenosom Kanjenje uzrokovano propagacijom signala prenosa kroz sabira sa rednim prenosom moe se smanjiti ako promenimo strukturu sabiraa na nain da svaki stepen i, umesto da eka da od stepena i-1 dobije ulazni prenos ci, pre nego to generie svoj bit sume si, samostalno pokua da odredi da li e vrednost ulaznog prenosa biti 0 ili 1. Da bi ukupne performanse sabiraa bile poboljanje, potrebo je da korektna procena vrednosti ulaznog prenosa bude obavljena za to je mogue krae vreme. Poimo od izraza za funkciju izlaznog prenosa i-tog stepena sabiraa: ci+1 = xiyi + xici + yici Ako ovaj izraz rastavimo na sledei nain: ci+1 = xiyi + (xi + yi)ci funkciju ci+1 moemo napisati u obliku: ci+1 = gi + pici gde je: gi = xiyi p i = xi + yi Jednainu (4.1) moemo protumaiti na sledei nain. Kada je gi=1, tj. xi=yi=1, stepen i generie izlazni prenos, ci+1=1, bez obzira na vrednost ulaznog prenosa ci. Zato se g zove funkcija generisanog prenosa. Funkcija pi jednaka je 1 ako je barem jedan od ulaza xi i yi jednak 1. U ovom sluaju, ci=1 uslovljava generisanje izlaznog prenosa ci+1, tj. efekat je kao da se ulazni prenos preneo na izlaz. Zbog toga se funkcija p zove funkcija propagiranog prenosa. Dakle, stepen i generie prenos ako su oba njegova sabirka jednaka 1, a propagira prenos ako je jedan od sabiraka jednak 1. Jednaina (5.3) nam omoguava da rekurzivnom zamenom lana ci eliminiemo propagaciju prenosa kroz sabira. Naime, kao to je ci+1 = gi + pici, tako je i ci = gi-1 + pi-1ci-1. Dakle, ci+1 = gi + pi(gi-1 + pi-1ci-1) = gi + pigi-1 + pipi-1ci-1 Nastavljajui sa smenama, sve do c0, dolazimo do izraza za ci+1 sledeeg oblika: ci+1 = gi + pigi-1 + pipi-1gi-2 + ... + pipi-1... p2p1g0 + pipi-1...p1p0c0 (4.2) (4.1)

Dobijeni izraz se moe realizovati u vidu tronivovske AND-OR mree. U prvom nivou raunaju se funkcije generisanog i propagiranog prenosa, gi i pi. U drugom nivou, izraunavaju se produktni lanovi, koji se, potom, sumiraju u treem nivou. S obzirom na mali broj nivoa, ci+1 se izraunava veoma brzo. ta vie, kanjenje u izraunavanju izlaznih prenosa ci+1 je fiksno i ne zavisi od i, to znai da ni ukupno kanjenje sabiraa ne zavisi od obima operanada, tj. n. Binarni sabira zasnovan na izrazu (4.2) zove se sabira sa ubrzanim prenosom ili CLA sabira, prema engleskom nazivu Carry-Lookahead Adder. Da bi smo bolje razumeli fiziko znaenje izraza (4.2) uporediemo konstrukcije sabiraa sa ubrzanim i sabiraa sa rednim prenosom. U tom cilju, analizaemo detaljnu strukturu dva stepena najmanje teine oba sabiraa.
Sl. 4-51 prikazuje prva dva stepena sabiraa sa rednim prenosom kod koga su funkcije izlaznog prenosa

realizovane shodno izrazu (4.1). Mala brzina rada sabiraa sa rednim prenosom posledica je dugake putanje du koje se prostire signal prenosa. Kao to je posebno naznaeno na Sl. 4-51, kritini put polazi od ulaza x0 i y0 i protee se do izlaza c2, prolazei kroz 5 gejta: 3 gejta u stepenu 0 i 2 u stepenu 1. Za sabira sa n stepena, kritini put se nastavlja dalje sve do izlaza cn, prolazei kroz svaki sledei stepen na isti nain kao kroz stepen 1. Dakle, kanjenje kritinog puta sabiraa sa rednim prenosom iznosi 2n+1.

176

Sl. 4-51 Detaljna struktura sabiraa sa rednim prenosom.

Na Sl. 4-52 je prikazana detaljna struktura prva dva stepena sabiraa sa ubrzanim prenosom. Sada su funkcije izlaznog prenosa realizovane shodno izrazu (4.2), tj.: c1 = g0 + p0c0 c2 = g1 + p1g0 + p1p0c0 Kao to se moe uoiti sa Sl. 4-52, u svakom stepenu sabiraa sa rednim prenosom generiu se funkcije generisanog i propagiranog prenosa. Lokalno, ove funkcije se koriste, zajedno sa funkcijama g i p svih prethodnih stepena, za generisanje izlaznog prenosa tog stepene, ali i prosleuju dalje ka svim narednim stepenima gde se koriste za odreivanje njihovih izlaznih prenosa. Kritini put za odreivanje izlaznog prenosa c2 naznaen je na Sl. 4-52. U ovom kolu, c2 se odreuje jednako brzo kao i c1, tj. nakon vremena koje je jednako kanjenju kroz tri gejta, tj. 3tg. ak iako ovu strukturu proirimo na n bita, konani izlazni prenos cn generisae se sa kanjenjem od 3tg. Naravno, to je i vee, tj. kako se kreemo ka pozicijama vee teine, to izrazi za funkcije ci+1 postaju sve sloeniji, to zahteva sve vei broj gejetova za njihovu realizaciju. Meutim, bez obzira na sloenost, broj nivoa logike za izraunavanje ci+1 ostaje isti, tj. tri. Ukupno kanjenje n-to bitnog sabiraa sa ubrzanim prenosom isnosi 4tg. Vrednosti svih funkcija gi i pi odreuju se nakon vremena tg. Dodatno kanjenje od 2tg potrebno je za odreivanje svih signala prenosa. Konano, treba saekati jo dodatno vreme tg da bi se na izlazima svih XOR kola generisali bitovi sume.

Sl. 4-52 Prva dva stepena sabiraa sa ubrzanim prenosom.

177

Izraz (4.2) se moe realizovati pomou brze, tri-nivolske AND-OR mree. Meutim, za veliko i broj ulaza u pojedine gejtove, koji su potrebni za realizaciju ove funkcije, postaje isuvie veliki. Kao to je poznato iz poglavlja X, kod veine implementacionih tehnologija broj ulaza u gejtove, tj. fan-in faktor, ogranien je na relativno mali broj. Zato je neophodno prilikom projektovanja sabiraa sa ubrzanim prenosom uzeti u obzir i ovu injenicu. Da bi smo blie ukazali na ovaj problem, razmotrimo izraze za prvih osam izlaznih prenosa: c1 = g0 + p0c0 c2 = g1 + p1g0 + p1p0c0 ... c8 = g7 + p7g6 + p7p6g5 + p7p6p5g4 + p7p6p5p4g3 + p7p6p5p4p3g2 + p7p6p5p4p3p2g1 + p7p6p5p4p3p2p1g0 + p7p6p5p4p3p2p1p0c0 Pretpostavimo da je fan-in raspoloivih gejtova ogranien na etiri ulaza. Oigledno, pomou takvih gejtova nije mogue realizovati sve prethodne izraze u obliku tri-nivolske AND-OR mree. Nejvei problem je c8, gde se ak zahteva jedno AND kolo sa 9 ulaza. Takoi, i za sumiranje produktnih lanova potrebno je OR kolo sa 9 ulaza. Potreba za logikim kolima sa velikim brojem ulaza potie od produktnih i zbirnih lanova sa velikim brojem literala. Meutim, pravilnom faktorizacijom, mogue je smanjiti maksimalnu veliinu lanova u logikom izrazu. Jedno mogue reenje je sledee: c8 = (g7 + p7g6 + p7p6g5 + p7p6p5g4)+ [(p7p6p5p4)(g3 + p3g2 + p3p2g1 +p3p2p1g0)] + (p7p6p5p4)(p3p2p1p0)c0 Za realizaciju ovog izraza potrebna su 11 AND i tri OR gejta. Meutim, sada propagaciono kanjenje iznosi ne vie 3tg ve 5tg: jedno tg za odreivanje gi i pi; 2tg za sumiranje produktnih lanova u zagradama; jedno tg za produktni lan u velikim zagradama i jo jedno tg za konano sumiranje. Dakle, ogranienje u pogledu maksimalnog broja ulaza u gejtove manifestuje se u poveanju broja nivoa AND-OR mree, to neminovno poveava propagaciono kanjenje. Ovaj zakljuak nije ogranien samo na konkretno kolo, ve vei generalno za bilo koju logiku mreu. Hijerarhijski sabira sa ubrzanim prenosom Projektovanje digitalnih sistema po pravilu zahteva nalaenje optimalnog kompromisa izmeu brzine rada sistema i njegove cene (sloenosti). Tenja da se to vie povea brzina rada, obino ima za posledicu poveanje cene sistema. Isto tako, sloenost sistema obino nije mogue smanjiti, a da to nema za posledicu smanjenje brzine rada. U kontekstu binarnog sabiraa, struktura sa rednim prenosom predstavlja najjednostavnije, ali u isto vreme i najsporije reenje. Sa druge strane, sabira sa ubrzanim prenosom predstavlja najbre reenje, ali zato za neke primene, njegova sloenost moe biti isuvie velika. Meutim, mogu postojati primene kada ni jedna od ove dve varijante sabiraa ne zadovoljava postavljene zahteve sabira sa rednim prenosom moe biti previe spor, a sabira sa ubrzanim prenosom previe sloen. Zato je bitno raspolagati nekom fleksibilnom sabirakom strukturom koja e omoguiti lako nalaenje kompromisa izmeu sloenosti i brzine rada. Jedna takva struktura je hijerarhijski sabira sa ubrzanim prenosom. Pretpostavimo da elimo da projektujemo 32-sabira. Sabira moemo podeliti na etiri 8-bitna bloka, tako da bitovi b0-7 pripadaju bloku 0, bitovi b8-15 bloku 1, bitovi b16-23 bloku 2 i bitovi b24-32 bloku 3. Svaki blok moemo realizovati kao 8-bitni sabira sa ubrzanim prenosom. Signali izlaznog prenosa iz ovih blokova su c8, c16, c24 i c32. Postoje dva naina kako 8-bitne blokove moemo povezati u jedinstveni 32-bitni sabira. Jedno reenje je da blokove poveemo na isti nain kao to bi smo povezali etiri stepena sabiraa sa rednim prenosom (Sl. 4-53). Znai, kod ovog reenja unutar blokova koristimo tehniku ubrzanog prenosa, dok se izmeu blokva prenos prenosi redno.

Sl. 4-53 Hijerarhijski CLA sabira sa rednim prenosom izmeu blokova.

Bre kolo se moe realizovati ako se i za generisanje prenosa izmeu blokova, umesto rednog prenosa, koristi tehnika ubrzanog prenosa. Na Sl. 4-66 je prikazana struktura hijerarhijskog sabiraa sa ubrzanim prenosom kod koga je iskoriena ova tehnika. Svaki blok na gornjem delu Sl. 4-66 predstavlja jedan 8-bitni sabira sa ubrzanim prenosom. Unutar bloka, u svakom njegovom unutranjem stepenu generiu se signali generisanog i

178

propagiranog prenosa, gi i pi. Meutim, umesto da svaki blok generie signal izlaznog prenosa iz svoje pozicije navee teine, kao u reenju sa Sl. 4-53, sada svaki blok generie signale generisanog i propagiranog prenosa za celokupan blok. Neka su ovi signali oznaeni sa Gj i Pj. Signali Gj i Pj se koriste kao ulazi u kola za ubrzanje prenosa drugog nivoa, prikazana u doljem delu Sl. 4-66, koja odreuju prenose izmeu blokova. Izraze za funkcije Gj i Pj moemo odrediti na osnovu poznatog izraza za c8: c8 = g7 + p7g6 + p7p6g5 + p7p6p5g4 + p7p6p5p4g3 + p7p6p5p4p3g2 + p7p6p5p4p3p2g1 + p7p6p5p4p3p2p1g0 + p7p6p5p4p3p2p1p0c0 Poslednji lan u ovom izrazu kazuje da ako su sve interne funkcije propagiranog prenosa, pi, i=1,..,7, jednake 1, tada se signal ulaznog prenosa, c0, prenosi kroz celokupan blok. Dakle, P0 = p7p6p5p4p3p2p1p0 Preostali lanovi u izrazu za c8 ukazuju na sve ostale sluajeve kada blok generie izlazni prenos. Dakle, G0 = g7 + p7g6 + p7p6g5 + ... + p7p6p5p4p3p2g1 + p7p6p5p4p3p2p1g0 Konano, izraz za c8 hijerarhijskog sabiraa oblika je: c8 = G0 + P0c0 Za blok 1, izrazi za G1 i P1 imaju istu formu, osim to indeks i treba zameniti indeksom i+8. Izrazi za G2, P2, G3 i P3, odreuju se na isti nain. Ako znamo funkcije generisanog i propagiranog prenosa na nivou blokova, tada moemo odrediti i izraze za ulazne prenose u svaki pojedinani blok: c16 = G1 + P1c8 = G1 + P1G0 +P1P0 c0 Slino, izrazi za c24 i c32 su oblika: c24 = G2 + P2G1 +P2P1G0 + P2P1P0c0 c32 = G3 + P3G2 +P3P2G1 + P3P2P1G0 + P3P2P1P0c0 Izraunavanje signala prenosa c8, c16, c24 i c32 na osnovu poznatih vrednosti Gj i Pj unosi dva dodatna nivoa logike. Znai, pod pretpostavkom da je fan-in ogranien na 4 ulaza, vreme potrebno da se obavi sabiranje dva 32-bitna broja iznosi: 5tg za odreivanje Gj i Pj (na osnovu prethodno sprovedene analize za c8), plus 3tg za ubrzanje prenosa na drugom nivou (zato to dva gejta u izrazu za c32 zahtevaju 5 ulaza i zbog toga moraju biti faktorizovani), plus jedno tg (XOR) za odreivanje bitova sume, to u zbiru daje 9tg. Tanije, konana suma se generie posle 8tg zato to c32 ne utie na bitove sume. Meutim, c32 se koristi za detekciju aritmetikog prekoraenja (Prekoraenje = c32 c31). Dakle, trajanje operacije sabiranja, ukljuujui detekciju prekoraenja, ekvivalentno je kanjenju kroz 9 gejtova.

Sl. 4-54 Hijerarhijski sabira sa ubrzanim prenosom.

Ranije smo utvrdili da sabiranje dva n-to bitna broja pomou sabiraa sa rednim prenosom traje (2n+1)tg, to za n=32 iznosi 65tg. Oigledno, isti zadatak sabira sa ubrzanim prenosom obavi za oko 7 puta bre. Ovo znaajno poboljanje performansi ostvareno je na raun znaajno vee sloenosti sabiraa sa ubrzanim prenosom.

179

Sabirai sa izborom prenosa Na Sl. 4-55(a) je prikazan n-bitni sabira formiran serijskim povezivanjem dva manja sabiraa. Sabira SL obavlja sabiranje na niim pozicijama (k-1, ..., 0), a SH na viim pozicijama (n-1, ..., k). Ukupno kanjenje nbitnog sabiraa iznosi tp=tL + tH, gde je tL kanjenje kroz sabira SL, a tH kanjenje kroz sabira SH. Iako se sabirci istovremeno dovode na oba manja sabiraa, sabira SH nije u mogunosti da odredi korektan zbir sve dok od sabiraa SL ne dobije informaciju od vrednosti prenosa ck. Meutim, uoimo da iako nepoznate vrednosti, ck moe biti samo 0 ili 1. Odnosno, zbir koji daje SH moe biti Xn-1, ..., k + Yn-1, ..., k (za ck=0) ili Xn-1, ..., k + Yn-1, ..., k + 1 (za ck=1). Ovo zapaanje nas dovodi do osnovne ideje sabiraa sa izabranim prenosom (ili CSA Carry Select Adder). (Sl. 4-55(b)). Umesto jednog koriste se dva sabiraa za vie pozicije, SH0 i SH1, koji rade paralelno nad istim operandima, s tim da SH0 kao ulazni prenos ima konstantu 0, a SH1 konstantu 1. Na taj nain, SH0 generie Xn-1, ..., k + Yn-1, ..., k, a SH1 Xn-1, ..., k + Yn-1, ..., k + 1. Onog momenta kada tana vrednost ulaznog prenosa ck postane poznata, kroz multiplekser se na izlaz proputa jedan od dva alternativna rezultata.
Xn-1...k Yn-1...k Xn-1...k Yn-1...k Xk-1...0 Yk-1...0

Xn-1...k

Yn-1...k

Xk-1...0

Yk-1...0

SH1

SH0

0 ck

SL

SH

ck

1 SL MUX

0 S

Sn-1...k

Sk-1...0

Sn-1...k

Sk-1...0

(a)

(b)

Sl. 4-55 (a) redna sprega sabiraa (b) sabira sa izborom prenosa.

Zanemarujui kanjenje kroz multiplekser, kanjenje n-bitnog sabiraa je smanjeno na tp=max{tL,tH}. Vea brzina rada postignuta je zahvaljujui obimnijem hardveru.

4.2.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. 4-56(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. 4-56(b), dok je na Sl. 4-56(c) prikazan grafiki simbol n-bitne logike jedinice. U optem sluaju, bilo koja n-bitna logika jedinica imae n identinih

180

segmenata, koji konkurentno obavljaju istu funkciju nad parovima odgovarajuih bitova dva n-bitna operanda. Na Sl. 4-56(d) prikazan je primer 8-bitne logike jedinice.

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

4.2.4 Aritmetiko-logika jedinica


Aritmetiko-logika jedinica (ili ALU prema engleskom nazivu Arithmetic and Logic Unit) je vie-funkcijsko, 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 prikazano na Sl. 4-57. U nastavku e biti izloena procedura projektovanja ekspandera AE i LE na primeru ALU jedinice koja obavlja etiri aritmetike i etiri logike operacije.

181

a3

b3

a2

b2

a1

b1

a0

b0

LE

AE

LE

AE

LE

AE

LE

AE

x3 c4

y3 c3 FA

x2

y2 c2 FA

x1

y1 c1 FA

x0

y0 c0

FA

f3

f2

f1

f0

Sl. 4-57 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. 4-58(a), za aritmetike, i tabelom sa Sl. 4-59(a), za logike operacije.
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 0 1 0 1 0 1 0 1 X yi 1 1 0 1 1 0 0 0 0

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

(c)

(d)

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

U funkcionalnnoj tabeli sa Sl. 4-58(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. 4-58(b). Ova tabela je dobijena na osnovu funkcionalne tabele sa Sl. 4-58(a) tako to je kolona Y zamenjena kolonama bi i yi. Na Sl. 4-58(c) prikazana je Karnoova mapa AE ekspandera, na osnovu koje sledi izlaz: yi=MS1bi+MS0bi'. Konano, struktura AE ekspandera prikazana je na Sl. 4-58(a). Projektovanje logikog ekspandera, takoe, zapoinje funkcionalnom tabelom koja definie logike operacije, a koja je prikazana na Sl. 4-59(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

182

odgovara izabranoj logikoj operaciji. Na osnovu funkcionalne tabele sa Sl. 4-59(a), u mogunosti smo da formiramo tabelu istinitosti logikog ekspandera, koja je prikazana na Sl. 4-59(b). Na osnovu odgovarajue Karnoove mape Sl. 4-59(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. 4-59(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 a i' a ibi ai a i+bi ai

(c)

(d)

Sl. 4-59 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. 4-60(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. 4-60(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.

183

(a)

(b) Sl. 4-60 ALU modul: (a) 4-bitna ALU; (b) grafiki simbol.

4.2.5 Mnoai (*)

4.2.6 Specifini formati za predstavljanje brojeva


U prethodnim odeljcima bavili smo se iskljuivo celim binarnim brojevima predstavljenim u pozicionom brojnom sistemu. Meutim, kod digitalnih sistema u upotrebi su i neki drugi, specifini formati za predstavljanje brojeva. U ovom odeljku ukratko emo se upoznati sa tri takva formata: brojevi u fiksnom zarezu, brojevi u pokretnom zarezu i binarno-kodirani decimalni brojevi. Brojevi u fiksnom zarezu Kod nekih aplikacija, zahteva se manipulacija brojevima koji nisu celobrojnog tipa. Jedno reenje je korienje brojeva u fiksnom zarezu. Broj u fiksnim zarezom, se sastoji iz celog i razlomljenog dela. Ovakav broj se zapisuje u pozicionom brojnom sistemu na sledei nain: B = bn-1bn-2...b1b0 . b-1b-2...b-k Pozicije levo od take, definiu ceo, a desno od take razlomljni deo broja. Teine pozicija u razlomljenom delu su negativni stepeni osnove brojnog sistema. U binarnom brojnom sistemu, vrednost broja B iznosi:
V ( B) =

i=k

b 2
i

n 1

Prevoenje razlomljenog binarnog broja u decimalni ekvivalent je trivijalno i obavlja se primenom prethodne jednaine, pri emu se sve operacije obavljaju u decimalnom brojnom sistemu. Na primer, decimalni ekvivalent broja (1101.101)2 iznosi: (1101.101)2 = (1 23 + 1 22 + 0 21 + 1 20 + 1 2-1 + 0 2-2 + 1 2-3)10 = (8 + 4 + 1 + 1/2 + 1/8) 10 = (13 + 0.5 + 0.125) 10 = (13.562)10

184

Prevoenje decimilanog broja sa takom u binarni broj obuhvata nezavnisno prevoenje celog i razlomljenog dela. Celi deo se prevodi na poznati nain, tj. uzastopnim deljenjem sa 2 i izdvajanjem ostatka. Slino, razlomljeni deo se prevodi u binarni ekvivalent uzastopnim mnoenjem sa 2 i izdvajanjem celobrojnog dela iz dobijenog proizvoda. Neka razlomljeni decimalni broj D=0.d-1d-2 ... d-m, vrednosti V, treba konvertovati u binarni broj B=0.b-1b-2 ... b-k. Znai, treba odrediti bitove b-1, b-2, ..., b-k, tako da vai: V = b-1 2-1 + b-2 2-2 + ... + b-k 2-k Ako V pomnoimo sa 2, dobiemo: 2 V= b-1 20 + b-2 2-1 ... + b-k 2-(k-1) Celobrojni deo ovog mnoenja je b-1, a razlomljeni b-2 21 ... + b-k 2-(k-1), tj. 0.b-2b-3...b-k. Znai, ako mnoenjem polaznog decimalnog broja dobijemo kao celobrojni deo 0, vai b-1=0, a ako dobijemo 1, vai b-1=1. Mnoenjem dobijenog razlomljenog broja sa 2, kao celobrojni deo dobiemo b-2, a novi razlomljeni broj bie je: 0.b-3b-4...b-k. Ako nastavimo da mnoimo novi razlomljeni broj sa 2 i odreujemo po jedan bit u svakom koraku, dobiemo sve bitove binarnog broja. Ovaj postupak se nastavlja sve dok razlomljeni broj ne postane jednak 0. Pr. 4-8 Odrediti binarni ekvivalent decimalnog broja 14.703125. Celobrojni deo zadatog decimalnog broja je (14) 10, a razlomljeni (0.703125) 10. Na poznati nain nalazimo binarni ekvivalent celog dela: (14)10 = (1110)2 Da bi smo nali binarni broj koji odgovara razlomljenom delu, primenjujemo prethodno opisanu proceduru konverzije: 0.703125 2 = 1.40625 b-1=1 0.40625 2 = 0.8125 b-2=0 0.8125 2 = 1.625 b-3=1 0.625 2 = 1.25 b-4=1 0.25 2 = 0.5 b-5=0 0.5 2 = 1.0 b-6=1 Dakle, (14.703125) 10 = (1110.101101) 2 Kao to znamo iz elementrane matematike, racionalan broj je onaj koji iza take ima konaan broj cifara. Broj sa beskonanim brojem cifara iza take je iracionalan. Prevoenjem racionalnog binarnog broja u decimalni brojni sistem uvek se dobija racionalni decimalni broj. Meutim, prilikom obrunute konverzije, neki brojevi koji su u decimalnom sistemu racionalni u binarnom sistemu postaju iracionalni. Pr. 4-9 Odrediti binarni ekvivalent decimalnog broja 0.55. 0.55 2 = 1.1 b-1=1 0.1 2 = 0.2 b-2=0 0.2 2 = 0.4 b-3=0 0.4 2 = 0.8 b-4=0 0.8 2 = 1.6 b-5=1 0.6 2 = 1.2 b-6=1 0.2 2 = 0.4 b-7=0 0.4 2 = 0.8 b-8=0 ... Proces konverzije moemo nastaviti u nedgled, ali uslov kraja (razlomljeni deo jednak nuli), nikada nee biti ispunjen. Paljivim analizom procesa konverzije moemo uoiti da e se u nastavku konverzije neprekidno ponavljati sekvenca razlomnjenih brojeva 0.2, 0.4, 0.8, 0.6. Dakle, (0.55) 10 = (0.10<0011>)2, gde uglaste zagrade obuhvataju binarnu sekvencu koja se neprekidno ponavlja, do u beskonanost. Poto digitalni sistemi mogu baratati samo brojevima ograniene duine, konverzija mora biti prekinuta kada se prekorai raspoloivi broj bitova, to naravno unosi greku. Na primer, ako je u primeru Pr. 4-9 broj bitova za predstavljanje razlomljenog dela ogranien na osam, decimalni broj 0.55 u digitalnom sistemu koji radi sa brojevima u fiksnom zarezu, e biti predstavljen sa: (0.10001100) 2, to ustvari odgovara decimalnom broju (0.546875)10. Digitalna kola koja barataju brojevima u fiksnom zarezu su u sutini ista kao i ona koja se koriste za celobrojne binarne brojeve, pa ih iz tog razloga neem posebno razmatrati.

185

Brojevi u pokretnom zarezu Opseg brojeva u fiksnom zarezu ogranien je brojem znaajnih cifara koje se koriste za predstavljanje broja. Na primer, ako za predstavljanje celih decimalnih brojeva koristimo 8 cifara i znak, opseg vrednosti koje se mogu predstaviti je 0 do 999999999. Ako osam cifara koristimo za predstavljanje razlomljenog dela, tada je opseg, obuhvaen ovakvom reprezentacijom, od 0.0000001 do 0.99999999. Me utim, kod mnogih tehnikih i naunih primena, esto je neophodno baratati brojevima koji su ili veoma veliki ili veoma mali. Umesto da koristimo reprezentaciju u fiksnom zarezu sa velikim brojem znaajnih cifara, bolje reenje je koristiti reprezentaciju u pokretnom zarezu. Broj u pokretnom zarezu je predstavljen manitsom (M), koja sadri znaajne cifre, i eksponentom (M) osnove R. Format ovog zapisa je sledei: M RE (5.6)

Brojevi se obino normalizuju, tako da je taka u mantisi uvek postavljena desno od prve nenulte cifre, kao na primer, 5.341 1042 ili 3.982 10-31. Dakle, broj u formatu pokretnog zareza se predstavlja parom (matnisa, eksponent), a pri tome se vrednost broja izraunava shodno izrazu (5.6). Binarna reprezentacija brojeva u formatu pokretnog zareza standardizovana je od strane organizacije IEEE. Ovaj standard definie dva formata: obina (ili jednostruka) preciznost i dvostruka preciznost. Na Sl. 4-61 su prikazani oblici oba formata.

(a)

(b)

Sl. 4-61 IEEE formati brojeva u pokretnom zarezu: (a) jednostruka preciznost; (b) dvostruka preciznost.

Jednostruka preciznost Format jednostruke preciznosti prikazan je na Sl. 4-61(a). Krajnji levi bit je bit znaka; 0 ukazuje na pozitivan, a 1 na negativan broj. 8-bitno polje E sadri vrednost eksponenta, a 23-bitno polje M vrednost mantise. Osnova je R=2. Uoimo da se osnova ne zapisuje, ve se podrazumeva. Eksponent moe biti kako pozitivan tako i negativan. Umesto da se eksponent kodira kao 8-bitni oznaeni broj, to bi omoguilo predstavljanje vrednosti eksponenta u opsegu -127 do +127, za kodiranje eksponenta, kod IEEE standarda se koristi format viak-127. U ovom formatu, sadraj polja E predstavlja zbir vrednosti stvarnog eksponenta i broja 127, tj. vai: eksponent = E 127. Vrednost 127 se naziva uveanjem, a E polarizovanim eksponentom. Kodiranje eksponenta u formatu viak127 omoguava da se eksponenti mogu lako porediti. S obzirom da je E uvek pozitivan broj, poreenje dva eksponenta se svodi na poreenje dva 8-bitni neoznaena cela brojeva. Dakle, opseg vrednosti polarizovanog eksponenta je 0E255. Pri tome, krajne vrednosti 0 i 255 imaju posebno znaenje. E=0 ukazuju na broj ija je vrednost 0 (ista nula); dok E=255 ukazuje na beskonano veliku vrednost. Izuzimajui ova dva specijalna suaja, normalni opseg eksponenta brojeva u jednostrukoj preciznosti je -126 do +127, to odgovara opsegu vrednosti u polju E od 1 do 254. Mantisa se predstavlja sa 23 bita. IEEE standard podrazumera normalizovanu mantisu, to znai da je bit najvee teine mantise uvek jednak 1. Zbog toga, ovaj bit moe biti izostavljen iz zapisa mantise. Na taj nain se efektivni broj bitava mantise poveava za jedan. Naime, ako je M binarna sekvenca u polju mantise, tada je stvarna vrednost mantise |M| = 1.M, to odgovara 24-bitnoj mantisi. Shodno tome, u formatu sa Sl. 4-61(a) mogue je predstaviti brojeve: Vrednost = 1.M 2E-127 Duina polja mantise od 23 bita omoguava predstavljanje brojeva sa preciznou koja odgovara preciznosti od oko 7 decimalnih cifara. Opseg eksponenta, 2 -126 do 2127, priblino odgovara opsegu 10 38. Dvostruka preciznost Format za predstavljanje brojeva u pokretnom zarezu dvostruke preciznosti prikazan je na Sl. 4-61(b). Kao to se moe videti, format dvostuke preciznosti koristi 64 bita, a u odnosu na jednostruku tanost proireni su i eksponent i mantisa. Time je pokriven daleko vei opseg i ostvarena vea preciznost brojeva. Polje za eksponent ima 11 bita i sadri vrednost eksponenta izraenu u formatu viak-1023, tako da vai: eksponent = E 1023

186

Opseg polarizovanog eksponent je 0E2047, pri emu se, slino kao i kod jednostruke tanosti, E=0 i E=2047 koriste za predstavljanje vrednosti nula i beskonano, respektivno. Time je opseg eksponenta ogranien na od 11023 = -1022 do 2046 1023 = 1023. Mantisa ima 52 bita. Poto se podrazumeva normalizovana mantisa, sadraj ovog polja ukazuje na mantisu oblika 1.M. Dakle, vrednost broja u pokretnom zarezu koje je predstavljen u formatu dvostruke tanosti iznosi: Vrednost = 1.M 2E-1023 Format dvostruke preciznosti omoguava predstavljanje brojeva koji imaju preciznost od oko 16 decimalnih cifara i opseg od oko 10 308. Sabiranje/oduzimanje brojeva u pokretnom zarezu Mogu se sabirati/oduzimati samo brojevi u pokretnom zarezu koji imaju isti eksponent. Ako se eksponenti razlikuju, njihova razlika se kompenzuje pomeranjem mantisa. Na primer, neka je potrebno sabrati brojeve 9.95 101 i 5 10-1. Najpre je potrebno izjednaiti eksponente. To se moe uraditi tako to e se manji od dva broja, 5 10-1, napisati u obliku 0.05 101, odnosno tako to e se mantisa ovog broja pomeriti za dve pozicije udesno, a eksponent sabrati sa 2. Nakon sabiranja mantisa dobijamo rezultat 10 101. Konano, rezultat se normalizuje na oblik 1 102. U optem sluaju vai sledee. Neka su X1=(M1, E1) i X2=(M2, E2) dva broja u pokertnom zarezu, gde su Mi=Si|Mi| vrednosti mantisa, a Xi=(-1)Si |Mi|REi-uveanje vrednosti brojeva Xi, i=1,2 i neka je: X=X1X2 = (M, E). Tada: E = max{E1, E2}, M M 2 R 1 2 , ako je E1 > E2 M = 1 E E M 1 R 2 1 M 2 , ako je E1 E2
E E

Postupak sabiranja/oduzimanja brojeva u pokretnom zarezu ine sledea tri koraka: 1.


2. 3.

Operandi se svode na jednake eksponente tako to se manji od dva operanda pomera udesno. Broj pozicija za pomeranje jednak je razlici dva eksponenta. Vei eksponent je ujedno i eksponent rezultata. Sabiranje/oduzimanje mantisa (po pravilu za sabiranje/oduzimanje celih brojeva u formatu znak i apsolutna vrednost). Ako je neophodno, mantisa rezultata se normalizuje uz odgovarajuu korekciju eksponenta.

Pr. 4-10 Sabiranje/oduzimanje brojeva u pokretnom zarezu Neka je R=2 i X1=(M1, E1) = (1001, 10), X2=(M2, E2) = (1100, 00). Odrediti X = X1 - X2. X = (1001, 10) - (1100, 00) 1. X = (1001, 10) - (0011, 10) 2. X = (0110, 10) 3. X = (1100, 01) Opisani postupak sabiranja/oduzimanja brojeva u pokretnom zarezu moe se predstaviti dijagramom sa Sl. 4-62, koji ukazuje na hardversku strukturu odgovarajueg digitalnog kola.

187

Sl. 4-62 Sabiranje/oduzimanje brojeva u pokretnom zarezu.

Mnoenje brojeva u pokretnom zarezu Mnoenje brojeva predstavljenih u pokretnom zarezu se obavlja tako to se njihove mantise pomnoe, a eksponenti saberu. U optem sluaju vai sledee. Neka su X1=(M1, E1) i X2=(M2, E2) dva broja u pokertnom zarezu, gde su Mi=Si|Mi| vrednosti mantisa, a Xi=(-1)Si |Mi|REi-uveanje vrednosti brojeva Xi, i=1,2 i neka je: X=X1 X2 = (M, E). Tada: M = M1 M2 E =E1 + E2 - uvecanje Oduzimanje uveanja (127 kod IEEE formata) od zbira eksponenta je neophodno zato to su E1 i E2 polarizovani eksponenti, jednaki zbiru vrednosti pravog eksponenta (ei) i uveanja, pa njihov zbir daje E1 + E2 = e1 + e2 + 2 uvecanje. Dakle, osnovni koraci postupka za mnoenje u pokretnom zarezu su: 1. 2. 3. 4. Saberu se eksponenti i od dobijenog zbira oduzme uveanje. Pomnoe se mantise brojeva (po pravilu za mnoenje celih brojeva u formatu znak i apsolutna vrednost). Dobijeni rezultat se normalizuje slinim postupkom kao kod sabiranja. Broj (binarnih) cifara proizvodu je dvostruko vei od broja cifara vrednost koje su mnoene; cifre koje su viak se odbacuju u procesu zaokruivanja.

Pr. 4-11 Mnoenje brojeva u pokretnom zarezu Neka je R=2 i X1=(M1, E1) = (1010, 01), X2=(M2, E2) = (1010, 10). Odrediti X = X1 S obzirom da se eksponent predstavlja sa 2 bita, vrednost uve anja je 22-1-1 = 1. X = (1010 1010, (01 + 10 - 1)) = (01100110, 10) = (1100, 01) -- zaokruivanje + normalizacija Opisani postupak sabiranja/oduzimanja brojeva u pokretnom zarezu moe se predstaviti dijagramom sa Sl. 4-63, koji ukazuje na hardversku strukturu odgovarajueg digitalnog kola.

X2.

188

Sl. 4-63 Mnoenje u pokretnom zarezu.

Deljenje brojeva u pokretnom zarezu Deljenje brojeva predstavljenih u pokretnom zarezu se obavlja tako to se njihove mantise podele, a eksponenti oduzmu. Neka su X1=(M1, E1) i X2=(M2, E2) dva broja u pokertnom zarezu, gde su Mi=Si|Mi| vrednosti mantisa, a Xi=(-1)Si |Mi|REi-uveanje vrednosti brojeva Xi, i=1,2 i neka je: X=X1 X2 = (M, E). Tada: M = M1 / M2 E =E1 - E2 + uvecanje Dodavanje uveanja na razliku eksponenata je neophodno jer su E1 i E2 polarizovani eksponenti, pa njihova razlika daje E1 - E2 = e1 + uveanje - (e2 + uveanje) = e1 - e2, gde su ei prave vrednosti eksponenata. Dakle, osnovni koraci postupka za deljenje u pokretnom zarezu su: 1. 2. 3. 4. Oduzmu se vrednosti eksponenata i na dobijenu razliku doda uveanje. Podele se mantise brojeva (deljenje se vri prema pravilima za deljenje celih brojeva u formatu znak i apsolutne vrednosti). Dobijeni rezultat se normalizuje slinim postupkom kao kod sabiranja. Dobijeni kolinik se zaokruuje prema pravilima za zaokruivanje.

Pr. 4-12 Deljenje u pokretnom zarezu Neka je R=2 i X1=(M1, E1) = (1010, 01), X2=(M2, E2) = (1010, 00). Odrediti X = X1 / X2. S obzirom da se eksponent predstavlja sa 2 bita, vrednost uve anja je 22-1-1 = 1. X = (1010 / 1010, (01 - 00 + 1)) = (1 0000, 10) = (1000, 11) -- zaokruivanje + normalizacija

Opisani postupak sabiranja/oduzimanja brojeva u pokretnom zarezu moe se predstaviti dijagramom sa Sl. 4-64, koji ukazuje na hardversku strukturu odgovarajueg digitalnog kola.
M1 E1 M2 E2

Oduzimanje eksponenta i deljenje mantisa prekoracenje potkoracenje Detekcija vodeih nula i pomera

Postnormalizacija

Sl. 4-64 Deljenje u pokretnom zarezu.

189

4.3

Sekvencijalne komponente

Kombinaciona kola, koja su razmatrana u prethodnoj sekciji, 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. Ovakva 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. Leevi su primer asinhronih kola, a flip-flopovi, registarske komponente i konani automati sinhronih sekvencijalnih kola. U ovoj sekciji bie razmatrana sinhrona sekvencijalna kola. Najpre e biti opisani razliiti tipovi flip-flopova, a zatim i tipine registarske komponente koje se konstruiu pomou flip-flopova i kombinacionih struktura.

4.3.1 Flip-flopovi (*)


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. 4-65 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
S Q 0 0 1 1 J J Q 0 0 1 1 0 1 0 1 Q 0 1 Q 0 1 0 1 K Q 0 1 ND Q(next)

Tabela prelaza
S R Q(next)

Prenosna funkcija

Tabela pobude
Q Q(next) S 0 1 0 X J 0 1 X X R X 0 1 0 K X X 1 0

SR
R Q

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

0 0 1 1

0 1 0 1

Q Q(next)

JK
K Q

Q(next) = JQ + KQ

0 0 1 1

0 1 0 1

D 0 1

Q(next) 0 1

D
Q

Q(next) = D

T 0 1

Q(next) Q Q

T
Q

Q(next) = TQ + TQ

Sl. 4-65 Tipovi flip-flopova.

190

Svaki flip-flop ima jedan ili dva ulaza podataka. SR 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 SR 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. 4-65 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. 4-65. U etvrtoj koloni tabele sa Sl. 4-65 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.
Tip flip-flopa Dijagram stanja

SR

JK

Sl. 4-66 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. 4-66. 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. 4-66 vidimo da dijagrami stanja svih flip-flopova imaju isti broj stanja i isti broj prelaza. Flip-flop je u stanju set kada je Q=1, odnosno, u stanju reset kada je Q=0. Uz to, svaki flip-flop 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 flip-flopova, kao i drugih, mnogo sloenijih sekvencijalnih kola. 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 flip-flop 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

191

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. 4-67 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.

Sl. 4-67 Simboli flip-flopova sa asinhronim ulazima.

4.3.2 Registarske komponente


Osnovna namena registarskih komponenti je uvanje podataka i obavljanje jednostavnih transformacija podataka, kao to su brojanje i pomeranje memorisanog sadraja. U sekciji bie definisani i projektovani razliiti tipovi registarskih komponenti: prihvatni, pomeraki i brojaki registri i neto sloenije registarske strukture: registarski fajl, stek i FIFO memorija.

4.3.2.1 Prihvatni registar


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. 4-68 prikazan je primer 4-bitnog registra. Grafiki simbol 4-bitnog registra dat je na Sl. 4-68(a), dok je na Sl. 4-68(b) prikazana njegova unutranja struktura, koju ine etiri paralelno povezana D flip-flopa.
I3 I2 I0

D3

Q3

D2

Q2

D1

Q1

D0

Q0

I3

I2

I1

I0 Clk

Registar Q3 Q2 Q1 Q0

Q3

Q2

Q1

Q0

(a)

(b)

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

Funkcionalnost osnovne varijante registra, prikazane na Sl. 4-68, 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. 4-68(b), flip-flopovima sa ulazima za direktno postavljanje, kao to je prikazano na Sl. 4-69. Kao to se vidi na Sl. 4-69, 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 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 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.

192

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

Kod obe varijante registra, prikazane na Sl. 4-68 i Sl. 4-69, 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. 4-70 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 flipflopova i sa sledeom rastuom ivicom takta ponovo upisuje u registar.

(a)

(b)

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

4.3.2.2 Pomeraki registar


U prethodnoj sekciji 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 koji kada je jednak 1 postavlja registar u reim pomeranja. Na Sl. 4-71 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. 4-71, tipino se koristi za konverziju informacije iz serijskog u paralelni oblik.

193

Iz tog razloga, ovakav registar se zove i pomeraki registar sa serijskim ulazom i paralelnim izlazom (SIPO Serial-In, Parallel-Out).

(a)

(b)

(c) Sl. 4-71 etvorobitni pomeraki registar sa serijskim ulazom i paralelnim izlazom: (a) grafiki simbol; (b) tabela operacija; (c) unutranja struktura.

Korienjem multpleksera 4-u-1, umesto multipleksera 2-u-1, mogue je kombinovati funkcije pomeranja i paralelnog upisa. Na primer, pomeraki registar sa Sl. 4-72 ima mogunost kako pomeranja memorisanog sadraja tako i upisa novog podatka. Takoe, registar sa Sl. 4-72 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. 4-72 (a) i (b) su prikazani grafiki simbol i tabela operacija, dok se na Sl. 4-72 (c) moe videti unutranja struktura ovog multi-funkcijskog registra. Registar sa Sl. 4-72 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. 4-72(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.
Sledee stanje Operacija S0 IL I3 I2 I1 I0 IR S1 Pomeraki registar Q 3 Q2 Q1 Q0 S1 S0 0 0 0 1 1 0 1 1 Bez promene Par. upis Pomeranje na levo Pomeranje na desno Q3 Q2 Q1 Q0 Q3 Q2 Q1 Q0 I3 IL I2 I1 I0 Q2 Q1 Q0 IR Q 3 Q2 Q1

(a)

(b)

194

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

4.3.2.3 Broja
Broja je posebna vrsta registara koji sadri inkrementer, to omoguava brojanja navie ili nanie. Na primer, na Sl. 4-73 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. 4-73(a), a tabela operacija na Sl. 4-73(b). Shodno Sl. 4-73(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. 4-73(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, dodajui 1 na svoj tekui sadraj sa svakom rastuom ivicom taktnog signala.

(a)

(b)

(c)

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

195

Obostrani broja, tj. broja koji moe brojati i navie i nanie, konstruie se tako to se u brojau navie polusabirai 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. 4-74 prikazan je obostrani broja koji u najveem delu nalikuje brojau navie sa Sl. 4-73 s tom razlikom to poseduje dodatni upravljaki ulaz, D. Kao to je ukazano tabelom operacija sa Sl. 4-74(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. 4-74(c) moemo izvesti sledee jednaine za Di i Ci+1: Di = Qi Ci Ci+1= DQiCi+ DQiCi Kao to vidimo na Sl. 4-74(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. 4-74 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. 4-75, 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. 4-75. Tabela operacija i unutranja struktura brojaa sa paralelnim upisom prikazani su na Sl. 4-75(b) i (c).
E D Qi Ci Ci+1 Di 1 1 1 D E Obostrani broja 1 E 0 1 1 D X 0 1 Operacija Bez promene Brojanje navie Brojanje nanie 1 1 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 1 1 0

Clear Q3 Q2 Q1 Q0

(a)

(b)

(c)

(c) Sl. 4-74 4-bitni obostrani broja: (a) grafiki simbol; (b) tabela operacija; (c) tabela istinitosti polusabiraa/oduzimaa; (d) unutranja struktura.
D E Load E Obostrani broja 0 0 Load Q3 Q2 Q1 Q0 0 1 0 1 1 X D X 0 1 X Operacija Bez promene Brojanje navie Brojanje nanie Paralelni upis

(a)

(b)

196

I3

I2

I1

I0

D E HAS HAS HAS HAS

1 mux Load

1 mux

1 mux

1 mux

D3

Q3 Q3'

D2

Q2 Q 2'

D1

Q1 Q1'

D0

Q0 Q0'

Clk Izlazni prenos Q2 Q1

Q3

Q0

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

4.3.2.4 Registarski fajl


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. 4-76(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. 4-76(b) prikazan je blok dijagram registarskog fajla kapaciteta 2nxm, dok je na Sl. 4-76(c) prikazana unutranja organizacija registarskog fajla kapaciteta 4x4. (Iz razloga jednostavnijeg prikaza, na Sl. 4-76(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. 4-76(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 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.

197

(a)

(b)

(c) Sl. 4-76 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.

(a)

(b)

198

WA1 WA0 WE

I3

I2

I1

I0

RAB1 RAB0 REB RAA1 RAA0 REA

Dekoder za itanje 2-u-4 RFC RFC RFC RFC

Dekoder za itanje 2-u-4

0 1

RFC

RFC

RFC

RFC

RFC

RFC

RFC

RFC

2 3

RFC Dekoder za upis 2-u-4

RFC

RFC

RFC

B3 A3

B2 A2

B1 A1

B0 A0

(c) Sl. 4-77 Registarski fajl sa jednim upisnim portom i dva porta itanje: (a) elija registarskog fajla; (b) grafiki simbol; (c) unutranja struktura.

Na Sl. 4-77 prikazan je primer registarskog fajla sa jednim portom za upis i dva porta za itanje. Kao to se vidi na Sl. 4-77(a), elija registarskog fajla je modifikovana u odnosu na Sl. 4-77(a) kako bi se obezbedila podrka za dva porta za itanje. Grafiki simbol registarskog fajla prikazan je na Sl. 4-77(b). Na Sl. 4-77(c) prikazana je unutranja struktura registarskog fajla kapaciteta 4x4. Uoimo da je dijagram sa Sl. 4-77(c) slian strukturi registarskog fajla sa Sl. 4-77(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, zahvaljujui 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.

4.3.2.5 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. 4-78. Na Sl. 4-78(a) je prikazan red ekanja nakon to su brojevi 23 i 34 upisani, ali pre nego to je stigao broj 45. Na Sl. 4-78(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. 4-78(c).

199

(a)

(b)

(c)

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

Na Sl. 4-79 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. Na izlazu OUT prisutan je podatak sa poetka reda, tj. podatak koji je najdue u redu ekanja. Na ulaz IN postavlja se podatak koji treba upisati u red. Takoe, FIFO red ima tri upravljaka signala: R/W, Enable i Reset. Signal R/W slui za izbor operacije, upis ili itanje. Za R/W=0, a pod dejstvom taktnog signala clk, u FIFO se upisuje podatak prisutan na ulazu IN i smeta na kraj reda ekanja. Za R/W=1, takoe pod dejstvom taktnog signala clk, iz FIFO reda se uklanja podatak sa poetka reda (tj. podatak koji je najdue u redu ekanja). Signal Enable se koristi kao dozvola upisa/itanja. Upis/itanje je dozvoljeno ako je Enable=1. U suprotnom, Enable=0 onemoguava dejstvo taktni signal (sadraj FIFO reda ostaje neizmenjen). Signal Reset slui za resetovanje (pranjenje) FIFO reda. Tipina realizacija FIFO reda ima jo dva statusna 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.

Sl. 4-79 Blok dijagram FIFO reda.

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. 4-80(c), a tabela operacija na Sl. 4-80(a). Reenje koristi m 4-bitnih pomerakih registara, to znai da je kapacitet reda etiri m bitnih rei. Svaki bit ulaznog m-bitnog podatka se upisuje u odgovarajui pomeraki registar. Kraj reda je uvek na poziciji Q0 pomerakih registara, dok se poetak reda pomera za jednu poziciju udesno, pri svakom upisu novog podatka. Pri upisu, pomeraki registri pomeraju svoj sadraj za jednu poziciju udesno (upravljaki ulaz pomerakog registra S ima vrednost S=1), podatak se upisuje na poziciju Q0, a broja se inkrementira (D=0) tako da njegov sadraj ponovo ukazuje na prvi upisani podatak. Sa druge strane, pri svakom itanju podatka iz reda, uz pomo multipleksera se bira podatak sa poetka reda i prenosi na izlaz, a broja se dekrementira (D=1). Uoimo da se proitani podatak ne unitava, ve samo postaje nevaei, time to je broja dekrementiran. Na Sl. 4-80(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 udesno, 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: S = (R/W)Enable D = (R/W)Enable E = Enable

200

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. 4-80 (c) dat je ematski prikaz FIFO reda duine 4.
Read/ write X 0 1 Enable 0 1 1 Operacija Bez promene itanje Upis R/W X 0 1 Enable 0 1 1 S 0 0 1 D X 1 0 E 0 1 1

(a)

(b)

(c) Sl. 4-80 FIFO red duine 4 rei: (a) tabela operacija; (b) tabela upravljanja; (c) ematski prikaz.

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. 4-81(a). Uoimo da struktura sa Sl. 4-81(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.

201

Na Sl. 4-81 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. 4-81(b), tabela upravljanja na Sl. 4-81 (c), dok je na Sl. 4-81(d) dat konani ematski izgled FIFO reda zasnovanog na RAM memoriji.
0 1 2 prazno podatak podatak ... 1021 1022 1023 podatak prazno prazno Kraj Poetak

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

(a)

(b)

(c)

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

4.3.2.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. 4-82(a) je prikazan stek dubine 4 (tj. kapaciteta 4 rei) koji inicijalno sadri dva broja: 34 na lokaciji Top i 23 na lokaciji Top-1. Na Sl. 4-82(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. 4-82(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.

202

(a) (b) (c) Sl. 4-82 Princip rada 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. 4-83. 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. 4-83(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.
Push/ pop X 0 1 Enable 0 1 1 (a) Operacija Bez promene Upis (push) itanje (pop) Push/ pop X 0 1 Enable 0 1 1 Kontrola pom. registra S1 S0 0 0 1 1 1 0 (b) Izlazi brojaa Q2 Q1 Q0 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 (c)

Kontrola brojaa D X 0 1 E 0 1 1

Empty 1 0 0 0 0

Full 0 0 0 0 1

(d) Sl. 4-83 Stek dubine 4. (a) tabela operacija; (b) tabela izlaza; (c) tabela upravljanja; (d) struktura steka.

203

Na Sl. 4-83(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 pomeranja na levo. Svaki novi podatak koji se stavlja na stek preko ulaza IL pomerakog registra i upisuje se na poziciju Q3, koja predstavlja vrh steka. Stanje brojaa ukazuje na broj podataka u steku. Sinhronizovano sa svakom rastuom ivicom taktnog signala, pomeraki registri obavljaju pomeranje na desno, a broja broji unapred za 1 (Push/pop=0 i Enable=1), odnosno pomeranje na levo i brojanje unazad (Push/pop=1 i Enable=1). Vrednosti upravljakih signala pomerakih registara i brojaa mogu se izvesti na osnovu tabele upravljanja koja je prikazana na Sl. 4-83(b). Na osnovu ove tabele moemo izvesti sledee 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. 4-83(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 Radi preglednosti, na Sl. 4-83(d) je izostavljen taktni signal koji pobuuje pomerake registre i broja. Glavna slabost reenja steka sa Sl. 4-83 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 je stek prazan. Iako se na ovaj nain gubi jedna od 2n raspoloivih rei RAM memorije, opisani pristup znaajno pojednostavljuje izlaznu logiku. Na Sl. 4-84 je prikazana realizacija steka koja koristi RAM memoriju kapaciteta 1K (2 10) 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. 4-83. Kao to se vidi sa Sl. 4-84(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. 4-84(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. 4-84(d).

204

Push/ pop X 0 1

Enable 0 1 1

Operacija Bez promene Upis (push) itanje (pop)

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

(a)

(b)

(c)

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

205

You might also like