博客專欄

EEPW首頁 > 博客 > 一文讀懂ARM技術(shù)架構(gòu)

一文讀懂ARM技術(shù)架構(gòu)

發(fā)布人:傳感器技術(shù) 時間:2023-01-08 來源:工程師 發(fā)布文章

“Hello world,I am Arm”,1985年4月26日,Arm第一顆芯片正式問世!自此Arm真的給了世界一個大大的問候,此后的35年里,Arm的芯片如同“蒲公英的種子”跨過了大洋彼岸,將花開在了世界各處。長達(dá)數(shù)幾十年Arm一直處于手機(jī)處理器的領(lǐng)主地位。


ARM的設(shè)計是全球大多數(shù)移動設(shè)備處理器的基礎(chǔ)。各大手機(jī)芯片,包括高通驍龍、Apple A系列、華為麒麟芯片、三星Exynos,等它們的底層均是ARM的技術(shù)。


圖片


1991 年ARM 公司成立于英國劍橋,在成立后的那幾年,ARM業(yè)績平平,工程師們也人心惶惶,害怕隨時都會失業(yè)。在這個情況下,ARM決定改變他們的產(chǎn)品策略——他們不再生產(chǎn)芯片,轉(zhuǎn)而以授權(quán)的方式,將芯片設(shè)計方案轉(zhuǎn)讓給其他公司,即“Partnership”開放模式。


沒想到正是這種模式,開創(chuàng)了屬于ARM的全新時代。


ARM所采取的是IP(Intellectual Property,知識產(chǎn)權(quán))授權(quán)的商業(yè)模式,收取一次性技術(shù)授權(quán)費(fèi)用和版稅提成。


具體來說,ARM有三種授權(quán)方式:處理器、POP以及架構(gòu)授權(quán)。


處理器授權(quán)是指授權(quán)合作廠商使用ARM設(shè)計好的處理器,對方不能改變原有設(shè)計,但可以根據(jù)自己的需要調(diào)整產(chǎn)品的頻率、功耗等。


POP(processor optimization pack,處理器優(yōu)化包)授權(quán)是處理器授權(quán)的高級形式, ARM出售優(yōu)化后的處理器給授權(quán)合作廠商,方便其在特定工藝下設(shè)計、生產(chǎn)出性能有保證的處理器。


架構(gòu)授權(quán)是ARM會授權(quán)合作廠商使用自己的架構(gòu),方便其根據(jù)自己的需要來設(shè)計處理器(例如后來高通的Krait架構(gòu)和蘋果的Swift架構(gòu),就是在取得ARM的授權(quán)后設(shè)計完成的)。所以,授權(quán)費(fèi)和版稅就成了ARM的主要收入來源。除此之外,就是軟件工具和技術(shù)支持服務(wù)的收入。


圖片


ARM 微處理器的應(yīng)用領(lǐng)域及特點(diǎn)














ARM處理器市場覆蓋率最高、發(fā)展趨勢廣闊,基于ARM技術(shù)的32位微處理器,市場的占有率目前已達(dá)到80%。絕大多數(shù)IC制造商都推出了自己的ARM結(jié)構(gòu)芯片。我國的中興集成電路、大唐電訊、華為海思、中芯國際和上海華虹,以及國外的一些公司如德州儀器、意法半導(dǎo)體、Philips、Intel、Samsung等都推出了自己設(shè)計的基于ARM核的處理器。


工業(yè)控制領(lǐng)域:作為32 的RISC 架構(gòu),基于ARM 核的微控制器芯片不但占據(jù)了高端微控制器市場的大部分市場份額,同時也逐漸向低端微控制器應(yīng)用領(lǐng)域擴(kuò)展,ARM 微控制器的低功耗、高性價比,向傳統(tǒng)的8 位/16 位微控制器提出了挑戰(zhàn)。


無線通訊領(lǐng)域:目前已有超過85%的無線通訊設(shè)備采用了ARM 技術(shù), ARM 以其高性能和低成本,在該領(lǐng)域的地位日益鞏固。


網(wǎng)絡(luò)設(shè)備:隨著寬帶技術(shù)的推廣,采用ARM 技術(shù)的ADSL 芯片正逐步獲得競爭優(yōu)勢。此外,ARM 在語音及視頻處理上進(jìn)行了優(yōu)化,并獲得廣泛支持,也對DSP 的應(yīng)用領(lǐng)域提出了挑戰(zhàn)。


