Ein Computer mit Relais
Du interessierst Dich für Informatik und hast Dich schon immer gefragt, wie so ein Computer funktioniert? Im Jahr 2020 wurde deshalb ein anschaulicher Relaiscomputer konstruiert und ein Versuchsmodell gebaut.

Der Relaiscomputer lässt Dich das Rechnen hautnah miterleben und Du wirst überrascht sein, wie einfach doch alles ist.
Inhalt
Der Relaiscomputer kurz vorgestellt
Im Relaiscomputer blinken sehr viele Leuchtdioden 1 und Segmentanzeigen 2 um Dir einen visuellen Eindruck von den Schaltvorgängen in einem Rechner zu vermitteln. Über Taster, Drahtbrücken und Stiftleisten 3 kannst Du alle Funktionen einzeln ausprobieren und natürlich den Computer mit 16 Befehlen in Maschinensprache 4 programmieren.
Das Funktionsprinzip des Relaisrechners basiert auf der von Neuman Architektur 5 und er kann Daten bis zu 8 bit Breite verarbeiten. Mit seiner 1 Hz Taktrate 6 ist er nicht nur sehr langsam, sondern verfügt auch nur über 16 Byte Schreib Lese Speicher (RAM) 7 oder alternativ über einen ebenso großen Nur Lese Speicher (ROM) 8. Du wirst aber erstaunt sein, welche Aufgabenstellungen man mit nur 16 Byte Programmcode lösen kann.
Keine Scheu vorm Dualsystem 9. Der Relaiscomputer kann binäre Zahlen ebenso Hexadezimal 10 wie auch Dezimal 11 anzeigen und Du kannst sogar 3stellige Dezimalzahlen eingeben.
Dabei kommt der Relaiscomputer völlig ohne Chips und Transistoren aus. Das eigentliche Rechnen, die Logikoperationen, das Speichern der Daten und des Programmcodes erledigen ungefähr 700 Relais 12 und ca. 1500 Dioden 13.
Alle Baugruppen zusammen, mit mehr als 3.000 elektronischen Einzelbauteilen, sind auf 70 eigens hierfür angefertigten Leiterplatten 14 im Europa-Karten Format mit gut 400 m Kabel verschaltet und auf zwei Tafeln 86 cm x 78 cm (B x H) montiert. Die Spannungsversorgung erfolgt über ein kleines 12V Netzteil. Dabei hat der Relaiscomputer nur eine Leistungsaufnahme von max. 60 Watt.

Hier kannst Du den Relaiscomputer in Aktion sehen. Sieh Dir das Video Relais Computer rechnet die Fibonacci Reihe auf Youtube @relaiscomputer an.

Hardware
- 1500 Dioden
- 700 Relais
- 450 LED
- 92 Taster
- 65 LED Anzeigen
- 24 Module auf 70 PCB 10x16
- 12V, max. 60W Leistungsaufnahme

