(Questo è il terzo di un post in quattro parti che mette 10GB/s in prospettiva. Nella prima parte, abbiamo descritto ciò che un ipotetico robot che mangia film potrebbe essere in grado di fare con un SSD da 10GB/s. La seconda parte ha definito le unità di misura standard – bit e byte – utilizzate nelle tecnologie informatiche. Questa sezione cerca di spiegare un problema particolarmente confuso con l’archiviazione e i dati: due definizioni comunemente usate per gli stessi prefissi di unità.)
Avete mai acquistato un sistema informatico con, diciamo, un dispositivo di archiviazione da 500GB, ma quando lo avete avviato per la prima volta il vostro sistema operativo ha riportato solo 465GB? Abbiamo visto nella Parte 2 che giga- dovrebbe significare miliardi, quindi un disco da 500GB dovrebbe avere una capacità di 500 miliardi di byte, non 465 miliardi. Giusto?
Giusto!
E anche non giusto.
Se vi è capitato di scavare nella discrepanza, probabilmente avete capito che i 35GB mancanti non mancavano affatto. È solo che giga- non è sempre usato esattamente nel modo in cui si pensa che dovrebbe. Proprio come molti panettieri considerano la parola dozzina per significare 13, in alcuni circoli giga- è usato per significare 1.073.741.824! Per molti di noi che sono cresciuti capendo che un miliardo è un 1 con nove 0 che lo seguono, questa “altra” definizione potrebbe aver bisogno di qualche chiarimento.
A Trip Down Memory Lane
I computer usano informazioni e istruzioni contenute in file di dati. Questi file di dati risiedono in due posti in un moderno sistema informatico: memoria primaria e memoria secondaria. La memoria primaria, ora più comunemente la memoria ad accesso casuale (RAM), contiene dati a cui i processori del computer possono accedere immediatamente. La memoria secondaria è principalmente una memoria a lungo termine, come gli hard disk (HDD) e le unità a stato solido (SSD). I dati che si trovano nella memoria secondaria devono prima essere spostati nella RAM prima che un computer possa utilizzarli. La situazione è simile alla scrivania di un ufficio e al suo schedario: I documenti sulla scrivania dell’ufficio sono come file nella RAM, in quanto sono gli unici a cui voi, come il processore di un computer, potete accedere, leggere e agire immediatamente; potete usare anche i documenti nello schedario, o memoria secondaria, ma solo dopo averli presi dall’armadio e messi sulla scrivania.
La dimensione di un file, ovunque si trovi, è tipicamente espressa in byte. E come menzionato nella Parte 2 di questo post, poiché queste dimensioni sono tipicamente migliaia, milioni o addirittura miliardi di byte, queste dimensioni sono raramente menzionate senza prefissi speciali. Il problema sorge perché i produttori di dispositivi di archiviazione secondaria hanno storicamente usato il tradizionale set di definizioni di prefissi per misurare le capacità di archiviazione delle loro unità, mentre i produttori di RAM e chip di CPU hanno scelto di usare un altro set di definizioni per gli stessi prefissi!
Un racconto di due sistemi
La maggior parte delle industrie di computer ed elettronica usano il sistema metrico, o decimale, dei prefissi. La sua forma attuale è stata originariamente standardizzata dal Sistema Internazionale di Unità (SI) nel 1960. Il sistema di prefisso metrico ha come base il numero 10, quindi i suoi prefissi corrispondono a numeri che sono potenze intere di 10. Kilo-, per esempio, è 103 – che significa 10 moltiplicato per se stesso tre volte – o 1.000. I prefissi successivi nel sistema possono essere espressi facilmente come potenze di quel 1.000. Il prefisso mega, per esempio, è 1.0002 (1.000.000) e giga è 1.0003 (1.000.000.000). L’industria dell’archiviazione usa il sistema di prefisso metrico per descrivere la capacità dei dispositivi di archiviazione secondaria.
Il sistema di prefisso binario entra in gioco quando si parla di memoria primaria. Il sistema di prefisso binario ha come base il numero 2, quindi i suoi prefissi corrispondono a numeri che sono potenze intere di 2. Quando i dati arrivano alla memoria primaria, ad ogni pezzo di informazione viene assegnato un indirizzo unico che permette al processore di trovare i dati quando necessario. Entro la metà degli anni ’60, uno schema di indirizzamento binario divenne standard nelle architetture dei computer perché un sistema binario permette di organizzare i dati binari in memoria nel modo più efficiente in modo che tutti abbiano indirizzi validi.
All’inizio, le capacità della memoria principale erano espresse in numeri assoluti, ma quando i primi professionisti dei computer trovarono la necessità di esprimere capacità di memoria maggiori, trovarono anche la necessità di usare prefissi per descriverle. L’industria dello storage aveva già adottato l’uso del sistema di prefissi metrici basato sul SI. Per comodità, questi professionisti decisero di adottare anche il sistema di prefissi… con alcune modifiche. Notarono che il numero 1.024, o 210 (binario), era approssimativamente uguale a 1.000, o 103 (decimale), così cominciarono a usare il prefisso kilo non per indicare 1.000, ma per indicare 1.024! I prefissi successivi nel sistema possono essere espressi come potenze di quel 1.024. Mega-, per esempio, divenne 1.0242 e giga- divenne 1.0243.
La seguente tabella espande una tabella presentata nella parte 2 di questo post includendo non solo il significato di ogni prefisso, ma anche il valore esatto dei prefissi di entrambi i sistemi.
Si deve ricordare, tuttavia, che la capacità totale del nostro ipotetico SSD è ancora 500.000.000.000 byte. È solo che quando si divide questo numero per un gigabyte, si possono avere due valori diversi perché ci sono due diverse definizioni di gigabyte. Quando si definisce un gigabyte come 1.0003 (o 1.000.000.000) di byte, come il Sistema Internazionale di Unità di Misura e come fanno i produttori di storage, allora 500.000.000.000 di byte è uguale a 500GB. Quando si definisce un gigabyte come 1.0243 (o 1.073.741.824) byte, come fanno i produttori di RAM e alcuni importanti sistemi operativi, allora 500.000.000.000 byte è uguale a 465GB. Dopo tutto, la discrepanza tra un kilobyte metrico e un kilobyte binario è solo il 2,4%. Inoltre, chiunque abbia mai parlato di KB sapeva già se si stava parlando di 1.000 byte di memoria o di 1.024 byte di memoria. Ma con il passare del tempo, le capacità sia della memoria che dello stoccaggio hanno cominciato ad aumentare. Quando le capacità crescono, le differenze relative tra i valori decimali e binari dello stesso prefisso diventano più pronunciate. Per esempio, anche se la discrepanza tra il chilo binario e il chilo metrico potrebbe essere solo del 2,4%, la differenza tra un giga- nelle due interpretazioni cresce al 7,4%, e al 12,6% quando si parla di peta-!
A causa del potenziale di problemi con questa discrepanza, un movimento nei circoli scientifici è iniziato alla fine degli anni ’90 per stabilire formalmente una nuova e distinta convenzione di denominazione per i prefissi di grandi numeri binari. Nel 1998 i prefissi binari risultanti sono stati adottati dagli organismi di standardizzazione della Commissione Elettrotecnica Internazionale (IEC), l’Organizzazione Internazionale per la Standardizzazione (ISO), e il National Institute of Standards and Technology (NIST), e sono ora indicati come “prefissi IEC”. I prefissi in questo sistema hanno lo scopo di fornire distinzioni ovvie tra i due sistemi e sono formati come contrazioni che combinano le prime due lettere dei prefissi SI con le lettere bi (abbreviazione di binario). La seguente tabella presenta una lista dei prefissi e dei loro significati.
Anche se le conseguenze di usare erroneamente un prefisso quando si dovrebbe usare l’altro potrebbero non essere così drammatiche come la disconnessione che ha portato al famigerato incendio del 1999 del Mars Climate Orbiter della NASA, quando il suo software calcolò la forza dei suoi propulsori in “libbre”, ma un pezzo separato di software prese i dati assumendo che fossero nell’unità metrica “newton”, capire la differenza tra questi sistemi può salvarvi dal sentirvi sorpresi o almeno dal confondervi.Sfortunatamente, non tutti i produttori di computer, software e memorie hanno ancora iniziato a usare le definizioni scientifiche standardizzate, quindi è ancora probabile vedere lo stesso prefisso usato sia per le interpretazioni metriche che binarie. La confusione tra i consumatori può ancora verificarsi quando il dispositivo di archiviazione che installano indica una capacità utilizzando i prefissi standard, ma il loro sistema operativo, che può esprimere la memoria primaria e le capacità di archiviazione secondaria in termini di prefisso binario, visualizza quella che sembra una capacità diversa. Oggi, per mitigare la confusione, la maggior parte dei produttori di storage includono spiegazioni sui loro prodotti e sulla letteratura che definiscono il valore esatto del prefisso che usano.
La prossima parte di questo post riguarderà le velocità di trasferimento e le considerazioni uniche prese nell’esprimerle con i dati.