You are on page 1of 25

Sadržaj

6 ROM ............................................................................................................................................................. 2
6.1 Mask ROM memorije ........................................................................................................................... 2
6.2 EPROM memorije................................................................................................................................. 3
6.3 PROM memorije ................................................................................................................................... 4
6.4 EEPROM memorije .............................................................................................................................. 5
6.4.1 Paralelni EEPROM....................................................................................................................... 6
6.4.2 Serijski EEPROM......................................................................................................................... 7
6.5 FLEŠ MEMORIJE .............................................................................................................................. 10
6.5.1 NOR fleš ..................................................................................................................................... 11
6.5.2 NAND fleš.................................................................................................................................. 11
6.6 Načini brisanja. Načini čitanja i programiranja (lokalno) SLC (Single Level Cell) ćelije .................. 12
6.6.1 Brisanje....................................................................................................................................... 12
6.6.2 Programiranje ............................................................................................................................. 13
6.6.3 Čitanje ........................................................................................................................................ 13
6.7 Razlozi za sekvencijalno programiranje NAND i proizvoljno za NOR .............................................. 13
6.8 Multi Level Ćelije (MLC) ................................................................................................................... 13
6.9 Pojava loših bita (bit-flipping) u NAND ............................................................................................. 14
6.10 Algoritamski pristup programiranju i čitanju NAND memorija. ........................................................ 15
6.10.1 Čitanje korišćenjem internog Page RAM-a ................................................................................ 17
6.10.2 Programiranje korišćenjem internog Page RAM-a ..................................................................... 17
6.11 Wear leveling, detekcija i registrovanje neispravnih blokova. ............................................................ 17
6.12 Detekcija i korekcija grešaka (ECC) ................................................................................................... 18
6.13 Korekcija greške ................................................................................................................................. 19
6.14 Fleš file sistem .................................................................................................................................... 19
6.14.1 Alokacije na osnovu linkovanih lista uz korišćenje memorijskih tabela .................................... 20
6.15 MultiMediaCard (MMC) .................................................................................................................... 21
6.16 Secure Digital ...................................................................................................................................... 22
6.17 USB flash drive ................................................................................................................................... 24

1
6 ROM
ROM (Read Only Memory) je memorija sa konstantnim sadržajem u koju se posebnim postupkom
upisuje željena informacija, a kada je sadržaj upisan, memorija može samo da se čita. Njihov sadržaj se ne može
lako i brzo menjati, a ponekad je čak i nemoguće. Ovo su stalne memorije opšte primene, i koriste se, na primer:
za generisanje binarnih reči, konverziju brojeva, generisanje raznih funkcija, u telefoniji za određivanje vrste i
tipa priključka, za bootovanje nekog sistema, distribucije softvera za kontroler itd. Najvažniju namenu su našle
kao stalne memorije u računarima. Podaci smešteni u ROM su uvek tamo, bez obzira da li je priključeno
napajanje ili ne. Integrisano kolo ROM memorije može biti izvađeno iz računara duži vremenski period i onda
ponovo vraćeno, i podaci će još uvek biti u njemu. Zbog toga ROM spada u klasu postojanih memorija. Sama
činjenica da se sadržaj ROM-a ne može tako lako promeniti obezbeđuje određeni nivo sigurnosti protiv
slučajnih promena njegovog sadržaja.
ROM se najčešće koristi za smeštanje sistemskih programa, za koje želimo da budu na raspolaganju
računaru u svako doba. Najbolji primer je sistemski ROM BIOS program, koji se čuva u posebnom ROM-u na
matičnoj ploči računara. Znači da je program dostupan kada se uključi napajanje, pa računar može da ga
iskoristi za podizanje sistema. Postoji nekoliko vrsta ROM memorija čiji se sadržaj može promeniti pod
određenim uslovima. One bi se mogle nazvati "memorijom koja uglavnom služi za čitanje"(eng. Read-Mostly
Memory).

6.1 Mask ROM memorije

Mask ROM je memorija čiji se sadržaj upisuje u fabrici u toku procesa proizvodnje, i kasnije se ne
može izbrisati i ponovo upisati. One se proizvode sličnim tehnološkim postupkom kao i mikroprocesori. Podaci
koje ROM treba da sadrži se utiskuju u silicijum preko posebnih maski u procesu proizvodnje cipa. Ovo stvara
dva problema: proces utiskivanja podataka ukljucuje relativno velike fiksne troškove pravljenja maski koji ne
zavise od broja proizvedenih primeraka, a uz to ne postoji nacin da se ispravi eventualna greška - ako je jedan
bit pogrešan, ceo kontigent ROM-ova se mora baciti. Ovo je izuzetno nefleksibilno i koristi se samo za
programe koji se masovno proizvode i ne menjaju se često. Na slici je prikazana memorija koja predstavlja
pretvarač binarnog koda u Grejov kod, i čije je matrično polje realizovano u diodnoj ILI logici. Znači, ova
memorija radi kao konvertor koda . Na slici 6.1-1. se moze videti izgled mask rom-a.

Slika 6.1-1 MASK ROM


Kada je kod adresnih signala na ulazu dekodera A2A1A0 = 000, tada je samo adresna linija W0 = 1, a
sve ostale od W1 do W7 su nula. Kako adresna linija W0 nije preko dioda fizički spojena ni na jednu liniju
podataka izlazni kod će biti D2D1D0 = 000. Ako je A2A1A0 = 111, poslednja adresna linija je tadaW7=111, pa je
izlazni kod iz ROM-a sada D2D1D0 = 100. Znači dovodimo na ulaz binarni kod a na izlaz ROM-a dobijamo
Grejov kod.Umesto diodne ILI logike za definisanje sadržaja ROM-a mogu da se koriste bipolarni tranzistori ili
MOSFET tranzistori .

2
Slika 6.1-2 Ćelija ROM-a sa NMOS tranzistorima
Na slici 6.1-2. je prikazana jedna ćelija ROM-a sa NMOS tranzistorima čije su ćelije matričnog polja
realizovane pomoću NILI logike. Ako je adresna linija, koja je inače vezana za gejt, na nivou logičke 1 provodi
N kanalni MOSFET pa samim tim odvodi liniju podataka na naponski nivo logičke 0. Ako adresna linija nije na
1, N kanalni MOSFET ne provodi i linija podataka je na naponskom nivou napona napajanja VDD, odnosno
naponu logičke 1. Mana NMOS tehnologije je velika potrošnja.

