1 Funktionaler Aufbau eines Computers

1.1 Historische Beispiele von Rechenmaschinen
1.2 Frühe Computer
1.3 Die "von-Neumann-Architektur"

Zum Inhaltsverzeichnis Zum nächsten Kapitel


1.1 Historische Beispiele von Rechenmaschinen


Seit Galileo Galilei (1564 - 1642) die klassische Naturphilosophie zu einer systematisch arbeitenden Wissenschaft weiterentwickelte und damit die Grundlagen der modernen naturwissenschaftlichen Arbeitsweise erschuf, gehört Messen und Rechnen zum täglichen Brot eines jeden Naturwissenschaftlers. Mit systematisch erdachten Experimenten stellt der Naturwissenschaftler Fragen an die Natur, und diese antwortet (hoffentlich!) mit Daten, meist in der Form von Messwerten. Mit Hilfe dieser Daten erschafft dann der Naturwissenschaftler Modelle der Wirklichkeit, in denen die Komplexität der uns umgebenden Welt drastisch reduziert wird: ein Modell beschränkt sich auf wenige Aspekte "der Welt", aber diese stellt es in einem für uns leicht(er) erfassbaren Bild deutlich dar. Diese Modellbildung geschieht in der Regel mit den Mitteln der Mathematik: die vom Experiment gelieferten Daten müssen aufbereitet und auf mögliche Zusammenhänge untersucht werden, und dazu stellt die Mathematik ein ganzes Arsenal an Werkzeugen zur Verfügung. Mithin sind Naturwissenschaftler recht häufig mit mathematischen Fragestellungen beschäftigt, oft mehr als ihnen lieb ist! So entstand recht bald der Wunsch, sich zumindest für ständig wiederkehrende Rechenvorgänge maschineller Hilfe bedienen zu können.

Zu den ältesten Rechenhilfsmitteln gehört ein einfaches Gerät namens "Abakus": es besteht im wesentlichen aus einer Reihe parallel angeordneter Stäbe, auf denen verschiebbare Perlen bzw. Kugeln sitzen. Der Abakus erleichtert vor allem die Addition und die Subtraktion, indem er in der Stellung der Kugeln die gerade bearbeiteten Zahlen "speichern" kann. Er kann zwar auch zur Multiplikation (oder gar zur Division) eingesetzt werden; allerdings muss der Benutzer dazu die benötigten Algorithmen kennen, und die sind nicht gerade selbsterklärend. So sind die "Strichrechungen" dann doch die eigentliche Domäne des Abakus geblieben. Das Gerät war schon in der Antike bekannt und wurde über lange Zeiten im kaufmännischen Bereich als Standard-Hilfsmittel eingesetzt. Man schätzt, dass noch heute etwa die Hälfte der Menschen auf unserer Erde verschiedene Varianten des Abakus in ihrem täglichen Leben einsetzen!

Spätestens seit der Einführung der naturwissenschaftlichen Arbeitsweise durch Galilei gab es einen größeren Bedarf an leistungsfähigeren Rechenhilfsmitteln. Der Traum von einer "universellen Rechenmaschine" beflügelte viele findige Köpfe und führte zu erstaunlichen Geräten. So konstruierte schon 1623 der Tübinger Professor der Mathematik und Astronomie Wilhelm Schickhard eine Rechenmaschine, die die Addition und Subtraktion zweier (bis zu) sechsstelliger Zahlen beherrschte. Sie bestand im Wesentlichen aus Zahnrädern, deren Stellungen die Dezimalstellen der zu bearbeitenden Zahlen kodierten. Schickhard verkoppelte die Zahnräder so geschickt zu einem Getriebe, dass durch eine Kurbeldrehung eine Addition bzw. Subtraktion durchgeführt werden konnte, bei der es sogar schon einen automatischen Zehnerübertrag gab! Für die Multiplikation (und die Division) baute er keinen eigentlichen Rechenmechanismus ein, sondern nur eine Hilfe durch sogenannte "Napier'sche Stäbchen": diese erlaubten (unter Ausnutzung der damals neuesten mathematischen Forschungsergebnisse) die Multiplikation durch eine Addition zu "ersetzen" - aber um das zu verstehen, musste der Benutzer schon ein ausgewachsener Mathematiker sein.

