Core memory
Mémoire à tores de ferrite
Electronique
Root » Serveurs » Electro-ménager » Historique » core memory

Comment fonctionne une mémoire à tores de ferrite

La mémoire à tores de ferrites est apparue dans les années 1950 et a continué a être utilisée jusque dans les années 1970. Ce type de mémoire avait de nombreux avantages: une vitesse d'accès rapide pour l'époque, un système totalement électronique sans pièces mobiles et une architecture qui peut être adaptée à l'ordinateur. De plus, les tores de ferrites gardaient leur information pendant les coupures de courant: c'était une mémoire permanente.

Les tores de ferrite étant commandées en courant (et non en tension), les mémoires à tores de ferrite ont surtout été utilisées sur les systèmes à transistors et non à lampes.

La ferrite utilisée est une ferrite magnétiquement "dure" au contraire des ferrites utilisées dans les alimentations à découpage qui utilisent une ferrite "douce". Une ferrite douce se magnétise et démagnétise facilement, tandis qu'il faut un courant important pour magnétiser une ferrite dure.

Il y a plusieurs phénomènes qui jouent pour réaliser une mémoire à tores de ferrite:

  • la rémanence: les tores de ferrites gardent leur chanmp magnétique une fois magnétisées.
  • la coërcitivité: il faut un champ magnétique minimum pour faire basculer le champ magnétique d'un tore.
  • l'hystérésis: une fois le champ magnétique minimum atteint, le tore bascule dans l'autre sens magnétique.
Quand un conducteur électrique est parcouru par un courant, il développe un champ magnétique. S'il y a un tore enfilé sur le fil, la perméabilité magnétique de la ferrite concentre le champ magnétique local.

Si le courant est suffisamment intense, il magnétise le tore dans un sens. Un champ magnétique suffisamment fort dans l'autre sens magnétise le tore dans l'autre sens: on peut ainsi coder un 0 ou un 1.

Sélection d'un tore (ligne X et Y)

Evidemment, c'est pas l'idéal s'il faut un fil par tore: cela rendrait le système vraiment complexe. On va utiliser le phénomène de l'hystérésis pour sélectionner un tore spécifique. Les tores sont montés dans un croisillon et chaque tore est traversé par deux fils, chaque fil étant parcouru par la moitié du courant nécessaire pour magnétiser un tore.

Comme exemple nous avons une mémoire avec 16 tores et 2 fois 4 fils de sélection. Nous envoyons le courant de sélection dans un fil X et un fil Y.

  1. Nous avons un tore qui reçoit le champ magnétique minimum et peut changer de polarité.
  2. Nous avons 6 tores qui reçoivent un demi-champ et qui ne sont pas affectés.
  3. Nous avons 9 tores qui ne reçoivent aucun champ magnétique.

