Sistem de fișiere Flash

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

Un sistem de fișiere flash este un tip de sistem de fișiere conceput pentru poziționarea și organizarea fișierelor pe sisteme cu memorie flash , este de fapt sisteme de fișiere optimizate pentru aceste memorii pentru a evita problemele legate de propriile caracteristici specifice (cum ar fi, de exemplu, fenomenul de amplificare la scriere ) sau pentru a permite utilizarea sa în anumite sisteme de operare .

Prezentare generală

Pictogramă lupă mgx2.svg Același subiect în detaliu: Scrieți amplificarea .

Un dispozitiv bloc poate emula un hard disk folosind un sistem de fișiere generic pe o memorie flash . Aceasta este o soluție destul de ineficientă din următoarele motive:

  • Ștergerea blocurilor: blocurile de memorie flash trebuie șterse explicit înainte de a li se permite să scrie din nou. Timpul necesar pentru ștergerea blocurilor poate fi semnificativ, motiv pentru care cel mai bine este să ștergeți blocurile neutilizate în timp ce dispozitivul nu este utilizat.
  • Acces aleatoriu : Sistemele de fișiere generice sunt optimizate pentru a evita operațiunile de căutare ori de câte ori este posibil, datorită costului ridicat pe un hard disk . În schimb, o memorie flash nu are latență cauzată de o operație de căutare.
  • Nivelare uzură : dispozitivele de memorie flash tind să se degradeze atunci când un singur bloc este suprascris în mod repetat; de fapt, sistemele de fișiere flash sunt concepute pentru a distribui cât mai mult posibil operațiile de scriere. LFS sau sistemele de fișiere structurate în jurnal au caracteristicile adecvate pentru utilizarea unui sistem de fișiere flash. [1] .

Tocmai datorită caracteristicilor sale speciale, memoria flash necesită utilizarea unui sistem de fișiere tip flash conceput special sau a unui controler pentru nivelarea uzurii și detectarea erorilor . Un sistem de fișiere flash, de fapt, distribuie operațiile de scriere pe întregul dispozitiv și gestionează timpii lungi de ștergere a blocurilor NAND . De fiecare dată când memoria trebuie actualizată, sistemul de fișiere nu va actualiza direct blocul original, ci va scrie o nouă copie a datelor modificate pe un bloc gratuit, modificând pointerii și apoi ștergând datele din vechiul bloc, făcându-l din nou gratuit în acest moment.

În practică, sistemele de fișiere flash sunt utilizate numai pentru MTD-uri sau dispozitive de tehnologie de memorie , care sunt memorii flash încorporate fără controler. Dispozitivele amovibile, cum ar fi cardurile de memorie sau dispozitivele de stocare USB, sunt echipate cu un controler integrat pentru gestionarea MTD-urilor prin algoritmi dedicați [2] [3] , cum ar fi nivelarea uzurii, recuperarea datelor de blocare, colectarea gunoiului sau pentru corectarea erorilor .

Difuzia dispozitivelor de memorie flash crește datorită creșterii corespunzătoare a dispozitivelor mobile, a unui cost pe bit mai mic și a creșterii propriei capacități.

Origini

Primul sistem de fișiere flash, care a gestionat o matrice ca și cum ar fi regrababil în mod liber, a fost TrueFFS dezvoltat de M-Systems of Israel , prezentat ca software la PC-Card Expo din Santa Clara , California , în iunie 1992. și înregistrat în 1993. [4]

Unul dintre primele sisteme de fișiere flash a fost Microsoft FFS2 pentru MS-DOS , lansat în toamna anului 1992. [5] . FFS2 a fost precedat de „FFS” , dar a fost departe de a fi un adevărat sistem de fișiere flash, deoarece gestiona matricele de memorie flash ca o scriere o dată citită mai multe dispozitive (WORM), mai degrabă decât un disc regrababil în mod liber.

În 1994, un grup industrial numit PCMCIA, sau Asociația Internațională a Cardului de Memorie pentru Computer Personal , a aprobat specificația Flash Translation Layer (FTL), pe baza arhitecturii TrueFFS a M-Systems. Specificația a fost dezvoltată și propusă de M-Systems și SCM Microsystems, care au furnizat și primele implementări de lucru ale FTL. Susținut de Intel [6] , FTL a devenit o arhitectură populară și în alte dispozitive.

