Controlador de memòria flaix

De la Viquipèdia, l'enciclopèdia lliure
Llapis USB Lexar 8 GB - Silicon Motion SM3253L - Controlador de flaix USB 2.0 d'un sol canal.

Un controlador de memòria flaix (o controlador flaix ) gestiona les dades emmagatzemades a la memòria flaix (normalment flaix NAND) i es comunica amb un ordinador o dispositiu electrònic. Els controladors de memòria flash es poden dissenyar per funcionar en entorns de baix cicle de treball, com ara targetes de memòria o altres suports similars per utilitzar-los en PDA, telèfons mòbils, etc. Les unitats flash USB utilitzen controladors de memòria flash dissenyats per comunicar-se amb ordinadors personals a través del port USB de un cicle de treball baix. Els controladors de flaix també es poden dissenyar per a entorns de cicle de treball superior, com ara unitats d'estat sòlid (SSD) que s'utilitzen com a emmagatzematge de dades per a sistemes d'ordinadors portàtils fins a matrius d'emmagatzematge empresarial crítiques.[1]

Configuració inicial[modifica]

Després de fabricar un dispositiu d'emmagatzematge flash, primer s'utilitza el controlador de flaix per formatar la memòria flaix. Això garanteix que el dispositiu funcioni correctament, traça les cèl·lules de memòria flash dolentes i assigna cèl·lules de recanvi per substituir-les per futures cel·les fallides. Una part de les cèl·lules de recanvi també s'utilitza per contenir el microprogramari que opera el controlador i altres funcions especials per a un dispositiu d'emmagatzematge en particular. Es crea una estructura de directoris per permetre al controlador convertir les sol·licituds de sectors lògics a les ubicacions físiques dels xips de memòria flash reals.[2]

Llegir, escriure i esborrar[modifica]

Quan el sistema o dispositiu necessiti llegir dades o escriure dades a la memòria flaix, es comunicarà amb el controlador de la memòria flaix. Els dispositius més senzills com les targetes SD i les unitats flash USB solen tenir un petit nombre de matrius de memòria flash connectades simultàniament. Les operacions es limiten a la velocitat de la matriu de memòria flash individual. En canvi, una unitat d'estat sòlid d'alt rendiment tindrà més matrius organitzades amb vies de comunicació paral·leles per permetre velocitats moltes vegades més grans que la d'una matriu de flaix únic.

Anivellació de desgast i selecció de blocs[modifica]

La memòria flaix pot suportar un nombre limitat de cicles d'esborrat de programes. Si un determinat bloc de memòria flash es programa i s'esborra repetidament sense escriure en cap altre bloc, un bloc es desgastaria abans que tots els altres blocs, acabant així prematurament la vida útil del dispositiu d'emmagatzematge. Per aquest motiu, els controladors de flaix utilitzen una tècnica anomenada anivellament del desgast per distribuir les escriptures de la manera més uniforme possible a tots els blocs de flaix de l'SSD. En un escenari perfecte, això permetria que cada bloc s'escrigués a la seva màxima vida, de manera que tots fallessin al mateix temps.

Capa de traducció flash (FTL) i mapeig[modifica]

Normalment, els controladors de memòria flash també inclouen la "capa de traducció flash" (FTL), una capa per sota del sistema de fitxers que mapeja les adreces de bloc lògic (LBA) del costat de l'amfitrió o del sistema de fitxers a l'adreça física de la memòria flaix (de lògica a física). cartografia). Els LBA fan referència als números de sector i a una unitat de mapeig de 512 bytes. Tots els LBA que representen la mida lògica visible i gestionada pel sistema de fitxers s'assignen a una ubicació física (ID de bloc, ID de pàgina i ID de sector) del Flash. Com a part de l'anivellament del desgast i altres algorismes de gestió de flaix (gestió de blocs incorrectes, gestió de pertorbacions de lectura, gestió de flaix segura, etc.), la ubicació física d'un LBA pot canviar dinàmicament amb freqüència. Les unitats de mapeig d'un FTL poden diferir de manera que els LBA es basen en blocs, pàgines o fins i tot subpàgines. Depenent del patró d'ús, una granularitat de mapatge més fina pot reduir significativament el desgast del flaix i maximitzar la resistència d'un suport d'emmagatzematge basat en flaix.[3][4][5] La funció de deduplicació per eliminar dades redundants i escriptures duplicades també s'afegeix a FTL.[6]

Recollida de brossa[modifica]

Un cop s'ha escrit cada bloc d'un dispositiu d'emmagatzematge d'estat sòlid una vegada, el controlador flash haurà de tornar a alguns dels blocs inicials que ja no tenen dades actuals (també anomenats blocs obsolets). Les dades d'aquests blocs es van substituir per blocs recentment escrits i ara estan esperant que s'esborrin per poder escriure noves dades. Aquest és un procés anomenat recollida d'escombraries (GC). Tots els SSD, targetes CF i altres dispositius d'emmagatzematge flash inclouran algun nivell de recollida d'escombraries. La velocitat a la qual ho farà un controlador de flaix pot variar.[7]


Referències[modifica]

  1. «Flash Memory Guide» (en anglès). kingston.com. [Consulta: 7 març 2013].
  2. «Flash Memory Guide» (en anglès). kingston.com. [Consulta: 7 març 2013].
  3. Goodson, Garth. «Design Tradeoffs in a Flash Translation Layer» (en anglès). Arxivat de l'original el June 23, 2015.
  4. «Understanding Flash: The Flash Translation Layer» (en anglès), September 17, 2014.
  5. Heidrich, Susan. «New flash management architecture enables MLC for industrial storage» (en anglès), February 2015.
  6. "CAFTL: a content-aware flash translation layer enhancing the lifespan of flash memory based solid state drives" a FAST' 11.  
  7. «SSDs - Write Amplification, TRIM and GC» (en anglès). OCZ Technology. Arxivat de l'original el 2012-05-26. [Consulta: 31 maig 2010].