CPU steht für Central Processing Unit, was soviel wie Zentrale Verarbeitungseinheit bedeutet.
Sie wird im allgemeinen Sprachgebrauch oft auch nur als Prozessor oder Mikroprozessor bezeichnet.
Allgemeines
CPUs sind elektronische Bauteile, welche logische Operationen ausführen und neben Computern auch in vielen anderen elektronischen Geräten wie Waschmaschinen oder Uhren eingesetzt werden. Sie bestehen üblicherweise aus mehreren, übereinander liegenden Schichten von dotiertem Silizium, welches Millionen von Transistoren bildet, deren Schaltvorgänge die Rechenleistung bereitstellen. Hierbei wird grob zwischen Ganzzahl- und Gleitkommaberechnungen unterschieden, wobei ALU (Arithmetic Logic Unit) bzw. FPU (Floating Point Unit) die entsprechenden Dienste bereitstellen.
Design und Fertigung
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 der 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. Da diese Routingprobleme in NP liegen, sind leider nur Näherungsberechnungen möglich, die sich im Detail noch erheblich verbessern lassen. Die ehemaligen Robotron-Ingenieure bei AMD in Dresden haben dies bei der Fortentwicklung des K75 (Athlon (XP)) eindrucksvoll bewiesen. Aus diesen Bahnberechnungen werden sehr teure Masken erstellt, die unter Anwendung kurzwelligen Laserlichts (heute 248 nm; bald: 157 nm) 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 kein wirkliches x86-Programm ausgeführt wird, sondern anhand eines für jeden Prozessortyp individuell entwickelten Testprogramms physikalische Eigenschaften wie Signalpegel bei verschiedenen Takten überprüft werden. Hierbei wird besonders auf zuvor identifizierte Speedpathes geachtet, welche kritische "Nadelöhre" auf dem DIE bilden, d.h. hier laufen im Extremfall viele Daten in kurzer Zeit durch. Das Nicht-Erkennen einer solchen "Ameisenstraße" kann fatale Folgen haben: So zeigten verschiedene Revisionen des K6 aufgrund von Streuungen in der Fertigungsqualität einen Speedpath-Fehler in der MMX-Einheit, was die übertragenen Daten korrumpierte und beispielsweise beim Entpacken von JPEG-Bildern zu Datenmüll führen kann [Details].
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. Daher liefern alle Hersteller so genannte Errata-Listen, in denen Fehler aufgelistet werden. So musste beispielsweise Intel den berühmten "fdiv bug" im klassischen Pentium P54C eingestehen, welcher auf eine kleine Auslassung beim Füllen einer im Prozessor hartverdrahteten Matrix für die FPU zurückzuführen ist.
Historisches
- als erste CPU kann das Modell "4004" von Intel gelten, der im Jahr 1971 mit einer Busbreite von bit und einer Taktfrequenz von ca. 100kHz auf den Markt kam. Er war insbesondere als frei programmierbarer Steuerprozessor gedacht.
Hier sollte noch rein:
- Intel, MotoroZilog
- IBM-PC
- 386 (32-bit, spät!)
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 bis 64-Bit Prozessoren, wobei die gängigsten Betriebssysteme für den Anwender nur 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 bereits 32-Bit-Prozessoren.
Der Softwarehersteller und Betriebssystem-Marktführer Microsoft führte jedoch erst mit Windows 95 gegen Ende des Jahres 1995 ein 32-Bit Betriebssystem auch für Heimanwender ein. Das freie auf der GNU basierende Linux jedoch, war von Anfang an nur auf 386er Prozessoren lauffähig.
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 zwei grundsätzlich verschiedene CPU-Architekturen:
siehe auch: Mikroprozessor