Strat de traducere Flash

Stratul de traducere flash sau FTL, care înseamnă literalmente nivelul tipului de traducere flash, este un software deosebit de complex care urmărește să traducă o adresă logică utilizată de sistem la o adresă fizică din memoria flash . [7] În detaliu se referă la furnizarea unei extracții I / O a unui dispozitiv de blocare generic, pentru a permite înlocuirea oricărui hard disk cu un disc solid, fără ca software - ul să fie nevoit să facă față diferențelor.

Implementarea acestor sarcini organizaționale și de gestionare necesită o cantitate semnificativă de resurse în controlerul de memorie flash. În special, sarcini precum remaparea adresei fizice și operațiunile de colectare a gunoiului necesită cantități mari de DRAM și un procesor deosebit de puternic. FTL ia decizii importante care afectează performanța stocării și durata de viață a dispozitivelor utilizate, fără ca nicio aplicație de nivel înalt să aibă de-a face cu acestea, riscând o scădere a performanței sistemului.

Prin urmare, stratul de traducere flash funcționează ca o cutie neagră , funcționalitatea sa internă este ascunsă în spatele unui strat I / O , ceea ce face ca comportamentul memoriei flash să fie imprevizibil pentru aplicațiile de nivel înalt.

Un alt dezavantaj serios al FTL este duplicarea funcționalității între FTL și sistem. Multe aplicații de sistem sunt capabile să gestioneze dispozitivele de stocare pe care le utilizează pentru a evita un număr excesiv de operațiuni de actualizare la fața locului din motive precum o eficiență mai bună, versiuni corecte și o mai mare consistență a datelor. Sistemele de fișiere structurate în jurnal sau copiere pe scriere , precum cele de tip flash, scriu continuu date noi pe dispozitiv, fără a permite operațiuni de actualizare la fața locului. [8]

TrueFFS

În ciuda numelui, TrueFFS nu este un sistem de fișiere, este de fapt un software care se ocupă de furnizarea unei interfețe pe disc și, prin urmare, este mai corect să-l definiți ca un FTL. TrueFFS este conceput pentru a rula direct pe unități de stare solidă (rețineți că majoritatea SSD-urilor de pe piață nu oferă capacități de interacțiune directă). TrueFFS oferă corectarea erorilor, remaparea badblock-ului și nivelarea uzurii. În exterior, TrueFFS arată ca o interfață normală pe hard disk .

TrueFFS a fost creat de M-Systems [4] și a fost apoi achiziționat de Sandisk în 2006. Un derivat al TrueFFS, numit TFFS sau TFFS-lite, se găsește în sistemul de operare VxWorks , unde acționează ca un strat de traducere flash și nu a unui sistem complet de fișiere.

ExtremeFFS

ExtremeFFS este o tehnologie lansată de SanDisk, care se mândrește cu o îmbunătățire a performanței la scriere cauzală față de TrueFFS. Sandisk susține că tehnologia menționată mai sus îi permite să îmbunătățească viteza de scriere aleatorie pe SSD-uri de o sută de ori mai mare. [9] [10] În 2008, compania a promovat utilizarea tehnologiei ExtremeFFS într-o implementare MLC sau celulă pe mai multe niveluri a memoriei flash NAND [11]

Aplicație gestionată Flash

Aplicația Managed Flash (sau AMF) este un tip de FTL care are ca scop mutarea gestionării memoriei flash de pe dispozitiv în aplicații, cum ar fi sistemele de fișiere . baza de date și aplicațiile utilizatorilor, lăsând astfel doar managementul esențial pe partea dispozitivului.

În MFA, răspunderea dispozitivului este mult redusă pentru a oferi acces fără erori la dispozitivul de stocare și un suport eficient de calcul paralel . Dispozitivul ține o evidență independentă a blocajelor negative și folosește nivelarea uzurii , acest lucru se datorează faptului că este întotdeauna preferabil să efectuați aceste operațiuni la un nivel scăzut, deoarece acestea sunt direct dependente de arhitecturile specifice ale circuitelor utilizate, pe care, înțeles, companiile producătoare sunt reticenți în dezvăluire. [8]

Sistem de fișiere Flash pentru Linux

JFFS, JFFS2 și YAFFS

