一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种通道分配方法和系统与流程

2022-11-23 16:20:19 来源:中国专利 TAG:


1.本发明涉及光通信技术领域,特别是涉及一种通道分配方法和系统。


背景技术:

2.随着通信业务的增长,光通信芯片往往要求具有更大的带宽和容量,大带宽在跨模块处理时需要大量缓存资源,大容量意味着光通信芯片所需要的模块数和模块逻辑资源大量增加,在此情况下,为了降低光通信芯片的功耗,使光通信芯片的缓存资源尽可能少,通常采用的方法是使各通道在带宽上均匀分布,即通道分配,以合理利用缓存资源。
3.现有的通道分配方法为在上下游模块设计间加入均匀分配电路,通过均匀分配电路进行通道分配,达到合理利用缓存资源的目的,这种通过硬件电路进行通道分配的方式不仅不够灵活,而且在维护时,需要对硬件电路进行更改,增加了后期维护成本和维护难度,同时,使用均匀分配电路还会增加额外的模块逻辑资源。
4.鉴于此,克服该现有技术所存在的缺陷是本技术领域亟待解决的问题。


技术实现要素:

5.本发明要解决的技术问题是现有技术中使用均匀分配电路进行通道分配的方式不够灵活,且需增加额外的模块逻辑资源。
6.本发明采用如下技术方案:
7.第一方面,本发明提供了一种通道分配方法,包括:
8.以待分配带宽中前预设大小的带宽作为基础带宽,在基础带宽的所有机会点中选取均匀分布且空闲的n个第一机会点,其中,n是通道所需要的机会点的数量;
9.以每一个第一机会点所在的位置作为一个标志位,在后n-1个标志位所对应的第一区间中,找到所包含的机会点数量少于目标数量的一个或多个第二区间,其中,每个第一区间的结束位置为对应的标志位,每个第一区间的起始位置为对应标志位的上一个标志位;
10.从前往后依次以每一个第二区间作为目标区间,将目标区间所对应的标志位向后平移,使位于标志位的机会点是空闲的机会点,且目标区间所包含的机会点数量为能够达到目标数量的最小数量,并将目标区间后的每一个第一区间所对应的标志位向后平移,使目标区间后的每一个第一区间所包含的空闲的机会点数量与平移前所包含的空闲的机会点数量一致;
11.将每个标志位所对应的机会点分配给通道。
12.优选的,所述在基础带宽的所有机会点中选取均匀分布且空闲的n个第一机会点,具体包括:
13.将所述基础带宽上所有空闲的机会点映射成为一段连续的虚拟机会点序列,在所述虚拟机会点序列的所有虚拟机会点中选取均匀分布的n个虚拟机会点;
14.将所述n个虚拟机会点反映射到基础带宽上,得到在基础带宽上均匀分布且空闲
的n个第一机会点。
15.优选的,所述在所述虚拟机会点序列的所有虚拟机会点中选取均匀分布的n个虚拟机会点,具体包括:
16.依次将m
×
1、m
×
2、

