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