aboutsummaryrefslogtreecommitdiff
path: root/src/intro.tex
diff options
context:
space:
mode:
authorKrste Asanovic <krste@eecs.berkeley.edu>2018-07-06 13:03:18 -0700
committerKrste Asanovic <krste@eecs.berkeley.edu>2018-07-06 13:03:18 -0700
commit2e685986f738799fa36cb004ba0a5e649455c91d (patch)
tree73de84d5949e603bcc4b383d914b314e85527753 /src/intro.tex
parentb2c306f6310aae65ac52e273dc204550ec776e7e (diff)
downloadriscv-isa-manual-2e685986f738799fa36cb004ba0a5e649455c91d.zip
riscv-isa-manual-2e685986f738799fa36cb004ba0a5e649455c91d.tar.gz
riscv-isa-manual-2e685986f738799fa36cb004ba0a5e649455c91d.tar.bz2
Changes to intro as part of rationalizing ISA into ISA-only versus platform-mandates, and to make clearer there can be alternative privileged architectures.
Diffstat (limited to 'src/intro.tex')
-rw-r--r--src/intro.tex37
1 files changed, 19 insertions, 18 deletions
diff --git a/src/intro.tex b/src/intro.tex
index 22976f5..ec88e2a 100644
--- a/src/intro.tex
+++ b/src/intro.tex
@@ -22,7 +22,7 @@ implementations. Our goals in defining RISC-V include:
purposes, and optional standard extensions, to support
general-purpose software development.
\item Support for the revised 2008 IEEE-754 floating-point standard~\cite{ieee754-2008}.
-\item An ISA supporting extensive user-level ISA extensions and
+\item An ISA supporting extensive ISA extensions and
specialized variants.
\item Both 32-bit and 64-bit address space variants for
applications, operating system kernels, and hardware implementations.
@@ -33,8 +33,7 @@ implementations. Our goals in defining RISC-V include:
instruction encoding} for improved performance, static code size,
and energy efficiency.
\item A fully virtualizable ISA to ease hypervisor development.
-\item An ISA that simplifies experiments with new supervisor-level and
- hypervisor-level ISA designs.
+\item An ISA that simplifies experiments with new privileged architecture designs.
\end{itemize}
\vspace{-0.1in}
@@ -55,24 +54,24 @@ the ISA design.
\end{commentary}
The RISC-V manual is structured in two volumes. This volume covers
-the user-level ISA design, including optional ISA extensions. The
-second volume provides the privileged architecture. This user-level
-manual could more correctly be named the ``unprivileged'' ISA manual,
-as any implemented user-level instructions are generally available and
-usable in all privilege modes, though behavior might vary depending on
-privilege mode.
+the design of the base {\em unprivileged} instructions, including
+optional unprivileged ISA extensions. Unprivileged instructions are
+those that are generally usable in all privilege modes, though
+behavior might vary depending on privilege mode. The second volume
+provides the design of the first (``classic'') privileged
+architecture.
\begin{commentary}
-In the user-level ISA design, we tried to remove any dependence on
+In the unprivileged ISA design, we tried to remove any dependence on
particular microarchitectural features or on privileged architecture
details. This is both for simplicity and to allow maximum flexibility
for alternative microarchitecture or privileged architecture
implementations.
\end{commentary}
-\section{RISC-V Platform Terminology}
+\section{RISC-V Hardware Platform Terminology}
-A RISC-V platform can contain one or more RISC-V-compatible
+A RISC-V hardware platform can contain one or more RISC-V-compatible
processing cores together with other non-RISC-V-compatible cores,
fixed-function accelerators, various physical memory structures, I/O
devices, and an interconnect structure to allow the components to
@@ -107,7 +106,7 @@ might be structured as a hierarchy of multicomputers and/or
multiprocessors to modularize development effort or to provide secure
isolation between subsystems.
-\section{Execution Environments and Harts}
+\section{RISC-V Software Execution Environments and Harts}
The behavior of a RISC-V program depends on the execution environment
in which it runs. The execution environment defines the initial state
@@ -121,7 +120,7 @@ hardware and software. For example, opcode traps and software
emulation can be used to implement functionality not provided in
hardware. Examples of execution environments include:
\begin{itemize}
- \item ``bare metal'' embedded hardware platforms where harts are
+ \item ``Bare metal'' embedded hardware platforms where harts are
directly implemented by physical processor threads and
instructions have full access to the physical address space
\item RISC-V operating systems that provide multiple user-level
@@ -140,6 +139,8 @@ environment, a hart is a resource that independently fetches and
executes RISC-V instructions within that execution environment. In
this respect, a hart behaves like a hardware thread resource even if
time-multiplexed onto real hardware by the execution environment.
+Some execution environments support the creation and destruction of
+additional harts.
\begin{commentary}
The term hart was introduced in the work on
@@ -172,19 +173,19 @@ except with no branch delay slots and with support for optional
variable-length instruction encodings. The base is carefully
restricted to a minimal set of instructions sufficient to provide a
reasonable target for compilers, assemblers, linkers, and operating
-systems (with additional supervisor-level operations), and so provides
+systems (with additional privileged operations), and so provides
a convenient ISA and software toolchain ``skeleton'' around which more
customized processor ISAs can be built.
Each base integer instruction set is characterized by the width of the
-integer registers and the corresponding size of the user address
+integer registers and the corresponding size of the address
space. There are two primary base integer variants, RV32I and RV64I,
described in Chapters~\ref{rv32} and \ref{rv64}, which provide 32-bit
-or 64-bit user-level address spaces respectively. Chapter~\ref{rv32e}
+or 64-bit address spaces respectively. Chapter~\ref{rv32e}
describes the RV32E subset variant of the RV32I base instruction set,
which has been added to support small microcontrollers.
Chapter~\ref{rv128} sketches a future RV128I variant of the base
-integer instruction set supporting a flat 128-bit user address space.
+integer instruction set supporting a flat 128-bit address space.
The base integer instruction sets use a two's-complement
representation for signed integer values.