Sprungvorhersage - nach einem bestimmten Algorithmus und mit einer Branch History Table versucht der Prozessor, vorherzusagen, ob ein bedingter Sprung ausgeführt wird oder nicht. Die Abarbeitung kann dann evtl. schon entsprechend spekulativ fortgesetzt werden. Eine gute Branch Prediction ist bei mehreren Pipelinestufen essentiell, weil bei falscher Vorhersage die gesamte Pipeline gelöscht und neu gefüllt werden muß.
Diese Tabelle dient der Branch Prediction zur Vorhersage der Sprünge. Hier werden Vorhersagen und Ergebnisse gespeichert und für die nächsten Vorhersagen ausgewertet.
Weil schneller Speicher sehr teuer ist, benutzt man statt dessen langsameren und schaltet zwischen Prozessor und Speicher einen kleinen, schnellen Cache. Der Cache arbeitet als ein Zwischenspeicher - alles was vom Prozessor in den Hauptspeicher kommt oder umgekehrt, landet erst einmal im Cache. So kann der Prozessor schneller auf erst kürzlich benötigte Daten zugreifen und Schreibvorgänge in den Hauptspeicher können gebündelt werden.
Der L1-Cache ist seit dem 486 auf dem Prozessor angesiedelt und wird mit vollem Prozessortakt betrieben. Der L2-Cache ist auf dem Motherboard (bei Pentium-Pro/-II auf dem Prozessor/-modul)
Der L1-Cache wird bei einigen Prozessoren in Befehls- und Datencache aufgeteilt, so daß durch ein hohes Datenaufkommen keine Programmteile aus dem Cache "geworfen" werden.
Der Chipsatz ist heutzutage der Hauptbestandteil eines Motherboards. Er ist verantwortlich für die Ansteuerung des Prozessors, des Speichers, der Busse und einger Peripherie. Damit ein Prozessor in einem Motherboard funktioniert, muß sich der Chipsatz auf diesen Prozessor einstellen lassen. Er muß die richtigen Spannungen und Taktraten für den Prozessor generieren können.
Die Gesamtperformance hängt neben einigen anderen Faktoren (verwendete Speicher, Festplatte(n), Grafikkarte etc.) stark vom Chipsatz des Motherboards ab.
Es existieren mehrere verschiedene Chipsätze für die verschiedenen Prozessortypen, an dieser Stelle sei auf den verwiesen.
Complex Instuction Set Computing. CISC bezeichnet ein Prozessordesign, das im Gegensatz zu RISC auf komplexe Instruktionen setzt, die innerhalb der CPU meist mittels Mikrocode ausgeführt werden.
"Hilfsprozessor", der auf die Verarbeitung von Floating-Point Zahlen spezialisiert ist. Seit der 586-Generation in der CPU integriert.
Central Processing Unit - Zentralprozessor. Eine allgemeine Bezeichnung für den Hauptprozessor eines Computers.
CPUID ist ein Assemblerbefehl, der bei späten 486ern auftauchte. Mit seiner Hilfe lassen sich der Hersteller und einige Features der CPU in Erfahrung bringen. Intel CPUs melden sich z.B. mit "GenuineIntel", AMDs mit "AuthenticAMD" und Cyrix CPUs mit "CyrixInstead". Der C6 von Centaur liefert alles mögliche - dort läßt sich die Identifikation per MSR ändern.
Der Die hat nichts mit dem Tod zu tun, sondern bezeichnet das Stück Silizium, auf dem der Prozessor untergebracht ist. Von außen ist er nicht sichtbar, deshalb haben wir eine Die-Gallerie vorbereitet.
"Gleitkomma". Darstellung von reellen Zahlen im Rechner mit Hilfe von Vorzeichen, Mantisse und Exponent. Vorteil: Großer Rechenbereich. Nachteil: Ungleichmäße Veteilung der dastellbaen Zahlen, d.h. zwischen 0 und 1 kšnnen mehr Zahlen dagestellt werden als zwischen 1.000.000 und 1.000.001. (Schwankende Genauigkeit)
Bis zum 386/486 konnten die CPUs selbst keine Floating-Point Zahlen verarbeiten und mußten sich auf einen Coprozessor verlassen. Ab Pentium bzw. 586 ist die FPU fester Bestandteil des Prozessors.
Floating-Point-Unit - Gleitkommaeinheit. Teil der CPU (früher war es der Coprozessor), der für die Verarbeitung von Gleitkommazahlen zuständig ist. Die Gleitkommaregister werden auch für die MMX-Erweiterungen mißbraucht.
Mit Hilfe des Mikrocode werden bei CISC-Prozessoren komplexe Operationen in "kleine Häppchen", d.h. einfachere Instruktionen zerlegt.
Multimedia Extension für x86-CPUs. Von Intel propagierte Multimedia-Erweiterung, die Bild- und Audio-Verarbeitung bis zu 400% beschleunigen soll. MMX hat bis heute keine nennenswete Bedeutung erlangt (obwohl es alle Intel-Konkurrenten in ihre aktuellen Prozessoren integriert haben). Es soll Applikationen geben, die mit Hilfe von MMX schneller laufen, diese bilden jedoch die Ausnahme.
Größter Nachteil von MMX ist, daß man die FPU-Register mittels eines speziellen Befehls in MMX-Register verwandelt (was dummerweise sehr lange dauert) und somit nur entweder MMX oder FPU verwenden kann. Die meisten Applikationen, die theoretisch von MMX profitieren würden, benötigen aber auch die FPU, so daß die langwierige Umschaltung jeden Geschwindigkeitsgewinn zunichte macht.
AMD hat inzwischen eine Erweiterung zu MMX ersonnen und auf "3DNow!" getauft.
Maschinenspezifisches Register - ein internes Register eines Prozessors. Meist undokumentiert lassen sich mit Hilfe der MSRs einige Prozessorinterna in Erfahrung bringen.
Während noch ein Befehl in der einen Pipeline abgearbeitet wird, beginnt der Prozessor schon mit der Abarbeitung eines darauffolgenden Befehls. Dabei müssen die Abhängigkeiten zwischen den einzelnen Befehlen beachtet und evtl. nachträglich korrigiert bzw. entfernt werden.
Einige Prozessoren der Intel-Konkurrenten (speziell AMD, Cyrix) hatten bei gleichem Takt eine deutlich höhere Leistung als ein Pentium. Da "der Kunde" im Allgemeinen aber eher auf die Taktate schaut und weniger auf die tatsächliche Leistung (die auch schwieriger zu vergleichen ist), hat es ein Prozessor mit weniger Takt natürlich schwerer am Markt. (Analog sagt die PS-Zahl eines Autos auch nicht unbedingt viel über das maximale Drehmoment und dessen Verlauf aus.)
Deshalb haben AMD und Cyrix auf ein Pentium-Rating zuückgegriffen, das die Leistung ihrer Prozessoren im Vegleich zu einem Pentium angibt (bzw. angeben soll). Ein K5-PR166 ist zum Beispiel nur mit 133 MHz getaktet, bringt aber (zumindest im Integer-Beeich) die Leistung eines Pentium-166.
Überwachung eines Programmes mit Hilfe von MSRs. So kann man zum Beispiel die Anzahl der Zugriffe auf eine Speicherstelle o.ä. messen.
Da ein Befehl im Prozessor veschiedene Be- bzw. Verarbeitungsstufen durchlaufen muß, parallelisiert man diese Stufen. So können gleichzeitig Befehle geladen, dekodiert, evtl. in RISC-Instruktionen zerlegt und ausgeführt werden (was alles Zeit benötigt). Ein K6 hat zum Beispiel eine sechsstufige Pipeline, die Befehle "fließen" also regelrecht durch den Prozessor und werden nicht stoßweisse abgearbeitet wie bei älteren Modellen. Beim Pentium werden die parallelen Funktionseinheiten auch Pipelines genannt (U- und V-Pipeline).
Einfache Befehle (z.B. Laden, Speichern und Addieren) können vom Prozessor schneller ausgeführt als vom Speicher über den Datenbus geliefert werden. Deshalb besitzen alle x86-kompatiblen Prozessoren eine sog. Prefetch-Queue, in die einige Byte des auszuführenden Programms im Voraus gelesen werden. Dadurch wird in der Regel ein kontinuierlicher Befehlsstrom erreicht.
Beim parallelen Ausführen von Befehlen und Out-of-Order Execution soll manchmal oder öfters ein Register beschrieben werden, das vorher noch als Quellregister für einen anderen Befehl dient. Damit es nicht zu Konflikten kommt und die Integrität der Daten gewährleistet bleibt, benutz der Prozessor dann ein Schattenregister (der K6 hat zum Beispiel 48 davon), um den Befehl vorzeitig ausführen zu können und benennt dieses Schattenregister im Nachhinein um.
Vereinfacht dargestellt:
mov eax,[4*ebx] ; BX wird verwendet -> parallele Addition wäre nicht
; möglich, weil Inhalt von BX benötigt wird
add ebx,ecx ; Addition wird mit einem Schattenregister ausgeführt
; -> keine Verzögerung
Reduced Instuction Set Computing. RISC bezeichnet ein Prozessorkonzept, das auf Festverdrahtung alle Befehle setzt. Im Gegensatz zu CISC gibt es mehr Register, feste Befehlslängen und die Befehle werden meist in einem Takt abgearbeitet. Ein RISC-Prozessor ist stark auf den gut optimierenden Compiler angewiesen.
RISC begann bei x86-Prozessoren ab dem 486 bzw. Pentium eine Rolle zu spielen; man fing an, Befehle fest zu verdrahten, mehrstufige Pipelines zu verwenden etc. x86 ist normalerweise eine CISC-Architektur.
Als Symmetrisches Multiprozessing bezeichnet man die Verwendung von mehreren gleichen Prozessoren in einem System. Diese Prozessoren teilen sich den gleichen Hauptspeicher und können dann - Unterstützung vom Betriebssystem vorausgesetzt - mehrere Tasks gleichzeitig ausführen.
Alle x86-CPUs ab dem 586 bieten Unterstützung für SMP, leider gibt es allerdings für die CPUs von AMD und Cyrix keine Chipsätze mit SMP-Unterstützung, da Intel seine Implementation patentiert und bisher auch die Chipsätze alle selbst entwickelt hat.
Asymmetrisches Multiprozessing verwendet verschiedene Prozessortypen gleichzeitig, wie z.B. ein PowerMac oder Amiga mit einer PC-Karte.
RISC-Feature des Pentium-Pro, K6, M-II und Pentium-II. In Zusammenhang mit einer Branch Prediction wird bereits der Code hinter einem Sprung ausgeführt, ohne daß bekannt ist, ob der Sprung auch wie vorhergesagt ausgeführt wird. War die Vorhersage korrekt, ist schon ein Befehl hinter dem Sprung in Bearbeitung oder gar ausgeführt. Eng verwandt mit Out-of-Order Execution.
"3DNow!" ist AMDs Antwort auf Intels MMX. "3DNow!" soll 3D-Grafik und Rendering mittels spezieller, MMX-ähnlicher Befehle deutlich beschleunigen. Zu diesen Befehlen gehört zum Beispiel eine Low-Precision-Division, die nur 3 Takte im Gegensatz zu 70 und mehr für eine nomale Division benötigt. "3DNow !" wird im neuen AMD K6-2, im Cyrix Cayenne und im IDT C6+ integriert sein.
Ein MSR, daß Intel mit dem Pentium eingeführt hat. Der 64-Bit TSC zählt jeden einzelnen Prozessortakt, kann also hervorragend zur prozessornahen Optimierung von Programmen benutzt werden.
AMD hat seit dem K5 einen TSC, Cyrix erst seit dem 6x86MX.