CN101145239A - 绘图处理单元及处理边框颜色信息的方法 - Google Patents

绘图处理单元及处理边框颜色信息的方法 Download PDF

Info

Publication number
CN101145239A
CN101145239A CNA2007101120142A CN200710112014A CN101145239A CN 101145239 A CN101145239 A CN 101145239A CN A2007101120142 A CNA2007101120142 A CN A2007101120142A CN 200710112014 A CN200710112014 A CN 200710112014A CN 101145239 A CN101145239 A CN 101145239A
Authority
CN
China
Prior art keywords
border color
texture
color
processing unit
graphics processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CNA2007101120142A
Other languages
English (en)
Inventor
徐建明
迈克·洪
约翰·柏拉勒斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Via Technologies Inc
Original Assignee
Via Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Via Technologies Inc filed Critical Via Technologies Inc
Publication of CN101145239A publication Critical patent/CN101145239A/zh
Pending legal-status Critical Current

Links

Images

Abstract

本发明揭露一种绘图处理单元的边框颜色处理系统及方法。在一实施例中,该系统包括一边框颜色寄存器用以存储至少一边框颜色指标。一边框颜色指标,用以指示存储边框颜色信息的外部存储器地址。将边框颜色信息存储在外部存储器中,且当该纹理过滤单元需要一边框颜色进行纹理贴图操作时,通过该纹理快取存储器控制器读取。

Description

