Confusione con capacità di archiviazione (potenze di 10 e 2) [duplicato]


23

Stavo dando un'occhiata a un HDD e ho trovato un documento (da Toshiba, link: HDD SATA da 2,5 pollici mq01abdxxx ) che dice:

"Un Gigabyte (1 GB) significa 10 ^ 9 = 1.000.000.000 di byte con potenze di 10. Un sistema operativo del computer, tuttavia, riporta la capacità di archiviazione usando potenze di 2 per la definizione di 1 GB = 2 ^ 30 = 1.073.741.824 byte e quindi mostra meno memoria capacità."

Quindi i poteri di 10 sono più grandi dei poteri di 2, OK.

Esempio 10 ^ 2 = 100 e 2 ^ 2 = 4.

Ma non capisco il documento che dice per la stessa capacità di archiviazione:

1 GB è 1.000.000.000 di byte (potenze di 10) e 1.073.741.824 byte (potenze di 2), quindi: mostra una capacità di archiviazione inferiore (potenze di 2). Perché è di meno? Se vedo per 1 GB maggiore capacità di archiviazione con potenze di 2 rispetto a potenze di 10.


13
"Perché è inferiore? Se vedo per 1 GB di capacità di archiviazione in più con potenze di 2 rispetto a potenze di 10." La tua altezza in pollici fornisce il numero più piccolo della stessa altezza in centimetri, solo perché c'è più "capacità di lunghezza" in pollici che in centimetri. Quindi, per esprimere il valore fisso: maggiore è l'unità, più basso è il numero.
Kamil Maciorowski

4
Non meno, è lo stesso valore, rappresentato da due basi diverse.
Ramhound,

2
Non puoi semplicemente dire che 10 ^ 2 - 100 e 2 ^ 2 = 4. Devi calcolare quali 100 sarebbero nella base 2.
Ramhound,

4
"Un sistema operativo per computer" - Il mio non ... O, in realtà, utilizza MB (base10) nella GUI, ma MiB (base2) nella CLI. Solo per mantenere le cose interessanti.
marcelm

