IT-Academy Logo
Sign Up Login Help
Home - Hardware - Allgemeines - Cache Speicher



Cache Speicher

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.


Autor: Simon Ostermann (D-Fred)
Datum: 22-05-2003, 21:50:57
Referenzen: keine
Schwierigkeit: Profis
Ansichten: 6041x
Rating: 8 (1x bewertet)

Hinweis:

Für den hier dargestellte Inhalt ist nicht der Betreiber der Plattform, sondern der jeweilige Autor verantwortlich.
Falls Sie Missbrauch vermuten, bitten wir Sie, uns unter missbrauch@it-academy.cc zu kontaktieren.

[Druckansicht] [Als E-Mail senden] [Kommentar verfassen]



On-Chip- und Second-Level-Caches

CPU's 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.

Heutige moderne wie Pentium und AMD

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 CPU's bringen gar zwischen 1 MB (Xenon) und vier MB mit (R10.000). Diese laufen in der Regel nicht mehr unter Windows als Betriebssystem.

Prozessor Frequenz FSB Takt Slot/Sockel L1 Cache L2 Cache Informationen
AMD Duron 1.000 MHz 100 Mhz - / 462 128 kByte 64 kByte 3D Now
AMD Athlon 650 MHz 100 MHz A / - 128 kByte 512 kByte 3D Now
AMD Athlon 1.300 MHz 100 MHz A / - 128 kByte 256 kByte 3D Now
AMD Athlon MP 1.400 MHz 133 MHz - / 462 128 kByte 256 kByte 3D Now
AMD Athlon XP 1.800 MHz 133 MHz - / 462 128 kByte 384 kByte 3D Now
Intel Celeron 900 MHz 100 MHz - / 370 32 kByte 128 kByte SSE
Intel Pentium III 1.000 MHz 133 MHz - / 370 32 kByte 128 kByte SSE
Intel Tualin 1.200 MHz 133 MHz - / 370 32 kByte 256 kByte SSE
Intel Pentium 4 1.500 MHz 100 MHz - / 423 185 kByte 256 kByte SSE 2
Intel Pentium 4 2.000 MHz 100 MHz - / 478 185 kByte 256 kByte SSE 2
Intel Pentium 4 2.200 MHz 133 MHz - / 478 185 kByte 256 kByte SSE 2


Für den Servereinsatz sehen die Leistungsdaten etwas anders aus. Hier hat Intel die mit den Pentium Pro und Xeon Prozessoren leistungsstarke CPU's zur Hand.

Intel PIII
  • bis 1,0 GHz 256 KB-L2-Cache,
    16 KB Level-1-Cache, 0 KB Level 3 Cache
  • bis 1,4 GHz 512 KB-L2-Cache,
    16 KB Level-1-Cache, 0 KB Level 3 Cache
Intel Xeon
  • 1,8 und 2,2 GHz
  • Level-1-Cache Execution trace Cache
  • Level-2-Cache 512 KB Transfer Cache
  • Level-3-Cache 0 KB
Intel Xeon MP CPU
  • 1,4 - 1,6 GHz
  • Level-1-Cache Execution trace Cache
  • Level-2-Cache 256 KB Transfer Cache
  • Level-3-Cache 512 KB bis 1 MB
Intel Itanium Prozessor
  • Level-1-Cache 32 KB
  • Level-2-Cache 96 KB Transfer Cache
  • Level-3-Cache 2, 4 MB (später 4 MB)


Cache Strategien

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

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

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.

Ungerade Parität Gerade Parität
Schritt 1 Das Paritätsbit wird auf 1 gesetzt, oder eingeschaltet, wenn das zugehörige Datenbyte eine gerade Anzahl von Einsen enthält. Andernfalls wird das Paritybit auf 0 gesetzt Das Paritätsbit wird auf 1 gesetzt, oder eingeschaltet, wenn das zugehörige Datenbyte eine ungerade Anzahl von Einsen enthält. Andernfalls wird das Paritybit auf 0 gesetzt
Schritt 2 Das Paritätsbit wird mit den zugehörigen 8 Datenbits in den Speicher (DRAM) geschrieben Das Paritätsbit wird mit den zugehörigen 8 Datenbits in den Speicher (DRAM) geschrieben
Schritt 3 Bevor die Daten an die CPU gesendet werden, werden sie durch die Paritätsprüfung abgefangen. Ergibt die Paritätsprüfung eine ungerade Anzahl gelten die Daten als gültig. Das Paritätsbit wird von den Daten entfernt und die 8 Datenbits werden an die CPU übergeben.
Ergibt die Paritätsprüfung eine gerade Anzahl von Einsen gelten die Daten als ungültig und es wird ein Paritätsfehler generiert.
Bevor die Daten an die CPU gesendet werden, werden sie durch die Paritätsprüfung abgefangen.
Ergibt die Paritätsprüfung eine gerade Anzahl gelten die Daten als gültig. Das Paritätsbit wird von den Daten entfernt und die 8 Datenbits werden an die CPU übergeben.
Ergibt die Paritätsprüfung eine ungerade Anzahl von Einsen gelten die Daten als ungültig und es wird ein Paritätsfehler generiert.


[back to top]



Userdaten
User nicht eingeloggt

Gesamtranking
Werbung
Datenbankstand
Autoren:04511
Artikel:00815
Glossar:04116
News:13565
Userbeiträge:16552
Queueeinträge:06248
News Umfrage
Ihre Anforderungen an ein Online-Zeiterfassungs-Produkt?
Mobile Nutzung möglich (Ipone, Android)
Externe API Schnittstelle/Plugins dritter
Zeiterfassung meiner Mitarbeiter
Exportieren in CSV/XLS
Siehe Kommentar



[Results] | [Archiv] Votes: 1158
Comments: 0