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