De eerste computers
Hoe werkt kerngeheugen (core memory
Histechniek
Servers » TechTalk » Historisch perspectief » Hoe werkt kerngeheugen

Core memory

Hoe werkt kerngeheugen? (core memory)

Kerngeheugen werd gebruikt vanaf de jaren 1950 tot 1970 en later. In vergelijking met de vorige geheugentypes kad kerngeheugen een aantal voordelen: een snelle toegangstijd (het was geen mechanisch geheugen meer) en een architectuur die men kon aanpassen aan de computer. Het uitbreiden van het geheugen was redelijk eenvoudig. Kerngeheugen bewaart zijn magnetisatie en is dus een permanent geheugen dat niet gewist wordt bij een stroomonderbreking.

Kerngeheugen wordt met een stroom aangestuurd (en niet met een spanning): kerngeheugen was dus bijzonder aantrekkelijk samen met transistoren (in plaats van radiobuizen).

De ferrietkernen zijn van het margnetisch "harde" soort, in tegenstelling met ferriet die in transfo's van schakelende voedingen gebruikt wordt. Een "zachte" ferriet kan gemakkelijk gemagnetiseerd worden in de ene of andere richting, terwijl er een sterkere stroom nodig is om een "harde" kern te beinvloeden (dat is ook zo met voetbalsupporters, maar we dwalen nu al af).

Er zijn verschillende fenomenen die van pas komen bij kerngeheugen:

  • Remanentie: de ferrietkralen bewaren hun magnetisatie als het magnetisch veld weggenomen wordt
  • Coercitiviteit: er is een minimaal magnetisch veld nodig om een kern te beinvloeden
  • Hysterese: éénmaal het minimum magnetisch veld bereikt, klapt de magnetisatie van de kern volledig om
Als er stroom door een geleider loopt, dan wordt er een zwak magnetisch veld rond de geleider ontwikkeld. Indien er een ferrietkern rond de geleider geplaatst wordt, dan wordt het magnetisch veld plaatselijk versterkt door de hoge permeabiliteit van ferriet.

Indien de stroom voldoende sterk is, dan wordt de kern permanent gemagnetiseerd. Loopt de stroom in de andere richting, dan wordt de kern in de andere richting gemagnetiseerd. Zo wordt er een 0 of een 1 in de kern opgeslagen.

Selectie van een kern: de X en Y lijnen

Het is natuurlijk niet interessant als men één geleider (met de bijhorende electronica) nodig heeft om één bit op te slaan. We gaan de hysterese vna kernmateriaal gebruiken om één kern te selecteren. De kernen worden in een roosterstruktuur gemonteerd. Door iedere kern lopen er twee selectiedraden, X en Y. Door iedere draad loopt er een halve stroom.

Als voorbeeld hebben we een kerngeheugen met 16 kernen en tweemaal 4 selectiedraden. We sturen een halve stroom door een X en een Y draad:

  1. We hebben één kern die een voldoende magnetisch veld ontvangt en die beinvloed kan worden (+0.5 +0.5 stroom)
  2. We hebben 6 kernen die ene halve stroom ontvangen en niet beinvloed worden (+0.5 stroom)
  3. We hebben 9 kernen waardoor geen stroom loopt.

Daardoor is het mogelijk één kern te selecteren door middel van een X, Y adres. De hysterese van de kernen voert eigenlijk een logische AND funktie uit: slechts als beide halve selectiestromen aanwezig zijn wordt de kern beïnvloed. Indien we bijvoorbeeld tweemaal 8 selectielijnen hebben hebben we een geheugen van 64 bits (8×8). De adresbus van de denkbeeldige processor moet dan eenbreedte hebben van 6 bits (binaire waarden 000 000 tot 111 111, 0 tot 63 decimaal). Een schakeling zet de 6 bits brede adresbus om in tweemaal 8 selectielijnen.

Er is een truc die ervoor kan zorgen dat het aantal selectielijnen op één vlak gehalveerd kan worden, dat is de coïncidentieschakeling. Indien de stromen in beide draden in dezelfde richting lopen (+0.5 +0.5) dan worden de stromen opgeteld en wordt de kern beinvloed. Indien de stroom in tegengestelde richting is, dan is het resulterend magnetisch veld nul. Deze handeling wordt niet vaak toegepast omdat de stuurelectronica daardoor complexer wordt.

  • Linkse kern: stroom door X positief, stroom door Y positief, resulterend magnetisch veld positief (+0.5 +0.5 = +1.0)
  • Rechtse kern: stroom door X negatief, stroom door Y positief, resulterend magnetisch veld nul (-0.5 +0.5 = 0.0)

Met één draad is het mogelijk twee kernen aan te sturen in het Y vlak naargelang de polariteit:

  • Stroom door X positief: schrijven van een 1
    • Y positief: schrijven in de linkse kern
    • Y negatief: schrijven in de rechtse kern
  • Stroom door X is negatief: schrijven van een 0
    • Y positief: schrijven in de rechtse kern
    • Y negatief: schrijven in de linkse kern
Deze complexe schakeling was enkel realiseerbaar met geïntegreerde schakelingen

Lezen van de magnetische informatie in een kern: de sense-lijn

We hebben nu een geheugen dat we kunnen beschrijven, maar hoe kunnen we de gegevens lezen? Als een kern van polariteit verandert wordt er een klein magnetisch veld opgewekt (de kern werkt in feite al een kleine ringkerntransfo). Om de verandering van magnetisatie te meten hebben we een draad die door alle kernen loopt, de sense draad.

Als de kern niet van polariteit wisselt is de geïnduceerde spanning minimaal, als de kern wel van polariteit wisselt is de opgewekte spanning hoger.

Het lezen wist de informatie, daarom moet de data opnieuw geschreven worden na de uitlezing. Omdat de processoren vaak met een READ-MODIFY-WRITE cyclus werken wacht de geheugencontroller een processorcyclus: zo wordt er vermeden dat een onnodige schrijfcyclus uitgevoerd wordt.

In het voorbeeld hieronder duurt de puls 2µs. In recentere systemen is de pulsduur korter dan 1µs. Deze tijd is nodig om de zelfinduktie van de kern te overwinnen. Hoe kleiner de kern, hoe sneller dat die reageert.

Dit is het electrisch signaal dat opgevangen wordt als er geen verandering van de magnetisatie van de geselecteerde kern gebeurt. De kleine pieken worden veroorzaakt door capaciteiten tussen de verschillende draden. Deze pieken kunnen gemakkelijk onderdrukt worden.
De kern reageert als een kleine zelfinductie en de spanning aan de sense-draad treed pas op na een bepaalde tijd. De meting is positief als de spanning boven de 20mV blijft tussen 0.6µs en 0.8µs.

Dit is ons voorbeeld, met selectiedraden en meetdraad (en coïncidentieschakeling):

De meeste kerngeheugens gebruiken geen coïncidentieschakeling omdat dit de stuurelectronica verzwaart.

Schrijven van een kern: de inhibit-lijn

Blauw en groen: selectielijnen x, y
Paars: Sense
Orange: Inhibit

Er is een extra draad die gebruikt wordt in oudere kerngeheugens: de inhibit-lijn. Deze draad loopt door alle kernen zoals de sense-draad, maar om storingen te vermijden loopt de draad samen met de X (of Y) draad. In recentere systemen wordt de sense draad ook als inhibit draad gebruikt.

In het werkgeheugen vormen de bits bytes. De bytes vormen de basiseenheid van de computer en een byte vormt een geheel. De huidige computers werken standaard met bytes van 8 bits, maar bij de eerste computers was er geen standardisatie: computers gebruikten woorden van 12, 22, 24,... bits. De databus is even breed als de wordlengte, dus 12, 22, 24... bits breed. Bij de huidige computers is de datalengte een veelvoud van de byte, dus 8, 16, 32, 64 of 128 bits.

In het voorbeeld rechts gebruikt de computer een woordlengte van 7 bits. De geheugenkaders worden op elkaar gestapeld en de selectiedraden worden voor alle kaders gebruikt. Alle bits van een woord worden dus samen aangesproken.

Het gebruik van een inhibit-draad brengt een technische vereenvoudiging met zich mee: de selectiedraden dienen enkel om een kern te selecteren, het niet-schrijven wordt bereikt door een stroom van halve intensiteit en omgekeerde polariteit door de inhibit draad te sturen. Daardoor wordt het schrijven onderdrukt: +0.5 +0.5 -0.5 = +0.5 (selectiedraden min inhibit). De resulterende stroom is te laag om de kern te beinvloeden.

  • Bij het lezen wordt de informatie gelezen door de sense-lijn. Het signaal van de sense-lijn wordt na verstreking direct op de databus gezet.

  • Bij het schrijven wordt de informatie van de databus gehaald en er wordt indien nodig een inhibit signaal gegenereerd.

Ieder kader heeft zijn eigen inhibit/sense lijn waarvan het signaal op de databus geplaatst wordt. De adressering is van toepassing op alle kernen van de geheugenstack. Als er een datawoord gelezen wordt op opsitie (x,y), dan worden alle bits simultaan gelezen op alle kaders, want de draden voor de adressering worden in serie aangesloten.

Nog een paar technische gegevens (recente types kerngeheugen):

  • halve selectiestroom: 250 à 350mA
  • responstijd: 1µs.
  • Grootte van een kern: < 1mm
  • maximaal aantal bits per kader: 4096 (64×64)

Geheugenkernen en selectiekernen

Het is technisch niet mogelijk een groter aantal bits op een kader te plaatsen, want de storingen worden anders te sterk zodanig dat het correct lezen van een bit niet meer mogelijk is. De storingen zijn afkomstig van de half-geselecteerde bits (63 + 63 in dit geval) die allemaal een klein stoorveld produceren. Om het stooreffekt te beperken zijn alle bits afwisselend links en recht gekanteld.

Een geheugen van 4096 bits heeft tweemaal 64 selectielijnen nodig (64×64 = 4096). Dat is toch een beetje veel, terwijl kerngeheugen juist gebruikt werd om het aantal electronische schakelingen te beperken.

Maar men heeft gemerkt dat de kernen ook als transformator gebruikt konden worden, het is trouwens de omschakeling van het magnetisch veld in de kern die gelezen wordt door de sense-draad. Hier ook gebruikt men twee stromen die te zwak zijn om het magnetisch veld van de kernen te doen omslaan. Het is enkel op het kruispunt van twee selectielijnen dat de stroom (en dus het magnetisch veld) voldoende is om de magnetisatie van de kern te doen omschakelen. Bij de omschakeling ontstaat er een inpuls op het secundair.

Onze geheugen van 4096 bits kan nu aangestuurd worden met tweemaal 8 lijnen (8×8 = 64). De adresbus moet 12 bits breed zijn om het geheugen van 4096 bits te bereiken. Hier ook worden er meerdere roosters opgestapeld om woorden van 8, 12, 16 bits te vormen, naargelang de architectuur van de processor (databus).

De kernen die voor de selectie gebruikt worden zijn groter omdat de stroom hoger moet liggen. Er worden ook meerdere lussen rond de kern gelegd zodat men het magnetisch veld bereikt kan worden met een lagere stroom.

We hebben dus een geheugenmodule met 4096 bits kerngeheugen en tweemaal 64 selectiekernen (ringkerntransfo's). Het aantal selectiekernen ligt vast, ongeacht de woordbredte (aantal bits per woord).

De ferrietkernen die als transformator gebruikt worden zijn niet vergelijkbaar met de ferrietkernen die in transformatoren van schakelende voedingen gebruikt worden. De ferrietkernen in schakelende voedingen zijn van het "zachte" soort, dat gemakkelijk gemagnetiseerd kan worden (dus minder verliezen). De ferrietkernen bij de selectietransfos zijn van het "harde" soort waarbij een sterk magnetisch veld nodig is om de magnetisatie te doen omschakelen. Dit is nodig zodat slechts één transfo omschakelt, de transfo die op het kruispunt van de twee selectielijnen zit.

De selectiekernen hebben nog een extra draad (bias) om een permanent veld te produceren die het schakelen correct laat verlopen. De selectietransfos vervormen echter de selectiepulsen voor het kerngeheugen, daarom dat er slechts één trap selectietransfos gebruikt kan worden.

De foto rechts toont een bord met selectiekernen van een IMB 1400 (de voorloper van de IBM System/360). Iedere kern heeft twee primaire wikkelingen en een secundaire wikkeling. De secundaire wikkeling is de wikkeling die niet doorloopt naar een andere kern (de schuin geplaatste wikkeling).

Magnetisch veld (H) en magnetisatie (B)

Een meer theoretisch gedeelte nu. Rechts zie je de magnetisatiecurve van een "zachte" en "harde" ferrietkern. Waarschijnlijk heb je een dergelijke curve op school moeten leren, maar heb je d'er niets van begrepen. Tweede kans nu!

Zacht ferromagnetisch materiaal kan gemakkelijk gemagnetiseerd worden, maar verliest ook gemakkelijk zijn magnetisatie. Het zou zijn magnetisatie reeds verkiezen bij een halve selectiestroom. Als de magnetisatie negatief is, dan wordt de kern positief gemagnetiseerd bij een halve stroom, wat niet de bedoeling is, want dan kan er geen selectie gebeuren (logische AND funktie). Hard ferromagnetisch materiaal wordt gebruikt voor magneten (luidsprekers, harde schijven, enz) omdat het zijn magnetisatie bewaard.

Horizontaal heb de de H-waarde, die het magnetisch veld aangeeft opgewekt door de stroom in de selectiedraden. Het magnetisch veld is proportioneel met de stroom, daarom hebben we onderdaan het beeld ook een indikatie van de stroom: 0I, +0.5I, +1I, enz (op de tweede afbeelding).

Vertikaal hebben we de magnetisatie van de ferrietkern, het gevolg van het magnetisch veld (en dus ook van de stroom).

In rust staat een ferrietkern in de oorsprong (0): er is geen magnetisch veld en de ferrietkern is niet gemagnetiseerd.

Indiien we een stroom door de selectiedraden van 2 × 0.5I, dan hebben we in de geselecteerde kern een stroom van +1I. De ferrietkern staat nu op punt 1: er is een maximaal magnetisch veld en de ferriet is gemagnetiseerd.

Indien we de stroom onderbreken, dan verdwijnt het magnetisch veld H, maar niet de magnetisatie van de kern. De ferrietkern bevindt zich nu op punt 3. De waarde van B geeft het remanent magnetisme aan: het eigen magnetisme van de ferrietkern.

Indien we een halve selectiestroom door de kern sturen, dan verandert de positie van de kern tussen 2 en 4 naargelang dat de stroom positief of negatief is. Deze wijzigingen zijn tijdelijk en als de stroom onderbroken wordt, dan komt de kern terug in positie 3. Dit eigenschap is belangrijk voor de geheugenfunktie van kerngeheugen.

Verhogen we nu de stroom in negatieve zin. Bij een bepaalde stroomwaarde komt de ferrietkraal in positie 5. De waarde van H geeft het coërcitief magnetisch veld aan. Dit is het veld dat nodig om het permanent magnetisme van de kern te onderdrukken. Als de stroom nu onderbroken wordt is het magnetisch veld van de kern onbepaald. De halve selectiestroom wordt daarom gekozen zodat 0.75I = H. De waarden van de stromen 0.5I en 1I moeten zo ver mogelijk gelegen zijn van de stroom die nodig om H te bereiken, want bij H is de toestand van de kern onbepaald als het magnetisch veld verwijderd wordt.

Als we nu een stroom van 2 × -0.5I door de seelctiedraden sturen, dan is het magnetisch veld in de geselecteerde kern maximaal negatief. De ferrietkern bevindt zich nu op positie 6. Voor de ferrietkern is dit ook een stabiele positie zoals 1, maar met een omgekeerde magnetisatie.

De werking van kerngeheugen is gebaseerd op het permanent zijn van de magnetisatie van de ferriet zolang de stroom een bepaalde waarde niet overschrijdt. Bij een positieve magnetisatie mag de stroom gaan van -0.5I tot +1I zonder wijziging van de permanente magnetisatie van de kern, en bij een negatieve magnetisatie mag de stroom gaan van -1I tot +0.5I.

Als de magnetisatie van de kern omdraait, dan verandert het magnetisch veld en wordt er een puls gestuurd in de meetdraad (sense) of in het secundair van de selectietransfo.

De kern komt in normaal gebruik nooit meer terug in positie 0, aangezien de kern altijd positief of negatief gemagnetiseerd is. Om de magnetisatie van de kern ongedaan te maken moet het veld afwisselend positief en negatief gemaakt worden met een sinusoïdaal veld. Na een paar duizenden sinussen met verminderde intensiteit verliest de ferriet zijn magnetisatie. Dit werkt goed voor "zachte" ferrietmaterialen, maar bij harde ferrieten blijft er meestal een restmagnetisatie over.

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