Die Rechenarchitektur beschreibt die interne Organisation eines Computers. Es gibt zwei verbreitete Architekturen. Beide sind gegen Ende des zweiten Weltkriegs entstanden, als die ersten elektronischen Computer entwickelt worden sind: die Von Neumann-Architektur und die Harvard-Architektur.
Wir werden uns im Folgenden nur die von Neumann-Architektur anschauen.
John von Neumann (* 28. Dezember 1903 in Budapest, Österreich-Ungarn als János Lajos Neumann; † 8. Februar 1957 in Washington, D.C., Vereinigte Staaten) war ein ungarisch-US-amerikanischer Mathematiker.
Schon als Kind zeigte John Neumann jene überdurchschnittliche Intelligenz. Als Sechsjähriger konnte er mit hoher Geschwindigkeit achtstellige Zahlen im Kopf dividieren. Er besaß ein außergewöhnliches Gedächtnis, das ihm beispielsweise erlaubte, den Inhalt einer Buchseite nach einem kurzen Blick darauf präzise wiederzugeben.
Er studierte von 1921 bis 1923 Chemieingenieurwesen in Berlin und dann bis zu seinem Diplom 1926 an der ETH Zürich. Gleichzeitig war er an der Universität Budapest eingeschrieben, absolvierte dort aber nur die Examina und promovierte dort 1926 mit einer Dissertation über axiomatische Mengenlehre. Sein eigentliches Interesse galt immer der Mathematik, der er sich gewissermaßen als „Hobby“ widmete.
Von Neumann gilt als einer der Väter der Informatik. Nach ihm wurde die Von-Neumann-Architektur (auch Von-Neumann-Rechner) benannt, ein Computer, in dem Daten und Programm binär codiert im selben Speicher liegen.
Ein Von-Neumann-Rechner beruht auf folgenden Komponenten, die bis heute in Computern verwendet werden:
Rechenwerk, selten auch Zentraleinheit oder Prozessor genannt, führt Rechenoperationen und logische Berechnungen aus.
Steuerwerk, interpretiert die Anweisungen eines Programms und regelt die Befehlsabfolge.
Speicher, speichert sowohl Programme als auch Daten, welche für das Rechenwerk zugänglich sind.
Ein- und Ausgabe, steuert die Ein- und Ausgabe von Daten, zum Anwender (z.B. Tastatur, Bildschirm) oder zu anderen System (Schnittstellen).
Bus System, dient zur Kommunikation zwischen den obigen Komponenten.
Heute sind Rechen- und Steuerwerk normalerweise im Prozessor (CPU) zusammengefasst.
Bearbeitung eines speziellen Problems erfolgt durch ein Programm (Befehlsfolge)
Befehl: Binärzahl mit festem Format
Daten und Programme werden nicht in getrennten Speichern untergebracht, ohne weitere Massnahmen besteht kein Schutz vor inkorrektem Zugriff
Zu jedem Zeitpunkt führt die CPU genau einen Befehl aus, welcher höchstens einen Datenwert bearbeiten kann.
Ein Bus ist ein System zur Datenübertragung zwischen mehreren Komponenten über einen gemeinsamen Übertragungsweg. Findet eine momentane Datenübertragung zwischen zwei Teilnehmern statt, so müssen die übrigen Teilnehmer zur selben Zeit schweigen, da sie sonst stören würden.[1] Die Zeit der Sprechberechtigung wird nach einem allen Teilnehmern bekannten (Zeit- oder Signal-)Schema verteilt. Das Zuhören ist nicht eingeschränkt. (mehr auf Wikipedia: Bus (Datenverarbeitung) )
Der Mikroprozessor (CPU) steuert als aktive Komponente das Busssystem. Es werden jeweils zwei Komponenten gleichzeitig aktiv geschaltet (da wir jeweils einen Sender und einen Empfänger brauchen).
Wenn alle Komponenten direkt miteinander kommunizieren, muss zwischen allen Komponenten eine Datenleitung vorhanden sein. Wenn ein Bus verwendet wird, muss eine neue Komponente nur am Bus angeschlossen werden. Somit wird die Komplexität der Hardware reduziert.
Der Prozessor führt immer wieder denselben zyklischen Ablauf ab.
Befehl laden
Befehl decodieren
Befehl ausführen
Folgend sollte der von Neumann-Zyklus euch vorgestellt werden. Meine Unterlagen orientieren sich in diesem Abschnitt an der InformatikMyGymer Kirchenfeld-Seite.
Der nächste Befehl wird aus dem Speicher in das Befehlsregister geladen. Dazu wird die Adresse des nächsten Befehls vom Programmzähler an das Speicherwerk übertragen.
Der Befehl wird aus dem Speicher über den Datenbus in das Befehlsregister übertragen. Anschliessend wird der Programmzähler um eins erhöht.
Der Befehl, welcher in das Befehlsregister geladen worden ist, wird decodiert. Das Decodierwerk übersetzt die Aktionen, welche für diesen Befehl ausgeführt werden müssen, in Steuersignale an die verschiedenen Komponenten.
Der eigentliche Befehl wird ausgeführt, indem das Dekodierwerk die Steuersignale an die Komponenten auslöst.
einige typische Befehle:
Um einen Wert zu bearbeiten, muss dieser aus dem Hauptspeicher geladen werden. Dazu wird mit dem Lade-Befehl ein Wert aus dem Speicher in den Akkumulator des Rechenwerks geladen.
Der Akkumulator ist ein Allzweckregister. Er ist als Operand an jeder Berechnung beteilgit und nimmt danach immer das Ergebnis auf (daher der Name - die Ergebnisse aufeinanderfolgender Berechnungen werden hier akkumuliert und bilden schliesslich das Endergebnis).
Wenn ein Wert berechnet wurde, muss es auch wieder in den Speicher geschrieben werden.
Im Rechenwerk werden arithmetische Operationen durchgeführt. Addition, Subtraktion, Multiplikation, Division.
Eingabe: Wert kann aus einem Eingabegerät in den Hauptspeicher eingelesen werden
Ausgabe: Wert kann aus dem Hauptspeicher auf ein Ausgabegerät ausgegeben werden
Notiere dir die Komponenten eines von-Neumann Rechners. Was sind nocheinmal die Kenngrössen eines Prozessors ?
Was ist der Vorteil des Bus Systems?
Der von-Neumann Zyklus hat folgenden Ablauf:
Befehl laden
Befehl decodieren
Befehl ausführen
Was passiert, wenn der Befehl geladen wird?
Wo wird der Befehl dekodiert?
Wann wird das Rechenwerk aktiv?
Was sind typische Befehle, welche decodiert werden könnten? Welche Komponenten sind dabei involviert?
Vorgesehen sind 5-8 Rollen pro Rollenspiel-Gruppe, d.h. 2 bis 4 Rollenspiel-Gruppen pro Klasse. Die Rollen sind im Einzelnen:
Steuerwerk
Rechenwerk
Zählwerk
Speicherwerk
Dekodierwerk
Stoppuhr (auch nachträglich umsetzbar – es wird dann nach dem Rollenspiel abgeschätzt, wie lange eine Runde gebraucht hat)
Benutzer*in (falls zu wenig Personen: Die Lehrperson spielt den/die Benutzer*in)
Bildschirm (falls zu wenig Personen: Die Lehrperson spielt auch den Bildschirm)
Die Rollenanleitungen, Speicher-Karten und Befehlsstreifen sind im Dokument Neumann-Rollenspiel-Druckvorlage zum Drucken und Ausschneiden vorbereitet und können laminiert werden.
Die Blätter, die stets neu verwendet werden müssen, sind im Dokument Speicherstellen zu finden.
Stifte für die meisten Rollen
Für das Rollenspiel stehen vier Programme zur Verfügung:
Programm 1 (wohl nicht nötig): Es werden zwei Zahlen aus dem Speicher addiert und auf dem Bildschirm angezeigt.
Programm 2: Es werden zwei vom Benutzer eingegebene Zahlen addiert und auf dem Bildschirm angezeigt.
Programm 3: Der Benutzer muss solange eine Zahl eingeben (erraten), bis sie stimmt, d.h. bis die Ausgabe 0 am Bildschirm erfolgt.
Hinweis
Um das Programm zu beschleunigen (resp. abzuschliessen), muss der Benutzer die Zahl 32 eingeben!
Programm 4 (nur wenn zu viel Zeit): Es werden die Zahlen 02, 04, 06, 08, 10 nacheinander auf dem Bildschirm angezeigt.
Hinweis
Um das Programm zu beschleunigen (resp. abzuschliessen), kann die LP während des Spiels die Zahl 8 in Speicherstelle A schreiben. Anschliessend wird nochmals 2 addiert, mit dem Ziel 10 verglichen und abgeschlossen.
Hier sollte der Vergleich zu einer richtigen CPU gemacht werden. Die Stoppuhr hat für jede Runde notiert, wie lange diese gedauert hat (oder die Zeit wird nachträglich abgeschätzt). Eine richtige CPU arbeitet mit ca. 3 Milliarden Taktzyklen pro Sekunde.
Zentrale Punkte:
Ein Computer kann nur wenige, ganz simple Dinge, dafür in horrendem Tempo.
Ein Programm besteht aus unzähligen, sehr simplen Anweisungen (= lauter Zahlen).
Eine Anweisung aus dem Speicher enthält jeweils einen Befehl und eine (betroffene) Speicherstelle.
Der Bus ist das zentrale Kommunikationsmittel, alle lesen davon oder/und schreiben darauf.
Fetch-Decode-Execute-Prinzip.