ARM架構

精簡指令集處理器架構家族

ARM架構,過去稱作進階精簡指令集機器(英語:Advanced RISC Machine,更早稱作艾康精簡指令集機器,Acorn RISC Machine),是一個精簡指令集(RISC)處理器架構家族,其廣泛地使用在許多嵌入式系統設計。由於節能的特點,其在其他領域上也有很多作為。ARM處理器非常適用於流動通訊領域,符合其主要設計目標為低成本、高效能、低耗電的特性。另一方面,超級電腦消耗大量電能,ARM同樣被視作更高效的選擇[3]安謀控股(ARM Holdings)開發此架構並授權其他公司使用,以供他們實現ARM的某一個架構,開發自主的系統單晶片和系統模組(system-on-module,SoC)。

ARM架構
ARM標誌
推出年份1985年,​39年前​(1985
設計公司ARM Holdings
是否開放架構?專有
體系結構類型暫存器-暫存器
字長/暫存器資料寬度32位元64位元
指令集架構設計策略RISC
分支預測結構條件代碼、比較和分支
64/32位元架構
推出年份2011年
最新架構版本ARMv9.0-A、ARMv9.1-A、ARMv9.2-A、ARMv9.3-A、ARMv9.4-A
位元組序可組態大小端序(預設小端序)
指令編碼長度AArch64/A64、AArch32/A32:32位元
T32(Thumb-2):16或32位元
相容ARMv7用戶空間[1]
擴展指令集Thumb-2NEONJazelle、VFPv4-D16、VFPv4
通用暫存器31個64位元整數暫存器[1]
浮點暫存器32個128位元暫存器[1],用於32位元和64位元標量浮點數SIMD浮點數或整數;或密碼數值
32位元架構(Cortex)
最新架構版本ARMv8-R、ARMv8-M、ARMv7-A、ARMv7-R、ARMv7E-M、ARMv7-M、ARMv6-M
位元組序可組態大小端序(預設小端序)
但Cortex-M不能在指令運行時調整
指令編碼長度32位元
Thumb-2:16或32位元
擴展指令集Thumb-2、NEON、Jazelle、DSP、Saturated、FPv4-SP、FPv5
通用暫存器15個32位元整數暫存器
R15是程式計數器(在較老的架構設計中為26位元定址)
R14作為連結暫存器(link register)
浮點暫存器最多32個64位元暫存器[2],SIMD/標準浮點數(可選項)
32位元架構(舊有架構)
最新架構版本ARMv6、ARMv5、ARMv4T、ARMv3、ARMv2
位元組序ARMv3開始為可組態大小端序(預設小端序)
指令編碼長度32位元
Thumb:16或32位元
擴展指令集Thumb、Jazelle
通用暫存器15個32位元整數暫存器
R15是程式計數器(在較老的架構設計中為26位元定址)
R14作為連結暫存器(link register)
基於ARM微處理器的片上系統(system on a chip, SoC)的方塊圖

ARM架構版本從ARMv3到ARMv7支援32位元空間和32位元算數運算,大部分架構的指令為定長32位元(Thumb)指令集支援變長的指令集,提供對32位元和16位元指令集的支援),而2011年發佈的ARMv8-A架構添加了對64位元空間和64位元算術運算的支援,同時也更新了32位元定長指令集[4]

至2009年為止,ARM架構處理器佔市面上所有32位元嵌入式RISC處理器90%的比例[5],使它成為佔全世界最多數的32位元架構。ARM處理器可以在很多消費性電子產品上看到,從可攜式裝置(PDA流動電話、多媒體播放器、掌上型電玩和計算機)到電腦週邊設備(硬碟、桌上型路由器),甚至在導彈的彈載電腦等軍用設施中都有它的存在。在此還有一些基於ARM設計的衍伸產品,重要產品還包括MarvellXScale架構和德州儀器OMAP系列。

2011年,ARM的客戶報告79億ARM處理器出貨量,佔有95%的智能電話、90%的硬碟機、40%的數碼電視機上盒、15%的微控制器、和20%的移動電腦[6]。在2012年,微軟與ARM科技生產新的Surface平板電腦,AMD宣佈它將於2014年開始生產基於ARM核心的64位元伺服器晶片,[7]2016年,日本富士通公司宣佈「京」超級電腦的後繼機種將採用ARM架構[3],該超級電腦於2019年5月定名為「富岳[8],2020年6月於TOP500奪冠[9][10][11]

2016年7月18日,日本軟銀集團斥資3.3兆日元(約合311億美元)收購了安謀控股[12]

特色和應用

自2005年,每年超過一億的手機銷售約98%使用了ARM處理器[13]。截至2009年,佔大約90%的嵌入式32位元RISC處理器[14]和ARM處理器被廣泛使用在消費性電子產品,包括個人數碼助理(PDA)、平板電腦流動電話、數碼媒體和音樂播放器、手持式遊戲遊戲機計數機和電腦外圍裝置(如硬碟機路由器)。

除了消費電子,ARM架構處理器也開始用於以往x86x64處理器獨大的個人電腦伺服器。而在2020年成為TOP500排名第一的「富岳」為首部奪冠的ARM架構超級電腦

歷史

 
一顆主要用於路由器科勝訊公司ARM處理器
 
用於松下多媒體播放機的晶片

ARM的設計是艾康電腦公司於1983年開始的發展計劃。

這個團隊由Roger WilsonSteve Furber帶領,着手開發一種類似進階6502架構的處理器。Acorn電腦有一大堆建構在6502處理器上的電腦,因此能設計出一顆類似的晶片即意味着對公司有很大的優勢。

Acorn RISC Machine:ARM2

 
用在BBC Micro上的ARM1 second processor

團隊在1985年時開發出樣本「ARM1」,而首顆真正能量產的「ARM2」於次年投產。ARM2具有32位元的資料匯流排、26位元的定址空間,並提供64 Mbyte的定址範圍與16個32-bit的暫存器。暫存器中有一個作為程式計數器,其前面6位元和後面2位元用來儲存處理器狀態標記。ARM2可能是全世界最簡單實用的32位元微處理器,僅容納了30,000個電晶體(六年後的摩托羅拉68000包含了70,000顆)。之所以精簡的原因在於它不含微碼(這大概佔了68000的電晶體數約1/4至1/3);而且與當時大多數的處理器相同,它沒有包含任何的快取。這個精簡的特色使它只需消耗很少的電能,卻能發揮比Intel 80286更好的效能[15]。後繼的處理器「ARM3」則備有4KB的快取,使它能發揮更佳的效能。

Apple、DEC、Intel、Marvell:ARM6、StrongARM、XScale

在1980年代晚期,蘋果電腦開始與艾康電腦合作開發新版的ARM核心。由於這專案非常重要,艾康電腦甚至於1990年將設計團隊另組成一間名為安謀國際科技(Advanced RISC Machines Ltd.)的新公司。也基於這原因,使得ARM有時候反而稱作Advanced RISC Machine而不是Acorn RISC Machine。由於其母公司ARM Holdings plc於1998年在倫敦證券交易所NASDAQ掛牌上市[16],使得Advanced RISC Machines成了ARM Ltd旗下擁有的產品[17]

這個專案到後來進入「ARM6」,首版的樣品在1991年釋出,然後蘋果電腦使用ARM6架構的ARM 610來當作他們Apple Newton產品的處理器。在1994年,艾康電腦使用ARM 610做為他們個人電腦產品的處理器。

在這些變革之後,內核部份卻大多維持一樣的大小——ARM2有30,000顆電晶體,但ARM6卻也只增長到35,000顆。主要概念是以ODM的方式,使ARM核心能搭配一些選配的零件而製成一顆完整的CPU,而且可在現有的晶圓廠裏製作並以低成本的方式達到很大的效能。

ARM的經營模式在於販售其IP核,授權廠家依照設計製作出建構於此核的微控制器中央處理器。最成功的實作案例屬ARM7TDMI,幾乎賣出了數億套內建微控制器的裝置。

迪吉多曾購買這個架構的產權並研發出「StrongARM」。在233 MHz的頻率下,這顆CPU只消耗1瓦特的電能(後來的晶片消耗得更少)。這項設計後來為了和英特爾的控訴和解而技術移轉,英特爾因而利用StrongARM架構補強他們老舊的i960產品。英特爾後來開發出他們自有的高效能架構產品XScale,之後賣給了邁威爾科技

2020年11月11日,蘋果公司發佈基於ARM晶片(Apple M1)的蘋果桌上電腦和手提電腦,2021年4月21日,蘋果公司發佈基於M1 CPU的24 吋Mac和新iPad Pro

內核種類

指令集架構 處理器家族
ARMv1 ARM1
ARMv2 ARM2ARM3
ARMv3 ARM6、ARM7
ARMv4 StrongARMARM7TDMIARM9TDMI
ARMv5 ARM7EJARM9EARM10EXScale
ARMv6 ARM11ARM Cortex-M
ARMv7 ARM Cortex-AARM Cortex-MARM Cortex-R
ARMv8 Cortex-A35、Cortex-A50系列[18]、Cortex-A70系列、Cortex-X1
ARMv9 Cortex-A510Cortex-A710Cortex-A715Cortex-X2Cortex-X3ARM Neoverse N2

由ARM提供了一個廠商匯總,是在其設計中實現ARM內核的眾多廠商一個總結[19]

架構

從1995年開始,《ARM體系結構參考手冊》是ARM文件的主要來源,提供了關於ARM處理器架構和指令集,區分介面,所有的ARM處理器的支援(如指令語意)的實現細節可能會有所不同。該體系結構隨着時間的演變,並與Cortex系列的核心開始,存在三個「組態」的定義如下:

  • "應用"組態: Cortex-A 系列
  • "嵌入式"組態: Cortex-R 系列
  • "微處理器"組態: ARM Cortex-M 系列。

每個組態允許有其子集的架構。例如,用於ARMv6-M組態(所使用的Cortex M0 / M0+/ M1)的一個子集ARMv7-M架構(支援較少的指令)。

CPU模式

CPU ARM架構指定了以下的CPU模式。在任何時刻,CPU只可處於某一種模式,但可由於外部事件(中斷)或編程方式進行模式切換。

用戶模式
僅非特權模式。
系統模式
僅無需例外進入的特權模式。僅以執行明確寫入CPSR的模式位元的指令進入。
Supervisor (svc) 模式
在CPU被重設或者SWI指令被執行時進入的特權模式。
Abort 模式
預讀取中斷或數據中斷異常發生時進入的特權模式。
未定義模式
未定義指令異常發生時進入的特權模式。
干預模式
處理器接受一條IRQ干預時進入的特權模式。
快速干預模式
處理器接受一條IRQ干預時進入的特權模式。
Hyp 模式
armv-7a為cortex-A15處理器提供硬件虛擬化引進的管理模式。

指令集

講求精簡又快速的設計方式,整體電路化卻又不採用微碼,就像早期使用在艾康微電腦的8位元6502處理器。

ARM架構包含了以下精簡指令集處理器的特性:

  • 載入-儲存架構
  • 不支援地址不對齊記憶體存取(ARMv6內核現已支援)
  • 大量的16 × 32-bit暫存器堆
  • 固定的32 bits操作碼(opcode)長度,降低編碼數量所產生的耗費,減輕解碼和管線化的負擔。
  • 大多均為一個CPU周期執行。

為了補強這種簡單的設計方式,相較於同時期的處理器如Intel 80286和Motorola 68020,還多加了一些特殊設計:

  • 大部分指令可以條件式地執行,降低在分支時產生的負重,彌補早期晶片分支預測器的不足。
  • 算數指令只會在要求時更改條件編碼(condition code)
  • 32-bit筒型位元移器可用來執行大部分的算數指令和定址計算而不會損失效能
  • 強大的索引定址模式
  • 支援快速葉端函數呼叫的鏈暫存器英語Link register
  • 精簡但快速的雙優先級中斷子系統,具有可切換的暫存器組

暫存器

暫存器 R0-R7 對於所有CPU模式都是相同的,它們不會被分塊。

對於所有的特權CPU模式,除了系統CPU模式之外,R13和R14都是分塊的。也就是說,每個因為一個異常(exception)而可以進入模式,有其自己的R13和R14。這些暫存器通常分別包含堆疊指標和函數呼叫的返回地址。

暫存器,對於所有CPU模式
usr sys svc abt und irq fiq
R0
R1
R2
R3
R4
R5
R6
R7
R8 R8_fiq
R9 R9_fiq
R10 R10_fiq
R11 R11_fiq
R12 R12_fiq
R13 R13_svc R13_abt R13_und R13_irq R13_fiq
R14 R14_svc R14_abt R14_und R14_irq R14_fiq
R15
CPSR
SPSR_svc SPSR_abt SPSR_und SPSR_irq SPSR_fiq

