
Photo de la collection de l'auteur
1. Histoire
La mémoire à bulles, ou mémoire sur domaines magnétiques cylindriques, est une mémoire non volatile développée dans les Bell Labs en 1967 par Andrew Bobeck. Les recherches ont montré que de petits domaines magnétiques cylindriques se forment dans des films minces monocrystallins de ferrites et de grenats lorsqu'un champ magnétique suffisamment fort est appliqué perpendiculairement à la surface du film. En modifiant le champ magnétique, ces bulles peuvent être déplacées. Ces propriétés font des bulles magnétiques un moyen idéal pour construire un stockage séquentiel de bits, semblable à un registre à décalage, où la présence ou l'absence d'une bulle à une position donnée signifie une valeur de bit zéro ou un. Le diamètre de la bulle est de quelques fractions de micron, un chip peut stocker des milliers de bits de données. Par exemple, au printemps 1977, Texas Instruments a présenté sur le marché un chip d'une capacité de 92304 bits. Cette mémoire est non volatile, ce qui la rend similaire à une bande magnétique ou un disque, mais étant solide et ne contenant aucune pièce mobile, elle est beaucoup plus fiable qu'une bande ou un disque, ne nécessite aucun entretien, et a des dimensions et un poids beaucoup plus petits, pouvant être utilisés dans des appareils portables.
Initialement, l'inventeur de la mémoire à bulles, Andrew Bobeck, a proposé une variante « unidimensionnelle » de la mémoire, sous la forme d'un fil sur lequel une fine bande de matériau ferromagnétique est enroulée. Cette mémoire était appelée « mémorie twist », et a même été produite en série, mais a rapidement été remplacée par une variante « bidimensionnelle ».
Vous pouvez consulter l'histoire de la création de la mémoire à bulles dans [1-3].
2. Principe de fonctionnement
Je vous demande de me pardonner, je ne suis pas physicien, donc l'exposé sera très approximatif.
Certains matériaux (comme le grenat gadolinium-gallium) ont la propriété de ne se magnétiser que dans une seule direction, et si un champ magnétique constant est appliqué le long de cet axe, les zones magnétisées formeront une sorte de bulles, comme le montre l'illustration ci-dessous. Chaque bulle a seulement quelques microns de diamètre.
Supposons que nous ayons un film cristallin mince d'environ 0,001 pouce, déposé sur un substrat non magnétique, par exemple en verre.

Tout est dans les bulles magiques. L'image à gauche montre l'absence de champ magnétique, tandis que l'image à droite montre le champ magnétique dirigé perpendiculairement à la surface du film.
Si l'on forme un motif sur la surface du film à partir d'un matériau magnétique, par exemple du permalloy, un alliage fer-nickel, les bulles s'aimanteront aux éléments de ce motif. On utilise généralement des motifs en forme de T ou de V.
Une seule bulle peut être formée par un champ magnétique de 100 à 200 Oersteds, appliqué perpendiculairement au film magnétique et créé par un aimant permanent. Un champ magnétique tournant, formé par deux bobines dans les directions XY, permet de déplacer les bulles-domaines d'un 'îlot' magnétique à un autre, comme illustré sur l'image. Après quatre inversions de la direction du champ magnétique, le domaine se déplacera d'un îlot à l'îlot voisin.

Tout cela permet de considérer le dispositif CMD comme un registre à décalage. Si nous formons des bulles à une extrémité du registre et que nous les détectons à l'autre, nous pouvons faire circuler un certain motif de bulles et utiliser le système comme une mémoire, en lisant et écrivant des bits à des moments précis.
D'où résultent les avantages et les inconvénients de la mémoire CMD : l'avantage est l'indépendance énergétique (tant qu'un champ perpendiculaire, créé par des aimants permanents, est appliqué, les bulles ne disparaîtront pas et ne se déplaceront pas de leurs positions), et l'inconvénient est le temps d'accès élevé, car pour accéder à un bit spécifique, il faut faire défiler tout le registre à décalage jusqu'à la position souhaitée, et plus il est long, plus il faut de cycles.

