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