diff options
author | Andrew Waterman <andrew@sifive.com> | 2019-07-26 16:51:35 -0700 |
---|---|---|
committer | Andrew Waterman <andrew@sifive.com> | 2019-07-26 16:51:35 -0700 |
commit | 9a39b75241914a210d1f4f7a342d62743cd1dcb7 (patch) | |
tree | 5ab3de87529f999be782358ae1650494d4598160 /src/intro.tex | |
parent | e87173489d7cf3818aecaf397b7e54f787cc2d31 (diff) | |
download | riscv-isa-manual-9a39b75241914a210d1f4f7a342d62743cd1dcb7.zip riscv-isa-manual-9a39b75241914a210d1f4f7a342d62743cd1dcb7.tar.gz riscv-isa-manual-9a39b75241914a210d1f4f7a342d62743cd1dcb7.tar.bz2 |
The execution environment must guarantee harts make progress
Diffstat (limited to 'src/intro.tex')
-rw-r--r-- | src/intro.tex | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/intro.tex b/src/intro.tex index 929b321..242ee8c 100644 --- a/src/intro.tex +++ b/src/intro.tex @@ -165,6 +165,22 @@ time-multiplexed onto real hardware by the execution environment. Some EEIs support the creation and destruction of additional harts, for example, via environment calls to fork new harts. +The execution environment is responsible for ensuring the eventual forward +progress of each of its harts. +For a given hart, that responsibility is suspended while the hart is +exercising a mechanism that explicitly waits for an event, such as the +wait-for-interrupt instruction defined in Volume II of this specification; and +that responsibility ends if the hart is terminated. +The following events constitute forward progress: +\vspace{-0.2in} +\begin{itemize} +\parskip 0pt +\itemsep 1pt +\item The retirement of an instruction. +\item A trap, as defined in Section~\ref{sec:trap-defn}. +\item Any other event defined by an extension to constitute forward progress. +\end{itemize} + \begin{commentary} The term hart was introduced in the work on Lithe~\cite{lithe-pan-hotpar09,lithe-pan-pldi10} to provide a term to @@ -636,6 +652,7 @@ instruction format to avoid breaking up opcode fields. \end{commentary} \section{Exceptions, Traps, and Interrupts} +\label{sec:trap-defn} We use the term {\em exception} to refer to an unusual condition occurring at run time associated with an instruction in the current |