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

23

Je regardais 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 octets en utilisant des puissances de 10. Un système d'exploitation informatique, cependant, signale une capacité de stockage en utilisant des puissances de 2 pour la définition de 1 Go = 2 ^ 30 = 1 073 741 824 octets, et par conséquent, montre moins de stockage capacité."

Les puissances de 10 sont alors 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 équivaut à 1 000 000 000 octets (puissances de 10) et 1 073 741 824 octets (puissances de 2), alors: il montre moins de capacité de stockage (les puissances de 2). Pourquoi est-ce moins? Si je vois pour 1 Go plus de capacité de stockage en puissances de 2 que de puissances de 10.

apprendre la programmation
la source
13
"Pourquoi est-ce moins? Si je vois pour 1 Go de capacité de stockage de plus en puissances de 2 que de puissances de 10." Votre taille en pouces donne le plus petit nombre que la même hauteur en centimètres, simplement parce qu'il y a plus de "capacité de longueur" en pouces qu'en centimètres. Ainsi, pour que la valeur fixe s'exprime: plus l'unité est grande, plus le nombre est bas.
Kamil Maciorowski
4
Ce n'est pas moins, c'est la même valeur, représentée par deux bases différentes.
Ramhound
2
Vous ne pouvez pas simplement dire que 10 ^ 2 - 100 et 2 ^ 2 = 4. Vous devez calculer ce que 100 serait en base 2.
Ramhound
4
"Un système d'exploitation informatique" - Le mien ne fonctionne pas ... Ou, en fait, il utilise MB (base10) dans l'interface graphique, mais MiB (base2) dans l'interface CLI. Juste pour garder les choses intéressantes.
marcelm
2
Ils disent que les "puissances de 10" sont plus petites que les puissances de magnitude similaires de 2. Par exemple, 1000 (10 ^ 3) <1024 (2 ^ 10). Et 1000000 (10 ^ 6) <1048576 (2 ^ 20). Ainsi, pour un fabricant de disques, votre disque dur de 1 téraoctet a (au moins) 10000000000 d'octets (et en fait un peu plus) tandis que pour un utilitaire de système d'exploitation faisant rapport sur l'espace de 1 téraoctet, c'est 1099511627776 octets. Ainsi, le système d'exploitation signalera votre disque dur de 1 To comme 931 Go, ou un peu plus. (Ou peut-être pas, voir @marcelm ci-dessus.)
davidbak

Réponses:

58

La raison historique de l'utilisation de puissances de 2 est que le 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 quincaillerie ont décidé les noms de cette façon:

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 la norme du Système international d'unités (SI) où «1 kiloWatt» signifie 10 ^ 3 ou 1 000 watts.

Pour résoudre le problème, en l'an 2000, la Commission électrotechnique internationale ou CEI a proposé un schéma de notation des unités basé sur des puissances de 2 selon 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» (faisant référence à «2»). Un kilo-octet doit maintenant être un kibioctet et ainsi de suite. Les nouvelles unités ont également reçu les symboles correspondants, donc '10 kibibyte 'est maintenant écrit en 10 KiB au lieu de 10 kB . 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 encore référence aux unités de base 2 avec leurs noms SI . Un «mégaoctet» peut signifier soit 1000000 octets, soit 1048576 octets.

Si vous achetez un disque dur de 100 Go, la capacité est de 100 x 10 ^ 9 ou 10 ^ 11 octets. Mais, et c'est le gros mais, le système d'exploitation ne signalera que le lecteur comme ayant une capacité de 93 Go (10^11)/(2^30). Vous avez acheté un lecteur de 100 gigaoctets , ce qui équivaut à un lecteur de 93 gibibytes . 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 conduisent toujours à la conclusion que «la capacité formatée réelle peut être inférieure».

jcbermu
la source
1
Les commentaires ne sont pas pour une discussion approfondie; cette conversation a été déplacée vers le chat .
Journeyman Geek
21

En bref: c'était une question de marketing.

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

Alors que tout système informatique utilise le système binaire, les bits et octets sont écrits comme ^ 2, ce qui est normal. Ce n'est donc pas le système d'exploitation ou le logiciel à l'origine de la confusion. Ici, tout est binaire.

C'est la faute des fabricants de disques durs de déclarer les capacités des disques durs dans le système ^ 10, ce qui vous prive de quelques Go pratiques. Un disque dur de 20 Go sera en fait capable de stocker 18 Go et ainsi de suite ... un lecteur de 1 To sera en fait d'environ 930 Go. La moquerie «bibyte» a été inventée pour essayer d'empêcher une partie de la confusion, mais elle n'a absolument pas été adoptée pratiquement.

Surment
la source
10
C'est parce que les octets sur le disque "se sont installés après l'expédition".
davidbak
2
Vrai. Je n'ai jamais entendu quelqu'un dire "j'ai mis à niveau vers 16 gibi RAM". Je ne pense pas que les fabricants soient responsables du désordre, mais ils en profitent à coup sûr. Dans les années 80 et 90, les utilisateurs d'ordinateurs savaient quelle est la différence entre le kilogramme et le kilo-octet et pourquoi. De nos jours, qui sait que les ordinateurs fonctionnent avec de l'arithmétique binaire?
Crowley
4
Il ne s'agit pas de marketing, et ça ne l'a jamais été. Les disques durs et les disquettes ont toujours été vendus en utilisant le vrai préfixe SI, car il n'était jamais judicieux d'utiliser une autre base.
pipe
1
-1, terrible. It's the fault of HDD manufacturers to state the HDD capacities in ^10 system, which robs you of quite some practical GB.Non, aucune de ces choses n'est vraie. Les fabricants de HD sont ceux qui ont toujours bien fait les choses, en utilisant la définition réelle et correcte des unités. Ce n'est pas de leur faute si les développeurs, les fabricants de mémoire et quiconque ont utilisé les unités SI de manière inexacte. Et, bien sûr, dans quelle unité l'espace de stockage est mesuré ne "vous prive pas de Go pratique" ou ne modifie pas la capacité de quelque manière que ce soit.
HopelessN00b
1
@pipe: Une disquette de 720 Ko contenait exactement 1 440 blocs de 512 octets chacun. De même avec d'autres tailles mesurées en Ko. Pour autant que je sache, la signification la plus courante de «Mo» avec les supports de stockage magnétiques était de 1 024 000 octets, ce qui rend une disquette de 1,44 Mo exactement deux fois plus grosse qu'une 720 Ko.
supercat
16

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

1 Go équivaut à 1 000 000 000 octets (puissances de 10) et 1 073 741 824 octets (puissances de 2), alors: il montre moins de capacité de stockage (les puissances de 2). Pourquoi est-ce moins? Si je vois pour 1 Go plus de capacité de stockage en puissances de 2 que de puissances de 10.

Un support de stockage - n'importe quel support de stockage - peut stocker un nombre spécifique de bits accessibles. Habituellement, dans l'informatique à usage général, elle est exprimée en octets ou en plusieurs 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 termes de bits accessibles.

Un disque dur stockera un certain nombre de bits ou d'octets qui, pour des raisons techniques, sont traités en termes de secteurs. Par exemple, un lecteur de 4 To peut avoir 7 814 037 168 secteurs 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 ensuite une partie de cela dans les informations de comptabilité de l'ordinateur: système de fichiers, journal, partitionnement, etc. Cependant, les octets sont toujours là, vous ne pouvez 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 sûr, le nombre 4 000 787 030 016 est quelque peu lourd. Pour cette raison, nous choisissons de représenter ces informations d'une autre manière. Mais comme jcbermu l'a illustré, nous choisissons de le faire de deux manières différentes: en puissance de dix, ou en puissance de deux.

