Controler de memorie flash - Flash memory controller

Image
Stick USB Lexar 8 GB - Silicon Motion SM3253L - Controler bliț USB 2.0 cu un singur canal.

Un controler de memorie flash (sau controler flash ) gestionează datele stocate pe memoria flash și comunică cu un computer sau dispozitiv electronic . Controlerele de memorie flash pot fi proiectate pentru a funcționa în medii cu cicluri reduse , cum ar fi carduri SD , carduri CompactFlash sau alte medii similare pentru utilizare în camere digitale , PDA-uri , telefoane mobile etc. Unitățile flash USB utilizează controlere de memorie flash concepute pentru a comunica cu personalul computerele prin portul USB la un ciclu de funcționare redus. Controlerele bliț pot fi, de asemenea, proiectate pentru medii cu ciclu de funcționare mai ridicat, cum ar fi unitățile SSD (SSD) utilizate ca stocare de date pentru sistemele de computere laptop , până la matrice de stocare de întreprindere critice .

Configurare inițială

După fabricarea inițială a unui dispozitiv de stocare bliț, controlerul blițului este utilizat mai întâi pentru formatarea memoriei flash. Acest lucru asigură că dispozitivul funcționează corect, mapează celulele de memorie flash defecte și alocă celulele de rezervă pentru a fi înlocuite cu viitoarele celule eșuate. O parte a celulelor de rezervă este, de asemenea, utilizată pentru a păstra firmware - ul care operează controlerul și alte caracteristici speciale pentru un anumit dispozitiv de stocare. O structură de director este creată pentru a permite controlerului să convertească cererile pentru sectoare logice în locațiile fizice de pe cipurile de memorie flash reale.

Citirea, scrierea și ștergerea

Când sistemul sau dispozitivul trebuie să citească sau să scrie date în memoria flash, acesta va comunica cu controlerul de memorie flash. Dispozitivele mai simple precum cardurile SD și unitățile flash USB au de obicei un număr mic de memorie flash conectate simultan. Operațiile sunt limitate la viteza matriței de memorie flash individuale. În schimb, o unitate SSD de înaltă performanță va avea până la 100 sau mai multe matrițe organizate într-o matrice cu căi de comunicație paralele pentru a permite viteze de multe ori mai mari decât cele ale unei singure matrițe de bliț.

Nivelarea uzurii și preluarea blocurilor

Memoria flash poate rezista unui număr limitat de cicluri de ștergere a programului. Dacă un anumit bloc de memorie flash ar fi programat și șters în mod repetat fără a scrie pe alte blocuri, un bloc s-ar uza înainte de toate celelalte blocuri, punând astfel capăt prematur duratei de viață a dispozitivului de stocare. Din acest motiv, controlerele de bliț utilizează o tehnică numită nivelare a uzurii pentru a distribui scrierile cât mai uniform posibil pe toate blocurile de bliț din SSD. Într-un scenariu perfect, acest lucru ar permite ca fiecare bloc să fie scris la maximum, astfel încât toate să eșueze în același timp.

Strat de traducere Flash (FTL) și mapare

De obicei, controlerele de memorie flash includ și „stratul de traducere flash” (FTL), un strat sub sistemul de fișiere care mapează adresele de blocare logică (LBA) ale gazdei sau ale sistemului de fișiere la adresa fizică a memoriei flash (logic-fizic) cartografiere). LBA-urile se referă la numere de sector și la o unitate de cartografiere de 512 octeți. Toate LBA-urile care reprezintă dimensiunea logică vizibilă și gestionată de sistemul de fișiere sunt mapate la o locație fizică (ID bloc, ID pagină și ID sector) a Flash-ului. Ca parte a nivelării uzurii și a altor algoritmi de gestionare a blițului (gestionarea defectuoasă a blocurilor, gestionarea perturbării citirii, gestionarea sigură a blițului etc.), locația fizică a unui LBA s-ar putea schimba în mod dinamic frecvent. Unitățile de cartografiere ale unui FTL pot diferi, astfel încât LBA-urile să fie mapate pe blocuri, pagini sau chiar subpagini. În funcție de tiparul de utilizare, o granularitate de mapare mai fină poate reduce semnificativ uzura blițului și poate maximiza rezistența unui suport de stocare bazat pe bliț.

Deoarece metadatele FTL ocupă propriul spațiu pentru bliț, are nevoie și de protecție în caz de pierdere de energie. În plus, este posibil ca masa de mapare să se uzeze înainte ca alte părți ale memoriei flash să aibă loc, încheind prematur viața unui dispozitiv de stocare. Acest lucru este de obicei evitat în dispozitivele de întreprindere prin alocarea unui spațiu supradimensionat pentru piese de schimb, deși s-au propus și forme FTL mai durabile precum MRAM .

Colectarea gunoiului

Odată ce fiecare bloc al unui dispozitiv de stocare în stare solidă a fost scris o singură dată, controlerul flash va trebui să revină la unele dintre blocurile inițiale care nu mai au date curente (numite și blocuri vechi). Datele din aceste blocuri au fost înlocuite cu blocuri recent scrise și acum așteaptă să fie șterse, astfel încât noi date să poată fi scrise în ele. Acesta este un proces numit colectarea gunoiului (GC). Toate SSD-urile, cardurile CF și alte dispozitive de stocare flash vor include un anumit nivel de colectare a gunoiului. Viteza la care un controler de bliț va face acest lucru poate varia.

Referințe