2
Stanno dicendo che i "poteri di 10" sono più piccoli dei poteri di grandezza simili di 2. Ad esempio, 1000 (10 ^ 3) <1024 (2 ^ 10). E 1000000 (10 ^ 6) <1048576 (2 ^ 20). Quindi per un produttore di unità, il disco rigido da 1 terabyte ha (almeno) 1.000.000.000 di byte (e in realtà un po 'di più) mentre per un'utilità del sistema operativo che riporta spazio 1 terabyte è 1.099.511.627.776 byte. Quindi il sistema operativo segnalerà il tuo disco rigido da 1 TB come 931 Gb o un po 'di più. (O forse no, vedi @marcelm sopra.)
davidbak,

Risposte:


58

Il motivo storico dell'utilizzo di potenze di 2 è che la CPU e l'accesso alla memoria e al disco rigido utilizzano uno spazio di indirizzi composto da righe su codice binario. I produttori di hardware hanno deciso i nomi in questo modo:

2^10 = 1024 and as it's almost 1000 then call it 1 Kilobyte

2^20 = 1048576 bytes and as it's almost 1000000 then call it 1 Megabyte

Per l'utente normale è una sciocchezza e ingombrante. Inoltre, i prefissi "chilo", "mega", ecc. Entrano in conflitto con lo standard del Sistema internazionale di unità (SI) in cui "1 kiloWatt" significa 10 ^ 3 o 1000 watt.

Per risolvere il problema, nel 2000 la Commissione elettrotecnica internazionale o IEC ha proposto uno schema di notazione per le unità basate su potenze di 2 sulla norma ISO / IEC 80000-13 .

I nuovi nomi sono stati creati sostituendo la seconda sillaba nel vecchio nome con "bi" (riferendosi a "2"). Un kilobyte deve ora essere un kibibyte e così via. Le nuove unità hanno anche ottenuto i simboli corrispondenti, quindi '10 kibibyte 'ora è scritto come 10 KiB anziché 10 kB . Questa è la tabella delle corrispondenze:

Notation      Symbol    Value
1 kilobyte    1 kB      10^3  = 1000 bytes
1 megabyte    1 MB      10^6  = 1000000 bytes
1 gigabyte    1 GB      10^9  = 1000000000 bytes
1 terabyte    1 TB      10^12 = 1000000000000 bytes


1 kibibyte    1 KiB     2^10 = 1024 bytes
1 mebibyte    1 MiB     2^20 = 1048576 bytes
1 gibibyte    1 GiB     2^30 = 1073741824 bytes
1 tebibyte    1 TiB     2^40 = 1099511627776 bytes

16 anni dopo molti venditori di hardware e software fanno ancora riferimento alle unità base-2 con i loro nomi SI . Un "megabyte" può significare 1000000 byte o 1048576 byte.

Se si acquista un disco rigido da 100 GB, la capacità è di 100x10 ^ 9 o 10 ^ 11 byte. Ma, e questo è il grande ma, il sistema operativo segnalerà che l'unità ha solo una capacità di 93 GB (10^11)/(2^30). Hai acquistato un'unità da 100 gigabyte , che equivale a un'unità da 93 gibibyte . Il sistema operativo è quello che utilizza la notazione errata.

I produttori di unità nascondono questo problema con dichiarazioni di non responsabilità e spiegazioni che portano sempre alla conclusione che "la capacità formattata effettiva potrebbe essere inferiore".


1
I commenti non sono per una discussione estesa; questa conversazione è stata spostata in chat .
Journeyman Geek

21

In breve: tutto riguardava il marketing.

jcbermu ha spiegato bene, ma non sono d'accordo con i motivi alla base di tutto ciò.

Mentre qualsiasi sistema informatico utilizza il sistema binario, i bit e i byte sono scritti come ^ 2, il che è normale. Quindi non è il sistema operativo o il software in errore per la confusione. Qui è tutto binario.

È colpa dei produttori di HDD dichiarare le capacità dell'HDD nel sistema ^ 10, il che ti deruba di alcuni GB pratici. Un HDD da 20 GB sarà effettivamente in grado di memorizzare 18 GB e così via ... un'unità da 1 TB sarà in realtà di ~ 930 GB. La beffa "bibyte" è stata inventata per cercare di prevenire un po 'di confusione, ma non è stata assolutamente adottata praticamente.


10
È perché i byte sul disco "si sono risolti dopo la spedizione".
davidbak,

2
Vero. Non ho mai sentito nessuno dire "Ho aggiornato a 16 gibi RAM". Non penso che i produttori siano responsabili del disastro, ma sicuramente ne trarranno profitto. Negli anni '80 e '90, gli utenti di computer sapevano qual è la differenza tra chilogrammo e kilobyte e perché. Al giorno d'oggi, chi sa che i computer funzionano con l'aritmetica binaria?
Crowley,

4
Non si tratta di marketing e non lo è mai stato. Dischi rigidi e floppy sono sempre stati venduti usando il vero prefisso SI, perché non aveva mai senso usare un'altra base.
pipe,

1
-1, terribile. It's the fault of HDD manufacturers to state the HDD capacities in ^10 system, which robs you of quite some practical GB.No, nessuna di queste cose è vera. I produttori di HD sono quelli che lo hanno sempre fatto bene, usando la definizione effettiva e corretta delle unità. Non è colpa loro se sviluppatori, produttori di memoria e chiunque altro abbia usato le unità SI in modo impreciso. E, naturalmente, in quale unità viene misurato lo spazio di archiviazione non "ti deruba di alcuni GB pratici" o altera effettivamente la capacità in alcun modo.
HopelessN00b,

1
@pipe: un floppy da 720 KB conteneva esattamente 1.440 blocchi di 512 byte ciascuno. Allo stesso modo con altre dimensioni misurate in KB. Per quanto ne so, il significato più comune di "MB" con supporti di memorizzazione magnetici era 1.024.000 byte, rendendo un floppy da 1,44 MB esattamente il doppio di 720 KB.
supercat,

16

La risposta di jcbermu è buona, ma voglio affrontarla da una prospettiva diversa.

1 GB è 1.000.000.000 di byte (potenze di 10) e 1.073.741.824 byte (potenze di 2), quindi: mostra una capacità di archiviazione inferiore (potenze di 2). Perché è di meno? Se vedo per 1 GB maggiore capacità di archiviazione con potenze di 2 rispetto a potenze di 10.

Un supporto di memorizzazione - qualsiasi supporto di memorizzazione - può memorizzare un numero specifico di bit accessibili. Di solito nel calcolo per scopi generici, è espresso come byte o alcuni multipli di byte, ma se inizi a guardare ad esempio i circuiti integrati di memoria (circuiti integrati, chip), vedrai la loro capacità di memoria espressa in termini di bit accessibili.

Un disco rigido memorizzerà un numero specifico di bit o byte che, per motivi tecnici, sono indirizzati in termini di settori. Ad esempio, un'unità da 4 TB potrebbe avere 7.814.037.168 settori di 512 byte ciascuno, con una capacità di archiviazione di 4.000.787.030.016 byte. Questo è quello che effettivamente ottieni. (In pratica, si perde un po 'di tutto ciò a causa delle informazioni di contabilità del computer: file system, journal, partizionamento, ecc. Tuttavia, i byte sono ancora lì, non è possibile utilizzarli per archiviare i file, perché sono necessari per memorizzare i dati che ti consentono effettivamente di archiviare i file.)

