Musée de l'informatique pionière
Mumerical Atrefacts Museum
NAM II

Historique de l'informatique

-

-

Page précédente...

Stockage temporaire des données: la mémoire vive

Un problème va rapidement apparaitre et sera difficile à résoudre: c'est le stockage momentané des donnes et des instructions pendant l'exécution du programme. Les données qui ne sont nécessaires qu'une fois sont stockées sur cartes ou sur rubans perforés, mais les résultats intermédiaires doivent pouvoir être gardés en mémoire pendant toute la durée du programme.

Les ordinateurs se démocratisent après la guerre (si on peut dire...). Utiliser un tube pour stocker un bit devient rapidement trop onéreux: le stockage d'un nombre nécessite au moins 10 bits (et souvent plus), et un ordinateur doit avoir environ 5000 positions en mémoire (équivalent actuel d'une position en mémoire = byte). Chaque position en mémoire pouvant être utilisée pour stocker un nombre ou une opération. Mais ces 5000 positions en mémoire nécessitent au moins 50.000 tubes. Or aucun ordinateur n'a été réalisé avec un tel nombre de tubes.

Les informaticiens avaient déterminé à cette époque qu'un ordinateur devait avoir une mémoire vive d'environ 5000 mots pour pouvoir effectuer différents programmes utiles (une partie de la mémoire était réservée pour le programme de controle, à cette époque très rudimentaire). C'est ainsi que les premiers micro ordinateurs avaient également une mémoire de 4kB.

La fiabilité limitée des tubes permet l'utilisation d'un ordinateur dans une université, mais pas pour des applications de comptabilité, or c'est là l'avenir des ordinateurs. Il faut donc trouver une solution pour stocker momentanément des données.

Tube de Williams-Kilburn

Les recherches ont été dans tous les sens, par exemple le stockage de données sous forme de charge électrique dan un type de tube cathodique particulier, le tube de Williams-Kilburn. Les données sont écrites par le rayon cathodique, comme avec un écran de télévision ou oscilloscope. Quand le rayon est envoyé vers un point donné, une petite charge électrique se forme à cet endroit. La présence ou non d'une donnée est lue par le même rayon, qui mesure le changement de la charge électrique. Pour effacer une donnée, on enregistre un point à coté de la position du point, et la charge de ce point efface la donnée d'origine.

Le tube de Williams-Kilburn ressemble très fortement à un oscilloscope (et les données sont vraiment visibles sous forme de points lumineux). La lecture se fait par une plaque apposée sur la face avant de l'oscilloscope (qui n'a donc plus d'écran visible).

Les charges ayant tendance à se perdre, l'information à chaque point doit être raffraichie en lisant la position, en amplifiant le signal et en écrivant à nouveau la donnée au même endroit. La lecture d'une position conduit à l"effacement de la donnée. Les mémoires DRAM qui utilisent également le stockage d'une donnée dans un minuscule condensateur doivent aussi être raffraichies sous peine de perdre leurs données (fonction refresh).

Chaque tube de Williams-Kilburn pouvait stocker près d'un millier de bits élémentaires. L'accès aux données était très rapide car totalement électronique. Le tube de Williams-Kilburn était par contre très peu stable dans le temps et nécessitait de fréquents réglages et n'a pas été utilisé pour des applications commerciales.

Il n'y a pas de tube de Williams-Kilburn au musée, me semble-t-il.

Mémoire à ligne de retard

Les premières lignes à retard étaient des tubes rempli de mercure. Les bits étaient envoyés d'un coté et récoltés de l'autre: chaque coté avait un cristal piezo-électrique pour transformer le signal électrique en signal mécanique et inversément. Les données sont donc enmagasinnées pendant le temps de transit des données. Après amplification, le signal numérique est à nouveau injecté dans le tube. Les données sont ainsi en mouvement perpétuel. Les lignes à retard à bain de mercure étaient chères, complexes, dangereuses et n'ont pas été utilisées à grande échelle.

Quand l'ordinateur a besoin d'une donnée, il faut attendre qu'elle se présente à la sortie de la ligne de retard, elle est ensuite dirigée vers le circuit correspondant.

Puis on est passé aux lignes à retard qui se composent d'un long fil enroulé. Quand une impulsion mécanique est envoyée d'un coté, elle se propage dans le fil jusqu'à son extrémité (magnétostriction). De chaque coté il y a un électro-aimant qui donne une torsion au cable ou qui mesure l'onde de torsion à l'autre extrémité. La valeur précise du retard est déterminée par la longueur du fil, qui peut être modifié (par vis sans fin qui détermine la position de fin de ligne).

Ce type de mémoire était fiable, bon marché, mais relativement lent. Une capacité de 1kbit était dispobible sur une surface d'environ 10cm sur 10cm. Le temps d'accès était par contre de 500µs. Le musée dispose d'une mémoire à ligne de retard, de Bull.

Chez Bull les lignes à retard étaient utilisées pour faire "patienter" les données en attente d'être imprimées. Une ligne à retard pouvait stocker une ligne de texte à imprimer.

7: mémoire à tambour
7b: un ensemble de têtes

Mémoire magnétique à tambour

Simultanément avec les mémoires à ligne de retard se sont développées les mémoires à tambour. Il s'agit d'un tambour recouvert d'une couche magnétique et les informations sont stockées sous forme de pistes magnétiques. Le tambour a plusieurs centaines de pistes, chaque piste disposant de sa tête propre.

