Fast Interpreter-Based Instruction Set Simulation for Virtual Prototypes

Activity: Talk or presentationContributed talkscience-to-science

Description

The Instruction Set Simulators (ISSs) used in Virtual Prototypes (VPs) are typically implemented as interpreters with the goal to be easy to understand, and fast to adapt and extend. However, the performance of instruction interpretation is very limited and the ever-increasing complexity of Hardware (HW) poses an increasing challenge to this approach. In this paper, we present optimization techniques for interpreter-based ISSs that significantly boost performance while preserving comprehensibility and adaptability. We consider the RISC-V ISS of an existing, SystemC-based open-source VP with extensive capabilities such as running Linux and interactive graphical applications. The optimization techniques feature a Dynamic Basic Block Cache (DBBCache) to accelerate ISS instruction processing and a Load/Store Cache (LSCache) to speed up ISS load and store operations to and from memory. In our evaluation, we consider 12 Linux-based benchmark workloads and compare our optimizations to the original VP as well as to the very efficient official RISC-V reference simulator Spike maintained by RISC-V International. Overall, we achieve up to 406.97 Million Instructions per Second (MIPS) and a significant average performance increase, by a factor of 8.98 over the original VP and 1.65 over the Spike simulator. To showcase the retention of both comprehensibility and adaptability, we implement support for RISC-V half-precision floating-point extension (Zfh) in both the original and the optimized VP. A comparison of these implementations reveals no significant differences, ensuring that the stated qualities remain unaffected. The optimized VP including Zfh is available as open-source on GitHub.
Period02 Apr 2025
Event titleDesign, Automation and Test in Europe Conference (DATE 2025)
Event typeConference
LocationLyon, FranceShow on map

Fields of science

  • 102 Computer Sciences
  • 202028 Microelectronics
  • 102011 Formal languages
  • 202017 Embedded systems
  • 102005 Computer aided design (CAD)
  • 202041 Computer engineering
  • 101015 Operations research
  • 202005 Computer architecture

JKU Focus areas

  • Sustainable Development: Responsible Technologies and Management
  • Digital Transformation