同名的名稱:

  • R13 也被指為 SP(Stack Pointer)
  • R14 也被指為 LR(Link Register)
  • R15 也被指為 PC(Program Counter)

有條件執行

有個附加在 ARM 設計中好玩的東西[語調不似百科],就是在每個指令前頭使用一個 4-bit 的 條件編碼,表示該指令是否為有條件式地執行。

這大大的減低了在記憶體存取指令時用到的編碼位元,換句話說,它避免了在小型敘述(如if)中做分支。以下為參照歐幾里得最大公因數演算法的標準範例:

C語言中,迴圈為:

int gcdint i, int j
{
    whilei != j
        ifi > j
            i -= j;
        else
            j -= i;
    return i;
}

在ARM匯編語言中,迴圈為:

loop: CMP    Ri, Rj       ;設定條件為"NE"(不等於) if(i != j)
                          ;"GT"(大於) if(i > j),
                          ;或"LT"(小於) if(i < j)
      SUBGT  Ri, Ri, Rj   ;若"GT"(大於), i = i-j;
      SUBLT  Rj, Rj, Ri   ;若"LT"(小於), j = j-i;
      BNE    loop         ;若"NE"(不等於),则继续循环

這避開了thenelse子句之間的分支。

其他特色

另一項指令集的特色是,能將位元移(shift)和迴轉(rotate)等功能併成"資料處理"型的指令(算數、邏輯、和暫存器之間的搬移),因此舉例來說,一個C語言的敘述

a += (j << 2);

在ARM之下,可簡化成只需一個word和一個cycle即可完成的指令

ADD     Ra, Ra, Rj, LSL #2

這結果可讓一般的ARM程式變得更加緊密,而不需經常使用記憶體存取,管線也可以更有效地使用。即使在ARM以一般認定為慢速的速度下執行,與更複雜的CPU設計相比它仍能執行得不錯。

ARM處理器還有一些在其他RISC的架構所不常見到的特色,例如程式計數器-相對定址(的確在ARM上程式計數器為16個暫存器的其中一個)以及前遞加或後遞加的定址模式。

另外值得注意的是ARM處理器會隨着時間不斷地增加它的指令集。譬如某些早期的ARM處理器(比ARM7TDMI更早),可能並未具備指令可以讀取2 Bytes的數量;因此嚴格來講,對這些處理器產生程式碼時,就不可能處理如C語言物件中使用「volatile short」的資料型態。

管線

ARM7和大多數較早的設計具備三階段的管線:提取指令、解碼,並執行。較高效能的設計,如ARM9,則有更深階段的管線: Cortex-A8有13階段的管線。提高效能的額外方式,包含一顆較快的加法器,和更廣的分支預測邏輯線路。例如,在ARM7DI核與ARM7DMI核之間的差異,是一種改進的乘法器(因此添加的「M」)。

輔助處理器

這個架構使用「輔助處理器」提供一種非侵入式的方法來延伸指令集,可透過軟件下MCR、MRC、MRRC和MCRR等指令來對輔助處理器定址。輔助處理器空間邏輯上通常分成16個輔助處理器,編號分別從0至15;而第15號輔助處理器是保留用作某些常用的控制功能,像是使用快取和記憶管理單元運算(若包含於處理器時)。

  • 在ARM架構的機器中,週邊裝置連接處理器的方式,通常透過將裝置的實體暫存器對應到ARM的記憶體空間、輔助處理器空間,或是連接到另外依序接上處理器的裝置(如匯流排)。輔助處理器的存取延遲較低,所以有些周邊裝置(例如XScale中斷控制器)會設計成可透過不同方式存取(透過記憶體和輔助處理器)。

除錯

DSP增強指令

Thumb

較新的ARM處理器有一種16-bit指令模式,叫做Thumb,也許跟每個條件式執行指令均耗用4位元的情形有關。在Thumb模式下,較小的opcode有更少的功能性。例如,只有分支可以是條件式的,且許多opcode無法存取所有CPU的暫存器。然而,較短的opcode提供整體更佳的編碼密度(註:意指程式碼在記憶體中佔的空間),即使有些運算需要更多的指令。特別在記憶體埠或匯流排寬度限制在32以下的情形時,更短的Thumb opcode能更有效地使用有限的記憶體頻寬,因而提供比32位元程式碼更佳的效能。典型的嵌入式硬件僅具有較小的32-bit datapath定址範圍以及其他更窄的16 bits定址(例如Game Boy Advance)。在這種情形下,通常可行的方案是編譯成Thumb程式碼,並自行最佳化一些使用(非Thumb)32位元指令集的CPU相關程式區,因而能將它們置入受限的32-bit匯流排寬度的記憶體中。

首顆具備Thumb技術的處理器是ARM7TDMI。所有ARM9和後來的家族,包括XScale,都納入了Thumb技術。

Jazelle

ARM還開發出一項技術,Jazelle DBX(Direct Bytecode eXecution),允許它們在某些架構的硬件上加速執行Java bytecode,就如其他執行模式般,當呼叫一些無法支援bytecodes的特殊軟件時,能提供某些bytecodes的加速執行。它能在現存的ARM與Thumb模式之間互相執行。

首顆具備Jazelle技術的處理器是「ARM7EJ-S」:Jazelle以一個英文字母'J'標示於CPU名稱中。它用來讓手機製造商能夠加速執行Java ME的遊戲和應用程式,也因此促使了這項技術不斷地發展。

Thumb-2

Thumb-2技術首見於「ARM1156核心」,並於2003年發表。Thumb-2擴充了受限的16位元Thumb指令集,以額外的32位元指令讓指令集的使用更廣泛。因此Thumb-2的預期目標是要達到近乎Thumb的編碼密度,但能表現出近乎ARM指令集在32位元記憶體下的效能。

Thumb-2至今也從ARM和Thumb指令集中衍伸出多種指令,包含位元欄操作、分支建表和條件執行等功能。

Thumb Execution Environment(ThumbEE)

