CN113434198A - Risc-v指令处理方法、存储介质及电子设备 - Google Patents

Risc-v指令处理方法、存储介质及电子设备 Download PDF

Info

Publication number
CN113434198A
CN113434198A CN202110712238.7A CN202110712238A CN113434198A CN 113434198 A CN113434198 A CN 113434198A CN 202110712238 A CN202110712238 A CN 202110712238A CN 113434198 A CN113434198 A CN 113434198A
Authority
CN
China
Prior art keywords
risc
instruction
bits
field
register
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202110712238.7A
Other languages
English (en)
Other versions
CN113434198B (zh
Inventor
何凯帆
张仕兵
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Zhongke Lanxun Technology Co ltd
Original Assignee
Shenzhen Zhongke Lanxun Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Zhongke Lanxun Technology Co ltd filed Critical Shenzhen Zhongke Lanxun Technology Co ltd
Priority to CN202110712238.7A priority Critical patent/CN113434198B/zh
Publication of CN113434198A publication Critical patent/CN113434198A/zh
Application granted granted Critical
Publication of CN113434198B publication Critical patent/CN113434198B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30105Register structure
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

本发明涉及RISC‑V寄存器架构技术领域,公开一种RISC‑V指令处理方法、存储介质及电子设备。所述方法包括:获取指定RISC‑V指令,指定RISC‑V指令包括操作码字段及寄存器字段,寄存器字段用于存储非寻址编码但不存储寻址编码,非寻址编码指向对应的非寻址寄存器,寻址编码指向对应的寻址寄存器;根据操作码字段的操作编码,操作非寻址寄存器。由于寻址寄存器的寻址编码不参与指定RISC‑V指令的编码,因此,本实施例可以节省用于表达寻址编码的位数,亦即腾出了更多的指令编码空间,节省下的位数有利于表达更多的指定RISC‑V指令,从而提高代码密度。

Description

RISC-V指令处理方法、存储介质及电子设备
技术领域
本发明涉及RISC-V寄存器架构技术领域,具体涉及一种RISC-V指令处理方法、存储介质及电子设备。
背景技术
RISC-V架构秉承简单的设计哲学,RISC-V基础指令集只有40多条,加上其他模块化的扩展指令总共几十条指令,企业无需支付授权费便可以使用RISC-V指令集。
在RISC-V架构中,处理器的寄存器分为两个主要类别:第一类为通用寄存器,通用寄存器用于参与各类计算操作。第二类为寻址寄存器,寻址寄存器用于参与寻址。通常的,寻址寄存器只用于与寻址关联的场合,指定RISC-V指令并不需要用到寻址寄存器。
然而,现有技术在编码指定RISC-V指令时,将寻址寄存器与通用寄存器混合参与一起编码。由于寻址寄存器参与指定RISC-V指令的编码时会占用相应数量的指令位数,导致无法表达出更多的RISC-V指令,从而浪费了指令编码空间。
发明内容
本发明实施例的一个目的旨在提供一种RISC-V指令处理方法、存储介质及电子设备,用于解决现有技术存在的技术缺陷。
在第一方面,本发明实施例提供一种RISC-V指令处理方法,包括:
获取指定RISC-V指令,所述指定RISC-V指令包括操作码字段及寄存器字段,所述寄存器字段用于存储非寻址编码但不存储寻址编码,所述非寻址编码指向对应的非寻址寄存器,所述寻址编码指向对应的寻址寄存器;
根据所述操作码字段的操作编码,操作所述非寻址寄存器。
可选地,所述非寻址寄存器为RISC-V标准协议中的通用寄存器。
可选地,所述寻址寄存器包括全局指针寄存器、线程指针寄存器、栈指针寄存器及程序寄存器。
可选地,所述寄存器字段的位数为n位,可表达2的n次方个所述非寻址编码。
可选地,所述操作码字段的位数为m位,可表达2的m次方个所述操作编码。
可选地,若所述指定RISC-V指令为R类型指令,则所述指定RISC-V指令还包括函数字段,所述函数字段的位数为r位,r=Q-3*n-m,Q为所述指定RISC-V指令的位数。
可选地,若所述指定RISC-V指令为I类型指令,则所述指定RISC-V指令还包括函数字段与立即数字段,所述函数字段与所述立即数字段的总位数为i位,i=Q-2*n-m,Q为所述指定RISC-V指令的位数。
可选地,若所述指定RISC-V指令为S类型指令,则所述指定RISC-V指令还包括函数字段与立即数字段,所述函数字段与所述立即数字段的总位数为s位,s=Q-2*n-m,Q为所述指定RISC-V指令的位数。
可选地,若所述指定RISC-V指令为U类型指令,则所述指定RISC-V指令还包括立即数字段,所述立即数字段的总位数为u位,u=Q-n-m,Q为所述指定RISC-V指令的位数。
可选地,所述n为4。
在第二方面,本发明实施例提供一种存储介质,所述存储介质存储有计算机可执行指令,所述计算机可执行指令用于使电子设备执行上述的RISC-V指令处理方法。
在第三方面,本发明实施例提供一种电子设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的RISC-V指令处理方法。
在本发明实施例提供的RISC-V指令处理方法中,获取指定RISC-V指令,指定RISC-V指令包括操作码字段及寄存器字段,寄存器字段用于存储非寻址编码但不存储寻址编码,非寻址编码指向对应的非寻址寄存器,寻址编码指向对应的寻址寄存器,根据操作码字段的操作编码,操作非寻址寄存器。由于寻址寄存器的寻址编码不参与指定RISC-V指令的编码,因此,本方法可以节省用于表达寻址编码的位数,亦即腾出了更多的指令编码空间,节省下的位数有利于表达更多的指定RISC-V指令,从而提高代码密度。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1为现有RISC-V的寄存器的表达示意图;
图2为现有RISC-V寄存器的用途描述的示意图;
图3为现有RISC-V的指令格式的示意图;
图4为本发明实施例提供的一种RISC-V指令处理方法的流程示意图;
图5为本发明实施例提供的RISC-V的寄存器的表达示意图;
图6为本发明实施例提供的RISC-V寄存器的用途描述的示意图;
图7为本发明实施例提供的RISC-V的指令格式的示意图;
图8为本发明实施例提供的一种电子设备的电路结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,如果不冲突,本发明实施例中的各个特征可以相互结合,均在本发明的保护范围之内。另外,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。再者,本发明所采用的“第一”、“第二”、“第三”等字样并不对数据和执行次序进行限定,仅是对功能和作用基本相同的相同项或相似项进行区分。
RISC-V指令集架构作为新一代开源指令集架构,是一个最新的、简约的、清晰的、开源的指令集架构。RISC-V指令集架构的目标是让它在最小的到最快的所有计算机设备上都能够有效工作。
请一并参阅图1与图2,RISC-V指令集架构包括32个整数寄存器和1个程序寄存器,各个整数寄存器的命名为x0~x31,其中,x1~x31都是通用寄存器,亦即通用寄存器的数量为31个,通用寄存器存储整数数值。寄存器x0是硬件连线的常数0。RISC-V指令集架构还包括32个浮点寄存器,可用于实现浮点扩展的目的,浮点寄存器的命名为f0~f31。
RISC-V指令集架构中通用寄存器或浮点寄存器的位数可以为32位或者64位,当位数为32位时,XLEN=32。当位数为64位时,XLEN=64。
在本实施例中,将图1所示的栈指针寄存器x2、全局指针寄存器x3、线程指针寄存器x4以及程序寄存器pc作为寻址寄存器,然后在图1所示的31个通用寄存器中选择指定数量的通用寄存器作为非寻址寄存器,例如,指定数量为16个。
在RISC-V指令集架构中,每个寄存器都对应一个寄存器编码,寄存器编码用于寻址对应的寄存器。由于相关RISC-V指令都是在寄存器上进行操作的,为了寻址到相应寄存器,寄存器的寄存器编码需要参与到相关RISC-V指令的编码操作中,于是便有了如图3所示的RISC-V指令格式:
如图3所示,RISC-V指令包括R类型指令、I类型指令、S类型指令及U类型指令,R类型指令用于寄存器与寄存器的操作,I类型指令用于短立即数和访存load操作,S类型指令用于访存store操作,U类型指令用于长立即数操作。
在本实施例中,上文所阐述到的寻址寄存器的寻址编码仅参与寻址指令的编码或者为寻址方便而设立的加法、减法、乘法、移位等指令的编码操作中。
举例而言,假设“DD”为目标寄存器的编码,“BB”为第一源寄存器的编码,“SS”为第二源寄存器的编码,“AA”和“CC”都为寻址寄存器的编码。
对于加法指令为add rD,rB,rS,其对应的指令编码为:1010 1000SSSS BBBB-DDDD1111 0000 0111,在此条加法指令中,都是非寻址寄存器的非寻址编码参与编码操作。
再例如,加法指令为add rD,rA,rS,其对应的指令编码为:1010 1000 SSSS 00AA-DDDD 1111 0100 0111,在此条加法指令中,都是非寻址寄存器的非寻址编码和寻址寄存器的寻址编码参与编码操作。
如前所述,非寻址寄存器的非寻址编码与寻址寄存器的寻址编码可以混合参与指定RISC-V指令的编码操作中。请结合图3,图3示出的是现有技术将非寻址编码与寻址编码混合参与指定RISC-V指令的编码操作而得到的R类型指令、I类型指令、S类型指令及U类型指令。
如图3所示的R类型指令,操作码字段(opcode)的位数为7位(0-6),目标寄存器字段(rd)的位数为5位(7-11),第一函数字段(funct3)的位数为3位(12-14),第一源寄存器字段(rs1)的位数为5位(15-19),第二源寄存器字段(rs2)的位数为5位(20-24),第二函数字段(funct7)的位数为7位(25-31)。
由于现有技术的R类型指令是将32个寄存器(31个通用寄存器和1个程序寄存器)的寄存器编码都参与目标寄存器字段或第一源寄存器字段或第二源寄存器字段的编码操作中,因此,上述三个寄存器字段中每个寄存器字段都需要5位以表达32个寄存器编码,其中,32=2的5次方。
同理可得,如图3所示的I类型指令,操作码字段(opcode)的位数为7位(0-6),目标寄存器字段(rd)的位数为5位(7-11),第一函数字段(funct3)的位数为3位(12-14),第一源寄存器字段(rs1)的位数为5位(15-19),立即数字段(imm[11:0])的位数为12位(20-31)。
同样,现有技术的I类型指令也需要将32个寄存器的寄存器编码都参与目标寄存器字段或第一源寄存器字段的编码操作中,因此,上述两个寄存器字段中每个寄存器字段都需要5位。
同理可得,如图3所示的S类型指令,操作码字段(opcode)的位数为7位(0-6),第一立即数字段(imm[4:0])的位数为5位(7-11),第一函数字段(funct3)的位数为3位(12-14),第一源寄存器字段(rs1)的位数为5位(15-19),第二源寄存器字段(rs2)的位数为5位(20-24),第二函数字段(funct7)的位数为7位(21-24)。第二立即数字段(imm[11:5])的位数为7位(25-31)。
同样,现有技术的S类型指令也需要将32个寄存器的寄存器编码都参与目标寄存器字段或第一源寄存器字段的编码操作中,因此,上述三个寄存器字段中每个寄存器字段都需要5位以表达32个寄存器编码。
同理可得,如图3所示的U类型指令,操作码字段(opcode)的位数为7位(0-6),目标寄存器字段(rd)的位数为5位(7-11),立即数字段(imm[31:12])的位数为20位(12-31)。
同样,现有技术的U类型指令也需要将32个寄存器的寄存器编码都参与目标寄存器字段的编码操作中,因此,目标寄存器字段需要5位以表达32个寄存器编码。
但是,实际上对于指定RISC-V指令,寻址寄存器的寻址编码是不会参与指定RISC-V指令的编码操作的,但是现有技术却预留相应位数给寻址寄存器的寻址编码,但是无法表达更多功能指令。
在本实施例中,寻址寄存器不会参与指定RISC-V指令的编码操作中,指定RISC-V指令包括逻辑运算指令、DSP运算指令、复杂乘法运算指令、循环移位运算指令、crs指令、beq/bne指令、jal指令等。上述指定RISC-V指令无需寻址寄存器的寻址编码参与进行编码操作。
对于或逻辑指令为or rd,rs1,rs2,其对应的指令编码为:0000 0000 SSSS BBBB-DDDD 1111 0110 0011,在此条或逻辑指令中,都是非寻址寄存器的非寻址编码参与编码操作。
再例如,与逻辑指令为and rd,rs1,rs2,其对应的指令编码为:0000 0000SSSSBBBB-DDDD 1101 0110 0011,在此条或逻辑指令中,都是非寻址寄存器的非寻址编码参与编码操作。
总体而言,对于指定RISC-V指令,非寻址编码与寻址编码混合参与指定RISC-V指令的编码操作,但是指定RISC-V指令却使用不上寻址编码,浪费指令编码空间。
基于此,本发明实施例提供一种RISC-V指令处理方法。请参阅图4,RISC-V指令处理方法S400包括:
S41、获取指定RISC-V指令,指定RISC-V指令包括操作码字段及寄存器字段,寄存器字段用于存储非寻址编码但不存储寻址编码,非寻址编码指向对应的非寻址寄存器,寻址编码指向对应的寻址寄存器;
在本实施例中,指定RISC-V指令为无需寻址编码参与编码操作的指令,指定RISC-V指令包括但不限定以下RISC-V指令:逻辑运算指令、DSP运算指令、复杂乘法运算指令、循环移位运算指令、crs指令、beq/bne指令、jal指令。
操作码字段用于存储操作编码,操作编码用于定义该RISC-V指令需要完成操作的类型或性质,操作编码可由用户根据需求自定义。其中,操作码字段的位数可由用户自行配置。
如前所述,寄存器字段用于存储非寻址编码但不存储寻址编码,亦即,寻址编码不参与指定RISC-V指令的编码操作,指定RISC-V指令无需如现有技术那般而额外设置相应位数来存储溢出的寻址编码,使得腾出相应位数以表达更多指定RISC-V指令。
非寻址编码为非寻址寄存器的寄存器编码,寻址编码为寻址寄存器的寄存器编码,非寻址寄存器为参与指定RISC-V指令的编码操作的寄存器,寻址寄存器为不参与指定RISC-V指令的编码操作的寄存器,例如,非寻址编码为“DD”,其指向“保存寄存器”,寻址编码为“AA”,其指向“全局指针寄存器”。
S42、根据操作码字段的操作编码,操作非寻址寄存器。
在实施例中,操作非寻址寄存器包括存储非寻址寄存器的操作数、读取非寻址寄存器的操作数、对非寻址寄存器的操作数进行计算等任意合适操作。
由于寻址寄存器的寻址编码不参与指定RISC-V指令的编码,因此,本实施例可以节省用于表达寻址编码的位数,亦即腾出了更多的指令编码空间,节省下的位数有利于表达更多的指定RISC-V指令,从而提高代码密度。
在实施例中,非寻址寄存器为RISC-V标准协议中的通用寄存器,请一并参阅图5与图6,在RISC-V标准协议中32个通用寄存器中选择指定数量的通用寄存器作为非寻址寄存器,例如,指定数量为16个,非寻址寄存器包括寄存器x0(硬件零寄存器)、寄存器ra、寄存器a0-3、寄存器t0-1及寄存器s0-7。
由此可见,本文在RISC-V标准协议中32个通用寄存器中选择16个通用寄存器,并且此16个通用寄存器都可以参与到各种指定RISC-V指令的编码操作中,因此,相对于现有技术,在指定RISC-V指令的编码操作中,无需预留相应位数也是能够表达出全部指定RISC-V指令所涉及到的通用寄存器的寄存器编码,亦即相对现有技术,使用少量位数,也是能够表达出全部指定RISC-V指令所涉及到的非寻址编码。
在本实施例中,寻址寄存器包括寄存器gp(全局指针寄存器)、寄存器tp(线程指针寄存器)、寄存器sp(栈指针寄存器)及寄存器pc(程序寄存器),由于指定RISC-V指令的编码操作无需用到上述各个寻址寄存器,因此,本文可以在RISC-V标准协议中32个通用寄存器中单独将这四个寄存器取出进行编码,并规定这四个寄存器的寄存器编码无需参与指定RISC-V指令的编码操作,但是,在其它RISC-V指令的编码操作中,这四个寄存器的寄存器编码可以参与其它RISC-V指令的编码操作,例如,如前所述,这四个寄存器的寄存器编码可以参与加法指令的编码操作。
在本实施例中,寄存器字段的位数为n位,可表达2的n次方个非寻址编码,亦即可表达2的n次方个非寻址寄存器,如图6所示,n为4,亦即,寄存器字段的位数一共可表达16个非寻址寄存器。
如前所述,请结合图3,现有技术为了表达RISC-V指令,由于寄存器字段的位数需要32个通用寄存器(涵盖了全局指针寄存器、线程指针寄存器、栈指针寄存器及程序寄存器这4个寄存器),因此,每条寄存器字段都需要设置5位方可表达32个通用寄存器的寄存器编码,但是,如前所述,指定RISC-V指令的编码操作却不需要全局指针寄存器、线程指针寄存器、栈指针寄存器及程序寄存器这4个寄存器的寄存器编码参与,也可以正常的体现相应的指令功能。
在本实施例中,如图7所示,由于指定RISC-V指令的表达只需要16个非寻址寄存器中任意一个或两个以上非寻址寄存器,亦即,指定RISC-V指令中每个寄存器字段只需设置4位,即可表达出16个非寻址寄存器中任意一个非寻址寄存器的寄存器编码。
由于每条RISC-V指令的位数都是固定等长的,例如,每条RISC-V指令的位数为32或64。如图7所示,指定RISC-V指令的位数为32位。对于固定等长的RISC-V指令而言,相对现有技术,本实施例在每个寄存器字段都可以节省1个位数,则当按照RISC-V标准协议,每条RISC-V指令需要利用e个寄存器字段时,则本实施例可以节省e个位数。接着,本实施例可以利用e个位数,结合操作码字段或者函数字段,以表达出更多指令功能的指定RISC-V指令。
举例而言,R类型指令需要使用3个寄存器字段,则本实施例可以节省3个位数。如图7所示,操作码字段(opcode)的位数为8位(0-7),第一函数字段(funct4)的位数为4位(8-11),目标寄存器字段(rd)的位数为4位(12-15),第一源寄存器字段(rs1)的位数为4位(16-19),第二源寄存器字段(rs2)的位数为4位(20-23),第二函数字段(funct8)的位数为8位(24-31)。
由此可见,由于目标寄存器字段(rd)、第一源寄存器字段(rs1)及第二源寄存器字段(rs2)各自只需4位即可表达16个非寻址寄存器的非寻址编码,相对现有技术,节省了3个位数,这3个位数又可以由操作码字段、第一函数字段及第二函数字段进行分位,由于一条指定RISC-V指令的指令功能可以由操作码字段的操作编码和/或函数字段的函数编码确定,并且本实施例可表达操作编码和/或函数编码的位数增加了,因此,本实施例提供的方法能够表达出更多的功能指令。
再举例而言,I类型指令需要使用2个寄存器字段,则本实施例可以节省2个位数。如图7所示,操作码字段(opcode)的位数为8位(0-7),第一函数字段(funct4)的位数为4位(8-11),目标寄存器字段(rd)的位数为4位(12-15),第一源寄存器字段(rs1)的位数为4位(16-19),立即数字段(imm[11:0])的位数为12位(20-31)。
由此可见,由于目标寄存器字段(rd)与第一源寄存器字段(rs1)各自只需4位即可表达16个非寻址寄存器的非寻址编码,相对现有技术,节省2个位数,这2个位数又可以由操作码字段与第一函数字段进行分位。
再举例而言,S类型指令需要使用2个寄存器字段,则本实施例可以节省2个位数。操作码字段(opcode)的位数为8位(0-7),第一函数字段(funct3)的位数为4位(8-11),第一立即数字段(imm[3:0])的位数为4位(12-15),第一源寄存器字段(rs1)的位数为4位(16-19),第二源寄存器字段(rs2)的位数为4位(20-23),第二立即数字段(imm[11:4])的位数为8位(24-31)。
由此可见,由于第二源寄存器字段(rs2)与第一源寄存器字段(rs1)各自只需4位即可表达16个非寻址寄存器的非寻址编码,相对现有技术,节省2个位数,这2个位数又可以由操作码字段、函数字段或立即数字段进行分位。
再举例而言,U类型指令需要使用1个寄存器字段,则本实施例可以节省1个位数。操作码字段(opcode)的位数为8位(0-7),第一立即数字段(imm[12:15])的位数为4位(8-11),目标寄存器字段(rd)的位数为4位(12-15),第二立即数字段(imm[31:16])的位数为16位(16-31)。
由此可见,由于目标寄存器字段(rd)只需4位即可表达16个非寻址寄存器的非寻址编码,相对现有技术,节省1个位数,这1个位数又可以由操作码字段进行分位。
总体而言,本实施例可以节省用于表达寻址编码的位数,亦即腾出了更多的指令编码空间,节省下的位数有利于表达更多的指定RISC-V指令,从而提高代码密度。
在一些实施例中,操作码字段的位数为m位,可表达2的m次方个所述操作编码,如图7所示,m为8位,可表达256个操作编码。可以理解的是,m的取值可由用户自定义。
在一些实施例中,若指定RISC-V指令为R类型指令,则指定RISC-V指令还包括函数字段,函数字段的位数为r位,r=Q-3*n-m,Q为指定RISC-V指令的位数,例如,Q=32,n=4,m=8,则r=12,亦即,函数字段的位数为12位,可以理解的是,对于R类型指令,所述函数字段可由用户自定义地切分成多条函数字段,如图7所示,函数字段包括第一函数字段和第二函数字段,第一函数字段的位数为4,第二函数字段的位数为8。
在一些实施例中,若指定RISC-V指令为I类型指令,则指定RISC-V指令还包括函数字段与立即数字段,函数字段与立即数字段的总位数为i位,i=Q-2*n-m,Q为指定RISC-V指令的位数,例如,Q=32,n=4,m=8,则i=16,亦即,函数字段与立即数字段的总位数为16位,可以理解的是,对于I类型指令,函数字段与立即数字段可由用户自定义地切分,例如,函数字段的位数为4位,立即数字段为12位。
在一些实施例中,若指定RISC-V指令为S类型指令,则指定RISC-V指令还包括函数字段与立即数字段,函数字段与立即数字段的总位数为s位,s=Q-2*n-m,Q为指定RISC-V指令的位数,例如,Q=32,n=4,m=8,则s=16,亦即,函数字段与立即数字段的总位数为16位,可以理解的是,对于S类型指令,函数字段与立即数字段可由用户自定义地切分,例如,函数字段的位数为4位,第一立即数字段为4位,第二立即数字段为8位。
在一些实施例中,若指定RISC-V指令为U类型指令,则指定RISC-V指令还包括立即数字段,立即数字段的总位数为u位,u=Q-n-m,Q为指定RISC-V指令的位数,例如,Q=32,n=4,m=8,则u=20,亦即,立即数字段的总位数为20位,可以理解的是,对于I类型指令,立即数字段可由用户自定义地切分,例如,第一立即数字段为4位,第二立即数字段为16位。
需要说明的是,在上述各个实施方式中,上述各步骤之间并不必然存在一定的先后顺序,本领域普通技术人员,根据本发明实施方式的描述可以理解,不同实施方式中,上述各步骤可以有不同的执行顺序,亦即,可以并行执行,亦可以交换执行等等。
请参阅图8,图8是本发明实施例提供的一种电子设备的电路结构示意图,其中,电子设备可以为任意合适类型的设备或电子产品,例如,电子设备包括单片机或台式电脑等。如图8所示,电子设备800包括一个或多个处理器81以及存储器82。其中,图8中以一个处理器81为例。
处理器81和存储器82可以通过总线或者其他方式连接,图8中以通过总线连接为例。
存储器82作为一种存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本发明实施例中的RISC-V指令处理方法对应的程序指令/模块。处理器81通过运行存储在存储器82中的非易失性软件程序、指令以及模块,从而实现上述方法实施例提供的RISC-V指令处理方法的功能。
存储器82可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在实施例中,存储器82可选包括相对于处理器81远程设置的存储器,这些远程存储器可以通过网络连接至处理器81。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述程序指令/模块存储在所述存储器82中,当被所述一个或者多个处理器81执行时,执行上述任意方法实施例中的RISC-V指令处理方法。
本发明实施例还提供了一种存储介质,所存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,例如图8中的一个处理器81,可使得上述一个或多个处理器可执行上述任意方法实施例中的RISC-V指令处理方法。
本发明实施例还提供了一种计算机程序产品,所述计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被电子设备执行时,使所述电子设备执行任一项所述的RISC-V指令处理方法。
以上所描述的装置或设备实施例仅仅是示意性的,其中所述作为分离部件说明的单元模块可以是或者也可以不是物理上分开的,作为模块单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络模块单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明,它们没有在细节中提供;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (12)

1.一种RISC-V指令处理方法,其特征在于,包括:
获取指定RISC-V指令,所述指定RISC-V指令包括操作码字段及寄存器字段,所述寄存器字段用于存储非寻址编码但不存储寻址编码,所述非寻址编码指向对应的非寻址寄存器,所述寻址编码指向对应的寻址寄存器;
根据所述操作码字段的操作编码,操作所述非寻址寄存器。
2.根据权利要求1所述的方法,其特征在于,所述非寻址寄存器为RISC-V标准协议中的通用寄存器。
3.根据权利要求1所述的方法,其特征在于,所述寻址寄存器包括全局指针寄存器、线程指针寄存器、栈指针寄存器及程序寄存器。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述寄存器字段的位数为n位,可表达2的n次方个所述非寻址编码。
5.根据权利要求4所述的方法,其特征在于,所述操作码字段的位数为m位,可表达2的m次方个所述操作编码。
6.根据权利要求5所述的方法,其特征在于,若所述指定RISC-V指令为R类型指令,则所述指定RISC-V指令还包括函数字段,所述函数字段的位数为r位,r=Q-3*n-m,Q为所述指定RISC-V指令的位数。
7.根据权利要求5所述的方法,其特征在于,若所述指定RISC-V指令为I类型指令,则所述指定RISC-V指令还包括函数字段与立即数字段,所述函数字段与所述立即数字段的总位数为i位,i=Q-2*n-m,Q为所述指定RISC-V指令的位数。
8.根据权利要求5所述的方法,其特征在于,若所述指定RISC-V指令为S类型指令,则所述指定RISC-V指令还包括函数字段与立即数字段,所述函数字段与所述立即数字段的总位数为s位,s=Q-2*n-m,Q为所述指定RISC-V指令的位数。
9.根据权利要求5所述的方法,其特征在于,若所述指定RISC-V指令为U类型指令,则所述指定RISC-V指令还包括立即数字段,所述立即数字段的总位数为u位,u=Q-n-m,Q为所述指定RISC-V指令的位数。
10.根据权利要求4所述的方法,其特征在于,所述n为4。
11.一种存储介质,其特征在于,所述存储介质存储有计算机可执行指令,所述计算机可执行指令用于使电子设备执行如权利要求1至10任一项所述的RISC-V指令处理方法。
12.一种电子设备,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至10任一项所述的RISC-V指令处理方法。
CN202110712238.7A 2021-06-25 2021-06-25 Risc-v指令处理方法、存储介质及电子设备 Active CN113434198B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110712238.7A CN113434198B (zh) 2021-06-25 2021-06-25 Risc-v指令处理方法、存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110712238.7A CN113434198B (zh) 2021-06-25 2021-06-25 Risc-v指令处理方法、存储介质及电子设备

Publications (2)

Publication Number Publication Date
CN113434198A true CN113434198A (zh) 2021-09-24
CN113434198B CN113434198B (zh) 2023-07-14

Family

ID=77754594

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110712238.7A Active CN113434198B (zh) 2021-06-25 2021-06-25 Risc-v指令处理方法、存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN113434198B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115150331A (zh) * 2022-09-02 2022-10-04 无锡沐创集成电路设计有限公司 信息处理方法、装置、电子设备及介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6360311B1 (en) * 1996-11-04 2002-03-19 U.S. Philips Corporation Processor architecture with independently addressable memory banks for storing instructions to be executed
US20040024989A1 (en) * 2002-07-31 2004-02-05 Texas Instruments Incorporated Mixed stack-based RISC processor
CN101504600A (zh) * 2009-01-21 2009-08-12 北京红旗胜利科技发展有限责任公司 一种用于微处理器的数据传输方法以及一种微处理器
CN102141903A (zh) * 2011-03-22 2011-08-03 杭州中天微系统有限公司 用于16/32位混合指令的对称编码装置与译码装置
CN102262611A (zh) * 2010-05-25 2011-11-30 无锡华润矽科微电子有限公司 一种16位的risc cpu系统结构
CN105511340A (zh) * 2014-10-10 2016-04-20 依必安派特穆尔芬根有限两合公司 用于动态寻址从单元的可动态寻址主从系统和方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6360311B1 (en) * 1996-11-04 2002-03-19 U.S. Philips Corporation Processor architecture with independently addressable memory banks for storing instructions to be executed
US20040024989A1 (en) * 2002-07-31 2004-02-05 Texas Instruments Incorporated Mixed stack-based RISC processor
CN101504600A (zh) * 2009-01-21 2009-08-12 北京红旗胜利科技发展有限责任公司 一种用于微处理器的数据传输方法以及一种微处理器
CN102262611A (zh) * 2010-05-25 2011-11-30 无锡华润矽科微电子有限公司 一种16位的risc cpu系统结构
CN102141903A (zh) * 2011-03-22 2011-08-03 杭州中天微系统有限公司 用于16/32位混合指令的对称编码装置与译码装置
CN105511340A (zh) * 2014-10-10 2016-04-20 依必安派特穆尔芬根有限两合公司 用于动态寻址从单元的可动态寻址主从系统和方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
张天博: ""基于精简指令集的微控制器设计"", 《中国优秀硕士学位论文全文数据库信息科技辑》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115150331A (zh) * 2022-09-02 2022-10-04 无锡沐创集成电路设计有限公司 信息处理方法、装置、电子设备及介质

Also Published As

Publication number Publication date
CN113434198B (zh) 2023-07-14

Similar Documents

Publication Publication Date Title
US5946361A (en) Viterbi decoding method and circuit with accelerated back-tracing and efficient path metric calculation
RU2656730C2 (ru) Процессоры, способы, системы и команды для сложения трех операндов-источников с плавающей запятой
KR101595637B1 (ko) 벡터 친숙형 명령어 형식 및 그의 실행
KR102508075B1 (ko) 인덱스 및 즉치로 벡터 치환을 수행하기 위한 방법 및 장치
KR20170097018A (ko) 벡터 브로드캐스트 및 xorand 로직 명령어를 위한 장치 및 방법
CN101488083A (zh) 用于转换向量数据的方法、装置和指令
US10270464B1 (en) Method and apparatus for high performance compression and decompression
CN104040484A (zh) 浮点缩放处理器、方法、系统和指令
WO2014051720A1 (en) Accelerated interlane vector reduction instructions
JPH09507596A (ja) 大多重化スーパスカラー・ハーバード・アーキテクチャ・コンピュータ
TWI628593B (zh) 用以履行向量位元反轉之方法及設備
US20190189166A1 (en) System comprising a memory capable of implementing calculation operations
CN113434198B (zh) Risc-v指令处理方法、存储介质及电子设备
KR102462283B1 (ko) 명령어 흐름을 최적화하기 위한 체크를 수행하는 장치 및 방법
US20170177439A1 (en) Apparatus and method for enforcement of reserved bits
CN110688153B (zh) 一种指令分支执行控制方法及相关设备、指令结构
WO2016077344A1 (en) Machine level instructions to compute a 4d z-curve index from 4d coordinates
CN110221807B (zh) 数据移位方法、装置、设备及计算机可读存储介质
US5142630A (en) System for calculating branch destination address based upon address mode bit in operand before executing an instruction which changes the address mode and branching
US11210091B2 (en) Method and apparatus for processing data splicing instruction
WO2023027823A1 (en) Issue, execution, and backend driven frontend translation control for performant and secure data-space guided micro-sequencing
US20220197653A1 (en) Processors, methods, systems, and instructions to select and store data elements from strided data element positions in a first dimension from three source two-dimensional arrays in a result two-dimensional array
CN115328390A (zh) 基于c51的指针变量读写操作方法、装置、设备及介质
EP3835947A1 (en) Apparatuses, methods, and systems for instructions to multiply floating-point values of about one
CN113781217A (zh) 基于fpga的浮点数处理方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant