《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 模擬設(shè)計(jì) > 業(yè)界動(dòng)態(tài) > 嵌入式系統(tǒng)嵌入式開(kāi)發(fā) ARM Cortex-M3處理器技術(shù)優(yōu)勢(shì)分析

嵌入式系統(tǒng)嵌入式開(kāi)發(fā) ARM Cortex-M3處理器技術(shù)優(yōu)勢(shì)分析

2017-10-24

  在嵌入式開(kāi)發(fā)設(shè)計(jì)中,對(duì)客戶來(lái)說(shuō)用什么技術(shù)、芯片不是主要的。主要的是能否滿足要求。高性價(jià)比、開(kāi)發(fā)門(mén)檻底、易于使用才是硬道理。Cortex-M3是一個(gè)32位處理器內(nèi)核。從理論上來(lái)說(shuō)性價(jià)比高。

  598a778ab8cc1.jpg  

    三級(jí)流水線+分支預(yù)測(cè)

  ARM Cortex-M3與ARM7內(nèi)核一樣,采用適合于微控制器應(yīng)用的三級(jí)流水線,但增加了分支預(yù)測(cè)功能。現(xiàn)代處理器大多采用指令預(yù)取和流水線技術(shù),以提高處理器的指令執(zhí)行速度。流水線處理器在正常執(zhí)行指令時(shí),如果碰到分支(跳轉(zhuǎn))指令,由于指令執(zhí)行的順序可能會(huì)發(fā)生變化,指令預(yù)取隊(duì)列和流水線中的部分指令就可能作廢,而需要從新的地址重新取指、執(zhí)行,這樣就會(huì)使流水線“斷流”,處理器性能因此而受到影響。特別是現(xiàn)代C語(yǔ)言程序,經(jīng)編譯器優(yōu)化生成的目標(biāo)代碼中,分支指令所占的比例可達(dá)10-20%,對(duì)流水線處理器的影響會(huì)的更大。為此,現(xiàn)代高性能流水線處理器中一般都加入了分支預(yù)測(cè)部件,就是在處理器從存儲(chǔ)器預(yù)取指令時(shí),當(dāng)遇到分支(跳轉(zhuǎn))指令時(shí),能自動(dòng)預(yù)測(cè)跳轉(zhuǎn)是否會(huì)發(fā)生,再?gòu)念A(yù)測(cè)的方向進(jìn)行取指,從而提供給流水線連續(xù)的指令流,流水線就可以不斷地執(zhí)行有效指令,保證了其性能的發(fā)揮。

  ARM Cortex-M3內(nèi)核的預(yù)取部件具有分支預(yù)測(cè)功能,可以預(yù)取分支目標(biāo)地址的指令,使分支延遲減少到一個(gè)時(shí)鐘周期。

  哈佛結(jié)構(gòu)

  ARMCortex-M3采用哈佛結(jié)構(gòu),并選擇了適合于微控制器應(yīng)用的三級(jí)流水線,但增加了分支預(yù)測(cè)功能。

  從內(nèi)核訪問(wèn)指令和數(shù)據(jù)的不同空間與總線結(jié)構(gòu),可以把處理器分為哈佛結(jié)構(gòu)和普林斯頓結(jié)構(gòu)(或馮.諾伊曼結(jié)構(gòu))。馮.諾伊曼結(jié)構(gòu)的機(jī)器指令、數(shù)據(jù)和I/O共用一條總線,這樣內(nèi)核在取指時(shí)就不能進(jìn)行數(shù)據(jù)讀寫(xiě),反之亦然。這在傳統(tǒng)的非流水線處理器(如MCS51)上是沒(méi)有什么問(wèn)題的,它們?nèi)≈浮?zhí)行分時(shí)進(jìn)行,不會(huì)發(fā)生沖突。但在現(xiàn)代流水線處理器上,由于取指、譯碼和執(zhí)行是同時(shí)進(jìn)行的(不是同一條指令),一條總線就會(huì)發(fā)生總線沖突,必須插入延遲等待,從而影響了系統(tǒng)性能。ARM7TDMI內(nèi)核就是這種結(jié)構(gòu)的。

  而哈佛結(jié)構(gòu)的處理器采用獨(dú)立的指令總線和數(shù)據(jù)總線,可以同時(shí)進(jìn)行取指和數(shù)據(jù)讀寫(xiě)操作,從而提高了處理器的運(yùn)行性能。ARM Cortex-M3、ARM966E、ARM926EJ、ARM1136JF等內(nèi)核都采用了哈佛結(jié)構(gòu)。

  內(nèi)置嵌套向量中斷控制器(NVIC)

  針對(duì)業(yè)界對(duì)ARM處理器中斷響應(yīng)的問(wèn)題,Cortex-M3首次在內(nèi)核上集成了嵌套向量中斷控制器(NVIC)。Cortex-M3的中斷延遲只有12個(gè)時(shí)鐘周期(ARM7需要24-42個(gè)周期);Cortex-M3還使用尾鏈技術(shù),使得背靠背(back-to-back)中斷的響應(yīng)只需要6個(gè)時(shí)鐘周期(ARM7需要大于30個(gè)周期)。以STM32運(yùn)行在75MHz為例,中斷延遲只有80ns-160ns。另外,Cortex-M3采用了基于棧的異常模式,使得芯片初始化的封裝更為簡(jiǎn)單。

  ARM7TDMI內(nèi)核不帶中斷控制器,具體MCU的中斷控制器是各芯片廠商自己加入的,這使得各廠商的ARM7 MCU中斷控制部分都不一樣,給用戶使用及程序移植帶來(lái)了很大麻煩。Cortex-M3內(nèi)核集成NVIC,各廠商生產(chǎn)的基于Cortex-M3內(nèi)核的MCU都具有統(tǒng)一的中斷控制器,對(duì)用戶使用各種Cortex-M3 MCU,特別是中斷編程帶來(lái)了很大的便利。

  支持位綁定操作

  以前的ARM內(nèi)核不支持位操作,當(dāng)需要對(duì)一個(gè)變量或端口的某一位操作時(shí),先要用邏輯與/或指令屏蔽其他的位,使位操作需要較多的指令和時(shí)鐘周期。ARM Cortex-M3采用了一種特殊的方法——位綁定:把一個(gè)地址單元的32位變量中的每一位,通過(guò)一個(gè)簡(jiǎn)單的地址轉(zhuǎn)換算法,映射到另一個(gè)地址空間,每一位占用一個(gè)地址,對(duì)此地址空間的操作,只有數(shù)據(jù)的最低一位是有效的,其余高31位的值被忽略。相當(dāng)于把一個(gè)“橫”的32位字給“豎”起來(lái)。這樣對(duì)新的映射空間操作時(shí),就可以不用屏蔽操作,優(yōu)化了RAM和I/O寄存器的讀寫(xiě),提高了位操作的速度。

  這種方法粗看起來(lái)好像損失了很多地址空間,其實(shí)對(duì)于32位的ARM處理器而言,總共可以尋址4GB的空間,而對(duì)于一個(gè)MCU來(lái)說(shuō),一般只用到幾百KB的空間。所以這種處理方法絲毫不會(huì)影響一個(gè)MCU的正常使用,又大大簡(jiǎn)化了處理器的設(shè)計(jì),可以說(shuō)是一種良策。

  支持串行調(diào)試(SWD)

  ARM處理器一般都使用JTAG調(diào)試接口,使得仿真、調(diào)試工具統(tǒng)一而廉價(jià),方便了用戶開(kāi)發(fā)。但JTAG調(diào)試接口至少要占用芯片的5-6個(gè)引腳,這對(duì)于一些引腳較少的MCU來(lái)說(shuō),有時(shí)會(huì)對(duì)仿真調(diào)試和I/O使用帶來(lái)麻煩。

  ARM Cortex-M3在保持原來(lái)JTAG調(diào)試接口的基礎(chǔ)上,還支持串行調(diào)試(SWD)。使用SWD時(shí),只占用2個(gè)引腳,就可以進(jìn)行所有的仿真和調(diào)試,節(jié)省了調(diào)試用引腳,用戶就可以使用更多的引腳。

  另外,Cortex-M3支持8個(gè)硬件斷點(diǎn)(ARM7、ARM9只支持2個(gè)硬件斷點(diǎn)),可以減少斷點(diǎn)調(diào)試時(shí)對(duì)代碼的影響,保證仿真、調(diào)試的時(shí)序準(zhǔn)確性。

  內(nèi)核支持低功耗模式

  ARM內(nèi)核已經(jīng)是一個(gè)高性能、低功耗的內(nèi)核,但ARM7、ARM9等內(nèi)核本身只有運(yùn)行/停止模式,沒(méi)有其他模式。各芯片廠商只能在內(nèi)核基礎(chǔ)上,對(duì)各自加入的外設(shè)定義各種低功耗模式。Cortex-M3加入了類似于8位處理器的內(nèi)核低功耗模式,支持3種功耗管理模式:通過(guò)一條指令立即睡眠;異常/中斷退出時(shí)睡眠;深度睡眠。使整個(gè)芯片的功耗控制更為有效。以STM32為例,其RAM和寄存器狀態(tài)保持的停機(jī)模式耗電僅為14uA,從此狀態(tài)的啟動(dòng)時(shí)間僅為7us。

  Cortex-M3的運(yùn)行功耗(Active Mode)也很低。以STM32系列微控制器為例,其典型功耗約為500uA/MHz,也只是目前業(yè)界超低功耗單片機(jī)MSP430系列(約為250uA/MHz)的2倍。但MSP430是16位處理器,而STM32是32位處理器。

  高效的Thumb2 16/32位混合指令集

  ARM7、ARM9等內(nèi)核使用不同的處理器狀態(tài)分別執(zhí)行32位的ARM指令和16位的Thumb指令,使用狀態(tài)切換指令完成ARM狀態(tài)和Thumb狀態(tài)的切換。Cortex-M3使用更高效的Thumb2指令集,它是一種16/32位混合編碼指令,兼容Thumb指令。對(duì)于一個(gè)應(yīng)用程序編譯生成的Thumb2代碼,以接近Thumb編碼的代碼尺寸,達(dá)到了接近ARM編碼的運(yùn)行性能。Thumb2是一種緊湊、高效的新一代指令集。

  Thumb2指令集是面向高級(jí)語(yǔ)言的指令集,適合于C語(yǔ)言編程,由編譯器生成目標(biāo)代碼,不建議直接使用Thumb2匯編語(yǔ)言編程。

  32位硬件除法和單周期乘法

  以往的ARM處理器沒(méi)有除法指令,在某些除法密集型應(yīng)用中性能不盡如意。Cortex-M3加入了32位除法指令,彌補(bǔ)了這一缺陷,使Cortex-M3可以和其他通用處理器一樣,完成各種數(shù)學(xué)運(yùn)算操作。

  Cortex-M3還改進(jìn)了乘法運(yùn)算部件,32結(jié)果的32位x32位乘法操作只要一個(gè)時(shí)鐘周期。這一性能使得使用Cortex-M3來(lái)進(jìn)行乘、乘加運(yùn)算時(shí),已逼近DSP的性能,因此特別適合一些需要簡(jiǎn)單DSP的應(yīng)用領(lǐng)域,如電機(jī)控制、數(shù)字濾波、FFT變換等。

  需要指出的是,32位的乘/除運(yùn)算,對(duì)于一個(gè)8位機(jī)而言,已經(jīng)是一段比較復(fù)雜的程序,而對(duì)于32位的Cortex-M3而言,只需一句指令。因此,即使二者工作主頻一樣,實(shí)際運(yùn)行性能也不是一個(gè)數(shù)量級(jí)的。

  支持存儲(chǔ)器非對(duì)齊訪問(wèn)

  基于Cortex-M3的MCU,為提高性能,其內(nèi)部存儲(chǔ)器(Flash、RAM)都是32位編址的。這樣當(dāng)常量、變量是字節(jié)或半字類型時(shí),如果處理器只支持對(duì)齊訪問(wèn)(以往的處理器都是如此),那么這些字節(jié)/半字類型的數(shù)據(jù)也必須被分配、占用一個(gè)32位的存儲(chǔ)單元,這樣就浪費(fèi)了部分存儲(chǔ)空間。

  Cortex-M3支持存儲(chǔ)器的非對(duì)齊訪問(wèn),它可以訪問(wèn)存儲(chǔ)在一個(gè)32位單元中的字節(jié)/半字類型數(shù)據(jù),這樣4個(gè)字節(jié)類型(或2個(gè)半字類型)數(shù)據(jù)可以被分配在一個(gè)32位的單元中,提高了存儲(chǔ)器的利用率。對(duì)于一般的應(yīng)用程序而言,這種技術(shù)可以節(jié)省約25%的SRAM使用量,從而可以選擇SRAM較小、更廉價(jià)的MCU。

  定義了統(tǒng)一的存儲(chǔ)器映射

  ARM7、ARM9等內(nèi)核沒(méi)有定義存儲(chǔ)器映射,各芯片廠商自己定義了存儲(chǔ)器映射,這使得各廠商的MCU存儲(chǔ)器映射都不完全一致,給用戶學(xué)習(xí)使用及程序移植帶來(lái)了麻煩。

  Cortex-M3內(nèi)核定義了統(tǒng)一的存儲(chǔ)器映射,各廠商生產(chǎn)的基于Cortex-M3內(nèi)核的微控制器芯片都具有一致的存儲(chǔ)器映射,對(duì)用戶使用各種基于Cortex-M3的 MCU以及代碼在不同MCU上的移植帶來(lái)了很大的便利。

  嵌入式開(kāi)發(fā)設(shè)計(jì)服務(wù)商朗銳智科(www.lrist.com)認(rèn)為基于Cortex-M3的微控制器相比于ARM7TDMI的微控制器,在相同的工作時(shí)鐘頻率下:平均性能要高約30%;代碼尺寸要比ARM編碼小約30%;價(jià)格一般也更低。以STM32系列Cortex-M3微控制為例,工作頻率可達(dá)75MHz,而價(jià)格比STR71x系列ARM7TDMI芯片要低約30%,具有極高的性價(jià)比。目前已有的芯片的功能太少。Cortex M系列在處理能力基本與ARM7同,主要是成本低,功耗小。


