<li id="8g3ty"><tbody id="8g3ty"><th id="8g3ty"></th></tbody></li>
    <label id="8g3ty"><samp id="8g3ty"></samp></label>
  • <span id="8g3ty"></span>

    1. <center id="8g3ty"><optgroup id="8g3ty"></optgroup></center>
    2. <bdo id="8g3ty"><meter id="8g3ty"><bdo id="8g3ty"></bdo></meter></bdo><center id="8g3ty"><optgroup id="8g3ty"></optgroup></center>
      <label id="8g3ty"><samp id="8g3ty"></samp></label>

    3. 電子開發(fā)網(wǎng)

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

      arm架構   ARM——體系架構

      作者:佚名    文章來源:本站原創(chuàng)    點擊數(shù):    更新時間:2022/5/6

      arm架構,arm體系架構 

      1.ARM簡介

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

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

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

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

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

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

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

      1…2 ARM微處理器的特點

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

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

      (3)普通的Load/Store指令

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

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

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

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

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

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

      1.3 ARM微處理器系列

       

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

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

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

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

      • Cortex-A 系列
       

      ARM編程模型

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

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

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

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

      2. ARM處理器存儲格式

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

      ARM體系結構可以用兩種方法存儲字數(shù)據(jù),分別為大端模式和小端模式。

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

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

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

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

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

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

      4. ARM處理器工作模式

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

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

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

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

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

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

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

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

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

      5. ARM處理器寄存器組織

      ARM共有37個32位寄存器,其中31個為通用寄存器,6個為狀態(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類:

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

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

      (2)分組寄存器R8-R14

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

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

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

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

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

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

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

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

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

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

      CPSR保存數(shù)據(jù)的結構:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      7. 工作模式的切換

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

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

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

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

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

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

      還可以輸入 200 個字
      [ 查看全部 ] 網(wǎng)友評論
      關于我們 - 聯(lián)系我們 - 廣告服務 - 友情鏈接 - 網(wǎng)站地圖 - 版權聲明 - 在線幫助 - 文章列表
      返回頂部
      刷新頁面
      下到頁底
      晶體管查詢
      主站蜘蛛池模板: 亚洲免费综合色在线视频| 狠狠色狠狠色综合日日五| 色悠久久久久综合网香蕉| 色综合网天天综合色中文男男| 亚洲欧洲日韩国产综合在线二区| 亚洲色欲www综合网| 精品综合久久久久久99| 国产色婷婷五月精品综合在线| 久久久久AV综合网成人| 婷婷丁香五月天综合东京热| 一本一道久久a久久精品综合 | 色综合天天综合网国产成人网| 亚洲国产品综合人成综合网站| 色噜噜狠狠狠狠色综合久不| 亚洲色欲久久久综合网东京热| 99久久综合精品五月天| 国产成人亚洲综合无码精品| 色婷婷综合中文久久一本| 久久婷婷色综合一区二区| 亚洲欧洲国产综合AV无码久久 | 久久综合久久久久| 五月丁香六月综合缴清无码| 国产成人综合久久综合| 久久91综合国产91久久精品| 亚洲欧洲国产成人综合在线观看| 亚洲国产精品综合福利专区| 国产成人综合亚洲AV第一页| 国产精品激情综合久久| 久久综合九色综合久99| 亚洲综合精品成人| 97se色综合一区二区二区| 亚洲综合色区中文字幕| 久久99国产综合精品免费| 久久综合国产乱子伦精品免费| 亚洲人成依人成综合网| 亚洲综合图片小说区热久久| 伊色综合久久之综合久久| 亚洲综合激情五月丁香六月| 人人婷婷色综合五月第四人色阁| 激情综合婷婷丁香五月蜜桃| 精品亚洲综合在线第一区|