消費(fèi)類電子產(chǎn)品:ARM 技術(shù)在目前流行的數(shù)字音頻播放器、數(shù)字機(jī)頂盒和游戲機(jī)中得到廣泛采用。


成像和安全產(chǎn)品:現(xiàn)在流行的數(shù)碼相機(jī)和打印機(jī)中絕大部分采用ARM 技術(shù)。手機(jī)中的32位SIM 智能卡也采用了ARM 技術(shù)。


圖片


ARM處理器的特點(diǎn):

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


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


3、大量使用寄存器,指令執(zhí)行速度更快;


4、大多數(shù)數(shù)據(jù)操作都在寄存器中完成;


5、尋址方式靈活簡單,執(zhí)行效率高;


6、指令長度固定;


ARM相關(guān)的幾個重要概念














馮·諾依曼體系


結(jié)構(gòu)模型:


馮·諾依曼體系的特點(diǎn):

1、數(shù)據(jù)與指令都存儲在同一存儲區(qū)中,取指令與取數(shù)據(jù)利用同一數(shù)據(jù)總線。


2、被早期大多數(shù)計算機(jī)所采用。


3、ARM7——馮諾依曼體系結(jié)構(gòu)簡單,但速度較慢。取指不能同時取數(shù)據(jù)。


哈佛體系


結(jié)構(gòu)模型:

圖片


結(jié)構(gòu)特點(diǎn):

1、程序存儲器與數(shù)據(jù)存儲器分開.


2、提供了較大的存儲器帶寬,各自有自己的總線。


3、適合于數(shù)字信號處理.


4、大多數(shù)DSP都是哈佛結(jié)構(gòu).


5、ARM9是哈佛結(jié)構(gòu),取指和取數(shù)在同一周期進(jìn)行,提高速度,改進(jìn)哈佛體系結(jié)構(gòu)分成三個存儲區(qū):程序、數(shù)據(jù)、程序和數(shù)據(jù)共用。


CISC復(fù)雜指令集(Complex Instruction Set Computer)


特點(diǎn):

1、具有大量的指令和尋址方式

2、8/2原則:80%的程序只使用20%的指令

3、大多數(shù)程序只使用少量的指令就能夠運(yùn)行。

4、CISC CPU 包含有豐富的單元電路,因而功能強(qiáng)、面積大、功耗大。


RISC精簡指令集(Reduced Instruction Set Computer)


特點(diǎn):

1、在通道中只包含最有用的指令,只提供簡單的操作。


2、確保數(shù)據(jù)通道快速執(zhí)行每一條指令。


3、Load-store結(jié)構(gòu)—— 處理器只處理寄存器中的數(shù)據(jù),load-store指令用來完成數(shù)據(jù)在寄存器和外部存儲器之間的傳送。


4、使CPU硬件結(jié)構(gòu)設(shè)計變得更為簡單, RISC CPU包含較少的單元電路,因而面積小、功耗低。


RISC與CISC主要差別


1、寄存器方面


RISC指令集:擁有更多的通用寄存器,每個可以存放數(shù)據(jù)和地址,寄存器為所有的數(shù)據(jù)操作提供快速的存儲訪問。


CISC指令集:多用于特定目的的專用寄存器。


2、LOAD –STORE結(jié)構(gòu)方面


RISC結(jié)構(gòu):Cpu 僅處理寄存器中的數(shù)據(jù),采用獨(dú)立的、專用的LOAD –STORE 指令來完成數(shù)據(jù)在寄存器和外存之間的傳送。(訪存費(fèi)時,處理和存儲分開,可以反復(fù)的使用保存在寄存器中的數(shù)據(jù),而避免多次訪問外存)。


CISC結(jié)構(gòu):能直接處理存儲器中的數(shù)據(jù)。


ARM存儲格式














ARM存儲器以8位為一個單元存儲數(shù)據(jù)(一個字節(jié)),每個存儲單元分配一個存儲地址。


