Computer in der Zeit der Wandlung

CPU von: Philipp Pape
Inhaltsverzeichnis
1. Allgemein
2. Aufbau
2.1 Allgemein
2.2 Steuereinheit (CU)/ Leitwerk
2.3 Der Adressbus
2.4 Der Datenbus
2.5 Der Steuerbus
2.6 Das Rechenwerk/ ALU (Arithmetic Logic Unit)
2.7 Der Befehlsdecoder
2.8 Die Ausführungseinheit
2.9 Die Register
2.91 Die wichtigsten Register
2.92 Das Flagregister oder Statusregister
2.93 Spezialregister
2.10 Der Coprozessor


3. Leistungsdeterminate
3.1 MIPS
3.2 Taktfrequenz
3.3 Core-Takt
3.4 Cross Talks


4. Stromversorgung
4.1 I/O Spannung
4.2 Core- Spannung


5. Speicher
5.1 Level 1 - Cache oder First Level Cache
5.2 Level 2 - Cache oder Second Level Cache


6. Technologien
6.1 MMX
6.2 Pipeline
6.3 RISC/CISC
6.4 Superskalare Prozessoren



1 Allgemein

Die CPU, das Herz eines PCs
Der Hauptprozessor (Central Processing Unit, kurz CPU) stellt das Kernstück eines PC´s dar.
Die CPU steuert, regelt und kontrolliert Arbeitsprozesse. Sie steht in ständigem Austausch mit den anderen Bausteinen des Mainboards.

Die CPU besteht in ihrem Aufbau aus zwei unterschiedlichen Funktionseinheiten, zum einen aus der so genannten Verarbeitungseinheit EU (Execution Unit) und zum anderen aus der Busverbindungseinheit BIU (Bus Interface Unit).

Zur EU gehören die allgemeinen Register (AX bis DX), die Pointer Register SP und BP, die Indexregister SI und DI, die arithmetisch-logische Einheit ALU, die Steuereinheit (Control Unit) sowie die Statusregister (Flagregister). Die EU ist zuständig für die Ausführung der Maschinenbefehle und die Dekodierung derselben.

Die BIU besteht aus den Segmentregistern CS, DS, SS und ES sowie dem Instruction Pointern IP. Hauptaufgabe der BIU ist das Ausführen sämtlicher Busoperationen für die EU.

2 Aufbau

2.1 Allgemein

Alle Mikroprozessoren haben prinzipiell den gleichen Aufbau. Die Ics (Integrated Ciruit oder integrierte Schaltungen) sind sinnvollerweise in verschiedene Aufgabengebiete eingeteilt. Damit lässt sich die CPU in folgende Komponenten aufteilen:

2.2 Steuereinheit (CU)/ Leitwerk

Die Control Unit ist die umfangreichste Komponente eines Mikroprozessors. Sie wiederum setzt sich aus mehreren Einzelteilen zusammen, deren Zusammenwirken gesteuert werden muss. Die Steuereinheit ist für die Zusammenarbeit mit den anderen Komponenten des Prozessors verantwortlich.
Im einzelnen sind dies folgende Aufgaben:

- Lesen der Daten aus dem RAM
- Speichen der Daten im RAM
- Bereitstellung, Decodierung und Ausführung von Befehlen
- Verarbeitung der Eingabe von peripheren Geräten
- Verarbeitung der Ausgabe zur Peripherie
- Interrupt-Steuerung
- Überwachung des gesamten Systems

Für die Bewältigung dieser doch recht vielfältigen Aufgaben steht der Steuereinheit das Bussystem zur Verfügung.

2.3 Der Adressbus

Grundsätzlich werden über das Bussystem Daten zwischen den verschiedenen Komponenten des Prozessors transportiert. Der Adressbus ist für die Übertragung der Speicheradressen zuständig.

Über den Adressbus wird die Adresse einer Speicherzelle im Hauptspeicher bestimmt, die 1 Byte aufnehmen kann und für die Verarbeitung ausgewählt werden kann.

2.4 Der Datenbus

Zur Übertragung der Daten zwischen der CPU und dem Arbeitsspeicher sowie den peripheren Geräten steht einem Mikroprozessorsystem ein weiteres Leitungssystem, der Datenbus, zur Verfügung. Die Anzahl der Leitungen ist direkt vom verwendeten Prozessortyp abhängig. Auf jeder Leitung kann ein Signal anliegen und damit eine binäre 0 oder 1 übertragen.

