超长指令字指令集的指令处理方法及装置制造方法及图纸

技术编号:14699108 阅读:186 留言:0更新日期:2017-02-24 10:36
本发明专利技术实施例公开了一种超长指令字指令集的指令处理方法,包括:确定非连续地址取指操作的目的指令行;根据第一预设规则确定所述目的指令行的指令存储在存储器的不同行;根据第二预设规则向所述目的指令行之前的指令行插入至少一个空操作指令,使所述目的指令行的指令存储在所述存储器的同一行。本发明专利技术实施例同时还公开了一种超长指令字指令集的指令处理装置。

【技术实现步骤摘要】

本专利技术涉及超长指令字(VeryLongInstructionWord,VLIW)指令集领域,尤其涉及一种超长指令字指令集的指令处理方法及装置
技术介绍
VLIW指令集处理器有多流水线、每个时钟周期发射指令条数可变的特点。VLIW指令集处理器在进行指令预取时,每次从存储器的存储空间中取一个整行的指令放到指令缓存区;当出现非连续地址取指操作(循环跳转操作)时,VLIW指令集处理器先清空指令缓存区,再重新到存储器中取指令放到指令缓存区。因每个时钟周期发射指令条数可变的原因,同一时钟周期的指令可能会被分别保存到存储器中的相邻的两行存储空间中;如果指令缓存区的各个指令能拼成一个时钟周期要发射的完整的指令,这些指令会被发射到相应流水线上执行;如果在指令缓存区中的各个指令不能拼成一个时钟周期要发射的完整的指令,则需要等待从存储器中再取得下一行指令并保存到指令缓存区,这样,就会产生一个没有指令发射的时间周期,也就是空发射,空发射会降低VLIW指令集处理器的执行效率。
技术实现思路
有鉴于此,本专利技术实施例期望提供一种超长指令字指令集的指令处理方法及装置,以避免空发射的出现,提高VLIW指令集处理器的执行效率。为达到上述目的,本专利技术的技术方案是这样实现的:本专利技术提供一种超长指令字指令集的指令处理方法,所述方法包括:确定非连续地址取指操作的目的指令行;根据第一预设规则确定所述目的指令行的指令存储在存储器的不同行;根据第二预设规则向所述目的指令行之前的指令行插入至少一个空操作指令,使所述目的指令行的指令存储在所述存储器的同一行。上述方法中,所述根据第一预设规则确定所述目的指令行的指令存储在存储器的不同行,包括:通过h与所述An进行比对,如果所述h小于所述An,则确定所述An个指令存储在所述存储器的不同行;其中,所述h为第一参数、h=i-((addrn-1+An-1)&(i-1)),所述i为所述存储器每行固定存储的指令数量,所述目的指令行为n行,所述n行为大于等于2的正整数,所述An为所述n对行应的指令数量,所述n行的前一指令行为n-1行,所述An-1为所述n-1行对应的指令数量,所述addrn-1为所述n-1行的起始指令在所述存储器中的起始地址,所述&为与运算。上述方法中,所述方法还包括:如果所述h大于等于所述An,则确定所述An个指令存储在所述存储器同一行。上述方法中,所述根据第二预设规则向所述目的指令行之前的指令行插入至少一个空操作指令,包括:通过k与j进行对比,如果所述k大于所述j,则向所述n-1行插入所述h个空操作指令;其中,所述k为第二参数、k=h+An-1,所述指令行的最大指令数量为j个。上述方法中,所述方法还包括:如果所述k小于等于所述j,则向所述n-1行插入l个空操作指令,剩余的y个空操作指令插入所述n-1行之前的指令行中;其中,所述k为第二参数、k=h+An-1,所述l=j-An-1,所述y=h-l。本专利技术还一种超长指令字指令集的指令处理装置,所述装置包括:确定模块,用于确定非连续地址取指操作的目的指令行;第一处理模块,用于根据第一预设规则确定所述目的指令行的指令存储在存储器的不同行;第二处理模块,用于根据第二预设规则向所述目的指令行之前的指令行插入至少一个空操作指令,使所述目的指令行的指令存储在所述存储器的同一行。上述装置中,所述第一处理模块,具体用于通过h与所述An进行比对,如果所述h小于所述An,则确定所述An个指令存储在所述存储器的不同行;其中,所述h为第一参数、h=i-((addrn-1+An-1)&(i-1)),所述i为所述存储器每行固定存储的指令数量,所述目的指令行为n行,所述n行为大于等于2的正整数,所述An为所述n对行应的指令数量,所述n行的前一指令行为n-1行,所述An-1为所述n-1行对应的指令数量,所述addrn-1为所述n-1行的起始指令在所述存储器中的起始地址,所述&为与运算。上述装置中,所述第一处理模块,还具体用于如果所述h大于等于所述An,则确定所述An个指令存储在所述存储器同一行。上述装置中,所述第二处理模块,具体用于通过k与j进行对比,如果所述k大于所述j,则向所述n-1行插入所述h个空操作指令;其中,所述k为第二参数、k=h+An-1,所述指令行的最大指令数量为j个。上述装置中,所述第二处理模块,还具体用于如果所述k小于等于所述j,则向所述n-1行插入l个空操作指令,剩余的y个空操作指令插入所述n-1行之前的指令行中;其中,所述k为第二参数、k=h+An-1,所述l=j-An-1,所述y=h-l。本专利技术实施例提供的超长指令字指令集的指令处理方法及装置,VLIW指令集的指令处理装置在汇编代码中找到并确定非连续地址取指操作的目的指令行以及该行中存在指令的数量,进一步的,还可以找到并确定非连续地址取指操作的目的指令行之前的指令行以及相应行中存在指令的数量、起始指令在存储器中的起始地址;接着,VLIW指令集的指令处理装置根据第一预设规则来判断确定非连续地址取指操作的目的指令行的所有指令是否存储在存储器的同一行,如果存储在所述存储器同一行,则结束处理流程;如果存储在所述存储器的不同行,则VLIW指令集的指令处理装置根据第二预设规则,向所述目的指令行之前的指令行插入至少一个空操作指令,使所述目的指令行的指令存储在所述存储器的同一行;如此,使得VLIW指令集处理器需要得到非连续地址取指操作的目的指令行的全部指令只需一个时钟周期就能取到,从而能够拼凑成完整的指令,避免了空发射时钟周期的出现,提高了VLIW指令集处理器的执行效率,也避免了功耗的无谓损失。附图说明图1为本专利技术超长指令字指令集的指令处理方法实施例一的流程图;图2为本专利技术超长指令字指令集的指令处理方法实施例二的流程图;图3为本专利技术超长指令字指令集的指令处理方法实施例二的插入空操作指令前的汇编代码指令在存储空间的示意图;图4为本专利技术超长指令字指令集的指令处理方法实施例二的插入空操作指令后的汇编代码指令在存储空间的示意图;图5为本专利技术超长指令字指令集的指令处理装置实施例的结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述。图1为本专利技术超长指令字指令集的指令处理方法实施例一的流程图,如图1所示,本方法可以包括:步骤101、确定非连续地址取指操作的目的指令行。在编译阶段,VLIW指令集的指令处理装置利用编译器扫描汇编代码,找到并确定非连续地址取指操作的目的指令行以及该行中存在指令的数量,可以将非连续地址取指操作的目的指令行定义为n行,n行中指令的数量定义为An个,其中,所述n为大于等于2的正整数。如上所示的汇编代码,这里给出的汇编代码表示一个循环跳转,当汇编代码运行到第4行“gotoLABEL”,指令会跳转回第1行与第2行中间的“LABEL”,重新执行第2行指令,这样就是一个非连续地址取指操作,第2行为非连续地址取指操作的目的指令行;其中,Inst表示指令,每个指令在存储器中需要一个单元来保存。进一步的,VLIW指令集的指令处理装置还可以找到并确定非连续地址取指操作的目的指令行之前的指令行以及相应行中存在指令的数量、起始指本文档来自技高网...
超长指令字指令集的指令处理方法及装置

