Spoznali bomo pomnilno celico, osnovne izraze v zvezi s pomnilnikom ter mehanizem shranjevanja podatkov pri paralelnih in serijskih pomnilnikih.
Pomnilna celica je preprosto
elektronsko vezje, ki mu lahko vsilimo eno od dveh možnih napetostnih stanj, ki
ga nato vezje ohranja, dokler mu ne vsilimo drugega stanja. S tema dvema
napetostnima stanjema lahko predstavimo dve vrednosti enobitnega podatka: nizka
napetost (0V) pomeni binarno vrednost "0", višja napetost (5V) pa
binarno vrednost "1".
Informacija, zapisana v pomnilniški celici, je majhna, zato celice združujemo v
skupine po 8. Takšni skupini pomnilniških celic pravimo register, v
našem primeru 8-bitni register. Vanj lahko vpišemo 8-bitni podatek, ga
preberemo, vpišemo drug podatek … Dolžina pomnilniške besede je lahko
tudi 16 bit, 32 bit …
Pomnilnik sestavlja
večje število registrov. Registrom v pomnilniku običajno rečemo lokacije.
Da lahko uporabimo določeno lokacijo, mora ta imeti svoj naslov, nekakšno
zaporedno številko oziroma "koordinate", s katerimi jo dosežemo.
Dolžina naslova pove, s kolikimi biti je lahko podan naslov posamezne
lokacije. Če je naslov 16-biten (torej dolg do 16 binarnih mest), lahko
zapišemo 216 različnih naslovov in torej naslovimo 216
pomnilniških lokacij. Iz dolžine naslova lahko ugotovimo število lokacij, ki
jih ima pomnilnik.
Najpogostejša organizacija pomnilnikov je N * 8 bit, najdemo pa tudi pomnilniška
integrirana vezja z organizacijo N * 1, s čimer lahko sestavimo
pomnilnike z želeno dolžino pomnilniške besede. Pomnilniška beseda je
skupina bitov, dostopnih na določenem pomnilniškem naslovu.
Če poznamo število naslovnih linij in dolžino pomnilniških besed
(lokacij), lahko izračunamo celotno kapaciteto pomnilnika:
kapaciteta pomnilnika = število lokacij * dolžina pomnilniške besede |
Dolžino pomnilniške besede izražamo v zlogih,
enako tudi kapaciteto pomnilnikov. Za večje kapacitete uporabljamo predpone K
(kilo), M (mega), G (giga), T (tera). Kilo tu pomeni 210,
mega ni 220, giga 230, tera pa 240.
Primer 1:
Pomnilnik ime 12 naslovnih linij in 8-bitno podatkovne besede. Njegova
kapaciteta je 212 zlogov (bajtov) ali 4*210 B = 4 KB.
Primer 2:
Pomnilnik ime 14 naslovnih linij in organizacijo N * 1. Njegova kapaciteta
je 214 bit (!) =2*210 * (23 bit) = 2
* 210 zlogov (bajtov) ali 2 KB.
Vsebina lokacije je zaporedje binarnih vrednosti. Predstavlja lahko
podatek ali del podatka, ukaz ali del ukaza. Če izpišemo (binarno) vsebino neke
lokacije, ne moremo o njenem pomenu povedati ničesar, dokler ne vemo kaj
predstavlja in kako je bila kodirana.
Izpis vsebine pomnilnika je ponavadi najpreglednejši v šestnajstiški
(heksadecimalni) obliki.
Primer: " Na naslovu 0200C h je shranjen
podatek EB h". Oznaka h pomeni heksadecimalni
(šestnajstiški) zapis. Včasih je uporabljen znak $, ali posebna oblika
zapisa, na primer 0x0200C.
Zapisani primer (velja tudi za spodnjo sliko) bi lahko zapisali tudi po
dvojiško, kot je v resnici:
"na naslovu 0000 0020 0000 0000 je shranjen podatek 1110 1011."
Poišči ta podatek! (najdeš ga v tretji
vrstici)
Slika:
Primer vsebine nekega FlashRom pomnilnika. Naslovi so oštevilčeni v
heksadecimalnem zapisu, prav tako vsebine. V vsaki vrstici so prikazane vsebine
šestnajstih zaporednih lokacij. Vsebine v spodnjem delu slike so FF (dvojiško
same enice), kakršna je bila v tem pomnilniku pred pisanjem (torej
prazno).
Delovanje pomnilnika
Kot elektronski (fizični) element mora imeti pomnilniško vezje način za določitev
naslova izbrane lokacije in način za prenašanje podatkov. Skupina
električnih vodnikov, ki prenašajo podatkovne signale, se imenuje podatkovno
vodilo (an. Data Bus), skupina vodnikov, ki prenaša naslovne
signale, pa naslovno vodilo (an. Address Bus).
Pomnilnik pa potrebuje še krmilne signale, s katerimi mu
"povemo", ali bomo iz pomnilnika brali ali vanj pisali podatke.
Takšen krmilni signal se pogosto imenuje Read / *Write.
(Zvezdica pomeni negacijo pri nasprotnem ukazu Write. Kadar ima ta signal
vrednost 1, pomeni to branje (Read), za pisanje pa to pomeni obratno,
torej NE piši. Pomena se torej izključujeta in imata zmeraj nasprotno
vrednost.)
Primer: Branje vsebine na lokaciji 0000000100.
Procesor ...
postavi na naslovno vodilo želeni naslov, torej 0000000100,
na krmilno linijo pa postavi signal za branje (visoko stanje, Read)
Pomnilnik...
postavi vsebino izbrane lokacije na podatkovno vodilo. Od tod ga procesor
lahko prebere.
Slika: Ilustracija elementov
pomnilnika s paralelnim prenosom podatkov in naslovov pri branju oz. pisanju.
Podobno poteka tudi pisanje v pomnilnik. Krmilni signal mora zdaj biti Write,
podatek pa mora biti pripravljen na podatkovnem vodilu, da ga pomnilnik lahko
shrani. Vidimo, da je podatkovno vodilo dvosmerno (podatki se vpisujejo
v pomnilnik ali prihajajo iz njega), naslovno vodilo pa enosmerno:
naslov vedno postavlja procesor.
Serijski pomnilniki
To so pomnilniki, ki uporabljajo serijski (zaporedni) prenos podatkov.
Serijski prenos podatkov pomeni prenos vsakega podatka bit za bitom po eni
podatkovni liniji. Pri serijskih pomnilnikih poteka serijsko tudi vsa
druga komunikacija med procesorjem in pomnilnikom. Naslov lokacije za branje
oziroma pisanje se prenese na enak način kot podatek. Namesto krmilnih signalov
za branje, pisanje in druge možne operacije, pošiljamo serijskemu
pomnilniku ukaze.
Pri vsakem opravilu s pomnilnikom (vpis, branje, zaporeno pisanje) se
najprej prenese koda operacije, ki "pove", kakšno opravilo se bo
izvedlo.
Če je bila to koda za pisanje podatka, ji sledi naslov izbrane lokacije in nato
še podatek, ki ga vpisujemo.
Serijski pomnilniki so zlasti zanimivi zaradi majhnih fizičnih dimenzij, saj
imajo tipično zelo malo priključkov (nožic). Njihova uporaba je aktualna pri
majhnih in prenosnih napravah.
Slika: Mikrokrmilnik in trije serijski pomnilniki (EEPROMi). S signali CS1,
CS2 in CS3 (an. chip select) izberemo enega od pomnilniških integriranih vezij,
po linijah SDI (an. serial data input) in SDO (an. serial data output)
pa tečejo podatki. Časovni
diagram pri serijskem pisanju zloga v serijski EEPROM kaže zaporedje
signalov pri vpisu enega zloga.
Posamezne pomnilniška integrirana vezja se zaradi povečanja pomnilniške kapacitete poveže v večje pomnilniške module. Posamezen modul obravnavamo kot celoto. Seveda mora imeti izvedene vse potrebne signalne sponke: naslovne, podatkovne, krmilne, napajanje.
Preveri svoje znanje