可缩放着色器结构的制作方法

文档序号:6655866阅读:164来源:国知局
专利名称:可缩放着色器结构的制作方法
技术领域
本发明涉及计算机系统,且更特定地说,涉及计算机着色。
背景技术
图形处理是现代高性能计算系统的重要特征。在图形处理中,数学程序经实施以在显示器上呈现或描绘图形图元(例如三角形或矩形),以产生所需视觉图像。实时图形处理是基于图形图元的高速处理来产生视觉上令人满意的移动图像。
早期图形系统限于显示由具有光滑表面的图形图元组成的图像对象。也就是说,视觉纹理、突起、划痕或其它表面特征不在图形图元中模拟。为了增强图像质量,引入真实世界属性的纹理映射。一般来说,纹理映射是将图像映射到图形图元表面以建立复杂图像的外观而无需与呈现对象的实际三维细节相关联的高计算成本。
通常通过使用应用程序界面(API)来执行图形处理,所述API提供一可在多个平台、操作系统上运行的标准软件界面和硬件。API的实例包括开放式图形库(OpenGL)和D3DTM。一般来说,此类开放式应用程序包括一预定的标准化组的命令,其由相关硬件执行。举例来说,在支持OpenGL标准的计算机系统中,操作系统和应用软件程序可根据所述标准来进行调用,而无需知道任何与系统硬件有关的细节。应用程序编写者可使用API来设计其应用程序的视觉方面,而无需关注将如何实施其命令。
API在由专用硬件支持时是特别有利的。事实上,通常通过使用专用图形处理单元(GPU)来执行图形图像的高速处理,所述GPU被制造在半导体衬底上。有利地,一GPU可经设计并用以在对其它系统资源具有微小影响的情况下快速且准确地处理命令。
图1说明图形系统100的简化方框图,所述图形系统100包括一图形处理单元102。如图所示,所述图形处理单元102具有一主机接口/前端104。所述主机接口/前端104从中央处理单元103接收原始图形数据,所述中央处理单元103运行一存储在记忆体105中的应用程序。所述主机接口/前端104缓冲输入信息且将所述信息提供到一几何引擎106。所述几何引擎能通过一帧缓冲器接口116来存取一帧缓冲器存储器120。几何引擎106产生、按比例缩放、旋转存储在帧缓冲器存储器120中的“模型”坐标中的图形图元的三维顶点,且将其投影到二维帧缓冲器坐标中。通常,三角形被用作为三维对象的图形图元,但矩形通常用于2维对象(例如文本显示)。
来自几何引擎106的图形图元的顶点的二维帧缓冲器坐标被应用到一光栅器108。所述光栅器108识别图形图元内所有像素的位置。此通常沿在限定图形图元的线之间延伸的光栅(水平)线来执行。光栅器108的输出被称为光栅化像素数据。
光栅化像素数据被应用到一着色器110,所述着色器通过使用一着色器程序(指令序列)来处理输入数据(代码、位置、纹理、条件、常数等)以产生输出数据。尽管相对于图形处理来描述着色器,但一般来说,着色器可用于多种其它功能。可认为着色器是多种处理能力的集合,其能(例如)通过并行处理数据而同时处理大量数据。
着色器110包括一纹理引擎112,所述纹理引擎112修改光栅化像素数据以得到所需纹理和光学特征。可通过使用以非常高速度来处理大量数据的硬件管线来实施纹理引擎112,所述纹理引擎112能存取存储在帧缓冲器存储器120中的数据。着色像素数据接着被发送到一光栅操作处理器114(图1中光栅op),所述光栅操作处理器114视情况对着色像素数据执行额外处理。结果像素数据由帧缓冲器接口116存储在帧缓冲器存储器120中。帧像素数据可用于各种处理,例如在显示器122上显示。
可编程着色器实现可达成视觉效应中的灵活性,且可降低图形功能变得可用与所述功能被标准化为图形API的一部分之间的时间。可编程着色器可具有一其中可实施标准图形API命令的标准API模式和一其中可编程新图形特征的非标准模式。
尽管着色器已证明其自身为有用的,但对于着色器性能的需求已超过了现有着色器的能力。尽管改进现有着色器可解决所述需求中的一些,但将难以实施此类改进。另外,预计未来需要将超过由改进的现有着色器结构和实施可达成的能力。因此,一种新型着色器结构将比较有利。一种实现软件编程的图形特征的新型高性能可编程着色器结构将更为有利。一种可根据需要来按比例缩放以满足着色器性能要求且可经扩展以实现高级图形功能性的新型高性能可编程着色器结构也将比较有利。
另外,由于GPU是以高速操作且产生大量热的大型复杂半导体元件,且由于着色器代表GPU的重要区域,因而着色器故障引起很大百分比的GPU芯片报废。具有启用或停用着色器的功能部分且同时仍提供着色器处理功能的能力的着色器结构将比较有利。

