Research Article
An Efficient Front-End for Timing-Directed Parallel Simulation of Multi-Core System
@INPROCEEDINGS{10.4108/icst.simutools.2014.254638, author={George Riley and Zhenjiang Dong and Jun Wang and Sudhakar Yalamanchili}, title={An Efficient Front-End for Timing-Directed Parallel Simulation of Multi-Core System}, proceedings={Seventh International Conference on Simulation Tools and Techniques}, publisher={ICST}, proceedings_a={SIMUTOOLS}, year={2014}, month={8}, keywords={parallel simulation hardware simulation}, doi={10.4108/icst.simutools.2014.254638} }
- George Riley
Zhenjiang Dong
Jun Wang
Sudhakar Yalamanchili
Year: 2014
An Efficient Front-End for Timing-Directed Parallel Simulation of Multi-Core System
SIMUTOOLS
ICST
DOI: 10.4108/icst.simutools.2014.254638
Abstract
Manifold is a parallel simulation framework for multi-core systems. For full-system simulation, Manifold adopts the timing-directed simulation paradigm that separates the simulation into a functional front-end and a timing back-end. Components in the front-end perform functional simulation of the cores and send streams of instructions to the back- end to simulate the timing behavior. In its current design, Manifold uses the QSim multi-core emulator as the front-end which communicates with the back-end through network sockets. Experiments have shown that the latency of the socket communications has a significant impact on the overall simulation performance. This paper presents a novel method that attempts to hide the TCP/IP latency for the back-end by creating proxy processes as an intermediary between the front-end and the back-end. The proxies serve as clients to the QSim server in the front-end, and as servers to the back-end. They interact with the QSim server through sockets, while working with the back-end in a producer-consumer manner using shared memory segments. Experiments show that this method can completely hide the TCP/IP latency for the back-end. The back-end can always get its instructions from the shared memory without waiting for the QSim server. The overhead of getting inputs for the back-end simulation is reduced to almost zero.