CN101539871B - 均衡处理负荷的装置、数据处理系统和方法、主控板 - Google Patents
均衡处理负荷的装置、数据处理系统和方法、主控板 Download PDFInfo
- Publication number
- CN101539871B CN101539871B CN2008101021809A CN200810102180A CN101539871B CN 101539871 B CN101539871 B CN 101539871B CN 2008101021809 A CN2008101021809 A CN 2008101021809A CN 200810102180 A CN200810102180 A CN 200810102180A CN 101539871 B CN101539871 B CN 101539871B
- Authority
- CN
- China
- Prior art keywords
- data set
- packet
- data
- resource utilization
- processor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Abstract
一种用于均衡处理器处理负荷的装置,包括:第一单元,用于将串行数据划分成多个数据组后向外部各处理器发送对应的数据组,其中数据组的数量大于外部处理器的数量;第二单元,用于接收各处理器发送的资源使用率;第三单元,用于比较各处理器的资源使用率以确定最大的资源使用率和最小的资源使用率;第四单元,用于将最大的资源使用率和门限值进行比较;和第五单元,用于在最大的资源使用率大于所述门限值时,减少对应于资源使用率最大的处理器的数据组数量并相应地增加对应于资源使用率最小的处理器的数据组数量。本发明还公开一种数据处理系统和方法,以及一种主控板。
Description
技术领域
本发明涉及对大量的高速传输数据进行处理的技术,尤其涉及一种数据处理系统和方法,一种相应的基站主控板,以及一种用于均衡处理器处理负荷的装置。
背景技术
在需要对大量的高速传输数据进行处理时,例如在通信领域常常需要对大量的高速数据进行处理,往往会遇到处理器的处理能力不足的瓶颈。为了能够处理大量的高速数据,一种通常的方法是对数据进行并行处理。
图1示出了现有的一种多处理器系统100,用于对大量的高速数据进行并行处理。其中,解复用器11利用时分复用技术,通过控制分发时间将接收到的高速数据解复用成多路低速数据,并将多路低速数据分别发送至多个处理器12进行处理。
多处理器系统100的不足之处在于对大量的高速数据处理的可靠性低。这是因为,在多处理器系统100中各处理器12在处理解复用器11发送的数据时,还要执行其它任务。当某一个或某几个处理器12受到干扰时,可能无法及时处理解复用器11发送的数据,从而造成数据丢失。这里所说的处理器受到干扰是指处理器因为处理其它任务而被占用大量资源。
但是目前还没有一种更好的对大量的高速数据进行处理的方案。
发明内容
有鉴于此,本发明所要解决的一个技术问题是提供一种用于均衡处理器处理负荷的装置,以提高对大量的高速数据处理的可靠性。该装置包括:
第一单元,用于将串行数据划分成多个数据组后向外部各处理器发送对应的数据组,其中数据组的数量大于外部处理器的数量;
第二单元,用于接收各处理器发送的资源使用率;
第三单元,用于比较各处理器的资源使用率以确定最大的资源使用率和最小的资源使用率;
第四单元,用于将最大的资源使用率和门限值进行比较;和
第五单元,用于在最大的资源使用率大于所述门限值时,减少对应于资源使用率最大的处理器的数据组数量并相应地增加对应于资源使用率最小的处理器的数据组数量。
采用所述装置,可以根据外部处理器的资源使用率来调节分发给各处理器的数据量,从而达到均衡各处理器的负荷的目的。均衡各处理器的处理负荷后,即可降低各处理丢失数据的几率,从而提高对大量的高速数据处理的可靠性。
本发明所要解决的另一个技术问题是提供一种对大量的高速数据进行处理的系统,该系统包括多个对接收到的数据进行处理的处理器,和前述用于均衡处理器处理负荷的装置。
采用所述数据处理系统,可以根据处理器的资源使用率来调节分发给各处理器的数据量,从而达到均衡各处理器的负荷的目的,以降低各处理丢失数据的几率,提高对大量的高速数据处理的可靠性。
本发明所要解决的另一个技术问题是提供一种对大量的高速数据进行处理的方法,该方法包括:
将串行数据划分成多个数据组后向外部各处理器发送对应的数据组,其中数据组的数量大于外部处理器的数量;
接收各处理器发送的资源使用率;
比较各处理器的资源使用率以确定最大的资源使用率和最小的资源使用率;
将最大的资源使用率和门限值进行比较;
在最大的资源使用率大于所述门限值时,减少对应于资源使用率最大的处理器的数据组数量并相应地增加对应于资源使用率最小的处理器的数据组数量。
采用所述数据处理方法,可以根据处理器的资源使用率来调节分发给各处理器的数据量,从而达到均衡各处理器的负荷的目的,以降低各处理丢失数据的几率,提高对大量的高速数据处理的可靠性。
另外,本发明还提供了一种用于移动通信系统中基站侧的主控板,所述主控板包括以太网交换单元,SCP和TNP;SCP和TNP分别与以太网交换单元连接,接收以太网交换单元发送的数据,还包括:
分发单元,用于将串行数据划分成多个数据组,并通过以太网交换单元向SCP和TNP发送对应的数据组;
接收单元,用于接收SCP和TNP发送的资源使用率;
比较单元,用于比较SCP和TNP的资源使用率,并将其中较大的资源使用率和门限值进行比较;和
均衡单元,用于在较大的资源使用率大于所述门限值时,减少对应于该资源使用率的处理器的数据组数量并相应地增加对应于资源使用率较小的处理器的数据组数量。
采用所述主控板,可以根据处理器的资源使用率来调节分发给各处理器的数据量,从而达到均衡各处理器的负荷的目的,以降低各处理丢失数据的几率,提高对大量的高速数据处理的可靠性。
附图说明
图1是现有的一个多处理器系统的示意图;
图2是用于均衡处理器处理负荷的装置的一个实施例示意图;
图3是用于均衡处理器处理负荷的装置的另一个实施例示意图;
图4是数据处理系统的一个实施例示意图;
图5是数据处理方法的一个实施例流程图;
图6是主控板的一个实施例示意图;
图7是用于均衡处理器处理负荷的装置的另一个实施例示意图;
图8是数据处理系统的另一个实施例示意图;
图9是数据处理方法的另一个实施例流程图;
图10是主控板的另一个实施例示意图。
具体实施方式
图1所示的多处理器系统100的不足之处在于对大量的高速数据处理的可靠性低,可以从多种因素考虑对多处理器系统100进行改进,以提高对大量的高速数据处理的可靠性。
本发明从数据分发的角度考虑,根据各处理器的资源使用情况灵活地调整分发给各处理器的数据量,以保证各处理器都能及时处理其接收到的数据,避免数据丢失从而提高数据处理的可靠性。
为使本领域技术人员更好地理解本发明,下面结合具体的实施例对本发明提供的技术方案作具体说明。
图2示出了一种用于均衡处理器处理负荷的装置200,装置200包括第一单元21、第二单元22、第三单元23、第四单元24和第五单元25。
第一单元21用于将串行数据划分成多个数据组后向外部各处理器发送对应的数据组,第二单元22用于接收各处理器发送的资源使用率,第三单元23用于比较各处理器的资源使用率以确定最大的资源使用率和最小的资源使用率,第四单元24用于将最大的资源使用率和门限值进行比较,第五单元25用于在最大的资源使用率大于所述门限值时,减少对应于资源使用率最大的处理器的数据组数量并相应地增加对应于资源使用率最小的处理器的数据组数量。
这里所说的数据组是指具有某个相同特征的数据包的集合。
这里所说的资源使用率表示处理器资源被占用的情况,资源使用率越高表示处理器因为处理任务而被占用的资源越多;反之,资源使用率越低表示处理器因为处理任务而被占用的资源越少。处理器可以采用常用的方法计算其资源使用率,对于处理器计算其资源使用率的过程此不赘述。
可以看出,装置200在为外部各处理器分发数据时,可以根据外部处理器的资源使用率来调节分发给各处理器的数据量,从而达到均衡各处理器的负荷的目的。均衡各处理器的处理负荷后,即可降低各处理丢失数据的几率,从而提高对大量的高速数据处理的可靠性。
还可以看出,装置200是以数据组为单位向各处理器分发数据的,也是以数据组为单位调节分发给各处理器的数据量的,因此,划分数据组的方式可能会影响到各处理器的运行负荷,并影响到负荷均衡效果。
在具体实施时,第一单元21将串行数据划分成多个数据组的方式可以有多种。其中一种可选的实施方式是根据串行数据中数据包的编号将各数据包划分到相应的数据组。如果用s表示串行数据中数据包的序号,则通过计算s%N即可获得s/N的余数,并将余数相同的数据包的集合作为一个数据组,这样就可以将串行数据划分成N个数据组。
更具体地说,假设串行数据中有序号从0顺序递增到19的20个数据包,需要将该串行数据划分成5个数据组,则s%5的计算结果为0的数据包,也就是余数为0数据包,有序号为0、5、10、15这4个数据包,因此可以将这4个数据包划分到一个数据组。同理,s%5的计算结果为1的数据包,也就是余数为1数据包,有序号为1、6、11、16这4个数据包,因此可以将这4个数据包划分到一个数据组;s%5的计算结果为2的数据包,也就是余数为2数据包,有序号为2、7、12、17这4个数据包,因此可以将这4个数据包划分到一个数据组;s%5的计算结果为3的数据包,也就是余数为3数据包,有序号为3、8、13、18这4个数据包,因此可以将这4个数据包划分到一个数据组;s%5的计算结果为4的数据包,也就是余数为4数据包,有序号为4、9、14、19这4个数据包,因此可以将这4个数据包划分到一个数据组。
这里需要指出的是,数据组的个数N应该视情况而定,但应该保证数据组的个数N大于外部处理器的个数M。一种可选的确定数据组的个数N的实施方式是,按N=w×M确定数据组的个数N,其中,w是大于2的整数。例如,假设有3个外部处理器,即M=3,可以将N确定为9。
通过计算s%N将串行数据中的各数据包加以划分后,第一单元21会将各数据包发送给对应的外部处理器。
这里,数据组与处理器的对应关系是预先设定的,第一单元21只要按该对应关系发送对应的数据包即可。例如,假设有3个外部处理器,分别为第一处理器、第二处理器和第三处理器;将串行数据划分成9个数据组,且计算s%N后余数为0、2、6的数据包对应于第一处理器,余数为1、3、7的数据包对应于第二处理器,余数为4、5、8的数据包对应于第三处理器。则第一单元21计算s%N后,会将余数为0、2、6的数据包发送给第一处理器,将余数为1、3、7的数据包发送给第二处理器,将余数为4、5、8的数据包发送给第三处理器。
第一单元21向外部各处理器分发数据的过程中,第二单元22会定期地接收第一处理器、第二处理器和第三处理器发送的资源使用率,第三单元23将各处理器的资源使用率进行比较以确定最大的资源使用率和最小的资源使用率,第四单元24会将最大的资源使用率和一个设定的门限值进行比较。当最大的资源使用率大于所述门限值时,第五单元25将减少对应于资源使用率最大的处理器的数据组数量并相应地增加对应于资源使用率最小的处理器的数据组数量。假设第一处理器的资源使用率最高且大于门限值,而第三处理器的资源使用率最低,则第五单元25可以重新划分第一处理器、第三处理器所对应的数据组,从而减小分发给第一处理器的数据量并增大分发给第三处理器的数据量。例如,第五单元25可以令余数为0、6的数据包对应于第一处理器,令余数为2、4、5、8的数据包对应于第三处理器。
此外,可以选择另一种方式来调节数据组和处理器之间的对应关系。可以增加一个编号单元31,如图3所示。编号单元31用于将对应于同一外部处理器的各数据组划分到一个数据组集合中,并对获得的M个数据组集合连续编号。第五单元25在重新划分处理器与数据组的对应关系时,需要比较i和j;在i>j时,从i到j+1按顺序将每个数据组集合中的n个数据组划分到前一个数据组集合中;在i<j时,从i到j-1按顺序将每个数据组集合中的n个数据组划分到后一个数据组集合中。其中,i表示对应于资源使用率最大的处理器的数据组集合的编号j表示对应于资源使用率最小的处理器的数据组集合的编号j,n为调整步长,n为正整数。
此时,第五单元25包括下述几个单元:
用于比较i和j的第一比较单元;第一调整单元,用于在i>j时,从i到j+1按顺序将每个数据组集合中的n个数据组划分到前一个数据组集合中;和第二调整单元,用于在i<j时,从i到j-1按顺序将每个数据组集合中的n个数据组划分到后一个数据组集合中。
更具体地说,仍然假设有3个外部处理器,分别为第一处理器、第二处理器和第三处理器;将串行数据划分成9个数据组,且计算s%N后余数为0、2、6的数据包对应于第一处理器,余数为1、3、7的数据包对应于第二处理器,余数为4、5、8的数据包对应于第三处理器。
可以将余数为0的数据包所在的数据组、余数为2的数据包所在的数据组和余数为6的数据包所在的数据组划分到一个数据组集合,并对该数据组集合进行编号,编号为1。同理,可以将余数为1的数据包所在的数据组、余数为3的数据包所在的数据组和余数为7的数据包所在的数据组划分到一个数据组集合,并对该数据组集合进行编号,编号为2;将余数为4的数据包所在的数据组、余数为5的数据包所在的数据组和余数为8的数据包所在的数据组划分到一个数据组集合,并对该数据组集合进行编号,编号为3。
如果第一处理器的资源使用率最高且大于门限值,而第三处理器的资源使用率最低,则第五单元25需要减少数据组集合1中的数据组个数,并相应地增加数据组集合3中的数据组个数。此时,第一调整单元从编号3到编号2按顺序将每个数据组集合中的n个数据组划分到前一个数据组集合中,即,第一调整单元将数据组集合3中的n个数据组划分到数据组集合2中,并将数据组集合2中的n个数据组划分到数据组集合1中。
如果第三处理器的资源使用率最高且大于门限值,而第一处理器的资源使用率最低,则第五单元25需要减少数据组集合3中的数据组个数,并相应地增加数据组集合1中的数据组个数。此时,第二调整单元从编号1到编号3按顺序将每个数据组集合中的n个数据组划分到后一个数据组集合中,即,第二调整单元将数据组集合1中的n个数据组划分到数据组集合2中,并将数据组集合2中的n个数据组划分到数据组集合3中。
经过第五单元25的上述调节,可以改变各处理器所对应的数据组,而且,对于资源使用率最高的处理器将减少n个与其对应的数据组,对于资源使用率最低的处理器将增加n个与其对应的数据组。
基于图3所示的装置300,一种可选的比较好的实施方式是在预先确定数据组与外部处理器的对应关系时,将余数连续的数据包对于同一个处理器。例如,令计算s%N后余数为0、1、2的数据包对应于第一处理器,余数为3、4、5的数据包对应于第二处理器,余数为6、7、8的数据包对应于第三处理器。将余数为0、1、2的数据包所在的数据组划分到数据组集合1,将余数为3、4、5的数据包所在的数据组划分到数据组集合2,将余数为6、7、8的数据包所在的数据组划分到数据组集合3。
假设调整步长n=1:
第一调整单元在进行调整时,可以从编号3到编号2按顺序将每个数据组集合中余数最小的1个数据组划分到前一个数据组集合中,即,第一调整单元将数据组集合3中的余数为6的数据组划分到数据组集合2中,并将数据组集合2中余数为3的数据组划分到数据组集合1中。重新划分后,对应于第一处理器的数据包变为计算s%N后余数为0、1、2、3的数据包,对应于第二处理器的数据包变为余数为4、5、6的数据包,对应于第三处理器的数据包变为余数为7、8的数据包。
第二调整单元在进行调整时,可以从编号1到编号2按顺序将每个数据组集合中余数最大的1个数据组划分到后一个数据组集合中,即,第二调整单元将数据组集合1中的余数为2的数据组划分到数据组集合2中,并将数据组集合2中余数为5的数据组划分到数据组集合1中。重新划分后,对应于第一处理器的数据包变为计算s%N后余数为0、1的数据包,对应于第二处理器的数据包变为余数为2、3、4的数据包,对应于第三处理器的数据包变为余数为5、6、7、8的数据包。
虽然上述是以调整步长n=1为例进行的说明,但是本领域技术人员完全可以看出,也可以根据需要将调整步长n设置为其它参数,而不违背上述实施方式的精神。
这里需要说明的是,当串行数据中的数据包自身带有序号时,用于均衡处理器处理负荷的装置可以直接利用数据包自身的序号进行计算。当串行数据中的数据包自身没有序号时,需要按顺序为各数据包编号,此时需要在用于均衡处理器处理负荷的装置增加一个于为串行数据中数据包顺序编号的第六单元。第六单元可以在每个数据包的某一位置(数据包头或数据包尾)加入固定长度的序号。
图4示出了一种数据处理系统400,数据处理系统400包括多个对接收到的数据进行处理的处理器41,和一个用于均衡处理器处理负荷的装置42。
在数据处理系统400中,可以采用图2所示的装置200作为装置42,也可以采用图3所示的装置300作为装置42。
在另一个可选的数据处理系统的实施方式中,所述数据处理系统还包括一个用于按数据包的序号对接收到的数据包进行排序的排序装置。
在发送端,由于采用所述数据处理系统将串行高速数据转换为并行低速数据进行处理,而并行各路数据的传输时延并不相同,因此接收端接收到的数据包会乱序。这样,就需要在接收端增加排序装置。所述排序装置包括缓存单元、序号存放单元和控制单元。
缓存单元用于保存接收到的数据包,序号存放单元用于存放排序装置最后发出的数据包的序号。
控制单元用于按下述步骤对接收到的数据包进行排序:
每接收一个数据包后,判断该数据包的序号是否超出缓存单元的缓存范围;
如果是,则将缓存单元中保存的全部数据包按保存位置顺序发送,然后发送该数据包并将序号存放单元中的数据包序号更新为该数据包的序号;
否则,按该数据包的序号将该数据包保存在缓存单元中的对应位置。
控制单元将s-w的值和L-1进行比较,以判断该数据包的序号是否超出缓存单元的缓存范围。如果s-w>L-1则所述数据包的序号超出缓存单元的保存范围;否则,未超出。其中,s表示所述数据包的序号,w表示序号存放单元中保存的数据包序号,L表示缓存单元的长度。
此外,在将数据包保存到缓存单元时,控制单元将以s%L的计算结果作为保存所述数据包的位置,并将所述数据包保存在缓存单元中的该位置上。
假设缓存单元的长度L=10,即缓存单元可以保存10个数据包。接收端在接收数据包之初,序号存放单元中的数据包序号w=0。假设接收端接收到的数据包依次为数据包0、数据包3、数据包4、数据包2、数据包6、数据包7、数据包5、数据包8、数据包10......
当收到数据包0时,控制单元将0-0的值和10-1进行比较后,将以0%10的计算结果0作为保存数据包0的位置,将数据包0保存在缓存单元的位置0。当依次收到数据包3、数据包4、数据包2、数据包6、数据包7、数据包5、数据包8时,采用同样的过程可以将数据包3、数据包4、数据包2、数据包6、数据包7、数据包5和数据包8分别保存在缓存单元的位置3、位置4、位置2、位置6、位置7、位置5和位置8。
当收到数据包10时,控制单元将10-0的值和10-1进行比较后,会将缓存单元中保存的全部数据包按保存位置顺序发送,即,按位置0、位置2、位置3、位置4、位置5、位置6、位置7、位置8的顺序将保存的数据包0、数据包2、数据包3、数据包4、数据包5、数据包6、数据包7、数据包8依次全部发送,然后发送数据包10并将序号存放单元中的序号0更新为10。
可以看出,接收端接收到的数据包虽然依次为数据包0、数据包3、数据包4、数据包2、数据包6、数据包7、数据包5、数据包8、数据包10......,但是经过排序装置对数据包排序后,发送给后端的数据包依次为数据包0、数据包2、数据包3、数据包4、数据包5、数据包6、数据包7、数据包8、数据包10......。
图5示出了一种数据处理方法的流程。
在步骤51,将串行数据划分成多个数据组后向外部各处理器发送对应的数据组。
在步骤52,接收各处理器发送的资源使用率。
在步骤53,比较各处理器的资源使用率以确定最大的资源使用率和最小的资源使用率。
在步骤54,将最大的资源使用率和门限值进行比较。
在步骤55,在最大的资源使用率大于所述门限值时,减少对应于资源使用率最大的处理器的数据组数量并相应地增加对应于资源使用率最小的处理器的数据组数量。
将串行数据划分成多个数据组的方式可以有多种。其中一种可选的实施方式是根据串行数据中数据包的编号将各数据包划分到相应的数据组。如果用s表示串行数据中数据包的序号,则通过计算s%N即可获得s/N的余数,并将余数相同的数据包的集合作为一个数据组,这样就可以将串行数据划分成N个数据组。
此外,一种可选的调节数据组和处理器之间对应关系的方式是:
将对应于同一外部处理器的各数据组划分到一个数据组集合中,并对获得的M个数据组集合连续编号。这样,在重新划分处理器与数据组的对应关系时,需要比较i和j;在i>j时,从i到j+1按顺序将每个数据组集合中的n个数据组划分到前一个数据组集合中;在i<j时,从i到j-1按顺序将每个数据组集合中的n个数据组划分到后一个数据组集合中。其中,i表示对应于资源使用率最大的处理器的数据组集合的编号j表示对应于资源使用率最小的处理器的数据组集合的编号j,n为调整步长,n为正整数。
另一种可选的调节数据组和处理器之间对应关系的方式是在预先确定数据组与外部处理器的对应关系时,将余数连续的数据包对于同一个处理器。例如,令计算s%N后余数为0、1、2的数据包对应于第一处理器,余数为3、4、5的数据包对应于第二处理器,余数为6、7、8的数据包对应于第三处理器。将余数为0、1、2的数据包所在的数据组划分到数据组集合1,将余数为3、4、5的数据包所在的数据组划分到数据组集合2,将余数为6、7、8的数据包所在的数据组划分到数据组集合3。
假设调整步长n=1:
第一调整单元在进行调整时,可以从编号3到编号2按顺序将每个数据组集合中余数最小的1个数据组划分到前一个数据组集合中,即,第一调整单元将数据组集合3中的余数为6的数据组划分到数据组集合2中,并将数据组集合2中余数为3的数据组划分到数据组集合1中。重新划分后,对应于第一处理器的数据包变为计算s%N后余数为0、1、2、3的数据包,对应于第二处理器的数据包变为余数为4、5、6的数据包,对应于第三处理器的数据包变为余数为7、8的数据包。
第二调整单元在进行调整时,可以从编号1到编号2按顺序将每个数据组集合中余数最大的1个数据组划分到后一个数据组集合中,即,第二调整单元将数据组集合1中的余数为2的数据组划分到数据组集合2中,并将数据组集合2中余数为5的数据组划分到数据组集合1中。重新划分后,对应于第一处理器的数据包变为计算s%N后余数为0、1的数据包,对应于第二处理器的数据包变为余数为2、3、4的数据包,对应于第三处理器的数据包变为余数为5、6、7、8的数据包。
虽然上述是以调整步长n=1为例进行的说明,但是本领域技术人员完全可以看出,也可以根据需要将调整步长n设置为其它参数,而不违背上述实施方式的精神。
这里需要说明的是,当串行数据中的数据包自身带有序号时,可以直接利用数据包自身的序号进行计算。当串行数据中的数据包自身没有序号时,需要先按顺序为各数据包编号,然后在对数据包进行划分。一种可选的对数据包编号的方式是,在每个数据包的某一位置(数据包头或数据包尾)加入固定长度的序号。
图6示出了一种用于移动通信系统中基站侧的主控板600,主控板600包括分发单元61、接收单元62、比较单元63、均衡单元64、以太网交换单元65,系统控制处理器(SCP,System Control Processor)66和传输网络处理器(TNP,Transport network processor)67。
分发单元61用于将串行数据划分成多个数据组,并通过以太网交换单元65向SCP66和TNP67发送对应的数据组。SCP66和TNP67分别与以太网交换单元65连接,接收以太网交换单元65发送的数据。接收单元62用于接收SCP66和TNP67发送的资源使用率,比较单元63用于比较SCP66和TNP67的资源使用率,并将其中较大的资源使用率和门限值进行比较。均衡单元64用于在较大的资源使用率大于所述门限值时,减少对应于该资源使用率的处理器的数据组数量并相应地增加对应于资源使用率较小的处理器的数据组数量。
分发单元61将串行数据划分成多个数据组的方式可以有多种。其中一种可选的实施方式是根据串行数据中数据包的编号将各数据包划分到相应的数据组。如果用s表示串行数据中数据包的序号,则通过计算s%N即可获得s/N的余数,并将余数相同的数据包的集合作为一个数据组,这样就可以将串行数据划分成N个数据组。
通过计算s%N将串行数据中的各数据包加以划分后,分发单元61会通过以太网交换单元65将各数据包发送给SCP66和TNP67。
这里,数据组与SCP66或TNP67的对应关系是预先设定的,分发单元61只要按该对应关系发送对应的数据包即可。
其中,分发单元61可以采用不同的IP地址对发送给SCP66和TNP67的数据组中的数据包加以区分。这样,以太网交换单元65在收到分发单元61发送的数据包后就可以根据不同的IP地址,将数据包转发给SCP66或TNP67。同理,接收单元62通过以太网交换单元65收到SCP66或TNP67发送的资源使用率后,可以根据IP地址确定该资源使用率的来源。
在另一个主控板的实施例中,还可以增加一个编号单元S31。
编号单元S31用于将对应于同一外部处理器的各数据组划分到一个数据组集合中,并对获得的M个数据组集合连续编号。均衡单元64在重新划分处理器与数据组的对应关系时,需要比较i和j;在i>j时,从i到j+1按顺序将每个数据组集合中的n个数据组划分到前一个数据组集合中;在i<j时,从i到j-1按顺序将每个数据组集合中的n个数据组划分到后一个数据组集合中。其中,i表示对应于资源使用率最大的处理器的数据组集合的编号j表示对应于资源使用率最小的处理器的数据组集合的编号j,n为调整步长,n为正整数。
此时,均衡单元64包括下述几个单元:
用于比较i和j的第一比较单元;第一调整单元,用于在i>j时,从i到j+1按顺序将每个数据组集合中的n个数据组划分到前一个数据组集合中;和第二调整单元,用于在i<j时,从i到j-1按顺序将每个数据组集合中的n个数据组划分到后一个数据组集合中。
在图6所示的主控板600或图7所示的主控板700中,除保留SCP66自身原有的功能模块外,还需要把TNP67的各个功能某块(任务)复制一份到SCP66上。
在上述提供的所有实施例中都是利用数据包的序号将串行高速数据转换为并行低速数据,其实也可以不采用数据包的序号而直接利用现有的时分复用技术,通过控制分发时间将串行高速数据转换为并行低速数据。
图7示出了一种用于均衡处理器处理负荷的装置700,包括解复用单元71、第二单元22、第三单元23、第四单元24和调整单元72。装置700与图2所示的装置200相比,主要差别在于解复用单元71和调整单元72。
解复用单元71用于采用时分复用的方式将串行数据解复用并分发给外部各处理器发。调整单元72用于在最大的资源使用率大于所述门限值时,减少给资源使用率最大的处理器分发数据的时间并相应地增加给资源使用率最小的处理器分发数据的时间。
图8示出了一种数据处理系统800,数据处理系统800包括多个对接收到的数据进行处理的处理器41,和一个用于均衡处理器处理负荷的装置700。
图9示出了一种数据处理方法的流程。
在步骤91,采用时分复用的方式将串行数据解复用并分发给外部各处理器;
在步骤92,接收各处理器发送的资源使用率;
在步骤93,比较各处理器的资源使用率以确定最大的资源使用率和最小的资源使用率;
在步骤94,将最大的资源使用率和门限值进行比较;
在步骤95,在最大的资源使用率大于所述门限值时,减少给资源使用率最大的处理器分发数据的时间并相应地增加给资源使用率最小的处理器分发数据的时间。
图10示出了一种用于移动通信系统中基站侧的主控板1000,包括解复用单元101、接收单元62、比较单元63、调整单元102、以太网交换单元65、SCP66和TNP67。主控板1000与图6所示的主控板600相比,主要区别在于解复用单元101和调整单元102。
解复用单元101用于采用时分复用的方式将串行数据解复用,并通过以太网交换单元65将解复用后的数据分发给SCP66和TNP67。调整单元102,用于在较大的资源使用率大于所述门限值时,减少给资源使用率较大的处理器分发数据的时间并相应地增加给资源使用率较小的处理器分发数据的时间。
本领域技术人员可以明白,这里结合所公开的实施例描述的各种示例性的方法步骤和装置单元均可以电子硬件、软件或二者的结合来实现。为了清楚地示出硬件和软件之间的可交换性,以上对各种示例性的步骤和单元均以其功能性的形式进行总体上的描述。这种功能性是以硬件实现还是以软件实现依赖于特定的应用和整个系统所实现的设计约束。本领域技术人员能够针对每个特定的应用,以多种方式来实现所描述的功能性,但是这种实现的结果不应解释为倒是背离本发明的范围。
利用通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其它可编程的逻辑器件、分立门或者晶体管逻辑、分立硬件组件或者他们之中的任意组合,可以实现或执行结合这里公开的实施例描述的各种示例性的单元。通用处理器可能是微处理器,但是在另一种情况中,该处理器可能是任何常规的处理器、控制器、微控制器或者状态机。处理器也可能被实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、一个或者更多结合DSP核心的微处理器或者任何其他此种结构。
结合上述公开的实施例所描述的方法的步骤可直接体现为硬件、由处理器执行的软件模块或者这二者的组合。软件模块可能存在于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、移动磁盘、CD-ROM或者本领域熟知的任何其他形式的存储媒质中。一种典型存储媒质与处理器耦合,从而使得处理器能够从该存储媒质中读信息,且可向该存储媒质写信息。在替换实例中,存储媒质是处理器的组成部分。处理器和存储媒质可能存在于一个ASIC中。该ASIC可能存在于一个用户站中。在一个替换实例中,处理器和存储媒质可以作为用户站中的分立组件存在。
提供所述公开的实施例,可以使得本领域技术人员能够实现或者使用本发明。对于本领域技术人员来说,这些实施例的各种修改是显而易见的,并且这里定义的总体原理也可以在不脱离本发明的范围和主旨的基础上应用于其他实施例。以上所述的实施例仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (14)
1.一种均衡处理负荷的装置,其特征在于,包括:
第一单元,用于将串行数据划分成多个数据组后向外部各处理器发送对应的数据组,其中数据组的数量大于外部处理器的数量;
第二单元,用于接收各处理器发送的资源使用率;
第三单元,用于比较各处理器的资源使用率以确定最大的资源使用率和最小的资源使用率;
第四单元,用于将最大的资源使用率和门限值进行比较;和
第五单元,用于在最大的资源使用率大于所述门限值时,减少对应于资源使用率最大的处理器的数据组数量并相应地增加对应于资源使用率最小的处理器的数据组数量;
还包括:
编号单元,用于将对应于同一外部处理器的各数据组划分到一个数据组集合中,并对获得的M个数据组集合连续编号;
其中,M为处理器的个数;
第五单元包括:
第一比较单元,用于比较i和j;
第一调整单元,用于在i>j时,从i到j+1按顺序将每个数据组集合中的n个数据组划分到前一个数据组集合中;和
第二调整单元,用于在i<j时,从i到j-1按顺序将每个数据组集合中的n个数据组划分到后一个数据组集合中;
其中,i表示对应于资源使用率最大的处理器的数据组集合的编号,j表示对应于资源使用率最小的处理器的数据组集合的编号,n为设置的正整数。
2.如权利要求1所述的装置,其特征在于,第一单元计算s/N的余数并将余数相同的数据包的集合作为一个数据组,从而将串行数据划分成N个数据组;
其中,s表示串行数据中数据包的序号。
3.如权利要求2所述的装置,其特征在于,还包括用于为串行数据中数据包顺序编号的第六单元。
4.一种数据处理系统,包括多个对接收到的数据进行处理的处理器,其特征在于,还包括如权利要求1至3任一项所述的装置。
5.如权利要求4所述的数据处理系统,其特征在于,还包括用于按数据包的序号对接收到的数据包进行排序的排序装置。
6.如权利要求5所述的数据处理系统,其特征在于,所述排序装置包括:
缓存单元,用于保存接收到的数据包;
序号存放单元,用于存放排序装置最后发出的数据包的序号;和
控制单元,用于按下述步骤对接收到的数据包进行排序:
每接收一个数据包后,判断该数据包的序号是否超出缓存单元的缓存范围;
如果是,则将缓存单元中保存的全部数据包按保存位置顺序发送,然后发送该数据包并将序号存放单元中的数据包序号更新为该数据包的序号;
否则,按该数据包的序号将该数据包保存在缓存单元中的对应位置。
7.如权利要求6所述的数据处理系统,其特征在于,如果s-w>L-1,则所述数据包的序号超出缓存单元的保存范围;否则,未超出;
其中,s表示数据包的序号,w表示序号存放单元中保存的数据包序号,L表示缓存单元的长度。
8.如权利要求7所述的数据处理系统,其特征在于,以s/L的余数所指向的位置作为保存所述数据包的位置,将所述数据包保存在缓存单元中。
9.一种数据处理方法,其特征在于,包括:
将串行数据划分成多个数据组后向外部各处理器发送对应的数据组,其中数据组的数量大于外部处理器的数量;
接收各处理器发送的资源使用率;
比较各处理器的资源使用率以确定最大的资源使用率和最小的资源使用率;
将最大的资源使用率和门限值进行比较;
在最大的资源使用率大于所述门限值时,减少对应于资源使用率最大的处理器的数据组数量并相应地增加对应于资源使用率最小的处理器的数据组数量;
进一步包括:
将对应于同一外部处理器的各数据组划分到一个数据组集合中,并对获得的M个数据组集合连续编号;
其中,M为处理器的个数;
所述在最大的资源使用率大于所述门限值时,减少对应于资源使用率最大的处理器的数据组数量并相应地增加对应于资源使用率最小的处理器的数据组数量包括:
在最大的资源使用率大于所述门限值时比较i和j;
当i>j时,从i到j+1按顺序将每个数据组集合中的n个数据组划分到前一个数据组集合中;
当i<j时,从i到j-1按顺序将每个数据组集合中的n个数据组划分到后一个数据组集合中;
其中,i表示对应于资源使用率最大的处理器的数据组集合的编号,j表示对应于资源使用率最小的处理器的数据组集合的编号,n为设置的正整数。
10.如权利要求9所述的数据处理方法,其特征在于,计算s/N的余数并将余数相同的数据包的集合作为一个数据组,从而将串行数据划分成N个数据组;
其中,s表示串行数据中数据包的序号。
11.如权利要求10所述的数据处理方法,其特征在于,进一步包括:为串行数据中数据包顺序编号。
12.一种主控板,包括以太网交换单元,系统控制处理器SCP和传输网络处理器TNP;SCP和TNP分别与以太网交换单元连接,接收以太网交换单元发送的数据,其特征在于,还包括:
分发单元,用于将串行数据划分成多个数据组,并通过以太网交换单元向SCP和TNP发送对应的数据组;
接收单元,用于通过以太网交换单元接收SCP和TNP发送的资源使用率;
比较单元,用于比较SCP和TNP的资源使用率,并将其中较大的资源使用率和门限值进行比较;和
均衡单元,用于在较大的资源使用率大于所述门限值时,减少对应于该资源使用率的处理器的数据组数量并相应地增加对应于资源使用率较小的处理器的数据组数量;
还包括:
编号单元,用于将对应于同一外部处理器的各数据组划分到一个数据组集合中,并对获得的M个数据组集合连续编号;
其中,M为处理器的个数;均衡单元包括:
第一比较单元,用于比较i和j;
第一调整单元,用于在i>j时,从i到j+1按顺序将每个数据组集合中的n个数据组划分到前一个数据组集合中;和
第二调整单元,用于在i<j时,从i到j-1按顺序将每个数据组集合中的n个数据组划分到后一个数据组集合中;
其中,i表示对应于资源使用率最大的处理器的数据组集合的编号,j表示对应于资源使用率最小的处理器的数据组集合的编号,n为设置的正整数。
13.如权利要求12所述的主控板,其特征在于,分发单元计算s/N的余数并将余数相同的数据包的集合作为一个数据组,从而将串行数据划分成N个数据组;
其中,s表示串行数据中数据包的序号。
14.如权利要求12所述的主控板,其特征在于,分发单元通过IP地址区分发送给SCP和TNP的数据组;
接收单元通过IP地址区分SCP和TNP发送的资源使用率。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101021809A CN101539871B (zh) | 2008-03-18 | 2008-03-18 | 均衡处理负荷的装置、数据处理系统和方法、主控板 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101021809A CN101539871B (zh) | 2008-03-18 | 2008-03-18 | 均衡处理负荷的装置、数据处理系统和方法、主控板 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101539871A CN101539871A (zh) | 2009-09-23 |
CN101539871B true CN101539871B (zh) | 2012-06-27 |
Family
ID=41123072
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008101021809A Active CN101539871B (zh) | 2008-03-18 | 2008-03-18 | 均衡处理负荷的装置、数据处理系统和方法、主控板 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101539871B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101777009B (zh) * | 2009-11-30 | 2012-12-19 | 英业达股份有限公司 | 应用程序的负载控管方法 |
CN104980360B (zh) * | 2014-04-11 | 2018-11-30 | 华为技术有限公司 | 带宽控制方法和相关设备 |
CN105472780B (zh) * | 2015-12-28 | 2019-02-22 | 深圳市金溢科技股份有限公司 | 一种广域物联网基站的数据传输方法及广域物联网基站 |
CN110881058B (zh) * | 2018-09-06 | 2022-04-12 | 阿里巴巴集团控股有限公司 | 请求调度方法、装置、服务器及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6658449B1 (en) * | 2000-02-17 | 2003-12-02 | International Business Machines Corporation | Apparatus and method for periodic load balancing in a multiple run queue system |
CN1719806A (zh) * | 2005-07-15 | 2006-01-11 | 中国人民解放军国防科学技术大学 | 基于cache的网络处理器的动态负载分配方法及其装置 |
-
2008
- 2008-03-18 CN CN2008101021809A patent/CN101539871B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6658449B1 (en) * | 2000-02-17 | 2003-12-02 | International Business Machines Corporation | Apparatus and method for periodic load balancing in a multiple run queue system |
CN1719806A (zh) * | 2005-07-15 | 2006-01-11 | 中国人民解放军国防科学技术大学 | 基于cache的网络处理器的动态负载分配方法及其装置 |
Non-Patent Citations (1)
Title |
---|
刘需鸽.网络处理器负载均衡和报文转发设计与实现.《中国优秀博硕士学位论文全文数据库(硕士)》.2006,(第11期),16-20. * |
Also Published As
Publication number | Publication date |
---|---|
CN101539871A (zh) | 2009-09-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9391913B2 (en) | Express virtual channels in an on-chip interconnection network | |
CN107634912B (zh) | 负载均衡方法、装置及设备 | |
CN103701710A (zh) | 一种数据传输方法、核心转发设备以及端点转发设备 | |
US10313089B2 (en) | Method, apparatus, and system for transmitting data in ethernet | |
US8174987B2 (en) | Method and apparatus for implementing output queue-based flow control | |
CN101291194B (zh) | 报文保序的方法和系统 | |
US11570127B1 (en) | Reducing power consumption in an electronic device | |
CN101539871B (zh) | 均衡处理负荷的装置、数据处理系统和方法、主控板 | |
US20100097933A1 (en) | Fast credit system | |
US20040213151A1 (en) | Fabric access integrated circuit configured to bound cell reorder depth | |
US8989011B2 (en) | Communication over multiple virtual lanes using a shared buffer | |
CN103634224A (zh) | 网络中数据传输的方法和系统 | |
US11470010B2 (en) | Head-of-queue blocking for multiple lossless queues | |
CN104572498A (zh) | 报文的缓存管理方法和装置 | |
CN102281557A (zh) | 一种上行流量控制方法、装置、级联设备及基站 | |
US8116306B2 (en) | Shared memory system | |
US10067868B2 (en) | Memory architecture determining the number of replicas stored in memory banks or devices according to a packet size | |
CN1669279A (zh) | 提高分组应用的存储器存取效率 | |
CN104618083A (zh) | 一种多通道报文转发的方法 | |
CN104009817A (zh) | 一种基于网络编码的pon中的节能调度方法 | |
KR101014977B1 (ko) | 링크통합 기능에서 로드밸런싱 방법 | |
CN102780611A (zh) | 包交换电路及包交换方法 | |
CN210181584U (zh) | 多运算芯片的多链式通信系统 | |
CN111857817B (zh) | 数据读取方法、数据读取装置及数据读取系统 | |
CN111107016B (zh) | 一种网络拥塞控制方法、装置、芯片及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |