专利名称::具有可配置高速缓存器的图形系统的制作方法
技术领域:
:本发明大体来说涉及电路,且更具体来说涉及图形系统。背景技水图形系统广泛用于渲染2维(2-D)及3维(3-D)图像以用于各种应用,例如视频游戏、制图、计算机辅助设计(CAD)、仿真及显像工具、成像等。3-D图像可仿造有表面,且每一表面可近似为多边形(通常为三角形)。用于表示3-D图像的三角形的数目取决于表面的复杂度以及所需的图像解析度且可以相当大,例如数百万个。每一三角形均由三个顶点界定,且每一顶点均与诸如空间坐标、色彩值及纹理坐标等各种属性相关联。每一属性可具有多达四个分量。例如,空间坐标通常由水平与垂直坐标(;c与y)及深度(z)给出,色彩值通常由红、绿及蓝(r、g、W给出,且纹理坐标通常由水平及垂直坐标(M与V)给出。图形系统中的图形处理器可执行渲染2-D或3-D图像的各种图形操作。所述图像由许多三角形组成,且每一三角形均由若干图片元素(像素)组成。图形处理器通过确定每一三角形内的每一像素的分量值来渲染所述三角形。所述图形操作可包含光栅化、模板及深度测试、纹理映射、着色等。由于所述图形处理器对像素数据(其可以是任何与像素相关联的数据)执行各种图形操作,所以迅速存取像素数据的能力可对性能产生较大影响。
发明内容本文中描述具有可配置高速缓存器且具有良好性能的图形系统。一种图形系统包含图形处理器及高速缓冲存储器系统。所述图形处理器包含执行各种图形操作以渲染图形图像的处理单元。所述高速缓冲存储器系统可包含完全可配置高速缓存器、部分可配置高速缓存器或可配置高速缓存器与专用高速缓存器的组合。如果一种高速缓存器可指派给可指派有高速缓存器的处理单元中的任何一者,则所述高速缓存器是完全可配置的。如果一种高速缓存器可指派给所述处理单元的一个子组中的任何处理单元,则所述高速缓存器是部分可配置的。如果一种高速缓存器指派给专用处理单元,则所述高速缓存器是专用的。所述高速缓存器是可存储用于所述处理单元的数据(例如,像素数据及/或指令)的快速存储器。所述高速缓冲存储器系统可进一步包含控制单元、纵横杆及仲裁器。所述控制单元可确定处理单元对存储器的利用率并基于存储器利用率向处理单元指派可配置高速缓存器。所述可配置高速缓存器可经指派以实现对这些高速缓存器的良好利用率且避免图形处理器内任何点处的存储器存取瓶颈。所述纵横杆将处理单元耦合到其指派的高速缓存器。所述仲裁器促进高速缓存器与主存储器之间的数据交换。下文将更详细地描述本发明的各方面及实施例。结合图式阅读下文所述的详细说明,人们将更易明了本发明的特征及性质,在所有图示中相同的参考字符对应地进行标识。图1显示具有专用高速缓存器的图形系统。图2显示具有完全可配置高速缓存器的图形系统。图3显示图2中的图形系统中的纵横杆。图4显示处理单元的高速缓存器及状态机。图5显示具有可配置高速缓存器及专用高速缓存器的图形系统。图6显示操作具有可配置高速缓存器的图形系统的过程。图7显示无线通信系统中的无线装置。具体实施例方式本文所用词"例示性"是指"充当实例、示例或例证"。在本文中,称作为"例示性"的任何实施例或设计均未必应视为比其它实施例或设计更优选或有利。图1显示具有专用高速缓存器的图形系统100的方块图。图形系统ioo包含图形处理器110及高速缓冲存储器系统130。图形处理器110包含布置成管线且用于渲染2-D及3-D图像的各种处理单元。命令引擎120a接收指定待执行的图形操作的传入命令并将所述命令解码。三角形位置及z设置引擎120b计算用于随后的光栅化过程的必要参数。例如,引擎120b可计算每一三角形的三个边的线性方程式的系数、深度(z)斜率的系数等。光栅化引擎120c将每一三角形或线分解成若干像素并为每一像素产生一个屏幕坐标。模板及深度测试引擎120d对每一像素(如果已启用)执行模板测试以确定应显示还是丢弃所述像素。模板缓冲器(图1中未显示)存储正被渲染的图像中的每一像素位置的当前模板值。引擎120d将每一像素的所存储模板值与参考值进行比较并基于所述比较的结果保留或丢弃所述像素。引擎120d还对每一像素(如果可适用)执行深度测试(还称作z测试)以确定应显示还是丢弃所述像素。z缓冲器(图1中未显示)存储正被渲染的图像中的每一像素位置的当前z值。引擎120d将每一像素的z值(当前z值)与z缓冲器中的对应z值(所存储的z值)进行比较、显示所述像素并更新z缓冲器,且可能地在当前z值比所存储的z值更靠近/接近的情况下更新模板缓冲器,且在当前Z值比所存储的Z值更靠后的情况下丢弃所述像素。属性设置引擎120e计算用于随后的像素属性内插的必要参数。例如,引擎120e可计算用于属性内插的线性方程式的系数。像素内插引擎120f基于像素的屏幕坐标并通过使用来自引擎120e的信息来计算每一三角形内的每一像素的属性分量值。纹理映射引擎120g执行纹理映射(如果已启用)以将纹理应用到每一三角形。纹理图像可存储在纹理缓冲器(图1中未显示)中。每一三角形的三个顶点可与纹理图像中的三个(W,v)坐标相关联,且因而所述三角形的每一像素可与纹理图像中的具体纹理坐标相关联。通过在每一像素的纹理坐标所指示的位置处用纹理图像的色彩修改所述像素的色彩来实现纹理化。每一像素均与诸如色彩、深度、纹理等信息相关联。片断是指像素及其相关联的信息。片断着色器120h将可由指令序列组成的软件程序应用到每一片断。片断着色器120h还可将纹理请求发送到纹理映射引擎120g。片断引擎120i对每一片断执行诸如(x测试、雾化融合、a融合、逻辑操作及抖动操作的功能并将结果提供给色彩缓冲器。图1中显示的图形操作在所属
技术领域:
中是已知的。图形处理器可实施诸如开放式图形库(OpenGL)、Direct3D等软件接口。OpenGL在2004年10月22日出版的可公开获得的名称为"OpenGL⑧图形系统规范"的版本2.0的文件中有所描述。一般来说,图形处理器可包含用于任何组的图形操作的任何数目的处理单元。每一处理单元均可为以专用硬件、处理器或这两者的组合实施的引擎。例如,图1中显示的引擎可以专用硬件来实施,而片断着色器可以可编程中央处理单元(CPU)来实施。所述处理单元可根据所期望的最优化以各种顺序布置。例如,为节省能量,可期望在管线较早处执行模板及深度测试以便较早丢弃不可见的像素,如图l所示。所述处理单元还可以其它顺序来布置,例如,模板及深度测试引擎120d可位于纹理映射引擎120g之后。高速缓冲存储器系统130为图形处理器110内的某些处理单元120包含专用高速缓存器150a到150f。在图1所显示的设计中,模板高速缓存器150a存储图像中正被渲染的区域中的像素的模板值,且深度高速缓存器150b存储相同或不同区域中的像素的深度值。模板及深度测试引擎120d存取高速缓存器150a中所存储的模板值并使用这些模板值执行模板测试。引擎120d还存取高速缓存器150b中所存储的z值并使用这些z值执行深度测试。纹理高速缓存器150c存储由纹理映射引擎120g用于将纹理映射到三角形的纹理映射表。着色器指令高速缓存器150d存储用于片断着色器120h的指令,且着色器数据高速缓存器150e存储用于片断着色器120h的数据。色彩高速缓存器150f存储像素的色彩(例如,红、绿及蓝)值。仲裁器160耦合到高速缓存器150a到150f及主存储器170且促进此两者之间的数据交换。每当处理单元120存取相关联的高速缓存器150以获得数据且所请求的数据没有存储在所述高速缓存器中,均宣告高速缓存未命中。所述高速缓存未命中导致在需要时将所述高速缓存器的当前内容存储回到主存储器170,且从主存储器170提取数据的新区域并将其载入到高速缓存器中。然后可从高速缓存器获得所请求的数据并将其提供给处理单元。仲裁器160允许以一次一个高速缓存器的方式与主存储器170交换数据。图1中的高速缓冲存储器系统130可改善图形系统100的存储器存取性能。高速缓存器150是靠近图形处理器IIO定位的小型快速存储器。因为处理单元120可更快地检索数据并存储结果,所以快速高速缓冲存储器可改善处理速度。主存储器170是离图形处理器110更远定位(例如,芯片外)的大型的较慢的存储器。主存储器170存储可载入到高速缓存器150中的数据及指令。高速缓存器150减少从主存储器170提取的次数且大体地改善图形系统100的性能。图1显示专用高速缓存器的使用。每一高速缓存器150均存储用于具体处理单元120的数据或指令。每一高速缓存器150的利用率均取决于正执行的图形应用。例如,3-D图形应用可仅执行z通过,从而可仅启动深度及/或模板测试。在此应用中,仅可利用模板高速缓存器150a及/或深度高速缓存器150b,且剩余的高速缓存器150c到150f可处于闲置状态。举另一实例来说,简单的着色器应用可不利用着色器指令高速缓存器150d及着色器数据高速缓存器150e,且这些高速缓存器可处于闲置状态。举又一实例来说,图形应用可停用纹理映射,在此情况下可不需要纹理高速缓存器150c。由这些实例可以看出,专用高速缓存器的使用可导致某些图形应用对所述高速缓存器的较差利用率。专用高速缓存器的使用还可导致在不同的图形应用的不同地方发生存储器存取瓶颈。所述瓶颈限定了图形系统IOO的性能。图2显示具有完全可配置高速缓存器的图形系统200的实施例。图形系统200包含图形处理器210及高速缓冲存储器系统230。图形处理器210包含可如上文分别针对图1中的处理单元120a到120i所描述来操作的处理单元220a到220i。如图2中所示,仅部分处理单元可利用高速缓存器来存储数据及/或指令。特定来说,高速缓存器可用于存储模板及深度测试引擎220d的模板及/或深度值、纹理映射引擎220g的纹理数据、片断着色器220h的指令及/或数据及片断引擎220i的色彩值。高速缓冲存储器系统230包含N个完全可配置高速缓存器250a到250n,所述高速缓存器可经指派以存储图形处理器210内的处理单元220的数据及/或指令,其中通常N>1。所述高速缓存器完全可配置是指每一高速缓存器均可被指派给可指派有高速缓存器的任何处理单元。在一实施例中,每一高速缓存器250均可仅被指派给一个处理单元220,而既定的处理单元220可指派有零、一个或多个高速缓存器250。控制单元232基于模板及深度测试引擎220d、纹理映射引擎220g、片断着色器220h及/或片断引擎220i对存储器的利用率将可用高速缓存器250a到250n指派给这些处理单元。纵横杆240将处理单元220d、220g、220h及220i耦合到其指派的高速缓存器250a到250n。纵横杆240还可称作纵横开关或某一其它术语。仲裁器260将高速缓存器250a到250n耦合到主存储器270并促进所述高速缓存器与所述主存储器之间的数据交换。仲裁器260还可称作选择器、存储器接口或某一其它术语。大体来说,高速缓冲存储器系统可包含任何数目的可以是任何大小的高速缓存器。可基于存储器存取性能及电路面积之间的折衷来选择高速缓存器的数目及其大小。较大的高速缓存器大小导致较高的高速缓存命中率及所请求的数据存储在所述高速缓存器中的较大可能性。然而,较大的高速缓存器大小还要求更多电路面积,这可增大成本。在一个具体实施例中,高速缓冲存储器系统230包含12个高速缓存器250,且每一高速缓存器为4千字节。在其它实施例中,较少的或额外的高速缓存器以及其它大小的高速缓存器可用于所述高速缓冲存储器系统。图3显示图2中的纵横杆240的实施例的方块图。在此实施例中,纵横杆240包含K个接口单元310a到310k,其中大体来说K可以是任何整数值。所述接口单元也可称作主单元或某一其它术语。在图2所显示的实施例中,K等于6,且所述6个接口单元用于模板、深度、纹理、着色器指令、着色器数据及色彩。既定的处理单元220可与一个或多个接口单元310相互作用,这取决于所述处理单元的数据需求。纵横杆240进一步包含分别用于K个接口单元310a到310k的K个多路复用器(Mux)340a到340k,及分别用于N个高速缓存器250a到250n的N个多路复用器350a到350n。每一接口单元310均经由相应组的线302耦合到相关联的处理单元220。每一接口单元310均包含状态机320及输入/输出(I/O)单元330。在每一接口单元310中,I/O单元330经由线302从相关联的处理单元220接收地址及/或输出数据并将所述地址/数据提供到N个多路复用器350a到350n中的每一者的一个输入。I/O单元330还从相关联的多路复用器340接收输入数据或指令并经由线302将数据/指令提供给相关联的处理单元220。每一多路复用器350从所有K个I/O单元330a到330k的K个输入处接收地址/数据。每一多路复用器350还从控制单元232接收相应的控制Cn并将所述控制Cn确定的来自一个输入的地址/数据提供给相关联的高速缓存器250。因此,每一多路复用器350均将一个接口单元310耦合到相关联的高速缓存器250。每一多路复用器340均从所有N个高速缓存器250a到250n的N个输入处接收输入数据或指令。每一多路复用器340还从控制单元232接收相应的控制Pk并将所述控制Pk确定的来自一个输入的数据/指令提供给相关联的I/0单元330。因此,每一多路复用器340均将一个高速缓存器250耦合到相关联的接口单元310。每一高速缓存器250均从相关联的多路复用器350接收地址并确定所述地址处的所请求数据/指令是否存储在所述高速缓存器中。每一高速缓存器250均提供命中/未命中(h/m)指示符,其指示在所请求的数据/指令存储在所述高速缓存器中的情况下的高速缓存命中(例如,逻辑高)及在所请求的数据/指令没有存储在所述高速缓存器中的情况下的高速缓存器未命中(例如,逻辑低)。每一高速缓存器250均在存在高速缓存命中的情况下提供所请求的数据/指令。每一高速缓存器250均等待从主存10储器270中的提取且然后在存在高速缓存命中的情况下提供所请求的数据/指令。在每一接口单元310中,状态机320从所有N个高速缓存器250a到250n及控制Mk接收命中/未命中指示符,所述控制Mk指示哪些高速缓存器(如果有)已被指派给所述接口单元。状态机320基于所指派的高速缓存器的命中/未命中指示符来确定所请求的数据/指令是否存储在所指派的高速缓存器中的任一者中。如果所请求的数据/指令没有存储在所指派的高速缓存器中的任一者中,则状态机320产生提取命令。控制单元232分别针对状态机320a到320k产生控制Ml到MK、分别针对多路复用器340a到340k产生控制Pl到PK且分别针对多路复用器350a到350n产生控制C1到CN。这些控制确定哪些高速缓存器(如果有)被指派给每一接口单元310。图3显示完全可配置高速缓存器的纵横杆240的实施例。大体来说,可通过使用具有足够数目输入的多路复用器、设计可估计任何可能的高速缓存器指派的状态机并产生对所述状态机及所述多路复用器的适当控制来实现高速缓存器的完全可配置性。还可以可将处理单元映射到可用高速缓存器的其它设计来实施纵横杆240。图4显示图3中的接口单元310k的高速缓存器250n及状态机320的实施例的方块图。高速缓存器250n包含高速缓存控制器410、标签RAM420及数据RAM430。高速缓存控制器410为高速缓存器250n的每一存取执行地址检验且确保正在存取正确的数据/指令。标签RAM420记录当前哪些数据/指令存储在高速缓存器250n中。数据RAM430存储所述数据/指令。数据RAM430的每一线可存储一个或一个以上像素的数据或一个或一个以上指令,这取决于高速缓存器250n经配置以存储数据还是指令。高速缓存器250n可以直接映射高速缓存器结构或M向组关联高速缓存器结构来实施。在所述直接映射高速缓存器结构中,下一层级处的存储器(例如,主存储器270)的每一线可仅映射到数据RAM430的一个线。数据RAM430的每一线(或每一高速缓存线)均与标签RAM420中识别所述高速缓存线中所存储的主存储器270的具体线的标签相关联。举例来说,如果主存储器270具有256k个线且数据RAM430具有4k个线,则每一高速缓存线均与具体的12位地址相关联,且主存储器270的32个线被映射到每一高速缓存线。然后可由每一高速缓存线的12位地址及指示主存储器270的32个线中的哪一者存储在所述高速缓存线中的5位标签来识别主存储器270中存储在每一高速缓存线中的具体线。在所述M向组关联高速缓存器结构中,主存储器270中的每一线可被映射到数据RAM430的M个可能的线中的任一者。大体来说,标签结构可取决于主存储器大小、高速缓存器大小、高速缓存器结构、每一高速缓存线的大小及/或其它因素。标签RAM420存储数据RAM430的每一线的标签且每当数据RAM430中的任何线被取代均被更新。每一高速缓存线的标签均指示主存储器270中存储在所述高速缓存线中的线。在控制单元410内,地址分析器412从多路复用器350n接收由处理单元220做出的存储器存取的地址、分析所述地址以获得目标标签及高速缓存线地址、将所述高速缓存线地址提供给标签RAM420并将所述目标标签提供给比较逻辑414。标签RAM420从分析器412提供高速缓存线地址的所存储标签。比较逻辑414将所存储标签与目标标签进行比较,在所述标签相等的情况下指示高速缓存命中,且在所述标签不同的情况下指示高速缓存未命中。如果高速缓存器250n实施M向组关联高速缓存器结构,则标签RAM420可被多次存取。存储器存取单元416在存在高速缓存命中的情况下处理数据RAM430的存取。如果所述存储器存取为读取,则数据RAM430经存取以读取存储在高速缓存线地址处的数据/指令。如果所述存储器存取为写入,则在高速缓存线地址处写入数据RAM430,并更新高速缓存"脏位"以指示所述高速缓存线已被写入,因而所述线将在被取代之前被写入回到主存储器270。接口单元310k的状态机320确定所请求的数据/指令是否存储在指派给所述接口单元的任何高速缓存器中。在状态机320内,映射器450从控制单元232接收控制MK并产生N个高速缓存器250a到250n的N个启用信号。如果相关联的高速缓存器250被指派给接口单元310k,则每一启用信号均设置到逻辑高。N个"与"门452a到452n从N个高速缓存器250a到250n分别接收N个启用信号及N个命中/未命中指示符。每一"与"门452均(1)在其启用信号在逻辑低处的情况下提供逻辑低,以指示相关联的高速缓存器250未被指派到接口单元310k,或(2)在所述启用信号在逻辑高处的情况下从相关联的高速缓存器250提供命中/未命中指示符,以指示所述高速缓存器被指派给接口单元310k。"或"门454接收"与"门452a到452n的输出并产生接口单元310k的命中指示符。高速缓存器填充单元460在存在高速缓存未命中的情况下引导指派给接口单元310k的高速缓存器中的一者的高速缓存器填充。在一实施例中,选定最近最少使用(LRU)的(即,最长时间未使用的)经指派高速缓存器来用于高速缓存器填充。高速缓存器填充单元460可用来自主存储器270的新数据/指令来填充选定的高速缓存器的全部或一部分。当目标高速缓存线从主存储器270填充且选定的高速缓存器中的标签RAM经更新以反映载入到数据RAM中的新数据/指令时,接口单元310k可被停止。具有完全可配置高速缓存器的图形系统在向处理单元指派高速缓存器方面提供最大的灵活性。既定的处理单元可指派有零、一个、多个或甚至所有可用高速缓存器,这取决于处理单元的数据需求。可以实现对高速缓存器的良好利用率且无论正执行何种图形应用均可避免图形处理器中任何一个地方处的存储器存取瓶颈的方式将可用高速缓存器指派给处理单元。可如下文所描述将所述可用高速缓存器巧妙地指派给处理单元。在许多情况下,可以部分可配置高速缓存器来实现良好性能。所述高速缓存器部分可配置是指每一高速缓存器均可被指派给处理单元的一个子组中的一者。已对各种图形应用作出研究以确定将高速缓存器用于不同的图形应用的好处。这些研究指示,在许多图形应用中,高速缓存器对于增强模板及深度测试及纹理映射的性能是非常有用的且对于色彩及着色器仅略有好处。因而,高速缓冲存储器系统可设计有许多可配置以用于模板及深度测试及纹理映射的可用高速缓存器及仅极少量可配置以用于色彩及着色器的高速缓存器。采用部分可配置高速缓存器可简化指派可配置高速缓存器及将处理单元耦合到其指派的高速缓存器的纵横杆的设计。图5显示具有可配置高速缓存器及专用高速缓存器的图形系统500的实施例。图形系统500包含图形处理器510及高速缓冲存储器系统530。图形处理器510可包含如上文针对图1中的处理单元120a到120i描述而操作的处理单元。特定来说,图形处理器510可包含可利用高速缓存器中所存储的数据及/或指令的模板及深度测试引擎、纹理映射引擎、片断着色器及片断引擎。在图5所显示的实施例中,高速缓冲存储器系统530包含R个部分可配置高速缓存器550a到550r及一个专用高速缓存器550s,其中大体来说R〉1。表1显示高速缓存器550a到550s中的每一者的可能指派,其中每一"X"均指示有效的高速缓存器指派。如表1所示,P个部分可配置高速缓存器550a到550p中的每一者均可经指派以用于模板测试、深度测试或纹理映射。部分可配置高速缓存器550q可经设计以用于着色器指令、模板测试、深度测试或纹理映射。部分可配置高速缓存器550r可经指派以用于着色器数据、模板测试、深度测试或纹理映射。专用高速缓存器550s用于存储片断引擎的色彩值。在一实施例中,P=8,且假定高速缓存器550q及550r不用于着色器指令及数据,则多达10个高速缓存器可经指派以用于模板测试、深度测试及/或纹理映射。较少的或额外的高速缓存器也可用于高速缓冲存储器系统530。表l<table>tableseeoriginaldocumentpage13</column></row><table>控制单元532基于这些处理单元对存储器的利用率将可配置高速缓存器550a到550r指派给模板及深度测试引擎、纹理映射引擎及/或片断着色器。纵橫杆540将处理单元耦合到其指派的高速缓存器550a到550r。仲裁器560将高速缓存器550a到550s耦合到主存储器570。图5还显示纵横杆540的实施例。在此实施例中,纵横杆540包含分别用于模板测试、深度测试、纹理映射、着色器指令及着色器数据的接口单元580a到580e。接口单元580a将模板及深度测试引擎耦合到高速缓存器550a到550r中经指派以用于模板测试的高速缓存器(如果有)。接口单元580b将模板及深度测试引擎耦合到高速缓存器550a到550r中经指派以用于深度测试的高速缓存器(如果有)。接口单元580c将纹理映射引擎耦合到高速缓存器550a到550r中的经指派高速缓存器(如果有)。接口单元580d将片断着色器耦合到高速缓存器550q,如果所述高速缓存器已被指派。接口单元580e将片断着色器耦合到高速缓存器550r,如果所述高速缓存器已被指派。每一接口单元580均可包含状态机及I/O单元,例如如图3中所示。为简明起见,图5中并未显示用于接口单元的多路复用器及用于高速缓存器的多路复用器。图5显示具有可配置高速缓存器及专用高速缓存器的高速缓冲存储器系统的特定实施例。大体来说,高速缓冲存储器系统可包含任何数目的可配置高速缓存器及任何数目的专用高速缓存器。所述可配置高速缓存器可用于任何组图形操作,且所述专用高速缓存器也可用于任何组图形操作。使用可配置高速缓存器及专用高速缓存器两者可简化控制单元及纵横杆的设计。在图2及图5中显示的实施例中,控制单元可以各种方式将可配置高速缓存器指派给处理单元。在一个实施例中,控制单元基于先前图像/帧的存储器利用率为待渲染的每一图形图像或帧指派高速缓存器。所述控制单元可通过对每一处理单元进行的存储器存取的数目、每一高速缓存器的高速缓存命中数目、每一高速缓存器的高速缓存未命中数目等进行计数来确定存储器利用率。然后,控制单元可向具有高存储器利用率的处理单元指派较多高速缓存器且向具有低存储器利用率的处理单元指派较少的高速缓存器或不指派高速缓存器。在另一实施例中,控制单元基于图形图像/帧的一致性将可配置高速缓存器指派给处理单元。一致性是指连续的2D/3D帧中的变化量。当帧更有可能渲染相似内容时指派较少的高速缓存器以获得较高的一致性,且可指派较多的高速缓存器以获得较小的一致性。在又一实施例中,控制单元基于正在执行的图形应用的特性将可配置高速缓存器指派给处理单元。例如,如果图形系统正在执行2-D图形应用,则可不需要深度测试,且可不指派高速缓存器用于深度测试。从另一方面来看,如果3-D图形应用仅使用z通过,则所有可配置高速缓存器均可指派给深度测试。举另一实例来说,如果正在执行简单的着色器程序且所有着色器指令均可存储在片断着色器内,则不会将高速缓存器指派给片断着色器。在又一实施例中,控制单元动态地指派可配置高速缓存器。例如,当数据请求由处理单元发送时,控制单元可向处理单元指派一个或一个以上高速缓存器。控制单元可基于请求的数目、高速缓存器命中/未命中统计及/或其它可动态地确定的因素来调整指派给处理单元的高速缓存器的数目。可针对从一个处理单元切换或重新指派到另一处理单元的高速缓存器动态地执行冲刷及使无效操作。在又一实施例中,控制单元使用静态与动态指派的组合来指派高速缓存器。例如,控制单元可(例如)基于处理单元对存储器的利用率的当前统计在开始渲染帧、图像或批次时将一个或一个以上高速缓存器预先指派给既定的处理单元。控制单元可在渲染所述帧、图像或批次期间(例如)周期性地调整向此处理单元的高速缓存器指派。可基于先前的渲染周期内获得的统计来确定每一渲染周期的新高速缓存器指派。控制单元还可基于其它标准来指派可配置高速缓存器。当首先执行图形应用时及/或在其它时间,每当检测到存储器利用率的变化,控制单元均可在每一图像/帧中指派高速缓存器。为简明起见,图1到图5显示包含一组高速缓存器的高速缓冲存储器系统。可以存储器块来实施高速缓存器。还可以具有多个层级(例如,层级1、层级2、层级3等)的分级结构来实施高速缓存器或高速缓冲存储器系统。较低层级(例如,层级1)的高速缓存器往往比较高层级(例如,层级2)的高速缓存器更快而更小。每当发生高速缓存未命中时,每一层级的高速缓存器均可由下一更高层级的高速缓存器填充。层级的数目、每一层级中高速缓存器的数目及不同层级的高速缓存器的大小可以是固定的或可配置的。例如,层级的数目、每一层级中高速缓存器的数目及/或高速缓存器大小可经选定以实现良好性能且可基于图形应用的特性来配置。图6显示用于操作具有可配置高速缓存器的图形系统的过程600的实施例。确定经配置以执行渲染图形图像的图形操作的多个处理单元对存储器的利用率(方块612)。可通过监视由处理单元进行的存储器存取、通过确定正在执行的图形应用的特性及/或以其它方式来确定存储器利用率。基于存储器利用率将多个高速缓存器指派给多个处理单元中的至少一个处理单元(方块614)。每一处理单元可指派有零、一个、多个或所有高速缓存器,这取决于(1)由所述处理单元以及其它处理单元对存储器的利用率,及(2)可供用于向所述处理单元指派的高速缓存器。可基于各种统计来确定存储器利用率,例如,处理单元做出的数据请求、高速缓存命中/未命中统计等。每当检测到存储器利用率的变化等时,均可周期性地(例如,每图形图像/帧地)执行高速缓存器指派。还可基于检测出的存储器利用率的变化在渲染图像/帧期间重新指派高速缓存器。所述至少一个处理单元中的每一者经由(例如)相应的接口单元耦合到指派到所述处理单元的相应一组高速缓存器(方块616)。本文中描述的图形系统及可配置高速缓存器可用于无线通信、计算、联网、个人电子装置等。下文描述具有用于无线通信的可配置高速缓存器的图形系统的例示性使用。图7显示无线通信系统中的无线装置700的实施例的方块图。无线装置700可以是蜂窝式电话、终端、手持机、个人数字助理(PDA)或某一其它装置。所述无线通信系统可以是码分多址(CDMA)系统、全球移动通信(GSM)系统或某一其它系统。无线装置700能够经由接收路径及传输路径提供双向通信。在所述接收路径上,天线712接收由基站传输的信号并将其提供给接收器(RCVR)714。接收器714调节并数字化所接收的信号,并将样本提供到数字区段720以进行进一步处理。在所述传输路径上,传输器(TMTR)716接收将从数字区段720传输的数据、处理并调节所述数据,并产生经调制信号,所述信号经由天线712传输到基站。数字区段720包含各种处理及接口单元,例如,调制解调器处理器722、视频处理器724、应用处理器726、显示处理器728、控制器/处理器730、图形处理器740及外部总线接口(EBI)760。调制解调器处理器722执行用于数据传输及接收的处理(例如,编码、调制、解调及解码)。视频处理器724对视频内容(例如,静止图像、移动视频及移动文本)执行处理以用于诸如摄录机、视频回放及视频会议等视频应用。应用处理器726执行对诸如多路呼叫、网页浏览、媒体播放器及用户接口等各种应用的处理。显示处理器728执行处理以促进视频、图形及文本在显示单元780上的显示。控制器/处理器730可引导数字区段720内各种处理及接口单元的操作。图形处理器740执行对图形应用的处理且可如上文所描述来实施。高速缓冲存储器系统750存储用于图形处理器740的数据及/或指令且可以可配置高速缓存器及(可能地)专用高速缓存器来实施。高速缓冲存储器750可进一步包含将可配置高速缓存器耦合到图形处理器740内的处理单元的纵横杆及经由总线732及EBI760将高速缓存器耦合到主存储器770的仲裁器。EBI760可促进数字区段720(例如,高速缓存器)及主存储器770之间的数据转移。数字区段720可以一个或一个以上数字信号处理器(DSP)、微处理器、精简指令集计算机(RISC)等来实施。数字区段720还可制造在一个或一个以上专用集成电路(ASIC)或某一其它类型的集成电路(IC)上。本文中描述的图形系统及可配置高速缓存器可实施于各种硬件单元中。例如,所述图形系统及可配置高速缓存器可实施于ASIC、数字信号处理装置(DSPD)、可编程逻辑装置(PLD)、现场可编程门阵列(FPGA)、处理器、控制器、微控制器、微处理器及其它电子单元中。图形系统的某些部分可实施于固件及/或软件中。例如,控制单元可以执行本文中描述的功能的固件及/或软件模块(例如,程序、功能等)来实施。固件及/或软件代码可存储在存储器(例如,图7所示的存储器770)中并由处理器(例如处理器730)执行。所述存储器既可实施于处理器内部,也可实施于处理器外部。提供上文对所揭示实施例的说明以使所属
技术领域:
的技术人员能够制作或使用本发明。所属
技术领域:
的技术人员将易于得知这些实施例的各种修改方式,且本文所界定的一般原理也可应用于其它实施例,此并不背离本发明的精神或范围。因此,本发明并不打算限定为本文所示实施例,而应符合与本文所揭示原理及新颖特征相一致的最大范围。1权利要求1、一种设备,其包括多个处理单元,其经配置以执行用以渲染图形图像的图形操作;多个高速缓存器,其经配置以存储用于所述多个处理单元中至少一个处理单元的数据;及纵横杆,其经配置以将所述多个高速缓存器耦合到所述至少一个处理单元。2、如权利要求l所述的设备,其中所述多个高速缓存器中的每一者可指派给所述多个处理单元中的任一者。3、如权利要求l所述的设备,其中所述多个高速缓存器中的每一者可指派给所述多个处理单元的一相应子组中的任一者。4、如权利要求1所述的设备,其中所述多个高速缓存器包括指派给一个或一个以上处理单元的一个或一个以上专用高速缓存器及可指派给剩余处理单元的至少一个可配置高速缓存器。5、如权利要求4所述的设备,其中每一可配置高速缓存器均可指派给所述剩余处理单元的一相应子组中的任一者。6、如权利要求4所述的设备,其中所述剩余处理单元包括深度测试引擎及纹理映射引擎。7、如权利要求1所述的设备,其进一步包括控制单元,其经配置以确定所述多个处理单元对存储器的利用率并基于存储器利用率将所述多个高速缓存器指派给所述至少一个处理单元。8、如权利要求7所述的设备,其中所述控制单元经配置以基于先前图形图像的存储器利用率针对待渲染的每一图形图像指派所述多个高速缓存器。9、如权利要求7所述的设备,其中所述控制单元经配置以基于所述处理单元做出的数据请求、高速缓存命中/未命中统计或其组合来确定存储器利用率。10、如权利要求7所述的设备,其中所述控制单元经配置以在渲染图像期间检测所述多个处理单元对存储器的利用率的变化且基于所检测的存储器利用率的变化重新指派所述多个高速缓存器。11、如权利要求l所述的设备,其进一步包括控制单元,其经配置以基于正被执行的图形应用对存储器的利用率将所述多个高速缓存器指派给所述至少一个处理单元。12、如权利要求l所述的设备,其中所述纵横杆包括多个接口单元,每一接口单元经配置以将相关联的处理单元耦合到指派给所述处理单元的一组高速缓存器。13、如权利要求12所述的设备,其中每一接口单元均包括状态机,其经配置以确定所述相关联的处理单元所请求的数据是否存储在指派给所述处理单元的所述组高速缓存器中的任一者中。14、如权利要求13所述的设备,其中每一接口单元的所述状态机均从所述多个高速缓存器接收高速缓存命中/未命中指示符及指示指派给所述相关联的处理单元的所述组高速缓存器的控制。15、如权利要求13所述的设备,其中每一接口单元的所述状态机均经配置以在发生高速缓存未命中时填充指派给所述相关联的处理单元的所述组高速缓存器中的一者。16、如权利要求1所述的设备,其中所述多个高速缓存器被布置成具有至少两个高速缓存器层级的分级结构。17、如权利要求16所述的设备,其中所述分级结构中的至少一个层级具有可配置数目的高速缓存器。18、如权利要求16所述的设备,其中所述分级结构中的至少一个层级具有可配置的高速缓存器大小。19、如权利要求1所述的设备,其中所述多个高速缓存器被布置成分级结构中的可配置数目的层级。20、如权利要求1所述的设备,其中所述多个高速缓存器具有可配置的高速缓存器大小。21、如权利要求l所述的设备,其进一步包括仲裁器,其耦合到所述多个高速缓存器且经配置以促进所述多个高速缓存器与主存储器之间的数据交换。22、如权利要求1所述的设备,其中所述多个处理单元包括深度测试引擎及纹理映射引擎。23、如权利要求22所述的设备,其中所述多个处理单元被布置成管线,且其中所述深度测试引擎在所述管线中位于比所述纹理映射引擎靠前处。24、一种集成电路,其包括多个处理单元,其经配置以执行用以渲染图形图像的图形操作。多个高速缓存器,其经配置以存储用于所述多个处理单元中的至少一个处理单元的数据;及纵横杆,其经配置以将所述多个高速缓存器耦合到所述至少一个处理单元。25、如权利要求24所述的集成电路,其中所述多个高速缓存器中的每一者可指派给所述多个处理单元的一相应子组中的任一者。26、如权利要求24所述的集成电路,其进一步包括控制单元,其经配置以确定所述多个处理单元对存储器的利用率并基于存储器利用率将所述多个高速缓存器指派给所述至少一个处理单元。27、一种无线装置,其包括图形处理器,其包括经配置以执行用以渲染图形图像的图形操作的多个处理单元;及高速缓冲存储器系统,其包括多个高速缓存器,其经配置以存储用于所述多个处理单元中的至少一个处理单元的数据,及纵横杆,其经配置以将所述多个高速缓存器耦合到所述至少一个处理单元。28、如权利要求27所述的无线装置,其中所述高速缓冲存储器系统进一步包括仲裁器,其耦合到所述多个高速缓存器且经配置以促进所述多个高速缓存器与主存储器之间的数据交换。29、一种方法,其包括确定经配置以执行用以渲染图形图像的图形操作的多个处理单元对存储器的利用率;基于所述多个处理单元对存储器的利用率将多个高速缓存器指派给所述多个处理单元中的至少一个处理单元;及将所述至少一个处理单元中的每一者耦合到指派给所述处理单元的相应一组高速缓存器。30、如权利要求29所述的方法,其进一步包括将一个或一个以上高速缓存器直接耦合到所述多个处理单元中的一个或一个以上处理单元。31、如权利要求29所述的方法,其中所述指派所述多个高速缓存器包括基于先前图形图像的存储器利用率针对待渲染的每一图形图像将所述多个高速缓存器指派给所述至少一个处理单元。32、一种设备,其包括确定装置,其用于确定经配置以执行用以渲染图形图像的图形操作的多个处理单元对存储器的利用率;指派装置,其用于基于所述多个处理单元对存储器的利用率将多个高速缓存器指派给所述多个处理单元中的至少一个处理单元;及耦合装置,其用于将所述至少一个处理单元中的每一者耦合到指派给所述处理单元的相应一组高速缓存器。33、如权利要求32所述的设备,其进一步包括耦合装置,其用于将一个或一个以上高速缓存器直接耦合到所述多个处理单元中的一个或一个以上处理单元。34、如权利要求32所述的设备,其中所述用于指派所述多个高速缓存器的装置包括指派装置,其用于基于先前图形图像的存储器利用率针对待渲染的每一图形图像将所述多个高速缓存器指派给至少一个处理单元。全文摘要一种图形系统包含图形处理器及高速缓冲存储器系统。所述图形处理器包含执行用以渲染图形图像的各种图形操作的处理单元。所述高速缓冲存储器系统可包含完全可配置高速缓存器、部分可配置高速缓存器或可配置高速缓存器与专用高速缓存器的组合。所述高速缓冲存储器系统可进一步包含控制单元、纵横杆及仲裁器。所述控制单元可确定所述处理单元对存储器的利用率并基于存储器利用率将所述可配置高速缓存器指派给所述处理单元。所述可配置高速缓存器可经指派以实现对这些高速缓存器的良好利用率且避免存储器存取瓶颈。所述纵横杆将所述处理单元耦合到其被指派的高速缓存器。所述仲裁器促进所述高速缓存器与主存储器之间的数据交换。文档编号G06T15/00GK101427282SQ200780014601公开日2009年5月6日申请日期2007年4月24日优先权日2006年4月26日发明者春于,云杜,焦国方申请人:高通股份有限公司