实现联合使用定时器功能的系统及其方法

文档序号:7595449阅读:208来源:国知局
专利名称:实现联合使用定时器功能的系统及其方法
技术领域
本发明涉及通信技术,特别涉及异步传输模式适配层类型2中实现联合使用定时器功能的技术。
背景技术
异步转移模式(Asynchronous Transfer Mode,简称“ATM”)是一种综合了电路交换和包交换优点的传输模式,能同时提供面向连接和面向非连接的服务,它一方面用有“标志的电路”代替“定位置的电路”,因而能灵活地分配带宽;另一方面取消了复杂的差错控制和流量控制,使传输时延大大降低。在ATM中,信息被组织成信元(cell),因包含来自某用户信息的各个信元不需要周期性出现,这种传输模式是异步的。
ATM信元,即ATM协议数据单元(Protocol Data Unit,简称“PDU”),简称ATM-PDU是固定长度的分组,共有53个字节,分为2个部分。前面5个字节为信头,主要完成寻址的功能;后面的48个字节为信息段,即业务数据单元(Service Data Unit,简称“SDU”),用来装载来自不同用户,不同业务的信息。话音,数据,图像等所有的数字信息都要经过切割,封装成统一格式的信元在网中传递,并在接收端恢复成所需格式。由于ATM技术简化了交换过程,去除了不必要的数据校验,采用易于处理的固定信元格式,所以ATM交换速率大大高于传统的数据网,如x.25,帧中继等。另外,对于如此高速的数据网,ATM网络采用了一些有效的业务流量监控机制,对网上用户数据进行实时监控,把网络拥塞发生的可能性降到最小,从而可以提供实时的传输服务。
图1是ATM简化的协议分层示意图。其中,ATM适配层(ATM AdaptationLayer,简称“AAL”)是具有多种应用的标准层,可将数据转换成ATM信元或将ATM信元转换为数据。ATM对不同业务提供不同的业务质量(Qualityof Service,简称“QoS”),它通过在AAL层采用ATM适配层类型1(AAL1)、ATM适配层类型2(AAL2)、ATM适配层类型3/4(AAL3/4)、ATM适配层类型5(AAL5)等不同适配层类型,以适应A级、B级、C级、D级四种不同的用户业务,业务描述如下A级即固定比特率业务,AAL1支持此业务,该业务支持面向连接的业务,其比特率固定,常见业务为64Kbit/s话音业务,固定码率非压缩的视频通信及专用数据网的租用电路。
B级即可变比特率业务,AAL2支持此业务,该业务支持面向连接的业务,其比特率是可变的。常见业务为压缩的分组语音通信和压缩的视频传输。该业务具有传递介面延迟物性,其原因是接收器需要重新组装原来的非压缩语音和视频信息。
C级即面向连接的数据服务,AAL3/4支持此业务。该业务为面向连接的业务,适用于文件传递和数据网业务,其连接是在数据被传送以前建立的。它是可变比特率的,但是没有介面传递延迟。
D级即无连接数据业务,常见业务为数据报业务和数据网业务。在传递数据前,其连接不会建立。AAL3/4或AAL5均支持此业务。
由于ATM的这些特点,在第三代移动通信(the 3rd Generation,简称“3G”)中,广范采用了基于ATM的接口,例如在3G标准之一的宽带码分多址(Wideband Code Division Multi-Access,简称“WCDMA”)中,比较成熟的R99版本的基站(NodeB)和无线网络控制器(Radio NetworkController,简称“RNC”)之间就采用基于ATM的Iub接口,RNC分别通过基于ATM AAL2的Iu-CS和AAL5的Iu-PS分别与核心网的电路交换和分组交换相连。
其中,在应用较多的AAL2中,将AAL2层分为如图2所示的几个子层。AAL2层包括会聚子层(Convergence Sublayer,简称“CS”)和公共部分子层(Common Part Sublayer,简称“CPS”),其中CS子层由与特定业务有关的会聚子层(Service-Specific Convergence Sublayer,简称“SSCS”)和公共部分会聚子层(Common Part Convergence Sublayer,简称“CPCS”)组成,CPS子层由CPCS子层和拆装(Segmentation And Reassembly,简称“SAR”)子层组成。在CPS子层最终生成的数据包,称之为CPS的PDU,即CPS-PDU。CPS子层主要是将CPS分组经过SAR处理,生成CPS-PDU,即ATM层的SDU,与ATM信元进行适配。CPS分组的格式如下图3所示。其中前三个字节是CPS分组的包头,后面为CPS分组的净荷,大小是1到45字节或64字节之间的任意长度。
AAL2各层数据处理过程如图4所示。CPS子层从SSCS子层接收CPS业务数据单元,即CPS-SDU,在此基础上增加CPS分组的包头(PacketHeader,简称“PH”),即CPS-PH,生成CPS分组。一个ATM信元的SDU长度固定为48字节。一个CPS分组不能对应一个ATM信元,如果将短的CPS分组放入一个ATM信元发送则效率太差,一个长的CPS分组则不能放在一个ATM信元中发送。
AAL2协议中规定了在CPS子层进行复用处理,即将多个AAL2信道的CPS分组复用到一个ATM信元中传输,或将一个CPS分组放到多个ATM信元中传输。通过复用实现了将承载在同一条永久虚电路(Permanent VirtualCircuit,简称“PVC”)中的来自不同或相同的AAL2用户的CPS分组经过SAR处理复用到ATM信元中,在接收方又进行相反的处理过程,将ATM信元中承载的CPS分组经过SAR处理解复用为单个AAL2用户数据包CPS分组。
如图4所示,在CPS子层,CPS分组被复用为CPS-PDU,即48字节长的ATM-SDU。其中CPS-PDU包括一个字节的开始域包头(Start Field PackageHeader,简称“STF-PH”)和CPS-PDU负载。
AAL2协议中CPS分组的复用过程如图5所示。
如果当前的CPS分组不能填满一个ATM信元,即长度不够一个CPS-PDU的48字节长度,则需要填充。为了提高带宽使用效率,则需要等待新的CPS分组到达,将剩余部分填满,然后再发送,这样处理可以保证所有的信元没有填充字节,带宽利用率高,但无限期的等待,将大大增加AAL2包处理的延时,甚至造成无限时间的等待。由于AAL2一般承载对延时比较敏感的实时业务,对延时的要求较高,要求数据包在尽可能早的时间内发送出去。为了保证延时不太大,必然要求在没有新的CPS分组到达时将剩余部分填充,然后发送出去。这样做保证了延时的要求,却导致带宽利用率太低。为了解决这个矛盾,AAL2协议中规定了一个联合使用定时器,即Timer_CU。预先设定一个定时器超时周期,遇到需要填充的情况时,先启动定时器等待,在定时器超时之前,如果有新的数据包到达,则将新的数据复用到CPS-PDU中,填满后发送。如果定时器超时,还没有新的数据到达,则填充发送。
现有的实现Timer_CU的技术方案主要有两种,下面分别介绍。
技术方案一给每条AAL2的虚通道(Virtual Channel,简称“VC”),设置一个定时器,如果需要等待时,则启动相应的VC定时器,定时器超时后,通知发送模块发送。
技术方案二只采用一个所有的VC公用的定时器。按照一定的精度,做一个分级的链表,在需要启动定时器时,将超时周期在同一个范围内的所有VC都写在一个表中,不在同一级的,按照精度计算出应属于那一级表,就写到指定的表中。然后用软件去轮询一个计数器,等待时间达到精度值后,去处理掉当前等级的表中的所有VC,即通知发送,然后又进入等待。其中,轮询计数器的方法也可以采用定时中断代替。
在实际应用中,上述方案存在以下问题方案一若采用硬件实现,复杂度很高,如果采用软件实现,则有可能造成系统的瘫痪,难以保证精度;方案二不易实现较高的定时精度,在某些情况下无法正确处理,如果要求精度较高,则需要较多内存,会引起系统性能的下降,而且该方案难以做到稳定可靠。
造成这种情况的主要原因在于,采用方案一需要设置很多定时器,当系统支持的VC数量很大时,定时器的数量也是非常庞大,而当前的通信系统中一般都是高集成度,要求支持的AAL2类型VC一般在成千条之多,甚至更多,采用硬件实现的复杂度很高,采用软件实现则可能导致处理器在这么多的定时器中断下瘫痪,难以保证精度。
采用方案二的定时精度是由分级链表的时间间隔决定,因此对于每个条VC的定时精度不可能很高。如果Timer_CU的周期接近或等于该精度值,而且数据包的间隔也接近时,将不能正确处理。该方案中每一级链表中都要能够存放所有的VC,这样导致链表非常庞大,如果要求精度较高,VC数量很大时,将消耗非常多的内存,而访问这么多的内存,也会引起性能的下降。用软件来处理这个链表,代码将非常复杂,代码量也较多,难以做到稳定可靠。

