專利名稱:實(shí)現(xiàn)聯(lián)合使用定時(shí)器功能的系統(tǒng)及其方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù),特別涉及異步傳輸模式適配層類型2中實(shí)現(xiàn)聯(lián)合使用定時(shí)器功能的技術(shù)。
背景技術(shù):
異步轉(zhuǎn)移模式(Asynchronous Transfer Mode,簡稱“ATM”)是一種綜合了電路交換和包交換優(yōu)點(diǎn)的傳輸模式,能同時(shí)提供面向連接和面向非連接的服務(wù),它一方面用有“標(biāo)志的電路”代替“定位置的電路”,因而能靈活地分配帶寬;另一方面取消了復(fù)雜的差錯(cuò)控制和流量控制,使傳輸時(shí)延大大降低。在ATM中,信息被組織成信元(cell),因包含來自某用戶信息的各個(gè)信元不需要周期性出現(xiàn),這種傳輸模式是異步的。
ATM信元,即ATM協(xié)議數(shù)據(jù)單元(Protocol Data Unit,簡稱“PDU”),簡稱ATM-PDU是固定長度的分組,共有53個(gè)字節(jié),分為2個(gè)部分。前面5個(gè)字節(jié)為信頭,主要完成尋址的功能;后面的48個(gè)字節(jié)為信息段,即業(yè)務(wù)數(shù)據(jù)單元(Service Data Unit,簡稱“SDU”),用來裝載來自不同用戶,不同業(yè)務(wù)的信息。話音,數(shù)據(jù),圖像等所有的數(shù)字信息都要經(jīng)過切割,封裝成統(tǒng)一格式的信元在網(wǎng)中傳遞,并在接收端恢復(fù)成所需格式。由于ATM技術(shù)簡化了交換過程,去除了不必要的數(shù)據(jù)校驗(yàn),采用易于處理的固定信元格式,所以ATM交換速率大大高于傳統(tǒng)的數(shù)據(jù)網(wǎng),如x.25,幀中繼等。另外,對于如此高速的數(shù)據(jù)網(wǎng),ATM網(wǎng)絡(luò)采用了一些有效的業(yè)務(wù)流量監(jiān)控機(jī)制,對網(wǎng)上用戶數(shù)據(jù)進(jìn)行實(shí)時(shí)監(jiān)控,把網(wǎng)絡(luò)擁塞發(fā)生的可能性降到最小,從而可以提供實(shí)時(shí)的傳輸服務(wù)。
圖1是ATM簡化的協(xié)議分層示意圖。其中,ATM適配層(ATM AdaptationLayer,簡稱“AAL”)是具有多種應(yīng)用的標(biāo)準(zhǔn)層,可將數(shù)據(jù)轉(zhuǎn)換成ATM信元或?qū)TM信元轉(zhuǎn)換為數(shù)據(jù)。ATM對不同業(yè)務(wù)提供不同的業(yè)務(wù)質(zhì)量(Qualityof Service,簡稱“QoS”),它通過在AAL層采用ATM適配層類型1(AAL1)、ATM適配層類型2(AAL2)、ATM適配層類型3/4(AAL3/4)、ATM適配層類型5(AAL5)等不同適配層類型,以適應(yīng)A級(jí)、B級(jí)、C級(jí)、D級(jí)四種不同的用戶業(yè)務(wù),業(yè)務(wù)描述如下A級(jí)即固定比特率業(yè)務(wù),AAL1支持此業(yè)務(wù),該業(yè)務(wù)支持面向連接的業(yè)務(wù),其比特率固定,常見業(yè)務(wù)為64Kbit/s話音業(yè)務(wù),固定碼率非壓縮的視頻通信及專用數(shù)據(jù)網(wǎng)的租用電路。
B級(jí)即可變比特率業(yè)務(wù),AAL2支持此業(yè)務(wù),該業(yè)務(wù)支持面向連接的業(yè)務(wù),其比特率是可變的。常見業(yè)務(wù)為壓縮的分組語音通信和壓縮的視頻傳輸。該業(yè)務(wù)具有傳遞介面延遲物性,其原因是接收器需要重新組裝原來的非壓縮語音和視頻信息。
C級(jí)即面向連接的數(shù)據(jù)服務(wù),AAL3/4支持此業(yè)務(wù)。該業(yè)務(wù)為面向連接的業(yè)務(wù),適用于文件傳遞和數(shù)據(jù)網(wǎng)業(yè)務(wù),其連接是在數(shù)據(jù)被傳送以前建立的。它是可變比特率的,但是沒有介面?zhèn)鬟f延遲。
D級(jí)即無連接數(shù)據(jù)業(yè)務(wù),常見業(yè)務(wù)為數(shù)據(jù)報(bào)業(yè)務(wù)和數(shù)據(jù)網(wǎng)業(yè)務(wù)。在傳遞數(shù)據(jù)前,其連接不會(huì)建立。AAL3/4或AAL5均支持此業(yè)務(wù)。
由于ATM的這些特點(diǎn),在第三代移動(dòng)通信(the 3rd Generation,簡稱“3G”)中,廣范采用了基于ATM的接口,例如在3G標(biāo)準(zhǔn)之一的寬帶碼分多址(Wideband Code Division Multi-Access,簡稱“WCDMA”)中,比較成熟的R99版本的基站(NodeB)和無線網(wǎng)絡(luò)控制器(Radio NetworkController,簡稱“RNC”)之間就采用基于ATM的Iub接口,RNC分別通過基于ATM AAL2的Iu-CS和AAL5的Iu-PS分別與核心網(wǎng)的電路交換和分組交換相連。
其中,在應(yīng)用較多的AAL2中,將AAL2層分為如圖2所示的幾個(gè)子層。AAL2層包括會(huì)聚子層(Convergence Sublayer,簡稱“CS”)和公共部分子層(Common Part Sublayer,簡稱“CPS”),其中CS子層由與特定業(yè)務(wù)有關(guān)的會(huì)聚子層(Service-Specific Convergence Sublayer,簡稱“SSCS”)和公共部分會(huì)聚子層(Common Part Convergence Sublayer,簡稱“CPCS”)組成,CPS子層由CPCS子層和拆裝(Segmentation And Reassembly,簡稱“SAR”)子層組成。在CPS子層最終生成的數(shù)據(jù)包,稱之為CPS的PDU,即CPS-PDU。CPS子層主要是將CPS分組經(jīng)過SAR處理,生成CPS-PDU,即ATM層的SDU,與ATM信元進(jìn)行適配。CPS分組的格式如下圖3所示。其中前三個(gè)字節(jié)是CPS分組的包頭,后面為CPS分組的凈荷,大小是1到45字節(jié)或64字節(jié)之間的任意長度。
AAL2各層數(shù)據(jù)處理過程如圖4所示。CPS子層從SSCS子層接收CPS業(yè)務(wù)數(shù)據(jù)單元,即CPS-SDU,在此基礎(chǔ)上增加CPS分組的包頭(PacketHeader,簡稱“PH”),即CPS-PH,生成CPS分組。一個(gè)ATM信元的SDU長度固定為48字節(jié)。一個(gè)CPS分組不能對應(yīng)一個(gè)ATM信元,如果將短的CPS分組放入一個(gè)ATM信元發(fā)送則效率太差,一個(gè)長的CPS分組則不能放在一個(gè)ATM信元中發(fā)送。
AAL2協(xié)議中規(guī)定了在CPS子層進(jìn)行復(fù)用處理,即將多個(gè)AAL2信道的CPS分組復(fù)用到一個(gè)ATM信元中傳輸,或?qū)⒁粋€(gè)CPS分組放到多個(gè)ATM信元中傳輸。通過復(fù)用實(shí)現(xiàn)了將承載在同一條永久虛電路(Permanent VirtualCircuit,簡稱“PVC”)中的來自不同或相同的AAL2用戶的CPS分組經(jīng)過SAR處理復(fù)用到ATM信元中,在接收方又進(jìn)行相反的處理過程,將ATM信元中承載的CPS分組經(jīng)過SAR處理解復(fù)用為單個(gè)AAL2用戶數(shù)據(jù)包CPS分組。
如圖4所示,在CPS子層,CPS分組被復(fù)用為CPS-PDU,即48字節(jié)長的ATM-SDU。其中CPS-PDU包括一個(gè)字節(jié)的開始域包頭(Start Field PackageHeader,簡稱“STF-PH”)和CPS-PDU負(fù)載。
AAL2協(xié)議中CPS分組的復(fù)用過程如圖5所示。
如果當(dāng)前的CPS分組不能填滿一個(gè)ATM信元,即長度不夠一個(gè)CPS-PDU的48字節(jié)長度,則需要填充。為了提高帶寬使用效率,則需要等待新的CPS分組到達(dá),將剩余部分填滿,然后再發(fā)送,這樣處理可以保證所有的信元沒有填充字節(jié),帶寬利用率高,但無限期的等待,將大大增加AAL2包處理的延時(shí),甚至造成無限時(shí)間的等待。由于AAL2一般承載對延時(shí)比較敏感的實(shí)時(shí)業(yè)務(wù),對延時(shí)的要求較高,要求數(shù)據(jù)包在盡可能早的時(shí)間內(nèi)發(fā)送出去。為了保證延時(shí)不太大,必然要求在沒有新的CPS分組到達(dá)時(shí)將剩余部分填充,然后發(fā)送出去。這樣做保證了延時(shí)的要求,卻導(dǎo)致帶寬利用率太低。為了解決這個(gè)矛盾,AAL2協(xié)議中規(guī)定了一個(gè)聯(lián)合使用定時(shí)器,即Timer_CU。預(yù)先設(shè)定一個(gè)定時(shí)器超時(shí)周期,遇到需要填充的情況時(shí),先啟動(dòng)定時(shí)器等待,在定時(shí)器超時(shí)之前,如果有新的數(shù)據(jù)包到達(dá),則將新的數(shù)據(jù)復(fù)用到CPS-PDU中,填滿后發(fā)送。如果定時(shí)器超時(shí),還沒有新的數(shù)據(jù)到達(dá),則填充發(fā)送。
現(xiàn)有的實(shí)現(xiàn)Timer_CU的技術(shù)方案主要有兩種,下面分別介紹。
技術(shù)方案一給每條AAL2的虛通道(Virtual Channel,簡稱“VC”),設(shè)置一個(gè)定時(shí)器,如果需要等待時(shí),則啟動(dòng)相應(yīng)的VC定時(shí)器,定時(shí)器超時(shí)后,通知發(fā)送模塊發(fā)送。
技術(shù)方案二只采用一個(gè)所有的VC公用的定時(shí)器。按照一定的精度,做一個(gè)分級(jí)的鏈表,在需要啟動(dòng)定時(shí)器時(shí),將超時(shí)周期在同一個(gè)范圍內(nèi)的所有VC都寫在一個(gè)表中,不在同一級(jí)的,按照精度計(jì)算出應(yīng)屬于那一級(jí)表,就寫到指定的表中。然后用軟件去輪詢一個(gè)計(jì)數(shù)器,等待時(shí)間達(dá)到精度值后,去處理掉當(dāng)前等級(jí)的表中的所有VC,即通知發(fā)送,然后又進(jìn)入等待。其中,輪詢計(jì)數(shù)器的方法也可以采用定時(shí)中斷代替。
在實(shí)際應(yīng)用中,上述方案存在以下問題方案一若采用硬件實(shí)現(xiàn),復(fù)雜度很高,如果采用軟件實(shí)現(xiàn),則有可能造成系統(tǒng)的癱瘓,難以保證精度;方案二不易實(shí)現(xiàn)較高的定時(shí)精度,在某些情況下無法正確處理,如果要求精度較高,則需要較多內(nèi)存,會(huì)引起系統(tǒng)性能的下降,而且該方案難以做到穩(wěn)定可靠。
造成這種情況的主要原因在于,采用方案一需要設(shè)置很多定時(shí)器,當(dāng)系統(tǒng)支持的VC數(shù)量很大時(shí),定時(shí)器的數(shù)量也是非常龐大,而當(dāng)前的通信系統(tǒng)中一般都是高集成度,要求支持的AAL2類型VC一般在成千條之多,甚至更多,采用硬件實(shí)現(xiàn)的復(fù)雜度很高,采用軟件實(shí)現(xiàn)則可能導(dǎo)致處理器在這么多的定時(shí)器中斷下癱瘓,難以保證精度。
采用方案二的定時(shí)精度是由分級(jí)鏈表的時(shí)間間隔決定,因此對于每個(gè)條VC的定時(shí)精度不可能很高。如果Timer_CU的周期接近或等于該精度值,而且數(shù)據(jù)包的間隔也接近時(shí),將不能正確處理。該方案中每一級(jí)鏈表中都要能夠存放所有的VC,這樣導(dǎo)致鏈表非常龐大,如果要求精度較高,VC數(shù)量很大時(shí),將消耗非常多的內(nèi)存,而訪問這么多的內(nèi)存,也會(huì)引起性能的下降。用軟件來處理這個(gè)鏈表,代碼將非常復(fù)雜,代碼量也較多,難以做到穩(wěn)定可靠。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種實(shí)現(xiàn)聯(lián)合使用定時(shí)器功能的系統(tǒng)及其方法,使得在AAL2中實(shí)現(xiàn)Timer_CU既保證定時(shí)的精度和穩(wěn)定性,又能簡化代碼的編寫,減小系統(tǒng)資源的消耗,增加系統(tǒng)的穩(wěn)定性。
為實(shí)現(xiàn)上述目的,本發(fā)明提供了一種實(shí)現(xiàn)聯(lián)合使用定時(shí)器功能的系統(tǒng),在異步傳輸模式適配層類型2中使用,包含分組隊(duì)列,用于以隊(duì)列的形式按照不同的虛通道在緩沖區(qū)內(nèi)存儲(chǔ)待發(fā)數(shù)據(jù),管理虛通道的聯(lián)合使用定時(shí)器調(diào)度標(biāo)志和出列調(diào)度標(biāo)志;
隊(duì)列管理模塊,用于接收新數(shù)據(jù)包,管理所述分組隊(duì)列,依據(jù)接收到的調(diào)度和所述分組隊(duì)列中的出列標(biāo)記協(xié)調(diào)所述系統(tǒng)中其他模塊協(xié)同工作;流量控制模塊,用于處理所述隊(duì)列管理模塊的調(diào)度,計(jì)算調(diào)度時(shí)刻并決定是否使用聯(lián)合使用定時(shí)器;發(fā)送處理模塊,用于進(jìn)行超時(shí)的判斷,生成并發(fā)送公共部分子層協(xié)議數(shù)據(jù)單元,根據(jù)處理結(jié)果生成并發(fā)送調(diào)度,并在沒有數(shù)據(jù)發(fā)送時(shí)申請使用聯(lián)合使用定時(shí)器。
其中,所述系統(tǒng)的調(diào)度包含發(fā)送調(diào)度、出列調(diào)度和聯(lián)合使用定時(shí)器調(diào)度,分別通過設(shè)定調(diào)度中的發(fā)送標(biāo)志、出列標(biāo)志和聯(lián)合使用定時(shí)器調(diào)度標(biāo)志實(shí)現(xiàn);其中,所述發(fā)送調(diào)度不對所述分組隊(duì)列進(jìn)行操作、只進(jìn)行發(fā)送處理;所述出列調(diào)度從所述分組隊(duì)列中出列待發(fā)數(shù)據(jù)給所述發(fā)送處理模塊處理;所述聯(lián)合使用定時(shí)器調(diào)度在當(dāng)前虛通道沒有待發(fā)數(shù)據(jù)但當(dāng)前虛通道的公共部分子層協(xié)議數(shù)據(jù)單元還沒有完成時(shí)啟動(dòng)聯(lián)合使用定時(shí)器,在有新的待發(fā)數(shù)據(jù)時(shí)從當(dāng)前虛通道隊(duì)列中出列新的待發(fā)數(shù)據(jù)給所述發(fā)送處理模塊處理。
所述隊(duì)列管理模塊為每個(gè)虛通道保存一個(gè)描述符,所述描述符用來記錄的內(nèi)容包括隊(duì)列中緩沖區(qū)鏈的首指針、緩沖區(qū)隊(duì)列中緩沖區(qū)鏈的末指針、數(shù)據(jù)包個(gè)數(shù)、出列調(diào)度標(biāo)志和聯(lián)合使用定時(shí)器調(diào)度標(biāo)志。
連接所述發(fā)送處理模塊和所述隊(duì)列管理模塊的兩個(gè)方向的接口、連接所述隊(duì)列管理模塊和所述流量控制模塊的兩個(gè)方向的接口中的信息包含異步傳輸模式適配層類型,虛通道的索引編號(hào),發(fā)送調(diào)度標(biāo)志,出列調(diào)度標(biāo)志和聯(lián)合使用定時(shí)器調(diào)度標(biāo)志。
所述隊(duì)列管理模塊向所述發(fā)送處理模塊發(fā)送消息的接口中的信息還包含最多5個(gè)隊(duì)列緩沖區(qū)描述符的指針。
待發(fā)數(shù)據(jù)在所述分組隊(duì)列中以隊(duì)列形式存儲(chǔ)在緩沖區(qū)中,每個(gè)所述緩沖區(qū)中存放的數(shù)據(jù)少于一個(gè)公共部分子層協(xié)議數(shù)據(jù)單元所需要填充的數(shù)據(jù)。
每個(gè)所述緩沖區(qū)存放10個(gè)字節(jié)的數(shù)據(jù)。
本發(fā)明還提供了一種隊(duì)列管理模塊接收來自其它模塊的調(diào)度和上層的數(shù)據(jù)包并進(jìn)行處理的方法,所述隊(duì)列管理模塊的處理流程包含以下步驟A接收并處理流量控制模塊的調(diào)度,依照調(diào)度類型進(jìn)行緩沖區(qū)出列操作,根據(jù)緩沖區(qū)出列操作的結(jié)果構(gòu)造調(diào)度并發(fā)送給其他所述模塊;B接收并處理發(fā)送處理模塊的調(diào)度,依照調(diào)度類型進(jìn)行分組隊(duì)列中標(biāo)志的管理,并構(gòu)造調(diào)度發(fā)送給其它所述模塊;C接收來自上層的數(shù)據(jù)包并入列到所述分組隊(duì)列,管理所述分組隊(duì)列中的標(biāo)志,構(gòu)造并發(fā)送出列調(diào)度。
其中,所述步驟A還包含以下子步驟A1根據(jù)接收到的調(diào)度判斷當(dāng)前虛通道類型是否為異步傳輸模式適配層類型2,如果是則繼續(xù),否則直接按照其它適配層類型處理后結(jié)束所述步驟A;A2若調(diào)度的類型是聯(lián)合使用定時(shí)器調(diào)度,則進(jìn)行聯(lián)合使用定時(shí)器調(diào)度處理;A3若調(diào)度的類型是發(fā)送調(diào)度,則構(gòu)造發(fā)送調(diào)度并發(fā)送給所述發(fā)送處理模塊;A4若調(diào)度的類型是出列調(diào)度,則進(jìn)行出列調(diào)度處理。
步驟A2還包含以下子步驟A21判斷當(dāng)前虛通道的出列標(biāo)志是否有效,如果是則進(jìn)入步驟A22,否則構(gòu)造超時(shí)調(diào)度發(fā)送給所述發(fā)送處理模塊后結(jié)束所述步驟A2;A22從當(dāng)前虛通道的隊(duì)列中出列緩沖區(qū),并判斷是否出列成功,如果是則構(gòu)造發(fā)送調(diào)度發(fā)送給所述發(fā)送處理模塊后結(jié)束所述步驟A2,否則構(gòu)造超時(shí)調(diào)度發(fā)送給所述發(fā)送處理模塊后結(jié)束所述步驟A2。
步驟A4還包含以下子步驟A41判斷當(dāng)前虛通道的出列標(biāo)志是否有效,如果是則進(jìn)入步驟A42,否則進(jìn)入步驟A44;A42從當(dāng)前虛通道的隊(duì)列中出列緩沖區(qū),并判斷是否出列成功,如果是則進(jìn)入步驟A43,否則進(jìn)入步驟A44;A43構(gòu)造調(diào)度發(fā)送給所述發(fā)送處理模塊后結(jié)束所述步驟A4;A44構(gòu)造發(fā)送調(diào)度發(fā)送給所述發(fā)送處理模塊后結(jié)束所述步驟A4。
所述步驟B還包含以下子步驟B1判斷調(diào)度是否是發(fā)送調(diào)度,如果是則進(jìn)入步驟B6,否則進(jìn)入步驟B2;B2判斷調(diào)度是否是聯(lián)合使用定時(shí)器調(diào)度,如果是則進(jìn)入步驟B3,否則進(jìn)入步驟B4B3設(shè)置當(dāng)前虛通道的聯(lián)合使用定時(shí)器調(diào)度標(biāo)志和出列調(diào)度標(biāo)志,接著進(jìn)入步驟B6;B4判斷當(dāng)前虛通道是否有出列標(biāo)志,如果有則結(jié)束,否則進(jìn)入步驟B5;B5設(shè)置當(dāng)前虛通道的出列調(diào)度標(biāo)志,接著進(jìn)入步驟B6;B6構(gòu)造調(diào)度并發(fā)送給所述流量控制模塊后結(jié)束所述步驟B。
所述步驟C還包含以下子步驟C1接收新數(shù)據(jù)包并判斷是否是異步傳輸模式適配層類型2,如果是則進(jìn)入步驟C2,否則按其它類型處理后結(jié)束所述步驟C;C2判斷當(dāng)前虛通道的隊(duì)列是否為空,如果是則進(jìn)入步驟C3,否則進(jìn)行入列操作后結(jié)束所述步驟C;C3判斷當(dāng)前虛通道是否有出列調(diào)度標(biāo)志,如果有則進(jìn)行入列操作,否則進(jìn)入步驟C4;C4進(jìn)行入列操作,構(gòu)造出列調(diào)度,設(shè)置當(dāng)前虛通道的出列調(diào)度標(biāo)志并向所述流量控制模塊發(fā)送出列調(diào)度后結(jié)束所述步驟C。
本發(fā)明還提供了一種流量控制模塊接收來自隊(duì)列管理模塊的調(diào)度并進(jìn)行處理的方法,包含以下步驟D判斷從所述隊(duì)列管理模塊得到調(diào)度是否為發(fā)送調(diào)度或者出列調(diào)度,如果是則按當(dāng)前虛通道的流量參數(shù),進(jìn)行正常的調(diào)度,否則進(jìn)入步驟E;E根據(jù)當(dāng)前虛通道的流量參數(shù)和聯(lián)合使用定時(shí)器配置參數(shù),計(jì)算正規(guī)調(diào)度和聯(lián)合使用定時(shí)器調(diào)度的具體時(shí)刻,并判斷聯(lián)合使用定時(shí)器調(diào)度時(shí)刻是否比正規(guī)調(diào)度晚,如果是則進(jìn)入步驟F,否則進(jìn)入步驟G;F先構(gòu)造出列調(diào)度,再構(gòu)造聯(lián)合使用定時(shí)器調(diào)度并發(fā)送給所述隊(duì)列管理模塊;G構(gòu)造聯(lián)合使用定時(shí)器調(diào)度并發(fā)送給所述隊(duì)列管理模塊。
本發(fā)明還提供了一種發(fā)送處理模塊接收來自隊(duì)列管理模塊的調(diào)度并進(jìn)行處理的方法,所述發(fā)送處理模塊的處理流程包含以下步驟H判斷從所述隊(duì)列管理模塊中接收的調(diào)度是否為聯(lián)合使用定時(shí)器調(diào)度,如果是則進(jìn)入步驟I,否則進(jìn)入步驟K;I停止聯(lián)合使用定時(shí)器并判斷是否超時(shí),如果是則進(jìn)入步驟J,否則暫存新緩沖區(qū)并構(gòu)造公共部分子層協(xié)議數(shù)據(jù)單元發(fā)送后進(jìn)入步驟L;J判斷當(dāng)前虛通道是否還有數(shù)據(jù)可以發(fā)送,如果有則返回步驟H,否則停止聯(lián)合使用定時(shí)器并填充公共部分子層協(xié)議數(shù)據(jù)單元發(fā)送后返回步驟H;
K若是發(fā)送調(diào)度則構(gòu)造公共部分子層協(xié)議數(shù)據(jù)單元發(fā)送后進(jìn)入步驟L,否則暫存從所述隊(duì)列管理模塊傳來的緩沖區(qū)并構(gòu)造公共部分子層協(xié)議數(shù)據(jù)單元發(fā)送后進(jìn)入步驟L;L依據(jù)構(gòu)造公共部分子層協(xié)議數(shù)據(jù)單元的結(jié)果構(gòu)造調(diào)度。
其中,步驟L還包含如下子步驟L1判斷是否填滿一個(gè)公共部分子層業(yè)務(wù)數(shù)據(jù)單元,如果是則進(jìn)入步驟L2,否則進(jìn)入步驟L3;L2判斷暫存緩沖區(qū)是否小于五個(gè),如果是則構(gòu)造出列調(diào)度,否則構(gòu)造發(fā)送調(diào)度;L3判斷是否已經(jīng)啟動(dòng)聯(lián)合使用定時(shí)器,如果是則構(gòu)造出列調(diào)度,否則構(gòu)造聯(lián)合使用定時(shí)器調(diào)度;L4向所述隊(duì)列管理模塊發(fā)送調(diào)度后結(jié)束所述步驟L。
本發(fā)明還提供了一種實(shí)現(xiàn)聯(lián)合使用定時(shí)器功能的系統(tǒng),在異步傳輸模式適配層類型2中使用,包含分組隊(duì)列,用于以隊(duì)列的形式按照不同的虛通道存放公共部分子層協(xié)議數(shù)據(jù)單元;隊(duì)列管理模塊,用于管理所述分組隊(duì)列,發(fā)送調(diào)度請求消息,并在得到調(diào)度響應(yīng)消息后發(fā)送一個(gè)公共部分子層協(xié)議數(shù)據(jù)單元;流量控制模塊,用于在收到聯(lián)合使用定時(shí)器定時(shí)請求消息后開始定時(shí),接收所述調(diào)度請求消息并響應(yīng)所述調(diào)度響應(yīng)消息,在超時(shí)時(shí)發(fā)送聯(lián)合使用定時(shí)器超時(shí)響應(yīng)消息;發(fā)送處理模塊,用于管理聯(lián)合使用定時(shí)器標(biāo)志和虛通道,構(gòu)成公共部分子層協(xié)議數(shù)據(jù)單元,發(fā)送協(xié)議數(shù)據(jù)單元消息給所述隊(duì)列管理模塊,在沒有數(shù)據(jù)時(shí)發(fā)送所述聯(lián)合使用定時(shí)器定時(shí)請求消息。
其中,所述協(xié)議數(shù)據(jù)單元消息、所述調(diào)度請求消息、所述調(diào)度響應(yīng)消息、所述聯(lián)合使用定時(shí)器超時(shí)響應(yīng)消息和所述聯(lián)合使用定時(shí)器定時(shí)請求消息包含區(qū)分不同的虛通道的虛通道編號(hào)。
所述公共部分子層協(xié)議數(shù)據(jù)單元消息還包含公共部分子層協(xié)議數(shù)據(jù)單元緩沖區(qū)指針。
所述聯(lián)合使用定時(shí)器定時(shí)請求消息還包含聯(lián)合使用定時(shí)器定時(shí)周期。
本發(fā)明還提供了一種隊(duì)列管理模塊管理分組隊(duì)列并發(fā)送公共部分子層協(xié)議數(shù)據(jù)單元的方法,包含以下步驟M獲取所述協(xié)議數(shù)據(jù)單元消息,將公共部分子層協(xié)議數(shù)據(jù)單元入列,并發(fā)送所述調(diào)度請求消息;N獲取所述調(diào)度響應(yīng)消息,進(jìn)行出列操作并在當(dāng)前虛通道隊(duì)列為空是發(fā)送所述調(diào)度請求消息。
其中,所述步驟M還包含如下子步驟M1從所述發(fā)送處理模塊獲取所述協(xié)議數(shù)據(jù)單元消息并判斷所述公共部分子層協(xié)議數(shù)據(jù)單元消息所對應(yīng)的虛通道是否已經(jīng)發(fā)送調(diào)度請求消息,如果是則進(jìn)入步驟M3,否則進(jìn)入步驟M2;M2構(gòu)造所述調(diào)度請求消息發(fā)送給所述流量控制模塊后進(jìn)入步驟M3;M3將所述公共部分子層協(xié)議數(shù)據(jù)單元消息入列到所述分組隊(duì)列的當(dāng)前虛通道隊(duì)列。
所述步驟N還包含如下子步驟N1從所述流量控制模塊獲取所述調(diào)度響應(yīng)消息;N2從所述分組隊(duì)列的當(dāng)前虛通道隊(duì)列出列一個(gè)公共部分子層協(xié)議數(shù)據(jù)單元并發(fā)送;
N3判斷所述分組隊(duì)列的當(dāng)前虛通道隊(duì)列是否為空,如果是則構(gòu)造所述調(diào)度請求消息并發(fā)送給所述流量控制模塊后結(jié)束所述步驟N,否則直接結(jié)束所述步驟N。
本發(fā)明還提供了一種流量控制模塊進(jìn)行定時(shí)管理和發(fā)送調(diào)度管理的方法,包含以下步驟O獲取所述聯(lián)合使用定時(shí)器定時(shí)請求消息并管理調(diào)度時(shí)間隊(duì)列;P獲取所述調(diào)度請求消息并管理所述調(diào)度時(shí)間隊(duì)列,在所述調(diào)度時(shí)間隊(duì)列中有所述聯(lián)合使用定時(shí)器調(diào)度時(shí)發(fā)送所述聯(lián)合使用定時(shí)器超時(shí)響應(yīng)消息。
其中,所述步驟O還包含如下子步驟O1判斷從所述發(fā)送處理模塊獲取所述聯(lián)合使用定時(shí)器定時(shí)請求消息是否成功,如果是則進(jìn)入步驟O2,否則結(jié)束步驟O;O2計(jì)算當(dāng)前虛通道的超時(shí)時(shí)間并將聯(lián)合使用定時(shí)器調(diào)度寫入所述調(diào)度時(shí)間隊(duì)列。
所述步驟P還包含如下子步驟P1從所述隊(duì)列管理模塊獲取所述調(diào)度請求消息,計(jì)算發(fā)送時(shí)間并寫入所述調(diào)度時(shí)間隊(duì)列;P2讀取所述調(diào)度時(shí)間隊(duì)列,并判斷所述調(diào)度時(shí)間隊(duì)列中是否有所述聯(lián)合使用定時(shí)器調(diào)度,如果是則構(gòu)造并向所述發(fā)送處理模塊發(fā)送所述聯(lián)合使用定時(shí)器超時(shí)響應(yīng)消息后進(jìn)入步驟P3,否則直接進(jìn)入步驟P3;P3構(gòu)造并向所述隊(duì)列管理模塊發(fā)送所述調(diào)度響應(yīng)消息。
本發(fā)明還提供了一種發(fā)送處理模塊構(gòu)成公共部分子層協(xié)議數(shù)據(jù)單元的方法,包含以下步驟Q判斷所述發(fā)送處理模塊獲取新的數(shù)據(jù)包是否成功,如果是進(jìn)行異步傳輸模式適配層協(xié)議處理,否則進(jìn)入步驟R;R獲取所述聯(lián)合使用定時(shí)器超時(shí)響應(yīng)消息并進(jìn)行聯(lián)合使用定時(shí)器超時(shí)的處理。
其中,所述步驟Q還包含以下子步驟Q1若所述發(fā)送處理模塊獲取新的數(shù)據(jù)包成功則進(jìn)行異步傳輸模式適配層協(xié)議處理后進(jìn)入步驟Q2,否則結(jié)束所述步驟Q;Q2判斷是否能夠構(gòu)成完整的公共部分子層協(xié)議數(shù)據(jù)單元,如果是則進(jìn)入步驟Q3,否則進(jìn)入步驟Q4;Q3清除當(dāng)前虛通道的聯(lián)合使用定時(shí)器標(biāo)志,構(gòu)造并向所述隊(duì)列管理模塊發(fā)送所述協(xié)議數(shù)據(jù)單元消息后結(jié)束所述步驟Q;Q4判斷當(dāng)前虛通道是否啟動(dòng)聯(lián)合使用定時(shí)器標(biāo)志,如果是則結(jié)束所述步驟Q,否則設(shè)置當(dāng)前虛通道的聯(lián)合使用定時(shí)器標(biāo)志并向所述流量控制模塊發(fā)送所述聯(lián)合使用定時(shí)器定時(shí)請求消息后結(jié)束所述步驟Q。
所述步驟R還包含以下子步驟R1從所述流量控制模塊獲取所述聯(lián)合使用定時(shí)器超時(shí)響應(yīng)消息并判斷當(dāng)前虛通道的所述聯(lián)合使用定時(shí)器標(biāo)志是否未被清除,如果是則填充發(fā)送當(dāng)前虛通道的公共部分子層協(xié)議數(shù)據(jù)單元并清除當(dāng)前虛通道的所述聯(lián)合使用定時(shí)器標(biāo)志后進(jìn)入步驟R2,否則直接進(jìn)入步驟R2;R2判斷當(dāng)前虛通道的數(shù)據(jù)包是否處理結(jié)束,如果是則不獲取新的數(shù)據(jù)包并繼續(xù)處理直至當(dāng)前虛通道的數(shù)據(jù)包完全處理結(jié)束,否則結(jié)束所述步驟R。
通過比較可以發(fā)現(xiàn),本發(fā)明的技術(shù)方案與現(xiàn)有技術(shù)的區(qū)別在于,本發(fā)明方案利用了網(wǎng)絡(luò)處理器中的多個(gè)微處理器陣列的特點(diǎn),結(jié)合ATM流量控制的調(diào)度模塊,通過預(yù)先定義了格式的消息在各個(gè)獨(dú)立的微處理器控制的模塊間進(jìn)行信息的交互,在幾乎不寫任何代碼的情況下,完全實(shí)現(xiàn)Timer_CU的功能。
這種技術(shù)方案上的區(qū)別,帶來了較為明顯的有益效果,即本發(fā)明不但完全實(shí)現(xiàn)了Timer_CU的功能,而且編寫代碼的工作量大大減小,使得系統(tǒng)的開發(fā)周期大大縮短,節(jié)約了系統(tǒng)的成本,同時(shí)本發(fā)明不增加任何內(nèi)存的消耗和處理器時(shí)間的浪費(fèi),保證非常高的精度和系統(tǒng)的穩(wěn)定性。
圖1為簡化的ATM協(xié)議分層示意圖;圖2為AAL2協(xié)議的分層結(jié)構(gòu)圖;圖3為CPS分組格式的示意圖;圖4為AAL2各子層的數(shù)據(jù)處理過程;圖5為AAL2協(xié)議中CPS分組的復(fù)用過程;圖6為根據(jù)本發(fā)明方案一的一個(gè)較佳實(shí)施例的在AAL2中實(shí)現(xiàn)Timer_CU功能的系統(tǒng)組成示意圖;圖7為根據(jù)本發(fā)明方案一的一個(gè)較佳實(shí)施例的在AAL2中實(shí)現(xiàn)Timer_CU功能的系統(tǒng)的流量控制模塊的工作流程圖;圖8和圖9為根據(jù)本發(fā)明方案一的一個(gè)較佳實(shí)施例的在AAL2中實(shí)現(xiàn)Timer_CU功能的系統(tǒng)的隊(duì)列管理模塊的工作流程圖;;圖10為根據(jù)本發(fā)明方案一的一個(gè)較佳實(shí)施例的在AAL2中實(shí)現(xiàn)Timer_CU功能的系統(tǒng)的發(fā)送處理模塊的工作流程圖;圖11為根據(jù)本發(fā)明方案二的一個(gè)較佳實(shí)施例的在AAL2中實(shí)現(xiàn)Timer_CU功能的系統(tǒng)組成示意圖;圖12為根據(jù)本發(fā)明方案二的一個(gè)較佳實(shí)施例的在AAL2中實(shí)現(xiàn)Timer_CU功能的系統(tǒng)的隊(duì)列管理模塊的工作流程圖;
圖13為根據(jù)本發(fā)明方案二的一個(gè)較佳實(shí)施例的在AAL2中實(shí)現(xiàn)Timer_CU功能的系統(tǒng)的流量控制模塊的工作流程圖;圖14為根據(jù)本發(fā)明方案二的一個(gè)較佳實(shí)施例的在AAL2中實(shí)現(xiàn)Timer_CU功能的系統(tǒng)的發(fā)送處理模塊的工作流程圖。
具體實(shí)施例方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對本發(fā)明作進(jìn)一步地詳細(xì)描述。
本方案的實(shí)現(xiàn)思想如下本方案利用網(wǎng)絡(luò)處理器中的多個(gè)微處理器陣列的特點(diǎn),各個(gè)模塊進(jìn)行并行的處理,通過模塊連接的接口中的信息,結(jié)合ATM流量控制的調(diào)度模塊完全實(shí)現(xiàn)Timer_CU功能。
根據(jù)上述發(fā)明構(gòu)思,有兩種方案都可以實(shí)現(xiàn)在AAL2中實(shí)現(xiàn)Time_CU功能。兩種發(fā)明方案的系統(tǒng)組成在系統(tǒng)模塊的連接和接口定義上稍有不同,相應(yīng)的流程也不同,為了便于理解,下文分別以發(fā)明方案一和發(fā)明方案二來區(qū)別。
發(fā)明方案一中,網(wǎng)絡(luò)處理器中幾個(gè)單獨(dú)的微處理器并行處理,這些微處理器所控制的不同模塊之間通過高速接口緩沖區(qū)進(jìn)行通信以交換消息。在發(fā)送的消息中設(shè)置發(fā)送標(biāo)志S、出列標(biāo)志D和Timer_CU調(diào)度標(biāo)志T,通過這些標(biāo)志判斷是何種類型的調(diào)度消息,各模塊通過調(diào)度消息的類型來決定相應(yīng)的操作,例如從隊(duì)列中出列緩沖區(qū)操作、Timer_CU超時(shí)操作等。
下面結(jié)合本發(fā)明的較佳實(shí)施例來說明本發(fā)明方案一。
根據(jù)本發(fā)明方案一的一個(gè)較佳實(shí)施例的實(shí)現(xiàn)Timer_CU功能的系統(tǒng)組成和連接方式如圖6所示。
實(shí)現(xiàn)Timer_CU功能的發(fā)明方案一的系統(tǒng)包含如下模塊分組隊(duì)列11,隊(duì)列管理模塊12,流量控制模塊13,發(fā)送處理模塊14,ATM模塊15。
上述各個(gè)模塊之間通過接口緩沖區(qū)交互信息。其中,發(fā)送處理模塊14通過高速接口A緩沖區(qū)向隊(duì)列管理模塊12發(fā)送消息;隊(duì)列管理模塊12通過接口B緩沖區(qū)向發(fā)送處理模塊14發(fā)送消息;隊(duì)列管理模塊12通過接口C緩沖區(qū)向流量控制模塊13發(fā)送消息;流量控制模塊13通過接口D緩沖區(qū)向隊(duì)列管理模塊12發(fā)送消息;隊(duì)列管理模塊12從接口E緩沖區(qū)中接收來自AAL2上層協(xié)議或其它模塊的數(shù)據(jù)包。
在發(fā)明方案一的一個(gè)較佳實(shí)施例中,整個(gè)處理過程包含三種調(diào)度消息發(fā)送調(diào)度、出列調(diào)度和Timer_CU調(diào)度,分別通過設(shè)置消息中的發(fā)送標(biāo)志S、出列標(biāo)志D和Timer_CU調(diào)度標(biāo)志T實(shí)現(xiàn)。下面結(jié)合各個(gè)模塊說明幾種調(diào)度消息。
發(fā)送調(diào)度指不對分組隊(duì)列11進(jìn)行操作的調(diào)度,只進(jìn)行發(fā)送處理;出列調(diào)度是指需要從分組隊(duì)列11中出列緩沖區(qū)給發(fā)送處理模塊14處理的調(diào)度;Timer_CU調(diào)度指該VC中的所有包都已經(jīng)發(fā)送完,沒有新的數(shù)據(jù)可以處理,但當(dāng)前的CPS-PDU還沒有完成,此時(shí)啟動(dòng)Timer_CU并發(fā)出的等待調(diào)度,如果有新的緩沖區(qū)在隊(duì)列中該調(diào)度也需要從VC隊(duì)列中出列一個(gè)新的緩沖區(qū)給發(fā)送處理模塊14處理。
下面說明各個(gè)接口緩沖區(qū)中的消息結(jié)構(gòu)。
接口A中的消息結(jié)構(gòu)如下表
接口B中的消息結(jié)構(gòu)如下表
接口C中的消息結(jié)構(gòu)如下表
接口D中的消息結(jié)構(gòu)如下表
接口E中的消息結(jié)構(gòu)如下表
在本發(fā)明方案一的具體實(shí)施時(shí),還涉及到VC隊(duì)列描述符QD,VC隊(duì)列描述符QD的結(jié)構(gòu)如下表
在本發(fā)明方案一的一個(gè)較佳實(shí)施例中,各消息中的標(biāo)志S為1表示發(fā)送調(diào)度消息,D為1表示出列調(diào)度消息,T為1表示Timer_CU調(diào)度消息。VCIndex表示該消息要調(diào)度的VC索引編號(hào),取AAL2類型的VC范圍內(nèi)的值。接口B中的Buffer Handle表示緩沖區(qū)描述符的指針,為0表示空,不為0表示有效的緩沖區(qū),出列的緩沖區(qū)從1開始按順序填,不足5個(gè)時(shí),后邊的清0。AAL Type表示此VC的AAL類型,包括AAL0、AAL1、AAL2、AAL5等,分別取值0、1、2、5。
分組隊(duì)列11用來以隊(duì)列的形式存放來自其他模塊或上層協(xié)議的數(shù)據(jù)包。分組隊(duì)列11是按照VC管理的,每條VC一個(gè)隊(duì)列,數(shù)據(jù)以包為單位,每個(gè)包可能占多個(gè)緩沖區(qū),這些緩沖區(qū)依次串起來,存放著每個(gè)包的每個(gè)緩沖區(qū)描述符的地址及其他必要信息,用VC隊(duì)列描述符QD加以描述。其中,隊(duì)列中每個(gè)緩沖區(qū)所存的數(shù)據(jù)包都比較小,每個(gè)緩沖區(qū)中存放的數(shù)據(jù)都不足以填滿一個(gè)信元。例如,在本發(fā)明方案一的一個(gè)較佳實(shí)施例中,每個(gè)緩沖區(qū)存放的數(shù)據(jù)為10字節(jié)。
隊(duì)列管理模塊12用來將接收的待發(fā)分組存入分組隊(duì)列11并在適當(dāng)時(shí)候?qū)⒕彌_區(qū)的數(shù)據(jù)出列,設(shè)置或清除VC隊(duì)列中消息中的標(biāo)志位,從各個(gè)接口緩沖區(qū)接收調(diào)度消息并做相應(yīng)的處理,管理各種調(diào)度并通過各個(gè)接口緩沖區(qū)向相應(yīng)的模塊發(fā)送按照各個(gè)接口預(yù)先定義的調(diào)度消息。例如,在本發(fā)明方案一的一個(gè)較佳實(shí)施例中,一個(gè)新的數(shù)據(jù)包從接口E緩沖區(qū)到達(dá)隊(duì)列管理模塊12,隊(duì)列管理模塊12將該包的所有緩沖區(qū)放到分組隊(duì)列11中,即進(jìn)行入列操作。如果該VC的隊(duì)列由空變?yōu)榉强?,并且?duì)列中沒有出列標(biāo)志D,則通過接口C緩沖區(qū)向流量控制模塊13發(fā)送一個(gè)出列調(diào)度請求,并在VC隊(duì)列中設(shè)置出列標(biāo)志D;如果VC隊(duì)列原來就為非空,或者隊(duì)列中有出列標(biāo)志D,則只進(jìn)行入列操作。又例如,在本發(fā)明方案一的一個(gè)較佳實(shí)施例中,隊(duì)列管理模塊12接收接口D緩沖區(qū)中的消息,如果是發(fā)送調(diào)度,則通過接口B緩沖區(qū)發(fā)送調(diào)度消息給發(fā)送處理模塊14。如果是出列調(diào)度消息,則檢查分組隊(duì)列11中存儲(chǔ)的出列標(biāo)志D,如果沒有,則構(gòu)造發(fā)送調(diào)度消息給發(fā)送處理模塊14;如果有,則從分組隊(duì)列11中出列最多五個(gè)新的緩沖區(qū),和調(diào)度消息一起通過接口B緩沖區(qū)傳遞給發(fā)送處理模塊14,并清除VC隊(duì)列描述符QD中的出列標(biāo)志D。如果出列新緩沖區(qū)失敗,說明VC隊(duì)列是空的,沒有新數(shù)據(jù)包到達(dá),則清除QD中的出列標(biāo)志D,并構(gòu)造發(fā)送調(diào)度消息給發(fā)送處理模塊14。隊(duì)列管理模塊12從接口A緩沖區(qū)中接收發(fā)送處理模塊14的請求消息,如果是發(fā)送調(diào)度,就通過接口C緩沖區(qū)轉(zhuǎn)給流量控制模塊13,進(jìn)行新的調(diào)度處理。如果是出列調(diào)度,且VC隊(duì)列的QD中沒有出列標(biāo)志D,就在VC隊(duì)列的QD中設(shè)置出列標(biāo)志D,然后發(fā)送出列調(diào)度請求給流量控制模塊13,進(jìn)行調(diào)度處理;如果QD中已有出列標(biāo)志D,則丟棄該調(diào)度請求。如果是Timer_CU調(diào)度請求T,隊(duì)列管理模塊12在VC隊(duì)列QD中設(shè)置Timer_CU標(biāo)志T和出列標(biāo)志D,然后發(fā)送Timer_CU調(diào)度請求給流量控制模塊13。
流量控制模塊13負(fù)責(zé)從接口C緩沖區(qū)中接收消息并根據(jù)消息的內(nèi)容進(jìn)行相應(yīng)的處理,或在完成相應(yīng)的調(diào)度時(shí)刻的計(jì)算后根據(jù)計(jì)算結(jié)果構(gòu)造相應(yīng)的調(diào)度消息發(fā)送。在本發(fā)明方案一的一個(gè)較佳實(shí)施例中,流量控制模塊13從接口C緩沖區(qū)中得到請求消息后,如果是發(fā)送調(diào)度請求或者出列調(diào)度請求,則按該VC的流量參數(shù),進(jìn)行正常的調(diào)度。如果是Timer_CU調(diào)度請求消息,必須根據(jù)該VC的流量參數(shù)和Timer_CU定時(shí)器配置參數(shù),計(jì)算出正規(guī)調(diào)度和Timer_CU調(diào)度兩個(gè)調(diào)度的具體時(shí)刻,如果兩個(gè)調(diào)度消息的時(shí)刻重疊,或者Timer_CU調(diào)度時(shí)刻比正規(guī)的調(diào)度時(shí)刻早,則執(zhí)行一次Timer_CU調(diào)度。否則說明Timer_CU調(diào)度時(shí)刻比正規(guī)的調(diào)度時(shí)刻晚,則當(dāng)作出列調(diào)度和Timer_CU調(diào)度兩次處理,即先做一次出列調(diào)度,再做一次Timer_CU調(diào)度。
發(fā)送處理模塊14負(fù)責(zé)從接口B緩沖區(qū)中接收調(diào)度消息,對緩沖區(qū)中的數(shù)據(jù)進(jìn)行AAL2的協(xié)議處理以生成CPS-PDU并提交ATM模塊15處理,根據(jù)處理結(jié)果通過接口A緩沖區(qū)向隊(duì)列管理模塊12發(fā)送相應(yīng)的調(diào)度請求。在本發(fā)明方案一的一個(gè)較佳實(shí)施例中,如果在對緩沖區(qū)中的數(shù)據(jù)進(jìn)行AAL2的協(xié)議處理時(shí)發(fā)現(xiàn)該緩沖區(qū)沒有處理完,則通過接口A緩沖區(qū)向隊(duì)列管理模塊12發(fā)送新的發(fā)送調(diào)度請求。如果當(dāng)前緩沖區(qū)已經(jīng)處理完,暫存的緩沖區(qū)少于五個(gè),則通過接口A緩沖區(qū)發(fā)送出列調(diào)度請求。如果該VC沒有數(shù)據(jù)可發(fā)送,暫存的緩沖區(qū)已經(jīng)處理完,說明下次沒有數(shù)據(jù)可發(fā)送,就通過接口A緩沖區(qū)發(fā)送Timer_CU調(diào)度請求。又例如,在本發(fā)明的一個(gè)較佳實(shí)施例中,發(fā)送處理模塊14接收到調(diào)度消息后,如果處于Timer_CU的等待周期中,且從接口B緩沖區(qū)中得到帶有新的緩沖區(qū)的Timer_CU調(diào)度或出列調(diào)度,則進(jìn)行發(fā)送處理。如果是Timer_CU超時(shí)調(diào)度,且當(dāng)前VC沒有數(shù)據(jù)可發(fā)送,則將CPS-PDU用0填充滿后給ATM模塊15處理,如果當(dāng)前VC有可發(fā)送的數(shù)據(jù),則直接退出Timer_CU等待周期。如果不處于Timer_CU的等待周期中,則進(jìn)行正常調(diào)度處理,分為發(fā)送調(diào)度和出列調(diào)度,發(fā)送調(diào)度就從當(dāng)前緩沖區(qū)中發(fā)送一個(gè)信元,出列調(diào)度就將消息中的緩沖區(qū)更新為當(dāng)前緩沖區(qū),發(fā)送一個(gè)信元。如果在Timer_CU調(diào)度中出現(xiàn)數(shù)據(jù)不夠發(fā)一個(gè)完整的CPS-PDU,則發(fā)送出列調(diào)度消息給隊(duì)列管理模塊12。
ATM模塊15負(fù)責(zé)接收發(fā)送處理模塊14處理后的CPS-PDU并進(jìn)行相應(yīng)的ATM層的處理。此模塊和通用的ATM層的模塊完全相同,在此不多說明。
本發(fā)明方案一的一個(gè)較佳實(shí)施例的實(shí)現(xiàn)Timer_CU功能的系統(tǒng)中,流量控制模塊13的工作流程圖如圖7。該模塊由獨(dú)立的微處理器控制其工作并完成如下的流程首先進(jìn)入步驟110,調(diào)度當(dāng)前時(shí)隙并通過接口D緩沖區(qū)向隊(duì)列管理模塊12發(fā)送調(diào)度消息。其中,在本發(fā)明方案一的一個(gè)較佳實(shí)施例中,當(dāng)前時(shí)隙和所發(fā)送調(diào)度消息的類型已經(jīng)由流量控制模塊13根據(jù)相應(yīng)的規(guī)則確定。
接著進(jìn)入步驟110,從接口C緩沖區(qū)中讀取調(diào)度請求消息。在本發(fā)明方案一的一個(gè)較佳實(shí)施例中,如上述接口C中的消息結(jié)構(gòu)表所示,從接口C緩沖區(qū)中讀取的調(diào)度請求消息包含了VC的類型,發(fā)送調(diào)度消息、出列調(diào)度消息和Timer_CU調(diào)度消息的標(biāo)志等信息,下面各步驟的處理就是根據(jù)接收到消息的這些信息來進(jìn)行相應(yīng)的處理。
接著進(jìn)入步驟120,判斷VC的類型是否為AAL2,如果是則進(jìn)入步驟160,否則進(jìn)入步驟130。在本發(fā)明方案一的一個(gè)較佳實(shí)施例中,只對AAL2使用Timer_CU,因此主要對AAL2進(jìn)行處理。
在步驟130中,讀取VC的流量參數(shù)。在本發(fā)明方案一的一個(gè)較佳實(shí)施例中,每個(gè)VC的流量參數(shù)都是根據(jù)該VC的業(yè)務(wù)和用戶請求的不同事先設(shè)定好,在讀取時(shí)只需要在表中查找即可。接著進(jìn)入步驟140。
在步驟140中,計(jì)算峰值信元速率(Peak Cell Rate,簡稱“PCR”)或者平均信元速率(Sustained Cell Rate,簡稱“SCR”)調(diào)度的時(shí)刻。其中,按照PCR還是SCR來計(jì)算調(diào)度時(shí)刻取決于系統(tǒng)的配置。接著進(jìn)入步驟150。
在步驟150中,構(gòu)造調(diào)度消息。在本發(fā)明方案一的一個(gè)較佳實(shí)施例中,本步驟根據(jù)計(jì)算出的PCR或SCR時(shí)刻來進(jìn)行正常的調(diào)度,該調(diào)度消息構(gòu)造后的格式如接口D緩沖區(qū)中的消息結(jié)構(gòu)。接著進(jìn)入步驟220。
在步驟160中,讀取VC的流量參數(shù)和Timer_CU參數(shù)。在本發(fā)明方案一的一個(gè)較佳實(shí)施例中,VC的流量參數(shù)和Timer_CU參數(shù)由該VC所承載的業(yè)務(wù)和用戶的請求事先決定。接著進(jìn)入步驟170。
在步驟170中,判斷調(diào)度消息是否為Timer_CU調(diào)度,如果是則進(jìn)入步驟180,否則進(jìn)入步驟140。在本發(fā)明方案一的一個(gè)較佳實(shí)施例中,本步驟的判斷通過從接口C緩沖區(qū)中接收的消息中的Timer_CU調(diào)度標(biāo)志T來判斷,如果T為1則為Timer_CU調(diào)度。
在步驟180中,計(jì)算PCR或SCR調(diào)度和Timer_CU調(diào)度的時(shí)刻。在本發(fā)明方案一的一個(gè)較佳實(shí)施例中,這些調(diào)度的時(shí)刻都是由當(dāng)前VC的一些參數(shù)決定。接著進(jìn)入步驟190。
在步驟190中,判斷Timer_CU調(diào)度是否在PCR或SCR調(diào)度之后,如果是則進(jìn)入步驟200,否則進(jìn)入步驟210。在本發(fā)明方案一的一個(gè)較佳實(shí)施例中,如果Timer_CU調(diào)度時(shí)刻早于或等于PCR或SCR調(diào)度時(shí)刻,則說明進(jìn)行Timer_CU調(diào)度之后才會(huì)出現(xiàn)PCR或SCR調(diào)度,因此構(gòu)造的調(diào)度消息中只需要Timer_CU調(diào)度而不需要出列調(diào)度,否則兩個(gè)調(diào)度均需要。
在步驟200中,構(gòu)造Timer_CU調(diào)度消息和出列調(diào)度消息。在本發(fā)明方案一的一個(gè)較佳實(shí)施例中,Timer_CU調(diào)度消息和出列調(diào)度消息的構(gòu)造通過設(shè)置相應(yīng)的標(biāo)志T和D來實(shí)現(xiàn)。接著進(jìn)入步驟220。
在步驟210中,構(gòu)造Timer_CU調(diào)度消息。在本發(fā)明方案一的一個(gè)較佳實(shí)施例中,Timer_CU調(diào)度消息的構(gòu)造通過設(shè)置相應(yīng)的標(biāo)志T來實(shí)現(xiàn)。接著進(jìn)入步驟220。
在步驟220中,將調(diào)度消息寫入調(diào)度隊(duì)列的時(shí)隙。接著進(jìn)入步驟100。在本發(fā)明方案一的一個(gè)較佳實(shí)施例中,步驟220中要寫入的調(diào)度消息已經(jīng)由前面一些步驟根據(jù)相應(yīng)的規(guī)則構(gòu)造好,例如步驟150、步驟210和步驟220中均進(jìn)行調(diào)度消息構(gòu)造的處理。
在流量控制模塊13的微處理器的控制下,這些步驟周而復(fù)始完成流量控制模塊13的處理流程。
本發(fā)明方案一的一個(gè)較佳實(shí)施例的實(shí)現(xiàn)Timer_CU功能的系統(tǒng)中,隊(duì)列管理模塊12處理流程如圖8和圖9。該模塊由其模塊中的微處理器控制其工作并完成如下的流程首先進(jìn)入步驟300,從接口D緩沖區(qū)中讀取調(diào)度消息。在本發(fā)明方案一的一個(gè)較佳實(shí)施例中,接口D緩沖區(qū)中的調(diào)度消息由流量控制模塊13發(fā)出,具體可以參照前面流量控制模塊13的處理流程,該調(diào)度消息的結(jié)構(gòu)為接口D中的消息結(jié)構(gòu),包括VC類型,調(diào)度消息等信息。
接著進(jìn)入步驟310,判斷VC類型是否為AAL2,如果是則進(jìn)入步驟320,否則進(jìn)入步驟470。在本發(fā)明方案一的一個(gè)較佳實(shí)施例中,由于只是對AAL2進(jìn)行Timer_CU的相關(guān)操作,因此如果VC類型不是AAL2則直接按照其它類型進(jìn)行處理,即進(jìn)入步驟470。
在步驟320中,判斷是否是Timer_CU調(diào)度,如果是則進(jìn)入步驟330,否則進(jìn)入步驟380。在本發(fā)明方案一的一個(gè)較佳實(shí)施例中,該步驟的判斷通過檢測從接口D緩沖區(qū)中讀取調(diào)度消息的Timer_CU調(diào)度標(biāo)志T來確定。
在步驟330中,從VC隊(duì)列的VC隊(duì)列描述符QD中讀取Timer_CU標(biāo)志和出列標(biāo)志。在本發(fā)明方案一的一個(gè)較佳實(shí)施例,QD的結(jié)構(gòu)如前所述,其中Timer_CU標(biāo)志和出列標(biāo)志分別用T和D表示。接著進(jìn)入步驟340。
在步驟340中,判斷是否有出列標(biāo)志,如果有則進(jìn)入步驟350,否則進(jìn)入步驟370。在本發(fā)明方案一的一個(gè)較佳實(shí)施例中,在該步驟中如果沒有出列標(biāo)志,則表示不需要進(jìn)行出列操作。
在步驟350中,從VC隊(duì)列中出列最多5個(gè)緩沖區(qū)。需要說明的是,在本發(fā)明方案一的一個(gè)較佳實(shí)施例中,由于每個(gè)緩沖區(qū)中存放的數(shù)據(jù)都不足以發(fā)送一個(gè)信元,這時(shí),就導(dǎo)致每個(gè)信元發(fā)送都要進(jìn)行多次調(diào)度。從整體看來,即使數(shù)據(jù)足夠多,都在VC的隊(duì)列中,VC的速率也會(huì)降低。如果每個(gè)緩沖區(qū)中存放的數(shù)據(jù)都很少,假如只有10字節(jié)左右,每個(gè)信元需要約4次調(diào)度才能發(fā)送出去,這樣的結(jié)果是VC的速率降低為五分之一。緩沖區(qū)中的數(shù)據(jù)越少,則降低越多。為了避免這種問題發(fā)生,在本發(fā)明的一個(gè)較佳實(shí)施例中,在隊(duì)列管理模塊12中,每次出列操作時(shí),從隊(duì)列中最多取出5個(gè)緩沖區(qū),如果隊(duì)列中的緩沖區(qū)數(shù)少于5個(gè),則有幾個(gè)取幾個(gè),通過高速接口緩沖區(qū)環(huán)B傳遞給發(fā)送處理模塊14。發(fā)送處理模塊14在發(fā)現(xiàn)緩存的緩沖區(qū)數(shù)少于5個(gè),或者剩余可發(fā)送的字節(jié)數(shù)不夠一個(gè)信元時(shí),就向隊(duì)列管理模塊12發(fā)送出列調(diào)度請求。這樣處理后,可以大大減少對VC隊(duì)列的出列操作次數(shù),將大部分出列調(diào)度轉(zhuǎn)為簡單的發(fā)送調(diào)度,減少了隊(duì)列管理模塊12的負(fù)擔(dān)。并保證了VC的速率不會(huì)下降。接著進(jìn)入步驟360。
在步驟360中,判斷是否獲得新的緩沖區(qū),如果是則進(jìn)入步驟440,否則進(jìn)入步驟370。在本發(fā)明方案一的一個(gè)較佳實(shí)施例中,該步驟即判斷VC隊(duì)列中是否還有數(shù)據(jù),如果沒有則標(biāo)明當(dāng)前的一個(gè)信元還沒有填滿,但已經(jīng)沒有數(shù)據(jù)可以填充。
在步驟370中,構(gòu)造Timer_CU超時(shí)消息。因?yàn)榇藭r(shí)Timer_CU標(biāo)志和出列標(biāo)志都有效,而出列不成功,因此Timer_CU超時(shí),需要構(gòu)造Timer_CU超時(shí)消息。接著進(jìn)入步驟460。
在步驟380中,判斷是否是出列調(diào)度,如果是則進(jìn)入步驟390,否則進(jìn)入步驟440。在本發(fā)明方案一的一個(gè)較佳實(shí)施例中,該判斷通過接口D中消息的出列標(biāo)志D來判斷,如果D是1則是,否則不是。
在步驟390中,從VC隊(duì)列的QD中讀取出列標(biāo)志。接著進(jìn)入步驟400。需要說明的是,此處所讀取的標(biāo)志為VC隊(duì)列QD中的出列標(biāo)志而非接口D中消息的出列標(biāo)志。
在步驟400中,判斷是否有出列標(biāo)志,如果有則進(jìn)入步驟410,否則進(jìn)入步驟430。此處判斷的出列標(biāo)志也是VC隊(duì)列QD中的出列標(biāo)志,在本發(fā)明方案一的一個(gè)較佳實(shí)施例中,以1表示有出列標(biāo)志。
在步驟410中,從VC隊(duì)列中出列最多5個(gè)緩沖區(qū)。該步驟若成功會(huì)將分組隊(duì)列11中的緩沖區(qū)出列至多5個(gè)發(fā)送到接口B緩沖區(qū)。接著進(jìn)入步驟420。
接著進(jìn)入步驟420,判斷是否獲得新的緩沖區(qū),如果有則進(jìn)入步驟440,否則進(jìn)入步驟430。該步驟即判斷出列操作是否成功,即VC隊(duì)列中是否還有數(shù)據(jù)可以出列。
在步驟430中,將出列調(diào)度改為發(fā)送調(diào)度,構(gòu)造發(fā)送調(diào)度消息。該步驟構(gòu)造的消息將通知發(fā)送處理模塊14進(jìn)行發(fā)送調(diào)度的相關(guān)操作。接著進(jìn)入步驟450。
在步驟440中,構(gòu)造發(fā)送調(diào)度消息。接著進(jìn)入步驟450。
在步驟450中,通過接口B緩沖區(qū)發(fā)送調(diào)度消息給發(fā)送處理模塊14。本步驟發(fā)送的調(diào)度消息由前面的步驟構(gòu)建。接著進(jìn)入步驟460。
在步驟460中,從接口A緩沖區(qū)中讀取發(fā)送處理模塊14的請求消息。在本發(fā)明方案一的一個(gè)較佳實(shí)施例中,接口A緩沖區(qū)中的數(shù)據(jù)格式如前所述。接著進(jìn)入步驟480。
在步驟470中,按照其它類型處理。在本發(fā)明方案一的一個(gè)較佳實(shí)施例中,只有AAL2的處理和公知的方法不同,其它類型的處理方法相同。接著進(jìn)入步驟550。
在步驟480中,判斷是否為Timer_CU調(diào)度請求,如果是則進(jìn)入步驟490,否則進(jìn)入步驟500。該判斷同樣是根據(jù)接口A中接收的消息的Timer_CU標(biāo)志來判斷,在本發(fā)明方案一的一個(gè)較佳實(shí)施例中,Timer_CU標(biāo)志T為1表示是Timer_CU調(diào)度。
在步驟490中,在VC隊(duì)列的QD中設(shè)置Timer_CU調(diào)度標(biāo)志和出列調(diào)度標(biāo)志。在本發(fā)明方案一的一個(gè)較佳實(shí)施例中,該步驟通過將VC隊(duì)列的QD的Timer_CU調(diào)度標(biāo)志T和出列標(biāo)志D置1實(shí)現(xiàn)。接著進(jìn)入步驟530。
在步驟500中,判斷是否為出列請求,如果是則進(jìn)入步驟510,否則進(jìn)入步驟530。本步驟的判斷通過檢測接口A接收的消息的出列調(diào)度標(biāo)志實(shí)現(xiàn)。
在步驟510中,判斷VC隊(duì)列的QD中是否有出列標(biāo)志,如果有則進(jìn)入步驟550,否則進(jìn)入步驟520。在本發(fā)明方案一的一個(gè)較佳實(shí)施例中,以D等于1表示QD中有出列標(biāo)志。
在步驟520中,在VC隊(duì)列的QD中設(shè)置出列標(biāo)志。在本發(fā)明方案一的一個(gè)較佳實(shí)施例中,該步驟通過將QD中的D標(biāo)志位置1實(shí)現(xiàn)。接著進(jìn)入步驟530。
在步驟530中,構(gòu)造調(diào)度請求消息。該調(diào)度請求消息將在下面的步驟中傳送給流量控制模塊13。接著進(jìn)入步驟540。
在步驟540中,通過接口C緩沖區(qū)將調(diào)度請求消息傳送給流量控制模塊13。該步驟所發(fā)送的調(diào)度請求消息為前面步驟按照一定規(guī)則所構(gòu)造好的。接著進(jìn)入步驟550。
在步驟550中,從接口E緩沖區(qū)中接收新到達(dá)的數(shù)據(jù)包。其中,接口E緩沖區(qū)的數(shù)據(jù)包來自其它模塊或者上層協(xié)議,例如A級(jí)、B級(jí)、C級(jí)、D級(jí)四種不同的用戶業(yè)務(wù)所傳送的數(shù)據(jù)包。接著進(jìn)入步驟560。
在步驟560中,判斷VC類型是否為AAL2,如果是則進(jìn)入步驟570,否則進(jìn)入步驟630。
在步驟570中,從該VC隊(duì)列的QD中讀取出列標(biāo)志及隊(duì)列中的緩沖區(qū)數(shù)。該步驟是為了將接收數(shù)據(jù)存入隊(duì)列做獲取初試參數(shù)。接著進(jìn)入步驟580。
在步驟580中,判斷隊(duì)列是否為空,如果是則進(jìn)入步驟620,否則進(jìn)入步驟590。該步驟的隊(duì)列是否為空可以通過察看QD中的Packet Counter得知。
在步驟590中,判斷該VC隊(duì)列的QD是否有出列標(biāo)志,如果是則進(jìn)入步驟620,否則進(jìn)入步驟600。在本發(fā)明方案一的一個(gè)較佳實(shí)施例中,該步驟通過查詢VC隊(duì)列的QD中的出列標(biāo)志D是否為1實(shí)現(xiàn)。
在步驟600中,構(gòu)造出列標(biāo)志并在QD中設(shè)置出列標(biāo)志并將緩沖區(qū)存入隊(duì)列。該步驟即將VC隊(duì)列的QD出列標(biāo)志置1。接著進(jìn)入步驟610。
在步驟610中,通過接口C緩沖區(qū)傳遞調(diào)度請求消息給流量控制模塊13。接著進(jìn)入步驟300。
在隊(duì)列管理模塊12的微處理器控制下,這些步驟周而復(fù)始從各個(gè)輸入接口接收消息并完成相應(yīng)的處理。
本發(fā)明方案一的一個(gè)較佳實(shí)施例的實(shí)現(xiàn)Timer_CU功能的系統(tǒng)中,發(fā)送處理模塊14的工作流程如圖10。該模塊由其模塊中的微處理器控制其工作并完成如下的流程首先進(jìn)入步驟700,從接口B緩沖區(qū)中讀取調(diào)度消息。在本發(fā)明方案一的一個(gè)較佳實(shí)施例中,接口B緩沖區(qū)的調(diào)度消息的格式如前所述。接著進(jìn)入步驟710。
在步驟710中,判斷是否為出列調(diào)度,如果是則進(jìn)入步驟720,否則進(jìn)入步驟730。在本發(fā)明方案一的一個(gè)較佳實(shí)施例中,該步驟中的判斷通過檢測接口B緩沖區(qū)中接收的調(diào)度消息的出列標(biāo)志D實(shí)現(xiàn)。
在步驟720中,將接口B緩沖區(qū)中傳來的數(shù)據(jù)緩沖區(qū)暫存并構(gòu)造CPS-PDU發(fā)送。在本發(fā)明方案一的一個(gè)較佳實(shí)施例中,通過接口B緩沖區(qū)傳來的數(shù)據(jù)緩沖區(qū)的指針獲得數(shù)據(jù)構(gòu)造CPS-PDU并在構(gòu)造完成后發(fā)送給ATM模塊15。接著進(jìn)入步驟800。
在步驟730中,判斷是否為Timer_CU調(diào)度,如果是則進(jìn)入步驟750,否則進(jìn)入步驟740。在本發(fā)明方案一的一個(gè)較佳實(shí)施例中,該步驟中的判斷通過檢測接口B緩沖區(qū)中接收的調(diào)度消息的Timer_CU調(diào)度標(biāo)志T實(shí)現(xiàn)。
在步驟740中,構(gòu)造CPS-PDU發(fā)送給ATM模塊15。接著進(jìn)入步驟800。
在步驟750中,停止Timer_CU。在本發(fā)明的一個(gè)較佳實(shí)施例中,通過將接口B緩沖區(qū)中接收的調(diào)度消息的Timer_CU調(diào)度標(biāo)志清零實(shí)現(xiàn)。接著進(jìn)入步驟760。
在步驟760中,判斷是否為超時(shí)消息,如果是則進(jìn)入步驟780,否則進(jìn)入步驟770。在本發(fā)明方案一的一個(gè)較佳實(shí)施例中,通過消息中的T標(biāo)志判定是否超時(shí)。
在步驟770中,暫存新緩沖區(qū)并構(gòu)造CPS-PDU發(fā)送。接著進(jìn)入步驟800。
在步驟780中,判斷當(dāng)前VC是否還有數(shù)據(jù)可以發(fā)送,如果是則進(jìn)入步驟700,否則進(jìn)入步驟790。在本發(fā)明方案一的一個(gè)較佳實(shí)施例中,通過讀取VC隊(duì)列的QD中的Packet Counter來判斷是否還有數(shù)據(jù)可以發(fā)送。
在步驟790中,填充CPS-PDU發(fā)送并停止Timer_CU。在本發(fā)明方案一的一個(gè)較佳實(shí)施例中,通過將接口B緩沖區(qū)中接收的消息的Timer_CU調(diào)度標(biāo)志清零實(shí)現(xiàn)停止Timer_CU。接著進(jìn)入步驟700。
在步驟800,判斷能否填滿一個(gè)CPS-PDU,如果是則進(jìn)入步驟830,否則進(jìn)入步驟810。上述構(gòu)造CPS-PDU的步驟720、步驟740和步驟770均進(jìn)入該步驟,在該步驟中判斷CPS-PDU是否被數(shù)據(jù)填滿。
在步驟810中,判斷是否已經(jīng)啟動(dòng)Timer_CU,如果是則進(jìn)入步驟850,否則進(jìn)入步驟820。在本發(fā)明方案一的一個(gè)較佳實(shí)施例中,通過判斷消息中的Timer_CU調(diào)度標(biāo)志位是否為1來實(shí)現(xiàn),如果是1則已經(jīng)啟動(dòng),否則沒有啟動(dòng)。
在步驟820中,構(gòu)造Timer_CU調(diào)度請求消息。其中,該步驟所構(gòu)造的Timer_CU調(diào)度請求消息格式如前面所述的接口A中的消息結(jié)構(gòu)。接著進(jìn)入步驟860。
在步驟830中,判斷暫存緩沖區(qū)是否小于5個(gè),如果是則進(jìn)入步驟850,否則進(jìn)入步驟840。在本發(fā)明方案一的一個(gè)較佳實(shí)施例中,如果暫存緩沖區(qū)小于5個(gè),暫存緩沖區(qū)中的數(shù)據(jù)就有可能不能填滿一個(gè)CPS-PDU包。
在步驟840中,構(gòu)造發(fā)送調(diào)度請求消息。該步驟是在暫存緩沖區(qū)足夠,能夠填滿一個(gè)CPS-PDU包時(shí)執(zhí)行。該步驟通過設(shè)置接口A緩沖區(qū)中的發(fā)送調(diào)度標(biāo)志D實(shí)現(xiàn)。接著進(jìn)入步驟860。
在步驟850中,構(gòu)造出列調(diào)度請求消息。該步驟通過設(shè)置接口A緩沖區(qū)中的發(fā)送標(biāo)志S實(shí)現(xiàn)。接著進(jìn)入步驟860。
在步驟860中,通過接口A發(fā)送調(diào)度請求消息給隊(duì)列管理模塊12。該步驟所發(fā)送的調(diào)度請求消息由上述步驟預(yù)先設(shè)定。接著進(jìn)入步驟700。
在發(fā)送處理模塊14中的微處理器控制下,這些步驟周而復(fù)始的完成發(fā)送處理模塊14的處理流程。
根據(jù)上面所述的方案,熟悉本領(lǐng)域的技術(shù)人員可以理解,可以將其中的隊(duì)列管理模塊12去除,由發(fā)送處理模塊14直接管理AAL2類型的VC緩沖區(qū)隊(duì)列,這樣可以減少消息傳遞的接口。
發(fā)明方案二中,網(wǎng)絡(luò)處理器中幾個(gè)單獨(dú)的微處理器并行處理,這些微處理器所控制的不同模塊之間通過接口緩沖區(qū)進(jìn)行通信以交換消息。不同接口的信息代表不同的調(diào)度消息,各個(gè)模塊之間依據(jù)接收的調(diào)度消息進(jìn)行相關(guān)的操作。其中,需要說明的是,在調(diào)度消息中需要指出對哪個(gè)VC進(jìn)行操作。
根據(jù)本發(fā)明方案二的一個(gè)較佳實(shí)施例的實(shí)現(xiàn)Timer_CU功能的系統(tǒng)組成和連接方式如圖11所示。
根據(jù)本發(fā)明方案二的一個(gè)較佳實(shí)施例的實(shí)現(xiàn)Timer_CU功能的系統(tǒng)包含分組隊(duì)列21,隊(duì)列管理模塊22,流量控制模塊23,發(fā)送處理模塊24,ATM模塊25。
發(fā)送處理模塊24通過接口H緩沖區(qū)發(fā)送CPS-PDU消息給隊(duì)列管理模塊22;隊(duì)列管理模塊22通過接口I緩沖區(qū)發(fā)送調(diào)度請求消息給流量控制模塊23;流量控制模塊23通過接口J緩沖區(qū)發(fā)送調(diào)度響應(yīng)消息給隊(duì)列管理模塊22;發(fā)送處理模塊24從高速接口E緩沖區(qū)接收來自AAL2上層協(xié)議或其它模塊的數(shù)據(jù)包;流量控制模塊23通過接口F緩沖區(qū)發(fā)送Timer_CU超時(shí)響應(yīng)消息給發(fā)送處理模塊24;發(fā)送處理模塊24通過接口G緩沖區(qū)發(fā)送Timer_CU定時(shí)請求消息給流量控制模塊23;隊(duì)列管理模塊22對分組隊(duì)列21進(jìn)行入列和出列操作;隊(duì)列管理模塊22向ATM模塊25發(fā)送CPS-PDU。
在本發(fā)明的一個(gè)較佳實(shí)施例中,各個(gè)接口緩沖區(qū)的消息結(jié)構(gòu)分別如下接口H中的消息結(jié)構(gòu)如下表
接口I中的消息結(jié)構(gòu)如下表
接口J中的消息結(jié)構(gòu)如下表
接口E中的消息結(jié)構(gòu)如下表
接口F中的消息結(jié)構(gòu)如下表
接口G中的消息結(jié)構(gòu)如下表
其中,各個(gè)接口的消息中的VC Index表示當(dāng)前消息的VC編號(hào),根據(jù)此編號(hào)可以區(qū)分不同的VC。
其中,分組隊(duì)列21用來以隊(duì)列的形式存放待發(fā)送的CPS-PDU。在本發(fā)明方案二的一個(gè)較佳實(shí)施例中,分組隊(duì)列21是按照VC管理的,每條VC一個(gè)隊(duì)列,每個(gè)CPS-PDU占用一個(gè)緩沖區(qū),即緩沖區(qū)的大小為48字節(jié)。
隊(duì)列管理模塊22管理分組隊(duì)列2中的隊(duì)列,從接口H緩沖區(qū)和接口J緩沖區(qū)中獲得消息并進(jìn)行相應(yīng)的處理。其中,從接口H緩沖區(qū)中接收的消息為CPS-PDU消息,需要進(jìn)行入列等操作;從接口J緩沖區(qū)中接收的消息為調(diào)度響應(yīng)消息,需要進(jìn)行出列、發(fā)送CPS-PDU等操作。
流量控制模塊23管理調(diào)度時(shí)間隊(duì)列,計(jì)算VC的發(fā)送時(shí)間,從接口I緩沖區(qū)和接口G緩沖區(qū)中獲取相應(yīng)的消息并進(jìn)行相應(yīng)的處理。其中,從接口I緩沖區(qū)中接收的消息為隊(duì)列管理模塊22的調(diào)度請求消息,需要進(jìn)行調(diào)度時(shí)間隊(duì)列的管理等操作;從接口G緩沖區(qū)中接收的消息為發(fā)送處理模塊24的Timer_CU定時(shí)請求消息,需要進(jìn)行調(diào)度時(shí)間隊(duì)列的入列操作。
發(fā)送處理模塊24負(fù)責(zé)AAL2協(xié)議的處理,接收來自AAL2上層協(xié)議或其它模塊的數(shù)據(jù)包并形成CPS-PDU,在超時(shí)時(shí)填充CPS-PDU并進(jìn)行相應(yīng)的處理。其中,按照AAL2協(xié)議的規(guī)定,接收的數(shù)據(jù)包先經(jīng)過SSCS層的處理后再經(jīng)CPS層的處理后形成CPS-PDU。
ATM模塊25負(fù)責(zé)接收發(fā)送處理模塊24處理后的CPS-PDU并進(jìn)行相應(yīng)的ATM層的處理。此模塊和通用的ATM層的模塊完全相同,在此不多說明。
下面結(jié)合各個(gè)模塊的具體實(shí)現(xiàn)流程來說明本發(fā)明方案二。
根據(jù)本發(fā)明方案二的一個(gè)較佳實(shí)施例的實(shí)現(xiàn)Timer_CU功能的系統(tǒng)的隊(duì)列管理模塊22的工作流程如圖12所示。
首先進(jìn)入步驟900,隊(duì)列管理模塊22從接口H緩沖區(qū)中獲取新到達(dá)的CPS-PDU消息。其中,CPS-PDU消息的格式如前文所述接口H中的消息結(jié)構(gòu),該消息由發(fā)送處理模塊24生成。
接著進(jìn)入步驟910,判斷該VC所屬隊(duì)列是否已經(jīng)發(fā)送調(diào)度請求消息,如果是則進(jìn)入步驟930,否則進(jìn)入步驟920。其中,接口I緩沖區(qū)中的消息即為調(diào)度請求消息。
在步驟920中,隊(duì)列管理模塊22構(gòu)造調(diào)度請求消息并通過接口I發(fā)送。其中,調(diào)度請求消息構(gòu)造的規(guī)則如前所述。
在步驟930中,隊(duì)列管理模塊22將該CPS-PDU入列。在本發(fā)明方案二的一個(gè)較佳實(shí)施例中,CPS-PDU通過接口I接收的CPS-PDU消息中的CPS-PDU緩沖區(qū)指針得到,然后隊(duì)列管理模塊22將該CPS-PDU存儲(chǔ)到分組隊(duì)列21中。
接著進(jìn)入步驟940,隊(duì)列管理模塊22從接口J緩沖區(qū)中獲取調(diào)度響應(yīng)消息。其中,調(diào)度響應(yīng)消息的格式如前接口J中的消息結(jié)構(gòu)所示。
接著進(jìn)入步驟950,出列一個(gè)CPS-PDU。在本發(fā)明方案二的一個(gè)較佳實(shí)施例中,由接收到的調(diào)度響應(yīng)消息中獲得VC標(biāo)號(hào),然后隊(duì)列管理模塊22從分組隊(duì)列21對應(yīng)的VC隊(duì)列中出列一個(gè)CPS-PDU。
接著進(jìn)入步驟960,將出列的CPS-PDU發(fā)送給ATM模塊25。
接著進(jìn)入步驟970,判斷隊(duì)列是否為空,如果是則進(jìn)入步驟900,否則進(jìn)入步驟980。其中所判定的隊(duì)列即前面步驟中的VC隊(duì)列。
在步驟980中,隊(duì)列管理模塊22構(gòu)造調(diào)度請求消息并通過接口I發(fā)送。其中,調(diào)度請求消息的構(gòu)造規(guī)則如前接口I中的消息結(jié)構(gòu)所述。
這些步驟周而復(fù)始的實(shí)現(xiàn)發(fā)明方案二的實(shí)現(xiàn)Timer_CU功能的系統(tǒng)的隊(duì)列管理模塊22的工作流程。
根據(jù)本發(fā)明方案二的一個(gè)較佳實(shí)施例的實(shí)現(xiàn)Timer_CU功能的系統(tǒng)的流量控制模塊23的工作流程如圖13所示。
首先進(jìn)入步驟A00,判斷接口G緩沖區(qū)是否為空,如果是則進(jìn)入步驟A30,否則進(jìn)入步驟A10。其中,接口G緩沖區(qū)中的消息格式如前所述。
在步驟A10中,流量控制模塊23從接口G緩沖區(qū)中獲得Timer_CU定時(shí)請求消息。其中,Timer_CU定時(shí)請求消息由發(fā)送處理模塊24生成并發(fā)送。
接著進(jìn)入步驟A20,計(jì)算超時(shí)時(shí)間并寫入調(diào)度時(shí)間隊(duì)列,處理完該步驟后進(jìn)入步驟A30。其中,超時(shí)時(shí)間隊(duì)列由流量控制模塊23管理。
在步驟A30中,從接口I中獲得調(diào)度請求消息。其中,調(diào)度請求消息由隊(duì)列管理模塊22生成并發(fā)送。
接著進(jìn)入步驟A40,根據(jù)流量參數(shù)計(jì)算發(fā)送時(shí)間并寫入調(diào)度時(shí)間隊(duì)列。其中,發(fā)送時(shí)間由流量控制模塊23根據(jù)VC的相關(guān)參數(shù)確定。
接著進(jìn)入步驟A50,讀取當(dāng)前調(diào)度時(shí)間隊(duì)列。其中,當(dāng)前調(diào)度時(shí)間隊(duì)列是指在時(shí)間隊(duì)列中,在當(dāng)前時(shí)間需要處理的VC。
接著進(jìn)入步驟A60,判斷隊(duì)列中是否有Timer_CU調(diào)度消息,如果是則進(jìn)入步驟A70,否則進(jìn)入步驟A80。其中,當(dāng)前隊(duì)列的Timer_CU調(diào)度消息通過隊(duì)列中VC對應(yīng)的標(biāo)志來確定。
在步驟A70中,流量控制模塊23向接口F緩沖區(qū)發(fā)送Timer_CU超時(shí)響應(yīng)消息,接著進(jìn)入步驟A80。其中,Timer_CU超時(shí)響應(yīng)消息的格式如前接口F中的消息結(jié)構(gòu)所示。
在步驟A80中,流量控制模塊23向接口J緩沖區(qū)發(fā)送調(diào)度響應(yīng)消息。其中,調(diào)度響應(yīng)消息的格式如前接口J中的消息結(jié)構(gòu)所示。接著進(jìn)入步驟A00。
這些步驟周而復(fù)始實(shí)現(xiàn)本發(fā)明方案二的實(shí)現(xiàn)Timer_CU功能的系統(tǒng)的流量控制模塊23的工作流程。
根據(jù)本發(fā)明方案二的一個(gè)較佳實(shí)施例的實(shí)現(xiàn)Timer_CU功能的系統(tǒng)的發(fā)送處理模塊24的工作流程如圖14所示。
首先進(jìn)入步驟B00,判斷是否從接口E緩沖區(qū)中成功獲取新數(shù)據(jù)包,如果是則進(jìn)入步驟B10,否則進(jìn)入步驟B80。其中,接口E緩沖區(qū)接收的數(shù)據(jù)包來自AAL2上層協(xié)議或其它模塊,這些數(shù)據(jù)包經(jīng)AAL2協(xié)議處理后形成CPS-PDU。
在步驟B10中,AAL2協(xié)議進(jìn)行SSCS層處理。其中,本步驟在SSCS子層完成,處理后形成SSCS-PDU。
接著進(jìn)入步驟B20,進(jìn)行AAL2協(xié)議CPS子層處理。其中,處理的規(guī)則可以參照相關(guān)協(xié)議。
接著進(jìn)入步驟B30,判斷是否能夠構(gòu)成完整的CPS-PDU,如果是則進(jìn)入步驟B40,否則進(jìn)入步驟B60。在本步驟中,如果不能構(gòu)成完整的CPS-PDU則說明需要進(jìn)入Timer_CU計(jì)時(shí),如果能夠構(gòu)成完整的CPS-PDU就可以將新生成的CPS-PDU存入隊(duì)列等待系統(tǒng)的調(diào)度發(fā)送。
在步驟B40中,清除Timer_CU啟動(dòng)標(biāo)志。接著進(jìn)入步驟B50。其中,Timer_CU標(biāo)志可以在發(fā)送處理模塊24中各個(gè)VC對應(yīng)的描述中另外定義一個(gè)比特的標(biāo)志,以1來表示Timer_CU已經(jīng)啟動(dòng),以0表示Timer_CU尚未啟動(dòng)。
在步驟B50中,通過接口H發(fā)送CPS-PDU消息。接著進(jìn)入步驟B80。其中,CPS-PDU消息的格式如前接口H中的消息結(jié)構(gòu)所示,隊(duì)列管理模塊22通過CPS-PDU消息中的VC Index和CPS-PDU緩沖區(qū)指針獲得由發(fā)送處理模塊24新生成的CPS-PDU。
在步驟B60中,判斷是否已經(jīng)啟動(dòng)Timer_CU定時(shí)。接著進(jìn)入步驟B70。在本發(fā)明方案二的一個(gè)較佳實(shí)施例中,該步驟通過發(fā)送處理模塊24中各個(gè)VC對應(yīng)的Timer_CU標(biāo)志來判定是否已經(jīng)啟動(dòng)Timer_CU。
在步驟B70中,設(shè)置Timer_CU定時(shí)啟動(dòng)標(biāo)志,通過接口G發(fā)送Timer_CU定時(shí)請求消息。接著進(jìn)入步驟B80。其中,Timer_CU定時(shí)請求消息的格式如前接口G中的消息結(jié)構(gòu)所示。
在步驟B80中,從接口F讀取Timer_CU超時(shí)響應(yīng)消息。其中,Timer_CU超時(shí)響應(yīng)消息的格式如前接口F中的消息結(jié)構(gòu)所示。
接著進(jìn)入步驟B90,判斷接口F中是否有消息并且該消息對應(yīng)的VC的Timer_CU啟動(dòng)標(biāo)志未被清除,如果是則進(jìn)入步驟C00,否則進(jìn)入步驟C10。需要說明的是,若接口F中的Timer_CU超時(shí)響應(yīng)消息對應(yīng)的VC的Timer_CU啟動(dòng)標(biāo)志未被清除,說明該VC還沒有構(gòu)成CPS-PDU,需要填充后形成CPS-PDU;若接口F中的Timer_CU超時(shí)響應(yīng)消息對應(yīng)的VC的Timer_CU啟動(dòng)標(biāo)志已被清除,說明在Timer_CU定時(shí)期間該VC已經(jīng)有新數(shù)據(jù)包到達(dá)并且已經(jīng)構(gòu)成了新的CPS-PDU,不需要進(jìn)行超時(shí)處理。
在步驟C00中,發(fā)送處理模塊24將不滿的CPS-PDU填充后通過接口H發(fā)送并清除Timer_CU標(biāo)志。接著進(jìn)入步驟C10。需要說明的是,為了節(jié)約接口緩沖區(qū)的空間,接口H發(fā)送的只是該CPS-PDU對應(yīng)的VC信息和CPS-PDU的指針,消息格式如前接口H中的消息結(jié)構(gòu)所示。
在步驟C10中,判斷當(dāng)前VC的數(shù)據(jù)包是否處理結(jié)束,如果是則進(jìn)入步驟B00,否則進(jìn)入步驟B10。在本發(fā)明的一個(gè)較佳實(shí)施例中,只有在當(dāng)前VC的數(shù)據(jù)包完全處理結(jié)束后才從接口E緩沖區(qū)中接收新的數(shù)據(jù)包。
這些步驟周而復(fù)始完成本發(fā)明方案二的實(shí)現(xiàn)Timer_CU功能的系統(tǒng)的發(fā)送處理模塊24的工作流程。
熟悉本領(lǐng)域的技術(shù)人員可以理解,上述三個(gè)并行的流程相互配合即可在AAL2中實(shí)現(xiàn)Timer_CU功能。
雖然通過參照本發(fā)明的某些優(yōu)選實(shí)施例,已經(jīng)對本發(fā)明進(jìn)行了圖示和描述,但本領(lǐng)域的普通技術(shù)人員應(yīng)該明白,可以在形式上和細(xì)節(jié)上對其作各種各樣的改變,而不偏離所附權(quán)利要求書所限定的本發(fā)明的精神和范圍。
權(quán)利要求
1.一種實(shí)現(xiàn)聯(lián)合使用定時(shí)器功能的系統(tǒng),在異步傳輸模式適配層類型2中使用,其特征在于,包含分組隊(duì)列,用于以隊(duì)列的形式按照不同的虛通道在緩沖區(qū)內(nèi)存儲(chǔ)待發(fā)數(shù)據(jù),管理虛通道的聯(lián)合使用定時(shí)器調(diào)度標(biāo)志和出列調(diào)度標(biāo)志;隊(duì)列管理模塊,用于接收新數(shù)據(jù)包,管理所述分組隊(duì)列,依據(jù)接收到的調(diào)度和所述分組隊(duì)列中的出列標(biāo)記協(xié)調(diào)所述系統(tǒng)中其他模塊協(xié)同工作;流量控制模塊,用于處理所述隊(duì)列管理模塊的調(diào)度,計(jì)算調(diào)度時(shí)刻并決定是否使用聯(lián)合使用定時(shí)器;發(fā)送處理模塊,用于進(jìn)行超時(shí)的判斷,生成并發(fā)送公共部分子層協(xié)議數(shù)據(jù)單元,根據(jù)處理結(jié)果生成并發(fā)送調(diào)度,并在沒有數(shù)據(jù)發(fā)送時(shí)申請使用聯(lián)合使用定時(shí)器。
2.根據(jù)權(quán)利要求1所述的實(shí)現(xiàn)聯(lián)合使用定時(shí)器功能的系統(tǒng),其特征在于,所述系統(tǒng)的調(diào)度包含發(fā)送調(diào)度、出列調(diào)度和聯(lián)合使用定時(shí)器調(diào)度,分別通過設(shè)定調(diào)度中的發(fā)送標(biāo)志、出列標(biāo)志和聯(lián)合使用定時(shí)器調(diào)度標(biāo)志實(shí)現(xiàn);其中,所述發(fā)送調(diào)度不對所述分組隊(duì)列進(jìn)行操作、只進(jìn)行發(fā)送處理;所述出列調(diào)度從所述分組隊(duì)列中出列待發(fā)數(shù)據(jù)給所述發(fā)送處理模塊處理;所述聯(lián)合使用定時(shí)器調(diào)度在當(dāng)前虛通道沒有待發(fā)數(shù)據(jù)但當(dāng)前虛通道的公共部分子層協(xié)議數(shù)據(jù)單元還沒有完成時(shí)啟動(dòng)聯(lián)合使用定時(shí)器,在有新的待發(fā)數(shù)據(jù)時(shí)從當(dāng)前虛通道隊(duì)列中出列新的待發(fā)數(shù)據(jù)給所述發(fā)送處理模塊處理。
3.根據(jù)權(quán)利要求1所述的實(shí)現(xiàn)聯(lián)合使用定時(shí)器功能的系統(tǒng),其特征在于,所述隊(duì)列管理模塊為每個(gè)虛通道保存一個(gè)描述符,所述描述符用來記錄的內(nèi)容包括隊(duì)列中緩沖區(qū)鏈的首指針、緩沖區(qū)隊(duì)列中緩沖區(qū)鏈的末指針、數(shù)據(jù)包個(gè)數(shù)、出列調(diào)度標(biāo)志和聯(lián)合使用定時(shí)器調(diào)度標(biāo)志。
4.根據(jù)權(quán)利要求1所述的實(shí)現(xiàn)聯(lián)合使用定時(shí)器功能的系統(tǒng),其特征在于,連接所述發(fā)送處理模塊和所述隊(duì)列管理模塊的兩個(gè)方向的接口、連接所述隊(duì)列管理模塊和所述流量控制模塊的兩個(gè)方向的接口中的信息包含異步傳輸模式適配層類型,虛通道的索引編號(hào),發(fā)送調(diào)度標(biāo)志,出列調(diào)度標(biāo)志和聯(lián)合使用定時(shí)器調(diào)度標(biāo)志。
5.根據(jù)權(quán)利要求4所述的實(shí)現(xiàn)聯(lián)合使用定時(shí)器功能的系統(tǒng),其特征在于,所述隊(duì)列管理模塊向所述發(fā)送處理模塊發(fā)送消息的接口中的信息還包含最多5個(gè)隊(duì)列緩沖區(qū)描述符的指針。
6.根據(jù)權(quán)利要求1所述的實(shí)現(xiàn)聯(lián)合使用定時(shí)器功能的系統(tǒng),其特征在于,待發(fā)數(shù)據(jù)在所述分組隊(duì)列中以隊(duì)列形式存儲(chǔ)在緩沖區(qū)中,每個(gè)所述緩沖區(qū)中存放的數(shù)據(jù)少于一個(gè)公共部分子層協(xié)議數(shù)據(jù)單元所需要填充的數(shù)據(jù)。
7.根據(jù)權(quán)利要求6所述的實(shí)現(xiàn)聯(lián)合使用定時(shí)器功能的系統(tǒng),其特征在于,每個(gè)所述緩沖區(qū)存放10個(gè)字節(jié)的數(shù)據(jù)。
8.一種隊(duì)列管理模塊接收來自其它模塊的調(diào)度和上層的數(shù)據(jù)包并進(jìn)行處理的方法,其特征在于,所述隊(duì)列管理模塊的處理流程包含以下步驟A接收并處理流量控制模塊的調(diào)度,依照調(diào)度類型進(jìn)行緩沖區(qū)出列操作,根據(jù)緩沖區(qū)出列操作的結(jié)果構(gòu)造調(diào)度并發(fā)送給其他所述模塊;B接收并處理發(fā)送處理模塊的調(diào)度,依照調(diào)度類型進(jìn)行分組隊(duì)列中標(biāo)志的管理,并構(gòu)造調(diào)度發(fā)送給其它所述模塊;C接收來自上層的數(shù)據(jù)包并入列到所述分組隊(duì)列,管理所述分組隊(duì)列中的標(biāo)志,構(gòu)造并發(fā)送出列調(diào)度。
9.根據(jù)權(quán)利要求8所述的隊(duì)列管理模塊接收來自其它模塊的調(diào)度和上層的數(shù)據(jù)包并進(jìn)行處理的方法,其特征在于,所述步驟A還包含以下子步驟A1根據(jù)接收到的調(diào)度判斷當(dāng)前虛通道類型是否為異步傳輸模式適配層類型2,如果是則繼續(xù),否則直接按照其它適配層類型處理后結(jié)束所述步驟A;A2若調(diào)度的類型是聯(lián)合使用定時(shí)器調(diào)度,則進(jìn)行聯(lián)合使用定時(shí)器調(diào)度處理;A3若調(diào)度的類型是發(fā)送調(diào)度,則構(gòu)造發(fā)送調(diào)度并發(fā)送給所述發(fā)送處理模塊;A4若調(diào)度的類型是出列調(diào)度,則進(jìn)行出列調(diào)度處理。
10.根據(jù)權(quán)利要求9所述的隊(duì)列管理模塊接收來自其它模塊的調(diào)度和上層的數(shù)據(jù)包并進(jìn)行處理的方法,其特征在于,步驟A2還包含以下子步驟A21判斷當(dāng)前虛通道的出列標(biāo)志是否有效,如果是則進(jìn)入步驟A22,否則構(gòu)造超時(shí)調(diào)度發(fā)送給所述發(fā)送處理模塊后結(jié)束所述步驟A2;A22從當(dāng)前虛通道的隊(duì)列中出列緩沖區(qū),并判斷是否出列成功,如果是則構(gòu)造發(fā)送調(diào)度發(fā)送給所述發(fā)送處理模塊后結(jié)束所述步驟A2,否則構(gòu)造超時(shí)調(diào)度發(fā)送給所述發(fā)送處理模塊后結(jié)束所述步驟A2。
11.根據(jù)權(quán)利要求9所述的隊(duì)列管理模塊接收來自其它模塊的調(diào)度和上層的數(shù)據(jù)包并進(jìn)行處理的方法,其特征在于,步驟A4還包含以下子步驟A41判斷當(dāng)前虛通道的出列標(biāo)志是否有效,如果是則進(jìn)入步驟A42,否則進(jìn)入步驟A44;A42從當(dāng)前虛通道的隊(duì)列中出列緩沖區(qū),并判斷是否出列成功,如果是則進(jìn)入步驟A43,否則進(jìn)入步驟A44;A43構(gòu)造調(diào)度發(fā)送給所述發(fā)送處理模塊后結(jié)束所述步驟A4;A44構(gòu)造發(fā)送調(diào)度發(fā)送給所述發(fā)送處理模塊后結(jié)束所述步驟A4。
12.根據(jù)權(quán)利要求8所述的隊(duì)列管理模塊接收來自其它模塊的調(diào)度和上層的數(shù)據(jù)包并進(jìn)行處理的方法,其特征在于,所述步驟B還包含以下子步驟B1判斷調(diào)度是否是發(fā)送調(diào)度,如果是則進(jìn)入步驟B6,否則進(jìn)入步驟B2;B2判斷調(diào)度是否是聯(lián)合使用定時(shí)器調(diào)度,如果是則進(jìn)入步驟B3,否則進(jìn)入步驟B4B3設(shè)置當(dāng)前虛通道的聯(lián)合使用定時(shí)器調(diào)度標(biāo)志和出列調(diào)度標(biāo)志,接著進(jìn)入步驟B6;B4判斷當(dāng)前虛通道是否有出列標(biāo)志,如果有則結(jié)束,否則進(jìn)入步驟B5;B5設(shè)置當(dāng)前虛通道的出列調(diào)度標(biāo)志,接著進(jìn)入步驟B6;B6構(gòu)造調(diào)度并發(fā)送給所述流量控制模塊后結(jié)束所述步驟B。
13.根據(jù)權(quán)利要求8所述的隊(duì)列管理模塊接收來自其它模塊的調(diào)度和上層的數(shù)據(jù)包并進(jìn)行處理的方法,其特征在于,所述步驟C還包含以下子步驟C 1接收新數(shù)據(jù)包并判斷是否是異步傳輸模式適配層類型2,如果是則進(jìn)入步驟C2,否則按其它類型處理后結(jié)束所述步驟C;C2判斷當(dāng)前虛通道的隊(duì)列是否為空,如果是則進(jìn)入步驟C3,否則進(jìn)行入列操作后結(jié)束所述步驟C;C3判斷當(dāng)前虛通道是否有出列調(diào)度標(biāo)志,如果有則進(jìn)行入列操作,否則進(jìn)入步驟C4;C4進(jìn)行入列操作,構(gòu)造出列調(diào)度,設(shè)置當(dāng)前虛通道的出列調(diào)度標(biāo)志并向所述流量控制模塊發(fā)送出列調(diào)度后結(jié)束所述步驟C。
14.一種流量控制模塊接收來自隊(duì)列管理模塊的調(diào)度并進(jìn)行處理的方法,其特征在于,包含以下步驟D判斷從所述隊(duì)列管理模塊得到調(diào)度是否為發(fā)送調(diào)度或者出列調(diào)度,如果是則按當(dāng)前虛通道的流量參數(shù),進(jìn)行正常的調(diào)度,否則進(jìn)入步驟E;E根據(jù)當(dāng)前虛通道的流量參數(shù)和聯(lián)合使用定時(shí)器配置參數(shù),計(jì)算正規(guī)調(diào)度和聯(lián)合使用定時(shí)器調(diào)度的具體時(shí)刻,并判斷聯(lián)合使用定時(shí)器調(diào)度時(shí)刻是否比正規(guī)調(diào)度晚,如果是則進(jìn)入步驟F,否則進(jìn)入步驟G;F先構(gòu)造出列調(diào)度,再構(gòu)造聯(lián)合使用定時(shí)器調(diào)度并發(fā)送給所述隊(duì)列管理模塊;G構(gòu)造聯(lián)合使用定時(shí)器調(diào)度并發(fā)送給所述隊(duì)列管理模塊。
15.一種發(fā)送處理模塊接收來自隊(duì)列管理模塊的調(diào)度并進(jìn)行處理的方法,其特征在于,所述發(fā)送處理模塊的處理流程包含以下步驟H判斷從所述隊(duì)列管理模塊中接收的調(diào)度是否為聯(lián)合使用定時(shí)器調(diào)度,如果是則進(jìn)入步驟I,否則進(jìn)入步驟K;I停止聯(lián)合使用定時(shí)器并判斷是否超時(shí),如果是則進(jìn)入步驟J,否則暫存新緩沖區(qū)并構(gòu)造公共部分子層協(xié)議數(shù)據(jù)單元發(fā)送后進(jìn)入步驟L;J判斷當(dāng)前虛通道是否還有數(shù)據(jù)可以發(fā)送,如果有則返回步驟H,否則停止聯(lián)合使用定時(shí)器并填充公共部分子層協(xié)議數(shù)據(jù)單元發(fā)送后返回步驟H;K若是發(fā)送調(diào)度則構(gòu)造公共部分子層協(xié)議數(shù)據(jù)單元發(fā)送后進(jìn)入步驟L,否則暫存從所述隊(duì)列管理模塊傳來的緩沖區(qū)并構(gòu)造公共部分子層協(xié)議數(shù)據(jù)單元發(fā)送后進(jìn)入步驟L;L依據(jù)構(gòu)造公共部分子層協(xié)議數(shù)據(jù)單元的結(jié)果構(gòu)造調(diào)度。
16.根據(jù)權(quán)利要求15所述的發(fā)送處理模塊接收來自隊(duì)列管理模塊的調(diào)度并進(jìn)行處理的方法,其特征在于,步驟L還包含如下子步驟L1判斷是否填滿一個(gè)公共部分子層業(yè)務(wù)數(shù)據(jù)單元,如果是則進(jìn)入步驟L2,否則進(jìn)入步驟L3;L2判斷暫存緩沖區(qū)是否小于五個(gè),如果是則構(gòu)造出列調(diào)度,否則構(gòu)造發(fā)送調(diào)度;L3判斷是否已經(jīng)啟動(dòng)聯(lián)合使用定時(shí)器,如果是則構(gòu)造出列調(diào)度,否則構(gòu)造聯(lián)合使用定時(shí)器調(diào)度;L4向所述隊(duì)列管理模塊發(fā)送調(diào)度后結(jié)束所述步驟L。
17.一種實(shí)現(xiàn)聯(lián)合使用定時(shí)器功能的系統(tǒng),在異步傳輸模式適配層類型2中使用,其特征在于,包含分組隊(duì)列,用于以隊(duì)列的形式按照不同的虛通道存放公共部分子層協(xié)議數(shù)據(jù)單元;隊(duì)列管理模塊,用于管理所述分組隊(duì)列,發(fā)送調(diào)度請求消息,并在得到調(diào)度響應(yīng)消息后發(fā)送一個(gè)公共部分子層協(xié)議數(shù)據(jù)單元;流量控制模塊,用于在收到聯(lián)合使用定時(shí)器定時(shí)請求消息后開始定時(shí),接收所述調(diào)度請求消息并響應(yīng)所述調(diào)度響應(yīng)消息,在超時(shí)時(shí)發(fā)送聯(lián)合使用定時(shí)器超時(shí)響應(yīng)消息;發(fā)送處理模塊,用于管理聯(lián)合使用定時(shí)器標(biāo)志和虛通道,構(gòu)成公共部分子層協(xié)議數(shù)據(jù)單元,發(fā)送協(xié)議數(shù)據(jù)單元消息給所述隊(duì)列管理模塊,在沒有數(shù)據(jù)時(shí)發(fā)送所述聯(lián)合使用定時(shí)器定時(shí)請求消息。
18.根據(jù)權(quán)利要求17所述的實(shí)現(xiàn)聯(lián)合使用定時(shí)器功能的系統(tǒng),其特征在于,所述協(xié)議數(shù)據(jù)單元消息、所述調(diào)度請求消息、所述調(diào)度響應(yīng)消息、所述聯(lián)合使用定時(shí)器超時(shí)響應(yīng)消息和所述聯(lián)合使用定時(shí)器定時(shí)請求消息包含區(qū)分不同的虛通道的虛通道編號(hào)。
19.根據(jù)權(quán)利要求18所述的實(shí)現(xiàn)聯(lián)合使用定時(shí)器功能的系統(tǒng),其特征在于,所述公共部分子層協(xié)議數(shù)據(jù)單元消息還包含公共部分子層協(xié)議數(shù)據(jù)單元緩沖區(qū)指針。
20.根據(jù)權(quán)利要求18所述的實(shí)現(xiàn)聯(lián)合使用定時(shí)器功能的系統(tǒng),其特征在于,所述聯(lián)合使用定時(shí)器定時(shí)請求消息還包含聯(lián)合使用定時(shí)器定時(shí)周期。
21.一種隊(duì)列管理模塊管理分組隊(duì)列并發(fā)送公共部分子層協(xié)議數(shù)據(jù)單元的方法,其特征在于,包含以下步驟M獲取所述協(xié)議數(shù)據(jù)單元消息,將公共部分子層協(xié)議數(shù)據(jù)單元入列,并發(fā)送所述調(diào)度請求消息;N獲取所述調(diào)度響應(yīng)消息,進(jìn)行出列操作并在當(dāng)前虛通道隊(duì)列為空是發(fā)送所述調(diào)度請求消息。
22.根據(jù)權(quán)利要求21所述的一種隊(duì)列管理模塊管理分組隊(duì)列并發(fā)送公共部分子層協(xié)議數(shù)據(jù)單元的方法,其特征在于,所述步驟M還包含如下子步驟M1從所述發(fā)送處理模塊獲取所述協(xié)議數(shù)據(jù)單元消息并判斷所述公共部分子層協(xié)議數(shù)據(jù)單元消息所對應(yīng)的虛通道是否已經(jīng)發(fā)送調(diào)度請求消息,如果是則進(jìn)入步驟M3,否則進(jìn)入步驟M2;M2構(gòu)造所述調(diào)度請求消息發(fā)送給所述流量控制模塊后進(jìn)入步驟M3;M3將所述公共部分子層協(xié)議數(shù)據(jù)單元消息入列到所述分組隊(duì)列的當(dāng)前虛通道隊(duì)列。
23.根據(jù)權(quán)利要求21所述的一種隊(duì)列管理模塊管理分組隊(duì)列并發(fā)送公共部分子層協(xié)議數(shù)據(jù)單元的方法,其特征在于,所述步驟N還包含如下子步驟N1從所述流量控制模塊獲取所述調(diào)度響應(yīng)消息;N2從所述分組隊(duì)列的當(dāng)前虛通道隊(duì)列出列一個(gè)公共部分子層協(xié)議數(shù)據(jù)單元并發(fā)送;N3判斷所述分組隊(duì)列的當(dāng)前虛通道隊(duì)列是否為空,如果是則構(gòu)造所述調(diào)度請求消息并發(fā)送給所述流量控制模塊后結(jié)束所述步驟N,否則直接結(jié)束所述步驟N。
24.一種流量控制模塊進(jìn)行定時(shí)管理和發(fā)送調(diào)度管理的方法,其特征在于,包含以下步驟O獲取聯(lián)合使用定時(shí)器定時(shí)請求消息并管理調(diào)度時(shí)間隊(duì)列;P獲取調(diào)度請求消息并管理所述調(diào)度時(shí)間隊(duì)列,在所述調(diào)度時(shí)間隊(duì)列中有所述聯(lián)合使用定時(shí)器調(diào)度時(shí)發(fā)送所述聯(lián)合使用定時(shí)器超時(shí)響應(yīng)消息。
25.根據(jù)權(quán)利要求24所述的一種流量控制模塊進(jìn)行定時(shí)管理和發(fā)送調(diào)度管理的方法,其特征在于,所述步驟O還包含如下子步驟O1判斷從所述發(fā)送處理模塊獲取所述聯(lián)合使用定時(shí)器定時(shí)請求消息是否成功,如果是則進(jìn)入步驟O2,否則結(jié)束步驟O;O2計(jì)算當(dāng)前虛通道的超時(shí)時(shí)間并將聯(lián)合使用定時(shí)器調(diào)度寫入所述調(diào)度時(shí)間隊(duì)列。
26.根據(jù)權(quán)利要求25所述的一種流量控制模塊進(jìn)行定時(shí)管理和發(fā)送調(diào)度管理的方法,其特征在于,所述步驟P還包含如下子步驟P1從所述隊(duì)列管理模塊獲取所述調(diào)度請求消息,計(jì)算發(fā)送時(shí)間并寫入所述調(diào)度時(shí)間隊(duì)列;P2讀取所述調(diào)度時(shí)間隊(duì)列,并判斷所述調(diào)度時(shí)間隊(duì)列中是否有所述聯(lián)合使用定時(shí)器調(diào)度,如果是則構(gòu)造并向所述發(fā)送處理模塊發(fā)送所述聯(lián)合使用定時(shí)器超時(shí)響應(yīng)消息后進(jìn)入步驟P3,否則直接進(jìn)入步驟P3;P3構(gòu)造并向所述隊(duì)列管理模塊發(fā)送所述調(diào)度響應(yīng)消息。
27.一種發(fā)送處理模塊構(gòu)成公共部分子層協(xié)議數(shù)據(jù)單元的方法,其特征在于,包含以下步驟Q判斷所述發(fā)送處理模塊獲取新的數(shù)據(jù)包是否成功,如果是進(jìn)行異步傳輸模式適配層協(xié)議處理,否則進(jìn)入步驟R;R獲取聯(lián)合使用定時(shí)器超時(shí)響應(yīng)消息并進(jìn)行聯(lián)合使用定時(shí)器超時(shí)的處理。
28.根據(jù)權(quán)利27所述的一種發(fā)送處理模塊構(gòu)成公共部分子層協(xié)議數(shù)據(jù)單元的方法,其特征在于,所述步驟Q還包含以下子步驟Q1若所述發(fā)送處理模塊獲取新的數(shù)據(jù)包成功則進(jìn)行異步傳輸模式適配層協(xié)議處理后進(jìn)入步驟Q2,否則結(jié)束所述步驟Q;Q2判斷是否能夠構(gòu)成完整的公共部分子層協(xié)議數(shù)據(jù)單元,如果是則進(jìn)入步驟Q3,否則進(jìn)入步驟Q4;Q3清除當(dāng)前虛通道的聯(lián)合使用定時(shí)器標(biāo)志,構(gòu)造并向所述隊(duì)列管理模塊發(fā)送所述協(xié)議數(shù)據(jù)單元消息后結(jié)束所述步驟Q;Q4判斷當(dāng)前虛通道是否啟動(dòng)聯(lián)合使用定時(shí)器標(biāo)志,如果是則結(jié)束所述步驟Q,否則設(shè)置當(dāng)前虛通道的聯(lián)合使用定時(shí)器標(biāo)志并向所述流量控制模塊發(fā)送所述聯(lián)合使用定時(shí)器定時(shí)請求消息后結(jié)束所述步驟Q。
29.根據(jù)權(quán)利28所述的一種發(fā)送處理模塊構(gòu)成公共部分子層協(xié)議數(shù)據(jù)單元的方法,其特征在于,所述步驟R還包含以下子步驟R1從所述流量控制模塊獲取所述聯(lián)合使用定時(shí)器超時(shí)響應(yīng)消息并判斷當(dāng)前虛通道的所述聯(lián)合使用定時(shí)器標(biāo)志是否未被清除,如果是則填充發(fā)送當(dāng)前虛通道的公共部分子層協(xié)議數(shù)據(jù)單元并清除當(dāng)前虛通道的所述聯(lián)合使用定時(shí)器標(biāo)志后進(jìn)入步驟R2,否則直接進(jìn)入步驟R2;R2判斷當(dāng)前虛通道的數(shù)據(jù)包是否處理結(jié)束,如果是則不獲取新的數(shù)據(jù)包并繼續(xù)處理直至當(dāng)前虛通道的數(shù)據(jù)包完全處理結(jié)束,否則結(jié)束所述步驟R。
全文摘要
本發(fā)明涉及通信技術(shù),公開了一種實(shí)現(xiàn)聯(lián)合使用定時(shí)器功能的系統(tǒng)及其方法,使得在AAL2中實(shí)現(xiàn)的Timer_CU既保證定時(shí)的精度和穩(wěn)定性,又能簡化代碼的編寫,減小系統(tǒng)資源的消耗,增加系統(tǒng)的穩(wěn)定性。這種實(shí)現(xiàn)聯(lián)合使用定時(shí)器功能的系統(tǒng)及其方法利用了網(wǎng)絡(luò)處理器中的多個(gè)微處理器陣列的特點(diǎn),結(jié)合ATM流量控制的調(diào)度模塊,通過預(yù)先定義了格式的消息在各個(gè)獨(dú)立的微處理器控制的模塊間進(jìn)行信息的交互,在幾乎不寫任何代碼的情況下,完全實(shí)現(xiàn)Timer_CU的功能。
文檔編號(hào)H04L12/56GK1713615SQ20041006299
公開日2005年12月28日 申請日期2004年6月27日 優(yōu)先權(quán)日2004年6月27日
發(fā)明者馬繼彬 申請人:華為技術(shù)有限公司