亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種基于多業(yè)務(wù)多通道的數(shù)據(jù)收發(fā)處理方法

文檔序號:6346222閱讀:348來源:國知局
專利名稱:一種基于多業(yè)務(wù)多通道的數(shù)據(jù)收發(fā)處理方法
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)據(jù)通信中通道的數(shù)據(jù)收發(fā)處理技術(shù),尤其涉及一種基于多業(yè)務(wù)多通道的數(shù)據(jù)收發(fā)處理方法。
如圖2所示,主機(jī)上的每個端口對應(yīng)一個接口卡,當(dāng)主機(jī)的端口n,即接口卡n,有數(shù)據(jù)需要收發(fā)時,端口n向主機(jī)發(fā)出中斷請求信號,主機(jī)接收并響應(yīng)中斷,從BD池n內(nèi)取回相應(yīng)的數(shù)據(jù)收發(fā)信息,再通過BD內(nèi)存n的指針tptr n索引,將所要收發(fā)的數(shù)據(jù)存入BD內(nèi)存n,再由主機(jī)完成接口卡n的數(shù)據(jù)收發(fā)。上述數(shù)據(jù)結(jié)構(gòu)鏈雖然簡單,易于實現(xiàn),但容易出現(xiàn)這種現(xiàn)象某一時刻某些接口卡的BD內(nèi)存不夠用,而另一些接口卡的BD內(nèi)存卻空閑,使得BD內(nèi)存空間不能被充分有效地利用,而且該方法需要維護(hù)多段BD內(nèi)存,還需要維護(hù)各段BD內(nèi)存的指針fptri和tptri,導(dǎo)致內(nèi)存管理復(fù)雜化,增加了維護(hù)難度。同時,每開發(fā)一種接口卡,就需要編寫匹配該接口卡的收發(fā)函數(shù),降低了開發(fā)效率。
為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實現(xiàn)的一種基于多業(yè)務(wù)多通道的數(shù)據(jù)收發(fā)處理方法,該方法包括以下步驟a.預(yù)先設(shè)置緩沖區(qū)標(biāo)識符(BD)索引池、BD池,并在底層緩沖區(qū)中分配一段固定的內(nèi)存空間作為存儲不同通道收發(fā)數(shù)據(jù)的BD內(nèi)存區(qū)域;b.當(dāng)有通道要收發(fā)數(shù)據(jù)時,該通道將要收發(fā)的數(shù)據(jù)信息存儲于BD池中,系統(tǒng)先通過BD索引池分配一個空閑BD內(nèi)存,再從BD池中讀取所要收發(fā)的數(shù)據(jù)信息,將該數(shù)據(jù)信息存入所分配的BD內(nèi)存中。
步驟a進(jìn)一步包括預(yù)先在底層緩沖區(qū)中分配固定的內(nèi)存空間為BD表,并將該段內(nèi)存空間分割為一個BD池區(qū)域、一個BD索引池區(qū)域和一段BD內(nèi)存區(qū)域。
在BD索引池中存放有每個BD在內(nèi)存空間的地址偏移量,該BD索引池設(shè)置有至少兩個指針,管理調(diào)度BD索引池中的空閑BD和當(dāng)前被占用BD。
其中,通過BD索引池管理調(diào)度BD的過程進(jìn)一步包括a.將BD索引池設(shè)置為一循環(huán)鏈表,每個BD為循環(huán)鏈表中的一個節(jié)點,由兩個指針分別指向該循環(huán)鏈表中空閑BD區(qū)域的頭節(jié)點和尾節(jié)點,設(shè)定所有當(dāng)前被占用BD位于兩個指針之間;b.當(dāng)有數(shù)據(jù)進(jìn)行收發(fā)時,系統(tǒng)取出空閑BD區(qū)域頭指針當(dāng)前指向的空閑BDi來存儲收發(fā)數(shù)據(jù),然后下移空閑BD區(qū)域頭指針;c.當(dāng)該BDi所存數(shù)據(jù)收發(fā)完畢后,將該BDi從當(dāng)前位置刪除,并通過空閑BD區(qū)域尾指針插入空閑BD區(qū)域尾,然后下移空閑BD區(qū)域尾指針。
在上述方法中,由于BD索引池中的BD索引號是不連續(xù)的,所以不同通道在不同時間內(nèi)可占用同一個BD。而且,所有通道進(jìn)行數(shù)據(jù)收發(fā)時,可采用同一個BD池存放相關(guān)的數(shù)據(jù)信息,因此,所有通道進(jìn)行數(shù)據(jù)收發(fā)時采用相同的收發(fā)函數(shù)。
由于本發(fā)明提供的基于多業(yè)務(wù)多通道的數(shù)據(jù)收發(fā)處理方法,采用BD索引池來分配BD,使所有的BD可以被不同的通道共用,達(dá)到了有效利用BD的目的。而且,本發(fā)明采用BD索引池來統(tǒng)一管理BD內(nèi)存,減少了內(nèi)存管理的復(fù)雜程度;不同通道共用同一個收發(fā)BD池,只需采用同一種收發(fā)函數(shù),從而降低了新通道接口的開發(fā)難度,提高了新通道接口的開發(fā)效率,也因此提高了整個系統(tǒng)的穩(wěn)定性、可靠性及可維護(hù)性。
本實施例是將路由器中所有接口卡的底層數(shù)據(jù)收發(fā)BD統(tǒng)一管理,即所有接口卡共用一個BD表,進(jìn)而將同異步串口、異步MODEM口、E1接口、BRI接口等多種收發(fā)函數(shù)統(tǒng)一為一套收發(fā)函數(shù),減輕了接口卡的維護(hù)量,提高了接口卡的開發(fā)效率。其具體的實施方案如下圖3為本發(fā)明實施例的BD表結(jié)構(gòu)示意圖,是在現(xiàn)有的BD表中新增一個BD索引池,即在內(nèi)存開辟一段區(qū)域用作BD索引池,用來存放BD索引號,也就是BD在內(nèi)存空間的地址偏移量,至少需要兩個指針來維護(hù)BD索引池。在本實施例中,采用空閑BD區(qū)域指針Pending_Ptr作為頭指針、被再用BD區(qū)域指針Done_Ptr作為尾指針來維護(hù)BD索引池。Pending_Ptr指向的BD索引號是當(dāng)前空閑BD索引號的頭,Done_Ptr指向的BD索引號是可以被再用的BD索引號的尾;一個BD池用來存放通道信息,即接口卡信息,這些信息包括通道號、數(shù)據(jù)指針、通道狀態(tài)、數(shù)據(jù)長度等,不同的接口卡共用這一個BD池收發(fā)數(shù)據(jù);不同接口卡所用到的BD都在一個大的BD表中循環(huán),不按接口來劃分,而是通過指針fptr和指針tptr來維護(hù),以保證申請的BD能夠被各個接口卡使用。
BD區(qū)域的使用與劃分參照圖4所示,通常將BD區(qū)域劃分為空閑BD區(qū)域和被占用BD區(qū)域,本實施例中,為突出表示BD的使用狀態(tài)與流程,又將空閑BD區(qū)域劃分為空閑BD和可被再用BD兩部分,Pending_Ptr指針以下指示的BD區(qū)域表示空閑區(qū)域,Done_Ptr指針以上指示的BD區(qū)域表示可被再用區(qū)域,Done_Ptr和Pending_Ptr之間的BD區(qū)域表示被占用區(qū)域,當(dāng)然,兩個指針的位置完全可以互換,Pending_Ptr指針在上,Done_Ptr指針在下,那么,Pending_Ptr指針以上指示的BD區(qū)域表示空閑區(qū)域,Done_Ptr指針以下指示的BD區(qū)域表示可被再用區(qū)域,只要保證兩個指針之間的區(qū)域為被占用區(qū)域即可,以利于方便管理。所有BD可以通過一個循環(huán)鏈表來進(jìn)行管理,且所有的BD都在這樣一個流程中被循環(huán)使用空閑→占用→釋放→回填→被再用。
圖9是本發(fā)明實施例的收發(fā)BD數(shù)據(jù)流程圖,當(dāng)某一通道有數(shù)據(jù)需要收發(fā)時,主機(jī)接收并響應(yīng)中斷,從BD池中取回所要收發(fā)的數(shù)據(jù)信息,同時通過指針Pending_Ptr在BD索引池空閑BD區(qū)域段找到空閑BD索引號,通過空閑BD索引號找到對應(yīng)的空閑BD,將要收發(fā)的數(shù)據(jù)填入該BD內(nèi)存中,再由主機(jī)完成數(shù)據(jù)的收發(fā)。
下面以BD24為例,結(jié)合圖5到圖8,具體闡述本發(fā)明中BD表的使用流程。
圖5到圖8表示了BD24從空閑→占用→釋放→回填的使用狀態(tài)流程。當(dāng)某一通道有數(shù)據(jù)需要收發(fā)時,主機(jī)接收并響應(yīng)中斷,從BD池中取回所要收發(fā)的數(shù)據(jù)信息,同時通過指針Pending_Ptr在BD索引池空閑BD區(qū)域段找到空閑BD索引號24,通過BD索引號24找到對應(yīng)的空閑BD24,如圖5所示;主機(jī)將要收發(fā)的數(shù)據(jù)填入BD24,同時Pending_Ptr指針加1,指向下一個空閑BD128,此時BD24處于被占用狀態(tài),BD24的索引號加入到BD索引池的被占用區(qū)域段,如圖6所示;數(shù)據(jù)收發(fā)完成后,BD24被釋放,即BD24的索引號24從被占用區(qū)域段去除,如圖7所示;主機(jī)將BD24的索引號24回填到BD索引池的可被再用區(qū)域段,同時Done_Ptr指針加1,指向新增加的BD索引號24,BD24可被再次使用,如圖8所示。從圖5到圖8還可以看出,當(dāng)Pending_Ptr指針指向BD索引池尾時,即空閑BD已經(jīng)用完,根據(jù)程序的判斷,Pending_Ptr指針返回BD索引池頭,指向可再用BD區(qū)域段,可再用BD區(qū)域段轉(zhuǎn)化成了空閑BD區(qū)域段,實現(xiàn)了BD的循環(huán)使用。上述方法中,所有的BD都在一個BD表中循環(huán),通過指針Done_Ptr和Pending_Ptr的維護(hù),可以避免數(shù)據(jù)收發(fā)時占用尚未收發(fā)完畢數(shù)據(jù)的BD,從而保證了收發(fā)BD池的正常運轉(zhuǎn)。
從圖5到圖8還可以看出,BD索引池中的BD可以是不連續(xù)的,也就是說BD中任何一塊被釋放的內(nèi)存都有可能被下一次收發(fā)占用,表明不同接口卡可以在不同時間內(nèi)占用同一個BD,這對于原來每個通道必須占用不同的連續(xù)的BD空間有了很大改進(jìn),保證了BD內(nèi)存的高效利用。
從圖9還可以看出,由于收發(fā)BD的統(tǒng)一,每個通道都可以采用這一個BD池進(jìn)行數(shù)據(jù)的收發(fā),進(jìn)而使得收發(fā)函數(shù)的統(tǒng)一成為可能。在通道接口開發(fā)過程中,每個通道只需要初始化與自己相關(guān)的數(shù)據(jù)流特性的芯片寄存器,調(diào)用統(tǒng)一的收發(fā)函數(shù)即可,不必考慮數(shù)據(jù)的收發(fā)流程,大大簡化了通道接口開發(fā)的復(fù)雜度,縮短了開發(fā)周期。
本發(fā)明剝離了收發(fā)BD與接口特性的關(guān)系,將多個通道的收發(fā)統(tǒng)一成一個獨立的模塊,可為多個通道共享,開發(fā)通道接口只須關(guān)心本接口的物理特性,不必關(guān)心接口的收發(fā)流程,提高了通道接口的開發(fā)效率,降低了通道接口的開發(fā)難度。
本發(fā)明采用統(tǒng)一收發(fā)BD隊列的方法處理不同通道的數(shù)據(jù)收發(fā),提高了內(nèi)存的利用率,同時也增強(qiáng)了通道的可維護(hù)性。本發(fā)明的方法適用于多通道多業(yè)務(wù)的數(shù)據(jù)發(fā)送和接收,這些通道可以是相同速率的,也可以是不同速率的,但在采用一個BD池時,同一時刻只能用于數(shù)據(jù)發(fā)送或數(shù)據(jù)接收,不能同時進(jìn)行數(shù)據(jù)的接收和發(fā)送,以避免收發(fā)的數(shù)據(jù)發(fā)生沖突,如果采用兩個或兩個以上BD池,則可分別設(shè)置收BD池和發(fā)BD池,同時進(jìn)行數(shù)據(jù)的接收和發(fā)送。
權(quán)利要求
1.一種基于多業(yè)務(wù)多通道的數(shù)據(jù)收發(fā)處理方法,其特征在于該方法包括以下步驟a.預(yù)先設(shè)置緩沖區(qū)標(biāo)識符(BD)索引池、BD池,并在底層緩沖區(qū)中分配一段固定的內(nèi)存空間作為存儲不同通道收發(fā)數(shù)據(jù)的BD內(nèi)存區(qū)域;b.當(dāng)有通道要收發(fā)數(shù)據(jù)時,該通道將要收發(fā)的數(shù)據(jù)信息存儲于BD池中,系統(tǒng)先通過BD索引池分配一個空閑BD內(nèi)存,再從BD池中讀取所要收發(fā)的數(shù)據(jù)信息,將該數(shù)據(jù)信息存入所分配的BD內(nèi)存中。
2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)收發(fā)處理方法,其特征在于步驟a進(jìn)一步包括預(yù)先在底層緩沖區(qū)中分配固定的內(nèi)存空間為BD表,并將該段內(nèi)存空間分割為一個BD池區(qū)域、一個BD索引池區(qū)域和一段BD內(nèi)存區(qū)域。
3.根據(jù)權(quán)利要求1或2所述的數(shù)據(jù)收發(fā)處理方法,其特征在于該方法進(jìn)一步包括設(shè)定所有通道進(jìn)行數(shù)據(jù)收發(fā)時,采用同一個BD池存放相關(guān)的數(shù)據(jù)信息。
4.根據(jù)權(quán)利要求1或2所述的數(shù)據(jù)收發(fā)處理方法,其特征在于該方法進(jìn)一步包括將每個BD在內(nèi)存空間的地址偏移量存放于BD索引池中。
5.根據(jù)權(quán)利要求4所述的數(shù)據(jù)收發(fā)處理方法,其特征在于該方法進(jìn)一步包括預(yù)先設(shè)置至少兩個指針管理調(diào)度BD索引池中的空閑BD和當(dāng)前被占用BD。
6.根據(jù)權(quán)利要求5所述的數(shù)據(jù)收發(fā)處理方法,其特征在于BD索引池的管理調(diào)度進(jìn)一步包括a.將BD索引池設(shè)置為一循環(huán)鏈表,每個BD為循環(huán)鏈表中的一個節(jié)點,由兩個指針分別指向該循環(huán)鏈表中空閑BD區(qū)域的頭節(jié)點和尾節(jié)點,設(shè)定所有當(dāng)前被占用BD位于兩個指針之間;b.當(dāng)有數(shù)據(jù)進(jìn)行收發(fā)時,系統(tǒng)取出空閑BD區(qū)域頭指針當(dāng)前指向的空閑BDi來存儲收發(fā)數(shù)據(jù),然后下移空閑BD區(qū)域頭指針;c.當(dāng)該BDi所存數(shù)據(jù)收發(fā)完畢后,將該BDi從當(dāng)前位置刪除,并通過空閑BD區(qū)域尾指針插入空閑BD區(qū)域尾,然后下移空閑BD區(qū)域尾指針。
7.根據(jù)權(quán)利要求4所述的數(shù)據(jù)收發(fā)處理方法,其特征在于不同通道在不同時間內(nèi)可占用同一個BD。
8.根據(jù)權(quán)利要求1所述的數(shù)據(jù)收發(fā)處理方法,其特征在于所有通道進(jìn)行數(shù)據(jù)收發(fā)時采用相同的收發(fā)函數(shù)。
全文摘要
本發(fā)明公開了一種基于多業(yè)務(wù)多通道的數(shù)據(jù)收發(fā)處理方法,該方法包括a)預(yù)先設(shè)置緩沖區(qū)標(biāo)識符(BD)索引池、BD池,并在底層緩沖區(qū)中分配一段固定的內(nèi)存空間作為存儲不同通道收發(fā)數(shù)據(jù)的BD內(nèi)存區(qū)域;b)當(dāng)有通道要收發(fā)數(shù)據(jù)時,該通道將要收發(fā)的數(shù)據(jù)信息存儲于BD池中,系統(tǒng)先通過BD索引池分配一個空閑BD內(nèi)存,再從BD池中讀取所要收發(fā)的數(shù)據(jù)信息,將該數(shù)據(jù)信息存入所分配的BD內(nèi)存中。采用該方法能夠充分高效地利用內(nèi)存空間,提高通道接口開發(fā)效率,降低通道接口維護(hù)難度。
文檔編號G06F12/08GK1414481SQ0211792
公開日2003年4月30日 申請日期2002年5月23日 優(yōu)先權(quán)日2002年5月23日
發(fā)明者王東升, 劉濤, 周宏毅 申請人:華為技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1