Sebastian Rahn
Development of a Memory Management Unit and Hardware Extensions that Enable Linux on a Superscalar RISC-V Processor
Abstract
The Linux operating system has become an essential tool for user applications, software
development, and research in the field of computer science. As an open-source alternative
to commercial instruction set architectures (ISAs), RISC-V has gained significant
attention, with various implementations demonstrating high-performance processors
capable of running Linux. The Osnabrück RISC-V Out-of-Order Core, a superscalar
soft-core designed for configurability and reconfigurability on FPGAs, offers the potential
for higher performance compared to the more common in-order designs. However,
the complexity of out-of-order execution presents additional challenges in the design
and implementation process. Taking these challenges into account, this thesis focuses
on extending the Osnabrück RISC-V Out-of-Order Core by implementing fundamental
components necessary to enable Linux support. An overview of the RISC-V specification
and an examination of existing open-source soft-cores identify the essential ISA
requirements for Linux compatibility. The M extension for multiplication instructions is
implemented and evaluated through performance tests, demonstrating a significant improvement
in execution efficiency compared to software-based multiplication. The Zicsr
extension, along with control and status registers, enables system-level privileges and
trap handling, seamlessly integrated into the core’s out-of-order and speculative nature.
A memory management unit supporting Linux’s virtual memory system is designed and
integrated, incorporating translation lookaside buffers to accelerate address translation
processes. The integration of these components is validated through functionality tests
in a simulation environment and synthesized for FPGA implementation, which results
are compared with high-performance, fully Linux-capable cores, providing insights
into the requirements for comprehensive Linux support.