绘图处理单元及处理边框颜色信息的方法
技术领域
本发明涉及一种绘图硬件装置,特别是涉及一种绘图处理单元的边框颜色处理系统及方法。
背景技术
众所周知,计算机绘图处理系统处理大量数据,其中包括纹理(texture)数据。纹理是一具有(u,v)坐标空间的数字图像,通常为矩形。一纹理的最小可寻址单元为一纹理像素(texel),基于所在位置而被指定具体的(u,v)坐标。在纹理贴图操作中,将一纹理贴至一绘图模型的图面(surface)在该模型被绘制以产生一目的图像(destination image)时。在该目的图像中,像素位于(x,y)坐标系统的特定坐标上。
纹理数据通常存储于系统存储器中,是共享的资源。在其它计算机系统中,其它装置能存取由该绘图处理系统使用的数据,或利用一共享系统总线,均会增加绘图处理系统的数据存取时间。另外,请求系统存储器的数据时,可能因为其它因素而花费过多时间。因此,存取系统存储器可能影响绘图处理系统的效能。
一种改进数据存取的技术,是通过专用于存储纹理数据的一纹理快取存储器。该系统存储器在需要纹理处理的数据前,将纹理数据提供至纹理快取存储器,从而将纹理数据提供至该绘图系统,并减少存取系统存储器的需求。因此减少关于存储器等待的问题。
然而,通常纹理处理所需的另一种数据类型,特别是边框颜色(bordercolor)数据,不同于上述纹理快取系统的纹理数据,亦能存储及存取于绘图系统中。当一纹理像素超出边界时,在一边框颜色模式中,通常在纹理处理期间请求边框颜色数据。当处理一纹理,或将其贴至一绘图模型的图面时,纹理可能未足以覆盖一绘图模型,且该绘图处理单元的纹理处理系统,在一特定的(u,v)维度中,必须处理超出纹理范围外坐标的绘图模型纹理贴图。一特定边框颜色可应用于超出纹理本身边界坐标的绘图模型,因此,在这些情况下通常需要边框颜色。
纹理处理的其它例子,是在一固定(clamp)模式下,对一绘图模型请求一纹理。若在此一模式下,一纹理图像不包括整个模型,可固定该纹理图像以覆盖整个多边形(polygon)。任何所属技术领域中具有通常知识者应了解到,亦可延伸一纹理图像的最后像素,并覆盖以该纹理图像贴上模型所剩余的图面区域。或者,换句话说,该纹理图像范围外的像素,使用同样的纹理数据作为该纹理图像的边缘。对于具有通常知识者而言,固定操作是一已知的操作,作为上述超出坐标边界的纹理处理操作。
在一边框颜色模式中,一绘图模型的纹理应用是纹理处理操作的其它例子。若在此一模式下,当纹理图像并未涵盖整个模型,可将一边框颜色应用至纹理图像范围外的绘图模型坐标。相对于上述的固定例子,对于超出一选定纹理图像范围的模型部份,将该纹理有效地延伸至整个绘图模型。在一边框颜色模式中,可为这些范围外的坐标,选择一固定边框颜色。可通过一程序设计师(programmer)、一自动化软件算法(automated softwarealgorithm)、或硬件执行纹理处理操作,用以选择一边框颜色,并贴至该绘图模型,在超出选定纹理图像范围的坐标上。应当了解到,有各式各样其它这类的模式用于纹理贴图操作,包括,但非用以限定,一包覆(wrap)模式、一中央(middle)模式,或其它已知的模式。
目前,在边框颜色模式下,用于纹理处理操作的边框颜色信息,通常存储在一绘图处理单元内所设置的专用存储器(memory)或快取存储器(cache)架构中。对于可在绘图处理单元内执行的每一着色器(shader)而言,此一边框颜色信息,通常以至少16种边框颜色表示之。也就是说,对于可在绘图处理单元内执行的每一着色器而言,通常会要求至少要具有16种边框颜色。除此之外,该16种边框颜色可以不同格式存储,以供一纹理过滤(texturefiltering)单元或过滤程序使用。在一非限定例子中,某些绘图处理单元,将每一边框颜色以12种不同格式存储在一边框颜色快取存储器或边框颜色存储器中。另外,每一格式需要至少128位的快取存储器或存储器存储空间。
纹理数据为一共享资源,为一绘图管线(pipeline)的不同阶层所需要。而纹理数据的多重内文(multiple contexts),为绘图处理单元平行执行的着色器所需要。一绘图管线的不同阶层可执行纹理处理操作,并且需要纹理数据或边框颜色信息。因此,利用芯片上的快取存储器来存取纹理数据。当计算机系统,特别是绘图处理的效能提升时,芯片的资源,包括一绘图处理单元或绘图处理卡的空间益加庞大。因此,当一绘图处理单元能够平行执行数个着色器时,则专用于边框颜色存储的大量快取存储器或存储器,除了纹理数据之外,还可能为利用专用边框颜色快取存储器或存储器的一绘图处理单元所需要。
有鉴于此,希望能改善绘图处理单元的处理、设计、以及生产效能。随着绘图处理单元的复杂度及处理能力的增加,所使用的专用边框颜色快取存储器或存储器,往往需要大量的逻辑门、传输线路以及硬件成本。因此,目前尚缺乏一种用以克服上述现有缺点的无地址需求技术。
发明内容
本发明的一实施例揭露一种绘图处理单元。该绘图处理单元可包括一边框颜色寄存器、一纹理快取存储器、一纹理快取存储器控制器及一纹理过滤单元。该边框颜色寄存器存储至少一边框颜色指标,且至少一边框颜色指标,用于指示存储至少16种边框颜色的外部存储器地址。该纹理快取存储器控制器,被配置将至少16种边框颜色以一纹理像素记录格式提供至该纹理过滤单元,以进行边框颜色的操作。该纹理快取存储器控制器,被配置用以存储由该纹理快取存储器的外部存储器所读取的边框颜色。
该纹理快取存储器控制器亦被配置用以代表该纹理过滤单元,由该外部存储器的一基地址读取一边框颜色,该基地址由存储在该边框颜色寄存器的一指针所指定。该至少16种边框颜色存储在该外部存储器中,当该纹理过滤单元需要一边框颜色进行纹理贴图操作时,通过该纹理快取存储器控制器读取。该至少16种边框颜色,以复数的格式,以128位的间隔排列在外部存储器中。
另一实施例则揭露一种处理边框颜色信息的方法。该方法的步骤包括:将复数的边框颜色存储至一外部存储器、以及在该外部存储器中,将所述边框颜色的位置存储至一边框颜色寄存器。该方法的步骤亦包括由该外部存储器读取所述边框颜色记录的一单一记录,并以一纹理像素记录格式,将该单一记录存储在一纹理快取存储器。该方法的步骤进一步包括为纹理贴图操作所需的边框颜色信息,将纹理像素记录格式的该单一记录提供至一纹理过滤单元。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举实施例,并配合附图,详细说明如下。
附图说明
图1示出了一绘图管线的元件方块图;
图2示出了一绘图处理单元及其特定内部元件的功能方块图;
图3示出了本发明实施例的一绘图处理单元的执行单元功能方块图;
图4示出了本发明实施例的一绘图处理单元的特定元件分解示意图;
图5示出了本发明实施例的一方法流程图。
附图符号说明
300-绘图处理单元;                 150-存储器;
306-多重可编程执行单元集区;
126-预包装单元;                   128-内插器;
130-包装单元;                     118-纹理地址产生器;
122-纹理过滤单元;                 420-纹理高速存储器控制器;
424-边框颜色寄存器;               152-存储器存取单元;
120-纹理高速存储器控制器;
124-边框颜色高速寄存;
200-绘图管线;                      250-绘图处理单元;
265、267、及269-纹理元件;
252-命令流处理器;                  254-顶点着色器;
256-几何着色器;                    257-三角构图层;
258-范围产生器/图砖产生器;
259-属性设定层;
260-像素着色器;                    262-显示缓冲存储器;
425a-425d-连续存储器区块;
427a-427f-自由存储器空间;
502、504、506、...、及514-操作步骤。
具体实施方式
综上所述,本发明揭露一种新型系统及方法用于处理边框颜色数据。在开始讨论各种实施例的实施细节前,请参考图1,是根据本发明实施例,在一绘图管线中使用特定元件的方块图。如上所述,一绘图管线的不同阶层可执行纹理操作,及依序存取边框颜色信息。因此,本发明揭露边框颜色数据的存储与读取,用以改进一绘图处理单元的逻辑门数目效能。
参考图1,示出了一绘图管线200的特定元件或阶层方块图。第一元件为一命令流处理器252,接收或读取存储器的顶点坐标,用以形成管线的几何像素(geometry primitive)或产生工作项目。就此而言,该命令流处理器252读取存储器的数据,并且依据该数据,产生欲传入管线的三角形、线、点、或其它像素。此几何信息,一旦组成后,随即传至顶点着色器254。该顶点着色器254,可藉由执行操作来处理顶点坐标,例如:转换、扫描、与照明。该顶点着色器254,可由纹理元件265要求存取纹理操作或绘图处理单元250的一纹理引擎。如同上述,当纹理操作发生在一边框颜色模式时,则须存取边框颜色信息。该顶点着色器254将数据传递至几何着色器256。该几何着色器256接收顶点坐标当作输入,以作为一完全像素,并且能够输出多重顶点坐标,用以构成一单一拓朴(topology),例如:一三角段(trianglestrip)、线段(line strip)、指标集(pointer list)等。该几何着色器256,更进一步被配置用以执行各种算法,例如:细分(tessellation)、阴影体积产生法等。如上述的顶点着色器254,同样地,该几何着色器256,可由纹理元件267要求存取纹理操作或绘图处理单元250的一纹理引擎。因此,可由绘图管线200的此阶层请求边框颜色信息。
该几何着色器256,将信息输出至一三角构图层257,用以执行操作,例如:三角琐碎摒除(triangle trivial rejection)、行列式计算(determinantcalculation)、反面剔除(culling)、KLMN的属性设定(pre-attributesetupKLMN)、边缘函数计算(edge function calculation)、保留频段剪辑(guardband clipping)。任何所属技术领域中具有通常知识者应了解一三角构图相位所需的操作,不需在此进一步阐述。该三角构图层257,将信息输出至范围产生器(span generator)/图砖产生器(tile generator)。此绘图管线层亦为现有的技术,不需更进一步详细说明。
若该三角构图层257所处理的三角形,并没有被范围产生器/图砖产生器258、或其它绘图管线层所拒绝,则该绘图管线的属性设定层执行属性设定操作。该属性设定层,产生已知且所需的内插变量集,以在下一管线层决定。另外,该属性设定层259,亦为现有技术之一,用以处理关于绘图管线所处理几何像素的各种属性。
该像素着色器260,加载由属性设定层259输出的像素所覆盖的每一像素。该像素着色器26O,操作执行内插及其它操作,用以决定像素颜色,并输出至一显示缓冲存储器262。如上所述的顶点着色器254和几何着色器256,该像素着色器260,可由纹理元件269要求存取纹理操作或绘图处理单元250的一纹理引擎。因此,该绘图管线200在此阶层可能需要边框颜色信息。图1所说明各元件的操作为熟悉此技术领域者所了解,而在此不需多加说明。因此,这些元件内部的具体实施与操作不需在此进一步阐述,以使对于本发明的了解更为完全。
上述绘图管线,通常实现在绘图处理单元或绘图处理装置之中。目前的绘图管线通常规范在已发布的应用程序接口(application programminginterface:API)、或应用程序接口集合,用以将特定需求增加至绘图处理单元产品。此应用程序的一非限定例子是
Figure A20071011201400101
请参考图2,示出了现有的一绘图处理单元,包括:一纹理快取存储器控制器(TCC)120,其中,在边框颜色模式下,被配置以存储边框颜色数据,以供纹理操作读取。应了解绘图处理单元中非必要说明的元件,在此省略以易于说明。包含此绘图处理单元的计算机绘图系统,使绘图程序设计师得以开发一可编程的着色器,譬如:几何着色器、像素着色器、顶点着色器、或其它已知的技术。由程序设计师所开发的此着色器,并至少可通过多重可编程执行单元集区306的一来执行。值得注意的是,该执行单元集区306,可包括能进行多重执行绪操作的一处理单元。还应注意,此绘图处理单元包括由绘图程序设计师开发,具平行执行功能的多重着色器。举例而言,一像素着色器,可与一几何着色器、及像素着色器的另一事件平行执行。此一着色器的平行执行,可能需要该执行单元集区306读取纹理数据、以及/或者边框颜色数据的多重内文。
预包装单元126,接收来自于一绘图处理管线(未显示)的部份数据,然而,此技术领域中具有通常知识者应了解到,该预包装单元126,在一绘图管线执行时,处理某些像素操作。在上述绘图处理单元中,内插器128为一绘图管线执行数据路径的一元件,其耦接该预包装单元126。纹理地址产生器118,发送一纹理描述符号请求,用以响应于该执行单元集区306中执行着色器的沟通。将该请求发送至纹理快取存储器控制器(TCC)120。该纹理快取存储器控制器120,将该纹理描述符号数据输出至纹理地址产生器118或纹理过滤单元122处理。由于该纹理地址产生器118的各种实施方式为具有通常知识者所熟知,在此省略该些元件的进一步说明。
该纹理快取存储器控制器120,其包括一纹理快取存储器,用以快取纹理数据,例如:纹理像素,及包括用以处理纹理数据请求的一快取存储器控制器。该纹理快取存储器控制器120,由存储器150读取所请求的纹理数据,并在该纹理快取存储器中快取纹理数据。该纹理快取存储器控制器120,将纹理数据,包括纹理像素,提供至纹理过滤单元122,以供纹理处理操作。该纹理快取存储器控制器120,以纹理像素格式,将数据,例如一纹理记录,提供至该纹理过滤单元122。若请求的数据并未存储在快取存储器结构中,则通过存储器存取单元152,该纹理快取存储器控制器120可由存储器150存取纹理数据。当该纹理过滤单元122请求此数据进行纹理操作时,该纹理快取存储器控制器120,亦读取存储在边框颜色快取存储器124的边框颜色信息,并将该边框颜色信息提供至该纹理过滤单元122。当边框颜色,以边框颜色格式存储在边框颜色快取存储器124时,该纹理过滤单元122,更包括一逻辑电路,对通过纹理过滤单元122所读取的边框颜色,进行译码的操作。再者,该纹理过滤单元122,须将已读取的边界转换至一适当格式,以进行纹理操作。在边框颜色模式下,边框颜色信息通常包括用以表示颜色的预定义常数,以供纹理操作。例如:一边框颜色可以128位的RGBA格式表示,并存储在边框颜色快取存储器124中,当选择的纹理图像超出(u,v)坐标时,在模型坐标中,该纹理过滤单元122可将该边框颜色应用至2D或3D模型。
现有上,该执行单元集区306平行执行的多重着色器会需要边框颜色信息。因此,边框颜色快取存储器124须具备足够存储空间,用以存储执行单元集区306平行执行的每一着色器所需边框颜色信息。除此之外,对于可在绘图处理单元内执行的每一着色器而言,在边框颜色模式下,进行纹理操作可能需要多重边框颜色,  而该纹理过滤单元122,在边框颜色模式下,可将不同边框颜色应用至一绘图模型。依据纹理过滤单元122执行边框颜色纹理操作的型式,可以多重数据格式请求任一既定的边框颜色。例如:一绘图处理单元架构可支持多达16种的格式(亦即16种边框颜色),因此,单一着色器可请求存储在边框颜色快取存储器124的16种边框颜色,且该16种边框颜色的每一种,需以不同格式存储。同时,对可平行执行的每一着色器而言,绘图处理单元支持多重存储器内文,而须在边框颜色快取存储器124中维持边框颜色的多重内文。因此,一边框颜色快取存储器124须有足够空间存储多重边框颜色的多重内文,其中,每一边框颜色是以多重格式存储。
于是,随着绘图处理单元与计算机系统效能提升,需一更大容量的边框颜色快取存储器124,以将边框颜色信息存储在芯片上的边框颜色快取存储器。在非限定的实施例中,一绘图处理单元可以现有技术平行执行一定数目的着色器;然而,未来的技术,可大幅提升此能力,需要更多芯片资源用以存储边框颜色。再加上,通常通过一软件绘图应用程序接口(API),例如:
Figure A20071011201400121
所搭配的一软件驱动程序,用来存储边框颜色信息。因此,为能在一边框颜色模式下进行纹理操作,需以硬设备支持,藉由软件驱动程序存取及写入该边框颜色快取存储器124。
参考图3,示出了依据本发明实施例的一绘图处理单元300。值得注意的是,绘图处理单元中非必要说明的某些元件,在此省略以易于说明。如上述关于图2的绘图处理单元,在图3中,包括一绘图处理单元的一计算机绘图系统,能够提供一绘图程序设计师开发一可编程的着色器,例如:几何着色器、像素着色器、顶点着色器、或其它已知的技术。由程序设计师所开发的此着色器,并至少可通过多重可编程执行单元集区306之一来执行。值得注意的是,该执行单元集区306,可包括能进行多重执行绪操作的一处理单元。还应注意,此绘图处理单元包括由绘图程序设计师开发,具平行执行功能的多重着色器。如图2的绘图处理单元,此一着色器的平行执行,可能需要该执行单元集区306读取纹理数据、以及/或者边框颜色数据的多重内文。
该纹理地址产生器儿8,发送一纹理描述符号请求,用以响应于该执行单元集区306中执行着色器的沟通。该请求被发送至纹理快取存储器及纹理快取存储器控制器(TCC)420。该纹理快取存储器控制器420,将该纹理描述符号数据输出至纹理地址产生器儿8或纹理过滤单元422处理。由于该纹理地址产生器118的各种实施方式为具有通常知识者所熟知,在此省略该些元件的选一步说明。
如上所述,纹理快取存储器控制器(TCC)420,包括一纹理快取存储器,用以快取纹理数据,例如:纹理像素,及用以处理纹理数据请求的一快取存储器控制器。该纹理快取存储器控制器420,由存储器读取所请求的纹理数据,并在该纹理快取存储器中快取纹理数据。该纹理快取存储器控制器420,将纹理数据,包括纹理像素,提供至纹理过滤单元422,以供纹理处理操作。该纹理快取存储器控制器420,以纹理像素格式,将数据,例如一纹理记录,提供至该纹理过滤单元422。当所请求的数据并未存储在快取存储器结构中,则通过存储器存取单元152,该纹理快取存储器控制器42可由存储器150存取纹理数据。
当进行纹理操作时,纹理过滤单元422需要边框颜色,而依据本发明实施例的一绘图处理单元300,可提供一具效能的边框颜色处理系统,用以改进硬件逻辑门数目效能。边框颜色信息可存储在外部存储器150中,而非如图2所示的绘图处理单元专用快取存储器。边框颜色寄存器424,用以将边框颜色信息存储在外部存储器150的位置指针。存储在边框颜色寄存器424的指针,可指定存储器150中,用来存储边框颜色信息的基地址。如上所述,对于可在绘图处理单元内执行的每一着色器而言,在边框颜色模式下,进行纹理操作可能需要多重边框颜色,  而该纹理过滤单元422,在边框颜色模式下,可将不同边框颜色应用至一绘图模型。依据纹理过滤单元422执行边框颜色纹理操作的型式,可以多重数据格式请求任一既定的边框颜色。例如:一绘图处理单元架构支持多达16种的格式(亦即16种边框颜色),因此,单一着色器可请求16种边框颜色,且该16种边框颜色的每一种,均须以不同格式存储。同时,对可平行执行的每一着色器而言,绘图处理单元支持多重存储器内文,且需要为了每一可执行的着色器维持边框颜色的多重内文。
因此,当纹理操作于边框颜色模式而需要边框颜色时,可将此边框颜色信息存储在外部存储器150中。如一非限定的实施例中,一绘图处理单元,能够同时执行一顶点着色器、一几何着色器、与一像素着色器,并且同时支持每一着色器所需的两组存储器内文,因此通过纹理快取存储器控制器420,该绘图处理单元具备同步存储、读取及快取外部存储器150的6组边框颜色内文。再者,藉由软件驱动程序,边框颜色可以多重数据格式存储在外部存储器150中,并消除了纹理快取存储器控制器420与纹理过滤单元422的需求,以将一边框颜色转换至一适当数据格式,以供纹理操作。除此之外,该纹理快取存储器控制器420可以一数据结构快取一已读取的边框颜色,与快取已读取的纹理像素记录的架构相似或一致。
该纹理快取存储器控制器420,可选择性地使用纹理像素记录格式,以将原始的边框颜色以及目前的边框颜色快取至纹理过滤单元422。当以纹理像素记录格式,将原始的边框颜色以及/或者目前的边框颜色快取至纹理过滤单元422时,藉由消除或减少两元件的需求,来简化纹理过滤单元422及纹理快取存储器控制器420的硬件逻辑电路,以处理一特定边框颜色记录。该纹理过滤单元422及该纹理快取存储器控制器420,可选择性以相同数据结构,运用一边框颜色作为一纹理像素记录。亦同样消除了大量需整合至绘图处理单元的边框颜色快取存储器的需求,此因边框颜色信息由外部存储器150存储与读取,而非由一独立的边框颜色存储器。
尽可能地将一既定边框颜色信息的内文,存储在外部存储器的连续存储器区块中,其中,每一边框颜色记录是以128位的间隔存储,在一非限定的实施例中,为连续的存储器区块。而将每一边框颜色转换至各种支持的数据格式,亦最好存储在连续存储器区块中。于是,纹理快取存储器控制器420,可藉由边框颜色指标的帮助,由连续区块中读取一既定的边框颜色。该边框颜色指标,存储在边框颜色寄存器424中,用以指定连续的存储器区块的基地址。当纹理操作于边框颜色模式时,每一边框颜色可以不同格式存储在外部存储器中,其中包括(但不限于):UINT32、SINT32、UNORM8、UNORM10、UNORM16、UNORM24、SNORM8、SNORM10、SNORM16、SNORM24、FP16、及FP32。关于这些格式的技术细节是公开,且为此领域中具有通常知识者所了解。举例而言,每一格式的基本信息定义如下:
UINT32:unsigned 32 bits integer;
SINT32:signed 32 bits integer;
UNORM8∶8 bits unsigned normalized integer;
UNORM10∶10 bits unsigned normalized integer;
UNORM16∶16 bits unsigned normalized integer;
UNORM24∶24 bits unsigned normalized integer;
SNORM8∶8 bits signed normalized integer;
SNORM10∶10 bits signed normalized integer;
SNORM16∶16 bits signed normalized integer;
SNORM24∶24 bits signed normalized integer;
FP16∶16 bits float point value;
FP32∶32 bits float point value。
如上所述,当每一边框颜色存储在一连续存储器区块,且该连续区块范围内每一边框颜色,以不同格式及一致的次序存储在连续区块内时,仅藉由利用由该边框颜色寄存器42 4的边框颜色指针所指向的基地址,该纹理快取存储器控制器420可读取一既定边框颜色记录。
如上述所揭露的绘图处理单元架构,相对于图2的绘图处理单元而言,因为消除了对于边框快取存储器的需求,大幅提升硬件的逻辑门数目效能。此外,随着计算机系统与绘图处理单元效能进步,本发明提供一种边框颜色处理的方法,因为当一绘图处理单元能够平行执行更多着色器或支持每一着色器所需的存储器内文时,通过将边框颜色指标增加至边框颜色寄存器424的方式,可完成所增加的边框颜色处理需求,而非利用更多的边框颜色快取存储器。
参考图4,示出了边框颜色寄存器424及一外部存储器150的分解示意图。应了解自由存储器空间427(a-f)不需描述为一外部存储器的所有可使用的自由空间,然而,为清楚及便于说明,以此描述自由存储器空间427。上述边框颜色寄存器424存储6笔边框颜色指标,以供给3个可平行执行着色器,而每一着色器的2组存储器内文为:
Pixel_Shader_1_Pointer、
Pixel_Shader_2_Pointer、
Vertex_Shader_1_Pointer、
Vertex_Shader_2_Pointer、
Geometry_Shader_1_Pointer、以及
Geometry_Shader_2_Pointer。
值得注意的是,依据被要求用以支持绘图处理单元的边框颜色内文数目,可采用更多或更少的边框颜色指标。
举例来说,使用目前技术的低成本绘图处理单元可被配置来支持较少的可平行执行的着色器;因此需要较少的边框颜色指标。或者,绘图处理单元可被配置来支持更多的可平行执行着色器,而需要较多的边框颜色指标。应了解到,当上述边框颜色寄存器424支持6组在外部存储器150的边框颜色数据内文时,在此时,一绘图处理单元不需6组内文的存储器空间,因为各种可平行执行着色器,能够不用于边框颜色模式下进行纹理操作。例如:仅一着色器需要边框颜色进行纹理操作;因此,仅需存储一组边框颜色信息的内文于外部存储器150中。
当在边框颜色模式下进行纹理操作时,通过一软件驱动程序,可将边框颜色信息存储在连续存储器区块425(a-d)。每一连续存储器区块425可存储对应于一可执行着色器的16种边框颜色。进一步,每一边框颜色以12种不同数据格式存储,以供纹理快取存储器控制器与纹理过滤单元读取与使用。每一边框颜色可以下列格式于存储外部存储器,其中包括(但不限于):UINT32、SINT32、UNORM8、UNORMl0、UNORMl6、UNORM24、SNORM8、SNORMl0、SNORMl6、SNORM24、FPl6、及FP32。每一边框颜色亦可以上述12种格式连续存储。
另外,为改善存取能力,每一边框颜色格式可以128位的间隔存储,然而,需注意此间隔会随着外部存储器所使用的变动寻址结构,以及/或者存储器区块大小而改变。每一连续存储器区块425可存储在外部存储器150的不同位置,因而在不同连续存储器区块425之间产生自由存储器空间427。应注意到,自由存储器空间427不需为未使用或空置的,因为绘图处理单元可将自由存储器空间427用于其它目的。且上述用于每一连续存储器区块425的排列结构,亦可根据本发明而加以变化。
上述每一边框颜色指针,指定一基地址425,并且指向连续存储在外部存储器150的个别边框颜色区块。该纹理快取存储器控制器读取一边框颜色指标,对应于着色器进行纹理处理操作时所要求边框颜色,并通过纹理过滤单元读取纹理处理操作所需的一既定边框颜色。如上所述,一边框颜色指针指定外部存储器15O的一基地址。依据纹理地址产生器或纹理过滤单元所需的既定边框颜色,纹理快取存储器控制器可读取正确的边框颜色,这是因为根据一先前指定的存储器与排列结构,边框颜色数据可以一既定顺序存储在外部存储器15O中。
参考图5,示出了依据本发明实施例的一方法流程图500。在步骤502,将边框颜色数据存储在一外部存储器中。如上所述,边框颜色数据,对应于一绘图处理单元所执行的一着色器,可存储在连续存储器区块,用以提供更有效率地读取。当在边框颜色模式中进行纹理操作时,边框颜色信息可存储在外部存储器。而通过一软件驱动程序及一软件绘图应用程序接口的搭配,例如:
Figure A20071011201400161
便可将边框颜色信息存储在外部存储器。
在步骤504,存储在一边框颜色寄存器的一边框颜色指针,指定存储器的一基地址,用以对应存储器中边框颜色信息的位置。参考上述的实施例,此一边框颜色指标允许纹理操作自外部存储器读取边框颜色信息。在步骤506,接收一边框颜色的要求。在步骤508,确定边框颜色信息的基地地址,其由存储在边框颜色寄存器的边框颜色指针所指定。在步骤510,利用该边框颜色指针指定的基地址,以正确数据格式读取所要求的边框颜色。该边框颜色亦可存储在一快取存储器,例如:一纹理快取存储器,以通过一纹理快取存储器控制器读取该边框颜色。在步骤512,该边框可以一纹理像素记录格式传送至一纹理过滤单元。
图5的流程图示出了依据本发明所揭露方法的一示范实施例。值得注意的是,图5所叙述的方法,如同本发明的其它实施例,均可以利用硬件、软件、固件、或者一组合方式加以实施。在一实施例中,该方法以软件或固件实现,并存储在存储器中,且通过一适当的指令执行系统加以执行。在另一实施例中,则以硬件实现,该方法能以下列任一已知的技术或其组合加以实现:一离散式逻辑电路,具有根据数据信号而实现逻辑功能的逻辑门;一专用集成电路(ASIC),具有适当的逻辑门组合;一可编程逻辑门阵列(PGA);一场效可编程逻辑门阵列(FPGA),整合一绘图处理单元元件等。
任何对于本发明具有通常知识者应该了解,流程图的任何程序说明或方块,用于表示硬件逻辑电路、嵌入式逻辑电路、模块、区段、或部份程序代码,包括用以实现特定逻辑功能的一或多个可执行指令或程序的步骤,而且其它实施方式亦在本发明较佳实施例的范畴内,各功能可不依照如图所示或讨论的顺序,包括同时或以相反的顺序,是根据所需的功能。
需强调上述本发明的实施例,仅为实施方法的可能范例,提出仅仅为了对本发明方法有清楚的了解。在不违背离本发明的精神与原理下,上述本发明的实施例可作许多变动和修改。这些所有变动与修改包含在本发明的范畴内,且受本发明的专利申请范围所保护。
举例来说,根据所提供的说明,熟悉此技术领域者应当了解,实施例的绘图处理单元包括一边框颜色寄存器、一纹理快取存储器、一纹理快取存储器控制器、及一纹理过滤单元。在一些实施例中,该边框颜色寄存器存储至少一边框颜色指标,该至少一边框颜色指针指向边框颜色信息在外部存储器的位置,而边框颜色信息存储在外部存储器内,且当纹理过滤单元请求一边框颜色以供纹理贴图操作,由纹理快取存储器控制器读取。
在本发明的实施例中,该边框颜色寄存器至少存储一边框颜色指标,以供可由绘图处理单元执行的每一着色器事件,而外部存储器可被配置用来存储至少16种边框颜色,以供可由绘图处理单元执行的每一着色器事件。该些至少16种边框颜色,能够以任何复数的格式存储,且进一步地以128位之间隔排列在外部存储器中。
在其它实施例中,该纹理快取存储器控制器可被配置,用以代表纹理过滤单元由外部存储器读取一边框颜色,其中,通过边框颜色寄存器的指针所指向的一基地址,而得到外部存储器的位置。在一些实施例中,当边框颜色操作时,该纹理快取存储器可被配置用以代表纹理过滤单元,以所述格式其中之一,读取一边框颜色。在其它实施例中,该纹理快取存储器可被配置,用以将由外部存储器所读取的边框颜色存储至纹理快取存储器。在一些实施例中,该纹理快取存储器控制器可被配置,将边框颜色信息以一纹理像素记录格式提供至该纹理过滤单元,以进行边框颜色的操作。在其它实施例中,当一纹理地址产生器产生一地址超出相对于纹理滤镜单元所处理的一纹理的范围时,则该纹理快取存储器控制器被配置由外部存储器读取一边框颜色。
与本发明的其它实施例一致,一种用以处理边框颜色信息的方法,该方法的步骤包括:将复数的边框颜色存储在一外部存储器;将所述边框颜色的外部存储器位置存储在一边框颜色寄存器;由该外部存储器读取所述边框颜色记录其中的单一记录;以一纹理像素格式将该单一记录存储在一纹理快取存储器;以及当纹理贴图操作需要边框颜色信息时,将单一记录格式的纹理像素记录提供给一纹理过滤单元。
在某些实施例中,将所述边框颜色存储至外部存储器的步骤由一软件驱动程序执行。存储至外部存储器的步骤,更包括:将所述边框颜色的每一边框颜色转换至复数的数据格式;以及将所述边框颜色以所述数据格式存储至外部存储器。该转换操作可将每一边框颜色转换为至少12种数据格式。在外部存储器中,该转换操作亦以128位的间隔,将每一边框颜色存储至外部存储器。
在一些实施例中,该存储至外部存储器的步骤更包括:对于一绘图处理单元可执行的每一着色器,将至少16种边框颜色存储至外部存储器中。在一些实施例中,更进一步包括,将至少一边框颜色指标存储至边框颜色寄存器,该至少一边框颜色指标指向所述边框颜色存储在外部存储器的位置。对于一绘图处理单元可平行执行的每一着色器而言,在一些实施例中,更包括存储至少一边框颜色指标。
在其它实施例中,一绘图处理单元,包括:一边框颜色寄存器、一纹理快取存储器,一纹理快取存储器控制器,以及一纹理过滤单元;其中,该边框颜色寄存器存储至少一边框颜色指标,该至少一边框颜色指标指向至少16种边框颜色所在的一外部存储器地址;且其中,该纹理快取存储器控制器可被配置,将该16种边框颜色以一纹理像素记录格式提供至该纹理过滤单元,以进行边框颜色的操作;该纹理快取存储器控制器,可被配置用以将由外部存储器所读取的边框颜色存储至纹理快取存储器;该纹理快取存储器控制器,亦被配置用以代表该纹理过滤单元,由该外部存储器的一基地址读取一边框颜色,该基地址由存储在该边框颜色寄存器的一指针所指定;将该至少16种边框颜色存储在外部存储器中,而当该纹理过滤单元需要一边框颜色进行纹理贴图操作时,由纹理快取存储器控制器读取;以及,以复数的格式,将该至少16种边框颜色以128位的间隔排列在外部存储器之中。
虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明,任何所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可做些许更动与润饰,因此本发明的保护范围当视本发明的申请专利范围所界定者为准。

