作者:QLinux

原文:cnblogs.com/QLinux/arti

?

ARM公司簡介

ARM是Advanced RISC Machines的縮寫,它是一家微處理器行業的知名企業,該企業設計了大量高性能、廉價、耗能低的RISC (精簡指令集)處理器。 1985年第一個ARM原型在英國劍橋誕生。

公司的特點是只設計晶元,而不生產。它提供ARM技術知識產權(IP)核,將技術授權給世界上許多著名的半導體、軟體和OEM廠商,並提供服務。有ARM7/ARM9等多個版本。除了一些Unix圖形工作站外,大多數ARM核心的處理器都使用在嵌入領域。

ARM,既可以認為是一個公司的名字,也可以認為是對一類微處理器的通稱,還可以認為是一種技術的名字。

ARM版本Ⅰ: V1版架構

該版架構只在原型機ARM1出現過,只有26位的定址空間,沒有用於商業產品。

其基本性能有:

  • 基本的數據處理指令(無乘法);
  • 基於位元組、半字和字的Load/Store指令;
  • 轉移指令,包括子程序調用及鏈接指令;
  • 供操作系統使用的軟體中斷指令SWI;
  • 定址空間:64MB(226)。

ARM版本Ⅱ: V2版架構

該版架構對V1版進行了擴展,例如ARM2和ARM3(V2a)架構。包含了對32位乘法指令和協處理器指令的支持。 版本2a是版本2的變種,ARM3晶元採用了版本2a,是第一片採用片上Cache的ARM處理器。同樣為26位定址空間,現在已經廢棄不再使用。

V2版架構與版本V1相比,增加了以下功能:

  • 乘法和乘加指令;
  • 支持協處理器操作指令;
  • 快速中斷模式;
  • SWP/SWPB的最基本存儲器與寄存器交換指令;
  • 定址空間:64MB。

ARM版本Ⅲ : V3版架構

ARM作為獨立的公司,在1990年設計的第一個微處理器採用的是版本3的ARM6。它作為IP核、獨立的處理器、具有片上高速緩存、MMU和寫緩衝的集成CPU。 變種版本有3G和3M。版本3G是不與版本2a向前兼容的版本3,版本3M引入了有符號和無符號數乘法和乘加指令,這些指令產生全部64位結果。 V3版架構( 目前已廢棄 )對ARM體系結構作了較大的改動:

定址空間增至32位(4GB);

  • 當前程序狀態信息從原來的R15寄存器移到當前程序狀態寄存器CPSR中(Current Program Status Register);
  • 增加了程序狀態保存寄存器SPSR(Saved Program Status Register);
  • 增加了兩種異常模式,使操作系統代碼可方便地使用數據訪問中止異常、指令預取中止異常和未定義指令異常。;
  • 增加了MRS/MSR指令,以訪問新增的CPSR/SPSR寄存器;
  • 增加了從異常處理返回的指令功能。

ARM版本Ⅳ : V4版架構

V4版架構在V3版上作了進一步擴充,V4版架構是目前應用最廣的ARM體系結構,ARM7、ARM8、ARM9和StrongARM都採用該架構。 V4不再強制要求與26位地址空間兼容,而且還明確了哪些指令會引起未定義指令異常。

  • 指令集中增加了以下功能:
  • 符號化和非符號化半字及符號化位元組的存/取指令;
  • 增加了T變種,處理器可工作在Thumb狀態,增加了16位Thumb指令集;
  • 完善了軟體中斷SWI指令的功能;
  • 處理器系統模式引進特權方式時使用用戶寄存器操作;
  • 把一些未使用的指令空間捕獲為未定義指令

ARM版本Ⅴ : V5版架構

V5版架構是在V4版基礎上增加了一些新的指令,ARM10和Xscale都採用該版架構。

這些新增命令有:

  • 帶有鏈接和交換的轉移BLX指令;
  • 計數前導零CLZ指令; BRK中斷指令;
  • 增加了數字信號處理指令(V5TE版);
  • 為協處理器增加更多可選擇的指令;
  • 改進了ARM/Thumb狀態之間的切換效率;
  • E---增強型DSP指令集,包括全部演算法操作和16位乘法操作;
  • J----支持新的JAVA,提供位元組代碼執行的硬體和優化軟體加速功能。

ARM版本Ⅵ : V6版架構

V6版架構是2001年發布的,首先在2002年春季發布的ARM11處理器中使用。在降低耗電量地同時,還強化了圖形處理性能。通過追加有效進行多媒體處理的SIMD(Single Instruction, Multiple Data,單指令多數據 )功能,將語音及圖像的處理功能提高到了原型機的4倍。

