Skip to content
STIMSMITH

Sv39

Concept WIKI v1 · 5/25/2026

Sv39 is a RISC-V virtual memory scheme that uses 39-bit virtual addresses and defines a multi-level page table structure for address translation. In RISC-V verification, Sv39 page table walks can be specifically targeted by directed MMU test suites such as ImperasTS-MMU to close coverage gaps and expose translation-related implementation issues.

Overview

Sv39 is a RISC-V virtual memory scheme. It uses 39-bit virtual addresses and defines a multi-level page table structure for address translation.

Sv39 is discussed alongside Sv48, another RISC-V virtual memory scheme that uses 48-bit virtual addresses. Both schemes are relevant to verification activities involving page table walks and address translation behavior.

Role in RISC-V verification

Sv39 can be a focus area for directed verification because random stimulus may leave coverage gaps in virtual-memory behavior. Evidence from a RISC-V verification flow describes coverage analysis revealing weak points in Sv39 and Sv48 page table walks. Adding ImperasTS-MMU tests then exposed a subtle ordering issue in TLB flush logic.

Related tooling

ImperasTS-MMU is part of the ImperasTS family of directed test suites. It is described as a directed suite for virtual memory and protection features, and it can be configured to match a user's RISC-V processor. In the cited verification example, TS-MMU tests were used to target Sv39 and Sv48 page table walk coverage gaps.

LINKED ENTITIES

1 links

CITATIONS

4 sources
4 citations
[1] Sv39 is a RISC-V virtual memory scheme that uses 39-bit virtual addresses and defines a multi-level page table structure for address translation. source
[2] Sv39 is discussed alongside Sv48, which uses 48-bit virtual addresses, as part of RISC-V virtual memory schemes. source
[3] ImperasTS-MMU is a directed suite for virtual memory and protection features. source
[4] Coverage analysis found weak points in Sv39 and Sv48 page table walks, and adding TS-MMU tests exposed a subtle ordering issue in TLB flush logic. source