Ici aussi il faut attendre que l'information passe sous la tête magnétique pour pouvoir être lue, mais le temps de latence est assez important: de l'ordre de 20ms. Les programmeurs codent leur programme de telle façon que les données à lire se trouvent au bon endroit pour être accédées quand l'opération a besoin des données.

Le temps de latence est déterminé par la vitesse de rotation du tambour, qui devient de plus en plus élevée: 3600 tours pour les premiers modèles jusqu'à plus de 10.000 tours pour les modèles les plus rapides. La mémoire a tambour continuera à être utilisée dans les années 1970 (PDP 11, qui est un ordinateur "bon marché").

Un ordinateur qui utilise une mémoire à tambour utilise le même principe que la ligne à retard (attente que les données "ont fait le tour"), mais la mémoire à tambour dispose en plus d'une piste de synchronisation, contenant uniquement le signal d'horloge de tout l'ordinateur. L'ordinateur était synchronisé non pas par un circuit électronique, mais par la vitesse de rotation du tambour. Grâce à la piste de synchronisation, les ordinateurs utilisant une mémoire à tambour étaient très fiables.

Le musée dispose d'une unité de mémoire à tambour de la première génération, extrèmement chère (250 millions de francs!). La photo suivante montre un assemblage de têtes du tambour: il y en a 16 en tout. Chaque assemblage comporte une vingtaine des têtes effectives et des têtes de réserve (les petites lignes verticales). L'entrefer (la partie où se fait la lecture ou l'écriture) est la ligne horizontale (qui fait en pratique un dixième de millimètre d'épaisseur).

Le positionnement de chaque assemblage était particulièrement critique, il ne fallait pas que le signal d'une tête n'efface le signal de la piste voisine. La distance par rapport au tambour était également critique: pour éviter l'usure, les têtes étaient positionnées à 0.25mm de la surface. C'était juste suffisant pour capter le signal de la surface magnétique.

La mémoire à tambour sera utilisée plus tard comme extension de la mémoire centrale (à tores de ferrite) et se retrouvera sous Unix: /dev/drum/ indiquant la mémoire virtuelle. La mémoire virtuelle est la mémoire qu'un programme peut adresser. Elle est généralement plus grande que la mémoire physique (en tores de ferrite). Les données qui ne sont pas directement nécessaires sont déplacées vers la mémoire à tambour (swap). Ces opérations de transfert sont effectuées automatiquement. La mémoire virtuelle est utilisée par tous les systèmes d'exploitation.

Halt and Catch Fire ou comment transformer votre ordinateur de 35 millions de francs en brique

Mémoire à tores de ferrite

Puis est venu la mémoire à tores de ferrite. Il s'agit d'une mémoire purement électronique qui est pratiquement aussi rapide que l'unité centrale. La mémoire à tores de ferrite se compose d'un grillage avec à chaque croisement un tore qui peut être magnétisé dans un sens ou l'autre. Le grillage est monté sur un cadre qui a deux dimensions (X et Y). Chaque tore (ou bit d'information) peut être accédé par sa position dans le cadre.

On utilise ici un des phénomènes magnétiques bien connus: la rémanence magnétique, la coercitivité et l'hystérésis: un aimant qui est magnétisé garde son magnétisme (rémanence) et il faut une force magnétique contraire suffisante (l'hystérésis) pour le faire changer de polarité (la coercivité). Une explication du fonctionnement de la mémoire à tores de ferrite est donné ici (à lire uniquement si vous êtes du genre nerd).

Pourquoi utiliser une mémoire à tores de ferrite, alors qu'on aurait pu la réaliser plus simplement avec des tubes (et plus tard avec des transistors)? Revenons-en à notre mémoire de 5000 caractères qui nécessiteraient 50.000 tubes (ou 100.000 transistors). Cette mémoire nécessiterait une alimentation de 100kW (tubes) ou 1.5kW (transistors), mais surtout un nombre impressionnant de transistors individuels.

Quand on veut doubler la capacité, il faut également doubler de nombre de transistors. Si on utilise une mémoire à tores de ferrite, il faut un circuit pour lire et écrire, mais sa complexité augemnte comme la racine de 2. Quand on passe de 5000 caractères à 10.000 caractères, le nombre de transistors pour la commande passe de 750 transistors à 1000 transistors, ce qui reste acceptable.

La mémoire à tores de ferrite permet un fonctionnement très rapide pour l"époque (temps d'accès réduit à 1µs pour les modèles les plus perfectionnés) et correspond parfaitement à l'agencement de l'unité centrale qui travaille avec des mots de Z bits. La mémoire est permanente en inusable car statique. Elle sera utilisée dans les applications critiques même quand on disposera de mémoire à semi-conducteurs plus compacte (mais non-permanente). Le calculateur dans le module lunaire utilisait une mémoire à tores de ferrite. Les automates programmables industriels (API ou PLC en anglais) continuerent à utiliser des tores de ferrite jusque bien dans les années 1970.

Une fois que les circuits intégrés sont apparus, on a cherché à remplacer la mémoire magnétique par un circuit intégré. Les premiers circuits intégrés avaient une mémoire de 1kbit et remplacaient donc 2000 transistors. Au lieu de nécessiter 100.000 transistors, une mémoire de 5000 caractères ne nécessite plus que 50 circuits intégrés.

La suite ...

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