发明内容
有鉴于此,本发明的主要目的在于提供一种实现联合使用定时器功能的系统及其方法,使得在AAL2中实现Timer_CU既保证定时的精度和稳定性,又能简化代码的编写,减小系统资源的消耗,增加系统的稳定性。
为实现上述目的,本发明提供了一种实现联合使用定时器功能的系统,在异步传输模式适配层类型2中使用,包含分组队列,用于以队列的形式按照不同的虚通道在缓冲区内存储待发数据,管理虚通道的联合使用定时器调度标志和出列调度标志;
队列管理模块,用于接收新数据包,管理所述分组队列,依据接收到的调度和所述分组队列中的出列标记协调所述系统中其他模块协同工作;流量控制模块,用于处理所述队列管理模块的调度,计算调度时刻并决定是否使用联合使用定时器;发送处理模块,用于进行超时的判断,生成并发送公共部分子层协议数据单元,根据处理结果生成并发送调度,并在没有数据发送时申请使用联合使用定时器。
其中,所述系统的调度包含发送调度、出列调度和联合使用定时器调度,分别通过设定调度中的发送标志、出列标志和联合使用定时器调度标志实现;其中,所述发送调度不对所述分组队列进行操作、只进行发送处理;所述出列调度从所述分组队列中出列待发数据给所述发送处理模块处理;所述联合使用定时器调度在当前虚通道没有待发数据但当前虚通道的公共部分子层协议数据单元还没有完成时启动联合使用定时器,在有新的待发数据时从当前虚通道队列中出列新的待发数据给所述发送处理模块处理。
所述队列管理模块为每个虚通道保存一个描述符,所述描述符用来记录的内容包括队列中缓冲区链的首指针、缓冲区队列中缓冲区链的末指针、数据包个数、出列调度标志和联合使用定时器调度标志。
连接所述发送处理模块和所述队列管理模块的两个方向的接口、连接所述队列管理模块和所述流量控制模块的两个方向的接口中的信息包含异步传输模式适配层类型,虚通道的索引编号,发送调度标志,出列调度标志和联合使用定时器调度标志。
所述队列管理模块向所述发送处理模块发送消息的接口中的信息还包含最多5个队列缓冲区描述符的指针。
待发数据在所述分组队列中以队列形式存储在缓冲区中,每个所述缓冲区中存放的数据少于一个公共部分子层协议数据单元所需要填充的数据。
每个所述缓冲区存放10个字节的数据。
本发明还提供了一种队列管理模块接收来自其它模块的调度和上层的数据包并进行处理的方法,所述队列管理模块的处理流程包含以下步骤A接收并处理流量控制模块的调度,依照调度类型进行缓冲区出列操作,根据缓冲区出列操作的结果构造调度并发送给其他所述模块;B接收并处理发送处理模块的调度,依照调度类型进行分组队列中标志的管理,并构造调度发送给其它所述模块;C接收来自上层的数据包并入列到所述分组队列,管理所述分组队列中的标志,构造并发送出列调度。
其中,所述步骤A还包含以下子步骤A1根据接收到的调度判断当前虚通道类型是否为异步传输模式适配层类型2,如果是则继续,否则直接按照其它适配层类型处理后结束所述步骤A;A2若调度的类型是联合使用定时器调度,则进行联合使用定时器调度处理;A3若调度的类型是发送调度,则构造发送调度并发送给所述发送处理模块;A4若调度的类型是出列调度,则进行出列调度处理。
步骤A2还包含以下子步骤A21判断当前虚通道的出列标志是否有效,如果是则进入步骤A22,否则构造超时调度发送给所述发送处理模块后结束所述步骤A2;A22从当前虚通道的队列中出列缓冲区,并判断是否出列成功,如果是则构造发送调度发送给所述发送处理模块后结束所述步骤A2,否则构造超时调度发送给所述发送处理模块后结束所述步骤A2。
步骤A4还包含以下子步骤A41判断当前虚通道的出列标志是否有效,如果是则进入步骤A42,否则进入步骤A44;A42从当前虚通道的队列中出列缓冲区,并判断是否出列成功,如果是则进入步骤A43,否则进入步骤A44;A43构造调度发送给所述发送处理模块后结束所述步骤A4;A44构造发送调度发送给所述发送处理模块后结束所述步骤A4。
所述步骤B还包含以下子步骤B1判断调度是否是发送调度,如果是则进入步骤B6,否则进入步骤B2;B2判断调度是否是联合使用定时器调度,如果是则进入步骤B3,否则进入步骤B4B3设置当前虚通道的联合使用定时器调度标志和出列调度标志,接着进入步骤B6;B4判断当前虚通道是否有出列标志,如果有则结束,否则进入步骤B5;B5设置当前虚通道的出列调度标志,接着进入步骤B6;B6构造调度并发送给所述流量控制模块后结束所述步骤B。
所述步骤C还包含以下子步骤C1接收新数据包并判断是否是异步传输模式适配层类型2,如果是则进入步骤C2,否则按其它类型处理后结束所述步骤C;C2判断当前虚通道的队列是否为空,如果是则进入步骤C3,否则进行入列操作后结束所述步骤C;C3判断当前虚通道是否有出列调度标志,如果有则进行入列操作,否则进入步骤C4;C4进行入列操作,构造出列调度,设置当前虚通道的出列调度标志并向所述流量控制模块发送出列调度后结束所述步骤C。
本发明还提供了一种流量控制模块接收来自队列管理模块的调度并进行处理的方法,包含以下步骤D判断从所述队列管理模块得到调度是否为发送调度或者出列调度,如果是则按当前虚通道的流量参数,进行正常的调度,否则进入步骤E;E根据当前虚通道的流量参数和联合使用定时器配置参数,计算正规调度和联合使用定时器调度的具体时刻,并判断联合使用定时器调度时刻是否比正规调度晚,如果是则进入步骤F,否则进入步骤G;F先构造出列调度,再构造联合使用定时器调度并发送给所述队列管理模块;G构造联合使用定时器调度并发送给所述队列管理模块。
本发明还提供了一种发送处理模块接收来自队列管理模块的调度并进行处理的方法,所述发送处理模块的处理流程包含以下步骤H判断从所述队列管理模块中接收的调度是否为联合使用定时器调度,如果是则进入步骤I,否则进入步骤K;I停止联合使用定时器并判断是否超时,如果是则进入步骤J,否则暂存新缓冲区并构造公共部分子层协议数据单元发送后进入步骤L;J判断当前虚通道是否还有数据可以发送,如果有则返回步骤H,否则停止联合使用定时器并填充公共部分子层协议数据单元发送后返回步骤H;
K若是发送调度则构造公共部分子层协议数据单元发送后进入步骤L,否则暂存从所述队列管理模块传来的缓冲区并构造公共部分子层协议数据单元发送后进入步骤L;L依据构造公共部分子层协议数据单元的结果构造调度。
其中,步骤L还包含如下子步骤L1判断是否填满一个公共部分子层业务数据单元,如果是则进入步骤L2,否则进入步骤L3;L2判断暂存缓冲区是否小于五个,如果是则构造出列调度,否则构造发送调度;L3判断是否已经启动联合使用定时器,如果是则构造出列调度,否则构造联合使用定时器调度;L4向所述队列管理模块发送调度后结束所述步骤L。
本发明还提供了一种实现联合使用定时器功能的系统,在异步传输模式适配层类型2中使用,包含分组队列,用于以队列的形式按照不同的虚通道存放公共部分子层协议数据单元;队列管理模块,用于管理所述分组队列,发送调度请求消息,并在得到调度响应消息后发送一个公共部分子层协议数据单元;流量控制模块,用于在收到联合使用定时器定时请求消息后开始定时,接收所述调度请求消息并响应所述调度响应消息,在超时时发送联合使用定时器超时响应消息;发送处理模块,用于管理联合使用定时器标志和虚通道,构成公共部分子层协议数据单元,发送协议数据单元消息给所述队列管理模块,在没有数据时发送所述联合使用定时器定时请求消息。
其中,所述协议数据单元消息、所述调度请求消息、所述调度响应消息、所述联合使用定时器超时响应消息和所述联合使用定时器定时请求消息包含区分不同的虚通道的虚通道编号。
所述公共部分子层协议数据单元消息还包含公共部分子层协议数据单元缓冲区指针。
所述联合使用定时器定时请求消息还包含联合使用定时器定时周期。
本发明还提供了一种队列管理模块管理分组队列并发送公共部分子层协议数据单元的方法,包含以下步骤M获取所述协议数据单元消息,将公共部分子层协议数据单元入列,并发送所述调度请求消息;N获取所述调度响应消息,进行出列操作并在当前虚通道队列为空是发送所述调度请求消息。
其中,所述步骤M还包含如下子步骤M1从所述发送处理模块获取所述协议数据单元消息并判断所述公共部分子层协议数据单元消息所对应的虚通道是否已经发送调度请求消息,如果是则进入步骤M3,否则进入步骤M2;M2构造所述调度请求消息发送给所述流量控制模块后进入步骤M3;M3将所述公共部分子层协议数据单元消息入列到所述分组队列的当前虚通道队列。
所述步骤N还包含如下子步骤N1从所述流量控制模块获取所述调度响应消息;N2从所述分组队列的当前虚通道队列出列一个公共部分子层协议数据单元并发送;
N3判断所述分组队列的当前虚通道队列是否为空,如果是则构造所述调度请求消息并发送给所述流量控制模块后结束所述步骤N,否则直接结束所述步骤N。
本发明还提供了一种流量控制模块进行定时管理和发送调度管理的方法,包含以下步骤O获取所述联合使用定时器定时请求消息并管理调度时间队列;P获取所述调度请求消息并管理所述调度时间队列,在所述调度时间队列中有所述联合使用定时器调度时发送所述联合使用定时器超时响应消息。
其中,所述步骤O还包含如下子步骤O1判断从所述发送处理模块获取所述联合使用定时器定时请求消息是否成功,如果是则进入步骤O2,否则结束步骤O;O2计算当前虚通道的超时时间并将联合使用定时器调度写入所述调度时间队列。
所述步骤P还包含如下子步骤P1从所述队列管理模块获取所述调度请求消息,计算发送时间并写入所述调度时间队列;P2读取所述调度时间队列,并判断所述调度时间队列中是否有所述联合使用定时器调度,如果是则构造并向所述发送处理模块发送所述联合使用定时器超时响应消息后进入步骤P3,否则直接进入步骤P3;P3构造并向所述队列管理模块发送所述调度响应消息。
本发明还提供了一种发送处理模块构成公共部分子层协议数据单元的方法,包含以下步骤Q判断所述发送处理模块获取新的数据包是否成功,如果是进行异步传输模式适配层协议处理,否则进入步骤R;R获取所述联合使用定时器超时响应消息并进行联合使用定时器超时的处理。
其中,所述步骤Q还包含以下子步骤Q1若所述发送处理模块获取新的数据包成功则进行异步传输模式适配层协议处理后进入步骤Q2,否则结束所述步骤Q;Q2判断是否能够构成完整的公共部分子层协议数据单元,如果是则进入步骤Q3,否则进入步骤Q4;Q3清除当前虚通道的联合使用定时器标志,构造并向所述队列管理模块发送所述协议数据单元消息后结束所述步骤Q;Q4判断当前虚通道是否启动联合使用定时器标志,如果是则结束所述步骤Q,否则设置当前虚通道的联合使用定时器标志并向所述流量控制模块发送所述联合使用定时器定时请求消息后结束所述步骤Q。
所述步骤R还包含以下子步骤R1从所述流量控制模块获取所述联合使用定时器超时响应消息并判断当前虚通道的所述联合使用定时器标志是否未被清除,如果是则填充发送当前虚通道的公共部分子层协议数据单元并清除当前虚通道的所述联合使用定时器标志后进入步骤R2,否则直接进入步骤R2;R2判断当前虚通道的数据包是否处理结束,如果是则不获取新的数据包并继续处理直至当前虚通道的数据包完全处理结束,否则结束所述步骤R。
通过比较可以发现,本发明的技术方案与现有技术的区别在于,本发明方案利用了网络处理器中的多个微处理器阵列的特点,结合ATM流量控制的调度模块,通过预先定义了格式的消息在各个独立的微处理器控制的模块间进行信息的交互,在几乎不写任何代码的情况下,完全实现Timer_CU的功能。
这种技术方案上的区别,带来了较为明显的有益效果,即本发明不但完全实现了Timer_CU的功能,而且编写代码的工作量大大减小,使得系统的开发周期大大缩短,节约了系统的成本,同时本发明不增加任何内存的消耗和处理器时间的浪费,保证非常高的精度和系统的稳定性。


图1为简化的ATM协议分层示意图;图2为AAL2协议的分层结构图;图3为CPS分组格式的示意图;图4为AAL2各子层的数据处理过程;图5为AAL2协议中CPS分组的复用过程;图6为根据本发明方案一的一个较佳实施例的在AAL2中实现Timer_CU功能的系统组成示意图;图7为根据本发明方案一的一个较佳实施例的在AAL2中实现Timer_CU功能的系统的流量控制模块的工作流程图;图8和图9为根据本发明方案一的一个较佳实施例的在AAL2中实现Timer_CU功能的系统的队列管理模块的工作流程图;;图10为根据本发明方案一的一个较佳实施例的在AAL2中实现Timer_CU功能的系统的发送处理模块的工作流程图;图11为根据本发明方案二的一个较佳实施例的在AAL2中实现Timer_CU功能的系统组成示意图;图12为根据本发明方案二的一个较佳实施例的在AAL2中实现Timer_CU功能的系统的队列管理模块的工作流程图;
图13为根据本发明方案二的一个较佳实施例的在AAL2中实现Timer_CU功能的系统的流量控制模块的工作流程图;图14为根据本发明方案二的一个较佳实施例的在AAL2中实现Timer_CU功能的系统的发送处理模块的工作流程图。
具体实施例方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述。
本方案的实现思想如下本方案利用网络处理器中的多个微处理器阵列的特点,各个模块进行并行的处理,通过模块连接的接口中的信息,结合ATM流量控制的调度模块完全实现Timer_CU功能。
根据上述发明构思,有两种方案都可以实现在AAL2中实现Time_CU功能。两种发明方案的系统组成在系统模块的连接和接口定义上稍有不同,相应的流程也不同,为了便于理解,下文分别以发明方案一和发明方案二来区别。
发明方案一中,网络处理器中几个单独的微处理器并行处理,这些微处理器所控制的不同模块之间通过高速接口缓冲区进行通信以交换消息。在发送的消息中设置发送标志S、出列标志D和Timer_CU调度标志T,通过这些标志判断是何种类型的调度消息,各模块通过调度消息的类型来决定相应的操作,例如从队列中出列缓冲区操作、Timer_CU超时操作等。
下面结合本发明的较佳实施例来说明本发明方案一。
根据本发明方案一的一个较佳实施例的实现Timer_CU功能的系统组成和连接方式如图6所示。
实现Timer_CU功能的发明方案一的系统包含如下模块分组队列11,队列管理模块12,流量控制模块13,发送处理模块14,ATM模块15。
上述各个模块之间通过接口缓冲区交互信息。其中,发送处理模块14通过高速接口A缓冲区向队列管理模块12发送消息;队列管理模块12通过接口B缓冲区向发送处理模块14发送消息;队列管理模块12通过接口C缓冲区向流量控制模块13发送消息;流量控制模块13通过接口D缓冲区向队列管理模块12发送消息;队列管理模块12从接口E缓冲区中接收来自AAL2上层协议或其它模块的数据包。
在发明方案一的一个较佳实施例中,整个处理过程包含三种调度消息发送调度、出列调度和Timer_CU调度,分别通过设置消息中的发送标志S、出列标志D和Timer_CU调度标志T实现。下面结合各个模块说明几种调度消息。
发送调度指不对分组队列11进行操作的调度,只进行发送处理;出列调度是指需要从分组队列11中出列缓冲区给发送处理模块14处理的调度;Timer_CU调度指该VC中的所有包都已经发送完,没有新的数据可以处理,但当前的CPS-PDU还没有完成,此时启动Timer_CU并发出的等待调度,如果有新的缓冲区在队列中该调度也需要从VC队列中出列一个新的缓冲区给发送处理模块14处理。
下面说明各个接口缓冲区中的消息结构。
接口A中的消息结构如下表

接口B中的消息结构如下表


接口C中的消息结构如下表

接口D中的消息结构如下表

接口E中的消息结构如下表

在本发明方案一的具体实施时,还涉及到VC队列描述符QD,VC队列描述符QD的结构如下表

在本发明方案一的一个较佳实施例中,各消息中的标志S为1表示发送调度消息,D为1表示出列调度消息,T为1表示Timer_CU调度消息。VCIndex表示该消息要调度的VC索引编号,取AAL2类型的VC范围内的值。接口B中的Buffer Handle表示缓冲区描述符的指针,为0表示空,不为0表示有效的缓冲区,出列的缓冲区从1开始按顺序填,不足5个时,后边的清0。AAL Type表示此VC的AAL类型,包括AAL0、AAL1、AAL2、AAL5等,分别取值0、1、2、5。
分组队列11用来以队列的形式存放来自其他模块或上层协议的数据包。分组队列11是按照VC管理的,每条VC一个队列,数据以包为单位,每个包可能占多个缓冲区,这些缓冲区依次串起来,存放着每个包的每个缓冲区描述符的地址及其他必要信息,用VC队列描述符QD加以描述。其中,队列中每个缓冲区所存的数据包都比较小,每个缓冲区中存放的数据都不足以填满一个信元。例如,在本发明方案一的一个较佳实施例中,每个缓冲区存放的数据为10字节。
队列管理模块12用来将接收的待发分组存入分组队列11并在适当时候将缓冲区的数据出列,设置或清除VC队列中消息中的标志位,从各个接口缓冲区接收调度消息并做相应的处理,管理各种调度并通过各个接口缓冲区向相应的模块发送按照各个接口预先定义的调度消息。例如,在本发明方案一的一个较佳实施例中,一个新的数据包从接口E缓冲区到达队列管理模块12,队列管理模块12将该包的所有缓冲区放到分组队列11中,即进行入列操作。如果该VC的队列由空变为非空,并且队列中没有出列标志D,则通过接口C缓冲区向流量控制模块13发送一个出列调度请求,并在VC队列中设置出列标志D;如果VC队列原来就为非空,或者队列中有出列标志D,则只进行入列操作。又例如,在本发明方案一的一个较佳实施例中,队列管理模块12接收接口D缓冲区中的消息,如果是发送调度,则通过接口B缓冲区发送调度消息给发送处理模块14。如果是出列调度消息,则检查分组队列11中存储的出列标志D,如果没有,则构造发送调度消息给发送处理模块14;如果有,则从分组队列11中出列最多五个新的缓冲区,和调度消息一起通过接口B缓冲区传递给发送处理模块14,并清除VC队列描述符QD中的出列标志D。如果出列新缓冲区失败,说明VC队列是空的,没有新数据包到达,则清除QD中的出列标志D,并构造发送调度消息给发送处理模块14。队列管理模块12从接口A缓冲区中接收发送处理模块14的请求消息,如果是发送调度,就通过接口C缓冲区转给流量控制模块13,进行新的调度处理。如果是出列调度,且VC队列的QD中没有出列标志D,就在VC队列的QD中设置出列标志D,然后发送出列调度请求给流量控制模块13,进行调度处理;如果QD中已有出列标志D,则丢弃该调度请求。如果是Timer_CU调度请求T,队列管理模块12在VC队列QD中设置Timer_CU标志T和出列标志D,然后发送Timer_CU调度请求给流量控制模块13。
流量控制模块13负责从接口C缓冲区中接收消息并根据消息的内容进行相应的处理,或在完成相应的调度时刻的计算后根据计算结果构造相应的调度消息发送。在本发明方案一的一个较佳实施例中,流量控制模块13从接口C缓冲区中得到请求消息后,如果是发送调度请求或者出列调度请求,则按该VC的流量参数,进行正常的调度。如果是Timer_CU调度请求消息,必须根据该VC的流量参数和Timer_CU定时器配置参数,计算出正规调度和Timer_CU调度两个调度的具体时刻,如果两个调度消息的时刻重叠,或者Timer_CU调度时刻比正规的调度时刻早,则执行一次Timer_CU调度。否则说明Timer_CU调度时刻比正规的调度时刻晚,则当作出列调度和Timer_CU调度两次处理,即先做一次出列调度,再做一次Timer_CU调度。
发送处理模块14负责从接口B缓冲区中接收调度消息,对缓冲区中的数据进行AAL2的协议处理以生成CPS-PDU并提交ATM模块15处理,根据处理结果通过接口A缓冲区向队列管理模块12发送相应的调度请求。在本发明方案一的一个较佳实施例中,如果在对缓冲区中的数据进行AAL2的协议处理时发现该缓冲区没有处理完,则通过接口A缓冲区向队列管理模块12发送新的发送调度请求。如果当前缓冲区已经处理完,暂存的缓冲区少于五个,则通过接口A缓冲区发送出列调度请求。如果该VC没有数据可发送,暂存的缓冲区已经处理完,说明下次没有数据可发送,就通过接口A缓冲区发送Timer_CU调度请求。又例如,在本发明的一个较佳实施例中,发送处理模块14接收到调度消息后,如果处于Timer_CU的等待周期中,且从接口B缓冲区中得到带有新的缓冲区的Timer_CU调度或出列调度,则进行发送处理。如果是Timer_CU超时调度,且当前VC没有数据可发送,则将CPS-PDU用0填充满后给ATM模块15处理,如果当前VC有可发送的数据,则直接退出Timer_CU等待周期。如果不处于Timer_CU的等待周期中,则进行正常调度处理,分为发送调度和出列调度,发送调度就从当前缓冲区中发送一个信元,出列调度就将消息中的缓冲区更新为当前缓冲区,发送一个信元。如果在Timer_CU调度中出现数据不够发一个完整的CPS-PDU,则发送出列调度消息给队列管理模块12。
ATM模块15负责接收发送处理模块14处理后的CPS-PDU并进行相应的ATM层的处理。此模块和通用的ATM层的模块完全相同,在此不多说明。
本发明方案一的一个较佳实施例的实现Timer_CU功能的系统中,流量控制模块13的工作流程图如图7。该模块由独立的微处理器控制其工作并完成如下的流程首先进入步骤110,调度当前时隙并通过接口D缓冲区向队列管理模块12发送调度消息。其中,在本发明方案一的一个较佳实施例中,当前时隙和所发送调度消息的类型已经由流量控制模块13根据相应的规则确定。
接着进入步骤110,从接口C缓冲区中读取调度请求消息。在本发明方案一的一个较佳实施例中,如上述接口C中的消息结构表所示,从接口C缓冲区中读取的调度请求消息包含了VC的类型,发送调度消息、出列调度消息和Timer_CU调度消息的标志等信息,下面各步骤的处理就是根据接收到消息的这些信息来进行相应的处理。
接着进入步骤120,判断VC的类型是否为AAL2,如果是则进入步骤160,否则进入步骤130。在本发明方案一的一个较佳实施例中,只对AAL2使用Timer_CU,因此主要对AAL2进行处理。
在步骤130中,读取VC的流量参数。在本发明方案一的一个较佳实施例中,每个VC的流量参数都是根据该VC的业务和用户请求的不同事先设定好,在读取时只需要在表中查找即可。接着进入步骤140。
在步骤140中,计算峰值信元速率(Peak Cell Rate,简称“PCR”)或者平均信元速率(Sustained Cell Rate,简称“SCR”)调度的时刻。其中,按照PCR还是SCR来计算调度时刻取决于系统的配置。接着进入步骤150。
在步骤150中,构造调度消息。在本发明方案一的一个较佳实施例中,本步骤根据计算出的PCR或SCR时刻来进行正常的调度,该调度消息构造后的格式如接口D缓冲区中的消息结构。接着进入步骤220。
在步骤160中,读取VC的流量参数和Timer_CU参数。在本发明方案一的一个较佳实施例中,VC的流量参数和Timer_CU参数由该VC所承载的业务和用户的请求事先决定。接着进入步骤170。
在步骤170中,判断调度消息是否为Timer_CU调度,如果是则进入步骤180,否则进入步骤140。在本发明方案一的一个较佳实施例中,本步骤的判断通过从接口C缓冲区中接收的消息中的Timer_CU调度标志T来判断,如果T为1则为Timer_CU调度。
在步骤180中,计算PCR或SCR调度和Timer_CU调度的时刻。在本发明方案一的一个较佳实施例中,这些调度的时刻都是由当前VC的一些参数决定。接着进入步骤190。
在步骤190中,判断Timer_CU调度是否在PCR或SCR调度之后,如果是则进入步骤200,否则进入步骤210。在本发明方案一的一个较佳实施例中,如果Timer_CU调度时刻早于或等于PCR或SCR调度时刻,则说明进行Timer_CU调度之后才会出现PCR或SCR调度,因此构造的调度消息中只需要Timer_CU调度而不需要出列调度,否则两个调度均需要。
在步骤200中,构造Timer_CU调度消息和出列调度消息。在本发明方案一的一个较佳实施例中,Timer_CU调度消息和出列调度消息的构造通过设置相应的标志T和D来实现。接着进入步骤220。
在步骤210中,构造Timer_CU调度消息。在本发明方案一的一个较佳实施例中,Timer_CU调度消息的构造通过设置相应的标志T来实现。接着进入步骤220。
在步骤220中,将调度消息写入调度队列的时隙。接着进入步骤100。在本发明方案一的一个较佳实施例中,步骤220中要写入的调度消息已经由前面一些步骤根据相应的规则构造好,例如步骤150、步骤210和步骤220中均进行调度消息构造的处理。
在流量控制模块13的微处理器的控制下,这些步骤周而复始完成流量控制模块13的处理流程。
本发明方案一的一个较佳实施例的实现Timer_CU功能的系统中,队列管理模块12处理流程如图8和图9。该模块由其模块中的微处理器控制其工作并完成如下的流程首先进入步骤300,从接口D缓冲区中读取调度消息。在本发明方案一的一个较佳实施例中,接口D缓冲区中的调度消息由流量控制模块13发出,具体可以参照前面流量控制模块13的处理流程,该调度消息的结构为接口D中的消息结构,包括VC类型,调度消息等信息。
接着进入步骤310,判断VC类型是否为AAL2,如果是则进入步骤320,否则进入步骤470。在本发明方案一的一个较佳实施例中,由于只是对AAL2进行Timer_CU的相关操作,因此如果VC类型不是AAL2则直接按照其它类型进行处理,即进入步骤470。
在步骤320中,判断是否是Timer_CU调度,如果是则进入步骤330,否则进入步骤380。在本发明方案一的一个较佳实施例中,该步骤的判断通过检测从接口D缓冲区中读取调度消息的Timer_CU调度标志T来确定。
在步骤330中,从VC队列的VC队列描述符QD中读取Timer_CU标志和出列标志。在本发明方案一的一个较佳实施例,QD的结构如前所述,其中Timer_CU标志和出列标志分别用T和D表示。接着进入步骤340。
在步骤340中,判断是否有出列标志,如果有则进入步骤350,否则进入步骤370。在本发明方案一的一个较佳实施例中,在该步骤中如果没有出列标志,则表示不需要进行出列操作。
在步骤350中,从VC队列中出列最多5个缓冲区。需要说明的是,在本发明方案一的一个较佳实施例中,由于每个缓冲区中存放的数据都不足以发送一个信元,这时,就导致每个信元发送都要进行多次调度。从整体看来,即使数据足够多,都在VC的队列中,VC的速率也会降低。如果每个缓冲区中存放的数据都很少,假如只有10字节左右,每个信元需要约4次调度才能发送出去,这样的结果是VC的速率降低为五分之一。缓冲区中的数据越少,则降低越多。为了避免这种问题发生,在本发明的一个较佳实施例中,在队列管理模块12中,每次出列操作时,从队列中最多取出5个缓冲区,如果队列中的缓冲区数少于5个,则有几个取几个,通过高速接口缓冲区环B传递给发送处理模块14。发送处理模块14在发现缓存的缓冲区数少于5个,或者剩余可发送的字节数不够一个信元时,就向队列管理模块12发送出列调度请求。这样处理后,可以大大减少对VC队列的出列操作次数,将大部分出列调度转为简单的发送调度,减少了队列管理模块12的负担。并保证了VC的速率不会下降。接着进入步骤360。
在步骤360中,判断是否获得新的缓冲区,如果是则进入步骤440,否则进入步骤370。在本发明方案一的一个较佳实施例中,该步骤即判断VC队列中是否还有数据,如果没有则标明当前的一个信元还没有填满,但已经没有数据可以填充。
在步骤370中,构造Timer_CU超时消息。因为此时Timer_CU标志和出列标志都有效,而出列不成功,因此Timer_CU超时,需要构造Timer_CU超时消息。接着进入步骤460。
在步骤380中,判断是否是出列调度,如果是则进入步骤390,否则进入步骤440。在本发明方案一的一个较佳实施例中,该判断通过接口D中消息的出列标志D来判断,如果D是1则是,否则不是。
在步骤390中,从VC队列的QD中读取出列标志。接着进入步骤400。需要说明的是,此处所读取的标志为VC队列QD中的出列标志而非接口D中消息的出列标志。
在步骤400中,判断是否有出列标志,如果有则进入步骤410,否则进入步骤430。此处判断的出列标志也是VC队列QD中的出列标志,在本发明方案一的一个较佳实施例中,以1表示有出列标志。
在步骤410中,从VC队列中出列最多5个缓冲区。该步骤若成功会将分组队列11中的缓冲区出列至多5个发送到接口B缓冲区。接着进入步骤420。
接着进入步骤420,判断是否获得新的缓冲区,如果有则进入步骤440,否则进入步骤430。该步骤即判断出列操作是否成功,即VC队列中是否还有数据可以出列。
在步骤430中,将出列调度改为发送调度,构造发送调度消息。该步骤构造的消息将通知发送处理模块14进行发送调度的相关操作。接着进入步骤450。
在步骤440中,构造发送调度消息。接着进入步骤450。
在步骤450中,通过接口B缓冲区发送调度消息给发送处理模块14。本步骤发送的调度消息由前面的步骤构建。接着进入步骤460。
在步骤460中,从接口A缓冲区中读取发送处理模块14的请求消息。在本发明方案一的一个较佳实施例中,接口A缓冲区中的数据格式如前所述。接着进入步骤480。
在步骤470中,按照其它类型处理。在本发明方案一的一个较佳实施例中,只有AAL2的处理和公知的方法不同,其它类型的处理方法相同。接着进入步骤550。
在步骤480中,判断是否为Timer_CU调度请求,如果是则进入步骤490,否则进入步骤500。该判断同样是根据接口A中接收的消息的Timer_CU标志来判断,在本发明方案一的一个较佳实施例中,Timer_CU标志T为1表示是Timer_CU调度。
在步骤490中,在VC队列的QD中设置Timer_CU调度标志和出列调度标志。在本发明方案一的一个较佳实施例中,该步骤通过将VC队列的QD的Timer_CU调度标志T和出列标志D置1实现。接着进入步骤530。
在步骤500中,判断是否为出列请求,如果是则进入步骤510,否则进入步骤530。本步骤的判断通过检测接口A接收的消息的出列调度标志实现。
在步骤510中,判断VC队列的QD中是否有出列标志,如果有则进入步骤550,否则进入步骤520。在本发明方案一的一个较佳实施例中,以D等于1表示QD中有出列标志。
在步骤520中,在VC队列的QD中设置出列标志。在本发明方案一的一个较佳实施例中,该步骤通过将QD中的D标志位置1实现。接着进入步骤530。
在步骤530中,构造调度请求消息。该调度请求消息将在下面的步骤中传送给流量控制模块13。接着进入步骤540。
在步骤540中,通过接口C缓冲区将调度请求消息传送给流量控制模块13。该步骤所发送的调度请求消息为前面步骤按照一定规则所构造好的。接着进入步骤550。
在步骤550中,从接口E缓冲区中接收新到达的数据包。其中,接口E缓冲区的数据包来自其它模块或者上层协议,例如A级、B级、C级、D级四种不同的用户业务所传送的数据包。接着进入步骤560。
在步骤560中,判断VC类型是否为AAL2,如果是则进入步骤570,否则进入步骤630。
在步骤570中,从该VC队列的QD中读取出列标志及队列中的缓冲区数。该步骤是为了将接收数据存入队列做获取初试参数。接着进入步骤580。
在步骤580中,判断队列是否为空,如果是则进入步骤620,否则进入步骤590。该步骤的队列是否为空可以通过察看QD中的Packet Counter得知。
在步骤590中,判断该VC队列的QD是否有出列标志,如果是则进入步骤620,否则进入步骤600。在本发明方案一的一个较佳实施例中,该步骤通过查询VC队列的QD中的出列标志D是否为1实现。
在步骤600中,构造出列标志并在QD中设置出列标志并将缓冲区存入队列。该步骤即将VC队列的QD出列标志置1。接着进入步骤610。
在步骤610中,通过接口C缓冲区传递调度请求消息给流量控制模块13。接着进入步骤300。
在队列管理模块12的微处理器控制下,这些步骤周而复始从各个输入接口接收消息并完成相应的处理。
本发明方案一的一个较佳实施例的实现Timer_CU功能的系统中,发送处理模块14的工作流程如图10。该模块由其模块中的微处理器控制其工作并完成如下的流程首先进入步骤700,从接口B缓冲区中读取调度消息。在本发明方案一的一个较佳实施例中,接口B缓冲区的调度消息的格式如前所述。接着进入步骤710。
在步骤710中,判断是否为出列调度,如果是则进入步骤720,否则进入步骤730。在本发明方案一的一个较佳实施例中,该步骤中的判断通过检测接口B缓冲区中接收的调度消息的出列标志D实现。
在步骤720中,将接口B缓冲区中传来的数据缓冲区暂存并构造CPS-PDU发送。在本发明方案一的一个较佳实施例中,通过接口B缓冲区传来的数据缓冲区的指针获得数据构造CPS-PDU并在构造完成后发送给ATM模块15。接着进入步骤800。
在步骤730中,判断是否为Timer_CU调度,如果是则进入步骤750,否则进入步骤740。在本发明方案一的一个较佳实施例中,该步骤中的判断通过检测接口B缓冲区中接收的调度消息的Timer_CU调度标志T实现。
在步骤740中,构造CPS-PDU发送给ATM模块15。接着进入步骤800。
在步骤750中,停止Timer_CU。在本发明的一个较佳实施例中,通过将接口B缓冲区中接收的调度消息的Timer_CU调度标志清零实现。接着进入步骤760。
在步骤760中,判断是否为超时消息,如果是则进入步骤780,否则进入步骤770。在本发明方案一的一个较佳实施例中,通过消息中的T标志判定是否超时。
在步骤770中,暂存新缓冲区并构造CPS-PDU发送。接着进入步骤800。
在步骤780中,判断当前VC是否还有数据可以发送,如果是则进入步骤700,否则进入步骤790。在本发明方案一的一个较佳实施例中,通过读取VC队列的QD中的Packet Counter来判断是否还有数据可以发送。
在步骤790中,填充CPS-PDU发送并停止Timer_CU。在本发明方案一的一个较佳实施例中,通过将接口B缓冲区中接收的消息的Timer_CU调度标志清零实现停止Timer_CU。接着进入步骤700。
在步骤800,判断能否填满一个CPS-PDU,如果是则进入步骤830,否则进入步骤810。上述构造CPS-PDU的步骤720、步骤740和步骤770均进入该步骤,在该步骤中判断CPS-PDU是否被数据填满。
在步骤810中,判断是否已经启动Timer_CU,如果是则进入步骤850,否则进入步骤820。在本发明方案一的一个较佳实施例中,通过判断消息中的Timer_CU调度标志位是否为1来实现,如果是1则已经启动,否则没有启动。
在步骤820中,构造Timer_CU调度请求消息。其中,该步骤所构造的Timer_CU调度请求消息格式如前面所述的接口A中的消息结构。接着进入步骤860。
在步骤830中,判断暂存缓冲区是否小于5个,如果是则进入步骤850,否则进入步骤840。在本发明方案一的一个较佳实施例中,如果暂存缓冲区小于5个,暂存缓冲区中的数据就有可能不能填满一个CPS-PDU包。
在步骤840中,构造发送调度请求消息。该步骤是在暂存缓冲区足够,能够填满一个CPS-PDU包时执行。该步骤通过设置接口A缓冲区中的发送调度标志D实现。接着进入步骤860。
在步骤850中,构造出列调度请求消息。该步骤通过设置接口A缓冲区中的发送标志S实现。接着进入步骤860。
在步骤860中,通过接口A发送调度请求消息给队列管理模块12。该步骤所发送的调度请求消息由上述步骤预先设定。接着进入步骤700。
在发送处理模块14中的微处理器控制下,这些步骤周而复始的完成发送处理模块14的处理流程。
根据上面所述的方案,熟悉本领域的技术人员可以理解,可以将其中的队列管理模块12去除,由发送处理模块14直接管理AAL2类型的VC缓冲区队列,这样可以减少消息传递的接口。
发明方案二中,网络处理器中几个单独的微处理器并行处理,这些微处理器所控制的不同模块之间通过接口缓冲区进行通信以交换消息。不同接口的信息代表不同的调度消息,各个模块之间依据接收的调度消息进行相关的操作。其中,需要说明的是,在调度消息中需要指出对哪个VC进行操作。
根据本发明方案二的一个较佳实施例的实现Timer_CU功能的系统组成和连接方式如图11所示。
根据本发明方案二的一个较佳实施例的实现Timer_CU功能的系统包含分组队列21,队列管理模块22,流量控制模块23,发送处理模块24,ATM模块25。
发送处理模块24通过接口H缓冲区发送CPS-PDU消息给队列管理模块22;队列管理模块22通过接口I缓冲区发送调度请求消息给流量控制模块23;流量控制模块23通过接口J缓冲区发送调度响应消息给队列管理模块22;发送处理模块24从高速接口E缓冲区接收来自AAL2上层协议或其它模块的数据包;流量控制模块23通过接口F缓冲区发送Timer_CU超时响应消息给发送处理模块24;发送处理模块24通过接口G缓冲区发送Timer_CU定时请求消息给流量控制模块23;队列管理模块22对分组队列21进行入列和出列操作;队列管理模块22向ATM模块25发送CPS-PDU。
在本发明的一个较佳实施例中,各个接口缓冲区的消息结构分别如下接口H中的消息结构如下表

