Multicore en synchronisatie
Wat gebeurt er in een ongeldigverklarend (invalidate) coherentieprotocol wanneer een core naar een regel in de toestand Shared (S) schrijft?
- ADe kopieën in andere cores blijven ongemoeid en alleen de eigen regel wordt gewijzigd
- BDe kopieën van dezelfde regel in andere cores worden ongeldig gemaakt, waarna de eigen regel naar de M-toestand gaat en wordt geschreven
- CDe caches van alle cores worden geleegd en daarna wordt geschreven
Antwoord en toelichting tonen
Antwoord: B. De kopieën van dezelfde regel in andere cores worden ongeldig gemaakt, waarna de eigen regel naar de M-toestand gaat en wordt geschreven
De S-toestand is een toestand waarin ook andere cores dezelfde regel kunnen hebben; als er zonder meer wordt geschreven, raken de andere kopieën verouderd. Daarom wordt een ongeldigverklaringsverzoek gestuurd, worden de kopieën in andere cores op de I-toestand gezet en wordt de eigen regel in de M-toestand geschreven. Wanneer een andere core die gegevens daarna leest, is dat een miss en haalt hij de nieuwste waarde op. Veel CPU's gebruiken dit ongeldigverklarende type.