Eine ähnlich arbeitende Maschine, die sich aber auf die reine Addition beschränkte, wurde 1645 vom jungen Blaise Pascal für seinen Vater entwickelt, um dessen Arbeit als Steuerbeamter zu erleichtern. Das Bild links zeigt die Maschine als Ganzes; rechts ist ein Ausschnitt aus der Mechanik der Maschine dargestellt. Die "Pascaline" soll tatsächlich einigermaßen zuverlässig gearbeitet haben. Einige Probleme mit der Mechanik musste man aber bei all diesen frühen Rechenmaschinen in Kauf nehmen - die Feinmechanik steckte in diesen finsteren Zeiten noch in den Kinderschuhen! Pascals Rechenmaschine galt lange Zeit als die erste mechanische Rechenmaschine überhaupt, bis die Wissenschaftshistoriker die Konstruktionsunterlagen der zuvor genannten Schickhard'sche Rechenmaschine wiederentdeckten.
Das eigentliche Ziel war jedoch eine "Vier-Spezies-Maschine", also eine Rechenmaschine, die die vier Grundrechenarten beherrschte. Gottfried Wilhelm Leibniz veröffentlichte 1672 zumindest ein vollständiges und schlüssiges Konzept für den Bau einer solchen Maschine. Das zentrale Funktionselement war die links dargestellte "Staffelwalze": je nach horizontaler Stellung des Zahnrades über der Walze wurde dieses durch eine vollständige Umdrehung der Walze gar nicht oder um eine, zwei, drei,.... oder neun Zehntel-Umdrehungen weitergedreht. Damit realisierte Leibniz die Addition und (durch Umkehrung der Drehrichtung) die Subtraktion. Zur Realisierung der Multiplikation installierte er zwei Zählwerke, "pars immobilis" und "pars mobilis" genannt. In der Abbildung ist das "pars immobilis" die untere feststehende Basis, die das Ergebnis e der Multiplikation e = a * b aufzunehmen hatte. Im "pars mobilis", welches sich in horizontaler Richtung verschiebbar oberhalb des Ergebnis-Speichers befand, wurde die dezimale Darstellung des ersten Faktors a abgelegt.

Um die Wirkungsweise des Multiplikations-Mechanismus zu illustrieren, betrachten wir die konkrete Multiplikation, z.B. 17 * 24. Zunächst werden alle Register zurückgesetzt: sowohl das "pars mobilis" als auch das "pars immobilis" enthalten also die Zahl 0. Sodann wird der Wert des ersten Faktors, also 17, in das "pars mobilis" eingegeben. Die Multiplikation mit 24 geschieht nun in zwei Schritten: zunächst wird das "pars mobilis" ganz nach rechts geschoben und das Hauptantriebsrad ("magna rota") 4 mal gedreht, wobei bei jeder Drehung der im "pars mobilis" gespeicherte Wert (also 17) zum (Zwischen-)Ergebnis im "pars immobilis" hinzuaddiert wird: 17 * 4 = 17 + 17 + 17 + 17. Im "pars immobilis" steht nun der Wert 68. Dann wird das "pars mobilis" um eine Stelle nach links gerückt und mit 2 weiteren Drehungen des "magna rota" jeweils das zehnfache des im "pars mobilis" gespeicherten Wertes (d.h. also 10 * 17 = 170) in das "pars immobilis" hinein addiert: 17 * 20 = (17 * 2 * 10) = (17 + 17) * 10, wobei der Faktor 10 durch die Verschiebung des "pars mobilis" gegenüber dem "pars immobilis" realisiert wird. Also kommt zum vorigen Zwischenergebnis (68) nun noch 340 dazu, womit im "pars immobilis" nun das Endergebnis (68 + 340 = 408) steht. Mithin hat Leibniz also den Algorithmus der schriftlichen Multiplikation in Mechanik implementiert!

