Wat is cache-coherentie?

Cache-coherentie is het natuurlijke probleem dat ontstaat wanneer de gegevensset van een systeem wordt geopend en gewijzigd door meerdere agenten. Het primaire gebied van computerarchitectuur waar dit een probleem wordt, is in computers met meerdere processors. Elke processor in een computer met meerdere processors heeft zijn eigen cache die informatie laadt en opslaat vanuit het RAM-geheugen. Wanneer twee processors toegang hebben tot hetzelfde geheugengebied, zou de cache-coherentie verloren gaan als bepaalde voorzorgsmaatregelen niet worden genomen.

Zonder cache-coherentie zou een multiprocessorsysteem niet kunnen functioneren. Er zijn verschillende methoden ontwikkeld om dit probleem aan te pakken en mogelijke problemen te voorkomen. Directory-gebaseerde coherentie, snooping en snarfing zijn drie methoden die worden gebruikt om het verlies van cache-coherentie te voorkomen.

Directory-gebaseerde coherentie werkt als een filter om coherentie te waarborgen. Gegevens worden in een gedeelte van het geheugen geplaatst dat toegankelijk is voor alle processors. Wanneer de informatie die is opgeslagen in dat geheugengebied wordt gewijzigd, zal het systeem de caches bijwerken of ongeldig maken.

Snooping vereist dat de processor alle toegangen tot de geheugenlocaties bewaakt die in de cache zijn opgeslagen. Hierdoor weet de processor wanneer een schrijfbewerking heeft plaatsgevonden. Door te weten wanneer een schrijfbewerking plaatsvindt, kan de processor de cache bijwerken.

Snuffelen lijkt veel op snuffelen. Snarfing omvat niet alleen het bewaken van de toegangen tot geheugenlocaties die in de cache zijn opgeslagen, maar ook het bewaken van de feitelijke informatie die in het geheugen is opgeslagen. Wanneer een geheugenschrijving optreedt, kan de cache worden bijgewerkt met de nieuwe informatie.

Directory-gebaseerde coherentiesystemen hebben een relatief hoge latentie, wat resulteert in een langzamere verwerking. Lagere bandbreedtevereisten maken op mappen gebaseerde coherentiesystemen praktisch in grootschalige toepassingen van cache-coherentie. Hoe meer processors een systeem gebruikt, hoe meer voordelen het kan hebben van het gebruik van een directory-gebaseerd coherentiesysteem.

Snooping is een veel snellere methode. Deze methode vereist meer bandbreedte dan de op mappen gebaseerde benadering. Deze methode kan effectief worden gebruikt in systemen met relatief weinig processors.

Snarfing wordt meestal niet gebruikt als een methode om de cache-coherentie te behouden. Dit komt vooral omdat snarfing meer middelen vereist om te worden gebruikt in vergelijking met zowel snooping als directory-gebaseerde methoden. Om een ​​snarfing-systeem te laten werken, moet het zowel de geheugenadressen bijhouden als de gegevens die in die geheugengebieden zijn opgeslagen. De hoeveelheid bandbreedte en verwerking die door deze methode wordt gebruikt, maakt het voor de meeste toepassingen ongewenst om de cache-coherentie te behouden.

ANDERE TALEN

heeft dit artikel jou geholpen? bedankt voor de feedback bedankt voor de feedback

Hoe kunnen we helpen? Hoe kunnen we helpen?