16Aug
L'utilizzo della memoria flash per l'esecuzione di un sistema desktop, come Windows, è stato sconsigliato per parecchio tempo. Ma cosa l'ha reso un'opzione desiderabile e praticabile per i dispositivi mobili? Oggi il post di SuperUser Q & A ha la risposta alla domanda di un curioso lettore.
Questioni di oggi &La sessione di risposta ci viene fornita per gentile concessione di SuperUser, una suddivisione di Stack Exchange, un raggruppamento di Q & A basato su community.
La domanda
SuperUser reader RockPaperLizard vuole sapere che cosa rende la memoria flash eMMC valida nei dispositivi mobili, ma non nei PC:
Fin da quando sono state inventate le chiavette USB, la gente si è domandata se potessero far funzionare i loro sistemi operativi. La risposta è sempre stata "no" perché il numero di scritture richieste da un sistema operativo le avrebbe rapidamente logorate.
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 è memorizzato su di esso.
Come è diventato improvvisamente pratico? Ad esempio, implementano tecnologie di livellamento dell'usura?
Che cosa rende la memoria flash eMMC valida nei dispositivi mobili, ma non nei PC?
La risposta
SuperUser contributori Speeddymon e Journeyman Geek hanno la risposta per noi. Per prima cosa, Speeddymon:
Tutti i dispositivi di memoria flash, dai tablet ai telefoni cellulari, gli smartwatch, gli SSD, le schede SD nelle fotocamere e le chiavette USB utilizzano la tecnologia NVRAM.La differenza è nell'architettura NVRAM e in che modo il sistema operativo installa il file system su qualunque supporto di memorizzazione sia attivo.
Per tablet e telefoni cellulari Android, la tecnologia NVRAM è basata su eMMC.I dati che posso trovare su questa tecnologia suggeriscono cicli di scrittura da 3k a 10k. Sfortunatamente, nessuno di quello che ho trovato finora è definitivo, dato che Wikipedia è vuoto nei cicli di scrittura di questa tecnologia. Tutti gli altri posti che ho visto sembravano vari forum, quindi difficilmente quello che chiamerei una fonte affidabile.
A fini di 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 Apple lo fa, ma per Android, il chip è partizionato come un disco rigido. Si dispone di una partizione del sistema operativo, una partizione dati e diverse altre partizioni proprietarie in base al produttore del dispositivo.
La vera partizione root risiede all'interno del bootloader, che viene fornito in bundle come un file compresso( jffs2, cramfs, ecc.) Insieme al kernel, in modo che quando l'avvio dello stage 1 del dispositivo è completo( di solito lo schermo del logo del produttore),kernel boots e la partizione di root sono simultaneamente montate come un disco RAM.
All'avvio del sistema operativo, monta il file system della partizione primaria( / system, che è jffs2 sui dispositivi prima di Android 4.0, ext2 /3/ 4 sui dispositivi da Android 4.0 e xfs sui dispositivi più recenti) in sola lettura in modo chenessun dato può essere scritto su di esso. Questo può, naturalmente, essere aggirato dal cosiddetto "rooting" del tuo dispositivo, che ti dà accesso come superutente e ti permette di rimontare la partizione come lettura / scrittura. I tuoi dati "utente" vengono scritti in una partizione diversa sul chip( / dati, che segue la stessa convenzione di cui sopra in base alla versione di Android).
Con un numero sempre maggiore di telefoni cellulari che scaricano slot per schede SD, potresti pensare di colpire il ciclo di scrittura più rapidamente perché tutti i tuoi dati vengono ora salvati nell'archivio eMMC anziché in una scheda SD.Fortunatamente, la maggior parte dei file system rileva una scrittura non riuscita in una data area di archiviazione. Se una scrittura non riesce, i dati vengono salvati in modo silenzioso in una nuova area di archiviazione e l'area non valida( nota come blocco errato) viene separata dal driver del file system in modo tale che i dati non vengano più scritti lì in futuro. Se una lettura non riesce, i dati vengono contrassegnati come corrotti e all'utente viene richiesto di eseguire un controllo del file system( o controllare il disco) oppure il dispositivo controlla automaticamente il file system durante l'avvio successivo.
In effetti, Google ha un brevetto per il rilevamento e la gestione automatica dei blocchi danneggiati: Gestione dei blocchi danneggiati nella memoria flash per i dati elettronici flash card
Per ottenere di più, la domanda su come questo sia diventato improvvisamente pratico non è la domanda giusta da porre. Non è mai stato poco pratico in primo luogo. Si sconsiglia vivamente di installare un sistema operativo( Windows) su un SSD( presumibilmente) a causa del numero di scritture effettuate su un disco.
Ad esempio, il registro riceve letteralmente centinaia di letture e scritture al secondo, che possono essere visualizzate con lo strumento di riepilogo di Microsoft SysInternals.
L'installazione di Windows è stata sconsigliata su SSD di prima generazione perché con la mancanza di usura, i dati scritti nel registro ogni secondo( probabilmente) alla fine 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 alcun registro( i dispositivi Windows Embedded sono eccezioni, ovviamente) e quindi, non vi è alcuna preoccupazione che i dati vengano scritti costantemente sulle 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 è possibile visualizzare un BSOD casuale di volta in volta, non è possibile eseguire una configurazione completa doposono pre-progettati con configurazioni che non intendono mai cambiare. Le uniche modifiche del tempo avvengono prima che il chip sia 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.
Seguito dalla risposta di Journeyman Geek:
La risposta è sempre stata "no" perché il numero di scritture richieste da un sistema operativo le avrebbe rapidamente logorate.
Sono finalmente diventati redditizi per l'uso tradizionale. Quella "usura" è l'unica preoccupazione è un po 'una supposizione. Ci sono stati sistemi in esecuzione fuori dalla memoria a stato solido per un considerevole periodo di tempo. Molte persone che costruivano i car-boot iniziarono ad usare le schede CF( che erano elettricamente compatibili con PATA e banali da installare rispetto alle unità disco PATA) ei computer industriali avevano uno storage basato su flash piccolo e robusto.
Detto questo, non c'erano molte opzioni per la persona media.È possibile acquistare una scheda CF e un adattatore per laptop, oppure trovare un piccolo disco industriale molto costoso su un'unità modulo per un desktop. Non erano molto grandi rispetto ai dischi rigidi contemporanei( i moderni IDE DOM risalgono a 8 GB o 16 GB credo).Sono abbastanza sicuro che avresti potuto ottenere unità di sistema a stato solido impostate molto prima che gli SSD standard diventassero comuni.
Non ci sono stati davvero miglioramenti universali / magici nel livellamento dell'usura, per quanto ne so. Ci sono stati miglioramenti incrementali mentre ci siamo spostati da SLC a MLC, TLC e anche QLC, insieme a dimensioni di processo più piccole( tutte a basso costo con un rischio maggiore di esaurimento).Flash è diventato molto più economico.
C'erano anche alcune alternative che non avevano problemi di usura. Ad esempio, eseguendo l'intero sistema da una ROM( che è probabilmente l'archiviazione a stato solido) e RAM con batteria tampone, che utilizzano molti SSD e dispositivi portatili come il Palm Pilot. Nessuno di questi è comune oggi. I dischi rigidi hanno oscillato rispetto a dire, RAM con batteria tampone( troppo costosa), primi dispositivi a stato solido( piuttosto costosi), o contadini con bandiere( mai catturati a causa della terribile densità di dati).Anche la memoria flash moderna è un discendente di eeprom a cancellazione rapida e le eeprom sono state utilizzate in dispositivi elettronici per l'archiviazione di cose come il firmware per anni. I dischi fissi
si trovavano semplicemente in una bella intersezione di volume elevato( che è importante), basso costo e spazio di archiviazione relativamente sufficiente.
La ragione per cui si trovano eMMC nei moderni computer di fascia bassa è che i componenti sono relativamente economici, sufficientemente grandi( per i sistemi operativi desktop) a quel costo e condividono la comunanza con i componenti del telefono cellulare, quindi vengono prodotti in blocco con un'interfaccia standard. Offrono anche una grande densità di archiviazione per il loro volume. Considerando che molte di queste macchine hanno un disco da 32 GB o 64 GB, al pari dei dischi rigidi della migliore parte di un decennio fa, rappresentano un'opzione sensata in questo ruolo.
Stiamo finalmente raggiungendo il punto in cui è possibile archiviare una quantità ragionevole di memoria in modo accessibile e con velocità ragionevole su eMMC e flash, motivo per cui le persone scelgono di farlo.
Hai qualcosa da aggiungere alla spiegazione? Audio disattivato nei commenti. Vuoi leggere più risposte dagli altri utenti di Stack Exchange esperti di tecnologia? Controlla la discussione completa qui.
Immagine di: Martin Voltri( Flickr)