IoT與行動裝置產業的硬體革命:SoC 晶片

 

還記得我們在上一集介紹 SoC 晶片中提到,在一顆小小的晶片中,已集結了 CPU(四顆 A57 與四顆 A53 核心)、主記憶體接口( LPDDR4)、數位訊號處理器 DSP、圖形處理器 GPU(Adreno 430)…。

廢話不多說,今天這篇文章唯一的主旨就是教大家進一步能”大概”看懂這張圖── SoC 晶片。(把大概 quote 起來的意思就是不會講很深XD)

讓我們以高通的 Snapdragon 810 處理器為例,說明並比較聯發科、蘋果等各家處理器的功能。

圖片來源: 高通官網

SOC 處理器 – 多核心、異質運算

右上角的 Cortex-A57 和Cortex-A53 是什麼意思呢?為什麼會有兩款 CPU?

多核心處理器 (Multi-core processor) 是在單個處理器元件中,加入兩個或兩個以上獨立的中央處理單元,稱為核心 (Core)。

對於電腦來說,處理器核心再強,透過風扇和電源插座、也較不會有發熱和耗電的問題。

但行動裝置在拉抬處理器效能的同時,仍必須考慮發熱和耗電問題。要怎麼樣才能兼顧效能和耗電問題呢?

 

ARM 因此提出了 big.LITTLE 異質運算多核心處理器配置。ARM 將比較耗電,但運算能力強的處理器核心組成的「big 叢集」與低耗電、運算能力弱的處理器核心組成的「LITTLE 叢集」結合在一起。

「異質運算」的處理器意指,使用不同指令集架構的計算單元組成的系統。
還記得我們在 看ARM如何搶走英特爾的x86市場 一文中為大家介紹過,ARM會賣指令集架構(ISA)、也會賣有設計好電路的陽春晶片嗎?高通和蘋果一般是跟ARM買指令集架構、電路自己做。
所以高通的KryO架構、蘋果的TWISTER架構,就是自己研發的電路架構;然而聯發科或魅族等沒有自己研發電路的,就是直接跟ARM買晶片電路的SOLUTION。
而 ARM 賣的陽春晶片,目前最常見的就是 CORTEX-A 系列。又分為高性能、低功耗和超低功耗 3 類:
  • 高性能系列:A57、A72
  • 低功耗系列: A53
  • 超低功耗系列:A35、A32
異質運算就是把 A72、A57 和 A35 等採用不同的指令集架構或奈米製程工藝的核心,設計在同一個處理器裡面。

看起來有點難懂?咳咳,讓我們用通俗一點的方式講解。

手機使用者永遠都會希望手機速度越快、效能越強越好,但一般的 App 常見也只需要一個夠強的核心在跑就夠了。那能不能在手機運行的情況下、開啟高效能但耗電量也較高的核心,但手機待機或暗屏的情況下就開啟低效能但也低耗電的核心呢?

讓我們以聯發科在 2016 年發布的全球首款十核心處理器──Helio X25 為例。

Helio X25 是一款 20 奈米製程,採用了 ARM big.Little大小核心架構,十個核心由兩個 2.5GHZ 的 A72、四個 2GHZ 的 A53 與四個 1.4GHZ 的A53組成「2+4+4」結構。

很多消費者聽到都覺得:哇十核好厲害好棒棒,高通也才八核、蘋果之前還都單核心呢!但事實上,聯發科在設計十核時,並不是要讓那十顆核心同時用的。

需要高效能時,讓兩顆 A73 在跑;負載量稍低的時候變成一顆 A73 加上一兩顆 A53;負載再低時變成兩顆 A53、負載再更低時變成兩顆 A32…。

依據現在的工作需求,去切換高效能高功耗、或是低效能低功耗的處理器。如此即能做出高效能,但平均耗電低的多核心處理器,ARM 表示使用 big.LITTLE 架構,相較於只使用「big 叢集」相同 CPU 核心數量的處理器,可節省多達75%的功耗。

所以所謂的十核心,同時間啟動的核心、只約莫是二到六顆間的數字(六顆的情況已經很少了)。高通的案例也是,如果它全部的八核心同時運作起來,絕對會瞬間過熱!

