一种指令集扩展方法、装置、电子设备及存储介质制造方法及图纸

技术编号:34081522 阅读:34 留言:0更新日期:2022-07-11 18:59
本发明专利技术提供了一种指令集扩展方法、装置、电子设备及存储介质,首先选择RISC

【技术实现步骤摘要】
一种指令集扩展方法、装置、电子设备及存储介质


[0001]本专利技术涉及基于RISC

V架构的处理器
,尤其是涉及一种指令集扩展方法、装置、电子设备及存储介质。

技术介绍

[0002]指令集是存储在处理器内部,连接硬件与软件的接口。处理器通过从内存中读取指令、进行译码和执行操作,来完成复杂的运算任务。每个处理器都具有特定的指令集与其对应,指令集的设计直接影响处理器的性能。处理器设计中除了设定支持基本运算和控制的指令集外,还需要针对特定的应用领域设计扩展指令集。特定应用领域的指令集扩展可以化繁为简,使处理器直接根据译码信息执行,避免通过基本指令集产生复杂的运算流程,造成资源浪费。
[0003]RISC

V指令集是基于精简指令集(RISC)基础上开发的开源指令集架构(ISA),是个完全开放的、标准的、能够支持各种应用的全新指令集。RISC

V指令集包含一个指令数很少的基础指令集和一系列可选的指令集。基础指令集为整数指令集RV32I与RV64I,分别提供32位与64位的地址空间;其他的可选指令集包括乘除运算(M)、原子操作(A)、浮点运算(F)、压缩指令(C)等。RISC

V 架构在设计之初就留出了足够的可编码空间来支持第三方指令集扩展,用户可以根据特定的需求设计自定义扩展指令,通过灵活选择不同的模块组合或者进行扩展,构建适用于任何一个领域的微处理器,比如高精度计算、低功耗嵌入式等。
[0004]目前对于有三角函数、双曲函数的高级语言程序,如果目标指令集构架(ISA)支持三角函数等的机器指令(如X86),编译器则会通过将相关代码编译成ISA支持的机器指令来优化。而对于像 RISC

V这类ISA中没有三角函数和反双曲函数的机器指令支持的架构,编译器会使用标准C库,用多条机器代码实现相应的功能。三角函数和双曲函数基于RISC

V基础指令集(RV32I)进行编译时会生成几十条指令,计算时间长。而使用FPGA逻辑资源来实现三角函数及双曲函数的计算可以缩短计算时间。因此,如何对配备了CORDIC扩展指令的硬件电路进行优化,以减少计算时间、简化控制逻辑、提高运算速度、降低硬件开销,是目前亟需解决的问题。

技术实现思路

[0005]本专利技术所要解决的技术问题是如何对配备了CORDIC扩展指令的硬件电路进行优化,以减少计算时间、简化控制逻辑、提高运算速度、降低硬件开销。
[0006]为改善上述技术问题,本专利技术提供了一种指令集扩展方法、装置、电子设备及存储介质。
[0007]本专利技术实施例的第一方面,提供了一种指令集扩展方法,包括以下步骤:选择RISC

V指令集的指令类型中的R

type作为扩展指令的指令类型;根据R

type指令的编码格式对三角函数和双曲函数进行扩展指令编码;根据所述扩展指令编码,在编译器中添加三角函数和双曲函数扩展指令的宏定义
并更新opcodes表,其中,宏定义是对扩展指令的各个位进行定义,opcodes表用于记录扩展指令的匹配码和掩码,匹配码记录扩展指令的寄存器和立即数以外的信息;掩码记录指令为R

type、I

type、S

type、B

type、U

type 或J

type的指令;针对三角函数和双曲函数扩展指令对处理器核中的译码模块和执行模块进行电路扩展,其中,所述译码模块用于对三角函数和双曲函数扩展指令进行译码,并生成控制信号送入指令执行模块,所述执行模块,用于进行三角函数和双曲函数的计算。
[0008]进一步地,所述扩展指令编码包含rs1、rs2、rd、funct7、funct3和opcode信息,其中,rs1用于记录源操作数1的寄存器地址,rs2用于记录源操作数2的寄存器地址,三角函数和双曲函数的输入角度值通过rs1寄存器存储的值与rs2寄存器存储的值相加得到;rd用于记录扩展指令执行完成后数据写回的目的寄存器地址;funct7用于指定R

type中的这一类指令为三角函数和双曲函数扩展指令;funct3用于区别不同三角函数和双曲函数扩展指令进一步地,所述译码模块用于对三角函数和双曲函数扩展指令进行译码,具体包括:所述译码模块对三角函数和双曲函数扩展指令的opcode、rs1、rs2、rd、funct3和funct7信息进行译码,其中,opcode用于确定扩展指令的指令类型,三角函数和双曲函数扩展指令的指令类型为R

type;rs1和rs2用于记录源操作数的寄存器地址,译码后从寄存器堆中取出源操作数;rd用于记录目的寄存器的地址,在扩展指令结束后,将数据写回该地址对应的寄存器中;funct7用于指定R

