Facharbeit "Bau eines Relaiscomputers"
von Kilian Leonhardt
Email: mail@kilian-leonhardt.de

Zurück zum Inhaltsverzeichnis

Der Vergleicher

Es kommt oft vor, daß man in seinen Programmen Zahlen vergleichen muß, daher dieses Modul. Das Modul soll feststellen können, welcher der beiden Operanden die größere Zahl speichert. Zunächst einmal die Schaltung nur für positive Zahlen. Was macht es aus, daß eine Binärzahl größer ist als eine andere Binärzahl? Genau die Binärzahl ist größer, in der von links nach rechts gesehen das erste in beiden Zahlen unterschiedliche Bit den Wert 1 hat.

Mein Schaltungsentwurf sieht wie folgt aus:


Jeweils 4 Relais bilden eine Zelle.
Relais 1 und 2 sorgen dafür, daß am Ausgang „Zahl 1 > Zahl 2“ genau dann eine Spannung anliegt, wenn Bit 11 von Zahl 1 den Wert 1 und Bit 11 von Zahl 2 den Wert 0 hat. Sind beide Werte gleich, so liegt hier keine Spannung an, und die Spannung wird in die nächste Zelle weitergegeben. Auch hier liegt am Ausgang „Zahl 1 > Zahl 2“ genau dann eine Spannung an, wenn Bit 10 von Zahl 1 den Wert 1 und Bit 10 von Zahl 2 den Wert 0 hat. Somit ist das oben beschriebene Problem eindeutig in eine Schaltung gefasst: Es passiert von links nach rechts so lange nichts, bis ein Bit unterschiedlich ist, für alle weiter rechts liegenden Zellen ist keine Spannung mehr vorhanden, und die ersten zwei Relais der Zelle mit den beiden differierenden Bits gibt Zahl 1 > Zahl 2 aus, oder nicht. Wenn die Spannung in der letzten (sich am weitesten „rechts“ befindlichen) Zelle durchgeschaltet ist, so gilt Zahl 1 = Zahl 2.

Diese Schaltung funktioniert, wenn beide Zahlen positiv sind, aber auch, wenn beide Zahlen negativ sind. Man muß also eine Zusatzschaltung machen, welche bei unterschiedlichen Vorzeichen der zu vergleichenden Zahlen den bisherigen Vergleicher „übergeht“. Hier das Schaltbild:

Relais 1 und 2 sind als Treiberstufen. Relais 5 und 6 schalten, falls beide Vorzeichen gleich sind das Ergebnis des bisherigen Vergleichers durch. Sind die Vorzeichen der beiden Zahlen unterschiedlich, so ist Zahl 1 nur dann größer als Zahl 2, wenn Zahl 2 negativ und Zahl 2 positiv ist. Diese Bedingung ist in Relais 3 und 4 realisiert.






Der Ausgang für Zahl 1 < als Zahl 2 lässt sich sehr einfach machen, denn Zahl 1 < Zahl 2 wenn weder Zahl 1 > als Zahl 2 noch Zahl 1 = Zahl 2. Die Schaltung ist links zu sehen.







Der Vergleicher gibt also nun mehrere Leitungen aus, die nur dann 5 Volt führen, wenn die entsprechende Bedingung zutrifft. Dies sind nun 7 Leitungen für folgende Bedingungen:
- Operand 1 > Operand 2
- Operand 1 < Operand 2
- Operand 1 = Operand 2
- Überlauf
- Opernad 1 ist negativ
- Operand 2 ist negativ
- Ergebnis ist negativ

Diese Leitungen werden für Multiplikation und Division sowie für bedingte Sprunganweisungen verwendet werden können.


Zurück zum Inhaltsverzeichnis