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

-

Comment fonctionne une mémoire à tores de ferrite (mémoire à tores magnétiques)

Nous vous recommendons de lire d'abord l'introduction aux mémoires magnétiques

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:

  • un temps d'accès très court (pour l'époque),
  • un système de stockage particulièrement fiable,
  • un système totalement électronique sans pièces mobiles et
  • une architecture qui pouvait être adaptée à l'ordinateur
    (bus de donnée avec un nombre de bits non standard).
De plus, les tores de ferrites gardaient leur information pendant les coupures de courant: c'était une mémoire permanente. La possibilité de garder des données en mémoire n'était pas utilisée: la mémoire était remise à zéro lors du démarrage de l'ordinateur.

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.

Nous avons déjà appris que quand un conducteur électrique est parcouru par un courant, il développe un champ magnétique qui peut magnétiser le tore si le courant est suffisamment important.

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 de moitié 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'était utilisée que dans les mémoires les plus récentes, car elle nécessitait 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 magnétique (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".

Le fil "inhibit" sert à l'écriture, pour bloquer l'écriture d'un bit. Le fil inhibit contient en fait la donnée à écrire. On aurait pu ne rien écrire pour écrire un "0", mais c'est plus simple du point de vue électronique si on utilise un adressage indépendant et un fil de données.

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

L'exemple à droite nous montre un système qui utilise des mots 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é avec sense) 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 placé directement sur le bus de données après amplificatiuon.

  • 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 bit correspondant 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 mot 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, et donc un faible signal induit dans le fil sense. C'est pour réduire cet effet que les tores sont montés en alternance (inclinés à gauche puis à droite): l'effet d'un tore incliné à gauche est réduit par l'effet contraire du tore suivant incliné à 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.

On aurait autrement pu utiliser deux transistors (mémoire flip flop) pour stocker un bit. C'est ce qui se fait actuellement, car les puces de mémoire peuvent contenir des millions de transistors. Mais à cette époque, on tentait d'en limiter le nombre. Un transistor avait un diamètre de 8.9mm (format TO-5 le plus courant), alors qu'un tore faisait moins d'un mm de diamètre.

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).

La suite:
Halt & Catch Fire

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

-