两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

基于dsp陣列實現(xiàn)以太網(wǎng)數(shù)據(jù)發(fā)送的裝置及方法

文檔序號:7713081閱讀:234來源:國知局
專利名稱:基于dsp陣列實現(xiàn)以太網(wǎng)數(shù)據(jù)發(fā)送的裝置及方法
技術(shù)領(lǐng)域
本發(fā)明涉及基于數(shù)字信號處理器(DSP,Digital Signal Processor)的以太網(wǎng)技術(shù),尤其涉及基于DSP陣列實現(xiàn)以太網(wǎng)數(shù)據(jù)發(fā)送的裝置和方法。
背景技術(shù)
以太網(wǎng)是當(dāng)今局域網(wǎng)最通用的通信協(xié)議標(biāo)準(zhǔn),該標(biāo)準(zhǔn)定義了局域網(wǎng)中采用的 電纜類型和信號處理方法。以太網(wǎng)在互聯(lián)設(shè)備之間的傳輸速率可以達(dá)到10Mbps、 100Mbps、1000Mbps 以及 1 OGbps。
以太網(wǎng)交換芯片可以提供多個不同傳輸速率的端口,通常在片內(nèi)采用同步隨機(jī) 存儲器SRAM,或者外置同步動態(tài)隨機(jī)存儲器SDRAM、雙倍數(shù)據(jù)速率(DDR,Double Data Rate) SDRAM等介質(zhì)作為包緩存。以太網(wǎng)交換芯片采用存儲轉(zhuǎn)發(fā)原理,當(dāng)一個輸 入端口(Ingress)收到一個以太網(wǎng)數(shù)據(jù)幀后,會向包緩存申請緩存空間存儲該以太網(wǎng)數(shù)據(jù) 幀,然后將以太網(wǎng)數(shù)據(jù)幀的描述符作為指向申請的緩存空間的指針轉(zhuǎn)交給隊列管理器決 策轉(zhuǎn)發(fā)至輸出端口(egress)的發(fā)送隊列,當(dāng)以太網(wǎng)數(shù)據(jù)幀發(fā)送出去后再釋放此描述符所指 的緩存空間。
以太網(wǎng)交換芯片通常分為HUB型(簡稱HUB)和SWITCH型(簡稱SWITCH),主要差異在于,HUB提供的端口數(shù)量少,片內(nèi)包緩存容量小,且只支持二層轉(zhuǎn)發(fā); SWITCH提供的端口數(shù)量多,外置大容量包緩存,且支持二層、三層轉(zhuǎn)發(fā)、需要軟件實 現(xiàn)豐富的協(xié)議棧。HUB和SWITCH均可以各自獨立使用,也可以二者組合使用;若二 者組合使用,則HUB通常是起到一個集線器的作用。
DSP是一種用于實時數(shù)字信號處理的專用微處理器,具有高速的運算能力,可 對復(fù)雜的控制算法進(jìn)行實時運算,還提供豐富的外設(shè)接口,以便用戶根據(jù)實際工程需要 搭建各種信號處理系統(tǒng)。隨著以太網(wǎng)技術(shù)的普及,DSP大都提供了以太網(wǎng)接口,通常 為了提高發(fā)送效率及節(jié)省開銷,DSP內(nèi)部也都提供了直接存儲器存取控制器(DMA, Direct Memory Access),可以自動將內(nèi)存中的以太網(wǎng)數(shù)據(jù)幀傳入以太網(wǎng)控制器的先進(jìn)先出 (FIFO, First-InFirst-Out)隊列完成 DSP 的數(shù)據(jù)發(fā)送。
由于單個DSP的處理能力有限,往往不能滿足復(fù)雜系統(tǒng)的需求,故通常采用多 個DSP構(gòu)成功能強(qiáng)大的DSP陣列。如圖1所示為一種常見的DSP陣列架構(gòu),多個DSP 通過一個多端口(FEl FEn) HUB構(gòu)成一個DSP陣列,HUB提供一個公共端口 FEn+1 作為所有DSP對外的上行通信通道,再通過SWITCH連接多個DSP陣列(1#DSP陣列 n#DSP陣列)形成更大規(guī)模的DSP陣列。
雖然該架構(gòu)保證了一個子網(wǎng)內(nèi)部信息不經(jīng)其它子網(wǎng)以及子網(wǎng)之間的通信,且 極大地減少了以太網(wǎng)結(jié)點,并通過HUB的緩存轉(zhuǎn)發(fā)減小了沖突和碰撞的幾率,但由 于該架構(gòu)所有端口只能共享上行通信端口(FEn+Ι)的帶寬,假設(shè)每個端口的帶寬都是 100Mbps,子網(wǎng)有10個端口,則每個端口的平均帶寬只能為IOMbps ;即使每個DSP都按 照平均流量IOMbps同時向上行通信端口發(fā)送以太網(wǎng)數(shù)據(jù)幀,也仍然會造成突發(fā)流量的情況,使上行通信端口出現(xiàn)擁塞,不能及時釋放緩存空間。由于HUB的包緩存數(shù)量有限, 空閑緩存會越來越少直至耗盡,導(dǎo)致其它端口無法繼續(xù)申請到緩存,最終會把接收到的 以太網(wǎng)數(shù)據(jù)幀丟掉。為了避免突發(fā)流量,一種常見的DSP發(fā)送方法是,在時間T內(nèi)發(fā)出η個以太網(wǎng) 數(shù)據(jù)幀,即把時間T等分為η個時間片tl,t2,…,tn,如圖2所示,每個時間片ti(i = 1,…,η)發(fā)出一個以太網(wǎng)數(shù)據(jù)幀。圖2為所有DSP發(fā)送以太網(wǎng)數(shù)據(jù)幀的時序圖,其中 橫坐標(biāo)表示時間片(ti),縱坐標(biāo)表示發(fā)送流量(bps,即bit/s)。每個時間片ti只發(fā)送一個 以太網(wǎng)數(shù)據(jù)幀,粗實線代表實際發(fā)送的時間,細(xì)虛線代表軟件延時時間。該架構(gòu)的DSP陣列發(fā)送數(shù)據(jù)的主要流程如下(1)向以太網(wǎng)控制器發(fā)送FIFO申請,申請空閑FIFO隊列;(2)啟動DMA通道將內(nèi)存中的數(shù)據(jù)傳輸?shù)揭蕴W(wǎng)控制器的FIFO發(fā)送隊列;(3)等待DMA通道返回數(shù)據(jù)傳輸完成標(biāo)志;(4)如果在規(guī)定時間內(nèi)收到DMA返回的數(shù)據(jù)傳輸完成標(biāo)志,繼續(xù)下一步操作; 否則返回超時信號;(5)啟動以太網(wǎng)控制器發(fā)送以太網(wǎng)數(shù)據(jù)幀;(6)根據(jù)以太網(wǎng)數(shù)據(jù)幀長度估算發(fā)送時間,不足時間片的,補充軟件延時;(7)繼續(xù)發(fā)送下一個以太網(wǎng)數(shù)據(jù)幀。此DSP陣列發(fā)送數(shù)據(jù)的方法雖然能減緩以太網(wǎng)數(shù)據(jù)幀占用HUB緩存的速度, 但由于采用延時等待DMA完成數(shù)據(jù)傳輸,并通過軟件延時產(chǎn)生時間片,在等待過程中會 占用大量的CPU時間,因此不能充分利用DMA的功用以及以太網(wǎng)口的帶寬。由圖2可 見,由于各DSP之間沒有關(guān)聯(lián),各DSP數(shù)據(jù)發(fā)送的時間間隔無法錯開,因此同一時間片 仍然會出現(xiàn)多個端口向一個端口發(fā)送的情況,且每個以太網(wǎng)數(shù)據(jù)幀的長度不一樣,幀間 隔參差不齊,從上行口 FEn+Ι仍可能會在某一時刻產(chǎn)生突發(fā)流量而另一時刻又沒有流量 的情況,即發(fā)出的數(shù)據(jù)流量極不均勻。

