ID.nl logo
Zekerheid & gemak

TRIM voor gevorderden

In Computer!Totaal nummer 4/2010 hebben we vijf SSD’s met ondersteuning voor TRIM getest. Omwille van de eenvoud zijn we in de test uitgegaan van locaties als plaats waar een SSD gegevens kan opslaan. Eigenlijk worden hier zogenaamde ‘pages’ en ‘blocks’ voor gebruikt. In dit artikel gaan we dieper in op de werking van pages, blocks en de relatie met TRIM.

TRIM is een commando dat ervoor zorgt dat een SSD optimale schrijfprestaties behoudt. De werking van TRIM is pas echt te begrijpen als u de opbouw van een SSD kent. Een SSD slaat informatie op in ‘pages’, die weer zijn gegroepeerd in een ‘block’. Om deze begrippen te snappen, moet u eerst even stilstaan bij de samenstelling van de Multi Level Cell (MLC) SSD’s zoals die in Computer!Totaal 4/2010 getest zijn. Een MLC-SSD bestaat uit miljarden geheugencellen die elk meerdere bits kunnen opslaan. Een geordende verzameling van deze cellen wordt een page genoemd en is de kleinste eenheid om een bestand op te slaan of terug te lezen in een SSD. Een page heeft doorgaans een omvang van 4 KB. Slaat u dus een bestand op van 1 KB, dan neemt dit bestand 4 KB in beslag op de SSD.

Blocks

Een block is een belangrijke eenheid voor een SSD, omdat dit de kleinste verzameling van ‘pages’ is die een SSD moet inlezen om gegevens te kunnen verwijderen. Een block bestaat uit 128 van deze pages en heeft een omvang van 512 KB. Nu is het zo dat een SSD werkt als een x-aantal geheugenmodules in een RAID-opstelling. Dit betekent dat een bestand over meerdere geheugenmodules is verspreid voor maximale leessnelheid. Windows ‘praat’ met de SSD via Logical Block Addressing (LBA), en houdt bij welke blocks in gebruik en welke beschikbaar zijn. Omdat een SSD met pages werkt, moet de SSD-controller de LBA-opdrachten omzetten. De Windows-opdracht om een bestand te overschrijven wordt door een SSD (indien mogelijk) vertaalt naar wegschrijven op een lege page. Zijn er geen lege pages, dan moeten er eerst pages worden leeggemaakt.

Vertraging bij schrijven

Er treedt een probleem op wanneer er onvoldoende lege pages beschikbaar zijn om een bestand op te slaan, terwijl er volgens de index van Windows meer dan voldoende ruimte beschikbaar is. Het is immers zo dat een bestand nooit daadwerkelijk gewist wordt wanneer daar de opdracht toe gegeven wordt. Dit gebeurt pas wanneer de ruimte die het betreffende bestand in neemt wordt overschreven door nieuwe data. Een probleem hierbij is dat een SSD pages welke delen van bestanden bevatten die niet langer in gebruik zijn niet rechtstreeks kan overschrijven. Een SSD moet eerst blocks inlezen en deze in zijn eigen cachegeheugen plaatsen, omdat gegevens alleen daar verwijderd kunnen worden. In het cachegeheugen worden de betreffende pages geleegd en dan wordt het hele block met lege pages teruggezet op de SSD, waarna deze pages beschikbaar zijn voor nieuwe gegevens. Dit vertraagd het schrijfproces met een factor drie of meer.

TRIM

De reddende engel voor deze situaties is TRIM. Dit is een commando dat Window 7 meestuurt naar de SSD tijdens een wisactie. Dit commando informeert de controller van de SSD welke pages daadwerkelijk verwijderd kunnen worden en zet de SSD aan het werk door blocks in te lezen en de pages die gevuld zijn met bestanden (en die volgens Windows overschreven mogen worden) te legen. Op deze manier blijft een SSD in optimale conditie door voldoende lege pages in voorraad te hebben en kan een schrijfopdracht altijd optimaal uitgevoerd worden. We laten u stap voor stap zien wat er gebeurt als een SSD bestanden schrijft en verwijdert en hoe TRIM ervoor zorgt dat er altijd voldoende pages vrij zijn.

1. Lege SSD

©PXimport

Stelt u zich voor dat we een SSD hebben met een opslagcapaciteit van precies 1 block. Een leeg block van 512 KB op het SSD bestaat uit 128 lege pages van 4 KB.

2. Bestand wegschrijven

©PXimport

We willen een bestand wegschrijven van 12 KB, daarmee worden 3 pages gevuld van 4 KB (blauw).

3. Nog een bestand wegschrijven

©PXimport

We willen daarna nog een bestand van 8 KB wegschrijven (paars). In totaal hebben we 20 KB in gebruik genomen. We hebben dus nog 512 KB – 20 KB = 492 KB vrij, oftewel nog 123 vrije pages.

4. Bestand wissen

©PXimport

We gaan nu het bestand van 8 KB wissen (paars). Volgens Windows heeft ons SSD nog 512 KB - 12 KB = 500 KB beschikbaar. Ons SSD registreert echter nog steeds 123 lege pages en 2 pages met gegevens die verwijderd mogen worden.

