Wat is LR/SC?

Paar instructies: load-reserved (LR) en store-conditional (SC). Ook LL en SC genoemd. Als na LR een andere core naar dat adres schrijft, mislukt SC, waardoor atomaire updates kunnen worden gebouwd.

Japanse benaming: LR/SC

“LR/SC” komt voor in 3 oefenvragen uit 1 onderwerpen, bijv. Multicore en synchronisatie.

Vakgebied: Multicore en synchronisatie

Nu oefenen: vragen over LR/SC

Wanneer mislukt bij een instructiepaar zoals LR/SC (load-reserved/store-conditional) van RISC-V de SC (store-conditional)?

  1. AWanneer de met SC te schrijven waarde gelijk is aan de met LR gelezen waarde
  2. BWanneer tussen LR en SC de reservering verloren is gegaan, bijvoorbeeld doordat een andere core naar dat adres heeft geschreven
  3. CWanneer tussen LR en SC ook maar één andere instructie is uitgevoerd
Antwoord en toelichting tonen

Antwoord: B. Wanneer tussen LR en SC de reservering verloren is gegaan, bijvoorbeeld doordat een andere core naar dat adres heeft geschreven

LR 'reserveert' dat adres terwijl het de waarde leest. Bij het latere schrijven met SC lukt het als de reservering behouden is, en bij verlies van de reservering, bijvoorbeeld door een schrijfactie van een andere core, wordt niet geschreven en een mislukking gemeld. Waar CAS de gelijkheid van waarden controleert, controleert LR/SC of er is geschreven, zodat ook gevallen worden gedetecteerd waarin de waarde is veranderd en teruggekeerd. ARM heeft een vergelijkbaar instructiepaar.

“LR/SC” in de toelichting

Vragen met “LR/SC” (3)

  1. Wanneer mislukt bij een instructiepaar zoals LR/SC (load-reserved/store-conditional) van RISC-V de SC (store-conditional)?
  2. Welke uitleg over atomaire instructies (ondeelbare instructies) is juist?
  3. Welke uitleg over het ABA-probleem, dat bij lock-free datastructuren met CAS aandacht vraagt, is juist?

Verwante termen

Lock-free Atomaire instructie Numerieke apertuur (NA) Compare-and-swap ABA-probleem Acquire-release Barrièresynchronisatie Conditievariabele Data race Deadlock

Naar de woordenlijst