一种图形处理器及其伪指令处理方法、编译方法及装置、介质,所述伪指令处理方法包括:检测待处理的目标伪指令中的指示位,所述指示位用于指示所述目标伪指令涉及的寄存器是否需要进行锁定;若所述指示位指示无需对所述寄存器进行锁定,则直接执行所述目标伪指令。采用上述方案,能够降低GPU伪指令执行所耗费的时间,提高伪指令执行效率。提高伪指令执行效率。提高伪指令执行效率。
【技术实现步骤摘要】
图形处理器及其伪指令处理方法、编译方法及装置、介质
[0001]本专利技术涉及图形处理器
,尤其涉及一种图形处理器及其伪指令处理方法、编译方法及装置、介质。
技术介绍
[0002]图形处理器(Graphics Processing Unit,GPU),又称为显示核心、视觉处理器、显示芯片等,是一种专用于进行图像和图形相关运算工作的微处理器。
[0003]GPU的性能不仅与硬件频率相关,还与伪指令的编码方式以及伪指令的执行速度也相关,伪指令的编码方式以及伪指令的执行速度也会对GPU的性能产生较大的影响在处理具有依赖关系的伪指令,如读之后读(Read After Read,RAR)、读之后写(Write After Read,WAR)、写之后写(Write After Write,WAW)等类型的伪指令时,通常的做法是在伪指令对应的相关寄存器上加锁,以保证伪指令正确执行。
[0004]但是,现有技术中,GPU的伪指令处理所耗费的时间较长,伪指令处理效率较低。
技术实现思路
[0005]本专利技术解决的是GPU的伪指令处理耗费的时间较长、伪指令处理效率较低的技术问题。
[0006]为解决上述技术问题,本专利技术提供一种图形处理器的伪指令处理方法,包括:检测待处理的目标伪指令中的指示位,所述指示位用于指示所述目标伪指令涉及的寄存器是否需要进行锁定;若所述指示位指示无需对所述寄存器进行锁定,则直接执行所述目标伪指令。
[0007]可选的,所述直接执行所述目标伪指令,包括:在不检测所述寄存器的锁定状态的条件下执行所述目标伪指令。
[0008]可选的,所述图形处理器的伪指令处理方法还包括:若所述指示位指示无需对所述寄存器进行锁定,则在执行所述目标伪指令之前,不对所述寄存器的锁定状态进行更新。
[0009]可选的,所述图形处理器的伪指令处理方法还包括:若所述指示位指示无需对所述寄存器进行锁定,则在执行所述目标伪指令之后,不对所述寄存器的锁定状态进行更新。
[0010]可选的,所述图形处理器的伪指令处理方法还包括:若所述指示位指示对所述寄存器进行锁定,则检测所述寄存器当前是否被锁定;若所述寄存器当前被锁定,则在所述寄存器解除锁定后,执行所述目标伪指令。
[0011]可选的,在所述寄存器解除锁定后,执行所述目标伪指令,包括:在所述寄存器解除锁定之后,对所述寄存器进行加锁;在所述寄存器被锁定之后,执行所述目标伪指令。
[0012]可选的,在完成执行所述目标伪指令之后,还包括:对所述寄存器解除锁定。
[0013]可选的,所述目标伪指令为存在依赖关系的多条伪指令中的一条伪指令;所述存在依赖关系的多条伪指令包括:涉及相同寄存器的多条伪指令。
[0014]本专利技术还提供了一种伪指令编译方法,包括:读取伪指令并检测其相互之间的依
赖关系;检测到存在依赖关系的N条伪指令时,对所述N条伪指令各自的指示位进行配置,所述指示位用于指示所述伪指令被执行时涉及的寄存器是否需要进行锁定,其中,N为正整数且N≥2。
[0015]可选的,所述对所述N条伪指令各自的指示位进行配置,包括:配置前N
‑
1条伪指令的指示位有效,并配置第N条伪指令的指示位无效。
[0016]可选的,所述存在依赖关系的N条伪指令包括:涉及相同寄存器的N条伪指令。
[0017]本专利技术还提供了一种图形处理器,包括:伪指令发射模块,用于发射待处理的目标伪指令,所述目标伪指令中具有指示位,所述指示位用于指示所述目标伪指令涉及的寄存器是否需要进行锁定;伪指令执行引擎,从所述伪指令发射模块接收所述目标伪指令并检测其中的指示位,若所述指示位指示无需对所述寄存器进行锁定,则直接执行所述目标伪指令。
[0018]本专利技术还提供了一种伪指令编译装置,包括:读取单元,用于读取伪指令并检测其相互之间的依赖关系;配置单元,用于检测到存在依赖关系的N条伪指令时,对所述N条伪指令各自的指示位进行配置,所述指示位用于指示所述伪指令被执行时涉及的寄存器是否需要进行锁定,其中,N为正整数且N≥2。
[0019]本专利技术还提供了一种计算机可读存储介质,所述计算机可读存储介质为非易失性存储介质或非瞬态存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时执行上述任一种所述的伪指令编译方法的步骤。
[0020]与现有技术相比,本专利技术的技术方案具有以下有益效果:检测待处理的目标伪指令中的指示位,若目标伪指令中的指示位指示无需对源寄存器进行锁定,则直接执行目标伪指令,故而无需等待目标伪指令执行完成之后才能执行下一条伪指令,从而可以有效降低执行伪指令所耗费的时长,提高伪指令执行的效率。
附图说明
[0021]图1是本专利技术实施例中的一种图形处理器的伪指令执行方法的流程图;图2是本专利技术实施例中的另一种图形处理器的伪指令执行方法的流程图;图3是本专利技术实施例中的一种伪指令编译方法的流程图;图4是本专利技术实施例中的一种图形处理器的结构示意图;图5是本专利技术实施例中的一种伪指令编译装置的结构示意图。
具体实施方式
[0022]在处理具有依赖关系的伪指令,如读之后读(Read After Read,RAR)、读之后写(Write After Read,WAR)、写之后写(Write After Write,WAW)等类型的伪指令时,通常的做法是在伪指令对应的相关寄存器上加锁,以保证伪指令正确执行。
[0023]对于如下伪指令:SMP r5, [r0],ts#0 //从ts#0和r0寄存器共同确定的纹理位置采样数据并返回到r5寄存器。
[0024]SMP r6, [r0],ts#1 //从ts#1和r0寄存器共同确定的纹理位置采样数据并返回到r6寄存器。
[0025]SMPr7,[r0],ts#2//从ts#2和r0寄存器共同确定的纹理位置采样数据并返回到r7寄存器。
[0026]MOVr0,r1//把r1寄存器的值赋值给r0寄存器。
[0027]在上述伪指令中,由于在上述伪伪指令发射之后r0寄存器中的值可能会被MOV伪指令改写,因此,在每一条SMP伪指令执行时,都需要给r0寄存器加锁,以保证执行结果的一致性。
[0028]可见,上述伪指令中,每条SMP伪指令都需要等待前一条SMP伪指令执行完成,且解除对r0寄存器的锁定状态才能执行。对于SMP伪指令而言,因为需要从纹理存储器中读取数据,而解除r0寄存器的锁定状态通常需要几十个到数百个时钟周期,导致伪指令处理所耗费的时长较长,伪指令处理效率较差。
[0029]此外,对于内存的连续读取的应用场景,也同样因为寄存器的锁定,需要前一条伪指令解除相同寄存器的锁定状态后,才能执行下一条伪指令,因此,也存在上述同样的问题。
[0030]在本专利技术实施例中,检测待处理的目标伪指令中的指示位,若目标伪指令中的指示位指示无需对源寄存器进行锁定,则直接执行目标伪指令,故而无需等待目标伪指令执行完成之后本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种图形处理器的伪指令处理方法,其特征在于,包括:检测待处理的目标伪指令中的指示位,所述指示位用于指示所述目标伪指令涉及的寄存器是否需要进行锁定;若所述指示位指示无需对所述寄存器进行锁定,则直接执行所述目标伪指令。2.如权利要求1所述的图形处理器的伪指令处理方法,其特征在于,所述直接执行所述目标伪指令,包括:在不检测所述寄存器的锁定状态的条件下执行所述目标伪指令。3.如权利要求1所述的图形处理器的伪指令处理方法,其特征在于,还包括:若所述指示位指示无需对所述寄存器进行锁定,则在执行所述目标伪指令之前,不对所述寄存器的锁定状态进行更新。4.如权利要求1所述的图形处理器的伪指令处理方法,其特征在于,还包括:若所述指示位指示无需对所述寄存器进行锁定,则在执行所述目标伪指令之后,不对所述寄存器的锁定状态进行更新。5.如权利要求1所述的图形处理器的伪指令处理方法,其特征在于,还包括:若所述指示位指示对所述寄存器进行锁定,则检测所述寄存器当前是否被锁定;若所述寄存器当前被锁定,则在所述寄存器解除锁定后,执行所述目标伪指令。6.如权利要求5所述的图形处理器的伪指令处理方法,其特征在于,在所述寄存器解除锁定后,执行所述目标伪指令,包括:在所述寄存器解除锁定之后,对所述寄存器进行加锁;在所述寄存器被锁定之后,执行所述目标伪指令。7.如权利要求6所述的图形处理器的伪指令处理方法,其特征在于,在完成执行所述目标伪指令之后,还包括:对所述寄存器解除锁定。8.如权利要求1所述的图形处理器的伪指令处理方法,其特征在于,所述目标伪指令为存在依赖关系的多条伪指令中的一条伪指令;所述存在依赖关系的多条伪指令包括...
【专利技术属性】
技术研发人员:孙超,阙恒,商秋,孙鹏,
申请(专利权)人:南京砺算科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。