Jednorázový zápis (soudržnost mezipaměti) - Write-once (cache coherence)
v soudržnost mezipaměti protokolární literatura, Jednorázový zápis byl první Protokol MESI definovaný. Má optimalizaci provádění zápisu při prvním zápisu a zpětný zápis u všech následných zápisů, což celkově snižuje autobus provoz v po sobě jdoucích zápisech do paměť počítače. Poprvé to popsal James R. Goodman v [1] (1983). Protokoly koherence mezipaměti jsou důležitým problémem Symetrické více procesů systémy, kde každý procesor udržuje a mezipaměti paměti.
Státy
V tomto protokolu je každý blok v místní mezipaměti v jednom z těchto čtyř stavů:
- Neplatný: Tento blok obsahuje nekoherentní kopii paměti.
- Platný: Tento blok má souvislou kopii paměti. Data mohou být možná sdílena, ale jejich obsah se nemění.
- Rezervováno: Blok je jedinou kopií paměti, ale stále je souvislý. Pokud je blok nahrazen, není nutný žádný zpětný zápis.
- Špinavý: Blok je jedinou kopií paměti a je nesouvislý. Tato kopie byla napsána jednou nebo vícekrát. Toto je jediný stav, který generuje zpětný zápis, když je blok nahrazen v mezipaměti.
Tyto stavy mají přesně stejný význam jako čtyři stavy Protokol MESI (jsou jednoduše uvedeny v opačném pořadí), ale jedná se o jeho zjednodušenou formu, která se vyhne operaci Číst pro vlastnictví. Místo toho se veškerá neplatnost provádí zápisy do hlavní paměti.
Pro jakoukoli danou dvojici mezipamětí jsou povolené stavy dané linky mezipaměti následující (zkráceno v pořadí výše):
Já | PROTI | R | D | |
---|---|---|---|---|
Já | ||||
PROTI | ||||
R | ||||
D |
Přechody
Protokol dodržuje některá pravidla přechodu pro každou událost:
- Přečtěte si hit: Informace jsou poskytovány aktuální mezipamětí. Žádná změna stavu.
- Číst slečno: Data jsou čtena z hlavní paměti. Číst je čmuchal jinými keškami; pokud některý z nich má řádek v Špinavý stavu je čtení přerušeno dostatečně dlouho, aby bylo možné zapsat data zpět do paměti, než bude povoleno pokračovat. Jakékoli kopie v Špinavý nebo Rezervováno státy jsou nastaveny na Platný Stát.
- Napište zásah: Pokud jsou informace v mezipaměti uvnitř Špinavý nebo Rezervováno stavu, řádek mezipaměti je aktualizován na místě a jeho stav je nastaven na Špinavý bez aktualizace paměti. Pokud jsou informace v Platný stavu, provede se operace zápisu aktualizující blok a paměť a stav bloku se změní na Rezervováno. Ostatní mezipaměti odposlouchávají zápis a nastavují jejich kopie na Neplatný.
- Napiš slečno: Částečný zápis do řádku mezipaměti je zpracován jako chyba čtení (je-li to nutné k načtení nepsané části řádku mezipaměti) následované zápisem do zápisu. To ponechá všechny ostatní mezipaměti v Neplatný stavu a aktuální mezipaměti v souboru Rezervováno Stát.
Toto je varianta protokolu MESI, ale neexistuje žádná explicitní operace čtení pro vlastnictví nebo neplatnost vysílání, která by přinesla řádek do mezipaměti v Výhradní stavu bez provedení zápisu do hlavní paměti. Místo toho první zápis do a Platný (aka Sdílené) řádek mezipaměti provádí zápis do paměti, což implicitně zneplatňuje ostatní mezipaměti. Poté je linka v Rezervováno (Výhradní) a další zápisy lze provádět bez odkazu na hlavní paměť, přičemž řádek mezipaměti zůstane v souboru Špinavý (Upraveno) Stát.
Reference
- Archibald, J .; Baer, J. L. (listopad 1986). "Protokoly koherence mezipaměti: Vyhodnocení pomocí simulačního modelu s více procesory". ACM Trans. Comput. Syst. 4 (4): 273–298. doi:10.1145/6513.6514.
- Goodman, J. R. (1983). "Použití mezipaměti ke snížení provozu paměti procesoru". Sborník příspěvků z 10. ročníku mezinárodního sympozia o počítačové architektuře - ISCA '83. Mezinárodní symposium o počítačové architektuře: Stockholm, Švédsko, 13. – 17. Června 1983. s. 124–131. doi:10.1145/800046.801647. ISBN 0-89791-101-6.