指令压缩方法、指令解压缩方法及流程压缩方法技术

技术编号:36348599 阅读:60 留言:0更新日期:2023-01-14 18:03
本申请实施例公开了一种指令压缩方法、指令解压缩方法及流程压缩方法,流程压缩方法用来压缩一流程,该流程包括一跳转指令,流程压缩方法包括:根据该跳转指令在该流程中的一位置及该跳转指令的一目的地,将该流程划分为多个区块;记录该多个区块之间的一跳转关系;对该多个区块进行指令压缩;根据该跳转关系重新计算该跳转指令的一跳转地址;根据该多个区块的大小及该跳转关系决定多个群组;以及,根据该跳转指令与该多个群组的关系决定该跳转指令是一第一种类的跳转指令或一第二种类的跳转指令。转指令。转指令。

【技术实现步骤摘要】
指令压缩方法、指令解压缩方法及流程压缩方法


[0001]本申请涉及指令压缩与指令解压缩,具体涉及与跳转指令(jump instruction,或称为分支指令(branch instruction))相关的指令压缩方法、指令解压缩方法及流程压缩方法。

技术介绍

[0002]一般而言,一个流程(例如,影像处理流程、启动流程等)通常包括至少一个跳转指令。然而,现有的平台处理跳转逻辑时无法同时开启变长指令(variable

length instruction)压缩,导致指令暂存器需要较大的空间、长跳转(long jump)指令的个数变多,以及流程的执行效率下降。因此,需要一种指令压缩方法、指令解压缩方法及流程压缩方法来减少指令暂存器所需的空间,以及减少长跳转指令的个数。

技术实现思路

[0003]本申请实施例提供一种指令压缩方法、指令解压缩方法及流程压缩方法,以改善先前技术的不足。
[0004]本申请实施例提供一种指令解压缩方法,应用于一硬件电路,该硬件电路解压缩一指令并执行该指令,该指令包括一标头,该标头包括一参考值,该方法包括:当该指令的该参考值是一预设值时,读取该指令的一第一参数以取得一相异参数个数;以及,以该指令的多个第二参数设定该硬件电路的多个相对应的参数,该多个第二参数的个数等于该相异参数个数。
[0005]本申请实施例提供一种指令压缩方法,用来压缩一指令以产生一压缩后的指令,该指令包括一标头及多个参数,该标头包括一参考值,该方法包括:比较该指令与一前一指令,以找出该指令中与该前一指令不同的多个相异参数;将该压缩后的指令的该参考值设为一预设值;将该压缩后的指令的一目标参数设为该多个相异参数的个数;以及,将该压缩后的指令的其他参数设为该多个相异参数。
[0006]本申请实施例提供一种流程压缩方法,用来压缩一流程,该流程包括一跳转指令,该方法包括:根据该跳转指令在该流程中的一位置及该跳转指令的一目的地,将该流程划分为多个区块;记录该多个区块之间的一跳转关系;对该多个区块进行指令压缩;根据该跳转关系重新计算该跳转指令的一跳转地址;根据该多个区块的大小及该跳转关系决定多个群组;以及,根据该跳转指令与该多个群组的关系决定该跳转指令是一第一种类的跳转指令或一第二种类的跳转指令。
[0007]本申请的实施例所体现的技术手段可以改善先前技术的缺点的至少其中之一,因此本申请相较于先前技术可以减少指令暂存器所需的空间和/或减少长跳转指令的个数。
[0008]有关本申请的特征、实作与功效,兹配合图式作实施例详细说明。
附图说明
[0009]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0010]图1是本申请实施例提供的智能处理器的功能方块图;
[0011]图2是本申请实施例提供的流程压缩方法的流程图;
[0012]图3是本申请实施例提供的包括多个指令的流程,以及该流程的区块间的跳转关系的示意图;
[0013]图4是本申请实施例提供的区块间的跳转关系的示意图;
[0014]图5是图2的步骤S210的细节;
[0015]图6是本申请实施例提供的指令压缩方法的流程图;
[0016]图7是本申请实施例提供的压缩前的指令结构及压缩后的指令结构的示意图;
[0017]图8及图9是图2的步骤S250的细节;
[0018]图10A及图10B是本申请实施例提供的将流程的多个区块划分成多个群组的示意图;
[0019]图11是图2的步骤S260的细节;
[0020]图12是本申请实施例提供的划分群组的示意图;
[0021]图13是本申请实施例提供的指令解压缩方法的流程图;
[0022]图14是本申请实施例提供的的硬件电路执行未经压缩的指令的示意图;以及
[0023]图15是本申请实施例提供的硬件电路执行压缩指令的示意图。
[0024]【符号说明】
[0025]100:智能处理器
[0026]110:译码器
[0027]112:存储器
[0028]114:指令预撷取电路
[0029]116:指令分发电路
[0030]118:跳转逻辑电路
[0031]120:直接存储器存取(DMA)
[0032]130:矢量电路
[0033]140:卷积电路
[0034]122,132,142:指令解压缩电路
[0035]124,134,144:计算电路
[0036]310:流程
[0037]INST1~INST15,INST_k

