虚级联中序列号排序的处理方法 【技术领域】
本发明涉及同步数字传输网(SDH)中的虚级联技术,特别是指一种虚级联中序列号排序的处理方法。背景技术
级联是SDH的重要特性之一,它能够保证容量大于C-4(149760kbit/s)的客户信号有效传输,并且对客户信号不引入附加损伤。级联是一种结合过程,通过级联可把多个虚容器(VC)组合起来,使多个VC的组合容量可当作一个仍然保持比特序列完整性的单个容器使用。例如,对于类型为VC-4的虚容器的级联就是将X个C-4的容量组合在一起,形成一个大的容器,来满足大于C-4的大容量客户信号传输的要求。级联可以分为相邻级联和虚级联,相邻级联是在同一个N阶同步传输模块(STM-N)中,利用相邻的C-4级联成为VC-4-Xc,成为一个整体结构进行传输。而虚级联是将分布在不同STM-N中的VC-4按级联的方法,形成一个虚拟的大结构VC-4-Xv进行传输。其中,每个VC-4可能是同一路由,也可能是不同路由。对于虚级联,由于每个VC-4传输所通过的路径可能不同,所以在各VC-4之间可能出现传输时延差,在极端情况下,可能出现序列号偏后的VC-4比序列号偏前的VC-4先到达宿终接点,给客户信号的还原带来困难,所以需要对VC-4进行时间上和空间上的对齐。
在虚级联的实现过程中,主要完成时间调整和空间调整。其中,空间调整是为了在宿站点能够正常恢复虚级联携带的业务,并且必须把源站点发送时的序列、通道关系恢复过来。空间调整的关键就是序列号的排序,现有虚级联协议支持最大256个序列号。
如图1所示,图1为虚级联中处理序列号排序地原理示意图。其处理过程是这样的:在源站点,256个通道顺序对应256个序列号,每个通道携带自身的业务经SDH交叉连接后传输至宿站点,此时,每个通道与序列号已不再顺序对应。在宿站点,经空间整形后,即可将序列号按源站点发送时的顺序排序。
目前,完成序列号排序通常采用以下两种方法:
1、直接相互比较大小:就是每两个序列号之间比较大小,比较好后,再按比较结果排序。这种方案适合用软件循环处理,能处理少量通道的虚级联情况,但是处理过程复杂,循环次数多,当用可编程逻辑阵列(FPGA)或专用集成电路(ASIC)逻辑实现时,则需要内部的大量逻辑资源,特别是大量的逻辑查找表和比较器。
2、冒泡法排序:冒泡法又称标准交换分类,即将表中的元素按某种规律(递升或递减)重新排列组织。这种方案通过灵活应用并暂存相应的比较结果,大量减少了序列号比较次数,特别适合用软件循环处理,能处理少量通道的虚级联情况,但是其不能处理多通道的虚级联,因为当通道数增加时,资源耗费成几何级数增加,器件成本无法承受。发明内容
有鉴于此,本发明的主要目的在于提供一种虚级联中序列号排序的处理方法,使其能降低逻辑资源的耗费,简化序列号排序过程,支持多通道的虚级联排序。
为达到上述目的,本发明的技术方案是这样实现的:
一种虚级联中序列号排序的处理方法,首先,宿站点从同步数字序列(SDH)帧结构中解析出通道序列号,关键在于:宿站点将该通道序列号暂存于其数字芯片内部的随机存储器(RAM)中,通过控制RAM的读写顺序对虚级联中多个通道序列号进行排序。其中,数字芯片可采用现场可编程门阵列(FPGA)或专用集成电路(ASIC),RAM可采用块状随机存储器(Block RAM)、分布式随机存储器(Distributed RAM)或者是先入先出存储器(FIFO)。
该方法具体包括:
a.宿站点将当前通道的序列号和对应该序列号的有效指示按照写口地址写入随机存储器(RAM)的指定地址空间;
b.在读出序列号时,按RAM地址由小到大的顺序,根据序列号对应的有效指示位依次读出有效序列号,进行后续处理。
其中,步骤a中所述的写口地址等于当前通道序列号值。
该方法进一步包括:预先在宿站点的数字芯片中设置一个存储容量为N×9bit的随机存储器(RAM)来存储虚级联中的通道序列号。所述的N为当前虚级联中通道序列号的最大值。
在上述方法中,要预先设定每个通道序列号由8bit的序列号值和1bit的序列号有效指示位组成。
该方法还进一步包括:当通道序列号发生变化时,先将RAM清空,再进行序列号排序处理。
由于本发明采用数字芯片内部的随机存储器(RAM)暂存多通道的虚级联序列号,通过控制RAM的读写来对多通道的虚级联序列号进行排序,所以实现方法简单,占用数字芯片内部的逻辑资源少,能够支持多通道的虚级联排序处理。附图说明
图1为虚级联中处理序列号排序的原理示意图。
图2为本发明虚级联中用RAM存储并处理序列号排序的原理示意图。具体实施方式
下面结合附图及具体实施例对本发明再作进一步详细的说明。
图2给出了本发明虚级联中通过RAM存储并处理序列号排序的原理。在虚级联的协议中,SDH利用帧结构中的开销字节H4来传达延时和排序信息,宿站点通过H4字节就能找出相应通道的序列号。本发明正是将解析出的序列号先暂存于宿站点数字芯片中RAM的相应地址空间内,然后按地址大小顺序读出,以达到序列号排序的目的。
参见图2,本实施例所用RAM的容量为N×9bit,其中,N为虚级联序列号的最大值,例如:N可为255;9bit指每个序列号的存储容量,包括两部分:8bit为序列号值,1bit为序列号有效指示位。写入RAM的信号包括:序列号有效指示信号和8bit的序列号,从RAM读出的信号包括:序列号有效指示信号和经排序的8bit序列号。读写控制信号包括一个写口地址信号和一个读口地址信号,分别表示写入和读出的序列号所在RAM存储器中的位置。另外,还有个时钟(CLOCK)信号,用于控制读写时序。那么,如图2所示,具体的排序处理过程是这样完成的:
1)当宿站点找出序列号后,按照时钟提供的时序将序列号写入一个N×9bit的RAM中,该序列号值占8个bit。将序列号写入RAM的地址空间时,地址由序列号本身决定,即写口地址等于当前的序列号值,比如:当前序列号值为99,那么,就将序列号有关数据写入RAM[99],即RAM的第100个地址空间中。在写入序列号的同时,将该序列号对应的有效指示也写入RAM中相应的地址空间,该有效指示占用1个bit。
2)从RAM中读出序列号时,按地址由小到大的顺序依次读出有效序列号,例如按从0到255的顺序,根据有效指示位,可以知道哪个时隙为有效的序列号,先读出的有效序列号为小,进而完成序列号排序,然后将经过排序的序列号提供给后继处理。实际上,读出顺序也可根据用户的需要来规定,只要遵循一定的规律即可。
这种方法最多需要N×2个时钟周期处理,例如:256×2=512个时钟周期,而序列号来一次需要16帧的时间,远远大于512个时钟周期,由此可见,在时间处理上余量很大。在虚级联中,每个通道的序列号一般是不变化的,如果通道序列号发生变化,则要在进行序列号排序处理前先将RAM清一次,再重复以上过程。
在上述实施方案中,采用的数字芯片可以是可编程逻辑阵列(FPGA)或专用集成电路(ASIC),RAM可采用块状随机存储器(Block RAM)、分布式随机存储器(Distributed RAM)或者是先入先出存储器(FIFO)。
总之,以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。