什么叫arm架構
ARM架構過去稱作進階精簡指令集機器(AdvancedRISCMachine,更早稱作:AcornRISCMachine),是一個32位精簡指令集(RISC)處理器架構,其廣泛地使用在許多嵌入式系統設計。
由于節能的特點,ARM處理器非常適用于移動通訊領域,符合其主要設計目標為低耗電的特性。
在今日,ARM家族占了所有32位嵌入式處理器75%的比例,使它成為占全世界最多數的32位架構之一。ARM處理器可以在很多消費性電子產品上看到,從可攜式裝置(PDA、移動電話、多媒體播放器、掌上型電子游戲,和計算機)到電腦外設(硬盤、桌上型路由器)甚至在導彈的彈載計算機等軍用設施中都有他的存在。在此還有一些基于ARM設計的派生產品,重要產品還包括Marvell的XScale架構和德州儀器的OMAP系列。
ARM架構圖
下圖所示的是ARM構架圖。它由32位ALU、若干個32位通用寄存器以及狀態寄存器、32&TImes;8位乘法器、32&TImes;32位桶形移位寄存器、指令譯碼以及控制邏輯、指令流水線和數據/地址寄存器組成。
1
ALU:
它有兩個操作數鎖存器、加法器、邏輯功能、結果以及零檢測邏輯構成。
2
桶形移位寄存器:
ARM采用了32&TImes;32位的桶形移位寄存器,這樣可以使在左移/右移n位、環移n位和算術右移n位等都可以一次完成。
3
高速乘法器:
乘法器一般采用“加一移位”的方法來實現乘法。ARM為了提高運算速度,則采用兩位乘法的方法,根據乘數的2位來實現“加一移位”運算;ARM高速乘法器采用32&TImes;8位的結構,這樣,可以降低集成度(其相應芯片面積不到并行乘法器的1/3)。
4
浮點部件:
浮點部件是作為選件供ARM構架使用。FPA10浮點加速器是作為協處理方式與ARM相連,并通過協處理指令的解釋來執行。
5
控制器:
ARM的控制器采用的是硬接線的可編程邏輯陣列PLA。
6
寄存器:
除了用戶模式之外的其他6種處理器模式稱為特權模式(PrivilegedModes)。在這些模式下,程序可以訪問所有的系統資源,也可以任意地進行處理器模式的切換。其中,除系統模式外,其他5種特權模式又稱為異常模式。
處理器模式可以通過軟件控制進行切換,也可以通過外部中斷或異常處理過程進行切換。大多數的用戶程序運行在用戶模式下,這時,應用程序不能夠訪問一些受操作系統保護的系統資源,應用程序也不能直接進行處理器模式的切換。當需要進行處理器模式的切換時,應用程序可以產生異常處理,在異常處理過程中進行模式的切換。這種體系結構可以使操作系統控制整個系統的資源。
當應用程序發生異常中斷時,處理器進入相應的異常模式。在每一種異常模式中都有一組寄存器,供相應的異常處理程序使用,這樣就可以保證在進入異常模式時,用戶模式下的寄存器(保證了程序運行狀態)不被破壞。
系統模式并不是通過異常過程進入的,它和用戶模式具有完全一樣的寄存器。但是系統模式屬于特權模式,可以訪問所有的系統資源,也可以直接進行處理器模式的切換。它主要供操作系統任務使用。通常操作系統的任務需要訪問所有的系統資源,同時該任務仍然使用用戶模式下的寄存器組,而不是使用異常模式下相應的寄存器組,這樣可以保證當異常中斷發生時任務狀態不被破壞
ARM的技術實現
要想深入理解ARM的實現原理是個很大的學習工程,這里一樣希望讀者讀后能對ARM起到一個總體的認識,后續可以進一步的深入學習。我們先以ARM匯編基礎來展開這一章的chat。
匯編語言是機器代碼上的一個薄的語法層,它由以二進制編碼的指令組成,這是我們的計算機所理解。那么為什么我們不寫代碼呢?可想而知以二進制來進行coding的話是多么的痛苦,因此我們將編寫ARM程序集。
但是計算機本身只識別機器碼是不能運行匯編代碼的,這就需要將匯編代碼裝到機器代碼中的工具GNUBinutils項目中的GNUAssembler。一旦用擴展名*.s編寫程序就需要把它與其進行組合并與ld鏈接起來:
我們從最底層來看下,在最底層,電路上有電信號,信號是將電壓切換為兩個電平來形成的,例如0伏(關)或5伏(開)。
因為只是我們不能輕易的告訴電路電壓,只能選擇使用1/0來寫入開/關的模式,然后我們對0和1的順序進行分組,以形成機器碼指令,該指令是計算機處理器的最小工作單元,以下是機器語言的示例:
我們知道ARM處理器只能對寄存器執行數據處理,所以與存儲器的交互有兩種:從存儲器加載到寄存器,并將值從寄存器存儲到存儲器,即ARM使用加載/存儲(LDR和STR)模型進行內存訪問。
通常LDR用于將內存中的內容加載到寄存器中,STR用于存儲寄存器中的內容到存儲器地址。我們來舉一個基本例子:
第一看的小伙伴或許會一頭霧水,下面以一張圖來解釋下ARM是如何和存儲器交互的:
X86架構工業電腦與ARM架構工業電腦
的區別
1
性能:
X86架構的工業電腦比ARM架構的工業電腦在性能方面要快得多、強得多。ARM的優勢在于效率,ARM采用RISC流水線指令集,在完成綜合性工作處于劣勢,而在任務相對固定的應用場合其優勢就能發揮得淋漓盡致。
2
擴展能力:
X86架構的工業電腦采用“橋”的方式與擴展設備(如硬盤、內存等)進行連接,且X86架構的工業電腦能很容易進行性能擴展,如增加內存、硬盤等。
ARM架構的工業電腦是通過專用的數據接口使CPU與數據存儲設備進行連接,所以ARM的存儲、內存等性能擴展難以進行(一般在產品設計時已經定好其內存及數據存儲的容量),所以采用ARM架構的工業電腦,一般不考慮擴展。
3
操作系統的兼容性:
幾乎所有X86硬件平臺都可以直接使用微軟的視窗系統及現在流行的幾乎所有工具軟件,所以X86系統在兼容性方面具有無可比擬的優勢。
ARM幾乎都采用Linux的操作系統,而且幾乎所有的硬件系統都要單獨構建自己的系統,與其他系統不能兼容,這也導致其應用軟件不能方便移植,也制約了ARM的發展和應用。Android系統開發后,統一了ARM架構電腦的操作系統,使新推出基于ARM架構的電腦系統有了統一的、開放式的、免費的操作系統,為ARM的發展提供了強大的支持和動力。
4
軟件開發的方便性及可使用工具的多樣性:
在軟件開發方面,X86架構比ARM架構更容易、更簡單、實際成本也更低,同時更容易找到第三方軟件(免去自己開發的時間和成本),而且軟件移植更容易。
5
功耗:
在服務器、工作站以及其他高性能運算等應用方面,不考慮功耗和使用環境等條件,X86占了優絕對優勢;但受功耗、環境等條件制約且工作任務固定的情況下ARM就占有很大的優勢。
-
ARM
+關注
關注
134文章
9087瀏覽量
367395 -
寄存器
+關注
關注
31文章
5336瀏覽量
120235 -
匯編語言
+關注
關注
14文章
409瀏覽量
35793
原文標題:什么叫arm架構?X86架構與ARM架構有什么區別
文章出處:【微信號:WW_CGQJS,微信公眾號:傳感器技術】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論