、m
×
n中的每个值作为基准值,将每个基准值除以n所得的商经向上取整或向下取整后,得到每一个所需选取的虚拟机会点在虚拟机会点序列中的位次,选取虚拟机会点序列中对应的位次的虚拟机会点,其中,m是虚拟机会点序列中所有机会点的数量。
17.优选的,当第一区间为半开半闭区间时,将目标区间所对应的标志位向后平移,具体包括:
18.找到位于所述目标区间的起始位置后的第i个机会点,若所述第i个机会点是空闲的机会点,将目标区间所对应的标志位平移到所述第i个机会点所在的位置;
19.否则,将目标区间所对应的标志位平移到所述第i个机会点后的第一个空闲的机会点所在的位置,其中,i为目标数量。
20.优选的,当第一区间为半开半闭区间时,所述并将目标区间后的每一个第一区间所对应的标志位向后平移,具体包括:
21.找到在将目标区间所对应的标志位向后平移过程中所增加包含的空闲的机会点数量j;
22.依次找到每一个第一区间所对应的标志位后的第j个空闲的机会点作为对应的指定位置,将每一个第一区间所对应的标志位向后平移到对应的指定位置。
23.优选的,所述目标数量是根据需要均匀分配的模块中所能允许的通道的机会点间的最小间隔阈值所决定的,具体包括:
24.以所述最小间隔阈值作为模拟目标数量进行模拟通道分配,若在模拟通道分配中的标志位平移过程中,在将标志位平移到待分配带宽上的最后一个空闲的机会点位置时,所述标志位对应的目标区间所包含的机会点数量仍不能达到目标数量,或所述标志位对应的第一区间所包含的空闲的机会点数量仍少于平移前所包含的空闲的机会点数量,则以本次模拟通道分配的上一次模拟通道分配中所使用的模拟目标数量作为最终使用的目标数量,用于进行通道分配;
25.否则,将本次模拟通道分配所使用的模拟目标数量增加预设增值后作为下一次的模拟目标数量进行下一次模拟通道分配。
26.优选的,在所述方法前还包括:
27.在待分配带宽的所有机会点中选取均匀分布且空闲的n个第一机会点,其中,n是通道所需要的机会点的数量;
28.以每一个第一机会点所在的位置作为一个标志位,在后n-1个标志位所对应的第三区间中,若每个第三区间所包含的机会点数量均大于等于最小间隔阈值,则将所述n个第一机会点分配给通道,不继续进行通道分配;
29.否则,继续进行通道分配,其中,每个第三区间的结束位置为对应的标志位,每个第三区间的起始位置为对应标志位的上一个标志位。
30.优选的,当需要为多个通道进行通道分配时,按照通道所需要的机会点的数量从大到小的顺序,依次为每一个通道进行通道分配,为每一个通道进行通道分配时,所述以待
分配带宽中前预设大小的带宽作为基础带宽,具体包括:
31.将待分配带宽中空闲的机会点的数量减去预设冗余值后的值作为基础带宽中所应当包含的空闲的机会点的数量n,将待分配带宽划分为前后两个区域,使前一个区域所包含的空闲的机会点的数量为n,将所述前一个区域对应的带宽作为基础带宽。
32.优选的,所述通道所需要的机会点的数量是根据通道所需要的带宽大小计算得出的,具体包括:
33.以通道所需要的带宽大小除以最小分配带宽大小,得到通道所需要的机会点的数量,其中,所述最小分配带宽大小为需要均匀分配的模块间的最小业务颗粒带宽大小或各个业务带宽的最小公倍数带宽大小。
34.第二方面,本发明提供了一种通道分配系统,所述系统包括选择模块和分配模块;
35.所述选择模块用于以待分配带宽中前预设大小的带宽作为基础带宽,在基础带宽的所有机会点中选取均匀分布且空闲的n个第一机会点,其中,n是通道所需要的机会点的数量;以每一个第一机会点所在的位置作为一个标志位,在后n-1个标志位所对应的第一区间中,找到所包含的机会点数量少于目标数量的一个或多个第二区间,其中,每个第一区间的结束位置为对应的标志位,每个第一区间的起始位置为对应标志位的上一个标志位;从前往后依次以每一个第二区间作为目标区间,将目标区间所对应的标志位向后平移,使位于标志位的机会点是空闲的机会点,且目标区间所包含的机会点数量为能够达到目标数量的最小数量,并将目标区间后的每一个第一区间所对应的标志位向后平移,使目标区间后的每一个第一区间所包含的空闲的机会点数量与平移前所包含的空闲的机会点数量一致;
36.所述分配模块用于将所述选择模块所选定的每个标志位所对应的机会点分配给通道。
37.第三方面,本发明还提供了一种通道分配装置,用于实现第一方面所述的通道分配方法,所述装置包括:
38.至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述处理器执行,用于执行第一方面所述的通道分配方法。
39.第四方面,本发明还提供了一种非易失性计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,用于完成第一方面所述的通道分配方法。
40.本发明提供了一种通道分配的方法,通过此方法进行通道分配无需引入均匀分配电路,使不增加额外的逻辑资源的同时,也更便于维护,降低后期维护成本。同时在本发明的优选实施例中,还能够适应多通道以及多个不同带宽的通道的分配,使通道分配更灵活,且本发明通过在分配时根据电路的时钟节拍处理需求确定给每个通道的机会点间间隔的机会点的数量,从而能够满足各种时钟节拍电路的通道分配需求。
附图说明
41.为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍。显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他
的附图。
42.图1是本发明实施例提供的一种通道分配方法的流程图;
43.图2是本发明实施例提供的一种通道分配方法的流程图;
44.图3是本发明实施例提供的一种通道分配方法的流程图;
45.图4是本发明实施例提供的一种通道分配方法的流程图;
46.图5是本发明实施例提供的一种通道分配方法的流程图;
47.图6是本发明实施例提供的一种通道分配方法的流程图;
48.图7是本发明实施例提供的一种通道分配方法的流程图;
49.图8是本发明实施例提供的一种通道分配方法的流程图;
50.图9是本发明实施例提供的一种通道分配方法的示意图;
51.图10是本发明实施例提供的一种通道分配方法的示意图;
52.图11是本发明实施例提供的一种通道分配系统的架构示意图;
53.图12是本发明实施例提供的一种通道分配装置的架构示意图。
具体实施方式
54.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
55.此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
56.实施例1:
57.本发明实施例1提供了一种通道分配方法,如图1所示,包括:
58.在步骤201中,以待分配带宽中前预设大小的带宽作为基础带宽,在基础带宽的所有机会点中选取均匀分布且空闲的n个第一机会点,其中,n是通道所需要的机会点的数量。
59.其中,所述待分配带宽可以是光通信芯片中的总带宽,也可以是总带宽上的部分带宽,所述预设大小由本领域人员根据光通信芯片电路设计的需求分析得出。通常情况下,以光通信芯片的总带宽作为待分配带宽,以光通信芯片显示给外界的带宽大小作为预设大小。
60.所述机会点是待分配带宽上所固有的,待分配带宽可以被视作为一段由机会点组成的序列,其中可能存在某些机会点已被其他通道所占用,即已被分配给其他通道,这样的机会点无法再次分配给通道,故将待分配带宽上未被通道占用的机会点描述为“空闲”的机会点,从而与已被通道占用的机会点做描述区分。
61.所述均匀分布并非指每两个机会点之间的间隔或相隔的机会点个数完全一致,而是所述n个机会点在基础带宽上广泛分布而不聚集,具体为:当将基础带宽以一定方式划分为多个区间时,所述n个机会点在多个区间零散分布。
62.所述通道所需要的机会点的数量是根据通道所需要的带宽大小计算得出的,具体包括:以通道所需要的带宽大小除以最小分配带宽大小,得到通道所需要的机会点的数量,其中,所述最小分配带宽大小为需要均匀分配的模块间的最小业务颗粒带宽大小或各个业务带宽的最小公倍数带宽大小。
63.在步骤202中,以每一个第一机会点所在的位置作为一个标志位,在后n-1个标志位所对应的第一区间中,找到所包含的机会点数量少于目标数量的一个或多个第二区间,其中,每个第一区间的结束位置为对应的标志位,每个第一区间的起始位置为对应标志位的上一个标志位。
64.其中,由于第一个标志位不存在上一个标志位,故没有对应的第一区间,所以第一区间的数量为n-1个。所述第一区间是半开半闭区间,闭区间和开区间中的一种,当所述第一区间为半开半闭区间,其所包含的机会点的数量为起始位置与结束位置之间的机会点的数量,再加上起始位置和结束位置中的一个位置所对应的一个机会点。
65.所述目标数量是本领域技术人员根据经验和最小间隔阈值分析得出的,所述最小间隔阈值是由本领域技术人员根据光通信芯片中的电路的时钟节拍处理需求分析得出的。由于光通信芯片中多节拍处理电路的不同,其在一个时钟周期内所能够处理的资源不同,在一些情况下,当电路处理到一个机会点的数据,在这个机会点中的数据依赖于上一个机会点的处理结果时,若此机会点与此通道的上一个机会点间间隔的时钟节拍过小,可能出现在处理此机会点数据时,上一个机会点的数据仍未能处理结束的情况,从而导致此机会点的数据无法被正常处理,而两个机会点之间间隔的时钟节拍是根据两个机会点在带宽上所处的位置决定的。
66.根据所使用的第一区间的性质不同,所应设置的最小间隔阈值和目标数量不同,如当第一区间为闭区间时所使用的最小间隔阈值与目标数量需大于第一区间为半开半闭区间时所使用的最小间隔阈值与目标数量,更大于开区间时所使用的最小间隔阈值与目标数量。目标数量需大于等于最小间隔阈值,通常,目标数量是能够使分配给通道的机会点在待分配带宽上最大限度广泛分布所对应的值。
67.在本实施例的后续内容中,未经说明的情况下,均以第一区间为半开半闭区间进行阐述说明。
68.在步骤203中,从前往后依次以每一个第二区间作为目标区间,将目标区间所对应的标志位向后平移,使位于标志位的机会点是空闲的机会点,且目标区间所包含的机会点数量为能够达到目标数量的最小数量,并将目标区间后的每一个第一区间所对应的标志位向后平移,使目标区间后的每一个第一区间所包含的空闲的机会点数量与平移前所包含的空闲的机会点数量一致。
69.其中,由于每个第一区间的结束位置为对应的标志位,每个第一区间的起始位置为对应标志位的上一个标志位,故当标志位位置发生变化时,所对应的第一区间也发生变化,又由于每两个相邻的第一区间之间必然存在标志位的公用,即在后n-1个标志位对应的n-1个区间中,第m个第一区间的结束位置与第m 1个第一区间的起始位置所使用的标志位相同(0《m《n-1),故当标志位位置发生变化时,还会引起所对应的第一区间的下一个第一区间发生变化。
70.由于在待分配带宽中,已被其他通道占用的机会点与空闲的机会点可能交叉分布,在将目标区间所对应的标志位向后平移的过程中,当目标区间所包含的机会点数量为目标数量时,标志位所对应的机会点可能是已被其他通道占用的机会点,这样的机会点无法分配给通道,故继续向后平移,使位于标志位的机会点是空闲的机会点,此时目标区间所包含的机会点数量为能够达到目标数量的最小数量。
71.所述目标区间后的每一个第一区间具体为,在目标区间所对应的标志位向后平移前,目标区间对应的标志位后的每一个标志位所对应的第一区间。
72.在将标志位向后平移过程中,可能出现标志位间的相对位置发生改变,如从前往后分别有第一标志位和第二标志位,当第一标志位后移时,可能出现第一标志位移动到第二标志位所在的位置,或第一标志位移动到第二标志位后方,当第一标志位是第二标志位的上一个标志位,即第二标志位所对应的第一区间的起始位置为第一标志位时,第一标志位的后移导致了第一区间的起始位置在结束位置之后,为了保证通道分配的正确,规定当第一区间的起始位置在结束位置之后或起始位置与结束位置相同时,第一区间所包含的机会点和空闲的机会点的数量均为零。
73.在步骤204中,将每个标志位所对应的机会点分配给通道。
74.本实施例通过先选取均匀分布的机会点,再通过向后平移,使分配给通道的机会点满足电路的时钟节拍处理的要求,从而实现通道分配,使光通信芯片的缓存资源被合理利用,同时,本发明实施例不需要额外的均匀分配电路,无需增加额外的逻辑资源,在维护时无需更改硬件,节省了物料和人力成本。
75.在上述步骤203中,所述将目标区间所对应的标志位向后平移的其中一种实现方式为:将目标区间所对应的标志位依次向后平移到空闲的机会点所在的位置,直至平移后目标区间所包含的机会点达到i个机会点。此实现方式需要每平移一次便进行一次目标区间所包含的机会点数量的判断,效率较低,为此,存在以下优选的实施例,具体包括:
76.找到位于所述目标区间的起始位置后的第i个机会点,若所述第i个机会点是空闲的机会点,将目标区间所对应的标志位平移到所述第i个机会点所在的位置。否则,将目标区间所对应的标志位平移到所述第i个机会点后的第一个空闲的机会点所在的位置,其中,i为目标数量。
77.本优选的实现方式通过先找到使目标区间包含机会点数量达到目标数量的位置,再找到位于该位置或该位置后的第一个空闲的机会点,减少判断的次数,提高标志位向后平移过程的效率。
78.在上述步骤203中,所述并将目标区间后的每一个第一区间所对应的标志位向后平移的其中一种实现方式为:记录在目标区间的标志位平移前每一个第一区间内所包含的空闲的机会点的数量,将第一区间所对应的标志位依次向后平移到空闲的机会点,直至第一区间内包含的空闲的机会点的数量是否与目标区间的标志位平移前第一区间内包含的空闲的机会点的数量一致,本实现方式同样需要频繁平移判断,且可能存在多个第一区间中所包含空闲的机会点的数量不相同的情况,为了解决此情况,需记录在目标区间的标志位平移前每一个第一区间内所包含的空闲的机会点的数量,耗费资源较大,针对此情况,存在以下优选的实施例,具体包括:
79.找到在将目标区间所对应的标志位向后平移过程中所增加包含的空闲的机会点数量j;依次找到每一个第一区间所对应的标志位后的第j个空闲的机会点作为对应的指定位置,将每一个第一区间所对应的标志位向后平移到对应的指定位置。
80.其中,所述第一区间包括第二区间,在依次找到第j个空闲的机会点时,并不将已被通道占用的机会点纳入查找,如j等于2且某个第一区间所对应的标志位后存在3个机会点的情况下,当第2个机会点已被其他通道占用时,则所得到的第2个空闲的机会点为标志
位后的第3个机会点。
81.本优选实现方式通过计算目标区间的标志位向后平移前后包含的空闲机会点的差值为第一区间的标志位进行平移,由于在后移过程中,每个第一区间中空闲的机会点的变化量都由上一个第一区间后移过程决定,而目标区间是后移过程的第一个第一区间,故目标区间中空闲的机会点的变化量即是目标区间后每一个第一区间所需要的变化量,根据此变化量进行平移,从而提高平移的效率和减少资源的占用。
82.在上述实施例中,所述在基础带宽的所有机会点中选取均匀分布且空闲的n个第一机会点的实现方式有多种,其中一种实现方式为:当基础带宽中的机会点均空闲时,所述在基础带宽的所有机会点中选取均匀分布且空闲的n个第一机会点可以通过直接在基础带宽上进行遍历选取得到。
83.但在实际情况中,基础带宽上可能存在一些机会点已被其他通道所占用,此时仅通过简单的遍历选取可能选取到已被其他通道占用的机会点,即不满足空闲的条件,为了同时满足均匀分布和机会点空闲的条件,为此提出了一种优选的实现方式,如图2所示,具体包括:
84.在步骤301中,将所述基础带宽上所有空闲的机会点映射成为一段连续的虚拟机会点序列,在所述虚拟机会点序列的所有虚拟机会点中选取均匀分布的n个虚拟机会点。
85.在步骤302中,将所述n个虚拟机会点反映射到基础带宽上,得到在基础带宽上均匀分布且空闲的n个第一机会点。
86.所述映射与反映射可以通过在映射时另外存储虚拟机会点序列中虚拟机会点与基础带宽上机会点的对应关系实现,也可以通过直接将虚拟机会点定义为对应的机会点在待分配带宽中的位次实现,如若基础带宽上存在5个机会点,其中,第1个、第3个与第5个机会点空闲,则得到的虚拟机会点序列中的虚拟机会点分别为1、3、5,在反映射时,可直接通过虚拟机会点找到在基础带宽中的对应的机会点。
87.本优选的实现方式能够在基础带宽中存在已被其他通道占用的机会点时,能够选取到均匀分布且空闲的第一机会点。
88.通常在对象序列上选取数个均匀分布的目标对象所能够采用的方式是,用对象序列上对象的总个数除以想要选取的目标对象的个数,得到每两个目标对象之间间隔的对象的个数n;选取对象序列上的第一个对象作为第一个目标对象,依次以最新选取的目标对象作为起始点,选取起始点后的第n个对象作为目标对象,直至选取的目标对象数量达到需求。通过此方式在所述虚拟机会点序列的所有虚拟机会点中选取均匀分布的n个虚拟机会点的方式简单易实现,但当所述虚拟机会点序列中虚拟机会点的个数无法被n除断时,通常需要对商进行近似运算得到n,当采用向上取整的近似运算时,可能出现n过大,而导致按照n进行选取时无法选取到n个虚拟机会点,而当采用向下取整时,可能出现n过小,而导致选取到的虚拟机会点分布不够广泛,为此,提出了以下优选的实现方式,具体包括:
89.依次将m
×
1、m
×
2、

