La mémoire à tores utilise des tores (anneaux) en matériau magnétique dur (généralement de la ferrite semi-dure ). Chaque tore stocke un bit d'information. Au moins deux fils traversent chaque tore, formant un réseau bidimensionnel de tores câblés selon un axe XY. Lorsqu'un courant électrique supérieur à un certain seuil est appliqué aux fils, le tore se magnétise. Le tore auquel on doit attribuer une valeur ( ou Ce processus d'écriture induit également un courant électrique dans les fils conducteurs voisins. Si la nouvelle impulsion appliquée aux fils XY est identique à la précédente appliquée à ce noyau, le champ existant reste inactif et aucune induction ne se produit. Si la nouvelle impulsion est de sens opposé, une impulsion est générée. Celle-ci est généralement détectée par un fil de « détection » distinct, permettant au système de déterminer si le noyau contenait un 1 ou un 0. Ce processus de lecture nécessitant l'écriture du noyau, il est dit destructif et requiert un circuit supplémentaire pour rétablir la valeur initiale du noyau si le processus l'a inversé.
Lorsqu'elles ne sont ni lues ni écrites, les mémoires à tores conservent leur dernière valeur, même en cas de coupure de courant. Elles constituent donc un type de mémoire non volatile . Selon leur câblage, elles peuvent se révéler d'une fiabilité exceptionnelle. La mémoire à tores en lecture seule , par exemple, a été utilisée sur l' ordinateur de guidage Apollo, élément critique pour la réussite des missions lunaires de la NASA .
Grâce à l'utilisation de tores et de pistes plus petites, la densité de mémoire des tores a progressivement augmenté. À la fin des années 1960, une densité d'environ 32 kilobits par pied cube (environ 0,9 kilobit par litre) était courante. Le coût a diminué durant cette période, passant d'environ 1 dollar par bit à environ 1 centime par bit. Atteindre cette densité exigeait une fabrication extrêmement minutieuse, presque toujours réalisée à la main malgré d'importants efforts répétés d'automatisation. Les tores ont été quasiment omniprésents jusqu'à l'introduction des premières puces de mémoire à semi-conducteurs à la fin des années 1960, et surtout de la mémoire vive dynamique (DRAM) au début des années 1970. Initialement proposée à un prix similaire à celui des tores, la DRAM était plus compacte et plus simple d'utilisation. Les tores ont progressivement disparu du marché entre 1973 et 1978.
Même après le remplacement de la mémoire à tores magnétiques par la mémoire à semi-conducteurs , le terme « mémoire principale » restait courant, notamment chez les personnes habituées à ce terme et travaillant sur d'anciennes machines à mémoire à tores magnétiques. L'opération de copie de l'intégralité du contenu de la mémoire principale d'un ordinateur sur un fichier disque, en vue d'une analyse plus approfondie par un programmeur système, est toujours appelée « vidage mémoire ». Lorsque la mémoire à tores magnétiques utilisée pour les calculs était coûteuse et rare, des technologies ont été développées pour transférer des blocs de données « hors mémoire » vers un stockage plus volumineux, mais plus lent. Les algorithmes dont la taille de l'ensemble de travail dépasse la mémoire principale sont appelés algorithmes hors mémoire , tandis que les algorithmes en mémoire tiennent dans la mémoire principale.
Le principe de base consistant à utiliser le cycle d'hystérésis carré de certains matériaux magnétiques comme dispositif de stockage ou de commutation était connu dès les débuts de l'informatique. Ces connaissances provenaient en grande partie de la compréhension des transformateurs , qui permettaient une amplification et des performances similaires à celles d'un commutateur lorsqu'ils étaient construits avec certains matériaux. La stabilité de la commutation était bien connue en génie électrique , et son application aux systèmes informatiques fut immédiate. Par exemple, J. Presper Eckert et Jeffrey Chuan Chu avaient déjà travaillé sur ce concept en 1945 à la Moore School, dans le cadre du projet ENIAC .
Le pionnier de la robotique, George Devol, déposa un brevet pour la première mémoire magnétique statique (non mobile) le 3 avril 1946. La mémoire magnétique de Devol fut ensuite perfectionnée grâce à cinq autres brevets et finalement utilisée dans le premier robot industriel . Frederick Viehe déposa divers brevets sur l'utilisation de transformateurs pour la construction de circuits logiques numériques en remplacement de la logique à relais à partir de 1947. Un système à tores entièrement développé fut breveté en 1947, puis racheté par IBM en 1956 Ce développement resta cependant peu connu, et le développement de la mémoire à tores est généralement associé aux travaux de trois équipes indépendantes.
Des travaux substantiels dans ce domaine ont été menés par les physiciens américains An Wang et de Shanghai , qui ont créé le dispositif de contrôle par transfert d'impulsions en 1949. Le brevet décrivait un type de mémoire que l'on appellerait aujourd'hui un système à ligne à retard ou à registre à décalage . Chaque bit était stocké à l'aide d'une paire de transformateurs : l'un contenait la valeur et l'autre servait à la commande. Un générateur de signaux produisait une série d'impulsions envoyées aux transformateurs de commande avec une énergie moitié moindre que celle nécessaire pour inverser la polarité. Les impulsions étaient synchronisées de sorte que le champ magnétique dans les transformateurs ne s'estompe pas avant l'arrivée de l'impulsion suivante. Si le champ du transformateur de stockage correspondait à celui créé par l'impulsion, l'énergie totale induisait une impulsion dans la paire de transformateurs suivante. Les impulsions ne contenant aucune valeur s'estompaient simplement. Les valeurs stockées étaient ainsi transmises bit par bit à chaque impulsion. Les valeurs étaient lues à la fin de la chaîne, puis réinjectées au début pour assurer une circulation continue des valeurs dans le système. Ces systèmes présentent l'inconvénient de ne pas être à accès aléatoire ; pour lire une valeur particulière, il faut attendre qu'elle parcoure la chaîne. À l'époque, Wang et Woo travaillaient au Laboratoire de calcul de l'Université Harvard , et l'université n'était pas intéressée par la promotion des inventions issues de ses laboratoires. Wang a donc pu breveter le système à titre personnel.
L' ordinateur du projet Whirlwind du MIT nécessitait un système de mémoire rapide pour le suivi des avions en temps réel . Dans un premier temps, un réseau de tubes Williams – un système de stockage basé sur des tubes cathodiques – fut utilisé, mais il se révéla capricieux et peu fiable. À la fin des années 1940, plusieurs chercheurs envisagèrent d'utiliser des tores magnétiques pour la mémoire informatique, mais c'est l'ingénieur informaticien du MIT, Jay Forrester, qui obtint le brevet principal pour son invention de la mémoire à tores à courant coïncident, permettant le stockage tridimensionnel de l'information. William Papian, du projet Whirlwind, mentionna l'une de ces initiatives, la « ligne à retard magnétique statique » de Harvard, dans une note interne. La première mémoire à tores de Jan A. Rajchman chez RCA . Inventeur prolifique, Rajchman a conçu un système à tores unique utilisant des bandes de ferrite enroulées autour de fins tubes métalliques, construisant ses premiers prototypes à l'aide d'une presse à aspirine convertie en 1949. Rajchman a ensuite développé des versions du tube Williams et a dirigé le développement du Selectron .
Deux inventions majeures ont conduit au développement de la mémoire à tores magnétiques en 1951. La première, mise au point par An Wang, fut le cycle d'écriture après lecture, qui résolvait le problème de l'utilisation d'un support de stockage où la lecture effaçait les données lues. Ceci permit la construction d'un registre à décalage unidimensionnel sériel (de 50 bits), utilisant deux tores pour stocker un bit. Un registre à décalage à tores de Wang est exposé dans la section « Révolution » du Computer History Museum . La seconde, celle de Forrester, fut le système à courant coïncident, qui permit à un petit nombre de fils de contrôler un grand nombre de tores, rendant possible la création de matrices de mémoire 3D de plusieurs millions de bits. La première utilisation de la mémoire à tores magnétiques eut lieu dans l'ordinateur Whirlwind , et la contribution la plus célèbre du projet Whirlwind fut son système de stockage à accès aléatoire sur tores magnétiques . La commercialisation suivit rapidement. La mémoire à tores magnétiques a été utilisée dans les périphériques de l' ENIAC en 1953 , dans l' IBM 702 livré en juillet 1955, puis dans l'IBM 702 lui-même. L' IBM 704 (1954) et le Ferranti Mercury (1957) utilisaient également cette technologie.
C’est au début des années 1950 que la Seeburg Corporation a développé l’une des premières applications commerciales du stockage de mémoire à tores de courant coïncident dans la mémoire « Tormat » de sa nouvelle gamme de juke-boxes , en commençant par le V200 développé en 1953 et commercialisé en 1955. De nombreuses utilisations dans l’informatique, la téléphonie et le contrôle des processus industriels ont suivi.
Litiges en matière de brevets
Le brevet de Wang ne fut accordé qu'en 1955, alors que la mémoire à tores magnétiques était déjà utilisée. S'ensuivit une longue série de procès, qui prirent fin lorsqu'IBM racheta le brevet à Wang pour les Laboratoires Wang , qu'il avait cofondés avec le Dr Ge-Yao Chu, un camarade d'école chinois.
Le MIT souhaitait facturer à IBM une redevance de 0,02 $ par bit sur la mémoire à tores. En 1964, après des années de bataille juridique, IBM a versé 13 millions de dollars au MIT pour acquérir les droits sur le brevet de Forrester — le plus important règlement à l’amiable en matière de brevets à cette date.
Économie de la production
En 1953, les noyaux testés mais non encore assemblés coûtaient soudées bout à bout aux fils ; les diamètres des aiguilles et des fils étaient identiques, et des efforts ont été déployés pour éliminer l'utilisation d'aiguilles.
Du point de vue de l'automatisation, le changement le plus important a été la combinaison des fils de détection et d'inhibition, éliminant ainsi le besoin d'un fil de détection diagonal sinueux. Grâce à de légères modifications de l'agencement, cela a également permis un agencement beaucoup plus compact des conducteurs dans chaque patch.
Au début des années 1960, le coût de la mémoire à tores magnétiques a tellement baissé qu'elle est devenue une solution quasi universelle pour la mémoire principale , remplaçant à la fois la mémoire à tambour bon marché et peu performante et les systèmes coûteux à hautes performances utilisant des tubes à vide , puis des transistors discrets . Le coût de la mémoire à tores magnétiques a chuté de façon spectaculaire tout au long de son cycle de vie : d'environ obsolète par les mémoires à circuits intégrés semi-conducteurs dans les années 1970, bien qu'elle soit restée utilisée pour des applications critiques et à haute fiabilité dans le système IBM System/4 Pi AP-101 (utilisé dans la navette spatiale jusqu'à une mise à niveau au début des années 1990, et dans les bombardiers B-52 et B-1B ).
Un exemple de l'échelle, du coût et de la technologie de la mémoire à tores magnétiques dans les années 1960 est l' unité de mémoire à tores magnétiques de 256 Ko (mots de 36 bits, soit 1,2 Mio) installée sur le 6 Laboratoire d' intelligence artificielle du MIT en 1967. Considérée comme « inimaginablement énorme » à l'époque, elle fut surnommée « Moby Memory ». Son coût s'élevait à 380 000 $ (0,04 $/bit) et ses dimensions étaient de kiloword , équivalent à 32 ko) compatible avec un ordinateur DEC Q-bus était d'environ Le terme « noyau » provient des transformateurs classiques dont les enroulements entourent un noyau magnétique . Dans la mémoire à tores, les pistes ne traversent qu'un seul noyau ; il s'agit de dispositifs à une seule spire. Les propriétés des matériaux utilisés pour les tores de mémoire diffèrent considérablement de celles des matériaux utilisés dans les transformateurs de puissance. Le matériau magnétique d'une mémoire à tores doit présenter une forte rémanence magnétique , c'est-à-dire la capacité de conserver un fort aimantation, et une faible coercivité afin de réduire l'énergie nécessaire pour inverser l'aimantation. Le noyau peut prendre deux états, codant ainsi un bit . Le contenu de la mémoire à tores est conservé même lorsque le système de mémoire est mis hors tension ( mémoire non volatile ). Cependant, lors de la lecture du noyau, celui-ci est remis à zéro. Les circuits du système de mémoire de l'ordinateur restaurent ensuite l'information lors d'un cycle de réécriture immédiat. La forme la plus courante de mémoire à tores, la mémoire à courant coïncident sur lignes X/Y , utilisée comme mémoire principale d'un ordinateur, est constituée d'un grand nombre de petits tores de ferrite céramique ferrimagnétique ( les tores ) maintenus ensemble en une structure maillée (organisée en une pile de couches appelées plans ), avec des fils conducteurs passant par les trous au centre des tores. Dans les premiers systèmes, il y avait quatre fils : X , Y , Sense et Inhibit , mais les tores plus récents ont combiné les deux derniers fils en une seule ligne Sense/Inhibit . Chaque tore stockait un bit (0 ou 1). Un bit de chaque plan était accessible par cycle, de sorte que chaque mot machine d'un tableau de mots était réparti sur une « pile » de plans. Chaque plan manipulait un bit d'un mot en parallèle , permettant ainsi de lire ou d'écrire le mot entier en un seul cycle. Le fonctionnement du noyau repose sur les propriétés d'hystérésis carrée du matériau en ferrite utilisé pour fabriquer les tores. Un courant électrique circulant dans un fil traversant le noyau crée un champ magnétique. Seul un champ magnétique d'intensité supérieure à un certain seuil (« sélection ») peut provoquer un changement de polarité magnétique du noyau. Pour sélectionner une adresse mémoire, une ligne X et une ligne Y sont parcourues par la moitié du courant (« demi-sélection ») nécessaire à ce changement. Seul le champ magnétique résultant de l'intersection des lignes X et Y (la conjonction logique ) est suffisant pour modifier l'état ; les autres noyaux ne reçoivent que la moitié du champ nécessaire (« demi-sélection »), voire aucun. En faisant circuler le courant dans les fils dans une direction particulière, le champ induit résultant force le flux magnétique du noyau sélectionné à circuler dans un sens ou dans l'autre (horaire ou antihoraire). Un sens correspond à un état 1 mémorisé, l'autre à un état 0 mémorisé . La forme toroïdale d'un noyau est privilégiée car le circuit magnétique est fermé, il n'y a pas de pôles magnétiques et donc très peu de flux externe. Cela permet d'empiler les noyaux très près les uns des autres sans que leurs champs magnétiques n'interagissent. Le positionnement alterné à 45 degrés utilisé dans les premiers réseaux de noyaux était imposé par les fils de détection diagonaux. L'élimination de ces fils diagonaux a permis un empilement plus compact. Le temps d'accès plus le temps de réécriture correspond au temps de cycle mémoire . Pour lire un bit de mémoire à tores, le circuit tente de basculer le bit vers la polarité assignée à l'état 0 en pilotant les lignes X et Y sélectionnées qui se croisent au niveau de ce tore. La détection d'une telle impulsion signifie que le bit contenait récemment un 1. L'absence d'impulsion signifie que le bit contenait un 0. Le délai de détection de l'impulsion de tension est appelé temps d'accès de la mémoire à tores. Suite à une telle lecture, le bit contient un 0. Ceci illustre pourquoi un accès à la mémoire centrale est appelé une lecture destructive : toute opération qui lit le contenu d’une mémoire centrale efface ce contenu, et celui-ci doit être immédiatement recréé. Pour écrire un bit dans la mémoire à tores, le circuit suppose qu'une opération de lecture a eu lieu et que le bit est à l'état 0. Le fil de détection est utilisé uniquement lors de la lecture, et le fil d'inhibition uniquement lors de l'écriture. C'est pourquoi les systèmes à cœurs plus récents ont combiné les deux en un seul fil et utilisé des circuits dans le contrôleur de mémoire pour commuter la fonction de ce fil. Cependant, lorsque le fil de détection traverse un trop grand nombre de conducteurs, le courant de demi-sélection peut également induire une tension considérable sur l'ensemble de la ligne en raison de la superposition des tensions présentes sur chaque conducteur. Ce risque potentiel de « mauvaise lecture » limite le nombre minimal de fils de détection. L'augmentation du nombre de fils de détection nécessite également davantage de circuits de décodage. Les contrôleurs de mémoire à tores magnétiques ont été conçus de manière à ce que chaque lecture soit immédiatement suivie d'une écriture (car la lecture force tous les bits à 0, et l'écriture suppose que cela s'est produit). Les jeux d'instructions ont été conçus pour tirer parti de cette caractéristique. Par exemple, une valeur en mémoire pouvait être lue et modifiée presque aussi rapidement qu'elle pouvait être lue et écrite. Sur PDP-6 , les instructions `read` La mémoire à tores de mots était souvent utilisée pour fournir une mémoire de registres. Ce type de mémoire est également appelé mémoire à sélection linéaire ou mémoire 2D . Généralement, trois fils traversent chaque tore sur le plan : lecture de mots , écriture de mots et détection/écriture de bits . Pour lire ou effacer des mots, le courant maximal est appliqué à une ou plusieurs lignes de lecture de mots ; cela efface les tores sélectionnés et ceux qui basculent, induisant des impulsions de tension sur leurs lignes de détection/écriture de bits . En lecture, une seule ligne est généralement sélectionnée ; en revanche, pour l'effacement, plusieurs lignes peuvent être sélectionnées, les lignes de détection/écriture de bits étant ignorées. Pour écrire des mots, la moitié du courant est appliquée à une ou plusieurs lignes d'écriture de mots , et la moitié du courant est appliquée à chaque ligne de détection/écriture de bits pour chaque bit à positionner. Dans certaines conceptions, les lignes de lecture et d'écriture de mots étaient combinées en un seul fil, ce qui donnait une matrice de mémoire avec seulement deux fils par bit. Pour l'écriture, plusieurs lignes d'écriture de mots pouvaient être sélectionnées. Cette technologie offrait un avantage en termes de performances par rapport à la mémoire à courant coïncident sur les lignes X/Y, car plusieurs mots pouvaient être effacés ou écrits avec la même valeur en un seul cycle. Le jeu de registres d'une machine classique n'utilise généralement qu'un seul petit plan de ce type de mémoire à tores. Certaines mémoires de très grande capacité ont été réalisées avec cette technologie, par exemple la mémoire auxiliaire ECS ( CDC 6600 , qui pouvait contenir jusqu'à 2 millions de mots de 60 bits.
Comment fonctionne la mémoire à tores magnétiques ?



Lecture et écriture

En lisant
En écrivant
Sens combiné et inhibition
Lecture et écriture combinées avec modification
AOS*( SOS*ou `write`) incrémentaient (ou décrémentaient) la valeur entre la phase de lecture et la phase d'écriture d'un même cycle mémoire (en signalant éventuellement au contrôleur mémoire de faire une brève pause au milieu du cycle). Cette méthode pouvait être deux fois plus rapide que le processus consistant à obtenir la valeur par un cycle de lecture-écriture, à l'incrémenter (ou la décrémenter) dans un registre du processeur, puis à écrire la nouvelle valeur par un autre cycle de lecture-écriture.Autres formes de mémoire à tores

mémoire de la corde centrale
Caractéristiques physiques
Vitesse
Les performances des premières mémoires à tores peuvent être caractérisées aujourd'hui comme étant approximativement comparables à une fréquence d'horloge de 1 MHz (équivalente à celle des ordinateurs personnels du début des années 1980, tels que l' Apple II et le Commodore 64 ). Les premiers systèmes de mémoire à tores avaient des temps de cycle d'environ 6 µs , qui sont tombés à 1,2 µs au début des années 1970, puis à 600 ns (0,6 µs) au milieu des années 1970. Certains modèles offraient des performances nettement supérieures : le CDC 6600 avait un temps de cycle mémoire de 1,0 µs en 1964, grâce à des tores nécessitant un courant de demi-sélection de 200 mA. Tout a été mis en œuvre pour réduire les temps d'accès et augmenter le débit de données (bande passante). Pour atténuer les temps de lecture souvent lents de la mémoire centrale, les opérations de lecture et d'écriture étaient souvent parallélisées, avec des tableaux de mémoire mono-bit d'une valeur d'un mot configurés pour fonctionner ensemble afin qu'un mot entier de mémoire puisse être lu en un seul cycle d'accès à la mémoire.
Fiabilité
La mémoire à tores est un support de stockage non volatil : elle conserve indéfiniment son contenu sans alimentation électrique. Elle est également relativement insensible aux impulsions électromagnétiques et aux radiations. Ces avantages ont été déterminants pour certaines applications, comme les automates programmables industriels de première génération , les installations et véhicules militaires tels que les avions de chasse , ainsi que les engins spatiaux . C’est pourquoi la mémoire à tores a été utilisée pendant plusieurs années après l’apparition de la mémoire MOS à semi-conducteurs (voir aussi MOSFET ). Par exemple, les ordinateurs de bord IBM AP-101B de la navette spatiale utilisaient de la mémoire à tores, qui a préservé son contenu malgré la désintégration Challenger peu après son lancement en 1986. thermistance ) afin d’ajuster correctement les niveaux de courant en fonction des variations de température. La mémoire à tores utilisée par Digital Equipment Corporation pour son ordinateur PDP-1 en est un exemple ; cette stratégie a été conservée pour tous les systèmes de mémoire à tores qui ont suivi et qui étaient destinés à la gamme d’ordinateurs PDP refroidis par air de DEC .
Une autre méthode pour gérer la sensibilité à la température consistait à placer l'empilement de tores magnétiques dans un four à température contrôlée. On peut citer comme exemples la mémoire à tores à air chaud de l' IBM 1620 (qui pouvait mettre jusqu'à 30 minutes pour atteindre sa température de fonctionnement , environ IBM 7090 , des premiers IBM 7094 et de l'IBM 7030. Le chauffage des tores était privilégié au refroidissement car l'exigence principale était une température constante , et il était plus facile (et moins coûteux) de maintenir une température constante bien supérieure à la température ambiante qu'une température égale ou inférieure.
Diagnostic
Le diagnostic des problèmes matériels de la mémoire à tores nécessitait l'exécution de programmes de diagnostic longs et fastidieux. Si un test rapide vérifiait que chaque bit pouvait contenir un 0 et un 1, ces diagnostics testaient la mémoire à tores avec des scénarios de défaillance extrêmes et devaient s'exécuter pendant plusieurs heures. La plupart des ordinateurs ne possédant qu'une seule carte de mémoire à tores, ces diagnostics se déplaçaient également dans la mémoire, permettant ainsi de tester chaque bit. Un test avancé, appelé « test Shmoo », consistait à modifier les courants de demi-sélection en fonction du moment où la ligne de détection était testée (effet stroboscopique). Le graphique des données de ce test ressemblait à un personnage de dessin animé nommé « Shmoo », et le nom est resté. Souvent, les erreurs pouvaient être résolues en tapotant légèrement la carte de circuit imprimé contenant la matrice de tores sur une table. Ce simple geste modifiait légèrement la position des tores le long des pistes qui les traversaient et pouvait corriger le problème. Cette procédure était rarement nécessaire, car la mémoire à tores s'est avérée très fiable comparée aux autres composants informatiques de l'époque.