ARM架構
![本頁使用了標題或全文手工轉換](http://178.128.105.246/cars-http-upload.wikimedia.org/wikipedia/commons/thumb/c/cd/Zh_conversion_icon_m.svg/35px-Zh_conversion_icon_m.svg.png)
![]() | 此條目可參照英語維基百科相應條目來擴充。 (2022年8月8日) |
![]() ARM標誌 | |
推出年份 | 1985年 |
---|---|
設計公司 | ARM Holdings |
是否開放架構? | 專有 |
體系結構類型 | 暫存器-暫存器 |
字長/暫存器資料寬度 | 32位元或64位元 |
指令集架構設計策略 | RISC |
分支預測結構 | 條件代碼、比較和分支 |
推出年份 | 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-2、NEON、Jazelle、VFPv4-D16、VFPv4 |
通用暫存器 | 31個64位元整數暫存器[1] |
浮點暫存器 | 32個128位元暫存器[1],用於32位元和64位元標量浮點數或SIMD浮點數或整數;或密碼數值 |
最新架構版本 | 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/標準浮點數(可選項) |
最新架構版本 | ARMv6、ARMv5、ARMv4T、ARMv3、ARMv2 |
---|---|
位元組序 | ARMv3開始為可組態大小端序(預設小端序) |
指令編碼長度 | 32位元 Thumb:16或32位元 |
擴展指令集 | Thumb、Jazelle |
通用暫存器 | 15個32位元整數暫存器 R15是程式計數器(在較老的架構設計中為26位元定址) R14作為連結暫存器(link register) |
![](http://178.128.105.246/cars-http-upload.wikimedia.org/wikipedia/commons/thumb/8/85/ARMSoCBlockDiagram.svg/300px-ARMSoCBlockDiagram.svg.png)
ARM架構,過去稱作進階精簡指令集機器(英語:Advanced RISC Machine,更早稱作艾康精簡指令集機器,Acorn RISC Machine),是一個精簡指令集(RISC)處理器架構家族,其廣泛地使用在許多嵌入式系統設計。由於節能的特點,其在其他領域上也有很多作為。ARM處理器非常適用於行動通訊領域,符合其主要設計目標為低成本、高效能、低耗電的特性。另一方面,超級電腦消耗大量電能,ARM同樣被視作更高效的選擇[3]。安謀控股(ARM Holdings)開發此架構並授權其他公司使用,以供他們實現ARM的某一個架構,開發自主的系統單晶片和系統模組(system-on-module,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設計的衍伸產品,重要產品還包括Marvell的XScale架構和德州儀器的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架構處理器也開始用於以往x86、x64處理器獨大的個人電腦、伺服器。而在2020年成為TOP500排名第一的「富岳」為首部奪冠的ARM架構超級電腦。
歷史
[編輯]![](http://178.128.105.246/cars-http-upload.wikimedia.org/wikipedia/commons/thumb/f/f3/Conexant_arm.jpg/220px-Conexant_arm.jpg)
![](http://178.128.105.246/cars-http-upload.wikimedia.org/wikipedia/commons/thumb/2/20/P60ARM_GC_01.jpg/220px-P60ARM_GC_01.jpg)
ARM的設計是艾康電腦公司於1983年開始的發展計畫。
這個團隊由Roger Wilson和Steve Furber帶領,著手開發一種類似進階6502架構的處理器。Acorn電腦有一大堆建構在6502處理器上的電腦,因此能設計出一顆類似的晶片即意味著對公司有很大的優勢。
Acorn RISC Machine:ARM2
[編輯]![](http://178.128.105.246/cars-http-upload.wikimedia.org/wikipedia/commons/thumb/0/0a/Acorn-ARM-Evaluation-System.jpg/220px-Acorn-ARM-Evaluation-System.jpg)
團隊在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 | ARM2、ARM3 |
ARMv3 | ARM6、ARM7 |
ARMv4 | StrongARM、ARM7TDMI、ARM9TDMI |
ARMv5 | ARM7EJ、ARM9E、ARM10E、XScale |
ARMv6 | ARM11、ARM Cortex-M |
ARMv7 | ARM Cortex-A、ARM Cortex-M、ARM Cortex-R |
ARMv8 | Cortex-A35、Cortex-A50系列[18]、Cortex-A70系列、Cortex-X1 |
ARMv9 | Cortex-A510、Cortex-A710、Cortex-A715、Cortex-X2、Cortex-X3、ARM 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筒型位元移器可用來執行大部分的算數指令和定址計算而不會損失效能
- 強大的索引定址模式
- 支援快速葉端函式呼叫的鏈暫存器
- 精簡但快速的雙優先級中斷子系統,具有可切換的暫存器組
暫存器
[編輯]暫存器 R0-R7 對於所有CPU模式都是相同的,它們不會被分塊。
對於所有的特權CPU模式,除了系統CPU模式之外,R13和R14都是分塊的。也就是說,每個因為一個異常(exception)而可以進入模式,有其自己的R13和R14。這些暫存器通常分別包含堆疊指標和函式呼叫的返回位址。
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 gcd(int i, int j)
{
while(i != j)
if(i > 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"(不等於),则继续循环
這避開了then
和else
子句之間的分支。
其他特色
[編輯]另一項指令集的特色是,能將位元移(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是專為一些語言如Limbo、Java、C#、Perl和Python,並能讓即時編譯器能夠輸出更小的編譯碼卻不會影響到效能。
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授權:Atmel、Broadcom、Cirrus Logic、Freescale(於2004從摩托羅拉公司獨立出來)、富士通、英特爾(藉由和迪吉多的控訴調停)、IBM、NVIDIA、台灣新唐科技(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 | ||||||||
2021 | Cortex-X2 | ||||||||
2022 | Cortex-X3 | ||||||||
2023 | Cortex-X4 |
ARM核心的授權與應用
[編輯]ARM核心 | 裝置 | 產品 |
---|---|---|
ARM1 | ARM1 | BBC Micro的ARM Evaluation System第二處理器 |
ARM2 | ARM2 | Acorn Archimedes、Chessmachine |
ARM250 | ARM250 | Acorn Archimedes |
ARM3 | ARM3 | Acorn Archimedes |
ARM60 | ARM60 | 3DO Interactive Multiplayer、Zarlink GPS Receiver |
ARM610 | ARM610 | Acorn Risc PC 600、Apple Newton 100 series |
ARM700 | ARM700 | Acorn Risc PC prototype CPU card |
ARM710 | ARM710 | Acorn Risc PC 700 |
ARM7TDMI(-S) | Atmel AT91SAM7、恩智浦半導體LPC2000及LH754xx、Actel CoreMP7 | Game Boy Advance、Nintendo DS、Apple iPod、Lego NXT, Juice Box、Garmin導航裝置(1990s – early 2000s) |
ARM710a | ARM7100、ARM 7500和ARM7500FE | Acorn Risc PC 700、Apple eMate 300、Psion 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、Balloon2、Zaurus SL-5x00、HP Jornada 7xx、Jornada 560 series、Palm Zire 31 |
ARM810 | Acorn Risc PC prototype CPU card | |
ARM710T | Psion Series 5mx、Psion 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 | Armadillo、GP32、GP2X(first core)、Tapwave Zodiac(Motorola i.MX1)、Hewlett-Packard HP-49/50 Calculators、Sun SPOT、HTC TyTN、FIC 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 Radio;Buffalo 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 DS、Nokia N-Gage、Canon PowerShot A470、Canon 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 & connex、Palm 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、Balloon3、Trolltech Greenphone、Palm 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 E90、Nokia N93、Nokia N95、Nokia N82、Zune、BUGbase,[33]Nokia N800、Nokia N810,Motorola Q9 Freescale i.MX31: original Zune 30 GB, Toshiba Gigabeat S and Kindle DX ,Freescale MXC300-30 :Nokia E63、Nokia E71、Nokia 5800、Nokia E51、Nokia 6700 Classic、Nokia 6120 Classic、Nokia 6210 Navigator、Nokia 6220 Classic、Nokia 6290、Nokia 6710 Navigator、Nokia 6720 Classic、Nokia E75、Nokia N97、Nokia N81 Qualcomm MSM7200: Eten Glofiish、HTC TyTN II、HTC Nike,Qualcomm MSM7201A: HTC Dream、HTC Magic、Motorola i1、Motorola Z6、HTC Hero、Samsung SGH-i627 (Propel Pro)、Sony Ericsson Xperia X10 Mini Pro,Qualcomm MSM7227: ZTE Link, HTC Legend、HTC Aria、Viewsonic ViewPad 7[34][35] |
ARM968E-S | 恩智浦半導體LPC29xx | |
ARM1176JZ(F)-S | Conexant CX2427X、Nvidia GoForce 6100;[36];Telechips TCC9101、TCC9201、TCC8900;Fujitsu MB86H60;Samsung 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 Z8、Motorola RIZR Z10、Nintendo 3DS S3C6410: Samsung Omnia II、Samsung Moment、Samsung M910 Intercept、SmartQ 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) |
延伸閱讀
[編輯]- AMULET - 非同步ARM家族
- Arm v7 架構的路由器列表
- Arm v8 架構的路由器列表
參考資料
[編輯]- ^ 1.0 1.1 1.2 Grisenthwaite, Richard. ARMv8-A Technology Preview (PDF). 2011 [2011-10-31]. (原始內容存檔 (PDF)於2018-11-09).
- ^ Procedure Call Standard for the ARM Architecture (PDF). ARM Holdings. 2013-11-30 [2013-05-27]. (原始內容存檔 (PDF)於2013-04-28).
- ^ 3.0 3.1 Fujitsu drops SPARC, turns to ARM for Post-K supercomputer. [2016-07-04]. (原始內容存檔於2016-06-25).
- ^ ARM Discloses Technical Details Of The Next Version Of The ARM Architecture (新聞稿). ARM Holdings. 2011-10-27 [2013-09-20]. (原始內容存檔於2019-01-01).
- ^ 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).
- ^ ARM Holdings eager for PC and server expansion, 2011-02-01 [2012-11-23], (原始內容存檔於2012-11-16)
- ^ AMD in chip tie-up with UK's ARM, BBC, 2012-10-30 [2012-11-08], (原始內容存檔於2012-11-16)
- ^ 「富岳」ニュース -2.名称決定-. 理化學研究所 計算科學研究センター. [2020-10-28]. (原始內容存檔於2021-01-20).
- ^ 日本のスパコン「富岳」、8年半ぶり世界一奪還. 日本経済新聞. 2020-06-23 [2020-10-28]. (原始內容存檔於2021-02-21).
- ^ 日本のスパコン「富岳」世界ランキング1位、世界初の2期連続4冠. QEEE. INTLOOP株式會社. 2020-11-17 [2020-12-20]. (原始內容存檔於2021-07-25).
- ^ 株式會社インプレス. 富岳は、主要なスパコンベンチのすべてで1位を獲得することが重要. PC Watch. 2020-11-17 [2020-12-20]. (原始內容存檔於2021-07-25).
- ^ ソフトバンク、ARM買収を正式発表, 2016-07-18 [2016-07-19], (原始內容存檔於2016-07-19)
- ^ "ARMed for the living room" (頁面存檔備份,存於網際網路檔案館).
- ^ 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.
- ^ Patterson, Jason. The Acorn Archimedes" (頁面存檔備份,存於網際網路檔案館), The History Of Computers During My Lifetime – The 1980s by (accessed 12 March 2008)]
- ^ 存档副本 (PDF). [2006-09-20]. (原始內容 (PDF)存檔於2006-10-04).
- ^ "ARM Corporate Backgrounder" (頁面存檔備份,存於網際網路檔案館), ARM Technology.
- ^ ARM Launches Cortex-A50 Series, the World’s Most Energy-Efficient 64-bit Processors (新聞稿). ARM Holdings. [2012-10-31]. (原始內容存檔於2013-01-09).
- ^ Line Card (PDF). 2003 [2012-10-01]. (原始內容 (PDF)存檔於2017-10-20).
- ^ T6: TrustZone Based Trusted Kernel, trustkernel, 2014-07-08 [2014-07-08], (原始內容存檔於2022-04-18)
- ^ ARM Company Milestones.. [2018-11-30]. (原始內容存檔於2014-03-28).
- ^ ARM Press Releases.. [2018-11-30]. (原始內容存檔於2014-04-09).
- ^ Rockbox Samsung SA58xxx series. [2008-02-22]. (原始內容存檔於2008-07-20).
- ^ Rockbox Meizu M6 Port – Hardware Information. [2008-02-22]. (原始內容存檔於2008-05-12).
- ^ STR9 – STR912 – STR912FW44 microcontroller – documents and files download page. Mcu.st.com. [2009-04-18]. (原始內容存檔於2012-05-24).
- ^ Neo1973: GTA01Bv4 versus GTA02 comparison. [2007-11-15]. (原始內容存檔於2015-11-20).
- ^ S3C2410. [2010-01-13]. (原始內容存檔於2012-03-13).
- ^ 28.0 28.1 28.2 ARM Cortex™-M0 NuMicro™ Family. Nuvoton. 2013-04-25 [2013-04-25]. (原始內容存檔於2014-09-05).
- ^ Starlet (頁面存檔備份,存於網際網路檔案館).
- ^ AllWinner Technology(全志科技). [2014-09-30]. (原始內容存檔於2014-10-06).
- ^ ASPEED Technology(信驊科技). [2014-09-30]. (原始內容存檔於2014-10-06).
- ^ Datasheets - Magic Lantern Firmware Wiki. Magiclantern.wikia.com. 2010-12-28 [2011-01-06]. (原始內容存檔於2011-07-18).
- ^ Bug Labs, [2011-05-16], (原始內容存檔於2011-05-19).
- ^ Qualcomm chips kernel ARM—from phones to laptops. xi0.info. [2010-05-08]. (原始內容存檔於2012-03-13).
- ^ Qualcomm MSM7227 RISC Chipset. PDADB. [2010-05-08]. (原始內容存檔於2012-03-13).
- ^ GoForce 6100. Nvidia. [2009-04-18]. (原始內容存檔於2015-11-20).
- ^ Samsung S3C6410 and S3C6430 Series ARM Proccessors. Samsung. [2009-10-08]. (原始內容存檔於2009-09-01).
- ^ Press release, Toshiba, 2008 [2011-05-16], (原始內容存檔於2011-06-14).
- ^ (英文) RK2918 specs (頁面存檔備份,存於網際網路檔案館)
- ^ http://www.allwinnertech.com/product[永久失效連結]
- ^ ARM Extends Cortex Family with First Processor Optimized for FPGA, ARM, [2011-05-16], (原始內容存檔於2007-05-05).
- ^ Xilinx WP369 Extensible Processing Platform Ideal Solution for a Wide Range of Embedded Systems, White Paper (PDF). [2011-01-06]. (原始內容 (PDF)存檔於2011-09-02).
- ^ 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).
- ^ Freescale announces i.MX 6 processor series, wants quad cores in your smartphone. Engadget. 2010-12-29 [2011-01-06]. (原始內容存檔於2011-01-06).
- ^ VAB-1000 1.0GHz VIA Elite E1000 Cortex-A9 dual-core SoC (PDF).[永久失效連結]
- ^ Walko, John. NXP first to demo ARM Cortex-M0 silicon. EE Times. 2009-03-23 [2009-06-29]. (原始內容存檔於2012-03-13).
- ^ ARM Powered VCAs. Triad Semiconductor. [2011-01-06]. (原始內容存檔於2011-07-16).
- ^ Richard Wilson. Cortex-M0 used in low power touch controller. Electronics Weekly. 2009-06-10 [2011-01-06]. (原始內容存檔於2011-08-16).
- ^ Chungbuk Technopark Chooses ARM Cortex-M0 Processor. Design Reuse. [2011-01-06]. (原始內容存檔於2010-10-07).
- ^ Austriamicrosystems Chooses ARM Cortex-M0 Processor for Mixed Signal Applications. EDA Café. [2011-01-06]. (原始內容存檔於2011-07-22).
- ^ Rohm Licenses ARM Cortex-M0 Processor. ARM. 2010-05-13 [2011-01-06]. (原始內容存檔於2010-11-16).
- ^ Why Cortex-A15 makes for Smarter, Lightning-Quick Mobile Devices in the Future—ARM Community. Blogs. ARM. [2011-01-06]. (原始內容存檔於2010-12-06).
- ^ Love to Get Your Hands on a Raspberry Pi 2? Hat Tip to Broadcom. Broadcom. 2015-02-02 [2015-07-22]. (原始內容存檔於2015-07-23).
- ^ Compact3128 Card size board. Boardcon Embedded Design. [2018-04-09]. (原始內容存檔於2018-04-11).
- ^ Upton, Eben. Raspberry Pi 3 on sale now at $35 - Raspberry Pi. Raspberry Pi. 2016-02-29 [2016-02-29]. (原始內容存檔於2016-02-29) (英國英語).
- ^ EM3288 SBC. Boardcon Embedded Design. [2018-04-09]. (原始內容存檔於2017-10-14).
- ^ Frumusanu, Andrei. Qualcomm Announces Snapdragon 845 Mobile Platform. Anandtech. 2017-12-06 [2017-12-07]. (原始內容存檔於2018-06-12).
外部連結
[編輯]- ARM Information Center(頁面存檔備份,存於網際網路檔案館)
- (英文)ARM Ltd.(頁面存檔備份,存於網際網路檔案館)
- (英文)ARM Assembler Programming; tutorial, resources, and examples(頁面存檔備份,存於網際網路檔案館)
- (英文)TrustZone(TM)Technology(頁面存檔備份,存於網際網路檔案館)
- (英文)T6: TrustZone Based Trusted Kernel (頁面存檔備份,存於網際網路檔案館)
- (英文)ARM Microcontroller Development Resources(頁面存檔備份,存於網際網路檔案館) - header files, schematics, CAD files, etc.
- (中文)什麼是ARM?
- (繁體中文)無所不在的MCU,ARM行不行?(頁面存檔備份,存於網際網路檔案館)
|
|
|
|
|