Hardware-Zone Schriftzug

Neueste Artikel

Aufbau

Ein Prozessor ist ein äußerst komplex aufgebauter integrierter Schaltkreis aus Silizium, in den viele einzelne Funktionseinheiten integriert sind. Jede Komponente hat eine ganz bestimmte Aufgabe, sei es die Zwischenspeicherung von Befehlen und Daten oder deren Ausführung bzw. Verarbeitung.

Beim ersten Mikroprozessor, dem 4004er, der 1969 erschienen ist, befanden  sich die meisten Funktionseinheiten noch in separaten Mikrochips. In der Folgezeit aber konnten die Hersteller mit Hilfe verbesserter Fertigungsverfahren immer mehr Funktionen innerhalb eines Chips unterbringen. Das lag vor allem an der fortschreitenden Verkleinerung der Schaltkreise. Aus der aus mehreren Bauteilen bestehenden Zentraleinheit wurde ein einziger hochintegrierter Mikroprozessor, in dem alle Funktionseinheiten bereits integriert sind.

Intel C4004 CPU

Taktgenerator

Der Taktgenerator erzeugt mit Hilfe eines Schwingquarzes rhythmisch aufeinanderfolgende Stromimpulse, welche die interne Verarbeitungsgeschwindigkeit des Prozessors bestimmen. Je höher die Frequenz der Stromimpulse (Strom ein, Strom aus) ist, desto schneller können die einzelnen Einheiten arbeiten.
Die Schwingungsfrequenz bezeichnet man gewöhnlich als Taktfrequenz, da sie den Arbeitsrhythmus des Prozessors vorgibt. Gemessen wird die Taktfrequenz in MHz (1 Megahertz = 1.000.000 Hertz (Hz)) oder GHz (1  Gigahertz = 1.000 MHz).

Cache

Ein Cache ist ein größen- und geschwindigkeitsmäßig zwischen den Registern und dem Hauptspeicher angesiedelter Zwischenspeicher, der aus statischen RAM-Bausteinen besteht (RAM = Random Access Memory). Da der Cache relativ klein ist, muss durch ausgeklügelte Ersetzungsstrategien sichergestellt werden, dass sich nur die häufig genutzten Daten und Befehle darin befinden. Der Leistungsgewinn durch Caches ist enorm, da überflüssige Zugriffe auf den langsamen Arbeitsspeicher entfallen. Meistens gibt es drei Hierarchiestufen (engl. Level): 1L-Cache, 2L-Cache und 3L-Cache. Mehr Informationen dazu gibt es unter Cache.

Register

Register sind kleine Pufferspeicher innerhalb des Mikroprozessors, in denen die Daten aufbewahrt werden, die gerade bearbeitet werden. Durch die feste Verdrahtung mit der Prozessorlogik sind Register die mit Abstand schnellsten Speicher in einem Personal Computer. Die ALU kann direkt auf die Register zugreifen, z.B. für die Addition zweier Zahlen. Das Ergebnis dieser Operation wird wieder in einem Register gespeichert und kann entweder als Zwischenergebnis weiter verwendet oder in den Cache zurückgelegt werden. Die Speicherkapazität eines Registers wird in Bit  angegeben. In diesem Zusammenhang spricht man auch von der Breite eines Registers. Ein Register mit n Bit Breite bzw. Speicherkapazität kann positive, ganze Zahlen von 0 bis 2^n speichern. Die Gesamtheit aller Register in einer CPU wird als Registersatz bezeichnet. Es gibt verschiedene Arten von Registern, z.B.:

  • Datenregister
  • Adressregister
  • Allzweck-Register können sowohl Daten als auch Adressen enthalten.
  • Segment-Register speichern Adressen von Code-, Daten- und Stack-Segment des laufenden Programms.
  • Das Statusregister wird von der ALU zum Festhalten bestimmter Zustände verwendet, z.B. Übertrag oder negatives Vorzeichen.
  • Der Befehlszäher enthält die Adresse des jeweils nächsten auszuführenden Befehls. Bei Unterprogramm-Aufrufen wird dieser eingefroren, damit die CPU das Hauptprogramm zu einem späteren Zeitpunkt fortsetzen kann.

Steuerwerk

Das Steuerwerk analysiert, steuert und überwacht den gesamten Programmablauf. Ein Programm besteht meist aus einer Folge von Befehlen.

Befehlsdecoder

Der Befehlsdekoder spaltet die binären Befehle der Software in den Operator (den Befehl selbst) und Operanden (Daten und Speicheradressen) auf.

Ausführungseinheiten

In den Ausführungseinheiten (Execution Units) findet die eigentliche Berechnung statt. Für jeden Befehlstyp ist eine andere Ausführungseinheit zuständig, z.B.:

  • Ganzzahlige arithmetische oder logische Befehle: Arithmetisch-logische Einheit (ALU)
  • Fließkomma-Befehle: Fließkommaeinheit (FPU)
  • Befehle mit Speicherzugriff (Quell- und Zieladressen von Operanden): Address Generation Unit (AGU)
  • Sprungbefehle: Sprungeinheit (Branch Unit)
  • SIMD-Befehle: MMX-/SSE-Einheit

