一种实现多虚级联组成员排序的方法及装置 【技术领域】
本发明涉及光通信领域中虚级联技术。尤其涉及 LCAS 处理中多 VCG 情况下的成 员排序实现。背景技术
在同步数字系列 (SDH, Synchronous Digital Hierarchy) 系统承载业务的时候, 不同等级的同步传输模块 (STM, Synchronous Transfer Module) 对应不同等级的传输速率 如图 1 所示。某些被传送的信息净荷与 SDH 的各种虚容器的标准速率不完全匹配, 如图像 编码信号及 IP 路由器信号等, 产生了级联技术。利用级联技术可以动态调整传输业务的带 宽, 级联技术有相邻级联和虚级联。
相邻级联 (Contiguous Concatenation) 是将在同一个 STM-N(SDH 信号的帧结构, ITU-T 规定 STM-N 的帧采用以字节为单位的矩形块状结构, 是 9 行 ×270×N 列的块状帧结 构, 如图 2 所示 ) 中, 利用相邻的 C-n 级联成 C-n-XC, 成为整体结构进行传输, 相邻级联在整 个传输的过程中必须保持连续的带宽。 这种技术需要网络中所经过的所有网元设备的均支 持相邻级联的处理, 应用受到限制。 虚级联 (Virtual Concatenation) 是将多个相邻或不相邻的较小虚容器复用为一 个较大的虚容器, 并且这些较小的虚容器在传送过程中相互独立, 而在传输的终结点将这 些较小的虚容器重新组合成一个相邻带宽, 如图 3 所示的 VC-4-Xv 虚级联组示意图。这就 仅要求在通道开始和终结的网元支持虚级联功能, 对于中间经历的网元不作要求, 因此, 虚 级联有着更宽松的应用环境, 也容易推广。
虚级联传输的时候, 在传输过程中相互独立的这些容器都有个成员序号, 用来标 识这些容器在源端装载数据流的顺序, 这些次序经过传输之后已经被打乱, 需要在宿端重 新恢复其成员序列号用于恢复数据流。
根据 LCAS(Link Capacity Adjustment Scheme) 协议, 每个 VCG 包括成员序列号 在内的 LCAS 信息都是在当前复帧传送而指示下一复帧状态信息, 因此, 在单 VCG( 虚级联 组, Virtual Concatenation Group) 成员排序的情况下, 可以在获取完 LCAS 信息之后, 进 行成员排序, 排好序后, 等到下一复帧开始的时候开始启用。在多虚级联组传送的时候, 由 于各个 VCG 获取 LCAS 信息的时间和下一复帧开始的时间是相互独立而且不确定的, 因此需 要给每个 VCG 配置一个排序电路, 各自独立根据各自 LCAS 信息接收的进度进行成员排序。 但是, 这样将耗费比较多的硬件逻辑资源, 尤其是 VCG 个数比较多的情况。
发明内容
本发明所要解决的技术问题是, 提供一种实现多 VCG 成员排序的方法及装置, 以 降低在多 VCG 情况下的硬件逻辑资源消耗。
为了解决上述问题, 本发明公开了一种实现多虚级联组 (VCG) 成员排序的方法, 包括 :按照各 VCG 中最晚到达成员的到达时间的先后顺序, 确定到达的所有 VCG 的排序 队列, 并对排列队列中各 VCG 依次进行成员排序 ;
调用各 VCG 的成员排序结果。
进一步地, 上述方法中, 调用各 VCG 的成员排序结果指 :
设置 VCG 的读方向复帧帧头开始时间, 若所述读方向复帧帧头开始时间到达, 则 读取该复帧对应的 VCG 的成员排序结果, 其中, 读方向复帧帧头开始时间比该 VCG 的上一写 方向复帧中最晚到达成员对应的子帧结尾时刻至少延迟排序到调用排序结果的允许时间 间隔。
其中, 所述排序到调用排序结果的允许时间间隔的值是, 所有 VCG 同时到达时成 员排序所需的总时间 T1 和所有 VCG 分散到达时成员排序所需的时间 T2 中的较大值。
所有 VCG 同时到达时成员排序所需的总时间 T1 指 :
一个 VCG 进行成员排序所需要的时间与所支持的 VCG 个数的乘积。
所有 VCG 分散到达时成员排序所需的时间 T2 指 :
一个 VCG 内最晚到达成员对应的通道的复帧中最后一个子帧中 H4 或者 K4 字节到 来时与该通道下一复帧帧头到来时的时间间隔。
VCG 最晚到达成员的到达时间指 :
比较 VCG 的各个成员对应的各复帧中最后一个子帧中 H4 或者 K4 字节的到达时 间, 最晚到达的子帧中 H4 或者 K4 字节的到达时间为该 VCG 最晚到达成员的到达时间。
本发明还公开了一种实现多虚级联组 (VCG) 成员排序的装置, 包括队列排序模 块、 排序电路模块和调用模块, 其中 :
所述队列排序模块, 用于按照各 VCG 中最晚到达成员的到达时间的先后顺序, 确 定到达的所有 VCG 的排序队列 ;
所述排序电路模块, 用于对所述队列排序模块所确定的排列队列中各 VCG 依次进 行成员排序 ;
所述调用模块, 在各 VCG 依次进行成员排序后, 调用所述排序电路模块处理后的 各 VCG 的成员排序结果。
进一步地, 上述装置中, 所述调用模块, 设置 VCG 的读方向复帧帧头开始时间, 若 所述读方向复帧帧头开始时间到达, 则从所述排序电路模块读取该 VCG 的成员排序结果, 其中, 该 VCG 的读方向复帧帧头开始的时间比该 VCG 的上一写方向复帧中最晚到达成员对 应的子帧结尾时刻至少延迟排序到调用排序结果的允许时间间隔。
其中, 所述排序到调用排序结果的允许时间间隔的值是, 所有 VCG 同时到达时成 员排序所需的总时间 T1 和所有 VCG 分散到达时成员排序所需的时间 T2 中的较大值 ;
其中, 所有 VCG 同时到达时成员排序所需的总时间 T1 指 : 一个 VCG 进行成员排序 所需要的时间与所支持的 VCG 个数的乘积 ;
所有 VCG 分散到达时成员排序所需的时间 T2 指 : 一个 VCG 内最晚到达成员对应的 通道的复帧中最后一个子帧中 H4 或者 K4 字节到来时与该通道下一复帧帧头到来时的时间 间隔。
VCG 最晚到达成员的到达时间指 : 比较 VCG 的各个成员对应的各复帧中最后一个 子帧中 H4 或者 K4 字节的到达时间, 最晚到达的子帧中 H4 或者 K4 字节的到达时间为该 VCG最晚到达成员的到达时间。
本发明技术方案能通过一个排序电路有效实现多 VCG 的成员排序, 大幅度降低了 逻辑资源消耗。 附图说明
图 1 为 ITU-T G.707 建议规范的 SDH( 同步数字体系 ) 标准速率 ;
图 2 为 G.707 建议的 SDH STM-N 帧结构 ;
图 3 为虚级联映射得到的 VC-4-Xv 示意图 ;
图 4(a) 为本发明实施例 1 中宿端对到达的各 VCG 的处理示意图 ;
图 4(b) 为本发明实施例 1 中排序电流各 VCG 的处理示意图 ;
图 5 为本发明实施例 1 的处理流程图。 具体实施方式
下面结合附图和具体实施方式对本发明的较佳实施例作进一步详细说明。
一种实现多虚级联组成员排序的装置, 至少包括队列排序模块、 排序电路模块和 调用模块。 队列排序模块, 用于按照各 VCG 中最晚到达成员的到达时间的先后顺序, 确定到 达的所有 VCG 的排序队列 ;
VCG 最晚到达成员的到达时间指 : 比较 VCG 的各个成员对应的各复帧 ( 即 VCG 的 写方向复帧 ) 中最后一个子帧中 H4 或者 K4 字节的到达时间, 最晚到达的子帧中 H4 或者 K4 字节的到达时间为该 VCG 最晚到达成员的到达时间。
排序电路模块, 用于对队列排序模块所确定的排列队列中各 VCG 依次进行成员排 序;
调用模块, 在各 VCG 依次进行成员排序后, 调用排序电路模块处理后的各 VCG 的成 员排序结果。
具体地, 调用模块, 设备 VCG 的读方向复帧帧头开始时间, 若读方向复帧帧头开始 时间到达, 则从排序电路模块读取该 VCG 的成员排序结果, 其中, 该 VCG 的读方向复帧帧头 开始时间比该 VCG 的上一写方向复帧中最晚到达成员对应的子帧结尾时刻至少延迟排序 到调用排序结果的允许时间间隔, 例如, 为 VCG 的读方向复帧中帧号为 3 复帧设置开始时间 时, 所设置的开始时间比 VCG 的上一写方向复帧 ( 其帧号即为 2) 中最晚到达成员对应的子 帧结尾时刻至少延迟排序到调用排序结果的允许时间间隔 ;
其中, 排序到调用排序结果的允许时间间隔的值是, 所有 VCG 同时到达时成员排 序所需的总时间 T1 和所有 VCG 分散到达时成员排序所需的时间 T2 中的较大值 ;
所有 VCG 同时到达时成员排序所需的总时间 T1 指 : 一个 VCG 进行成员排序所需要 的时间与所支持的 VCG 个数的乘积 ;
所有 VCG 分散到达时成员排序所需的时间 T2 指 : 一个 VCG 内最晚到达成员对应的 通道的复帧中最后一个子帧中 H4 或者 K4 字节到来时与该通道下一复帧帧头到来时的时间 间隔。
下面以具体应用场景说明上述装置实现多虚级联组成员排序的过程。
本实施例以 k 个待排序的虚级联组为例, 说明多 VCG 成员排序的过程。其中, 待排 序的 k 个虚级联组为 VCG1、 VCG2、 ......、 VCGk, 如图 4 所示。 在源端, 根据配置, 每个虚级联 组内的成员都有 2 个属性, 一个是 VC( 通道编号 ), 一个是成员序列号, 例如, 图 4 中, VCG#1 有 4 个成员, VCG#1 对应的 VC 通道号分别是 1、 2、 3、 4, 各 VC 通道对应的成员序列号分别是 0、 3、 2、 1; VCG#2 有 5 个成员, VCG#2 对应的 VC 通道号分别是 5、 6、 7、 8、 9, 各 VC 通道对应的 成员序列号分别是 3、 2、 4、 1、 0; ...... ; VCG#k 有 3 个成员, VCG#k 对应的 VC 通道号分别是 i-2、 i-1、 i, 各 VC 通道对应的成员序列号分别是 0、 2、 1。其中, 成员序列号是源端发送的虚 级联信息, 高阶虚级联存储在 H4 字节中, 低阶虚级联存储在 K4 字节中。 该过程如图 5 所示, 包括如下步骤 :
步骤 501 : 宿端提取并存储 VCG 各个成员的成员序列号 (SQ) 信息 ;
该步骤中, 宿端虚级联恢复模块通过提取各通道复帧中 H4 或者 K4 字节的信息, 从 而得到每个 VC 通道所属于的成员序列号, 将这些信息存储在 RAM 中, 供排序开始时读取 ;
本实施例中, 经过提取得到, VCG#1 的 VC 通道 1、 2、 3、 4 的成员序列号分别是 0、 3、 2、 1; VCG#2 的 VC 通道 5、 6、 7、 8、 9 的成员序列号分别是 3、 2、 4、 1、 0; ...... ; VCG#k 的 VC 通 道 i-2、 i-1、 i 的成员序列号分别是 0、 2、 1。 步骤 502 : 宿端对同一 VCG 的各个通道复帧号和复帧内的偏移作为时间信息进行 比较, 找到同一 VCG 中最晚到达通道 ( 该通道对应的成员即为最晚到达的成员 ) ;
其中, 每个 VCG 的所有成员到达宿端的时间并不是完全相同的, 有一定的延时, 只 有一个 VCG 的所有通道的所有 H4 或者 K4 字节到来, 才能提取到该 VCG 的所有通道的成员 序列号信息, 才能进行成员排序, 因此, 本发明中通过最晚到达通道 ( 即表示最晚到达的成 员 ) 的信息来控制排序启动的时刻 ;
具体地, 宿端可以通过各通道自身携带的复帧信息作为大的时间信息, 以字节计 数器记录各个成员在复帧内的偏移时间信息, 即得到成员的到达时间信息, 然后对同一个 VCG 的各个通道进行比较, 得到最晚到达 VC 通道, 该 VC 通道所属的成员即为最晚到达的成 员;
本实施例中, 经过比较, VCG#1 最晚到达 VC 通道是 3 ; VCG#2 最晚到达 VC 通道是 #5 ; ...... ; VCG#k 最晚到达 VC 通道是 i, 见图 4(a)。
步骤 503 : 以每个 VCG 中最晚到达通道的复帧中最后一个子帧中 H4 或者 K4 字节 到来时 ( 即各 VCG 中最晚到达成员的到达时间信息 ) 作为该 VCG 成员排序许可标志, 将该 VCG 编入队列中等候 ;
当某个 VCG 的最晚到达成员对应的子帧中 H4 或者 K4 字节到来时, 表示该 VCG 的所 有成员的相同复帧的结尾均已到来, 此时可以对该 VCG 进行成员排序, 但是, 由于是多 VCG 成员排序, 因此, 并不一定能马上进行排序, 这个时候, 可以依据排队的策略 ( 即按照各 VCG 成员排序许可标志的确定时间的先后顺序排队 ), 编入排序等待队伍, 排序完之后退出队 伍。
本实施例中, k 个 VCG 排队的顺序是 1、 ......、 k、 2。
步骤 504 : 确定排序到调用排序结果的允许时间间隔, 以保证在需要调用排序结 果前完成所有 VCG 的成员排序, 其中, 该排序到调用排序结果的允许时间间隔的值是, 所有 VCG 同时到达时成员排序所需的总时间 T1 和一个 VCG 内最晚到达通道的复帧中最后一个子
帧的 H4 或者 K4 位置与下一复帧帧头开始的时间间隔 T2 中的较大值 ;
具体地, 计算好排序一个 VCG 需要的时间 Vi, 以这个时间 Vi 乘以支持的 VCG 个数 ( 本实施例中即为 k) 得到一时间间隔 Vi×k( 即为 T1), 以及一个 VCG 内最晚到达成员对应 的通道的复帧中最后一个子帧中 H4 或者 K4 字节到来时与该通道下一复帧帧头到来时的时 间间隔 Ti( 即为 T2), 将时间间隔 Vi×k 和时间间隔 Ti 中较长的时间间隔作为排序到调用 排序结果的允许时间间隔 ;
这主要是因为确定排序到调用排序结果的允许时间间隔时, 要考虑到最紧凑情况 下 ( 即每个 VCG 的最晚到达通道的复帧结尾时刻同时到来或者相继到来 ) 能保证需要调用 排序结果前完成成员排序, 此时, 排序到调用排序结果的允许时间间隔至少为所有 VCG 成 员排序需要的时间总和 T1( 即 Vi×k)。还要考虑到另一个边界情况, 即某个 VCG 的最晚到 达通道的复帧中最后一个子帧的 H4 或者 K4 字节到来的时刻无其他 VCG 在等待排序 ( 即该 VCG 可立即启动排序 ), 此时, 排序到调用排序结果的允许时间间隔为 VCG 内最晚到达通道 的复帧中最后一个子帧的 H4 或者 K4 字节到来时与下一个 VCG 内最早到达通道的复帧帧头 的时间间隔 T2( 即 Ti)。因此, 为了保证各种情况下需要调用排序结果前都已完成成员排 序, 要比较 Vi×k 和 Ti, 从中选择较长的时间作为排序到调用排序结果的允许时间, 其中, Ti 是由帧结构决定的, 是固定值, Vi 是由排序算法决定的, k 是 VCG 个数, 由应用环境决定。 该步骤中, 可以通过设置 VCG 的读方向复帧帧头开始时间以保证排序到调用排序 结果的允许时间间隔的实现, 即设置 VCG 的读方向复帧帧头开始时间, 使得设置后 VCG 的读 方向复帧帧头开始时间比该 VCG 的上一写方向复帧中最晚到达成员对应的子帧结尾时刻 ( 即该 VCG 的最晚到达通道复帧中最后一个子帧的 H4 或者 K4 字节到来的时刻 ) 至少延迟 排序到调用排序结果的允许时间间隔。
在本实施例中, 如图 4(b) 所示, 通过控制开始调用上次排序结果的时间点, 保证 需要调用排序结果的时间点, 不早于完成全部 VCG 排序所需要的时间。例如, 以 VCG#1 作为 基准, 在 VCG#1 最晚到达通道的复帧结尾到来之前, 也还没有其他 VCG 编入等待排序的队 列; 当 VCG#1 最晚到达通道的复帧结尾到来的同时或者随后, 其它 VCG 也都同时到来或者相 继到来 ; 因而, 这是理论上的最紧凑排序情况, 通过调节每个 VCG 下一复帧开始的时刻, 也 就是需要调用排序结果的时刻, 来保证所支持的全部 VCG 即使是同时到来或者相继到来, 依然能按时完成排序。
步骤 505 : 对各个 VCG 进行查询, 对已经编入等候队列的 VCG 依次进行成员排序 ;
该步骤只需要对进入排序流程的 VCG 进行成员排序即可。其中, 排序电路模块根 据排队队列依次对等候队列中的 VCG 进行排序 ;
在本实施例中, 如图 4(b) 所示, 根据步骤 503 的队列排序结果, k 个 VCG 排队的顺 序是 1、 ......、 k、 2, 则步骤 505 进行排序的 VCG 顺序也是 1、 ......、 k、 2。 先进行 VCG#1 的成 员排序, 排序结果是 SQ 为 0、 1、 2、 3、 4 的 5 个成员分别对应通道 9、 8、 6、 5、 7; 依次进行, 然后 进行 VCG#k 的排序, 排序结果是 SQ 为 0、 1、 2 的 3 个成员分别对应通道 i-2、 i、 i-1 ; ...... ; 最后进行 VCG#2 的排序, 排序结果是 SQ 为 0、 1、 2、 3 的 4 个成员分别对应通道 1、 4、 3、 2。
步骤 506 : 每个 VCG 排序结束后, 将排序结果存储到 RAM 中, 当满足所确定的排序 到调用排序结果的允许时间间隔时, 可查询排序结果, 其中, 成员次序恢复模块根据每个 VCG 的恢复序列号依次读取对应的 VC 通道, 完成成员排序的全部过程 ;
该步骤中, 满足所确定的排序到调用排序结果的允许时间间隔指 : VCG 的读方向 复帧帧头开始时间到达时, 读取排序结果, 其中, VCG 的读方向复帧帧头开始时间比该 VCG 的上一写方向复帧中最晚到达成员对应的子帧结尾时刻 ( 即该 VCG 最晚到达通道的复帧结 尾时刻 ) 至少延迟排序到调用排序结果的允许时间间隔。
在上述流程中, 步骤 504 中确定排序到调用排序结果的允许时间间隔可以是在步 骤 501 或 502 之前任一步操作, 即排序到调用排序结果的允许时间间隔也可以事先配置。
从上述实施例可以看出, 本发明技术方案用一个成员排序电路即可实现多 VCG 的 成员排序, 因此, 相比现有技术, 大大降低了多 VCG 情况下的硬件逻辑资源消耗。
总之, 本发明并不限于上述实施方式, 在不脱离本发明的精神和范围内, 任何熟悉 本技术领域的技术人员在本发明揭露的技术范围内, 可轻易想到的变化或替换, 都应该落 在本发明的保护范围之内。