35
1 Staza podataka Iz predmeta Digitalna Elektronika i Mikroračunarski Sistemi studenti su već savladali tehnike koje se odnose na to kako se projektuju funkcionalne jedinice koje su u stanju da obave jedinstvene i jednostavne operacije nad podacima. Tipi čna takva funkcionalna kola su sabirači koji se koriste za sabiranje dva broja ili komparatori koji su namenjeni za upredjivanje dve vrednosti. Naredno logičko pitanje koje se postavlja sada se odnosi na to kako se projektuje kolo koje obavlja znatno složenije operacije nad podacima ili operacije koje se sastoje od nekoliko koraka. Tako na primer, kako se projektuje kolo za sabiranje četiri broja ili kolo za sabiranje milion brojeva? Za sabiranje četiri broja moguće je koristiti tri sabirača, kako je to prikazano na slici 1.1a), ali za sabiranje milion brojeva nećemo povezati milion manje jedan sabirač nego ćemo koristiti jedan sabirač i koristiti ga milion puta. Staza-podataka (datapath) je kolo koje nam omogućava da obavimo operacije koje se sastoje od većeg broja koraka. Na slici 1.1b) prikazana je staza-podataka koja koristi jedan sabirač a može da obavi sabiranje onoliko brojeva koliko to želimo. Sa ciljem da se višestruko sabiranje učini izvodljivo koristi se registar u kome se čuva medjurezultat nakon svakog sabiranja. Medjurezultat iz registra se dovodi nazad na ulaz sabirača tako da se naredni broj može dodati tekućoj sumi. (a) (b) Slika 1.1. Kola za sabiranje brojeva: (a) kombinaciono kolo za sabiranje četiri broja; (b) staza- podataka za sabiranje milion brojeva Iz predmeta Mikroprocesorski Sistemi smo naučili da su staza-podataka i upravljačka jedinica dva ključna gradivna bloka svakog mikroprocesora. Zadatak staze podataka je da manipuliše podacima. Ona sadrži: 1. Funkcionalne jedinice kakvi su sabirači, pomerački registri, množači, deljitelji, ALU-ove, i komparatore. 2. Registri i druge memorijske elemente za privremeno memorisanje podataka. 3. Magistrale, multipleksere, i tro-statičke bafere za prenos podataka izmedju različitih komponenata u stazi-podataka i spoljašnjeg sveta. Podaci iz spoljneg sveta se unose u mikroprocesor preko ulaznih-linija za podatke (data input lines), a rezultati koji se dobijaju nakon što staza-podataka obavi operacije se predaju spoljnem svetu preko izlanih-linija za podatke (output data lines). Ovi signali se koriste kao primarni ulazno-izlazni portovi za mikroprocesor.

1 Staza podataka - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.38-Staza podataka.pdf · 1 Staza podataka Iz predmeta Digitalna Elektronika i Mikroračunarski Sistemi studenti

  • Upload
    vuminh

  • View
    246

  • Download
    5

Embed Size (px)

Citation preview

Page 1: 1 Staza podataka - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.38-Staza podataka.pdf · 1 Staza podataka Iz predmeta Digitalna Elektronika i Mikroračunarski Sistemi studenti

1 Staza podataka Iz predmeta Digitalna Elektronika i Mikroračunarski Sistemi studenti su već savladali tehnike koje se odnose na to kako se projektuju funkcionalne jedinice koje su u stanju da obave jedinstvene i jednostavne operacije nad podacima. Tipična takva funkcionalna kola su sabirači koji se koriste za sabiranje dva broja ili komparatori koji su namenjeni za upredjivanje dve vrednosti. Naredno logičko pitanje koje se postavlja sada se odnosi na to kako se projektuje kolo koje obavlja znatno složenije operacije nad podacima ili operacije koje se sastoje od nekoliko koraka. Tako na primer, kako se projektuje kolo za sabiranje četiri broja ili kolo za sabiranje milion brojeva? Za sabiranje četiri broja moguće je koristiti tri sabirača, kako je to prikazano na slici 1.1a), ali za sabiranje milion brojeva nećemo povezati milion manje jedan sabirač nego ćemo koristiti jedan sabirač i koristiti ga milion puta. Staza-podataka (datapath) je kolo koje nam omogućava da obavimo operacije koje se sastoje od većeg broja koraka. Na slici 1.1b) prikazana je staza-podataka koja koristi jedan sabirač a može da obavi sabiranje onoliko brojeva koliko to želimo. Sa ciljem da se višestruko sabiranje učini izvodljivo koristi se registar u kome se čuva medjurezultat nakon svakog sabiranja. Medjurezultat iz registra se dovodi nazad na ulaz sabirača tako da se naredni broj može dodati tekućoj sumi.

(a) (b)

Slika 1.1. Kola za sabiranje brojeva: (a) kombinaciono kolo za sabiranje četiri broja; (b) staza-podataka za sabiranje milion brojeva

Iz predmeta Mikroprocesorski Sistemi smo naučili da su staza-podataka i upravljačka jedinica dva ključna gradivna bloka svakog mikroprocesora. Zadatak staze podataka je da manipuliše podacima. Ona sadrži:

1. Funkcionalne jedinice kakvi su sabirači, pomerački registri, množači, deljitelji, ALU-ove, i komparatore.

2. Registri i druge memorijske elemente za privremeno memorisanje podataka. 3. Magistrale, multipleksere, i tro-statičke bafere za prenos podataka izmedju različitih

komponenata u stazi-podataka i spoljašnjeg sveta. Podaci iz spoljneg sveta se unose u mikroprocesor preko ulaznih-linija za podatke (data input lines), a rezultati koji se dobijaju nakon što staza-podataka obavi operacije se predaju spoljnem svetu preko izlanih-linija za podatke (output data lines). Ovi signali se koriste kao primarni ulazno-izlazni portovi za mikroprocesor.

Page 2: 1 Staza podataka - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.38-Staza podataka.pdf · 1 Staza podataka Iz predmeta Digitalna Elektronika i Mikroračunarski Sistemi studenti

Da bi staza podataka funkcionisala korektno neophodno je u pravo vreme generisati odgovarajuće upravljačke signale (control signals). Upravljački signali se dovode na sve multipleksere, ALU-ove i druge funkcionalne jedinice koje mogu da obavljaju veći broj različitih operacija nad podacima, svih ulaza za dozvolu rada čitanja/upis u registre ili registarska polja (register files), na svim adresnim linijama za pristup registrima u registarskim poljima, i svim ulaza za dozvolu rada tro-statičkim baferima. To znači da je rad staze-podataka odredjen od strane upravljačkih signala, tj koji su od njih, u datom trenutku, aktivni ili neaktivni. Kod mikroprocesorskih sistema svi upravljački signali se generišu od strane upravljačke jedinice (control unit). Projektovanje staze podataka se naziva RTL projektovanje (Register Transfer Level design). Kod RTL projektovanja posmatra posmatra se kako se podaci prenose od jednog registra do drugog, ili pak ponovo upisuju u isti registar. Sekvenca RTL operacija- čitanje podataka iz registara, modifikacije podataka od strane funkcionalnih jedinica, i upis rezultata u registar- se naziva operacija registarski-prenos (register transfer operation). Svaka operacija registarski-prenos mora da se završi u okviru jednog taktnog intervala. Šta više, u toku jedne operacije registarski-prenos, funkcionalnu jedinicu nije moguće koristiti više od jedanput. Pri ovome treaba istaći da je istu funkcionalnu jedinicu moguće koristiti i više od jedanput, ali samo od strane različitih operacija registarski-prenos. Drugim rečima, svaka funkcionalna jedinica, u okviru istog taktnog intervala, moguće je iskoristiti samo jedanput, ali u okviru drugog taktnog intervala moguće je njeno ponovo korišćenje.

1.1 Projektovanje namenskih staza-podataka Cilj projektovanja namenske staze-podataka je da se konstruiše kolo koje će se koristiti za rešavanje jedinstvenog specifičnog problema. Kod RTL projektovanja, analizira se na koji način se podaci prenose iz jednog registra u drugi, prolezeći pri tome kroz funkcionalne jedinice koje ih modifikuju. U toku procesa projektovanja neophodno je doneti odluku o sledećim stavkama:

a) Koji tip registra treba koristiti, i koliko je registara potrebno? b) Koji tip funkcionalnoih jedinica treba koristiti, i koliko je funkcionalnih jedinica potrebno? c) Da li neka od funkcionalnih jedinica može biti deljiva (da se koristi) za dve ili veći broj

operacija? d) Kako su registri i funkcionalne jedinice medjusobno povezani tako da se mogu realizovati

sva premeštanja podataka definisana od strane algortma? S obzirom da je staza-podataka odgovorna za izvršavanje svih operacija nad podacima, ona mora biti u stanju da obavi sve iskaze koji manipulišu nad tim podacima, kao i sve iskaze tipa uslovnih testiranja koja su specificirana od strane algoritma. Tako na primer, iskaz dodele:

A= A + 5 pribavlja vrednost koja se čuva u promenljivoj A, dodaje konstanti 5, i smešta rezultat ponovo u A. Da bi staza-podataka obavila operaciju nad podacima specificiranu iskazom, ona mora da poseduje registar u kome se čuva vrednost A. Pored toga mora da postoji sabirač koji izvršava operaciju sabiranje. Konstanta 5 se direktno dovodi na ulaz kola kao binarna vrednost. Naredno pitanje koje se sada postavlja čitaocu odnosi se na sledeće: Da bi se iskaz dodele mogo realizovati na koji način, u jedinstvenu celinu, treba povezati registar, sabirač i konstantu 5? Jedno od rešenja je sledeće: Izlaz registra Q u kome se čuva promenljiva A povezati na ulaz sabirača gde se dovodi prvi operand, a konstantu 5 na ulaz sabirača gde se dovodi drugi operand. S obzirom da se rezultat sabiranja ponovo upisuje u registar, izlaz sabirača treba povezati na ulaz D registra

Page 3: 1 Staza podataka - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.38-Staza podataka.pdf · 1 Staza podataka Iz predmeta Digitalna Elektronika i Mikroračunarski Sistemi studenti

(vidi sliku 1.2a)). Pamćenje rezultata sabirača u registar se ostvaruje aktiviranjem upravljačkog signala ALoad. Signal ALoad generiše upravljačka jedinica. Aktuelno pamćenje vrednosti u registar, ipak, se ne dešava u istom trenutku, tj. neposredno odmah nakon što se aktivira signal ALoad. Imajući u vidu da je rad registra sinhron u odnosu na taktni signal, aktuelno pamćenje vrednosti obaviće se sa narednom aktivnom ivicom taktnog signala. Zbog ovoga, nova vrednost A neće biti dostupna na izlazu Q registra u toku tekućeg taktnog intervala, nego će biti dostupna na početku narednog taktnog intervala (ciklusa).

D7-0

Q7-0

Load

Clock

ALoad

Clock8-bitni registar

A

+

‘5’8 88

(a)

(b)

Slika 1.2. Jednostavne staze-podataka: (a) za obavljanje A= A+5; (b) za obavljanje A= B+C

Staza podataka prikazana na slici 1.2b) može da izvrši sledeći iskaz

