CPU-Cache-Simulator
Cache-Zuordnung, Schreibregeln und Zugriffsmuster anhand einer reproduzierbaren Zugriffsfolge vergleichen.
Über dieses Tool
Cache-Konfiguration und Zugriffsmuster wählen oder eine eigene Zugriffsfolge eingeben, dann Simulieren. Vorlagen sind Beispielkonfigurationen, keine Messwerte eines bestimmten Prozessors. Änderungen an Eingaben oder Quelltab brechen die laufende Rechnung ab und leeren beide Ergebnisse. Ergebnisse leeren erhält die Eingaben.
Das Modell startet mit einem leeren Einzelcache. Jeder Zugriff liest oder schreibt ein ausgerichtetes 4-Byte-Wort an einer 32-Bit-Byteadresse von 0 bis 4294967292. Die Kapazität beträgt 1–2048 KiB, die Zeilengröße 8–256 B. Die Assoziativität darf die Zeilenzahl nicht überschreiten. Die Zuordnung lautet Block = floor(Adresse / Zeilengröße) und Set = Block modulo Set-Anzahl.
Write-back mit Write-allocate: Ein Miss lädt eine Zeile; Schreiben markiert sie als dirty. Beim Verdrängen einer dirty Zeile wird die gesamte Zeile geschrieben. Am Ende verbleibende dirty Zeilen werden separat ausgewiesen und nicht automatisch zurückgeschrieben. Write-through ohne Write-allocate: Jeder Schreibzugriff schreibt 4 B; ein Schreib-Miss lädt keine Cache-Zeile. Lese- und Schreibverkehr beschreiben dieses Zugriffsmodell, keine Hardwareleistungszähler.
Miss-Ursachen: Bei LRU mit Write-back/Write-allocate ist der erste Kontakt mit einem Block ein Erstkontakt-Miss. Spätere Misses sind Kapazitäts-Misses, wenn ein gleich großer vollassoziativer LRU-Cache ebenfalls verfehlt, andernfalls Konflikt-Misses. FIFO, Zufall und Write-through ohne Allokation zeigen nur Erstkontakt- und weitere Misses. Das trennt Regel-, Zuordnungs- und Kapazitätseffekte nicht. LRU verdrängt die am längsten nicht benutzte Zeile; FIFO die zuerst eingefügte. Zufallsentscheidungen verwenden feste Startwerte und sind reproduzierbar, nicht kryptografisch. Bei Arbeitsbereichen, deren Größe keine Zweierpotenz ist, kann die Modulo-Zuordnung eine geringe Verzerrung erzeugen.
Zugriffsfolgen: Pro Zeile einen Zugriff eingeben, etwa R 0x0, W 4 oder 1024 (standardmäßig Lesen). Leere Zeilen und ganze Kommentarzeilen ab # werden ignoriert. Ungültige Zeilen werden abgewiesen; nichts wird still übersprungen oder gekürzt. Grenzen: 1200000 Zugriffe und 48 Mi Zeichen Eingabetext. Die Tabelle zeigt nur die ersten 64 Schritte; Summen umfassen die ganze Folge.
Erzeugte Arrays enthalten 4-Byte-Elemente. Matrizen liegen zeilenweise, A, B und C unmittelbar hintereinander. Die Multiplikationsfolgen lesen und schreiben C für jede Kachel; Transposition liest A und schreibt B. Matrixgröße N: 2–64 bei Multiplikation und 2–512 bei Transposition; Kachelgröße: 1–N. Die Schrittweite muss durch 4 teilbar sein und alle Adressen im 32-Bit-Bereich halten. Zufällige Zugriffe verwenden den gewählten Arbeitsbereich.
Kosten und Vergleich: AMAT = Hit-Kosten + Missrate × Miss-Zusatz. Beide Kosten dürfen 0–10⁹ Zyklen betragen. Dieses Modell mit konstanten Kosten simuliert keine Schreibpuffer, überlappenden Zugriffe oder mehreren Cache-Ebenen. Der Kapazitätsvergleich verwendet für jede Konfiguration dieselben ersten höchstens 150000 Zugriffe und zeigt deren Missraten, keine zugesicherte stationäre Rate.
Eingaben werden einschließlich unfertiger oder ungültiger Entwürfe lokal gespeichert, bis zu 100000 Zeichen im serialisierten Zustand. Darüber bleibt die zuvor gespeicherte Kopie erhalten und ein Hinweis erscheint: die vollständige Zugriffsfolge vor Neuladen oder Verlassen der Seite herunterladen. Navigation innerhalb der App erhält die laufende Sitzung und das fertige Ergebnis. Vollständiges Neuladen stellt die gespeicherten Eingaben wieder her und wartet auf Simulieren. Von älteren Versionen ausgelassene Folgen lassen sich nicht wiederherstellen.
Quellen: Cornell CS3410: Caches und Dinero IV: Cache-Simulation mit Zugriffsfolgen.
Übersicht und Set-Grafik zeigen die gesamte Simulation. Zugriffsschritte aufklappen für einzelne Datensätze; ein Stichprobenhinweis erscheint nur bei einer längeren Folge als der angezeigten Tabelle. Numerische Spalten sind mit ihren Überschriften ausgerichtet, breite Tabellen scrollen lokal. Kosten und Kapazitätsvergleich bleiben optional.
Die Grafik zeigt horizontal Set-Indizes und vertikal Zugriffszahlen. Blau sind alle Zugriffe; Rot überlagert die darin enthaltenen Misses und wird nicht addiert. Bei wenig Platz werden benachbarte Sets zusammengefasst; jede Spalte summiert deren Werte.