ARM的那些事兒

前言


比起那些耳熟能詳的半導體巨頭公司, 對於大多數人來說, ARM 公司就顯得較爲陌生了,但我相信你所使用的手機中必定有 ARM 的痕跡。


自從進入21世紀, 智能手機開始崛起。NoKia (諾基亞)退出手機市場, iPhone(蘋果)和Android(安卓)手機強勢搶佔市場。 智能手機的浪潮成就了ARM公司, 令其生存於衆巨頭半導體公司構成生態圈下的核心位置。 當然ARM獨特的生存方式和優秀的設計也成爲了市場的巨大推動力。 不得不說, 當下移動互聯網的發展迅速得益於ARM公司。 那麼ARM到底是怎麼樣的一家公司? 希望本篇博文能或多或少給你一點啓示。


ARM歷史


1978 年 12 月 5 日, 物理學家 Hermann Hauser 和工程師 Chris Curry 在英國劍橋創辦了 CPU 公司(Cambridge Processing Unit, 劍橋處理器), 當時的主要業務是爲當地市場供應一些電子設備。 


1979 年 CPU 公司更名爲 Acorn(橡果, 音譯爲艾康), 這時候 Acorn 還沒有屬於自己的 CPU(Central Processing Unit, 中央處理器)設計。 由於嫌棄當時使用的  Motorola(摩托羅拉) 的芯片性能不佳且價格昂貴,Acorn 向當時的另外一家公司 — Intel, 即現在的 PC 機市場巨頭討要 1982 年其推出的 80286 芯片設計,但是遭到了拒絕。於是乎,Acorn 開始設計自家的 CPU。


1985 年,ARM 設計出了第一代處理器,並用其開發了一臺計算機,命名爲 Acorn RISC Machine,縮寫就是 ARM, 這是 ARM 名字最早的由來。 1990 年 11 月 27 日, Acorn 公司正式改組爲 ARM 計算機公司。ARM 的全稱改爲 Advanced RISC Machine, 就是我們今天知道的 ARM 公司了。


這裏有必要簡單解釋一下 RISC, RISC 的全稱是 Reduced Instruction Set Computer(精簡指令集計算機), 它支持的彙編指令比較簡單, 功耗小。 與之相對的就是 CISC,  即 Complex Instruction Set Computer(複雜指令集計算機), 它所支持的指令便較爲複雜了。 在 PC 機領域最具代表性的就是 Intel 和 AMD。


ARM授權方式


說回 ARM, ARM 公司在成立之初, 它的業務並不景氣。 它沒有能力擁有像 Intel 一樣從 CPU 的設計到芯片的生產和售賣這樣完整的生產鏈。 於是 ARM 公司作了一個重大的決定: 只做處理器的設計, 而不自主生產芯片。 通過IP(Intellectual Property, 知識產權) 授權方式把方案賣給其他公司。 這一冒險的方式卻令 ARM 公司獲得了巨大的成功。 到現在, 使用 ARM 公司方案的公司有 IBM(國際商業機器公司)、 Apple(蘋果)、 Qualcomm(高通)、 Samsung(三星)、 TI(德州儀器)、 ST(意法半導體)、 Sony(索尼)、 HP(惠普)等一些著名的公司。 中國授權有華爲海思、 全志、 臺積電、 聯發科等。


針對公司的具體情況, 可以從ARM公司購買不同的授權方式。 最主要的授權方式可以根據用戶的選擇餘地從低到高分爲三種: 處理器優化包 / 物理 IP 包授權(POP)、 處理器授權、 以及架構 / 指令集授權。


  • 處理器優化包 / 物理 IP 包授權(POP)是三種授權方式中等級最低的, 但適用於快速開發。 用戶可以直接使用 ARM 優化過的處理器方案。 處理器類型、 代工廠、 工藝都是規定好的。 用戶可以快速地開發出產品, 使用的代價也較低, 當然供用戶自己發揮的餘地是幾乎沒有的。
  • 擁有處理器授權的用戶可以購買已經設計好的 ARM 處理器圖紙, 但用戶只能照着圖紙實現, 能發揮的地方不多。 用戶能決定的是設計成什麼規格的芯片。 比如配置哪些模塊、 增加那些外設、 使用幾個核心、 設計多少緩存、 多高的頻率、 使用什麼工藝、 誰來代工等等。
  • 第三種授權方式就是架構 / 指令集授權了, 這種授權方式等級是最高的, 用戶可以僅購買 ARM 的架構 / 指令集(ARMv7、ARMv8), 然後設計自己的 SoC (System on a Chip,片上系統)。 在全球擁有 ARM 這種授權方式的爲數不多, 我們較爲熟知的有Apple、 Qualcomm。 中國華爲海思在 2013 年獲得這種授權方式, 2016 年上海華芯通也獲得了 ARM 架構授權。