Cette procedure nous permet donc de sélectionner un tore (un bit d'information) avec une adresse. L'hysteresis de la ferrite agit comme une fonction AND logique: ce n'est que si les deux demi-courants sont présents que la ferrite est influencée. Si nous avons par exemple 2× 8 lignes de sélection nous avons une mémoire de 64 bits. Le bus d'adresse du processeur doit alors avoir une longueur de 6 bits (000 000 à 111 111, valeurs décimales de 0 à 63). Un circuit transforme les 6 bits du bus d'adresse en 2×8 lignes de commande.

Un petit truc permet de réduire le nombre de lignes dans un plan (X ou Y), c'est la coïncidence. Dans les examples nous utilisons le plan Y. Si le courant dans les deux fils sont dans le même sens, ils produisent un champ magnétique qui s'additionne dans le tore. Si le courant est dans un sens contraire, les champs magnétiques s'annulent. Ce truc n'est pas utilisé dans toutes les mémoires.

  • Tore gauche: courant dans X positif, courant dans Y positif, chanmp magnétique résultant positif.
  • Tore droit: courant dans X négatif, courant dans Y positif, résultante nulle.

Avec seulement un fil, on peut commander deux tores dans le plan Y selon la polarité du fil X et Y:

  • Courant dans X positif: écriture d'un 1
    • courant dans Y positif: écriture d'un 1 dans le tore de gauche
    • courant dans Y négatif: écriture d'un 1 dans le tore de droite
  • Courant dans X négatif: écriture d'un 0
    • courant dans Y positif: écriture d'un 0 dans le tore de droite
    • courant dans Y négatif: écriture d'un 0 dans le tore de gauche.
La coïncidence n'est utilisé que dans les mémoires les plus récentes, car elle nécessite un circuit de commande plus complexe, qui n'est réalisable en pratique que sous la forme d'un circuit intégré.

Lecture de l'information magnétique stockée dans un tore (ligne sense)

Voila, nous avons une mémoire qu'on peut écrire, mais qu'on ne peut pas lire! Heureusement, quand le tore change de polarité, il produit un petit champ électrique (il fonctionne alors en fait comme un petit transfo. Pour lire le changement de polarité d'un tore, nous avons un fil qui passe par tous les tores, le fil sense.

Quand aucun tore ne change de polarité magnétique, la tension induite est minimale, s'il y a un changement de polarité, la tension est plus importante.

La lecture étant destructive, il faut directement réécrire le bit après sa lecture. Comme les processeurs travaillent souvent selon le cycle READ-MODIFY-WRITE (lire une valeur de la mémoire, la modifier et la replacer en mémoire), le circuit de controle de la mémoire attend un cycle du processeur: cela permet d'éviter une opération d'écriture inutile.

Dans l'exemple ci-dessous utilise une impulsion de 2µs. Dans les systèmes récents l'impulsion est inférieure à 1µs, temps nécessaire pour vaincre la self-induction du tore de ferrite.

Le premier dessin est le signal récolté quand il n'y a pas de changement de polarité. Les petits pics qui apparaissent sont causés par les capacités parasites entre les nombreux cables. Ces pics peuvent facilement être filtrés car ils apparaissent directement après l'établissement du courant dans les fils de sélection.
Le tore se comportant comme une petite self-induction, le champ magnétique induit et donc ta tension aux bornes du fil "sense" n'apparait qu'au bout d'un certain temps. La mesure est positive si la tension dépasse 20mV entre 0.6µs et 0.8µs.

Et finalement, nous avons notre construction terminée, avec les fils de sélection et le fil de lecture:

Ecriture d'un tore (ligne inhibit)

Bleu et vert: fils de sélection x, y
Violet: Sense
Orange: Inhibit

Dans les types plus anciens, il y a un second fil qui circule avec le fil de sélection X (ou Y): c'est le fil inhibit. Ce fil passe par tous les tores comme le fil sense, mais pour éviter les interférences il passe horizontalement (ou verticalement). Dans les systèmes plus récents, on utilise le même fil "sense" comme fil "inhibit".

Dans la mémoire, les bits sont assemblés sous forme de bytes. Si les ordinateurs actuels sont passés de 8 à 16 puis 32 et 64 bits, les premiers ordinateurs pouvaient avoir un nombre de (par exemple) 22 ou 24 bits, dépendant de l'architecture du système.

L'exemple à droite nous montre un système qui utilise des bytes de 7 bits (le bus de données a une largeur de 7 bits). Les 7 cadres sont entassés les uns sur les autres et les fils de sélection servent pour tous les tores des cadres.

La raison de l'utilisation d'un inhibit (fil séparé ou combiné) est purement technique. Pour permettre de simplifier les circuits, les lignes de sélection servaient uniquement à la sélection d'un tore: la non-écriture étant réalisé par un courant de demi-intensité dans le fil inhibit (courant en sens contraire). Si le courant est présent, il empèche l'écriture: +0.5 +0.5 -0.5 = +.5 qui est trop faible pour influencer le tore.

  • En lecture, la magnétisation du bit était lue par le fil sense. Le signal du fil sense était après amplificatiuon directement envoyé sur le bus de données.

  • En écriture, la magnétisation à appliquer était déterminée par la présence ou non d'un courant d'inhibit généré à partir du byte sur le bus de données.

Chaque cadre a son fil sense/inhibit propre, dont le signal après conditionnement est placé sur le bus de données. L'adressage est valable pour tous les cadres. Quand un byte est lu à la position (X, Y), tous les bits sont accédés simultanément car les fils d'adressage sont branchés en série.

Encore quelques petites données techniques (types récents):

  • demi-courant de sélection: 250 à 350mA
  • temps de réponse: 1µs.
  • Grandeur d'un tore < 1mm
  • Nombre de bits par cadre (maximum): 4096 (64×64)
Un nombre de bits plus important par cadre n'est pas possible car le bruit à la commutation devient si important qu'il n'est plus possible de lire l'état d'un bit du cadre. Ce sont les tores qui reçoivent un demi-courant qui produisent un faible champ parasite. C'est pour réduire cet effet que les tores sont montés en alternance (inclinés à gauche puis à droite).

Tores de mémoire et tores de sélection

Une mémoire de 4096 bit par cadre a besoin de deux fois 64 lignes de sélection (64×64 = 4096), ce qui fait quand même beaucoup, alors que le but de la mémoire à tores de ferrite est justement de réduire le nombre de circuits électroniques.

Mais on s'est rendu compte que les tores de ferrite pouvaient également être utilisés comme transfos (puisque le changement de polarité magnétique qui indique la commutation est transférée au fil de mesure (sense)). Ici aussi on utilise deux courants d'intensité trop faible pour faire commuter les tores. Ce n'est qu'au croisement de deux fils que le courant (et donc le champ magnétique) est suffisamment fort pour faire commuter la magnétisation du tore, qui produit ainsi une impulsion au secondaire.

Notre mémoire de 4096 bits peut maintenant être commandée par deux fois 8 lignes de sélection (8×8 = 64). Le bus d'adresses doit être de 12 bits pour permettre d'accéder à tous les bits de la mémoire. Ici aussi, plusieurs cadres sont mis en parallèle pour former des mots de 8, 12, 16,... bits (selon l'architecture du processeur).

Les tores qui sont utilisés comme transfo sont plus grands, puisque le courant nécessaire au secondaire est plus important (il doit permettre de commuter les tores de mémoire). On utilise également plusieurs spires aux deux primaires et au secondaire, ce qui permet d'avoir un champ magnétique déterminé avec un courant moindre.

Nous avons donc un cadre avec ses 4096 bits de données (4096 tores de mémoire) et 2×64 tores de sélection. Le nombre de tores de sélection est fixe, quel que soit la longueur d'un mot (nombre de cadres entassés).

Il ne s'agit pas d'un transfo haute fréquence classique (comme ceux utilisés dans les alimentations à découpage) qui utilise de la ferrite "douce" (aisément magnétisable), mais de transfos à ferrite "dure" qui nécessite un courant de magnétisation important. C'est nécessaire pour que le demi-courant de sélection ne soit pas transmis au secondaire. Le transfo ne peut transmettre une impulsion que quand il reçoit un courant nominal de sélection.

Les tores de sélection ont encore un fil supplémentaire appelé bias qui produit un champ constant permettant une commutation correcte. Les tores qui agissent comme transfo déforment l'impulsion de sélection, mais la forme est encore suffisamment correcte pour agir sur les tores de la mémoire. Le courant de sélection est "déformé" à priori pour produire une impulsion de forme correcte. Un double étage est par contre impossible à réaliser, l'impulsion de sélection finale n'est pas conforme.

La photo à droite reprend quelques tores de sélection de l'IBM 1400. Chaque tore de sélection a deux primaires et un secondaire. Le secondaire est le bobinage en oblique (celui qui ne relie pas deux tores).

Champ magnétique H et induction B

Une petite partie plus théorique maintenant. Vous voyez à droite la courbe de magnétisation d'une ferrite "douce" et d'une ferrite "dure" (courbe que vous avez appris à l'école contraint et forcé, mais que vous n'avez probablement jamais tout à fait compris).

Une ferrite douce peut aisément être magnétisée, mais perd également facilement sa magnétisation. Si la ferrite est magnétisée négativement, un demi-courant de sélection positif suffit a effacer sa magnétisation négative, ce qui n'est pas recherché, car il n'y aurait alors pas moyen de sélectionner une seule ferrite. Les ferrites dures qui gardent leur magnétisation sont utilisées comme aimants (haut parleur, disque dur, ect).

Vous avez en abscisse (horizontal) la valeur H qui correspond au champ magnétique produit par le courant. Le champ magnétique correspond pratiquement au courant, c'est pour cela que nous avons en bas de l'image une indication du courant: 0I, +0.5I, +1I, etc (sur la seconde image).

En ordonnée vous avez la magnétisation de la ferrite, donc l'effet du champ magnétique. L'induction est le résultat du champ magnétique et dépend des propriétés du composant placé dans le champ.

Au repos, une ferrite non magnétisée se trouve au point 0: le champ magnétique eest nul et la magnétisation de la ferrite est nulle.

Quand nous envoyons un courant dans les fils de sélection de 2 × +0.5I nous avons un courant total de +1I. La ferrite se trouve maintenant au point 1: le champ magnétique est présent et la magnétisation de la ferrite est maximale et positive.

Si nous coupons le courant (et donc le champ magnétique), la ferrite se trouve en position 3: La valeur de B indique le magnétisme rémanent de la ferrite: le magnétisme qui reste quand il n'y a pas de champ magnétique extérieur.

Si nous appliquons un demi-courant de sélection, la position de la ferrite va se déplacer au point 2 ou 4 selon que le demi courant est positif ou négatif. Ces modifications sont temporaires: quand le courant est coupé, la ferrite se retrouve en position 3. Cette caractéristique de la ferrite est importante pour le fonctionnement de la mémoire.

Augmentons maintenant le courant dans le sens négatif. A partir d'une certaine valeur de courant, la ferrite se trouve au point 5. La valeur de H indique le champ coërcitif. C'est le champ nécessaire pour annuler le magnétisme rémanent de la ferrite. Dans cette zone la ferrite perd son magnétisme et quand le courant est coupé, l'état de magnétisation de la ferrite n'est plus défini. Le courant de sélection est choisi de telle façon que 0.75I = H. Un courant de 0.75H ne permet pas de magnétiser correctement la ferrite dans un sens ou l'autre et il faut que 0.5I et 1I soient situés aussi loin que possible de cette valeur.

Envoyons maintenant un courant de 2 × -0.5I dans les fils de sélection. On obtient un champ magnétique négatif maximal et la ferrite se retrouve au point 6. Pour la ferrite c'est également une position stable: elle est magnétisée comme en position 1, mais avec une magnétisation inverse.

Le fonctionnement de la ferrite est basée sur la permanence du magnétisme rémanent: la magnétisation (positive) n'est pas modifiée tant que courant varie entre -0.5 et +1I. Dans le sens inverse, la magnétisation négative n'est pas effacée tant que le courant varie entre -1 et +0.5I.

Quand la magnétisation de la ferrite bascule, le champ magnétique change brusquement et produit un signal dans le fil de mesure ou dans le transfo de sélection.

Le tore de ferrite ne repasse plus jamais au point 0 en fonctionnement normal, puisque la ferrite est toujours magnétisée dans un sens ou dans l'autre. Pour démagnétiser la ferrite, il faut appliquer un champ magnétique sinusoïdal (positif et négatif) qui diminue lentement. Au bout de plusieurs milliers de cycles avec chaque fois une amplitude plus petite, la ferrite n'est plus magnétisée. Cela fonctionne bien pour les ferrites "douces", mais moins bien pour les ferrites "dures" qui se figent dans une magnétisation donnée et ne bougent plus.

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