Racunari - prvi deo.doc

12

Click here to load reader

Transcript of Racunari - prvi deo.doc

Page 1: Racunari - prvi deo.doc

Računari su elektronski uređaji u kojima se rešavanje određenih problema realizuje izvršavanjem određenog skupa aritmetičkih, logičkih i pomeračkih operacija. Operacije koje se u računaru izvršavaju se predstavljaju pomoću binarnih reči koje se nazivaju instrukcije, komande ili naredbe. Skup operacija koje računar može da izvršava je takav da bilo koji problem koji treba da se rešava u računaru može da se razloži na niz instrukcija računara koji se naziva program. Podaci nad kojima se operacije izvršavaju, se takođe predstavljaju pomoću binarnih reči koje se nazivaju operandi.

1. PREGLED RAČUNARSKOG SISTEMA

Ne postoji jedinstvena definicija računarskog sistema, ali bi se moglo reći da računarski sistem predstavlja skup komponenti i pridružnih metoda (realizovanih u obliku softvera) organizovanih tako da vrše obradu podataka.

Funkcija

Svaki računarski sistem poseduje četiri osnovne funkcije:- prenos podataka- obrada podataka- čuvanje podataka- upravljanje tokom prenosa, obrade i čuvanja podataka

Računar premešta podatke između sebe samog i spoljašnjeg sveta. Operativno okruženje računara sastoji se od uređaja koji služe kao izvori ili kao odredišta podataka. Kada se podaci primaju od, ili izdaju ka uređaju koji je direktno povezan sa računarom, odvija se proces koji je poznat kao ulaz-izlaz (U/I), a uređaj se zove periferijski.

Računar, naravno, mora da bude u stanju da obrađuje podatke. Podaci mogu da budu vrlo različitih oblika i opseg zahteva za obradom je širok. Međutim, uglavnom se izvode neke aritmetiče ili logičke operacije nad podacima.

Od suštinskog značaja je i da računar čuva podatke. Datoteke podataka se skladište u računaru radi kasnijeg pozivanja i ažuriranja.

Najzad, mora da postoji upravljanje tim trima funkcijama. To upravljanje izvodi pojedinac koji računaru obezbeđuje instrukcije. Unutar računara, upravljačka jedinica upravlja resursima računara, usklađuje performansu njegovih funkcionalnih delova kao odziv na te instrukcije.

Struktura

Postoje četiri glavne strukturne komponente:

- Procesor: Ovaj deo upravlja radom računara i izvršava funkcije obrade podataka.- Glavna memorija: U nju se smeštaju podaci i programi.- U/I moduli: Prenose podatke između računara i njegovog spoljašnjeg okruženja. Spoljašje okruženje

sastoji se od raznih uređaja, uključujući i sekundarnu memoriju (na primer diskovi), komunikacionu opremu i terminale

- Sistemska magistrala: Omogućava komunikaciju između procesora, glavne memorije i U/I modula

Page 2: Racunari - prvi deo.doc

Slika 1.1 Komponente računarskog sistema

Međusobno povezivanje magistralom

Magistrala je komunikaciona putanja koja povezuje dva ili više uređaja. Sastoji se od više linija, a svaka linija je sposobna da prenosi signale koji predstavljaju binarne cifre 1 i 0. Mada postoji mnogo različitih konstrukcija magistrala, na svakoj od njih linije mogu da se klasifikuju u tri funkcionalne grupe: magistrala podataka, adresna i upravljačka magistrala.Magistrala podataka obezbeđuje putanju za pomeranje podataka između modula sistema. Adresna magistrala se koristi da označi izvor ili odredište podataka na magistrali podataka. Preko upravljačke magistrale se prenose upravljači signali.

Širina magistrale podataka ima uticaja na performansu: što je šira magistrala podataka, to veći broj bitova može da se prenese odjednom. Širina adresne magistrale ima uticaj na kapacitet sistema: što je šira adresna magistrala, to je veći opseg lokacija kojima može da se pristupi.

