报告]SimpleScalar简介.ppt
《报告]SimpleScalar简介.ppt》由会员分享,可在线阅读,更多相关《报告]SimpleScalar简介.ppt(27页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、SimpleScalar简介简介汇报人:胡 潇4/16/20231SimpleScalar简介概要nSimpleScalar Tool Set 简介n功能级模拟器设计的初步分析4/16/20232SimpleScalar简介附加论题n由SimpleScalar 的设计得到的启发(一种新颖的编程手法)4/16/20233SimpleScalar简介SimpleScalar Tool Set 简介nSimpleScalar定义定义:用软件模拟在单处理器单处理器系统中单线程单线程的运行情况,以此评估当前硬/软件设计的综合性能,为下一步的改进提供依据。n在体系结构体系结构上做到了一定的“可配置”,诸如
2、,可以以命令行参数的形式设置不同的ALU个数、流水线各阶段属性、cache大小及其关联策略、替换策略(replacement policy)、分支预测策略(branch predicting policy)等等,通过模拟得到的结果(profile)来指导对体系结构的进一步改进。n在软件软件方面可以通过模拟所得的性能结果(profile)来指导进一步的改进。4/16/20234SimpleScalar简介SimpleScalar Tool Set 简介n整个工具集结构概览C benchmark sourceSS librarySimulator SourceSimpleScalar assemb
3、lyObject filesSimpleScalar executablesPrecompiled SS binaries(test)SimpleScalar GCCSimpleScalar GASSimpleScalar GLDHost C compilerResultUtilities and ToolsSimulator4/16/20235SimpleScalar简介SimpleScalar Tool Set 简介n模拟器分类模拟器分类:u功能级模拟(功能级模拟(Functional simulation):粒度最粗,速度最快。包括两个模拟器:Sim-fast:简单的进行功能模拟 Sim
4、-safe:同时进行存取对齐和权限检查uCache模拟模拟(Cache simulation):以Cache性能为主要考察目标,速度较慢。包括两个模拟器:Sim-cache:接收Cache参数,进行针对Cache性能的模拟Sim-cheetah:采用Cheetah cache simulation engineu乱序模拟(乱序模拟(Out-of-order processor timing simulation):详细模拟了流水线的六个阶段,速度最慢。包括一个模拟器:Sim-outorder:基于Register Update Unit(?),支持out-of-order发射和执行4/16/2
5、0236SimpleScalar简介功能级模拟器设计的初步分析n基本原理和流程:u模拟器初始化初始化,并从编译生成的二进制文件(此文件具有一定的格式)中装载可执装载可执行程序行程序至模拟器的虚拟内存;u核心执行核心执行:模拟器逐条读取可执行程序中的命令,根据指令集定义文件ss.def中各种指令的操作描述,来完成整个程序的执行(其中包含有一个重要的编程技巧,稍后讨论);u执行结束,输出统计信息输出统计信息。下面详细介绍以上各步骤下面详细介绍以上各步骤4/16/20237SimpleScalar简介模拟执行流程n初始化初始化n核心执行n统计输出4/16/20238SimpleScalar简介模拟器
6、初始化步骤一 分析命令行参数n首先请注意:功能级模拟只接受默认的命令行参数,对体系结构不具备可配置性;(但是,由于前面提到的编程技巧的运用,可以对指令集方便的进行修改而不需要改变源程序,所要做的仅仅是重新编译而已)n构建全局的参数库(option database),记录模拟器型号以及各命令行参数,为以后使用提供方便,而实际上,在功能级模拟中只是根据命令行参数设定了一些全局的标志变量的值,如是否打印help等等,可以认为,该参数库对功能级模拟而言几乎无意义,但是在其他需要对体系结构进行配置的模拟器中是不可或缺的;n具体数据结构略,可见工作记录。4/16/20239SimpleScalar简介n
7、所谓指令译码器实际上是一个ss_opcode枚举型的全局数组ss_mask2op,每个元素存放的是SimpleScalar体系结构中的指令所对应的一个枚举值(0255)。SimpleScalar规定最多有255条指令,而数组ss_mask2op有256项,所以可以以指令的操作码(0 x010 xff)为索引,把定义了的指令映射到对应项中,在该项中写入一个枚举值(1255),而初始值0恰恰代表了未定义的指令;n为什么要做这样一个看似繁琐的操作码到枚举值的附加转换呢?目的除了能方便的进行各种有效性检查有效性检查(如指令的重复定义、指令数大于255、程序用到未定义的指令等等)之外,更重要的是为了在改
8、变指令集定义文件在改变指令集定义文件ss.def的同时不需要对源程序做任何的同时不需要对源程序做任何改动改动,大大方便了用户对指令集的修改(这其实也是前面提到的编程技巧的根本目的所在,我们稍后会详细讨论)模拟器初始化步骤二 初始化指令译码器4/16/202310SimpleScalar简介nSimpleScalar是31位虚拟地址结构:【30:16】为块索引,【15:0】是块内偏移;n相应的,SimpleScalar只有一级页表,是一个存储块首址的数组mem_table,以虚拟地址的【30:16】为索引得到的数组项的值即为SimpleScalar的物理块首址,再以【15:0】为偏移量即可得到真
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 报告 SimpleScalar 简介
限制150内