Hier finden Sie wissenschaftliche Publikationen aus den Fraunhofer-Instituten.

Speculative Temporal Decoupling Using fork ()

: Jung, Matthias; Schnicke, Frank; Damm, Markus; Kuhn, Thomas; Wehn, Norbert


European Design Automation Association -EDAA-:
Design, Automation & Test in Europe, DATE 2019. Proceedings : 25 - 29 March 2019, Florence, Italy
Piscataway, NJ: IEEE, 2019
ISBN: 978-3-9819263-3-0
ISBN: 978-3-9819263-2-3
ISBN: 978-1-7281-0331-0
Design, Automation & Test in Europe Conference & Exhibition (DATE) <23, 2019, Florence>
Conference Paper
Fraunhofer IESE ()
Temporal Decoupling; Fork; SystemC; Time Quantum; Virtual Prototyping

Temporal decoupling is a state-of-the-art method to speed up virtual prototypes. In this technique, a process is allowed to run ahead of simulation time for a specific interval called quantum. By using this method, the number of synchronization points, i.e. context switches, in the simulator is reduced and therefore, the simulation speed can be increased significantly. However, using this approach can introduce functional simulation errors due to missed synchronization events. Thus, using temporal decoupling implies a trade-off between speed and accuracy and the size of the quantum must be chosen wisely with respect to the simulated application. In loosely timed simulations most of the functional errors are tolerable for the sake of simulation speed. However, for instance safety critical errors are rare but can lead to fatal results and must be handled carefully. Prior works present mechanisms based on checkpoints (storing/restoring the internal state of the simulation model) in order to rollback in simulation time and correct the occurred errors by forcing synchronization. However, checkpointing approaches are intrusive and require changes to both the source code of all the used simulation models and the kernel of the simulator. In this paper we present a non-intrusive rollback approach for error-free temporal decoupling, which allows the usage of closed source models by using Unix's fork() system call. Furthermore, we provide a case study based on the IEEE simulation standard SystemC.