Mikroprozessorarchitektur
Schaltwerke in der Mikroprozessorarchitektur
Schaltwerke werden zur Realisierung von Grundoperationen in Prozessoren eingesetzt. Im Gegensatz zu Schaltnetzen besitzen Schaltwerke einen internen Zustand, was sie für sequentielle Operationen besonders geeignet macht.
Steuerwerk und Operationswerk
Die Trennung zwischen Steuerwerk oder Control Unit, und Operationswerk, Data Path genannt, ist ein fundamentales Designprinzip in der Prozessorarchitektur. Diese Aufteilung ermöglicht eine klare Trennung von Kontrollfluss und Datenverarbeitung.
Operationswerk, Data Path
Führt arithmetische und logische Operationen aus es besteht aus ALU, Registerbank und Datenpfaden und operiert unter direkter Anweisung des Steuerwerks. Das Operationswerk ist für die Ausführung der eigentlichen Berechnungen zuständig und empfängt Steuersignale vom Steuerwerk.
Steuerwerk, Control Unit
Koordiniert die Ausführung von Befehlen und Interpretiert Befehle und generiert Steuersignale. Kann hartverdrahtet oder mikroprogrammiert sein. Das Steuerwerk muss die Abarbeitung der Befehle bewältigen und verwendet dazu Mikroprogramme.
Aufbau eines Steuerwerks
Das Steuerwerk verwendet einen ROM, Read-Only Memory genannt, in dem Mikrobefehle gespeichert sind. Es verarbeitet Statussignale vom Operationswerk und generiert darauf basierend Steuersignale sowie die Folgeadresse für den nächsten Mikrobefehl.
Erweiterter Aufbau eines Steuerwerks
Moderne Steuerwerke enthalten oft einen Befehlszähler oder Program Counter, der automatisch hochzählt, sowie Mechanismen zur Manipulation des Folgebefehls; Sprunganweisungen für Schleifen.
Mikroprogrammierung
Mikroprogrammierung ist eine Abstraktionsebene unterhalb des Maschinenbefehlsniveaus. Jeder Maschinenbefehl wird durch eine Folge von Mikrobefehlen implementiert. Diese Technik ermöglicht eine flexiblere Steuerung der Hardware.
Aufbau eines Mikrobefehls:
-
Steueranteil: Steuersignale für das Operationswerk
-
Folgeadresse: Nächster auszuführender Mikrobefehl
-
Bedingungsfeld: Bestimmt Sprungverhalten
Wobei: 00: kein Sprung, 01: bedingter Sprung, 10: unbedingter Sprung
Universelle Rechenmaschine
Ein Computer ist eine universelle Rechenmaschine, da er durch Programme beliebige Algorithmen ausführen kann. Diese Fähigkeit basiert auf dem Von-Neumann-Architekturmodell.
Von-Neumann-Architektur
Die universelle Rechenmaschine basiert auf dem Von-Neumann-Architekturmodell, das folgende Kernprinzipien definiert:
-
Einheitlicher Speicher: Programme und Daten werden im gleichen Speicher abgelegt
-
Sequenzielle Abarbeitung: Befehle werden nacheinander ausgeführt
-
Zentrale Verarbeitungseinheit: CPU bestehend aus ALU und Steuerwerk
Prinzipieller Aufbau eines Computers
Ein Computer besteht aus folgenden Hauptkomponenten:
-
Zentraleinheit: CPU - Central Processing Unit
-
Rechenwerk: ALU - Arithmetic Logic Unit
-
Steuerwerk: CU - Control Unit
-
Speicherwerk: Memory
-
Eingabe-Ausgabewerk: I/O Unit - Input/Output Unit
-
Bussystem zur Verbindung aller Komponenten
Datenspeicher in der CPU
Die CPU enthält verschiedene Register für die temporäre Datenspeicherung:
-
Befehlsregister (Program Counter, PC) - Speichert die Adresse des nächsten auszuführenden Befehls
-
Ergebnisregister (Akkumulator) - Speichert das Ergebnis von Berechnungen
-
Allgemeine Register (GPR) - General Purpose Register für verschiedene Zwecke
Aufarbeitung eines Befehls
-
FETCH:
Der nächste Befehl wird mittels PC vom Hauptspeicher über den Datenbus in das Befehlsregister eingelesen. PC wird inkrementiert.
-
DECODE:
Das Bitmuster des Befehls wird im Instruktionsdecoder der CU interpretiert. Je nach Befehl werden benötigte Operanden aus dem Hauptspeicher angefordert.
-
EXECUTE:
ALU wird mit Berechnung beauftragt. Operanden stehen in Registern bereit.
-
WRITE:
Ergebnis der Operation, falls es sich um einen arithmetisch und logischen Befehl handelt, wird an die richtige Stelle im Hauptspeicher zurückgeschrieben. Bei Sprungbefehlen der PC entsprechend angepasst.
Übersetzungsebenen von Programmen
Programme durchlaufen mehrere Übersetzungsebenen, bevor sie auf der Hardware ausgeführt werden:
-
Hochsprachenprogramme (z.B. C++, Java) werden mittels Compiler übersetzt
-
Compiler werden in Assembler geschrieben
-
Assemblersprache wird in Maschinencode übersetzt
-
Maschinenprogramme werden durch Mikroprogramme implementiert
Datentransfer im Computer
Der Datentransfer zwischen den Komponenten erfolgt über verschiedene Busse:
-
Datenbus: Überträgt Daten zwischen CPU, Speicher und Peripherie
-
Adressbus: Überträgt Speicheradressen
-
Steuerbus: Überträgt Steuersignale für die Koordination