HySim: Hybrid Simulation Framework
Processor and SoC Simulation
Fast and accurate simulation of MPSoC systems is a key factor for both embedded software development and design space exploration. The growing complexity of today's heterogeneous MPSoCs poses new challenges that are difficult to handle with current simulation techniques. In terms of simulation, complexity refers mainly to amount of Programmable Processing Elements (PPE) running in parallel, among others. Our Hybrid Processor Simulation approach -HySim- provides mechanisms to speed-up simulation by increasing the abstraction level of simulated PPEs when possible, while the accuracy-speed trade-off is still under the user control.
HySim was conceived to support real-life MPSoC design scenarios from the beginning. Therefore, its main contribution is the possibility to handle and exploit the accuracy-speed trade-off depending on the developer's demand. Fast Abstract Simulation can be chosen to reach any state of the system under simulation when developer looks for speed and consistent behavior (e.g. for software development and debugging). Accurate Target Simulation can be chosen when developer is interested in fine grain details (e.g. system verification, timing validation).
A processor simulator using HySim consists of an Instruction Set Simulator, named as Target Simulator (TS), and an Abstract Simulator (AS). The AS is a virtual machine for the C programming language, which provides fast native execution for time-consuming functions, when the function source code is available. TS and AS are exposed together as a unified processor simulator to the simulation kernel, but internally execution control is transparently switched at runtime.
The hybridization facilitates to exploit the trade-off between simulation speed and accuracy on user demand. Performance profiling/optimization, can be performed on particular parts of the application, whereas other parts can be accelerated while keeping only its functionality. In these terms, the whole application will be functionally verified, while accurate timing information will be gathered only when required.
Quick performance estimation, without TS execution, is also possible by using AS as the execution engine. Currently there are two approaches (performance annotation and dynamic profiling) developed for RISC like processors or DSP/VLIW architectures respectively.
All these features (dynamic execution engine switching, performance annotation and dynamic profiling) are supported by an extensible instrumenter, which transforms the C source code of the application. The transformed code does not behave normally anymore, but it also imitates the behavior that a third-party target compiler would introduce in the target binary. For this reason the transformation is also called virtualization. The transformed code is compiled by the native compiler, and the generated binary can be executed by the AS, which can be customized to perform cache simulation and dynamic profiling. The Hybrid Simulation workflow is presented in the figure shown below.
Performance estimation and timing annotation are essential parts of the virtualization chain. Dynamic profiling, Cross-replay and statistical methods have been researched and used in the context of the HySim project. Support of extensible processor architectures and adequate methods for temporal synchronization, particularly when in a full-system simulation environment, have been covered within this project as well.
Luis Gabriel Murillo, Jovana Jovic, Stefan Boßung (Kraemer), Lei Gao, Sergey Yakoushkin
Murillo, L. G., Eusse, J. F., Jovic, J., Yakoushkin, S., Leupers, R. and Ascheid, G.: Synchronization for Hybrid MPSoC Full-System Simulation, in Design Automation Conference , (San Francisco, USA) Jun/2012, ISBN: 978-1-45031-199-1, 10.1145/2228360.2228383 ©2012 IEEE
Jovic, J., Yakoushkin, S., Murillo, L. G., Eusse, J. F., Leupers, R. and Ascheid, G.: Hybrid Simulation for Extensible Processor Cores, in Proceedings of the Conference on Design, Automation & Test in Europe (DATE) Mar/2012, ISBN: 978-1-45772-145-8, ISSN: 1530-1591, 10.1109/DATE.2012.6176480 ©2012 IEEE
Kraemer, S.: Design and Analysis of Efficient MPSoC Simulation Techniques, Ph. D. Dissertation , RWTH Aachen Univeristy 2011 ©2011 IEEE
Gao, L., Karuri, K., Kraemer, S., Leupers, R., Ascheid, G. and Meyr, H.: Multiprocessor Performance Estimation Using Hybrid Simulation, in Proceedings of the Design Automation Conference (DAC '08) in Proceedings of the Design Automation Conference (DAC '08) , (Anaheim, CA, USA) Jun/2008
Gao, L., Kraemer, S., Karuri, K., Leupers, R., Ascheid, G. and Meyr, H.: An Integrated Performance Estimation Approach in a Hybrid Simulation Framework, in MoBS in MoBS , (Beijing, China) Jun/2008
Kraemer, S., Gao, L., Weinstock, J. H., Leupers, R., Ascheid, G. and Meyr, H.: HySim: A Fast Simulation Framework for Embedded Software Development, in Proceedings of the 5th Conference on Hardware/Software Codesign (CODES+ISSS '07) and System Synthesis , (Salzburg, Austria) 2007
Gao, L., Kraemer, S., Leupers, R., Ascheid, G. and Meyr, H.: A Fast and Generic Hybrid Simulation Approach using C Virtual Machine, in Proceedings of the Conference on Compilers, Architecture, and Synthesis For Embedded Systems (CASES '07) in Proceedings of the Conference on Compilers, Architecture, and Synthesis For Embedded Systems (CASES '07) , (Salzburg, Austria) Oct/2007