Ub8-Cache
Motivation
![截屏2020-08-05 23.40.21](https://raw.githubusercontent.com/EckoTan0804/upic-repo/master/uPic/截屏2020-08-05%2023.40.21.png)
Ausnutzung der räumlichen und zeitlichen Lokalität von Anwendungen
90/10-Regel
Die 90/10 Regel besagt, dass bei 90 % der Speicherzugriffe innerhalb eines Programms nur etwa10% der Daten benötigt werden, die das Programm insgesamt während seiner Laufzeit benötigt. Somit ist also ein deutlich kleinerer Speicher ausreichend, um die meisten Anfragen beantworten zu können.
Parameter
Organisation
- Direkt abgebildet (direct mapped)
- Satzassoziativ (set associative)
- Vollassoziativ (fully associative)
Hierarchie
Mehrere Level (L1, L2, L3)
im Multiprozessorfall: private vs. shared
inclusive vs. exclusive
Größe
Cacheline-Size
(# Cachelines bzw. Assoziativität) * # Sätzen
Ersetzungsstrategie
least recently used (LRU)
least frequently used (LFU)
Round Robin
Random
Schreibstrategie
- write-through vs. write-back
- write-allocation vs. no write-allocation
Cachekohärenzprotokoll (im Multiprozessorfall)
- Busbasiert
- Verzeichnisbasiert
Eigenschaften
Bei Caches kann zwischen unterschiedlichen auftretenden Fehlzugriffen unterschieden werden
Compulsory Miss
- Miss, der durch ersten Zugriff auf ein Datum entsteht
- Daten also noch nicht im Cache und daher Miss nicht vermeidbar
Capacity Miss
- Kapazität des Caches zu klein, weshalb bereits gecachtes Datum aus Cache entfernt werden musste
Conflict Miss
- Set zu klein und bereits gecachtes Datum wurde aus Set entfernt (Cache nicht zwangsläufig voll)
- Nur bei nicht-vollassoziativem Cache
Coherency Miss
- Nur bei Multiprozessor-Systemen mit Kohärenzprotokoll
- Unterscheidung zwischen False- und True-Sharing
- False-Sharing, falls nicht eigentliches Wort sondern anderes Wort in Cache-Block geändert wurde
Cacheleistung
Gegeben
- Hit-Rate: $r_H$
- Miss-Rate: $r_M = 1 - r_H$
- Zugriffszeit bei Hit: $t_H$
- Zugriffszeit Hauptspeicher (fall Miss): $t_{Mem}$
Mittlere Zugriffszeit $$ t_{a}=\underbrace{r_{H} * t_{H}}_{\text {Hit }}+\underbrace{r_{M} * t_{M e m}}_{\text {Miss }} $$
Mehrstufige Hierarchie: Konkretisierung des Miss-Zweigs $$ t_{a}=\underbrace{r_{H 1} * t_{L 1}}_{\text {Hit L1 }}+\underbrace{r_{M 1} *(\underbrace{r_{H 2} * t_{L 2}}_{\text {Hit L2 }}+\underbrace{r_{M 2} * t_{M e m}}_{\text {Miss L2 }})}_{\text {Miss L1 }} $$