Multicore en synchronisatie

Waarom wordt in systemen met veel cores directory-gebaseerde coherentie gebruikt in plaats van snooping?

  1. AOmdat wordt bijgehouden welke core elke regel heeft en alleen de betrokken cores worden geïnformeerd, zodat het verkeer afneemt
  2. BOmdat bij de directory-methode geen cache nodig is
  3. COmdat bij de directory-methode bij elke schrijfactie alle cores kunnen worden geïnformeerd
Antwoord en toelichting tonen

Antwoord: A. Omdat wordt bijgehouden welke core elke regel heeft en alleen de betrokken cores worden geïnformeerd, zodat het verkeer afneemt

Bij de directory-methode wordt per regel een tabel (directory) bijgehouden met welke cores een kopie hebben en in welke toestand. Bij een schrijfactie wordt in de directory gekeken en alleen naar de cores met een kopie een ongeldigverklaringsverzoek gestuurd. Omdat dit minder verkeer geeft dan snooping, dat alle caches tegelijk informeert, wordt het gebruikt in onder meer CPU's voor servers met enkele tientallen cores of meer.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Multicore en synchronisatie

  1. Coherentieprotocollen zijn er in ongeldigverklarende en updatende vorm. Welke is de meest passende reden dat veel CPU's het ongeldigverklarende type gebruiken?
  2. Welke uitleg over false sharing, dat bij multithreaded programma's optreedt, is juist?
  3. Bij een array van tellers per thread zoals 'long cnt[8];' treedt false sharing op. Welke maatregel is het meest geschikt?
  4. Welke uitleg over een data race is juist?
  5. Wanneer bovenstaande code door twee threads tegelijk wordt uitgevoerd, kan de uiteindelijke waarde van counter kleiner zijn dan 200000. Wat is de juiste reden?

Vergelijkingen bij dit onderwerp