Flexible Generation of Fast and Accurate Software Performance Simulators From Compact Processor Descriptions
Conrad Foik,Robert Kunzelmann,Daniel Mueller-Gritschneder,Ulf Schlichtmann
DOI: https://doi.org/10.1109/tcad.2024.3445255
IF: 2.9
2024-11-09
IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems
Abstract:To find optimal solutions for modern embedded systems, designers frequently rely on the software performance simulators. These simulators combine an abstract functional description of a processor with a nonfunctional timing model to accurately estimate the processor's timing while maintaining high simulation speeds. However, current performance simulators either inflexibly target specific processors or sacrifice accuracy or simulation speed. This article presents a new approach to the software performance simulation, combining flexibility with highly accurate estimates and high simulation speed. A code generator converts a compact structural description of the target processor's pipeline into sets of timing constraints, describing the processor's instruction execution. Based on these, it generates corresponding scheduling functions and timing variables, representing the availability of the modeled pipeline. The performance estimator uses these components to approximate the processor's timing based on an instruction trace provided by an instruction set simulator. Results for the state-of-the-art CV32E40P and CVA6 RISC-V processors show an average relative error of 0.0015% and 3.88%, respectively, over a large set of benchmarks. Our approach reaches an average simulation speed of 24 and 15 million instructions per second (MIPS), respectively.
engineering, electrical & electronic,computer science, interdisciplinary applications, hardware & architecture