You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Aug 20, 2024. It is now read-only.
Current riscv-mini implements RV32I of the User-level ISA Version 2.0 and the Machine-level ISA of the Privileged Architecture Version 1.7. This requires the users to build and install RISC-V tools for priv 1.7. If we upgrade the implement to user-level ISA to version 2.2 and privileged architecture to version 1.10, users could download latest pre-built compiler from xpack-dev-tools and generate the executable much easier.
Major User-level Base ISA Changes
Changes from v2.1 to v2.2
Rearranged chapters to put all extensions first in canonical order.
Improvements to the description and commentary.
Modified implicit hinting suggestion on JALR to support more efficient macro-op fusion of
LUI/JALR and AUIPC/JALR pairs.
Clarification of constraints on load-reserved/store-conditional sequences.
A new table of control and status register (CSR) mappings.
Clarified purpose and behavior of high-order bits of fcsr.
Specified behavior of narrower (<FLEN) floating-point values held in wider f registers using
NaN-boxing model.
Defined the exception behavior of FMA(∞, 0, qNaN).
Changes from v2.0 to v2.1
Modification to long instruction encodings >64 bits to avoid moving the rd specifier in very
long instruction formats.
CSR instructions are now described in the base integer format where the counter registers
are introduced, as opposed to only being introduced later in the floating-point section (and
the companion privileged architecture manual).
The SCALL and SBREAK instructions have been renamed to ECALL and EBREAK, re-
spectively. Their encoding and functionality are unchanged.
Clarification of LR/SC allowed successes and required failures, including use of compressed
instructions in the sequence.
Major Privileged Architecture Changes
Changes from v1.9.1 to v1.10
The explicit convention on shadow CSR addresses has been removed to reclaim CSR space.
Shadow CSRs can still be added as needed.
The mvendorid register now contains the JEDEC code of the core provider as opposed to
a code supplied by the Foundation. This avoids redundancy and offloads work from the
Foundation.
The interrupt-enable stack discipline has been simplified.
An optional mechanism to change the base ISA used by supervisor and user modes has been
added to the mstatus CSR, and the field previously called Base in misa has been renamed
to MXL for consistency.
Clarified expected use of XS to summarize additional extension state status fields in mstatus.
Optional vectored interrupt support has been added to the mtvec and stvec CSRs.
The SEIP and UEIP bits in the mip CSR have been redefined to support software injection
of external interrupts.
The mbadaddr register has been subsumed by a more general mtval register that can now
capture bad instruction bits on an illegal instruction fault to speed instruction emulation.
The machine-mode base-and-bounds translation and protection schemes have been removed
from the specification as part of moving the virtual memory configuration to sptbr (now
satp). Some of the motivation for the base and bound schemes are now covered by the PMP
registers, but space remains available in mstatus to add these back at a later date if deemed
useful.
In systems with only M-mode, or with both M-mode and U-mode but without U-mode
trap support, the medeleg and mideleg registers now do not exist, whereas previously they
returned zero.
Virtual-memory page faults now have mcause values distinct from physical-memory access
exceptions. Page-fault exceptions can now be delegated to S-mode without delegating excep-
tions generated by PMA and PMP checks.
An optional physical-memory protection (PMP) scheme has been proposed.
The supervisor virtual memory configuration has been moved from the mstatus register to
the sptbr register. Accordingly, the sptbr register has been renamed to satp (Supervisor Address Translation and Protection) to reflect is broadened role.
The SFENCE.VM instruction has been removed in favor of the improved SFENCE.VMA
instruction.
The mstatus bit MXR has been exposed to S-mode via sstatus.
The polarity of the PUM bit in sstatus has been inverted to shorten code sequences involving
MXR. The bit has been renamed to SUM.
Hardware management of page-table entry Accessed and Dirty bits has been made optional;
simpler implementations may trap to software to set them.
The counter-enable scheme has changed, so that S-mode can control availability of counters
to U-mode.
H-mode has been removed, as we are focusing on recursive virtualization support in S-mode.
The encoding space has been reserved and may be repurposed at a later date.
A mechanism to improve virtualization performance by trapping S-mode virtual-memory
management operations has been added.
The Supervisor Binary Interface (SBI) chapter has been removed, so that it can be maintained
as a separate specification.
Changes from v1.9 to v1.9.1
Numerous additions and improvements to the commentary sections.
Change configuration string proposal to be use a search process that supports various formats
including Device Tree String and flattened Device Tree.
Made misa optionally writable to support modifying base and supported ISA extensions.
CSR address of misa changed.
Added description of debug mode and debug CSRs.
Added a hardware performance monitoring scheme. Simplified the handling of existing hard-
ware counters, removing privileged versions of the counters and the corresponding delta reg-
isters.
Fixed description of SPIE in presence of user-level interrupts.
Changes from v1.7 to v1.9
(Not yet available.)
For more details, please refer to the documents here.
Please leave your comments.
The text was updated successfully, but these errors were encountered:
Current
riscv-mini
implements RV32I of the User-level ISA Version 2.0 and the Machine-level ISA of the Privileged Architecture Version 1.7. This requires the users to build and install RISC-V tools for priv 1.7. If we upgrade the implement to user-level ISA to version 2.2 and privileged architecture to version 1.10, users could download latest pre-built compiler from xpack-dev-tools and generate the executable much easier.Major User-level Base ISA Changes
Changes from v2.1 to v2.2
LUI/JALR and AUIPC/JALR pairs.
NaN-boxing model.
Changes from v2.0 to v2.1
long instruction formats.
are introduced, as opposed to only being introduced later in the floating-point section (and
the companion privileged architecture manual).
spectively. Their encoding and functionality are unchanged.
instructions in the sequence.
Major Privileged Architecture Changes
Changes from v1.9.1 to v1.10
Shadow CSRs can still be added as needed.
a code supplied by the Foundation. This avoids redundancy and offloads work from the
Foundation.
added to the mstatus CSR, and the field previously called Base in misa has been renamed
to MXL for consistency.
of external interrupts.
capture bad instruction bits on an illegal instruction fault to speed instruction emulation.
from the specification as part of moving the virtual memory configuration to sptbr (now
satp). Some of the motivation for the base and bound schemes are now covered by the PMP
registers, but space remains available in mstatus to add these back at a later date if deemed
useful.
trap support, the medeleg and mideleg registers now do not exist, whereas previously they
returned zero.
exceptions. Page-fault exceptions can now be delegated to S-mode without delegating excep-
tions generated by PMA and PMP checks.
the sptbr register. Accordingly, the sptbr register has been renamed to satp (Supervisor Address Translation and Protection) to reflect is broadened role.
instruction.
mstatus
bit MXR has been exposed to S-mode via sstatus.MXR. The bit has been renamed to SUM.
Hardware management of page-table entry Accessed and Dirty bits has been made optional;
simpler implementations may trap to software to set them.
to U-mode.
management operations has been added.
as a separate specification.
Changes from v1.9 to v1.9.1
including Device Tree String and flattened Device Tree.
CSR address of misa changed.
ware counters, removing privileged versions of the counters and the corresponding delta reg-
isters.
Changes from v1.7 to v1.9
(Not yet available.)
For more details, please refer to the documents here.
Please leave your comments.
The text was updated successfully, but these errors were encountered: