ARM 詳解

fengMisaka發表於2023-04-06

一、ARM 的發展史

ARM 的發展歷史可以追溯到 1978 年,當年克里斯·庫裡(Chris Currry)所任職的公司遭遇財務危機,發展每況愈下,庫裡在和創始人深入溝通後,決定離職。當時的庫裡對微型計算機很感興趣,隨後和他的朋友赫爾曼·豪澤(Hermann Hauser)創立了劍橋處理器(Cambridge Processor Unit)有限公司。1979 年,劍橋處理器公司改名為橡果電腦(Acorn Computer)有限公司,據說改名字是因為希望公司的名字再字母排序中排在蘋果公司的前面,公司成立初期主要從事電子裝置設計和製造的業務,其第一個大獲成功的產品是 1981 年 12 月推為英國廣播公司微型計算機。1985年是橡果電腦一個重要的里程碑,他們獨立完成了 32 位微處理器的設計,採用精簡指令集,3 微米工藝,包含 25000 個電晶體。這個處理器是 ARM 架構的起點,即 ARMv1。

1990 年,由 VLSI 科技公司投資,橡果和蘋果各自持有 43% 的股份,成立了 ARM,此後 ARM 就成了 Advanced RISC Machines 的縮寫。最初的 ARM 成員只有很少的工程師,辦工場所在劍橋的一個穀倉裡。

1996年,ARM 和德州儀器、三星、諾基亞等公司建立合作,實現盈利。諾基亞 6110 手機中經典的遊戲——貪食蛇,就是基於 ARM 7TDMI 晶片開發的。1998 年,ARM 在納斯達克上市,掛牌交易,彼時的 ARM 市值已達十億美元!2004 年,ARM 釋出了 Cortex-A,R,M 三個系列的處理器,細心的讀者可能發現了,這三個系列的處理器,就是 ARM 的三個字母。2007 年 2 月,ARM 第一款 GPU——Mali-200 正式走向市場,同年,在科技界還有一件大事,那就是 iPhone 誕生了!iPhone 可謂是一部具有劃時代意義的電子產品,其中搭載的就是基於 ARM 核心的晶片,隨著智慧手機時代的來臨,ARM 也異軍突起,2007 年,基於 ARM 核心設計的晶片出貨量已達一百億顆!

2016 年 ARM 被日本軟銀收購,2020 年,軟銀擬以 400 億美元的價格將 ARM 出售給英偉達,但最終因多家監管機構反對,交易流產,ARM 依然會在半導體界保持中立狀態,繼續為其他晶片設計公司提供 IP(Intellectual Property)授權。

二、ARM 處理器家族

多年來, ARM 已經研發了相當多的不同的處理器產品。如下圖中:ARM 處理器產品分為經典 ARM 處理器系列(下圖分割線左側)和最新的 Cortex 處理器系列(下圖分割線右側)。並且根據應用範圍的不同,ARM 處理器可以分類成 3 個系列。

  • Application Processors (應用處理器,下圖橙色框部分)– 面向移動計算,智慧手機,伺服器等市場的的高階處理器。這類處理器執行在很高的時脈頻率(超過 1GHz),支援像 Linux,Android,MS Windows 和移動作業系統等完整作業系統需要的記憶體管理單元(MMU)。如果規劃開發的產品需要執行上述其中的一個作業系統,你需要選擇 ARM 應用處理器。
  • Real-time Processors (實時處理器,下圖灰色框部分)– 面向實時應用的高效能處理器系列,例如硬碟控制器,汽車傳動系統和無線通訊的基帶控制。多數實時處理器不支援 MMU,不過通常具有 MPU、Cache 和其他針對工業應用設計的儲存器功能。實時處理器執行在比較高的時脈頻率(例如 200MHz 到 >1GHz ),響應延遲非常低。雖然實時處理器不能執行完整版本的 Linux 和 Windows 作業系統,但是支援大量的實時作業系統(RTOS)。
  • Microcontroller Processors (微控制器處理器,下圖綠色框部分)– 微控制器處理器通常設計成面積很小和能效比很高。通常這些處理器的流水線很短,最高時脈頻率很低(雖然市場上有此類的處理器可以執行在 200Mhz 之上)。並且,新的 Cortex-M 處理器家族設計的非常容易使用。因此,ARM 微控制器處理器在微控制器和深度嵌入式系統市場非常成功和受歡迎。

Embedded_ARM_E.png


ARM三個系列處理器特點

Embedded_ARM_F.png


另外,ARM 也推出了移動 GPU 系列,即 Mali GPU。

三、ARM 授權

ARM 公司是一家智慧財產權(IP)供應商,它與一般的半導體公司最大的不同就是不製造晶片且不向終端使用者出售晶片,而是透過轉讓設計方案(就是我們通常說的授權),由合作伙伴生產出各具特色的晶片。

籠統來說,ARM 的授權分為三個層級:

  • 使用層級授權
  • 核心層級授權架構
  • 指令集層級授權