Journaling Flash File System a fost primul sistem de fișiere specific flash pentru Linux , dar a fost rapid înlocuit de JFFS2, dezvoltat inițial pentru memoria flash NOR . După ce YAFFS a fost lansat special pentru memoria flash NAND în 2002, JFFS2 a fost, de asemenea, actualizat pentru a le sprijini.

UBIFS

Unsorted Block Image File System este un succesor al JIFFS2 și a fost utilizat de Linux 2.6.22 [12] în 2008. UBIFS a fost dezvoltat activ de la lansarea inițială [13] UBIFS are documentație la infradead.org împreună cu driverele JFFS2 la MTD . Unele comparații inițiale arată că UBIFS efectuează operațiuni de compresie mai rapid decât F2FS [14] .

LogFS

Sistemul de fișiere structurat în jurnale este un alt sistem de fișiere flash specific Linux, în prezent în curs de dezvoltare cu scopul de a rezolva problemele de scalabilitate JFFS2.

F2FS

Sistemul de fișiere Flash-Friendly a fost adăugat la nucleul Linux versiunea 3.8. [15] În loc să fie dezvoltat pentru a comunica direct cu dispozitivele flash, F2FS a fost conceput pentru a fi utilizat pe dispozitivele de tip flash care au deja un FTL, cum ar fi cardurile SD . [16]

Notă

  1. ^ Arnd Bergmann, Optimizarea Linux cu unități flash ieftine , pe lwn.net , LWN.net , 18 februarie 2011. Accesat la 26 ianuarie 2013 .
  2. ^ Controlerul USBkey Phison PS2251-63 , la phison.com . Adus la 19 decembrie 2016 (arhivat din original la 28 iulie 2011) .
  3. ^ OpenNFM: Un NAND FTL open source pentru SSD și modul de stocare încorporat
  4. ^ a b {{{CountryCode}}} {{{PublicationNumber}}}  
  5. ^ Brevet Microsoft FFS2
  6. ^ Înțelegerea specificației stratului de traducere Flash (FTL) ( PDF ), la staff.ustc.edu.cn , Intel , decembrie 1998. Accesat la 27 iulie 2015 (arhivat din original la 19 iulie 2014) .
  7. ^ μ-FTL: A Memory-Efficient Flash Translation Layer Supporting Mapping Granularities , on slideshare.net , Korea Advanced Institute of Science and Technology (KAIST), octombrie 2008. Accesat la 19 decembrie 2016 (arhivat din original la 19 decembrie 2016) .
  8. ^ a b Sungjin Lee, Ming Liu, Sangwoo Jun, Shuotao Xu, Jihong Kim and Arvind, Application-Managed Flash ( PDF ), la people.csail.mit.edu , MIT , februarie 2016. Accesat la 19 decembrie 2016 (arhivat din adresa URL originală din 19 decembrie 2016) .
  9. ^ Tony Smith, SanDisk lansează tehnologia de creștere a vitezei SSD 100x: Scrieri aleatorii lente ascunse în scrieri secvențiale rapide , în The Register , 5 noiembrie 2008. Accesat la 23 octombrie 2016 .
  10. ^ SanDisk Technical Expertise and Metrics , pe site-ul web promoțional , Sandisk . Adus la 23 octombrie 2016 (arhivat din original la 8 noiembrie 2008) .
  11. ^ Chris Mellor, SanDisk flash deține sosul flash secret până după Crăciun , în The Register , 28 noiembrie 2008. Accesat la 23 octombrie 2016 .
  12. ^ Jonathan Corbet, UBIFS , pe lwn.net , LWN, 2 aprilie 2008.
  13. ^ Richard Weinberger, UBI: Fastmap request for inclusion , pe lwn.net , LKML, 24 septembrie 2012.
  14. ^ Neil Brown, JFFS2, UBIFS și creșterea stocării flash , lwn.net , LWN, 11 decembrie 2012.
  15. ^ Sisteme de fișiere și stocare , pe jurnalul Kernel - În versiunea 3.8 , The H , 21 ianuarie 2013. Accesat pe 23 ianuarie 2013 .
  16. ^ Neil Brown, An f2fs teardown . Lwn.net , LWN.net , 10 octombrie 2012. Accesat la 9 aprilie 2014 .

Elemente conexe


Informatică Portal IT : accesați intrările Wikipedia care se ocupă cu IT