Leider kam Leibniz nie in den Genuss, seine Maschine auch wirklich benutzen zu können: die Feinmechaniker seiner Zeit waren von den Anforderungen dieser Mechanik hoffnungslos überfordert und konnten ihm die gewünschte Maschine nicht bauen! Zwar investierte Leibniz eine Menge Geld in das Projekt, ohne jedoch jemals ein vorzeigbares Ergebnis zu erhalten. Der erste wirklich fehlerfrei und zuverlässig arbeitende Nachbau einer Leibniz'schen Rechenmaschine stammt von 1990(!). Im Heinz-Nixdorf-Computermuseum in Paderborn kann man inzwischen ein tadellos funktionierendes Exemplar dieser Maschine bewundern.

Die Verdienste von Leibniz erschöpfen sich jedoch nicht im Entwurf einer (zu seiner Zeit) nicht realisierbaren Rechenmaschine. Viel wichtiger für die Kulturgeschichte der Menschheit waren die theoretischen Überlegungen, die er im Rahmen dieses Projekts anstellte. So führten ihn die unschönen Erfahrungen mit der unzureichenden Mechanik zu einer Notiz in seinen Aufzeichnungen, dass für den Bau einer Rechenmaschine möglicherweise das Zweiersystems geeigneter sein könnte als das Zehnersystem. Diese Idee schlummerte dann aber mehrere hundert Jahre unentdeckt vor sich hin. Erst Konrad Zuse setzte sie in seinen Maschinen in die Tat um!

Ein ähnlich trauriges Schicksal wie die Leibniz'sche Rechenmaschine hatte die "Difference engine", die Charles Babbage von 1812 bis 1832 entwickelte. Ein erstes Arbeitsmodell gab Anlass zu kühnen Hoffnungen, aber der Entwurf der vollständigen Maschine konnte mit der Feinmechanik des 19. Jahrhunderts noch nicht realisiert werden: 25 Zahnräder hätten ineinander greifen müssen, ohne sich zu verklemmen - unmöglich für die damalige Zeit! Das Bild links zeigt einen modernen Nachbau der "Difference engine", der im "Science museum" in London steht. Dieser Nachbau ist voll funktionsfähig: die "Difference engine" sollte zur Überprüfung von mathematischen Tabellen dienen, und tatsächlich kann der Nachbau sämtliche dafür nötigen Berechnungen korrekt durchführen. Nachträglich wird damit also die Korrektheit des Entwurfs von Charles Babbage gezeigt!

Ungeachtet der unüberwindbaren Schwierigkeiten bei der Realisierung der "Diffence engine" entwarf Babbage bereits im Jahr 1833 die "Analytical engine": diese gilt als die erste programm-gesteuerte Maschine für allgemeine mathematische Berechnungen. Da diese neue "Analytical engine" noch um einiges komplizierter als die alte "Difference engine" war, konnte sie natürlich ebenfalls nicht erfolgreich gebaut werden. Trotzdem wurden schon damals erste Programme für die "Analytical engine" geschrieben: eine Mitarbeiterin von Charles Babbage, nämlich Miss Ada Lovelace, entwickelte z.B. ein Programm, mit dem sie die Folge der Bernoulli-Zahlen hätte berechnen können, wenn es denn damals schon eine lauffähige "Analytical engine" gegeben hätte... Immerhin gilt Ada Lovelace seitdem als die erste Programmiererin der Welt, und ihr zu Ehren wurde eine heute noch wichtige Programmiersprache "Ada" getauft!