Linije magistrale, takođe mogu da budu razdvojene u dve generičke vrste: namenske i multipleksirane. Namenska magistrala je stalno dodeljena ili jednoj funkciji ili fizičkom podskupu računarskih komponenata (na primer upotreba razdvojenih namenskih adresnih linija i linija podataka). Sa druge strane, kod multipleksiranih se iste linije koriste za višestruke namene. Prednost multipleksiranja je upotreba manjeg broja linija, što štedi prostor, a obično i troškove. Nedostatak je što je potrebno složenije elektronsko kolo unutar svakog modula.

2. GLAVNA MEMORIJA

Operativna memorija, glavna memorija ili unutrašnja memorija (RAM – Random Acces Memory – memorija sa neposrednim pristupom) jeste adresiva memorija koja služi za čuvanje podataka koji se koriste u procesu izvršenja mašinskih operacija u aritmetičko – logičkoj i upravljačkoj jedinici. To su polazni podaci za obradu i konačni rezultati obrade i instrukcije programa koji se izvršava.

Page 3: Racunari - prvi deo.doc

Organizacija

Sa logičke tačke gledišta, memorija je organizovana kao matrica ćelija. U jednu ćeliju se može upisati jedna binarna cifra, tj. jedan bit. Ćelije su grupisane u memorijske lokacije. Memorijska lokacija predstavlja adresibilnu jedinicu memorije, tj. svakoj memorijskoj lokaciji pridružuje se jedinstvena adresa. Znači, memorija se može zamisliti kao niz lokacija označenih adresama od 0 do n

Slika 1.2 Organizacija unutrašnje memorije

Karakteristike

Jedna od karakteristika kojom se odlikuje RAM memorija je to što se podaci mogu čitati iz memorije i novi podaci u nju upisivati. Druga posebna karakteristika RAM memorije je da je ona nepostojana, odnosno, ako se napajanje prekine, podaci se gube. Prema tome, RAM memorija može se upotrebiti samo kao privremeno skladište.

Oblici RAM memorije

Dva tradicionalana oblika RAM memorije koji se koriste u računarima su dinamičke (DRAM) i statičke (SRAM) memorije.

Dinamička RAM memorija (DRAM) pravi se od ćelija koje skladište podatke kao naelektrisanja na kondenzatorima. Prisustvo ili odsustvo naelektrisanja na kondenzatoru interpretira se kao cifra 1 ili 0. S obzirom na to da kondenzatori imaju prirodnu težnju da se prazne, dinamičke RAM memorije zatevaju periodično osvežavanje naelektrisanja da bi se održalo skladište podataka.Statička RAM memorija (SRAM) koristi flip-flop logička kola i informacija predstavlja stanje flip-flopa.Ćelija dinamičke memorije jednostavnija je i manja od ćelije statičke memorije. Dakle, DRAM memorija je gušća i jeftinija od odgovarajuće SRAM memorije. Sa druge strane, SRAM memorije su obično brže. Zbog tih karakteristika, SRAM memorija se koriste za keš memoriju, a DRAM memorija za glavnu memoriju.

3. KEŠ MEMORIJA

Keš memorija je namenjena da pruži memoriji brzinu koja se približava onoj koju imaju najbrže raspoložive memorije, a u isto vreme da obezbedi veliki kapacitet memorije po ceni jeftinijih vrsta poluprovodničkih memorija. Koncept je ilustrovan na slici 1.3. Postoji relativno velika i spora glavna memorija, zajedno sa manjom i bržom keš memorijom. Keš sadrži kopiju delova glavne memorije. Kada procesor pokuša da čita reč memorije, napravi se provera da bi se utvrdilo da li je reč u keš. Ako jeste reč se isporučuje procesoru. Ako nije, blok glavne memorije, koji se sastoji od nekog fiksnog broja reči, učitava se u keš i onda se reč isporučuje procesoru.

