计算机架构仿真器
基于仿真的程度的划分
-
功能仿真器
功能仿真器主要是模拟指令集架构的行为。通常来说会比其他的仿真器要快,但是不涉及到微架构的具体参数。一般当我们测试新的指令集功能,或者想得到一个程序的特征,比如执行这个程序需要多少种指令,内存访问的局部性等等。一些功能仿真器的例子有:SimpleScalar中的sim-safe, sim-speed, Simics,Simcore(Alpha processor),EduMIPS64,HASE,Barra,gem5中的AtomicSimple CPU model。
-
时间(Timing)仿真器
又叫性能仿真器,可以对时间/性能给出详细的数据,比如IPC,程序运行时间,内存系统性能以及其他详细的与微架构相关的数据。时间仿真器又可以分为几种:- cycle-level simulator
模仿处理器每一个cycle的行为,但是与cycle-accurate的仿真器相比,不像ca仿真器一样使用RTL的描述,对硬件的细节都进行建模。比如SimpleScalar中的sim-outorder,模拟一个乱序超标量处理器,其中大部分的参数比如功能单元的数量和延时,指令的序列,重排序的窗口大小等等都可以由使用者自行配置。另一个例子是MSim,多线程Alpha 处理器的仿真器。
-Event-driven simulator
事件触发的仿真器
- cycle-level simulator