專利名稱:用于多紋理化的動態(tài)可配置紋理高速緩沖存儲器的制作方法
技術(shù)領域:
本發(fā)明大體上涉及圖形,且更具體來說,涉及用于動態(tài)地配置紋理高速緩沖存儲器 的技術(shù)。
背景技術(shù):
紋理映射是3D圖形管線中用于將真實感添加到計算機產(chǎn)生的場景的最成功和盛行 的技術(shù)中的一者。典型紋理映射(TM)過程是高度存儲器存取密集的,因為TM過程 的特征涉及多次紋理查找。頻繁的紋理查找引起存儲器總線上的瓶頸。為減輕此問題, 通常使用紋理高速緩沖存儲器。紋理高速緩沖存儲器用于消除從外部存儲器源(例如, 芯片外存儲器)獲取紋素(texel)的冗余且利用三角形的光柵化的自然空間位置。
圖形應用程序通常在批模式下發(fā)送繪制命令。在批模式下,所有像素作為一批而共 用同一上下文狀態(tài)寄存器。在單紋理批中,所有像素從一個單紋理圖獲取紋素。然而, 在多紋理批模式下,如果將不同紋理存儲于一個高速緩沖存儲器內(nèi),則很有可能發(fā)生沖 突性未命中。當將兩個紋理圖指派或分配給同一高速緩沖存儲器線時,所述紋理圖將彼 此對沖且產(chǎn)生冗余存儲器業(yè)務。
鑒于前述內(nèi)容,不同紋理圖使用一個高速緩沖存儲器降低了功率和像素性能。
因此,此項技術(shù)中需要動態(tài)地配置紋理高速緩沖存儲器的技術(shù)。
發(fā)明內(nèi)容
本文中描述動態(tài)地配置紋理高速緩沖存儲器的技術(shù)。在一實施例中,提供一種無線 裝置,所述無線裝置包含具有動態(tài)可配置高速緩沖存儲器的圖形處理單元。所述動態(tài)可 配置高速緩沖存儲器在單紋理映射模式被啟用時具有對應于n路組關(guān)聯(lián)紋理高速緩沖存 儲器的第一配置,且在多紋理映射模式被啟用時具有對應于一組n/M路組關(guān)聯(lián)子高速緩 沖存儲器的第二配置,其中n和M為大于1的整數(shù),且n可被M除盡。所述裝置還包 括耦合到所述圖形處理單元的存儲器。
在另一方面中, 一種圖形處理單元包括可操作以確定為選定應用程序使單紋理映射被啟用還是多紋理映射被啟用的驅(qū)動器。所述單元還包括動態(tài)可配置的高速緩沖存儲 器,所述動態(tài)可配置高速緩沖存儲器在所述單紋理映射被啟用時具有對應于n路組關(guān)聯(lián) 紋理高速緩沖存儲器的第一配置,且在所述多紋理映射被啟用時具有對應于一組n/M路 組關(guān)聯(lián)子高速緩沖存儲器的第二配置,其中n和M為大于1的整數(shù),且n可被M除盡。
在又一方面中, 一種包括機器可讀媒體的計算機程序產(chǎn)品具有用于致使機器確定選 定應用程序使單紋理映射被啟用還是多紋理映射被啟用的指令。當單紋理映射被啟用 時,所述指令致使所述機器配置n路組關(guān)聯(lián)紋理高速緩沖存儲器。當多紋理映射被啟用 時,所述指令還致使所述機器將所述n路組關(guān)聯(lián)紋理高速緩沖存儲器劃分成一組M個 n/M路組關(guān)聯(lián)子高速緩沖存儲器,其中n和M為大于1的整數(shù),n可被M除盡,且M 對應于紋理圖的數(shù)目。
下文更詳細地描述本發(fā)明的各個方面和實施例。
從下文結(jié)合圖式時所陳述的詳細描述將更加明白本發(fā)明的各方面和實施例,圖式中 參考標號始終識別對應者。
圖1展示無線裝置的框圖。 圖2展示圖形處理單元的大體框圖。 圖3A展示常規(guī)三維(3D)管線。 圖3B展示常規(guī)像素渲染級。
圖4展示動態(tài)可配置紋理高速緩沖存儲器的大體框圖。 圖5A展示在單紋理模式下的像素批。 圖5B展示在多紋理模式下的像素批。
圖6A-6B展示在單紋理模式下的動態(tài)可配置紋理高速緩沖存儲器的示意圖。 圖7A-7B展示在多紋理模式下的動態(tài)可配置紋理高速緩沖存儲器的示意圖。 圖8展示主存儲器中所存儲的應用程序的大體框圖。
具體實施例方式
詞語"示范性"在本文中用于意味著"用作實例、例子或說明"。在本文中描述為 "示范性"的任何實施例或設計不必被解釋為比其它實施例或設計優(yōu)選或有利。
許多游戲應用程序需要在二維(2D)空間(例如,顯示屏幕)中顯示3D對象的三 維(3D)圖形應用程序。2D圖形中的像素具有位置、色彩和亮度的特性,而3D像素增加指示點位于假想Z軸上何處的深度特性。當組合3D像素時,產(chǎn)生紋理,每一3D像 素具有其自身深度值。
本文所描述的技術(shù)可用于無線通信、計算、網(wǎng)絡連接、個人電子器件等。在下文中 描述所述技術(shù)在無線通信上的示范性使用。
圖1展示無線通信系統(tǒng)中的無線裝置10的一實施例的框圖。無線裝置10可為蜂窩 式或相機電話、終端、手持機、個人數(shù)字助理(PDA)或某一其它裝置。無線通信系統(tǒng) 可為碼分多址(CDMA)系統(tǒng)、全球移動通信系統(tǒng)(GSM)系統(tǒng)或某一其它系統(tǒng)。
無線裝置10能夠經(jīng)由接收路徑和發(fā)射路徑提供雙向通信。在接收路徑上,通過天 線12接收由基站發(fā)射的信號且提供到接收器(RCVR) 14。接收器14調(diào)節(jié)并數(shù)字化接 收到的信號且將樣本提供到數(shù)字區(qū)20以供進一步處理。在發(fā)射路徑上,發(fā)射器(TMTR) 16接收將從數(shù)字區(qū)20發(fā)射的數(shù)據(jù)、處理并調(diào)節(jié)所述數(shù)據(jù),且產(chǎn)生調(diào)制信號,所述調(diào)制 信號經(jīng)由天線12而被傳輸?shù)交尽?br>
數(shù)字區(qū)20包括各種處理、接口和存儲器單元,例如,調(diào)制解調(diào)器處理器22、視頻 處理器24、控制器/處理器26、顯示處理器28、 ARM/DSP 32、圖形處理單元(GPU) 34、內(nèi)部存儲器36,和外部總線接口 (EBI) 38。調(diào)制解調(diào)器處理器22為數(shù)據(jù)發(fā)射和接 收執(zhí)行處理(例如,編碼、調(diào)制、解調(diào)和解碼)。視頻處理器24對視頻應用(例如,攝 影機、視頻重放和視頻會議)的視頻內(nèi)容(例如,靜態(tài)圖像、移動視頻,和移動文本) 執(zhí)行處理??刂破?處理器26可引導數(shù)字區(qū)20內(nèi)的各種處理和接口單元的操作。顯示處 理器28執(zhí)行處理以促進視頻、圖形和文本在顯示單元30上的顯示。ARM/DSP32可為 無線裝置10執(zhí)行各種類型的處理。圖形處理單元34執(zhí)行圖形處理。
本文中所描述的技術(shù)可用于數(shù)字區(qū)20中的任一處理器,例如,圖形處理單元34。 內(nèi)部存儲器36存儲用于數(shù)字區(qū)20內(nèi)的各種單元的數(shù)據(jù)和/或指令。EBI 38促進數(shù)據(jù)沿 著總線或數(shù)據(jù)線DL在數(shù)字區(qū)20 (例如,內(nèi)部存儲器36)與主存儲器40之間的轉(zhuǎn)移。
可以一個或一個以上DSP、微處理器、RISC等來實施數(shù)字區(qū)20。數(shù)字區(qū)20也可制 造在一個或一個以上專用集成電路(ASIC)或一些其它類型的集成電路(IC)上。
本文中所描述的技術(shù)可實施于各種硬件單元中。舉例來說,所述技術(shù)可實施于 ASIC、 DSP、 RISC、 ARM、數(shù)字信號處理裝置(DSPD)、可編程邏輯裝置(PLD)、現(xiàn) 場可編程門陣列(FPGA)、處理器、控制器、微控制器、微處理器,和其它電子單元。
圖2展示GPU (整體以34表示)的大體框圖。GPU 34包括三維(3D)切換驅(qū)動 器42和動態(tài)可配置紋理高速緩沖存儲器44。 3D切換驅(qū)動器42為高速緩沖存儲器44提 供切換控制信號SW1以進行重配置。GPU34還包括3D圖形管線60,稍后將詳細描述3D圖形管線60。另外,GPU 34包括具有獲取控制器48的處理器46。獲取控制器48 用于產(chǎn)生命令以從紋理圖TM中的一者或一者以上獲取所請求的紋理數(shù)據(jù)。圖8展示主存儲器40中所存儲的應用程序Al...AZ。所存儲的應用程序Al...AZ可 包括游戲應用程序或其它圖形應用程序。每一應用程序使紋理類型TT和一個或一個以 上紋理圖TM與其相關(guān)聯(lián)。在操作中,依據(jù)選定應用程序,3D切換驅(qū)動器42解析選定 應用程序且確定為選定應用程序啟用哪一紋理(單個或多個紋理)類型TT。其后,3D 切換驅(qū)動器42產(chǎn)生切換控制信號SW1以使高速緩沖存儲器44針對單紋理模式或多紋 理模式而重配置。紋理映射是經(jīng)由至少一個紋理圖TM將2D紋理圖像映射于3D對象 的表面上的陰影技術(shù)。2D紋理圖像存儲于主(外部)存儲器40中。紋理圖像的個別元 素被稱為紋素。還參看圖3A和圖3B,分別展示常規(guī)3D圖形管線和像素渲染級(整體以60和64 表示)的實施例。3D圖形管線60將在顯示單元30上的整個3D表示任務劃分成至少兩 (2)個管線級頂點處理級62和像素渲染級64。在操作中,頂點處理級62可包括當前 在OpenGL⑥或OpenGL ES中實施的所有功能或功能的子集。像素渲染級64包括光柵化、混合和紋理應用操作66和隱藏表面移除操作68。然而, 像素渲染級64可包括由OpenGL⑧或OpenGL ES界定的其它操作。像素渲染級64將 來自頂點處理級62的關(guān)于3D對象的信息轉(zhuǎn)換成可顯示于顯示單元30上的位圖。像素 渲染級64處理輸入三角形組以產(chǎn)生3D圖形圖像的像素表示。在光柵化、混合和紋理應 用操作66期間,紋理映射引擎66A執(zhí)行紋理化操作。參看圖4,展示動態(tài)可配置紋理高速緩沖存儲器44的大體框圖。GPU34的動態(tài)可 配置紋理高速緩沖存儲器44為動態(tài)可配置/可重配置的,以在單紋理模式100 (當在選 定應用程序中啟用單紋理映射時)和多紋理模式200 (當在選定應用程序中啟用多紋理 映射時)中的一者下操作。在圖6A-6B中最佳看到在單紋理模式100下的動態(tài)可配置紋 理高速緩沖存儲器44的示意圖。在單紋理模式100下的動態(tài)可配置紋理高速緩沖存儲 器44為n路組關(guān)聯(lián)高速緩沖存儲器。在示范性實施例中,n為偶數(shù)。在所說明的實施例 中,n等于4。在示范性實施例中,4路組關(guān)聯(lián)紋理高速緩沖存儲器具有約4KB的大小 以處置紋理査找,每一高速緩沖存儲器線為128個位寬。在單紋理模式100下的動態(tài)可 配置紋理高速緩沖存儲器44經(jīng)設計以支持高達每遍兩個紋理。出于說明的目的,每遍兩個紋理意味著,對于每一像素來說,從兩個不同紋理圖同 時將紋素映射于每一像素上,而未經(jīng)歷多遍。舉例來說,如果高速緩沖存儲器僅支持單 紋理映射,則為存檔多紋理映射效應,必須對每一像素執(zhí)行多次單紋理映射。相應地,每遍多個紋理意味著,對于每一像素來說,從多個(不同)紋理圖同時映射紋素,而未 經(jīng)歷多遍?,F(xiàn)參看圖5A,展示單紋理模式的批(整體表示為B)的框圖。圖形應用程序通常在 批模式下發(fā)送繪制命令,其中批B中的所有像素(表示為PIXELB1、PIXELB2、...PIXELBX) 共用同一上下文狀態(tài)寄存器50 (其中X等于所述批中像素的數(shù)目)。在由紋理類型TT確定的單紋理模式下,所有像素PIXELm、 PIXELB2、 ...PIXELbx 從單個紋理圖TM獲取紋素。所述紋理圖TM為單紋理圖。在兩個紋理(多紋理模式) 批中,像素PIXELb,、 PIXELb2、…PIXELBx中的每一者從2個不同紋理圖獲取紋素(其 中X等于所述批中像素的數(shù)目)。在所述示范性實施例中,每一像素PIXELm、 PIXELB2、 ...PIXELBx產(chǎn)生所述像素的 紋理地址和其它信息。所述像素的紋理地址具有對應標記和索引,分別表示為TAG一IN 禾口 INDEX[3:0]。分量[3:0]對應于尋址格式。此處,"3:0"為四(0, 1,2,3)數(shù)位二進制 地址的命名表示。因此,(示范性實施例的)索引具有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下的動態(tài)可配置紋理高速緩沖存儲器44的 示意圖。高速緩沖存儲器的組關(guān)聯(lián)為4路(n=4)。因此,存在四(4)個條目或高速緩 沖存儲器線供一個索引INDEX[3:0]選擇。如在圖6A中最佳看到,在單紋理模式100下 的高速緩沖存儲器44包括n個高速緩沖存儲器區(qū)塊,其中每一區(qū)塊包括路標記隨機存 取存儲器102Q、 102!、 1022或1023和一路validj it指示符104q、 10^、 1042或1043。如 在圖6B中最佳看到,每一區(qū)塊進一步包括一路數(shù)據(jù)隨機存取存儲器120o、 120!、 1202 或1203。每一區(qū)塊還表示完整的"高速緩沖存儲器線"。動態(tài)可配置紋理高速緩沖存儲器44由n個"高速緩沖存儲器線"組成。通過索引 選擇每一高速緩沖存儲器線。高速緩沖存儲器44是3D固線式管線與主(外部)存儲器 40之間的存儲器層級的一級。當3D圖形管線60將地址發(fā)送到主(外部)存儲器40以 讀回紋素時,3D圖形管線60首先檢查數(shù)據(jù)(紋素)是否在動態(tài)可配置紋理高速緩沖存 儲器44內(nèi)。將所述地址劃分成表示為INDEX[3:0]的索引,其用于選擇高速緩沖存儲 器線;以及表示為TAGJN的標記字段,其用于與高速緩沖存儲器的標記字段的值進行 比較。如果存在匹配,則其意味著內(nèi)容在高速緩沖存儲器44內(nèi),且具體來說,在具有 所述匹配的高速緩沖存儲器線內(nèi)。在典型高速緩沖存儲器中,每一高速緩沖存儲器線具有一有效位指示符。在所述示 范性實施例中,有效位的值包括1) Valid_bit= "1"意味著有效內(nèi)容存儲于此高速緩沖 存儲器線中;以及2) Valid—bit= "0"意味著高速緩沖存儲器線是空的。所述有效位由 寄存器實施,且由重置信號初始化為"0"。有效位指示符與每一相應路標記隨機存取存儲器102Q、 102卜1022和1023相關(guān)聯(lián)。 因此,way0標記隨機存取存儲器102q使way0 valid—bit指示符104。與其相關(guān)聯(lián)。wayl 標記隨機存取存儲器102!使wayl valid_bit指示符104i與其相關(guān)聯(lián)。way2標記隨機存 取存儲器1022使way2 valid—bit指示符1042與其相關(guān)聯(lián)。way3標記隨機存取存儲器1023 使way3 valid_bit指示符1043與其相關(guān)聯(lián)。valid_bit指示符指示進入高速緩沖存儲器44 中的給定條目含有有效數(shù)據(jù)。路valid—bit指示符1040、 104,、 1042和1043分別產(chǎn)生線 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的輸出。數(shù)字2 (在標示為106的框中)表示兩位信號。線L8上的輸出環(huán) 回到路選擇位108。路更新解碼器112輸出線L12、 L14、 L16和U8上的控制位(展示 為點線)以選擇n路關(guān)聯(lián)組中的一者。路更新解碼器112接收線L10上的兩位信號,且 產(chǎn)生一位信號,以選擇n個區(qū)塊或路標記隨機存取存儲器102Q、 102卜1022和1023和/ 或圖6B中所示的高速緩沖存儲器線的路數(shù)據(jù)隨機存取存儲器120Q、 120b 1202和1203 中的任一者。當在高速緩沖存儲器44中發(fā)生未命中時,所請求的數(shù)據(jù)應進入一個高速緩沖存儲 器線,且必須替換占據(jù)那個高速緩沖存儲器線的數(shù)據(jù)。在n路關(guān)聯(lián)高速緩沖存儲器中, (n)個數(shù)據(jù)隨機存取存儲器120G、 120,、 1202和1203的選擇用于放置所請求的數(shù)據(jù)。路選擇器106將從n路中拾取待替換的高速緩沖存儲器線。路valid—bit指示符1040、 104,、 1042和1043的輸出分別產(chǎn)生線L30、 L31、 L32和 L33上的輸出,其分別被發(fā)送到比較器114Q、 114,、 1142和1143。另外,線L20、 L21、 L22和L23上來自路標記隨機存取存儲器102Q、 102!、 1022和1023的輸出分別被發(fā)送到 比較器114Q、 114!、 1142和1143。比較器1140、 114!、 1142和1143還接收從線L2輸入 的TAG—IN。在線L20、 L2K L22和L23上的分別來自標記隨機存取存儲器102。、 102,、 1022 和1023的4 (n-4)個可能標記內(nèi)容與傳入的像素標記TAG_IN之間執(zhí)行由比較器1140、 114!、 1142和1143進行的比較。如果來自比較器114o、 114,、 1142和1143的四個比較中 的一者產(chǎn)生匹配,則此匹配暗示高速緩沖存儲器命中。因此,線L50上的來自操作數(shù)116 的輸出表示高速緩沖存儲器命中。以實例的方式,將操作數(shù)116表示為"與"門。否則, 如果無匹配,則線L50上的來自操作數(shù)116的輸出表示高速緩沖存儲器未命中。比較器 1140、 114,、 1142和1143輸出線L40、 L41、 L42和L43上的其相應比較的結(jié)果,所述結(jié) 果被饋送到操作數(shù)門116的輸入。操作數(shù)門116還接收線L6上的表示activej3it的輸入。 如果線L50上的來自操作數(shù)116的輸出表示未命中,則所述輸出為發(fā)送到獲取控制器48 的獲取請求。獲取控制器48接著經(jīng)由總線或數(shù)據(jù)線DL通信以從主(外部)存儲器40 檢索必需的紋理圖數(shù)據(jù)。然而,如果線L30、 L31、 L32、 L33中的任一者上的Valid_bit為"0",則不使用與 那個ValidJ)it相關(guān)聯(lián)的比較。特定參看圖6B,當存在由高速緩沖存儲器線或區(qū)塊中的任一者進行的高速緩沖存 儲器命中時,分別在線L70、 L71、 L72或L73中的一者上從對應路數(shù)據(jù)隨機存取存儲 器120D、 120^ 1202或1203讀出所請求的紋理數(shù)據(jù)。將線L70、 L71、 L72或L73上的 輸出紋理數(shù)據(jù)發(fā)送到多路復用器122。在線L80上將來自多路復用器122的輸出發(fā)送到 紋理映射引擎66A。線L10上的來自路選擇器106的輸出用于控制多路復用器122。每一路數(shù)據(jù)隨機存 取存儲器120。、 12(h、 1202或1203被填充有線Ll上的來自主(外部)存儲器40的對應 紋理圖數(shù)據(jù)。線L6上的ActiveJ)it特定用于3D圖形管線60中。有時,像素不需要紋理查找。 在此特定情況下,線L6上的有效位也被設置到"0"。因此,高速緩沖存儲器44將不對 此像素進行操作。當紋理映射引擎66A處于多紋理模式下時,批B中的像素(表示為PIXELB1、PIXELB2、 ...PIXELbx)從多個不同紋理圖TM獲取紋素?,F(xiàn)參看圖5B,展示在多紋理模式下的批的框圖。在示范性實施例中,多紋理模式 與兩個紋理圖有關(guān)。然而,可使用兩個或兩個以上紋理圖。對于兩個紋理批來說,像素 PIXELB1、 PIXELB2、 ...PIXELbx中的每一者從兩(2)個不同紋理圖獲取紋素(其中X 等于所述批中像素的數(shù)目)。每一像素PIXELm、 PIXELB2、 ...PIXELBx產(chǎn)生第一紋理地 址字段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下的動態(tài)可配置紋理高速緩沖存儲器44的 示意圖。高速緩沖存儲器的組關(guān)聯(lián)為圖6A-6B的4路(n=4),其被分裂或劃分以產(chǎn)生兩 個2路組關(guān)聯(lián)子高速緩沖存儲器C0和Cl。因此,存在由子高速緩沖存儲器CO中的一 個索引Tex 0 INDEX[3:0]選出的兩個條目。同樣,存在由子高速緩沖存儲器Cl中的一 個索引Tex 1 INDEX[3:0]選出的兩個條目。子高速緩沖存儲器CO包括兩個路,"wayO" 和"wayl"。子高速緩沖存儲器CO具有至少兩個高速緩沖存儲器區(qū)塊,wayO和wayl。 wayO區(qū)塊包括TexO wayO標記隨機存取存儲器202(x),且wayl區(qū)塊包括TexO wayl標記 隨機存取存儲器202Q1。每一區(qū)塊wayO和wayl進一步包括wayO valid—bit指示符20400 和waylvalidj)it指示符204( (其中下標的第一位表示紋理圖且第二位表示路)。子高 速緩沖存儲器Cl包括2路("wayO"和"wayl")。子高速緩沖存儲器Cl具有兩個區(qū)塊, wayO區(qū)塊和wayl區(qū)塊。wayO區(qū)塊包括Texl wayO標記隨機存取存儲器2021(),且wayl 區(qū)塊具有Texl wayl標記隨機存取存儲器202u。子高速緩沖存儲器Cl的wayO區(qū)塊進 一步包括wayO valid—bit指示符2041(),且wayl區(qū)塊具有wayl valid—bit指示符204n 。valid—bit指示符指示進入子高速緩沖存儲器CO或Cl中的給定條目含有有效數(shù)據(jù)。 wayO valid—bit指示符204(k)、 20401分別產(chǎn)生線L300、 L31o上輸出。wayl valid_bit指示 符204,o、 204u分別產(chǎn)生線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的輸出分別產(chǎn)生線L30f)、 L31o上的輸出,所述輸出分 別被發(fā)送到比較器214QQ、 214Q1。另外,線L20Q、 L21o上的來自子高速緩沖存儲器CO 的標記隨機存取存儲器202(k)、 202(n的輸出分別被發(fā)送到比較器214QQ、 21401。比較器 2140()、 214(h還接收TEXO TAG_IN。然而,如果線L30(j、 L31Q、 L3(^或L31,中的任一者上的Valid—bit為"0",則不使 用與那個Valid_bit相關(guān)聯(lián)的比較。此外,線L6上的Active—bit特定用于3D圖形管線 60中且以與上述方式相同的方式起作用。在線L20Q、 L21o上的分別來自子高速緩沖存儲器CO的2路標記隨機存取存儲器 20200、 20201的兩個可能標記內(nèi)容與傳入的像素標記TEXO TAG_IN之間執(zhí)行由比較器 214QQ、 214(h進行的比較。如果來自比較器214(k)、 214Q1的兩個比較中的一者產(chǎn)生匹配, 則此匹配暗示子高速緩沖存儲器命中。因此,線L50o上的來自操作數(shù)216o的輸出表示 子高速緩沖存儲器命中。以實例的方式,將操作數(shù)216o表示為"與"門。否則,線L50() 上的來自操作數(shù)門216o的輸出表示高速緩沖存儲器未命中。比較器214(k)、 214( 輸出線 L40Q、 L41o上的其相應比較的結(jié)果,所述結(jié)果被饋送到操作數(shù)門216o的輸入。操作數(shù)門 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的輸出分別產(chǎn)生線L30h L31!上的輸出,所述輸出 分別被發(fā)送到比較器2141{)、 214u。另夕卜,線L20" L2h上的來自子高速緩沖存儲器Cl 的標記隨機存取存儲器2021()、 202u的輸出分別被發(fā)送到比較器2141()、 214u。比較器 21410、 2"u也接收Texl TAGJN。在線L20,、 L21,上的分別來自子高速緩沖存儲器Cl的2路標記隨機存取存儲器 2021()、 202u的2個可能標記內(nèi)容與傳入的像素標記TEX1 TAG—IN之間執(zhí)行由比較器 2141Q、 214u進行的比較。如果來自比較器2141()、 214"的兩個比較中的一者產(chǎn)生匹配, 則此匹配暗示子高速緩沖存儲器命中。因此,線L50!上的來自"與"門216t的輸出表 示子高速緩沖存儲器命中。否則,線L50!上的來自操作數(shù)門216i的輸出表示子高速緩 沖存儲器未命中。比較器2141()、 214u輸出線L4(h、 L4h上的其相應比較的結(jié)果,所述結(jié)果被饋送到操作數(shù)門216,的輸入。操作數(shù)門216o還接收線L6上的表示active_bit的輸入。在最終級中,子高速緩沖存儲器CO和子高速緩沖存儲器Cl的輸出是多路復用器 218的輸入。多路復用器218對線L50o和L50,上的輸出進行多路復用以形成線L60上 的新的經(jīng)多路復用的輸出。線L60上的輸出表示發(fā)送到獲取控制器48的獲取請求。所 述經(jīng)多路復用的輸出一次發(fā)送一個獲取請求。特定參看圖7B,當存在由子高速緩沖存儲器CO或Cl的高速緩沖存儲器線或區(qū)塊 中的任一者進行的高速緩沖存儲器命中時,分別在線L70。、 L71o或L70,、 L71)中的一 者上從對應路數(shù)據(jù)隨機存取存儲器220Q()、 220(m或220h)、 220 讀出所請求的紋理數(shù)據(jù)。 將子高速緩沖存儲器CO中的線L70o、 L71o上的輸出紋理數(shù)據(jù)發(fā)送到多路復用器2220。 將子高速緩沖存儲器C1中的線L70h L7h上的輸出紋理數(shù)據(jù)發(fā)送到多路復用器222" 將線L80o和L80上的分別來自多路復用器222o和222,的輸出當作多個紋理圖發(fā)送到紋 理映射引擎66A。線L10o上的來自路選擇器206o的輸出用于控制多路復用器2220。同樣,線L10,上 的來自路選擇器206i的輸出用于控制多路復用器222卜每一路數(shù)據(jù)隨機存取存儲器 220Q、 220!、 1203被填充有線Ll上的來自主(外部)存儲器40的對應紋理圖數(shù)據(jù)。表 示為210Q、 210,的反相器使在反饋線L8o和L8i上發(fā)送的位反相。反饋線L8o和L8,經(jīng) 耦合以將經(jīng)反相的位分別環(huán)回到路選擇器2060、206i的TexO路選擇位208Q和Texl路選 擇位208i。上述實施例,動態(tài)可配置紋理高速緩沖存儲器44可容易地配置以使用一個高速緩 沖存儲器來優(yōu)化單紋理模式100和多紋理模式200中的一者下的紋理映射引擎66A。此 外, 一般不出現(xiàn)沖突性未命中。此外,兩個(M=2)或兩個以上紋理圖TM將不彼此對 沖和/或產(chǎn)生冗余存儲器業(yè)務。描述動態(tài)可配置紋理高速緩沖存儲器44 (例如,可重配置的n路組關(guān)聯(lián)紋理高速緩 沖存儲器)的每一可能配置受到抑制。然而,高速緩沖存儲器44當在多紋理模式200 下時應經(jīng)配置以具有專用于每一紋理圖的n/M組關(guān)聯(lián)紋理子高速緩沖存儲器。n和M為 大于一 (1)的整數(shù),且n可被M除盡。M的值可為紋理圖的數(shù)目。在所述實例中,M 為提供兩(2)個子高速緩沖存儲器的二 (2),每一子高速緩沖存儲器專用于所述兩個 紋理圖中的相應一者。在一個或一個以上示范性實施例中,可以硬件、軟件、固件或其任一組合來實施所 描述的功能。如果以軟件來實施,則所述功能可作為一個或一個以上指令或代碼而存儲于計算機可讀媒體上或經(jīng)由計算機可讀媒體傳輸。計算機可讀媒體包括計算機存儲媒體 和通信媒體,通信媒體包括促進將計算機程序從一個地方轉(zhuǎn)移到另一地方的任何媒體。 存儲媒體可為可由計算機存取的任何可用媒體。以實例而不限制的方式,此計算機可讀 媒體可包含RAM、 ROM、 EEPROM、 CD-ROM或其它光盤存儲裝置、磁盤存儲裝置或 其它磁性存儲裝置,或可用于載運或存儲呈指令或數(shù)據(jù)結(jié)構(gòu)的形式的所要程序代碼和可 通過計算機存取的任何其它媒體。而且,將任何連接合適地稱作計算機可讀媒體。舉例 來說,如果使用同軸電纜、光纖電纜、雙絞線、數(shù)字訂戶線(DSL)或例如紅外、無線 電和微波等無線技術(shù)從網(wǎng)站、服務器,或其它遠程源傳輸軟件,則所述同軸電纜、光纖 電纜、雙絞線、DSL,或例如紅外、無線電和微波等無線技術(shù)包括于媒體的定義中。如 本文所使用,磁盤和光盤包括壓縮光盤(CD)、激光光盤、光盤、數(shù)字通用光盤(DVD)、 軟盤和藍光光盤,其中磁盤通常以磁性方式再現(xiàn)數(shù)據(jù),而光盤使用激光以光學方式再現(xiàn) 數(shù)據(jù)。上述各物的組合也應包括于計算機可讀媒體的范圍內(nèi)。提供對所揭示實施例的先前描述以使所屬領域的技術(shù)人員能夠制造或使用本發(fā)明。 所屬領域的技術(shù)人員將容易明白對這些實施例的各種修改,且在未脫離本發(fā)明的精神或 范圍的情況下可將本文中所界定的一般原理應用于其它實施例。因此,本發(fā)明不意欲限 于本文中所示的實施例,而是將賦予本發(fā)明與本文中所揭示的原理和新穎特征一致的最 廣泛范圍。
權(quán)利要求
1.一種圖形處理單元,其包含驅(qū)動器,其可操作以確定為選定應用程序是啟用單紋理映射還是啟用多紋理映射;以及動態(tài)可配置高速緩沖存儲器,其在所述單紋理映射被啟用時具有對應于n路組關(guān)聯(lián)紋理高速緩沖存儲器的第一配置,且在所述多紋理映射被啟用時具有對應于一組n/M路組關(guān)聯(lián)子高速緩沖存儲器的第二配置,其中n和M為大于1的整數(shù),且n可被M除盡。
2. 根據(jù)權(quán)利要求1所述的圖形處理單元,其中n為4,且M為2。
3. 根據(jù)權(quán)利要求1所述的圖形處理單元,其中在所述多紋理映射期間,所述組n/M路 組關(guān)聯(lián)子高速緩沖存儲器中的相應一個子高速緩沖存儲器專用于相應一個紋理圖。
4. 根據(jù)權(quán)利要求3所述的圖形處理單元,其中所述n路組關(guān)聯(lián)紋理高速緩沖存儲器包 括n個高速緩沖存儲器區(qū)塊,其操作以存儲紋理數(shù)據(jù);操作數(shù),其用于在所述n 個高速緩沖存儲器區(qū)塊的所有n個標記輸出表示所請求的紋理數(shù)據(jù)的未命中時產(chǎn) 生獲取命令;以及多路復用器,其操作以從所述n個高速緩沖存儲器區(qū)塊輸出所述 所請求的紋理數(shù)據(jù)。
5. 根據(jù)權(quán)利要求3所述的圖形處理單元,其中所述組n/M路組關(guān)聯(lián)子高速緩沖存儲 器中的每一子高速緩沖存儲器包括多個子高速緩沖存儲器區(qū)塊,其操作以存儲用 于對應一個紋理圖的紋理數(shù)據(jù);以及操作數(shù),其用于在所述多個子高速緩沖存儲器區(qū)塊的所有輸出表示所請求的紋理數(shù)據(jù)的未命中時產(chǎn)生獲取命令輸出;且所述組 n/M路組關(guān)聯(lián)子高速緩沖存儲器包括多路復用器,以對所述每一子高速緩沖存儲器 的所述獲取命令輸出進行多路復用。
6. 根據(jù)權(quán)利要求5所述的圖形處理單元,其中所述組n/M路組關(guān)聯(lián)子高速緩沖存儲 器中的每一子高速緩沖存儲器進一步包括多路復用器,其操作以從所述多個子高速緩沖存儲器區(qū)塊輸出所述所請求的數(shù)據(jù)。
7. —種集成電路,其包含驅(qū)動器,其可操作以確定為選定應用程序是啟用單紋理映射還是啟用多紋理映射;以及動態(tài)可配置高速緩沖存儲器,其在所述單紋理映射被啟用時具有對應于n路組關(guān) 聯(lián)紋理高速緩沖存儲器的第一配置,且在所述多紋理映射被啟用時具有對應于一組 n/M路組關(guān)聯(lián)子高速緩沖存儲器的第二配置,其中n和M為大于1的整數(shù),且n 可被M除盡。
8. 根據(jù)權(quán)利要求7所述的集成電路,其中n為4,且M為2。
9. 根據(jù)權(quán)利要求7所述的集成電路,其中在所述多紋理映射期間,所述組n/M路組 關(guān)聯(lián)子高速緩沖存儲器中的相應一個子高速緩沖存儲器專用于相應一個紋理圖。
10. 根據(jù)權(quán)利要求9所述的集成電路,其中所述n路組關(guān)聯(lián)紋理高速緩沖存儲器包括 n個高速緩沖存儲器區(qū)塊,其操作以存儲紋理數(shù)據(jù);操作數(shù),其用于在所述n個高 速緩沖存儲器區(qū)塊的所有n個標記輸出表示所請求的紋理數(shù)據(jù)的未命中時產(chǎn)生獲 取命令;以及多路復用器,其操作以從所述n個高速緩沖存儲器區(qū)塊輸出所述所請 求的紋理數(shù)據(jù)。
11. 根據(jù)權(quán)利要求9所述的集成電路,其中所述組n/M路組關(guān)聯(lián)子高速緩沖存儲器中 的每一子高速緩沖存儲器包括多個子高速緩沖存儲器區(qū)塊,其操作以存儲用于對 應一個紋理圖的紋理數(shù)據(jù);以及操作數(shù),其用于在所述多個子高速緩沖存儲器區(qū)塊 的所有輸出表示所請求的紋理數(shù)據(jù)的未命中時產(chǎn)生獲取命令輸出;且所述組n/M路 組關(guān)聯(lián)子高速緩沖存儲器包括多路復用器,以用于對所述每一子高速緩沖存儲器的 所述獲取命令輸出進行多路復用。
12. 根據(jù)權(quán)利要求11所述的集成電路,其中所述組n/M路組關(guān)聯(lián)子高速緩沖存儲器中 的每一子高速緩沖存儲器進一步包括多路復用器,其操作以從所述多個子高速緩 沖存儲器區(qū)塊輸出所述所請求的數(shù)據(jù)。
13. —種處理器,其包含圖形處理單元,其具有動態(tài)可配置高速緩沖存儲器,所述動態(tài)可配置高速緩沖存 儲器在單紋理映射模式被啟用時具有對應于n路組關(guān)聯(lián)紋理高速緩沖存儲器的第 一配置,且在多紋理映射模式被啟用時具有對應于一組n/M路組關(guān)聯(lián)子高速緩沖 存儲器的第二配置,其中n和M為大于1的整數(shù),且n可被M除盡;以及存儲器,其耦合到所述圖形處理單元。
14. 根據(jù)權(quán)利要求13所述的處理器,其中n為4,且M為2。
15. 根據(jù)權(quán)利要求13所述的處理器,其中在所述多紋理映射期間,所述組n/M路組關(guān) 聯(lián)子高速緩沖存儲器中的相應一個子高速緩沖存儲器專用于相應一個紋理圖。
16. 根據(jù)權(quán)利要求15所述的處理器,其中所述n路組關(guān)聯(lián)紋理高速緩沖存儲器包括n 個高速緩沖存儲器區(qū)塊,其操作以存儲紋理數(shù)據(jù);操作數(shù),其用于在所述n個高速 緩沖存儲器區(qū)塊的所有n個標記輸出表示所請求的紋理數(shù)據(jù)的未命中時產(chǎn)生獲取 命令;以及多路復用器,其操作以從所述n個高速緩沖存儲器區(qū)塊輸出所述所請求 的紋理數(shù)據(jù)。
17. 根據(jù)權(quán)利要求15所述的處理器,其中所述組n/M路組關(guān)聯(lián)子高速緩沖存儲器中的 每一子高速緩沖存儲器包括多個子高速緩沖存儲器區(qū)塊,其操作以存儲用于對應 一個紋理圖的紋理數(shù)據(jù);以及操作數(shù),其用于在所述多個子高速緩沖存儲器區(qū)塊的 所有輸出表示所請求的紋理數(shù)據(jù)的未命中時產(chǎn)生獲取命令輸出;且所述組n/M路 組關(guān)聯(lián)子高速緩沖存儲器包括多路復用器,以對所述每一子高速緩沖存儲器的所述 獲取命令輸出進行多路復用。
18. 根據(jù)權(quán)利要求17所述的處理器,其中所述組n/M路組關(guān)聯(lián)子高速緩沖存儲器中的 每一子高速緩沖存儲器進一步包括多路復用器,其操作以從所述多個子高速緩沖 存儲器區(qū)塊輸出所述所請求的數(shù)據(jù)。
19. 一種無線裝置,其包含圖形處理單元,其具有動態(tài)可配置高速緩沖存儲器,所述動態(tài)可配置高速緩沖存 儲器在單紋理映射模式被啟用時具有對應于n路組關(guān)聯(lián)紋理高速緩沖存儲器的第一配置,且在多紋理映射模式被啟用時具有對應于一組n/M路組關(guān)聯(lián)子高速緩沖 存儲器的第二配置,其中n和M為大于1的整數(shù),且n可被M除盡;以及 存儲器,其耦合到所述圖形處理單元。
20. 根據(jù)權(quán)利要求19所述的裝置,其中n為4,且M為2。
21. 根據(jù)權(quán)利要求19所述的裝置,其中在所述多紋理映射期間,所述組n/M路組關(guān)聯(lián) 子高速緩沖存儲器中的相應一個子高速緩沖存儲器專用于相應一個紋理圖。
22. 根據(jù)權(quán)利要求21所述的裝置,其中所述n路組關(guān)聯(lián)紋理高速緩沖存儲器包括n 個高速緩沖存儲器區(qū)塊,其操作以存儲紋理數(shù)據(jù);操作數(shù),其用于在所述n個高速 緩沖存儲器區(qū)塊的所有n個標記輸出表示所請求的紋理數(shù)據(jù)的未命中時產(chǎn)生獲取 命令;以及多路復用器,其操作以從所述n個高速緩沖存儲器區(qū)塊輸出所述所請求 的紋理數(shù)據(jù)。
23. 根據(jù)權(quán)利要求21所述的裝置,其中所述組n/M路組關(guān)聯(lián)子高速緩沖存儲器中的每 一子高速緩沖存儲器包括多個子高速緩沖存儲器區(qū)塊,其操作以存儲對應一個紋 理圖的紋理數(shù)據(jù);以及操作數(shù),其用于在所述多個子高速緩沖存儲器區(qū)塊的所有輸 出表示所請求的紋理數(shù)據(jù)的未命中時產(chǎn)生獲取命令輸出;且所述組n/M路組關(guān)聯(lián) 子高速緩沖存儲器包括多路復用器,以對所述每一子高速緩沖存儲器的所述獲取命 令輸出進行多路復用。
24. 根據(jù)權(quán)利要求23所述的裝置,其中所述組n/M路組關(guān)聯(lián)子高速緩沖存儲器中的所 述每一子高速緩沖存儲器進一步包括多路復用器,其操作以從所述多個子高速緩 沖存儲器區(qū)塊輸出所述所請求的數(shù)據(jù)。
25. —種包括計算機可讀媒體的計算機程序產(chǎn)品,所述計算機可讀媒體具有用于致使計 算機執(zhí)行以下操作的指令確定選定應用程序是使單紋理映射被啟用還是多紋理映射被啟用; 當所述單紋理映射被啟用時,配置n路組關(guān)聯(lián)紋理高速緩沖存儲器;以及 當所述多紋理映射被啟用時,將所述n路組關(guān)聯(lián)紋理高速緩沖存儲器劃分成一組M個n/M路組關(guān)聯(lián)子高速緩沖存儲器,其中n和M為大于1的整數(shù),n可被M除 盡,且M對應于紋理圖的數(shù)目。
26. —種方法,其包含確定選定應用程序是使單紋理映射被啟用還是多紋理映射被啟用; 當所述單紋理映射被啟用時,配置n路組關(guān)聯(lián)紋理高速緩沖存儲器;以及 當所述多紋理映射被啟用時,將所述n路組關(guān)聯(lián)紋理高速緩沖存儲器劃分成一組M個n/M路組關(guān)聯(lián)子高速緩沖存儲器,其中n和M為大于1的整數(shù),n可被M除盡,且M對應于紋理圖的數(shù)目。
全文摘要
本發(fā)明揭示用于動態(tài)地配置紋理高速緩沖存儲器的技術(shù)。在三維(3D)圖形管線的紋理映射過程期間,如果批是用于單紋理映射,則將所述紋理高速緩沖存儲器配置成n路組關(guān)聯(lián)紋理高速緩沖存儲器。然而,如果所述批是用于多紋理映射,則將所述n路組關(guān)聯(lián)紋理高速緩沖存儲器劃分成n/M路組關(guān)聯(lián)子高速緩沖存儲器,其中n和M為大于1的整數(shù),且n可被M除盡。
文檔編號G06F12/08GK101583929SQ200880001639
公開日2009年11月18日 申請日期2008年2月20日 優(yōu)先權(quán)日2007年2月22日
發(fā)明者春 于 申請人:高通股份有限公司