5-第5次課-C54x的流水線_第1頁
5-第5次課-C54x的流水線_第2頁
5-第5次課-C54x的流水線_第3頁
5-第5次課-C54x的流水線_第4頁
5-第5次課-C54x的流水線_第5頁
已閱讀5頁,還剩43頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第2章TMS320C54x的硬件結(jié)構(gòu)一、流水線操作

流水線操作是指各條指令以機器周期為單位,相差一個時間周期而連續(xù)并行工作的情況。

操作原理:將指令分成幾個子操作,每個子操作由不同的操作階段完成。每隔一個機器周期,每個操作階段可以進入一條新指令。在同一個機器周期內(nèi),在不同的操作階段可以處理多條指令,相當于并行執(zhí)行了多條指令。

2024/9/291DSP原理及應(yīng)用第2章TMS320C54x的硬件結(jié)構(gòu)1.流水線操作的概念

’C54x的流水線操作是由6個操作階段或操作周期組成。在任何一個機器周期內(nèi),可以有1~6條不同的指令在同時工作,每條指令可在不同的周期內(nèi)工作在不同的操作階段。

2024/9/292DSP原理及應(yīng)用第2章TMS320C54x的硬件結(jié)構(gòu)1.流水線操作的概念

六個操作階段:①預(yù)取指P;

②取指F;

③譯碼D;

④尋址A;

讀數(shù)R;

執(zhí)行X。

流水線結(jié)構(gòu):預(yù)取指P取指F譯碼D尋址A讀數(shù)R執(zhí)行X將PC中的內(nèi)容加載PAB將讀取到的指令字加載PB將PB的內(nèi)容加載IR對IR的內(nèi)容譯碼若需要,數(shù)據(jù)1讀地址加載DAB若需要,數(shù)據(jù)2讀地址加載CAB修正輔助寄存器和堆棧指針數(shù)據(jù)1加載DB數(shù)據(jù)2加載CB若需要,數(shù)據(jù)3寫地址加載EAB執(zhí)行指令寫數(shù)據(jù)加載EB2024/9/293DSP原理及應(yīng)用第2章TMS320C54x的硬件結(jié)構(gòu)1.流水線操作的概念

各操作階段的功能:預(yù)取指P:

F:

D:

在T1機器周期內(nèi),CPU將PC中的內(nèi)容加載到程序地址總線PAB,找到指令代碼的存儲單元。

在T2機器周期內(nèi),CPU從選中的程序存儲單元中,讀取指令代碼加載到程序總線PB。在T3機器周期內(nèi),CPU將PB中的指令代碼加載到指令譯碼器IR進行譯碼,產(chǎn)生執(zhí)行指令所需要的一系列控制信號。2024/9/294DSP原理及應(yīng)用第2章TMS320C54x的硬件結(jié)構(gòu)各操作階段的功能:尋址A:

讀數(shù)R:

執(zhí)行X:

在T4周期內(nèi),CPU將數(shù)據(jù)1或數(shù)據(jù)2的讀地址或同時將兩個讀地址分別加載到數(shù)據(jù)地址總線DAB和CAB中,并對輔助寄存器或堆棧指針進行修正。CPU在T5周期內(nèi),將讀出的數(shù)據(jù)1和數(shù)據(jù)2分別加載到數(shù)據(jù)總線DB和CB中。若是并行操作指令,可同時將數(shù)據(jù)3的寫地址加載到數(shù)據(jù)地址總線EAB中。在T6機器周期內(nèi),CPU根據(jù)操作碼的要求執(zhí)行指令,并將寫數(shù)據(jù)3通過EB總線寫入指定的存儲單元中。

2024/9/295DSP原理及應(yīng)用第2章TMS320C54x的硬件結(jié)構(gòu)’C54x存儲器操作的各種情況:①執(zhí)行讀單操作數(shù)指令

例如:LD*AR1,A;單周期指令,讀單操作數(shù)

通過DB讀出數(shù)據(jù)讀地址加載DAB通過IR

