Professional Documents
Culture Documents
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).
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.
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.
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.
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.
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.
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.
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.
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)
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.
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.
10
6.5.1 NOR fleš
11
Slika 6.5-4 Poređenje performansi NAND i NOR-a
6.6.1 Brisanje
12
6.6.2 Programiranje
6.6.3 Čitanje
Čitanje NOR-a je slično kao i kod pristupa RAM-u, setovanjem odgovarajućih vrednosti na adresnu
magistralu.
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.
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)
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
Č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
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
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% .
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.
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.
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.
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.
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.
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.
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.
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)
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
23
6.17 USB flash drive
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č
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.
25