Zesto论文笔记:Zesto: A Cycle-Level Simulator for Highly Detailed Microarchitecture Exploration

Zesto是一款用于高度详细微架构探索的周期级模拟器,旨在弥补现有工具如SimpleScalar、MASE、PTLsim和PinTools在x86支持和详细程度上的不足。它由功能模拟的Oracle和时序模拟器两部分组成,模拟速度较慢,但结构易于扩展。Zesto的流水线模拟精确,包括取指、译码、分配、执行和提交五个阶段,支持分支预测和多种微架构组件。然而,它不支持64位代码和SIMD扩展,且已停止维护。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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指令,而load指令要在这些store指令中寻找相关的内存数据,将这些内存数据和模拟的内存中的数据拼接。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值