[发明专利]一种解码方法及装置在审
申请号: | 201310431693.5 | 申请日: | 2013-09-18 |
公开(公告)号: | CN103501208A | 公开(公告)日: | 2014-01-08 |
发明(设计)人: | 李书旭;肖春鹏;罗晴 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | H04L1/00 | 分类号: | H04L1/00 |
代理公司: | 北京中博世达专利商标代理有限公司 11274 | 代理人: | 申健 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 解码 方法 装置 | ||
技术领域
本发明涉及通信仿真技术领域,尤其涉及一种解码方法及装置。
背景技术
在仿真领域,仿真器根据标准的二进制可执行文件格式获取二进制码流,其中可执行文件格式可以为Linux下的可执行连接格式(Executable and Linkable Format,ELF)文件,或者Windows下的可移植的执行体(Portable Execute,PE)文件。然后根据指令集体系结构(Instruction Set Architecture,ISA)进行解码,从而解析出指令,并执行该指令。其中,指令包括操作码和操作数,操作码可以分为主操作码和从操作码。
现有技术中,通常采用Switch-case结构来进行解码。无内部互锁流水级的微处理器(Microprocessor without Interlocked Piped Stages,MIPS)为例,MIPS中有意义的主操作码有50多种,那么就对应50多种Switch-case结构。使用Switch-case结构来进行解码,是将二进制码流中的操作码(主操作码和从操作码)与已存储的Switch-case结构进行比较,当该操作码符合其中一种Switch-case结构,则得到该Switch-case结构对应的指令。
然而,采用Switch-case结构进行解码时,通过将二进制码流中的操作码与已存储的Switch-case结构逐一进行比较,直到找到相匹配的Switch-case结构,然后获取相匹配的Switch-case结构对应的指令,使得解码的效率较低。
发明内容
本发明的实施例提供一种解码方法及装置,用于解决解码效率较低的问题。
一方面,本发明的实施例提供一种解码方法,包括:
获取索引值,所述索引值为二进制码流中的操作码的值;
在查找信息库中查找所述索引值对应的表项,其中,所述表项包括所述索引值对应的关键值、表项指向类型以及表项索引值,所述查找信息库用于索引所述二进制码流对应的指令;
当所述表项指向类型为指令类型时,从指令信息库中获取所述表项索引值对应的指令,所述指令信息库的各个指令与所述查找信息库中对应的表项索引值相关联。
在第一种可能的实施例中,结合第一方面,所述查找信息库为查找表或者二叉查找树;
当A/2x大于等于第一预设值时,则所述查找信息库为所述查找表,其中A为所述操作码中的有效值,x为所述操作码的位宽,第一预设值用于衡量所述操作码的利用率;
当A/2x小于所述第一预设值,并且所述操作码位宽大于等于第二预设值时,则所述查找信息库为所述查找表,所述第二预设值用于衡量所述操作码位宽的大小;
当A/2x小于所述第一预设值,并且所述操作码位宽小于所述第二预设值时,则所述查找信息库为所述二叉查找树。
在第二种可能的实施例中,结合第一方面或者第一方面中的第一种可能的实施例,所述操作码包括主操作码和至少一个子操作码,则所述查找信息库包括主查找信息库和至少一个子查找信息库。
在第三种可能的实施例中,结合第一方面中的第二种可能的实施例,当所述查找信息库为所述主查找信息库时,所述方法,还包括:
获取主索引值,所述主索引值为所述二进制码流中的主操作码的值;
在所述主查找信息库中查找所述主索引值对应的第一表项,所述第一表项包括所述主索引值对应的关键值、第一表项指向类型以及第一表项索引值,所述主查找信息库包括所述主操作码的值以及所述主操作码的值对应的表项指向类型,以及表项索引值;
当所述第一表项指向类型为所述指令类型时,获取所述第一表项索引值对应的指令。
在第四种可能的实施例中,结合第一方面中的第三种可能的实施例,在所述当所述第一表项指向类型为所述指令类型时,获取所述第一表项索引值对应的指令之前,还包括:
分析所述第一表项中的所述第一表项指向类型;
所述当所述第一表项指向类型为所述指令类型时,获取所述第一表项索引值对应的指令,包括:
当所述第一表项指向类型为查找类型时,获取第一子索引值,所述第一子索引值为所述二进制码流中的其中一个子操作码的值,并根据所述第一子索引值进行如下操作:
获取所述第一表项索引值对应的第一子查找信息库;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310431693.5/2.html,转载请声明来源钻瓜专利网。