Professional Documents
Culture Documents
03 02 2010
03 02 2010
Arhitektura računara predstavlja osobine digitalnog računara koje su vidljive i dostupne programeru.
(instrukcijski set, broj bita korišten za predstavljanje podataka, U/I mehanizmi, tehnike
adresiranja itd.) (npr. da li postoji instrukcija za množenje ili je treba isprogramirati?).
Kompatibilnost koda između različitih serija procesora istog proizvođača se postiže korištenjem
iste bazične arhitekture.
Struktura i funkcija su pojmovi pomodu kojih se opisuju sistemi kakav je računar (pod strukturom se
podrazumijevaju odnosi između komponenti dok se pod funkcijom odnosno ponašanjem
podrazumijeva uloga svake od komponenti):
Struktura računara: CPU (central processing unit), glavna memorija, sabirnica, IO.
Struktura CPU: registri; ALU, interna CPU sabirinica, control unit-upravljačka jedinica.
Von Neumanova mašina - predstavlja mašinu sa konceptom pohranjenog programa (stored Program
concept 1945.)
Funckije koje računar obavlja su: Procesiranje podataka (logička kola), pohranjivanje podataka
(memorijski elementi), premještanje podataka (interkonekcije) i kontrola (interkonekcije).
Mooreov zakon (Gordon Moore) predviđa povedavanje gustode komponenti na čipu: »Broj tranzistora
de se udvostručavati svake godine« – 1965. Veda gustina pakovanja komponenti smanjuje
veličinu krajnjeg proizvoda, smanjuje rastojanja interkonekcija i potrošnju, a povedava
fleksibilnost.
IBM serija 360, nastala 1964. predstavlja prvu planiranu »porodicu« računara sa sličnim ili identičnim
instrukcijskim setom / operativnim sistemom.
DEC PDP-8 je nastao 1964, i predstavlja prvi miniračunar, malih dimenzija. Mogao je stati na radni stol.
Koštao oko 16000 dolara. Struktura sabirnice za DEC PDP:
»Intel 4004« je prvi mikroprocesor (sve komponente na jednom čipu); 4-bitni za kalkulator. Kasnije se
pojavio i 8 bitni mikroprocesor, a nakon toga dolazi prvi mikroprocesor opšte namjene.
Brzina memorije zaostaje za brzinom procesora. Moguda rješenja ovog problema su:
Učiniti DRAM širim umjesto dubljim (Vedi broj bita koji se čita),
Dodavanje keš memorije kao posrednika u interakciji sa DRAM-om,
Povedati kompleksnost keša i ugraditi ga na sam čip (Time se smanjuje učestalost čitanja
memorije),
Povedati propustnost sabirnice.
protočnih struktura,
keša na čipu i višeslojnog keša,
predviđanja grananja,
analize toka podataka...
gušde pakovanje,
povedanje frekvencije sata,
veda brzina i veličina keša (2 ili 3 nivoa između procesora i memorije) + keš na procesoru,
poboljšanje organizacije,
paralelizmi,
Novi pristup - VIŠEJEZGRENOST PROCESORA!
ALU (aritmetičko-logička jedinica) vrši sve računske operacije. Svi ostali dijelovi opslužuju ALU. ALU vrši
operacije na cjelobrojnim podacima ali može vršiti operacije i nad realnim brojevima. Ulazi i
izlazi ALU:
„Predznak + Vrijednost“ Kod - Najznačajniji bit je predznak dok su ostali biti vrijednost. Problem je u
tome što postoje dvije nule potrebno je vršiti posebnu provjeru za predznak i veličinu.
2 komplement kod - sve se cifre invertuju logičkim komplementom i doda se jedinica. Prednost je u
jedinstvenoj nuli, jednostavnoj negaciji i aritmetičkim operacijama.
M=bazae. Exponent se odabere tako da mantisa M ima samo jedan broj (različit od nule) lijevo
od zareza.
IEEE 754 standard.
Instrukcijski set predstavlja kompletan skup instrukcija koje CPU može izvršiti. Instrukcija je određena
jedinstvenim simbolom i jednistvenim brojnim kodom.
Instrukcija sadrži:
Svaka instrukcija je određena jedinstvenim mašinskim kodom (binarni kod asemblerski kod kao
pojednostavljenje).
Tipovi instrukcija:
Instrukcije se obično izvršavaju nad nekim operandima. Ukoliko se radi o procesorskim instrukcijama ili
instrukcijama vezanim za I/O uređaje, operandi se nalaze u registrima. Ukoliko se radi o
instrukcijama vezanim za memoriju, operandi se nalaze u kešu ili u virtuelnoj memoriji.
Tipovi operanada:
Adrese,
Brojevi,
Karakteri,
Log. Vrijednosti.
Pri transferu podatka je potrebno zadati Izvor, Destinaciju i Smijer (LOAD, STORE, MOV) podatka.
Instrukcija sadrži:
Operacioni kod,
Reference na operande,
Reference na rezultat,
Referenca na sljededu instrukciju.
Izgled Instrukcije:
U format instrukcije uključeni su op. kod i eventualno operandi. Računar izvršava instrukciju u tzv.
atomičnim operacijama (dobavi/izvrši ciklus). Svaki ciklus se sastoji od više koraka, a svaki korak izvrši
nešto jednostavno i time pridonosi izvršavanju programa. Big endian (Internet PC RISC arhitekture)
najmanje značajan bajt smješta na najvišu adresu. Little endian (Pentium 80x86) smješta najmanje
značajan bajt na najnižu adresu.
Dobavlja instrukcije,
Interpretira (dekodira) instrukcije,
Izvršava instrukcije:
Dobavlja podatke,
Procesira podatke,
Piše podatke.
Dodatni ciklus u izvršavanju je prekid. Procesor provjerava da li se desio prekid (indiciran signalom
prekida). Ako prekid čeka:
Zaustavlja se izvršavanje trenutnog programa (zapamti kontekst izvršavanja tj. gdje je »stao«).
U PC se ubaci početna adresa rutine za obradu prekida.
Obradi se prekid i vrada se se na dio gdje je prekinut program.
U slučaju višestrukih prekida, procesor ignoriše svaki sčkededi prekid dok obrađuje jedan prekid. Sljededi
prekid čeka do kraja obrade prethodnog prekida. Ponekad je potrebno i dodefinisati prekide tj.
definisati im prioritet gdje prekidi nižeg prioriteta mogu biti prekinuti prekidom višeg prioriteta.
Na slici je prikazan tok podataka pri indirektnom adresiranju za tumačenje sadržaja IR:
Svaki korak izvrši nešto jednostavno, malo, i time doprinese izvršavanju instrukcije koja doprinosi
izvršavanju programa. Ove korake u izvršavanju možemo nazvati atomičnim operacijama CPU tj.
mikro-operacije.
Memory Address Register (MAR) – specificira adresu za operaciju čitanja ili pisanja,
Memory Buffer Register (MBR) - sadrži podatak koji se piše ili koje je zadnji pročitan,
Program Counter (PC) - pokazuje na sljededu instrukciju i
Instruction Register (IR) - sadrži zadnju pročitanu instrukciju.
Pri dobavljanju operanada se efektivna adresa (EA) treba se smjestiti u MAR i podatak pročitati iz
memorije:
Direktno:
Indirektno:
Unutar CPU:
Uzrokuju premještanje podataka
Aktiviraju određene funkcije
Preko upravljačke sabirnice:
Prema memoriji
Prema U/I modulima
Dobavljanje instrukcije:
MAR (PC) C2
Upravljačka jedinica aktivira signal koji de otvoriti vrata između PC i MAR
MBR (memorija)
Otvaraju se vrata između MAR i adresne sabirnice C0
Aktvira se upravljački signal READ CR
Otvaraju se vrata između sabirnice podataka i MBR C5
Ožičena (svaki bit ima jedinstveno značenje. Svaki operacioni kod je jedinstven za svaku
instrukciju i zahtijeva različite upravljačke signale. Kodiran je binarno. Dekoder preuzima
kodirani ulaz i proizvodi jedinstven signal na izlazu. Sat daje periodičan niz četvrtki. Dizajn i
dodavanje novih instrukcija su jako teški zadaci),
Mikro programirana CU (pojednostavljen dizajn, niža cijena, manje grešaka ali sporije
izvršavanje).
MIKRO-PROGRAMIRANA CU
Mikro instrukcija predstavlja skup upravljačkih signala sa vrijednostima potrebnim da se pravilno izvrši
mikro-operacija.
Mikro program ili kod predstavlja niz mikro-instrukcija potreban da upravlja izvršenjem kompleksnih
operacija.
Zadatak CU je ustvari generisanje skupa upravljačkih signala zavisno od mikro programa koji se izvršava.
Svaki od tih signala ima vrijednost ili 0 ili 1. Pri kreiranju ovakve CU prvo formiramo mikro riječ tj.
instrukciju (neophodno je da sadrži informaciju o tome koja je sljededa mikro instrukcija u
zavisnosti od uslova izvršavanja), a onda definišemo niz upravljačkih riječi kako bi omogudili
izvršavanje jedne mašinska instrukcija, definišemo odgovarajudi mikro-kod za sve mašinske
instrukcije, definišemo mikro–kod koji upravlja sekvenciranjem izvršavanja mikro–instrukcija.
Mikro sekvencerska logika (slika) postavlja adresu sljedede mikro instrukcije u zavisnosti od
upravljačkih signala i ALU zastavica.
Vertikalni mikro-kod: svaka mikro-instukcija definiše jednu mikrooperaciju koja se treba izvršiti.
Horizontalni mirko-kod: svaka mikro-instrukcija definiše mnogo različith mikro-operacija koje se
trebaju izvršavati paralelno.
Predavanje 8 - Memorija
RAM (random access memory) je poluprovodnička memorija sa direktnim pristupom (čitanje i pisanje)
svakoj od lokacija. Može biti statička (SRAM) i dinamička (DRAM), a služi za privremeno smještanje
podataka (podaci se gube kada memorija nije pod napajanjem).
Statički RAM - Informacija se pohranjuje u vidu stanja prekidača (on/off) pa prema tome, ne dolazi do
pojave gubitka informacije sa vremenom (nije potrebno osvježavanje). Koristi se za keš
podsistem.
ROM (read only memory) je memorija za trajno pohranjivanje podataka. Koristi se pri realizaciji
mikroprogramirane upravljačke jedinice, za pohranjivanje sistemskih programa (BIOS-a) te za tabele
funkcija.
Organizacija Memorije
Kada govorimo o organizaciji memorije, onda se npr. čip od 16 Mb (Mb je skradeno od MegaBit = 10242
bit-a, a MB je skradeno do MegaByte = 10242 byte-a) može realizovati na više načina. Jedan od načina
realizacije jeste da koristimo 1M=10242 16-bitnih riječi.
Ukoliko za realizaciju segmenta od 16 Mb koristimo 1Mb čipove, gdje za riječ od 16 bita svaki čip
učestvuje sa jednim svojim bitom, to demo za realizaciju ovog segmenta morati koristiti 16 ovakvih
čipova.
Ukoliko za realizaciju istog takvog segmenta koristimo (256k x 16) bitne čipove, to demo za realizaciju
ovog segmenta sada morati koristiti 4 ovakva čipa.
Jedan 16Mb čip se može organizovati kao (4096x4096) polje bita odnosno (4x2048x2048) matrica u
prostoru. Za adresiranje ovakve matrice potrebno je 11 bita (211=2048) pri čemu su adrese redova i
kolona multipleksirane.
Kao što je prethodno napomenuto, dinamički RAM zahtijeva logiku za osvježavanje memorije (na slici
'Refresh circutry'). Data logika onemoguduje pristup memoriji pri osvježavanju iste (brojač generiše
adrese redova koji se osvježavaju), a poziva se nakon svakog čitanja iz memorije (čitanje iz memorije ima
za posljedicu pisanje u memoriju što znatno usporava rad iste).
SDRAM (Sinhroni DRAM) - kod kojeg vanjski sat sinhronizuje pristup (ovo omogudava da CPU
unaprijed zna kada de podaci iz SDRAM-a biti spremni te da u vremenu u kojem bi inače čekao
na podatak, CPU radi neke druge operacije). Također SDRAM podržava i tzv. Burst mod rada u
kojem je mogude čitati niz podataka odjednom.
DDR-SDRAM (Double Data Rate SDRAM) omogudava pristup dvostruko vedoj količini podataka
(okida i na rastudu i na opadajudu ivicu sata).
RAMBUS RDRAM itd.
Keš Memorija - predstavlja memoriju relativno malog kapaciteta ali velike brzine koja posreduje između
CPU i glavne memorije. Obično je smještena na CPU čipu (ili modulu). Kada CPU traži pristup
memorijskoj lokaciji na adresi A, prvo se vrši provjera da li je podatak ved u kešu. Ako jeste, podatak se
uzima iz keša, a ako nije, podaci se čitaju u keš i predaju se procesoru. Keš uz svaki blok podataka čuva
tag kojim se na jedinstven način određuje lokacija podataka u glavnoj memoriji. Tag je dio adrese koji je
zajednički za sve podatke u bloku.
Direktno mapirani Keš - Struktura adrese - Ukoliko je algoritam zamjene onog što se trenutno nalazi u
kešu sa novim podacima takav da je za svaki od podataka iz glavne memorije rezervisano konkretno
mjesto u kešu, onda je keš direktno mapiran. Npr. Keš se sastoji od 1024 bloka gdje svaki blok ima 4
bajta. Adresa za odabir podatka iz memorije je 32-bitna. Za odabir odgovarajudeg bajta u odgovarajudem
bloku potrebna su 2 bita (2-bitni ofset), a za odabir odgovarajudeg bloka potrebno je 10 bita (10bitni
indeks - 210=1024 bloka u kešu). Za Tag nam u ovom slučaju ostaje na raspolaganju 20 bita.
Kada CPU želi da pročita podatak sa neke adrese u memorji, on prvo odabere red u kešu koji je definisan
sa 10-bitnim indeksom.
Ukoliko se Tag adrese sa koje CPU želi da čita podudara sa Tagom u odabranom redu keša , onda CPU
koristi i preostala 2 bita za odabir bloka i čita podatak koji je upisan u datom bloku. Ukoliko se Tag
adrese sa koje CPU želi da čita i Tag koji je upisan u odgovarajudem redu keša ne slažu, onda CPU
dobavlja podatak iz memorije i smješta u Tag keša pod tim indeksom isti taj tag i dati podatak.
Asocijativni Keš - Ukoliko je algoritam zamjene onog što se trenutno nalazi u kešu sa novim podacima
takav da je bilo koji od podataka iz glavne memorije može biti spremljen na bilo koje mjesto u kešu,
onda je keš potpuno asocaijtivan (postoje i djelimično asocijativni kešovi). Ovdje se porede cijeli Tagovi
da bi se ustanovilo da li je dati podatak u kešu ili ne (postoji samo tag i ofset).
Grupno Asocijativni (višestruko preslikani) Keš - Indeks kod ovakvog tipa keša-a pokazuje tj. identificira
grupu blokova u kojoj se traži podatak pri čemu svaki blok ima svoj odgovarajudi tag. Porede se tagovi sa
tagom iz adrese da bi se pronašao blok sa podacima.
LRU - Least Recently Used (Odbacuje se podatak koji je posljednji korišten s logikom da de do
njegovog sljededeg korištenja vjerovatno prodi toliko vremena da de na mjestu na kojem se
nalazi taj podatak neki drugi podatak biti korisniji)
FIFO - First-In-First-Out (Podatak koji je prvi spremljen de prvi biti i odbačen tj. obrisan)
LIFO – Last-In-First-Out (Podatak koji je posljednji spremljen u keš de biti prvi obrisan)
Slučajni odabir - Random
Prefetch (dobavaljnje unaprijed) Predstavlja jedan od načina poboljšavanja performansi rada procesora.
Dobavljanje instrukcije zahtjeva čitanje iz memorije dok izvršavanje instrukcije obično ne zahtijeva
pristup memoriji. Prema tome, mogude je dobaviti sljededu instrukciju u toku izvršavanje tekude.
Međutim, kako dobavljanje u principu traje krade od izvršavanja instrukcije, to je za npr. dvostruko
ubrzanje rada procesora potrebno unaprijed dobaviti više instrukcija od samo jedne. Ovdje prave
problem skokovi i grananja koja treba predvidjeti i dobaviti iz memorije sljededu instrukciju po
hronologiji, a ne po prostoru u memoriji.
Na slici je prikazan vremenski dijagram protočne strukture sa segmentima izvršavanja instrukcija koji se
u protočnoj strukturi mogu paralelno izvršavati:
Što je više segmenata vede je ubrzanje – više instrukcija paralelno. S druge strane, logika koja upravlja
tranzicijama između segmenata postaje prekompleksna i rezultuje uskim grlom implementacije
protočne srukture.
Superskalar CPU arhitektura - implementira paralelizam unutar jednog procesora. Superskalar procesor
izvršava više od jedne instrukcije tokom jednog ciklusa na način da simultano šalje više instrukcija
redundantnim funkcijskim jedinicama procesora. Ovo je primjenjivo i na RISC i na CISC procesore, ali u
praksi se primjenjuje više na RISC-u. Pola ciklusa postaje dovoljno za faze protočne strukture pa se
prema tome postiže duplo brži takt. Što se tiče ograničenja, tu se najviše ističe: