Il y a une bonne raison pour que la RAM existe dans des tailles qui sont des puissances de deux, en raison de la façon dont elle est fabriquée et de la façon dont elle est traitée. (Elle est adressée par des nombres binaires qui apparaissent sur un bus qui sort de l'unité centrale, et tous les modules de RAM sont connectés à tous les bits du bus.
Disons que vous avez 4 Go de RAM dans un module. Les adresses vont de 0 à FFFFFFFF hex (soit 32 1 à la suite). Si vous ajoutez un autre module de 4 Go, cela double bien sûr la quantité dont vous disposez. Comme chaque chiffre binaire représente une multiplication par 2 (tout comme chaque chiffre décimal représente une multiplication par 10), l'adresse maximale est maintenant simplement 1FFFFFFFF. Votre contrôleur de mémoire pourrait gérer cela en envoyant les adresses 0 à FFFFFFFF au premier module, et 100000000 à 1FFFFFFFF au second module. (En fait, ce n'est pas aussi simple, mais c'est l'idée.) Cela fonctionne de la même manière dans les modules de RAM, car les puces ont une capacité de plus en plus grande. Il est très pratique que toute la RAM du système puisse être facilement combinée en un seul bloc contigu d'adresses, et cela est plus facile au niveau matériel si les modules sont dimensionnés par puissances de deux.
Il n'y a pas de raison correspondante pour qu'un disque dur ait un nombre de secteurs lié à une puissance de 2. Le nombre de surfaces enregistrables, le nombre de secteurs par piste et le nombre de pistes par surface ne sont pas fondés sur une base binaire ; il s'agit simplement de "ce qui convient". (Dans les disques durs modernes, le nombre de secteurs par piste n'est même pas le même entre les pistes les plus extérieures et les plus intérieures.
Le disque dur n'a donc aucune raison interne de se décliner en puissances de 1024. Quant à l'adressage sur plusieurs disques, en raison du fonctionnement des volumes et des systèmes de fichiers, il n'est tout simplement pas nécessaire d'agréger tout le stockage sur disque d'un système en une matrice de blocs avec un ensemble contigu d'adresses de blocs. Et même si cela était souhaitable, le logiciel de la pile de pilotes de stockage du système d'exploitation n'aurait aucun mal à garder la trace des "blocs 0 à 3906259999 sont sur le lecteur 0, 3906260000 jusqu'à n'importe quoi sont sur le lecteur 1", etc. En fait, il existe de nombreux systèmes logiciels de stockage qui font cela maintenant (à la fois les disques dynamiques et les espaces de stockage dans Windows, par exemple), pour faire un seul "volume" à partir d'une collection de lecteurs de disque avec des tailles arbitraires.
Avant d'expliquer le dimensionnement de la mémoire flash, nous devons nous assurer que nous sommes clairs sur un autre détail concernant le dimensionnement de la RAM et des disques durs :
Vous savez probablement que les tailles de RAM ont presque toujours été indiquées en utilisant des "préfixes binaires", ce qui signifie que, par exemple, "4 Go de RAM" signifie 4 fois 2 à la 30e - ou, plus commodément, 4 fois 1024 à la 3e puissance, c'est-à-dire 4 x 1024 x 1024 x 1024 = 4 294 967 296. Mais lorsque vous achetez un disque dur, le "GB" signifie 1 000 000 000 d'octets.
À propos, il ne s'agit pas d'un changement récent de la part des fabricants de disques durs pour essayer de nous vendre moins de capacité à un coût plus élevé. Les disques durs ont TOUJOURS été cités de cette manière ; les disques durs utilisaient des "mégaoctets décimaux" avant même que la RAM ne soit dimensionnée en mégaoctets, et il en va de même pour les giga et tera. Le tout premier disque dur, le RAMAC 350 d'IBM, avait une capacité de 5 000 000 de caractères, stockés sur un disque dur. cinquante plateaux. Tu vois, c'est difficile d'avoir des puissances de deux pures quand tu as des facteurs premiers comme "5" dans le mélange. Mais ceci mis à part...
Le joker de ce jeu est constitué par les lecteurs à semi-conducteurs, y compris des choses comme les "clés" USB, les cartes SD, etc. : oui, le "nombre avant l'unité" est souvent une petite puissance de deux, comme 64. Mais le "G" signifie 1.000.000.000, comme sur un disque dur.
Si vous ne le croyez pas, branchez-en un dans votre ordinateur et demandez-lui de vous dire combien d'octets se trouvent sur le disque, sans préfixe. Si votre clé USB de "64 Go" était réellement constituée de 64 gigaoctets binaires, le nombre serait de 68 719 476 736 (et Windows l'afficherait comme "64 Go"). Mais les petits caractères du fabricant diront "1 Go = 1 milliard d'octets" ou quelque chose du genre, de sorte qu'il ne s'agit en réalité que de 64 000 000 000 garantis, et Windows dira qu'il s'agit de 59,6 Go (parce que Windows utilise des préfixes binaires pour les disques durs, même s'il ne devrait pas le faire). Mais, en réalité, les 59,6 Go sont corrects si vous vous souvenez que "G" signifie 1024 cubes, soit 1 073 741 824.
Maintenant, la chose étrange : où est la capacité supplémentaire ? Vous voyez, les puces flash RAM à l'intérieur des clés USB et des périphériques mSATA se présentent toutes en "tailles binaires". Ainsi, dans une clé USB de "64 Go", il y a probablement "64 Go" (gigaoctets binaires) de RAM flash réelle. Mais vous ne pouvez utiliser que 64 000 000 000 d'octets. Où est le reste ? La mémoire flash a besoin de beaucoup d'espace libre pour fonctionner. La clé USB de "64 Go" utilise la différence entre 68 719 476 736 et 64 000 000 000 comme espace libre.
Oui, les lecteurs flash récents, en particulier les substituts HD, apparaissent dans des tailles similaires à celles des disques durs. J'imagine qu'elles utilisent le surplus pour avoir plus d'espace libre, ce qui augmente leur durée de vie. Par exemple, la clé USB "120 Go" fournit 120 000 000 000 d'octets à l'utilisateur, mais la capacité des puces est probablement de 137 438 953 472 octets. C'est beaucoup plus d'espace libre que si le lecteur offrait 128 millions d'octets à l'utilisateur.