Core memory
-
Hoe werkt kerngeheugen? (core memory)
Kerngeheugen of core memory werd gebruikt vanaf de jaren 1950 tot 1970 en later. In vergelijking met de vorige geheugentypes kad kerngeheugen talrijke voordelen:
Kerngeheugen bewaart zijn magnetisatie en is dus een permanent geheugen dat niet gewist wordt bij een stroomonderbreking (maar kerngeheugen werd niet gebruikt als permanent geheugen). Kerngeheugen wordt met een stroom aangestuurd (en niet met een spanning): kerngeheugen was dus bijzonder aantrekkelijk samen met transistoren (in plaats van radiobuizen). We weten al dat een stroom door een geleider een magnetisch veld produceert, dat een ferrietkraaltje het magnetisch veld concentreert en de magnetisatie bewaart als de stroom onderbroken wordt.
Selectie van een kern: de X en Y lijnenHet is natuurlijk niet interessant als men één geleider (met de bijhorende electronica) nodig heeft om één bit op te slaan. We gaan de hysterese van 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:
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.
Met één draad is het mogelijk twee kernen aan te sturen in het Y vlak naargelang de polariteit:
Lezen van de magnetische informatie in een kern: de sense-lijnWe 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 ons voorbeeld, met selectiedraden en meetdraad (en coïncidentieschakeling):
Schrijven van een kern: de inhibit-lijn
De inhibit-lijn bevat de data die geschreven moet worden (zoals de sense lijn de gelezen data bevat). Men had gewoon de volledige schrijfopdracht kunnen tegenhouden als men een "0" zou willen schrijven, maar dit zou de stuurelectronica veel te complex gemaakt hebben. Men gebruikt liever een adressering die los staat van de databus. In recentere systemen wordt de sense draad dan ook als inhibit draad gebruikt. In het werkgeheugen vormen de bits woorden. De woorden vormen de basiseenheid van de computer en een woord vormt een geheel. De huidige computers werken standaard met woorden van 8 bits (men gebruikt hiervoor de benamin bytes), 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.
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 positie (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):
Geheugenkernen en selectiekernenHet 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: de storing veroorzaakt door een kern wordt geneutraliseerd door de storing in de omgekeerde richting van de volgende kern. Zelfs met deze verbetering kan men een lijn niet onbeperkt uitbreiden, want de signaal/ruisafstand wordt gaandeweg slechter. 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. In plaats van één ferrietkern te gebruiken had men twee transistoren kunnen gebruiken om de data op te slaan. Dit wordt tegenwoordig gedaan, met geheugen-IC's die miljoenen transistoren bevatten. Maar toen had een transistor een diameter van 8.9mm (TO-5 behuizing), terwijl een ferrietkern een millimeter groot was. De omweg via het kerngeheugen was dus noodzakelijk.
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, die gemakkelijk gemagnetiseerd kunnen worden (dus minder verliezen veroorzaken). 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). Lees verder: Halt and Catch Fire! Rope core memory is de ROM versie van kerngeheugen. Hier kan een ferrietkern tot 192 bits aan data bevatten. Hoe dat mogelijk is lees je op de pagina! |
Publicités - Reklame