2013.05.07 16:10

Tegra 4架構完全解析,舊架構新核心重裝上陣

ADVERTISEMENT

在數位科技近幾年的發展中,大家對智慧型手機與平板電腦等行動裝置的依賴性越來越高,行動裝置的功能也進化為瀏覽網頁、執行遊戲等運算負擔較為吃重的工作。在這波發展趨勢的帶動下,行動裝置對處理器性能的需求也越來越高,推陳出新周期更逐漸追上電腦的腳步。NVIDIA將在今年推出,持續進攻行動裝置市場。

初代Tegra默默無名

在2008年的時候,NVIDIA發表了Tegra APX與Tegra 600系列處理器,前者主攻智慧型手機市場,而後者的目標是車用電腦與小筆電,處理器核心皆為採用ARMv6架構的ARM11MPCore家族處理器。然而直到2009年9月,Tegra才隨著Microsoft Zune HD的推出,正式投入市場,第一支採用Tegra的手機則是由Microsoft Kin拔得頭籌。

在2010年1月的消費性電子展(CES)中,,核心皆架構從ARMv6提升至ARMv7,獲得許多廠商青睞,提升Tegra在市場上的能見度。不過它缺少NEON指令集,所以對於多媒體支援力比較薄弱,以至於無法播放1080p High Profile的影片。

ADVERTISEMENT

Tegra 3發光發熱

選擇超人名字Kal-El作為開發代號的,似乎想要藉此透露它能夠提供超乎尋常的力量,Tegra 3是全球第一款四核心ARM Cortex-A9處理器,並且具有12個GeForce GPU核心,為了提高電力效率的4+1核心設計,也添增了與其他產品的區隔性。

透過NEON加強多媒體功能

NEON指令集又稱為MPE(Media Processing Engine,媒體處理引擎),為64、128位元混合式SIMD指令集,雖內建於所有Cortex-A8處理器核心,但是在Cortex-A9卻成為選配。NEON技術可以加速多媒體與訊號處理演算法,可應用於多媒體編、解碼與2D、3D繪圖等領域,根據ARM官方資料的敘述,NEON至少能提供2倍於ARMv6 SIMD性能。

架構依舊,核心翻新

Tegra 4雖然沿用上代4+1核心架構,但處理器核心從前代的Cortex-A9,提升為Cortex-A15,圖形處理器無論在核心數量及時脈上,都有明顯的提升。據NVIDIA公布的消息,Tegra 4能夠提供20倍於,或是6倍於Tegra 3的繪圖效能,可以期待Tegra 4帶來更好的運算性能。

協同核心再現

NVIDIA曾在2012年行動通訊大會(MWC)中表示,四核心將成為自家SoC晶片的標準規格,四核心的運算性能對於大部分使用者來說已經十分充足,名號也能夠滿足行銷面的需求,在電源管理機制設計得當的前提下,四核心的電力消耗並不會帶來太多負面影響。然而其明顯的缺點,或許只有生產成本的考量。

ADVERTISEMENT

為了提升續航力,Tegra 4延續了Tegra 3的省電概念,在晶片中塞入第五顆處理器核心,不過名稱從協同核心(companion core)改為省電核心(battery saver core)。當裝置處於背景處理郵件、社交軟體同步,或是播放影片、音樂等,低效能需求情境時,系統將關閉正常核心,並使用省電核心負責執行程式。為了進一步節省電力,當系統進入省電模式時,正常核心中2MB的L2快取記憶體(L2 Cache)也會一併關閉,改為使用獨立的512KB L2快取記憶體。

▲左邊的晶片為Tegra 4的本體,右邊的晶片則為i500軟體數據晶片。Tegra 4晶片中上方金色的部分為省電核心,下方則是4顆正常核心,左右兩側綠色部分即為72個GeForce核心。(圖片來源:)

ADVERTISEMENT

執行單元與吞吐量提升

Tegra 4所採用的Cortex-A15核心具有8個執行單元,能在單一時脈中執行8個指令,相較於Cortex-A9只有5個執行單元,可以有效提高效能。但是增加執行單元的效果並不是白吃的午餐,處理器的效能與記憶體延遲有緊密的關連性,如果因頻寬、延遲,或是快取失敗等因素,造成處理器閒置等待資料送入的話,就會嚴重影響效能表現。

為了要發揮額外執行單元的效能,處理器必需要提高指令平行化(Instruction Level Parallelism)的程度,藉由更深層的亂序執行(Out-of-Order execution),榨乾每個執行單元的效能。在此同時,記憶體平行化(Memory Level Parallelism)的需求也會一併提高,以應付處理器對快取及分支預測的依賴。

亂序執行提高整體效能

預先讀取指令是提高亂序執行的效率的重點,如果擴大亂序找查窗口(Out-of-Order lookup window),能增加預讀命中的可能性,進而減少當預讀錯誤時所造成的延遲與處理器資源閒置。

ADVERTISEMENT

根據NVIDIA官方提供的Tegra 4白皮書,Tegra 4具有128個微動作(micro-operation)找查窗口(Out-of-Order lookup window),而競爭對手Quualcomm Krait架構只有40個。一般來說,1個ARM指令通常只會對應1個微動作,但是部分比較複雜(偏向CISS架構)的指令,可能包含2個或更多微動作,當處理器執行這種指令時,較多的找查窗口有助於分支預測以及亂序存取記憶體,大幅提高記憶體平行化程度,有效增進效能。

▲Tegra 4、4i規格對照表

微動作為指令元素

處理器可接受最基本的工作敘述稱為指令(instruction),也稱為巨稱集指令(macro-instruction),當指令被存入暫存器(register)之後,就會進行解碼動作,每條指令可以被分解成許多處理器的動作,這些所得的動作就稱為微動作。例如使算術邏輯單元進行1次運算,或是將暫存器資料寫入匯流排(bus),都是微動作的範例。

分享式L2快取快又省電

Tegra 4的每個正常核心中,L1具有指令與資料快取記憶體各32KB,4個核心共享2MB容量L2快取記憶體。L2快取記憶體可依使用情況切割為不同大小,分配給不同的核心使用,例如可以切1280KB給負擔較大的核心,其他3個核心則各使用256KB,若是執行多執行緒程式時,不同核心也能共用同一塊快取區域。這種共享式設計可以最大化快取記憶體效益,減少快取失敗的發生機率,進而減少向主記憶體讀取資料的次數,得到節省電力的附加效果。

NVIDIA也在白皮書中抨擊對手,指Krait的4個核心各自獨立搭載512KB容量L2快取記憶體,雖然總容量一樣,但是當程式需要512KB以上空間時,快取記憶體即無法負荷,勢必增加快取失敗的機率。此外當某一核心要存取其他核心中的快取時,跨核心資料交換的延遲將大幅增加,且Krait的非同步對稱多工技術(Asynchronous SMP)准許各核心運作於不同時脈,當高速運行中核心要與低速核心交換資料時,也需承受效能耗損。

▲Tegra 4共享式L2快取記憶體擁有比較大的使用彈性,而Krait的獨立式設計不但無法應負512KB以上容量需求,存取不同時脈核心的資料時,對效能的影響也比較大。

延伸閱讀:

(後面還有更多Tegra 4介紹!)

ADVERTISEMENT