基于寄存器的对纹理请求的排队的制作方法

文档序号:2610345阅读:143来源:国知局
专利名称:基于寄存器的对纹理请求的排队的制作方法
技术领域
本发明涉及计算机图形领域。
背景技术
许多计算机图形图像是通过自给定视点对光与三维景物的相互作用进行数学建模而产生。此过程称作再现自所述给定视点产生所述景物的二维图像,且类似于拍摄一张现实景物照片。
随着对计算机图形且特别是对实时计算机图形的需求的增加,具有适于使再现过程加速的图形处理子系统的计算机系统已变得很普遍。在这些计算机系统中,是在一计算机的通用中央处理器(CPU)与图形处理子系统之间划分再现过程。通常,CPU执行高级操作,例如确定一给定景物中物体的位置、运动及冲突。通过这些高级操作,CPU产生一组用于界定所期望再现的图像的再现命令及数据。例如,再现命令及数据可界定景物几何形状、照明度、着色、纹理、运动、及/或一景物的照相参数。图形处理子系统根据该组再现命令及数据产生一个或多个再现图像。
典型的图形处理子系统包括一具有一个或多个执行单元及一个或多个纹理单元的图形处理单元。除其它任务外,,执行单元尤其负责处理几何形状及照明度信息。纹理单元通过从存储于存储器中的纹理映射图中检索纹素数据来实施对景物几何形状的纹理映射。将纹素数据与由执行单元所产生的像素数据相组合以确定所再现图像的像素的颜色值。
为使性能达到最佳,执行单元及纹理单元通常要克服不同的障碍。执行单元通常具有一深的基本固定的处理管线,从而使典型执行单元的管线中断在性能方面的代价非常高昂。为了减少管线中断,常将再现应用程序划分成许多独立的执行线程,以使执行单元的利用率最大化。
与此相反,纹理单元的主要性能瓶颈是因检索纹素数据而引起的存储器等待时间。此瓶颈因执行单元倾向于同时发出成批的纹理命令而不是随着时间分发纹理命令而加剧。因在多个执行单元上运行多个线程,纹理命令的不规则定时可使纹理单元的性能严重劣化。
为了使纹理命令的猝发(bursts)变得平滑,可使用一缓冲器(例如一先进先出缓冲器(FIFO))来对发送至纹理单元的纹理命令进行排队。然而,纹理命令常常包括大量的相关联数据。例如,一典型的纹理命令及其关联数据可远远超过100位数据。一具有此宽度的FIFO会消耗一图形处理单元中的大量电路面积,从而减少可供用于其它器件的面积量。
因此,需要一种有效地对纹理命令进行排队而不必使用大的FIFO的图形处理系统。进一步,需要在与多个执行单元一起使用时可有效地进行按比例缩放的纹理排队机构。