1,INST_k,INST_y:指令
[0038]320:区块间的跳转关系
[0039]BB:区块边界
[0040]BLK1,BLK2,BLK3,BLK4:区块
[0041]INST_k',INST_z:压缩后的指令
[0042]HD:标头
[0043]InstFlag:旗标
[0044]HDLen:参考值
[0045]P1,P2,P3,P4,P5,Pn,P1',P2',P3',P4',P5':参数
[0046]Nd:相异参数个数
[0047]SR:门槛值
[0048]GB:群组边界
[0049]GRP1,GRP2,GRP3:群组
[0050]INST_n:跳转指令
[0051]REGP:暂存器群组
[0052]REG1,REG2,REG3,REG4,REG5:暂存器
[0053]S210,S220,S230,S240,S250,S260,S510,S520,S530,S540,S550,S610,S620,S630,S640,S650,S660,S670,S680,S810,S820,S830,S840,S850,S860,S870,S910,S920,S930,S940,S950,S960,S970,S1110,S1120,S1130,S1140,S1150,S1160,S1310,S1320,S1330,S1340,S1350,S1360:步骤
具体实施方式
[0054]以下说明内容的技术用语参照本
的习惯用语,如本说明书对部分用语有加以说明或定义,该部分用语的解释以本说明书的说明或定义为准。
[0055]本申请的公开内容包括指令压缩方法、指令解压缩方法及流程压缩方法。由于本申请的智能处理器所包括的部分元件单独而言可能为已知元件,因此在不影响该装置专利技术的充分公开及可实施性的前提下,以下说明对于已知元件的细节将予以节略。此外,本申请的指令压缩方法、指令解压缩方法及流程压缩方法的部分或全部流程可以是软件和本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种指令解压缩方法,其特征在于,应用于一硬件电路,所述硬件电路解压缩一指令并执行所述指令,所述指令包括一标头,所述标头包括一参考值,所述方法包括:当所述指令的所述参考值是一预设值时,读取所述指令的一第一参数以取得一相异参数个数;以及以所述指令的多个第二参数设定所述硬件电路的多个相对应的参数,所述多个第二参数的个数等于所述相异参数个数。2.如权利要求1所述的方法,其特征在于,所述方法还包括:当所述指令的所述参考值非所述预设值时,以所述指令的所有参数设定所述硬件电路的所述多个相对应的参数。3.如权利要求1所述的方法,其特征在于,所述硬件电路包括多个暂存器,所述多个相对应的参数是所述多个暂存器的暂存值。4.如权利要求1所述的方法,其特征在于,当所述相异参数个数是N时,所述多个第二参数是所述指令的第二个参数至第N+1个参数。5.如权利要求1所述的方法,其特征在于,所述指令是一变长指令。6.一种指令压缩方法,其特征在于,用来压缩一指令以产生一压缩后的指令,所述指令包括一标头及多个参数,所述标头包括一参考值,所述方法包括:比较所述指令与一前一指令,以找出所述指令中与所述前一指令不同的多个相异参数;将所述压缩后的指令的所述参考值设为一预设值;将所述压缩后的指令的一目标参数设为所述多个相异参数的个数;以及将所述压缩后的指令的其他参数设为所述多个相异参数。7.如权利要求6所述的方法,其特征在于,所述方法应用于一硬件电路,所述硬件电路执行一流程,所述指令与所述前一指令是所述流程的连续指令,且所述指令晚于所述前一指令。8.如权利要求7所述的方法,其特征在于,所述流程包括多个区块,每一区块包括多个指令,所述指令与所述前一指令属于所述多个区块中的同一目标区块,且所述指令非所述目标区块的第一个指令。9.如权利要求6所述的方法,其特征在于,所述目标参数是所述压缩后的指令的第一个参数。10.如权利要求6所述的方法,其特征在于,所述指令是一变长指令。11.一种流程压缩方法,其特征在于,用来压缩一流程,所述流程包括一跳转指令,所述方法包括:(A)根据所述跳...

【专利技术属性】
技术研发人员:邓亚明
申请(专利权)人:星宸微电子深圳有限公司
类型:发明
国别省市:

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

1