- CPU
-
Der Hauptprozessor (englisch central processing unit [ˈsɛntɹəl ˈpɹəʊsɛsɪŋ ˈju:nɪt], CPU [ˌsi: pi: ˈju:]), im allgemeinen Sprachgebrauch oft auch nur als Prozessor bezeichnet, ist die zentrale Verarbeitungseinheit eines Computers, die in der Lage ist, ein Programm auszuführen.
Der Begriff CPU wird umgangssprachlich auch in anderem Kontext für Zentraleinheit (ZE) benutzt, hierbei kann dies für einen zentralen Hauptrechner (ein kompletter Computer) stehen, an dem einzelne Terminal-Arbeitsstationen angeschlossen sind. Teilweise wird der Begriff auch in Zusammenhang mit Computerspielen als Synonym für die KI verwendet („Ein Spiel gegen die CPU“).
Inhaltsverzeichnis
Historische Entwicklung
Die ersten Hauptprozessoren wurden aus Relais aufgebaut wie z. B. bei der Zuse Z3, gefolgt von Elektronenröhren wie beim Eniac. In den 1950er Jahren wurden die unzuverlässigen Elektronenröhren von Transistoren verdrängt, die zudem den Stromverbrauch der Computer senkten. Mit der Verfügbarkeit von integrierten Schaltungen konnten die Hauptprozessoren weiter verkleinert werden, die CPU konnte bald in einem einzelnen Schaltschrank untergebracht werden, was zum Begriff Mainframe, also „Hauptrahmen“, bzw. „Hauptschrank“ führte. Im nächsten Schritt passte die CPU auf eine einzelne Platine in so einem Schrank, es gab dann erste Rechner mit mehreren CPUs (Multiprozessor) für höhere Rechenleistung. Gleichzeitig entstand die Klasse der Minicomputer, die nicht mehr einen eigenen klimatisierten Raum für den Betrieb benötigten und deren Leistung für die Versorgung von Arbeitsgruppen ausreichte.
Die weiter steigende Integrationsdichte führte dazu, dass Anfang der 1970er Jahre erste Hauptprozessoren gebaut wurden, die auf einem einzelnen Chip Platz hatten, der Mikroprozessor. Anfangs noch wegen ihrer vergleichsweise geringen Leistungsfähigkeit belächelt (der Legende nach soll ein IBM-Ingenieur über den ersten Mikroprozessor gesagt haben: „Nett, aber wozu soll das gut sein?“), haben Mikroprozessoren heute alle vorangegangenen Techniken für den Aufbau eines Hauptprozessors abgelöst.
Erste Erwähnungen des Begriffes CPU gehen in die Anfänge der 1950er Jahre zurück. So wurde in einer Broschüre von IBM (705 EDPM) von 1955 der Begriff „Central Processing Unit“ zuerst ausgeschrieben, später mit der Abkürzung CPU in Klammern ergänzt und danach nur noch in seiner Kurzform verwendet. Ältere IBM-Broschüren verwenden den Begriff nicht, so z. B. die Broschüre "Magnetic Cores for Memory in Microseconds in a Great New IBM Electronic Data Processing Machine for Business" von 1954, in der zwar ebenfalls die IBM 705 dargestellt wird, an den entsprechenden Stellen jedoch lediglich von „Data processing“ die Rede ist.
Funktionale Einheiten
Eine CPU besteht prinzipiell aus den Funktionsgruppen Register, Recheneinheit (ALU - Arithmetic Logic Unit), Befehlsdecoder und Adresseinheit.
Die Adresseinheit ist dafür zuständig, Daten und Befehle aus dem Speicher zu lesen oder in diesen zu schreiben. Befehle werden vom Befehlsdecoder verarbeitet, der die anderen Einheiten entsprechend steuert. In den Registern werden Daten für die unmittelbare Verarbeitung gespeichert, gegenüber dem Speicher ist der Zugriff auf Daten in den internen Registern meist erheblich schneller.
In modernen CPUs finden sich sehr viel feiner unterteilte Funktionseinheiten sowie mehrfach ausgeführte Einheiten, die das gleichzeitige Abarbeiten mehrerer Befehle erlauben. Zusätzlich finden sich auch häufig spezialisierte Recheneinheiten z. B. für Vektorfunktionen.
Eine detaillierte Darstellung der Struktur des derzeit (2008) modernsten 4-Kern-Prozessors findet sich in [1].
Verschiedene Architekturen
Grundarchitekturen
Die beiden wesentlichen Grundarchitekturen für CPUs sind die Von-Neumann- und die Harvard-Architektur.
Bei der nach dem Mathematiker John von Neumann benannten Von-Neumann-Architektur gibt es keine Trennung zwischen dem Speicher für Daten und Programmcode. Dagegen sind bei der Harvard-Architektur Daten und Programm in strikt voneinander getrennten Speicher- und Adressräumen abgelegt.
Beide Architekturen haben ihre spezifischen Vor- und Nachteile. Die Von-Neumann-Architektur ist aus der Sicht des Programmierers einfacher zu handhaben, und die Möglichkeit, auf Programmcode wie auf Daten zuzugreifen, ermöglicht selbst modifizierenden Code. Andererseits kann diese Selbstmodifikation auch durch Programmfehler zu noch größeren Fehlern führen. Durch die Trennung in zwei physikalische Speicher hat die Harvard-Architektur potenziell eine höhere Leistungsfähigkeit, da Daten- und Programmzugriffe parallel erfolgen können; nachteilig ist dagegen, dass nicht benutzter Speicher in einer Klasse nicht für die andere Klasse genutzt werden kann.
Aktuell basieren fast alle verwendeten CPUs auf der Von-Neumann-Architektur, es gibt jedoch Ausnahmen besonders im Bereich der Microcontroller, und es gibt Mischformen. So ist es nicht unüblich, dass eine CPU intern dem Harvard-Prinzip ähnelt, um mit möglichst vielen parallelen Datenpfaden eine hohe Leistung zu erzielen, extern aber einen gemeinsamen Speicher nutzt.
Einfache oder komplexe Befehle
Mit zunehmender Leistungsfähigkeit der Halbleitertechnik entstanden CPUs mit immer komplexeren Befehlssätzen. Diese Art von Befehlssätzen werden als CISC oder „Complex Instruction Set Computing“ bezeichnet. Das führte dazu, dass die Befehlseinheiten der CPUs zu einem Engpass wurden. In den 1980er Jahren entstand als Reaktion darauf das RISC-Konzept, bei dem die Zahl der Befehle reduziert wurde, die Befehlseinheit deutlich vereinfacht werden konnte und dadurch schneller arbeiten kann.
Bei aktuellen CPUs ist die Unterscheidung zwischen RISC und CISC kaum noch möglich. Die weit verbreitete x86-Architektur als typischer Vertreter der CISC-Klasse ist intern eigentlich längst eine RISC-Architektur, die die komplexeren Befehle quasi emuliert, also nachbildet.
Eine weitere Art von Methoden sind VLIW. Dort werden mehrere Instruktionen in einem Wort zusammengefasst. Dadurch ist vom Anfang an definiert, auf welcher Einheit welche Instruktion läuft. Out-of-Order-Ausführung, wie sie in modernen Prozessoren zu finden ist, gibt es bei dieser Art von Befehlen nicht.
Variationen
Im Laufe von immer höheren Integrationsdichten der Halbleiterbausteine haben die Entwickler von CPUs weitere Funktionen in die Hardware integriert. Dadurch wurden die CPUs immer leistungsfähiger, insbesondere bekamen die meisten CPUs weitere Befehle implementiert, um umfangreiche Berechnungen zu vereinfachen.
Zu den Einheiten, die früher als separate Chips angeschlossen werden mussten und im Laufe der Zeit in die CPU selbst integriert werden konnten, zählen:
- die Memory Management Unit zur Speicherverwaltung;
- der numerische Coprozessor für schnellere Rechenoperationen;
- Vektorarithmetikeinheiten speziell für schnelle Grafikbearbeitung, bei Intel unter den Namen MMX, SSE und Nachfolger, beim PowerPC heißt dies AltiVec;
- Cache-Speicher, zuerst nur der Level 1, heute auch schon zusätzlich Level 2 (bei sehr neuen Prozessoren wird zum Teil Level 3 benutzt);
- manchmal der Chipsatz (oder Teile davon) zur Ansteuerung des RAMs;
- manchmal ein Grafikchip zur Anzeigesteuerung;
- mehrere Prozessorkerne auf einem Chip (Mehrkernprozessor, mit Doppel- oder Quad-Kern, in Kürze 8-fach).
Heutzutage kann man wirtschaftlich in der Größenordnung von 1 Milliarde Transistorfunktionen auf einem einzigen Chip unterbringen, weshalb die Integration weiterer Befehle in den Hauptprozessor Anwendung findet.
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 höhere Funktionen durch wenige Basisoperationen implementieren lassen, z. B. Multiplikation durch Verschieben und Addieren - siehe Russische Bauernmultiplikation.
Design und Fertigung aktueller CPUs
Moderne CPUs bestehen üblicherweise aus mehreren, übereinanderliegenden Schichten von dotiertem Silizium, die Millionen von Transistoren bilden, deren Schaltvorgänge die Rechenleistung bereitstellen.
CPUs werden aufgrund 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 standhalten, 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, der optimal an Randbedingungen wie Cachegrößen, Speicherbandbreite und -latenzen sowie die internen Funktionseinheiten angepasst wird.
Der in einer Hardwarebeschreibungssprache vorliegende logische Entwurf des Prozessors wird sodann an einen Hochleistungscomputer übergeben, der die Leiterbahnen routet, d. h. eine optimale Anordnung mit möglichst wenig Transistoren sowie minimaler Verlustleistung zu ermitteln sucht (sogenannte 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 Masken erstellt, die mittels Fotolithografie 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 einziger 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, um Speed Paths (Fehler durch Signalverzögerungen) zu verhindern.
Allgemein lässt sich feststellen, dass der Validierungsaufwand moderner Prozessoren gewaltige Ausmaße angenommen hat, und trotz aller Anstrengungen nicht alle Fehlersituationen vor der Auslieferung überprüft werden können. Der letzte in allen Funktionen (und Fehlern!) vollständig verifizierte x86-Prozessor war der 80286. Daher liefern alle Hersteller sogenannte Errata-Listen, in denen Fehler aufgelistet werden. So musste beispielsweise Intel den berühmten FDIV-Bug in frühen Pentium-CPUs eingestehen, der 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 aufgrund 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 in den 1980er Jahren entwickelten 386er waren die ersten 32-Bit-Prozessoren der Intel 80x86-Familie.
Im Jahre 2006 wurde von der Firma ARM der erste kommerzielle ungetaktete, asynchrone Prozessor vorgestellt, der ARM996HS. Da er ohne Taktung auskommt, weist ein asynchroner Prozessor eine im Hochfrequenzbereich geringere und wesentlich weniger prägnante Abstrahlung auf und verbraucht während Prozesspausen keinen nennenswerten Strom.
Kühlung
Hauptartikel: Prozessorkühler
Moderne CPUs werden – je nach Auslastung − während des Betriebs sehr heiß. Je nach Modell und Hersteller werden pro cm² Verlustleistungen von bis zu 125 Watt erreicht (aktuelle Quadcores). Zum Vergleich: Die 18-cm-Kochplatte eines üblichen Elektroherds erreicht gerade einmal 7–10 W/cm².
CPUs dürfen aber, wie alle Halbleiter, bestimmte Betriebstemperaturen nicht überschreiten, da das zunächst zu Fehlfunktionen („Abstürze“), in extremen Fällen zur Zerstörung des Chips führt (wird bei neueren Prozessoren durch Überhitzungsschutz verhindert). Übliche Grenztemperaturen für den Betrieb liegen zwischen 60 und 90 °C. Temperaturen über etwa 125 bis 135 °C führen zu irreversiblen Schäden. Prozessoren müssen also zwingend gekühlt werden, wobei ein gewisser Sicherheitsabstand zu den vom Hersteller angegebenen Höchstwerten erstrebenswert ist.
Der gängigste Weg, die Kühlung der CPU sicherzustellen, ist die Montage eines Kühlkörpers mit Lüfter. Der verrippte Kühlkörper aus Aluminium oder Kupfer (teilweise kombiniert) vergrößert die Fläche, die zur Wärmeabgabe beiträgt, um ein Vielfaches, der Lüfter soll für einen zügigen Abtransport der Verlustwärme sorgen. Die Bemessung der Kühlung erfolgt häufig nicht nach der theoretisch maximal möglichen Verlustleistung, sondern aus Kostengründen nach der Thermal Design Power (TDP), die deutlich niedriger liegt.
Zwischen Prozessor und Kühlkörper wird Wärmeleitpaste oder ein Wärmeleitpad eingesetzt. Durch Unebenheiten und Rauheit verbleiben zwischen Chip und Kühlkörper Lufteinschlüsse, die den Wärmetransport behindern, die Pasten oder Pads verdrängen diese Luft und verbessern den Wärmeübergang erheblich.
Als Lüfter für den CPU-Kühler werden fast ausschließlich Axiallüfter mit Durchmessern zwischen 40 und 140 mm eingesetzt. Insbesondere kleine Exemplare erreichen Drehzahlen von bis zu 6500 U/min und können dabei eine erhebliche Geräuschkulisse erzeugen. Die Lüfter werden heute an die Hauptplatine angeschlossen, so dass die Drehzahl überwacht und bei vielen modernen Hauptplatinen auch elektronisch geregelt werden kann.
Als Alternativen zur Luftkühlung gibt es noch die Wasserkühlung für leistungsstarke oder relativ leise Rechner, bei der Wasser inner- oder außerhalb des Rechners in einem Radiator (teilweise auch ohne Lüfter) gekühlt wird und dann mit Hilfe einer Pumpe durch das Gehäuse und an zu kühlenden Objekte wie CPU, manchmal auch zusätzlich an RAM, Chipsatz, Grafikprozessor etc. geleitet wird. Insgesamt ist eine Wasserkühlung aufwändiger, teurer und zumeist wartungsintensiver als eine Luftkühlung. Als erster Computerhersteller verbaute Apple in ihren Power Mac G5 Topmodellen eine standardisierte Wasserkühlung. Zuvor wurden Wasserkühlungen meist nur von Bastlern mit übertakteten Prozessoren in Eigeneinbau verwendet.
Im Industriebereich gibt es noch die Flüssigstickstoffkühlung, die allerdings extrem aufwändig ist. Um flüssig zu sein, muss der Stickstoff auf −196 °C gekühlt werden, was große Kühlaggregate erfordert. Wegen der sehr niedrigen Temperatur im Rechner müssen Hauptplatine und andere Objekte wieder von der Rückseite erwärmt werden, damit sie ordnungsgemäß funktionieren. Diese Technik ist sehr schwierig realisierbar, die Betriebs- und Instandhaltungskosten sind meist höher, als wenn man mehrere einzelne Prozessoren parallel betreiben würde. Allgemein gilt es als nicht sinnvoll, eine CPU auf weniger als +10 °C herunterzukühlen, da sonst die Kosten zu hoch werden. Auch haben alle elektronischen Bauteile eine Mindestbetriebstemperatur und an zu stark gekühlten Bauteilen kann sich Kondenswasser niederschlagen, was unbedingt vermieden werden muss.
Flüssigstickstoffkühlung ist jedoch als kurzfristige Lösung zur Aufstellung von neuen Taktfrequenz- und Benchmarkrekorden sinnvoll. Dafür sind auch keine Kühlaggregate notwendig, der Stickstoff wird einfach aus der Flasche nachgefüllt und verdampft. In diesem Fall entfällt auch die Erwärmung der Rückseite, weil die Komponenten während der kurzen für einen Rekordversuch nötigen Zeit meistens auch ohne derartige Maßnahmen funktionsfähig bleiben.
Einzelne Hersteller verwenden auch Kompressionskältemaschinen. Diese funktionieren ähnlich wie ein Kühlschrank: Ein Kühlmittel wird stark unter Druck gesetzt und die dabei entstehende Wärme abgeführt, beim Ausgleich auf Normaldruck kühlt es weiter ab und kühlt so auch seine Umgebung, sprich Prozessor oder andere Geräte. Diese Lösung wird vor allem bei übertakteten Workstations verwendet, hat aber den Nachteil, auch die Geräuschkulisse eines Kühlschranks zu erzeugen.
Eine weitere Möglichkeit zur Zwangskühlung der CPU bietet das Peltier-Element. Auch hier ist die Gefahr der Bildung von Kondenswasser gegeben. Zudem erzeugt ein Peltier-Element wegen des geringen Wirkungsgrades mindestens noch einmal die gleiche Verlustleistung wie der Prozessor selbst, die zusätzlich abgeführt werden muss. Die „warme“ Seite muss also auch hier per Wasserkühlung oder Kühlkörper mit Lüfter gekühlt werden.
Auch durch den Einsatz einer Ölkühlung kann Wärme abgeführt werden, im PC-Bereich wird dies allerdings bisher nur im experimentalen Umfeld durchgeführt.
Anwendungsbereich
Im Bereich der Personal Computer 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 Mikrocontrollern beispielsweise in Motorsteuergeräten, Uhren, Druckern sowie einer Vielzahl elektronisch gesteuerter Geräte.
Engineering Samples / Customer Samples
Die ersten von einem Hersteller produzierten CPUs werden, ähnlich einem Prototyp, als „Engineering Sample“ oder „Confidential CPU“ an ausgewählte Firmen oder Tester verteilt. Es handelt sich grundsätzlich um voll funktionsfähige Prozessoren, die dem späteren Endprodukt meist in nichts nachstehen. Solche CPUs sind üblicherweise im Handel nicht erhältlich. Erkennbar sind solche CPU-Versionen am Kürzel „ES“ oder dem Aufdruck „Confidential“. Zudem wurden, zumindest in der Vergangenheit von Intel, Prozessoren und ganze Chip-Sätze in „University-Kits“ abgegeben. Die dort enthaltenen Chips hatten den Aufdruck „CS“ und waren in der Regel am Keramikgehäuse beschädigt, vielfach war der Aufdruck schlecht (verrutscht, verschmiert, dubliert). Zu beachten ist, dass die Buchstabenkombination ES oder CS nicht immer Engineering oder Customer Sample bedeuten muss, oftmals ist es auch der Batch-Code oder eine Revisionsbezeichnung.
Siehe auch
Weblinks
- CPU: Überblick und Grundlagen
- umfassende Sammlung von Prozessoren (englisch)
- FAQ der Usenet-Hierarchie de.comp.hardware.cpu+mainboard.*
- cpu-museum.de Bebildertes CPU-Museum (englisch)
- Selbstbauprojekt einer CPU aus einzelnen TTL-Bausteinen
Einzelnachweise
Wikimedia Foundation.