如何編寫(xiě)電力實(shí)時(shí)應(yīng)用的運(yùn)行在DSP上的高效C代碼
摘要:數(shù)字信號(hào)處理器(DSP)因其出色的處理能力,在包括電力應(yīng)用在內(nèi)的各個(gè)領(lǐng)域得到十分廣泛的應(yīng)用。為了滿足電力應(yīng)用的高實(shí)時(shí)性的要求,需要為DSP編寫(xiě)高效的代碼。目前對(duì)DSP進(jìn)行程序設(shè)計(jì)時(shí),使用得最多的是C語(yǔ)
了能真正發(fā)揮register關(guān)鍵字的作用,在選擇被修飾的變量時(shí)需要作充分的考慮。
3.2.4循環(huán)嵌套問(wèn)題
循環(huán)語(yǔ)句是程序設(shè)計(jì)中常用的語(yǔ)句,有時(shí)候甚至需要嵌套使用。在嵌套時(shí)有一個(gè)原則,外循環(huán)的循環(huán)次數(shù)盡量少,內(nèi)循環(huán)的循環(huán)次數(shù)盡量多。因?yàn)槌绦蛟谶M(jìn)入循環(huán)的時(shí)候需要設(shè)置一些寄存器,外循環(huán)的次數(shù)太多會(huì)使得程序多次進(jìn)入內(nèi)循環(huán)而帶來(lái)較大的時(shí)間開(kāi)銷(xiāo)。例如:
for(m=0;m<10;m++)
{
for(n=0;n<1000;n++)
{
……
}
}
這段代碼的執(zhí)行效率要比下面代碼的執(zhí)行效率高。
for(m=0;m<1000;m++)
{
for(n=0;n<10;n++)
{
……
}
}
3.2.5 減少除法的使用
除法運(yùn)算無(wú)論在浮點(diǎn)DSP還是定點(diǎn)DSP中都是比較復(fù)雜的,需要消耗比較多的指令周期【6】。因此需要盡量減少除法的使用,特別是大規(guī)模除法的使用。在某些細(xì)節(jié)上也應(yīng)該注意用其他更高效的指令來(lái)取代除法。
例如,在進(jìn)行除以2和除以4等除以2的冪次的操作時(shí),用移位的方式來(lái)代替。這樣做的效果是一樣的,但是執(zhí)行的時(shí)間效率卻要高很多。在很多對(duì)數(shù)據(jù)進(jìn)行放大和縮小的操作中,如果縮放的倍數(shù)不需要十分精確,也完全可以用移位來(lái)代替。
3.2.6 使用查表法
查表法是一種常用的方法,在很多時(shí)候犧牲一些數(shù)據(jù)空間建立一個(gè)表,換來(lái)的是時(shí)間效率的極大提高。查表法在信道編碼中的使用尤為常見(jiàn),例如Viterbi編碼。如果不使用查表的方法,Viterbi編碼需要通過(guò)對(duì)移位寄存器中的各個(gè)位進(jìn)行處理,以得到編碼的結(jié)果。這個(gè)過(guò)程雖然不是很復(fù)雜,但是和查表的方法相比,其時(shí)間效率還是非常低的。如果我們建立一個(gè)表,表的下標(biāo)是移位寄存器的狀態(tài),用二進(jìn)制數(shù)表示;表的內(nèi)容是移位寄存器在該狀態(tài)下時(shí)Viterbi編碼器所對(duì)應(yīng)的輸出。這樣就建立了編碼移位寄存器狀態(tài)和Viterbi編碼器輸出的單射關(guān)系。通過(guò)移位寄存器的狀態(tài)來(lái)查表,直接得到Viterbi編碼器的輸出。查表的方法省去了編碼的過(guò)程,大大提高了代碼的時(shí)間效率。
在上面提到的減少除法的使用時(shí),我們介紹了一些簡(jiǎn)單的取代除法運(yùn)算的其他操作。實(shí)際上,查表的方法也是一種可以取代除法運(yùn)算的方法。除以一個(gè)數(shù),等于乘以一個(gè)數(shù)的倒數(shù)。我們可以通過(guò)事先建立倒數(shù)表的方法,來(lái)變除法為乘法。這樣的方法對(duì)被除數(shù)的范圍有一定要求,范圍不能太大。否則,要么表的規(guī)模太大,要么計(jì)算精度會(huì)下降得比較厲害。但這不失為是一種取代除法運(yùn)算的很好的方法,合理得建立倒數(shù)表可以很好得解決這種存儲(chǔ)空間和計(jì)算精度的矛盾。
3.2.7 算法的優(yōu)化
最后要提到的,實(shí)際上也最重要的就是算法的優(yōu)化。精練的算法比粗糙的算法時(shí)間效率高很多

責(zé)任編輯:和碩涵
免責(zé)聲明:本文僅代表作者個(gè)人觀點(diǎn),與本站無(wú)關(guān)。其原創(chuàng)性以及文中陳述文字和內(nèi)容未經(jīng)本站證實(shí),對(duì)本文以及其中全部或者部分內(nèi)容、文字的真實(shí)性、完整性、及時(shí)性本站不作任何保證或承諾,請(qǐng)讀者僅作參考,并請(qǐng)自行核實(shí)相關(guān)內(nèi)容。
我要收藏
個(gè)贊
-
現(xiàn)貨模式下谷電用戶價(jià)值再評(píng)估
2020-10-10電力現(xiàn)貨市場(chǎng),電力交易,電力用戶 -
PPT | 高校綜合能源服務(wù)有哪些解決方案?
2020-10-09綜合能源服務(wù),清潔供熱,多能互補(bǔ) -
深度文章 | “十三五”以來(lái)電力消費(fèi)增長(zhǎng)原因分析及中長(zhǎng)期展望
2020-09-27電力需求,用電量,全社會(huì)用電量
-
PPT | 高校綜合能源服務(wù)有哪些解決方案?
2020-10-09綜合能源服務(wù),清潔供熱,多能互補(bǔ) -
深度文章 | “十三五”以來(lái)電力消費(fèi)增長(zhǎng)原因分析及中長(zhǎng)期展望
2020-09-27電力需求,用電量,全社會(huì)用電量 -
我國(guó)電力改革涉及的電價(jià)問(wèn)題
-
電化學(xué)儲(chǔ)能應(yīng)用現(xiàn)狀及對(duì)策研究
2019-08-14電化學(xué)儲(chǔ)能應(yīng)用 -
《能源監(jiān)測(cè)與評(píng)價(jià)》——能源系統(tǒng)工程之預(yù)測(cè)和規(guī)劃
-
《能源監(jiān)測(cè)與評(píng)價(jià)》——能源系統(tǒng)工程之基本方法
-
貴州職稱論文發(fā)表選擇泛亞,論文發(fā)表有保障
2019-02-20貴州職稱論文發(fā)表 -
《電力設(shè)備管理》雜志首屆全國(guó)電力工業(yè) 特約專(zhuān)家征文
2019-01-05電力設(shè)備管理雜志 -
國(guó)內(nèi)首座蜂窩型集束煤倉(cāng)管理創(chuàng)新與實(shí)踐
-
人力資源和社會(huì)保障部:電線電纜制造工國(guó)家職業(yè)技能標(biāo)準(zhǔn)
-
人力資源和社會(huì)保障部:變壓器互感器制造工國(guó)家職業(yè)技能標(biāo)準(zhǔn)
-
《低壓微電網(wǎng)并網(wǎng)一體化裝置技術(shù)規(guī)范》T/CEC 150
2019-01-02低壓微電網(wǎng)技術(shù)規(guī)范