Claims (19)

1.一种绘图处理单元,包括:
一边框颜色寄存器;
一纹理快取存储器;
一纹理快取存储器控制器;及
一纹理过滤单元;
其中,该边框颜色寄存器存储一边框颜色指标,该边框颜色指标用于指示存储边框颜色信息的外部存储器地址;以及
其中,该边框颜色信息存储在该外部存储器中,当该纹理过滤单元需要一边框颜色进行纹理贴图操作时,通过该纹理快取存储器控制器读取。
2.如权利要求1所述的绘图处理单元,其中,对于可由绘图处理单元执行的每一着色器事件,该边框颜色寄存器存储至少一边框颜色指标。
3.如权利要求1所述的绘图处理单元,其中,由绘图处理单元执行的每一着色器事件,该外部存储器被配置用以存储复数的边框颜色。
4.如权利要求1所述的绘图处理单元,其中,该外部存储器被配置以复数的格式存储每一边框颜色。
5.如权利要求4所述的绘图处理单元,其中,以所述格式存储的边框颜色,以一既定的间隔排列在外部存储器中。
6.如权利要求1所述的绘图处理单元,其中,该纹理快取存储器控制器被配置用以代表该纹理过滤单元,由该外部存储器的一基地址读取的一边框颜色,该基地址由存储在该边框颜色寄存器的一指针所指定。
7.如权利要求1所述的绘图处理单元,其中,该纹理快取存储器控制器被配置用以代表该纹理过滤单元,以所述格式其中之一,读取一边框颜色进行边框颜色操作。
8.如权利要求1所述的绘图处理单元,其中,该纹理快取存储器控制器被配置用于存储由该纹理快取存储器的外部存储器所读取的边框颜色信息。
9.如权利要求1所述的绘图处理单元,其中,该纹理快取存储器控制器被配置为将边框颜色信息以一纹理像素记录格式提供至该纹理过滤单元,以进行边框颜色的操作。
10.如权利要求1所述的绘图处理单元,其中,当一纹理地址产生器产生一地址超出相对于纹理滤镜单元所处理的一纹理的范围时,则该纹理快取存储器控制器被配置由该外部存储器读取边框颜色。
11.如权利要求1所述的绘图处理单元,其中,该边框颜色寄存器存储复数的边框颜色指标,用以平行读取复数的着色器所需的边框颜色信息。
12.一种处理边框颜色信息的方法,该方法包括下列步骤:
将复数的边框颜色存储至一外部存储器;
在该外部存储器中,将所述边框颜色的位置存储至一边框颜色寄存器;
由该外部存储器读取所述边框颜色记录的一单一记录;
以一纹理像素记录格式,将该单一记录存储在一纹理快取存储器;以及
对于纹理贴图操作所需的边框颜色信息,将纹理像素记录格式的该单一记录提供至一纹理过滤单元。
13.如权利要求12所述的处理边框颜色信息的方法,其中,存储至该外部存储器的步骤,进一步包括:
将每一边框颜色转换为复数的数据格式,并将所述边框颜色以所述数据格式存储在该外部存储器。
14.如权利要求12所述的处理边框颜色信息的方法,其中,存储至该外部存储器的步骤,进一步包括:
对于可由绘图处理单元执行的每一着色器,将所述边框颜色存储至该外部存储器。
15.如权利要求12所述的处理边框颜色信息的方法,更包括以下步骤:
产生一地址,超出相对于纹理滤镜单元所处理的一纹理的范围。
16.如权利要求13所述的处理边框颜色信息的方法,其中,转换每一边框颜色的步骤,进一步包括:
将该外部存储器中的每一边框颜色,以一既定的间隔排列在该外部存储器中。
17.如权利要求12所述的处理边框颜色信息的方法,更包括以下步骤:
将一边框颜色指标存储至该边框颜色寄存器,该边框颜色指标指向所述边框颜色存储于该外部存储器的一位置。
18.如权利要求12所述的处理边框颜色信息的方法,更包括以下步骤:
对于由该绘图处理单元平行执行的每一着色器,存储一边框颜色指标。
19.如权利要求12所述的处理边框颜色信息的方法,其中,将每一数据格式,以一既定间隔,存储在该外部存储器的连续区块中。
CNA2007101120142A 2006-06-20 2007-06-19 绘图处理单元及处理边框颜色信息的方法 Pending CN101145239A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US81505306P 2006-06-20 2006-06-20
US60/815,053 2006-06-20

