日本欧美一区-日本欧美一区二区三区片-日本强好片久久久久久AAA-日本-区一区二区三区A片-日本人伦一区二区三区-日本人妻A片成人免费看

電子開(kāi)發(fā)網(wǎng)

電子開(kāi)發(fā)網(wǎng)電子設(shè)計(jì) | 電子開(kāi)發(fā)網(wǎng)Rss 2.0 會(huì)員中心 會(huì)員注冊(cè)
搜索: 您現(xiàn)在的位置: 電子開(kāi)發(fā)網(wǎng) >> 電子開(kāi)發(fā) >> 嵌入式系統(tǒng) >> ARM >> 正文

arm架構(gòu)   ARM——體系架構(gòu)

作者:佚名    文章來(lái)源:本站原創(chuàng)    點(diǎn)擊數(shù):    更新時(shí)間:2022-05-06

arm架構(gòu),arm體系架構(gòu) 

1.ARM簡(jiǎn)介

ARM是Advanced RISC Machines的縮寫(xiě),它是一家微處理器行業(yè)的知名企業(yè),該企業(yè)設(shè)計(jì)了大量高性能、廉價(jià)、耗能低的RISC (精簡(jiǎn)指令集)處理器。公司的特點(diǎn)是只設(shè)計(jì)芯片,而不生產(chǎn)。它將技術(shù)授權(quán)給世界上許多著名的半導(dǎo)體、軟件和OEM廠商,并提供服務(wù)。

1.1 ARM(Advanced RISC Machines)的幾種含義:

1、ARM是一種RISC MPU/MCU的體系結(jié)構(gòu),如同x86架構(gòu)是一種CISC體系結(jié)構(gòu)一樣。另外,還有MIPS架構(gòu)、PowerPC架構(gòu)等等。

2、ARM是Advanced RISC Machine Limited公司的簡(jiǎn)稱(chēng)。

3、ARM是Advanced RISC Machine Limited公司的產(chǎn)品,該產(chǎn)品以IP Core(Intellectual Property Core,知識(shí)產(chǎn)權(quán)核)的形式提供的。

4、ARM還用以泛指許多半導(dǎo)體廠商買(mǎi)了這種設(shè)計(jì)后生產(chǎn)出來(lái)的“ARM處理器”系列的芯片及其衍生產(chǎn)品。

半導(dǎo)體廠商固然可以光購(gòu)買(mǎi)ARM公司的設(shè)計(jì)而直接生產(chǎn)ARM處理器芯片,但是更好的方法是以ARM處理器為核心,在同一塊芯片上配上自己開(kāi)發(fā)的外圍模塊,形成面向特定應(yīng)用和市場(chǎng)的專(zhuān)用芯片,甚至“片上系統(tǒng)(System on a Chip,SoC)”。這樣,作為專(zhuān)用處理器/控制器芯片的生產(chǎn)商既可以減少開(kāi)發(fā)中的風(fēng)險(xiǎn),又可以大大縮短開(kāi)發(fā)周期,降低成本。所以,“ARM處理器”一般是作為“內(nèi)核”存在于一些專(zhuān)用處理器/控制器的內(nèi)部,因而又常常叫做“ARM核”。特別地,如果一個(gè)處理器核不帶浮點(diǎn)運(yùn)算功能,有時(shí)候就對(duì)此特別加以強(qiáng)調(diào),稱(chēng)之為“整形核”。

1…2 ARM微處理器的特點(diǎn)

(1)ARM指令都是32位定長(zhǎng)的

(2)寄存器數(shù)量豐富(37個(gè)寄存器)

(3)普通的Load/Store指令

(4)多寄存器的Load/Store指令

(5)指令的條件執(zhí)行

(6)單時(shí)鐘周期中的單條指令完成數(shù)據(jù)移位操作和ALU操作

(7)通過(guò)變種和協(xié)處理器來(lái)擴(kuò)展ARM處理器的功能

(8)擴(kuò)展了16位的Thumb指令來(lái)提高代碼密度

ARM作為RISC微處理器與CISC微處理器技術(shù)對(duì)比如下:
 

1.3 ARM微處理器系列

 

1.3.1 Classic ARM Processors (經(jīng)典 ARM 處理器)

 • ARM11™ 系列 - 基于 ARMv6 架構(gòu)的高性能處理器