Slika 1.3 Keš i glavna memorija

Page 4: Racunari - prvi deo.doc

Na slici 1.4 prikazana je struktura sistema keš/glavna memorija. Glavna memorija se sastoji od adresibilnih reči, gde svaka reč ima jedinstvenu n-bitnu adresu. U svrhu preslikavanja, ta memorija je zamišljena da se sastoji od izvesnog broja M blokova fiksne dužine, svaki po K reči. Keš memorija se sastoji od C redova. Svaki red sadrži K reči, plus tag od nekoliko bitova; broj reči u redu zove se veličina reda. Broj redova je mnogo manji od broja blokova u glavnoj memoriji (C <<M). U bilo kom trenutku, neki podskup blokova memorije nalazi se u redovima keša. S obzirom na to da ima više blokova od redova, pojedinačni red ne može da se jedinstveno i trajno dodeli određenom bloku. Prema tome, svaki red uključuje tag koji identifikuje koji određeni blok je trenutno uskladišten.

Slika 1.4 Struktura keš/glavna memorija

Kada su keš memorije prvobitno uvedene, tipičan sistem je imao jedan keš. U novije vreme, upotreba višestrukih keš memorija je postala norma.Keš memorija u više nivoa Kako se gustina povećavala, postalo je moguće imati keš na istom čipu kao i procesor: keš na čipu. Većina konstrukcija uključuje i keš na čipu i spoljašnji keš. Najjednostavnija od takvih organizacija je poznata kao keš u dva nivoa, sa internim kešom označenim kao nivo 1 (L1) i spoljašnjim kešom označenim kao nivo 2 (L2).U novije vreme, postalo je uobičajeno da se keš deli na dva dela: jedan koji je namenjen za instrukcije i drugi za podatke.

4. PROCESOR

Procesor je uređaj koji može da vrši obradu podataka, transfer podataka i upravlja ostalim komponentama računara. Zadaci koje on treba da izvrši su:

- Donošenje instrukcija: procesor čita instrukcije iz memorije (registra, keša ili glavne memorije).- Interpretiranje instrukcija: dekodovanjem instrukcija ustanovljuje se koju je akciju potrebno

preduzeti.- Donošenje podataka: izvršavanje instrukcije može da zahteva čitanje podataka iz memorije ili

nekog U/I modula.- Obrada podataka: izvršavanje instrukcije može da zahteva izvršavanje neke aritmetičke ili logičke

operacije nad podacima.

Page 5: Racunari - prvi deo.doc

- Upisivanje podataka: rezultati izvršavanja mogu zahtevati upisivanje podataka u memoriju ili U/I modul.

Struktura procesora

Glavne komponente centralnog procesora su upravljača jedinica, aritmetičko-logička jedinica, registri opšte namene i upravljački registri.

Slika 1.5 Strukturna šema procesora

Upravljačka jedinica služi za prepoznavanje instrukcija koje se trebaju izvršiti, kao i za formiranje upravljačkih signala za izvršenje tih instrukcija.Aritmetičko – logička jedinica služi za realizaciju aritmetičko – logičkih i drugih mašinskih operacija.Registri opšte namene služe za privremeno čuvanje podataka i međurezultata prilikom izvršenja operacija.Upravljački registri služe za čuvanje informacija koje se koriste za upravljanje radom procesora.

Za izvršavanje instrukcija, ključni značaj imaju četiri registra:- Programski brojač (PC): sadrži adrese instrukcija koje treba doneti- Instrukcijski registar (IR): sadrži instrukciju koja je poslednja donesena.- Memorijski adresni registar (MAR): sadrži adresu lokacije u memoriji- Memorijski bafer registar (MBR): sadrži reč ili podatke koji će se zapisati u memoriju ili poslednju

pročitanu reč

