iPhone 5S 的 M7 協同處理器到底賣什麼藥

iPhone 5S 的 M7 協同處理器到底賣什麼藥

圖片擷取自:蘋果官網

昨天蘋果推出 iPhone 5c 以及 iPhone 5s ,前者沿用 iPhone 5 的 A6 處理器,然而 iPhone 5s 的 A7 卻是第一款支援 64 位元指令集的蘋果自主處理器,不過筆者留意到的還有一個東西,就是被稱為協同處理器的 M7 核心。

筆者不是很確定 M7 的結構到底是 MCU 或是 DSP 還是更低階的 Cortex-A ,不過蘋果會使用協同處理器作為管理類感測器的作法倒是讓筆者覺得很有意思,跳轉筆者用自己的觀點去推測蘋果為何會使用這樣的分離式結構。

一般手機管理這些週邊感測器的方式,通常是使用處理器本身或是透過應用處理器去管理,然而直接透過處理器管理會遇到一個情況就是耗電;因為處理感測器訊號這件事情不算複雜,但是為了要管理這些感測器,需要喚醒整個應用處理器,並且讓 CPU 架構去進行管理,然後再進入休眠,萬一這些訊號比較頻繁,就會讓處理器持續耗電。

蘋果則是將這些接收感測器指令的動作分離出來,透過這顆 M7 進行管理;由於 M7 基本上是基於低功耗架構所作,且其目的僅為了管理這些感測器,架構可以做的相當精簡,加上是為管理感測器最佳化,不像應用處理器的 CPU 架構還要支元複雜的指令集以及通用運算,能將功耗降的比較低。

不過依照理論,這樣的架構是可以跟 A7 處理器直接整合,蘋果又為何選擇把 M7 獨立出來?筆者認為有兩個可能性,一個是 A7 本身過於複雜不利整合,第二個則是基於成本考量。

iPhone 5S 的 M7 協同處理器到底賣什麼藥

由於 A7 採用的是 64 位元指令集的核心架構,加上高效能的新一代 GPU 整合,可想而知光是 CPU 加上 GPU 就已經相當龐大,且近期製程方面似乎未有太大的突破,若是同樣以現在主流的 28nm 製程生產,光是整合與先前 A6 相同的功能,處理器的複雜度與體積就會超過 A6 。

加上若將 M7 的功能整合進去後也需面臨內部佈線以及管理模式的問題;由於加入 M7 功能,就像在一般的電路板內又要多加 IC ,除了本身就會增加些許體積外,還要考慮內部佈線與線路干擾的問題,最終所需使用的晶片面積不光只是把 M7 加上 A7 的面積那麼單純而已。

iPhone 5S 的 M7 協同處理器到底賣什麼藥

而把 M7 整合入 A7 的話,即便只是需要用到 M7 的功能,理論上也必須將整個應用處理器喚醒,雖然不需動到架構中的其它部份,但耗電量仍會比喚醒獨立化的 M7 還高,反而又使原本希望藉由加入 M7 協同處理器降低功耗的美意打折扣。

最後還是要考量到成本問題,由於 A7 是蘋果第一款 64Bit 應用處理器,加上應該又是如先前 A6 一樣是基於 ARM 指令集的大改,又同時可能是第一顆被大規模商用的 ARMv8 指令集處理器,又是先進製程,如果複雜度越高,良率也會受到影響。

此外,因為 M7 相較於 A7 的架構勢必簡單許多, M7 甚至可以使用較平價的製程生產,藉此降低整個平台的整體生產成本,也許等到自主 64 位元架構成熟了,以及更先進的製程推出後,再將 M7 核心納入應用處理器內。

不過若將 M7 協同處理器與 SoC 整合,筆者倒是覺得很像 TI OMAP 應用處理器系列把 Cortex-M 核心( MCU )作為待機休眠的基本功能維持之用,不過當時 TI 遇到比較頭痛的問題在於 MCU 是無法進行系統運作,且加上 TI 並非同時掌控系統與硬體的主導權,蘋果會利用把感測器管理獨立的架構,勢必在系統管理上有作一番功夫了(吧?)。