FB18 - Das Forum für Informatik

fb18.de / Bachelorstudieng / PM Technische Informatik

Adressen speichern im Cache

Adressen speichern im Cache 2008-02-12 16:40
Anonymer User
Hallo,
ich habe schon diverse Posts und das Skript gelesen. Ich habe aber immer noch Probleme die einzelnen Zahlen zuzuordnen. Könnte jemand das nochmal Schritt für Schritt erklären? Vieleicht an folgender Aufgabe aus den Übungen. Das wäre nett. Danke :)

Betrachten Sie einen direkten Cache mit folgenden Parametern: Hauptspeichergröße = 65.536, Cachegröße = 256, Cacheblockgröße = 8.

In welchen Cacheblöcken werden die Elemente mit den folgenden Adressen gespeichert?

a) 0001 0001 0001 1011

RE: Adressen speichern im Cache 2008-02-12 18:07
ole
erst mal ist die adresse vollständig, weil 2^16 = 65536

aufbau der adresse tag, index, versatz

dann schaut man sich die block größe an 8 = 2^3 => also benötigt man 3 bit für den versatz
dann rechnet man aus wieviele bit man zur adressierung des chache braucht: 256/8 = 32 = 2^5 => man benötigt also 5 bit index.

das format ist also folgendes
tag index versatz
00000000|11111|000

jetzt draus sieht man auch sofort an welcher adresse das beispiel liegt: 00011

mathematisch gesehen rechnet man modulo
[0001 0001 0001 10 = 547
547 mod 32 = 3 = 11]
auf grund der praktischen eigenschaft des binärsystems kann man an dieser stelle aber einfach alle bits mit einer höheren wertigkeit als 5 wegfallen lassen.

gruß

RE: Adressen speichern im Cache 2008-02-12 18:19
Anonymer User
jetzt draus sieht man auch sofort an welcher adresse das beispiel liegt: 00011

mathematisch gesehen rechnet man modulo
[0001 0001 0001 10 = 547
547 mod 32 = 3 = 11]
auf grund der praktischen eigenschaft des binärsystems kann man an dieser stelle aber einfach alle bits mit einer höheren wertigkeit als 5 wegfallen lassen.
diesen letzten abschnitt verstehe ich nicht.

ist nicht adresse 00011 die antwort?

RE: Adressen speichern im Cache 2008-02-12 18:35
T
diesen letzten abschnitt verstehe ich nicht.
modulo ist der rest der ganzzahligen division. also z.b.:
39 / 11 = 3 REST 6
also:
39 mod 11 = 6

wenn du im dezimalsystem modulo 10, 100 oder 1000 rechnest ist das einfach:
235753 mod 100 = 753
2345623485293478293 mod 10000 = 78293

ebenso sieht es bei binären zahlen mit den zweierpotenzen 2, 4, 8, 16, … aus:
100101101110110 mod 100 = 10 (modulo vier)
1000100110110101 mod 100000 = 110101 (modulo [latex]2^5[/latex])

RE: Adressen speichern im Cache 2008-02-12 18:41
Anonymer User
ok, war etwas verwirrend weil dort stand = 3 = 11. 3 dezimal und 11 binär. habs jetzt verstanden.