1- \chapter {`` Zihintpause'' Pause Hint, Version 2 .0 }
1+ \chapter {`` Zihintpause'' Pause Hint, Version 1 .0 }
22\label {chap:zihintpause }
33
4- {\bf Warning! This draft specification is likely to change before being
5- accepted as standard by the RISC-V Foundation.}
6-
74The PAUSE instruction is a HINT that indicates the current hart's rate of
8- instruction retirement should be temporarily reduced. The duration of its
9- effect must be bounded.
5+ instruction retirement should be temporarily reduced or paused . The duration of its
6+ effect must be bounded and may be zero. No architectural state is changed .
107
118\begin {commentary }
129Software can use the PAUSE instruction to reduce energy consumption while
1310executing spin-wait code sequences. Multithreaded cores might temporarily
1411relinquish execution resources to other harts when PAUSE is executed.
12+ It is recommended that a PAUSE instruction generally be included in the code
13+ sequence for a spin-wait loop.
1514
1615A future extension might add primitives similar to the x86 MONITOR/MWAIT
1716instructions, which provide a more efficient mechanism to wait on writes to
@@ -31,8 +30,8 @@ \chapter{``Zihintpause'' Pause Hint, Version 2.0}
3130PAUSE is encoded as a FENCE instruction with {\em pred}=W and {\em succ}=0.
3231
3332\begin {commentary }
34- We encoded PAUSE as a hint within the FENCE opcode because we expect some
35- implementations to deliberately stall the PAUSE instruction until outstanding
33+ PAUSE is encoded as a hint within the FENCE opcode because some
34+ implementations are expected to deliberately stall the PAUSE instruction until outstanding
3635memory transactions have completed.
3736Because the successor set is null, however, PAUSE does not {\em mandate} any
3837particular memory ordering---hence, it truly is a HINT.
0 commit comments