A= B+C gde su B i C dve različite promenljive koje se čuvaju u posebnim registrima, a koriste se kao dva ulazna operanda za sabirač. Izlaz sabirača je povezan na D ulaz registra A koji se koristi za pamćenje rezultata sabirača. Izvršenje iskaza se realizuje aktiviranjem signala ALoad, a aktuelno

Page 4: 1 Staza podataka - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.38-Staza podataka.pdf · 1 Staza podataka Iz predmeta Digitalna Elektronika i Mikroračunarski Sistemi studenti

pamćenje vrednosti u registar A se dešava sa narednom aktivnom ivicom taktnog impulsa. U toku tekućeg taktnog intervala sabirač obavlja sabiranje vrednosti B i C. Rezultat na izlazu sabirača mora da bude dostupan pre kraja tekućeg taktnog intervala, kako bi sa narednom ivicom taktnog impulsa, u registar A mogla da se upiše korektna vrednost. S obzirom da se u registrima B i C ne upisuju nove vrednosti (one su prethodno zapamćene), to znači da u konkretnom slučaju nije potrebno kontrolisati stanje upravljačkih signala BLoad i CLoad. Ako sada želimo da jedinstvena staza-podataka izvrši oba iskaza

A= B+C i

A= A+5 biće potrebno kombinovati obe staze-podataka prikazane na slici 1.2. Imajući u vidu da je A ista promenlčjiva za oba iskaza, tada se za A koristi samo jedan registar. Ipak registru A se dovode podaci koji potiću od dva izvorišta; jedan od strane prvog sabirača a to je B+C, a drugi od strane drugog sabirača, a to je A+5. Problem sada nastaje zbog toga što se dva izvorišta podataka ne mogu direktno zajedno dovesti na jedno odredište, vidi sliku 1.3a), jer dolazi do kolizije signala, tako da će rezultantna vrednost biti nekorektna. Rešenje se sastoji u korišćenju multipleksera koji bira koji će od oba izvorišna signala da se usmeri ka registru A. Korektna staza podataka koja koristi multiplekser je prikazana na slici 1.3b).

(a)

Page 5: 1 Staza podataka - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.38-Staza podataka.pdf · 1 Staza podataka Iz predmeta Digitalna Elektronika i Mikroračunarski Sistemi studenti

(b)

Slika 1.3. Staza podataka koja obavlja A= A+5 i A= B+C; (a) bez multipleksera- nekorektno

rešenje; (b) sa multiplekserom korektno rešenje Oba iskaza dodeljiju vrednost koja se upisuje u A. Zbog ovoga signal ALoad je aktivan u toku izvršenja oba iskaza. Aktuelna vrednost koja se upisuje u A, ipak zavisi od selekcije koju obavi multiplekser MUX. Ako je Amux = 1 tada se rezultat donjeg sabirača, ADD2, upisuje u A, inače kada je Amux = 0 rezultat gornjeg sabirača , ADD1, upisuje u A. Imajući u vidu da su oba sabirača, ADD1 i ADD2, kombinaciona kola i da su vrednosti na izlazima registara B, C, i A uvek prisutni, rezultati oba sabiranja su uvek dostupni na ulazima u multiplekser MUX. Ali u zavisnosti od stanja upravljačkog signala Amux samo će jedna vrednost biti propuštena ka ulazu registra A. Koji će se prvi iskaz izvršiti, A=B+C ili A=A+5, zavisi od toga da li se upravljački signal Amux postavlja prvo u stanje 1 ili u 0. Ako je staza-podataka deo mikroprocesora tada će njegova upravljačka jedinica odredjivati stanje signala Amux, tj definisati sekvenciranje operacija staze-podataka. Naglasimo pri ovome da se oba iskaza, u okviru istog taktnog intervala, ne mogu istovremeno izvršavati. Naime, oba iskaza upisuju u isti registar, a registar može sa pojavom aktivne ivice taktnog signala da lečuje samo jednu vrednost. To znači da drugi iskaz mora da se obavi u drugom taktnom intervalu, koji ne mora da bude naredni.

Zadatak Projektovati stazu-podataka koja može da izvrši sledeća dva iskaza:

Page 6: 1 Staza podataka - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.38-Staza podataka.pdf · 1 Staza podataka Iz predmeta Digitalna Elektronika i Mikroračunarski Sistemi studenti

A =B+C i

A= A+5 koristeći samo jedan sabirač. Odgovor

Slika 1.4. Staza podataka koja obavlja A= A+5 i A=B+C a koristi samo jedan sabirač

1.1.1 Izbor registara U najvećem broju slučajeva, po jedan registar je potreban za čuvanje svake promenljive koja se koristi od strane algoritma. Ipak, u slučajevima kada se dve promenljive ne koriste istovremeno, tada one mogu da dele isti registar. Ako dve ili veći broj promenljivih dele isti registar tada veze preko kojih se dovode/odvode podaci ka/iz registra su znatno složenije. U takvim situacijama registar ima više od jedno izvorište odakle pribavlja svoje ulazne podatke i više od jedno odredište prema kome usmerava svoje izlazne podatke. Kada se podaci usmeravaju ka većem broju odredišta, a pri tome se zanemaruje problem opteretljivosti (fan-out) izlaza kola, za projektante ne predstavlja neki veći problem iz prostog razloga što se jedan isti izlaz, logički posmatrano,može dovesti (distribuirati) na ulazima većeg broja kola. No kada postoji veći broj ulaza neophodno je ugraditi multipleksere pomoću kojih se selektuje jedan od nekoliko izvorišta koje će vršti prenos podataka ka ulazu registra. Na slici 1.5 prikazano je kolo kod koje jedan registar koristi dva izvorišta podataka- jedan od spoljneg ulaza, a drugi od sabirača. Da bi se selekcije obavila korektno, tj.koji će od dva izvorišta biti doveden na ulaz registra, neophodno je koristi multiplekser.

Page 7: 1 Staza podataka - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.38-Staza podataka.pdf · 1 Staza podataka Iz predmeta Digitalna Elektronika i Mikroračunarski Sistemi studenti

Slika 1.5. Kolo registar sa dva ulaza Nakon što je projektant doneo odluku o tome koliko je registara neophodno ugraditi u dizajn, potrebno je nakon toga odlučiti se da li će se za potrebe pamćenja promenljivih koristiti: a) jedinstveno registarsko polje koje poseduje dovoljan broj registarskih lokacija; b) individualni registri; ili c) kombinacija registarskog polja i individualnih registara. Šta više, neophodno je ćesto puta dodatno ugraditi i registre sa specijalno izvedenim funkcijama kakvi su pomerački registri i brojači. Tako na primer, ako u algoritmu postoji iskaz tipa FOR petlja tada se brojački registar može koristiti ne samo za čuvanje promenljive tipa Brojac, nego i za inkrementiranje/dekrementiranje stanja promenljive Brojac. Na ovaj način ne samo da se redukuje broj promenljivih, nego se i smanjuje složenost konektiranja izmedju komponenata dizajna u stazi podataka. Odluka o tome koji će se tip registara koristoiti u dizajnu ima veliki uticaj na to koliki će biti broj konekcija izmedju registara i koje će funkcionalne jedinice biti medjusobno povezane. 1.1.2 Izbor funkcionalnih jedinica Projektantima je relativno lako da odluče koji tip funkcionalne jedinice da predvide za ugradnju u dizajn. Tako na primer, ako se od algoritma zahteva sabiranje dva broja tada je neophodno da sabirač bude sastavni deo staze-podataka. Ipak, i dalje ostaje dilema koja se odnosi na sledeću odluku: Da li koristiti namenski sabirač, kombinaciju sabirač-oduzimač, ili ALU koji pored operacije sabiranje ima implementirano veći broj aritmetičkih i logičkih operacija? Da bi odgovorio na ovo pitanje projektant treba da zna sledeći detalj: Koje sve druge operacije, koje manipulišu sa podacima, se zahtevaju od strane algoritma? Ako se u algoritmu koristi samo sabiranje i oduzimanje tada je dovoljna funkcionalna jedinica tipa sabirač-oduzimač. Sa druge strane, ako algoritam zahteva nekoliko operacija sabiranje, postavlja se sada sledeće pitanje: Da li treba koristiti jedan ili nekoliko sabirača? Korišćenje jednog sabirača, sa tačke gledišta broja funkcionalnih jedinica kojih treba ugraditi u dizajn, smanjuje obim staze-podataka. No, treba istaći da ovakvo rešenje može, često puta, i da poveća obim-staze podataka sa aspekta složenosti razvodjenja signala kroz kolo, a takodje poveća i broj puteva (mnamenskih veza, magistrala) koji se koriste za prenos podataka u okviru dizajna. Ilustracije radi, neka algoritam sadrži sledeće dve operacije sabiranja:

a = b + c d = e + f

Kada se koriste dva izdvojena sabirača imaćemo rešenje staze-podataka kakvo je ono prikazano na slici 1.6a). Za slučaj kada se koristi jedan sabirač potrebno je ugraditi dva dodatna multipleksera, MUX1 i MUX2, tipa 2-u-1, koji se koriste za selekciju ragistara u kojima se čuvaju ulazni operandi sabirača (vidi sliku 1.6b)). Šta više, staza-podataka sa slike 1.6b) zahteva uvodjenje dva dodatna upravljačka signala, sel1 i sel2, koji se dovode na ulaze multipleksera MUX1 i

Page 8: 1 Staza podataka - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.38-Staza podataka.pdf · 1 Staza podataka Iz predmeta Digitalna Elektronika i Mikroračunarski Sistemi studenti

MUX2, respektivno. Sa tačke gledišta brzine izvršenja, staza-podataka sa slike 1.6a), imajući u vidu da su oba sabirača izvedeni kao nezavisne funkcionalne jedinice, može, u okviru istog taktnog intervala (ciklusa), da izvrši oba iskaza tipa sabiranje istovremeno. Sa druge strane, za stazu-podataka sa slike 1.6b) važi sledeće: Operacije sabiranja, s obzirom da postoji samo jedan sabirač, se izvršavaju sekvencijalno u dva taktna intervala. Ipak, konačna odluka o tome koju stazu-podataka treba koristiti donosi projektant.

a)

b)

Slika 1.6. Staza-podataka kojom se realizuju dve operacije sabiranja: a) koristeći dva izdvojena sabirača; b) koristeći jedan sabirač

1.1.3 Metodi prenosa podataka Postoji nekoliko načina na osnovu kojih se ostvaruje medjusobno povezivanje registara i funkcionalnih jedinica. Ovi metodi (načini) povezivanja koriste se da ostvare korektan prenos podataka izmedju različitih jedinica koje učestvuju u prenosu. Ukazaćemo sada na karakteristike osnovnih metoda za prenos podataka.

Page 9: 1 Staza podataka - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.38-Staza podataka.pdf · 1 Staza podataka Iz predmeta Digitalna Elektronika i Mikroračunarski Sistemi studenti

a) Veći broj izvorišta Kada se na ulaz neke jedinice dovodi veći broj izvorišta, tada je neophodno koristiti (ugraditi) multiplekser. Zadatak multipleksera je da selektuje izvorište koje će se u datom trenutku koristiti za pobudu odredišta, tj ulaza jedinice tipa odredište podataka. Izvorišta mogu biti registri, konstantne vrednosti, ili druge funkcionalne jedinice. Na slici 1.7 prikazana su dva takva slučajeva. Na slici 1.7a) levi operand sabirača ima četiri izvorišta: dva od registra, jedan je konstanta, a jedan je izlaz ALU-a. Na slici 1.7b) registar a ima dva izvorišta; jedan je konstanta “1“, a drugi je izlaz sabirača.

