ARM架構過去稱作進階精簡指令集機器(AdvancedRISCMachine,更早稱作:AcornRISCMachine),是一個32位精簡指令集(RISC)處理器架構,其廣泛地使用在許多嵌入式系統設計。由于節(jié)能的特點,ARM處理器非常適用于移動通訊領域,符合其主要設計目標為低耗電的特性。在今日,ARM家族占了所有32位嵌入式處理器75%的比例,使它成為占全世界最多數的32位架構之一。ARM處理器可以在很多消費性電子產品上看到,從可攜式裝置(PDA、移動電話、多媒體播放器、掌上型電子游戲,和計算機)到電腦外設(硬盤、桌上型路由器)甚至在導彈的彈載計算機等軍用設施中都有他的存在。在此還有一些基于ARM設計的派生產品,重要產品還包括Marvell的XScale架構和德州儀器的OMAP系列。
一 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ā)的外圍模塊,形成面向特定應用和市場的專用芯片,甚至“片上系統(System on a Chip,SoC)”。這樣,作為專用處理器/控制器芯片的生產商既可以減少開發(fā)中的風險,又可以大大縮短開發(fā)周期,降低成本。所以,“ARM處理器”一般是作為“內核”存在于一些專用處理器/控制器的內部,因而又常常叫做“ARM核”。特別地,如果一個處理器核不帶浮點運算功能,有時候就對此特別加以強調,稱之為“整形核”。
它由32位ALU、若干個32位通用寄存器以及狀態(tài)寄存器、32×8位乘法器、32×32位桶形移位寄存器、指令譯碼以及控制邏輯、指令流水線和數據/地址寄存器組成。1.ALU:它有兩個操作數鎖存器、加法器、邏輯功能、結果以及零檢測邏輯構成。2.桶形移位寄存器:ARM采用了32×32位的桶形移位寄存器,這樣可以使在左移/右移n位、環(huán)移n位和算術右移n位等都可以一次完成。3.高速乘法器:乘法器一般采用“加一移位”的方法來實現乘法。ARM為了提高運算速度,則采用兩位乘法的方法,根據乘數的2位來實現“加一移位”運算;ARM高速乘法器采用32×8位的結構,這樣,可以降低集成度(其相應芯片面積不到并行乘法器的1/3)。4.浮點部件:浮點部件是作為選件供ARM構架使用。FPA10浮點加速器是作為協處理方式與ARM相連,并通過協處理指令的解釋來執(zhí)行。5.控制器:ARM的控制器采用的是硬接線的可編程邏輯陣列PLA。6.寄存器除了用戶模式之外的其他6種處理器模式稱為特權模式(PrivilegedModes)。在這些模式下,程序可以訪問所有的系統資源,也可以任意地進行處理器模式的切換。其中,除系統模式外,其他5種特權模式又稱為異常模式。
ARM處理器還有一些在其他RISC的架構所不常見到的特色,例如PC-相對尋址(的確在ARM上PC為16個暫存器的其中一個)以及 前遞加或后遞加的尋址模式。另外一些注意事項是 ARM 處理器會隨著時間,不斷地增加它的指令集。某些早期的 ARM 處理器(比ARM7TDMI更早),譬如可能并未具備指令可以讀取兩 Bytes 的數量,因此,嚴格來講,對這些處理器產生程式碼時,就不可能處理如 C 語言物件中使用 "volatile short" 的資料型態(tài)。
ARM7 和大多數較早的設計具備三階段的流水線化(Pipeline):提取指令、解碼,并執(zhí)行。較高效能的設計,如 ARM9,則有五階段的流水線化。提高效能的額外方式,包含一顆較快的加法器,和更廣的分支預測邏輯線路。這個架構使用“協處理器”提供一種非侵入式的方法來延伸指令集,可透過軟件下 MCR、MRC、MRRC和MCRR 等指令來對協處理器尋址。協處理器空間邏輯上通常分成16個協處理器,編號分別從 0 至 15 ,而第15號協處理器(CP15)是保留用作某些常用的控制功能,像是使用高速緩存和記憶管理單元運算(若包含于處理器時)。





