首页> 中国专利> 消除多路同步数据传输中的传输延时差异的方法和装置

消除多路同步数据传输中的传输延时差异的方法和装置

摘要

本发明提供了一种用于消除N路同步数据传输中的传输延时差异的方法和装置,包括:为N路同步数据的输入提供N路FIFO装置,将N路数据的帧头转换到系统时钟域;根据N路数据的每一路数据的帧头分别产生一个窗口,并记录所生成的N个窗口中的每个窗口所包含的帧头的数量;比较所述N个窗口中帧头的数量,选出包含帧头数最多的那一路的窗口;重复所述选出的包含帧头数最多的那一路的窗口,并记录其它帧头在该窗口中的相对位置,根据N路帧头在该窗口中的相对位置计算调整时隙;根据得到的调整时隙调节N路FIFO装置以便使N路FIFO装置都从某一确定的地址读出帧头/数据。

著录项

  • 公开/公告号CN1829129A

    专利类型发明专利

  • 公开/公告日2006-09-06

    原文格式PDF

  • 申请/专利权人 UT斯达康通讯有限公司;

    申请/专利号CN200510053162.2

  • 发明设计人 伍斌;陈晓钢;

    申请日2005-03-04

  • 分类号H04J3/06(20060101);

  • 代理机构72001 中国专利代理(香港)有限公司;

  • 代理人杨生平;王勇

  • 地址 310053 中国浙江省杭州市滨江区六和路368号

  • 入库时间 2023-12-17 17:33:59

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-04-19

    未缴年费专利权终止 IPC(主分类):H04J3/06 授权公告日:20101222 终止日期:20160304 申请日:20050304

    专利权的终止

  • 2010-12-22

    授权

    授权

  • 2006-10-25

    实质审查的生效

    实质审查的生效

  • 2006-09-06

    公开

    公开

说明书

技术领域

本发明一般涉及数据传输领域,更具体地涉及一种消除多路同步数据传输中的传输延时差异的方法以及实现该方法的装置。

背景技术

在SDH(Synchronous Digital Hierarchy)/SONET(SynchronousOptical Networking)等同步数字传输系统中,尤其在传输级联业务时,要求多路数据完全同步。然而,因为各种原因(如各路数据经过的路径长度不同;各路数据所处的时钟域不同,之间有相位差;时钟漂移等),各路数据在到达芯片时往往已不同步(图1),因此需要进行再同步,使得各路数据完全对齐(图2)(图1和图2只画出了各路的帧头来表示各路数据的起始位置)。

在传统的产品中由于缺乏此类功能,为了达到数据完全同步,对总线(如背板总线)的走线要求非常高,导致系统的整体成本偏高而灵活性和长期稳定性较低。其他公司也提出了一些新的方法解决这一问题,如Agere公司在其SDH/SONET芯片中采用在数据通路中增加缓冲的方法来消除延时差异。但是这些方法仍然存在吸收延时短、支持的数据通路少、数据吞吐量低、时钟频率低等缺点,因而不适合10G等高速产品。本发明针对这些问题设计了全新的方算法,能够在相当程度上提高系统的灵活性和长期稳定性并降低系统的整体成本;而且该算法专门针对高速电路进行优化,能够支持10G、40G乃至更高速度的产品。

在SDH/SONET等数字传输系统中,每帧数据的起始位置都扣着一个帧头,即每帧的帧头表示一帧数据的开始。因此,只要在模块输入端为各路输入分别增加FIFO(First-In-First-Out)缓冲,将数据和帧头一起保存,并增加调整机制控制各路FIFO在同一时刻读出帧头/数据,就可以实现时钟域转换和帧头/数据同步。

当FIFO接近满或空时等边界条件时,出错的可能性会增加,因此应使数据尽量处在FIFO中间。其数学描述就是如何使各路FIFO的读写地址之间距离的最小值最大化。

当经过一段时间之后,由于时钟的漂移等使FIFO中的数据偏向FIFO的边界,可以对FIFO进行设置使得当FIFO中的数据与FIFO的边界的距离小于预设的阀值时,会有相应的告警,此时应启动相应的帧对齐的机制(写相应的寄存器)。FIFO会在相应的调整时隙(即允许调整的时刻)中调整FIFO的读地址,使FIFO中的数据移到FIFO中间。因为读地址的变化,这一过程会有少量数据丢失,但瞬间的数据丢失对整个传输几乎没有影响。

发明内容

根据本发明的第一方面,提供一种用于消除N路同步数据传输中的传输延时差异的方法,所述方法包括:

为N路同步数据的输入提供N路FIFO装置;

将N路数据的帧头转换到系统时钟域;

根据N路数据的每一路数据的帧头分别产生一个窗口,并记录所生成的N个窗口中的每个窗口所包含的帧头的数量;

比较所述N个窗口中帧头的数量,选出包含帧头数最多的那一路的窗口;

