Glossar
Inhalt
Ein Assoziativer Cache besitzt, im Gegensatz zu einem Direct-
Mapped-Cache, mehrere Cache-Lines, die sich auf eine Gruppe
von Hauptspeicherstellen beziehen. Die Performance des Cache
leidet dadurch weniger unter Programmen, die ihre Daten im
Hauptspeicher verstreut ablegen.
Die Branch Prediction Unit (BPU) ist Bestandteil vieler moderner
CPUs. Sie errechnet die möglichen Sprungziele von bedingten und
unbedingten Verzweigungen beim ersten Durchlauf einer Schleife.
Die CPU muß bei richtiger Vorhersage nicht mehr warten, welche
Sprungrichtung tatsächlich vorliegt.
Die Cache-Line ist die kleinste Verwaltungseinheit innerhalb
des Cache. Je nach CPU- und Cache-Typ sind Cache-Lines
von 64 Bit bis hin zu 512 Bit Möglich.
Datenkohärenz bedeutet, daß die Daten innerhalb eines Speichersystems
konsistent sind. Dies ist besonders bei Multiprozessor-Systemen mit
gemeinsarn genutztem Hauptspeicher (Shared Memory) und bei gestaffelten
Cache ein kritischer Bereich. Hat etwa eine CPU Teile des Hauptspeichers
in ihren Cache geladen, so muß ein Datenkohärenz-Protokoll wie etwa
MESI sicherstellen, daß keine andere CPU diese Daten manipuliert, ohne
den ersten Prozessor darüber zu informieren.
Ein Direct-Mapped-Cache ist so organisiert, daß er direkt auf den
Hauptspeicher abgebildet ist. Das heißt, eine Cache-Line bezieht
sich auf mehrere Speicherbereiche, die im Abstand der Cache-Größe
im Hauptspeicher liegen.
Standardisiertes Datenkohärenz-Protokoll.
MESI steht für ,Modified',
,Exclusiv', ,Shared' und ,Invalid' und beschreibt den Zustand einer
Cache-Line.
Der Transition Look Aside Buffer (TLB) ist ein Bestandteil der
Memory-Management-Unit. Er speichert die physikalische Lage
der aktuell genutzten Speicherseiten zwischen. Ohne TLB
müßte die CPU bei jedem Speicherzugriff aufs neue die Zuordnung
zwischen logischem und physikalischem Adreßraum bestimmen.
Die Pipeline einer CPU Ähnelt einem Fließband, die einzelnen
Verarbeitungsstufen entsprechen den Bearbeitungsstationen am
Band. Im einfachsten Fall sind dies drei Stufen: Befehl laden,
Befehl verarbeiten, Resultat zurückschreiben. Moderne Prozessoren
haben allerdings erheblich mehr Stufen in ihrer Pipeline. Sie wollen
dadurch erreichen, daß jeder Befehl eine Stufe in nur einem Takt durchläuft.
Kann bei jedem Takt ein neuer Befehl in die Pipeline geladen
werden, so spricht man von Fully Pipelined. Ist die Pipeline
in der Lage, eine Stufe in einem halben Takt zu bewältigen, kann
sich die CPU mit dem Attribut Superpipelined schmücken.
Ein superskalarer Prozessor zeichnet sich dadurch aus, daß er
in der Lage ist, mehrere Befehle auf verschiedene Verarbeitungs.
einheiten, etwa Integer-, Load/Store- und Floatingpoint-Unit,
zu verteilen, in denen die Instruktionen parallel verarbeitet
werden.
krupp@unix-ag.uni-kl.de