Tegra 2 GeForce處理架構(gòu)及功耗介紹
雙核處理器或許讓消費(fèi)者對(duì)于Tegra 2的功耗問題比較擔(dān)心,而雙核處理器再加上GeForce內(nèi)核,頓時(shí)讓很多人對(duì)于Tegra 2的功耗問題更加懷疑和關(guān)注。的確,現(xiàn)在手機(jī)續(xù)航時(shí)間短已經(jīng)成為 智能手機(jī) 的一個(gè)普遍現(xiàn)象,而Tegra 2同樣也繞不開功耗的問題,下面我們就來看看Tegra 2中的GeForce內(nèi)核架構(gòu)以及它如何實(shí)現(xiàn)功耗的控制。
GeForce架構(gòu)是一種固定函數(shù)管線架構(gòu),包括完全可編程的像素和頂點(diǎn)著色器,以及一個(gè)先進(jìn)的紋理單元,可支持高品質(zhì)的各向異性過濾。
Tegra 2處理器中的GeForce架構(gòu)
GeForce包含四個(gè)像素著色器內(nèi)核和四個(gè)頂點(diǎn)著色和內(nèi)核,專用于高速頂點(diǎn)和像素處理。GPU管線在像素管線中使用FP20數(shù)據(jù)精度的80位RBGA像素格式,在頂點(diǎn)管線中則使用FP32 精度的80位RBGA像素格式。它還實(shí)現(xiàn)了一種獨(dú)一無二和專有的各向異性過濾 (AF) 算法,該算法優(yōu)于許多 臺(tái)式機(jī) GPU所使用的AF技術(shù)。該架構(gòu)支持各種高級(jí)特性,例如高動(dòng)態(tài)范圍 (HDR) 照明、多重渲染目標(biāo) (MRT),并且兩種紋理支持均不會(huì)帶來功耗。該架構(gòu)同時(shí)支持 DXT 和 ETC 紋理格式。
雖然GeForce架構(gòu)是一種類似于OpenGL ES 2.0標(biāo)準(zhǔn)定義的管線架構(gòu),但它還包含一些特殊特性和自定義功能,可顯著降低功耗并提供更高的性能和圖形質(zhì)量。Tegra 2移動(dòng)處理器中實(shí)現(xiàn)的一些獨(dú)特特性包括:
1、Early‐Z 支持,專用于過濾掉不可見的像素。
2、集成像素著色器 (Pixel Shader) 和混合單元 (Blend Unit),可實(shí)現(xiàn)編程靈活性和更高的性能。
3、像素緩存、紋理緩存、頂點(diǎn)和屬性緩存,可減少內(nèi)存操作。
4、獨(dú)特的 5 倍覆蓋采樣抗鋸齒 (CSAA) 技術(shù),可在更低的內(nèi)存帶寬下實(shí)現(xiàn)更高的圖像質(zhì)量。
5、高級(jí)各向異性過濾 (AF),可實(shí)現(xiàn)高細(xì)節(jié)紋理。
6、內(nèi)部開發(fā)的自定義內(nèi)存控制器,可提高 GPU 性能和降低功耗。
7、實(shí)現(xiàn)超低功耗的眾多電源管理功能。
Early–Z 技術(shù)
現(xiàn)代 GPU使用Z緩沖(也稱作深度緩沖)來跟蹤該場(chǎng)景中的可見但由于被其他像素遮擋而不需要顯示的像素。每個(gè)像素在Z緩沖中都有相應(yīng)的Z信息。單一3D幀會(huì)經(jīng)過處理并轉(zhuǎn)換為2D圖像,以便在 顯示器 上顯示。該幀由從主機(jī)發(fā)送至GPU的頂點(diǎn)順序流構(gòu)成。多邊形將由頂點(diǎn)流組配而成,并且會(huì)生成和呈現(xiàn)2D屏幕空間像素。
在指定時(shí)間單元(如1/60秒)內(nèi)構(gòu)建單一2D幀的過程中,多個(gè)多邊形及其相應(yīng)像素可能會(huì)覆蓋相同的基于2D屏幕的像素位置。這經(jīng)常被稱作深度復(fù)雜性,并且現(xiàn)代游戲的深度復(fù)雜性可能達(dá)到 3、4 或者更高,即在覆蓋相同 2D 屏幕位置的幀中呈現(xiàn) 3 個(gè)、4 個(gè)或更多像素。
想象首次在頂點(diǎn)流中處理構(gòu)成某塊墻的多邊形(和由此產(chǎn)生的像素),以構(gòu)建場(chǎng)景。接下來,處理位于墻前面的一把椅子的多邊形和像素。對(duì)于特定的2D屏幕像素位置,觀眾最終只能看到一個(gè)像素,即椅子的像素或墻的像素。椅子離觀眾更近,因此會(huì)顯示它的像素。(請(qǐng)注意,某些對(duì)象可能是透明的,并且透明對(duì)象的像素可以與背景中已有的不透明或透明像素相混合,或者與之前幀的幀緩沖區(qū)中的已有像素相混合)。
緩沖示例
OpenGL ES2.0 邏輯管線定義的針對(duì)各像素?cái)?shù)據(jù)的 Z 比較會(huì)在像素經(jīng)過像素著色器處理之后執(zhí)行。在像素著色處理之后評(píng)估像素的問題在于,像素必須遍歷幾乎整個(gè)管線才能最終確定堵塞且需要丟棄的像素。對(duì)于擁有數(shù)百或數(shù)千處理步驟的復(fù)雜著色器程序,所有處理都浪費(fèi)在永遠(yuǎn)不會(huì)顯示的像素上! 更重要的是,在移動(dòng)設(shè)備中,處理這些像素涉及 GPU 和共享系統(tǒng)內(nèi)存之間大量事務(wù)。由于系統(tǒng)內(nèi)存位于片外,因此內(nèi)存操作會(huì)顯著消耗電源并且會(huì)迅速耗盡電池電量。
GeForce中的Early‐Z實(shí)現(xiàn)是高端臺(tái)式GeForce中所使用的實(shí)現(xiàn)的優(yōu)化版本。Early‐Z操作會(huì)測(cè)試所有像素的Z深度并僅將可見像素傳遞給像素著色器塊。通過執(zhí)行Early‐Z操作,GeForce架構(gòu)會(huì)僅獲取通過Z測(cè)試的可用像素的Z值、顏色和紋理數(shù)據(jù)。Early‐Z效率極高,可準(zhǔn)確檢測(cè)出和丟棄隱藏像素。
Early‐Z處理的主要優(yōu)勢(shì)在于它不僅可通過減少GPU與片外系統(tǒng)內(nèi)存之間的內(nèi)存流量來顯著降低功耗,而且速度也要快于其他 Z 比較算法。大多數(shù)情況下,高效的Early‐Z都可以識(shí)別和丟棄隱藏像素。但在極少數(shù)情況下,對(duì)于一些特殊場(chǎng)景程序員可能需要在像素著色完成之后隱藏像素。對(duì)于這些極少數(shù)的情況,GeForce管線實(shí)現(xiàn)了一種后期階段深度計(jì)算,并混合于集成像素著色器和混合單元中。
像素和紋理緩存可減少內(nèi)存操作
傳統(tǒng)的OpenGL GPU管線指定紋理、深度、顏色等像素信息存儲(chǔ)在系統(tǒng)內(nèi)存(或幀緩沖存儲(chǔ)器)中。在像素處理階段,像素信息會(huì)在內(nèi)存之間來回移動(dòng)。這就需要在片外系統(tǒng)執(zhí)行大量?jī)?nèi)存操作,從而消耗大量電能。GeForce架構(gòu)實(shí)現(xiàn)了片上像素、紋理和屬性緩存,以及獨(dú)特的緩存管理算法,不僅可減少系統(tǒng)內(nèi)存操作,而且還可以最大限度地利用這些緩存。
像素緩存用于存儲(chǔ)像素的片上Z值和顏色值,并且適應(yīng)于所有重復(fù)訪問的像素,比如用戶界面組件。此外,由于像素顏色和深度數(shù)據(jù)在許多其他圖形場(chǎng)景圖像中的良好空間及時(shí)間局部性,像素緩存可提供非常理想的緩存命中率,并且可降低訪問系統(tǒng)內(nèi)存的需要。
紋理數(shù)據(jù)具有良好的空間和時(shí)間局部性。 特定像素通常會(huì)在雙線性過濾等紋理過濾操作過程中使用許多相同的紋理元素(像素)作為相鄰像素,并且紋理經(jīng)常在圖像的至少一些幀中保持相同。因此,在片上緩存紋理數(shù)據(jù)有助于重用紋理數(shù)據(jù)以及顯著減少通過訪問系統(tǒng)內(nèi)存來獲取紋理數(shù)據(jù)。