新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > DSP的匯編程序優化方法及實例分析

        DSP的匯編程序優化方法及實例分析

        作者: 時間:2012-05-16 來源:網絡 收藏

        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;;

          內循環結束*/

          _Pieture_Segment_Inner_Loop_End:

          if nlele,jump_Picture_Segment Inner Loop(p);;

          外循環結束*/

          _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)

          /*循環擴展部分*/

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

          (2)提前取數達到并行

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

          如實例4中所示,(1)在循環外提前進行了取數,并在(2)達到了并行,(3)、(4)對由于提前取數造成的指針移位和額外的賦值進行了修正。但是,在使用此進行精簡時要特別注意循環結束后對指針的修正。經計算。實例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:



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 安岳县| 永丰县| 保德县| 太和县| 大庆市| 余干县| 鸡西市| 株洲县| 金门县| 屏东县| 从江县| 沂源县| 普陀区| 保亭| 台江县| 洪湖市| 朝阳市| 吉木萨尔县| 信阳市| 出国| 阿坝县| 丹东市| 华坪县| 满城县| 张家界市| 陵水| 南平市| 驻马店市| 搜索| 紫云| 普陀区| 漠河县| 建宁县| 东明县| 海阳市| 富阳市| 铁力市| 浪卡子县| 宜宾县| 林甸县| 台中县|