[发明专利]一种模拟器的生成方法及装置有效
申请号: | 201110369445.3 | 申请日: | 2011-11-18 |
公开(公告)号: | CN102521011A | 公开(公告)日: | 2012-06-27 |
发明(设计)人: | 叶寒栋;赵鹏;郑森火;曹炯 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F9/455 | 分类号: | G06F9/455 |
代理公司: | 北京中博世达专利商标代理有限公司 11274 | 代理人: | 申健 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 模拟器 生成 方法 装置 | ||
技术领域
本发明涉及生成模拟器领域,尤其涉及一种模拟器的生成方法及装置。
背景技术
在设计一款芯片的同时,相应的软件也必须同时设计和实现,此时由于没有真实的芯片存在,所以必须有一种手段能够模拟真实芯片的动作,为软件的设计和调试提供环境。模拟器就是具备这种功能的软件。
模拟器的基本原理是首先读入一段二进制的指令码流,通过解码器将其翻译成汇编指令,然后按照指令的定义模拟指令的动作,最终实现这段代码在目标芯片上的功能。
现有的技术方案中,模拟器的一种生成方法是通过模拟器开发人员手工编写解码算法。这种方法的主要流程是:
1、人工分析指令集的编码格式,确定操作码涉及的位域。
2、人工确定各个位域在解码算法中应用的先后顺序。
3、人工确定每条指令在各个位域上对应的值。
4、人工编写代码,按照上述位域的顺序,针对每个位域可能出现的值进行区分,如果可以确定操作码则返回操作码,否则进入下一个位域比较。
现有的技术方案中,模拟器的另一种生成方法是通过模拟器开发人员手工分析指令集的编码格式,通过工具产生最终代码,这种方法称为半人工方法。这种方法的主要流程是:
1、人工分析指令集的编码格式,人工分割二进制指令的位域。
2、人工确定各个位域在解码算法中应用的先后顺序。
3、人工确定每条指令在各个位域上对应的值。
4、通过工具产生代码。
在实现上述模拟器的生成方法的过程中,发明人发现现有技术中至少存在如下问题:
首先,人工分析和编写代码的工作量很大,且容易出错,后期测试代价高;其次,人工分析和编写代码工期长;再次,通常模拟器的开发是和芯片设计同步进行的,即指令集及其编码格式还没有最终确定时模拟器就要投入开发和应用,这就意味着模拟器的解码算法是可能随时更改的,并且要求能够迅速完成这个更改并投入使用。人工方法或是半人工方法无法适应这种要求。
基于这些问题,模拟器无法实现快速移植,不具有高效性。
发明内容
本发明的实施例提供一种模拟器的生成方法及装置,用于实现模拟器的快速移植性和高效性。
为达到上述目的,本发明的实施例采用如下技术方案:
一种模拟器的生成方法,包括:
获取指令集配置文件;根据所述指令集配置文件生成解码表和解码算法;所述解码表包括:指令码表,指令描述表和位域表;其中,所述指令码表中记录有汇编指令操作码,所述指令描述表记录有每条汇编指令操作码的详细信息,所述位域表记录有计算每一个操作数位域上的数值的方法;根据所述解码表、所述解码算法和模块代码生成模拟器;所述模块代码是用于模拟汇编指令的动作的代码和解码过程中非解码算法的代码。
一种模拟器的生成装置,包括:
获取单元,用于获取指令集配置文件;解释器,用于根据所述指令集配置文件生成解码表和解码算法;所述解码表包括:指令码表,指令描述表和位域表;其中,所述指令码表中记录有汇编指令操作码,所述指令描述表记录有每条汇编指令操作码的详细信息,所述位域表记录有计算每一个操作数位域上的数值的方法;编译器,用于根据所述解码表、所述解码算法和模块代码生成模拟器;所述模块代码是用于模拟汇编指令的动作的代码和解码过程中非解码算法的代码。
本发明实施例提供了一种模拟器的生成方法及装置,首先获取指令集配置文件,然后,根据指令集配置文件生成解码表和解码算法,最后,在根据解码表,解码算法和模块代码生成模拟器。这种生成模拟器的方法及装置不需要人工分析,还可以利用查找解码表的方法来定位,保证了模拟器的可移植性和高效性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种模拟器的生成方法的流程图;
图2为图1中生成解码表的流程图;
图3为图1中生成解码算法的流程图;
图4为本发明实施例提供的一种模拟器的生成方法的解码算法解析图;
图5为本发明实施例提供的一种模拟器的生成方法的解码算法一种流程图;
图6为本发明实施例提供的一种模拟器的生成方法的解码算法的又一解析图;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110369445.3/2.html,转载请声明来源钻瓜专利网。