一、ARM簡介
ARM於1990年11月在英國倫敦成立,ARM是Advanced RISC Machines的縮寫,是微處理器行業的一家知名企業,該企業設計了大量廉價、高性能、低功耗的RISC處理器架構相關技術及軟件。目前,全世界有幾十家著名的半導體公司都使用ARM公司的授權,其中包括TI、Motorola、Philips、IBM、Intel、ST、NEC、LG、ATMEL等。
ARM不僅代表一個公司,同樣代表一類微處理器,也代表一種技術,還代表一種新型的產業發展模式。
ARM公司是知識產權(IP)公司,本身不生產芯片,靠轉讓設計許可,由合作伙伴公司來生產各具特色的芯片
近年來ARM技術的突出成果表現在:第一片ARM處理器是1983年10月到1985年4月間在位於英國劍橋的Acorn Computer公司開發,1990年,爲廣泛推廣ARM技術而成立了獨立的公司——ARM,並快速融入世界市場,在ARM的發展歷程中,從ARM7開始,ARM核得到普遍認可和廣泛使用,ARM9、ARM10、Strong-ARM、ARM11和Cortex等系列性能優越,尤其在面向高端數字音視頻處理等多媒體產品的應用,Cortex是ARM爲滿足不斷擴展的嵌入式技術應用所做的一次改進。
廣泛的產業聯盟和豐富的軟硬件支持,使得基於ARM的嵌入式應用領域更加廣闊,產品投放市場更爲迅速據最新統計,全球有100多家巨型IT公司,超過95%的手機,超過四分之一的電子設備都在使用ARM技術,ARM已經成爲世界上銷量最大的32位微處理器,迄今爲止,還沒有任何商業化的IP核交易和使用達到ARM的規模,造就了IP核的商業神話。
二、ARM處理器的特點
2.1 體積小、功耗低、成本低、性能高
2.2 支持Thumb(16位)/ARM(32位)雙指令集,能很好的兼容16位器件
2.3 大量使用寄存器,使得指令執行速度更快尋址方式簡單靈活,執行效率高
2.4 指令長度固定
三、ARM處理器的應用
ARM微處理器除了具有ARM的共同特點以外,每一個系列的ARM微處理器都有各自的特點和應用領域,目前包括下面幾個系列:ARM1、ARM2、ARM3、ARM6、ARM7、ARM8、ARM9、ARM10、SecurCore、Inter的Xscale和StrongARM、ARM11和Cortex以及對應的修改版或增強版。隨着架構升級,初始頻率越高、架構越先進,功能也越強,Cortex主要用於高端和多核處理器上。
3.1 高性能方向:
Samsung(三星):S5PC100、S5PC110、S5PV210均採用Cortex-A8核,600MHZ--1GHZ
Apple A4 Cortex-A8核1GHz(iPad、iPod、touch4、iPhone4)
中芯微 VC882 Cortex-A8 1GHz--1.2GHz(主要應用於國內一些MID產品)
高通snapdragon QSD8250
高通第一代1GHZ單核處理器,Cortex-A8(HTC HD2手機)
3.2 低成本、低功耗的微控制器方向
Cortext-M3(工業控制)
代表:ST的stm32系列36MHz--72MHz
3.3 實時方向
Cortex-R4(汽車電子、硬盤控制器等)
代表:TI的TMS570LS
3.4 安全方向
SecurCore系統(智能卡、監控、POS機等)
代表:大量的智能卡、和SIM卡等
四、ARM體系結構介紹及分類
ARM採用RISC結構,簡化了處理器設計,並在減少複雜指令的同時,提高了處理器的速度只提供load/store指令與存儲器打交道,其餘指令都不允許進行存儲器操作。
下面對兩種指令集的對比:(大意摘自百度百科)
CISC:全稱是Complex Instruction Set Computer,中文意是複雜指令計算機,它是臺式計算機系統的基本處理部件,每個微處理器的核心是運行指令的電路。指令由完成任務的多個步驟所組成,把數值傳送進寄存器或進行相加運算。這樣一來,它能夠以更快的速度執行操作。因爲計算機執行每個指令類型都需要額外的晶體管和電路元件,計算機指令集越大就會使微處理器更復雜,執行操作也會更慢。
RISC:全稱是Reduced Instruction Set Computer,中文意是精簡指令集計算機,它是計算機中央處理器的一種設計模式,這種設計思路對指令數目和尋址方式都做了精簡,使其實現更容易,指令並行執行程度更好,編譯器的效率更高。常用的精指令集微處理器包括DECAlpha、ARC、ARM、AVR、MIPS、PA-RISC、PowerArchitecture(包括PowerPC)和SPARC等。這種設計思路最早的產生緣自於有人發現,儘管傳統處理器設計了許多特性讓代碼編寫更加便捷,但這些複雜特性需要幾個指令週期才能實現,並且常常不被運行程序所採用。此外,處理器和主內存之間運行速度的差別也變得越來越大。在這些因素促使下,出現了一系列新技術,使處理器的指令得以流水執行,同時降低處理器訪問內存的次數。早期,這種指令集的特點是指令數目少,每條指令都採用標準字長、執行時間短、中央處理器的實現細節對於機器級程序是可見的。
4.1 Cortex-A8簡單介紹
Cortex-A8內核使用了13級的整型指令流水線和10級NEON指令流水線,並改善了指令分支預測命中率,從
ARM11的88%提高到Cortex-A8的95%。
採用對稱雙ALU超標量流水線(ALU0和ALU1),支持並行發射兩條指令,集成二級緩存(L2)
Cortex-A8中採用的TrustZone技術確保消費類產品中的安全交易(如運行開放式操作系統的手機、POS
機和機頂盒等)、數據隱私和DRM得到保護
Cortex開啓了ARM處理器的新紀元
4.2 ARM系列產品命令規則,例如:ARM7 TDMI的基本含義爲:
T:Thumb指令是把32位ARM指令集重新編碼後形成的一個特殊的16位的指令集
D:支持片上Debug
M:內嵌硬件乘法器(Multiplier)
I:嵌入式ICE(In Circuit Emulator),支持在線調試
4.3 ARM系列產品後綴規則,例如:ARM 926EJ-S
增強型DSP指令(E變種),E變種的ARM體系增加了一些增強處理器對典型的DSP算法處理能力的附加指令
Java硬件加速器Jazelle(J變種),ARM的Jazelle技術是Java語言和先進的32位RISC芯片完美結合的產物,主要用於支持JVM。
ARM多媒體功能擴展(S變種),支持SIMD(Single Instruction Multiple Data),即單指令多數據處理。
第一個數字:系列名稱
9: ARM9,10: ARM10,11: ARM11
第二個數字:Memory system
2: 帶有MMU(如ARM720T、ARM922T、ARM1020E)
4: 帶有MPU(如ARM940T、ARM946EJ-S)
6: 無MMU與MPU(如ARM966EJ-S、ARM968EJ-S)
第三個數字:Memory size
0: 標準Cache (4-128KB)
2: 減小的Cache
6: 可變的Cache
五、ARM處理器版本與體系結構的關係:
V1 => ARM1
V2 => ARM2
V2a => ARM2As,ARM3
V3 => ARM6,ARM600,ARM610,ARM7,ARM700,ARM710
V4 => StrongARM,ARM8,ARM810
V5T => ARM7TDMI,ARM710T,ARM720T,ARM740T,ARM9TDMI,ARM920T,ARM940T
V5TE => ARM9E-S,ARM10TDMI,ARM1020E
V6 => ARM1136J(F)-S,ARM1176JZ(F)-S,ARM11,MPCore
V6T2 => ARM1156T2(F)-S
V7 => ARM
Cortex-M,ARM Cortex-R,ARM Cortex-A8/9/15
V8 => ARM
Cortex-A57/53
六、ARMv8架構的未來