« »

Vollassoziative Caches

In dieser Aufgabe geht es um vollassoziative Caches (en. fully associative). Die Adressierung erfolgt wortweise. Unser System nutzt 64-Bit-Adressen.

Diese Aufgabe stammt aus Kapitel 5.3 von "Computer Organization and Design. The Hardware/Software Interface. RISC-V Edition" (Patterson & Hennessy, 2018).

a)

Level 3: Anwenden

Konstruieren Sie gedanklich einen vollassoziativen Cache mit Ein-Wort-Blöcken, der eine Kapazität von acht Worten hat. Wie viele Cache-Zeilen gibt es und wie breit sind sie? Wie viele Bits werden für Tag, Index und Offset benötigt?

Lösung
  • Aufbau des Caches:
    • ein Wort je Block
    • vollassoziativ, darum alle Blöcke in einer Zeile
  • Aufbau der Adressen:
    • ein Wort je Block → kein Offset
    • vollassoziativ → kein Index
    • somit entspricht der Tag der Binäradresse

b)

Level 3: Anwenden

Vollziehen Sie die Funktionsweise des Caches aus Aufgabe 3c nach. Nehmen Sie als Ersetzungsstrategie „Least Recently Used“ (LRU) an. Identifizieren Sie für jede Referenz

  • die binäre Wortadresse,
  • den Tag,
  • den Index und
  • den Offset.

Geben Sie weiterhin an,

  • ob es sich um einen Hit oder einen Miss handelt und
  • welchen Inhalt der Cache nach der Behandlung des Zugriffs hat.

Hinweis: Zur eigenen Orientierung können die Adressen der im Cache gespeicherten Daten nach dem letzten Zugriff sortiert angegeben werden.

BinäradresseHit?Adressen im Cache
0x030000.0011
0xb41011.0100
0x2b0010.1011
0x020000.0010
0xbe1011.1110
0x580101.1000
0xbf1011.1111
0x0e0000.1110
0x1f0001.1111
0xb51011.0101
0xbf1011.1111
0xba1011.1010
0x2e0010.1110
0xce1100.1110

Nutzen Sie für diese Aufgabe die folgende Sequenz von Worten:

0x03, 0xb4, 0x2b, 0x02, 0xbe, 0x58, 0xbf, 
0x0e, 0x1f, 0xb5, 0xbf, 0xba, 0x2e, 0xce
Lösung
BinäradresseHit?Adressen im Cache
0x030000.0011Miss0x03
0xb41011.0100Miss0x03, 0xb4
0x2b0010.1011Miss0x03, 0xb4, 0x2b
0x020000.0010Miss0x03, 0xb4, 0x2b, 0x02
0xbe1011.1110Miss0x03, 0xb4, 0x2b, 0x02, 0xbe
0x580101.1000Miss0x03, 0xb4, 0x2b, 0x02, 0xbe, 0x58
0xbf1011.1111Miss0x03, 0xb4, 0x2b, 0x02, 0xbe, 0x58, 0xbf
0x0e0000.1110Miss0x03, 0xb4, 0x2b, 0x02, 0xbe, 0x58, 0xbf, 0x0e
0x1f0001.1111Miss0xb4, 0x2b, 0x02, 0xbe, 0x58, 0xbf, 0x0e, 0x1f
0xb51011.0101Miss0x2b, 0x02, 0xbe, 0x58, 0xbf, 0x0e, 0x1f, 0xb5
0xbf1011.1111Hit0x2b, 0x02, 0xbe, 0x58, 0x0e, 0x1f, 0xb5, 0xbf
0xba1011.1010Miss0x02, 0xbe, 0x58, 0x0e, 0x1f, 0xb5, 0xbf, 0xba
0x2e0010.1110Miss0xbe, 0x58, 0x0e, 0x1f, 0xb5, 0xbf, 0xba, 0x2e
0xce1100.1110Miss0x58, 0x0e, 0x1f, 0xb5, 0xbf, 0xba, 0x2e, 0xce

Lernziele

In dieser Aufgabe …

  • wiederholen die Studierenden den Aufbau vollassoziativer Caches.
  • leiten die Studierenden aus gegebenen Anforderungen einen Cache-Entwurf ab.
  • simulieren die Studierenden die Funktionsweise des Caches.