Aller au contenu

Fonctionnement d'un ordinateur/Les ordinateurs de première génération : tubes à vide et mémoires

Un livre de Wikilivres.

Dans les années 50-60, les transistors n'existaient pas. Mais cela n'a pas empêché l'informatique d'exister. A la place, les ordinateurs de l'époque utilisaient des technologies aujourd'hui abandonnées, comme les tubes à vide. Les tubes à vides étaient en quelque sorte l'ancêtre des transistors. Ils fonctionnaient eux aussi comme des interrupteurs commandées par une tension, ou encore comme des amplificateurs rudimentaires.

Tubes à vides.

Les tubes à vides étaient utilisés pour le processeur et quelques circuits annexes, mais les mémoires utilisaient d'autres technologies. Les mémoires étaient totalement différentes d'aujourd'hui. Il n'y avait pas de mémoire ROM, de mémoire RAM, ou quoique ce soit d'autres. Pour tout dire, les mémoires de l'époque n'étaient même pas des mémoires électroniques ! Il existait déjà des ancêtres des disques durs, à savoir des mémoires magnétiques appelées tambours magnétiques, bandes magnétiques, mémoires à tore de ferrite, etc. Les mémoires RAM, quant à elles, utilisaient des technologies totalement abandonnées : les mémoires à lignes de délai étaient des mémoires acoustiques, les tubes Williams étaient des écrans CRT modifiés, etc. Un chapitre entier sera dédié aux technologies des mémoires de l'époque.

Ce chapitre se propose de décrire les tubes à vides et les mémoires de l'époque. Les tubes à vide et les mémoires de l'époque sont aujourd'hui obsolètes et la plupart ne sont même plus produites du tout. On peut encore en trouver dans des musées, mais leur utilisation réelle est réduite à peau de chagrin. Aussi, nous allons décrire les technologies de l'époque dans ce chapitre, séparé des autres.

Les tubes à vide

[modifier | modifier le wikicode]
Diode avec un tube à vide.

Les tubes à vide sont les ancêtres des transistors. Ils fonctionnent eux aussi comme des interrupteurs commandés en tension, ou comme amplificateur. Mais les comparaisons s'arrêtent là. Les tubes à vides n'étaient pas conçu avec des semi-conducteurs, au contraire. Les tubes à vide étaient en réalité des ampoules à filament améliorées. Pour rappel, les ampoules à filament étaient des ampoules en verre dans lesquelles on plaçait un filament métallique. Le filament chauffait quand on envoyait du courant dedans et émettait de la lumière.

Dans les tubes à vides, le filament n'émet pas de lumière quand on le chauffe : il émet des électrons, de l'électricité. De plus, on ajoute une plaque métalliques appelée l'anode, qui capte des électrons émis par le filament. Le résultat est un circuit qui laisse passer le courant, mais seulement dans un sens : du filament vers l'anode, l'autre sens n'est pas possible vu que l'anode ne peut pas émettre d'électrons. Un tel circuit est appelé une diode.

Triode.

Les tubes à vide précédents peuvent être modifiés en ajoutant une grille métallique entre la cathode et l'anode. La grille est alimentée avec une tension électrique, ce qui la charge électriquement. Suivant sa charge, elle laisse plus ou moins passer les électrons de la cathode vers l'anode. Si elle n'est pas chargée, que la tension est de 0 volt, elle ne fera pas obstacle aux électrons et le tube à vide fonctionnera comme une diode basique. Mais si la grille est chargée avec une tension négative, sa charge électrique va repousser les électrons et les empêcher de passer de la cathode vers l'anode.

Le tube à vide se comporte alors comme un interrupteur : fermé ou ouvert suivant ce qu'on met sur la grille. Un tel tube à vide est appelée une triode, car c'est une diode à laquelle on a ajouté une entrée pour charger la grille. De tels interrupteurs commandables électriquement sont combinés pour fabriquer des circuits plus élaborés, comme les portes logiques qu'on verra d'ici quelques chapitres.

