- 嵌入式系統應用開發基礎
- 楊斌編著
- 17字
- 2018-12-27 15:17:54
第2章 ARM處理器的編程結構與工作方式
2.1 ARM嵌入式處理器概況及進展
2.1.1 ARM公司及其產品簡況
ARM公司是一家英國劍橋的半導體技術設計公司,全稱是Advanced RISC Machines Ltd.。ARM公司的前身是一家專門設計RISC處理器的設計公司,該公司相繼推出了自稱為v1和v2版本的RISC體系結構微處理器核并且成功移植到一些應用處理器中。1990年11月由蘋果電腦和VLSI Technology出資,Acorn Computer Group提供技術和12名工程師聯合成立了ARM公司。ARM是一家地道的設計公司,自己并不生產芯片,而是開發和轉讓技術。其主要設計開發的是在Acorn原有的v1和v2版本基礎上、內部稱為v3~v7版本的RISC體系結構嵌入式處理器核心結構。目前的主流商品化應用是v4,v5,v6,v7體系機構下的各系列。ARM在不同的體系結構版本下又設計了多款應用內核,并以ARM技術知識產權(Intelligence Property,IP)核的形式供給其他半導體廠家,各半導體廠家再以此為基礎進行功能擴展,最后生產出適用于各種應用需要的ARM體系結構微處理器芯片。部分體系結構下的ARM應用內核見表2-1。
表2-1 ARM結構版本及部分應用內核
采用ARM技術的微處理器具有性能高、體積小、功耗低,價格低等優點,適用于多種領域,比如軍事、實時控制、通信、醫療器具、汽車電子、消費類產品,特別是各類手持移動應用產品,如手機、PDA等80%以上都采用了ARM技術。目前采用ARM技術IP核的微處理器應用占據了32位RISC微處理器75%以上的市場份額,ARM技術正在逐步滲入到我們生活的各個方面。
ARM通過將其技術以授權方式提供給世界上許多著名的半導體、軟件和OEM廠商。目前全世界有包括Intel、Motorola、IBM、三星、LG、NEC、SONY、菲利浦等幾乎所有知名的半導體廠家都使用ARM公司的授權生產多種多樣的應用芯片,軟件系統的合伙人則包括微軟、Sun和MRI等一系列知名公司。其主要的合作伙伴見圖2-1。ARM很快成為許多全球性RISC標準的締造者,既使ARM技術獲得更多的第三方工具、制造、軟件的支持,又使整個系統成本降低,使產品更容易進入市場被消費者所接受,更具有競爭力。

