Der Prozessor eines Computers ist ein programmierbares Rechenwerk, das ein Programm bestehend aus einer Reihe von bestimmten Befehlen abarbeiten kann. Im Englischen wird der Prozessor eines PCs oder Notebooks auch „Central Processing Unit“ (kurz CPU) genannt.
Inhalt
Die Funktionalität eines Prozessors
Ein Prozessor hat mit seinem Befehlssatz eine Menge von Befehlen zugeordnet, die er ausführen kann. Ein Beispiel ist die Addition zweier Binärzahlen fixer Länge oder ein Sprung zu einem angegebenen Befehl in einem Programm, wenn ein bestimmtes Bit gleich 1 ist. Der Befehlssatz charakterisiert den Prozessor weitgehend. Jeden dieser Befehle bezeichnet man mit einer Binärzahl als Maschinencode. Zur Ausführung lädt man dieser Maschinencode in das Befehlsregister des Prozessors. Zwei weitere Register sind von zentraler Bedeutung. Das erste ist der Befehlszähler, der auf die Adresse des nächsten auszuführenden Befehls zeigt. Oft ist das einfach der nächste Befehl im Programm, dieser Zähler lässt sich aber beispielsweise durch eine Verzweigung auch verändern. Das
zweite wesentliche Register ist das Statusregister, in dem der Zustand des Prozessors gespeichert ist und der von bestimmten Befehlen für ihre Ausführung benötigt ist. Dazu gehört zum Beispiel ein Übertragsbit nach der Ausführung einer Addition.
Einen Prozessor taktet man durch ein regelmäßiges Clocksignal. Mit jedem Takt erfolgt die Ausführung eines neuen Befehls. Dieser Ablauf geschieht grob gesprochen in vier Schritten.
- Der Maschinencode des nächsten Befehls wird in das Befehlsregister geladen.
- Dekodierung des Befehls
- Die Ausführung des Befehls erfolgt.
- Der Befehlszähler lässt sich um Eins erhöhen oder bei einer Verzweigung entsprechend neu beschreiben.
Dinge wie Ein- und Ausgabe finden asynchron statt, das heißt, sie geschehen unabhängig vom Clocksignal. Dafür sind Interrupts oder eben Unterbrechungen vorgesehen. Der Zustand des Prozessors lässt sich vor der Behandlung eines solchen Interrupts speichern, damit der Computer nach dieser Behandlung korrekt weiterarbeiten kann.
Der Aufbau eines Prozessors
Der gesamte Prozessor besteht aus digitalen Schaltungen und Speicherelementen, die man nach Funktion Register oder Cache benennt. Die Kernelemente sind mit der ALU das Rechenwerk für arithmetische und logische Operationen, das Steuerwerk und die als Busse bekannten Datenverbindungen. Diese unterscheiden sich in Datenbus und Adressbus, je nach Typ der Daten, die man überträgt. Mit jedem Befehl verarbeitet der Prozessor Daten und Kontrollsignale, erzeugt aber auch solche Daten und Signale für die weitere Verarbeitung.
Diese entstehen als Resultat des Betriebs der digitalen Schaltungen und lassen sich in den Speicherelementen ablegen. Heutige Prozessoren verfügen über etliche weitere Teile, die alle der Erhöhung der Geschwindigkeit der Verarbeitung dienen. Zu diesen Teilen gehören Cache-Speicher, die man in verschiedene Stufen unterteilt. Sie dienen der Ablage von Daten, die bald wieder notwendig sind und die man deshalb nicht extra wieder aus dem Hauptspeicher laden möchte. Der Cache erlaubt, diese Daten im Prozessor selbst vorzuhalten.
Technologie eines Prozessors
Technisch kann man einen Prozessor sehr verschieden implementieren obwohl die logische Funktion genau gleich bleibt. Die Technik begrenzt allerdings die Größe und Leistungsfähigkeit des Prozessors. Im ersten digitalen und programmierbaren Computer Zuse Z3 bestand das zentrale Element aus elektromagnetischen Relais. Nach dem zweiten Weltkrieg beinhalteten die Computer Elektronenröhren. In den fünfziger Jahren erfolgte die Ablösung von Transistoren. In gewissem Sinn verwendet man Transistoren auch heute noch für die Realisierung von Prozessoren, allerdings in der Form von integrierten Schaltungen. Sehr viele Transistoren existieren in dieser Technologie auf einem Halbleiterchip.
Die Unterteilung in Prozessoren entspricht heute nicht mehr mit der Zahl der Halbleiterchips. Auf einem Chip können mehrere Prozessorkerne untergebracht sein. Als Chip sieht man ein solches Bauelement als eine CPU oder Central Processing Unit eines Computers an, logisch enthält es mehrere Prozessoren. Zu diesen CPUs kommen noch Prozessoren für spezielle Zwecke wie etwa Signalverarbeitung oder die Verarbeitung von grafischen Daten.
Designentscheidungen
Die wesentlichste solche Entscheidung betrifft die Auswahl eines Befehlssatzes für einen Prozessor. In der frühen Entwicklung dieser Technologie stand die Idee im Vordergrund, dem Programmierer mit komplexeren Befehlen mehr Leistung und Möglichkeiten in die Hand zu geben. Diese CISC oder Complex Instruction Set Computers sind dementsprechend aufwendig in der Herstellung. Außerdem haben sie grundsätzlich das Problem, dass in einem Clockzyklus einfache und komplexe Befehle ausführbar sein müssen und für einfache Befehle deshalb Zeit vorherrscht.
Einen anderen Ansatz verfolgt man mit RISC oder Reduced Instruction Set Computers. Sie verfügen nur über weniger und einfachere Befehle. Daher sind die Schaltungen dieser Prozessoren entsprechend weniger aufwendig
und die Ausführungszeit aller Befehle ist in etwa vergleichbar. Mehr Aufwand entsteht dafür im Compiler, der ein Programm aus einer höheren Programmiersprache in diese einfacheren Befehle übersetzen muss. Zu den anderen Parametern eines Prozessors gehört die Wortlänge. Darunter versteht man die Anzahl der Bits, die in den wesentlichen Registern vorhanden sind und die etwa die Länge der Adressen von Speicherzellen beschränken. So ist der verfügbare und vom Prozessor ansprechbare Speicher festgelegt. Lesen Sie hier mehr zu Speicherzellen.
Die Taktfrequenz eines Prozessors bestimmt, wie viele Befehle pro Sekunde man abarbeiten kann. Es ist aber nicht richtig, die Leistungsfähigkeit eines Prozessors einfach als proportional zur Taktfrequenz zu betrachten. Es kann auch ein Prozessor mit niedrigerer Taktfrequenz die gleiche oder sogar eine höhere Leistung erbringen, wenn man mit jedem Befehl mehr Funktionen ausführen kann Die Taktfrequenz muss man daher im Zusammenhang mit dem Befehlssatz sehen und beurteilen. Um die Gesamtleistung des Prozessors zu erhöhen, setzt man heute noch etliche weitere Techniken wie Pipelining und spekulative Ausführung von Befehlen ein.