Android 4.3: Bessere Speichernutzung Dank TRIM-Befehl

Android 4.3, die neuste Variante von Googles mobilem Betriebssystem bringt eine wesentliche Neuerung mit: Dank des TRIM-Befehls wird die Nutzung von Flashspeichern optimiert. Der Befehl ist dabei nicht direkt im Betriebssystem integriert, wie sonst üblich, sondern wird mit Hilfe einer Anwendung namens fstrim, einem Linux-Tool, ausgeführt. Das Programm untersucht den Speicher und identifiziert Datenblöcke von gelöschten Dateien, die dann vom Controller erneut verwendet werden können.

Allerdings ist die Funktionsweise des Flashspeichers in Mobilgeräten etwas anders als bei klassischen PC-Systemen, in denen SSDs mit eigenen Controllern stecken. Der TRIM-Befehl wird hier nach jeder Löschung aktiv und teilt dem Controller die aus Sicht des File-Systems gelöschten Daten mit, sodass der Speicherplatz neuverwendet werden kann. Bei Mobilgeräten, wie Smartphones und Tablets kommt zumeist eMMC-Speicher zum Einsatz, der direkt am SoC angebunden wird. Damit ändert sich auch die Funktionsweise. Die Anwendung fstrim wird einmal am Tag ausgeführt, jedoch nur wenn der Akku noch zu 80% gefüllt ist oder das Mobilgerät mit einem Füllstand von mindestens 30% am Kabel hängt.

Erstelle einen neuen Thread im News-Forum über dieses Thema
Dieser Thread ist für Kommentare geschlossen
3 Kommentare
Im Forum kommentieren
    Dein Kommentar
  • Elkinator
    auch ohne TRIM ist der gelöschte speicher nutzbar, wie kommt man bitte auf den blödsinn das es nicht so wäre?
    0
  • Headyman
    @Elkinator
    Nutzbar ist der schon, nur wirds sehr langsam...

    Das Löschen eines Files entfernt nur den Eintrag im Filesystem.
    Der Speicherplatz, den das File selbst belegt wird nicht gelöscht!
    Aus Sicht des Speichercontrollers ist der Speicher nicht gelöscht, und deshalb darf er den auch nicht "anfassen".
    Damit läuft das Speichermedium aus Speichercontrollersicht voll, und dann beginnt das Spiel mit dem lahmen Read-Modify-Write Operationen.
    Um das zu verhindern (only Write Operationen stattdessen) müssen dem Speichercontroller immer "leere" Speicherblöcke zur Verfügung stehen, in die er einfach nur reinschreiben kann.

    Der Haken ist, das Flash nur sehr große Blöcke löschen kann (z.B. 512kB am Stück). Ist der Speicher voll, und es sollen jetzt z.B. 4kB Daten geschrieben werden, dann muss eben der Controller 512kB LESEN, dann die 4kB MODIFIZIEREN, und dann die 512kB wieder SCHREIBEN => ein irrsinniger Aufwand nur um 4kB an Daten zu schreiben. Das muss er nun nicht tun, wenn er einen "freien" Block hat, dann muss nur 4kB SCHREIBEN.
    Deshalb ist TRIM so wichtig, da es dem Controller mitteilt, welche Speicherbereiche wirklich "frei" sind, und der Controller kann die dann entsprechend löschen, um freie Blöcke zu generieren.
    0
  • Elkinator
    das mußt du mir nicht erklären, ich hab ahnung davon wie das abläuft...
    0