Skip to content

Latest commit

 

History

History
60 lines (38 loc) · 1.85 KB

Status.md

File metadata and controls

60 lines (38 loc) · 1.85 KB

The Sail specification currently captures the following ISA features:

  • The RV32I and RV64I primary base ISAs.

  • The M (multiply/divide), A (atomic), and C (compressed) Standard Extensions.

  • The F (single-precision) and D (double-precision) Floating-Point Standard Extensions. This is only executable in the C emulator, which uses the SoftFloat C library.

  • The Zicsr Control and Status Register Standard Extension.

  • The N Standard Extension for User-Level Interrupts.

  • The Base Counters and Timers.

  • The Machine-Level and Supervisor-Level ISAs for RV32 and RV64.

  • Physical Memory Protection (PMP)

  • PMP Enhancements for memory accesses and execution prevention on Machine mode (Smepmp)

For the RVWMO memory consistency model, this Sail ISA semantics is integrated with the RVWMO operational model in the RMEM tool.

The Sail specification is parameterized over the following platform-specific options:

  • handling of misaligned data accesses with or without M-mode traps.

  • updating of the PTE dirty bit with or without architectural exceptions.

  • the contents of the mtval register on an illegal instruction exception.

The following ISA features are specified in the prose RISC-V ISA specification but not currently in the Sail specification.

  • The RV32E and RV64E subsets of the primary base RV32I and RV64I integer ISAs.

  • The RV128 primary base ISA.

  • Specification and implementation of Endianness Control.

  • Support for changing XLEN or base ISA control using the {M,S,U}XL fields of mstatus. The model only supports MXLEN=SXLEN=ULEN.

  • A complete definition of all hardware performance counters. These are used to count platform-specific events, and hence platform-dependent.

  • A specification of the Physical Memory Attributes (PMAs) for the physical memory map.

  • The Hypervisor Extension.