ARM將存儲器看作是從零地址開始的字節(jié)的線性組合。作為32位的微處理器,ARM體系結(jié)構(gòu)所支持的最大尋址空間為4GB(232字節(jié))。從零字節(jié)到三字節(jié)放置第一個存儲的字?jǐn)?shù)據(jù),從第四個字節(jié)到第七個字節(jié)放置第二個存儲的字?jǐn)?shù)據(jù),依次排列。32位的字?jǐn)?shù)據(jù)要使用4個地址單元,16位半數(shù)據(jù)要使用2個地址單元。這樣,就存在一個所存儲的字或半字?jǐn)?shù)據(jù)的排列順序問題。ARM體系結(jié)構(gòu)可以用兩種方法存儲字?jǐn)?shù)據(jù),稱為大端格式和小端格式。


大端格式(big-endian):字?jǐn)?shù)據(jù)的高字節(jié)存儲在低地址中,而字?jǐn)?shù)據(jù)的低字節(jié)則存放在高地址中。



小端格式(low-endian):與大端存儲格式相反。低地址中存放的是字?jǐn)?shù)據(jù)的低字節(jié),高地址存放的是字?jǐn)?shù)據(jù)的高字節(jié)。缺省設(shè)置為小端格式。



ARM體系結(jié)構(gòu)














ARM系列產(chǎn)品表示

圖片圖片


ARM處理器的分類


基于指令集體系結(jié)構(gòu)的分類:v1,v2,v5,v5TEJ,v6等


基于處理器內(nèi)核的分類:ARM7,ARM9,ARM10,ARM11,StrongARM,XScale等


ARM體系結(jié)構(gòu)版本


ARM架構(gòu)自誕生至今,已經(jīng)發(fā)生了很大的演變,至今已定義的版本有:V1版架構(gòu)、V2版架構(gòu)、V3版架構(gòu)、V4版架構(gòu)、V5版架構(gòu)、V6版架構(gòu)。


V1版架構(gòu)

該版架構(gòu)只在原型機(jī)ARM1出現(xiàn)過,其基本性能:


1、基本的數(shù)據(jù)處理指令(無乘法)

2、字節(jié)、半字和字的LOAD/STORE指令

3、轉(zhuǎn)移指令,包括子程序調(diào)用及鏈接指令

4、軟件中斷指令

5、尋址空間:64M字節(jié)(26)


V2版架構(gòu)

該版架構(gòu)對V1版進(jìn)行了擴(kuò)展,如ARM2架構(gòu),增加了以下功能:


1、乘法和乘加指令

2、支持協(xié)處理器操作指令

3、快速中斷模式

4、SWP/SWPB基本存儲器與寄存器交換指令

5、尋址空間:64M字節(jié)


V3版架構(gòu)

1、把尋址空間增至32位(4G字節(jié)),

2、增加了當(dāng)前程序狀態(tài)寄存器CPSR和程序狀態(tài)保存寄存器SPSR以便于異常的處理。

3、增加了中止和未定義二種處理器模式。

4、ARM6就采用該版架構(gòu)。

5、指令集變化:增加了MRS/MSR指令,以訪問新增的CPSR/SPSR寄存器;增加了從異常處理返回的指令功能。


V4版架構(gòu)

V4版架構(gòu)是目前應(yīng)用最廣的ARM體系結(jié)構(gòu),對V3版架構(gòu)進(jìn)行了進(jìn)一步擴(kuò)充,有的還引進(jìn)了16位的Thumb指令集,使ARM使用更加靈活。ARM7、ARM8、ARM9和StrongARM都采用該版架構(gòu)。


指令集中增加了以下功能:

1、有符號、無符號的半字和有符號字節(jié)的Load/Store指令。

2、增加了16位Thumb指令集

3、完善了軟件中斷SWI指令的功能

4、增加了處理器的特權(quán)模式。


V5版架構(gòu)

這是最近幾年推出ARM架構(gòu),在V4版基本上增加了一些新的指令,ARM10和XScale都采用該版架構(gòu),這些新增指令有:


1、帶有鏈接和交換的轉(zhuǎn)移BLX指令

2、計數(shù)前導(dǎo)零CLZ指令

3、BKPT軟件斷點(diǎn)指令

4、增加了信號處理指令

5、為協(xié)處理器增加更多可選擇的指令


v6版架構(gòu)

1、適合使用電池供電的便攜式設(shè)備

2、增加了 SIMD功能擴(kuò)展,提高了嵌入式應(yīng)用系統(tǒng)的音頻、視頻處理能力。


ARM芯片選擇的一般原則














從應(yīng)用的角度,對在選擇ARM芯片時所應(yīng)考慮的主要因素有:


