顶点着色器、绘图处理单元及其相关的流程控制方法

文档序号:6610990阅读:217来源:国知局
专利名称:顶点着色器、绘图处理单元及其相关的流程控制方法
技术领域
本发明有关于一种顶点着色器(vertex shader),特别是有关于一种可同时执行多个线程(thread)的顶点着色器。
背景技术
随着绘图应用的复杂度与日俱增,主机平台的能力(包含处理器速度、系统存储器容量以及频宽、以及多工处理能力)也持续不断地提升。为了符合绘图方面不断增加的需求,绘图处理单元(graphics processing unit,GPU),或称为绘图加速器,已经变成计算机系统中的一个整合元件。请注意,于本说明书中,“绘图控制器”一词可表示一绘图处理单元或绘图加速器。在计算机系统中,绘图处理单元控制一个计算机装置例如一个人计算机、工作站、个人数字助理(PDA)或是任何具有一显示屏幕的装置的显示子系统。
图1显示一已知的绘图控制器10的区块图,其包括一顶点着色器12、一设定引擎14以及一像素着色器16。顶点着色器12接收影像的顶点数据,并执行包括转换、光源(lighting)以及剪裁(clipping)处理的顶点处理。设定引擎14接收来自顶点着色器12的顶点数据,并执行几何组合,使得接收到的顶点被重新组合成三角形。一旦用来建立一三维(3D)场景的三角形的每一顶点被安排好后,像素着色器16接着利用不同的像素填满他们,并执行一描图程序(rendering process),其包括决定每一点的颜色、深度值以及在具有纹理(texture)的屏幕上位置。像素着色器16的输出可显示于一显示装置上。
图2显示图1中的顶点着色器12的细部区块图。顶点着色器12为一可编程顶点处理单元,用以在接收到的顶点数据上执行使用这定义的操作。顶点着色器12包括一指令暂存器22、一流程控制器24、一算术逻辑单元(arithmetic logic unit,ALU)管线26以及一输入暂存器28。基本的指令可结合至一使用者定义的程序中,此使用者定义的程序对输入暂存器28中所储存的顶点数据进行操作。这些指令被连续地储存在指令暂存器22中。流程控制器24依序从指令暂存器22中读出这些指令。同时,流程控制器24存取来自一输入暂存器28的顶点数据,并决定从指令暂存器22中所撷取到的指令之中的关联性(dependency)。在检查完关联性后,流程控制器24指派准备送至ALU管线26的指令,以执行包括来源选择、重组(swizzle)、乘法计算、加法计算以及目的地分配的三维绘图计算,其中ALU管线26必要时将从输入暂存器28中读取顶点数据。
储存在指令暂存器22中的指令包括指令I0、I1...In。如果这些指令之中不存在关联性关系,流程控制器24将依序指派指令I0...In至ALU管线26中。图3A显示在4个时槽T0至T3的每一时槽中,指派至ALU管线26的指令顺序且这些指令之中不存在关联性关系。然而,如果指令I1关联于指令I0时,如下列所示I0MOV TR0 C0I1Mad OR0 TR0 IR0 C1;指令I1的来源TR0为指令I0的目的地TR0。在指令I0完成前,指令I1不可能被执行,在ALU管线中将出现管线磁泡(bubble),因此降低了执行的效率。假设每个指令的执行时间允许4个时槽的时间,图3 B显示在每一时槽中指派至ALU管线26的指令,且指令I0以及I1之间存在关联性。明显地,当指令I0以及I1之间存在关联性时,在时间T1~T3之中将出现管线磁泡。因此,需要解决上述问题,以提高已知顶点着色器12的执行效率。

