Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 6

Pohranjivanje podataka

Radna memorija-organizacija Memorija, o kojoj je ovdje rije, ugraena je u samo


raunalo. To je ona memorija koju procesor (CPU) koristi za neposrednu pohranu i dobavu
podataka. Dok je raunalo ukljueno i dok obrauje podatke, ti podaci i programi nalaze se u
radnoj memoriji. Zbog potrebe uvanja podataka, raunala sadre ogromne koliine sklopova
koji uvaju jedan jedini bit. Taj priuvnik bitova u biti je radna memorija. Sklopovi glavne
memorije raunala organizirani su u jedinice kojima moemo pristupati, a zovu se elije
(lokacije) tipine duine od 8 bita. U stvari, skup od 8 bitova postao je toliko popularan da se
je termin BYTE uobiajilo koristiti kao izraz koji oznaava skup bitova te veliine.
Memorijske lokacije moemo zamisliti kao niz pretinaca, od kojih svaki ima svoju adresu. I
ne samo da svaka memorijska jedinica ima svoju adresu, nego i unutar pojedinog bytea zna se
toan redoslijed bitova prema vanosti. Krajnje lijevi bit u byteu je bit najvee vanosti, a
onaj krajnje desni je najmanje znaajan bit. Kao bitnu posljedicu oznaavanja (adresiranja)
byteova i bitova u njima, itavu glavnu memoriju moemo predstaviti jednim dugakim
redom. Dijelovi tog dugog reda mogu se iskoristiti za pohranjivanje uzorka bitova koji je dulji
od 1 bytea. Obino ga spremamo u string koji je cjelobrojni viekratnik osnovne memorijske
elije. Osim toga, ovakav nain organiziranja memorije omoguava nam dobavljanje sadraja
sa svake memorijske lokacije posebno. Stoga se podacima moe pristupati preko reda, bez
obzira gdje su (kaotino random) pa se ovakve memorije zovu RAM-ovi (random access
memory). Osim tih vrsta memorije, glavnu memoriju ine i ROM-ovi (memorije koje slue
samo za itanje). Kapacitet memorije mjeri se ukupnim brojem bajtova koji se mogu u nju
pohraniti. Dananja raunala imaju 128 MB, 256 MB kapacitet glavne memorije.
Jo malo openito o kapacitetu:
Obiaj je projektirati memorijski sustav tako da ukupan broj lokacija moemo izraziti kao
potenciju broja 2. Suprotno tome, veliina memorije kod starijih sustava esto se mjerila
jedinicom od 1024 bita (2 na 10). Kako je 1024 otprilike jednako 1000, drutveno je
prihvaen prefiks kilo kao dodatak osnovnoj jedinici. Stoga je termin kilobajt (KB) oznaavao
1024 bita, a za stroj sa 4096 adresnih lokacija govorilo se da ima 4 KB memorije. Kako je
memorija postajala sve glomaznija, u upotrebu je doao termin mega (2na20) i giga. Primjena
ovih prefiksa pogreka je u odnosu na terminologiju (km, MHz...), pa je negdje izazivala
nesporazume. Jedan od novijih pomirljivih prijedloga predlae upotrebu "kibi"-ja, kao
skraenicu za kilobinary, pa bismo kapacitet izraavali sa, primjerice 256 MebiByte-a.
Memorija-vrste
RAM-memorija je upisno ispisna memorija u koju se mogu upisivati podaci i iz nje itati
onoliko puta koliko elimo. Pohranjeni podaci ostaju u ovoj memoriji dok ih raunalo
namjerno ne promijeni ili dok se ne prekine napajanje memorije elektrinom energijom.
Dakle RAM gubi svoj sadraj prestankom napajanja, pa se naziva i nepostojana memorija
(engl. Volatile)
Glavne znaajke RAM-a su kapacitet i brzina rada. Poeljno je da RAM bude to veeg
kapaciteta kako bi se pohranilo to vie podataka. Neki RAM usporeuju sa radnim stolom:
to je vei to nam je dostupnija i preglednija vea koliina razliitih papira, pa je logino da
e raunalo sa veim RAM-om biti ugodnije (bre) za koritenje. Brzina rada RAM-a
odreene je brzinom kojom ova memorija pohranjuje i izdaje podatke. Za itanje nekog
podatka iz memorije potrebno je navesti adresu memorijske lokacije na kojoj se nalazi
podatak. Vrijeme koje protekne od trenutka kada se na adresnim sabirnicama pojavi adresa
treenog podatka do trenutka kada se na podatkovnim sabirnicama pojavi sam podatak zove
se vrijeme pristupa memoriji (access time). Vrijeme pristupa ograniava brzinu kojom se
mogu itati podaci iz memorije i upisivati u nju, pa moe ograniiti brzinu rada cijelog