Četiri registra, koje smo upravo pomenuli, koriste se za pomeranje podataka između procesora i memorije. U dizajnu mnogih procesora, postoji registar ili skup registara po imenu statusni registar (FLAGS) koji sadrži statusne informacije.

5. ARITMETIČKO – LOGIČKA JEDINICA I REGISTAR STANJA

Aritmetičko-logička jedinica (ALU) je deo računara koji stvarno izvodi aritmetičke i logičke operacije nad podacima. O tome koja operacija i nad kojim podacima treba da se izvrši saopštava upravljačka jedinica signalima za izbor operacije.

Aritmetičko-logička jedinica realizuje se kao prekidačka mreža sa 2n ulaza i n+u izlaza, gde je n dužina mašinske reči, a u su izlazi za indikatore u registru stanja (FLAGS). Na ulaz aritmetičko-logičko jedinice dovode se iz akumulatora AK i nekog drugog privremenog ili drugog registra PR dva binarna niza dužine n, a na izlazu se dobija binarni niz dužine n koji je rezultat neke definisane aritmetičke, logičke ili druge operacije nad ulaznim podacima. Ovaj se rezultat obično upisuje u akumulator AK.

Page 6: Racunari - prvi deo.doc

Aritmetičko-logička jedinica

Registar stanja FLAGS sadrži indikatore stanja. Jedan bit predstavlja jedan indikator ili jednu zastavicu. Ako je sadržaj ćelije 1, zastavica je podignuta, u suprotnom je spuštena. Na slici je prikazan registar stanja procesora Intel 8086.

CF (Carry Flag) – fleg prenosa, zauzima nultu ćeliju i postavlja se na 1 ako postoji prenos kod sabiranja, odnosno pozajmica kod oduzimanja. CF takođe čuva šiftovani ili rotirani bit koji izlazi iz nekog registra kao i rezultat operacije upoređivanja.

PF (Parity Flag) – fleg parnosti, je 1 ako rezultat operacije sadrži paran broj binarnih jedinica.AF (Auxiliary Flag) – pomoćni fleg prenosa zauzima 4. ćeliju flag-registra i koristi se prilikom rada

sa pakovanim decimalnim brojevima.ZF (Zero Flag) – nula fleg, sadrži 1 ako je rezultat operacije 0, u suprotnom sadrži 0.SF (Sign Flag) – fleg oznaka je merodavan kada se radi sa označenim brojevima. Ako je rezultat

operacije negativan, SF se postavlja na 1.TF (Trap Flag) – zamka-fleg se koristi prilikom izvršavanja instrukcija korak po korak. Ako je TF

postavljen na 1, mikroprocesor bira signal unutrašnjeg prekida posle izvršenja svake instrukcije. Ovo se koristi prilikom testiranja programa

IF (Interrupt Enable Flag) – fleg dozvole prekida. Ukoliko je IF postavljen na 0, mikroprocesor će ignorisati zahteve prekida. Ovaj fleg nema uticaja na nemaskirajuće prekide.

DF (Direction Flag) – fleg pravca se prvenstveno koristi prilikom rada sa niskama. Ako je DF=1 smanjuje se sadržaj indeks registra, a ako je DF=0, uvećava se sadržaj indeks registra.

OF (Overflow Flag) – fleg prekoračenja – ako je OF postavljen na 1, znači da je došlo do prekoračenja prilikom izvršenja neke operacije.

Flegovi TF, IF i DF se nazivaju kontrolni flegovi, a svi ostali su statusni flegovi.

6. KARAKTERISTIKE MAŠINSKE INSTRUKCIJE

Operacija procesora određena je instrukcijama koje on izvršava, a koje se zovu mašinske instrukcije ili računarske instrukcije. Zbirka različitih instrukcija koje procesor može da izvrši zove se skup instrukcija procesora.

Unutar računara, svaka instrukcija predstavlja se nizom bitova. Instrukcija je podeljena na polja koja odgovaraju elementima koji su sastavni delovi instrukcije. To su sledeći elementi:

- Operacioni kod: određuje operaciju koja treba da se izvede.- Referenca izvornog operanda: operacija može da obuhvati jedan ili više izvornih operanada.- Referenca rezultujućeg operanda: operacija može da proizvede rezultat- Referenca na sledeću instrukciju: ona kaže procesoru da donese sledeću instrukciju posle

završetka izvršenja posmatrane instrukcije

Operacioni kod Referenca operanda

Page 7: Racunari - prvi deo.doc

Za čoveka je teško da se bavi binarnim predstavljanjem mašinskih instrukcija. Stoga je postala uobičajena praksa da se koristi simboličko predstavljanje mašinskih instrukcija. Operacioni kodovi predstavljaju se skraćenicama koje se zovu mnemonici i ukazuju na operaciju. Uobičajeni primeri su:

ADD SabiranjeSUB OduzimanjeMUL MnoženjeDIV DeljenjeLOAD Učitavanje podataka iz memorijeSTORE Skladištenje podataka u memoriji

Jedan od tradicionalnih načina opisivanja arhitekture procesora je da se ona izrazi brojem adresa koje se sadrže u svakoj instrukciji. Većina instrukcija ima jednu, dve, tri ili pak ni jednu adresu za operande, pa se stoga razlikuju i troadresne, dvoadresne, jednoadresne i bezadrene instrukcije. U tabeli zbirno su data tumačenja instrukcija sa nula, jednom, dve ili tri adrese.

Broj adresa Simboličko predstavljanje Tumačenje3 OP A,B,C A B OP C2 OP A,B A A OP B1 OP A AC AC OP A0 OP T (T-1) OP T

A,B,C = lokacije memorije ili registaraAC = akumulatorT = vrh steka(T-1) = drugi element steka

7. INSTRUKCIJSKI CIKLUS

Osnovna funkcija koju izvodi računar je izvršenje programa, koji se sastoji od skupa instrukcija uskladištenih u memoriji. Obrada koja se zahteva za jednu instrukciju zove se instrukcijski ciklus. Instrukcijski ciklus obuhvata sledeće potcikluse:

- Donošenje: čitanje sledeće instrukcije iz memorije od strane procesora- Ivršavanje: interpretiranje operacionog koda i izvršavanje naznačene operacije- Prekid: ukoliko su prekidi dozvoljeni i dođe do njih, aktuelno stanje procesa se čuva i zatim se

opslužuje prekid.Sada ćemo se pozabaviti obradom instrukcije u svom najjednostavnijem obliku, koja se sastoji samo od dva koraka: donošenja i izvršnja, dok ćemo se sistemom prekida baviti nešto kasnije.

Tačan sled događaja tokom instrukcijskog ciklusa zavisi od dizajna procesora. Ipak, ovde možemo da navedemo ono što se svakako mora dogoditi. Pretpostavimo da se u procesoru primenjuju memorijski adresni registar (MAR), memorijski bafer registar (MBR), programski brojač (PC) i instrukcijski registar (IR).

Page 8: Racunari - prvi deo.doc

Slika 1.6 Protok podataka u ciklusu donošenja

Tokom ciklusa donošenja instrukcija se iščitava iz memorije. Na slici 1.6 ilustrovan je protok podataka tokom ovog ciklusa. Programski brojač sadrži adresu instrukcije koja će biti doneta sledeća. Ova adresa se premešta u memorijski adresni registar i smešta na adresnu magistralu. Upravljačka jedinica zahteva iščitavanje memorije i rezultat se smešta na magistralu podataka, kopira u memorijski bafer registar i zatim premešta u instrukcijski registar. U međuvremenu, vrednost programskog brojača se povećava za 1, što predstsavlja pripremu za sledeće donošenje

Ciklus izvršenja instrukcije obuhvata sledeće korake:- Dekodovanje operacije instrukcije: analizira se instrukcija da bi se odredila vrsta operacije za

