2013-02-05 9 views
5

Ich habe eine grundlegende Frage über die Richtlinie, die das Speichersystem befolgt.Cache-Räumung aus L1-Cache auf L2-Räumung

Betrachten Sie einen Kern mit privaten L1 und L2-Caches. Nach L2-Cache haben wir einen Bus, auf dem der Kohärenzverkehr läuft. Wenn nun eine Cache-Zeile für die Adresse (X) aus dem L2-Cache entfernt wird, ist es notwendig, diese Adresse aus dem L1-Cache zu entfernen ??

Der Grund für die Räumung kann sein, dass es hilft, die Invariante des Kohärenzprotokolls beizubehalten [wenn eine Zeile in l2 ungültig anzeigt, enthält dieser Kern diese Adresse nicht].

Antwort

10

Es gibt three different designs und alle werden verwendet.

  1. Exklusiv: Daten im L1-Cache befinden sich niemals im L2-Cache. Daten im L2-Cache befinden sich niemals im L1-Cache.

  2. Inclusive: Daten im L1-Cache müssen sich auch im L2-Cache befinden.

  3. Weder: Daten im L1-Cache können sich im L2-Cache befinden oder nicht.

Jeder von diesen hat Vor- und Nachteile. Das einschließende Schema erlaubt es dem Cache-Kohärenz-Protokoll, den L1-Cache zu ignorieren - wenn sich Daten nicht im L2-Cache befinden, befinden sie sich nicht im L1-Cache. Aber das exklusive Schema nutzt den wertvollen Cache-Speicher am effektivsten.

Inclusive-Designs werden immer beliebter, weil eine schnellere Inter-Core-Synchronisation wichtiger wird als eine etwas größere effektive Cache-Größe.

+0

Ich habe Zweifel bezüglich der Zeilengröße. http://stackoverflow.com/questions/14707803/line-size-of-l1-and-l2-caches –

+0

Könnten Sie uns dazu noch einige weitere Lesungen geben: "Inklusive Designs werden immer beliebter, weil schneller Inter-Core-Synchronisation wird wichtiger als etwas größere effektive Cache-Größen "? – rkioji

Verwandte Themen