重复所述选出的包含帧头数最多的那一路的窗口,并记录其它帧头在该窗口中的相对位置,根据N路帧头在该窗口中的相对位置计算调整时隙;

根据得到的调整时隙调节N路FIFO装置以便使N路FIFO装置都从某一确定的地址读出帧头/数据。

根据本发明的第二方面,提供一种用于消除N路同步数据传输中的传输延时差异的装置,包括:

为N路同步数据的输入提供的N路FIFO装置;

预处理装置,用于将N路数据的帧头转换到系统时钟域;

选择装置,用于根据N路数据的每一路数据的帧头分别产生一个窗口,并记录所生成的N个窗口中的每个窗口所包含的帧头的数量;

比较装置,用于比较所述N个窗口中帧头的数量,选出包含帧头数最多的那一路的窗口;

计算装置,用于重复所述选出的包含帧头数最多的那一路的窗口,并记录其它帧头在该窗口中的相对位置,根据N路帧头在该窗口中的相对位置计算调整时隙;

调节装置,用于根据得到的调整时隙调节N路FIFO装置以便使N路FIFO装置都从某一确定的地址读出帧头/数据。

附图说明

图1表示没有消除延时差异的多路同步数据传输的示意图;

图2表示使用了根据本发明的消除延时差异方法后的多路同步数据传输的示意图;

图3是根据发明的延时差异消除装置的结构图;

图4是所有帧头都位于窗口内时计算调整时隙的示意图(以四个为例);

图5是当有帧头都位于窗口外时计算调整时隙的示意图(以四个为例);

图6是多路FIFO在调整时的示意图(以四个为例)。

具体实施方式

图3示意性地表示了根据本发明的延时差异消除装置的框图。该延时差异消除装置包括预处理装置、选择装置、计算装置和FIFO装置。假设该延时差异消除装置对N路数据进行处理,如上所述,N路数据的每路数据都具有一个相应的帧头。

N路数据的时钟和帧头首先被输入预处理装置,预处理装置将N路数据的时钟域转换到系统时钟域(当输入时钟域和输出时钟域不同时),这对于本领域的技术人员来说是容易作到的。预处理装置还检测调整信号的上升沿,该调整信号来自上层软件或者其它的控制装置(外部装置,未示出),所述预处理装置只有当检测到所述调整信号的上升沿后才执行相应的操作,预处理装置还将所述调整信号由电平信号变为调整信号脉冲作为启动计算装置的启动信号,这将在下面进行描述。

预处理装置对N路数据信号的处理方法相同。其首先检测调整信号的上升沿,当检测到调整信号的上升沿后,预处理装置先用背板时钟将输入数据的帧头展宽以避免系统时钟采不到背板时钟,接着用系统时钟对背板时钟采样,然后对输入帧头信号检测上升沿。请注意从所述预处理装置输出的帧头用于计算调整时隙,该输出帧头与实际FIFO的输入帧头并不相同。实际FIFO的输入帧头和数据仍是未处理的。这样算出的调整时隙有一些延时,可修改在FIFO调整的值来消除。

由预处理装置输出的帧头被输入选择装置,选择装置包括N路窗口产生装置和比较装置。由预处理装置输出的帧头首先被输入窗口产生装置,窗口产生装置根据N路数据的每一路数据的帧头产生一个窗口(也就是说第一路窗口产生装置生成一个从第一路帧头开始的窗口,第二路窗口产生装置生成一个从第二路帧头开始的窗口,依此类推),该窗口的宽度应能够被整帧的宽度整除(例如,整帧宽度1200个时钟周期,窗口宽度可选为60个时钟周期),并统计有多少个帧头在窗口里。窗口产生装置还包括一个计数器装置(未示出),用于记录本窗口中的帧头的数量并将该计数器的值输出到比较装置。

比较装置比较N个窗口产生装置输出的N个计数器值,找到其中的最大值,并且将其具有最大计数值的那一路窗口产生装置的索引号输出给计算装置。比较装置例如可以包括N个保存计数值的寄存器,一个临时寄存器和一个最大值寄存器(未示出),比较装置在每个时钟周期从相应窗口的寄存器中取出计数值,并将该计数值与保存的临时寄存器中的值比较;如果该输入的计数器值大于临时寄存器中的值,则把该输入的计数器值及该路窗口产生装置的索引号赋给临时寄存器。在N个周期后把临时寄存器中的值转移到最大值寄存器之后清空临时寄存器。如此就可以获得N个计数器值中的最大值及具有该最大计数值的那一路窗口产生装置的索引号。但是本领域的技术人员应该知道比较装置的结构并不限于此,还可以根据性能或面积的要求使用其它结构的比较装置,只要其能实现上述功能即可。

