專利名稱:用于萬用數(shù)據(jù)寫入單元的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明的實(shí)施例涉及圖形處理器。更具體地說,本發(fā)明的實(shí)施例涉及用于在3-D圖形管線中的包括(例如)一般高速緩沖存儲(chǔ)器的萬用數(shù)據(jù)寫入單元的方法和系統(tǒng)。
背景技術(shù):
三維圖形圖像的渲染在多種電子游戲和其它應(yīng)用中受到關(guān)注。渲染是描述從三維物體的數(shù)據(jù)庫(kù)表示轉(zhuǎn)變?yōu)樗鑫矬w在視圖表面上的二維投影的整個(gè)多步驟處理的通稱。
渲染處理包含若干步驟,例如建立含有隨后著色/紋理處理所需的信息的多邊形模型;向所述多邊網(wǎng)格模型施加線性變換;剔除(culling)背面朝向的多邊形;相對(duì)于視窗體來裁剪多邊形;將多邊形掃描轉(zhuǎn)換/光柵化為像素坐標(biāo)系;和使用內(nèi)插或遞增著色技術(shù)來著色/照明個(gè)別像素。
圖形處理單元(GPU)是通常用于圖形系統(tǒng)以加速3-D渲染應(yīng)用程序運(yùn)行的專用集成電路裝置。GPU通常與中央處理單元(CPU)結(jié)合使用以為在計(jì)算機(jī)系統(tǒng)上執(zhí)行的一個(gè)或一個(gè)以上應(yīng)用程序產(chǎn)生三維圖像?,F(xiàn)代GPU通常利用圖形管線來處理數(shù)據(jù)。
現(xiàn)有技術(shù)圖1展示描繪傳統(tǒng)現(xiàn)有技術(shù)管線100的各個(gè)級(jí)的圖。所述管線100是具有專用于執(zhí)行特定功能的各級(jí)的常規(guī)“深”管線,。變換級(jí)105執(zhí)行基元的幾何計(jì)算且可執(zhí)行裁剪操作。設(shè)置/光柵級(jí)110將基元光柵化。紋理尋址115和紋理拾取120級(jí)用于紋理貼圖。霧化級(jí)130實(shí)施霧化算法。α測(cè)試級(jí)135執(zhí)行α測(cè)試。深度測(cè)試140執(zhí)行深度測(cè)試以剔除被遮擋的像素。α摻合級(jí)145執(zhí)行α摻合色彩組合算法。存儲(chǔ)器寫入級(jí)150寫入管線的輸出。
圖1中所說明的傳統(tǒng)GPU管線結(jié)構(gòu)的各級(jí)通常通過使用廣泛實(shí)施的圖形編程API(應(yīng)用程序編程接口)(例如OpenGLTM圖形語言、Direct3DTM等)來為高速渲染操作(例如,紋理、照明、著色等)而最佳化。管線100的結(jié)構(gòu)被配置為多級(jí)深管線結(jié)構(gòu),以使得管線的整體渲染處理量最大化。一般來說,深管線結(jié)構(gòu)具有足夠的數(shù)據(jù)處理量(例如,像素填充率等)以實(shí)施更加復(fù)雜的場(chǎng)景的快速、高質(zhì)量渲染。
在便攜手持式裝置中使用三維(3-D)圖形正越來越受到關(guān)注,在這類裝置中,成本和功率消耗是重要的設(shè)計(jì)要求。此類裝置包括(例如)無線電話、個(gè)人數(shù)字助理(PDA)和類似物。然而,傳統(tǒng)深管線結(jié)構(gòu)需要相當(dāng)大的芯片面積,從而導(dǎo)致成本高出期望成本。另外,即使各級(jí)正執(zhí)行相對(duì)較少的處理,深管線也會(huì)消耗相當(dāng)大的功率。這是因?yàn)樵S多級(jí)不管是否正在處理像素都會(huì)消耗大致相等量的功率。
由于考慮到成本和功率,圖1中所說明的常規(guī)深管線結(jié)構(gòu)不適用于很多圖形應(yīng)用,例如在無線電話和PDA上實(shí)施三維游戲。因此,需要一種適用于圖形處理應(yīng)用但具有降低的功率和尺寸要求的處理器結(jié)構(gòu)。
在常規(guī)GPU中,深度數(shù)據(jù)和色彩數(shù)據(jù)以及紋理坐標(biāo)的計(jì)算可為硬編碼的。即,GPU管線結(jié)構(gòu)的部分在功能上是固定的。因此,來自GPU管線結(jié)構(gòu)的結(jié)果存儲(chǔ)在與各自深度、色彩或紋理坐標(biāo)數(shù)據(jù)相關(guān)聯(lián)的特定緩沖器中,且在每個(gè)級(jí)處具有特定數(shù)據(jù)寫入功能。因此,GPU的應(yīng)用受到軟件工程師的限制。
另外,常規(guī)GPU可在逐像素和逐級(jí)基礎(chǔ)上將深度、色彩或各種紋理坐標(biāo)數(shù)據(jù)寫入到系統(tǒng)存儲(chǔ)器。對(duì)于低功率和小屏幕尺寸的手持式裝置來說,此逐像素傳送可在數(shù)據(jù)傳送中呈現(xiàn)瓶頸,因?yàn)橄袼匦畔⒌拇笮⊥ǔ1粶p小以適應(yīng)手持式裝置。因此,GPU結(jié)構(gòu)的帶寬極為有限,且可減速對(duì)系統(tǒng)存儲(chǔ)器的讀取和寫入,從而減緩總體速度并增加GPU的功率消耗。
發(fā)明內(nèi)容
因此,本發(fā)明在各種實(shí)施例中提供一種用于在3-D圖形管線中的包括一般緩沖存儲(chǔ)器的萬用數(shù)據(jù)寫入單元的系統(tǒng)和方法。本發(fā)明提供在功能性上靈活且萬用的通用或萬用可編程數(shù)據(jù)寫入級(jí)。另外,本發(fā)明提供數(shù)據(jù)寫入級(jí),其包括一般高速緩沖存儲(chǔ)器以支持通用可編程數(shù)據(jù)寫入級(jí)。另外,本發(fā)明提供具有任意大小的高速緩沖存儲(chǔ)器以增加數(shù)據(jù)寫入級(jí)處的3-D圖形管線的有效帶寬。此外,本發(fā)明提供通過行像素包序列來進(jìn)行像素?cái)?shù)據(jù)行轉(zhuǎn)送以減少借助于通過3-D圖形管線的隨后遍歷來處理像素包所需要的時(shí)鐘周期的數(shù)目。
本發(fā)明的實(shí)施例涉及用于在3-D圖形管線中的包括一般高速緩沖存儲(chǔ)器的數(shù)據(jù)寫入單元的系統(tǒng)和方法。具體地說,在一個(gè)實(shí)施例中,數(shù)據(jù)寫入單元包括一第一存儲(chǔ)器、復(fù)數(shù)個(gè)高速緩沖存儲(chǔ)器和一數(shù)據(jù)寫入電路。所述第一存儲(chǔ)器接收一可含有與像素相關(guān)聯(lián)的復(fù)數(shù)個(gè)信息行的像素包。所述像素包包括與像素的表面特征有關(guān)的數(shù)據(jù)。所述復(fù)數(shù)個(gè)高速緩沖存儲(chǔ)器耦合到第一存儲(chǔ)器以用于存儲(chǔ)與復(fù)數(shù)個(gè)像素的復(fù)數(shù)個(gè)表面特征相關(guān)聯(lián)的像素信息。復(fù)數(shù)個(gè)高速緩沖存儲(chǔ)器中的每一者均與一指定表面特征相關(guān)聯(lián)。數(shù)據(jù)寫入電路耦合到第一存儲(chǔ)器和復(fù)數(shù)個(gè)高速緩沖存儲(chǔ)器。數(shù)據(jù)寫入電路可在程序控制下操作以獲得像素包的指定部分以存儲(chǔ)到復(fù)數(shù)個(gè)高速緩沖存儲(chǔ)器中。高速緩沖存儲(chǔ)器被周期性地清洗到存儲(chǔ)器子系統(tǒng)。
數(shù)據(jù)寫入管線模塊是萬用的,因?yàn)槿魏晤愋偷谋砻嫣卣鲾?shù)據(jù)均可由所述模塊寫入,且所述模塊并非專用于任何一種類型的像素?cái)?shù)據(jù)。在一個(gè)實(shí)例中,數(shù)據(jù)寫入單元寫入與像素有關(guān)的色彩數(shù)據(jù)和深度數(shù)據(jù)兩者。
當(dāng)像素(例如)通過寫入到存儲(chǔ)器或因?yàn)樵趫D形管線內(nèi)某處被取消而從管線退離時(shí),數(shù)據(jù)寫入單元還向門監(jiān)單元和/或記分板單元(其為上游模塊)指示。
同樣,數(shù)據(jù)寫入單元對(duì)像素包執(zhí)行再循環(huán)功能。即,數(shù)據(jù)寫入單元使所有像素包再循環(huán)回到門監(jiān)單元(其為上游模塊)。門監(jiān)單元調(diào)節(jié)通過3-D圖形管線的像素包流,且能夠通過管線將像素包發(fā)送回來,或使像素包完全退離。
在另一實(shí)施例中,一種從圖形管線寫入數(shù)據(jù)的方法利用具有一般高速緩沖存儲(chǔ)器的數(shù)據(jù)寫入單元。所述方法通過接收與像素相關(guān)聯(lián)的像素包的一行來開始。像素包包括與像素的表面特征有關(guān)的數(shù)據(jù)。接著,所述方法的實(shí)施例存取所述行信息的第一指定部分。所述第一指定部分與像素的第一表面特征相關(guān)聯(lián)。所述方法的實(shí)施例接著將像素包的第一指定部分寫入到第一高速緩沖存儲(chǔ)器。第一高速緩沖存儲(chǔ)器用于存儲(chǔ)復(fù)數(shù)個(gè)像素的第一表面特征,例如色彩或深度信息(如可編程地選擇)。
在又一實(shí)施例中,描述用于支持手持式裝置的3-D圖形管線中的數(shù)據(jù)寫入單元。所述數(shù)據(jù)寫入單元包括第一存儲(chǔ)器,其用于接收與像素相關(guān)聯(lián)的像素包的至少一行像素信息。所述像素包包括與像素的表面特征有關(guān)的數(shù)據(jù)。數(shù)據(jù)寫入單元還包括第一高速緩沖存儲(chǔ)器,其用于存儲(chǔ)與復(fù)數(shù)個(gè)像素的第一表面特征相關(guān)聯(lián)的像素信息。數(shù)據(jù)寫入單元還包括第二高速緩沖存儲(chǔ)器,其用于存儲(chǔ)與復(fù)數(shù)個(gè)像素的第二表面特征相關(guān)聯(lián)的像素信息。數(shù)據(jù)寫入單元還包括數(shù)據(jù)寫入電路,其可在程序控制下操作以獲得第一行像素信息的第一指定部分以存儲(chǔ)到第一高速緩沖存儲(chǔ)器中。數(shù)據(jù)寫入單元可進(jìn)一步在程序控制下操作以獲得第二行像素信息的第二指定部分以存儲(chǔ)到所述第二高速緩沖存儲(chǔ)器中。
在本發(fā)明的各個(gè)實(shí)施例中,本發(fā)明可顯著減小手持式計(jì)算裝置上的圖形結(jié)構(gòu)的帶寬要求。另外,本發(fā)明減少手持式計(jì)算裝置上的圖形結(jié)構(gòu)的功率消耗。
并入本說明書中并形成本說明書的一部分的
了本發(fā)明的實(shí)施例,且連同描述內(nèi)容一起,用于闡釋本發(fā)明的原理現(xiàn)有技術(shù)圖1展示描繪傳統(tǒng)現(xiàn)有技術(shù)管線的各個(gè)級(jí)的圖。
圖2展示根據(jù)本發(fā)明一個(gè)實(shí)施例的計(jì)算機(jī)系統(tǒng)。
圖3展示根據(jù)本發(fā)明一個(gè)替代實(shí)施例的計(jì)算機(jī)系統(tǒng)。
圖4是根據(jù)本發(fā)明一個(gè)實(shí)施例說明包含可編程圖形處理器的組件的示范性方框圖。
圖5是根據(jù)本發(fā)明一個(gè)實(shí)施例的具有一般高速緩沖存儲(chǔ)器的示范性數(shù)據(jù)寫入單元的方框圖。
圖6是根據(jù)本發(fā)明一個(gè)實(shí)施例說明四個(gè)離散單元信息的有效負(fù)載的來自像素包的一示范性信息行的方框圖。
圖7是根據(jù)本發(fā)明一個(gè)實(shí)施例說明用于通過具有一般高速緩沖存儲(chǔ)器的可編程數(shù)據(jù)寫入單元來處理像素信息包的計(jì)算機(jī)實(shí)施的方法中的步驟的流程圖。
圖8A是根據(jù)本發(fā)明一個(gè)實(shí)施例的可編程數(shù)據(jù)寫入單元的一般高速緩沖存儲(chǔ)器的雙緩沖器特征的方框圖。
圖8B是根據(jù)本發(fā)明一個(gè)實(shí)施例的像素信息輸出字的方框圖。
圖9是根據(jù)本發(fā)明一個(gè)實(shí)施例說明像素包中的“取消”指定符的實(shí)施的方框圖。
圖10是根據(jù)本發(fā)明一個(gè)實(shí)施例說明行轉(zhuǎn)送數(shù)據(jù)的兩個(gè)像素包的交錯(cuò)行像素信息的示范性方框圖。
圖11是根據(jù)本發(fā)明一個(gè)實(shí)施例的能夠行轉(zhuǎn)送數(shù)據(jù)的示范性數(shù)據(jù)寫入單元的方框圖。
圖12是根據(jù)本發(fā)明一個(gè)實(shí)施例說明用于通過像素信息包的一序列行來行轉(zhuǎn)送數(shù)據(jù)的計(jì)算機(jī)實(shí)施的方法中的步驟的示范性流程圖。
圖13A是根據(jù)本發(fā)明一個(gè)實(shí)施例的在示范性像素信息包從3-D圖形管線第一次通過開始時(shí)示范性像素信息包的三個(gè)行的方框圖。
圖13B是根據(jù)本發(fā)明一個(gè)實(shí)施例說明在從3-D圖形管線第一次通過結(jié)束時(shí)在數(shù)據(jù)寫入單元處將數(shù)據(jù)從最后行轉(zhuǎn)送到第一行的圖13A的示范性像素包的三個(gè)行的方框圖。
圖13C是根據(jù)本發(fā)明一個(gè)實(shí)施例的圖13A的示范性像素包在從3-D圖形管線第二次通過開始時(shí)的三個(gè)行的方框圖。
具體實(shí)施例方式
現(xiàn)將詳細(xì)參考本發(fā)明的優(yōu)選實(shí)施例,其實(shí)例在附圖中說明。雖然將結(jié)合優(yōu)選實(shí)施例來描述本發(fā)明,但將了解,不希望將本發(fā)明限于這些實(shí)施例。相反地,本發(fā)明意欲涵蓋可包括在由所附權(quán)利要求書界定的本發(fā)明精神和范圍內(nèi)的替代物、修改和等效物。此外,在本發(fā)明實(shí)施例的以下詳細(xì)描述中,陳述大量具體細(xì)節(jié)以便提供對(duì)本發(fā)明的詳盡了解。然而,所屬領(lǐng)域的技術(shù)人員將了解,可在沒有這些具體細(xì)節(jié)的情況下實(shí)踐本發(fā)明。在其它例子中,并未詳細(xì)描述眾所周知的方法、程序、組件和電路,以便不會(huì)不必要地混淆本發(fā)明的實(shí)施例的方面。
一般來說,本發(fā)明的實(shí)施例通過提供功能方面靈活且萬用的通用可編程數(shù)據(jù)寫入級(jí)來降低三維(3-D)圖形管線的處理要求。此部分地通過提供包括一般高速緩沖存儲(chǔ)器的數(shù)據(jù)寫入級(jí)以支持具有多個(gè)像素?cái)?shù)據(jù)類型(例如,不同表面特征)的通用可編程數(shù)據(jù)寫入級(jí)來完成。另外,本發(fā)明提供具有任意大小的高速緩沖存儲(chǔ)器以增加數(shù)據(jù)寫入級(jí)處的3-D圖形管線的有效帶寬。此外,本發(fā)明提供通過像素包的行信息序列來對(duì)數(shù)據(jù)進(jìn)行像素?cái)?shù)據(jù)行轉(zhuǎn)送,以減少隨后從管線通過時(shí)經(jīng)由3-D圖形管線處理像素包所需的時(shí)鐘周期數(shù)目。這些成果導(dǎo)致處理速度增加、處理量增加且?guī)挏p小。下文進(jìn)一步描述本發(fā)明的符號(hào)和術(shù)語從計(jì)算機(jī)存儲(chǔ)器內(nèi)對(duì)數(shù)據(jù)位所進(jìn)行的操作的程序、步驟、邏輯塊、處理和其它符號(hào)表示的角度來展現(xiàn)以下詳細(xì)描述的某些部分。這些描述和表示是數(shù)據(jù)處理領(lǐng)域的技術(shù)人員用以將其作品實(shí)質(zhì)最有效地傳達(dá)給所屬領(lǐng)域的其他技術(shù)人員的方式。程序、計(jì)算機(jī)執(zhí)行的步驟、邏輯塊、處理等在此處且一般來說被認(rèn)為是導(dǎo)致希望結(jié)果的自相容步驟或指令序列。所述步驟是那些需要對(duì)物理量進(jìn)行物理操作的步驟。通常(盡管不必要),這些量采用能在計(jì)算機(jī)系統(tǒng)中存儲(chǔ)、傳送、組合、比較和以其它方式操作的電信號(hào)或磁信號(hào)的形式。已多次證實(shí)將這些信號(hào)稱為位、值、元素、符號(hào)、字符、項(xiàng)、數(shù)字或類似物是便利的,主要是因?yàn)槌R娪梅ǖ木壒省?br>
然而,應(yīng)記住所有這些和類似術(shù)語與適當(dāng)物理量相關(guān)聯(lián)且僅僅是應(yīng)用于這些量的便利標(biāo)記。除非另外特別規(guī)定(從以下論述中易見),否則理解為在本發(fā)明中使用例如“存取”或“接收”或“寫入”或“存儲(chǔ)”或“清洗”等術(shù)語的論述始終指代計(jì)算機(jī)系統(tǒng)(例如,圖2的計(jì)算機(jī)系統(tǒng)200)或類似電子計(jì)算裝置的行為和處理,其操作表示為計(jì)算機(jī)系統(tǒng)的寄存器和存儲(chǔ)器內(nèi)的物理(電子)量的數(shù)據(jù)并將其變換為類似地表示為計(jì)算機(jī)系統(tǒng)存儲(chǔ)器或寄存器或其它類似信息存儲(chǔ)、傳輸或顯示裝置內(nèi)的物理量的其它數(shù)據(jù)。
計(jì)算機(jī)系統(tǒng)平臺(tái)現(xiàn)參看圖2,其展示根據(jù)本發(fā)明一個(gè)實(shí)施例的計(jì)算機(jī)系統(tǒng)200。計(jì)算機(jī)系統(tǒng)200展示根據(jù)本發(fā)明一個(gè)實(shí)施例的計(jì)算機(jī)系統(tǒng)的組件,所述計(jì)算機(jī)系統(tǒng)提供用于實(shí)施本發(fā)明的某種基于軟件的功能性的執(zhí)行平臺(tái)。如圖2中描繪,計(jì)算機(jī)系統(tǒng)200包括通過主機(jī)接口202耦合到圖形處理器205的CPU201。主機(jī)接口202將在CPU201與圖形處理器205之間傳遞的數(shù)據(jù)和命令翻譯為其相應(yīng)格式。CPU201和圖形處理器205兩者均通過存儲(chǔ)控制器220耦合到存儲(chǔ)器221。在系統(tǒng)200實(shí)施例中,存儲(chǔ)器221是共享存儲(chǔ)器,這是指存儲(chǔ)器221藉此存儲(chǔ)用于CPU201和圖形處理器205兩者的指令和數(shù)據(jù)的性質(zhì)。通過存儲(chǔ)控制器220來存取共享存儲(chǔ)器221。共享存儲(chǔ)器221還存儲(chǔ)包含驅(qū)動(dòng)所耦合的顯示器225的視頻幀緩沖器的數(shù)據(jù)。
如上文所述,在一個(gè)實(shí)施例中,本發(fā)明的某些處理和步驟被實(shí)行為常駐于計(jì)算機(jī)系統(tǒng)(例如,系統(tǒng)200)的計(jì)算機(jī)可讀存儲(chǔ)器(例如,存儲(chǔ)器221)內(nèi)且由系統(tǒng)200的CPU201和圖形處理器205執(zhí)行的一系列指令(例如,軟件程序)。當(dāng)被執(zhí)行時(shí),所述指令致使計(jì)算機(jī)系統(tǒng)200實(shí)施如下文所述的本發(fā)明的功能性。
如圖2中所示,系統(tǒng)200展示實(shí)施本發(fā)明實(shí)施例的功能性的計(jì)算機(jī)系統(tǒng)平臺(tái)的基本組件。相應(yīng)地,系統(tǒng)200可實(shí)施為(例如)許多不同類型的便攜式手持式電子裝置。此類裝置可包括(例如)移動(dòng)式電話、PDA、手持式游戲裝置和類似物。在此類實(shí)施例中,將包括被設(shè)計(jì)成添加外圍總線、專用通信組件、用于專用IO裝置的支持件和類似物的組件。
另外,應(yīng)了解,盡管組件201到225在圖2中被描繪為離散組件,但所述組件201到225中的若干者可實(shí)施為單個(gè)單片集成電路裝置(例如,單個(gè)集成電路晶粒),其經(jīng)配置以利用由現(xiàn)代半導(dǎo)體制作工藝提供的高集成度。舉例來說,在一個(gè)實(shí)施例中,CPU201、主機(jī)接口202、圖形處理器205和存儲(chǔ)控制器220被制作為單個(gè)集成電路晶粒。
圖3展示根據(jù)本發(fā)明一個(gè)替代實(shí)施例的計(jì)算機(jī)系統(tǒng)300。計(jì)算機(jī)系統(tǒng)300大體上類似于圖2的計(jì)算機(jī)系統(tǒng)200。然而,計(jì)算機(jī)系統(tǒng)300使用具有專用系統(tǒng)存儲(chǔ)器321的處理器201和具有專用圖形存儲(chǔ)器322的圖形處理器205。在系統(tǒng)300實(shí)施例中,系統(tǒng)存儲(chǔ)器321存儲(chǔ)用于在CPU201上執(zhí)行的處理/線程的指令和數(shù)據(jù),且圖形存儲(chǔ)器322存儲(chǔ)用于那些在圖形處理器205上執(zhí)行的處理/線程的指令和數(shù)據(jù)。圖形存儲(chǔ)器322將數(shù)據(jù)存儲(chǔ)在驅(qū)動(dòng)顯示器225的視頻幀緩沖器(未圖示)中。如同圖2的計(jì)算機(jī)系統(tǒng)200一樣,計(jì)算機(jī)系統(tǒng)300的組件201到322中的一者或一者以上可集成到單個(gè)集成電路晶粒上。
圖4是說明根據(jù)本發(fā)明一個(gè)實(shí)施例的包含可編程圖形處理器205的組件的方框圖。在一個(gè)實(shí)施例中,可編程圖形處理器205說明3-D圖形管線。如圖4中所描繪,圖形處理器205包括設(shè)置級(jí)405、光柵級(jí)410、門監(jiān)級(jí)420、數(shù)據(jù)拾取級(jí)430、算術(shù)邏輯單元(ALU)管線440和數(shù)據(jù)寫入級(jí)455。在一個(gè)實(shí)施例中,可編程圖形處理器205包括若干ALU450,所述ALU450經(jīng)配置以執(zhí)行一著色器程序以實(shí)施多種不同3D圖形操作,例如紋理組合、霧化、α摻合、α測(cè)試或其它著色算法。然而,應(yīng)了解,在以下整個(gè)論述中,可編程圖形處理器205還可經(jīng)配置以執(zhí)行其它類型的處理操作。
設(shè)置級(jí)405從主機(jī)(例如在CPU201上運(yùn)行的軟件應(yīng)用程序)接收指令和圖形基元。在一個(gè)實(shí)施例中,設(shè)置級(jí)405對(duì)基元執(zhí)行坐標(biāo)(X形式)的幾何變換、裁剪和設(shè)置功能。設(shè)置單元取得3-D頂點(diǎn)信息(例如,x,y,z、色彩和/或紋理屬性等)且應(yīng)用用戶定義的視圖變換以為每個(gè)幾何基元(下文描述為三角形,因?yàn)榛ǔ1粚?shí)施為三角形)計(jì)算屏幕空間二維(2-D)坐標(biāo),所述二維坐標(biāo)接著被發(fā)送到光柵級(jí)410以像素化給定三角形。可包括一頂點(diǎn)緩沖器408以為由設(shè)置級(jí)405使用的頂點(diǎn)數(shù)據(jù)提供緩沖器。在一個(gè)實(shí)施例中,設(shè)置級(jí)405設(shè)置重心系數(shù)。在一個(gè)實(shí)施方案中,設(shè)置級(jí)405是支持32位IEEE浮點(diǎn)、SI5.16定點(diǎn)和壓縮.8格式的浮點(diǎn)超大指令字(Very Large Instruction Word,VLIW)機(jī)。
光柵級(jí)410從設(shè)置級(jí)405處接收關(guān)于待渲染(例如,轉(zhuǎn)換為像素)的三角形的頂點(diǎn)數(shù)據(jù)。光柵級(jí)410通過使用內(nèi)插來處理給定三角形的每個(gè)像素并確定需要對(duì)像素上執(zhí)行的作為渲染一部分的著色器處理操作,例如計(jì)算色彩、紋理和霧化操作。在一個(gè)實(shí)施例中,光柵級(jí)410計(jì)算像素包的重心系數(shù)。在重心坐標(biāo)系統(tǒng)中,相對(duì)于三角形的頂點(diǎn)來測(cè)量三角形中的距離。重心系數(shù)的使用減小了所需動(dòng)態(tài)范圍,這允許使用比浮點(diǎn)計(jì)算需要更小功率的定點(diǎn)計(jì)算。
光柵級(jí)410為待處理的三角形的每個(gè)像素產(chǎn)生至少一個(gè)像素包。每個(gè)像素包包括處理所需的一有效負(fù)荷的像素屬性(例如,色彩、紋理、深度、霧化、(x,y)位置)以及邊帶信息的字段、和待對(duì)像素包執(zhí)行的操作指令序列。光柵級(jí)410中的指令域(未圖示)將指令分配給像素包。邊帶信息還可包括一有效字段和一取消字段。像素包可包括一個(gè)或一個(gè)以上像素?cái)?shù)據(jù)行。
門監(jiān)級(jí)420對(duì)像素執(zhí)行數(shù)據(jù)流控制功能。在一個(gè)實(shí)施例中,門監(jiān)級(jí)420具有一相關(guān)記分板425以用于像素包的調(diào)度、負(fù)載平衡、資源配置和危險(xiǎn)避免。記分板425跟蹤像素的進(jìn)入和退離。進(jìn)入門監(jiān)級(jí)420的像素包設(shè)定記分板,且當(dāng)像素包在完成處理之后從圖形處理器205中排出時(shí)復(fù)位記分板。再循環(huán)通過管線的像素從數(shù)據(jù)寫入單元455發(fā)送回到門監(jiān)。
數(shù)據(jù)拾取級(jí)430拾取由門監(jiān)420傳遞的像素包的數(shù)據(jù)。此可包括(例如)通過對(duì)像素包的每個(gè)行執(zhí)行適當(dāng)?shù)纳省⑸疃然蚣y理數(shù)據(jù)讀取來拾取色彩、深度和紋理數(shù)據(jù)。數(shù)據(jù)拾取級(jí)430可(例如)從幀緩沖器(未圖示)處拾取像素?cái)?shù)據(jù),且還可管理局部紋理/霧化高速緩沖存儲(chǔ)器432和色彩/深度高速緩沖存儲(chǔ)器434。在將像素包發(fā)送到下一級(jí)之前,將所拾取的數(shù)據(jù)放置到像素包字段上。
像素包的所述行進(jìn)入算術(shù)邏輯單元(ALU)管線440以用于處理。ALU管線440具有一序列的ALU。盡管圖中說明了四個(gè)ALU,但可依據(jù)應(yīng)用而在ALU管線440中使用更多或更少的ALU。
ALU管線440的輸出轉(zhuǎn)到萬用數(shù)據(jù)寫入級(jí)455。所述數(shù)據(jù)寫入級(jí)455將像素包轉(zhuǎn)換成像素?cái)?shù)據(jù),且將結(jié)果存儲(chǔ)在寫入緩沖器452中,或直接存儲(chǔ)到存儲(chǔ)器中的幀緩沖器中。數(shù)據(jù)寫入級(jí)455可執(zhí)行的功能的實(shí)例包括色彩和深度回寫以及其格式轉(zhuǎn)換。
圖5是根據(jù)本發(fā)明一個(gè)實(shí)施例的與存儲(chǔ)器子單元550介接的通用或萬用數(shù)據(jù)寫入單元500的方框圖。在一個(gè)實(shí)施例中,數(shù)據(jù)寫入單元500可在圖4的3-D圖形管線205內(nèi)實(shí)施,且由此,所述數(shù)據(jù)寫入單元500代表圖4的數(shù)據(jù)寫入單元455。數(shù)據(jù)寫入單元500包括存儲(chǔ)器510、數(shù)據(jù)寫入電路520、指令組530和復(fù)數(shù)個(gè)高速緩沖存儲(chǔ)器540。
存儲(chǔ)器510用于接收與像素相關(guān)聯(lián)的像素信息包。所述像素包包括與待存儲(chǔ)在存儲(chǔ)器550中的像素的表面特征有關(guān)的數(shù)據(jù)。此類表面特征包括(但不限于)色彩、深度、模板、透明度等。像素包包括至少一個(gè)信息行,其被格式化成所述行的包括隨后處理所需的像素參數(shù)(例如,色彩、紋理、深度、霧化等)的字段。相對(duì)于圖6進(jìn)一步描述實(shí)例像素包。在一個(gè)實(shí)施例中,存儲(chǔ)器510含有存儲(chǔ)寄存器,其存儲(chǔ)包括在像素包內(nèi)的數(shù)據(jù)。
數(shù)據(jù)寫入單元500可包括以通信形式耦合到存儲(chǔ)器510以用于存儲(chǔ)顯示像素信息的復(fù)數(shù)個(gè)高速緩沖存儲(chǔ)器540。像素信息與復(fù)數(shù)個(gè)像素的復(fù)數(shù)個(gè)表面特征相關(guān)聯(lián)。復(fù)數(shù)個(gè)高速緩沖存儲(chǔ)器540包括高速緩沖存儲(chǔ)器-1541、高速緩沖存儲(chǔ)器-2542,一直到高速緩沖存儲(chǔ)器-n545。所述高速緩沖存儲(chǔ)器540中的每一者均是一般的,且均可根據(jù)數(shù)據(jù)寫入指令來編程以與一指定表面特征相關(guān)聯(lián)。舉例來說,高速緩沖存儲(chǔ)器-1541可與色彩相關(guān)聯(lián),高速緩沖存儲(chǔ)器-2542可與深度相關(guān)聯(lián)。與高速緩沖存儲(chǔ)器540相關(guān)聯(lián)的表面屬性的數(shù)目是可選擇的。即,可顯示一個(gè)或一個(gè)以上表面屬性。數(shù)據(jù)寫入單元是靈活的,因?yàn)槿鐟?yīng)用程序需要,便可使用更多表面屬性(例如,模板)。
數(shù)據(jù)寫入電路520耦合到存儲(chǔ)器510和復(fù)數(shù)個(gè)高速緩沖存儲(chǔ)器540。數(shù)據(jù)寫入電路520可在程序控制下操作以獲得存儲(chǔ)器510中的像素包的指定部分,以將其存儲(chǔ)到復(fù)數(shù)個(gè)高速緩沖存儲(chǔ)器中,以可能被顯示或用于隨后渲染步驟。
高速緩沖存儲(chǔ)器540可用于維持到達(dá)存儲(chǔ)器子單元550的數(shù)據(jù)傳送的高有效帶寬。換句話說,高速緩沖存儲(chǔ)器540收集數(shù)據(jù),直到達(dá)到某一閾值量(例如128位)為止,且接著對(duì)存儲(chǔ)器子單元550進(jìn)行寫入,從而減小了數(shù)據(jù)寫入單元500所需的寫入交易的數(shù)目。
另外,數(shù)據(jù)寫入電路520以通信形式耦合到門監(jiān)560。以此方式,像素包可再循環(huán)通過3-D圖形管線以根據(jù)需要進(jìn)行進(jìn)一步處理,且門監(jiān)560可調(diào)節(jié)和排列通過3-D像素圖形管線的像素包傳輸流。舉例來說,當(dāng)像素包已完成通過3-D圖形管線的處理時(shí),門監(jiān)560可使像素包退離。
數(shù)據(jù)寫入單元500包括含有一列操作的指令組530。對(duì)像素包執(zhí)行所述可選操作,且所述可選操作通過選擇并排列對(duì)像素信息包執(zhí)行的操作來向數(shù)據(jù)寫入單元500提供可編程特征。在本實(shí)施例中,所述操作由數(shù)據(jù)寫入電路520來執(zhí)行。
在一個(gè)實(shí)施例中,數(shù)據(jù)寫入單元500響應(yīng)于包含將行像素信息的一部分指定為源和將高速緩沖存儲(chǔ)器指定為目的地的指令格式。舉例來說,在一個(gè)實(shí)施例中,指令組530包括可編程指令。指令的一個(gè)部分包括關(guān)于到所述信息行的哪個(gè)部分來提取像素?cái)?shù)據(jù)的指示。即,為哪個(gè)成分從所述信息行中提取哪個(gè)字段。指令的另一部分控制可選抖動(dòng),即是否添加抖動(dòng)值。抖動(dòng)是用于在減小色彩精度時(shí)(例如,當(dāng)將紅、綠和藍(lán)色成分壓縮成16位量時(shí))改進(jìn)圖像質(zhì)量的眾所周知的技術(shù)。指令的另一部分控制所提取的像素?cái)?shù)據(jù)在存儲(chǔ)到存儲(chǔ)器中之前如何格式化(例如,將色彩精度從每像素八位減小到每像素五位)。指令的另一部分包括指示哪個(gè)表面緩沖器將接收所寫入的數(shù)據(jù)的指示。指令的另一部分包括是否寫入數(shù)據(jù)(即,是否在特定指令序列位置處執(zhí)行指令)。指令的其它部分指定所述信息行的哪個(gè)字段對(duì)應(yīng)于哪個(gè)輸出數(shù)據(jù)通道(例如,紅、綠或藍(lán))。
在本實(shí)施例中,指令組530包括基于存儲(chǔ)為像素包中的邊帶信息的指令序列編號(hào)而施加到像素包的8個(gè)指令。其它實(shí)施例同樣適合于具有不同數(shù)目(例如大于8個(gè)或小于8個(gè))的指令的指令組530。其它實(shí)施例可利用其它機(jī)制來選擇待執(zhí)行的指令(例如,基于行編號(hào)依次執(zhí)行)。
存儲(chǔ)器子單元550以通信形式耦合到復(fù)數(shù)個(gè)高速緩沖存儲(chǔ)器540以用于存儲(chǔ)顯示像素?cái)?shù)據(jù)。在一個(gè)實(shí)施例中,所述復(fù)數(shù)個(gè)高速緩沖存儲(chǔ)器540中的每一者均由存儲(chǔ)控制器來控制以與存儲(chǔ)器子單元550介接。在一個(gè)實(shí)施例中,數(shù)據(jù)寫入單元500含有兩個(gè)獨(dú)立高速緩沖存儲(chǔ)器,其可在軟件控制下(例如,通過選擇適當(dāng)?shù)闹噶?30)用于存儲(chǔ)獨(dú)立表面(例如色彩或深度)。
周期性地,數(shù)據(jù)從高速緩沖存儲(chǔ)器540清洗到存儲(chǔ)器子單元550。雙緩沖機(jī)構(gòu)可用于每個(gè)高速緩沖存儲(chǔ)器,其中第一高速緩沖存儲(chǔ)器從數(shù)據(jù)寫入電路520接收數(shù)據(jù),而另一高速緩沖存儲(chǔ)器被清洗到存儲(chǔ)器子單元550,且接著它們的角色互換,等等。
現(xiàn)轉(zhuǎn)向圖6,其展示根據(jù)本發(fā)明一個(gè)實(shí)施例的一行像素信息600的方框圖。一像素包可含有一個(gè)或一個(gè)以上行像素信息,其依次在一次或多次從3-D圖形管線通過中進(jìn)行處理。一般來說,像素包含有對(duì)于圖形顯示器中的一像素的一組完整描述的存儲(chǔ)位置。在本實(shí)施例中,所述信息行600包括邊帶信息610和有效負(fù)載信息620。
邊帶信息610包括識(shí)別或“核算”信息的各種字段。僅出于說明目的,邊帶信息610可包括“偶數(shù)/奇數(shù)”字段、“取消”字段和“序列”字段。“偶數(shù)/奇數(shù)”字段在交錯(cuò)通過3-D圖形管線的一個(gè)或一個(gè)以上像素包的行時(shí)識(shí)別一特定像素的一信息行。來自不同像素包的交錯(cuò)信息行將等待時(shí)間隱藏在3-D圖形管線內(nèi)?!靶蛄小弊侄螌⑺鲂畔⑿?00鏈接到待施加到行600的指令。舉例來說,所述指令可位于所述指令組530中。
在一個(gè)實(shí)施例中,有效負(fù)載620可分裂成4個(gè)離散數(shù)據(jù)單元R-0、R-1、R-2和R-3。包括在有效負(fù)載620內(nèi)的信息包括(例如)經(jīng)處理以產(chǎn)生顯示的像素信息的像素屬性(色彩、深度、紋理)。在本實(shí)施例中,對(duì)于80位信息行來說,如行600所說明的像素包的每個(gè)行中的像素屬性可包括四組20位值(例如R-0、R-1、R-2和R-3)。像素屬性的實(shí)例包括16位Z深度值、16位(s,t)紋理坐標(biāo)、4位細(xì)節(jié)級(jí)別值、一對(duì)色彩值或壓縮RGBA色彩值等。其它實(shí)施例同樣適合于不同數(shù)目的離散數(shù)據(jù)單元和具有不同長(zhǎng)度的有效負(fù)載。
在另一實(shí)施例中,數(shù)據(jù)寫入單元500可用于支持手持式裝置(例如手機(jī)、PDA等)的3-D圖形管線。數(shù)據(jù)寫入單元包含用于接收像素信息包的至少一行像素信息的第一存儲(chǔ)器。所述像素包與一像素相關(guān)聯(lián)。像素包包括與所述像素的復(fù)數(shù)個(gè)表面特征有關(guān)的數(shù)據(jù)。
數(shù)據(jù)寫入單元500可包括第一高速緩沖存儲(chǔ)器,其用于存儲(chǔ)與復(fù)數(shù)個(gè)像素的第一表面特征(例如色彩)相關(guān)聯(lián)的像素信息。另外,數(shù)據(jù)寫入單元可包括第二高速緩沖存儲(chǔ)器,其用于存儲(chǔ)與復(fù)數(shù)個(gè)像素的第二表面特征(例如深度)相關(guān)聯(lián)的像素信息。在其它實(shí)施例中,可包括更多的高速緩沖存儲(chǔ)器以增加由3-D圖形管線產(chǎn)生的顯示數(shù)據(jù)的質(zhì)量或能力。
如先前所述,數(shù)據(jù)寫入單元500還包括數(shù)據(jù)寫入電路。數(shù)據(jù)寫入單元可在程序控制下操作以獲得第一行像素信息的第一指定部分(例如來自620)以存儲(chǔ)到第一高速緩沖存儲(chǔ)器(例如541)中。數(shù)據(jù)寫入單元500可在程序控制下進(jìn)一步操作以獲得第二行像素信息的第二指定部分(例如620的)以存儲(chǔ)在第二高速緩沖存儲(chǔ)器(例如542)中。在一個(gè)實(shí)施例中,第一指定部分和第二指定部分可包括在相同或不同行像素信息中。
現(xiàn)參看圖7,其說明根據(jù)本發(fā)明一個(gè)實(shí)施例的用于寫入來自3-D圖形管線的數(shù)據(jù)的方法的流程圖700。在一個(gè)實(shí)施例中,所述圖形管線可在例如個(gè)人數(shù)字助理、移動(dòng)電話、手持式游戲裝置或類似物的手持式裝置上執(zhí)行。
在710處,數(shù)據(jù)寫入單元接收一像素包的一行。所述像素包與一像素相關(guān)聯(lián),且提供由3-D圖形管線處理的像素屬性以輸出顯示像素?cái)?shù)據(jù)(例如用于幀緩沖器和/或深度緩沖器)。具體地說,像素包包括與像素的表面特征有關(guān)的數(shù)據(jù)。通常,在3-D圖形管線中的某一點(diǎn)處,所述信息行包括與像素的表面特征有關(guān)的經(jīng)處理的數(shù)據(jù)。
在720處,在響應(yīng)于指令的程序控制下,數(shù)據(jù)寫入單元存取所述行的第一指定部分。即,舉例來說,本實(shí)施例存取與所述信息行的有效負(fù)載相關(guān)聯(lián)的寄存器以存取與表面特征有關(guān)的數(shù)據(jù)。在本實(shí)施例中,第一指定部分與像素的第一表面特征(例如色彩或深度)相關(guān)聯(lián)。其它實(shí)施例可包括其它表面特征(例如模板等)。
在730處,本發(fā)明將像素包的第一指定部分寫入到第一高速緩沖存儲(chǔ)器。第一高速緩沖存儲(chǔ)器并非專用于任何表面特征,直到被可編程地指定為止。此時(shí),第一高速緩沖存儲(chǔ)器用于存儲(chǔ)復(fù)數(shù)個(gè)像素的第一表面特征。以此方式,本發(fā)明實(shí)施靈活且通用的數(shù)據(jù)寫入單元,其可實(shí)施任何數(shù)目的表面特征。
在740處,本實(shí)施例進(jìn)一步包括根據(jù)一指令而存取像素包的第二行的第二指定部分的操作。在此情況下,第二指定部分與像素的第二表面特征相關(guān)聯(lián)。由此,用于所述像素的顯示像素?cái)?shù)據(jù)包括第一和第二表面特征(例如色彩和深度)。其它實(shí)施例包括使用額外顯示屬性(例如模板)。
在750處,本發(fā)明進(jìn)一步包括將像素包的第二指定部分寫入到第二高速緩沖存儲(chǔ)器。如同第一高速緩沖存儲(chǔ)器一樣,第二高速緩沖存儲(chǔ)器是可編程選擇的,且用于存儲(chǔ)復(fù)數(shù)個(gè)像素的第二表面特征。
在一個(gè)實(shí)施例中,描述第一表面特征的數(shù)據(jù)和描述第二表面特征的數(shù)據(jù)包括在像素包的一個(gè)行內(nèi)。在其它實(shí)施例中,描述第一表面特征的數(shù)據(jù)包括在第一行內(nèi),且描述第二表面特征的數(shù)據(jù)包括在像素信息包的第二行內(nèi)。
在760處,如先前所述,本實(shí)施例周期性地將第一高速緩沖存儲(chǔ)器清洗到存儲(chǔ)器子單元。另外,如先前所述,本實(shí)施例周期性地清洗第二高速緩沖存儲(chǔ)器。舉例來說,當(dāng)達(dá)到閾值(例如128位)時(shí),清洗第一和第二高速緩沖存儲(chǔ)器。
圖8A是根據(jù)本發(fā)明一個(gè)實(shí)施例的可編程數(shù)據(jù)寫入單元的一般高速緩沖存儲(chǔ)器的雙緩沖器特征的方框圖。舉例來說,圖8A的高速緩沖存儲(chǔ)器代表圖5的數(shù)據(jù)寫入單元500中的復(fù)數(shù)個(gè)高速緩沖存儲(chǔ)器540中的高速緩沖存儲(chǔ)器的每一者(例如,高速緩沖存儲(chǔ)器541)。
在本實(shí)施例中,高速緩沖存儲(chǔ)器541包括兩個(gè)緩沖器,即主動(dòng)高速緩沖存儲(chǔ)器810和清洗高速緩沖存儲(chǔ)器815。存儲(chǔ)控制器820通過控制從數(shù)據(jù)寫入單元內(nèi)對(duì)主動(dòng)高速緩沖存儲(chǔ)器810的讀取和寫入以及從清洗高速緩沖存儲(chǔ)器815對(duì)存儲(chǔ)器子系統(tǒng)830(例如,SRAM、DRAM等)的讀取和寫入來執(zhí)行雙功能。如圖8A中所示,主動(dòng)高速緩沖存儲(chǔ)器810主動(dòng)從數(shù)據(jù)寫入電路(例如520)接收像素包的數(shù)據(jù),且清洗高速緩沖存儲(chǔ)器815已經(jīng)將數(shù)據(jù)清洗到存儲(chǔ)器子系統(tǒng)830,或?yàn)殚e置的。
在其它實(shí)施例中,高速緩沖存儲(chǔ)器包括復(fù)數(shù)個(gè)緩沖器以增加性能。在此情況下,存儲(chǔ)控制器820控制對(duì)復(fù)數(shù)個(gè)緩沖器中的主動(dòng)和清洗高速緩沖存儲(chǔ)器的讀取和寫入。
在適當(dāng)?shù)臅r(shí)間,存儲(chǔ)控制器將切換高速緩沖存儲(chǔ)器810與815的功能,使得高速緩沖存儲(chǔ)器810變成將數(shù)據(jù)清洗到存儲(chǔ)器子系統(tǒng)830的清洗高速緩沖存儲(chǔ)器,且高速緩沖存儲(chǔ)器815從數(shù)據(jù)寫入電路接收數(shù)據(jù)。
在一個(gè)實(shí)施例中,高速緩沖存儲(chǔ)器541的內(nèi)容被周期性地清洗到存儲(chǔ)器子系統(tǒng)。具體地說,在正在進(jìn)行基礎(chǔ)上,主動(dòng)高速緩沖存儲(chǔ)器810的內(nèi)容被清洗到存儲(chǔ)器子系統(tǒng)830。
在一個(gè)實(shí)施例中,主動(dòng)高速緩沖存儲(chǔ)器810被指定為清洗高速緩沖存儲(chǔ)器,且在所述高速緩沖存儲(chǔ)器充滿數(shù)據(jù)時(shí)被清洗。在另一實(shí)施例中,主動(dòng)高速緩沖存儲(chǔ)器810被指定為清洗高速緩沖存儲(chǔ)器,且在地址掃描線改變時(shí)被清洗。即,跨越一水平掃描線處理三角形的像素。當(dāng)達(dá)到掃描線的末端時(shí),處理所述三角形的最后一個(gè)像素,且掃描線的地址改變。所述三角形中的下一像素位于下一掃描線上。此時(shí),主動(dòng)高速緩沖存儲(chǔ)器810被指定為清洗高速緩沖存儲(chǔ)器,且數(shù)據(jù)被清洗。在又一實(shí)施例中,活性高速緩沖存儲(chǔ)器810在保持閑置持續(xù)任意數(shù)目的時(shí)鐘周期后被清洗。在本實(shí)施例中,由于主動(dòng)高速緩沖存儲(chǔ)器中可包括顯示數(shù)據(jù)的8個(gè)像素,所以可在8個(gè)時(shí)鐘周期后清洗主動(dòng)高速緩沖存儲(chǔ)器810。在另一實(shí)施例中,在軟件控制下(例如,在一幀渲染結(jié)束時(shí)),在接收到指示進(jìn)行清洗的命令時(shí)清洗主動(dòng)高速緩沖存儲(chǔ)器810。
在一個(gè)實(shí)施例中,數(shù)據(jù)寫入單元能夠指示哪些像素已經(jīng)寫入到存儲(chǔ)器子系統(tǒng),或哪些像素因?yàn)榫哂腥∠唤M而被取消。即,數(shù)據(jù)寫入單元能夠與門監(jiān)模塊進(jìn)行通信,以便使像素通過3-D圖形管線退離。在此情況下,一旦清洗高速緩沖存儲(chǔ)器815被寫入到存儲(chǔ)器子系統(tǒng)830,與那些寫入到存儲(chǔ)器子系統(tǒng)的像素相關(guān)聯(lián)的所有寄存器位均被清除以用于稍后處理其它像素?cái)?shù)據(jù)。
舉例來說,當(dāng)像素包退離時(shí),數(shù)據(jù)寫入單元能夠通知門監(jiān)單元(例如420)和/或記分板單元(例如425)。具體地說,當(dāng)像素包被取消時(shí),數(shù)據(jù)寫入單元通知門監(jiān)和/或記分板,使得像素包可退離。如下文將進(jìn)一步描述,當(dāng)與像素包相關(guān)聯(lián)的任一行具有取消位組時(shí),可取消像素包。另外,當(dāng)像素包已經(jīng)寫入到數(shù)據(jù)寫入單元外部的存儲(chǔ)器子單元時(shí),數(shù)據(jù)寫入單元通知門監(jiān)和/或記分板,使得像素包可退離。舉例來說,像素包中的寫入啟用指定符指示像素包已經(jīng)寫入到存儲(chǔ)器子單元。在一個(gè)實(shí)施例中,即使像素包已經(jīng)被取消且并未寫入到存儲(chǔ)子單元,當(dāng)像素包被取消時(shí),數(shù)據(jù)寫入單元也設(shè)定像素包中的寫入啟用指定符,使得門監(jiān)和/或記分板可使像素包退離。
圖8B是根據(jù)本發(fā)明一個(gè)實(shí)施例的復(fù)數(shù)個(gè)像素的像素信息輸出字850的方框圖。所述輸出字850具有指定寬度以用于存儲(chǔ)與相關(guān)表面特征相關(guān)聯(lián)的像素信息。在本實(shí)施例中,輸出字包括8個(gè)像素的信息,其每一者的寬度均為16位,因?yàn)榭偩€寬度為128位寬。16字節(jié)的信息對(duì)應(yīng)于8個(gè)像素0到7的顯示信息。由此,輸出字的寬度為128位。即,8像素的顯示數(shù)據(jù)可包括在128位字850中。
因此,增加了3-D圖形管線的帶寬。代替16位的逐像素帶寬,可在一個(gè)時(shí)鐘周期中讀取或?qū)懭?28位數(shù)據(jù)。由此,在一個(gè)時(shí)鐘中,可寫入對(duì)應(yīng)于8個(gè)像素的16個(gè)字節(jié)的信息,而不是對(duì)應(yīng)于1個(gè)像素的傳統(tǒng)2個(gè)字節(jié)的信息。這顯著增加了在數(shù)據(jù)寫入單元處3-D圖形管線所利用的帶寬的效率,因?yàn)閷懭胼^少數(shù)據(jù)仍消耗存儲(chǔ)器總線上的整個(gè)128位周期。
圖9是根據(jù)本發(fā)明一個(gè)實(shí)施例的說明“取消”指定符傳播到像素包的像素包的方框圖。圖9中的像素包包括呈循序次序的4個(gè)信息行,行-0910、行-1920、行-2930和行-3940。僅出于說明目的,僅展示所述行中的每一者的邊帶信息中的“取消”指定符(一位)。
如先前所論述,在一個(gè)實(shí)施例中,當(dāng)“取消”指定符被設(shè)定時(shí),像素包的有效負(fù)載部分不再通過3-D圖形管線來處理。即,當(dāng)一信息行包括取消指定時(shí),數(shù)據(jù)寫入單元中的數(shù)據(jù)寫入電路可操作以僅在“取消”指定符未被設(shè)定時(shí)寫入來自所述行的數(shù)據(jù)。具體地說,僅在所述行中寫入啟用被設(shè)定且在所述行的“取消”指定符未被設(shè)定時(shí),可寫入所述行的指定部分。此外,數(shù)據(jù)寫入電路可操作以僅在來自每個(gè)信息行的所有“取消”指定符均未被設(shè)定時(shí)寫入來自像素包的數(shù)據(jù)。
在圖9中,“取消”指定符915與行-0910相關(guān)聯(lián)且未被設(shè)定?!叭∠敝付ǚ?25與行-1920相關(guān)聯(lián)且未被設(shè)定?!叭∠敝付ǚ?35與行-2相關(guān)聯(lián)且被設(shè)定?!叭∠敝付ǚ?45與行-3相關(guān)聯(lián)且未被設(shè)定。
本實(shí)施例中的數(shù)據(jù)寫入單元(例如,圖5的數(shù)據(jù)寫入單元500)能夠?qū)⑷∠粋鞑サ秸麄€(gè)像素包的各行。即,數(shù)據(jù)寫入單元對(duì)所有來自像素包的各行的“取消”指定符執(zhí)行OR函數(shù)960。
如圖9中所示,行-2930具有被設(shè)定的“取消”指定符935?!叭∠敝付ǚ?35通過使用OR函數(shù)960而傳播通過像素包。由此,通過與適當(dāng)?shù)拇鎯?chǔ)控制器通信的數(shù)據(jù)寫入單元能夠解開字節(jié)啟用950。由于字節(jié)啟用950被解開,因而來自圖9所示的像素包的像素?cái)?shù)據(jù)不能寫入到緩沖器高速緩沖存儲(chǔ)器,或在另一情況下,不能從緩沖器高速緩沖存儲(chǔ)器寫入到存儲(chǔ)器子系統(tǒng)。如先前所論述,“取消”指定符可通信到3-D圖形管線中的上游的門監(jiān)和/或記分板單元。
圖10是根據(jù)本發(fā)明一個(gè)實(shí)施例的說明像素?cái)?shù)據(jù)的行轉(zhuǎn)送的兩個(gè)像素包的交錯(cuò)行像素信息的方框圖。通過交替地呈現(xiàn)與兩個(gè)像素包相關(guān)聯(lián)的行,兩個(gè)像素包被交錯(cuò)。偶數(shù)像素的偶數(shù)行(行1010A、1010B、1010C和1010D)與奇數(shù)像素的奇數(shù)行(行1020A、1020B、1020C和1020D)交錯(cuò)。
交錯(cuò)提供額外時(shí)鐘周期以解決3-D圖形管線內(nèi)的等待時(shí)間。另外,其它實(shí)施例同樣適合于交錯(cuò)兩個(gè)以上像素包以處理3-D圖形管線中的更大等待時(shí)間。
僅出于說明目的,在偶數(shù)和奇數(shù)像素包的偶數(shù)和奇數(shù)行中的每一者的邊帶中僅展示“偶數(shù)/奇數(shù)”位。舉例來說,偶數(shù)像素包包括具有偶數(shù)位(零位1015A、1015B、1015C和1015D)的行。奇數(shù)像素包包括具有奇數(shù)位(一位1025A、1025B、1025C和1025D)的行。
如圖10中所示,線1050和線1060指示數(shù)據(jù)從偶數(shù)和奇數(shù)像素包的最后行1010D和1020D轉(zhuǎn)送到在同一像素包的行序列中較早出現(xiàn)的行。舉例來說,線1050說明來自行1010D的數(shù)據(jù)轉(zhuǎn)送到在偶數(shù)像素包的行序列中較早出現(xiàn)的行1010A。即,來自行1010D的數(shù)據(jù)被提前某數(shù)目個(gè)時(shí)鐘周期。
類似地,線1060說明將來自行1020D的數(shù)據(jù)轉(zhuǎn)送到在奇數(shù)像素包的行序列中較早出現(xiàn)的行1020A。如下文將描述,數(shù)據(jù)的行轉(zhuǎn)送由數(shù)據(jù)寫入單元中的邏輯來完成。
在一個(gè)實(shí)施例中,對(duì)于一時(shí)鐘周期配對(duì)交錯(cuò)行。在此情況下,在一個(gè)時(shí)鐘周期中配對(duì)并執(zhí)行每個(gè)像素包的第一行1010A和1020A。同樣,在一個(gè)時(shí)鐘周期中配對(duì)并執(zhí)行每個(gè)像素包的第二行1010B和1020B。類似地,對(duì)于每個(gè)偶數(shù)和奇數(shù)像素包的第三和第四行也是如此。
在本實(shí)施例中,行的交錯(cuò)是3-D圖形管線的可選特征。由此,不管兩個(gè)或兩個(gè)以上像素包是否在通過3-D圖形管線來處理時(shí)交錯(cuò),行轉(zhuǎn)送均是可能的。
在一個(gè)實(shí)施例中,像素?cái)?shù)據(jù)的行轉(zhuǎn)送減小了3-D圖形管線中的等待時(shí)間。像素包可分布在通過GPU管線結(jié)構(gòu)依次處理的行像素信息中。像素包可再循環(huán)通過GPU管線結(jié)構(gòu),以便完成3-D處理;然而,當(dāng)再循環(huán)行在不再需要的較早行后面具有有價(jià)值的數(shù)據(jù)時(shí),常常引入等待時(shí)間,且因此在遇到先前在第一次通過期間所計(jì)算的數(shù)據(jù)以供進(jìn)一步使用之前必須等待若干時(shí)鐘。因此,功率消耗增加,因?yàn)橥ㄟ^GPU管線結(jié)構(gòu)來完全處理像素信息需要更多的時(shí)鐘。本實(shí)施例在行之間轉(zhuǎn)送像素?cái)?shù)據(jù)以減小3-D圖形管線中的等待時(shí)間。
圖11是根據(jù)本發(fā)明一個(gè)實(shí)施例的用于圖形管線中能夠行轉(zhuǎn)送像素?cái)?shù)據(jù)的數(shù)據(jù)寫入單元500的方框圖。圖11大體上類似于圖5。舉例來說,存儲(chǔ)器510用于存儲(chǔ)與一像素相關(guān)聯(lián)的復(fù)數(shù)行像素信息。所述復(fù)數(shù)行像素信息包括與所述像素的表面特征有關(guān)的數(shù)據(jù)。另外,在本實(shí)施例中,所述復(fù)數(shù)個(gè)行包括(但不限于)第一行和第二行。另外,數(shù)據(jù)寫入電路520包括存取邏輯1110和再循環(huán)邏輯1120。
存取邏輯1110用于存取數(shù)據(jù)的第二行的一部分。存取邏輯110還用于將從第二行存取的數(shù)據(jù)存儲(chǔ)到所述第一行的一部分中。在本實(shí)施例中,在像素信息包的行序列中,第一行出現(xiàn)在第二行之前。
在一個(gè)實(shí)施例中,第二行是復(fù)數(shù)行像素信息的序列中的最終行。舉例來說,參看圖10,偶數(shù)像素包中的第二行是最后行1010D。同樣,在本實(shí)施例中,第一行是復(fù)數(shù)個(gè)行像素信息的序列中的開始行。舉例來說,再次參看圖10,偶數(shù)像素包中的第一行是開始行1010A。由此,如圖10中所示,來自行1010D的數(shù)據(jù)被傳送或存儲(chǔ)在行1010A中。
再循環(huán)邏輯1120將所述復(fù)數(shù)個(gè)行像素信息再循環(huán)到3-D圖形管線中的上游管線模塊。在一些應(yīng)用中再循環(huán)對(duì)于完整地處理像素包來說是必要的。在一個(gè)實(shí)施例中,上游管線模塊為門監(jiān)模塊,其調(diào)節(jié)通過所述圖形管線的像素信息流。在另一實(shí)施例中,上游管線模塊為數(shù)據(jù)拾取模塊。
行轉(zhuǎn)送減少了處理時(shí)鐘周期。即,當(dāng)通過3-D管線結(jié)構(gòu)再循環(huán)數(shù)據(jù)時(shí),像素包的單次通過中的當(dāng)前處理值趨向于后退到包中的最后或后部行。隨著像素包再循環(huán),較早行需要那些位于包后部的當(dāng)前處理值;然而,由于那些當(dāng)前值仍位于包的最后或后部行中,因而發(fā)生等待時(shí)間。對(duì)于將那些當(dāng)前值傳送到正確的行以供處理,若干時(shí)鐘周期仍然是必要的。在此情況下,因?yàn)?-D圖形管線必須等待當(dāng)前值傳播到進(jìn)一步處理可能發(fā)生的點(diǎn),所以存在等待時(shí)間。
因?yàn)樘囟ㄏ袼匕乃行芯跀?shù)據(jù)寫入單元500的控制內(nèi),所以在3-D圖形管線內(nèi)的數(shù)據(jù)寫入單元500的當(dāng)前實(shí)施內(nèi),行轉(zhuǎn)送是可能的。以此方式,本實(shí)施例中的數(shù)據(jù)寫入單元500能夠?qū)?shù)據(jù)從像素包的一個(gè)后部行轉(zhuǎn)送到在所述像素包的行序列中較早出現(xiàn)的另一前部行。
在另一實(shí)施例中,在支持手持式裝置的圖形管線中使用的數(shù)據(jù)寫入單元能夠進(jìn)行行轉(zhuǎn)送。本實(shí)施例的數(shù)據(jù)寫入單元包括第一存儲(chǔ)器,其用于存儲(chǔ)來自一與一像素相關(guān)聯(lián)的像素包的第一行像素信息。像素包包括與所述像素的表面特征有關(guān)的數(shù)據(jù)。
數(shù)據(jù)寫入單元包括第二存儲(chǔ)器,其用于存儲(chǔ)來自像素信息包的第二行像素信息。在一個(gè)實(shí)施例中,第一和第二行像素信息為存儲(chǔ)寄存器。
數(shù)據(jù)寫入單元還包括用于存取位于第二行的一部分中的數(shù)據(jù)的邏輯。所述邏輯還將其中所存取的數(shù)據(jù)存儲(chǔ)到第一行的一部分中。如先前所述,在與像素信息包相關(guān)聯(lián)的行序列中,第二行在第一行之后出現(xiàn)。
另外,數(shù)據(jù)寫入單元還包括用于將像素包再循環(huán)到上游管線模塊的邏輯。即,將第一行和第二行再循環(huán)到上游模塊以供進(jìn)一步處理。
同樣,數(shù)據(jù)寫入單元包括用于通過使用從第二行的所述部分存取到的數(shù)據(jù)而對(duì)再循環(huán)的第一行執(zhí)行指令的邏輯。以此方式,時(shí)鐘周期不用于將數(shù)據(jù)更新到第一行。
圖12是根據(jù)本發(fā)明一個(gè)實(shí)施例說明用于3-D圖形管線中的行轉(zhuǎn)送方法的計(jì)算機(jī)實(shí)施的處理的流程圖。所述處理在3-D圖形管線的數(shù)據(jù)寫入單元內(nèi)實(shí)施,因?yàn)檎麄€(gè)像素包在數(shù)據(jù)寫入單元的控制內(nèi)(例如在管線的多個(gè)級(jí)中)。
在1210處,本實(shí)施例接收與一像素相關(guān)聯(lián)的復(fù)數(shù)行像素信息。所述復(fù)數(shù)行像素信息包括與像素的表面特征有關(guān)的數(shù)據(jù)。另外,所述復(fù)數(shù)個(gè)行包括(但不限于)第一行和第二行。
在1220處,本實(shí)施例存取第二行的一部分。如先前所述,在復(fù)數(shù)個(gè)行的序列中,第二行比第一行晚出現(xiàn)。
舉例來說,在穿過3-D圖形管線的當(dāng)前通過中,第二行的所述部分可含有來自執(zhí)行對(duì)第二行所執(zhí)行的指令的結(jié)果。接著將此結(jié)果寫入到稍后存取的第二行的所述部分。以此方式,在本實(shí)施例中,在處理第一行后數(shù)個(gè)時(shí)鐘周期后產(chǎn)生的數(shù)據(jù)仍可轉(zhuǎn)送到第一行。
在1230處,本實(shí)施例將在1220中從第二行存取的數(shù)據(jù)存儲(chǔ)到第一行的一部分中。以此方式,當(dāng)復(fù)數(shù)行像素信息再循環(huán)通過3-D圖形管線時(shí),不存在等待時(shí)間,因?yàn)榈谝恍幸呀?jīng)具有處理所必需的數(shù)據(jù)。這歸因于從第二行存取的數(shù)據(jù)已轉(zhuǎn)送到第一行。實(shí)現(xiàn)了時(shí)鐘周期的顯著節(jié)約。
在一個(gè)實(shí)施例中,本實(shí)施例使用從第二行存取的數(shù)據(jù)來重寫包含在第一行的所述部分中的數(shù)據(jù)。
在1240處,如先前所述,本實(shí)施例使復(fù)數(shù)行像素信息再循環(huán)到上游管線模塊以供進(jìn)一步處理。這通過將復(fù)數(shù)個(gè)行發(fā)送到3-D圖形管線的門監(jiān)來完成。如先前所述,門監(jiān)調(diào)節(jié)通過圖形管線的像素信息流。
圖13A、13B和13C根據(jù)本發(fā)明一實(shí)施例提供行轉(zhuǎn)送數(shù)據(jù)以節(jié)約時(shí)鐘周期的說明。在圖13A、13B和13C中,呈現(xiàn)在通過3-D圖形管線來處理像素包時(shí)像素包的不同狀態(tài)。像素包包括呈以下序列的三個(gè)信息行行-01310、行-11320和行-21330。即,行-01310為序列的開始行,且行-21330為序列的最后行。
表1說明經(jīng)由從3-D圖形管線的兩次通過的一部分來對(duì)像素包執(zhí)行的一序列操作。在第一次通過中,對(duì)像素包的行-0、行-1和行-2執(zhí)行操作。僅出于說明行轉(zhuǎn)送的目的,在第二次通過中,僅展示行-0上的操作。
表1
圖13A是三個(gè)行1310、1320和1330的第一狀態(tài)1300A的方框圖。根據(jù)本發(fā)明一個(gè)實(shí)施例,第一狀態(tài)代表像素包處于其從3-D圖形管線的第一次通過開始時(shí)。即,在狀態(tài)1300A下,數(shù)據(jù)已被適當(dāng)?shù)厥叭〉叫?310、1320和1330的每一者中,以用于從3-D圖形管線的第一次通過。由此,在第一次通過中,行-01310含有tex-0,行-11320含有tex-1,且行-21330含有tex-2。
圖13B是根據(jù)本發(fā)明一個(gè)實(shí)施例說明在從3-D圖形管線的第一次通過結(jié)束時(shí)在數(shù)據(jù)寫入單元處將數(shù)據(jù)從最后行(行1330)轉(zhuǎn)送到第一行(行1310)的圖13A的像素包的三個(gè)行的方框圖。如表1中所示,在第一次通過中,行-21330產(chǎn)生結(jié)果R-0。數(shù)據(jù)寫入單元能夠?qū)⒔Y(jié)果R-0轉(zhuǎn)送到行-01310(如圖13B中的箭頭所示)。結(jié)果R-0重寫tex-0的部分。
圖13C是根據(jù)本發(fā)明一個(gè)實(shí)施例的在從3-D圖形管線的第二次通過開始時(shí)圖13A的像素包的三個(gè)行的方框圖。如圖13C中所示,行-01310包括結(jié)果R-0以及所拾取的tex-3信息。因此,由于所有輸入數(shù)據(jù)均可用,所以在第二次通過中對(duì)行-0進(jìn)行操作是可能的。由于數(shù)據(jù)寫入單元的行轉(zhuǎn)送能力,避免了像素包的處理的停止,因?yàn)樵趶?-D圖形管線的第一次通過期間轉(zhuǎn)送結(jié)果R-0。
因此,本發(fā)明在各個(gè)實(shí)施例中提供一種用于在3-D圖形管線中行轉(zhuǎn)送像素?cái)?shù)據(jù)的系統(tǒng)和方法。本發(fā)明提供在功能性上為靈活且不受限制的通用可編程數(shù)據(jù)寫入級(jí)。另外,本發(fā)明提供一種數(shù)據(jù)寫入級(jí),其包括一般高速緩沖存儲(chǔ)器以支持通用可編程數(shù)據(jù)寫入級(jí)。另外,本發(fā)明提供具有任意大小的高速緩沖存儲(chǔ)器以增加數(shù)據(jù)寫入級(jí)處的3-D圖形管線的有效帶寬。此外,本發(fā)明提供通過像素包的行信息序列來行轉(zhuǎn)送數(shù)據(jù)以減少通過3-D圖形管線來處理像素包所需的時(shí)鐘周期的數(shù)目。
已經(jīng)出于說明和描述的目的呈現(xiàn)了本發(fā)明具體實(shí)施例的前文描述內(nèi)容。不希望它們是詳盡的或?qū)⒈景l(fā)明限于所揭示的精確形式,且顯然,按照上述教示,很多修改和變化均是可能的。選擇并描述所述實(shí)施例是為了最好地闡釋本發(fā)明的原理和其實(shí)際應(yīng)用,從而使所屬領(lǐng)域的技術(shù)人員能夠最好地利用本發(fā)明,且具有各種修改的各種實(shí)施例適合于所期望的特定使用。希望本發(fā)明的范圍由所附權(quán)利要求書和其均等物來界定。
在廣義概括中,此敘述已經(jīng)描述了一種用于在3-D圖形管線中包括一般高速緩沖存儲(chǔ)器的數(shù)據(jù)寫入單元的系統(tǒng)和方法。具體地說,在一個(gè)實(shí)施例中,數(shù)據(jù)寫入單元包括一第一存儲(chǔ)器、復(fù)數(shù)個(gè)高速緩沖存儲(chǔ)器和一數(shù)據(jù)寫入電路。第一存儲(chǔ)器接收與一像素相關(guān)聯(lián)的像素包。所述像素包包括與所述像素的表面特征有關(guān)的數(shù)據(jù)。復(fù)數(shù)個(gè)高速緩沖存儲(chǔ)器耦合到第一存儲(chǔ)器以用于存儲(chǔ)與復(fù)數(shù)個(gè)像素的復(fù)數(shù)個(gè)表面特征相關(guān)聯(lián)的像素信息。復(fù)數(shù)個(gè)高速緩沖存儲(chǔ)器中的每一者均與指定表面特征可編程地相關(guān)聯(lián)。數(shù)據(jù)寫入電路耦合到第一存儲(chǔ)器和復(fù)數(shù)個(gè)高速緩沖存儲(chǔ)器。數(shù)據(jù)寫入電路可在程序控制下操作以獲得像素包的指定部分以存儲(chǔ)到復(fù)數(shù)個(gè)高速緩沖存儲(chǔ)器中。
權(quán)利要求
1.一種用于一圖形管線中的數(shù)據(jù)寫入單元,所述數(shù)據(jù)寫入單元包含一第一存儲(chǔ)器,其用于接收一與一像素相關(guān)聯(lián)的像素包,所述像素包包含與所述像素的表面特征有關(guān)的數(shù)據(jù);復(fù)數(shù)個(gè)高速緩沖存儲(chǔ)器,其耦合到所述第一存儲(chǔ)器以用于存儲(chǔ)與復(fù)數(shù)個(gè)像素的復(fù)數(shù)個(gè)表面特征相關(guān)聯(lián)的像素信息,其中所述復(fù)數(shù)個(gè)高速緩沖存儲(chǔ)器中的每一者與一指定表面特征可編程地相關(guān)聯(lián);和一數(shù)據(jù)寫入電路,其耦合到所述第一存儲(chǔ)器和所述復(fù)數(shù)個(gè)高速緩沖存儲(chǔ)器,且可在程序控制下操作以獲得所述像素包的指定部分以存儲(chǔ)到所述復(fù)數(shù)個(gè)高速緩沖存儲(chǔ)器中。
2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)寫入單元,其中所述復(fù)數(shù)個(gè)高速緩沖存儲(chǔ)器包含一第一高速緩沖存儲(chǔ)器,其具有指定寬度且用于存儲(chǔ)與一第一表面特征相關(guān)聯(lián)的像素信息;和一第二高速緩沖存儲(chǔ)器,其具有所述指定寬度且用于存儲(chǔ)與一第二表面特征相關(guān)聯(lián)的像素信息。
3.根據(jù)權(quán)利要求1所述的數(shù)據(jù)寫入單元,其中所述復(fù)數(shù)個(gè)像素的一表面特征為色彩。
4.根據(jù)權(quán)利要求1所述的數(shù)據(jù)寫入單元,其中所述復(fù)數(shù)個(gè)像素的一表面特征為深度。
5.根據(jù)權(quán)利要求1所述的數(shù)據(jù)寫入單元,其中所述像素包包含至少一個(gè)行像素信息。
6.根據(jù)權(quán)利要求5所述的數(shù)據(jù)寫入單元,其中一第一行信息包括一取消指定,且其中所述數(shù)據(jù)寫入電路可操作以僅在所述取消指定未被設(shè)定時(shí)寫入來自所述第一行像素信息的數(shù)據(jù)。
7.根據(jù)權(quán)利要求5所述的數(shù)據(jù)寫入單元,其中所述像素包中的每行信息均包括一取消指定,且其中所述數(shù)據(jù)寫入電路可操作以僅在所述像素包的所有取消指定均未被設(shè)定時(shí)寫入來自所述像素包的數(shù)據(jù)。
8.根據(jù)權(quán)利要求1所述的數(shù)據(jù)寫入單元,其進(jìn)一步包含一組指令,其作為用于由所述數(shù)據(jù)寫入電路對(duì)所述像素包進(jìn)行的操作的所述程序控制。
9.根據(jù)權(quán)利要求1所述的數(shù)據(jù)寫入單元,其中所述復(fù)數(shù)個(gè)高速緩沖存儲(chǔ)器中的每一者的內(nèi)容被周期性地清洗到一存儲(chǔ)器子單元。
10.根據(jù)權(quán)利要求1所述的數(shù)據(jù)寫入單元,其中所述復(fù)數(shù)個(gè)高速緩沖存儲(chǔ)器中的每一者均包含一雙緩沖器,所述雙緩沖器包含一從所述數(shù)據(jù)寫入電路接收信息的主動(dòng)高速緩沖存儲(chǔ)器和一將信息清洗到一存儲(chǔ)器子單元的清洗高速緩沖存儲(chǔ)器。
11.根據(jù)權(quán)利要求1所述的數(shù)據(jù)寫入單元,其中所述復(fù)數(shù)個(gè)高速緩沖存儲(chǔ)器中的每一者均包含復(fù)數(shù)個(gè)緩沖器以用于從所述數(shù)據(jù)寫入電路接收信息和用于將信息清洗到一存儲(chǔ)器子單元。
12.根據(jù)權(quán)利要求1所述的數(shù)據(jù)寫入單元,其中所述第一存儲(chǔ)器可操作以存儲(chǔ)與所述數(shù)據(jù)寫入電路所操作的復(fù)數(shù)個(gè)像素相關(guān)聯(lián)的復(fù)數(shù)個(gè)交錯(cuò)行像素包。
13.一種寫入來自一圖形管線的數(shù)據(jù)的方法,其包含a)接收與一像素相關(guān)聯(lián)的一像素包的一行信息,所述像素包包含與所述像素的表面特征有關(guān)的數(shù)據(jù);b)存取所述行信息的一第一指定部分,所述第一指定部分與所述像素的一第一表面特征可編程地相關(guān)聯(lián);和c)將所述像素包的所述第一指定部分寫入到一第一高速緩沖存儲(chǔ)器,其中所述第一高速緩沖存儲(chǔ)器用于存儲(chǔ)復(fù)數(shù)個(gè)像素的第一表面特征。
14.根據(jù)權(quán)利要求13所述的方法,其進(jìn)一步包含d)存取所述像素包的一第二行的一第二指定部分,所述第二指定部分與所述像素的一第二表面特征可編程地相關(guān)聯(lián);和e)將所述像素包的所述第二指定部分寫入到一第二高速緩沖存儲(chǔ)器,其中所述第二高速緩沖存儲(chǔ)器用于存儲(chǔ)所述復(fù)數(shù)個(gè)像素的第二表面特征。
15.根據(jù)權(quán)利要求14所述的方法,其中所述第一行與所述第二行為相同行。
16.根據(jù)權(quán)利要求14所述的方法,其中所述第一表面特征為色彩且所述第二表面特征為深度。
17.根據(jù)權(quán)利要求13所述的方法,其中所述第一表面特征為色彩。
18.根據(jù)權(quán)利要求13所述的方法,其中所述第一表面特征為深度。
19.根據(jù)權(quán)利要求13所述的方法,其進(jìn)一步包含d)周期性地清洗所述第一高速緩沖存儲(chǔ)器,其中所述第一高速緩沖存儲(chǔ)器包含一主動(dòng)高速緩沖存儲(chǔ)器和一清洗高速緩沖存儲(chǔ)器,所述清洗包含d1)將所述像素的所述第一表面特征主動(dòng)地存儲(chǔ)在所述主動(dòng)高速緩沖存儲(chǔ)器中;和d2)將所述清洗高速緩沖存儲(chǔ)器的內(nèi)容清洗到所述存儲(chǔ)器子單元。
20.根據(jù)權(quán)利要求19所述的方法,其進(jìn)一步包含在一幀或渲染結(jié)束時(shí)清洗所述主動(dòng)高速緩沖存儲(chǔ)器。
21.根據(jù)權(quán)利要求14所述的方法,其進(jìn)一步包含d)周期性地清洗所述第二高速緩沖存儲(chǔ)器,其中所述第二高速緩沖存儲(chǔ)器包含一主動(dòng)高速緩沖存儲(chǔ)器和一清洗高速緩沖存儲(chǔ)器,所述清洗包含d1)將所述像素的所述第二表面特征主動(dòng)地存儲(chǔ)在所述主動(dòng)高速緩沖存儲(chǔ)器中;和d2)將所述清洗高速緩沖存儲(chǔ)器的內(nèi)容清洗到所述存儲(chǔ)器子單元。
22.根據(jù)權(quán)利要求13所述的方法,其中c)進(jìn)一步包含c1)當(dāng)一寫入啟用被設(shè)定時(shí)且僅當(dāng)一取消指定未被設(shè)定在所述行像素信息中時(shí)寫入所述第一指定部分。
23.根據(jù)權(quán)利要求22所述的方法,其進(jìn)一步包含僅在與所述像素包的復(fù)數(shù)個(gè)行相關(guān)聯(lián)的復(fù)數(shù)個(gè)取消指定未被設(shè)定時(shí),寫入所述第一指定部分。
24.一種用于一支持一手持式裝置的圖形管線中的數(shù)據(jù)寫入單元,所述數(shù)據(jù)寫入單元包含一第一存儲(chǔ)器,其用于接收與一像素相關(guān)聯(lián)的一像素包的至少一個(gè)行像素信息,所述像素包包含與所述像素的表面特征有關(guān)的數(shù)據(jù);一第一高速緩沖存儲(chǔ)器,其用于存儲(chǔ)與復(fù)數(shù)個(gè)像素的一第一表面特征相關(guān)聯(lián)的像素信息;一第二高速緩沖存儲(chǔ)器,其用于存儲(chǔ)與復(fù)數(shù)個(gè)像素的一第二表面特征相關(guān)聯(lián)的像素信息;和一數(shù)據(jù)寫入電路,其可在程序控制下操作以獲得一第一行像素信息的一第一指定部分以存儲(chǔ)到所述第一高速緩沖存儲(chǔ)器中,且可在程序控制下進(jìn)一步操作以獲得一第二行像素信息的一第二指定部分以存儲(chǔ)到所述第二高速緩沖存儲(chǔ)器中。
25.根據(jù)權(quán)利要求24所述的數(shù)據(jù)寫入單元,其中所述第一行像素信息與所述第二行像素信息相同。
26.根據(jù)權(quán)利要求24所述的數(shù)據(jù)寫入單元,其中所述第一表面特征為色彩。
27.根據(jù)權(quán)利要求26所述的數(shù)據(jù)寫入單元,其中所述第二表面特征為深度。
28.根據(jù)權(quán)利要求24所述的數(shù)據(jù)寫入單元,其中所述第一表面特征為深度且所述第二表面特征為色彩。
29.根據(jù)權(quán)利要求24所述的數(shù)據(jù)寫入單元,其中所述數(shù)據(jù)寫入單元響應(yīng)于一指令格式,所述指令格式包含一將一行像素信息的一部分作為一源的指定和一將一高速緩沖存儲(chǔ)器作為一目的地的指定。
30.根據(jù)權(quán)利要求24所述的數(shù)據(jù)寫入單元,其中所述第一高速緩沖存儲(chǔ)器和所述第二高速緩沖存儲(chǔ)器的內(nèi)容被周期性地清洗到一存儲(chǔ)器子單元。
31.根據(jù)權(quán)利要求24所述的數(shù)據(jù)寫入單元,其中所述第一高速緩沖存儲(chǔ)器和所述第二高速緩沖存儲(chǔ)器每一者均包含一雙緩沖器,所述雙緩沖器包含一從所述數(shù)據(jù)寫入電路接收信息的主動(dòng)高速緩沖存儲(chǔ)器和一被清洗到一存儲(chǔ)器子單元的清洗高速緩沖存儲(chǔ)器。
全文摘要
本發(fā)明提供一種用于在一3-D圖形管線中的一包括一般高速緩沖存儲(chǔ)器的數(shù)據(jù)寫入單元的系統(tǒng)和方法。具體地說,在一個(gè)實(shí)施例中,一數(shù)據(jù)寫入單元包括一第一存儲(chǔ)器、復(fù)數(shù)個(gè)高速緩沖存儲(chǔ)器和一數(shù)據(jù)寫入電路。
文檔編號(hào)G06T1/60GK1954356SQ200580015435
公開日2007年4月25日 申請(qǐng)日期2005年5月14日 優(yōu)先權(quán)日2004年5月14日
發(fā)明者愛德華·A·哈欽斯, 保羅·金, 布賴恩·K·安杰爾 申請(qǐng)人:輝達(dá)公司