此架構在V5版基礎上增加了以下功能:

  • THUMBTM:35%代碼壓縮;
  • DSP擴充:高性能定點DSP功能;
  • JazelleTM:Java性能優化,可提高8倍;
  • Media擴充:音/視頻性能優化,可提高4倍

ARM版本ⅤⅡ: V7版架構

V7架構是在ARMv6架構的基礎上誕生的。該架構採用了Thumb-2技術,它是在ARM的Thumb代碼壓縮技術的基礎上發展起來的, 並且保持了對現存ARM解決方案的完整的代碼兼容性。Thumb-2技術比純32位代碼少使用31%的內存,減小了系統開銷。同時能夠提供比已有的基於Thumb技術的解決方案高出38%的性能。

ARMv7架構還採用了NEON技術,將DSP和媒體處理能力提高了近4倍,並支持改良的浮點運算,滿足下一代3D圖形、遊戲物理應用以及傳統嵌入式控制應用的需求。此外,ARMv7還支持改良的運行環境,以迎合不斷增加的JIT(Just In Time)和DAC(DynamicAdaptive Compilation)技術的使用。

ARM版本ⅤⅢ: V8版架構

v8架構是在32位ARM架構上進行開發的,將被首先用於對擴展虛擬地址和64位數據處理技術有更高要求的產品領域,如企業應用、高檔消費電子產品。ARMv8架構包含兩個執行狀態:AArch64和AArch32。AArch64執行狀態針對64位處理技術,引入了一個全新指令集A64;而AArch32執行狀態將支持現有的ARM指令集。目前的ARMv7架構的主要特性都將在ARMv8架構中得以保留或進一步拓展,如:TrustZone技術、虛擬化技術及NEON advanced SIMD技術,等。

ARM微處理器核心以及體系結構的發展歷史

1.ARM7處理器

ARM7處理器採用了ARMV4T(馮·諾依曼)體系結構,這種體系結構將程序指令存儲器和數據存儲器合併在 一起。主要特點就是程序和數據共用一個存儲空間,程序指令存儲地址和數據存儲地址指向同一個存儲器的不同物理位置,採用單一的地址及數據匯流排,程序指令和 數據的寬度相同。這樣,處理器在執行指令時,必須先從存儲器中取出指令進行解碼,再取操作數執行運算。

總體來說ARM7體系結構具有三級流水、空間統一的 指令與數據Cache、平均功耗為0.6mW/MHz、時鐘速度為66MHz、每條指令平均執行1.9個時鐘周期等特性。其中的ARM710、ARM720和ARM740為內帶Cache的ARM核。

ARM7指令集同Thumb指令集擴展組合在一起,可以減少內存容量和系統成本。同時,它還利用嵌入式ICE調試技術來簡化系統設計,並用一個DSP增強擴展來改進性能。ARM7體系結構是小型、快速、低能耗、集成式的RISC內核結構。該產品的典型用途是數字蜂窩電話和硬碟驅動器等,目前主流的ARM7內核是ARM7TDMI、ARM7TDMI-S、ARM7EJ-S、ARM720T。

現在市場上 用得最多的ARM7處理器有Samsung公司的S3C44BOX與S3C4510處理器、Atmel公司的AT91FR40162系列處理器、Cirrus公司的EP73xx系列等。通常來說前兩三年大部分手機基帶部分的應用處理器基本上都以ARM7為主。還有很多的通信模塊,如CDMA模塊、GPRS模塊和GPS模塊中都含有ARM7處理器。

2.ARM9、ARM9E處理器

ARM9處理器採用ARMV4T(哈佛)體系結構。這種體系結構是一種將程序指令存儲和數據存儲分開的存儲器 結構,是一種並行體系結構。其主要特點是程序和數據存儲在不同的存儲空間中,即程序存儲器和數據存儲器。它們是兩個相互獨立的存儲器,每個存儲器獨立編 址、獨立訪問。與兩個存儲器相對應的是系統中的4套匯流排,程序的數據匯流排和地址匯流排,數據的數據匯流排和地址匯流排。這種分離的程序匯流排和數據匯流排可允許在一 個機器周期內同時獲取指令字和操作數,從而提高了執行速度,使數據的吞吐量提高了一倍。又由於程序和數據存儲器在兩個分開的物理空間中,因而取指和執行能 完全重疊。

ARM9採用五級流水處理及分離的Cache結構,平均功耗為0.7mW/MHz。時鐘速度為120MHz~200MHz,每條指令平均執行1.5個時鐘周期。與ARM7處理器系列相似,其中的ARM920、ARM940和ARM9E處理器均為含有Cache的CPU核,性能為132MIPS(120MHz時鐘,3.3V供電)或220MIPS(200MHz時鐘)。