type中的这一类指令为三角函数和双曲函数扩展指令;funct3用于区别不同三角函数和双曲函数扩展指令。
[0009]进一步地,所述方法还包括:在译码完成后,将生成的三角函数和双曲函数扩展指令的控制信号送入所述执行模块的三角函数和双曲函数计算装置中,进行三角函数和双曲函数的计算并输出计算结果。
[0010]本专利技术实施例的第二方面,提供了一种指令集扩展装置,包括:指令选择单元,用于选择RISC

V指令集的指令类型中的R

type作为扩展指令的指令类型;指令编码单元,用于根据R

type指令的编码格式对三角函数和双曲函数进行扩展指令编码;指令添加单元,用于根据所述扩展指令编码,在编译器中添加三角函数和双曲函数扩展指令的宏定义并更新opcodes表,其中,宏定义是对扩展指令的各个位进行定义,opcodes表用于记录扩展指令的匹配码和掩码,匹配码记录扩展指令的寄存器和立即数以外的信息;掩码记录指令为R

type、I

type、S

type、B

type、U

type 或J

type的指令;电路扩展单元,用于针对三角函数和双曲函数扩展指令对处理器核中的译码模块和执行模块进行电路扩展;
其中,所述译码模块用于对三角函数和双曲函数扩展指令进行译码,并生成控制信号送入指令执行模块,所述执行模块,用于进行三角函数和双曲函数的计算。
[0011]进一步地,所述扩展指令编码包含rs1、rs2、rd、funct7、funct3和opcode信息,其中,rs1用于记录源操作数1的寄存器地址,rs2用于记录源操作数2的寄存器地址,三角函数和双曲函数的输入角度值通过rs1寄存器存储的值与rs2寄存器存储的值相加得到;rd用于记录扩展指令执行完成后数据写回的目的寄存器地址;funct7用于指定R

type中的这一类指令为三角函数和双本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种指令集扩展方法,其特征在于,包括以下步骤:选择RISC

V指令集的指令类型中的R

type作为扩展指令的指令类型;根据R

type指令的编码格式对三角函数和双曲函数进行扩展指令编码;根据所述扩展指令编码,在编译器中添加三角函数和双曲函数扩展指令的宏定义并更新opcodes表,其中,宏定义是对扩展指令的各个位进行定义,opcodes表用于记录扩展指令的匹配码和掩码,匹配码记录扩展指令的寄存器和立即数以外的信息;掩码记录指令为R

type、I

type、S

type、B

type、U

type 或J

type的指令;针对三角函数和双曲函数扩展指令对处理器核中的译码模块和执行模块进行电路扩展,其中,所述译码模块用于对三角函数和双曲函数扩展指令进行译码,并生成控制信号送入指令执行模块,所述执行模块,用于进行三角函数和双曲函数的计算。2.根据权利要求1所述的指令集扩展方法,其特征在于,所述扩展指令编码包含rs1、rs2、rd、funct7、funct3和opcode信息,其中,rs1用于记录源操作数1的寄存器地址,rs2用于记录源操作数2的寄存器地址,三角函数和双曲函数的输入角度值通过rs1寄存器存储的值与rs2寄存器存储的值相加得到;rd用于记录扩展指令执行完成后数据写回的目的寄存器地址;funct7用于指定R

type中的这一类指令为三角函数和双曲函数扩展指令;funct3用于区别不同三角函数和双曲函数扩展指令。3.根据权利要求2所述的指令集扩展方法,其特征在于,所述译码模块用于对三角函数和双曲函数扩展指令进行译码,具体包括:所述译码模块对三角函数和双曲函数扩展指令的opcode、rs1、rs2、rd、funct3和funct7信息进行译码,其中,opcode用于确定扩展指令的指令类型,三角函数和双曲函数扩展指令的指令类型为R

type;rs1和rs2用于记录源操作数的寄存器地址,译码后从寄存器堆中取出源操作数;rd用于记录目的寄存器的地址,在扩展指令结束后,将数据写回该地址对应的寄存器中;funct7用于指定R

type中的这一类指令为三角函数和双曲函数扩展指令;funct3用于区别不同三角函数和双曲函数扩展指令。4.根据权利要求3所述的指令集扩展方法,其特征在于,所述方法还包括:在译码完成后,将生成的三角函数和双曲函数扩展指令的控制信号送入所述执行模块的三角函数和双曲函数计算装置中,进行三角函数和双曲函数的计算并输出计算结果。5.一种指令集扩展装置,其特征在于,包括:指令选择单元,用于选择RISC

V指令集的指令类型中的R

type作为扩展指令的指令类型;指令编码单元,用于根据R

type指令的编码格式对三角函数...

【专利技术属性】
技术研发人员:郑添梁菲蔡刚黄志洪
申请(专利权)人:中科亿海微电子科技苏州有限公司
类型:发明
国别省市:

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

1