Eigenschaften
- 8 bit Bus
- 16 Befehle
- 1 Hz Taktfrequenz
- 32 bit Steuerbus
- 16 Byte RAM & ROM
- Dezimal I/O
- frei programmierbar
allgemeines Funktionsprinzip
Die wesentlichen funktionalen Bereiche im diesem Computer lassen sich wie folgt einteilen:
- Rechenwerk mit ALU und Registern
- Steuerwerk und Arbeitstakt
- Speicher (RAM und ROM)
- Ein- und Ausgabe
Während das Rechenwerk 15 für die Addition und eine Hand voll logischer Operationen zuständig ist, sorgt das Steuerwerk 16 für den automatisierten Programmablauf im System. Der Speicher enthält sowohl Daten als auch Programmcode als eine Folge von Befehlen gleichermaßen. Die Ein- und Ausgabe wiederum ist hier die Schnittstelle zum Benutzer, also uns Menschen.
Sämtliche Funktionsgruppen im Rechner sind über zwei Bussysteme 17 miteinander verbunden.
- Der Steuerbus lenkt die einzelnen Steuersignale aus dem Steuerwerk auf die zuständige elektrische Baugruppe. Insgesamt gibt es 32 unterschiedliche Steuersignale.
- Der Datenbus ist 8 bit breit und für den Datenaustausch zwischen den einzelnen Modulen zuständig.
Blockschaltbild
Abb.: Schematischer Aufbau des Relaiscomputers, von Neumann Architektur
Rechenwerk und Speicher
Im Kern besteht das Rechenwerk aus der sogenannten Arithmetik Logical Unit - kurz ALU 18 und den direkt verbundenen Registern 19. Das Addierwerk 20 ist das Herzstück eines jeden Rechners, da alle vier Grundrechenarten auf die Addition zurückführbar sind. Die Subtraktion beispielsweise wird mit dem Zweierkomplement 21 des Subtrahenden als Addition ausgeführt. Als logische, bitweise Operationen 22 unterstützt das Rechenwerk die Operatoren NOT (nicht), AND (und) und OR (oder). Zwei getrennte Datenspeicher 23 RAM und ROM zu je 16 Byte können Maschinenbefehle und Daten aufnehmen. Das Programm kann entweder nur aus dem 16 byte ROM oder aus dem gleichgroßen RAM ausgeführt werden.
Steuerwerk
Das Steuerwerk wird vom Takt 24 zum Leben erweckt. Mit jedem Impuls wird ein Asynchronzähler 25 um einen Schritt weiter geschaltet. Der hieran angeschlossene Dekoder 26 führt für jeden Schritt Mikrobefehle 27 aus, welche zusammen den Befehlszyklus 28 ergeben. In diesem Relaisrechner gibt es eine Besonderheit, dass die Länge des Befehlszyklus variabel sein kann.
Die auszuführenden Befehle sind im Speicher abgelegt. Das Steuerwerk sorgt auch dafür die Speicherstellen anzusprechen, im Fachjargon "zu adressieren".
I/O - Dezimalein- und Ausgabe
Zu jeder Datenverarbeitungseinheit gehört auch die Ein- und Ausgabe von Daten. Um die die Anschaulichkeit zu erhöhen werden im Relaiscomputer Ergebnisdaten als BCD-Code 29 aufbereitet und dezimal 3-stellig dargestellt. Über eine Tastatur können ebenso 3stellige Dezimalzahlen eingegeben werden.
Die Umwandlung vom Binärformat in den BCD-Code ist recht aufwändig und mit vielen Berechnungen verbunden, weshalb hier eine reine Hardwarelösung mittels Double Dabble 30 Algorithmus zum Einsatz kommt.
Nicht weniger umständlich ist auch die Umwandlung einer 3stelligen Dezimaleingabe über die Tastatur in das Binärformat. Hierfür kommt ein Kodierer 31 und ein eigens dafür entwickelter Maschinenbefehl zum Einsatz. Also eine Kombination aus Hardware 32 und Software 33.
konstruktive Herausforderungen
Eine Herausforderung war die Menge der benötigten elektronischen Bauteile und die gewünschten Eigenschaften gegeneinander abzuwägen, da hiervon sowohl der Raumbedarf, die nicht zu unterschätzende elektrische Leistungsaufnahme 34 als auch die Projektkosten abhängen. Schließlich sollte der Rechner nur mit Relais und diskreten Bauteilen 35 aufgebaut sein und dabei mit einer handelsüblichen Stromversorgung betrieben werden können.
Welche Zahlen sollen darstellbar sein?
Die größte zu speichernde Zahl bestimmt direkt die Anzahl der bits, also die Breite eines Datenwortes, welche die Computerarchitektur benötigt.
Um Zahlen und sonstige Daten in einem Rechner abzubilden bzw. zu verarbeiten wird eine bestimmte Anzahl bits, auch Wortbreite oder Datenwort 36 genannt, für den Speicher, die Register, die ALU, den Datenbus und für die Ein- und Ausgabe vorausgesetzt.
Am Beispiel positiver ganzer Zahlen:
- mit einem (1) bit kann man die Zahlen 0 und 1 abbilden
- mit zwei (2) bit kann man die Zahlen 0, 1, 2 und 3 abbilden
- bei drei (3) bit kann man die Zahlen von 0 bis 7 abbilden
- jedes weitere bit verdoppelt Größe der größten abbildbaren Zahl: 15, 31, 63, 127, 255, 511, 1023, usw...
Speichergröße und Maschinenbefehle
Die Anzahl möglicher Maschinenbefehle und des adressierbaren Speichers ist als Teilmenge der größten zu speichernden Zahl im System bestimmt.
Durch die von Neuman Rechnerarchitektur teilen sich Daten und Befehle den gleichen Speicher. Üblicherweise besteht ein Maschinenbefehl aus dem sogenannten Op-Code (Operation Code) und einem optionalen Parameter, bspw. einer Speicheradresse.
Somit könnte man die zur Verfügung stehende Wortbreite für Maschinenbefehl und Speicheradresse aufteilen. Die Aufteilung muss nicht zwingend zu gleichen Teilen erfolgen. Bereits mit einem Befehlssatz von "nur" 16 Maschinenbefehlen, sind eine Vielzahl von Berechnungen möglich.
Folgende Tabelle zeigt den Zusammenhang zwischen
- der Breite des Datenwortes (bit)
- der größten zu speichernde Zahl (Zahl)
- Anzahl der Maschinenbefehle (op)
- der technisch möglichen Größe des Speichers (RAM)
- Anzahl der Relais je ein Datenwort (Spalte 1x)
- Anzahl der erforderlichen Relais insgesamt
- Energiebedarf dieser Bauteile in (Watt)
bit | Zahl | op | RAM | 1x | Relais | Watt |
---|---|---|---|---|---|---|
4 | 15 | 4 | 4 | 6 | 4x6=24 | 3 |
6 | 63 | 8 | 8 | 9 | 8x9=72 | 10 |
8 | 255 | 16 | 16 | 12 | 16x12=192 | 28 |
10 | 1.023 | 16 | 64 | 15 | 64x15=960 | 138 |
12 | 4.095 | 16 | 256 | 18 | 256x18=4.608 | 664 |
14 | 16.383 | 16 | 1k | 21 | 1kx21=21.504 | 3k |
16 | 65.535 | 16 | 4k | 24 | 4kx24=98.304 | 14k |
Für einen Arbeitsspeicher mit einem 4 bit Adressbus und 8 bit Wortbreite, also 16 byte RAM werden 192 Relais benötigt (16 x 8 Relais zum Speichern und 16 x 4 Relais für den Datenbus).
Es wird deutlich, dass die Anzahl der Relais je Datenwort (Spalte 1x) und die Speichergröße (RAM) am stärksten auf die Bauteilmenge und den Energiebedarf wirken.
Wollte man auf diese Art gar 16 bit adressieren, so ergeben sich 4096 x 16bit RAM mit knapp 100.000 Relais. Die maximale Leistungsaufnahme eines solchen 4k x 16bit RAM Speichers läge mit den verwendeten Bauteilen bei sagenhaften 14.000 Watt. Dies entspricht der Leistungsaufnahme von 14 laufenden Wäschetrocknern gegenüber "nur" 28 Watt mit 192 Relais.