发明内容
有鉴于此,本发明提供一种可同时执行多个线程的顶点着色器以及绘图处理单元。
本发明提供一种顶点着色器,包括一指令暂存器文件、一流程控制器、一线程仲裁器以及一算术逻辑单元管线。指令暂存器文件储存多个指令。流程控制器同时地执行多个线程、自线程的指令暂存器文件中依序读取指令以及存取线程的顶点数据。线程仲裁器检查在线程中的指令的关联性,并依据关联性检查的结果以及一线程执行优先权,选取一欲执行的线程。算术逻辑单元管线接收顶点数据,以执行线程仲裁器所选出的线程的指令,以执行三维绘图计算。
本发明另提供一种绘图处理单元(GPU),包括一顶点着色器、一设定引擎以及一像素着色器。顶点着色器同时地执行多个线程、接收多个影像数据以进行坐标转换以及光源(lighting)处理。设定引擎将自上述顶点着色器所接收到的影像数据组合成三角形。像素着色器接收来自设定引擎的影像数据并对影像数据执行一描图程序,以产生像素数据;其中上述顶点着色器包括一指令暂存器文件,用以连续地储存多个指令;一流程控制器,用以同时地执行多个线程、自上述线程的上述指令暂存器文件中依序读取上述指令、以及存取上述线程的上述影像数据;一线程仲裁器,检查在上述线程中的上述指令的关联性,并依据上述关联性检查的结果以及一线程执行优先权,选取上述欲执行的线程;一算术逻辑单元管线,接收上述影像数据,以执行上述线程仲裁器所选出的上述线程的上述指令,以进行三维绘图计算;以及一输入暂存器文件,用以储存上述影像数据;其中上述流程控制器包括多个线程暂存器文件,用以储存上述指令,其中每一上述线程暂存器文件对应于一线程;其中上述线程仲裁器检查在一线程中的上述指令的关联性,并且当上述线程中的上述指令之中存在关联性时,上述线程仲裁器依据上述线程执行优先权,选取一下一线程,以供上述算术逻辑单元管线使用;其中上述线程执行优先权依据上述影像数据的输入序列顺序决定。
本发明又提供一种流程控制方法,适用于一同时地执行多个线程的顶点着色器。流程控制方法包括读出多个指令以供线程使用、检查在线程中的指令的关联性以及依据关联性检查的结果以及一线程执行优先权,选取一欲执行的线程;以及指派上述选取的线程的上述指令;其中上述选取上述欲执行的线程的步骤包括当上述指令之中存在关联性时,依据上述线程执行优先权选取一下一线程。
本发明所述的顶点着色器、绘图处理单元及其相关的流程控制方法,当顶点着色器要执行的指令中存在关联性时,ALU管线的效能将被改善。