接口I中的消息结构如下表

接口J中的消息结构如下表

接口E中的消息结构如下表


接口F中的消息结构如下表

接口G中的消息结构如下表

其中,各个接口的消息中的VC Index表示当前消息的VC编号,根据此编号可以区分不同的VC。
其中,分组队列21用来以队列的形式存放待发送的CPS-PDU。在本发明方案二的一个较佳实施例中,分组队列21是按照VC管理的,每条VC一个队列,每个CPS-PDU占用一个缓冲区,即缓冲区的大小为48字节。
队列管理模块22管理分组队列2中的队列,从接口H缓冲区和接口J缓冲区中获得消息并进行相应的处理。其中,从接口H缓冲区中接收的消息为CPS-PDU消息,需要进行入列等操作;从接口J缓冲区中接收的消息为调度响应消息,需要进行出列、发送CPS-PDU等操作。
流量控制模块23管理调度时间队列,计算VC的发送时间,从接口I缓冲区和接口G缓冲区中获取相应的消息并进行相应的处理。其中,从接口I缓冲区中接收的消息为队列管理模块22的调度请求消息,需要进行调度时间队列的管理等操作;从接口G缓冲区中接收的消息为发送处理模块24的Timer_CU定时请求消息,需要进行调度时间队列的入列操作。
发送处理模块24负责AAL2协议的处理,接收来自AAL2上层协议或其它模块的数据包并形成CPS-PDU,在超时时填充CPS-PDU并进行相应的处理。其中,按照AAL2协议的规定,接收的数据包先经过SSCS层的处理后再经CPS层的处理后形成CPS-PDU。
ATM模块25负责接收发送处理模块24处理后的CPS-PDU并进行相应的ATM层的处理。此模块和通用的ATM层的模块完全相同,在此不多说明。
下面结合各个模块的具体实现流程来说明本发明方案二。
根据本发明方案二的一个较佳实施例的实现Timer_CU功能的系统的队列管理模块22的工作流程如图12所示。
首先进入步骤900,队列管理模块22从接口H缓冲区中获取新到达的CPS-PDU消息。其中,CPS-PDU消息的格式如前文所述接口H中的消息结构,该消息由发送处理模块24生成。
接着进入步骤910,判断该VC所属队列是否已经发送调度请求消息,如果是则进入步骤930,否则进入步骤920。其中,接口I缓冲区中的消息即为调度请求消息。
在步骤920中,队列管理模块22构造调度请求消息并通过接口I发送。其中,调度请求消息构造的规则如前所述。
在步骤930中,队列管理模块22将该CPS-PDU入列。在本发明方案二的一个较佳实施例中,CPS-PDU通过接口I接收的CPS-PDU消息中的CPS-PDU缓冲区指针得到,然后队列管理模块22将该CPS-PDU存储到分组队列21中。
接着进入步骤940,队列管理模块22从接口J缓冲区中获取调度响应消息。其中,调度响应消息的格式如前接口J中的消息结构所示。
接着进入步骤950,出列一个CPS-PDU。在本发明方案二的一个较佳实施例中,由接收到的调度响应消息中获得VC标号,然后队列管理模块22从分组队列21对应的VC队列中出列一个CPS-PDU。
接着进入步骤960,将出列的CPS-PDU发送给ATM模块25。
接着进入步骤970,判断队列是否为空,如果是则进入步骤900,否则进入步骤980。其中所判定的队列即前面步骤中的VC队列。
在步骤980中,队列管理模块22构造调度请求消息并通过接口I发送。其中,调度请求消息的构造规则如前接口I中的消息结构所述。
这些步骤周而复始的实现发明方案二的实现Timer_CU功能的系统的队列管理模块22的工作流程。
根据本发明方案二的一个较佳实施例的实现Timer_CU功能的系统的流量控制模块23的工作流程如图13所示。
首先进入步骤A00,判断接口G缓冲区是否为空,如果是则进入步骤A30,否则进入步骤A10。其中,接口G缓冲区中的消息格式如前所述。
在步骤A10中,流量控制模块23从接口G缓冲区中获得Timer_CU定时请求消息。其中,Timer_CU定时请求消息由发送处理模块24生成并发送。
接着进入步骤A20,计算超时时间并写入调度时间队列,处理完该步骤后进入步骤A30。其中,超时时间队列由流量控制模块23管理。
在步骤A30中,从接口I中获得调度请求消息。其中,调度请求消息由队列管理模块22生成并发送。
接着进入步骤A40,根据流量参数计算发送时间并写入调度时间队列。其中,发送时间由流量控制模块23根据VC的相关参数确定。
接着进入步骤A50,读取当前调度时间队列。其中,当前调度时间队列是指在时间队列中,在当前时间需要处理的VC。
接着进入步骤A60,判断队列中是否有Timer_CU调度消息,如果是则进入步骤A70,否则进入步骤A80。其中,当前队列的Timer_CU调度消息通过队列中VC对应的标志来确定。
在步骤A70中,流量控制模块23向接口F缓冲区发送Timer_CU超时响应消息,接着进入步骤A80。其中,Timer_CU超时响应消息的格式如前接口F中的消息结构所示。
在步骤A80中,流量控制模块23向接口J缓冲区发送调度响应消息。其中,调度响应消息的格式如前接口J中的消息结构所示。接着进入步骤A00。
这些步骤周而复始实现本发明方案二的实现Timer_CU功能的系统的流量控制模块23的工作流程。
根据本发明方案二的一个较佳实施例的实现Timer_CU功能的系统的发送处理模块24的工作流程如图14所示。
首先进入步骤B00,判断是否从接口E缓冲区中成功获取新数据包,如果是则进入步骤B10,否则进入步骤B80。其中,接口E缓冲区接收的数据包来自AAL2上层协议或其它模块,这些数据包经AAL2协议处理后形成CPS-PDU。
在步骤B10中,AAL2协议进行SSCS层处理。其中,本步骤在SSCS子层完成,处理后形成SSCS-PDU。
接着进入步骤B20,进行AAL2协议CPS子层处理。其中,处理的规则可以参照相关协议。
接着进入步骤B30,判断是否能够构成完整的CPS-PDU,如果是则进入步骤B40,否则进入步骤B60。在本步骤中,如果不能构成完整的CPS-PDU则说明需要进入Timer_CU计时,如果能够构成完整的CPS-PDU就可以将新生成的CPS-PDU存入队列等待系统的调度发送。
在步骤B40中,清除Timer_CU启动标志。接着进入步骤B50。其中,Timer_CU标志可以在发送处理模块24中各个VC对应的描述中另外定义一个比特的标志,以1来表示Timer_CU已经启动,以0表示Timer_CU尚未启动。
在步骤B50中,通过接口H发送CPS-PDU消息。接着进入步骤B80。其中,CPS-PDU消息的格式如前接口H中的消息结构所示,队列管理模块22通过CPS-PDU消息中的VC Index和CPS-PDU缓冲区指针获得由发送处理模块24新生成的CPS-PDU。
在步骤B60中,判断是否已经启动Timer_CU定时。接着进入步骤B70。在本发明方案二的一个较佳实施例中,该步骤通过发送处理模块24中各个VC对应的Timer_CU标志来判定是否已经启动Timer_CU。
在步骤B70中,设置Timer_CU定时启动标志,通过接口G发送Timer_CU定时请求消息。接着进入步骤B80。其中,Timer_CU定时请求消息的格式如前接口G中的消息结构所示。
在步骤B80中,从接口F读取Timer_CU超时响应消息。其中,Timer_CU超时响应消息的格式如前接口F中的消息结构所示。
接着进入步骤B90,判断接口F中是否有消息并且该消息对应的VC的Timer_CU启动标志未被清除,如果是则进入步骤C00,否则进入步骤C10。需要说明的是,若接口F中的Timer_CU超时响应消息对应的VC的Timer_CU启动标志未被清除,说明该VC还没有构成CPS-PDU,需要填充后形成CPS-PDU;若接口F中的Timer_CU超时响应消息对应的VC的Timer_CU启动标志已被清除,说明在Timer_CU定时期间该VC已经有新数据包到达并且已经构成了新的CPS-PDU,不需要进行超时处理。
在步骤C00中,发送处理模块24将不满的CPS-PDU填充后通过接口H发送并清除Timer_CU标志。接着进入步骤C10。需要说明的是,为了节约接口缓冲区的空间,接口H发送的只是该CPS-PDU对应的VC信息和CPS-PDU的指针,消息格式如前接口H中的消息结构所示。
在步骤C10中,判断当前VC的数据包是否处理结束,如果是则进入步骤B00,否则进入步骤B10。在本发明的一个较佳实施例中,只有在当前VC的数据包完全处理结束后才从接口E缓冲区中接收新的数据包。
这些步骤周而复始完成本发明方案二的实现Timer_CU功能的系统的发送处理模块24的工作流程。
熟悉本领域的技术人员可以理解,上述三个并行的流程相互配合即可在AAL2中实现Timer_CU功能。
虽然通过参照本发明的某些优选实施例,已经对本发明进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种各样的改变,而不偏离所附权利要求书所限定的本发明的精神和范围。
权利要求
1.一种实现联合使用定时器功能的系统,在异步传输模式适配层类型2中使用,其特征在于,包含分组队列,用于以队列的形式按照不同的虚通道在缓冲区内存储待发数据,管理虚通道的联合使用定时器调度标志和出列调度标志;队列管理模块,用于接收新数据包,管理所述分组队列,依据接收到的调度和所述分组队列中的出列标记协调所述系统中其他模块协同工作;流量控制模块,用于处理所述队列管理模块的调度,计算调度时刻并决定是否使用联合使用定时器;发送处理模块,用于进行超时的判断,生成并发送公共部分子层协议数据单元,根据处理结果生成并发送调度,并在没有数据发送时申请使用联合使用定时器。
2.根据权利要求1所述的实现联合使用定时器功能的系统,其特征在于,所述系统的调度包含发送调度、出列调度和联合使用定时器调度,分别通过设定调度中的发送标志、出列标志和联合使用定时器调度标志实现;其中,所述发送调度不对所述分组队列进行操作、只进行发送处理;所述出列调度从所述分组队列中出列待发数据给所述发送处理模块处理;所述联合使用定时器调度在当前虚通道没有待发数据但当前虚通道的公共部分子层协议数据单元还没有完成时启动联合使用定时器,在有新的待发数据时从当前虚通道队列中出列新的待发数据给所述发送处理模块处理。
3.根据权利要求1所述的实现联合使用定时器功能的系统,其特征在于,所述队列管理模块为每个虚通道保存一个描述符,所述描述符用来记录的内容包括队列中缓冲区链的首指针、缓冲区队列中缓冲区链的末指针、数据包个数、出列调度标志和联合使用定时器调度标志。
4.根据权利要求1所述的实现联合使用定时器功能的系统,其特征在于,连接所述发送处理模块和所述队列管理模块的两个方向的接口、连接所述队列管理模块和所述流量控制模块的两个方向的接口中的信息包含异步传输模式适配层类型,虚通道的索引编号,发送调度标志,出列调度标志和联合使用定时器调度标志。
5.根据权利要求4所述的实现联合使用定时器功能的系统,其特征在于,所述队列管理模块向所述发送处理模块发送消息的接口中的信息还包含最多5个队列缓冲区描述符的指针。
6.根据权利要求1所述的实现联合使用定时器功能的系统,其特征在于,待发数据在所述分组队列中以队列形式存储在缓冲区中,每个所述缓冲区中存放的数据少于一个公共部分子层协议数据单元所需要填充的数据。
7.根据权利要求6所述的实现联合使用定时器功能的系统,其特征在于,每个所述缓冲区存放10个字节的数据。
8.一种队列管理模块接收来自其它模块的调度和上层的数据包并进行处理的方法,其特征在于,所述队列管理模块的处理流程包含以下步骤A接收并处理流量控制模块的调度,依照调度类型进行缓冲区出列操作,根据缓冲区出列操作的结果构造调度并发送给其他所述模块;B接收并处理发送处理模块的调度,依照调度类型进行分组队列中标志的管理,并构造调度发送给其它所述模块;C接收来自上层的数据包并入列到所述分组队列,管理所述分组队列中的标志,构造并发送出列调度。
9.根据权利要求8所述的队列管理模块接收来自其它模块的调度和上层的数据包并进行处理的方法,其特征在于,所述步骤A还包含以下子步骤A1根据接收到的调度判断当前虚通道类型是否为异步传输模式适配层类型2,如果是则继续,否则直接按照其它适配层类型处理后结束所述步骤A;A2若调度的类型是联合使用定时器调度,则进行联合使用定时器调度处理;A3若调度的类型是发送调度,则构造发送调度并发送给所述发送处理模块;A4若调度的类型是出列调度,则进行出列调度处理。
10.根据权利要求9所述的队列管理模块接收来自其它模块的调度和上层的数据包并进行处理的方法,其特征在于,步骤A2还包含以下子步骤A21判断当前虚通道的出列标志是否有效,如果是则进入步骤A22,否则构造超时调度发送给所述发送处理模块后结束所述步骤A2;A22从当前虚通道的队列中出列缓冲区,并判断是否出列成功,如果是则构造发送调度发送给所述发送处理模块后结束所述步骤A2,否则构造超时调度发送给所述发送处理模块后结束所述步骤A2。
11.根据权利要求9所述的队列管理模块接收来自其它模块的调度和上层的数据包并进行处理的方法,其特征在于,步骤A4还包含以下子步骤A41判断当前虚通道的出列标志是否有效,如果是则进入步骤A42,否则进入步骤A44;A42从当前虚通道的队列中出列缓冲区,并判断是否出列成功,如果是则进入步骤A43,否则进入步骤A44;A43构造调度发送给所述发送处理模块后结束所述步骤A4;A44构造发送调度发送给所述发送处理模块后结束所述步骤A4。
12.根据权利要求8所述的队列管理模块接收来自其它模块的调度和上层的数据包并进行处理的方法,其特征在于,所述步骤B还包含以下子步骤B1判断调度是否是发送调度,如果是则进入步骤B6,否则进入步骤B2;B2判断调度是否是联合使用定时器调度,如果是则进入步骤B3,否则进入步骤B4B3设置当前虚通道的联合使用定时器调度标志和出列调度标志,接着进入步骤B6;B4判断当前虚通道是否有出列标志,如果有则结束,否则进入步骤B5;B5设置当前虚通道的出列调度标志,接着进入步骤B6;B6构造调度并发送给所述流量控制模块后结束所述步骤B。
13.根据权利要求8所述的队列管理模块接收来自其它模块的调度和上层的数据包并进行处理的方法,其特征在于,所述步骤C还包含以下子步骤C 1接收新数据包并判断是否是异步传输模式适配层类型2,如果是则进入步骤C2,否则按其它类型处理后结束所述步骤C;C2判断当前虚通道的队列是否为空,如果是则进入步骤C3,否则进行入列操作后结束所述步骤C;C3判断当前虚通道是否有出列调度标志,如果有则进行入列操作,否则进入步骤C4;C4进行入列操作,构造出列调度,设置当前虚通道的出列调度标志并向所述流量控制模块发送出列调度后结束所述步骤C。
14.一种流量控制模块接收来自队列管理模块的调度并进行处理的方法,其特征在于,包含以下步骤D判断从所述队列管理模块得到调度是否为发送调度或者出列调度,如果是则按当前虚通道的流量参数,进行正常的调度,否则进入步骤E;E根据当前虚通道的流量参数和联合使用定时器配置参数,计算正规调度和联合使用定时器调度的具体时刻,并判断联合使用定时器调度时刻是否比正规调度晚,如果是则进入步骤F,否则进入步骤G;F先构造出列调度,再构造联合使用定时器调度并发送给所述队列管理模块;G构造联合使用定时器调度并发送给所述队列管理模块。
15.一种发送处理模块接收来自队列管理模块的调度并进行处理的方法,其特征在于,所述发送处理模块的处理流程包含以下步骤H判断从所述队列管理模块中接收的调度是否为联合使用定时器调度,如果是则进入步骤I,否则进入步骤K;I停止联合使用定时器并判断是否超时,如果是则进入步骤J,否则暂存新缓冲区并构造公共部分子层协议数据单元发送后进入步骤L;J判断当前虚通道是否还有数据可以发送,如果有则返回步骤H,否则停止联合使用定时器并填充公共部分子层协议数据单元发送后返回步骤H;K若是发送调度则构造公共部分子层协议数据单元发送后进入步骤L,否则暂存从所述队列管理模块传来的缓冲区并构造公共部分子层协议数据单元发送后进入步骤L;L依据构造公共部分子层协议数据单元的结果构造调度。
16.根据权利要求15所述的发送处理模块接收来自队列管理模块的调度并进行处理的方法,其特征在于,步骤L还包含如下子步骤L1判断是否填满一个公共部分子层业务数据单元,如果是则进入步骤L2,否则进入步骤L3;L2判断暂存缓冲区是否小于五个,如果是则构造出列调度,否则构造发送调度;L3判断是否已经启动联合使用定时器,如果是则构造出列调度,否则构造联合使用定时器调度;L4向所述队列管理模块发送调度后结束所述步骤L。
17.一种实现联合使用定时器功能的系统,在异步传输模式适配层类型2中使用,其特征在于,包含分组队列,用于以队列的形式按照不同的虚通道存放公共部分子层协议数据单元;队列管理模块,用于管理所述分组队列,发送调度请求消息,并在得到调度响应消息后发送一个公共部分子层协议数据单元;流量控制模块,用于在收到联合使用定时器定时请求消息后开始定时,接收所述调度请求消息并响应所述调度响应消息,在超时时发送联合使用定时器超时响应消息;发送处理模块,用于管理联合使用定时器标志和虚通道,构成公共部分子层协议数据单元,发送协议数据单元消息给所述队列管理模块,在没有数据时发送所述联合使用定时器定时请求消息。
18.根据权利要求17所述的实现联合使用定时器功能的系统,其特征在于,所述协议数据单元消息、所述调度请求消息、所述调度响应消息、所述联合使用定时器超时响应消息和所述联合使用定时器定时请求消息包含区分不同的虚通道的虚通道编号。
19.根据权利要求18所述的实现联合使用定时器功能的系统,其特征在于,所述公共部分子层协议数据单元消息还包含公共部分子层协议数据单元缓冲区指针。
20.根据权利要求18所述的实现联合使用定时器功能的系统,其特征在于,所述联合使用定时器定时请求消息还包含联合使用定时器定时周期。
21.一种队列管理模块管理分组队列并发送公共部分子层协议数据单元的方法,其特征在于,包含以下步骤M获取所述协议数据单元消息,将公共部分子层协议数据单元入列,并发送所述调度请求消息;N获取所述调度响应消息,进行出列操作并在当前虚通道队列为空是发送所述调度请求消息。
22.根据权利要求21所述的一种队列管理模块管理分组队列并发送公共部分子层协议数据单元的方法,其特征在于,所述步骤M还包含如下子步骤M1从所述发送处理模块获取所述协议数据单元消息并判断所述公共部分子层协议数据单元消息所对应的虚通道是否已经发送调度请求消息,如果是则进入步骤M3,否则进入步骤M2;M2构造所述调度请求消息发送给所述流量控制模块后进入步骤M3;M3将所述公共部分子层协议数据单元消息入列到所述分组队列的当前虚通道队列。
23.根据权利要求21所述的一种队列管理模块管理分组队列并发送公共部分子层协议数据单元的方法,其特征在于,所述步骤N还包含如下子步骤N1从所述流量控制模块获取所述调度响应消息;N2从所述分组队列的当前虚通道队列出列一个公共部分子层协议数据单元并发送;N3判断所述分组队列的当前虚通道队列是否为空,如果是则构造所述调度请求消息并发送给所述流量控制模块后结束所述步骤N,否则直接结束所述步骤N。
24.一种流量控制模块进行定时管理和发送调度管理的方法,其特征在于,包含以下步骤O获取联合使用定时器定时请求消息并管理调度时间队列;P获取调度请求消息并管理所述调度时间队列,在所述调度时间队列中有所述联合使用定时器调度时发送所述联合使用定时器超时响应消息。
25.根据权利要求24所述的一种流量控制模块进行定时管理和发送调度管理的方法,其特征在于,所述步骤O还包含如下子步骤O1判断从所述发送处理模块获取所述联合使用定时器定时请求消息是否成功,如果是则进入步骤O2,否则结束步骤O;O2计算当前虚通道的超时时间并将联合使用定时器调度写入所述调度时间队列。
26.根据权利要求25所述的一种流量控制模块进行定时管理和发送调度管理的方法,其特征在于,所述步骤P还包含如下子步骤P1从所述队列管理模块获取所述调度请求消息,计算发送时间并写入所述调度时间队列;P2读取所述调度时间队列,并判断所述调度时间队列中是否有所述联合使用定时器调度,如果是则构造并向所述发送处理模块发送所述联合使用定时器超时响应消息后进入步骤P3,否则直接进入步骤P3;P3构造并向所述队列管理模块发送所述调度响应消息。
27.一种发送处理模块构成公共部分子层协议数据单元的方法,其特征在于,包含以下步骤Q判断所述发送处理模块获取新的数据包是否成功,如果是进行异步传输模式适配层协议处理,否则进入步骤R;R获取联合使用定时器超时响应消息并进行联合使用定时器超时的处理。
28.根据权利27所述的一种发送处理模块构成公共部分子层协议数据单元的方法,其特征在于,所述步骤Q还包含以下子步骤Q1若所述发送处理模块获取新的数据包成功则进行异步传输模式适配层协议处理后进入步骤Q2,否则结束所述步骤Q;Q2判断是否能够构成完整的公共部分子层协议数据单元,如果是则进入步骤Q3,否则进入步骤Q4;Q3清除当前虚通道的联合使用定时器标志,构造并向所述队列管理模块发送所述协议数据单元消息后结束所述步骤Q;Q4判断当前虚通道是否启动联合使用定时器标志,如果是则结束所述步骤Q,否则设置当前虚通道的联合使用定时器标志并向所述流量控制模块发送所述联合使用定时器定时请求消息后结束所述步骤Q。
29.根据权利28所述的一种发送处理模块构成公共部分子层协议数据单元的方法,其特征在于,所述步骤R还包含以下子步骤R1从所述流量控制模块获取所述联合使用定时器超时响应消息并判断当前虚通道的所述联合使用定时器标志是否未被清除,如果是则填充发送当前虚通道的公共部分子层协议数据单元并清除当前虚通道的所述联合使用定时器标志后进入步骤R2,否则直接进入步骤R2;R2判断当前虚通道的数据包是否处理结束,如果是则不获取新的数据包并继续处理直至当前虚通道的数据包完全处理结束,否则结束所述步骤R。
全文摘要
本发明涉及通信技术,公开了一种实现联合使用定时器功能的系统及其方法,使得在AAL2中实现的Timer_CU既保证定时的精度和稳定性,又能简化代码的编写,减小系统资源的消耗,增加系统的稳定性。这种实现联合使用定时器功能的系统及其方法利用了网络处理器中的多个微处理器阵列的特点,结合ATM流量控制的调度模块,通过预先定义了格式的消息在各个独立的微处理器控制的模块间进行信息的交互,在几乎不写任何代码的情况下,完全实现Timer_CU的功能。
文档编号H04L12/56GK1713615SQ20041006299
公开日2005年12月28日 申请日期2004年6月27日 优先权日2004年6月27日
发明者马继彬 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1