发明内容
本发明的原理供新型、有用且非明显可缩放着色器结构使用。此类着色器结构可根据需要来按比例放大或缩小,以满足性能需求且提供具有降低或增强的性能的系统。
本发明的原理的一些实施例可采用包括多个着色器管线的高性能可编程着色器的形式,其中每个着色器管线可经编程以对光栅化像素数据执行数据处理操作。有利地,着色器管线是相同的,其可经独立编程,个别着色器管线可被停用,且即使一个或一个以上着色器管线被停用也能执行着色器处理操作。
在本发明的实施例中,一着色器分配器有利地以使得着色器管线的工作负荷为相似的的平衡方式来将光栅化像素数据分配到各着色器管线。然而,可有利地在功能上停用一个或一个以上着色器管线,从而防止着色器管线中的故障造成非功能芯片。着色器收集器收集并组织着色器管线的输出,以使得其具有适当次序,从而获得着色像素数据。着色器指令处理器根据需要来编程个别着色器管线以执行其处理任务。本发明的一些实施例包括一个以上着色器指令处理器。
每个着色器管线包括一着色器门监,所述着色器门监与着色器分配器和着色器指令处理器相交互,以使得根据需要来控制并处理通过着色器管线的像素数据。


从下文参看图式对本发明优选实施例的详细描述中可更好地理解前述内容和其它方面和优点,其中图1示意性说明现有技术图形系统;图2A示意性说明三角形几何图元;图2B说明像素沿每条扫描线对准的三角形几何图元;图3为具有多个着色器管线且符合本发明原理的着色器结构的高阶方框图;和图4是说明图3所示的着色器结构的选定结构特征且仅展示若干着色器管线中的一者的方框图。
具体实施例方式
本发明的原理供新型、可缩放且可编程着色器结构使用。符合所述原理的着色器结构包括多个着色器管线,所述着色器管线可经编程以对光栅化像素数据执行处理操作以产生着色像素数据。一个或一个以上着色器管线可在功能上被停用而仍维持所述着色器的功能性。此能减少芯片报废,且允许通过仅调整一给定芯片中可用的管线数目来实施更低或更高性能的芯片。此类着色器结构包括一着色器分配器,其有利地以平衡其工作负荷的方式将光栅化像素数据(即使为经处理的光栅化像素数据)应用到各着色器管线。一着色器收集器收集着色器管线输出并将其组织成适当次序以产生着色像素数据。一着色器指令处理器(排程器)编程个别着色器管线以执行其期望任务。一些实施例可使用多个着色器指令处理器,例如使每个着色器管线具有一个着色器指令处理器。
每个着色器管线可经编程以执行实施各种处理操作的不同组程序命令(程序)。所述命令可包括分支指令、纹理处理和使用浮点、定点和/或整数值的数学运算。每个着色器管线包括一着色器门监,所述着色器门监与着色器分配器和着色器指令处理器相交互,以使得根据需要来处理通过着色器管线的数据。
为了更好地理解所述新型着色器结构,更详细地理解其功能是有帮助的。返回参看图1,着色器的输入是图形系统中所使用的图形图元的顶点的二维显示坐标。此外,纹理台112能存取帧缓冲器120中的数据。通常,所述图形图元为三角形,但并非总是这样。举例来说,图2A说明限定一图形图元三角形202的顶点的坐标(0,0)、(1,0)和(1,1)。如果使用矩形,那么在图形图元中将包括额外坐标(0,1)。然而,除例如文本的二维对象之外,三角形更常用。
一旦已知三角形202的顶点201,就可确定图形图元内的像素,这是因为其为位于形成图形图元的线210之间的像素。通常沿光栅扫描线来组织像素。举例来说,图2B说明三角形202内的复数个像素298,其由扫描线299对准。
图3为具有一符合本发明原理的结构的着色器300的高阶方框图。着色器300代表图1普通着色器110的新型、有用和不明显实施例。着色器300的用途是针对待发送到帧缓冲器的每个像素将来自光栅器108的光栅化像素数据(其具有每个片段的原始X,Y和用于每个顶点属性(例如色彩、深度、纹理、坐标等)的平面方程)转换为适当色彩和深度值。为此,着色器300响应于图形API功能且响应于应用程序命令执行大量运算来求解数学方程,以产生所要色彩和深度值,从而形成着色像素数据。在由光栅操作处理器执行额外处理之后,着色像素数据被转换为由帧缓冲器接口116存储在帧存储器120(参看图1)中的帧像素数据。
着色器300的一显著特征在于其多个着色器管线302。可通过存储在帧缓冲器记忆体120中的程序信息对每个着色器管线302进行独立编程,以对光栅化像素数据执行数学和其它处理操作,以产生着色像素数据。尽管着色器300被展示为具有四个着色器管线302,但一般可存在1到N个着色器管线302,其中N为整数。此缩放性可用于通过仅添加/删减着色器管线来控制着色器处理能力。此外,此缩放性赋予着色器管线302冗余,其依次又赋予在功能上停用有故障着色器管线302的能力,同时仍维持着色器300的整体操作。由于着色器管线302是有利地相同,因而根据需要来制造额外着色器管线302是一项相对简单的任务,这是由于可使用相同的掩模和半导体制造工艺。
着色器300还包括一着色器分配器304。所述着色器分配器304的一个功能是将来自光栅器108的信息(光栅化像素数据)分配到各着色器管线302,以使得其可处理所述光栅化像素数据。有利地,以提供着色器管线302之间的平衡工作负荷的方式来执行此分配。也就是说,每个着色器管线302执行相似量的处理,且没有一个优选于其它者。所述着色器分配器304的另一功能是处理来自光栅器108的数据,以使得着色器管线302仅接收其需要的数据。
来自未由着色器管线302使用的光栅器的一部分控制数据(被称为状态数据)由着色器分配器304应用到一先进先出缓冲器存储器306。除了状态数据之外,所述先进先出缓冲器存储器306还接收X-Y坐标和像素覆盖数据,所述X-Y坐标和像素覆盖数据也不通过着色器管线302。
因为着色器管线302独立处理光栅化像素数据,所以着色器管线302的输出必须以使得所得处理像素数据与帧缓冲器中的像素(由光栅扫描线)适当匹配的方式进行组织。着色器300因此包括一着色器收集器308,其接收着色器管线302的输出和先进先出缓冲器存储器306的输出,且组织着色器操作的结果以为光栅操作处理器114(ROP)产生着色像素数据。
着色器收集器308的输出通过帧缓冲器接口116应用到帧缓冲器存储器120,且因此应用到显示器122。由于着色器管线302都可向帧缓冲器存储器请求数据(通过纹理请求),因而着色器300还可包括一L2高速缓冲器存储器310以辅助所述处理。
着色器300具有一符合本发明原理的着色器结构。所述结构允许多个且可独立编程的着色器管线、一将数据分配到着色器管线的着色器分配器、一着色器收集器,所述着色器收集器收集着色器管线的计算结果且组织着色器管线结果以形成着色像素数据来供ROP 114使用,所述ROP 114进一步处理着色像素数据以形成帧缓冲器数据。尽管整个结构机制比较清晰,以辅助理解本发明的益处和应用,但着色器300的更详细解释可是有帮助的。为此,图4说明着色器300的部分400的更详细方框图。应了解,尽管部分400仅展示一个着色器管线302和一个排程器,但多个着色器管线302和多个排程器完全符合本发明原理。
参看图4,着色器分配器304接收来自光栅器108的信息,且接着将光栅流信息和矩形光栅流信息分配到着色器管线302内的着色器门监404(随后更详细描述)。来自光栅器108的信息具有两种主要格式三角形平面方程信息,展示为平面方程设定;和以光栅流信息形式的三角形光栅化像素数据。另外,由于着色器300也处理参考矩形几何图元而输入的2维信息,因而着色器分配器304还接收矩形光栅化像素数据。
着色器分配器304的主要功能在于有利地以在可用着色器管线302之间平衡着色器管线工作负荷的方式而将三角形平面方程信息和光栅流信息分配到个别着色器管线302。也就是说,在处理中没有一个着色器管线302是优选的,且每一者具有相同的功能性。此通常将导致各着色器管线302执行相等的工作。如先前所注意,着色器管线302不需要的但需要用于其它目的的信息由着色器分配器304转发到先进先出缓冲器存储器306(见图3)。
实际上,以两个阶段来执行将数据分配到着色器管线302分段和分配。此至少部分因为每个着色器管线302一次仅可对有限数目的像素执行操作。所述数目通常比完成图形操作所必须处理的像素的数目小得多。因此,引入的数据通过使用“段尾”标记而被分裂成若干部分。段尾标记和其它资源限制迫使引入的数据被斩断成若干被称为“段”的组。
分段是将引入的光栅流信息斩断成若干段的过程。对于分段,实际上存在多个理由。一个理由是在多个着色器管线302之间平衡负荷,另一个理由是可由单个着色器管线302进行的工作负荷大小。后者取决于可由着色器管线302内的管线处理台309处理的像素数目。所述数目由被称为死锁的条件限制,随后描述所述死锁。可由单个着色器管线302处理的像素的数目还受着色器寄存器堆(RAM)420的存储器存储容量限制。
除了可由管线处理台309处理的像素的最大数目和着色器寄存器堆(RAM)420的存储器存储容量之外,其它实用性也限制段的大小。每个着色器门监404具有有限量的RAM。实际上,所述RAM限制可作为段一部分的三角形(属性和像素)的数目。所述数目取决于每个三角形在着色器门监404 RAM中占据的字数,其动态地取决于例如每个三角形正处理的纹理坐标的数目(及其各自维数)的因素。被处理的像素的实际数目取决于着色器管线的组织和着色器管线处理器309的有效等待时间。
分段的另一个原因在于着色器管线302可能不再使状态包循环,所述状态包是控制着色器管线302的操作的数据。由于一状态包不能成为所处理的数据的一部分,因而需要段边界且因此需要段。
与分段有关的是如何组织数据。在一个实施例中,着色器300对像素“四元组”(即,具有被一起处理的组份的2×2像素块)进行操作。接着,形成四元组段。然而,使用四元组不是本发明的原理的要求。一些实施例可根本不处理特定组的像素,而一些其它实施例可在一组中使用其它数目的像素,例如被称为三元组的三像素组。一般来说,一像素分组可从1到M,其中M为整数。
分配是选择着色器管线302中的一者且接着向那个着色器管线302供应一完整的段,接着将下一段供应下一着色器管线302等等的过程。在着色器300(见图3)中,段分配顺序是在可操作着色器管线302之间的简单循环法分配。例如,如果具有4个着色器管线302,但仅有三个是可操作的,那么分配顺序就在所述三个可操作着色器管线302之间。第一段将转到着色器管线0,接着下一段转到着色器管线1,接着下一段转到着色器管线2,且接着回到着色器管线0,等等。
如先前注意到,着色器分配器304可(在操作期间或在制造时)经配置以停用选定的着色器管线302。此使得有故障着色器管线302的功能能由其它着色器管线302执行,且使得制造者能提供降低或增强性能的设备。因此,有故障着色器管线302未必导致整个半导体芯片的报废。可使用任何用以确定哪个着色器管线在起作用的方法。举例来说,在制造时的芯片测试、测试程序、目测芯片或其结果可用于识别起作用的着色器管线302。
现转到图3,停用选定的着色器管线302与启用着色器管线有关。由于单个三角形非常大,因而其处理可横跨多个段。但是,由于一个着色器管线302可在一给定时间内仅处理一个段,一较大的三角形必须由多个着色器管线302处理。为了辅助如此完成,着色器分配器304将三角形信息广播到实际上不处理段的所有着色器管线302。每个接收着色器管线302试图通过使用程序信息来配置其本身,且准备接收引入的光栅化像素数据。接着,将处理段的着色器管线302接收光栅化像素数据且开始对其进行处理。光栅化像素数据被分配到一个(且仅一个)着色器管线302。
为了辅助实施分配且为了“关闭”不用的着色器管线302,着色器300可使用一管道启用屏蔽,所述屏蔽通知着色器300哪个着色器管线302是可操作的。此类屏蔽信号可通过总线408应用到着色器分配器304。可操作的着色器管线302可将其屏蔽位设定为一,将不可操作的像素管线的屏蔽设定为零。可由跳线切换、软件命令、硬连线或其它机制应用屏蔽信号。
配置不处理段的所有着色器管线具有明显优点,即如果三角形溢出到另一段,那么可将所述段发送到一已配置好的着色器管线302。接着,通过确认一个着色器管线302上的所述三角形,可处理所述段中三角形的光栅数据。此处理不仅避免了必须针对溢出到新段的较大三角形发送新编程数据,而且其还使得能在没有复杂机制的情况下确认额外的着色器管线302以重新传输来自着色器分配器304的段。可用的着色器管线302仅仅接受任何引入的段,且等候确认。如果三角形信息未被着色器管线使用,那么由着色器门监覆写所述三角形信息。
某些关于着色器分配器304输出流的注释可能是有帮助的。着色器分配器304仅转发具有至少一个非零像素的三角形信息。此机制被称为空值三角形丢弃。此通过确保一着色器管线302不会因为缺乏数据而浪费处理能力来改进处理操作。
在一些实施例中,一着色器分配器304具有与编程着色器管线302有关的功能性。在所述实施例中,编程指令由着色器分配器304发送到着色器管线302。在一些所述实施例中,仅发送最初N个(比如8个)编程指令。在此等实施例中,或在其中着色器分配器不将程序信息发送到着色器管线302的实施例中,排程器424将程序指令应用到着色器管线。排程器424接着必须协调光栅化像素数据从着色器分配器304到着色器管线302的应用。
参看图1和图3,程序指令的一副本有利地存储在帧缓冲器存储器120中。使用以下片段程序来对着色器管线302进行编程实施整个图形程序的子集的小指令集。使用片段程序是因为一着色器管线302具有有限资源,此意味着整个图形程序通常会太大而不能被直接应用到一着色器管线302。因此,片段程序被形成且应用到一着色器管线302。举例来说,可获得N个(比如8个)程序指令且将其转换为一对应片段程序,且用于编程一着色器管线302。在N(8)个指令处理一片段之后,形成实施接下来的N(8)个指令的另一片段程序且应用到着色器管线302。
如先前所注意,在本发明一些实施例中,通过着色器分配器304来应用最初N个指令。此可以若干不同方式来执行。举例来说,最初N个指令可(直接或通过另一机制)发送到排程器424。排程器424接着可从最初N个指令中形成最初片段程序。接着可直接将所述最初片段程序发送到着色器管线302。接着可由着色器处理器424形成随后的片段程序和/或最初片段程序,所述着色器处理器424本身直接或通过一些其它机制来存取帧缓冲器存储器120。应注意到,尽管可仅使用一个片段程序来编程一给定着色器管线302,但可由不同片段程序编程不同着色器管线302。另外,根据需要来执行管线回路和分支,以实施所需的片段程序且连续运行片段程序。
在所说明的实施例中,可在最后一轮着色的末尾附加分支指令。当发生分支操作时,发生通过着色器管线的无效轮回,且同时提供新的编程指令。在着色器计算底部处重新开始下一轮。此使得能够读取着色器寄存器堆420的内容。尽管分支操作需要两轮,但分支操作可为有利的。举例来说,较大分支块通常不需要着色器再编译。
现转向图4,尽管已知可编程着色器管线,但参考(例如)前述所并入的专利文档,着色器300包括一新颖着色器门监404。所述着色器门监404从着色器分配器304接收分段、三角形方程信息和程序数据。其以使得虽然三角形流信息发送到所有着色器管线302的方式来进行。然而,着色器分配器304确认正被处理的三角形。
在已处理完着色像素数据之后,着色器收集器308从多个着色器管线302收集着色像素数据,且将所述数据与来自先进先出缓冲器存储器306的X,Y和覆盖数据组合,以形成一经组织的着色器像素数据包。所得数据被发送到执行额外处理的光栅操作处理器114;参考图形处理单元102。在光栅操作处理器处理之后,最终帧像素数据被输出到帧缓冲器接口116。
尽管上文已描述多个实施例,但应了解仅以实例方式而并非限制方式来将其展现。前文参考特定数字,例如四元组的使用仅出于解释和说明目的。因此,优选实施例的广度和范围不应由上述示范性实施例中的任一者限制,而是应仅根据以下权力要求书和其等效物来限定。
权利要求
1.一种着色器,其包含复数个着色器管线,每个着色器管线用于处理光栅化像素数据;一着色器分配器,其用于将光栅化像素数据选择性地分配到所述复数个着色器管线;和一着色器收集器,其用于收集所述着色器管线的结果以形成着色像素数据。
2.根据权利要求1所述的着色器,其中每个着色器管线包括一着色器排程器以用于应用对所述光栅化像素数据的所述处理进行编程的命令。
3.根据权利要求2所述的着色器,其中所述命令包括一使至少一个着色器管线执行一分支操作的分支命令。
4.根据权利要求1所述的着色器,其进一步包括一光栅器以用于将所述光栅化像素数据发送到所述着色器分配器。
5.根据权利要求4所述的着色器,其中由所述着色器分配器接收的所述光栅化像素数据被分成可在不丢失数据的情况下配合至所述着色器管线中的若干段。
6.根据权利要求1所述的着色器,其中所述着色器管线中的至少一者处理所述光栅化像素数据以添加纹理信息。
7.根据权利要求1所述的着色器,其中所述着色器管线中的至少一者对所述光栅化像素数据执行数学运算。
8.根据权利要求1所述的着色器,其中所述着色器分配器基于所接收到的配置信息在功能上停用所述着色器管线中的至少一者。
9.根据权利要求8所述的着色器,其中所述着色器分配器通过不将光栅化像素数据分配到所述至少一个着色器管线来在功能上停用所述着色器管线中的所述至少一者。
10.根据权利要求8所述的着色器,其中所述配置信息识别所述至少一个着色器管线。
11.一种计算机系统,其包含一中央处理单元,其用于运行一使所述中央处理单元产生数据的应用程序;和一处理单元,其用于将所述数据转换为帧缓冲器像素数据,所述处理单元包括一着色器,所述着色器具有复数个着色器管线,每个着色器管线用于处理光栅化像素数据;一着色器分配器,其用于将光栅化像素数据选择性地分配到所述复数个着色器管线;和一着色器收集器,其用于从所述复数个着色器管线中收集着色像素数据。
12.根据权利要求11所述的计算机系统,其中所述计算机系统包括一用于存储帧缓冲器像素数据的帧缓冲器存储器。
13.根据权利要求11所述的计算机系统,其进一步包括一用于显示所述帧缓冲器像素数据的显示器。
14.根据权利要求9所述的计算机系统,其中所述处理单元包括一着色器排程器以用于应用对所述光栅化像素数据的所述处理进行控制的命令。
15.根据权利要求14所述的计算机系统,其中所述命令包括一使至少一个着色器管线执行一分支操作的分支命令。
16.根据权利要求11所述的计算机系统,其中所述处理单元进一步包括一光栅器以用于将所述光栅化像素数据发送到所述着色器分配器。
17.根据权利要求16所述的计算机系统,其中由所述着色器分配器接收的所述光栅化像素数据被分成可在不丢失数据的情况下配合至所述复数个着色器管线中一者中的若干段。
18.根据权利要求11所述的计算机系统,其中所述着色器管线中至少一者选择性地处理光栅化像素数据以添加纹理信息。
19.根据权利要求11所述的计算机系统,其中至少一个着色器管线选择性地对所述光栅化像素数据执行数学运算。
20.根据权利要求11所述的计算机系统,其中所述着色器分配器基于所接收到的配置信息在功能上停用所述着色器管线中的至少一者。
21.根据权利要求20所述的计算机系统,其中所述着色器分配器通过不将所述光栅化像素数据分配到所述至少一个着色器管线来在功能上停用所述着色器管线中的所述至少一者。
22.根据权利要求20所述的计算机系统,其中所述配置信息识别所述至少一个着色器管线。
23.一种图形处理集成电路,其包含一前端,其用于接收原始图形数据;一几何引擎,其用于将所述原始图形数据组织为几何图元;一光栅器,其用于将所述几何图元转换为光栅化像素数据;和一着色器,其用于处理所述光栅化像素数据,所述着色器包括复数个着色器管线,每个着色器管线用于处理所述光栅化像素数据的至少一部分;一着色器分配器,其用于选择性地接收所述光栅化像素数据,且用于将所述光栅化像素数据分配到所述复数个着色器管线;和一着色器收集器,其用于从所述复数个着色器管线的输出中形成着色像素数据。
24.根据权利要求23所述的图形处理集成电路,其中所述着色器包括一着色器排程器以用于将编程命令应用到所述复数个着色器管线,且其中所述编程命令控制所述光栅化像素数据的所述处理。
25.根据权利要求24所述的图形处理集成电路,其中光栅化像素数据被分成可在不丢失数据的情况下配合至所述着色器管线中一者或一者以上中的若干段。
26.根据权利要求23所述的图形处理集成电路,其中所述着色器分配器在功能上启用至少一个着色器管线。
27.根据权利要求26所述的图形处理集成电路,其中所述着色器分配器通过不将光栅化像素数据分配到所述至少一个着色器管线来在功能上停用所述至少一个着色器管线。
28.根据权利要求26所述的图形处理集成电路,其中所述着色器分配器接收识别所述至少一个着色器管线的命令信号。
29.根据权利要求23所述的图形处理集成电路,其中至少一个着色器管线选择性地处理所述光栅化像素数据以添加纹理信息。
30.根据权利要求23所述的图形处理集成电路,其中所述着色器管线中的至少一者对所述光栅化像素数据执行数学运算。
31.根据权利要求23所述的图形处理集成电路,其中所述着色器管线中的至少一者执行一分支操作。
32.一种操作一着色器的方法,其包含以下步骤从一光栅器接收光栅化像素数据,其中所述光栅化像素数据包括与几何图元相关的信息和与所述几何图元内的像素相关的信息;将所述接收到的光栅化像素数据分段成具有预定长度的段;将一段尾标签添加到所述段中的每一者;和将所述段选择性地分配到复数个着色器管线;其中每个着色器管线处理所述段中的一者,其中一第一着色器管线接收所述段中的一第一者,一第二着色器管线接收所述段中的一第二者;且如果可用,额外的着色器管线循序接收所述段中的一者,直到N个着色器管线已接收到所述段中的N个段;其中在所有将接收段的着色器管线已接收到段之后,将所述段中的下一者应用到所述第一着色器管线。
33.根据权利要求32所述的操作一着色器的方法,其中并非所有的着色器管线都接收所述段中的一者。
34.根据权利要求33所述的操作一着色器的方法,其中在功能上停用一着色器管线。
35.根据权利要求32所述的方法,其进一步包括通过收集并组织来自所述着色器管线`27的处理结果而形成着色像素数据。
36.一种操作一着色器的方法,其包含以下步骤使用一第一组指令来编程一第一着色管线以执行操作;接收光栅化像素数据;将所述光栅化像素数据的一部分选择性地分配到所述第一着色管线;使用一第二组指令来编程一第二着色管线以执行操作;将所述光栅化像素数据的一部分选择性地分配到所述第二着色管线;和收集并组织至少所述第一着色管线的输出以形成着色像素数据。
37.根据权利要求36所述的操作一着色器的方法,其中所述第一和所述第二组指令是不同的。
38.根据权利要求36所述的操作一着色器的方法,其中所述选择性地分配所述光栅化像素数据的步骤包括将所述光栅化像素数据分段以防止死锁的步骤。
39.一种存储一图形处理程序的计算机可读媒介,所述图形处理程序控制一图形系统以接收光栅化像素数据,其中所述光栅化像素数据包括与几何图元相关的信息和与所述几何图元内的像素相关的信息;将所述接收到的光栅化像素数据分段成具有预定长度的段;将一段尾标签添加到每个段;和将所述段选择性地分配到复数个着色器管线;其中每个所述着色器管线处理至少一个段;其中一第一着色器管线接收一第一段,一第二着色器管线接收一第二段;且如果可用,额外的着色器管线循序接收段,直到N个着色器管线已接收到N个额外的段;其中在所有所述将接收段的着色器管线已接收到段之后,将下一段应用到所述第一着色器管线。
40.根据权利要求39所述的计算机可读媒介,其中至少一个所述着色器管线不接收一段。
41.根据权利要求40所述的计算机可读媒介,其中所述着色器管线中任何一个不接收段的着色器管线在功能上被停用。
42.根据权利要求39所述的计算机可读媒介,其包括组织所述着色器管线的结果。
43.一种存储一图形处理程序的计算机可读媒介,所述图形处理程序控制一图形系统以执行以下步骤使用一第一组指令来编程一第一着色管线以执行操作;接收光栅化像素数据;将所述光栅化像素数据的一部分选择性地分配到所述第一着色管线;使用一第二组指令来编程一第二着色管线以执行操作;将所述光栅化像素数据的一部分选择性地分配到所述第二着色管线;和收集并组织至少所述第一着色管线的输出以形成着色像素数据。
44.根据权利要求43所述的计算机可读媒介,其中所述第一和第二组指令是不同的。
45.根据权利要求43所述的计算机可读媒介,其中选择性地分配所述光栅化像素数据包括将所述光栅化像素数据分段以防止死锁。
46.一种操作一着色器的方法,其包含以下步骤从一光栅器接收光栅化像素数据,其中所述光栅化像素数据包括与几何图元相关的信息和用于所述几何图元内的像素的像素信息;将所述接收到的光栅化像素数据分段成具有预定长度的段;将所述段分配到复数个着色器管线;将一确认字段发送到一着色器管线,所述字段通知所述特定着色器管线其将处理所述经分配的段;和使用所述特定着色器管线来处理所述经分配的段。
47.根据权利要求46所述的操作一着色器的方法,其进一步包括从除所述特定着色器管线外的所述复数个着色器管线的所有所述着色器管线中清洗所述经分配的段的步骤。
48.一种操作一着色器的方法,其包含以下步骤确定复数个着色器管线中起作用的着色器管线;和仅将光栅化像素数据发送到所确定的起作用的着色器管线。
49.一种图形处理单元,其包含一前端,其用于接收原始图形数据;一几何引擎,其用于将所述原始图形数据组织成几何图元;一光栅器,其用于将所述几何图元转换为光栅化像素数据;一用于处理所述光栅化像素数据的着色器,所述着色器包括一用于将所述光栅化像素数据分配到复数个着色器管线的着色器分配器,且所述着色器进一步包括一用于从所述复数个着色器管线输出中形成着色像素数据的着色器收集器;和一光栅操作处理器,其用于将所述经处理的像素数据处理为帧缓冲器数据。
全文摘要
本发明揭示一种可缩放着色器结构。根据所述结构,一着色器包括多个着色器管线,其每一者可对光栅化像素数据执行处理操作。可根据需要在功能上移除着色器管线,从而防止有故障着色器管线造成芯片报废。着色器包括一着色器分配器,所述着色器分配器处理光栅化像素数据且接着有利地以平衡工作负荷的方式将所处理的光栅化像素数据选择性地分配到各着色器管线。一着色器收集器将各着色器管线的输出格式化为适当次序以形成着色像素数据。着色器指令处理器(排程器)编程个别着色器管线以执行其既定任务。每个着色器管线具有一着色器门监,所述着色器门监与着色器分配器以及着色器指令处理器交互作用,以使得根据需要来控制并处理通过着色器管线的像素数据。
文档编号G06T15/00GK1957376SQ200580016444
公开日2007年5月2日 申请日期2005年4月8日 优先权日2004年4月12日
发明者鲁伊·M·巴斯托斯, 卡里姆·M·阿布达拉, 克里斯蒂安·鲁埃, 迈克尔·J·托克斯维格, 约翰尼·B·罗兹, 罗杰·L·艾伦, 约翰·道格拉斯·小泰内菲尔德, 埃米特·M·基尔加里夫, 加里·M·塔罗利, 布赖恩·卡布拉尔, 克雷格·迈克尔·维滕布林克, 肖恩·J·特赖希勒 申请人:辉达公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1