Charles Babbage, 1791-1871. Porträt von der illustrierten London News, Nov. 4, 1871
Es scheint ein wahres Wunder, dass der erste digitale Computer der Welt, der in seinen mechanischen und logischen Details fast jedes Hauptprinzip des modernen digitalen Computers verkörperte, bereits in den 1830er Jahren entworfen wurde., Dies wurde vom großen Charles Babbage getan, und der Name der Maschine ist Analytical Engine
1834 entwarf Babbage einige Verbesserungen an seinem ersten Computer—der Specialized Difference Engine. Wenn im ursprünglichen Entwurf eine neue Konstante in einer Reihe von Berechnungen benötigt wurde, musste sie von Hand eingegeben werden. Babbage konzipierte eine Möglichkeit, die Unterschiede mechanisch einsetzen zu lassen, indem er die Achsen des Differenzmotors kreisförmig anordnete, so dass die Ergebnissäule nahe der der letzten Differenz und somit leicht in Reichweite davon sein sollte., Er bezeichnete diese Anordnung als den Motor, der sein eigenes Heck frisst, oder als eine Lokomotive, die ihre eigene Eisenbahn niederlegt. Dies führte jedoch bald zu der Idee, die Maschine mit völlig unabhängigen Mitteln zu steuern und nicht nur Addition, sondern alle Prozesse der Arithmetik nach Belieben in beliebiger Reihenfolge und so oft durchzuführen, wie dies erforderlich sein könnte.
Die Arbeiten an der ersten Differenzmaschine wurden am 10. April 1833 eingestellt und die erste Zeichnung der Analytischen Maschine datiert auf September 1834. Es gibt über zweihundert Zeichnungen des Motors und seiner Teile, die detailliert und maßstabsgetreu sind., Diese wurden von einem hochqualifizierten Zeichner wunderschön ausgeführt und waren sehr kostspielig. Es gibt auch über vierhundert Notationen verschiedener Teile, die Babbages System der mechanischen Notation verwenden (siehe Gesetze der mechanischen Notation).
Das Objekt der Maschine kann in Kürze so angegeben werden (nach Henry Babbage, dem jüngsten Sohn des Erfinders): Es ist eine Maschine, um den numerischen Wert oder die Werte einer Formel oder Funktion zu berechnen, von der der Mathematiker die Lösungsmethode angeben kann., Es ist, die gewöhnlichen Regeln der Arithmetik in beliebiger Reihenfolge auszuführen, wie sie zuvor vom Mathematiker festgelegt wurden, und beliebig oft und in beliebigen Mengen. Es soll absolut automatisch sein, der Sklave des Mathematikers, der seine Befehle ausführt und ihn von der Plackerei des Rechnens befreit. Es muss die Ergebnisse drucken, oder jedes Zwischenergebnis angekommen.
Babbage beabsichtigte, eine Maschine mit einem Repertoire der vier grundlegenden arithmetischen Funktionen zu entwerfen, im Gegensatz zur Difference Engine, die nur Addition verwendet., Auf der Analogie eines modernen digitalen Computers kann das Konstruktionsprinzip der Analytischen Engine unterteilt werden in:
1. Eingang. Ab 1836 waren Lochkarten (siehe Foto in der Nähe) der grundlegende Mechanismus, um sowohl numerische Daten als auch Anweisungen zur Manipulation in die Maschine einzuspeisen.
2. Ausgabe. Babbages Grundmechanismus war immer ein Druckgerät, aber er hatte auch Grafikausgabegeräte in Betracht gezogen, noch bevor er Lochkarten sowohl für die Ausgabe als auch für die Eingabe annahm.
3. Speicher., Für Babbage war dies im Grunde die Anzahl Achsen im Laden, obwohl er auch die Idee eines hierarchischen Speichersystems mit Lochkarten für zusätzliche Zwischenergebnisse entwickelte, die nicht in den Laden passen konnten.
4. Zentraleinheit. Babbage nannte das die Mühle., Wie moderne Prozessoren sah es vor, die Nummern zu speichern, die auf den meisten Computern betrieben werden (Register); Hardwaremechanismen, um diese Zahlen den grundlegenden arithmetischen Operationen zu unterwerfen; Kontrollmechanismen zur Übersetzung der benutzerorientierten Anweisungen von außen in detaillierte Steuerung der internen Hardware; und Synchronisationsmechanismen (eine Uhr), um detaillierte Schritte in einer sorgfältig getimten Reihenfolge auszuführen., Der Kontrollmechanismus der analytischen Maschine muss Operationen automatisch ausführen und besteht aus zwei Teilen: der untere Kontrollmechanismus, gesteuert durch massive Trommeln genannt Fässer, und der höhere Kontrollmechanismus, gesteuert durch Lochkarten, entwickelt von Jacquard für Musterwebstühle und ausgiebig in den Anfang des 1800er Jahren verwendet.
Die Reihenfolge der kleineren Operationen erforderlich, um eine arithmetische Operation zu bewirken, wurde durch massive Trommeln namens Fässer gesteuert (siehe die nahe gelegene Abbildung)., Die Fässer hatten Bolzen an ihrer Außenfläche ähnlich wie die Stifte einer Spielkastentrommel oder einer Fassorgel befestigt. Die Fässer orchestrierten die internen Bewegungen des Motors und geben detailliert an, wie Multiplikation, Division, Addition, Subtraktion und andere arithmetische Operationen ausgeführt werden sollen. Der in der Abbildung gezeigte Lauf hat nur mehrere Bolzenpositionen in jeder vertikalen Reihe. In der eigentlichen Maschine waren die Fässer viel größer, weil sie das Zusammenspiel von Tausenden von Teilen kontrollierten und koordinierten., Jede Reihe könnte bis zu 200 Bolzenpositionen enthalten, und jedes Fass könnte 50 bis 100 separate Reihen haben. Die Gesamtmaschine hatte mehrere verschiedene Fässer, die verschiedene Abschnitte steuerten. Natürlich mussten die Fässer eng aufeinander abgestimmt werden. Als sich ein Lauf drehte, aktivierten die Bolzen bestimmte Bewegungen des Mechanismus und die Position und Anordnung der Bolzen bestimmte die Aktion und den relativen Zeitpunkt jeder Bewegung. Der Akt des Drehens der Trommel führte somit automatisch eine Abfolge von Bewegungen aus, um den gewünschten höherstufigen Betrieb auszuführen., Der Prozess ist motorintern und für den Benutzer logisch unsichtbar. Die Technik wird jetzt als Mikroprogramm bezeichnet (obwohl Babbage diesen Begriff nie verwendet hat), wodurch sichergestellt wird, dass die Operationen auf niedrigerer Ebene, die zum Ausführen einer Funktion erforderlich sind, automatisch ausgeführt werden.
Für einen übergeordneten Kontrollmechanismus beabsichtigte Babbage zunächst, ein großes zentrales Fass zu verwenden, um die Schritte einer Berechnung anzugeben. Diese Idee scheint jedoch unpraktisch zu sein, da dazu die Bolzen am Superlauf gewechselt werden müssen, was eine umständliche Operation sein könnte., Die Aufgabe, Bolzen in der zentralen Trommel manuell zurückzusetzen, um der Maschine mitzuteilen, was zu tun ist, war zu umständlich und fehleranfällig, um zuverlässig zu sein. Schlimmer noch, die Länge eines Befehlssatzes wäre durch die Größe der Trommel begrenzt.
Sein Kampf mit dem Problem der Kontrolle führte Babbage zu einem echten Durchbruch am 30. Er konzipierte die Bereitstellung von Anweisungen und Daten für den Motor nicht durch Drehen von Nummernrädern und Einstellen von Bolzen, sondern durch gestanzte Karteneingabe, mittels Karten, ähnlich diesen, die in den Jacquard-Webstühlen verwendet werden. Dies machte die zentrale Trommel weder überflüssig noch ersetzte sie., Lochkarten lieferten eine neue oberste Ebene der Steuerungshierarchie, die die Positionierung der zentralen Trommel regelte. Die zentrale Trommel blieb, aber jetzt mit permanenten Befehlssequenzen. Es übernahm die Funktion der Mikroprogrammierung, wie dies von anderen Fässern. Wenn es für jede Operation separate Fässer und ein zentrales Fass zur Steuerung der Betriebstrommeln gab, stellt die Lochkarte eine Möglichkeit dar, die Maschine (die zentrale Trommel) anzuweisen, welche Operationen wir ausführen wollten und in welcher Reihenfolge, d. H. Hochrangige Programmierung des Motors.,
Das Prinzip der Karten wurde offen aus dem Jacquardwebstuhl entlehnt (ein mechanischer Webstuhl, der Anfang des 19. Jahrhunderts vom Franzosen Joseph Marie Jacquard erfunden wurde, basierend auf früheren Erfindungen seiner Landsleute Basile Bouchon (1725), Jean Falcon (1728) und Jacques Vaucanson (1740)), die eine Reihe von Lochkarten verwendeten, um das Muster eines Gewebes automatisch zu steuern (siehe Foto in der Nähe).
Im Webstuhl waren Stangen mit Drahthaken verbunden, von denen jeder eines der zwischen dem Rahmen aufgereihten Längsgewinde anheben konnte., Die Stäbe wurden in einem rechteckigen Bündel gesammelt, und die Karten wurden einzeln gegen die Stabenden gedrückt. Wenn ein Loch mit einer Stange zusammenfiel, ging die Stange durch die Karte und es wurden keine Maßnahmen ergriffen. Wenn kein Loch vorhanden war, drückte die Karte die Stange zurück, um einen Haken zu aktivieren, der den zugehörigen Faden anhebte, so dass das Shuttle, das den Querfaden trug, darunter hindurchgehen konnte. Die karten wurden zusammen mit draht aufgereiht, band oder band scharniere, und fan, gefaltet in große stapel zu bilden lange Sequenzen., Die Webstühle waren oft massiv und der Webstuhlfahrer saß im Rahmen und sequenzierte die Karten einzeln mit einem Fußpedal oder Handhebel. Die Anordnung der Löcher auf den Karten bestimmte das Muster des Gewebes.
Wie kann die analytische Engine programmiert werden?
Wir wissen wenig von Babbages Programmierideen. Es gibt nichts in den überlebenden Papieren, in denen dieser Aspekt der Maschine gründlich diskutiert wird, z. B. nichts, was einer Spezifikation eines Benutzeranweisungssatzes entspricht., Dies ist umso bemerkenswerter, als es der einzige Aspekt des Designs ist, der in einem zeitgenössischen Papier ausführlich diskutiert wird. Im Jahr 1840 besuchte Babbage Turin in Italien und gab eine Reihe von Seminaren über die Analytische Engine., Ein Bericht des italienischen Ingenieurs Federico Luigi Menabrea (1809-1896, siehe das nahe gelegene Bild), der später Premierminister Italiens werden wird, wurde von Ada Lovelace ins Englische übersetzt (sie wurde manchmal als die erste Programmiererin der Welt gefeiert, ein romantisch ansprechendes Bild ohne Grundlage), die umfangreiche Notizen beifügte, die unter Babbages enger Anleitung erstellt wurden (siehe Skizze der analytischen Engine). Diese befassen sich mit den bekannten modernen Ideen des Kontrollflusses in Programmen, insbesondere der Formulierung einfacher Schleifen und verschachtelter Schleifen, die von Zählern gesteuert werden., Das Papier und die Notizen drehen sich jedoch sorgfältig und absichtlich um jede Diskussion über Details der Mittel, mit denen diese umgesetzt werden sollen.
Es scheint, dass Babbage keinen Befehl über die Probleme hatte, die durch die Programmierung auf Benutzerebene der Analytical Engine aufgeworfen wurden. Es wäre völlig falsch zu folgern, dass Babbage die Programmierung nicht an sich verstand. Die Mikroprogrammierung der Fässer für Multiplikation und Division zeigt die Beherrschung der grundlegenden Verzweigungs-und Schleifenideen und seine Fähigkeiten in der Mikroprogrammierung von Addition und Subtraktion zeigen völlige Virtuosität., Von dieser Basis aus erforschte Babbage die Ideen der Programmierung auf Benutzerebene. Die Probleme der Datenstrukturierung traten auf Mikroprogrammierungsebene einfach nicht auf. Es gibt einige Hinweise darauf, dass Babbages Ideen sich in die Richtungen bewegten, die jetzt im Zusammenhang mit den Kontrollmechanismen für die Schleifenzählung in Programmen auf Benutzerebene bekannt sind. Wenn eine analytische Engine in Ordnung gebracht worden wäre, kann es keinen Zweifel daran geben, dass Babbages Programmierideen stark entwickelt worden wären.,
Aus Hardware-Sicht waren zwei Reihen von Lochkarten erforderlich, um eine Berechnung anzugeben, die von der analytischen Engine durchgeführt werden soll. Eine Zeichenfolge, die „Operation cards“, spezifizierte die auszuführenden arithmetischen Operationen. Die zweite Zeichenfolge, die“ Variablenkarten“, gab die Achsen im Speicher an, die die Operanden enthielten und die Ergebnisse erhalten sollten., Diese beiden Zeichenfolgen können nicht als separate Teile eines einzelnen Befehls angesehen werden, ebenso wie die Betriebs-und Operandenfelder eines Befehls in einem elektronischen Digitalcomputer, da die Betriebs-und Variablenkarten dazu bestimmt waren, sich unter der Leitung separater Steuermechanismen unabhängig voneinander zu bewegen und zu schleifen.
Eigentlich gab es vier, aber keine zwei, verschiedene Arten von Lochkarten mit unterschiedlichen Funktionen:
1. Nummernkarten wurden verwendet, um den Wert der Nummern anzugeben, die in den Speicher eingegeben werden sollen, oder um Nummern aus dem Speicher für den externen Speicher zurückzuerhalten.
2., Variablenkarten geben an, welche Achsen im Speicher die Datenquelle sein sollen, die in die Mühle oder den Empfänger der von ihr zurückgegebenen Daten eingespeist wird. Im modernen Sprachgebrauch lieferten sie die Speicheradresse der zu verwendenden Variablen.
3. Betriebskarten bestimmten die auszuführenden mathematischen Funktionen. Der logische Inhalt einer Operationskarte könnte wie folgt lauten: „Nehmen Sie die Zahlen von den variablen Achsen, die von den nächsten beiden variablen Karten angegeben werden, und multiplizieren Sie sie in der Mühle; Speichern Sie das Ergebnis auf der variablen Achse, die von der dritten variablen Karte angegeben wird.,“Dies wurde von den Sensorstäben auf dem Betriebskartenlesegerät interpretiert und intern so übersetzt: „Die variablen Karten um eine Position vorrücken und alle Fässer für eine normale Multiplikations-und Speichersequenz in die Ausgangsposition drehen.“
4. Kombinatorische Karten kontrollierten, wie variable Karten und Betriebskarten nach Abschluss bestimmter Vorgänge rückwärts oder vorwärts gedreht wurden., Daher kann eine Operationskarte einen logischen Inhalt wie diesen haben: „Verschieben Sie die variablen Karten um 25 Positionen und setzen Sie die Operationskarten auf den Anfang des Satzes, der angibt, wie eine Quadratwurzel extrahiert werden soll.“
Babbage plante, die kombinatorischen Karten mit den von ihnen kontrollierten Betriebskarten zu durchschneiden, so dass die vier Kartensätze nur drei Kartenleser benötigten (plus einen Kartenstempel, damit Nummernkarten von der Maschine ausgegeben werden).,
Babbage scheint dazu gebracht worden zu sein, die Operations-und Variablenkarten aus weitgehend philosophischen Gründen zu trennen, die sich aus seinem Glauben an die Notwendigkeit ergeben, Symbole für den Betrieb von denen für die Quantität in mathematischen Notationen zu unterscheiden. Diese Ansichten wurden wahrscheinlich verstärkt, als er die Karten für Berechnungen wie die Lösung simultaner Gleichungen für notwendig hielt. Babbage erkannte auch, dass Programme oder Unterprogramme (sicherlich keine Begriffe, die er verwendete) überprüft werden müssten, was wir Debugged nennen würden., Er wusste auch, dass es wertvoll wäre, verifizierte Programme für neue Datensätze erneut auszuführen und sogar Programme für mehrere Engines freizugeben. Daher war es ein natürlicher und praktischer Ansatz, die Daten als unabhängig von den Operationen zu spezifizieren. Dort ist das für die Durchführung von Zeilenreduktionen erforderliche Betriebsmuster sehr einfach und eine einfache Schleife von Betriebskarten ist leicht zu finden. Für die variablen Karten gibt es keine solche einfache Schleifenstruktur, die nur einzelne Achsen im Speicher angeben kann., Die Schleifenstrukturen, die wir jetzt erkennen, betreffen Zeilen der Koeffizientenmatrix der Gleichungen und ähnliche Konzepte, die sich auf die Strukturierung der Daten beziehen. Da Babbage nicht über das Konzept einer variablen Adresse im Geschäft verfügte und die analytische Engine auch nicht in der Lage war, die Position eines Operanden im Geschäft zu berechnen, konnten die Benutzerprogramme diese übergeordnete Struktur in den Daten nicht ausnutzen.
Es ist erstaunlich, wie weit Babbage in seiner Programmierkonzeption ging, wenn man bedenkt, dass er keine Erfahrung in der Programmierung eines tatsächlichen Computers hatte., Aus heutiger Sicht lieferte die Reihe der Betriebskarten derzeit kein Programm, sondern eine Reihe von Unterprogrammen. Die kombinatorischen Karten lieferten Terminologie, ein Control-Flow-Programm, das Unterprogramme mit Call-by-Reference-Werten aufruft, die von den Variablenkarten bereitgestellt werden. Babbages Programmierkonzepte enthielten eindeutig das, was wir Schleifen, Unterprogramme und Zweige nennen (was spätere Generationen von Programmierern „wenn“ -oder „Wenn-dann“ – Anweisungen nannten)., Da er jedoch keine Erfahrung in der Programmierung eines tatsächlichen Computers hatte, ist es nicht verwunderlich, dass Babbage nicht zu den modernen Konzepten höherer Sprachen, Dolmetscher oder Compiler kam.
Eine Tabelle mit Karten und Aktionen für die Formel (ab+c)d
Nehmen wir als Illustration die Formel (ab+c)d (siehe obere Tabelle)., Die vier Zahlenkarten für die“ gegebenen Zahlen “ a, b, c und d, aneinandergereiht, werden von Hand auf die Walze gelegt, diese Zahlen müssen auf die ihnen zugewiesenen Spalten in einem Teil der Maschine namens „The Store“ gelegt werden, wo jede Menge zuerst empfangen und wie gewünscht einsatzbereit gehalten wird.
Wir haben somit neben den Zahlenkarten, drei Betriebskarten verwendet, und vierzehn Direktive Karten., Jeder Kartensatz würde aneinandergereiht und auf eine eigene Walze oder ein eigenes Prisma gelegt; Diese Walze würde aufgehängt und von und zu bewegt werden. Jede Rückwärtsbewegung würde dazu führen, dass das Prisma ein Gesicht bewegt und die nächste Karte wie auf dem Webstuhl ins Spiel bringt. Es ist offensichtlich, daß die Walzen harmonisch arbeiten müssen, und zu diesem Zweck würden die Hebel, mit denen sich die Walzen drehen, selbst mit geeigneten Mitteln oder durch allgemeine Richtlinienkarten gesteuert, und die Schläge der aufgehängten Walzen sollten in den richtigen Intervallen gestoppt werden.,
Ein allgemeiner Plan der Analytical Engine von 1840 (klicken Sie, um ein größeres Bild zu sehen)
In der oberen allgemeinen Ansicht der Analytical Engine sind die grundlegenden Abschnitte zu sehen: Im rechten Teil befindet sich ein Abschnitt des Geschäfts mit 11 variablen Achsen. In der Praxis wäre der Speicher viel länger gewesen, mit viel mehr variablen Achsen; Babbage manchmal als ein Minimum von 100, und so viele wie 1000. Jede variable Achse enthielt viele Figurenräder, die sich um eine zentrale Achse drehten und jeweils eine Ziffer ihrer Variablen enthielten., Babbage plante normalerweise, 40 Ziffern pro Variable zu haben. Ein zusätzliches Rad oben aufgezeichnet, ob der Wert positiv oder negativ war.
Horizontal verlaufend zwischen den variablen Achsen befanden sich die Gestelle, lange Metallstreifen mit verzahnten Kanten, die Ziffern zwischen Lager und Mühle hin und her trugen. Kleine bewegliche Ritzel wurden positioniert, um entweder eine bestimmte variable Achse mit den Racks zu verbinden oder sie unverbunden zu lassen. Wenn eine Zahl in die Mühle gehen würde, würden die Gestelle auch mit der Eintrittsachse in der Mühle verbunden werden (beschriftet )., Von dort würde es an einen anderen geeigneten Teil der Mühle weitergegeben. Wenn die Mühle mit einer Nummer fertiggestellt war, wurde sie auf der Egress-Achse platziert (beschriftet ). Dies könnte dann mit den Racks verbunden werden, die die Zahl an die variable Achse weiterleiten würden, die ausgewählt worden war, um das Ergebnis zu halten.
Die Mühle ist der linke Abschnitt, der um das große Zentralrad angeordnet ist, das seine Teile miteinander verbindet. Zur Verdeutlichung sind in diesem Diagramm nicht alle Aspekte des Motors dargestellt. Dies kann jedoch die Komplexität und Größe der Maschine verdecken. Allein die Mittelräder waren etwa 70 cm breit., Die Mühle als Ganzes war etwa 150 cm Fuß in jede Richtung. Ein Geschäft mit 100 variablen Achsen wäre etwa 3 m lang gewesen. Die Eingangsachse hatte einen eigenen antizipierenden Wagenmechanismus; Dort konnte eine Addition oder Subtraktion durchgeführt und dann zur Speicherung direkt an die Ausgangsachse übergeben werden. Wenn eine Multiplikation auftauchen würde, würden die ersten neun Vielfachen auf der Eingangsachse hinzugefügt und auf den Tabellenachsen gespeichert, die als T1 bis T9 dargestellt sind.
Die Ergebnisse einer vollständigen Multiplikation oder Division würden auf den beiden Spalten links vom großen Zentralrad gebildet., Dies ermöglichte es, Zwischenergebnisse in doppelter Präzisionsform zu halten. Das heißt, wenn zwei 40-stellige Zahlen miteinander multipliziert würden, könnten 80-Ziffern des Ergebnisses auf Achsen beibehalten werden . Eine nachfolgende Division durch eine weitere 40-stellige Zahl ermöglichte immer noch eine Genauigkeit von 40 Ziffern im Ergebnis.
Eines der wichtigsten mechanischen Probleme in der analytischen Engine war das Problem mit Carry. Zunächst verwendete Babbage die Methode der verzögerten sequentiellen Übertragung, die in der Differenzmaschine verwendet wurde. In diesem wurde der grundlegende Additionszyklus durch einen separaten Carry-Zyklus gefolgt., Der Carry-Zyklus führte zuerst einen Carry durch, der für die niedrigste Ziffer benötigt wurde, fuhr dann mit der nächsthöheren Ziffer fort und so weiter. Diese Methode funktionierte, war jedoch langsam, da sie für jede Ziffer separat durchgeführt wurde. Babbage überlegte, 30 oder 40 Ziffern in jeder Zahlenspalte zu haben, so dass die Addition viel länger dauern könnte als die Addition selbst. Daher kann eine einzelne Multiplikation einige Hundert separate Additionsschritte erfordern. Es war klar, dass die Tragezeit verkürzt werden musste.,
Babbage versuchte verschiedene Ansätze, um die trägt zu optimieren, und innerhalb weniger Monate hatte angenommen, was er die antizipierende Wagen genannt. Durch zusätzliche Hardware konnte der Wagenmechanismus gleichzeitig erkennen, wo Carries benötigt wurden und wo ein oder mehrere Räder bereits bei 9 dazu führen könnten, dass sich ein Carry über eine Reihe von Ziffern ausbreitet. Alle Operationen können gleichzeitig durchgeführt werden, unabhängig von der Anzahl der Ziffern auf einer Achse. Das Ausarbeiten der Details der Vorwegnahme der Beförderung dauerte Babbage viele Jahre, länger als jeder andere einzelne Aspekt der Maschine., Aber es könnte den Betrieb erheblich beschleunigen und den Aufwand rechtfertigen. Der Mechanismus war zu komplex, um für jede hinzugefügte Achse einen Wagenmechanismus zuzulassen. Babbage war gezwungen, ein Design anzunehmen, bei dem ein einziger antizipierender Wagenmechanismus nach Belieben mit jeder zusätzlichen Säule durch die zentralen Räder verbunden werden konnte. Bis dahin war die Multiplikation durch spezialisierte Hardware bereitgestellt worden, und die Wagenfunktion war von den hinzufügenden Achsen zu spezialisierterer zentraler Hardware entfernt worden.,
Babbage erkannte bald, dass die Addition selbst von den hinzufügenden Achsen entfernt und durch die zentralen Räder durchgeführt werden konnte. Die addierenden Achsen haben einfach Ziffern auf ihren einzelnen Rädern gespeichert, und sie können bei Bedarf von den Zentralrädern verbunden oder getrennt werden. Babbage trennte die Maschine in einen Abschnitt von Lagerachsen, den er den Laden nannte, und einen anderen Abschnitt, in dem Operationen durchgeführt wurden, die er die Mühle
Während der Jahre nannte Babbage machte verschiedene Designs für viele der Einheiten des Motors, meistens in Richtung der Vereinfachung., Nicht alle von ihnen waren jedoch in diese Richtung, weil Babbage sehr darauf bedacht war, die Berechnung zu beschleunigen. Ein Beispiel für das Hinzufügen von Hardware, um Geschwindigkeit zu erreichen, war die Multiplikation mit Tabelle. Bei der anfänglichen Methode der Multiplikation mit wiederholter Addition wäre die Anzahl der Additionszyklen gleich der Summe der Ziffern des Multiplikators. Um beispielsweise 198814 mit 978 zu multiplizieren, würde 198814 24 mal hinzugefügt (9 + 7 + 8), zusammen mit 3 Schichten.
Babbage geplant, mit Zahlen mit bis zu 40 Ziffern zu arbeiten. Das Multiplizieren von zwei 40-stelligen Zahlen zusammen könnte gut 200 Additionszyklen dauern., Babbage erkannte, dass er die Multiplikation selbst erheblich beschleunigen konnte, indem er zu Beginn einer langen Multiplikation ein paar Zyklen einer Vorbereitung widmete. Er nannte diese Multiplikation nach Tabelle. In 9 Zyklen konnte er die ersten 9 integralen Vielfachen des Multiplikanden berechnen und auf speziellen Tischachsen in der Mühle platzieren. Dann könnte er einfach eine davon für jede Ziffer des Multiplikators auswählen und sie dem akkumulierenden Produkt hinzufügen. Das Multiplizieren von zwei 40-stelligen Zahlen würde dann nur 40 Additionszyklen plus 9 dauern,um die Tabelle zu bilden, insgesamt 49 Additionszyklen anstelle von etwa 200., Eine ähnliche Methode der Division nach Tabelle könnte auch die Division beschleunigen.
Es wird angenommen,, dass das grundlegende Design der analytischen Engine wurde im Dezember 1837 fertiggestellt, wenn Babbage schrieb schließlich ein erweitertes Papier, „Der mathematischen Kräfte der Rechenmaschine,“ die beschrieben die Maschine. Er setzte die Entwurfsarbeit noch viele Jahre fort, aber dies beinhaltete eine Verfeinerung der Details und Alternativen der Umsetzung, keine prinzipiellen Änderungen., Bis 1837 hatte Babbage eine Maschine entwickelt, deren grundlegende Organisation durch all seine nachfolgenden Arbeiten und in der Tat durch die gesamte spätere Entwicklung des Computerdesigns unverändert bleiben würde.
Babbage war der Ansicht, dass die analytische Engine eine universelle Rechenmaschine in dem Sinne war, dass sie bei ausreichender Zeit jede mögliche arithmetische Berechnung durchführen konnte. Dieses argument basiert auf drei Beobachtungen., Erstens können arithmetische Operationen an Zahlen mit mehr als vierzig Ziffern immer durchgeführt werden, indem sie in 40-stellige Segmente unterteilt werden, sodass die begrenzte Anzahl von Ziffern auf jeder Speicherachse keine grundlegende Begrenzung darstellt. Zweitens können Berechnungen durch Betriebszeichenfolgen und variable Karten mit unbegrenztem Umfang angegeben werden, sodass die Größe oder Komplexität von Programmen nicht begrenzt ist. Drittens können Zahlen aus dem Geschäft auf Nummernkarten gestanzt und später zurückgelesen werden, und dies bietet einen unbegrenzten Speicher, um die begrenzte Anzahl von Achsen im Geschäft zu überwinden.,
Babbage war sich der Geschwindigkeitsbeschränkungen seiner Maschine voll bewusst. Er wusste, dass die Maschine theoretisch weitaus umfassendere und präzisere Berechnungen ermöglichen würde, als jemals von Hand versucht worden war, aber sie wären in der Praxis nur mit einer Maschine möglich, die sehr zuverlässig und ziemlich schnell war. Aus seiner früheren Arbeit wusste er, dass Zuverlässigkeit die Gänge nicht zu schnell drehen musste. Die Gesamtgeschwindigkeit musste mit intelligentem Design und nicht mit roher Leistung erreicht werden., Dies motivierte den immensen Einfallsreichtum, den Babbage in zeitsparende Methoden wie das Antizipieren der Beförderung und die Multiplikation mit der Tabelle investierte.
Im Maschinendesign der späten 1830er Jahre hätte die isolierte Addition von zwei 40-stelligen Zahlen etwa 19 Sekunden gedauert. Aber eine Menge davon beinhaltete das Verschieben von Zahlen zwischen verschiedenen Abschnitten vor oder nach der eigentlichen Addition. Babbage fand heraus, wie man die verschiedenen Teile der Operation überlappt, wenn mehr als zwei Ergänzungen nacheinander durchgeführt werden sollten. Dies bedeutete, dass jede zusätzliche 40-stellige Addition nur 3,1 Sekunden dauerte., Multiplikation und Division wurden in ähnlicher Weise durch geschicktes logisches Design beschleunigt. Die Dauer hing von der Anzahl der Ziffern in den Zahlen ab. Nehmen wir den Fall einer Multiplikation von 20 Ziffern mit 40 Ziffern (ein sehr hoher Grad an Präzision auch nach aktuellen Standards). Mit anhaltenden Ergänzungen bei jeweils 3,1 Sekunden hätte ein einfacher Schritt und ein einfacher Ansatz fast 8 Minuten gedauert. Babbage konnte dies auf weniger als 2 Minuten reduzieren. Mit der Mikroprozessorgeschwindigkeit, die in Millionen von Multiplikationen pro Sekunde gemessen wird, scheinen 2 Minuten heute unglaublich langsam zu sein., Aber es war eine bemerkenswerte Leistung mehr als ein Jahrhundert vor der elektronischen Berechnung.
Nach Abschluss der Arbeiten am Design der analytischen Engine im Jahr 1847 wandte sich Babbage dem Design einer Differenzmaschine №2 zu und nutzte die verbesserten und vereinfachten arithmetischen Mechanismen, die für die analytische Engine entwickelt wurden. 1857 kehrte Babbage zum Design des Analytischen Motors zurück. In dieser neuen Arbeitsphase war Babbage aktiv daran interessiert, eine analytische Engine mit eigenen Ressourcen aufzubauen., Das logische Design wurde etwas vereinfacht, aber vor allem wurden weitaus einfachere und billigere Methoden vorgeschlagen, um die grundlegenden Mechanismen zu implementieren. Babbage experimentierte zuerst mit dem Stanzen und Pressen von Blechen zur Herstellung von Zahnrädern und ähnlichen Teilen. Später übernahm er den Druckguss für die Herstellung von Teilen—eine neu erfundene Technik, die erst Ende des neunzehnten Jahrhunderts in großem Umfang kommerziell genutzt wurde., Babbage baute viele experimentelle Modelle von Mechanismen mit diesen neuen Techniken, und zum Zeitpunkt seines Todes im Jahr 1871 war ein Modell einer einfachen Mühle und eines Druckmechanismus kurz vor der Fertigstellung (siehe das untere Foto).,
Ein Modell der Mühle von Analytical Engine, gebaut um 1870 (© Science Museum, London)
Babbages Rechenmaschinen sowie alle verwandten Materialien wurden von seinem jüngsten überlebten Sohn, Generalmajor Henry Prevost Babbage (1824-1918) (siehe Bild in der Nähe), der ein starkes Interesse an seinem Vater gezeigt hatte, geerbt.arbeit. Schon als Teenager verbrachten Henry und sein älterer Bruder Dugald Zeit in Babbages Zeichenbüro und Werkstatt, um Werkstattfähigkeiten zu erlernen., Henry erwarb später ein starkes Verständnis für den Unterschied Motor und analytische Motorentwürfe, und kam eine enge Bindung mit seinem Vater zu bilden, den er auf furlough von Extended Military Service in Indien besucht. Babbage vermachte seine Zeichnungen, seine Werkstatt und die erhaltenen physischen Relikte der Motoren Henry, der versuchte, die Arbeit seines Vaters fortzusetzen und die Motoren nach Babbages Tod bekannt zu machen.
Henry lag am Bett seines Vaters, als Babbage im Oktober 1871 starb, und ab 1872 setzte er die Arbeit seines Vaters fleißig fort und ging dann 1875 zeitweise in den Ruhestand., Nach der Montage einige kleine Demonstrationsstücke für den Motor Nummer 1 (einer von ihnen schickte er nach Harvard. In den 1930er Jahren erregte das Stück die Aufmerksamkeit von Howard Aiken, dem Schöpfer des Harvard Mark I).
1888 demonstrierte Henry auf einem Treffen der British Association for the Advance of Science einen Abschnitt der Mühle des analytischen Motors, der an 29 Stellen arbeitete, einschließlich des antizipatorischen Tragegeräts.
Dann baute Henry einen experimentellen Vierfunktionsrechner für die Mühle und vervollständigte ihn 1910., Henry entschied sich tatsächlich, nicht mit dem ursprünglichen Design der analytischen Engine fortzufahren, sondern eine manuell betriebene Maschine für Addition, Subtraktion, Multiplikation und Division (einen Vier-Funktions-Rechner) zu entwickeln, die die für die Mühle und den Druck geplanten Mechanismen enthält Mechanismus des Motors (siehe das untere Foto). Mit der zusammengebauten Mühle des Motors würde er einfache Berechnungen durchführen—in diesem Fall ein Vielfaches von π erzeugen.,
Ein Teil der Mühle und Druckmechanismus der analytischen Engine, konstruiert von Henry Babbage
Obwohl schließlich zu Beginn des zwanzigsten Jahrhunderts abgeschlossen, als Henry selbst ein alter Mann war, scheint diese Maschine nie zuverlässig gearbeitet zu haben. Darüber hinaus war Henrys Arbeit an den Motoren solide, aber ohne die Kühnheit und Inspiration seines Vaters, des großen Charles Babbage.
Schreibe einen Kommentar