Magnetkjerneminne

Et **magnetkjerneminne**, eller **kjernelager** er et digitalt lagringsmedium eller minne som ble brukt i tidlige kalkulatorer og datamaskiner og var en forløper til dagens RAM. Informasjon blir værende når minnet er strømløst ('av'), en essensiell egenskap. Minnet er en RAM (random access memory) av type, som betyr at data kan hentes fra en vilkårlig del av minnet, altså *adressert*. I andre av datidens minnevarianter som trommelminnet og kvikksølvminnet leses hele innholdet ut sekvensielt og er altså ikke adresserbart. Magnetkjerneminnet ble oppfunnet i 1952 og først tatt i bruk i regnemaskinen Harvard Mark IV. Magnetkjerneminnet gikk ut av salg rundt 1975.

## Virkemåte

En ferritkjerne er formet som en  toroid (smultringsform) og består av ferrit, et permanent magnetiserbart materiale. Dette betyr at en slik kjerne kan lagre en databit som magnetisk remanens *+B<sub>r</sub>* eller *-B<sub>r</sub>* avhengig av magnetiseringsretningen. Kjernen er markant forskjellig fra en transformatorkjerne. Sistnevnte har ikke remanent magnetisme og derfor ingen magnetisk hukommelse. Transformatorkjerner er laget av såkalt bløtt magnetisk materiale, i motsetning til i minnet, der materialet kalles magnetisk hardt.

Gjennom ringen fører et antall isolerte elektriske ledere. 

For å magnetisere kjernen blir elektrisk strøm ledet gjennom åpningen i ringen. Dersom strømmen *I* er stor nok vil feltstyrken som oppstår nå den koersitive feltstyrken *H<sub>c</sub>*, dette fører til at ferritringen blir magnetisert i den tilsvarende retningen. På denne måten kan det defineres at en positiv strømpuls vil lagre en '1', en negativ puls en '0'.

I et ferritlager representeres hvert bit av en ferrittkjerne. Hver kjerne gjennomløpes som nevnt ovenfor funksjonelt betinget av tre til fire isolerte koppertråder. Kjernene er anordnet i et raster og nettet av tråder holder dem fysisk på plass. Et magnetkjerneminne måtte lages for hånd, noe som krevde stor fingerferdighet og satte en temmelig høy pris. For å redusere prisen ble høye stykktall nesten utelukkende fremstilt i Østen.

To av trådene gjennon en kjerne tilhører henholdsvis en spalte og en linje av kjerner i rasteret, som i et koordinatsystem med Y og X. Spaltetråden går gjennom alle kjernene i spalten, og linjetråden går gjennom alle kjernene i linjen. Ved skriving sendes en strømpuls gjennom begge trådene. Strømpulsen fra hver enkelt tråd er ikke nok til å magnetisere kjernen, men pulsen fra to tråder samtidig er tilstrekkelig. Strømstyrken i en spalte eller linje kalles derfor gjerne halvstrøm. Slik blir bare en eneste kjerne magnetisert, i krysningspunktet mellom aktiv spalte og aktiv linje. Hver enkelt kjerne er slik *adresserbar* gjennom den implisitte logiske "og"-funksjonen i krysningspunktet. Strømretningene, som må være like, altså gå samme vei gjennom kjernen, bestemmer om '1' eller '0' skrives.

Minnet kan også ha dybde, eller flere lag, eller matter, satt over hverandre. Oftest var organiseringen slik at hvert lag inneholdt ett bit av tallet som lagres. Hvert lag kan ha egne tråder og drivere for dem, de kan altså være isolerte fra hverandre og uavhengige, men av rasjonelle årsaker koples i praksis noen av trådene sammen, se nedenfor. Med 8 lag kan en adressere bytes og med 16 lag kan 16-bits 'ord' dannes. 

For å lese data ut fra minnet (et bit, en nibble (4 bits), en byte eller et 12 til 16-bits ord, alt etter antall lag) brukes en lesetråd som går gjennom samtlige kjerner i ett lag og derfra til en forsterker. Det skrives så '1' til den kjernen som skal leses, som vanlig adressert med spalte- og linjetrådene X og Y.
Hvis det stod '1' fra før ble det ingen endring og lesetråden fikk ikke signal. Stod der en '0', ble kjernen ommagnetisert og lesetråden sender derfor den induserte spenningspulsen til forsterkeren og derfra til et leseregister. Resultatet lagres slik i regneenheten, som har mange billigere ikke-permanente lagerplasser. Leseprosessen er således destruktiv for de leste data i kjernelagret; umiddelbart etter lesing står alltid '1' der. Nuller må derfor skrives tilbake etter lesing hvis informasjonen fortsatt skal beholdes i kjernelagret.

Gjennom alle kjernene går også en hindre-tråd (engelsk: "Inhibit"). Denne brukes ved skriving. For å la "1" etter lesing bli stående kunne systemet gjøre ingenting. Dette er likevel upraktisk, i praksis skrives alle data tilbake. Dette gjøres ved at det skrives "0" med X- og Y-trådene til alle adressert kjerner i lagene samtidig. Ved selektivt å sende en samtidig reduserende halvstrøm gjennom hindre-tråden vil skriving av "0" forhindres og "1" blir stående der det skal. Ved å gjøre det slik kan hver enkelt "X"-tråd i alle lag koples sammen. Tilsvarende koples "Y"- trådene som ligger over hverandre i mattene, sammen. Flere lag krever derfor ikke mye ekstra styreelektronikk, kun for lese- og hindretrådene kommer tillegg. Siden lesetråden kun brukes ved lesing og hindre-tråden kun ved skriving kom det etter hvert tre-tråders i stedet for fire-tråders systemer. Den ene tråden ble da kalt lese/hindre-tråd.

Aksesstiden lå rundt 1 us for et bit per lag og skrive-halvstrømmen for en spalte eller linje lå rundt 200 mA. Tidlige minner var noe langsommere. Prisen for 32 kB var i 1965 rundt 3.000 USD.

Kjernelagre var i motsetning til andre adresserbare lagringsmetoder ansett som høyst pålitelige. De tålte sterke eksterne magnetiske og elektriske forstyrrelser godt.
 
Minnet i en ordinær minimaskin bestod i 1970 av 8-16 KB, dvs. 65&nbsp;536-131&nbsp;072 ferritkjerner.

## Eksterne lenker
*  Blant annet om virkemåten for flere eldre minnetyper
*  Nærmere om magnetkjerneminnet