simplescalar使用(命令参数)

来源:互联网 发布:电影剧照 知乎 编辑:程序博客网 时间:2024/06/08 19:01

转自:http://llccdd1985.blog.163.com/blog/static/6773587620095213640928/

 

Simplescalar的命令(依据官方网站提供的文档翻译)

1.Sim-safe

 

2.sim-cache

关于sim-cache的命令参数的说明:

-cache:dl1 <config>//配置一级数据cache

-cache:dl2 <config>//配置二级数据cache

-cache:il1 <config>//配置一级指令cache

-cache:il2 <config>//配置二级指令cache

-tlb:dtlb <config>//配置数据TLB

-tlb:itlb <config>//配置指令TLB

-flush  <boolean>//系统调用是否刷新

-icompress 

-pcstat  <stat>

<configuration>的格式如下:

<名字>:<cache的集合数>:<块大小>:<几相连>:<更新策略(l,f,r)>

如:

 

 

-tlb:itlb  itlb:16:4096:4:l

-tlb:dtlb  dtlb:32:4096:4:l

 

-默认的是:

 

-tlb:itlb        itlb:16:4096:4:l

-tlb:dtlb        dtlb:32:4096:4:l

L1 256*32/1024

L2 1024*64*4/1024

iTlb 16*4

dtlb 32*4                               

 

关于sim-cheetah命令的参数:

-refs  [inst|data|unified] 指明要分析什么流

-C[fa|sa|dm] cache的工作方式 全相连 组相连 直接映像

-R (lru|opt) 替换策略

-a<sets> 最少同时间模拟多少(2为底)

-b<sets> 最多同时间模拟多少(2为底)

-l<line> 缓存的行大小

-in<区间>   模拟全相连缓存区间大小

-M <大小>    最大利益的cache大小

-C <大小>  直接映射的cache大小

 

关于sim-profile命令的参数

-iclass 指令类型情况(ALU,分支branch)

-iprof   指令情况(benz,addi)

-brprof  分支类型情况(direct,calls,condition)

-amprof  地址模式情况(displace,R+R)

-segprofile 加载和存储段情况(dataheap)

-tsymprof   通过文本的执行情况(functions)

-dsymprof   数据段符号的引用情况

-taddrprof  文本地址的执行情况

-all   列出所有的情况

 

关于sim-outorder的命令行参数

也可以使用sim-cache的参数

1.设置处理器核

-fetch:ifqsize<size>  设置取出指令的宽度 2的指数次  默认是4

-fetch:speed<ratio>    设置执行核在结束前的相对速率

-fetch:mplat <cycles>   设置分支预测错误的延迟 默认是3个时钟周期

-decode:width<insts>   设置译码宽度,是二的次方数 默认是4

-issue:width <insts>   设置在制定的时钟周期最大的发射宽度

-issue:inorder      顺序发射,默认是乱序发射

-issue:wrongpath   允许指令在错误预测后在发出

-ruu:size <insts>  寄存器更新单元的大小(ruu),默认16

-lsq:size <insts>    装载和存储队列的大小,默认是8

-res:ialu <num>    设置整数ALU部件的个数,默认是4

-res:imult <num>    设置整数乘除的部件个数,默认是1

-res:memports <num>   设置L1 cache端口个数,默认是2

-res:fpalu <num>    设置浮点运算的ALU个数,默认是4

-res: fpmult <num>  设置浮点乘除的部件个数,默认是1

2.设置内存体系层次

-cache:dl1lat <cycles>   设置L1数据cache的命中延迟,默认为1cycle

-cache:d12lat <cycles>   设置L2数据cache的命中延迟,默认为6cycles

-cache:il1lat <cycles>   设置L1指令cache的命中延迟,默认为1cycle

-cache:il2lat <cycles>   设置L2指令cache的命中延迟,默认为6cycles

-mem:lat <1st> <next>    设置主存访问延迟,默认的1stnext分别是182cycles

-mem:width <bytes>       设置主存总线宽度,默认为8bytes

-tlb:lat <cycles>        设置一个服务TLB的延迟,默认为30cycles

3.设置分支预测器

参数格式:

-bpred:<type>

type的种类有:

nottaken  不预测

taken     总是预测

perfect   完美预测器

bimod     用一个2位的计数器的分支目标缓冲的双峰预测

2lev      两级适配预测器

comb      联合预测,bimod2lev

预测器的具体参数如下:

-bpred:bimod <size>            设置的双峰预测器表大小为size个入口

 

-bpred:2lev <l1size> <l2size> <hist_size> <xor>    设置2-level的适应性预测器,<l1size>代表第一级表的入口个数 <l2size>代表第二级表的入口个数 <hist_size>设置历史宽度 <xor>允许异或预测器的第二级历史和地址,默认的分别为1102480

 

-bpred:comb <size>   设置联合预测器的元表大小为size的入口,默认为1024

-bpred:ras <size>    设置返回栈的大小为size(0个入口代表返回栈),默认的值为8

-bpred:btb <sets> <assoc>  配置BTBsets个组和组内又几个相联,默认为512个组,组内又4个相联

-bpred:spec_update <stage>  让预测器更新的分枝预测在解码或写回阶段<stage={ID|WB}>,默认为在提交阶段不推测

 

可视化部分

-pcstat <stat>  记录统计<stat>文本地址;

-ptrace <file> <range>  管道追踪

 

 

 

(乱序追踪)Out-of-order pipeline tracing

 

-ptrace <file> <start>:<end>   file是要追踪的文件 <start>:<end>是开始和结束

 

 

翻译水平有限,请各位指正,共同进步

原创粉丝点击