En 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, donc en termes SI, il s'agit d'un périphérique de stockage de 4 téraoctets.

En puissances de deux, 4 000 787 030 016 octets soit 3,638694607 * 2 ^ 40 octets, ce qui ne s'arrondit pas aussi bien. Cela ressemble également à une plus petite quantité, car 3,639 est inférieur à 4,001, ce qui est mauvais pour le marketing (qui veut acheter un lecteur de 3,6 To lorsque le fabricant voisin vend un lecteur de 4,0 To pour le même prix?). Il s'agit du préfixe binaire 3,6 "tebibytes", où le "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; le nombre ne s'exprime que différemment! Si vous refaites le calcul, vous verrez que 3,638694607 * 2 ^ 40 = 4.000787030016 * 10 ^ 12, vous obtenez donc la même capacité de stockage à la fin.

un CVn
la source
1
Bien expliqué, mais le nombre de secteurs (comme 7,8 [...] dans votre exemple) est choisi par les fabricants pour que la capacité se retrouve à la valeur souhaitée. Ils pourraient simplement créer 8 milliards de secteurs, 8589934592 ou tout autre nombre pour aboutir à une véritable valeur de capacité, mais ce n'est pas bon pour les affaires. Étant donné que la différence est techniquement possible, en tant que fabricant, je frapperais un grand marché: un logo TrueCapacity (r) ou TrueSpace (r) et il est garanti que les ventes augmenteraient en raison de cette manœuvre marketing et que les autres fabricants le feraient. doivent suivre (et ne seraient pas préparés à le faire).
Overmind
@Overmind: C'est une technique de marketing possible. Semblable à Aerial Communications qui avait une facturation à la seconde (avant que T-Mobile ne les rachète). Si vous étiez en charge du marketing pour un fabricant de périphériques de stockage, je suppose que cette stratégie pourrait être celle que vous décidez d'envisager de poursuivre.
TOOGAM
J'ai trouvé cette réponse pour me fournir le plus de clarté (peut-être). Donc, il n'y a pas vraiment besoin que ce soit une puissance de 2? La plupart des tailles de support de stockage n'ont rien de spécial étant des puissances de 2?
Abdul
1
@Abdul La plupart des périphériques de stockage (grand public) ont des capacités accessibles à l'utilisateur qui ne sont pas , en termes d'octets (ou par implication également de bits), une puissance de deux. Comme Overmind l'a indiqué ci-dessus, les capacités exactes des disques durs peuvent être largement sélectionnées de manière aléatoire tant qu'elles répondent aux exigences de marquage. Les SSD ont tendance à être plus proches de 2 ^ n, car les puces de mémoire flash sont fabriquées dans des tailles qui sont souvent en puissances entières de deux (car elles ont des lignes d'adresse et d'autres choses qui en font un avantage), mais en raison du surapprovisionnement, toutes les capacités de flash ne sont pas toutes disponibles sera accessible à partir d'un logiciel externe au contrôleur flash intégré.
un CVn du
5

D'autres réponses ont abordé la raison historique de la différence, mais il me semble que vous posez des questions sur la différence selon les mathématiques.

Vous avez raison: une puissance de 10 est supérieure à une puissance de 2 et inversement un gigaoctet (10 ^ 9 octets) est inférieur à un gibioctet (2 ^ 30 octets).

L'inversion des tailles s'explique par le fait qu'il y a plus de pouvoirs dans un gibibyte (30 pouvoirs) qu'il n'y a 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 déclarée d'un disque est plus petite lorsqu'elle est mesurée en gibibytes (2 ^ 30) que lorsqu'elle est mesurée en gigaoctets (10 ^ 9), il est naturel que lors de la mesure d'une quantité fixe qu'une unité de mesure plus grande donne un nombre plus petit . Par exemple, considérez la hauteur en pouces par rapport à la hauteur 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 juste un nombre différent selon l'unité de mesure.

Edward Peek
la source