Babbage hatte vorgesehen, dass das "Programm" der Analytical engine auf Lochkarten kodiert werden sollte. Damit griff er zurück auf eine bewährte Technik, die von Joseph-Marie Jacquard schon zu Beginn des 19. Jahrhunderts entwickelt worden war. Jacquard konstruierte damals einen vollautomatischen Webstuhl, bei dem er zur Steuerung des zu webenden Musters Lochkarten einsetzte: je nachdem, ob an einer bestimmten Stelle einer solchen Karte ein Loch war oder nicht, wurde die Führung der Schussfäden modifiziert oder nicht. Jacquard gilt damit als der eigentliche Erfinder des ersten digitalen Datenträgers. Die Lochkarten erlaubten nahezu beliebig komplizierte Muster von zuvor nicht gekannter Größe und Komplexität. Durch die Fortschritte bei der Mechanisierung der Webereien gingen allerdings auch Tausende von Arbeitsplätzen verloren: was zuvor durch viele menschliche Arbeitskräfte geleistet worden war, wurde nun von einem Automaten erledigt, und zwar präziser, schneller und billiger -- eine bittere Erkenntnis für die betroffenen Weber!

Der Siegeszug der Lochkarte war jedoch nicht aufzuhalten. Der nächste spektakuläre Einsatz dieses neuen Mediums ging unter der Federführung von Hermann Hollerith im Jahre 1890 über die Bühne: zur Auswertung der 11. amerikanischen Volkszählung entwickelte und konstruierte er Lochkarten-gesteuerte Zähl- und Auswerte-Maschinen sowie die zugehörigen Kodierungsgeräte, mit denen die Daten in die Lochkarten gestanzt wurden.

Beim Auslesen der auf den Lochkarten gespeicherten Daten entschied die Lochkarte darüber, ob ein entsprechender Stromkreis geschlossen wurde oder nicht: nur wenn an der entsprechenden Stelle ein Loch war, konnte eine Metallnadel durch die Lochkarte hindurch in einen mit Quecksilber(!) gefüllten Behälter eintauchen. Damit wurde ein elektrischer Stromkreis geschlossen, welcher den Zählerstand einer Zähluhr um Eins erhöhte. Mit Hilfe dieser Maschinen (und dem minutiösen Management von Hollerith!) konnte die Volkszählung nahezu unglaublich schnell abgeschlossen werden: was 10 Jahre zuvor noch 500 Helfer für fast 7 Jahre beschäftigt hatte, konnte Hollerith mit 43 Zählmaschinen und ebenso viel Bedienungspersonal in knapp 4 Wochen erledigen!

Hollerith hatte die von ihm entwickelte Apparatur schon vor der Durchführung der Volkszählung patentieren lassen. In den folgenden Jahren verbuchte er so großen wirtschaftlichen Erfolg, dass er 1996 eine eigene Firma gründete, die "Tabulating Machine Company". Der Erfolg hielt zunächst an; später verlor er allerdings mehrere seiner Grosskunden, weil diese wegen seiner überhöhten Preise lieber zur schnell wachsenden Konkurrenz gingen. In der Folge verstrickte sich Hollerith in juristische Auseinandersetzungen mit diesen Konkurrenten; die daraus resultierenden Prozesse kosteten Kraft und Geld und führten meist nicht zum gewünschten Ergebnis. Zermürbt verkaufte er schließlich seine Firma und begnügte sich mit einem wohldotierten Beratervertrag. Nach einigen Fusionen mit anderen Betrieben ging die Firma schließlich in der "International Business Machine Corporation" auf, welche noch heute unter dem Kurznamen "IBM" tätig ist!

Die legendäre Schnelligkeit der Maschinen des Hermann Hollerith fand ihre Würdigung in einer deutschen Redewendung, die unseren Großeltern noch recht geläufig gewesen war: wenn ein Vorgang flott vonstatten ging, sagte man damals: "Das geht ja wie bei einer Hollerith-Maschine!"



