SoomRV is a cutting-edge superscalar out-of-order RISC-V microprocessor that executes up to 4 instructions per cycle, delivering impressive performance for Linux booting and more. Designed for flexibility, it runs efficiently on FPGA, offering a robust architecture with advanced memory handling and support for various execution modes. Dive into the world of high-performance computing with SoomRV.
SoomRV is an innovative superscalar out-of-order RISC-V microprocessor designed for high-performance computing. This core can execute up to 4 instructions per cycle, making it an excellent choice for those looking to explore modern processor architecture. Not only does SoomRV support Linux booting capabilities, but it also showcases impressive execution efficiency with a default configuration scoring 5.42 CoreMark/MHz and between 4.0 to 11.8 DMIPS/MHz, depending on compiler flags.
Key Features:
- RV32IMAC+ Instruction Set: Enhanced instruction set for RISC-V architecture.
- 4-Wide Superscalar Out-of-Order Execution: The core features a tag-indexed register file along with load-after-issue capabilities for improved performance.
- Compatibility with RISC-V Privileged Spec: This includes modes such as M/S/U and support for virtual memory, facilitating Linux boot processes.
- Advanced Instruction Fetch: Supports 16-byte fetches with TAGE direction prediction and a recovering return stack.
- Memory Optimization: Allows for 2 loads per cycle, utilizing a VIPT cache and includes late store data gathering, ensuring efficient memory management.
Visualization of Functionality:
A detailed architectural overview can be found here along with a sample execution visualization using Konata:
Simulation and Usage:
- Set up the RV32 Linux Toolchain and Verilator (version 5.0 or higher).
- Build necessary submodules with
make setup
. - Compile the code with
make
, or generate VCD traces usingmake trace
. - To execute bare-metal applications, use commands like
./obj_dir/VTop <assembly file>
, for example, to run the Dhrystone benchmark:./obj_dir/VTop test_programs/dhry_1.s
. - For Linux operation, run
./obj_dir/VTop --perfc --device-tree=test_programs/linux/device_tree.dtb test_programs/linux/linux_image.elf
to boot into the Linux environment.
Experimental Save/Restore Capabilities:
SoomRV introduces an experimental feature that allows users to save and restore simulation states, ensuring a seamless developer experience during testing and debugging.
For a comprehensive understanding of the project, including usage guidelines and detailed documentation, please refer to the Overview in the repository.