Au vu de ce qu'on vient de dire, on peut facilement deviner que les tubes à vide avaient beaucoup de défauts. Ils étaient assez encombrants, dans le sens où une ampoule prend beaucoup de place. Et il est difficile de miniaturiser une ampoule, personne n'imagine une ampoule de quelques microns de côté, alors que les transistors actuels sont plus petits que ça. De plus, ils consommaient beaucoup de courant et chauffaient. Faire chauffer un filament demande un courant important et une bonne partie de ce courant part en chaleur. De plus, ils étaient assez peu fiables et tombaient en panne assez souvent. Et s'ils étaient assez simples à fabriquer, ils restaient malgré tout chers. Pas étonnant donc qu'ils ait laissé la place aux transistors à semi-conducteurs.

Les cartes et rubans perforés

[modifier | modifier le wikicode]

Les toutes premières mémoires informatiques étaient des mémoires mécaniques. Les mémoires mécaniques les plus connues étaient basées sur du papier : je veux parler des cartes et rubans perforés. Il s'agit de cartes ou de rubans de papier, parfois de carton ou de plastiques. Les données sont stockées sous la forme de trous dans le ruban ou la carte : un trou code un 1, tandis que l'absence d'un trou code un 0.

Carte perforée.

Les tambours magnétiques

[modifier | modifier le wikicode]
ERA Magnetic Drum, US, c. 1951 - Computer History Museum - Mountain View, California

Les tambours magnétiques sont les ancêtres du disque durs, les deux ayant un fonctionnement assez similaire. La différence principale est que les plateaux sont remplacés par un tube cylindrique, dont la surface est couverte d'un matériau magnétique. L'organisation en pistes est toujours présente, chaque piste étant une ligne horizontale sur le tube central. Par contre, il n'y a pas de tête de lecture/écriture qui se déplace de piste en piste. Les têtes de lecture/écriture sont immobiles, mais il y en a une par piste pour compenser. Le temps de latence d'un tel disque dépend donc uniquement de la vitesse de rotation et de la densité surfacique.

Les tambours magnétiques avaient une méthode d'adressage différente selon qu'ils étaient utilisées comme mémoire de masse ou primaire. Les tambours utilisées comme mémoire primaire avaient une adresse par mot mémoire, alors que celles utilisées comme mémoire de masse avaient une adresse par secteur ou par piste. La méthode d'adressage variait suivant le tambour.

  • Sur certains tambours, chaque piste avait sa propre adresse mémoire. Les pistes étaient de taille variable suivant la marque du tambour magnétique utilisé, mais chacune avait sa propre adresse.
  • Sur d'autres, chaque piste était découpée en secteurs de taille fixe, comme sur les disques durs, et chaque secteur était adressé en précisant le numéro de piste et un numéro de secteur (similaire à l'adressage CHS des disques durs, en enlevant les plateaux).
  • Sur d'autres, les secteurs avaient une taille variable, l'adressage se faisait en indiquant le numéro de la piste et la position du secteur dans la piste.
  • D'autres mémoires utilisaient des systèmes d'adressages différents.

Fait surprenant, les tambours magnétiques étaient utilisés comme mémoire primaire, c'est à dire qu'elles avaient la même fonction que la mémoire RAM des PC actuels, malgré leur caractère non-volatile ! Les tambours magnétiques étaient aussi utilisées comme mémoire de masse, mais c'était une utilisation moins fréquente.

Les mémoires à tore de ferrite

[modifier | modifier le wikicode]

Les premières mémoires de masse magnétiques sont sans conteste les mémoires à tores de ferrites. Ce sont des mémoires magnétiques, un peu comme les disques durs, même si les différences sont nombreuses. Elles sont donc naturellement non-volatiles. Elles sont formées d'une matrice de tores fabriqués dans un matériau magnétique (ferromagnétique pour être précis), le plus souvent de la ferrite. Ces tores peuvent être magnétisés dans deux sens différents, ce qui leur permet de coder un bit.

Mémoire à tores de ferrite réelle (avec les fils).

Le fonctionnement d'une mémoire à tore de ferrite

[modifier | modifier le wikicode]

