专利名称:用于多纹理化的动态可配置纹理高速缓冲存储器的制作方法
技术领域:
本发明大体上涉及图形,且更具体来说,涉及用于动态地配置纹理高速缓冲存储器 的技术。
背景技术:
纹理映射是3D图形管线中用于将真实感添加到计算机产生的场景的最成功和盛行 的技术中的一者。典型纹理映射(TM)过程是高度存储器存取密集的,因为TM过程 的特征涉及多次纹理查找。频繁的纹理查找引起存储器总线上的瓶颈。为减轻此问题, 通常使用纹理高速缓冲存储器。纹理高速缓冲存储器用于消除从外部存储器源(例如, 芯片外存储器)获取纹素(texel)的冗余且利用三角形的光栅化的自然空间位置。
图形应用程序通常在批模式下发送绘制命令。在批模式下,所有像素作为一批而共 用同一上下文状态寄存器。在单纹理批中,所有像素从一个单纹理图获取纹素。然而, 在多纹理批模式下,如果将不同纹理存储于一个高速缓冲存储器内,则很有可能发生冲 突性未命中。当将两个纹理图指派或分配给同一高速缓冲存储器线时,所述纹理图将彼 此对冲且产生冗余存储器业务。
鉴于前述内容,不同纹理图使用一个高速缓冲存储器降低了功率和像素性能。
因此,此项技术中需要动态地配置纹理高速缓冲存储器的技术。
发明内容
本文中描述动态地配置纹理高速缓冲存储器的技术。在一实施例中,提供一种无线 装置,所述无线装置包含具有动态可配置高速缓冲存储器的图形处理单元。所述动态可 配置高速缓冲存储器在单纹理映射模式被启用时具有对应于n路组关联纹理高速缓冲存 储器的第一配置,且在多纹理映射模式被启用时具有对应于一组n/M路组关联子高速缓 冲存储器的第二配置,其中n和M为大于1的整数,且n可被M除尽。所述装置还包 括耦合到所述图形处理单元的存储器。
在另一方面中, 一种图形处理单元包括可操作以确定为选定应用程序使单纹理映射被启用还是多纹理映射被启用的驱动器。所述单元还包括动态可配置的高速缓冲存储 器,所述动态可配置高速缓冲存储器在所述单纹理映射被启用时具有对应于n路组关联 纹理高速缓冲存储器的第一配置,且在所述多纹理映射被启用时具有对应于一组n/M路 组关联子高速缓冲存储器的第二配置,其中n和M为大于1的整数,且n可被M除尽。
在又一方面中, 一种包括机器可读媒体的计算机程序产品具有用于致使机器确定选 定应用程序使单纹理映射被启用还是多纹理映射被启用的指令。当单纹理映射被启用 时,所述指令致使所述机器配置n路组关联纹理高速缓冲存储器。当多纹理映射被启用 时,所述指令还致使所述机器将所述n路组关联纹理高速缓冲存储器划分成一组M个 n/M路组关联子高速缓冲存储器,其中n和M为大于1的整数,n可被M除尽,且M 对应于纹理图的数目。
下文更详细地描述本发明的各个方面和实施例。
从下文结合图式时所陈述的详细描述将更加明白本发明的各方面和实施例,图式中 参考标号始终识别对应者。
图1展示无线装置的框图。 图2展示图形处理单元的大体框图。 图3A展示常规三维(3D)管线。 图3B展示常规像素渲染级。
图4展示动态可配置纹理高速缓冲存储器的大体框图。 图5A展示在单纹理模式下的像素批。 图5B展示在多纹理模式下的像素批。
图6A-6B展示在单纹理模式下的动态可配置纹理高速缓冲存储器的示意图。 图7A-7B展示在多纹理模式下的动态可配置纹理高速缓冲存储器的示意图。 图8展示主存储器中所存储的应用程序的大体框图。
具体实施例方式
词语"示范性"在本文中用于意味着"用作实例、例子或说明"。在本文中描述为 "示范性"的任何实施例或设计不必被解释为比其它实施例或设计优选或有利。
许多游戏应用程序需要在二维(2D)空间(例如,显示屏幕)中显示3D对象的三 维(3D)图形应用程序。2D图形中的像素具有位置、色彩和亮度的特性,而3D像素增加指示点位于假想Z轴上何处的深度特性。当组合3D像素时,产生纹理,每一3D像 素具有其自身深度值。
本文所描述的技术可用于无线通信、计算、网络连接、个人电子器件等。在下文中 描述所述技术在无线通信上的示范性使用。
图1展示无线通信系统中的无线装置10的一实施例的框图。无线装置10可为蜂窝 式或相机电话、终端、手持机、个人数字助理(PDA)或某一其它装置。无线通信系统 可为码分多址(CDMA)系统、全球移动通信系统(GSM)系统或某一其它系统。
无线装置10能够经由接收路径和发射路径提供双向通信。在接收路径上,通过天 线12接收由基站发射的信号且提供到接收器(RCVR) 14。接收器14调节并数字化接 收到的信号且将样本提供到数字区20以供进一步处理。在发射路径上,发射器(TMTR) 16接收将从数字区20发射的数据、处理并调节所述数据,且产生调制信号,所述调制 信号经由天线12而被传输到基站。
数字区20包括各种处理、接口和存储器单元,例如,调制解调器处理器22、视频 处理器24、控制器/处理器26、显示处理器28、 ARM/DSP 32、图形处理单元(GPU) 34、内部存储器36,和外部总线接口 (EBI) 38。调制解调器处理器22为数据发射和接 收执行处理(例如,编码、调制、解调和解码)。视频处理器24对视频应用(例如,摄 影机、视频重放和视频会议)的视频内容(例如,静态图像、移动视频,和移动文本) 执行处理。控制器/处理器26可引导数字区20内的各种处理和接口单元的操作。显示处 理器28执行处理以促进视频、图形和文本在显示单元30上的显示。ARM/DSP32可为 无线装置10执行各种类型的处理。图形处理单元34执行图形处理。
本文中所描述的技术可用于数字区20中的任一处理器,例如,图形处理单元34。 内部存储器36存储用于数字区20内的各种单元的数据和/或指令。EBI 38促进数据沿 着总线或数据线DL在数字区20 (例如,内部存储器36)与主存储器40之间的转移。
可以一个或一个以上DSP、微处理器、RISC等来实施数字区20。数字区20也可制 造在一个或一个以上专用集成电路(ASIC)或一些其它类型的集成电路(IC)上。
本文中所描述的技术可实施于各种硬件单元中。举例来说,所述技术可实施于 ASIC、 DSP、 RISC、 ARM、数字信号处理装置(DSPD)、可编程逻辑装置(PLD)、现 场可编程门阵列(FPGA)、处理器、控制器、微控制器、微处理器,和其它电子单元。
图2展示GPU (整体以34表示)的大体框图。GPU 34包括三维(3D)切换驱动 器42和动态可配置纹理高速缓冲存储器44。 3D切换驱动器42为高速缓冲存储器44提 供切换控制信号SW1以进行重配置。GPU34还包括3D图形管线60,稍后将详细描述3D图形管线60。另外,GPU 34包括具有获取控制器48的处理器46。获取控制器48 用于产生命令以从纹理图TM中的一者或一者以上获取所请求的纹理数据。图8展示主存储器40中所存储的应用程序Al...AZ。所存储的应用程序Al...AZ可 包括游戏应用程序或其它图形应用程序。每一应用程序使纹理类型TT和一个或一个以 上纹理图TM与其相关联。在操作中,依据选定应用程序,3D切换驱动器42解析选定 应用程序且确定为选定应用程序启用哪一纹理(单个或多个纹理)类型TT。其后,3D 切换驱动器42产生切换控制信号SW1以使高速缓冲存储器44针对单纹理模式或多纹 理模式而重配置。纹理映射是经由至少一个纹理图TM将2D纹理图像映射于3D对象 的表面上的阴影技术。2D纹理图像存储于主(外部)存储器40中。纹理图像的个别元 素被称为纹素。还参看图3A和图3B,分别展示常规3D图形管线和像素渲染级(整体以60和64 表示)的实施例。3D图形管线60将在显示单元30上的整个3D表示任务划分成至少两 (2)个管线级顶点处理级62和像素渲染级64。在操作中,顶点处理级62可包括当前 在OpenGL⑥或OpenGL ES中实施的所有功能或功能的子集。像素渲染级64包括光栅化、混合和纹理应用操作66和隐藏表面移除操作68。然而, 像素渲染级64可包括由OpenGL⑧或OpenGL ES界定的其它操作。像素渲染级64将 来自顶点处理级62的关于3D对象的信息转换成可显示于显示单元30上的位图。像素 渲染级64处理输入三角形组以产生3D图形图像的像素表示。在光栅化、混合和纹理应 用操作66期间,纹理映射引擎66A执行纹理化操作。参看图4,展示动态可配置纹理高速缓冲存储器44的大体框图。GPU34的动态可 配置纹理高速缓冲存储器44为动态可配置/可重配置的,以在单纹理模式100 (当在选 定应用程序中启用单纹理映射时)和多纹理模式200 (当在选定应用程序中启用多纹理 映射时)中的一者下操作。在图6A-6B中最佳看到在单纹理模式100下的动态可配置纹 理高速缓冲存储器44的示意图。在单纹理模式100下的动态可配置纹理高速缓冲存储 器44为n路组关联高速缓冲存储器。在示范性实施例中,n为偶数。在所说明的实施例 中,n等于4。在示范性实施例中,4路组关联纹理高速缓冲存储器具有约4KB的大小 以处置纹理査找,每一高速缓冲存储器线为128个位宽。在单纹理模式100下的动态可 配置纹理高速缓冲存储器44经设计以支持高达每遍两个纹理。出于说明的目的,每遍两个纹理意味着,对于每一像素来说,从两个不同纹理图同 时将纹素映射于每一像素上,而未经历多遍。举例来说,如果高速缓冲存储器仅支持单 纹理映射,则为存档多纹理映射效应,必须对每一像素执行多次单纹理映射。相应地,每遍多个纹理意味着,对于每一像素来说,从多个(不同)纹理图同时映射纹素,而未 经历多遍。现参看图5A,展示单纹理模式的批(整体表示为B)的框图。图形应用程序通常在 批模式下发送绘制命令,其中批B中的所有像素(表示为PIXELB1、PIXELB2、...PIXELBX) 共用同一上下文状态寄存器50 (其中X等于所述批中像素的数目)。在由纹理类型TT确定的单纹理模式下,所有像素PIXELm、 PIXELB2、 ...PIXELbx 从单个纹理图TM获取纹素。所述纹理图TM为单纹理图。在两个纹理(多纹理模式) 批中,像素PIXELb,、 PIXELb2、…PIXELBx中的每一者从2个不同纹理图获取纹素(其 中X等于所述批中像素的数目)。在所述示范性实施例中,每一像素PIXELm、 PIXELB2、 ...PIXELBx产生所述像素的 纹理地址和其它信息。所述像素的纹理地址具有对应标记和索引,分别表示为TAG一IN 禾口 INDEX[3:0]。分量[3:0]对应于寻址格式。此处,"3:0"为四(0, 1,2,3)数位二进制 地址的命名表示。因此,(示范性实施例的)索引具有24个不同地址。索引用于存取标 记随机存取存储器(tagram) 102。、 102" 1022、 1023 (图6A)。标记随机存取存储器 102o、 102,、 1022、 1023的下标也对应于路。因此,下标O对应于wayO、下标1对应于 wayl、下标2对应于way2,且下标3或(n-l)对应于way3或way (n-l)。在图6A-6B中,展示在单纹理模式100下的动态可配置纹理高速缓冲存储器44的 示意图。高速缓冲存储器的组关联为4路(n=4)。因此,存在四(4)个条目或高速缓 冲存储器线供一个索引INDEX[3:0]选择。如在图6A中最佳看到,在单纹理模式100下 的高速缓冲存储器44包括n个高速缓冲存储器区块,其中每一区块包括路标记随机存 取存储器102Q、 102!、 1022或1023和一路validj it指示符104q、 10^、 1042或1043。如 在图6B中最佳看到,每一区块进一步包括一路数据随机存取存储器120o、 120!、 1202 或1203。每一区块还表示完整的"高速缓冲存储器线"。动态可配置纹理高速缓冲存储器44由n个"高速缓冲存储器线"组成。通过索引 选择每一高速缓冲存储器线。高速缓冲存储器44是3D固线式管线与主(外部)存储器 40之间的存储器层级的一级。当3D图形管线60将地址发送到主(外部)存储器40以 读回纹素时,3D图形管线60首先检查数据(纹素)是否在动态可配置纹理高速缓冲存 储器44内。将所述地址划分成表示为INDEX[3:0]的索引,其用于选择高速缓冲存储 器线;以及表示为TAGJN的标记字段,其用于与高速缓冲存储器的标记字段的值进行 比较。如果存在匹配,则其意味着内容在高速缓冲存储器44内,且具体来说,在具有 所述匹配的高速缓冲存储器线内。在典型高速缓冲存储器中,每一高速缓冲存储器线具有一有效位指示符。在所述示 范性实施例中,有效位的值包括1) Valid_bit= "1"意味着有效内容存储于此高速缓冲 存储器线中;以及2) Valid—bit= "0"意味着高速缓冲存储器线是空的。所述有效位由 寄存器实施,且由重置信号初始化为"0"。有效位指示符与每一相应路标记随机存取存储器102Q、 102卜1022和1023相关联。 因此,way0标记随机存取存储器102q使way0 valid—bit指示符104。与其相关联。wayl 标记随机存取存储器102!使wayl valid_bit指示符104i与其相关联。way2标记随机存 取存储器1022使way2 valid—bit指示符1042与其相关联。way3标记随机存取存储器1023 使way3 valid_bit指示符1043与其相关联。valid_bit指示符指示进入高速缓冲存储器44 中的给定条目含有有效数据。路valid—bit指示符1040、 104,、 1042和1043分别产生线 L30、 L31、 L32和L33上的输出。每一路标记随机存取存储器102o、 102卜1022和1023接收三(3)个输入。线L2 上的第一输入为用于批B中的相应像素的TAGJN,以粗体展示。线L4上的第二输入 为表示为INDEX[3:0]的索引,其展示为具有由两个点跟着的短划线的线。所述索引用于 存取路标记随机存取存储器102Q、 102i、 1022和1023。每一路标记随机存取存储器1020、 102i、 1022和1023的第三输入来自以点线展示的路更新解码器112。路更新解码器112 从路选择器106接收线L10上的输入。如将从下文的描述看到,线L4上的索引INDEX[3:0]选择高速缓冲存储器线的路标 记随机存取存储器102o、 102i、 1022和1023中的一者,其接着输出在对应输出线L20、 L21、 L22或L23上的所存储标记值。路选择器106包括路选择位108。将路选择位108的输出馈送到线L10以由路更新 解码器112进行处理。还将路选择位108的输出馈送到累加器110,其将一 (1)添加到 路选择位108的输出。数字2 (在标示为106的框中)表示两位信号。线L8上的输出环 回到路选择位108。路更新解码器112输出线L12、 L14、 L16和U8上的控制位(展示 为点线)以选择n路关联组中的一者。路更新解码器112接收线L10上的两位信号,且 产生一位信号,以选择n个区块或路标记随机存取存储器102Q、 102卜1022和1023和/ 或图6B中所示的高速缓冲存储器线的路数据随机存取存储器120Q、 120b 1202和1203 中的任一者。当在高速缓冲存储器44中发生未命中时,所请求的数据应进入一个高速缓冲存储 器线,且必须替换占据那个高速缓冲存储器线的数据。在n路关联高速缓冲存储器中, (n)个数据随机存取存储器120G、 120,、 1202和1203的选择用于放置所请求的数据。路选择器106将从n路中拾取待替换的高速缓冲存储器线。路valid—bit指示符1040、 104,、 1042和1043的输出分别产生线L30、 L31、 L32和 L33上的输出,其分别被发送到比较器114Q、 114,、 1142和1143。另外,线L20、 L21、 L22和L23上来自路标记随机存取存储器102Q、 102!、 1022和1023的输出分别被发送到 比较器114Q、 114!、 1142和1143。比较器1140、 114!、 1142和1143还接收从线L2输入 的TAG—IN。在线L20、 L2K L22和L23上的分别来自标记随机存取存储器102。、 102,、 1022 和1023的4 (n-4)个可能标记内容与传入的像素标记TAG_IN之间执行由比较器1140、 114!、 1142和1143进行的比较。如果来自比较器114o、 114,、 1142和1143的四个比较中 的一者产生匹配,则此匹配暗示高速缓冲存储器命中。因此,线L50上的来自操作数116 的输出表示高速缓冲存储器命中。以实例的方式,将操作数116表示为"与"门。否则, 如果无匹配,则线L50上的来自操作数116的输出表示高速缓冲存储器未命中。比较器 1140、 114,、 1142和1143输出线L40、 L41、 L42和L43上的其相应比较的结果,所述结 果被馈送到操作数门116的输入。操作数门116还接收线L6上的表示activej3it的输入。 如果线L50上的来自操作数116的输出表示未命中,则所述输出为发送到获取控制器48 的获取请求。获取控制器48接着经由总线或数据线DL通信以从主(外部)存储器40 检索必需的纹理图数据。然而,如果线L30、 L31、 L32、 L33中的任一者上的Valid_bit为"0",则不使用与 那个ValidJ)it相关联的比较。特定参看图6B,当存在由高速缓冲存储器线或区块中的任一者进行的高速缓冲存 储器命中时,分别在线L70、 L71、 L72或L73中的一者上从对应路数据随机存取存储 器120D、 120^ 1202或1203读出所请求的纹理数据。将线L70、 L71、 L72或L73上的 输出纹理数据发送到多路复用器122。在线L80上将来自多路复用器122的输出发送到 纹理映射引擎66A。线L10上的来自路选择器106的输出用于控制多路复用器122。每一路数据随机存 取存储器120。、 12(h、 1202或1203被填充有线Ll上的来自主(外部)存储器40的对应 纹理图数据。线L6上的ActiveJ)it特定用于3D图形管线60中。有时,像素不需要纹理查找。 在此特定情况下,线L6上的有效位也被设置到"0"。因此,高速缓冲存储器44将不对 此像素进行操作。当纹理映射引擎66A处于多纹理模式下时,批B中的像素(表示为PIXELB1、PIXELB2、 ...PIXELbx)从多个不同纹理图TM获取纹素。现参看图5B,展示在多纹理模式下的批的框图。在示范性实施例中,多纹理模式 与两个纹理图有关。然而,可使用两个或两个以上纹理图。对于两个纹理批来说,像素 PIXELB1、 PIXELB2、 ...PIXELbx中的每一者从两(2)个不同纹理图获取纹素(其中X 等于所述批中像素的数目)。每一像素PIXELm、 PIXELB2、 ...PIXELBx产生第一纹理地 址字段0、第二纹理地址字段1和用于其它像素信息的字段。第一纹理地址字段0具有 标记和索引,对于子高速缓冲存储器C0来说,其被表示为TexO TAGJN和Tex0 INDEX[3:0]。第二纹理地址字段1具有标记和索引,对于子高速缓冲存储器Cl来说, 其被表示为Texl TAG—IN和Texl INDEX[3:0]。索弓l TexO INDEX[3:0]用于存取子高速缓 冲存储器CO的TexO路标记随机存取存储器20 200 、20201 (图7A)。索引Texl INDEX[3:0] 用于存取子高速缓冲存储器Cl的Texl路标记随机存取存储器2021()、 202"(图7A)。在图7A-7B中,展示在多纹理模式200下的动态可配置纹理高速缓冲存储器44的 示意图。高速缓冲存储器的组关联为图6A-6B的4路(n=4),其被分裂或划分以产生两 个2路组关联子高速缓冲存储器C0和Cl。因此,存在由子高速缓冲存储器CO中的一 个索引Tex 0 INDEX[3:0]选出的两个条目。同样,存在由子高速缓冲存储器Cl中的一 个索引Tex 1 INDEX[3:0]选出的两个条目。子高速缓冲存储器CO包括两个路,"wayO" 和"wayl"。子高速缓冲存储器CO具有至少两个高速缓冲存储器区块,wayO和wayl。 wayO区块包括TexO wayO标记随机存取存储器202(x),且wayl区块包括TexO wayl标记 随机存取存储器202Q1。每一区块wayO和wayl进一步包括wayO valid—bit指示符20400 和waylvalidj)it指示符204( (其中下标的第一位表示纹理图且第二位表示路)。子高 速缓冲存储器Cl包括2路("wayO"和"wayl")。子高速缓冲存储器Cl具有两个区块, wayO区块和wayl区块。wayO区块包括Texl wayO标记随机存取存储器2021(),且wayl 区块具有Texl wayl标记随机存取存储器202u。子高速缓冲存储器Cl的wayO区块进 一步包括wayO valid—bit指示符2041(),且wayl区块具有wayl valid—bit指示符204n 。valid—bit指示符指示进入子高速缓冲存储器CO或Cl中的给定条目含有有效数据。 wayO valid—bit指示符204(k)、 20401分别产生线L300、 L31o上输出。wayl valid_bit指示 符204,o、 204u分别产生线L30,、 L31,上的输出。子高速缓冲存储器CO的标记随机存取存储器202Qo、 202G1中的每一者接收三(3) 个输入。第一输入为线L2o上的用于批B中的相应像素的TEXOTAG一IN,以粗体展示。 在线L4。上的第二输入为索引TEXO INDEX[3:0],其展示为具有由两个点跟着的短划线 的线。索引用于存取标记随机存取存储器202QQ、 202Q1。到每一路标记随机存取存储器14202QG、 202D1的第三输入来自线L10o上的路选择器206()。valid—bit指示符204oq、 204(h的输出分别产生线L30f)、 L31o上的输出,所述输出分 别被发送到比较器214QQ、 214Q1。另外,线L20Q、 L21o上的来自子高速缓冲存储器CO 的标记随机存取存储器202(k)、 202(n的输出分别被发送到比较器214QQ、 21401。比较器 2140()、 214(h还接收TEXO TAG_IN。然而,如果线L30(j、 L31Q、 L3(^或L31,中的任一者上的Valid—bit为"0",则不使 用与那个Valid_bit相关联的比较。此外,线L6上的Active—bit特定用于3D图形管线 60中且以与上述方式相同的方式起作用。在线L20Q、 L21o上的分别来自子高速缓冲存储器CO的2路标记随机存取存储器 20200、 20201的两个可能标记内容与传入的像素标记TEXO TAG_IN之间执行由比较器 214QQ、 214(h进行的比较。如果来自比较器214(k)、 214Q1的两个比较中的一者产生匹配, 则此匹配暗示子高速缓冲存储器命中。因此,线L50o上的来自操作数216o的输出表示 子高速缓冲存储器命中。以实例的方式,将操作数216o表示为"与"门。否则,线L50() 上的来自操作数门216o的输出表示高速缓冲存储器未命中。比较器214(k)、 214( 输出线 L40Q、 L41o上的其相应比较的结果,所述结果被馈送到操作数门216o的输入。操作数门 216o还接收线L6上的表示active—bit的输入。子高速缓冲存储器Cl的每一标记随机存取存储器2021Q、 202 接收三(3)个输入。 第一输入为线L2t上的用于批B中的相应像素的TEX1 TAG—IN,以粗体展示。线L4, 上的第二输入为索引TEX1 INDEX[3:0],其展示为具有由两个点跟着的短划线的线。索 引用于存取标记随机存取存储器2021G、 202n。每一标记随机存取存储器2021Q、 202u 的第三输入来自线L10,上的路选择器206,。路valid—bit指示符2041()、 204n的输出分别产生线L30h L31!上的输出,所述输出 分别被发送到比较器2141{)、 214u。另夕卜,线L20" L2h上的来自子高速缓冲存储器Cl 的标记随机存取存储器2021()、 202u的输出分别被发送到比较器2141()、 214u。比较器 21410、 2"u也接收Texl TAGJN。在线L20,、 L21,上的分别来自子高速缓冲存储器Cl的2路标记随机存取存储器 2021()、 202u的2个可能标记内容与传入的像素标记TEX1 TAG—IN之间执行由比较器 2141Q、 214u进行的比较。如果来自比较器2141()、 214"的两个比较中的一者产生匹配, 则此匹配暗示子高速缓冲存储器命中。因此,线L50!上的来自"与"门216t的输出表 示子高速缓冲存储器命中。否则,线L50!上的来自操作数门216i的输出表示子高速缓 冲存储器未命中。比较器2141()、 214u输出线L4(h、 L4h上的其相应比较的结果,所述结果被馈送到操作数门216,的输入。操作数门216o还接收线L6上的表示active_bit的输入。在最终级中,子高速缓冲存储器CO和子高速缓冲存储器Cl的输出是多路复用器 218的输入。多路复用器218对线L50o和L50,上的输出进行多路复用以形成线L60上 的新的经多路复用的输出。线L60上的输出表示发送到获取控制器48的获取请求。所 述经多路复用的输出一次发送一个获取请求。特定参看图7B,当存在由子高速缓冲存储器CO或Cl的高速缓冲存储器线或区块 中的任一者进行的高速缓冲存储器命中时,分别在线L70。、 L71o或L70,、 L71)中的一 者上从对应路数据随机存取存储器220Q()、 220(m或220h)、 220 读出所请求的纹理数据。 将子高速缓冲存储器CO中的线L70o、 L71o上的输出纹理数据发送到多路复用器2220。 将子高速缓冲存储器C1中的线L70h L7h上的输出纹理数据发送到多路复用器222" 将线L80o和L80上的分别来自多路复用器222o和222,的输出当作多个纹理图发送到纹 理映射引擎66A。线L10o上的来自路选择器206o的输出用于控制多路复用器2220。同样,线L10,上 的来自路选择器206i的输出用于控制多路复用器222卜每一路数据随机存取存储器 220Q、 220!、 1203被填充有线Ll上的来自主(外部)存储器40的对应纹理图数据。表 示为210Q、 210,的反相器使在反馈线L8o和L8i上发送的位反相。反馈线L8o和L8,经 耦合以将经反相的位分别环回到路选择器2060、206i的TexO路选择位208Q和Texl路选 择位208i。上述实施例,动态可配置纹理高速缓冲存储器44可容易地配置以使用一个高速缓 冲存储器来优化单纹理模式100和多纹理模式200中的一者下的纹理映射引擎66A。此 外, 一般不出现冲突性未命中。此外,两个(M=2)或两个以上纹理图TM将不彼此对 冲和/或产生冗余存储器业务。描述动态可配置纹理高速缓冲存储器44 (例如,可重配置的n路组关联纹理高速缓 冲存储器)的每一可能配置受到抑制。然而,高速缓冲存储器44当在多纹理模式200 下时应经配置以具有专用于每一纹理图的n/M组关联纹理子高速缓冲存储器。n和M为 大于一 (1)的整数,且n可被M除尽。M的值可为纹理图的数目。在所述实例中,M 为提供两(2)个子高速缓冲存储器的二 (2),每一子高速缓冲存储器专用于所述两个 纹理图中的相应一者。在一个或一个以上示范性实施例中,可以硬件、软件、固件或其任一组合来实施所 描述的功能。如果以软件来实施,则所述功能可作为一个或一个以上指令或代码而存储于计算机可读媒体上或经由计算机可读媒体传输。计算机可读媒体包括计算机存储媒体 和通信媒体,通信媒体包括促进将计算机程序从一个地方转移到另一地方的任何媒体。 存储媒体可为可由计算机存取的任何可用媒体。以实例而不限制的方式,此计算机可读 媒体可包含RAM、 ROM、 EEPROM、 CD-ROM或其它光盘存储装置、磁盘存储装置或 其它磁性存储装置,或可用于载运或存储呈指令或数据结构的形式的所要程序代码和可 通过计算机存取的任何其它媒体。而且,将任何连接合适地称作计算机可读媒体。举例 来说,如果使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)或例如红外、无线 电和微波等无线技术从网站、服务器,或其它远程源传输软件,则所述同轴电缆、光纤 电缆、双绞线、DSL,或例如红外、无线电和微波等无线技术包括于媒体的定义中。如 本文所使用,磁盘和光盘包括压縮光盘(CD)、激光光盘、光盘、数字通用光盘(DVD)、 软盘和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘使用激光以光学方式再现 数据。上述各物的组合也应包括于计算机可读媒体的范围内。提供对所揭示实施例的先前描述以使所属领域的技术人员能够制造或使用本发明。 所属领域的技术人员将容易明白对这些实施例的各种修改,且在未脱离本发明的精神或 范围的情况下可将本文中所界定的一般原理应用于其它实施例。因此,本发明不意欲限 于本文中所示的实施例,而是将赋予本发明与本文中所揭示的原理和新颖特征一致的最 广泛范围。
权利要求
1.一种图形处理单元,其包含驱动器,其可操作以确定为选定应用程序是启用单纹理映射还是启用多纹理映射;以及动态可配置高速缓冲存储器,其在所述单纹理映射被启用时具有对应于n路组关联纹理高速缓冲存储器的第一配置,且在所述多纹理映射被启用时具有对应于一组n/M路组关联子高速缓冲存储器的第二配置,其中n和M为大于1的整数,且n可被M除尽。
2. 根据权利要求1所述的图形处理单元,其中n为4,且M为2。
3. 根据权利要求1所述的图形处理单元,其中在所述多纹理映射期间,所述组n/M路 组关联子高速缓冲存储器中的相应一个子高速缓冲存储器专用于相应一个纹理图。
4. 根据权利要求3所述的图形处理单元,其中所述n路组关联纹理高速缓冲存储器包 括n个高速缓冲存储器区块,其操作以存储纹理数据;操作数,其用于在所述n 个高速缓冲存储器区块的所有n个标记输出表示所请求的纹理数据的未命中时产 生获取命令;以及多路复用器,其操作以从所述n个高速缓冲存储器区块输出所述 所请求的纹理数据。
5. 根据权利要求3所述的图形处理单元,其中所述组n/M路组关联子高速缓冲存储 器中的每一子高速缓冲存储器包括多个子高速缓冲存储器区块,其操作以存储用 于对应一个纹理图的纹理数据;以及操作数,其用于在所述多个子高速缓冲存储器区块的所有输出表示所请求的纹理数据的未命中时产生获取命令输出;且所述组 n/M路组关联子高速缓冲存储器包括多路复用器,以对所述每一子高速缓冲存储器 的所述获取命令输出进行多路复用。
6. 根据权利要求5所述的图形处理单元,其中所述组n/M路组关联子高速缓冲存储 器中的每一子高速缓冲存储器进一步包括多路复用器,其操作以从所述多个子高速缓冲存储器区块输出所述所请求的数据。
7. —种集成电路,其包含驱动器,其可操作以确定为选定应用程序是启用单纹理映射还是启用多纹理映射;以及动态可配置高速缓冲存储器,其在所述单纹理映射被启用时具有对应于n路组关 联纹理高速缓冲存储器的第一配置,且在所述多纹理映射被启用时具有对应于一组 n/M路组关联子高速缓冲存储器的第二配置,其中n和M为大于1的整数,且n 可被M除尽。
8. 根据权利要求7所述的集成电路,其中n为4,且M为2。
9. 根据权利要求7所述的集成电路,其中在所述多纹理映射期间,所述组n/M路组 关联子高速缓冲存储器中的相应一个子高速缓冲存储器专用于相应一个纹理图。
10. 根据权利要求9所述的集成电路,其中所述n路组关联纹理高速缓冲存储器包括 n个高速缓冲存储器区块,其操作以存储纹理数据;操作数,其用于在所述n个高 速缓冲存储器区块的所有n个标记输出表示所请求的纹理数据的未命中时产生获 取命令;以及多路复用器,其操作以从所述n个高速缓冲存储器区块输出所述所请 求的纹理数据。
11. 根据权利要求9所述的集成电路,其中所述组n/M路组关联子高速缓冲存储器中 的每一子高速缓冲存储器包括多个子高速缓冲存储器区块,其操作以存储用于对 应一个纹理图的纹理数据;以及操作数,其用于在所述多个子高速缓冲存储器区块 的所有输出表示所请求的纹理数据的未命中时产生获取命令输出;且所述组n/M路 组关联子高速缓冲存储器包括多路复用器,以用于对所述每一子高速缓冲存储器的 所述获取命令输出进行多路复用。
12. 根据权利要求11所述的集成电路,其中所述组n/M路组关联子高速缓冲存储器中 的每一子高速缓冲存储器进一步包括多路复用器,其操作以从所述多个子高速缓 冲存储器区块输出所述所请求的数据。
13. —种处理器,其包含图形处理单元,其具有动态可配置高速缓冲存储器,所述动态可配置高速缓冲存 储器在单纹理映射模式被启用时具有对应于n路组关联纹理高速缓冲存储器的第 一配置,且在多纹理映射模式被启用时具有对应于一组n/M路组关联子高速缓冲 存储器的第二配置,其中n和M为大于1的整数,且n可被M除尽;以及存储器,其耦合到所述图形处理单元。
14. 根据权利要求13所述的处理器,其中n为4,且M为2。
15. 根据权利要求13所述的处理器,其中在所述多纹理映射期间,所述组n/M路组关 联子高速缓冲存储器中的相应一个子高速缓冲存储器专用于相应一个纹理图。
16. 根据权利要求15所述的处理器,其中所述n路组关联纹理高速缓冲存储器包括n 个高速缓冲存储器区块,其操作以存储纹理数据;操作数,其用于在所述n个高速 缓冲存储器区块的所有n个标记输出表示所请求的纹理数据的未命中时产生获取 命令;以及多路复用器,其操作以从所述n个高速缓冲存储器区块输出所述所请求 的纹理数据。
17. 根据权利要求15所述的处理器,其中所述组n/M路组关联子高速缓冲存储器中的 每一子高速缓冲存储器包括多个子高速缓冲存储器区块,其操作以存储用于对应 一个纹理图的纹理数据;以及操作数,其用于在所述多个子高速缓冲存储器区块的 所有输出表示所请求的纹理数据的未命中时产生获取命令输出;且所述组n/M路 组关联子高速缓冲存储器包括多路复用器,以对所述每一子高速缓冲存储器的所述 获取命令输出进行多路复用。
18. 根据权利要求17所述的处理器,其中所述组n/M路组关联子高速缓冲存储器中的 每一子高速缓冲存储器进一步包括多路复用器,其操作以从所述多个子高速缓冲 存储器区块输出所述所请求的数据。
19. 一种无线装置,其包含图形处理单元,其具有动态可配置高速缓冲存储器,所述动态可配置高速缓冲存 储器在单纹理映射模式被启用时具有对应于n路组关联纹理高速缓冲存储器的第一配置,且在多纹理映射模式被启用时具有对应于一组n/M路组关联子高速缓冲 存储器的第二配置,其中n和M为大于1的整数,且n可被M除尽;以及 存储器,其耦合到所述图形处理单元。
20. 根据权利要求19所述的装置,其中n为4,且M为2。
21. 根据权利要求19所述的装置,其中在所述多纹理映射期间,所述组n/M路组关联 子高速缓冲存储器中的相应一个子高速缓冲存储器专用于相应一个纹理图。
22. 根据权利要求21所述的装置,其中所述n路组关联纹理高速缓冲存储器包括n 个高速缓冲存储器区块,其操作以存储纹理数据;操作数,其用于在所述n个高速 缓冲存储器区块的所有n个标记输出表示所请求的纹理数据的未命中时产生获取 命令;以及多路复用器,其操作以从所述n个高速缓冲存储器区块输出所述所请求 的纹理数据。
23. 根据权利要求21所述的装置,其中所述组n/M路组关联子高速缓冲存储器中的每 一子高速缓冲存储器包括多个子高速缓冲存储器区块,其操作以存储对应一个纹 理图的纹理数据;以及操作数,其用于在所述多个子高速缓冲存储器区块的所有输 出表示所请求的纹理数据的未命中时产生获取命令输出;且所述组n/M路组关联 子高速缓冲存储器包括多路复用器,以对所述每一子高速缓冲存储器的所述获取命 令输出进行多路复用。
24. 根据权利要求23所述的装置,其中所述组n/M路组关联子高速缓冲存储器中的所 述每一子高速缓冲存储器进一步包括多路复用器,其操作以从所述多个子高速缓 冲存储器区块输出所述所请求的数据。
25. —种包括计算机可读媒体的计算机程序产品,所述计算机可读媒体具有用于致使计 算机执行以下操作的指令确定选定应用程序是使单纹理映射被启用还是多纹理映射被启用; 当所述单纹理映射被启用时,配置n路组关联纹理高速缓冲存储器;以及 当所述多纹理映射被启用时,将所述n路组关联纹理高速缓冲存储器划分成一组M个n/M路组关联子高速缓冲存储器,其中n和M为大于1的整数,n可被M除 尽,且M对应于纹理图的数目。
26. —种方法,其包含确定选定应用程序是使单纹理映射被启用还是多纹理映射被启用; 当所述单纹理映射被启用时,配置n路组关联纹理高速缓冲存储器;以及 当所述多纹理映射被启用时,将所述n路组关联纹理高速缓冲存储器划分成一组M个n/M路组关联子高速缓冲存储器,其中n和M为大于1的整数,n可被M除尽,且M对应于纹理图的数目。
全文摘要
本发明揭示用于动态地配置纹理高速缓冲存储器的技术。在三维(3D)图形管线的纹理映射过程期间,如果批是用于单纹理映射,则将所述纹理高速缓冲存储器配置成n路组关联纹理高速缓冲存储器。然而,如果所述批是用于多纹理映射,则将所述n路组关联纹理高速缓冲存储器划分成n/M路组关联子高速缓冲存储器,其中n和M为大于1的整数,且n可被M除尽。
文档编号G06F12/08GK101583929SQ200880001639
公开日2009年11月18日 申请日期2008年2月20日 优先权日2007年2月22日
发明者春 于 申请人:高通股份有限公司