SYNC instruction is implemented in a "lightweight" manner: after decoding a SYNC instruction, the processor continues to fetch and decode further instructions. It is allowed to issue load and store instructions speculatively and out-of-order, following a SYNC.
The R10000 processor only allows a SYNC instruction to graduate when the following conditions are met:
A SYNC instruction is not prevented from graduating if the uncached buffer contains any uncached accelerated stores.