Apollo Core Memory & Rope ROM: Wenn 24V-Relais auf die Mondlandung treffen
Wie ein handgewebtes Core-Rope ROM, eine 32×32 Ferritkern-Ebene und die 3D-Architektur des 16-Bit Core Memory Cube (16.384 aktive Ringkerne) Peter Prikaskys elektromechanisches Meisterwerk um unverlierbaren Speicher und historische Computertechnik erweitern.
Als die Apollo-11-Astronauten 1969 auf dem Mond landeten, lief ihre Bordnavigationssoftware auf einer der faszinierendsten Speichertechnologien der Computergeschichte: dem Core Rope ROM des Apollo Guidance Computer (AGC). Da Halbleiterspeicher damals noch extrem fehleranfällig und strahlungsempfindlich waren, ließ die NASA den Programmcode buchstäblich einfädeln.
🔬 Ken Shirriffs Dekonstruktion des Apollo AGC Rope ROMs
Der renommierte Hardware-Historiker Ken Shirriff hat in seiner maßstabsetzenden Analyse detailliert nachgewiesen, wie genial das physikalische Prinzip des Core-Rope Speichers war:
„Im Gegensatz zu herkömmlichem Ringkern-RAM speichert beim Core-Rope nicht jeder Kern ein einzelnes Bit. Stattdessen fungiert jeder Kern als kleiner Transformator. Führt ein Draht durch den Kern, wird beim Abfragepuls ein Signal induziert (logisch 1). Führt der Draht am Kern vorbei, bleibt die Induktion aus (logisch 0). Bis zu 64 Drähte konnten so durch einen einzigen Kern gefädelt werden.“
Vollständige technische Analyse: Ken Shirriff: Inside the Apollo Guidance Computer's core rope memory ↗
🧶 Das „Little Old Lady Memory“ (LOL Memory)
Weil der Code physisch mit Kupferdraht und Nadeln durch mikroskopische Ringkerne gezogen werden musste, heuerte die NASA erfahrene Textilarbeiterinnen aus Fabriken in Waltham (Massachusetts) an. Die Ingenieure nannten den Speicher daher liebevoll „LOL Memory“ („Little Old Lady Memory“).
- Führt ein Kupferdraht durch den Ringkern: Induktionsimpuls → logische „1“.
- Wird der Kern umgangen: Keine Induktion → logische „0“.
- Unverlierbar & unzerstörbar: Kein Datenverlust bei Spannungsausfall, resistent gegen mechanische Erschütterungen und kosmische Strahlung.
Für unseren 16-Bit Relaiscomputer bedeutet das: Feste Bootloader, mathematische Tabellen (Wurzel, Sinus) und Testprogramme sind sofort beim Einschalten der 24V-Versorgung ohne Boot-Verzögerung verfügbar!
1. 32×32 Ferritkern-Ebene (Prototyp)
100×100 mm Trägerplatine mit 54×54 mm Freifenster für 1.024 Ringkerne (DDR VEB Elektronik Gera 5221.3, 0,8×0,5 mm). Erste Bit-Ebene zur Verifikation von Halbstrompulsen und Lesesignalen.
- 32 X-Treiberleitungen & 32 Y-Treiberleitungen (Halbstrom $I_{half}$)
- Diagonale Sense-Wicklung zur Störunterdrückung
- Inhibit-Leitung für selektives Schreiben
2. 16-Bit Core Memory Cube (16.384 Kerne)
Der finale 3D-Kernspeicher-Würfel nach historischem Vorbild (IBM 7090, DEC PDP-8): 16 identische 32×32 Bit-Ebenen werden übereinander gestapelt, um die vollen 1.024 Worte à 16 Bit für Peter Prikaskys Relais-CPU bereitzustellen.
- 16 Bit parallel in 1 Zyklus: Jede Ebene liefert 1 Bit des 16-Bit-Wortes
- 64 gemeinsame Treiber: Die 32 X- und 32 Y-Schienen laufen senkrecht durch alle 16 Ebenen durch
- 100% Halbleiter-freies RAM: Vollständiger, authentischer Ersatz für das bisherige Arduino-RAM
3. Handgewebtes Apollo Core-Rope ROM
Fädelrahmen mit Steck- und Lötpins für 64 Worte à 16 Bit. Nutzt 64 Ringkerne als Transformatoren nach Ken Shirriffs Apollo AGC Vorbild für unzerstörbaren Maschinencode.
- 16 Sense-Drähte pro Kern für sofortiges 16-Bit Wort-Auslesen
- Direkt über Relaiskontakte adressierbar („LOL Memory“)
- Fester Kaltstart-Bootloader, Dijkstra-Algorithmus & Selbsttests
4. Controller-Baseboard & Treiberstufen
Hochpräzises Steuerboard mit RP2040 Dual-Core MCU. Erzeugt jitterfreie Mikrosekunden-Strompulse für die Ringkerne und entlastet den zentralen Arduino.
- Stabile Leseverstärker (Sense Amplifiers) für Millivolt-Spannungspeaks
- Bidirektionale Pegelanpassung zwischen 3,3V Logik und 24V Relaisbus
- Behebt die Display-Instabilitäten des bisherigen Arduino-Setups
DDR-Ferritkerne & AGC Rope ROM Konzeption
Christian hat DDR-Ferritkerne (VEB Elektronik Gera 5221.3, Außendurchmesser 0,8 mm, Innendurchmesser 0,5 mm) für die 32×32 Ferritkern-Ebene und das Rope-ROM beschafft. Nach Analyse der historischen Apollo Guidance Computer Dokumentation und Ken Shirriffs Analysen steht fest: Wir kombinieren eine 32×32 Ferritkern-Ebene (1.024 Ringkerne) als RAM mit einem handgewebten Core-Rope ROM als Kaltstart-Bootloader. Peter ist begeistert und ChatGPT wurde ebenfalls konsultiert – die Idee, ein ROM mit Nadel und Faden zu nähen, sorgt für Begeisterung im Team!
Display-Jitter auf dem 32×32 LED-Feld & RP2040 Controller-Lösung
Peter berichtete, dass der aktuelle Arduino bei der Ansteuerung der 32×32 LED-Matrix nicht stabil läuft. Unsere Analyse bestätigt: Ein Standard-Arduino (ATmega328P mit 16 MHz) gerät bei der parallelen Erzeugung der Multiplex-Taktzyklen und der Relaisbus-Abtastung an seine Grenzen. Die Lösung: Ein dediziertes RP2040 Controller-Baseboard mit 133 MHz Dual-Core und programmierbaren PIO-Zustandsmaschinen übernimmt die Matrix-Aktualisierung und die hochpräzisen Koinzidenzstrom-Halbstromimpulse ohne CPU-Jitter.
Sense-Verstärker & Koinzidenzstrom-Dimensionierung
Beim Schalten eines Ferritkerns entsteht in der Leseschleife nur ein winziger Spannungsimpuls im Bereich von 20 bis 50 mV über eine Dauer von etwa 100 Nanosekunden. Wir haben die Eingangsstufe mit schnellen Differenz-Komparatoren ausgelegt, die diesen Impuls auf 3,3V CMOS-Pegel anheben und als Latch für das 16-Bit Relaisbus-Interface zwischenspeichern.
Peter Prikasky
- Rolle: Schöpfer & Konstrukteur des 16-Bit Relaiscomputers.
- Fokus: Diskrete 24V-Schwachstromrelais, Diodenmatrizen, mechanische Taktung und Punkt-zu-Punkt Rückwandbusse.
- Leidenschaft: „Einfach aus Spaß an der Freude... wie eine Modelleisenbahn oder ein ferngesteuertes Flugzeug.“
- Website: relaiscomputer.at ↗
Christian Buchhas
- Rolle: Entwickler von Clack-BASIC Compiler & Clack-Studio Simulator.
- Fokus: Drei-Adress-Code Übersetzung, Algorithmen (Dijkstra, Pi, Wurzel), Ferritkern-Beschaffung und Apollo Rope ROM.
- Mission: Die Wiederbelebung haptischer Computerarchitektur für Forschung und Bildung.
- Platform: relaycomputer.org ↗
Antigravity AI
- Rolle: Autonomer Pair-Programming Assistent & Systemingenieur.
- Fokus: KiCad Leiterplatten-Design, Timing-Berechnungen, Web-Audio Relaissound-Synthesizer und Dokumentation.
- Superpower: Berechnet Kernspeicher-Treiberschaltungen schneller als ein Relais anziehen kann.
- Status: Rund um die Uhr im Labor aktiv.