simplescalar 使用说明【DOC精选】.doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SimpleScalar使用说明 1。基本内容介绍: SimpleScalar是一组体系结构仿真器工具,他可以模拟一个程序在某种体系结构机器上的具体执行过程,给出该体系结构的功能和性能参数。 SimpleScalar工具集的组成如下: fortran语言的代码先转成C语言的代码,普通的C程序需要利用工具集中自带的gcc编译成二进制代码,仿真器可以直接执行二进制代码。 SimpleScalar仿真器的特点如下 指令格式可扩展,能够支持多个指令集 可以运行在大多数类UNIX以及NT平台上 提供了大量参数来描述执行细节 包括多个仿真器。 它们是: sim-fast ,sim-safe,sim-cache,sim-cheetah,sim-profile,sim-bpred,sim-eio和sim-outorder. 功能和特点如下: sim-fast: 它是速度最快的仿真器,但是作为代价,它不进行指令的错误检查,所以当运行过程中出现错误时,你无法确定是仿真器本身出错还是指令出现了错误; sim-safe: 是SimpleScalar所有仿真器中最简单的一个功能仿真器;它进行指令错误检查; sim-profile: 可以使用符号和地址来产生程序代码的简要分析 sim-cache: 在这个仿真其中加入了cache,用户可以对cache及 TLB 进行设置,支持两级的cache和一级的TLB,第一级cache和TLB均分为数据和指令两部分; sim-cheetah: sim-cheetah是为了Cheetah而实现的一个仿真器驱动。Cheetah是一个cache的仿真包,它可以对一个程序的某一次运行中的多级cache的仿真进行有效的仿真。此外,它还可以对某一级的组相连和全相连cache进行仿真。 sim-bpred:它是一个分支预测机制的分析器; sim-eio: 它是一个最简单的仿真器,进行指令检查,主要是追求程序执行再现的清晰性,而不是执行的速度。EIO trace and checkpoint generator external I/O tracing module sim-outorder: 实现了对一个非常详细的支持乱序发射,拥有一个二级的memory和推断执行的超标量处理器的仿真,本身拥有很高的性能,而且对整个程序执行期间流水线的状态都进行了记录,基本上包括了以上各种仿真器的全部功能。 SimpleScalar的仿真体系结构 指令集介绍: 类MIPS/DLX指令集,增加了新的地址模式,去掉了延迟槽的功能。 同时支持大尾端、小尾端两种格式 指令字长64位: 16位用于指令说明和扩展,8位寄存器描述符最多可支持256个通用寄存器。 指令类型有控制指令,load/store指令,整数算术逻辑指令,浮点指令以及syscall等,具体指令描述见实验指导书的附录。 寄存器及虚拟内存的状态如下: 寄存器的功能说明如下: 仿真器使用方法   在linux环境中,进入SimpleScalar的安装目录,输入如下格式指令: sim-*** [-sim opts] program [-program opts] 相关的指令还有 编译一个C语言程序 sslittle-na-sstrix-gcc -g -O -o foo foo.c -lm 编译一个FORTRAN程序 ssbig-na-sstrix-f77 -g -O -o foo foo.f -lm 编译一个SimpleScalar汇编语言程序 ssbig-na-sstrix-gcc -g -O -o foo foo.s –lm sim-outorder仿真器的使用 sim-outorder的指令执行流程 sim-outorder的动态调度方法基本上是加上了分支预测的Tomasulo算法,它的关键部件是寄存器更新部件RUU和存取缓冲队列LSQ。这两个部件的说明如下: RUU: RUU负责寄存器间的信息交换和同步,它包含保留站和再定序缓冲的功能,指令从Dispatch段进入,分配RUU,在commit段释RUU,作到乱序发射,顺序提交。RUU被组织成一个循环队列,之间通过总线交换信息。 LSQ: LSQ负责存储器间的同步和信息交换,它包含了LOAD/STORE指令,指令被分成有效地址计算指令和真正的存取原语指令,前者位于RUU中。 流水段描述: 取指段(fetch)cache中取指令,并把它放入IFQ中。判断下一条指令是否是预测执行的指令,同时接收其他段送来的预测失败信息。 分派指令段(dispatch): 从LSQ中取指令解码,重命名寄存器,分配RUU和LSQ,支持早期的分支预测失败的探测。 发射

文档评论(0)

taotao0b + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档