6.2 EPROM memorije

EPROM memorije (eng.Erasable Programmable Read Only Memory) kao memorijske elemente
koristi MOS tranzistore sa izolovanim gejtom. Svi tranzistori u memorijskoj matrici imaju po dva gejta.
Izolovani gejt je praktično okružen idealnim izolacionim materijalom (SiO2) i sa neizlovanim gejtom
predstavlja kapacitivni razdelnik napona. Kada memorija nije programirana napon logičke 1 na adresnoj liniji je
dovoljan da preko kapacitivnog razdelnika formira kanal u MOS tranzistoru, pa je sada sadržaj svih lokacija 0.

Slika 6.2-1 Izgled EPROM memorije


Programiranje memorije se vrši na taj način što se na liniju podataka i adresnu liniju dovodi visok
napon (oko 25V) koji izaziva veliku struju drejna. Ova struja stvara veliko ubrazanje elektrona, koji usled
nedestruktivnog kretanja probijaju izolaciju i akumuliraju se na izolovanom gejtu. Sada je izolovani gejt na
negativnom potencijalu (oko -5V) pa napon logičke 1 na adresnoj liniji od 5V nije dovoljan da formira kanal u
MOS tranzistoru, te je sada na tom mestu upisana logička 1. U zavisnosti da li ima ili nema elektrona u
izolovanom gejtu, kanal ce postojati kada se aktivira neizolovani gejt. Na slici 6.2-1. prikazan je izgled EPROM
ćelije.
Ovako programirana memorija ne menja sadržaj više od 10 godina. Ako se ovako programirana
memorija izloži dejstvu ultraljubičaste svetlosti u vremenu oko 20 minuta, sadržaj se gubi jer SiO2 postaje slabo
provodan i elektroni napuštaju izolovani gejt. Svaki čip ima mali stakleni prozor ugrađen na vrh kućišta ROM
memorije, i kroz njega se može videti unutrašnjost memorijskog čipa. EPROM se može u svako doba obrisati
tako što se kroz ovaj prozorčić osvetli unutrašnjost čipa u komori sa UV svetlošću.

3
Posle ovoga čip se može ponovo programirati. Očigledno, ovo je mnogo korisnije od običnog PROM-
a, ali i dalje zahteva posebno svetlo za brisanje. EPROM ima ograničen ciklus pisanja i brisanja. Svaki put kada
se briše SiO2 oko gejta akumulira oštećenja koja nastaju od ciklusa, čineći čip nepoverljivim posle nekoliko
hiljada ciklusa. Programiranje EPROM-a je sporo u odnosu na druge memorije.Na slici 6.2-2. prikazan je
izgled EPROM-a.

Slika 6.2-2 Izgled EPROM-a

6.3 PROM memorije

PROM je programabilna ROM memorija, koju može da programira sam korisnik prema svojim
potrebama. Diodna PROM memorija je proizvedena tako, da se na svim ćelijama matričnog polja nalaze diode u
rednoj vezi sa topljivim nikl-hrom (Ni-Cr) osiguračima, kao što je prikazano na slici 6.3-1.

Slika 6.3-1 Izgled ćelije PROM memorije sa topljivim osiguračem


Kada memorija nije programirana sve adresne linije su preko osigurača i dioda spojene na liniju
podataka. Korisnik sam programira memoriju tako što izazove pregorevanje osigurača na mestima gde želi da
mu bude logička 0. Pregorevanje se vrši sukcesivno tako što se adresira reč po reč,a na liniju podataka gde treba
odstraniti diodu dovodi se negativan impuls. Tada kroz osigurač i diodu protekne struja većeg inteziteta koja
pregore osigurač i na taj način raskine vezu adresne i linije podataka.
PROM memorija se može uraditi i sa NMOS tranzistorima pri čemu su osigurači redno vezani sa
drejnom svakog tranzistora(Slika 6.3-2). Ova memorija je proizvedena tako da su na svim mestima postavljeni
tranzistori sa osiguračima, što znači da je na svim adresama memorije sadržaj svih bita logička 0. Programiranje
se obavlja pregorevanjem osigurača, tako što se na odgovarajući izlazni priključak D dovede impuls čija je
amplituda veća od VDD. Naravno i ovde se adresiranje vrši postupno reč po reč. Programiranje PROM
memorija se vrši pomoću specijalnog uređaja koji se zove PROM programator. U programator se pomoću
računara upiše željeni sadržaj memorije, a zatim se sukcesivno adresiraju sve adrese priključene PROM
memorije i dovede impuls, koji pregore odgovarajuće osigurače. Glavni nedostatak ovih memorija je što se
jedanput upisani sadržaj više ne može menjati, stoga se zovu i OTP-EPROM (eng. One Time Programmable
EPROM).

4
Slika 6.3-2 Izgled PROM ćelije sa NMOS tranzistorom
Mikrokontroleri iz ere pre EEPROM-a i fleš memorija koristili su EPROM za skladištenje programa.
Kao i EEPROM-i oni imaju prozorče i zbog toga su i skuplji. Postoje i OTP mikrokontroleri bez prozora. Od
firme Microchip PIC16C84 je OTP a PIC16F84 je Fleš. Svojstvo fleša je da se da se oni koriste u fazi razvoja
aplikacije, a za finalan proizvod se može komotno upotrebiti OTP varijanta.

6.4 EEPROM memorije

EEPROM memorije (eng.Electrically Erasable Programmable Read Only Memory) kao memorijske
elemente takođe koriste MOS tranzistore sa izolovanim gejtom, samo što je izolacija između elektroda dosta
manja. Upis sadržaja u memoriju se vrši na sličan način kao kod EPROM-a, samo se sada koristi napon proboja
od oko 10V. Brisanje je takođe električnim putem, tako što se na gejt priključuje napon suprotnog polariteta od
napona upisa. Sadržaj se može obrisati pod kontrolom softvera, i upisati u bilo kom trenutku bez prethodnog
brisanja. Ovde se malo zamagljuje termin Read Only Memory, ali treba imati u vidu da se podaci u EEPROM
upisuju recimo jednom godišnje, dok se u RAM upisuju mnogo puta svake sekunde. EEPROM je izuzetno
zgodan zbog toga što dozvoljava mogućnost obnavljanja podataka na licu mesta, korišćenjem uobičajenog
računarskog hardvera i pod čisto softverskom kontrolom, ali je skuplji od EPROM memorije i ne može se
pakovati sa toliko velikom gustinom kao i EPROM.

