日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

处理器架构 (四) ARM指令集

發(fā)布時(shí)間:2023/12/20 编程问答 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 处理器架构 (四) ARM指令集 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
  • ARM 命名規(guī)則——指令架構(gòu)、CPU的歷史回顧
  • arm指令集版本和arm版本
  • arm有多少指令集_官網(wǎng)
arm的指令集有 ARM64指令集 ARM(32)指令集 THUMB指令集 THUMB-2指令集 NEON指令集 VFP指令集 DSP指令集 Jazelle instruction// 實(shí)際上他們都屬于 ARM指令集, 也可以說是 ARM指令集 的擴(kuò)展自從armv1 開始,ARM指令集一直就在,且跟隨版本變化而不斷升級(jí). 從armv4中的 ARM7E 系列開始就支持增強(qiáng)型DSP指令集,后續(xù)命名只要有符號(hào)E,就代表支持增強(qiáng)型DSP指令集. 從armv4中的 ARM7TDMI 開始就支持 thumb指令集(命名中帶T就表示支持thumb指令集) armv5 已經(jīng)支持vfp 從armv6(ARM11系列) 開始就支持(armv5不支持)SIMD,且支持 vfpv2(不知道哪個(gè)版本先支持的vfp,應(yīng)該命名中帶有F,就支持VFP)armv7(cortex-a系列) 開始就支持(armv6不支持)NEON(高級(jí)SIMD),且支持vfpv3(a7)vfpv4(a15),不再有SIMD術(shù)語,NEON只適用于 ARM Cortex-A 類處理器 從armv6-m 開始就支持(armv6-ar不支持)(之前版本不支持)Thumb-2 , 向后不再有thumb術(shù)語Jazelle instruction 不開放For the Jazelle instruction set, contact ARM Limited
  • 下圖為 ARM官網(wǎng)文檔 中的圖,與上述有出入,待驗(yàn)證

ARM指令集與armv8

ARM指令具有固定寬度的4字節(jié)編碼,需要4字節(jié)對(duì)齊。 ARMv8指令集分為Aarch64和Aarch32。Aarch32與ARMv7基本相同,不同處的比較多了一些vfp的指令armv7的軟件模擬實(shí)現(xiàn)改為Aarch32的硬件支持,可以說是靠著后者實(shí)現(xiàn)對(duì)Aarch32的向前兼容。Aarch64是升級(jí)的那一部分,相較于Aarch32比較,總體來說Aarch64更規(guī)整了,也更簡單。指令編碼不同(雖然也是32位)寄存器多了寄存器變寬了(64位)功能寄存器和通用寄存器分開(除了x30也是rl)沒有THUMB架構(gòu)上的變化:如exception level,stack alignment 等。

THUMB指令集 & THUMB-2指令集

  • ARM,Thumb和Thumb 2指令編碼有什么區(qū)別?
THUMB指令集 2-4 字節(jié) Thumb指令具有可變長度(24字節(jié),現(xiàn)在稱為“窄”和“寬”)編碼,需要2字節(jié)對(duì)齊 – 大多數(shù)指令具有2字節(jié)編碼,但bl和blx始終具有4字節(jié)編碼*Thumb-2 是Thumb 指令集的增強(qiáng)指令集,并且由ARMv6T2 和ARMv7M體系 結(jié)構(gòu)定義。 Thumb-2 提供的功能包含幾乎與ARM指令集(32位指令集)所有的功能thumb-2 包含thumb(16位指令集)的功能.16位指令首次與32位指令并存.在Thumb狀態(tài)下支持thumb-2(arm指令集和thumb指令集的綜合版本)無需煩心地把處理器狀態(tài)在Thumb和ARM之間來回的切換了。

VFP指令集

  • VFP–ARM浮點(diǎn)體系結(jié)構(gòu)機(jī)介紹
  • 浮點(diǎn)生成選項(xiàng)
  • 浮點(diǎn)指令
  • ARM架構(gòu)big.LITTLE、Thumb、Jazelle、TrustZone、VFP、SIMD、NOEN等常用術(shù)語解析
  • ARMv8比ARMv7升級(jí)在哪?
armv6 是有 VFP的 , 負(fù)責(zé) 標(biāo)量浮點(diǎn)運(yùn)算 , 向量浮點(diǎn)運(yùn)算 // SIMD 負(fù)責(zé) 向量整數(shù)運(yùn)算 armv7 有FP , 且 FP 只 負(fù)責(zé) 標(biāo)量浮點(diǎn)運(yùn)算 // Advanced SIMD(又稱NEON) 負(fù)責(zé) 向量(浮點(diǎn)與整數(shù))運(yùn)算 // SIMD 升級(jí)成了 Advanced SIMD armv8 有FP , 且 FP 只 負(fù)責(zé) 標(biāo)量浮點(diǎn)運(yùn)算 // Advanced SIMD(又稱NEON) 負(fù)責(zé) 向量(浮點(diǎn)與整數(shù))運(yùn)算 項(xiàng)ARMv6-VFPARMv7-FPARMv8-FP
寄存器非ARM寄存器,非SIMD寄存器非ARM寄存器,SIMD寄存器非ARM寄存器,SIMD寄存器
單精度浮點(diǎn)向量YNN
單精度浮點(diǎn)標(biāo)量YYY
雙精度浮點(diǎn)標(biāo)量YYY