有趣的是, ARM 公司在這樣的生存方式下成爲了半導體界的「地產開發商」, 有實力的公司購買「地皮」, 自行設計建築; 還有一些則購買「毛坯房」, 自行「裝修」; 想要最快「入住」的則直接購買「精裝房」。


ARM產品


說完授權方式,重點來說下ARM公司有哪些設計產品:

(下面部分有轉載內容,詳細見參考資料 [2]。)

  • 1985 年, ARMv1 架構誕生, 該版本架構只在原型機 ARM1 出現過,也就是上文提到的 ARM 首臺自主研發的計算機, 只有 26 位的尋址空間(64MB), 沒有用於商業產品, 但是卻具有里程碑意義。
  • 1986 年, ARMv2 架構誕生, 首顆量產的 ARM 處理器 ARM2 就是基於該架構, 包含了對 32 位乘法指令和協處理器指令的支持, 但同樣只有 26 位的尋址空間。 其後還出現了變種 ARMv2a架構, ARM3 即採用了 ARMv2a, 是第一片採用 On-Chip Cache(片上高速緩存)的 ARM 處理器。
  • 1990 年, ARMv3 架構誕生,第一個採用 ARMv3 架構的微處理器是 ARM6 以及 ARM7 ,其擁有On-Chip Cache、 MMU(Memory Management Unit, 存儲器管理單元)和 Write Cache(寫緩衝), 尋址空間從原來的 26 位增大到 32位(4 GB 的尋址大小)。
  • 1993 年, ARMv4 架構誕生, 這個架構被廣泛使用, ARM7TDMI、 ARM8、 ARM9TDMI 和StrongARM 採用了該架構。 ARM 在這個系列中引入了 T 變種指令集, 即處理器可工作在 Thumb 狀態,增加了 16 位的 Thumb 指令集。
  • 1998 年, ARMv5 架構誕生,ARM7EJ、 ARM9E、 ARM10E 和 Xscale 採用了該架構。 這版的架構改進了 ARM / Thumb 狀態之間的切換效率。 此外還引入了 DSP 指令和支持 Java 的功能 。
  • 2001年, ARMv6 架構誕生, ARM11 採用的是該架構, 這版架構強化了圖形處理性能。 此外 ARM 在這個系列中引入了混合 16 位 / 32 位的 Thumb-2 指令集。
  • 2004年,ARMv7 架構誕生, 從這個時候開始 ARM 以 Cortex 來重新命名處理器, Cortex-M3 / 4/ 7,Cortex-R4 / 5 /6 / 7,Cortex-A8 / 9 / 5/ 7/ 15 /17都是基於該架構。這三種系列面向的對象不同:「A(Applicational )系列面向尖端的基於虛擬內存的操作系統和用戶應用; 「R」(Real-time)系列針對實時系統;「M」(Micro-)系列針對微控制器。
  • 2006 年, ARM 宣佈收購 Falanx。 這是 ARM 進軍 GPU 處理器的標誌。
  • 2007 年,在 ARMv6 基礎上衍生了 ARMv6-M 架構, 該架構是專門爲低成本、 高性能設備而設計, 向以前由 8 位設備占主導地位的市場提供 32 位功能強大的解決方案。 Cortex-M0 / 1 /0+ 採用了該架構。 同時 ARM 首次以 ARM 品牌推出了 Mali-200 GPU, 然後是 Mali-400 GPU, 均基於 Utgard 架構
  • 2010年, ARM Mail 推出 Midgard 架構,產品包括 Mali-T604、 Mali-T700、 Mali-T800, 最多可以做到 16 核心。
  • 2011 年, ARMv8 架構誕生, 這是 ARM 公司首款能支持 64 位指令集的處理器架構。
  • 2016年, 剛剛過去的一年裏 ARM 公司也推出了一系列的處理器, 同時推出了全新的 GPU 架構 Bifrost 架構, 並在此架構上推出了 Mail-G71。 與 Mail-DP、 Mail-V 系列構成了 Mali Multimedia Suite(Mali多媒體套件)。
  • ……


這裏談一下個人對架構和核心的概念理解。有些人也喜歡將核心等同於架構,個人喜歡分開來講,這樣比較容易搞清楚 ARM7 和 ARMv7 的區別:

  • 架構: 指令集體系結構。 ARM 公司從成立到現在一共發佈了 8 種指令集體系結構,即  ARMv1~ARMv8架構。
  • 核心:基於架構開發出的處理器核心,比如ARM7、ARM9、ARM11、Cortex-A9等等。

 