ThumbEE,也就是所謂的Thumb-2EE,業界稱為Jazelle RCT頁面存檔備份,存於互聯網檔案館)技術,於2005年發表,首見於「Cortex-A8」處理器。ThumbEE提供從Thumb-2而來的一些擴充性,在所處的執行環境下,使得指令集能特別適用於執行階段的編碼產生(例如即時編譯)。Thumb-2EE是專為一些語言如LimboJavaC#PerlPython,並能讓即時編譯器能夠輸出更小的編譯碼卻不會影響到效能。

ThumbEE所提供的新功能,包括在每次存取指令時自動檢查是否有無效指標,以及一種可以執行陣列範圍檢查的指令,並能夠分支到分類器,其包含一小部份經常呼叫的編碼,通常用於高階語言功能的實作,例如對一個新物件做記憶體組態。

進階SIMD(NEON)

進階SIMD延伸集,業界稱為「NEON」技術,它是一個結合64位元和128位元的單指令多重數指令集(SIMD),其針對多媒體和訊號處理程式具備標準化加速的能力。NEON可以在10 MHz的處理器上執行MP3音效解碼,且可以執行13 MHz以下的自適應多速率音頻壓縮編碼。NEON具有一組廣泛的指令集、各自的暫存器檔案,以及獨立執行的硬件。NEON支援8、16、32和64位元的整數及單精度浮點數據,並以單指令多重數的方式運算,執行圖形和遊戲處理中關於語音及視像的部分。單指令多重指令集在向量超級處理機中是個決定性的要素,它具備同時多項處理功能。在NEON技術中,SIMD最高可同時做16個運算。

VFP

VFP(向量浮點)是在協同處理器針對ARM架構的衍生技術。它提供低成本的單精度和倍精度浮點運算能力,並完全相容於ANSI/IEEE Std 754-1985二進位元浮點算數標準。VFP提供大多數適用於浮點運算的應用,例如PDA、智能手機、語音壓縮與解壓、3D圖像以及數碼音效、印表機、機頂盒,和汽車應用等。VFP架構也支援SIMD平行化的短向量指令執行。這在圖像和訊號處理等應用上,非常有助於降低編碼大小並增加輸出效率。

在ARM為基礎的處理器中,其他可見的浮點、或SIMD的協同處理器還包括了FPA、FPE、iwMMXt。他們提供類似VFP的功能,但在opcode層面上來說並不具有相容性。

安全性擴充(TrustZone)

TrustZone技術出現在ARMv6KZ以及較晚期的應用核心架構中。它提供了一種低成本的方案,針對系統單晶片內加入專屬的安全核心,由硬件建構的存取控制方式支援兩顆虛擬的處理器。這個方式可使得應用程式核心能夠在兩個狀態(領域)之間切換,在此架構下可以避免資訊從較可信的核心領域洩漏至較不安全的領域。這種內核領域之間的切換通常是與處理器其他功能完全無關聯性,因此各個領域可以各自獨立運作但卻仍能使用同一顆內核。記憶體和周邊裝置也可因此得知目前內核運作的領域為何,並能針對這個方式來提供對裝置的機密和編碼進行存取控制。典型的TrustZone技術應用是要能在一個缺乏安全性的環境下完整地執行作業系統,並在可信的環境下能有更少的安全性的編碼。T6[20]是中國第一個開源的TrustZone安全內核(該專案目前已經在公開領域消失)。OP-TEE(Open Portable Trusted Executive Environment)成為目前(2017/7)較為成功的可信執行環境(TEE)開源專案。

ARM授權方式

ARM公司本身並不靠自有的設計來製造或販售CPU,而是將處理器架構授權給有興趣的廠家。ARM提供了多樣的授權條款,包括售價與散播性等項目。對於授權方來說,ARM提供了ARM內核的整合硬件敘述,包含完整的軟件開發工具(編譯器、debugger、SDK),以及針對內含ARM CPU矽晶片的銷售權。對於無晶圓廠的授權方來說,其希望能將ARM內核整合到他們自行研發的晶片設計中,通常就僅針對取得一份生產就緒的智財核心技術(IP Core)認證。對這些客戶來說,ARM會釋出所選的ARM核心的閘極電路圖,連同抽象模擬模型和測試程式,以協助設計整合和驗證。需求更多的客戶,包括整合元件製造商(IDM)和晶圓廠家,就選擇可合成的RTL(暫存器傳輸級,如Verilog)形式來取得處理器的知識產權(IP)。藉着可整合的RTL,客戶就有能力能進行架構上的最佳化與加強。這個方式能讓設計者完成額外的設計目標(如高震盪頻率、低能量耗損、指令集延伸等)而不會受限於無法更動的電路圖。雖然ARM並不授予授權方再次販售ARM架構本身,但授權方可以任意地販售製品(如晶片元件、評估板、完整系統等)。商用晶圓廠是特殊例子,因為他們不僅授予能販售包含ARM內核的矽晶成品,對其它客戶來講,他們通常也保留重製ARM內核的權利。

就像大多數IP販售方,ARM依照使用價值來決定IP的售價。在架構上而言,更低效能的ARM內核比更高效能的內核擁有較低的授權費。以矽晶片實作而言,一顆可整合的內核要比一顆硬件巨集(黑箱)內核要來得貴。更複雜的價位元問題來講,

許多半導體公司持有ARM授權:AtmelBroadcomCirrus LogicFreescale(於2004從摩托羅拉公司獨立出來)、富士通英特爾(藉由和迪吉多的控訴調停)、IBMNVIDIA、台灣新唐科技(Nuvoton Technology)、英飛凌任天堂恩智浦半導體(於2006年從飛利浦獨立出來)、沖電氣三星電子蘋果夏普意法半導體德州儀器VLSI等許多這些公司均擁有各個不同形式的ARM授權。雖然ARM的授權項目由保密合約所涵蓋,在知識產權工業,ARM是廣為人知最昂貴的CPU內核之一。單一的客戶產品包含一個基本的ARM內核可能就需索取一次高達美金20萬的授權費用。而若是牽涉到大量架構上修改,則費用就可能超過千萬美元。

ARM核心時間線

下表列出每個核心發佈年份[21][22]。未包括ARM7之前的核心。

