Professional Documents
Culture Documents
1. Nacrtajte i objasnite koncept raunala temeljenog na akumulatoru. Kakav je format naredbe? Procesori temeljeni na akumulatoru imaju ogranien broj akumulatora, obino samo jedan, zajedno s spremnicima za pohranu adresa. Naziv akumulator potjee od injenice da ovaj spremnik slui za pohranu jednog operanda aritmetike ili logike operacije, te kao spremnik u koji se po izvoenju operacije pohranjuje njen rezultat. Tako on praktiki slui za akumulaciju podataka te mu odatle potjee i naziv. U vrijeme prvih procesora kada je memorija bila skupa ovakva raunala su bila naroito popularna zato jer je uvijek jedan operand bio u akumulatoru te je u naredbi bilo potrebni specificirati samo memorijsku lokaciju drugog operanda. Rezultat operacije se uvijek pohranjivao u akumulator. Zato se ovakvi procesori nazivaju procesori s jednom adresom. Naredbe ovakvih procesora zato su bili znatno krae (dva okteta) i program je zauzimao manje memorije. Ovakav pristup ima bitnih ogranienja kod prorauna aritmetikih i logikih operacija te zahtjeva uestalo premjetanje podataka iz memorije u akumulator i rezultata iz akumulatora u memoriju. Zbog optereenja sabirnice koja povezuje glavnu memoriju i procesor ovakvo rjeenje naputeno je kod modernijih procesora.
2. Navedite i objasnite modove adresiranja. a) Neposredno adresiranje, (immediate addressing) koristi se da bi se pristupilo konstanti koja je sastavni dio naredbe. Koristi se za dobavu operanda naredbe, a ne moe se koristiti za pohranu rezultata. b) Direktno adresiranje (direct addressing) je kada je adresa operanda sastavni dio naredbe. Ovaj nain adresiranja moe se koristiti i za dohvat operanda i pohranu rezultata. c) Indirektno adresiranje (indirect addressing), konstanta koja je sastavni dio naredbe je adresa memorijske lokacije na kojoj je upisana adresa memorijske lokacije s koje se operand namjerava oitati ili na koju se rezultat eli upisati. Ovim modom implementiraju se pokazivai. Za manipulaciju s podatkom potrebna su dva pristupa memoriji, prvo dohvat pokazivaa tj. adrese gdje je pohranjen podatak s kojim se manipulira, a zatim dohvat operanda ili upis rezultata u memoriju d) Direktno adresiranje spremnika (register direct mode), podatak je upisan ili se upisujeu spremnik ija adresa je sastavni dio naredbe. e) Indirektno adresiranje pomou spremnika (register indirect mode), adresa operanda pohranjena je u spremniku ija adresa je sastavni dio naredbe. Ovaj adresni mod koristi se obino za sekvencijalni pristup elementima polja pohranjenim u memoriji. Poetna adresa polja pohranjuje se u spremnik te se nakon svakog pristupa elementu polja
sadraj spremnika povea za duinu elementa. f) Indeksno adresiranje (indexed mode). Adresa se dobiva zbrajanjem konstante koja je obino sastavni dio naredbe i sadraja spremnika adresiranog naredbom. Konstanta koja je sastavni dio naredbe obino se naziva baza, a sadraj spremnika pomak ili offset. To je razlog da se ponekad ovaj nain adresiranja naziva i posmano ili bazno adresiranje. g) Relativno adresiranje (relative addressing mode) je slian indeksnom adresiranju uz razliku da se konstanti (bazi) koja je sastavni dio naredbe pridodaje sadraj programskog brojila te sa na taj nain formira efektivna adresa.
3. Navedite i objasnite korake za dohvat i izvoenje naredbe addi R2,R1,c2 na arhitekturi prikazanoj na slici.
3 1 0 0 3 1 . . 0 3 2
3 1
P
3 2 3 2 B I T O V N A S P R E M N I K A O P E N A M J E N EP 3 1 R 3 1
C V I P
0
T O
A T A
I R
A
3 1 0
M N A
3 1
A M D O
0
A
C C
E M
I J S
T A
Opis e zapoeti s addi naredbom koja zbraja sadraj spremnika rb s konstantom c2 koja je sastavni dio naredbe i rezultat upisuje u spremnik ra. Zatim e se opisati naredba za prijenos podatka iz memorije u spremnik, ld, i naredba za prijenos podatka iz spremnika u memoriju, st. Sljedee naredbe su naredbe za upravljanje programskim tokom. Iz te skupine naredbi obraditi e se br naredba. Konano e se obraditi naredba za posmak, shr. Aritmetike naredbe: naredba za neposredno zbrajanje, addi. Nredba za neposredno zbrajanje pribraja sadraju spremnika rb konstantu c2 koja je sastavni dio naredbe. addi (:= op = 13) R[ra] R[rb] + c216..0 {2ki komplement, proirenje predznaka}:
4. Navedite koji se problemi susreu kod procesora s cjevovodom i kako se isti rjeavaju. a) Opasnost u cjevovodu kod naredbi za grananje Kod grananja postoji problem da se obavezno izvodi naredba koja slijedi naredbu za grananje neovisno o rezultatu grananja. To znai da je potrebno ubaciti jedno slobodno mjesto iza naredbe za grananje. b) Opasnosti u primjene cjevovoda vezane uz podatke Opasnost primjene cjevovoda vezana uz podatke odnosi se na sluaj kad naredba pristupa spremniku ili memorijskoj lokaciji prije nego je u nju neka od prethodnih naredbi upisala rezultat. Kod SRCa koji se analizira podatke mijenjaju alu naredbe, itaj/pii naredbe i naredba za grananje u potprogram.
5. Na arhitekturi prikazanoj na slici objasnite izvoenje naredbe add R2, R3, R6 te navedite koje upravljake signale je potrebno generirati.
3 1 2 . . 0 3 1 0
3 0
P
3 O S 2 P P 3 2 B I T O V N A R E M N I K A E N A M J E N EP 3 R 3 1 1
C V I P
0
T O
A T A
I R
A
3 1 0
M N
3
A M D O
0
A
C C
A
1
E M
I J S
T A
1. Postavi sadraj PCa i upii u MA. Ujedno inkrementiraj sadraj PCa pomou ALU i rezultat pohrani u privremeni spremnik C. 2. Oitaj sadraj memorijske lokacije na adresi na koju pokazuje sadraj MA i upii u meuspremnik MD. Postavi sadraj privremenog spremnika C na sabirnicu i upii u PC. 3. Postavi sadraj MDa ma sabirnicu i upii u IR. Sklopovi sada dekodiraju naredbu i zakljuuju da se radi o zbrajanju. 4. Postavi sadraj spremnika rb na sabirnicu i upii ga u privremeni spremnik A. 5. Postavi sadraj spremnika rc na sabirnicu, naredi ALU da izvede zbrajanje sadraja privremenog spremnika A i sadraja na sabirnici te rezultat upii u privremeni spremnik C. 6. Postavi sadraj spremnika C na sabirnicu i upii ga u spremnik ra.
Za primijetiti je da su razine u cjevovodu numerirane odozgo prema dole, a naredbe dolaze obrnuto, odozdo prema gore. - Naredba shr je prva ula u cjevovod i ona se trenutno nalazi u fazi upisa rezultata u spremnik r3. - Naredba sub je u fazi pristupa memoriji, ali kako ova naredba nema ovakvu aktivnost nalazi se u fazi mirovanja. Slino vrijedi u proizvodnom procesu obrade dijelova. Tamo npr. donja ploa ne zahtjeva proces poliranja pa kad taj dio doe u tu fazu obrade, obrada se jednostavno preskae. - Naredba add je u treem koraku obrade, operandi su ve prebaeni na ulaze ALU i spremni su za obradu. - Naredba st je u svom drugom koraku kada se iz dijela naredbe, konstanta c2, izdvaja addr1 te sadraj r4 priprema se kako bi se mogao u etvrtom koraku prebaciti u memoriju. - Naredba shr se tek uzima iz memorije. Sve funkcionalne jedinice su zauzete obradom jedne od naredbi. Ovim pristupom praktiki se izvodi jedna naredba u jednom taktu
7. RAM i ROM.
RAM je skraenica od Random Access Memory. memorijskim elementima RAM pristupa se proizvoljnim rasporedom i uvijek s istim vremenom pristupa. Prema konvenciji ovaj termin rezerviran je za poluvodiku memoriju u koju se moe pisati te iz koje se moe itati. Nasuprot RAMu, ROM je preprogramirana poluvodika memorija iz koje se moe samo itati to opisuje i njen naziv: Read Only Memory. Ovi termini su na neki nain zbunjujui s obzirom da se elijama RAMa i ROMa moe pristupati proizvoljnim rasporedom i uvijek s istim vremenom pristupa.
Princip rada RAM memorijske elije moe se opisati na sljedei nain: Memorijska elija realizirana je kao direktno vezani bistabil. Tranzistori za pristup eliji omoguavaju operacije pisanja i itanja. elija se odabire preko linije za odabir rijei (redak matrice) i u eliju je mogue pisati ili iz nje itati pomou dva tranzistora. Stupac memorijske matrice povezan je dvjema linijama (dual rail) na koje se postavlja stvarna bi i invertirana bi vrijednost stupca. Podatak se upisuje u eliju na nain da se vrijednost bi i bi narine na linije preko logike za pisanje u eliju i odabere se rije u koju se upisuje. Podatak se ita iz elije na nain da se linije predpolariziraju na napon izmeu logike nule i jedinice, a zatim se odabere redak i kojeg se ita. Ovaj podatak preko logike za detekciju i pojaanje vodi se na izlaz sklopa.
Za upis podatka u memorijsku eliju, podatak se postavlja na bi liniju i odabire se rije u koju se podatak upisuje. Kondenzator se nabija ili izbija u ovisnosti o vrijednosti bita koji se upisuje. itanje podataka ostvaruje se na slian nain kao i itanje kod statikog RAMa. Linija za podatak se predpolariziraja na napon izmeu logike nule i jedinice, a zatim se odabere redak i kojeg se ita. Podatak iz kondenzatora postavlja se na liniju podatka te se preko logike za detekciju i pojaanje vodi na izlaz sklopa. U ovom procesu ukoliko je nabijen kondenzator se isprazni. Zato je potrebno osvjeiti njegovo stanje. Sklop za detekciju i pojaanje postavlja ponovo podatak na liniju podatka i upisuje podatak u eliju, odnosno osvjeava naboj kondenzatora. Ovaj proces naziva se ciklus osvjeavanja (refresh cycles). Zbog potrebe osvjeavanja sadraja memorijskih elija ovakva memorija naziva se dinamiki RAM ili DRAM.
3 0
P
3 O S 2 P P 3 2 B I T O V N A R E M N I K A E N A M J E N EP 3 R 3 1 1
C V I P
0
T O
A T A
I R
A
3 1 0
M N
3
A M D O
0
A
C C
A
1
E M
I J S
T A
1. Navedite i objasnite korake za dohvat i izvoenje naredbe addi R2,R1,c2 na arhitekturi prikazanoj na slici. Aritmetike naredbe: naredba za neposredno zbrajanje, addi. Nredba za neposredno zbrajanje pribraja sadraju spremnika rb konstantu c2 koja je sastavni dio naredbe. addi (:= op = 13) R[ra] R[rb] + c216..0 {2ki komplement, proirenje predznaka}: Konkretan RTN opis prikazan je sljedeom tablicom u kojoj su prva tri koraka izostavljena iz razloga to su identini svim naredbama. Korak RTN T0 T2 Dohvat naredbe T3 A R[rb]; T4 C A + c2 {pro. pred.}
T5 R[ra] C;
2. Na arhitekturi prikazanoj na slici, navedite i objasnite razlike u izvoenju naredbi: add R3, R5, R7 i addi R3, R5, R7. One se razlikuju samo u etvrtom koraku kada se drugi operand na sabirnicu postavlja direktno iz spremnika naredbe, IR, uz proirenje predznaka bitova 17..31. Sklopovsko rjeenje proirenja predznaka biti e naknadno opisano.
3. Na arhitekturi prikazanoj na slici, navedite i objasnite razlike u izvoenju naredbi: Id R7, 24(R9) i st R7, 24(R9). Naredbe za prebacivanje podataka, itaj i pii. Sljedei je apstraktan RTN opis naredbi itaj i pii: ld (:= op = 1) R[ra] M[disp]: Upii u spremnik iz memorije st (:= op = 2) M[disp] R[ra]: Upii u memoriju iz spremnika gdje je sljedea definicija pomaka, disp: disp31..0 := ((rb = 0) c216..0 {proirenje predznaka}:
(rb 0) R[rb] + c216..0 {proirenje predznaka}): Konkretan RTN opis ovih naredbi prikazan je sljedeom tablicom Korak RTN za ld RTN za st T0 T2 Dohvat naredbe Dohvat naredbe T3 A ((rb = 0) 0: rb 0) R[rb]; A ((rb = 0) 0: rb 0) R[rb]; T4 C A + (16@IR<16>#IR<15..0>); C A + (16@IR<16>#IR<15..0>); T5 MA C; MA C; T6 MD M[MA]; MD R[ra]; T7 R[ra] MD; M[MA] MD; Baza adrese odreuje se u etvrtom koraku, T3, kada se u privremeni spremnik A upisuje 0 ako je rb = 0, odnosno sadraje spremnika rb ako je rb 0. U petom koraku, T4, izrauna se efektivna adresa pribrajanjem konstante, pomaka, koja je sastavni dio naredbe uz proirenje njenog predznaka, s bazom koja se nalazi upisana u privremenom spremniku A. U estom koraku, T5, upisuje se memorijska adresa u spremnik MA. Sedmi i osmi korak razlikuje se kod ovih dviju naredbi u smjeru prijenosa podatka. Kod ld, iz memorije u meuspremnik MD u sedmom koraku, T6, te iz MD u odredini spremnika ra u osmom koraku, T7. Podatak iz spremnika ra prebacuje se u MD u sedmom koraku, T6, kod naredbe st, te u osmom koraku iz MD u memoriju. MD je poseban spremnik koji moe
14. Tipovi naredbi Naredbe za dohvat i obradu podataka ALU naredbe Naredbe sa upravljanje programskim tokom
Naredba sa etiri adrese i opcode specificira eksplicitno adrese etiri posljednja podatka
(adrese dvaju operanada, rezultata i sljedee naredbe). Slika prikazuje kako programer vidi ovakav procesor te kakav je format naredbe.
Neka je za svaku adresu potrebno 3 okteta (24 bita) pa je ukupna duina naredbe 13 okteta. Neka procesor pristupa memoriji preko 24 bitovne sabirnice (24 bita dohvaaju se kao najmanja cjelina) tada je za dohvat naredbe potrebno pet puta pristupiti memoriji. Da bi se izvela naredba potreban je sljedei broj pristupa memoriji: 5 za dohvat naredbe, 2 za dohvat operanada i 1 za pohranu rezultata. To znai da je sveukupno potrebno 8 pristupa memoriji da bi se zbrojila dva broja. Zbog velike duine naredbe, kao i velikog broja pristupa memoriji za vrijeme izvoenja naredbe ovakva arhitektura se praktiki ne koristi.
Naredba s tri adrese i opcode. Uvoenjem programskog brojila PC, kao posebnog
spremnika procesora koji pokazuje na adresu sljedee naredbe koju je potrebno izvesti, eliminira se potreba da se u okviru naredbe specificira adresa sljedee naredbe kod svih naredbi osim kod naredbi za grananje. Sada je u nadlenosti upravljake jedinice da izrauna duljinu tekue naredbe te da za taj iznos uvea iznos PC-a. Naredba i dalje sadri adrese operanada i adresu rezultata.
Naredba je kraa za 3 okteta i duine je 10 okteta, a tijekom izvoenje naredbe potrebno je 7 puta pristupiti memoriji.
Naredba s dvije adrese i opcode. Smanjenje duine naredbe moe se postii ukoliko se
rezultat operacije pohrani na mjesto drugog operanda. Ovim je potrebno unutar naredbe specificirati samo operacijski kod i adrese prvog i drugog operanda. Prelazak s naredbe s tri adrese na naredbu s dvije adrese ne zahtijeva nikakve dodatne spremnike unutar procesora. U ovom sluaju duina naredbe se smanjuje na 7 okteta, a izvoenje na 6 pristupa memoriji.