Cache Speicher |
Zurück zur vorherigen Seite |
Beim Caching versucht man die Vorteile von Statischem RAM (SRAMs = hohe Geschwindigkeit) und Dynamischem RAM (DRAM = günstiger Preis) zu kombinieren, um ein möglichst effektives Speichersystem zu erreichen. Zwischen der CPU und dem Hauptspeicher DRAM ist ein schneller Cache-SRAM geschaltet, der die häufig benutzten Daten zwischenspeichert und der CPU viel schneller zur Verfügung stellt. Gesteuert wird der ganze Vorgang durch einen Cache-Controller, der verschiedene Schreibstrategien implementieren kann.
On-Chip- und Second-Level-Caches
CPUs ab dem 80486 besitzen einen Cache, der auf dem Prozessorchip selbst integriert ist. Dieser Cache wird On-Chip Cache oder kurz L1-Cache genannt und hat z.B. beim Intel 80486 DX 4-100 eine Größe von 16KByte. Selbst dieser kleine Cache bringt eine recht ansehnliche Geschwindigkeitssteigerung, vor allem für das Einlesen von CPU-Code. Neben dem L1-Cache befindet sich auf dem Mainboard noch ein zusätzlicher Cache, der Second-Level Cache oder kurz L2-Cache genannt wird. Gängige Mainboards wiesen in der Regel Platz für einen L2-Cache von 128KByte bis 512KByte SRAM auf, der aber zum Teil aus Kostengründen nicht komplett bestückt war und nachgerüstet werden konnte.
Arbeitsweise
Wenn die CPU Daten liest, gibt sie gewöhnlich die entsprechende Speicheradresse aus. Hier ist aber der Cache-Controller zwischen den Prozessor und den Hauptspeicher geschaltet. Er ermittelt, ob die gewünschten Daten im Cache-SRAM vorliegen. Ist dies der Fall, so spricht man von einem Cache-Hit oder Cache-Treffer. Sind die Daten dagegen nur im Hauptspeicher vorhanden, bezeichnet man das als Cache-Miss oder Cache-Fehltreffer. Im ersten Fall liest der Cache-Controller die Daten aus dem schnellen Cache-Speicher und gibt sie an die CPU weiter. Das geschieht normalerweise ohne Wait State, d.h. mit der maximalen Busgeschwindigkeit. Der Lesezugriff wird vom Cache vollkommen abgefangen, ohne dass die CPU dies bemerkt. Tritt dagegen ein Cache-Miss auf, muss der Cache-Controller die Daten zuerst aus dem Hauptspeicher lesen, also den Lesezugriff der CPU zum Hauptspeicher durchschalten.
Zwischenzeitlich haben die Prozessorhersteller erkannt, dass die Größe des Chache Speichers auch ein Verkaufsargument sein kann. Daher finden sich auf den heutigen CPUs zwischen 128 KByte und 512 KByte Cache. Einige leistungsstärkere CPUs bringen gar zwischen 1 MB (Xenon) und vier MB mit (R10.000). Diese laufen in der Regel nicht mehr unter Windows als Betriebssystem.
|
Für den Servereinsatz sehen die Leistungsdaten etwas anders aus. Hier hat Intel die mit den Pentium Pro und Xeon Prozessoren leistungsstarke CPUs zur Hand.
|
Cache Strategien |
Zurück |
Schreibt die CPU Daten, so ermittelt der Cache-Controller, ob sich die Daten auch im Cache-SRAM befinden. Ist dies der Fall, so werden die Daten von der CPU in den Cache-SRAM geschrieben. Für die weitere Vorgehensweise des Cache-Controllers gibt es nun verschiedene Strategien: Write-Through und Write-Back.
Write-Through
Der einfachere Fall ist die Write-Through-Strategie. Ein Schreibvorgang der CPU führt hier selbst bei einem Cache-Hit stets zu einer Übertragung der Daten zum Hauptspeicher; alle Schreibvorgänge werden also zum Hauptspeicher durchgeschaltet. Natürlich wird auch der entsprechende Eintrag im Cache beschreiben und damit aktualisiert. Write-Through hat den Nachteil, dass alle Schreibvorgänge zum langsamen Hauptspeicher durchgeschaltet werden müssen.
Write-Back
Ein Write-Back Cache sammelt praktisch alle Schreibvorgänge und aktualisiert nur die Einträge des Cache, nicht aber den Inhalt des Hauptspeichers. Erst nach einer entsprechenden Anweisung werden die Daten in den Hauptspeicher kopiert, um dort die Daten zu aktualisieren. Dies kann z.B. der Fall sein, wenn die Daten im Cache schon längere Zeit nicht mehr gebraucht wurden und der Platz im Cache dann von wichtigeren Daten beansprucht wird. Der Write-Back Cache ist dem Write-Through Cache aufgrund der höheren Geschwindigkeit überlegen.
Was ist Cache |
Zurück |
Ein Cache ist ein relativ kleiner Hochgeschwindigkeitsspeicher, üblicherweise SRAM, der häufig benötigte Daten zwischen der CPU und dem Hauptspeicher puffert. Die CPU kann auf Daten im Cache sehr viel schneller zugreifen als auf Daten aus dem Hauptspeicher. Ein kleiner Cache-Speicher kann daher die Performance eines Computers ohne große zusätzliche Kosten erheblich verbessern. Bei Cache wird - je nach Position des Speichers im Datenstrom - zwischen verschiedenen Levels unterschieden.
Was ist Level 0 Cache ?
Entkoppelt den
Datenstrom der unterschiedlichen Recheneinheiten innerhalb der CPU. Seine Größe
liegt bei etwa 1 Byte bis 128 Byte.
Was ist Level 1 Cache ?
Entkoppelt den
Datenstrom innerhalb der CPU von der Außenwelt, Größe von wenigen Bytes (128)
bis zu mehreren KBs.
Was ist Level 2 Cache ?
Entkoppelt den Datenstrom der CPU vom Memory Bus, an dem der Hauptspeicher
angeschlossen ist. Größe von 256 KBs bis zu mehreren MB.
Was ist Level 3 Cache ?
Entkoppelt ggf. bei Mehrprozessorsystemen den separaten Systembus vom Memory
Bus.
Paritätsprüfung und ECC |
Zurück |
|
Unter einer Paritätsprüfung versteht man in der EDV ein Prüfverfahren mit dessen man Fehler bei Datenübertragungen erkennen kann. Paritätsprüfungen setzt man beim Arbeitsspeicher ein und bei Festplatten. Sinn und Zweck dabei ist es zu verhindern dass der Rechner mit fehlerhaften Daten arbeitet. Um eines klar zu stellen, bei der Paritätsprüfung wird nur erkannt, dass ein Fehler vorliegt und dann der Rechner angehalten. Eine Korrektur der fehlerhaften Daten kann nicht erfolgen. Das erfolgt bei der Weiterentwicklung, dem so genannten ECC. Die ist die Abkürzung für "Error Checking and Correcting". Dabei wird beim Speicher intern durch ein Prüfverfahren erkannt wie der Speicherwert lauten müsste und dann korrigiert. Sollte der Schaden zu schwer sein und eine Korrektur nicht mehr möglich sein, so wird wie bei der Paritätsprüfung der Rechner angehalten.
|
|
|
Zurück |