18luck网站

18luck网站電子設計 | 18luck网站Rss 2.0 會員中心 會員注冊
搜索: 您現在的位置: 18luck网站 >> 18luck平台 >> 嵌入式係統 >> ARM >> 正文

arm架構   ARM——體係架構

作者:佚名    文章來源:本站原創    點擊數:    更新時間:2022-05-06

arm架構,arm體(ti) 

1.ARM簡介

ARM是Advanced RISC Machines的縮寫(xie) ,它是一家微處理器行業(ye) 的知名企業(ye) ,該企業(ye) 設計了大量高性能、廉價(jia) 、耗能低的RISC (精簡指令集)處理器。公司的特點是隻設計芯片,而不生產(chan) 。它將技術授權給世界上許多著名的半導體(ti) 、軟件和OEM廠商,並提供服務。

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

1、ARM是一種RISC MPU/MCU的體(ti) 係結構,如同x86架構是一種CISC體(ti) 係結構一樣。另外,還有MIPS架構、PowerPC架構等等。

2、ARM是Advanced RISC Machine Limited公司的簡稱。

3、ARM是Advanced RISC Machine Limited公司的產(chan) 品,該產(chan) 品以IP Core(Intellectual Property Core,知識產(chan) 權核)的形式提供的。

4、ARM還用以泛指許多半導體(ti) 廠商買(mai) 了這種設計後生產(chan) 出來的“ARM處理器”係列的芯片及其衍生產(chan) 品。

半導體(ti) 廠商固然可以光購買(mai) ARM公司的設計而直接生產(chan) ARM處理器芯片,但是更好的方法是以ARM處理器為(wei) 核心,在同一塊芯片上配上自己開發的外圍模塊,形成麵向特定應用和市場的專(zhuan) 用芯片,甚至“片上係統(System on a Chip,SoC)”。這樣,作為(wei) 專(zhuan) 用處理器/控製器芯片的生產(chan) 商既可以減少開發中的風險,又可以大大縮短開發周期,降低成本。所以,“ARM處理器”一般是作為(wei) “內(nei) 核”存在於(yu) 一些專(zhuan) 用處理器/控製器的內(nei) 部,因而又常常叫做“ARM核”。特別地,如果一個(ge) 處理器核不帶浮點運算功能,有時候就對此特別加以強調,稱之為(wei) “整形核”。

1…2 ARM微處理器的特點

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

(2)寄存器數量豐(feng) 富(37個(ge) 寄存器)

(3)普通的Load/Store指令

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

(5)指令的條件執行

(6)單時鍾周期中的單條指令完成數據移位操作和ALU操作

(7)通過變種和協處理器來擴展ARM處理器的功能

(8)擴展了16位的Thumb指令來提高代碼密度

ARM作為(wei) RISC微處理器與(yu) CISC微處理器技術對比如下:
 

1.3 ARM微處理器係列

 

1.3.1 Classic ARM Processors (經典 ARM 處理器)

• ARM11™ 係列 - 基於(yu) ARMv6 架構的高性能處理器 • ARM9™ 係列 - 基於(yu) ARMv5 架構的常用處理器 • ARM7™ 係列- 麵向通用應用的經典處理器 ARM 經典處理器適用於(yu) 那些希望在新應用中使用經過市場驗證的技術的組織。這些處理器提供了許多的功能、卓越的能效和範圍廣泛的操作性能,適用於(yu) 成本敏感型解決(jue) 方案。這些處理器每年都有數十億(yi) 的發貨量,因此可確保設計者獲得最廣泛的生態係統和資源,從(cong) 而最大限度地減少集成過程中出現的問題並縮短上市時間。

1.3.2 Embedded Cortex Processors (ARM Cortex 嵌入式處理器)
• Cortex-R 係列 - 麵向實時應用的卓越性能
• Cortex-M 係列 - 麵向具有確定性的微控製器應用的成本敏感型解決(jue) 方案
Cortex 嵌入式處理器旨在為(wei) 各種不同的市場提供服務。

Cortex-M 係列處理器主要是針對微控製器領域開發的,在該領域中,既需進行快速且具有高確定性的中斷管理,又需將門數和可能功耗控製在最低。 而 Cortex-R 係列處理器的開發則麵向深層嵌入式實時應用,對低功耗、良好的中斷行為(wei) 、卓越性能以及與(yu) 現有平台的高兼容性這些需求進行了平衡考慮。

