Multicore en synchronisatie

Twee cores hebben elk in hun eigen cache een kopie van variabele x. Welk probleem kan optreden wanneer core 1 x leest nadat core 0 naar x heeft geschreven, als er geen cachecoherentiemechanisme is?

  1. ACore 1 leest een verouderde waarde die nog in zijn eigen cache staat
  2. BDe leesactie van core 1 is altijd sneller dan de schrijfactie van core 0
  3. CDe waarde van x wordt verdubbeld gelezen
Antwoord en toelichting tonen

Antwoord: A. Core 1 leest een verouderde waarde die nog in zijn eigen cache staat

Bij een multicore-CPU ontstaan in de caches van de cores kopieën van gegevens op hetzelfde adres. Als core 0 x alleen in zijn eigen cache wijzigt, blijft in de cache van core 1 de oude waarde staan en leest core 1 die. Een cachecoherentiemechanisme zorgt ervoor, bijvoorbeeld door bij een schrijfactie de kopieën in andere cores ongeldig te maken, dat vanuit elke core de nieuwste waarde zichtbaar is.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Multicore en synchronisatie

  1. Welke combinatie van de vier toestanden van het cachecoherentieprotocol MESI is juist?
  2. Wat betekent het wanneer een cacheregel in het MESI-protocol in de toestand Modified (M) staat?
  3. Wat gebeurt er in het MESI-protocol wanneer die core naar een regel in de toestand Exclusive (E) schrijft?
  4. Wat gebeurt er in een ongeldigverklarend (invalidate) coherentieprotocol wanneer een core naar een regel in de toestand Shared (S) schrijft?
  5. Wat is het gangbare gedrag in het MESI-protocol wanneer core 1 een regel wil lezen die core 0 in de toestand Modified (M) heeft?

Vergelijkingen bij dit onderwerp