【技术保护点】
一种超长指令字指令集的指令处理方法,其特征在于,所述方法包括:确定非连续地址取指操作的目的指令行;根据第一预设规则确定所述目的指令行的指令存储在存储器的不同行;根据第二预设规则向所述目的指令行之前的指令行插入至少一个空操作指令,使所述目的指令行的指令存储在所述存储器的同一行。

【技术特征摘要】
1.一种超长指令字指令集的指令处理方法,其特征在于,所述方法包括:确定非连续地址取指操作的目的指令行;根据第一预设规则确定所述目的指令行的指令存储在存储器的不同行;根据第二预设规则向所述目的指令行之前的指令行插入至少一个空操作指令,使所述目的指令行的指令存储在所述存储器的同一行。2.根据权利要求1所述的方法,其特征在于,所述根据第一预设规则确定所述目的指令行的指令存储在存储器的不同行,包括:通过h与所述An进行比对,如果所述h小于所述An,则确定所述An个指令存储在所述存储器的不同行;其中,所述h为第一参数、h=i-((addrn-1+An-1)&(i-1)),所述i为所述存储器每行固定存储的指令数量,所述目的指令行为n行,所述n行为大于等于2的正整数,所述An为所述n对行应的指令数量,所述n行的前一指令行为n-1行,所述An-1为所述n-1行对应的指令数量,所述addrn-1为所述n-1行的起始指令在所述存储器中的起始地址,所述&为与运算。3.根据权利要求2所述的方法,其特征在于,所述方法还包括:如果所述h大于等于所述An,则确定所述An个指令存储在所述存储器同一行。4.根据权利要求2所述的方法,其特征在于,所述根据第二预设规则向所述目的指令行之前的指令行插入至少一个空操作指令,包括:通过k与j进行对比,如果所述k大于所述j,则向所述n-1行插入所述h个空操作指令;其中,所述k为第二参数、k=h+An-1,所述指令行的最大指令数量为j个。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:如果所述k小于等于所述j,则向所述n-1行插入l个空操作指令,剩余的y个空操作指令插入所述n-1行之前的指令行中;其中,所述k为第二参数、k=h+An-1,所述l=j-An-1,所述...

【专利技术属性】
技术研发人员:龙衡任晖田春雨袁华隆
申请(专利权)人:深圳市中兴微电子技术有限公司
类型:发明
国别省市:广东;44

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

1