CN101178806B - 计算机中管理纹理数据的系统与方法 - Google Patents
计算机中管理纹理数据的系统与方法 Download PDFInfo
- Publication number
- CN101178806B CN101178806B CN2007101990155A CN200710199015A CN101178806B CN 101178806 B CN101178806 B CN 101178806B CN 2007101990155 A CN2007101990155 A CN 2007101990155A CN 200710199015 A CN200710199015 A CN 200710199015A CN 101178806 B CN101178806 B CN 101178806B
- Authority
- CN
- China
- Prior art keywords
- texture
- request
- data
- capacity
- moderator
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/001—Texturing; Colouring; Generation of texture or colour
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
本发明提供一种计算机中管理纹理数据的系统与方法。此方法包括于仲裁器中接收一预载请求,该预载请求用以在着色处理之前请求处理纹理数据和于仲裁器中接收一相依读取请求,该相依读取请求用以于着色处理之后请求处理纹理数据。此方法也包括于仲裁器中接收一从纹理缓冲器而来的容量信号,并利用虚拟缓冲器的容量信号,从对应于被授权的预载请求和相依读取请求中选择其一。此方法更进一步包括于纹理处理器中,对应所选择的请求而处理纹理数据。本发明所述的计算机中管理纹理数据的系统与方法,改进了纹理处理操作。
Description
技术领域
本发明是关于计算机绘图数据的处理,更是关于计算机利用共享纹理引擎的方式来管理纹理数据的系统及方法。
背景技术
今日计算机绘图运算,纹理处理包括各种形式的纹理映射(texture mapping)技术如:三维映射(cubic mapping)、mip映射(mipmapping)和各向异性映射(anisotropic mapping)。其运用大量和复杂的运算及逻辑操作来完成纹理处理,因此造成了绘图处理操作对额外专用电路的需求。因此,这些专用纹理处理电路占用绘图处理单元(GPUs)中硬件逻辑门显著的使用率。
除了纹理处理,绘图处理器也包括执行各种形式的着色器(shader)的逻辑门。举例来说,着色程序(shader program)可借顶点着色器(vertex shader),几何着色器(geometry shader),像素着色器(pixel shader)等处理器(其他着色器)而被执行。大体来说,着色器可以通过纹理处理硬件的各级着色器处理程序来达成纹理映射服务。举例来说,一些着色器在执行着色器程序前会借着使用预载(或称预取)纹理数据得到提高效率的好处。
在像素着色操作中,当对纹理处理的需求可在着色操作前被确实地预测,则预载纹理的方式可说是特别的有利。此可视为一种静态纹理处理法。相对地,对于特别的绘图串流元件,其他的着色操作则需要在着色程序执行期间即时提取及处理这些纹理数据。这可视为一种动态纹理处理法。由着色程序发出请求而动作的纹理处理程序被称为相依读取纹理法(dependantread texturing),其在顶点和几何着色操作中更常被利用到。因为提供专用纹理处理器去定位各预载和相依读取纹理法会造成系统冗余度提升,且会因处理器的使用而提高成本,所以需要一种能共享纹理处理器的方法及系统。因此,为了改进纹理处理操作及达到最佳化,非定位式操作法的需求在业界存在已久。
发明内容
本发明揭露了一种计算机中管理纹理数据的方法,包括:
接收一预载请求至一仲裁器中,该预载请求用以请求在着色处理前进行纹理数据处理;接收一相依读取请求至该仲裁器中,该相依读取请求用以请求在着色处理后进行纹理数据处理;从一纹理缓冲器中接收一容量信号至该仲裁器中,该容量信号由该纹理缓冲器所产生,且该容量信号表示该纹理缓冲器或一虚拟缓冲器的容量;依该容量信号,从该预载请求和该相依读取请求中决定选择何者被授权;和依该所选择的请求,于一纹理处理器中处理纹理数据。
本发明揭露了一种计算机中管理纹理数据的系统,包括:一纹理处理器用以在绘图管线中处理纹理数据;一着色处理区用以在绘图管线中对绘图元素进行着色操作;一仲裁器用以从多个请求中作选择以进行纹理处理服务;和一纹理缓冲器用以从该纹理处理器中接收一已处理的纹理数据;其中,该仲裁器依照一容量信号作选择,而该容量信号由接收自该纹理缓冲器的一虚拟缓冲器的容量所决定。
本发明也揭露了一种计算机中管理纹理数据的系统,包括:
一仲裁器,其从一相依读取请求和一预载请求中作选择以服务一纹理处理器;一纹理缓冲器,用以对应该预载请求接收一已处理纹理数据;和一虚拟缓冲器,功能如同该纹理缓冲器,用以传送一容量信号至该仲裁器作为其输入;其中,该仲裁器依照该容量信号作选择,而该容量信号由该虚拟缓冲器的容量所决定。
本发明所述的计算机中管理纹理数据的系统与方法,改进了纹理处理操作。
附图说明
参考下图,有助于了解本发明揭露技术的各个方面。于图中的元件不需要和实际等比例,而重点在强调说明本发明揭露技术的原理。
图1是一使用本发明系统与方法的示范计算机系统说明方块图。
图2A是一实施纹理数据管理系统的说明方块图,其对预载及相依纹理请求皆采用单通道。
图2B是一使用两独立纹理通道来管理预载和相依纹理数据的说明方块图。
图2C是一管理纹理数据系统的一实施方式说明方块图。
图3A是一管理纹理数据系统的另一实施方式说明方块图。
图3B是3A图中的系统的纹理数据流程说明方块图。
图4是一管理纹理数据系统的再一实施方式的说明方块图。
图5是一管理纹理数据系统的顶层说明方块图。
图6是一仲裁器控制回路实施方式的说明方块图。
图7是一仲裁器控制回路另一实施方式的说明方块图。
图8是一虚拟缓冲器的示范实施方式说明方块图。
图9是一管理纹理数据方法的实施方式说明方块图。
图10是一管理纹理数据方法的另一实施方式的说明方块图。
图11是一管理纹理数据方法的又一实施方式的说明方块图。
具体实施方式
为了让本发明的上述和其他目的、特征和优点能更明显易懂,下文特举多个较佳实施例,并配合所附图示,作详细说明如下。
前文已对本发明做各特征的摘要,请参考本文及附图,于此将做更详细的描述。然而,尽管本发明配合附图做详细的描述,然其并非用以限制本发明。相反的,在不脱离权利要求书中所界定的范围及精神,本发明当可做所有型式的更动及润饰。
参考图1,此为一方块图,描绘出示范的计算机系统,其利用了本发明揭露的系统与方法。此计算机系统100包括一中央处理器(CPU)102,一系统存储器104和一绘图处理系统110。中央处理器102运作各种功能,包括决定信息,例如,允许绘图显示产生的视点位置。系统存储器104贮存多种数据,包括绘图显示数据,像是多重纹理映射和纹理描述符号。绘图处理系统110根据中央处理器102的决定信息及系统存储器104储存的数据,产生显示数据于显示装置130,例如一屏幕。
中央处理器102通过系统接口108对绘图处理系统110提出请求,包括请求处理和显示绘图数据。从中央处理器102发出的绘图请求会被绘图处理系统110接收并提供给前端处理器112。前端处理器112产生一像素串(pixel string),其含有配合显示装置130的像素坐标(pixel coor dinates)。从前端处理器112产生的像素坐标数据会通过快取系统114而传递给纹理处理器116。快取系统114可提供短期数据储存区给那些用于处理纹理及操作着色器的信息。当其预测未来的操作将有新的需求时,在纹理处理器116内的数据的预载操作可将数据储存于快取系统114或者可将该数据从系统存储器104抽取至快取系统114,基于从纹理处理器116发出的特别请求。着色器118也可在执行着色程序时请求纹理数据。
除了能替纹理处理器116储存数据,快取系统114也能替着色器118储存数据。虽然此图上只画单个着色器,着色器118其实可能包括顶点着色器、像素着色器、几何着色器以及(或者)其他元件。再者,着色器118能包含多重着色器的执行单位,其用以处理多个绘图并列执行线程(graphics threads in parallel)。着色器118也能执行绘图数据的各种变形。就这一点而言,数据可以从世界坐标转换为模型视界坐标。关于着色器118运作的处理功能已被熟知,于此不再赘述。之后,绘图数据会通过码框缓冲器120,其用于将显示信号产生于显示装置130上。必需注意一点:计算机系统100也能促进纹理请求预载及相依纹理读取的处理,将详尽说明于下。
参照图2A,此为一纹理数据管理系统对预载及相依纹理请求采用单通道的说明方块图。纹理缓冲器132包含交插的纹理数据,在某些情况下,当预载纹理数据不能进入着色器中,可能会造成死锁。因为请求的相依纹理数据134在先进先出型纹理缓冲器不能往他处移动,进而造成纹理缓冲器132可能因忙于等待预载纹理数据而造成死锁。因此,其需要一相依数据旁通道。
图2A非限制性例中也包括了一仲裁器136,其用以接收预载纹理请求及相依纹理请求。耦接至仲裁器136的为一快取系统138(类同图1中的快取系统114),其至少用于储存传至仲裁器136的部分数据。一纹理处理器140(类同图1中的纹理处理器116)耦接至快取系统138,其至少用以处理储存于快取系统138的部分数据。该部分数据会被传送至纹理缓冲器132(可能会发生死锁现象)及着色处理器142。
再来参考图2B,此为采用两独立通道管理预载和相依纹理数据的说明方块图。此结构可避开如图2A所述可能发生的死锁现象。但同时,若预载及相依纹理数据请求两者的使用率不对称,则两独立纹理管理系统将导致纹理缓冲器使用的无效率及失衡。
更特别的是,如图2B所示,快取系统A139a用以从存储器中接收数据,也预载纹理请求数据。纹理处理器A141a耦接至快取系统A139a,其用以从快取系统A139a接收数据。纹理缓冲器A131a耦接至纹理处理器A141a,其可在先进先出组态中接收预载数据和传送数据至着色处理器141。
相似地,快取系统B139b配置以用于接收从存储器传来的数据,也接收相依纹理请求。快取系统B139b耦接至纹理处理器B141b,其可传送储存数据至纹理处理器B141b。纹理缓冲器B131b耦接至纹理处理器B141b,其用以在先进先出组态中缓冲相依纹理数据。纹理缓冲器B131b则是耦接至着色处理器141。着色处理器141用以将数据传回至快取系统B139b。
参照图2C,此为说明管理纹理数据系统的实施方式,其可解决上述的问题。系统150包括一仲裁器152,其用以从相依读取请求或预载请求中选择服务于纹理处理器158的请求。纹理处理器158执行纹理相关运算,诸如纹理过滤处理,包括但不限于双线性过滤(bilinear filtering)、三线性过滤(trilinear filtering)和各向异性过滤(anisotropic filtering)。使用纹理缓冲器154在纹理数据传送至着色器前暂时性储存之。此外,虚拟缓冲器156更进一步对应至使用中的多个着色处理区型式中的一者。纹理数据包括,例如,在特定的绘图元件上执行纹理处理的数据。本文中,绘图元件可以是如像素、顶点或几何基元(geometricprimitive)等。
系统150也包括一虚拟缓冲器156,其具有、且通常优于纹理缓冲器154的功能。举例而言,虚拟缓冲器156可被系统驱动程序设定成比纹理缓冲器154多10%的容量。在此程度下,系统150可借改变与虚拟缓冲器156或纹理缓冲器154的关系切换积极或保守模式。举例来说,当系统被设定为保守模式时,虚拟缓冲器156可以设定与纹理缓冲器154具同样的容量。利用虚拟缓冲器156的容量,仲裁器152决定附加的预载数据能否被容纳,故可决定应授权预载请求或是相依读取请求。同时,预载请求的及早决定将会使系统运作更为良好,当虚拟缓冲器156被调整成和纹理缓冲器154具相同的容量,系统150会以更保守的方式运作,且不会因为缺乏对随后处理预载数据的容量而导致拖延。
参照图3A,此为一管理纹理数据系统的另一替代实施方式方块图。系统160包含一纹理处理器162,其用以进行纹理处理操作,诸如纹理过滤。此系统160也包括一着色处理区164,其用以完成计算机绘图元件的着色操作。此着色处理区164依据处理何种绘图元素可被配置成例如:像素着色器、顶点着色器和(或)几何着色器。某些情形下,系统160可于纹理处理器162中处理预载数据以改善本身的运作。这个方法中,将预载数据进行纹理处理是在对同样的绘图元件进行着色处理之前执行的。另外,若着色处理已被操作,则需要对绘图元件进行纹理处理。在此环境下,纹理处理器162发出对纹理服务的请求是一种对相依(动态)读取操作的请求。于此环境下,当预载请求和相依读取请求两者皆被发出,则仲裁器166决定授权何者。当仲裁器166授权一预载请求,则纹理处理器162会处理预载纹理数据,并将结果传给纹理缓冲器168,以致提升对着色处理区随后的利用性。另外,当仲裁器166授权一相依读取请求,此已处理的相依读取数据将会回传至着色器处理区164。此着色处理区164,可包括,例如,作为接收已处理的相依读取纹理数据的一着色缓冲器。此着色器也可用于接收或储存与纹理处理无关的数据。
参照图3B,此为图3A所描述的系统中纹理数据流的方块图。基于负载量的纹理通道裁决(Load-based texture channelarbitration)对于所有请求皆可完成,且一个或一个以上的请求会路经此通道,该通道较后端纹理缓冲器可有相对较小的负载。纹理缓冲器可被维持平衡且预载纹理请求可以大体平稳的速率被预取。着色处理器可接收这些数据,且使绘图元素在请求纹理数据的过程中维持平衡。
参照图4,此为一管理纹理数据系统的替代实施方式说明方块图。一系统180包括驱动逻辑188,其用以提供控制信号予绘图管线元件。系统180更包括一第一逻辑区182,该第一逻辑区包括一第一缓冲器183。该第一逻辑区182用以执行纹理处理,而该第一缓冲器183用以接收部分预载纹理数据值。系统180更包括第二逻辑区184,该第二逻辑区包括一第二缓冲器185。第二逻辑区184用以对抽像化的像素、顶点和几何等层次执行着色操作。第二缓冲器185也用以接收部分预载纹理数据值。第一缓冲器183的容量和部分第二缓冲器185可合并成一虚拟缓冲器。利用虚拟缓冲器的容量作为仲裁器的输入,而仲裁器决定了预载或相依读取请求何者该被授权。系统180也包括一纹理缓冲逻辑186,其用以对应于多重上下文的管理纹理数据。举例来说,纹理缓冲逻辑186可用于第一缓冲器183和第二缓冲器185之间的沟通。此外,纹理缓冲逻辑186能被用于决定第一缓冲器183、第二缓冲器185和虚拟缓冲器之间功能性的关系。
参照图5,此为一管理纹理数据系统的顶层说明方块图。系统200从一预载输入204或一相依读取输入206中接收纹理请求。对预载输入204的请求是从系统驱动逻辑而来,而对相依读取入206的请求是从着色器而来。一纹理描述符元管理器202从预载输入204及相依读取输入206接收纹理数据。当完成两个来源中其中一者,将会传送一纹理请求给仲裁器208。当数据可从纹理描述符元管理器202中取得时,则仲裁器208会从相依读取请求和(或)预载请求中选择其一。关联于所选择请求的纹理数据于是被送至纹理地址产生管线210、211。
如上述,系统200的某些实施方式包括多重纹理处理管线。纹理地址产生管线210、211能利用众多纹理映射技巧中任一种计算出纹理地址。纹理请求数据于是被传送至纹理快取过滤器1212、纹理快取过滤器2213进行纹理数值计算以实现最终的纹理颜色。
当仲裁器208授权关联于预载输入204的请求,将使得纹理处理的结果储存于纹理缓冲器1214、纹理缓冲器2215。另外,当仲裁器208授权关联于相依读取输入206的请求,则纹理处理的结果会被储存于缓冲器,该缓冲器用以支持着色器,诸如像素着色器、顶点着色器和(或)几何着色器。
参照图6,其为一仲裁器控制回路的实施方式说明方块图。此纹理仲裁器可用以促使预载数据和相依读取数据的平衡。举例来说,若预载请求排入次数过于频繁,着色器将无法分配足够的数据于着色处理器中以完成现有的执行线程。另外,若相依读取请求被排入的太过频繁,不足量的执行线程占据管线,则潜在因素将导致明显的延迟。纹理地址产生器/仲裁器252接收预载请求和相依读取请求,并决定纹理服务该授权何者。一选定的纹理请求将被传送至纹理管线254,其为一长型管线用于达成纹理过滤操作。已处理的纹理数据于是依关联授权的请求储存于纹理缓冲预载256或是纹理缓冲相依读取258。纹理缓冲相依读取258可能具有明显少于纹理缓冲预载256的容量,但具有较高的优先处理权。为了记录纹理缓冲预载256的可用空间,此纹理地址产生器/仲裁器252包括一内部计数器。每当一预载请求被授权而传送至纹理管线254,该内部计数器将会根据纹理管线254产生的数据大小而递减。因此,当着色器260于纹理缓冲预载256中使用数据时,其会根据已消耗的数据大小传送一对应信号给纹理地址产生器/仲裁器252。位于纹理地址产生器/仲裁器252中的计数于是增加。使用此方法,纹理地址产生器/仲裁器252可实现依纹理缓冲预载256可用的空间去决定授权预载请求还是相依读取请求。
参照图7,此为本文所述系统实施方式的数据流程说明方块图。此系统270包括一仲裁器272,其用以接收一预载请求和一相依读取请求。此预载请求是对同样绘图元素进行着色处理的处理纹理数据优先权的请求。于此揭露的绘图元素可以是:一像素、一顶点或一几何模型。一相依读取请求是对应已在着色器279中经着色处理过的绘图元素进行纹理处理的请求。仲裁器272用以从纹理缓冲器276接收一容量信号。容量信号指出在纹理缓冲器276中可用的储存空间。纹理缓冲器276接收经纹理处理器274处理过的预载数据的结果。从纹理缓冲器276,处理过的纹理数据被传送至着色缓冲器280。着色缓冲器280用以接收和储存着色器279所需要用来执行着色操作的数据。着色缓冲器280可分割其中一部分用来存储纹理相关数据和剩下的部分用来存储无关纹理处理的数据。当着色器279需要额外的纹理处理,则产生相依读取请求。当仲裁器272授权该相依读取请求,则纹理处理器274处理相依读取请求并产生结果,该结果直接传至着色器279。依照系统的状况,优先权暂存器282会授权预载请求或相依读取请求其中一者有较大的优先权。该优先权暂存器282可被用来与仲裁器272沟通和储存给仲裁器272的优先权信息。
因为预载数据会使系统的效率增加,预设状态会授权预载请求,只要纹理缓冲器276有容量给额外数据。传统的方式是在确实有空间时,由纹理缓冲器276传送一容量信号给仲裁器272以授权预载请求。然而,因为在仲裁器272及纹理缓冲器276之间的潜伏时间,缓冲器资源无法被完全利用。在更激进的方案中,虚拟缓冲器甚至会设定得比纹理缓冲器276来得大。虚拟缓冲器的大小可依各种因素做设定。如图8所示,其为一虚拟缓冲器292的示范实施例的说明方块图,而虚拟缓冲器290可由纹理缓冲器292、着色缓冲部分294及比例倍增系数296决定其大小。于此,一更保守的方法是有利的,虚拟缓冲器290可与纹理缓冲器292设定为相同的容量。只要将着色缓冲器部分的大小设定为零,且比例倍增系数296设定为一单位值即可达成。一更激进的方法,然而,虚拟缓冲器290可被定为纹理缓冲器292和着色缓冲部分294的累计容量。此两方法皆能被比例倍增系数296修改成值为1.1,其将使虚拟缓冲器290比纹理缓冲器292及着色缓冲部分294两者的总合容量还多百分之十。
参照图9,此为一管理纹理数据方法的实施方式说明方块图。如步骤510,方法500开始将预载纹理数据于执行着色操作前输入第一缓冲器。按此方法,纹理数据会被处理并使其可用于着色器随后的处理,而随后的处理能依着色器对未来操作的预测需求而进行。通过预载纹理数据,从存储器取得所需的数据所对应的潜伏时间将被消灭,因而改进运作。此方法也包话,于步骤520,若着色器需要对数据做不间断的操作,则从存储器读取未载入的纹理数据。若着色器正在处理特别的绘图元素,可使用本操作。在某些环境,着色器会于特别的着色操作完成之前,执行一相依读取搜寻额外数据。因此,使用相依读取的着色处理比使用预载数据的相似着色处理需要较大量的时钟周期。
参考图10,此为管理纹理数据方法的替代实施方式说明方块图。方法600包括从系统存储器预载第一纹理数据至第一缓冲器(步骤610)。方法600也包括预载第一纹理数据至第二缓冲器(步骤620)。其预载纹理数据是对应于尚未于第一逻辑区中被处理的绘图元素。于步骤630,第一纹理数据被用于执行着色运算。当使用预载纹理数据,着色运算不会因从存储器位置检索数据的潜伏时间而影响执行。方法600也包括动态地将第二纹理数据载入于第一缓冲器(步骤640)。动态载入发生于当第一逻辑区需要的纹理数据并非储存于第一或第二缓冲器。第二纹理数据是为了纹理服务而由处理相依读取请求而产生的。已处理的相依读取请求将结果写入第一缓冲器。当第一缓冲器缺乏容量去接收第二纹理数据,则现存于第一缓冲器的数据会被写入第二缓冲器(步骤650)。
参照图11,此为一管理纹理数据方法的另一替代实施方式的说明方块图。此方法700包括接收一预载请求于仲裁器(步骤710)。预载请求用以请求于着色器处理一特定绘图元素之前处理纹理数据。绘图元素包括用于绘图渲染(graphics rendering)的像素、顶点和几何等。方法700包括于仲裁器中接收一相依读取请求(步骤720)。当请求已基于一随后纹理服务需求而产生时,相依读取请求则用来请求于着色处理之后,进行纹理数据处理。方法700也包括于仲裁器中接收一容量信号(步骤730)。此容量信号可由纹理缓冲器的一虚拟缓冲器的容量所决定并且可指出纹理缓冲器或虚拟缓冲器的实际容量。文中的虚拟缓冲器可依纹理缓冲器的一些功能来决定分配多大的缓冲空间。虚拟缓冲器也包括纹理缓冲器和着色缓冲器的累积容量,或其部分累积容量。
方法700也包括决定授权何请求(步骤740)。其可由仲裁器利用容量信号发出此决定。其依照容量信号的值,决定授权给预载请求或相依读取请求。举例而言,若容量值为1表示虚拟缓冲器有可用的空间,则所选择请求包括预载请求;若容量值并非1表示虚拟缓冲器没有可用的空间,则所选择的请求包括相依读取请求。仲裁器在纹理服务上,对平衡相依读取请求及预载请求扮演一重要角色。举例来说,若预载请求被排入太过频繁,着色器将无法分配足够的数据去产生新的执行线程。另外,若相依读取请求被排入太过频繁,则不足量的新执行线程将占据管线,且着色器将根据从系统存储器接收纹理描述符号的潜伏时间而折中妥协。
虚拟缓冲器可作为驱动器的变量,其将纹理缓冲器依不同的着色程序从实际大小调整至大于实际的大小。依此方法,纹理管线可授权更多的预载请求而使虚拟缓冲器有更多的容量去容纳额外的数据。仲裁器也可预先检查着色排程器在着色器内部缓冲器中是否有可分配或可预留的纹理缓冲空间。分配的空间加上实际纹理缓冲器大小可因应更多的预载请求排程。当预载请求依纹理缓冲器的可用性而被授权时,相依读取请求被排有高优先权,因为每个请求可预留显著的着色器内部资源。因此,从授权相依读取请求改至预载请求的触发开关可以是虚拟缓冲器或纹理缓冲器的电平。
为了提供系统额外的弹性,该电平可依着色程序而调整。例如,若像素着色器的预载和顶点着色器的相依读取同时存在,则触发器电平可被设定为一相对高值以利像素着色器快速完成动作。此外,因为纹理缓冲器的释放乃依照数据格式,而格式的信息也于反馈信息给仲裁器时提供。此方法也包括处理对应所选择的请求的纹理数据(步骤750)。对应所选择的请求的纹理数据会通过纹理快取控制和纹理过滤单位而被处理,且将结果表现于纹素(texel)的颜色。一预载纹素颜色可被储存于纹理缓冲器,等待着色器授权一新的执行线程。相对的,一旦着色器特别请求相依读取纹素的颜色,这些数据可被直接传送至着色器。
本揭露可实施于硬件、软件、韧体或是上述的结合。一些实施方式可被安排于软件或韧体上,其储存于存储器并且受适当的指令执行系统所执行。如果实施于硬件上,利用下述技术的结合可以达成其他的实施方式。一离散逻辑电路具有逻辑门,可依照数据信号来完成逻辑功能、一有适当整合的逻辑门特定应用集成电路(ASIC)、一可编程逻辑门阵列(PGA)、一现场可编程逻辑门阵列(FPGA)等等。
任何处理程序的描述或流程图中的步骤可被理解为表示模块、程序段或编码的部分,其包括一个或一个以上用以实施特定逻辑功能或处理步骤的可执行命令,并且在不超出本发明实施方式的范围,其他的方式用以执行的功能及前文所讨论的次序,亦包括依所牵涉的功能性实际上同时发生或颠倒的次序,其同样可被熟悉本项技术的人员所理解。
以上所述仅为本发明较佳实施例,然其并非用以限定本发明的范围,任何熟悉本项技术的人员,在不脱离本发明的精神和范围内,可在此基础上做进一步的改进和变化,因此本发明的保护范围当以本申请的权利要求书所界定的范围为准。
附图中符号的简单说明如下:
100:计算机系统,102:中央处理器,104:系统存储器,108:系统接口,110:绘图处理系统,112:前端处理器,114:快取系统,116:纹理处理器,118:着色器,120:码框缓冲器,130:显示器,132:纹理缓冲器,134:相依纹理数据,136:仲裁器,138:快取系统,140:纹理处理器,142:着色处理器,139a:快取系统A,139b:快取系统B,141a:纹理处理器A,141b:纹理处理器B,131a:纹理缓冲器A,131b:纹理缓冲器B,141:着色处理器,150:系统,152:仲裁器,154:纹理缓冲器,156:虚拟缓冲器,158:纹理处理器,160:系统,162:纹理处理器,164:着色处理区,166:仲裁器,168:纹理缓冲器,180:系统,182:第一逻辑区,183:第一缓冲器,184:第二逻辑区,185:第二缓冲器,186:纹理缓冲逻辑,188:驱动逻辑,200:系统,202:纹理描述符元管理器,204:预载输入,206:相依读取输入,208:仲裁器,210:纹理地址产生管线,211:纹理地址产生管线,212:纹理快取过滤器,213:纹理快取过滤器,214:纹理缓冲器,215:纹理缓冲器,252:纹理地址产生器/仲裁器,254:纹理管线,256:纹理缓冲预载,258:纹理缓冲相依读取,260:着色器,270:系统,272:仲裁器,274:纹理处理器,276:纹理缓冲器,279:着色器,280:着色缓冲器,282:优先权暂存器,290:虚拟缓冲器,292:纹理缓冲器,294:着色缓冲部分,296:比例倍增系数,500:方法,600:方法,700:方法。
Claims (14)
1.一种计算机中管理纹理数据的方法,其特征在于,包括:
接收一预载请求至一仲裁器中,该预载请求用以请求在着色处理前进行纹理数据处理;
接收一相依读取请求至该仲裁器中,该相依读取请求用以请求在着色处理后进行纹理数据处理;
从一纹理缓冲器中接收一容量信号至该仲裁器中,该容量信号由该纹理缓冲器所产生,且该容量信号表示该纹理缓冲器或一虚拟缓冲器的容量;
依该容量信号,从该预载请求和该相依读取请求中决定选择何者被授权;和
依该所选择的请求,于一纹理处理器中处理纹理数据。
2.根据权利要求1所述的计算机中管理纹理数据的方法,其特征在于,进一步包括从该纹理处理器传送一已处理的预载数据至该纹理缓冲器;
还进一步包括从该纹理处理器传送一已处理的相依读取数据至一着色处理区。
3.根据权利要求1所述的计算机中管理纹理数据的方法,其特征在于,当该虚拟缓冲器有可用的容量,则该选择的请求包括该预载请求;
当该虚拟缓冲器无可用的容量,则该选择的请求包括该相依读取请求。
4.根据权利要求1所述的计算机中管理纹理数据的方法,其特征在于,更进一步包括多个着色处理区型式,其中该虚拟缓冲器更是用以对应至所使用的多个着色处理区型式。
5.根据权利要求4所述的计算机中管理纹理数据的方法,其特征在于,该多个着色处理区型式是从包括一像素着色器、一顶点着色器及一几何着色器中选出。
6.一种计算机中管理纹理数据的系统,其特征在于,包括:
一纹理处理器用以在绘图管线中处理纹理数据;
一着色处理区用以在绘图管线中对绘图元素进行着色操作;
一仲裁器用以从多个请求中作选择以进行纹理处理服务;和
一纹理缓冲器用以从该纹理处理器中接收一已处理的纹理数据;
其中,该仲裁器依照一容量信号作选择,而该容量信号由接收自该纹理缓冲器的一虚拟缓冲器的容量所决定。
7.根据权利要求6所述的计算机中管理纹理数据的系统,其特征在于,多个请求包括:
一预载请求用以在该着色操作前,请求该纹理处理器对纹理数据进行该纹理处理服务;和
一相依读取请求用以在该着色操作后,请求该纹理处理器对纹理数据进行该纹理处理服务。
8.根据权利要求6所述的计算机中管理纹理数据的系统,其特征在于,更进一步包括一着色缓冲器接收用来执行着色操作的数据。
9.根据权利要求8所述的计算机中管理纹理数据的系统,其特征在于,该着色缓冲器包括一纹理部分,该纹理部分对应该相依读取请求而接收该已处理的纹理数据。
10.根据权利要求6所述的计算机中管理纹理数据的系统,其特征在于,若该容量信号指出该容量小于该虚拟缓冲器的全部容量,则仲裁器授权该预载请求;
若该容量信号指出该容量为该虚拟缓冲器的全部容量,则该仲裁器授权相依读取请求。
11.根据权利要求10所述的计算机中管理纹理数据的系统,其特征在于,该仲裁器包括一计数器用以追踪该纹理缓冲器的容量。
12.根据权利要求11所述的计算机中管理纹理数据的系统,其特征在于,该计数器随该纹理缓冲器的所写入的已处理纹理数据的大小而递减其计数量;
该计数器随该纹理缓冲器的所消耗的已处理纹理数据的大小而递增其计数量。
13.一种计算机中管理纹理数据的系统,其特征在于,包括:
一仲裁器,其从一相依读取请求和一预载请求中作选择以服务一纹理处理器;
一纹理缓冲器,用以对应该预载请求接收一已处理纹理数据;和
一虚拟缓冲器,功能如同该纹理缓冲器,用以传送一容量信号至该仲裁器作为其输入;
其中,该仲裁器依照该容量信号作选择,而该容量信号由该虚拟缓冲器的容量所决定。
14.根据权利要求13所述的计算机中管理纹理数据的系统,其特征在于,该纹理处理器执行纹理相关的运算。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/852,354 | 2007-09-10 | ||
US11/852,354 US7876329B2 (en) | 2007-09-10 | 2007-09-10 | Systems and methods for managing texture data in a computer |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101178806A CN101178806A (zh) | 2008-05-14 |
CN101178806B true CN101178806B (zh) | 2010-10-13 |
Family
ID=39405048
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007101990155A Active CN101178806B (zh) | 2007-09-10 | 2007-12-07 | 计算机中管理纹理数据的系统与方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7876329B2 (zh) |
CN (1) | CN101178806B (zh) |
TW (1) | TWI366154B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8174534B2 (en) * | 2007-12-06 | 2012-05-08 | Via Technologies, Inc. | Shader processing systems and methods |
GB0810205D0 (en) * | 2008-06-04 | 2008-07-09 | Advanced Risc Mach Ltd | Graphics processing systems |
US8698823B2 (en) * | 2009-04-08 | 2014-04-15 | Nvidia Corporation | System and method for deadlock-free pipelining |
US9582919B2 (en) * | 2009-10-09 | 2017-02-28 | Microsoft Technology Licensing, Llc | Automatic run-time identification of textures |
US8872823B2 (en) * | 2009-10-09 | 2014-10-28 | Microsoft Corporation | Automatic real-time shader modification for texture fetch instrumentation |
GB2532495B (en) | 2014-11-21 | 2018-05-02 | Advanced Risc Mach Ltd | Graphics processing systems |
CN110223214B (zh) * | 2019-06-10 | 2023-04-11 | 西安芯瞳半导体技术有限公司 | 一种降低纹理单元访问量的方法、装置及计算机存储介质 |
US20210103852A1 (en) * | 2019-10-02 | 2021-04-08 | Qualcomm Incorporated | Resource based workload allocation for machine learning workloads |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1604142A (zh) * | 2003-07-14 | 2005-04-06 | 三星电子株式会社 | 基于图像的着色和编辑方法及装置 |
CN1624723A (zh) * | 2003-02-21 | 2005-06-08 | 威盛电子股份有限公司 | 适用于非均质纹理的单层缩小过滤理论 |
US20070002048A1 (en) * | 2005-07-04 | 2007-01-04 | Akihiro Takashima | Image special effect device, graphic processor and recording medium |
CN1985278A (zh) * | 2004-07-15 | 2007-06-20 | 英特尔公司 | 对于象素着色器硬件的传统处理 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6741258B1 (en) * | 2000-01-04 | 2004-05-25 | Advanced Micro Devices, Inc. | Distributed translation look-aside buffers for graphics address remapping table |
US6750870B2 (en) * | 2000-12-06 | 2004-06-15 | Hewlett-Packard Development Company, L.P. | Multi-mode graphics address remapping table for an accelerated graphics port device |
US6654021B2 (en) * | 2001-05-18 | 2003-11-25 | Sun Microsystems, Inc. | Multi-channel, demand-driven display controller |
US6784881B2 (en) * | 2002-01-04 | 2004-08-31 | Sun Microsystems, Inc. | Synchronizing multiple display channels |
JP5061273B2 (ja) * | 2005-10-03 | 2012-10-31 | 新世代株式会社 | 画像生成装置、テクスチャマッピング装置、画像処理装置、及びテクスチャ格納方法 |
US8031208B2 (en) * | 2005-12-26 | 2011-10-04 | Kabushiki Kaisha Toshiba | Drawing apparatus and method for processing plural pixels in parallel |
US7999819B2 (en) * | 2007-11-20 | 2011-08-16 | Via Technologies, Inc. | Systems and methods for managing texture descriptors in a shared texture engine |
-
2007
- 2007-09-10 US US11/852,354 patent/US7876329B2/en active Active
- 2007-12-07 CN CN2007101990155A patent/CN101178806B/zh active Active
- 2007-12-20 TW TW096148893A patent/TWI366154B/zh active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1624723A (zh) * | 2003-02-21 | 2005-06-08 | 威盛电子股份有限公司 | 适用于非均质纹理的单层缩小过滤理论 |
CN1604142A (zh) * | 2003-07-14 | 2005-04-06 | 三星电子株式会社 | 基于图像的着色和编辑方法及装置 |
EP1498850A3 (en) * | 2003-07-14 | 2006-07-05 | Samsung Electronics Co., Ltd. | Image-based rendering and editing method and apparatus |
CN1985278A (zh) * | 2004-07-15 | 2007-06-20 | 英特尔公司 | 对于象素着色器硬件的传统处理 |
US20070002048A1 (en) * | 2005-07-04 | 2007-01-04 | Akihiro Takashima | Image special effect device, graphic processor and recording medium |
Non-Patent Citations (1)
Title |
---|
US 20070002048 A1,全文. |
Also Published As
Publication number | Publication date |
---|---|
CN101178806A (zh) | 2008-05-14 |
US20090066714A1 (en) | 2009-03-12 |
TWI366154B (en) | 2012-06-11 |
TW200912798A (en) | 2009-03-16 |
US7876329B2 (en) | 2011-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101178806B (zh) | 计算机中管理纹理数据的系统与方法 | |
US8174534B2 (en) | Shader processing systems and methods | |
CN103793893B (zh) | 采用限缓冲区处理的世界和屏幕空间管线间基元重新排序 | |
JP6009692B2 (ja) | グラフィックスプロセッシングユニットベースのメモリ転送動作を行うためのマルチモードメモリアクセス技法 | |
US8587602B2 (en) | GPU texture tile detail control | |
US9734548B2 (en) | Caching of adaptively sized cache tiles in a unified L2 cache with surface compression | |
CN101751285A (zh) | 用于不同种类处理单元的集中式设备虚拟化层 | |
US8429656B1 (en) | Thread count throttling for efficient resource utilization | |
CN101371247A (zh) | 用于图形处理器的并行阵列结构 | |
CN105321143A (zh) | 来自片段着色程序的采样掩膜的控制 | |
US9069609B2 (en) | Scheduling and execution of compute tasks | |
CN103793876A (zh) | 分布式拼接式进行高速缓存 | |
US9720842B2 (en) | Adaptive multilevel binning to improve hierarchical caching | |
US8941669B1 (en) | Split push buffer rendering for scalability | |
CN103207774A (zh) | 用于解决线程发散的方法和系统 | |
CN103810743A (zh) | 在上游着色器中设置下游渲染状态 | |
US9436969B2 (en) | Time slice processing of tessellation and geometry shaders | |
CN103294536A (zh) | 控制用于处理任务的工作分布 | |
US7685370B1 (en) | Data synchronization with multiple producers | |
US10915359B2 (en) | Variable latency request arbitration | |
CN103218259A (zh) | 计算任务的调度和执行 | |
US8570916B1 (en) | Just in time distributed transaction crediting | |
US9286256B2 (en) | Sharing data crossbar for reads and writes in a data cache | |
US11276135B2 (en) | Parallel data transfer to increase bandwidth for accelerated processing devices | |
US20230205698A1 (en) | Cache blocking for dispatches |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |