導航:首頁 > 源碼編譯 > arm指令編譯後是多少位

arm指令編譯後是多少位

發布時間:2023-10-21 05:20:40

A. ARM的概念

概述

ARM(Advanced RISC Machines)處理器是Acorn計算機有限公司面向低預算市場設計的第一款RISC微處理器。更早稱作Acorn RISC Machine。
ARM處理器本身是32位設計,但也配備16位指令集。一般來講比等價32位代碼節省達35%,卻能保留32位系統的所有優勢。
ARM的Jazelle技術使Java加速得到比基於軟體的Java虛擬機(JVM)高得多的性能,和同等的非Java加速核相比功耗降低80%。CPU功能上增加DSP指令集提供增強的16位和32位算術運算能力,提高了性能和靈活性。ARM還提供兩個前沿特性來輔助帶深嵌入處理器的高集成SoC器件的調試,它們是嵌入式ICE-RT邏輯和嵌入式跟蹤宏核(ETMS)系列。
編輯本段
特點

ARM處理器的三大特點是:耗電少功能強、16位/32位雙指令集和合作夥伴眾多。
1、體積小、低功耗、低成本、高性能;
2、支持Thumb(16位)/ARM(32位)雙指令集,能很好的兼容8位/16位器件;
3、大量使用寄存器,指令執行速度更快;
4、大多數數據操作都在寄存器中完成;
5、定址方式靈活簡單,執行效率高;
6、指令長度固定。
編輯本段
結構

體系結構
1 CISC(ComplexInstructionSetComputer,復雜指令集計算機)
在CISC指令集的各種指令中,大約有20%的指令會被反復使用,占整個程序代碼的80%。而餘下的80%的指令卻不經常使用,在程序設計中只佔20%。
2 RISC(RecedInstructionSetComputer,精簡指令集計算機)
RISC結構優先選取使用頻最高的簡單指令,避免復雜指令;將指令長度固定,指令格式和定址方式種類減少;以控制邏輯為主,不用或少用微碼控制等
RISC體系結構應具有如下特點:
1採用固定長度的指令格式,指令歸整、簡單、基本定址方式有2~3種。
2使用單周期指令,便於流水線操作執行。
3大量使用寄存器,數據處理指令只對寄存器進行操作,只有載入/存儲指令可以訪問存儲器,以提高指令的執行效率。
除此以外,ARM體系結構還採用了一些特別的技術,在保證高性能的前提下盡量縮小晶元的面積,並降低功耗:
4所有的指令都可根據前面的執行結果決定是否被執行,從而提高指令的執行效率。
5可用載入/存儲指令批量傳輸數據,以提高數據的傳輸效率。
6可在一條數據處理指令中同時完成邏輯處理和移位處理。
7在循環處理中使用地址的自動增減來提高運行效率。
寄存器結構
ARM處理器共有37個寄存器,被分為若干個組(BANK),這些寄存器包括:
131個通用寄存器,包括程序計數器(PC指針),均為32位的寄存器。
26個狀態寄存器,用以標識CPU的工作狀態及程序的運行狀態,均為32位,目前只使用了其中的一部分。
指令結構
ARM微處理器的在較新的體系結構中支持兩種指令集:ARM指令集和Thumb指令集。其中,ARM指令為32位的長度,Thumb指令為16位長度。Thumb指令集為ARM指令集的功能子集,但與等價的
ARM代碼相比較,可節省30%~40%以上的存儲空間,同時具備32位代碼的所有優點。
編輯本段
ARM處理器模式

處理器模式 說明
用戶模式(usr) ARM處理器正常的程序執行狀態
系統模式(sys) 運行具有特權的操作系統任務
快中斷模式(fiq) 支持高速數據傳輸或通道處理
管理模式(svc) 操作系統保護模式
數據訪問終止模式(abt) 用於虛擬存儲器及存儲器保護
中斷模式(irq) 用於通用的中斷處理
未定義指令終止模式(und) 支持硬體協處理器的軟體模擬
除用戶模式外,其餘6種模式稱為非用戶模式或特權模式;用戶模式和系統模式之外的5種模式稱為異常模式。ARM處理器的運行模式可以通過軟體改變,也可以通過外部中斷或異常處理改變。
編輯本段
體系結構擴充

