Multicore und Synchronisation

Was legt ein Speicherkonsistenzmodell (Memory Consistency Model) fest?

  1. ADie Größe der Cache-Zeilen und die Zahl der Sets
  2. BDie Art der Transistoren im DRAM-Hauptspeicher
  3. CIn welcher Reihenfolge die von einem Kern ausgeführten Lese- und Schreibzugriffe auf mehrere Adressen für andere Kerne sichtbar sein können
Antwort und Erläuterung anzeigen

Antwort: C. In welcher Reihenfolge die von einem Kern ausgeführten Lese- und Schreibzugriffe auf mehrere Adressen für andere Kerne sichtbar sein können

Die CPU kann zugunsten der Leistung die Reihenfolge von Speicheroperationen ändern, etwa indem sie Schreibvorgänge im Store-Buffer sammelt oder Lesevorgänge vorzieht. Innerhalb eines Kerns ist dies so aufgebaut, dass sich das Ergebnis nicht ändert, doch für andere Kerne kann die Reihenfolge vertauscht erscheinen. Das Speicherkonsistenzmodell legt fest, welche Umordnungen auftreten können, und ist die Vereinbarung, auf deren Grundlage Programmierer korrekte Synchronisation schreiben.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Multicore und Synchronisation

  1. Welche Aussage zur sequentiellen Konsistenz (Sequential Consistency) ist richtig?
  2. Die beiden obigen Threads laufen gleichzeitig auf getrennten Kernen (ohne Umordnung durch den Compiler). Welches Ergebnis tritt bei sequentieller Konsistenz nicht auf, kann aber bei realen CPUs wie x86 auftreten?
  3. Welches Merkmal des Speicherkonsistenzmodells von x86 (TSO, Total Store Order) ist richtig?
  4. Was gilt für schwache Speicherkonsistenzmodelle wie bei ARM oder RISC-V (RVWMO)?
  5. Welche Aufgabe haben Memory-Barrier-(Fence-)Befehle?

Vergleiche zu diesem Thema