一种数据传输死锁的解决方法

文档序号:7553384阅读:102来源:国知局
专利名称:一种数据传输死锁的解决方法
技术领域
本发明涉及数据传输技术,特别是指一种数据传输死锁的解决方法。
背景技术
ATM通用测试和操作物理接口(UTOPIA)定义了物理层(PHY)与上层模块,包括ATM层及各种管理实体之间的接口。该UTOPIA接口使得各种类型的物理层可以支持公共的ATM层。
图1为UTOPIA接口数据发送的时序图,该时序图中,UTOPIA接口采用信元级传输控制。如图1所示,TxClk是ATM层和PHY层工作的同步时钟;TxClav是来自PHY层的信元流控制信号,用来指示PHY层缓冲区是否可以接收新信元;TxData为数据总线,用于承载ATM层与PHY层之间传送的数据;TxEnb是ATM层发出的发送使能信号,有效时,表示TxData上的数据有效;TxSOC为信元起始信号,用来指示ATM层发送的信元的第一个字节。
当ATM层要向PHY层发送一个信元时,ATM层首先检测PHY层发送过来的TxClav信号,若TxClav信号为有效电平--高电平,则ATM层向数据总线TxData上发送第一个数据H1,同时ATM层驱动TxEnb和TxSOC信号有效,如图中TxClk的第2个时钟周期所示。当PHY层检测到TxEnb信号和TxSOC信号有效时,则PHY层启动对该信元的接收过程。
一个数据总线8位宽的完整的ATM信元由53个字节组成,正常情况下,如果PHY层不支持背靠背传输,PHY层在接收到该信元的第49个字节,即图中的P44字节时,驱动TxClav信号为无效状态,如图中TxClk的第50个时钟周期所示。ATM层在检测到TxClav信号无效后,ATM层会继续发送剩下的P44到P48这4个字节,之后驱动TxEnb信号无效,完成一个信元的发送,如图中TxClk的第51到第54个时钟周期所示。对于PHY层,在驱动TxClav信号为无效状态后,需要继续检测到TxEnb信号的4个有效时钟周期,以接收ATM发送过来的与有效TxEnb信号对应的4个有效字节,才能完成一个信元的接收过程。
但是,若在ATM层发送第P44到P48字节的过程中,ATM层发出的TxEnb信号受到干扰而出现无效状态的跳变时,会导致PHY层无法检测到TxEnb信号的4个有效时钟周期,PHY层会认为ATM层尚未完成本次的信元发送,而继续等待接收剩余字节,因此TxClav信号始终为无效电平;对于ATM层来说,TxEnb是输出信号,无法得知TxEnb信号受到干扰,因此ATM层发出最后4个字节后就结束本次信元发送,ATM层等待PHY层的TxClav信号再次变为有效后再启动下一个信元的发送。因此,这种情况下,使得ATM层、PHY层双方都在等待对方的信号,该UTOPIA接口便处于吊死的状态,形成死锁,甚至引起通信业务中断,信息丢失,严重影响了系统的可靠性。

发明内容
有鉴于此,本发明的发明目的在于提供一种数据传输死锁的解决方法,以解决数据传输接口在传输数据中出现的死锁。
实现本发明,在数据传输接口设置一个定时器,需要以下步骤a、数据传输接口产生定时器启动信号启动定时器计时;b、判断定时器是否计时到设定的时长,若是,则定时器复位,并向数据传输接口发送接口复位信号对数据传输接口进行复位,结束本流程;否则,执行步骤c;c、数据传输接口判断当前数据传输是否结束,若是,则产生定时器复位信号对定时器复位,结束本流程;否则,返回步骤b。
其中,定时器与数据传输接口的时钟同步。
其中,步骤a所述的数据传输接口产生定时器启动信号为数据传输接口在启动数据传输时产生的控制信号。
其中,步骤b所述定时器向数据传输接口发送控制信号对数据传输接口进行复位的方法包括定时器通过逻辑电路对定时器信号进行调整和放大,转换成数据传输接口所需的控制信号控制数据传输接口进行复位。
其中,该方法所述的数据传输接口为ATM通用测试和操作物理接口UTOPIA。则,步骤a所述的数据传输接口产生定时器启动控制信号启动定时器计时的方法包括UTOPIA接口在启动数据传输时产生UTOPIA接口的信元起始信号TxSOC启动定时器计时。或者,UTOPIA接口在启动数据传输前接收到UTOPIA的物理层FIFO存储器发送的表示存储器为空可接收数据的信号,通过该信号启动定时器计时。
其中,步骤c所述的数据传输接口发送的定时器复位信号为检测到UTOPIA接口为空闲状态时输出的定时器复位信号。或者为UTOPIA接口接收的物理层FIFO存储器发送接收数据已满的信号。
由上述方法可以看出,本发明对数据传输接口的数据传输过程进行控制,在数据传输接口出现死锁的情况下,能够自动解除该接口的死锁,恢复该接口的正常状态,有效的提高了数据传输接口的工作可靠性和容错能力,使数据的传输过程更为可靠。本发明不但可以用于UTOPIA接口,也可以用于其他类似的数据传输接口。