市場上基於ARM的SoC


說完了這些,我想你可能對 ARM 公司有了一定的瞭解, 我們再來說說市場上一些流行手機搭載的 SoC ,我想你就會明白  ARM  在其中扮演了一個怎麼樣的角色。


首先是 Apple , Apple 是 ARM 架構授權的擁有者。 它所推出的 iPhone 不直接使用 ARM 設計的處理器核心。 而是自行設計 CPU, 一年設計一款 CPU。 iPhone7 系列手機於 2016 年剛剛推出, 它搭載的 A10 Fusion 處理器便是基於 ARMv8-A 架構。還有之前的 Apple A8 Typhoon、 Apple A9 Twister 也是基於 ARMv8-A 架構的。 Apple自行設計出的這一款 A10 處理器可謂之爲現存最強 SoC。


然後是龐大的 Android 陣營,對應的 SoC 廠商就比較多了, 首先是 Qualcomm(高通), 它設計的 SnapDragon(驍龍)系列 SoC 在 Android 市場上佔據的份額着實不小。拿幾款這幾年比較熱門的 SnapDragon 處理器來說:

  • SnapDragon 800 Krait,基於 ARMv7-A 架構;
  • SnapDragon 810,基於 ARMv8-A 架構,但不是自主設計核心, 而是使用了 Cortex-A57 (大核心 Cortex-A15 的升級版)和 Cortex-A53(小核心 Cortex-A7 的升級版)大小核心, 即很有名的 Big.Little 模式;
  • SnapDragon 820 Kryo 放棄了這種大小核心模式,而是基於 ARMv8 架構,參照部分 Cortex-A72 核心設計了SoC。


除次之外還有 Samsung 設計的 Exynos 系列處理器, 華爲自主設計的 Kirin 系列處理等等, 它們所設計的 SoC 都是基於 ARM 架構。當然了, 縱使使用了同一種架構或者核心, 不同廠商設計出的 SoC 性能必然是不同的,所以我們選擇手機時會更關注是哪個公司設計的 SoC, 而不會更關注使用了 ARM 的哪種架構或者核心。


後記


雖然 2016 年 ARM 被日本軟銀收購,但是這並不意味着 ARM 沒落了, ARM 在物聯網時代必定會佔據很重要的角色,就讓我們拭目以待吧。ARM 的那些事兒就說到這了,雖然感覺還是有很多沒說完, 不過再說下去就真的說不完了,還是留點空白給未來的 ARM 吧。


-----------------------------------------------------瀟灑的分割線-------------------------------------------------------


寫在後面的話:

       寫這篇博文的時候萌生出一個想法, 乾脆寫一個系列吧, 把那些著名公司的事兒講個遍。 冷靜下來想想, 這還是一個挺漫長的過程, 希望慢慢完成它吧。 這是我在 CSDN 上寫的第一篇博文, 寫得不好之處, 敬請諒解, 歡迎指正。 之所以萌生了寫博文的想法, 無非是想要對得起自己所學罷了。 一直有在電腦上寫筆記的習慣, 不過往往都是寫完了就丟在硬盤的某個角落裏了, 如果把它們整理出來想必也是一筆不小的「財富」, 整理到博客上倒是一個不錯的選擇, 在寫博文當中也算是再次學習吧。 只不過礙於工作和學習時間的問題, 也不知道自己能做到多少,恩, 努力吧……


2017 年 1 月 16 日

Kilento
附:2016年ARM公司產品

  • Mali-DP650
  • Cortex-R8: 基於 ARMv7-R 架構
  • Cortex-A32: 基於 ARMv8-A 32bit 架構
  • Cortex-A73:基於 ARMv8-A 32bit / 64bit架構
  • Mali-G71:  基於全新 Bifrost 架構
  • Cortex-R52:基於 ARMv8-R 架構的嵌入式處理器
  • Cortex-M23:基於 ARMv8-M 架構的嵌入式處理器
  • Cortex-M33:基於 ARMv8-M 架構的嵌入式處理器
  • Mali-G51
  • Mali-V61



參考資料


[1]ARM架構https://zh.wikipedia.org/wiki/ARM%E6%9E%B6%E6%A7%8B

[2]文中ARM架構歷史部分轉載(有修改)自http://blog.csdn.net/henjay724/article/details/52664350

[3]ARM發展史:http://www.veryarm.com/tag/arm%E5%8F%91%E5%B1%95%E5%8F%B2

發佈了27 篇原創文章 · 獲贊 31 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章