5
6.4.1 Paralelni EEPROM
Paralelni EEPROM ima 8bitnu magistralu za podatke i dovoljno široku adresnu magistralu da pokrije
kompletnu memoriju. Većina ovih memorija ima chip select i write protect pin. Neki mikrokontroleri takođe
imaju ugrađeni paralelni EEPROM.
Način funkcionisanja ovakvog EEPROM-a je lak i brz upoređujući ga sa serijskim EEPROM-om.
Jedina mana im je to što su zbog velikog broja pinova. Paralelna magistrala im omogućuje da rade na visokim
frekvencijama.
U ovu kategoriju memorija spadaju neke vrste fleš memojia, eproma i SRAM-a sa baterijskim
napajanjem. Paralelni EEPROM i SRAM su jedine memorije paralelnog tipa koji imaju mogućnost da se brišu
ili programiraju bajt po bajt, dok kod ostalih se prvo mora obrisati jedan blok da bi se isti mogao
isprogramirati.Napon napajanja im je 3 ili 5V. Paralelni EEPROM nije zaživeo jer je skuplji od običnog
EEPROM-a. Na slici 6.4-1. prikazan je izgled kucišta paralelnog EEPROM-a, ima znatno više nozica od
serijskog EEPROM-a.

A0-A16 su adresni ulazi


I/O0-I/O7 ulazi/izlazi za podatke
WE- Dozvola pisanja (Aktivna na logičkoj 0)
OE – Dozvola čitanja (Aktivna na logičkoj 0)
CE - Chip Enable

Slika 6.4-1 Paralelni EEPROM AT28C010 1-Megabit (128K x 8) firme Atmel

6
6.4.2 Serijski EEPROM
Kod serijskih EEPROM-a serijski interfejs koji se koriste najčešće su SPI, I²C, Microwire, UNI/O, i
1-Wire. Ovi protokoli zahtevaju 1 do 4 kontrolna signala za operaciju. Serijski EEPROM-i uglavnom rade u 3
faze:

1. Faza za OP-kod
2. Faza adrese
3. Faza podataka
OP-kod faza je prvih 8bita na pinu za serijski ulaz EEPROM-a, posle toga 8 do 24 bita adrese u
zavisnosti od kapaciteta memorije, i na kraju dolazi podatak koji se čita ili piše. Svaki serijski EEPROM ima
svoje setove OP kod instrukcija. Neki od zajedničkih operacija kod SPI EEPROMA su:
• Write Enable (WREN)
• Write Disable (WRDI)
• Read Status Register (RDSR)
• Write Status Register (WRSR)
• Read Data (READ)
• Write Data (WRITE)
Druge operacije koje su podržane od strane drugih EEPROMa:
• Program
• Sector Erase
• Chip Erase commands
Serijska komunikacija ima svoje prednosti, naime koristi mali broj pinova što pojednostavljuje izradu
štampane pločice, jeftinija cena, manja fizička veličina memorije(Slika 6.4-3). Najvažnija prednost je mala
potrošnja struje, i to oko 3mA.
Ostale mogućnosti serijskog EEPROMa su:
1. Programabilnost bajta – Mogućnost da se piše i briše sadržaj bajt po bajt bez da utičemo na sadržaj
drugih memorijskih lokacija.
2. Brzina takta do 6MHz (2-Wire je 100kHz, I²C 400kHz dok, 3-Wire protokol ide i do 6MHz)
3. Rad na niskim naponima (jedna familija Microchipovih memorija imaju mogućnost da vrše upis i
čitanje počev od 1.8V, dok je kod nekih modela to moguće od 2, 2.5V)

Slika 6.4-2 Izgled serijskog EEPROM-a

7
Slika 6.4-3 Šema povezivanja serijskog EEPROM-a sa mikrokontrolerom
Na slici 6.4-4 prikazan je način povezivanja serijskog EEPROM-a sa mikrokontrolerom.Ima 2
adresne linije (4 adresa) koji se konfigurišu tako što ih vežemo na VCC ili GND. Možemo koristiti i
kombinaciju da adresu konfigurišemo uz pomoć kontrolera tako što ćemo adresne vodove memorije povezati na
izlazne pinove mikrokontrolera. Ova opcija i nije baš dobra, jer bezpotrebno zauzimamo pinove kontrolera koje
možemo iskoristiti za nešto drugo. Ove memorije imaju ciklus pisanja i brisanja od oko 1miliona po bajtu.
Serijski EEPROM dozvoljava upis u tzv. “page mode”-u, što znači da možemo poslati ukupno 1 page
podataka istovremeno. Broj bajtova po page-u zavisi od dotične komponente, npr. Atmel25128 koristi 64byte-a
po page-u, Microchip 25C640 koristi 32byte-a po page-u. Moramo obratiti pažnju pri prekoračenju adrese
jednog page-a, jer ako pređemo granicu i nastavimo sa pisanjem, ti podaci će se vratiti i prepisati neke već
postojane podatke. Važan deo serijskog EEPROM-a je statusni registar. On ne samo da sadrži konfiguracione
podatke, već sadrži i važan WIP (Write In Progress) bit. Serijskom EEPROM-u je potrebno vreme za upis
podataka u memoriju u trajanju od 5milisekundi ili manje. Umesto da se oslonimo na tajmer kontrolera, ovo
nam je bolji i sigurniji način.Serijski EEPROM su uglavno malog kapaciteta, jer je za svaku reč potrebna
prateća elektronika kako bi mogli isprogramirati ćeliju, ima puno pratecih veza izmedju ćelija što otežava
skalabilnost.

