• Keine Ergebnisse gefunden

Virtuelle Adressen

N/A
N/A
Protected

Academic year: 2022

Aktie "Virtuelle Adressen"

Copied!
26
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Cache‐Grundlagen

Schreibender Cache‐Zugriff

(2)

Eine einfache Strategie

• Schreibt man nur in den Cache, werden Cache und darunter  liegender Speicher inkonsistent. Wie erreicht man Konsistenz?

• Write‐Through

Schreibe immer sofort in den Speicher zurück Einfach aber schlechte Performance

Beispiel: 10% Store‐Instruktionen, CPI ohne Miss = 1 und CPI bei  Speicherzugriff = 100. Was ist der Gesamt‐CPI‐Wert?

(3)

Verbesserungen

• Write‐Buffer

Ergänzung zu Write‐Through

Ausstehende Writes werden in einem kleinen Puffer zwischengespeichert CPU kann nach schreiben in den Puffer sofort weiter machen

Parallel werden Daten aus dem Puffer in den Speicher geschrieben CPU muss nur stallen, wenn der Puffer voll ist.

• Write‐Back

Alternative zu Write‐Through

Speichere Änderungen zunächst nur im Cache

Schreibe Änderung in Speicher nur dann, wenn der Cache‐Block ersetzt wird

(4)

Behandlung von Cache‐Misses

• Was passiert beim Schreiben (sowohl bei Write‐Through als auch  Write‐Back) eines Bytes bei einem Cache‐Miss?

• Eine naheliegende Lösung

Lade den gesamten Block aus dem Speicher Überschreibe das Byte in dem Block

• Alternative: No‐Write‐Allocate

Aktualisiere nur den darunter liegenden Speicher aber nicht den Cache Ist sinnvoll, wenn lesender Zugriff nicht zu erwarten ist

(5)

Cache‐Grundlagen

Speicherunterstützung für Caches

(6)

Motivation

Erinnerung: CPU und Speicher kommunizieren über einen Bus.

Was beeinflusst die Miss‐Penalty?

• Geschwindigkeit des Busses.

• Speicherorganisation (siehe gleich).

Ein angenommenes Beispiel von Speicherzugriffswerten:

• 1 Speicherbuszyklus die gewünschten Adressen zu senden

• 15 Speicherbuszyklen für jeden initiierten DRAM‐Zugriff

• 1 Speicherbuszyklus ein Datenwort zu senden

Was ist die Miss‐Penalty bei einem Cache mit vier Word Breite und  sequentiellem Zugriff auf ein DRAM mit einem Word Breite?

Kann man das verbessern?

(7)

Bessere Unterstützung durch das DRAM

Bildquelle: David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth Edition, 2012

Was ist die Miss‐Penalty für zweimal breiteren Bus  und Speicher?

Bezeichnet  man auch als  Interleaving.

(8)

Bessere Unterstützung durch das DRAM

Bildquelle: David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth Edition, 2012

Was ist die Miss‐Penalty für Speicherorganisation  mit 4 parallelen Bänken aber unverändertem Bus?

Bezeichnet  man auch als  Interleaving.

(9)

Entwicklungen der letzten Jahre

Bildquelle: David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth Edition, 2012

Organisation des Speichers in Zeilen und Spalten.

Vorhalten einer ganzen Zeile in einem schnelleren RAM‐internen SRAM.

SDRAM (Synchronous DRAM) – Eleminiere Zeit zur CPU‐RAM‐Synchronisation durch  eigene Clock.

DDR (Double‐Data‐Rate) – Verdopplung des Datentransfers durch Verwendung sowohl  steigender als auch fallender Flanke eines Clock‐Zyklus.

(10)

Verbessern der Cache‐Performance 

(11)

Verbesserte Cache Strategien

Im Folgenden betrachten wir eine Verbesserung von Direct‐

Mapped‐Caching.

Zur Darstellung der Verbesserung verwenden wir folgende  vereinfachte Cache‐Darstellung:

Tag Data 0

1 2 3 4 5 6 7

Speicher‐Blöcke 0 : ...

1 : ...

2 : ...

. .

8 : ...

9 : ...