Le motif des éléments magnétiques sur le film magnétique CMD.
La création d'un domaine magnétique est appelée « nucléation » en anglais, et consiste à appliquer un courant de plusieurs centaines de milliampères à la bobine pendant environ 100 ns, créant ainsi un champ magnétique perpendiculaire au film et opposé au champ d'un aimant permanent. Cela génère une « bulle » magnétique — un domaine magnétique cylindrique dans le film. Malheureusement, le processus dépend fortement de la température, ce qui peut entraîner un échec de l'opération d'écriture, empêchant la formation de la bulle ou entraînant la formation de plusieurs bulles.
Plusieurs techniques sont utilisées pour lire les données à partir du film.
Une méthode, la lecture non destructive, consiste à détecter le faible champ magnétique du domaine cylindrique à l'aide d'un capteur magnétorésistif.
La deuxième méthode consiste en une lecture destructive. La bulle est dirigée vers une piste spéciale de génération/détection, où elle est détruite en magnetisant le matériau dans la direction directe. Si le matériau a été magnetisé dans la direction inverse, c'est-à-dire que la bulle est présente, cela générera un courant plus important dans la bobine, qui sera détecté par un circuit électronique. Ensuite, la bulle doit être générée à nouveau sur une piste d'écriture spéciale.

Cependant, si la mémoire est organisée sous forme d'un seul tableau continu, elle présentera deux inconvénients majeurs. Premièrement, le temps d'accès sera très long. Deuxièmement, un seul défaut dans la chaîne entraînera une inactivité totale de tout l'appareil. C'est pourquoi la mémoire est organisée sous forme d'une piste principale et de nombreuses pistes secondaires, comme le montre l'illustration.

Mémoire à bulles avec une seule piste continue

Mémoire à bulles avec des pistes principales/secondaires
Une telle configuration de mémoire permet non seulement de réduire considérablement le temps d'accès, mais aussi de produire des dispositifs de mémoire contenant un certain nombre de pistes défectueuses. Le contrôleur de mémoire doit les prendre en compte et les contourner lors des opérations de lecture/écriture.
L'image ci-dessous montre une coupe transversale de la « puce » de mémoire à bulles.

Vous pouvez également lire sur le principe de fonctionnement de la mémoire à bulles dans [4, 5].
3. Intel 7110
Intel 7110 — module de mémoire à bulles, MBM (mémoire à bulles magnétiques) d'une capacité de 1 Mo (1048576 bits). C'est celui qui est illustré sur la KDPV. 1 mégabit correspond à la capacité de stockage des données utilisateur, en tenant compte des pistes redondantes, la capacité totale s'élève à 1310720 bits. L'appareil contient 320 pistes en boucle (loops) d'une capacité de 4096 bits chacune, mais seules 256 d'entre elles sont utilisées pour les données utilisateur, le reste servant de réserve pour remplacer les pistes « défaillantes » et pour le stockage du code de correction d'erreurs redondant. L'appareil possède une architecture de « piste principale-pistes secondaires » (major track-minor loop). Les informations sur les pistes actives sont contenues dans une piste de démarrage distincte (bootstrap loop). Sur la KDPV, vous pouvez voir le code hexadécimal imprimé directement sur le module. C'est la carte des « pistes défaillantes », 80 chiffres hexadécimaux représentent 320 pistes de données, les actives étant représentées par un bit unitaire, les inactives par un bit nul.
Vous pouvez consulter la documentation originale sur le module dans [7].
L'appareil a un boîtier avec une disposition des broches à double rangée et se monte sans soudure (dans un socket).
La structure du module est présentée sur l'illustration :

