计算机系统模拟器已经成为计算机系统结构领域研究中不可或缺的工具,真实计算机系统的不断发展对模拟器的性能要求也越来越高,模拟器的性能提升也促进了真实计算机结构和性能上的进步.为了提升性能,模拟器的发展经历了从串行单线程模拟到多处理单元并行模拟的发展趋势.串行模拟器和并行模拟器分别针对各自的模拟目标和模拟过程提出了各种优化方案,串行模拟器研究者提出了交织码、二进制翻译、FPGA加速、模拟分离等加速技术,而并行模拟器在串行模拟器基础上针对自己特有的支撑架构以及负载均衡、同步机制和通信机制等问题提出了各种解决方案.
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.