• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      淺談ARM Cortex-M0

      2010-08-14 08:03:44新唐科技盧泰均
      關(guān)鍵詞:程序代碼指令集低功耗

      新唐科技 盧泰均

      引 言

      ARM公司在2009年初發(fā)布了其嵌入式處理器系列中最小型、最低功耗的Cortex-M0處理器。Cortex-M0低功耗、高性能與極精簡(jiǎn)程序代碼的特性,能應(yīng)用于各種微控制器(MCU)中,并可讓研發(fā)業(yè)者以8位的價(jià)位創(chuàng)造32位的效能,并進(jìn)一步將傳統(tǒng)的8位和16位的處理器推進(jìn)至更高效能、更低功耗的32位處理器。

      關(guān)于Cortex-M0

      ARM一改其傳統(tǒng)的命名法則,以Cortex來為其全新的微處理器系列命名。在這個(gè)系列中,核心采用全新的ARMv7架構(gòu),引進(jìn)了許多革命性的突破與創(chuàng)新,并首次由單一款式延伸成3種款式,并各自定義其相對(duì)應(yīng)的架構(gòu),分別為 Cortex-A(ARMv7-A)、Cortex-R(ARMv7-R)、Cortex-M(ARMv7-M)。Cortex-A系列適于高性能的開放應(yīng)用平臺(tái),Cortex-R系列適于實(shí)時(shí)信號(hào)處理控制系統(tǒng),而Cortex-M系列則瞄準(zhǔn)了對(duì)成本和功耗敏感卻又有高性能需求的嵌入式應(yīng)用領(lǐng)域,成為在微控制器、工業(yè)控制系統(tǒng)、汽車控制系統(tǒng)及無線網(wǎng)絡(luò)等各種手持應(yīng)用系統(tǒng)中的最佳解決方案。

      Cortex-M0是Cortex-M家族中的微處理器核心,其擁有最低閘數(shù)、最低功耗以及強(qiáng)悍性能的優(yōu)異表現(xiàn)。Cortex-M0為32位、3級(jí)流水線 RISC處理器,其核心與ARM7同為馮·諾依曼(Von Neumann)架構(gòu),采指令和數(shù)據(jù)共享同一總線的設(shè)計(jì)。作為新一代的微處理器,Cortex-M0在整體的設(shè)計(jì)架構(gòu)上進(jìn)行了許多改革與創(chuàng)新,如折中效率和程序代碼密度的全新指令集架構(gòu)(ISA)、事先定義的系統(tǒng)存儲(chǔ)器地址映像(system address map)、改善效率并增強(qiáng)確定性的嵌套向量中斷系統(tǒng)(NVIC)與不可屏蔽中斷(NMI)、全新的硬件除錯(cuò)單元等等,都帶給了使用者全新的體驗(yàn)和更便利、更有效率的操作。

      Cortex-M0其核心架構(gòu)為ARMv6-M,為Cortex-M 家族架構(gòu)ARMv7-M的一個(gè)子集,去除了許多復(fù)雜的支持,所以大幅降低基本核心之門數(shù)至12K,從而擁有極低之動(dòng)態(tài)功耗85 μ W/Hz。而在低成本、低功耗的前提下,由于采用了全新的指令集架構(gòu)Thumb-2指令集,Cortex-M0并沒有犧牲掉應(yīng)有的效能,其運(yùn)算能力可以達(dá)到0.9 DM IPS/M Hz,而與其他的16位與8位處理器相比,由于Cortex-M0的運(yùn)算性能大幅提高,所以在同樣任務(wù)的執(zhí)行上Cortex-M0只需較低的運(yùn)行速度,而大幅降低了整體的動(dòng)態(tài)功耗。

      指令集Thumb-2

      在傳統(tǒng)的ARM7TDMI處理器系統(tǒng)中,系統(tǒng)重置后都是從ARM狀態(tài)/指令集開始運(yùn)行,處理器核心可以根據(jù)特定的應(yīng)用需求切換到Thumb狀態(tài)/指令集執(zhí)行。ARM指令集為一32位長(zhǎng)度之指令碼,由于指令碼長(zhǎng)度較長(zhǎng),所以指令集都可以是有條件的執(zhí)行,以獲得較出色的效能。Thumb指令集為一16位長(zhǎng)度之指令碼,為ARM指令集之子集,程序代碼密度提高了一倍,但可能需要更多的指令去執(zhí)行相同的任務(wù),所以造成了性能的下降。程序設(shè)計(jì)者可以根據(jù)不同的需求在兩種狀態(tài)下切換,以在程序代碼效能和密度中取得平衡,但在狀態(tài)切換中會(huì)有額外的程序執(zhí)行,導(dǎo)致性能進(jìn)一步的下降。另外ARM和 Thumb指令集需要以不同方式編譯,而增加的軟件開發(fā)管理上的復(fù)雜度。Thumb-2指令集則是一全新的技術(shù),為一16位和32位指令碼的結(jié)合,兩種長(zhǎng)度的指令碼可共存于同一模式。所以全新的Thumb-2技術(shù)結(jié)合了16位指令集高程序代碼密度與32位指令集高效能的各自優(yōu)點(diǎn),并免去了狀態(tài)切換之復(fù)雜度,而提升了整體的效能。

      Cortex-M0同時(shí)支持了Thumb和部分的Thumb-2指令集,核心不論是在正常程序執(zhí)行還是處理中斷異常模式均保持在單一Thumb狀態(tài)下執(zhí)行,免去了不必要的狀態(tài)切換,大幅地節(jié)省了執(zhí)行時(shí)間和指令碼大小。

      系統(tǒng)存儲(chǔ)器地址映像

      Cortex-M0核心采用一個(gè)系統(tǒng)存儲(chǔ)器地址映像,為高達(dá)4 GB的可尋址存儲(chǔ)空間提供簡(jiǎn)單和固定的映像機(jī)制。這個(gè)存儲(chǔ)器映像機(jī)制為程序代碼、SRAM、外部?jī)?nèi)存和外圍設(shè)備提供了預(yù)先定義的專用地址。在傳統(tǒng)的ARM微處理器架構(gòu)中,并沒有預(yù)先定義好存儲(chǔ)器映像地址,而是由各家芯片制造商自行定義和設(shè)計(jì),因此即使采用了相同的核心處理器,卻有完全不同的存儲(chǔ)器映像地址,給相互間程序代碼移植帶來了很大困難。Cortex-M0則是預(yù)先定義好了完整的存儲(chǔ)器地址映像表,詳細(xì)載明了每個(gè)區(qū)間地址內(nèi)存儲(chǔ)器的作用和特性,但也預(yù)留了某些區(qū)域給各家廠商自行設(shè)計(jì)。這種預(yù)先定義的映像關(guān)系,使得各家廠商可以對(duì)存取速度從事高度的優(yōu)化,而且對(duì)于單芯片上的系統(tǒng)設(shè)計(jì)而言更易整合。

      嵌套式向量中斷系統(tǒng)

      嵌套式向量中斷系統(tǒng)(NVIC)是Cortex-M0另一個(gè)令人注目的創(chuàng)新設(shè)計(jì),它可以依據(jù)使用者不同的需求進(jìn)行高度配置。Cortex-M0中的NVIC支持16個(gè)系統(tǒng)異常(exception,部分為系統(tǒng)保留)與最多32個(gè)外部中斷(interrupt,外部中斷支持?jǐn)?shù)量由芯片設(shè)計(jì)商自行配置)供芯片設(shè)計(jì)商使用,搭配4級(jí)優(yōu)先權(quán)的設(shè)置并借助NVIC與Cortex-M0核心緊密的結(jié)合為整個(gè)系統(tǒng)提供豐富且實(shí)時(shí)的中斷處理能力。

      Cortex-M0采用一個(gè)事先定義的向量表,屬于程序代碼的一部分,向量表定義了堆棧的起始地址和各個(gè)異常/中斷的入口地址。當(dāng)某個(gè)中斷被接受之后,Cortex-M0通過內(nèi)部總線從向量表中獲取其地址來執(zhí)行。硬件支持的向量化中斷功能大幅地縮短了進(jìn)入中斷的延遲,提高了程序效能,因?yàn)槌绦虿辉傩枰袛嘀袛鄟碓春瓦M(jìn)行必要的寄存器堆棧,完全由硬件自動(dòng)完成。當(dāng)異常發(fā)生時(shí),程序狀態(tài)寄存器(PSR)、程序計(jì)數(shù)器(PC)、鏈接寄存器(LR)和 R0~R3、R12等通用寄存器將自動(dòng)被存進(jìn)堆棧;同時(shí),處理器從中斷向量表中讀取出相對(duì)應(yīng)的中斷服務(wù)程序地址,并獲取中斷服務(wù)程序的第一條指令。一旦堆疊存儲(chǔ)和取指完成后,中斷服務(wù)或異常處理程序便開始執(zhí)行,展現(xiàn)了極高且確切的效能。隨后在中斷服務(wù)程序結(jié)束前,相關(guān)寄存器將自動(dòng)從堆棧中取出,原本中斷了的正常程序也因此恢復(fù)執(zhí)行,完全不需要軟件的介入。由于可以在硬件中處理堆棧操作,Cortex-M0避免了傳統(tǒng)的C語言中斷服務(wù)程序中為了完成堆棧處理所要編寫的匯編程序,這使應(yīng)用程序的開發(fā)變得更加簡(jiǎn)單與便利。另外,值得一提的是,Cortex-M0還支持了所謂的Tail-Chaining和 Late-Arrival先進(jìn)技術(shù),大幅改善了傳統(tǒng)ARM微處理器在相異的中斷請(qǐng)求交互發(fā)生時(shí)的處理效率,縮短了中斷延遲,進(jìn)一步提升了Cortex-M0在實(shí)時(shí)系統(tǒng)的處理能力。

      與ARM7TDMI之比較

      基于ARM7核心的微處理器在過去幾十年襲卷了32位MCU市場(chǎng),在此將Cortex-M0和這位師出同門的老大哥加以比較,使大家清楚它們的差異。

      表1

      新唐科技NuMicro家族

      微控制器(MCU)廠商新唐科技(Nuvoton Technology Inc.)前身為華邦電子邏輯事業(yè)群,近期推出以ARM Cortex-M0為核心的 32位微控制器——NuMicro家族。該家族采用ARM公司最新發(fā)布的最小型、最低功耗、低門數(shù)、精簡(jiǎn)程序代碼的Cortex-M0處理器,內(nèi)建各種模擬與混合信號(hào)組件以及多種高速通信能力裝置,執(zhí)行效能約為傳統(tǒng)8051的72倍?;贙eil開發(fā)環(huán)境下,客戶很容易從8051升級(jí)至NuMicro來創(chuàng)造產(chǎn)品價(jià)值與競(jìng)爭(zhēng)力。

      NuMicro家族的成員包括了四大系列,NUC100系列、NUC120系列、NUC130系列、NUC140系列。其核心Cortex-M0的執(zhí)行頻率為50 M Hz,具有先進(jìn)的嵌套向量中斷控制(NVIC)、喚醒中斷控制(WIC)、單周期32位乘法器與Serial Wire硬件除錯(cuò)單元支持等優(yōu)異特性,并擁有Sleep與Power-Down不同的節(jié)能模式;并且配置了一個(gè)遞減計(jì)數(shù)24位SysTick Timer,它可定時(shí)產(chǎn)生中斷,提供理想的計(jì)時(shí)功能來驅(qū)動(dòng)實(shí)時(shí)操作系統(tǒng)或其他預(yù)定的任務(wù)。此家族配備了多達(dá)128 KB的閃存和 16 KB的SRAM,外圍設(shè)備提供了高達(dá)12位、800 ksps的8通道ADC、多組 UART、SPI、I2C 與 USB2.0等高速總線等接口。其他外設(shè)則包括至多80個(gè)GPIO腳、4組通用計(jì)數(shù)器/定時(shí)器、RTC、看門狗定時(shí)器與PWM、CAN總線控制器豐富的外圍裝置可供客戶依需求搭配使用,并提供多種封裝樣式供選擇。

      總 結(jié)

      Cortex-M0核心的邏輯門數(shù)很少,非常適合低成本、低功耗要求的應(yīng)用。由于支持全新的Thumb-2指令集,免除了狀態(tài)間的切換,增強(qiáng)了整體效能,提升了程序代碼密度,簡(jiǎn)化了軟件的開發(fā)與維護(hù),縮短了產(chǎn)品的開發(fā)時(shí)間。Cortex-M0內(nèi)建除錯(cuò)系統(tǒng),在支持傳統(tǒng)的JTAG基礎(chǔ)上,開發(fā)了更新更好的Serial Wire除錯(cuò)接口,并配置了多達(dá)4個(gè)斷點(diǎn)和2個(gè)觀察點(diǎn)。Cortex-M0已獲得ARM微控制器開發(fā)套Keil RealView MDK的支持,結(jié)合了ARM Real-View編譯工具以及強(qiáng)大完善的Keil uVision IDE與Debugger工具。Cortex-M0擁有許多實(shí)時(shí)操作系統(tǒng)與第三方工具的支持,包括IAR Systems、Mentor Graphics等。該處理器并向上兼容于其家族系列中的產(chǎn)品開發(fā)工具以及二進(jìn)制程序代碼,保證其程序代碼未來的移植和發(fā)展性。相信在不久的未來,Cortex-M0將在整個(gè)微控制器市場(chǎng)和嵌入式應(yīng)用系統(tǒng)中大放光彩。

      猜你喜歡
      程序代碼指令集低功耗
      一種高速低功耗比較器設(shè)計(jì)
      3DNow指令集被Linux淘汰
      計(jì)算機(jī)網(wǎng)絡(luò)信息安全未來發(fā)展趨勢(shì)
      基于圖元裝接模式由程序流程圖自動(dòng)生成源代碼
      軟件工程(2016年11期)2017-01-17 16:56:57
      實(shí)時(shí)微測(cè)量系統(tǒng)指令集及解析算法
      什么是AMD64
      基于覆蓋率驅(qū)動(dòng)的高性能DSP指令集驗(yàn)證方法
      ADI推出三款超低功耗多通道ADC
      IDT針對(duì)下一代無線通信推出低功耗IQ調(diào)制器
      低功耗加權(quán)cache替換策略
      吉林市| 辽宁省| 汾阳市| 扬中市| 大丰市| 宁国市| 依兰县| 泸溪县| 武城县| 新疆| 福海县| 盐山县| 江山市| 来凤县| 那坡县| 汉阴县| 龙山县| 博野县| 栾城县| 东辽县| 灌南县| 利辛县| 新建县| 木兰县| 贵德县| 赤城县| 彰化市| 运城市| 榆林市| 息烽县| 延庆县| 南投市| 尼玛县| 黎城县| 上林县| 通州市| 荣昌县| 平乡县| 衡山县| 金门县| 任丘市|