一种数据处理方法、装置以及系统的制作方法_3

文档序号:8319122阅读:来源:国知局
优先级与逻辑功能单元的当前待处理数据的长度、发送速率和历史优先级相关,每个逻辑功能单元的当前待处理数据之间均可以公平竞争,即对一个逻辑功能单元的当前待处理数据处理完成后,该逻辑功能单元的下一个待处理数据可以和其他逻辑功能单元的当前待处理数据公平竞争,保证了每个逻辑功能单元的最小处理能力,有效地提高了资源的利用率。
[0067]更进一步地,每一次对优先级最高的逻辑功能单元中的当前待处理数据进行处理后,需要更新当前处理过的逻辑功能单元的历史优先级,或者更新所有逻辑功能单元的历史优先级。
[0068]其中,在步骤130对优先级最高的逻辑功能单元中的当前待处理数据进行处理后,可能还有多个逻辑功能单元还有未处理数据,可能只有一个逻辑功能单元还有未处理数据,或者所有逻辑功能单元均没有未处理数据。
[0069]步骤130之后,对历史优先级的更新,针对上述不同的情况有不同的处理,具体如下:
[0070]A、至少还有两个逻辑功能单元有未处理数据;其包括如下两种情况:
[0071]Al、优先级最高的逻辑功能单元有未处理数据;
[0072]此时,判断优先级最高的该逻辑功能单元的当前优先级是否不高于预置优先级,若否,则更新优先级最高的该逻辑功能单元的历史优先级,更新后的历史优先级为获取到的当前优先级,继续执行步骤110?130。
[0073]若是,则将所有逻辑功能单元的历史优先级清零,继续执行步骤110?130。
[0074]可以理解的是,优先级最高的该逻辑功能单元的当前优先级不高于预置优先级,则说明该优先级最高的该逻辑功能单元的当前优先级太低,为了避免其他逻辑功能单元一直抢占物理设备的处理能力,可以将所有逻辑功能单元的历史优先级清零,使得所有逻辑功能单元均以同一起跑线竞争物理设备的处理能力。
[0075]A2、优先级最高的逻辑功能单元没有未处理数据;
[0076]此时,可以将该优先级最高的逻辑功能单元的历史优先级清零,即按照每个逻辑功能单元的所有待处理数据处理完后,将该处理完所有待处理数据的逻辑功能单元的历史优先级清零的原则执行。
[0077]此外,优先级最高的逻辑功能单元没有未处理数据时,也可以不对该优先级最高的逻辑功能单元的历史权值做任何处理,因其没有未处理数据,其历史优先级不会对其他逻辑功能造成影响。
[0078]A情形下,在继续执行步骤110?130的过程中,即对该多个逻辑功能单元的数据继续进行处理后,跳转为B情形,只有一个逻辑功能单元还有未处理数据。
[0079]B、只有一个逻辑功能单元还有未处理数据;
[0080]该逻辑功能单元可能是当前优先级最高的逻辑功能单元,也可能不是。由于只有一个逻辑功能单元还有未处理数据,则无需进行优先级的比较,可依次确定该逻辑功能单元的当前待处理数据并依次进行处理。
[0081]对该逻辑功能单元的所有待处理数据处理完后,即跳转为C情形,所有逻辑功能单元均没有未处理数据。
[0082]C、所有逻辑功能单元均没有未处理数据;
[0083]对该逻辑功能单元的所有待处理数据处理完后,若在A2情形中按照每个逻辑功能单元的所有待处理数据处理完后,将该处理完所有待处理数据的逻辑功能单元的历史优先级清零的原则执行,则将B情形中的该逻辑功能单元的历史优先级清零。
[0084]若在A2情形中不对该优先级最高的逻辑功能单元的历史权值做任何处理,则对B情形中的逻辑功能单元的所有待处理数据处理完后,即确认所有逻辑功能单元均没有未处理数据后,将所有逻辑功能单元的历史优先级清零。
[0085]本发明实施例中,当其他逻辑功能有待处理数据时,当前正在处理数据的逻辑功能若还有待发送数据,其可以与其他逻辑功能进行竞争,当其他逻辑功能没有待处理数据时,其在上一个数据处理完后,可以接着对下一个待处理数据进行处理,无需如现有技术必须等待时间点结束才能对该逻辑功能单元的数据进行处理,保证了每个逻辑功能单元的最小处理能力,可以有效地提高资源的利用率。并且,本发明在优先级最高的该逻辑功能单元的当前优先级太高时,以及所有逻辑功能均没有待处理数据时,将所有逻辑功能的历史权值清零,使得在下一次对数据进行处理时各个逻辑功能可以开始新一轮的公平竞争。
[0086]为了更好的理解上述实施例,下面以多模隔离的GE接口为例对本发明实施例进行详细说明,请参阅图2,图2是多模隔离的GE接口的结构示意图。
[0087]多模隔离的GE的硬件模块包括EM模块和ETH模块、EM模块负责完成多个模式的隔离和共享的调度工作,ETH模块完成普通的以太网协议的转换工作。
[0088]EM模块对多模基带系统呈现的接口由多个通道组组成,每个通道组对应一种模式。图2以3个通道组(CHG)为例进行示意,具体数量在实际应用中不做限制。如图2所示,这3个通道组分别是CHG0、CHG1和CHG2,这些通道组是多模隔离的基本资源分配单位,每个通道组内部有若干个通道,图2以每个通道组内包括3个通道(分别是CH0、CH1、CH2)为例进行示意,通道组内部的各通道间采用的是基于优先级调度的一级仲裁,并且由于这些通道是属于模式内部共享的,因此无需进行模式隔离和处理能力的分配。
[0089]由于这3个通道组(CHG0、CHG1和CHG2)之间是分别为不同模式服务的,因此通道组间需要完成模式隔离和处理能力的分配的功能。通道组间的处理能力的分配是通过二级仲裁模块完成的,经过二级仲裁以后的数据包组成串行的BD链,与ETH模块交互并通过GE接口发送出去。
[0090]在实施本发明的过程中,当这三个通道组均有数据需要通过GE接口发送出去,则具体如下:
[0091]首先,确定这三个通道组的当前待发送数据;
[0092]由于每个通道组内均有三个通道,可能每个通道组内的这三个通道均有待发送数据,通道组可根据其自身的优先级原则从通道组内的这三个通道中的待发送数据中确定一个当前待发送数据,即通道组CHGO的当前待发送数据可能是通道组CHGO内的通道CHO中的数据,通道组CHGl的当前待发送数据可能是通道组CHGl内的通道CHO中的数据,通道组CHG2的当前待发送数据可能是通道组CHG2内的通道CHl中的数据。
[0093]然后,分别获取这三个通道组的当前优先级并进行比较,再对优先级最高的逻辑功能单元中的当前待处理数据进行处理。
[0094]其中,当前优先级等于该通道组的当前待处理数据的长度和发送速率的比值与历史优先级的累加。即当前优先级WeightN的具体计算可以如下:
[0095]WeightN = WeightN' +PacketN*Ι/RateN ;
[0096]其中,WeightN表示第N个通道组的当前优先级;
[0097]PacketN表示第N个通道组的当前待处理数据的长度;
[0098]WeightN'表示第N个通道组的历史优先级;
[0099]RateN表示第N个通道组的发送速率。
[0100]由上式可知,WeightN越小,当年优先级越高,那么,若各通道组的历史优先级相同,则发送速率越大的通道组,其优先级越高。
[0101]举例来说,若三个通道组均有待发送数据,且CHGO有一 600字节和一 500字节的待发送数据包、CHGl有一 600字节的待发送数据包、以及CHG2有一 600字节和一 200字节的待发送数据包,通道组CHGO、CHGl和CHG2的发送速率分别是500Mbit/s、300Mbit/s和200Mbit/s,这三个通道组的历史优先级的初始值均为0,这三个通道组的预置优先级均为5。
[0102]首先确定这三个通道组的当前待处理数据,若三个通道组的当前待处理数据均为600字节的数据包,则根据上述分别计算当前优先级。
[0103]由上式可知,CHGO的当前优先级WeightO = 600/500 = 1.2 ;
[0104]CHGl 的当前优先级 Weightl = 600/30
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1