新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > DSP的匯編程序優(yōu)化方法及實例分析

        DSP的匯編程序優(yōu)化方法及實例分析

        作者: 時間:2012-05-16 來源:網(wǎng)絡(luò) 收藏

        xr4=[j4+:1];;

        本文引用地址:http://www.104case.com/article/149041.htm

          xeomp(r4,r2);;

          if xah;do,xr4=0;;

          ifnxah;do,xr4=xr2;;

          [j5+=1]=xr4;;

          內(nèi)循環(huán)結(jié)束*/

          _Pieture_Segment_Inner_Loop_End:

          if nlele,jump_Picture_Segment Inner Loop(p);;

          外循環(huán)結(jié)束*/

          _Picture_segment_Outter_Loop_End:

          if nleoe,jump_Pieture_Segment_Outter_Loop(p);;

          實例3:

          lcO=xr0;;

          xrl=lshifi r0 by一1;;_

          _Picture_Segment_Outter_Loop:

          lcl=xrl;;

          _Picture_Segment_Inner_Loop:

          xr3=[j4+=l];;

          xeomp(r3,r2);xr4=[j4+=1];;(1)

          ifxalt;do,xr3=0;;

          if nxalt;do,xr3=xr2;;

          [j5+=l]=xr3;xcomp(r4,r2);;(2)

          /*循環(huán)擴展部分*/

          if xalt;do,xr4:0;;

          ifnxah;do,xr4=xr2;;

          [j5+=1]=xr4;;

          _Picture_Segment_Inner_Loop_End:

          if nlele,jump_Pieture_Segmem Inner Loop(p);;

          _Picture segment_Outter_Loop_End:

          if nleoe,jump_Picture_Segment_Outter_Loop(p);;

          如實例3中的(1)、(2)所示,下一循環(huán)的取數(shù)和與閾值比較語句同上一循環(huán)中的指令達到了并行。分別運行實例1與實例3并計算其每個像素所花費的時間,可知實例1中平均每個像素花費7.12個時鐘周期,而實例3中平均每個像素花費5.12個時鐘周期,比前少用了差不多2個時鐘周期。

          (2)提前取數(shù)達到并行

          在循環(huán)外提前取數(shù),徹底打破循環(huán)中各指令間時間的先后順序,增強其獨立性并最終達到并行的目的,這也是一種常用的。實例4利用此種,在實例3的基礎(chǔ)上對實例1的代碼段做了進一步的與精簡。

          如實例4中所示,(1)在循環(huán)外提前進行了取數(shù),并在(2)達到了并行,(3)、(4)對由于提前取數(shù)造成的指針移位和額外的賦值進行了修正。但是,在使用此進行精簡時要特別注意循環(huán)結(jié)束后對指針的修正。經(jīng)計算。實例4平均每個像素所花費的時間為4.18個指令周期。

          實例4:

          lcO=xrO::

          xrl=lshifi rO by-1;;

          _Picture_Segment_Outter_Loop:

          lcl=xrl::

          xr3=[j4=1];; (1)

          _Picture_Segment_Inner_Loop:



        評論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 嘉祥县| 本溪| 乐清市| 樟树市| 恩平市| 扎赉特旗| 哈密市| 呈贡县| 鸡西市| 呼和浩特市| 临潭县| 上高县| 红安县| 韶山市| 皋兰县| 凉城县| 周宁县| 宿州市| 鹤峰县| 横峰县| 应用必备| 望都县| 临潭县| 宜宾县| 永修县| 康乐县| 伊川县| 东安县| 太湖县| 天水市| 临高县| 溧水县| 青铜峡市| 十堰市| 肃南| 郑州市| 临高县| 阿拉尔市| 桦甸市| 双峰县| 汝城县|