Chip select. Kritičan pin, ovaj pin ne samo da aktivira memoriju, već ima i ulogu markera za
1 CS*
označavanje kraja operacije
Serial Output pin. Serijski izlaz. U SPI terminologiji ovo bi bilo Slave Out, I potrebno ga je
2 SO
priključiti na MISO (Master In Slave Out) pin SPI porta.
WP – Write protect ili zaštita od upisa. Ako su odgovarajući biti u kontrolnom registru setovani,
3 WP* tada WP će da onemogući pisanje operacija, kod je na logičkoj 0. Ovo je dodatna zaštita sadržaja
memorije od softverskih bagova u kontroleru, ili ako želimo da se ponaša kao ROM.
4 GND Napajanje GND
Serial Input pin. Serijski ulaz. U SPI terminologiji ovo bi bilo Slave In, i treba da se poveže na
5 SI
MOSI (Master Out Slave In) SPI porta.
Serial Clock. – Serijski klok. Svaki ciklus clock-a prouzrokuje da se podaci u registru šiftuju za 1
6 SCK
bit.
Ovaj pin je veoma koristam u slučaju prekida, tj. Kada imamo i druge uređaje koji su povezani na
HOLD SPI magistralu. Držanjem ovog pina na logičkoj 0, kolo će ignorisati SCK liniju, koja prouzrokuje
7
* da se isti zaustavi. Tada prekidna rutina na kontroleru može da pristupi drugoj SPI periferiji, zatim
kada to završi, vrati hold liniju u prvobitno stanje.
8 VCC Napajanje VCC
Tabela 6-1 Opis pinova za serijsku memoriju (važi za sliku 6.4-3)
(* označava da je signal aktivan na logičkoj 0)

8
Slika 6.4-4. Blok dijagram memorije Microchip 25C640
Razlika između serijske i paralelne EEPROM memorije je :

1. Serijske memorije troše malo struje (sa napajanjem od 5V memorija od 16Kbita je oko 3mA, dok
kod paralelne memorije je oko 30mA za isti napon napajanja.)
2. Nizak napon napajanja – Serijski EEPROM zahteva napajanje od 1.8-5V za čitanje i upis, dok
paralelnim EEPROMima treba 12V za programiranje pored regularnog napajanja od 5V. Smanjenje radnog
napona sa 5 na 1.8V je doprinelo i smanjenju potrošnje za 90% .
3. Programabilnost – Ni jedna fleš ili EPROM memorija nije u mogućnosti da se programira bajt po
bajt, već po sektoru. Ako treba da se obriše neki bajt mora se brisati ceo sektor, pa ponovo isprogramirati. Ova
operacija zahteva puno vremena.
4. Fizička veličina – Serijski EEPROM od 16K u odnosu na paralelni EEPROM od 16K je mnogo
manji i ima manji broj pinova (Slika 6.4-6).
5. Zahtevnost za I/O pinovima – Serijski zahtevaju 2 do 4 ulazno izlaznih linija za komunikaciju, dok
paralelnima treba 22 linije, u zavisnosti od kapaciteta memorije.

Slika 6.4-5 . Upoređivanje paralelne i serijske memorije

9
6.5 FLEŠ MEMORIJE

Fleš memorije (NOR i NAND) izmislio je 1984. godine dr. Fujio Masuoka dok je radio u Toshibi.
Tako je 1988. godine predstavljena flash tehnologija s NOR logičkim elementima, a 1989 sa NAND
elementima.
Kao i EEPROM, fleš memorija koristi tehnologiju električnog brisanja. Cela fleš memorija se može
obrisati za svega par sekundi. Međutim, kod fleš memorija se ne može brisati bajt po bajt, već samo po
blokovima. Fleš memorija postiže istu gustinu pakovanja kao i EPROM (veću od EEPROM-a) zato što koristi
samo jedan tranzistor po bitu podatka. Ovo je najfleksibilniji tip ROM memorija, i sada se često koristi za
smeštanje BIOS programa. Korišćenje fleš memorije za smeštanje BIOS-a omogućava korisniku da uvek ima
aktuelnu verziju BIOS-a na svom računaru. Fleš memorije imaju tu osobinu da se reprogramiraju u samom
sistemu. To nas lišava ugradnje podnožja, vađenje memorije i vraćanje, pri čemu može da se ošteti neki od
pinova. Fleš memorije se mogu reprogramirati i do 100 000 puta. Jedna od prednosti fleš memorije je i to da ne
gubi sadržaj posle isključivanja napajanja.Pored BIOS-a fleš memorije se koriste i kao eksterne masovne
memorije velikog kapaciteta i do nekoliko gigabajta.
U odnosu na NOR memoriju NAND ima brža vremena pisanja i čitanja, osetno nižu cenu
proizvodnje, veću izdržljivost u broju pisanja/brisanja podataka. Ali uz sve ove prednosti ima i jedan ozbiljan
nedostatak u odnosu na NOR memorije, a to je sporiji pristup memoriji. Uzrok je taj što se NAND memoriji ne
može pristupati slučajnim pristupom (eng. random access) već samo sekvencijalnim pristupom, što uzrokuje
sporiji pristup i manipulaciju s podacima.
Fleševi bazirani na NOR tehnologiji imaju dugačak vremenski interval brisanja i pisanja, ali zato
omogućuju punu magistralu za adrese i podatke omogućujući pristup bilo kojoj lokaciji u bilo kom trenutku. S
ovom osobinom on zamenjuje starije ROM čipove koje sadrže kod koji se retko menjaju npr. BIOS. Ciklus
pisanja i brisanja je od 10,000 do 1,000,000. Stariji tipovi kompakt fleš kartica su se zasnivali na NOR-u dok
nisu prešli na NAND.
NAND fleš ima kraći vremenski period za brisanje i pisanje i zahteva manju površinu po ćeliji,
omogućavajući veću gustinu pakovanja, manju cenu, ciklus brisanja i pisanja je 10 puta veća od NOR fleša.
Mana mu je da za razliku od NOR-a kod NAND fleša podacima se pristupa u blokovima. U toku operacije
brisanja, svaki bit mora da se komutira na specijalne naponske nivoe. To je razlog zbog čega se fleš memorija ne
briše istovremeno na principu 'bit po bit' ili 'bajt po bajt', nego se briše ceo blok. Zbog ovoga NAND fleš je više
pogodan kao masovna memorija. Na slici 6.5-1. prikazan je izgled ćelije fleša.

Slika 6.5-1 Izgled ćelije fleš memorije

10
6.5.1 NOR fleš

Slika 6.5-2 Izgled NOR fleša


Kod NOR fleša jedan kraj svake ćelije je povezan direktno na masu, a drugi kraj povezan na bit
liniju(Slika 6.5-2). Mana je što puno ima veza, za svaki tranzistor moramo sve tri tačke izvući.Ukoliko
pokušamo da preprogramiramo tranzistor (ubacimo više elektrona nego što je potrebno) on neće uspeti da
provede.Upisuje se pojedinačna reč a blok se briše. Može se isprogramirati samo logička 0, ne može se od
logičke 0 napraviti logička 1.

6.5.2 NAND fleš

Slika 6.5-3 Izgled NAND fleša


NAND fleš koristi tranzistore sa lebdećim gejtom. Tranzistori su povezani na red, i ukoliko su sve
linije reči na logičkoj 1 jedino se tada bit linija vuče na logičku 0 (Slika 6.5-3). Uprkos dodatnim tranzistorima,
smanjenje provodnika ka masi i bit linijama, omogućeno nam je gušće pakovanje i veći kapacitet memorije po
čipu. Pored toga NAND fleševima je dozvoljeno da sadrže određen broj defekata, dok kod NOR fleša je to
nedopustivo. Za upis NAND fleš koristi tunelsko ubrizgavanje i tunelsko otpuštanje za brisanje. NAND je
osnova za USB masovne memorije, solid state diskove i memorijske kartice.
NOR fleš ćelije su povezane paralelno na linije bita, tako povezani možemo čitati i pisati ćelije
individualno. NAND fleš ćelije su povezane serijski, tako povezani zauzimaju manje prostora od paralelnih,
smanjuje cenu. Zbog serijske veze NAND fleš ćelije zauzimaju 60% manje prostora ekvivalente NOR
ćelije.Trenutno se stiglo do 20nm tehnologije i to je ostvarila firma Micron u saradnji sa Intelom. U pitanju je
8GB MLC (2 bita po ćeliji) memorija i u ovoj tehnologiji zauzima 118mm2. Na slici 6.5-4 prikazane su
performanse NAND i NOR fleš memorija.

11
Slika 6.5-4 Poređenje performansi NAND i NOR-a

6.6 Načini brisanja. Načini čitanja i programiranja (lokalno) SLC (Single


Level Cell) ćelije

6.6.1 Brisanje

Slika 6.6-1. Način brisanja ćelije


Za brisanje NOR ćelije (resetovanje na logičku 1) se između kontrolnog gejta (CG) i source-a dovodi
veći napon obrnutog polariteta, ovako se iz lebdećeg gejta izvlače elektroni. Novije NOR fleš ćelije su podeljene
u segmente brisanja. Operacija brisanja se može vršiti samo po blokovima tj.svi segmenti u ćeliji moraju biti
obrisane, dok se programiranje vrši bajt po bajt.

12
6.6.2 Programiranje

Slika 6.6-2 Način upisa u ćeliju


NOR ćelija ako nije programirana sadrži stanje logičke 1, struja teče kroz kanal. Da bi isprogramirali
ćeliju, moramo je odvući na logičku 0. To se radi na sledeći način :

1. Na kontrolni gejt dovedemo napon od 5V


2. Kanal je aktivan i elektroni teku od sorsa ka drejnu (u slučaju NMOS tranzistora)
3. Struja između sorsa i drejna je dovoljno visoka da prouzrokuju da neki elektroni preskoče sloj
izolatora, i odu u ledbeći gejt. Ova procedura se naziva ubrizgavanje vrućih elektrona (Slika 6.6-2).

6.6.3 Čitanje
Čitanje NOR-a je slično kao i kod pristupa RAM-u, setovanjem odgovarajućih vrednosti na adresnu
magistralu.

6.7 Razlozi za sekvencijalno programiranje NAND i proizvoljno za NOR

Kao što je i pre rečeno NOR koristi paralelni pristup a NAND serijski. Ćelije NOR memorije su
direktno adresibilne i moguće je pisati bajt po bajt, dok NAND nema tu mogućnost. Kod njega se to radi u
blokovima.

6.8 Multi Level Ćelije (MLC)


MLC nam omogućuje da čuvamo više bitova na jednom memorijskom tranzistoru. Ovo znatno
povećava kapacitet memorije. MLC baziran na NOR arhitekturi omogućuje direktan pristup ćeliji, što doprinosi
tačnosti detektovanja punjenja.Tipične fleš memorije koriste jedan bit po ćeliji. Svaki ima svoj granični napon
Vt. Podatak se čuva na lebdećem gejtu svake ćelije. Unutar svake ćelije postoje dva naponska nivoa. Tim
nivoima upravljamo tako što se dovodi neko punjenje određene količine na lebdeći gejt.
Multi Level Cell tehnologija omogućuje čuvanje više bita po memorijskoj ćeliji dovodeći
polisilikonskom lebdećem gejtu punjenja različitog nivoa. MLC može da čuva 2,3,4 bita po ćeliji(Slika 6.8-1).
Isto kao i kod SLC unutar ćelije postoje nivoi, samo što ih ovde ima više. MLC memorije moraju da budu u
mogućnosti da tačno odrede kako je ćelija napunjena, isto tako da imaju i mogućnost da to rade pri upisu. Zbog
toga NOR ima prednost.
Prilikom programiranja na lebdeći gejt moramo dovesti precizno punjenje. Analogni napon koji ovde
postoji je podeljen na više graničnih nivoa, koji kontrolišu količinu elektrona u lebdećem gejtu.

13
Slika 6.8-1 Nivoi kod SLC I MLC

Ciklusi čitanja i pisanja kod NAND i NOR memorija SLC i MLC tipa
• SLC NAND Fleš oko 100,000 ciklusa (Samsung OneNAND KFW4G16Q2M)
• MLC NAND Fleš oko 5000-10,000 ciklusa (Samsung K9G8G08U0M)
• SLC sa lebdećim gejtom NOR Fleš oko 100,000 - 1,000,000 ciklusa (Numonyx M58BW 100K;
Spansion S29CD016J 1000K)
• MLC sa lebdećim gejtom NOR Fleš oko 100,000 ciklusa (Numonyx J3 Flash)

6.9 Pojava loših bita (bit-flipping) u NAND