计算装置在由调整脉冲信号启动后,重复所述从N路窗口产生装置中选出的包含帧头数最多的那一路的窗口,并记录其它帧头在该窗口中的相对位置(不管帧头在窗口之内还是之外),例如可用N个寄存器存下各帧头在窗口中的相对位置,在记录了其它帧头在该窗口中的相对位置后,接下来要作的就是根据各路帧头在窗口中的相对位置计算出何时读出各路帧头/数据(因为同时读出各路帧头/数据,读出后它们就对齐了)。当FIFO的读地址和写地址之间的距离太近,会引起边界问题,即在某个时刻对某个地址同时进行读写操作。为避免边界问题,读地址和写地址之间的距离不能太近。这个问题的数学描述是如何找出输出帧头的位置,使得在N路FIFO中读地址和写地址距离最小的一路最大化。

如果计算装置判定N路帧头在窗口中的位置一致,则可以直接将读出时隙设在FIFO的中间,这样就能保证N路数据的同步读出并且FIFO的写入和读出地址之间的距离最大。如果N路帧头的位置不一致,则计算装置根据各帧头在窗口中的相对位置,生成波形,得到该波形的正沿和负沿,并根据它们记录波形低电平部分的宽度。在记录低电平部分宽度的同时,选择低电平部分最宽的那一部分,计算调整时隙。这将在参照图4和图5进行详细描述。

图4说明了当所有帧头都落在窗口内时计算调整时隙的示意图,此处举例说明了四路帧头的情况,当本领域的技术人员知道本发明并不限于四路帧头。当所有的帧头都在窗口内时,计算装置根据帧头1-4生成波形1到波形3,波形1到波形3都是在第一个帧头的上升沿变高,而在随后的帧头的上升沿来时变低,如图所示。波形M是波形1到波形3或的结果,它的上升沿表示了最先到的帧头,它的下降沿表示了最迟到的帧头,其高电平部分表示了最先到的帧头和最迟到的帧头之间的距离。因为输出帧头应该在所有输入帧头之后,所以输出帧头应取在低电平部分。当调整时隙的位置是图4中A点(低电平部分的中点)时,输出帧头和所有输入帧头的差的最小值最大,即写入和读出的地址的差最大。如果向左偏,则该点与第四个帧头的差值更小;如果向右偏,则该点与第一个帧头的差值更小(因为窗口是循环出现的)。

当有帧头落在窗口之外,情况会变得复杂些。因为窗口的宽度能够被帧长整除,而且窗口是循环出现的,这个帧头仍然会出现在后面的某个窗口中,也仍然有在窗口中的相对位置。如果它在其它原本就在窗口中的帧头之间,那么处理方法不变;如果它落在最外面,处理方法如图5所述。

图5表示当有帧头在窗口之外时,调整时隙的计算(以四个为例),如图5所示,第四路帧头落在窗口之外,虚线表示的是它映射回窗口中的值。在这种情况下,可选的最佳输出帧头的位置就有两个,如上图所示的两个低电平部分的中点B和B’,最终的结果是这两个低电平部分中较宽部分的中点B’,因为它可以使写入和读出的地址相距的最远。原理与图4是类似的,只是情况增加了。在极限情况下,有N个点可选。只需选择低电平部分中最大的那个即可。

计算出的调整时隙连同N路数据和帧头被输入到FIFO装置,FIF0装置为同步从背板过来的帧头/数据而实现了N路FIFO。当FIFO满或空时告警,当收到调整信号时,对FIFO的读出进行调整。

因为帧长是FIFO的整数倍,帧头又是写入FIFO的第0个位置,所以只需选择合适的时刻从各FIFO的0地址读出即可保证个路数据的同步(实际操作中,为了补偿计算中的延时和误差,可调整读出FIFO的地址)。

每个FIFO包含一个RAM,大小应该可以被一帧的长度整除(这样可以保证帧头总在FIFO的一个确定的位置),且以环形队列的数据结构实现,以充分利用FIFO的资源。写入和读出相互追逐,如果写入和读出的距离小于某个阈值,输出FIFO满的告警;如果读出和写入的距离小于某个阈值,输出FIFO空的告警。

写入时,当收到帧头信号时,写指针强制置为0,保证输入帧头被写入RAM的0地址。因为一帧的长度是FIFO长度的整数倍,所以输入帧头只是在最初被强制写入RAM的0地址,以后都自然地在RAM的0地址。

正常时,读出指针跟随写入指针。当有调整时隙时,各路FIFO同时根据得到的调整时隙从某一确定的地址读出帧头/数据,这样输出的帧头/数据就同步了。理论上,读出地址应为0,但由于计算的过程的延时,调整时隙向后延迟了几个时钟周期。在图5所示的例子中,FIFO读出的位置是9,即在调整时隙中,所有的FIFO都从地址为9的位置开始读出数据。

虽然参照实施例对本发明进行了描述,但是本领域的技术人员应该知道本发明并不陷于所述的实施例。本发明的各种装置可以由硬件、软件和二者的结合来实现,并且本发明的一个或多个装置可以被集成在一个装置中或者可以用一个装置来实现本发明的所有装置的功能。

鉴于本公开,这些和其它系统结构和优化特征对于本领域技术人员来说是显而易见的,并且被包含在下述权利要求书的范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号