1.2 Frühe Computer


Die Vision, die Charles Babbage in seinem Entwurf der "Analytical engine" niederschrieb, wurde von Konrad Zuse 1936 in seiner "Z1" verwirklicht: Zuse baute in seiner Heimatstadt Berlin eine programmierbare Maschine, die allgemeine mathematische Berechnungen ausführen sollte. Die "Z1" wurde über Lochstreifen programmiert: dazu nahm Zuse alte Filmrollen aus Tonfilm-Studios und stanzte die passenden Löcher hinein. Das eigentlichen Rechenwerk war jedoch voll-mechanisch: die Maschine bestand aus etwa 30 000 handgesägten(!) Blechen, die miteinander über trickreiche Kopplungen verbunden waren! Kein Wunder, dass Zuse mit denselben Problemen zu kämpfen hatte wie alle seine Vorgänger auch: eigentlich arbeitete die Maschine niemals wirklich störungsfrei und zuverlässig. In zwei Aspekten jedoch war die Z1 eine wirklich richtungsweisende Maschine:
  1. Zuse verwendete als erster eine halb-logarithmische Darstellung für die Zahlen z, also von der Form z = s * m * 10e mit dem Vorzeichen s, der Mantisse m und dem Exponenten e. Dies hat den Vorteil, dass der Rechenbereich der Maschine deutlich größer ist als wenn nur Integer-Zahlen verwendet würden. Konrad Zuse kann damit als der Erfinder der Fließkomma-Zahlen gelten: die heute für nahezu alle Programmiersprachen geltenden Standard-Datentypen "Single" und "Double" sind direkte Weiterentwicklungen von Zuses Ideen!

  2. Zuse kodiert alle Daten grundsätzlich im Binär-System. Damit enthält jede Speicherzelle zwar nur 1 Bit, muss aber dafür auch nur noch zwischen 2 Zuständen unterscheiden können, und nicht zwischen 10. Dies führte zu einer so großen Vereinfachung der Konstruktion, dass Zuse zumindest Teile seiner Z1 systematisch testen konnte - soweit funktionierte die Mechanik doch schon! (Der Speicher der Z1 hatte Platz für 64 Fließkommazahlen zu jeweils 22 Bit Breite: das sind immerhin schon 1,375 kB!)
Nachdem die Z1 als Ganzes nicht zu stabilem Arbeiten zu überreden war, konstruierte Zuse eine kleinere neue Maschine, bei der er statt der mechanischen Schaltglieder nun Relais einsetzte. Diese "Z2" zeigte Zuse, dass die Relais-Technik einen sehr viel höheren Grad an Zuverlässigkeit bringen kann, so dass er von da an die mechanische Variante (zumindest für das Rechenwerk) nicht mehr weiter verfolgte.

Die nächste in der Serie der Maschinen von Konrad Zuse war die Z3, welche im Wesentlichen eine in Relais-Technik realisierte Variante der mechanischen Z1 war. Selbst die Speichergrößen der beiden Rechner stimmten überein. Und die Beschränkungen waren ebenfalls dieselben: beide Rechner konnten lediglich lineare, also unverzweigte Programme abarbeiten, und beide verfügten noch nicht über bedingte Sprünge und Schleifen. Nur die Technologie wurde komplett geändert: statt der 30 000 Bleche in der Z1 rechneten in der Z3 nun etwa 2600 Telephonrelais...

