web-dev-qa-db-fra.com

Confusion avec la capacité de stockage (puissances de 10 et 2)

Je jetais un coup d'œil sur un disque dur et j'ai trouvé un document (de Toshiba, lien: Disque dur SATA 2,5 pouces mq01abdxxx ) qui dit:

"Un gigaoctet (1 Go) signifie 10 ^ 9 = 1 000 000 000 d'octets en utilisant des puissances de 10. Un système d'exploitation, cependant, indique la capacité de stockage en utilisant des puissances de 2 pour la définition de 1 Go = 2 ^ 30 = 1 073 741 824 octets, et montre donc moins de capacité de stockage. "

Alors les puissances de 10 sont plus grandes que les puissances de 2, OK.

Exemple 10 ^ 2 = 100 et 2 ^ 2 = 4.

Mais je ne comprends pas le document qui dit pour la même capacité de stockage:

1 Go correspond à 1 000 000 000 octets (puissances de 10) et à 1 073 741 824 octets (puissances de 2), puis: indique une capacité de stockage inférieure (les puissances de 2). Pourquoi est-ce moins? Si je vois pour 1 Go plus de capacité de stockage avec une puissance de 2 que de 10.

23
learnprogramming

La raison historique d'utilisation des puissances de 2 est que la CPU accède à la mémoire et au disque dur à l'aide d'un espace d'adressage composé de lignes sur du code binaire. Les fabricants de matériel ont décidé les noms de cette manière:

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

Pour l'utilisateur normal, c'est absurde et encombrant. De plus, les préfixes "kilo", "méga", etc. entrent en conflit avec le standard Système international d'unités (SI) où "1 kiloWatt" signifie 10 ^ 3 ou 1 000 Watts.

Pour résoudre le problème, en 2000 , la Commission électrotechnique internationale ou IEC a proposé un système de notation des unités basé sur une puissance de 2 sur la norme ISO/CEI 80000-13 .

Les nouveaux noms ont été créés en remplaçant la deuxième syllabe de l’ancien nom par "bi" (en référence à "2"). Un kilo-octet doit maintenant être un kibibyte , etc. Les nouvelles unités ont également des symboles correspondants, ainsi "10 kibibytes" est maintenant écrit sous la forme 10 kio au lieu de 10 ko . Voici la table de correspondance:

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 ans plus tard, de nombreux fournisseurs de matériel et de logiciels font toujours référence aux unités de base 2 avec leurs noms SI. Un "mégaoctet" peut signifier 1000000 octets ou 1048 576 octets.

Si vous achetez un disque dur de 100 Go, la capacité est de 100x10 ^ 9 ou 10 ^ 11 octets. Mais, et c’est le gros problème, le système d’exploitation n’indiquera le lecteur que comme ayant une capacité de 93 Go (10^11)/(2^30). Vous avez acheté un lecteur de 100 gigaoctet , ce qui équivaut à un lecteur de 93 gibibyte . Le système d'exploitation est celui qui utilise la mauvaise notation.

Les fabricants de disques cachent ce problème avec des avertissements et des explications qui permettent toujours de conclure que "la capacité formatée réelle peut être inférieure".

58
jcbermu

En bref: tout était une question de marketing.

jcbermu a bien expliqué, mais je ne suis pas d'accord avec les raisons derrière tout ça.

Bien que tout système informatique utilise le système binaire, les bits et les octets sont écrits sous la forme ^ 2, ce qui est normal. Ce n’est donc pas le système d’exploitation ou le logiciel responsable de la confusion. Tout est binaire ici.

C’est la faute des fabricants de disques durs d’énoncer les capacités des disques durs dans le système ^ 10, ce qui vous prive de beaucoup de Go pratique. Un disque dur de 20 Go pourra en réalité stocker 18 Go, etc. Un disque de 1 To aura une capacité de ~ 930 Go. La moquerie "bibyte" a été inventée pour tenter d’éviter une partie de la confusion, mais elle n’a pas été adoptée dans la pratique.

21
Overmind

La réponse de jcbermu est bonne, mais je veux aborder la question sous un angle différent.

