Memoria (de tip) flash este o memorie electronică, de calculator (sau alt aparat cu memorie), nevolatilă (în care datele persistă și fără alimentare cu energie electrică) și care la nevoie poate fi ștearsă și reprogramată (reîncărcată cu date). „Flash” mai desemnează și tehnologia folosită la fabricarea memoriilor de acest tip. Memoriile flash sunt memorii cu acces aleator.
Istoric
Memoria flash (atât de tip NOR cât și de tip NAND) a fost inventată de Dr. Fujio Masuoka în anul 1980, în timp ce lucra la compania Toshiba. Conform Toshiba, numele de „flash” a fost sugerat de colegul lui Masuoka, anume Shoji Ariizumi, deoarece procesul de ștergere îi amintea de blițul unei aparat foto cu bliț (în engleză: flash).
Caracteristici
Memoria flash (uneori numită și „Flash RAM”) este un tip de memorie nevolatilă cu alimentare constantă ale cărei blocuri de memorie pot fi șterse și reprogramate. Este o variantă a memoriei de tip EEPROM („Electrically Erasable Programmable Read-Only Memory”), care, spre deosebire de memoria flash, este ștearsă și programată la nivel de bit, ceea ce o face mai lentă.
Numele de „memorie flash” vine de la faptul că cipul este organizat in așa fel încât o operație de ștergere se face printr-o singură acțiune sau „flash”. Ștergerea este cauzată de fenomenul tunelare Fowler-Nordheim, prin care electronii străpung un material dielectric fin cu scopul de a înlătura sarcina din poarta flotantă asociată fiecărei celule de memorie.
Memoria flash este folosită des pentru a memora cod de control asemănător BIOS-ului calculatoarelor personale. Când informația din BIOS trebuie modificată memoria poate fi scrisă la nivel de bloc, ceea ce o face mai ușor de modificat. In schimb, flash–ul nu este folosit ca RAM („Random Acces Memory”), deoarece RAM-ul este adresat la nivel de byte.
Compania Intel oferă o tehnologie flash care reține 2 biți într-o celulă de memorie, ceea ce dublează capacitatea la același preț.
Clasificare
Există două tipuri de memorie flash: NOR (Not Or) și NAND (Not And). Denumirile se referă la tipul de poartă logică folosită pentru celulele de stocare. NOR înseamnă: adevărat numai dacă ambele intrări sunt false, iar NAND înseamnă: fals numai dacă ambele intrări sunt adevărate. Memoria flash de tip NOR (NOR flash) a fost introdusă de compania Intel în anul 1988, în timp ce NAND de către compania Toshiba în 1989. Cele doua cipuri lucrează in mod diferit. Cu NAND se pot realiza capacități de stocare mult mai mari decât cu NOR. Tehnologia NAND și-a găsit utilitatea în dispozitive care au nevoie de capacitate mare de stocare a datelor și în plus stergerea și programarea să se facă frecvent. Playerele MP3, camerele foto digitale și stick–urile USB folosesc NAND. NOR, în schimb, este mai rapid dar și mai scump.
Un scop important al producătorilor de NAND este reducerea costului pe bit și mărirea capacității unui cip astfel încât să poată concura cu dispozitive de stocare magnetice ca de ex. discurile dure. Noile tehnologii NAND au dus la un cip mai mic, au micșorat voltajul dar au mărit ciclul de scriere–citire.
Memoria flash tip NOR are o speranță de viață de 10.000 la 100.000 de cicluri de scriere-ștergere. Deși are viteze mici de scriere și de ștergere, permite un acces aleatoriu pentru citire și scriere, făcând-o adecvată pentru stocarea datelor care nu necesită o actualizare frecventă.
Este important că la livrarea circuitelor NOR se garantează că toate locațiile de memorie sunt „bune” și au același număr garantat de cicluri de ștergere-programare. Mai mult, în faza de fabricație se prevăd un număr destul de mare de locații „de rezervă”, care sunt utilizate pentru repararea prin înlocuire a eventualelor locații defecte.
Memoria flash tip NAND are viteze de scriere și de ștergere mai mari, o mai mare densitate de memorie, un cost mai mic pe bit și o speranță de viață mult mai lungă, suportând de aproximativ 10 ori mai multe cicluri de scriere-ștergere decât memoria flash tip NOR. Dezavantajul constă în interfața de intrare-ieșire care permite numai un acces secvențial la date.
La un circuit NAND Flash, producătorul NU garantează că toate locațiile de memorie sunt „bune” și au același număr garantat de cicluri de ștergere-programare. De asemenea se realizează un număr foarte mic de locații de rezervă utilizabile la repararea eventualelor locații cu defecte, rezultând o economie în plus. La un astfel de circuit trebuie să existe un mecanism de detecție a erorilor și de gestionare al locațiilor defecte, cipul putând fi livrat, din considerente economice, cu locații defecte din fabrică! Mai mult chiar, este posibil ca unele celule de memorie să-și epuizeze posibilitățile de ștergere-programare mai devreme decât altele, pe parcursul utilizării circuitului.
Funcționarea unui NAND Flash este similară altor dispozitive de intrare–ieșire, cum ar fi și discul dur pe care acesta dorește să-l înlocuiască. Datorită acestei interfețe indirecte un sistem de calcul nu poate executa codul memorat într-un NAND Flash decât prin intermediul unui controler de memorie sau al unei mașini secvențiale dedicate.
Din punct de vedere practic, al proiectantului de sistem și al utilizatorului, cea mai mare diferență între cele două categorii de circuite este interfața utilizator. Un circuit NOR Flash este foarte asemănător din punct de vedere al interfeței cu un circuit EPROM (sau SRAM), având linii (magistrale) de adrese și date separate. El poate fi mapat cu ușurință, în mod direct, în spațiul de memorie al sistemului de calcul. Astfel, sistemul de calcul poate citi în mod direct cod memorat într-un NOR Flash și îl poate executa.
Memoria NOR suportă acces aleatoriu pe un bait, ceea ce permite sistemului să ia datele și să le execute direct de pe cip în același fel cum un PC ia datele din memoria principală. NOR flash are o interfață SRAM ce conține suficienți pini de adresă pentru a mapa întregul cip, dând astfel acces către fiecare bait.
Suport software
Spre deosebire de alte circuite de memorie, pentru utilizatorul tehnologiei flash există și o componentă software, a cărei prezență este obligatorie, mai ales în cazul circuitelor NAND Flash.
Există două nivele diferite pentru suportul software: un nivel de bază pentru operațiile de citire - ștergere - scriere și un nivel superior, pentru emularea unui disc dur și gestionarea algoritmilor specifici tehnologiei flash (mărirea duratei de viață, uniformizarea uzurii, optimizarea performanței etc.).
Pentru a citi informație și eventual a executa cod dintr-o memorie NOR Flash nu este practic nevoie de niciun suport software. Pentru a executa însă cod dintr-o memorie NAND este nepărată nevoie de un driver (pe lângă hardwareul suplimentar)! Această categorie de driveri poartă denumirea de „driveri asociați tehnologiei de memorie” - din engleză de la Memory Technology Driver/Device (MTD). Atât circuitele NOR cât și cele NAND au nevoie de un driver MTD pentru operațiile de ștergere și scriere. Dacă un driver MTD este tot ce e nevoie pentru a șterge/scrie un circuit NOR, la un circuit NAND trebuie să mai existe și un suport suplimentar pentru detecția erorilor de bit și gestionarea blocurilor defecte (bad block mangement).
Un exemplu de software de nivel superior, axat pe tehnologia NAND Flash, este cel al firmei MSystems, numit True Flash File System sau TrueFFS, care realizează atât emularea discurilor dure și gestionarea blocurilor defecte, cât și uniformizarea uzurii (wear leveling), ușurând în mod esențial integrarea în sistem a acestor circuite. O versiune TrueFFS există și pentru tehnologia NOR Flash.
TrueFFS este disponibil, ca surse și/sau executabile, pentru toate sistemele de operare majore cum ar fi: VxWorks, Windows CE, Linux, QNX/Neutrino, Windows XP/XPE, Windows NT/NTE, DOS și multe altele.
Limitări
Deși la prima vedere memoriile flash par a înmagazina informația permanent, informațiile se pot totuși pierde dacă nu sunt folosite mult timp. Pentru memoriile flash durata de timp după care informația se poate pierde este de ordinul zecilor de ani. O limitare și mai importantă o constituie însă faptul că memoria flash are un număr limitat de cicluri citire-scriere, din cauza acumulării de electroni la poarta tranzistoarelorMOS, ceea ce, după citiri și scrieri repetate, reduce tensiunea de prag logic atât de mult, încât devine imposibil de detectat dacă respectivul bit este un „1” sau un „0”. Fenomenul poate apărea după un număr de ordinul zecilor de mii până la ordinul milioanelor de operații de citire/scriere.
Domenii de utilizare
Memoriile flash se utilizează în primul rând pentru memoriile propriu-zise ale diverselor echipamente electronice cum ar fi, în engleză: USB flash drive, thumb drive, handy drive, memory stick, flash stick, jump drive, „Cap N' Go” - care încă nu dispun de un termen românesc consacrat.
Computere personale de tip laptop, notebook, netbook etc.
O mare răspândire au cunoscut-o flash-urile și la consolele de jocuri electronice, unde, pentru reținerea datelor jocului, ele au înlocuit deja EEPROM-urile și SRAM-urile (care trebuie alimentate cu baterii).
Alte exemple unde se folosesc flash-urile sunt player audio, cameră digitală de fotografiat și telefoanele mobile, în special cele de tip smartphone.