reg aLoad a

+

01MUX

sel

“1”

a) b)

Slika 1.7. Primeri većeg broja izvorišta i korišćenje multipleksera; (a) jedan od operanada sabirača

ima četiri izvorišta; (b) registar ima dva izvorišta b) Veći broj odredišta Po pravilu, izvorište koje se vodi na veći broj odredišta ne zahteva dodatna kola. Jedno izvorište je moguće povezati na veći broj različitih odredišta ( važi kada se zanemari fan-out kola). Pri tome ona odredišta kojima ne trebaju podaci od odredjenog izvorišta poseduju mehanizam pomoću koga ignorišu podatke tog izvorišta. Tako na primer, na slici 1.6b) izlaz sabirača se vodi na dva odredišta: registar rega i registar regb. Ako se izlaz sabirača prihvata od strane registra rega tada se aktivira upravljačka linija Loada, dok je linija Loadb neaktivna. U suprotnom, aktivira se linija Loadb, dok je linija Loada neaktivna. U oba slučaja samo jedan od registara prihvata korektnu vrednost dok će drugi ignorisati podatke. Izloženi koncept prenosa podataka važi i u slučaju kada je odredište neka od funlcionalnih jedinica. U tom slučaju funkcionalna jedinica prihvata izvorišne podatke i manipuliše nad njima. Ipak, izlaz funkcionalne jedinice, s obzirom da je ona realizovana kombinacionom logikom,. sam po sebi ne ostaje zapamćen. Da bi sačuvali rezultat koji se dobija na izlazu funkcinalne jedinice neophodno je zapamtiti ga. Za potrebe pamćenja koriste se registri. Ono na šta projektant treba da obrati posebnu pažnju kod projektovanja funkcionalnih jedinica je sledeće:

1. funkcionalna jedinica mora korektno i pouzdano da radi, 2. da ima visoke performanse, naime odlikuje se kratkim vremenom izračunavanja, tj velikom

brzinom, 3. da ima malu potrošnju, 4. da zauzima malu površinu na silicijumu, i 5. da ne generiše smetnje koje mogu nepovoljno utiću na rad drugih jedinica, 6. da ima nisku cenu što je čini pogodnu za ugradnju u embedded sistemima, i 7. da se može lako modifikovati i brzo prilagodjavati novim zahtevima tržišta.

Page 10: 1 Staza podataka - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.38-Staza podataka.pdf · 1 Staza podataka Iz predmeta Digitalna Elektronika i Mikroračunarski Sistemi studenti

Analizom nabrojanih zahteva primećije se da su oni najčešće medjusobno kontradiktorni, tj suprotni. Tako na primer povećanje brzine rada nekog kola neminovno dovodi i do povećane potrošnje. Ipak, dužnost je projektanta da najčešće napravi dobar kompromis, tj, da izabere ono rešenje koje će uz najmenju cenu da zadovolji postavljene zahteve. c) Tro-statička magistrala Standardno rešenje kod koje se koristi veći broj izvorišta i odredišta se zasniva na deljivoj magistrali podataka i korišćenju tro-statičkih bafera. Ključna stvar, koju u ovom slučaju treba naglasiti, je sledeća: Kada je veći broj izvorišta povezan na istu magistralu, tada u datom trenutku samo jedno izvorište može da generiše podatke na magistrali, dok su ostala izvorišta pasivna. Ako dva ili veći broj izvorišta pokuša u istom trenutku da predaje podatke po magistrali tada kažemo da dolazi do konflikta u prenosu podataka. Do konflikta (sudara) dolazi, ako na primer, u istom trenutku po jedinstvenoj liniji za prenos podataka jedno izvorište generiše na svom izlazu logičku 1, a drugo logičku 0. Korišćenjem tro-statičkih bafera moguće je, na jedinstvenoj magistrali za prenos podataka, povezati različita izvorišta podataka. Kod ovakvih rešenja u jednom trenutku dozvoljava se rad samo onog tro-statičkog bafera koji predaje podatke dok je svim ostalim tro-statičkim baferima zabranjen rad. Tro-statičkim baferima je zabranjen rad kada se njihovi izlazi postavljaju u stanje visoke-impedanse, pa zbog toga do konflikta u prenosu podataka ne dolazi. Na slici 1.8 prikazana je tro-statička magistrala sa pet jedinica (tri registra, rega, regb i regc, jedna ALU, i jedan sabirač, ADD) povezanih na magistralu. Prednost korišćenja tro-statičke magistrale je ta što je magistrala bidirekciona, tako da se podaci po magistrali mogu prenositi po oba smera. Svi izlazni tro-statički drajveri treba da imaju izvedenu mogućnost za zabranu rada, dok se zabrana rada ulaznim drajverima ne vrši. Naglasimo pri tome da se ulazi i izlazi registara mogu povezati na iste linije tro-statičke magistrale, dok ulazi i izlazi funkcionalnih jedinica (kao što je, na primer, ALU) ne mogu biti povezani na iste linije tro-statičke magistrale.

Slika 1.8. Veći broj izvorišta koristi tro-statičke bafere za spregu sa deljivom magistralom za prenos podataka

1.1.4 Generisanje statusnih signala I pored toga što je upravljačka jedinica ta koja je zadužena za sekvenciranje izvršenjem iskaza, staza-podataka je blok koji mora da generiše rezultate uslovnih testiranja. Rezultati se nakon

Page 11: 1 Staza podataka - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.38-Staza podataka.pdf · 1 Staza podataka Iz predmeta Digitalna Elektronika i Mikroračunarski Sistemi studenti

toga predaju upravljačkoj jedinici koja određuje koji će se iskaz izvršavati kao naredni. Statusni signali su rezultati uslovnih testiranja koje staza-podataka predaje upravljačkoj jedinici. Za svaki uslovni test koji se koristi od strane algoritma neophodno je da postoji odgovarajući statusni signal. Statusni signali se generišu od strane komparatora. Na primer, ako u algoritmu postoji sledeći iskaz: IF (A = 0) THEN .... tada u stazi-podataka mora da ima ugrađen komparator jednakosti koji sadržaj registra regA komparira sa konstantom 0 (vidi sliku 1.9a)). Izlaz komparatora je statusni signal za uslov (A=0). Statusni signal je jednak 1 ako je uslov (A=0) istinit (true); inače, on je 0. Tehnički, komparator jednakosti sa konstantom 0 predstavlja 8-ulazno NOR logičko kolo (vidi sliku 1.9b)).

(a) (b)

Slika 1.9. Komparatori za generisanje statusnog signala (A=0) Postoje i situacije kada komparator nije dovoljan za generisanje statusnog signala. Tako na primer, ako želimo da se statusni signal koristi za testiranje da li je broj paran ili neparan, kakav je slučaj sa sledećim iskazom IF (A je paran broj) THEN .... dovoljno je koristiti, kao statusni signal za ovaj uslov, bit A0 8-bitnog registra regA, jer neparni brojevi imaju "1" na bit poziciji nula. Generisanje statusnog signala za ovaj slučaj je prikazan na slici 1.10.

Slika 1.10. Komparator za generisanje statusnog signala (A je neparan broj)

Page 12: 1 Staza podataka - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.38-Staza podataka.pdf · 1 Staza podataka Iz predmeta Digitalna Elektronika i Mikroračunarski Sistemi studenti

1.2 Korišćenje namenskih staza podataka

Staza podataka koristi veći broj upravljačkih signala. Aktiviranjem i deaktiviranjem upravljačkih signala u odgovarajućim (različitim) vremenskim trenucima staza podataka obavlja različite informacije tipa registarski prenos. Da bi se operacija izvršila uspešno neophodno je da se upravljački signali u strogo definisanim vremenskim trenucima aktiviraju i deaktiviraju korektno. U ciljlu sprovođenja lakše analize nećemo svaki upravljački signal posmatrati individualno nego ćemo sve upravljačke signale staze podataka grupisati zajedno, a tu grupu nazvati upravljačka reč (control word). Drugim rečima, upravljačka reč imaće po jedan bit koji se dodeljuje svakom upravljačkom signalu u stazi podataka. Jedna operacija registarski-prenos kod staze podataka, je s toga, određena od strane vrednosti koje se postavljaju u upravljačkoj reči. To znači da se operacija staze podataka specificira na taj način što se specificira bit povorka u upravljačkoj reči. Svaka operacija upravljačke reči se izvršava za jedan taktni interval. Kombinovanjem većeg broja upravljačkih reči (kao grupa koja čini određenu sekvencu) rezultira tome da staza podataka obavi specificirane operacije u zadatom redosledu. Da bi ukazali na problem definisanja stanja upravljačkih signala nešto detaljnije, analiziraćemo stazu podataka prikazanu na slici 1.4. U cilju pojednostavljenja analize smatraćemo da je ALoad=BLoad=CLoad, tj. da su svi ovi signali međusobno povezani na jedan isti upravljački signal ALoad. Sa tačke gledišta njihovog rada to znači da se regA, regB, i regC paralelno pune sadržajem prisutnim na njihovim ulazima D7-0. Napomenimo ponovo da staza podataka sa slike 1.4 sekvencijalno izvršava sledeća dva iskaza A=A+3 i A=B+C. Upravljačku reč ove staze podataka čine dva bita - po jedan za svaki upravljački signal (jedan za ALoad, a drugi za MUX). Redosled uređenja ovih bitova u upravljačkoj reči, u ovom trenutku, može biti proizvoljan. No, kada je jedanput doneta odluka o tome kakav je redosled izabran tada se tog redosleda treba pridržavati do kraja, tj. biti konzistentan. Dve upravljačke reči koje obavljaju dva iskaza sa slike 4 su prikazane na slici 1.11.

upravljačka reč instrukcija ALoad Mux 1 A=A+3 1 1 2 A=B+C 1 0

Slika 1.11. Upravljačka reč za stazu podataka sa slike 4 koja izvršava sledeća dva iskaza A=A+3 i

A=B+C Upravljačka_reč_1 specificira niz bitova za izvršenje iskaza A=A+3. Ovaj iskaz se izvršava aktiviranjem signala ALoad i Mux. Upravljačka_reč_2 uslovljava izvršenje iskaza A=B+C, aktiviranjem signala ALoad a deaktiviranjem signala Mux (napomena: u konkretnom slučaju za upravljački signal smatramo da je aktivan ako je postavljen na logičku jedinicu, a deaktiviran ako je postavljen na logičku nulu).

1.3 Primeri namenskih staza podataka Ukazaćemo u daljem tekstu kako se realizuju namenske staze podataka preko nekoliko primera. a) Jednostavni IF-THEN-ELSE

Page 13: 1 Staza podataka - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.38-Staza podataka.pdf · 1 Staza podataka Iz predmeta Digitalna Elektronika i Mikroračunarski Sistemi studenti

