Table of Contents
RISC-V ISA
All content on this page is from RISC-V Spec.
Base ISA
| ISA | Description |
|---|---|
| RV32I | Provide 32-bit address spaces. |
| RV64I | Provide 64-bit address spaces. |
| RV32E | A variant of the RV32I base instruction set, which has half the number of integer registers. |
| RV128I | Provide a flat 128-bit address space. |
Optional Instruction-Set Extensions
Each base integer ISA can be extended with one or more optional instruction-set extensions, and RISC-V foundation divides each RISC-V instruction-set encoding space (and related encoding spaces such as the CSRs) into three disjoint categories:
- Standard
Standard encodings are defined by the Foundation, and shall not conflict with other standard extensions for the same base ISA. See Table 1 for supported standard extensions. - Reserved
Reserved encodings are currently not defined but are saved for future standard extensions. - Custom
Custom encodings shall never be used for standard extensions and are made available for vendor-specific non-standard extensions.
Table 1. Standard Extensions
| Symbol | Name | Description |
|---|---|---|
I | Base integer ISA | Contains integer computational instructions, integer loads, integer stores, and control- flow instructions. |
M | Integer multiplication and division extension | Adds instructions to multiply and divide values held in the integer registers |
A | Atomic instruction extension | Adds instructions that atomically read, modify, and write memory for inter-processor synchronization. |
F | Single-precision floating-point extension | Aadds floating-point registers, single-precision computational instructions, and single-precision loads and stores. |
D | Double-precision floating-point extension | Expands the floating-point registers, and adds double-precision computational instructions, loads, and stores. |
C | Compressed instruction extension | Provides narrower 16-bit forms of common instructions |
Base Instruction-Length Encoding
IALIGN
The instruction-address alignment constraint the implementation enforces.ILEN
The maximum instruction length supported by an implementation, and which is always a multiple ofIALIGN.
Table 2. Instruction-length encoding convention
| Length(bit) | Convention |
|---|---|
| 16 | bits [1:0] equal to 00, 01, or 10. |
| 32 | bits [1:0] equal to 11. |
| 48 | bits [5:0] equal to 011111. |
| 64 | bits [6:0] equal to 0111111. |
| [80, 176] | - bits [14:12] giving the number of 16-bit words in addition to the first 5×16-bit words. - bits[6:0] equal to 1111111. |
| >= 192 (Reserved) | bits [14:12] equal to 111', bits [6:0] equal to 1111111''. |
Figure 1. RISC-V instruction length encoding
Only the 16-bit and 32-bit encodings are considered frozen at this time(1).
Assembler Mnemonics
Further Reading
- "The RISC-V Instruction Set Manual, Volume I: User-Level ISA, Document Version 20191213", Editors Andrew Waterman and Krste Asanović, RISC-V Foundation, December 2019

