一种用于流水线指令相关性的分析方法

文档序号:6542711阅读:910来源:国知局
一种用于流水线指令相关性的分析方法
【专利摘要】本发明公开了一种用于流水线指令相关性的分析方法,提出了一种从用户使用的角度分析最小化指令序列的验证方法,通过对LEON指令相关性分析,需要验证至少三级指令相关才能满足相关性验证需求。考虑到保护用户编写的功能程序代码,该方法使用的输入文件为用户编译后生成32位机器码,通过分析得到用户使用的指令序列,并且分析指令序列的相关性,得到使用过的和多次使用的指令序列分析结果,指导指令相关性验证,保证指令验证工作有效满足用户的使用需求。
【专利说明】一种用于流水线指令相关性的分析方法
【技术领域】
[0001]本发明涉及处理器指令验证【技术领域】,涉及一种用于流水线指令相关性的分析方法。
【背景技术】
[0002]LEON处理器是一款开源微处理器软核,包含整数硬件乘法和除法单元,双协处理器(FPU浮点处理单元和协处理器),分离的指令和数据总线。该构架包括了输入输出I/O口,存储器管理单元,cache子构架系统(MMU)以及超级权限软件,存储器模型等;该软核具有非常良好的可配置性和可移植性,在VHDl源代码基础上,结合具体需求加入定制的运算单元和外设接口便可以建立国产的SOC系统。该处理器包含172条常用指令,40?520个寄存器,指令集非常复杂因此需要大规模的指令验证才能保证LEON处理器功能的正确性。
[0003]LEON处理器采用5级流水线结构设计,将指令执行分为取值(FE)、译码(DE)JAR(EX)、存储器访问(ME)、写回(WR)五个功能阶段,指令执行时可能发生流水线冲突,因此验证工作中需要对流水线指令的相关性进行验证。SPARC V8指令相关性和寄存器的相关情况非常复杂,假设一条指令可以使用10种寄存器组合,在五级流水线中可能发生相关的情况有(172*10)5,加上每条指令的不同格式,可能出现的指令序列情况更多,依靠目前验证条件通过遍历所有指令序列的验证方法是无法完成的,因此不能保证验证的全面性和有效性。

【发明内容】

[0004]本发明解决的问题在于提供一种用于流水线指令相关性的分析方法,通过大规模分析用户可能使用到的程序,得到使用过的和使用最多的指令序列,并且对这些指令序列的相关性进行分析,进而指导指令验证工作。
[0005]本发明是通过以下技术方案来实现:
[0006]1、一种用于流水线指令相关性的分析方法,其特征在于,包括以下操作:
[0007]I)对待处理的分析对象,通过编译器将其译成为32位的机器码文件,作为分析使用的输入文件;
[0008]2)根据编译器的指令编码格式得到指令格式和寄存器编码;根据指令格式编码中的构成,确定其采用的指令编码和寄存器编码;并对类型相同的指令编码命名为特定值,再将特定值按照指令顺序排列;
[0009]3)选定所指定的η级相关性分析,从第一条指令开始,将其后η-l个指令相关联,统计关联后的特定值序列;然后分析该特定值序列所对应的指令及寄存器的关联情况;
[0010]4)统计发生二级指令相关的指令序列和该序列出现的次数,以及指令相关出现的数量和寄存器相关类型;
[0011]将指令特定值序列、寄存器特定值序列进行归一化处理,得到所有指令中相同指令特定值序列、相同寄存器特定值序列所出现的概率,得到二级指令相关结果;[0012]5)统计发生三级指令相关的指令序列和该序列出现的次数,以及指令相关出现的数量和寄存器相关类型;
[0013]将指令特定值序列、寄存器特定值序列进行归一化处理,得到所有指令中相同指令特定值序列、相同寄存器特定值序列所出现的概率,得到三级指令相关结果;
[0014]6)将二级指令相关结果、三级指令相关结果汇总,输出流水线相关性分析结果。
[0015]2、如权利要求1所述的用于流水线指令相关性的分析方法,其特征在于,所述通过SPARC V8编译器译成为32位的机器码文件,然后根据SPARC V8指令编码格式得到指令格式和寄存器编码格式。
[0016]3、如权利要求1所述的用于流水线指令相关性的分析方法,其特征在于,所述的分析该特定值序列所对应的指令及寄存器的关联情况,是通过第一条指令所对应的寄存器与后续η-1、η-2条指令所对应的寄存器的相关性,得到寄存器相关性序列,并将其命名为寄存器特定值。
[0017]4、如权利要求1所述的用于流水线指令相关性的分析方法,其特征在于,所述的二级指令相关性为联系两条指令的相关性的分析,并与其相关的特定值序列进行关联;
[0018]所述的三级指令相关性为联系三条指令的相关性的分析,并与其相关的特定值序列进行关联。
[0019]与现有技术相比,本发明具有以下有益的技术效果:
[0020]本发明针对流水线指令相关性验证工作量大,验证不完全等问题提出的。提出了一种从用户使用的角度分析,得出满足使用需求的验证方法,用于分析最小化指令序列,通过对LEON指令相关性分析,需要验证至少三级指令相关才能满足相关性验证需求。考虑到保护用户编写的功能程序代码,该方法使用的分析文件为用户编译后生成32位机器码,通过分析得到用户使用的相关指令序列,并且分析指令序列的相关性,得到使用的和多次使用的指令序列分析结果,指导指令相关性验证,保证指令验证工作有效满足用户的使用需求。
[0021]通过对用户使用的功能程序文件进行分析,得到指令相关性分析结果,可以解决指令验证工作中无法保证指令相关性验证的全面性和有效性问题,保证验证工作覆盖到所有可能使用的指令序列,减少指令验证工作量,提高验证工作效率。
[0022]通过本发明可以得到所有指令序列组合以及指令组合出现的次数,指令组合的相关性。可大大减少验证的工作量。从而进行有针对性的验证。通过对某型号Ieon处理器系统验证中使用的全部功能程序进行分析(共18408行),分析结果显示两条指令连续出现的序列有108种情况,三条指令连续出现的序列有253种情况,远小于理论计算的数量。
【专利附图】

