專(zhuān)利名稱(chēng):一種數(shù)據(jù)傳輸死鎖的解決方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)傳輸技術(shù),特別是指一種數(shù)據(jù)傳輸死鎖的解決方法。
背景技術(shù):
ATM通用測(cè)試和操作物理接口(UTOPIA)定義了物理層(PHY)與上層模塊,包括ATM層及各種管理實(shí)體之間的接口。該UTOPIA接口使得各種類(lèi)型的物理層可以支持公共的ATM層。
圖1為UTOPIA接口數(shù)據(jù)發(fā)送的時(shí)序圖,該時(shí)序圖中,UTOPIA接口采用信元級(jí)傳輸控制。如圖1所示,TxClk是ATM層和PHY層工作的同步時(shí)鐘;TxClav是來(lái)自PHY層的信元流控制信號(hào),用來(lái)指示PHY層緩沖區(qū)是否可以接收新信元;TxData為數(shù)據(jù)總線,用于承載ATM層與PHY層之間傳送的數(shù)據(jù);TxEnb是ATM層發(fā)出的發(fā)送使能信號(hào),有效時(shí),表示TxData上的數(shù)據(jù)有效;TxSOC為信元起始信號(hào),用來(lái)指示ATM層發(fā)送的信元的第一個(gè)字節(jié)。
當(dāng)ATM層要向PHY層發(fā)送一個(gè)信元時(shí),ATM層首先檢測(cè)PHY層發(fā)送過(guò)來(lái)的TxClav信號(hào),若TxClav信號(hào)為有效電平--高電平,則ATM層向數(shù)據(jù)總線TxData上發(fā)送第一個(gè)數(shù)據(jù)H1,同時(shí)ATM層驅(qū)動(dòng)TxEnb和TxSOC信號(hào)有效,如圖中TxClk的第2個(gè)時(shí)鐘周期所示。當(dāng)PHY層檢測(cè)到TxEnb信號(hào)和TxSOC信號(hào)有效時(shí),則PHY層啟動(dòng)對(duì)該信元的接收過(guò)程。
一個(gè)數(shù)據(jù)總線8位寬的完整的ATM信元由53個(gè)字節(jié)組成,正常情況下,如果PHY層不支持背靠背傳輸,PHY層在接收到該信元的第49個(gè)字節(jié),即圖中的P44字節(jié)時(shí),驅(qū)動(dòng)TxClav信號(hào)為無(wú)效狀態(tài),如圖中TxClk的第50個(gè)時(shí)鐘周期所示。ATM層在檢測(cè)到TxClav信號(hào)無(wú)效后,ATM層會(huì)繼續(xù)發(fā)送剩下的P44到P48這4個(gè)字節(jié),之后驅(qū)動(dòng)TxEnb信號(hào)無(wú)效,完成一個(gè)信元的發(fā)送,如圖中TxClk的第51到第54個(gè)時(shí)鐘周期所示。對(duì)于PHY層,在驅(qū)動(dòng)TxClav信號(hào)為無(wú)效狀態(tài)后,需要繼續(xù)檢測(cè)到TxEnb信號(hào)的4個(gè)有效時(shí)鐘周期,以接收ATM發(fā)送過(guò)來(lái)的與有效TxEnb信號(hào)對(duì)應(yīng)的4個(gè)有效字節(jié),才能完成一個(gè)信元的接收過(guò)程。
但是,若在ATM層發(fā)送第P44到P48字節(jié)的過(guò)程中,ATM層發(fā)出的TxEnb信號(hào)受到干擾而出現(xiàn)無(wú)效狀態(tài)的跳變時(shí),會(huì)導(dǎo)致PHY層無(wú)法檢測(cè)到TxEnb信號(hào)的4個(gè)有效時(shí)鐘周期,PHY層會(huì)認(rèn)為ATM層尚未完成本次的信元發(fā)送,而繼續(xù)等待接收剩余字節(jié),因此TxClav信號(hào)始終為無(wú)效電平;對(duì)于ATM層來(lái)說(shuō),TxEnb是輸出信號(hào),無(wú)法得知TxEnb信號(hào)受到干擾,因此ATM層發(fā)出最后4個(gè)字節(jié)后就結(jié)束本次信元發(fā)送,ATM層等待PHY層的TxClav信號(hào)再次變?yōu)橛行Ш笤賳?dòng)下一個(gè)信元的發(fā)送。因此,這種情況下,使得ATM層、PHY層雙方都在等待對(duì)方的信號(hào),該UTOPIA接口便處于吊死的狀態(tài),形成死鎖,甚至引起通信業(yè)務(wù)中斷,信息丟失,嚴(yán)重影響了系統(tǒng)的可靠性。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的發(fā)明目的在于提供一種數(shù)據(jù)傳輸死鎖的解決方法,以解決數(shù)據(jù)傳輸接口在傳輸數(shù)據(jù)中出現(xiàn)的死鎖。
實(shí)現(xiàn)本發(fā)明,在數(shù)據(jù)傳輸接口設(shè)置一個(gè)定時(shí)器,需要以下步驟a、數(shù)據(jù)傳輸接口產(chǎn)生定時(shí)器啟動(dòng)信號(hào)啟動(dòng)定時(shí)器計(jì)時(shí);b、判斷定時(shí)器是否計(jì)時(shí)到設(shè)定的時(shí)長(zhǎng),若是,則定時(shí)器復(fù)位,并向數(shù)據(jù)傳輸接口發(fā)送接口復(fù)位信號(hào)對(duì)數(shù)據(jù)傳輸接口進(jìn)行復(fù)位,結(jié)束本流程;否則,執(zhí)行步驟c;c、數(shù)據(jù)傳輸接口判斷當(dāng)前數(shù)據(jù)傳輸是否結(jié)束,若是,則產(chǎn)生定時(shí)器復(fù)位信號(hào)對(duì)定時(shí)器復(fù)位,結(jié)束本流程;否則,返回步驟b。
其中,定時(shí)器與數(shù)據(jù)傳輸接口的時(shí)鐘同步。
其中,步驟a所述的數(shù)據(jù)傳輸接口產(chǎn)生定時(shí)器啟動(dòng)信號(hào)為數(shù)據(jù)傳輸接口在啟動(dòng)數(shù)據(jù)傳輸時(shí)產(chǎn)生的控制信號(hào)。
其中,步驟b所述定時(shí)器向數(shù)據(jù)傳輸接口發(fā)送控制信號(hào)對(duì)數(shù)據(jù)傳輸接口進(jìn)行復(fù)位的方法包括定時(shí)器通過(guò)邏輯電路對(duì)定時(shí)器信號(hào)進(jìn)行調(diào)整和放大,轉(zhuǎn)換成數(shù)據(jù)傳輸接口所需的控制信號(hào)控制數(shù)據(jù)傳輸接口進(jìn)行復(fù)位。
其中,該方法所述的數(shù)據(jù)傳輸接口為ATM通用測(cè)試和操作物理接口UTOPIA。則,步驟a所述的數(shù)據(jù)傳輸接口產(chǎn)生定時(shí)器啟動(dòng)控制信號(hào)啟動(dòng)定時(shí)器計(jì)時(shí)的方法包括UTOPIA接口在啟動(dòng)數(shù)據(jù)傳輸時(shí)產(chǎn)生UTOPIA接口的信元起始信號(hào)TxSOC啟動(dòng)定時(shí)器計(jì)時(shí)?;蛘?,UTOPIA接口在啟動(dòng)數(shù)據(jù)傳輸前接收到UTOPIA的物理層FIFO存儲(chǔ)器發(fā)送的表示存儲(chǔ)器為空可接收數(shù)據(jù)的信號(hào),通過(guò)該信號(hào)啟動(dòng)定時(shí)器計(jì)時(shí)。
其中,步驟c所述的數(shù)據(jù)傳輸接口發(fā)送的定時(shí)器復(fù)位信號(hào)為檢測(cè)到UTOPIA接口為空閑狀態(tài)時(shí)輸出的定時(shí)器復(fù)位信號(hào)?;蛘邽閁TOPIA接口接收的物理層FIFO存儲(chǔ)器發(fā)送接收數(shù)據(jù)已滿的信號(hào)。
由上述方法可以看出,本發(fā)明對(duì)數(shù)據(jù)傳輸接口的數(shù)據(jù)傳輸過(guò)程進(jìn)行控制,在數(shù)據(jù)傳輸接口出現(xiàn)死鎖的情況下,能夠自動(dòng)解除該接口的死鎖,恢復(fù)該接口的正常狀態(tài),有效的提高了數(shù)據(jù)傳輸接口的工作可靠性和容錯(cuò)能力,使數(shù)據(jù)的傳輸過(guò)程更為可靠。本發(fā)明不但可以用于UTOPIA接口,也可以用于其他類(lèi)似的數(shù)據(jù)傳輸接口。
圖1為UTOPIA接口數(shù)據(jù)發(fā)送的時(shí)序圖。
圖2為本發(fā)明解決數(shù)據(jù)傳輸死鎖的流程圖。
具體實(shí)施例方式
本發(fā)明在UTOPIA接口傳送數(shù)據(jù)的過(guò)程中,設(shè)置一個(gè)定時(shí)器,預(yù)先設(shè)置該定時(shí)器的定時(shí)時(shí)長(zhǎng)大于正常情況下完成一個(gè)信元傳送所需要的時(shí)長(zhǎng)。當(dāng)UTOPIA接口啟動(dòng)信元傳送時(shí),同時(shí)啟動(dòng)定時(shí)器,若在定時(shí)器的定時(shí)時(shí)長(zhǎng)內(nèi),UTOPIA完成信元的傳送,則對(duì)定時(shí)器清零;若UTOPAI接口在異常情況下吊死,而導(dǎo)致在定時(shí)時(shí)長(zhǎng)內(nèi)沒(méi)有完成信元的傳送,則定時(shí)器到達(dá)預(yù)定的時(shí)長(zhǎng)時(shí),將直接或間接控制UTOPIA接口,對(duì)該接口進(jìn)行強(qiáng)制性的復(fù)位,使接口恢復(fù)為初始狀態(tài),從而解除死鎖。
圖2為本發(fā)明解決數(shù)據(jù)傳輸死鎖的流程圖。為使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下以UTOPIA接口的數(shù)據(jù)發(fā)送為例,參照附圖2,對(duì)本發(fā)明進(jìn)一步詳細(xì)說(shuō)明。
步驟201預(yù)先設(shè)定定時(shí)器的定時(shí)時(shí)長(zhǎng)。其中定時(shí)器的時(shí)鐘頻率采用TxClk時(shí)鐘頻率。在本例中,UTOPIA接口采用信元級(jí)傳輸控制,由于一個(gè)信元包括53個(gè)字節(jié),至少需要53個(gè)TxClk時(shí)鐘周期才能將一個(gè)信元從ATM層發(fā)送到PHY層,因此設(shè)定該定時(shí)器定時(shí)時(shí)長(zhǎng)至少大于正常情況下傳送一個(gè)完整的信元所需要的時(shí)鐘周期,考慮到有可能出現(xiàn)的傳輸暫停等情況,設(shè)定定時(shí)器為大于53個(gè)TxClk時(shí)鐘周期的一個(gè)時(shí)長(zhǎng),例如,可以設(shè)置定時(shí)器的定時(shí)時(shí)長(zhǎng)為100個(gè)TxClk時(shí)鐘周期。
步驟202UTOPIA接口啟動(dòng)信元傳輸時(shí),同時(shí)產(chǎn)生定時(shí)器啟動(dòng)信號(hào)啟動(dòng)定時(shí)器計(jì)時(shí)。由于ATM層向數(shù)據(jù)總線TxData上發(fā)送信元的第一個(gè)數(shù)據(jù)H1時(shí),會(huì)驅(qū)動(dòng)TxSOC產(chǎn)生一個(gè)正脈沖信號(hào),所以,可以通過(guò)該信號(hào)去啟動(dòng)定時(shí)器計(jì)時(shí)?;蛘邔xEnb、TxClav和TxSOC信號(hào)進(jìn)行組合,并通過(guò)邏輯電路生成定時(shí)器啟動(dòng)信號(hào)去啟動(dòng)定時(shí)器計(jì)時(shí),例如,將TxEnb和TxSOC信號(hào)進(jìn)行組合,當(dāng)判斷到TxEnb為低電平、TxSOC為高電平時(shí),通過(guò)邏輯電路生成定時(shí)器啟動(dòng)信號(hào)去啟動(dòng)定時(shí)器計(jì)時(shí)。另外,UTOPIA接口在啟動(dòng)信元傳輸前,會(huì)接收到PHY層的FIFO存儲(chǔ)器發(fā)送的表示存儲(chǔ)器為空可以接收數(shù)據(jù)的信號(hào),也可以通過(guò)該信號(hào)去控制定時(shí)器的啟動(dòng)。其中以上所述的邏輯電路可以由PLC實(shí)現(xiàn)。
步驟203在每個(gè)TxClk時(shí)鐘周期,定時(shí)器累加1,并判斷是否累加到預(yù)先設(shè)定的時(shí)長(zhǎng),若是,則執(zhí)行步驟205,否則,執(zhí)行步驟204。
步驟204根據(jù)現(xiàn)有技術(shù),UTOPIA接口判斷當(dāng)前所傳送的信元是否傳送結(jié)束,若是,則產(chǎn)生一個(gè)定時(shí)器復(fù)位信號(hào)對(duì)定時(shí)器復(fù)位清零,結(jié)束本流程;否則,繼續(xù)該信元的數(shù)據(jù)傳輸,返回步驟203。例如,在圖1所示的第55個(gè)TxClk時(shí)鐘周期處,ATM層已將該信元正常的傳送到PHY層,會(huì)檢測(cè)到UTOPIA接口轉(zhuǎn)為空閑狀態(tài),則UTOPIA接口輸出一個(gè)定時(shí)器復(fù)位信號(hào),控制定時(shí)器復(fù)位清零。例如,當(dāng)數(shù)據(jù)正常傳送完畢,PHY層的FIFO存儲(chǔ)器會(huì)發(fā)送一個(gè)接收數(shù)據(jù)已滿的信號(hào),可以通過(guò)該信號(hào)去邏輯控制定時(shí)器的復(fù)位。
步驟205定時(shí)器復(fù)位清零,同時(shí)控制UTOPIA接口復(fù)位。其中,定時(shí)器對(duì)UTOPIA的控制,可以由定時(shí)器直接控制UTOPIA接口,也可以通過(guò)邏輯電路對(duì)定時(shí)器信號(hào)進(jìn)行調(diào)整和放大,轉(zhuǎn)換成UTOPIA所需的信號(hào)去控制UTOPIA接口。在定時(shí)器累加到預(yù)先設(shè)定的閥值時(shí),定時(shí)器尚未收到UTOPIA接口發(fā)送過(guò)來(lái)的清零復(fù)位信號(hào),則表示ATM層向PHY層發(fā)送信元的過(guò)程中出現(xiàn)死鎖,此時(shí),定時(shí)器通過(guò)邏輯電路控制UTOPIA接口進(jìn)行復(fù)位,使UTOPIA接口狀態(tài)轉(zhuǎn)為初始狀態(tài),解除了數(shù)據(jù)傳輸過(guò)程中出現(xiàn)的死鎖,以進(jìn)行下一個(gè)信元的傳送。其中的邏輯電路可以通過(guò)PLC實(shí)現(xiàn)。
如上所述,UTOPIA接口控制定時(shí)器的啟動(dòng)和清零,或是定時(shí)器控制UTOPIA接口的復(fù)位,均可以通過(guò)邏輯電路實(shí)現(xiàn)。并且,定時(shí)器對(duì)UTOPIA接口的控制可以根據(jù)實(shí)際情況靈活設(shè)置。定時(shí)器可以對(duì)整個(gè)UTOPIA接口進(jìn)行復(fù)位控制;也可以僅對(duì)該接口的某個(gè)信號(hào)進(jìn)行控制,例如,通過(guò)控制PHY層發(fā)出的TxClav信號(hào)復(fù)位到無(wú)效狀態(tài)也可以解除背景技術(shù)中所提到的UTOPIA接口的死鎖。
定時(shí)器可以對(duì)傳送一個(gè)或多個(gè)信元的時(shí)長(zhǎng)進(jìn)行定時(shí)控制,也可以對(duì)一個(gè)信元傳送過(guò)程中的某個(gè)階段進(jìn)行定時(shí)控制,如在TxClav信號(hào)跳變?yōu)闊o(wú)效狀態(tài)時(shí),才啟動(dòng)定時(shí)器進(jìn)行定時(shí)控制。
在控制UTOPIA接口復(fù)位的過(guò)程中,PHY層緩沖區(qū)內(nèi)的數(shù)據(jù)會(huì)被清除,但可以通過(guò)上層協(xié)議對(duì)數(shù)據(jù)傳輸?shù)恼_性進(jìn)行控制,如要求數(shù)據(jù)重發(fā)等等,這部分并不是本發(fā)明的重點(diǎn),此處不再進(jìn)行敘述。
以上以UTOPIA接口的數(shù)據(jù)發(fā)送過(guò)程為例進(jìn)行說(shuō)明,對(duì)于UTOPIA接口的數(shù)據(jù)接收過(guò)程,使用本發(fā)明解決數(shù)據(jù)傳輸死鎖的原理相同,其區(qū)別僅在于定時(shí)器的起始和結(jié)束的時(shí)刻與數(shù)據(jù)接收過(guò)程的起始和結(jié)束的時(shí)刻有關(guān)。并且該方法不僅僅用于UTOPIA接口的數(shù)據(jù)傳輸,也可用于其他類(lèi)似的接口的數(shù)據(jù)傳輸,如POS-PHY(Packet Over SONET Physical)、Any-PHY、CellBus等接口。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種數(shù)據(jù)傳輸死鎖的解決方法,其特征在于,在數(shù)據(jù)傳輸接口設(shè)置一個(gè)定時(shí)器,該方法包括以下步驟a、數(shù)據(jù)傳輸接口產(chǎn)生定時(shí)器啟動(dòng)信號(hào)啟動(dòng)定時(shí)器計(jì)時(shí);b、判斷定時(shí)器是否計(jì)時(shí)到設(shè)定的時(shí)長(zhǎng),若是,則定時(shí)器復(fù)位,并向數(shù)據(jù)傳輸接口發(fā)送接口復(fù)位信號(hào)對(duì)數(shù)據(jù)傳輸接口進(jìn)行復(fù)位,結(jié)束本流程;否則,執(zhí)行步驟c;c、數(shù)據(jù)傳輸接口判斷當(dāng)前數(shù)據(jù)傳輸是否結(jié)束,若是,則產(chǎn)生定時(shí)器復(fù)位信號(hào)對(duì)定時(shí)器復(fù)位,結(jié)束本流程;否則,返回步驟b。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,定時(shí)器與數(shù)據(jù)傳輸接口的時(shí)鐘同步。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟a所述的數(shù)據(jù)傳輸接口產(chǎn)生定時(shí)器啟動(dòng)信號(hào)為數(shù)據(jù)傳輸接口在啟動(dòng)數(shù)據(jù)傳輸時(shí)產(chǎn)生的控制信號(hào)。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟b所述定時(shí)器向數(shù)據(jù)傳輸接口發(fā)送控制信號(hào)對(duì)數(shù)據(jù)傳輸接口進(jìn)行復(fù)位的方法包括定時(shí)器通過(guò)邏輯電路對(duì)定時(shí)器信號(hào)進(jìn)行調(diào)整和放大,轉(zhuǎn)換成數(shù)據(jù)傳輸接口所需的控制信號(hào)控制數(shù)據(jù)傳輸接口進(jìn)行復(fù)位。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,該方法所述的數(shù)據(jù)傳輸接口為ATM通用測(cè)試和操作物理接口UTOPIA。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,步驟a所述的數(shù)據(jù)傳輸接口產(chǎn)生定時(shí)器啟動(dòng)控制信號(hào)啟動(dòng)定時(shí)器計(jì)時(shí)的方法包括UTOPIA接口在啟動(dòng)數(shù)據(jù)傳輸時(shí)產(chǎn)生UTOPIA接口的信元起始信號(hào)TxSOC啟動(dòng)定時(shí)器計(jì)時(shí)。
7.根據(jù)權(quán)利要求5所述的方法,其特征在于,步驟a所述的數(shù)據(jù)傳輸接口產(chǎn)生定時(shí)器啟動(dòng)控制信號(hào)啟動(dòng)定時(shí)器計(jì)時(shí)的方法進(jìn)一步包括UTOPIA接口在啟動(dòng)數(shù)據(jù)傳輸前接收到UTOPIA的物理層FIFO存儲(chǔ)器發(fā)送的表示存儲(chǔ)器為空可接收數(shù)據(jù)的信號(hào),通過(guò)該信號(hào)啟動(dòng)定時(shí)器計(jì)時(shí)。
8.根據(jù)權(quán)利要求5所述的方法,其特征在于,步驟c所述的數(shù)據(jù)傳輸接口發(fā)送的定時(shí)器復(fù)位信號(hào)為檢測(cè)到UTOPIA接口為空閑狀態(tài)時(shí)輸出的定時(shí)器復(fù)位信號(hào)。
9.根據(jù)權(quán)利要求5所述的方法,其特征在于,步驟c所述的數(shù)據(jù)傳輸接口發(fā)送的定時(shí)器復(fù)位信號(hào)為UTOPIA接口接收的物理層FIFO存儲(chǔ)器發(fā)送接收數(shù)據(jù)已滿的信號(hào)。
全文摘要
本發(fā)明提供了一種數(shù)據(jù)傳輸死鎖的解決方法,其特征在于,在數(shù)據(jù)傳輸接口設(shè)置一個(gè)定時(shí)器,該方法包括以下步驟a.數(shù)據(jù)傳輸接口產(chǎn)生定時(shí)器啟動(dòng)信號(hào)啟動(dòng)定時(shí)器計(jì)時(shí);b.判斷定時(shí)器是否計(jì)時(shí)到設(shè)定的時(shí)長(zhǎng),若是,則定時(shí)器復(fù)位,并向數(shù)據(jù)傳輸接口發(fā)送接口復(fù)位信號(hào)對(duì)數(shù)據(jù)傳輸接口進(jìn)行復(fù)位,結(jié)束本流程;否則,執(zhí)行步驟c;c.數(shù)據(jù)傳輸接口判斷當(dāng)前數(shù)據(jù)傳輸是否結(jié)束,若是,則產(chǎn)生定時(shí)器復(fù)位信號(hào)對(duì)定時(shí)器復(fù)位,結(jié)束本流程;否則,返回步驟b。應(yīng)用本發(fā)明,可以解決數(shù)據(jù)傳輸接口在傳輸數(shù)據(jù)中出現(xiàn)的死鎖問(wèn)題。
文檔編號(hào)H04L29/02GK1622526SQ20031011547
公開(kāi)日2005年6月1日 申請(qǐng)日期2003年11月26日 優(yōu)先權(quán)日2003年11月26日
發(fā)明者涂君, 柳精偉, 潘劍鋒, 雷春 申請(qǐng)人:華為技術(shù)有限公司