Sowohl die Z3 als auch die Z1 und die Z2 wurden im Dezember 1943 bei einem Bombenangriff der Alliierten auf Berlin zerstört. Das nächste Modell Z4 transportierte Zuse selbst in den letzten Wochen des 2. Weltkriegs unter abenteuerlichen Umständen aus Berlin heraus und quer durch Deutschland in einen kleinen Ort bei Kempten im Allgäu. Schließlich konnte er im Jahr 1949 diesen aus Berlin geretteten Z4-Rechner an die ETH Zürich verleihen, womit wegen der nun regelmäßig eintreffenden Mietzahlungen die Produktion weiterer Geräte ein finanzielles Fundament erhielt. Das eigentliche Ziel von Zuse war nämlich stets die Herstellung von Rechenmaschinen in Großserie gewesen. Er selbst betrachtete die Z1, Z2 und Z3 als Prototypen, die Z4 hingegen als die erste serientaugliche Maschine. Folgerichtig gründete er noch 1949 die ZUSE KG, mit der er dann in die Serienfertigung einstieg. Die Firma produzierte bis in die Mitte der 60er Jahre eine große Palette an Rechenmaschinen, entwickelte aber auch neuartige Peripheriegeräte, wie z.B. mit dem "Graphomat Z64" den ersten Plotter oder mit dem "Haromat" das erste Digitalisiertablett!

Soweit die Computergeschichte aus einem deutschen Blickwinkel. Der Rest der Welt hat jedoch den Anbruch des Computerzeitalters ebenfalls nicht verschlafen: im Gegenteil! Während es in Deutschland sowohl an den Universitäten als auch in der Wirtschaft allenthalben an Interesse und Sachverstand für die neue Informationstechnologie mangelte und die Forschung über diesen neuen Gegenstand in den Händen einiger weniger ambitionierter Privatleute lag, stürzten sich in den USA ganze Scharen von Universitätslehrern auf das neue Thema, und die öffentliche Hand förderte bereitwillig selbst ziemlich teure Großprojekte - Hauptsache es ging voran mit den Rechenmaschinen!

So konnte z.B. Prof. Howard H. Aiken von der Harvard-Universität in Cambridge, Massachusetts im Jahre 1944 einen wahren Rechenkoloss in Betrieb nehmen: Mark I hatte eine 15 m lange und weit über 2 m hohe Frontfläche, hinter der etwa 700 000 Einzelteile arbeiteten. Innerhalb des Rechners waren etwa 80 km Leitungsdraht verlegt. Das Rechenwerk wurde als "elektro-mechanisch" bezeichnet, und die Tatsache, dass etwa 3000 Kugellager(!) verbaut worden waren, zeigt, dass der Mechanikanteil durchaus beträchtlich war. Der Rechner rechnete noch nicht binär, sondern dezimal, und zwar nur mit ganzen Zahlen - eine Fließkomma-Verarbeitung war nicht vorgesehen. Das Programm wurde von einem Lochstreifen eingelesen,weshalb auch hier wie bei der Z3 Schleifen und bedingte Sprünge fehlten. Man warb mit flotten Rechenzeiten: 0,3 Sekunden für eine Addition und 6 Sekunden für die Multiplikation zweier 10-stelliger (ganzer) Zahlen.

Dem Modell Mark I folgten in den Jahren danach die Modelle Mark II, III und IV. Auch hier wurden (wie bei Herrn Zuse) die mechanischen Teile des Rechenwerks aufgegeben zugunsten elektrischer und schließlich elektronischer Design-Varianten. So rechnete Mark IV mit Elektronenröhren; Daten konnten im einem magnetischen Trommelspeicher zwischengelagert werden; der eigentliche Hauptspeicher, in dem die Rechnungen ausgeführt wurden, bestand aus 200 Registern, in denen die Bits in kleinen ringförmigen Magnetkernen gespeichert wurden: die Orientierung des gespeicherten Magnetfeldes entschied darüber, ob das Bit den Wert "0" oder "1" haben sollte. Alle Rechenmaschinen dieser Serie blieben jedoch bewusst bei der strikten Trennung von Programm und Daten; diese Design-Entscheidung wurde in der Folgezeit mit dem Namen "Harvard-Architektur" belegt. Auch wenn beim Mark IV das Programm ebenfalls von einem Trommelspeicher eingelesen wurde, war es zur Laufzeit doch statisch.