• ARM9™ 系列 - 基于 ARMv5 架構(gòu)的常用處理器
• ARM7™ 系列- 面向通用應(yīng)用的經(jīng)典處理器 
ARM 經(jīng)典處理器適用于那些希望在新應(yīng)用中使用經(jīng)過(guò)市場(chǎng)驗(yàn)證的技術(shù)的組織。這些處理器提供了許多的功能、卓越的能效和范圍廣泛的操作性能,適用于成本敏感型解決方案。這些處理器每年都有數(shù)十億的發(fā)貨量,因此可確保設(shè)計(jì)者獲得最廣泛的生態(tài)系統(tǒng)和資源,從而最大限度地減少集成過(guò)程中出現(xiàn)的問(wèn)題并縮短上市時(shí)間。

1.3.2 Embedded Cortex Processors (ARM Cortex 嵌入式處理器)
• Cortex-R 系列 - 面向?qū)崟r(shí)應(yīng)用的卓越性能
• Cortex-M 系列 - 面向具有確定性的微控制器應(yīng)用的成本敏感型解決方案
Cortex 嵌入式處理器旨在為各種不同的市場(chǎng)提供服務(wù)。

Cortex-M 系列處理器主要是針對(duì)微控制器領(lǐng)域開(kāi)發(fā)的,在該領(lǐng)域中,既需進(jìn)行快速且具有高確定性的中斷管理,又需將門(mén)數(shù)和可能功耗控制在最低。


而 Cortex-R 系列處理器的開(kāi)發(fā)則面向深層嵌入式實(shí)時(shí)應(yīng)用,對(duì)低功耗、良好的中斷行為、卓越性能以及與現(xiàn)有平臺(tái)的高兼容性這些需求進(jìn)行了平衡考慮。

• Cortex-A 系列
 

ARM編程模型

1. ARM數(shù)據(jù)類(lèi)型

(1)字(Word):在ARM體系結(jié)構(gòu)中,字的長(zhǎng)度為32位。

(2)半字(Half-Word):在ARM體系結(jié)構(gòu)中,半字的長(zhǎng)度為16位。

(3)字節(jié)(Byte):在ARM體系結(jié)構(gòu)中,字節(jié)的長(zhǎng)度為8位。

2. ARM處理器存儲(chǔ)格式

ARM體系結(jié)構(gòu)將存儲(chǔ)器看作是從0地址開(kāi)始的字節(jié)的線性組合。作為32位的微處理器,ARM體系結(jié)構(gòu)所支持的最大尋址空間為4GB。

ARM體系結(jié)構(gòu)可以用兩種方法存儲(chǔ)字?jǐn)?shù)據(jù),分別為大端模式和小端模式。

大端模式(高地高低):字的高字節(jié)存儲(chǔ)在低地址字節(jié)單元中,字的低字節(jié)存儲(chǔ)在高地址字節(jié)單元中。

小端模式(高高低低):字的高字節(jié)存儲(chǔ)在高地址字節(jié)單元中,字的低字節(jié)存儲(chǔ)在低地址字節(jié)單元中。

3. ARM處理器工作狀態(tài)

從編程的角度來(lái)看,ARM微處理器的工作狀態(tài)一般ARM和Thumb有兩種,并可在兩種狀態(tài)之間切換。

(1)ARM狀態(tài):此時(shí)處理器執(zhí)行32位的字對(duì)齊ARM指令,絕大部分工作在此狀態(tài)。

(2)Thumb狀態(tài):此時(shí)處理器執(zhí)行16位的半字對(duì)齊的Thumb指令。

4. ARM處理器工作模式

(1)用戶模式(usr,User Mode):ARM處理器正常的程序執(zhí)行狀態(tài)。

(2)快速中斷模式(fiq,F(xiàn)ast Interrupt Request Mode):用于高速數(shù)據(jù)傳輸或通道處理。當(dāng)觸發(fā)快速中斷時(shí)進(jìn)入此模式。

(3)外部中斷模式(irq,Interrupt Request Mode):用于通用的中斷處理。當(dāng)觸發(fā)外部中斷時(shí)進(jìn)入此模式。

(4)管理模式(svc,Supervisor Mode):操作系統(tǒng)使用的保護(hù)模式。在系統(tǒng)復(fù)位或執(zhí)行軟件中斷指令SWI時(shí)進(jìn)入。

(5)數(shù)據(jù)訪問(wèn)中止模式(abt,Abort Mode):當(dāng)數(shù)據(jù)或指令預(yù)取中止時(shí)進(jìn)入該模式,可用于虛擬存儲(chǔ)及存儲(chǔ)保護(hù)。

(6)系統(tǒng)模式(sys,System Mode):運(yùn)行具有特權(quán)的操作系統(tǒng)任務(wù)。