Fleš arhitekture pate od jednog fenomena pod nazivom “bit-flipping” ili obrtanje bitova. Najčešće se
dešava kod memorije NAND tipa. Naime bit u ćeliji obrne svoje stanje sa logičke 0 na 1 i obrnuto. Čak i blisko
električno polje u okolini može da promeni stanje bita, mnogo je osetljivija od NOR-a.Ovaj prelaz može
delovati nebitno, mada može napraviti ozbiljne probleme ako tako ošteti neki kritičan deo fajla, što čak može
dovesti i do pada sistema. Kada kod ovog tipa memorije dodje do greške onda se ceo blok izbacuje iz upotrebe,
jer ako je na jednoj ćeliji tog bloka došlo do greške onda najverovatnije doći će i na nekoj drugoj ćeliji tog
bloka, ceo blok postaje nepouzdan.Pri fabričkom testiranju pravi se tabela loših blokova (markiraju se).
Do bit-flippinga može doći usled:
1. Drift efekta – Fenomen koji polako menja stanje naponskog nivoa ćelije.
2. Greške usled programiranja – Pojam efekta preprogramiranja. Operacija programiranja na jednom
page-u prouzrokuje obrtanje nekog bita na drugom page-u.
3. Greške usled čitanja – Prilikom operacije čitanja desi se, da se za stalno promeni vrednosti bita koja se
čita.

14
6.10 Algoritamski pristup programiranju i čitanju NAND memorija.

Nand fleš memorijama se pristupa po blokovima kao kod hard diskova i memorijskih kartica. Svaki
blok se sastoji od nekoliko stranica. Jedna stranica je tipično 512, 2048 ili 4096 bajtova. Kod svakog page-a
1/32 dela se koristi za checksum algoritma za korekciju grešaka.
Blokovi:
32 page-a od 512 + 16b za svaki blok od 16KB
64 page-a od 2048 + 64b za svaki blok od 128KB
64 page-a od 4096+128b za svaki blok od 256KB
128 page-a od 4096 + 128b za svaki blok od 512KB

Slika 6.10-1. Two-Plane, 16Gb, 4K stranica MLC NAND Arhitektura

Čitanje i pisanje se vrši na bazi page-a, dok se brisanje vrši na bazi blokova. Podaci u blok NAND
fleša se mogu upisati samo sekvencijalno. NAND fleševi zahtevaju menadžment loših blokova (BBM – Bad
Block Management) od strane softvera ili kontrolera. Kada se pristupi logičkom bloku, on se fizički mapira od
strane kontrolera. Deo blokova na čipu treba da čuvaju mapiranu tabelu koja se brine za loše blokove.
NAND se oslanja na ECC algoritam za kompenzaciju bitova koji su oštetili tokom rada. Tipičan ECC
će ispraviti jednobitnu grešku u svakoj od 256B korišćenjem 22bitnog ECC koda ili jedan bit od 4096bitova
korišćenjem 24bitnog ECC koda. U slučaju da ECC ne može da ispravi grešku tokom čitanja, on je još uvek
može detektovati. Pri programiranju ili brisanju uređaj može da detektuje blok koji ne može da se programira, i
on će se markirati lošim. Podatak će biti upisan na drugi ispravan blok, i blok koji sadrži tabelu loših blokova će
biti osvežen.
Dual interface memorija AT45DB642D ima mogućnost brisanja stranica, blokova, sektora i
ChipErase. Ova memorija od 64Mbita poseduje 2 SRAM bafera od 1024 bajta koji omogućavaju prijem
podataka dok se stranica reprogramira (Slika 6.10-2). Napajanje memorije je od 2.7V do 3.6V. Organizacija
memorije je prikazana na slici 6.10-3.

15
Slika 6.10-2. Blok dijagram AT45DB642D

Slika 6.10-3. Organizacija memorije

16
Command Opcode
Buffer 1 Write 84H
Buffer 2 Write 87H
Page Erase 81H
Blok Erase 50H
Sector Erase 7CH
Chip Erase C7H, 94H , 80H, 9AH
Buffer1 to main Memory Page program with Built-in 83H
Erase
Buffer2 to main Memory Page program with Built-in 86H
Erase
Buffer1 to main Memory Page program without Built- 88H
in Erase
Buffer1 to main Memory Page program without Built- 89H
in Erase
Main memory Page Program Through Buffer 1 82H
Main memory Page Program Through Buffer 2 85H
Tabela 6-2 Komande za programiranje

6.10.1 Čitanje korišćenjem internog Page RAM-a

Primer za čitanje korišćenjem internog Page RAM-a je rađen na primeru memorije firme
Micron.Operacija za čitanje korišćenjem internog Page RAM-a je ista kao i standardma operacija čitanja, samo
se pošalje komanda za čitanje Page-a (komanda PAGE READ 00h-30h). Zadavanjem komande PAGE READ
za adresu page 0 , ona se kopira iz memorije u registar podataka. Kopiranje je završeno kada se R/B# vrati na
logičku 1. Zatim komandom (PAGE READ CACHE MODE) - 31h se page 0 iz registra prebacuje u keš registar
i inicira se konkurentno čitanje sledećeg page-a tj. page 1. Čim se završi READ komanda za page 0 iz keš
memorije, nova PAGE READ CACHE MODE komanda se inicira i isto se dešava za page 2. PAGE READ
CACHE MODE se koristi za sekvencijalno čitanje.Ako želimo da pročitamo poslednji page onda se poziva
komanda PAGE READ CACHE MODE START LAST (3Fh). Ova komanda prebacuje podatke iz registra
podataka u keš registar bez iniciranja čitanja novog sadžraja. Uređaj je spreman za sledeću komandu.
Ova metoda doprinosi bržem čitanju memorije čak i do 33% .

6.10.2 Programiranje korišćenjem internog Page RAM-a

Operacija za započinjanje programiranje korišćenjem internog Page RAM-a se vrši prvo komandom
PROGRAM PAGE CACHE MODE (80h-15h). Inicijalno podatak se kopira iz keš registra. Kada se komanda
15h završi podatak se prebacuje u registar podataka. Pretpostavimo da je adresa page 0 korišćena u PROGRAM
CACHE MODE komandi. Programiranje započinje kada se R/B# vrati na logičku 1. Posle vraćanja R/B# na
logičku 1 može se izvršiti još jedna PROGRAM PAGE CACHE MODE komanda da bi se nov podatak upisao u
keš registar. Programiranje Page-ova je znatno brža sa PROGRAM PAGE CACHE MODE nego sa
PROGRAM PAGE operacijom.

6.11 Wear leveling, detekcija i registrovanje neispravnih blokova.

Još jedno ograničenje fleš memorije je to da ima ograničen broj ciklusa upisa i brisanja. Za većinu
komercijalnih fleševa se garantuje 100,000 ciklusa pre nego što počinje da se gubi integritet memorije.Firmver
na uređaju broji koliko puta se na koju lokaciju pisalo, pa dinamički realocira te blokove, tako da se u što većoj
mogućoj meri izjednači pisanje po blokovima. Wear leveling tehnika značajno produžava životni vek
memorije.Tokom vremena eksploatacije blok se markira kao neispravan.