发明内容
本发明使一图形处理单元能够对大量纹理请求进行排队以抵消纹理请求的可变性而无需使用大的纹理请求缓冲器。在一实施例中,一专用纹理请求缓冲器对相对小的纹理命令及参数进行排队。另外,对于每一排队的纹理命令,均在一通用寄存器中存储相关联的一组纹理自变量,所述纹理自变量通常远远大于所述纹理命令。所述纹理单元从所述纹理请求缓冲器中检索纹理命令并随后从适当的通用寄存器中提取所述相关联的纹理自变量。在另一实施例中,将所述纹理自变量存储于被指定作为所述纹理单元所计算出的最终纹理值的目的地的通用寄存器中。由于在对纹理命令进行排队时必须为所述最终纹理值分配目的寄存器,因此将所述纹理自变量存储于此寄存器中并不耗用任何额外的寄存器。
在一实施例中,一图形处理子系统包括一执行单元,所述执行单元包含一纹理请求缓冲器及一寄存器队列。所述寄存器队列包括复数个通用寄存器。所述执行单元适于向所述纹理请求缓冲器发出一纹理命令并将一纹理自变量存储于所述寄存器队列中。一纹理单元适于从所述纹理请求缓冲器中读取所述纹理命令并从所述寄存器队列中检索所述纹理自变量。所述纹理单元进一步适于响应于所述纹理命令而检索一纹理映射图的一部分。所述纹理单元根据所述纹理映射图的所述部分计算出一最终纹理值并将所述最终纹理值存储于所述寄存器队列的一目的寄存器中。
在另一实施例中,所述执行单元适于将所述纹理自变量存储于所述复数个寄存器中的所述目的寄存器中,以使所述纹理单元适于在存储所述最终纹理值时覆盖所述纹理自变量。在一替代实施例中,所述执行单元将所述纹理自变量存储于一与所述目的寄存器相分离的源寄存器中。
在另一实施例中,所述纹理命令包括一纹理参数。所述纹理命令也可指定一纹理映射类型及/或一纹理映射图。在再一实施例中,所述纹理单元根据所述纹理参数确定存储所述纹理自变量的源寄存器。所述纹理参数还指定所述复数个寄存器的所述目的寄存器也为所述复数个寄存器的所述源寄存器。
在再一实施例中,所述执行单元进一步适于响应于发出一纹理命令而锁定所述目的寄存器以防止改动所述纹理自变量。所述执行单元适于响应于所述纹理单元将所述最终纹理值存储于所述目的寄存器中而将所述目的寄存器解锁。
在另一实施例中,一第二执行单元包括一第二纹理请求缓冲器及一第二寄存器队列。所述第二寄存器队列包括复数个通用寄存器。所述第二执行单元适于向所述第二纹理请求缓冲器发出一第二纹理命令并将一第二纹理自变量存储于所述第二寄存器队列中。所述纹理单元进一步适于从所述第二纹理请求缓冲器中读取所述第二纹理命令、从所述第二寄存器队列中检索所述第二纹理自变量、响应于所述第二纹理命令而从所述纹理存储器中检索一第二纹理映射图的一部分、根据所述纹理映射图的所述部分计算出一第二最终纹理值、并将所述第二最终纹理值存储于所述第二寄存器队列中所述复数个寄存器的一目的寄存器中。


