輕松讀懂移動處理器 CPU微架構(gòu)全解析
正如我們前面提過的,蘋果公司在上世紀九零年代就已經(jīng)和 ARM 合作并且提供了一些微架構(gòu)設(shè)計上的修改方案,因此蘋果對 ARM 一點都不陌生甚至有非常豐富的經(jīng)驗。
從 iPad、iPhone 4/iTouch 4、Apple TV 2 開始,蘋果開始真正介入 ARM 芯片設(shè)計,推出了名為 A4 的自行設(shè)計 ARM 處理器。A4 采用了 ARM 授權(quán)的 Cortex-A8 IP Core,但是蘋果找來了 Intrinsity 公司(已經(jīng)被蘋果收購)和三星公司合作進行了一些調(diào)優(yōu),可以讓 A4 的頻率跑得比基于上一代制程的 Cortex-A8 更快。曾經(jīng)有說法認為 A4 的 L2 cache 大小是 640KiB,但是后來確認修正為 512KiB(這是 ARM Cortex-A8 內(nèi)核的可選配置方式之一)。
A5 系列依然是采用 ARM IP core,從 Cortex-A8 升級為 Cortex-A9 雙核,不過整個 A5 系列出現(xiàn)了三個版本,即 APL0498、APL2498、APL5498(A5X),三個版本的芯片面積各不一樣,其中 A5X 的 GPU 是四核 PowerVR 5 并且擁有 4 通道內(nèi)存總線,定制化設(shè)計在這里體現(xiàn)得非常明顯。
真正的定制化設(shè)計是從 A6 開始,蘋果公司給 A6 搭配的 CPU 內(nèi)核是完全有自己團隊開發(fā)的 Swift,不僅這樣,蘋果還提出了一個新的名字:ARMv7s。傳統(tǒng)上,ARMv7 是屬于 ISA 版本名稱,不過 ARMv7s 至今都并未出現(xiàn)在 ARM 官網(wǎng)的公開資料里,因此 ARMv7s 可能并非 ARM 的產(chǎn)物,而是蘋果自己在 ARMv7 基礎(chǔ)上做的一個架構(gòu)優(yōu)化定義,讓編譯器可以為 Swift 微架構(gòu)匹配對應(yīng)的調(diào)優(yōu),本質(zhì)上 ISA 還是 ARMv7A。
CPU | iPhone | iPad | iPod Touch | Apple TV | ||
ISA | 內(nèi)核 | 芯片名稱 | ||||
"ARMv7s" | Apple Swift | Apple A6X | 4 | |||
Apple A6 | 5 | |||||
ARMv7A | ARM Cortex-A9 | Apple A5X | 3 | |||
Apple A5 | mini | |||||
4S | 2 | 5 | 3 | |||
ARM Cortex-A8 | Apple A4 | 4 | 1 | 4 | 2 | |
三星 S5PC100 | 3GS | 3(32/64GB) | ||||
ARMv6 | ARM 1176JZ(F)-S | 3(8GB) | ||||
3 | 2 | |||||
1 | 1 |
那么 Swift 和以往的 Cortex-A9 相比有哪些改進呢?蘋果公司并未詳細說明,傳統(tǒng)上這家公司就是這樣,千方百計捂著,不過 Anandtech 利用一些自己編寫的微型基準測試程序進行了一些探測,以程序員的角度大致估量出了 Swift 的微架構(gòu)是長得如何了。
在前端部分,Swift 具備三個指令解碼器,可以每個周期完成三條指令的解碼,而在指令分發(fā)器上,具備五個發(fā)射端口,浮點單元、整數(shù)單元各占兩個,還有一個專供 Load/Store 單元使用,具備亂序執(zhí)行能力、整數(shù)流水線深度為 12 級,cache 子系統(tǒng)的時延比 Cortex-A9 低了差不多一半。
“ARMv7s”的設(shè)立估計就是讓編譯器獲知編譯執(zhí)行對象是 Swift,這樣就能對各種指令順序進行一些預(yù)調(diào)度,確保盡可能低的 CPI。
簡而言之,A6 系列就是采用了比 A5 系列更先進制程和微架構(gòu)的產(chǎn)物,其中的 CPU 內(nèi)核則是蘋果首次真正完全執(zhí)行開發(fā)的設(shè)計,未來是否會在 GPU 上也有類似的動靜將會是值得關(guān)注的。
關(guān)注我們
