Når en harddisk skriver data til pladerne inde i sig, gemmer den data der, hvor styresystemet siger det. En harddisk er delt op i "sektorer" og her kan styresystemet (meget kort fortalt) bede om at få skrevet noget data i sektor 29993918 og så gør harddisken dette. Dette er meget nemt at forstå - gem data et sted og så kan man hente det tilbage nemt. Hos SSD er det meget anderledes. Når styresystemet gemmer data i en "sektor", så bestemmer kontrolleren på SSD selv, hvilken chip og hvor henne på chippen dette gøres. Dette gøres, fordi SSD kun tåler et begrænset antal gange i hver "sektor" og derfor sørger kontrolleren at fordele skrivningerne ud over chipsene og resultatet er meget lang levetid for SSD, inden grænsen for skrivninger er nået.
Men en faktor mere, som gør sig gældende for SSD, er det faktum at man skal slette en "sektor", før man kan skrive data i den - hvis der altså er data i forvejen. Men der er en hage mere med den nuværende SSD: Man kan ikke slette en enkelt "sektor", men kun et helt område. Så hvis SSD vil slette noget, bliver der slettet et helt område med alt data som ligger i det. Når det er sket, kan det nye data blive skrevet. Men lige præcis denne forskel, hvor SSD bliver nød til at slette et helt område, for at kunne overskrive data og en harddisk bare kan overskrive den enkelte sektor er noget, som styresystemerne ikke er vandt til. Normalt fortæller styresystemet ikke harddisken, når ting bliver slettet, men holder blot en tabel over de sektorer som er frie og som er optaget af data. Harddisken ved derfor som sådan ikke, hvilke sektorer, som er frie eller optaget. Denne mangel på viden bliver også overført til SSD, men her er viden nødvendig, for at SSD kan vide hvilke områder, som kan slettes, inden en overskrivning. Se følgende illustration for forklaring.
Hvert felt med et enkelt bogstav (eller mangel på) repræsentere en sektor. En firkant på 3 x 4 sektorer svare til et "område". D svare til, at der er skrevet data i en sektor. S svare til, at der er data i en sektor. I hver sektor med et bogstav, er der data, men som SSD ikke ved, om det er blevet slettet. Vil SSD overskrive noget data, skal et helt område slettes og derfor prioriteres det, at man gemmer data i tomme sektorer Men på et tidspunkt, når SSD er ved at blive fyldt op og så skal den til at flytte data fra flere områder sammen i et enkelt område, for at tømme et område, inden det kan slettes. Dette bliver dog gjort mere besværligt, da det ikke vides hvad der er blevet slettet af styresystemet. Resultatet bliver en langsommere SSD med tiden. Og her kommer TRIM ind i billedet.
TRIM er en kommando, som styresystemet kan sende til SSD, som fortæller hvornår en sektor er blevet slettet og derfor hvornår, at SSD kan tillade sletning af et helt område. Dette giver SSD mulighed for mere optimalt, at slette områder, for at gøre plads til ny data.
4 kommentarer:
Glimrende forklaring. Hvorfor lægger du den ikke på Wikipedia, der er ikke en Dansk version?
Mvh Lasse Westy Bech
Det kunne da godt være, at man skulle kaste sig i gang med sådan et projekt. Det kræver jo bare, at jeg skriver lidt mere forstående og med henvisninger... og selvfølgelig noget bedre grafik. :-)
og et link til en forklaring hvad TRIM er også tak :)
og et link til en forklaring hvad TRIM er også tak :)
Send en kommentar