专利名称:拼块式图形结构的制作方法
技术领域:
本发明涉及计算机系统领域。更特别的是,此发明是涉及在拼块式图形结构(tiled graphics archtecture)中降低基元存储要求以及改善存储器带宽利用率的领域。
背景技术:
在典型的计算机图形系统中,显示屏幕上所展现的三维(3D)物体由诸如三角形条(triangle lists)、三角片(triangle strips)和三角扇形(triangle fans)等图形基元(primitive)所组成。通常,所呈现3D物体的基元根据基元数据由主机所确定。例如,对于基元中的每一个三角形,主机会根据由X、Y、Z坐标决定的空间位置来确定三角形的三个顶点,以及用来决定每个顶点的红、绿、蓝三种颜色数值的数据以及纹理结构坐标。在特定的应用领域可以使用一些附加的基元数据。位于图形控制器内的用于呈现的硬件通过内插基元数据来运算表示每个基元的像素以及每个像素的R、G和B颜色数值。
为了更有效地利用存储器带宽,将图形基元分配到图像框(bin)中,这些图像框也可称作“拼块”。这一广为人知的技术通常被称为“拼块法”。
附
图1和附图2所示为将图形基元分配到图像框或拼块中的例子。在此例子中,微处理器从基元存储区域中取基元110、120和130的数据。此基元存储区域可用作主系统存储器的一部分或用作直接连接于图形控制器的局部图形存储器。基元110、120以及130最终被呈现,然后在显示屏幕上显示出来,方框100代表显示屏幕。此例中的方框100分立成四个图像框。特别地,显示数据结构经常分立成多于此例子中的四个图像框,此例中的图像框的尺寸是标准的128×64像素。此例中之所以使用四个图像框目的是为了简化讨论。
读取图形基元数据之后,处理器将确定基元与那个图像框或“拼块”相交。例如,处理器可以确定基元110与图像框110和220相交。处理器接下来将基元110的三个顶点数据写入为图像框210存储基元数据所保留的图形存储器的区域以及为图像框220存储基元数据所保留的图形存储器的区域。类似地,存储器将基元120的顶点数据写入到图像框220和240的存储区域,同时将基元130的顶点数据写入到图像框210、230和240的存储区域。一旦基元分配到图像框中,图形控制器就会从图形存储器中读取基元数据,并且每次呈现一个图像框的基元。
附图2给出图形控制器是如何将基元110、120和130划分为多个适配到图像框210、220、230以及240的基元的。根据基元与图像框边界相交方式的不同,将各类基元划分到图像框里。例如,当图像框210的基元数据自图形存储器读取时,图形存储器将基元110分立开来从而产生基元211,基元130分立产生基元212。然后,图形控制器呈现基元211和212。图形存储器然后通过分立基元110和120以产生基元221和222以及呈现基元221和222来对图像框220进行处理。图形控制器继续对图像框230和240的处理方式是类似的。
附图3所示为现有使用拼块式图形结构的计算机系统的框图。附图3中给出了处理器310,包含图形基元存储区域332的系统存储器330,图形控制器340以及图像监视器350。
现有的如附图3中系统所使用的拼块式图形结构,其弊端是在设备之间移动基元数据时需要使用大量的存储器带宽。例如,当处理器310处理基元时,处理器310将从图形基元存储区域332中读取此基元的顶点数据值。处理器310随之确定基元与那个图像框相交。处理器310然后必须将把顶点数据的多个副本写回到图形基元存储区域332,此区域中所写副本数量决定于与此基元相交图像框的数量。
可通过考察典型图形基元来展示存储器带宽利用率所受到的影响,此基元可由大小大约为100字节的顶点数据来表示并且它可能与多个图像框相交。此例子中将假定典型基元与3个图像框相交。在此种情况下,对于每个处理过的基元,处理器310须向图形基元存储区域332内写入平均300字节的顶点数据。对于包含2k图形基元的相对简单的显示结构,处理器310须对每种结构提供600k字节的数据。如果帧显示速率为每秒60帧,那么处理器须以每秒360M字节的速率向图形基元存储区域332提供数据。对于更复杂的包含100k基元的显示,带宽要求提高到每秒1.8G字节。在图形基元存储区域332和图形控制器340之间需要满足的带宽要求是一样的。这种将图形基元数据从处理器310转移到图形基元存储区域332以及从图形基元存储区域332到图形控制器340的对存储带宽的高度利用会为整个系统操作带来极大的负面影响。
附图简要描述通过以下的详细描述以及与本发明内容相关的附图,将对本发明进行全面了解。然而,这些内容不应被视为仅局限于本发明所描述的具体实施例,而仅仅是为了解释和理解上的方便。
图1为根据现有系统,在显示屏幕上所布置的几个3D物体的结构图。
图2为根据现有系统,描述将图1中的几个3D物体分配到图像框中的过程结构图。
图3为当前包含拼块式图形结构系统的框图。
图4为在拼块式图形结构中,使用降低存储器带宽利用率的方法的具体实施例的流程图。
图5为在图形基元存储区域位于系统存储器的拼块式图形结构中,使用降低存储器带宽利用率的方法的具体实施例的流程图。
图6为在图形基元存储区域位于局部图形存储器的拼块式图形结构中,使用降低存储器带宽利用率的方法的具体实施例的流程图。
图7为包含一具体图形控制器实施例的系统的框图,此控制器含顶点高速缓冲存储器。
详细描述下面将对拼块式图形结构中用来降低存储器带宽利用率方法和设备的具体实施例进行描述。在此例子中,微处理器从图形存储器中为图形基元读取顶点数据。存储器将确定图形基元和那个图像框相交。此基元的所有顶点被写进顶点缓冲器中以备将来参考。此顶点缓冲器位于主系统存储器或局部图形存储器中。顶点缓冲器可作为图像框存储区域的一部分或在分立存储器区域中使用。
假定处理器确定此图形基元与第一和第二图像框相交,处理器将向第一和第二图像框存储区域写入指针。此指针标明了在实际顶点数据存储器中的位置。这样,仅有一个顶点数据副本从处理器转移到图形存储器。因为此指针尺寸比顶点数据小,所以较少的数据从处理器移动到图形存储器,同时改善了存储器带宽的使用。
上面例子以及接下来的具体实施例中的微处理器可替换为3D图形处理器,其进行的基元操作与微处理器是相同的。例如,附加部分可以包含完成硬件转换和硬件内部指示计算的3D图形处理器。
上面例子以及接下来的具体实施例中的图形存储器可作为主系统存储器的一部分包含进去,或作为直接连接于图形控制器的局部图形存储器得以使用。
这里所使用的“指针”意为包含任何至少部分地标明顶点数据位置的手段,包括存储器地址也包括索引。例如,指针可以是标明顶点数据位置的物理存储器或者是虚拟存储器地址。此指针可替换为索引,利用此索引可以运算出顶点数据的地址。例如,根据方程“基地址+索引*顶点数据大小”可从索引值运算出地址。
虽然上面的例子以及接下来的众多例子讨论了与图形基元相交的指定数量的图像框,而其它的例子中可以使用任意数量的图像框。进一步地,虽然这里所讨论的图形基元包含三个顶点的三角形,而其它类型的基元也是可行的。
再者,这里所描述的具体实施例中,地址数据假定为32位宽,索引假定为16位宽,三角形基元的顶点数据假定为大约100字节长。其它使用大范围地址、索引和数据尺寸和长度的实施例也是可行的。
附图4为在拼块式图形结构中使用改善存储器带宽利用率的具体方法的流程图。方框410将确定图形基元是否与第一和第二图像框相交。如果图形基元被发现与第一和第二图像框相交,那么与此图形基元相符的多个顶点数据在方框420中被写入位于存储设备中的第一图像框存储区域。此存储设备可以包含主系统存储器,或包含直接连接于图形控制器的局部图形存储器。
在方框430,多个指针被写入位于图形存储器的第二图像框存储区域。这些指针标明了多个顶点数据的存储器位置。通过将指针写入第二图像框存储区域而不是写入顶点数据,较少的数据从处理器转移到图形存储器,同时改善了存储器带宽利用率。图形控制器将使用指针从第一图像框存储区域提取顶点数据。
附图5为计算机系统拼块式图形结构中使用改善存储器带宽利用率的具体方法的流程图。其中,在此系统中,图形存储器被用作主系统存储器内的一个区域,图形控制器包含顶点高速缓冲存储器。此顶点高速缓冲存储器为顶点数据提供临时存储区,同时通过减少位于的图形存储器和图形控制器之间所转移的顶点数据数量,从而在图形控制器存储器带宽利用率中实现系统存储器内部的改善。
参照附图5,在方框505处理器从系统存储器读取图形基元顶点数据,在方框510处理器完成对顶点数据的运算。此例中,图形基元的顶点数据包括三个顶点的数据,虽然在其它的实施例中图形基元的顶点数据可能包括任意数量顶点的数据。作为实施例一部分的运算是指用来处理图形基元数据的众多广为人知的技术。
在方框515中,处理器确定图形基元是否与第一图像框相交,假定存在相交的情形,那么存储器将图形基元的顶点数据写入系统存储器的第一图像框存储区域。
在方框520中,处理器确定图形基元是否与第二图像框相交。如果图形基元被发现与第二图像框相交,接着在方框525处理器将三个指针写入系统存储器的第二图像框存储区域。这些指针标明先前写入到系统存储器的三个顶点的存储位置。
在方框530中,处理器将确定图形基元是否与第三个图像框相交。如果图形基元被发现与第三个图像框相交,接着在方框535处理器将三个指针写入系统存储器的第三个图像框存储区域。这些指针标明了先前写入到系统存储器的三个顶点的存储位置。
在方框540,处理器将确定图形基元是否与第四个图像框相交。如果图形基元被发现与第四个图像框相交,接着在方框545处理器将三个指针写入系统存储器的第四个图像框存储区域。这些指针标明了以前写入到系统存储器的三个顶点的存储位置。
虽然此实施例中所描述的图形基元可能与四个图像框相交,但是其它图形基元可能与两个或更多图像框相交的实施例也是可行的。进一步地,在一个实施例中,图像框的尺寸可能为128像素×64像素,即使其它的图像框尺寸也是可行的。另外,以平行的方式来代替上述按次序的方式来确定图像框是否相交也是可以的。例如,可以利用基元的边界框来快速找到与基元相交的所有图像框。
如方框547所示,将重复方框505到方框545的操作,直到所有的基元分配到图像框中。
在方框550中,图形控制器从第一图像框存储区域读取数据。从第一图像框存储区域和顶点缓冲器中读取的数据包括在方框515以前写入到系统存储器的图形基元的顶点数据。
在方框555中,图形控制器由顶点高速缓冲存储器中读取顶点数据。在一个实施例中,顶点高速缓冲存储器包含16个入口,这些入口为4路且互相交织在一起,能够存储32字节的顶点数据。其它具有不同数量的入口和路数,并且进一步地每个入口可存储不同数量的顶点数据的实施例也是可行的。
图形控制器读取第一图像框数据同时将顶点数据存储到顶点高速缓冲存储器之后,图形控制器在方框560呈现第一图像框基元。作为呈现操作的一部分,图形控制器将确定包含在第一图像框数据中每个图形基元究竟是那个部分落入到第一图像框中,然后仅呈现基元的那一部分。
紧随第一图像框的呈现,图形控制器将处理第二图像框。作为处理第二图像框的第一步,图形控制器从方框565中的第二图像框存储区域中读取数据。从第二图像框存储区域中读取的数据包括指向图形基元的顶点数据的指针,假定在方框520发现与第二图像框相交。在方框570中,图形控制器使用指针访问以前存储在方框555中顶点高速缓冲存储器里的数据。一旦图形处理器访问到顶点数据,图形处理器在方框575呈现第二图像框基元。
在方框580中,将确定是否需要呈现剩余的图像框。如果存在剩余的图像框,在方框565中继续进行操作。重复进行方框565到方框580的操作,直到呈现所有的图像框并且在方框585运行终止。注意图像框呈现的顺序可以是串行的,也可以不是串行的。基于一定的探试法,上述实施例可归结为首先呈现第二图像框,然后分别为第三、第一和第四个图像框。这能够为整个系统运行提供最优方法。例如,可利用下载均衡来对图形处理器中的最前和最后端操作中的下载进行标准化处理。
附图6为在计算机系统拼块式图形结构中使用改善存储器带宽利用率的方法的实施例的流程图,在此系统中图形存储器被用作直接连接于图形控制器的局部图形存储器。局部图形存储器为顶点数据提供存储空间,同时通过减少主系统存储器中图形存储器与图形控制器二者之间转移的顶点数据的数量,从而实现系统存储器到图形控制器存储带宽使用的改善。
参照附图6,在方框605处理器从局部图形存储器或者是系统存储器中读取图形基元的顶点数据,同时在方框610存储器对顶点数据进行处理。在此例中,图形基元的顶点数据包括三个顶点数据,虽然其它图形基元顶点数据包含任意数量的顶点数据的实施例也是可行的。上面所描述的作为实施例一部分的运算是指用来处理图形基元数据的大范围的广为人知的技术。在方框615中,处理器确定图形基元是否与第一图像框相交。假定相交,存储器将图形基元的顶点数据写入局部图形存储器中的第一图像框存储区域。
在方框620中,处理器确定图形基元是否与第二图像框相交。如果发现图形基元与第二图像框相交,处理器接着在方框625将三个指针写入局部图形存储器中的第二图像框存储区域。这些指针标明先前写入局部图形存储器的三个顶点的存储位置。
在方框630中,处理器确定图形基元是否与第三个图像框相交。如果发现图形基元与第三个图像框相交,处理器接着在方框635将三个指针写入局部图形存储器中的第三个图像框存储区域。这些指针标明先前写入局部图形存储器的三个顶点的存储位置。
在方框640中,处理器确定图形基元是否与第四个图像框相交。如果发现图形基元与第四个图像框相交,处理器接着在方框645将三个指针写入局部图形存储器中的第四个图像框存储区域。这些指针标明先前写入局部图形存储器的三个顶点的存储位置。
虽然此实施例中所描述的图形基元可能与四个图像框相交,但是其它图形基元可能与两个或更多图像框相交的实施例也是可行的。进一步地,在具体实施例中图像框的尺寸可能为128像素×64像素,即使其它的图像框尺寸也是可行的。另外,以平行的方式来代替上述按次序的方式来确定图像框是否相交也是可以的。例如,可以利用基元的边界框来快速找到与基元相交的所有图像框。
如方框647所示,将重复方框605到方框645的操作,直到所有的基元分配到图像框中。
在方框650中,图形控制器从第一图像框存储区域读取数据。从第一图像框存储区域读取的数据包括在方框615以前写入到系统存储器的图形基元的顶点数据。
图形控制器读取第一图像框数据之后,图形控制器在方框660呈现第一图像框基元。作为呈现操作的一部分,图形控制器将确定包含在第一图像框数据中每个图形基元究竟是那个部分落入到第一图像框中,然后仅呈现基元的那一部分。
紧随第一图像框的呈现,图形控制器将处理第二图像框。作为处理第二图像框的第一步,图形控制器从方框665中的第二图像框存储区域中读取数据。从第二图像框存储区域中读取的数据包括指向图形基元的顶点数据的指针,假定在方框620发现与第二图像框相交。在方框670中,图形控制器使用指针访问以前存储在方框615中顶点高速缓冲存储器里的数据。一旦图形处理器访问到顶点数据,图形处理器在方框675呈现第二图像框基元。
在方框680中,将确定是否需要呈现附加的图像框。如果存在附加的图像框,在方框665中继续进行操作。重复进行方框665到方框680的操作,直到呈现所有的图像框并且在方框685运行终止。注意图像框呈现的顺序可以是串行的,也可以不是串行的。基于一定的探试法,上述实施例可归结为首先呈现第二图像框,然后分别为第三、第一和第四个图像框。这能够为整个系统运行提供最优方法。例如,可利用下载均衡来对图形处理器中的最前和最后端操作中的下载进行标准化处理。
附图7为包含图形控制器740的计算机系统框图,此控制器含有顶点高速缓冲存储器742。附图7中的计算机系统也含有通过处理器总线715而连接于系统逻辑设备720的处理器710。此系统逻辑设备720提供处理器710和系统存储器730之间的对话。系统存储器730包含图形基元存储区域732。此图形基元存储区域732可以为多个图像框而分立成多个存储区域。
系统逻辑设备720也用作将图形控制器740连接到处理器710和系统存储器730。附图7中的系统还包含连接于图形控制器740上的图像监视器750。
附图7中的系统可与如附图4和5中所讨论的使用改善存储器带宽利用率的方法实施例同时使用。例如,处理器710可从图形基元存储区域732中读取图形基元的顶点数据。处理器710接着可以确定图形基元与那个图像框相交。处理器710然后将顶点数据写入图形基元存储区域732中的第一次图像框存储区域。如果发现图形基元与其它图像框相交,处理器710接着将指针写入图形基元存储区域732中的其它图像框存储区域。这些指针标明了用来存储顶点数据的第一次图像框存储区域的位置。此例中的指针包含16位索引值,利用此索引值可运算出顶点数据的存储位置。其它包含用来确认顶点数据存储位置的32位地址指针的实施例也是可行的。其它使用不同的长度索引值和/或地址的其它实施例也是可以的。
当图形控制器740欲对第一图像框进行处理时,图形控制器740会从图形基元存储区域732中读取第一图像框数据。图形控制器740在顶点高速缓冲存储器742中为图形基元存储顶点数据。图形控制器740然后呈现包含落入第一图像框中的图形基元之一部分的第一图像框。
在此例中,图像框的尺寸为128×64像素。例子中的顶点高速缓冲存储器742包含16个入口,这些入口为4路组相联结构且能够存储32字节的顶点数据。此例中的图形基元由三个顶点所表示,其中每个顶点由32字节数据来确定。其它使用不同图像框尺寸和/或高速缓冲存储器的实施例也是可行的。
当图形控制器740准备好处理第二图像框时,图形控制器740会从图形基元存储区域732中读取第二图像框的数据。第二图像框的数据将包含指向图形基元顶点数据的指针,假定处理器710之前确定图形基元与第二图像框相交。图形控制器740然后利用指针来进入存储于顶点高速缓冲存储器742中的顶点数据。当顶点数据的副本存储在顶点高速缓冲存储器742中时,通过消除从图形基元存储区域732中读取顶点数据的需求,顶点高速缓冲存储器742可用来改善存储器带宽利用率,此例子就属于这种情形。
一旦顶点数据从顶点高速缓冲存储器742中退回,图形控制器740会呈现第二图像框。后续的图像框以类似的方式进行处理,直到呈现所有的图像框为止。
参照具体的实施例在前面的详细说明中已经对本发明进行了描述。然而明显地,可以对此进行各种改动和变换,而这些正如所附权利要求中所提到的不会背离本发明更大范围思想和范畴。说明书以及附图相应地被看作是一种举例而不是限制。
说明书中所提到的“一种实施例”、“某一实施例”、“一些实施例”或“其它实施例”表示与这些实施例相关联所描述的特殊特征、结构或特性至少包含于一些实施例中,但不一定包含于所有的实施例中。“一种实施例”、“某一实施例”或“一些实施例”的出现所指不必就是指相同的实施例。
权利要求
1.一种方法包括确定图形基元与第一和第二图像框相交;将与图形基元相应的多个顶点数据写入位于存储设备中的第一图像框存储区域;将多个指针写入位于存储设备中的第二图像框存储区域,多个指针用来标明多个顶点数据的位置。
2.根据权利要求1的方法,其中将与图形基元相应的多个顶点数据写入位于存储设备中的第一图像框存储区域的过程包括将相应于图形基元的多个顶点数据写入位于帧缓冲器中的第二图像框存储区域。
3.根据权利要求2的方法,其中将多个指针写入位于存储设备中的第二图像框存储区域的过程包括将多个的指针写入位于帧缓冲器中的第二图像框存储区域。
4.根据权利要求1的方法,其中将相应于图形基元的多个顶点数据写入位于存储设备中的第一图像框存储区域的过程包括将相应于图形基元的多个顶点数据写入位于主存储器中的第一图像框存储区域。
5.根据权利要求4的方法,其中将多个指针写入位于存储设备中的第二图像框存储区域的过程包括将多个指针写入位于主存储器中的第二图像框存储区域。
6.根据权利要求5中的方法,进一步包括将多个顶点中的一点的数据载入到顶点高速缓冲存储器;将多个指针中的一个读入图形控制器;使用多个指针中的一个来访问存储在顶点高速缓冲存储器中多个顶点中的这一点的数据。
7.一种设备包含有从位于存储器中的第一图像框存储区域中读取基元数据的图像框读取单元,基元数据含有标明顶点所对应数据的存储位置的指针,图像框读取单元进一步相应于由指针所标明的顶点读取数据。
8.根据权利要求7的设备中,存储器包含主存储设备。
9.根据权利要求7的设备,图像框读取单元从帧缓冲器中读取与指针所标明的顶点相对应的数据。
10.根据权利要求7的设备,图像框读取单元从主存储设备中读取与指针所标明的顶点相对应的数据。
11.根据权利要求7的设备,进一步包括顶点高速缓冲存储器,图像框读取单元从顶点高速缓冲存储器中读取与指针所标明的顶点相对应的数据。
12.根据权利要求11所述设备中的顶点高速缓冲存储器包括多个入口,每个入口用来存储32字节的顶点数据。
13.一个系统包括处理器;与处理器连接的存储器控制器;与存储器控制器连接的主存储器;以及图形控制器,该控制器包含自位于主存储器里的第一图像框存储区域中读取基元数据的图像框读取单元,基元数据包括标明顶点对应数据存储位置的指针,图像框读取单元进一步读取对应于由指针所标明的顶点数据。
14.根据权利要求13的系统,图像框读取单元从与图形控制器连接的帧缓冲器中读取与指针所标明的顶点相对应的数据。
15.根据权利要求13的系统,图像框读取单元从主存储器中读取与指针所标明的顶点相对应的数据。
16.根据权利要求13所述的系统,图形控制器进一步包括顶点高速缓冲存储器,图像框读取单元从顶点缓冲存储器中读取与指针所标明的顶点相对应的数据。
17.根据权利要求16的系统,顶点高速缓冲存储器包括多个入口,每个入口用来存储32字节的顶点数据。
全文摘要
本发明公开了用于在拼块式图形结构中降低存储器带宽利用率的方法和设备。在一个实施例中,微处理器从图形存储器中为图形基元读取顶点数据。此处理器确定图形基元与那个图像框相交。假定此处理器确定图形基元与第一和第二图像框相交,处理器将图形基元的顶点数据写入图形存储器中的第一图像框存储区域。处理器接着将指针写入第二图像框存储区域。此指针标明在实际顶点数据存储器中的位置。
文档编号G06T15/00GK1430769SQ01809891
公开日2003年7月16日 申请日期2001年3月6日 优先权日2000年3月31日
发明者H·-C·希 申请人:英特尔公司