Repetition
🎯 Um was geht es?
Die Rechenarchitektur ist Dir zu irgendeinem Zeitpunkt schon in deiner Schulkarriere begegnet.
Hier findest Du nochmals eine kleine Repetition in das Thema.
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 💻
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.
2. Von-Neumann-Architektur
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.
Kennzeichen eines von-Neumann-Rechners
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.
2.1. Das Bussystem
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.
2.2. Speicherhierarchie
Je weiter der Speicher von der CPU entfernt ist, desto länger geht die Zugriffszeit auf den Speicher.
Der Preis nimmt zu, je näher sich der Speicher bei der CPU befindet.
3. Von-Neumann Zyklus
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.
- Befehl laden
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.
2. Befehl decodieren
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.
3. Befehl ausführen
Der eigentliche Befehl wird ausgeführt, indem das Dekodierwerk die Steuersignale an die Komponenten auslöst.
Befehlssatz
einige typische Befehle:
Wert laden
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).
Wert speichern
Wenn ein Wert berechnet wurde, muss es auch wieder in den Speicher geschrieben werden.
Addieren
Im Rechenwerk werden arithmetische Operationen durchgeführt. Addition, Subtraktion, Multiplikation, Division.
Eingabe und Ausgabe
Eingabe: Wert kann aus einem Eingabegerät in den Hauptspeicher eingelesen werden
Ausgabe: Wert kann aus dem Hauptspeicher auf ein Ausgabegerät ausgegeben werden
Aufgaben
Beschreiben Sie wesentlichen allgemeinen Komponenten einnes von-Neumann Rechners.
Beschreiben Sie den Von-Neumann-Zyklus.
In welcher Reihenfolge werden die Befehle abgearbeitet? Wie kann diese Reihenfolge beeinflusst werden?
die wesentlichen Komponenten eines von Neumann Rechners:
Prozessor (Central Processing Unit, CPU) steuert alle Abläufe und führt die Befehle der aus. Bestandteile:
Rechenwerk mit ALU (Arithmetic Logic Unit), Daten- und Zusatzregistern. Die ALU ist frü die Ausführung der arithmetischen und logischen Operationen zuständig. In der Regel werden zwei Datenregister miteinander verknüpft und das Ergebnis wieder in einem Datenregister abgespeichert. Das wichtigste Zusatzregister ist das Flagregister, dessen Inhalt von der ausgeführten Operation abhängt.
Steuerwerk (auch als Leit- oder Operationswerk bezeichnet) mit Befehlszähler, Befehlsregister und Adressregister. Das Steuerwerk koordiniert alle Vorgänge in der CPU und alle Transporte auf dem Bus-System.
Hauptspeicher (oder Speicherwerk) dient zur Speicherung von Daten und Befehlen. Alle Befehle, die ausgeführt werden sollen, müssen sich im HS befinden.
Ein- und Ausgabeeinheit steuert die Ein- und Ausgabe von Daten, bietet Schnittstellen zu den peripheren Geräten.
Bus-System zum Transport von Adressen, Daten und Steuerbefehlen zwischen den genannten Komponenten.
Nach dem Start des Steuerwerks läuft folgende Steuerschleife (der von-Neumann-Zyklus) ab, bis die Abarbeitung durch einen HALT-Befehl beendet wird:
Holen des aktuellen Befehls in das Befehlsregister
Dekodieren des Befehls
Holen der Operanden aus dem Speicher (optional)
Befehlsausführung
Rückschreiben der Ergebnisse
Bestimmen der Adresse des Nachfolgebefehls
Die Befehlsabarbeitung erfolgt sequentiell. Zusatz: Eine Änderung dieser Reihenfolge ist durch Sprungbefehle möglich; es gibt bedingte und unbedingte Sprünge. Ein unbedingter Sprung wird immer ausgeführt, während ein bedingter Sprung nur bei Erfüllung der angegebenen Bedingung ausgeführt wird.
3. Performance
Wichtiges Kriterium für die Beurteilung von Computern
Verrgleich verschiedener Rechner bzgl. Performance schwierig:
verschiedene Operationen sind möglich, Bedeutung hängt vom Einsatzgebiet des Rechners ab
Grobe allgemeine Schätzung der Performance:
MIPS (Million Instructions Per Second)
MFLOPS (Million Floating Point Operations Per Second)