17
6.12 Detekcija i korekcija grešaka (ECC)
Detekcija greške se najčešće radi pomoću hash funkcije ili checksum algoritma. Hash funkcija dodaje
podatku oznaku fiksne dužine, što omogućuje da se pri čitanju proveri da li je to što treba ili ne. Postoje razni
algoritmi za detekciju i otklanjanje greške kao što su kodovi sa ponavljanjem, bit parnosti,čeksume, CRC,
kriptografske hash funkcije...
Kod memorija najčešće se koristi Hammingov kod.

Slika 6.12-0-1 Algoritam detekcije greške

Slika 6.12-0-2. Primer

18
6.13 Korekcija greške
Kod sa minimalnim Hammingovim rastojanjem d može da detektuje do jedne greške u kodnoj reči.
Korišćenjem ECC na bazi minimalne razdaljine za detekciju je pogodno ako imamo minimalan broj grešaka za
detekciju. Kodovi sa minimalnim Hammingovim rastojanjem d 2 su degenerativni slučajevi i mogu se koristiti
za otkrivanje jednostavnih grešaka, primer za ovo je provera na bazi bita parnosti.Kodovi za korekciju grešaka
mogu biti konvolucioni kodovi i blok kodovi. Konvolucioni kodovi rade na bazi bit po bit i predviđeni su za
implementaciju u hardver. Blok kodovi rade na bazi bajt po bajt, primeri su ponovljivi kodovi, Hammingovi
kodovi, multidimenzionalni kodovi za proveru parnosti.

6.14 Fleš file sistem


Jedan od starijih fleš fajl sistema bio je Microsoft-ov FFS2, koji je korišćen za rad pod MS-DOS-om.
Oko 1994. PCMCIA Industry Group je odobrila FTL (Flash Translation Layer) specifikaciju, koja je
dozvoljavala fleš uređaju da izgleda kao FAT disk. Drugi komercijalni sistemi, kao što je FlashFX kompanije
Datalight, su bili tako kreirani da bi izbegli probleme sa patentima FTL-a. JFFS je bio prvi specificarni fleš fajl
sistem za Linux, koji je ubrzo zamenjen fajl sistemom JFFS2, a 2003. se pojavio YAFFS. Ove fleš fajl sisteme
uglavnom koriste digitalne kamere, foto aparati i sl. uređaji.
Fleš fajl sistem je posebno dizajniran za skladištenje fajlova na fleš memoriji koji se sve češće
upotrebljavaju u mobilnim uređajima. Dok god blok uređaj može da emulira disk, fajl sistem se može
implementirati, ovo je dobro iz nekoliko razloga:
1. Brisanje blokova – Blokovi fleš memorija moraju eksplicitno biti obrisani pre nego što može da se
piše na njih. Vreme što se utroši za brisanje blokova može biti itekako značajno, zbog toga se nekorišćeni
blokovi brišu kada je uređaj u idle stanju.

2. Random pristup – Disk fajl sistemi su optimizovani da izbegavaju traženje po disku kad je god to
moguće, pošto i to zahteva dosta vremena, dok je to vreme na fleš diskovima zanemarljivo.

3. Wear leveling – Fleš memorijama nije baš pogodno da se stalno određeni blokovi koriste a ostali
ne. Stoga se fleš fajl sistemi dizajniraju tako, da pokušavaju što je više moguće izjednačiti broj upisa na blokove
realokacijom istih.

Slika 6.14-1. Primer fajl sistema

19
6.14.1 Alokacije na osnovu linkovanih lista uz korišćenje memorijskih tabela

Sve mane alokacija na osnovu linkovanih lista mogu biti eliminisane tako što će se iz svakog bloka
diska uzimati reč koja je pokazivač i stavljati u tabelu u memoriji. Slika 6.14-2 pokazuje kako tabela izgleda za
primer sa slike 6.14-1. Fajl A koristi blokove diska 4, 7, 2, 10 i 12 respektivno, a fajl B koristi blokove diska 6,
3, 11, i 14 respektivno. Koristeći tabelu na slici 21, možemo da započnemo sa blokom 4 i da pratimo lanac sve
do kraja. Isto se može uraditi i počinjući od bloka 6. Oba lanca se zaustavljaju specijalnim markerom (-1) koji
nije validni broj bloka. Ovakva tabela u glavnoj memoriji se naziva FAT (File Allocation Table).
Glavni nedostatak ovakve metode je da čitava tabela mora biti u memoriji celo vreme kako bi
sve radilo kako treba. Na primer, sa diskom od 20 GB i veličinom bloka od 1 KB, u tabeli treba da se nađe 20
miliona upisa, po jedan za svaki od 20 miliona blokova diska. Svaki upis minimum ima 3 bajta. Na ovaj način je
od glavne memorije stalno zauzeto od 60 MB do 80 MB, zavisno od optimizacije prostora.

Slika 6.14-2. Alokacije na osnovu linkovanih lista uz korišćenje memorijskih tabela

20
6.15 MultiMediaCard (MMC)
MMC je fleš memorijska kartica bazirana na NOR ćelijama. Starije verzije MMC su koristile 1bitni
serijski interfejs, dok sada se prenose 4 ili 8 bitova istovremeno. Tipično MMC se koristi kao medijum za
skladištenje podataka na mobilnim uređajima. Postoje RSMMC (Reduced Size MMC), DV-MMC (Dual
Voltage MMC), MMCplus (rade na brzinama od 26 i 52MHz i ima magistralu podataka široku od 4 ili 8 bita.),
MMCmicro, MiCard (teoretski kapacitet je 2TB), SecureMMC, eMMC… Napon napajanja ovih memorija je od
1.8-3.3V. Brzina clocka do 50MHz (MMC Plus). Maksimalna brzina prenosa podataka je 20, 100, 200Mbit/s
dok u SPI modu 20,25 i 52Mbit/s u zavisnosti od tipa memorije. Moguće je ubacivanje na vruće tako da većina
proizvodjača pravi pinove za napajanje duže po veličini, tako da se ostvari prvo kontakt sa njima pa tek onda sa
drugim pinovima.Veličina bloka kod prenosa je fiksna ili se programibilna.Informacija o dozvoljenim
veličinama bloka se čuva u CSD registru koji sadrži sve informacije o kartici. Što se tiče operacije brisanja,
briše se grupa (Erase Group) se sastoji iz više blokova. Veličina grupe je takodje definisana u CSD
registru.Kako bi se ubrzalo brisanje mogu se obrisati više grupa odjednom. Prva komanda sadrži početnu
adresu, a druga krajnju tako da sve grupe u ovom opsegu biće obrisane.Označavanje adresa i brisanje grupa
definisano je standardom za MMC. Raspored pinova dat je u tabeli 6-3.

