可执行多线程的顶点着色器、图形处理器及其控制方法技术

技术编号:2946706 阅读:219 留言:0更新日期:2012-04-11 18:40
本发明专利技术的一实施例提出一种逻辑单元,适用于在顶点数据上执行多个线程。逻辑单元包括宏指令寄存器文件、流程控制指令寄存器文件、以及流程控制器。宏指令寄存器文件用以储存多个宏块,每个宏块包括多个指令。流程控制指令寄存器文件用以储存多个流程控制指令,每个流程控制指令包括被呼叫的至少一宏块以及被呼叫的宏块的相依性信息。流程控制器用以从流程控制指令寄存器文件中依序检索流程控制指令,根据检索到的流程控制指令及流程控制指令的相依性信息决定宏指令寄存器文件中要执行的至少一宏块,用既定的线程调度策略选择该等线程之一者执行既定的该宏块,以及存取该线程的顶点数据。

【技术实现步骤摘要】

本专利技术是有关于一种顶点着色器,特别是有关于一种在单一顶点数据上同时执行多个线程的顶点着色器。
技术介绍
当图形应用的复杂度增加,主机平台的能力(包含处理速度、系统存储器容量与频宽、以及多处理器)也不停地增加。为了满足图形需求的增加,图形处理器(graphics processing units,GPUs),有时也称作图形加速器(graphic accelerator),成为计算机系统中的一个组成元件。在过去的揭露中,图形控制器(graphics controller)一词关连到图形处理器或图形加速器(graphic accelerator)两者其一。在计算机系统中,图形处理器控制计算机的显示子系统,例如个人计算机(personal computer)、工作站、个人数字助理(personal digital assistant,PDA)、或任何具有显示屏幕的装置。图1是显示一个传统的图形处理器10,由顶点着色器12、设置引擎14、以及像素着色器16所组成。顶点着色器12接收图像的顶点数据并执行顶点处理,其可能包含转换(transforming)、光照(lighting)以及裁取(clipping)等步骤。设置引擎14接收来自顶点着色器12的顶点数据并执行几何组合,所接收到的顶点数据会被重组成三角形。一旦安排好每一个用于创造三维(3D)景象的三角形,像素着色器16开始将其填满个别的像素并且执行一个打底的程序,其包括决定每个像素的颜色、深度数值以及在屏幕上的位置与纹理。像素着色器16的输出可以显示于显示装置上。图2是显示图1所示的顶点着色器12的详细方块图。顶点着色器12是一个可编程的顶点处理单元,在收到的顶点数据上执行使用者定义的运算。顶点着色器12由指令寄存器(instruction register)22、流程控制器(flowcontroller)24、算术逻辑单元(arithmetic logic unit,ALU)管线26以及输入寄存器(input register)28所组成。基本的指令可被结合成使用者定义的程序,针对储存于输入寄存器28中的顶点数据执行运算。这些指令储存在指令寄存器22中。从指令寄存器22中依序读出指令的同时,流程控制器24从输入寄存器28中取出顶点数据并且决定从指令寄存器22中取得的指令之间的相依性。在相依性检查之后,流程控制器24分派已做好准备给算术逻辑单元管线26的指令执行3D图形计算,包括来源选择(source selection)、调配(swizzle)、乘法(multiplication)、加法(addition)、以及目地分布(destination distribution),在此算术逻辑单元管线26必须从输入寄存器28读取顶点数据。储存于指令寄存器22中的指令由指令I0、I1...等所组成。若在这些指令之间都不存在相依性,流程控制器24就从指令I0开始轮流分派指令到逻辑单元管线26。图3A是显示在四个时槽T0到T3的周期中,每个时槽分派到逻辑单元管线26的指令顺序,这些指令之间并没有相依性。然而,若指令I1与指令I0相依如下所示I0Mov TRO C O;I1Mad ORO TRO IRO C1;指令I1的来源TRO是指令I0的目的TRO。当必须等到指令I0完成,指令I1才能执行时,逻辑单元管线26会开始产生「气泡」,导致执行效率降低。假设每个指令的执行时间持续四个时槽,图3B是显示在每个时槽分派给逻辑单元管线26的指令,其中指令I0与指令I1之间具有相依性。显然地当指令I0与指令I1之间具有相依性时,气泡会出现在时间T1~T3。因此,需要一种能解决上述问题的设计,以改进传统顶点着色器12的执行效率。
技术实现思路
本专利技术是有关于一种在顶点数据上同时执行多个线程的顶点着色器。在本专利技术一实施例中,逻辑单元适用于在顶点数据上同时执行多个线程,包括宏指令寄存器文件,用以储存多个宏块,每个宏块包括多个指令;流程控制指令寄存器文件,用以储存多个流程控制指令,每个流程控制指令包括至少一被呼叫的宏块以及该被呼叫的宏块的相依性信息;以及流程控制器,用以从该流程控制指令寄存器文件中依序检索流程控制指令,依照该检索到的流程控制指令及其相依性信息决定至少一该宏指令寄存器文件中要执行的宏块,用既定的线程调度策略(schedule policy)选择该等线程中的一线程执行该既定的宏块,以及存取被选择的该线程所需的顶点数据。再者,本专利技术的另一实施例提出一种图形处理器(GPU),此图形处理器包括顶点着色器,适用于在一部分图像数据上,同时执行多个给多个由指令所组成的宏决的线程,其中每个宏块会被每个相对应的线程执行;设置引擎,用于将从该顶点着色器接收到的该图像数据组合成三角形;以及像素着色器,用于接收来自该设置引擎的该图像数据,并对该图像数据进行打底程序以产生像素数据。再者,本专利技术的再一实施例提出一种流程控制方法,适用于同时在顶点数据上,以及多个宏块与多个流程控制指令执行多个线程,其中每个宏块包括多个指令,每个流程控制指令呼叫至少一该宏块,并包括该被呼叫宏块的相依性信息,该流程控制方法包括检索该流程控制指令,根据该检索到的流程控制指令与该相依性信息决定要被执行的宏块,以及根据既定的线程调度策略为该被决定的宏块选择要被执行的线程,并且为该被选择的线程存取该顶点数据。附图说明图1是显示传统的图形处理器的方块图。图2是显示图1中的顶点着色器的方块图。图3A是显示当指令之间没有相依性时,分派到图1中算术逻辑单元管线的指令顺序概念图。图3B是显示当指令之间有相依性时,分派到图1中算术逻辑单元管线的指令顺序概念图。图4是显示根据本专利技术一实施例所述的顶点着色器的方块图。图5是显示图4中流程控制指令寄存器的流程控制指令格式概念图。图6是显示图4中顶点着色器的方块图,其由6个线程所组成。图7是显示图4中宏块与流程控制指令寄存器的范例。图8A~8D是显示分派到图4中算术逻辑单元管线的指令顺序与宏块以及流程控制指令寄存器的概念图。图9是显示依照本专利技术另一实施例所述的图形处理器的方块图。图10是显示依照本专利技术的另一顶点着色器实施例的流程控制法的流程图,其顶点着色器在顶点数据上同时执行多个线程。图11是显示依照本专利技术的另一顶点看色器实施例的流程控制法的许细流程图。具体实施例方式为使本专利技术的上述目的、特征和优点能更明显易懂,下文特举一较佳实施例,并配合所附图式,作详细说明如下实施例图4是显示根据本专利技术一实施例所述的顶点着色器40。顶点着色器40由宏指令寄存器文件41、流程控制指令寄存器文件42、流程控制器44、算术逻辑单元管线46以及输入寄存器48所组成。在此,宏指令寄存器文件41与流程控制指令寄存器文件42可分别包括多个寄存器。宏指令寄存器文件41储存多个指令宏块,每个宏块由至少一个指令所组成。由顶点着色器40对顶点数据执行的转换与光照运算可被分类为数个与宏块函数有关的算术运算指令宏块。例如,一个宏块可能包括执行转换运算的指令,另一个宏块可能包括执行光照运算的指令。转换与光照的运算可以分类为其它函数,例如光的数量、光的方向、点光源等。此外,宏块可由非先占式与先占式宏块组成,其中非先占式宏块的指令彼此互相本文档来自技高网
...

【技术保护点】
一种逻辑单元,适用于在顶点数据上同时执行多个线程,包括:    宏指令寄存器文件,用以储存多个宏块,每个宏块包括多个指令;    流程控制指令寄存器文件,用以储存多个流程控制指令,每个流程控制指令包括被呼叫的至少一宏块以及被呼叫的该宏块的相依性信息;以及    流程控制器,用以从该流程控制指令寄存器文件中依序检索该等流程控制指令,根据检索到的该流程控制指令及该流程控制指令的相依性信息决定该宏指令寄存器文件中要执行的该宏块之一者,用既定的线程调度策略选择该等线程之一者执行既定的该宏块,以及存取被选择的该线程的顶点数据。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:王科方钟贤助黄启耕
申请(专利权)人:威盛电子股份有限公司
类型:发明
国别省市:71[中国|台湾]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利