The increasing complexity of real-time embedded critical systems has driven the adoption of new methodologies to mitigate high development costs. One of the most common approaches is the implementation of mixed-criticality systems, characterized by integrating applications with different levels of criticality on the same processing unit. In these systems, applications run on a separation kernel hypervisor, a software element that controls the execution of the different operating systems, providing a virtualized environment and ensuring the necessary spatial and temporal isolation. This paper presents the design and implementation of hardware virtualization extensions for LEON processors, whose use is widespread in the field of space systems. These extensions enable the execution of virtualized applications with minimal transitions to the hypervisor, enhancing system performance. Our proposed solution defines a specific execution mode and duplicates control and status registers for the exclusive use of virtualized applications. In addition, the functionality of the hardware and software interrupt signals has been extended, allowing developers to select which ones are handled by the hypervisor and which ones by the guest operating systems directly. We have implemented the proposed extension using the LEON version 3 processor’s original VHDL code, and validated it using exhaustive tests to evaluate performance and resource consumption. The results show that the proposed modifications allow virtualized applications to execute without hypervisor intervention, matching the performance when non-virtualized while significantly outperforming existing para-virtualization solutions. Resource consumption increases by 6% to 14%, depending on the FPGA, which is low when compared to available resources. Power consumption increases by only a few milliwatts, which can be considered negligible.
Read full abstract