Pin Ime Opis


1. DAT3 Podatak
2. CMD Komanda
3. Vss1 Masa
4. VDD Napajanje
5. CLK Klok signal
6. Vss2 Masa
7. DAT0 Podatak
8. DAT1 Podatak
9. DAT2 Podatak
10. DAT4 Podatak
11. DAT5 Podatak
12. DAT6 Podatak
13. DAT7 Podatak

Slika 6-3. Raspored pinova i opis (odnosi se na izled kartice desno)

21
6.16 Secure Digital
SD kartice (Slika 6.16-1) se baziraju na starijem MMC formatu, sa manjim izmenama. Baziraju se na
NAND fleš memorijskim ćelijama. Malo je izmenjen oblik, da bude asimetričan, da se ne bi mogao obrnuto
staviti u slot, imaju write protect prekidač, kontakti su premešteni da kada je uhvatimo ne dođu u kontakt sa
korisnikom i SD kartice imaju tipično brzinu prenosa od 80-160Mbit/s.

Slika 6.16-1. izgled SD kartice


SD kartice dolaze preformatirane sa FAT ili FAT32 fajl sistemom. Ovo omogućuje da se odmah
ponaša kao host sa uređajem koji podržava SD čitač. Pored toga mogu se koristiti i standardni alati za FAT
fajlsistem za skeniranje, vraćanje podataka itd. Što je kartica preformatirana to ne znači da joj mi ne možemo
promeniti fajlsistem na neki drugi. SD kartice čiji je kapacitet manji od 4GB se može koristiti u mnogim
sistemima, ako su formatirane kao FAT16 ili FAT32. Kartice veće od 4GB se moraju formatirati sa FAT32. SD
kartice spadaju u grupu blok uređaja. Tipično je da kod hard diskova koristimo alate za defragmentaciju, kod
ove kartice za to nema potrebe, jer kao prvo nećemo dobiti na performansama, drugo smanjićemo vek trajanja
kartice zbog wear levelinga. Nova generacija SD kartica su SDXC(eXtended Capacity) koje podržavaju
kapacitet do 2TB i brzinu upisa i čitanja od oko 300 MB/sec(UHS-II). SDXC kartica koristi Microsoft-ov
exFAT(Extended File Allocation Table) standard upisa.

SD kartica može da radi u :

1. 1bitnom SD modu

2. 4bitnom SD modu

3. SPI modu.
Ova kartica se može podeliti u više klasa brzina
1. Klasa 2: 16 Mbit/s (2 MB/s)

2. Klasa 4: 32 Mbit/s (4 MB/s)

3. Klasa 6: 48 Mbit/s (6 MB/s)

4. Klasa 10: 80 Mbit/s (10 MB/s)

Detaljnije o klasama i brzinama nalazi se u tabeli 6-4.

22
Rejting Brzina upisa (Mbit/s) Klasa

6× 7.2

10× 12.0

13× 16.0 2

26× 32.0 4

32× 38.4 5

40× 48.0 6

66× 80.0 10

100× 120.0 15

133× 160.0 20

150× 180.0 22

200× 240.0 30

266× 320.0 40

300× 360.0 45

Tabela 6-4. Brzine upisa u zavisnosti od klase

23
6.17 USB flash drive

Slika 6.17-1 Izgled USB fleš memorije

USB fleš drive (Slika 6.17-1) se sastoji od NAND fleš memorije za skladištenje podataka i USB 1.1
ili 2.0 priključka. Kapacitet im je za sada maksimalno 256GB. Najčešće se koriste kao prenosivi diskovi.
Podržani su od strane jako puno operativnih sistema i računara, embedded uređaja, dvd plejera… Vecina USB
fleš memorija povezuje se sa računarom preko usb konektora tipa A. Brzina prenosa je teoretski 480Mbit/s na
USB2.0 dok realno to jako varira. Najbrže je za sada oko 30MB/s pri čitanju i upisu od oko 15MB/s. Većina
USB fleš diskova ima ciklus pisanja i brisanja od 100,000.

1. USB konektor

2. USB kontroler

3. Test tačke

4. Fleš memorija

5. Kristal(obično 12MHz)

6. LED

7. WriteProtect prekidač

8. Mesto za dodatnu fleš momoriju

Slika 6.17-2 Opis delova fleš drive-a

USB fleš diskovi su pogodni za bootovanje nekih live operativnih sistema, za eventualno
backupovanje sistema. Čak se i u novijim operativnim sistemima neki tipovi ovih memorija može koristiti kao
dodatna keš memorija. Dobra strana je da je USB fleš memorija otporna na prašinu i ogrebotine u odnosu na
druge medije kao što su CD, HDD.

24
Imaju mogućnost zaštite podataka od neovlašćenog pristupa (lozinka ili ugrađen biometrijski čitač,
prekidač za zaštitu od upisa). USB fleš memorije se u kombinaciji sa odgovarajućim softverom na računaru
mogu koristiti i radi identifikacije. Mana im je da imaju ograničen ciklus pisanja i brisanja, stoga se na njih ne
stavlja operativni sistem koji će intenzivno da piše na memoriju.

Kingston DataTraveler Ultimate 3.0 karakteristike i specifikacije:


• Kapacitet (trenutno dostupni) : 16GB, 32GB, 64GB
• Kompatabilnost : sa USB 2.0
• Brzina : prenos podataka za USB 3.0 do 80MB/sec. čitanje i 60MB/sec. upis
o USB 2.0: oko 30MB/sec. čitanje i 30MB/sec. upis
• Dimenzije: 73.70 mm x 22.20 mm x 16.10 mm
Prema rezultatima testa za DT Ultimate 3.0 prenos filma u trajanju od 2 sata i 23 minuta (4.4GB) trajao
je 83 sekunde.

25

You might also like