圖2-1 ARM的合作伙伴
由表2-1可以大致看出ARM體系結構的主要成員及發展趨向,其早期結構版本v1~v3因已基本淘汰,故表中沒有列出。在這些系列內核中,目前市場應用量最大的是ARMv4T結構下的各種應用內核,其中又以ARM7TDMI的衍生產品最多,如國內市場廣泛使用的三星公司生產的S3C4510B、S3C44B0X,飛利浦公司生產的LPC2200系列,摩托羅拉公司生產的Dragenball系列,Cirrus Logic生產的EP9312,OKI生產的ML67100,SHARP生產的LH79531,ATMEL生產的AT91F系列等。由表2-1可以看到,這一體系結構主要擴展了四項技術及其相應的指令集:Thumb指令(T)、DSP指令(E)、Java指令(J)、Media指令。其中的Thumb技術實際上是一種在ARM體系結構中既支持32位指令系統,又支持16位指令系統的技術。由于32位指令系統每條指令都要占用4B的存儲空間,而對于一些應用要求不是很復雜的場合采用16位編碼的指令集就可以滿足要求,從而可以大大節省存儲空間。采用32位指令集和16位指令集的混合編程應用是Thumb技術的創新所在。
表2-2列出了主要的ARM應用內核的結構特征,表2-3列出了不同的ARM應用內核主要技術參數,表2-4列出了一些高端ARM微處理器芯片的功能配置。
表2-2 主要ARM應用內核的結構特征簡表
表2-3 ARM應用內核的主要技術參數
2.1.2 ARM處理器中的新技術
不同的ARM體系機構可支持的指令集不同,而更高的版本將會提供一些新的技術及其指令集。從ARMv6開始,一些新的技術被不斷地引入ARM內核中,對提高ARM處理器的性能發揮了重要的作用。下面是自v5版本之后所開發的主要新技術的概況。
1.TrustZone
ARM TrustZone安全區技術提供了兩個獨立地址空間的硬件支持,因此非安全的程序代碼將無法訪問標記為安全區的存儲器空間,并且一種新的監測模式可以進行安全和非安全區的事務管理。這項技術將為開放的操作系統提供密鑰或認證機制的硬件實現條件,為手機銀行業務,多媒體娛樂服務等提供可能和便利。
2.Thumb-2
Thumb-2為第二代Thumb體系結構(Second Generation of the Thumb Architecture)。在之前的ARM處理器中,ARM和Thumb指令集運行在各自的處理器狀態下,當運行各自的指令時必須先切換入各自的處理器狀態。當程序中反復地出現指令混合運用時,就會因處理器工作狀態的頻繁切換帶來許多的時間開銷。而Thumb-2技術增加了一種混合模式,定義了一組混合的16位和32位指令集,這樣可以減少或去除用于切換ARM和Thumb工作狀態的處理器開銷,以Thumb的代碼密度提供ARM代碼的性能。主要優點為:
- 比Thumb指令快25%;
- 比ARM指令小26%;
- 同現有的Thumb代碼二進制兼容;
- 在保持代碼密度的同時提高性能;
- 最佳的Cache和TCM的利用率;
- 可以減少浮點處理和中斷時模式切換的開銷。
3.NEON
NEON媒體加速技術是ARMv7A核中的一種結構選項,用于應對下一代高性能、大數據量、低功耗無線手持設備的需要。NEON是一個64/128位混合的單指令流多數據流(SingleInstruction Multi-Data,SIMD)結構體,用于包括視頻編/解碼、3D圖形加速、圖像處理、壓縮的音頻數據解碼、音頻合成等多媒體信息處理。其主要的實現措施是,優化在寄存器中的數據表現形式,對可利用的存儲器帶寬實現最優使用,減少數據放置的開銷,在分離的寄存器中操作,將VFP的寄存器組擴展為32×64bit寄存器,支持整型、定點和浮點數據,提供簡單的編程模式和面向C語言的編程模型。該技術在多媒體和數字信號處理上,性能將比ARM11提高2倍,比ARM9E提高3倍。
表2-4 部分典型的高端ARM芯片
4.VFP
向量浮點(Vector Floating Point,VFP)技術協處理器是ARMv7中的一個結構選項,VFP結構支持單、雙精度浮點運算,且支持與IEEE 754兼容的軟件庫。
5.IEM
智能化能耗管理器(Intelligent Energy Manager,IEM)實現了一種優化工作負載和能耗的平衡算法,從而動態地控制電壓和頻率,在最大滿足高端應用性能要求的前提下,提供能量的硬件和軟件動態管理。IEM軟件從操作系統中獲取數據,采用多種策略對軟件工作負荷加以分類,并對未來的性能要求加以預測,最終確定電壓和頻率的適當工作點。在手機應用中可以通過標準的程序模式實現與操作系統及應用程序的協同工作,用于動態地調整CPU所需要的性能級別,達到盡量降低功耗的目的。
6.ARM Cortex系列
Cortex是ARM公司最新的基于ARMv7架構的產品系列,目前有A(Application)、R(Real time)、M(Microprocessor)等三個不同應用目標的產品線。Cortex-A是面向復雜應用的高端產品線,目前推向市場的產品有Cortex-A8、Cortex-A9。Cortex-R是面向實時嵌入式應用的產品線,目前推向市場的產品有Cortex-R4。Cortex-M是面向低成本、低功耗應用的產品線,目前推向市場的產品有Cortex-M1、Cortex-M3、Cortex-M0。
相比ARMV7之前的產品,Cortex系列的共同特點是采用了Thumb-2技術,并且在保持對其他產品系列代碼兼容前提下實現了比純32位代碼少使用31%的內存,比原有基于Thumb技術的解決方案高出38%的性能。而其中的Cortex-Ai系列又融合了NEON、VFP、IEM等新技術,以應對大型多任務操作系統以及3D圖形、圖像處理等復雜應用場合。而Cortex-Ri產品線主要針對實時性強的應用場合,但對于復雜操作系統的支持較弱。
Cortex-Mi產品線主要針對成本敏感的應用場合,對大型多任務操作系統以及3D圖形、圖像處理等復雜應用支持較弱。
- 樂高機器人:WeDo編程與搭建指南
- Canvas LMS Course Design
- Python Artificial Intelligence Projects for Beginners
- 工業機器人工程應用虛擬仿真教程:MotoSim EG-VRC
- 城市道路交通主動控制技術
- 大學計算機應用基礎
- PyTorch Deep Learning Hands-On
- 步步圖解自動化綜合技能
- The DevOps 2.1 Toolkit:Docker Swarm
- Microsoft Dynamics CRM 2013 Marketing Automation
- 天才與算法:人腦與AI的數學思維
- 傳感技術基礎與技能實訓
- 單片機C語言編程實踐
- Modern Big Data Processing with Hadoop
- Building Impressive Presentations with Impress.js