【附图说明】
[0023]图1为本发明的流程示意图;
[0024]图2为指令性相关分析的示意图。
【具体实施方式】
[0025]下面结合具体的实施例对本发明做进一步的详细说明,所述是对本发明的解释而不是限定。[0026]本发明提出了一种用于流水线指令相关性的分析方法,该方法是一种从用户使用的角度分析最小化指令序列的验证方法,通过对LEON指令相关性分析,需要验证至少三级指令相关才能满足相关性验证需求。考虑到保护用户编写的功能程序代码,该方法使用的输入文件为用户编译后生成32位机器码,通过分析得到用户使用的指令序列,并且分析指令序列的相关性,得到使用过的和多次使用的指令序列分析结果,指导指令相关性验证,保证指令验证工作有效满足用户的使用需求。
[0027]—种用于流水线指令相关性的分析方法,包括以下操作:
[0028]I)对待处理的分析对象,通过编译器将其译成为32位的机器码文件,作为分析使用的输入文件;
[0029]2)根据编译器的指令编码格式得到指令格式和寄存器编码;根据指令格式编码中的构成,确定其采用的指令编码和寄存器编码;并对类型相同的指令编码命名为特定值,再将特定值按照指令顺序排列;
[0030]3)选定所指定的η级相关性分析,从第一条指令开始,将其后η-l个指令相关联,统计关联后的特定值序列;然后分析该特定值序列所对应的指令及寄存器的关联情况;
[0031]4)统计发生二级指令相关的指令序列和该序列出现的次数,以及指令相关出现的数量和寄存器相关类型;
[0032]将指令特定值序列、寄存器特定值序列进行归一化处理,得到所有指令中相同指令特定值序列、相同寄存器特定值序列所出现的概率,得到二级指令相关结果;
[0033]5)统计发生三级指令相关的指令序列和该序列出现的次数,以及指令相关出现的数量和寄存器相关类型;
[0034]将指令特定值序列、寄存器特定值序列进行归一化处理,得到所有指令中相同指令特定值序列、相同寄存器特定值序列所出现的概率,得到三级指令相关结果;
[0035]6)将二级指令相关结果、三级指令相关结果汇总,得到指令相关性结果,输出流水线相关性分析结果。
[0036]下面结合具体的分析过程给出具体的实施例。
[0037]步骤1:相关性分析需要用户提供32位的机器码文件,用户使用C语言或汇编语言编写功能程序,通过SPARC V8编译器或者用户专用编译器编译成为32位的机器码文件,作为分析使用的输入文件。
[0038]步骤2:根据SPARC V8指令编码格式得到:SPARC V8指令格式如表I所示;寄存器编码如表2所示。
[0039]表1:部分指令格式编码
[0040]
【权利要求】
1.一种用于流水线指令相关性的分析方法,其特征在于,包括以下操作: 1)对待处理的分析对象,通过编译器将其译成为32位的机器码文件,作为分析使用的输入文件; 2)根据编译器的指令编码格式得到指令格式和寄存器编码;根据指令格式编码中的构成,确定其采用的指令编码和寄存器编码;并对类型相同的指令编码命名为特定值,再将特定值按照指令顺序排列; 3)选定所指定的那n级相关性分析,从第一条指令开始,将其后n-l个指令相关联,统计关联后的特定值序列;然后分析该特定值序列所对应的指令及寄存器的关联情况; 4)统计发生二级指令相关的指令序列和该序列出现的次数,以及指令相关出现的数量和寄存器相关类型; 将指令特定值序列、寄存器特定值序列进行归一化处理,得到所有指令中相同指令特定值序列、相同寄存器特定值序列所出现的概率,得到二级指令相关结果; 5)统计发生三级指令相关的指令序列和该序列出现的次数,以及指令相关出现的数量和寄存器相关类型; 将指令特定值序列、寄存器特定值序列进行归一化处理,得到所有指令中相同指令特定值序列、相同寄存器特定值序列所出现的概率,得到三级指令相关结果; 6)将二级指令相关结果、三级指令相关结果汇总,输出流水线相关性分析结果。
2.如权利要求1所述的用于流水线指令相关性的分析方法,其特征在于,所述通过SPARC V8编译器译成为32位的机器码文件,然后根据SPARC V8指令编码格式得到指令格式和寄存器编码格式。
3.如权利要求1所述的用于流水线指令相关性的分析方法,其特征在于,所述的分析该特定值序列所对应的指令及寄存器的关联情况,是通过第一条指令所对应的寄存器与后续n-1、n-2条指令所对应的寄存器的相关性,得到寄存器相关性序列,并将其命名为寄存器特定值。
4.如权利要求1所述的用于流水线指令相关性的分析方法,其特征在于,所述的二级指令相关性为联系两条指令的相关性的分析,并与其相关的特定值序列进行关联; 所述的三级指令相关性为联系三条指令的相关性的分析,并与其相关的特定值序列进行关联。
【文档编号】G06F9/38GK103902252SQ201410131434
【公开日】2014年7月2日 申请日期:2014年3月28日 优先权日:2014年3月28日
【发明者】张雪, 郝奎, 张辉 申请人:中国航天科技集团公司第九研究院第七七一研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1