Naturalmente, il numero 4.000.787.030.016 è alquanto ingombrante. Per tale motivo, scegliamo di rappresentare queste informazioni in qualche altro modo. Ma come ha illustrato jcbermu, scegliamo di farlo in due modi diversi: con poteri di dieci o poteri di due.

In potenze di dieci, 4.000.787.030.016 byte è 4.000787030016 * 10 ^ 12 byte, che si arrotonda abbastanza bene; con quattro cifre significative, viene arrotondato a 4.001 TB, per la definizione SI di "tera": 10 ^ 12. Il nostro disco rigido può contenere più di 4 * 10 ^ 12 byte, quindi in termini SI è un dispositivo di archiviazione da 4 terabyte.

In potenze di due, 4.000.787.030.016 byte è 3.638694607 * 2 ^ 40 byte, che non si arrotonda così bene. Inoltre presenta come una quantità più piccola, perché 3.639 è inferiore a 4.001, e questo è un male per il marketing (chi vuole comprare un drive 3.6 TB quando il costruttore della porta accanto vende un disco 4,0 TB per lo stesso prezzo?). Questo è il prefisso binario 3.6 "tebibytes", dove "bi" indica che è una quantità base-due.

In realtà, tuttavia, è esattamente lo stesso numero di byte; il numero è espresso solo in modo diverso! Se ripeti la matematica, vedrai che 3.638694607 * 2 ^ 40 = 4.000787030016 * 10 ^ 12, in modo da ottenere la stessa capacità di archiviazione alla fine.


1
Ben spiegato, ma il numero di settori (come 7,8 [...] nel tuo esempio) è scelto dai produttori in modo che la capacità finisca al valore desiderato. Potrebbero semplicemente creare 8 miliardi di settori, 8589934592 o qualsiasi altro numero per ottenere un valore di capacità reale, ma non va bene per le imprese. Poiché la differenza è tecnicamente possibile, come produttore farei un grande successo sul mercato: un logo TrueCapacity (r) o TrueSpace (r) ed è garantito che le vendite aumenterebbero a causa di questa manovra di marketing e gli altri produttori deve seguire (e sarebbe impreparato a farlo).
Overmind

@Overmind: questa è una possibile tecnica di marketing. Simile alle comunicazioni aeree che avevano fatturazione al secondo (prima che T-Mobile le acquistasse). Se tu fossi responsabile del marketing per un produttore di dispositivi di archiviazione, immaginerei che la strategia potrebbe essere quella che deciderai di perseguire.
TOOGAM,

Ho trovato questa risposta per fornirmi la massima chiarezza (forse). Quindi, non c'è davvero bisogno che sia una potenza di 2? Non c'è niente di speciale in quanto la maggior parte delle dimensioni dei supporti di memorizzazione sono potenze di 2?
Abdul

1
@Abdul La maggior parte dei dispositivi di archiviazione (consumer) hanno capacità accessibili all'utente che non sono , in termini di byte (o implicitamente anche bit), una potenza di due. Come Overmind indicato in precedenza, le capacità esatte degli HDD possono essere in gran parte selezionate casualmente purché soddisfino i requisiti di marcatura. Gli SSD tendono ad essere più vicini a 2 ^ n, perché i chip di memoria flash sono realizzati in dimensioni che sono spesso in intere potenze di due (perché hanno linee di indirizzo e cose del genere che lo rendono un vantaggio), ma a causa del sovraprovisioning non tutta la capacità del flash sarà accessibile da software esterno al controller flash incorporato.
un CVn

5

Altre risposte hanno affrontato la ragione storica della differenza, ma mi sembra che tu stia chiedendo la differenza secondo la matematica.

Hai ragione sul fatto che una potenza di 10 è maggiore di una potenza di 2 e che al contrario un gigabyte (10 ^ 9 byte) è più piccolo di un gibibyte (2 ^ 30 byte).

L'inversione delle dimensioni è spiegata dal fatto che ci sono più poteri in un gibibyte (30 poteri) di quanti siano i poteri in un gigabyte (9 poteri). Si scopre che il numero di poteri ha un effetto maggiore sulla dimensione finale rispetto alla dimensione di ogni singolo potere.

Per quanto riguarda il motivo per cui la dimensione riportata di un disco è inferiore quando misurata in gibibyte (2 ^ 30) rispetto a quando misurata in gigabyte (10 ^ 9), è naturale che quando si misura una quantità fissa che un'unità di misura più grande dia un numero minore . Ad esempio, considera l'altezza in pollici contro l'altezza in centimetri. Poiché un pollice è più grande di un centimetro, la stessa altezza misurerà meno pollici (es. 72 pollici) di centimetri (es. 183 centimetri). L'altezza è la stessa distanza fisica in entrambi i casi, ma ogni misurazione fornisce solo un numero diverso in base all'unità di misura.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.