Soudržnost mezipaměti

Koherence mezipaměti je vlastnost  mezipaměti , což znamená integritu dat uložených v místních mezipaměti pro sdílený prostředek. Koherence mezipaměti je speciální případ koherence paměti .

Když procesy v systému používají mezipaměť pro sdílené prostředky, jako je paměť, mohou nastat problémy s nekonzistencí dat. To platí zejména pro procesory ve víceprocesorovém systému . Koherence mezipaměti je navržena tak, aby zvládala takové konflikty udržováním konzistence dat napříč různými mezipamětmi.

Koherence definuje chování čtení a zápisu do stejného paměťového místa. Mezipaměť se nazývá koherentní, pokud jsou splněny následující podmínky [1] :

Za těchto podmínek se operace čtení a zápisu považují za okamžité. To se však v praxi neděje kvůli zpoždění paměti a dalším architektonickým prvkům. Změny provedené procesorem nemusí být pro procesor viditelné, pokud ke čtení dojde velmi krátce po zápisu. Model konzistence paměti určuje, kdy bude zapsaná hodnota viditelná při čtení z jiného vlákna.

Mechanismy pro koherenci mezipaměti

Tři hlavní mechanismy pro zajištění koherence mezipaměti jsou použití adresáře ( directory ), sledování ( snooping ) a zachycení ( snarfing ).

Při použití adresáře jsou informace o stavu bloku fyzické paměti obsaženy pouze na jednom místě, které se nazývá adresář (v tomto případě může být adresář fyzicky distribuován mezi systémové uzly).

V mechanismu sledování má každá mezipaměť, která obsahuje kopii dat nějakého bloku fyzické paměti, také odpovídající kopii servisní informace o jejím stavu. Neexistuje žádný centralizovaný evidenční systém. Mezipaměti jsou obvykle umístěny na sdílené (sdílené) sběrnici a řadiče všech mezipamětí sledují (prohlížejí) sběrnici, aby určily, zda obsahují kopii odpovídajícího bloku.

Při použití odposlechu, kdy jsou data z libovolné jedné mezipaměti zapsána do RAM, dostanou řadiče ostatních signál o této změně („zachytí“ informaci o změně dat) a v případě potřeby změní odpovídající data ve svých mezipaměti.

Systémy distribuované sdílené paměti používají podobné mechanismy k udržení konzistence mezi bloky paměti ve volně propojených systémech.

Protokoly pro zachování koherence

Koherenční protokoly jsou zodpovědné za udržování správnosti dat mezi všemi mezipaměti v systému distribuované sdílené paměti. Protokol zachovává koherenci paměti podle zvoleného koherenčního modelu . Většina hardwarových protokolů v procesorech (včetně těch, které poskytují cache-koherentní nejednotný přístup k paměti ) odpovídá sekvenčnímu modelu konzistence a softwarové protokoly v softwarových distribuovaných paměťových systémech častěji implementují modely výstupní konzistence ( anglicky  release konzistence ) nebo slabé konzistence ( anglicky  slabá konzistence ).

Hlavní modely a protokoly pro podporu koherence mezipaměti jsou:

Poznámky

  1. Yan, Solihin. Základy paralelní vícejádrové architektury  (neopr.) .
  2. 1 2 [1] Archivováno 3. července 2010 na Wayback Machine Multi Processors, jejich organizace paměti a implementace společností Intel a AMD
  3. Principy indikátorů stavu mezipaměti - řádek . Datum přístupu: 15. října 2009. Archivováno z originálu 25. ledna 2009.
  4. StackPath . Získáno 12. března 2019. Archivováno z originálu 16. února 2019.
  5. Jak AMBA CCIX a GenZ řeší potřeby datového centra - Blog Processors - Processors - Arm Community . Získáno 12. března 2019. Archivováno z originálu 12. prosince 2019.
  6. GitHub – westerndigitalcorporation/omnixtend: Otevřený standardní repozitář Cache Coherent Fabric Interface . Získáno 12. března 2019. Archivováno z originálu dne 26. srpna 2020.
  7. Archivovaná kopie (odkaz není dostupný) . Získáno 12. března 2019. Archivováno z originálu 22. února 2019. 
  8. Google, SiFive a WD tvoří alianci pro pokrok otevřených čipů a SoC . Získáno 12. března 2019. Archivováno z originálu dne 14. března 2019.
  9. Western Digital odhaluje jádro SweRV RISC-V, iniciativu Cache Coherency over Ethernet . Získáno 12. března 2019. Archivováno z originálu dne 25. dubna 2019.

Literatura