、m
×
n中的每个值作为基准值,将每个基准值除以n所得的商经向上取整或向下取整,得到每一个所需选取的虚拟机会点在虚拟机会点序列中的位次,选取虚拟机会点序列中对应的位次的虚拟机会点,其中,m是虚拟机会点序列中所有机会点的数量。
90.其中,在计算时,可以统一使用向上取整或向下取整中的一种进行所有位次的计
算,或在每个基准值除以n所得的商分别经向上取整和向下取整所得到的两个值中,选择较贴近基准值的一方作为对应的位次。
91.当选择向上取整进行计算时,本实现方式使用公式进行表示所得如下所示:
[0092][0093]
其中,l为所需选取的虚拟机会点在虚拟机会点序列中的位次,m为虚拟机会点序列中所有机会点的数量,n为所需选取的虚拟机会点的数量,k分别取在大于0小于等于n的区间内的各个整数,表示向上取整。任何不违背本公式的原理,通过本公式进行变种所得到的计算方法均应包含在本发明的保护范围之内。
[0094]
本实现方式能够排除虚拟机会点序列中虚拟机会点数量的影响,使选取到的虚拟机会点必定能够达到n个且能够在虚拟机会点序列上最大限度地广泛分布。
[0095]
依据上述公式的原理,对其进行变种的其中一种所得的计算方法如图3所示,具体包括:
[0096]
在步骤401中,依次访问所述虚拟机会点序列上的虚拟机会点。
[0097]
在步骤402中,每访问一个虚拟机会点,计算得到每一个虚拟机会点对应的分值为第一数值减去第二数值,其中,第一数值为n乘以虚拟机会点的位次,第二数值为已选取的虚拟机会点的数量加上1后再乘以m,若分值大于等于零,则选取位于所述位次的虚拟机会点,继续访问所述虚拟机会点的下一个虚拟机会点。
[0098]
其中,第二数值为已选取的虚拟机会点的数量加上1后再乘以m,即所得出的第二数值的意义为待选取的虚拟机会点是第几个需选取的机会点,即未变种前的公式中的k,由此得出,本实现方式中分值的计算公式为:
[0099]
l
×
n-m
×k[0100]
其中,m、n与未变种前的公式中的意义相同,l为访问每一个虚拟机会点时所对应的位次,k分别取在大于0小于等于n的区间内的各个整数。
[0101]
当分值大于等于0时,则认为所得的l的值为未变种前的公式中所需选取的虚拟机会点在虚拟机会点序列中的位次l,本计算方法通过将依次访问找到符合未变种前的公式的虚拟机会点的位次作为l,选取处于该位次的虚拟机会点,本计算方式相较未变种前的公式更适用于机械运算。
[0102]
在上述变种后的计算方法的基础上,更进一步优化所得的计算方法如图4所示,具体包括:
[0103]
在步骤501中,依次访问所述虚拟机会点序列上的虚拟机会点。
[0104]
在步骤502中,每访问一个虚拟机会点,令分值q加上n得到变量m1,若m1大于等于m,则将m1减去m得到的值作为q,选取所述虚拟机会点,继续访问所述虚拟机会点的下一个虚拟机会点;否则,令m等于m1,继续访问所述虚拟机会点的下一个虚拟机会点,其中,分值q的初始值为0。
[0105]
本计算方法所使用的原理与上述变种后的计算方法所使用的原理一致,但更加发挥了机械运算能够进行迭代计算的优势,通过每一次迭代中的累加和减法运算,替代变种后的计算方法中频繁进行的乘法运算,提高计算的效率,且在m或n极大的情况下,运用减法运算后所得的值较变种后的计算方法中乘法运算所得的值的量级较小,为存储值的变量所
预留的空间能够更小,减少了资源占用。
[0106]
在使用本计算方式时,需要依次访问虚拟机会点序列上的虚拟机会点,而在上述实施例中的步骤203中,也能够通过依次访问虚拟机会点序列上的虚拟机会点实现相应的平移,为了提高计算的效率,可以通过将这两个过程穿插进行,减少依次访问的次数,故还存在一种优选的通道分配方法,如图5所示,具体包括:
[0107]
在步骤601中,将所述待分配带宽上所有空闲的机会点映射成为一段连续的虚拟机会点序列。
[0108]
在步骤602中,依次访问所述虚拟机会点序列上的虚拟机会点。
[0109]
在步骤603中,每访问一个虚拟机会点,令分值q加上n得到变量m1,其中,分值q的初始值为0,若m1小于m,则令m等于m1,继续访问所述虚拟机会点的下一个虚拟机会点,其中,m是待分配带宽中前预设大小的带宽上空闲的机会点的数量。
[0110]
在步骤604中,若m1大于等于m,则将m1减去m得到的值作为q,若所访问的虚拟机会点满足目标数量的需求,则选取所述虚拟机会点,继续访问所述虚拟机会点的下一个虚拟机会点;否则,找到所访问的虚拟机会点后第一个满足目标数量的需求的第一虚拟机会点,选取所述第一虚拟机会点,继续访问所述第一虚拟机会点的下一个虚拟机会点,其中,所述满足目标数量的需求是指一个虚拟机会点与上一次选取的虚拟机会点分别对应的机会点之间所间隔的机会点的数量大于等于目标数量。
[0111]
在步骤605中,将所述n个虚拟机会点反映射到待分配带宽上,得到在待分配带宽上的n个第一机会点,将n个第一机会点分配给通道。
[0112]
在本实施例的后续内容中,将直接使用满足目标数量的需求代指一个虚拟机会点与上一次选取的虚拟机会点分别对应的机会点之间所间隔的机会点的数量大于等于目标数量,或代指一个机会点与上一次选取的机会点之间所间隔的机会点的数量大于等于目标数量,并直接使用满足最小间隔阈值的需求代指一个机会点与上一次选取的机会点之间所间隔的机会点的数量大于等于最小间隔阈值。
[0113]
本优选的实施例通过直接使用待分配带宽进行映射,并在选取均匀分布的虚拟机会点的同时,通过后移选点替代了标志位的向后平移,两者所实现的效果是一致的,再根据后移选择的机会点选取下一个虚拟机会点,使在只进行一次虚拟机会点的遍历的情况下,直接选取到满足均匀分布的同时且满足目标数量的需求的机会点,满足通道分配的需求,同时提高了效率。
[0114]
在上述实施例中,根据目标数量的大小和通道所需机会点数量不同,分配给通道的机会点在待分配带宽上分布的广泛程度不同,为了使所得到的机会点不受通道所需机会点数量影响,始终能够最大程度的广泛分布,存在以下优选的实施例,具体包括:
[0115]
以所述最小间隔阈值作为模拟目标数量进行模拟通道分配,若在模拟通道分配中的标志位平移过程中,在将标志位平移到待分配带宽上的最后一个空闲的机会点位置时,所述标志位对应的目标区间所包含的机会点数量仍不能达到目标数量,或所述标志位对应的第一区间所包含的空闲的机会点数量仍少于平移前所包含的空闲的机会点数量,则以本次模拟通道分配的上一次模拟通道分配中所使用的模拟目标数量作为最终使用的目标数量,用于进行通道分配。
[0116]
否则,将本次模拟通道分配所使用的模拟目标数量增加预设增值后作为下一次的
模拟目标数量进行下一次模拟通道分配。
[0117]
其中,所述模拟通道分配的方法与通道分配的方法类似,两者的区别仅仅在于,通道分配所使用的是目标数量,且为通道分配标志位所对应的机会点,而模拟通道分配使用的是模拟目标数量,所得到的标志位对应的机会点不分配给通道,进行模拟通道分配的目的仅仅是为了得到最大且能够满足通道分配需求的目标数量。所述预设增值是由本领域技术人员根据经验分析得出的,通常设置为1。
[0118]
由于在所述最后一次模拟通道分配时,标志位平移无法满足模拟目标数量的需求,故选用倒数第二次模拟通道分配所使用的模拟目标数量作为最终使用的目标数量,从而使选取的机会点之间间隔的机会点数量最多,即选取的是在待分配带宽上分布最广泛的机会点。
[0119]
本实施例通过使用不同的模拟目标数量进行模拟通道分配,得到能够满足分配需求的最大的目标数量的值,使在进行实际的通道分配时,分配给通道的机会点在待分配带宽上最大程度的广泛分布。
[0120]
在实际情况中,根据选取的基础带宽的大小不同和最小间隔阈值的大小不同,可能导致进行模拟通道分配的次数不同,当基础带宽过小、最小间隔阈值过小或待分配带宽过大时,可能增加模拟通道分配的次数,导致通道分配过程所消耗的时间变长,为了解决此问题,存在以下优选的实施例,如图6所示,即在所述方法前,具体包括:
[0121]
在步骤701中,在待分配带宽的所有机会点中选取均匀分布且空闲的n个第一机会点,其中,n是通道所需要的机会点的数量。
[0122]
在步骤702中,以每一个第一机会点所在的位置作为一个标志位,在后n-1个标志位所对应的第三区间中,若每个第三区间所包含的机会点数量均大于等于最小间隔阈值,则将所述n个第一机会点分配给通道,不继续进行通道分配。
[0123]
在步骤703中,否则,继续进行通道分配,其中,每个第三区间的结束位置为对应的标志位,每个第三区间的起始位置为对应标志位的上一个标志位。
[0124]
本优选实施例通过在通过基础带宽进行通道分配前,尝试使用待分配带宽进行分配,若选取的机会点满足最小间隔阈值的需求,则将机会点分配给通道,否则再通过基础带宽进行通道分配,使当待分配通道足够长时,无需进行多次模拟通道分配便能够找到最大限度广泛分布的机会点,提高了通道分配的效率。
[0125]
在实际情况中,可能需要为多个通道分配机会点,由于各个通道所需机会点的数量的不同,为每一个通道进行通道分配的先后顺序可能影响到最终分配给各个通道的机会点的结果,若不区分通道所需机会点的数量的大小,直接为多个通道进行通道分配,可能出现先为所需机会点的数量少的通道进行通道分配后,待分配带宽中空闲的机会点的分布较密集,再为所需机会点数量多的通道进行通道分配时,选取的机会点无法满足每两个机会点间间隔目标数量的机会点的需求,且当为多个通道进行通道分配时,故存在以下优选的实施例,具体包括:
[0126]
当需要为多个通道进行通道分配时,按照通道所需要的机会点的数量从大到小的顺序,依次为每一个通道进行通道分配。
[0127]
其中,当为所需机会点数量大的通道进行通道分配时,待分配带宽中的空闲的机会点被分配给通道的机会点间隔开来,形成多个小聚集区,当再为所需机会点数量小的通
道进行通道分配时,选取的机会点能够处于多个不同的聚集区中,即被已分配给通道的机会点间隔开来,从而使每两个机会点间间隔目标数量的机会点的需求。
[0128]
基于此优选的实施例,当为多个通道进行通道分配时,由于通道分配过程中存在标志位的向后平移,即最终分配给通道的机会点可能处于基础带宽外侧,当基础带宽外侧的机会点全部被分配给通道时,在后续为其他通道进行通道分配时,必定存在标志位移出基础带宽时,无法找到空闲的机会点,导致通道分配失败,针对此问题,还存在一种优选的实现方式,即在为每一个通道进行通道分配时,所述以待分配带宽中前预设大小的带宽作为基础带宽,具体包括:
[0129]
将待分配带宽中空闲的机会点的数量减去预设冗余值后的值作为基础带宽中所应当包含的空闲的机会点的数量n,将待分配带宽划分为前后两个区域,使前一个区域所包含的空闲的机会点的数量为n,将所述前一个区域对应的带宽作为基础带宽。
[0130]
所述预设冗余值是本领域技术人员根据经验和通道分配需求分析得出的。
[0131]
本优选的实现方式通过保证在基础带宽外始终存在预设冗余值的空闲的机会点,保证在需为多个通道分配的情况下,通道分配能够正常进行。
[0132]
本实施例中的“第一”、“第二”和“第三”没有特殊的限定的含义,之所以用其做描述仅仅是为了方便在一类对象中差异出不同的个体进行表述,不应当将其作为顺序或者其他方面带有特殊限定含义解释。
[0133]
实施例2:
[0134]
本发明基于实施例1所描述的方法基础上,结合具体的应用场景,并借由相关场景下的技术表述来阐述本发明特性场景下的实现过程。
[0135]
本实施例中所使用的光通信芯片中的总带宽的带宽大小为432g,其中模块间的最小业务颗粒带宽为250m,故总带宽所对应的机会点数量为1650个。光通信芯片显示给外界的带宽大小为400g,即系统带宽为400g,则冗余带宽为432g-400g=32g,本实施例中以硬件开发过程中通常使用的1g=1000m为标准进行计算,系统带宽所对应的机会点数量为1600个,冗余带宽中所对应的机会点数量为50个,根据所使用的光通信芯片的电路的时钟节拍处理需求,由本领域技术人员所设定的最小间隔阈值为4。
[0136]
若将总带宽作为待分配带宽,为6个通道分配机会点,这6个通道所需要的带宽大小分别为18750m、97500m、52500m、95000m、6250m和80000m,则计算所得这6个通道所需要的机会点数量分别为75个、390个、210个、380个、25个和320个。
[0137]
将6个通道按照所需机会点的数量降序排序,得到存放6个通道的序列ch,其中,ch[0]所需机会点数量为390个,ch[1]所需机会点数量为380个,ch[2]所需机会点数量为320个,ch[3]所需机会点数量为210个,ch[4]所需机会点数量为75个,ch[5]所需机会点数量为25个,依次为ch[0]、ch[1]、ch[2]、ch[3]、ch[4]、ch[5]进行通道分配,其中,为ch[i](i≥0且i≤5)进行通道分配的具体步骤如图7所示,具体包括:
[0138]
在步骤801中,将待分配带宽上所有空闲机会点映射为一段连续的虚拟机会点序列w,虚拟机会点是对应的空闲的机会点在待分配带宽中的位次,将w中虚拟机会点的个数记作m,将ch[i]所需机会点的数量记作n,将预设最小阈值记作gap,q=0,j=0,z=-gap,预设数组newarry,其中,将待分配带宽中的所有空闲机会点映射为一段连续的机会点序列w是为了便于直接访问,而无需在每次访问时判断所访问的是空闲机会点还是已被通道占用
的机会点,q是用于记录所访问的虚拟机会点对应的分值,j是用于访问w上机会点的计数值,z用于记录上一次选取到的虚拟机会点,newarry用于存放找到的机会点,在为每一个通道进行通道分配前,先将这些序列、值、数组进行初始化,再进入步骤802。
[0139]
在步骤802中,令q=q n,即计算正在访问的虚拟机会点的分值,进入步骤803。
[0140]
在步骤803中,判断q是否大于等于m,若q大于等于m,则进入步骤804,否则,进入步骤808。
[0141]
在步骤804中,判断w[j]-z是否大于等于gap,若w[j]-z大于等于gap,则说明所访问的虚拟机会点能够满足目标数量的需求,则进入步骤805,其中,当所访问第一个虚拟机会点时,还未选取上一个虚拟机会点,由于z的初始值为-gap,故所找到的第一个虚拟机会点必然满足w[j]-z大于等于gap,否则,说明所访问的虚拟机会点无法满足目标数量的需求,即使用待分配带宽找到最大限度广泛分布的机会点时,选取的虚拟机会点无法满足目标数量的需求,则中断此次分配,进入步骤810中通过基础带宽进行通道分配。
[0142]
在步骤805中,将w[j]记录到newarry的末尾,令z=w[j],q=q-m,即选取正在访问的虚拟机会点,进入步骤806。
[0143]
在步骤806中,判断newarry中记录的虚拟机会点的数量是否达到了n个,若newarry中记录的虚拟机会点的数量达到了n个,则说明使用待分配带宽找到最大限度广泛分布的机会点时,选取的虚拟机会点能够满足目标数量的需求,进入步骤807中将虚拟机会点所对应的机会点分配给通道,否则,进入步骤808。
[0144]
在步骤807中,将newarry中记录的n个虚拟机会点所对应的机会点分配给ch[i],结束为ch[i]进行通道分配,若ch[i]后还存在待分配的通道,则令i=i 1,进行下一个通道的通道分配。
[0145]
在步骤808中,令j=j 1,进入步骤809。
[0146]
在步骤809中,判断j是否大于等于w的长度,若j大于等于w的长度,则说明通道所需的机会点的数量大于待分配带宽中空闲机会点的数量,通道分配在此情况下无法进行,通道分配错误,记录本次通道分配错误,以便于后续本领域技术人员跟踪处理,结束为ch[i]进行通道分配,进行下一个通道的通道分配,否则,进入步骤802,继续访问下一个机会点,进行分值q的计算。
[0147]
在步骤810中,通过基础带宽进行通道分配,为ch[i]进行通道分配结束后,进行下一个通道的通道分配。
[0148]
在上述步骤810中,通过基础带宽进行通道分配如图8所示,具体包括:
[0149]
在步骤901中,将待分配带宽上所有空闲机会点映射为一段连续的虚拟机会点序列w,虚拟机会点是对应的空闲的机会点在待分配带宽中的位次,令模拟目标数量gap等于最小间隔阈值,选取待分配带宽中前预设大小的带宽上空闲的机会点的数量作为m,预设数组oldarry,newarry,其中,w和newarry意义与上述步骤801中的w和newarry意义相同,在此步骤中,也可延用上述步骤810中的w并将newarry清空后使用,仅需计算得到m,而无需再度映射序列以及新建newarry数组和其他变量,其中,newarry用于存放最新一轮模拟通道分配所得到的虚拟机会点,oldarry用于存放最新一轮的上一轮模拟通道分配所得到的机会点,进入步骤902。
[0150]
在步骤902中,令q=0,j=0,z=-gap,q是用于记录所访问的虚拟机会点对应的分
值,j是用于访问w上虚拟机会点的计数值,z用于记录上一次选取到的虚拟机会点,每进行一轮模拟通道分配,将这些值初始化,进入步骤903。
[0151]
在步骤903中,令q=q n,即计算正在访问的虚拟机会点的分值,进入步骤904。
[0152]
在步骤904中,判断q是否大于等于m,若q大于等于m,则进入步骤905,否则,进入步骤912。
[0153]
在步骤905中,判断w[j]-z是否大于等于gap,若w[j]-z大于等于gap,则说明所访问的虚拟机会点能够满足模拟目标数量的需求,进入步骤906,否则,说明所访问的虚拟机会点无法满足模拟目标数量的需求,进入步骤910中查找w[j]后第一个满足模拟目标数量的需求的虚拟机会点。
[0154]
在步骤906中,将w[j]记录到newarry的末尾,令z=w[j],q=q-m,即选取正在访问的虚拟机会点,进入步骤907。
[0155]
在步骤907中,判断newarry中记录的虚拟机会点的数量是否达到了n个,若newarry中记录的虚拟机会点的数量达到了n个,则说明本轮模拟通道分配能够选取到通道所需数量的机会点,但无法判断本轮所使用的模拟目标数量是否是所能使用的最大的目标数量,为了找到最大的目标数量,以使分配给通道的机会点在待分配带宽上最大程度的广泛分布,进入步骤908中进行下一轮模拟通道分配,否则,进入步骤912。
[0156]
在步骤908中,令oldarry=newarry,将newarry中记录的机会点清空,即在进入下一轮模拟通道分配前,记录本轮模拟通道分配的结果,进入步骤909;
[0157]
在步骤909中,令gap=gap 预设增值,将本轮的模拟目标数量增加预设增值后作为下一轮的模拟目标数量,进入步骤910。
[0158]
在步骤910中,令j=j 1,进入步骤911。
[0159]
在步骤911中,判断j是否大于等于w的长度,若j大于等于w的长度,则说明本轮模拟通道分配中,未能选取到通道所需数量的机会点,说明本轮模拟通道分配所使用的模拟目标数量过大,在上一轮模拟通道分配中所使用的模拟目标数量已是使分配给通道的机会点在待分配带宽上最大程度的广泛分布的目标数量,进入步骤914中将上一轮选取到的虚拟机会点对应的机会点分配给通道,否则,进入步骤905中进行目标数量判断,以找到满足目标数量的需求的虚拟机会点。
[0160]
在步骤912中,令j=j 1,进入步骤913。
[0161]
在步骤913中,判断j是否大于等于w的长度,若j大于等于w的长度,则说明本轮模拟通道分配中,未能选取到通道所需数量的机会点,说明本轮模拟通道分配所使用的模拟目标数量过大,在上一轮模拟通道分配中所使用的模拟目标数量已是使分配给通道的机会点在待分配带宽上最大程度的广泛分布的目标数量,进入步骤914中将上一轮选取到的虚拟机会点对应的机会点分配给通道,否则,进入步骤903中,访问下一个虚拟机会点,进行分值q的计算;
[0162]
在步骤914中,将oldarry中记录的n个虚拟机会点对应的机会点分配给ch[i],在为ch[i]进行通道分配结束后,进行下一个通道的通道分配,当oldarry为空时,说明通道分配错误,记录本次通道分配错误,以便于后续本领域技术人员跟踪处理。
[0163]
下面将通过实际的应用场景,阐述上述步骤801到810以及步骤901到步骤914中的部分关键步骤的过程。以总带宽作为待分配带宽,最小间隔阈值为4,以冗余带宽上机会点
的数量作为预设冗余值,即预设冗余值为50,以1为预设增值,为通道ch[0]分配380个机会点的过程中,先通过累加和减法得到分值q,通过分值q进行虚拟机会点的选取,即执行上述801到809等步骤,其中,在步骤801中,由于待分配带宽中的机会点未被任何通道占用,故映射得到的w即为总带宽中所有机会点对应的位次的序列;当访问到总带宽中第5个机会点,即j=4时,在步骤802中计算得出的q值为1950,大于等于m,且在步骤804中,w[j]-z=4-(-4)=8大于等于gap,故在步骤805中,将w[j]记录到newarry的末尾,在虚拟机会点的选取过程中,所选取的机会点与上一次选取的虚拟机会点所对应的机会点间的间隔均大于等于gap,在记录到390个机会点后,进入到步骤807中,所分配给通道ch[0]的机会点如图9所示,即将总带宽中第5个、第9个、第13个、