年份 經典核心 Cortex核心
ARM7 ARM8 ARM9 ARM10 ARM11 微控制器 即時 應用
(32位元)
應用
(64位元)
1993 ARM700
1994 ARM710
ARM7DI
ARM7TDMI
1995 ARM710a
1996 ARM810
1997 ARM710T
ARM720T
ARM740T
1998 ARM9TDMI
ARM940T
1999 ARM9E-S
ARM966E-S
2000 ARM920T
ARM922T
ARM946E-S
ARM1020T
2001 ARM7TDMI-S
ARM7EJ-S
ARM9EJ-S
ARM926EJ-S
ARM1020E
ARM1022E
2002 ARM1026EJ-S ARM1136J(F)-S
2003 ARM968E-S ARM1156T2(F)-S
ARM1176JZ(F)-S
2004 Cortex-M3
2005 ARM11MPCore Cortex-A8
2006 ARM996HS
2007 Cortex-M1 Cortex-A9
2008
2009 Cortex-M0 Cortex-A5
2010 Cortex-M4(F) Cortex-A15
2011 Cortex-R4
Cortex-R5
Cortex-R7
Cortex-A7
2012 Cortex-M0+ Cortex-A53
Cortex-A57
2013 Cortex-A12
2014 Cortex-M7(F) Cortex-A17
2015 Cortex-A35
Cortex-A72
2016 Cortex-M23
Cortex-M33(F)
Cortex-R8
Cortex-R52
Cortex-A32 Cortex-A73
2017 Cortex-A55
Cortex-A75
2018 Cortex-M35P Cortex-A76
2019 Cortex-A77
2020 Cortex-A78

Cortex-X1

2021 Cortex-X2

Cortex-A710

Cortex-A510

2022 Cortex-X3

Cortex-A715

2023 Cortex-X4

Cortex-A720

Cortex-A520

ARM內核的授權與應用

