diff options
author | Andrew Waterman <andrew@sifive.com> | 2018-11-30 14:54:41 -0800 |
---|---|---|
committer | Andrew Waterman <andrew@sifive.com> | 2018-11-30 14:56:46 -0800 |
commit | 1d8fbc86a56d9b200bdc6fa5d20afa2aa0d3af8d (patch) | |
tree | f276100e23724eb30f83722885ecaf99467aab0e /src/intro.tex | |
parent | 71356274220e31b42d6b62dc4f6deaeeef9f42de (diff) | |
download | riscv-isa-manual-1d8fbc86a56d9b200bdc6fa5d20afa2aa0d3af8d.zip riscv-isa-manual-1d8fbc86a56d9b200bdc6fa5d20afa2aa0d3af8d.tar.gz riscv-isa-manual-1d8fbc86a56d9b200bdc6fa5d20afa2aa0d3af8d.tar.bz2 |
48+-bit instruction-length encoding scheme is not frozen
See issue #280
Diffstat (limited to 'src/intro.tex')
-rw-r--r-- | src/intro.tex | 30 |
1 files changed, 19 insertions, 11 deletions
diff --git a/src/intro.tex b/src/intro.tex index 05977ac..be87c73 100644 --- a/src/intro.tex +++ b/src/intro.tex @@ -427,7 +427,7 @@ implicit reads, software must execute fence or cache-control instructions to ensure specific ordering of memory accesses beyond the requirements of the assumed memory consistency model and execution environment. -\section{Instruction Length Encoding} +\section{Base Instruction-Length Encoding} The base RISC-V ISA has fixed-length 32-bit instructions that must be naturally aligned on 32-bit boundaries. However, the standard RISC-V @@ -456,15 +456,23 @@ Figure~\ref{instlengthcode} illustrates the standard RISC-V instruction-length encoding convention. All the 32-bit instructions in the base ISA have their lowest two bits set to {\tt 11}. The optional compressed 16-bit instruction-set extensions have their -lowest two bits equal to {\tt 00}, {\tt 01}, or {\tt 10}. Standard -instruction-set extensions encoded with more than 32 bits have -additional low-order bits set to {\tt 1}, with the conventions for -48-bit and 64-bit lengths shown in Figure~\ref{instlengthcode}. -Instruction lengths between 80 bits and 176 bits are encoded using a -3-bit field in bits [14:12] giving the number of 16-bit words in -addition to the first 5$\times$16-bit words. The encoding with bits -[14:12] set to {\tt 111} is reserved for future longer instruction -encodings. +lowest two bits equal to {\tt 00}, {\tt 01}, or {\tt 10}. + +\subsection*{Expanded Instruction-Length Encoding} + +A portion of the 32-bit instruction-encoding space has been allocated for +instructions longer than 32 bits. The entirety of this space is reserved at +this time, and the following proposal for encoding instructions longer +than 32 bits is not considered frozen. + +Standard instruction-set extensions +encoded with more than 32 bits have additional low-order bits set to {\tt 1}, +with the conventions for 48-bit and 64-bit lengths shown in +Figure~\ref{instlengthcode}. Instruction lengths between 80 bits and 176 bits +are encoded using a 3-bit field in bits [14:12] giving the number of 16-bit +words in addition to the first 5$\times$16-bit words. The encoding with bits +[14:12] set to {\tt 111} is reserved for future longer instruction encodings. + \begin{figure}[hbt] { @@ -514,7 +522,7 @@ Byte Address: & \multicolumn{1}{r}{base+4} & \multicolumn{1}{r}{base+2} & \multi \end{tabular} \end{center} } -\caption{RISC-V instruction length encoding.} +\caption{RISC-V instruction length encoding. Only the 16-bit and 32-bit encodings are considered frozen at this time.} \label{instlengthcode} \end{figure} |