Folosirea memoriei flash pentru a rula un sistem desktop, cum ar fi Windows, nu a fost recomandată de ceva timp. Dar ce a făcut-o o opțiune dorită și viabilă pentru dispozitivele mobile? Postarea de astăzi a SuperUser Q&A are răspunsul la întrebarea unui cititor curios.
Sesiunea de Întrebări și Răspunsuri de astăzi ne vine prin amabilitatea SuperUser - o subdiviziune a Stack Exchange, un grup de site-uri web de întrebări și răspunsuri bazat pe comunitate.
Intrebarea
Cititorul SuperUser RockPaperLizard vrea să știe ce face viabilă memoria flash eMMC pe dispozitivele mobile, dar nu și pe PC-uri:
De când au fost inventate unitățile flash USB, oamenii s-au întrebat dacă ar putea rula sistemele de operare pe ele. Răspunsul a fost întotdeauna „nu”, deoarece numărul de scrieri cerute de un sistem de operare le-ar epuiza rapid.
Pe măsură ce SSD-urile au devenit mai populare, tehnologia de nivelare a uzurii s-a îmbunătățit pentru a permite sistemelor de operare să ruleze pe ele. Diferite tablete, netbook-uri și alte computere subțiri folosesc memorie flash în locul unui hard disk sau SSD, iar sistemul de operare este stocat pe acesta.
Cum a devenit brusc acest lucru practic? Implementează de obicei tehnologii de nivelare a uzurii, de exemplu?
Ce face viabilă memoria flash eMMC pe dispozitivele mobile, dar nu pe PC-uri?
Răspunsul
Contribuitorii SuperUser Speeddymon și Journeyman Geek au răspunsul pentru noi. În primul rând, Speeddymon:
Toate dispozitivele de memorie flash, de la tablete la telefoane mobile, ceasuri inteligente, SSD-uri, carduri SD în camere și unități USB USB utilizează tehnologia NVRAM. Diferența constă în arhitectura NVRAM și modul în care sistemul de operare montează sistemul de fișiere pe orice mediu de stocare pe care se află.
Pentru tablete și telefoane mobile Android, tehnologia NVRAM se bazează pe eMMC. Datele pe care le pot găsi despre această tehnologie sugerează între 3k și 10k cicluri de scriere. Din păcate, nimic din ceea ce am găsit până acum nu este definitiv, întrucât Wikipedia nu conține cicluri de scriere ale acestei tehnologii. Toate celelalte locuri pe care le-am căutat s-au întâmplat să fie diverse forumuri, așa că abia ceea ce aș numi o sursă de încredere.
Din motive de comparație, ciclurile de scriere pentru alte tehnologii NVRAM, cum ar fi SSD-urile, care utilizează tehnologia NAND sau NOR, sunt între 10k și 30k.
Acum, cu privire la alegerea sistemului de operare a modului de montare a sistemului de fișiere. Nu pot vorbi despre cum o face Apple, dar pentru Android, cipul este partiționat așa cum ar fi un hard disk. Aveți o partiție a sistemului de operare, o partiție de date și alte câteva partiții proprietare, în funcție de producătorul dispozitivului.
Partiția rădăcină reală trăiește în interiorul încărcătorului de încărcare, care este grupat ca un fișier comprimat (jffs2, cramfs etc.) împreună cu nucleul, astfel încât atunci când boot-ul dispozitivului în etapa 1 este finalizat (ecranul cu logo-ul producătorului de obicei), atunci nucleul boot-urile și partiția rădăcină sunt montate simultan ca un disc RAM.
Pe măsură ce sistemul de operare pornește, acesta montează sistemul de fișiere al partiției primare (/ system, care este jffs2 pe dispozitive înainte de Android 4.0, ext2 / 3/4 pe dispozitive de la Android 4.0 și xfs pe cele mai recente dispozitive) ca doar în citire că nu i se pot scrie date. Bineînțeles, acest lucru poate fi rezolvat prin așa-numita „înrădăcinare” a dispozitivului dvs., care vă oferă acces ca super utilizator și vă permite să remontați partiția ca citire / scriere. Datele dvs. de „utilizator” sunt scrise pe o partiție diferită de pe cip (/ date, care urmează aceeași convenție ca mai sus pe baza versiunii Android).
Cu tot mai multe telefoane mobile care renunță la sloturile pentru carduri SD, s-ar putea să credeți că veți atinge limita ciclului de scriere mai devreme, deoarece toate datele dvs. sunt acum salvate în spațiul de stocare eMMC în locul unui card SD. Din fericire, majoritatea sistemelor de fișiere detectează o scriere eșuată într-o anumită zonă de stocare. Dacă o scriere eșuează, atunci datele sunt salvate în tăcere într-o nouă zonă de stocare, iar zona defectă (cunoscută sub numele de bloc defect) este blocată de driverul sistemului de fișiere, astfel încât datele să nu mai fie scrise acolo în viitor. Dacă o citire eșuează, atunci datele sunt marcate ca fiind corupte și fie utilizatorului i se spune să execute o verificare a sistemului de fișiere (sau să verifice discul), fie dispozitivul verifică automat sistemul de fișiere la următoarea pornire.
De fapt, Google are un brevet pentru detectarea și gestionarea automată a blocurilor defecte: Gestionarea blocurilor defecte din memoria flash pentru cardul flash de date electronice
Pentru a ajunge mai la subiect, întrebarea dvs. despre cum a devenit brusc practic acest lucru nu este întrebarea corectă de pus. În primul rând nu a fost niciodată practic. A fost recomandat să nu instalați un sistem de operare (Windows) pe un SSD (probabil) din cauza numărului de scrieri pe un disc.
De exemplu, registrul primește literalmente sute de citiri și scrieri pe secundă, care pot fi văzute cu Instrumentul Microsoft-SysInternals Regmon .
Instalarea Windows nu a fost recomandată pe SSD-urile din prima generație, deoarece, din cauza lipsei nivelării uzurii, datele scrise în registru în fiecare secundă (probabil) au ajuns în cele din urmă la adoptatorii timpurii și au dus la sisteme care nu pot fi pornite din cauza corupției registrului.
Cu tablete, telefoane mobile și aproape orice alt dispozitiv încorporat, nu există niciun registru (dispozitivele încorporate Windows sunt excepții, desigur) și, prin urmare, nu se îngrijorează faptul că datele sunt scrise în mod constant pe aceleași părți ale suportului flash.
Pentru dispozitivele Windows Embedded, cum ar fi multe dintre chioșcurile găsite în locuri publice (cum ar fi Walmart, Kroger etc.) în care este posibil să vedeți din când în când un BSOD aleatoriu, nu există o mulțime de configurații care pot fi făcute, deoarece sunt pre-proiectate cu configurații care sunt destinate să nu se schimbe niciodată. Singurele schimbări de timp au loc înainte de scrierea cipului în majoritatea cazurilor. Orice lucru care trebuie salvat, cum ar fi plata către magazinul alimentar, se face prin rețea către bazele de date ale magazinului de pe un server.
Urmat de răspunsul de la Journeyman Geek:
Răspunsul a fost întotdeauna „nu”, deoarece numărul de scrieri cerute de un sistem de operare le-ar epuiza rapid.
Au devenit în cele din urmă rentabile pentru utilizarea de masă. Că „uzura” este singura preocupare este un pic o presupunere. Au existat sisteme care rulează memorie în stare solidă pentru o perioadă considerabilă de timp. Mulți oameni care au construit auto-puters au pornit de pe cardurile CF (care erau compatibile electric cu PATA și banale de instalat în comparație cu hard disk-urile PATA), iar computerele industriale au stocat un flash mic, robust.
Acestea fiind spuse, nu existau multe opțiuni pentru o persoană obișnuită. Puteți cumpăra un card CF scump și un adaptor pentru un laptop sau puteți găsi un disc industrial foarte mic, foarte scump pe o unitate de modul pentru desktop. Nu erau foarte mari în comparație cu hard disk-urile contemporane (DOM-urile IDE moderne depășesc 8 GB sau 16 GB cred). Sunt destul de sigur că ați fi putut obține unități de sistem în stare solidă configurate înainte de a deveni SSD standard.
Din câte știu, nu s-au produs îmbunătățiri universale / magice în nivelarea uzurii. Au existat îmbunătățiri incrementale în timp ce ne îndepărtăm de SLC scump la MLC, TLC și chiar QLC, împreună cu dimensiuni mai mici de proces (toate acestea costuri mai mici, cu un risc mai mare de uzură). Flash a devenit mult mai ieftin.
Au existat, de asemenea, câteva alternative care nu au avut probleme de uzură. De exemplu, rularea întregului sistem de pe un ROM (care este, fără îndoială, stocare în stare solidă) și RAM cu baterie, pe care le foloseau multe SSD-uri timpurii și dispozitive portabile, cum ar fi Palm Pilot. Niciuna dintre acestea nu este obișnuită astăzi. Hard disk-urile s-au agitat în comparație, de exemplu, memoria RAM cu baterie (prea scumpă), dispozitivele în stare solidă timpurie (oarecum scumpe) sau țărani cu steaguri (niciodată prins din cauza densității teribile a datelor). Chiar și memoria flash modernă este o descendent al eepromurilor cu ștergere rapidă și eeproms au fost folosite în dispozitivele electronice pentru stocarea unor lucruri precum firmware-ul de veacuri.
Hard disk-urile pur și simplu erau la o intersecție plăcută cu volum mare (ceea ce este important), cost redus și stocare relativ suficientă.
Motivul pentru care găsiți eMMC-uri în computerele moderne, de ultimă generație este că componentele sunt relativ ieftine, suficient de mari (pentru sistemele de operare desktop) la acel cost și împărtășesc elemente comune cu componentele telefonului mobil, astfel încât acestea sunt produse în bloc cu o interfață standard. De asemenea, oferă o densitate mare de stocare pentru volumul lor. Având în vedere că multe dintre aceste mașini au o unitate slabă de 32 GB sau 64 GB, la fel ca discurile dure din partea mai bună a unui deceniu în urmă, acestea reprezintă o opțiune sensibilă în acest rol.
În sfârșit, ajungem la punctul în care puteți stoca o cantitate rezonabilă de memorie la un preț accesibil și cu viteze rezonabile pe eMMC-uri și bliț, motiv pentru care oamenii merg după ele.
Aveți ceva de adăugat la explicație? Sună în comentarii. Doriți să citiți mai multe răspunsuri de la alți utilizatori ai Stack Exchange? Consultați aici firul complet de discuție .
Credit de imagine: Martin Voltri (Flickr)