《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 解決方案 > Cortex-M處理器指令集

Cortex-M處理器指令集

2017-04-19
作者:Joseph Yiu
來(lái)源:ARM
關(guān)鍵詞: Cortex-M ARM ISA 處理器

2.1 指令集簡(jiǎn)介

       大多數(shù)情況下,應(yīng)用程序代碼可以用C或其他高級(jí)語(yǔ)言編寫(xiě)。但是,對(duì)Cortex-M 處理器支持指令集的基本了解有助于開(kāi)發(fā)者針對(duì)具體應(yīng)用選擇合適的Cortex-M處理器。指令集(ISA)是處理器架構(gòu)的一部分,Cortex-M處理器可以分為幾個(gè)架構(gòu)規(guī)范。

UJ@1RR~THSH`8)CH](FKD3T.png

表 3: Cortex-M 處理器ARM架構(gòu)規(guī)范的規(guī)范

       所有的Cortex-M 處理器都支持Thumb指令集。整套Thumb指令集擴(kuò)展到Thumb-2版本時(shí)變得相當(dāng)大。但是,不同的Cortex-M處理器支持不同的Thumb 指令集的子集,如圖3所示:

圖片3_conew1.png

圖片4_conew1.png

圖 3: Cortex-M 處理器的指令集

2.2 Cortex-M0/M0+/M1指令集

Cortex-M0/M0+/M1處理器基于ARMv6-M架構(gòu)。這是一個(gè)只支持56條指令的小指令集,大部分指令是16位指令,如圖3所示只占很小的一部分。但是,此類(lèi)處理器中的寄存器和處理的數(shù)據(jù)長(zhǎng)度是32位的。對(duì)于大多數(shù)簡(jiǎn)單的I/O控制任務(wù)和普通的數(shù)據(jù)處理,這些指令已經(jīng)足夠了。這么小的指令集可以用很少的電路門(mén)數(shù)來(lái)實(shí)現(xiàn)處理器設(shè)計(jì),Cortex-M0 和 Cortex-M0+最小配置僅僅12K門(mén)。然而,其中的很多指令無(wú)法使用高位寄存器(R8 到R12), 并且生成立即數(shù)的能力有限。這是平衡了超低功耗和性能需求的結(jié)果。

2.3 Cortex-M3指令集

Cortex-M3處理器是基于ARMv7-M架構(gòu)的處理器,支持更豐富的指令集,包括許多32位指令,這些指令可以高效的使用高位寄存器。另外,M3還支持:

· 查表跳轉(zhuǎn)指令和條件執(zhí)行(使用IT指令)

· 硬件除法指令

· 乘加指令(MAC)

· 各種位操作指令

更豐富的指令集通過(guò)幾種途徑來(lái)增強(qiáng)性能;例如,32位Thumb指令支持了更大范圍的立即數(shù),跳轉(zhuǎn)偏移和內(nèi)存數(shù)據(jù)范圍的地址偏移。支持基本的DSP操作(例如,支持若干條需要多個(gè)時(shí)鐘周期執(zhí)行的MAC指令,還有飽和運(yùn)算指令)。最后,這些32位指令允許用單個(gè)指令對(duì)多個(gè)數(shù)據(jù)一起做桶型移位操作。

支持更豐富的指令導(dǎo)致了更大的面積成本和更高的功耗。典型的微控制器,Cortex-M3的電路門(mén)數(shù)是Cortex-M0 和 Cortex-M0+兩倍還多。但是,處理器的面積只是大多數(shù)現(xiàn)代微控制器的很小的一部分,多出來(lái)的面積和功耗經(jīng)常不那么重要。

2.4 Cortex-M4指令集

Cortex-M4在很多地方和Cortex-M3相同:流水線,編程模型。Cortex-M4支持Cortex-M3的所有功能,并額外支持各種面向DSP應(yīng)用的指令,像SIMD, 飽和運(yùn)算指令,一系列單周期MAC指令(Cortex-M3只支持有限條MAC指令,并且是多周期執(zhí)行的),和可選的單精度浮點(diǎn)運(yùn)算指令。

Cortex-M4的SIMD操作可以并行處理兩個(gè)16位數(shù)據(jù)和4個(gè)8位數(shù)據(jù)。例如,圖4展示的QADD8 和 QADD16 操作:

圖片5_conew1.png   

圖 4: SIMD指令例子: QADD8 and QADD16

The uses of SIMD enable much faster computation of 16-bit and 8-bit data in certain DSP operations as the calculation can be parallelized. However, in general programming, C compilers are unlikely to utilize the SIMD capability. That is why the typical benchmark results of the Cortex-M3 and Cortex-M4. However, the internal data path of the Cortex-M4 is different from Cortex-M3, which enable faster operations in a few cases (e.g. single cycle MAC, and allow write back of two registers in a single cycle).在某些DSP運(yùn)算中,使用SIMD可以加速更快計(jì)算16位和8位數(shù)據(jù),因?yàn)檫@些運(yùn)算可以并行處理。但是,一般的編程中,C編譯器并不能充分利用SIMD運(yùn)算能力。這是為什么Cortex-M3 和 Cortex-M4典型benchmark的分?jǐn)?shù)差不多。然而,Cortex-M4的內(nèi)部數(shù)據(jù)通路和Cortex-M3的不同,某些情況下Cortex-M4可以處理的更快(例如,單周期MAC,可以在一個(gè)周期中寫(xiě)回到兩個(gè)寄存器)。

2.5 Cortex-M7指令集

Cortex-M7支持的指令集和Cortex-M4相似,添加了:

· 浮點(diǎn)數(shù)據(jù)架構(gòu)是基于FPv5的,而不是Cortex-M4的FPv4,所以Cortex-M7支持額外浮點(diǎn)指令

· 可選的雙精度浮點(diǎn)數(shù)據(jù)處理指令

· 支持緩存數(shù)據(jù)預(yù)取指令(PLD)

Cortex-M7的流水線和Cortex-M4的非常不同。Cortex-M7是6級(jí)雙發(fā)射流水線,可以獲得更高的性能。多數(shù)為Cortex-M4設(shè)計(jì)的軟件可以直接運(yùn)行在Cortex-M7上。但是,為了充分利用流水線差異來(lái)達(dá)到最好的優(yōu)化,軟件需要重新編譯,并且在許多情況下,軟件需要一些小的升級(jí),以充分利用像Cache這樣的新功能。

2.6 Cortex-M23指令集

Cortex-M23的指令集是基于ARMv8-M的Baseline子規(guī)范,它是ARMv6-M的超集。擴(kuò)展的指令包括:

· 硬件除法指令

· 比較和跳轉(zhuǎn)指令,32位跳轉(zhuǎn)指令

· 支持TrustZone安全擴(kuò)展的指令

· 互斥數(shù)據(jù)訪問(wèn)指令(通常用于信號(hào)量操作)

· 16位立即數(shù)生成指令

· 載入獲取及存儲(chǔ)釋放指令(支持C11)

在某些情況下,這些增強(qiáng)的指令集可以提高處理器性能,并且對(duì)包含多個(gè)處理器的SoC設(shè)計(jì)有用(例如,互斥訪問(wèn)對(duì)多處理器的信號(hào)量處理有幫助)

2.7 I Cortex-M33指令集

因?yàn)镃ortex-M33設(shè)計(jì)是非常可配置的,某些指令也是可選的。例如:

· DSP指令(Cortex-M4 和Cortex-M7支持的)是可選的

· 單精度浮點(diǎn)運(yùn)算指令是可選的,這些指令是基于FPv5的,并且比Cortex-M4多幾條。

: Cortex-M33也支持那些ARMv8-M Mainline引入的新指令:

· 支持TrustZone安全擴(kuò)展的指令

· 載入獲取及存儲(chǔ)釋放指令(支持C11)

2.8 指令集特性比較總結(jié)

       ARMv6-M, ARMv7-M 和 ARMv8-M架構(gòu)有許多指令集功能特點(diǎn), 很難介紹到所有的細(xì)節(jié)。但是,下面的表格(表4)總結(jié)了那些關(guān)鍵的差異。

FWB)FJ${]NF{L%0$BZ_94~V.png

6(F6{KW6~NQ$2P%S6X`]O67.png

