1.一种操作图形处理单元的方法,该图形处理单元包括执行程序指令以进行图形着色操作的可编程执行单元,以及遍及至少两个寄存器组分布的多个寄存器,所述多个寄存器用于由所述可编程执行单元执行的执行线程使用;并且其中:
所述图形处理单元能够将至少两个不同的寄存器文件映射配置用于将所述寄存器映射到执行线程;
所述方法包括以下步骤:
针对对于所述图形处理单元的所述可编程执行单元中的一组线程要执行的一组指令,确定要将所述至少两个不同的寄存器文件映射配置中的哪一个用于对于所述一组线程的所述一组指令;以及
当执行对于所述一组线程的所述一组指令时,根据所确定的寄存器文件映射配置来使用所述寄存器。
2.根据权利要求1所述的方法,其中,存在被配置以供第一大小的数据值使用的一个寄存器文件映射配置,以及被配置以供不同的第二大小的数据值使用的另一个寄存器文件映射配置。
3.根据权利要求2所述的方法,其中,所述寄存器文件映射被配置为使得对于所述寄存器文件映射配置被配置为一起使用的大小的数据值的寄存器访问将仅需要访问一个寄存器组。
4.根据前述权利要求中的任一项所述的方法,其中:
所述寄存器存储特定大小的数据值;并且
存在:
被配置以供所述特定大小的数据值使用的一个寄存器文件映射配置,在该一个寄存器文件映射配置中,所述寄存器文件映射将来自同一组的各个寄存器映射到能够在所述可编程执行单元中作为线程组被处理的一组线程中的每个线程;以及
被配置以供是所述特定大小两倍的数据值使用的第二寄存器文件映射配置,在所述第二寄存器文件映射配置中,来自同一寄存器组的各个成对的寄存器被分配以供给定执行线程使用。
5.根据前述权利要求中的任一项所述的方法,其中:
根据所述寄存器文件映射配置中的一个寄存器文件映射配置来配置所述寄存器组中的一个子集的寄存器,并且根据所述寄存器文件映射配置中的另一个寄存器文件映射配置来配置所述寄存器组中的其它寄存器。
6.根据前述权利要求中的任一项所述的方法,其中:
在逐个指令或者逐组多个指令的基础上做出要使用的所述寄存器文件映射配置的确定和选择。
7.根据前述权利要求中的任一项所述的方法,其中:
针对要执行所述着色器程序的多组多个线程来进行要使用的所述寄存器文件映射配置的确定和选择。
8.根据前述权利要求中的任一项所述的方法,所述方法包括以下步骤:
对要由所述可编程执行单元执行的着色器程序进行分析,并且从中确定要使用哪个寄存器文件映射配置。
9.根据前述权利要求中的任一项所述的方法,其中:
针对对于所述图形处理单元的所述可编程执行单元中的一组线程要执行的一组指令,确定要将所述至少两个不同的寄存器文件映射配置中的哪一个用于对于所述一组线程的所述一组指令的步骤包括:
基于当正在执行着色器程序时其它执行线程对所述寄存器的使用来确定要将所述至少两个不同的寄存器文件映射配置中的哪一个寄存器文件映射配置用于所述一组线程。
10.根据前述权利要求中的任一项所述的方法,所述方法包括以下步骤:
监测在所述可编程执行单元中正在执行着色器程序的执行线程对寄存器的使用;以及
基于所监测的正在执行所述着色器程序的执行线程对寄存器的使用,确定要将所述至少两个不同的寄存器文件映射配置中的哪一个寄存器文件映射配置用于执行所述着色器程序的后期线程。
11.一种编译方法,该编译方法对程序进行编译以生成用于图形处理流水线的可编程执行单元的指令,所述可编程执行单元执行指令以进行图形着色操作;
所述方法包括以下步骤:
针对要由图形处理单元的可编程执行单元执行的着色器程序中的一组至少一个指令,确定要将所述图形处理单元能够使用的至少两个不同的寄存器文件映射配置中的哪一个寄存器文件映射配置用于所述一组指令;以及
当执行所述一组指令时,使得所述执行单元根据所确定的寄存器文件映射配置来使用所述寄存器。
12.一种图形处理系统,该图形处理系统包括:
图形处理单元,该图形处理单元包括:
可编程执行单元,所述可编程执行单元执行程序指令以进行图形着色操作;以及
多个寄存器,所述多个寄存器遍及至少两个寄存器组进行分布,用于由所述可编程执行单元执行的执行线程使用;
其中:
所述图形处理单元能够将至少两个不同的寄存器文件映射配置用于将所述寄存器映射到执行线程;并且
所述图形处理系统被配置为:
针对对于所述图形处理单元的所述可编程执行单元中的一组线程要执行的一组指令,确定要将所述至少两个不同的寄存器文件映射配置中的哪一个用于对于所述一组线程的所述一组指令;以及
当执行对于所述一组线程的所述一组指令时,使得所述图形处理单元根据所确定的寄存器文件映射配置来使用所述寄存器。
13.根据权利要求12所述的系统,其中,存在被配置以供第一大小的数据值使用的一个寄存器文件映射配置,以及被配置以供不同的第二大小的数据值使用的另一个寄存器文件映射配置。
14.根据权利要求13所述的系统,其中,所述寄存器文件映射被配置为使得对于所述寄存器文件映射配置被配置为一起使用的大小的数据值的寄存器访问将仅需要访问一个寄存器组。
15.根据权利要求12至14中的任一项所述的系统,其中:
所述寄存器存储特定大小的数据值;并且
存在:
被配置以供所述特定大小的数据值使用的一个寄存器文件映射配置,在该一个寄存器文件映射配置中,所述寄存器文件映射将来自同一组的各个寄存器映射到能够在所述可编程执行单元中作为线程组被处理的一组线程中的每个线程;以及
被配置以供是所述特定大小两倍的数据值使用的第二寄存器文件映射配置,在所述第二寄存器文件映射配置中,来自同一寄存器组的各个成对的寄存器被分配以供给定执行线程使用。
16.根据权利要求12至15中的任一项所述的系统,其中:
根据所述寄存器文件映射配置中的一个寄存器文件映射配置来配置所述寄存器组中的一个子集的寄存器,并且根据所述寄存器文件映射配置中的另一个寄存器文件映射配置来配置所述寄存器组中的其它寄存器。
17.根据权利要求12至16中的任一项所述的系统,其中:
在逐个指令或者逐组多个指令的基础上做出要使用的所述寄存器文件映射配置的确定和选择。
18.根据权利要求12至17中的任一项所述的系统,其中:
针对要执行所述着色器程序的多组多个线程来进行要使用的所述寄存器文件映射配置的确定和选择。
19.根据权利要求12至18中任一项所述的系统,其中,所述系统被配置为:
对要由所述可编程执行单元执行的着色器程序进行分析,并且从中确定要使用哪个寄存器文件映射配置。
20.根据权利要求12至19中任一项所述的系统,其中,所述系统被配置为:
通过如下方式,针对对于所述图形处理单元的所述可编程执行单元中的一组线程要执行的一组指令,确定要将所述至少两个不同的寄存器文件映射配置中的哪一个用于对于所述一组线程的所述一组指令,即,所述方式为:
基于当正在执行着色器程序时其它执行线程对所述寄存器的使用来确定要将所述至少两个不同的寄存器文件映射配置中的哪一个寄存器文件映射配置用于所述一组线程。
21.根据权利要求12至20中任一项所述的系统,其中,所述系统被配置为:
监测在所述可编程执行单元中正在执行着色器程序的执行线程对寄存器的使用;以及
基于所监测的正在执行所述着色器程序的执行线程对寄存器的使用,确定要将所述至少两个不同的寄存器文件映射配置中的哪一个寄存器文件映射配置用于执行所述着色器程序的后期线程。
22.一种编译器,该编译器对程序进行编译以生成用于图形处理流水线的可编程执行单元的指令,所述可编程执行单元执行指令以进行图形着色操作;
其中,所述编译器被配置为针对要由图形处理单元的执行单元执行的着色器程序中的一组至少一个指令,执行以下步骤:
确定要将所述图形处理单元能够使用的至少两个不同的寄存器文件映射配置中的哪一个寄存器文件映射配置用于所述一组指令;以及
当执行所述一组指令时,使得所述执行单元根据所确定的寄存器文件映射配置来使用所述寄存器。
23.一种计算机程序,该计算机程序包括计算机软件代码,当该程序在数据处理系统上运行时,所述计算机软件代码用于执行根据权利要求1至11中的任一项所述的方法。
24.一种基本上如在本文中参照附图中的任何一个附图进行描述的操作图形处理单元的方法。
25.一种基本上如在本文中参照附图中的任何一个附图进行描述的对程序进行编译的方法。
26.一种基本上如在本文中参照附图中的任何一个附图进行描述的图形处理系统。
27.一种基本上如在本文中参照附图中的任何一个附图进行描述的编译器。