10 : ...

.

(12)

Fully‐Associative‐Cache

Beobachtung: bei Direct‐Mapped‐

Cache kann ein Speicherblock nur an einer Stelle gespeichert werden.

Konsequenz: wechselhafter Zugriff auf zwei Speicherblöcke die auf die selbe Stelle gemappt werden, führt

permanent zu Cache‐Misses.

Praktisch wäre doch folgender Cache:

Ein Eintrag kann überall stehen.

Nachteil: Durchsuchen des Cache dauert länger und mehr  Hardware‐Aufwand! Wie wäre es mit einem Kompromiss: ...

Tag Data 0

1 2 3 4 5 6 7

Speicher‐Blöcke 0 : ...

1 : ...

2 : ...

. .

8 : ...

9 : ...

10 : ...

.

Tag Data Tag Data Tag Data Tag Data Tag Data Tag Data Tag Data Tag Data

(13)

(N‐Wege)‐Set‐Associative‐Cache

Tag Data 0

1 2 3 4 5 6 7

Tag Data Tag Data Tag Data Tag Data Tag Data Tag Data Tag Data Tag Data

Fully‐Associative Direct‐Mapped

Set Tag Data Tag Data

0 1 2 3

Set Tag Data Tag Data Tag Data Tag Data

0 1

Two‐Way‐Set‐Associative

Four‐Way‐Set‐Associative Speicher‐Blöcke

0 : ...

1 : ...

2 : ...

. .

8 : ...

9 : ...

10 : ...

.

(14)

Zwischenbilanz

Finden der Cache‐Zeile c des Speicher‐Blocks n in einem Direct‐

Mapped‐Cache der Größe k?

(Vergleiche anschließend n mit dem in Zeile c gespeicherten Tag)

Finden der Set s des Speicher‐Blocks n in einem N‐Way‐Set‐

Associative‐Cache mit k Sets?

(Durchlaufe dann die Set s und suche nach einem Tag der n  entspricht)

(15)

Eine Frage ist noch zu klären

Annahme die Set eines N‐Way‐Set‐Associative‐Cache ist voll (bzw. 

der Fully‐Associative‐Cache ist voll). Wo kann ein neuer  Speicherblock abgelegt werden?

Häufig verwendete Strategie: Least‐Recently‐Used (LRU)

Ersetze den Block, auf den schon am längsten nicht zugegriffen  wurde.

Tag Data Tag Data Tag Data Tag Data

24 ... 66 ... 20 ... 16 ...

Tag Data 44 ...

???

(16)

Mehr Wege resultieren in weniger Misses

Beispiel: betrachte Cache‐Varianten mit vier Speicherblöcken

Wie viele Cache‐Misses erzeugt die folgende Sequenz von  Speicherblockzugriffen?

0 , 8 , 0 , 6 , 8

Tag Data Tag Data Tag Data Tag Data Tag Data

0 1 2 3

Set Tag Data Tag Data 0

1

Direct‐Mapped Set‐Associative Fully‐Associative

(17)

Mehr Wege resultieren in weniger Misses

Beispiel: Direct‐Mapped

Speicherblockzugriffe:  0 , 8 , 0 , 6 , 8       (Speicherblockinhalt = M[i])

Tag Data 0

1 2 3

Zugriff Hit oder  Miss

Inhalt der Cache‐Blöcke nach der Referenz

0 1 2 3

0 8 0 6 8

Block‐Adresse Cache‐Block 0

6 8

Vorüberlegung: Auf welchen Cache‐Block  werden die Block‐Adressen gemapped?

(18)

Mehr Wege resultieren in weniger Misses

Beispiel: Set‐Associative

Speicherblockzugriffe:  0 , 8 , 0 , 6 , 8       (Speicherblockinhalt = M[i])

Zugriff Hit oder  Miss

Inhalt der Cache‐Blöcke nach der Referenz Set 0 Set 0 Set 1 Set 1 0

8 0 6 8

Block‐Adresse Cache‐Set 0

6 8

Vorüberlegung: In welche Set werden die  Block‐Adressen gemapped?

Set Tag Data Tag Data 0

1

(19)

