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