<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于ARM處理器的軟件優(yōu)化設(shè)計(jì)

          基于ARM處理器的軟件優(yōu)化設(shè)計(jì)

          作者: 時(shí)間:2016-12-02 來(lái)源:網(wǎng)絡(luò) 收藏
          引言

          隨著嵌入式系統(tǒng)在工業(yè)控制、汽車系統(tǒng)、家庭網(wǎng)絡(luò)、醫(yī)療衛(wèi)生、無(wú)線技術(shù)等領(lǐng)域內(nèi)的大量應(yīng)用,嵌入式系統(tǒng)開(kāi)發(fā)者必須面對(duì)務(wù)種復(fù)雜的挑戰(zhàn),其中就包括如何在代碼性能和系統(tǒng)成本之間進(jìn)行平衡。在這方面,ARM處理器可以提供給開(kāi)發(fā)者業(yè)界領(lǐng)先的技術(shù)方案ARMCortex系列提供了一個(gè)標(biāo)準(zhǔn)的體系結(jié)構(gòu)來(lái)滿足各種技術(shù)的不同性能要求,是專門針對(duì)功耗和成本敏感的嵌入式應(yīng)用領(lǐng)域?qū)崿F(xiàn)高性能而設(shè)計(jì)的,它大大簡(jiǎn)化了編程的復(fù)雜性,其成熟的技術(shù)使ARM架構(gòu)成為各種應(yīng)用的上佳選擇。

          ARM Cortex處理器的統(tǒng)一技術(shù)是Thumb-2技術(shù),它以現(xiàn)有的ARM技術(shù)為基礎(chǔ),綜合了ARM指令和Thumb指令的優(yōu)勢(shì),對(duì)優(yōu)化嵌人式軟件設(shè)計(jì)具有獨(dú)到的優(yōu)勢(shì),提供了最佳的代碼密度,能更合理地使用存儲(chǔ)器,對(duì)于靠近處理器內(nèi)核的高速存儲(chǔ)器至關(guān)重要,即使只節(jié)省小部分內(nèi)存,也將大大提高系統(tǒng)的性能,大幅降低功耗。

          1 Thumb-2 指令簡(jiǎn)介

          并非所有的運(yùn)算都能夠映射到Thumb指令集,有時(shí)需要多條Thumb指令來(lái)模擬一條32位指令的任務(wù)。而且Thumb指令不能訪問(wèn)協(xié)處理器,不能使用異常中斷指令,不支持媒體功能,當(dāng)應(yīng)用中有這些需求而且對(duì)存儲(chǔ)器窄問(wèn)要求較高時(shí),必須混合使用ARM指令和Thumb指令,處理器內(nèi)核根據(jù)需要切換到Thumb狀態(tài)以獲取高代碼密度或切換到ARM狀態(tài)以獲取出色的性能。在開(kāi)發(fā)階段,為r充分利用存儲(chǔ)器,需要反復(fù)調(diào)整哪些代碼使用ARM指令、哪些代碼使用Thumb指令。往往只有等到軟件和硬件完成后,才能最終決定ARM/Thumb指令的使用方式,這些因素會(huì)使開(kāi)發(fā)流程變得非常復(fù)雜。

          Thumb-2技術(shù)足對(duì)ARM架構(gòu)的非常重要的擴(kuò)展,它可以改善Thumb指令集的性能。Thumb-2指令集在現(xiàn)有的Thumb指令的基礎(chǔ)上做了如下的擴(kuò)充:

          · 增加了一些新的16位Thumb指令來(lái)改進(jìn)程序的執(zhí)行流程

          · 增加了一些新的32位Thumb指令以實(shí)現(xiàn)一些ARM指令的專有功能。

          · 擴(kuò)充原有的ARM指令,增加了一些新的指令來(lái)改善代碼性能和數(shù)據(jù)處理的效率。

          使用Thumb-2指令就不需要在ARM/Thumb狀態(tài)之間反復(fù)切換了,代碼密度和性能得到的顯著的提高。

          2 使用Thumb-2指令優(yōu)化設(shè)計(jì)

          對(duì)于已經(jīng)有ARM處理器開(kāi)發(fā)經(jīng)驗(yàn)的嵌入式開(kāi)發(fā)工程師析言,使用Thumb-2技術(shù)是非常簡(jiǎn)單的,因?yàn)門humb-2技術(shù)是在ARM和Thumb基礎(chǔ)上經(jīng)過(guò)創(chuàng)新后發(fā)展起來(lái)的,它繼承了原有的基本編程方法,同時(shí)具備ARM/Thumb不可比擬的優(yōu)越性。開(kāi)發(fā)人員在設(shè)計(jì)嵌入式軟件時(shí),只需要重點(diǎn)關(guān)注對(duì)整體性能影響最大的那部分代碼設(shè)計(jì),就能夠平衡好性能、代碼密度和功耗之間的關(guān)系。

          2.1 減小漢名(Hamming)距離

          表1漢名距離變化對(duì)比


          如表1所示,兩組代碼都是用于計(jì)算表達(dá)式(x1+x2)x(x3-x4)的值,分別使用3條指令束實(shí)現(xiàn)。每條指令先成的功能、字書數(shù)、寄存器的使用數(shù)目、操作碼都完全一樣,不同之處就是各寄存器操作數(shù)的二進(jìn)制編碼不同。

          Rd代表目標(biāo)寄存器,Rn和Rm代表源操作數(shù)寄存器。執(zhí)行原代碼時(shí),Rd的比特位變化4次,Rn和Rm分別變化3次和5次,操作數(shù)總的比特位變化12次。執(zhí)行優(yōu)化后的代碼時(shí),操作數(shù)總的比特位變化為6次,僅為原代碼的一半,能有效地降低指令執(zhí)行時(shí)的功耗。

          2.2擅用16位常數(shù)指令

          Thumb-2指令集中增加了2條關(guān)于16位常數(shù)的新指令。MOVW可以把一個(gè)16位常數(shù)加載到寄存器中,并用0填充寄存器的高16位;另一條指令MOVT可以把一個(gè)16位常數(shù)加載到寄存器的高16位中。這兩條指令組合使用就可以把一個(gè)32位常數(shù)加載到寄存器中。

          操作32位立即數(shù)或是訪問(wèn)外設(shè),都需要把32位常數(shù)加載到寄存器中。對(duì)于原來(lái)的ARM/Thumb指令系統(tǒng),因指令編碼位數(shù)限制.最多只能使用12位常數(shù),且其有效位數(shù)只有8位,另外4位用于移位。對(duì)任意一個(gè)32位的立即數(shù)或者一個(gè)地址值讀取到寄存器需要使用到LDR偽指令,編澤器把該32位數(shù)據(jù)放在數(shù)據(jù)緩沖區(qū)中,同時(shí)用基于PC的LDR指令讀取該數(shù)據(jù),程序執(zhí)行時(shí),會(huì)在處理器中引起額外的開(kāi)銷,這些開(kāi)銷來(lái)自于需要額外的時(shí)鐘周期使數(shù)據(jù)端口能夠?qū)χ噶盍鬟M(jìn)行訪問(wèn)。

          用兩條指令把32位常數(shù)分成兩個(gè)16位常數(shù)分兩次加載到寄存器中,意味著數(shù)據(jù)直接在指令流內(nèi)部,不再需要通過(guò)數(shù)據(jù)端口來(lái)訪問(wèn)。相對(duì)于LDR偽指令方式,這種解決辦法可以消除通過(guò)數(shù)據(jù)端口訪問(wèn)指令流的額外開(kāi)銷,進(jìn)而提高性能,降低功耗。

          2.3靈活應(yīng)用位操作指令

          嵌入式軟件開(kāi)發(fā)者經(jīng)常會(huì)碰到位操作方面的問(wèn)題,如需要對(duì)某個(gè)變量中的某幾位賦值或復(fù)位。提取寄存器的部分?jǐn)?shù)據(jù)位信息,寄存器中插入固定比特信息等,開(kāi)發(fā)人員往往采用邏輯運(yùn)算指令和移位操作指令的組合來(lái)實(shí)現(xiàn)。如表2所爾,兩組代碼完成的功能一樣,把寄存器R1和寄存器R2的有用信息集中壓縮到寄存器R0中,以節(jié)省寄存器。R1的有用信息為R1[15:0],R2的有用信息為R2[24:8]。對(duì)于原代碼,因?yàn)樾枰帘渭拇嫫鱎1和R2的16位數(shù)據(jù),需要16位常數(shù)參與,所以使用MOVW指令把16位常數(shù)引入,完成程序功能共用了4條指令,還額外使用寄存器R3來(lái)存放中間變量。優(yōu)化后的代碼只需要一條指令即可實(shí)現(xiàn),而且不需要額外的寄存器參與計(jì)算。

          表2位操作指令對(duì)比


          除PKHBT指令外。Thumb-2技術(shù)還提供PKHTB、BFC、BFI、SBFX、UBFX等位操作指令。這樣,開(kāi)發(fā)者進(jìn)行比特位的插入和抽取所需的指令數(shù)目就可以明顯減少,使用壓縮的數(shù)據(jù)結(jié)構(gòu)也會(huì)更加方便。而代碼對(duì)寄存器的需求也會(huì)降低。

          上一頁(yè) 1 2 下一頁(yè)

          關(guān)鍵詞: ARM處理器軟件優(yōu)

          評(píng)論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();