Kernspeicher
Der Kernspeicher, Magnetkernspeicher, oder auch Ferritkernspeicher (englisch magnetic-core memory oder ferrite-core memory) ist eine frühe Form nichtflüchtiger Speicher von elektronischen Rechenmaschinen. Er besteht aus auf Drähten aufgefädelten hartmagnetischen Ringkernen (engl. cores), die durch elektrische Ströme in den Drähten ummagnetisiert und ausgelesen werden können. Das Vorzeichen der magnetischen Remanenz der einzelnen Ringkerne repräsentiert deren Speicherinhalt.
Kernspeicher wurden etwa von Mitte des 20. Jahrhunderts bis Ende der 1970er Jahre in den damals üblichen Rechenmaschinen eingesetzt. Sie besitzen heute keinen Anwendungsbereich mehr.
In allgemeinerem Sinn wird der Begriff aber auch für Arbeitsspeicher in anderen, neueren Technologien verwendet, im Sinne von „Speicher im Kern des Rechners“.
Geschichte
Die ersten Arbeiten führte 1949 der in Shanghai geborene Physiker An Wang an der Harvard Universität aus. Im Gegensatz zum MIT war Harvard nicht daran interessiert, seine eigenen Erfindungen patentieren zu lassen. Wang erwarb das Patent selbst unter der Bezeichnung pulse transfer controlling device.
Jay Forresters Gruppe, die am Whirlwind-Projekt am MIT gearbeitet hatte, erfuhr von Wangs Arbeit. Whirlwind brauchte ein schnelles Speichersystem für einen Echtzeit-Flugsimulator. Bisher mussten sie auf Williamsröhren (ein auf Kathodenstrahlröhren basierendes Speichersystem) zurückgreifen, diese waren aber anfällig und unzuverlässig.
Zwei Schlüsselerfindungen führten zur Entwicklung des Kernspeichers, welche erst die Entwicklung der in der heutigen Zeit bekannten Computer erlaubte. Die erste, An Wangs, war der write-after-read Cycle (Schreiben-nach-Lesen-Zyklus), der das Problem löste, dass das Auslesen einer Information dieselbe auch zerstört: die magnetische Polarität der Ringkerne kann nur bestimmt werden, indem diese ummagnetisiert werden.
Die zweite, Jay Forresters, war das coincident-current system (Zusammenfallende Ströme), welches die Steuerung einer großen Anzahl von Magnetkernen mit einer kleinen Anzahl von Drähten ermöglichte (siehe unten, Funktionsweise).
Kernspeicher wurden manuell hergestellt; die Arbeit wurde unter dem Mikroskop durchgeführt und erforderte feines Fingerspitzengefühl.
In den späten 1950er Jahren wurden in Asien Fabriken gebaut, in denen Niedriglohnarbeiter die Kernspeicher herstellten. Die Preise wurden so weit gesenkt, dass sowohl der günstige, aber in der Leistung niedrige Trommelspeicher als auch die teuren Hochleistungs-Systeme mit Elektronenröhren in den frühen 1960ern abgelöst werden konnten.
Durch die mechanische Komplexität und dadurch voluminöse Bauform war die Kapazität der Kernspeicher begrenzt. Es wurden Ausführungen bis zu einigen Megabytes gebaut. Dazu wurden allerdings schon mehrere Schaltschränke benötigt, bei weniger Platz bzw. Aufwand kam man auf weniger als 100 Kilobytes.
Obwohl die Herstellung der Kernspeicher kurz vor ihrer Automatisierung abgebrochen wurde, folgten die Kosten dem damals noch unbekannten Mooreschen Gesetz. Die Technologiekosten von anfangs ca. einem Dollar pro Datenbit sanken auf ca. 0,01 Dollar pro Datenbit, bis die Kernspeicher in den frühen 1970er Jahren durch die siliziumbasierten RAM abgelöst wurde.
Das Patent Wangs war noch bis 1955, als die Technologie bereits benutzt wurde, nicht genehmigt. Mehrere Gerichtsverfahren veranlassten IBM, Wang das Patent für mehrere Millionen Dollar abzukaufen. Wang nutzte das Geld, um die Wang Laboratories zu erweitern.
Kernspeicher gehörten zu einer Familie von Technologien, welche sich die magnetischen Eigenschaften von Werkstoffen zu Eigen machte. Neben den Ringkernspeichern wurde beispielsweise auch die Bauform mit Magnetstiftspeichern (bei ICL-Computern in den 1970ern) verwendet.
In den 1950er Jahren waren die Elektronenröhren schon ausgereift, aber dennoch anfällig und wegen der geheizten Glühdrähte kurzlebig, instabil und im Energieverbrauch zu hoch. Kernspeicher bildeten eine energiesparende, miniaturisierte und zuverlässige Alternative. Wesentlich war jedoch, dass er, wie der Trommelspeicher, den Speicherinhalt auch bei Abschalten der Betriebsspannung nicht verlor. Nach einem weiteren Miniaturisierungsschritt, der sogenannten Bubble-Memories, wurde er dann durch nichtflüchtige Halbleiterspeicher (EEPROM/Flash-Speicher) erst wirklich abgelöst.
Beschreibung
Funktionsweise
Ein Kernspeicher besteht im Wesentlichen aus einer großen Anzahl von magnetisierbaren, hartmagnetischen Ferrit-Kernen, welche zu Ringen geformt sind und daher als Ringkern bezeichnet werden. Hartmagnetisch bedeutet in diesem Zusammenhang, dass jeder Kern ein Datenbit in dem Vorzeichen der Remanenzflussdichte Br speichern kann. Zum Lesen bzw. Beschreiben der Kerne verlaufen mindestens zwei elektrische und gegenseitig isolierte Drähte durch die Ringöffnungen, wie in nebenstehender Abbildung an einem Kern verdeutlicht.
Der elektrische Strom Im im Schreibdraht muss zum Beschreiben so groß sein, dass die durch den Strom Im erzeugte magnetische Koerzitivfeldstärke Hc im magnetischen Kreis des Kernes überschritten wird. Dadurch kommt es in dem hartmagnetischen Werkstoff des Ringes, welcher eine fast quadratische Hystereseschleife aufweist, zu einer Speicherung des Zustandes im Vorzeichen der Remanenzflussdichte. Die Remanenzflussdichte kann zwei stabile Punkte annehmen, welche in der Hystereseschleife mit Br und -Br bezeichnet sind.
Gleichzeitig mit dem Schreibvorgang wird in dem zweiten Draht, der Leseleitung, ein Spannungsimpuls induziert, anhand dessen die Orientierung der ursprünglich im Kern gespeicherten Remanenzflussdichte festgestellt werden kann. Die Information kann also nur destruktiv ausgelesen werden. Der ggf. ummagnetisierte Kern muss dann neu beschrieben werden, um den ursprünglichen Dateninhalt wieder herzustellen.
Der Auslesevorgang ist in nebenstehender Abbildung der Hysteresekurven verdeutlicht: War im Kern zuvor eine positive Remanenzflussdichte +Br gespeichert, kommt es bei dem Einschreiben einer „0“ durch die große Änderung der magnetischen Flussdichte im Kern auf der Leseleitung zu einem Spannungsimpuls Ul in der Größenordnung von einigen 100 mV. In der Hysteresekurve links ist dick gezeichnet der Verlauf der Flussdichte verdeutlicht. Nach dem Abschalten des Stromes Im in der Schreibleitung bleibt im Kern die Remanenzflussdichte -Br zurück, was dem Zustand „0“ entspricht. War im Kern zuvor bereits eine negative Remanenzflussdichte -Br gespeichert, durchläuft die Flussdichte nur einen kleinen Teil der Hysteresekurve und die Änderungsrate ist minimal. Demzufolge ist der Spannungsimpuls auf der Leseleitung ebenfalls minimal. In beiden Fällen befindet sich der Kern nach dem Auslesen im Zustand „0“, und der ursprüngliche Speicherinhalt muss bei Bedarf durch einen inversen Strom -Im neu geschrieben werden.
Zusätzlich zu dem Kernspeichern sind für den Betrieb Leseverstärker notwendig, welche die geringen Spannungsimpulse auf der Leseleitung in passende logische Spannungspegel umwandeln. Zum Beschreiben sind Stromquellen notwendig.
Anordnung in einer Matrix
Damit nun nicht jeder Kern zwei eigene Drähte und einen eigenen Leseverstärker benötigt, wird folgender Kniff angewendet: Der Strom Im der Schreibleitung wird auf zwei Drähte aufgeteilt, welche nur noch je die Hälfte der zur Ummagnetisierung erforderlichen Stromstärke führen. Diese X- und Y-Drähte werden in einer Gitterstruktur (Matrix) angeordnet und tragen an jedem Kreuzungspunkt einen Kern. Soll nun ein bestimmter Kern angesprochen werden, so wird je die Hälfte des benötigten Stromes durch den betreffenden X-Draht und den betreffenden Y-Draht beigesteuert. Somit werden andere Kerne entweder nur durch die Hälfte oder gar keine Feldstärke erreicht und ändern ihren Zustand nicht.
Zur Realisierung eines 16-KBit-Speichers sind somit 2×128 Drähte und ebenso viele steuerbare Stromquellen nötig.
Lesen/Schreiben
Für das Lesen und Schreiben in einer Matrix werden zwei weitere Drähte benötigt, welche durch alle Kerne durchgeschleift werden – der Abtast-Draht (sense-line, S) oder auch S-Draht genannt, und in früheren Kernspeichern auch noch der Blockier-Draht (inhibit-line, Z).
Grundsätzlich wird immer ein Lese- und ein Schreibzyklus gleichzeitig ausgeführt. Im Lesezyklus wird mit den X- und Y-Drähten der entsprechende Kern zur logischen „0“ hin ummagnetisiert. Wenn der Kern schon vorher eine „0“ gespeichert hat, passiert im Lesezyklus nichts, bei der „1“ hingegen wird auf Grund der Ummagnetisierung ein Puls im S-Draht induziert. Im Schreibzyklus wird der Kern wieder in die „1“-Richtung magnetisiert. Im Falle einer vorher gespeicherten „0“ wird während des Schreibzyklus durch den Blockier-Draht ein Strom in gegensätzlicher Richtung geschickt. Dieser reicht aus, die Feldstärke der X- und Y-Drähte so weit abzuschwächen, dass der Kern nicht in die „1“-Richtung ummagnetisiert wird.
Da der Abtast-Draht und der Blockier-Draht nie gleichzeitig benutzt werden, benutzten spätere Systeme nur einen Draht. Eine zusätzliche Steuerung schaltet zwischen den zwei Funktionen um.
Computersysteme mit Kernspeicher nutzen oft aus, dass nicht jeder gelesene Wert überhaupt erhalten bleiben muss: Wenn z. B. zu einem Datenwort ein Wert hinzuaddiert werden soll, wird zunächst nur gelesen (Lesezyklus). Mit dem Schreibzyklus wird gewartet, bis die Addition abgeschlossen ist. Dann wird nicht der ursprüngliche Wert, sondern gleich das Additionsergebnis geschrieben. So kann die Geschwindigkeit gewisser Operationen verdoppelt werden.
Die Gesamtzeit, die für einen Lese-/Schreibzyklus verbraucht wurde, hieß Zykluszeit; sie war ein Maß für die Geschwindigkeit, mit der ein Kernspeicher betrieben werden konnte. Sie war bei Computersystemen der 1960er Jahre oft auch ein grobes Maß für die Gesamtleistung des Systems, so wie später die CPU-Taktrate.
Physikalische Eigenschaften
Frühe Systeme hatten Zykluszeiten (Lesen und Zurückschreiben) von ca. 20 µs, sie sank Anfang der 1960er Jahre auf 2 µs[1] und erreichte Anfang der 70er Jahre 0,3 µs.[2] Die möglichen Taktraten zwischen 50 kHz und 3 MHz lagen also in etwa derselben Größenordnung wie die der Heimcomputer der späten 1970er und frühen 1980er Jahre, beispielsweise des Apple II und des Commodore 64.
Datenworte mit 32 Datenbit wurden auf 32 Ebenen (je ein X-Y-Gitter) verteilt, somit kann auf ein ganzes Datenwort in einem Lese-Schreib-Zyklus zugegriffen werden.
Kernspeicher sind nichtflüchtige Speicher – sie erhalten die Information auf unbegrenzte Zeit ohne Strom. Auch sind Kernspeicher robust gegenüber elektromagnetischen Impulsen, hohen Temperaturen und Strahlung. Das sind wichtige Vorteile bei militärischen Anwendungen wie Kampfflugzeugen, aber auch bei Raumfahrzeugen. Mehrere Jahre über den Beginn der Verfügbarkeit von Halbleiterspeichern hinaus wurden hierbei Kernspeicher verwendet.
Charakteristisch für Kernspeicher: sie reagieren auf den Strom, nicht auf die Spannung – der Lesedraht liefert jedoch einen Spannungsimpuls. Das war eine wichtige Voraussetzung für hohe Taktraten bei relativ großen geometrischen Ausdehnungen der Speicher.
Der Selektierstrom (half select current) Im/2 war typischerweise 400 mA für die späten kleineren und schnelleren Speicher. Frühere Speicher brauchten größere Ströme.
Der Durchmesser der Ringkerne bewegt sich in der Größenordnung 1 mm bis zu 0,25 mm bei der kürzesten Zugriffszeit.[3]
Eine negative Eigenschaft der Kernspeicher ist die Abhängigkeit der Hysterese von der Temperatur. Der Selektierstrom wird daher von der Steuerung angepasst – mit Hilfe eines Sensors wird die Temperatur gemessen. Der Programmed Data Processor PDP-1 von Digital Equipment Corporation ist ein Beispiel dafür. Andere Systeme umgingen das Problem, indem der Speicher in einem temperaturgeregelten Behälter untergebracht war. Als Beispiele seien hier der IBM 1620 (er brauchte bis zu 30 Minuten, um die Betriebstemperatur von 41 °C zu erreichen) oder der im geheizten Ölbad untergebrachte Speicher des IBM 709 genannt.
Weitere Bauformen
Der destruktive Auslesevorgang und das zwangsweise Neuschreiben eines gelesenen Bits bei dem klassischen Ringkernspeicher führte in den 1960er und 1970er Jahren zu einer Reihe von Weiterentwicklungen, welche diesen Nachteil beheben. Eine Möglichkeit besteht darin, den magnetischen Kreis so zu konstruieren, dass die Richtungsabhängigkeit der magnetischen Flussdichte ausgenutzt wird. Diese Kerne werden auch als Biax-Kerne bezeichnet.
Dabei werden am quaderförmigen Kern zwei Löcher angebracht, welche orthogonal zueinander stehen. Durch ein Loch wird der Abfragedraht geführt, durch das andere Loch zwei Drähte: der Schreibdraht und der Lesedraht. Bei dem Auslesen des Kernes wird nur durch den Abfragedraht ein Stromimpuls geschickt, welcher je nach Remanenzflussdichte im Kern einen positiven oder negativen Spannungsimpuls am Lesedraht verursacht. Es kommt dadurch aber noch zu keiner dauerhaften Änderung der magnetischen Flussdichte im Kern, der Kern verliert seinen Speicherinhalt nicht. Zum Beschreiben müssen gleichzeitig zwei hinreichend große Stromimpulse in entsprechender Richtung sowohl durch den Abfragedraht als auch durch den orthogonal dazu stehenden Schreibdraht geschickt werden. Erst dadurch wird der Betrag der Koerzitivfeldstärke überschritten und es kommt zum Speichern des neuen Zustandes.[4]
Weitere Kernbauformen, welche unterschiedliche Flussdichteverteilungen in magnetischen Kreisen ausnutzen, werden als Transfluxor bezeichnet. Dabei werden auf den Ringkern zwei unterschiedlich große Löcher asymmetrisch angebracht und dadurch drei Leitungen geführt. Durch die unterschiedlichen Breiten der Schenkel, bedingt durch die Asymmetrie und Größe der Bohrungen im magnetischen Kernmaterial, ergibt sich auch bei dieser konstruktiven Variante die Möglichkeit, den Speicherinhalt nicht destruktiv auslesen zu können.
Verschiedenes
Die im Technikjargon übliche Bezeichnung core dump, welche insbesondere in der hardwarenahen Programmierung als Ausdruck für einen Speicherauszug in Form einer Momentaufnahme steht, leitet sich von den Kernspeichern ab. Zur Fehlersuche werden alle Kerne (cores) ausgelesen (dump), um so mögliche Programmfehler ausfindig machen zu können.
Literatur
- F. Dokter, J. Steinhauer: Digitale Elektronik in der Meßtechnik und Datenverarbeitung. 2, Philips Fachbücher, Hamburg 1970, ISBN 3-87145-273-4, S. 276-313.
Patente
- Patent US2667542: Electric connecting device (matrix switch with iron cores). Angemeldet am September 1951, veröffentlicht am Januar 1954.
- Patent US2708722: Pulse transfer controlling devices. Angemeldet am Oktober 1949, veröffentlicht am Mai 1955, Erfinder: An Wang.
- Patent US2736880: Multicoordinate digital information storage device (coincident-current system). Angemeldet am Mai 1951, veröffentlicht am 28. Februar 1956, Erfinder: Jay Forrester.
- Patent US3161861: Magnetic core memory (improvements). Angemeldet am November 1959, veröffentlicht am 1. Dezember 1964, Erfinder: Ken Olsen.
- Patent US4161037: Ferrite core memory (automated production). Veröffentlicht am Juli 1979.
- Patent US4464752: Multiple event hardened core memory (radiation protection). Veröffentlicht am August 1984.
Weblinks
- Artikel über Kernspeicher im Lexikon eines Fördervereins für Technikgeschichte
- Kernspeicher, in einem Museum noch immer in Benutzung
Einzelnachweise
- ↑ Kristalloden Technik 2. Ergänzungsband 2. Auflage, R. Rost, Verlag von Wilhelm Ernst & Sohn 1960, S. 56
- ↑ Digitalspeicher mit Ferritkernen, Robert Schmitt, Verlag Siemens AG Berlin-München 1971
- ↑ Digitalspeicher mit Ferritkernen, Robert Schmitt, Verlag Siemens AG Berlin-München 1971
- ↑ C.J. Quartly: Schaltungstechnik mit Rechteckferriten. Philips Technische Bibliothek (Firmenschrift), Eindhoven 1965.