The first outline of the De-RISC System-on-Chip platform had general-purpose processing elements consisting of NOEL-V RISC-V RV64GC processor cores. During the Platform Requirements Definition phase of the project, the consortium identified a need for implementation of the RISC-V H extension.
The RISC-V H extension allows to run the hypervisor on the processor cores and to run unmodified operating system as guests to this hypervisor. This represents a large change compared to how these virtualization solutions have traditionally been applied within space applications. In particular on LEON based systems, where the use of hypervisor software would require modification of guest operating systems so that they would run in user mode on the processors while the hypervisor software is running in supervisor mode.
The current hardware implementation of the Hypervisor extension has targeted the current draft standard version 0.6.1. The addition of the H extension has the following effects on the NOEL-V processor core:
- Transform Supervisor mode to Hypervisor-extended Supervisor mode and adds virtualization modes VS Virtual Supervisor mode and VU Virtual User mode.
- Addition of internal processor control and status registers (CSRs) to extend the S-mode or HS-mode with hypervisor features.
- Virtual Supervisor CSRs are added to substitute the regular Supervisor CSRs when running in virtualization mode
- Some Machine mode CSRs are extended, like mstatus to handle virtualization mode status and support for some new exceptions and interrupts are added
- Two new Machine mode CSRs are also added: mtval2 and minst. To help with trap handling
- Updates of the memory management unit to support the two-stage address translation with separate Guest Physical TLBs (currently only Sv39x4 hypervisor page tables are supported)
Currently the H extension has been implemented validation efforts on FPGA running a full software stack and booting Linux as a guest operation system are currently ongoing. Following this, the XNG hypervisor software will be updated to take advantage of the features provided by the H extension.