Razmotrićemo realizaciju 4-bitne namenske staze podataka koja se koristi za rešavanje jednostavnog IF-THEN-ELSE algoritma prikazanog na slici 1.12. 1 INPUT A 2 IF(A = 5)THEN 3 B = 8 4 ELSE 5 B = 15 6 END IF 7 OUTPUT B Slika 1.12. Algoritam za rešavanje jednostavnog IF-THEN-ELSE problema Da bi kreirali stazu podataka neophodno je da u algoritmu sagledamo sve iskaze koji manipulišu podacima. Instrukcije koje manipulišu podacima su one koje se odnose na registarski prenos. Kod najvećeg broja slučajeva, jednoj operaciji manipulisanja podacima odgovara jedna operacija registarski prenos. No, postoje i instrukcije koje manipulišu podacima gde se zahteva izvršenje i više od dve operacije tipa registraski prenons. Algoritam sa slike 1.12 koristi dve promenljive, A i B; zbog toga staza podataka treba da ima dva 4-bitna registra - po jedan za svaku promenljivu. U liniji 1 algoritma sa slike 1.12 upisuje se vrednost A u registar regA. Da bi se realizovala ova operacija potrebno je povezati ulazne signale na ulaz regA (vidi sliku 1.13). Aktiviranjem signala ALoad, sa narednom aktivnom ivicom taktnog signala, ulazni podaci se pune u regA. U liniji 2 algoritam testira vrednost A sa konstantom 5. Staza podataka sa slike 1.13 za potrebe testiranja koristi 4-ulazno AND logičko kolo kao komparator jednakosti. Jednakost sa "5" se detektuje tako što se izlazi A3 i A1 registra regA invertuju, a izlazi A2 i A1 direktno dovode na ulaz AND kola (0101b =5D). Izlaz AND kola biće jednak "1" ako je na ulazu prisutna informacija 0101. Izlaz ovog komparatora je jednobitni statusni signal za uslov A=5 koga staza podataka predaje upravljačkoj jedinici. Na osnovu stanja statusnog signala koji se odnosi na kompariranje (A=5) kontrolna jedinica odlučuje da li će se izvršiti linija 3 ili 5 algoritma sa slike 12. Napomenimo još jedanput da odluku donosi upravljačka jedinica, a ne staza-podataka. Linije 3 ili 5 zahtevaju da se u regB napune vrednosti "8" ili "15". Sa ciljem da se selektuje jedan podatak od nekoliko izvorišta neophodno je koristiti multiplekser tipa 2-u-1. Jedan od ulaza multipleksera treba povezati na konstantu "8", a drugi na konstsantu "15". Izlaz multipleksera, MUX, se povezuje na ulaz regB. Koja će se konstanta puniti u regB zavisi od uslova u liniji 2. Selekcija ulaza u regB obavlja se od strane multipleksera MUX pomoću upravljačkog signala Muxsel. Punjenje regB vrši se aktiviranjem signala BLoad. Konačno, izlaz regB se generiše na izlazu u liniji 7. Ovo se ostvaruje povezivanjem tro-statičkog bafera na izlazu regB. Izlaz Output je važeći kada je upravljački signal Out, namenjen dozvoli rada tro-statičkog bafera TB, aktivan. Pojam "važeći" u ovom slučaju ukazuje da se izlazi regB prenose na izlaznim linijama za podatke.

Page 14: 1 Staza podataka - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.38-Staza podataka.pdf · 1 Staza podataka Iz predmeta Digitalna Elektronika i Mikroračunarski Sistemi studenti

Slika 13. Namenska staza podataka za rešavanje jednostavnog IF-THEN-ELSE problema Kompletna staza-podataka je prikazana na slici 13. Stazu-podataka čine dva kola. Razlog za ovakvo rešenje je sledeći: Algoritmom prikazanin na slici 12 ne zahteva se zajedničko korišćenje regA i regB. Na slici 14 prikazani su sadržaji kontrolnih reči na osnovu kojih se izvršavaju iskazi dati na slici 12 za stazu podataka sa slike 13. upravljačka

reč instrukcija ALoad Muxsel BLoad Out 1 INPUT A 1 x 0 0 2 B = 8 0 1 1 0 3 B = 15 0 0 1 0 4 OUTPUT B 0 x 0 1

Slika 14. Kontrolne reči za rešavanje jednostavnog IF-THEN-ELSE problema sa slike 12 Napomena: Simbol x ukazuje na to da vrednost signala nije od značaja b) Brojanje od 1 do 10 Analizirajmo sada kako se konstruiše 4-bitna namenska staza podataka koja na svom izlazu generiše brojeve od 1 do 10. Algoritam koji se odnosi na problem brojanja je prikazan na slici 15. 1 i = 0 2 WHILE (i ≠ 10) { 3 i = i + 1 4 OUTPUT i 5 } Slika 15. Algoritam za rešavanje problema bropjanja

Page 15: 1 Staza podataka - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.38-Staza podataka.pdf · 1 Staza podataka Iz predmeta Digitalna Elektronika i Mikroračunarski Sistemi studenti

Na osnovu algoritma zaključujemo da je potreban 4-bitni registra regi u kome se čuva vrednost i. Za liniju 3 potreban je sabirač koji je namenjen za inkrementiranje i. U linijama 1 i 3 upisuje se vrednost u i, što znači da treba da postoje dva izvorišta za registar regi. Prvo što bi nam palo na pamet je da koristimo dvo-ulazni multiplekser. Ipak, operacija punjenje 0 u registar ekvivalentna je brisanju sadržaja registra, što se ostvaruje aktiviranjem asinhronom Clear linijom (na početku rada). Rezultantna staza podataka je prikazana na slici 16a). Za liniju 1 aktivira se signal Clear i promenljiva i se inicijalizira na vrednost 0. Za liniju 3 aktivira se signal iLoad da bi se zapamtio rezultat sa izlaza sabirača, ADD, koji dodaje 1 tekućoj vrednosti i. Aktiviranjem signala Out na izlazu staze podataka se generiše izlaz i. Statusni signal za uslovni test (i≠10) se realizuje pomoću 4-ulaznog NAND kola. Na izlazu NAND kola, kada je na njegovom ulazu prisutna informacija 1010, generiše se logička 0, a u ostalim slučajevima generiše se logička 1. Alternativno rešenje, koje umesto posebnog registra i sabirača (slika 16a)) koristi 4-bitni brojač naviše prikazano je na slici 16b). Kolo sa slike 16b) u potpunosti implementira algoritam sa slike 15. Inicijalizacija i na vrednost 0 se ostvaruje aktiviranjem signala Clear. Za inkrementiranje i, kod linije 3, aktivira se signal Count. Generisanje statusnog signala (i≠10) i aktiviranje izlaza Out se ostvaruje na isti način kao i na slici 16a).

≠≠

(a) (b)

Slika 16. Namenska staza podataka za rešavanje problema brojanja specifiranog algoritmom sa slike 15; (a) rešenje koje koristi poseban sabirač i registar; (b) rešenje koje koristi kolo brojač-

naviše (up counter)

Page 16: 1 Staza podataka - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.38-Staza podataka.pdf · 1 Staza podataka Iz predmeta Digitalna Elektronika i Mikroračunarski Sistemi studenti

Upravljačke reči za obe staze podataka prikazane na slici 16 date su na slici 17. upravljačka

reč instrukcija iLoad Clear Out

1 i = 0 0 1 0 2 i = i + 1 1 0 0 3 OUTPUT i 0 0 1

(a) upravljačka

reč instrukcija Count Clear Out

1 i = 0 0 1 0 2 i = i + 1 1 0 0 3 OUTPUT i 0 0 1

(b)

Slika 17. Upravljačke reči za rešavanje problema brojanja definisanog algoritmom sa slike 15; (a) za stazu podataka sa slike 16a); (b) za stazu podataka sa slike 16b) c) Sumiranje od n naniže ka 1 Konstruišimo sada 8-bitnu namensku stazu podataka koja sabira brojeve od n naniže do 1, gde je n 8-bitni broj koga zadaje korisnik. Kada je suma brojeva izračunata staza-podataka treba da obavesti spoljni uređaj da je proces sabiranja kompletiran putem aktiviranja signala Done. Algoritam za izračunavanje sume je prikazan na slici 18. 1 suma = 0 2 INPUT n 3 WHILE (n ≠ 0) { 4 suma = suma + n 5 n = n - 1 6 } 7 OUTPUT suma Sliak 18. Algoritam za rešavanje problema sume Napomena: Smatrati da u toku procesa sumiranja ne dolazi do prekoračenja, tj. rezultat ne premašuje vrednost 255 Kao prvo, potrebna su dva 8-bitna registra, sa funkcijom Load koji se koriste za memorisanje dve promenljive n i suma, nazvane regn i regsum. Registar za sumu, regsum, treba da ima izvedeno funkciju Clear kojom se on inicijalizira na vrednost 0. Registar regn je izveden kao brojač naniže (down counter) kako bi dekrementirao n. Poseban sabirač, ADD, se koristi za operaciju sabiranja. Rezultantna namenska staza podataka je prikazana na slici 19.

Page 17: 1 Staza podataka - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.38-Staza podataka.pdf · 1 Staza podataka Iz predmeta Digitalna Elektronika i Mikroračunarski Sistemi studenti

D7-0

Q7-0

Load

Clock

8-bitni registar - regsum -

Q7-0

Load

Clock

8-bitni brojač naniže- regn -

sumLoad

nLoad

8

ClearCountnCount

ClockClear

8TB

Output

8

- ADD -+

D7-0

Input

1(n 0) 8≠

8

8

Out

Done

Slika 19. Namenska staza podataka za rešavanje problema sumiranja Za iniciranje suma, aktivira se linija Clear. Aktiviranjem nLoad unosi se vrednost n. Aktiviranjem sumLoad puni se regsum vrednost sa izlaza sabirača ADD, koja odgovara zbiru suma plus n. Dekrementiranje n za 1 se ostvaruje aktiviranjem signala nCount. Konačno, aktiviranjem signala Out daje se dozvola rada tro-statičkom baferu koji na svom izlazu generiše izlaz registra regsum. Signal Out se takođe koristi kao signal Done. Pomoću signala Done se obaveštava spoljni uređaj da je proces izračunavanja kompletiran. Komparator za uslov (n ≠ 0) kod WHILE petlje je 8-ulazno OR logičko kolo. Izlaz OR logičkog kola je statusni signal koji se vodi ka upravljačkoj jedinici. Upravljačke reči za ovaj primer su prikazane na slici 20. upravljačka

reč instrukcija nLoad nCount sumLoad Clear Out 1 suma = 0 0 0 0 1 0 2 INPUT n 1 0 0 0 0 3 suma =

suma+n 0 0 1 0 0 4 n = n - 1 0 1 0 0 0 5 OUTPUT suma 0 0 0 0 1

Sliak 20. Upravljačke reči za rešavanje problema sumiranja sa slike 18

Page 18: 1 Staza podataka - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.38-Staza podataka.pdf · 1 Staza podataka Iz predmeta Digitalna Elektronika i Mikroračunarski Sistemi studenti

d) Faktorijel od n Projektovati 8-bitnu namensku stazu-podataka koja se koristi za izračunavanje faktorijela od n. Faktorijel od n se definiše kao proizvod n∗∗∗∗ K321 . Na slici 21 prikazan je algoritam za rešavanje faktorijela od n gde je n 8-bitni ulazni broj definisan od strane korisnika. Namenska staza podataka treba da signalizira spoljnom uređaju kada je izračunavanje završeno aktiviranjem signala Done u trenutku kada je podatak na izlaznom portu validan. 1 INPUT n 2 proizvod = 1 3 WHILE (n > 1) { 4 proizvod = proizvod ∗ n 5 n = n - 1 6 } 7 OUTPUT proizvod Slika 21. Algoritam za izračunavanje faktorijela od n Napomena: Smatrati da se nakon procesa množenja dva 8-bitna broja dobija ponovo 8-bitni broj Analizom algoritma sa slike 21 zaključujemo da su za stazu podataka potrebni sledeći registri i funkcionalne jedinice:

a) 8-bitni brojač naniže, CoDw, sa izvedenim paralelnim Load za potrebe memorisanja promenljive n, kao i funkcijom za dekrementiranje n. Funkcija paralelni Load omogućava unos vrednosti n.

b) 8-bitni registar, Pro, sa izvedenom funkcijom Load za pamćenje promenljive proizvod. c) funkcionalna jedinica množač, MUL. d) komparator tipa veći-od-jedan (greater-than-one) radi generisanja statusnog signala koji se

vodi ka upravljačkoj jedinici. e) tro-statički izlazni bafer.

Kompletna struktura staze podataka je prikazana na slici 22. Ulazni port, Input, je povezan na ulaz n-bitnog registra CoDw. Aktiviranjem signala nLoad, vrednost prisutna na ulaznom portu se puni u registar CoDw, čime se realizuje instrukcija definisana linijom 1 u algoritmu sa slike 21. Naglasimo da je CoDw 8-bitni registar izveden kao brojač-naniže (down counter), kod koga aktiviranjem linije nCount se izvršava linija 5 (vidi slliku 21). Registar Pro ima dva ulaza, jedan sa linije 2, a drugi sa linije 4. Selekcija ulaza u registar Pro vrši se pomoću multipleksera tipa dva-u-jedan, MUX, koristeći upravljačku liniju za selekciju, productMux. Za potrebe linije 2, konstanta "1" je povezana na ulaz 1 multipleksera MUX, tako da aktiviranjem oba signala productMux i productLoad, konstanta "1" se puni u registar CoDw. Za liniju 4, jedan od operanada za funkciju množenje je proizvod, a drugi operand je n. S toga, izlaz registra Pro je povezan na jedan od ulaza množača MUL. S obzirom da se vrednost n čuva u brojaču CoDw izlaz ovog brojača se dovodi na drugi ulaz množača MUL. Izlaz množača se vraća nazad u registar Pro kao promenljiva proizvod. Kada se promenljiva proizvod upisuje u registar Pro multiplekser MUX selektuje na svom izlazu signal prisutan na ulazu 0. Tro-statički bafer, TB, prosleđuje izlaz registra Pro na izlaz staze podataka Output. Za dozvolu rada tro-statičkog bafera koristi se upravljački signal Out koji je istovremenno i signal Done. Konačno komparator, COMP, generiše statusni signal za uslov (n>1) koji se vodi ka upravljačkoj jedinici. Jedan od ulaza u COMP je izlaz registar CoDw koji čuva vrednost n, a na drugi ulaz se dovodi konstanta "1".

Page 19: 1 Staza podataka - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.38-Staza podataka.pdf · 1 Staza podataka Iz predmeta Digitalna Elektronika i Mikroračunarski Sistemi studenti

Upravljačke reči za izračunavanje faktorijela od strane namenske staze podataka sa slike 22 su prikazane na slici 23a). Kao što se vidi sa slike 23a) postoje sledećih 5 upravljačkih signala productMux, productLoad, nLoad, nCount, i Out.

Slika 22. Namenska staza podataka za rešavanje problema faktorijel sa slike 21 uprav. reč instrukcija productMux productLoad nLoad nCount Out 1 INPUT n x 0 1 0 0 2 proizvod=1 1 1 0 0 0 3 proizvod=proizvod∗n 0 1 0 0 0 4 n=n-1 x 0 0 1 0 5 OUTPUT proizvod x 0 0 0 1

a) upravlj.

reč instrukcija productMux productLoad nLoad nCount Out

1 INPUT n, proizvod=1 1 1 1 0 0

2 proizvod=proizvod∗n n=n-1 0 1 0 1 0

3 OUTPUT proizvod x 0 0 0 1 b)

Slika 23. Kontrolne reči za rešavanje problema faktorijel sa slike 21: (a) korišćenje pet upravlljačkih reči; (b) korišćenje tri upravljačke reči

Napomena: Simbol "x" ukazuje da vrednost signala nije od značaja.

Page 20: 1 Staza podataka - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.38-Staza podataka.pdf · 1 Staza podataka Iz predmeta Digitalna Elektronika i Mikroračunarski Sistemi studenti

Naglasimo da se kod namenske staze podataka sa slike 22 nekoliko instrukcija može izvršavati paralelno (vidi sliku 23b)). Naime, unos promenljive n i inicijalizacije promenljive proizvod na 1 obavlja se simultano od strane upravljačke reči 1. Paralelizam u radu je obezbeđen zahvaljujući tome što je put podataka sa ulaznog porta u registar Pro za potrebe memorisanja vrednosti n u potpunosti izdvojen od puta podataka za inicijalizaciju brojača CoDw na 1. Imajući ovo u vidu pomoću upravljačke reči 1 moguće je zajedno aktivirati signale productLoad i nLoad. Aktiviranjem signala productLoad i productMux puni se konstanta "1" u registar Pro, dok aktiviranjem signala nLoad puni se vrednost n u registar CoDw. Na sličan način, instrukcije množenje i dekrementiranje se mogu zajedno obaviti od strane upravljačke reči 2. U ovom slučaju, aktivira se signal productLoad, a deaktivira signal productMux radi memorisanja rezultata množača MUL, pored toga aktivira se i nCount kako bi se dekrementirala vrednost n. U principu, smanjenje broja upravljačkih reči rezultira smanjenju kompleksnosti upravljačke jedinice. e) Brojanje nula i jedinica Konstruisati 8-bitnu namensku stazu podataka za rešavanje sledećeg problema: Ulaz u sistem je 8-bitni broj. Izlaz je 1 ako broj ima isti broj nula i jedinica, inače je izlaz 0. Tako na primer, za binarni broj 10111011 izlaz će biti 0, dok za broj 10100011 izlaz će biti 1. Algoritam za rešavanje ovog problema je prikazan na slici 24. Petllja WHILE se izvršava 8 puta koristeći counteight promenljivu za 8 bitova ulaznog broja n. Za svaki bit u n, ako je on 1, promenljiva countbit se inkrementira, inače se dekrementira. Na kraju WHILE petlje, ako je countbit jednak 0, tada postoji isti broj nula i jedinica u n. INPUT n countbit = 0 // koristi se za brojanje bitova 0 i 1 counteight = 0 // da izvrši petlju 8 puta WHILE (counteight ≠ 8) { IF (n0 = 1) THEN // test da li je bit 0 od n jednak 1 countbit = countbit + 1 ELSE countbit = countbit - 1 END IF n = n >> 1 // pomeri n za jednu bit poziciju counteight = counteight + 1 } IF (countbit = 0) THEN OUTPUT = 1 ELSE OUTPUT = 0 END IF ASSERT Done // aktiviraj signalizaciju za kraj Slika 24. Algoritam za rešavanje problema brojanja nula i jedinica Nakon analize algoritama sa slike 24 zaključujemo da je u stazi podataka neophodno ugraditi sledeće registre i funkcionalne jedinice:

Page 21: 1 Staza podataka - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.38-Staza podataka.pdf · 1 Staza podataka Iz predmeta Digitalna Elektronika i Mikroračunarski Sistemi studenti

• 8-bitni pomerački registar sa paralelnim Load za čuvanje i pomeranje promenljive n • 4-bitni brojač naviše (up counter) za čuvanje promenljive counteight, nazvan CE • 4-bitni brojač naviše-naniže (up-down counter) za čuvanje promenljive countbit,

nazvan CB • komparator tipa nije-jednak-sa-8 (not equal to 8) da bi se petlja izvršila 8 puta • komparator tipa "jednak 0" (equal to 0) za potrebe testiranja stanja promenljive countbit.

Namenska staza podataka koja implementira algoritam sa slike 24 prikazana je na slici 25. Uočimo da ne postoje veze između pomeračkog registra, SHR, i oba brojača CE i CB, koji su izvedeni kao potpuno nezavisna kola. Da bi izdvojili bit 0 od n i testiračli da li je on jednak 1 ili nije, neophodno je usmeriti, prema upravljačkoj jedinici, bit najmanje težine (LS bit), n0, registra SHR. Na osnovu stanja ovog bita (linija (n0 = 1)) upravljačka jedinica preuzima odgovarajuće akcije. Za testiranje uslova (counteight ≠ 8) koristi se 4-ulazno NAND logičko kolo sa tri invertovana LS ulazna bita. Kada je counteight = 8 izlaz NAND logičkog kola biće 0, što se koristi kao uslov za izlazak iz tela petlje. Koristeći upravljački signal Down, registar CB se može inkrementirati ili dekrementirati. S obzirom da registar CB čuva trag o broju nula i jedinica, ako je njegova vrednost na kraju jednaka 0 to znači da promenljiva n ima isti broj nula i jedinica. NOR logičko kolo generisaće na izlazu 1 ako je sadržaj registra CB jednak 0. Kada će izlaz NOR logičkog kola biti prisutan na izlazu Output definiše stanje upravljačkog signala Out na osnovu koga se određuje da li je rad tro-statičkog bafera, TB, dozvoljen ili nije. Izlazni signal Done koji ukazuje da je vrednost na izlazu Output validna predstavlja repliku upravljačkog signala Out. Upravljačke reči za ovaj primer su prikazane na slici 26. Naglasimo da postoji nekoliko upravljačkih reči kod kojih stanje u kome se nalaze upravljački signali (polja upravljačke reči) nisu od značaja (polja označena sa x). Tako na primer, kod upravljačke reči 2 za inicijalizaciju promenljive countbit na 0, nije od važnosti u kom se stanju nalazi signal Down jer se ne vrši inkrementiranje ili dekrementiranje stanja brojačkog registra CB.

Page 22: 1 Staza podataka - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.38-Staza podataka.pdf · 1 Staza podataka Iz predmeta Digitalna Elektronika i Mikroračunarski Sistemi studenti

Slika 25. Namenska staza podataka za rešavanje problema brojanja nula i jedinica definisanog

algoritmom sa lsike 24 up. reč instrukcija nLoad nShift counteight Down Countbit Clear Out 1 INPUT n 1 0 x x x x 0 2 countbit=0

counteight=0 0 0 0 x 0 1 0

3 countbit=countbit+1 0 0 0 0 1 0 0

4 countbit=countbit-1 0 0 0 1 1 0 0 5 n=n>>1 0 1 0 x 0 0 0 6 counteight=counteight-1 0 0 1 x 0 0 0

7 OUTPUT 1, OUTPUT 0, ASSERT Done 0 0 0 x 0 0 1

Slika 26. Upravljačke reči za rešavanje problema brojanja 0 i 1 definisanog algoritmom sa slike 24, a za stazu podataka prikazanu na slici 25

Page 23: 1 Staza podataka - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.38-Staza podataka.pdf · 1 Staza podataka Iz predmeta Digitalna Elektronika i Mikroračunarski Sistemi studenti

1.4 Generalne staze podataka