這三個層級的許可權是依次上升的。對晶片設計公司的要求也是從低到高,而發揮的空間也是從低到高:指令集層級授權(也成軟核)發揮的空間最大,使用層級授權(也成硬核)發揮的空間最小。(比如代工廠臺積電拿著圖紙就可以施工,可以不用修改)。

買ARM使用層級授權(硬核)的晶片設計公司,用通俗的話說就是,使用 ARM 公版架構。這種情況下,晶片設計公司對外宣傳必須帶上 ARM 公司的品牌:CPU 的品牌是 Cortex-AXX(XX 代表兩位阿拉伯數字,第一個數字表示架構是第幾代,第二個表示架構微調),GPU則是 Mali-GXX(XX含義同上)。

如果用一個比較粗略但是好理解例子來說明這三個層級的許可權,大體上我們可以這樣理解:

假設我寫了一篇文章,我只授權了你轉發,不能更改,不能添油加醋,便是使用層級授權;我授權你可以在文章中引用我的文章,便是核心級授權;我授權你可以拿去修改、重組我的文章,形成一篇新的論文,便是架構層級授權。

注意,某一版本的架構層級授權,通常是永久性的。

目前,總共有超過 1000 家公司與 ARM 公司簽訂了技術使用許可協議,其中包括 apple、Intel、Broadcom、IBM、LG、SONY、NXP 和 TI 這樣的大公司。但是敢於購買架構授權的,也只有15家左右,高通、蘋果、Broadcom、Marvell、華為、三星都是典型的使用者(也都是各自行業的扛把子)。

四、ARM 架構解析

下面以 S3C2440 為例與 51 微控制器進行對比分析,詳細解析了 ARM 架構。

ARM 公司主要設計 ARM 系列 AISC 處理器核心,它不生產晶片,只提供 IP 核。先以一個例子解釋一下架構、核、處理器和晶片:S3C2440,這是一款 SoC 晶片,注意,它不是 CPU,S3C2440 和我們熟知的 51 微控制器有點類似,都屬於嵌入式,嵌入式的發展到目前經歷了三個階段,分別是 SCM、MCU、SoC。51 屬於 SCM 或 MCU,而 S3C2440 就屬於 SoC 了,先來看看 51 微控制器的內部結構,如下圖所示。

Embedded_ARM_A.jpg


其內部結構可以簡單的分成兩部分:CPU 和外設。再來看 2440 的:

Embedded_ARM_B.jpg


中間的那個 ARM920T 就是它的處理器,處理器和核在我看來在這裡是一個概念,只不過一個是硬概念,一個是軟概念。這裡的 ARM920T 就既是處理器又是核。而三星做的就是除了這個 CPU 外其他的東西。

那架構呢?再來看一張圖。

Embedded_ARM_C.png

其中左側的就是架構,右側的是處理器,也可以叫核。ARM 首個最成功的 CPU 是 ARM7TDMI,是基於 ARMv4的。ARM 架構包含了下述 RISC 特性:

  • 讀取/儲存 架構
  • 不支援地址不對齊記憶體存取(ARMv6 核心現已支援)
  • 正交指令集(任意存取指令可以任意的定址方式存取資料Orthogonal instruction set)
  • 大量的 16 × 32-bit 暫存器陣列(register file)
  • 固定的 32 bits 操作碼(opcode)長度,降低編碼數量所產生的耗費,減輕解碼和流水線化的負擔。
  • 大多均為一個 CPU 週期執行。
  • 不同版本的架構會有所調整。

和三星相同的其他和 ARM 合作的各大廠商通常會把它的 CPU 和各類外圍 IP 都放到一起,然後自己拿著圖紙去流片,生產出來的也是一個正方形,下面有很多引腳,這個東西不僅包含了 CPU,還包含了其他的控制器,這個東西就叫做 SoC(system on chip)。從英文來看,所謂的四核 SoC 什麼的,本意就不是單指 CPU,而是四核系統。

所以目前各大廠商所做的事情,就是買來 ARM 的授權,得到 ARM 處理器的原始碼,而後自己搞一些外圍 IP(或者買或者自己設計),組成一個 SoC 後,去流片。不同的 SoC,架構不同(就是 CPU 如何和 IP 聯絡起來,有的以匯流排為核心,有的以 DDR 為核心),所以,海思是擁有自主產權的 SoC 架構。可是,無論任何廠商,再怎麼折騰,都沒有怎麼動過 CPU,ARM 核心就好好的呆在那裡,那就是中央處理器。

五、總結

在後智慧手機時代,ARM 迅速發展,並在十多年的時間建立了良好的生態,就連微軟這個英特爾的老夥伴,也在2011 年宣佈支援 ARM 架構。截止 2022 年,ARM 的合作伙伴已超過 1000 家,95% 的智慧手機中都使用基於 ARM 核心的處理器,處理器累計出貨超過 2250 億顆。要知道,如果在 2000 年左右,如果有人說 ARM 架構處理器的效能可以和 x86 媲美,甚至超越 x86,那麼無異於天方夜譚。然後科技發展日新月底,ARM 乘著移動網際網路這艘大船,逐步發展為指令集架構領域一支新的力量!


參考:

「ARM 架構」是一種怎樣的處理器架構?

ARM的發展史以及架構解析