Ein Prozessor ist eine Maschine oder eine elektronische Schaltung (i. Allg. ein IC), welche gemäß übergebener Befehle andere Maschinen oder elektrische Schaltungen steuert und dabei einen Prozess oder Algorithmus vorantreibt, was meist Datenverarbeitung beinhaltet. Am populärsten sind Prozessoren als zentrale Recheneinheiten von Computern, in denen sie Befehle (Software) ausführen.
Hauptbestandteile des Prozessors sind die Register, das Rechenwerk (Arithmetisch-logische Einheit, ALU), das Steuerwerk und der Speichermanager (Memory Management Unit, MMU), der den Arbeitsspeicher verwaltet. Zu den zentralen Aufgaben des Prozessors gehören arithmetische und logische Operationen, das Lesen und Schreiben von Daten im Arbeitsspeicher, das Ausführen von Sprüngen im Programm sowie die Steuerung und Verwaltung der Peripheriegeräte.
Prozessoren werden heute meist im Bereich der Eingebetteten Systeme (engl. Embedded Systems) eingesetzt. PCs enthalten meist mehrere Prozessoren, wobei der Hauptprozessor (Zentralprozessor) alle weiteren steuert. Im allgemeinen Sprachgebrauch ist mit „Prozessor“ meist der Zentralprozessor (CPU = Central Processing Unit) eines Computers gemeint, also das funktionale Kernstück eines elektronischen Rechners, das heute normalerweise auf einem Mikrochip integriert ist. Die moderne Form des Prozessors ist der Mikroprozessor, der alle Bausteine des Prozessors auf einem Chip vereinigt. Moderne PC-Prozessoren sind Multikernprozessoren mit zwei, vier oder noch mehr Kernen (etwa der Intel Core 2 oder der AMD Athlon X2). Weiterhin werden in Großrechnern (engl. mainframes) meist herstellereigene Prozessorarchitekturen verwendet, wie etwa bei IBM (Cell-Prozessor) oder SUN (SPARC-Prozessor). Prozessoren für Eingebettete Systeme machen etwa 95 % des Prozessormarkts aus, wobei davon 90 % sogenannte Mikrocontroller sind, die neben dem eigentlichen Prozessor weitere Funktionen (z. B. ROM, RAM) enthalten. Nur etwa 5 % werden in PCs, Workstations oder Servern eingesetzt.[1]
In den 1930er 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 1940ern begann man damit, Computer mit Hilfe von Röhren zu bauen. Die Rechner wurden schneller und weniger störanfällig. Waren diese Rechner anfangs teure Einzelprojekte, so reifte die Technik im Laufe der 1950er Jahre immer mehr aus. Röhrencomputer wurden nach und nach zu Artikeln der Serienfertigung, die für Universitäten, Forschungseinrichtungen und Firmen durchaus erschwinglich waren. Um dieses Ziel zu erreichen, war es notwendig, 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 LGP-30.
In den frühen 1960ern 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 integrierten Schaltkreisen (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.
Ein Prozessor besteht aus Registern, einem Rechenwerk (der Arithmetic Logical Unit, kurz ALU), einem Befehlsdecoder, einem Steuerwerk sowie den Datenleitungen (Busse), die die Kommunikation mit anderen Komponenten ermöglichen.
Register sind prozessorinterne Speicher, die sehr nahe und schnelle Verbindungen zu anderen Prozessorkomponenten bereitstellen. Nur mit den Daten in den Registern können direkt Operationen ausgeführt werden. Sie stellen daher die erste Stufe der Speicherhierarchie dar.
Von den Eigenschaften und insbesondere der Größe der Register (abhängig vom Prozessortyp) hängt u. a. die Leistungsfähigkeit des jeweiligen Prozessors ab.
Das Rechenwerk (Arithmetisch-logische Einheit, ALU) führt die Elementaroperationen eines Rechners durch. Es kann sowohl arithmetische (etwa die Addition zweier Zahlen) als auch logische (etwa AND oder OR) Operationen ausführen.
Der Befehlsdecoder übersetzt binäre Maschinenbefehle mit Hilfe der Befehlstabelle (engl. Instruction Table) in entsprechende Anweisungen, welche die für die Ausführung des Befehls benötigten Schaltungen aktivieren.
Das Steuerwerk kontrolliert die Ausführung der Anweisungen. Es sorgt dafür, dass der Maschinenbefehl im Befehlsregister vom Befehlsdecoder decodiert und vom Rechenwerk ausgeführt wird, lädt den an der im Befehlszählerregister hinterlegten Adresse befindlichen Befehl ins Befehlsregister sowie die nächste Adresse ins Befehlszählerregister.
Über verschiedene Busse (Signalleitungen) ist der Prozessor mit anderen Komponenten verbunden.
Moderne Prozessoren, die in PCs oder anderen Geräten, die eine schnelle Datenverarbeitung benötigen, eingesetzt werden, sind mit sogenannten Caches ausgestattet. Caches sind Zwischenspeicher, die die letzten verarbeiteten Daten und Befehle enthalten und so die rasche Wiederverwendung ermöglichen. Sie stellen die zweite Stufe der Speicherhierarchie dar. Normalerweise besitzt ein Prozessor heutzutage bis zu drei verschiedene Caches:
Zur Erhöhung der Rechengeschwindigkeit können Prozessoren mit besonderen (etwa einem Hardwaremultiplizierer) bzw. zusätzlichen (etwa einem Gleitkommarechenwerk) Rechenwerken ausgestattet sein. Zur effizienteren Bearbeitung von Befehlen werden Pipelines verwendet.
Die Befehlsbearbeitung moderner Prozessoren folgt dem Von-Neumann-Zyklus.
Gelegentlich unterscheidet man auch noch eine Rückschreibphase, in der eventuell anfallende Rechenergebnisse in bestimmte Register geschrieben werden. Erwähnt werden sollten noch sogenannte Hardware-Interrupts. Die Hardware eines Computers kann Anfragen an den Prozessor stellen. Da diese Anfragen asynchron auftreten, ist der Prozessor gezwungen, regelmäßig zu prüfen, ob solche vorliegen und diese eventuell vor der Fortsetzung des eigentlichen Programms bearbeiten.
Alle Programme liegen letztlich als eine Folge von binären Maschinenbefehlen im Speicher. Nur diese Befehle können vom Prozessor verarbeitet werden. Dieser Code ist für einen Menschen jedoch beinahe unmöglich zu lesen. Aus diesem Grund werden Programme zunächst in Assemblersprache oder einer Hochsprache (etwa BASIC, C, C++, Java) geschrieben und dann von einem Compiler in eine ausführbare Datei, also in Maschinensprache übersetzt oder einem Interpreter zur Laufzeit ausgeführt.
Um es zu ermöglichen, Programme in akzeptabler Zeit und verständlich zu schreiben, wurde eine symbolische Schreibweise für Maschinenbefehle eingeführt, die Assemblersprache. Einem Maschinenbefehl wird dabei genau ein Schlüsselwort in der Assemblersprache zugeordnet. Damit ist auch der Rückschluss von den Maschinenbefehlen auf das Assemblerprogramm möglich (Disassemblierung). Da jeder Prozessortyp eigene Maschinenbefehle besitzt, existiert für ihn auch eine eigene Assemblersprache. Prozessorunabhängige Programmierung ist erst mit der Benutzung einer Hochsprache möglich, der entsprechende Compiler ist jedoch wieder prozessorspezifisch. Befehle, die für jeden Prozessor gebraucht werden, sind normalerweise identisch. Die Reihenfolge der Ausführung der Assemblerbefehle ist vom Prozessortyp abhängig, in den nachfolgenden Beispielen erfolgt sie von rechts nach links:
Maschinenbefehle sind sehr prozessorspezifisch und bestehen aus mehreren Teilen. Diese umfassen zumindest den eigentlichen Befehl, den Operationscode (OP-CODE), die Adressierungsart, und den Operandenwert oder eine Adresse. Sie können grob in folgende Kategorien eingeteilt werden:
Der Befehlssatz bezeichnet die Menge der Maschinenbefehle eines Prozessors. Der Umfang des Befehlssatzes variiert je nach Prozessortyp beträchtlich. Nach der Größe des Befehlssatzes kann man zwischen CISC (engl. Complex Instruction Set Computing - Rechnen mit komplexem Befehlssatz)- und RISC (engl. Reduced Instruction Set Computing - Rechnen mit reduziertem Befehlssatz)-Prozessorarchitekturen unterscheiden:
Zusätzlich unterscheidet man auch noch zwischen der Adressanzahl im Maschinenbefehl:
Als Prozessorkern (engl. „core“) bezeichnet man das eigentliche Rechen- und Steuerwerk des Prozessors, um das herum weitere Komponenten wie Cache und Memory Management Unit (MMU) angeordnet sind.
Ein Prozessor kann aus mehreren Kernen bestehen und wird dann als Mehrkernprozessor (Multi-Core-Prozessor) bezeichnet. Im Sprachgebrauch sind die Begriffe Single-Core-Prozessor (Einzelkernprozessor), Dual-Core-, Triple-Core-, Quad-Core-, Hexa-Core-Prozessor (Sechskernprozessor) und Octa-Core-Prozessor (Achtkernprozessor) gebräuchlich. Prozessoren mit mehreren Kernen können sehr unterschiedlich realisiert werden, normalerweise besitzt jeder Kern einen eigenen L1- und L2-Cache. Den großen L3-Cache müssen sich meist alle Kerne teilen.
Der Grund für die Einführung solcher Mehrkernprozessoren liegt in den physikalisch begrenzten Möglichkeiten, einen einzelnen Kern immer schneller zu machen. Die fortschreitende Miniaturisierung von Halbleiterschaltelementen ermöglicht allerdings, dass mehr als ein Kern auf einen Mikrochip passen. Mittlerweile können Strukturen mit einer Kantenlänge unter 32 Nanometer gefertigt werden, womit (Stand 2008) bis zu 1,9 Milliarden Transistoren in einem Prozessor verbaut werden können.[2] (z. B. Intel i7, Codename "Gulftown"). Durch die EUV-Lithografie sollen noch kleinere Strukturen möglich sein. Es ist jedoch damit zu rechnen, dass die Miniaturisierung der konventionellen Prozessortechnik in absehbarer Zeit unüberwindbare Grenzen erreicht. Langfristig könnten sogenannte Quantencomputer die klassische Transistortechnik ablösen.
Die klassische Einteilung, dass ein Steuerwerk und eine ALU als ein Kern bezeichnet werden, verschwimmt zunehmend. Heutige Prozessoren besitzen oft Steuerwerke, die jeweils mehrere Hardware-Threads verwalten (Multi-/Hyper-Threading); das Betriebssystem "sieht" mehr Kerne, als tatsächlich (vollwertige) Steuerwerke vorhanden sind. Außerdem betreibt ein Steuerwerk oft mehrere ALUs sowie noch weitere Baugruppen wie z. B. Gleitkomma-Recheneinheit, Vektoreinheit (siehe auch AltiVec, SSE) oder eine Kryptographie-Einheit. Umgekehrt müssen sich manchmal mehrere Steuerwerke diese Spezial-Recheneinheiten teilen, was eine eindeutige Zuordnung verhindert.
Die Leistung eines Prozessors wird maßgeblich durch die Anzahl der Transistoren sowie durch die Wortbreite und den Prozessortakt bestimmt.
Die Wortbreite legt fest, wie lang ein Maschinenwort des Prozessors sein kann, d. h. aus wie vielen Bits es maximal bestehen kann. Ausschlaggebend sind dabei folgende Werte:
Die Wortbreite dieser Einheiten stimmt im Normalfall überein, bei aktuellen PCs beträgt sie 32 bzw. 64 Bit.
Das Taktsignal (engl. clock rate) wird besonders in der Werbung oft als Beurteilungskriterium für einen Prozessor präsentiert. Sie wird allerdings nicht vom Prozessor selbst bestimmt, sondern ist ein Vielfaches des Mainboard-Grundtaktes. Dieser Multiplikator lässt sich bei einigen Mainboards manuell oder im BIOS einstellen, was als Über- oder Untertakten bezeichnet wird. Das Übertakten kann zu irreparablen Schäden an der Hardware führen.
CPU-Ausführungszeit = CPU-Taktzyklen × Taktzykluszeit
Weiterhin gilt:
Taktzykluszeit = 1 / Taktrate = Programmbefehle × CPI × Taktzykluszeit
Die Geschwindigkeit des gesamten Systems ist jedoch auch von der Größe der Caches, des Arbeitsspeichers und anderen Faktoren abhängig.
Einige Prozessoren haben die Möglichkeit die Taktrate zu erhöhen, wenn es nötig ist, z. B. wenn man sich hochauflösende Videos anschaut oder Spiele spielt, die hohe Anforderungen an das System stellen.
Unterscheidung nach Funktion:
Im Zusammenhang mit den steigenden Stromkosten wird der Energieverbrauch zu einem immer wichtigeren Leistungsmerkmal.
Früher wurden neue Fertigungstechniken (v. a. Strukturverkleinerungen) vor allem zur Steigerung der Frequenz verwendet; mittlerweile werden sie teilweise eingesetzt, um den bisher stetig steigenden Stromverbrauch wieder zu reduzieren:
Aktuelle Mehrkern-Prozessoren können in ihrem Leistungsbedarf je nach Modell zwischen 45 und 140 Watt liegen (TDP). Es werden auch zunehmend Energiespar-Fähigkeiten eingebaut, um nicht benötigte Komponenten zeitweise langsamer takten zu können oder ganz abzuschalten. Bzgl. des Gesamt-Stromverbrauchs wird i. A. das Race-to-Idle-Prinzip angewandt. Moderne Prozessoren kennen mitunter sogar einen „Turbo-Modus“, um vorhandene Kühlungsreserven voll auszuschöpfen.
Der Stromverbrauch von Prozessoren ist mit weiteren Folgekosten belastet: Der verbrauchte Strom wird in Wärme umgewandelt, diese muss durch den Lüfter aus dem Rechner heraustransportiert werden. Höherer Verbrauch erfordert stärkere Lüfter, die ebenfalls mehr Strom verbrauchen. Ist der Aufstellungsort des Rechners selbst ein klimatisierter Raum, wird auch die Klimaanlage dadurch zusätzlich belastet. Dabei kann man abhängig von der Leistungszahl des Kühlgerätes mit ca. 25-40 % Zusatzverbrauch rechnen (d. h. ein 300W-PC belastet die Klimaanlage mit 75-120W höherem Leistungsbedarf). Auch das Netzteil des Rechners muss eventuell größer ausfallen. Ist der Rechner an eine USV angeschlossen, so hat diese abhängig von ihrem Wirkungsgrad ebenfalls einen höheren Eigenverbrauch. Bei vielen Rechnern an einem Ort können auch zusätzliche Investitionskosten für größere Klimaanlagen und größere USV-Anlagen anfallen. Server laufen meist 24 Stunden am Tag, sieben Tage die Woche, also insgesamt 8760 Stunden im Jahr.
Aber auch außerhalb von Rechenzentren bieten stromsparende Prozessoren zusätzliche Vorteile. Da die Kühler weniger zu tun haben, werden die Rechner auch leiser. Und im Sommer stellt die von einem PC produzierte Wärme in einem Raum ohne Klimaanlage eine Beeinträchtigung für die dort anwesenden Personen dar.
Um die Energiebilanz von EDV-Systemen zu verbessern, werden unterschiedliche Lösungswege verfolgt. Es wird angestrebt, die Effektivität der Kühlung zu erhöhen (Beispiel: Air Guide), als auch die abgegebene Wärme zu nutzen (Beispiel: Aquasar).
Dieser Artikel basiert auf dem Artikel Prozessor_(Hardware) aus der freien Enzyklopädie Wikipedia und ist unter der Lizenz Creative Commons Attribution/Share Alike verfügbar. Zusätzliche Bedingungen können anwendbar sein. In der Wikipedia ist eine Liste der Autoren verfügbar. |