指令譯碼通過PB讀取指令加載PAB執(zhí)行/寫數(shù)讀數(shù)R尋址A譯碼D取指F預(yù)取指P2024/9/296DSP原理及應(yīng)用第2章TMS320C54x的硬件結(jié)構(gòu)’C54x存儲器操作的各種情況:②執(zhí)行讀雙操作數(shù)指令

例如:MAC*AR2+,*AR3,A;單周期指令,

讀雙操作數(shù)

通過DB和CB讀出數(shù)據(jù)讀地址加載DAB和CAB通過IR

指令譯碼通過PB讀取指令加載PAB執(zhí)行/寫數(shù)讀數(shù)R尋址A譯碼D取指F預(yù)取指P2024/9/297DSP原理及應(yīng)用第2章TMS320C54x的硬件結(jié)構(gòu)’C54x存儲器操作的各種情況:③執(zhí)行寫單操作數(shù)指令

例如:STH

A,*AR1;單周期指令,

寫單操作數(shù)寫地址加載EAB數(shù)據(jù)寫至EB通過IR指令譯碼通過PB讀取指令加載PAB執(zhí)行/寫數(shù)讀數(shù)R尋址A譯碼D取指F預(yù)取指P2024/9/298DSP原理及應(yīng)用第2章TMS320C54x的硬件結(jié)構(gòu)’C54x存儲器操作的各種情況:④執(zhí)行寫雙操作數(shù)指令

例如:DST

A,*AR1;雙周期指令,

寫兩個操作數(shù)

寫地址1加載EAB數(shù)據(jù)1寫至EB通過IR指令譯碼通過PB讀取指令加載PAB執(zhí)行/寫數(shù)讀數(shù)R尋址A譯碼D取指F預(yù)取指P寫地址2加載EAB數(shù)據(jù)2寫至EB執(zhí)行/寫數(shù)讀數(shù)R尋址A譯碼D取指F預(yù)取指P2024/9/299DSP原理及應(yīng)用第2章TMS320C54x的硬件結(jié)構(gòu)’C54x存儲器操作的各種情況:⑤執(zhí)行讀單操作數(shù)和寫單操作數(shù)指令

例如:ST

A,*AR2;單周期并行加載存儲指令,

||LD*AR3,B讀單操作數(shù)和寫單操作數(shù)

執(zhí)行/寫數(shù)讀數(shù)R尋址A譯碼D取指F預(yù)取指PDB讀數(shù)據(jù)寫地址加載EAB讀地址加載DAB通過IR指令譯碼通過PB讀取指令加載PAB數(shù)據(jù)寫至EB2024/9/2910DSP原理及應(yīng)用第2章TMS320C54x的硬件結(jié)構(gòu)’C54x存儲器操作的各種情況:注意:

①預(yù)取指P、取指F和譯碼D操作都相同,但尋址A、讀數(shù)R和執(zhí)行X等操作隨指令的不同而不同;

②若指令含有讀操作,則讀操作的尋址和讀數(shù)分別發(fā)生在A和R級;

③若指令含有寫操作,則寫操作的尋址和寫數(shù)分別發(fā)生在R和X級;④若是多字節(jié)指令,則數(shù)據(jù)的尋址需要若干個機器周期才能完成。

2024/9/2911DSP原理及應(yīng)用第2章TMS320C54x的硬件結(jié)構(gòu)2.7.2流水線操作2.分支轉(zhuǎn)移的流水線操作

根據(jù)是否使用加延時的指令,分支轉(zhuǎn)移的流水線操作可分為兩種工作類型:

無延遲分支轉(zhuǎn)移

延遲分支轉(zhuǎn)移

2024/9/2912DSP原理及應(yīng)用第2章TMS320C54x的硬件結(jié)構(gòu)2.分支轉(zhuǎn)移的流水線操作

(1)無延遲分支轉(zhuǎn)移

地址指令注釋

a1,a2

Bb1;四機器周期,兩字的無延遲分支轉(zhuǎn)移指令

a3i3;任意單周期,單字指令

a4i4;任意單周期,單字指令

……

b1j1a1,a2

Bb1

a3i3

a4i4……

