基于域填充的处理器指令编码自动生成方法及装置制造方法及图纸

技术编号:22816838 阅读:15 留言:0更新日期:2019-12-14 13:02
本发明专利技术实施例提供一种基于域填充的处理器指令编码自动生成方法及装置,所述方法包括:获取目标处理器指令集手册中所有的译码图‑译码表对,对所有的译码图‑译码表对进行预处理,将所有经过预处理的译码图‑译码表对存储至一个文件中,获得预处理文件;对预处理文件中的任一译码图‑译码表对,根据该译码图‑译码表对中包含的信息进行固定域和变化域的填充,生成该译码图‑译码表对的所有已定义和未定义指令编码,将该译码图‑译码表对从预处理文件中删除,并判断预处理文件是否为空,若预处理文件不为空,则对预处理文件中的下一译码图‑译码表对执行所有已定义和未定义指令编码的生成操作。本发明专利技术实施例能够高效、自动地生成处理器指令编码。

A method and device for automatic generation of processor instruction code based on domain filling

【技术实现步骤摘要】
基于域填充的处理器指令编码自动生成方法及装置
本专利技术涉及处理器
,更具体地,涉及一种基于域填充的处理器指令编码自动生成方法及装置。
技术介绍
对于处理器的设计和验证来说,掌握指令集手册中所有的指令编码是非常关键的,比如在处理器设计的验证阶段,需要根据所有的指令编码建立完整的指令模板库,以生成高质量的指令集测试用例,从而验证处理器功能是否与设计目标一致。处理器指令编码可以分为已定义指令编码和未定义指令编码两部分,已定义指令编码指的是指令集手册中规定的具有特定功能的指令编码,比如常见的算术运算指令编码;未定义指令编码指的是指令集手册中规定的没有特定功能的指令编码,即整个指令编码中除已定义指令编码外的那部分指令编码。对于已定义指令编码,指令集手册一般会枚举所有的已定义指令编码,然而想要手工从指令集手册中去收集这些已定义指令编码不仅繁琐复杂而且容易出错,比如ARM指令集手册中的A64指令集一共定义了104条系统指令编码(C5章)、324条基本指令编码(C6章)、383条高级SIMD和浮点指令编码(C7章),这些已定义指令编码散布在三个章节,手册用了近2000页的篇幅去描述它们。对于未定义指令编码,指令集手册一般不会直接提供。为了方便检索,一些指令集手册还定义了译码图(DecodeDiagram)和译码表(DecodeTable),一张译码图和一张译码表对应,组成一个译码图-译码表对,所有的已定义和未定义指令编码都可以通过这些译码图-译码表对获得,比如ARM指令集手册中的A64指令集一共定义了不到100个译码图-译码表对,它们涵盖了A64指令集所有的已定义和未定义指令编码,手册仅用了100多页的篇幅去描述它们。然而,想要手工根据译码图-译码表对来获得所有的已定义和未定义指令编码,依旧繁琐复杂而且容易出错。总之,关于如何根据指令集手册生成所有的已定义和未定义指令编码,缺乏一种高效的、自动的生成方法。
技术实现思路
本专利技术实施例提供一种克服上述问题或者至少部分地解决上述问题的基于域填充的处理器指令编码自动生成方法及装置。第一方面,本专利技术实施例提供一种基于域填充的处理器指令编码自动生成方法,包括:获取目标处理器指令集手册中所有的译码图-译码表对,对所述处理器指令集手册中所有的译码图-译码表对进行预处理,获得所有经过预处理的译码图-译码表对,将所述所有经过预处理的译码图-译码表对存储至一个文件中,获得预处理文件;对所述预处理文件中的任一经过预处理的译码图-译码表对,根据所述经过预处理的译码图-译码表对中包含的信息进行固定域和变化域的填充,生成所述经过预处理的译码图-译码表对所对应的所有已定义和未定义指令编码,将所述经过预处理的译码图-译码表对从所述预处理文件中删除,并判断所述预处理文件是否为空,若所述预处理文件为空,则获知所述预处理文件中的所有经过预处理的译码图-译码表对均已完成了所有已定义和未定义指令编码的生成操作,否则,对所述预处理文件中的下一经过预处理的译码图-译码表对执行所有已定义和未定义指令编码的生成操作。第二方面,本专利技术实施例提供一种基于域填充的处理器指令编码自动生成装置,包括:预处理模块,用于获取目标处理器指令集手册中所有的译码图-译码表对,对所述处理器指令集手册中所有的译码图-译码表对进行预处理,获得所有经过预处理的译码图-译码表对,将所述所有经过预处理的译码图-译码表对存储至一个文件中,获得预处理文件;生成模块,用于对所述预处理文件中的任一经过预处理的译码图-译码表对,根据所述经过预处理的译码图-译码表对中包含的信息进行固定域和变化域的填充,生成所述经过预处理的译码图-译码表对所对应的所有已定义和未定义指令编码,将所述经过预处理的译码图-译码表对从所述预处理文件中删除,并判断所述预处理文件是否为空,若所述预处理文件为空,则获知所述预处理文件中的所有经过预处理的译码图-译码表对均已完成了所有已定义和未定义指令编码的生成操作,否则,对所述预处理文件中的下一经过预处理的译码图-译码表对执行所有已定义和未定义指令编码的生成操作。第三方面,本专利技术实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所提供的基于域填充的处理器指令编码自动生成方法的步骤。第四方面,本专利技术实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所提供的基于域填充的处理器指令编码自动生成方法的步骤。本专利技术实施例提供的基于域填充的处理器指令编码自动生成方法及装置,通过将处理器指令集手册中定义的所有译码图-译码表对进行预处理成方便处理的格式,得到一个预处理文件,然后根据预处理后的译码图-译码表对中包含的信息对指令编码的固定域和变化域进行填充,得到所有的已定义和未定义指令编码,能够高效、自动地生成处理器指令编码。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例提供的基于域填充的处理器指令编码自动生成方法的流程示意图;图2为ARM处理器指令集手册中Movewide指令类的译码图-译码表对示例图;图3为本专利技术实施例提供的ARM处理器指令集手册中Movewide指令类的经过预处理的译码图-译码表对示例图;图4为本专利技术实施例提供的根据所述经过预处理的译码图-译码表对中包含的信息进行固定域和变化域的填充,生成所述经过预处理的译码图-译码表对所对应的所有已定义和未定义指令编码的步骤的流程示意图;图5为采用本专利技术实施例的方法所生成的ARM处理器指令集手册中Movewide指令类的所有已定义和未定义指令编码的示例图;图6为本专利技术实施例提供的基于域填充的处理器指令编码自动生成装置的结构示意图;图7为本专利技术实施例提供的电子设备的实体结构示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。如图1所示,为本专利技术实施例提供的基于域填充的处理器指令编码自动生成方法的流程示意图,包括:步骤100、获取目标处理器指令集手册中所有的译码图-译码表对,对所述处理器指令集手册中所有的译码图-译码表对进行预处理,获得所有经过预处理的译码图-译码表对;本专利技术实施例中将指令编码中由一个编码高位和一个编码低位所确定的编码区域称作位域,每个位域可以表示成“高位..低位”的形式。本文档来自技高网
...

