-
Partager cette page
Module de mémoire primaire à tores de ferrite
Collection informatique
Fig. 1 : Module de mémoire primaire à tores de ferrite, provenant d’un ordinateur non-identifié, datant très probablement des années 1960
Fig. 2 : Tores de ferrite
Fig. 3 : Gros plan des tores de ferrite
Fig. 4 : La célèbre photo de Margaret Hamilton se tenant à côté du listing du programme qu’elle a écrit
Module de mémoire primaire à tores de ferrite, provenant d’un ordinateur non-identifié, datant très probablement des années 1960 (fig. 1)
Tentons d’élucider ces termes. Pour commencer, il faut rappeler ce qu’est un ordinateur, et quel est son principe de fonctionnement général, principe qui n’a guère varié depuis les débuts de l’informatique. Un ordinateur est une machine qui traite de l’information, et il a la particularité d’être programmable. Cela signifie que le traitement qu’il applique à l’information n’est pas fixé a priori, mais peut être modifié à l’envi par son utilisateur, à l’aide d’un programme, lequel est une suite d’instructions que l’ordinateur exécute pour réaliser le traitement souhaité [1]. Nous sommes aujourd’hui bien familiers avec le fait de pouvoir modifier les programmes que nos ordinateurs exécutent, même si nous n’entendons rien à la programmation : en faisant une mise à jour (ah ! ces mises à jour !) ou en installant une nouvelle « app » sur notre téléphone, nous ne faisons rien d’autre que de modifier un ou plusieurs programmes... pour le meilleur… ou pour le pire !
Pour exécuter un programme, l’ordinateur possède deux composants essentiels : le processeur (aussi appelé unité centrale ou CPU, selon un acronyme anglais) et la mémoire primaire (aussi appelée mémoire vive ou mémoire RAM, selon un autre acronyme tout aussi anglais). Le processeur a la tâche d’exécuter le programme, inlassablement, instruction par instruction, tandis que la mémoire primaire mémorise (comme son nom l’indique) ce dont le processeur a besoin pour s’acquitter de sa tâche, à savoir les donnée manipulées par le programme et le programme lui-même [2]. Enfin, le duo processeur-mémoire primaire est entouré d’une série de périphériques, qui rendent tout ce travail utile pour l’utilisateur : il s’agit par exemple de l’écran, du clavier, de la souris ou encore d’une autre sorte de mémoire, la mémoire secondaire (autrement dit, le disque dur, le SSD…) Cette dernière stocke les informations à long terme.
Par exemple, si nous lançons notre traitement de texte favori en cliquant sur l’icône qui lui correspond, l’ordinateur commencera par copier les instructions du programme « traitement de texte » depuis la mémoire secondaire vers la mémoire primaire. À partir de cette mémoire primaire, le processeur peut exécuter le traitement de texte, qui s’affiche alors à l’écran. Le texte introduit au clavier, par exemple, est stocké dans la mémoire primaire, jusqu’au moment où l’on ferme le programme et que l’on « sauvegarde » alors le fruit de notre travail dans un « fichier » sur la mémoire secondaire.
On voit donc que la mémoire primaire est essentielle pour assurer le bon fonctionnement d’un ordinateur. Elle doit permettre de stocker de l’information de manière fiable, d’y accéder de manière rapide et de la modifier. Sous quelle forme cette information y est-elle stockée ? Nous savons toutes et tous que les ordinateurs traitent l’information sous forme de 0 et de 1 et, en effet, toute information manipulée par l’ordinateur, quelle que soit sa forme (chiffres, texte, images, vidéos,… y compris les instructions du programme à exécuter) peut être représentée à l’aide de deux symboles différents, qu’on note usuellement 0 et 1. On parle dès lors d’information binaire : un chiffre d’une représentation (0 ou 1) est appelé chiffre binaire ou bit (contraction de l’anglais binary digit). On a pour habitude de mesurer la quantité d’information en groupant ces chiffres binaires par paquets de 8 ; on parle alors d’octet ou de byte en anglais. Et on peut ensuite appliquer les préfixes usuels kilo-, méga-, giga-… Ainsi, un kilooctet (ko) représente mille octets (8000 bits), un mégaoctet (Mo) correspond à un million d’octets (8 000 000 de bits), un gigaoctet (Go) équivaut à un milliard d’octets (8 000 000 000 de bits), etc.
Si les techniques nécessaires pour réaliser un processeur sont apparues assez rapidement dès les débuts de l’informatique (à l’aide de tubes à vide), la mise en pratique du concept de mémoire primaire s’est avérée plus compliquée et de nombreuses techniques ont été tentées (comme les tubes de Maxwell ou les mémoires à ligne de délai…). La technique qui a fini par s’imposer avant l’invention du transistor était celle qui est mise en œuvre dans notre objet du mois : celle des tores magnétiques. Comme on peut le voir sur les fig. 2 et 3, notre mémoire est essentiellement composée d’une myriade d’anneaux (appelés tores), absolument minuscules (environ un millimètre de diamètre) et composés de ferrite. La ferrite est une sorte de céramique fabriquée à base d’oxyde de fer, dotée de propriétés électromagnétiques remarquables qui en font un matériau fort utilisé en électronique : on s’en sert pour les aimants des haut-parleurs, des pièces de micro-ondes… Avez-vous déjà remarqué cette protubérance qu’on trouve souvent à l’extrémité des câbles issus des petits transformateurs qu’on utilise pour alimenter la plupart des ordinateurs portables ? C’est également de la ferrite.
Dans le cas de notre mémoire, chaque tore de ferrite peut être magnétisé selon deux directions différentes et on associe de manière conventionnelle ces deux directions aux symboles 0 et 1. Autrement dit, chaque tore a la capacité de stocker un bit d’information, que l’on peut modifier et consulter. Dans le cas de notre objet du mois, il y a environ mille six cents tores sur le composant ; on a donc affaire à une mémoire de deux cents octets. Pour mettre cela en perspective, cela fait : 0,2 ko ou 0,0002 Mo ou encore 0,0000002 Go… à comparer avec la mémoire de votre ordinateur dont la capacité se compte certainement en Go et qui tient sur la surface de l’ongle d’un pouce…
Les photos de notre objet du mois montrent, en plus des tores, une forêt de câbles de couleur, extrêmement fins. Ceux-ci traversent les tores selon un « tissage » bien choisi. En effet, les tores sont disposés selon un motif de grille et chacun d’entre eux est traversé par trois câbles. Les deux premiers (appelés x/y) sont uniques à la colonne et à la ligne que chaque tore occupe et permettent donc en quelque sorte d’activer un tore en particulier. Le troisième, traverse tous les tores et permet la lecture et l’écriture.
Pour l’écriture, on fait circuler un courant d’une intensité bien choisie sur la paire de câbles x/y qui traversent le tore qu’on veut modifier. Seul le tore à l’intersection de ces deux câbles recevra suffisamment de courant que pour permettre de modifier son champ magnétique, c’est-à-dire l’information 0 ou 1 qu’il contient. La direction du courant, dans un sens ou dans l’autre, permet d’écrire soit un 0 soit un 1.
La lecture est un peu plus complexe : elle consiste en réalité à écrire un 0 dans le tore à l’aide des câbles x/y. Il y a alors deux possibilités. Soit le tore contenait un 1 et cela sera détecté sous la forme d’une pulsation sur le troisième câble. Le 1 a donc a été transformé en 0, mais il a été lu et on a la possibilité de le ré-écrire afin de ne pas perdre cette information. L’autre possibilité est que le tore contenait déjà un 0, ce qui sera détecté par l’absence de pulsation sur le troisième câble et le tore n’est donc pas modifié.
Notons enfin que les tores de ferrite étaient aussi utilisés pour réaliser des mémoires dites mortes, c’est-à-dire qui ne pouvaient pas être modifiées. Dans ce cas, les ouvrières (car c’était en général des femmes) en charge de réaliser la mémoire avaient pour tâche de la « tisser ». Elles faisaient passer les câbles dans les tores en faisant une boucle dans un sens ou dans l’autre (pour représenter un 0 ou un 1), à l’aide d’une aiguille… Cette technique donnait des mémoires très fiables, raison pour laquelle elle a été choisie pour stocker le programme de contrôle des ordinateurs embarqués dans les vaisseaux spatiaux du programme Apollo… Nous connaissons bien aujourd’hui la célèbre photo de Margaret Hamilton se tenant à côté du listing du programme qu’elle a écrit (voir fig. 4)… Ce programme était destinée à être « tissé » dans des tores de ferrite !
Terminons cette petite présentation par une anecdote amusante : pour fonctionner de manière optimale, les mémoires à tores de ferrite avaient besoin d’une température d’environ 41 °C. La mise en marche d’ordinateurs utilisant cette technique (comme l’IBM 1620 qui fait partie de la Collection Informatique) commençait donc en général par une phase de « chauffage » (qui pouvait durer une bonne demi-heure) ! Voilà qui semble bien extraordinaire aujourd’hui, alors que tout est mis en œuvre, au contraire, pour réduire la température de fonctionnement de nos ordinateurs !
Absolument indispensable au bon fonctionnement de l’informatique durant deux décennies, les mémoires à tores de ferrite sont devenues obsolètes à la toute fin des années 60 par les développements du transistor et ont totalement disparu du paysage aujourd’hui !
Pour aller plus loin : nous recommandons vivement le visionnage de la vidéo « Core memory explained and demonstrated » sur la chaîne YouTube « CuriousMarc », à l’adresse : https://www.youtube.com/watch?v=AwsInQLmjXc.
[1] Du moins, l’espère-t-on... nous n’entrerons pas ici dans la vaste question qui consiste à s’assurer que les programmes sont corrects, c’est-à-dire sans « bug ».
[2] Cette vision de l’ordinateur centrée autour du processeur et de la mémoire primaire est un modèle appelé architecture de Von Neumann, car il a été théorisé par le mathématicien américano-hongrois du même nom (Budapest 1903 – Washington 1957).
Gilles Geeraerts
Responsable de la Collection informatique