|
<!--插入廣告JS代碼--> |
II.總線結(jié)構(gòu); C5402的總線結(jié)構(gòu)由8條主要的16位總線組成(4條程序/數(shù)據(jù)線,4條地址線):
· 程序總線(PB) 從程序存儲區(qū)傳輸指令代碼和立即操作數(shù)。
· 三條數(shù)據(jù)總線(CB,DB,EB) 連接內(nèi)部的不同部分,諸如CPU,數(shù)據(jù)地址發(fā)生邏輯單元,程序地址發(fā)生邏輯單元,片內(nèi)外圍設(shè)備。
· 四條地址線(PAB,CAB,DAB,EAB),傳送執(zhí)行指令所需的地址。
利用兩個輔助寄存器算術(shù)單元(ARAU0,ARAU1),C5402能夠在一個時鐘周期內(nèi)產(chǎn)生兩個數(shù)據(jù)存儲器地址。PB 能夠?qū)?shù)據(jù)操作數(shù)存儲至程序空間(例如系數(shù)表),以提供乘法器和加法器作乘法和累加運算,或者存儲至數(shù)據(jù)空間的目標(biāo)寄存器,以提供作數(shù)據(jù)移位指令(例如MVPD和READA)。這種能力,結(jié)合讀雙操作數(shù)的特征,支持單周期三操作數(shù)指令(如FIRS)的執(zhí)行。
C5402 DSP同時具有片內(nèi)的雙向總線,以訪問片內(nèi)外圍設(shè)備,該總線通過CPU界面內(nèi)的總線交換器與DB和EB連接起來。通過該總線的訪問需要二至三個讀或?qū)懙闹芷,具體時間取決于外設(shè)的結(jié)構(gòu)。
III.中央處理單元(CPU);
40位的算術(shù)邏輯單元ALU,C54X以40位的算術(shù)邏輯單元和兩個40位的累加器(A和B)執(zhí)行算術(shù)指令,ALU同時也能夠執(zhí)行布爾操作。兩個40位的累加器,累加器A和B存儲ALU和乘法/加法模塊的輸出。它們可以給ALU提供第二次的輸入,累加器A可以作為乘法/加法器的輸入。
串行移位器:C5402的串行移位器具有40位的輸入,與累加器或者是數(shù)據(jù)存儲區(qū)(通過CB或DB)連接在一起,它由40位的輸出,連至ALU或數(shù)據(jù)存儲區(qū)(通過EB)。串行移位器可以對輸入數(shù)據(jù)進行0到31位的左移和0到16位的右移。
17×17位的乘法器:快速的片內(nèi)乘法器允許C5402高效執(zhí)行諸如卷積,相關(guān)和濾波操作。另外,乘法器和ALU一起可以在一個指令周期中執(zhí)行乘法累加(MAC)運算及并行ALU運算。
比較,選擇,和存儲單元(CSSU):比較,選擇,和存儲單元(CSSU)執(zhí)行比較累加器高位和低位的大小的操作,允許狀態(tài)寄存器ST0中的檢測/控制位TC和傳輸寄存器(TRN)保持它們的傳輸記錄,并且選擇累加器中較大的字存入數(shù)據(jù)存儲區(qū)。
IV.存儲器結(jié)構(gòu);
其存儲器為哈佛型,分為三個獨立的尋址空間;程序,數(shù)據(jù),I/O口。它總共提供了
192K word的地址范圍,并可通過增強外設(shè)接口擴充。C5402的芯片上有16K的DARAM和
4K的P/D ROM。所有的存儲空間又分為多個8K大小的塊,支持分頁尋址處理,這使得在對其中一個塊操作時,可同時對另一個塊進行操作,增加了處理速度。
1. 片內(nèi)存儲器;
片內(nèi)ROM的結(jié)構(gòu)(地址為:F800h--FFFFh):引導(dǎo)裝入程序、256-word的μ律擴展表,256-word的A律擴展表,256-word的sin查找表和中斷矢量表。
片內(nèi)DARAM的結(jié)構(gòu)(地址為:0060h—3FFFh):分為兩個8K的塊。
以下的CPU和外設(shè)存儲映射在第0頁(0000h–007Fh)。
· CPU存儲器存儲映射(0000h--000Fh)
該部分包括:中斷屏蔽寄存器,中斷標(biāo)量寄存器,狀態(tài)寄存器ST0和ST1,累加器A和B,暫存器T,輔助寄存器AR0-AR7,堆棧指針SP,塊循環(huán)的地址和計數(shù)器寄存器,處理器模式寄存器PMST等有關(guān)CPU操作和狀態(tài)的寄存器,不需要等待狀態(tài)法生,就可以讀寫以上26個寄存器。
· 外設(shè)存儲器存儲映射(0060h--003Fh)
該部分控制外設(shè)的工作,通過映射表的寄存器與外設(shè)間發(fā)送和接收數(shù)據(jù),可以設(shè)置控制寄存器的bit位能靈活的配置外設(shè),對之進行使能,初始化等操作。
· 程序和數(shù)據(jù)存儲空間(0060h—3FFFh)
由PMST中OVLY來控制片內(nèi)RAM被設(shè)置為程序或數(shù)據(jù)空間。OVLY=0時,片內(nèi)RAM為數(shù)據(jù)空間。OVLY=1時,RAM可設(shè)為數(shù)據(jù)和程序空間,具體的數(shù)據(jù)和程序空間的分配由.cmd文件指定,可以在.map文件中看出。
軟件可編程等待狀態(tài)發(fā)生器:使外部總線周期延伸至7個機器周期,以便與片外的慢速存儲器或I/O設(shè)備接口。當(dāng)無任何外部硬件時,等待狀態(tài)發(fā)生器不工作。對于片外存儲器的存取,軟件可編程等待狀態(tài)發(fā)生器(SWWSR)可指定0—7個等待狀態(tài),這既適用于每個程序/數(shù)字存儲器,也適用于I/O空間。
可編程存儲器轉(zhuǎn)換邏輯:當(dāng)訪問過程跨越程序或數(shù)據(jù)存儲器邊界時,可編程存儲器轉(zhuǎn)換邏輯會自動插入一個周期。當(dāng)存儲過程由程序存儲器轉(zhuǎn)向數(shù)據(jù)存儲器時,也會插入一個周期。這一附加周期通過在其他器件開始驅(qū)動總線之前允許存儲器釋放總線,以避免總線競爭。轉(zhuǎn)換的存儲體的大小由存儲體轉(zhuǎn)換寄存器(BSCR)確定。
2.尋址模式
· 單操作數(shù)尋址,單操作數(shù)地址修改;
· ARAU和地址產(chǎn)生操作;
兩個輔助寄存器運算單元ARAU0和ARAU1對輔助寄存器的 內(nèi)容(16比特?zé)o符號數(shù))進行操作,通過預(yù)先改變輔助寄存器的值,可得到所需的地址。
C5402 DSP有七種基本的尋址方式:
1:立即數(shù)尋址:
1) 短立即數(shù)尋址 長度可以是3、5、8、9比特。
2) 16比特立即數(shù)尋址,使用哪種結(jié)構(gòu)取決于使用哪種指令。
2:絕對尋址:
1) dmad(數(shù)據(jù)存儲區(qū)尋址),在數(shù)據(jù)空間定義寄存器標(biāo)號,就可進行對該標(biāo)號指向的存儲器進行讀寫操作。
2) pmad(程序存儲區(qū)尋址) 。
3) PA (端口尋址) 尋址 ,直接讀寫端口。
4) *(lk)尋址,是無須改變DP 或 SP ,就可以對數(shù)據(jù)空間的任何地址進行尋址,但不能用于RPT 和 RPTZ指令。
<!--mstheme-->