Der Kugelrechner:
eine neuartige mechanische Rechenmaschine
Autor und Erfinder: Leonhard Heinzmann Stand: 30.12.03
Inhalt:
1 Kurzbeschreibung
2 Konstruktiver Aufbau
2.1 Zahlendarstellung
2.2 Rechenelemente
2.3 Umcodierung
2.4 Grobstruktur
3 Zweck
4 Programmierbare Kugelrechner?
1 Kurzbeschreibung
Ein Kugelrechner ist eine neuartige mechanische Rechenmaschine. Die Berechnung
erfolgt durch rollende Kugeln, nicht durch halbstarre Elemente wie Zahnräder oder
Stangen. Deshalb können binäre Operationen leicht ausgeführt werden, und es ist
möglich, verschiedene Recheneinheiten (Rechenwerke) unabhängig voneinander zu
konstruieren und anschließend einfach als sog. "schwarze Kästen" zu kombinieren:
Denn das Ergebnis jeder Recheneinheit wird als rollende Kugeln weitergegeben.
Kugelrechner sind theoretisch, didaktisch und spielerisch hochinteressant: Bei offenem
Aufbau kann der Rechenvorgang beobachtet werden, der einmal ausgelöst, von allein
abläuft.
2 Konstruktiver Aufbau
2.1 Zahlendarstellung
Zahlen werden z.B. binär dargestellt. Es gibt dazu verschiedene Möglichkeiten:
Bei Parallelverarbeitung (jede Ziffer einer Zahl wird auf einer gesonderten Bahn
weitergeleitet) ist es am einfachsten, "Kugel = 1 keine Kugel = 0" zu verwenden.
Hierbei ist die Zahlenlänge begrenzt: Die Ziffernzahl kann höchstens so groß sein
wie die Anzahl der Leitungsbahnen.
Am besten ist es vielleicht, ein Plus-Zahlensystem zu verwenden, das ohne die Ziffer 0
auskommt. Siehe die Bemerkung über Kugelrechner am Ende jenes Artikels.
Siehe auch die Berechnung im Artikel über das Vierersystem, in welchen
Zahlensystemen man bei Strichzifferdarstellung durchschnittlich mit den wenigsten
Strichen auskommt (entspricht den Kugeln beim Kugelrechner).
Bei Seriellverarbeitung (alle Ziffern einer Zahl werden nacheinander auf derselben
Bahn weitergeleitet) ist die Zahlenlänge nicht begrenzt. Codieren kann man dabei
Zahlen auf 3 Arten, wobei jeweils 2 Arten von Kugeln verwendet werden:
- Man verwendet leichte und schwere Kugeln, beide gleich groß. Zur optischen
Erkennung und zur besseren Verfolgung des Rechenablaufs sind die leichten Kugeln
weiß, die schweren schwarz (diese Farbe empfindet man intuitiv als schwerer).
Weiße Kugeln haben den Wert 1, schwarze den Wert 0 (schwarz erinnert an dunkles
Loch, Nacht = nichts).
Zur Zahlentrennung codiert man entweder alle Zahlen mit gleichviel Ziffern, oder man
verarbeitet die Ziffern in einem Zeittakt. (Man könnte zur Trennung auch eine 3. Art
von Kugeln verwenden, was aber technisch aufwendig wäre).
- Oder man verwendet Kugeln in 2 Größen. Manche Operationen lassen sich dann
durch siebartige Elemente leichter realisieren. Das Abrollen der Kugeln (verschieden
große Kugeln, sich berührend, auf derselben Bahn) ist dann aber problematischer.
Die Kugeln dürfen deshalb nicht sehr verschieden groß sein.
Alle bisher aufgeführten Arten der Codierung haben einen Nachteil: Bei manchen
Rechenoperationen müssen weitere Kugeln zugeführt werden, um das Ergebnis
darstellen zu können: z.B. ist dual: 1000-1 = 111, man muß also 1 Kugel mit dem
Wert 1 zuführen.
Das kann man vermeiden, wenn man pro Dualziffer 1 Kugelpaar verwendet, z.B.
"leicht - schwer = 1", "schwer - leicht = 0". Hierbei kann man dann einfach die
Kugeln vertauschen, um die andere Dualziffer darzustellen.
Bei allen Codierungsarten kann es jedoch vorkommen, daß während des Rechen-
vorgangs überflüssige Kugeln ausgeschieden werden, die einem Auffangbehälter
(unterer Kugelbehälter) zugeleitet werden.
Denkbar wäre auch, eine Ziffer immer durch genau 1 Kugel darzustellen.
Pro Ziffer sind dann b parallele Schächte nötig, in einem liegt die Kugel
(b = Basis des verwendeten Zahlensystems). Ja, sogar pro Zahl kann man
mit genau 1 Kugel auskommen - den Zahlenwert bestimmt dann die Position
der Kugel z.B. in einer Matrix oder einem Iris-Koordinatensystem oder
einem Labyrinth, dessen Windungen den Abläufen beim Rechnen entsprechen
(Stellenübertrag etc.). Wird eine Zahl durch 1 einzige Kugel dargestellt, ist
während des Rechenvorgangs keine Zufuhr oder Abfuhr von Kugeln nötig,
auch keine entsprechenden Bahnen und keine Kugelbehälter.
2.2 Rechenelemente
Die Datenverarbeitung erfolgt durch mechanische Schaltelemente. Sie werden durch
das Gewicht der Kugeln betätigt. Ihr Aufbau ähnelt einem Sieb, einem Rechen, einer
Kippwaage (ähnlich den japanischen Wasserrohren, die kippen wenn sie vollgelaufen
sind), einer Wendeltreppe o.Ä.
Entsprechend der binären Zahlendarstellung wird man für die Berechnung binäre
Schaltelemente (NICHT, UND, ODER etc.) verwenden, die sich gerade in einem
Kugelrechner leicht realisieren lassen. Kompliziertere Schaltelemente, z.B. Zählräder,
die durch 8 oder 16 Radstellungen einen Zahlenwert speichern, sind aufwendiger und
schwerer in die Schaltung integrierbar.
Die einzelnen Schaltelemente sind wasserfallartig untereinander oder stromschnellen-
artig schräg-untereinander oder wendeltreppenartig angeordnet.
2.3 Umcodierung
Die Eingabe von Anfangswerten als Kugelfolgen, und das Erkennen des Ergebnisses
als Kugelfolge, ist für Menschen zu unbequem. Rechnerteile erleichtern dem Menschen
diese Arbeit:
In der Codiereinheit werden Dezimalzahlen in Dualzahlen, d.h. eine Folge von Kugeln
umgewandelt. Die Eingabe der Dezimalzahlen durch den Benutzer erfolgt dabei in der
üblichen Weise, z.B. durch Räder wie bei einem Zahlenschloß. Nach Betätigen eines
Starthebels rollt dann eine Kugelfolge in das darunterliegende Rechenwerk.
Das Decodierwerk arbeitet umgekehrt, d.h. es wandelt die vom Rechenwerk als End-
ergebnis gelieferte Kugelfolge wieder in Dezimalzahlen um, d.h. in entsprechende
Stellungen von Zahlenrädern oder anderen Anzeigen.
Es ist jedoch sinnvoll, die als Ergebnis gelieferte Kugelfolge direkt wieder nach oben
transportieren zu können (in einem Wechselbehälter), um so z.B. viele Zahlen ohne
Neueingabe des Zwischenergebnisses addieren zu können. Doch könnte man auch
einen Rechner bauen, der es ermöglicht, stets neue Zahlen zu einem gespeicherten
Zwischenergebnis zu addieren.
(Würde der Mensch im Vierer- oder Achtersystem rechnen, wäre die Umcodierung
einfacher. Das gilt genauso für die EDV. Doch ganze Zahlen lassen sich immer ohne
Rundungsfehler von dual nach dezimal wandeln und umgekehrt.
Eigentlich könnte man dann auf maschinelle Umcodierung verzichten: Durch Markie-
rungen an der Eingaberinne, die je 2 (Vierersystem) bzw. 3 Kugeln (Achtersystem)
optisch zusammenfassen, lassen sich Ziffern mit etwas Übung leicht umcodieren
- es gibt ja nur 4 bzw. 8 Kugelkombinationen.
2.4 Grobstruktur
Entsprechend dem in der EDV üblichen Ablauf Eingabe - Verarbeitung - Ausgabe hat
ein Kugelrechner die 3 Hauptteile Codiereinheit - Recheneinheit - Decodiereinheit.
oberer Kugelbehälter
o o o o o o o
Codiereinheit
+ + +
Rechenwerk
+ + +
Decodiereinheit
unterer Kugelbehälter
o o o o o o o
| | | | |
|
Ein Kugelrechner hat also die links
gezeigte Grobstruktur ( man könnte
sich das Ganze als Glasgehäuse,
offene Lattenkiste im Hochformat oder
offene Säule vorstellen, so daß sich
der Ablauf der Berechnung - die
rollenden Kugeln - beobachten läßt):
| | |
3 Zweck
Kugelrechner sind wegen ihrer Größe, der nötigen wackelfreien, senkrechten Aus-
richtung (auf Schiffen schwierig), und weil die Kugeln nach dem Rechenvorgang
wieder in den oberen Behälter gebracht werden müssen, weit unpraktischer als die
bekannten mechanischen Rechenmaschinen. Selbst diese haben heute keine praktische
Bedeutung mehr. Nur in Entwicklungsländern rund um den Indischen Ozean benutzen
Händler noch das Rechengitter, den Abakus, mit dem sie sehr fix sind.
Kugelrechner sind aber theoretisch, didaktisch und spielerisch hochinteressant:
Bei offenem Aufbau kann man den Rechenvorgang beobachten, der einmal angestoßen,
von allein abläuft. Ein Kugelrechner ist sozusagen ein mechanischer Chip, in dem die
"Elektronen" bei der Arbeit beobachtet werden können.
Auch historisch ist es interessant zu wissen, wie leistungsstarke Rechner man in der
Antike oder im Mittelalter hätte bauen können, wenn man motiviert gewesen wäre und
die entsprechende Theorie + Maschinen entwickelt hätte. Man hätte dazu weder
Elektrotechnik noch Feinmechanik benötigt: Säulenartige Kästen, in denen Kugeln in
Spiralen nach unten rollen und dabei hölzerne Schaltelemente bewegen, hätten genügt,
um selbst komplexe Rechner zu bauen. Man denke an die Rekordversuche, wobei
Millionen Dominosteine, in komplizierten Strukturen angeordnet, nacheinander fallen!
Wobei zu bemerken ist, daß gut gebaute hölzerne Schaltelemente - im Gegensatz zu
Dominosteinen - immer exakt funktionieren.
Sicher hätte man mit "Großrechnern" dieser Art Berechnungen durchführen können, die
für Menschen zu langwierig gewesen wären.
4 Programmierbare Kugelrechner?
Theoretisch könnte man einen Kugelrechner - selbst aus Holz - durchaus als programm-
gesteuerten Rechner bauen, bei dem Daten und Programm als Kugelfolgen eingegeben
werden:
- Zur Trennung von Daten würde man rote Kugeln einer dritten Gewichtsklasse
verwenden.
- Gerade die für einen solchen Rechner nötigen binären Elemente (NOT, NAND etc.)
lassen sich mit Kugeln leicht realisieren.
- Auch ein Zahlenvergleich ist z.B. relativ einfach: die längere Kugelfolge repräsentiert
die längere Zahl; bei gleicher Länge entscheidet das erste ungleiche Kugelpaar am
höherwertigen Ende.
- Ein programmierbarer Kugelrechner in seiner einfachsten Form wäre ein Rechner,
dem ein Operationscode (z.B. die ersten 3 Kugeln) und Operanden sequentiell
zugeführt werden, getrennt durch z.B. je 1 rote Kugel.
- Auch "Bildverarbeitung" wäre möglich, wobei Bilder als Mosaik aus schwarzen und
weißen Kugeln in einem Siebraster (ähnlich einer Obsthorte; vgl. auch Dame- oder
Go-Spielbrett) dargestellt werden und anschließend von einer Codiereinheit
sequentiell zur Recheneinheit weitergeleitet werden.
- Auch "sprechende" Kugelrechner sind möglich: Die Laute könnten so erzeugt
werden (es gibt da viele Möglichkeiten):
- Zischlaute: Kugel streift an (fällt durch) verschiedenartige Bürsten
- Summlaute: Kugel bringt Blattfeder zum Vibrieren (die etwas in die
Laufbahn der Kugel hineinragt; Blattfeder ist je nach
Summlaut kürzer, länger oder breiter)
- Plosive: Kugel bewegt Hebel, der gegen Metallplatte schlägt,
oder läßt 2 Platten zusammenklatschen
- Vokale: Kugel rennt gegen ein Blech, oder läßt einen Hebel gegen ein
Blech schlagen (ein musikalischer, vokalähnlicher Laut
ergibt sich natürlich nur bei zweckmäßiger Konstruktion).
Man kann diese Art der Geräuscherzeugung am Schreibtisch ausprobieren, indem
man z.B. ein an der Tischkante überstehendes Lineal vibrieren läßt (Summlaut),
einen Bleistift gegen den Tisch stößt (~ Laut t) oder ein Buch auf den Tisch
platschen läßt (~ Laut p).
Mit so einfachen Mitteln ist wahrscheinlich keine gute "Aussprachequalität" zu
erzielen, aber eine erkennbare Aussprache. Man vergleiche: Die Trommelsprache
der Neger am Kongo ist kein Code, sondern eine klangliche Nachahmung der
Umgangssprache! Auch das Silbo, eine Pfeifsprache, mit der sich die Ureinwohner
der Kanarische Inseln über tiefe Canyons hinweg verständigen, ist eine Nachahmung
ihrer Sprache durch Pfiffe.
Eine lautlich einfache und klare Sprache (wenige gut unterschiedene Laute, keine
oder wenige Konsonantenkombinationen) wie z.B. die Lautbildschrift kann besser
nachgeahmt werden als eine Sprache mit vielen Konsonantenkombinationen.
Man könnte also Kugelrechner bauen, die eine Serie von Lauten, jeweils in einer
Laufrinne als Zahlencodes eingegeben, nach dem Rollenlassen aussprechen.
- Ähnlich könnte ein Kugelrechner eine Melodie spielen - die Noten werden als
Zahlen eingegeben. Bei Rücktransport der Kugeln nach oben (Antrieb durch ein
Hängegewicht) könnte er diese Melodie eine Zeitlang wiederholen. Oder - bei
Verwendung eines Kugelrechners als Digitaluhr - zu einer bestimmten Uhrzeit
abspielen.
Solche programmierbaren Kugelrechner hätten heutzutage keine praktische Bedeutung,
wären aber theoretisch und didaktisch-spielerisch interessant.
Die Benutzung der hier beschriebenen Mechanismen ist frei.
an Autor Homepage