[发明专利]一种基于代码自动生成的指令集模拟方法在审
| 申请号: | 201910175584.9 | 申请日: | 2019-03-08 |
| 公开(公告)号: | CN110007962A | 公开(公告)日: | 2019-07-12 |
| 发明(设计)人: | 骆华鲲;蔡铭 | 申请(专利权)人: | 浙江大学 |
| 主分类号: | G06F9/30 | 分类号: | G06F9/30 |
| 代理公司: | 杭州求是专利事务所有限公司 33200 | 代理人: | 邱启旺 |
| 地址: | 310058 浙江*** | 国省代码: | 浙江;33 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 指令集模拟器 指令集 编码程序 代码自动生成 自动生成 编码规则 开发效率 模块代码 人工开发 译码模块 指令信息 指令执行 操作码 特征段 编程 工作量 解析 费力 指令 保存 应用 开发 | ||
1.一种基于代码自动生成的指令集模拟方法,其特征在于,具体包括如下步骤:
(1)对目标指令集中所有指令进行编码,得指令编码,并将所有指令编码汇总保存至指令集编码文件中。
(2)读取步骤1的指令集编码文件,汇总所有指令的特征段分布情况,生成指令结构体。
(3)读取步骤1的指令集编码文件,提取所有指令的操作码分布,并按操作码长度对分布作降序排序。依次为所有分布生成相应的译码代码,最终汇总成完整的指令集模拟器译码模块。
(4)读取步骤1的指令集编码文件,提取每条指令的执行信息,根据执行信息生成指令函数,所有指令函数共同组成指令模拟器的执行模块。
(5)指令集模拟器译码模块通过匹配指令操作码确定指令类型,并提取指令各特征段信息。指令集模拟器执行模块根据指令类型,执行指令对应操作。两模块共同组成指令集模拟器。
2.根据权利要求1所述的基于代码自动生成的指令集模拟方法,其特征是,所述步骤1中,指令编码记录了指令的格式信息与执行信息。任意一条指令的编码表示为:
NA:指令名
特征段编码
DT:数据类型操作数
EX:指令执行表达式
(DE:延迟周期数)
特征段编码记录指令各特征段的分布情况,编码格式为“特征段名[位置]”。将指令内所有特征段都按上述格式编码,并连接组合,即可得到整条指令的特征段编码。
3.根据权利要求1所述的基于代码自动生成的指令集模拟方法,其特征是,所述步骤2具体为:指令结构体是指令集模拟器运行过程中保存单条指令信息的数据结构,保存指令各特征段信息和指令函数指针。在结构体中生成指令函数指针属性。特征段属性通过下述方法生成:遍历指令集编码文件,归纳整个指令集包含的特征段种类,并统计各特征段长度。若存在同名特征段,其长度按最大值记。根据特征段长度,在指令结构体中定义各特征段同名属性。
4.根据权利要求1所述的基于代码自动生成的指令集模拟方法,其特征是,所述步骤3具体为:提取所有指令的操作码分布,并按操作码长度对分布作降序排序。依次为各操作码分布生成识别语句,且用识别语句包裹该分布下提取指令特征段信息的代码。指令各特征段信息保存在步骤2定义的指令结构体同名属性中。在每条指令的译码代码末尾,对指令结构体的函数指针进行赋值,函数名称统一命名为op_NA,其中NA是编码规则中的指令名。
5.根据权利要求1所述的基于代码自动生成的指令集模拟方法,其特征是,所述步骤4具体为:为每条指令生成一个指令函数,指令函数统一命名为op_NA。所有指令函数均可模块化划分为声明变量、赋值变量、执行操作和结果写回四大模块。其中,指令编码中的DT编码被映射为声明变量和赋值变量模块,EX编码被映射为执行操作模块,DT和DE编码被映射为结果写回模块。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江大学,未经浙江大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910175584.9/1.html,转载请声明来源钻瓜专利网。





