1 TMS320C6000的主要特點(diǎn)
TMS320C6000系列DSP(數(shù)字信號(hào)處理器)是TI公司最新推出的一種并行處理的數(shù)字信號(hào)處理器。TMS320C6000片內(nèi)有8 個(gè)并行的處理單元。分為相同的兩組。它的體系結(jié)構(gòu)采用超長指令字( VLIW) 結(jié)構(gòu),單指令字長為32 bit。8個(gè)指令組成一個(gè)指令包??傋珠L為8×32= 256 bit.芯片內(nèi)部設(shè)置了專的指令分配模塊,可以將256 bit 的指令包同時(shí)分配到8 個(gè)處理單元,并由8個(gè)單元同時(shí)運(yùn)行。芯片的最高時(shí)鐘頻率可以達(dá)到300MHz,通過片內(nèi)的鎖相環(huán)( PLL) 將輸入時(shí)鐘倍頻獲得。當(dāng)片內(nèi)的8個(gè)處理單元同時(shí)行時(shí)。最大處理能力可以達(dá)到2400MIPS。
2 TMS320C6000的擴(kuò)展總線
目前,TMS320C6000系列中只有C6202和C6203具有擴(kuò)展總線。它們是在C6201/C6701主機(jī)接口(HPI)的基礎(chǔ)上發(fā)展起來的。
擴(kuò)展總線從結(jié)構(gòu)上可以分為兩部分:I/O接口和主機(jī)接口,如圖1所示。
擴(kuò)展總線是一個(gè)32bit寬的總線,支持與異步外設(shè)、異步/同步FIFO、PCI橋及外部主控處理器的接口。它同時(shí)還提供了一個(gè)靈活的總線仲裁機(jī)制,可以進(jìn)行內(nèi)部仲裁,也可以由外部邏輯完成。
I/O接口,擴(kuò)展總線共管轄4個(gè)XCE外部空間,4個(gè)空間可以分別配置成兩種工作模式:異步I/O模式和同步FIFO模式。這兩種模式可以在一個(gè)系統(tǒng)中同時(shí)工作。異步I/O模式的接口信號(hào)時(shí)序與EMIF類似,具有可編程程度高的特點(diǎn)。這一模式下,擴(kuò)展總線接口的4根地址信號(hào)使得每個(gè)XCE空間最多可以掛接16個(gè)外部設(shè)備。FIFO模式則提供了與同步FIFO無縫接口的能力,可以直接控制1個(gè)進(jìn)行讀操作的同步FIFO或4個(gè)進(jìn)行寫操作的同步FIFO。借助少量外部邏輯,每個(gè)XCE空間可以管理16個(gè)讀操作FIFO或16個(gè)寫操作FIFO。擴(kuò)展總線I/O口與DSP的其他存儲(chǔ)空間由DMA控制器進(jìn)行連接。
主機(jī)接口也有兩種工作模式:同步和異步。同步模式提供了主控和從屬兩種工作方式,此時(shí)地址信號(hào)和數(shù)據(jù)信號(hào)復(fù)用相同的管腳。異步模式只有從屬功能,它與C6201/C6211/C6701/C6711的HPI操作完全類似,只是數(shù)據(jù)寬度為32bit。異步模式可以用來與其他微處理器接口。擴(kuò)展總線主機(jī)接口與DSP存儲(chǔ)器的連接由DMA輔助通道完成。
在同步主機(jī)接口模式下,主機(jī)的數(shù)據(jù)與地址信號(hào)復(fù)用,并且與i960Jx兼容。目前主流的PCI接口芯片都采用i960總線作為芯片內(nèi)部總線,這樣C6000與PCI總線接口時(shí),需要的外部邏輯可以減少到最少。尤其在作為從屬處理器時(shí),同步主機(jī)接口同樣可以非常方便地與其他一些通用處理器接口。C6202的擴(kuò)展總線還具有突發(fā)傳輸?shù)哪芰?。本文即利用這一方式實(shí)現(xiàn)MPC860與C6202擴(kuò)展總線的接口。
C6202處理器的工作頻率最高可以采用50MHz,經(jīng)內(nèi)部4倍頻后升至200MHz,每個(gè)時(shí)鐘周期最多可以并行執(zhí)行8條指令,從而可以實(shí)現(xiàn)1600MIPS的定點(diǎn)運(yùn)算能力,完成1024點(diǎn)定點(diǎn)FFT的時(shí)間只需70μs。
3 MPC860介紹
MPC860 是摩托羅拉公司的單片集成嵌入式微處理器, 它內(nèi)部集成了微處理器和通信領(lǐng)域常用的外圍組件, 特別適用于互聯(lián)網(wǎng)絡(luò)和數(shù)據(jù)通信市場。MPC860 通信處理器可根據(jù)用戶要求提供2~4 個(gè)串行通信控制器、不同規(guī)格的指令和數(shù)據(jù)緩存及各種級(jí)別的網(wǎng)絡(luò)協(xié)議支持。
該產(chǎn)品專為寬帶接入設(shè)備如:遠(yuǎn)程接入路由器、DSLAM、接入集線器、LAN /WAN 交換機(jī)、PBX 系統(tǒng)和網(wǎng)關(guān)等設(shè)計(jì)。
MPC860包括3個(gè)主要模塊:Power PC核心、系統(tǒng)接口單元(SIU) 、通信處理模塊(CPM)。PowerPC是主要的處理機(jī)單元,通常稱為Embedded Pow er PC 核心(或EPPC),它包括高速緩存和存儲(chǔ)器管理單元(MMU),在40 MHz 時(shí)鐘時(shí)為50 MIPS 指令速度;第二個(gè)主要模塊為系統(tǒng)接口單元,它的主功能是提供內(nèi)部總線和外部總線的接口;第三個(gè)主要模塊為通信處理機(jī)模塊,CPM 在不同的通信設(shè)備如SCC和SMC上發(fā)送接收數(shù)據(jù)通信,通信設(shè)備可以獨(dú)立工作。
4 擴(kuò)展總線接口實(shí)現(xiàn)
MPC860內(nèi)部集成了嵌入式的PowerPC核和使用特定RISC處理器的通信處理模塊(CPM)。這個(gè)雙處理器結(jié)構(gòu)優(yōu)于傳統(tǒng)結(jié)構(gòu),因?yàn)镃PM可以從嵌入式的PowerPC核卸出外圍任務(wù)。
4.1 接口實(shí)現(xiàn)
同步主機(jī)接口模式下,C6202和MPC860的接口如圖2所示。盡管圖2中的C6202處于從方式,但還是具有擴(kuò)展總線仲裁的能力,用于異步I/O和擴(kuò)展總線的FIFO接口。只有當(dāng)這兩個(gè)設(shè)備共享總線時(shí),MPC860內(nèi)部的仲裁才被使用。
擴(kuò)展總線的管腳定義
擴(kuò)展總線管腳 MPC860的管腳 功能定義
XCNTL A[29] MPC860用于控制信號(hào)的地址位,A31是MPC860地址總線的LSB
XBLAST
觸發(fā)傳輸指示,XBLAST的極性(在這個(gè)例子高有效)由復(fù)位時(shí)XD[13]的上拉電阻決定
讀寫存取指示,
的極性(在這個(gè)例子高有效)由復(fù)位時(shí)候的XD[12]的上拉電阻決定
XD[31:0] D[0:31] MPC860用D[0:31]作為32位的接口。D0是MPC860數(shù)據(jù)總線的MSB,而XD31是擴(kuò)展總線的MSB
XCLK CLKOUT 自身(擴(kuò)展)總線時(shí)鐘
XHOLD 間接邏輯需與 擴(kuò)展總線仲裁信號(hào)
XHOLDA BR、BG 注意內(nèi)部擴(kuò)展總線仲
和BB連接 裁已經(jīng)處于使能端
新的轉(zhuǎn)移開始指示
A[28:0] MPC860的地址解碼從而產(chǎn)生
信號(hào)
TSIZE[1:0]、 字節(jié)使能用TSIZE和A
A[31:30] [31:30]的解碼來實(shí)現(xiàn)
SETA bit 在MPC860選擇寄存器中設(shè)置為1,用于指示
由外部總線產(chǎn)生
MPC860的內(nèi)部總線仲裁處于禁止?fàn)顟B(tài),相反擴(kuò)展總線的仲裁處于使能狀態(tài)。DSP的字節(jié)使能信號(hào)由TSIZE[1:0]和MPC860的地址線A[31:30]通過解碼得到,DSP字節(jié)使能換算表如表1所示。
4.2 自舉配置
MPC860及擴(kuò)展總線把數(shù)據(jù)總線的上拉和下拉電阻用于硬件復(fù)位的BOOT配置,MPC860和DSP需要不同的上拉電阻配置。方法之一就是用總線開關(guān)。在這個(gè)例子中用SN74CBT16390(2個(gè)16bit和32bit之間FET復(fù)用/解復(fù)用總線開關(guān))在復(fù)位的時(shí)候分離MPC860和DSP的數(shù)據(jù)總線,允許每一個(gè)設(shè)備有自己不同的復(fù)位配置字。方法之二就是首先硬件復(fù)位(復(fù)位的過程中,XBUS的上拉和下拉電阻用于配置MPC860),而DSP復(fù)位應(yīng)該在MPC860之后。在DSP復(fù)位之后,MPC860有效地驅(qū)動(dòng)數(shù)據(jù)總線上用于配置DSP的數(shù)據(jù)值,從而DSP將被配置。
由于兩個(gè)設(shè)備都可以運(yùn)行在內(nèi)部總線仲裁使能或者禁止方式,所以內(nèi)部擴(kuò)展總線仲裁處理總線的仲裁。不管內(nèi)部還是外部的仲裁配置都在系統(tǒng)復(fù)位時(shí)設(shè)置。如果設(shè)備處于外部仲裁,那么在MPC860從數(shù)據(jù)總線上取樣硬件復(fù)位配置字的候,MPC860的ERAB位必須設(shè)置為1;而當(dāng)DSP從復(fù)位到內(nèi)部總線仲裁的數(shù)據(jù)總線上取樣硬件復(fù)位配置字的時(shí)候,TMS320C6000的XARB位必須設(shè)置為1。
通過在XD[31:0]上拉和下拉電阻的擴(kuò)展總線自舉配置如下:
字段(field) 定義
BLPOL 當(dāng)DSPs作為擴(kuò)展總線的從屬時(shí),XBLAST信號(hào)的極性BLPOL=1,XBLAST是高有效
RWPOL 擴(kuò)展總線讀/寫信號(hào)的極性,RWPOL=1, 為
HMOD 主機(jī)(host)的模式(對(duì)應(yīng)于HPIC中的XB狀態(tài)),HMOD=1,外部的主機(jī)接口處于同步的主/從模式
XARB 擴(kuò)展總線仲裁使能(對(duì)應(yīng)于XBGC中的狀態(tài)), XARB=1,內(nèi)部擴(kuò)展總線仲裁處于使能狀態(tài)
FMOD FIFO模式(對(duì)應(yīng)于XBGC中的狀態(tài))
LEND 小端模式,LEND=1,系統(tǒng)運(yùn)行在小端模式
BootMode[4:0] 設(shè)定設(shè)備自舉模式,包括主機(jī)口自舉、ROM、boot、存儲(chǔ)器映射選擇
為使工作準(zhǔn)確,MPC860的高速緩存必須關(guān)閉使能。數(shù)據(jù)緩存是否使用,只要將相應(yīng)的狀態(tài)寫入DC_CST寄存器。在禁止?fàn)顟B(tài),緩存標(biāo)志狀態(tài)位被忽略,訪問將通過總線傳輸。數(shù)據(jù)緩存在復(fù)位后默認(rèn)為禁止。禁止的數(shù)據(jù)緩存不影響數(shù)據(jù)地址的邏輯轉(zhuǎn)換,在MSRDR位的控制下繼續(xù)進(jìn)行,任何寫入DC_CST寄存器的操作必須優(yōu)先于一個(gè)同步指令,則確保在數(shù)據(jù)存儲(chǔ)時(shí),數(shù)據(jù)緩存的使能變化。由于總線錯(cuò)誤或者執(zhí)行特定的直接緩存線性控制時(shí),數(shù)據(jù)緩存產(chǎn)生一個(gè)中斷信號(hào),緩存進(jìn)入禁止?fàn)顟B(tài),類似于禁止。每一頁都有不同的存儲(chǔ)控制屬性, MPC860支持緩存禁止(CI)、 寫入(WT)和監(jiān)視(G)屬性,但不支持存儲(chǔ)器的一致性。對(duì)于要求存儲(chǔ)一致性的頁,必須編程設(shè)置為緩存禁止。G屬性用于映射那些對(duì)不確定存儲(chǔ)比較敏感的I/O設(shè)備,有G屬性的頁使存儲(chǔ)強(qiáng)行停止,除非是非敏感性存儲(chǔ)或者被核(core)取消。是否可緩存的區(qū)域必須定義,對(duì)于主要存儲(chǔ)區(qū)的寫回(write-back)或?qū)懲?write-through)模式,必須在使數(shù)據(jù)緩存使能之前通過初始化MMU來選擇。