Prozessoren

Aus PC-WELT-Wiki

Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

Wie funktioniert ein Prozessor und worin unterscheiden sich die aktuellen CPU-Architekturen von AMD und Intel? Wir erklären die Grundlagen und zeigen die Unterschiede „unter der Haube“ auf.

Vier grundlegende Einheiten bestimmen die Funktionsweise eines modernen PCs: das Rechen- und Steuerwerk, der Speicher sowie eine Ein-/Ausgabeeinheit. Alle Einheiten sind über ein Bussystem verbunden. Dieses Rechner-Prinzip hat der Mathematiker John von Neumann erstmals 1945 beschrieben. Die zentrale Rolle nimmt dabei der Prozessor (CPU, Central Processing Unit) ein, der Befehle ausführt (Rechenwerk) und die dafür notwendigen Abläufe steuert (Steuereinheit). Eine moderne CPU besteht aus einem einzigen Chip, der sich aus mehreren hundert Millionen integrierten Schaltkreisen (Transistoren) zusammensetzt; deshalb bezeichnet man sie auch als Mikroprozessor.

Jeder Schaltkreis kennt zwei Zustände: Liegt ein geringer elektrischer Widerstand an, fließt Strom. Dies interpretiert die Prozessor-„Firmware“, der Microcode, als die Binärziffer 1. Liegt ein hoher Widerstand an, ist der Transistor nicht überbrückt und bekommt die Binärziffer 0 zugewiesen. Alle Befehle, die der Prozessor versteht, sind über eine eindeutige Abfolge von Binärziffern innerhalb der Maschinensprache codiert.

Design & Datenverarbeitung

Die aktuellen Prozessor-Architekturen „AMD64“ und Intels „Core“ haben viele Gemeinsamkeiten. Beispielsweise basieren sie auf der grundsätzlichen x86-Architektur (Kasten auf...) und nutzen zusätzliche Befehlssätze wie MMX und SSE. Das erklärt sich, weil AMD und Intel seit 1976 miteinander Lizenzabkommen schließen. Es gibt aber auch Unterschiede im Design und bei der internen Datenverarbeitung.

So sind die CPUs gebaut

Anders als Intel hat AMD den Speicher-Controller in den Prozessor integriert – die klassische Chipsatz-Northbridge ist damit nicht mehr notwendig. AMD-CPUs können somit schneller und effektiver mit dem Hauptspeicher Daten austauschen, da durch die räumliche Nähe respektive die kürzeren Datenleitungen die Wartezyklen (Latenzen) bei Speicherzugriffen kürzer ausfallen. Intel kompensiert diesen Nachteil in der Core-Architektur durch einen doppelt so großen Pufferspeicher: Die Doppelkerner besitzen bis zu 4 MB L2-Cache. Hier macht sich Intels Entwicklungsvorsprung in der Fertigungstechnik bemerkbar. Der zweite wichtige bauliche Unterschied: AMD-Prozessoren kommunizieren nicht mehr über den Front Side Bus (FSB) mit dem Rest der PC-Hardware, sondern nutzen den seriellen Hypertransport-Bus. Er besitzt in der Praxis mehr Bandbreite, weil er bidirektional arbeitet, und er ist leichter zu synchronisieren. Insbesondere bei Mehr-Prozessor-Systemen macht sich diese Strategie bezahlt. Ein Beispiel: Der Server-Prozessor Opteron besitzt drei voneinander unabhängige Hypertransport Schnittstellen, über die er Daten mit seinen CPU-Kollegen austauschen kann. So kann er den Flaschenhals des parallel arbeitenden FSBs meiden. Seit der Einführung des Athlon XP nutzen AMD-CPUs einen anderen Sockel – aktuell den AM2 mit 940 Signalkontakten. Nicht zuletzt wegen des unterschiedlichen Busprotokolls und der zusätzlichen Daten- und Masseleitungen ist er weder elektrisch noch mechanisch kompatibel zum Sockel 775 von Intel.

So fließen die Daten