本站內(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亚洲国产精品_日韩亚洲一区二区
国产日韩欧美在线| 欧美激情综合网| 亚洲国产欧美一区二区三区同亚洲| 亚洲精选一区二区| 禁久久精品乱码| 国产精品久久久久婷婷| 欧美福利视频在线| 久久亚洲精选| 欧美影院在线| 亚洲尤物视频在线| 中文日韩在线| 亚洲激情在线视频| 欧美呦呦网站| 亚洲一区二区三区四区五区午夜| 亚洲精品裸体| 亚洲激情偷拍| 亚洲国产成人久久综合| 国内外成人免费视频| 国产精品女主播一区二区三区| 欧美激情一区二区三区在线视频| 久久天天躁狠狠躁夜夜爽蜜月| 香蕉免费一区二区三区在线观看 | 亚洲风情亚aⅴ在线发布| 亚洲一二三级电影| 一区二区电影免费观看| 亚洲精品久久| 91久久久精品| 亚洲国产精品传媒在线观看| 韩国av一区二区三区四区| 国产色综合久久| 国产欧美日韩91| 国产精品久久久久aaaa| 国产精品久久一卡二卡| 国产精品白丝黑袜喷水久久久| 欧美日韩一区国产| 欧美日韩美女| 欧美日韩综合一区| 欧美日韩中文另类| 欧美网站在线观看| 欧美日韩在线播放三区四区| 欧美日韩综合视频| 国产精品jvid在线观看蜜臀| 欧美午夜电影在线| 国产精品高潮粉嫩av| 国产精品九九久久久久久久| 国产精品v日韩精品| 国产精品久久久一区二区| 国产精品久久久一本精品| 国产精品视频专区| 国产伦精品一区二区三区视频孕妇| 国产精品视频一二| 国产精品美女999| 欧美日韩国产精品一区| 欧美色图一区二区三区| 国产精品久久久久久五月尺| 国产伦精品一区二区三区免费| 国产亚洲美州欧州综合国| 国产日韩在线播放| 国产三级精品在线不卡| 狠狠综合久久| 最新中文字幕一区二区三区| 亚洲美女91| 亚洲中字在线| 久久精品国产精品 | 亚洲精品一区二区三| 日韩视频免费在线| 亚洲一区二区在线播放| 欧美综合激情网| 久久夜色精品国产| 欧美精品手机在线| 国产精品日韩在线观看| 韩日成人av| 亚洲免费av片| 欧美亚洲网站| 日韩午夜视频在线观看| 午夜精品影院| 久久久国产精品亚洲一区| 欧美成人免费全部观看天天性色| 欧美视频在线观看一区| 国产欧美日韩在线视频| 亚洲国产精品欧美一二99| 亚洲色在线视频| 久久精品123| 亚洲午夜久久久久久尤物| 欧美自拍偷拍| 欧美精品久久久久a| 国产精品亚洲激情| 亚洲国产91| 亚洲自拍偷拍一区| 日韩图片一区| 欧美在线在线| 欧美日韩不卡合集视频| 国产亚洲激情| 99精品欧美一区| 欧美在线视频不卡| 一本大道久久a久久综合婷婷| 欧美一级视频一区二区| 欧美激情视频在线播放 | 亚洲国产欧美一区二区三区久久| 日韩性生活视频| 午夜精品999| 亚洲精品你懂的| 亚洲欧美日本精品| 麻豆成人精品| 欧美私人啪啪vps| 韩国女主播一区| 中国成人黄色视屏| 亚洲国产高潮在线观看| 99精品免费网| 欧美一区二区在线观看| 欧美精品日韩www.p站| 国产精品一卡二卡| 亚洲日本中文字幕| 亚洲男人第一av网站| 一本大道久久a久久综合婷婷| 久久久视频精品| 国产精品一区二区三区乱码| 亚洲精选久久| 久久gogo国模裸体人体| 一区二区黄色| 欧美国产日韩精品| 国产精品永久免费视频| 亚洲精品你懂的| 欧美一级在线视频| 一本综合久久| 久久天堂av综合合色| 国产精品久久久久一区| 亚洲精品美女在线观看| 亚洲成色www8888| 亚洲欧美日韩在线观看a三区| 欧美激情网友自拍| 国产在线拍偷自揄拍精品| 制服丝袜亚洲播放| 正在播放欧美视频| 久久夜色精品国产噜噜av| 国产精品黄页免费高清在线观看| 亚洲国产精品精华液2区45| 亚洲欧美综合| 午夜宅男久久久| 欧美精品一区视频| 亚洲精品久久久久久久久久久| 久久精品视频在线免费观看| 欧美尤物巨大精品爽| 欧美日韩在线三区| 亚洲国产精品一区二区久| 亚洲成色999久久网站| 欧美在线视频免费观看| 欧美三级电影大全| 亚洲福利久久| 亚洲欧美日韩国产另类专区| 一本久久精品一区二区| 欧美第十八页| 激情六月综合| 欧美在线网站| 久久精彩视频| 一区二区在线观看av| 亚洲私人黄色宅男| 日韩一二三区视频| 免费中文字幕日韩欧美| 最新国产拍偷乱拍精品| 日韩一级网站| 欧美日韩三级在线| 亚洲性感激情| 欧美在线亚洲在线| 伊人久久婷婷色综合98网| 亚洲激情视频在线观看| 欧美国产丝袜视频| 亚洲免费观看高清完整版在线观看熊 | 欧美日韩国产成人在线91| 一本一本a久久| 欧美一区二区三区视频免费| 国产女主播一区| 欧美有码在线视频| 免费观看亚洲视频大全| 亚洲国产欧美一区| 亚洲亚洲精品三区日韩精品在线视频| 国产精品成人一区二区网站软件 | 欧美亚州一区二区三区 | 国产精品综合视频| 一区二区欧美在线| 欧美一区二区黄| 国产婷婷成人久久av免费高清 | 亚洲精品免费在线播放| 欧美视频专区一二在线观看| 亚洲一区欧美激情| 久久久亚洲一区| 一本到高清视频免费精品| 久久精品一区蜜桃臀影院| 亚洲最新视频在线播放| 久久综合伊人77777| 亚洲一区二区欧美| 欧美精品一区二区精品网| 欧美亚洲在线视频| 欧美午夜电影在线| 亚洲人成亚洲人成在线观看| 国产女人精品视频| 亚洲一区二区在线免费观看| 在线欧美日韩国产| 久久精品一级爱片| 亚洲性感激情|