5. Bestand wegschrijven

©PXimport

We schrijven nu 4 KB weg (groen). De twee pages die informatie bevatten met ‘te verwijderen gegevens’ worden overgeslagen door het SSD. Eerst worden de lege pages gevuld.

6. TRIM aan het werk

©PXimport

Bij ondersteuning voor TRIM stuurt Windows 7 het TRIM-commando mee bij een wisactie. Hierdoor weet de controller van de SSD dat deze data daadwerkelijk verwijderd kan worden. Wanneer de SSD een tijdje niks meer te doen heeft zal de SSD het complete block van 512 KB waarvan een gedeelte door het TRIM-commando is aangewezen als verwijderen verplaatsen naar het cachegeheugen. Hier zal het door het TRIM-commando verwijderde bestand (paars) daadwerkelijk worden verwijderd.

7. Pages worden verwijdert

©PXimport

Nu kunnen de 2 pages geleegd worden en het hele block weer teruggezet worden. U kunt zich wellicht voorstellen wanneer u een bestand van 10 MB gaat wissen, we in totaal 2560 pages moeten wissen. Als die vervolgens ook nog over verschillende blocks zijn verdeeld, dan moet heel veel data ingelezen worden. Ook al bevat een block slechts 4 KB van het bestand, toch moet 512 KB ingelezen worden om het gedeelte van 4 KB te wissen. TRIM zorgt ervoor dat dit gebeurt op momenten wanneer u de SSD niet gebruikt.

8. Ruimte weer vrij

©PXimport

Nu zijn de 2 pages pas weer klaar om opnieuw beschreven te worden.

9. Bestand wegschrijven naar vrije ruimte

©PXimport

Als nu een bestand van 12 KB weggeschreven wordt, zijn er genoeg pages vrij om het bestand (oranje) weg te schrijven.

▼ Volgende artikel
Switch 2-editie van Xenoblade Chronicles X uitgebracht
Huis

Switch 2-editie van Xenoblade Chronicles X uitgebracht

Nintendo heeft geheel onverwachts een Switch 2-upgrade voor Xenoblade Chronicles X: Definitive Edition aangekondigd en uitgebracht.

De rpg van Monolith Soft kwam oorspronkelijk uit in 2015 op Wii U, maar vorig jaar werd het spel al overgezet naar de Nintendo Switch in de vorm van een 'Definitive Edition'. Nu is daar dus een Switch 2-editie bijgekomen.

Mensen kunnen deze editie los kopen op Switch 2, of - als ze de Switch-versie al hebben - een upgrade van (naar schatting) 5 euro aanschaffen om te upgraden naar de Switch 2-versie. Op 16 april komt er ook een fysieke versie in de winkels te liggen.

De Switch 2-upgrade laat het spel in 4K en 60 frames per seconde op televisie draaien, en in 1080p en 60 fps in handheldvorm. Verdere wijzigingen zijn er voor zover bekend niet. De Switch-versie was al een upgrade ten opzichte van het origineel, met verbeterde graphics en meer verhaal.

Watch on YouTube

Over Xenoblade Chronicles X

Xenoblade Chronicles X maakt deel uit van de Xenoblade Chronicles-franchise van Monolith Soft, dat tegenwoordig onderdeel uitmaakt van Nintendo. Er zijn drie hoofddelen in de rpg-serie verschenen, en Xenoblade Chronicles X staat daar los van.

De game speelt zich af in het jaar 2054, waarin de aarde is verwoest. Een kleine groep overlevenden is met een ruimteschip ontsnapt en neergestort op de planeet Mira. In een grote, open spelwereld kunnen spelers op verkenning gaan, en gebruikmaken van een Skell - een soort mech die in een voertuig kan transformeren en kan vliegen.

▼ Volgende artikel
''Deze God of War stelt teleur!'' - Power-Up Podcast #5
Huis

''Deze God of War stelt teleur!'' - Power-Up Podcast #5

Met de PlayStation State of Play nog vers in het geheugen, de aanloop naar Resident Evil Requiem, recente releases én gloednieuwe aankondigingen is er weer genoeg te bespreken! Simon en Jacco hebben een hartig woordje over voor God of War: Sons of Sparta, maar ook voor de aangekondigde trilogie-remake. Martin is ondertussen in High on Life 2 gedoken, en de jongens duiken ook nog in hun favoriete interviews ooit. Benieuwd welke dat zijn? Check dan snel de aflevering, baklap!

Watch on YouTube

00:00 Intro
01:05 Simon zijn ‘spannende’ carnaval
04:30 E-sportopleiding
10:25 Denis Dyack-interview
14:10 Layers of Fear 3-aankondiging
17:25 Aanloop naar Resident Evil Requiem
25:50 High on Life 2
29:50 Death Howl
39:20 God of War: Sons of Sparta
53:45 Twijfels over God of War-trilogie-remake
57:10 Favoriete interviews
01:07:25 Gecancelde Ubisoft-games
01:11:00 Outro

Je kan ook de podcast beluisteren hieronder of via deze link!