[嵌入式]ARM Cortex-A8體系結構
第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 的外掛使用。
相關文章
- ARM嵌入式體系結構與介面技術
- ARM的體系結構與程式設計系列部落格——ARM體系版本程式設計
- ARM學習之中斷體系結構
- ARM的體系結構與程式設計系列部落格——ARM體系變種程式設計
- 嵌入式--ARM架構架構
- ARM學習之時鐘體系結構
- ARM嵌入式系統啟動架構研究架構
- 【JZ2440】【知識點0】【ARM指令集體系結構和ARM系列】
- ARM的體系結構與程式設計系列部落格——ARM處理器系列介紹程式設計
- ARM的體系結構與程式設計系列部落格——ARM的歷史與應用範圍程式設計
- ARM嵌入式系統該如何學習
- [嵌入式]Cortex-A8處理器程式設計(上)程式設計
- [嵌入式]Cortex-A8處理器程式設計(中)程式設計
- [嵌入式]Cortex-A8處理器程式設計(下)程式設計
- 【轉載】ARM嵌入式系統為什麼要做記憶體對齊記憶體
- Oracle體系結構之-記憶體結構Oracle記憶體
- 【PG體系結構】PG體系結構簡單說明
- Oracle體系結構:記憶體結構和程式結構(轉)Oracle記憶體
- [Virtualization]ESXi體系結構與記憶體管理(一)體系結構記憶體
- Oracle體系結構之-物理結構Oracle
- BeanFactory體系結構Bean
- 【JVM體系結構】JVM
- Servlet 體系結構Servlet
- MySQL 體系結構MySql
- MongoDB 體系結構MongoDB
- 前端結構體系前端結構體
- 【EJB體系結構】
- postgresql體系結構SQL
- 體系結構1
- oracle體系結構Oracle
- SQLite體系結構SQLite
- ORACLE體系結構小結Oracle
- oracle體系結構總結Oracle
- 嵌入式軟體開發的特點、設計流程、嵌入式軟體的結構
- 3:Oracle體系結構(邏輯結構)Oracle
- Oracle體系結構之記憶體結構(SGA、PGA)Oracle記憶體
- ARM體系中儲存系統
- HDFS的體系結構