、第1600个、第1604个、

、第1650个这390个机会点分配给ch[0],由于通常在算法实现过程中会将总带宽从0开始计数编号,故如图9所示,表现为将序号为4、8、12、

、1599、1603、

、1649这390个机会点分配给ch[0],由于选取得到的机会点已满足最小间隔阈值的需求,故无需再执行步骤810。
[0164]
为通道ch[1]分配380个机会点的过程中,先通过累加和减法得到分值q,通过分值q进行虚拟机会点的选取,由于总带宽中的部分机会点被通道ch[0]占用,故此时总带宽中空闲机会点的数量为1260个,所得虚拟机会点序列w如图10所示,其中,基础带宽所对应的空闲的机会点即为虚拟机会点序列w上前m个虚拟机会点所对应的机会点,当访问到序列w[13]=17时,即访问到总带宽的第18个机会点时,在步骤802中计算得出的q值大于等于m且该机会点与上一次的虚拟机会点所对应的机会点间的间隔大于等于gap,将该机会点记录到newarry中,而当访问到序列w[16]=20时,即访问到总带宽中第21个机会点时,此时z=w[13]=17,w[16]-z=3小于gap,不满足最小阈值的需求,故中断此次分配,进入步骤810中,通过基础带宽进行模拟通道分配。
[0165]
在为通道ch[1]通过基础带宽进行模拟通道分配时,计算得出基础带宽中空闲的机会点的数量m=1260-50=1210,所使用的模拟目标数量gap为4时,能够记录到380个虚拟机会点,将模拟目标数量增加1,即使用gap=5再进行机会点查找,此时,所记录的虚拟机会点数量无法达到380个,故选用4作为最终所使用的目标数量,将使用4进行模拟通道分配时所记录的虚拟机会点对应的机会点分配给通道ch[1],所分配给ch[1]的机会点如图10所示。
[0166]
本实施例中的“第一”、“第二”和“第三”没有特殊的限定的含义,之所以用其做描述仅仅是为了方便在一类对象中差异出不同的个体进行表述,不应当将其作为顺序或者其他方面带有特殊限定含义解释。
[0167]
实施例3:
[0168]
在实施例1和实施例2的基础上,本实施例还提供了一种通道分配系统,如图11所示,所述系统包括选择模块和分配模块。
[0169]
所述选择模块用于以待分配带宽中前预设大小的带宽作为基础带宽,在基础带宽的所有机会点中选取均匀分布且空闲的n个第一机会点,其中,n是通道所需要的机会点的数量;以每一个第一机会点所在的位置作为一个标志位,在后n-1个标志位所对应的第一区间中,找到所包含的机会点数量少于目标数量的一个或多个第二区间,其中,每个第一区间的结束位置为对应的标志位,每个第一区间的起始位置为对应标志位的上一个标志位;从前往后依次以每一个第二区间作为目标区间,将目标区间所对应的标志位向后平移,使位
于标志位的机会点是空闲的机会点,且目标区间所包含的机会点数量为能够达到目标数量的最小数量,并将目标区间后的每一个第一区间所对应的标志位向后平移,使目标区间后的每一个第一区间所包含的空闲的机会点数量与平移前所包含的空闲的机会点数量一致。
[0170]
所述分配模块用于将所述选择模块所选定的每个标志位所对应的机会点分配给通道。
[0171]
实施例4:
[0172]
如图12所示,是本发明实施例的一种通道分配装置的架构示意图。本实施例的通道分配装置包括一个或多个处理器21以及存储器22。其中,图12中以一个处理器21为例。
[0173]
处理器21和存储器22可以通过总线或者其他方式连接,图12中以通过总线连接为例。
[0174]
存储器22作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序和非易失性计算机可执行程序,如实施例1中的通道分配方法。处理器21通过运行存储在存储器22中的非易失性软件程序和指令,从而执行通道分配方法。
[0175]
存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器22可选包括相对于处理器21远程设置的存储器,这些远程存储器可以通过网络连接至处理器21。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0176]
所述程序指令/模块存储在所述存储器22中,当被所述一个或者多个处理器21执行时,执行上述实施例1和实施例2中的通道分配方法,例如,执行以上描述的图1到图8所示的各个步骤。
[0177]
值得说明的是,上述装置和系统内的模块、单元之间的信息交互、执行过程等内容,由于与本发明的处理方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
[0178]
本领域普通技术人员可以理解实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(rom,read only memory)、随机存取存储器(ram,random access memory)、磁盘或光盘等。
[0179]
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献