大小核與真八核的手機八核架構之戰,閒聊核多真的了不起?

大小核與真八核的手機八核架構之戰,閒聊核多真的了不起?

智慧手機的應用處理器戰爭已經從四核瘋狂的走到了八核,目前市場上的八核設計除了 ARM 主推的 big.LITTLE 大小核之外,就是聯發科基於大小核的架構、但將兩套核心群組都採用相同的 Cortex-A7 的真八核設計,跳過 GPU 還有其它變因,也先預設大小核的雙群組協作已經可正常實現,筆者簡單的比較這兩種八核設計的狀況吧。

跳轉繼續

大小核架構的出發點很單純, ARM 考慮到新一代的高階架構 Cortex-A15 的複雜與耗電,即便大幅降頻、調低電壓仍有極限,故需要透過比 DVFS 動態時脈調節更好的方式減少平常使用的能耗,故當時的想法就是透過一組合乎日常使用的低能耗群組,搭配負責高負載運算的 Cortex-A15 ,並在兩套群組之間切換,達成理論上的平衡功耗作用。

Cortex-A15 的設計就是那麼複雜,功耗也是偏高( 2GHz 以下單核全速逼近 1.5W),所以才會採用架構精簡後的 Cortex-A7 (單核功耗約莫 0.3W )進行搭配,少了亂序執行的 Cortex-A7 雖效能不及 Cortex-A15 ,卻也逼近同時脈的 Cortex-A9 ,且晶圓尺寸更小。

大小核與真八核的手機八核架構之戰,閒聊核多真的了不起?

在大小核的理念下,就是讓兩套效能不同的群組進行互補,平常靠 Cortex-A7 ,而有較高運算需求時再轉移到 Cortex-A15 ,但高效能模式最早並非針對長時間使用,原本的想法是提供短時間的效能加速用;雖然 Cortex-A7 指令集可與 Cortex-A15 相容,理論上可進行無縫切換,不過大小核架構是有其盲點的。

關鍵就在於兩套群組的切換,因為最初的大小核設計是兩個群組無法同時運作,由兩套群組相互切換,然而為了進行無縫轉移,故記憶體的資料就需要在切換時進行緩衝,而緩衝就需要時間以及傳輸資料的能耗,如果在兩群組之間的切換越頻繁,不僅延遲會加重,更會造成耗電。

當然大小核的終極目標是希望能夠達到雙群八核共同協作,但這就需要面臨全開時的能耗與發熱是否能在手持設備的環境中維持正常運作,尤其以現在手機的被動散熱能力頂多 3W ,如果超過界限過久就只能降頻使用,否則有損害設備的可能。

大小核與真八核的手機八核架構之戰,閒聊核多真的了不起?

而聯發科真八核的作法也是同樣基於兩套處理器群組構成,不過不同的是真八核選擇兩套效能均等的 Cortex-A7 ,當然就 8 核 Cortex-A7 的效能是難以比擬有 Cortex-A15 加持的大小核架構,不過先天功耗低的 Cortex-A7 不只是能減少發熱與縮小晶圓面積而已。

因為兩套群組沒有效能高低之分,系統運作時只要知道當第一群組負載超過多高時開啟第二群組即可,也不需要去判斷負載進行群組之間的切換,只有偶而需要使用超過 4 核資源時才會需要進行記憶體資料緩衝的工作,還能減少群組切換的延遲與記憶體緩衝傳輸的功耗。

然而無論大小核或是真八核都要面對的問題是,以現在的軟體狀況,八核心到底有沒有用?答案卻有點尷尬,就如同先前讀者提出的質問一樣,現在的 Android 軟體還未全面針對多核最佳化,即便高負載的應用也只能使用到 3 核左右的資源,甚至多數的場合只使用到單核資源,至於遊戲耗損的反而是 GPU 資源,對 CPU 依賴沒有想像的高。

故以現在的軟體環境來說,單一核心的效能在實際使用體驗仍會比擁有多核顯著,大小核與真八核也因此在實際使用的多數體驗時仍是大小核吃香,但差得很多嗎?由於現在的 Android 軟體開發是以能滿足市場 80% 手機的硬體為前提,刻意拉高時脈的真八核比起隨時會因為超出架構散熱而降頻的大小核似乎也沒差那麼多。

但八核心真的無用嗎? ARM 跟聯發科也不會是笨蛋,為了發揮大小核協作與多核協作,他們也積極地與軟體開發商合作,希望透過簡單的方式讓軟體開發商透過追加幾道指令後就能開放對更多核的支援,不過在 8 核架構剛起步的現在效果還不明顯。

所以現階段廠商驗證八核的作法,最常見就是展示還未導入硬體解碼的新一代編碼 HEVC (H.265) 格式軟體編解碼,原本影音處理對於核心的數量要求就遠比核心效能重要,故在許多場合都是利用 GPU 加速實現影像的編解碼,但在手機由於 GPU 協作還未成為主流,故純以 CPU 而言,越多核心也相對有利。

以目前應用來說,多核的益處仍有待軟體廠商逐步導入對多核架構的支援與最佳化,這是需要時間換取的,是故目前四核以上的多核設計或許可視為一種火力展示,但也非全然無用,只是還未能彰顯其真正價值。