SimpleScalar 模拟器介绍

SimpleScalar 模拟器是一个超标量、5级流水的RISC体系结构模拟器,提供了从最简单到超标量乱序发射的不同的模拟程序。

SimpleScalar工具集起源于80年代中后期由Manoj Franklin开发的模拟工具。1995年夏,Steve Bennett开发了SimpleScalar x86工具。SimpleScalar模拟器由Intel公司微型计算机研究室的Todd M. Austin在1996年最终编写而成,美国麦迪逊威斯康星大学计算机学院的Doug Burger参与开发和文档整理工作,二人共同拥有该模拟器的版权。Austin与Bennett两人都是威斯康星大学计算机学院的助手,由Guri Sohi教授指导研究工作。2001年,加拿大王后大学的Naraig Manjikian发布了一个SimpleScalar 2.0的多处理器版本,称为mp_simplesim。该版本中添加了用于线程创建与同步的运行时间库(run-time library),采用MESI协议作为cache一致性协议,并提供了一个cache一致性状态的查看工具。

SimpleScalar模拟器在功能层上实现了执行驱动、解释执行,在行为层上实现了流水线模拟。该工具集提供了一个以GCC为主的编译器以及相关组件,能够产生基于SimpleScalar体系结构的目标代码,然后在SimpleScalar模拟器上运行。

运行模拟器时,主程序main()做所有的初始化工作,并将二进制目标码载入内存,然后调用sim_main(),sim_main()在每个模拟器中单独说明,预先译码整个正文段,加快模拟。然后开始目标程序的模拟。

1. SimpleScalar仿真介绍

SimpleScalar 模拟器提供了从最简单到超标量乱序发射的不同的模拟程序。其中sim-outorder模拟器模拟的是一个超标量,5级流水的RISC体系结构的CPU模型:分为取指(instruction fetch)、译码(decode)、执行(execute)、存储(store)和回写(write back)五个阶段,而乱序过程比五级流水线多了一个提交段(commit)。

以下是在simplesim-3.0中所有模拟器通用的参数:

-config                 从文件中装载配置
-dumpconfig             将配置信息导出至文件
-h                      显示帮助信息
-d                      启用调试信息
-i                      在Dlite!调试器中开始执行(sim-fast不支持)
-q                      立即退出
-seed       【整数】    随机数生成器的计时器种参数,默认为1
-chkpt      【文件名】   从【文件名】中恢复EIO trace的执行
-redir:sim      【文件路径】模拟器输出重定向至文件
-redir:prog 【文件路径】模拟程序输出重定向至文件
-nice           【整数】    模拟器调度优先级,默认为0

SimpleScalar v3.0提供的几个模拟程序如下:

(1)Sim-fast
Sim-fast是执行速度最快,最不关心模拟过程细节信息的子模拟器程序。它采用顺序执行指令的方式,没有指令并行;不支持cache的使用,也不进行指令正确性检查,由程序员保证每条指令的正确性;不支持模拟器本身内嵌的Dlite!调试器(类似于gdb调试器)。为了模拟器的速度优化,在缺省情况下,sim-fast模拟器不进行时间统计,不对指令的有关信息(如指令总数及访存指令数目)进行统计。当然,可以修改模拟器源程序,通过改变其设置,使模拟器更加符合设计人员的需求。

(2)Sim-safe
在工具集中,是最简单的最友好的模拟器,在sim-fast的基础上添加了Dlite!调试支持,检查所有的指令错误,不讲究速度。

(3)Sim-bpred
实现一个分支预测(branch prediction,也称作跳转预测)分析器,可采用五种分支预测方式:nottaken, taken, bimod, 2lev, comb。
特有参数:(第一个#号后为该参数默认值)

-bpred  <string>  # bimod   # 分支预测器的类型 {nottaken|taken|bimod|2lev|comb}
-bpred:bimod    <int> # 2048    # 二位预测器配置 (<size>)
-bpred:2lev <int list...> # 1 1024 8 0 # 两级预测器配置 (<l1size> <l2size> <hist_size> <xor>)
-bpred:comb <int># 1024 # 复合预测器配置 (<meta_table_size>)
-bpred:ras  <int># 8        # 返回地址栈 (return address stack) 大小 (0为无返回栈)
-bpred:btb  <in
  • 5
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值