(7)未定義指令中止模式(und,Undefined Mode):當(dāng)未定義的指令執(zhí)行時(shí)進(jìn)入該模式,可用于支持硬件協(xié)處理器的軟件仿真。

除了用戶模式之外,其余六種模式都是特權(quán)模式。除了用戶模式和系統(tǒng)模式之外,其余五種模式都是異常模式。

在特權(quán)模式下程序可以訪問(wèn)所有的系統(tǒng)資源。非特權(quán)模式和特權(quán)模式之間的區(qū)別在于有些操作只能在特權(quán)模式下才被允許,例如直接改變模式和中斷使能等。而且為了保證數(shù)據(jù)安全,一般MMU會(huì)對(duì)地址空間進(jìn)行劃分,只有特權(quán)模式才能訪問(wèn)所有的地址空間。而用戶模式如果需要訪問(wèn)硬件,必須切換到特權(quán)模式下,才允許訪問(wèn)硬件。

5. ARM處理器寄存器組織

ARM共有37個(gè)32位寄存器,其中31個(gè)為通用寄存器,6個(gè)為狀態(tài)寄存器,包括R0-R15,R8_fiq-R14_fiq,R13_svc,R14_svc,R13_abt,R14_abt,R13_irq,R14_irq,R13_und,R14_und,CPSR,SPSR_fiq,SPSR_svc,SPSR_abt,SPSR_irq,SPSR_und。如圖。

通用寄存器包括R0-R15,可以分為3類(lèi):

(1)未分組寄存器R0-R7

在所有運(yùn)行模式下,未分組寄存器都指向同一個(gè)物理寄存器,他們未被系統(tǒng)用作特殊的用途。因此在中斷或異常處理進(jìn)行異常模式轉(zhuǎn)換時(shí),由于不同的處理器運(yùn)行模式均使用相同的物理寄存器,所以可能造成寄存器中數(shù)據(jù)的破壞。

(2)分組寄存器R8-R14

對(duì)于分組寄存器,他們每次所訪問(wèn)的物理寄存器都與當(dāng)前的處理器運(yùn)行模式相關(guān)。具體如上圖。

R13常用作存放堆棧指針,用戶也可以使用其他寄存器存放堆棧指針,但在Thumb指令集下,某些指令強(qiáng)制要求使用R13存放堆棧指針。

R14稱(chēng)為鏈接寄存器(LR,Link Register),當(dāng)執(zhí)行子程序時(shí),R14可得到R15(PC)的備份,執(zhí)行完子程序后,又將R14的值復(fù)制回PC,即使用R14保存返回地址。

(3)程序計(jì)數(shù)器PC(R15)

寄存器R15用作程序計(jì)數(shù)器(PC),在ARM狀態(tài)下,位[1:0]為0,位[31:2]用于保存PC;在Thumb狀態(tài)下,位[0]為0,位[31:1]用于保存PC。

由于ARM體系結(jié)構(gòu)采用了多級(jí)流水線技術(shù),對(duì)于ARM指令集而言,PC總是指向當(dāng)前指令的下兩條指令的地址,即PC的值為當(dāng)前指令的地址值加8個(gè)字節(jié)。

6. 程序狀態(tài)寄存器CPSR和SPSR

CPSR(Current Program Status Register,當(dāng)前程序狀態(tài)寄存器),CPSR可在任何運(yùn)行模式下被訪問(wèn),它包括條件標(biāo)志位、中斷禁止位、當(dāng)前處理器模式標(biāo)志位以及其他一些相關(guān)的控制和狀態(tài)位。

每一種運(yùn)行模式下都有一個(gè)專(zhuān)用的物理狀態(tài)寄存器,稱(chēng)為SPSR(Saved Program Status Register,備份的程序狀態(tài)寄存器),當(dāng)異常發(fā)生時(shí),SPSR用于保存當(dāng)前CPSR的值,從異常退出時(shí)則可由SPSR來(lái)恢復(fù)CPSR。

由于用戶模式和系統(tǒng)模式不屬于異常模式,這兩種狀態(tài)下沒(méi)有SPSR,因此在這兩種狀態(tài)下訪問(wèn)SPSR,結(jié)果是未知的。

CPSR保存數(shù)據(jù)的結(jié)構(gòu):

1)N(Negative):當(dāng)用兩個(gè)補(bǔ)碼表示的帶符號(hào)數(shù)進(jìn)行運(yùn)算時(shí),N=1表示結(jié)果為負(fù),N=0表示結(jié)果為正數(shù)或零

2)Z(Zero):Z=1表示運(yùn)算結(jié)果為0,Z=0表示運(yùn)算結(jié)果非零