1.3 Die "von-Neumann-Architektur"


Ein wesentlicher Fortschritt in der Entwicklung der Rechenmaschinen gelang 1945 dem Mathematiker John von Neumann mit dem Konzept eines universellen Rechners. Die wichtigste seiner neuen Ideen war, dass die Programm-Befehle genau wie die zu bearbeitenden Daten im Speicher abgelegt werden sollten: "Programme sind auch nur Daten!" Dadurch kann man bei einem solchen von-Neumann-Rechner das Programm recht schnell ändern, ohne dass dazu die Hardware umgebaut werden muss: man lädt einfach ein anderes Programm in den Speicher! Es ist nun sogar möglich, dass das Programm sich zur Laufzeit selbst verändert, und zwar in Abhängigkeit von zuvor berechneten Zwischenergebnissen! In moderner Sprache ausgedrückt: logische Verzweigungen wie bedingte Sprünge und "offene" Schleifen werden nun möglich. Das folgende Bild zeigt ein Struktur-Diagramm eines von-Neumann-Rechners:


Ein solcher Rechner besteht also aus einer Eingabe-Einheit (zur Eingabe von Daten und Programmen), einem Speicher (RAM, d.h. "Random Access Memory"), einer Verarbeitungs-Einheit (CPU, d.h. "Central Processing Unit") und einer Ausgabe-Einheit. In der Grob-Struktur finden Sie hier das altbekannte EVA-Prinzip wieder: Eingabe, Verarbeitung, Ausgabe - auch für die Hardware-Architektur des Rechners, genau wie für die Software-Architektur der Programme!

Die CPU besteht intern aus zwei Komponenten:
  1. im Rechenwerk (ALU, d.h. "Arithmetic Logic Unit") geschieht die eigentliche Daten-Verarbeitung: hier werden die Eingangsdaten miteinander verknüpft, wodurch die Ausgangsdaten berechnet werden;

  2. das Steuerwerk ist die das Cockpit des Rechners: von hier erhalten alle Komponenten ihre Arbeitsaufträge.
Der Datenaustausch zwischen den einzelnen Komponenten des Rechners geschieht über Bussysteme. Ein Bus ist ein Bündel von parallelen Datenleitungen, von denen jede zu einer Zeit genau ein Bit(!) transportieren kann. Die Anzahl der Busleitungen ist in der Abbildung durch die Buchstaben "k", "m" und "n" angedeutet, die jeweils für eine natürliche Zahl stehen (also z.B. k = 8, m = 16, und n = 20). Ein von-Neumann-Rechner hat 3 verschiedene Bus-Systeme:
  1. Der Steuerbus
    verbindet das Steuerwerk mit allen anderen Komponenten des Rechners. Auf ihm werden die Arbeitsaufträge vom Steuerwerk an die Komponenten geleitet und Zustandsänderungen der Komponenten an das Steuerwerk zurückgemeldet.

  2. Der Datenbus
    leitet Daten (und Programme!) von einer Rechnerkomponente zur anderen. Zentraler Umschlageplatz für Daten ist natürlich der Speicher, der Daten sowohl von der Eingabe-Einheit als auch vom Rechenwerk entgegen nehmen und gespeicherte Daten an das Rechenwerk, die Ausgabe-Einheit und das Steuerwerk(!) weiterleiten kann.

  3. Der Adressbus
    transportiert die Quelladressen der zu lesenden Daten und die Zieladressen für zu schreibende Daten vom Steuerwerk an die Komponenten.

