Zum Inhalt springen

„Hauptprozessor“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
[ungesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
{{Wikidata-Weiterleitung|Q5300}} hinzugefügt.
 
(982 dazwischenliegende Versionen von mehr als 100 Benutzern, die nicht angezeigt werden)
Zeile 1: Zeile 1:
#WEITERLEITUNG [[Prozessor#Hauptprozessor]]
[[Bild:AMD_486_DX_2_66_MHz_opened.jpg|thumb|Eine geöffnete AMD 486 DX2 66-MHz-CPU, zu erkennen der CPU-Kern (''die'')]]
{{Wikidata-Weiterleitung|Q5300}}


[[Kategorie:Prozessorarchitektur nach Verwendung]]
Der '''Hauptprozessor''', [[Englische Sprache|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 [[Computer]]s, der alle anderen Bestandteile steuert. Das Verhalten der CPU wird dabei von einem [[Computerprogramm|Programm]] in Form von [[Maschinencode]] bestimmt. Zu den zentralen Aufgaben der CPU gehören [[Arithmetik|arithmetische]] Operationen, das Lesen und Schreiben von Daten im [[Arbeitsspeicher]], sowie das Ausführen von Sprüngen im [[Computerprogramm|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 ([[Instruction pointer]]), der auf die Speicherstelle zeigt, von der gerade [[Maschinensprache|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 [[Arithmetic Logical Unit|ALU]] (Arithmetic Logic Unit, also Einheit für arithmetische und logische Funktionen) ausgeführt. Zwischenergebnisse werden in [[Register (Computer)|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.

== 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öhre (Elektronik)|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 diesem 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 [http://www.informatik.uni-stuttgart.de/ifi/cs/dev/lgp30/LGP-30.html 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 [[Integrierter Schaltkreis|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 [[Intel 4004|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 Mikroprozessor der Welt...
'''Emsland-Test'''

== Variationen ==
Im Laufe von immer höheren [[Integrationsdichte|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 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 [[Dotierung|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 [[Instructions per cycle|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 [[Reduced_Instruction_Set_Computing|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-Lithografie|EUV]]?) zur Belichtung von [[Wafer]]n 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 aller 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 [[http://www.gordonfamily.com/AMD/ Details]]. Auch die Firma Intel hatte schon ähnliche Probleme. So musste im Jahr 2001 der gerade 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 [[Pentium-FDIV-Bug|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 [[1980er|80er Jahren]] entwickelt wurden, waren die ersten 32-Bit-Prozessoren der Intel 80x86-Familie.

== Kühlung ==
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 betriebene 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 2500 - 6500 RPM (engl.: Revolutions 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 sehr 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 Temperatur 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 [[Kompressor]]kü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 übertakteten [[Workstation]]s verwendet, haben aber den Nachteil auch die Geräuschkulisse eines Kühlschranks zu erzeugen.

== 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 [[Microcontroller]]n beispielsweise in Motorsteuergeräten, Uhren, Druckern sowie einer Vielzahl elektronisch gesteuerter Geräte.

== Sonstiges ==
Man unterscheidet grundsätzlich zwei verschiedene CPU-Architekturen:
* [[Reduced_Instruction_Set_Computing|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|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. [[Signalprozessor|Digitale Signalprozessoren]]).

== Siehe auch ==
* [[Computer]]
* [[Mikroprozessor]]
* [[Mikrocontroller]]
* [[Mikroprogrammierung]]
* [[Notebookprozessor]]
* [[Hyper-Threading]]
* [[Ring (CPU)]]
* [[:Kategorie:CPU-Hersteller|Kategorie CPU-Hersteller]]

== Weblinks ==
* [http://www.itse-guide.de/artikel/12 CPU Grundlagen]
* [http://users.erols.com/chare/elec.htm CPU Stromverbauchslisten aller Typen]
* [http://www.stickybit.de/wissen/computer/grundlagen/cpu/ CPU Überblick und Grundlagen]
* [http://www.cpu-collection.de/ cpu-collection.de - umfangreiche Sammlung von CPUs mit detailierten Bildern und Beschreibungen]

[[Kategorie:Hardware]]
[[Kategorie:Rechnerarchitektur]]

[[cs:Procesor]]
[[da:Central Processing Unit]]
[[en:Central processing unit]]
[[es:CPU]]
[[fi:Suoritin]]
[[fr:Processeur]]
[[he:מעבד]]
[[hr:Procesor]]
[[hu:CPU]]
[[it:CPU]]
[[ja:CPU]]
[[ko:중앙처리장치]]
[[la:Processor centralis]]
[[ms:Unit Pemproses Pusat]]
[[nl:Processor]]
[[no:CPU]]
[[pl:Jednostka centralna (procesor)]]
[[pt:CPU]]
[[sk:Základná jednotka]]
[[sv:CPU]]
[[th:หน่วยประมวลผลกลาง]]
[[uk:Центральний процесор]]
[[zh:中央处理器]]

Aktuelle Version vom 30. Dezember 2022, 00:13 Uhr