[发明专利]一种基于代码自动生成的指令集模拟方法在审
| 申请号: | 201910175584.9 | 申请日: | 2019-03-08 |
| 公开(公告)号: | CN110007962A | 公开(公告)日: | 2019-07-12 |
| 发明(设计)人: | 骆华鲲;蔡铭 | 申请(专利权)人: | 浙江大学 |
| 主分类号: | G06F9/30 | 分类号: | G06F9/30 |
| 代理公司: | 杭州求是专利事务所有限公司 33200 | 代理人: | 邱启旺 |
| 地址: | 310058 浙江*** | 国省代码: | 浙江;33 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 指令集模拟器 指令集 编码程序 代码自动生成 自动生成 编码规则 开发效率 模块代码 人工开发 译码模块 指令信息 指令执行 操作码 特征段 编程 工作量 解析 费力 指令 保存 应用 开发 | ||
本发明公开了一种基于代码自动生成的指令集模拟方法。该方法针对目前指令集模拟器人工开发费时费力的问题,先将指令集信息按特定编码规则进行保存,再由编码程序解析并提取上述指令信息。由指令的操作码和各特征段信息,编码程序可自动生成指令集模拟器的译码模块代码;由指令执行信息,编码程序可自动生成指令集模拟器执行模块代码。该方法适用于多种类型的指令集,能有效降低开发人员的编程工作量,提高指令集模拟器的开发效率,具有较好的应用前景。
技术领域
本发明涉及指令集模拟,尤其涉及一种基于代码自动生成的指令集模拟方法。
背景技术
由于指令集模拟器具有摆脱硬件数目限制,运行过程可调试,随时获取设备状态等优点,在硬件仿真、芯片设计等领域都得到了广泛的应用。然而,设计并定制一款特定的指令集模拟器却是一项非常复杂的工作。
模拟器的技术难点在于正确地模拟指令执行。指令的执行过程可分为:取指、译码、执行三个步骤。译码步骤被模拟器映射成译码模块,执行步骤则被映射成执行模块。译码模块通过匹配指令操作码,确定指令类型,并根据指令编码格式,分割提取各特征段信息。实际情况下,由于一个指令集往往包含上百条指令,而译码模块又需要支持所有指令类型的识别,故若指令集操作码分布无规律,则人工编写相关模块代码的工作量极大。
执行模块由整套指令集的指令函数组成。由于指令函数与指令种类一一对应,故若指令集数目庞大,指令函数的编写工作将变得非常繁重。按平均每个指令函数有20行代码计算,对于上百条指令的指令集而言,则仅指令函数一项的开发工作就包含了几千行代码,人工实现不仅费时费力而且容易出错。
发明内容
本发明的目的在于针对人工手动实现指令集模拟器译码模块和执行模块工作量大且易错的问题,提供了一种基于代码自动生成的指令集模拟方法。
本发明的目的是通过以下技术方案来实现的:一种基于代码自动生成的指令集模拟方法,具体包括如下步骤:
(1)对目标指令集中所有指令进行编码,得指令编码,并将所有指令编码汇总保存至指令集编码文件中;
(2)读取步骤1的指令集编码文件,汇总所有指令的特征段分布情况,生成指令结构体;
(3)读取步骤1的指令集编码文件,提取所有指令的操作码分布,并按操作码长度对分布作降序排序。依次为所有分布生成相应的译码代码,最终汇总成完整的指令集模拟器译码模块;
(4)读取步骤1的指令集编码文件,提取每条指令的执行信息,根据执行信息生成指令函数,所有指令函数共同组成指令模拟器的执行模块;
(5)指令集模拟器译码模块通过匹配指令操作码确定指令类型,并提取指令各特征段信息。指令集模拟器执行模块根据指令类型,执行指令对应操作。两模块共同组成指令集模拟器。
进一步地,所述步骤1中,指令编码记录了指令的格式信息与执行信息。任意一条指令的编码表示为:
NA:指令名
特征段编码
DT:数据类型操作数
EX:指令执行表达式
(DE:延迟周期数)
特征段编码记录指令各特征段的分布情况,编码格式为“特征段名[位置]”。将指令内所有特征段都按上述格式编码,并连接组合,即可得到整条指令的特征段编码。
进一步地,所述步骤2具体为:指令结构体是指令集模拟器运行过程中保存单条指令信息的数据结构,保存指令各特征段信息和指令函数指针。在结构体中生成指令函数指针属性。特征段属性通过下述方法生成:遍历指令集编码文件,归纳整个指令集包含的特征段种类,并统计各特征段长度。若存在同名特征段,其长度按最大值记。根据特征段长度,在指令结构体中定义各特征段同名属性。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江大学,未经浙江大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910175584.9/2.html,转载请声明来源钻瓜专利网。





