Kerngeheugen in de ruimte: De core memory-module van een Spacelab-computer uit 1980
Omdat Spacelab een Europees project was, maakte het gebruik van een in Frankrijk gebouwde minicomputer, de Mitra 125 MS, [2] in plaats van de hoofdcomputers van de Shuttle, de door IBM gebouwde AP-101-systemen. Voor de opslag beschikte de Spacelab-computer over 128 kilobytes RAM. In plaats van siliciumgeheugen gebruikte de computer magnetisch kerngeheugen (core memory), waarbij elke bit werd opgeslagen in een kleine ferrietring.
In dit artikel wordt het kerngeheugensysteem van deze computer nauwkeurig bekeken.
De fysieke opbouw van het geheugen
De geheugenstack van de Spacelab-computer neemt ongeveer een derde van de computer in beslag. Het volledige zijpaneel van de computer is afneembaar, waarna de geheugenunit kan worden uitgeschoven. Omdat de computer via geleiding wordt gekoeld, zorgde de stevige bevestiging van de geheugenstack aan het zijpaneel ervoor dat deze koel bleef.
De geheugenstack bestaat uit zeven printplaten:
- Een driverboard;
- Vier core plane boards (geheugenlagen);
- Een tweede driverboard;
- Een interfaceboard.
Elke plaat heeft twee 160-pins connectoren die in een grote daughterboard aan weerszijden steken, wat zorgt voor uitgebreide connectiviteit tussen de platen. Het daughterboard aan de rechterkant heeft een extra 160-pins connector die de geheugenstack verbindt met de rest van de computer.
Hoe kerngeheugen werkt
Een van de grootste uitdagingen voor vroege computers was opslag. Computers uit het einde van de jaren 40 en begin jaren 50 sloegen data op via technieken zoals geluidsgolven in kwik, stippen op een CRT-scherm of draaiende magnetische trommels, maar deze hadden allemaal beperkingen. Er was behoefte aan compacte, goedkope opslag die snel en betrouwbaar was en waarbij willekeurige toegang (random access) mogelijk was.
Tijdens de Tweede Wereldoorlog ontwikkelde Duitsland speciale magnetische legeringen die konden "flippen" van de ene magnetische staat naar de andere. Na de oorlog realiseerden Amerikaanse onderzoekers zich dat deze materialen konden worden gebruikt voor het opslaan van binaire data.
Verschillende aspecten van kerngeheugen werden gepatenteerd door diverse uitvinders, waaronder Frederick Viehe, An Wang (Harvard), Jan Rajchman (RCA) en Jay Forrester (MIT), wat leidde tot kostbare patentstrijden. IBM betaalde uiteindelijk 400.000 dollar aan Wang—die het geld gebruikte om het bedrijf Wang Laboratories op te richten—en 13 miljoen dollar aan MIT. Jay Forrester wordt beschouwd als de belangrijkste uitvinder; hij ontwikkelde het ontwerp van het praktische kerngeheugen, deed onderzoek naar magnetische materialen en bouwde in 1953 het eerste kerngeheugen voor de baanbrekende Whirlwind-computer.
De basisprincipes
Kerngeheugen is gebaseerd op een kleine torusvormige magnetische kern, één per bit. [4] Een kern kan met de klok mee of tegen de klok in worden gemagnetiseerd om een bit op te slaan. Dit gebeurt door een draad door de kern te leiden: het sturen van een stroom door de draad wekt een magnetisch veld op dat de kern magnetiseert, terwijl een stroom in de tegenovergestelde richting de magnetisatie omkeert.
Een groot probleem was hoe de kernen bedraad konden worden zonder een absurd aantal draden te gebruiken. Als elke kern een aparte draad had, zou slechts 16 KB opslag meer dan 100.000 draden vereisen. De oplossing was "coincident current addressing" (gelijktijdige stroomadressering). De kernen zijn gerangschikt in een raster met horizontale en verticale draden. Door een stroom door één horizontale en één verticale draad te sturen, wordt de enkele kern op het kruispunt geselecteerd.
Om te voorkomen dat alle kernen langs deze draden worden gemagnetiseerd, zijn de kernen gemaakt van materialen met een eigenschap genaamd hysteresis: een kleine stroom laat de kern onveranderd, terwijl een grotere stroom de magnetische staat omkeert. De stromen door de horizontale en verticale draden zijn zo gekozen dat elke draad slechts de helft van de benodigde stroom levert om de kern te laten flippen; op het kruispunt samen zorgen de twee stromen voor een voldoende sterk magnetisch veld.
Uitlezen en schrijven
Om een kern uit te lezen, wordt een sense wire (uitleesdraad) door alle kernen in het platte vlak geleid. Om een kern te lezen, worden de X- en Y-selectiedraden aangestuurd om de gewenste kern naar de 0-staat te dwingen. Als de kern al in de 0-staat was, gebeurt er niets. Maar als de kern oorspronkelijk in de 1-staat was, verandert het magnetisch veld wanneer de kern van staat verandert. Dit wekt een kleine stroom op in de sense line, wat aangeeft dat de kern een 1 bevatte.
Let op dat het lezen van een bit de waarde ervan vernietigt. Daarom moet een kern na het lezen opnieuw worden beschreven om de oorspronkelijke gegevens te herstellen.
Om telkens een heel woord aan geheugen te benaderen, werden de geheugenlagen gecombineerd in een driedimensionale stack. Aangezien elke laag één bit van het woord bevat, zou een 16-bit woord een stack van 16 lagen hebben. Alle lagen delen de signalen om de X- en Y-lijnen aan te sturen, zodat een kolom van één woord in de stack parallel wordt benaderd. Elke laag heeft een aparte sense line om de bit uit te lezen.
Om verschillende waarden naar verschillende bits te schrijven, wordt een "inhibit"-lijn (remlijn) door alle kernen in een laag geleid, in de tegenovergestelde richting van de X-lijnen. Een stroom door de inhibit-lijn heft de stroom door de X-lijn op, waardoor de kern in die laag niet wordt gewijzigd.
Samenvattend bestond een lees-schrijfcyclus uit:
- Het activeren van een paar X- en Y-lijnen om een woord te selecteren en een 0 te schrijven naar de kolom kernen in dat woord.
- De sense lines leveren de uitlezing van de bitwaarden.
- Vervolgens worden de X- en Y-lijnen in de tegenovergestelde richting geactiveerd om een 1 naar de kernen te schrijven.
- Tegelijkertijd worden de inhibit-lijnen geactiveerd voor elke laag met een 0-bit. Zo flippen de kernen ofwel terug naar 1, of blijven ze op 0, zoals vereist.
De diode-matrix
Het laatste ingrediënt om kerngeheugen praktisch te maken, was de diode-matrix. De X- en Y-lijnen vereisen drivercircuits die snelle, bidirectionele hoogstroompulsen (bijv. 600 mA) kunnen produceren. Aangezien een geheugenlaag honderden van deze lijnen kan hebben, zou een aparte driver per draad zeer duur zijn.
De oplossing was om aparte drivers aan elk uiteinde van de draad te plaatsen, waarbij elke driver meerdere draden ondersteunt. Door een driver aan de bovenkant en een driver aan de onderkant te activeren, wordt de corresponderende draad geënergiseerd. Zo kunnen $N$ drivers aan elke zijde $N^2$ draden controleren, wat in totaal $N^4$ kernen ondersteunt.
Er is echter een probleem: stroom kan "sneak paths" (sluiproutes) nemen door de kernen. De oplossing is het toevoegen van diodes om ervoor te zorgen dat de stroom niet het verkeerde pad neemt. Omdat een draad met stroom in beide richtingen moet kunnen worden aangestuurd, zijn er twee diodes per draad nodig, één voor elke richting.
Het geheugen van de Spacelab-computer
Het geheugen van de Spacelab-computer werd gefabriceerd in 1980. Voor kerngeheugen is dit een late datum, waardoor dit systeem geavanceerd is en een hoge dichtheid heeft.
Technische specificaties
De computer heeft in totaal 128 KB RAM, verdeeld over vier core plane boards van elk 32 KB (16K woorden van 18 bits). Hoewel het een 16-bit computer is, heeft elk woord ook een pariteitsbit en een "storage protect"-bit, wat het totaal op 18 bits brengt. De storage protect-bit zorgde voor schrijfbescherming op woordniveau. Omdat kerngeheugen niet-vluchtig is, kon een programma één keer in het geheugen worden geladen en was het direct beschikbaar bij elke keer dat de computer werd ingeschakeld.
Elk board is georganiseerd met 1024 verticale (Y) draden en 288 horizontale (X) draden, wat 294.912 lithium-ferrietkernen ondersteunt. De kernen hebben een diameter van ongeveer 32 mils (0,8 mm), vergelijkbaar met de kernen in de IBM System/360, maar ze zijn veel dichter op elkaar gestapeld.
Geavanceerde architectuur: 2½D-geheugen
De Spacelab-computer maakte gebruik van een architectuur genaamd "2½D-geheugen", wat de prestaties verbeterde door de inhibit-lijn te elimineren.
Bij deze architectuur is er voor elke bit een apart X-drivercircuit. Bij het schrijven van data worden de X-lijnen alleen geactiveerd voor de bits die een 1 ontvangen; de andere lijnen blijven inactief, waardoor de bits op 0 blijven. Hoewel dit betekent dat er 18 keer zoveel X-drivercircuits nodig zijn (voor een 18-bit woord), werd dit door de komst van geïntegreerde circuits (IC's) kostentechnisch haalbaar.
Fase-omkering (Phase Reversal)
Om het aantal verticale drivers te halveren, werd een techniek genaamd fase-omkering gebruikt. Paren van verticale draden zijn verbonden via een U-verbinding. Door de draad in een bepaalde richting aan te sturen, kan de linker- of de rechterzijde van het paar worden geselecteerd. In de ene kern lopen beide stromen in dezelfde richting (waardoor een magnetisch veld ontstaat), terwijl ze in de andere kern elkaar opheffen. Door de stroomrichting in de verticale lus om te keren, wordt de andere kern geselecteerd.
Signaalverwerking en ruisonderdrukking
Het detecteren van signalen op de sense lines is lastig omdat de pulsen zeer klein zijn (enkele millivolts). Omdat de sense lines naast de X-driverlijnen lopen, kunnen ze gemakkelijk ruis oppikken. Om dit te minimaliseren, kruisen de sense lines elkaar tussen twee secties van de plaat, waardoor een "strikdas-vorm" ontstaat. Hierdoor loopt een X-lijn voor de helft van de lengte naast de positieve sense line en voor de andere helft naast de negatieve sense line, waardoor de geïnduceerde ruis elkaar opheft.
Overige borden in de geheugenstack
De geheugenstack bevat in totaal zeven borden: een driverboard, vier core-planes, een tweede driverboard en een interfaceboard.
Driverboards
Deze borden leveren de hoogstroompulsen voor de X- en Y-selectielijnen. Ze zijn volgepropt met gespecialiseerde kerngeheugen-driverchips (type SN55325 en SN55327) en logische chips om de drivers aan te sturen.
De configuratie is complex om het aantal drivers te beperken. De twee driverboards zijn zodanig verdeeld over de vier geheugenplaten dat een specifieke combinatie van driverboard 1 en 2 bepaalt welke van de vier geheugenplaten wordt geactiveerd.
Interfaceboard
Het laatste bord is de interface naar de rest van de computer. Het bevat veel transistor-arrays in DIP-behuizingen en veel weerstanden. Opvallend is dat het bord discrete transistors gebruikt om de bus aan te sturen in plaats van interface-chips. Er bevinden zich ook enkele wire-wrapped jumpers op het bord, vermoedelijk voor configuratiedoeleinden.
Conclusie
Kerngeheugen had een lange levensduur en overleefde de overgang van vacuümbuizen naar transistors en geïntegreerde circuits, maar werd uiteindelijk overbodig door semiconductor-geheugen. In de lucht- en ruimtevaart bleef het langer in gebruik vanwege twee belangrijke voordelen: het behoudt data zonder stroom (niet-vluchtig) en het is resistent tegen straling.
De Spacelab-computer uit 1980 bevond zich aan het einde van het tijdperk van kerngeheugen, wat te zien is aan de hoge dichtheid, het gebruik van IC's en de 2½D-architectuur. Uiteindelijk wonnen de hoge dichtheid, lage kosten en lage stroomconsumptie van semiconductor-geheugen. In 1991 vloog de Space Shuttle met geüpgradede IBM AP-101S computers die semiconductor-geheugen gebruikten. De Mitra-computers van Spacelab werden vervangen door de AP-101SL, een aangepaste versie van de AP-101S.
Hoewel kerngeheugen nu verleden tijd is, leeft het voort in de term "core dump".
***
Noten en referenties
[1] Er lijkt een onenigheid in bronnen over het aantal vluchten: sommige noemen 16 vluchten met de gepressuriseerde module, anderen 6 of 9 vluchten met enkel de ongepressuriseerde pallets.
[2] De Spacelab 125 MS computer werd gebouwd door het Franse bedrijf CIMSA, gebruikmakend van de Mitra-architectuur van CII. Op de grond werden functioneel identieke Mitra 125 S computers gebruikt, maar de 125 MS was gemilitariseerd en ontworpen voor extreme omgevingscondities.
[3] Spacelab was modulair. De bewoonbare module kon in twee maten worden gevlogen, of de computer en apparatuur konden in een kleinere gepressuriseerde cilinder, de "igloo", worden geplaatst.
[4] Er bestonden ook exotische ontwerpen, zoals systemen met twee kernen per bit of kernen met meerdere gaten (bijv. cubische BIAX-kernen) die non-destructieve uitlezing mogelijk maakten. De meeste systemen gebruikten echter standaard toroids.
[5] Later ontdekten bedrijven dat handmatige productie in Azië goedkoper was dan geautomatiseerde productie.
[6] De diode-array chip (FSA2977) bevat 16 diodes (8 common-cathode en 8 common-anode).
[7] De sense amplifiers zijn National Semiconductor DS5534 chips. Elke IC bevat twee differentiële versterkers die de kleine sense-signalen omzetten in logische signalen.
[8] De 2½D-architectuur was aantrekkelijk voor systemen met 16 Kword opslag of meer, omdat het elimineren van de inhibit-lijn de prestaties verbeterde.
[9] De 2½D-architectuur vereist aparte drivers per bit langs één as, niet langs beide.
[10] De richting van het magnetisch veld wordt bepaald door de "rechterhandregel": als de duim van de rechterhand in de richting van de stroom wijst, buigen de vingers in de richting van het magnetisch veld.
[11] De horizontale bedrading is asymmetrisch; de linkerkant heeft 8 diode-chips boven en 8 onder, terwijl de rechterkant 20 diode-chips heeft om alle 18 bit-groepen te ondersteunen.
[12] De driver-boards gebruiken SN55325 chips (twee 600 mA sources en sinks) en SN55327 chips voor de diode-matrix inputs.
[13] Semiconductor-geheugen verving kerngeheugen in de jaren 70.
[14] De overstap naar semiconductor-geheugen in de AP-101S vereiste batterij-backup (voor volatiliteit) en extra opslagbits per woord voor error-correcting codes om bit-flips door straling tegen te gaan. Tijdens één Shuttle-vlucht konden meer dan 100 bit-flips voorkomen.
Kerngeheugen in de ruimte: De core memory-module van een Spacelab-computer uit 1980
Omdat Spacelab een Europees project was, maakte het gebruik van een in Frankrijk gebouwde minicomputer, de Mitra 125 MS, [2] in plaats van de hoofdcomputers van de Shuttle, de door IBM gebouwde AP-101-systemen. Voor de opslag beschikte de Spacelab-computer over 128 kilobytes RAM. In plaats van siliciumgeheugen gebruikte de computer magnetisch kerngeheugen (core memory), waarbij elke bit werd opgeslagen in een kleine ferrietring.
In dit artikel wordt het kerngeheugensysteem van deze computer nauwkeurig bekeken.
De fysieke opbouw van het geheugen
De geheugenstack van de Spacelab-computer neemt ongeveer een derde van de computer in beslag. Het volledige zijpaneel van de computer is afneembaar, waarna de geheugenunit kan worden uitgeschoven. Omdat de computer via geleiding wordt gekoeld, zorgde de stevige bevestiging van de geheugenstack aan het zijpaneel ervoor dat deze koel bleef.
De geheugenstack bestaat uit zeven printplaten:
- Een driverboard;
- Vier core plane boards (geheugenlagen);
- Een tweede driverboard;
- Een interfaceboard.
Elke plaat heeft twee 160-pins connectoren die in een grote daughterboard aan weerszijden steken, wat zorgt voor uitgebreide connectiviteit tussen de platen. Het daughterboard aan de rechterkant heeft een extra 160-pins connector die de geheugenstack verbindt met de rest van de computer.
Hoe kerngeheugen werkt
Een van de grootste uitdagingen voor vroege computers was opslag. Computers uit het einde van de jaren 40 en begin jaren 50 sloegen data op via technieken zoals geluidsgolven in kwik, stippen op een CRT-scherm of draaiende magnetische trommels, maar deze hadden allemaal beperkingen. Er was behoefte aan compacte, goedkope opslag die snel en betrouwbaar was en waarbij willekeurige toegang (random access) mogelijk was.
Tijdens de Tweede Wereldoorlog ontwikkelde Duitsland speciale magnetische legeringen die konden "flippen" van de ene magnetische staat naar de andere. Na de oorlog realiseerden Amerikaanse onderzoekers zich dat deze materialen konden worden gebruikt voor het opslaan van binaire data.
Verschillende aspecten van kerngeheugen werden gepatenteerd door diverse uitvinders, waaronder Frederick Viehe, An Wang (Harvard), Jan Rajchman (RCA) en Jay Forrester (MIT), wat leidde tot kostbare patentstrijden. IBM betaalde uiteindelijk 400.000 dollar aan Wang—die het geld gebruikte om het bedrijf Wang Laboratories op te richten—en 13 miljoen dollar aan MIT. Jay Forrester wordt beschouwd als de belangrijkste uitvinder; hij ontwikkelde het ontwerp van het praktische kerngeheugen, deed onderzoek naar magnetische materialen en bouwde in 1953 het eerste kerngeheugen voor de baanbrekende Whirlwind-computer.
De basisprincipes
Kerngeheugen is gebaseerd op een kleine torusvormige magnetische kern, één per bit. [4] Een kern kan met de klok mee of tegen de klok in worden gemagnetiseerd om een bit op te slaan. Dit gebeurt door een draad door de kern te leiden: het sturen van een stroom door de draad wekt een magnetisch veld op dat de kern magnetiseert, terwijl een stroom in de tegenovergestelde richting de magnetisatie omkeert.
Een groot probleem was hoe de kernen bedraad konden worden zonder een absurd aantal draden te gebruiken. Als elke kern een aparte draad had, zou slechts 16 KB opslag meer dan 100.000 draden vereisen. De oplossing was "coincident current addressing" (gelijktijdige stroomadressering). De kernen zijn gerangschikt in een raster met horizontale en verticale draden. Door een stroom door één horizontale en één verticale draad te sturen, wordt de enkele kern op het kruispunt geselecteerd.
Om te voorkomen dat alle kernen langs deze draden worden gemagnetiseerd, zijn de kernen gemaakt van materialen met een eigenschap genaamd hysteresis: een kleine stroom laat de kern onveranderd, terwijl een grotere stroom de magnetische staat omkeert. De stromen door de horizontale en verticale draden zijn zo gekozen dat elke draad slechts de helft van de benodigde stroom levert om de kern te laten flippen; op het kruispunt samen zorgen de twee stromen voor een voldoende sterk magnetisch veld.
Uitlezen en schrijven
Om een kern uit te lezen, wordt een sense wire (uitleesdraad) door alle kernen in het platte vlak geleid. Om een kern te lezen, worden de X- en Y-selectiedraden aangestuurd om de gewenste kern naar de 0-staat te dwingen. Als de kern al in de 0-staat was, gebeurt er niets. Maar als de kern oorspronkelijk in de 1-staat was, verandert het magnetisch veld wanneer de kern van staat verandert. Dit wekt een kleine stroom op in de sense line, wat aangeeft dat de kern een 1 bevatte.
Let op dat het lezen van een bit de waarde ervan vernietigt. Daarom moet een kern na het lezen opnieuw worden beschreven om de oorspronkelijke gegevens te herstellen.
Om telkens een heel woord aan geheugen te benaderen, werden de geheugenlagen gecombineerd in een driedimensionale stack. Aangezien elke laag één bit van het woord bevat, zou een 16-bit woord een stack van 16 lagen hebben. Alle lagen delen de signalen om de X- en Y-lijnen aan te sturen, zodat een kolom van één woord in de stack parallel wordt benaderd. Elke laag heeft een aparte sense line om de bit uit te lezen.
Om verschillende waarden naar verschillende bits te schrijven, wordt een "inhibit"-lijn (remlijn) door alle kernen in een laag geleid, in de tegenovergestelde richting van de X-lijnen. Een stroom door de inhibit-lijn heft de stroom door de X-lijn op, waardoor de kern in die laag niet wordt gewijzigd.
Samenvattend bestond een lees-schrijfcyclus uit:
- Het activeren van een paar X- en Y-lijnen om een woord te selecteren en een 0 te schrijven naar de kolom kernen in dat woord.
- De sense lines leveren de uitlezing van de bitwaarden.
- Vervolgens worden de X- en Y-lijnen in de tegenovergestelde richting geactiveerd om een 1 naar de kernen te schrijven.
- Tegelijkertijd worden de inhibit-lijnen geactiveerd voor elke laag met een 0-bit. Zo flippen de kernen ofwel terug naar 1, of blijven ze op 0, zoals vereist.
De diode-matrix
Het laatste ingrediënt om kerngeheugen praktisch te maken, was de diode-matrix. De X- en Y-lijnen vereisen drivercircuits die snelle, bidirectionele hoogstroompulsen (bijv. 600 mA) kunnen produceren. Aangezien een geheugenlaag honderden van deze lijnen kan hebben, zou een aparte driver per draad zeer duur zijn.
De oplossing was om aparte drivers aan elk uiteinde van de draad te plaatsen, waarbij elke driver meerdere draden ondersteunt. Door een driver aan de bovenkant en een driver aan de onderkant te activeren, wordt de corresponderende draad geënergiseerd. Zo kunnen $N$ drivers aan elke zijde $N^2$ draden controleren, wat in totaal $N^4$ kernen ondersteunt.
Er is echter een probleem: stroom kan "sneak paths" (sluiproutes) nemen door de kernen. De oplossing is het toevoegen van diodes om ervoor te zorgen dat de stroom niet het verkeerde pad neemt. Omdat een draad met stroom in beide richtingen moet kunnen worden aangestuurd, zijn er twee diodes per draad nodig, één voor elke richting.
Het geheugen van de Spacelab-computer
Het geheugen van de Spacelab-computer werd gefabriceerd in 1980. Voor kerngeheugen is dit een late datum, waardoor dit systeem geavanceerd is en een hoge dichtheid heeft.
Technische specificaties
De computer heeft in totaal 128 KB RAM, verdeeld over vier core plane boards van elk 32 KB (16K woorden van 18 bits). Hoewel het een 16-bit computer is, heeft elk woord ook een pariteitsbit en een "storage protect"-bit, wat het totaal op 18 bits brengt. De storage protect-bit zorgde voor schrijfbescherming op woordniveau. Omdat kerngeheugen niet-vluchtig is, kon een programma één keer in het geheugen worden geladen en was het direct beschikbaar bij elke keer dat de computer werd ingeschakeld.
Elk board is georganiseerd met 1024 verticale (Y) draden en 288 horizontale (X) draden, wat 294.912 lithium-ferrietkernen ondersteunt. De kernen hebben een diameter van ongeveer 32 mils (0,8 mm), vergelijkbaar met de kernen in de IBM System/360, maar ze zijn veel dichter op elkaar gestapeld.
Geavanceerde architectuur: 2½D-geheugen
De Spacelab-computer maakte gebruik van een architectuur genaamd "2½D-geheugen", wat de prestaties verbeterde door de inhibit-lijn te elimineren.
Bij deze architectuur is er voor elke bit een apart X-drivercircuit. Bij het schrijven van data worden de X-lijnen alleen geactiveerd voor de bits die een 1 ontvangen; de andere lijnen blijven inactief, waardoor de bits op 0 blijven. Hoewel dit betekent dat er 18 keer zoveel X-drivercircuits nodig zijn (voor een 18-bit woord), werd dit door de komst van geïntegreerde circuits (IC's) kostentechnisch haalbaar.
Fase-omkering (Phase Reversal)
Om het aantal verticale drivers te halveren, werd een techniek genaamd fase-omkering gebruikt. Paren van verticale draden zijn verbonden via een U-verbinding. Door de draad in een bepaalde richting aan te sturen, kan de linker- of de rechterzijde van het paar worden geselecteerd. In de ene kern lopen beide stromen in dezelfde richting (waardoor een magnetisch veld ontstaat), terwijl ze in de andere kern elkaar opheffen. Door de stroomrichting in de verticale lus om te keren, wordt de andere kern geselecteerd.
Signaalverwerking en ruisonderdrukking
Het detecteren van signalen op de sense lines is lastig omdat de pulsen zeer klein zijn (enkele millivolts). Omdat de sense lines naast de X-driverlijnen lopen, kunnen ze gemakkelijk ruis oppikken. Om dit te minimaliseren, kruisen de sense lines elkaar tussen twee secties van de plaat, waardoor een "strikdas-vorm" ontstaat. Hierdoor loopt een X-lijn voor de helft van de lengte naast de positieve sense line en voor de andere helft naast de negatieve sense line, waardoor de geïnduceerde ruis elkaar opheft.
Overige borden in de geheugenstack
De geheugenstack bevat in totaal zeven borden: een driverboard, vier core-planes, een tweede driverboard en een interfaceboard.
Driverboards
Deze borden leveren de hoogstroompulsen voor de X- en Y-selectielijnen. Ze zijn volgepropt met gespecialiseerde kerngeheugen-driverchips (type SN55325 en SN55327) en logische chips om de drivers aan te sturen.
De configuratie is complex om het aantal drivers te beperken. De twee driverboards zijn zodanig verdeeld over de vier geheugenplaten dat een specifieke combinatie van driverboard 1 en 2 bepaalt welke van de vier geheugenplaten wordt geactiveerd.
Interfaceboard
Het laatste bord is de interface naar de rest van de computer. Het bevat veel transistor-arrays in DIP-behuizingen en veel weerstanden. Opvallend is dat het bord discrete transistors gebruikt om de bus aan te sturen in plaats van interface-chips. Er bevinden zich ook enkele wire-wrapped jumpers op het bord, vermoedelijk voor configuratiedoeleinden.
Conclusie
Kerngeheugen had een lange levensduur en overleefde de overgang van vacuümbuizen naar transistors en geïntegreerde circuits, maar werd uiteindelijk overbodig door semiconductor-geheugen. In de lucht- en ruimtevaart bleef het langer in gebruik vanwege twee belangrijke voordelen: het behoudt data zonder stroom (niet-vluchtig) en het is resistent tegen straling.
De Spacelab-computer uit 1980 bevond zich aan het einde van het tijdperk van kerngeheugen, wat te zien is aan de hoge dichtheid, het gebruik van IC's en de 2½D-architectuur. Uiteindelijk wonnen de hoge dichtheid, lage kosten en lage stroomconsumptie van semiconductor-geheugen. In 1991 vloog de Space Shuttle met geüpgradede IBM AP-101S computers die semiconductor-geheugen gebruikten. De Mitra-computers van Spacelab werden vervangen door de AP-101SL, een aangepaste versie van de AP-101S.
Hoewel kerngeheugen nu verleden tijd is, leeft het voort in de term "core dump".
***
Noten en referenties
[1] Er lijkt een onenigheid in bronnen over het aantal vluchten: sommige noemen 16 vluchten met de gepressuriseerde module, anderen 6 of 9 vluchten met enkel de ongepressuriseerde pallets.
[2] De Spacelab 125 MS computer werd gebouwd door het Franse bedrijf CIMSA, gebruikmakend van de Mitra-architectuur van CII. Op de grond werden functioneel identieke Mitra 125 S computers gebruikt, maar de 125 MS was gemilitariseerd en ontworpen voor extreme omgevingscondities.
[3] Spacelab was modulair. De bewoonbare module kon in twee maten worden gevlogen, of de computer en apparatuur konden in een kleinere gepressuriseerde cilinder, de "igloo", worden geplaatst.
[4] Er bestonden ook exotische ontwerpen, zoals systemen met twee kernen per bit of kernen met meerdere gaten (bijv. cubische BIAX-kernen) die non-destructieve uitlezing mogelijk maakten. De meeste systemen gebruikten echter standaard toroids.
[5] Later ontdekten bedrijven dat handmatige productie in Azië goedkoper was dan geautomatiseerde productie.
[6] De diode-array chip (FSA2977) bevat 16 diodes (8 common-cathode en 8 common-anode).
[7] De sense amplifiers zijn National Semiconductor DS5534 chips. Elke IC bevat twee differentiële versterkers die de kleine sense-signalen omzetten in logische signalen.
[8] De 2½D-architectuur was aantrekkelijk voor systemen met 16 Kword opslag of meer, omdat het elimineren van de inhibit-lijn de prestaties verbeterde.
[9] De 2½D-architectuur vereist aparte drivers per bit langs één as, niet langs beide.
[10] De richting van het magnetisch veld wordt bepaald door de "rechterhandregel": als de duim van de rechterhand in de richting van de stroom wijst, buigen de vingers in de richting van het magnetisch veld.
[11] De horizontale bedrading is asymmetrisch; de linkerkant heeft 8 diode-chips boven en 8 onder, terwijl de rechterkant 20 diode-chips heeft om alle 18 bit-groepen te ondersteunen.
[12] De driver-boards gebruiken SN55325 chips (twee 600 mA sources en sinks) en SN55327 chips voor de diode-matrix inputs.
[13] Semiconductor-geheugen verving kerngeheugen in de jaren 70.
[14] De overstap naar semiconductor-geheugen in de AP-101S vereiste batterij-backup (voor volatiliteit) en extra opslagbits per woord voor error-correcting codes om bit-flips door straling tegen te gaan. Tijdens één Shuttle-vlucht konden meer dan 100 bit-flips voorkomen.