?
Overprovisioning is het reserveren van een plek logische LBA die niet door de host beschreven wordt. Dat kan door een gedeelte niet te partitioneren of dat kan via het beperken van de LBA via de HPA (Host-Protected Area).
Als ik/Windows een bestand op cluster 37.000 zet (64miljoen is de laatste @256 GB) dan komt die per definitie niet persé op dezelfde fysieke plaats op de SSD. Daar zijn we het over eens neem ik aan.
Niet helemaal. Het klopt dat er geen directe relatie is tussen logische LBA en fysiek NAND adres, maar voor statische data wordt min of meer een 1:1 mapping aangehouden. Er is voor de SSD geen reden om het anders te doen. Als er grote blokken data geschreven worden, zullen die ook door de SSD achter elkaar (contiguous) worden opgeslagen. Pas bij dyamische data zul je zien dat het sterk gaat afwijken van hoe de data door de host wordt opgeslagen (logische LBA).
Als ik vervolgens nu cluster 0 tot 285.000 niet partitioneer onder het motto van "overprovisioning" dan is er volgens diezelfde logica helemaal geen garantie dat er op een (aaneengesloten) block van die grootte geen bestanden worden geplaatst.
Het klopt dat als je aan overprovisioning doet, de SSD uiteindelijk alle fysieke NAND cellen beschreven kan hebben na een lange tijd van gebruik. Is dat wat je bedoelt?
Dat betekent echter nog niet dat het geen verschil zou uitmaken. Relevant is niet dat alle fysieke NAND wordt beschreven. Relevant is hoeveel erase blocks er vrij zijn en dus wanneer / hoe vaak de SSD naar trage foreground garbage collection moet grijpen. Bij het reserveren van grote blokken aaneengesloten logische LBA is het aantal vrije erase blocks veel groter dan dat je enkel TRIM zou hebben en allemaal snippertjes vrije ruimte hebt. Kortom, er is een verschil tussen 20% overprovisioning en 20% aan versnipperde TRIMmed LBA.
Maar gezien de werking van een SSD lijkt het mij een illusie om te denken dat je bijvoorbeeld zelf 1/10e van je NAND chips kunt veilig stellen. Sterker nog het lijkt mij waarschijnlijker dat de wear leveling op den duur JUIST je data op het stuk gaat zetten dat jij in gedachte had.
Kunt veilig stellen? Wat bedoel je?
Er wordt vaak gedacht dat je door een stuk niet te overprovisionen je een soort "spare blocks" krijgt. Dat lijkt me echt onzin, dat kan alleen de firmware. Zou ook niet logisch zijn....
Ik neem aan dat je bedoelt 'niet te partitioneren'. Het is inderdaad niet zo dat de gereserveerde ruimte anders wordt behandeld. Het is gewoon ruimte die niet door de host beschreven is. Doordat het een groot aaneengesloten blok betreft, komt dit ook overeen met een aaneengesloten stuk NAND cellen - die dus ook allemaal vrije erase blocks hebben. Bij regulier gebruik gaan die inderdaad gebruikt worden, maar door de hoge kwaliteit (weinig fragmentatie) hoeft het minder gauw actieve GC toe te passen bij dynamische writes, dan dat je enkel wat snippertjes aan ruimte zou TRIMen.
User based overprovisioning is even nuttig als gewoon hetzelfde aantal GB niet gebruiken.
Dat is dus niet helemaal waar, al is het verschil niet heel groot voor normaal consumentengebruik. Indien je de prestaties en levensduur optimaal wilt houden bij veel dynamische data, is overprovisioning min of meer noodzakelijk. Zakelijke gebruikers schakelen TRIM vaak ook helemaal uit - je hebt het niet meer nodig als je voldoende overprovisioning toepast. Overprovisioning is van hogere kwaliteit dan enkel wat snippertjes geTRIMde LBA waar de SSD het mee moet doen.
[
Voor 4% gewijzigd door
Verwijderd op 18-06-2015 14:38
]