Office與平面設計基礎模塊一word8.1(答案)
發布時間:2018-11-23 16:39
目錄
定義 1
特點 1
體系結構 1
指令體系 1
寄存器結構 2
指令結構 2
主要模式 3
歷史發展 3
市場前景 4
系列產品 5
設計文件 6
ARM處理器
ARM處理器是英國Acorn有限公司設計的低功耗成本的第一款RISC微處理器。全稱為Advanced RISC Machine。ARM處理器本身是32位設計,但也配備16位指令集,一般來講比等價32位代碼節省達35%,卻能保留32位系統的所有優勢。
1、體積小、低功耗、低成本、高性能;
2、支持Thumb(16位)/ARM(32位)雙指令集,能很好的兼容8位/16位器件;
3、大量使用寄存器,指令執行速度更快;
4、大多數數據操作都在寄存器中完成;
5、尋址方式靈活簡單,執行效率高;
6、指令長度固定。
在CISC指令集的各種指令中,大約有20%的指令會被反復使用,占整個程序代碼的80%。而余下的指令卻不經常使用,在程序設計中只占20%。
2 RISC(Reduced Instruction Set Computer,精簡指令集計算機)
RISC結構優先選取使用頻最高的簡單指令,避免復雜指令;將指令長度固定,指令格式和尋址方式種類減少;以控制邏輯為主,不用或少用微碼控制等
RISC體系結構應具有如下特點:
1 采用固定長度的指令格式,指令歸整、簡單、基本尋址方式有2~3種。
2 使用單周期指令,便于流水線操作執行。
3 大量使用寄存器,數據處理指令只對寄存器進行操作,只有加載/存儲指令可以訪問存儲器,以提高指令的執行效率。
除此以外,ARM體系結構還采用了一些特別的技術,在保證高性能的前提下盡量縮小芯片的面積,并降低功耗:
4 所有的指令都可根據前面的執行結果決定是否被執行,從而提高指令的執行效率。
5 可用加載/存儲指令批量傳輸數據,以提高數據的傳輸效率。
6 可在一條數據處理指令中同時完成邏輯處理和移位處理。
7 在循環處理中使用地址的自動增減來提高運行效率。
1 31個通用寄存器,包括程序計數器(PC指針),均為32位的寄存器。
2 6個狀態寄存器,用以標識CPU的工作狀態及程序的運行狀態,均為32位,只使用了其中的一部分。
體系結構擴充
當前ARM體系結構的擴充包括:
·Thumb 16位指令集,為了改善代碼密度;
·DSP DSP應用的算術運算指令集;
·Jazeller 允許直接執行Java字節碼。
ARM處理器系列提供的解決方案有:
·無線、消費類電子和圖像應用的開放平臺;
·存儲、自動化、工業和網絡應用的嵌入式實時系統;
·智能卡和SIM卡的安全應用。
用戶模式
(usr) ARM處理器正常的程序執行狀態
系統模式
(sys) 運行具有特權的操作系統任務
快中斷模式
(fiq) 支持高速數據傳輸或通道處理
管理模式
(svc) 操作系統保護模式
數據訪問終止模式
(abt) 用于虛擬存儲器及存儲器保護
中斷模式
(irq) 用于通用的中斷處理
未定義指令終止模式(und) 支持硬件協處理器的軟件仿真
除用戶模式外,其余6種模式稱為非用戶模式或特權模式;用戶模式和系統模式之外的5種模式稱為異常模式。ARM處理器的運行模式可以通過軟件改變,也可以通過外部中斷或異常處理改變。
起初,Acorn公司打算使用摩托羅拉公司的16位芯片,但是發現這種芯片太慢也太貴。"一臺售價500英鎊的機器,不可能使用價格100英鎊的CPU!"他們轉而向Intel公司索要80286芯片的設計資料,但是遭到拒絕,于是被迫自行研發。
Roger Wilson和Steve Furber
Roger Wilson和Steve Furber
1985年,Roger Wilson和Steve Furber設計了他們自己的第一代32位、6M Hz的處理器,用它做出了一臺RISC指令集的計算機,簡稱ARM(Acorn RISC Machine)。這就是ARM這個名字的由來。
RISC的全稱是"精簡指令集計算機"(reduced instruction set computer),它支持的指令比較簡單,所以功耗小、價格便宜,特別適合移動設備。早期使用ARM芯片的典型設備,就是蘋果公司的牛頓PDA。
20世紀80年代后期,ARM很快開發成Acorn的臺式機產品,形成英國的計算機教育基礎。
1990年11月27日,Acorn公司正式改組為ARM計算機公司。蘋果公司出資150萬英鎊,芯片廠商VLSI出資25萬英鎊,Acorn本身則以150萬英鎊的知識產權和12名工程師入股。公司的辦公地點非常簡陋,就是一個谷倉。20世紀90年代,ARM 32位嵌入式RISC(Reduced lnstruction Set Computer)處理器擴展到世界范圍,占據了低功耗、低成本和高性能的嵌入式系統應用領域的領先地位。ARM公司既不生產芯片也不銷售芯片,它只出售芯片技術授權。
arm處理器
微軟公司(2011年)宣布,下一版Windows將正式支持ARM處理器。這是計算機工業發展歷史上的一件大事,標識著x86處理器的主導地位發生動搖。在移動設備市場,ARM處理器的市場份額超過90%;在服務器市場,2011年就會有2.5GHz的服務器上市;在桌面電腦市場,又有了微軟的支持。ARM成為主流,恐怕指日可待。難怪有人驚呼,Intel公司將被擊敗!ARM微處理器核技術廣泛應用于便攜式通信產品、手持運算、多媒體和嵌入式解決方案等領域,已成為RISC的標準。
與這場轟轟烈烈的變革相比,它的主角ARM公司卻沒有受到太多的關注,顯得不太起眼。這家遠離硅谷、位于劍橋大學的英國公司,到底是怎么走到今天的,居然能將芯片巨人Intel拉下馬?
展望未來,即使Intel成功地實施了Atom戰略,將x86芯片的功耗和價格大大降低,它與ARM競爭也將非常吃力。因為ARM的商業模式是開放的,任何廠商都可以購買授權,所以未來并不是Intel vs. ARM,而是Intel vs. 世界上所有其他半導體公司。那樣的話,Intel的勝算能有多少呢?
2012年10月29日AMD做出了一個震驚業界的宣布:AMD將會設計基于64-bit ARM架構的處理器,首先從云和數據中心服務器領域開始。AMD、ARM在服務器領域的合作已經得到了戴爾、惠普兩大服務器廠商,以及服務器系統廠商RedHat的鼎力支持,新的生態系統已具雛形,AMD能否借此東山再起?[2]
AMD的首批ARM處理器于2014年問世,仍將披掛Opteron皓龍品牌。這種64位的多核心SoC會針對數據中心中份額最大的密集型高能效服務器進行優化,提供現代計算體驗,并整合收購而來的SeaMicro Freedom超級計算光纖互聯技術。
SecurCore系列 Intel的StrongARM ARM11系列 Intel的Xscale
其中,ARM7、ARM9、ARM9E和ARM10為4個通用處理器系列,每一個系列提供一套相對獨特的性能來滿足不同應用領域的需求。SecurCore系列專門為安全要求較高的應用而設計。
Axxia 4500通信處理器基于采用28納米工藝的ARM 4核Cortex-A15處理器,并搭載ARM全新CoreLink CCN-504高速緩存一致性互連技術,實現安全低功耗和最佳性能。
ARM公司在經典處理器ARM11以后的產品改用Cortex命名,并分成A、R和M三類,旨在為各種不同的市場提供服務。
新款ARMv8架構ARMCortex-A50處理器系列產品,進一步擴大ARM在高性能與低功耗領域的領先地位。該系列率先推出的是Cortex-A53與Cortex-A57處理器以及最新節能64位處理技術與現有32位處理技術的擴展升級。該處理器系列的可擴展性使ARM的合作伙伴能夠針對智能手機、高性能服務器等各類不同市場需求開發系統級芯片(SoC)[3]。
ARMCortex-A50處理器系列:
提供Cortex-A57與Cortex-A53兩款處理器,可選配密碼編譯加速器,為驗證軟件提高10倍的運行速度與ARMMali圖形處理器系列互用,適用于圖形處理器計算應用具有AMBA系統一致性,與CCI-400、CCN-504等ARMCoreLink緩存一致性結構組件達成多核心緩存一致性。
ARMCortex-A57處理器:
最先進、單線程性能最高的ARM應用處理器能提升,以滿足供智能手機從內容消費設備轉型為內容生產設備的需求,并在相同功耗下實現最高可達現有超級手機三倍的性能計算能力可相當于傳統PC,但僅需移動設備的功耗成本即可運行,無論企業用戶或普通消費者均可享受低成本與低耗能針對高性能企業應用提高了產品可靠度與可擴展性。
ARMCortex-A53處理器:
史上效率最高的ARM應用處理器,使用體驗相當于當前的超級手機,但功耗僅需其四分之一結合可靠性特點,可擴展數據平面(dataplane)應用可將每毫瓦及每平方毫米性能發揮到極致針對個別線程計算應用程序進行了傳輸處理優化Cortex-A53處理器結合Cortex-A57及ARM的big.LITTLE處理技術,能使平臺擁有最大的性能范圍,同時大幅減少功耗[3]。
ARM架構包含了下述RISC特性:
讀取/儲存 架構不支援地址不對齊內存存取(ARMv6內核現已支援)正交指令集(任意存取指令可以任意的尋址方式存取數據Orthogonal instruction set)大量的16 × 32-bit 寄存器陣列(register file)固定的32 bits操作碼(opcode)長度,降低編碼數量所產生的耗費,減輕解碼和流水線化的負擔。大多均為一個CPU周期執行。為了補強這種簡單的設計方式,相較于同時期的處理器如Intel 80286和Motorola 68020,還多加了一些特殊設計:
大部分指令可以條件式地執行,降低在分支時產生的負重,彌補分支預測器(branch predictor)的不足。算數指令只會在要求時更改條件編碼(condition code)32-bit筒型位移器(barrel shifter)可用來執行大部分的算數指令和尋址計算而不會損失效能強大的索引尋址模式(addressing mode)精簡但快速的雙優先級中斷子系統,具有可切換的暫存器組有個附加在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), ; or "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的架構所不常見到的特色,例如PC-相對尋址(的確在ARM上PC為16個暫存器的其中一個)以及 前遞加或后遞加的尋址模式。
另外一些注意事項是 ARM 處理器會隨著時間,不斷地增加它的指令集。某些早期的 ARM 處理器(比ARM7TDMI更早),譬如可能并未具備指令可以讀取兩 Bytes 的數量,因此,嚴格來講,對這些處理器產生程式碼時,就不可能處理如 C 語言物件中使用 "volatile short" 的資料型態。
ARM7 和大多數較早的設計具備三階段的流水線化(Pipeline):提取指令、解碼,并執行。較高效能的設計,如 ARM9,則有五階段的流水線化。提高效能的額外方式,包含一顆較快的加法器,和更廣的分支預測邏輯線路。
這個架構使用“協處理器”提供一種非侵入式的方法來延伸指令集,可透過軟件下 MCR、MRC、MRRC和MCRR 等指令來對協處理器尋址。協處理器空間邏輯上通常分成16個協處理器,編號分別從 0 至 15 ,而第15號協處理器(CP15)是保留用作某些常用的控制功能,像是使用高速緩存和記憶管理單元運算(若包含于處理器時)。
在 ARM 架構的機器中,周邊裝置連接處理器的方式,通常透過將裝置的實體暫存器對應到 ARM 的內存空間、協處理器空間,或是連接到另外依序接上處理器的裝置(如總線)。協處理器的存取延遲較低,所以有些周邊裝置(例如XScale中斷控制器)會設計成可透過不同方式存取(透過內存和協處理器)。
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技術的處理器是ARM926EJ-S:Jazelle以一個英文字母'J'標示于CPU名稱中。它用來讓手機制造商能夠加速執行Java ME的游戲和應用程式,也因此促使了這項技術不斷地開發。
Thumb-2
Thumb-2技術首見于ARM1156 核心,并于2003年發表。Thumb-2 擴充了受限的 16-bit Thumb指令集,以額外的 32-bit 指令讓指令集的使用更廣泛。因此 Thumb-2 的預期目標是要達到近乎 Thumb 的編碼密度,但能表現出近乎 ARM 指令集在 32-bit 內存下的效能。
Thumb-2也從 ARM 和 Thumb 指令集中派生出多種指令,包含位欄(bit-field)操作、分支建表(table branches),和條件執行等功能。
Thumb Execution Environment (ThumbEE)
ThumbEE,也就是所謂的Thumb-2EE,,業界稱為Jazelle RCT技術,于2005年發表,首見于Cortex-A8處理器。ThumbEE 提供從 Thumb-2 而來的一些擴充性,在所處的執行環境 Environment)下,使得指令集能特別適用于執行階段(Runtime)的編碼產生(例如即時編譯)。Thumb-2EE 是專為一些語言如Limbo、Java、C#、Perl和Python,并能讓即時編譯器能夠輸出更小的編譯碼卻不會影響到效能。
ThumbEE 所提供的新功能,包括在每次存取指令時自動檢查是否有無效指標,以及一種可以執行陣列范圍檢查的指令,并能夠分支到分類器(handlers),其包含一小部份經常呼叫的編碼,通常用于高階語言功能的實作,例如對一個新物件做內存配置。
進階 SIMD (NEON)
進階 SIMD 延伸集,業界稱為NEON Multiple Data 單指令多重數據)指令集,其針對多媒體和訊號處理程式具備標準化加速的能力。NEON 可以在 10 MHz 的 CPU 上執行 MP3 音效解碼,且可以執行 13 MHz 頻率以下的GSMAMR (Adaptive Multi-Rate) 語音編碼。NEON具有一組廣泛的指令集、各自的寄存器陣列,以及獨立執行的硬件。NEON 支援 8-, 16-, 32- 和 64-bit 的整數及單精度浮點數據,并以SIMD的方式運算,執行圖形和游戲處理中關于語音/視訊的部分。SIMD 在 向量超級處理機 中是個決定性的要素,它具備同時多項處理功能。在 NEON 技術中,SIMD 最高可支援到同時 16 個運算。
VFP
VFP是在協同處理器針對ARM架構的衍生技術。它提供低成本的單精度和倍精度浮點運算能力,并完全相容于ANSI/IEEE Std 754-1985 二進制浮點算數標準。VFP 提供大多數適用于浮點運算的應用,例如PDA、智慧手機、語音壓縮與解壓、3D圖像以及數位音效、打印機、機上盒,和汽車應用等。VFP 架構也支援SIMD(單指令多重數據)平行化的短向量指令執行。這在圖像和訊號處理等應用上,非常有助于降低編碼大小并增加輸出效率。
在ARM-based處理器中,其他可見的浮點、或 SIMD 的協同處理器還包括了 FPA, FPE, iwMMXt。他們提供類似 VFP 的功能但在opcode層面上來說并不具有相容性。
安全性擴充 (TrustZone)
TrustZone(TM) 技術出現在 ARMv6KZ 以及較晚期的應用核心架構中。它提供了一種低成本的方案,針對系統單芯片(SoC)內加入專屬的安全核心,由硬件建構的存取控制方式支援兩顆虛擬的處理器。這個方式可使得應用程式核心能夠在兩個狀態之間切換(通常改稱為領域(worlds)以避免和其他功能領域的名稱混淆),在此架構下可以避免資訊從較可信的核心領域泄漏至較不安全的領域。這種內核領域之間的切換通常是與處理器其他功能完全無關聯性(orthogonal),因此各個領域可以各自獨立運作但卻仍能使用同一顆內核。內存和周邊裝置也可因此得知內核運作的領域為何,并能針對這個方式來提供對裝置的機密和編碼進行存取控制。典型的 TrustZone 技術應用是要能在一個缺乏安全性的環境下完整地執行操作系統,并在可信的環境下能有更少的安全性的編碼。
定義 1
特點 1
體系結構 1
指令體系 1
寄存器結構 2
指令結構 2
主要模式 3
歷史發展 3
市場前景 4
系列產品 5
設計文件 6
ARM處理器
定義
ARM的Jazelle技術使Java加速得到比基于軟件的Java虛擬機(JVM)高得多的性能,和同等的非Java加速核相比功耗降低80%。CPU功能上增加DSP指令集提供增強的16位和32位算術運算能力,提高了性能和靈活性。ARM還提供兩個前沿特性來輔助帶深嵌入處理器的高集成SoC器件的調試,它們是嵌入式ICE-RT邏輯和嵌入式跟蹤宏核(ETMS)系列。ARM處理器是英國Acorn有限公司設計的低功耗成本的第一款RISC微處理器。全稱為Advanced RISC Machine。ARM處理器本身是32位設計,但也配備16位指令集,一般來講比等價32位代碼節省達35%,卻能保留32位系統的所有優勢。
特點
ARM處理器的三大特點是:耗電少功能強、16位/32位雙指令集和合作伙伴眾多。1、體積小、低功耗、低成本、高性能;
2、支持Thumb(16位)/ARM(32位)雙指令集,能很好的兼容8位/16位器件;
3、大量使用寄存器,指令執行速度更快;
4、大多數數據操作都在寄存器中完成;
5、尋址方式靈活簡單,執行效率高;
6、指令長度固定。
體系結構
指令體系
1 CISC(Complex Instruction Set Computer,復雜指令集計算機)在CISC指令集的各種指令中,大約有20%的指令會被反復使用,占整個程序代碼的80%。而余下的指令卻不經常使用,在程序設計中只占20%。
2 RISC(Reduced Instruction Set Computer,精簡指令集計算機)
RISC結構優先選取使用頻最高的簡單指令,避免復雜指令;將指令長度固定,指令格式和尋址方式種類減少;以控制邏輯為主,不用或少用微碼控制等
RISC體系結構應具有如下特點:
1 采用固定長度的指令格式,指令歸整、簡單、基本尋址方式有2~3種。
2 使用單周期指令,便于流水線操作執行。
3 大量使用寄存器,數據處理指令只對寄存器進行操作,只有加載/存儲指令可以訪問存儲器,以提高指令的執行效率。
除此以外,ARM體系結構還采用了一些特別的技術,在保證高性能的前提下盡量縮小芯片的面積,并降低功耗:
4 所有的指令都可根據前面的執行結果決定是否被執行,從而提高指令的執行效率。
5 可用加載/存儲指令批量傳輸數據,以提高數據的傳輸效率。
6 可在一條數據處理指令中同時完成邏輯處理和移位處理。
7 在循環處理中使用地址的自動增減來提高運行效率。
寄存器結構
ARM處理器共有37個寄存器,被分為若干個組(BANK),這些寄存器包括:1 31個通用寄存器,包括程序計數器(PC指針),均為32位的寄存器。
2 6個狀態寄存器,用以標識CPU的工作狀態及程序的運行狀態,均為32位,只使用了其中的一部分。
指令結構
ARM微處理器的在較新的體系結構中支持兩種指令集:ARM指令集和Thumb指令集。其中,ARM指令為32位的長度,Thumb指令為16位長度。Thumb指令集為ARM指令集的功能子集,但與等價的ARM代碼相比較,可節省30%~40%以上的存儲空間,同時具備32位代碼的所有優點。體系結構擴充
當前ARM體系結構的擴充包括:
·Thumb 16位指令集,為了改善代碼密度;
·DSP DSP應用的算術運算指令集;
·Jazeller 允許直接執行Java字節碼。
ARM處理器系列提供的解決方案有:
·無線、消費類電子和圖像應用的開放平臺;
·存儲、自動化、工業和網絡應用的嵌入式實時系統;
·智能卡和SIM卡的安全應用。
主要模式
處理器工作模式說明用戶模式
(usr) ARM處理器正常的程序執行狀態
系統模式
(sys) 運行具有特權的操作系統任務
快中斷模式
(fiq) 支持高速數據傳輸或通道處理
管理模式
(svc) 操作系統保護模式
數據訪問終止模式
(abt) 用于虛擬存儲器及存儲器保護
中斷模式
(irq) 用于通用的中斷處理
未定義指令終止模式(und) 支持硬件協處理器的軟件仿真
除用戶模式外,其余6種模式稱為非用戶模式或特權模式;用戶模式和系統模式之外的5種模式稱為異常模式。ARM處理器的運行模式可以通過軟件改變,也可以通過外部中斷或異常處理改變。
歷史發展
1978年12月5日,物理學家赫爾曼·豪澤(Hermann Hauser)和工程師Chris Curry,在英國劍橋創辦了CPU公司(Cambridge Processing Unit),主要業務是為當地市場供應電子設備。1979年,CPU公司改名為Acorn公司。起初,Acorn公司打算使用摩托羅拉公司的16位芯片,但是發現這種芯片太慢也太貴。"一臺售價500英鎊的機器,不可能使用價格100英鎊的CPU!"他們轉而向Intel公司索要80286芯片的設計資料,但是遭到拒絕,于是被迫自行研發。
Roger Wilson和Steve Furber
Roger Wilson和Steve Furber
1985年,Roger Wilson和Steve Furber設計了他們自己的第一代32位、6M Hz的處理器,用它做出了一臺RISC指令集的計算機,簡稱ARM(Acorn RISC Machine)。這就是ARM這個名字的由來。
RISC的全稱是"精簡指令集計算機"(reduced instruction set computer),它支持的指令比較簡單,所以功耗小、價格便宜,特別適合移動設備。早期使用ARM芯片的典型設備,就是蘋果公司的牛頓PDA。
20世紀80年代后期,ARM很快開發成Acorn的臺式機產品,形成英國的計算機教育基礎。
1990年11月27日,Acorn公司正式改組為ARM計算機公司。蘋果公司出資150萬英鎊,芯片廠商VLSI出資25萬英鎊,Acorn本身則以150萬英鎊的知識產權和12名工程師入股。公司的辦公地點非常簡陋,就是一個谷倉。20世紀90年代,ARM 32位嵌入式RISC(Reduced lnstruction Set Computer)處理器擴展到世界范圍,占據了低功耗、低成本和高性能的嵌入式系統應用領域的領先地位。ARM公司既不生產芯片也不銷售芯片,它只出售芯片技術授權。
市場前景
arm處理器arm處理器
微軟公司(2011年)宣布,下一版Windows將正式支持ARM處理器。這是計算機工業發展歷史上的一件大事,標識著x86處理器的主導地位發生動搖。在移動設備市場,ARM處理器的市場份額超過90%;在服務器市場,2011年就會有2.5GHz的服務器上市;在桌面電腦市場,又有了微軟的支持。ARM成為主流,恐怕指日可待。難怪有人驚呼,Intel公司將被擊敗!ARM微處理器核技術廣泛應用于便攜式通信產品、手持運算、多媒體和嵌入式解決方案等領域,已成為RISC的標準。
與這場轟轟烈烈的變革相比,它的主角ARM公司卻沒有受到太多的關注,顯得不太起眼。這家遠離硅谷、位于劍橋大學的英國公司,到底是怎么走到今天的,居然能將芯片巨人Intel拉下馬?
展望未來,即使Intel成功地實施了Atom戰略,將x86芯片的功耗和價格大大降低,它與ARM競爭也將非常吃力。因為ARM的商業模式是開放的,任何廠商都可以購買授權,所以未來并不是Intel vs. ARM,而是Intel vs. 世界上所有其他半導體公司。那樣的話,Intel的勝算能有多少呢?
2012年10月29日AMD做出了一個震驚業界的宣布:AMD將會設計基于64-bit ARM架構的處理器,首先從云和數據中心服務器領域開始。AMD、ARM在服務器領域的合作已經得到了戴爾、惠普兩大服務器廠商,以及服務器系統廠商RedHat的鼎力支持,新的生態系統已具雛形,AMD能否借此東山再起?[2]
AMD的首批ARM處理器于2014年問世,仍將披掛Opteron皓龍品牌。這種64位的多核心SoC會針對數據中心中份額最大的密集型高能效服務器進行優化,提供現代計算體驗,并整合收購而來的SeaMicro Freedom超級計算光纖互聯技術。
系列產品
ARM7系列 ARM9系列 ARM9E系列 ARM10E系列SecurCore系列 Intel的StrongARM ARM11系列 Intel的Xscale
其中,ARM7、ARM9、ARM9E和ARM10為4個通用處理器系列,每一個系列提供一套相對獨特的性能來滿足不同應用領域的需求。SecurCore系列專門為安全要求較高的應用而設計。
Axxia 4500通信處理器基于采用28納米工藝的ARM 4核Cortex-A15處理器,并搭載ARM全新CoreLink CCN-504高速緩存一致性互連技術,實現安全低功耗和最佳性能。
ARM公司在經典處理器ARM11以后的產品改用Cortex命名,并分成A、R和M三類,旨在為各種不同的市場提供服務。
新款ARMv8架構ARMCortex-A50處理器系列產品,進一步擴大ARM在高性能與低功耗領域的領先地位。該系列率先推出的是Cortex-A53與Cortex-A57處理器以及最新節能64位處理技術與現有32位處理技術的擴展升級。該處理器系列的可擴展性使ARM的合作伙伴能夠針對智能手機、高性能服務器等各類不同市場需求開發系統級芯片(SoC)[3]。
ARMCortex-A50處理器系列:
提供Cortex-A57與Cortex-A53兩款處理器,可選配密碼編譯加速器,為驗證軟件提高10倍的運行速度與ARMMali圖形處理器系列互用,適用于圖形處理器計算應用具有AMBA系統一致性,與CCI-400、CCN-504等ARMCoreLink緩存一致性結構組件達成多核心緩存一致性。
ARMCortex-A57處理器:
最先進、單線程性能最高的ARM應用處理器能提升,以滿足供智能手機從內容消費設備轉型為內容生產設備的需求,并在相同功耗下實現最高可達現有超級手機三倍的性能計算能力可相當于傳統PC,但僅需移動設備的功耗成本即可運行,無論企業用戶或普通消費者均可享受低成本與低耗能針對高性能企業應用提高了產品可靠度與可擴展性。
ARMCortex-A53處理器:
史上效率最高的ARM應用處理器,使用體驗相當于當前的超級手機,但功耗僅需其四分之一結合可靠性特點,可擴展數據平面(dataplane)應用可將每毫瓦及每平方毫米性能發揮到極致針對個別線程計算應用程序進行了傳輸處理優化Cortex-A53處理器結合Cortex-A57及ARM的big.LITTLE處理技術,能使平臺擁有最大的性能范圍,同時大幅減少功耗[3]。
設計文件
設計文件講求精簡又快速的設計方式,整體電路化卻又不采用微碼,就像早期使用在Acorn微電腦的8位6502處理器。ARM架構包含了下述RISC特性:
讀取/儲存 架構不支援地址不對齊內存存取(ARMv6內核現已支援)正交指令集(任意存取指令可以任意的尋址方式存取數據Orthogonal instruction set)大量的16 × 32-bit 寄存器陣列(register file)固定的32 bits操作碼(opcode)長度,降低編碼數量所產生的耗費,減輕解碼和流水線化的負擔。大多均為一個CPU周期執行。為了補強這種簡單的設計方式,相較于同時期的處理器如Intel 80286和Motorola 68020,還多加了一些特殊設計:
大部分指令可以條件式地執行,降低在分支時產生的負重,彌補分支預測器(branch predictor)的不足。算數指令只會在要求時更改條件編碼(condition code)32-bit筒型位移器(barrel shifter)可用來執行大部分的算數指令和尋址計算而不會損失效能強大的索引尋址模式(addressing mode)精簡但快速的雙優先級中斷子系統,具有可切換的暫存器組有個附加在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), ; or "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的架構所不常見到的特色,例如PC-相對尋址(的確在ARM上PC為16個暫存器的其中一個)以及 前遞加或后遞加的尋址模式。
另外一些注意事項是 ARM 處理器會隨著時間,不斷地增加它的指令集。某些早期的 ARM 處理器(比ARM7TDMI更早),譬如可能并未具備指令可以讀取兩 Bytes 的數量,因此,嚴格來講,對這些處理器產生程式碼時,就不可能處理如 C 語言物件中使用 "volatile short" 的資料型態。
ARM7 和大多數較早的設計具備三階段的流水線化(Pipeline):提取指令、解碼,并執行。較高效能的設計,如 ARM9,則有五階段的流水線化。提高效能的額外方式,包含一顆較快的加法器,和更廣的分支預測邏輯線路。
這個架構使用“協處理器”提供一種非侵入式的方法來延伸指令集,可透過軟件下 MCR、MRC、MRRC和MCRR 等指令來對協處理器尋址。協處理器空間邏輯上通常分成16個協處理器,編號分別從 0 至 15 ,而第15號協處理器(CP15)是保留用作某些常用的控制功能,像是使用高速緩存和記憶管理單元運算(若包含于處理器時)。
在 ARM 架構的機器中,周邊裝置連接處理器的方式,通常透過將裝置的實體暫存器對應到 ARM 的內存空間、協處理器空間,或是連接到另外依序接上處理器的裝置(如總線)。協處理器的存取延遲較低,所以有些周邊裝置(例如XScale中斷控制器)會設計成可透過不同方式存取(透過內存和協處理器)。
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技術的處理器是ARM926EJ-S:Jazelle以一個英文字母'J'標示于CPU名稱中。它用來讓手機制造商能夠加速執行Java ME的游戲和應用程式,也因此促使了這項技術不斷地開發。
Thumb-2
Thumb-2技術首見于ARM1156 核心,并于2003年發表。Thumb-2 擴充了受限的 16-bit Thumb指令集,以額外的 32-bit 指令讓指令集的使用更廣泛。因此 Thumb-2 的預期目標是要達到近乎 Thumb 的編碼密度,但能表現出近乎 ARM 指令集在 32-bit 內存下的效能。
Thumb-2也從 ARM 和 Thumb 指令集中派生出多種指令,包含位欄(bit-field)操作、分支建表(table branches),和條件執行等功能。
Thumb Execution Environment (ThumbEE)
ThumbEE,也就是所謂的Thumb-2EE,,業界稱為Jazelle RCT技術,于2005年發表,首見于Cortex-A8處理器。ThumbEE 提供從 Thumb-2 而來的一些擴充性,在所處的執行環境 Environment)下,使得指令集能特別適用于執行階段(Runtime)的編碼產生(例如即時編譯)。Thumb-2EE 是專為一些語言如Limbo、Java、C#、Perl和Python,并能讓即時編譯器能夠輸出更小的編譯碼卻不會影響到效能。
ThumbEE 所提供的新功能,包括在每次存取指令時自動檢查是否有無效指標,以及一種可以執行陣列范圍檢查的指令,并能夠分支到分類器(handlers),其包含一小部份經常呼叫的編碼,通常用于高階語言功能的實作,例如對一個新物件做內存配置。
進階 SIMD (NEON)
進階 SIMD 延伸集,業界稱為NEON Multiple Data 單指令多重數據)指令集,其針對多媒體和訊號處理程式具備標準化加速的能力。NEON 可以在 10 MHz 的 CPU 上執行 MP3 音效解碼,且可以執行 13 MHz 頻率以下的GSMAMR (Adaptive Multi-Rate) 語音編碼。NEON具有一組廣泛的指令集、各自的寄存器陣列,以及獨立執行的硬件。NEON 支援 8-, 16-, 32- 和 64-bit 的整數及單精度浮點數據,并以SIMD的方式運算,執行圖形和游戲處理中關于語音/視訊的部分。SIMD 在 向量超級處理機 中是個決定性的要素,它具備同時多項處理功能。在 NEON 技術中,SIMD 最高可支援到同時 16 個運算。
VFP
VFP是在協同處理器針對ARM架構的衍生技術。它提供低成本的單精度和倍精度浮點運算能力,并完全相容于ANSI/IEEE Std 754-1985 二進制浮點算數標準。VFP 提供大多數適用于浮點運算的應用,例如PDA、智慧手機、語音壓縮與解壓、3D圖像以及數位音效、打印機、機上盒,和汽車應用等。VFP 架構也支援SIMD(單指令多重數據)平行化的短向量指令執行。這在圖像和訊號處理等應用上,非常有助于降低編碼大小并增加輸出效率。
在ARM-based處理器中,其他可見的浮點、或 SIMD 的協同處理器還包括了 FPA, FPE, iwMMXt。他們提供類似 VFP 的功能但在opcode層面上來說并不具有相容性。
安全性擴充 (TrustZone)
TrustZone(TM) 技術出現在 ARMv6KZ 以及較晚期的應用核心架構中。它提供了一種低成本的方案,針對系統單芯片(SoC)內加入專屬的安全核心,由硬件建構的存取控制方式支援兩顆虛擬的處理器。這個方式可使得應用程式核心能夠在兩個狀態之間切換(通常改稱為領域(worlds)以避免和其他功能領域的名稱混淆),在此架構下可以避免資訊從較可信的核心領域泄漏至較不安全的領域。這種內核領域之間的切換通常是與處理器其他功能完全無關聯性(orthogonal),因此各個領域可以各自獨立運作但卻仍能使用同一顆內核。內存和周邊裝置也可因此得知內核運作的領域為何,并能針對這個方式來提供對裝置的機密和編碼進行存取控制。典型的 TrustZone 技術應用是要能在一個缺乏安全性的環境下完整地執行操作系統,并在可信的環境下能有更少的安全性的編碼。