Cosa rende praticabile la memoria flash eMMC nei dispositivi mobili, ma non nei PC?

what-marche-EMMC-flash-memory-vitali-in-mobile-dispositivi-ma-non-PCS-00

L'uso della memoria flash per eseguire un sistema desktop, come Windows, è stato sconsigliato per un po 'di tempo. Ma cosa l'ha resa un'opzione desiderabile e praticabile per i dispositivi mobili? Il post di domande e risposte di SuperUser di oggi ha la risposta alla domanda di un curioso lettore.

La sessione di domande e risposte di oggi ci viene fornita da SuperUser, una suddivisione di Stack Exchange, un raggruppamento di siti Web di domande e risposte guidato dalla community.

La domanda

Il lettore SuperUser RockPaperLizard vuole sapere cosa rende possibile la memoria flash eMMC nei dispositivi mobili, ma non nei PC:

Da quando sono state inventate le chiavette USB, le persone si sono chieste se potevano far funzionare i loro sistemi operativi. La risposta è sempre stata “no” perché il numero di scritture richieste da un sistema operativo le consumerebbe rapidamente.

Poiché gli SSD sono diventati più popolari, la tecnologia di livellamento dell'usura è migliorata per consentire ai sistemi operativi di funzionare su di essi. Vari tablet, netbook e altri computer sottili utilizzano la memoria flash invece di un disco rigido o SSD e il sistema operativo è archiviato su di esso.

Come è diventato improvvisamente pratico? In genere implementano tecnologie di livellamento dell'usura, ad esempio?

Cosa rende possibile la memoria flash eMMC nei dispositivi mobili, ma non nei PC?

La risposta

I collaboratori di SuperUser Speeddymon e Journeyman Geek hanno la risposta per noi. Innanzitutto, Speeddymon:

Tutti i dispositivi di memoria flash, dai tablet ai telefoni cellulari, smartwatch, SSD, schede SD nelle fotocamere e chiavette USB utilizzano la tecnologia NVRAM. La differenza sta nell'architettura NVRAM e nel modo in cui il sistema operativo monta il file system su qualunque supporto di memorizzazione sia.

Per tablet e telefoni Android, la tecnologia NVRAM è basata su eMMC. I dati che posso trovare su questa tecnologia suggeriscono cicli di scrittura da 3k a 10k. Sfortunatamente, nulla di ciò che ho trovato finora è definitivo, dato che Wikipedia è vuota nei cicli di scrittura di questa tecnologia. Tutti gli altri posti in cui ho cercato sono stati vari forum, quindi difficilmente definirei una fonte affidabile.

Per fare un confronto, i cicli di scrittura su altre tecnologie NVRAM come gli SSD, che utilizzano la tecnologia NAND o NOR, sono compresi tra 10k e 30k.

Ora, per quanto riguarda la scelta del sistema operativo su come montare il file system. Non posso parlare di come lo fa Apple, ma per Android, il chip è partizionato come sarebbe un disco rigido. Si dispone di una partizione del sistema operativo, una partizione dati e diverse altre partizioni proprietarie a seconda del produttore del dispositivo.

La vera partizione di root risiede all'interno del bootloader, che è raggruppato come file compresso (jffs2, cramfs, ecc.) Insieme al kernel, in modo che quando l'avvio della fase 1 del dispositivo è completo (la schermata del logo del produttore di solito), quindi il kernel si avvia e la partizione di root viene montata contemporaneamente come disco RAM.

Quando il sistema operativo si avvia, monta il file system della partizione primaria (/ system, che è jffs2 su dispositivi precedenti ad Android 4.0, ext2 / 3/4 su dispositivi da Android 4.0 e xfs sugli ultimi dispositivi) in sola lettura che nessun dato può essere scritto su di esso. Questo, ovviamente, può essere aggirato dal cosiddetto “rooting” del tuo dispositivo, che ti dà accesso come superutente e ti consente di rimontare la partizione come lettura / scrittura. I tuoi dati “utente” vengono scritti in una diversa partizione sul chip (/ data, che segue la stessa convenzione di cui sopra in base alla versione di Android).

Con sempre più telefoni cellulari che abbandonano gli slot per schede SD, potresti pensare che colpirai il limite del ciclo di scrittura prima perché tutti i tuoi dati vengono ora salvati nella memoria eMMC invece che su una scheda SD. Fortunatamente, la maggior parte dei file system rileva una scrittura non riuscita in una determinata area di archiviazione. Se una scrittura non riesce, i dati vengono silenziosamente salvati in una nuova area di archiviazione e l'area danneggiata (nota come blocco errato) viene isolata dal driver del file system in modo che i dati non vengano più scritti lì in futuro. Se una lettura fallisce, i dati vengono contrassegnati come corrotti e all'utente viene richiesto di eseguire un controllo del file system (o controllo del disco) oppure il dispositivo controlla automaticamente il file system al successivo avvio.

È un dato di fatto, Google ha un brevetto per il rilevamento e la gestione automatici di blocchi danneggiati: gestione di blocchi danneggiati nella memoria flash per scheda elettronica di dati flash