• Cortex-A 係列
 

ARM編程模型

1. ARM數據類型

(1)字(Word):在ARM體(ti) 係結構中,字的長度為(wei) 32位。

(2)半字(Half-Word):在ARM體(ti) 係結構中,半字的長度為(wei) 16位。

(3)字節(Byte):在ARM體(ti) 係結構中,字節的長度為(wei) 8位。

2. ARM處理器存儲格式

ARM體(ti) 係結構將存儲(chu) 器看作是從(cong) 0地址開始的字節的線性組合。作為(wei) 32位的微處理器,ARM體(ti) 係結構所支持的最大尋址空間為(wei) 4GB。

ARM體(ti) 係結構可以用兩(liang) 種方法存儲(chu) 字數據,分別為(wei) 大端模式和小端模式。

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

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

3. ARM處理器工作狀態

從(cong) 編程的角度來看,ARM微處理器的工作狀態一般ARM和Thumb有兩(liang) 種,並可在兩(liang) 種狀態之間切換。

(1)ARM狀態:此時處理器執行32位的字對齊ARM指令,絕大部分工作在此狀態。

(2)Thumb狀態:此時處理器執行16位的半字對齊的Thumb指令。

4. ARM處理器工作模式

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

(2)快速中斷模式(fiq,Fast Interrupt Request Mode):用於(yu) 高速數據傳(chuan) 輸或通道處理。當觸發快速中斷時進入此模式。

(3)外部中斷模式(irq,Interrupt Request Mode):用於(yu) 通用的中斷處理。當觸發外部中斷時進入此模式。

(4)管理模式(svc,Supervisor Mode):操作係統使用的保護模式。在係統複位或執行軟件中斷指令SWI時進入。

(5)數據訪問中止模式(abt,Abort Mode):當數據或指令預取中止時進入該模式,可用於(yu) 虛擬存儲(chu) 及存儲(chu) 保護。

(6)係統模式(sys,System Mode):運行具有特權的操作係統任務。

(7)未定義(yi) 指令中止模式(und,Undefined Mode):當未定義(yi) 的指令執行時進入該模式,可用於(yu) 支持硬件協處理器的軟件仿真。

除了用戶模式之外,其餘(yu) 六種模式都是特權模式。除了用戶模式和係統模式之外,其餘(yu) 五種模式都是異常模式。

在特權模式下程序可以訪問所有的係統資源。非特權模式和特權模式之間的區別在於(yu) 有些操作隻能在特權模式下才被允許,例如直接改變模式和中斷使能等。而且為(wei) 了保證數據安全,一般MMU會(hui) 對地址空間進行劃分,隻有特權模式才能訪問所有的地址空間。而用戶模式如果需要訪問硬件,必須切換到特權模式下,才允許訪問硬件。

5. ARM處理器寄存器組織

ARM共有37個(ge) 32位寄存器,其中31個(ge) 為(wei) 通用寄存器,6個(ge) 為(wei) 狀態寄存器,包括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,可以分為(wei) 3類:

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

在所有運行模式下,未分組寄存器都指向同一個(ge) 物理寄存器,他們(men) 未被係統用作特殊的用途。因此在中斷或異常處理進行異常模式轉換時,由於(yu) 不同的處理器運行模式均使用相同的物理寄存器,所以可能造成寄存器中數據的破壞。

(2)分組寄存器R8-R14

對於(yu) 分組寄存器,他們(men) 每次所訪問的物理寄存器都與(yu) 當前的處理器運行模式相關(guan) 。具體(ti) 如上圖。

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

R14稱為(wei) 鏈接寄存器(LR,Link Register),當執行子程序時,R14可得到R15(PC)的備份,執行完子程序後,又將R14的值複製回PC,即使用R14保存返回地址。

(3)程序計數器PC(R15)

寄存器R15用作程序計數器(PC),在ARM狀態下,位[1:0]為(wei) 0,位[31:2]用於(yu) 保存PC;在Thumb狀態下,位[0]為(wei) 0,位[31:1]用於(yu) 保存PC。

由於(yu) ARM體(ti) 係結構采用了多級流水線技術,對於(yu) ARM指令集而言,PC總是指向當前指令的下兩(liang) 條指令的地址,即PC的值為(wei) 當前指令的地址值加8個(ge) 字節。

