图像处理装置及图像处理方法

文档序号:6353837阅读:244来源:国知局
专利名称:图像处理装置及图像处理方法
技术领域
本发明涉及一种在其中多个处理设备共享处理数据以便进行并行处理的图像处理装置和图像处理方法。
背景技术
近年来,用硬件高速实现3维计算机图形的图形大规模集成电路LSI已显著地普及。具体地讲,在游戏系统和个人计算机(PC)中,经常将这样的图形LSI作为标准设备安装。
而且,在图形LSI方面所取得的技术进展一直很快。诸如在“DirectX”中所使用的“顶点阴影器(Vertex Shader)”和“像素阴影器(Pixel Shader)”的功能扩展一直在进行,并且以比改善CPU更快的步伐改善了其性能。
为了改善图形LSI的性能,不仅提高LSI的操作频率是有效的,而且利用并行处理技术也是有效的。可以大致将并行处理技术划分如下。
第一是按区域划分的并行处理方法,第二是在图元级的并行处理方法,以及第三是在像素级的并行处理方法。
上述划分是基于并行处理的粒度(particle size)。区域划分并行处理的粒度最粗,而像素级并行处理的粒度最细。下面将概述这些技术。
区域划分的并行处理这是一种将屏幕划分为多个长方形区域并执行并行处理而同时将各区域分配给负责的多个处理单元的技术。
图元级的并行处理这是一种将不同的图元(例如,三角形)分配给多个处理单元并使它们并行运行的技术。
在图1中示出了在概念上说明图元级的并行处理的视图。
在图1中,PM0至PMn-1表示不同图元,PU0至PUn-1表示处理单元,而MM0至MMn-1表示存储器模块。
当将具有相对均等的大粒度的图元PM0至PMn-1给处理单元PU0至PUn-1时,处理单元PU0至PUn-1上的负荷是均衡的,并且能够实现有效的并行处理。
像素级的并行处理这是最细粒度的并行处理技术。
图2是根据像素级的并行处理技术在概念上说明像素级并行处理的视图。
如图2所示,在像素级的并行处理技术中,当用光栅扫描三角形时,像素以2×8的矩阵排列的像素组成的称作“像素标记(pixel stamp)PS”的长方形区域为单元产生。
在图2的例子中,产生了从像素标记PS0至像素标记PS7总共8个像素标记。同时处理包括在这些像素标记PS0至PS7中的最大16个像素。
和其他技术比较,该技术按照粒度精细量有更好的并行处理效果。
不过,在按上述解释的区域划分的并行处理的情形中,为了使处理单元以并行方式有效地运行,有必要事先在所述区域中划分将要画出的对象,于是场景数据分析的负荷是重的。
而且,当值为一帧的场景数据全部出现之后不开始绘图,而以当给出对象数据时立即开始绘图的所谓立即模式绘图时,则不能实现并行特性。
而且,在图元级并行处理的情形中,实际中,组成对象的图元PM0至PMn-1的大小存在变化,于是在用于处理在处理单元PU0至PUn-1之中的一个图元的时间内,会出现差异。当此种差异变得大时,处理单元在其中绘图的区域同样也极大地不同,并迷失该数据的位置,于是,例如包括存储器模块的DRAM将会频繁地出现页错误,而且降低其性能。
而且,在此技术的情形中,同样也存在互连的高成本问题。一般地,在用于图形处理的硬件中,为了扩宽存储器的带宽,将多个存储器模块用于存储器交织。
此时,如图1所示,有必要连接所有的处理单元PU0至PUn-1和内置存储器模块MM0至MMn-1。
而且,在像素级的并行处理的情形中,用图形所处理的图元尺寸倾向于更小,所以即使像素标记的尺寸再大,其结果只会是无效像素增加。执行的效率不上升。
因此,对能够用此技术并行处理的像素数目有限制。
所以,根据上述的并行处理技术的特征能够考虑使用下面的并行处理技术。
即,从并行处理的粒度大小的角度看,使用像素级的并行处理。
不过,由于存在对像素级的并行处理的并行度的限制,所以并行处理多个图元。
而且,分布(distributing)该处理使得处理单元和存储器模块能够直接连接,以便降低互连的成本。
图3是从概念上说明上述图像处理装置的结构的视图,该图像处理装置使用像素级并行处理同时处理多个图元,以及分发处理使得处理单元和存储器模块被直接连接。
如图3所示的图像处理装置1有一个流数据控制器(SDC)2和与SDC2并行连接的n个模块3-0至3-n-1。
模块3-0至3-n-1包括处理单元PU(0至n-1)和存储器模块MM(0至n-1)。
在图3中,假定交织存储器模块MM0至MMn-1。
而且,SDC 2用CPU和外部存储器控制数据的传送,并产生在处理单元PU0至PUn-1中的光栅扫描所要求的参数。将这些参数提供给所有的处理单元PU0至PUn-1。
处理单元PU0至PUn-1具有事先确定的对应存储器交织,并仅仅产生它们所负责的像素。
图4是用于解释在图3的图像处理装置中的像素生成的视图。
在图4的例子中,以4×4的长方形区域为单位交织存储器。将把这些长方形区域称作为“Lstamp(大标记)”。这里,假定由如图3所示的处理单元PU和存储器模块MM所组成的模块数是4(3-0至3-3)。而且,模块编号和对图4中的长方形区域给出的编号彼此对应。
因此,在如图4所示的三角形中,模块3-0负责2个Lstamp,而模块3-1至3-3分别负责3个Lstamp。
正如从图4所理解的那样,Lstamp包括许多无效像素。所以,在图3的图像处理装置中,同样有可能进一步将Lstamp划分为4个2×2的长方形区域(小标记Sstamp),并且在随后的阶段仅仅处理包括有效像素的小标记Sstamp。
图3中用于实现并行性的技术使得将要分布的处理能够使处理单元和存储器模块在图形处理的绘图系统中直接连接,并能够降低互连的成本。
然而,纹理读取系统的存储器访问和绘图系统的存储器访问不同,于是,从属于另一个模块的存储器中读取就变得必要。
因此,对于纹理读取系统的存储器访问诸如某些类型横纵(crossbar)的互连是需要的,但是当实现这一点时,必须解决重叠(overlap)访问和可伸缩性的问题。
重叠访问总的来说,当将屏幕上的长方形区域投影到纹理空间时,它们占据有不同形状和大小的区域。
图5A和图5B是概念的说明将屏幕上的长方形投影到纹理空间这一情况的视图。
这里,假定按与在帧缓冲器和Z-缓冲器中的数据一样的方法,在所交织的存储器中平均地存储纹理数据。
即,在对应于所附编号的模块的存储器中存储4×4的长方形区域。在图中,显示了将图5A所示的屏幕空间中的相邻的4个4×4的长方形区域投影到如图5B所示的纹理空间的情形。例如,如图5B中的模块3-0的区域所描述的区域表示用在屏幕空间上的由模块3-0负责的4×4的长方形区域所映射的纹理数据。
在此情形中,如同5A和图5B所示,为存储在某个模块中的纹理数据访问多个其他模块。而且,访问定时也不同。
因此,当在模块之间的传送单元是4×4的texcel单元时,用图5B的纹理空间的阴影所表示的数据将被传送4次。
用此方法将相同数据传送多次浪费了由电的和物理的条件所约束的存储器带宽,并且引起性能的下降。
可伸缩性(Scalahility)图6是用最直接的形式在由多个处理单元并行处理的系统中实现对纹理读取系统的存储器访问必需的横纵的例子的视图。
在图6中,由“GAB”表示的全局访问总线对应用于纹理访问的横纵。
当从一个存储器模块读出的数据的比特数是M比特,而并行处理的模块数是n时,纹理访问所要求的数据互连的数量是M×n。
当用LSI实现如图6所示的系统时,不仅在跨越所有模块的横向存在的上述(M×n)个数据线,而且在垂直方向上的互连对与处理单元的连接也变得必需。
具有这样一种形式的横纵使得在实现诸如处理单元接口、互连成本和互连延迟的可伸缩性方面存在不足。
处理单元接口如同6的椭圆虚线所示,在模块3-0至3-n-1中的处理单元PU-0至PUn-1请求用于接收从n个存储器模块MM0至MMn-1中读出的数据并选择所要求的数据的接口。
这样的接口取决于集成的模块数,于是只要并行度改变了就必须重新设计所述接口。
互连成本在不必考虑上述重叠访问或者由滤波所引起的带宽的增加而有效地利用100%的所读取的纹理数据的理想状态中,计算出全局访问总线GAB互连所要求的最小数量。
现在,假定每个处理单元每个周期处理4个像素,并且能够同时访问4个纹理。
此时,甚至在平均每个像素只要求一个texcel的状态中,每个模块也要求4×4×32=512比特的带宽。因此,在集成有n个模块的系统的情形中,全局访问总线GAB的互连宽度WB如下求出WB=(512×N×WP)/NL这里,WP是互连的间距,而NL是用于互连的层数。例如,作为假定的0.07μ的工艺的参考值,在应用WP=0.9μ而NL=2时,当变化模块数时的互连宽度如下4个模块0.9mm8个模块1.8mm以及16个模块3.6mm。
当假定芯片大小是10mm的正方形时,在8个模块的情形,仅全局访问总线GAB的横向互连就使用了20%的芯片尺寸。
此外,这些值假定是在理想状态中所要求的最小互连侄。实际上,对于实际性能,所述值必须至少被加倍。
互连延迟当小型化工艺并且提高工作频率时,则由于互连所导致的延迟占主导。例如,在运行频率1GHz的情形中,能够放置的长度大约在lmm至2mm。
因此,在如图6所示的全局访问总线GAB中,从总线一端到另一端的长度有时超过10mm。结果,要求交互访问的流水线寄存器增加读延迟时间。
此外,互连长度随着处理单元和存储器模块的组合而不同,因此同样有一个问题每个组合的定时必须同样也是最优化的,并且设计变得困难。

