XC166單片機的DSP程序優(yōu)化方法
2.3 內(nèi)存帶寬沖突排除
如果在流水線上的指令在同一時間訪問同一內(nèi)存,就會發(fā)生內(nèi)存帶寬沖突,MAC單元的CoXXX指令是特別為實現(xiàn)DSP設計的。為了避免在DPRAM中發(fā)生帶寬沖突,CoXXX指令的其中一個操作數(shù)必須放在SRAM中,以保證在單個機器周期內(nèi)執(zhí)行MAC單元指令。例如:
2.4 指令重排
在用MAC單元指令編程時,經(jīng)常要改變MAC單元的特殊功能寄存器,比如IDX0,IDX1、QX0、QX1、QR0以及QR1等,在XC166單片機中,有一些指令將會阻塞在譯碼階段,如果這些指令正好在一條修改特殊功能寄存器(SFR)指令之后執(zhí)行,這種阻塞將引起3個機器周期的延時。
這些指令包括:
◇使用長地址模式的指令;
◇使用間接尋址的指令,除JMPS和CALLI外;
◇所有MAC單元指令(CoXXX指令)。
為了避免指令阻塞,在使用上述指令時,如有阻塞情況發(fā)生,應該重新重排指令,以消除延時,例如:
3 結論
用于英飛凌XC166單片機的DSP優(yōu)化技術分為兩類:與硬件相關的優(yōu)化技術和獨立于硬件的優(yōu)化技術。獨立于硬件的優(yōu)化技術也可以用于其他的單片機或?qū)S脭?shù)字信號處理器。
評論