Kao što i samo ime ukazuje generalna staza podataka predstavlja jedno opšte hardversko rešenje. Ona se, za razliku od namenske staze podataka, koja je uglavnom projektovana za rešavanje nekog specifičnog problema, koristi za rešavanje širokog dijapazona različitih problema. To znači da, generalna staza podataka u svojoj hardverskoj strukturi treba da ima ugrađeno dovoljan broj raznorodnih tipova funkcionalnih jedinica namenjenih za obradu/manipulisanje podacima, kao i dovoljan broj registara predviđenih za čuvanje svih privremeno promenljivih. Ideja korišćenja generalne staze podataka se sastoji u tome da se bez modifikacije njene hardverske strukture može rešiti skoro svaki problem. Cena koja mora pri tome da se plati ogleda se, pre svega, u:

a) složenoj strukturi kola, b) sporijem radu, i c) povećanoj potrošnji.

Na slici 27a) dat je primer jednostavne generalne staze podataka. Ona sadrži jednu funkcionalnu jedinicu tipa ALU, i jedan 8-bitni registar za čuvanje podataka, REG. Ulazni A operand ALU-a može biti eksterni (sa porta Data Input) ili konstanta "1". Selekcija ulaza za operand A vrši se pomoću multipleksera MUX uz pomoć upravljačkog signala IE. Operand B ALU-a uvek predstavlja izlaz registar REG. Koju će operaciju izvršavati ALU definisano je stanjem triju upravljačkih linija ALU2, ALU1, i ALU0, shodno tabeli istinitosti prikazanoj na slici 27b). Kada je signal Load aktivan u registar REG se upisuje izlaz ALU-a. REG se može asinhrono resetovati aktiviranjem signalne (upravljačke) linije Clear. Sadržaj registra REG se prenosi ka spoljnjem izlaznom portu, Data Output, aktiviranjem upravljačke linije OE čime je rad tro-statičkog bafera, TB, dozvoljen. U konkretnom rešenju, generalne staze podataka sa slike 27, pretpostavljeno je da su sve magistrale za prenos podataka obima 8 bitova, a svi upravljački signali obima 1 bit.

(a)

Page 24: 1 Staza podataka - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.38-Staza podataka.pdf · 1 Staza podataka Iz predmeta Digitalna Elektronika i Mikroračunarski Sistemi studenti

ALU2 ALU1 ALU0 operacija 0 0 0 prenosi se A 0 0 1 A and B 0 1 0 A or B 0 1 1 not A 1 0 0 A + B 1 0 1 A - B 1 1 0 A + 1 1 1 1 A - 1

(b)

Slika 27. Jednostavna generalna staza podataka: a) kolo staze podataka; b) tablica istinitosti ALU-a Postoji 7 upravljačkih signala, numerisanih od 0 do 6, koji su namenjeni za upravljanje radom generalne staze podataka. Kada su grupisani zajedno, upravljački signali formiraju upravljačku reč (control word) staze podataka. Kao i kod namenske staze podataka tip operacije koju trenutno obavlja generalna staza podataka definisan je od strane stanja upravljačkih signala u datom trenutku. Tako na primer, da bi napunili vrednost sa eksternog ulaznog porta podataka, Data Input, u registar REG sadržaj upravljačke reči treba da bude oblika upravljačka

reč IE 6

ALU2 5

ALU1 4

ALU0 3

Load 2

Clear 1

OE 0

vrednost 1 0 0 0 1 0 0 Postavljanjem IE = 1, na izlazu multipleksera MUX propušta se eksterni ulaz prisutan na portu Data Input. Na osnovu tabele istinitosti ALU-a (slika 27b)) zaključujemo da ALU na svom izlazu prenosi vrednost koja je dovedena na ulaz operanda A, a da pri tome ne obavlja modifikaciju nad podatkom. Konačno, postavljanjem Load = 1 vrednost prisutna na izlazu ALU-a upisuje se u registar REG. Signali Clear i OE su neaktivni, s obzirom da se ne zahteva postavljanje sadržaja registra REG na 0, a takođe i prenos sadržaja REG na izlaznom portu Data Output. Napomenimo da se aktuelni upis u registar vrši sa narednom aktivnom ivicom taktnog signala, Clock. To znači da nova vrednost nije dostupna na izlazu registra sve dok ne počne naredni taktni ciklus. Tako na primer, ako čitamo sadržaj registra u tekućem taktnom ciklusu (intervalu) dobićemo početnu vrednost koja je bila upisana u registar, a ne novu vrednost koju smo upravo uneli. Drugim rečima, ako postavimo OE na "1" u upravljačkoj reči (koju smo prethodno specificirali) i čitamo sadržaj registra REG u tekućem ciklusu, na izlazu registra REG dobićemo vrednost koja je prethodno bila zapamćena, a ne novu vrednost koju smo selektovali sa eksternog ulaznog porta.

1.5 Korišćenje staze podataka opšteg tipa Korišćenje staze podataka opšteg tipa je u potpunosti identično kao i korišćenje namenske staze podataka. Naime, neophodno je, u pravim vremenskim trenucima, aktivirati ili deaktivirati odgovarajuće upravljačke signale kako bi operacije tipa prenosa podataka izmedju registara

Page 25: 1 Staza podataka - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.38-Staza podataka.pdf · 1 Staza podataka Iz predmeta Digitalna Elektronika i Mikroračunarski Sistemi studenti

korektno realizovale iskaze koje manipulišu nad tim podacima. U sledećem primeru pokazaćemo kako je moguće koristeći stazu podataka opšteg tipa sa slike 27 rešiti jedan problem. a) Korišćenje staze podataka opšteg tipa za generisanje brojeva od 1 do 10 Analiziraćemo sada problem koji je isti kao i onaj definisan algoritmom sa slike 15 samo što ćemo koristiti stazu podataka sa slike 27. Shodno tome, upravljački signali biće drugačiji. Radi boljeg uvida u rešavanju problema ponovićemo algoritam (vidi sada sliku 28 a)). Upravljački signali staze podataka koji se odnose na rešavanje ovog problema prikazani su na slici 28 b). 1 i = 0 2 WHILE (i≠10) { 3 i = i + 1 4 OUTPUT i 5 } a)

pravljačka reč

instrukcija IE 6

ALU2,ALU1,ALU0 5-3

Load 2

Clear 1

OE 0

1 i = 0 x x x x 0 1 0 2 i= i + 1 0 100 (add) 1 0 0 3 OUTPUT i x x x x 0 0 1

b) Slika 28 Generisanje brojeva od 1 do 10: (a) algoritam; (b) upravljačke reči staze podataka

sa slike 27

Upravljačka reč 1, aktiviranjem signala Clear, inicijalizira promenljivu i na vrednost 0. ALU nije potreban za ovu operaciju. Zbog toga sva četiri upravljačka signala IE, ALU2, ALU1 i ALU0 su postavljeni u stanje x (nije od važnosti). Signal Load nije aktivan jer sadržaj ALU-a ne treba da bude zapamćen u registar REG. Takodje nije portrebno generisati izlaznu vrednost registra REG na portu Data Output, tako da je i upravljačka linija OE postavljena u neaktivno stanje. Upravljačka reč 2 inkrementira i, što znači da je potrebno dodati 1 vrednosti koja se čuva u registar REG. I pored toga što u svom repertoaru (vidi tabelu sa slike 27 b)) ima instrukciju inkrementiranja, istu ne možemo iskoristiti jer ona inkrementira vrednost operanda A, a ne operanda B. Kod staze podataka sa slike 27 a) izlaz registra REG se dovodi kao ulaz ALU-a za operand B. Da bi rešili ovaj problem postoje sledeće dve solucije: 1) modifikovati ALU tako da ova funkcionalna jedinica može da izvrši operaciju inkrement operanda B, tj. B+1; i 2) modifikovati stazu podataka tako da se izlaz registra REG može dovesti na ulaz operanda A od ALU-a (ova modifikacija zahteva ugradnju još jednog multipleksera tipa 2-u-1 na ulaz operanda A). Oba ponudjena rešenja zahtevaju modifikaciju ALU-a što nije u skladu sa konceptom staza-podataka opšte namene, tj. umesto staze podataka opšte namene imaćemo namensku stazu podataka. Zbog svega iznetog, umesto operacije inkrementiranje vrednosti koristićemo operaciju sabiranja (100- add) kako bi povećali vrednost sadržaja registra REG za 1. Ova operacija se izvodi na sledeći način: Na ulaz operanda A se dovodi 1, tako što se selektorski ulaz, IE, multipleksera MUX postavi na 0, IE=0, čime se na ulaz ALU-a dovodi operand čija je vrednost 1. Operand B predstavlja sadržaj registra REG. Konačno, punimo rezultat operacije sabiranja ponovo u REG tako što se aktivira signal Load. Upravljačka reč 3 postavlja sadržaj registra REG na izlazni port Data Output. I kod ove operacije nije potrebno voditi računa u kom se stanju nalaze upravljački ulazu IE, ALU2, ALU1 i ALU0 jer se u REG ne puni nova vrednost. Signal Clear treba da bude neaktivan, a signal OE

Page 26: 1 Staza podataka - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.38-Staza podataka.pdf · 1 Staza podataka Iz predmeta Digitalna Elektronika i Mikroračunarski Sistemi studenti

postavljen u aktivno stanje kako bi tro-statički bafer, TB, propustio na svom izlazu izlaz registra REG. Kao i kod namenske staze podataka tako i kod staze podataka opšteg tipa neophodno je obezbediti statusni signal za uslov (i≠10) koji se dovodi na ulaz upravljačke jedinice. Korišćenjem ovog statusnog signala upravljačka jedinica će odrediti da li da ponovi upravljačke reči 2 i 3 u petlji ili će da završi sa radom. Zbog ovoga je neophodno stazi podataka sa slike 27 a) dodati komparator koji će testirati da li je uslov (i≠10) istinit ili nije. Izlaz ovog komparatora je statusni signal koga staza podataka šalje upravljačkoj jedinici. S obzirom da se promenljiva i čuva u REG neophodno je povezati izlaz registra sa ulazom komparatora, kako je to prikazano na slici 29.

Slika 29 Staza podataka opšteg tipa prikazana na slici 27 sa dodatnim komparatorom za generisanje statusnog signala (i≠10)

Trase-simulacija za primer brojanja su prikazane na slici 30. Naglasimo da su po dva taktna intervala potrebna za izračunavanje svakog broja. Kao što se vidi sa dijagrama-trasiranja, u toku prvog taktnog intervala, koji se odnosi na upravljačku reč 2, na izlazu kola sa slike 27 se generiše Z-vrednost ( odgovara stanju visoke impedanse). U toku drugog taknog intervala, koji se odnosi na upravljačku reč 3, aktivna vrednost broja se prenosi na izlazu staze-podataka. Ovakva taktne pobude se ponavljaju deset puta da bi se dobio broj 10. Na primer, pri 500 ns (na početku prvog od

Page 27: 1 Staza podataka - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.38-Staza podataka.pdf · 1 Staza podataka Iz predmeta Digitalna Elektronika i Mikroračunarski Sistemi studenti

dva taktna intervala) Load=1 i OE=1. Tekući sadržaj registra REG je 1. S obzirom da je OE=0 izlaz se nalazi u stanju visoke impedanse Z. Kod 700 ns (početak drugog od dva taktna intervala) registar REG se ažurira na vrednost 2. Load se deaktivira, a OE se aktivira pa se na izlazu postavlja broj 2. Trase-somulacije su dobijene tako što se u toku svakog taktnog intervala ručno aktiviraju (postavljaju) i deaktiviraju upravlajčki signali staze-podataka. Ovakav pristup se koristi za testiranje staze podataka. Pri tome treba napomenuti da postupak nije automatskui zbog toga što u ovom trenutku još nemamo saznanja o tome kako se sintetizuje upravljačka jedinica. Ono što je eventualno potrebno dalje uraditi se odnosi na to da je neophodno konstruisati upravljačku jedinicu zasnovanu na konceptu generisanja upravljačkih signala datih na slici 28 b). Upravljačka jedinica koja će generisati upravljačke signale stazu podataka sa slike 29 u svakom taktnom intervalu biće predmet izučavanja u poglavlju Upravljačka jedinica.

