【技术实现步骤摘要】
基于域填充的处理器指令编码自动生成方法及装置
本专利技术涉及处理器
,更具体地,涉及一种基于域填充的处理器指令编码自动生成方法及装置。
技术介绍
对于处理器的设计和验证来说,掌握指令集手册中所有的指令编码是非常关键的,比如在处理器设计的验证阶段,需要根据所有的指令编码建立完整的指令模板库,以生成高质量的指令集测试用例,从而验证处理器功能是否与设计目标一致。处理器指令编码可以分为已定义指令编码和未定义指令编码两部分,已定义指令编码指的是指令集手册中规定的具有特定功能的指令编码,比如常见的算术运算指令编码;未定义指令编码指的是指令集手册中规定的没有特定功能的指令编码,即整个指令编码中除已定义指令编码外的那部分指令编码。对于已定义指令编码,指令集手册一般会枚举所有的已定义指令编码,然而想要手工从指令集手册中去收集这些已定义指令编码不仅繁琐复杂而且容易出错,比如ARM指令集手册中的A64指令集一共定义了104条系统指令编码(C5章)、324条基本指令编码(C6章)、383条高级SIMD和浮点指令编码(C7章),这些已定义指令编码散布在三个章节,手册用了近2000页的篇幅去描述它们。对于未定义指令编码,指令集手册一般不会直接提供。为了方便检索,一些指令集手册还定义了译码图(DecodeDiagram)和译码表(DecodeTable),一张译码图和一张译码表对应,组成一个译码图-译码表对,所有的已定义和未定义指令编码都可以通过这些译码图-译码表对获得,比如ARM指令集手册中的A64指令集一共定义了不到100个译码 ...
【技术保护点】
1.一种基于域填充的处理器指令编码自动生成方法,其特征在于,包括:/n获取目标处理器指令集手册中所有的译码图-译码表对,对所述处理器指令集手册中所有的译码图-译码表对进行预处理,获得所有经过预处理的译码图-译码表对,将所述所有经过预处理的译码图-译码表对存储至一个文件中,获得预处理文件;/n对所述预处理文件中的任一经过预处理的译码图-译码表对,根据所述经过预处理的译码图-译码表对中包含的信息进行固定域和变化域的填充,生成所述经过预处理的译码图-译码表对所对应的所有已定义和未定义指令编码,将所述经过预处理的译码图-译码表对从所述预处理文件中删除,并判断所述预处理文件是否为空,若所述预处理文件为空,则获知所述预处理文件中的所有经过预处理的译码图-译码表对均已完成了所有已定义和未定义指令编码的生成操作,否则,对所述预处理文件中的下一经过预处理的译码图-译码表对执行所有已定义和未定义指令编码的生成操作。/n
【技术特征摘要】
1.一种基于域填充的处理器指令编码自动生成方法,其特征在于,包括:
获取目标处理器指令集手册中所有的译码图-译码表对,对所述处理器指令集手册中所有的译码图-译码表对进行预处理,获得所有经过预处理的译码图-译码表对,将所述所有经过预处理的译码图-译码表对存储至一个文件中,获得预处理文件;
对所述预处理文件中的任一经过预处理的译码图-译码表对,根据所述经过预处理的译码图-译码表对中包含的信息进行固定域和变化域的填充,生成所述经过预处理的译码图-译码表对所对应的所有已定义和未定义指令编码,将所述经过预处理的译码图-译码表对从所述预处理文件中删除,并判断所述预处理文件是否为空,若所述预处理文件为空,则获知所述预处理文件中的所有经过预处理的译码图-译码表对均已完成了所有已定义和未定义指令编码的生成操作,否则,对所述预处理文件中的下一经过预处理的译码图-译码表对执行所有已定义和未定义指令编码的生成操作。
2.根据权利要求1所述的基于域填充的处理器指令编码自动生成方法,其特征在于,所述经过预处理的译码图-译码表对包括以下信息:译码图-译码表对的名称、生成指令编码的总数、每条生成指令编码的名称、各个固定域、各个固定域编码、各个变化域以及每条生成指令编码对应的各个变化域编码。
3.根据权利要求2所述的基于域填充的处理器指令编码自动生成方法,其特征在于,所述根据所述经过预处理的译码图-译码表对中包含的信息进行固定域和变化域的填充,生成所述经过预处理的译码图-译码表对所对应的所有已定义和未定义指令编码的步骤,具体为:
根据所述目标处理器指令集的指令长度对指令编码进行初始化;
从所述经过预处理的译码图-译码表对中取出各个固定域和各个固定域编码,将初始化后的指令编码中所述各个固定域所在的编码替换为相应的所述经过预处理的译码图-译码表对中的固定域编码,获得新的指令编码;
从所述经过预处理的译码图-译码表对中取出一条生成指令编码的名称、各个变化域和所取出的生成指令编码对应的各个变化域编码,将所述新的指令编码中所述各个变化域所在的编码替换为所述经过预处理的译码图-译码表对中该生成指令编码对应的各个变化域编码,获得一条生成指令编码,并使当前得到的生成指令编码数目加一;
判断当前得到的生成指令编码数目是否等于所述经过预处理的译码图-译码表对中的生成指令编码的总数,若相等,则获知所述经过预处理的译码图-译码表对已经生成了所有的已定义和未定义指令编码,否则,对所述经过预处理的译码图-译码表对执行下一生成指令编码的生成操作。
4.根据权利要求2所述的基于域填充的处理器指令编码自动生成方法,其特征在于,所述根据所述经过预处理的译码图-译码表对中包含的信息进行固定域和变化域的填充,生成所述经过预处理的译码图-译码表对所对应的所有已定义和未定义指令编码的步骤,具体为:
根据所述目标处理器指令集的指令长度对指令编码进行初始化;
从所述经过预处理的译码图-译码表对中取出任一条生成指令编码的名称,以及各个变化域和所取出的生成指令编码对应的各个变化域编码,将初始化后的指令编码中所述各个变化域所在的编码替换为所述经过预处理的译码图-译码表对中该生成指令编码对应的各个变化域编码,获得新的指令编码;
从所述经过预处理的译码图-译码表对中获取各个固定域和各个固定域编码,将所述新的指令编码中所述各个固定域所在的编码替换为相应的所述经过预处理的译码图-译码表对中的固定域编码,获得一条生成指令编码,并使当前得到的生成指令编码数目加一;
判断当前得到的生成指令编码数目是否等于所述经过预处理的译码图-译码表对中的生成指令编码的总数,若相等,则获知所述经过预处理的译码图-译码表对已经生成了所有的已定义和未定义指令编码,否则,对所述经过预处理的译码图-译码表对执行下一生成指令编码的生成操作。
5.一种基于域填充的处理器指令编码自动生成装置,其特征在于,包括:<...
【专利技术属性】
技术研发人员:孟丹,李丹萍,朱子元,史岗,
申请(专利权)人:中国科学院信息工程研究所,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。