izvršenje i operand (i)koji treba da se koristi (e).- Proračun adrese operanda: ako operacija obuhvata pozivanje na operand koji je u memorij, ili

raspoloživ preko U/I, onda se određuje adresa operanda- Donošenje operanda: operand se donosi iz memorije ili iz U/I- Operacija nad podacima: izvodi se operacija iz instrukcije- Skladištenje operanda: upisuje se rezultat u memoriju ili u U/I

8. MIKROOPEARCIJE I UPRAVLJAČKA JEDINICA

Rad računara se, prilikom izvršavanja programa, sastoji od niza instrukcijskih ciklusa, sa jednom mašinskom instrukcijom po ciklusu. Sve instrukcije izvršavaju se tokom instrukcijskog ciklusa koji se sastoji od kraćih potciklusa. Izvršavanje svakog od potciklusa obuhvata jednu ili više kraćih operacija, to jest, mikrooperacija.

Mikrooperacije su najmanje moguće operacije procesora. Posmatrajmo, recimo, ciklus donošenja koji se odvija na početku svakog instrukcijskog ciklusa i dovodi do toga da se instrukcija preuzme iz memorije. Detaljan opis ovog ciklusa je urađen u lekciji Instrukcijski ciklus. Vidimo da se jednostavan ciklus donošenja, u stvari sastoji od tri koraka i četiri mikrooperacije.

T1: (PC) -> MART2: memorija -> MBRT3. (MBR) -> IR PC= (PC) + 1

Svaka mikrooperacija obuhvata premeštanje podataka u registar ili iz njega.

Kategorije mikrooperacija:

- prenošenje podataka iz jednog registra u drugi- prenošenje podataka iz registra u spoljni interfejs

Page 9: Racunari - prvi deo.doc

- prenošenje podataka iz spoljnjeg interfejsa u register- izvršavanje operacija korišćenjem registaraSvođenjem operacija procesora na njihov najosnovniji nivo može se tačno definisati šta je to što upravljačka jedinica mora izazvati da se desi.

Upravljačka jedinica procesora obavlja dva zadatka: (1) dovodi do toga da processor izvršava mikrooperacije po pravilnom redosledu koji je određen programom koji se izvršava i (2) generiše upravljačke signale koji dovode do toga da se sve mikrooperacije izvrše.

Da bi upravljačka jedinica obavljala svoju funkciju, ona mora da ima ulaze koji joj omogućavaju da odredi stanje sistema i izlaze koji joj omogućavaju da upravlja ponašanjem sistema. Na slici je dat opšti model upravljačke jedinice, na kome su prikazani svi ulazi i izlazi.

Blok dijagram upravljačke jedinice

Ulazi su sledeći:Generator takta: upravljačka jedinica izziva izvršenje jedne mikrooperacije za svaki impuls generatora takta.Instrukcijski registar: operacioni kod tekuće instrukcije koristi se za određivanje koje mikrooperacije se obavljaju tokom izvršnog ciklusaMarkeri: neophodni su upravljačkoj jedinici da bi odredila status procesora i izlaz prethodnih operacija aritmetičko-logičke jediniceUpravljački signali sa upravljačke magistrale: upravljački deo sistemske magistrale obezbeđuje signale za upravljačku jedinicu, kao što su signali prekida ili potvrda.

Izlazi su:Upravljački signali unutar procesora: postoje dva tipa – oni koji izazivaju premeštanje podataka iz jednog registra u drugi i oni koji aktiviraju određene funkcije aritmetičko-logičke jediniceUpravljački signali ka upravljačkoj magistrali: takođe postoje dva tipa – upravljački signali ka memoriji I upravljački signali ka U/I modulima.

Koriste se tri tipa upravljačkih signala: oni koji aktiviraju neku funkciju aritmetičko-logičke jedinice, oni koji aktiviraju putanju podataka i oni koji su signali na spoljnoj sistemskoj magistrali ili drugim spoljnim interfejsima.