Slika 30 Trase-simulacije za primer sa slika 28 i 29 koristeći tri upravljačke reči kako je to

prikazano na slici 28 b)

1.6 Složenija staza podataka opšteg tipa Kada neka staza podataka opšteg tipa ne sadrži sve funkcionalne jedinice i/ili registre koji su potrebni za obavljanje željenih operacija, specificirani algoritmom koga treba da implementiramo, tada je neophodno koristiti složeniju stazu podataka. Naime, kada se radi sa stazama podataka opšteg tipa tada projektant ima za cilj da izabere najjednostavniju i najmanje složenu stazu podataka koja ispunjava zahteve postavljeni od strane problema. Analizirajmo sada jedan tipičan primer koji se odnosi na izbor složenije staze podataka. a) Sagledavanje potreba za složenijom stazom podataka Iskoristimo stazu podataka sa slike 27 za potrebe generisanja sume brojeva od n do 1, gde je n 8-bitni ulazni broj, a izlaz odgovara sumi ovih brojeva. Algoritam za obavljanje ove aktivnosti je prikazan na slici 30. Algoritam koristi dve promenljive, n kao ulaznu promenljivu koja odbrojava naniže do 0, i promenljiva suma koja se koristi za sabiranje brojeva do dobijanja totalne sume. To znači da staza podataka treba da poseduje dva registra, jedan za n, a drugi za suma. Na osnovu prethodnog zaključujemo da staza podataka sa slike 27 neće moći da se koristi za implementaciju ovog algoritma. 1 suma = 0

Page 28: 1 Staza podataka - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.38-Staza podataka.pdf · 1 Staza podataka Iz predmeta Digitalna Elektronika i Mikroračunarski Sistemi studenti

2 INPUT n 3 WHILE (n≠0) { 4 suma = suma + n 5 n= n -1 6 } 7 OUTPUT suma Slika 31 Algoritam za generisanje sume brojeva od n naniže do 1 Sa ciljem da se implementira algoritam sa slike 31 potrebno je koristiti nešto složeniju stazu podataka čiju strukturu čine najmanje dva registra. Jedna od mogućih staza podataka je prikazana na slici 32 a). Glavna razlika izmedju ove staze podataka i one prikazane na slici 29 ogleda se u tome što registarsko polje (Register File- RF) čine četiri registra, a ne jedan. RF polje ima jedan port za upis i dva za čitanje. Da bi pristupili pojedinom portu, linija za dozvolu rada tom portu mora biti aktivirana, a adrese pristupa za tu lokaciju postavljeni. Odgovarajuće upravljačke linije su: WE (write enable) za potrebe upisa; RAE (read port A enable) za čitanje porta A; RBE (read port B enable) za čitanje porta B; WA1,0 adresa upisa; RAA1,0 adresa čitanja za port A; i RBA1,0 adresa čitanja za port B. Čitanje portova A i B se može vršiti simultano, a njihovi izlazi su povezani na dva ulazna operanda A i B od ALU-a, respektivno. Operacija ALU-a je specificirana sadržajem prikazan na slici 32 b). Rezultat ALU-a se prenosi preko pomeračkog registra, SHR. Operacije SHR-a su specificirane sadržajem prikazan na slici 32 c). I pored toga što SHR registar nije potreban za implementaciju algoritma sa slike 32 on je ipak uključen (dostupan) u stazi podataka datoj na slici 32. Izlaz SHR-a se vraća nazad u RF polje preko multipleksera MUX. Izlaz SHR-a se takodje vodi preko tro-statičkog bafera, TB, na izlazni port Data Output. Staza podataka, i u ovom slučaju, je obima osam bitova.

Page 29: 1 Staza podataka - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.38-Staza podataka.pdf · 1 Staza podataka Iz predmeta Digitalna Elektronika i Mikroračunarski Sistemi studenti

(a)

ALU2 ALU1 ALU0 operacija 0 0 0 prenosi se A 0 0 1 A AND B 0 1 0 A OR B 0 1 1 NOT A 1 0 0 A + B 1 0 1 A - B 1 1 0 A + 1 1 1 1 A - 1

b)

Page 30: 1 Staza podataka - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.38-Staza podataka.pdf · 1 Staza podataka Iz predmeta Digitalna Elektronika i Mikroračunarski Sistemi studenti

SH1 SH0 operacija 0 0 prenosi se ulaz 0 1 pomeri ulevo i popuni sa 0 1 0 pomeri udesno i popuni sa 0 1 1 rotiranje udesno

c)

Slika 32 Složena staza podataka sa registarskim poljem: (a) kolo; (b) operacije ALU-a; (c) operacije pomeračkog registra

b) Korišćenje složene staze podataka opšteg tipa za sumiranje brojeva Algoritam za sumiranje sa slike 30 se može implementirati korišćenjem staze podataka sa slike 31. Upravljačke reči za manipulisanje stazom podataka koje se odnose na algoritam sa slike 30 prikazane su na slici 33. Upravljačka reč 1 inicijalizira promenljivu suma na vrednost 0 putem oduzimanja dva operanda iste vrednosti. Lokacija registra koja se koristi kao izvorište za dobavljanje oba operanda je proizvoljna iz razloga što nije od važnosti kolika je vrednost operanda nego je od važnosti samo da oba operanda budu istog obima i da imaju iste vrednosti. U konkretnom rešenju RF lokacija 00 se koristi za čuvanje vrednosti promenljive suma. Da bi se pristupilo izvorišnim i odredišnim operandima istovremeno, aktiviraju se sve tri linije za dozvolu rada RF polja (WE, RAE i RBE). Takodje se postavljaju u važeća stanja sledeće linije koje se odnose na pristup lokaciji 0, a to su: a) RF write adresa; i b) obe read adrese. Pomerač, SHR, se ne koristi u toku ove operacije pa se zbog toga u ovoj upravljačkoj reči u polju SHx,x (slika 33) selektuje operacija prenos-ulaza na izlaz. up. reč

instrukcija

IE 15

WE 14

WA1,0 13-12

RAE 11

RAA1,0 10-9

RBE 8

RBA1,0 7-6

ALU2,1,0

5-3

SH1,0 2-1

OE 0

1 suma = 0 0 1 00 1 00 1 00 101 (sub)

00 0

2 INPUT n 1 1 01 0 xx 0 xx xxx xx 0 3 suma =

suma + n 0 1 00 1 00 1 01 100

(add) 00 0

4 n = n -1 0 1 01 1 01 0 xx 111 (dec)

00 0

5 OUTPUT suma

x 0 xx 1 00 0 xx 000 (pass)

00 1

Slika 33. Kontrolne reči za generisanje sume brojeva od n naniže do 1 koristeći stazu podataka sa

slike 31 Sve operacije specificirane od strane jedne upravljačke reči se izvršavaju u okviru jednog taktnog intervala. Tajming operacije ove kontrolne reči je sledeći. Sa aktivnom ivicom taktnog impulsa, FSM prelazi u stanje koje se odnosi na ovu upravljačku reč. Ulaskom u odredjeno stanje aktiviraju se odgovarajući upravljački signali specificirani sadržajem upravljačke reči. Čitaju se podaci sa RF lokacije 0 koji se preko oba porta, A i B, prenose na ulaze ALU-a. Napomenimo da je RF polje tako konstruisano da podaci koji se čitaju sa porta postaju dostupni odmah, tj. ne treba da se čeka na pojavu naredne aktivne ivice taktnog signala. S obzirom da su oba gradivna bloka, ALU i SHR, izvedena kao kombinaciona kola, oni generišu rezultat na svojim izlazima u okviru istog

Page 31: 1 Staza podataka - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.38-Staza podataka.pdf · 1 Staza podataka Iz predmeta Digitalna Elektronika i Mikroračunarski Sistemi studenti

taktnog intervala. Ažurirana vrednost (rezultat) koja se upisuje povratno na RF lokaciju 0 postaje dostupna na početku narednog taktnog intervala. Kontrolna reč 2 prihvata vrednost n i smešta je na RF lokaciju 1. Da bi se prihvatio podatak sa ulaznog porta Data Input neophodno je postaviti IE=1. Da bi upisali n na RF lokaciju 1, potrebno je da WE=1 i WA1,0=01. Gradivni blokovi ALU i SHR se ne koriste u ovoj upravljačkoj reči pa su zbog toga njihove selektorske linije postavljene na xxx (nisu od važnosti). Upravljačka reč 3 čita promenljivu suma sa PortA pa je zbog toga RAE=1 i RAA1,0=00, a promenljivu n preko PortB pa je s toga RBE=1 i RBA1,0=01. Ova dva broja se sabiraju od strane ALU-a, a da bi se to obavilo potrebno je da ALU2,1,0=100. Rezultat ALU-a nakon sabiranja prolazi kroz SHR i MUX i upisuje se u RF polje na lokaciji 0. Upravljačka reč 4 dekrementira n za 1 koristeći operaciju dekrement ALU-a (111). Sa RF lokacije 01, čita se promenljiva n preko PortA i prenosi na ulaz operanda A od ALU-a. ALU dekrementira operand A za 1, a rezultat se upisuje na RF lokaciju 01. Nakon dekrementiranja n, WHILE petlji je potrebno da testira vrednost n. Da bi upravljačka jedinica korektno izvršavala petlju, staza-podataka mora da generiše korektni statusni signal za uslov (n≠0). Pitanje koje se sada projektantu postavlja je sledeće: Na koje mesto u stazi podataka treba postaviti komparator da bi se dobila korektna informacija o vrednosti n? S obzirom da se n čuva na RF lokaciji 01 prvo što nam pada na pamet je povezati komparator na portA RF-a, koji je takodje ulaz ALU-a. Alternativno rešenje može biti sledeće: Povezati komparator na izlazu ALU-a. Razlika izmedju ova dva načina povezivanja komparatora se sastoji u sledećem: Kod prvog načina povezivanja koristi se vrednost n pre dekrementiranja, dok kod drugog, nakon dekrementiranja. Šta više, ako posmatramo obe tačke povezivanja komparatora u različitim trenucima, recimo, u toku taktnog intervala koji se odnosi na upravljačku reč 3, tada se komparirana vrednost ne odnosi na n nego na promenljivu suma, s obzirom da upravljačka reč 3 čita promenljivu suma preko portA, a ALU izračunava suma+n. Zbog toga, da bi tačno odredili koja je korektna tačka povezivanja za komparator, neophodno je prvo analizirati dijagram stanja ovog algoritma kako bi odredili u kom je stanju statusni signal potreban i koji se podatak prenosi kroz stazu podataka u tom taktnom intervalu. Na ovaj problem ukazaćemo sa nešto više detalja u poglavlju Upravljačka jedinica. Upravljačka reč 5 generiše rezultat koji se memoriše u suma tako što se čita vrednost sa RF lokacije 0 preko portA, a nakon toga ta vrednost prenosi nepromenjena preko ALU-a i SHR-a. Signal OE se aktivira sa ciljem da se dozvoli rad tro-statičkog bafera TB, čime podaci na izlaznom portu Data Output postaju validni. Simulacioni rezultati koji se odnose na upravljačke reči sa n=10 su prikazani na slici 34. Naglasimo da su upravljački signali postavljeni ručno u trenutku kada n (koja se čuva u RF(1)) dostigne vrednost 0, pa se u tom trenutku aktivira OE, a simulaciona vrednost 55 se generiše na izlazu.

Page 32: 1 Staza podataka - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.38-Staza podataka.pdf · 1 Staza podataka Iz predmeta Digitalna Elektronika i Mikroračunarski Sistemi studenti

Slika 34. Simulaciona trasa za problem sabiranja kada je n=10

Korišćenje opšte staze podataka radi implementacije množenja dva broja Koristeći stazu podataka prikazanu na slici 32 napisati upravljačke reči za obavljanje operacije množenja dva neoznačena broja. Oba broja se unose u stazu podataka preko Input port-a. Algoritam za množenje je prikazan na slici 35. 1 proizvod = 0 2 INPUT A 3 INPUT B 4 WHILE (B ≠ 0) { 5 proizvod = proizvod + A 6 B = B – 1 7 } 8 OUTPUT proizvod Slika 35. Algoritam za množenje dva neoznačena broja Upravljačke reči za manipulisanje stazom podataka kada ona obavlja množenje dvaju neoznačenih brojeva je prikazana na slici 36. Upravljačka reč 1 dodeljuje 0 (dobijena nakon oduzimanja broja od samog sebe) lokaciji RF(0).. RF(0) se koristi za memorisanje promenljive proizvod. Pomoću upravljačkih reči 2 i 3 unose se neoznačeni brojevi A i B u RF(1) i RF(2), respektivno. IE se postavlja na 1 tako da ulazna vrednost koja dolazi sa porta Data Input se upisuje u RF, pri čemu vrednosti na koje su postavljeni upravljački bitovi za ALU i SHR nisu od značaja, tj. oni su xxx. Da bi se ostvarila operacija upis u RF bit WE je selektovan za upis. Polje WA1,0 definiše adresu 01 za promenljivu A, a 10 za promenljivu B. Pomoću upravljačke reči 4 obavlja se operacija sabiranje promenljivih proizvod i A. Promenljiva proizvod je smeštena u RF(0), a čita se preko PortA, dok se promenljiva A čuva u RF(1), a čita se preko PortB. ALU je selektovan da obavi operaciju add, a rezultat se prenosi

Page 33: 1 Staza podataka - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.38-Staza podataka.pdf · 1 Staza podataka Iz predmeta Digitalna Elektronika i Mikroračunarski Sistemi studenti

nepromenjen preko SHR-a. Da bi se rezultat ALU-a upisao ponovo u RF(1) potrebno je aktivirati WE,dok adrese WA1,0 treba postaviti na 00. Upravljačka reč 5 dekrementira B. Promenljiva B, koja se čuva u RF(2), a čita se preko PortA. ALU je selektovan da obavi operaciju dekrementiranja, a rezultat se ponovo prenosi preko SHR-a bez modifikacije i upisuje nazad u RF(2). Upravljačka reč 6 generiše rezultat koji se čuva u promenljivu proizvod,tako što se prvo čita sadržaj RF(0)preko PortA,a zatim prenošenjem te vrednosti preko ALU-a i SHR-a. Vrednost se prenosi na Data Output port aktiviranjem signala OE. up. reč

instrukcija

IE 15

WE 14

WA1,0 13-12

RAE 11

RAA1,0 10-9

RBE 8

RBA1,0 7-6

ALU2,1,0

5-3

SH1,0 2-1

OE 0

1 proizvod=0

0 1 00 1 00 1 00 101 (sub)

00 0

2 INPUT A 1 1 01 0 xx 0 xx xxx xx 0 3 INPUT B 1 1 10 0 xx 0 xx xxx xx 0 4 proizvod

= proizvod+A

0 1 00 1 00 1 01 100 (add)

00 0

5 B=B-1 0 1 10 1 10 0 xx 111 (dec)

00 0

6 OUTPUT proizvod

x 0 xx 1 00 0 xx 000 (pass)

00 1

Slika 36. Upravljačka reč za množenje dva neoznačena broja koristeći stazu podataka sa slike 32

9.7 Aspekti vremenske sinhronizacije U primeru sa slike 28b) (koristi se za dobijanje i generisanje izlaza dva broja od 1 do 10) korišćene su bile dve upravljačke reči pomoću kojih se obavljaju operacije add i output. Pri tome (vidi sliku 28b)) upravljačka reč 2 obavlja operaciju add i upisuje rezultat u registar, dok upravljačka reč 3 generiše na izlazu sistema broj u kome se čuva promenljiva i. U toku tekućeg taktnog intervala za upravljačku reč 2, operacija počinje tako što se konstanta “1“ propusti kroz MUX, a nakon toga sledi ALU operacija tipa add kojom se obavlja i+1 (vidi sliku 37). Tekuća vrednost promenljive i je dostupna na izlazu registra na početku tekućeg taktnog intervala. Rezultat operacije sabiranja je dostupan nešto pre početka narednog taktnog intervala (naredna usponska ivica taktnog intervala). Napomenimo pri tome da se vrednost lečuje u flip-flop sa pojavom aktivne (usponske) ivice taktnog impulsa. To znači da, i pored toga što je signal Load aktiviran na početku tekućeg taktnog intervala, vrednost se ne upisuje u registar sve do pojave naredne usponske ivice taktnog impulsa, što odgovara početku narednog taktnog intervala. S obzirom da je rezultat operacije add dostupan pre pojave usponske ivice narednog taktnog impulsa, ovaj rezultat operacije sabiranja se upisuje u registar na početku narednog taktnog intervala.

Page 34: 1 Staza podataka - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.38-Staza podataka.pdf · 1 Staza podataka Iz predmeta Digitalna Elektronika i Mikroračunarski Sistemi studenti

Slika 37. Vremenski dijagrami (tajminzi) operacija Read i Write kod upravljačke reči Kod upravljačke reči 2, u toku instrukcije i=i+1, izvršavaju se (za vreme trajanja istog taktnog intervala), sledeće dve operacije: Read i Write nad sadržajem istog registra u kome se čuva promenljiva i. Operacija Read se odnosi na promenljivu i koja se nalazi na desnoj strani izraza i=i+1, tj. posle znaka “=“, a operacija Write se tiče promenljive i koja se nalazi levo od znaka “=“. Na osnovu prethodne analize (slika 37) videli smo da obavljanje obe operacije Read i Write nad sadržajem istog registra u istom taktnom intervalu ne dovodi do konflikta nad korišćenjem podatka. Razlog je sledeći: Aktivnost čitanja (read) obavlja se na početku tekućeg taktnog intervala, dok se operacija upis (writing) ostvaruje na početku narednog taktnog intervala, tj. nakon što je čitanje već završeno. Kao rezultat, vrednost koja je dostupna na izlazu registra u toku tekućeg taktnog intervala je još ona vrednost pre nego što se obavi operacija upis, tj. vrednost pre nego što se obavi sabiranje i+1. Ako aktiviramo signal OE u tekućem taktnom intervalu kako bi postavili na izlazu sadržaj registra (drugim rečima, obaviti sabiranje i operaciju output u istom taktnom intervalu, kako je to prikazano upravljačkoj reči sa slike 39), tada će vrednost na izlazu odgovarati vrednosti pre-add, a ne rezultat nakon-add. Saglasno algoritmu sa slike 28a), izlaz biće onaj koji odgovara vrednosti nakon operacije add. Zbog ovoga, na slici 28b) se koristi upravljačka reč 3 (počinje sa narednim taktnim intervalom) za potrebe generisanja vrednosti na izlazu nakon operacije add.

up. reč

instrukcija IE 6

ALU2, ALU1, ALU0 5-3

Load 2

Clear 1

OE 0

1 i=0 x xxx 0 1 0 2 i=i+1 &

OUTPUT i 0 100

(add) 1 0 1

Slika 38. Algoritam brojanja koji koristi dve upravljačke reči za stazu podataka sa slike 27a)

Trase simulacije za dve kontrolne reči sa slike 38 (kod koje se obe operacije add i output izvršavaju od strane iste upravljačke reči) su prikazane na slici 39. Postoje dve glavne razlike izmedju ove trase simulacije i one prikazane na slici 30. Prva razlika se sastoji u tome da se za svako brojanje zahteva sada samo po jedan taktni interval a ne dva, a razlog je taj što se samo upravljačka reč 2 ponavlja 10 puta. Kao rezultat, vreme da se odbroji do deset je sada prepolovljeno (2,3 µs u odnosu na 4,1 µs). Druga razlika se ogleda u sledećem: Prva vrednost na izlazu je 0 a ne 1 (kako bi trebalo da bude). Prvi put kada se upravljačka reč 2 izvršava odgovara taktnom intervalu

Page 35: 1 Staza podataka - es.elfak.ni.ac.rses.elfak.ni.ac.rs/es/Materijal/Pog.38-Staza podataka.pdf · 1 Staza podataka Iz predmeta Digitalna Elektronika i Mikroračunarski Sistemi studenti

izmedju 100 ns i 300 ns. Inkrementirana vrednost (1) nije upisana u registar sve do trenutka 300 ns, tako da sve dok je OE aktivan pre 300 ns vrednost na izlazu biće 0.

Slika 39. Trase simulacije Dobro je to što se algoritam izvršava za dvaput kraće vreme, ali generisanje ekstra 0 na izlazu kola na početku rada je ono što je nepoželjno. Da bi se rešio ovaj problem postoji nekoliko solucija, a jedna od njih je prikazana na slici 40. Na slici 40 upravljački signal OE se ne aktivira u upravljačkoj reči 2, koja se izvršava samo jedanput na početku izvršenja petlje. (Napomenimo da upravljačke reči 1 i 2 zajedno su ekvivalentne u pogledu dodele konstante 1 promenljivoj i). Naredna izvršenja upravljačke reči 3 imaće postavljeno OE kao aktivno, a ALU će obavljati operaciju add. Ova aktivnost će se izvršavati deset puta. Korigovana trasa simulacije za ovaj skup upravljačkih reči je prikazana na slici 41. Ponovo, samo 2,3 µs je potrebno za kompletno izvršenje algoritma, ali u ovom slučaju, brojanje ka izlazu počinje od 1 a ne od 0. up. reč

instrukcija IE 6

ALU2, ALU1, ALU0 5-3

Load 2

Clear 1

OE 0

1 i=0 x xxx 0 1 0 2 i=i+1 0 100 (add) 1 0 0 3 i=i+1 &

OUTPUT i 0 100 (add) 1 0 1

Slika 40. Optimizirane upravljačke reči za algoritam brojanja koji koristi stazu podataka sa slike

27a)

Slika 41. Korigovana trasa simulacije za slučaj korišćenja tri upravljačke reči sa slike 40