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

Post on 05-Apr-2015

104 views 0 download

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

Zuordnung CacheHauptspeicher

Wie wirken Cache und HSP-Organisation zusammen?

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

Copyright © 2009

Rainer Gerhardsrgerhards@adiscon.com

Warum Caches?

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

zeitliche Lokalitäträumliche Lokalität

Organisation des Hauptspeichers

Beispielarchitektur Konzeptionell linearer

Adressraum Hauptspeichermatrix Adressdekoder für

Zeilen Spalten

.

.

.

.

.

.

Cache Speicher ähnlich organisiert

.

.

.

.

.

.

Cache Hauptspeicher

Zugriff auf ein Datum

.

.

.

.

.

.

Auswahl Zeile

Übertrag in Registerfür Wortselektion

Auswahl des gewünschtenSpeicherwortes

CPU-Register

Laden in CPU-Register

Zugriff auf ein Datum – Cache!

.

.

.

.

.

.

Auswahl Zeile

Auswahl des gewünschtenSpeicherwortes

Übertragin Cache

Laden in CPU-Register

CPU-Register

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

Wortbits…

.

.

.

.

.

.

CPU-Register

Wortbits sind immer 0!

Innerhalb der Zeile wirdmit Wortbits adresiert!

Adressierung im Cache

.

.

.

.

.

.

CPU-Register

Tag Index

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!

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!

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

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

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.

Ein Cache Miss…

.

.

.

.

.

.

Zugriff auf 4F6D2

Index10 1101

Tag: 00 1101 1000

ungleich 01 0011 1101

Cache-Miss!

Also Cache-Line lesen…

.

.

.

.

.

.

Übertragin Cache

Zugriff auf 4F6D2

Auswahl Zeile 4F6D0

Tag auf 01 0011 1101 setzen

Weiter wie bei Cache-Hit…

.

.

.

.

.

.

Auswahl des gewünschtenSpeicherwortes 010

Laden in CPU-Register

CPU-Register

Zugriff auf 4F6D2

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