转自:http://llccdd1985.blog.163.com/blog/static/6773587620095213640928/
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 加载和存储段情况(data,heap)
-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> 设置主存访问延迟,默认的1st,next分别是18,2个cycles
-mem:width <bytes> 设置主存总线宽度,默认为8bytes
-tlb:lat <cycles> 设置一个服务TLB的延迟,默认为30个cycles
3.设置分支预测器
参数格式:
-bpred:<type>
type的种类有:
nottaken 不预测
taken 总是预测
perfect 完美预测器
bimod 用一个2位的计数器的分支目标缓冲的双峰预测
2lev 两级适配预测器
comb 联合预测,bimod和2lev
预测器的具体参数如下:
-bpred:bimod <size> 设置的双峰预测器表大小为size个入口
-bpred:2lev <l1size> <l2size> <hist_size> <xor> 设置2-level的适应性预测器,<l1size>代表第一级表的入口个数 <l2size>代表第二级表的入口个数 <hist_size>设置历史宽度 <xor>允许异或预测器的第二级历史和地址,默认的分别为1,1024,8,0
-bpred:comb <size> 设置联合预测器的元表大小为size的入口,默认为1024
-bpred:ras <size> 设置返回栈的大小为size,(0个入口代表返回栈),默认的值为8
-bpred:btb <sets> <assoc> 配置BTB有sets个组和组内又几个相联,默认为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>是开始和结束
翻译水平有限,请各位指正,共同进步