simplescalar 使用说牡明.docVIP

  • 12
  • 0
  • 约6.92千字
  • 约 11页
  • 2017-08-20 发布于浙江
  • 举报
simplescalar 使用说牡明

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,支持早期的分支预测失败的探测。 发射段(schedule) (

文档评论(0)

1亿VIP精品文档

相关文档