Le tableau de mémoire est divisé en deux « demi-sections », chacune étant elle-même divisée en deux « quarts », chaque quart ayant 80 pistes secondaires. Le module contient une plaque de matériau magnétique, placée entre deux enroulements orthogonaux qui créent un champ magnétique tournant. Pour cela, des signaux de courant en forme de triangle sont appliqués aux enroulements, décalés de 90 degrés l'un par rapport à l'autre. L'assemblage de la plaque et des enroulements est placé entre des aimants permanents et est enveloppé dans un écran magnétique qui boucle le flux magnétique généré par les aimants permanents et protège l'appareil des champs magnétiques externes. La plaque est inclinée à 2,5 degrés, ce qui crée un léger champ de décalage, dirigé le long de l'inclinaison. Ce champ est négligeable par rapport au champ des bobines et n'entrave pas le mouvement des bulles lors du fonctionnement de l'appareil, mais déplace les bulles vers des positions fixes par rapport aux éléments en permalloy lorsque l'appareil est éteint. Une forte composante perpendiculaire des aimants permanents maintient l'existence de domaines magnétiques de bulles.

Le module contient les éléments suivants :
- Pistes de mémoire. Ce sont les pistes à partir d'éléments de permalloy qui retiennent et dirigent les bulles.
- Générateur de réplication. Sert à la réplication de la bulle qui est toujours présente au point de génération.
- Piste d'entrée et nœuds d'échange. Les bulles générées se déplacent le long de la piste d'entrée. Les bulles se déplacent vers l'un des 80 sous-tracks.
- Piste de sortie et nœud de réplication. Les bulles sont extraites des pistes de données sans destruction. La bulle est divisée en deux parties, dont l'une est dirigée vers la piste de sortie.
- Détecteur. Les bulles de la piste de sortie pénètrent dans un détecteur magnétorésistif.
- Piste de chargement. La piste de chargement contient des informations sur les pistes de données actives et inactives.
Nous examinerons ces nœuds plus en détail ci-dessous. Vous pouvez également consulter la description de ces nœuds dans [6].
Génération de bulle

Pour générer une bulle, au tout début de la piste d'entrée, il y a un conducteur courbé en forme de petite boucle. Un courant électrique est appliqué, créant un champ magnétique dans une très petite zone plus fort que celui des aimants fixes. L'impulsion génère une bulle à cet endroit, qui reste constamment maintenue par un champ magnétique permanent et circule le long de l'élément de permalloy sous l'effet d'un champ magnétique tournant. Si nous devons écrire un '1' en mémoire, nous appliquons une courte impulsion dans la boucle conductrice, résultant en la naissance de deux bulles (désignées sur l'illustration comme Bubble split seed). L'une des bulles se dirige le long de la piste de permalloy sous l'effet du champ tournant, tandis que l'autre reste en place et reprend rapidement sa taille initiale. Ensuite, elle se déplace vers l'un des sous-tracks, et échange sa place avec la bulle qui y circule. Celle-ci atteint à son tour la fin de la piste d'entrée et disparaît.
Échange de bulles

L'échange de bulles se produit lorsque le courant électrique de forme rectangulaire est appliqué au conducteur correspondant. Aucune séparation de la bulle en deux parties ne se produit.
Lecture des données

