- ... Caches
- Das Wort Cache stammt vom Französischen cacher (verstecken), da sich Caches normalerweise vollkommen transparent verhalten.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... Inc.
- http://www.sun.com/
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... sind
- http://java.sun.com/products/jdk/1.2/index.html
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... geladen
- Die Cache-Speicher-Verbindung kann so entworfen werden, dass der Speicher
durch das zusätzliche Lesen eines ganzen Blocks nicht langsamer wird (ein
paar Schlagworte dazu: nibble mode, block mode der Speicher, Interleaving,
Pipelining, breite Speicherbusse zum parallelen übertragen mehrerer Worte...).
Oft wird auch das benötigte Wort zuerst geladen und zum Prozessor weitergeleitet
und erst danach der restliche Block.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... identifiziert
- Üblicherweise ist der Tag ein Teil der Hauptspeicheradresse des entsprechenden
Blocks.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... erhöhen
- Bei On-Chip-Caches ist die Größenbeschränkung durch die verfügbare Chipfläche
vorgegeben.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... minimieren
- Stallings bemerkt in [Stall96], dass eine Reihe von diesbezüglichen Studien eine "optimale"
Cache-Größe zwischen 1K und 512K Worten ergeben haben, wobei es durch die
starke Abhängigkeit der Performance von der Art des konkreten workloads
nicht möglich ist, eine wirklich "optimale" Größe zu erreichen.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... Zeile
- Für eine Set-Größe von zwei z.B. mit einem hot/cold (toggle)Bitt. Allgemein
beschreibt [Smith82] eine Implementierung mit einer upper-left triangular matrix, die bei einer Set-Größe von
mit
Statusbits auskommt (
ist das theoretische Minimum), einfach in Hardware zu implementieren und
besonders schnell ausführbar ist. Die Menge der zusätzlichen Statusbits
ist bis zu einer Set-Größe von 8 akzeptabel. Für größere Sets werden Approximationen
an LRU verwendet.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... umzugehen
- z.B. mit Kohärenzprotokollen wie I/O-through-Cache, Bus-Watching-With-Write-Through, Hardware-Transparency,
Non-Cacheable-Memory
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... wird
- Dieses Phänomen wird auch Cache-Pollution genannt
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... Zugriff
- z.B. instruction-fetch, data-fetch, data-store, ...
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... Messung
- Hardwaremonitoring
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... modellieren
- Multitasking kann durch ein "Mischen" mehrerer Traces oder ein
flushen des Caches in regelmäßigen Abständen simuliert werden.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... Simulationsprojekt
- Modellierung und Simulation eines Rechnersystems
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... speichern
- Was natürlich für eine reine trace-gesteuerte Cache-Simulation überhaupt
keinen Sinn macht, da dabei nur die Statusinformationen sowie die Tags
benötigt werden.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... Inc.
- http://www.sun.com/
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... verfügbar
- http://java.sun.com/products/jdk/1.2/index.html
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... realisieren
- Man spricht dann auch nicht mehr unbedingt von programmieren sondern von zusammenklicken.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... Web
- http://java.sun.com/beans/spec.html
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... Model
- Event sources werden in diesem Modell an interessierte listeners delegiert - daher der Name.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...MemoryItem
- Klasse zur Kapselung von Hauptspeicherdaten, enthält sowohl die Hauptspeicheradresse
als auch den Inhalt der Speicherzelle.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...dineroIII
- dineroIII ist seit vielen Jahren der Standard für tracegesteuerte Cache-Simulation.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... Zugriff
- 0-read data, 1-write data, 2-instruction fetch, 4-cache flush
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...

- Spezifikationsgemäß werden für alle Bean Properties entsprechende getter- und setter-Methoden implementiert. Ihre Signaturen entsprechen dem folgenden Schema:
public void setPropertyName(PropertyType t) bzw. public PropertyType getPropertyName().
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... (ActionListener)
- nur für interne Zwecke
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... Membervariablen
- was keinesfalls ein Muß ist...
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... Ergebnisse
- die genau den dineroIII Ergebnissen entsprechen. Generell wurde dineroIII zur Validierung der Ergebnisse benutzt.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...jar-Datei
- Java-Version einer zip-Datei
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... Verzeichnis
- Bei der hier verwendeten BeanBox muß dies .../Bdk1.1/jars sein
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ... sind
- Alle hier vorgestellten Simulator Beans besitzen entsprechende BeanInfo
Klassen.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
- ...dineroIII
- siehe dineroIII Dokumentation von Mark D. Hill [Hil89] "Bugs: Not all combination of options have been throughly tested."
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.