經典核心
ARM內核 裝置 產品
ARM1 ARM1 BBC MicroARM Evaluation System第二處理器
ARM2 ARM2 Acorn ArchimedesChessmachine
ARM250 ARM250 Acorn Archimedes
ARM3 ARM3 Acorn Archimedes
ARM60 ARM60 3DO Interactive Multiplayer、Zarlink GPS Receiver
ARM610 ARM610 Acorn Risc PC 600Apple Newton 100 series
ARM700 ARM700 Acorn Risc PC prototype CPU card
ARM710 ARM710 Acorn Risc PC 700
ARM7TDMI(-S) Atmel AT91SAM7、恩智浦半導體LPC2000LH754xxActel CoreMP7 Game Boy AdvanceNintendo DSApple iPodLego NXT, Juice BoxGarmin導航裝置(1990s – early 2000s)
ARM710a ARM7100、ARM 7500和ARM7500FE Acorn Risc PC 700、Apple eMate 300Psion Series 5(ARM7100)、Acorn A7000(ARM7500)、Acorn A7000+(ARM7500FE)、Acorn Network Computer(ARM7500FE)
StrongARM 迪吉多 SA-110, SA-1100, SA-1110 SA-110: Apple Newton 2x00 series、Acorn Risc PC、Rebel/Corel Netwinder、Chalice CATS,SA-1100: Psion netBook,SA-1110: LART、Intel Assabet、Ipaq H36x0、Balloon2Zaurus SL-5x00、HP Jornada 7xx、Jornada 560 series、Palm Zire 31
ARM810 Acorn Risc PC prototype CPU card
ARM710T Psion Series 5mxPsion Revo/Revo Plus/Diamond Mako
ARM720T 恩智浦半導體LH7952x Zipit Wireless Messenger
ARM940T GP2X(second core)、Meizu M6 Mini Player[23][24]
ARM966E-S 意法半導體STR91xF[25]
ARM920T Atmel AT91RM9200、AT91SAM9、Cirrus Logic EP9302、EP9307、EP9312、EP9315、Samsung S3C2442 and S3C2410 ArmadilloGP32GP2X(first core)、Tapwave ZodiacMotorola i.MX1)、Hewlett-Packard HP-49/50 CalculatorsSun SPOTHTC TyTNFIC Neo FreeRunner[26])、Garmin導航裝置(mid–late 2000s)、TomTom導航裝置[27]
ARM922T 恩智浦半導體LH7A40x
ARM926EJ-S 新唐科技(Nuvoton)NuMicro Family[28]德州儀器OMAP1710、OMAP1610、OMAP1611、OMAP1612、OMAP-L137、OMAP-L138;Qualcomm MSM6100、MSM6125、MSM6225、MSM6245、MSM6250、MSM6255A、MSM6260、MSM6275、MSM6280、MSM6300、MSM6500、MSM6800;Freescale i.MX21、i.MX27、i.MX28、Atmel AT91SAM9、恩智浦半導體、Samsung S3C2412 LPC30xx, NEC C10046F5-211-PN2-A SoC –未檔案化的內核有可能將ATi Hollywood繪圖晶片用於Wii,[29]Telechips TCC7801、TCC7901、ZiiLABS ZMS-05、Rockchip RK2806及RK2808、NeoMagic MiMagic Family MM6、MM6+、MM8、MTV;全志科技F-serial(F1E200/F1C100、F20、F13、F10、F18)[30]信驊科技ASPEED頁面存檔備份,存於互聯網檔案館) (AST1510、AST2050、AST2150、AST2300/1050、AST2400/1250、AST3100)[31]. 流動電話:Sony Ericsson(K, W series);Siemens以及Benq(x65系列和更新版本);LG Arena;GPH Wiz;Squeezebox Duet Controller (Samsung S3C2412)。Squeezebox RadioBuffalo TeraStation Live (NAS); Drobo FS (NAS),Western 迪吉多 MyBook I World Edition;Western 迪吉多 MyBook II World Edition;Seagate FreeAgent DockStar STDSD10G-RK;Seagate FreeAgent GoFlex Home;Chumby Classic
ARM946E-S Nintendo DSNokia N-GageCanon PowerShot A470Canon EOS 5D Mark II[32]Conexant 802.11 chips、Samsung S5L2010
XScale Intel 80200、80219、PXA210、PXA250、PXA255、PXA263、PXA26x、PXA27x、PXA3xx、PXA900、IXC1100、IXP42x 80219: Thecus N2100,OP321: Iyonix,PXA210/PXA250: Zaurus SL-5600、iPAQ H3900、Sony CLIÉ NX60、NX70V、NZ90,PXA255: Gumstix basix & connexPalm Tungsten E2、Zaurus SL-C860、Mentor Ranger & Stryder、iRex ILiad,PXA263: Sony CLIÉ NX73V, NX80V,PXA26x: Tungsten T3,PXA27x: Gumstix verdex"Trizeps-Modules"頁面存檔備份,存於互聯網檔案館)、"eSOM270-Module"頁面存檔備份,存於互聯網檔案館),PXA270 COM、HTC Universal、HP hx4700、Zaurus SL-C1000、3000、3100、3200、Dell Axim x30、x50、and x51 series、Motorola Q、Balloon3Trolltech GreenphonePalm TX、Motorola Ezx Platform A728、A780、A910、A1200、E680、E680i、E680g、E690、E895、Rokr E2、Rokr E6、Fujitsu Siemens LOOX N560、Toshiba Portégé G500、Trēo 650-755p、Zipit Z2、HP iPaq 614c Business Navigator、I-mate PDA2,PXA3XX: Samsung Omnia、Samsung SGH-i780,PXA900: Blackberry 8700、Blackberry Pearl(8100),IXP42x: NSLU2
ARM1026EJ-S Conexant so4610以及so4615 ADSL SoC
ARM1136J(F)-S 德州儀器OMAP2420, Qualcomm MSM7200, MSM7201A, MSM7227, Freescale i.MX31以及MXC300-30 OMAP2420: Nokia E90Nokia N93Nokia N95Nokia N82ZuneBUGbase[33]Nokia N800Nokia N810Motorola Q9
Freescale i.MX31: original Zune 30 GB, Toshiba Gigabeat S and Kindle DX ,Freescale MXC300-30 :Nokia E63Nokia E71Nokia 5800Nokia E51Nokia 6700 ClassicNokia 6120 ClassicNokia 6210 NavigatorNokia 6220 ClassicNokia 6290Nokia 6710 NavigatorNokia 6720 ClassicNokia E75Nokia N97Nokia N81
Qualcomm MSM7200: Eten GlofiishHTC TyTN IIHTC Nike,Qualcomm MSM7201A: HTC DreamHTC MagicMotorola i1Motorola Z6HTC HeroSamsung SGH-i627 (Propel Pro)Sony Ericsson Xperia X10 Mini Pro,Qualcomm MSM7227: ZTE Link, HTC LegendHTC AriaViewsonic ViewPad 7[34][35]
ARM968E-S 恩智浦半導體LPC29xx
ARM1176JZ(F)-S Conexant CX2427XNvidia GoForce 6100[36]Telechips TCC9101、TCC9201、TCC8900;Fujitsu MB86H60Samsung S3C6410、S3C6430、[37]Qualcomm MSM7627;Infineon X-GOLD 213;MediaTek MT6573信驊科技ASPEED頁面存檔備份,存於互聯網檔案館)(AST1520、AST2500、AST3200);Broadcom BCM2835、BCM21553 Apple iPhone (original and 3G)Apple iPod touch (1st and 2nd Generation)Motorola RIZR Z8Motorola RIZR Z10Nintendo 3DS
S3C6410: Samsung Omnia IISamsung MomentSamsung M910 InterceptSmartQ 5
Qualcomm MSM7627: Palm Pixi、LG Optimus V(VM670)Motorola Calgary/Devour
MediaTek MT6573: Lenovo-A60
BCM2835: Raspberry Pi
ARM11 MPCore Nvidia APX 2500(Tegra
Cortex核心
ARM內核 裝置 產品
Cortex-M3 德州儀器Stellaris頁面存檔備份,存於互聯網檔案館),意法半導體STM32F2頁面存檔備份,存於互聯網檔案館),恩智浦半導體LPC17xxToshiba TMPM330,[38]Ember EM3xx、Atmel AT91SAM3、Europe Technologies EasyBCUEnergy Micro EFM32Actel SmartFusionmbed
Cortex-A8 德州儀器OMAP3xxx系列、飛思卡爾i.MX51-SOCApple A4ZiiLABS ZMS-08、三星Hummingbird S5PC100/S5PC110、Marvell ARMADA 500/600、Rockchip RK2918[39]全志科技A-serial(A10/A13/A10s)[40] HTC Desire、SBM7000、俄勒岡州立大學OSWALDGumstix Overo EarthPandoraApple iPhone 3GSApple iPod touch (3rd and 4th Generation)iPadA4)、iPhone 4A4)、Apple TV (Second Generation)A4)、Archos 5Archos 43BeagleBoardGenesi EFIKA MX、Motorola DroidMotorola Droid X摩托羅拉里程碑2Motorola Droid R2D2 EditionPalm PrePalm Pre 2HP VeerHP Pre 3Samsung Omnia HDSamsung Wave S8500Samsung Galaxy SSamsung P1000 Galaxy TabSony Ericsson SatioSony Ericsson Xperia X10Touch BookNokia N900魅族M9Google Nexus SGalaxy SLHTC SensationSharp PC-Z1 "Netwalker"
Cortex-M1 Actel ProASIC3、ProASIC3L、IGLOO及Fusion PSC devicesAltera Cyclone III,其他FPGA產品也支援,例如:Synplicity[41]
Cortex-A9 德州儀器OMAP4430/4440ST-Ericsson U8500/U5500、Nvidia Tegra2Nvidia Tegra3、三星Orion/Exynos 4210/4212/4412、意法半導體SPEAr1310頁面存檔備份,存於互聯網檔案館)、Xilinx Extensible Processing Platform[42]、Trident PNX847x/8x/9x STB SoC[43]、Freescale i.MX6[44]Apple A5MediaTek MT6575/6577、VIA Elite-E1000[45] Apple iPad 2A5)、LG Optimus 2X、LG Optimus 3D、Motorola Atrix 4G、Motorola DROID BIONIC、Motorola XoomPandaBoard、PS VITA(NGP)、HP TouchPad、Galaxy S2(GT-i9100)、Galaxy R(GT-i9103)、Galaxy S3(GT-i9300,E210)、Galaxy Tab 10.1、Galaxy Tab 2、Galaxy Note(N7000)、Galaxy Note 2、Galaxy Note 10.1、Galaxy Ace 2HTC One X魅族MX魅族MX2聯想K860PlayStation VitaSony Xperia USony Xperia solaSony Xperia PSony Xperia go
Cortex-M0 恩智浦半導體LPC11xx[46]Triad Semiconductor[47]Melfas[48]Chungbuk Technopark[49]新唐科技(Nuvoton)NuMicro Family[28]austriamicrosystems[50]羅姆電子[51] Nordic英語Nordic Semiconductor nRF51822:BBC micro:bit
Cortex-A5 Telechips TCC892x, Qualcomm Snapdragon MSM7225A/MSM7625A/MSM7227A/MSM7627A, Atmel SAMA5 (D2/D3/D4), MYIR development board MYD-JA5D2X
Cortex-M4 飛思卡爾Kinetis頁面存檔備份,存於互聯網檔案館),恩智浦半導體LPC43xx,意法半導體STM32F4頁面存檔備份,存於互聯網檔案館),新唐科技(Nuvoton)NuMicro Family[28] Mikroelektronika Hexiwear頁面存檔備份,存於互聯網檔案館
Cortex-A15 德州儀器OMAP5、三星 Exynos 5250/5450、ST Ericsson[52]、Nvidia ChromebookNexus 10
Cortex-R4(F) 博通,德州儀器TMS570
Cortex-R5F Scaleo OLEA
Cortex-A7 Freescale i.MX6 UltraLite,Allwinner A20, Allwinner A31, Allwinner H3, Broadcom BCM2836, Rockchip RK3128 Freescale i.MX6 UltraLite: Boardcon EM6ul SBC, EINK-IMX7 SBC頁面存檔備份,存於互聯網檔案館), MYS-6ULX Single Board Computer頁面存檔備份,存於互聯網檔案館
Broadcom BCM2836: Raspberry Pi 2[53]
Rockchip RK3128: Boardcon Compact3128[54]
Lenovo a820、onda v812
OKMX6ULL-S Single Board Computer頁面存檔備份,存於互聯網檔案館
Cortex-M0+ NXP Semiconductors LPC8xx Freescale Kinetis L
Cortex-A53 Broadcom: BCM2837, HiSilicon: Kirin 620, 650, 655, 658, 930, 935, 950, 955, 960, Mediatek: MT6737M, MT6750, Qualcomm: Snapdragon 410, 412, 415, 425, 427, 430, 435, 610, 615, 616, 620, 625, 626, 808, 810, Allwinner H5, Allwinner H6 Broadcom BCM2837: Raspberry Pi 3[55]
Cortex-A57 AMD Opteron A1100-series, Freescale QorIQ LS20xx, Nvidia Tegra X1, Qualcomm Snapdragon 808, 810, Samsung Exynos 7 5433, 7420
Cortex-A17 Rockchip RK3288 RK3288:Asus Tinker Board, Boardcon頁面存檔備份,存於互聯網檔案館) EM3288 SBC[56]
Cortex-A72 HiSilicon Kirin 950, 955, MediaTek Helio X2x, MT817x, Mstar 6A938, Qualcomm Snapdragon 650, 652, 653|65x,Broadcom BCM2711, Rockchip RK3399, Freescale QorIQ LS2088, Freescale QorIQ LS1046A Broadcom BCM2711: Raspberry Pi 4[5]

Rockchip RK3399: Boardcon EM3399 SBC頁面存檔備份,存於互聯網檔案館

Cortex-A73 HiSilicon Kirin 960, Kirin 970, MediaTek Helio X30
Cortex-A75 Qualcomm Kryo 385[57]
Cortex-A76 Qualcomm Kryo 460
Cortex-A77

延伸閱讀

參考資料

  1. ^ 1.0 1.1 1.2 Grisenthwaite, Richard. ARMv8-A Technology Preview (PDF). 2011 [2011-10-31]. (原始內容存檔 (PDF)於2018-11-09). 
  2. ^ Procedure Call Standard for the ARM Architecture (PDF). ARM Holdings. 2013-11-30 [2013-05-27]. (原始內容存檔 (PDF)於2013-04-28). 
  3. ^ 3.0 3.1 Fujitsu drops SPARC, turns to ARM for Post-K supercomputer. [2016-07-04]. (原始內容存檔於2016-06-25). 
  4. ^ ARM Discloses Technical Details Of The Next Version Of The ARM Architecture (新聞稿). ARM Holdings. 2011-10-27 [2013-09-20]. (原始內容存檔於2019-01-01). 
  5. ^ 5.0 5.1 Fitzpatrick, J. An interview with Steve Furber. Communications of the ACM. 2011, 54 (5): 34 [2012-06-02]. doi:10.1145/1941487.1941501. (原始內容存檔於2011-07-27). 
  6. ^ ARM Holdings eager for PC and server expansion, 2011-02-01 [2012-11-23], (原始內容存檔於2012-11-16) 
  7. ^ AMD in chip tie-up with UK's ARM, BBC, 2012-10-30 [2012-11-08], (原始內容存檔於2012-11-16) 
  8. ^ 「富岳」ニュース -2.名称決定-. 理化學研究所 計算科學研究センター. [2020-10-28]. (原始內容存檔於2021-01-20). 
  9. ^ 日本のスパコン「富岳」、8年半ぶり世界一奪還. 日本経済新聞. 2020-06-23 [2020-10-28]. (原始內容存檔於2021-02-21). 
  10. ^ 日本のスパコン「富岳」世界ランキング1位、世界初の2期連続4冠. QEEE. INTLOOP株式會社. 2020-11-17 [2020-12-20]. (原始內容存檔於2021-07-25). 
  11. ^ 株式會社インプレス. 富岳は、主要なスパコンベンチのすべてで1位を獲得することが重要. PC Watch. 2020-11-17 [2020-12-20]. (原始內容存檔於2021-07-25). 
  12. ^ ソフトバンク、ARM買収を正式発表, 2016-07-18 [2016-07-19], (原始內容存檔於2016-07-19) 
  13. ^ "ARMed for the living room"頁面存檔備份,存於互聯網檔案館).
  14. ^ Jason Fitzpatrick. An interview with Steve Furber. Communications of the ACM. 2011-05-01, 54 (5): 34–39 [2018-04-02]. ISSN 0001-0782. doi:10.1145/1941487.1941501. 
  15. ^ Patterson, Jason. The Acorn Archimedes"頁面存檔備份,存於互聯網檔案館), The History Of Computers During My Lifetime – The 1980s by (accessed 12 March 2008)]
  16. ^ 存档副本 (PDF). [2006-09-20]. (原始內容 (PDF)存檔於2006-10-04). 
  17. ^ "ARM Corporate Backgrounder"頁面存檔備份,存於互聯網檔案館), ARM Technology.
  18. ^ ARM Launches Cortex-A50 Series, the World’s Most Energy-Efficient 64-bit Processors (新聞稿). ARM Holdings. [2012-10-31]. (原始內容存檔於2013-01-09). 
  19. ^ Line Card (PDF). 2003 [2012-10-01]. (原始內容 (PDF)存檔於2017-10-20). 
  20. ^ T6: TrustZone Based Trusted Kernel, trustkernel, 2014-07-08 [2014-07-08], (原始內容存檔於2022-04-18) 
  21. ^ ARM Company Milestones.. [2018-11-30]. (原始內容存檔於2014-03-28). 
  22. ^ ARM Press Releases.. [2018-11-30]. (原始內容存檔於2014-04-09). 
  23. ^ Rockbox Samsung SA58xxx series. [2008-02-22]. (原始內容存檔於2008-07-20). 
  24. ^ Rockbox Meizu M6 Port – Hardware Information. [2008-02-22]. (原始內容存檔於2008-05-12). 
  25. ^ STR9 – STR912 – STR912FW44 microcontroller – documents and files download page. Mcu.st.com. [2009-04-18]. (原始內容存檔於2012-05-24). 
  26. ^ Neo1973: GTA01Bv4 versus GTA02 comparison. [2007-11-15]. (原始內容存檔於2015-11-20). 
  27. ^ S3C2410. [2010-01-13]. (原始內容存檔於2012-03-13). 
  28. ^ 28.0 28.1 28.2 ARM Cortex™-M0 NuMicro™ Family. Nuvoton. 2013-04-25 [2013-04-25]. (原始內容存檔於2014-09-05). 
  29. ^ Starlet頁面存檔備份,存於互聯網檔案館).
  30. ^ AllWinner Technology(全志科技). [2014-09-30]. (原始內容存檔於2014-10-06). 
  31. ^ ASPEED Technology(信驊科技). [2014-09-30]. (原始內容存檔於2014-10-06). 
  32. ^ Datasheets - Magic Lantern Firmware Wiki. Magiclantern.wikia.com. 2010-12-28 [2011-01-06]. (原始內容存檔於2011-07-18). 
  33. ^ Bug Labs, [2011-05-16], (原始內容存檔於2011-05-19) .
  34. ^ Qualcomm chips kernel ARM—from phones to laptops. xi0.info. [2010-05-08]. (原始內容存檔於2012-03-13). 
  35. ^ Qualcomm MSM7227 RISC Chipset. PDADB. [2010-05-08]. (原始內容存檔於2012-03-13). 
  36. ^ GoForce 6100. Nvidia. [2009-04-18]. (原始內容存檔於2015-11-20). 
  37. ^ Samsung S3C6410 and S3C6430 Series ARM Proccessors. Samsung. [2009-10-08]. (原始內容存檔於2009-09-01). 
  38. ^ Press release, Toshiba, 2008 [2011-05-16], (原始內容存檔於2011-06-14) .
  39. ^ (英文) RK2918 specs頁面存檔備份,存於互聯網檔案館
  40. ^ http://www.allwinnertech.com/product[永久失效連結]
  41. ^ ARM Extends Cortex Family with First Processor Optimized for FPGA, ARM, [2011-05-16], (原始內容存檔於2007-05-05) .
  42. ^ Xilinx WP369 Extensible Processing Platform Ideal Solution for a Wide Range of Embedded Systems, White Paper (PDF). [2011-01-06]. (原始內容 (PDF)存檔於2011-09-02). 
  43. ^ NXP Semiconductors and ARM Showcase NXP 847x/8x/9x, the World’s First Fully Integrated 45 nm Set-Top Box(STB)SoC Platform at CES 2010. Embeddedsystemnews.com. 2010-01-06 [2011-01-06]. (原始內容存檔於2010-12-19). 
  44. ^ Freescale announces i.MX 6 processor series, wants quad cores in your smartphone. Engadget. 2010-12-29 [2011-01-06]. (原始內容存檔於2011-01-06). 
  45. ^ VAB-1000 1.0GHz VIA Elite E1000 Cortex-A9 dual-core SoC (PDF). [永久失效連結]
  46. ^ Walko, John. NXP first to demo ARM Cortex-M0 silicon. EE Times. 2009-03-23 [2009-06-29]. (原始內容存檔於2012-03-13). 
  47. ^ ARM Powered VCAs. Triad Semiconductor. [2011-01-06]. (原始內容存檔於2011-07-16). 
  48. ^ Richard Wilson. Cortex-M0 used in low power touch controller. Electronics Weekly. 2009-06-10 [2011-01-06]. (原始內容存檔於2011-08-16). 
  49. ^ Chungbuk Technopark Chooses ARM Cortex-M0 Processor. Design Reuse. [2011-01-06]. (原始內容存檔於2010-10-07). 
  50. ^ Austriamicrosystems Chooses ARM Cortex-M0 Processor for Mixed Signal Applications. EDA Café. [2011-01-06]. (原始內容存檔於2011-07-22). 
  51. ^ Rohm Licenses ARM Cortex-M0 Processor. ARM. 2010-05-13 [2011-01-06]. (原始內容存檔於2010-11-16). 
  52. ^ Why Cortex-A15 makes for Smarter, Lightning-Quick Mobile Devices in the Future—ARM Community. Blogs. ARM. [2011-01-06]. (原始內容存檔於2010-12-06). 
  53. ^ Love to Get Your Hands on a Raspberry Pi 2? Hat Tip to Broadcom. Broadcom. 2015-02-02 [2015-07-22]. (原始內容存檔於2015-07-23). 
  54. ^ Compact3128 Card size board. Boardcon Embedded Design. [2018-04-09]. (原始內容存檔於2018-04-11). 
  55. ^ Upton, Eben. Raspberry Pi 3 on sale now at $35 - Raspberry Pi. Raspberry Pi. 2016-02-29 [2016-02-29]. (原始內容存檔於2016-02-29) (英國英語). 
  56. ^ EM3288 SBC. Boardcon Embedded Design. [2018-04-09]. (原始內容存檔於2017-10-14). 
  57. ^ Frumusanu, Andrei. Qualcomm Announces Snapdragon 845 Mobile Platform. Anandtech. 2017-12-06 [2017-12-07]. (原始內容存檔於2018-06-12). 

外部連結