【技术保护点】
1.一种基于域填充的处理器指令编码自动生成方法,其特征在于,包括:/n获取目标处理器指令集手册中所有的译码图-译码表对,对所述处理器指令集手册中所有的译码图-译码表对进行预处理,获得所有经过预处理的译码图-译码表对,将所述所有经过预处理的译码图-译码表对存储至一个文件中,获得预处理文件;/n对所述预处理文件中的任一经过预处理的译码图-译码表对,根据所述经过预处理的译码图-译码表对中包含的信息进行固定域和变化域的填充,生成所述经过预处理的译码图-译码表对所对应的所有已定义和未定义指令编码,将所述经过预处理的译码图-译码表对从所述预处理文件中删除,并判断所述预处理文件是否为空,若所述预处理文件为空,则获知所述预处理文件中的所有经过预处理的译码图-译码表对均已完成了所有已定义和未定义指令编码的生成操作,否则,对所述预处理文件中的下一经过预处理的译码图-译码表对执行所有已定义和未定义指令编码的生成操作。/n

【技术特征摘要】
1.一种基于域填充的处理器指令编码自动生成方法,其特征在于,包括:
获取目标处理器指令集手册中所有的译码图-译码表对,对所述处理器指令集手册中所有的译码图-译码表对进行预处理,获得所有经过预处理的译码图-译码表对,将所述所有经过预处理的译码图-译码表对存储至一个文件中,获得预处理文件;
对所述预处理文件中的任一经过预处理的译码图-译码表对,根据所述经过预处理的译码图-译码表对中包含的信息进行固定域和变化域的填充,生成所述经过预处理的译码图-译码表对所对应的所有已定义和未定义指令编码,将所述经过预处理的译码图-译码表对从所述预处理文件中删除,并判断所述预处理文件是否为空,若所述预处理文件为空,则获知所述预处理文件中的所有经过预处理的译码图-译码表对均已完成了所有已定义和未定义指令编码的生成操作,否则,对所述预处理文件中的下一经过预处理的译码图-译码表对执行所有已定义和未定义指令编码的生成操作。