发明内容
本发明的一个目的是提供一种图像处理装置及图像处理方法,当多个处理装置共享处理数据以并行处理时,该图像处理装置及图像处理方法能够降低重叠访问、不需要大量互连的横纵、易于设计、且能够降低互连成本和互连延迟。
为了到达上述目的,本发明的第一个方面是其中多个模块共享处理数据以并行处理的图像处理装置,该图像处理装置包括一个全局模块和多个局部模块,该全局模块有一个多个局部模块以并行方式与其相连接的全局高速缓冲存储器,该全局高速缓冲存储器中存储有局部模块中所要求的处理数据, 并且,当从局部模块接收到局部高速缓冲存储器的填充请求(fillrequest)时,输出全局高速缓冲存储器中的数据至发布请求的局部模块以响应请求,而所述多个局部模块具有用于存储有关图像的数据的存储器模块、用于至少存储所述处理数据的局部高速缓冲存储器、以及处理单元,该处理单元用于根据在所述局部高速缓冲存储器中所存储的处理数据和运行参数由对应的存储器交织事先确定的要求的(charged)处理,并且当在所述局部高速缓冲器中不存在处理所要求的处理数据时,输出请求所要求数据的局部高速缓冲存储器填充请求,并通过以响应所述请求而发送的数据更新局部高速缓冲存储器,本发明的第二个方面是其中多个模块共享处理数据以并行处理的图像处理装置,该图像处理装置具有多个簇,每个簇包括一个全局模块和多个局部模块,每一个簇的全局模块具有多个局部模块以并行方式与之相连接的全局高速缓冲存储器,并且在该全局模块中存储有局部模块所要求的处理数据,并且,当从局部模块接收到局部高速缓冲存储器的填充请求时,输出在全局高速缓冲存储器中的数据至发布所述请求的局部模块以响应请求,多个局部模块有用于存储有关图像的存储器模块、用于至少存储处理数据的局部高速缓冲存储器、和处理单元,所述处理单元用于根据在局部高速缓冲存储器所存储的处理数据和运行参数和对应存储器交织事先确定的要求的处理,并且,当在局部高速缓冲存储器中不存在为处理所要求的处理数据时,输出用于请求所要求数据的局部高速缓冲存储器填充请求,并用为响应请求所发送的数据更新局部高速缓冲存储器,并且,簇的全局模块彼此传送数据。
此外,在本发明的第二方面,以矩阵的形式排列多个簇,并且簇的全局模块以环形方式相连接。
在本发明的第一或者第二方面中,当从局部模块接收局部高速缓冲存储器填充请求时,全局模块检查全局高速缓冲存储器的项目(entry),并且当存在项目时,读出所请求的块数据,并将所读出数据发送到发送该请求的局部模块。
在本发明的第一或者第二方面中,当接收到全局高速缓冲存储器填充请求时,局部模块输出所请求的块数据到全局模块,并且当从局部模块接收到局部高速缓冲存储器填充请求时,全局模块检查全局高速缓冲存储器的项目,当不存在项目时,将全局高速缓冲存储器填充请求发送给保存所请求的块数据的目标局部模块,通过在此之后从目标局部模块所发出的块数据更新全局高速缓冲存储器,并且读出相关的块数据,并将读出数据发送给发送局部高速缓冲存储器填充请求的局部模块。
在本发明的第一或者第二方面中,当接收到全局高速缓冲存储器填充请求时,局部模块输出所请求的块数据到全局模块,并且当从局部模块接收到局部高速缓冲存储器填充请求时,全局模块检查全局高速缓冲存储器的项目,当存在项目时,读出所请求的块数据并将读出的块数据发送给发送所述请求的局部模块,而当不存在项目时,将全局高速缓冲存储器填充请求发送给保存所请求的块数据的目标局部模块,通过在此之后从目标局部模块所发出的块数据更新全局高速缓冲存储器,并且读出相关的块数据,并将读出数据发送给发送局部高速缓冲存储器填充请求的局部模块。
最好,该装置具有用于产生运行参数的控制器,并且全局模块将控制器所产生的运行参数提供给多个局部模块。
在本发明的第一或者第二方面,全局模块具有对应局部模块而提供的多个通道块,并且该多个通道块传送对应局部模块的局部高速缓冲存储器填充请求和数据。
最好,在以全局模块为中心的全局模块周围的邻近区域安置多个局部模块。
而且,最好在以全局模块为中心的全局模块周围的邻近区域和在对应的通道块的邻近区安置多个局部模块。
在本发明的第一或者第二方面,全局模块具有相应于局部模块而提供的多个通道块,并且多个通道块传送对应局部模块的局部高速缓冲存储器填充请求、全局高速缓冲存储器填充请求及数据。
最好,所述并行处理是像素级的并行处理。
而且,所述并行处理是有关纹理的处理。
本发明的第三方面是图像处理方法,其中多个模块共享处理数据以并行处理,该图像处理方法包括步骤以并行方式将多个局部模块连接到单个全局模块;使用由多个局部模块所共享的全局高速缓冲存储器和由局部模块在局部所保持的局部高速缓冲存储器作为高速缓冲存储器的两个等级;使全局模块将局部模块所要求的处理数据存储在全局高速缓冲存储器中,从局部模块接收局部高速缓冲存储器填充请求,并且,在此时,输出在全局高速缓冲存储器中的数据以便响应发布所述请求的局部模块的请求;并且,使多个局部模块至少将所述处理数据存储在局部高速缓冲存储器中,执行根据在局部高速缓冲存储器中所存储的处理数据和运行参数由对应存储器交织事先确定的要求的处理;并且,当处理所要求的处理数据不在局部高速缓冲存储器时,输出请求所要求数据的局部高速缓冲存储器填充请求,并且用响应请求而发送的数据更新局部高速缓存存储器。
在本发明的第三方面,当全局模块从局部模块接收到局部高速缓冲存储器填充请求时,它检查全局高速缓冲存储器的项目,并且当存在项目时,读出所请求的块数据,并将所读出的数据发送给发送所述请求的局部模块。
在本发明的第三方面,当局部模块接收到全局高速缓冲存储器填充请求时,它输出所请求的块数据给全局模块,并且当全局模块从局部模块接收到局部高速缓冲存储器填充请求时,它检查全局高速缓冲存储器的项目,并且,当不存在项目时,发送全局高速缓冲存储器填充请求给保存有所请求的块数据的目标局部模块,用在此之后从目标局部模块所发送的块数据更新全局高速缓冲存储器,读出块数据,并将所读出数据发送给发送局部高速缓冲存储器填充请求的局部模块。
在本发明的第三方面,当局部模块接收到全局高速缓冲存储器填充请求时,它输出所请求的全局高速缓冲存储器填充请求给全局模块,并且当全局模块从局部模块接收到局部高速缓冲存储器填充请求时,它检查全局高速缓冲存储器的项目,并且当存在项目时,读出所要求的块数据,并将读出数据发送给发送请求的局部模块,而当不存在项目时,发送全局高速缓冲存储器填充请求给保存所请求的块数据的目标局部模块,通过在此之后从目标局部模块所发送的块数据更新全局高速缓冲存储器,读出块数据,并将所读出数据发送给发送局部高速缓冲存储器填充请求的局部模块。
根据本发明,在例如纹理系统处理的情形中,在控制器中产生处理参数,并将所产生的参数通过例如全局模块广播给局部模块。
每个局部模块在处理单元中执行例如下面的处理。
即,当处理单元接收到广播参数时,它决定所述三角形是否属于它负责的区域,例如,以4×4像素长方形区域为单位所交织的区域。当结果是所述三角形属于处理单元负责的区域时,用光栅扫描各种类型的数据(Z、纹理坐标、色彩等)。
接下来,通过LOD(细节级)运算计算MipMap级,并且计算用于纹理访问的(u,v)地址。
接着,读出纹理。
在此情形中,每个局部模块的处理单元在读取纹理时首先检查局部高速缓冲存储器的项目。
当结果是存在项目时,读出所要求的纹理。
当所要求的纹理数据不在局部高速缓冲存储器时,处理单元将局部高速缓冲存储器填充请求发送给全局模块。
全局模块根据全局高速缓冲存储器的相应地址从全局高速缓冲存储器中读出在全局高速缓冲存储器中的任何所要求的块数据,并通过通道将它发回到发送请求的局部模块。
另一方面,如果所要求的块数据不在局部高速缓冲存储器中时,全局模块发送全局高速缓冲存储器填充请求给保存相关块的局部模块。
接收全局高速缓冲存储器填充请求的局部模块从存储器读出对应块数据,并且通过全局接口将它发送给全局模块。
之后,全局模块在计划的全局高速缓冲存储器中填充块数据,并将来自计划的通道中的数据发送给发送请求的局部模块。
当从全局模块发送所要求的块数据时,对应的局部模块更新局部高速缓冲存储器,并通过处理单元读出块数据。
接下来,局部模块使用读出的纹理数据和在用于4-邻近内插或者其他滤波的(u,v)地址计算时获得的十进制(decimal)部分。
接着,该模块使用用于以像素为单位进行处理的所滤波的纹理数据和各种光栅扫描数据。
然后,将通过像素级的处理中的各种处理的像素数据写入存储器模块,例如,在内置的DRAM存储器中的帧缓冲器和Z-缓冲器。


