16Aug

Was macht eMMC-Flash-Speicher in mobilen Geräten, aber nicht in PCs möglich?

Die Verwendung von Flash-Speicher zur Ausführung eines Desktop-Systems, wie Windows, wurde lange Zeit abgelehnt. Aber was machte es zu einer wünschenswerten und realisierbaren Option für mobile Geräte? Der heutige SuperUser Q & A Post hat die Antwort auf die Frage eines neugierigen Lesers.

Die heutige Frage &Die Antwortsitzung kommt dank SuperUser, einer Unterteilung von Stack Exchange, einer Community-gesteuerten Gruppierung von Q & A-Websites, zu uns.

Die Frage

SuperUser-Reader RockPaperLizard möchte wissen, was eMMC-Flash-Speicher in mobilen Geräten, aber nicht in PCs möglich macht:

Seit Erfindung der USB-Sticks haben sich die Leute gefragt, ob sie ihre Betriebssysteme darauf ausführen können. Die Antwort war immer "nein", weil die Anzahl der Schreibvorgänge, die ein Betriebssystem benötigt, sie schnell verschleißen würde.

Da SSDs immer beliebter werden, hat sich die Wear-Leveling-Technologie verbessert, damit Betriebssysteme darauf laufen können. Verschiedene Tablets, Netbooks und andere schlanke Computer verwenden anstelle einer Festplatte oder einer SSD Flash-Speicher, auf dem das Betriebssystem gespeichert ist.

Wie wurde das plötzlich praktisch? Verwenden sie zum Beispiel typischerweise Wear-Leveling-Technologien?

Was macht eMMC-Flash-Speicher in mobilen Geräten, aber nicht in PCs nutzbar?

Die Antwort

SuperUser Teilnehmer Speeddymon und Geselle Geek haben die Antwort für uns. Speeddymon:

Alle Flash-Speichergeräte, von Tablets bis zu Mobiltelefonen, Smartwatches, SSDs, SD-Karten in Kameras und USB-Sticks verwenden die NVRAM-Technologie. Der Unterschied liegt in der NVRAM-Architektur und darin, wie das Betriebssystem das Dateisystem auf welchem ​​Speichermedium einlagert.

Für Android Tablets und Mobiltelefone basiert die NVRAM-Technologie auf eMMC.Die Daten, die ich über diese Technologie finden kann, legen zwischen 3k und 10k Schreibzyklen nahe. Leider ist nichts von dem, was ich bisher gefunden habe, definitiv, da Wikipedia die Schreibzyklen dieser Technologie nicht kennt. Alle anderen Orte, die ich gesehen habe, waren zufällig verschiedene Foren, also kaum das, was ich eine verlässliche Quelle nennen würde.

Zum Vergleich: Die Schreibzyklen anderer NVRAM-Technologien wie SSDs mit NAND- oder NOR-Technologie liegen zwischen 10k und 30k.

Nun, bezüglich der Wahl des Betriebssystems, wie das Dateisystem zu mounten ist. Ich kann nicht darüber sprechen, wie Apple es macht, aber für Android ist der Chip wie eine Festplatte aufgeteilt. Je nach Gerätehersteller verfügen Sie über eine Betriebssystempartition, eine Datenpartition und mehrere andere proprietäre Partitionen.

Die echte Root-Partition befindet sich im Bootloader, der zusammen mit dem Kernel als komprimierte Datei( jffs2, cramfs usw.) gebündelt ist. Wenn der Boot-Vorgang der ersten Stufe abgeschlossen ist( normalerweise der Logo-Bildschirm des Herstellers), dann wird derKernel bootet und die Root-Partition wird gleichzeitig als RAM-Disk gemountet.

