Grundlagen der CPU-Architektur: Register, Befehle und Bus-Systeme
Eingeordnet in Informatik
Geschrieben am in
Deutsch mit einer Größe von 7,3 KB
CPU-Register: Temporäre Datenspeicher
Ein Register ist eine kleine, sehr schnelle Speichereinheit innerhalb der CPU, die temporär Informationen für den Betrieb des Prozessors speichert. Register sind entscheidend für die schnelle Verarbeitung von Daten und Anweisungen. Sie sind in verschiedene Typen unterteilt:
Allzweckregister (General Purpose Registers)
Diese Register dienen der temporären Speicherung von Daten und Operanden, die von der CPU für allgemeine Berechnungen und Operationen benötigt werden.
Segmentregister
Segmentregister speichern Adressen, die zur Segmentierung des Speichers verwendet werden. Sie helfen bei der Adressierung von Speicherbereichen.
Status- oder Flaggenregister
Diese Register kontrollieren und spiegeln den Zustand der CPU wider. Sie enthalten Flags (z.B. für Überlauf, Null, Vorzeichen), die das Ergebnis von Operationen oder den aktuellen Zustand des Prozessors anzeigen.
Spezielle CPU-Register und ihre Funktionen
Programmzähler (PC)
Der Programmzähler (PC) speichert die Speicheradresse der nächsten Anweisung, die vom Prozessor gelesen und ausgeführt werden soll.
Speicheradressregister (MAR)
Das Memory Address Register (MAR) hält die Speicheradresse der Daten oder Anweisungen, die aus dem Hauptspeicher gelesen oder in diesen geschrieben werden sollen. Es fungiert als Puffer für RAM-Adressen.
Speicherdatenregister (MBR)
Das Memory Buffer Register (MBR), auch als Memory Data Register bekannt, dient als temporärer Puffer für Daten, die zwischen der CPU und dem Hauptspeicher übertragen werden. Es speichert Daten, die gelesen oder geschrieben werden.
Akkumulator (Acc)
Der Akkumulator (Acc) speichert Informationen über die Operanden der Arithmetisch-Logischen Einheit (ALU) und die Ergebnisse von Operationen. Er wird oft für Operationen mit zwei Operanden verwendet, wobei ein Operand direkt aus dem MBR bereitgestellt werden kann.
Operationsregister (ROP)
Das Operationsregister (ROP) enthält den Operationscode (Opcode) für die Arithmetisch-Logische Einheit (ALU). Dieser binäre Code ist erforderlich, um die Art der auszuführenden Operation auszuwählen.
Ergebnisregister (A)
Dieses Register wird verwendet, um die Ergebnisse der Operationen der ALU zu speichern und ist direkt mit deren Ausgang verbunden.
Taktgeber / Steuerwerk
Der Taktgeber ist der Teil des Mikroprozessors, der für die Erzeugung von Timing-Signalen zuständig ist. Diese Signale synchronisieren die Operationen der CPU basierend auf der Taktfrequenz.
Befehlsregister (IR)
Das Instruction Register (IR) speichert die aktuell auszuführende Anweisung, die aus einer Speicheradresse geladen wurde. Es sendet diese zur Dekodierung und zur Erzeugung der richtigen Steuersignale für die Ausführung der Anweisung.
Speicherorganisation und Befehlssätze
Adressräume
Ein Adressraum ist eine Menge von logischen Adressen, die von einem Programm verwendet werden können (z.B. für Variablen, Dateien, Sprungmarken).
Physische Speicherplätze
Dies sind die tatsächlichen physikalischen Speicherpositionen im Hauptspeicher, in denen Daten und Anweisungen gespeichert werden können.
Befehlssatz (Instruction Set)
Der Befehlssatz ist die Gesamtheit der Anweisungen, die ein Mikroprozessor verstehen und implementieren kann.
Arten von Anweisungen
Mikroprozessoren unterstützen verschiedene Kategorien von Anweisungen:
Arithmetische Anweisungen
Diese Gruppe umfasst alle Anweisungen, mit denen arithmetische Operationen ausgeführt werden können, wie z.B. Addition (+) und Subtraktion (-).
Logische Anweisungen
Logische Anweisungen sind in der Lage, logische Operationen wie UND (AND), ODER (OR) und NICHT (NOT) durchzuführen.
Datentransfer-Anweisungen
Diese werden für die Übertragung von Daten zwischen CPU-Registern, dem Hauptspeicher sowie zwischen Ein- und Ausgabe-Modulen verwendet.
Sprungbefehle
Sprungbefehle ermöglichen es, die Ausführung eines Programms zu einer bestimmten Stelle im Code zu springen, indem der Inhalt des Programmzählers geändert wird. Sie können unbedingt sein (der Sprung erfolgt immer) oder bedingt (der Sprung erfolgt nur, wenn eine bestimmte Bedingung erfüllt ist).
Unterprogrammaufrufe
Dies ist ein Teil des Programms, der eine spezifische Funktion ausführt. Jedes Mal, wenn das Programm diese Funktion benötigt, ruft es das Unterprogramm auf. Nach dessen Ausführung kehrt es zur nächsten Anweisung im Hauptprogramm zurück. Dies dient dazu, wiederkehrende Routinen im Hauptprogramm nicht mehrfach implementieren zu müssen.
Ein-/Ausgabe-Anweisungen
Dies sind Anweisungen, die verwendet werden, um Daten zwischen der CPU und Peripheriegeräten des Systems zu übertragen.
Spezialanweisungen
Dazu gehören spezielle Befehle wie NOP (No Operation), CLC (Clear Carry Flag) oder RRC (Rotate Right through Carry).
Struktur und Ausführung von Anweisungen
Anweisungen bestehen typischerweise aus:
Opcode (Operationscode)
Der Opcode gibt die Art der Operation an, die durchgeführt werden soll.
Operanden
Die Operanden sind die Daten oder Adressen, auf die die Operation angewendet wird.
Befehlszyklus
Der Befehlszyklus wird als die Abfolge von Aktionen definiert, die zur Ausführung einer einzelnen Anweisung notwendig sind.
Ausführungsphase
Die Ausführungsphase besteht in der Durchführung aller Tätigkeiten, die zur eigentlichen Ausführung der Anweisung gehören.
Das Bus-System der CPU
In der Computerarchitektur ist ein Bus ein System von Leitungen, das Hardware-Geräten die Kommunikation ermöglicht. Diese Leitungen werden von allen Geräten gemeinsam genutzt und ermöglichen es ihnen, Informationen untereinander zu übertragen. Sie sind letztlich die internen 'Informationsautobahnen', die die Übertragung aller vom System bearbeiteten Informationen ermöglichen.
Datenbus
Der Datenbus ist für die Übertragung von Daten zwischen der CPU, dem Speicher und den Ein-/Ausgabe-Geräten zuständig. Er ist bidirektional.
Steuerbus
Der Steuerbus regelt die Nutzung und den Zugang zu den Daten- und Adressleitungen. Da diese Leitungen von allen Komponenten gemeinsam genutzt werden, sind bestimmte Mechanismen zur Steuerung ihrer Verwendung erforderlich. Der Steuerbus überträgt Steuersignale sowie Timing-Informationen zwischen den Modulen, um einen reibungslosen und fehlerfreien Betrieb des Systems zu gewährleisten.
Adressbus
Der Adressbus ist ein vom Datenbus unabhängiger Kanal des Mikroprozessors, der die Speicheradresse der Daten enthält, die übertragen werden sollen. Der Adressbus besteht aus einer Reihe von Leitungen, die zur Festlegung einer eindeutigen Adresse benötigt werden.