b1j1T1PT2FT3DT4AT5RT6XT7T8T9T10BPAB=a1PB=BIR=BBPFDARXb1PAB=a2PB=b1IR=b1b1PFDARX流水線刷新

PAB=a3PB=i3PFDARX流水線刷新

PAB=a4PB=i4PFDARXj1PAB=b1PB=j1IR=j1j1T1:將分支轉(zhuǎn)移地址a1加載PABT2:①對指令代碼B取指

②a2加載PABT3:①對B指令譯碼

②取轉(zhuǎn)移地址b1

③a3加載PABT4:①對b1譯碼

②對i3指令取指T5:①對i4譯碼

②轉(zhuǎn)移地址b1加載PABT6:①執(zhí)行指令B

②對j1指令進行取指T7:進行轉(zhuǎn)移操作

對j1指令進行譯碼T8:i3指令進入執(zhí)行階段,但不執(zhí)行T9:i4指令進入執(zhí)行階段,但不執(zhí)行T10:執(zhí)行j1指令執(zhí)行B指令執(zhí)行j1指令需四周期T6、T7:執(zhí)行轉(zhuǎn)移T8:不執(zhí)行i3指令T9:不執(zhí)行i4指令T10:執(zhí)行j1指令四周期

分支轉(zhuǎn)移指令B需要四個周期2024/9/2913DSP原理及應(yīng)用第2章TMS320C54x的硬件結(jié)構(gòu)2.分支轉(zhuǎn)移的流水線操作

(1)延遲分支轉(zhuǎn)移

地址指令注釋

a1,a2

BDb1;四機器周期,兩字的延遲分支轉(zhuǎn)移指令

a3i3

;任意單周期,單字指令

a4i4

;任意單周期,單字指令……

b1j1

a1,a2

BDb1a3i3a4i4……b1j1T1PT2FT3DT4AT5RT6XT7T8T9T10BPAB=a1PB=BDIR=BDBDPFDARXb1PAB=a2PB=b1IR=b1b1PFDARXi3PAB=a3PB=i3i3

PFDARXi4PAB=a4PB=i4i4PFDARXj1PAB=b1PB=j1IR=j1j1T6和T7:執(zhí)行延遲分支轉(zhuǎn)移,需2個周期。T8和T9:執(zhí)行i3和i4指令,需2個周期。

a1,a2

BDb1a3i3a4i4……b1j1四周期

T8:執(zhí)行i3指令

T9:執(zhí)行i4指令

對于延遲分支轉(zhuǎn)移指令BD,允許緊隨其后的2條單字單周期的指令執(zhí)行完畢。2024/9/2914DSP原理及應(yīng)用第2章TMS320C54x的硬件結(jié)構(gòu)

【例2.7.1】

分別用分支轉(zhuǎn)移指令B和BD編寫程序如下,試分析各程序所需要的周期。

利用B指令編程

LD

@x,A

ADD

@y,A

STL

A,@s

LD

@s,T

MPY

@z,A

STL

A,@r

B

next;單字單周期;單字單周期;單字單周期;單字單周期;單字單周期;單字單周期;雙字四周期6周期——4周期8字10周期

利用BD指令編程LD

@x,AADD

@y,ASTL

A,@sLD

@s,TBD

nextMPY

@z,ASTL

A,@r;單字單周期;單字單周期;單字單周期;單字單周期;雙字雙周期;單字單周期;單字單周期4周期2周期2周期8字8周期2024/9/2915DSP原理及應(yīng)用第2章TMS320C54x的硬件結(jié)構(gòu)2.分支轉(zhuǎn)移的流水線操作

對于具有延遲功能的指令,合理地安排前后指令的順序,可以節(jié)省機器周期。

指令說

明字數(shù)周期指令說

明字數(shù)周期BD無條件分支轉(zhuǎn)移22FBD無條件遠程分支轉(zhuǎn)移22BACCD按累加器規(guī)定的地址轉(zhuǎn)移14FCALLD無條件遠程調(diào)用子程序22BANZD當輔助寄存器為0時轉(zhuǎn)移22FRETD遠程返回14BCD條件分支轉(zhuǎn)移23FRETED開中斷,從遠程中斷返回14CALAD按累加器規(guī)定的地址調(diào)用子程序14RCD條件返回13CALLD無條件調(diào)用子程序22RETD返回13CCD有條件調(diào)用子程序23RETED開中斷,從中斷返回13FBACCD按累加器規(guī)定的地址遠程分支轉(zhuǎn)移14RETFD開中斷,從中斷快速返回11FCALAD按累加器規(guī)定地址遠程調(diào)用子程序14RPTBD塊重復(fù)指令22具有延遲操作功能的指令

注意:延遲操作指令后面只有1~2個字的空隙,其后的指令不能使用其他分支指令或重復(fù)指令。而在CALLD或RETD的空隙不能使用PUSH和POP指令。

2024/9/2916DSP原理及應(yīng)用第2章TMS320C54x的硬件結(jié)構(gòu)3.條件執(zhí)行的流水線操作

條件執(zhí)行指令:XCn,cond[,cond[,cond]]功能:若滿足條件cond,則執(zhí)行下面n條指令,否則執(zhí)行n條NOP操作。過程:①先判斷給定條件cond是否滿足;

②若滿足,則連續(xù)執(zhí)行緊隨其后的n條指令;若不滿足,則連續(xù)執(zhí)行n條NOP操作。

2024/9/2917DSP原理及應(yīng)用第2章TMS320C54x的硬件結(jié)構(gòu)3.條件執(zhí)行的流水線操作

例如:采用條件執(zhí)行指令的程序如下:

a1i1

;任意單周期,單字指令

a2i2

;任意單周期,單字指令a3XCn,cond

;單周期,單字指令

a4i4

;任意單周期,單字指令

a5i5

;任意單周期,單字指令T3:XC指令地址a3加載PAB;T4:對XC指令進行取值;T6:XC指令尋址級,求解XC指令的條件。若條件滿足,則i4和i5指令進入譯碼級并執(zhí)行;若不滿足,則不對i4和i5指令譯碼,執(zhí)行NOP。

在T6周期,i1和i2指令還沒執(zhí)行完畢,執(zhí)行結(jié)果不會對XC指令的條件判斷產(chǎn)生影響。

XRADFPi4的條件執(zhí)行PB=i4PAB=a4i4或NOPRT10AXT9i5的條件執(zhí)行PB=i5PAB=a5i5或NOPXDFP判斷condIR=XCPB=XCPAB=a3XCRADFPi1IR=i1PB=i1PAB=a1i1T8T7T6XT5RT4AT3DT2FT1Pi2IR=i2PB=i2PAB=a2i2XRADFPIR=i4PB=i5如果XC指令的判斷條件由指令i1和i2的結(jié)果給出,則會得出錯誤的判斷。

注意:①決定XC指令判斷條件的指令應(yīng)放在i1指令之前;

②在條件執(zhí)行指令前屏蔽所有可能產(chǎn)生的中斷或其他改變指令規(guī)定條件的運算。

2024/9/2918DSP原理及應(yīng)用第2章TMS320C54x的硬件結(jié)構(gòu)4.存儲器的流水線操作

內(nèi)部存儲器雙尋址存儲器DARAM單尋址存儲器讀寫存儲器SARAM只讀存儲器ROM

存儲器的流水線操作:

①雙尋址存儲器的流水線操作

單尋址存儲器的流水線操作

2024/9/2919DSP原理及應(yīng)用第2章TMS320C54x的硬件結(jié)構(gòu)①雙尋址存儲器的流水線操作

DARAM分成若干個獨立的存儲器塊,CPU可以在單個周期內(nèi)對其訪問2次。

’C5402DARAM0000~07FF0800~0FFF1000~17FF1800~1FFF2000~27FF2800~2FFF3000~37FF3800~3FFF0000~007F0080~07FF0800~0FFF1000~17FF1800~1FFF2000~27FF2800~2FFF3000~37FF3800~3FFF’C5402程序存儲器0000007F00803FFF4000FFFF內(nèi)部DARAM’C5402數(shù)據(jù)存儲器0000007F00803FFF4000FFFF內(nèi)部DARAM2024/9/2920DSP原理及應(yīng)用第2章TMS320C54x的硬件結(jié)構(gòu)①雙尋址存儲器的流水線操作

