[嵌入式]ARM Cortex-A8體系結構

丫就是熊個貓貓發表於2016-12-16

第2章 ARM Cortex-A8體系結構

1.ARM微處理器

採用RISC架構的ARM微處理器一般具有如下特點:

1)體積小、低功耗、低成本、高效能;

2)支援Thumb(16位)/ARM(32位)雙指令集,能很好的相容8位/16位器件;

3)大量使用暫存器,指令執行速度更快;

4)大多數資料操作都在暫存器中完成;

5)定址方式靈活簡單,執行效率高;

6)指令長度固定。

2. ARM核心基本版本


3. 各ARM體系結構版本

1)V1

該版本的ARM體系結構,只有26位的定址空間,無商業化,其特點為:

a)基本的資料處理指令(不包括乘法);

b)位元組、字和半字載入/儲存指令;

c)具有分支指令,包括在子程式呼叫中使用的分支和連結指令;

d)在作業系統呼叫中使用的軟體中斷指令;

e)定址空間:64MB。

2)V2

該版架構對V1版進行了擴充套件,例如ARM2和ARM3(V2a)架構。包含了對32位乘法指令和協處理器指令的支援。同樣為26位定址空間,現在已經廢棄不再使用,它相對V1版本有以下改進:

a)具有乘法和乘加指令;

b)支援協處理器;

c)快速中斷模式中的兩個以上的分組暫存器;

d)具有原子性載入/儲存指令SWP和SWPB;

e)定址空間:64MB。

3) V3

ARM作為獨立的公司,在1990年設計的第一個微處理器採用的是版本3的ARM6,其主要特點有:

a)定址範圍擴充套件到32位(4GB);

b)具有MMU、寫緩衝;

c)分開的當前程式狀態暫存器(CPSR)和備份的程式狀態暫存器(SPSR);

d)增加了兩種異常模式,可方便地使用資料訪問中止異常、指令預取中止異常、未定義指令異常;

e)增加了MRS指令和MSR指令,用於完成對CPSR和SPSR暫存器的讀/寫;

f)修改了原來從異常中返回的指令。

4)V4—目前ARM7、ARM9核應用最廣泛

第一個具有全部正式定義的結構版本,版本4T,引入了Thumb壓縮形式指令集,不再為了與以前的版本相容而支援26位體系結構,並明確了哪些指令會引起未定義指令異常發生,它相對V3版本做可以下的改進:

a)符號化和非符號化半字及符號化位元組的存/取指令;

b)處理器可工作在Thumb狀態,增加了16位Thumb指令集;

c)完善了軟體中斷SWI指令的功能;

d) 處理器系統模式引進特權方式時使用使用者暫存器操作;

e)把一些未使用的指令空間捕獲為未定義指令。

5)V5—ARM10 、Xscale核使用

在V4版本的基礎上,對現在指令的定義進行了必要的修正,對V4版本的體系結構進行了擴充套件並增加了指令,具體如下:

a)改進了ARM/Thumb狀態之間的切換效率;

b)允許非T變數和T變數一樣,使用相同的程式碼生成技術;

c)增加計數前導零指令和軟體斷點指令;

d)對乘法指令如何設定標誌作了嚴格的定義;

e)增加了數字訊號處理指令(V5TE版);

f)降低耗電量、強化圖形處理效能,支援多微處理器核心。

6)V6—ARM11支援

    V6是2001年釋出的。新架構V6在降低耗電量的同時,還強化了圖形處理效能。通過追加有效進行多媒體處理的SIMD功能,將語音及圖象的處理功能提高到了原機型的4倍。

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

a)Thumb :35%程式碼壓縮;

b)DSP擴充:高效能定點DSP功能;

c)JazelleTM:Java效能優化,可提高8倍;

d)Media擴充:音/視訊效能優化,可提高4倍。

7)V7—Cortex核心使用

ARMv7架構是在ARMv6架構的基礎上誕生的。該架構採用了Thumb-2技術,它是在ARM的Thumb程式碼壓縮技術的基礎上發展起來的,並且保持了對現存ARM解決方案的完整的程式碼相容性。Thumb-2技術比純32位程式碼少使用31%的記憶體,減小了系統開銷。同時能夠提供比已有的基於Thumb技術的解決方案高出38%的效能。ARMv7架構還採用了NEON技術,將DSP和媒體處理能力提高了近4倍,並支援改良的浮點運算,滿足下一代3D圖形、遊戲物理應用以及傳統嵌入式控制應用的需求。

Cortex-M、Cortex-R、Cortex-A

4.ARM微處理器系列

• ARM7系列

• ARM9系列

• ARM9E系列

• ARM10E系列

• SecurCore系列

• Inter的Xscale

• Inter的StrongARM

• Cortex系列處理器

1) ARM7

該系列包括ARM7TDMI、ARM7TDMI-S、帶有快取記憶體處理器巨集單元的ARM720T和擴充了Jazelle的ARM7EJ-S。該系列處理器提供Thumb 16位壓縮指令集和EmbededICE軟體除錯方式,適用於更大規模的SoC設計中。

