Metadata Table
Manual Type user
Spec Revision 20181106-Base-Ratification
Spec Release Date
Git Revision 20181106-Base-Ratification
Git URLhttps://github.com/riscv/riscv-isa-manual.git
Sourcesrc/rv32e.tex
Conversion Date2023/11/12
LicenseCC-by-4.0

5 RV32E Base Integer Instruction Set, Version 1.9

This chapter describes a draft proposal for the RV32E base integer instruction set, which is a reduced version of RV32I designed for embedded systems. The only change is to reduce the number of integer registers to 16. This chapter only outlines the differences between RV32E and RV32I, and so should be read after Chapter [rv32].

RV32E was designed to provide an even smaller base core for embedded microcontrollers. Although we had mentioned this possibility in version 2.0 of this document, we initially resisted defining this subset. However, given the demand for the smallest possible 32-bit microcontroller, and in the interests of preempting fragmentation in this space, we have now defined RV32E as a fourth standard base ISA in addition to RV32I, RV64I, and RV128I. There is also interest in defining an RV64E to reduce context state for highly threaded 64-bit processors.

5.1 RV32E Programmers’ Model

RV32E reduces the integer register count to 16 general-purpose registers, (x0x15), where x0 is a dedicated zero register.

We have found that in the small RV32I core designs, the upper 16 registers consume around one quarter of the total area of the core excluding memories, thus their removal saves around 25% core area with a corresponding core power reduction.

This change requires a different calling convention and ABI. In particular, RV32E is only used with a soft-float calling convention. A new embedded ABI is under consideration that would work across RV32E and RV32I.

5.2 RV32E Instruction Set

RV32E uses the same instruction-set encoding as RV32I, except that only registers x0x15 are provided. Any future standard extensions will not make use of the instruction bits freed up by the reduced register-specifier fields and so these are available for custom extensions.