1、ARM芯核:如果希望使用WinCE或Linux等操作系統(tǒng)以減少軟件開發(fā)時間,就需要選擇ARM720T以上帶有MMU功能的ARM芯片.


2、系統(tǒng)時鐘控制器:系統(tǒng)時鐘決定了ARM芯片的處理速度。ARM7的處理速度為0.9MIPS/MHz,常見的ARM7芯片系統(tǒng)主時鐘為20MHz-133MHz,ARM9的處理速度為1.1MIPS/MHz,常見的ARM9的系統(tǒng)主時鐘為100MHz-233MHz, ARM10最高可以達(dá)到700MHz。


3、內(nèi)部存儲器容量:在不需要大容量存儲器時,可以考慮選用有內(nèi)置存儲器的ARM芯片。


4、GPIO數(shù)量:在某些芯片供應(yīng)商提供的說明書中,往往申明的是最大可能的GPIO數(shù)量,但是有許多引腳是和地址線、數(shù)據(jù)線、串口線等引腳復(fù)用的。這樣在系統(tǒng)設(shè)計時需要計算實際可以使用的GPIO數(shù)量。


5、USB接口:許多ARM芯片內(nèi)置有USB控制器,有些芯片甚至同時有USB Host和USB Slave控制器。


6、中斷控制器:ARM內(nèi)核只提供快速中斷(FIQ)和標(biāo)準(zhǔn)中斷(IRQ)兩個中斷向量。但各個半導(dǎo)體廠家在設(shè)計芯片時加入了自己不同的中斷控制器,以便支持諸如串行口、外部中斷、時鐘中斷等硬件中斷。外部中斷控制是選擇芯片必須考慮的重要因素,合理的外部中斷設(shè)計可以很大程度的減少任務(wù)調(diào)度的工作量。


7、LCD控制器:些ARM芯片內(nèi)置LCD控制器,有的甚至內(nèi)置64K彩色TFT LCD控制器。在設(shè)計PDA和手持式顯示記錄設(shè)備時,選用內(nèi)置LCD控制器的ARM芯片較為適宜。


8、擴(kuò)展總線:大部分ARM芯片具有外部SDRAM和SRAM擴(kuò)展接口,不同的ARM芯片可以擴(kuò)展的芯片數(shù)量即片選線數(shù)量不同,外部數(shù)據(jù)總線有8位、16位或32位。某些特殊應(yīng)用的ARM芯片如德國Micronas的PUC3030A沒有外部擴(kuò)展功能。


9、封裝:主要的封裝有QFP、TQFP、PQFP、LQFP、BGA、LBGA等形式,BGA封裝具有芯片面積小的特點(diǎn),可以減少PCB板的面積,但是需要專用的焊接設(shè)備,無法手工焊接。另外一般BGA封裝的ARM芯片無法用雙面板完成PCB布線,需要多層PCB板布線。


Thumb技術(shù)














ARM的RISC體系結(jié)構(gòu)的發(fā)展中已經(jīng)提供了低功耗、小體積、高性能的方案。而為了解決代碼長度的問題,ARM體系結(jié)構(gòu)又增加了T變種,開發(fā)了一種新的指令體系,這就是Thumb指令集,它是ARM技術(shù)的一大特色。


Thumb是ARM體系結(jié)構(gòu)的擴(kuò)展。它有從標(biāo)準(zhǔn)32位ARM指令集抽出來的36條指令格式,可以重新編成16位的操作碼。這能帶來很高的代碼密度。


支持Thumb的ARM體系結(jié)構(gòu)的處理器狀態(tài)可以方便的切換、運(yùn)行到Thumb狀態(tài),在該狀態(tài)下指令集是16位的Thumb指令集。


與ARM指令集相比.Thumb指令集具有以下局限:


1、完成相同的操作,Thumb指令通常需要更多的指令,因此在對系統(tǒng)運(yùn)行時間要求苛刻的應(yīng)用場合ARM指令集更為適合;


2、Thumb指令集沒有包含進(jìn)行異常處理時需要的一些指令,因此在異常中斷時,還是需要使用ARM指令,這種限制決定了Thumb指令需要和ARM指令配合使用。

  


*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點(diǎn),如有侵權(quán)請聯(lián)系工作人員刪除。



關(guān)鍵詞: ARM技術(shù)架構(gòu)

技術(shù)專區(qū)

關(guān)閉