« »

Cache-Kohärenz

In der Vorlesung wurde das Cache-Kohärenz-Protokoll MSI vorgestellt, welches im Folgenden betrachtet wird. Zwei Prozessoren (P1 und P2) und ein einheitlicher Hauptspeicher (en. Uniform Memory) sind über einen gemeinsamen Bus (en. Shared Bus) verbunden, der das MSI-Protokoll zur Cache-Kohärenz verwendet. Im Speicher befindet sich eine Datenstruktur mit folgendem Aufbau:

Die Größe einer Cache-Zeile (en. Cache Line) beträgt 32 Byte, sodass A und B gemeinsam in Cache-Zeile X liegen, während C in einer separaten Cache-Zeile Y liegt. Die Prozessoren P1 und P2 führen das folgende Programm aus:

// Prozessor P1
read(A);
read(B);
// arbeite mit A
read(B);
write(A);
// Prozessor P2
read(B);
read(C);
// arbeite mit C
read(B);
write(C);

Die folgende Tabelle zeigt die Speicheroperationen der einzelnen Prozessoren in der Reihenfolge, in der sie auf dem gemeinsamen Bus erscheinen.

Zu Beginn befinden sich alle Cache-Zeilen im Zustand Invalid (I).

Diese Aufgabe wurde aus der Vorlesung "Advanced Operating Systems" der Professur für Betriebssysteme an der Technischen Universität Dresden übernommen.

a)

Level 3: Anwenden

Füllen Sie die folgende Tabelle aus:

POperationP1
X / Y
P2
X / Y
Hauptspeicher-TransfersInvalidierungen
I / II / I--
1read(A)
1read(B)
2read(B)
2read(C)
1read(B)
1write(A)
2read(B)
2write(C)
Lösung
POperationP1
X / Y
P2
X / Y
Hauptspeicher-TransfersInvalidierungen
I / II / I--
1read(A)S / II / IMem → X(P1)-
1read(B)S / II / I--
2read(B)S / IS / IMem → X(P2)-
2read(C)S / IS / SMem → Y(P2)-
1read(B)S / IS / S--
1write(A)M / II / S-X
2read(B)S / IS / SX(P1) → Mem (Write Back),
Mem → X(P2)
2write(C)S / IS / M-Y

Lernziele

In dieser Aufgabe …

  • simulieren die Studierenden die Anwendung des MSI-Protokolls.