6.12 Interaction with LL/SC

<< Click to Display Table of Contents >>

Navigation:  ASA-EMulatR Reference Guide > Introduction > Architecture Overview > Chapter 6 - Serialization and Stall Model >

6.12 Interaction with LL/SC

Serialization interacts tightly with LL/SC reservations. Barriers and serialization events that clear reservations include:

MB — may invalidate reservations as part of write buffer draining (store commits call breakReservationsOnCacheLine())

EXCB — clears reservations as part of exception state stabilization

Exception delivery — ReservationManager::breakReservation(cpuId) is called on any exception

PAL entry — CALL_PAL clears the local CPU's reservation as part of the serialization sequence

Pipeline flush — all reservations are cleared on flush

 

This prevents stale or unsafe atomic sequences. A store-conditional (STL_C/STQ_C) will fail if any serialization event has occurred between the corresponding load-locked and the store-conditional.

 

See Also: 5.11 Load-Locked / Store-Conditional (LL/SC); 3.15 LL/SC Interaction with the Pipeline.