Академический Документы
Профессиональный Документы
Культура Документы
jedinica
Poglavlje
Ciklus donoenja
Indirektni ciklus
Ciklus prekida
Izvrni ciklus
Instrukcijski ciklus
19.2 Upravljanje procesorom
Funkcionalni zahtevi
Upravljaki signali
Primer upravljakih signala
Unutranja organizacija procesora
Intel 8085
19.3 Oiena implementacija
Kljuni pojmovi
Kontrolna pitanja
Problemi
19-1
Kljune teze
Izvravanje instrukcije obuhvata izvravanje niza potkoraka, koji se uopteno
cesor izvrava mikrooperacije po pravilnom redosledu koji je odreen programom koji se izvrava i (2) generie upravljake signale koji dovode do toga da se
sve mikrooperacije izvre.
Upravljaki signali koje generie upravljaka jedinica izazivaju otvaranje i zatva-
ranje logikih kola, to za posledicu ima prenos podataka u registre i iz registara, kao i rad aritmetiko-logike jedinice.
Jedna od tehnika za implementiranje upravljake jedinice poznata je kao oi-
U poglavlju 12 istakli smo da skup mainskih instrukcija prolazi dug put prema procesoru. Ukoliko znamo skup mainskih instrukcija, to znai da razumemo ta operativni kodovi rade i razumemo reime adresiranja i ukoliko znamo skup registara
vidljivih korisniku, tada znamo koje funkcije procesor mora da izvri. To nije sve.
Moramo poznavati spoljni interfejs, to je najee magistrala, i to kako se upravlja
prekidima. Kada nam je to jasno, pojavljuje se sledei spisak elemenata neophodnih
da bi se odredilo funkcionisanje procesora:
1.
2.
3.
4.
5.
6.
Iako uopten, ovaj spisak je prilino potpun. Stavke od 1 do 3 definisane su skupom instrukcija. Stavke 4 i 5 obino su definisane odreivanjem sistemske magistrale.
Stavka 6 delimino je definisana sistemskom magistralom, a delimino tipom podrke
koju procesor nudi operativnom sistemu.
Ovaj spisak od est stavki mogao bi se nazvati funkcionalni zahtevi za procesor.
Oni odreuju ta procesor mora da radi. Time smo se najvie bavili u drugom i tre-
19.1 / Mikrooperacije19-3
em delu. Sada nas zanima to kako se ove funkcije izvravaju ili, jo tanije, kako se
upravlja razliitim delovima procesora da bi se te funkcije obavile. Stoga, nau panju
usmeravamo ka upravljakoj jedinici, koja upravlja radom procesora.
19.1 Mikrooperacije
Ve smo videli da se rad raunara, prilikom izvravanja programa, sastoji od niza
instrukcijskih ciklusa, sa jednom mainskom instrukcijom po ciklusu. Naravno,
moramo se podsetiti da redosled instrukcijskih ciklusa nije obavezno isti kao i redosled
pisanja instrukcija od kojih je program sainjen, zbog postojanja instrukcija grananja.
Ovde je re o izvravanju vremenskog redosleda instrukcija.
Dalje smo videli da se svaki instrukcijski ciklus sastoji od odreenog broja jednostavnijih celina. Jedna od pogodnih podela je podela na ciklus donoenja, indirektni
ciklus, izvrni ciklus i ciklus prekida, pri emu se samo ciklus donoenja i izvrni
ciklus obavezno deavaju.
Za projektovanje upravljake jedinice neophodno je da dodatno ralanimo
ovu podelu. Pri razmatranju protone obrade u poglavlju 12, uvideli smo da je dalja
dekompozicija mogua. U stvari, videemo da svi manji ciklusi obuhvataju niz koraka,
od kojih svi obuhvataju registre procesora. Ove korake nazvaemo mikrooperacije. Prefiks mikro oznaava injenicu da je svaki korak veoma jednostavan i da obavlja malo
toga. Na slici 19.1 prikazan je meusobni odnos izmeu razliitih pojmova o kojima
smo govorili. Ukratko da ponovimo, izvravanje programa sastoji se od izvravanja
instrukcija jedne za drugom. Sve instrukcije izvravaju se tokom instrukcijskog ciklusa
koji se sastoji od kraih potciklusa (npr. ciklusa donoenja, indirektnog ciklusa, izvrnog ciklusa, ciklusa prekida). Izvravanje svakog od potciklusa obuhvata jednu ili vie
kraih operacija, to jest, mikrooperacija.
Mikrooperacije su najmanje mogue, ili atomske, operacije procesora. U ovom
odeljku, istraiemo mikrooperacije kako bismo razumeli to da se dogaaji u bilo kom
instrukcijskom ciklusu mogu opisati kao niz takvih mikrooperacija. Koristie se jednostavan primer. U ostatku ovog poglavlja pokazaemo kako znanje o mikrooperacijama
slui kao smernica za projektovanje upravljake jedinice.
Izvravanje programa
Instrukcijski ciklus
Ciklus don.
OP
OP
OP
Instrukcijski ciklus
Ind. ciklus
Ciklus prekida
OP
OP
Izvrni ciklus
Instrukcijski ciklus
MAR
0000000001100100
MBR
MBR
0001000000100000
PC
0000000001100100
PC
0000000001100100
IR
IR
AC
AC
(c) Drugi korak
(a) Poetak
MAR
0000000001100100
MBR
PC
0000000001100100
IR
MAR
0000000001100100
MBR
0001000000100000
PC
0000000001100100
IR
0001000000100000
AC
AC
(b) Prvi korak
19.1 / Mikrooperacije19-5
Prema tome, jednostavan ciklus donoenja se, u stvari, sastoji od tri koraka i etiri
mikrooperacije. Svaka mikrooperacija obuhvata premetanje podataka u registar ili
iz njega. Sve dok ta pomeranja nemaju uticaja jedno na drugo, nekoliko njih moe
se obaviti u jednom koraku, tedei vreme. Simbolino, ovaj niz dogaaja moemo
napisati na sledei nain:
t1: MAR (PC)
t2: MAR memorija
PC (PC) + I
t3: IR (MBR)
t2: MAR memorija
t3: PC (PC) + I
IR (MBR)
2.
Indirektni ciklus
Poto je instrukcija doneta, sledei korak je donoenje izvornih operanda. Nastavljajui sa naim jednostavnim primerom, pretpostavimo da instrukcija ima format sa
jednom adresom, koja dozvoljava direktno i indirektno adresiranje. Ukoliko instrukcija navodi indirektnu adresu, tada izvrnom ciklusu prethodi indirektni ciklus. Tok
podataka donekle se razlikuje od onog naznaenog na slici 14.7 i obuhvata sledee
mikrooperacije:
Polje adrese u instrukciji prenosi se u MAR registar. On se zatim koristi za donoenje adrese operanda. Konano, polje adrese IR registra se aurira iz MBR registra,
tako da sada sadri direktnu umesto indirektne adrese.
IR registar je sada u istom stanju kao da indirektno adresiranje nije ni korieno i
spreman je za izvrni ciklus. Na trenutak emo preskoiti ovaj ciklus i razmotriemo
ciklus prekida.
Ciklus prekida
Po zavretku izvrnog ciklusa, vri se provera kako bi se ustanovilo da li se dogodio
neki od dozvoljenih prekida. Ukoliko je tako, dogaa se ciklus prekida. Priroda ovog
ciklusa veoma se razlikuje od jednog do drugog procesora. Prikazujemo veoma jednostavan niz dogaaja, onako kako su prikazani na slici 14.8. Imamo:
t1: MBR (PC)
t2: MAR adresa_uvanja
PC adresa_rutine
t3: memorija (MBR)
19.1 / Mikrooperacije19-7
poslednji korak je skladitenje u memoriju MBR registra, koji sadri staru vrednost
PC registra. Procesor je sada spreman da otpone sledei instrukcijski ciklus.
Izvrni ciklus
Ciklus donoenja, indirektni ciklus i ciklus prekida su jednostavni i predvidivi. Svi
oni obuhvataju male, nepromenljive nizove mikrooperacija i, u svim sluajevima, iste
mikrooperacije ponavljaju se svaki put ispoetka.
Ovo ne vai za izvrni ciklus. Za procesor sa N razliitih operacionih kodova,
postoji N razliitih redosleda po kojima se mikroperacije mogu odvijati. Razmotrimo
nekoliko hipotetikih primera.
Prvo, razmatramo instrukciju sabiranja:
ADD R1, X
kojom se sadraj lokacije X dodaje u registar R1. Mogue je da se desi sledei niz
mikrooperacija:
ISZ X
t2: MBR memorija
t3: MBR (MBR) + 1
t4: memorija (MBR)
Ukoliko ((MBR) = 0) tada (PC (PC) + I)
Ovde je uvedeno neto novo, a to je uslovna akcija. Registar PC se poveava ukoliko je (MBR) = 0. Ova provera i akcija mogu se izvesti u jednoj mikrooperaciji. Primeujete takoe da se ova mikrooperacija moe izvriti tokom iste jedinice vremena
tokom koje se aurirana vrednost u MBR registru ponovo skladiti u memoriju.
Na kraju, razmotrimo instrukciju za pozivanje potprograma. Kao primer, razmotrimo instrukciju za grananje i uvanje adrese:
BSA X
Adresa instrukcije, koja sledi posle instrukcije BSA, uva se u lokaciji X, a izvravanje se nastavlja na lokaciji X+I. Sauvana adresa kasnije e biti iskoriena za
povratak. Ovo je jednostavna tehnika za pozivanje potprograma. Dovoljne su sledee
mikrooperacije:
MBR (PC)
t2: PC (IR(adresa))
memorija (MBR)
t3: PC (PC) + I
Instrukcijski ciklus
Ve smo videli da se svaka faza instrukcijskog ciklusa moe dekomponovati u niz elementarnih mikrooperacija. U naem primeru, postoji po jedan niz mikrooperacija za
ciklus donoenja, indirektni ciklus i ciklus prekida, a za izvrni ciklus postoji jedan niz
mikrooperacija za svaki operacioni kd.
Da bismo upotpunili sliku, potrebno je da poveemo niz mikrooperacija, i to je
uinjeno na slici 19.3. Uvodimo novi 2-bitni registar pod nazivom kd instrukcijskog
ciklusa (Instruction Cycle Code, ICC). Registar ICC oznaava stanje procesora u smislu u kom delu ciklusa se procesor nalazi:
00: ciklus donoenja,
01: indirektni ciklus,
10: izvrni ciklus,
11: ciklus prekida.
Na kraju svakog od ova etiri ciklusa, vrednost ICC registra postavlja se na odgovarajuu vrednost. Posle indirektnog ciklusa uvek sledi izvrni ciklus. Posle ciklusa
prekida uvek sledi ciklus donoenja (videti sliku 12.4). to se tie ciklusa donoenja i
izvrnog ciklusa, sledei ciklus zavisi od stanja sistema.
Prema tome, dijagram toka na slici 19.3 definie potpuni niz mikrooperacija, koji
zavisi samo od redosleda instrukcija i vrste i naina pojavljivanja prekida. Naravno,
ovo je pojednostavljeni primer. Dijagram toka stvarnog procesora bio bi mnogo sloeniji. U svakom sluaju, stigli smo do one take u naoj raspravi u kojoj se rad procesora definie kao obavljanje niza mikrooperacija. Razmotriemo kako upravljaka
jedinica dovodi do izvravanja tog niza.
11 (prekid)
00 (donoenje)
ICC?
10 (izvravanje)
11 indirektni
Postavljanje
prekida
Operacioni
kd
Uitavanje
adrese
ICC 00
Izvravanje
instrukcije
ICC 10
Da
Prekid za
omogueni
prekid?
ICC 11
Ne
Donoenje
instrukcije
Ne
ICC 10
Indirektno
adresiranje?
Da
ICC 01
ICC 00
Sve mikrooperacije neophodne za obavljanje jednog instrukcijskog ciklusa, ukljuujui sve mikrooperacije za izvravanje svih instrukcija iz skupa instrukcija, spadaju
u jednu od ovih kategorija.
Sada moemo biti malo odreeniji kada govorimo o nainu na koji upravljaka
jedinica funkcionie. Upravljaka jedinica obavlja dva osnovna zadatka:
sekvenciranje: upravljaka jedinica dovodi do toga da procesor prolazi kroz
niz mikrooperacija po pravilnom redosledu koji zavisi od programa koji se
izvrava;
izvravanje: upravljaka jedinica pokree obavljanje svih mikrooperacija.
Ovo je funkcionalni opis onog ta upravljaka jedinica radi. Klju kako upravljaka jedinica radi je u korienju upravljakih signala.
Upravljaki signali
Ve smo definisali elemente od kojih se procesor sastoji (aritmetiko-logika jedinica,
registri, putanje podataka) i mikrooperacije koje se obavljaju. Da bi upravljaka jedinica obavljala svoju funkciju, ona mora da ima ulaze koji joj omoguavaju da odredi
stanje sistema i izlaze koji joj omoguavaju da upravlja ponaanjem sistema. Njima se
spolja opisuje upravljaka jedinica. Iznutra, upravljaka jedinica mora da ima logika
kola neophodna da bi obavila svoje funkcije sekvenciranja i izvravanja. Raspravu o
tome kako upravljaka jedinica radi iznutra ostavljamo za odeljak 19.3 i poglavlje 20.
U preostalom delu ovog odeljka govoriemo o meusobnom delovanju izmeu upravljake jedinice i ostalih elemenata procesora.
Na slici 19.4 dat je opti model upravljake jedinice, na kome su prikazani svi
ulazi i izlazi. Ulazi su sledei:
Upravljaki signali
unutar procesora
Markeri
Upravljaka
jedinica
Generator
takta
Upravljaki signali sa
upravljake magistrale
Upravljaka magistrala
Instrukcijski registar
Upravljaki signali ka
upravljakoj magistrali
M
B
R
C10
C3
C12
C8
C4
AC
C1
IR
PC
C7
C9
C6
C0
C2
M
A
R
C13
Upravljaka
jedinica
Generator
takta
ALU
Upravljaki
signali
Upravljaki
signali
oitava sve svoje ulaze i emituje skup upravljakih signala. Upravljaki signali odlaze
do tri razliita odredita:
putanje podataka: upravljaka jedinica kontrolie unutranji tok podataka; na
primer, prilikom donoenja instrukcije, sadraj memorijskog bafer registra prenosi se u instrukcijski registar; za sve putanje koje se kontroliu postoji logiko
kolo (naznaeno kruiem na slici); upravljaki signal iz upravljake jedinice
privremeno otvara logiko kolo da dozvoli prolazak podataka;
aritmetiko-logika jedinica: upravljaka jedinica kontrolie rad aritmetikologike jedinice pomou skupa upravljakih signala; ovi signali aktiviraju razliite logike ureaje i kola unutar aritmetiko-logike jedinice;
sistemska magistrala: upravljaka jedinica alje upravljake signale na upravljake linije sistemske magistrale (npr. uitavanje memorije).
Upravljaka jedinica mora uvek da zna gde se nalazi u instrukcijskom ciklusu.
Koristei to znanje, i itajui svoje ulaze, upravljaka jedinica emituje niz upravljakih
signala koji izazivaju deavanje mikrooperacija. Ona koristi impulse generatora takta
da bi odredila vremenski redosled dogaaja, ostavljajui vreme izmeu dogaaja da
bi se nivoi signala stabilizovali. U tabeli 19.1 navedeni su upravljaki signali koji su
potrebni za neke od nizova mikrooperacija opisanih ranije. Zbog jednostavnosti putanje podataka i kontrole za poveanje PC registra i za uitavanje nepromenljivih adresa
u registre PC i MAR nisu prikazane.
Tabela 19.1 Mikrooperacije i upravljaki signali
Mikrooperacije
Redosled dogaanja
t1: MAR (PC)
Ciklus donoenja:
Aktivni upravljaki
signali
C2
C5, CR
PC (PC) + 1
Indirektni ciklus:
Ciklus prekida:
t3: IR (MBR)
C4
C8
C5, CR
C4
C1
C12, Cw
Vredi podrobnije prouiti osnovnu prirodu upravljake jedinice. Upravljaka jedinica je mehanizam koji pokree itav raunar. Ona to radi samo na osnovu znanja o
tome koje se instrukcije izvravaju i prirodi rezultata aritemtikih i logikih operacija
(npr. pozitivno, prekoraenje itd.). Ona nikada ne vidi podatke koji se obrauju ili
IR
Adresne
linije
MAR
Linije
podataka
MBR
AC
PC
Upravljaka
jedinica
Z
Slika 19.6 Procesor sa unutranjom magistralom
Za premetanje podataka iz svakog registra na magistralu i sa magistrale obezbeena su logika kola i upravljaki signali. Dodatni upravljaki signali kontroliu prenos podataka na i sa sistemske (spoljne) magistrale i rad aritmetiko-logike jedinice.
Dva nova registra, obeleena Y i Z, dodata su u organizaciju. Oni su neophodni
za ispravan rad aritmetiko-logike jedinice. Kada se izvrava operacija koja obuhvata
dva operanda, jedna se moe dobiti iz unutranje magistrale, ali se drugi mora dobiti
iz nekog drugog izvora. Registar AC bi se mogao koristiti u tu svrhu, ali se time ograniava fleksibilnost sistema i verovatno ne bi funkcionisalo sa procesorom sa viestrukim registrima opte namene. Registar Y obezbeuje privremeno mesto za uvanje
ostalih ulaza. Aritmetiko-logika jedinica je kombinatorno kolo (pogledajte poglavlje 11) bez unutranjeg skladita. Stoga, im upravljaki signal aktivira neku funkciju
aritmetiko-logike jedinice, ulaz u aritmetiko-logiku jedinicu pretvara se u izlaz.
Prema tome, izlaz aritmetiko-logike jedinice ne moe se direktno povezati sa magistralom poto bi taj izlaz trebalo ponovo vratiti u ulaz. Registar Z obezbeuje privremeno izlazno skladite. Takvim reenjem, operacija dodavanja vrednosti iz memorije
u AC registar trebalo bi da ima sledee faze:
t1: MAR (IR(adresa))
t2: MBR memorija
t3: Y (MBR)
t4: Z (AC) + (Y)
t5: AC (Z)
Mogue su i drugaije organizacije, ali se, uopteno, koristi neka vrsta unutranje
magistrale ili skupa unutranjih magistrala. Korienje zajednikih putanja podataka
pojednostavljuje emu meusobnih veza i upravljanje procesorom. Drugi praktini
razlog za korienje unutranje magistrale jeste uteda prostora. Posebno u sluaju
mikroprocesora, koji zauzima samo kvadratnog ina pareta silikona, kada se prostor koji zauzimaju veze izmeu registara mora to vie smanjiti.
Intel 8085
Da bismo ilustrovali neke od koncepata koje smo do sada analizirali u ovom poglavlju,
razmotriemo procesor Intel 8085. Njegova organizacija prikazana je na slici 19.7.
Postoji nekoliko kljunih komponenata koje nisu jasne same po sebi:
elektronski prekida za poveanje / smanjenje adrese: logiko kolo koje moe
dodati 1 na ili oduzeti 1 od sadraja pokazivaa steka ili programskog brojaa;
time se tedi vreme poto se izbegava upotreba aritmetiko-logike jedinice u tu
svrhu;
upravljanje prekidima: ovaj modul upravlja viestrukim nivoima signala prekida;
upravljanje serijskim U/I: ovaj modul predstavlja interfejs prema ureaju koji
razmenjuje podatke 1 bit odjednom.
U tabeli 19.2 opisani su spoljni ulazni i izlazni signali procesora 8085. Oni su
povezani sa spoljnom sistemskom magistralom. Ovi signali predstavljaju interfejs
izmeu procesora 8085 i ostatka sistema (slika 19.8).
Napajanje
5V
GND
X1
X2
Dekoder
instrukcija i
kodovanje
ciklusa
procesora
Dekoder
instrukcija i
kodovanje
ciklusa
procesora
S0 S1 IO/M
Status
Hold
Reset out
Reset in
HLDA
DMA
Reset
(8)
Instrukcijski
registar
(8)
Marker
el. prekidaa
SID
SOD
(8)
E reg.
(8)
L reg.
(8)
D reg.
(8)
H reg.
A15 A8
Magistrala adresa
(8)
Adresni bafer
Elektronski (16)
prekida za poveanje/
smanjenje adrese
(16)
programski broja
(16)
pokaziva steka
(8)
C reg.
(8)
B reg.
Upravljanje
serijskim U/I
modulom
RD WR ALE
Control
TRAP
RST 7.5
(8)
Privr. registar
Ready
ClkOut
Clk
Gen
(8)
Akumulator
RST 5.5
RST 6.5
Upravljanje prekidima
INTR
INTA
AD7 AD0
Magistrala
adresa/podataka
(8)
Adresni bafer
Niz
registara
(nastavlja se)
Inicijalizacija procesora
RESET IN
Dovodi do toga da se sadraj PC registra postavi na nulu. Procesor nastavlja izvravanje od lokacije nula.
RESET OUT
Potvrda da je procesor vraen na poetno stanje. Ovaj signal se moe iskoristiti za vraanje u poetno
stanje ostatka sistema.
Napajanje i uzemljenje
VCC
Napajanje +5 volti.
VSS
Elektrino uzemljenje.
ljaki signal generie interne upravljake signale koji upravljaju internim prenosima
podataka. Na dijagramu je prikazan instrukcijski ciklus za instrukciju OUT. Neophodna su tri mainska ciklusa (M1, M2, M3). Tokom prvog, donosi se OUT instrukcija.
Tokom drugog mainskog ciklusa donosi se druga polovina instrukcije, koja sadri
broj U/I ureaja izabranog za izlaz. Tokom treeg ciklusa, sadraj AC registra upisuje
se u izabrani ureaj preko magistrale podataka.
X1
X2
Reset out
SOD
SID
Trap
RST 7.5
RST 6.5
RST 5.5
INTR
INTA
AD0
AD1
AD2
AD3
AD4
AD5
AD6
AD7
Vss
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21
Vcc
HOLD
HLDA
CLK (out)
Reset in
Ready
IO/M
S1
Vpp
RD
WR
S0
A15
A14
A13
A12
A11
A10
A9
A8
IO/M
WR
RD
ALE
AD7 AD0
A15 A8
3 MHz CLK
PC Out
PCL
T1
PC Instr
INSTR
PCH
T3
IR
T4
PC Out
PC 1
INSTR
PC byte
PCH
T2
M2
itanje memorije
INSTR
T1
OUT byte
Z, W
T3
WZ Out
INSTR
T1
Slika 19.9 Dijagram vremenskog usklaivanja OUT instrukcije za procesor Intel 8085
Donoenje instrukcije
PC 1
T2
M1
Upisivanje izlaza
ACCUM
IO PORT
T2
M3
Port
T3
I1
I2
I3
I4
O1
O2
O3
O4
O5
O6
O7
O8
O9
O10
O11
O12
O13
O14
O15
O16
Dekoder
I0
I1
Ik
T1
Generator
takta
Generator
vremenskih
impulsa
T2
Tn
Upravljaka
jedinica
C0 C1
Markeri
Cm
PQ = 00
PQ = 01
PQ = 10
PQ = 11
ciklus donoenja
indirektni ciklus
izvrni ciklus
ciklus prekida
C5 = P Q T2 + P Q T2
Drugim reima, upravljaki signal C5 pojavie se tokom druge jedinice vremena za
ciklus donoenja i indirektni ciklus.
C5 =P Q T2 +P Q T2 +P Q (LDA+ADD+AND) T2
Ovaj postupak moe se ponoviti za sve upravljake signale koje procesor generie.
Rezultat bi bio skup Bulovih jednaina koje definiu ponaanje upravljake jedinice, a
samim tim i procesora.
Da bi sve povezala, upravljaka jedinica mora da kontrolie status instrukcijskog
ciklusa. Kao to je ve napomenuto, na kraju svakog potciklusa (donoenja, indirektnog, izvrnog, prekida), upravljaka jedinica izdaje signal koji dovodi do toga da se
generator impulsa ponovno inicijalizuje i izda T1. Upravljaka jedinica mora takoe da
postavi odgovarajue vrednosti registara P i Q, ime definie sledei ciklus koji treba
da se izvri.
italac treba da bude svestan injenice da je u savremenim sloenim procesorima
broj Bulovih jednaina potrebnih za definisanje upravljake jedinice veoma veliki.
Zadatak implementiranja kombinatornog kola koje zadovoljava sve ove jednaine
postaje izuzetno teak. Posledica je da se obino koristi jednostavnije reenje, poznato
kao mikroprogramiranje. Ono je predmet sledeeg poglavlja.
upravljaki signal
upravljaka jedinica
oiena implementacija
mikrooperacije
Kontrolna pitanja
19.1 Objasnite razliku izmeu redosleda po kome se pie i redosleda po kome se neka instrukcija
izvrava.
19.5
19.6
19.7
19.8
Problemi
19.1 Imate aritmetiko-logiku jedinicu koja moe da sabira svoja dva ulazna registra i moe lo-
19.2
19.3
19.4
19.5
giki da komplementira bitove bilo kojeg ulaznog registra, ali ne moe da oduzima. Brojevi
se skladite predstavljeni komplementom dvojke. Navedite koje mikrooperacije upravljaka
jedinica mora da izvri da bi sprovela oduzimanje.
Prikaite mikrooperacije i upravljake signale na isti nain kao u tabeli 19.1 za procesor na
slici 19.5 za sledee instrukcije:
uitavanje u akumulator,
skladitenje vrednosti u akumulator,
sabiranje sa sadrajem u akumulatoru,
logiko AND sa sadrajem akumulatora,
skok,
skok ukoliko je sadraj AC = 0,
komplementiranje sadraja akumulatora.
Pretpostavimo da kanjenje prostiranja du magistrale i kroz aritmetiko-logiku jedinicu sa
slike 19.6 iznosi 20 i 100 ns, respektivno. Vreme potrebno registru da prekopira podatke sa
magistrale je 10 ns. Koliko vreme treba ostaviti za:
a. Prenoenje podataka iz jednog registra u drugi?
b. Poveanje vrednosti programskog brojaa?
Napiite niz mikrooperacija potrebnih za strukturu magistrale prema slici 19.6 za dodavanje
broja u AC registar kada je taj broj:
a. neposredni operand,
b. operand sa direktnom adresom,
c. operand sa indirektnom adresom.
Stek se primenjuje onako kako je prikazano na slici 19.11 (pogledajte dodatak O u kome se
govori o stekovima. Pokaite redosled mikrooperacija za:
a. uklanjanje poslednjeg elementa steka,
b. dodavanje novog elementa u stek.
Poglavlje
Mikroprogramiranje
20.1 Osnovni koncepti
Mikroinstrukcije
Mikroprogramirana upravljaka jedinica
Wilkesovo upravljanje
Prednosti i mane
20.2 Sekvenciranje mikroinstrukcija
Razmatranje dizajna
Tehnike sekvenciranja
Generisanje adrese
Sekvenciranje mikroinstrukcija LSI-11
20.3 Izvravanje mikroinstrukcija
Razvrstavanje mikroinstrukcija
Kodovanje mikroinstrukcija
LSI-11 izvravanje mikroinstrukcija
Izvravanje mikroinstrukcija IBM 3033
20.4 TI 8800
Format mikroinstrukcija
Mikrosekvencer
Registri aritmetiko-logike jedinice
20.5 Dodatna literatura
20.6 Kljuni pojmovi, kontrolna pitanja i problemi
Kljuni pojmovi
Kontrolna pitanja
Problemi
20-1
20-2poglavlje 20 / mikropragramiranje
Kljune teze
Alternativa oienoj upravljakoj jedinici je mikroprogramirana upravljaka jedi-
nica, u kojoj je logika koja upravlja upravljakom jedinicom odreena mikroprogramom. Mikroprogram se sastoji od niza instrukcija u mikroprogramskom jeziku.
Radi se o veoma jednostavnim instrukcijama koje odreuju mikrooperacije.
Mikroprogramirana upravljaka jedinica je relativno jednostavno logiko kolo koje
ini se da je upravljaka jedinica relativno jednostavan ureaj. Ipak, implementacija upravljake jedinice kao ureaja za meusobno povezivanje osnovnih logikih elemenata nije
lak zadatak. Prilikom projektovanja mora se voditi rauna o logici za sekvencijalno prolaenje kroz mikrooperacije, za izvravanje mikrooperacija, za interpretiranje operacionih
kodova i za donoenje odluka na osnovu markera aritmetiko-logike jedinice. Teko je
projektovati i testirati takav deo hardvera. tavie, dizajn je relativno krut. Na primer, konstrukcija se teko menja ukoliko neko zaeli da doda novu mainsku instrukciju.
17.1 / Origin20-3
Drugu mogunost, koja se ve koristi u mnogim CISC procesorima, predstavlja implementacija mikroprogramirane upravljake jedinice.
Razmotrimo jo jednom tabelu 20.1. Pored toga to koriste upravljake signale, sve
mikrooperacije opisane su simbolikom notacijom. Ova notacija previe podsea na neki
programski jezik. U stvari, to i jeste jezik, poznat kao mikroprogramski jezik. Svaka linija
opisuje skup mikrooperacija koje se deavaju istovremeno i poznata je kao mikroinstrukcija. Sekvenca instrukcija poznata je kao mikroprogram ili firmver. Ovaj poslednji izraz
ukazuje na injenicu da je mikroprogram negde na sredini izmeu hardvera i softvera.
Mnogo je lake projektovati firmver nego hardver, ali je mnogo tee napisati firmverski
mikroprogram nego softverski program.
Na koji nain moemo iskoristiti koncept mikroprogramiranja za implementaciju
upravljake jedinice? Poite od toga da sve to upravljaka jedinica treba da uradi, za
sve mikrooperacije, jeste da generie skup upravljakih signala. Prema tome, za bilo koju
mikrooperaciju, svi upravljaki signali koji potiu iz upravljake jedinice su ili ukljueni ili
iskljueni. Ovo se moe, naravno, predstaviti binarnim ciframa za svaku upravljaku liniju.
Stoga, mogli bismo napraviti upravljaku re u kojoj svaki bit predstavlja jednu upravljaku
liniju. Tako bi svaka mikrooperacija mogla biti predstavljena razliitim rasporedom jedinica i nula u upravljakoj rei.
Pretpostavimo da poreamo niz upravljakih rei koje predstavljaju niz mikrooperacija koje izvrava upravljaka jedinica. Moramo znati da ova sekvenca mikrooperacija nije
nepromenljiva. Ponekad imamo indirektni ciklus, ponekad ne. Stoga, smestimo nae upravljake rei u memoriju, pri emu svaka re ima svoju jedinstvenu adresu. Sada dodajmo
polje adrese svakoj upravljakoj rei, naznaavajui poloaj sledee upravljake rei koja e
biti izvrena ukoliko su ispunjeni odreeni uslovi (npr. indirektni bit u instrukciji pozivanja
memorije je 1). Takoe, dodajemo nekoliko bitova kojima uspostavljamo taj uslov.
Rezultat je poznat kao horizontalna mikroinstrukcija, iji je primer prikazan na slici
20.1a. Format mikroinstrukcije ili upravljake rei je sledei. Postoji jedan bit za svaku
upravljaku liniju unutar procesora i jedan bit za svaku upravljaku liniju sistemske magistrale. Postoji polje uslova koje naznaava uslov pod kojim se vri grananje i postoji polje
sa adresom mikroinstrukcije koja se vri ukoliko doe do grananja. Takva mikroinstrukcija
interpretira se na sledei nain:
1.
2.
3.
Na slici 20.2 prikazano je kako se ove upravljake rei ili mikroinstrukcije mogu poreati u upravljakoj memoriji. Mikroinstrukcije u svakoj rutini izvravaju se sekvencijalno.
Svaka rutina zavrava se grananjem ili instrukcijom skoka koja oznaava gde se ide posle
nje. Postoji posebna rutina izvrnog ciklusa ija je jedina svrha da naznae da se posle toga
izvrava neka od mainskih instrukcijskih rutina (AND, ADD i tako dalje), zavisno od
aktuelnog operacionog koda.
20-4poglavlje 20 / mikropragramiranje
Adresa mikroinstrukcije
Uslov skoka
bezuslovni
nulti
prekoraenje
indirektni bit
Upravljaki signali sistemske magistrale
Upravljaki signali unutar procesora
(a) Horizontalna mikroinstrukcija
Adresa mikroinstrukcije
Uslov skoka
Kodovi funkcije
(b) Vertikalna mikroinstrukcija
Rutina
ciklusa
donoenja
Rutina
indirektnog
ciklusa
Rutina
ciklusa
prekida
Poetak izvrnog ciklusa
AND rutina
Skok do ciklusa donoenja ili prekida
ADD rutina
Skok do ciklusa donoenja ili prekida
IOF rutina
Skok do ciklusa donoenja ili prekida
17.1 / Origin20-5
Uitavanje
Upravljaka
memorija
20-6poglavlje 20 / mikropragramiranje
Instrukcijski registar
Upravljaka
jedinica
Markeri
aritmetikologike
jedinice
Generator
takta
Dekoder
Sekvencijalna
logika
jedinica
Uitavanje
Upravljaka
memorija
Dekoder
Upravljaki signali
unutar procesora
Upravljaki signali ka
sistemskoj magistrali
17.1 / Origin20-7
Wilkesovo upravljanje
Kao to je ve spomenuto, Wilkes je prvi predloio upotrebu mikroprogramirane
upravljake jedinice jo 1951. [WILK51]. Ovaj predlog je posle toga dodatno objanjen u mnogo detaljnijem projektu [WILK53]. Mnogo toga moe se saznati prouavanjem ovog predloga koji je imao dalekosene posledice.
Konfiguracija koju je Wilkes predloio prikazana je na slici 20.5. Srce ovog
sistema je matrica delimino ispunjena diodama. Tokom mainskog ciklusa, jedan red
matrice aktivira se pomou impulsa. Time se generie signal na onim mestima gde
Iz
instrukcijskog
registra
Registar II
Generator takta
Registar I
Dekoder
adresa
Upravljaki
signali
Upravljaki signali
Signali
uslova
20-8poglavlje 20 / mikropragramiranje
postoji dioda (naznaeno kruiima na crteu). Prvi deo reda generie upravljake
signale koji upravljaju radom procesora. Drugi deo generie adresu reda u koji e biti
poslat impuls u sledeem mainskom ciklusu. Prema tome, svaki red matrice je jedna
mikroinstrukcija, a raspored dioda unutar matrice je upravljaka memorija.
Na poetku ciklusa, adresa reda u koji e impuls biti poslat nalazi se u registru I.
Ova adresa je ulaz za dekoder koji, kada ga aktivira generator takta, aktivira jedan red
matrice. Zavisno od upravljakog signala, tokom ciklusa se u registar II prenosi ili operacioni kd u instrukcijskom registru ili drugi deo reda u koji je signal poslat. Registar
II se zatim prespaja impulsom generatora takta u registar I. Ovakvo korienje dva
registra je neophodno poto je dekoder prosto kombinatorno kolo; sa samo jednim
registrom, izlaz bi postao ulaz tokom ciklusa, to bi znailo nestabilan rad.
Ova ema je veoma slina reenju sa horizontalnim mikroprogramiranjem opisanim ranije (slika 20.1a). Osnovna razlika je u tome to se u prethodnom opisu
upravljaki adresni registar mogao poveati za jedan kako bi dobio sledeu adresu.
U Wilkesovoj emi, sledea adresa nalazi se u mikroinstrukciji. Da bi omoguio grananje, red mora da sadri dvodelnu adresu, koju upravlja uslovnim signalom (npr.
marker), kao to je prikazano na slici.
Predloivi ovakvu emu, Wilkes je ponudio i primer kako bi se ona mogla iskoristiti za primenu upravljake jedinice u jednostavnom raunaru. Ovaj primer, prvi
poznati projekat mikroprogramiranog procesora, vredi ovde ponoviti poto se njime
ilustruje veina savremenih naela na kojima se zasniva mikroprogramiranje.
Procesor hipotetikog raunara obuhvata sledee registre:
A mnoenik,
B akumulator (manje znaajna polovina),
C akumulator (znaajnija polovina),
D pomeraki registar.
Pored njih, postoje tri registra i dva 1-bitna markera dostupna samo upravljakoj jedinici. Ti registri su:
U tabeli 20.1 naveden je skup mainskih instrukcija za ovaj primer. U tabeli 20.2
dat je potpuni skup mikroinstrukcija, izraenih u simbolikom obliku, koje primenjuje
upravljaka jedinica. Prema tome, ukupno 38 mikroinstrukcija je sve to je potrebno
da bi sistem bio potpuno definisan.
Prva puna kolona daje adrese (broj reda) svih mikronistrukcija. Obeleene su one
adrese koje odgovaraju operacionim kodovima. Prema tome, kada se naie na operacioni kd za instrukciju sabiranja (A), izvrava se mikroinstrukcija na lokaciji 5. Kolone 2
i 3 izraavaju akcije koje preduzimaju aritmetiko-logika jedinica i upravljaka jedinica,
respektivno. Svi simboliki izrazi moraju se prevesti u skup upravljakih signala (bitove
mikroinstrukcije). Kolone 4 i 5 to obavljaju postavljanjem i koristei dva markera (bistabilni multivibratori, tj. kola koja naizmenino ulaze u jedno od dva mogua stanja).
17.1 / Origin20-9
Kolona 4 odreuje signal koji postavlja marker. Na primer, (1)Cs znai da se marker broj
1 postavlja bitom predznaka broja u registru C. Ukoliko kolona 5 sadri identifikator
markera, tada kolone 6 i 7 sadre dve alternativne adrese mikroinstrukcije koje treba
koristiti. Inae, kolona 6 odreuje adresu sledee mikroinstrukcije koju treba doneti.
Tabela 20.1 Skup mainskih instrukcija koje je Wilkes dao kao primer
Naredba
Posledica naredbe
An
Sn
Hn
C(n) u Acc2
Vn
Tn
C(Acc1) u n, 0 u Acc
Un
C(Acc1) u n
Rn
Ln
Gn
Ukoliko C(Acc) < 0, preneti upravljanje u n; ukoliko C(Acc) 0, zanemariti (tj. nastaviti
dalje).
In
On
Oznake:
Acc = akumulator
Acc1 = znaajnija polovina akumulatora
Acc2 = manje znaajna polovina akumulatora
n = lokacija za uvanje n
C(X) = sadraj od X (X = registar ili lokacija za uvanje)
Prednosti i nedostaci
Osnovna prednost korienja mikroprogramiranja u primeni upravljake jedinice je
da se time pojednostavljuje njena izrada. A to znai da je to jeftniji nain za implementaciju i istovremeno manje podloan grekama. Oiena upravljaka jedinica
mora da sadri sloena logika kola za sekvencijalno prolaenje kroz brojne mikrooperacije instrukcijskog ciklusa. Sa druge strane, dekoder i sekvencijalna logika jedinica
mikroprogramirane upravljake jedinice veoma su jednostavna logika kola.
Osnovni nedostatak mikroprogramirane upravljake jedinice je u tome da e ona
u izvesnoj meri biti sporija u odnosu na oienu jedinicu sline izrade. I pored toga,
mikroprogramiranje je preovlaujui nain za implementaciju upravljakih jedinica u
istim CISC arhitekturama, pre svega zbog lakoe primene. RISC procesori, sa svojim jednostavnijim formatom instrukcija, obino koriste oiene upravljake jedinice.
Podrobnije emo razmotriti pristup u kome se koriste mikroprogramirane upravljake
jedinice.
20-10poglavlje 20 / mikropragramiranje
Tabela 20.2 Mikroinstrukcije za Wilkesov primer
Oznaavanje: A, B, C... oznaavaju razne registre u aritmetikoj i upravljakoj jedinici. C u D naznaava prebacivanje elektronskih spojeva izlaza registra C na ulaz registra D; (D + A) u C naznaava da je izlaz registra
A povezan sa jednim izlazom ureaja za sabiranje (izlaz registra D je stalno povezan sa drugim ulazom) i izlaz
ureaja za sabiranje sa registrom C. Brojani simbol n pod navodnicima (npr. n) oznaava izvor iji je izlaz broj
n u jedinici cifre najmanjeg znaaja.
Aritmetika
jedinica
Uslovni bistabilni
multivibrator
Upravljaka
registarska jedinica Postavljanje Upotreba
Sledea
mikroinstrukcija
0
FuGiE
(G u 1) u F
Skladitenje u G
GuE
4
A
S
H
V
E u dekoder
CuD
16
CuD
17
memorija u B
memorija u A
27
C u memoriju
25
10
C u memoriju
11
BuD
EuG
19
12
CuD
EuG
22
13
14
EuG
18
(1)C5
ulaz u memoriju
15
memorija u izlaz
16
(D + memorija) u C
17
(D memorija) u C
18
19
D u B (R)*
20
CuD
21
D u C (R)
22
D u C (L)
(G 1) u E
0
21
11
(G 1) u E
11
24
BuD
D u B (L)
(1)E5
25
0 u B
26
26
BuC
27
0 u C
18 u E
BuD
EuG
(G 1) u E
29
D u B (R)
C u B (R)
31
DuC
23
24
28
20
(1)E5
23
30
12
28
29
(1)B1
30
(2)E5
1
2
31
32
28
33
(nastavlja se)
17.1 / Origin20-11
Tabela 20.2 Nastavak
Aritmetika
jedinica
32
(D + A) u C
33
BuD
34
D u B (R)
35
C u D (R)
Uslovni bistabilni
multivibrator
Upravljaka
registarska jedinica Postavljanje Upotreba
2
(1)B1
Sledea
mikroinstrukcija
0
28
33
34
35
1
36
36
DuC
37
(D A) u C
37
* Desni pomeraj. Komutatorska kola u aritmetikoj jedinici prepakuju se tako da se najmanje znaajna cifra u registru C smesti na najznaajnije mesto u registru B tokom mikrooperacije desnog pomeraja, a najznaajnija cifra u
registru C (cifra predznaka) se ponovi (na taj nain vrei ispravku za negativne brojeve).
Levi pomeraj. Komutatorska kola se prepakuju na slian nain tako da propuste najznaajniju cifru registra B do
najmanje znaajnog mesta u registru C tokom mikrooperacije levog pomeraja.
Razmatranje dizajna
Prilikom projektovanja tehnike sekvenciranja mikroinstrukcija, potrebno je voditi
rauna o dve stvari: veliini mikroinstrukcija i vremenu generisanja adrese. Prva stvar
je oigledna; smanjivanje veliine upravljake memorije sniava njenu cenu. Druga
stvar je jednostavna elja da se mikroinstrukcije izvravaju to je mogue bre.
Pri izvravanju mikroprograma, adresa naredne mikroinstrukcije koju treba izvriti pripada jednoj od sledeih kategorija:
odreena instrukcijskim registrom,
sledea sekvencijalna adresa,
grananje.
Prva kategorija javlja se samo jednom po instrukcijskom ciklusu, neposredno
posle donoenja instrukcije. Druga kategorija je najea u veini sluajeva. Meu-
20-12poglavlje 20 / mikropragramiranje
tim, izrada se ne moe optimizovati samo za sekvencijalni pristup. Grananja, kako
uslovna, tako i bezuslovna, neizostavan su deo mikroprograma. tavie, sekvence
mikroinstrukcija obino su kratke; jedna od tri ili etiri mikroinstrukcije je grananje
[SIEW82]. Prema tome, vano je projektovati kompaktne, vremenski efikasne tehnike
za grananje mikroinstrukcija.
Tehnike sekvenciranja
Adresa upravljake memorije za sledeu mikroinstrukciju mora se generisati na
osnovu tekue mikroinstrukcije, markera uslova i sadraja instrukcijskog registra. Za
to se koristi vie razliitih tehnika. Moemo ih grupisati u tri opte vrste, kao to je
prikazano na slikama 20.6 do 20.8. Te tehnike su zasnovane na formatu informacije o
adresi u mikroinstrukciji:
Upravljaki
adresni registar
Dekoder
adresa
Upravljaka
memorija
Upravljanje
Adresa
1
Adresa
2
Upravljaki
bafer
registar
Markeri
Logika
grananja
Biranje
adrese
Multiplekser
Instrukcijski
registar
17.1 / Origin20-13
Upravljaka
memorija
Upravljaki
bafer
Upravljanje
registar
Adresa
Upravljaki
adresni registar
Markeri
Logika
grananja
Multiplekser
Biranje
adrese
Instrukcijski
registar
20-14poglavlje 20 / mikropragramiranje
polje adrese,
kd instrukcijskog registra,
sledea sekvencijalna adresa.
Signal za biranje adrese odreuje koja od ovih opcija se bira. Ovakvo reenje smanjuje
broj polja adrese na jedan. Primeujete, meutim, da se ovo polje adrese nee uvek
koristiti. Prema tome, u ovom sluaju postoji izvesna neefikasnost u kodiranju mikroinstrukcija.
Drugaiji pristup je obezbediti dva potpuno razliita formata mikroinstrukcija
(slika 20.8). Jedan bit naznaava koji format se koristi. U jednom formatu, preostali
bitovi se koriste za aktiviranje upravljakih signala. U drugom formatu, neki bitovi
upravljaju modulom logike grananja, a preostali bitovi obezbeuju adresu. Kada se
koristi prvi format, sledea adresa je ili sledea sekvencijalna adresa ili adresa izvedena iz instrukcijskog registra. Kada se koristi drugi format, utvruje se uslovno ili
Dekoder
adresa
Upravljaka
memorija
Upravljaki
bafer
registar
Upravljako Celo
polje
polje
grananja
Upravljaki
adresni registar
Polje
adrese
Logika
kola
Markeri
Logika
grananja
Multiplekser
Biranje
adrese
Instrukcijski
registar
17.1 / Origin20-15
bezuslovno grananje. Jedan od nedostataka ovakvog reenja je da se za svaku mikroinstrukciju grananja potroi po itav ciklus. U drugim reenjima, generisanje adrese
deava se u toku istog ciklusa u kome se generie upravljaki signal, ime se smanjuje
pristupanje upravljakoj memoriji.
Upravo opisana reenja su opta. Svaka posebna implementacija obino obuhvata
varijaciju ili kombinaciju ovih tehnika.
Generisanje adrese
Razmotrili smo problem sekvenciranja mikroinstrukcija sa stanovita u kome se vodi
rauna o njihovom formatu i optim zahtevima za logika kola. Druga taka gledita
je razmotriti razliite naine na koje se sledea adresa moe izvesti ili izraunati.
U tabeli 20.3 navedene su razliite tehnike za generisanje adresa. One se mogu
podeliti u eksplicitne tehnike, u kojima je odreena adresa eksplicitno dostupna u
samoj mikroinstrukciji, i implicitne tehnike, koje zahtevaju dodatna logika kola za
generisanje adresa.
Tabela 20.3 Tehnike generisanja adrese mikroinstrukcije
Eksplicitne
Implicitne
Dva polja
Preslikavanje
Bezuslovno grananje
Sabiranje
Uslovno grananje
Rezidualno upravljanje
20-16poglavlje 20 / mikropragramiranje
BA) u vodeih 8 bitova upravljakog adresnog registra. Oni definiu celinu od 32
mikroinstrukcije u upravljakoj memoriji. Preostalih 5 bitova upravljakog adresnog
registra postavljeni su tako da odreuju adresu sledee mikroinstrukcije koju treba
doneti. Svaki od tih bitova odreen je 4-bitnim poljem (osim jednog koji je 7-bitno
polje) u aktuelnoj mikroinstrukciji; ovo polje utvruje uslov za postavljanje odgovarajueg bita. Na primer, bit u upravljakom adresnom registru moe biti postavljen na 1
ili 0 zavisno od toga da li je prilikom poslednje operacije aritmetiko-logike jedinice
bilo prenoenja.
00
07
08
09
10
BC(4)
BA(8)
BB(4)
11
12
BE(4)
BD(4)
BF(7)
Poslednji pristup naveden u tabeli 20.3 nazvan je rezidualno upravljanje. Ovaj pristup obuhvata korienje adrese mikroinstrukcije koja je prethodno sauvana u privremenom skladitu unutar upravljake jedinice. Na primer, neki skup mikroinstrukcija
prilikom svog izvravanja koristi potprograme. Interni registar ili stek registara koristi
se za dranje adrese povratka. Primer ovakvog pristupa korien je na LSI-11, koji
sada istraujemo.
17.1 / Origin20-17
Razvrstavanje mikroinstrukcija
Mikroinstrukcije se mogu razvrstati na vie naina. Razlike koje se izmeu njih najee prave u literaturi obuhvataju sledee:
vertikalne / horizontalne,
pakovane / nezapakovane,
hardversko / softversko mikroprogramiranje,
direktno / indirektno kodovanje.
20-18poglavlje 20 / mikropragramiranje
Instrukcijski
registar
Markeri
aritmetiko-logike
jedinice
Generator
takta
Sekevencijalno
logiko kolo
Upravljaka
memorija
Upravljaka
logika
Interni
upravljaki
signali
Eksterni
upravljaki
signali
Njihove osobine povezane su sa formatom mikroinstrukcija. Nijedan od ovih termina u literaturi se ne koristi na dosledan, precizan nain. Meutim, istraivanje ovih
parova slui da bi se objasnila razlika izmeu razliitih mogunosti dizajna mikroinstrukcija. U narednim pasusima prvo emo razmotriti kljuna pitanja dizajna koja ine
osnovu ovih parova karakteristika, a zatim emo razmotriti principe na kojima poivaju.
U prvobitnom Wilkesovom predlogu [WILK51], svaki bit mikroinstrukcije direktno je proizvodio ili upravljaki signal ili jedan bit sledee adrese. Videli smo, u prethodnom odeljku, da su mogue sloenije eme sekvenciranja adresa u kojima se koristi
manje bitova mikroinstrukcije. Slina vrsta nagodbe postoji i za deo mikroinstrukcije
koji se tie upravljakih signala. Kodiranjem upravljakih informacija, a zatim njihovim dekodiranjem da bi se proizveli upravljaki signali, mogue je utedeti na bitovima
upravljake rei.
Kako se ovo kodiranje moe uraditi? Da bismo odgovorili na to, uzmimo da postoji
K razliitih unutranjih i spoljnih upravljakih signala kojima upravlja upravljaka jedinica. U Wilkesovoj emi, u tu svrhu potrebno je rezervisati K bitova mikroinstrukcije.
Time je mogue dobiti svih 2K moguih kombinacija upravljakih signala koji se generiu
17.1 / Origin20-19
tokom bilo kog instrukcijskog ciklusa. Meutim, to moemo bolje da uradimo ukoliko
bismo zapazili da se nee koristiti sve mogue kombinacije. Primeri za to su:
dva izvora ne mogu biti elektronski prespojena na isto odredite (npr. C2 i C8
na slici 20.5);
jedan registar ne moe istovremeno da bude i izvor i odredite (npr. C5 i C12 na
slici 20.5);
aritmetiko-logikoj jedinici mogue je istovremeno preneti samo jedan oblik
upravljakih signala;
spoljnoj upravljakoj magistrali mogue je istovremeno preneti samo jedan
oblik upravljakih signala.
Stoga, za dati procesor, mogue je pobrojati sve mogue doputene kombinacije
upravljakih signala, ime se dobija neki broj Q mogunosti manji od 2K. One bi se
mogle kodirati sa log2 Q bitova, pri emu je (log2 Q) < K. Ovim bi se dobio najmanji broj moguih kodova kojim bi se ouvale sve doputene kombinacije upravljakih
signala. U praksi se ovakav nain kodiranja ne koristi, iz dva razloga:
teko je tako programirati, kao to je i nemogua ista kodirana (Wilkesova)
ema; ovo emo uskoro dodatno objasniti;
za to su potrebi sloeni, pa prema tome i spori, moduli upravljake logike.
Umesto toga, pravi se kompromis. Postoje dva naina da se to izvede:
za kodiranje moguih kombinacija koristi se vie bitova nego to je ba tano
neophodno;
nije mogue kodirati neke kombinacije koje su fiziki mogue.
Ovaj drugi kompromis utie na smanjivanje broja bitova. Konani rezultat je, meutim, da se ipak koristi vie od log2 Q bitova.
U sledeem pododeljku razmotriemo odreene tehnike za kodiranje. Preostali
deo ovog pododeljka posveen je posledicama kodiranja i razliitim terminima koji se
koriste da bi se ono opisalo.
Na osnovu reenog vidimo da deo mikroinstrukcije koji se koristi za upravljaki
signal pripada odreenom spektru. Sa jedne krajnje take postoji jedan bit za svaki
upravljaki signal, a sa druge krajnje take koristi se visokokodirani format. U tabeli
20.4 prikazano je da se i ostale karakteristike mikroprogramirane upravljake jedinice
takoe ire du odreenih spektara koji su, najveim delom, odreeni spektrom stepena kodiranja.
Drugi par u ovoj tabeli je manje oigledan. ista Wilkesova ema e zahtevati
najvie bitova. Takoe je oigledno da ovaj krajnji sluaj predstavlja najdetaljniji uvid u
hardver. Mikroprogramer moe da upravlja svim upravljakim signalima pojedinano.
Kodiranje se obavlja udruivanjem funkcija ili resursa, tako da mikroprogramer
posmatra procesor na viem nivou sa manje detalja. tavie, kodiranje je zamiljeno
tako da olaka mikroprogramiranje. Ponovimo jo jednom: jasno je da zadatak razumevanja i usklaivanja korienja svih upravljakih signala nije nimalo lak. Kao to
je napomenuto, jedna od posledica kodiranja je da se time onemoguava upotreba
izvesnih inae doputenih kombinacija.
20-20poglavlje 20 / mikropragramiranje
Tabela 20.4 Spektar mikroinstrukcija
Karakteristike
Nekodirane
Visokokodirane
Puno bitova
Malo bitova
Teke za programiranje
Lake za programiranje
Brzo izvravanje
Sporo izvravanje
Optimizovane performanse
Optimizovano programiranje
Terminologija
Nezapakovane
Pakovane
Horizontalne
Vertikalne
Hardverske
Softverske
17.1 / Origin20-21
Kodiranje mikroinstrukcija
U praksi se mikroprogramirane upravljake jedinice ne projektuju korienjem istih
nekodiranih ili horizontalnih mikroinstrukcija. Koristi se kodiranje, bar u nekoj meri,
kako bi se umanjila irina upravljake memorije i pojednostavio zadatak mikroprogramiranja.
Osnovna tehnika za kodiranje prikazana je na slici 20.11a. Mikroinstrukcije su
organizovane kao skup polja. Svako polje sadri kd koji, posle dekodiranja, aktivira
jedan ili vie upravljakih signala.
Polje
Polje
Polje
Logiko kolo
za dekodiranje
Logiko kolo
za dekodiranje
Logiko kolo
za dekodiranje
Upravljaki signali
(a) Direktno kodiranje
Polje
Polje
Polje
Logiko kolo
za dekodiranje
Logiko kolo
za dekodiranje
Logiko kolo
za dekodiranje
Logiko kolo
za dekodiranje
Upravljaki signali
20-22poglavlje 20 / mikropragramiranje
Razmotrimo ta moemo zakljuiti iz ove eme. Prilikom izvravanja odreene
mikroinstrukcije, sva polja se dekodiraju i generiu upravljake signale. Prema tome,
sa N polja odreeno je N istovremenih akcija. Posledica svake akcije je aktiviranje
jednog ili vie upravljakih signala. Uopteno, ali ne uvek, elja nam je da postignemo
da se jedan upravljaki signal aktivira najvie jednim poljem. Jasno je, meutim, da se
mora omoguiti aktiviranje bilo kog upravljakog signala bar jednim poljem.
Sada razmotrimo pojedina polja. Polje koje se sastoji od L bitova moe sadrati jedan
od 2L kodova, od kojih svaki moe biti kodiran u razliiti oblik upravljakog signala. Poto
se u jednom trenutku u jednom polju moe pojaviti samo jedan kd, ovi kodovi meusobno su iskljuivi i, prema tome, akcije koje oni izazivaju meusobno su iskljuive.
Projektovanje formata kodiranih mikroinstrukcija moe se sada izraziti jednostavnije:
organizovati ovaj format u nezavisna polja; to jest, svako polje opisuje skup
akcija (oblik upravljakih signala) tako da se akcije iz razliitih polja mogu
odvijati istovremeno;
definisati sva polja tako da ostale akcije koje odreeno polje utvruje budu
meusobno iskljuive; to jest, u istom trenutku mogua je samo jedna od
akcija utvrenih za dato polje.
Mogua su dva pristupa za organizovanje kodiranih mikroinstrukcija u polja:
funkcionalni i resursni. Metodom funkcionalnog kodiranja utvruju se funkcije unutar
procesora i poljima se namenjuju odreene funkcije. Na primer, ukoliko se vie izvora
moe koristiti za prenos podataka do akumulatora, u tu svrhu se namenjuje jedno
polje, pri emu svaki kd utvruje drugi izvor. Resursno kodovanje procesor posmatra
kao da se sastoji od skupa nezavisnih resursa i svakom od njih (npr. U/I modulu,
memoriji, aritmetiko-logikoj jedinici) posveuje po jedno polje.
Jo jedno razvrstavanje kodiranja je po tome da li je ono direktno ili indirektno
(slika 20.11b). Sa indirektnim kodiranjem, jedno polje se koristi za interpretaciju drugog polja. Na primer, uzmimo aritmetiko-logiku jedinicu koja moe da obavlja osam
razliitih aritmetikih operacija i osam razliitih operacija pomeraja. Jedan bit polja
mogao bi se koristiti kao naznaka da li se koristi aritmetika ili operacija pomeraja; tri
bita polja naznaavalo bi tu operaciju. Ova tehnika uopteno znai dva nivoa dekodiranja, ime se poveava kanjenje prostiranja.
Na slici 20.12 predstavljen je jednostavan primer ovih principa. Pretpostavimo
da imamo procesor sa jednim akumulatorom i nekoliko internih registara, kao to su
programski broja i privremeni registar za ulaz aritmetiko-logike jedinice. Na slici
20.12a prikazan je veoma vertikalan format. Prva 3 bita naznaavaju tip operacije,
sledea 3 kodiraju operaciju, a preostala 2 biraju interni registar. Na slici 20.12b dato
je reenje u kome se vie koristi horizontalni pristup mada se kodiranje i dalje koristi.
U ovom sluaju, razliite funkcije pojavljuju se u razliitim poljima.
17.1 / Origin20-23
Jednostavan prenos registra
0 0 0 0 0 0
MDR
0 0 0 0 0 1
registar
0 0 0 0 1 0
MAR
Memorijske operacije
registar
MDR
registar
Biranje
registra
0 0 1 0 0 0
Uitavanje
0 0 1 0 0 1
Upisivanje
CSAR
dekodirani MDR
0 1 0 0 0 1
CSAR
0 1 0 0 1 0
Preskok
ACC
ACC registar
0 1 1 0 0 1
ACC
ACC registar
0 1 1 0 1 0
ACC
registar
0 1 1 0 1 1
registar
0 1 1 1 0 0
ACC
ACC
registar 1
Biranje
registra
(a) Format vertikalne mikroinstrukcije
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
Polje
Definicije polja
1 - prenos registra
2 - memorijske operacije
3 - sekvencijalne operacije
20-24poglavlje 20 / mikropragramiranje
Organizacija upravljake jedinice procesora LSI-11 Procesor LSI-11 je prvi lan porodice PDP-11, koji je nuen, izveden na jednoj ploi. Ploa je sadrala tri LSI ipa,
internu magistralu poznatu kao mikroinstrukcijska magistrala (microinstruction bus,
MIB) i neto dodatnih logikih kola za meusobnu vezu.
Na slici 20.13 prikazana je, u pojednostavljenom obliku, organizacija procesora
LSI-11. Tri ipa su ipovi podataka, upravljanja i upravljake memorije. ip podataka
sadri 8-bitnu aritmetiko-logiku jedinicu, dvadeset est 8bitnih registara i skladite
za nekoliko uslovnih kodova. esnaest registara koriste se za implementiranje osam
16bitnih registara opte namene procesora PDP-11. Ostali obuhvataju re stanja programa, memorijski adresni registar (MAR) i memorijski bufer registar. Poto aritmetiko-logika jedinica radi samo sa 8 bitova istovremeno, neophodna su dva prolaza
kroz aritmetiko-logiku jedinicu da bi se implementirale 16-bitne aritmetike operacije procesora PDP-11. Time upravlja mikroprogram.
ip ili ipovi za upravljake memorije sadre 22-bita iroku upravljaku memoriju. Upravljaki ip sadri logika kola za sekvenciranje i izvravanje mikroinstrukcija. On obuhvata upravljaki adresni registar, upravljaki registar podataka i kopiju
mainskog instrukcijskog registra.
Upravljaka
memorija
11
22
22
18
Upravljaki
ip
16
Mikroinstrukcijska
magistrala
ip
podataka
16
Upravljanje
magistralom i
ostala logika
kola na ploi
17.1 / Origin20-25
Upravljaki registar podataka
Upravljaka
memorija
Upravljanje
sekvenciranjem
mikroprograma
Povratni registar
Translatorni
niz
Instrukcijski registar
INT
20-26poglavlje 20 / mikropragramiranje
za odreivanje poetka mikrorutine koristi se operacioni kd;
u odgovarajuim trenucima, testiraju se bitovi naina adresiranja mikroinstrukcije da bi se izvrilo odgovarajue adresiranje;
uslovi prekida periodino se testiraju;
procenjuju se uslovi grananja mikroinstrukcija.
Format mikroinstrukcija LSI-11 Upravljaka jedinica procesora LSI-11 koristi ekstremno vertikalan format mikroinstrukcija, irok samo 22 bita. Skup mikroinstrukcija
izuzetno lii na skup mainskih instrukcija koje implementira PDP-11. Ovakva izrada
predviena je za optimizovanje performansi upravljake jedinice unutar ogranienja
koja postavlja vertikalni format mikroinstrukcija, jednostavan za programiranje. U
tabeli 20.5 navedene su neke od mikroinstrukcija LSI-11.
Na slici 20.15 prikazan je format 22-bitne LSI-11 mikroinstrukcije. etiri bita
vieg reda upravljaju specijalnim funkcijama na procesorskoj ploi. Translatorni bit
omoguava translatornom nizu da proveri nereene prekide. Bit registra povratnog
uitavanja koristi se na kraju mikrorutine kako bi se adresa sledee mikroinstrukcije
uitala iz povratnog registra.
Tabela 20.5 Neke LSI-11 mikroinstrukcije
Aritmetike operacije
Opte operacije
MOV re (bajt)
Skok
Povratak
Uslovni skok
Uitavanje G nisko
Ulazno/izlazne operacije
Uitavanje
Upisivanje
Uitavanje (upisivanje) i poveanje rei (bajta) za 1
Logike operacije
17.1 / Origin20-27
4
16
Specijalne
funkcije
Kodirane mikrooperacije
11
Operacioni kd
Adresa skoka
Operacioni
kd
Kd za
testiranje
Adresa skoka
Operacioni
kd
Vrednost literala
A registar
Operacioni kd
B registar
A registar
BH
108
DA
BA
CA
DB
Adresa skladitenja
72
36
CC
BB
CD
125
CE
BD
AF
CF
Razno upravljanje
BE
Aritemtiki registri
AG
BF
AH
DE
Sledea adresa
BC
AE
Lokalno
skladitenje
DD
AD
DC
Upravljanje pomerajem
CB
Registri A, B, C, D
AC
CG
AK
71
CH
107
Adresa skladitenja
BH
Registri pomeraja
AJ
AL
AB
AA
35
20-28poglavlje 20 / mikropragramiranje
17.1 / Origin20-29
Tabela 20.6 Polja za upravljanje mikroinstrukcijama IBM 3033
AB(3)
AC(3)
AD(3)
AE(4)
AF(4)
AG(5)
AH(4)
AJ(1)
AK(4)
CA(3)
Uitava F registar.
CB(1)
CC(5)
CE(7)
BA(8)
BB(4)
BC(4)
BD(4)
BE(4)
BF(7)
20.4 TI 8800
Texas Instruments 8800 SDB (Software Development Board) je 32-bitna raunarska
kartica koja se moe mikroprogramirati. Ovaj sistem ima upravljaku memoriju u
koju je mogue upisivati, implementiranu korienjem RAM memorije umesto ROM
memorije. Takav sistem ne postie brzinu ili gustinu mikroinstrukcija kakvu imaju
sistemi sa mikroprogramiranom ROM memorijom. Meutim, veoma je koristan za
razvoj prototipova i obuku.
TI 8800 SDB sastoji se od sledeih komponenti (slika 20.17):
memorije mikrokoda,
mikrosekvencera,
32-bitne aritmetiko-logike jedinice,
procesora za rad sa celobrojnim vrednostima i vrednostima u pokretnom
zarezu,
lokalne memorije za podatke.
Dve magistrale povezuju unutranje komponente sistema. Magistrala DA obezbeuje podatke iz mikroinstrukcijskog polja podataka za aritmetiko-logiku jedinicu,
20-30poglavlje 20 / mikropragramiranje
procesor za obradu vrednosti u pokretnom zarezu ili mikrosekvencer. U poslednjem
sluaju, podaci se sastoje od adrese koja se koristi za instrukciju grananja. Ova magistrala takoe se moe koristiti da bi aritmetiko-logika jedinica ili mikrosekvencer
pruili podatke ostalim komponentama. Sistemska Y magistrala povezuje aritmetiko-logiku jedinicu i procesor za vrednosti u pokretnom zarezu sa lokalnom memorijom i spoljanjim modulima preko PC interfejsa.
15
Memorija mikrokoda
32K 128 bitova
128 Mikroinstrukcija
Upravljanje i
mikroinstrukcije
Mikroinstrukcijski
registar protone obrade
96
DA31-DA00
32
ACT8847 procesor za
celobrojne i vrednosti u
pokretnom zarezu
ACT8832
aritmetiko-logika
jedinica
ACT8818
mikrosekvencer
32
Sistemska Y magistrala
Lokalna memorija
za podatke
32K 32 bita
PC/AT
interfejs
16
Format mikroinstrukcija
Format mikroinstrukcija za TI 8800 sastoji se od 128 bitova podeljenih u 30 funkcionalnih polja, navedenih u tabeli 20.7. Svako polje sastoji se od jednog ili vie bitova, a
polja su grupisana u pet osnovnih kategorija:
upravljanje ploom,
8847 procesorski ip za celobrojne i vrednosti u pokretnom zarezu,
17.1 / Origin20-31
Tabela 20.7 Format mikroinstrukcija TI 8800
Broj
polja
Broj
bitova
Opis
Upravljanje ploom
10
11
12
13
14
15
16
11
17
18
19
20
21
22
23
24
25
26
27
28
12
8818 mikrosekvencer
Upisivo polje upravljanja skladitem podataka
29
16
30
16
20-32poglavlje 20 / mikropragramiranje
8832 aritmetiko-logika jedinica,
8818 mikrosekvencer,
upisivo polje upravljanja skladitem podataka
Kao to je naznaeno na slici 20.17, 32 bita polja za podatke upisive upravljake
memorije unose se na DA magistralu kako bi se ponudili kao podaci za aritmetiko-logiku jedinicu, procesor za rad u pokretnom zarezu ili mikrosekvencer. Ostalih 96
bitova (polja 1 27) mikroinstrukcije su upravljaki signali koji se direktno unose u
odgovarajui modul. Zbog jednostavnosti, te veze nisu prikazane na slici 20.17.
Prvih est polja tiu se operacija koje se odnose na upravljanje itavom ploom, a
ne upravljanje pojedinim komponentama. Operacije upravljanja obuhvataju:
biranje uslovnih kodova za upravljanje sekvencerom; prvi bit polja 1 naznaava da li se marker uslova postavlja na 1 ili na 0, a preostalih 4 bitova naznaava koji se marker postavlja;
slanje U/I zahteva na PC/AT interfejs;
omoguavanje operacija itanja/upisivanja podataka lokalne memorije;
odreivanje jedinice koja pokree sistemsku Y magistralu; bira se jedan od
etiri ureaja prikljuenih na magistralu (slika 20.17).
Poslednjih 32 bita su polje podataka; ono sadri odreene informacije koje se
odnose na pojedine mikroinstrukcije.
Preostala polja mikroinstrukcije najbolje je razmotriti u kontekstu ureaja kojim
upravljaju. U preostalom delu ovog odeljka, pozabaviemo se mikrosekvencerom i
aritmetiko-logikom jedinicom. U radu jedinice za rad u pokretnom zarezu nema
novina, pa se stoga preskae.
Mikrosekvencer
Osnovna funkcija 8818 mikrosekvencera je generisanje adrese sledee mikroinstrukcije za mikroprogram. Ova 15bitna adresa dostavlja se memoriji mikrokoda (slika
20.17).
Sledea adresa moe se izabrati iz jednog od pet izvora:
1.
2.
3.
4.
5.
registar brojaa mikroprograma (MPC), koristi se za ponavljanje (ponovnu upotrebu iste adrese) i nastavak (poveanje adrese za 1) instrukcija;
stek, koji podrava pozivanje potprograma iz mikroprograma, a takoe i petlje sa
ponavljanjem i povratak iz prekida;
DRA i DRB portove, koji obezbeuju dve dodatne putanje iz spoljanjeg hardvera koji moe da generie adrese mikroprograma; ova dva porta povezana su
sa 16 najznaajnijih i manje znaajnih bitova DA magistrale, respektivno; oni
omoguavaju da mikrosekvencer dobije adresu sledee mikroinstrukcije iz polja
za podatke upisive upravljake memorije tekue instrukcije ili iz rezultata koji je
izraunala aritmetiko-logika jedinica;
brojaa registra RCA i RCB, koji se mogu koristiti za dodatno skladitenje adresa;
spoljanji ulaz u dvosmerni Y port za podrku spoljanjim prekidima.
17.1 / Origin20-33
DA31-DA16
(DRA)
DA15-DA00
(DRA)
MUX
Dvostruki
registri/brojai
Stek
B3-B0
Mikroprogramski
broja/
inkrementer
Povratni
registar
prekida
Izlaz Y
multipleksera
Adresa sledeeg
mikrokoda
Na slici 20.18 dat je logiki blok dijagram mikrosekvencera 8818. Ureaj se sastoji
od sledeih osnovnih grupa:
16-bitni mikroprogramski broja (MPC) koji se sastoji od registra i inkrementera;
dva registarska brojaa, RCA i RCB, za brojanje petlji i iteracija, skladitenje
adrese grananja ili pokretanje spoljanjih ureaja;
65 rei u 16-bitnom steku, koje omoguavaju pozivanje potprograma iz mikroprograma i prekide;
povratni registar prekida i Y izlaz omoguavaju obradu prekida na nivou mikroinstrukcije;
20-34poglavlje 20 / mikropragramiranje
izlaz Y multipleksera pomou koga se sledea adresa moe izabrati iz MPC, RCA,
RCB, spoljanih magistrala DRA i DRB ili steka.
Registri/brojai Vrednosti u registrima RCA i RCB mogu se uitati sa DA magistrale,
ili iz aktuelne mikroinstrukcije ili iz izlaza aritmetiko-logike jedinice. Ove vrednosti
mogu se iskoristiti kao brojai za upravljanje tokom izvravanja i mogu se automatski
umanjivati kada im se pristupi. Ove vrednosti mogu se takoe koristiti kao adrese
mikroinstrukcija koje se dostavljaju Y izlazu multipleksera. Nezavisno upravljanje oba
registra tokom istog ciklusa mikroinstrukcije podrano je, sa izuzetkom da je nemogue istovremeno smanjiti vrednost oba registra.
Stek Stek omoguava vie nivoa ugneenih poziva ili prekida i moe se koristiti
kao podrka grananju ili prolasku kroz petlju. Upamtite da se ove operacije odnose
na upravljaku jedinicu, ne na celokupni procesor, i da se to odnosi na adrese onih
mikroinstrukcija koje se nalaze u upravljakoj memoriji.
Mogue je izvesti est operacija sa stekom:
1.
2.
3.
4.
5.
6.
17.1 / Origin20-35
Mnemonik
Vrednost
Opis
RST8818
000000001100
Instrukcija za resetovanje
BRA88181
011000111000
BRA88180
010000111110
INC88181
000000111110
Instrukcija nastavka
INC88180
001000001000
Instrukcija nastavka
CAL88181
010000110000
CAL88180
010000101110
RET8818
000000011010
Povratak iz potprograma
PUSH8818
000000110111
POP8818
100000010000
Povratak iz prekida
LOADDRA
000010111110
LOADDRB
000110111110
LOADDRAB
000110111100
Uitavanje DRA/DRB
DECRDRA
010001111100
DECRDRB
010101111100
20-36poglavlje 20 / mikropragramiranje
Aritmetiko-logika jedinica sa registrima
8832 je 32-bitna aritmetiko-logika jedinica sa 64 registra koji se mogu konfigurisati
tako da rade kao etiri 8-bitne aritmetiko-logike jedinice, dve 16-bitne aritmetiko-logike jedinice ili jedna 32-bitna aritmetiko-logika jedinica.
Aritmetiko-logikom jedinicom 8832 upravlja se pomou 39 bita koji sainjavaju
polja od 17 do 27 u mikroinstrukciji (tabela 20.7); oni se aritmetiko-logikoj jedinici
dostavljaju kao upravljaki signali. Pored toga, kao to je naznaeno na slici 20.7, aritmetiko-logika jedinica 8832 ima spoljne veze sa 32-bitnom DA magistralom i 32-bitnom sistemskom Y sabirnicom. Ulazi iz DA mogu se obezbediti istovremeno kao ulazni
podaci za datoteku registara od 64 rei i za modul aritmetiko-logike jedinice. Ulaz iz
sistemske Y magistrale obezbeen je modulu aritmetiko-logike jedinice. Rezultati aritmetiko-logike jedinice i operacija pomeraja su izlazi na DA magistralu ili sistemsku Y
magistralu. Rezultati se takoe mogu vratiti ponovo u internu datoteku registara.
Tri 6-bitna adresna porta omoguavaju da se istovremeno izvri donoenje dva
operanda i upisivanje operanda unutar datoteke registara. Registar pomeraja MQ
i registar MQ mogu se takoe konfigurisati tako da funkcioniu nezavisno kako bi
implementirale 8-bitne, 16-bitne i 32-bitne operacije pomeraja.
Polja 17 do 26 svih mikroinstrukcija upravljaju nainom na koji podaci teku unutar 8832 i izmeu 8832 i okoline. Polja su sledea:
20. omogueno upisivanje, ova dva bita utvruju da li se 32 bita, ili 16 najznaajnijih
bitova, ili 16 manje znaajnih bitova, upisuju ili ne u datoteku registara; odredini registar definisan je poljem 24;
18. biranje izvora podataka datoteke registara, ukoliko se deava upisivanje u datoteku registara, ova dva bita odreuju izvor: DA magistrala, DB magistrala, izlaz
aritmetiko-logike jedinice ili sistemska Y magistrala;
19. modifikator instrukcijskog pomeraja, utvruje opcije koje se odnose na dostavljanje krajnjih bitova za ispunu ili itanje bitova koji su pomereni tokom instrukcije
pomeraja;
20. unoenje, ovaj bit naznaava da li se bit unosi u aritmetiko-logiku jedinicu za
ovu operaciju;
21. postavljanje reima aritmetiko-logike jedinice, 8832 moe se konfigurisati da
radi kao jedna 32-bitna aritmetiko-logika jedinica, dve 16-bitne aritmetiko-logike jedinice ili etiri 8-bitne aritmetiko-logike jedinice;
22. S ulaz, ulazi modula aritmetiko-logike jedinice opremljeni su sa dva interna
multipleksera, obeleena kao S i R multiplekseri; ovo polje bira ulaz koji se
obezbeuje za S multiplekser: datoteka registra, DB magistrala ili MQ registar;
izvorni registar definisan je poljem 25;
23. R ulaz, biranje ulaza koji se obezbeuje R multiplekseru: datoteka registra ili
DA sabirnica;
24. odredini registar, adresa registar u datoteci registara koja se koristi za odredini
operand;
25. izvorni registar, adresa registra u datoteci registara koja se koristi za izvorni operand, obezbeen S multiplekserom;
26. izvorni registar, adresa registra u datoteci registara koja se koristi za izvorni operand, obezbeen R multiplekserom.
17.1 / Origin20-37
Grupa 1
Funkcija
ADD
H#01
R + S + Cn
SUBR
H#02
(NOT R) + S + Cn
SUBC
H#03
R = (NOT S) + Cn
INSC
H#04
S + Cn
INCNS
H#05
(NOT S) + Cn
INCR
H#06
R + Cn
INCNR
H#07
(NOT R) + Cn
XOR
H#09
R XOR S
AND
H#0A
A AND S
OR
H#0B
R OR S
NAND
H#0C
R NAND S
NOR
H#0D
R NOR S
H#0E
(NOT R) AND S
ANDNR
Grupa 2
Funkcija
SRA
H#00
SRAD
H#10
SRL
H#20
SRLD
H#30
SLA
H#40
SLAD
H#50
SLC
H#60
SLCD
H#70
SRC
H#80
SRCD
H#90
MQSRA
H#A0
MQSRL
H#B0
MQSLL
H#C0
MQSLC
H#D0
LOADMQ
H#E0
Uitavanje MQ registra
PASS
H#F0
Grupa 3
Funkcija
SET1
H#08
Postavljanje bita 1
SET0
H#18
Postavljanje bita 0
TB1
H#28
Testiranje bita 1
TB0
H#38
Testiranje bita 0
20-38poglavlje 20 / mikropragramiranje
Tabela 20.9 Nastavak
ABS
H#48
Apsolutna vrednost
SMTC
H#58
ADDI
H#68
Direktno sabiranje
SUBI
H#78
Direktno oduzimanje
BADD
H#88
Dodavanje R na S u bajtovima
BSUBS
H#98
Oduzimanje S od R u bajtovima
BSUBR
H#A8
Oduzimanje R od S u bajtovima
BINCS
H#B8
Poveanje S u bajtovima
BINCNS
H#C8
BXOR
H#D8
BAND
H#E8
Logiko I za R i S u bajtovima
BOR
H#F8
Grupa 4
Funkcija
CRC
H#00
SEL
H#10
Izaberi S ili R
SNORM
H#20
DNORM
H#30
DIVRF
H#40
SDIVQF
H#50
SMULI
H#60
SMULT
H#70
SDIVIN
H#80
SDIVIS
H#90
SDIVI
H#A0
UDIVIS
H#B0
UDIVI
H#C0
UMULI
H#D0
SDIVIT
H#E0
UDIVIT
H#F0
Grupa 5
Funkcija
LOADFF
H#0F
CLR
H#1F
ienje
DUMPFF
H#5F
BCDBIN
H#7F
EX2BC
H#8F
EX3C
H#9F
SDIVO
H#AF
BINEX3
H#DF
Binarno na viak 3
NOP32
H#FF
Bez operacije
17.1 / Origin20-39
Kao primer kodovanja kojim se utvruju polja 17 do 27, uzmimo instrukciju za dodavanje
sadraja registra 1 u registar 2 i smetanje rezultata u registar 3. Simbolika instrukcija je:
CONT11[17], WELH, SELRYFYMX, [24], R3, R2, R1, PASS + ADD
Asembler e ovo prevesti u odgovarajui raspored bitova. Pojedine komponente
instrukcije mogu se opisati na sledei nain:
CONT11 je osnovna NOP instrukcija;
polje [17] menja se u WELH (write enable, low and high omogueno upisivanje, nisko i visoko), tako da se 32-bitni registar upisuje u njega;
polje [18] menja se u SELRFYMX kako bi se izabrao povratni signal iz aritmetikog izlaza Y MUX aritmetiko-logike jedinice;
polje [24] menja se tako da registar R3 oznai za odredini registar;
polje [25] menja se tako da registar R2 oznai kao jedan od izvornih registara;
polje [26] menja se tako da registar R1 oznai kao jedan od izvornih registara;
polje [27] menja se tako da odredi korienje ADD operacije aritmetiko-logike jedinice; instrukcija pomeraja aritmetiko-logike jedinice je PASS, prema
tome, izlaz aritmetiko-logike jedinice se ne pomera registrom pomeraja.
Potrebno je ukazati na nekoliko stvari oko ove simbolike notacije. Nije neophodno dati brojeve polja za uzastopna polja. Drugim reima
CONT11[17], WELH, [18], SELRYFYMX
moe se napisati kao
CONT11[17], WELH, SELRYFYMX
poto se SELRFYMX nalazi u polju 18.
Instrukcije aritmetiko-logike jedinice iz grupe 1 u tabeli 20.9 moraju se uvek
koristiti zajedno sa onima iz grupe 2. Instrukcije aritmetiko-logike jedinice iz grupa
3 5 ne smeju se koristiti sa onima iz grupe 2.
20-40poglavlje 20 / mikropragramiranje
SEGE91 Segee, B., and Field, J. Microprogramming and Computer Architecture. New York: Wiley, 1991.
TI90 Texas Instruments Inc. SN74ACT880 Family Data Manual. SCSS006, 1990.
VASS03 Vassiliadis, S.; Wong, S.; and Cotofana, S. Microcode Processing: Positioning and Directions.
IEEE Micro, July-August 2003.
Novija literatura
HILL64 Hill, R. Stored Logic Programming and Applications. Datamation, February 1964.
SEBE76 Sebern, M. A Minicomputer-compatible Microcomputer System: The DEC LSI-11. Proceedings
of the IEEE, June 1976.
SIEW82 Siewiorek, D.; Bell, C.; and Newell, A. Computer Structures: Principles and Examples. New
York: McGraw-Hill, 1982.
TUCK67 Tucker, S. Microprogram Control for System/360. IBM Systems Journal, No. 4, 1967.
WILK51 Wilkes, M. The Best Way to Design an Automatic Calculating Machine. Proceedings,
Manchester University Computer Inaugural Conference, July 1951.
WILK53 Wilkes, M., and Stringer, J. Microprogramming and the Design of the Control Circuits in an
Electronic Digital Computer. Proceedings of the Cambridge Philosophical Society, April 1953.
Reprinted in [SIEW82].
kodovanje mikroinstrukcije
izvrenje mikroinstrukcije
sekvenciranje mikroinstrukcije
mikroinstrukcije
mikroprogram
mikroprogramirana upravljaka
jedinica
softversko mikroprogramiranje
nezapakovana mikroinstrukcija
vertikalna mikroinstrukcija
Kontrolna pitanja
20.1 U emu je razlika izmeu oiene implementacije i mikroprogramirane implementacije
20.2
20.3
20.4
20.5
20.6
20.7
20.8
20.9
20.10
upravljake jedinice?
Kako se interpretira horizontalna mikroinstrukcija?
emu slui upravljaka memorija?
Koja je tipina sekvenca izvravanja horizontalne mikroinstrukcije?
U emu je razlika izmeu horizontalne i vertikalne mikroinstrukcije?
Koje osnovne zadatke obavlja mikroprogramirana upravljaka jedinica?
U emu je razlika izmeu zapakovanih i nezapakovanih mikroinstrukcija?
U emu je razlika izmeu hardverskog i softverskog mikroprogramiranja?
U emu je razlika izmeu funkcionalnog i resursnog kodovanja?
Navedite neke od uobiajenih primena mikroprogramiranja.
Problemi
20.1 Opiite implementaciju instrukcije mnoenja u hipotetikoj maini koju je napravio Wilkes.
Opiite je reima i koristei dijagram toka.
20.2 Pretpostavimo da neki skup mikroinstrukcija obuhvata mikroinstrukciju sa sledeim simbolikim oblikom:
17.1 / Origin20-41
gde je AC0 bit predznaka akumulatora, a C0-6 su prvih sedam bitova mikroinstrukcije. Koristei ovu mikroinstrukciju, napiite mikroprogram koji implementira BRM (Branch Register
Minus) mainsku instrukciju koja vri grananje ukoliko je sadraj akumulatora AC negativan.
Pretpostavimo da bitovi C1 do Cn mikroinstrukcije odreuju paralelan skup mikrooperacija.
Izrazite program simboliki.
20.3 Jednostavan procesor ima etiri osnovne faze u svom instrukcijskom ciklusu: donoenje, in-
20.4
20.5
20.6
20.7
20.8
direktnu, izvrnu i prekida. Dva 1-bitna markera naznaavaju aktuelnu fazu u oienoj implementaciji.
a. Zato su ti markeri neophodni?
b. Zato oni nisu neophodni u mikroprogramiranoj upravljakoj jedinici?
Uzmimo, na primer, upravljaku jedinicu na slici 20.7. Pretpostavimo da je upravljaka memorija 24 bita irine. Upravljaki deo formata mikroinstrukcije podeljen je u dva polja. Polje
mikrooperacije od 13 bitova utvruje koja se mikrooperacija izvrava. Polje za biranje adrese
odreuje uslove, na osnovu markera, koji dovode do grananja. Postoji osam markera.
a. Koliko bitova postoji u polju za biranje adrese?
b. Koliko bitova postoji u polju adrese?
c. Koje je veliine upravljaka memorija?
Na koji nain se moe obaviti bezuslovno grananje u okolnostima opisanim u prethodnom
problemu? Na koji nain se grananje moe izbei, to jest, opiite mikroinstrukciju koja nee
odreivati bilo kakvo grananje, svejedno da li uslovno ili bezuslovno.
elimo da obezbedimo 8 upravljakih rei svim rutinama mainske instrukcije. Operacioni kd mainske instrukcije ima 5 bitova, a upravljaka memorija ima 1024 rei. Predloite
nain za preslikavanje iz instrukcijskog registra u upravljaki adresni registar.
Koristi se kodovani format mikroinstrukcija. Pokaite nain na koji se polje mikrooperacije
od 9 bitova moe podeliti na potpolja kojima se utvruje 46 razliitih akcija.
Procesor ima 16 registara, aritmetiko-logiku jedinicu sa 16 logikih i 16 aritmetikih funkcija i registar pomeraja sa 8 operacija, pri emu su svi meusobno povezani internom magistralom procesora. Projektujte format mikroinstrukcije tako da utvruje razliite mikrooperacije
ovog procesora.
Dodatak C
Ha tabele
William Stallings
Dopuna knjige
Organizacija i arhitektura raunara
Prevod devetog izdanja
CET 2012. god.
ISBN: 978-86-7991-361-6
CET
C - 2Dodatak C / Ha tabele
Razmotrite sledei problem. Skup N stavki is treba da se smesti u tabelu.
Svaka stavka se sastoji od oznake i neke dodatne informacije, koju moemo
da nazovemo vrednost stavke. eleli bismo da moemo da izvedemo izvestan broj jednostavnih operacija nad tabelom, kao to su umetanje, brisanje
i pronalaenje date stavke po oznaci.
Ako su oznake stavki numerike, u opsegu od 0 do M 1, onda bi jednostavno reenje bilo da se upotrebi tabela duine M. Stavka sa oznakom i
bi se ubacila u nabelu na lokaciji i. Sve dok su stavke fiksne duine, pretraivanje tabele je jednostavno i obuhvata indeksiranje u tabeli zasnovano na
stavci u tabeli, zato to je podrazumevano poloajem stavke. Takva tabela
se zove tabela sa direktnim pristupom.
Ako oznake nisu numerike, jo uvek se moe koristiti tabela sa direktnim pristupom. Neka su stavke A[1],A[N]. Svaka stavka A[i] sastoji se
od oznake, ili kljua, ki, i vrednosti vi. Definiimo funkciju preslikavanja
I(k) tako da I(k) uzima vrednost izmeu 1 i M za sve kljueve i I(ki) I(kj)
za svako i i j. U tom sluaju, tabela sa direktnim pristupom takoe moe da
se upotrebi, sa duinom tabele jednakom M.
Tekoa koja kod ovakvih ema javlja se ako je M mnogo vee od N. U
tom sluaju, proporcija neiskorienih ulaza u tabelu je velika, to predstavlja neefikasno iskorienje memorije. Alternativa bi bila da se koristi tabela
duine N i da se stavi N stavki (oznaka i vrednost) u N ulaza u tabelu. U
takvoj emi, koliina memorije je svedena na najmanju meru, ali dolazi do
preterane obrade prilikom pretraivanja tabele. Neke od mogunosti su:
Dodatak C / Ha tabeleC
-3
Duina pretraivanja
Direktna
Sekvencijalna
M +1
2
Binarna
log2M
Linearno hairanje
2 N
M
2
N
2
M
Hairanje (prekoraenje sa
ulanavanjem)
1+
N 1
2M
C - 4Dodatak C / Ha tabele
Funkcija hairanja moe da se definie kao to sledi. Pretpostavite da
do N stavki treba da se smesti u ha tabelu duine M, gde je M N, ali ne
mnogo vee od N. Da biste stavili stavku u tabelu:
I1. Pretvorite oznaku stavke u priblino sluajan broj n izmeu 0 i M 1.
Na primer, ako je oznaka numerika, omiljena funkcija preslikavanja je
da se oznaka podeli sa M i ostatak uzme za vrednost n.
I2. Upotrebite n kao indeks u ha tabeli.
a. Ako je odgovarajui ulaz u tabeli prazan, stavite stavku (oznaku i
vrednost) u taj ulaz.
b. Ako je ulaz ve zauzet, onda stavite stavku u podruje za prekoraenje, to e se objasniti dalje u tekstu.
Da biste u tabeli pronali stavku ija oznaka je poznata,
L1. Pretvorite oznaku stavke u priblino sluajan broj izmeu 0 i M 1,
koristei istu funkciju preslikavanja kao za umetanje.
L2. Upotrebite n kao indeks u ha tabeli.
a. Ako je odgovarajui ulaz u tabeli prazan, tada stavka nije bila prethodno smetena u tabeli.
b. Ako je ulaz ve zauzet i oznake se podudaraju, tada vrednost moe
da se uzme.
c. Ako je ulaz ve zauzet i oznake se ne podudaraju, tada se pretraivanje nastavalja u podruju za prekoraenje.
eme za hairanje se meusobno razlikuju po nainu na koji se radi sa
prekoraenjem. Tehnika koja se esto koristi u raunarima zove se linearno
hairanje. U tom pristupu, pravilo I2.b postaje
I2.b. A
ko je ulaz ve zauzet, postavite n = n + 1 (mod M) vratite se na korak
I2.a.
Pravilo L2.c se menja na odgovarajui nain.
Primer je dat na slici C.1a. U tom sluaju, oznake stavki koje treba da
se smetaju su numerike, a ha tabela ima osam pozicija (M = 8). Funkcija
preslikavanja je da se uzme ostatak posle deljenja sa 8. Na slici se pretpostavlja da su stavke smetene po rastuem numerikom redosledu, mada to
Dodatak C / Ha tabeleC
-5
vrednost (74)
vrednost (83)
vrednost (119)
vrednost (139)
vrednost (51)
vrednost (94)
vrednost (95)
Slika C.1
C.1 Hairanje
Slika
Hairanje
C-6
C - 6Dodatak C / Ha tabele
ak i tako, duina pretraivanja od 3 moe da se smatra prevelikom.
Pored toga, linearna ha tabela ima i problem da nije lako brisati stavke.
Prekoraenje sa ulanavanje je privlaniji pristup koji obezbeuje kraa
pretraivanja (Tabela C.1) i doputa brisanja kao i dodavanja. Ta tehnika
je prikazana na slici C1b. U tom sluaju, postoji posebna tabela u koju
se unose ulazi prekoraenja. Ta tabela ukljuuje pokazivae koji prolaze
niz lanac ulaza pridruenih svakoj poziciji u ha tabeli. U tom sluaju,
prosena duina pretraivanja, pod pretpostavkom sluajno raspodeljenih
podataka, iznosi
Prosena duina pretraivanja = 1 +
N 1
2M
Referenca
SCHA62 Schay, G., and Spruth, W. Analysis of a File Addressing Method.
Communications of the ACM, August 1962.
Dodatak D
Strategije kea za rtvovane podatke
William Stallings
D.1 KE ZA RTVOVANE PODATKE . . . . . . . . . . . . . . . . . . . . . 2
D.2 SELEKTIVNI KE ZA RTVOVANE PODATKE . . . . . . . . . . . . 6
Dolazei blokovi iz memorije . . . . . . . . . . . . . . . . . . . . . . . . .7
Razmena izmeu direktno preslikanog kea i kea za rtvovane podatke . 7
Dopuna knjige
Organizacija i arhitektura raunara
Prevod devetog izdanja
CET 2012. god.
ISBN: 978-86-7991-361-6
CET
-3
Procesor
Ke za
rtvovane
podatke
Ke
nivoa L2
(opcija)
Glavna
memorija
Adresa
za rtvovane
podatke u ukupnoj memorijskoj hijerarhiji. Ke za rtvovane podatke
Adresa iz
Ke nivoa L1
procesora
preslikan)
moe da se smatra delom (direktno
ke sistema
nivoa L1. Sledei nii nivo memorijske
tag
tag
tag
tag
podaci
Adresa ka
sledeem Podaci iz kea slekeu
deeg nieg nivoa
komparator
jedan red kea za podatke
komparator
jedan red kea za podatke
jedan red kea za podatke
komparator
jedan red kea za podatke
komparator
D3
LRU ulaz
Potpuno asocijativan
ke za rtvovane podatke
MRU ulaz
Ke za rtvovane podatke
(potpuno asocijativan)
Zamenjen
kompablok u
tag rator
memoriju
podaci
tagovi
podaci
Ke za rtvovane podatke
(potpuno asocijativan)
Ke nivoa L1
(direktno preslikan)
kea za
za rtvovane
podatke
SlikaSlika
D.3D.3
radradkea
rtvovane
podatke
4.10 i 4.12, komparator je ekvivalent polja za red u emi za direktno
4.10 andpreslikava-nje.
4.12, komparator
ekvivalent
poljazazartvovane
red u emi
za direktno
preslikavaTag i je
komparator
u keu
podatke
jedinstveno
identifikuju blok memorije, pa referenca memorije iz procesora moe da
nje. Tag izvri
i komparator
keu za rtvovane
jedinstveno
paralelno u
pretraiva-nje
svih ulazapodatke
u asocijativni
ke da bi identifikuju
se utvrdilo blok
da li je eljeni red prisutan.
memorije, paNareferenca
memorije iz procesora moe da izvri paralelno pretraivaslici D.3 prikazan je rad kea za rtvovane podatke. Podaci su ureeni na takav nain da isti red nije nikada istovremeno prisutan u keu
-5
-7
Reference
JOUP90 Jouppi, N. Improving Direct-Mapped Cache Performance by the
Addition of a Small Fully-Associative Cache and Prefetch Buffers.
Proceedings, 17th Annual International Symposium on Computer
Architecture, May 1990.
MCFA92 McFarling, S. Cache Replacement with Dynamic Exclusion.
Proceedings, 19th Annual International Symposium on Computer
Architecture, May 1992.
STIL94 Stiliadis, D., and Varma, A. Selective Victim Caching: A
Method to Improve the Performance of Direct-Mapped Caches.
Communications of the ACM, January 1987.
Dodatak E
Isprepletana memorija
William Stallings
Dopuna knjige
Organizacija i arhitektura raunara
Prevod devetog izdanja
CET 2012. god.
ISBN: 978-86-7991-361-6
CET
Grupa 0
Grupa 1
1
2
N+1
N+2
2N - 2
N-2
N-1
2N - 1
bafer
Magistrala podataka
(a) Neisprepletana memorijska organizacija
Clock
Pristupi DRAM
1. re
2. re
3. re
4. re
Grupa 1
0
2
4
1
3
2N - 4
2N - 3
2N - 2
2N - 1
bafer
bafer
Magistrala podataka
(c) Isprepletana memorijska organizacija
Clock
Pristupi DRAM
2. re
1. re
3. re
4. re
-3
Grupa 1
Grupa 2
Grupa 2k-1
adresa rei
izbor
grupe
m bitova
k bitova
Magistrala podataka
E-4
Dodatak F
Meunarodna referentna azbuka
William Stallings
Dopuna knjige
Organizacija i arhitektura raunara
Prevod devetog izdanja
CET 2012. god.
ISBN: 978-86-7991-361-6
CET
1IRA je definisana u ITU-T Preporuci T.50 i bila je prvobitno poznata kao International Alphabet Number 5 (IA5).
Nacionalna verzija USA se zove American Standard Code for Information Interchange (ASCII).
Table F.1
-3
bitpozicija
positionbita
b7
0
b6
0
0
b5
0
0
0
1
1
1
1
0
1
0
1
1
1
0
b4 b3 b2 b1
0
NUL
DLE
SP
SOH
DC1
STX
DC2
"
ETX
DC3
EOT
DC4
ENQ
NAK
ACK
SYN
&
BEL
ETB
'
BS
CAN
HT
EM
LF
SUB
VT
ESC
FF
FS
<
CR
GS
SO
RS
>
SI
US
DEL
Upravljanje prenosom
SOH (Start of Heading): Koristi se
da ukae na poetak zaglavlja, koje
moe da sadri adresu ili informacije
za usmeravanje.
STX (Start of Text): Koristi se
da ukae na poetak teksta i tako
takoe ukae na kraj zaglavlja.
ETX (End of Text): koristi se da
zavri tekst koji je bio zapoet sa
STX.
EOT (End of Transmission):
Ukazuje na kraj prenosa, koji je
mogao da obuhvati vie tekstova
sa njihovim zaglavljima.
ENQ (Enquiry): Zahtev za odgovor
iz udaljene stanice. Moe da se
koristi kao zahtev KO SI TI stanici
da identifikuje samu sebe.
-5
Dodatak G
Algoritmi
William Stallings
G.1 OPTIMALNO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
G2 NAJMANJE NEDAVNO KORIENO . . . . . . . . . . . . . . . . . . 4
G3 PRVI - UNUTRA - PRVI NAPOLJE . . . . . . . . . . . . . . . . . . . 5
G.2 DRUGI ALGORITMI ZA ZAMENU STRANICA . . . . . . . . . . . . 9
Sluajno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Najmanje esto korieno (LFU) . . . . . . . . . . . . . . . . . . . . . . 9
Najmanje nedavno korieno K (LRU K) . . . . . . . . . . . . . . . 10
Adaptivni ke za zamenu (ARC) . . . . . . . . . . . . . . . . . . . . . . 11
asovnik sa adaptivnom zamenom (CAR) . . . . . . . . . . . . . . . . 11
Dopuna knjige
Organizacija i arhitektura raunara
Prevod devetog izdanja
CET 2012. god.
ISBN: 978-86-7991-361-6
Prevod sa engleskog: Dr Radomir Jankovi
CET
G - 2Dodatak G / Algoritmi
U ovom dodatku daje se pregled algoritama za zamenu stranica u sistemima virtuelne memorije. Detaljnije emo razmotriti etiri takva algoritma, a zatim ukratko predstaviti jo nekoliko njih. Da bi stekao oseaj za
takve algoritme, student moe da koristi dva simulatora zamene stranica
koji idu uz ovu knjigu.
U veini tekstova o operativnim sistemima, obrada materije koja se
odnosi na upravljanje memorijom postoji odeljak pod naslovom politika
zamene, koji se bavi izborom stranice u glavnoj memoriji koja treba da
se zameni kada u memoriju treba da se donese nova stranica. Tu temu je
ponekad teko obraditi, zato to ona obuhvata vie meusobno povezanih
koncepata:
Koliko okvira stranica treba da se dodeli svakom aktivnom procesu.
Da li skup stranica koje se razmatraju za zamenu treba da se ogranii
na one koje pripadaju procesu koji je prouzrokovao greku stranice,
ili bi trebalo da obuhvati sve okvire stranica u glavnoj memoriji.
Koja posebna stranica u okviru skupa koji se razmatra treba da bude
izabrana za zamenu.
Prva dva koncepta zovemo upravljanje rezidentnim skupom i rezerviemo termin politika zamene stranica za trei koncept koji se razmatra u
ovom dodatku.
Zamena stranica je verovatno jedna od najvie prouavanih oblasti
upravljanja memorijom. Kada su svi okviri u glavnoj memoriji zauzeti i
kada je potrebno da se donese nova stranica kako bi se zadovoljio uslov
greke stranice, politika zamene odreuje koja od stranica koje su trenutno
u memoriji treba da se zameni. Sve takve politike imaju za cilj da stranica
koja se zameni bude ba ona koja bi sa najmanjom verovatnoom bila referencirana u bliskoj budunosti.
Zbog principa lokalnosti, postoji esto velika korelacija izmeu istorije
nedavnog referenciranja i obrazaca referenciranja u bliskoj budunosti. U
skladu sa tim, veina politika zamene stranica pokuava da predvidi budue
ponaanje na osnovu prethodnog ponaanja sistema. Kompromis koji mora
da se uzme u obzir je da, to je politika zamene razraenija i savrenija, to
je potrebna vea hardverska i softverska podrka za njenu implementaciju.
-3
G.1OPTIMALNO
Optimalna politika bira za zamenu onu stranicu za koju je vreme sledee reference najdue. Moe da se pokae da takva politika ima za rezultat najmanji broj greaka stranica [BELA66]. Jasno je da je takvu politiku
nemogue implementirati, zato to bi ona zahtevala da operativni sistem
ima savreno saznanje o buduim dogaajima. Meutim, ona slui kao
standard u odnosu na koji se procenjuju algoritmi iz stvarnog sveta.
Na slici G.1 dat je primer optimalne politike. U tom primeru se pretpostavlja da postoji fiksna dodela okvira (fiksna veliina rezidentnog skupa)
za taj proces od tri okvira. Izvrenje procesa zahteva referencu na pet razliitih stranica. Tok adresa stranica koji se formira izvravanje programa je
232152453252
to znai da je prva referencirana stranica 2, druga referencirana stranica je
3 i tako dalje. Optimalna politika proizvodi tri greke stranice posle popunjavanja dodeljenih okvira.
Tok adresa
stranica
OPT
LRU
FIFO
ASOVNIK
ponaanjealgoritama
algoritama za
etiri
stranice
SlikaSlika
G.1 G.1
ponaanje
zazamenu
zamenu
etiri
stranice
G - 4Dodatak G / Algoritmi
G.3 PRVI-UNUTRA-PRVI-NAPOLJE
Politici prvi-unutra-prvi-napolje (FIFO) tretira okvire stranica dodeljene procesu kao cirkularni bafer, a stranice se uklanjaju u stilu krunog
dodeljivanja. Sve to se zahteva je pokaziva koji krui kroz okvire stranica
procesa. Iz tog razloga je FIFO jedna od politika zamene stranica koja se
najlake moe implementirati. Pored jednostavnosti, logika koja stoji iza
tog izbora je da se menja stranica koja je najdue bila u memoriji: stranica
koja je davno donesena u memoriju je sada ispala iz upotrebe. Takvo razmiljanje e u velikom broju slu;ajeva biti pogreno, zato to esto postoje
oblasti programa ili podataka koji se veoma mnogo koriste za vreme ivota
programa. Takve stranice e FIFO algoritam stalno ponovo donositi u
memoriju ili iz nje iznositi.
Nastavljajui sa naim primerom sa slike G.1, vidimo da politika FIFO
ima za rezultat est greaka stranica. Zapazite da LRU prepoznaje da su
stranice 2 i 5 referencirane vie puta od ostalih stranica, dok to politika
FIFO ne ini.
-5
Mada politika LRU funkcionie skoro isto tako dobro kao i optimalna
politika, nju je teko implementirati i namee dosta reijskog optereenja.
Sa druge strane, politika FIFO je veoma jednostavna za implementaciju, ali
funkcionie relativno slabo. Tokom godina, dizajneri operativnih sistema
su pokuavali sa izvesnim brojem drugih algoritama, kako bi se pribliili
performansama LRU, uz nametanje manjeg reijskog optereenja. Mnogi
od tih algoritama su varijante eme koja se zove politika asovnika.
Najjednostavniji oblik politike asovnika zahteva pridruivanje dodatnog bita svakom okviru, koji se zove bit upotrebe (engl. use bit). Kada
se stranica prvi put uita u okvir u memoriji, bit upotrebe za taj okvir se
postavi na 1. Kad god se stranica kasnije referencira (posle reference koja
je generisala greku stranice), njen bit upotrebe se postavlja na 1. Za algoritam zamene stranica, skup okvira koji su kandidati za zamenu (ovaj proces: lokalni opseg; celokupna glavna memorija: globalni opseg1) posmatra
se kao cirkularni bafer kome je pridruen pokaziva. Kada se stranica
zameni, pokaziva se postavi tako da pokazuje na okvir u baferu koji je
sledei u odnosu na onaj koji je upravo bio auriram. Kada doe vreme
da se zameni stranica, operativni sistem skenira bafer da bi pronaao okvir
iji je bit upotrebe postavljen na 0. Svaki put kada naie na okvir sa bitom
upotrebe koji je 1, on resetuje taj bit na nulu i nastavlja dalje. Ako bilo koji
ovir u baferu ima vrednost tog bita jednaku nuli na poetku tog procesa,
prvi takav okvir na koji se naie se bira za zamenu. Ako svi okviri imaju
bit upotrebe 1, onda e pokaziva napraviti jedan potpun krug kroz bafer
postavljajui sve bitove upotrebe na nulu i zaustaviti se na svojoj prvobitnoj poziciji, zamenjujui stranicu u tom okviru. Vidimo da je ta politika
slina FIFO izuzev to, u politici asovnika, algoritam prelazi preko svakog
okvira sa bitom upotrebe jednakim 1. Ovo se zove politika asovnika zato
to moemo da posmatramo okvire stranica kao da su rasporeeni u krugu.
Izvestan broj operativnih sistema koriste neku od varijacija ove jednostavne
politike asovnika (na primer Multics [CORB68]).
Na slici G.2 dat je primer mehanizma jednostavne politike asovnika.
Cirkularni bafer od n memorijskih okvira je na raspolaganju za zamenu
stranica. Ba pre zamene stranice iz bafera sa dolazeom stranicom 727,
pokaziva sledeeg okvira pokazuje na okvir 2 koji sadri stranicu 45. Sada
se izvrava politika asovnika. S obzirom da je bit upotrebe za stranicu 45
u okviru 2 jednak 1, ta stranica se ne zamenjuje. Umesto toga, bit upotrebe
1 Koncept opsega razmatra se u pododeljku Opseg zamene, dalje u tekstu.
G - 6Dodatak G / Algoritmi
n -1
*
*
*
str.9 str.19
b.u.=1 b.u.=1
Pokaziva na
sledei okvir
str.1
b.u.=1
Prvi okvir u
cirkularnom baferu
od okvira koji su
kandidati za zamenu
str.45 2
b.u.=0
str.191
str.222
b.u.=0 3
8 b.u.=0
str.33
str.556
b.u.=1
b.u.=0
str.67 str.13
4
7
b.u.=1 b.u.=0
6
str.9 str.19
b.u.=1 b.u.=1
*
*
str.1
b.u.=1
str.45 2
b.u.=0
str.191
str.222
b.u.=0 3
8 b.u.=0
str.33
str.727
b.u.=1
b.u.=1
str.67 str.13
4
7
b.u.=1 b.u.=0
6
-7
Slika G.3
sa
fiksiranim
dodeljivanjem
Na slici G.3 prikazani
su rezultati
eksperimenta koji su objavljeni u
[BAER80], gde se porede etiri algoritma o kojima smo govorili; pretpostavljeno
je broj okvira
dodeljen
procesu fiksiran.
Na slici
G.3je da
prikazani
su stranica
rezultati
eksperimenta
koji Rezultati
su objavljeni
6
su zasnovani na izvrenju 0,25 10 referenci u programu u jeziku FOR[BAER80],TRAN,
gde sekoristei
poredeveliinu
etiri algoritma
kojima
smojegovorili;
pretpostavljeno
stranice od o256
rei. Baer
izvrio eksperiment
dodeljivanjem
10, 12 i 14
okvira. Razlike
izmeu
etiri politike
su
da je broj saokvira
stranica6, 8,
dodeljen
procesu
fiksiran.
Rezultati
su zasnovani
n
najvee na malim dodeljivanjima, gde je bilo loije od optimalnog za faktor
6
izvrenju 0,25
210puta.
referenci
u programu
u efikasno,
jeziku FORTRAN,
vie od
Da bi sistem
funkcionisao
eleli bismo dakoristei
budemo veliin
desno od kolena krive (gde je malo greaka stranica) dok u isto vreme odrstranice od 256 rei. Baer je izvrio eksperiment sa dodeljivanjem 6, 8, 10, 12 i 1
avamo malo dodeljivanje okvira (levo od kolena krive). Ta dva okgranienja ukazuju
da bietiri
poeljan
nain rada
bio na kolenu
krive. dodeljivanjima, gde
okvira. Razlike
izmeu
politike
su najvee
na malim
identinizarezultati
[FINK88],
opetsistem
pokazujui
bilo loije odGotovo
optimalnog
faktorobjavljeni
vie odsu2u puta.
Da bi
funkcionisa
maksimalno rasipanje od oko 2 puta. Finkelov pristup je bio da simu-
efikasno, eleli
bismo
da budemo
od kolena
(gde
je malo
lira efekte
razliitih
politika nadesno
sintetizovanom
nizukrive
referenci
stranica
od greak
10000 referenci, odabranih iz virtuelnog prostora od 100 stranica. Da bi
stranica) dok
u isto vreme odravamo malo dodeljivanje okvira (levo od kolen
se aproksimirali efekti principa lokalnosti, uzeta je eksponencijalna raspokrive). Ta dva okgranienja ukazuju da bi poeljan nain rada bio na kolenu krive.
G - 8Dodatak G / Algoritmi
Sluajno
Taj algoritam uzima na sluaj stranicu za zamenu. Moemo o njemu da
razmiljamo kao o minimalnom zahtevu. Svaki algoritam koji ne uspe da
donese poboljanje u odnosu na sluajnu zamenu je sasvim jasno nepoeljan.
-9
G - 10Dodatak G / Algoritmi
Reference
BANS04 Bansal, S., and Dharmendra, S. CAR: Clock with Adaptive
Replacement. Proceedings, USENIX File and Storage Technologies
(FAST), 2004.
MEGI03 Megiddo, N., and Dharmendra, S. One up on LRU. ;login,
August 2003.
MEGI04 Megiddo, N., and Dharmendra, S. Outperforming LRU with an
Adaptive Replacement Cache Algorithm. IEEE Computer Magazine,
April 2004.
Dodatak H
Rekurzivne procedure
William Stallings
H.1 REKURZIJA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
H.2 PREDSTAVLJANJE STABLA AKTIVACIJE . . . . . . . . . . . . . . . 4
Fibonaccijevi brojevi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Ackermannova funkcija . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
H.3 IMPLEMENTACIJA STEKA . . . . . . . . . . . . . . . . . . . . . . . 11
H.4 REKURZIJA I ITERACIJA . . . . . . . . . . . . . . . . . . . . . . . . 15
Dopuna knjige
Organizacija i arhitektura raunara
Prevod devetog izdanja
CET 2012. god.
ISBN: 978-86-7991-361-6
CET
H.1 REKURZIJA
Jedan od klasinih primera rekurzije je funkcija faktorijel. Faktorijel
pozitivnog celog broja se rauna kao taj ceo broj pomnoen svim celim
brojevima manjim od njega, ukljuujui i 1. Na primer, faktorijel(5) je isto
to i 54321, a faktorijel(3) je 321. Sad razmotrite sledee: pretpostavite da elite da izraunate faktorijel od 27, a da ve znate vrednost faktorijel(26). Tada ne morate da raunate 2726251. Umesto toga, treba
samo da izraunate 27 faktorijel(26). Slino tome, ako znate vrednost
faktorijel(53), tada se vrednost faktorijel(54) rauna kao faktorijel(54) =
54factorijel(53).
-3
/* found */
/* not found */
Imena
parametara
-5
Povratna
vrednost
Sve ovo trebalo bi da postane jasno kada budemo ispitali sledea dva
primera.
Sve ovo trebalo bi da postane jasno kada budemo ispitali sledea dva primera.
Fibonaccijevi brojevi
Fibonaccijevi brojevi se definiu na sledei nain:
Fib(k) = Fib(k l) + Fib(k 2 );
Fib(2) = 1;
Fib(l) = 1;
Dakle, svaki Fibonaccijev broj jeste zbir prethodna dva broja. Pokazalo
se da se Fibonaccijevi nizovi pojavljuju u mnogim kontekstima u prirodi.
Poetak niza je sledei:
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987
Evo rekurzivnog programa za Fibonaccijev niz:
int function fib(n)
{
if (n == 1 || n == 2)
return 1;
else
return fib(n-1) + fib(n-2);
}
H.2 Primeri
rekurzije
Slika Slika
H.2 Primeri
rekurzije
H-7
-7
sluaju
(evima) induktivne
definicije.
Prema
tome,
Fib(2)kae
odmah
Ako zamenimo
5 u Fib(5) sa
n, onda nam
stablo
aktivacije
da vraa vr
je Fib(n) funkcija Fib(n 1) i Fib(n 2). Listovi stabla aktivacije odgovaEvo odgovarajueg
raju osnovnom
sluaju (evima) praenja
induktivneizvrenja:
definicije. Prema tome, Fib(2)
odmah vraa vrednost 1.
Evo odgovarajueg praenja izvrenja:
Entering: FIB , Argument list: (5)
Entering: FIB , Argument list: (4)
Entering: FIB , Argument list: (3)
Entering: FIB , Argument list: (2)
Exiting: FIB , Value: 1
Entering: FIB , Argument list:. (1)
Exiting: FIB , Value: 1
Exiting: FIB , Value: 2
Entering: FIB , Argument list: (2)
Exiting: FIB , Value: 1
Exiting: FIB , Value: 3
Entering: FIB , Argument list: (3)
Entering: FIB , Argument list: (2)
Exiting: FIB , Value: 1
Entering: FIB , Argument list: (1)
Exiting: FIB , Value: 1
Exiting: FIB , Value: 2
Exiting: FIB , Value: 5
Na slici H.3a ponovljena je slika H.2a, prikazujui sekvencu u kojoj se
poseuju zapisi aktivacije. To je prvi prelaz po dubini stabla, sa sekvencom
sa leva na
svakomponovljena
nivou.
Nadesno
slicinaH.3a
je slika H.2a, prikazujui sekvencu
Primeri rekurzije:
trag izvrenja
SlikaSlika
H.3H.3
Primeri
rekurzije:
trag izvrenja
H9
-9
Ackermannova funkcija
Zanimljivija rekurzivna funkcija je varljivo jednostavna Ackermannova
funkcija:
U ovom sluaju, funkcija se poziva rekurzivno, ali se pored toga funkcija pojavljuje kao argument unutar rekurzivne upotrebe funkcije. Vrednost
te funkicije raste veoma brzo, ak i za male ulaze, pa ak i kada porast
rezultuje samo od sabiranja 1. Na primer, A(4, 2) sadri 19729 decimalnih
cifara.
Da bismo razjasnili rad te funkcije, oznaavamo svaki rekurzivan poziv
jedinstvenim indeksom. U svakom sluaju, to je ista funkcija; indeksi samo
omoguavaju da se lake prati ta se deava:
Na slici H.2b prikazuje se stablo aktivacije za ack(2, 1), koje ima sledee praenje izvrenja:
Dodatak H
procedureH
H/ Rekurzivne
10
- 11
Nekiodod
redova
u praenju
izvrenja
su oznaeni,
u skladu
sa oznaka
Neki
redova
u praenju
izvrenja
su oznaeni,
u skladu sa
oznakama
na stablu aktivacije To je samo za potrebe ilustrovanja.
stabluNa
aktivacije
je samojeza
potrebeposeivanja
ilustrovanja.
slici H.3bTo
prikazana
sekvenca
zapisa aktivacije.
H.3IMPLEMENTACIJA STEKA
H.3
IMPLEMENTACIJA
skoro
uvek obuhvata upotrenu STEKA
steka. Svaki
parametar-1
pokaziva starog okvira
(pokazuje na prethodni okvir)
adresa povratka
(povratak u pozivajui program)
Steku su pridrueni pokaziva steka, koji pokazuje na trenutni vrh steka
i pokaziva okvira, koji pokazuje na polje pokazivaa starog okvira na gornjem okviru. Kada doe do poziva iz trenutnog programa, stvara se novi
okvir pomou:
1. Stavljanja adrese pozivajueg programa na stek.
2. Stavljanja pokazivaa trenutnog okvira na ste.
3. Stavljanja svih parametara koji treba da se proslede pozvanom programu na stek.
- 13
stari FP
povratak
stari FP
povratak
stari FP
stari FP
stari FP
stari FP
povratak
povratak
povratak
povratak
stari FP
stari FP
stari FP
stari FP
povratak
povratak
povratak
povratak
stari FP
stari FP
stari FP
stari FP
stari FP
povratak
povratak
povratak
povratak
povratak
SP = pokaziva steka
FP = pokaziva okvira
H 14
- 15
nfactorial *= n;
return nfactorial;
}
Da bi se rekurzivno izraunao faktorijel(n), potrebno je stvaranje n primeraka varijable na upravljakom steku i n poziva i povrataka, to prouzrokuje n stvaranja i unitenja okvira steka. U iterativnom reenju, postoji
jedna varijabla i stvara se samo jedan okvir steka.
/* found */
/* not found */
/* found */
low = mid + 1;
}
return -(first);
/* not found */
Iterativni algoritam zahteva dve privremene varijable, a ak i uz poznavanje algoritma tee je razumeti proces jednostavnim pregledom, mada su
dva algoritma dosta slini u svojim koracima.
U tabeli H.1 date su razlike izmeu recurzije i iteracije.
- 17
Reference
HAYN95 Haynes, S. Explaining Recursion to the Unsophisticated.
SIGSCE Bulletin, September 1995.
MCCR87 McCracken, D. Ruminations on Computer
Curricula. Communications of the ACM, January 1987.
Science
Osobina
Ponavljanje
Petlja iteracije
Rekurzivna procedura
Izvrava isti blok koda
ponavljajui ga, da bi se
dobio rezultat; signalizuje
nameru da ponavlja
pozivajui samu sebe.
Da bi garantovala da e
se zavriti, rekurzivna
funkcija zahteva osnovni
sluaj koji prouzrokuje da
funkcija prestane da se
ponaa rekurzivno.
Trenutno stanje se
prosledjuje u vidu
parametara.
Dodatak I
Jo o protonoj obradi instrukcija
William Stallings
I.1 TABELE PROTONE OBRADE ZA REZERVACIJU . . . . . . . . . . 2
Tabele rezervacije za dinamiku protonu obradu . . . . . . . . . . . . . 2
Primer protone obrade instrukcije . . . . . . . . . . . . . . . . . . . . . 8
I.2 BAFERI ZA PREUREIVANJE . . . . . . . . . . . . . . . . . . . . . 13
Kompletiranje u redosledu . . . . . . . . . . . . . . . . . . . . . . . . . 13
Kompletiranje van redosleda . . . . . . . . . . . . . . . . . . . . . . . . 15
I.3 TOMASULOV ALGORITAM . . . . . . . . . . . . . . . . . . . . . . . 18
I.4 SEMAFOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Rad semafora . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Primer semafora . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Dopuna knjige
Organizacija i arhitektura raunara
Prevod devetog izdanja
CET 2012. god.
ISBN: 978-86-7991-361-6
Prevod sa engleskog: Dr Radomir Jankovi
CET
-3
Izlaz X
Ulaz
Izlaz Y
Slika I.2
Sudari
kod zabranjenih
kanjenja
2 i25i u5 korienju
Slika
I.2 Sudari
kod zabranjenih
kanjenja
u korienjuprotone
protone obrade
obrade na slici I.1 za funkciju X
na slici I.1 za funkciju X
Kanjenja 1, 3, 6 su dozvoljena. Bilo koje kanjenje vee od 7 je sasvim jasno
-5
ciklus se
ponavlja
ciklus se ponavlja
Donoenje instrukcije 20 ns
Dekodovanje instrukcije 3 ns
Generisanje adrese 4 ns
Donoenje operanda 20 ns
Izvravanje 5 ns
Skladitenje operanda 16 ns
-7
Na slici I.3 ilustrovani su ciklusi kanjenja za na primer koji ne prouzrokuju sudare. Na primer, sa slike se vidi da su uzastopna zapoinjanja
novih zadataka razdvojena sa jednim i sa osam ciklusa naizmenino.
Donoenje.instr.
Dekodovanje.instr.
Generisanje adrese
Dono.operanda
Izvrenje
Skladitenje oper.
Auriranje PC
Memorijska OP
Dekodovanje.instr.
Generisanje adrese
Izvrenje
Auriranje PC
Slika
I.5 Tabela
Tabelarezervacije
rezervacije
za protonu
obradu
instrukcije
Slika I.5
za protonu
obradu
instrukcije
1. Pomerite vektor sudara ulevo za jednu poziciju, umeui 0 na kranju desnu
1. Pomerite vektor sudara ulevo za jednu poziciju, umeui 0 na kranju
poziciju.
Svako
1-bitno
pomeranje
odgovaraodgovara
poveavanju
kanjenja
za 1.
desnu
poziciju.
Svako
1-bitno pomeranje
poveavanju
kanjenja za 1.
2. Nastavite sa pomeranjem dok se bit 0 ne pojavi sa levog kraja. Kada se bit 0
2. Nastavite sa pomeranjem dok se bit 0 ne pojavi sa levog kraja. Kada se
0 pojavi
posle p pomeranja,
to znai
da je p dozvoljeno
kanjenje.
pojavi bit
posle
p pomeranja,
to znai da
je p dozvoljeno
kanjenje.
3. Rezultujui
vektor
sudara
predstavljasudare
sudare koji
bitibiti
prouzroko3. Rezultujui
vektor
sudara
predstavlja
kojimogu
mogu
prouzrokovani
vani instrukcijom koja se trenutno nalazi u protonoj obradi. Originalni
vektor sudara
predstavlja
kojiumogu
biti prouzrokovani
instruk- vektor
instrukcijom
koja se
trenutnosudare
nalazi
protonoj
obradi. Originalni
cijom koju sada umeemo u protonu obradu. Da bismo predstavili sve
sudaramogunosti
predstavljasudara,
sudare koji mogu biti prouzrokovani instrukcijom koju sada
stvaramo
novo stanje
stavljajui
po bitovima
poetni
vektor sudara
u
umeemo
u protonu
obradu.
Da bismo
predstavili
sve mogunosti
sudara,
ILI funkciju sa pomerakim registrom.
I-9
-9
Memorijska OP
Dekodovanje instr.
Generisanje adr.
Izvrenje
Auriranje PC
Vektor sudara = 011010
(a) Tabela rezervacije
- 11
Vreme
Memorijska OP
Dekodovanje instr.
Generisanje adr.
Izvrenje
Auriranje PC
Vektor sudara = 0011010
(a) Tabela rezervacije
Slika
I.7 Tabela
rezervacije
i dijagram
prelaza obradu
stanja inSlika I.7 Tabela
rezervacije
i dijagram
prelaza
stanja za protonu
strukcije
sa umetnutim
kanjenjem
za protonu
obradu
instrukcije
sa umetnutim kanjenjem
I 12
I.2BAFERI ZA PREUREIVANJE
Kao to je pomenuto u poglavlju 14, uobiajena superskalarna tehnika da se podri kompletiranje van redosleda je bafer za preureivanje
[SMIT88]. Bafer za preureivanje je privremeno skladite za rezultate kompletirane van redosleda kojim su oni predati registarskoj datoteci u redosledu programa.
Da bismo objasnili rad bafera za preureivanje, treba najpre da razmotrimo tehniku koja podrava kompletiranje u redosledu, a koja je poznata
kao pomeraki registar rezultata.
Kompletiranje u redosledu
Kod kompletiranja u redosledu, instrukcija se rasporeuje i dozvoljava
joj se da menja stanje maine (vrednosti registara, stanje prekida) samo ako
nijedan prethodna instrukcija nije prourokovala uslov prekida. To ogranienje osigurava da instrukcija nee biti povuena sve dok prethodne instrukcije ne kompletiraju sve promene u registarskoj datoteci.
Procesor upravlja upisivanje rezultata u registre pomou pomerakog
registra rezultata.Pomeraki registar rezultata je tabela sa toliko ulaza
(redova) koliko ima stepena u najduoj protonoj obradi (slika I.8). Svaki
ulaz, ako je vaei, odnosi se na jednu instrukciju i sastoji se od etiri polja:
Izvor funkcionalne jedinice: funkcionalna jedinica koja e obezbediti
rezultat
Registar odredita: registar odredita za rezultat
Bit validnosti: pokazuje koji od ulaza trenutno sadri validnu informaciju
Programski broja: lokacija instrukcije
Registar
odredita
Bit
Programski
validnosti
broja
Pravac kretanja
Stepen
- 13
Kompletiranje
redosleda
pomerakom
registru van
rezultata
u vreme kada se izdaje. Ako je bit validnosti stepena
Bafer zatada
preureivanje
se zadrava
koristi dadopodri
kompletiranje
redo- i se
i ve postavljen,
se instrukcija
sledeeg
perioda takta,van
a stepen
sleda zadravanjem kompletiranih instrukcija dok se rezultati ne poalju
u logiki ispravnom redosledu. Na slici I.9a prikazana je organizacija za
ovakav pristup. Modifikovani pomeraki
I 14 registar rezultata se i dalje koristi,
ali sada obezbeuje ulaz za bafer za preureivanje. Rezultati iz kompletirane instrukcije takoe obezbeuju ulaz u bafer za preureivanje. Aurira-
- 15
Izvor podataka
ka funkcionalnim
jedinicama
Registarska
datoteka
Pomeraki
registar
rezutata
Bafer za
preureenje
Magistrala
rezultata
Bit
valid.
Tag
Pravac
kretanja
Bit
valid.
Programski broja
Glava
Rep
Bafer za preureenje
(b) Bafer
zaI.9
preureenje
i pridrueni
pomeraki
registar rezultata
Slika
Implementacija
bafera za
preureenje
I.3TOMASULOV ALGORITAM
Tomasulov algoritam je razvijen za jedinicu za rad u pokretnom zarezu
sistema IBM 360/91 [TOMA67]. Kasnije se koristio za vie maina IBM
360/370, PowerPC i druge procesore. Algoritam minimizuje RAW hazarde
prativi kada su raspoloivi operandi za instrukcije. On takoe minimizuje
i WAW i WAR hazarde, pomou preimenovanja registara da bi se otklonile
vetake zavisnosti i korienjem bafera, poznatih kao stanice rezervacije, koji
omoguavaju podacima da se privremeno skladite, ime se eliminie potreba
da se ita iz registarske datoteke, jednom kada su podaci raspoloivi.
Stanice rezervacije donose i skladite operande instrukcija im oni budu
raspoloivi. Operandi izvora pokazuju na registarsku datoteku ili na druge
stanice rezervacije. Svaka stanica rezervacije odgovara po jednoj instrukciji.
Jednom kada su svi operandi izvora raspoloivi, instrukcija se alje na izvrenje, pod uslovom da je funkcionalna jedinica takoe raspoloiva. Kada se
izvrenje kompletira, rezultat se stavlja u bafer u stanici rezervacije. Prema
tome, funkcionalna jedinica je slobodna za izvrenje druge instrukcije.
Stanica rezervacije zatim alje rezultat registarskoj datoteci i svakoj drugoj stanici rezervacije koja eka na taj rezultat. WAW hazardi su opslueni
zato to samo poslednja instrukcija (u redosledu programa) stvarno upisuje
u registre. Drugi rezultati se stavljaju u bafere u stanicama rezervacije i
konano alju svim instrukcija koje ekaju na te rezultate. WAR hazardi su
opslueni zato to stanice rezervacije mogu da dou do operanada izvora
iz registarske datoteke ili iz drugih stanica rezervacije (drugim reima, iz
druge instrukcije). U Tomasulovom algoritmu, upravljaka logika je raspodceljena izmeu stanica rezervacije.
Iz
memorije
Baferi u pokret.
zarezu (FLB)
Kontrola
Stek
operanada u
pokretnom
zarezu
(FLOS)
Registri u pokr.
zarezu (FLR)
Dekoder
Kontrola
FLB magistrala
Ponor
Ponor
Ponor
Tag
Tag
Tag
Izvor
Izvor
Izvor
Kon.
Kon.
Kon.
Stanice
rezervacije
Stanice
rezervacije
Tagovi
Skladite
baf.podataka
SDB
Ka memoriji
FLR magistrala
CDB
Tag
Tag
Tag
- 17
Tag
Tag
Ponor
Ponor
Tag
Tag
Izvor
Izvor
Kon.
Kon.
Mnoenje/
delenje
Sabira
Rezultat
Rezultat
Slika I.10
Osnovna
struktura
jedinice
za radzau rad
pokretnom
zarezu
koja koristi
Slika
I.10 Osnovna
struktura
jedinice
u pokretnom
zarezu
koja koristi Tomasulov algoritam
Tomasulov algoritam
Primer
organizacije
Tomasulov
algoritam
prikazan
na slici
Primer
organizacije
za za
Tomasulov
algoritam
prikazan
je naje slici
I.10.I.10.
To je
To je organizacija prvobitne implementacije jedinice za rad u pokretnom
organizacija
prvobitneIBM
implementacije
jedinice za rad u pokretnom zarezu raunara
zarezu raunara
360/91.
Izdavanje:
Procesor
odreuje kojoj
staniciodrezervacije
da se
izda
donose
iz memorije
za instrukcije.
Za razliku
jednostavnog
skalarnog
instrukcija, zasnovano na vrsti funkcionalne jedinice koju ona zahprocesora,
e verovarno
donesene urezervacije.
grupama odInstrukcije
dve ili vie
teva i instrukcije
raspoloivosti
prostora biti
u jedinicama
mogu da se izdaju stanicama rezervacije bez obzira na to da li su
istovremeno.
njihovi operandi raspoloivi, ili to nisu. Ako operand nije odmah rasI 19 registara, to moe biti zato to vredpoloiv da se proita iz datoteke
Izdavanje: Procesor odreuje kojoj stanici rezervacije da se izda instrukcija,
zasnovano na vrsti funkcionalne jedinice koju ona zahteva i raspoloivosti
- 19
- 21
Sabira
Zauz.Tag Podatak
Da
Da
Sabira
Mno./Del.
Zauz.Tag Podatak
Da
Da
Da
Sabira
Mno./Del.
Zauz.Tag Podatak
Da
Da
Da
Sabira
Mno./Del.
Zauz.Tag Podatak
Da
Da
Da
Zauz.Tag Podatak
Da
Sabira
Mno./Del.
Da
Sabira
Mno./Del.
Zauz.Tag Podatak
Da
I.4SEMAFOR
Semafor je tehnika dinamikog rasporeivanja instrukcija zasnovana na
hardveru, koja se koristi kao alternativa preimenovanju registara, da bi se
postigla efikasnost protone obrade. U sutini, semafor je knjigovodstvena
tehnika koja instrukcijama doputa da se izvravaju kad god nisu zavisne
od prethodnih instrukcija i kada nema strukturnih hazarda. Ta tehnika,
poznata i kao Thorntonov algoritam, prvobitno je razvijena za CDC 6600
[THORN64, THORN80]. Varijacije na tehniku semafora su implementirane na izvesnom broju maina.
Donoenje
Instrukcije
F
Dekodovanje D
Semafor
Izdavanje
I
Izvrenje
E
Izvrenje
E
Upis
natrag
W
Izvrenje
E
Izvrenje
E
Upis
natrag
W
Izvrenje
E
Izvrenje
E
Upis
natrag
W
Slika I.12
I.12 Blok
u stilu
CDC
6600
Slika
Blok dijagram
dijagramprocesora
procesora
u stilu
CDC
6600
sliciI.12
I.12jejeblok
blok dijagram
dijagram koji
koji ilustruje
NaNa
slici
ilustruje ulogu
ulogusemafora
semaforau uorganizaorganizaciji
ciji procesora. Pretpostavljamo jednu protonu obradu instrukcija sa stepeprocesora.
Pretpostavljamo
jednu protonu
obradu
instrukcija
sa stepenima
nima za
donoenje, dekodovanje
i izdavanje
instrukcija.
Ostatak
protone za
obrade je super-skalarna arhitektura sa paralelnim protonim obradama za
donoenje, dekodovanje i izdavanje instrukcija. Ostatak protone obrade je superrazliite funkcionalne jedinice i/ili ponovljene funkcionalne jedinice, gde
svakaarhitektura
paralelna protona
obra-da
ukljuujeobradama
jedan ili vie
i
skalarna
sa paralelnim
protonim
za stepena
razliiteizvrenja
funkcionalne
stepen za upisivanje natrag. Semafor je centralna jedinica koja razmenjuje
jedinice
i/ili ponovljene
funkcionalne
jedinice,
gde svaka
paralelna
informacije
sa stepenom
za izdavanje
i stepenima
za izvrenje.
Onprotona
je takoeobrau interakciji sa registarskom datotekom.
da ukljuuje jedan ili vie stepena izvrenja i stepen za upisivanje natrag. Semafor
je centralna jedinica koja razmenjuje informacije sa stepenom za izdavanje i
stepenima za izvrenje. On je takoe u interakciji sa registarskom datotekom.
Rad semafora
Na semafor moe da se gleda kao da se sastoji od dve tabele, jedne sa ulazom za
- 23
Rad semafora
Na semafor moe da se gleda kao da se sastoji od dve tabele, jedne sa
ulazom za svaku funkcionalnu jedinicu i druge sa ulazom za svaki registar.
Svaki ulaz za funkcionalnu jedinicu pokazuje da li postoji instrukcija koja
eka za funkcionalnu jedinicu i koja je to instrukcija. Ulaz takoe pokazuje
koji su registri rezervisani od te funkcionalne jedinice za ulaz i da li su
registri trenutno raspoloivi za tu instrukciju. Svaki registarski ulaz kae
koja funkcionalna jedinica je rezervisala taj registar kao izlaz, ako ima
takvih. Kako se donosi svaka nova instrukcija, uslovi u trenutku izdavanja
se postavljaju na semaforu. Ako se ne zahteva ekanje, izvrenje instrukcije
poinje odmah, pod kontrolom funkcionalne jedinice. Ako se zahteva ekanje (na primer, ulazni operand jo nije raspoloiv u registarskoj datoteci),
semafor upravlja zadravanjem i, kada je funkcionalna jedinica spremna,
dozvoljava joj da pone svoje izvrenje.
Sa take gledita instrukcije, izvrenje se odvija na sledei nain
[THOR70]:
1. Proverava se raspoloivost funkcionalne jedinice i registra rezultata.
Ako je bilo koje od ta dva rezervisano, instrukcija se ne izdaje dok rezervisani resursi ne postanu raspoloivi. To je hazard resursa ili WAW
hazard, zavisno od toga gde je dolo do konflikta. Nove rezervacije se
zaustavljaju. Evo primera konflikta funkcionalne jedinice:
R6 R1 + R2
R5 R3 + R4
Obe instrukcije koriste funkcionalnu jedinicu za sabiranje, to je situacija u kojoj druga instrukcija mora da eka dok se prva instrukcija
kompletira na toj funkcionalnoj jedinici. Meutim, ako postoji vie sabirakih jedinica, instrukcije mogu da nastave paralelno. Evo primera
konflikta na registru rezultata:
R6 R1 + R2
R6 R4 R5
Obe instrukcije pozivaju registar R6 za rezultat, pa zato druga instrukcija mora da eka dok se prva ne kompletira.
U ovom primeru, WAR konflikt na R4 je direktan rezultat RAW konflikta na R3. S obzirom na to da se instrukcije izdaju u susednim ciklusima i da je funkcija sabiranja mnogo bra od delenja ili mnoenja,
sabiranje je obavljeno i spremno za ulaz u registar rezultata R4 pre
poetka mnoenja. RAF konflikt na R3 prouzrokuje da se mnoenje
zadrava dok ulazni operand ne postane spreman. To zadrava i ulaz
R4 u jedinicu za mnoenje. WAR konflikti se razreavaju zadravanjem
rezultata u funkcionalnoj jedinici dok registar ne postane raspoloiv.
Upravljanje pomou semafora na taj nain usmerava funkcionalnu jedinicu u zapoinjanju, dobijanju operanada i skladitenju rezultata. Svaka
jedinica, jednom kada pone, nastavlja nezavisno sve dok se ne proizvede
rezultat. Jedinica onda alje signal semaforu, zahtevajui dozvolu da izda
svoje rezultate registru rezultata. Semafor odreuje kada je putanja do regi-
- 25
Primer semafora
Sada predstavljamo primer prilagoen na osnovu [SMIT89]. Pretpostavite organizaciju protone obrade sa tri stepena izvrenja. Razmotrite
sledei deo programa:
R1 (Y) Napuni registar R1 iz memorijske lokacije Y
R2 (Z) Napuni registar R2 iz memorijske lokacije Z
R3 R1 +f R2 Saberi u pokr.zarezu R1 i R2; stavi u R3
(X) R3 Stavi rezultat u memorijsku lokaciju X
R4 (B) Napuni registar R4 iz memorijske lokacije B
R5 (C) Napuni registar R5 iz memorijske lokacije C
R6 R4 *f R5 Pomnoi u pokr.zarezu R4 i R5; stavi u R6
(A) R6 Stavi rezultat u memorijsku lokaciju A
Na slici I.13a prikazana je direktna implementacija protone obrade
koja ne pretpostavlja nikakve paralelne jedinice za izvrenje i nikakve pokuaje da se zaobiu hazardi. Na dijagramu se preprostavlja da instrukcije
za uitavanje i upisivanje uzimaju po tri ciklusa izvrenja, kao i instrukcije
za mnoenje i sabiranje. Na slici I.13b prikazan je rezultat rasporeivanja
instrukcija u vreme kompilacije. Sa prikladno preureenim instrukcijama,
tedi se est ciklusa generatora takta. Najzad, na slici I.13c prikazan je rezultat korienja hardverskog semafora umesto kompajlera da bi se poboljala
performansa. U ovom primeru, tede se 4 ciklusa u poreenju sa originalnom protonom obradom.
- 27
Reference
DAVI71 Davidson, E. The Design and Control of Pipelined Function
Generators, Proceedings, IEEE Conference on Systems, Networks,
andComputers, January 1971.
DAVI75 Davidson, E.; Thomas, A.; Shar, L.; and Patel, J. Effective
Control for Pipelined Processors, IEEE COMPCON, March 1975.
HWAN93 Hwang, K. Advanced Computer Architecture. New York:
McGraw-Hill, 1993.
PATE76 Patel, J., and Davidson, E. Improving the Throughput of a
Pipeline by Insertion of Delays. Proceedings of the 3rd Annual
Symposium on Computer Architecture, 1976.
SHEN05 Shen, J., and Lipasti, M. Modern Processor Design: Fundamentals
of Superscalar Processors. New York: McGraw-Hill, 2005.
SMIT88 Smith, J., and Pleszcun, A. Implementing Precise Interrupts in
Pipelined Processors. IEEE Transactions on Computers, May 1988.
SMIT89 Smith, J. Dynamic Instruction Scheduling and the Astronautics
ZS-1. Computer, July 1989.
STON93 Stone, H. High-Performance Computer Architecture. Reading,
MA: Addison-Wesley, 1993.
THOR64 Thornton, J. Parallel Operation in the Control Data 6600.
Proceedings of the Fall Joint Computer Conference, 1964.
THOR70 Thornton, J. The Design of a Computer: The Control Data 6600.
Glenville, IL: Scott, Foreman, and Company, 1970.
THOR80 Thornton, J. The CDC 6600 Project. Annals of the History of
Computing, October 1980.
TOMA67 Tomasulo, R. An Efficient Algorithm for Exploiting Multiple
Arithmetic Units. IBM Journal, January 1967.D 8
Dodatak J
Tehnologija LTO
William Stallings
J.1 GENERACIJE LTO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
ip kertrid memorije . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Kompresija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
WORM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
ifrovanje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
J.2 FORMAT LTO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
J.3 RAD LTO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Dopuna knjige
Organizacija i arhitektura raunara
Prevod devetog izdanja
CET 2012. god.
ISBN: 978-86-7991-361-6
CET
J.1GENERACIJE LTO
Do sada je definisano est generacija LTO, od kojih su etiri implementirane u vreme pisanja ovog teksta. Tabela J.1 ponavlja tabelu 6.7. Na
slici J.1 ilustrovane su razlike izmeu generacija (vertikalne skale su logaritamske). Zapazite da svaka sledea generacija LTO ima dvostruko vei
kapacitet od prethodne, sa izuzetkom velikog skoka od LTO-5 na LTO-6.
Meutim, brzina prenosa podataka ne raste tako naglo. LTO-2 ima dvostruku brzinu prenosa LTO-1; LTO-3 ima dvostruku brzinu prenosa LTO-2.
Za sledee generacije, brzina prenosa se poveava faktorom od 1,5 od jedne
do druge generacije.
-3
LTO-2
LTO-3
LTO-4
LTO-5
LTO-6
LTO-7
LTO-8
Datum izlaenja
2000
2003
2005
2007
2010
TBA
TBA
TBA
Komprimovani
kapacitet
200 GB
400 GB
800 GB
1600 GB
3.2 TB
8 TB
16 TB
32 TB
Komprimovana
brzina prenosa
(MB/s)
40 MB/s 80 MB/s 160 MB/s 240 MB/s 280 MB/s 525 MB/s 788 MB/s 1.18 GB/s
Linearna
gustina
(bit/mm)
4880
7398
9638
13250
15142
Staza trake
384
512
704
896
1280
Duina trake
609 m
609 m
680 m
820 m
846 m
irina trake
(cm)
1,27
1,27
1,27
1,27
1,27
16
16
16
WORM?
Ne
Ne
Da
Da
Da
Da
Da
Da
ifrovanje
Capable?
Ne
Ne
Ne
Da
Da
Da
Da
Da
Partitioning?
Ne
Ne
Ne
Ne
Da
Da
Da
Da
Upisni elementi
J -3
Brzina prenosa
Kapacitet
CM = kertrid memorija
CM ip
CM ip
CM ip
CM ip
CM ip
CM ip
CM ip
CM ip
Kompresija Kompresija Kompresija Kompresija Kompresija Kompresija Kompresija Kompresija
WORM
WORM
WORM
WORM
WORM
WORM
ifrovanje ifrovanje ifrovanje ifrovanje ifrovanje
-5
Kompresija
Da bi se poveala gustina podataka, LTO sistemi koriste algoritam za
njihovu kompresiju koji je poznat kao kompresija toka podataka bez gubitaka (SLDC, engl. streaming lossless data compression). Taj algoritam je
kao standard odobrila meunarodna organizacija za standarde Ecma International [ECMA01].
U sutini, algoritam SLDC trai ponavljajue nizove od dva ili vie bajtova podataka. Informacije od duini (broj bajtova) i poziciji (pomeraj do
1023 pozicija bajtova) prvog takvog niza zamenjuju mesto sa narednom
kopijom ili kopijama istog takvog niza. Iznos kompresije je stoga veoma
promenljiv i zavisi od proriode podataka koji treba da se komprimuju.
WORM
Poevi od specifikacije LTO-3, LTO podrava opciju kertrida u koji se
upisuje jednom a ita mnogo puta (WORM, engl. Write Once Read Many).
Opciju WORM implementiraju algoritmi koji koriste informacije smetene
u LTO CM i koje su zapisane na medijumu traki u vreme proizvodnje.
Posebno,ROM deo CM ukljuuje oznaku koja pokazuje da je u pitanju
WORM kertrid. Servo uzorak, koji se kasnije opisuje, zapisan du celog
medijuma magnetne trake, sadri poseban indikator u Servo Manufacturer Word8 koji pokazuje da je medijum WORM tipa. U optim crtama,
WORM radi na sledei nain:
ifrovanje
Poevi od LTO-4, LTO ukljuuje sposobnost ifrovanja koja koristi
standard AES (engl. Advanced Encryption Standard). LTO je opciona hardverska osobina implemetirana u ureaju trake. Ureaju moraju da se predstave kljuevi iz spoljanjeg sistema za upravljanje kljuevima. Upravljanje
kljuevima nije deo specifikacije LTO.
-7
Traka podataka 3
Traka podataka 1
Prethodno
upisane
servo
trake
Traka podataka 0
Traka podataka 2
Osmoelementna
komponenta
glave za
itanje/upis
Zatitna
traka
Na slici J.2 ilustrovan je format trake LTO. Na slici se vidi cela irina
trake i deo njene duine. irina je podeljenja na sledee oblasti:
Na slici J.2 ilustrovan je format trake LTO. Na slici se vidi cela irina trake i deo
njene duine. irina je podeljenja na sledee oblasti:
Slika J.3 Deo trake podataka koji pokazuje sekvencu upisivanja LTO-1
Dodatak J / Tehnologija LTOJ
baferi pravca
-9
Slika J.3 Deo trake podataka koji pokazuje sekvencu upisivanja LTO-1
J.3svakRAD
Unutar
trake,LTO
svaki element za upisivanje upisuje izvestan broj susednih staza
naprednazad na nain koji se zove serpentina. Na slici J.3 ilustrovan je proces za
Reference
ECMA01 Ecma, International. Streaming Lossless Data
CompressionAlgorithm. Standard ECMA-321, June 2001.
http://www.ecmainternational.
Dodatak K
DDR SRAM
William Stallings
Dopuna knjige
Organizacija i arhitektura raunara
Prevod devetog izdanja
CET 2012. god.
ISBN: 978-86-7991-361-6
CET
DDR2
DDR3
2,5
1,8
1,5
Brzina podataka
eone magistrale
(Mb/s)
Bafer za pretprihvat
(bitovi)
-3
DDR2
SDRAM
Matrica
memorijskih elija
U/I
bafer
DDR1
SDRAM
Matrica
memorijskih elija
U/I
bafer
SDR
SDRAM
Matrica
memorijskih elija
U/I
bafer
Dodatak L
Protokoli i arhitekture protokola
William Stallings
L.1 UVOD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
L.2 ARHITEKTURA PROTOKOLA TCP/IP . . . . . . . . . . . . . . . . . 6
Slojevi TCP/IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
TCP/IP i UDP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Rad TCP/IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Aplikacije TCP/IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
L.3 ULOGA INTERNET PROTOKOLA . . . . . . . . . . . . . . . . . . . 17
L.4 IPv4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
L.5 IPv6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Zaglavlje IPv6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Zaglavlja proirenja IPv6 . . . . . . . . . . . . . . . . . . . . . . . . . . 24
L.6 ARHITEKTURA PROTOKOLA OSI . . . . . . . . . . . . . . . . . . . 29
Dopuna knjige
Organizacija i arhitektura raunara
Prevod devetog izdanja
CET 2012. god.
ISBN: 978-86-7991-361-6
Prevod sa engleskog: Dr Radomir Jankovi
CET
L.1UVOD
Kada raunari, terminali i/ili drugi ureaji za obradu podataka razmenjuju podatke, procedure koje se primenjuju mogu da budu prilino sloene. Zamislite, na primer, prenos datoteke izmeu dva raunara. Mora
da postoji putanja podataka izmeu dva raunara, direktna ili preko komunikacione mree. Ali to nije sve. Tipini zadaci koji moraju da se obave
ukljuuju sledee:
1. Izvorni sistem mora ili da aktivira direktnu komunikacionu putanju
podataka, ili da obavesti komunikacionu mreu o identitetu eljenog
odredinog sistema.
2. Izvorni sistem mora da sazna da li je odredini sistem spreman da primi
podatke.
3. Aplikacija za prenos datoteka na izvornom sistemu mora da sazna da
je program za upravljanje datotekama na odredinom sistemu spreman
da prihvati i uskladiti datoteku za tog posebnog korisnika.
4. Ako formati datoteka ili predstavljanja podataka na dva sistema nisu
kompatibilni, jedan ili drugi sistem mora da izvri funkciju prevoenja
formata.
Razmena informacija izmeu raunara u svrhu kooperativne akcije
uobiajeno se zove komunikacija raunara. Slino tome, kada su dva ili vie
raunara meusobno povezani preko komunikacione mree, skup takvih
raunara zove se raunarska mrea. S obzirom da to da se slian nivo saradnje zahteva i izmeu terminala i raunara, ti termini se esto koriste kada
su neki od komunicirajuih entiteta terminali.
-3
Prilikom raspravljanja o raunarskim komunikacijama i mreama raunara, dva glavna koncepta su:
Protokoli;
Arhitektura raunarskih komunikacija, ili arhitektura protokola.
Protokol se koristi za komunikaciju izmeu entiteta u razliitim sistemima. Termini entitet i sistem upotrebljavaju se u veoma optem smislu. Primeri entiteta su korisniki aplikacioni programi, paketi za prenos datoteka,
sistemi za upravljanje bazama podataka, sredstva za elektronsku potu i terminali. Primeri sistema su raunari, terminali i udaljeni senzori. Zapazite
da su u nekim sluajevima entitet i sistem u kome se on nalazi koegzistivni
(na primer terminali). U optem sluaju, entitet je bilo ta to je sposobno
da predaje ili prima informacije, a sistem je fiziki poseban objekt koji
sadri jedan ili vie entiteta. Da bi dva entiteta mogli uspeno da komuniciraju, oni moraju da govore istim jezikom. Ono to se komunicira, kako se
komunicira i kada se komunicira, mora da je u saglasnosti sa meusobno
usaglaenim dogovorima entiteta na koje se odnosi. Ti dogovori su protokol, koji se moe definisati kao skup pravila kojima se upravlja razmenom
podataka izmeu dva entiteta. Kljuni elementi protokola su:
Aplikacija
prenosa
datoteka
Modul za
komunikacione
usluge
Modul za
komunikacione
usluge
Modul za
pristup mrei
Logika
mrenog
interfejsa
Komunikaciona
mrea
Logika
mrenog
interfejsa
Modul za
pristup mrei
-5
-7
Fiziki sloj
Sloj za pristup mrei
Internet sloj
Transportni, ili sloj od hosta-do-hosta
Aplikacioni sloj
Fiziki sloj obuhvata fiziki interfejs izmeu ureaja za predaju podataka (na primer, radna stanica, raunar) i prenosnog medijuma ili mree.
Taj sloj se bavi specificiranjem karakteristika prenosnog medijuma, prirodom signala, brzinom podataka i slinim stvarima.
Sloj za pristup mrei bavi se razmenom podataka izmeu krajnjeg
sistema (server, radna stanica, itd.) i mree na koju je on prikljuen. Raunar koji alje mora da obezbedi mrei adresu odredinog raunara, tako da
mrea moe da usmeri podatke na odgovarajue odredite. Raunar koji
alje moe da poziva izvesne usluge, kao to je na primer prioritet, koje
moe da obezbedi mrea. Specifian softver koji se koristi u ovom sloju
zavisi od vrste mree koja se koristi; razvijeni su razliiti standardi za komutaciju kola, komutaciju paketa (na primer, prenos okvira), LAN-ove (na
primer Ethernet) i mnogi drugi.
-9
TCP i UDP
Za veinu aplikacija koje rade kao deo arhitekture protokola TCP/IP,
transportni sloj protokola je TCP. TCP obezbeuje pouzdanu konekciju za
prenos podataka izmeu aplikacija. Konekcija je, jednostavno reeno, privremeno logiko udruivanje dva entiteta u razliitim sistemima. Za vreme
trajanja konekcije svaki entitet vodi rauna o segmentima koji dolaze od
i idu ka drugom entitetu, kako bi se regulisao tok segmenata i preduzele
aktivnosti oporavka zbog izgubljenih ili oteenih segmenata.
Na slici L.2a prikazan je format zaglavlja za TCP, koji je minimalno 20
okteta, ili 160 bitova. Polja za izvorni port i odredini port identifikuju aplikacije na izvornom i odredinom sistemu koje koriste tu konekciju. Polja za
broj sekvence, broj potvrde i okvir obezbeuju upravljanje tokom i kontrolu
greaka. Kontrolni zbir jeste 16-bitni kd zasnovan na sadraju segmenta
koji se koristi da bi se otkrile greke u TCP segmentu.
Pored TCP, postoji jo jedan protokol transportnog nivoa koji je u uobiajenoj upotrebi kao deo niza TCP/IP protokola: UDP (User Datagram
Protocol). UDP ne garantuje isporuku, ouvanje sekvence ili zatitu od
dupliciranja. UDP omoguava procesu da alje poruke drugim procesima
uz minimalan mehanizam protokola. Neke aplikacije orijentisane na transakcije koriste UDP; jedan od takvih primera je SNMP (Simple Network
Management Protocol), standardni protokol za upravljanje mreom u TCP/
IP mreama. Obzirom na to da nema konekcije, UDP ima malo ta da radi.
U sutini, on dodaje IP-u sposobnost adresiranja porta. To se najbolje vidi
kada se ispituje zaglavlje UDP, prikazano na slici L.2b.
Izvorni port
Odredini port
20 okteta
Broj sekvence
Broj potvrde
Duina
zaglav.
Rezervisano
Markeri
Okvir
Kontrolni zbir
Pokaziva hitnosti
Opcije + punjenje
8 okteta
Izvorni port
Odredini port
Duina segmenta
Kontrolni zbir
Slika L.2
L.2 Zaglavlja
TCP
i UDP
Slika
Zaglavlja
TCP
i UDP
TCP/IP
RadRad
TCP/IP
Na sliciNa
L.3slici
prikazano
je kakojesukako
ti protokoli
konfigurisani
za komunikacije.
L.3 prikazano
su ti protokoli
konfigurisani
za komunika-Neka
Neka vrsta
za pristup
kaologika
to je logika
Ethernet,
korivrstacije.
protokola
za protokola
pristup mrei,
kaomrei,
to je
Ethernet,
koristi
se za
sti se za povezivanje raunara sa mreom. Taj protokol omoguava hostu
povezivanje raunara sa mreom. Taj protokol omoguava hostu da alje podatke
da alje podatke preko mree drugom hostu ili, u sluaju hosta na drugoj
preko
mree
hostu
ili, u sluajuu hosta
na drugoj
mrei, kai ruterima.
ruteru. IP se
mrei,
ka drugom
ruteru. IP
se implementira
svim krajnjim
sistemima
On radi kao
prenosilac
kojisistemima
pomera blok
podatakaOn
sa radi
jednog
preko koji
implementira
u svim
krajnjim
i ruterima.
kaohosta,
prenosilac
jednog ili vie rutera do drugog hosta.
pomera blok podataka sa jednog hosta, preko jednog ili vie rutera do drugog hosta.
L 10
Apl.Y
Apl.X
Apl.X
- 11
Apl.Y
Logika konekcija
(TCP konekcija)
Globalna internet
adresa
Mreni pristupni
protokol #1
Mrea 1
Adresa prikljune
take podmree
Ruter J
Fiziki
Logika konekcija
(na pr.virtuelno kolo)
Fiziki
Mreni pristupni
protokol #2
Mrea 2
Slika
TCP/IP
Slika L.3
L.3 Koncepti
Koncepti TCP/IP
TCP se implementira samo na krajnjim sistemima; on vodi rauna o
podataka
kojinasekrajnjim
prenose,sistemima;
da bi obezbedio
se svi ooni
pouzTCPblokovima
se implementira
samo
on vodidarauna
blokovima
dano isporue odgovarajuoj aplikaciji.
podataka koji se prenose, da bi obezbedio da se svi oni pouzdano isporue
Da bi komunikacija bila uspena, svaki entitet u celokupnom sistemu
odgovarajuoj aplikaciji.
mora da ima jedinstvenu adresu. U stvari, potrebna su dva nivoa adresiraDaSvaki
bi komunikacija
uspena,
entitet uglobalnu
celokupnom
sistemu
mora
nja.
host u mreibila
mora
da imasvaki
jedinstvenu
internet
adresu;
to jedinstvenu
podacima omoguava
da budu
isporueni
pravom
hostu. Tu
adresu
da ima
adresu. U stvari,
potrebna
su dva nivoa
adresiranja.
Svaki
host u
koristi
rutiranje
i isporuku.
aplikacija
hosta omoguava
mora da
mrei
moraIP
daza
ima
jedinstvenu
globalnuSvaka
internet
adresu; unutar
to podacima
ima adresu koja je jedinstvena unutar tog hosta; to omoguava protokolu
da budu
isporueni pravom
Tu adresu
koristi
IP za rutiranje
i isporuku.
od-hosta-do-hosta
(TCP)hostu.
da isporui
podatke
odgovarajuem
procesu.
Te
poslednje
adrese
poznate
kaoda
portovi.
Svaka
aplikacija
unutar
hosta su
mora
ima adresu koja je jedinstvena unutar tog
hosta; to omoguava protokolu od-hosta-do-hosta (TCP) da isporui podatke
odgovarajuem procesu. Te poslednje adrese poznate su kao portovi.
L -11
Aplikacioni
tok bajtova
TCP
segment
TCP
zaglavlje
IP
datagram
IP
zaglavlje
Paket
Nivoa mree
Mreno
zaglavlje
- 13
koja se zove zaglavlje TCP (slika L.2a), formirajui TCP segment. Upravljaku informaciju koristi entitet protokola TCP na hostu B. Primeri stavki
u tom zaglavlju ukljuuju sledee:
Odredini port: Kada TCP entitet u B prima segment, on mora da
zna kome podaci treba da se isporue.
Broj sekvence: TCP sekvencijalno numerie segmente koje alje odreenom odreditu, tako da ako oni pristiu van redosleda, TCP entitet
u B moe da ih preuredi.
Kontrolni zbir: TCP poiljaoca ukljuuje kd koji je funkcija sadraja
ostatka segmenta. TCP primaoca izvodi isti proraun i poredi rezultat sa dolaznim kodom. Do neslaganja dolazi ako je bilo neke greke
u prenosu.
Posle toga, TCP predaje svaki segment IP-u, sa instrukcijama da ih prenese u B. Ti segmenti moraju da se prenesu preko jedne ili vie mrea,
posredstvom jednog ili vie rutera. Ta operacija takoe zahteva upotrebu
upravljakih informacija. U skladu sa tim, IP dodaje zaglavlje sa upravljakim informacijama (slika L.5) svakom segmentu da bi formirao IP datagram. Primer stavke koja se nalazi u zaglavlju IP jeste adresa odredinog
hosta (u ovom primeru, B).
IHL
ECN
DS
20 okteta
Identifikacija
ivotni vek
Ukupna duina
Markeri
Protokol
Pomeraj fragmenta
Kontrolni zbir zaglavlja
Adresa izvora
Adresa odredita
Opcije + punjenje
DS
ECN
Oznaka toka
Sledee zaglavlje
40 okteta
Duina sadraja
Granica skoka
Adresa izvora
Adresa odredita
- 15
Najzad, svaki IP datagram se predstavlja sloju za pristup mrei radi prenosa preko prve mree u njegovom putovanju ka odreditu. Sloj za pristup
mrei dodaje svoje sopstveno zaglavlje, stvarajui paket, ili okvir. Paket se
prenosi preko mree do rutera J. Zaglavlje paketa sadri informacije koje
su mrei potrebne da bi prenela podatke preko mree. Primeri stavki koje
mogu da se nalaze u tom zaglavlju ukljuuju:
Mrenu adresu odredita: Mrea mora da zna kom prikljuenom ureaju paket treba da se isporui, u ovom sluaju ruteru J.
Zahtevi za sredstvima: Protokol za pristup mrei moe zahtevati upotrebu izvesnih mrenih sredstava, kao to je prioritet
Na ruteru J, zaglavlje paketa se skida i zagljavlje IP se ispituje. Na
osnovu informacije o adresi odredita u zaglavlju IP, IP modul u ruteru
usmerava datagram napolje u mreu 2 ka B. Da bi se to izvelo, datagram se
ponovo uveava zaglavljem za pristup mrei.
Kada se podaci prime u B, dolazi do obrnutog procesa. U svakom sloju,
uklanja se odgovarajue zaglavlje, a ostatak se prosleuje sledeem viem
sloju, sve dok se podaci prvobitnog korisnika ne isporue odredinom procesu.
Aplikacije TCP/IP
Izvestan broj aplikacija su standardizovane da bi radile nad TCP. Ovde
pominjemo tri najee.
Simple Mail Transfer Protocol (SMTP) obezbeuje osnovno sredstvo
za elektronsku potu. On predstavlja mehanizam za prenoenje poruka
izmeu odvojenih hostova. Svojstva SMTP ukljuuju potanske liste,
potvrde o prijuemu i prosleivanje. Protokol SMTP ne specificira nain
na koji poruke treba da se prave; zahteva se neko lokalno sredstvo za editovanje ili elektronsku potu. Jednom kada je poruka napravljena, SMTP je
- 17
Krajnji sistem Y
Ruter 1
LAN, WAN
ili link
od-take-do-take
Ruter 2
Aplikacija
Fiziki
Aplikacija
Fiziki
Mrea
Mrea
Fiziki
Fiziki
Fiziki
Fiziki
Radrutera,
rutera,kao
kaototo
prikazano
na slici
zavisi
od internet
proto-U
Rad
je je
prikazano
na slici
L.6,L.6,
zavisi
od internet
protokola.
kola.
U ovom
primeru,
Internet
(IP) protokola
niza TCP/IP
protokola
izvrovom
primeru,
Internet
Protokol
(IP)Protokol
niza TCP/IP
izvrava
tu funkciju.
ava tu funkciju. IP mora da bude implementira u svim krajnjim sistemima
na svim mreana, kao i u ruterima. Pored toga, svaki krajnji sistem mora
ruterima.
toga, svaki
krajnji iznad
sistemIPmora
ima kompatibilne
da imaPored
kompatibilne
protokole
da bida
uspeno
komunicirao.protokole
Ruteri
izmeu
da komunicirao.
imaju samo do
IP. izmeu moraju da imaju samo do IP.
iznad
IP da moraju
bi uspeno
Ruteri
IP mora da bude implementira u svim krajnjim sistemima na svim mreana, kao i u
L - 18
- 19
L.4IPv4
Ve decenijama, temelj arhitekture TCP/IP protokola bio je Internet
Protocol (IP), verzija 4. Na slici L.5a prikazan je format IP zaglavlja, koje
ima minimalno 20 okteta, ili 160 bitova. Njegova polja su sledea:
Verzija (4 bita): Pokazuje broj verzije, da bi se dozvolio razvoj protokola; vrednost je 4.
Duina Internet zaglavlja (IHL) (4 bita): Duina zaglavlja u 32-bitni
reima. Minimalna vrednost je pet, za minimalnu duinu zaglavlja
od 20 okteta.
DS/ECN (8 bitova): Pre uvoenja diferenciranih usluga, ovo polje je
bilo za vrstu usluge i odreivalo je parametre pouzdanosti, prvenstva,
kanjenja i propustljivosti. Takva interpretacija je sada zamenjena
novom . Prvih 6 bitova polja TOS se sada zovu polje DS (diferencirane usluge). Preostala 2 bita su rezervisana za polje ECN (eksplicitna notifikacija zaguenja).
- 21
L.5IPv6
1995. godine, organizacija Internet Engineering Task Force (IETF),
koja razvija standarde protokola za Internet, izdala je specifikaciju za sledeu generaciju IP, poznatu kao IPng. Ta specifikacija se 1996. godine
pretvorila u standard poznat kao IPv6. IPv6 prua vei broj funkcionalnih
poboljanja u odnosu na postojei IP (poznat kao IPv4), zato to je projektovan da se prilagodi sve veim brzinama dananjih mrea i meavini tokova
podataka, ukljuujui tu grafiku i video, koji su postali preovlajujui. Ali
ono to je bila pokretaka snaga za razvoj novog protokola jeste potreba
za vie adresa. IPv4 koristi 32-bitnu adresu da odredi izvor ili odredite. Sa
eksplozivnim porastom Interneta i privatnih mrea prikljuenih na Internet, ova duina adrese postala je nedovoljna da zadovolji sve sisteme kojima
- 23
su potrebne adrese. Kao to je prikazano na slici L.5b, IPv6 ukljuuje 128bitna adresna polja za izvor i odredite. Na kraju krajeva, oekuje se da sve
instalacije koje koriste TCP/IP preu sa trenutnog IP na IPv6, ali taj proces
e trajati mnogo godina, ako ne i decenija.
Zaglavlje IPv6
Zaglavlje IPv6 ima fiksnu duinu od 40 okteta i sastoji se od sledeih
polja (slika L.5b):
Verzija (4 bita): Broj verzije Internet Protokola; vrednost je 6.
DS/ECN (8 bitova): Pre uvoenja diferenciranih usluga, ovo polje
je bilo poznato kao polje za klasu saobraaja i bilo je rezervisano za
upotrebu od strane vorova koji alju i/ili rutera za prosleivanje da
bi se identifikovale i napravila razlika izmeu razliitih klasa ili prioriteta paketa IPv6. Prvih est bitova polja za klasu saobraaja se sada
zovu polje DS (diferencirane usluge). Preostala 2 bita su rezervisana
za polje ECN (eksplicitna notifikacija zaguenja).
Oznaka toka (20 bitova): Moe da je upotrebi host za oznaavanje
onih paketa za koje se zahteva specijalno rukovanje od strane rutera
unutar mree. Oznaavanje toka moe da pomogne rezervaciji
resursa i obradi saobraaja u realnom vremenu.
Duina korisnog tereta (16 bitova): Duina ostatka paketa IPv6, u
oktetima. Drugim reima, to je ukupna duina svih zaglavlja proirenja plus PDU transportnog nivoa.
Sledee zaglavlje (8 bitova): Identifikuje tip zaglavlja koje neposredno prati zaglavlje IPv6; to e biti ili zaglavlje proirenja IPv6 ili
zaglavlje vieg sloja, kao to je TCP ili UDP.
- 25
IPv6 zaglavlje
Zaglavlje opcija
skok-po-skok
Opciona
zaglavlja
proirenja
Zaglavlje rutiranja
Promenljivo
Promenljivo
Zaglavlje fragmenta
Zaglavlje opcija
skok-po-skok
Zaglavlje TCP
Telo
paketa
IPv6
Aplikacioni podaci
Promenljivo
Promenljivo
Slika Slika
L.7 Paket
IPv6IPv6
sa zaglavljima
L.7 Paket
sa zaglavljimaproirenja
proirenja
(sadri segment TCP)
Zaglavlje za opcije skok-po-skok nosi opcione informacije koje, ako su
- 27
- 29
1ISO nije skraenica (u kom sluaju bi bilo IOS), nego re, izvedena iz grkog isos, to znai jednak.
Aplikacija
Prezentacija
Sesija
Transport
Mrea
Link podataka
Fiziki
- 31
Aplikacija
Prezentacija
Sesija
Transport
Aplikacija
Transport
(od-hostado-hosta)
Internet
Mrea
Pristup
mrei
Link
podataka
Fiziki
Fiziki
Poreenjearhitektura
arhitektura protokola
OSIOSI
TCP/IP
SlikaSlika
L.9L.9
Poreenje
protokola
TCP/IP
L 32
Dodatak M
ifrovanje
William Stallings
Dopuna knjige
Organizacija i arhitektura raunara
Prevod devetog izdanja
CET 2012. god.
ISBN: 978-86-7991-361-6
CET
M - 2Dodatak M / ifrovanje
U poglavlju 3 pozvali smo se na upotrebu ifrovanja u implementacijana
PCIe. U ovom dodatku daje se pregled te tehnike.
U nekim tehnikama kodovanja digitalnih podataka, dugaak niz binarnih nula ili jedinica u prenosu moe da degradira performansu sistema.
Takoe, druga svojstva prenosa, kao to su spektralne osobine, poboljavaju
se ako su podaci priblinije sluajni po prirodi, a ne konstantni ili ponavljajui. Tehnika koja se obino koristi za poboljavanje kvaliteta signala jeste
ifrovanje i deifrovanje. Proces ifrovanja tei da uini podatke sluajnijim.
Proces ifrovanja sastoji se od pomerakog registra sa povratnim spregama, a odgovarajui deifrator se sastoji od pomerakog registra sa spregama unapred. Primer je prikazan na slici M.1. U ovom primeru, ifrovani
niz podataka moe da se izrazi na sledei nain:
Bm = Am Bm3 Bm5
gde oznaava operaicu ekskluzivno-ili. Pomeraki registar je inicijalizovan da sadri sve nule. Deifrovan niz je:
Cm = Bm Bm3 Bm5
=
(Am Bm3 Bm5) Bm3 Bm5
= Am
Dodatak M / ifrovanjeM
(a) ifrator
-3
(b) Deifrator
1 Koristimokonvenciju
konvenciju dada
je krajnji
bit sa bit
leve sa
strane
prvi
bit kojiprvi
ulazibit
u ifrator;
premautome
bitovi mogu
da tome
se
Koristimo
je krajnji
leve
strane
koji ulazi
ifrator;
prema
obelee A0A1A2.. Slino tome, polinom se pretvara u niz bitova sa leva na desno. Pollinom B0 + B1X + B2X2 + se
bitovi
mogu da se obelee A0A1A2.. Slino tome, polinom se pretvara u niz bitova sa leva na
predstavlja kao B B B
desno. Pollinom 0B01 +2 B1X + B2X2 + se predstavlja kao B0B1B2
M - 4Dodatak M / ifrovanje
(a) ifrovanje
(b) Deifrovanje
Slika M.2 Primer ifrovanja sa P(X) = 1 + X3 + X5
Za emu
MLT-3,
koja seifrovanja
koristi za 100BASE-TX,
je:
X5
Slika
M.2
Primer
sa P(X) = 1jednaina
+ X3 +ifrovanja
Bm = Am X9 X11
U ovom sluaju, pomeraki registar se sastoji od devet elemenata, a kori-
Za emu
kojakao
se5-elementni
koristi za registar
100BASE-TX,
jednaina
sti seMLT-3,
na isti nain
na slici M.1.
Meutim, ifrovanja
u sluaju je:
MLT-3, u pomeraki registar ne ulazi izlaz Bm. Umesto toga, posle svakog
prenosa bita, registar
pomera
Am zaX9pojednu
X11 jedinicu navie, a rezultat pretBmse =
hodne XOR operacije se unosi u prvu jedinicu. To moe da se izrazi kao:
U ovom Xsluaju,
registar
(t) = Xi1pomeraki
(t 1);
2 i 9 se sastoji od devet elemenata, a koristi se
i
X (t) = X (t 1) X (t 1)
9
11
a isti nain kao1 5-elementni
registar
na slici M.1. Meutim, u sluaju MLT-3, u
omeraki registar ne ulazi izlaz Bm. Umesto toga, posle svakog prenosa bita,
Dodatak M / ifrovanjeM
-5
Dodatak N
Vremenski dijagrami
William Stallings
Dopuna knjige
Organizacija i arhitektura raunara
Prevod devetog izdanja
CET 2012. god.
ISBN: 978-86-7991-361-6
CET
-3
Binarno 1
Binarno 0
Prednja Zadnja
ivica ivica
Vremenski razmak
Vreme
Sve linije
na 0
Sve linije
na 0
Dodatak O
Stekovi
William Stallings
O.1 STEKOVI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
O.2 IMPLEMENTACIJA STEKA . . . . . . . . . . . . . . . . . . . . . . . . 4
O.3 ODREIVANJE VREDNOSTI IZRAZA . . . . . . . . . . . . . . . . . 7
Dopuna knjige
Organizacija i arhitektura raunara
Prevod devetog izdanja
CET 2012. god.
ISBN: 978-86-7991-361-6
CET
O - 2Dodatak O / Stekovi
U ovom dodatku daje se pregled dve najire koriene arhitekture protokola.
O.1 STEKOVI
Stek je ureeni skup elemenata, od kojih se samo jednom moe pristupiti istovremeno. Taka pristupa se zove vrh steka. Broj elemenata u steku, ili
duina steka, promenljiv je. Poslednji element steka je njegova baza. Stavke
mogu da se dodaju na vrh steka, ili da se sa njega uklanjaju. Iz tog razloga,
stek je takoe poznat i kao lista za umetanje nanie1 (engl. pushdown list) ili
lista poslednji-unutra-prvi napolje (engl. last-in-first-out, LIFO).
Na slici O.1 prikazane su osnovne operacije steka. Poinjemo od nekog
vremenskog trenutka kada stek sadri izvestan broj elemenata. Operacija
PUSH dodaje novu stavku na vrh steka. Operacija POP uklanja stavku
sa vrha steka. U oba sluaja, vrh steka se pomera na odgovarajui nain.
Binarni operatori, koji zahtevaju dva operanda (na primer mnoenje, delenje, sabiranje ili oduzimanje), koriste dve gornje stavke steka kao operande,
uklanjaju obe stavke i stavljaju rezultat natrag na stek. Unarne operacije,
koje zahtevaju samo jedan operand (na primer, logiko NE), koriste stavku
na vrhu steka. Sve te operacije su ukratko prikazane u tabeli O.1.
1Bolji termin bio bi lista sa mestom-na-vrhu, zato to se postojei elementi sa liste ne pomeraju u memoriji, ve se
novi element dodaje na sledeoj raspoloivoj memorijskoj adresi.
-3
Opadajue adrese
Dodatak O / StekoviO
Poetno stanje
Posle PUSH
Posle POP
Posle operacije
mnoenja
SP = pokaziva steka
BP = pokaziva baze
Slika
O.1O.1
Osnovna
steka(pun/opadajui)
(pun/opadajui)
Slika
Osnovnaoperacija
operacija steka
O3
O - 4Dodatak O / Stekovi
O.2IMPLEMENTACIJA STEKA
Stek je korisna struktura koja moe da se ostvari kao deo implementacije procesora. Jedna od njegovih upotreba, o kojoj se govori u odeljku
12.4, jeste da upravlja pozivima procedura i povratcima iz njih. Stekovi
takoe mogu da budu korisni za programera. Primer za to je odreivanje
vrednosti izraza, o emu se govori dalje u ovom odeljku.
Implementacija steka delimino zavisi od njegovih potencijalnih upotreba. Ako se eli da se operacije steka uine dostupnim programeru,
tada e skup instrukcija ukljuiti operacije orijentisane na stek, kao to su
PUSH, POP i operacije koje koriste jedan ili dva gornja elementa steka
kao operande. S obzirom na to da se sve takve operacije referenciraju na
jedinstvenu lokaciju, odnosno vrh steka, adresa operanda ili operanada je
implicitna i nema potrebe da se ukljui u instrukciju. To su instrukcije sa
nula adresa o kojima se govori u odeljku 12.1.
Ako mehanizam steka treba da koristi samo procesor, za takve svrhe
kao to je rukovanje procesima, onda u skupu instrukcija nee biti eksplicitnih instrukcija orijentisanih na stek. U oba sluaja, implementacija steka
zahteva da postoji neki skup lokacija koje se koriste za skladitenje elemenata steka. Tipian pristup ilustrovan je na slici O.2. Blok susednih lokacija
rezervie se za stek u glavnoj memoriji (ili u virtuelnoj memoriji). Blok je
u najveem delu vremena delimino popunjen elementima steka, a njegov
ostatak je na raspolaganju za porast steka.
Dodatak O / StekoviO
Registri
procesora
-5
Glavna
memorija
Granica
steka
Baza
steka
Slobodno
U
upotrebi
Blok
rezervisan
za stek
Opadajue adrese
Pokaziva
steka
Slika
O.2Tipima
Tipima organizacija
steka (pun/opadajui)
Slika
O.2
organizacija
steka (pun/opadajui)
Za ispravan rad potrebne su tri adrese i one se esto skladite u regi-
Zastrima
ispravan
rad potrebne su tri adrese i one se esto skladite u registr
procesora:
procesora:
Pokaziva steka (SP): Sadri adresu vrha steka. Ako se neka stavka
dodaje na stek ili uklanja sa njega, pokaziva se poveava ili smanjuje da bi sadrao adresu novog vrha steka.
Pokaziva steka (SP): Sadri adresu vrha steka. Ako se neka stavka do
O - 6Dodatak O / Stekovi
Baza steka: Sadri adresu lokacije na dnu rezervisanog bloka. Ako se
pokua izvrenje instrukcije POP kada je stek prazan, izvetava se o
greci.
Granica steka: Sadri adresu suprotnog kraja rezervisanog bloka.
Ako se pokua izvrenje instrukcije PUSH kada je blok potpuno
upotrebljen za stek, izvetava se o greci.
Implementacije steka imaju dva kljuna atributa:
Rastui/opadajui: Rastui stek raste u pravcu rastuih adresa,
poevi od najnie i napredujui ka najvioj. Dakle, rastui stek je
onaj u kome se SP poveava kada se stavke umeu i opada kada
se stavke izvlae. Opadajui stek raste u pravcu opadajuih adresa,
poevi od vie i napredjujui ka nioj adresi. Veina maina ima
opadajue stekove kao pretpostavljene.
Pun/prazan: Ova terminologija zbunjuje, zato to se ne odnosi na to
da li je stek sasvim pun ili prazan. Umesto toga, SP moe da pokae
ili na stavku na vrhu steka (pun metod), ili na sledei slobodan prostor na steku (prazan metod). Za pun metod, kada je stek sasvim
popunjen, SP pokazuje na gornju granicu steka. Za prazan metod,
kada je stek potpuno prazan, SP pokazuje na bazu steka.
Slika O.1 je primer implementacije opadajui/pun (pod pretpostavkom
da su numeriki nie adrese nacrtane vie na stranici). Arhitektura ARM
doputa programeru sistema da odredi upotrebu operacija rastueg ili opadajueg, praznog ili punog steka. Arhitektura x86 koristi konvenciju opadajui/prazan.
Dodatak O / StekoviO
-7
postaje
ab+
a + (b c)
postaje
abc+
(a + b) c
postaje
ab+c
O - 8Dodatak O / Stekovi
Stek
Push a
Push b
Subtract
Push c
Push d
Push e
Multiply
Add
Divide
Pop f
Broj instrukcija 10
Pristup memoriji 10 op + 6 d
Opti registri
Load R1, a
Subtract R1, b
Load R2, d
Multiply R2, e
Add R2, c
Divide R1, R2
Store R1, f
Jedan registar
Load d
Multiply e
Add c
Store f
Load a
Subtract b
Divide f
Store f
7
7 op + 6 d
8
8 op + 6 d
Dodatak O / StekoviO
-9
Slika
O.4
Upotreba
stekazazaraunanje
raunanje
(a b)/[(de)
Slika
O.4
Upotreba steka
f = (af =b)/[(de)
+ c] + c]
Processpretvaranje
pretvaranje infix
infix izraza
izraza uu postfix
najlake
obavProcess
postfix izraz
izrazsesei sam
i sam
najlake
obavlja
lja korienjem steka. Za sledei algoritam zasluan je Dijkstra [DIJK63].
Izraz u infix
notaciji
se skenira
sa leva
na desno,
a postfix[DIJK63].
izraz se razvija
korienjem
steka.
Za sledei
algoritam
zasluan
je Dijkstra
Izraz ui infix
izlazi za vreme skeniranja. Koraci algoritma su sledei:
notaciji se skenira sa leva na desno, a postfix izraz se razvija i izlazi za vreme
1. Ispitati sledei element na ulazu.
skeniranja. Koraci algoritma su sledei:
2. Ako je operand, uputiti ga na izlaz.
1. 3.
Ispitati
ulazu.
Akosledei
je leva element
zagrada,na
staviti
ga na stek.
je operator,
onda
2. 4.
AkoAko
je operand,
uputiti
ga na izlaz.
3. Ako je leva zagrada, staviti ga na stek.
4. Ako je operator, onda
O9
O - 10Dodatak O / Stekovi
Ako je na vrhu steka leva zagrada, staviti operator na stek.
Ako ima vii prioritet od vrha steka (mnoenje i deljenje imaju vii
prioritet od sabiranja i oduzimanja), onda staviti operator na stek.
Inae, skinuti operaciju sa steka uputiti je na izlaz i ponoviti korak 4.
5. Ako je desna zagrada, skinuti operatore sa steka i uputiti ih na izlaz sve
dok se ne naie na levu zagradu. Skinuti i odbaciti levu zagradu.
6. Ako ima jo ulaza, otii na korak 1.
7. Ako vie nema ulaza, skinuti preostale operande sa steka.
Na slici O.5 ilustrovana je upotreba ovog algoritma. Ovaj primer bi
trebalo da itaocu prui izvestan oseaj o snazi algoritama zasnovanih na
steku.
Reference
DIJK63 Dijkstra, E. Making an ALGOL Translator for the X1. In
Annual Review of Automatic Programming, Volume 4. Pergamon,
1963.
Dodatak O / StekoviO
Ulaz
Izlaz
Stek (vrh
desno)
prazan
prazan
prazan
prazan
prazan
- 11
prazan