ARM9處理器同時也配備Thumb指令擴展、調試和Harvard匯流排。在生產工藝相同的情況下,性能是ARM7TDMI處理器的兩倍之多。常用於無線設備、儀器儀錶、聯網設備、機頂盒設備、高端印表機及 數碼相機應用中。

ARM9E內核是在ARM9內核的基礎上增加了緊密耦合存儲器TCM及DSP部分。目前主流的ARM9內核是ARM920T、ARM922T、ARM940。相關的處理器晶元有Samsung公司的S3C2510、Cirrus公司的EP93xx系列等。主流的ARM9E內核是ARM926EJ-S、ARM946E-S、ARM966E-S等。目前市場上常見的PDA,比如說PocketPC中一般都是用ARM9處理器,其中以Samsung公司的S3C2410處理器居多。

3.ARM10E處理器

ARM10E處理器採用ARMVST體系結構,可以分為六級流水處理,採用指令與數據分離的Cache結構, 平均功耗1000mW,時鐘速度為300MHz,每條指令平均執行1.2個時鐘周期。ARM10TDMI與所有ARM核在二進位級代碼中兼容,內帶高速32×16 MAC,預留DSP協處理器介面。其中的VFP10(向量浮點單元)為七級流水結構。其中的ARM1020T處理器則是由ARMl0TDMI、32KB指 令、數據Caches及MMU部分構成的。其系統時鐘高達300MHz時鐘,指令Cache和數據Cache分別為32KB,數據寬度為64位,能夠支持 多種商用操作系統,適用於下一代高性能手持式網際網路設備及數字式消費類應用。主流的ARM10內核是ARM1020E、ARM1022E、ARM1026EJ-S等。

4.SecurCore處理器

SecurCore系列處理器提供了基於高性能的32位RISC技術的安全解決方案,該系列處理器具有體積 小、功耗低、代碼密度大和性能高等特點。另外最為特別的就是該系列處理器提供了安全解決方案的支持。採用軟內核技術,以提供最大限度的靈活性,以及防止外 部對其進行掃描探測,提供面向智能卡的和低成本的存儲保護單元MPU,可以靈活地集成用戶自己的安全特性和其他的協處理器,目前含有SC100、SC110、SC200、SC210 4種產品。

5.StrongARM處理器

StrongARM處理器採用ARMV4T的五級流水體系結構。目前有SA110、SA1100、SA1110等3個版本。另外Intel公司的基於ARMv5TE體系結構的XScale PXA27x系列處理器,與StrongARM相比增加了I/D Cache,並且加入了部分DSP功能,更適合於移動多媒體應用。目前市場上的大部分智能手機的核心處理器就是XScale系列處理器。

6.ARM11處理器

ARM11系列微處理器是ARM公司近年推出的新一代RISC處理器,它是ARM新指令架構——ARMv6的第一代設計實現。該系列主要有ARM1136J,ARM1156T2和ARM1176JZ三個內核型號,分別針對不同應用領域。

ARM11處理器系列可以在使用130nm代工廠技術、小至2.2mm2晶元面積和低 至0.24mW/MHz的前提下達到高達500MHz的性能表現。ARM11處理器系列以眾多消費產品市場為目標,推出了許多新的技術,包括針對媒體處理 的SIMD,用以提高安全性能的TrustZone技術,智能能源管理(IEM),以及需要非常高的、可升級的超過2600 Dhrystone 2.1 MIPS性能的系統多處理技術。主要的ARM11處理器有ARM1136JF-S、ARM1156T2F-S、ARM1176JZF-S、ARM11 MCORE等多種。

7.Cortex系列處理器

ARM Cortex-M系列支持Thumb-2指令集(Thumb指令集的擴展集),可以執行所有已存的為早期處理器編寫的代碼。通過一個前向的轉換方式, 為ARM Cortex-M系列處理器所寫的用戶代碼可以與ARM Cortex-R系列微處理器完全兼容。

ARMCortex-M系列系統代碼(如實時操作系統)可以很容易地移植到基於ARM Cortex-R系列的系統上。ARMCortex-A和Cortex-R系列處理器還支持ARM 32位指令集,向後完全兼容早期的ARM處理器,包括從1995年發布的ARM7TDMI處理器到2002年發布的ARMll處理器系列。

想第一時間獲取嵌入式乾貨,請加公眾號baiwenkeji

有問題歡迎加胃信討論交流:13266630429,驗證:知乎


推薦閱讀:
查看原文 >>
相关文章