Les données sont envoyées sur la piste de sortie par réplication et continuent de circuler sur leur piste après lecture. Ainsi, cet appareil utilise un moyen non destructif de lecture. Pour la réplication, une bulle est dirigée sous un élément allongé en permalloy, sous lequel elle s'étire. Il y a également un conducteur en forme de boucle au-dessus ; si un courant est appliqué à la boucle, la bulle se divisera en deux parties. L'impulsion de courant se compose d'un court segment avec un fort courant pour diviser la bulle en deux parties, et d'un segment plus long avec un courant plus faible pour diriger la bulle vers la piste de sortie.
À la fin de la piste de sortie se trouve un détecteur de bulle, un pont magnétorésistif fabriqué à partir d'éléments en permalloy formant un circuit de grande longueur. Lorsque la bulle magnétique passe sous l'élément en permalloy, sa résistance change, et une différence de potentiel de quelques millivolts apparaît à la sortie du pont. La forme des éléments en permalloy est conçue de manière à ce que la bulle se déplace le long d'eux, et à la fin, elle arrive sur un bus de 'protection' spécial et disparaît.
Redondance
L'appareil contient 320 pistes, chacune de 4096 bits. Parmi elles, 272 sont actives, 48 sont de secours, inactives.
Piste de démarrage (Boot Loop)
L'appareil contient 320 pistes de données, dont 256 sont destinées au stockage des données utilisateur, les autres pouvant être défectueuses ou servir de réserve pour remplacer des éléments défectueux. Une piste supplémentaire contient des informations sur l'utilisation des pistes de données, avec 12 bits pour chaque piste. Lorsque le système est alimenté, il doit être initialisé. Lors de l'initialisation, le contrôleur doit lire la piste de démarrage et enregistrer les informations qui en proviennent dans un registre spécial du puce de formatage / capteur de courant. Le contrôleur n'utilisera alors que les pistes actives, tandis que les inactives seront ignorées et ne seront pas écrites.
Stockage des données - structure
Du point de vue de l'utilisateur, les données sont stockées dans 2048 pages de 512 bits chacune. 256 octets de données, 14 bits de code de correction d'erreur et 2 bits inutilisés sont conservés dans chaque moitié de l'appareil.
Correction d'erreurs
La détection et la correction des erreurs peuvent être effectuées par la puce du capteur de courant, qui contient un décodeur de code de 14 bits corrigeant une erreur unique d'une longueur allant jusqu'à 5 bits (erreur en rafale) dans chaque bloc de 270 bits (y compris le code lui-même). Le code est ajouté à la fin de chaque bloc de 256 bits. Le code de correction peut être utilisé ou non, à la discrétion de l'utilisateur, la vérification du code peut être activée ou désactivée dans le contrôleur. Si le code n'est pas utilisé, les 270 bits peuvent être utilisés pour des données utilisateur.
Temps d'accès
Le champ magnétique tourne à une fréquence de 50 kHz. Le temps d'accès moyen au premier bit de la première page est de 41 ms, soit la moitié du temps requis pour effectuer un cycle complet sur la piste plus le temps de passage de la piste de sortie.
320 pistes actives et de réserve sont divisées en quatre parties de 80 pistes chacune. Cette organisation réduit le temps d'accès. Les quarts sont adressés par paires : chaque paire de quarts contient respectivement des bits pairs et impairs du mot. L'appareil contient quatre pistes d'entrée avec quatre bulles initiales, et quatre pistes de sortie. Les pistes de sortie utilisent deux détecteurs, organisés de telle sorte qu'un détecteur ne reçoive jamais deux bulles de deux pistes à la fois. Ainsi, les quatre flux de bulles sont multiplexés et convertis en deux flux de bits et stockés dans les registres de la puce du capteur de courant. Là, le contenu des registres est de nouveau multiplexé et entre dans le contrôleur par une interface série.
Dans la deuxième partie de l'article, nous examinerons plus en détail la conception du contrôleur de mémoire à bulles.
4. Liste des références
L'auteur a trouvé dans les coins les plus sombres du réseau et a conservé pour vous une multitude d'informations techniques utiles sur la mémoire à bulles, son histoire et d'autres aspects connexes :
1. — Deux mémoires de l'ingénieur Bobek
2. — Deux mémoires de l'ingénieur Bobek (partie 2)
3. — Mémoire à bulles
4. Adaptation de la mémoire à bulles magnétiques dans un environnement micro-informatique standard
5. — Mémoire à bulles Texas Instruments TIB 0203
6. — Manuel des composants de mémoire. Intel 1983.
7. 7110 Mémoire à bulles de 1 Méga-bit
Source : habr.com
