Abstract:
Computer system simulator has long been a useful tool for researchers. It is applied in many different areas, from code design to software programming. In the development of simulators, performance has always been the main focus of researchers, and the improvement of performance will in return benefit the performance of real computers. A number of optimization work has been proposed in both serial and parallel simulations, such as threaded code, binary translation, FPGA accelerator, simulation separation techniques in serial simulation and the solution for the load balance, synchronization and communication in parallel simulation. In this paper, we provide several basic rules and structures that are used in common simulator design, and summarize recent studies of serial and parallel simulation and simulators. First, we introduce the current development of simulators, including current research results, technical problems and challenges. Then, we talk about the structure and the classification of current simulators. After that, the technique in serial simulators is introduced, and the optimization work in parallel simulation is also organized, according to the problems they tend to solve. Some mature simulators as well as simulation platforms are presented later in the paper. At last, potential issues and future work are also introduced.