表 4: 指令集特性總結(jié)

Cortex-M處理器指令集的最重要的特點(diǎn)是向上兼容。Cortex-M3的指令是Cortex-M0/M0+/M1的超集。所以,理論上講,如果存儲(chǔ)空間分配是一致的,運(yùn)行在Cortex-M0/M0+/M1上的二進(jìn)制文件可以直接運(yùn)行在Cortex-M3上。同樣的原理也適用于Cortex-M4/M7和其他的Cortex-M處理器;Cortex-M0/M0+/M1/M3支持的指令也可以運(yùn)行在Cortex-M4/M7上。

雖然Cortex-M0/M0+/M1/M3/M23處理器沒(méi)有浮點(diǎn)運(yùn)算單元配置選項(xiàng),但是處理器仍然可以利用軟件來(lái)做浮點(diǎn)數(shù)據(jù)運(yùn)算。這也適用于基于Cortex-M4/M7/M33但是沒(méi)有配置浮點(diǎn)運(yùn)算單元的產(chǎn)品。在這種情況下,當(dāng)程序中使用了浮點(diǎn)數(shù),編譯工具包會(huì)在鏈接階段插入需要的運(yùn)行軟件庫(kù)。軟件模式的浮點(diǎn)運(yùn)算需要更長(zhǎng)的運(yùn)行時(shí)間,并且會(huì)略微的增加代碼大小。但是,如果浮點(diǎn)運(yùn)算不是頻繁使用的,這種方案是適合這種應(yīng)用的。

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲一区激情| 欧美一区久久| 国产精品色婷婷久久58| 欧美经典一区二区三区| 麻豆精品视频在线| 久久亚洲影院| 久久久九九九九| 久久精品99无色码中文字幕 | 一区二区三区精品久久久| 亚洲区免费影片| 亚洲欧洲一区二区天堂久久| 久久精品一本| 亚洲激情不卡| 亚洲人成网站色ww在线| 亚洲精品国精品久久99热| 91久久久国产精品| 亚洲精品极品| 一二美女精品欧洲| 亚洲一二区在线| 亚洲一区影院| 午夜精品久久久久影视| 欧美在线免费一级片| 久久精品国产精品亚洲| 久久黄色级2电影| 久久久爽爽爽美女图片| 美女爽到呻吟久久久久| 欧美高清一区| 欧美日韩一二区| 国产精品久久久久久久久久ktv | 一区二区三区国产盗摄| 亚洲神马久久| 西西裸体人体做爰大胆久久久| 亚洲欧美不卡| 久久国产一区| 亚洲人成网站在线播| 夜夜嗨av一区二区三区四区| 在线亚洲一区| 亚洲欧美另类中文字幕| 久久精品99| 美女露胸一区二区三区| 欧美经典一区二区三区| 国产精品美女主播| 国产主播一区二区三区四区| 亚洲第一中文字幕在线观看| 一区二区av| 欧美日韩情趣电影| 国产精品乱码人人做人人爱| 国产精品一香蕉国产线看观看| 国产区亚洲区欧美区| 激情欧美亚洲| 日韩一级片网址| 先锋影音一区二区三区| 亚洲精品极品| 午夜性色一区二区三区免费视频| 久久久久久伊人| 欧美剧在线免费观看网站| 国产精品超碰97尤物18| 国产在线不卡精品| 欧美午夜一区二区三区免费大片| 亚洲欧美日韩一区二区在线 | 久久久久国产精品一区二区| 欧美国产日韩一区| 国产精品一区二区久久精品| 在线日韩电影| 亚洲欧美视频一区二区三区| 亚洲区第一页| 午夜宅男久久久| 欧美激情片在线观看| 国产午夜亚洲精品不卡| 亚洲精品免费在线播放| 久久精品一区二区国产| 亚洲嫩草精品久久| 欧美国产三级| 国模大胆一区二区三区| av成人免费| 亚洲电影免费观看高清| 午夜视频在线观看一区二区| 欧美精品观看| 极品少妇一区二区三区精品视频| 一区二区三区国产在线观看| 亚洲精品久久久久久一区二区| 欧美一区视频在线| 欧美日韩一区二区三区四区在线观看 | 亚洲伊人第一页| 欧美成熟视频| 国内精品久久久久久| 一本综合精品| 99re8这里有精品热视频免费| 久久精品色图| 国产精品美女www爽爽爽视频| 91久久精品一区二区别| 久久国产一区二区三区| 欧美亚洲综合久久| 欧美视频在线视频| 亚洲三级影院| 亚洲日韩第九十九页| 欧美在线视频在线播放完整版免费观看 | 国产亚洲成av人片在线观看桃| 一本久久a久久免费精品不卡| 91久久精品一区| 久久九九久精品国产免费直播| 国产精品久久久久av| 亚洲免费av网站| 亚洲精品一区二区三区不| 久久人体大胆视频| 国产亚洲欧美一级| 先锋影音久久久| 久久高清一区| 国产欧美一区二区精品忘忧草| 亚洲一区视频在线观看视频| 亚洲性xxxx| 欧美日韩综合在线| 亚洲美女网站| 亚洲视频狠狠| 欧美日韩在线视频一区| 亚洲巨乳在线| 一区二区三区日韩精品视频| 欧美激情一区二区在线| 亚洲高清视频在线| 亚洲精品视频在线看| 欧美高清在线视频| 亚洲国产日韩欧美一区二区三区| 亚洲欧洲日韩在线| 欧美激情免费在线| 亚洲美女av黄| 亚洲一区二区欧美| 国产精品高潮呻吟| 亚洲欧美中文在线视频| 久久精品女人| 影音先锋日韩精品| 亚洲日本无吗高清不卡| 欧美激情一区在线| 在线亚洲欧美专区二区| 亚洲欧美在线磁力| 国产一区欧美日韩| 亚洲激情六月丁香| 欧美激情在线观看| 在线亚洲免费| 久久精品免费| 在线观看国产精品网站| 99精品免费| 国产精品高清网站| 午夜视频一区二区| 免费不卡在线观看| 日韩视频精品| 欧美一区二区在线看| 一色屋精品视频免费看| 9色精品在线| 国产精品免费在线| 久久精品99久久香蕉国产色戒| 欧美成人午夜剧场免费观看| 亚洲理伦在线| 欧美一级欧美一级在线播放| 国内精品视频在线播放| 99re热精品| 国产精品中文字幕欧美| 亚洲国产小视频| 欧美三级电影大全| 欧美一区二区三区的| 欧美顶级大胆免费视频| 国产精品99久久久久久久久| 久久精品一本久久99精品| 亚洲欧洲日产国产网站| 欧美一级免费视频| 亚洲福利一区| 性欧美激情精品| 在线欧美日韩国产| 亚洲免费人成在线视频观看| 国内外成人免费视频| 在线视频你懂得一区| 国产丝袜一区二区| av成人免费观看| 国产一本一道久久香蕉| 99亚洲一区二区| 国产一区二区丝袜高跟鞋图片 | 99国产精品久久久| 久久久91精品国产| 一本一道久久综合狠狠老精东影业 | 久久综合伊人77777麻豆| 99国产精品视频免费观看一公开 | 亚洲全部视频| 国产伦精品一区二区三区免费| 亚洲国产日韩在线| 国产精品久线观看视频| 亚洲肉体裸体xxxx137| 国产欧美一区二区三区另类精品| 日韩视频免费在线观看| 国产综合在线视频| 香蕉久久夜色精品国产| 亚洲人成亚洲人成在线观看图片| 久久精品国产一区二区三| 一本大道久久a久久综合婷婷| 老司机免费视频一区二区三区| 亚洲性图久久| 欧美日韩精品一二三区| 91久久精品网| 狠狠噜噜久久| 欧美一区二区在线播放| 亚洲色图制服丝袜| 欧美日韩天堂|