Arithmetisch-Logische Einheit (ALU)

Der Bereich im Mikroprozessor, in dem die Befehle ausgeführt werden, wird als Arithmetisch-Logische Einheit oder Rechenwerk bezeichnet. Sie hat zwei Dateneingänge für die Operanden und einen Eingang, durch den die Art der Operation bestimmt wird. ALUs kennen verschiedene Arten von Befehlen:
Arithmetische Befehle, z.B.

  • Addition (ADD)
  • Subtraktion (SUB)
  • Multiplikation (MUL)
  • Division (DIV)

Logische Befehle, z.B.

  • UND (AND)
  • ODER (OR)
  • NICHT (NOT)
  • exklusives ODER (XOR)
  • Befehle für Bit-Manipulationen (bitweise Verschiebung nach links, SHL)

Nach der Ausführung des Befehls kann die ALU bei bestimmten Ergebnissen zusätzliche Statusinformationen (FLAGS) ausgeben, z.B. wenn das Ergebnis 0 oder negativ ist. Moderne Prozessoren besitzen mehrere ALUs, wodurch sie mehrere Befehle gleichzeitig ausführen können.

Arithmetisch-logische Einheit
Barrel-Shifter Als Barrel-Shifter bezeichnet man den Teil der ALU, der für Bit-Rotationen und -Verschiebungen um eine bestimmte Anzahl von Stellen verantwortlich ist. AGU (Address Generation Unit) Eine AGU ist eine auf Adressberechnungen spezialisierte ALU, die bei Befehlen mit Speicherzugriff (Lade- oder Speicheroperationen) aus den logischen Programmadressen die physischen Adressen der Operanden im Speicher berechnet. Meistens ist jeweils eine AGU für die Ermittlung der Quelladressen der Operanden (Load) und eine für die Berechnung der Zieladresse des Ergebnisses (Store) verantwortlich.

Fließkommaeinheit (FPU)

Die Fließkommaeinheit ist eine speziell für Berechnungen mit Gleitkommazahlen entwickelte Einheit. Ab dem 80486DX-Mikroprozessor besitzen alle CPUs eine oder mehrere integrierte Fließkommaeinheit(en). Bei früheren Modellen war ein sogenannter mathematischer Coprozessor notwendig.

Speicherverwaltungseinheit (MMU)

Die zentrale Aufgabe einer MMU (Memory Management Unit) ist die Umwandlung logischer Programmadressen in physische Speicheradressen. Weitere wichtige Aufgaben sind die Steuerung von Cachezugriffen und der Speicherschutz. Mehr zum Thema unter Speicherverwaltung.

Speichercontroller

Bei älteren CPUs war der Speichercontroller noch in einem eigenen Chip untergebracht. Mittlerweile ist er Teil des Prozessors und hat vor allem folgende Aufgaben:

  • Speicher-Refresh: Der Arbeitsspeicher „vergisst“ im Laufe der Zeit seinen Inhalt und muss regelmäßig aufgefrischt werden.
  • Die Daten, die zwischen CPU und Arbeitsspeicher übertragen werden, glechmäßig auf alle Übertragungskanäle aufzuteilen.

Mehrkernprozessoren

Seit 2005 gibt es sogenannte Mehrkernprozessoren, die mehrere eigenständige CPUs auf demselben Chip vereinen. Diese besitzen alle Funktionseinheiten eines normalen Prozessors, sie teilen sich lediglich den L3-Cache. Die einzelnen Kerne sind über interne Leitungen miteinander verbunden. Hinsichtlich der technischen Umsetzung gibt es zwei verschiedene Ansätze:

Monolithisches Design (Intel)

Während bei den ersten Intel-Mehrkernprozessoren wie dem Pentium D einfach zwei gleiche CPU-Chips in einem Gehäuse untergebracht wurden, sind die CPUs mittlerweile in einen einzigen Chip integriert.

Vorteile:

  • höhere Leistung, da die einzelnen Kerne über breite und sehr kurze Wege blitzschnell miteinander kommunizieren können.
  • gleichmäßigere Kühlung möglich

Nachteil:

  • aufwändigere Fertigung

Chiplet-Design

AMD setzt hingegen auf ein Design, bei dem mehrere einzelne Chips verwendet werden: Bis zu acht CPU-Kerne werden auf je einem Core-Complex (CCX) untergebracht, während sich Grafikeinheit, L3-Cache und Schnittstellen auf einem eigenen Ein-/Ausgabechip Platz finden. Die Chips sind über ein als „Infinity Fabric“ bezeichnetes Bussystem miteinander verbunden.

Vorteile:

  • einfachere Fertigung, da etwa für den E/A-Chip ein anderes Verfahren als für die CCXs eingesetzt werden kann.
  • bessere Skalierbarkeit

Nachteile:

  • höhere Latenzen, da der L3-Cache und die CPU-Kerne räumlich voneinander getrennt sind und über ein langsameres Bussystem miteinander kommunizieren müssen.
  • ungleichmäßige Temperaturverteilung