一般 CPU 若要不過熱,功率瓦數約是 3 – 5 瓦之間。手機的範圍就這麼大,要散熱的話你總不能在旁邊拿電風扇一直吹它,能散的熱就只有這麼多。(NVIDIA 之前出的處理器 Tegra 就有裝風扇… )

晶片發熱的問題,歡迎參考 TDP(Thermal Design Power)。TPU 是 CPU 電流熱效應以及 CPU 工作時產生的單位時間熱量。TDP 一旦確定,就確保了電腦在不超出熱維護的情況下有能力運行程序。

只能發這麼多熱,裝這麼多 CPU 就是為了剛好讓熱的極限 TDP 4 瓦吃滿。或 4 顆 A53 一起開也是會吃滿,看你要開哪一顆。換言之,多核心其實沒什麼用,多數情況下只有一個在跑、其他都沒在用;不如一個很能打、比十個都廢物更強。

事實上,影響手機實際性能的因素很多:

1. 單核性能:都是八核,最大核是 A72 的八核和最大核是 A53 的八核就不一樣。

2. 核心數:在單個核心相同的情況下,核心數多的晶片在理論上性能會比較高,比如 Snapdragon 652 比 Snapdragon 650 更好。

3. 調度資源的機制:在切換大核心到小核心時,能不能協調得好、能真正控制好功耗。在這一點上,自主研發架構的晶片通常表現得更好,比如高通的 Kryo 架構和蘋果自主研發的 A 系列晶片架構。

 

mtk.png

用一張圖告訴你聯發科、高通和蘋果處理器的差異。(來源:網路流傳)

蘋果在 A5 (iPhone 4) 和 A5 之前的優勢還不在 CPU,那個年代它的 CPU 還蠻弱,採用的也是 ARM Cortex A系列方案,也只有單核心。

LYNN 閒聊:相比蘋果對 IOS 的控制力,GOOGLE 對 ANDROID 的開發者基本上採取了放任自流的態度。常駐後台、廣告推送、通知欄推送、彈窗推送等非常敏感的權限,ANDROID 幾乎全都提供給了開發者。
舉例來說,IOS 軟體方面鎖得比較緊,IOS 軟體是不能在背景執行的。
有興趣的讀者歡迎參考 APP PROGRAMMING GUIDE FOR IOS,內文便有表示唯獨在一些限定的情況下才能做 BACKGROUND EXECUTION,比如短時間執行的工作(執行完就得關閉了)、或是要在背後下載、背後播放或錄製聲音…。
別問為什麼不准,蘋果老大說什麼就是什麼。多半是蘋果先前的處理器只有效能強的單核心,無法像多核心處理器那樣、在高效能和低功耗之間做切換,所以為了要省電、避免浪費電池,就把背景執行的權限關掉。
之前就有 IOS 版的 FACEBOOK 工程師證實,為了要在背景執行,他們偷偷開了一個錄音功能——但它並沒有真的在錄音!
只是為了要讓程式在背景執行時不會被 IOS 鎖住而已,也是因此成了降低 IPHONE 電池壽命的元兇。目前 FACEBOOK 已經在更新後的版本中把 BACKGROUND AUDIO 砍掉了,希望不要再發生。

一直到 A6 開始,蘋果才不再使用 ARM 的晶片公版,改向 ARM 單買指令集,以 ARMv7s 為基礎自己開發 CPU 架構「Swift」雙核心處理器。

此舉也讓蘋果成為繼高通後,第二個能以 ARM 指令集為基礎開發 SoC 的公司。

A5 晶片的製程採用 32 奈米、ISA 指令集架構用 ARM v7、單核心 Cortex-A9。

A6 晶片的製程採用 32 奈米、ISA 指令集架構用 ARM v7、雙核心 Swift。

(圖片來源: Wiki) (不清楚甚麼是 HKMG 的讀者歡迎參考晶圓代工爭霸戰:台積電v.s. 三星)

然而從 iPhone 5 到 iPhone 7 之前為止,蘋果的處理器也都是維持使用兩顆雙核心,且兩顆核心一樣大。

相較於高通八核、聯發科十核,雖然蘋果處理器的核心數少,但效能卻很強。當然,耗電量也非常快。(備註: 蘋果 IC 設計的實力,堪稱是一家處理器公司)