Während das Betriebssystem bootet, hängt es das Dateisystem der primären Partition( / system, das ist jffs2 auf Geräten vor Android 4.0, ext2 /3/ 4 auf Geräten seit Android 4.0 und xfs auf den neuesten Geräten) als schreibgeschützt, so dassEs können keine Daten darauf geschrieben werden. Dies kann natürlich durch sogenanntes "Rooten" Ihres Geräts, das Ihnen Zugriff als Super-Benutzer gewährt und Ihnen ermöglicht, die Partition als Lese- / Schreibzugriff neu zu mounten, umgehen. Ihre "Benutzer" -Daten werden auf eine andere Partition auf dem Chip geschrieben( / Daten, die der gleichen Konvention wie oben auf der Android-Version folgen).

Da immer mehr Mobiltelefone SD-Kartensteckplätze verlieren, könnte es sein, dass Sie den Schreibzyklus schneller beenden, da alle Ihre Daten jetzt im eMMC-Speicher statt auf einer SD-Karte gespeichert werden. Glücklicherweise erkennen die meisten Dateisysteme ein fehlgeschlagenes Schreiben in einen bestimmten Speicherbereich. Wenn ein Schreibvorgang fehlschlägt, werden die Daten automatisch in einem neuen Speicherbereich gespeichert, und der fehlerhafte Bereich( der als fehlerhafter Block bezeichnet wird) wird vom Dateisystemtreiber gesperrt, sodass in Zukunft keine Daten mehr dort gespeichert werden. Wenn ein Lesevorgang fehlschlägt, werden die Daten als beschädigt markiert, und entweder wird dem Benutzer gesagt, dass er eine Dateisystemprüfung( oder eine Prüfdiskette) ausführen soll, oder das Gerät überprüft das Dateisystem beim nächsten Start automatisch.

Tatsächlich hat Google ein Patent für das automatische Erkennen und Behandeln von fehlerhaften Blöcken: Verwalten von fehlerhaften Blöcken im Flash-Speicher für die elektronische Daten-Flash-Karte

Um mehr auf den Punkt zu kommen, ist Ihre Frage, wie dies plötzlich praktisch wurde, nicht die richtige Frage. Es war überhaupt nie unpraktisch. Es wurde dringend davon abgeraten, ein Betriebssystem( Windows) auf einer SSD zu installieren( vermutlich), weil es so viele Schreibvorgänge auf eine Festplatte hat.

Zum Beispiel erhält die Registrierung buchstäblich Hunderte von Lese- und Schreibvorgängen pro Sekunde, die mit dem Microsoft-SysInternals Regmon Tool gesehen werden können.

Die Installation von Windows wurde von SSDs der ersten Generation abgeraten, weil die Daten, die jede Sekunde( wahrscheinlich) in die Registry geschrieben wurden, aufgrund der fehlenden Wear-Nivellierung die Early Adopters eingeholt haben und aufgrund von Registry-Korruption zu nicht bootfähigen Systemen geführt haben.

Bei Tablets, Mobiltelefonen und so ziemlich jedem anderen Embedded-Gerät gibt es keine Registry( Windows Embedded-Geräte sind natürlich Ausnahmen), und daher gibt es keine Sorge, dass Daten ständig in die gleichen Teile des Flash-Mediums geschrieben werden.

Für Windows Embedded-Geräte, wie z. B. viele der Kiosks an öffentlichen Orten( wie Walmart, Kroger usw.), in denen gelegentlich ein zufälliger BSOD angezeigt wird, gibt es nicht viele Konfigurationsschritte, die seither ausgeführt werden könnenSie sind mit Konfigurationen vorkonfiguriert, die sich niemals ändern sollen. Die einzigen Zeitänderungen finden statt, bevor der Chip in den meisten Fällen geschrieben wird. Alles, was gespeichert werden muss, z. B. Ihre Zahlung an den Lebensmittelhändler, erfolgt über das Netzwerk an die Datenbanken des Geschäfts auf einem Server.

Gefolgt von der Antwort von Journeyman Geek:

Die Antwort war immer "nein", weil die Anzahl der Schreibvorgänge, die ein Betriebssystem benötigt, sie schnell verschleißen würde.

Sie wurden schließlich kostengünstig für den Mainstream-Einsatz. Dieser "Verschleiß" ist die einzige Sorge, ein bisschen eine Annahme. Es gab Systeme, die für eine beträchtliche Zeitperiode von einem Festkörperspeicher abgingen. Viele Leute, die Auto-Putter bauten, starteten von CF-Karten( die mit PATA elektrisch kompatibel waren und im Vergleich zu PATA-Festplatten trivial zu installieren waren), und industrielle Computer hatten kleine, robuste flash-basierte Speicher.

Das sagte, es gab nicht viele Möglichkeiten für die durchschnittliche Person. Sie könnten eine teuere CF-Karte und einen Adapter für einen Laptop kaufen oder eine winzige, sehr teuere industrielle Festplatte auf einer Moduleinheit für einen Desktop finden. Sie waren nicht sehr groß im Vergleich zu heutigen Festplatten( moderne IDE-DOMs sind bei 8GB oder 16GB, denke ich).Ich bin mir ziemlich sicher, dass Sie Solid-State-Systemlaufwerke installiert haben könnten, bevor Standard-SSDs üblich wurden.

Soweit ich weiß, gab es bisher keine universellen / magischen Verbesserungen im Wear Leveling. Es gab inkrementelle Verbesserungen, während wir uns von der preiswerten SLC zu MLC, TLC und sogar zu QLC zusammen mit kleineren Prozessgrößen( die alle niedrigere Kosten mit einem höheren Abnutzungsrisiko aufweisen) bewegten. Flash ist viel billiger geworden.

Es gab auch ein paar Alternativen, die keine Verschleißprobleme hatten. Zum Beispiel, das gesamte System von einem ROM( die wohl Solid-State-Speicher ist) und batteriegestützten RAM, die viele frühe SSDs und tragbare Geräte wie der Palm Pilot verwendet. Keines davon ist heute üblich. Festplatten rotierten im Vergleich zu sagen, batteriegepuffertem RAM( zu teuer), frühen Solid-State-Geräten( etwas teuer) oder Bauern mit Flaggen( nie wegen der schrecklichen Datendichte gefangen).Sogar der moderne Flash-Speicher ist ein Nachkomme von schnell löschenden E-Mails und E-Mails wurden in elektronischen Geräten für die Speicherung von Dingen wie Firmware seit Ewigkeiten verwendet.

Festplatten waren einfach an einem schönen Schnittpunkt von hoher Lautstärke( was wichtig ist), niedrigen Kosten und relativ ausreichender Speicherkapazität.

Der Grund, warum Sie eMMCs in modernen Low-End-Computern finden, ist, dass die Komponenten relativ billig sind, groß genug( für Desktop-Betriebssysteme) und damit Gemeinsamkeiten mit Mobiltelefonkomponenten aufweisen. Daher werden sie in großen Mengen mit einer Standardschnittstelle hergestellt. Sie geben auch eine große Speicherdichte für ihr Volumen. Wenn man bedenkt, dass viele dieser Maschinen ein dürftiges 32-GB- oder 64-GByte-Laufwerk haben, das mit Festplatten aus dem größten Teil eines Jahrzehnts vergleichbar ist, sind sie in dieser Rolle eine sinnvolle Option.

Wir erreichen endlich den Punkt, an dem Sie eine angemessene Menge an Speicher kostengünstig und mit vernünftigen Geschwindigkeiten auf eMMCs und Flash speichern können, weshalb Leute sich für sie entscheiden.

Haben Sie etwas zur Erklärung hinzuzufügen? Ton in den Kommentaren ab. Möchten Sie mehr Antworten von anderen technisch versierten Stack Exchange Benutzern lesen? Sehen Sie sich den vollständigen Diskussionsfaden hier an.

Bildquelle: Martin Voltri( Flickr)