Startseite » wie man » Was macht eMMC-Flash-Speicher für mobile Geräte, aber nicht für PCs?

    Was macht eMMC-Flash-Speicher für mobile Geräte, aber nicht für PCs?

    Von der Verwendung eines Flash-Speichers zum Ausführen eines Desktopsystems wie Windows wurde lange geraten. Aber was machte es zu einer wünschenswerten und praktikablen Option für mobile Geräte? Der heutige Q & A-Beitrag von SuperUser hat die Antwort auf die Frage eines neugierigen Lesers.

    Die heutige Question & Answer-Sitzung wird dank SuperUser zur Verfügung gestellt - einer Unterteilung von Stack Exchange, einer Community-basierten Gruppierung von Q & A-Websites.

    Die Frage

    SuperUser-Leser RockPaperLizard möchte wissen, was eMMC-Flash-Speicher für mobile Geräte, nicht jedoch für PCs geeignet macht:

    Seit der Erfindung von USB-Flash-Laufwerken haben sich die Leute gefragt, ob sie ihre Betriebssysteme darauf ausführen können. Die Antwort war immer „nein“, da die Anzahl der Schreibvorgänge, die ein Betriebssystem benötigt, diese schnell erschöpfen würde.

    Mit der zunehmenden Verbreitung von SSDs hat sich die Verschleißnivellierungstechnologie verbessert, damit Betriebssysteme auf ihnen laufen können. Verschiedene Tablets, Netbooks und andere schlanke Computer verwenden einen Flash-Speicher anstelle einer Festplatte oder SSD, auf der das Betriebssystem gespeichert ist.

    Wie wurde das plötzlich praktisch? Implementieren sie normalerweise Wear-Leveling-Technologien??

    Was macht eMMC-Flash-Speicher für mobile Geräte geeignet, nicht jedoch für PCs??

    Die Antwort

    SuperUser-Mitwirkende Speeddymon und Journeyman Geek haben die Antwort für uns. Zunächst einmal, 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 in der Art und Weise, wie das Betriebssystem das Dateisystem auf dem Speichermedium hängt, auf dem es sich befindet.

    Für Android-Tablets und Mobiltelefone basiert die NVRAM-Technologie auf eMMC. Die Daten, die ich zu dieser Technologie finden kann, schlagen zwischen 3k und 10k Schreibzyklen vor. Leider ist nichts von dem, was ich bis jetzt gefunden habe, definitiv, da Wikipedia in den Schreibzyklen dieser Technologie leer ist. Alle anderen Orte, die ich mir angesehen habe, waren zufällig verschiedene Foren, also kaum was ich als verlässliche Quelle bezeichnen würde.

    Zum Vergleich: Die Schreibzyklen bei anderen NVRAM-Technologien wie SSDs, die NAND- oder NOR-Technologie verwenden, liegen zwischen 10k und 30k.

    Nun zur Wahl des Betriebssystems, wie das Dateisystem gemountet werden soll. Ich kann nicht darüber sprechen, wie Apple es tut, aber für Android ist der Chip wie eine Festplatte partitioniert. Sie haben je nach Gerätehersteller eine Betriebssystempartition, eine Datenpartition und mehrere andere proprietäre Partitionen.

    Die eigentliche Root-Partition befindet sich innerhalb des Bootloaders, der zusammen mit dem Kernel als komprimierte Datei (jffs2, cramfs usw.) gebündelt ist. Wenn der Boot-Schritt des Geräts abgeschlossen ist (der Logo-Bildschirm des Herstellers wird normalerweise angezeigt), dann der Kernel bootet und die Root-Partition wird gleichzeitig als RAM-Disk gemountet.

    Beim Starten des Betriebssystems hängt das Dateisystem der primären Partition (/ system, dh jffs2 auf Geräten vor Android 4.0, ext2 / 3/4 auf Geräten ab Android 4.0 und xfs auf den neuesten Geräten) schreibgeschützt dass keine Daten darauf geschrieben werden können. Dies kann natürlich durch so genanntes "Rooting" Ihres Geräts umgangen werden, wodurch Sie als Superuser Zugriff erhalten und die Partition als Lese- / Schreibzugriff erneut gemountet wird. Ihre "Benutzerdaten" werden in eine andere Partition auf dem Chip geschrieben (/ data, die der gleichen Konvention wie oben folgt, basierend auf der Android-Version)..

    Da immer mehr Mobiltelefone SD-Kartensteckplätze verwenden, denken Sie vielleicht, dass Sie den Schreibzyklus früher einschränken werden, da alle Ihre Daten jetzt im eMMC-Speicher statt auf einer SD-Karte gespeichert werden. Glücklicherweise erkennen die meisten Dateisysteme einen fehlerhaften Schreibvorgang in einem bestimmten Speicherbereich. Wenn ein Schreibvorgang fehlschlägt, werden die Daten unbemerkt in einem neuen Speicherbereich gespeichert, und der fehlerhafte Bereich (der als fehlerhafter Block bezeichnet wird) wird vom Dateisystemtreiber abgeschaltet, sodass in Zukunft keine Daten mehr dort geschrieben werden. Wenn ein Lesevorgang fehlschlägt, werden die Daten als beschädigt markiert und der Benutzer wird entweder aufgefordert, eine Dateisystemprüfung (oder eine Datenträgerprüfung) durchzuführen, oder das Gerät prüft das Dateisystem beim nächsten Start automatisch.

    Google hat ein Patent für die automatische Erkennung und Handhabung von fehlerhaften Blöcken: Verwalten von fehlerhaften Blöcken im Flash-Speicher für elektronische Daten-Flash-Karten

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

    Zum Beispiel erhält die Registry buchstäblich hunderte Lese- und Schreibvorgänge pro Sekunde, die mit dem Microsoft-SysInternals-Regmon-Tool angezeigt werden können.

    Von der Installation von Windows auf SSDs der ersten Generation wurde abgeraten, da aufgrund des fehlenden Verschleißniveaus die Daten, die jede Sekunde in die Registrierung geschrieben wurden (wahrscheinlich), zu den frühen Adoptiveltern geführt wurden und aufgrund der Beschädigung der Registrierung zu nicht mehr bootfähigen Systemen führten.

    Bei Tablets, Mobiltelefonen und so ziemlich jedem anderen Embedded-Gerät gibt es keine Registrierung (natürlich sind dies Windows-Embedded-Geräte), und es besteht keine Gefahr, dass ständig Daten in dieselben Teile des Flash-Mediums geschrieben werden.

    Für Windows Embedded-Geräte, wie z. B. viele Kioske, die an öffentlichen Orten (z. B. Walmart, Kroger usw.) zu finden sind und an denen gelegentlich ein zufälliger BSOD angezeigt wird, gibt es nicht viele Konfigurationen, die seitdem vorgenommen werden können sind vorkonfiguriert mit Konfigurationen, die niemals geändert werden sollen. Die einzigen Zeitänderungen finden in den meisten Fällen vor dem Schreiben des Chips statt. Alles, was gespeichert werden muss, z. B. Ihre Zahlung an den Lebensmittelladen, wird über das Netzwerk an die Datenbanken des Geschäfts auf einem Server abgewickelt.

    Gefolgt von der Antwort von Journeyman Geek:

    Die Antwort war immer „nein“, da die Anzahl der Schreibvorgänge, die ein Betriebssystem benötigt, diese schnell erschöpfen würde.

    Sie wurden schließlich für den Mainstream-Gebrauch kostengünstig. Dass "Abnutzung" das einzige Problem ist, ist eine Annahme. Es gab Systeme, die über einen beträchtlichen Zeitraum aus dem Festkörperspeicher liefen. Viele Leute, die Auto-PCs mit CF-Karten bauten (die elektrisch mit PATA kompatibel waren und im Vergleich zu PATA-Festplatten trivial zu installieren waren), und Industriecomputer verfügten über einen kleinen, robusten Flash-Speicher.

    Allerdings gab es für den Durchschnittsmenschen nicht viele Möglichkeiten. Sie können eine kostengünstige CF-Karte und einen Adapter für einen Laptop kaufen oder eine winzige, sehr kostengünstige industrielle Festplatte auf einer Moduleinheit für einen Desktop finden. Sie waren nicht sehr groß im Vergleich zu modernen Festplatten (moderne IDE-DOMs sind mit 8 GB oder 16 GB groß, glaube ich). Ich bin mir ziemlich sicher, dass Sie Solid-State-Systemlaufwerke eingerichtet haben könnten, bevor Standard-SSDs üblich wurden.

    Soweit ich weiß, hat es keine wirklich universellen / magischen Verbesserungen bei der Verschleißnivellierung gegeben. Es wurden inkrementelle Verbesserungen vorgenommen, während wir uns von preiswerten SLC hin zu MLC, TLC und sogar QLC gewendet haben, zusammen mit kleineren Prozessgrößen (die alle Kosten senken und ein höheres Verschleißrisiko aufweisen). Flash ist viel billiger geworden.

    Es gab auch einige Alternativen, die keine Abnutzungsprobleme hatten. B. das gesamte System von einem ROM (das ist wohl Solid State Storage) aus zu betreiben, und batteriegepuffertem RAM, den viele frühe SSDs und tragbare Geräte wie der Palm Pilot verwenden. Nichts davon ist heute üblich. Festplatten schaukelten im Vergleich zu beispielsweise batteriegepuffertem RAM (zu teuer), frühen Halbleiterbauelementen (etwas teuer) oder Bauern mit Flaggen (die sich aufgrund der schrecklichen Datendichte nie durchsetzen konnten). Sogar moderne Flash-Speicher sind Nachkomme von schnell löschenden Eeproms, und Eeproms werden in elektronischen Geräten seit langem zum Speichern von Dingen wie Firmware verwendet.

    Festplatten waren einfach an einem schönen Schnittpunkt mit hohem Volumen (was wichtig ist), niedrigen Kosten und relativ ausreichendem Speicherplatz.

    Der Grund, warum Sie eMMCs in modernen Low-End-Computern finden, ist, dass die Komponenten relativ billig sind, groß genug (für Desktop-Betriebssysteme) zu diesen Kosten und gemeinsam mit den Mobiltelefonkomponenten sind, sodass sie mit einer Standardschnittstelle in großen Stückzahlen hergestellt werden. Sie bieten auch eine große Speicherdichte für ihr Volumen. Viele dieser Maschinen verfügen zwar über ein dürftiges 32-GB- oder 64-GB-Laufwerk, vergleichbar mit Festplatten aus dem größten Teil eines Jahrzehnts, aber sie sind in dieser Rolle eine sinnvolle Option.

    Wir sind endlich an einem Punkt angelangt, an dem Sie eine angemessene Menge Speicherplatz auf eMMCs und Flash kostengünstig und mit angemessener Geschwindigkeit speichern können, weshalb sich die Leute dafür entscheiden.


    Haben Sie der Erklärung etwas hinzuzufügen? Sound off in den Kommentaren. Möchten Sie mehr Antworten von anderen technisch versierten Stack Exchange-Benutzern lesen? Hier geht es zum vollständigen Diskussionsthread.

    Bildnachweis: Martin Voltri (Flickr)