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

圖2-1 ARM的合作伙伴
由表2-1可以大致看出ARM體系結(jié)構(gòu)的主要成員及發(fā)展趨向,其早期結(jié)構(gòu)版本v1~v3因已基本淘汰,故表中沒(méi)有列出。在這些系列內(nèi)核中,目前市場(chǎng)應(yīng)用量最大的是ARMv4T結(jié)構(gòu)下的各種應(yīng)用內(nèi)核,其中又以ARM7TDMI的衍生產(chǎn)品最多,如國(guó)內(nèi)市場(chǎng)廣泛使用的三星公司生產(chǎn)的S3C4510B、S3C44B0X,飛利浦公司生產(chǎn)的LPC2200系列,摩托羅拉公司生產(chǎn)的Dragenball系列,Cirrus Logic生產(chǎn)的EP9312,OKI生產(chǎn)的ML67100,SHARP生產(chǎn)的LH79531,ATMEL生產(chǎn)的AT91F系列等。由表2-1可以看到,這一體系結(jié)構(gòu)主要擴(kuò)展了四項(xiàng)技術(shù)及其相應(yīng)的指令集:Thumb指令(T)、DSP指令(E)、Java指令(J)、Media指令。其中的Thumb技術(shù)實(shí)際上是一種在ARM體系結(jié)構(gòu)中既支持32位指令系統(tǒng),又支持16位指令系統(tǒng)的技術(shù)。由于32位指令系統(tǒng)每條指令都要占用4B的存儲(chǔ)空間,而對(duì)于一些應(yīng)用要求不是很復(fù)雜的場(chǎng)合采用16位編碼的指令集就可以滿足要求,從而可以大大節(jié)省存儲(chǔ)空間。采用32位指令集和16位指令集的混合編程應(yīng)用是Thumb技術(shù)的創(chuàng)新所在。
表2-2列出了主要的ARM應(yīng)用內(nèi)核的結(jié)構(gòu)特征,表2-3列出了不同的ARM應(yīng)用內(nèi)核主要技術(shù)參數(shù),表2-4列出了一些高端ARM微處理器芯片的功能配置。
表2-2 主要ARM應(yīng)用內(nèi)核的結(jié)構(gòu)特征簡(jiǎn)表
表2-3 ARM應(yīng)用內(nèi)核的主要技術(shù)參數(shù)
2.1.2 ARM處理器中的新技術(shù)
不同的ARM體系機(jī)構(gòu)可支持的指令集不同,而更高的版本將會(huì)提供一些新的技術(shù)及其指令集。從ARMv6開(kāi)始,一些新的技術(shù)被不斷地引入ARM內(nèi)核中,對(duì)提高ARM處理器的性能發(fā)揮了重要的作用。下面是自v5版本之后所開(kāi)發(fā)的主要新技術(shù)的概況。
1.TrustZone
ARM TrustZone安全區(qū)技術(shù)提供了兩個(gè)獨(dú)立地址空間的硬件支持,因此非安全的程序代碼將無(wú)法訪問(wèn)標(biāo)記為安全區(qū)的存儲(chǔ)器空間,并且一種新的監(jiān)測(cè)模式可以進(jìn)行安全和非安全區(qū)的事務(wù)管理。這項(xiàng)技術(shù)將為開(kāi)放的操作系統(tǒng)提供密鑰或認(rèn)證機(jī)制的硬件實(shí)現(xiàn)條件,為手機(jī)銀行業(yè)務(wù),多媒體娛樂(lè)服務(wù)等提供可能和便利。
2.Thumb-2
Thumb-2為第二代Thumb體系結(jié)構(gòu)(Second Generation of the Thumb Architecture)。在之前的ARM處理器中,ARM和Thumb指令集運(yùn)行在各自的處理器狀態(tài)下,當(dāng)運(yùn)行各自的指令時(shí)必須先切換入各自的處理器狀態(tài)。當(dāng)程序中反復(fù)地出現(xiàn)指令混合運(yùn)用時(shí),就會(huì)因處理器工作狀態(tài)的頻繁切換帶來(lái)許多的時(shí)間開(kāi)銷。而Thumb-2技術(shù)增加了一種混合模式,定義了一組混合的16位和32位指令集,這樣可以減少或去除用于切換ARM和Thumb工作狀態(tài)的處理器開(kāi)銷,以Thumb的代碼密度提供ARM代碼的性能。主要優(yōu)點(diǎn)為:
- 比Thumb指令快25%;
- 比ARM指令小26%;
- 同現(xiàn)有的Thumb代碼二進(jìn)制兼容;
- 在保持代碼密度的同時(shí)提高性能;
- 最佳的Cache和TCM的利用率;
- 可以減少浮點(diǎn)處理和中斷時(shí)模式切換的開(kāi)銷。
3.NEON
NEON媒體加速技術(shù)是ARMv7A核中的一種結(jié)構(gòu)選項(xiàng),用于應(yīng)對(duì)下一代高性能、大數(shù)據(jù)量、低功耗無(wú)線手持設(shè)備的需要。NEON是一個(gè)64/128位混合的單指令流多數(shù)據(jù)流(SingleInstruction Multi-Data,SIMD)結(jié)構(gòu)體,用于包括視頻編/解碼、3D圖形加速、圖像處理、壓縮的音頻數(shù)據(jù)解碼、音頻合成等多媒體信息處理。其主要的實(shí)現(xiàn)措施是,優(yōu)化在寄存器中的數(shù)據(jù)表現(xiàn)形式,對(duì)可利用的存儲(chǔ)器帶寬實(shí)現(xiàn)最優(yōu)使用,減少數(shù)據(jù)放置的開(kāi)銷,在分離的寄存器中操作,將VFP的寄存器組擴(kuò)展為32×64bit寄存器,支持整型、定點(diǎn)和浮點(diǎn)數(shù)據(jù),提供簡(jiǎn)單的編程模式和面向C語(yǔ)言的編程模型。該技術(shù)在多媒體和數(shù)字信號(hào)處理上,性能將比ARM11提高2倍,比ARM9E提高3倍。
表2-4 部分典型的高端ARM芯片
4.VFP
向量浮點(diǎn)(Vector Floating Point,VFP)技術(shù)協(xié)處理器是ARMv7中的一個(gè)結(jié)構(gòu)選項(xiàng),VFP結(jié)構(gòu)支持單、雙精度浮點(diǎn)運(yùn)算,且支持與IEEE 754兼容的軟件庫(kù)。
5.IEM
智能化能耗管理器(Intelligent Energy Manager,IEM)實(shí)現(xiàn)了一種優(yōu)化工作負(fù)載和能耗的平衡算法,從而動(dòng)態(tài)地控制電壓和頻率,在最大滿足高端應(yīng)用性能要求的前提下,提供能量的硬件和軟件動(dòng)態(tài)管理。IEM軟件從操作系統(tǒng)中獲取數(shù)據(jù),采用多種策略對(duì)軟件工作負(fù)荷加以分類,并對(duì)未來(lái)的性能要求加以預(yù)測(cè),最終確定電壓和頻率的適當(dāng)工作點(diǎn)。在手機(jī)應(yīng)用中可以通過(guò)標(biāo)準(zhǔn)的程序模式實(shí)現(xiàn)與操作系統(tǒng)及應(yīng)用程序的協(xié)同工作,用于動(dòng)態(tài)地調(diào)整CPU所需要的性能級(jí)別,達(dá)到盡量降低功耗的目的。
6.ARM Cortex系列
Cortex是ARM公司最新的基于ARMv7架構(gòu)的產(chǎn)品系列,目前有A(Application)、R(Real time)、M(Microprocessor)等三個(gè)不同應(yīng)用目標(biāo)的產(chǎn)品線。Cortex-A是面向復(fù)雜應(yīng)用的高端產(chǎn)品線,目前推向市場(chǎng)的產(chǎn)品有Cortex-A8、Cortex-A9。Cortex-R是面向?qū)崟r(shí)嵌入式應(yīng)用的產(chǎn)品線,目前推向市場(chǎng)的產(chǎn)品有Cortex-R4。Cortex-M是面向低成本、低功耗應(yīng)用的產(chǎn)品線,目前推向市場(chǎng)的產(chǎn)品有Cortex-M1、Cortex-M3、Cortex-M0。
相比ARMV7之前的產(chǎn)品,Cortex系列的共同特點(diǎn)是采用了Thumb-2技術(shù),并且在保持對(duì)其他產(chǎn)品系列代碼兼容前提下實(shí)現(xiàn)了比純32位代碼少使用31%的內(nèi)存,比原有基于Thumb技術(shù)的解決方案高出38%的性能。而其中的Cortex-Ai系列又融合了NEON、VFP、IEM等新技術(shù),以應(yīng)對(duì)大型多任務(wù)操作系統(tǒng)以及3D圖形、圖像處理等復(fù)雜應(yīng)用場(chǎng)合。而Cortex-Ri產(chǎn)品線主要針對(duì)實(shí)時(shí)性強(qiáng)的應(yīng)用場(chǎng)合,但對(duì)于復(fù)雜操作系統(tǒng)的支持較弱。
Cortex-Mi產(chǎn)品線主要針對(duì)成本敏感的應(yīng)用場(chǎng)合,對(duì)大型多任務(wù)操作系統(tǒng)以及3D圖形、圖像處理等復(fù)雜應(yīng)用支持較弱。
- GNU-Linux Rapid Embedded Programming
- 數(shù)據(jù)展現(xiàn)的藝術(shù)
- 自動(dòng)控制工程設(shè)計(jì)入門
- Div+CSS 3.0網(wǎng)頁(yè)布局案例精粹
- 21小時(shí)學(xué)通AutoCAD
- 自動(dòng)檢測(cè)與傳感技術(shù)
- 運(yùn)動(dòng)控制器與交流伺服系統(tǒng)的調(diào)試和應(yīng)用
- 啊哈C!思考快你一步
- Bayesian Analysis with Python
- 會(huì)聲會(huì)影X4中文版從入門到精通
- 數(shù)據(jù)要素:全球經(jīng)濟(jì)社會(huì)發(fā)展的新動(dòng)力
- 筆記本電腦維修之電路分析基礎(chǔ)
- 微機(jī)組裝與維護(hù)教程
- 大話數(shù)據(jù)科學(xué):大數(shù)據(jù)與機(jī)器學(xué)習(xí)實(shí)戰(zhàn)(基于R語(yǔ)言)
- 牛津通識(shí)讀本:大數(shù)據(jù)(中文版)