2.5 Der Steuerbus

Der Steuerbus ist die Schaltzentrale der Steuereinheit. Er verbindet die Teileinheiten eines Mikroprozessorsystems miteinander und erteilt den einzelnen Komponenten zu gegebener Zeit "das Wort". Im Einzelnen bedeutet dies, dass auf den Leitungen des Steuerbusses Signale angelegt werden, die Peripherie oder den Arbeitsspeicher anweisen Daten zu senden oder entgegenzunehmen.

Über den Steuerbus können folgende Signale übermittelt werden:

- Lesen aus dem RAM
- Schreiben in das RAM
- Eingabe von peripheren Geräten
- Ausgabe zur Peripherie
- Interrupt-Signale

2.6 Das Rechenwerk/ ALU (Arithmetic Logic Unit)

Die ALU ist für das Rechnen in der CPU zuständig. Außer mathematischen Berechnungen führt das Rechenwerk auch logische Vergleiche durch. Hierbei kommen die boolschen Gatter zum Einsatz.
Erst durch das Rechenwerk ist die CPU in der Lage, Prüfungen auf Gleichheit, Ungleichheit und Größe durchzuführen und damit den Anweisungen eines Programms entsprechend zu handeln.

2.7 Der Befehlsdecoder

Ein Befehl besteht aus einer Folge von Bits. Der Befehlsdecoder "übersetzt" die über den Bus eingehenden Befehle und übergibt sie der Ausführungseinheit. Die CPU geht grundsätzlich davon aus, dass das nächste gelesene Byte einen Befehl darstellt.

2.8 Die Ausführungseinheit

Die Ausführungseinheit empfängt die vom Befehlsdecoder dechiffrierten Befehle und führt sie mit Hilfe eines Mikroprogramms aus. Zur Durchführung von Berechnungen übergibt die Ausführungseinheit die zu berechnenden Daten an das Rechenwerk und erhält von dort das Ergebnis zurück.

2.9 Die Register

Um auf wichtige Daten während der Ausführung schnell zugreifen zu können und diese zwischenspeichern zu können, verfügt die Ausführungseinheit über mehrere Speicherplätze innerhalb des Prozessors, die so genannten Register. Die Geschwindigkeit mit der auf ein Register zugegriffen werden kann, beträgt einen Nanosekunde. Ein Register ist somit bezogen auf die Zugriffszeit der schnellste Speicher in einem Mikroprozessorsystem.

2.9.1 Die wichtigsten Register

Grundsätzlich werden die Register nach folgendem Schema eingeteilt. Frei verfügbar sind die sogenannten allgemeinen Register (AX, BX, CX, DX). Diese können frei mit Werten belegt werden.
Halbregister
Die allgemeinen Register können noch geteilt werden. Die dabei entstehen Halbregister, nur noch ein Byte, erhalten eigene Namen.

- AX wird zu AH und AL
- BX wird zu BH und BL
- CX wird zu CH und CL
- DX wird zu DH und DL

Das Register AX wird also aufgeteilt in AH und AL, wobei das H für High steht und den oberen Teil des Ursprungregisters repräsentiert, und das L für Low den unteren Teil des Ursprungregisters.

2.9.2 Das Flagregister oder Statusregister

Innerhalb der CPU gibt es ein spezielles Register, mit dessen Hilfe bestimmte Zustände nach Ausführung von Befehlen abgefragt werden können. In diesem Flag- oder Statusregister repräsentiert jedes einzelne Bit einen Schalter, der gesetzt oder nicht gesetzt sein kann.

2.9.3 Spezialregister

Die so genannten Spezialregister, wie z. B. IP,SP etc., sind innerhalb der CPU fest für gewisse Aufgaben vorgesehen. Hierunter fallen vor allem Register, die für die Adressierung von entscheidender Bedeutung sind.

2.10 Der Coprozessor


Das Rechenwerk kann alle Grundrechenarten in hoher Geschwindigkeit ausführen .Da das Rechnen nur eine Teilaufgabe der CPU ist, werden komplexere Rechenaufgaben eher im gemütlichen Tempo ausgeführt. Schuld daran ist die fehlende Fließkommabehandlung im Rechenwerk, wie z.B. Wurzeloperationen oder bei trigonometrischen Funktionen wie Sinus-, Cosinus- und Tangensberechnungen.


