Koherencí cache je v počítačové architektuře uniformita sdílených dat prostředků, které končí uložené ve více místních cache. Když klienti v systému udržují cache společné paměti, mohou vzniknout problémy s nesouvislými daty, což je zvláště případ u procesorů ve vícesystémovém systému. Na ilustraci vpravo zvažte, že oba klienti mají cachovanou kopii určitého paměťového bloku z předchozího čtení. Předpokládejme, že klient na spodní straně aktualizuje / změní tento paměťový blok, klient nahoře by mohl zůstat s neplatnou cache paměti bez jakéhokoli oznámení o změně. Koherencí cache je určena ke zvládnutí takových konfliktů udržováním soudržného pohledu na datové hodnoty ve více cache.
Příčiny nekonzistence cache
Nesoulad cache může nastat z několika důvodů, včetně:
Zapisování: Když jeden procesor zapíše do paměťové lokace, která je uložena v cache jiného procesoru, může dojít k nesouladu, pokud druhý procesor nebude informován o zápisu.
Čtení: Když jeden procesor čte z paměťové lokace, která je uložena v cache jiného procesoru, může dojít k nesouladu, pokud druhý procesor neaktualizoval svou cache od posledního zápisu do paměťové lokace.
Vymístění: Když je paměťová lokace, která je uložena v cache jednoho procesoru, vyměněna z cache, může dojít k nesouladu, pokud je paměťová lokace následně zapsána jiným procesorem.
Důsledky nekonzistence cache
Nesoulad cache může mít řadu negativních důsledků, včetně:
Nesprávné výsledky: Pokud procesor čte z paměťové lokace, která je uložena v jeho cache, ale nebyla aktualizována od posledního zápisu do paměťové lokace jiným procesorem, může procesor číst nesprávné údaje.
Chyby programu: Nesoulad cache může způsobit chyby programu, například segmentační chyby, pokud procesor se pokusí přistupovat k paměťové lokaci, která byla vyměněna z cache.
Zhoršený výkon: Nesoulad cache může vést ke snížení výkonu, protože procesory musí vynaložit další čas na udržování soudržnosti cache.
Techniky koherence cache
Existuje několik různých technik, které lze použít k zajištění koherence cache, včetně:
Snooping: Při snoopingu každý procesor sleduje paměťové transakce ostatních procesorů a aktualizuje svou cache podle potřeby.
Řízení adresářů: Při řízení adresářů se používá centrální adresář ke sledování umístění dat v cache různých procesorů.
Řízení řádků: Při řízení řádků se používá hardware k zajištění toho, že pouze jeden procesor má v daném okamžiku zapisovanou kopii určitého řádku cache.
Výběr techniky koherence cache
Výběr techniky koherence cache závisí na řadě faktorů, včetně:
Počet procesorů v systému: Čím více procesorů je v systému, tím důležitější je mít efektivní techniku koherence cache.
Velikost paměti cache: Čím větší je velikost paměti cache, tím větší je pravděpodobnost, že dojde k nesouladu cache.
Typ paměti: Typ paměti, která se používá, může ovlivnit výběr techniky koherence cache.
Požadavky na výkon: Požadavky na výkon systému mohou ovlivnit výběr techniky koherence cache.
Závěr
Koherencí cache je důležitým aspektem počítačové architektury, která zajišťuje, že data jsou konzistentní ve všech procesorech v systému. Existuje několik různých technik, které lze použít k zajištění koherence cache, a výběr nejlepší techniky závisí na řadě faktorů.