Zesto官网
http://zesto.cc.gatech.edu/
Related Work
SimpleScalar Family:
很流行,是一个模拟器工具集而不是模拟器。
Sim-outorder是一个样例,告诉别人如何使用这个工具集建立一个简单的时钟周期的模拟器。但是Sim-outorder太简单的,会使学生认为真正的处理器就是这样工作的,并且使用的逻辑架构是二十年前的。
MASE是SimpleScalar2001年发布的,是一个比较详细的low level模拟,但是不支持x86指令集。
PTLsim:
用了很多代码优化,性能很高,但是导致代码很难修改,并且有些地方还是不如Zesto详细。
PinTools:
也是一个工具集,而不是一个模拟器。提供了强大的多样的计算机架构工具。但是没有提供一个对错误路径指令(如分支预测失败)的真实模拟。
其他的模拟器如SESC,GEMS,M5等,目前为止还不支持x86指令集。这些都是很好的模拟器,但是他们的硬件模型和对流水线的设定都不符合我们对高度细节的x86微架构模型的需求。
Overall Organization
由两部分组成,一部分是oracle "execute at fetch"功能模拟器,另一部分是详细的时序模拟器。
因为对微架构的模拟很详细,所以速度很慢,大概为10's KIPS。也正是因为速度很慢,所以没有真实的"execute at execute"模拟。但是代码的的结构能很容易得扩展为execute at execute。
Oracle功能模拟是以取指模块为基础的,如果取指模块对路径错误预测了,oracle也会顺着这个错误的路径执行下去,但是oracle保存了所有"in flight"的指令,所以当时序模拟发现了错误预测的时候,oracle能轻松的回滚。
内存操作指令不会真的去修改模拟的内存,而是有一个辅助的内存数据结构用来保存所有"in flight"的store指令,