一种GPU染色阵列空闲单元查询电路转让专利

申请号 : CN201611140136.8

文献号 : CN106683032B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 郭亮田泽郑斐赵强许宏杰韩立敏

申请人 : 中国航空工业集团公司西安航空计算技术研究所

摘要 :

本发明属于计算机图形领域,尤其涉及一种GPU染色阵列空闲单元查询电路。本电路包括查询模式控制单元(1)、M个一级查询单元(2)、二级查询单元(6)、译码单元(7)。本电路通过将广度查询和深度查询模式进行统一编码,实现了多种查询模式下GPU染色阵列空闲单元的快速查询。有利于GPU染色任务的实时调度和染色阵列单元高效分配和管理。

权利要求 :

1.一种GPU染色阵列空闲单元查询电路,其特征在于,包括:

查询模式控制单元(1)、M个一级查询单元(2)、二级查询单元(6)、译码单元(7);其中,M为处理阵列簇的个数;

查询模式控制单元(1)根据查询模式对染色器阵列单元的状态进行重新排列作为查询请求按位置号分成M组,每组发送给一个一级查询单元,其中染色阵列单元组织方式为MxN,M为处理阵列簇的个数,N为每簇中处理器单元的个数,MxN个处理器阵列中每个处理器的空闲标志用1bit来表示,其中空闲标志为1,表示该处理器空闲;空闲标志为0,表示该处理器非空闲;当配置为深度查询时,将染色阵列的空闲标志排列为{S11,S12,..,S1N,S21,S22,…,S2N,…SM1,SM2,…,SMN};当配置为广度查询,将染色阵列的空闲标志排列为{S11,S21,..,SM1,S12,S22,…,SM2,…SN1,SN2,…,SNM};将重新排列的染色阵列单元的空闲标志每N位进行逻辑“或”操作产生查询状态标志,如果“或”操作后的逻辑值为1,查询状态标志有效;如果“或”操作后的逻辑值为0,查询状态标志无效;

一级查询单元接收外部查询请求,如果外部查询请求有效,并且查询模式控制单元(1)产生的对应的查询状态标志有效,则以N位为一组,在染色阵列空闲状态表中按照位置号从小到大的顺序查询第一位有效位,如果查询到有效位,则将本一级查询单元的空闲有效标志置为1,并将其位置号锁存在本一级查询单元的锁存器中,否则将空闲有效标志置为0;

二级查询单元(6),依次查询M个一级查询单元(2)的空闲有效标志,查找到第一位有效的标志,并将对应的位置号锁存器锁存到REG中;

译码单元(7),根据二级查询单元(6)获取的位置号,按照与查询模式控制单元(1)对应的深度查询或广度查询模式,对REG中染色器阵列单元对应的位置号进行译码,从而获取空闲染色单元的行列号。

说明书 :

一种GPU染色阵列空闲单元查询电路

技术领域

[0001] 本发明属于计算机软件领域,尤其涉及一种GPU染色阵列空闲单元查询电路。

背景技术

[0002] 统一染色阵列在分配染色任务时,需要对染色器阵列中的空闲单元进行查询,查询电路的简单、高效决定了染色任务调度和分配的效率。目前公开研究都是针对染色器测试、染色器编程的研究,未发现有染色阵列空闲单元查询电路的研究。

发明内容

[0003] 本发明的目的是:
[0004] 本发明主要提供一种GPU染色阵列空闲单元查询电路,有利于GPU染色任务的实时调度和染色阵列单元高效分配和管理。
[0005] 本发明的解决方案是:
[0006] 一种GPU染色阵列空闲单元查询电路,其特征在于,包括:
[0007] 查询模式控制单元(1)、M个一级查询单元(2)、二级查询单元(6)、译码单元(7);其中,M为处理阵列簇的个数;
[0008] 查询模式控制单元(1)根据查询模式对染色器阵列单元的状态进行重新排列作为查询请求按位置号分成M组,每组发送给一个一级查询单元,其中染色阵列单元组织方式为MxN,M为处理阵列簇的个数,N为每簇中处理器单元的个数,MxN个处理器阵列中每个处理器的空闲标志用1bit来表示,其中空闲标志为1,表示该处理器空闲;空闲标志为0,表示该处理器非空闲。当配置为深度查询时,将染色阵列的空闲标志排列为{S11,S12,..,S1N,S21,S22,…,S2N,…SM1,SM2,…,SMN};当配置为广度查询,将染色阵列的空闲标志排列为{S11,S21,..,SM1,S12,S22,…,SM2,…SN1,SN2,…,SNM};将重新排列的染色阵列单元的空闲标志每N位进行逻辑“或”操作产生查询状态标志,如果“或”操作后的逻辑值为1,查询状态标志有效;如果“或”操作后的逻辑值为0,查询状态标志无效;
[0009] 一级查询单元接收外部查询请求,如果外部查询请求有效,并且查询模式控制单元(1)产生的对应的查询状态标志有效,则以N位为一组,在染色阵列空闲状态表中按照位置号从小到大的顺序查询第一位有效位,如果查询到有效位,则将本一级查询单元的空闲有效标志置为1,并将其位置号锁存在本一级查询单元的锁存器中,否则将空闲有效标志置为0;
[0010] 二级查询单元(6),依次查询M个一级查询单元(2)的空闲有效标志,查找到第一位有效的标志,并将对应的位置号锁存器锁存到REG中;
[0011] 译码单元(7),根据二级查询单元(6)获取的位置号,按照与查询模式控制单元(1)对应的深度查询或广度查询模式,对REG中染色器阵列单元对应的位置号进行译码,从而获取空闲染色单元的行列号。
[0012] 本发明的优点是:本发明提供的一种染色器阵列空闲单元查询电路。通过将深度查询和广度查询进行统一映射,可解决两种查询模式统一查询问题,通过将阵列查询过程分为组内查询和组间查询两个步骤,可提高电路运行频率,同时在组内查询时,多个组的查询可并行进行,提高了查询效率。最后,通过对查询到的状态位进行译码,可以得到两种模式下的空闲单元行列位置。该方法解决了多种查询模式下的染色器阵列空闲单元的高速查询问题。有利于GPU染色任务的实时调度和高效分配和管理。