發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是提供一種基于DSP陣列實現(xiàn)以太網(wǎng)通信的數(shù)據(jù)發(fā) 送裝置和方法,能夠避免DSP陣列上行通信端口產(chǎn)生突發(fā)流量。為了解決上述技術(shù)問題,本發(fā)明提供了一種基于DSP陣列實現(xiàn)以太網(wǎng)數(shù)據(jù)發(fā)送 的裝置,包括邏輯處理單元和DSP陣列,其中DSP陣列中的DSP根據(jù)業(yè)務(wù)類型被劃分為一個或多個DSP子陣列;邏輯處理單元,其多個輸出端口分別與DSP陣列中的每一 DSP的輸入端口相 連,用于為DSP陣列中的每一 DSP子陣列產(chǎn)生相應(yīng)的時間片,并控制屬于同一時間片的 DSP傳輸報文數(shù)據(jù)到以太網(wǎng)控制器。進(jìn)一步地,邏輯處理單元包括依次連接的時鐘邏輯單元以及控制命令單元;其 中時鐘邏輯單元,用于產(chǎn)生固定頻率的時鐘信號輸出到控制命令單元;控制命令單 元,用于時鐘信號的控制下輸出控制命令字到多個輸出端口,控制 分別與輸出端口連接且屬于同一時間片的DSP的IRQ中斷輸入端口產(chǎn)生時間片中斷,以觸發(fā)相應(yīng)的DSP傳輸報文數(shù)據(jù)。
進(jìn)一步地,控制命令單元包括時間片觸發(fā)單元和控制命令輸出單元,其中
時間片觸發(fā)單元,用于在時鐘信號的控制下觸發(fā)切換時間片,并將切換值作為 一個時間片標(biāo)識輸出給控制命令輸出單元;
控制命令輸出單元,用于根據(jù)輸入的時間片標(biāo)識輸出一控制命令字到多個輸出 端口,以控制屬于同一時間片的DSP產(chǎn)生時間片中斷。
進(jìn)一步地,
時間片觸發(fā)單元根據(jù)DSP陣列被劃分的DSP子陣列數(shù)目,設(shè)置時間片數(shù)量的門 限;切換值在初始化時或等于所述門限時被置為初值,該初值作為第一個時間片標(biāo)識被 輸出給控制命令輸出單元。
進(jìn)一步地,DSP包括DSP發(fā)送調(diào)度單元和直接存儲器存取控制器(DMA)傳輸 調(diào)度單元,其中
DSP發(fā)送調(diào)度單元,用于在一發(fā)送隊列不為滿時,將緩存待傳輸數(shù)據(jù)的數(shù)據(jù)區(qū) 的首地址和長度填入發(fā)送隊列中;
DMA傳輸調(diào)度單元,用于在時間片中斷的觸發(fā)下,啟動DMA在累計的發(fā)送數(shù) 據(jù)字節(jié)未超出預(yù)設(shè)的發(fā)送門限的情況下,根據(jù)發(fā)送隊中的首地址和長度將讀取的數(shù)據(jù)區(qū) 中的數(shù)據(jù)發(fā)送到以太網(wǎng)控制器,并在傳輸完成觸發(fā)DMA傳輸完成中斷,釋放發(fā)送隊列, 并通知DSP發(fā)送調(diào)度單元DMA傳輸完成。
為了解決上述技術(shù)問題,本發(fā)明提供了一種基于DSP陣列實現(xiàn)以太網(wǎng)數(shù)據(jù)發(fā)送 的方法,包括
根據(jù)業(yè)務(wù)類型將DSP陣列中的DSP劃分為一個或多個DSP子陣列;
為DSP陣列中的每一 DSP子陣列產(chǎn)生相應(yīng)的時間片,并控制屬于同一時間片的 DSP傳輸報文數(shù)據(jù)至以太網(wǎng)控制器。
進(jìn)一步地,
通過一固定頻率的時鐘信號控制為DSP子陣列產(chǎn)生相應(yīng)的時間片,并通過控制 屬于同一時間片的DSP產(chǎn)生時間片中斷來觸發(fā)相應(yīng)的DSP傳輸報文數(shù)據(jù)。
進(jìn)一步地,該方法還包括
DSP在傳輸報文數(shù)據(jù)之前若判斷一發(fā)送隊列不為滿,將存儲待傳輸數(shù)據(jù)的數(shù)據(jù) 區(qū)的首地址和長度填入該發(fā)送隊列中;
控制屬于同一時間片的DSP產(chǎn)生時間片中斷來觸發(fā)相應(yīng)的DSP傳輸報文數(shù)據(jù), 具體包括
通過時間片中斷啟動直接存儲器存取控制器(DMA)將發(fā)送隊列中的首地址和長 度所指示的數(shù)據(jù)區(qū)的數(shù)據(jù)傳輸?shù)揭蕴W(wǎng)控制器;
通過DMA傳輸完成中斷通知DMA數(shù)據(jù)傳輸結(jié)束,并釋放發(fā)送隊列。
進(jìn)一步地,通過時間片中斷啟動DMA將發(fā)送隊列中的首地址和長度所指示的數(shù) 據(jù)區(qū)的數(shù)據(jù)傳輸?shù)揭蕴W(wǎng)控制器,具體包括
在時間片中斷觸發(fā)時,發(fā)出一同步信號量,并觸發(fā)DMA數(shù)據(jù)傳輸操作;
進(jìn)入DMA數(shù)據(jù)傳輸操作時,獲取到相應(yīng)的同步信號量;若判斷發(fā)送隊列不為 空,且累計的發(fā)送數(shù)據(jù)字節(jié)未超出時間片內(nèi)的發(fā)送門限,則根據(jù)發(fā)送隊中的首地址和長度將從數(shù)據(jù)區(qū)讀 取的數(shù)據(jù)通過DMA發(fā)送出去,直至發(fā)送隊列為空,便清零數(shù)據(jù)字節(jié)計 數(shù);若判斷發(fā)送隊列為空,或累計的發(fā)送數(shù)據(jù)字節(jié)已超出發(fā)送門限,則清零發(fā)送數(shù)據(jù)字 節(jié)計數(shù)。進(jìn)一步地,時間片內(nèi)的發(fā)送門限=T*L/M*N ;其中,T為時間片的時長;M為訪問一次以太網(wǎng)控制器所占用的CPU時鐘數(shù);N為以太網(wǎng)控制器的數(shù)據(jù)線寬度,以字節(jié)為單位;L為以太網(wǎng)數(shù)據(jù)幀的長度,以字節(jié)為單位。本發(fā)明與現(xiàn)有技術(shù)相比,通過控制在一時間片內(nèi)只有部分的DSP占用上行通信 端口的帶寬進(jìn)行數(shù)據(jù)發(fā)送,故在不降低DSP陣列上行通信端口流量的前提下,避免所有 DSP同時發(fā)送數(shù)據(jù)而產(chǎn)生突發(fā)流量。由于采用硬件定時中斷方式產(chǎn)生時間片,每個DSP 通過DMA以最大能力實現(xiàn)線速發(fā)送,由此充分利用了 DSP以太網(wǎng)控制器的發(fā)送能力,提 高了其發(fā)送效率。通過動態(tài)控制各DSP發(fā)送以太網(wǎng)數(shù)據(jù)幀的數(shù)量,避免對其它DSP發(fā)送 周期內(nèi)上行通信端口帶寬的繼續(xù)占用。本發(fā)明非常適合于應(yīng)用高性能DSP和小緩存HUB組合的設(shè)計。


圖1是常見的DSP陣列通過以太網(wǎng)交換芯片進(jìn)行通信的連接示意圖;圖2是現(xiàn)有的DSP陣列發(fā)送以太網(wǎng)數(shù)據(jù)幀的時序圖;圖3是本發(fā)明的基于DSP陣列實現(xiàn)以太網(wǎng)通信的數(shù)據(jù)發(fā)送裝置實施例的結(jié)構(gòu)框 圖;圖4是圖3所示邏輯處理單元產(chǎn)生時間片發(fā)送以太網(wǎng)數(shù)據(jù)幀的時序圖;圖5是本發(fā)明的單個DSP發(fā)送以太網(wǎng)數(shù)據(jù)幀的流程圖;圖6是本發(fā)明的DSP內(nèi)數(shù)據(jù)發(fā)送DMA實施例的結(jié)構(gòu)框圖。
具體實施例方式本發(fā)明的基于DSP陣列實現(xiàn)以太網(wǎng)通信的數(shù)據(jù)發(fā)送裝置及方法,其發(fā)明構(gòu)思 是,通過選擇合適的時間片T,協(xié)調(diào)不同DSP之間的數(shù)據(jù)發(fā)送節(jié)奏,使同一時間片內(nèi)只 有部分的DSP占用上行通信端口的帶寬進(jìn)行數(shù)據(jù)發(fā)送;每一個DSP均通過中斷方式啟動 DMA傳輸以硬件最大能力線速發(fā)送太網(wǎng)數(shù)據(jù)幀,并動態(tài)控制數(shù)據(jù)幀的發(fā)送數(shù)量,由此避 免每個DSP在其它DSP發(fā)送周期內(nèi)繼續(xù)占用上行通信端口帶寬。以下結(jié)合附圖和優(yōu)選實施例對本發(fā)明的技術(shù)方案進(jìn)行詳細(xì)地闡述。以下實施例 僅僅用于說明和解釋本發(fā)明,而不構(gòu)成對本發(fā)明技術(shù)方案的限制。本發(fā)明的關(guān)鍵在于選擇合適的時間片T。由于同一時間片T內(nèi)只能有部分DSP 在發(fā)送,其它DSP必須處于等待;如果T過長,將會導(dǎo)致其它DSP的緩存積壓報文,引 入時延;如果T過短,又會使每個DSP發(fā)送報文的個數(shù)受到限制,由此頻繁地中斷也會 加重DSP的開銷與負(fù)擔(dān)。因此,設(shè)計本發(fā)明的裝置和方法必須根據(jù)實際業(yè)務(wù)模型來選擇相應(yīng)的時間片T,需要考慮以下因素
DDSP陣列中所包含的DSP個數(shù)N ;
2)單個DSP硬件所能支持的最大數(shù)據(jù)發(fā)送能力S (單位bps);
3)業(yè)務(wù)模型要求的單個DSP的性能指標(biāo)P (單位bps);
4)集線器HUB包緩存容量Y (單位字節(jié));
根據(jù)2)和3)可以推算出單個DSP最短需要P/S (秒)能夠滿足業(yè)務(wù)要求的發(fā)送 能力,這個時間就作為時間片T ;
根據(jù)2)和4)可以推算出每一 DSP陣列在同一時間片內(nèi)最多允許8*Y/S個DSP 同時向上行通信端口發(fā)送數(shù)據(jù)幀而不會丟包;
根據(jù)1)決定每一 DSP陣列發(fā)送以太網(wǎng)數(shù)據(jù)幀需要劃分為N*S/8*Y個時間片。
本發(fā)明另一個關(guān)鍵在于要求DSP必須以最短的時間發(fā)送業(yè)務(wù)要求的流量,即盡 可能的減少數(shù)據(jù)發(fā)送的軟件開銷和負(fù)擔(dān),以硬件最大能力線速發(fā)送數(shù)據(jù)。
如圖3所示,是本發(fā)明的基于DSP陣列實現(xiàn)以太網(wǎng)通信的數(shù)據(jù)發(fā)送裝置一實施 例,該裝置包括邏輯處理單元100和DSP陣列子卡200,其中
邏輯處理單元100,其多個輸出端口分別與DSP陣列子卡200中每一個DSP的 輸入端口相連,用于為DSP陣列子卡200上劃分的每一 DSP子陣列定時產(chǎn)生相應(yīng)的時間 片,并控制屬于同一時間片的所有DSP傳輸報文數(shù)據(jù);
DSP陣列子卡200,用于根據(jù)業(yè)務(wù)類型將DSP陣列劃分為一個或多個DSP子陣列。
每一個DSP陣列子卡200如同圖1所示,含有8個DSP。DSP陣列子卡200最 多劃分為8個子陣列,最少1個DSP陣列;劃分為8個子陣列時,每個子陣列中的每一 個DSP屬于單獨的一個時間片;劃分為一個子陣列時,該子陣列中所有DSP屬于同一個 時間片。
譬如,根據(jù)業(yè)務(wù)類型希望選擇2個時間片,每個時間片內(nèi)有4個DSP發(fā)送數(shù)據(jù), 則主要配置為將DSP陣列子卡200劃分為2個DSP子陣列,前4個DSP屬于DSP子 陣列Al,后4個DSP屬于DSP子陣列A2。或者,奇數(shù)的DSP(DSP201、203、205、 207)屬于DSP子陣列Al,偶數(shù)的DSP(DSP202、204、206、208)屬于DSP子陣列A2,寸寸。
圖3所示的邏輯處理單元100進(jìn)一步包括依次連接的時鐘邏輯單元101以及控制 命令單元102 ;其中
時鐘邏輯單元101,用于產(chǎn)生固定頻率的時鐘信號CLK輸出給控制命令單元 102 ;
控制命令單元102,用于在時鐘信號CLK的控制下發(fā)出控制命令字,通過多個 輸出端口(01 08)觸發(fā)所連接的且屬于同一時間片的DSP的IRQ中斷輸入端口產(chǎn)生中 斷,以觸發(fā)相應(yīng)的DSP將報文數(shù)據(jù)傳輸?shù)揭蕴W(wǎng)控制器。
時鐘邏輯單元101每輸出一個時鐘信號CLK,代表一個時間片T的產(chǎn)生。在每 一個時間片域內(nèi),控制命令單元102便會為一個DSP子陣列輸出一個控制命令字。對于 DSP陣列子卡200,當(dāng)最多劃分為8個DSP子陣列,則會有8個控制命令字周而復(fù)始地 輸出,......,當(dāng)最少劃分為1個DSP子陣列,則只有1個控制命令字而復(fù)始地輸出??刂泼钭置總€bit對應(yīng)一個DSP,bit值填1表示對應(yīng)的DSP屬于此時間片。例如bit流B00000101表示DSPl和DSP3屬于此時間片??刂泼钭种械腷it值“1”表示為高電平信號,bit值為“0”表示為低電平信 號;或者相反,即bit值“1”表示為低電平信號,bit值為“0”表示為高電平信號。 假設(shè)為前者,則控制命令單元102的任意一個端口由低電平變?yōu)楦唠娖綍r的上升沿觸發(fā) 相應(yīng)的DSP的IRQ中斷??刂泼顔卧?02進(jìn)一步包括時間片觸發(fā)單元1021和控制命令輸出單元1022, 其中時間片觸發(fā)單元1021,用于在時鐘信號的控制下觸發(fā)切換時間片,并將切換值 作為一個時間片標(biāo)識輸出給控制命令輸出單元1022 ;時間片觸發(fā)單元1021譬如作為一個累加器在時鐘信號的控制下進(jìn)行累加操作, 并將累加值作為一個時間片標(biāo)識輸出。當(dāng)然,除此之外還可以有其它方式,譬如根據(jù)時 間片數(shù)量配置一個譯碼器實現(xiàn)切換(時間片數(shù)量為2,可配置一個Ibit的譯碼器實現(xiàn)切 換;時間片數(shù)量為8,可配置一個3-8譯碼器實現(xiàn)切換)??刂泼钶敵鰡卧?022,用于根據(jù)輸入的時間片標(biāo)識輸出一控制命令字到其多 個輸出端口,以控制屬于同一時間片的DSP產(chǎn)生中斷。時間片觸發(fā)單元1021根據(jù)DSP陣列子卡劃分的DSP子陣列數(shù)目,設(shè)置時間片數(shù) 量的門限;切換值在初始化時或切換值等于該門限時被置為初值,該初值作為第一個時 間片標(biāo)識被輸出給控制命令輸出單元1022。譬如上述劃分為2個DSP子陣列的DSP陣列子卡200,需配置兩個時間片域, 時間片觸發(fā)單元1021將時間片數(shù)量的門限設(shè)置為2,即時間片觸發(fā)單元1021在時鐘信號 CLK的控制下其切換值為0(初值)時標(biāo)識第一個時間片,選擇控制命令輸出單元1022輸 出一個值為B00001111的控制命令字到Ol 08端口 ;時間片觸發(fā)單元1021在時鐘信號 CLK的控制下其切換值為1時標(biāo)識第二個時間片,選擇控制命令輸出單元1022輸出一個 值為B11110000的控制命令字到Ol 08端口;時間片觸發(fā)單元1021在時鐘信號CLK 的控制下其切換值為2時被自動清0,則重新標(biāo)識第一個時間片,......,如此控制命令單
元102便周而復(fù)始地輸出2個控制字,分別控制DSP陣列子卡200的2個子陣列產(chǎn)生中 斷,從而控制子陣列中的DSP將其數(shù)據(jù)傳輸?shù)揭蕴W(wǎng)控制器。在DSP的IRQ中斷被觸發(fā)時,通過DSP內(nèi)的DMA(圖中未示)將DSP中發(fā)送
隊列中的數(shù)據(jù)傳輸?shù)揭蕴W(wǎng)控制器,并在傳輸結(jié)束時,由DMA觸發(fā)一個傳輸結(jié)束中斷, 由此通知DSP釋放發(fā)送隊列。圖4是圖3所示的邏輯處理單元100針對劃分為2個DSP子陣列的DSP陣列子卡 200產(chǎn)生2個時間片的時序圖。其中,橫坐標(biāo)表示時間片,tl為第一個時間片,t2為第 二個時間片;縱坐標(biāo)表示發(fā)送流量,在tl內(nèi)DSP子陣列Al從FEl FE4線速地向FE9 發(fā)送數(shù)據(jù),在t2內(nèi)DSP子陣列A2從FE5 FE8向FE9線速地發(fā)送數(shù)據(jù)。粗實線代表 每個以太網(wǎng)數(shù)據(jù)幀的實際發(fā)送時間。圖4與圖2相比,在每個時間片內(nèi),最多只有4個DSP發(fā)送,由此有效地避免 了對FE9端口造成突發(fā)流量。并且,由于每個DSP以硬件最大能力線速發(fā)送,幀間隔更 加緊湊,從FE9發(fā)出的流量非常均勻。
本發(fā)明實施例的基于DSP陣列實現(xiàn)以太網(wǎng)的數(shù)據(jù)發(fā)送方法,包括
根據(jù)業(yè)務(wù)類型將DSP陣列劃分為一個或多個DSP子陣列;
根據(jù)DSP陣列的劃分為每一 DSP子陣列定時產(chǎn)生相應(yīng)的時間片,并控制屬于同 一時間片的所有DSP將報文數(shù)據(jù)傳輸至以太網(wǎng)控制器。
其中,控制屬于同一時間片的DSP發(fā)送報文數(shù)據(jù),是通過控制觸發(fā)屬于同一時 間片的DSP中斷實現(xiàn)的,具體包括
(1)在判斷發(fā)送隊列不未滿時,由DSP發(fā)送調(diào)度將存儲待傳輸數(shù)據(jù)的數(shù)據(jù)區(qū)的首 地址和長度填入發(fā)送隊列中;
在DSP發(fā)送調(diào)度和DMA的傳輸調(diào)度之間增加一級發(fā)送隊列,且發(fā)送調(diào)度不直接 操作DMA的數(shù)據(jù)傳輸,只是把要傳輸?shù)臄?shù)據(jù)的相關(guān)參數(shù)(數(shù)據(jù)區(qū)的首地址和長度)參數(shù) 填入空閑的發(fā)送隊列中,其流程如圖5左邊的流程1所示。
該發(fā)送隊列為環(huán)形隊列,DSP發(fā)送調(diào)度完成上述操作后修改寫指針,為后面的 DMA數(shù)據(jù)傳輸流程做準(zhǔn)備。
(2)通過時間片定時中斷啟動DMA的傳輸調(diào)度執(zhí)行DMA數(shù)據(jù)傳輸;
時間片定時中斷流程如圖5所示的例程2,其操作僅僅是發(fā)出用于進(jìn)行DAM數(shù) 據(jù)傳輸?shù)耐叫盘柫?。這是因為在時間片定時中斷處理例程中不能做耗時操作,只能做 簡單的發(fā)出同步信號量的操作,而具體的DMA數(shù)據(jù)傳輸操作要通過與該同步信號量的聯(lián) 系而被置于中斷外進(jìn)行。
(3)由DSP傳輸調(diào)度通過執(zhí)行DMA數(shù)據(jù)傳輸流程將發(fā)送隊列中的首地址所指數(shù) 據(jù)區(qū)的數(shù)據(jù)傳輸?shù)揭蕴W(wǎng)控制器;
DMA數(shù)據(jù)傳輸流程如圖5所示的流程3,首先獲取到相應(yīng)的同步信號量,即通 過上述時間片定時中斷所發(fā)出的同步信號量;然后若判斷發(fā)送隊列不為空,即其中有首 地址指向要發(fā)送的數(shù)據(jù),則根據(jù)首地址和長度讀取數(shù)據(jù)區(qū)中的數(shù)據(jù),在確定出累計的發(fā) 送字節(jié)未超出發(fā)送門限后,將讀取的數(shù)據(jù)通過配置的DMA鏈表發(fā)送出去,直至發(fā)送隊列 為空(即其中的首地址指為空)為止,便清零發(fā)送字節(jié)計數(shù);如果確定出累計的發(fā)送字節(jié) 已超出發(fā)送門限,則也執(zhí)行清零發(fā)送字節(jié)的操作,待該DSP子陣列的下一時間片到時再 進(jìn)行數(shù)據(jù)的讀取及傳輸。
在此流程中,根據(jù)DMA傳輸時間計算在一個時間片內(nèi)的發(fā)送門限,以此控制每 個DSP在每個時間片發(fā)送的以太網(wǎng)數(shù)據(jù)幀的個數(shù),避免DSP占用其它DSP時間片的上行通信端口帶寬。
發(fā)送門限是指時間片T內(nèi)DSP允許發(fā)送的數(shù)據(jù)最大字節(jié)數(shù),取決于DMA通道向 以太網(wǎng)控制器FIFO隊列傳輸數(shù)據(jù)的硬件開銷。計算發(fā)送門限的方法如下
假設(shè)讀寫一次以太網(wǎng)控制器占用M個CPU時鐘,以太網(wǎng)控制器數(shù)據(jù)線寬度為N 個字節(jié);
發(fā)送長度為L字節(jié)的以太網(wǎng)數(shù)據(jù)幀,需要M^L/N個CPU時鐘;
在時間片T內(nèi)的發(fā)送門限為T*L/M*N。
(4)通過DMA傳輸完成中斷來通知DSP發(fā)送調(diào)度DMA傳輸結(jié)束,并釋放發(fā)送 隊列。
DMA傳輸調(diào)度通過比較讀指針和寫指針(由DSP發(fā)送調(diào)度修改)的位置判斷發(fā)送隊列是否為空,在完成數(shù)據(jù)傳輸時修改該讀指針。由此,觸發(fā)一次DMA數(shù)據(jù)傳輸后不再像以往那樣需要軟件查詢等待傳輸完成, 而是通過DMA傳輸結(jié)束產(chǎn)生的中斷來釋放發(fā)送隊列,使以太網(wǎng)數(shù)據(jù)幀之間的幀間隔最 短;同時減少了軟件延時,使以太網(wǎng)數(shù)據(jù)幀以最快的速度發(fā)送出去。圖7所示為本發(fā)明D SP內(nèi)數(shù)據(jù)發(fā)送DMA實施例的構(gòu)成,數(shù)據(jù)發(fā)送DMA通過三 個DMA通道組成鏈表,其中DMA通道1,用于向以太網(wǎng)控制器發(fā)送申請F(tuán)IFO隊列的請求;其源地址為DSP發(fā)送隊列的長度域,長度固定為以太網(wǎng)控制器FIFO控制寄存器 寬度;其目的地址固定為FIFO隊列控制寄存器地址;其Link域指向通道2的首地址, 表示通道1數(shù)據(jù)發(fā)送完成后自動啟動通道2。DMA通道1每次數(shù)據(jù)傳輸只需要修改通道1的源地址,即修改為下一發(fā)送隊列 的長度域。DMA通道2,用于將發(fā)送隊列中的首地址、長度指示的數(shù)據(jù)區(qū)的數(shù)據(jù)傳輸?shù)揭?太網(wǎng)控制器的FIFO隊列中;其源地址為數(shù)據(jù)區(qū)的首地址、長度域,該長度為發(fā)送隊列的長度;其目的地址 固定為以太網(wǎng)控制器的FIFO隊列的首地址;其Link域指向通道3的首地址,表示通道2 數(shù)據(jù)傳輸完成后自動啟動通道3。DMA通道2每次數(shù)據(jù)傳輸需要修改源地址,即修改為下一發(fā)送隊列中的首地 址、長度域。DMA通道3,用于使能以太網(wǎng)數(shù)據(jù)傳輸。使能以太網(wǎng)控制器的傳輸寄存器的操作碼固定保存在一個全局變量中,故源地 址為此全局變量的地址,長度為以太網(wǎng)控制器傳輸使能寄存器寬度;其目的地址為傳輸 使能寄存器的地址;其Link域指向空地址,表示DMA鏈表傳輸結(jié)束。DMA通道3每次數(shù)據(jù)傳輸不需要修改配置參數(shù)。該DMA鏈表的數(shù)據(jù)傳輸只需要啟動通道1的數(shù)據(jù)傳輸,通道2和通道3的數(shù)據(jù) 傳輸將自動執(zhí)行。在3個通道全部完成數(shù)據(jù)傳輸后,才產(chǎn)生DMA傳輸完成中斷。綜上所述,本發(fā)明提出了一種基于DSP陣列實現(xiàn)以太網(wǎng)通信的數(shù)據(jù)發(fā)送裝置和 方法,在不降低DSP陣列整體性能的前提下,克服此類系統(tǒng)中高性能DSP發(fā)送流量大和 小緩存HUB突發(fā)能力差的矛盾。本發(fā)明在實際應(yīng)用中,可以根據(jù)業(yè)務(wù)需要靈活搭建更多 類型的DSP陣列。雖然每個DSP都采用以太網(wǎng)數(shù)據(jù)幀通信,但是可以承載不同的業(yè)務(wù), 特別適合實現(xiàn)3G移動通信系統(tǒng)中協(xié)議處理、語音編解碼等功能。以上所述僅是本發(fā)明的一種實現(xiàn)方式,凡在本發(fā)明精神和范圍內(nèi)的所有修改和 變化都在本發(fā)明的保護(hù)范圍內(nèi)。
權(quán)利要求
1.一種基于DSP陣列實現(xiàn)以太網(wǎng)數(shù)據(jù)發(fā)送的裝置,包括邏輯處理單元和DSP陣列, 其中所述DSP陣列中的DSP根據(jù)業(yè)務(wù)類型被劃分為一個或多個DSP子陣列;所述邏輯處理單元,其多個輸出端口分別與所述DSP陣列中的每一 DSP的輸入端口 相連,用于為所述DSP陣列中的每一 DSP子陣列產(chǎn)生相應(yīng)的時間片,并控制屬于同一時 間片的DSP傳輸報文數(shù)據(jù)到以太網(wǎng)控制器。
2.按照權(quán)利要求1所述的裝置,其特征在于,所述邏輯處理單元進(jìn)一步包括依次連接 的時鐘邏輯單元以及控制命令單元;其中所述時鐘邏輯單元,用于產(chǎn)生固定頻率的時鐘信號輸出到所述控制命令單元;所述控制命令單元,用于在所述時鐘信號的控制下輸出控制命令字到所述多個輸出 端口,控制分別與所述輸出端口連接且屬于同一時間片的DSP的IRQ中斷輸入端口產(chǎn)生 時間片中斷,以觸發(fā)相應(yīng)的DSP傳輸所述報文數(shù)據(jù)。
3.按照權(quán)利要求2所述的裝置,其特征在于,所述控制命令單元進(jìn)一步包括時間片觸 發(fā)單元和控制命令輸出單元,其中所述時間片觸發(fā)單元,用于在所述時鐘信號的控制下觸發(fā)切換時間片,并將切換值 作為一個時間片標(biāo)識輸出給所述控制命令輸出單元;所述控制命令輸出單元,用于根據(jù)輸入的時間片標(biāo)識輸出一控制命令字到所述多個 輸出端口,以控制所述屬于同一時間片的DSP產(chǎn)生所述時間片中斷。
4.按照權(quán)利要求3所述的裝置,其特征在于,所述時間片觸發(fā)單元根據(jù)所述DSP陣列被劃分的DSP子陣列數(shù)目,設(shè)置所述時間片 數(shù)量的門限;所述切換值在初始化時或等于所述門限時被置為初值,所述初值作為第一 個時間片標(biāo)識被輸出給所述控制命令輸出單元。
5.按照權(quán)利要求2至4任一項所述的裝置,其特征在于,所述DSP包括DSP發(fā)送調(diào) 度單元和直接存儲器存取控制器(DMA)傳輸調(diào)度單元,其中所述DSP發(fā)送調(diào)度單元,用于在一發(fā)送隊列不為滿時,將緩存待傳輸數(shù)據(jù)的數(shù)據(jù)區(qū) 的首地址和長度填入所述發(fā)送隊列中;所述DMA傳輸調(diào)度單元,用于在所述時間片中斷的觸發(fā)下,啟動DMA在累計的發(fā) 送數(shù)據(jù)字節(jié)未超出預(yù)設(shè)的發(fā)送門限的情況下,根據(jù)所述發(fā)送隊中的所述首地址和長度將 讀取的所述數(shù)據(jù)區(qū)中的數(shù)據(jù)發(fā)送到所述以太網(wǎng)控制器,并在傳輸完成觸發(fā)DMA傳輸完成 中斷,釋放所述發(fā)送隊列,并通知所述DSP發(fā)送調(diào)度單元DMA傳輸完成。
6.一種基于DSP陣列實現(xiàn)以太網(wǎng)數(shù)據(jù)發(fā)送的方法,包括根據(jù)業(yè)務(wù)類型將DSP陣列中的DSP劃分為一個或多個DSP子陣列;為所述DSP陣列中的每一 DSP子陣列產(chǎn)生相應(yīng)的時間片,并控制屬于同一時間片的 DSP傳輸報文數(shù)據(jù)至以太網(wǎng)控制器。
7.按照權(quán)利要求6所述的方法,其特征在于,通過一固定頻率的時鐘信號控制為所述DSP子陣列產(chǎn)生相應(yīng)的時間片,并通過控制 屬于同一時間片的DSP產(chǎn)生時間片中斷來觸發(fā)相應(yīng)的DSP傳輸報文數(shù)據(jù)。
8.按照權(quán)利要求7所述的方法,其特征在于,還包括所述DSP在傳輸所述報文數(shù)據(jù)之前若判斷一發(fā)送隊列不為滿,將存儲待傳輸數(shù)據(jù)的數(shù)據(jù)區(qū)的首地址和長度填入所述發(fā)送隊列中;控制屬于同一時間片的DSP產(chǎn)生時間片中斷來觸發(fā)相應(yīng)的DSP傳輸報文數(shù)據(jù),具體 包括通過所述時間片中斷啟動直接存儲器存取控制器(DMA)將所述發(fā)送隊列中的所述首 地址和長度所指示的數(shù)據(jù)區(qū)的數(shù)據(jù)傳輸?shù)剿鲆蕴W(wǎng)控制器;通過DMA傳輸完成中斷通知所述DMA數(shù)據(jù)傳輸結(jié)束,并釋放所述發(fā)送隊列。
9.按照權(quán)利要求8所述的方法,其特征在于,通過所述時間片中斷啟動所述DMA將 所述發(fā)送隊列中的所述首地址和長度所指示的數(shù)據(jù)區(qū)的數(shù)據(jù)傳輸?shù)揭蕴W(wǎng)控制器,具體 包括在所述時間片中斷觸發(fā)時,發(fā)出一同步信號量,并觸發(fā)所述DMA數(shù)據(jù)傳輸操作; 進(jìn)入所述DMA數(shù)據(jù)傳輸操作時,獲取到相應(yīng)的所述同步信號量;若判斷所述發(fā)送隊 列不為空,且累計的發(fā)送數(shù)據(jù)字節(jié)未超出所述時間片內(nèi)的發(fā)送門限,則根據(jù)所述發(fā)送隊 中的所述首地址和長度將從所述數(shù)據(jù)區(qū)讀取的數(shù)據(jù)通過所述DMA發(fā)送出去,直至所述發(fā) 送隊列為空,便清零所述發(fā)送數(shù)據(jù)字節(jié)計數(shù);若判斷所述發(fā)送隊列為空,或累計的發(fā)送 數(shù)據(jù)字節(jié)已超出所述發(fā)送門限,則清零所述發(fā)送數(shù)據(jù)字節(jié)計數(shù)。
10.按照權(quán)利要求9所述的方法,其特征在于, 所述時間片內(nèi)的發(fā)送門限=T*L/M*N ; 其中,所述T為所述時間片的時長;所述M為訪問一次所述以太網(wǎng)控制器所占用的CPU時鐘數(shù); 所述N為所述以太網(wǎng)控制器的數(shù)據(jù)線寬度,以字節(jié)為單位; 所述L為以太網(wǎng)數(shù)據(jù)幀的長度,以字節(jié)為單位。
全文摘要
本發(fā)明披露了基于DSP陣列實現(xiàn)以太網(wǎng)數(shù)據(jù)發(fā)送的裝置及方法,裝置包括邏輯處理單元和DSP陣列,其中,DSP陣列中的DSP根據(jù)業(yè)務(wù)類型被劃分為一個或多個DSP子陣列;邏輯處理單元的多個輸出端口分別與DSP陣列中的每一DSP的輸入端口相連,用于為DSP陣列中的每一DSP子陣列產(chǎn)生相應(yīng)的時間片,并控制屬于同一時間片的DSP傳輸報文數(shù)據(jù)到以太網(wǎng)控制器。本發(fā)明在不降低DSP陣列上行通信端口流量的前提下,避免產(chǎn)生突發(fā)流量。且采用中斷方式使每個DSP通過DMA以最大能力實現(xiàn)線速發(fā)送,由此提高了數(shù)據(jù)發(fā)送效率。
文檔編號H04L12/56GK102025694SQ200910172960
公開日2011年4月20日 申請日期2009年9月11日 優(yōu)先權(quán)日2009年9月11日
發(fā)明者吳筱蘇, 崔向武, 馬立軍 申請人:中興通訊股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
本溪市| 江阴市| 堆龙德庆县| 老河口市| 西华县| 安乡县| 甘德县| 九江县| 岢岚县| 房山区| 阜新| 日喀则市| 射阳县| 岑溪市| 敖汉旗| 滨州市| 尉犁县| 海丰县| 绥芬河市| 本溪| 通道| 三明市| 太白县| 清流县| 马山县| 山丹县| 东宁县| 巴南区| 台东县| 永福县| 唐海县| 磐安县| 扬州市| 广河县| 阿城市| 大兴区| 鄂州市| 杭锦后旗| 定安县| 安图县| 明光市|