Per approfondire, la tua domanda su come questo è diventato improvvisamente pratico non è la domanda giusta da porre. Non è mai stato impraticabile in primo luogo. È stato fortemente sconsigliato di installare un sistema operativo (Windows) su un SSD (presumibilmente) a causa del numero di scritture che fa su un disco.

Ad esempio, il registro riceve letteralmente centinaia di letture e scritture al secondo, che possono essere visualizzate con lo strumento Regmon di Microsoft-SysInternals.

L'installazione di Windows è stata sconsigliata sugli SSD di prima generazione perché, a causa della mancanza del livellamento dell'usura, i dati scritti nel registro ogni secondo (probabilmente) hanno raggiunto i primi utenti e hanno portato a sistemi non avviabili a causa della corruzione del registro.

Con tablet, telefoni cellulari e praticamente qualsiasi altro dispositivo incorporato, non esiste un registro (i dispositivi Windows Embedded sono eccezioni, ovviamente) e quindi non vi è alcuna preoccupazione che i dati vengano costantemente scritti nelle stesse parti del supporto flash.

Per i dispositivi Windows Embedded, come molti dei chioschi che si trovano in luoghi pubblici (come Walmart, Kroger, ecc.) In cui di tanto in tanto potresti vedere un BSOD casuale, non c'è molta configurazione che può essere fatta poiché sono pre-progettati con configurazioni che non intendono mai cambiare. L'unica volta in cui si verificano le modifiche è prima che il chip venga scritto nella maggior parte dei casi. Tutto ciò che deve essere salvato, come ad esempio il pagamento al negozio di alimentari, viene effettuato tramite la rete ai database del negozio su un server.

Seguita dalla risposta di Journeyman Geek:

La risposta è sempre stata “no” perché il numero di scritture richieste da un sistema operativo le consumerebbe rapidamente.

Alla fine sono diventati convenienti per l'uso tradizionale. Che “indossare” sia l'unica preoccupazione è un po 'un presupposto. Ci sono stati sistemi che esauriscono la memoria a stato solido per un considerevole periodo di tempo. Molte persone che hanno costruito car-puter si sono avviate da schede CF (che erano elettricamente compatibili con PATA e banali da installare rispetto ai dischi rigidi PATA) e che i computer industriali avevano una memoria flash piccola e robusta.

Detto questo, non c'erano molte opzioni per la persona media. È possibile acquistare una scheda CF costosa e un adattatore per un laptop oppure trovare un disco industriale molto piccolo e molto costoso su un'unità modulo per un desktop. Non erano molto grandi rispetto ai dischi rigidi contemporanei (penso che i moderni IDE DOM superino gli 8 GB o 16 GB). Sono abbastanza sicuro che avresti potuto ottenere unità di sistema a stato solido impostate molto prima che gli SSD standard diventassero comuni.

Per quanto ne so, non ci sono stati davvero miglioramenti universali / magici nel livellamento dell'usura. Ci sono stati miglioramenti incrementali mentre ci stiamo allontanando da SLC costosi a MLC, TLC e persino QLC insieme a dimensioni di processo più piccole (tutte a costi inferiori con un rischio maggiore di usura). Flash è diventato molto più economico.

C'erano anche alcune alternative che non presentavano problemi di usura. Ad esempio, eseguendo l'intero sistema da una ROM (che è probabilmente memoria a stato solido) e da una batteria RAM, utilizzata da molti SSD e dispositivi portatili come il Palm Pilot. Nessuno di questi è comune oggi. I dischi rigidi hanno oscillato rispetto a dire, RAM supportata da batteria (troppo costosa), primi dispositivi a stato solido (un po 'costosi) o contadini con bandiere (mai catturati a causa della terribile densità di dati). Anche la moderna memoria flash è un discendente di eeprom a cancellazione rapida e eeprom sono state utilizzate nei dispositivi elettronici per la memorizzazione di cose come il firmware per secoli.

I dischi rigidi si trovavano semplicemente in una piacevole intersezione di volume elevato (che è importante), basso costo e memoria relativamente sufficiente.

Il motivo per cui si trovano gli eMMC nei moderni computer di fascia bassa è che i componenti sono relativamente economici, abbastanza grandi (per i sistemi operativi desktop) a quel costo e condividono elementi comuni con i componenti dei telefoni cellulari, quindi sono prodotti sfusi con un'interfaccia standard. Offrono anche una grande densità di archiviazione per il loro volume. Considerando che molte di queste macchine hanno un misero disco da 32 GB o 64 GB, alla pari con i dischi rigidi della parte migliore di un decennio fa, sono un'opzione sensata in questo ruolo.

Stiamo finalmente raggiungendo il punto in cui è possibile archiviare una quantità ragionevole di memoria in modo economico e con velocità ragionevoli su eMMC e flash, motivo per cui le persone vanno per loro.


Hai qualcosa da aggiungere alla spiegazione? Audio disattivato nei commenti. Vuoi leggere altre risposte da altri utenti esperti di Stack Exchange? Dai un'occhiata al thread completo di discussione qui.

Credito di immagine: Martin Voltri (Flickr)

Articoli correlati

Ultimi articoli