Les premiers ordinateurs
HCF: Halt & catch Fire!
Historique
Root » Serveurs » Electro-ménager » Historique » Halt & Catch Fire

Mnemonic HCF

Lisez également: le fonctionnement détaillé d'une mémoire à tores de ferrite

Les premiers ordinateurs avaient des instructions (opcodes) d'une longueur d'un mot: le premier demi-mot (nibble) indiquait le type d'opération (additionner, lire, comparer,...), le second demi-mot l'opérande: immédiat, adressage direct, adressage via un régistre, etc. Toutes les combinaisons n'étaient évidemment pas possibles. Ces codes impossibles étaient utilisés pour des fonctions de test lors de la fabrication et l'assemblage. Un code servait par exemple à lire et écrire chaque position en mémoire (qui est une fonction très utile lors du test d'un nouvel ordinateur pour localiser les cours-circuits et les éléments de mémoire déficients). Un des codes servait de repeat, c'est à dire une instruction qui se répète à l'infini.


Tores de ferrite


Les ferrites sont montées sur un cadre


et les cadres sont empilés


Les opcodes recoivent un mnémonique: ADD, MOVE, JUMP, les programmeurs ne doivent plus mémoriser les opcodes mais utilisent les codes mnémoniques. Le listing du programme se compose ainsi d'un tableau avec des instructions et des opérandes.

Les premiers ordinateurs travaillaient avec des "mots" (des instructions ou des données) qui n'avaient pas nécessairement 8 bits comme maintenant (les ordinateurs actuels travaillent avec un multiple de 8 bits). Des mots de 13, 14 ou 16 bits étaient courants dans les premiers ordinateurs, puis on est passé à 22 et 24 bits.

Les ordinateurs actuels ont comme base addressable un byte (ou octet) de 8 bits, mais travaillent par exemple avec 64 bits. Ces 64 bits sont lus en une fois par le processeur, même s'il n'a besoin que d'un seul byte. Chaque ordinateur était fabriqué individuellement, souvent selon les désirs du client et coutait une fortune. Les ordinateurs actuels travaillent avec des mots de 8 bits (un octet) mais utilisent le pipelining: 32, 64 ou 128 bits sont lus en une fois, même si l'ordinateur n'a besoin que de 16 bits. Les bits surnuméraires sont peut-être nécessaires lors d'une opération suivante.

On utilisait des mémoires à ferrite, il s'agit de petites perles de ferrite (appellées tores), un materiau facilement magnétisable. Il y a 4 fils qui passent par chaque ferrite: deux fils de sélection (X et Y, horizontal et vertical), un fil de lecture (Sense) qui passe en diagonale par toutes les tores et un fil d'écriture (Inhibit). Les systèmes plus récents combinent le fil de lecture avec le fil d'écriture.

Pour lire un bit, on envoie un courant de lecture dans les fils X et Y correspondants. La ferrite qui se trouve au croisement reçoit un courant juste assez fort pour faire basculer sa polarisation. Ce basculement peut être détecté par le fil de lecture. Après lecture, il faut remagnétiser la ferrite, car la lecture détruit la magnétisation. La lecture demande donc plus de temps que l'écriture, ce qui n'est pas le cas avec les autres types de mémoire.

Une tore de ferrite = 1 bit. Le cadre à gauche a une capacité de 30 × 30 bits. On enpile les cadres pour obtenir la longueur des mots utilisés dans l'ordinateur (dans notre exemple 13 bits). Op pouvait placer jusqu'à 1000 bits par cm2. L'électronique de commande avait besoin de nettement plus de place. Un grand ordinateur pouvait avoir 600kilobit de mémoire qui se trouvait dans une armoire séparée de la grandeur d'un frigo américain.

Les mémoires à ferrite étaient fabriquées manuellement (on utilisait des couturières qui venaient de perdre leur emploi dans l'industrie manufacturière). Les mémoires à ferrite étaient utilisées jusque dans les années 1970. Le module de commande d'Apollo utilisait un ordinateur de bord avec une mémoire de 4k et 4100 circuits intégrés élémentaires (nor gates). Les tores étaient pratiquement insensibles aux rayons cosmiques.

Les fils étaient particulièrement fins. Le courant de lecture/écriture doit être important, environ 400mA, car le fil ne forme pas une boucle (qui concentre le champ magnétique). En fonctionnement normal, l'énergie est dissipée par tous les fils. Avec l'instruction décrite ci-dessus (self repeat), ce sont continuellement les même fils qui sont utilisés. Ils surchauffent et peuvent fondre (le fil fait moins de 100µm d'épaisseur, autant qu'un cheveu).

Si ce n'était pas le fil qui fondait, c'était le transistor de commande qui grillait. Les premiers ordinateurs utilisaient en effet des transistors au germanium qui ne résiste pas bien à la chaleur. En fonctionnement normal, le transistor a un temps de fonctionnement de moins de 1% du temps total: il peut donc se refroidir. Si le transistor doit continuellement travailler, il grille en quelques secondes. En effet, la puissance instantanée à dissiper est de 2W. Le transistor peut dissiper 2W pendant 1µs s'il peut se reposer pendant les 999µs suivantes.

Cette instruction mortelle a reçu le mnémonique HFC: Halt & Catch Fire (lien vers Wikipedia anglais). Dès que l'ordinateur était mis en production, on éliminait cette instruction mortelle...


On se rend mieux compte de l'évolution des techniques quand on compare une mémoire à ferrite (ce qui se faisait de mieux dans les années 1950) avec une carte de mémoire moderne pour smartphone au format micro-SD. Une carte micro-SD a une dimension de 5.0 × 11.0 × 1.0 mm et a une capacité qui peut dépasser 32GB.

La mémoire à tores de ferrites peut stocker 8 bytes (8 rangées de 8 tores), tandis que la carte micro-SD peut stocker 8GB, donc non pas mille fois plus, ni un million de fois plus, mais un milliard de fois plus de données.

Des mémoires à tores de ferrite et d'autres types de mémoire sont visible au Musée des hauts Fourneaux à Ijmuiden (aux Pays Bas, au bord de mer près de Rotterdam) et au musée de l'informatique pionière à Namur.

Links to relevant pages - Liens vers d'autres pages au contenu similaire - Links naar gelijkaardige pagina's