Professional Documents
Culture Documents
RAČUNARSKE KOMPONENTE
Osnovna funkcija koju izvodi raĉunar je izvršenje programa, koji se sastoji od skupa
instrukcija uskladištenih u memoriji. Procesor obavlja stvarni posao izvršavajući instrukcije
specificirane u programu. U svom najjednostavnijem obliku, obrada instrukcija sastoji se od
dva koraka: procesor ĉita (donosi) instrukcije iz memorije, po jednu istovremeno, i izvršava
svaku instrukciju. Izvršenje programa sastoji se od ponavljanja procesa donošenja i izvršenja
instrukcije. Izvršenje instrukcije moţe da obuhvati više operacija i zavisi od prirode
instrukcije. Obrada koja se zahtijeva za jednu instrukciju zove se instrukcijski ciklus.
Koristeći pojednostavljeni opis u dva koraka koji je prethodno dat, ciklus instrukcije je prika-
zan na slici. Ti koraci se zovu ciklus donošenja i ciklus izvršenja. Izvršenje programu
zaustavlja se samo ako se mašina iskljuĉi, ako se pojavi neka vrsta nepopravljive greške, ili
ako se naiĊe na instrukciju programa koja zaustavlja raĉunar.
Elementarne funkcije CPU-a
Najveći broj operacija koje izvršava CPU, moţe se obaviti jednom od sljedećih elementarnih
funkcija po unaprijed specificiranoj sekvenci:
Sa taĉke gledišta prenosa podataka, tj. mjesta odakle se pribavljaju izvorni operandi i mjesta
gdje se smeštaju odredišni operandi, instrukcije se mogu podijeliti u sljedeće tri kategorije:
a) registar-memorija - ostvaruje se prenos registar↔memorija.
b) registar-registar - ostvaruje se prenos registar↔registar.
c) memorija-memorija – prvo se ostvaruje prenos memorija→registar za privremeno
ĉuvanje podataka; opciono se obavlja ALU operacija i rezultat smješta u registar za
privremeno ĉuvanje podataka, a u trećem koraku se rezultat smješta u memoriju.
REGISTRI
INSTRUKCIJSKI CIKLUS
Programski brojaĉ sadrţi adresu sljedeće instrukcije koja će biti donijeta. Ova adresa se
premješta u memorijski adresni registar i smješta na adresnu magistralu. Upravljaĉka jedinica
zahtijeva ĉitanje memorije i rezultat se smješta na magistralu podataka, kopira u memorijski
bafer registar i zatim premješta u instrukcijski registar. U meĊuvremenu vrijednost
programskog brojaĉa se povećava za 1 što predstavlja pripremu za sljedeće donošenje. Kada
se ciklus donošenja jednom završi, upravljaĉka jedinica ispituje sadrţaj IR da bi odredila da li
on sadţi specifikator operanda za korištenje indirektnog adresiranja. Ako je to sluĉaj, poĉinje
indirektni ciklus. Kao što je prikazano na slici, to je jednostavan ciklus.
N bitova na krajnjoj desnoj strani memorijskog bafer registra koji sadrţi referencu adrese
prebacuje se u memorijski adresni registar. Nakon toga, upravljaĉka jedinica zahtijeva
oĉitavanje memorije kako bi dobila ţeljenu adresu operanda MBR. Indirektni ciklus i ciklus
donošenja su jednostavni i predvidivi.
Ciklus izvršenja ima mnogo razliĉitih oblika koji zavise od toga koje se od najrazliĉitijih
mašinskih instrukcija nalaze u instrukcijskom registru. Ovaj ciklus moţe da obuhvata prenos
podataka izmeĊu registara, ĉitanje iz memorije ili U/ I ili upisivanje u njih, kao i pozivanje
ALU jedinice. Poput indirektnog ciklusa i ciklusa preuzimanja, ciklus sa prekidom je takoĊe
jednostavan i predvidiv.
Trenutni sadrţaj brojaĉa instrukcija mora da se saĉuva kako bi procesor, nakon prekida,
mogao da se vrati normalnim aktivnostima. Zbog toga se sadrţaj programskog brojaĉa
prebacuje u memorijski bafer registar kako bi bio upisan u memoriju. Iz upravljaĉke jedinice
se u memorijski adresni registar uĉitava posebna memorijska lokacija rezervisana upravo za
ovu namjenu. To bi, na primjer, mogao da bude pokazivaĉ steka. U programski brojaĉ se
uĉitava adresa rutine prekida. Kao rezultat toga, sljedeći instrukcijski ciklus poĉinje
donošenjem odgovarajuće instrukcije.
MAŠINSKE INSTRUKCIJE
operacioni kod: odreĊuje operaciju koja treba da se izvede (na primjer: ADD, U/I);
Operacija se odreĊuje binarnim kodom, koji je poznat kao operacioni kod.
referenca izvodnog operanda: operacija moţe da obuhvati jedan ili više izvornih
operanada, odnosno, operandi su ulazi za operaciju;
referenca rezultujućeg operanda: operacija moţe da proizvede rezultat;
referenca na sljedeću instrukciju: ona kaţe procesoru da donese sljedeću instrukciju
poslije završetka izvršenja posmatrane instrukcije.
glavna ili virtuelna memorija: kao i kod reference na sljedeću instrukciju, mora da se
obezbijedi adresa u glavnoj ili u virtuelnoj memoriji;
Registar procesora: sa rijetkim izuzecima, procesor sadrţi jedan ili više registara koji
mogu da se referenciraju mašinskim instrukcijama. Ako postoji samo jedan registar,
referenca na njega moţe da bude implicitna. Ako postoji više od jednog registra, onda
se svakom registru dodjeljuje jedinstven broj, a instrukcija mora da sadrţi broj
ţeljenog registra.
Neposredna: vrijednost operanda nalazi se u polju instrukcije koja se izvršava;
U/I ureĎaj: instrukcija mora da odredi U/I modul i ureĊaj za operaciju. Ako se koristi
memorijski preslikan U/I, to je samo druga adresa u glavnoj ili virtuelnoj memoriji.
Operandi
Mašinske instrukcije rade sa podacima. Najvaţnije opšte kategorije podataka su: adrese,
brojevi, znakovi, logiĉki podaci.
Adrese su, u stvari, oblik podataka.
Svi mašinski jezici ukljuĉuju numeriĉke tipove podataka. U raĉunarima su uobiĉajena tri tipa
numeriĉkih podataka:
Opšti oblik podataka je tekst ili niz znakova. Mada su tekstualni podaci najpogodniji da ih
ĉitaju ljudi, oni ne mogu u obliku znakova, lako da se skladište ili prenose u sistemima za
obradu podataka ili komunikacionim sistemima. Takvi sistemi su projektovani za binarne
podatke. Zato je smišljen jedan broj kodova, pomoću kojih se znakovi predstavljaju kao
nizovi bitova.
Ponekad je korisno da se razmatra n-bitna jedinica kao da se sastoji od n-1- bitnih podataka,
od kojih svaki ima vrijednost 0 ili 1. Kada se podaci posmatraju na taj naĉin, oni se smatraju
logičkim podacima. Ovakav pogled, orijentisan na bitove, ima dvije prednosti. Prvo, moţemo
ponekad poţeljeti da skladištimo niz Bulovih ili binarnih podataka, u kome svaki od njih
moţe uzeti samo vrijednosti 1 (istinit) i 0 (neistinit). Kod logiĉkih podataka, memorija se
najefikasnije koristi za to skladištenje. Drugo, postoje prilike kada ţelimo da manipulišemo
bitovima u podatku.
Operacije
Opšte vrste operacija koje se nalaze u svim mašinama su: operacije za prenos podataka,
aritmetiĉke operacije, logiĉke operacije, operacije za pretvaranje, U/I operacije, operacije za
upravljanje sistemom, operacije za prenos upravljanja.
Aritmetičke operacije
Logičke operacije
Operacije za pretvaranje
Instrukcije za pretvaranje su one koje mijenjaju format ili rade na formatu podatka. Primjer je
pretvaranje iz decimalnog oblika u binarni.
U/I operacije
Postoje razni pristupi, ukljuĉujući programirani U/I, memorijski preslikan programirani U/I,
DMA i upotrebu U/I procesora. Mnoge implementacije obezbjeĊuju samo nekoliko U/I
instrukcija, gdje se specifiĉne aktivnosti odreĊuju parametrima, kodovima ili komandnim
rijeĉima.
Instrukcije za upravljanje sistemom su one koje mogu da se izvršavaju samo kada je procesor
u nekom privilegovanom stanju, ili kada izvršava program u specijalnoj privilegovanoj oblasti
memorije. Te instrukcije su po pravilu rezervisane za upotrebu u operativnom sistemu.
Postoje brojni razlozi zašto se zahtijevaju operacije za prenos upravljanja. MeĊu najvaţnijima
od njih su sljedeći:
STEKOVI
Stek je ureĊeni skup elemenata, od kojih se samo jednom moţe pristupiti istovremeno. Taĉka
pristupa se zove vrh steka. Broj elemenata u steku, ili dužina steka, promjenljiv je. Posljednji
element steka je njegova baza. Stavke mogu da se dodaju na vrh steka, ili da se sa njega
uklanjaju. Iz tog razloga, stek je takoĊe poznat i kao lista za umetanje naniţe (engl. pushdown
list) ili lista posljednji-unutra-prvi napolje (engl. last-in-first-out, LIFO).
Na slici prikazane su osnovne operacije steka.
Osnovna operacija steka (pun/opadajući)
Poĉinjemo od nekog vremenskog trenutka kada stek sadrţi izvjestan broj elemenata.
Operacija PUSH dodaje novu stavku na vrh steka. Operacija POP uklanja stavku sa vrha
steka. U oba sluĉaja, vrh steka se pomjera na odgovarajući naĉin. Binarni operatori, koji
zahtijevaju dva operanda (na primjer mnoţenje, dijeljenje, sabiranje ili oduzimanje), koriste
dvije gornje stavke steka kao operande, uklanjaju obje stavke i stavljaju rezultat natrag na
stek. Unarne operacije, koje zahtijevaju samo jedan operand (na primjer, logiĉko NE), koriste
stavku na vrhu steka.
Implementacija steka
Stek je korisna struktura koja moţe da se ostvari kao dio implementacije procesora.
Implementacija steka djelimiĉno zavisi od njegovih potencijalnih upotreba i zahtijeva da
postoji neki skup lokacija koje se koriste za skladištenje elemenata steka. Tipiĉan pristup
ilustrovan je na slici. Blok susjednih lokacija rezerviše se za stek u glavnoj memoriji (ili u
virtuelnoj memoriji). Blok je u najvećem dijelu vremena djelimiĉno popunjen elementima
steka, a njegov ostatak je na raspolaganju za porast steka.
Za ispravan rad potrebne su tri adrese i one se ĉesto skladište u registrima procesora:
pokazivač steka (SP): Sadrţi adresu vrha steka. Ako se neka stavka dodaje na stek ili
uklanja sa njega, pokazivaĉ se povećava ili smanjuje da bi sadrţio adresu novog vrha
steka.
baza steka: Sadrţi adresu lokacije na dnu rezervisanog bloka. Ako se pokuša
izvršenje instrukcije POP kada je stek prazan, izvještava se o grešci.
granica steka: Sadrţi adresu suprotnog kraja rezervisanog bloka. Ako se pokuša
izvršenje instrukcije PUSH kada je blok potpuno upotrijebljen za stek, izvještava se o
grešci.
TIPOVI INSTRUKCIJA
Kod instukcije zadaje procesoru tip obrade koji treba primjeniti tokom izvršavanja tekuće
instrukcije. Na osnovu tipa obrade, sve instrukcije klasifikujemo u sljedeće osnovne grupe:
1. instrukcije prenosa
2. aritmetiĉke i logiĉke instrukcije
3. instrukcije pomjeranja
4. instrukcije skoka
5. statusne instrukcije
PUSH – sadrţaj memorijske lokacije, registra podataka ili operand neposrednog naĉina
adresiranja se skladišti na prvu praznu lokaciju stek memorije, pri tome se sadrţaj SP registra
smanjuje za jedan, gdje pokazuje na sljedeću niţu adresu.
PUSH a;
POP – sadrţaj posljednjeg pristiglog podatka sa steka se skladišti u memorijsku lokaciju ili
registar podataka. Pri tome SP pomjera na adresu iz koje se uzeo podatak sa steka.
POP b;
PSW statusni registar
Sve aritmetiĉke instrukcije postavljaju indikatore PSW registra na osnovu vrijednosti rezultata
operacije. Indikator, flag ili semafor je jedan bit u PSW registru koji pokazuje da li je
odreĊeno stanje aktivno ili nije. PSW registar procesora je registar u kome se ĉuvaju
indikatori trenutnog stanja dešavanja, kao što je praćenje rezultata operacije trenutne
instrukcije. Praćenje rezultata operacije je vrlo korisno kada treba odrediti odreĊene uslove
granjanja na osnovu indikatora u PSW registru.
Jedno od njih su indikatori detekcije nule Z i negativnog broja N. Ako je rezultat aritmetiĉke
operacije nula u Z indikatoru PSW upisaće se 1, u protivnom upisaće se 0. Ako je rezultat
negativan broj u N indikatoru PSW upisaće se 1, u protivnom upisaće se 0.
ADRESIRANJE
Adresno polje, ili polja, u tipiĉnom formatu instrukcije relativno su mala. Voljeli bismo da
moţemo da referenciramo širok opseg lokacija u glavnoj memoriji ili u nekim sistemima, u
virtuelnoj memoriji. Da bi se postigao taj cilj, primjenjuju se razne tehnike adresiranja. Sve
one ukljuĉuju neki kompromis izmeĊu opsega adresa sa jedne strane i/ili fleksibilnosti
izraĉunavanja adrese, sa druge strane. Najzastupljenije tehnike adresiranja su: neposredno,
direktno, indirektno, registarsko, registarsko indirektno, sa pomjerajem, pomoću steka.
Na slici dat je opšti model upravljaĉke jedinice, na kome su prikazani svi ulazi i izlazi.
Ulazi su sljedeći:
Izlazi su:
upravljački signali unutar procesora: postoje dva tipa: oni koji izazivaju
premještanje podataka iz jednog registra u drugi i oni koji aktiviraju odreĊene funkcije
aritmetiĉko-logiĉke jedinice;
upravljački signali ka upravljačkoj magistrali: takoĊe postoje dva tipa: upravljaĉki
signali ka memoriji i upravljaĉki signali ka U/I modulima.
MIKROOPERACIJE
Faza donošenja
Faza indirekcije
Ako u raĉunaru postoji n mašinskih instrukcija sa razliĉitim kodovima operacije, tada se u fazi
izvršenja mogu pojaviti n razliĉitih nizova mikroinstrukcija.
Za ilustraciju je prikazana faza izvršavanja instrukcije sabiranja ADD R1,L u kojoj
se sadrţaj memorijske lokacije L dodaje na prethodni sadrţaj opšteg registra R1. Jedan od
mogućih nizova mikroinstrukcija je:
Osnovna akcija koju treba preduzeti je ĉuvanje trenutnog stanja programa koji se izvršava, i
upisivanje adrese rutine koja vrši obradu prekida u brojaĉ instrukcija.
Niz mikroinstrukcija koji realizuje ove korake se moţe predstaviti na sljedeći naĉin:
Registar faze
Fazu instrukcije koja se trenutno izvršava, odnosno niz mikrooperacija koji se primjenjuje,
odreĊuje sadrţaj posebnog registra upravljaĉke jedinice koji se naziva registar faze. Veliĉinu
registra faze odreĊuje broj faza u mašinskoj instrukciji.
MIKROINSTRUKCIJE
ARITMETIČKO-LOGIČKA JEDINICA
Aritmetiĉko- logiĉka jedinica (ALU) je dio raĉunara koji stvarno izvodi aritmetiĉke i logiĉke
operacije nad podacima. Svi ostali elementi raĉunarskog sistema - upravljaĉka jedinica,
registri, memorija, U/I - postoje uglavnom da bi donijeli podatke u ALU kako bi ih ona
obradila i iznijela rezultate opet napolje. Kada razmatramo ALU, mi smo, u tom smislu, stigli
do same suštine raĉunara.
ALU i sve elektronske komponente u raĉunaru, zasnovane su na upotrebi jednostavnih
digitalnih logiĉkih ureĊaja koji mogu da skladište binarne cifre i izvode jednostavne Bulove
logiĉke operacije.
Na slici uopšteno je prikazano kako se ALU meĊusobno povezuje sa ostatkom procesora.
Kao i CPU, memorija posjeduje adresni bafer i bafer za podatke. Upravljaĉko kolo prima
signale ĉitanje/upis (read/write) koji se predaju od strane CPU-a ili U/I podsistema preko
spoljne magistrale. Na osnovu ovih ulaza upravljaĉko kolo uz pomoć adresnog dekodera
generiše signal pomoću koga se obavlja interna selekcija memorijske lokacije. Upravljaĉko
kolo generiše i druge signale pomoću kojih se upravlja internim radom memorije.
1.1 KARAKTERISTIKE GLAVNE MEMORIJE
Kao što joj i ime nagovještava, memorija samo za ĉitanje (ROM, engl. read-only memory)
sadrţi stalni uzorak podataka koji ne moţe da se mijenja. ROM memorija je trajna; to znaĉi da
se ne zahtijeva izvor napajanja elektriĉnom energijom da bi se u memoriji odrţavale
vrijednosti bitova. Dok iz ROM memorije moţe da se ĉita, nije moguće da se u nju upisuju
novi podaci. Znaĉajna primjena ROM memorija je mikroprogramiranje. Druge moguće
primjene ukljuĉuju:
Za umjerene zahtjeve, prednost ROM memorije je u tome što su program ili podaci stalno u
glavnoj memoriji i ne moraju nikad da se uĉitavaju iz ureĊaja sekundarne memorije.
ROM memorija se pravi kao i svaki drugi ĉip integrisanog kola, tako što se podaci stvarno
oţiĉavaju u ĉip u okviru procesa fabrikacije. Tu nastaju dva problema:
faza unošenja podataka ukljuĉuje relativno veliku fiksiranu cijenu, bez obzira na to da
li se pravi jednu kopija posebne ROM memorije ili na hiljade njih;
nema mjesta za greške. Ako je jedan bit pogrešan, cijela koliĉina ROM memorija
mora da se odbaci.
Jedan drugi oblik poluprovodniĉke memorije je fleš memorija (tako nazvana zbog brzine
kojom ona moţe da se reprogramira). Prvi put uvedena sredinom osamdesetih godina, fleš
memorija je izmeĊu EPROM i EEPROM memorija, kako po cijeni, tako i po funkcionalnosti.
Sliĉno EEPROM memoriji, fleš memorija koristi tehnologiju elektriĉnog brisanja. Cijela fleš
memorija moţe da se izbriše za jednu ili nekoliko sekundi, što je mnogo brţe od EPROM
memorije. Pored toga, moguće je obrisati samo blokove memorije, a ne cio ĉip. Fleš memorija
dobija svoje ime zato što je ĉip organizovan tako da se odjeljci memorijskih ćelija brišu
jednostrukom akcijom ili „flešom”. MeĊutim, fleš memorija ne obezbjeĊuje brisanje na nivou
bajta.
RAM ( Random Access Memory)
Statiĉka RAM (SRAM) memorija je digitalni ureĊaj, koji koristi iste logiĉke elemente kao što
su oni koji se upotrebljavaju u procesoru. U SRAM memoriji, binarne vrijednosti se skladište
koristeći konfiguracije flip-flop logiĉkih kola. Statiĉka RAM memorija će drţali svoje
podatke sve dok joj se dovodi napajanje elektriĉnom energijom.
SRAM memorije se koriste za keš memoriju (kako na ĉipu, tako i van njega), a DRAM
memorija za glavnu memoriju.
Tip RAM-a novije proizvodnje je NOVRAM (Nonvolatile Random Access Memory).
NOVRAM predstavlja veoma brzi statiĉki RAM kod koga je, kao rezerva, na istom ĉipu
predviĊeno identiĉno EEPROM polje. Statiĉki RAM se koristi za normalne operacije ĉitanja i
upisa, a njegov sadrţaj se moţe proĉitati iz EEPROM-a kada sistem postane ponovo
operativan.
a) veliki kapacitet,
b) relativno mala potrošnja.
Broj DRAM-ova koje je potrebno ugraditi kod implementacije memorije raĉunara zavisi od:
Glavni dio ĉipa je polje memorijskih ćelija u kojima se smještaju nule i jedinice. Svaku ćeliju
ĉine jedan ili više tranzistora i kondenzator male kapacitivnosti. Ćelije se adresiraju pomoću
adresa vrsta i adresa kolona. Ove dvije adrese se mogu zamisliti kao koordinate ćelija. Sa
ciljem da se smnaji broj spoljnih interfejs linija, ove dvije adresne komponente se
multipleksiraju na istim ulaznim linijama A0-AN. Prvo se na adresne linije postavlja adresa
vrste, a zatim aktivira signal za njihovo pamćenje RAS* (Row Address Strobe). DRAM se
odaziva pamćenjem prisutnih adresa vrste u interni leĉ vrste. Nakon toga se adresa vrste
deaktivira, a na linije A0-AN postavlja adresa kolone. Slijedi aktiviranje signala CAS*
(Column Address Strobe). DRAM se odaziva pamćenjem adresa kolone u interni leĉ kolone.
Shodno raspoloţivoj informaciji (ukupnoj adresi) locira se adresa memorijske ćelije na
osnovu dekodiranja zapamćenih adresa vrste i adresa kolone. Stanje na liniji WE* (Write
Enable) ukazuje na to da li se pristup odnosi na operaciju ĉitanja ili operaciju upisa. D IN i DO
su ulazna i izlazna linija podataka DRAM-a, respektivno.
Osvježavanje
Opterećenje koje je akumulirano na malom kondenzatoru DRAM ćelije se brţe smanjuje zbog
struje curenja. Kao rezultat toga napon na krajevima kondenzatora se smanjuje do vrijednosti
koja više ne odraţava realno stanje zapamćene informacije. Da bi se izbegao gubitak podataka
neophodno je da se:
a. proĉita vrijednost napona svake ćelije;
b. pojaĉa;
c. kondenzator ponovo napuni na poĉetnu vrijednost.
Ovaj proces mora periodiĉno da se ponavlja i zove se osvježavanje. DRAM-ovi u toku jedne
operacije obezbjeĊuju osvjeţavanje svih ćelija koje pripadaju jednoj vrsti. Obiĉno DRAM-ovi
zahtijevaju osvjeţavanje po 128 vrsta svake 2 ms, ili po 256 vrsta svake 4 ms.
Da bi se logika za osvjeţavanje mogla realizovati neophodno je ugraditi tajmer koji
periodiĉno generiše zahtjeve za osvjeţavanjem i brojaĉ na osnovu ĉijeg stanja se odreĊuje
redoslijed adresirane vrste koja se osvjeţava. Blok šema logike za osvjeţavanje DRAM-ova je
prikazana na slici.
Kada upravljaĉka logika primi zahtjev za osvjeţavanjem, ona preduzima sljedeće aktivnosti:
1) Postavlja upravljaĉki signal select u takvo stanje da MUX na svom izlazu usmjerava
ulaze B.
2) Generiše memorijske upravljaĉke signale koji se sekvenciraju u saglasnosti sa
zahtjevima ciklusa za osvjeţavanje.
3) Nakon završetka ciklusa za osvjeţavanje upravljaĉka logika inkrementira brojaĉ. Novi
sadrţaj brojaĉa ukazuje na adresu vrste koja se naredna osvjeţava.
Kada je CPU izdao zahtjev za memorijskim ciklusom, upravljaĉka logika preko MUX-a
usmjerava odgovarajuću adresu vrste prema memoriji.
Interesantna situacija se javlja kada upravljaĉka logika primi istovremeno dva zahtjeva. Jedan
zahtjev se odnosi na standardni pristup memoriji od strane CPU-a, a drugi na osvjeţavanje.
Jasno je pri ovome da jedan od zahtjeva mora da saĉeka na svoje izvršenje. Projektovanje
kola koje će obavljati arbitraţnu funkciju nije trivijalan zadatak. Ako ovo kolo nije korektno
projektovano mogu se manifestovati nepredvidljiva ponašanja koja se veoma teško mogu
logiĉki interpretirati. Drugi aspekt na koji treba obratiti paţnju kod projektovanja ovih kola se
ogleda u ĉinjenici da ona ne smiju tokom arbitraţe da unose znaĉajna kašnjenja.
KEŠ MEMORIJA
Keš memorija je namjenjena da pruţi memoriji brzinu koja se pribliţava onoj koj imaju
najbrţe raspoloţive memorije, a u isto vrijeme da obezbjedi veliki kapacitet memorije po
cijeni jeftinijih vrsta poluprovodniĉkih memorija. Koncept je ilustrovan na slici a. Postoji
relativno velika i spora glavna memorija, zajedno sa manjom i brţom keš memorijom. Keš
sadrţi kopiju dijelova glavne memorije. Kada procesor pokuša da ĉita rijeĉ iz memorije,
napravi se provjera da bi se utvrdilo da li je rijeĉ u kešu. Ako jeste, rijeĉ se isporuĉuje
procesoru. Ako nije, blok glavne memorije, koji se sastoji od nekog fiksnog broja rijeĉi,
uĉitava se u keš i zatim se rijeĉ isporuĉuje procesoru. Zbog fenomena lokalnosti reference,
kada se blok podataka donese u keš da bi se zadovoljila jedna referenca memorije, vjerovatno
će biti budućih referenci na tu istu memorijsku lokaciju, ili na druge rijeĉi u bloku.
Na slici b prikazana je upotreba više nivoa keš memorije. L2 keš je sporiji i u opštem sluĉaju
veći od L1 keša, a L3 keš je sporiji i obiĉno veći od L2 keša.
Keš i glavna memorija
Glavna memorija se sastoji od 2n adresibilnih rijeĉi, gdje svaka rijeĉ ima jedinstvenu n-bitnu
adresu. U svrhu preslikavanja, ta memorija je zamišljena da se sastoji od izvjesnog broja
blokova fiksne duţine, svaki po K rijeĉi. To znaĉi da postoji blokova. Keš
memorija se sastoji od m blokova koji se zovu redovi. Svaki red sadrţi K rijeĉi, plus tag od
nekoliko bitova. Svaki red takoĊe ukljuĉuje i upravljaĉke bitove (nisu prikazani), kao što je
bit koji pokazuje da li je red bio promjenjen od kada je uĉitan u keš. Duţina reda, ne
ukljuĉujući tag i upravljaĉke bitove, zove se veličina reda. Veliĉina reda moţe biti toliko
mala, da ima samo 32 bita, gdje je svaka „rijeĉ" samo jedan bajt; u tom sluĉaju je veliĉina
reda 4 bajta. Broj redova je znaĉajno manji od broja blokova u glavnoj memoriji (m<< M).
U bilo kom trenutku, neki podskup blokova memorije nalazi se u redovima u kešu. Ako se
ĉita rijeĉ u bloku memorije, taj blok se prenosi u jedan od redova keša. S obzirom na to da
ima više blokova nego redova, pojedinaĉni red ne moţe da se jedinstveno i trajno dodijeli
odreĊenom bloku. Prema tome, svaki red ukljuĉuje tag koji identifikuje koji odreĊeni blok je
trenutno uskladišten. Tag je obiĉno dio adrese glavne memorije.
VIRTUELNA MEMORIJA
Kao što keš omogućava brzi pristup dijelovima programa i podataka iz memorije koji se
najĉešće koriste, tako i memorija moţe “keširati” dijelove diska koji se ĉesto koriste. Ova
tehnika se naziva virtuelna memorija i ima zadatak da programeru (i njegovom programu) da
iluziju da mu je na raspolaganju proširena (praktiĉno neograniĉena) radna memorija, zaštićena
od pristupa drugih korisniĉkih programa.
Virtuelna memorija obezbjeĊuje svakom programu logiĉki odvojen i njegov vlastiti virtuelni
adresni prostor kome drugi programi ne mogu pristupiti. To se postiţe prevoĊenjem
programskog adresnog prostora u fizički adresni prostor. Ovim mehanizmom se moţe
programima dati iluzija da raspolaţu adresnim prostorom većim od raspoloţivog fiziĉkog
adresnog prostora pa programeri ne moraju eksplicitno rješavati problem izvršenja programa
većeg od raspoloţive memorije, njegovog particioniranja i upravljanja prebacivanjem iz
memorije na disk i obratno (eng. overlays). Kao i kod keševa, i virtuelni adresni prostor i
fiziĉki adresni prostor su podijeljeni na blokove. Blokovi se u ovom kontekstu nazivaju
stranicama, a promašaj u memoriji se zove greška stranice (eng. page fault). Procesor
emituje virtuelnu adresu, koja se hardverskosoftverski prevodi u fizičku adresu, koja se
koristi za pristup fiziĉkoj memoriji.
Slika prikazuje sistem sa virtuelnom memorijom.
Virtuelna memorija se najĉešće oslanja na diskove, kao sljedeći niţi nivo u memorijskoj
hijerarhiji, jer zadrţavaju svoj sadrţaj i nakon nestanka napajanja i, po pravilu, imaju mnogo
veći kapacitet od fiziĉke radne memorije (DRAM-a). Moţe se pretpostaviti da su, inicijalno,
sve stranice virtuelne memorije smještene na disku. Samo njihov aktivni podskup je preslikan
i u glavnu memoriju i dinamiĉki se mijenjaju (po potrebi). Da bi ovo bilo moguće, arhitektura
skupa instrukcija mora podrţavati veliki adresni prostor, a prevoĊenje adresa mora podrţati
specijalni hardver (tabele, komparatori itd.) kao i softver (operativni sistem).
ORGANIZACIJA ULAZA/IZLAZA
Pored CPU-a i memorije, U/I podsistem je treći kljuĉni element svakog raĉunarskog sistema.
U/I podsistem ĉini skup U/I interfejsa. Svaki U/I interfejs (modul) predstavlja stepen za
spregu izmeĊu sistemske magistrale sa jedne strane, i jednog ili većeg broja ureĊaja sa druge
strane. Drugim reĉima, U/I interfejs ne predstavlja samo skup veza i mehaniĉki konektor,
nego sadrţi i odreĊeni stepen inteligencije, tj. sadrţi neku logiku koja obavlja odreĊenu
komunikacionu funkciju izmeĊu ureĊaja i magistrale.
Detalji organizacije U/I-a razlikuju se kod raznih tipova raĉunara a zavise i od specifiĉnosti
procesa koga treba kontrolisati, ali se jedan opšti model moţe videti na slici.
Spoljni ureĊaji povezuju se na raĉunarski sistem preko veza (kanala) na U/I interfejs. Veze se
koriste za razmjenu podataka, statusa i upravljaĉkih signala izmeĊu U/I interfejsa i spoljnih
ureĊaja.
Spoljni ureĊaj povezan na U/I interfejs ĉesto se zove periferni uređaj ili periferal. Spoljne
ureĊaje moţemo svrstati u tri kategorije:
U grubim crtama, u zavisnosti od brzine sa kojom se vrši prenos podatka, U/I ureĊaje
moţemo podjeliti na sljedeće tri grupe:
Dvije U/I organizacije se najĉešće koriste kod savremenih raĉunara. Princip rada velikih
raĉunara prikazan je na slici.
Na ovaj naĉin CPU je "osloboĊen briga" koje se odnose na prenos podataka ka/iz U/I ureĊaja,
tako da on moţe da obavlja druge korisne aktivnosti koje su vezane za program. Kada kanal
obavi posao on predaje CPU-u specijalni signal koji se zove prekid (interrupt). Ovim
signalom se zaustavlja tekući rad CPU-a, i prelazi na opsluţivanje zahtjeva koji je izdao
kanal. Prednost ovakvog pristupa je ta što se U/I aktivnosti i CPU-ove aktivnosti mogu
odvijati istovremeno, tj. CPU prenosi sve U/I aktivnosti kanalu. Kao što se vidi sa slike 7.2,
kod velikih raĉunara postoji veći broj magistrala:
memorijska magistrala - preko ove magistrale kanali ĉitaju podatke iz memorije ili ih
upisuju u memoriju.
U/I magistrala - preko ove magistrale CPU izdaje komande U/I kanalima i prenosi se
signal zahtjeva za prekid.
CPU-memorija - CPU direktno pristupa memoriji.
Ovakvi sistemi se standardno organizuju oko jedinstvene magistrale. Svaki U/I ureĊaj ĉine
dva dijela:
Kontroler - sadrţi najveći dio elektronike. Obiĉno se prikljuĉuje na sistemsku
magistralu da bi se ostvarila veza sa CPU-om ili memorijom.
Drajv - elektronika koja vrši upravljanje specifiĉnim ureĊajem. Prihvata komande od
strane kontrolera i obavlja zahtijevani tip aktivnosti. O uspješnosti izvršenja aktivnosti
obavještava kontroler preko statusnih signala. Stanje statusnih signala ukazuje da li je
drajv spreman za prenos ili ne i dr.
Sistemska magistrala, kao što je prikazano na slici, ne koristi se samo od strane U/I kontrolera
nego od strane CPU-a koji pribavlja iz memorije instrukcije i podatke. Šta se dešava kada
CPU i U/I kontroler ţele da koriste sistemsku magistralu u isto vrijeme? Posebna elektronika
koja se zove arbitar magistrale odluĉuje kome će dodijeliti pravo korišćenja magistrale, tj. ko
postaje gospodar magistrale (bus master). U principu, U/I ureĊaji imaju veći prioritet u
odnosu na CPU, jer se diskovi i drugi pokretni ureĊaji ne mogu zaustavljati. Kada je U/I
aktivnost u toku, neki od U/I kontrolera je postao gospodar magistrale, CPU se prebacuje u
stanje ĉekanja (wait state) i ostaje u tom stanju sve dok U/I kontroler ne oslobodi magistralu.
MAGISTRALE
Magistrala je komunikaciona putanja koja povezuje dva ili više ureĊaja. Kljuĉna
karakteristika magistrale je da je ona dijeljeni prenosni medijum. Više ureĊaja se prikljuĉuje
na magistralu, a signal koji prenosi bilo koji ureĊaj na raspolaganju je za prijem svim ostalim
ureĊajima prikljuĉenim na magistralu.
Magistrala se u opštem sluĉaju sastoji od više komunikacionih putanja, ili linija. Svaka linija
je sposobna da prenosi signale koji predstavljaju binarne cifre 1 i 0. U toku vremena,
sekvenca binarnih cifara moţe da se prenese preko jedne linije. Uzete zajedno, više linija
magistrale moţe da se upotrijebi da istovremeno (paralelno) predaju binarne cifre. Na primjer,
8-bitna jedinica podataka moţe da se preda preko osam linija magistrale.
Raĉunarski sistemi sadrţe izvjestan broj razliĉitih magistrala koje obezbjeĊuju putanje izmeĊu
komponenata na raznim nivoima hijerarhije raĉunarskog sistema. Magistrala koja povezuje
glavne raĉunarske komponente (procesor, memoriju, U/I) zove se sistemska magistrala.
Najĉešće raĉunarske strukture za meĊusobno povezivanje zasnivaju se na upotrebi jedne
sistemske magistrale ili više njih.
STRUKTURA MAGISTRALE
Sistemska magistrala se u opštem sluĉaju sastoji od oko pedeset do više stotina posebnih
linija. Svakoj liniji dodjeljuje se posebno znaĉenje ili funkcija. Mada postoji mnogo
razliĉitih konstrukcija magistrala, na svakoj od njih linije mogu da se klasifikuju u tri
funkcionalne grupe: linije za podatke, adresne i upravljaĉke linije.
Slika 8.1. Šema meĊusobnog povezivanja magistrale
Operacija magistrale odvija se na sljedeći naĉin. Ako jedan modul ţeli da pošalje podatak
drugom modulu, on mora da uradi dvije stvari:
Ako jedan modul ţeli da zatraţi podatak od drugog modula, on mora da dobije upotrebu
magistrale i da prenese zahtjev drugom modulu preko odgovarajućih upravljaĉkih i adresnih
linija. Zatim on mora da ĉeka da drugi modul pošalje podatak.