图1为UTOPIA接口数据发送的时序图。
图2为本发明解决数据传输死锁的流程图。
具体实施例方式
本发明在UTOPIA接口传送数据的过程中,设置一个定时器,预先设置该定时器的定时时长大于正常情况下完成一个信元传送所需要的时长。当UTOPIA接口启动信元传送时,同时启动定时器,若在定时器的定时时长内,UTOPIA完成信元的传送,则对定时器清零;若UTOPAI接口在异常情况下吊死,而导致在定时时长内没有完成信元的传送,则定时器到达预定的时长时,将直接或间接控制UTOPIA接口,对该接口进行强制性的复位,使接口恢复为初始状态,从而解除死锁。
图2为本发明解决数据传输死锁的流程图。为使本发明的目的、技术方案及优点更加清楚明白,以下以UTOPIA接口的数据发送为例,参照附图2,对本发明进一步详细说明。
步骤201预先设定定时器的定时时长。其中定时器的时钟频率采用TxClk时钟频率。在本例中,UTOPIA接口采用信元级传输控制,由于一个信元包括53个字节,至少需要53个TxClk时钟周期才能将一个信元从ATM层发送到PHY层,因此设定该定时器定时时长至少大于正常情况下传送一个完整的信元所需要的时钟周期,考虑到有可能出现的传输暂停等情况,设定定时器为大于53个TxClk时钟周期的一个时长,例如,可以设置定时器的定时时长为100个TxClk时钟周期。
步骤202UTOPIA接口启动信元传输时,同时产生定时器启动信号启动定时器计时。由于ATM层向数据总线TxData上发送信元的第一个数据H1时,会驱动TxSOC产生一个正脉冲信号,所以,可以通过该信号去启动定时器计时。或者将TxEnb、TxClav和TxSOC信号进行组合,并通过逻辑电路生成定时器启动信号去启动定时器计时,例如,将TxEnb和TxSOC信号进行组合,当判断到TxEnb为低电平、TxSOC为高电平时,通过逻辑电路生成定时器启动信号去启动定时器计时。另外,UTOPIA接口在启动信元传输前,会接收到PHY层的FIFO存储器发送的表示存储器为空可以接收数据的信号,也可以通过该信号去控制定时器的启动。其中以上所述的逻辑电路可以由PLC实现。
步骤203在每个TxClk时钟周期,定时器累加1,并判断是否累加到预先设定的时长,若是,则执行步骤205,否则,执行步骤204。
步骤204根据现有技术,UTOPIA接口判断当前所传送的信元是否传送结束,若是,则产生一个定时器复位信号对定时器复位清零,结束本流程;否则,继续该信元的数据传输,返回步骤203。例如,在图1所示的第55个TxClk时钟周期处,ATM层已将该信元正常的传送到PHY层,会检测到UTOPIA接口转为空闲状态,则UTOPIA接口输出一个定时器复位信号,控制定时器复位清零。例如,当数据正常传送完毕,PHY层的FIFO存储器会发送一个接收数据已满的信号,可以通过该信号去逻辑控制定时器的复位。
步骤205定时器复位清零,同时控制UTOPIA接口复位。其中,定时器对UTOPIA的控制,可以由定时器直接控制UTOPIA接口,也可以通过逻辑电路对定时器信号进行调整和放大,转换成UTOPIA所需的信号去控制UTOPIA接口。在定时器累加到预先设定的阀值时,定时器尚未收到UTOPIA接口发送过来的清零复位信号,则表示ATM层向PHY层发送信元的过程中出现死锁,此时,定时器通过逻辑电路控制UTOPIA接口进行复位,使UTOPIA接口状态转为初始状态,解除了数据传输过程中出现的死锁,以进行下一个信元的传送。其中的逻辑电路可以通过PLC实现。
如上所述,UTOPIA接口控制定时器的启动和清零,或是定时器控制UTOPIA接口的复位,均可以通过逻辑电路实现。并且,定时器对UTOPIA接口的控制可以根据实际情况灵活设置。定时器可以对整个UTOPIA接口进行复位控制;也可以仅对该接口的某个信号进行控制,例如,通过控制PHY层发出的TxClav信号复位到无效状态也可以解除背景技术中所提到的UTOPIA接口的死锁。
定时器可以对传送一个或多个信元的时长进行定时控制,也可以对一个信元传送过程中的某个阶段进行定时控制,如在TxClav信号跳变为无效状态时,才启动定时器进行定时控制。
在控制UTOPIA接口复位的过程中,PHY层缓冲区内的数据会被清除,但可以通过上层协议对数据传输的正确性进行控制,如要求数据重发等等,这部分并不是本发明的重点,此处不再进行叙述。
以上以UTOPIA接口的数据发送过程为例进行说明,对于UTOPIA接口的数据接收过程,使用本发明解决数据传输死锁的原理相同,其区别仅在于定时器的起始和结束的时刻与数据接收过程的起始和结束的时刻有关。并且该方法不仅仅用于UTOPIA接口的数据传输,也可用于其他类似的接口的数据传输,如POS-PHY(Packet Over SONET Physical)、Any-PHY、CellBus等接口。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种数据传输死锁的解决方法,其特征在于,在数据传输接口设置一个定时器,该方法包括以下步骤a、数据传输接口产生定时器启动信号启动定时器计时;b、判断定时器是否计时到设定的时长,若是,则定时器复位,并向数据传输接口发送接口复位信号对数据传输接口进行复位,结束本流程;否则,执行步骤c;c、数据传输接口判断当前数据传输是否结束,若是,则产生定时器复位信号对定时器复位,结束本流程;否则,返回步骤b。
2.根据权利要求1所述的方法,其特征在于,定时器与数据传输接口的时钟同步。
3.根据权利要求1所述的方法,其特征在于,步骤a所述的数据传输接口产生定时器启动信号为数据传输接口在启动数据传输时产生的控制信号。
4.根据权利要求1所述的方法,其特征在于,步骤b所述定时器向数据传输接口发送控制信号对数据传输接口进行复位的方法包括定时器通过逻辑电路对定时器信号进行调整和放大,转换成数据传输接口所需的控制信号控制数据传输接口进行复位。
5.根据权利要求1所述的方法,其特征在于,该方法所述的数据传输接口为ATM通用测试和操作物理接口UTOPIA。
6.根据权利要求5所述的方法,其特征在于,步骤a所述的数据传输接口产生定时器启动控制信号启动定时器计时的方法包括UTOPIA接口在启动数据传输时产生UTOPIA接口的信元起始信号TxSOC启动定时器计时。
7.根据权利要求5所述的方法,其特征在于,步骤a所述的数据传输接口产生定时器启动控制信号启动定时器计时的方法进一步包括UTOPIA接口在启动数据传输前接收到UTOPIA的物理层FIFO存储器发送的表示存储器为空可接收数据的信号,通过该信号启动定时器计时。
8.根据权利要求5所述的方法,其特征在于,步骤c所述的数据传输接口发送的定时器复位信号为检测到UTOPIA接口为空闲状态时输出的定时器复位信号。
9.根据权利要求5所述的方法,其特征在于,步骤c所述的数据传输接口发送的定时器复位信号为UTOPIA接口接收的物理层FIFO存储器发送接收数据已满的信号。
全文摘要
本发明提供了一种数据传输死锁的解决方法,其特征在于,在数据传输接口设置一个定时器,该方法包括以下步骤a.数据传输接口产生定时器启动信号启动定时器计时;b.判断定时器是否计时到设定的时长,若是,则定时器复位,并向数据传输接口发送接口复位信号对数据传输接口进行复位,结束本流程;否则,执行步骤c;c.数据传输接口判断当前数据传输是否结束,若是,则产生定时器复位信号对定时器复位,结束本流程;否则,返回步骤b。应用本发明,可以解决数据传输接口在传输数据中出现的死锁问题。
文档编号H04L29/02GK1622526SQ20031011547
公开日2005年6月1日 申请日期2003年11月26日 优先权日2003年11月26日
发明者涂君, 柳精伟, 潘剑锋, 雷春 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1