2.根据权利要求1所述的基于域填充的处理器指令编码自动生成方法,其特征在于,所述经过预处理的译码图-译码表对包括以下信息:译码图-译码表对的名称、生成指令编码的总数、每条生成指令编码的名称、各个固定域、各个固定域编码、各个变化域以及每条生成指令编码对应的各个变化域编码。


3.根据权利要求2所述的基于域填充的处理器指令编码自动生成方法,其特征在于,所述根据所述经过预处理的译码图-译码表对中包含的信息进行固定域和变化域的填充,生成所述经过预处理的译码图-译码表对所对应的所有已定义和未定义指令编码的步骤,具体为:
根据所述目标处理器指令集的指令长度对指令编码进行初始化;
从所述经过预处理的译码图-译码表对中取出各个固定域和各个固定域编码,将初始化后的指令编码中所述各个固定域所在的编码替换为相应的所述经过预处理的译码图-译码表对中的固定域编码,获得新的指令编码;
从所述经过预处理的译码图-译码表对中取出一条生成指令编码的名称、各个变化域和所取出的生成指令编码对应的各个变化域编码,将所述新的指令编码中所述各个变化域所在的编码替换为所述经过预处理的译码图-译码表对中该生成指令编码对应的各个变化域编码,获得一条生成指令编码,并使当前得到的生成指令编码数目加一;
判断当前得到的生成指令编码数目是否等于所述经过预处理的译码图-译码表对中的生成指令编码的总数,若相等,则获知所述经过预处理的译码图-译码表对已经生成了所有的已定义和未定义指令编码,否则,对所述经过预处理的译码图-译码表对执行下一生成指令编码的生成操作。


4.根据权利要求2所述的基于域填充的处理器指令编码自动生成方法,其特征在于,所述根据所述经过预处理的译码图-译码表对中包含的信息进行固定域和变化域的填充,生成所述经过预处理的译码图-译码表对所对应的所有已定义和未定义指令编码的步骤,具体为:
根据所述目标处理器指令集的指令长度对指令编码进行初始化;
从所述经过预处理的译码图-译码表对中取出任一条生成指令编码的名称,以及各个变化域和所取出的生成指令编码对应的各个变化域编码,将初始化后的指令编码中所述各个变化域所在的编码替换为所述经过预处理的译码图-译码表对中该生成指令编码对应的各个变化域编码,获得新的指令编码;
从所述经过预处理的译码图-译码表对中获取各个固定域和各个固定域编码,将所述新的指令编码中所述各个固定域所在的编码替换为相应的所述经过预处理的译码图-译码表对中的固定域编码,获得一条生成指令编码,并使当前得到的生成指令编码数目加一;
判断当前得到的生成指令编码数目是否等于所述经过预处理的译码图-译码表对中的生成指令编码的总数,若相等,则获知所述经过预处理的译码图-译码表对已经生成了所有的已定义和未定义指令编码,否则,对所述经过预处理的译码图-译码表对执行下一生成指令编码的生成操作。


5.一种基于域填充的处理器指令编码自动生成装置,其特征在于,包括:<...

【专利技术属性】
技术研发人员:孟丹李丹萍朱子元史岗
申请(专利权)人:中国科学院信息工程研究所
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1