raunala. RAM-ovi dananje tehnologije imaju vrijeme pristupa 10.tak nanosekunda.


Suvremeni RAM-ovi izgraeni su u poluvodikoj tehnologiji i razlikujemo dvije vrste:
statiki
dinamiki.
SRAM-statiki RAM; vrsta je radne memorije kod koje je svaki bit pohranjen u jednom od
bistabilnih sklopova smjetenim u memorijskom integriranom sklopu. Prednosti SRAM-a su
jednostavnost grae, jednostavnost pogona i veoma brz pristup memoriji. Nedostatak su mu
relativno velike dimenzije bistabilnog sklopa, to ograniava broj bistabila koji se mogu
smjestiti na jednu ploicu poluvodia. SRAM-ovi su znatno manjeg kapaciteta od dinamikih
memorija, a znatno su vee cijene. U SRAM-u se pohranjuje mala koliina podataka (npr.
Pohrana karakteristinih parametara raunala, cache-brza priruna memorija)
DRAM dinamiki RAM; vrsta je radne memorije kod koje je svaki bit pohranjen kao naboj
u minijaturnom kondenzatoru smjetenom u memorijskom integriranom sklopu. Zbog
nesavrenosti dielektrika u kondenzatoru, naboj pohranjen u kondenzatoru postepeno se gubi,
pa se time gubi i podatak. Kako se to ne bi dogodilo, potrebno je naboj obnoviti prije nego li
se kondenzator potpuno isprazni. Obnavljanje se obavlja pomou posebnih sklopova koji
najprije itaju podatke, a zatim obnavljaju naboj svakog kondenzatora sukladno oitanoj
vrijednosti. Obnavljanje naboja (memory refreshing) provodi se svakih nekoliko milisekunda
ili ee, to znatno usporava i komplicira komunikaciju DRAM-a s okolinom. Prednosti su
malene dimenzije kondenzatora koji pohranjuje bit vrijednosti, pa je mogue smjestiti mnogo
takvih kondenzatora na jednu ploicu poluvodia. Nedostatak DRAM-a je potreba za
relativno sloenim pogonskim sklopom i sporost u radu uzrokovana obnavljanjem memorije.
Cijena mu je nia od cijene statikih memorija, tako da je DRAM uobiajena radna memorija
u suvremenim osobnim raunalima.
ROM memorija (read only memory) ispisna je memorija, tj. Memorija u koju se podatak
moe upisati samo jednom. Nakon upisa podatak se moe itati onoliko puta koliko se eli, ali
ne i mijenjati, brisati ili upisivati novi podatak. Zato je primjena ove memorije ograniena na
pohranu podataka koji su uvijek jednaki i nepromijenjeni. Takvi su primjerice podaci u svezi s
prikazom slova na ekranu, dijelovima operacijskog sustava, itd. Takvih, nepromijenjivih
podataka ima relativno malo, pa je ugraeni ROM malog kapaciteta (128 KB).
Brza priruna memorija cache;
Kada procesor dobavlja podatke iz RAM-a, treba mu prosjeno oko 60ns. Kako
mikroprocesor radi puno bre (u ciklusima od 2 ns) to gubi jako puno vremena ekajui na
podatke iz RAM-a. Problem se pojavio zbog nerazmjera u poveanju brzine rada izmeu
procesora i memorije. Naime, vei broj komponenti na jedinici povrine integriranog sklopa
rezultira veim poveanjem brzine rada procesora u odnosu na memoriju, to je vidljivo na
slici Sl.1.

Sl.1. Krivulje koje pokazuju nejednako poveanje efikasnosti obzirom na broj komponenti
integriranih na chipu
Zbog toga je trebalo postojei sustav sistemske memorije poboljati ili ugradnjom bre
memorije, to bi znaajno poskupilo cijenu sustava ili odgovarajuim tehnikim inovacijama.
U ovom sluaju, hijerarhijska organizacija memorije (Sl.2.),pokazala se kao idealna jer se
dodavanjem malenog kapaciteta brze memorije (SRAM tehnologije) trebala ubrzati velika

Sl.2. Hijerarhijska organizacija memorije


koliina spore i manje skupe memorije. Tako je na samom procesoru ugraen tzv. L1 cache,