ARM7系列廣泛應用於多媒體和嵌入式裝置,包括Internet裝置、網路和調變解調器裝置、以及行動電話、數字相機、印表機、PDA等裝置。

2) ARM9

該系列包括ARM9TDMI、ARM920T和帶有快取記憶體處理器巨集單元的ARM940T。除了相容ARM7系列,而且能夠更加靈活的設計。

ARM9系列主要應用於引擎管理、儀器儀表、安全系統、機頂盒、汽車、通訊和資訊系統等領域。

3) ARM10

該系列包括ARM1020和ARM1020E處理器核,其核心在於使用向量浮點(VFP)單元VFP10提供高效能的浮點解決方案,從而極大提高了處理器的整型和浮點運算效能。

可以用於視訊遊戲機和高效能印表機等場合。

4) SecurCore

該系列涵蓋了SC100、SC110、SC200和SC210處理器核。該系列處理器主要針對新興的安全市場,以一種全新的安全處理器設計為智慧卡和其它安全IC開發提供獨特的32位系統設計,並具有特定的反偽造方法,從而有助於防止對硬體和軟體的盜版。

5) Xscale

  IntelXscale微控制器Intel Pentium技術實現,與ARM V5相容的嵌入式微處理器構架。它提供全效能、高價效比、低功耗的解決方案,支援16位Thumb指令並整合數字訊號處理(DSP)指令。

Xscale 體系結構微控制器主頻可高達1GHz,其設計目標是“面向特定應用的標準產品”,目前已經廣泛用於行動電話、PDA 及網路裝置中。

6) ARM11

    ARM11系列微處理器是ARM公司2002年推出的新一代RISC處理器,它是ARMv6指令架構的第一代設計實現。該系列主要有ARM1136J,ARM1156T2和ARM1176JZ三個核心型號,分別針對不同應用領域。ARM11核心適合新一代消費類電子、無線裝置、網路應用和汽車電子產品等需求。

7) Cortex

    Cortex系列處理器釋出於2004年,是基於ARMv7架構的,分為Cortex-M、Cortex-R和Cortex-A三類。最早的型號是Cortex-M3;Cortex-A8核心於2005年10月4日釋出,隨後ARM在2006年5月15日釋出了Cortex-R4核心。這三款核心分別面向不同的領域,移動智慧終端上使用的絕大多數為Cortex-A8核心。Cortex-A8不支援多核架構,多核超標量核心為Cortex-A9; 2011年初,ARM Cortex-A15核心釋出,主要是針對多核進行了優化。

5.ARM微處理器結構

1) RISC型處理器結構

    結構簡單、處理速度快、處理功能強。

    70%的工作由30%的指令完成;

    ARM Load/Store結構。     

2) Thumb指令集

   16位指令集具有更好的程式碼密度,而晶片面積僅僅增加6%,可是程式儲存器更小。

3) 多處理器狀態模式

   ARM可以支援使用者、快中斷、中斷、管理、中止、系統和未定義等七種處理器模式,可以使用多種高階應用領域。

4)暫存器結構

   獨有的分組暫存器結構。

5)嵌入式線上模擬除錯

   ARM架構的處理器晶片都嵌入了線上模擬邏輯,便於通過了JTAG來模擬除錯ARM架構晶片。

6)靈活和方便的介面

   ARM架構具有協處理器介面,這樣,既可以使基本的ARM處理器核心儘可能小,又可能方便地擴充各種功能。

7)低電壓低功耗的設計  

8)降低電源電壓,時脈頻率等

6.Cortex-A8核心結構


7.Samsung S5PV210微處理器簡介


8.Samsung S5PV210開發環境

1)RVDS   

    常用的ARM 的開發環境有ADS1.2 、RVDS(RealView Developer Suite)、MDK、IAR、DS-5 和一些開源的開發環境。其中RVDS是ARM公司繼SDT與ADS1.2之後主推的新一代開發工具。RVDS整合的RVCT是業內公認的能夠支援所有ARM處理器,並提供最好的執行效能的編譯器。

    RVDS向硬體裝置的設計者提供多核除錯、應用與所有的ARM處理器的程式碼產生和Cortex CPU的配置等功能,並提供了到達第三方元件的介面(如ARM ESL tools)。RVDS包含有四個模組:IDE、RVCT、RVD和RVISS。

2)Eclipse for ARM開發環境

Eclipse整合開發環境是一個開源的IDE平臺,其以強大的可擴充套件性而著稱,傳統的IDE公司很多已轉向Eclipse平臺,在此平臺上開發自己的外掛,然後包裝銷售。Eclipse是基於Java的可擴充套件開發平臺,在Eclipse上不僅可以開發Java專案,也可以開發C專案。Eclipse能夠管理和編輯專案原始碼和文件,並不提供編譯和連線工具,但是卻為編譯和連線工具留有介面。

Eclipse forARM  是借用開源軟體的Eclipse的工程管理工具,嵌入GNU工具集,使之能夠開發ARM 公司Cortex-A系列的CPU。YAGARTO(Yet another GNU ARM toolchain)是一個跨平臺的GNU ARM開發工具鏈,可以作為 Eclipse 的外掛使用。

相關文章