像素高速缓存、使用该高速缓存的三维图形加速器及方法

文档序号:6380631阅读:167来源:国知局
专利名称:像素高速缓存、使用该高速缓存的三维图形加速器及方法
技术领域
本发明涉及三维(3D)图形处理,特别涉及一种3D图形加速器、用于该3D图形加速器的像素高速缓存、以及3D图形加速方法。
背景技术
三维(3D)图形学是使用对象的三条轴如高度、宽度和长度在3D空间中描述对象然后较真实地在二维(2D)监视器屏幕上显示对象的技术。3D图形加速器是一种加速3D图形并且通过接收使用形状建模器(shaping modeler)描述的几何图形、改变几何图形的一些参数如摄像机角度或光源并且输出与所改变的参数相对应的几何图形的图像(或像素排列)来工作的装置。
由3D图形加速器执行的一系列处理称作图形管道(pipeline)。即使只是在包括在图形管道中的处理之一中产生延迟,管道的整个速度也会降低。图形管道包括几何处理和涂色(rendering)处理。几何处理中的计算量正比于所要处理的多边形的顶点数,而涂色处理中的计算量正比于像素数。
在高清晰度监视器上的图形处理期间,增大像素数需要提高执行涂色处理的涂色引擎的操作速度。为提高涂色速度,需要改进涂色引擎的内部结构,或者增大涂色引擎数并且并行安排涂色引擎。
然而,降低访问存储器的频率即减小存储器带宽从而提高涂色引擎的处理速度是最有效的。为在2D监视器屏幕上显示图像,需要处理存储在存储器中的纹理(texture)数据和像素数据。为降低访问存储器的频率,将缓存安装到图形加速器中是必不可少的。
一般而言,3D图形涂色处理器使用存储深度数据即z数据和色彩数据的像素高速缓存。像素高速缓存的命中率(hit ratio)显著低于微处理器缓存的命中率。缓存的高命中率将增大重新使用存储在缓存中的数据的概率,从而降低访问存储器的频率。因此,需要一种像素高速缓存的有效结构来增大像素高速缓存的命中率的概率。
3D图形硬件的性能严重受到存储器速度的影响。虽然存储器依赖于如数据结构、存储器结构和存储器访问频率的诸多因素,但是在这些课题上没有太多研究。Mitra和Chiuh的最近论文提供了动态工作量的分析,其中,该分析仅与光栅化处理期间使用纹理通信量(texture traffic)和存储体有关。另外,解决因纹理数据导致的问题的技术仅涉及纹理高速缓存或纹理先进先出(FIFO)过程。而且,对像素高速缓存的研究处于最初阶段。

发明内容
本发明提供一种具有高命中率结构的像素高速缓存,包括该像素高速缓存的三维(3D)图形加速器以及3D图形加速方法。
根据本发明的一方面,提供一种用于三维(3D)图形加速器的像素高速缓存,包括z数据存储单元,从帧存储器中读取z数据,并且将所读取的z数据提供给像素光栅化管道;以及色彩数据存储单元,在z数据存储单元从帧存储器中读取z数据的同时,预先从帧存储器中读取并存储色彩数据,并且只有当在像素光栅化管道中判定预定z测试结果成功时,才将色彩数据提供给像素光栅化管道。
根据本发明的另一方面,提供一种3D图形加速器,包括z高速缓存,从帧存储器中读取并存储z数据;色彩高速缓存,在z高速缓存从帧存储器中读取z数据的同时,预先从帧存储器中读取并存储色彩数据;z测试单元,从z高速缓存中读取z数据,并且对z数据执行预定z测试;以及色彩处理器,当判定z测试结果成功时,从色彩高速缓存中读取色彩数据,并且对色彩数据执行预定着色处理。
根据本发明的另一方面,提供一种3D图形加速方法,包括从帧存储器中读取z数据,并且将z数据存储在z高速缓存中;从帧存储器中读取色彩数据,并且将色彩数据存储在色彩高速缓存中;从z高速缓存中读取z数据,并且对z数据执行预定z测试;以及当判定z测试结果成功时,从色彩高速缓存中读取色彩数据,并且对色彩数据执行预定着色处理。
本发明提出一种用于包括在3D涂色处理器中的像素高速缓存的有效结构。在该有效结构中,根据由3D涂色处理器执行的深度测试即z测试的结果选择性地将色彩数据载入到高速缓存中。更具体地说,从帧存储器中读取数据,并且将其存储在具有四个或八个项目(entry)的小型缓冲器即像素缓冲器中,然后对存储数据执行选择性的装载。将z测试完成满意的数据存储在高速缓存中,而将z测试完成不满意的数据不存储在高速缓存中。因此,在高速缓存系统中存储前者数据的时间长于存储后者数据的时间是有可能的,从而提高重新使用z测试被满意执行的数据的概率。


