背景技术
在SDH系统中,为了灵活组网以及提高带宽利用效率,常常以虚级联的方式传递数据。虚级联技术的原理是允许任意多个小的容器级联起来并组装成为一个比较大的容器来传输数据业务。这种技术可以级联VC-m(m=11,12,2,3,4)等不同速率的容器,允许非常小颗粒的带宽调节、提供比相邻级联更精确的带宽。
由于构成VCG(Virtual Concatenation Group,即虚级联组)的成员所走的路径不同,会造成不同成员有不同的延时;另外,由于添加删除的先后顺序会导致发送侧发送的端口数据不一定按照时隙编号的顺序发送,但传输过程的数据是按照时隙顺序排列的,为了得到正确的数据,下游的接收芯片必须将接收到的成员按照原有的规律对齐,并重排顺序,这个过程即为“虚级联恢复”;其中对齐数据的过程被称为“延时补偿”,重排数据的过程被称为“顺序重排”。
LCAS(Link Capacity Adjustment Scheme)是ITU-TG.7042行业标准中提出的一种基于虚级联的可以动态改变传送网中VCG带宽的协议。它允许无损伤地调整传输网中虚级联信号的链路容量,LCAS能够实现在现有带宽的基础上动态地增减带宽容量,满足虚级联业务的变化要求。
对于高阶(VC-m,m=2,3)虚级联和低阶(VC-n,n=11,12,2)虚级联,LCAS分别利用了VC-m通道开销的H4字节和VC-n通道开销的K4字节传送控制帧。控制帧中包括源到宿和宿到源两个方向的用于特定功能的信息,通过控制帧LCAS可以实现源和宿VCG带宽的变化同步。
LCAS协议规定了动态增加VCG成员、动态减少VCG成员和成员失效后的VCG动态调整等3种操作。通过网管增加或者删除虚级联组中成员时,要求系统不丢失数据,即平滑增减;对于因为“断纤”或者“告警”等原因导致成员无效后,自动删除虚级联组成员(也称为“临时删除”)时,在少量丢失数据后能够恢复正常;失效成员恢复正常后,系统自动恢复该成员为有效,要求这个过程不能丢失数据。
现有实现虚级联恢复的一般方法是将存在时延的数据缓存于内部或外部RAM(RandomAccess Memory随机存取存储器)中,再按照对齐的规律将数据读出。
但在实际操作中,可能出现如下情况:1、添加一条或多条延时比较大的成员,导致丢失数据或者错误。2、由于进行虚级联恢复需要对数据进行缓存,势必会造成整个数据业务的延时,尽可能减小这个延时有利于提高系统性能。而删除一条或多条延时较大的成员后,如果不特殊处理,缓存空间的读写地址的距离会比较大,造成系统这方面的性能欠佳。
目前的方法通常没有考虑这种特殊情况,如在专利”US2004/0213268 STALL NEEDDETECTION AND ASSOCIATED STALL MECHANISM FOR EDLAY COMPENSATION INVIRTUAL CONCATENATION APPLICATIONS”中,提出了用“stall”来冻结读地址和生成DNU指示数据无效实现无损伤添加的方法,但这个方法不是基于动态调整读写地址距离设计的,在删除最大延时成员后,没有做特别处理,并不能有效提高芯片的延时性能。
因此,现有技术还有待于继续进步和发展。
发明内容
本发明方法所要解决的技术问题是针对现有技术中添加延时较大的成员到VCG中容易导致业务出错的问题,以及删除延时较大的成员后,仍然需要较长的时间才能完成数据恢复,导致系统处理造成的延时较大的问题,提出一种基于动态调整读写地址距离的虚级联延时补偿方法。
本发明的技术方案包括:
一种实现无损伤虚级联延时补偿的方法,其包括步骤:
A、采用复用处理的方式完成虚级联延时补偿过程;
B、保持读地址和规定群组内所有成员中延时最大的成员的写地址距离接近,如果这条延时最大的成员被删除,及时调整读地址增加速度,使读地址和规定群组内当前延时最大的成员的写地址保持接近;
C、在边界位置检测有无成员的添加和删除操作,检测是否规定群组的所有成员的写地址都已经超过特定的边界,如果是,则增加读地址;否则读地址不增加,保持在边界处于等待状态。
所述的方法,其中,具体还包括步骤:
A1、将延时补偿随机存取存储器按照虚级联成员的最多个数划分成多个存储块,每个成员的数据存放于对应的存储块;
B1、在净荷指不下增加写地址;在读使能有效时增加读地址;
B2、所述“规定群组”是根据系统的处理机制所定义的群组;
B3、如果读地址和最小写地址之间的距离在设定的阀值范围内,保持读地址的当前增加速度;如果读地址滞后写地址的距离在设定阀值之外,则加快或减慢读地址增加的速度,使读地址总是和延时最大的成员的写地址保持在阀值范围内;
C1、按照LCAS规定的配置变化位置,计算可能发生配置变化的时刻对应的写地址的值,即边界位置;
C2、检测成员的写地址是否都已经超过边界。
所述的方法,其中,所述步骤B3中保持读地址与延时最大成员的写地址之间的距离保持设定值的具体还包括:
B31、在生成读使能初始值时预留速率调整机会位置;
B32、在没有添加删除发生时,通过对读出方向的速率调整,使读地址和最小写地址之间的距离保持设定的值;
B33、在删除延时最大成员后,通过对调整机会位置的调整,加快读出速率,使读地址和当前延时最大的成员的写地址之间的距离调整到设定的值。
所述的方法,其中,所述步骤B3中临时删除的成员的写地址和读地址的距离不影响读方向的速率调整。
所述的方法,其中,所述步骤C2中判断成员的写地址是否都已经超过边界的具体还包括:
C21、按照规定群组记录超过边界的成员数量;
C22、记录当前超过任何一个边界的成员总数;
C23、计算每个边界所对应的有效成员总数;
C24、比较同一个群组在同一个边界位置的所述步骤C22和C23的两个计数值,两者相等表示这个群组的所有成员的写地址是否都已经超过这个边界。
本发明所提供的一种实现无损伤虚级联延时补偿的方法,由于通过动态调整延时补偿RAM的读地址的增加速度,即在边界位置比较成员总数和超过边界的写地址计数值,确定是否让读地址等待,以及在有删除、临时删除发生后调整读方向速度,保持读地址和延时最大的有效成员的写地址之间的距离为设定值,可以确保进行虚级联恢复所需的时间最少,并且在添加大延时的成员以及在临时删除后恢复等情况下不丢失数据。
具体实施方式
下面结合附图,对本发明所述方法进行详细的说明。
本发明所述实现无损伤虚级联延时补偿的方法的核心思想如图1所示的,采用复用处理的方式完成虚级联延时补偿过程;保持读地址和规定群组中所有成员中延时最大的成员的写地址距离接近,如果这条延时最大的成员被删除,读地址及时调整和规定群组中当前延时最大的成员的写地址保持接近;在边界位置检测有无成员的添加和删除操作,检测是否规定群组的所有成员的写地址都已经超过特定的边界,如果是,则增加读地址;否则读地址不增加,保持在边界处于等待状态。
本发明方法针对延时较大成员的添加删除的过程包括下列步骤:
第一步、将延时补偿RAM按照虚级联成员的最多个数划分成多个存储块,每个成员的数据存放于对应的一个存储块;
第二步、如果读地址和规定群组内最小写地址之间的距离在设定的阀值范围内,保持写地址和读地址增加速度一致;如果读地址滞后写地址的距离在设定阀值之外,则加快读地址增加的速度,使读地址总是和延时最大的成员的写地址保持在阀值范围内。
第三步、按照LCAS规定的配置变化位置,计算可能发生配置变化的时刻对应的写地址的值,即“边界位置”。
第四步、计算写地址超过某个边界位置的成员总数,在读地址到达这个边界位置时,比较成员总数和写地址超过这个边界的成员的总数,判断是否所有成员的写地址都已经超过这个边界,如果是,读地址增加;否则,读地址保持在边界位置等待。
上述第二步骤中保持读地址与延时最大成员的写地址之间的距离保持设定值的具体步骤包括:
2.1在净荷指示下增加写地址,在读使能有效时增加读地址。
2.2所述“规定群组”是根据系统的处理机制所定义的群组,例如,可以是一个VCG(虚级联组),也可以是相同类型的成员组,例如,所有的VC-12成员,或所有的VC-3成员。
2.3在生成读使能初始值时预留速率调整机会位置。
2.4在没有添加删除发生时,通过对读出方向的速率调整,使读地址和群组最小写地址之间的距离保持设定的值。
2.5在删除群组延时最大的成员(包括临时删除)后,通过对调整机会位置的调整,加快读出速率,使读地址和延时最大的成员的写地址之间的距离调整到设定的值。
2.6临时删除的成员的写地址和读地址的距离不影响读方向的速率调整。
上述第四步骤中判断成员的写地址是否都已经超过边界的具体步骤包括:
4.1按照规定群组记录超过边界的成员数量。
4.2记录当前超过任何一个边界的成员总数。
4.3计算每个边界所对应的有效成员总数。
4.4比较同一个群组在同一个边界位置的5.2和5.3的两个计数值,两者相等表示这个群组的所有成员的写地址是否都已经超过这个边界。
如图1所示的本发明方法中虚级联恢复的原理框图,存储设备是用于缓存数据的内部或外部RAM,就是本发明方法中提到的进行延时补偿的RAM。写进RAM的数据是待恢复的数据,从RAM读出的数据是进行了延时补偿和顺序重排的数据。写入方向模块生成存储设备的写地址,读出方向模块生成存储设备读地址和读使能;这两个地址同时还要送到读写地址比较模块进行比较,比较结果送到读出方向生成模块,调整读地址增加的速度。
按照本发明方法所述的第一步,将延时补偿RAM按照虚级联成员的最多个数划分成多个存储块,每个成员的数据存放于对应的一个存储块;按照时隙编号的顺序将成员数据写入各自对应的存储块,如图2所示。RAM的写地址在净荷指示下增加,RAM的写地址在读使能有效时增加。
如果读地址和最小写地址之间的距离在设定的阀值范围内,保持写地址和读地址增加速度一致;如果读地址滞后写地址的距离在设定阀值之外,则加快读地址增加的速度,使读地址总是和延时最大的成员的写地址保持在阀值范围内。
如图3所示是读方向时序的示意图,图中参照SDH帧结构设置了正负调整机会位置,用于加快或减慢读方向的速率。图中点状阴影表示负调整机会位置,正常情况下为无效读区间,读地址不增加,如果将这段区间设为有效读区间,则可以加快读出的速率;图中斜线阴影区间表示正调整机会位置,正常情况下为有效读区间,如果将这段区间设为无效读区间,则可以降低读出方向速率。
按照本发明方法,为了让读地址总是逼近延时最大成员的写地址,在一般状态下或是删除了成员之后,通过调整正负机会位置,加快读方向速率,当读地址和最小写地址之间的距离达到设定值之后,保持读地址和写地址增加速度一致。
图中所示的调整位置仅为示例,实际运用中可以设置在不同的位置,设置不同的区间长度,只要能够起到调整速率的作用即可。对于发生了临时删除的成员,由于写地址已经混乱,所以该成员和读地址的距离不影响读方向的速率调整。
按照LCAS规定的配置变化位置,计算可能发生配置变化的时刻对应的写地址的值,即“边界位置”。在图2.1中标出了几个边界位置。边界的具体位置与成员类型,LCAS下行处理,延时补偿大小,RAM空间划分有关,但在相同的处理系统中,确定的成员总有确定的边界。添加删除临时删除等操作后,数据和配置信息总是在边界位置才发生变化。
如图4所示的本发明方法的主流程图,在读写地址之间的距离超过阀值时,加快或减慢读出的速度,否则保持读地址和写地址增加的平均速度一致;在读地址到达边界位置时,计算写地址超过某个边界位置的成员总数,在读地址到达这个边界位置时,比较成员总数和写地址超过这个边界的成员的总数,判断是否所有成员的写地址都已经超过这个边界,如果是,读地址增加;否则,读地址保持在边界位置等待。
如图5所示是本发明方法所述的读地址等待方案的实现原理图,图中写方向边界计算是按照LCAS处理所确定的数据变化位置以及RAM的存储空间大小等因素计算出的发生数据变化时刻可能的写地址值。读方向边界计算则判断读地址是否到达边界位置。
member_nt表示对已经通过特定边界的成员的计数值;member_num表示对应某个边界位置的成员总数。以VCG作为群组为例,需要按照VCG记录超过边界的成员数量;同时,由于成员之间存在延时差异,在同一段时间,每个成员可能到达不同的边界,因此需要记录当前超过任何一个边界的成员总数;而且,由于配置变化可能发生在任何一个边界位置,因此需要分别计算每个边界所对应的有效成员总数。
图中所示member_cnt存储和member_num存储就分别表示了按照边界和时隙复用的关系对上述两个值进行存储。对两者的比较是在读地址到达特定边界后,将两个值分别从存储空间中读出后进行的,这两个值都对应于同一个边界,同一个群组。如果两者相等,读地址则跳出等待状态,开始正常增加,否则继续等待;同时,两者相等后要对所存储的值进行复位,以便下次累加以及比较。
如图2的图2.1所示的,表示有一个成员的延时比其它几个成员的要大,因此这个成员的写地址滞后较多。图中标有阿拉伯数字1-6的位置表示成员的写地址,可见数字5对应的写地址较其它写地址滞后较多;如图所示,同一个群组的所有成员有相同的读地址,并且比延时最大的成员的写地址还略有滞后,这样,能够保证读出来的数据是一个写循环中所有成员已经正确写入的数据。
图2.2表示图2.1所示情况下延时较大的成员被删除后的情况,可以看出,如果不对读地址采取特殊处理,读地址和当前延时最大的成员之间的距离将会比较大,这样就导致这个系统的处理所造成的数据延时比较大。
图2.3表示采用本发明所述的方法处理后,读地址增加速度加快,和最小写地址距离减小,从而可以保证系统处理后对业务造成的延时最小。读写地址的增加是一个动态的过程,图中所示仅为示意,并不表示读写地址保持图示的关系。
综上,本发明方法通过动态调整延时补偿RAM的读地址的增加速度,即在边界位置比较成员总数和超过边界的写地址计数值,确定是否让读地址等待,以及在有删除、临时删除发生后调整读方向速度,保持读地址和延时最大的有效成员的写地址之间的距离为设定值,确保了进行虚级联恢复所需的时间最少,并且在添加大延时的成员以及在临时删除后恢复等情况下不丢失数据。
应当理解的是,上述针对具体实施例的描述较为详细,并不能因此而认为是对本发明专利保护范围的限制,本发明的专利保护范围应以所附权利要求为准。