關于手機的CPU頻率描述如下:“大四核2.6GHz,小四核2.1GHz”。
大四核?小四核?這款CPU到底是幾個核?
答案:4+4=8,八核!
雖然在核的數量是4+4,但是大核和小核的分工是不一樣的,詳情如下:
主處理器2.6G四核,用于運行型程序;
協處理器2.1G四核,處理些普通應用程序,比較省電。
這就是所謂的八核手機。
為什么要這樣設計呢?
原因很簡單:CPU沒有頻率自動調節功能,只能采用高性能4核+低性能4核的組合來延長續航時間,負載高的時候用高性能4核“跑”,負載低的時候低性能4核“跑”了。
Smart!給這樣的設計點個贊吧!
1. 大小核處理器的問世
三星電子于2013年1月9日(周三)在CES展會上發布了用于智能手機和平板電腦的Exynos 5 Octa處理器。該處理器芯片實際上是在一個芯片封裝中包含兩個四核芯片,這種8核處理器使用一種新的架構,能夠在不減少電池使用壽命的情況下提供更多的性能。四個高性能內核用于游戲和視頻重放等繁重的任務。四個功能不太強大的內核用于文本和電子郵件等節能的普通的任務。

三星Exynos 5 Octa發布(圖片來自christianpost)
Exynos 5 Octa內部的A15和A7架構處理核心都采用自家的28nm HKMG工藝打造,A7核心主頻介于200MHz至1.20GHz之間,A15核心則是200MHz至1.8GHz,兩顆CPU都有獨立的電源門控制。
隨著Samsung S4的問世,全球首款雙四核移動處理器(并不能算是真正意義上的八核,因為八個CPU并不是同時工作,而是分為兩個四核分別運作)正式登場,基于ARM的ARM big.LITTLE/Cortex A15架構(也就是所謂的大小核架構),號稱是一種低功耗,高性能的移動處理器架構。它的大小分別為主頻在1.8GHz的A15處理器,負責處理整段的高負荷任務;A7主頻為1.2GHz的處理器負責碎片化的輕量級任務。
“這款雙四核處理器的具備低功耗和高性能的特色,其3D性能將達到市面所有產品的兩倍之多。”——來自三星的宣言。
S4是成功驗證了CPU“大小核”的設計的先進性,那么這個設計的靈感來自于哪里呢?
2. 異步多核的思想
很多讀者對移動CPU的異步多核的概念不是很理解,它作為高通驍龍系列的一大特色,它和同步多核處理器之間又有什么區別?各有什么優勢呢?異步多核處理器又是怎么達到節能目的?與三星Exynos 5440這一類“大小核”的處理器又會有什么差別呢?
異步多核,或者叫aSMP(asynchronous SMP),是由高通提出的,并應用在自家的Snapdragon S3/S4處理器中。之前也有過不少爭論,比如:
觀點一:異步多核核心之間不能通訊,稱之為“膠水雙核”;
觀點二:異步多核同時只能有一個核心接受指令,效率很低。
究竟孰是孰非?
這些實際上都是不對的,Sure!
首先來回答:什么是異步多核?
異步多核,其重點在于頻率異步,可以將它稱為異步頻率架構(Asynchronous Clock Architecture)。在這樣設計的多核處理器中,每個核心都可以工作在不同的電壓和頻率下。這樣,可以將計算繁重的任務交給一個工作在高頻的核心,而壓力較小的任務則可以讓一個工作在低頻的,較慢的核心去負擔。而在同步多核中,所有的核心都只能工作在相同的電壓和頻率下。
還是不理解?那么請看下面的實例:
如下圖所示,當有兩個任務,一個計算負荷較重,而另一個計算負荷較輕時(圖中紫色部分表示任務的計算負荷),異步多核可以讓負荷較重的核心CPU0工作在較高的頻率(圖中藍色部分代表頻率),而負荷較輕的核心CPU1工作在較低的頻率和電壓下,由此來減小功耗。
而同步多核的CPU1雖然負荷較輕,但由于架構限制,只能和CPU0保持同樣的高頻率和高電壓,由此浪費了更多的能量,而在高通實際的設計中,不僅多個核心可以工作在不同的電壓和頻率下,它們共享的L2緩存也可以根據實際的負荷,工作在一個單獨的電壓和頻率下,從而最大限度的節能。

相同任務下的同步多核與異步多核的功耗比較
異步多核架構看上去確實很美好,但實際上并不是完美的。在一些情況下,異步頻率架構會發生性能的損失:
一種情況是,當一個CPU的L1緩存沒有命中,需要去L2緩存取數據時,由于異步多核架構的各個核心和L2緩存工作在不同的頻率下,需要更多的時間去完成數據的傳輸,如圖中A的箭頭所示。例如高通S4,其Krait CPU核心可以工作在最高1.5GHz下,而L2緩存的最高頻率為1.3GHz,如果L2緩存處于頻率更低的節能狀態,此時核心就需要等待L2緩存完成傳輸。

另一種情況下會損失更多的性能。當其中一個核心,例如CPU0的L1緩存沒有命中,需要的數據在CPU1的L1緩存時,則數據需要從CPU1的L1緩存傳輸到CPU0的L1緩存,如圖中B箭頭所示。如果此時恰好CPU1的負擔比較輕,處在較低的工作頻率下,則需要很長的時間才能完成數據傳輸,而工作在高頻的CPU0則被浪費在了等待中。
