Cache sammenhæng

Cachekohærens er en  egenskab ved caches , hvilket betyder integriteten af ​​data, der er gemt i lokale caches for en delt ressource . Cachekohærens er et særligt tilfælde af hukommelsessammenhæng .

Når processer i systemet bruger caching til delte ressourcer, såsom hukommelse, kan der opstå datainkonsistensproblemer. Dette gælder især for processorer i et multiprocessorsystem . Cachekohærens er designet til at håndtere sådanne konflikter ved at opretholde datakonsistens på tværs af forskellige caches.

Kohærens definerer adfærden for læsning og skrivning til den samme hukommelsesplacering. En cache kaldes kohærent, hvis følgende betingelser er opfyldt [1] :

Under disse forhold antages læse- og skriveoperationer at være øjeblikkelige. Dette sker dog ikke i praksis på grund af hukommelsesforsinkelser og andre arkitektoniske træk. Ændringer foretaget af processoren er muligvis ikke synlige for processoren, hvis læsningen sker meget kort efter skrivningen. Hukommelseskonsistensmodellen bestemmer, hvornår en skrevet værdi vil være synlig, når den læses fra en anden tråd.

Mekanismer for cache-kohærens

De tre hovedmekanismer til at sikre kohærens i cache er at bruge en mappe ( mappe ), sporing ( snooping ) og aflytning ( snarfing ).

Når du bruger biblioteket, er information om tilstanden af ​​den fysiske hukommelsesblok kun indeholdt ét sted, kaldet biblioteket (i dette tilfælde kan biblioteket fysisk fordeles mellem systemknuderne).

I sporingsmekanismen har hver cache, der indeholder en kopi af dataene fra en blok af fysisk hukommelse, også en tilsvarende kopi af serviceinformationen om dens tilstand. Der er ikke noget centraliseret journalsystem. Typisk er caches placeret på en delt (delt) bus, og controllerne for alle caches ser (kigger igennem) bussen for at afgøre, om de indeholder en kopi af den tilsvarende blok.

Når aflytning anvendes, når data fra en cache skrives til RAM, modtager controllerne for de andre et signal om denne ændring ("opsnappe" information om dataændringen) og om nødvendigt ændre de tilsvarende data i deres cache.

Distribuerede delte hukommelsessystemer bruger lignende mekanismer til at opretholde konsistens mellem hukommelsesblokke i løst koblede systemer .

Protokoller til opretholdelse af sammenhæng

Kohærensprotokollerne er ansvarlige for at opretholde datakorrekthed mellem alle caches i et distribueret delt hukommelsessystem. Protokollen opretholder hukommelsessammenhæng i henhold til den valgte kohærensmodel . De fleste hardwareprotokoller i processorer (inklusive dem, der giver cache-kohærent ikke-ensartet hukommelsesadgang ) svarer til den sekventielle konsistensmodel , og softwareprotokoller i softwaredistribuerede hukommelsessystemer implementerer oftere modeller for outputkonsistens ( engelsk  udgivelseskonsistens ) eller svag konsistens ( engelsk )  svag konsistens ).

De vigtigste modeller og protokoller til understøttelse af cache-sammenhæng er:

Noter

  1. Yan, Solihin. Fundamentals of parallel multicore-arkitektur  (neopr.) .
  2. 1 2 [1] Arkiveret 3. juli 2010 på Wayback Machine Multi Processors, deres hukommelsesorganisationer og implementeringer af Intel & AMD
  3. Principper for cachehukommelse - Rækkestatusindikatorer . Dato for adgang: 15. oktober 2009. Arkiveret fra originalen 25. januar 2009.
  4. StackPath . Hentet 12. marts 2019. Arkiveret fra originalen 16. februar 2019.
  5. Hvordan AMBA CCIX og GenZ imødekommer datacentrets behov - Processors blog - Processors - Arm Community . Hentet 12. marts 2019. Arkiveret fra originalen 12. december 2019.
  6. GitHub - westerndigitalcorporation/omnixtend: Et åbent standard Cache Coherent Fabric Interface-lager . Hentet 12. marts 2019. Arkiveret fra originalen 26. august 2020.
  7. Arkiveret kopi (link ikke tilgængeligt) . Hentet 12. marts 2019. Arkiveret fra originalen 22. februar 2019. 
  8. Google, SiFive og WD danner Alliance for at fremme åbne chips og SoC'er . Hentet 12. marts 2019. Arkiveret fra originalen 14. marts 2019.
  9. Western Digital afslører SweRV RISC-V Core, Cache Coherency over Ethernet Initiative . Hentet 12. marts 2019. Arkiveret fra originalen 25. april 2019.

Litteratur