CN114124845A - 一种bd调度方法及装置 - Google Patents
一种bd调度方法及装置 Download PDFInfo
- Publication number
- CN114124845A CN114124845A CN202111446780.9A CN202111446780A CN114124845A CN 114124845 A CN114124845 A CN 114124845A CN 202111446780 A CN202111446780 A CN 202111446780A CN 114124845 A CN114124845 A CN 114124845A
- Authority
- CN
- China
- Prior art keywords
- channel
- logical channel
- bds
- row
- dimensional array
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 38
- 238000004364 calculation method Methods 0.000 claims description 19
- 238000001514 detection method Methods 0.000 claims description 12
- 239000000872 buffer Substances 0.000 description 10
- 230000008569 process Effects 0.000 description 9
- 239000012634 fragment Substances 0.000 description 7
- 238000010521 absorption reaction Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 239000000284 extract Substances 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000013467 fragmentation Methods 0.000 description 2
- 238000006062 fragmentation reaction Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/901—Buffering arrangements using storage descriptor, e.g. read or write pointers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/52—Queue scheduling by attributing bandwidth to queues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/625—Queue scheduling characterised by scheduling criteria for service slots or service orders
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9084—Reactions to storage capacity overflow
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供了一种BD调度方法及装置,涉及网络技术领域,上述方法包括:每个时钟周期,检测物理通道所映射的各个逻辑通道中当前暂存BD的个数最多的逻辑通道;从检测到的逻辑通道中选择一个逻辑通道,作为目标通道;从目标通道中提取预设数量个BD,其中,预设数量为:每一时钟周期内输入各个逻辑通道的BD的总数量。应用本发明实施例提供的方案可以对各个逻辑通道中的BD进行调度,从而防止逻辑通道溢出。
Description
技术领域
本发明涉及网络技术领域,特别是涉及一种BD调度方法及装置。
背景技术
在网络设备内的交换芯片接收到报文之后,交换芯片可以对所接收到的报文进行处理,并且可以查找路由表中与报文的目的地址相匹配的路由表项,将查找到的路由表项记录的地址确定为报文的下一跳转发地址,再按照所查找到的转发地址转发报文。
在交换芯片接收到报文到完成报文转发的期间,交换芯片需要对报文进行存储。现有技术中,交换芯片可以对接收到的报文进行分片处理,并生成分别记录有每一分片的存储地址的BD(Burst Descriptor,数据片描述符),交换芯片可以存储各个数据片以及BD,在转发报文时可以基于BD确定数据片的存储地址,从而从存储地址处获取数据片,并将数据片组合为报文进行转发。
另外,交换芯片可以包含多条传输数据的物理通道,每一条物理通道可映射到任意的内部逻辑通道,每条逻辑通道均可以并行传输生成BD,需要对不同逻辑通道中的BD进行调度,以按照不同的速率从不同的逻辑通道中提取并存储BD,以防止逻辑通道中未被存储的BD过多造成逻辑通道溢出。但逻辑通道的带宽会动态的发生变化,逻辑通道的带宽增大后传输BD的速度会增加,若继续以原本的速率从该逻辑通道中提取并存储BD,会造成该逻辑通道溢出。
发明内容
本发明实施例的目的在于提供一种BD调度方法及装置,从而对各个逻辑通道中的BD进行调度,以防止逻辑通道溢出。具体技术方案如下:
第一方面,本发明实施例提供了一种BD调度方法,所述方法包括:
每个时钟周期,检测物理通道所映射的各个逻辑通道中当前暂存数据片描述符BD的个数最多的逻辑通道;
从检测到的逻辑通道中选择一个逻辑通道,作为目标通道;
从所述目标通道中提取预设数量个BD,其中,所述预设数量为:每一时钟周期内输入各个逻辑通道的BD的总数量。
本发明的一个实施例中,以二维数组的形式表示各个逻辑通道当前包含的BD的数量,其中,所述二维数组的每一行的行号表示一个逻辑通道,所述二维数组的每一列的列号表示一个BD的个数值,元素取值为二进制1表示:该元素所在行的行号表示的逻辑通道当前暂存BD的数量为该元素所在列的列号加1,除取值为1的元素之外,所述二维数组中其他元素的取值为二进制0;
所述每个时钟周期,检测所支持的各个逻辑通道中当前暂存数据片描述符BD的个数最多的逻辑通道,包括:
每个时钟周期,基于所述二维数组确定当前暂存BD的个数最多的逻辑通道。
本发明的一个实施例中,所述基于所述二维数组确定当前暂存BD的个数最多的逻辑通道,包括:
分别对每一列中包含的各个元素的元素值进行或计算,将各列的计算结果组成一个行向量,其中,行向量中每一元素的标号表示一个BD的个数值;
确定所述行向量中标号最大、取值为1的元素,将该元素的标号确定为逻辑通道中当前暂存BD的最大个数;
查找所述二维数组中列号为所述最大个数的列中取值为1的元素,将所查找到的元素的行号表示的逻辑通道确定为当前暂存BD的个数最多的逻辑通道。
本发明的一个实施例中,所述二维数组中的每一行以一个One-Hot计数器的形式表示。
本发明的一个实施例中,在所述预设数量为2的情况下,每一逻辑通道中能够容纳的BD的最大数量为:所述逻辑通道的数量的以2为底的对数向上取整。
第二方面,本发明实施例提供了一种BD调度装置,所述装置包括:
通道检测模块,用于每个时钟周期,检测物理通道所映射的各个逻辑通道中当前暂存BD的个数最多的逻辑通道;
通道选择模块,用于从检测到的逻辑通道中选择一个逻辑通道,作为目标通道;
BD存储模块,用于从所述目标通道中提取预设数量个BD,其中,所述预设数量为:每一时钟周期内输入各个逻辑通道的BD的总数量。
本发明的一个实施例中,以二维数组的形式表示各个逻辑通道当前包含的BD的数量,其中,所述二维数组的每一行的行号表示一个逻辑通道,所述二维数组的每一列的列号表示一个BD的个数值,元素取值为二进制1表示:该元素所在行的行号表示的逻辑通道当前暂存BD的数量为该元素所在列的列号加1,除取值为1的元素之外,所述二维数组中其他元素的取值为二进制0;
所述通道检测模块,包括:
通道检测子模块,用于每个时钟周期,基于所述二维数组确定当前暂存BD的个数最多的逻辑通道。
本发明的一个实施例中,所述通道检测子模块,具体用于:
分别对每一列中包含的各个元素的元素值进行或计算,将各列的计算结果组成一个行向量,其中,行向量中每一元素的标号表示一个BD的个数值;
确定所述行向量中标号最大、取值为1的元素,将该元素的标号确定为逻辑通道中当前暂存BD的最大个数;
查找所述二维数组中列号为所述最大个数的列中取值为1的元素,将所查找到的元素的行号表示的逻辑通道确定为当前暂存BD的个数最多的逻辑通道。
本发明的一个实施例中,所述二维数组中的每一行以一个One-Hot计数器的形式表示。
本发明的一个实施例中,在所述预设数量为2的情况下,每一逻辑通道中能够容纳的BD的最大数量为:所述逻辑通道的数量的以2为底的对数向上取整。
本发明实施例有益效果:
本发明实施例提供了一种BD调度方法,每个时钟周期,检测物理通道所映射的各个逻辑通道中当前暂存BD的个数最多的逻辑通道;从检测到的逻辑通道中选择一个逻辑通道,作为目标通道;从目标通道中提取预设数量个BD,上述预设数量与每一时钟周期内输入各个逻辑通道的BD的总数量相同。
由以上可见,本发明实施例中每一时钟周期内从所选择的当前暂存BD的个数最多的目标通道中提取出预设数量个BD,与输入逻辑通道中的BD的总数量相同,因此在总体上输入与输出逻辑通道的BD数量持平,通过一定片上缓存的吸收后在总体上可以避免逻辑通道发生溢出的可能性。另外,逻辑通道的带宽越大,输入BD的速率越高,逻辑通道中当前暂存的BD的数量就可能越多,本发明实施例优先对当前包含BD的数量最多的逻辑通道,也就是最有可能发生溢出的逻辑通道中的BD进行调度,可以使得包含BD的数量越多的逻辑通道输出BD的速率越高,也就是逻辑通道的带宽越大输出BD的速率越大,即使逻辑通道的带宽发生变化,逻辑通道输出BD的速率依旧可以与逻辑通道的带宽相匹配,从而可以防止逻辑通道溢出。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的第一种BD调度方法的流程示意图;
图2为本发明实施例提供的第二种BD调度方法的流程示意图;
图3为本发明实施例提供的第一种BD调度装置的结构示意图;
图4为本发明实施例提供的第二种BD调度装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员基于本申请所获得的所有其他实施例,都属于本发明保护的范围。
为了防止逻辑通道发生溢出,本发明实施例提供了一种BD调度方法及装置。
本发明实施例提供了一种BD调度方法,上述方法包括:
每个时钟周期,确定物理通道所映射的各个逻辑通道中当前暂存BD的个数最多的逻辑通道;
从检测到的逻辑通道中选择一个逻辑通道,作为目标通道;
从上述目标通道中提取预设数量个BD,其中,上述预设数量为:每个时钟周期内输入各个逻辑通道的BD的总数量。
由以上可见,本发明实施例中每一时钟周期内从所选择的当前暂存BD的个数最多的目标通道中提取出预设数量个BD,与输入逻辑通道中的BD的总数量相同,因此在总体上输入与输出逻辑通道的BD数量持平,通过一定片上缓存的吸收后在总体上可以避免逻辑通道发生溢出的可能性。另外,逻辑通道的带宽越大,输入BD的速率越高,逻辑通道中当前暂存的BD的数量就可能越多,本发明实施例优先对当前包含BD的数量最多的逻辑通道,也就是最有可能发生溢出的逻辑通道中的BD进行调度,可以使得包含BD的数量越多的逻辑通道输出BD的速率越高,也就是逻辑通道的带宽越大输出BD的速率越大,即使逻辑通道的带宽发生变化,逻辑通道输出BD的速率依旧可以与逻辑通道的带宽相匹配,从而可以防止逻辑通道溢出。
参见图1,为本发明实施例提供的第一种BD调度方法的流程示意图,上述方法包括以下步骤S101-S103。本发明可以执行于交换芯片。
具体的,交换芯片可以接收ETH/ILKN MAC(Ethernet/Interlaken Medium AccessControl,以太网/片间互联介质访问控制)协议支持的物理通道传输的报文,并将物理通道报文进行分片处理并映射至交换芯片中的DP(Data Path,数据处理)系统内不同的逻辑通道中,继续进行后续处理。
其中,可以通过MAC对报文进行分片处理,并将所得到的数据片写入IFIFO(InputFirst Input First Output,先进先出),每一数据片的数据量为128字节。Round-Robin选择仲裁器可以周期性的读取写入IFIFO的数据片进行后续处理,DP会将处理完成后的数据片写入主FIFO,并且生成与数据片一一对应的BD。
具体的,上述生成BD的过程可以通过现有技术的方式实现,本发明实施例对此不再赘述。
S101:每个时钟周期,检测物理通道所映射的各个逻辑通道中当前暂存BD的个数最多的逻辑通道。
其中,每个时钟周期报文接收侧可向逻辑通道缓存内输入一次BD,所输入的BD可以来自于同一逻辑通道也可以来自于不同的逻辑通道。并且,每个时钟周期也可以从一个逻辑通道缓存中提取一次BD,使得逻辑通道中包含的BD的数量发生变化。因此每一个时钟周期,便可以确定一次各个逻辑通道中包含的BD的数量。
本发明的一个实施例中,可以从本发明实施例开始执行起,针对每一逻辑通道,每个时钟周期确定一次输入与输出该逻辑通道BD的数量,从而确定该逻辑通道中BD数量的变化情况,并在上个时钟周期记录的该逻辑通道的BD数量的基础上调整得到逻辑通道当前包含的BD的数量。
按照上述过程可确定各个逻辑通道中当前包含的BD的数量,从而确定当前暂存BD的个数最多的逻辑通道。
具体的,可以依次比较各个逻辑通道中包含的BD的数量,先确定包含的BD的最大数量,再确定包含BD的数量为上述最大数量的逻辑通道,作为目标通道。
S102:从检测到的逻辑通道中选择一个逻辑通道,作为目标通道。
若当前暂存BD的个数最大的逻辑通道的数量大于1,则可以依次选择其中的一个逻辑通道,作为目标通道。
S103:从上述目标通道中提取预设数量个BD。
其中,上述预设数量为:每一时钟周期输入各个逻辑通道的BD的总数量。
具体的,在每个时钟周期输入各个逻辑通道的BD的总数量与物理通道的带宽相关,物理通道的带宽越大,在每个时钟周期输入各个逻辑通道的BD的总数量越多,物理通道的带宽是不确定的,比如某个ILKN的子通道带宽是不确定的,FlexE(FlexEthernet,灵活以太网)的子通道在动态切换的过程中也是动态改变的。
另外,若目标通道中包含的BD的数量小于上述预设数量,则将目标通道中包含的所有BD均从目标通道中提取出来。
在将BD从目标通道中提取出来之后,可以生成包含所提取的BD的LBD(LinkedBurst Descriptor,联合数据片描述符)中,并将所生成的LBD存储进VFIFO(Virtual FirstInput First Output,虚拟先进先出队列)中。
由以上可见,本发明实施例中每一时钟周期内从所选择的当前暂存BD的个数最多的目标通道中提取出预设数量个BD,与输入逻辑通道中的BD的总数量相同,因此在总体上输入与输出逻辑通道的BD数量持平,通过一定片上缓存的吸收后在总体上可以避免逻辑通道发生溢出的可能性。另外,逻辑通道的带宽越大,输入BD的速率越高,逻辑通道中当前暂存的BD的数量就可能越多,本发明实施例优先对当前包含BD的数量最多的逻辑通道,也就是最有可能发生溢出的逻辑通道中的BD进行调度,可以使得包含BD的数量越多的逻辑通道输出BD的速率越高,也就是逻辑通道的带宽越大输出BD的速率越大,即使逻辑通道的带宽发生变化,逻辑通道输出BD的速率依旧可以与逻辑通道的带宽相匹配,从而可以防止逻辑通道溢出。
参见图2,为本发明实施例提供的第二种BD调度方法的流程示意图,与前述图1所示的实施例相比,以二维数组的形式表示各个逻辑通道当前包含的BD的数量。
其中,上述二维数组的每一行的行号表示一个逻辑通道,上述二维数组的每一列的列号表示一个BD的个数值,元素取值为二进制1表示:该元素所在行的行号表示的逻辑通道当前暂存BD的数量为该元素所在列的列号加1,除取值为1的元素之外,上述二维数组中其他元素的取值为二进制0。
例如,若存在m个逻辑通道,则二维数组中包含m行,每个逻辑通道中最多容纳n个BD,则二维数组中包含n列,二维数组中每一元素为一个二进制数,因此二维数组的总数据量为m×nbits。
具体的,若当前存在256个逻辑通道,每一逻辑通道中最多容纳8个BD,则二维数组的总数据量为256×8=2048bits。
另外,二维数组Y中第0-n行分别对应逻辑通道0-n,二维数组Y中的元素Y[i][j]的取值为1,则表示逻辑通道i中当前暂存j+1个BD。若第i行的各个元素的取值均为0,则表示逻辑通道i中未存储有BD。例如,元素Y[10][6]的取值为1,则表示逻辑通道10中包含6+1=7个BD。具体的,上述二维数组中的每一行可以以一个One-Hot计数器的形式表示。也就是每一个One-Hot计数器用于表示一个逻辑通道中当前暂存BD的个数,One-Hot计数器中的各个元素的标号分别表示一个BD的个数值,元素取值为1表示:该One-Hot计数器表示的逻辑通道中当前暂存BD的个数为该元素的标号值加1。每一One-Hot计数器中仅包含一个取值为1的元素,其他元素的取值为0。
另外,上述二维数组的列数为各个逻辑通道中能够暂存的BD最大数量。各个列按列号由小到大的顺序,所对应的个数值依次提高。
其中,在上述预设数量为2,也就是。交换芯片接收侧每个时钟周期最多输入2个BD的情况下,为保证逻辑通道缓存不溢出,每一逻辑通道中能够容纳的BD的最大数量为:上述逻辑通道的数量的以2为底的对数。
例如,若逻辑通道的数量为256,则每一逻辑通道中能够容纳的BD的最大数量为8。
具体的,若当前各个逻辑通道中均包含0个BD,接收侧每个时钟周期最多输入2个BD。通过本发明实施例提取逻辑通道中暂存的BD。
第一种情况:2个BD都输入同一个逻辑通道缓存。按照上述算法,交换芯片的电路能确定暂存BD最多的逻辑通道,并对选定的逻辑通道提取输入的这2个BD。在这种情况下,每个逻辑通道最少能够暂存2个BD就能满足缓存不溢出的要求。
第二种情况,2个BD输入不同的逻辑通道缓存。按照上述算法,电路能确定暂存BD最多的一个逻辑通道,并提取所选择的一个逻辑通道中的1个BD,这时就出现一个时钟周期向逻辑通道中输入2个BD,但从逻辑通道中提取1个BD,另1个BD依旧暂存在逻辑通道缓存中的情况,输入输出逻辑通道的BD的数量不相同,也就是逻辑通道输入与输出的带宽此时是不匹配的。
本发明实施例需要确定在支持n个逻辑通道,逻辑通道缓存不溢出情况下,每个逻辑通道缓存至少需要能够暂存多少个BD。以n=256为例,最极端的假设场景是:第一个输入周期为128个时钟周期,每个时钟周期逻辑通道共输入2个BD,一共输入256个BD,每个BD都依次存入256个不同的逻辑通道缓存,经过128个时钟周期,256个逻辑通道都可分别存入1个BD,通过本发明实施例提供的方案,每个时钟周期能够选中一个逻辑通道提取1个BD,也就是说128个时钟周期共能提取出128个BD,另外128个BD只能暂存在128个逻辑通道缓存中。通过上述分析可以看到未被提取的128个逻辑通道分别需要暂存1个BD。
第二个输入周期为64个时钟周期,每个时钟周期依旧向逻辑通道中输入2个BD,一共输入128个BD,每个BD分别存入已经暂存有1个BD的上述128个逻辑通道。经过64个时钟周期,128个已经暂存有1个BD的逻辑通道都将存有2个BD,输出侧,通过本发明实施例提供的方案,每个时钟周期能够选中一个逻辑通道提取2个BD,64个时钟周期共能够选中64个逻辑通道,64个逻辑通道每个逻辑通道都将提取2个BD,另外未被选中的64个逻辑通道将分别累计存有2个BD。
依次类推,在最极端的情况下,每一个输入周期内,从未被选中过的逻辑通道中便会有一半的逻辑通道被选中输出BD,被选中的逻辑通道中暂存的BD的数量便会减少。另一半逻辑通道依旧未被选中,继续存储BD,并且每经过一个输入周期,从未被选中过的逻辑通道中就会增加1个暂存的BD。若存在256个逻辑通道,则需要经过log2256=8个输入周期,每一逻辑通道才均会被选中一次,并输出BD,而经过8个输入周期后最后一个被选中的逻辑通道将累计存有8个BD,即逻辑通道需要暂存的BD最大数量为8。
逻辑通道为256个仅为本发明实施例的一种可能情况,为便于分析,上文以256为例对逻辑通道中能够容纳的BD的最大数量进行了推论。同理,若逻辑通道的数量为128,则每一逻辑通道内能够容纳的BD的最大数量为7,依此类推,其他示例不再赘述。
另外,上述场景是最极端的场景,在这种情况下逻辑通道不会溢出,则在其它情况下采用本发明实施例逻辑通道均不会发生溢出,因此逻辑通道中能够容纳的BD的最大数量也是为了保证逻辑通道不溢出,每个逻辑通道至少需要能够缓存的BD的个数,也可以将其称为最小通道缓存量。
通过上述分析,可确定在保证逻辑通道缓存不溢出的情况,每个逻辑通道至少需要能够缓存的BD个数。在设计交换芯片时可以以最小通道缓存量为各个逻辑通道预留存储空间,从而可以在实现本发明实施例的功能的基础上尽量减少交换芯片的硬件开销。
与前述图1所示的实施例相比,上述步骤S101可以通过以下步骤S101A实现。
S101A:每个时钟周期,基于上述二维数组确定当前暂存BD的个数最多的逻辑通道。
具体的,可以按照所对应的BD的个数值由大到小的顺序,依次遍历各个列,直至确定包含取值为1的元素的列,则表示存在当前暂存的BD的个数为该列的列号的逻辑通道。再确定该列中取值为1的元素的行号表示的逻辑通道,即为当前暂存BD的个数最多的逻辑通道。
另外,也可以分别遍历二维数组中的各个行,确定该行中取值为1的元素,将所确定的元素的列号确定为该行的行号表示的逻辑通道中当前暂存的BD的数量。在分别确定各个逻辑通道中当前暂存的BD的数量后再进行比较,从而确定当前暂存BD的个数最多的逻辑通道。
本发明的一个实施例中,可以通过以下步骤A-步骤C实现上述步骤S101A。
步骤A:分别对二维数组的每一列中包含的各个元素的元素值进行或计算,将各列的计算结果组成一个行向量。
其中,行向量中每一元素的标号表示一个BD的个数值。
具体的,对于二维数组中的每一列,若该列中包含取值为1的元素,则对该列中包含的元素值进行或计算,计算结果为1,若该列中包含的各个元素的取值均为0,那么对该列中各元素的元素值进行或计算得到的计算结果为0。
另外,行向量中元素的个数与二维数组的列数相同。针对二维数组的每一列,可以将该列的计算结果存储到行向量中标号与该列列号相同的元素处。若该列的计算结果为1,则表示存在当前暂存BD的个数为该列列号的逻辑通道,行向量中标号与该列列号相同的元素的取值也为1,因此行向量中元素的取值为1,则表示存在当前暂存BD的个数为该元素标号的逻辑通道。
步骤B:确定上述行向量中标号最大、取值为1的元素,将该元素的标号确定为逻辑通道中当前暂存BD的最大个数。
具体的,若行向量中元素的取值为1,表示存在当前暂存BD的个数为该元素标号的逻辑通道,选择取值为1的元素中标号最大的元素,该元素的标号即为逻辑通道中当前暂存BD的最大个数。
步骤C:查找上述二维数组中列号为上述最大个数的列中取值为1的元素,将所查找到的元素的行号表示的逻辑通道确定为当前暂存BD的个数最多的逻辑通道。
由以上可见,本发明实施例中可以以二维数组的形式表示各个逻辑通道中包含的BD的数量,仅需要查找上述二维数组中记录的元素值便可以确定当前暂存的BD最多的逻辑通道。二维数组中记录的均为二进制数,处理二进制数所需的计算资源较少,并且通过硬件电路而不需要通过软件便可以完成对二进制数的处理,在确定当前暂存的BD最多的逻辑通道的过程中不需要进行软硬件交互,因此通过本发明实施例提供的方案可以提高查找当前暂存的BD最多的逻辑通道的效率。
本发明的另一个实施例中,每经过一个时钟周期,逻辑通道中包含的BD的数量便可能会发生变化,可以调整包含的BD的数量发生变化的逻辑通道对应的行中包含的元素的元素值,以使得下一时钟周期内,交换芯片依旧可以基于上述二维数组确定当前暂存的BD最多的逻辑通道。
与前述BD调度方法相对应,本发明实施例还提供了一种BD调度装置。
参见图3,为本发明实施例提供的第一种BD调度装置的结构示意图,上述装置包括:
通道检测模块301,用于每个时钟周期,检测物理通道所映射的各个逻辑通道中当前暂存BD的个数最多的逻辑通道;
通道选择模块302,用于从检测到的逻辑通道中选择一个逻辑通道,作为目标通道;
BD存储模块303,用于从所述目标通道中提取预设数量个BD,其中,所述预设数量为:每一时钟周期内输入各个逻辑通道的BD的总数量。
由以上可见,本发明实施例中每一时钟周期内从所选择的当前暂存BD的个数最多的目标通道中提取出预设数量个BD,与输入逻辑通道中的BD的总数量相同,因此在总体上输入与输出逻辑通道的BD数量持平,通过一定片上缓存的吸收后在总体上可以避免逻辑通道发生溢出的可能性。另外,逻辑通道的带宽越大,输入BD的速率越高,逻辑通道中当前暂存的BD的数量就可能越多,本发明实施例优先对当前包含BD的数量最多的逻辑通道,也就是最有可能发生溢出的逻辑通道中的BD进行调度,可以使得包含BD的数量越多的逻辑通道输出BD的速率越高,也就是逻辑通道的带宽越大输出BD的速率越大,即使逻辑通道的带宽发生变化,逻辑通道输出BD的速率依旧可以与逻辑通道的带宽相匹配,从而可以防止逻辑通道溢出。
参见图4,为本发明实施例提供的第二种BD调度装置的结构示意图与前述图3所示的实施例相比,以二维数组的形式表示各个逻辑通道当前包含的BD的数量,其中,所述二维数组的每一行的行号表示一个逻辑通道,所述二维数组的每一列的列号表示一个BD的个数值,元素取值为二进制1表示:该元素所在行的行号表示的逻辑通道当前暂存BD的数量为该元素所在列的列号加1,除取值为1的元素之外,所述二维数组中其他元素的取值为二进制0;
所述通道检测模块301,包括:
通道检测子模块301A,用于每个时钟周期,基于所述二维数组确定当前暂存BD的个数最多的逻辑通道。
由以上可见,本发明实施例中可以以二维数组的形式表示各个逻辑通道中包含的BD的数量,仅需要查找上述二维数组中记录的元素值便可以确定当前暂存的BD最多的逻辑通道。二维数组中记录的均为二进制数,处理二进制数所需的计算资源较少,并且通过硬件电路而不需要通过软件便可以完成对二进制数的处理,在确定当前暂存的BD最多的逻辑通道的过程中不需要进行软硬件交互,因此通过本发明实施例提供的方案可以提高查找当前暂存的BD最多的逻辑通道的效率。
本发明的一个实施例中,所述通道检测子模块301A,具体用于:
分别对二维数组的每一列中包含的各个元素的元素值进行或计算,将各列的计算结果组成一个行向量,其中,行向量中每一元素的标号表示一个BD的个数值;
确定所述行向量中标号最大、取值为1的元素,将该元素的标号确定为逻辑通道中当前暂存BD的最大个数;
查找所述二维数组中列号为所述最大个数的列中取值为1的元素,将所查找到的元素的行号表示的逻辑通道确定为当前暂存BD的个数最多的逻辑通道。
本发明的一个实施例中,所述二维数组中的每一行以一个One-Hot计数器的形式表示。
本发明的一个实施例中,在所述预设数量为2的情况下,每一逻辑通道中能够容纳的BD的最大数量为:所述逻辑通道的数量的以2为底的对数。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、数字电子电路实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种BD调度方法,其特征在于,所述方法包括:
每个时钟周期,检测物理通道所映射的各个逻辑通道中当前暂存数据片描述符BD的个数最多的逻辑通道;
从检测到的逻辑通道中选择一个逻辑通道,作为目标通道;
从所述目标通道中提取预设数量个BD,其中,所述预设数量为:每一时钟周期内输入各个逻辑通道的BD的总数量。
2.根据权利要求1所述的方法,其特征在于,以二维数组的形式表示各个逻辑通道当前包含的BD的数量,其中,所述二维数组的每一行的行号表示一个逻辑通道,所述二维数组的每一列的列号表示一个BD的个数值,元素取值为二进制1表示:该元素所在行的行号表示的逻辑通道当前暂存BD的数量为该元素所在列的列号加1,除取值为1的元素之外,所述二维数组中其他元素的取值为二进制0;
所述每个时钟周期,检测所支持的各个逻辑通道中当前暂存数据片描述符BD的个数最多的逻辑通道,包括:
每个时钟周期,基于所述二维数组确定当前暂存BD的个数最多的逻辑通道。
3.根据权利要求2所述的方法,其特征在于,所述基于所述二维数组确定当前暂存BD的个数最多的逻辑通道,包括:
分别对每一列中包含的各个元素的元素值进行或计算,将各列的计算结果组成一个行向量,其中,行向量中每一元素的标号表示一个BD的个数值;
确定所述行向量中标号最大、取值为1的元素,将该元素的标号确定为逻辑通道中当前暂存BD的最大个数;
查找所述二维数组中列号为所述最大个数的列中取值为1的元素,将所查找到的元素的行号表示的逻辑通道确定为当前暂存BD的个数最多的逻辑通道。
4.根据权利要求2所述的方法,其特征在于,所述二维数组中的每一行以一个One-Hot计数器的形式表示。
5.根据权利要求1-4中任一项所述的方法,其特征在于,在所述预设数量为2的情况下,每一逻辑通道中能够容纳的BD的最大数量为:所述逻辑通道的数量的以2为底的对数向上取整。
6.一种BD调度装置,其特征在于,所述装置包括:
通道检测模块,用于每个时钟周期,检测物理通道所映射的各个逻辑通道中当前暂存BD的个数最多的逻辑通道;
通道选择模块,用于从检测到的逻辑通道中选择一个逻辑通道,作为目标通道;
BD存储模块,用于从所述目标通道中提取预设数量个BD,其中,所述预设数量为:每一时钟周期内输入各个逻辑通道的BD的总数量。
7.根据权利要求6所述的装置,其特征在于,以二维数组的形式表示各个逻辑通道当前包含的BD的数量,其中,所述二维数组的每一行的行号表示一个逻辑通道,所述二维数组的每一列的列号表示一个BD的个数值,元素取值为二进制1表示:该元素所在行的行号表示的逻辑通道当前暂存BD的数量为该元素所在列的列号加1,除取值为1的元素之外,所述二维数组中其他元素的取值为二进制0;
所述通道检测模块,包括:
通道检测子模块,用于每个时钟周期,基于所述二维数组确定当前暂存BD的个数最多的逻辑通道。
8.根据权利要求7所述的装置,其特征在于,所述通道检测子模块,具体用于:
分别对每一列中包含的各个元素的元素值进行或计算,将各列的计算结果组成一个行向量,其中,行向量中每一元素的标号表示一个BD的个数值;
确定所述行向量中标号最大、取值为1的元素,将该元素的标号确定为逻辑通道中当前暂存BD的最大个数;
查找所述二维数组中列号为所述最大个数的列中取值为1的元素,将所查找到的元素的行号表示的逻辑通道确定为当前暂存BD的个数最多的逻辑通道。
9.根据权利要求7所述的装置,其特征在于,所述二维数组中的每一行以一个One-Hot计数器的形式表示。
10.根据权利要求6-9中任一项所述的装置,其特征在于,在所述预设数量为2的情况下,每一逻辑通道中能够容纳的BD的最大数量为:所述逻辑通道的数量的以2为底的对数向上取整。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111446780.9A CN114124845B (zh) | 2021-11-30 | 2021-11-30 | 一种bd调度方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111446780.9A CN114124845B (zh) | 2021-11-30 | 2021-11-30 | 一种bd调度方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114124845A true CN114124845A (zh) | 2022-03-01 |
CN114124845B CN114124845B (zh) | 2024-03-19 |
Family
ID=80368876
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111446780.9A Active CN114124845B (zh) | 2021-11-30 | 2021-11-30 | 一种bd调度方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114124845B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7046685B1 (en) * | 1998-12-15 | 2006-05-16 | Fujitsu Limited | Scheduling control system and switch |
CN101964745A (zh) * | 2010-06-12 | 2011-02-02 | 福建星网锐捷网络有限公司 | 一种网络转发设备及其进行报文转发的方法 |
CN107659515A (zh) * | 2017-09-29 | 2018-02-02 | 曙光信息产业(北京)有限公司 | 报文处理方法、装置、报文处理芯片及服务器 |
CN108667749A (zh) * | 2017-03-28 | 2018-10-16 | 华为技术有限公司 | 数据调度方法及装置 |
CN111049751A (zh) * | 2019-12-10 | 2020-04-21 | 平安国际智慧城市科技股份有限公司 | 数据传输优化方法、装置、设备及可读存储介质 |
-
2021
- 2021-11-30 CN CN202111446780.9A patent/CN114124845B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7046685B1 (en) * | 1998-12-15 | 2006-05-16 | Fujitsu Limited | Scheduling control system and switch |
CN101964745A (zh) * | 2010-06-12 | 2011-02-02 | 福建星网锐捷网络有限公司 | 一种网络转发设备及其进行报文转发的方法 |
CN108667749A (zh) * | 2017-03-28 | 2018-10-16 | 华为技术有限公司 | 数据调度方法及装置 |
CN107659515A (zh) * | 2017-09-29 | 2018-02-02 | 曙光信息产业(北京)有限公司 | 报文处理方法、装置、报文处理芯片及服务器 |
CN111049751A (zh) * | 2019-12-10 | 2020-04-21 | 平安国际智慧城市科技股份有限公司 | 数据传输优化方法、装置、设备及可读存储介质 |
Non-Patent Citations (2)
Title |
---|
I.NIKOLAIDIS等: "parallel simulation of high-speed network multiplexers", 《PROCEEDINGS OF 32ND IEEE CONFERENCE ON DECISION AND CONTROL》, 6 August 2002 (2002-08-06) * |
张伟;王绍棣;: "偏态数据流中的Bloom Filters自适应机制研究", 小型微型计算机系统, no. 09, 15 September 2008 (2008-09-15) * |
Also Published As
Publication number | Publication date |
---|---|
CN114124845B (zh) | 2024-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10515699B1 (en) | Error handling for match action unit memory of a forwarding element | |
US10044646B1 (en) | Systems and methods for efficiently storing packet data in network switches | |
US8880554B2 (en) | Method and apparatus for high performance, updatable, and deterministic hash table for network equipment | |
US7827182B1 (en) | Searching for a path to identify where to move entries among hash tables with storage for multiple entries per bucket during insert operations | |
CN1543149B (zh) | 网络环境中的流控制 | |
US20050259672A1 (en) | Method to improve forwarding information base lookup performance | |
US7694068B1 (en) | Re-entrant processing in a content addressable memory | |
US20040172346A1 (en) | Generating accounting data based on access control list entries | |
CN109684269B (zh) | 一种pcie交换芯片内核及工作方法 | |
JP2014522202A (ja) | パケットを再構築し再順序付けするための方法、装置、およびシステム | |
JPH0856230A (ja) | スイッチングシステム | |
US20030235188A1 (en) | Caching queue status updates | |
US7464201B1 (en) | Packet buffer management apparatus and method | |
JP7074839B2 (ja) | パケット処理 | |
US9942169B1 (en) | Systems and methods for efficiently searching for stored data | |
US7403526B1 (en) | Partitioning and filtering a search space of particular use for determining a longest prefix match thereon | |
US8032543B2 (en) | Sorting apparatus and method | |
EP0878758B1 (fr) | Dispositif de tri d'éléments de données à arbre binaire et espaceur ATM comportant un tel dispositif | |
CN118509399A (zh) | 一种报文处理方法、装置、电子设备及存储介质 | |
US6961808B1 (en) | Method and apparatus for implementing and using multiple virtual portions of physical associative memories | |
CN114124845A (zh) | 一种bd调度方法及装置 | |
US7788445B2 (en) | Intelligent allocation of programmable comparison operations for reducing the number of associative memory entries required | |
US5914935A (en) | Traffic shaper apparatus | |
CN113691469B (zh) | 报文乱序重排方法及单板 | |
CN112416820B (zh) | 一种数据包分类存储方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |