Professional Documents
Culture Documents
Rad Procesora
Rad Procesora
ARHITEKTURA
I
ORGANIZACIJA
RAUNARA
ARHITEKTURA RAUNARA
BEOGRAD, 2006.
DJM
PREDGOVOR
Ova knjiga je napisana kao osnovni udbenik iz arhitekture i organizacije raunara i pokriva
osnovne koncepte iz arhitekture i organizacije procesora, memorije, ulaza/izlaza i magistrale.
Sistemi.
Autor
Beograd
avgusta 2005.
SADRAJ
PREDGOVOR.........................................................................................................................................................1
SADRAJ................................................................................................................................................................3
1
ARHITEKTURA RAUNARA...................................................................................................................7
1.1
ARHITEKTURA PROCESORA..................................................................................................... 7
1.1.1
PROGRAMSKI DOSTUPNI REGISTRI...........................................................................................7
1.1.2
TIPOVI PODATAKA.......................................................................................................................10
1.1.2.1
1.1.3
1.1.3.1
1.1.3.2
1.1.3.3
1.1.4
1.1.5
CELOBROJNE VELIINE.................................................................................................................10
FORMATI INSTRUKCIJA..............................................................................................................10
OPERACIJA I TIP PODATKA............................................................................................................11
IZVORINI I ODREDINI OPERANDI.............................................................................................11
SLEDEA INSTRUKCIJA.................................................................................................................12
NAINI ADRESIRANJA................................................................................................................12
SKUP INSTRUKCIJA.....................................................................................................................13
1.1.5.1
STANDARDNE INSTRUKCIJE.........................................................................................................13
1.1.5.1.1
INSTRUKCIJE PRENOSA...........................................................................................................13
1.1.5.1.2
ARITMETIKE INSTRUKCIJE...................................................................................................14
1.1.5.1.3
LOGIKE INSTRUKCIJE............................................................................................................15
1.1.5.1.4
INSTRUKCIJE POMERANJA I ROTIRANJA.............................................................................15
1.1.5.1.5
INSTRUKCIJE SKOKA................................................................................................................16
1.1.5.1.6
MEOVITE INSTRUKCIJE..........................................................................................................17
1.1.6
MEHANIZAM PREKIDA...............................................................................................................17
1 ARHITEKTURA RAUNARA
U ovoj glavi se razmatraju elementi arhitekture raunara koju ine arhitektura procesora,
arhitektura memorije i arhitektura ulazno/izlaznog sistema.
Ovaj pristup sa registrima podataka ima opravdanja iz dva razlog. Prvi je vremenski
lokalitet prilikom rada sa skalarnim veliinama. Ako se jedanput pristupilo nelom podatku
postoji potreba da se posle toga vie puta njemu pristupa. Drugi je sekvencijalna priroda
raunanja. Obino se tako rauna da se razultat jedne operacije koristi kao podatak za drugu
operaciju.
Adresni registri AR se koriste kod indirektnog registarskog adresiranja, preinkrement i
postdekrement naina adresiranja. Sadraj specificiranog adresnog registra predstavlja adresu
memorijske lokacije na kojoj se nalazi izvorini ili odredini operand u sluaju aritmetikih,
logikih ili pomerakih instrukcija ili adresu skoka u sluaju instrukcija skoka. Koristi se u
situacijama kad treba sa nekoliko instrukcija izraunati adresu elementa neke sloene strukture
podataka, pa onda u okviru aritmetike, logike ili pomerake instrukcije sa date odrese
proitati operand ili na datoj adresi upisati rezultat. Koristi se i u situacijama kad treba sa
nekoliko instrukcija izraunati adresu skoka, pa onda u okviru neke od instrukcija skoka datu
adresu upisati u programski broja PC.
Bazni registri BR se koriste kod baznih i bazno-indeksnih adresiranja. Zbir sadraja
specificiranog baznog registra i pomeraja kod baznih adresiranja, odnosno baznog registra,
indeksnog registra i pomeraja kod bazno-indeksnih adresiranja, predstavlja adresu memorijske
lokacije na kojoj se nalazi izvorini ili odredini operand.
Indeksni registri XR se koriste kod indeksnih i bazno-indeksnih adresiranja, kao i kod
operacija nad nizovima alfanumerikih znakova. Zbir sadraja specificiranog indeksnog registra
i pomeraja kod indeksnih adresiranja, odnosno baznog registra, indeksnog registra i pomeraja
kod bazno-indeksnih adresiranja, predstavlja adresu memorijske lokacije na kojoj se nalazi
izvorini ili odredini operand.
Registri opte namene GPR se koriste kao registri podataka, adresni registri, bazni registri
i indeksni registri.
Akumulator A se koristi kao izvorite i odredite operanda u svim operacijama kod
jednoadresnih procesora.
Registar PSW je standardna programska statusna re procesora sastavljena od odreenog
broja bitova, koji se obino nazivaju indikatori. Bitovi programske statusne rei PSW se
nezavisno postavljaju i koriste po pravilima definisanim posebno za svaki bit. Meutim, u
odreenim situacijama, kao kada se skae na prekidnu rutinu i vraa iz nje, sa bitovima
programske statusne rei PSW se postupa na isti nain, pa se zato uzima da oni predstavljaju
razrede jednog registra. U programskoj statusnoj rei PSW postoje dve grupe bitova i to bitovi
statusnog i bitovi upravljakog karaktera (slika 1). Ovi bitovi se nazivaju i indikatori.
15
14
13
12
11
IN NN IV
10
L1
L0
n 1
2i a i
i 0
Uz takav nain interpretiranja bitova binarne rei, predstavljaju se celobrojne veliine bez
znaka u opsegu 0 do 2n1.
Meutim, ako se ista binarna re intrpretira kao celobrojna veliina sa znakom u drugom
komplementu, onda ona predstavlja podatak A ija se vrednost izraunava pomou izraza
A = 2n-1an-1 +
n 2
2i a i
i 0
10
11
Instrukcija PUSH src prenosi sadraj operanda iz izvorine lokacije src na vrh steka.
Operand moe da bude memorijska lokacija, registar procesora i neposredna veliina. Format
ove instrukcije je jednoadresni.
Instrukcija POP dst prenosi sadraj sa vrha steka u operand dst. Operand moe da bude
memorijska lokacija ili registar procesora, ali ne neposredna veliina. Format ove instrukcije je
jednoadresni.
Instrukcija IN src prenosi sadraj registra kontrolera periferije ija je adresa data poljem src
u akumulator. Format ove instrukcije je jednoadresni.
Instrukcija OUT dst prenosi sadraj akumulatora u registar kontrolera periferije ija je
adresa data poljem dst. Format ove instrukcije je jednoadresni.
1.1.5.1.2 ARITMETIKE INSTRUKCIJE
Instrukcija ADD src sabira celobrojnu 8-bitnu veliinu koja se nalazi u niih 8 razreda
akumulatora AL sa operandom src koji je celobrojna 8-bitna veliina, a rezultat smeta u niih
8 razreda akumulatora AL. Format instrukcije dat je u odeljku Error: Reference source not
found.
Instrukcija SUB src oduzima operand src koji je celobrojna 8-bitna veliina od celobrojne
8-bitne veliine koja se nalazi u niih 8 razreda akumulatora AL, a rezultat smeta u niih 8
razreda akumulatora AL. Format instrukcije dat je u odeljku Error: Reference source not
found.
Instrukcija INC inkrementira celobrojnu 8-bitnu veliinu koja se nalazi u niih 8 razreda
akumulatora AL i rezultat smeta u akumulator AL. Instrukcija je bezadresna. Format
instrukcije dat je u odeljku Error: Reference source not found.
Instrukcija DEC dekrementira celobrojnu 8-bitnu veliinu koja se nalazi u niih 8 razreda
akumulatora AL i rezultat smeta u akumulator AL. Instrukcija je bezadresna. Format
instrukcije dat je u odeljku Error: Reference source not found.
Instrukcija MULU src mnoi celobrojnu 8-bitnu veliinu bez znaka koja se nalazi u niih 8
razreda akumulatora AL sa operandom src koji je celobrojna 8-bitna veliina bez znaka.
Dobijeni 16-bitni rezultat se smeta u akumulator A. Format instrukcije dat je u odeljku Error:
Reference source not found.
Instrukcija MULS src mnoi celobrojnu 8-bitnu veliinu sa znakom koja se nalazi u niih 8
razreda akumulatora AL sa operandom src koji je celobrojna 8-bitna veliina sa znakom.
Dobijeni 16-bitni rezultat se smeta u akumulator A. Format instrukcije dat je u odeljku Error:
Reference source not found.
Instrukcija DIVU src deli celobrojnu 16-bitnu veliinu bez znaka koja se nalazi u
akumulatoru A, sa operandom src koji je celobrojna 8-bitna veliina bez znaka. Rezultat
deljenja se smeta u niih 8 razreda akumulatora AL, a ostatak deljenja se smeta u viih 8
razreda akumulatora AH. Format instrukcije dat je u odeljku Error: Reference source not
found.
Instrukcija DIVS src deli celobrojnu 16-bitnu veliinu sa znakom koja se nalazi u
akumulatoru A, sa operandom src koji je celobrojna 8-bitna veliina sa znakom. Rezultat
deljenja se smeta u niih 8 razreda akumulatora AL, a ostatak deljenja se smeta u viih 8
razreda akumulatora AH. Format instrukcije dat je u odeljku Error: Reference source not
found.
14
15
disp, BOVF disp, BNVF disp, BIN disp, BNIN disp, BNN disp, BNNN disp, BIV disp,
BNIV disp, BU disp i BNU disp realizuju relativni skok sa pomerajem disp u odnosu na
registar PC ukoliko je uslov specificiran kodom operacije ispunjen. Format ovih instrukcija je
dat u odeljku Error: Reference source not found.
Tabela 1 Instrukcije uslovnog skoka
instrukcija
BEQL
BNEQ
BGRT
znaenje
skok na jednako
skok na nejednako
skok na vee nego (sa znakom)
BGRE
uslov
Z=1
Z=0
(N V)
Z=0
NV=0
(N V) = 1
(N V)
Z=1
CZ=0
C=0
C=1
CZ=1
N=1
N=0
V=1
V=0
IN = 1
IN = 0
NN = 1
NN = 0
IV = 1
IV = 0
U=1
U=0
Instrukcija bezuslovnog skoka JMP realizuje skok na adresu koja se izraunava na osnovu
naina adresiranja koji je zadat u samoj instrukciji. Format ove instrukcije je dat u odeljku
Error: Reference source not found.
Instrukcije skoka na potprogram i povratka iz potprograma
Instrukcija JSR realizuje skok na potprogram ija se adresa izraunava na osnovu naina
adresiranja koji je zadat u samoj instrukciji uz uvanje vrednosti registra PC na steku. Format
ove instrukcije je dat u odeljku Error: Reference source not found.
Instrukcija RTS realizuje povratak iz potprograma uz restauraciju vrednosti registra PC sa
steka. Format ove instrukcije je dat u odeljku Error: Reference source not found.
Instrukcija prekida
Instrukcija INT pre programskim putem realizuje prekid i skok na odgovarajuu prekidnu
rutinu. Format ove instrukcije je dat u odeljku Error: Reference source not found. Poljem
16
DISP se predstavlja broj ulaza u tabelu adresa prekidnih rutina pre kao celobrojna veliina bez
znaka.
Instrukcija povratka iz prekidne rutine
Instrukcijom RTI se realizuje povratak iz prekidne rutine uz restauraciju vrednosti registara
PSW i PC sa steka. Format ove instrukcije je dat u odeljku Error: Reference source not found.
1.1.5.1.6 MEOVITE INSTRUKCIJE
Instrukcije postavljanja indikatora u PSW
Instrukcija INTD postavlja nulu u razred I registra PSW. Format instrukcije je dat u odeljku
Error: Reference source not found.
Instrukcija INTE postavlja jedinicu u razred I registra PSW. Format instrukcije je dat u
odeljku Error: Reference source not found.
Instrukcija TRPD postavlja nulu u razred T registra PSW. Format instrukcije je dat u
odeljku Error: Reference source not found.
Instrukcija TRPE postavlja jedinicu u razred T registra PSW. Format instrukcije je dat u
odeljku Error: Reference source not found.
Instrukcija VARD postavlja nulu u razred P registra PSW. Format instrukcije je dat u
odeljku Error: Reference source not found.
Instrukcija VARE postavlja jedinicu u razred P registra PSW. Format instrukcije je dat u
odeljku Error: Reference source not found.
Instrukcija EDGD postavlja nulu u razred E registra PSW. Format instrukcije je dat u
odeljku Error: Reference source not found.
Instrukcija EDGE postavlja jedinicu u razred E registra PSW. Format instrukcije je dat u
odeljku Error: Reference source not found.
Instrukcija bez dejstva
Instrukcija NOP ne proizvodi nikakvo dejstvo. Format ove instrukcije je dat u odeljku
Error: Reference source not found.
1.1.6 MEHANIZAM PREKIDA
Mehanizam prekida kod procesora omoguuje prekid u izvravanju tekueg programa, koji
e se nazivati glavni program, i skok na novi program, koji e se nazivati prekidna rutina.
Poslednja instrukcija u prekidnoj rutini je instrukcija RTI. Ona omoguuje povratak u glavni
program. Izvravanje glavnog programa se produava sa onog mesta gde je bilo prekinuto.
Moe se uzeti da zahtev za prekid stie u toku izvravanja neke od instrukcija. Zbog toga se
mehanizam prekida obino tako realizuje da se instrukcija u toku ijeg je izvravanja stigao
zahtev za prekid, najpre, izvri do kraja, pa se tek onda prihvata zahtev za prekid i skae na
prvu instrukciju prekidne rutine. Izuzetak od ovoga predstavljaju instrukcija nad nizovima
alfanumerikih znakova. Kod ovih instrukcija se zahtev za prekid prihvata u prvom pogodnom
trenutku, koji moe da nastupi i pre trenutka u kom je instrukcija izvrena do kraja.
Efekti mehanizma prekida i instrukcije RTI na izvravanje glavnog programa i prekidne
rutine su prikazani na slici 2. Uzeto je da u toku izvravanja instrukcije glavnog programa sa
adrese 1237 stie zahtev za prekid. Ova instrukcija se se najpre izvri do kraja. Potom procesor
produava sa izvravanjem instrukcija sa adrese 2100 na kojoj se nalazi prva instrukcija
prekidne rutine umesto sa adrese 1238 na kojoj se nalazi prva sledea instrukcija glavnog
programa. Instrukcijom RTI sa adrese 2122 se obezbeuje da procesor kao sledeu izvrava
instrukciju glavnog programa sa adrese 1238. To je instrukcija glavnog programa koja bi se
17
normalno i izvravala posle instrukcije sa adrese 1237 da u toku njenog izvravanja nije stigao
zahtev za prekid.
glavni program
1234
1235
1236
1237
1238
1239
1240
1241
1242
prekidna rutina
2100
2101
2102
2121
2122
RTI
18
Kontekst procesora ine programski broja PC, programska statusna re PSW i preostali
programski dostupni registri, kao, na primer, registri podataka, adresni registri, indeksni
registri, bazni registri, registri opte namene itd. Kontekst procesora se uva najee na steku
i to:
Memorijska adresa na kojoj se nalazi adresa prekidne rutine dobija se sabiranjem broja ulaza u
IV tabelu sa sadrajem registra IVTP. Sa ove adrese se ita sadraj i upisuje u registar PC.
Utvrivanje adrese prekidne rutine se realizuje hardverski.
U okviru opsluivanja zahteva za prekid hardverski se jo:
briu biti maskiranje svih maskirajuih prekida i prekid posle svake instrukcije u
programskoj statusnoj rei procesora PSW kod prekida svih vrsta i
upisuje u bite tekui nivo prioriteta u statusnoj rei procesora PSW nivo prioriteta
prekidne rutine na koju se skae u sluaju maskirajueg prekida.
19
Upisivanjem u bite tekui nivo prioriteta u statusnoj rei procesora PSW nivoa prioriteta
prekidne rutine na koju se skae u sluaju maskirajueg prekida obezbeuje se da se u sluaju
maskirajuih zahteva za prekid pristiglih u toku izvravanja prekidne rutine prihvate samo oni
koji su vieg nivoa prioriteta od nivoa prioriteta prekidne rutine.
Opsluivanje zahteva za prekid poinje na kraju izvravanja svake instrukcije ispitivanjem da
li je u toku njenog izvravanja stigao zahtev za prekid. U sluaju da jeste izvravanje tekue
instrukcije se produava za odreeni broj koraka u okviru kojih se:
Na poetku prekidne rutine se samo oni preostali programski dostupni registri ije se vrednosti
menjaju u prekidnoj rutini posebnim instrukcijama stavljaju na stek, ukoliko se radi o
procesorima kod kojih se softverski uvaju preostali programski dostupni registri.
Povratak iz prekidne rutine
Povratak iz prekidne rutine se realizuje tako to se, najpre, posebnim instrukcijama pri kraju
prekidne rutine restauriraju vrednostima sa steka sadraji onih preostalih programski dostupnih
registara ije su vrednosti posebnim instrukcijama sauvane na steku na poetku prekidne
rutine, ukoliko se radi o procesorima kod kojih se softverski uvaju preostali programski
dostupni registri, a potom izvri instrukcija RTI. Ovom instrukcijom se sa steka restauriraju
sadraji programske statusne rei procesora PSW i programskog brojaa PC. Od tog trenutka
nastavlja se izvravanje prekinutog glavnog programa od instrukcije koja bi se izvravala i sa
kontekstom procesora koji bi bio, da nije bilo skoka na prekidnu rutinu.
Prioriteti prekida
U sluajevima kada se generie vie prekida istovremeno, prekidi se opsluuju po redosledu
opadajuih prioriteta. Tako, na primer, za ranije pobrojane prekide taj redosled je sledei:
najvii je , zatim , , i na kraju .
Prekidi pod koji dolaze od kontrolera periferija (spoljanji maskirajui prekidi) mogu se
javiti istovremeno pa se i oni opsluuju po redosledu opadajuih prioriteta. Ukoliko svaka
periferija ima posebnu liniju u procesoru za slanje svog zahteva za prekid prekida, na osnovu
pozicije linije se odreuje prioritet datog zahteva za prekid.
Selektivno maskiranje maskirajuih prekida
Za maskirajue prekide postoji u procesoru poseban programski dostupan registar IMR koji
se naziva registar maske. Svakoj liniji po kojoj mogu da se alju zahtevi za prekid od periferija
pridruen je poseban razred registra maske. Zahtev za prekid koji stie po odreenoj liniji u
procesoru e biti opsluen jedino ukoliko se u odgovarajuem razredu registra maske nalazi
vrednost 1. Posebnom instrukcijom se u registar maske IMR upisuje odgovarajua vrednost.
20
prekida se izvravanje tekue prekidne rutine i skae na novu prekidnu rutinu ili
ne prekida se izvravanje prekidne rutine, ve se zahtev za prekid prihvata tek po
povratku u glavni program.
Procesor reaguje na oba naina u zavisnosti od situacije u kojoj se nalazi. Ta situacija zavisi od
itavog niza elemenata kao to su:
Kao ilustracija tih situacija moe se uzeti pojednostavljen primer da u procesor stiu samo
maskirajui zahtevi za prekid koji nisu ni selektivno maskirani registrom maske IMR, ni svi
zajedno bitom maskiranje svih maskirajuih prekida u programskoj statusnoj rei procesora
PSW. Maskirajui zahtevi za prekid imaju prioritete. Pored toga, kada se ue u prekidnu rutinu
po nekom maskirajuem prekidu, u procesoru se u bitima tekui nivo prioriteta u programskoj
statusnoj rei procesora PSW uva nivo prioriteta te prekidne rutine. Kada stigne neki novi
zahtev za prekid, a procesor se ve nalazi u prekidnoj rutini, procesor e:
prihvatiti novi zahtev za prekid, ako je on vieg prioriteta nego nivo prioriteta tekue
prekidne rutine ili
ignorisati novi zahtev za prekid, ako je on nieg ili istog nivoa prioriteta kao i nivo
prioriteta tekue prekidne rutine.
Prekidanje izvravanja tekue prekidne rutine i skok na novu prekidnu rutinu naziva se
gnedenje prekida.
Prihvatanje zahteva za prekid
Zahtev za prekid moe da bude opsluen i time skok na prekidnu rutinu realizovan ili na
kraju instrukcije u toku ijeg izvravanja je generisan ili kasnije, na kraju neke od sledeih
instrukcija. Kada e odreeni zahtev za prekid biti opsluen zavisi od vie faktora, kao to su:
da li je re o spoljanjem ili unutranjem prekidu, da li su maskirajui prekidi maskirani, i to ili
selektivno ili svi, da li je stigao samo jedan ili vie zahteva za prekid, itd. Stoga za svaku vrstu
zahteva za prekid odreeni uslovi treba da budu ispunjeni da bi se prelo na njegovo
opsluivanje. Prelazak na opsluivanje odreenog zahteva za prekid naziva se prihvatanje
zahteva za prekid.
U sluaju da u toku izvravanja neke instrukcije stigne vie zahteva za prekid redosled
njihovog prihvatanja definisan je meusobnim prioritetima razliitih vrsta prekida. Najvii
prioritet ima prekid izazvan izvravanjem instrukcije prekida INT (), pa redom slede
unutranji procesorski prekidi (), spoljanji nemaskirajui prekid (), spoljanji maskirajui
prekidi () i prekid posle svake instrukcije () koji ima najnii prioritet. Detaljnije objanjenje
prihvatanja pojedinih tipova zahteva za prekid je dato u daljem tekstu.
Unutranji procesorski kao rezultat izvravanja instrukcije prekida INT: Ovaj zahtev
za prekid se bezuslovno prihvata na kraju faze izvrenja instrukcije INT. Broj ulaza u IV tabelu
je dat adresnim delom instrukcije INT i ima takve vrednosti da moe da se ue u bilo koji ulaz
tabele sa adresama prekidnih rutina.
Unutranji procesorski prekidi pri korienju nelegalnog adresiranja, itanju
instrukcije sa nepostojeim kodom operacije, greke prilikom adresiranja itd.: Zahtevi za
ove prekide prihvataju se ako ne postoji zahtev vieg prioriteta. Brojevi ulaza u IV tabelu za
ove prekide su fiksirani.
Spoljanji nemaskirajui prekid: Ureaj raunara koji kontrolie ispravnost rada delova
raunara postavlja zahtev za nemaskirajui prekid preko posebne linije. Zahtev e biti
prihvaen ako ne postoji zahtev vieg prioriteta. Broj ulaza u IV tabelu za nemaskirajui prekid
je fiksiran.
Spoljanji maskirajui prekidi: Zahteve za maskirajuim prekidima postavljaju periferije
preko posebnih linija. Najvei prioritet, u sluaju simultanog pristizanja vie od jednog zahteva,
ima prekid sa najveim rednim brojem linije. Da bi zahtev za maskirajui prekid bio prihvaen
potrebno je da bude ispunjen svaki od sledeih uslova:
22
Ako je bit ulazi u IV tabelu promenljivi u programskoj statusnoj rei procesora PSW jednak
jedan pa ulazi u IV tabelu nisu fiksni, tada procesor dobija broj ulaza u IV tabelu od periferije.
Procesor o prihvatanju zahteva za prekid obavetava periferiju aktiviranjem odgovarajue linije
potvrde. Periferija tada alje broj ulaza u IV tabelu koji procesor koristi za odreivanje adrese
prekidne rutine. Ako je bit ulazi u IV tabelu promenljivi u programskoj statusnoj rei
procesora PSW jednak nula, pa su ulazi u IV tabelu fiksni, brojeve ulaza generie sam
procesor. Po uvanju sadraja programske statusne rei procesora PSW na steku, procesor u
bite tekui nivo prioriteta u programskoj statusnoj rei procesora PSW upisuje nivo prioriteta
prekidne rutine na koju se skae.
Unutranji procesorski prekid posle svake instrukcije: Zahtev za ovaj prekid se javlja
posle izvrenja svake pojedine procesorske instrukcije pod uslovom da je postavljen bit prekid
posle svake instrukcije u programskoj statusnoj rei procesora PSW. Zahtev se prihvata
ukoliko ne postoje zahtevi vieg prioriteta. Broj ulaza u IV tabelu je fiksan.
.
.
23