Hauptprozessor

Der Hauptprozessor, englisch Central Processing Unit oder kurz CPU, im allgemeinen Sprachgebrauch oft auch nur als Prozessor, in einigen Kontexten auch als Zentraleinheit (ZE) bezeichnet, ist der Teil eines Computers, der alle anderen Bestandteile steuert. Das Verhalten der CPU wird dabei von einem Programm in Form von Maschinencode bestimmt. Zu den zentralen Aufgaben der CPU gehören arithmetische Operationen, das Lesen und Schreiben von Daten im Arbeitsspeicher, sowie das Ausführen von Sprüngen im Programm. Die moderne Form der CPU ist der Mikroprozessor, der alle Bausteine der CPU auf einem Mikrochip vereinigt.
Allgemeines
CPUs sind der zentrale Bestandteil eines jeden Computers. Die Verarbeitung von Daten, die Ausführung von Programmen, geschieht in der CPU. Dazu verfügt eine CPU über einen Programmzähler, der auf die Speicherstelle zeigt, von der gerade Maschinencodes gelesen werden. Der gelesene Maschinencode wird vom Befehlsdecoder gegebenenfalls in einzelne Arbeitsschritte zerlegt und an die weiteren Einheiten der CPU verteilt. Rechenoperationen und logische Verknüpfungen werden von der ALU (Arithmetic Logic Unit, also Einheit für arithmetische und logische Funktionen) ausgeführt. Zwischenergebnisse werden in Registern gespeichert, ebenso wie Informationen über das letzte Rechenergebnis (z. B. ob das Ergebnis Null war). Die Branch-Unit (Sprungeinheit) kann auf die Informationen des Rechenergebnisses (auch Flags genannt) zugreifen und Programmverzweigungen auslösen, also das Programm an einer anderen Speicherstelle fortsetzen lassen. Moderne CPUs werden - je nach Auslastung - während des Betriebs sehr heiß, was eine Aktivkühlung nötig macht. Im Durchschnitt liegt die Temperatur des Prozessor bei aktiver Luftkühlung bei etwa +/- 50°C. Die Kühlung der CPU durch Luft setzt sich wie folgt zusammen: ganz unten der Prozessor auf seinem Sockel, darauf entweder die extrem wichtige Wärmeleitpaste oder das etwas weniger effiziente Wärmeleitpad, wiederum darauf der Kühlkörper aus Metall (meist Aluminium, bei höherwertigen Kühlern teilweise Kupfer) und auf dem Kühlkörper der elektrisch betrieben Lüfter, dessen Luftstrom die Kühlrippen des Kühlkörpers belüftet und so den Abtransport der Wärme gewährleistet. Die Lüfter der CPU-Kühler laufen meist mit etwa 5500 - 8000 RPM (engl.:Rounds Per Minute, dt.: Umdrehungen pro Minute). Im Gegensatz zu den meisten Gehäuselüftern werden CPU-Kühler immer ans Mainboard angeschlossen, so dass die Drehzahl elektronisch geregelt werden kann. Als Alternativen zur Luftkühlung gibt es noch die teure Wasserkühlung für extrem leistungsstarke Rechner, bei der Wasser außerhalb des Rechners in einem Tower gekühlt wird und dann mit Hilfe einer Pumpe durch das Gehäuse und an alle zu kühlenden Objekte wie CPU, RAM, Chipsatz etc. geleitet wird. Wie gesagt ist die Wasserkühlung sehtr aufwendig und teuer. In der Industrie gibt es noch die Flüssigstickstoffkühlung, die allerdings extrem aufwendig ist. Um flüssig zu sein, muss der Stickstoff auf -196°C gekühlt werden, was riesige Kühlaggregate erfordert. Wegen der sehr niedrigen Temperaur im Rechner müssen Mainboard und andere Objekte wieder von der Rückseite erwärmt werden, damit sie ordnungsgemäß funktionieren. Diese Technik ist nahezu nicht realisierbar, da die Betriebs- und Instandhaltungskosten mehr kosten, als wenn man mehrere einzelne Dualprozessoren nebeneinander betriebe. Allgemein gilt es als nicht sinnvoll, die CPU auf weniger als +10°C herunterzukühlen, da sonst die Kosten zu hoch werden. Doch verwenden einzelne kleine Hersteller auch Kompressorkühlungen. Diese funktionieren ähnlich wie ein Kühlschrank. Ein Kühlmittel wird stark unter Druck gesetzt, und dann beim Ausgleich auf Normaldruck kühlt es stark ab und kühlt so auch seine Umgebung, sprich Prozessor oder andere Geräte. Diese Lösung wird vor allem bei übertaktakteten Workstations verwendet, haben aber den Nachteil auch die Geräuchkulisse eines Kühlschranks zu erzeugen.
Entwicklung
In den 1940er Jahren bestand das Rechenwerk eines Computers zunächst aus Relais und mechanischen Bauelementen. Die ersten Computer waren also elektromechanische Rechner, die langsam und äußerst störanfällig waren. Noch in den 40ern begann man damit, Computer mit Hilfe von Röhren zu bauen. Die Rechner wurden schneller und störunanfälliger. Waren diese Rechner anfangs teure, aus Steuergeldern finanzierte Einzelprojekte, so reifte die Technik im Laufe der 50er Jahren immer mehr aus. Röhrenrechner wurden nach und nach zu Massenartikeln, die für Universitäten, Forschungseinrichtungen und Firmen durchaus erschwinglich waren. Um dieses Ziel zu erreichen, war es unabdingbar, die Anzahl der benötigten Röhren auf ein Mindestmaß zu reduzieren. Aus diesen Grund setzte man Röhren nur dort ein, wo sie unabdingbar waren. So begann man damit, Hauptspeicher und CPU-Register auf einer Magnettrommel unterzubringen, Rechenoperationen seriell auszuführen und die Ablaufsteuerung mit Hilfe einer Diodenmatrix zu realisieren. Ein typischer Vertreter dieser Rechnergeneration war der LGP-30.
In den frühen 60ern wurden die Röhren dann von den Transistoren verdrängt. Anfangs wurden die CPUs aus einzelnen Transistoren aufgebaut. Im Laufe der Jahre brachte man aber immer mehr Transistorfunktionen auf ICs unter. Waren es zunächst nur einzelne Gatter, integrierte man immer häufiger auch ganze Register und Funktionseinheiten wie Addierer und Zähler, schließlich dann sogar Registerbänke und Rechenwerke auf einem Chip. Diese zunehmende Integration von immer mehr Transistor- und Gatterfunktionen auf einem Chip führte dann fast zwangsläufig zu dem, was heute als Mikroprozessor bekannt ist.
Als Erfinder des Mikroprozessors gilt die Firma Texas Instruments, die sich diese Idee auch patentieren ließ. Im Jahr 1971 stellte Intel mit dem 4004 die erste CPU auf einem Chip vor. Der Mikroprozessor war geboren. Mit nur 4 Bit breiten Registern und einer Taktfrequenz von knapp über 100 kHz, war der 4004 aber nicht gerade besonders leistungsfähig. Seine im Vergleich mit den klassischen CPUs äußerst kompakte Bauform verhalf dem Mikroprozessor aber schließlich trotzdem zum Durchbruch. Ursprünglich war der 4004 eine Auftragsentwicklung für den japanischen Tischrechnerhersteller Busicom. Intels Projektleiter Ted Hoff hatte die Idee, das Herz dieses Tischrechners in Form eines programmierbaren Bausteins zu realisieren. Dass dabei die erste universell einsetzbare Einchip-CPU der Welt herauskam, war eigentlich nicht beabsichtigt. Da Busicom damals in finanziellen Schwierigkeiten steckte, bot man Intel den Rückkauf des 4004-Designs an, woraufhin Intel mit der Vermarktung des 4004 begann. Der 4004 wurde zum ersten kommerziellen Microprozessor der Welt.
Variationen
Im Laufe von immer höheren Integrationsdichten der Halbleiterbausteine haben die Entwickler von CPUs weitere Funktionen in der Hardware realisiert. Dadurch wurden die CPUs immer leistungsfähiger, insbesondere bekamen die meisten CPUs weitere Befehle implementiert, um umfangreiche Berechnungen (z. B. Audio- und Videobearbeitung) zu vereinfachen.
Auf der anderen Seite haben ältere CPUs und Mikrocontroller häufig nur wenige Register und einen eingeschränkten Befehlssatz (die komplexesten Operationen sind zum Teil Addition und Subtraktion). Für einfache Anwendungen (z. B. Steuerung einer einfachen Maschine) reicht diese Komplexität jedoch aus, da sich alle anderen Funktionen allein durch die Addition und Subtraktion implementieren lassen (z. B. Multiplikation durch mehrmaliges Addieren).
Design und Fertigung aktueller CPUs
Moderne CPUs bestehen üblicherweise aus mehreren, übereinander liegenden Schichten von dotiertem Silizium, welches Millionen von Transistoren bildet, deren Schaltvorgänge die Rechenleistung bereitstellen.
CPUs werden auf Grund ihrer unterschiedlichen Anwendungsbereiche an den jeweiligen Einsatzbereich angepasst. Beispielsweise müssen Spezialversionen für Luft- und Raumfahrt besonders hohen Temperaturen und Strahlungsexposition im laufenden Betrieb fehlerfrei Stand halten, während Mobilprozessoren eine hohe IPC-Rate, geringe Leckströme und einen niedrigen Energieverbrauch aufweisen müssen. Diesen Bedürfnissen wird auf verschiedene Arten und Weisen Rechnung getragen: So wird bereits mit der Auswahl des Befehlssatzes (CISC oder RISC) eine fundamentale Entwurfsentscheidung getroffen, deren Implikationen in den jeweiligen Spezialartikeln näher erläutert werden. Anschließend wird ein möglichst effizienter Mikrocode entwickelt, welcher optimal an Randbedingungen wie Cachegrößen, Speicherbandbreite und -latenzen sowie die internen Funktionseinheiten angepasst werden sollte.
Anschließend wird der logische Entwurf des Prozessors (er liegt in einer C-ähnlichen Programmiersprache vor) an einen Hochleistungscomputer übergeben, welcher die Leiterbahnen routet, d. h. eine optimale Anordnung mit möglichst wenig Transistoren sowie minimaler Verlustleistung zu ermitteln sucht (sog. Technology Binding oder Technology Mapping). Da diese Routingprobleme NP-vollständig sind, sind nur Näherungsberechnungen möglich, die sich im Detail noch erheblich verbessern lassen. Aus diesen Bahnberechnungen werden sehr teure Masken erstellt, die unter Anwendung kurzwelligem UV-Lichts (heute 193 nm; bald: 157 nm; Zukunft EUV?) zur Belichtung von Wafern eingesetzt werden, die anschließend geätzt werden. Die Fertigung eines heutigen Mikroprozessors umfasst weit über 100 Einzelschritte, in deren Verlauf bereits ein Fehler den gesamten Prozessor unbrauchbar machen kann.
In der Endkontrolle werden die Prozessoren schließlich hinsichtlich ihrer Taktfestigkeit klassifiziert, wobei anhand eines für jeden Prozessortyp individuell entwickelten Testprogramms physikalische Eigenschaften wie Signalpegel bei verschiedenen Takten überprüft werden. Hierbei wird besonders auf laufzeitkritische Signalwege auf dem CPU-Die geachtet. Wenn ein Signal über einen bestimmten Signalweg nicht schnell genug läuft, um die logischen Anforderungen des CPU-Designs zu erfüllen, spricht man von einem Speed Path. Vereinfacht gesagt heißt das, dass das Signal bei weiterer Steigerung der Taktfrequenz nicht mehr rechtzeitig dort ankommen würde, wo es gebraucht wird. Solche Speed Paths begrenzen die Taktfrequenz alle komplexen Logikbausteine, wie auch eine CPU einer ist. Bleibt ein solcher Speed Path unentdeckt, kann das fatale Folgen haben: So zeigten verschiedene Revisionen des K6 aufgrund von Streuungen in der Fertigungsqualität einen durch einen übersehenen Speed Path verursachten Fehler in der MMX-Einheit, was die übertragenen Daten korrumpieren und beispielsweise beim Entpacken von JPEG-Bildern zu Datenmüll führen konnte [Details]. Auch die Firma Intel hatte schon ähnliche Probleme. So musste im Jahr 2001 der grade erst vorgestellte Pentium III mit der Taktfrequenz von 1.13 GHz zurückgerufen werden, weil Intel einen Speed Path übersehen hatte.
Allgemein lässt sich feststellen, dass der Validierungsaufwand moderner Prozessoren bereits gewaltige Ausmaße angenommen hat und trotz aller Anstrengungen nicht alle Fehlersituationen vor der Auslieferung überprüft werden können. Daher liefern alle Hersteller so genannte Errata-Listen, in denen Fehler aufgelistet werden. So musste beispielsweise Intel den berühmten FDIV-Bug in frühen Pentium-CPUs eingestehen, welcher auf eine kleine Auslassung beim Füllen einer im Prozessor hartverdrahteten Matrix für die FPU zurückzuführen ist.
Im Laufe der Zeit vergrößerte sich auf Grund der immer besser werdenden Technik die Anzahl der vom Prozessor unterstützten Befehle. Heute finden sich überwiegend 32- und 64-Bit-Prozessoren, wobei die gängigsten Betriebssysteme für den Anwender maximal 64, meist aber nur 32 Bit unterstützen. Daran lässt sich schon erkennen, dass die Software im Falle der Prozessoren der Hardware hinterherhinkt. Die 386er, die in den 80er Jahren entwickelt wurden, waren die ersten 32-Bit-Prozessoren der Intel 80x86-Familie.
Anwendungsbereich
Im Bereich der Personalcomputer ist die historisch gewachsene x86-Architektur weit verbreitet, wobei für eine genauere Diskussion dieser Thematik der entsprechende Artikel empfohlen wird.
Interessanter und weniger bekannt ist der Einsatz von Embedded-Prozessoren und Microcontrollern beispielsweise in Motorsteuergeräten, Uhren, Druckern sowie einer Vielzahl elektronisch gesteuerter Geräte.
Sonstiges
Man unterscheidet grundsätzlich zwei verschiedene CPU-Architekturen:
- RISC-Prozessoren (englisch Reduced Instruction Set Computing = reduzierter Befehlssatz)
- CISC-Prozessoren (englisch Complex Instruction Set Computing = komplexer Befehlssatz)
Mit folgenden Buskonzepten:
- Von-Neumann-Architektur: Ein Bus für Daten UND Programmcode (z. B. CISC-Prozessoren).
- Harvard-Architektur (erweiterte Von-Neumann-Architektur): Ein oder mehrere getrennte Busse für Daten und Programmcode. Teilweise mit mehreren ALUs zur parallelen Verarbeitung großer Datenmengen (z. B. Digitale Signalprozessoren).
Siehe auch
- Computer
- Mikroprozessor
- Mikrocontroller
- Mikroprogrammierung
- Notebookprozessor
- Hyper-Threading
- Ring (CPU)
- Kategorie CPU-Hersteller