本发明专利技术公开了一种RV32IC指令集的译码系统,包括RV32I指令集单元,包含32位I类型RISC‑V指令的编码信息;RV32C指令集单元,包含16位压缩RISC‑V指令的编码信息;32位指令重建单元,用于将16位RISC‑V压缩指令转化为对应的32位RISC‑V指令;还包括32位指令拆分单元、控制与数据生成单元和选择器,系统针对RV32IC指令集设计出最少的运算单元并加以复用,高效编码运算控制信号,由此大大减小逻辑的面积,从而从根本上降低了译码的逻辑复杂性以及有效减少译码逻辑单元数,为低功耗低面积的RISC‑V处理器设计提供了一种高效的译码系统和方法。
A decoding system of rv32ic instruction set and its decoding method
【技术实现步骤摘要】
一种RV32IC指令集的译码系统及其译码方法
本专利技术涉及处理器
,具体的说,是一种RV32IC指令集的译码系统及其译码方法。
技术介绍
RISC-V指令集是由2010年加州大学伯克利分校提出的一种开源指令集。32位ARM指令集格式的条件码cond完全对齐。32位RISC-V指令集格式的操作码opcode完全对齐,且功能位funct3也在相同的比特位上。16位RISC-V指令集格式的操作码op完全对齐,且功能位funct3也在相同的比特位上。RISC-V指令集较ARM指令集具有更加规整的指令格式。如何对RISC-V指令进行快速译码并高效编码运算处理的控制信号以及操作数据是设计低功耗、低面积的RISC-V处理器的一个关键。传统的译码方式是直接全译,即每一条指令对应着自己的全译码逻辑,尚未对一些共有的逻辑单元进行复用。因此,随着指令数的增加,译码逻辑面积也近是呈线性增加,导致功耗也跟随着增加。此外,译码产生的运算控制信号与运算单元的类型息息相关,较多的运算单元意味着越大的逻辑面积,不利于降低芯片的功耗。
技术实现思路
本专利技术的目的在于提供一种RV32IC指令集的译码系统及其译码方法,用于解决现有技术中编码方式的逻辑复杂度高、逻辑面积大,从而功耗非常高的问题。本专利技术通过下述技术方案解决上述问题:一种RV32IC指令集的译码系统,包括RV32I指令集单元,包含32位I类型RISC-V指令的编码信息;RV32C指令集单元,包含16位压缩RISC-V指令的编码信息;32位指令重建单元,用于将16位RISC-V压缩指令转化为对应的32位RISC-V指令;32位指令拆分单元,用于将32位RISC-V指令进行拆分,提取指令中包含的指令信息;控制与数据生成单元,用于将32位指令拆分单元提取的指令信息进行控制编码与数据处理,生成控制信号与操作数据;选择器,其输入端为系统输入入口,同时与32位指令重建单元的输出端相连,用于输入数据和32位指令重建单元输出数据的判断选择,输出端与32位指令拆分单元相连。优选地,所述控制与数据生成单元之后连接有运算单元。优选地,所述运算单元包括加法运算单元、异或运算单元、或运算单元、与运算单元以及带符号右移运算单元,根据指令类型进行运算类型的选择。优选地,所述加法运算单元适用于加法指令、减法指令、相等比较指令和小于比较指令;异或运算单元可以适用于异或指令;或运算单元可以使用于或运算指令;与运算单元可以适用于与运算指令;带符号右移运算单元可以适用于左移运算指令、右移运算指令。还包括一种RV32IC指令集的译码方法,适用于上述编码系统,所述方法包括如下步骤:步骤1:系统接收输入的RV32IC指令,并根据该指令的低两比特位进行判断,若为“11”则跳转到步骤4,否则跳转到步骤2;步骤2:根据op位即低两比特位以及funct3位和/或funct4位快速译出16位指令,跳转至步骤3;步骤3:将16为指令转换为对应的32位指令,然后跳转至步骤4;步骤4:根据RV32I指令集的编码对其inst[6:2]位,即opcode[6:2]位进行判断,然后依据funct3位或funct7位译出该32位指令。优选地,所述方法还包括步骤5:对控制与数据生成单元依据指令信息进行编码运算控制信号、非运算控制信号以及操作数处理。本专利技术与现有技术相比,具有以下优点及有益效果:(1)本专利技术将16位指令转为32位指令,统一为32位指令格式,降低32位指令拆分以及控制与数据生成的逻辑复杂度;(2)本专利技术针对RV32IC指令集设计出最少的运算单元并加以复用,高效编码运算控制信号,由此大大减小逻辑的面积,从而从根本上降低了译码的逻辑复杂性以及有效减少译码逻辑单元数,为低功耗低面积的RISC-V处理器设计提供了一种高效的译码方法。(3)本专利技术针对32位指令提出了详细的逐层次的译码流程以及相应的译码系统,很好的解决现有技术中译码的逻辑面积大的问题。附图说明图1为本专利技术的RV32IC指令集的译码系统的组成结构及指令流向示意图。图2为本专利技术的RV32IC指令集的译码方法的流程示意图。图3为本专利技术的32位RISC-V指令集格式图。具体实施方式下面结合实施例对本专利技术作进一步地详细说明,但本专利技术的实施方式不限于此。实施例1:结合附图1所示,一种RV32IC指令集的译码系统,包括RV32I指令集单元,包含32位I类型RISC-V指令的编码信息;RV32C指令集单元,包含16位压缩RISC-V指令的编码信息;32位指令重建单元,用于将16位RISC-V压缩指令转化为对应的32位RISC-V指令;32位指令拆分单元,用于将32位RISC-V指令进行拆分,提取指令中包含的指令信息;控制与数据生成单元,用于将32位指令拆分单元提取的指令信息进行控制编码与数据处理,生成控制信号与操作数据;选择器,其输入端为系统输入入口,同时与32位指令重建单元的输出端相连,用于输入数据和32位指令重建单元输出数据的判断选择,输出端与32位指令拆分单元相连,一般采用2选1的选择器即可,附图1中表示为MUX。本系统后还可设置包括加法运算单元、异或运算单元、或运算单元、与运算单元以及带符号右移运算单元的运算单元,用于对系统的控制与数据生成单元所输出的指令进行运算,但运算单元的结构并不仅限于此,可以根据实际应用的需要进行运算单元的增减。系统的具体工作流程如图2所示,具体的,以支持RISC-V的32位I类及32位C类指令集RV32IC为例:若输入指令为一条RV32I类指令,系统接收后进入如下流程:step1:判断该指令的inst[1:0],发现是“11”,表明是一条RV32I类指令。step2:判断inst[6:2]位,依据RV32I类指令集的编码信息进行判断该指令所属RV32I类中的类型。step3:如果属于RV32I类中的U型或者J型指令,类型可见32位RISC-V指令集格式表,如图3所示,则利用32位指令拆分单元提取出该指令数据信息,包括立即数信息imm以及目标寄存器地址信息rd,同时根据该指令的含义,设置对应的指令控制信息;如果不属于RV32I类型中的U型或者J型指令,则再次依据指令的funct3或funct7比特位译出该指令,同时利用32位指令拆分单元提取出该指令数据信息,包括立即数信息imm,源寄存器地址信息rs1,rs2,以及目标寄存器地址信息rd,同时根据该指令的含义,设置对应的指令控制信息。step4:将上述产生的指令数据信息以及指令控制信息送入控制与数据生成单元,将数据信息进行处理,如将立即数信息处理后得到32位的立即数;同时,根据指令的控制信息,选择对应的运算单元,并编码运算控制信号为使用该运算单元,如减法指令可以选择使用加法器运算单本文档来自技高网...
【技术保护点】
1.一种RV32IC指令集的译码系统,其特征在于:包括/nRV32I指令集单元,包含32位I类型RISC-V指令的编码信息;/nRV32C指令集单元,包含16位压缩RISC-V指令的编码信息;/n32位指令重建单元,用于将16位RISC-V压缩指令转化为对应的32位RISC-V指令;/n32位指令拆分单元,用于将32位RISC-V指令进行拆分,提取指令中包含的指令信息;/n控制与数据生成单元,用于将32位指令拆分单元提取的指令信息进行控制编码与数据处理,生成控制信号与操作数据;/n选择器,其输入端为系统输入入口,同时与32位指令重建单元的输出端相连,用于输入数据和32位指令重建单元输出数据的判断选择,输出端与32位指令拆分单元相连。/n
【技术特征摘要】
1.一种RV32IC指令集的译码系统,其特征在于:包括
RV32I指令集单元,包含32位I类型RISC-V指令的编码信息;
RV32C指令集单元,包含16位压缩RISC-V指令的编码信息;
32位指令重建单元,用于将16位RISC-V压缩指令转化为对应的32位RISC-V指令;
32位指令拆分单元,用于将32位RISC-V指令进行拆分,提取指令中包含的指令信息;
控制与数据生成单元,用于将32位指令拆分单元提取的指令信息进行控制编码与数据处理,生成控制信号与操作数据;
选择器,其输入端为系统输入入口,同时与32位指令重建单元的输出端相连,用于输入数据和32位指令重建单元输出数据的判断选择,输出端与32位指令拆分单元相连。
2.根据权利要求1所述的RV32IC指令集的译码系统,其特征在于:所述控制与数据生成单元之后连接有运算单元。
3.根据权利要求2所述的RV32IC指令集的译码系统,其特征在于:所述运算单元包括加法运算单元、异或运算单元、或运算单元、与运算单元以及带符号右移运算单元,根据指令类型进行运算类型的选择。
4.根据...
【专利技术属性】
技术研发人员:陶磊,姜志强,李想,
申请(专利权)人:四川长虹电器股份有限公司,
类型:发明
国别省市:四川;51
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。