首页 / 专利库 / 专利权 / 优先权文件 / 顶点着色器、绘图处理单元及其相关的流程控制方法

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

阅读:681发布:2020-05-21

专利汇可以提供顶点着色器、绘图处理单元及其相关的流程控制方法专利检索,专利查询,专利分析的服务。并且本 发明 提供一种 顶点 着色器 、绘图处理单元及其相关的流程控制方法,特别涉及一种 顶点着色器 ,包括一指令暂存器文件、一流程 控制器 、一线程仲裁器以及一 算术逻辑单元 管线。指令暂存器文件储存多个指令。流程控制器同时地执行多个线程、自线程的指令暂存器文件中依序读取指令以及存取线程的顶点数据。线程仲裁器检查在线程中的指令的关联性,并依据关联性检查的结果以及一线程执行优先权,选取一欲执行的线程。算术逻辑单元管线接收顶点数据,以执行线程仲裁器所选出的线程的指令,以进行三维绘图计算。本发明所述的顶点着色器、绘图处理单元及其相关的流程控制方法,当顶点着色器要执行的指令中存在关联性时,ALU管线的效能将被改善。,下面是顶点着色器、绘图处理单元及其相关的流程控制方法专利的具体信息内容。

1.一种顶点着色器,其特征在于,包括:
一指令暂存器文件,用以连续地储存多个指令;
一流程控制器,可同时地执行多个线程、自上述线程的上 述指令暂存器文件中依序读取上述指令、以及存取上述线程的 顶点数据;
一线程仲裁器,检查在上述线程中的上述指令的关联性, 并依据上述关联性检查的结果以及一线程执行优先权,选取一 欲执行的线程;
算术逻辑单元管线,接收上述顶点数据,以执行上述线 程仲裁器所选出的上述线程的上述指令,以执行三维绘图计算; 以及
一输入暂存器文件,用以储存上述顶点数据;
其中上述流程控制器包括多个线程暂存器文件,用以储存 上述指令,其中每一上述线程暂存器文件对应于一线程;
其中上述线程仲裁器检查在一线程中的上述指令的关联 性,并且当上述线程中的上述指令之中存在关联性时,上述线 程仲裁器依据上述线程执行优先权,选取一下一线程,以供上 述算术逻辑单元管线使用。
2.根据权利要求1所述的顶点着色器,其特征在于,上述 线程执行优先权依据上述顶点数据的输入序列顺序决定。
3.根据权利要求1所述的顶点着色器,其特征在于,上述 顶点数据依据上述顶点数据的输入序列顺序,分配至每一上述 线程暂存器文件。
4.根据权利要求1所述的顶点着色器,其特征在于,由上 述算术逻辑单元管线所执行的三维计算包括由下列群组所选出 的一组合:
来源选择;
重组;
乘法运算;
加法运算;以及
目的地分配。
5.一种绘图处理单元,其特征在于,包括:
一顶点着色器,用以同时地执行多个线程、接收多个影像 数据以进行坐标转换以及光源处理;
一设定引擎,将自上述顶点着色器所接收到的上述影像数 据组合成三形;以及
像素着色器,接收来自上述设定引擎的上述影像数据并 对上述影像数据执行一描图程序以产生像素数据;
其中上述顶点着色器包括:
一指令暂存器文件,用以连续地储存多个指令;
一流程控制器,用以同时地执行多个线程、自上述线 程的上述指令暂存器文件中依序读取上述指令、以及存取 上述线程的上述影像数据;
一线程仲裁器,检查在上述线程中的上述指令的关联 性,并依据上述关联性检查的结果以及一线程执行优先权, 选取欲执行的线程;
一算术逻辑单元管线,接收上述影像数据,以执行上 述线程仲裁器所选出的上述线程的上述指令,以进行三维 绘图计算;以及
一输入暂存器文件,用以储存上述影像数据;
其中上述流程控制器包括多个线程暂存器文件,用以 储存上述指令,其中每一上述线程暂存器文件对应于一线 程;
其中上述线程仲裁器检查在一线程中的上述指令的关 联性,并且当上述线程中的上述指令之中存在关联性时, 上述线程仲裁器依据上述线程执行优先权,选取一下一线 程,以供上述算术逻辑单元管线使用;
其中上述线程执行优先权依据上述影像数据的输入序 列顺序决定。
6.根据权利要求5所述的绘图处理单元,其特征在于,上 述影像数据依据上述影像数据的输入序列顺序,分配至上述线 程暂存器文件。
7.一种流程控制方法,适用于一同时地执行多个线程的顶 点着色器,其特征在于,包括下列步骤:
读出多个指令以供上述线程使用;
检查在上述线程中的上述指令的关联性;
依据上述关联性检查的结果以及一线程执行优先权,选取 一欲执行的线程;以及
指派上述选取的线程的上述指令;
其中上述选取上述欲执行的线程的步骤包括当上述指令之 中存在关联性时,依据上述线程执行优先权选取一下一线程。
8.根据权利要求7所述的流程控制方法,其特征在于,上 述线程执行优先权依据上述顶点数据的输入序列顺序决定。
9.根据权利要求7所述的流程控制方法,其特征在于,更 包括依据上述顶点数据的输入序列顺序,将上述顶点数据分配 至每一上述线程暂存器文件。

说明书全文

技术领域

发明有关于一种顶点着色器(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时,如下列所示:
I0:MOV TR0 C0
I1:Mad OR0 TR0 IR0 C1;
指令I1的来源TR0为指令I0的目的地TR0。在指令I0完成前, 指令I1不可能被执行,在ALU管线中将出现管线磁泡(bubble), 因此降低了执行的效率。假设每个指令的执行时间允许4个时槽 的时间,图3B显示在每一时槽中指派至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、一输入暂存器文件48以及一线程仲裁器49。 指令暂存器文件42储存一程序的指令,其中这些指令被连续地 储存。输入暂存器文件48储存顶点数据。流程控制器44同时地 执行多个线程、从指令暂存器文件42中依序读出指令,以供执 行中的线程使用,并从输入暂存器文件48中存取多个的顶点数 据,以供执行中的线程使用。线程仲裁器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便依据线程执行优先权列 表,选取一下一个线程(即th 1)给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:步骤
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