diff options
-rw-r--r-- | src/zihintpause.tex | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/src/zihintpause.tex b/src/zihintpause.tex index bd9270f..c739e61 100644 --- a/src/zihintpause.tex +++ b/src/zihintpause.tex @@ -1,17 +1,16 @@ -\chapter{``Zihintpause'' Pause Hint, Version 2.0} +\chapter{``Zihintpause'' Pause Hint, Version 1.0} \label{chap:zihintpause} -{\bf Warning! This draft specification is likely to change before being -accepted as standard by the RISC-V Foundation.} - The PAUSE instruction is a HINT that indicates the current hart's rate of -instruction retirement should be temporarily reduced. The duration of its -effect must be bounded. +instruction retirement should be temporarily reduced or paused. The duration of its +effect must be bounded and may be zero. No architectural state is changed. \begin{commentary} Software can use the PAUSE instruction to reduce energy consumption while executing spin-wait code sequences. Multithreaded cores might temporarily relinquish execution resources to other harts when PAUSE is executed. +It is recommended that a PAUSE instruction generally be included in the code +sequence for a spin-wait loop. A future extension might add primitives similar to the x86 MONITOR/MWAIT instructions, which provide a more efficient mechanism to wait on writes to @@ -31,8 +30,8 @@ other implementations, or even on some executions on the same implementation. PAUSE is encoded as a FENCE instruction with {\em pred}=W and {\em succ}=0. \begin{commentary} -We encoded PAUSE as a hint within the FENCE opcode because we expect some -implementations to deliberately stall the PAUSE instruction until outstanding +PAUSE is encoded as a hint within the FENCE opcode because some +implementations are expected to deliberately stall the PAUSE instruction until outstanding memory transactions have completed. Because the successor set is null, however, PAUSE does not {\em mandate} any particular memory ordering---hence, it truly is a HINT. |