mala priruna memorija iji sadraj sa lokacija procesor dobavlja jednako brzo kao i iz svojih
registara, a izvan procesora ugrauje se u raunarski sustav tzv. L2 cache, brzi memorijski
spremnik u koji se pohranjuje dio podataka iz RAM-a za koje se pretpostavlja da e ih
procesor ubrzo zatraiti. L2 cache otprilike je duplo bri od RAMa i ima kapacitet od 512KB
do 1MB.
Kako cache funkcionira?
Glavna se memorija sastoji od 2^n adresibilnog prostora rijei, kod kojeg svaku rije
dohvaamo pomou n-bitne adrese. Da bismo podatke prebacili u cache, memoriju dijelimo
na odgovarajue blokove rijei fiksne duine K. Stoga je ukupan broj blokova M=2^n/K.
Cache je podijeljen na C linija u koje moe stati K rijei. Kako je cache manji od memorije to
e i broj raspoloivih linija biti manji od ukupnog broja blokova (C<<M) to znai da e samo
odreeni broj blokova moi biti u cacheu. Ako se ita neka rije izodreenog bloka tada se
itav taj blok prebacuje u jednu liniju cache memorije. Kako ima vie blokova nego linija,
jedna se linija nikada ne moe trajno pridjeliti samo jednom bloku nego svaka linija sadri
oznaku koja govori o tome koji memorijski blok trenutno zauzima odreenu liniju cachea. Tag
je formiran od dijela bitova koji specificiraju adresu bloka u glavnoj memoriji (Sl.3.).

Sl.3. Struktura cachea i glavne memorije


Efikasnost cache memorije:
Efikasnost cache memorije odreuje broj koji govori koliko je puta procesoru stvarno i
isporuen podatak nakon to ga je zatraio. U tom kontekstu esto se koriste termini kao to je
pogodak (hit) koji oznaava da je podatak kojeg procesor trai stvarno i pronaen u cache
memoriji. U sluaju da ga tamo nema kaemo da je rije o promaaju (miss). Postoje tri
razliita tipa promaaja:

Nezaobilazni (compulsory) promaaj pri prvom posezanju za podacima iz memorije


kada je cache jo prazan;
Kapacitetni (capacity) promaaj koji se javlja ako se svi potrebni blokovi ne mogu
smjestiti odmah u cache nego ih se dobavlja kasnije. Uzrok promaaja je nedostatna
veliina cache memorije.
Konfliktni promaaj je onaj koji nastaje zbog primijenjene strategije prebacivanja
podataka u cache. Naime ukoliko vie blokova iz RAM-a pretendira na isto mjesto u
cache memoriji, ne mogu se svi uitati odmah nego ih se dobavlja kasnije. Ponekad se
ova vrsta promaaja zove promaajem kolizije ili interferencije;

Vrijeme potrebno za dobavljanje podatka iz cachea je vrijeme pogotka (hit time). Ukoliko se
podatak ne dohvati, govorimo o promaaju, pa u tom sluaju dohvaaju se podaci iz
hijerarhijski nie memorijske strukture i premjetaju u cache. Vrijeme koje protekne da se
dohvati blok iz nie memorijske strukture, a zatim prebaci u cache i iz njega dohvati podatak,
nazivamo globom za promaaj (miss penalty). Uspjenost pogaanja (hit ratio) mjeri se kao
postotak uspjeno dobavljenih podataka iz cachea u odnosu na ukupan broj posezanja,
neuspjenost (miss ratio) je komplementarna vrijednost i raunamo je kao 1-hit_ratio. Cilj je
da uspjenost pogaanja bude to je mogue vea.
Primjer:
Pretpostavimo da za dohvaanje podataka iz L1 cachea treba 10 ns, a iz glavne memorije
100ns. Ukoliko je upsjenost pogaanja 90%, to znai da e tijekom 10 posezanja za
podacima, 9 biti u cacheu, a 1 u RAMu. Bez cachea, trebalo bi nam ukupno
T1=10*100ns=1000ns
vremena za dobavljanje podataka. U sluaju cache-a, treba nam
T2=1*100+9*10=190ns,
to znai da smo itav postupak ubrzali za 1000/190=5.3 puta.
Sa ciljem da se to vie povea postotak uspjenosti, razvijene su razliite tehnike, koje
djeluju na razliite uzroke promaaja. Tehnike se odnose na:

veliinu cachea
funkcije koje preslikavaju podatke iz RAMa u cache

algoritme temeljem kojih se postojei blokovi iz cachea zamjenjuju novima

nainom na koji se upisuju blokovi

odabirom veliine blokova

brojem cache memorija

Heksadecimalno oznaavanje

Kada promatramo unutarnju aktivnost u raunalu, baratamo sa nizovima bitova koji mogu biti
prilino dugi. Takvi se nizovi zovu stream-ovi. Na alost, ljudski mozak nije prilagoen
baratanju sa stream-ovima. Samo prepisivanje uzorka od desetak nula i jedinica je zamorno i
podlono pogrekama. Zbog toga, da bismo sve skupa pojednostavnili koristi se
heksadecimalno oznaavanje

You might also like