CN116342368A - 基于risc-v指令集的图形处理器指令处理方法及装置 - Google Patents
基于risc-v指令集的图形处理器指令处理方法及装置 Download PDFInfo
- Publication number
- CN116342368A CN116342368A CN202310228960.2A CN202310228960A CN116342368A CN 116342368 A CN116342368 A CN 116342368A CN 202310228960 A CN202310228960 A CN 202310228960A CN 116342368 A CN116342368 A CN 116342368A
- Authority
- CN
- China
- Prior art keywords
- instruction
- target
- register
- expansion
- decoding
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title abstract description 14
- 238000000034 method Methods 0.000 claims description 45
- 239000000872 buffer Substances 0.000 claims description 40
- 230000008569 process Effects 0.000 claims description 15
- 238000004590 computer program Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 239000013598 vector Substances 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000004040 coloring Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Executing Machine-Instructions (AREA)
Abstract
本发明公开了一种基于RISC‑V指令集的图形处理器指令处理方法及装置,包括:对当前指令进行译码,得到初始译码结果;根据所述初始译码结果,判断所述当前指令是否为寄存器扩展指令;如果所述当前指令不为所述寄存器扩展指令,则根据目标暂存器的有效位信息,确定指令处理类别;其中,所述指令处理类别包括RISC‑V标准译码类别或者拼接译码类别;对于所述拼接译码类别,从所述目标暂存器中读取目标扩展数据;其中,所述目标扩展数据为上一个寄存器扩展指令对应的扩展数据;对所述目标扩展数据以及所述初始译码结果进行拼接处理,生成目标译码结果。本发明能够改善采用RISC‑V指令集设计的图形处理器的指令处理性能。
Description
技术领域
本发明涉及计算机技术领域,具体而言,涉及一种基于RISC-V指令集的图形处理器指令处理方法及装置。
背景技术
目前,对于采用RISC-V指令集设计的图形处理器,由于其受RISC-V标准中的指令长度限制,因而可供使用的通用寄存器和立即数有限。
在实践中发现,图形处理器在编程过程中需要支持向量类型数据,例如OpenCL编程需要支持具备长度为2-16不等的向量。在此情况下,如果通用寄存器和立即数有限,则会导致图形处理器存在着指令处理性能不佳的问题。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种基于RISC-V指令集的图形处理器指令处理方法及装置,以至少改善采用RISC-V指令集设计的图形处理器的指令处理性能。
根据本发明实施例的一个方面,提供了一种基于RISC-V指令集的图形处理器指令处理方法,所述方法包括:对当前指令进行译码,得到初始译码结果;根据所述初始译码结果,判断所述当前指令是否为寄存器扩展指令;如果所述当前指令不为所述寄存器扩展指令,则根据目标暂存器的有效位信息,确定指令处理类别;其中,所述指令处理类别包括RISC-V标准译码类别或者拼接译码类别;对于所述拼接译码类别,从所述目标暂存器中读取目标扩展数据;其中,所述目标扩展数据为上一个寄存器扩展指令对应的扩展数据;对所述目标扩展数据以及所述初始译码结果进行拼接处理,生成目标译码结果。
作为一种可选的实施方式,所述方法还包括:如果所述当前指令为所述寄存器扩展指令,则基于所述初始译码结果,确定与所述当前指令对应的扩展数据;将与所述当前指令对应的扩展数据,存储于所述目标暂存器,并更新所述目标暂存器的有效位信息为1。
作为一种可选的实施方式,所述目标扩展数据至少包括以下一项:目的操作数寄存器扩展数据、源操作数寄存器扩展数据以及立即数操作数扩展数据。
作为一种可选的实施方式,在对所述目标扩展数据以及所述初始译码结果进行拼接处理,生成目标译码结果之后,所述方法还包括:更新所述目标暂存器的有效位信息为0。
作为一种可选的实施方式,根据目标暂存器的有效位信息,确定指令处理类别,包括:如果所述目标暂存器的有效位信息为1,则确定所述指令处理类别为拼接译码类别;如果所述目标暂存器的有效位信息为0,则确定所述指令处理类别为所述RISC-V标准译码类别。
作为一种可选的实施方式,所述目标暂存器中存储有所述目标扩展数据、图形处理器执行过程中的目标线程束的编号以及所述有效位信息;其中,一个线程束对应一个暂存器。
作为一种可选的实施方式,所述方法还包括:将所述目标译码结果送入指令缓冲器,以使所述指令缓冲器缓冲所述目标译码结果。
作为一种可选的实施方式,所述方法还包括:对于所述RISC-V标准译码类别,将所述初始译码结果送入指令缓冲器,以使所述指令缓冲器缓冲所述初始译码结果。
根据本发明实施例的另一方面,还提供了一种基于RISC-V指令集的图形处理器指令处理装置,所述装置包括:初始译码单元,用于对当前指令进行译码,得到初始译码结果;扩展判断单元,用于根据所述初始译码结果,判断所述当前指令是否为寄存器扩展指令;类别确定单元,用于如果所述当前指令不为所述寄存器扩展指令,则根据目标暂存器的有效位信息,确定指令处理类别;其中,所述指令处理类别包括RISC-V标准译码类别或者拼接译码类别;扩展读取单元,用于对于所述拼接译码类别,从所述目标暂存器中读取目标扩展数据;其中,所述目标扩展数据为上一个寄存器扩展指令对应的扩展数据;拼接处理单元,用于对所述目标扩展数据以及所述初始译码结果进行拼接处理,生成目标译码结果。
作为一种可选的实施方式,所述装置还包括:扩展存入单元,用于如果所述当前指令为所述寄存器扩展指令,则基于所述初始译码结果,确定与所述当前指令对应的扩展数据;将与所述当前指令对应的扩展数据,存储于所述目标暂存器,并更新所述目标暂存器的有效位信息为1。
作为一种可选的实施方式,所述目标扩展数据至少包括以下一项:目的操作数寄存器扩展数据、源操作数寄存器扩展数据以及立即数操作数扩展数据。
作为一种可选的实施方式,所述装置还包括:有效位更新单元,用于在对所述目标扩展数据以及所述初始译码结果进行拼接处理,生成目标译码结果之后,更新所述目标暂存器的有效位信息为0。
作为一种可选的实施方式,类别确定单元具体用于:如果所述目标暂存器的有效位信息为1,则确定所述指令处理类别为拼接译码类别;如果所述目标暂存器的有效位信息为0,则确定所述指令处理类别为所述RISC-V标准译码类别。
作为一种可选的实施方式,所述目标暂存器中存储有所述目标扩展数据、图形处理器执行过程中的目标线程束的编号以及所述有效位信息;其中,一个线程束对应一个暂存器。
作为一种可选的实施方式,所述装置还包括:指令执行单元,用于将所述目标译码结果送入指令缓冲器,以使所述指令缓冲器缓冲所述目标译码结果。
作为一种可选的实施方式,所述指令执行单元还用于:对于所述RISC-V标准译码类别,将所述初始译码结果送入指令缓冲器,以使所述指令缓冲器缓冲所述初始译码结果。
根据本发明实施例的又一方面,还提供了一种计算机可读的存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述基于RISC-V指令集的图形处理器指令处理方法。
根据本发明实施例的又一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,上述处理器通过计算机程序执行上述的基于RISC-V指令集的图形处理器指令处理方法。
在本发明实施例中,通过对指令进行拼接译码,引入上一个寄存器扩展指令对应的扩展数据,和当前指令的译码结果进行拼接,从而实现寄存器数目和立即数长度的扩展,能够改善采用RISC-V指令集设计的图形处理器的指令处理性能。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种可选的基于RISC-V指令集的图形处理器指令处理方法的流程图;
图2是根据本发明实施例的一种可选的寄存器扩展指令的信息项的示意图;
图3是根据本发明实施例的另一种可选的基于RISC-V指令集的图形处理器指令处理方法的流程图;
图4是根据本发明实施例的一种可选的寄存器扩展指令模块结构图;
图5是根据本发明实施例的一种可选的基于RISC-V指令集的图形处理器指令处理装置的结构示意图;
图6是根据本发明实施例的一种可选的电子装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本发明实施例提供了一种可选的基于RISC-V指令集的图形处理器指令处理方法,如图1所示,该基于RISC-V指令集的图形处理器指令处理方法包括:
S101,对当前指令进行译码,得到初始译码结果。
在本实施例中,执行主体可以为采用RISC-V指令集设计的图形处理器。其中,RISC-V指令集一个基于精简指令集(RISC)原则的开源指令集架构(ISA)。
其中,执行主体在处理指令的过程中,对于正在处理的当前指令,可以先通过译码单元对当前指令进行译码,得到初始译码结果。其中,初始译码结果能够用于判断当前指令是否为寄存器扩展指令。其中,当前指令中可以包括多个信息项,通过对当前指令进行译码,得到的初始译码结果可以包括对当前指令中各个信息项的解析结果,如每个信息项对应的字符。
S102,根据所述初始译码结果,判断所述当前指令是否为寄存器扩展指令。
在本实施例中,执行主体在得到初始译码结果之后,可以根据初始译码结果判断当前指令是否为寄存器扩展指令,其中,寄存器扩展指令可以包括特定的信息项。如果初始译码结果中包含与寄存器扩展指令相匹配的、特定的信息项,则说明当前指令为寄存器扩展指令。如果初始译码结果中不包含与寄存器扩展指令相匹配的、特定的信息项,则说明当前指令不是寄存器扩展指令。
S103,如果所述当前指令不为所述寄存器扩展指令,则根据目标暂存器的有效位信息,确定指令处理类别;其中,所述指令处理类别包括RISC-V标准译码类别或者拼接译码类别。
在本实施例中,如果当前指令不是寄存器扩展指令,则可以从当前线程束对应的目标暂存器中,获取有效位信息。其中,有效位信息用于标记目标暂存器中是否已暂存需要拼接的目标扩展数据。例如,如果有效位信息置1,其用来标记目标暂存器中已暂存需要拼接的目标扩展数据。如果有效位信息置0,其用来标记目标暂存器中未暂存需要拼接的目标扩展数据。之后,执行主体可以根据有效位信息,确定相匹配的指令处理类别。其中,指令处理类别可以包括RISC-V标准译码类别或者拼接译码类别。其中,RISC-V标准译码类别可以为按照RISC-V标准对指令进行正常译码的类别,拼接译码类别可以为对当前指令解析得到的各信息项、拼接扩展数据后再进行译码的类别。
S104,对于所述拼接译码类别,从所述目标暂存器中读取目标扩展数据;其中,所述目标扩展数据为上一个寄存器扩展指令对应的扩展数据。
在本实施例中,如果确定出的指令处理类别为拼接译码类别,则可以从目标暂存器中读取目标扩展数据。这里的目标扩展数据可以包括特定的扩展信息项,信息项的数量为至少一个。并且,目标扩展数据可以为上一个寄存器扩展指令对应的扩展数据。
S105,对所述目标扩展数据以及所述初始译码结果进行拼接处理,生成目标译码结果。
在本实施例中,执行主体可以将目标扩展数据指示的至少一个扩展信息项和初始译码结果中的各个信息项进行拼接处理,得到拼接后的信息项,即得到目标译码结果。其中,通过对目标译码结果进行执行,即实现对当前指令的执行。
作为一种可选的实施方式,所述方法还包括:如果所述当前指令为所述寄存器扩展指令,则基于所述初始译码结果,确定与所述当前指令对应的扩展数据;将与所述当前指令对应的扩展数据,存储于所述目标暂存器,并更新所述目标暂存器的有效位信息为1。
在本实施方式中,如果当前指令为寄存器扩展指令,则可以基于初始译码结果中的特定扩展信息项,确定出每个特定扩展信息项对应的字符信息,得到与当前指令相对应的扩展数据。之后,可以将当前指令相对应的扩展数据存储于目标暂存器,用于下一次拼接译码类别的非寄存器扩展指令,进行拼接译码。并且,在将当前指令对应的扩展数据存储于目标暂存器之后,可以将目标暂存器的有效位信息更新为1,用于标记目标暂存器中存储有用于拼接的扩展数据。并且,在更新所述目标暂存器的有效位信息为1之后,确定对于当前指令的处理结束,此时可以读取下一个指令重复上述步骤。
作为一种可选的实施方式,所述目标扩展数据至少包括以下一项:目的操作数寄存器扩展数据、源操作数寄存器扩展数据以及立即数操作数扩展数据。
在本实施方式中,目标扩展数据可以包括与目的操作寄存器对应的扩展数据、与源操作数寄存器对应的扩展数据、与立即数操作数对应的扩展数据。
作为一种可选的实施方式,在对所述目标扩展数据以及所述初始译码结果进行拼接处理,生成目标译码结果之后,所述方法还包括:更新所述目标暂存器的有效位信息为0。
在本实施方式中,在对目标扩展数据以及初始译码结果进行拼接处理,生成目标译码结果之后,可以将目标暂存器的有效位信息更新为0,用于标记此时目标暂存器中没有用于拼接的扩展数据。
作为一种可选的实施方式,根据目标暂存器的有效位信息,确定指令处理类别,包括:如果所述目标暂存器的有效位信息为1,则确定所述指令处理类别为拼接译码类别;如果所述目标暂存器的有效位信息为0,则确定所述指令处理类别为所述RISC-V标准译码类别。
在本实施例中,如果目标暂存器的有效位信息为1,则可以确定指令处理类别为拼接译码类别。如果目标暂存器的有效位信息为0,则可以确定指令处理类别为RISC-V标准译码类别。
作为一种可选的实施方式,所述目标暂存器中存储有所述目标扩展数据、图形处理器执行过程中的目标线程束的编号以及所述有效位信息;其中,一个线程束对应一个暂存器。
在本实施方式中,硬件单元可以为图形处理器执行过程中的每个线程束提供一个暂存器,即,一个线程束对应一个暂存器。对于目标暂存器而言,其对应的暂存器即为目标暂存器。并且,在目标暂存器中可以存储有上述的目标扩展数据、图形处理器执行过程中的目标线程束的编号、以及上述有效位信息。
作为一种可选的实施方式,所述方法还包括:将所述目标译码结果送入指令缓冲器,以使所述指令缓冲器缓冲所述目标译码结果。
在本实施例中,执行主体在得到目标译码结果之后,可以将目标译码结果中的、拼接后的各个信息项直接送入指令缓冲器(Instruction buffer),以使指令缓冲器控制后续执行结果。具体的,指令缓冲器可以缓冲目标译码结果,供后续指令执行单元进行指令执行,或者,供后续指令发射单元将译码后的指令发送到对应指令执行单元上执行。之后,译码单元可以确定对于当前指令的译码处理结束(当前指令仍需进行后续发射、执行、写回等其他处理步骤),译码单元读取下一条指令重复上述译码处理流程。
作为一种可选的实施方式,所述方法还包括:对于所述RISC-V标准译码类别,将所述初始译码结果送入指令缓冲器,以使所述指令缓冲器缓冲所述初始译码结果。
在本实施方式中,对于RISC-V标准译码类别,可以直接将初始译码结果中的各个信息项(未经拼接的原始信息项)送入上述指令缓冲器,以使指令缓冲器控制后续执行结果。
通过本实施例,目标扩展数据(扩展指令)与主流RISC-V指令完全兼容,可方便地完成寄存器数目和立即数长度的扩充。相比其它支持较多寄存器的指令集,本实施例在不需要超过32个寄存器场景下,不会带来额外指令长度的空间和解码开销,编译器也可优先将寄存器分配在较低编号寄存器以减少指令长度。
此外,编译器可以将寄存器扩展指令及其后一条指令整体视为64位宏指令,编译器在按照图着色算法进行寄存器分配时,直接按照256个物理寄存器进行分配,在分配结束后可直接将宏指令展开,即可得到带有寄存器扩展指令的RISC-V指令,无需改动现有编译器功能框架。更多寄存器可以减少函数调用的堆栈次数,从而减少压栈、函数跳转和返回、出栈导致的执行开销。
请参阅图2,图2是根据本发明实施例的一种可选的寄存器扩展指令的信息项的示意图,如图2所示,寄存器扩展指令中包含ext_rd、ext_rs3、ext_rs2、ext_rs1、ext_imm信息项,分别指目的操作数寄存器扩展部分、3号源操作数寄存器扩展部分、2号源操作数寄存器扩展部分、1号源操作数寄存器扩展部分、立即数操作数扩展部分。并且,寄存器扩展指令可以包括寄存器-寄存器扩展指令和寄存器-立即数扩展指令。对于寄存器-寄存器扩展指令,其定义了三个源操作数寄存器和一个目的操作数寄存器的扩展部分(图2上);对于寄存器-立即数扩展指令,其定义了两个源操作数寄存器、一个立即数操作数和一个目的操作数寄存器的扩展部分(图2下)。其中,寄存器扩展部分均为3bit,立即数扩展部分为12bit。对于扩展部分,可以将扩展部分(寄存器扩展部分、立即数扩展部分)拼接在下一条指令的对应操作数的高位,即可将寄存器标号由32个扩展到256个,将立即数扩展为原来的4096倍。
请参阅图3,图3是根据本发明实施例的另一种可选的基于RISC-V指令集的图形处理器指令处理方法的流程图,如图3所示,可以执行以下步骤:
S301,对当前指令译码。
S302,是否为寄存器扩展指令,如果是,执行步骤S303,如果否,执行步骤S304。
S303,将当前指令中的扩展信息存入当前线程束对应的暂存器,并将有效位置1。
S304,当前线程束对应的暂存器中的有效位是否为1,如果是,执行步骤S306,如果否,执行步骤S305。
S305,按照RISC-V标准正常取出寄存器和立即数编号。
S306,将暂存器中的扩展信息与正常译码的寄存器/立即数进行拼接,然后将有效位置0。
S307,取出下一条指令处理。
在本实施例中,首先由译码单元对当前指令进行译码,根据译码结果判断其是否为寄存器扩展指令。
并且,如果是寄存器扩展指令,则将当前指令译码得到的扩展部分ext_rd、ext_rs3、ext_rs2、ext_rs1、ext_imm存入当前线程束对应的暂存器中,并将暂存器中的有效位(valid bit)置1,然后结束本条指令的处理,取出下一条指令处理重复流程。此处对应图3中S301、S302、S303、S307、S301的执行顺序。
并且,如果不是寄存器扩展指令,则检查当前线程束的暂存器中的有效位是否为1,若不为1,则对当前指令按照RISC-V标准正常译码,然后结束本条指令的处理,取出下一条指令处理重复流程。此处对应图3中S301、S302、S304、S305、S307、S301的执行顺序。
并且,如果不是寄存器扩展指令、且当前线程束的暂存器中的有效位
为1,则将暂存器中的ext_rd、ext_rs3、ext_rs2、ext_rs1、ext_imm信息拼接在正常译码得到的寄存器操作数编号和立即数操作数的高位,然后将暂存器中的有效位置0,这样就通过上一条寄存器扩展指令实现了对本条指令的寄存器和立即数扩展。此处对应图3中S301、S302、S304、S306、S307、S301的执行顺序。
请参阅图4,图4是根据本发明实施例的一种可选的寄存器扩展指令模块结构图,如图4所示,硬件单元可以为图形处理器执行过程中的每个线程束提供一个暂存器,该暂存器中存储了线程束的编号(warp_id)、当前暂存器的有效位、扩展部分ext_rd、ext_rs3、ext_rs2、ext_rs1、ext_imm。
并且,在进行译码时,先检查当前指令是否为寄存器扩展指令,若是,则将译码得到的扩展部分写入当前指令所属线程束的暂存器中,并将有效位置1,该指令即执行完成,译码单元取出下一条指令重复以上流程执行。此种情况对应图4中的①的分支。
并且,若当前指令不为寄存器扩展指令,则通过当前指令所属线程束编号,选择并查看对应线程束的暂存器中有效位是否为1,若不为1则将该指令直接送入指令缓冲器;若为1则将拼接后的该指令送入指令缓冲器,并清除暂存器中的有效位。该指令由指令缓冲器控制后续执行结果,译码单元取出下一条指令重复以上流程执行。此种情况对应图4中的②的分支。
在本发明实施例中,通过对指令进行拼接译码,引入上一个寄存器扩展指令对应的扩展数据,和当前指令的译码结果进行拼接,从而实现寄存器数目和立即数长度的扩展,能够改善采用RISC-V指令集设计的图形处理器的指令处理性能。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
进一步的,本发明实施例提供了一种可选的基于RISC-V指令集的图形处理器指令处理装置,如图5所示,该基于RISC-V指令集的图形处理器指令处理装置包括:
初始译码单元501,用于对当前指令进行译码,得到初始译码结果;
扩展判断单元502,用于根据所述初始译码结果,判断所述当前指令是否为寄存器扩展指令;
类别确定单元503,用于如果所述当前指令不为所述寄存器扩展指令,则根据目标暂存器的有效位信息,确定指令处理类别;其中,所述指令处理类别包括RISC-V标准译码类别或者拼接译码类别;
扩展读取单元504,用于对于所述拼接译码类别,从所述目标暂存器中读取目标扩展数据;其中,所述目标扩展数据为上一个寄存器扩展指令对应的扩展数据;
拼接处理单元505,用于对所述目标扩展数据以及所述初始译码结果进行拼接处理,生成目标译码结果。
作为一种可选的实施方式,所述装置还包括:扩展存入单元,用于如果所述当前指令为所述寄存器扩展指令,则基于所述初始译码结果,确定与所述当前指令对应的扩展数据;将与所述当前指令对应的扩展数据,存储于所述目标暂存器,并更新所述目标暂存器的有效位信息为1。
作为一种可选的实施方式,所述目标扩展数据至少包括以下一项:目的操作数寄存器扩展数据、源操作数寄存器扩展数据以及立即数操作数扩展数据。
作为一种可选的实施方式,所述装置还包括:有效位更新单元,用于在对所述目标扩展数据以及所述初始译码结果进行拼接处理,生成目标译码结果之后,更新所述目标暂存器的有效位信息为0。
作为一种可选的实施方式,类别确定单元503具体用于:如果所述目标暂存器的有效位信息为1,则确定所述指令处理类别为拼接译码类别;如果所述目标暂存器的有效位信息为0,则确定所述指令处理类别为所述RISC-V标准译码类别。
作为一种可选的实施方式,所述目标暂存器中存储有所述目标扩展数据、图形处理器执行过程中的目标线程束的编号以及所述有效位信息;其中,一个线程束对应一个暂存器。
作为一种可选的实施方式,所述装置还包括:指令执行单元,用于将所述目标译码结果送入指令缓冲器,以使所述指令缓冲器缓冲所述目标译码结果。
作为一种可选的实施方式,所述指令执行单元还用于:对于所述RISC-V标准译码类别,将所述初始译码结果送入指令缓冲器,以使所述指令缓冲器缓冲所述初始译码结果。
在本发明实施例中,通过对指令进行拼接译码,引入上一个寄存器扩展指令对应的扩展数据,和当前指令的译码结果进行拼接,从而实现寄存器数目和立即数长度的扩展,能够改善采用RISC-V指令集设计的图形处理器的指令处理性能。
进一步的,根据本发明实施例的又一个方面,还提供了一种用于实施上述基于RISC-V指令集的图形处理器指令处理方法的电子装置,如图6所示,该电子装置包括存储器602和处理器604,该存储器602中存储有计算机程序,该处理器604被设置为通过计算机程序执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述电子装置可以位于计算机网络的多个网络设备中的至少一个网络设备。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,对当前指令进行译码,得到初始译码结果;
S2,根据所述初始译码结果,判断所述当前指令是否为寄存器扩展指令;
S3,如果所述当前指令不为所述寄存器扩展指令,则根据目标暂存器的有效位信息,确定指令处理类别;其中,所述指令处理类别包括RISC-V标准译码类别或者拼接译码类别;
S4,对于所述拼接译码类别,从所述目标暂存器中读取目标扩展数据;其中,所述目标扩展数据为上一个寄存器扩展指令对应的扩展数据;
S5,对所述目标扩展数据以及所述初始译码结果进行拼接处理,生成目标译码结果。
可选地,本领域普通技术人员可以理解,图6所示的结构仅为示意,电子装置也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile Internet Devices,MID)、PAD等终端设备。图6其并不对上述电子装置的结构造成限定。例如,电子装置还可包括比图6中所示更多或者更少的组件(如网络接口等),或者具有与图6所示不同的配置。
其中,存储器602可用于存储软件程序以及模块,如本发明实施例中的基于RISC-V指令集的图形处理器指令处理方法对应的程序指令/模块,处理器604通过运行存储在存储器602内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的基于RISC-V指令集的图形处理器指令处理方法。存储器602可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器602可进一步包括相对于处理器604远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。其中,存储器602具体可以但不限于用于存储操作指令等信息。作为一种示例,如图6所示,上述存储器602中可以但不限于包括上述装置中的各个模块。
可选地,上述的传输装置606用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置606包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置606为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
此外,上述电子装置还包括:显示器608和连接总线610。
根据本发明的实施例的又一方面,还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,对当前指令进行译码,得到初始译码结果;
S2,根据所述初始译码结果,判断所述当前指令是否为寄存器扩展指令;
S3,如果所述当前指令不为所述寄存器扩展指令,则根据目标暂存器的有效位信息,确定指令处理类别;其中,所述指令处理类别包括RISC-V标准译码类别或者拼接译码类别;
S4,对于所述拼接译码类别,从所述目标暂存器中读取目标扩展数据;其中,所述目标扩展数据为上一个寄存器扩展指令对应的扩展数据;
S5,对所述目标扩展数据以及所述初始译码结果进行拼接处理,生成目标译码结果。
可选地,在本实施例中,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random Access Memory,RAM)、磁盘或光盘等。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种基于RISC-V指令集的图形处理器指令处理方法,其特征在于,所述方法包括:
对当前指令进行译码,得到初始译码结果;
根据所述初始译码结果,判断所述当前指令是否为寄存器扩展指令;
如果所述当前指令不为所述寄存器扩展指令,则根据目标暂存器的有效位信息,确定指令处理类别;其中,所述指令处理类别包括RISC-V标准译码类别或者拼接译码类别;
对于所述拼接译码类别,从所述目标暂存器中读取目标扩展数据;其中,所述目标扩展数据为上一个寄存器扩展指令对应的扩展数据;
对所述目标扩展数据以及所述初始译码结果进行拼接处理,生成目标译码结果。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
如果所述当前指令为所述寄存器扩展指令,则基于所述初始译码结果,确定与所述当前指令对应的扩展数据;
将与所述当前指令对应的扩展数据,存储于所述目标暂存器,并更新所述目标暂存器的有效位信息为1。
3.根据权利要求1所述的方法,其特征在于,所述目标扩展数据至少包括以下一项:目的操作数寄存器扩展数据、源操作数寄存器扩展数据以及立即数操作数扩展数据。
4.根据权利要求1所述的方法,其特征在于,在对所述目标扩展数据以及所述初始译码结果进行拼接处理,生成目标译码结果之后,所述方法还包括:
更新所述目标暂存器的有效位信息为0。
5.根据权利要求1所述的方法,其特征在于,根据目标暂存器的有效位信息,确定指令处理类别,包括:
如果所述目标暂存器的有效位信息为1,则确定所述指令处理类别为拼接译码类别;
如果所述目标暂存器的有效位信息为0,则确定所述指令处理类别为所述RISC-V标准译码类别。
6.根据权利要求1所述的方法,其特征在于,所述目标暂存器中存储有所述目标扩展数据、图形处理器执行过程中的目标线程束的编号以及所述有效位信息;其中,一个线程束对应一个暂存器。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述目标译码结果送入指令缓冲器,以使所述指令缓冲器缓冲所述目标译码结果。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对于所述RISC-V标准译码类别,将所述初始译码结果送入指令缓冲器,以使所述指令缓冲器缓冲所述初始译码结果。
9.一种基于RISC-V指令集的图形处理器指令处理装置,其特征在于,所述装置包括:
初始译码单元,用于对当前指令进行译码,得到初始译码结果;
扩展判断单元,用于根据所述初始译码结果,判断所述当前指令是否为寄存器扩展指令;
类别确定单元,用于如果所述当前指令不为所述寄存器扩展指令,则根据目标暂存器的有效位信息,确定指令处理类别;其中,所述指令处理类别包括RISC-V标准译码类别或者拼接译码类别;
扩展读取单元,用于对于所述拼接译码类别,从所述目标暂存器中读取目标扩展数据;其中,所述目标扩展数据为上一个寄存器扩展指令对应的扩展数据;
拼接处理单元,用于对所述目标扩展数据以及所述初始译码结果进行拼接处理,生成目标译码结果。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
扩展存入单元,用于如果所述当前指令为所述寄存器扩展指令,则基于所述初始译码结果,确定与所述当前指令对应的扩展数据;将与所述当前指令对应的扩展数据,存储于所述目标暂存器,并更新所述目标暂存器的有效位信息为1。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310228960.2A CN116342368A (zh) | 2023-03-09 | 2023-03-09 | 基于risc-v指令集的图形处理器指令处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310228960.2A CN116342368A (zh) | 2023-03-09 | 2023-03-09 | 基于risc-v指令集的图形处理器指令处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116342368A true CN116342368A (zh) | 2023-06-27 |
Family
ID=86880011
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310228960.2A Pending CN116342368A (zh) | 2023-03-09 | 2023-03-09 | 基于risc-v指令集的图形处理器指令处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116342368A (zh) |
-
2023
- 2023-03-09 CN CN202310228960.2A patent/CN116342368A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104881494B (zh) | 与Redis服务器进行数据同步的方法、装置和系统 | |
CN101836188B (zh) | 基于服务器的代码编译 | |
US20090313442A1 (en) | Circular buffer support in a single instruction multiple data (simd) data processsor | |
CN105393240A (zh) | 具有辅助异步向量处理器的异步处理器的方法和装置 | |
US7089407B2 (en) | Packet processing device processing input packet data in a packet routing device | |
CN105095367B (zh) | 一种客户端数据的采集方法和装置 | |
CN105204917B (zh) | 在应用程序启动时加载配置文件的方法及装置 | |
CN111158756A (zh) | 用于处理信息的方法和装置 | |
US10691453B2 (en) | Vector load with instruction-specified byte count less than a vector size for big and little endian processing | |
WO2017016255A1 (zh) | 微引擎的多发射指令并行处理方法及装置、存储介质 | |
US20160048416A1 (en) | Apparatus and method for controlling execution of a single thread by multiple processors | |
CN108959180B (zh) | 一种数据处理方法及系统 | |
TW201738734A (zh) | 用於在運行時指令的情境向量化的系統及方法 | |
CN116342368A (zh) | 基于risc-v指令集的图形处理器指令处理方法及装置 | |
US6931632B2 (en) | Instrumentation of code having predicated branch-call and shadow instructions | |
CN113051071A (zh) | 命令提交方法和装置、命令读取方法和装置、电子设备 | |
CN111258950B (zh) | 原子访存方法、存储介质、计算机设备、装置和系统 | |
CN111443948A (zh) | 指令执行方法、处理器和电子设备 | |
CN108628639B (zh) | 处理器和指令调度方法 | |
CN110134438B (zh) | 指令排序方法、装置、移动终端及存储介质 | |
CN111258653B (zh) | 原子访存方法、存储介质、计算机设备、装置和系统 | |
CN104731557A (zh) | 指令执行的控制方法及装置 | |
CN112463140B (zh) | 基于电子积木的编程方法、装置、电子设备及存储介质 | |
KR20230124598A (ko) | 높은 처리량 및 낮은 오버헤드 커널 개시를 위한 압축 커맨드 패킷 | |
CN114924792A (zh) | 指令译码单元、指令执行单元及相关装置和方法 |
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 |