當前ARM體系結構的擴充包括:
·Thumb 16位指令集,為了改善代碼密度;
·DSP DSP應用的算術運算指令集;
·Jazeller 允許直接執行Java位元組碼。
ARM處理器系列提供的解決方案有:
·無線、消費類電子和圖像應用的開放平台;
·存儲、自動化、工業和網路應用的嵌入式實時系統;
·智能卡和SIM卡的安全應用。
編輯本段
歷史

1978年12月5日,物理學家赫爾曼·豪澤(Hermann Hauser)和工程師Chris Curry,在英國劍橋創辦了CPU公司(Cambridge Processing Unit),主要業務是為當地市場供應電子設備。1979年,CPU公司改名為Acorn計算機公司。
起初,Acorn公司打算使用摩托羅拉公司的16位晶元,但是發現這種晶元太慢也太貴。"一台售價500英鎊的機器,不可能使用價格100英鎊的CPU!"他們轉而向Intel公司索要80286晶元的設計資料,但是遭到拒絕,於是被迫自行研發。
1985年,Roger Wilson和Steve Furber設計了他們自己的第一代32位、6M Hz的處理器, Roger Wilson和Steve Furber[1]用它做出了一台RISC指令集的計算機,簡稱ARM(Acorn RISC Machine)。這就是ARM這個名字的由來。
RISC的全稱是"精簡指令集計算機"(reced instruction set computer),它支持的指令比較簡單,所以功耗小、價格便宜,特別合適移動設備。早期使用ARM晶元的典型設備,就是蘋果公司的牛頓PDA。
20世紀80年代後期,ARM很快開發成Acorn的台式機產品,形成英國的計算機教育基礎。
1990年11月27日,Acorn公司正式改組為ARM計算機公司。蘋果公司出資150萬英鎊,晶元廠商VLSI出資25萬英鎊,Acorn本身則以150萬英鎊的知識產權和12名工程師入股。公司的辦公地點非常簡陋,就是一個谷倉。 20世紀90年代,ARM 32位嵌入式RISC(Reced lnstruction Set Computer)處理器擴展到世界范圍,占據了低功耗、低成本和高性能的嵌入式系統應用領域的領先地位。ARM公司既不生產晶元也不銷售晶元,它只出售晶元技術授權。
編輯本段
市場前景

微軟公司(2011年)宣布,下一版Windows將正式支持ARM處理器。這是計算機工業 arm處理器[2]發展歷史上的一件大事,標識著x86處理器的主導地位發生動搖。目前在移動設備市場,ARM處理器的市場份額超過90%;在伺服器市場,今年(2011年)就會有2.5GHz的伺服器上市;在桌面電腦市場,現在又有了微軟的支持。ARM成為主流,恐怕指日可待。難怪有人驚呼,Intel公司將被擊敗!
與這場轟轟烈烈的變革相比,它的主角ARM公司卻沒有受到太多的關注,顯得不太起眼。這家遠離矽谷、位於劍橋大學的英國公司,到底是怎麼走到今天的,居然能將晶元巨人Intel拉下馬?
展望未來,即使Intel成功地實施了Atom戰略,將x86晶元的功耗和價格大大降低,它與ARM競爭也將非常吃力。因為ARM的商業模式是開放的,任何廠商都可以購買授權,所以未來並不是Intel vs. ARM,而是Intel vs. 世界上所有其他半導體公司。那樣的話,Intel的勝算能有多少呢?

B. ARM指令的一般編碼格式如下