DARAM分成若干個獨立的存儲器塊,CPU可以在單個周期內(nèi)對其訪問2次。

①在單個周期內(nèi)允許同時訪問不同的DARAM塊;

②CPU同時處理兩條指令訪問不同的存儲塊;

③處于流水線不同階段的兩條指令,可以同時訪問同一個存儲塊。

2024/9/2921DSP原理及應(yīng)用第2章TMS320C54x的硬件結(jié)構(gòu)①雙尋址存儲器的流水線操作

DARAM分成若干個獨立的存儲器塊,CPU可以在單個周期內(nèi)對其訪問2次。

兩次訪問分別發(fā)生在機器周期的前半周期和后半周期,不會發(fā)生時序沖突。

利用PAB/PB取指——前半周期利用DAB/DB讀第一操作數(shù)——前半周期利用CAB/CB讀第二操作數(shù)——后半周期利用EAB/EB寫操作數(shù)——后半周期2024/9/2922DSP原理及應(yīng)用第2章TMS320C54x的硬件結(jié)構(gòu)DARAM的半周期尋址圖①取指令操作

預(yù)取指P取指F譯碼D尋址A讀數(shù)R執(zhí)行E讀PB

在T2的前半周期,利用PB線進行讀指令操作。②讀單操作數(shù)操作

預(yù)取指P取指F譯碼D尋址A讀數(shù)R執(zhí)行E讀DB

在T5的前半周期,利用DB線進行讀存儲器操作。2024/9/2923DSP原理及應(yīng)用第2章TMS320C54x的硬件結(jié)構(gòu)DARAM的半周期尋址圖③讀雙操作數(shù)操作

預(yù)取指P取指F譯碼D尋址A讀數(shù)R執(zhí)行E讀DB讀CB

T5的前半周期,利用DB線讀第一操作數(shù);

T5的后半周期,利用CB線讀第二操作數(shù)。④寫單操作數(shù)操作

預(yù)取指P取指F譯碼D尋址A讀數(shù)R執(zhí)行E寫EB在T6的后半周期,利用EB線寫操作數(shù)。2024/9/2924DSP原理及應(yīng)用第2章TMS320C54x的硬件結(jié)構(gòu)DARAM的半周期尋址圖⑤寫雙操作指令

預(yù)取指P取指F譯碼D尋址A讀數(shù)R執(zhí)行E寫EB預(yù)取指P取指F譯碼D尋址A讀數(shù)R執(zhí)行E寫EB

T6的后半周期,利用EB線寫第一操作數(shù)。

T7的后半周期,利用EB線寫第二操作數(shù)。⑥讀單操作數(shù)和寫單操作數(shù)操作

預(yù)取指P取指F譯碼D尋址A讀數(shù)R執(zhí)行E讀DB寫EB

T5的前半周期,利用DB線讀操作數(shù)。在T6的后半周期,利用EB線寫操作數(shù)。2024/9/2925DSP原理及應(yīng)用第2章TMS320C54x的硬件結(jié)構(gòu)①雙尋址存儲器的流水線操作CPU訪問DARAM會發(fā)生流水沖突的情況:

①同時從同一存儲塊中取指令和讀操作數(shù);

②同時對同一存儲塊進行寫操作和讀第二操作數(shù)。

當發(fā)生流水沖突時,CPU可通過寫操作延遲一個周期,或通過插入一個空操作來解決流水線沖突。2024/9/2926DSP原理及應(yīng)用第2章TMS320C54x的硬件結(jié)構(gòu)

例如:當執(zhí)行下列程序發(fā)生時序沖突時,CPU能對取指自動延遲一個周期。

LD*AR2+,A;AR2指向相同的DARAM塊

i2

;假定i2指令不訪問DARAM

i3;假定i3指令不訪問DARAM

i4PFDARELD*AR2+,A讀DBPFDAREi2讀PBPFDAREi3讀PBPFDAREi4讀PB第1條指令讀操作數(shù)i4指令取指操作發(fā)生時序沖突

