Hoe werkt het SSD Trim commando?
Hoe werkt het SSD Trim commando?
SSD trim is een proces dat helpt om de prestaties van een solid-state drive na verloop van tijd op peil te houden. Trimmen werkt door periodiek blokken gegevens te wissen die niet langer in gebruik zijn. De getrimde gegevens zijn niet altijd meteen verwijderd, omdat een complex proces precies bepaalt wanneer dit gebeurt. Maar als het gebeurt, maakt het niet alleen ruimte vrij op de schijf, het helpt de SSD ook beter te presteren en langer mee te gaan.
Hoe werkt SSD Trim. Om te begrijpen waarom SSD's geen bestanden verwijderen als u ze verwijdert, gaan we bekijken hoe SSD’s werken. We hebben een SSD's uit elkaar gehaald en u ziet, er niet veel in zit.
Het voorbeeld hieronder is van een oud SATA-model (Samsung 850 Pro), maar de nieuwste SSD's zijn niet veel anders wat betreft de onderdelen waaruit de SSD bestaat.
De chip in het midden is een processor die alle instructies, gegevensstroom, encryptie en andere algoritmen beheert. Daarboven bevindt zich een kleine hoeveelheid DRAM, die fungeert als instructie- en gegevenscache, plus een tabel met gegevenslocaties op de SSD.
Rechts en onder de processor zitten twee NAND flash modules -- dit zijn de chips die alle gegevens opslaan.
Diep in deze chips zitten miljarden piepkleine componenten, de zogenaamde floating-gate metaaloxide halfgeleider veldeffect transistoren. Ze worden meestal
Charge Trap Flash (CTF) genoemd en is het meest gebruikte onderdeel van de SSD om gegevens in op te slaan.
Elke CTF fungeert als een enkele eenheid van opslag, bekend als geheugen of bitcel, waarop drie elektrische sporen zijn aangesloten. De CTF's zijn gegroepeerd, eerst als een lange kolom (een string), met tussen de 32 en 128 cellen.
De cellen in een string delen een gemeenschappelijk spoor (een bitlijn), gebruikt om de daarin opgeslagen gegevens te lezen. De cellen die op dezelfde rij liggen (bekend als een pagina) zijn allemaal aangesloten op een ander gemeenschappelijk spoor (woordlijn). De string- en grond selectielijnen w in combinatie met de woordlijnen gebruikt om te bepalen of er een lees-, schrijf- of wisproces plaats vindt.
Een array van strings en pagina's vormen een blok. Pagina's en blokken variëren enorm, waarbij de eerste 4 kB en de tweede 512 kB zijn, veel hangt het type SSD.
Een enkele NAND-flashmatrijs bestaat uit duizenden blokken, en flashmodules zelf kunnen meerdere matrijzen bevatten. Deze enorme, complexe rasters van sporen en transistors vormen elk een flash-SSD
Pagina's en blokken zijn belangrijk omdat alle geheugencellen in deze structuur hetzelfde stukje halfgeleidend materiaal (substraat) delen, zoals silicium of galliumarsenide, waarop alle transistors zijn gebouwd.
Om gegevens uit een cel te wissen is een hoge negatieve spanning gebruikt, waardoor alle elektronen die in de CFT zijn opgeslagen naar het substraat stromen. Helaas betekent dit dat het wisproces elke cel in het blok schoonveegt, niet slechts één cel.
Een andere eigenaardigheid van NAND flash is dat de geheugencellen niet z geprogrammeerd met nieuwe gegevens totdat alle cellen zijn gewist -- met andere woorden, SSD's schrijven nooit direct nieuwe gegevens over oude gegevens heen, wat traditionele harde schijven wel doen. En waar het wissen op blokniveau moet gebeuren, gebeurt het schrijven op paginaniveau, wat betekent dat het programmeren van een SSD veel sneller gaat dan het wissen ervan.
Het proces van programmeren en wissen beschadigt ook elke keer de geheugencellen, waarbij de laag in de transistor die de lading opslaat.
Om de levensduur van de chips te verbeteren, doorloopt de processor die ze beheert alle blokken, totdat elk blok één keer is gebruikt, alvorens terug te gaan naar het begin.
NAND flash is -- snel schrijven, langzaam wissen.
Hiervoor nemen we een denkbeeldige SSD met 4 kB pagina's en 256 kB blokken, dus 64 pagina's per blok. Wat gebeurd er als u een bestand wilt verwijderen van 3056 kB op uw SSD?
Dit bestand neemt 764 pagina's in beslag -- 11 volledige blokken en één met 60 van de 64 gebruikte pagina's. Hoe kan dit bestand worden verwijderd zonder die laatste 4 pagina's aan te tasten, omdat ze gegevens van een ander bestand kunnen bevatten?
In eerste instantie in de vorm van het TRIM commando. Alle gegevens blijven op de opslagschijf totdat deze expliciet de opdracht krijgt er iets aan te doen. Bestanden en mappen die door het besturingssysteem zijn verwijderd, zijn gemarkeerd als niet langer nodig, en wanneer het TRIM-commando is gegeven, is de tabel in het DRAM van de SSD (of het NAND-flashgeheugen zelf, als de schijf geen DRAM heeft) bijgewerkt om dit weer te geven.
Niet elke SSD-fabrikant voert het Trim commando direct uit. Gegevens worden dus niet onmiddellijk gewist nadat het TRIM-commando is verzonden -- dit gebeurt ofwel wanneer de schijf niet actief is of wanneer de volgende keer gegevens naar een blok worden geschreven. Welke methode wordt gebruikt hangt af van de fabrikant: consumenten SSD’s worden gewist wanneer ze niet worden gebruikt, terwijl bedrijfs SSD’s dit meestal doen wanneer ze worden beschreven.
Gegevens die gemarkeerd zijn voor verwijdering worden gewist wanneer de firmware van de NAND-flash een proces start dat garbage collection wordt genoemd. Hierbij wordt een blok gelezen en worden alle pagina's die moeten worden bewaard naar de cache gekopieerd, waarna naar een volledig leeg blok wordt geschreven. Het vorige blok wordt dan, samen met de pagina's die gemarkeerd zijn voor verwijdering, gewist.
In sommige opzichten is dit proces voor SSD's wat schijf defragmentatie is voor traditionele harde schijven, maar het is niet hetzelfde.
SSD trimmen en defragmenteren zijn niet hetzelfde. Defragmenteren is een proces dat wordt gebruikt om de prestaties van harde schijven (HDD's) te optimaliseren door de gegevens op de schijf te herschikken zodat ze op een aaneengesloten manier worden opgeslagen. Dit verbetert de efficiëntie van de schijf door de tijd die nodig is om gegevens te lezen en te schrijven te verkorten.
Aan de andere kant is trimmen specifiek voor SSD's en wordt het gebruikt om de prestaties van de schijf na verloop van tijd op peil te houden. Het gebruik van het flashgeheugen in SSD's betekent dat ze een beperkt aantal schrijfcycli hebben. Wanneer gegevens van een SSD worden verwijderd, wordt de ruimte die ze in beslag namen niet onmiddellijk beschikbaar gesteld voor hergebruik. In plaats daarvan markeert de firmware van de schijf de ruimte als "ongeldig" en wordt deze niet overschreven totdat het trim proces wordt uitgevoerd. Dit proces helpt voorkomen dat de schijf gefragmenteerd raakt en trager wordt.
Garbage collection is goed voor de levensduur van de SSD en de algemene prestaties, en TRIM maakt het alleen maar beter (soms worden de twee termen door elkaar gebruikt). Zonder dat commando zal de “Garbage collection” namelijk voortdurend alle pagina's verplaatsen, waarbij gedeeltelijk gevulde blokken worden gecondenseerd, om vers gewiste blokken beschikbaar te houden voor programmering -- maar dit betekent dat ook ongewenste pagina's worden verplaatst, waardoor tijd wordt verspild en de geheugencellen meer worden belast. Omdat TRIM expliciet aangeeft welke pagina's nu garbage zijn, kunnen ze met rust worden gelaten tijdens de garbage collection en indien nodig gewist worden.
TRIM werd toegevoegd aan MacOS in de laatste update van Snow Leopard in 2011. De meeste Linux-distributies ondersteunen de bewerking ook, maar niet elk bestandssysteem is compatibel. RAID-systemen ondersteunen TRIM over het algemeen niet, hoewel die situatie langzaam verbetert.
Wilt u meer informatie neem dan contact op met Mac Support
Artikel is gepubliceerd door CNet.
© 2022 MacSupport Witjas | Webdesign by Dunico