你這個是ARM7CPU的指令碼格式,早期的ARM架構,是ARMV4T,而且只是其數據處理類指令的指令編碼格式(4位編碼,配合這其餘位,如I位,Rn,Rm,第二操作數等編碼位,可以編碼出很多條數據處理指令。)。所以說,並不是25-27位沒有使用。在其它類型的指令中就有使用25-27,如圖2.

圖2 ARM7 CPU的單位元組傳輸(LAD,STR)指令編碼格式

具體請自己查找官方手冊,在arm官網可以找到對應資料。

ARM 體系結構參考手冊ARMv7-A和ARMv7-R版:DDI0406C_C_arm_architecture_reference_manual.pdf 的A5章節,193頁起都是講這個的。

C. 關於ARM架構的一些知識

[TOC]

ARMv7 含16位和32位兩個指令集;
ARMv8 含32位和64位兩個指令集,ARM沒有64位技術,它是在 MIPS64 架構上增加了ARMv7架構的技術;
ARM64 其實只是 ARMv8的一半,只含64位指令集;
A53 開始之後,都是ARM64。

ARMv8指令集分為Aarch64和Aarch32。後者與ARMv7基本相同,但是多了一些vfp的指令,或者以前的軟體模擬實現改為硬體支持,可以說是靠著後者實現對Aarch32的向前兼容。

arm7版本可以安裝在armv7架構的設備上【支持32位和16位指令集的設備】;
arm8版本可以安裝在armv8架構的設備上【支持64位和32位指令集的設備】;
arm64版本只能安裝在純64位的arm架構的設備上。

出於低功耗、封裝限制等種種原因,以前的一些ARM處理器沒有獨立的硬體浮點運算單元,需要手寫軟體來實現浮點運算。有與沒有之間產生了兩個不同的嵌入式應用程序二進制介面(EABI):軟浮點與矢量浮點(VFP)。但是軟浮點(soft float)和硬浮點(hard float)之間有向前兼容卻沒有向後兼容的能力,也就是軟浮點的二進制介面(EABI)仍然可以用於有硬浮點計算單元的ARM處理器。

在ARM體系架構內核中,有些有浮點運算單元(fpu),有些沒有,在有fpu的情況下,就可以通過gcc編譯的選項-mfloat-abi來指定使用哪種,有如下三種值:

brook_linux_arm5
brook_linux_arm6
brook_linux_arm7
brook_linux_arm64

brook_linux_mips
brook_linux_mips_softfloat
brook_linux_mipsle
brook_linux_mipsle_softfloat

brook_linux_mips64
brook_linux_mips64_softfloat
brook_linux_mips64le
brook_linux_mips64le_softfloat

ARM體系結構 : https://blog.csdn.net/MyArrow/article/details/8559573?utm_medium=distribute.pc_relevant.none-task-blog--1.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog--1.channel_param

ARM的Cortex-A8,是由ARM控股的採用ARMv7指令集架構的處理器核心設計。

閱讀全文

與arm指令編譯後是多少位相關的資料

熱點內容
解壓小視頻手速 瀏覽:150
我的世界伺服器卡沒血如何修改 瀏覽:159
vba入門到精通pdf 瀏覽:111
tomcat怎麼一個伺服器部署 瀏覽:793
phphttps介面 瀏覽:893
javabyte數組int 瀏覽:806
公司網路共享的文件夾 瀏覽:998
拍臉搭配衣服是什麼app 瀏覽:916
歐珀手機怎麼更改加密密碼 瀏覽:508
程序員那麼可愛陸漓氣人語錄 瀏覽:904
python中del刪除 瀏覽:457
華為雲耀伺服器和ecs區別 瀏覽:730
ruby語法編譯語言 瀏覽:569
U盤加密以後文件破損 瀏覽:287
改變路由器加密類型 瀏覽:306
java換行空格 瀏覽:834
程序員的等級有哪些 瀏覽:728
小學編程教師試講15分試講視頻 瀏覽:226
wincc編譯在哪 瀏覽:476
華為演算法比賽 瀏覽:553