Mehr Wege resultieren in weniger Misses

Beispiel: Fully‐Associative

Speicherblockzugriffe:  0 , 8 , 0 , 6 , 8       (Speicherblockinhalt = M[i])

Zugriff Hit oder  Miss

Inhalt der Cache‐Blöcke nach der Referenz Block 0 Block 1 Block 2 Block 3 0

8 0 6 8

Tag Data Tag Data Tag Data Tag Data

(20)

Wie Aufwendig sind mehr Wege?

Bildquelle: David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth Edition, 2012 Offset

2 Bits

(21)

Wie viele Wege sind sinnvoll?

Feste Zahl kann hier nicht genannt werden. Tradeoff: 

Zeit/Hardware‐Aufwand versus Miss‐Raten.

Beobachtung:

(64KB Cache, 16‐Word‐Blöcke)

Miss‐Raten lassen sich in dem Beispiel mit mehr Assoziativität nicht  besonders weiter reduzieren. Zeit/Hardware‐Aufwand durch mehr  Assoziativität würde sich hier nicht weiter lohnen.

Bildquelle: David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth Edition, 2012

(22)

CPU

Multi‐Level‐Caches

First‐Level‐Cache

Second‐Level‐Cache

Speicher

Optimiert auf geringe  Hit‐Time (und damit 

recht klein)

Optimiert auf geringe  Miss‐Ratio (also mehr  und größere Blöcke und  

damit höhere Hit‐Time)

(23)

Virtueller Speicher

(24)

Die Idee

Speicherblock 0

Virtuelle Adressen

Speicherblock 1 Speicherblock 2 Speicherblock 3 Speicherblock 4 Speicherblock 5 Speicherblock 6 Speicherblock 7

...

Speicherblock n Prozess 1

Speicherblock 0

Virtuelle Adressen

Speicherblock 1 Speicherblock 2 Speicherblock 3 Speicherblock 4 Speicherblock 5 Speicherblock 6 Speicherblock 7

...

Speicherblock n Prozess 2

Speicherblock 0 Speicherblock 1 Speicherblock 2 Speicherblock 3 Speicherblock 4 Speicherblock 5

...

Speicherblock m

Virtueller Speicher Sekundärer Speicher  Virtueller Speicher (Festplatte oder SSD)

Physikalischer Speicher Address‐

Translation

Address‐

Translation

(25)

Abbilden von virtuellen auf physikalische Adressen

Virtuelle Seitennummer Seiten‐Offset

Translation

Physikalische Seitennummer Seiten‐Offset

31 30 29 28 27 ... 15 14 13 12 11 10 9 8 ...  3 2 1 0 Virtuelle Adresse

29 28 27 ... 15 14 13 12 11 10 9 8 ...  3 2 1 0 Physikalische Adresse

Quiz: Größe x des virtuellen Adressraumes, Größe y des physikalischen Adressraumes und  Größe z der Speicherblöcke?

(26)

Weitere Details zur Address‐Translation

Bildquelle: David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth Edition, 2012

Referenzen

ÄHNLICHE DOKUMENTE

❏ Για χρήστες Mac OS 9: Μεταβείτε στην ακόλουθη τοποθεσία για λήψη του

Speicherblock 1 Speicherblock 2 Speicherblock 3 Speicherblock 4 Speicherblock 5 Speicherblock 6

Speicherblock 1 Speicherblock 2 Speicherblock 3 Speicherblock 4 Speicherblock 5 Speicherblock 6

Speicherblock 1 Speicherblock 2 Speicherblock 3 Speicherblock 4 Speicherblock 5 Speicherblock 6

Speicherblock 1 Speicherblock 2 Speicherblock 3 Speicherblock 4 Speicherblock 5 Speicherblock 6

Speicherblock 1 Speicherblock 2 Speicherblock 3 Speicherblock 4 Speicherblock 5 Speicherblock 6

Speicherblock 1 Speicherblock 2 Speicherblock 3 Speicherblock 4 Speicherblock 5 Speicherblock 6

Zeile: (7+1–4)·6=24 Finde zu möglichst vielen Kombinationen mindestens eine Lösung und