图1是从原理上说明图元的并行处理的视图。
图2是从原理上说明根据像素级的并行处理技术的图元级并行处理的视图。
图3是从原理上说明图像处理装置的结构视图,该装置使用像素级的并行处理,同时处理多个图元,并且分发处理使得处理单元和存储器模块能够直接相连接。
图4是用于解释在图3的图像处理装置中的像素生成的视图。
图5A和图5B是从原理上说明将屏幕上的长方形区域投影到纹理空间的情形的视图。
图6是一个例子视图,在该例子中,在用于由多个处理单元并行处理的系统中以最直接的形式实现纹理读取系统的存储器访问所必需的横纵。
图7是根据本发明的图像处理装置的实施例的结构方框图。
图8是用于解释根据本实施例的流数据控制器(SDC)的主要处理的流程图。
图9是用于解释根据本实施例的全局模块的功能的流程图。
图10是图7的全局模块的结构的具体例子的电路图。
图11是在根据本实施例的局部模块中的处理单元的主要处理的视图。
图12是用于解释根据本实施例的在读取纹理时的局部模块的运行的流程图。
图13是根据本实施例的局部模块中的局部高速缓冲存储器的结构例子的框图。
图14是根据本实施例的局部高速缓冲存储器的只读高速缓冲存储器的结构例子的框图。
图15是根据本实施例的局部高速缓冲存储器的存储器控制器的结构例子的框图。
图16A至图16E是解释根据本实施例的有关库(bank)交织的寻址的视图。
图17A至图17D是用于解释根据本实施例的有关库交织的寻址的视图。
图18是根据本发明的另一个实施例的图像处理装置的结构框图。
具体实施例方式
图7是根据本发明的实施例的图像处理装置的结构框图。
根据本实施例的图像处理装置10具有如图7所示的流数据控制器(SDC)11、全局模块12、和局部模块13-0至13-3。
在本图像处理装置10中,SDC11和全局模块12传送数据,将多个(即,本实施例中为4)局部模块13-0至13-3并联到单个全局模块12中,并且多个局部模块13-0至13-3共享处理数据并且并行处理该数据。
对于纹理读取系统,要求对另一个局部模块进行存储器访问,但是通过具有路由器功能的一个全局模块12来代替全局访问总线进行访问。
而且,如随后详细说明的那样,全局模块12有一个全局高速缓冲存储器,并且局部模块有局部高速缓冲存储器。
即,本图像处理装置10有作为高速缓冲存储器级的等级,由例如4个局部模块13-0至13-3共享的全局缓冲存储器和由局部模块局部拥有的局部高速缓冲存储器两个等级。
下面,参照附图按顺序解释部件的功能和结构。
SDC11控制用CPU和外部存储器进行的数据的传送和用全局模块12进行的数据的传送,并且进行顶点数据的处理、在局部模块13-0至13-3的处理单元中的光栅扫描所要求的参数的生成、和其他处理。
在SDC11中的处理的具体内容如下。而且,SDC11的处理流程如图8所示。
首先,当输入数据时(ST1),SDC11进行总的顶点(per-vertex)运算(ST2)。
在此处理中,当输入三维坐标的顶点数据、法线矢量和纹理坐标时,处理顶点数据。作为代表性的处理,有用于变换对象形状、投影到屏幕等的坐标变换处理、照明处理和摘录处理。
在此完成的处理对应所谓的顶点阴影器的执行。
接下来,计算DDA(数字差分分析器)参数(ST3)。
此处理计算各种数据(Z、纹理坐标、颜色等)的倾角和光栅扫描所要求的其他DDA参数。
接着,SDC将所计算的DDA参数通过全局模块12广播给所有局部模块13-0至13-3(ST4)。
此处理通过利用和在随后所解释的高速缓冲存储器填充不同的通道由全局模块12将所广播的参数传送给局部模块13-0至13-3。然而,这不影响全局高速缓冲存储器的内容。
全局模块12有路由的功能和由所有局部模块所共享的全局高速缓冲存储器121。
全局模块12通过SDC11将DDA参数广播给并行连接的全部局部模块13-0至13-3。
而且,当从某个局部模块接收到局部高速缓冲存储器填充LCF(localcache fill)请求时,全局模块12检查如图9所示的全局高速缓冲存储器的项目(ST11),并且当有项目时(ST12),读出所要求的块数据(ST13),并将所读出的数据发送给发送请求的局部模块(ST14),而当没有项目(ST12)时,发送全局高速缓冲存储器填充GCF(global cache fill)请求给保持块数据的目标局部模块(ST15),用此后所发送的块数据更新全局高速缓冲存储器(ST16、ST17),读出块数据(ST13),并将读出数据发送给发送局部高速缓冲存储器填充LCF请求的局部模块(ST14)。
图10是图7的全局模块的结构的具体例子的电路图。
全局模块12有一个主要用局部模块13-0传送数据的通道块CBLK0、一个主要用局部模块13-1传送数据的通道块CBLK1、一个主要用局部模块13-2传送数据的通道块CBLK2、一个主要用局部模块13-3传送数据的通道块CBLK3。
而且,在本实施例中,将每个具有预定容量的全局高速缓冲存储器121-0至121-3安置在通道块CBLK0至CBLK3中。
除了全局高速缓冲存储器121-0外,通道块CBLK0有一个局部高速缓冲存储器填充通道1201-0,全局高速缓冲存储器填充通道1202-0,选择器1203-0,标签电路(tag circuit)1204-0,仲裁器1205-0,和由例如FIFO(先进先出)队列组成的队列寄存器1206-0至1210-0。
类似地,除了全局高速缓冲存储器121-1外,通道块CBLK1有一局部高速缓冲存储器填充通道1201-1、全局高速缓冲存储器填充通道1202-1、选择器1203-1、标签电路1204-1、仲裁器1205-1和队列寄存器1206-1至1210-1。
除了全局高速缓冲存储器121-2外,通道块CBLK2有一局部高速缓冲存储器填充通道1201-2、全局高速缓冲存储器填充通道1202-2、选择器1203-2、标签电路1204-2、仲裁器1205-2和队列寄存器1206-2至1210-2。
除了全局高速缓冲存储器121-3外,通道块CBLK3有一局部高速缓冲存储器填充通道1201-3、全局高速缓冲存储器填充通道1202-3、选择器1203-3、标签电路1204-3、仲裁器1205-3和队列寄存器1206-3至1210-3。
在通道块CBLK0中的局部高速缓冲存储器填充通道1201-0有请求队列寄存器12011-0和数据队列寄存器12012-0。
请求队列寄存器12011-0接收作为输入的从局部模块13-0传送的局部高速缓冲存储器填充LCF请求,并将其输出到通道块CBK1的队列寄存器1206-0和队列寄存器1206-1、通道块CBLK2的队列寄存器1206-2和通道块CBLK3的队列寄存器1206-3。
数据队列寄存器12012-0接收作为输入的从全局高速缓冲存储器121-0、121-1、121-2或者121-3读出的并由选择器1203-0所选择的块数据,并将其输出到局部模块13-0。
在通道块CBLK0中的全局高速缓冲存储器填充通道1202-0有一请求队列寄存器12021-0和数据队列寄存器12022-0。
请求队列寄存器12021-0从标签电路1204-0接收全局高速缓冲存储器填充GCF请求,并将其输出给保存所请求块数据的目标局部模块13-0。
数据队列寄存器12022-0接收从接收全局高速缓冲存储器填充请求的目标局部模块13-0传送的块数据,并将其提供给全局高速缓冲存储器121-0。
在通道块CBLK0中的选择器1203-0根据没有示出的控制系统的指示选择从全局高速缓冲存储器121-0、121-1、121-2或者121-3读出的块数据,并将其提供给局部高速缓冲存储器填充通道1201-0的数据队列寄存器12012-0。
在通道块CBLK0中的标签电路1204-0有用于存储在全局高速缓冲存储器121-0中存储的块数据的地址标签的存储器,将仲裁器1205-0通过通道块CBLK0至CBLK3从来自局部模块13-0至13-3并保存在队列寄存器1206-0至1209-0中的局部高速缓冲存储器填充请求中选择的请求所请求的块数据地址,和在标签电路1204-0中所存储的地址标签进行比较,并且,如果匹配,则读出与相关地址标签相对应的全局高速缓冲存储器121-0的数据,并将它提供给通道块CBLK0至CBLK3的选择器1203-0至1203-3。
此时,由未示出的控制系统指令指示它用用于为发送局部高速缓冲存储器填充请求的局部高速缓冲存储器发送数据的通道块的选择器,选择从通道块CBLK0的全局高速缓冲存储器121-0读出的数据。
另一方面,当获悉由局部模块13-0至13-3的任何一个所请求的块数据没有存储在全局高速缓冲存储器121-0时,标签电路1204-0设置表示在全局高速缓冲存储器121-0的哪个地址存在数据的标志,在队列寄存器1210-0中设置所述地址,并将全局高速缓冲存储器填充请求提供给全局高速缓冲存储器通道1202-0的请求队列寄存器12021-0。当从局部模块13-0将所请求的数据发送给全局高速缓冲存储器通道1202-0的队列寄存器12022-0时,全局高速缓冲存储器121-0根据在队列寄存器1210-0中所设置的地址用所述数据更新全局高速缓冲存储器121-0的内容,并将由局部高速缓冲存储器填充请求所请求的数据提供给通道块CBLK0至CBLK3的选择器1203-0至1203-3。
通道块CBLK0的仲裁器1205-0,通过从局部模块13-0至13-3经通道块CBLK0至CBLK3接收在队列寄存器1206-0至1209-0中所保存的局部高速缓冲存储器填充请求,来进行仲裁工作,根据能够同时从全局高速缓冲存储器121-0读出的模块数据量选择请求,并将该请求发送给标签电路1204-0。
通道块CBLK0的队列寄存器1206-0保存经过通道1201-0,来自局部模块13-0的局部高速缓冲存储器填充请求中决定将要在局部模块13-0的存储器模块中存储的请求。
队列寄存器1207-0保存经过通道块CBLK1的通道1201-0,来自局部模块13-1的局部高速缓冲存储器填充请求中决定将要在局部模块13-0的存储器模块中存储的请求。
队列寄存器1208-0保存经过通道块CBLK2的通道1201-2,来自局部模块13-2的局部高速缓冲存储器填充请求中决定将要在局部模块13-0的存储器模块中存储的请求。
队列寄存器1209-0保存经过通道块CBLK3的通道1201-3,来自局部模块13-3的局部高速缓冲存储器填充请求中决定将要在局部模块13-0的存储器模块中存储的请求。
在通道块CBLK1中的局部高速缓冲存储器填充通道1201-1有一请求队列寄存器12011-1和一数据队列寄存器12012-1。
请求队列寄存器12011-1接收作为输入的从局部模块13-1传送的局部高速缓冲存储器填充LCF请求,并将其输出到通道块CBLK0的队列寄存器1207-1和队列寄存器1207-0、通道块CBLK2的队列寄存器1207-2和通道块CBLK3的队列寄存器1207-3。
数据队列寄存器12012-1接收作为输入的从全局高速缓冲存储器121-0、121-1、121-2或者121-3读出的且由选择器1203-1所选择的块数据,并将其输出到局部模块13-1。
在通道块CBLK1中的全局高速缓冲存储器填充通道1202-1有一请求队列寄存器12021-1和一数据队列寄存器12022-1。
请求队列寄存器12021-1接收来自标签电路1204-1的全局高速缓冲存储器填充GCF请求,并将其输出到保存所请求的块数据的目标局部模块13-1。
数据队列寄存器12022-1接收从接收全局高速缓冲存储器填充请求的目标局部模块13-1所传送的块数据并将其提供给全局高速缓冲存储器121-1。
在通道块CBLK1中的选择器1203-1根据未示出的控制系统的指令选择从全局高速缓冲存储器121-0、121-1、121-2或者121-3读出的块数据,并将其提供给局部高速缓冲存储器填充通道1201-1的数据队列寄存器12012-1。
在通道块CBLK1中的标签电路1204-1有一个用于存储在全局高速缓冲存储器121-1中所存储的块数据的地址标记的存储器,将仲裁器1205-1通过通道块CBLK0至CBLK3从来自局部模块13-0至13-3并保存在队列寄存器1206-1至1209-1中的局部高速缓冲存储器填充请求中选择的请求所请求的块数据地址,和在标签电路1204-1中所存储的地址标记进行比较,并且,如果匹配,则读出与相关地址标记相对应的全局高速缓冲存储器121-1的数据,并将它提供给通道块CBLK0至CBLK3的选择器1203-0至1203-3。
此时,由未示出的控制系统指令指示它用用于为发送局部高速缓冲存储器填充请求的局部高速缓冲存储器发送数据的通道块的选择器,选择从通道块CBLK1的全局高速缓冲存储器121-1读出的数据。
另一方面,当获悉由局部模块13-0至13-3的任何一个所请求的块数据没有存储在全局高速缓冲存储器121-1时,标签电路1204-1设置表示在全局高速缓冲存储器121-1的哪个地址存在数据的标志,在队列寄存器1210-1中设置地址,并将全局高速缓冲存储器填充请求提供给全局高速缓冲存储器通道1202-1的请求队列寄存器12021-1。当从局部模块13-0将所请求的数据发送给全局高速缓冲存储器通道1202-1的队列寄存器12022-1时,全局高速缓冲存储器121-1根据在队列寄存器1210-1中所设置的地址用所述数据更新全局高速缓冲存储器121-1的内容,并将由局部高速缓冲存储器填充请求所请求的数据提供给通道块CBLK0至CBLK3的选择器1203-0至1203-3。
通道块CBLK0的仲裁器1205-1,通过从局部模块13-0至13-3经通道块CBLK0至CBLK3接收在队列寄存器1206-1至1209-1中所保存的局部高速缓冲存储器填充请求,来进行仲裁工作,根据能够同时从全局高速缓冲存储器121-1读出的模块数据量选择请求,并将该请求发送给标签电路1204-1。
通道块CBLK1的队列寄存器1206-1保存经过通道1201-0,来自局部模块13-0的局部高速缓冲存储器填充请求中决定将要在局部模块13-1的存储器模块中存储的请求。
队列寄存器1207-1保存经过通道块CBLK1的通道1201-0,来自局部模块13-1的局部高速缓冲存储器填充请求中决定将要在局部模块13-1的存储器模块中存储的请求。
队列寄存器1208-1保存经过通道块CBLK2的通道1201-2,来自局部模块13-2的局部高速缓冲存储器填充请求中决定将要在局部模块13-1的存储器模块中存储的请求。
队列寄存器1209-1保存经过通道块CBLK3的通道1201-3,来自局部模块13-3的局部高速缓冲存储器填充请求中决定将要在局部模块13-1的存储器模块中存储的请求。
在通道块CBLK2中的局部高速缓冲存储器填充通道1201-2有一请求队列寄存器12011-2和一数据队列寄存器12012-2。
请求队列寄存器12011-2接收作为输入的从局部模块13-2传送的局部高速缓冲存储器填充LCF请求,并将其输出到通道块CBLK0的队列寄存器1208-2和队列寄存器1208-0、通道块CBLK1的队列寄存器1208-1、和通道块CBLK3的队列寄存器1208-3。
数据队列寄存器12012-2接收作为输入的从全局高速缓冲存储器121-0、121-1、121-2或者121-3读出的且在选择器1203-2所选择的块数据,并将其输出到局部模块13-2。
在通道块CBLK2中的全局高速缓冲存储器填充通道1202-2有一请求队列寄存器12021-2和一数据队列寄存器12022-2。
请求队列寄存器12021-2接收来自标签电路1204-2的全局高速缓冲存储器填充GCF请求,并将其输出到保持所请求的块数据的目标局部模块13-2。
数据队列寄存器12022-2接收从接收全局高速缓冲存储器填充请求的目标局部模块13-2所传送的块数据并将其提供给全局高速缓冲存储器121-2。
在通道块CBLK2中的选择器1203-2根据未示出的控制系统的指令选择从全局高速缓冲存储器121-0、121-1、121-2或者121-3读出的块数据,并将其提供给局部高速缓冲存储器填充通道1201-2的数据队列寄存器12012-2。
在通道块CBLK2中的标签电路1204-2有一个用于存储在全局高速缓冲存储器121-2中所存储的块数据的地址标记的存储器,将仲裁器1205-2通过通道块CBLK0至CBLK3从来自局部模块13-0至13-3并保存在队列寄存器1206-2至1209-2中的局部高速缓冲存储器填充请求中选择的请求所请求的块数据地址,和在标签电路1204-2中所存储的地址标记进行比较,并且,如果匹配,则读出与相关地址标记相对应的全局高速缓冲存储器121-2的数据,并将它提供给通道块CBLK0至CBLK3的选择器1203-0至1203-3。
此时,由未示出的控制系统指令指示它用用于为发送局部高速缓冲存储器填充请求的局部高速缓冲存储器发送数据的通道块的选择器,选择从通道块CBLK2的全局高速缓冲存储器121-2读出的数据另一方面,当获悉由局部模块13-0至13-3的任何一个所请求的块数据没有存储在全局高速缓冲存储器121-2时,标签电路1204-2设置表示在全局高速缓冲存储器121-2的哪个地址存在数据的标志,在队列寄存器1210-2中设置地址,并将全局高速缓冲存储器填充请求提供给全局高速缓冲存储器通道1202-2的请求队列寄存器12021-2。当从局部模块13-0将所请求的数据发送给全局高速缓冲存储器通道1202-2的队列寄存器12022-2时,全局高速缓冲存储器121-2根据在队列寄存器1210-2中所设置的地址用所述数据更新全局高速缓冲存储器121-2的内容,并将由局部高速缓冲存储器填充请求所请求的数据提供给通道块CBLK0至CBLK3的选择器1203-0至1203-3。
通道块CBLK2的仲裁器1205-2,通过从局部模块13-0至13-3经通道块CBLK0至CBLK3接收在队列寄存器1206-2至1209-2中保存的局部高速缓冲存储器填充请求,来进行仲裁工作,根据能够同时从全局高速缓冲存储器121-2读出的模块数据量选择请求,并将该请求发送给标签电路1204-2。
通道块CBLK2的队列寄存器1206-2保存经过通道1201-0,来自局部模块13-0的局部高速缓冲存储器填充请求中决定将要在局部模块13-0的存储器模块中存储的请求。
队列寄存器1207-2保存经过通道块CBLK1的通道1201-1,来自局部模块13-1的局部高速缓冲存储器填充请求中决定将要在局部模块13-2的存储器模块中存储的请求。
队列寄存器1208-2保存经过通道块CBLK2的通道1201-2,来自局部模块13-2的局部高速缓冲存储器填充请求中决定将要在局部模块13-2的存储器模块中存储的请求。
队列寄存器1209-2保存经过通道块CBLK3的通道1201-3,来自局部模块13-3的局部高速缓冲存储器填充请求中决定将要在局部模块13-2的存储器模块中存储的请求。
在通道块CBLK3中的局部高速缓冲存储器填充通道1201-3有一请求队列寄存器12011-3和一数据队列寄存器12012-3。
请求队列寄存器12011-3接收作为输入的从局部模块13-3传送的局部高速缓冲存储器填充LCF请求,并将其输出到通道块CBLK0的队列寄存器1209-0和队列寄存器1209-0、通道块CBLK1的队列寄存器1209-1、和通道块CBLK2的队列寄存器1209-2。
数据队列寄存器12012-3接收作为输入的从全局高速缓冲存储器121-0、121-1、121-2或者121-3读出的且在选择器1203-3所选择的块数据,并将其输出到局部模块13-3。
在通道块CBLK3中的全局高速缓冲存储器填充通道1202-3有一请求队列寄存器12021-3和一数据队列寄存器12022-3。
请求队列寄存器12021-3接收来自标签电路1204-2的全局高速缓冲存储器填充GCF请求,并将其输出到保持所请求的块数据的目标局部模块13-3。
数据队列寄存器12022-3接收从接收全局高速缓冲存储器填充请求的目标局部模块13-3所传送的块数据并将其提供给全局高速缓冲存储器121-3。
在通道块CBLK3中的选择器1203-3根据未示出的控制系统的指令选择从全局高速缓冲存储器121-0、121-1、121-2或者121-3读出的块数据,并将其提供给局部高速缓冲存储器填充通道1201-3的数据队列寄存器12012-3。
在通道块CBLK3中的标签电路1204-3有一用于存储在全局高速缓冲存储器121-3中所存储的块数据的地址标记的存储器,将仲裁器1205-3通过通道块CBLK0至CBLK3从来自局部模块13-0至13-3并保存在队列寄存器1206-3至1209-3中的局部高速缓冲存储器填充请求中选择的请求所请求的块数据地址,和在标签电路1204-3中所存储的地址标记进行比较,并且,如果匹配,则读出与相关地址标记相对应的全局高速缓冲存储器121-3的数据,并将它提供给通道块CBLK0至CBLK3的选择器1203-0至1203-3。
此时,由未示出的控制系统指令指示它用用于为发送局部高速缓冲存储器填充请求的局部高速缓冲存储器发送数据的通道块的选择器,选择从通道块CBLK3的全局高速缓冲存储器121-3读出的数据。
另一方面,当获悉由局部模块13-0至13-3的任何一个所请求的块数据没有存储在全局高速缓冲存储器121-3时,标签电路1204-3设置表示在全局高速缓冲存储器121-3的哪个地址存在数据的标志,在队列寄存器1210-3中设置地址,并将全局高速缓冲存储器填充请求提供给全局高速缓冲存储器通道1202-3的请求队列寄存器12021-3。当从局部模块13-0将所请求的数据发送给全局高速缓冲存储器通道1202-3的队列寄存器12022-3时,全局高速缓冲存储器121-3根据在队列寄存器1210-3中所设置的地址用所述数据更新全局高速缓冲存储器121-3的内容,并将由局部高速缓冲存储器填充请求所请求的数据提供给通道块CBLK0至CBLK3的选择器1203-0至1203-3。
通道块CBLK3的仲裁器1205-3,通过从局部模块13-0至13-3经通道块CBLK0至CBLK3接收在队列寄存器1206-3至1209-3中所保持的局部高速缓冲存储器填充请求,来进行仲裁工作,根据能够同时从全局高速缓冲存储器121-3读出的模块数据量选择请求,并将该请求发送给标签电路1204-3。
通道块CBLK3的队列寄存器1206-3保存经过通道1201-0,来自局部模块13-0的局部高速缓冲存储器填充请求中决定将要在局部模块13-3的存储器模块中存储的请求。
队列寄存器1207-3保存经过通道块CBLK1的通道1201-1,来自局部模块13-1的局部高速缓冲存储器填充请求中决定将要在局部模块13-3的存储器模块中存储的请求。
队列寄存器1208-3保存经过通道块CBLK2的通道1201-2,来自局部模块13-2的局部高速缓冲存储器填充请求中决定将要在局部模块13-3的存储器模块中存储的请求。
队列寄存器1209-3保存经过通道块CBLK3的通道1201-3,来自局部模块13-3的局部高速缓冲存储器填充请求中决定将要在局部模块13-3的存储器模块中存储的请求。
注意图10的结构是一个例子。替代为每个通道块安置全局高速缓冲存储器121这一结构在各种各样的方面都是可能的,例如,提供单个高速缓冲存储器,并从每个通道块访问它。
局部模块13-0有一处理单元131-0,一由例如DRAM构成的存储器模块132-0,一在该模块中固有的局部高速缓冲存储器133-0,和一和全局模块12的通道块CBLK0相连接的全局接口(GAIF)134-0。
类似地,局部模块13-1有一处理单元131-1,一用例如DRAM配置的存储器模块132-1,一在该模块中固有的局部高速缓冲存储器133-1和一和全局模块12的通道块CBLK1相连接的全局接口(GAIF)134-1。
局部模块13-2有一处理单元131-2,一用例如DRAM配置的存储器模块132-2,一在该模块中固有的局部高速缓冲存储器133-2和一和全局模块12的通道块CBLK2相连接的全局接口(GAIF)134-2。
局部模块13-3有一处理单元131-3,一用例如DRAM配置的存储器模块132-3,一在该模块中固有的局部高速缓冲存储器133-3和一和全局模块12的通道块CBLK3相连接的全局接口(GAIF)134-3。
局部模块13-0至13-3有用例如4×4的长方形区域单元的预定大小交织的存储器模块132-0至132-3。存储器模块132-0和处理单元131-0、存储器模块132-1和处理单元131-1、存储器模块132-2和处理单元131-2、以及存储器模块132-3和处理单元131-3有一一对应的负责区域。不存在对绘制系统其它局部模块的存储器访问。
另一方面,局部模块13-0至13-3要求对纹理读取系统其他局部模块的存储器访问,但是在这种情况下访问是通过全局模块12进行的。
局部模块13-0至13-3的处理单元131-0至131-3执行如下处理。而且,处理单元131-1至131-3的处理程序如图11所示。
当接收作为输入的广播参数数据时(ST21),处理单元131决定所述三角形是否是它所负责的区域(ST22)。如果是它负责的区域,则进行光栅扫描(ST23)。
即,当接收广播参数时,处理单元决定所述三角形是否属于它负责的区域,例如,以4×4的像素长方形区域单元所交织的区域。如果属于,就光栅扫描各种数据(Z,纹理坐标,色彩等)。在此情形中,所产生的单元是每个局部模块一个2×2像素的圆圈。
接下来,执行纹理坐标的透视校正(ST24)。而且,此处理阶段同样也包括通过LOD(细节级)计算的MipMap级的计算和用于纹理访问的(u,v)的地址计算。
接下来,进行纹理读取(ST25)。
在此情况中,局部模块13-0至13-3的处理单元131-0至131-3首先在读取纹理时检查局部高速缓冲存储器133-0至133-3的项目(ST31),并且当有项目时(ST32),读出所要求的纹理数据(ST33)。
当所要求的纹理数据不在局部高速缓冲存储器133-0至133-3中时,处理单元131-0至131-3通过全局接口134-0至134-3发送局部高速缓冲存储器填充请求给全局模块12。
接着,全局模块12将所要求块返回到发送请求的局部模块,但是,如果如上所述(参考图9的解释)不存在,则发送全局高速缓冲存储器填充请求给保存相关块的局部模块。之后,它在全局高速缓冲存储器中填充块数据,并将数据发送给发送所述请求的局部模块。
当从全局模块12发送所要求的块数据时,对应的局部模块更新局部高速缓冲存储器(ST35,ST36),并且处理单元读出块数据(ST33)。
注意,这里假定最多同时处理4个纹理。将要读出的纹理数据数是每像素16个texcel。
接下来,进行纹理滤波(ST26)。
在此情况中,处理单元131-0至131-3通过利用所读出的纹理数据和在(u,v)的地址计算时获得的十进制部分进行诸如4-邻近内插的滤波。
接着,它进行像素级的处理(总的像素运算(Per-Pixel Operation))(ST27)。
在此处理中,通过利用在滤波之后的纹理数据和在光栅扫描之后的各种数据进行以像素为单位的运算。在此进行的处理对应像素级的照亮(lighting)(像素级的照亮)或者其他的所谓“像素阴影器”。此外,接下来的处理包括即,α测试的处理、剪辑、Z-缓冲器测试、模板测试、α调和(blend)、逻辑操作和浓淡处理。
接着,将通过像素级处理中各种测试的像素数据写入存储器模块132-0至132-3,例如,在内置的DRAM存储器上的帧缓冲器和Z-缓冲器(ST28存储器写入)。
局部模块13-0至13-3的局部高速缓冲存储器133-0至133-3存储处理单元131-0至131-3的处理所要求的绘制数据和纹理数据,并用处理单元131-0至131-3进行数据的传送和用存储器模块132-0至132-3进行数据的传送(写入、读出)。
图13是局部模块13-0至13-3的局部高速缓冲存储器133-0至133-3的结构例子的框图。
如图13所示,局部高速缓冲存储器133包括只读高速缓冲存储器1331、读写高速缓冲存储器1332、再排序缓冲器1333和存储器控制器1334。
只读高速缓冲存储器1331用于纹理系统数据的存储,而读写高速缓冲存储器1332用于绘制系统数据的存储。
而且,图14是在纹理系统中所使用的只读高速缓冲存储器1331的结构例子的视图。
如图14所示,该只读高速缓冲存储器1331按每个局部模块处理4个纹理,于是,为其提供了与此对应的4个高速缓冲存储器CSH0至CSH3。
而且,因为每个像素要求4个数据串以便执行4-邻近内插或者其他滤波,所以高速缓冲存储器CSH0至CSH3配备有4个存储器库BK0至BK3。
再排序缓冲器1333是所谓的等待缓冲器。当因不存在局部高速缓冲存储器所要求的数据而发布局部高速缓冲存储器填充请求时,由全局模块12所发送的数据顺序有时不同,所以,再排序缓冲器1333观测此顺序并调整数据顺序,以致将它返回到处理单元131-0至131-3所要求的顺序。
而且,图15是存储器控制器1334的纹理系统的结构例子的框图。
如图15所示,此存储器控制器1334包括对应4个高速缓冲存储器CSH0至CSH3的高速缓存控制器13340至13343;仲裁器13344,用于仲裁由高速缓存控制器13340至13343所输出的局部高速缓冲存储器填充请求并将其输出到全局接口134{-0至3};存储器接口13345,用于接收通过全局接口134{-0至3}输入的全局高速缓冲存储器填充请求,并控制该数据的传送。
而且,高速缓存控制器13340至13343有冲突检查器CC10,用于接收相应于4像素PX0至PX3的数据4-邻近内插所要求的二维地址COuv00至COuv03、COuv10至COuv13、COuv20至COuv23、COuv30至COuv03,检查地址竞争,并分配它们;标签电路TAG10,用于检查通过冲突检查器CC10所分配的地址,并判定由只读高速缓冲存储器1331中的地址所指示的数据是否存在;以及队列寄存器QR10。
标签电路TAG10内部有4个对应有关随后提到的库交织的寻址的标签存储器BK10至BK13。将这些存储器存储在只读高速缓冲存储器1331中。
将由保存块数据的地址标记的冲突检查器CC10所分配的地址和上述地址标记作比较,在队列寄存器QR10设置表示它们是否相符的标志和上述地址,并且,当它们不相符时,将上述地址发送给仲裁器13344。
仲裁器13344接收从高速缓存控制器13340至13343发送的地址,并进行仲裁工作,根据能够同时通过全局接口(GAIF)134发送的请求数量选择地址,并将其作为局部高速缓冲存储器填充请求输出到全局接口(GAIF)134。
当对应于通过全局接口(GAIF)134发送的局部高速缓冲存储器填充请求而从全局高速缓冲存储器12发送数据时,在再排序缓冲器1333中设置数据。
高速缓存控制器13340至13343检查在队列寄存器QR10头部的标志,并且,当已经设置了表示相符的标志时,根据在队列寄存器QR10的头部的地址读出只读高速缓冲存储器1331的数据,并将它给处理单元131。另一方面,当还没有设置表示相符的标志时,在再排序缓冲器1333中设置时从再排序缓冲器1333中读出对应数据。基于队列寄存器QR10的地址用相关块数据更新只读高速缓冲存储器1331,并将块数据输出到处理单元131。
接着,将参照图16A至图16E和图17A至图17D解释根据本实施例的关于块交织的寻址(引用文献斯坦福大学“纹理高速缓冲存储器结构的预取”“Prefetching in a Texture Cache Architecture”)。
如图16A所示,在此情况中,用例如其中在图像的垂直方向绘制Vsuper和在水平方向绘制Usuper的4×4的矩阵表示两维图像数据。
接着,如图16B所示,用在其中在图像的垂直方向绘制Vblock和在水平方向绘制Ublock的8×8的高速缓冲存储器大小的超级块(superblock)矩阵表示一个块。
在此超级块中,如图16C所示,将编号0至3赋给4个邻近的块。
而且,如图16D所示,一个超级块由4×4块的矩阵组成,在该块中在图中的垂直方向绘制V偏置,而在水平方向绘制U偏置。
如图16E所示,在此块中,将编号0至3赋给4个邻近的块。
接着,通过将如图17A所示的有关V方向的Vsuper、Vblock和V偏置以及有关U方向的Usuper、Ublock和U偏置组合,实现分类以便获得如图17B所示的在每一个0域之后的Vsuper域、Usuper域、Bblock域、Ublock域、V偏置域和U偏置域。
而且,如图17C所示,通过将对应于0域至Ublock域的地址与基址域组合,产生如图17D所示的由标签域、块索引域和块偏置域组成的地址。
接着,将给出作为存储器模块的DRAM、局部高速缓冲存储器和全局高速缓冲存储器的容量的解释。
存储器容量的关系自然地是DRAM>全局高速缓冲存储器>局部高速缓冲存储器,但是它们的比率取决于应用。
高速缓冲存储器块大小对应在高速缓冲存储器填充时从比较低级的存储器读出的数据大小。
作为DRAM的一个特性,其性能在随机访问时下降,但对属于同一行的数据的连续访问快的事实应该被提及。
全局高速缓冲存储器更适宜执行上述的用于从DRAM中读取数据的连续访问。
因此,将高速缓冲存储器块的大小设置为大容量。
例如,全局高速缓冲存储器的高速缓冲存储器块的大小能够被做成一个DRAM宏行的块大小(8292比特)。
另一方面,在局部高速缓冲存储器的情况中,当增大块大小时,因为即使输入到高速缓冲存储器中未使用的数据的比率也增加,并且因为比较低的级别是全局高速缓冲存储器而不是DRAM,所以没有必要连续访问,于是将块大小设置为小容量。
按照局部高速缓冲存储器的块大小,与存储器交织的长方形区域的大小接近的值是合适的。在本实施例的情形中,设置4×4像素的数量即512比特的值。
接着,给出纹理压缩的说明。
为处理一个像素要求多个纹理数据,于是纹理读出带宽经常成为一个瓶颈,而经常使用压缩纹理的方法以降低此瓶颈。
存在各种压缩方法。在使用能够以诸如4×4像素的小长方形区域单元压缩/扩展方法的情形中,最好将所压缩的数据按现状放置在全局高速缓冲存储器中而将扩展后的数据放置在局部高速缓冲存储器中。
而且,如图7所示,按照全局模块12和局部模块13-0至13-3的相对排列,希望用全局模块12为中心,而在其周围的附近区域放置局部模块13-0至13-3。
具体地讲,将用于用通道块CBLK0传送数据的局部模块13-0排列在全局模块12的通道块CBLK0的附近,将用于用通道块CBLK1传送数据的局部模块13-1排列在全局模块12的通道块CBLK1的附近,将用于用通道块CBLK2传送数据的局部模块13-2排列在全局模块12的通道块CBLK2的附近,将用于用通道块CBLK3传送数据的局部模块13-3排列在全局模块12的通道块CBLK3的附近。
由于这一点,能够统一地保持在对应通道块和局部模块之间的距离,并能够有秩序地排列互连的区域,于是能够缩短平均的互连长度。
因此,可以减少互连的延迟和互连的费用,于是获得处理速度的提高成为可能。
接下来,说明上述结构的操作。
这里,给出纹理系统的处理说明。
首先,当接收到作为输入的三维坐标、法线矢量和纹理坐标的顶点数据时,SDC11处理顶点数据。
接下来,它计算诸如用于光栅扫描所要求的各种数据(Z、纹理坐标、颜色等)的倾角的DDA参数。
接着,SDC11通过全局模块12广播所计算的DDA参数给所有的局部模块13-0至13-3。
在此处理中,将所广播的参数通过使用不同于那些用于随后要提到的高速缓冲存储器寄存器的通道由全局模块12传送到局部模块13-0至13-3。
局部模块13-0至13-3以处理单元131-0至131-3,执行下面的处理。
即,当接收到所广播的参数时,处理单元131(-0至3)确定三角形是否属于它所负责的区域,例如,以4×4像素的长方形区域为单位交织的区域。当结果是所述三角形属于所述区域时,处理单元光栅扫描各种数据(Z、纹理坐标、颜色等)。
接下来,进行利用LOD(细节级)计算的MipMap级的计算和用于纹理访问的(u,v)地址计算。
接着,进行纹理读取。
在此情形中,局部模块13-0至13-3的处理单元131-0至131-3在纹理读取时检查局部模块13-0至13-3的项目。
当结果是存在项目时,读出所要求的纹理数据。
当所要求的纹理数据不在局部高速缓冲存储器133-0至133-3中时,处理单元131-0至131-3通过全局接口134-0至134-3将局部高速缓冲存储器填充请求发送给全局模块12。
在全局模块12中,当由通道块CBLK0至CBLK3的标签电路1204-0至1204-3中的任何一个确定所要求的块数据存在于全局高速缓冲存储器121-0至121-3中的任何一个时,从对应于全局高速缓冲存储器121-0至121-3的任何一个读出它,并通过发送请求的通道1201-0至1201-3返回它。
另一方面,当通道块CBLK0至CBLK3的标签电路1204-0至1204-3确定所要求的块数据不存在于全局高速缓冲存储器121-0至121-3中的任何一个时,将全局高速缓冲存储器填充请求从所计划的通道1202-0至1202-3中的任何一个发送到保存相关块的局部模块。
接收全局高速缓冲存储器填充请求的局部模块从存储器读出对应的块数据并通过全局接口将它发送给全局模块12。
接下来,全局模块12在所计划的全局高速缓冲存储器中填充块数据,并将所述数据从所计划的通道发送给发送请求的局部模块。
当全局模块12发送所请求的块数据时,对应局部模块更新局部高速缓冲存储器并从处理单元读出块数据。
接下来,局部模块13-0至13-3通过利用读出的纹理数据和在(u,v)地址的计算时所获得的十进制部分进行诸如4-邻近内插的滤波。
接下来,将滤波之后的纹理数据和光栅扫描之后的各种数据用于以像素为单位的运算。
将通过像素级的处理中的各种测试的像素数据写入存储器模块132-0至132-3,例如,在内置的DRAM存储器中的帧缓冲器和Z-缓冲器。
如上述说明,根据本实施例,SDC11和全局模块12发送数据,将多个(本实施例中为4)局部模块13-0至13-3并行连接到一个全局模块12,多个局部模块13-0至13-3共享处理数据,并并行处理,全局模块12有一个全局高速缓冲存储器,局部模块13-0至13-3有局部高速缓冲存储器,高速缓冲存储器的两级包括由4个局部模块13-0至13-3共享的全局高速缓冲存储器和由局部模块所局部拥有的局部高速缓冲存储器,所以,当多个处理设备通过共享处理数据进行并行处理时,能够降低重叠访问,并且具有大量的互连的横纵变得没有必要。结果,存在的优点是能够实现易于设计和能够降低互连成本及互连延迟的图像处理装置。
而且,根据本实施例,如图7所示,按照全局模块12和局部模块13-0至13-3的相对排列,将全局模块12用作中心,而将局部模块13-0至13-3排列在其周围的附近,于是能够统一保持在对应通道块和局部模块之间的距离,能够按顺序排列互连的区域,并且能够缩短平均的互连长度。因此,存在的优点是能够降低互连的延迟和互连成本,并能够实现处理速度的提高。
注意,在本实施例中,参照在内置的DRAM上存在纹理数据的情形给出描述,但是,作为另一个例子,在内置的DRAM中仅仅放置颜色数据和z-数据而在外部存储器中放置纹理数据同样也是可能的。在此情形中,如果在全局高速缓冲存储器中出现间隔,则将高速缓冲存储器填充请求发布给外部DRAM。
而且,指定以图7的结构作为并行处理的例子的情形做出上述说明,即,图像处理装置10包括以并行方式连接到单个全局模块12中的多个(本实施例为4)局部模块13-0至13-3,但是使用图7的结构作为单个簇CLST,和例如如图18所示以矩阵形式排列4个簇CLST0至CLST4,以及传送簇CLST0至CLST4的全局模块12-0至12-3之间的数据是可能的。
在图18的例子中,连接簇CLST0的全局模块12-0和簇CLST1的全局模块12-1,连接簇CLST1的全局模块12-1和簇CLST3的全局模块12-3,连接簇CLST3的全局模块12-3和簇CLST2的全局模块12-2,并连接簇CLST2的全局模块12-2和簇CLST0的全局模块12-0。
即,以环的形式连接多个簇CLST0至CLST4的全局模块12-0至12-3。
注意,在图18的结构的情形中,将参数从一个SDC广播到CLST0至CLST4的全局模块12-0至12-3是可能的。
通过利用这样一种结构,能够实现更高精确度的图像处理,并且在一个系统中双向地简单连接了簇之间的连接,因此,能够统一地保持簇之间的负荷,能够有序地排列互连的区域,并且能够缩短平均的互连长度。因此,能够降低互连延迟和互连成本,并且实现处理速度的提高是可能的。
工业适用性如上述说明,在本发明的图像处理装置和方法中,当多个处理设备共享处理数据以并行处理时,能够降低重叠访问,具有大量的互连的横纵变得不必要,并且结果是简化了设计,而且降低了互连成本和互连延迟。因此,例如,能够将本发明应用到例如其中多个操作设备共享处理数据以并行处理的图像处理系统中。
权利要求
1.一种其中多个模块共享处理数据以并行处理的图像处理装置,包括一个全局模块和多个局部模块,所述全局模块包括一个全局高速缓冲存储器,以并行方式将所述局部模块与所述全局高速缓冲存储器相连,在所述全局高速缓冲存储器中存储所述局部模块所要求的处理数据,并且,当从局部模块接收到局部高速缓冲存储器填充请求时输出在所述全局高速缓冲存储器中的数据至发布请求的局部模块,以响应所述请求,并且所述多个局部模块包括用于存储有关图像的数据的存储器模块,用于存储至少所述处理数据的局部高速缓冲存储器,以及处理单元,用于根据在所述局部高速缓冲存储器中所存储的处理数据和运行参数由对应的存储器交织事先确定的要求的处理,并且当在所述局部高速缓冲器中不存在处理所要求的处理数据时,输出用于请求所要求数据的局部高速缓冲存储器填充请求,并通过以响应所述请求而发送的数据来更新局部高速缓冲存储器。
2.如权利要求1所述的图像处理装置,其中,当从局部模块接收到局部高速缓冲存储器填充请求时,所述全局模块检查全局高速缓冲存储器的项目,并且当存在项目时,读出所要求的块数据并发送所读出的数据到发送所述请求的局部模块。
3.如权利要求1所述的图像处理装置,其中,当接收到全局高速缓冲存储器填充请求时,局部模块输出所请求的块数据到所述全局模块,并且,当从局部模块接收到局部高速缓冲存储器填充请求时,所述全局模块检查所述全局高速缓冲存储器的项目,并且当不存在项目时,将全局高速缓冲存储器填充请求发送给保存所请求的块数据的目标局部模块,用在此之后从目标局部模块所发出的块数据更新全局高速缓冲存储器,并且读出相关的块数据,并将读出的数据发送给发送局部高速缓冲存储器填充请求的局部模块。
4.如权利要求1所述的图像处理装置,其中,当接收到全局高速缓冲存储器填充请求时,局部模块输出所请求的块数据到所述全局模块,并且,当从局部模块接收到局部高速缓冲存储器填充请求时,所述全局模块检查所述全局高速缓冲存储器的项目,并且当存在项目时,读出所要求的块数据并发送所读出的数据到发送所述请求的局部模块,然而,当不存在项目时,将全局高速缓冲存储器填充请求发送给保存所请求的块数据的目标局部模块,用在此之后从目标局部模块所发出的块数据更新全局高速缓冲存储器,并且读出相关的块数据,并将读出数据发送给发送局部高速缓冲存储器填充请求的局部模块。
5.如权利要求1所述的图像处理装置,其中所述装置包括用于生成所述运行参数的控制器,并且所述全局模块将在所述控制器所生成的运行参数提供给所述多个局部模块。
6.如权利要求1所述的图像处理装置,其中所述全局模块包括对应局部模块而提供的多个通道块,并且所述多个通道块传送对应局部模块的局部高速缓冲存储器填充请求和数据。
7.如权利要求6所述的图像处理装置,其中,将所述多个局部模块安排在以所述全局模块为中心的全局模块的周围附近的区域。
8.如权利要求6所述的图像处理装置,其中,将所述多个局部模块安排在以所述全局模块为中心的全局模块的周围附近的区域和对应的通道块的附近区域。
9.如权利要求4所述的图像处理装置,其中,所述全局模块包括对应局部模块而提供的多个通道块,并且,所述多个通道块传送对应局部模块的局部高速缓冲存储器填充请求、全局高速缓冲存储器填充请求和的数据。
10.如权利要求9所述的图像处理装置,其中将所述多个局部模块安排在以所述全局模块为中心的全局模块的周围附近的区域。
11.如权利要求9所述的图像处理装置,其中,将所述多个局部模块安排在以所述全局模块为中心的全局模块的周围附近的区域和对应的通道块的附近区域。
12.如权利要求1所述的图像处理装置,其中,所述并行处理是像素级的并行处理。
13.如权利要求1所述的图像处理装置,其中,所述并行处理是有关纹理的处理。
14.一种其中多个模块共享处理数据以并行处理的的图像处理装置,包括多个簇,每个簇包括一个全局模块和多个局部模块,每一个簇的所述全局模块包括多个局部模块并行与之相连的全局高速缓冲存储器,并且在该全局高速缓冲存储器中存储有局部模块中所要求的处理数据,并且,当从局部模块接收到局部高速缓冲存储器的填充请求时,输出在所述全局高速缓冲存储器中的数据至发布所述请求的局部模块以响应请求,所述多个局部模块包括用于存储有关图像的数据的存储器模块,用于至少存储所述处理数据的局部高速缓冲存储器,和处理单元,用于根据在局部高速缓冲存储器所存储的处理数据和运行参数由对应存储器交织事先确定的要求的处理,以及,当在所述局部高速缓冲存储器中不存在处理所要求的处理数据时,输出用于请求所要求数据的局部高速缓冲存储器填充请求,并用为响应请求而发送的数据更新局部高速缓冲存储器,以及,所述簇的全局模块彼此传送数据。
15.如权利要求14所述的图像处理装置,其中,以矩阵的形式排列所述多个簇,并且簇的全局模块以环形方式相连接。
16.如权利要求14所述的图像处理装置,其中,当从局部模块接收局部高速缓冲存储器填充请求时,所述全局模块检查全局高速缓冲存储器的项目,并且当存在项目时,读出所请求的块数据,并将所读出数据发送到发送该请求的局部模块。
17.如权利要求14所述的图像处理装置,其中,当接收到全局高速缓冲存储器填充请求时,局部模块输出所请求的块数据到全局模块,并且,当从局部模块接收到局部高速缓冲存储器填充请求时,所述全局模块检查全局高速缓冲存储器的项目,当不存在项目时,将全局高速缓冲存储器填充请求发送给保存所请求的块数据的目标局部模块,用在此之后从所述目标局部模块所发出的块数据更新全局高速缓冲存储器,并且读出相关的块数据,并将读出数据发送给发送局部高速缓冲存储器填充请求的局部模块。
18.如权利要求14所述的图像处理装置,其中,当接收到全局高速缓冲存储器填充请求时,局部模块输出所请求的块数据到所述全局模块,并且,当从局部模块接收到局部高速缓冲存储器填充请求时,所述全局模块检查所述全局高速缓冲存储器的项目,并且,当存在项目时,读出所要求的块数据并发送所读出的数据到发送所述请求的局部模块,然而,当不存在项目时,将全局高速缓冲存储器填充请求发送给保存所请求的块数据的目标局部模块,通过在此之后从目标局部模块所发出的块数据更新全局高速缓冲存储器,并且读出相关的块数据,并将读出数据发送给发送局部高速缓冲存储器填充请求的局部模块。
19.如权利要求1所述的图像处理装置,其中所述装置包括用于产生运行参数的控制器,并且所述全局模块将所述控制器产生的运行参数提供给所述多个局部模块。
20.如权利要求14所述的图像处理装置,其中所述全局模块具有对应局部模块而提供的多个通道块,并且所述多个通道块传送对应局部模块的局部高速缓冲存储器填充请求和数据。
21.如权利要求20所述的图像处理装置,其中,在以所述全局模块为中心的全局模块周围的邻近区域安置所述多个局部模块。
22.如权利要求20所述的图像处理装置,其中,在以所述全局模块为中心的全局模块周围的邻近区域和在对应的通道块的邻近区安置所述多个局部模块。
23.如权利要求19所述的图像处理装置,其中所述全局模块包括相应于局部模块所而提供的多个通道块,并且所述多个通道块传送对应局部模块的局部高速缓冲存储器填充请求、全局高速缓冲存储器填充请求和数据。
24.如权利要求22所述的图像处理装置,其中将所述多个局部模块安排在以所述全局模块为中心的全局模块的周围附近的区域。
25.如权利要求22所述的图像处理装置,其中,将所述多个局部模块安排在以所述全局模块为中心的全局模块的周围附近的区域和对应的通道块的附近区域。
26.如权利要求14所述的图像处理装置,其中,所述并行处理是像素级的并行处理。
27.如权利要求14所述的图像处理装置,其中,所述并行处理是有关纹理的处理。
28.一种其中多个模块共享处理数据以并行处理的的图像处理方法,包括步骤以并行方式将多个局部模块连接到单个全局模块,使用由多个局部模块所共享的全局高速缓冲存储器和由局部模块在局部所保持的局部高速缓冲存储器作为高速缓冲存储器的两个等级,让全局模块将局部模块处所要求的处理数据存储在全局高速缓冲存储器中,从局部模块接收局部高速缓冲存储器填充请求,并且,在此时,输出在全局高速缓冲存储器中的数据到发布所述请求的局部模块以响应请求,并且让多个局部模块至少将所述处理数据存储在局部高速缓冲存储器中,执行根据在局部高速缓冲存储器中所存储的处理数据和运行参数由对应存储器交织事先确定的要求的处理,并且,当处理所要求的处理数据不在局部高速缓冲存储器时,输出请求所要求数据的局部高速缓冲存储器填充请求,并且用响应请求而发送的数据更新局部高速缓冲存储器。
29.如权利要求28所述的图像处理方法,其中,当所述全局模块从局部模块接收到局部高速缓冲存储器的填充请求时,它检查全局高速缓冲存储器的项目,并且当存在项目时,读出所请求的块数据,并将所读出的数据发送给发送所述请求的局部模块。
30.如权利要求28所述的图像处理方法,其中当局部模块接收到全局高速缓冲存储器填充请求时,它输出所请求的块数据给所述全局模块,并且当所述全局模块从局部模块接收到局部高速缓冲存储器填充请求时,它检查全局高速缓冲存储器的项目,并且,当不存在项目时,发送全局高速缓冲存储器填充请求给保存有所请求的块数据的目标局部模块,用在此之后从目标局部模块发送的块数据更新全局高速缓冲存储器,读出块数据,并将所读出数据发送给发送局部高速缓冲存储器填充请求的局部模块。
31.如权利要求28所述的图像处理方法,其中当局部模块接收到全局高速缓冲存储器填充请求时,它输出所请求的全局高速缓冲存储器填充请求给所述全局模块,并且当所述全局模块从局部模块接收到局部高速缓冲存储器填充请求时,它检查全局高速缓冲存储器的项目,并且当存在项目时,读出所要求的块数据,并将读出数据发送给发送请求的局部模块,而当不存在项目时,发送全局高速缓冲存储器填充请求给保存请求的块数据的目标局部模块,以在此之后从目标局部模块所发送的块数据来更新全局高速缓冲存储器,读出所述块数据,并将所读出数据发送给发送局部高速缓冲存储器填充请求的局部模块。
全文摘要
一种能够降低重叠访问、不需要横纵、易于设计,且能够降低线路成本和线路延迟的图像处理装置和方法。全局模块(12)包括全局高速缓冲存储器(121)。根据来自局部模块的局部高速缓冲存储器填充请求,全局高速缓冲存储器相应于请求将在全局高速缓冲存储器中的数据输出到发送该请求的局部模块。多个局部模块13-0至13-3有存储器模块、局部高速缓冲存储器、和用于根据运行参数和局部高速缓冲存储器的处理数据执行处理的处理单元。当处理所要求的处理数据不在局部高速缓冲存储器时,输出用于请求所需数据的局部高速缓冲存储器填充请求,并用响应所述请求而发送的数据更新局部高速缓冲存储器。
文档编号G06T15/20GK1491401SQ02804887
公开日2004年4月21日 申请日期2002年12月11日 优先权日2001年12月12日
发明者山口裕司 申请人:索尼公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1