多核DSP Bootload代碼加載方法研究
引言
無線通信產(chǎn)業(yè)不斷推進(jìn)創(chuàng)新,像WCDMA、WiMAX、MIMO和4G都需要增強(qiáng)的性能.性能增強(qiáng),提供更大通信帶寬的同時(shí)意味著越來越大的數(shù)據(jù)流量.多內(nèi)核DSP強(qiáng)大的處理能力,兼具FPGA的擴(kuò)展特性和陣列優(yōu)點(diǎn)以及DSP的相似性和效率。提供了一種高效、易于開發(fā)的解決方案,倍受設(shè)備商的青睞.而無線協(xié)議標(biāo)準(zhǔn)從2G的GSM到3G的WCDMA,冉到4G的LTE,其協(xié)議標(biāo)準(zhǔn)的不斷更新,以及運(yùn)營商、設(shè)備商對(duì)低硬件成本的要求,需要實(shí)現(xiàn)一種平滑的協(xié)議標(biāo)準(zhǔn)軟升級(jí)方案,即不改變硬件平臺(tái)就可實(shí)現(xiàn)協(xié)議標(biāo)準(zhǔn)的升級(jí).TI公司推出的3內(nèi)核DSP芯片TCl6488以其強(qiáng)大的數(shù)據(jù)處理能力,同時(shí)支持多種代碼加載方式,在滿足數(shù)據(jù)處理要求的同時(shí),支持網(wǎng)絡(luò)式代碼加載,正迎合了這種軟升級(jí)需求。
1 協(xié)議介紹
TI公司推出的DSP芯片TCl648718 (Faraday)具有3個(gè)內(nèi)核,每個(gè)內(nèi)核工作頻率均為1GHz.其支持的boot load模式有12C EEPROM、EMAC(以太網(wǎng)口)、SRIO(Serial Rapid IO.即串行快速10)i種模式[3].其中EMAC支持IOM/IOOM/I 000M bit/s傳輸速率,SRIO支持1.25G/2.5G/3.125G bit/s傳輸速率.以太網(wǎng)口EMAC支持IPV4,因此可以實(shí)現(xiàn)遠(yuǎn)程、快速的加載代碼.SRIO支持內(nèi)存代碼的直接讀寫,外部主機(jī)可以將DSP內(nèi)存視為本地內(nèi)存進(jìn)行直接的讀寫.SRIO boot load模式時(shí),外部主機(jī)直接寫DSP本地內(nèi)存.其3.125G biffs的線上速率,可以達(dá)到2.5G bit/s的傳輸帶寬,效率高達(dá)80%,加載代碼速度極快.采用EMAC和SRIO相結(jié)合的方式可以實(shí)現(xiàn)一點(diǎn)到多點(diǎn)的快速代碼加載。
1.1 EMAC boot load傳輸協(xié)議
以太網(wǎng)口EMAC支持的拓?fù)浣Y(jié)構(gòu)有星型、總線型、樹型、混合型.其boot load幀格式分為以下幾個(gè)部分分別討論:DIX Ethernet、IPV4、Boot Table Frame. Header、Boot Table Frame. Payload。如表1所示。
(1)DIX Ethenet:14 bytes
該部分占用14 bytes,分別為6 byte8的DMAC。目的MAC地址、6 bytes的SMAC.源MAC地址和2 bytes的類型參數(shù)Type.該部分固定為Ox0080.目的MAC地址(DMAC)為DSP芯片自身的MAC地址.源MAC地址(SMAC)為主機(jī)MAC地址。
(2)IPV4
支持的IP協(xié)議類型為IPV4,可選長度為20 bytes或84bytes.本文中采用20 bytes。
1.2 SRIO協(xié)議
TCl6488支持的SRIO協(xié)議1.2版本link rate速率為1x, 2x,4x。即1.25G,2.5G,3.125G bit/s.支持的拓?fù)浣Y(jié)構(gòu)有星型、環(huán)型等。
SRIO協(xié)議規(guī)定有兩種傳輸方式:Direct IO與Message方式.當(dāng)DSP處于SRIO boot load模式時(shí),利用外部引腳進(jìn)行配置其NODE ID,根據(jù)配置的不同,采用Direct IO方式對(duì)不同NODE ID的DSP內(nèi)存直接進(jìn)行讀寫,將代碼直接寫入到DSP內(nèi)存.類似于外部主設(shè)備將DSP內(nèi)存視為自身內(nèi)存進(jìn)行寫操作,以此完成boot load.當(dāng)代碼加載完畢時(shí)發(fā)送Doorbell中斷到不同NODE ID的DSP主核(即核0).DSP立即從boot模式跳轉(zhuǎn)到正常模式。執(zhí)行加載的代碼。
2 現(xiàn)有方案分析
代碼加載主要依靠DSP芯片的各個(gè)接口實(shí)現(xiàn).TI公司C64x系列主要接口有12C、HPI、EMIF等接口,C64x+系列主要接口有12C、EMAC、SRIO等。
I2C傳輸速率為lOkbps到400kbps,外接EEPROM,常用于固化代碼的boot load,不利于升級(jí).
HPI接口有效帶寬往往最多只能達(dá)到20~30Mbps.操作較復(fù)雜,且不易組網(wǎng).在多核DSP系列里已經(jīng)去掉HPI接口.
EMAC接口支持10M/100M/1000Mbps三種速率,支持總線形、星形拓?fù)浣M網(wǎng)結(jié)構(gòu).
SRIO接口支持1.25G12.5G/3.125G bps三種速率,支持星形、環(huán)形、U形菊花鏈等拓?fù)浣Y(jié)構(gòu).
利用EMAC與SRIO結(jié)合的方式可以實(shí)現(xiàn)基于IP、可遠(yuǎn)程控制的局部傳輸網(wǎng)絡(luò),組網(wǎng)靈活可控.
3 原理框圖
利用DSP EMAC接口支持IPV4的網(wǎng)絡(luò)特性,以及SRIO接口使DSP間可以形成的U形菊花鏈或星形拓?fù)浣Y(jié)構(gòu),可以靈活組網(wǎng)。原理框圖如圖I所示。其中基帶處理板與主控板之間由背板連接,主控板通過網(wǎng)線與交換機(jī)或路由器連接。主控板與基帶板之間組建局域網(wǎng),由主控板分配IP。遠(yuǎn)程PC可以通過主控板IP訪問到任何一塊基帶板的CPU。對(duì)CPU進(jìn)行操作,可以對(duì)任意一塊基帶板上的DSP進(jìn)行代碼加載。
4 加載流程
流程圖如圖2所示。CPU加載DSPl的詳細(xì)過程說明如下:基帶板上電后主控板為背板上各槽位上的基帶板的CPU分配IP地址.CPU通過EPLD加載自身程序,與主控板通過SGMII接口獲取自身IP地址。遠(yuǎn)程PC機(jī)telnet登錄到CPU,下發(fā)命令加載CPU底層驅(qū)動(dòng)程序;CPU底層驅(qū)動(dòng)加載成功后,遠(yuǎn)程Pc下發(fā)加載DSP程序命令.以加載DSP1為例,詳細(xì)說明加載DSP1的過程.CPU加載DSP1時(shí)首先給該DSP1復(fù)位獲取DSP1的MAC地址,成功獲取到DSP1的MAC地址后,利用ftp協(xié)議從遠(yuǎn)程PC上獲取DSP1的代碼,將DSP1的代碼存到CPU的內(nèi)存.此時(shí)DSP1一直處于boot load的EMAC加載模式.CPU將DSP1的代碼根據(jù)EMAC加載協(xié)議往DSP1發(fā)送代碼.當(dāng)發(fā)送完畢代碼后,向DSP1發(fā)送一包長度為0的加載代碼,作為結(jié)束包.DSP1根據(jù)EMAC加載協(xié)議,當(dāng)收到該包后則從加載模式跳轉(zhuǎn)為正常模式,PC指針從OxOOS00000開始運(yùn)行.因此對(duì)于DSP而言,Ox00800000地址開始的一段空間,必須存放中斷向量表.
否則程序?qū)⒉粫?huì)正確運(yùn)行.此時(shí)DSP的3個(gè)內(nèi)核同時(shí)從Ox00800000開始運(yùn)行。
加載DSP2至加載DSPn時(shí),首先由CPU根據(jù)ftp協(xié)議從PC端獲取DSPk(k=2?3.n)的代碼.根據(jù)EMAC發(fā)送協(xié)議,將DSPk代碼發(fā)送到DSP1.DSP1收到DSPk的代碼后,根據(jù)SRIO加載協(xié)議加載DSPk的代碼.DSPk代碼加載完畢后,DSP1向DSPk發(fā)送一個(gè)SRIO中斷。標(biāo)志加載結(jié)束.DSPk響應(yīng)該SRIO中斷。從SRIO加載模式跳轉(zhuǎn)到正常模式,開始從Ox00800000地址開始運(yùn)行.整個(gè)加載過程結(jié)束。
5 結(jié)束語
通過方案的比較,選擇了易于組網(wǎng),且可控、方便,利于軟升級(jí)的方案.很方便的設(shè)計(jì)了TI TCI6488 3內(nèi)核DSP的Bootload程序.完成了DSP系統(tǒng)自舉加載.按照該設(shè)計(jì)思路編制的boot load程序已在WCDMA基站的基帶處理板中得到應(yīng)用,DSP系統(tǒng)能很好的復(fù)位及快速、方便的自舉加載,更換版本容易,系統(tǒng)運(yùn)行穩(wěn)定可靠。
評(píng)論