Übungsblatt Nr. 5 zur Vorlesung Rechnerarchitektur I ==================================================== Aufgabe 5.7 7.) Aufgabe: Gegeben sei ein Hauptspeicher mit 64 Mega Worten zu je 32 Bit und ein Befehls-Cache mit 32 KB Kapazität bei einer Blockgröße von 16 Byte pro Cache-Eintrag. Jetzt wird ein Befehl aus dem Hauptspeicher gelesen, der unter der Wortadresse 220 (dez) steht und in den Cache gestellt. (-1 sei Schreibfehler) An welcher Cache-Adresse kann dieser Befehl bei den drei Cache-Typen wiedergefunden werden und wie lautet die Cache-Kennung (Tag) ? (Gehen Sie beim mengenassoziativen Cache von einem 4-Wege Cache aus). Zehnerpotenzumrechenhilfe: 1 K = 10^3 ~= 2^10 1 M = 10^6 ~= 2^20 1 G = 10^9 ~= 2^30 Wortadresse 32 bit in bytes => 2^2 Cache-Line 16byte => 2^4 Speicheradressbereich 64M(W32) => 2^6 * 2^20 *2^2 = 2^28 Cache von 32KB(yte) mit Lines => 2^5 * 2^10 /2^4 = 2^11 Adressselektionsfeld => 28 - (11+4) = 13 +----+-------------------------------------- | 4 | 13 | 11 | 4 | sum=32bit, Byteadresse (4GB) +----+-------------------------------------- |0000|a aaaa aaaaa aaaaa|ccc cccc cccc|xxxx| -------------------------------------------- 1. direktabbildend Tag = a[13], Index = c[11]; Wortadresse 220 ist Cacheline 220/4=55.0, also an Offset 0 der Cacheline 55; 2. vollassoziativ Tag = a[13], Index = (prinzipiell n) hier 0, da Cache leer sei; an Offset 0 der Cacheline 0; 3. mengenassoziativ 4-Wege bei 4 wegen gibt es 4 direkte Teilcaches, die je 1/4 groß sind und mit 11-2 = 9 bits indiziert werden; Tag = a[13], Index1 = (prinzipiell n) hier 0, da Cache leer sei, Index2 = c[9]; Wortadresse 220 ist Cacheline 220/4=55.0, also an Offset 0 der Cacheline 55 vom Cacheblock 0; +----+--------------------------------------- | 4 | 13 | 2| 9 | 4 | +----+-------------------------------------- |0000|a aaaa aaaaa aaaaa|ss|c cccc cccc|xxxx| ---------------------------------------------