LD*AR2+,Ai2

i3i42024/9/2927DSP原理及應(yīng)用第2章TMS320C54x的硬件結(jié)構(gòu)PFDARELD*AR2+,A讀DBPFDAREi2讀PBPFDAREi3讀PBPFDAREi4讀PB

LD*AR2+,Ai2

i3i4PFDARE空操作PFDAREi4讀PB2024/9/2928DSP原理及應(yīng)用第2章TMS320C54x的硬件結(jié)構(gòu)②單尋址存儲器的流水線操作單尋址存儲器:CPU在單個周期內(nèi)對每個存儲器塊訪問一次。分為:①單尋址讀/寫存儲器SARAM;

②單尋址只讀存儲器ROM。2024/9/2929DSP原理及應(yīng)用第2章TMS320C54x的硬件結(jié)構(gòu)

單尋址存儲器可分成若干存儲器塊?!疌549數(shù)據(jù)存儲器0000005F存儲器映象寄存器0060007F暫存器SPRAM00801FFF片內(nèi)DARAM20007FFF片內(nèi)SARAM8000BFFF外部存儲器C000FEFF片內(nèi)ROMFF00FFFF保留外部存儲器片內(nèi)SARAM’C549SARAM2000~3FFF4000~5FFF6000~7FFF’C549SARAM2000~3FFF4000~5FFF6000~7FFF片內(nèi)ROM’C549ROMC000~CFFFD000~DFFFE000~EFFFF000~FFFF’C549程序存儲器0000005F0060007F00801FFF20007FFF8000BFFFC000FEFFFF00FFFF片內(nèi)SARAM片內(nèi)ROM2024/9/2930DSP原理及應(yīng)用第2章TMS320C54x的硬件結(jié)構(gòu)②單尋址存儲器的流水線操作無時序沖突的操作:

CPU同時尋址不同的存儲器塊;

■CPU同時處理兩條指令訪問不同的存儲器塊。有時序沖突的操作:

CPU同時訪問兩次同一個存儲器塊。解決辦法:

將第二次尋址操作自動延遲到下一個周期。2024/9/2931DSP原理及應(yīng)用第2章TMS320C54x的硬件結(jié)構(gòu)5.流水線的等待周期

’C54x的流水線結(jié)構(gòu),允許多條指令同時利用CPU的內(nèi)部資源。由于CPU的資源有限,當多于一個流水線上的指令同時訪問同一資源時,可能產(chǎn)生時序沖突。

解決的辦法:

①由CPU通過延時自動解決;

②通過程序解決,如重新安排指令或插入空操作指令。2024/9/2932DSP原理及應(yīng)用第2章TMS320C54x的硬件結(jié)構(gòu)5.流水線的等待周期(1)流水線沖突產(chǎn)生流水線沖突的硬件資源:

①輔助寄存器(AR0~AR7);

②重復(fù)塊長度寄存器(BK);

③堆棧指針(SP);

④暫存器(T);

⑤工作方式狀態(tài)寄存器(PMST);

⑥狀態(tài)寄存器(ST0和ST1);

⑦塊重復(fù)計數(shù)器(BRC);

⑧存儲器映像累加器(A和B)。2024/9/2933DSP原理及應(yīng)用第2章TMS320C54x的硬件結(jié)構(gòu)流水線沖突情況:’C54x系統(tǒng)程序C語言程序不產(chǎn)生沖突匯編語言程序存儲器映象寄存器MMR寫操作CALU運算不會產(chǎn)生沖突早安排寫操作不產(chǎn)生沖突其它MMR寫操作需用等待周期表12342024/9/2934DSP原理及應(yīng)用第2章TMS320C54x的硬件結(jié)構(gòu)流水線沖突情況:①若采用C語言編寫源程序,經(jīng)編譯后生成的代碼不會產(chǎn)生流水線沖突;②若采用匯編語言編寫源程序,使用算術(shù)運算操作不會產(chǎn)生流水線沖突;③若采用匯編語言編寫源程序,初始化時對MMR寄存器進行設(shè)置,不會發(fā)生流水線沖突;④通常流水線沖突發(fā)生在對MMR寄存器的寫操作,可用等待周期表加以解決。2024/9/2935DSP原理及應(yīng)用第2章TMS320C54x的硬件結(jié)構(gòu)【例2.7.2】分析下列指令的流水線沖突。

