Il n'y a pas d'ordinateur sans mémoire : pour conserver les éléments du calcul ou du texte en cours de traitement, et aussi bien sûr pour loger le programme à exécuter. Ce fut — et de loin — le problème le plus difficile à résoudre dans les premiers « calculateurs » électroniques. Les électroniciens disposaient de relais, de diodes, de tubes électroniques, mais n'avaient pas de « mémoires »...
Parlons d'abord de la mémoire principale, celle qui contient le programme et les données en cours de traitement. Elle est utilisée en permanence par le processeur. En anglais on parle de "RAM" : Random Access Memory.
Une des toutes premières technologies utilisées fut le « tube de Williams », c'est un tube électronique à mémoire : Une cathode envoie des électrons sur une cible isolante, sur des points précis. Un autre balayage permet de repérer si le point visé est chargé ou non. On pouvait stocker de 500 à 1000 bits environ par tube.
Le tout premier véritable ordinateur, à architecture Von Neumann, le Small-Scale Experimental Machine, alias Manchester Mark 1, utilisait des mémoires de ce type.
Les tubes de Williams ont également été utilisés dans l'Univac 1103 et les IBM 701 et 702.
Une autre approche, plus fréquente, fut l'utilisation de « mémoires circulantes ».
Pour comprendre une mémoire circulante, il faut imaginer un long tuyau d'arrosage dans lequel on peut pousser des billes blanches (0) ou des billes noires (1). On peut ainsi pousser dans le tube tous les bits représentant par exemple les résultats intermédiaires d'un calcul.
— Quand ils arrivent à l'autre extrémité, on peut utiliser ces bits et les remplacer à l'entrée du tube par les nouveaux résultats.
— Si on n'en a pas besoin immédiatement on les ré-injecte à l'entrée du tube pour un nouveau tour...
Ce type de mémoire avait des capacités de 1 000 à 10 000 bits. Elles ont été utilisées de 1945 à 1960
On a utilisé différentes technologies pour réaliser des mémoires circulantes :
— lignes à retard électroniques : self et capacités ;
— cuve à mercure : des impulsions "sonores" courent dans le mercure et ricochent sur les côtés de la cuve. Au bout, un "microphone" récupère les impulsions.
— ligne à magnétostriction (voir ci-dessous).
La photo ci-contre montre un chassis du Bull Gamma 3. Le compartiment fermé contient une ligne à retard à self et capacités. Cette mémoire stockait 48 bits : elle permettait de garder en attente un nombre pour un cycle d'opérations suivant.
Le chassis NEC ci-contre porte 2 mémoires à ligne à magnétostriction : un fil de ferro-nickel est enroulé sur un tambour. À une extrémité, une bobine reçoit une impulsion électrique qui va provoquer une contraction locale du fil. À l'autre extrémité, une autre bobine restitue une impulsion électrique quand la contraction arrive.
Cet ensemble a été fabriqué en 1969. L'application n'est pas connue.
La fiche signalétique de la plus grande des 2 mémoires NEC indique un temps de transmission de 10889 microsecondes et une fréquence d'exploitation de 1MHz. La capacité théorique de cette mémoire est donc de 10 889 bits. En réalité probablement 10 000 bits en tenant compte des signaux de synchronisation nécessaire pour identifier le début des séquences de bits.