Overprovisioning... è un bene o un male?


Prima di affrontare direttamente l'argomento Overprovisioning, preferiamo fare una piccola premessa per rendere più comprensibile a tutti alcuni aspetti che vengono ormai dati per scontati ma che in realtà, quando il costo al gigabyte è elevato come per gli SSD, è bene tenere presente.


Quando ci apprestiamo ad acquistare un qualsiasi supporto di memorizzazione come HardDisk, SSD, CompactFlash, pendrive e altri prodotti simili, è convenzione ormai standard che si scelga la capacità in GigaByte (GB) indicata. Purtroppo però, una volta effettuata la formattazione del supporto, lo spazio risultante non corrisponde mai a quanto indicato e acquistato: questo perchè è diventata usanza comune, da parte dei produttori, vendere in GB secondo lo standard IEC.


Per chiarire la questione vi proponiamo una tabella che riassume, secondo lo standard IEC, le unità di misura dello spazio di memorizzazione in codice binario e decimale.


Unità di misura

Sigla

Dimensioni

bit

bit

0 o 1

byte

B

8 bits

kibibit

Kibit

1024 bits

kilobit

kbit

1000 bits

kibibyte (binario)

KiB

1024 bytes

kilobyte (decimale)

KB

1000 bytes

megabit

Mbit

1000 kilobits

mebibyte (binario)

MiB

1024 kibibytes

megabyte (decimale)

MB

1000 kilobytes

gigabit

Gbit

1000 megabits

gibibyte (binario)

GiB

1024 mebibytes

gigabyte (decimale)

GB

1000 megabytes

terabit

Tbit

1000 gigabits

tebibyte (binario)

TiB

1024 gibibytes

terabyte (decimale)

TB

1000 gigabytes


I sistemi operativi però non seguono lo standard IEC che è molto flessibile, ma si basano sul puro codice binario, questa "discrepanza" crea le sostanziali differenze che affrontiamo ogni giorno tra spazio acquistato e reale spazio che troviamo disponibile nei supporti.

Facendo un semplice esempio, prendiamo come campione un supporto da 100GB, seguendo lo standard IEC 100GB corrispondono a 100000000000 (cento miliardi di byte) che tradotto in classificazione binaria diventano 93,1 GiB. Su un supporto da 100GB quindi la semplice differenza di classificazione comporta il 6,9% di spazio disponibile in meno. Lo stesso esempio riportato su un HardDisk da 1TB, ci porta ad uno scarto di quasi 70GB di spazio sufficiente per installare sistema operativo e programmi in una macchina media.

Fatta questa considerazione, è difficile purtroppo attribuire a qualcuno la colpa di questa confusione, quello che è certo è che chi ne fa le spese sono gli utenti finali che devono convertire il comune GB (Gigabyte), indicato nel sistema operativo che in realtà si dovrebbe chiamare GiB (Gibibyte), con il vero GB IEC (Gigabyte) che ha una valenza completamente diversa.


A questo punto qualcuno di voi si chiederà che senso ha questa precisazione in un contesto legato all'Overprovisioning, la risposta è molto semplice, in entrambi i casi si acquista una quantità di memoria e se ne può "sfruttare" solo una parte. La sostanziale differenza tra i due casi però è legata al fatto che, mentre con la conversione tra GB e GiB una parte di spazio letteralmente sparisce nel nulla, l'Overprovisioning preserva una parte di memoria, nel nostro caso NAND flash, per migliorare le prestazioni ed aumentare la longevità del supporto.


Per concludere questa piccola introduzione all'argomento, simuliamo una situazione tipo con protagonista un SSD basato su controller SF1200 con Overprovisioning secondo specifica SandForce e capacità NAND di 128GB.


NAND flash on board = 128 GB (128000000000 bytes)

Overprovisioning Flash locked = 21,875%

SSD available space = 100 GB

Formatted available space= 93,1 GiB

Total NAND flash lost in process= 27,3%


Appare evidente come perdere quasi il 30% di spazio tra Overprovisioning e conversioni, vada ad influire pesantemente sulla componente costo al Gigabyte; nelle prossime pagine analizzeremo in dettaglio come funziona questo sistema e verificheremo se la scelta di Corsair, di ridurre lo spazio "di scorta", vada ad influire in maniera sensibile sulle prestazioni.