图1显示一已知的绘图处理单元的区块图。
图2显示图1中的顶点着色器的细部区块图。
图3A显示指派至图1中的ALU管线的指令顺序的示意图,且指令之中不存在关联性关系。
图3B显示指派至图1中的ALU管线的指令顺序的示意图,且指令之中存在关联性关系。
图4显示一依据本发明实施例的顶点着色器的区块图。
图5显示如图4中所示的顶点着色器的区块图,其中顶点着色器包括4个线程。
图6A至图6D显示指派至图4的ALU管线中的线程的顺序。
图7显示一依据本发明另一实施例的绘图处理单元的区块图。
图8显示一依据本发明实施例的流程控制方法的流程图,适用于可同时地执行多个线程的一顶点着色器。
具体实施例方式
为使本发明的上述和其他目的、特征和优点能更明显易懂,下文特举出较佳实施例,并配合所附图式,作详细说明如下。
图4显示一依据本发明实施例的顶点着色器40。顶点着色器40包括一指令暂存器文件42、一流程控制器44、一算术逻辑单元(ALU)管线46、一输入暂存器文件4 8以及一线程仲裁器4 9。指令暂存器文件42储存一程序的指令,其中这些指令被连续地储存。输入暂存器文件4 8储存顶点数据。流程控制器44同时地执行多个线程、从指令暂存器文件42中依序读出指令,以供执行中的线程使用,并从输入暂存器文件4 8中存取多个的顶点数据,以供执行中的线程使用。线程仲裁器49检查这些线程中的指令的关联性,并依据此关联性以及一线程执行优先权(priority),排程要被执行的线程。算术逻辑单元(ALU)管线46接收来自输入暂存器文件48的顶点数据,并执行线程仲裁器49所选出的线程的指令,以进行三维(three dimensional,3D)绘图计算,这些三维绘图计算可包含来源选择、重组、乘法计算、加法计算以及目的地分配。
假设流程控制器44提供了4个线程,并且储存在指令暂存器文件42中的一个程序对顶点数据执行使用者定义的操作,此程序包含指令I0至I2,且如图5所示,每一线程的指令I0至I2分别储存在一个对应的线程暂存器文件TH0至TH3中。请注意,在流程控制器44中的每一线程,执行包含相同的指令I0至I2的相同程序,并且顶点数据依据顶点数据的输入序列顺序分配至线程暂存器文件TH0至TH3中。于一实施例中,顶点数据VTx0、VTx1、VTx2以及VTx3可分别地分配至线程暂存器文件TH0、TH1、TH2以及TH3中。为了确保顶点数据的执行序列,线程仲裁器49将依据顶点数据的输入序列,预先决定出线程执行优先权。因此,当接收到线程th0至th3的指令时,线程仲裁器49先决定线程th0至th3的优先权。于此实施例中,由于线程th0至th3对应的顶点数据分别为VTx0~VTx3,线程执行优先权列表由高排到低分别为th0->th1->th2->th3。因此,线程仲裁器49将先选取线程th0。在指派线程th0中的指令至ALU管线46之前,线程仲裁器49检查在线程th0中的所有指令的关联性,并且发现在这些指令之中存在关联性,因此线程仲裁器49便依据线程执行优先权列表,选取一下一个线程(即th1)给ALU管线46,并调整线程执行优先权列表为th1->th2->th3->th0。图6A至图6D显示在每一指令的执行时间为4T时,每一时槽中ALU管线里的线程以及指令的执行顺序。如图6A所示,于时间T0时,由于每一线程的指令依序储存至线程暂存器文件中,在指令I0中不存在指令关联性,因此线程仲裁器49选取了线程th0,并指派线程th0中的指令I0。于时间T1时,线程仲裁器49原本应指派线程th0中的指令I1至ALU管线46,然而,由于指令I1关联于指令I0,因此线程仲裁器49便依据线程执行优先权列表选取了线程th1,并指派线程th1中的指令I0至ALU管线46,如图6B所示。类似地,于时间T2时,如图6C所示,线程仲裁器49选取了线程th2,并指派线程th2中的指令I0至ALU管线46。图6D显示关于ALU管线46的线程以及指令的执行序列。比较图3B以及图6D后可以发现,图3B中的管线磁泡并没有出现在使用本发明实施例的顶点着色器40中,表示顶点着色器40的效能改善了。
图7显示一依据本发明另一实施例的绘图处理单元(GPU)70的示意图。绘图处理单元70类似于图1的绘图处理单元10,差别在于顶点着色器40。图7中具有与图1相同的参考号码的元件,用以表示执行相同的功能,因此细节在此省略。绘图处理单元70使用了如图4所示的依据本发明实施例的顶点着色器40。关于顶点着色器40的操作与前述相同,因此细节也在此省略。
图8显示一依据本发明实施例的流程控制方法800的流程图,适用于同时地执行多个线程的一顶点着色器。首先,接收多个指令以供上述线程使用(步骤S82),其中所有线程执行相同的指令集,并且顶点数据依据顶点数据的输入序列顺序分配至每一线程。接着,依据一既定的优先权,选取一欲执行的线程(步骤S84)。其次,检查在被选取的线程中的指令的关联性(步骤S86)。若在这些指令之中存在关联性,便回到步骤S84,依据既定的优先权,选取另一线程来执行。若在这些指令之中并不存在关联性,便指派在选取的线程中的指令(步骤S88)。
于本发明实施例中,一顶点着色器可同时地执行多个线程,在每一线程对应的顶点数据上。因此,特别是当顶点着色器要执行的指令中存在关联性时,顶点着色器中的ALU管线的效能将被改善。因此,当在一个线程的指令中发现关联性时,顶点着色器可执行其他线程的指令。
上述说明提供多种不同实施例或应用本发明的不同特性的实施例。实例中的特定元件以及制程用以帮助阐释本发明的主要精神及目的,当然本发明不限于此。
以上所述仅为本发明较佳实施例,然其并非用以限定本发明的范围,任何熟悉本项技术的人员,在不脱离本发明的精神和范围内,可在此基础上做进一步的改进和变化,因此本发明的保护范围当以本申请的权利要求书所界定的范围为准。
附图中符号的简单说明如下10绘图控制器12顶点着色器14设定引擎16像素着色器22指令暂存器24流程控制器26算术逻辑单元(ALU)管线28输入暂存器I0、I1...In指令t0-t3时槽40顶点着色器42指令暂存器文件44流程控制器46算术逻辑单元管线48输入暂存器文件49线程仲裁器TH0-TH3线程暂存器文件VTx0、VTx1、VTx2、VTx3顶点数据th0-th4线程70绘图处理单元800流程控制方法S82、S84、S86、S88步骤。
权利要求
1.一种顶点着色器,其特征在于,包括一指令暂存器文件,用以连续地储存多个指令;一流程控制器,可同时地执行多个线程、自上述线程的上述指令暂存器文件中依序读取上述指令、以及存取上述线程的顶点数据;一线程仲裁器,检查在上述线程中的上述指令的关联性,并依据上述关联性检查的结果以及一线程执行优先权,选取一欲执行的线程;一算术逻辑单元管线,接收上述顶点数据,以执行上述线程仲裁器所选出的上述线程的上述指令,以执行三维绘图计算;以及一输入暂存器文件,用以储存上述顶点数据;其中上述流程控制器包括多个线程暂存器文件,用以储存上述指令,其中每一上述线程暂存器文件对应于一线程;其中上述线程仲裁器检查在一线程中的上述指令的关联性,并且当上述线程中的上述指令之中存在关联性时,上述线程仲裁器依据上述线程执行优先权,选取一下一线程,以供上述算术逻辑单元管线使用。
2.根据权利要求1所述的顶点着色器,其特征在于,上述线程执行优先权依据上述顶点数据的输入序列顺序决定。
3.根据权利要求1所述的顶点着色器,其特征在于,上述顶点数据依据上述顶点数据的输入序列顺序,分配至每一上述线程暂存器文件。
4.根据权利要求1所述的顶点着色器,其特征在于,由上述算术逻辑单元管线所执行的三维计算包括由下列群组所选出的一组合来源选择;重组;乘法运算;加法运算;以及目的地分配。
5.一种绘图处理单元,其特征在于,包括一顶点着色器,用以同时地执行多个线程、接收多个影像数据以进行坐标转换以及光源处理;一设定引擎,将自上述顶点着色器所接收到的上述影像数据组合成三角形;以及一像素着色器,接收来自上述设定引擎的上述影像数据并对上述影像数据执行一描图程序以产生像素数据;其中上述顶点着色器包括一指令暂存器文件,用以连续地储存多个指令;一流程控制器,用以同时地执行多个线程、自上述线程的上述指令暂存器文件中依序读取上述指令、以及存取上述线程的上述影像数据;一线程仲裁器,检查在上述线程中的上述指令的关联性,并依据上述关联性检查的结果以及一线程执行优先权,选取上述欲执行的线程;一算术逻辑单元管线,接收上述影像数据,以执行上述线程仲裁器所选出的上述线程的上述指令,以进行三维绘图计算;以及一输入暂存器文件,用以储存上述影像数据;其中上述流程控制器包括多个线程暂存器文件,用以储存上述指令,其中每一上述线程暂存器文件对应于一线程;其中上述线程仲裁器检查在一线程中的上述指令的关联性,并且当上述线程中的上述指令之中存在关联性时,上述线程仲裁器依据上述线程执行优先权,选取一下一线程,以供上述算术逻辑单元管线使用;其中上述线程执行优先权依据上述影像数据的输入序列顺序决定。
6.根据权利要求5所述的绘图处理单元,其特征在于,上述影像数据依据上述影像数据的输入序列顺序,分配至上述线程暂存器文件。
7.一种流程控制方法,适用于一同时地执行多个线程的顶点着色器,其特征在于,包括下列步骤读出多个指令以供上述线程使用;检查在上述线程中的上述指令的关联性;依据上述关联性检查的结果以及一线程执行优先权,选取一欲执行的线程;以及指派上述选取的线程的上述指令;其中上述选取上述欲执行的线程的步骤包括当上述指令之中存在关联性时,依据上述线程执行优先权选取一下一线程。
8.根据权利要求7所述的流程控制方法,其特征在于,上述线程执行优先权依据上述顶点数据的输入序列顺序决定。
9.根据权利要求7所述的流程控制方法,其特征在于,更包括依据上述顶点数据的输入序列顺序,将上述顶点数据分配至每一上述线程暂存器文件。
全文摘要
本发明提供一种顶点着色器、绘图处理单元及其相关的流程控制方法,特别涉及一种顶点着色器,包括一指令暂存器文件、一流程控制器、一线程仲裁器以及一算术逻辑单元管线。指令暂存器文件储存多个指令。流程控制器同时地执行多个线程、自线程的指令暂存器文件中依序读取指令以及存取线程的顶点数据。线程仲裁器检查在线程中的指令的关联性,并依据关联性检查的结果以及一线程执行优先权,选取一欲执行的线程。算术逻辑单元管线接收顶点数据,以执行线程仲裁器所选出的线程的指令,以进行三维绘图计算。本发明所述的顶点着色器、绘图处理单元及其相关的流程控制方法,当顶点着色器要执行的指令中存在关联性时,ALU管线的效能将被改善。
文档编号G06T15/00GK101082982SQ20071012977
公开日2007年12月5日 申请日期2007年7月25日 优先权日2007年2月16日
发明者王科方, 黄启耕, 钟贤助 申请人:威盛电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1