L'ensemble formait une sorte de tableau où chaque tore a deux positions : une position X et une autre position Y. Deux fils servent pour l'adressage : le fil Y traverse tous les tores d'une ligne, alors que le fil X traverse tous les tores placés sur la même colonne. Quand une tension est envoyée sur un fil Y et un fil X, le tore à l'intersection des deux fils est activé : il peut alors être lu ou écrit. Plus précisément, chaque fil est parcouru par une tension légèrement supérieure à la moitié de la tension nécessaire pour aimanter le tore : ainsi, la somme des deux tensions est supérieure à la tension d'aimantation, mais seulement à l'intersection des deux fils, sur le tore à aimanter. Selon la tension envoyée (plus précisément, son signe), le tore sera mis à 0 ou à 1.

Schéma de la matrice de tores (avec les fils).

Pour lire ou écrire un bit dans un tore (en changer l'aimantation), il faut que celui-ci soit soumis à un champ magnétique supérieur à une valeur déterminée. pour cela, chaque tore est parcouru par quatre fils : le fil X et Y servent pour l'adressage, comme dit plus haut, un fil S (Sense) pour les lectures, et un fil Z pour les écritures. En faisant passer un courant ou une tension dans ces fils, un champ magnétique se forme autour d'eux, ce qui agit sur les tores de ferrites ce qui permet de les aimanter (écriture) ou de lire leur contenu.

Un tore de ferrite.

La lecture s'effectue via le fil nommé Sense. Toute lecture est destructrice : le bit stocké dans le tore est effacé après chaque lecture. En effet, chaque lecture commence par mettre à zéro le bit à lire. Cette mise à zéro va ou non, faire changer le champ magnétique dans le fil Sense, entrainant l'apparition d'un courant et d'une tension. Suite à cette mise à zéro, la mémoire regarde ce qui se passe sur ce fil. Si le bit était déjà à zéro avant la lecture, aucun champ magnétique ne sera créé : il ne se passe rien sur le fil Sense. Mais si ce bit était à 1, le tore va changer de polarité, entrainant l'apparition d'une tension sur ce fil, durant un temps très bref (le temps de changement de polarité du tore). La lecture s'effectue donc via le fil Sense, suivant ce qui s'y passe lors d'une mise à zéro d'un bit.

L'écriture s'effectue d'une manière différente, quoique similaire, en utilisant le fil Z. Lors d'une écriture d'un tore, les fils X et Y qui correspondent sont alimentés en tension, de telle manière qu'un 1 soit écrit dans le tore. Pour écrire un 1, cela suffit largement. Mais pour écrire un zéro, il faut que quelque chose annule cette écriture, en compensant le champ magnétique créé par ces deux fils. Pour cela, on fait passer un courant dans le fil Inhibit, afin de créer un champ magnétique contraire dans le tore. Cela annule l'écriture du 1 en inhibant le champ crée par les fils X et Y. La plupart des mémoires de ce type utilisaient deux fils Sense et Inhibit séparés. Mais vu que le fil Inhibit et Sense ne sont jamais utilisés en même temps, certaines mémoires à tore ont fusionné ces deux fils en un seul.

Une mémoire très fiable

[modifier | modifier le wikicode]

Les mémoires à tore de ferrite sont des mémoires non-volatiles très fiables. Elles ne s'effacent pas dans le temps et peuvent supporter des conditions très dures sans perdre de données. Par exemple, elles peuvent résister à des radiations extrêmes , voire à une EMP, sans perdre de données. C'est pour cette raison qu'elles ont beaucoup été utilisées dans des applications aérospatiales, dans l'industrie, voire dans les applications militaires. Elles étaient encore utilisées dans ces applications bien après l'apparition des premières mémoires à semi-conducteurs.

Par contre, ces mémoires étaient très sensibles à la température. Les tensions à envoyer aux tores devaient avoir une valeur bien précise, qui dépend énormément de la température ambiante. Sur les premières mémoires à tore de ferrite, les circuits de contrôle de la mémoire contenaient un senseur de température et ajustaient les tensions appliquées en fonction des mesures. Une autre solution consistait à placer la mémoire dans une petite boite dont la température était maintenue stable. Généralement, la boite était chauffée au-dessus de la température ambiante, car maintenir une température constante est facile quand celle-ci est plus élevée que la normale. Chauffer une petite chambre est plus simple que de la refroidir, surtout pour une petite boite. Autant une simple résistance permet de chauffer la boite, autant utiliser un réfrigérateur pour une mémoire de ce type était clairement une mauvaise solution.

Le défaut principal de ces mémoires est que leur processus de fabrication est difficile à industrialiser. La fabrication de ces mémoires s'est surtout fait de main d'homme, sans machines ou du moins avec peu d'outils. Le fait que ces mémoires ne puisse pas facilement être fabriquées par des machines fait que ces mémoires sont difficiles à miniaturiser : la miniaturisation ne va pas aussi loin que pour les mémoires à semi-conducteurs et on peut tout au plus stocker quelques centaines de bits sur une puce, voire quelques milliers. La capacité de telles mémoire est généralement assez faible. Par contre, leurs performances étaient assez honorables. On estime que les premières mémoires de ce type avaient un temps d'accès mémoire d'environ 6 µs, ce qui fait une fréquence d'environ 166.7 kilohertz. Le temps d'accès est ensuite descendu à 0.6 µs durant les années 70, ce qui faisait une fréquence proche du mégahertz.

Mémoire à tore Ferrite miniaturisée. La puce fait 10 centimètres de coté et contient 64 mots de 64 bits, soit 4 kikioctets.

Les mémoires à ligne de délai

[modifier | modifier le wikicode]

Les mémoires à ligne de délai sont des mémoires volatiles mécaniques, séquentielles, qui ont une capacité extrêmement faible (quelques centaines de bits). Elles ont été inventées suite à des technologies liées aux radars, dans les laboratoires militaires. Elles sont basées sur un tube de matière, dans lequel se propage une onde sonore : celui-ci sert de support de mémorisation. Les premières mémoires de ce type utilisaient des tubes de mercure, d'où leur nom de lignes à délai de mercure. Mais les inconvénients du mercure (toxicité, notamment) ont mené au remplacement du mercure par des tubes de cuivre ou d'autre matériaux magnétiques : ce sont des lignes de délai à torsion de fil.

SEAC Computer, avec une mémoire à ligne de Mercure.
Exemple de ligne de délai à torsion de fil.

Un bit est codé par l'absence ou la présence d'une onde sonore dans le tube de matière. Au bout de ce tube, on trouve un microphone et un haut-parleur. Le haut-parleur génère une onde sonore d'un côté du tube, onde qui est reçue de l'autre côté du tube par le microphone. De plus, le haut-parleur et le microphone sont reliés entre eux : le signal capté sur le microphone est envoyé sur le haut-parleur d'entrée. Ce faisant, l'onde sonore circule en boucle dans le circuit : elle est rafraichie sans cesse, à chaque passage.

Mémoire à ligne de délai.

Divers circuits sont présents entre le microphone et le haut-parleur. On trouve notamment des amplificateurs, histoire que les ondes sonores captées ne s'amenuisent pas à force de reparcourir le tube.

Mémoire à tube de mercure.

Il existe naturellement un petit délai de transmission entre le microphone et le haut-parleur, ainsi qu'un autre délai de propagation dans le tube. Ces délais limitent la capacité de la mémoire, qui dépend du nombre d'ondes sonores qui peuvent parcourir le tube. Chaque bit est codée exactement par une impulsion sonore, qui a une forme et une durée très précise, qui dépend de la qualité du circuit (microphone, haut-parleur, et autres) : notons ce temps . La capacité totale est, par définition, égale au nombre d'impulsions qui se trouvent en même temps dans le tube de matière (les unes à la suite des autres). Pour la calculer, on peut diviser le temps que met une impulsion à se propager dans le tube, par la durée d'une impulsion.

Les tubes Williams et Selectron

[modifier | modifier le wikicode]

Les tubes Williams et Selectron sont basés sur un écran CRT modifié. Il s'agissait de mémoires de type mémoires vives volatiles qui devaient être rafraichies régulièrement. En clair, ce sont l'ancêtre des mémoires DRAM ! Les tubes Williams étaient utilisés sur les tout premiers ordinateurs, au tout début de l'histoire de l'informatique, dans les années 50, à une époque où les ordinateurs étaient des monstres qui occupaient une pièce entière et étaient plus proches de petites usines à calcul qu'autre chose. Une technologie alternative basée sur un principe simialire est le Tube Selectron. D'une capacité de 256 bits, il n'a été utilisé que sur un seul ordinateur : le JOHNNIAC de la RAND Corporation. Ils ont tous deux était rapidement remplacé par les mémoires à ligne de délai, plus simples et moins chères.

Williams-tube

Les écrans CRT (Cathode Ray Tube)

[modifier | modifier le wikicode]

Tubes Williams et Selectron se basent sur la même technologie : celle des écrans CRT. Un écran CRT est composé de plusieurs composants, qui marchent de concert : un canon à électron, des bobines de contrôle et la surface de l'écran proprement dite. Le canon à électron émet un faisceau d'électron concentré, qui touche la surface de l'écran. Cette dernière, du moins derrière la vitre transparente, est d'une composition chimique particulière et est notamment riche en phosphore. Elle est souvent appelée surface phosphorescente. Quand elle est touchée par le faisceau d’électron, le phosphore s'illumine pendant quelques millisecondes. Les bobines visent à détourner le faisceau d'électron de manière à ce qu'il balaye tout l'écran de gauche à droite et de haut en bas.

Cathode ray tube.

La surface de l'écran est découpée en pixels, et l'intensité du canon varie pour chaque pixel lorsque le faisceau passe sur ce pixelde l'écran. En commandant l'intensité du canon d'électron, on arrive à afficher des images en noir et blanc ainsi. Un canon intense pendant x millisecondes donnera un point blanc sur l'écran, là où tombe de faisceau. un canon éteint donnera un point noir à l'écran. Il est possible de gérer la couleurs avec des écrans CRT plus complexes, mais ce n'est pas le sujet et nous n'en avons pas besoin pour les explications qui vont suivre.

La physique de la surface phosphorescente : émission secondaire et puits de potentiels

[modifier | modifier le wikicode]

Un point important est que la physique de la surface phosphorescente n'est pas intuitive et peu donner lieu à des phénomènes assez importants pour ce qui va suivre. Deux d'entre eu vont nous intéresser.

Le premier est que les électrons émis par le canaux à électrons frappent la surface phosphorescente, l'illuminent, mais qu'il arrive que des électrons soient piégés dans la surface, à l'endroit de l'impact. En conséquence, une petite charge électrique s'accumule progressivement à chaque passage du faisceau, dans chaque pixel. Les électrons ne restent pas en place de manière permanente, ils finissent par s'échapper après un certain temps, ce qui fait que la charge finit par s'atténuer, mais elle peut durer quelques secondes sur les CRT conçus pour exploiter cet effet au mieux.

Le second phénomène est l'émission secondaire. Quand l'énergie du faisceau à électron est trop forte, les électrons naturellement présents dans les atomes du matériau phosphorescent sont dégagés. Les électrons éjectés deviennent alors des électrons libres qui vont allumer les zones alentours, ce qui perturbe l'affichage. Et cela arrive lors que la zone frappée par le faisceau a perdu des électrons et ne s'allume plus. Le résultat est que si une image était affichée sur l'écran auparavant, utiliser un faisceau trop fort l'efface totalement via émission secondaire. Il s'agit là d'un défaut à éviter sur les écrans d'affichage, mais c'est ce phénomène qui est utilisé sur les mémoires à tubes de stockage.

Les CRT rémanents

[modifier | modifier le wikicode]

Il existe des écrans CRT conçus pour afficher des images sur une longue durée de temps, et pas seulement pour un 50ème ou 60ème de seconde. Ils sont appelés des écrans rémanents ou encore storage tubes, ou tubes de stockage. Avec eux, l'image affichée s'efface progressivement et lentement, mais reste visible durant quelques secondes. Pour cela, les écran de stockage sont fabriqués en utilisant un matériau phosphorescent spécial, différent de celui des autres CRT, mais le reste du CRT fonctionne de la même manière. La rémanence est liée au premier phénomène mentionné plus haut, à savoir la capture d'électrons par la surface, mais ce phénoméne est maximisé par l'usage du matériau adéquat. Cette rémanence de quelques secondes fait que l'image a besoin d'être rafraichie moins souvent, comparée à un écran CRT normal. Et les mémoires Selectron et de Williams sont basées sur de tels tubes de stockage.

La rémanence de l'image a de nombreuses applications et est utile quand on n'a pas besoin d'une réactivité importante. Elle était utile dans les radars, dans certains oscilloscopes qui demandent de capturer des évènements très brefs, etc. Quelques écrans d'ordinateur ont tenté d'utiliser ce système, notamment les écrans de la marque Textronix. Ils portent le nom de Direct-view bistable storage tube. L'idée est d'utiliser un écran CRT rémanent pour afficher une image pour éviter de rafraichir l'écran souvent. Mais pour quel l'écran soit réactif et éviter des artefacts graphiques liés à la rémanence, on est obligé d'effacer l'écran avant d'afficher une nouvelle image. Et l'effacement se fait grâce à l'émission secondaire. Pour cela, de tels écrans contenaient deu faisceaux : un faisceau normal pour afficher une image, un autre faisceau très puissant qui déclenche une émission secondaire pour effacer l'écran.

Les tubes Williams

[modifier | modifier le wikicode]
Image affichée par un tube Williams en fonctionnement, sur l'ordinateur SWAC.

L'idée derrière les tubes tubes Williams et Selectron est de mémoriser les données sous la forme d'images à l'écran. Un bit à 1 correspond à un pixel allumé/lumineux, un bit à 0 à un pixel éteint/noir. Les écrans de l'époque ne géraient pas la couleur, aussi seul le noir et blanc était disponible (avec les niveaux de gris), ce qui est parfait pour un stockage en binaire. L'image affichée par un écran CRT est affichée ligne par ligne, avec un petit temps de pause entre l'affichage de deux lignes pour repositionner le canon à électron sur le début de la ligne suivante. Par simplicité, sur les tubes Williams, chaque ligne correspond à un mot mémoire, une case mémoire. La taille d'un mot mémoire et le nombre d'adresse dépend donc de la résolution utilisée.

Un tube Williams est composé d'un tube CRT rémanent et d'une plaque de métal placée devant l'écran, et de circuits électroniques annexes. La plaque de métal est collée à l'écran, ce qui fait qu'on ne peut pas voir l'écran proprement dit. Elle sert uniquement lors des lectures et pas pour les écritures. Lors d'une lecture, on mesure la tension sur la plaque, qui dépendra du bit stocké au moment de la lecture. La lecture se fait bit par bit, un par un. Elle est reliée à un circuit amplificateur de tension, qui amplifie la tension mesurée par la plaque. On trouve aussi des circuits pour le contrôle de l'écran CRT, à savoir des registres X et Y pour commander les bobines de défléction, de quoi générer un signal d'horloge, et des circuits électroniques pour gérer les lectures/écritures.

WilliamsTubeFigure1

L'écriture et l’effacement de l'image est ce qu'il y a de plus facile : écrire une image utilise un faisceau d’électrons normal qu'on allume ou éteint convenablement lors du balayage de l'écran, l'effacer demande de faire la même chose en utilisant un faisceau très puissant. Un faisceau normal allume le phosphore et le charge pendant un certain temps, alors que l'émission secondaire efface ce qui a été enregistré sur le phosphore.

Pour lire un bit, on envoie un faisceau d'électron sur sa position sur l'écran, dont l'intensité est situé juste en-dessous du seuil pour l'émission secondaire. Si le bit stocké est à 0, l'intensité ne sera pas suffisante pour générer une émission secondaire. Mais si cil stocke un 1, la charge électrique stockée sur la surface phosphorescente va s'additionner à l’intensité du faisceau et déclencher une émission secondaire. L’émission secondaire a déclencher une augmentation local de la tension électrique, que la plaque de métal va capter. Un amplifieur amplifie la tension mesurée sur la plaque, pour en faire une tension capable de coder un 0 ou un 1. Vous remarquerez que la lecture est destructrice, ce qui fait que toute lecture de l'écran est suivie par une écriture pour compenser, comme sur les DRAM.

Williams tube timing

Passons maintenant au rafraichissement mémoire. Il faut rafraichir l'écran pour une raison simple : l'image affichée par l'écran s'efface au bout de quelques millisecondes, quelques secondes, tout dépend du type d'écran utilisé. Le rafraichissement se fait en effectuant une lecture suivie d'une écriture : on récupère le contenu de la mémoire/tube, avant de le réécrire.

Autour de la plaque de métal et du tube CRT, on trouve divers circuits qui gèrent les lectures et écritures. Les lectures et écritures se font bit par bit, on peut masquer certains bits lors des écritures, autoriser ou interdire les lectures/écritures durant un temps, etc.

Fonctionnement d'un tube Williams, avec les circuits associés

Les ordinateurs de première génération : exemples notables

[modifier | modifier le wikicode]

Les ordinateurs de première génération étaient assez rudimentaires, la technologie ne permettait pas de faire des miracles. Ils avaient un processeur contenait quelques milliers de tubes à vide. Le processeur était presque systématiquement une architecture à accumulateur. Ils géraient des opérations simples : addition, soustraction, mais la multiplication et la division sont arrivées assez tard. Ils avaient un jeu d'instruction très limité, atteignant rarement la centaine d'instructions. La mémoire RAM était souvent limitée, de faible capacité.

L'apparition des programmes stockés en mémoire : le Manchester Baby

[modifier | modifier le wikicode]
Architecture de la Manchester Baby.

Le tout premier ordinateur à programme enregistré en mémoire, le Manchester Baby, était une architecture à accumulateur. Niveau interface, l'ordinateur avait une console avec 32 boutons, des interrupteurs et un écran de sortie sur lequel afficher les résultats. A l'intérieur, il y avait un processeur et une RAM de 32 adresses, fabriquée avec des tubes Williams (abordés dans une annexe à la fin du cours). Chaque adresse mémorisait 32 bits, qui pouvaient encoder soit un nombre, soit une instruction.

Le programme devait tenir dans la RAM, avec une instruction par adresse maximum, ce qui limitait les programmes à 32 instructions maximum. Une instruction prenait donc 32 bits, 3 indiquaient quelle opération utiliser, 12 bits d'adresse servait à indiquer où se trouvent la seconde opérande en RAM, les 16 restants sont inutilisés. En théorie, les 12 bits d'adresse permettaient d'adresser 4096 adresses, mais seules 32 étaient réellement présentes.

Le processeur avait un registre accumulateur de 32 bits, un program counter et un registre d'instruction. Il intégrait un additionneur dédié au program counter, mais l'ALU n'avait pas d'additionneur. En conséquence, il ne gérait pas l'addition. A la place, il gérait la soustraction. Il pouvait cependant émuler l'addition à partir d'une soustraction. La soustraction était utilisée pour calculer le complément d'une opérande, et soustraire le complément revient à additionner. L'ALU était une ALU sérielle, à savoir qu'elle faisait les soustractions bit par bit.

Le processeur supportait 7 instructions au total : la soustraction, des instructions de branchement et d'accès mémoire, rien d'autre. Les instructions de branchement utilisaient des modes d'adressage très particuliers, qu'on ne retrouve pas sur les ordinateurs modernes. Les branchements inconditionnels utilisaient une forme d'adressage mémoire indirect, pas les adressages usuels pour les branchements. Il n'y avait pas de branchements conditionnels, mais une SKIP instruction.

SUB Soustrait l'opérande mémoire de l'accumulateur.
CMP Skippe l'instruction suivante si l'accumulateur a une valeur négative.
JMP Branchement indirect mémoire. :
  • L'adresse de destination est lue depuis la mémoire.
  • L'adresse lue est intégrée dans l'instruction via adressage absolu.
JRP Branchement relatif indirect.
  • Lit une opérande depuis la mémoire, l'adresse est intégrée dans l'instruction via adressage absolu.
  • Additionne l'opérande lue au program counter.
LDN Instruction LOAD. La donnée lue est inversée lors de la lecture, l'accumulateur contient le complément à deux de la donnée lue après la lecture.
STO Instruction STORE
STOP Éteint l'ordinateur.

L'apparition des registres d'indice : le Manchester Mark 1

[modifier | modifier le wikicode]

Le Manchester Mark 1 était une amélioration du Manchester Baby. Il utilisait 4500 tubes à vide. Le Manchester Baby était un prototype, mais il avait été pensé pour être étendu, notamment afin d'avoir plus de mémoire. C'est pour cela que ses adresses étaient codées sur 12 bits, malgré sa mémoire de seulement 32 mots. Le plan initial, à savoir utiliser une RAM de 4096 mots, a cependant été abandonné pour la Manchester Mark 1. A la place, la RAM a gardé la même taille, à savoir 32 nombres, mais a été complémentée par l’ancêtre du disque dur magnétique, à savoir un tambour magnétique. Le tambour magnétique contenait 40 pages, chacune ayant la même taille que la RAM.

L'ordinateur gérait des nombres de 40 bits, mais les instructions étaient codées sur 20 bits. Le processeur gérait maintenant l'addition et quelques opérations logiques (ET et OU), en plus de la soustraction et de la comparaison. De plus, il intégrait deux registres dédiés aux multiplications : un pour le multiplicande, un autre pour le multiplieur. Ils étaient nommés D et R et étaient regroupés dans un seul tube Williams noté M. Cependant, les multiplications étaient réalisées en enchainant une série d'additions, dans l'additionneur-soustracteur.

C'était là encore une architecture à accumulateur, sauf qu'elle intégrait aussi des registres d'indice. Les registres d'indices étaient au nom de deux et étaient notés B0 et B1. Lors du chargement d'une instruction, un registre d'indice était sélectionné grâce à un bit de l'instruction. Le contenu de ce registre d'indice était additionné à l'instruction , l'adresse encodée dedans pour être précis, et le résultat était envoyé sur le bus mémoire.

La microarchitecture de la machine est illustrée ci-dessous. Elle a une ALU unique capable de faire plusieurs opérations, qui sont représentées dans des rectangles séparés. Les cercles dans le schéma suivant sont des tubes Williams, des écrans CRT modifiés de manière à servir de mémoire DRAM, dont le fonctionnement est détaillée dans le chapitre sur les mémoires historiques. Un tube Williams implémente un banc de registre complet, c'est à dire un groupe de 2 à 10, registres. L'accumulateur est noté A, les deux registres de multiplication sont regroupés dans le tube Williams M, les registres d'indice sont dans le tube noté B. Le tube Williams C regroupe le program counter et le registre d'instruction. L'additionneur sert à incrémenter le program counter, mais aussi pour les branchements relatifs. La statistation est le nom donné au séquenceur, à l'unité de contrôle, décodeur d'instruction inclus.

Architecture de la Manchester Mark 1.

L'introduction des tambours magnétiques

[modifier | modifier le wikicode]

Le Manchester Mark 1 a introduit l'usage des tambours magnétiques dans un ordinateur, et cet usage a perduré par la suite. Fait surprenant, les tambours magnétiques n'étaient pas utilisés comme mémoire de masse, mais servaient de mémoire primaire, c'est à dire qu'elles avaient la même fonction que la mémoire RAM des PC actuels. Et ce alors que c'était des mémoires magnétiques et avec un caractère non-volatile !

De nombreux ordinateurs de l'époque exécutaient des programmes directement depuis le tambour magnétique. Les instructions étaient mémorisées sur le tambour magnétique, étaient copiées dans un registre d'instruction, puis exécutées. Pour garder des performances correctes, la répartition des instructions dans les secteurs devait être optimisée. Les programmeurs ayant travaillé, par exemple sur l'IBM 650, devaient prendre en compte la manière dont les instructions étaient placées dans et entre les secteurs pour éviter des pertes de performance.

L'ordinateur Bull Gamma 3 intégrait une sorte de cache d'instruction pour accélérer l'exécution des programmes depuis le tambour magnétique. Pour l'expliquer avec des termes modernes, le processeur intégrait un local store dédié aux instructions. Les instructions étaient exécutées depuis ce local store, pas depuis le tambour magnétique. Les échanges entre le local store et le tambour magnétique se faisaient par groupes de 48 instructions. Le local store était composé de 8 banques, chacune contenant un groupe de 48 instructions complet.

Dans le détail, le Bull Gamma 3 intégrait en réalité 8 local store, appelés des Circulating Memories, chacun pouvant mémoriser un groupe de 48 instructions. Pour exécuter une instruction, le groupe de 48 instructions complet était copié dans une Circulating Memory, puis l'instruction voulue était copiée dans le registre d'instruction. Les Circulating Memories étaient implémentées avec des mémoires magnéto-résistives à ligne de mercure, qu'on détaillera dans la suite de ce chapitre.