1 Go correspond à 1 000 000 000 d'octets (puissance de 10) et à 1 073 741 824 octets (puissance de 2), puis: il affiche une capacité de stockage inférieure (puissance de 2). Pourquoi est-ce moins? Si je vois pour 1 Go plus de capacité de stockage avec une puissance de 2 que de 10.

Un support de stockage - tout support de stockage - peut stocker un nombre spécifique de bits accessibles. En général, en informatique générale, ils sont exprimés en octets ou en un multiple d’octets, mais si vous commencez à regarder, par exemple, les circuits intégrés de mémoire (circuits intégrés, puces), vous verrez leur capacité de mémoire exprimée en bits accessibles.

Un disque dur stockera un nombre spécifique de bits ou d'octets qui, pour des raisons techniques, sont traités en termes de secteurs. Par exemple, un disque 4 TB peut comporter 7 814 037 168 de 512 octets chacun, ce qui correspond à une capacité de stockage de 4 000 787 030 016 octets. C'est ce que vous obtenez réellement. (En pratique, vous perdez alors une partie de celle-ci au profit des informations de comptabilité de l'ordinateur: système de fichiers, journal, partitionnement, etc. Cependant, les octets sont toujours là. , vous ne pouvez tout simplement pas les utiliser pour stocker des fichiers, car ils sont nécessaires pour stocker les données qui vous permettent effectivement de stocker les fichiers.)

Bien entendu, le nombre 4 000 787 030 016 est un peu difficile à manier. Pour cette raison, nous avons choisi de représenter cette information d’une autre manière. Mais comme illustré par jcbermu, nous avons choisi de le faire de deux manières différentes: en puissances de dix ou en puissances de deux.

Dans les puissances de dix, 4.000.787.030.016 octets est 4.000787030016 * 10 ^ 12 octets, ce qui arrondit assez bien; avec quatre chiffres significatifs, il arrondit à 4 001 To, pour la définition SI de "tera": 10 ^ 12. Notre disque dur peut stocker plus de 4 * 10 ^ 12 octets. Il s'agit donc d'un périphérique de stockage de 4 téraoctets.

Dans les puissances de deux, 4 000 787 030 016 octets correspondent à 3,638694607 * 2 ^ 40 octets, ce qui ne permet pas de faire une rentrée aussi nette. Cela ressemble aussi à une quantité inférieure, car 3.639 est inférieur à 4.001, ce qui est mauvais pour le marketing (qui veut acheter un lecteur 3.6 TB lorsque le fabricant suivant porte vend un lecteur 4.0 TB au même prix?). Il s'agit du préfixe binaire 3.6 "tebibytes", où "bi" indique qu'il s'agit d'une quantité de base deux.

En réalité, cependant, , c'est exactement le même nombre d'octets. Si vous faites le calcul à nouveau, vous verrez que 3.638694607 * 2 ^ 40 = 4.000787030016 * 10 ^ 12, vous obtenez donc la même capacité de stockage à la fin.

16
a CVn

D'autres réponses ont abordé la raison historique de la différence, mais il me semble que vous vous interrogez sur la différence en fonction des mathématiques.

Vous avez raison de dire qu'une puissance de 10 est supérieure à une puissance de 2 et qu'inversement, un gigaoctet (10 ^ 9 octets) est inférieur à un gibibyte (2 ^ 30 octets).

Le renversement des tailles s'explique par le fait qu'il y a plus de pouvoirs dans un gibibyte (30 pouvoirs) que de pouvoirs dans un gigaoctet (9 pouvoirs). Il s'avère que le nombre de puissances a un effet plus important sur la taille finale que la taille de chaque puissance individuelle.

Quant à savoir pourquoi la taille indiquée d’un disque est plus petite lorsqu’elle est mesurée en gigaoctets (2 ^ 30) que lorsqu’elle est mesurée en gigaoctets (10 ^ 9), il est naturel que, lors de la mesure d’une quantité fixe, une unité de mesure plus grande donne un nombre inférieur . Par exemple, considérons la taille en pouces et la taille en centimètres. Parce qu'un pouce est plus grand qu'un centimètre, la même hauteur mesurera moins de pouces (par exemple 72 pouces) que de centimètres (par exemple 183 centimètres). La hauteur est la même distance physique dans les deux cas, mais chaque mesure donne simplement un nombre différent en fonction de l'unité de mesure.

5
Edward Peek