DSP指令集 & SIMD指令集 & NEON指令集

  • DSP & SIMD & NEON
  • ARM DSP & SIMD技術(shù)簡介
  • NEON-Advanced SIMD vs. SIMD
  • ARM NEON常用函數(shù)總結(jié)
  • ARM平臺(tái)NEON指令的編譯和優(yōu)化
  • arm neon 指令集
  • ARM Neon 指令 解釋
  • ARM NEON 編程系列2 - 基本指令集
  • ARM NEON 基本指令集介紹
armv6 SIMD 負(fù)責(zé) 向量整數(shù)運(yùn)算 // VFP的 , 負(fù)責(zé) 標(biāo)量浮點(diǎn)運(yùn)算 , 向量浮點(diǎn)運(yùn)算 armv7 Advanced SIMD(又稱NEON) 負(fù)責(zé) 向量(浮點(diǎn)與整數(shù))運(yùn)算 // SIMD 升級(jí)成了 Advanced SIMD // FP 只 負(fù)責(zé) 標(biāo)量浮點(diǎn)運(yùn)算 armv8 Advanced SIMD(又稱NEON) 負(fù)責(zé) 向量(浮點(diǎn)與整數(shù))運(yùn)算 // FP 只 負(fù)責(zé) 標(biāo)量浮點(diǎn)運(yùn)算 項(xiàng)ARMv6-SIMDARMv7-NEON(Advanced SIMD)ARMv8-NEON
寄存器Operates on 32-bit general purpose ARM registersSeparate register bank with arm, 32x64-bit NEON registers(與FP共用寄存器)Separate register bank with arm, 32x128-bit NEON registers(與FP共用寄存器)
整型向量8-bit/16-bit integer8/16/32/64-bit integer8/16/32/64-bit integer
單精度浮點(diǎn)向量Single precision floating pointSingle precision floating point
雙精度浮點(diǎn)向量double precision floating point
性能2x16-bit/4x8-bit operations per instruction16x8-bit operations per instruction16x8-bit operations per instruction

armv-8

  • armv8 異常模型
  • armv8 內(nèi)存管理
  • armv8內(nèi)存模型
  • armv8指令集架構(gòu)
  • armv8.x擴(kuò)展

指令集應(yīng)該包括什么內(nèi)容

*指令* 是操作方法 指令處理的數(shù)據(jù)在 *寄存器**內(nèi)存* 里面. 指令執(zhí)行的時(shí)候會(huì)出現(xiàn)一些非正常情況,叫做 *異常*異常發(fā)生之后硬件怎么做動(dòng)作,我們需要知道.硬件給我們相應(yīng)的接口(將要運(yùn)行的地址(PC寄存器的值)和其他寄存器(包括出錯(cuò)的狀態(tài))),然后我們用軟件來彌補(bǔ) 執(zhí)行執(zhí)行過程中會(huì)有一個(gè) 譯碼的過程. 確定操作對(duì)象所在位置 會(huì)涉及到 *尋址方式*1.分解指令操作(確定操作內(nèi)容) 2.確定操作對(duì)象(操作數(shù))所在位置(寄存器,存儲(chǔ)器,輸出輸出設(shè)備)
  • 寄存器
  • 指令
  • 異常處理

匯編

  • 匯編有什么用途
許多在應(yīng)用程序級(jí)別編寫代碼的程序員幾乎沒有理由使用匯編語言編寫代碼。 但是,下面的情況下必須要用到匯編1. 需要高度優(yōu)化的代碼 , 例如編寫編譯器時(shí)2. 需要低層次地使用 C 語言中沒有直接可用的特性的情況下3. 在引導(dǎo)代碼的部分、設(shè)備驅(qū)動(dòng)程序或執(zhí)行操作系統(tǒng)開發(fā)時(shí)4. 在調(diào)試 C 程序時(shí)能夠讀取分解的代碼是很有用的,特別是理解匯編指令和 C 語句之間的映射
  • 匯編怎么用
可以參考 1.ARM 編譯器工具鏈匯編器參考手冊(cè)(ARM Compiler Toolchain Assembler Reference )2.ARM 架構(gòu)參考手冊(cè)(ARM Architecture Reference Manual)。

總結(jié)

以上是生活随笔為你收集整理的处理器架构 (四) ARM指令集的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。