欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

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

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

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


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