Publications (1)

Publication Number Publication Date
CN101145239A true CN101145239A (zh) 2008-03-19

Family

ID=39022707

Family Applications (3)

Application Number Title Priority Date Filing Date
CNA2007101120142A Pending CN101145239A (zh) 2006-06-20 2007-06-19 绘图处理单元及处理边框颜色信息的方法
CN2007101233278A Active CN101114376B (zh) 2006-06-20 2007-06-20 减少存储库碰撞的方法及处理图形的计算机系统
CN200710123324A Active CN100578542C (zh) 2006-06-20 2007-06-20 图形处理系统及在图形处理系统中储存纹理图数据的方法

Family Applications After (2)

Application Number Title Priority Date Filing Date
CN2007101233278A Active CN101114376B (zh) 2006-06-20 2007-06-20 减少存储库碰撞的方法及处理图形的计算机系统
CN200710123324A Active CN100578542C (zh) 2006-06-20 2007-06-20 图形处理系统及在图形处理系统中储存纹理图数据的方法

Country Status (2)

Country Link
CN (3) CN101145239A (zh)
TW (3) TWI341976B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102982503A (zh) * 2010-04-21 2013-03-20 威盛电子股份有限公司 绘图处理单元

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8368701B2 (en) * 2008-11-06 2013-02-05 Via Technologies, Inc. Metaprocessor for GPU control and synchronization in a multiprocessor environment
US9230517B2 (en) 2012-05-31 2016-01-05 Microsoft Technology Licensing, Llc Virtual surface gutters
DE102015115605A1 (de) 2014-09-16 2016-03-17 Jeffrey A. Bolz Techniken zur Weiterleitung von Abhängigkeiten in einer API
CN106611401B (zh) 2015-10-22 2020-12-25 阿里巴巴集团控股有限公司 一种在纹理内存中存储图像的方法及装置
CN112381715B (zh) * 2020-11-16 2024-04-09 航天科工(北京)空间信息应用股份有限公司 海量遥感影像并行生成地图瓦片的方法和装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5765182A (en) * 1995-04-13 1998-06-09 Lsi Logic Corporation Interleaving memory on separate boards
US5828382A (en) * 1996-08-02 1998-10-27 Cirrus Logic, Inc. Apparatus for dynamic XY tiled texture caching
US6525737B1 (en) * 1998-08-20 2003-02-25 Apple Computer, Inc. Graphics processor with pipeline state storage and retrieval
US6300953B1 (en) * 1998-10-15 2001-10-09 Nvidia Apparatus and method for grouping texture cache requests
US6266733B1 (en) * 1998-11-12 2001-07-24 Terarecon, Inc Two-level mini-block storage system for volume data sets
US7050063B1 (en) * 1999-02-11 2006-05-23 Intel Corporation 3-D rendering texture caching scheme
US6650333B1 (en) * 1999-06-09 2003-11-18 3Dlabs Inc., Ltd. Multi-pool texture memory management
US6825848B1 (en) * 1999-09-17 2004-11-30 S3 Graphics Co., Ltd. Synchronized two-level graphics processing cache
JP2005516314A (ja) * 2002-02-01 2005-06-02 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ コンピュータ・グラフィックスのステップを発生させ無い3次元テクスチャ・マッピング
TWI249144B (en) * 2003-02-21 2006-02-11 Via Tech Inc Single level MIP filtering algorithm for anisotropic texturing
US7053904B1 (en) * 2003-12-15 2006-05-30 Nvidia Corporation Position conflict detection and avoidance in a programmable graphics processor
CN1273940C (zh) * 2004-04-12 2006-09-06 浙江大学 一种分级层次化组装式深度拼图集的快速绘制森林方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102982503A (zh) * 2010-04-21 2013-03-20 威盛电子股份有限公司 绘图处理单元