6. 程序狀態寄存器CPSR和SPSR

CPSR(Current Program Status Register,當前程序狀態寄存器),CPSR可在任何運行模式下被訪問,它包括條件標誌位、中斷禁止位、當前處理器模式標誌位以及其他一些相關(guan) 的控製和狀態位。

每一種運行模式下都有一個(ge) 專(zhuan) 用的物理狀態寄存器,稱為(wei) SPSR(Saved Program Status Register,備份的程序狀態寄存器),當異常發生時,SPSR用於(yu) 保存當前CPSR的值,從(cong) 異常退出時則可由SPSR來恢複CPSR。

由於(yu) 用戶模式和係統模式不屬於(yu) 異常模式,這兩(liang) 種狀態下沒有SPSR,因此在這兩(liang) 種狀態下訪問SPSR,結果是未知的。

CPSR保存數據的結構:

1)N(Negative):當用兩(liang) 個(ge) 補碼表示的帶符號數進行運算時,N=1表示結果為(wei) 負,N=0表示結果為(wei) 正數或零

2)Z(Zero):Z=1表示運算結果為(wei) 0,Z=0表示運算結果非零

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

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

(2)當運算產(chan) 生進位時(無符號數溢出),C=1,否則C=0

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

(4)當運算產(chan) 生了借位(無符號數溢出),C=0,否則C=1

對於(yu) 包含移位操作的非加/減運算指令,C為(wei) 移出值的最後一位。對於(yu) 其他的非加/減運算指令,C的值通常不變。

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

(1)對於(yu) 加/減法運算指令,當操作數和運算結果為(wei) 二進製的補碼表示的帶符號數時,V=1表示符號位溢出。

(2)對於(yu) 其他的非加減法運算指令,V的值通常不變。

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

6)F(Fast Interrupt Request):F=1表示禁止響應fiq,F=0表示允許響應

7)T(Thumb):T=0表示當前狀態位ARM狀態,T=1表示為(wei) Thumb狀態

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

7. 工作模式的切換

(1)執行軟中斷(SWI)或複位命令(Reset)指令。如果在用戶模式下執行SWI指令,CPU就進入管理(Supervisor)模式。當然,在其他模式下執行SWI,也會(hui) 進入該模式,不過一般操作係統不會(hui) 這麽(me) 做,因為(wei) 除了用戶模式屬於(yu) 非特權模式,其他模式都屬於(yu) 特權模式。執行SWI指令一般是為(wei) 了訪問係統資源,而在特權模式下可以訪問所有的係統資源。SWI指令一般用來為(wei) 操作係統提供API接口。

(2)有外部中斷發生。如果發生了外部中斷,CPU就會(hui) 進入IRQ或FIQ模式。

(3)CPU執行過程中產(chan) 生異常。最典型的異常是由於(yu) MMU保護所引起的內(nei) 存訪問異常,此時CPU會(hui) 切換到Abort模式。如果是無效指令,則會(hui) 進入Undefined模式。

(4)有一種模式是CPU無法自動進入的,這種模式就是System模式,要進入System模式必須由程序員編寫(xie) 指令來實現。要進入System模式隻需改變CPSR的模式位為(wei) System模式對應的模式位即可。進入System模式一般是為(wei) 了利用System模式和用戶模式下的寄存器相同的特點,因此一般情況下,操作係統在通過SWI進入Supervisor模式後,做一些操作後,就進入System模式。

(5)在任何特權模式下,都可以通過修改CPSR的MODE域來進入其他模式。不過需要注意的是由於(yu) 修改的CPSR是該模式下的影子CPSR,即SPSR,因此並不是實際的CPSR,所以一般的做法是修改影子CPSR,然後執行一個(ge) MOVS指令來恢複執行某個(ge) 斷點並切換到新模式。

Tags:arm,架構  
責任編輯:admin
  • 上一篇文章:
  • 下一篇文章:
  • 請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
    1分 2分 3分 4分 5分

    還可以輸入 200 個字
    [ 查看全部 ] 網友評論
    關於我們 - 聯係我們 - 廣告服務 - 友情鏈接 - 網站地圖 - 版權聲明 - 在線幫助 - 文章列表
    返回頂部
    刷新頁麵
    下到頁底
    晶體管查詢