ILP多级复接自适应同步技术
2009-04-20
作者:韩国栋 邬江兴
摘 要: 结合实用化综合业务接入系统内部标签分组(ILP)在系统中的传输与处理结构,针对ILP在系统中基于多总线背板传输的时延与同步问题,提出了一种实用的“一对多”背板总线传输的自适应bit位同步和ILP包同步解决方案和实现方法,并讨论了空闲字节(Idle Bytes)对业务承载效率的影响。
关键词: 系统内部标签分组(ILP) 多级复接 自适应 同步
系统内部标签分组(ILP:Inner-system Labeled Packet)传输与交换技术是国家“863”通信技术主题重大课题——“实用化综合接入系统研究与开发”课题的关键技术之一[5],目的在于实现基于“分组化环境和业务分类”条件下的接入段全带宽动态分配和利用,并充分保证实时业务的QoS(Quality Of Service)。实用化综合接入系统的ILP传输与分组化处理结构如图1所示。
图1中远端模块的话音用户接口完成对电路型载荷数据的分组化处理,封装相应的系统内部标签,形成标准话音数据输出缓冲区;数据用户接口完成对IP数据的解析处理、内部标签封装,并形成IP数据输出缓冲区。
局端模块的电话网接口完成对电路型载荷ILP的标签卸载处理,恢复相应的电路业务模式;数据网接口完成对数据型ILP的标签卸载,恢复IP净载荷数据,进入IP网。
系统的ILP分组流处理单元是系统基于内部标签分组(ILP)的输入输出核心处理单元,主要功能是完成系统内部传输带宽的动态分配、ILP分组的I/O调度和系统网管(NMS)的通道管理等。
1 问题的提出
系统的ILP分组流处理单元与其它接口板数据交互的实现,在硬件上采用“通用”背板总线技术(这里的“通用”是指系统的远端或局端除了ILP分组流处理单元以外的接口板的位置并不固定,是可以互换的)。并且,为满足系统大吞吐量(2.5Gbps以上)的要求,系统采用并行总线方式降低数据处理速率(考虑总线过宽导致系统成本上升,本系统背板采用32位同步总线,双向设计)。因此总线速率在40M可实现2.5Gbps吞吐能力,实际按60M总线速率设计。ILP分组流处理单元与其它模块间的接口及数据流向如图2所示,其中:
· S接口(无论在远端还是局端)都是ILP分组流处理单元与高速光传输接口板的ILP数据传输接口,包括数据总线、控制总线、地址选择总线、时钟及缓冲区充盈状态指示总线等。
· G接口在远端是ILP分组流处理单元面向各用户接入板的数据输入输出和总线控制接口,在局端是面向网络侧的数据输入输出和总线控制接口。G接口通过背板总线与各用户接入板、电路业务处理板或千兆以太网接口板相联。
· H接口是标准HDLC链路传输口,在远端用于实现模块网管主机与用户接入板、电路业务处理板之间的信令及网管业务连接。在局端用于实现模块网管主机与数据I/O调度和带宽动态分配单元之间的信令及网管业务连接。
由于ILP分组流处理单元对各业务接口板或传输板的访问都是通过“通用”背板总线进行的,而且这种访问是“一点对多点”、“多级驱动隔离”、“高速电气”交互式访问,因而板间数据和控制总线时延τ的不一致性必定存在(如图3所示),不可避免地会产生以下总线同步问题:
(1)由于板间总线的布局和路径不同,总线信号时延值τ存在离散性,因而“主从”结构背板总线数据传输的同步锁存时钟相位难以确定;
(2)控制和使能信号与数据总线信号在背板上传输时延的不确定性,造成数据读写和逻辑控制等同步操作可靠性差;
(3)板间进行连续的ILP包传输时,由于数据和控制总线时序逻辑的失步或偏差,当主板收到包结束标志时,下一操作指令或许已经有效(读写操作是连续进行的),对端下一包的头数据也可能已进入总线,因而造成包同步传输的失败(包首尾交迭或丢失);
(4)这种不同的访问时延在系统热备份切换或热插拔时表现出的不确定性更加严重。
2 多级复接时延的自适应匹配方法
为了解决背板总线多级复接自适应同步问题,笔者在ILP分组流处理单元设计中采用了基于ILP分组的时延自适应匹配技术(Self-adaptive Matching Technique),即ILP分组流处理单元在系统启动时对各个业务接口板或传输板的总线数据到达时延进行感知测试。通过一个所谓“学习——统计——设定”的单板总线时延训练过程,确定“主从”结构的总线传输时延参数。该时延参数在系统运行过程中可通过底层驱动软件或上层网管软件进行修正,以保证系统总线同步的可靠性。
ILP分组流处理单元的总线同步时延τ的训练测试包括系统自检(所有板外FIFO正常工作与否的测试)、各个功能处理模块的工作测试、时钟校正、发送与接收测试包等,主要过程如下:
(1)自学习过程(Self-learning Process)
系统启动时,ILP分组流处理单元接管全部对外数据和控制总线,调用按照系统内部标签包格式定义的系统自测ILP数据包,分别向各个业务接口、网络接口或传输接口子板发送,随时监视各子板的确认状态指示。若测试训练达106数据包仍未得到子板正确确认,则认为与该子板的“主从”发送训练工作失败,产生告警指示,工作流程如图4所示。
若ILP分组流处理单元得到子板确认信息,则进入从子板读取数据的测试训练流程,如图5所示。
图5中ILP分组流处理单元连续从子板中读取10个正确的ILP数据包,说明当前工作时钟相位准确,记录该时钟相位Φ和总线时延τ,进入系统工作主程序。若读到的ILP包不正确,则调整当前工作时钟相位(可取ΔΦ=π/4或π/2);若连续106不正确,认为与该子板的“主从”读取训练失败,产生告警指示。
各子板的测试训练工作流程如图6所示。首先各子板设定工作时钟初相位,检测主板向本板的“写”使能信号(WR),若收到的测试包不正确,则调整本板当前工作时钟相位(可取ΔΦ=π/4或π/2),继续监收测试包。若连续收到超过106个正常测试包,说明本板当前工作时钟相位准确,记录该时钟相位Φ和总线时延τ,发出确认状态。然后根据主板向本板的“读”使能信号(RD)向总线写入逆向测试包数据。
当子板收到退出测试训练指令时,进入本板工作主程序。
(2) 统计分析过程(Statistic & Analytic Process)
对自学习过程的测试结果Φ(x)和时延τ(x)进行统计分析(自学习过程采用error and re-try的方法),总结出不同的业务接口板、网络接口板以及传输接口板的时延参数,确定各接口板相应的工作时钟相位,形成统一的相位时延参数表项。
(3) 时延参数的设定
按照统计分析出的时延参数表项内容,通过底层驱动软件注册给ILP分组流处理单元的各处理模块、各子板处理模块。各模块的PFGA按此时延参数产生“读/写”或其它使能控制信号以及数据总线的同步锁存时钟相位,以保证ILP分组流处理单元与其它子板之间数据交互的同步和可靠。
此外,上层网管软件提供了专用的时延参数在线(in-process)修正接口,作为上层软件对系统运行可靠性的实时管理与控制措施之一。
3 ILP标签包的同步处理
对于ILP标签包的总线传输同步,常规做法是利用巴克码(Bark Code)同步序列,即在每个ILP之间插入一定数量的Bark码,但显然降低了数据承载效率。笔者在系统设计中充分利用了缓冲队列寄存器(FIFO)的34位数据总线的特点,简化了ILP包的首尾同步问题。具体的方式如下:
(1)系统背板或单板内传输的数据总线宽度为34位,其中32位作为有效ILP包数据总线,其余高两位可作为ILP包首尾标识,如图7所示。当最高两位为“10”时,指示该字为ILP包的头;当最高两位为“01”时,指示该字为ILP包结束;当最高两位为“00“时,指示该字为ILP包间字;当最高两位为“11”时,指示总线传输故障。
(2)由前面的讨论可知,由于数据和使能信号的背板总线传输时延存在不一致性,如果按常规的方法将一个ILP包的尾标志加注在数据流的末尾,有可能使板间包传输失步(ILP包首尾交迭或首尾丢失),即当ILP分组流处理单元读到当前ILP包的尾标志时,下一包的包头数据可能已由子板打入总线,而此时ILP分组流处理单元有可能已转去访问(轮循)其它子板。结果使原访问单元包头丢失,现访问单元包头错误,人为地造成包传输错误的发生。为此,本系统的ILP分组流处理单元采用了一种特殊的包尾指示方法,即包尾标识不直接放在ILP包的最后一个长字(32bit总线)上,而是把ILP包尾指示放在内部分组包的倒数第n个长字上:
n=[r·τ/ι]+1
其中τ为时延参数,r为总线速率,ι为长字bit数,[·]表示取最大整数。当子板发送出包尾指示后再发n个长字到数据总线,而主板收到包尾指示时再读n个长字结束该包,实现完整的包传输同步。
(3)为使“主从”结构总线传输双方都有更充分的时间来检测和处理内部标签包的首尾标志位,保证ILP包总线传输不产生首尾混迭,本系统除了采用以上阐述的特殊包尾标识技术外,还在包与包之间添加一定数目的空闲字节(Idle Bytes)。空闲字节的添加数m是在系统启动时进行自适应时延匹配训练过程中确定的,并且在系统的运行中可通过网管接口指令实现对m值的修改。
在高速背板总线连接系统中,由于模块间的连接关系是“一点对多点”、“多级驱动隔离”、“高速电气”交互式的总线接口关系,板间总线时延存在离散性,因此bit位同步和包同步是I/O操作的关键问题。对于bit位同步,本文讨论了系统中采用的“多级复接时延自适应匹配技术”,即系统起始时按半时钟周期为调节步长进行固定码字的bit同步训练,得到固定的时钟相位延迟,设置FPGA硬件实现bit同步;对于包传输同步,笔者在系统设计中充分利用了缓冲队列寄存器(FIFO)的34位数据总线的特点,简化了ILP包的头尾同步问题,即在背板或单板内传输的数据总线为34位,32位作为有效ILP包数据总线,其余高两位作为头尾标志。同时为了避免“主从”总线交换时发生ILP包首尾交迭现象,本文提出了一种特殊的尾标志添加技术和Idle字节隔离技术。
通过1999~2000年度国家“863”计划通信技术主题的重大课题“实用化综合接入系统研究与开发”(863-317-01-01-01-99)的研发实践,本文提到的多级复接自适应bit同步技术、“一对多”总线交换包同步技术是十分有效、可靠的。
但是,在ILP包之间引入空闲字节后,显然对系统的传输效率是有影响的,例如:
(1)对于话音业务。由于话音业务采用的是11个长字为一个内部标签包长度的,当ILP分组处理单元包加入太多的空闲字节(Idle Bytes)时,可能会抵销系统对接入的话音业务的压缩功效;
(2)对于极短IP包,也会出现同样的问题;
(3)对于较长内部标签包,这种技术显然是非常有效的一种方法。
参考文献
1 T.V. Lakshman, D. Stiliadis. High Speed Policy-based Packet Forwarding Using Efficient Multi-dimensional Range Matching in Proc. ACM SIGCOMM'98,1998;(9)
2 N. McKeown, M. Izzard, A. Mekkittikul. The Tiny Tera:A Packet Switch Core IEEE Micro.1998;(1-2): 26~33
3 Pankaj Gupta, Steven Lin. Nick MacKeown Routing Lookups in Hardware at Memory Access Speeds in Proc.Infocom'98, 1998
4 S. Nilsson, G. Karlsson. Fast Address Look-Up for Internet Routers in Proc.IEEE Broadband Communication'98,1998;(4)
5 韩国栋,邬江兴.宽带综合接入中的关键技术——IP技术.电信科学,2001;(2)