STLMA,AR1wLD

*AR1,BN

A→AR1對AR1進行間接尋址

問題:第1條指令中的AR1數(shù)據(jù)還沒有準備好,第二條指令就已經(jīng)開始對AR1進行尋址讀操作。解決辦法:采用保護性指令STM。

STM為雙字指令,占用兩條流水線。STM#1k,AR1w#1kLD

*AR1,BN無等待周期2024/9/2936DSP原理及應(yīng)用第2章TMS320C54x的硬件結(jié)構(gòu)【例2.7.3】分析下列指令的流水線沖突。STLMA,AR0wSTM

#10,AR1w#kLD*AR1,BN

在T6后半周期,第一條指令和第二條指令發(fā)生時序沖突。

沖突’C54x內(nèi)部可自動地將STM指令的寫操作延遲一個周期,緩解時序沖突。

w

在執(zhí)行第三條指令時,AR1的內(nèi)容還沒有準備好,出現(xiàn)新的沖突。

解決的辦法:在STLM指令后插入一條NOP指令或任何一條與程序無關(guān)的單字指令。

NOPNOPSTM

#10,AR1w#kLD*AR1,BN2024/9/2937DSP原理及應(yīng)用第2章TMS320C54x的硬件結(jié)構(gòu)5.流水線的等待周期(2)等待周期表

當指令對MMR、ST0、ST1和PMST等硬件資源進行寫操作時,有可能造成流水線沖突。解決的辦法:是在寫操作指令的后面,插入若干條

NOP指令。

例如:

STLMA,AR1wLD

*AR1,BN

NLD

*AR1,BNOPNOPN2024/9/2938DSP原理及應(yīng)用第2章TMS320C54x的硬件結(jié)構(gòu)(2)等待周期表

等待周期表給出了對映像寄存器以及控制字段進行寫操作的各種指令所需插入的等待周期數(shù)。

為了避免流水沖突,可以根據(jù)等待周期表來選擇插入的NOP指令的數(shù)量。

2024/9/2939DSP原理及應(yīng)用第2章TMS320C54x的硬件結(jié)構(gòu)流水線操作等待周期表

控制范圍0周期

1周期

2周期3周期TSTM#lk,TMVDKSmem,TLDSmem,TLDSmem,T||ST所有其他存儲操作,包括EXPASM

LD#k5,ASMLDSmem,ASM

所有其他存儲操作

DPCPL=0LD#k9,DPLDSmem,DPSTM#lk,ST0ST#lk,ST0所有其他存儲操作SXMC16FRCTOVM所有存儲操作包括SSXM和RSXM2024/9/2940DSP原理及應(yīng)用第2章TMS320C54x的硬件結(jié)構(gòu)流水線操作等待周期表

控制范圍0周期

1周期

2周期3周期A或B

修正累加器后,讀MMR

RPTB[D]之前BRC

STM#lk,BRCST#lk,BRCMVDKSmem,BRCMVMDMMR,BRC所有其他存儲操作

SRCCD(循環(huán))

DROM

STMSTMVDKMVMD

所有其他存儲操作2024/9/2941DSP原理及應(yīng)用第2章TMS320C54x的硬件結(jié)構(gòu)流水線操作等待周期表

控制范圍3周期

5周期

6周期OVLYIPTRMP/MC

STMSTMVDKMVMD

所有其他存儲操作

BRAF

RSBX

CPL

RSBXSSBX2024/9/2942DSP原理及應(yīng)用第2章TMS320C54x的硬件結(jié)構(gòu)流水線操作等待周期表

控制范圍0周期

1周期

2周期3周期

ARx

STMSTMVDKMVMMMVMD

POPMPOPD

其他MV的

STLMSTHSTL

所有其他存儲操作

BK

STMS

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論