Also Published As

Publication number Publication date
CN101122997A (zh) 2008-02-13
TW200819987A (en) 2008-05-01
CN100578542C (zh) 2010-01-06
TW200809691A (en) 2008-02-16
CN101114376B (zh) 2010-06-23
TWI341976B (en) 2011-05-11
TW200821988A (en) 2008-05-16
TWI395152B (zh) 2013-05-01
TWI367455B (en) 2012-07-01
CN101114376A (zh) 2008-01-30

Similar Documents

Publication Publication Date Title
EP3185217B1 (en) Allocation of tiles to processing engines in a graphics processing system
USRE44347E1 (en) Method and device for creating a two-dimensional representation of a three-dimensional structure
US6995765B2 (en) System, method, and computer program product for optimization of a scene graph
EP0725367B1 (en) Computer 3D rendering method and apparatus
CN104036537A (zh) 多分辨率一致光栅化
CN101145239A (zh) 绘图处理单元及处理边框颜色信息的方法
EP2596471B1 (en) Split storage of anti-aliased samples
US8743117B2 (en) Processing of 3D computer graphics data on multiple shading engines
US5949421A (en) Method and system for efficient register sorting for three dimensional graphics
JPH10116346A (ja) テクスチャの高速ダウンロード方法
US11030095B2 (en) Virtual space memory bandwidth reduction
US10733782B2 (en) Graphics processing systems
CN113256479A (zh) 用于在图形处理系统中平铺图元的方法和平铺引擎
US9934548B2 (en) Hierarchical techniques for storing graphics primitives
JPS59172064A (ja) ビデオ・システムにおける並列処理方式
EP1532582B1 (en) Method and apparatus for image data processing using image strips and circular addressing arrangement
JP2020191012A (ja) 画像処理装置、撮像装置、画像処理方法
US7372466B2 (en) Image processing apparatus and method of same
JP2003132347A (ja) 画像処理装置
US11321803B2 (en) Graphics processing primitive patch testing
US20230195626A1 (en) Variable dispatch walk for successive cache accesses
US20230334758A1 (en) Methods and hardware logic for writing ray tracing data from a shader processing unit of a graphics processing unit
JP5310079B2 (ja) 画像描画装置
RU2242047C1 (ru) Открытая система для автоматизации обработки, анализа и распознавания изображений
GB2614098A (en) Methods and hardware logic for writing ray tracing data from a shader processing unit of a graphics processing unit

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Open date: 20080319