附图说明

[0013] 图1为本发明的模块图。
[0014] 图2为本发明实施例的模块图。

具体实施方式

[0015] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0016] 一种GPU染色阵列空闲单元查询电路,如图1所示,包括:
[0017] 查询模式控制单元(1)、M个一级查询单元(2)、二级查询单元(6)、译码单元(7);其中,M为处理阵列簇的个数;
[0018] 查询模式控制单元(1)根据查询模式对染色器阵列单元的状态进行重新排列作为查询请求按位置号分成M组,每组发送给一个一级查询单元,其中染色阵列单元组织方式为MxN,M为处理阵列簇的个数,N为每簇中处理器单元的个数,MxN个处理器阵列中每个处理器的空闲标志用1bit来表示,其中空闲标志为1,表示该处理器空闲;空闲标志为0,表示该处理器非空闲。当配置为深度查询时,将染色阵列的空闲标志排列为{S11,S12,..,S1N,S21,S22,…,S2N,…SM1,SM2,…,SMN};当配置为广度查询,将染色阵列的空闲标志排列为{S11,S21,..,SM1,S12,S22,…,SM2,…SN1,SN2,…,SNM};将重新排列的染色阵列单元的空闲标志每N位进行逻辑“或”操作产生查询状态标志,如果“或”操作后的逻辑值为1,查询状态标志有效;如果“或”操作后的逻辑值为0,查询状态标志无效;
[0019] 一级查询单元接收外部查询请求,如果外部查询请求有效,并且查询状态标志有效,则以N位为一组,在染色阵列空闲状态表中按照位置号从小到大的顺序查询第一位有效位,如果查询到有效位,则将本一级查询单元的空闲有效标志置为1,并将其位置号锁存在本一级查询单元的锁存器中,否则将空闲有效标志置为0;
[0020] 二级查询单元(6),依次查询M个一级查询单元(2)的空闲有效标志,查找到第一位有效的标志,并将对应的位置号锁存器锁存到REG中;
[0021] 译码单元(7),根据二级查询单元(6)获取的位置号,按照与查询模式控制单元(1)对应的深度查询或广度查询模式,对REG中染色器阵列单元对应的位置号进行译码,从而获取空闲染色单元的行列号。
[0022] 实施例
[0023] 下面结合附图和具体实施例对本发明的技术方案做进一步详细描述。
[0024] 如图2所示,本发明实施例的一种GPU染色阵列空闲单元查询电路,包括查询模式控制单元(1)、一级查询单元一(21)、一级查询单元二(22)、一级查询单元三(23)、一级查询单元M(24)、二级查询单元(6)、译码单元(7)。
[0025] 查询模式控制单元(1),根据查询模式对染色器阵列单元的状态进行重新排列,并将排列好的送到一级查询单元一(21)、一级查询单元二(22)、一级查询单元三(23)、一级查询单元M(24)。将重新排列的染色阵列单元的空闲标志每N位进行逻辑“或”操作产生查询状态标志,如果“或”操作后的逻辑值为1,查询状态标志有效;如果“或”操作后的逻辑值为0,查询状态标志无效;
[0026] 一级查询单元一(21),其特征在于,如果查询请求有效且查询状态标志有效,在染色阵列状态表中的1~N位中查询第一位有效位,如果查询到有效位,则将VALID_1标志置为1,并将其位置号锁存在锁存器REG_1中,否则将VALID_2标志置为0,之后将结果送(6)二级查询单元。
[0027] 一级查询单元二(22),其特征在于,如果查询请求有效且查询状态标志有效,在染色阵列状态表中的(N+1)~2N位中查询第一位空闲位,如果查询到有效位,则将VALID_2标志置为1,并将其位置号锁存在锁存器REG_2中,否则将VALID_2标志置为0,之后将结果送二级查询单元(6)。
[0028] 一级查询单元三(23),其特征在于,如果查询请求有效且查询状态标志有效,在染色阵列状态表中的(2N+1)~3N位中查询第一位空闲位,如果查询到有效位,则将VALID_3标志置为1,并将其位置号锁存在锁存器REG_3中,否则将VALID_3标志置为0,之后将结果送二级查询单元(6)。
[0029] 一级查询单元M(24),其特征在于,如果查询请求有效且查询状态标志有效,在染色阵列状态表中的(MN-N+1)~MN位中查询第一位空闲位,如果查询到有效位,则将VALID_M标志置为1,并将其位置号锁存在锁存器REG_M中,否则将VALID_M标志置为0,之后将结果送二级查询单元(6)。
[0030] 二级查询单元(6),其特征在于,依次查询{VALID_1,VALID_2,VALID_3,…,VALID_M},查找到第一位有效的标志,并将对应的位置号寄存器锁存到位置寄存器中,将结果送译码单元中(7)。
[0031] 译码单元(7),其特征在于,根据二级查询单元(6)位置寄存器中获取的位置号,按照深度查询和广度查询模式,对其对应的行列号进行译码,从而获取空闲单元的行列号。
[0032] 最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细地说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。