當然你可能會好奇,蘋果之前雖然有雙核心,但卻不是一大一小、而是兩顆一樣都是功耗大和效能強的核心,該怎麼控制耗電量呢?

除了使用管得比較嚴格的 iOS 作業系統之外,蘋果在 A7 (iPhone 5S) 處理器開始多了一顆協同處理器 (Coprocessor) M7,但這顆處理器非常弱,專門拿來管理手機硬體感測器,如陀螺儀、加速感應與指南針的資訊。

之前蘋果在管理周邊感測器的方式,是使用核心的處理器去管理。事實上處理感測器訊號這件事情並不太複雜,然而為了要管理這些感測器,需要喚醒整顆處理器、管理完後再進入休眠。萬一這些訊號比較頻繁,就會變成持續性的耗電。

蘋果在 A7 開始,則是將這些接收感測器指令的動作分離出來,透過這顆 M7 進行管理。

由於 M7 基本上是基於低功耗架構所作,且其目的僅為了管理這些感測器,架構可以做的相當精簡,加上是為管理感測器最佳化,不像處理器的 CPU 架構還要支援指令集以及通用運算,能將功耗降的比較低。

螢幕快照 2017-04-27 11.39.00.png

 一直要到 2016 年底,蘋果才發表了同樣指令集架構的異質處理器 A10 Fusion (搭載在 iPhone 7上) ,採用自己開發的架構 Twister ,最大的變化就是雙核變四核── 2 大核 + 2 小核。但要麼就是大的兩顆在跑、或小的兩顆在跑,絕不會同時一起跑。

這和你看到其他的 Android 手機,像是高通 Snapdragon 或是聯發科 Helio 晶片的異質處理器──兩顆 A73 加上四顆 A53 這種可以獨立開關的設計不太一樣。

 

記憶體

在手機上的硬碟採用 NAND Flash (快閃記憶體)。雖然 NAND Flash 的名稱中有記憶體,但它比較偏向硬碟的角色、拿來存資料用,不是一般講的記憶體。

那主記憶體呢?手機記憶體的規格一般就是 LDPPR3、LDPPR4。LPDDR 基本上是一個「介面」,可以讓你接記憶體 IC 上去。

若要講得更精確一點——還記得在DRAM、NAND Flash 最近貴到炸,你還搞不懂記憶體的差異嗎? 一文中介紹過的 DDR 嗎?LPDDR 是低功耗記憶體的通信標準,以低功耗和小體積著稱,專門用於行動電子產品。

4GB RAM 的手機記憶體,早在 2015 年下半年就被部分手機廠商列為了最低標準配備。2016 年初時,中國手機廠商 Vivo 就已經打著「全球首款 6GB RAM 智慧型手機」的行銷口號推出 Xplay 5。

現在的 Android 手機,4GB RAM 算夠用,6GB RAM 成為標準配備,8GB RAM 是旗艦手機配置。

然而,2016 年底發行的 iPhone 7 給的是 2GB、 i7 Plus 給的是 3GB RAM。

… 想抱怨很少嗎?

 從以前開始,連續好幾代的 iPhone 都是 1GB RAM,比如 iPhone 5s、i6 和 i6 Plus 都是 1 GB。也因此,廠商在設計 iOS APP 時就會注意要對記憶體省一點。

事實上當年的 APP 沒有用到這麼多記憶體;最近蘋果 RAM 的大小上來後,iOS 軟體開發商對於記憶體也越來越敢用、APP 越做越肥… 這是雞生蛋蛋生雞的問題。

所以現在的 iPhone 使用者可能會越來越感受到記憶體不夠的問題,不知道這否是蘋果故意想逼使用者升級… 

 

GPU:adreno、powervr…

GPU 的架構和 CPU 的 ARM 架構完全不一樣。

高通有自己的一套 GPU 叫 Adreno,是先前最強的 GPU。蘋果用的是 Imagination 公司的 PowerVR 系列。ARM 的官方也有出一套官方版的 GPU 架構,叫 ARM Mali。

其實 GPU 這種東西只有運算量的差異,你只要敢堆、就會變強。因為GPU 的 Workload 就是很平行化的東西。