Das Laufzeitverhalten eines solchen von-Neumann-Rechners lässt sich nun ganz einfach beschreiben. Wenn wir davon ausgehen, dass das Programm ab einer bestimmten Adresse im Speicher steht, dann muss das Steuerwerk also den an dieser Stelle stehenden Programmbefehl in die CPU holen. Danach muss die CPU den Befehl ausführen, dann den nächsten Befehl holen, auch diesen ausführen, usw usw.... bis die letzte Anweisung des Programms abgearbeitet ist. Insgesamt muss also ("nur") die folgende Schleife ständig durchlaufen werden:
   Wiederhole
      Hole den nächsten Programmbefehl aus dem RAM in die CPU.
      Führe den Befehl aus.
   bis das Programm-Ende erreicht ist.
Diese Schleife nennt man den "von-Neumann-Zyklus". Der erste Computer, der nach diesem Prinzip arbeitete, war - zumindest aus amerikanischen Blickwinkel - der 1946 an der Universität von Pennsylvania in Betrieb genommene ENIAC ("Electronic Numerical Integrator And Computer"), an dessen Entwicklung John von Neumann wesentlich beteiligt war. Wie oben schon beschrieben, stellte in Deutschland etwa zur gleichen Zeit Konrad Zuse seine "Z4" fertig, welche ebenfalls ein "von-Neumann-Rechner" war.

Bis zum heutigen Tag arbeiten sämtliche PCs auf der ganzen Welt nach diesem einfachen Prinzip. Im Detail haben wir natürlich eine in atemberaubenden Tempo voranschreitende Entwicklung zu immer leistungsfähigeren, aber auch effizienteren Rechnern hinter uns gebracht. Trotzdem wurden nahezu alle bisher gebauten Computer im Wesentlichen nach den von-Neumann'schen Konstruktions-Prinzipien entworfen (Stand 2012).

Erst in jüngster Zeit beginnen die Computer-Entwickler über Alternativen nachzudenken. Einer der auffälligeren Unterschiede zwischen von Neumann's Entwurf und einem modernen PC ist, dass ersterer nur über eine einzige CPU verfügt, letzterer aber über 4 (oder noch mehr) CPUs, die alle parallel arbeiten sollen. Möglicherweise erweist sich die von-Neumann-Architektur für die nächste Generation von "Parallel-Rechnern" doch als zu eng.


Aufgaben:

  1. Cache as cache can...

    Zu den zahlreichen Neuerungen, von denen von Neumann noch nichts wusste, gehören die Cache-Speicher, die in modernen Rechnern eingebaut sind. Informieren Sie sich darüber, wozu solcher "Cache" eingebaut wird, wie groß er (in Ihrem Rechner!) ist und wie er arbeitet.

    Warum handelt es sich dabei um eine technische Ergänzung, die keine wesentliche Abweichung von der von-Neumann-Architektur darstellt?
    Lösungsvorschlag


  2. Technische Details

    Die oben erwähnten Busbreiten k, m und n beschreiben in gewisser Weise, wie "groß" ein Computer ist. Während die Steuerbus-Breite k lediglich darüber entscheidet, wie viele Peripherie-Komponenten das Steuerwerk verwalten kann, sagen die Adressbus-Breite n und die Datenbus-Breite m etwas über die maximale Größe des RAM-Speichers aus.

    Begründen Sie, warum ein Rechner maximal 2^m Bytes Speicher verwenden kann, wenn man verlangt, dass jedes einzelne Byte des Speichers direkt angesprochen werden kann.

    Wenn man auf die letzte Forderung verzichtet, könnte man im Falle n > 8 im Prinzip auch noch mehr Speicher adressieren. Beschränken Sie sich auf den Fall, dass n ein Vielfaches von 8 ist. Wieviel Speicher könnte dann die CPU höchstens verwalten?

    Die meisten gängigen CPUs hingegen können jedes Speicher-Byte individuell adressieren. Recherchieren Sie die Werte von k, m und n für die CPU des "Ur-IBM-PCs", nämlich die "Intel 8086", und bestimmen Sie dann die maximal mögliche Speichergröße dieses Rechner-Modells.
    Lösungsvorschlag






Zum Inhaltsverzeichnis Zum nächsten Kapitel