通过参照附图对本发明的优选实施例进行详细描述,本发明的上述和其他方面和优点将会变得更加清楚,其中图1是示出三维(3D)图形处理方法的方框图;图2是传统像素光栅化管道的结构方框图;图3是根据本发明一个优选实施例的像素高速缓存的结构方框图;以及图4是示出根据本发明一个优选实施例的3D图形加速器的操作及其中的信号流动的方框图。
具体实施例方式
下面将参照附图详细描述根据本发明一个优选实施例的用于三维(3D)图形加速器中的像素高速缓存的结构。
图1是示出3D图形处理方法的方框图。参照图1,3D应用软件10将3D图形数据发送到应用程序接口(application program interface,API)20。下一步,3D图形加速器30从API 20接收3D图形数据,对3D图形数据执行实时硬件加速,并且将结果传输到显示器40。一般而言,3D图形加速器30执行几何处理32和涂色34。在几何处理32中,相对于不同视点变换具有3D坐标的对象以投影成具有2D坐标的对象。在涂色34中,确定具有2D坐标的图像的色彩值,并且将其存储在帧缓冲器中。在处理关于一帧所输入的所有3D数据之后,将存储在帧缓冲器中的色彩值传输到显示器40。
一般而言,3D图形图像包括点、线和多边形,并且3D涂色处理器构造成可以高速处理三角形。涂色处理器被管道化以提高其处理速度,并且包括三角形设置处理器、边行(edge-walk)处理器和像素光栅化处理器。
三角形设置处理器计算输入三角形的值,该值由边行处理器和像素光栅化处理器使用。边行处理器沿着三角形的边测量跨距(span)的开始和结束点。在此,跨距的开始和结束点是当给定扫描线遇到三角形的边时所产生的两个相交点,并且跨距是位于开始和结束点之间的像素集。像素光栅化管道通过对跨距执行插值来产生组成跨距的像素的最终色彩值。
图2是常规像素光栅化管道的结构方框图。为方便起见,图2还示出安装在3D图形加速器之外的纹理高速缓存200、像素高速缓存210和外部存储器220。
参照图2,片断(fragment)信息1包含使用插值所产生的色彩值、3D坐标(x,y,z)、纹理坐标等。在步骤100,对于相关纹理坐标,从纹理高速缓存200中读取四个或八个纹理元(texel),并且对这四个或八个纹理元执行过滤(filtering)以获得一个纹理元,它是纹理数据的最基本元素。在步骤110,将所获得的纹理元与包含在输入片断信息1中的色彩值进行混合,也就是,在步骤110执行纹理混合。在步骤120,测试包含在片断信息1中的阿尔法值以及过滤纹理元的阿尔法值。在此,阿尔法值表示透明性。如果测试结果满意,则执行下一步骤。否则,丢弃片断信息1。
在步骤130,执行从像素高速缓存210中读取z值的读取操作,即执行z读取。在步骤140,将所读取的z值与当前片断的z值进行比较,即执行z测试。在z测试期间,检查当前片断是否被先前处理的图像隐藏。如果当前片断被隐藏,则z测试结果视作失败。在这种情况下,从管道中丢弃当前片断。在步骤150,如果当前片断未被先前处理的图像隐藏,则将当前片断的z值写入到像素高速缓存210。
在步骤160,执行从像素高速缓存210中读取色彩值的读取操作。在步骤170,对从像素高速缓存210中读取的色彩值和通过步骤110的纹理混合而获得的色彩值执行阿尔法混合。在步骤180,将阿尔法混合结果存储在像素高速缓存210中。
在光栅化期间,在处理管道过程中传输纹理像素的期间和访问帧缓冲存储器220的期间传输较大量的存储在存储器中的数据。纹理数据用来使图像具有更真实的可视纹理化效果,并且通常是以位图格式制成的。在大多数情况下,作为纹理数据最基本元素的纹理元和作为显示在屏幕上的多边形的最基本元素的像素在尺寸上不同。为解决该问题,使用mip映射(mip-map)技术。在mip映射技术中,为进行快速纹理映射,不同细节级别(LOD)的纹理值是预定的,在程序执行期间读取八个纹理元以测量代表性纹理元的值,对这八个纹理元执行三线性内插(tri-linear interpolation),并且使用三线性内插结果作为代表性纹理元值。使用公知快于过滤的mip映射技术使纹理元和像素的尺寸相同是可能的。然而,mip映射技术需要从存储器中读取八个纹理元以进行实时mip映射,从而导致增大存储在存储器中的数据的传输量。
因访问帧缓冲器220而导致的存储器通信量主要发生于z测试即深度测试。z测试是比较当前处理的像素即当前像素的深度与已经处理的像素即先前像素的深度。在当前像素位于先前像素之前时,可以在屏幕上看到当前像素,而在当前像素位于先前像素之后时,当前像素在屏幕上被隐藏,因此被丢弃。在z测试期间,根据存储在z缓冲器中的先前像素的深度信息判定当前像素的有效性,并且执行读取和写入操作。如果根据z测试结果判定当前像素有效,则对当前像素执行阿尔法测试以获得关于当前像素的深度信息,并且以所获得的深度信息更新存储在z缓冲器中的先前像素的深度信息。如果当前像素透明,则以通过阿尔法测试获得的深度信息更新存储在z缓冲器中的深度信息,参考存储在色彩缓冲器中的像素的色彩信息,将当前像素与存储在色彩缓冲器中的像素进行混合以获得新色彩像素,并且以新色彩像素的色彩信息更新存储在色彩缓冲器中的色彩信息。在更新期间,在帧缓冲器220中执行读取和写入操作从而计算像素信息。因此,存储器带宽和访问延迟变成影响帧缓冲器220的性能的主要因素。一般而言,3D图形加速器使用缓存存储器来减小写入到帧缓冲器220的纹理和数据的传输量。使用缓存存储器在很大程度上减小存储器带宽和访问延迟。如果屏幕分辨率变高,则所要处理的像素数增大,并且存储在纹理存储器和帧缓冲器220中的数据的传输量也呈几何级数增大。
为解决这些问题,本发明提出一种适于高性能3D图形硬件和移动设备的低功率像素高速缓存结构。
图3是根据本发明一个优选实施例的像素高速缓存400的结构方框图。根据本发明,用于3D图形加速器中的像素高速缓存400单独存储z数据和色彩数据,以提高缓存效率。像素高速缓存400包括z数据存储单元(或z高速缓存)410和色彩数据存储单元(色彩高速缓存)420。
z数据存储单元410从内置在帧存储器220中的z缓冲器222中读取z数据,并且将所读取的z数据提供给像素光栅化管道。
在z数据存储单元410从帧存储器220中读取z数据的同时,色彩数据存储单元420预先从内置在帧存储器220中的色彩缓冲器224中读取色彩数据,并且存储所读取的色彩数据。色彩数据存储单元420的操作称作预提取(prefetch)。色彩数据存储单元420在像素光栅化管道中执行z测试,并且当实际需要色彩数据时,将所存储的色彩数据提供给像素光栅化管道。在本发明的像素高速缓存结构中,在色彩数据处理期间使用z测试结果,从而提高高速缓存的效率。
最好,只将实际所要使用的色彩数据存储在色彩数据存储单元420中以降低功耗。因此,如图3所示,将具有四个或八个项目的小型色彩像素缓冲器450安装在像素高速缓存400之内。色彩像素缓冲器450预先从帧存储器220中读取色彩数据,并且存储所读取的色彩数据。只有当像素光栅化管道中的z测试结果成功时,才将色彩数据存储在色彩数据存储单元420中。
图4是示出根据本发明一个优选实施例的3D图形加速器的操作及其中的信号流动的方框图。现在将参照图4详细描述根据本发明一个优选实施例的3D图形加速器和3D图形加速方法。
参照图4,在步骤300,执行对z数据3的读取。为读取z数据3,将z数据3的地址2发送到像素高速缓存400,并且像素高速缓存400从其内部检测z数据3。如果从z高速缓存412中没有检测到z数据3,则像素高速缓存400从内置在帧缓冲器220中的z缓冲器222中读取z数据3,并且将所读取的z数据存储在z高速缓存412中。同时,从包括在帧缓冲器220内的色彩缓冲器224中预提取与z数据3的像素位置相对应的色彩值,并且将色彩值存储在色彩像素缓冲器450中。为预提取色彩值,产生色彩数据在存储器中的色彩地址4,并且将其提供给帧缓冲器220。
在步骤310,在像素光栅化管道中执行z测试。当在z测试期间当前在光栅化管道中处理的像素显示在屏幕上时,认为z测试结果成功,而当像素被前面处理的像素隐藏时,认为z测试结果不成功。在步骤315,将z测试结果发送到像素高速缓存400。
如果判定z测试结果不成功,则丢弃存储在像素缓冲器450中的色彩数据7。然后,3D图形加速器对下一像素片断执行色彩光栅化管道。
如果判定z测试结果成功,则将存储在像素缓冲器450中的色彩数据7存储在色彩高速缓存422中。然后,以不间断的常规连续方式执行色彩光栅化管道处理。因此,在步骤340,可以在没有访问延迟的情况下直接读取和使用所存储的色彩数据7。
本发明的像素高速缓存结构的优点在于(i)预先读取所需色彩数据即对它进行预提取以在步骤340直接读取,从而防止访问延迟;(ii)根据z测试结果仅将所需的色彩数据存储在色彩高速缓存422中,从而提高色彩高速缓存422的效率;以及(iii)通过减小存储在像素高速缓存400中的信息量而降低功耗。
尽管本发明是参照其优选实施例来具体描述的,但本领域的技术人员应该理解,在不脱离由所附权利要求限定的本发明的精神和范围的情况下,可以对其进行形式和细节的各种修改。
本发明的像素高速缓存、使用该像素高速缓存的3D图形加速器以及3D图形加速方法允许仅预先读取和存储所需色彩数据。因此,有可能防止访问延迟、提高色彩高速缓存效率并且降低功耗。
权利要求
1.一种用于三维(3D)图形加速器的像素高速缓存,包括z数据存储单元,从帧存储器中读取z数据,并且将所读取的z数据提供给像素光栅化管道;以及色彩数据存储单元,在z数据存储单元从帧存储器中读取z数据的同时,预先从帧存储器中读取并存储色彩数据,并且只有当在像素光栅化管道中判定预定z测试结果成功时,才将色彩数据提供给像素光栅化管道。
2.如权利要求1所述的像素高速缓存,还包括色彩像素缓冲器,预先从帧存储器中读取色彩数据,并且只有当在像素光栅化管道中判定z测试结果成功时,才将色彩数据存储在色彩数据存储单元中。
3.如权利要求2所述的像素高速缓存,其中,色彩像素缓冲器包括四个或八个项目。
4.如权利要求1所述的像素高速缓存,其中,当正被光栅化的像素显示在屏幕上时,判定z测试结果成功,而当像素在屏幕上被隐藏时判定不成功。
5.如权利要求1所述的像素高速缓存,其中,只有当所需z数据没有存储在z数据存储单元中时,z数据存储单元才从帧存储器中读取所需z数据。
6.一种3D图形加速器,包括z高速缓存,从帧存储器中读取并存储z数据;色彩高速缓存,在z高速缓存从帧存储器中读取z数据的同时,预先从帧存储器中读取并存储色彩数据;z测试单元,从z高速缓存中读取z数据,并且对z数据执行预定z测试;以及色彩处理器,当判定z测试结果成功时,从色彩高速缓存中读取色彩数据,并且对色彩数据执行预定着色处理。
7.如权利要求6所述的3D图形加速器,还包括色彩像素缓冲器,预先从帧存储器中读取并存储色彩数据,并且只有当判定z测试结果成功时,才将色彩数据存储在色彩高速缓存中。
8.如权利要求7所述的3D图形加速器,其中,色彩像素缓冲器包括四个或八个项目。
9.如权利要求6所述的3D图形加速器,其中,当正被光栅化的像素显示在屏幕上时,判定z测试结果成功,否则判定不成功。
10.如权利要求6所述的3D图形加速器,其中,只有当所需z数据没有存储在z高速缓存中时,z高速缓存才从帧存储器中读取所需z数据。
11.一种3D图形加速方法,包括从帧存储器中读取z数据,并且将z数据存储在z高速缓存中;从帧存储器中读取色彩数据,并且将色彩数据存储在色彩高速缓存中;从z高速缓存中读取z数据,并且对z数据执行预定z测试;以及当判定z测试结果成功时,从色彩高速缓存中读取色彩数据,并且对色彩数据执行预定着色处理。
12.如权利要求11所述的方法,其中,当正被光栅化的像素显示在屏幕上时,判定z测试结果成功,否则判定不成功。
13.如权利要求11所述的方法,其中,只有当所需z数据没有存储在z高速缓存中时,才从帧存储器中读取所需z数据。
14.一种3D图形加速方法,包括从帧存储器中读取z数据,并且将z数据存储在z高速缓存中;从帧存储器中读取色彩数据,并且将色彩数据存储在色彩像素缓冲器中;从z高速缓存中读取z数据,并且对z数据执行预定z测试;当判定z测试结果成功时,将存储在色彩像素缓冲器中的色彩数据存储在色彩高速缓存中;以及当判定z测试结果成功时,从色彩高速缓存中读取色彩数据,并且对色彩数据执行预定着色处理。
15.如权利要求14所述的方法,其中,当正被光栅化的像素显示在屏幕上时,判定z测试结果成功,否则判定不成功。
16.如权利要求14所述的方法,其中,只有当所需z数据没有存储在z高速缓存中时,才从帧存储器中读取所需z数据。
全文摘要
提供一种用于三维(3D)图形加速器中的像素高速缓存的有效结构。该像素高速缓存包括z数据存储单元,从帧存储器中读取z数据,并且将所读取的z数据提供给像素光栅化管道;以及色彩数据存储单元,在z数据存储单元从帧存储器中读取z数据的同时,预先从帧存储器中读取并存储色彩数据,并且只有当在像素光栅化管道中判定预定z测试的结果成功时,才将色彩数据提供给像素光栅化管道。因此,该像素高速缓存结构允许在处理色彩数据之前仅预先读取和存储所需色彩数据,从而防止访问延迟、提高色彩高速缓存效率并且降低功耗。
文档编号G06T15/00GK1519777SQ20041000290
公开日2004年8月11日 申请日期2004年1月20日 优先权日2003年1月29日
发明者金宰贤, 金容帝, 韩铎敦, 朴佑赞, 李佶桓, 金一山 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1