Zuordnung Cache Hauptspeicher Wie wirken Cache und HSP-Organisation zusammen? Wie kann ich...

18
Zuordnung CacheHauptspeicher Wie wirken Cache und HSP- Organisation zusammen? Wie kann ich ermitteln, was in den Cache geladen wird? Copyright © 2009 Rainer Gerhards [email protected]

Transcript of Zuordnung Cache Hauptspeicher Wie wirken Cache und HSP-Organisation zusammen? Wie kann ich...

Page 1: Zuordnung Cache Hauptspeicher Wie wirken Cache und HSP-Organisation zusammen? Wie kann ich ermitteln, was in den Cache geladen wird? Copyright © 2009 Rainer.

Zuordnung CacheHauptspeicher

Wie wirken Cache und HSP-Organisation zusammen?

Wie kann ich ermitteln, was in den Cache geladen wird?

Copyright © 2009

Rainer [email protected]

Page 2: Zuordnung Cache Hauptspeicher Wie wirken Cache und HSP-Organisation zusammen? Wie kann ich ermitteln, was in den Cache geladen wird? Copyright © 2009 Rainer.

Warum Caches?

Hauptspeicher zu langsam Cache zu teuer Lösung: Teilmenge in Cache halten!

zeitliche Lokalitäträumliche Lokalität

Page 3: Zuordnung Cache Hauptspeicher Wie wirken Cache und HSP-Organisation zusammen? Wie kann ich ermitteln, was in den Cache geladen wird? Copyright © 2009 Rainer.

Organisation des Hauptspeichers

Beispielarchitektur Konzeptionell linearer

Adressraum Hauptspeichermatrix Adressdekoder für

Zeilen Spalten

.

.

.

.

.

.

Page 4: Zuordnung Cache Hauptspeicher Wie wirken Cache und HSP-Organisation zusammen? Wie kann ich ermitteln, was in den Cache geladen wird? Copyright © 2009 Rainer.

Cache Speicher ähnlich organisiert

.

.

.

.

.

.

Cache Hauptspeicher

Page 5: Zuordnung Cache Hauptspeicher Wie wirken Cache und HSP-Organisation zusammen? Wie kann ich ermitteln, was in den Cache geladen wird? Copyright © 2009 Rainer.

Zugriff auf ein Datum

.

.

.

.

.

.

Auswahl Zeile

Übertrag in Registerfür Wortselektion

Auswahl des gewünschtenSpeicherwortes

CPU-Register

Laden in CPU-Register

Page 6: Zuordnung Cache Hauptspeicher Wie wirken Cache und HSP-Organisation zusammen? Wie kann ich ermitteln, was in den Cache geladen wird? Copyright © 2009 Rainer.

Zugriff auf ein Datum – Cache!

.

.

.

.

.

.

Auswahl Zeile

Auswahl des gewünschtenSpeicherwortes

Übertragin Cache

Laden in CPU-Register

CPU-Register

Page 7: Zuordnung Cache Hauptspeicher Wie wirken Cache und HSP-Organisation zusammen? Wie kann ich ermitteln, was in den Cache geladen wird? Copyright © 2009 Rainer.

Aufteilung der phys. Adresse

Etikett (Tag) Index Wortbits

Beispiel:

20 Bit Adresse (1 MB), 1K Cache, Blockgröße 8 Byte

19 0

3 Bit

1024/8 Bytes =128 Einträge

Werte von0 bis 7

Speicher hat 1024 mal1024 Bytes

7 Bit

2310 9

10 Bit

Page 8: Zuordnung Cache Hauptspeicher Wie wirken Cache und HSP-Organisation zusammen? Wie kann ich ermitteln, was in den Cache geladen wird? Copyright © 2009 Rainer.

Wortbits…

.

.

.

.

.

.

CPU-Register

Wortbits sind immer 0!

Innerhalb der Zeile wirdmit Wortbits adresiert!

Page 9: Zuordnung Cache Hauptspeicher Wie wirken Cache und HSP-Organisation zusammen? Wie kann ich ermitteln, was in den Cache geladen wird? Copyright © 2009 Rainer.

Adressierung im Cache

.

.

.

.

.

.

CPU-Register

Tag Index

Page 10: Zuordnung Cache Hauptspeicher Wie wirken Cache und HSP-Organisation zusammen? Wie kann ich ermitteln, was in den Cache geladen wird? Copyright © 2009 Rainer.

Beispielrechnung

Etikett (Tag) Index Wortbits

19 02310 9

4 F 6 D 2Adresse

0100 1111 0110 1101 0010

1. In Binär umwandeln!

2. Einzelne Bitfelder abtragen!

Page 11: Zuordnung Cache Hauptspeicher Wie wirken Cache und HSP-Organisation zusammen? Wie kann ich ermitteln, was in den Cache geladen wird? Copyright © 2009 Rainer.

Beispielrechnung

Etikett (Tag) Index Wortbits

19 02310 9

4 F 6 D 2Adresse

0100 1111 0110 1101 0010

1. In Binär umwandeln!

010

2. Einzelne Bitfelder abtragen!

Page 12: Zuordnung Cache Hauptspeicher Wie wirken Cache und HSP-Organisation zusammen? Wie kann ich ermitteln, was in den Cache geladen wird? Copyright © 2009 Rainer.

Beispielrechnung

Etikett (Tag) Index Wortbits

19 02310 9

4 F 6 D 2Adresse

0100 1111 0110 1101 0010

1. In Binär umwandeln!

010

2. Einzelne Bitfelder abtragen!

10 1101

Page 13: Zuordnung Cache Hauptspeicher Wie wirken Cache und HSP-Organisation zusammen? Wie kann ich ermitteln, was in den Cache geladen wird? Copyright © 2009 Rainer.

Beispielrechnung

Etikett (Tag) Index Wortbits

19 02310 9

4 F 6 D 2Adresse

0100 1111 0110 1101 0010

1. In Binär umwandeln!

010

2. Einzelne Bitfelder abtragen!

10 110101 0011 1101

Page 14: Zuordnung Cache Hauptspeicher Wie wirken Cache und HSP-Organisation zusammen? Wie kann ich ermitteln, was in den Cache geladen wird? Copyright © 2009 Rainer.

Beispielrechnung

Etikett (Tag) Index Wortbits

19 02310 9

4 F 6 D 2Adresse

0100 1111 0110 1101 0010

01010 110101 0011 1101

Die Cache-Line beginnt aufAdresse 4F6D0.

Es muss nämlich zu Anfangder Cache-Line adressiert werden,die Wortbits werden daher auf 0 gesetzt.

Page 15: Zuordnung Cache Hauptspeicher Wie wirken Cache und HSP-Organisation zusammen? Wie kann ich ermitteln, was in den Cache geladen wird? Copyright © 2009 Rainer.

Ein Cache Miss…

.

.

.

.

.

.

Zugriff auf 4F6D2

Index10 1101

Tag: 00 1101 1000

ungleich 01 0011 1101

Cache-Miss!

Page 16: Zuordnung Cache Hauptspeicher Wie wirken Cache und HSP-Organisation zusammen? Wie kann ich ermitteln, was in den Cache geladen wird? Copyright © 2009 Rainer.

Also Cache-Line lesen…

.

.

.

.

.

.

Übertragin Cache

Zugriff auf 4F6D2

Auswahl Zeile 4F6D0

Tag auf 01 0011 1101 setzen

Page 17: Zuordnung Cache Hauptspeicher Wie wirken Cache und HSP-Organisation zusammen? Wie kann ich ermitteln, was in den Cache geladen wird? Copyright © 2009 Rainer.

Weiter wie bei Cache-Hit…

.

.

.

.

.

.

Auswahl des gewünschtenSpeicherwortes 010

Laden in CPU-Register

CPU-Register

Zugriff auf 4F6D2

Page 18: Zuordnung Cache Hauptspeicher Wie wirken Cache und HSP-Organisation zusammen? Wie kann ich ermitteln, was in den Cache geladen wird? Copyright © 2009 Rainer.

Fazit

Es wird immer eine ganze Cache-Line geladen

Die Adresse der Cache-Line erhält man, indem man die Wortbits auf 0 setzt

Bei assoziativen Caches ist Cache-Speicher n-fach je Index vorhanden