3)C(Carry):有4種方法可以設(shè)置C的值:

(1)加法指令(包括比較指令CMP)

(2)當(dāng)運(yùn)算產(chǎn)生進(jìn)位時(shí)(無(wú)符號(hào)數(shù)溢出),C=1,否則C=0

(3)減法運(yùn)算(包括比較指令CMP)

(4)當(dāng)運(yùn)算產(chǎn)生了借位(無(wú)符號(hào)數(shù)溢出),C=0,否則C=1

對(duì)于包含移位操作的非加/減運(yùn)算指令,C為移出值的最后一位。對(duì)于其他的非加/減運(yùn)算指令,C的值通常不變。

4)V(Overflow):有2種方法設(shè)置V的值:

(1)對(duì)于加/減法運(yùn)算指令,當(dāng)操作數(shù)和運(yùn)算結(jié)果為二進(jìn)制的補(bǔ)碼表示的帶符號(hào)數(shù)時(shí),V=1表示符號(hào)位溢出。

(2)對(duì)于其他的非加減法運(yùn)算指令,V的值通常不變。

5)I(Interrupt Request):I=1表示禁止響應(yīng)irq,I=0表示允許響應(yīng)

6)F(Fast Interrupt Request):F=1表示禁止響應(yīng)fiq,F(xiàn)=0表示允許響應(yīng)

7)T(Thumb):T=0表示當(dāng)前狀態(tài)位ARM狀態(tài),T=1表示為T(mén)humb狀態(tài)

8)M4-M0:表示當(dāng)前處理器的工作模式,如圖:

7. 工作模式的切換

(1)執(zhí)行軟中斷(SWI)或復(fù)位命令(Reset)指令。如果在用戶模式下執(zhí)行SWI指令,CPU就進(jìn)入管理(Supervisor)模式。當(dāng)然,在其他模式下執(zhí)行SWI,也會(huì)進(jìn)入該模式,不過(guò)一般操作系統(tǒng)不會(huì)這么做,因?yàn)槌擞脩裟J綄儆诜翘貦?quán)模式,其他模式都屬于特權(quán)模式。執(zhí)行SWI指令一般是為了訪問(wèn)系統(tǒng)資源,而在特權(quán)模式下可以訪問(wèn)所有的系統(tǒng)資源。SWI指令一般用來(lái)為操作系統(tǒng)提供API接口。

(2)有外部中斷發(fā)生。如果發(fā)生了外部中斷,CPU就會(huì)進(jìn)入IRQ或FIQ模式。

(3)CPU執(zhí)行過(guò)程中產(chǎn)生異常。最典型的異常是由于MMU保護(hù)所引起的內(nèi)存訪問(wèn)異常,此時(shí)CPU會(huì)切換到Abort模式。如果是無(wú)效指令,則會(huì)進(jìn)入U(xiǎn)ndefined模式。

(4)有一種模式是CPU無(wú)法自動(dòng)進(jìn)入的,這種模式就是System模式,要進(jìn)入System模式必須由程序員編寫(xiě)指令來(lái)實(shí)現(xiàn)。要進(jìn)入System模式只需改變CPSR的模式位為System模式對(duì)應(yīng)的模式位即可。進(jìn)入System模式一般是為了利用System模式和用戶模式下的寄存器相同的特點(diǎn),因此一般情況下,操作系統(tǒng)在通過(guò)SWI進(jìn)入Supervisor模式后,做一些操作后,就進(jìn)入System模式。

(5)在任何特權(quán)模式下,都可以通過(guò)修改CPSR的MODE域來(lái)進(jìn)入其他模式。不過(guò)需要注意的是由于修改的CPSR是該模式下的影子CPSR,即SPSR,因此并不是實(shí)際的CPSR,所以一般的做法是修改影子CPSR,然后執(zhí)行一個(gè)MOVS指令來(lái)恢復(fù)執(zhí)行某個(gè)斷點(diǎn)并切換到新模式。

Tags:arm,架構(gòu)  
責(zé)任編輯:admin
請(qǐng)文明參與討論,禁止漫罵攻擊,不要惡意評(píng)論、違禁詞語(yǔ)。 昵稱(chēng):
1分 2分 3分 4分 5分

還可以輸入 200 個(gè)字
[ 查看全部 ] 網(wǎng)友評(píng)論
關(guān)于我們 - 聯(lián)系我們 - 廣告服務(wù) - 友情鏈接 - 網(wǎng)站地圖 - 版權(quán)聲明 - 在線幫助 - 文章列表
返回頂部
刷新頁(yè)面
下到頁(yè)底
晶體管查詢