下文将参照图式来阐述本发明,在图式中图1图解说明一适于实施本发明一实施例的计算机系统;图2图解说明一根据本发明一实施例的图形处理单元的一纹理排队机构;图3图解说明一根据本发明一实施例具有多个执行单元的图形处理单元的一纹理排队机构;及图4图解说明一根据本发明一实施例的图形处理单元的一加载及存储命令排队机构。
具体实施例方式
图1为一计算机系统100(例如个人计算机、视频游戏控制台、个人数字助理、移动电话或适于实施本发明一实施例的其它数字装置)的一方块图。计算机系统100包括一用于运行软件应用程序及视需要一操作系统的中央处理器(CPU)105。在一实施例中,CPU105实际上为数个并行操作的独立的中央处理器。存储器110存储供CPU105使用的应用程序及数据。存储器115为应用程序及数据提供非易失性存储并可包括固定式磁盘驱动器、可抽换式磁盘驱动器、闪存存储器或其它固态装置、及CD-ROM、DVD-ROM、或其它光学存储装置。用户输入装置120将来自一个或多个用户的用户输入传送至计算机系统100并可包括键盘、鼠标、操纵杆、触摸屏、及/或麦克风。网络接口125使计算机系统100能够通过一电子通信网络与其它计算机系统进行通信,并可包括通过局域网及广域网(例如因特网)进行的有线或无线通信。计算机系统100的组件—包括CPU105、存储器110、数据存储装置105、用户输入装置120及网络接口125—经由一个或多个数据总线160相连接。数据总线的实例包括ISA、PCI、AGP、PCI、PCI-X(也称作3GIO)及HyperTransport数据总线。
一图形子系统130进一步与数据总线160及计算机系统100的组件连接。图形子系统130包括一图形处理单元(GPU)135及图形存储器。所述图形存储器包括一用于存储一输出图像中每一像素的像素数据的显示存储器140(例如一帧缓冲器)。像素数据可直接自CPU105提供至显示存储器140。或者,CPU105为GPU135提供用于界定所需输出图像的数据及/或命令,然后GPU135根据所述数据及/或命令产生一个或多个输出图像的像素数据。用于界定所需输出图像的数据及/或命令存储于附加存储器145中。在一实施例中,GPU135根据用于界定一景物的几何形状、照明度、着色、纹理、运动、及/或照相参数的再现命令及数据来产生输出图像的像素数据。
在另一实施例中,显示存储器140及/或附加存储器145为存储器110的一部分并与CPU105共享。或者,显示存储器140及/或附加存储器145为一个或多个专门供用于图形子系统130的分立存储器。图形子系统130周期性地自显示存储器218输出一图像的像素数据并显示于显示装置150上。显示装置150为任一能够响应于一来自计算机系统100的信号而显示可视信息的装置,包括CRT、LCD、等离子体及OLED显示器、及其它发光及光调制技术。计算机系统100可为显示装置150提供一模拟或数字信号。
在另一实施例中,图形处理子系统130包括一个或多个类似于GPU135的附加GPU155。在再一实施例中,图形处理子系统130包括一图形协处理器165。图形处理协处理器165及附加GPU155适于与GPU135并行操作。类似于GPU135,附加GPU155根据再现命令来产生输出图像的像素数据。附加GPU155可与GPU135一起运行以同时产生一输出图像的不同部分的像素数据,或同时产生不同输出图像的像素数据。在一实施例中,图形处理器165为GPU135及/或附加GPU155执行与再现相关的任务,例如几何形状变换、着色器计算、及背面剔除(backface culling)操作。
附加GPU155可与GPU135位于同一集成电路、模块、芯片封装、或电路板上并与GPU135共享一通至数据总线160的连接,或者可位于单独与数据总线160连接的附加电路板上。附加GPU155可具有其自身的类似于显示存储器140及附加存储器145的显示器及附加存储器,或者可与GPU135共享存储器140及145。在一实施例中,图形处理器165与计算机系统芯片组(未显示)集成在一起,例如与Northbridge或Southbridge芯片、或其他用于控制数据总线160的装置集成在一起。
图2图解说明一根据本发明一实施例的图形处理单元的一纹理排队机构200。一控制单元与图形处理单元的其余部分协调纹理单元210的操作。纹理单元210负责确定纹理值,例如一几何图元上一给定点的颜色值或α值。在一实施例中,纹理单元210自控制单元205接收纹理命令。纹理命令指定要应用的纹理映射类型、要映射的纹理及为进行纹理化所需的其它参数。另外,纹理命令通常需要相关联的一组指定对应于一几何图元上所给定点的纹理坐标的纹理自变量。
一旦自控制单元205接收到一纹理命令,纹理单元210便实施一纹理映射操作。在一实施例中,纹理映射操作包括进行一详细程度确定,以选择一个或多个要使用的纹理分级细化映射级。一采样确定可计算一纹理采样脚印及样本权重以用于各向同性或各向异性纹理过滤。纹理映射操作根据所选分级细化映射级、纹理采样脚印及纹理坐标来确定一个或多个纹素存储地址。
纹理映射单元从纹理存储器215中检索纹素存储地址处的纹理值。纹理存储器215可包括图形处理单元内部的一级或多级纹理高速缓冲存储器以及图形处理单元外部的用于存储纹理的存储器。一旦从纹理存储器215接收到所需纹理值,纹理单元210便根据采样权重及分级细化映射权重将各纹理值相组合以产生一最终纹理值。所述最终纹理值自纹理单元210输出并由图形处理单元的其它部分用来确定一输出图像的一个或多个像素的颜色值。
在纹理排队机构200中,控制单元205将纹理命令(例如命令225)写入至请求缓冲器220。在一实施例中,请求缓冲器220为一FIFO。纹理命令225指定纹理参数,包括要应用的纹理映射类型、要映射的纹理及要自纹理单元210输出的最终纹理值的一目的地。在一实施例中,纹理命令为32位长;因此,请求缓冲器220仅需为32位宽。
除纹理命令225中所包含的纹理参数外,纹理单元210还需要一组纹理自变量,此包括要由纹理单元210使用的纹理坐标。通常,纹理自变量包括四个纹理坐标值。如果每一纹理坐标均表示成一32位的浮点数,则纹理自变量将需要128位。假如该组纹理自变量要与纹理命令一起包括于请求缓冲器220中,则对请求缓冲器220的宽度要求将显著增大。例如,假如存储在一起,则一32位纹理命令及一128位纹理自变量将需要160位宽的请求缓冲器。
本发明的一实施例并非创建一大到足以容纳纹理命令及其关联纹理自变量二者的请求缓冲器,而是将纹理自变量存储于由一执行单元所使用的该组通用寄存器中的一个中。所述执行单元将该组通用寄存器—称作一寄存器队列230—用作一用于其所有计算(包括不与纹理相关的运算)的通用临时工作区。通过将纹理自变量存储于寄存器队列230中,请求缓冲器220的尺寸会大大减小。此外,如下文所述,在本发明的一实施例中,纹理自变量在寄存器队列中的存储基本上是自由的。
对应于纹理命令225的纹理自变量235存储于寄存器队列230中。纹理单元210依次从请求缓冲器220中检索并处理纹理命令。一旦从请求缓冲器220中检索到纹理命令225,纹理单元210便也从寄存器队列230中的一寄存器中检索纹理自变量235。
纹理单元210根据与纹理命令225包含在一起的纹理参数来确定对应的一组纹理自变量的位置。纹理命令225在寄存器队列230中指定一目的寄存器来存储最终纹理值。在一实施例中,纹理自变量235位于要用来存储所述最终纹理值的同一寄存器中。在此实施例中,将纹理自变量235存储于纹理目的寄存器中不会耗用任何额外的寄存器,因为目的寄存器无论如何均必须预留供最终纹理值使用。另外,未完成的纹理命令数量只受寄存器队列中寄存器数量的限制。一旦纹理映射操作完成,纹理单元210便将最终纹理值240输出至寄存器队列230并覆盖245纹理自变量235。
在另一实施例中,纹理自变量235及/或最终纹理值240能会可大于单个寄存器。在此实施例中,寄存器队列230中的一组多个寄存器组合用于存储纹理自变量235及/或最终纹理值240。在另一实施例中,寄存器队列230中被指定为最终纹理值240的目的地的该组寄存器也用来存储纹理自变量235,从而减少纹理命令225所需的寄存器数量。
由于一实施例以最终纹理值240覆盖纹理自变量235,因此如果纹理自变量235需要保存,则控制单元205可在发出一纹理命令前将纹理自变量拷贝至寄存器队列230中的另一寄存器(或数个寄存器)中。在一替代实施例中,纹理命令225指定单独源寄存器及目的寄存器,且纹理单元210从所指定的源寄存器中检索纹理自变量235并将最终纹理值240存储于寄存器队列230中的目的寄存器中。
在另一实施例中,使用一记分板机构将锁定寄存器队列230中与纹理命令225相关联的寄存器以防止执行单元改变寄存器内容,直至纹理操作完成为止。执行单元无法对被锁定的寄存器进行写入;然而,纹理单元210却仍可存取被锁定的寄存器。
倘若纹理自变量存储于目的寄存器中,则控制单元205在纹理命令225被放入请求缓冲器220中时会锁定目的寄存器。目的寄存器保持锁定状态直至最终纹理值已写入至目的寄存器为止。如上所述,由于目的寄存器自纹理命令发出时起被锁定,因此将纹理自变量存储于目的寄存器中并未使执行单元失去一额外寄存器。
在源寄存器与目的寄存器分立的情形中,这两个寄存器均在纹理命令225发出时由控制单元205锁定。在纹理单元从源寄存器中检索到纹理自变量后,源寄存器被解锁。在最终纹理值存储于目的寄存器中后,目的寄存器也可被解锁。
在一实施例中,纹理单元210被管线化并能够同时在不同的纹理管线级中处理不同的纹理命令。为了确保将每一纹理命令的结果均存储于正确的寄存器中,纹理单元210的一实施例包括一标记存储器或缓冲器250。缓冲器250具有一对应于纹理管线的每一级的部分。缓冲器250的每一部分均存储一目的寄存器位置值,所述目的寄存器位置值为由对应的纹理管线级所处理的数据指定目的寄存器。当数据自一个管线级前进至另一管线级时,对应的目的寄存器位置值会移至缓冲器250中的对应部分。
图3图解说明一根据本发明一实施例具有多个执行单元的图形处理单元300的一纹理排队机构。图形处理单元包括至少一在功能上类似于上述纹理单元210的纹理单元305。纹理单元305与纹理存储器310连接,除外部纹理存储器以外,纹理存储器310还可包括一级或多级内部纹理高速缓冲存储器。
纹理单元305与多个独立的执行单元连接。在此实施例中,四个执行单元315、320、325及330与纹理单元305连接;然而,图形处理单元300的替代实施例可具有与一纹理单元连接的任一数量的执行单元。每一执行单元均可执行多个与再现相关的不同任务,包括处理几何形状数据、照明度计算及着色器程序。
一典型的执行单元(例如执行单元315)包括一用于执行与再现相关的任务的执行单元核心335。执行单元315还可包括一用于存储被频繁存取的指令及数据的高速缓冲存储器340。对于较不频繁存取的数据而言,一寄存器队列345为执行单元315提供一用于其所有计算的通用临时工作区。
请求缓冲器350-其在一实施例中为一FIFO—存储由执行单元核心335发出的纹理命令,直至这些纹理命令准备好由纹理单元305执行为止。如在实施例200中一样,纹理命令,包括纹理参数,存储于请求缓冲器350中。纹理自变量(例如与纹理命令相关联的纹理坐标)存储于寄存器队列345中的一寄存器中。
纹理单元305通过多路复用器370分别与执行单元315、320、325及330的请求缓冲器350、355、360及365连接。借助多路复用器370,纹理单元交替地从每一执行单元的请求缓冲器中检索一个或多个待决的纹理命令。在一实施例中,根据一“循环”调度表从各执行单元检索纹理请求。在一替代实施例中,一仲裁块单元按照一使总体性能优点最大化的顺序从各执行单元中选择待决的纹理请求。
与从一给定执行单元的请求缓冲器中检索一纹理命令相结合,纹理单元305还从该执行单元的寄存器队列中检索对应的一组纹理自变量。例如,纹理单元305从执行单元315的请求缓冲器350中检索一纹理命令并从寄存器队列345的一寄存器中检索对应的纹理自变量。为了便于在执行单元315的寄存器队列350与纹理单元305之间进行通信,图形处理单元300的一实施例在寄存器队列350与一数据总线380之间包括一数据总线连接385,数据总线连接385又通过数据总线连接390与纹理单元305连接。执行单元320、325及330包括类似的数据总线连接,但为清楚起见在图3中省略了这些数据总线连接。在另一实施例中,纹理单元输出375与数据总线380连接以与执行单元的寄存器队列交流最终纹理值。
由于每一纹理命令均发源于诸多独立的执行单元中的一个且每一个执行单元均可具有诸多独立的线程,因此图形处理单元300的另一实施例在每一纹理命令中均包括线程状态信息,如纹理命令参数。线程状态信息的实例包括一线程类型及一线程标识。所述线程状态信息由纹理单元305用来识别由纹理命令所提及的纹理并确定最终纹理值的目的地。
图4图解说明一根据本发明一实施例的图形处理单元的一加载及存储命令排队机构400。加载及存储命令指令该图形处理单元存取外部存储器来加载或存储数据。加载及存储命令排队机构400以一类似于纹理排队机构200的方式操作。
一控制单元400与图形处理单元的其余部分协调加载/存取单元410的操作。加载/存储单元410负责从外部存储器检索数据或将数据存储于外部存储器415中。在一实施例中,加载/存储单元410自控制单元205接收加载/存储命令。所述加载/存储命令指定要执行的操作的类型(例如加载或存储)及所述操作所需的其它参数(例如存储地址)。另外,加载/存储命令通常需要将数据存储于存储器中或自存储器加载一数据目的地。
在加载/存储命令排队机构400中,控制单元405将加载/存储命令(例如命令425)写入至请求缓冲器420。在一实施例中,请求缓冲器420为一FIFO。加载/存储命令425指定所述加载/存储操作的参数。在一实施例中,加载/存储命令为32位长;因此,请求缓冲器420仅需为32位宽。
除加载/存储命令425中所包括的参数外,加载/存储单元410还需要一数据(在为一存储命令的情况下)或一目的寄存器(在为一加载命令的情况下)。本发明的一实施例并非创建一大到足以容纳加载/存储命令及相关联数据二者的请求缓冲器,而是将一存储命令的数据存储于寄存器队列430的一寄存器435中。通过将纹理自变量存储于寄存器队列430中,请求缓冲器420的尺寸会大大减小。同样地,寄存器435充当通过一加载操作所检索的数据的一目的寄存器。
加载/存储单元410依次从请求缓冲器420中检索并处理加载/存储命令。一旦从请求缓冲器420中检索到一存储命令425,加载/存储单元410便还从寄存器队列430中的寄存器435中检索450数据。一加载命令在寄存器队列430中指定一寄存器(例如寄存器435)来存储所加载的数据。一旦所述加载操作完成,加载/存储单元410便将所加载数据455输出至寄存器队列430,在此处将加载数据455写入至寄存器435。
在另一实施例中,使用一记分板机构来锁定寄存器队列430中与加载/存储命令425相关联的寄存器以防止执行单元改变寄存器内容,直到加载/存储操作完成为止。执行单元无法对被锁定的寄存器进行写入;然而,加载/存储单元410却仍可存取被锁定的寄存器。对于一储存操作而言,控制单元405是在存储命令被置于请求缓冲器420中时被锁定。此寄存器保持锁定状态直至加载/存储单元从寄存器435中检索到所述数据为止。对于一加载操作而言,寄存器435-其充当所加载数据的一目的寄存器—是在加载命令被置于请求缓冲器420中时被锁定。此寄存器保持锁定状态直至加载/存储单元完成加载操作且所加载数据445存储于寄存器435中为止。
在一实施例中,加载/存储单元410被管线化并能够同时在不同的纹理管线级中处理不同的加载/存储命令。为了确保每一加载命令的结果均存储于正确的寄存器中,加载/存储单元410的一实施例包括一标记存储器或缓冲器465。
本发明使一图形处理单元能够对大量纹理请求进行排队以抵消纹理请求的可变性而无需一大的纹理请求缓冲器。在一实施例中,将纹理自变量存储于被指定为由纹理单元所计算出的最终纹理值的目的地的通用寄存器中。由于在对纹理命令进行排队时必须为最终纹理值分配目的寄存器,因此将纹理自变量存储于此寄存器中并不耗用任何额外的寄存器。虽然上文是参照具体实例及其实施例来阐述本发明,但这些实例及实施例仅例示而非限定本发明。因此,本发明的范围将仅由权利要求书来确定。
权利要求
1.一种将一像素纹理化的方法,所述方法包括将一纹理自变量存储于一寄存器队列中的一通用寄存器中;向一纹理请求缓冲器发出一纹理命令,其中所述纹理命令与所述纹理自变量相关联;自所述纹理请求缓冲器接收所述纹理命令;从所述通用寄存器中检索所述纹理自变量;执行所述纹理命令以产生一最终纹理值;及将所述最终纹理值存储于所述寄存器队列中。
2.如权利要求1所述的方法,其中所述最终纹理值存储于所述寄存器队列中的所述通用寄存器中,从而覆盖所述纹理自变量。
3.如权利要求1所述的方法,其中所述最终纹理值存储于所述寄存器队列中的一第二通用寄存器中。
4.如权利要求1所述的方法,其中所述纹理命令包括一纹理参数。
5.如权利要求4所述的方法,其中所述纹理参数指定一纹理映射类型。
6.如权利要求4所述的方法,其中所述纹理参数指定一纹理映射图。
7.如权利要求4所述的方法,其中接收所述纹理自变量包括根据所述纹理参数识别所述通用寄存器。
8.如权利要求7所述的方法,其中所述纹理参数将所述通用寄存器指定为一用于存储所述最终纹理值的目的寄存器。
9.如权利要求7所述的方法,其中所述纹理参数指定存储所述纹理自变量的所述通用寄存器及一第二通用寄存器来存储所述最终纹理值。
10.如权利要求1所述的方法,其进一步包括响应于发出一纹理命令而将所述通用寄存器锁定以防止改动所述纹理自变量;及在存储所述最终纹理值后,将所述通用寄存器解锁。
11.如权利要求1所述的方法,其中所述寄存器队列及所述纹理请求缓冲器包含于一第一执行单元中,且其中所述方法进一步包括对一包括一第二寄存器队列及一第二纹理请求缓冲器的第二执行单元重复如下步骤存储一纹理自变量、发出一纹理命令、检索所述纹理命令、检索所述纹理自变量、执行所述纹理命令、并存储所述最终纹理值。
12.如权利要求1所述的方法,其中所述纹理自变量包括一组纹理坐标。
13.一种图形处理子系统,其包括一执行单元,其包括一纹理请求缓冲器及一寄存器队列,所述寄存器队列包括复数个通用寄存器,其中所述执行单元适于向所述纹理请求缓冲器发出一纹理命令并将一纹理自变量存储于所述寄存器队列中;一纹理单元,其适于从所述纹理请求缓冲器中读取所述纹理命令并从所述寄存器队列中检索所述纹理自变量;及其中所述纹理单元进一步适于响应于所述纹理命令来检索一纹理映射图的一部分、根据所述纹理映射图的所述部分计算出一最终纹理值、并将所述最终纹理值存储于所述寄存器队列中所述复数个寄存器中的一目的寄存器中。
14.如权利要求13所述的图形处理子系统,其中所述执行单元适于将所述纹理自变量存储于所述复数个寄存器中的所述目的寄存器中,以使所述纹理单元适于在存储所述最终纹理值时覆盖所述纹理自变量。
15.如权利要求13所述的图形处理子系统,其中所述执行单元适于将所述纹理自变量存储于所述复数个寄存器中的一源寄存器中,其中所述源寄存器与所述目的寄存器是分开的。
16.如权利要求13所述的图形处理子系统,其中所述纹理命令包括一纹理参数。
17.如权利要求16所述的图形处理子系统,其中所述纹理参数指定一纹理映射类型。
18.如权利要求16所述的图形处理子系统,其中所述纹理参数指定一纹理映射图。
19.如权利要求16所述的图形处理子系统,其中所述纹理单元进一步适于根据所述纹理参数来确定所述复数个寄存器中一存储所述纹理自变量的源寄存器。
20.如权利要求19所述的图形处理子系统,其中所述纹理参数指定所述复数个寄存器中的所述目的寄存器也是所述复数个寄存器中的所述源寄存器。
21.如权利要求19所述的图形处理子系统,其中所述纹理参数指定所述复数个寄存器中的所述源寄存器及所述目的寄存器,其中所述源寄存器与所述目的寄存器是分开的。
22.如权利要求13所述的图形处理子系统,其中所述执行单元进一步适于响应于发出一纹理命令而将所述目的寄存器锁定以防止改动所述纹理自变量并响应于所述纹理单元将所述最终纹理值存储于所述目的寄存器中而将所述目的寄存器解锁。
23.如权利要求15所述的图形处理子系统,其中所述执行单元适于响应于发出一纹理命令而将所述源寄存器锁定以防止改动所述纹理自变量并响应于所述纹理单元从所述寄存器队列中检索到所述纹理自变量而将所述源寄存器解锁。
24.如权利要求13所述的图形处理子系统,其进一步包括一第二执行单元,其包括一第二纹理请求缓冲器及一第二寄存器队列,所述第二寄存器队列包括复数个通用寄存器,其中所述第二执行单元适于向所述第二纹理请求缓冲器发出一第二纹理命令并将一第二纹理自变量存储于所述第二寄存器队列中;及其中所述纹理单元进一步适于从所述第二纹理请求缓冲器中读取所述第二纹理命令、从所述第二寄存器队列中检索所述第二纹理自变量、响应于所述第二纹理命令而从所述纹理存储器中检索一第二纹理映射图的一部分、根据所述纹理映射图的所述部分计算出一第二最终纹理值、并将所述第二最终纹理值存储于所述第二寄存器队列中所述复数个寄存器中的一目的寄存器中。
25.如权利要求24所述的图形处理子系统,其进一步包括一多路复用开关,其适用于交替地将所述第一执行单元及所述第二执行单元与所述纹理单元相连接。
26.如权利要求25所述的图形处于子系统,其中所述纹理单元根据一循环时间调度表与所述第一执行单元及所述第二执行单元连接。
27.如权利要求25所述的图形处理子系统,其中所述纹理单元根据一适于使所述图形处理子系统的性能最佳化的优先功能与所述第一执行单元及所述第二执行单元连接。
28.如权利要求13所述的图形处理子系统,其进一步包括一与所述纹理单元相连接并适于存储一纹理映射图的纹理存储器。
全文摘要
一图形处理单元可对大量纹理请求进行排队以抵消纹理请求的可变性而无需使用一大的纹理请求缓冲器。一专用纹理请求缓冲器对相对小的纹理命令及参数进行排队。另外,对于每一排队的纹理命令而言,相关联的一组纹理自变量通常远远大于存储于一通用寄存器中的所述纹理命令。所述纹理单元从所述纹理请求缓冲器中检索纹理命令并随后从适当的通用寄存器中提取相关联的纹理自变量。所述纹理自变量可存储于被指定为由所述纹理单元所计算出的最终纹理值的目的地的通用寄存器中。由于在对纹理命令进行排队时必须为所述最终纹理值分配所述目的寄存器,因此将所述纹理自变量存储于此寄存器中并不耗用任何额外的寄存器。
文档编号G09G5/36GK1938730SQ200580009868
公开日2007年3月28日 申请日期2005年2月9日 优先权日2004年2月27日
发明者约翰·埃里克·林霍尔姆, 约翰·R·尼克科尔斯, 西蒙·S·莫伊, 布雷特·W·库恩 申请人:辉达公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1