Es gibt noch einen weiteren Cache, der als Second-Level-Cache L2-Cache bezeich-net wird und entweder extern auf dem Mainboard Sockel-7-Typen realisiert wird oder aber ebenfalls in der C
Trang 1Bild 8.34: Das Speicherprinzip mit Cache; die langsamste Einheit ist die Festplatte, die über die
größte Kapazität verfügt, die schnellste der 1-Level-Cache, der demgegenüber die klein-ste Speicherkapazität besitzt
Der Cache-Speicher ist, wie in den vorigen Kapiteln bereits angesprochen, für die Leistung eines PC von großer Bedeutung Hierfür sei ein praktisches Beispiel ge-nannt: Wird der Cache-Speicher bei einer 100-MHz-Pentium-CPU abgeschaltet und
dann ein Benchmark-Programm wie Sysinfo (Norton Commander, Symantec)
ange-wendet, kann man feststellen, dass die Ergebnisse etwa gleichauf liegen mit dem dort angegebenen Referenztyp Compaq 386/33 MHz Leider bieten weder die meis-ten PC-Testprogramme noch die Systeminformationen der Betriebssysteme (Win-dows 95) einen genauen Aufschluss über die Cache-Speicher-Konfiguration, so dass
es nötig ist, sich auch mit dieser Materie etwas näher zu beschäftigen
Ab einem 80486DX-Prozessor sind ein 8 Kbyte großer Cache-Speicher und der dafür notwendige Controller gleich mit eingebaut Dieser interne Cache-Speicher wird als
First-Level-Cache (1-Level, L1-Cache) bezeichnet und besitzt, je nach CPU-Typ, eine
unterschiedliche Kapazität, wie es in den Kapiteln zu den einzelnen CPUs beschrie-ben ist
Der Cyrix-Typ 6x86MX bietet beispielsweise einen 1-Level-Cache mit einer Kapazi-tät von 64 Kbyte Bei den Cyrix-CPUs ist der 1-Level-Cache nicht wie bei den ande-ren Prozessoande-ren in einen für Daten und einen für Befehle aufgeteilt, sondern wird
für beide Typen gleichermaßen verwendet, was als unified bezeichnet wird Dies
ist bei Cyrix-CPUs etwas problematisch, da das BIOS speziell diese Art der Cache-Auslegung unterstützen muss, damit der Speicher korrekt eingesetzt werden kann Cyrix (jetzt VIA) stellt daher für Systeme, die den Cache (noch) nicht in der vor-gesehenen Art und Weise initialisieren können, ein spezielles Treiberprogramm zur Verfügung, das diese Funktion übernimmt Es befindet sich neben einigen anderen CPU-Tools auf der diesem Buch beiliegenden CD
Es gibt noch einen weiteren Cache, der als Second-Level-Cache (L2-Cache)
bezeich-net wird und entweder extern auf dem Mainboard (Sockel-7-Typen) realisiert wird oder aber ebenfalls in der CPU (AMD-K6-3) bzw im CPU-Modul (Pentium II) inte-griert ist Der PentiumPro verfügte als erster PC-Mikroprozessor auch über einen
Trang 2integrierten Second-Level-Cache (Pipelined Burst) mit einer Kapazität von 256 oder
512 Kbyte, der mit dem vollen CPU-Takt arbeitet, was die Performance gegenüber einem Pentium-Prozessor maßgeblich steigert Der Pentium II besitzt ebenfalls ei-nen integrierten Second-Level-Cache, der allerdings nur den halben CPU-Takt ver-wenden kann, während bei Athlon, Celeron und Pentium III-Coppermine der L2-Cache auch mit dem vollen CPU-Takt arbeitet
Die Steigerung der Prozessorleistung von einer Generation zur nächsten ist viel-fach nur einem vergrößerten (internen) Cache zu verdanken und eher weniger anderen neuen Features, die bei der Programmierung entsprechend eingesetzt wer-den müssen, damit sie »Früchte tragen«, was aber oftmals unterbleibt, wie es bei-spielsweise bei der mangelhaften MMX-Unterstützung bei aktuellen Programmen der Fall ist
8.5.1 Cache-Betriebsarten
Prinzipiell sind zwei verschiedene Cache-Betriebsarten möglich: Write Through und Write Back In der ersten Betriebsart werden die Daten vom Mikroprozessor sowohl
in das DRAM als auch gleichzeitig in den Cache geschrieben (durchschreiben, write through)
Beim Lesen der Daten überprüft der Cache-Controller dann anhand eines Vergleichs der im DRAM abgelegten Adressen mit denen im Cache-Tag-RAM, ob sich die Daten bereits im Cache befinden Ist dies der Fall (Cache Hit), wobei die Wahrscheinlich-keit bis zu 95% betragen kann, erfolgt ein schneller Lesezugriff aus dem Cache-RAM, andernfalls werden die Daten aus dem langsameren DRAM gelesen (Cache Miss)
Mit Hilfe des Cache-Tag-RAMs, das in der Speicherkapazität meist kleiner ausfällt als die eigentlichen Cache-RAMs, bestimmt der Cache-Controller generell, ob ein
Cache Hit oder ein Cache Miss vorliegt Das TAG-RAM enthält gewissermaßen das
Inhaltsverzeichnis der Cache-Belegung
Die zweite Cache-Arbeitsweise wird als Write Back bezeichnet, bei der eine Lese-operation im Prinzip wie beim Write Through Cache absolviert wird Bei einer
Schreib-operation hingegen werden zuerst die Daten im Cache aktualisiert, nicht aber
au-tomatisch die im Hauptspeicher Der Cache-Controller merkt sich in einem Dirty-Bit,
dass der Cache-Inhalt verändert wurde und nicht mehr mit dem Inhalt der Haupt-speichers übereinstimmt
Dirty bedeutet demnach, dass keine datentechnische Übereinstimmung zwischen
DRAM und Cache gegeben ist, und nur in diesem Fall werden dann nachfolgend
auch die Daten für den Hauptspeicher aktualisiert Ein Write Back Cache ist dem-nach in puncto Performance einem Write Through überlegen, da die Zeit für
Schreib-zugriffe minimiert wird und nur dann Daten aktualisiert werden, wenn sie sich
auch verändert haben Im BIOS-Setup eines PC sollte daher – wenn möglich – Write Back eingestellt werden.
Ob ein PC ausschließlich im Write-Through- oder ebenfalls im Write-Back-Modus
arbeiten kann, hängt von mehreren Faktoren ab: Von der verwendeten CPU, vom Aufbau des externen Caches, vom Chipsatz des Mainboards und vom BIOS des PC
Standardmäßig kann erst eine Pentium-CPU im leistungsfähigeren Write-Back-Mo-dus arbeiten Bei 486DX-PCs hängt es davon ab, wie der externe Cache vom
Main-boardhersteller implementiert wurde, und nur mit dem L2-Cache ist dann diese Betriebsart möglich Aus diesem Grunde gibt es einige PCs, bei denen eine Um-schaltung im BIOS-Setup möglich ist, und andere, bei denen es unmöglich ist
Trang 3○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○
Wenn es möglich ist und im BIOS-Setup hierfür ein entsprechender Menüpunkt vor-handen ist, sollte die Write-Back-Betriebsart für den Cache eingeschaltet werden Ab
○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○
Pentium-CPUs wird standardmäßig der (bessere) Write-Back-Modus verwendet.
Es existieren aber auch bereits 486-Prozessoren wie der 486DX-66 der Firma Cyrix und einige 486-CPUs der Firma Intel (erkennbar am Kürzel WB in der
Beschrif-tung), die von Haus aus Write Back unterstützen 386-PCs können meist
ausschließ-lich nur die Write-Trough-Betriebsart verwenden
8.5.2 Second Level Cache – L2-Cache
Der externe Cache-Speicher (L2-Cache) verfügt in der Regel über eine Kapazität von
256 Kbyte bis hin zu 1 Mbyte Die Kapazität ist also wesentlich geringer als die der üblichen DRAM-Speicherauslegung Das Prinzip des Cache-Speichers ist bereits aus den 60-iger Jahren bekannt Man macht sich dabei die Tatsache zunutze, dass in einem Programm viele Aktionen sequentiell oder in Schleifen durchlaufen werden, und da bestimmte Programmteile oder Datenvariablen, die vielfach nicht sehr speicher-intensiv sind, immer wieder benötigt werden, sind ganz beachtliche Steigerungen der Verarbeitungsgeschwindigkeit die Folge, wenn sie aus dem schnellen Cache zur Verfügung stehen
Bei relativ kleinen Cache-Speichergrößen (32 Kbyte) ist es in den meisten Fällen möglich, den Cache mit entsprechenden Bausteinen auf dem Mainboard aufzurü-sten, was sich für eine möglichst gute PC-Performance durchaus empfiehlt In der folgenden Tabelle ist angegeben, wie die Cache-Bausteine für die üblichen Speicher-größen organisiert sein müssen und wie viele man davon jeweils benötigt
Tabelle 8.16: Übliche Bestückungsmöglichkeiten von Cache-Speichern
Einige Hersteller haben aus Kostengründen den Write-Back-Cache-Speicher leider
so realisiert, dass das Dirty-Bit nicht verarbeitet werden kann Dadurch wird ein Baustein eingespart (TAG-RAM) und der Controller kann nicht erkennen, ob Daten
im Hauptspeicher aktualisiert werden müssen oder nicht Daher müssen, wie beim Write-Through-Cache, immer sowohl Daten in den Cache als auch in den Hauptspei-cher geschrieben werden, wodurch sich dann kein merkliHauptspei-cher Vorteil gegenüber Write-Through ergibt Eine Nachrüstung dieses Bausteins ist immer dann sinnvoll, wenn hierfür eine leere Fassung auf dem Mainboard vorhanden und im BIOS-Setup eine Umschaltung auf Write-Back-Cache möglich ist
Trang 4○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○
Bei Systemen, die nicht mindestens über einen L2-Cache von 256 Kbyte verfügen, ist eine entsprechende Erweiterung sinnvoll Eine Cache-Aufrüstung von 256 auf 512
○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○
Kbyte bringt erst ab einer RAM-Größe von 32 Mbyte einen Performance-Gewinn.
Bild 8.35: Bei diesem 486-Mainboard wurde beim Aufbau des Cache-Speichers gespart und das
TAG/DIRTY-RAM nicht bestückt, welches hier aber im freien Sockel problemlos nachgerü-stet werden kann
Die Größe des Cache-Speichers orientiert sich an der installierten Größe des DRAMs, damit ein entsprechend großer DRAM-Bereich zu »cachen« ist Wie es im Kapitel bei den Chipsets zu lesen ist, hängt die Cacheable-Area vom Chipsatz selbst und auch vom eingebauten TAG-RAM ab
Der Intel-430HX-Chipsatz kann 512 Mbyte »cachen«, der (neuere) Intel 430TX hinge-gen nur 64 Mbyte Wird auf einen Speicherbereich zugegriffen, der sich außerhalb der Cacheable-Area befindet, bedeutet dies, dass die Daten direkt aus dem (langsa-meren) DRAM zu verarbeiten sind Dies hat aber zur Folge, dass der PC langsamer arbeitet, als wenn er über entsprechend weniger DRAM verfügen würde, da die Cache/ DRAM-Verarbeitung (die Daten liegen teilweise im Cache, teilweise aber im DRAM) unnötigerweise Verarbeitungszeit beansprucht Es hat demnach absolut keinen Sinn, einen PC mit 430TX-Chipsatz mit mehr als 64 Mbyte auszustatten
Tabelle 8.17: Die Cacheable-Area wird von der Breite des TAG-RAMs bestimmt
Trang 5Aber selbst wenn der Chipsatz den maximal zu installierenden DRAM-Bereich zu
»cachen« vermag, bedeutet dies noch nicht, dass dies auch in der Praxis möglich
ist, denn das TAG-RAM muss über eine bestimmte Datenbreite verfügen Die
Main-board-Hersteller sparen dabei gern ein paar Mark ein und verwenden ein TAG-RAM, welches wieder eine Limitierung der Cacheable-Area zur Folge hat Welchen Einfluss die Breite des TAG-RAMs auf die Cacheable-Area hat, zeigt die folgende Tabelle
Bild 8.36: Die Cache-Größe, wobei hier unterschiedliche Cache-RAM-Bausteine zum Einsatz
kom-men können, wird bei diesem Mainboard mit Jumpern festgelegt
Trang 6Bei einigen Mainboards – beispielsweise der Firma Gigabyte – ist es möglich, das standardmäßig vorhandene 8-Bit-TAG-RAM gegen ein 11-Bit-TAG-RAM zu ersetzen, damit der maximale Bereich von 512 Mbyte zu »cachen« ist
○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○
Es kommt leider immer wieder vor, dass beim Aufbau des 2-Level-Cache-Speichers gespart wird und das TAG-RAM aus Kostengründen nicht bestückt wird In den meis-ten Fällen ist hierfür aber noch freier Sockel vorhanden, so dass man diesen Bau-stein auch selbst nachrüsten kann.
Bei Mainboards wird nicht immer das TAG-RAM in der erforderlichen Bit-Breite einbaut, welches – je nach Mainboardtyp und Chipsatz – möglicherweise durch ein
ge-○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○
eigneteres zu ersetzen ist.
Bild 8.37: Auf einigen aktuellen Mainboards ist der 2-Level-Cache-Speicher direkt aufgelötet und
kann weder um- noch aufgerüstet werden; die Zugriffszeit des Speichers beträgt hier
6 ns (erkennbar an der -6-Bezeichung, nicht zu verwechseln mit der Bezeichnung wie sie bei DRAMs üblich ist und dann für 60 ns stehen würde)
Auf älteren Mainboards findet man für die Festlegung der L2-Cache-Größe oftmals einige Jumper, die der Mainboard-Elektronik die jeweilige Konfiguration signali-sieren Das folgende Bild zeigt die Bestückungsvarianten und Jumperstellungen für ein 486-Mainboard von der Firma Asus
Trang 78.5.3 Cache-Speicher-Implementierungen
Prinzipiell kann der L2-Cache-Speicher auf üblichen PC-Mainboards in vier Varian-ten realisiert sein:
> Asynchroner Cache
> Synchroner Cache
> Cache mit Burst SRAMs
> Cache mit Pipelined Burst SRAMs
Die Cache-RAMs sind wie die DRAMs und SIMMs in Bänken organisiert und arbeiten asynchron zum Prozessortakt mit Enable-Signalen Diese Cache-Konfiguration
be-zeichnet man daher als asynchronen Cache (A-Cache).
Synchrone statische RAMs (Synchronous SRAMs) können demgegenüber mit schnel-leren Zugriffszeiten (< 20 ns) aufwarten und sind bei einigen Mainboards optional – statt der A-Cache-Bausteine – zu bestücken Sie arbeiten mit einem zur CPU synchronen Takt, was gegenüber den asynchronen SRAMs zu einer Einsparung von Verzögerungszeiten führt
Burst-SRAMs sind, wie es die Bezeichnung Burst signalisiert, in der Lage, nach der
Übermittlung der Startadresse die darauffolgenden Adressen selbst zu generieren Sie benötigen also nicht für jede Datenübertragung zuvor eine »neue« Adresse von der CPU, was grundsätzlich eine schnellere Datenübertragung gegenüber den asyn-chronen SRAMs erlaubt
In (fast) allen neueren PCs sind die Pipelined-Burst-SRAMs zu finden, die gegenüber
den Burst-SRAMs mit dem Vorteil aufwarten können, dass sie bei mehreren aufein-ander folgenden Burst-Zugriffen eine quasi überlappende Übertragung der Start-adresse und der ersten Daten ermöglichen, wodurch ein Zyklus eingespart wird Die Besonderheit der Pipelined-Burst-SRAMs ist im Prinzip nichts anderes als ein zusätzliches Datenausgangsregister, welches das Memory-Array von den Ausgangs-treibern entkoppelt
Die SRAMs für den L2-Cache sind nur bei den älteren Mainboards im DIP-Gehäuse realisiert, während alle neueren SRAMs (Pipelined Burst) im PLCC- oder auch TQFP-Gehäuse gefertigt und direkt auf das Mainboard gelötet werden, was einen erfor-derlichen Austausch oder eine Erweiterung erschwert oder auch unmöglich macht Gewissermaßen eine Ausnahme ist im Bild 7.32 gezeigt Hier kann der asynchrone Cache (rechts oben im Bild) gegen synchrone SRAMs, für die vier Sockel (über der Pentium-CPU) vorgesehen sind, ausgetauscht werden
Bei neueren Mainboards wird die vorhandene Cache-Speichergröße und der einge-setzte Typ automatisch erkannt Im BIOS-Setup ist der L2-Cache – wie meist auch der L1-Cache – an- oder abzuschalten und bei einigen Versionen lassen sich auch noch einige Timing-Parameter konfigurieren
Trang 8Bild 8.38: Einstellungen für die beiden Cache-Speicher, die wie hier bei einer Athlon-CPU –
entge-gen der Bezeichnung External Cache – beide im Prozessor integriert sind, finden sich im
»Advanced BIOS Features Setup«
Bild 8.39: Dieses Mainboard ist mit Pipelined-Burst-SRAMs (UMC 3232AF-7) bestückt und daher
fehlt hier der asynchrone Cache (Lötpunkte unter den UMC-Chips) Rechts ist das TAG-RAM für den Cache von 256 Kbyte zu erkennen
Auch bei neueren Mainboards ist immer darauf zu achten, ob ein TAG-RAM vorhan-den ist und über welche Kapazität bzw Bit-Breite es verfügt Bei einem in der CPU integrierten L2-Cache (ab Pentium II) muss man sich darüber – außer der Einschal-tung im BIOS-Setup –, keine weiteren Gedanken machen und die Cacheable-Area beträgt bei aktuellen CPUs (Pentium III, Athlon) auch (mindestens) der maximal
zu bestückenden DRAM-Speichergröße
Trang 98.5.4 SRAMs und allgemeine Speicheridentifizierung
Als RAM-Bausteine werden für den Cache-Speicher grundsätzlich statische RAMs (SRAMs) verwendet Ihre Zugriffszeiten liegen typischerweise bei 6-25 ns Wie die DRAMs sind auch die SRAMs bei einer Matrix aus Zeilen und Spalten aufgebaut Die Zeilen- und Spaltenadressen werden jedoch nicht nacheinander, sondern gleichzei-tig als eine einzige Adresse gesendet Die Aufteilung erfolgt innerhalb des Bau-steins, wodurch sich die Peripherie zu ihrer Ansteuerung vereinfacht
Die statischen RAMs bestehen aus einer Vielzahl einzelner Flip-Flops, wobei sich eine Speicherzelle typischerweise aus vier bis sechs Transistoren zusammensetzt Bei einem High ist das Flip-Flop gesetzt, bei einem Low zurückgesetzt Die
folgen-de Tabelle enthält eine kurze Beschreibung folgen-der einzelnen SRAM-Signale
A0-Ax Die Anschlüsse für die Adressleitungen
/CE Chip Enable, Selektierung des Bausteins
DQx, I/Ox Datenbus für Dateneingang/Datenausgang
NC No Connection Diese Pins sind nicht angeschlossen
/OE Output Enable schaltet die Daten beim Lesen auf die Ausgänge
des Bausteins
Vcc oder Vdd Versorgungsspannung (5 V)
Vss oder GND Masseanschluss, Ground
/WE Write Enable, Eingang für den Schreibzugriff
Tabelle 8.18: Die Signalbedeutung bei SRAMs
Trang 10Bild 8.40: Der interne Aufbau eines SRAMs vom Typ 32 Kbit x 8 Bit
Für die Adressierung eines 43258-SRAMs (32768 x 8 Bit) werden 15 Adressleitungen benötigt (A0-A14) Der SRAM-Baustein wird durch ein Low am /CS-Eingang (Chip Select) aktiviert Die bidirektionalen Datenleitungen sind wie bei den 4 Bit breiten DRAMs mit I/Ox oder auch DQx bezeichnet Mit einem aktiven (Low) /WE-Signal (Write Enable) werden Daten zum SRAM geschrieben Die 8 Bit breiten SRAMs besitzen für die Freigabe des Ausgangstreibers das Eingangssignal /OE (Output Enable)