==> Coprozessoren rechnen bis zu hundertmal schneller als eine normal CPU

Eine solche fehlende Einheit bedeutet aber keineswegs, dass die CPU nicht in der Lage ist solche Berechnungen durchzuführen. Sie behilft sich dabei mit einem Trick. So werden beispielsweise Fließkommaberechnungen in viele, manchmal hunderte Integer- Operationen zerlegt. Die Ausführung dieser Integer- Operationen benötigt natürlich relativ Zeit. Deshalb sind Programme, die viele Fließkommaberechnungen benötigen, wie CAD-, Animations- oder Tabellenkalkulationsprogramme, relativ langsam in der Ausführungsgeschwindigkeit. An dieser Stelle kommen nun die Coprozessoren zum Einsatz.

Coprozessoren nehmen der CPU die Fließkommaberechnungen ab, damit sich diese auf ihre eigentliche Steuerfunktion beschränken kann. Demnach kann der Coprozessor ausschließlich in Verbindung mit einem richtigen Prozessor arbeiten.

Coprozessoren sind ausschließlich für Fließkommaberechnungen ausgelegt. Normal Integer- Berechnungen werden weiterhin vom eigentlichen Prozessor ausgeführt.

3 Leistungsdeterminante

3.1 MIPS

Wie schnell ein Programm ausgeführt werden kann hängt davon ab wie schnell der Prozessor eine Anweisung ausführen kann. Davon lässt sich nun ein Mittelwert ableiten, wie viele Anweisungen er pro Sekunde abarbeiten kann, da nicht jede Anweisung gleich schnell verarbeitet werden kann. Um diesen Mittelwert zu bestimmen, wird ein eine "gute" Mischung von Befehlen als Grundlage genommen und somit ein ungefährer Richtwert festgelegt. Ausgedrückt wird dieser Wert in Millions of Instructions per Second (Millionen Anweisungen pro Sekunde)

3.2 Taktfrequenz

Die Geschwindigkeit eines Computersystems wird als Taktfrequenz ausgedrückt. Die Frequenz wird durch einen Oszillator, bestehend aus einem Quarz in einem kleinen Zinnbehälter, vorgegeben. Wird Spannung angelegt, beginnt dieser mit einer gleichmäßigen Frequenz zu schwingen (oszillieren).

Jede Anweisung, die der Prozessor ausführt, dauert eine bestimmte Anzahl von Taktimpulsen. Wie viel Taktimpulse pro Sekunde der Taktgeber gibt, wird in Hertz angegeben (1 Megahertz = 1 Million Taktimpulse pro Sekunde)
3.3 Core-Takt:

Während der Bustakt (der Takt des Motherboards mit dem die CPU auf den Speicher zugreifen kann) bei mindestens 133 MHz liegt, arbeiten CPU´s mit einem vielfachen dieses Taktes.

Der Multiplikator mit dem der Bustakt multipliziert wird ist entweder in der CPU fest verdrahtet oder muss auf dem Motherboard per Jumper eingestellt werden. Zum Beispiel muss ein Pentium II 333 auf einem Board mit 66 MHz Bustakt mit einem Multiplikator von 5 eingestellt werden, um einwandfrei zu laufen.

3.4 Cross Talks
Je höher die Taktfrequenz im PC ist, desto mehr Störsignale werden abgestrahlt. Nach außen sind die Geräte zwar gut abgeschirmt, sodass sie z.B. ein UKW Radio nicht sonderlich stören, aber im PC können sie die Impulse in den kupfernen Leiterbahnen "verzerren". Es kommt außerdem zu sogenannten "Cross Talks" (deutsch: übersprechen)

Deswegen muss bei neuen Platinen die Anordnung der Leiterbahnen und der Bausteine sorgfältig geplant sein.

4 Stromversorgung

Jeder Prozessor benötigt für seine Arbeit Strom. Bei modernen Prozessoren unterscheidet man zwei.

Spannungsarten:

4.1 I/O Spannung:

Diese Spannung benutzt der Prozessor um seine I/O - Funktionen zu bearbeiten. Diese Spannung wird vom Motherboard bereitgestellt und muss auf den von der CPU benötigten Wert eingestellt werden.

4.2 Core- Spannung:

Die Spannung die der Prozessorkern ( der eigentliche Prozessor) benutzt, um seine internen Aufgaben zu erfüllen. Seit dem Intel Pentium MMX bzw. AMD K6 und Cyrix 6x86 MX unterscheidet sich diese Spannung von der I/O Spannung. Im Regelfall fällt bei aktuellen Prozessoren die Core Spannung wesentlich geringer aus als die I/O Spannung, weil durch die geringere Spannung eine geringere Wärmeentwicklung entsteht.

5 Speicher:

Auch ein Prozessor ist auf die schnelle Speicherung seiner Daten angewiesen, da er sich eventuelle Zwischenergebnisse "merken" muss. Damit er sich seine Daten nicht immer aus dem vergleichbar langsamen Hauptspeicher holen muss, besitzt er mehrstufige Zwischenspeicher:

5.1 Level 1 - Cache oder First Level Cache:

Im Cache eines Prozessors werden Daten gespeichert, auf die der Prozessor wiederholt zugreifen muss. Diese Daten können entweder richtige Daten sein, oder auch Programmcode, der wiederholt abgearbeitet werden muss (z.B. Schleifen). Aufgrund dieser Trennung liegt der Level 1 - Cache meistens zweigeteilt vor, ein Cache für Daten und ein Cache für Programmcode. Der Level 1 - Cache wird mit vollem Core Takt betrieben. Aufgrund dessen wirkt sich die Größe des Level 1 - Cache direkt auf die Performance der CPU aus. So ist z.B. der MMX-fähige Pentium schneller als sein Vorgänger, weil Intel seine Level 1 - Cachegröße verdoppelt hat.

5.2 Level 2 - Cache oder Second Level Cache:

Der Level 2 - Cache ist die zweite Stufe des Cache. Er ist zwar langsamer als der L1 - Cache, aber immer noch schneller als der Hauptspeicher. Er ist wesentlich größer als der L1 - Cache (zwischen 256kb und 512kb) Auch in ihm werden häufig benötigte Daten gespeichert. Der L2 - Cache wird abhängig vom Prozessor mit halben oder vollem Core - Takt betrieben.

6 Technologien:

6.1 MMX:
Diese von Intel entwickelte Technologie gibt dem Prozessor mehrere Befehle, die speziell für Multimedia Aufgaben geeignet sind. Programme die auf diesen Befehlssatz angepasst sind können effizienter arbeiten, da mit Hilfe dieser Befehle Aufgaben in weniger Einzelschritte unterteilt werden müsse, also schneller verarbeiten werden können.

6.2 Pipeline:

Die Befehlsverarbeitung wird in unterteilt, so dass mehrere Befehle gleichzeitig verarbeitet werden können. Die Ausführung des Befehls wird nicht kürzer, aber der Durchsatz steigt (d.h. mehr Befehle in gleicher Zeit). Schon der 8086 (Vorläufer des 80286) hatte eine Aufteilung nach dieser Technik. Er hatte zwei parallel laufende Einheiten, die Bus Interface Unit, die Code und Daten heranholte und die Execution Unit, die die Befehle ausführte. Heutige Prozessoren unterteilen die Execution Unit in weitere Units, so dass der Befehlsdurchsatz steigt. Ziel ist es mit jedem Takt einen Befehl abzuarbeiten. Die größten Schwierigkeiten für Pipelines sind bedingt Sprünge im Code, d.h. Sprünge an andere Teile des Programmcodes.

6.3 RISC/CISC:

Ein Verfahren zu Steigerung der Auslastung des Prozessors ist das RISC - Verfahren. RISC steht für Reduced Instruction Set Computer und bedeutet reduzierter Befehlssatz. Eine CPU ist umso schneller, je kleiner der Befehlssatz (eine bestimmte Menge an Befehlen) ist.

Das umgekehrte und lange Zeit eingesetzte Verfahren ist das CICS - Verfahren (Complex Instruction Set Computer). Hierbei bietet der Prozessor auch komplexe Instruktionen an, die mittels eines Microcodeprogamms erst in eigentliche, digitale Verarbeitungsschritte übersetzt werden. Bei RISC - Prozessoren wird diese Übersetzung durch den Compilern/Assemblern übertragen und ist nicht Bestandteil der CPU.

6.4 Superskalare Prozessoren:

Werden in einen Prozessor mehrere Pipelines eingebaut, die parallel arbeiten können, so erhält man superskalare Prozessoren. Die Anzahl aller, im besten Fall parallel laufender, Pipelines gibt den Grad der Superskalarität an.