Eine zentrale Rolle für die Recheneffizienz eines Prozessors spielt die Befehls-Pipeline. Im Prinzip gilt: Je weniger Stufen zwischen dem Holen der Befehle und Daten (Fetch) bis zur Ergebnisausgabe im Pufferspeicher liegen, desto effizienter rechnet eine CPU. Das liegt an der spekulativen Arbeitsweise moderner Mikroprozessoren: Sie versuchen ständig via Sprungvorhersagen den Ablauf der anstehenden Berechnungen vorauszuahnen. Manchmal geht das aber schief („stalls“), und die CPU muss die ganze Pipeline komplett neu laden. Die AMD64-Architektur nutzt eine 12stufige Pipeline bei Integer-Operationen, für Fließkomma-Berechnungen durchläuft ein Befehl 17 Stufen. Intel hat hier Boden gutgemacht und die lange Leitung der Vorgänger-Baureihe Pentium 4 mit bis zu 31 Stufen bei der Core-Architektur auf 14 Stufen verkürzt. Auf der anderen Seite können kurze Pipelines weniger Befehle „on the fly“ bearbeiten und skalieren bei höheren Taktfrequenzen schlechter.. Skalieren bedeutet, dass mit steigendem Takt die Rechenleistung linear wächst. Hohe Taktraten sind aber wichtig, damit Befehle die Pipeline so schnell wie möglich durchlaufen. Allerdings taucht bei Raten ab 3 GHz ein neues Problem auf: Durch die immer kleineren Strukturbreiten der Transistoren steigen bei hohen Taktfrequenzen die Leckströme, also unbeabsichtigter Stromfluss. Das bedeutet, dass die Transistoren insgesamt mehr Strom verbrauchen, aber auch deutlich mehr Wärme abgeben und damit temporär ausfallen können. Vor allem aus diesem Grund hat Intel den Hitzkopf Pentium 4 in Rente geschickt. Bei AMDs aktueller AMD64-Architektur handelt es sich um ein dreifach superskalares Prozessor-Design, die CPU kann also maximal drei x86-Befehle pro Takt parallel abarbeiten. Pro Rechenkern übersetzen drei Decoder die x86-Befehle in einfach zu handhabende Befehle fester Länge (Micro-Ops). Dabei füttern pro Rechenkern drei Decoder mit insgesamt vier nachgeschalteten Schedulern insgesamt neun Ausführungseinheiten. Die ersten drei Scheduler speichern jeweils bis zu acht Einträge für die sechs angeschlossenen Integer-Einheiten, die sich wiederum aus drei Address Generation Units (AGU) und drei Arithmetic Logical Units (ALU) zusammensetzen. Der vierte Scheduler puffert 36 Einträge für die drei Floating Point Units (FPU), bestehend aus FMUL, FADD und FMISC.

Intels Core-Architektur besitzt ein vierfach superskalares Prozessor-Design, das deutlich komplexer aufgebaut ist als die AMD64-Architektur von AMD. Bereits bevor die Instruktionen in die Decoder wandern, sind bei Intel mehrere Sprungvorhersage-Einheiten am Werk, die voraussichtlich benötigte Daten und Adressen ermitteln. Zudem erfolgt gleich im Anschluss an die Sprungvorhersagen die „Macro-Ops-Fusion“. Dabei fasst die CPU zwei Micro-Ops zusammen, so dass noch mehr Prozesse parallel laufen können.

Statt drei wie beim AMD64 besitzt die Core-Architektur vier Decoder-Einheiten: Zu den drei herkömmlichen kommt eine komplexe Einheit, die für die Macro-Ops zuständig ist – im Idealfall decodiert die CPU also gleich fünf Micro-Ops pro Takt.

Den vier Decoder-Einheiten nachgeschaltet ist der „Decode Instruction Queue“, der bis zu sieben Micro-Ops-Einträge pro Takt fasst. Im Anschluss erfolgt die Micro-Ops-Fusion, bei der die CPU mehrere zueinander passende Micro-Ops verschmilzt und gemeinsam verwaltet. Erst dann geht’s in die sechs Scheduler, die 36 Einträge fassen. Die Scheduler füttern zwei AGUs, drei ALUs und vier FPUs (FMUL, FADD, FS, FL).

Bei der Ergebnispufferung spielt der Translation Lookaside Buffer (TLB) eine wichtige Rolle – er „übersetzt“ virtuelle Speicheradressen in physikalische. Je mehr Einträge er zwischenspeichern kann, desto besser lassen sich die Ausführungseinheiten auslasten. Hintergrund: Jeder Eintrag, der nicht im TLB gepuffert ist, muss seine physikalische Adresse aus dem Arbeitsspeicher beziehen. Das kostet viel Zeit und senkt die Anzahl der Rechenoperationen, die die Ausführungseinheiten letztendlich pro Takt erledigen können. Der Daten- und der Befehls-TLB des jeweils 64 KB großen L1-Daten- und Befehl-Caches arbeitet bei AMD 1fach assoziativ und puffert jeweils 40 Einträge.

Bei Intels Core-Architektur steht mit jeweils 32 KB L1-Daten- und Befehls-Cache zwar nur halb so viel L1-Cache zur Verfügung, allerdings arbeitet er gleich 8fach assoziativ und puffert satte 128 (Befehls-Cache) respektive 256 (Daten-Cache) Einträge. assoziativ ausgelegt und speichern jeweils bis zu 512 Einträge. Die Busbreite des L2-Caches beträgt 128 Bit. Je nach Baureihe stehen 128 oder 256 (Sempron) beziehungsweise 512 oder 1024 KB (Athlon 64) pro Rechenkern zur Verfügung.

Bei Intel arbeitet der L2-Cache gleich 16fach assoziativ, sein Bus ist mit 256 Bit doppelt so breit wie beim AMD64. Intel geht bei der zweiten Cache-Stufe auch sonst andere Wege: Die beiden Rechenkerne teilen sich dynamisch die gemeinsame 2048 oder 4096 KB mächtige zweite Cache-Stufe. Gegenüber AMDs exklusiver L2-Cache-Lösung hat das Vor- und Nachteile: So können etwa Programme, die nur einen CPU-Kern nutzen, bei Bedarf nahezu den kompletten Cache nutzen. Läuft hingegen Multithreading-Software, kann es bei hoher L2-Cache-Auslastung vorkommen, dass sich die beiden Rechenkerne um den knappen Platz im L2-Cache balgen. In diesem Fall können dann auch meist die Latenzzeiten etwas länger ausfallen.

3D Now, MMX, SSE & Co.

65-Nanometer-Fertigung: So sieht der Silizium-Wafer für AMDs ersten Vier-Kern-Prozessor aus

AMD und insbesondere Intel haben im Laufe der Jahre zusätzliche Befehlssätze in ihre Prozessoren implementiert, die die Recheneffizienz steigern. Der Leistungsgewinn stellt sich aber nur ein, wenn die Programme diese zusätzlichen Prozessorbefehle explizit beherrschen. Obwohl besonders Intel die Software-Entwickler mit sehr viel Geld unterstützt, damit sich die hauseigenen Befehlssätze möglichst schnell in gängigen Anwendungen wiederfinden, dauert es in der Regel ein bis zwei Jahre, bevor eine signifikante Anzahl von Programmen tatsächlich von „neuen“ Befehlssätzen profitiert. MMX (Matrix Math Extensions) erweitert den x86-Befehlssatz um zusätzliche Integer-Operationen, die besonders die Bild- und Videobearbeitung beschleunigen können. Intel führt ihn 1996 ein. Mit 3D Now ergänzt AMD ein Jahr später Intels MMX um Fließkomma-Operationen, die vor allem 3D-Grafik-Software wie PC-Spiele beschleunigen.


SSE (Streaming SIMD Extension) kommt 1999 mit dem Pentium III und setzt auf Gleitkomma-Operationen. Es bringt aber auch acht komplett neue, 128 Bit breite Register mit, in denen sich jeweils vier Fließkommazahlen gleichzeitig mit 1facher Genauigkeit (Single Precision) verarbeiten lassen. Mit SSE2 fügt Intel 2001 im Pentium 4 zusätzliche 64 Bit breite SIMD-Gleitkomma-Befehle hinzu, die der SSE-Technik zum Durchbruch verhelfen. SSE2 beschleunigt mittlerweile zahlreiche Audio- und Videoprogramme, beispielsweise durch effiziente Encodier-Algorithmen bei komprimierten Dateiformaten wie MP3. SSE3 wiederum dient dazu, Intels Technik Hyperthreading mehr Effizienz zu verleihen. Es bringt aber auch bestimmte Matrix-Operationen wie die „Fast Fourier Transformation“ mit, die wissenschaftliche Anwendungen beschleunigen. Aktuelle AMD-Prozessoren beherrschen ebenfalls alle SSE-Varianten. Die für das dritte Quartal 2007 angekündigten Intel-Prozessoren in 45-Nanometer-Technik und AMDs Quad-Cores werden erstmals SSE4 unterstützen. Detaillierte Infos zu SSE4 finden Sie unter www.pcwelt.de/6e1.

Langlebig Intels x86-Architektur

Fast alle modernen Desktop-Prozessoren basieren auf Intels x86-Architektur. Die ersten x86-CPUs führte Intel 1978 mit der namengebenen 8086-Baureihe ein. Die Erfolgsgeschichte der x86-Architektur ist eng mit IBMs Konzept des modular aufgebauten Rechners mit standardisierten Schnittstellen verknüpft: Der 1981 vorgestellten Personal Computer (PC) setzte mit dem 8088 eine funktionsreduzierte Version des 8086 ein. Dank des Siegeszuges des IBM-PCs und dessen kompatibler Nachbauten mauserte sich der x86-Standard zur bedeutendsten Prozessor-Architektur. Eine Weiterentwicklung des x86-Standards stellt Intels 32-Bit-Architektur (IA-32) dar, die den x86-Befehlssatz auf 32 Bit ausbaute. Das 64-Bit-Zeitalter der x86-Prozessoren läutete wiederum der ehemalige Clone-Hersteller AMD im Jahr 2003 ein, als er die AMD64-Architektur in der Athlon-64-CPU-Baureihe vorstellte. Nicht zu verwechseln mit der 64-Bit-Itanium-Architektur, die den x86-Befehlssatz nur per Software emuliert. Die ersten x86-CPUs steuerten die Ausführung der Cisc-Befehle noch komplett über den Microcode. Moderne x86-Prozessoren dagegen übersetzen die x86-Instruktionen in kleine, fest definierte Risc-Befehle – die Micro-Operationen (Micro-Ops). Dadurch kann die CPU häufig benutzte Rechenoperationen parallel abarbeiten und so viel effizienter rechnen.