Seventh International Conference on Simulation Tools and Techniques

Research Article

An Efficient Front-End for Timing-Directed Parallel Simulation of Multi-Core System

Download608 downloads
  • @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
George Riley, Zhenjiang Dong1,*, Jun Wang1, Sudhakar Yalamanchili1
  • 1: Georgia Tech
*Contact email: zdong30@gatech.edu

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.