比如同樣都是 NVIDIA 出的 Pascal 核心 GPU,有些是比較小的晶片、執行單元就比較少;比較大的晶片上的執行單元比較多,執行速度越快快、也占比較多的電晶體面積,當然就比較貴。

同樣以 ARM 的 Mali 來說,有好幾個型號,有些是大晶片、有些是小晶片。

蘋果在晶片上的利潤不高,很敢堆 GPU,所以 GPU 也很不錯。反過來說,聯發科的 GPU 不強,很可能是為了壓低成本而不敢堆…。

事實上蘋果的合作公司── Imagination 所出的 PowerVR GPU 不是只有蘋果在用;如果你想買的話,拿得出錢(可能要幾百萬美金以上)都可以買。

所以 PowerVR 不只搭載在蘋果的處理器上,德州儀器的 Soc 晶片 OMAP 系列也是 PowerVR,三星、聯發科,甚至是中國的IC設計廠 Allwinner 和 Rockchip 等也都有用過。(參考 PowerVR 使用廠商列表

然而 Imagination 的最大客戶還是以蘋果的 iPhone 為主,蘋果支付的許可費用和專利費佔 Imagination 總收入總額的 50%。

也因此在今年 (2017)  4 月,蘋果突然宣布將在 2 年內停止使用該公司的 GPU 設計、轉而採用自己設計的產品之後,Imagination 股價瞬間暴跌了近 69%。6 月時 Imagination 宣布將公司出售,到現在還在找買家。

(蠻有可能是蘋果給 Imagination 施壓,等股價暴跌後再來接盤… XD 買家到底會是誰,就讓我們拭目以待吧)

總結一下:如果以 GPU 效能來做個排序,一般是 Snapdragon 搭載的 Adreno 效能最強,再來是蘋果的 PowerVR、與聯發科等等的其他處理器。

像我們用來舉例的 Snapdragon 810 雖然有著 CPU 過熱問題,但 GPU 的效能很強大。

 

DSP 和 Multimedia

DSP 是數位訊號處理器。它的目的是計算訊號,和 GPU 一樣是一堆加法和一堆乘法的運算。但和 GPU 不同的是,GPU 的目的是要計算很大量的數據、也就是 Throughput (生產量)。

計算機結構中有兩種重要的比較數值,一個叫 Throughput,意思是單位時間內有多少量產出。另一種叫 Latency(延遲),意思是交給你一項任務,要多久才會做完。

Throughput 是可以疊的,像是 GPU 的目標就是 Throughput,疊越多效果就越好。

相反地,DSP 的目標則是 Low-Latency,也就是運算量不用很大,功耗低但須速度快。比如我們在講話時需要把聲音壓縮再送出去,而這個壓縮的過程不能花費很多時間。

DSP 一般來說會用來處理手機講話的壓縮和解壓縮、搜集和運算感測器的資料等等。

Multimedia Processing(多媒體)——影像要有壓縮和解壓縮很耗 CPU,所以這些是交給特殊硬體來做。

 

今天我們介紹了:

  • ARM big.LITTLE 的異質處理器架構,從大核 A72、中核 A53 到小核 A35 之間做切換來達到效能與功耗的平衡,也是高通八核、聯發科十核和蘋果四核的意義
  • 高通 Kyro 和蘋果 Twister 是購買 ARM 指令集、電路架構自主設計,聯發科 Helio 、三星 Exynos 或華為 Kirin 處理器則是買公版晶片 (ARM 出的陽春版電路設計) Cortex 系列去設計。
  • 手機記憶體規格為 LPDDR,最新一代為 LPDDR 4。(iPhone 給的記憶體都比較少一些… )
  • GPU 強否,多半是看廠商願不願意下重本去堆。一般是高通 Adreano 最強、蘋果的 PowerVR 其次,再來才是其他廠商。
  • 數位訊號處理器 DSP 的目標是低延遲,和 GPU 強調 Throughput 不同。

今天對手機 SoC 處理器所具備的功能介紹就先到這邊為止啦,讀者大致上有個領略就好,也好在 iPhone 8 出來後心裡有個底、它到底強不強啦~