Aufbau - Hardware-Zone

Direkt zum Seiteninhalt
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 (z.B. ADD für Addiere) 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 konnten die Hersteller immer mehr Funktionen innerhalb des 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.
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. 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.

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. Während bei den ersten 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  Diese besitzen alle Funktionseinheiten eines normalen Prozessors, sie teilen sich lediglich den L3-Cache. Die einzelnen Kerne sind über interne Leitungen miteinander verbunden.
Zurück zum Seiteninhalt