CN105656807B - 一种网络芯片多通道数据传输方法及传输装置 - Google Patents
一种网络芯片多通道数据传输方法及传输装置 Download PDFInfo
- Publication number
- CN105656807B CN105656807B CN201510992243.2A CN201510992243A CN105656807B CN 105656807 B CN105656807 B CN 105656807B CN 201510992243 A CN201510992243 A CN 201510992243A CN 105656807 B CN105656807 B CN 105656807B
- Authority
- CN
- China
- Prior art keywords
- fifo queue
- data section
- data segment
- priority fifo
- data
- 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
Classifications
-
- 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/6215—Individual queue per QOS, rate or priority
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- 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/6245—Modifications to standard FIFO or LIFO
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明揭示了一种网络芯片多通道数据传输方法及传输装置,包括:接收报文;计算数据段的偏移量并区分长、短包数据段;优先存储长包数据段;将长、短包数据段通道编号及存储地址分别写进高、低优先级先进先出队列;优先读取高优先级先进先出队列中的通道编号,索引该通道已调度数据段信息;根据已调度数据段信息判断待调度数据段类型,当为长包数据段时,高优先级先进先出队列参与调度,当为短包数据段时,低优先级先进先出队列参与调度;根据存储地址调度待调度数据段并用其更新为已调度数据段信息。本发明优先存储长包数据段,降低长包数据段的截断概率,利用调度仲裁逻辑,使数据段间隔不会因为网络超带宽而被拉长,且保证数据段不发生错乱。
Description
技术领域
本发明涉及网络通信领域,尤其涉及一种网络芯片多通道数据传输方法及传输装置。
背景技术
在高密度网络芯片中,多通道的数据汇聚到数据接收模块并调度至芯片内部进行处理。随着外部输入带宽的增加,会出现数据接收模块输出带宽小于输入带宽的现象,称之为网络超带宽。
在传统的网络芯片多通道数据传输装置中,如图1所示,包括多个多通道组,这里以两个多通道组(多通道组0、多通道组1)为例。首先从可使用地址的先进先出阵列(First-In First-Out,fifo)中取出一个可使用地址,将通道中传输的数据写进存储器1中与所述可使用地址对应的写地址中,并根据数据到达的先后顺序产生调度请求先进先出阵列2,将存储器对应的写地址写进调度请求先进先出阵列2中,调度模块3将某个通道的数据调度出来,发送给下级模块处理。
这里,由于短包包率比长包包率大,在网络超带宽时,大量传输短包的通道会抢占传输长包的通道带宽,引起多通道之间数据调度不均衡,导致同一通道数据调度间隔被拉大。其次,在网络超带宽时,存储器的入口流量大于出口流量,引起存储器被占满,长包数据更容易因为没有存储空间而被截断,平均丢包率大幅增加,进一步加剧了多通道之间数据调度的不均衡性。
发明内容
本发明的目的在于提供一种网络芯片多通道数据传输方法及传输装置。
为实现上述发明目的之一,本发明一实施方式提供一种网络芯片多通道数据传输方法,包括步骤:
S1:接收报文,所述报文由至少一数据段组成;
S2:计算当前数据段的偏移量,所述偏移量定义为所述当前数据段与首数据段之间的数据段间隔数量;
S3:判断所述当前数据段的数据段类型,当所述偏移量不大于预设值时,判断所述当前数据段为短包数据段,当所述偏移量大于预设值时,判断所述当前数据段为长包数据段;
S4:于存储空间内存储所述当前数据段,所述存储空间优先存储长包数据段;
步骤S4具体包括:
于存储空间内存储所述当前数据段,当所述当前数据段为短包数据段且已使用存储空间未超过所述存储空间的第一阈值时,存储所述当前数据段,当判断所述当前数据段为短包数据段且所述已使用存储空间超过所述第一阈值时,丢弃所述当前数据段,当判断所述当前数据段为长包数据段且所述已使用存储空间未超过所述存储空间的第二阈值时,存储所述当前数据段,当判断所述当前数据段为长包数据段且已使用存储空间超过第二阈值时,丢弃当前数据段,所述第二阈值大于所述第一阈值;
S5:将长包数据段通道编号及存储地址写进高优先级先进先出队列,将短包数据段通道编号及存储地址写进低优先级先进先出队列;
S6:优先读取高优先级先进先出队列中的通道编号,索引出所述通道编号对应通道内的已调度数据段信息;
S7:根据已调度数据段信息判断待调度数据段的数据段类型,当判断所述待调度数据段为长包数据段时,所述高优先级先进先出队列参与调度,当判断所述待调度数据段为短包数据段时,所述低优先级先进先出队列参与调度;
S8:根据参与调度的高优先级先进先出队列或低优先级先进先出队列中的存储地址调度出所述待调度数据段;
S9:将该通道待调度数据段信息更新为已调度数据段信息,重复步骤S7、S8。
作为本发明一实施方式的进一步改进,步骤S6具体包括:
调度存储的数据段,调度过程包括一通道组内的一级调度以及多组通道组之间的二级调度,具体包括:
判断所述通道组中所述低优先级先进先出队列及所述高优先级先进先出队列是否为空,当所述低优先级先进先出队列及所述高优先级先进先出队列均为空时,不参与二级调度,当所述低优先级先进先出队列为空且所述高优先级先进先出队列不为空时,所述高优先级先进先出队列参与二级调度,当所述低优先级先进先出队列不为空且所述高优先级先进先出队列为空时,所述低优先级先进先出队列参与二级调度,当所述低优先级先进先出队列及所述高优先级先进先出队列均不为空时,读出高优先级先进先出队列中的通道编号,索引出所述通道编号对应通道内的已调度数据段信息。
作为本发明一实施方式的进一步改进,步骤S7具体包括:
读取已调度数据段的偏移量、起始信息及结尾信息,根据所述已调度数据段的偏移量、起始信息及结尾信息判断待调度数据段的偏移量,当待调度数据段的偏移量大于预设值时,判断所述待调度数据段为长包数据段,所述高优先级先进先出队列参与二级调度,当待调度数据段的偏移量不大于预设值时,判断所述待调度数据段为短包数据段,所述低优先级先进先出队列参与二级调度。
作为本发明一实施方式的进一步改进,步骤S8具体包括:
经一级调度及二级调度后,根据最终所选的高优先级先进先出队列或低优先级先进先出队列中的存储地址调度出所述待调度数据段。
为实现上述发明目的之一,本发明一实施方式提供一种网络芯片多通道数据传输装置,包括:
接收模块,用于接收报文,所述报文由至少一数据段组成;
处理模块,所述处理模块用于:
计算当前数据段的偏移量,所述偏移量定义为所述当前数据段与首数据段之间的数据段间隔数量;
判断所述当前数据段的数据段类型,当所述偏移量不大于预设值时,判断所述当前数据段为短包数据段,当所述偏移量大于预设值时,判断所述当前数据段为长包数据段;
存储模块,用于存储所述当前数据段,所述存储模块优先存储所述长包数据段,且所述存储模块用于将长包数据段通道编号及存储地址写进高优先级先进先出队列,将短包数据段通道编号及存储地址写进低优先级先进先出队列;
所述存储模块还用于:
当所述当前数据段为短包数据段且已使用存储空间未超过所述存储模块的存储空间的第一阈值时,所述存储模块存储所述当前数据段,当判断所述当前数据段为短包数据段且所述已使用存储空间超过所述第一阈值时,丢弃所述当前数据段,当判断所述当前数据段为长包数据段且所述已使用存储空间未超过所述存储空间的第二阈值时,所述存储模块存储所述当前数据段,当判断所述当前数据段为长包数据段且已使用存储空间超过第二阈值时,丢弃当前数据段,所述第二阈值大于所述第一阈值;
调度模块,所述调度模块用于:
优先读取高优先级先进先出队列中的通道编号,索引出所述通道编号对应通道内的已调度数据段信息;
根据已调度数据段信息判断待调度数据段的数据段类型,当判断所述待调度数据段为长包数据段时,所述高优先级先进先出队列参与调度,当判断所述待调度数据段为短包数据段时,所述低优先级先进先出队列参与调度;
根据参与调度的高优先级先进先出队列或低优先级先进先出队列中的存储地址调度出所述待调度数据段;
将该通道待调度数据段信息更新为已调度数据段信息以进行下次调度。
作为本发明一实施方式的进一步改进,所述网络芯片包括多组多通道组,所述调度模块包括多个第一调度模块及一第二调度模块,所述多个第一调度模块与所述多组多通道一一对应,所述第二调度模块连接所述多个第一调度模块,所述调度模块还用于:
判断所述通道组中所述低优先级先进先出队列及所述高优先级先进先出队列是否为空,当所述低优先级先进先出队列及所述高优先级先进先出队列均为空时,不进入所述第二调度模块,当所述低优先级先进先出队列为空且所述高优先级先进先出队列不为空时,所述高优先级先进先出队列进入第二调度模块,当所述低优先级先进先出队列不为空且所述高优先级先进先出队列为空时,所述低优先级先进先出队列进入第二调度模块,当所述低优先级先进先出队列及所述高优先级先进先出队列均不为空时,读出高优先级先进先出队列中的通道编号,索引出所述通道编号对应通道内的已调度数据段信息。
作为本发明一实施方式的进一步改进,所述调度模块还用于:
读取已调度数据段的偏移量、起始信息及结尾信息,根据所述已调度数据段的偏移量、起始信息及结尾信息判断待调度数据段的偏移量,当待调度数据段的偏移量大于预设值时,判断所述待调度数据段为长包数据段,所述高优先级先进先出队列进入第二调度模块,当待调度数据段的偏移量不大于预设值时,判断所述待调度数据段为短包数据段,所述低优先级先进先出队列进入第二调度模块。
作为本发明一实施方式的进一步改进,所述调度模块还用于:
经第一调度模块及第二调度模块后,根据最终所选的高优先级先进先出队列或低优先级先进先出队列中的存储地址调度出所述待调度数据段。
与现有技术相比,本发明的有益效果在于:本发明优先存储长包数据段,大幅降低长包数据段因为存储空间用尽而被截断的概率;另外,本发明利用调度仲裁逻辑,使得数据段间隔不会因为网络超带宽而被拉长,且保证数据段不发生错乱。
附图说明
图1是现有技术网络芯片多通道数据传输装置结构示意图;
图2是本发明一实施方式的网络芯片多通道数据传输方法流程图;
图3是本发明一实施方式的存储空间示意图;
图4是本发明一实施方式的网络芯片多通道数据传输装置结构框图;
图5是本发明一实施方式的网络芯片多通道数据传输装置结构示意图。
具体实施方式
以下将结合附图所示的具体实施方式对本发明进行详细描述。但这些实施方式并不限制本发明,本领域的普通技术人员根据这些实施方式所做出的结构、方法、或功能上的变换均包含在本发明的保护范围内。
参图2,为本发明一实施方式的网络芯片多通道数据传输方法流程图,包括步骤:
S1:接收报文,所述报文由至少一数据段组成;
S2:计算当前数据段的偏移量offset,所述偏移量offset定义为所述当前数据段与首数据段之间的数据段间隔数量;
S3:判断所述当前数据段的数据段类型,当所述偏移量offset不大于预设值时,判断所述当前数据段为短包数据段,当所述偏移量offset大于预设值时,判断所述当前数据段为长包数据段;
S4:于存储空间内存储所述当前数据段,所述存储空间优先存储长包数据段;
S5:将长包数据段通道编号及存储地址写进高优先级先进先出队列,将短包数据段通道编号及存储地址写进低优先级先进先出队列;
S6:优先读取高优先级先进先出队列中的通道编号,索引出所述通道编号对应通道内的已调度数据段信息;
S7:根据已调度数据段信息判断待调度数据段的数据段类型,当判断所述待调度数据段为长包数据段时,所述高优先级先进先出队列参与调度,当判断所述待调度数据段为短包数据段时,所述低优先级先进先出队列参与调度;
S8:根据参与调度的高优先级先进先出队列或低优先级先进先出队列中的存储地址调度出所述待调度数据段;
S9:将该通道待调度数据段信息更新为已调度数据段信息,重复步骤S7、S8。
这里,需要说明的是,上述步骤仅为本发明一实施方式的示意步骤,步骤的先后顺序不以此为限,且某一时间段可由多个步骤同时进行,例如,存储数据段的存储器可为一读一写存储器,步骤S4-S5的存储过程及步骤S6-S9的调度过程可同时进行,本申请不以此为限,可依据实际情况而定。
在本实施方式中,存储空间优先存储长包数据段,大幅降低长包数据段因为存储空间用尽而被截断的概率,同时,在调度过程中,优先调度出长包数据段,不仅保证后续进来的长包数据段可以顺利存储防止丢包,而且使得长包数据段顺利送出,整体上降低了长包数据段的丢包率,从而提高网络芯片的转发能力。另外,在数据段调度过程中,本发明利用调度仲裁逻辑,使得数据段间隔不会因为网络超带宽而被拉长,且保证数据段不发生错乱。
在本实施方式中,偏移量offset与报文总长度L及存储器位宽D有关,当报文总长度L大于存储器位宽D时,一个报文需要拆分成多个数据段进行传输。这里,某一报文包含的数据段总数定义为数据段总数Noffset=报文总长度L/存储器位宽D, Noffset实质为L和D的商,当商为非整数时,Noffset为商取整加1,Noffset为自然数。假设L=100bit,D=10bit,则该报文的数据段总数Noffset=100/10=10段,依次将这10段数据段编号,分别为:第1段数据段、第2段数据段……第10段数据段,此时,第1段数据段(即为首数据段)的偏移量offset为1,第2段数据段的偏移量offset为2......第10段数据段(即为尾数据段)的偏移量offset为10,其中,每一数据段均包含偏移量offset、起始信息及结尾信息,通过偏移量offset、所述起始信息及所述结尾信息可判断后一数据段的偏移量offset等信息。
在本实施方式中,预设值N定义为2,当偏移量offset≤2时,判断对应的当前数据段为短包数据段,当偏移量offset>2时,判断对应的当前数据段为长包数据段。当判断完当前数据段的数据段类型后,需要对当前数据段进行存储(或丢弃)以及进行调度请求排列,这里,为了防止长包数据段因存储空间用尽而被截断,特别为长包数据段预留了一定的存储空间,即此时存储空间优先存储长包数据段。
具体的,如图3所示,当所述当前数据段为短包数据段且已使用存储空间S未超过所述存储空间的第一阈值T1时,将所述当前数据段写入低优先级先进先出队列中,当判断所述当前数据段为短包数据段且所述已使用存储空间S超过所述第一阈值T1时,丢弃所述当前数据段,当判断所述当前数据段为长包数据段且所述已使用存储空间S未超过所述存储空间的第二阈值T2时,将所述当前数据段写入高优先级先进先出队列中,当判断所述当前数据段为长包数据段且已使用存储空间S超过第二阈值T2时,丢弃当前数据段,所述第二阈值T2大于所述第一阈值T1。这里,第二阈值T2实质为存储空间的最大值,第二阈值T2与第一阈值T1之间的存储空间即为预留给长包数据段的存储空间,也就是说,只要已使用存储空间S还未达到最大值,则一定可以存储长包数据段,但不一定可以存储短包数据段,只有已使用存储空间S还未达到第一阈值T1时才可存储短包数据段,如此,在存储空间有限的情况下,会优先存储长包数据段,从而降低长包数据段丢包率。
这里,存储空间的大小由存储器的深度决定,本实施方式还可利用一计数器来统计已使用存储空间S,当存储器中存储某一数据段时,无论是写入高优先级先进先出队列还是低优先级先进先出队列,计数器的计数值都加1,当存储器中调度出某一数据段时,无论是由高优先级先进先出队列还是低优先级先进先出队列调度出,计数器的计数值都减1,如此,可根据计数值与第一阈值T1、第二阈值T2的大小关系控制数据段的存储及丢弃。另外,当需要将长包数据段写入高优先级先进先出队列中时,将该长包数据段的通道编号(即由哪条通道传输过来)、存储地址(即此时数据段对应存储空间的地址)写入高优先级先进先出队列中,类似的,当需要将短包数据段写入低优先级先进先出队列中时,将该短包数据段的通道编号、存储地址写入低优先级先进先出队列中,如此,可为后续的调度过程提供调度依据。
在本实施方式中,所述网络芯片包括多组多通道组,多组多通道组之间的控制、存储逻辑等都是相互独立的,每个多通道组都包含多个数据通道,且多个数据通道共用一个存储空间。每一多通道组进行一级调度,且多组多通道组之间在一级调度后还进行二级调度,一级调度实现每一多通道组中低优先级先进先出队列及所述高优先级先进先出队列之间的仲裁,均衡该多通道组内数据段调度间隔,二级调度通过WRR算法实现多组多通道组之间的仲裁,均衡多组多通道组之间的带宽流量,步骤S6具体包括:
判断所述通道组中所述低优先级先进先出队列及所述高优先级先进先出队列是否为空,当所述低优先级先进先出队列及所述高优先级先进先出队列均为空时,不参与二级调度,当所述低优先级先进先出队列为空且所述高优先级先进先出队列不为空时,所述高优先级先进先出队列参与二级调度,当所述低优先级先进先出队列不为空且所述高优先级先进先出队列为空时,所述低优先级先进先出队列参与二级调度,当所述低优先级先进先出队列及所述高优先级先进先出队列均不为空时,读出高优先级先进先出队列中的通道编号,索引出所述通道编号对应通道内的已调度数据段信息。这里,需要说明的是,网络芯片可以只包含一组多通道组,此时可省略二级调度。
在本实施方式中,由于短包数据段及长包数据段分别位于低优先级先进先出队列及高优先级先进先出队列中,利用调度仲裁逻辑,可以实现高优先级先进先出队列中的长包数据段优先调度,使得数据段间隔不会因为网络超带宽而被拉长,且保证数据段不发生错乱。
当所述低优先级先进先出队列及所述高优先级先进先出队列均不为空时,优先对高优先级先进先出队列中的数据段进行调度。具体包括:读出高优先级先进先出队列中的通道编号,索引出所述通道编号对应通道内的已调度数据段信息,读取已调度数据段的偏移量offset、起始信息及结尾信息,根据所述已调度数据段的偏移量offset、起始信息及结尾信息判断待调度数据段的偏移量offset,当待调度数据段的偏移量offset大于预设值时,判断所述待调度数据段为长包数据段,所述高优先级先进先出队列参与二级调度,当待调度数据段的偏移量offset不大于预设值时,判断所述待调度数据段为短包数据段,所述低优先级先进先出队列参与二级调度;经一级调度及二级调度后,根据最终所选的高优先级先进先出队列或低优先级先进先出队列中的存储地址调度出所述待调度数据段。需要说明的是,这里提到的预设值与前述判断当前数据段的数据段类型时的预设值相同,即此时的预设值为2。
这里,先索引出该通道内已调度数据段的起始信息及结尾信息,如此,根据已调度数据段的偏移量offset、起始信息及结尾信息判断待调度数据段的偏移量offset。例如,以报文包括10段数据段为例,当已调度数据段位于报文结尾时,说明该报文已经调度完成,则待调度数据段为下一个报文的第1段数据段,待调度数据段的偏移量offset为1,待调度数据段位于低优先级先进先出队列中,此时低优先级先进先出队列参与二级调度;当已调度数据段的偏移量offset为第1段数据段时,则待调度数据段为第2段数据段,待调度数据段的偏移量offset为2,待调度数据段位于低优先级先进先出队列中,此时低优先级先进先出队列参与二级调度;当已调度数据段的偏移量offset为第5段数据段时,则待调度数据段为第6段数据段,待调度数据段的偏移量offset为6,待调度数据段位于高优先级先进先出队列中,此时高优先级先进先出队列参与二级调度。这里,由于高优先级先进先出队列及低优先级先进先出队列中存储有存储地址,此时可以根据选中的高优先级先进先出队列或低优先级先进先出队列得到所述待调度数据段的存储地址,而后可根据存储地址调度出所述待调度数据段,以此类推,将所述待调度数据段更新为已调度数据段,进一步调度出下一数据段,从而实现整个报文的调度。
本发明还提供一种网络芯片多通道数据传输装置,在本发明一实施方式中,如图4及图5所示,所述网络芯片多通道数据传输装置包括接收模块10、处理模块20、存储模块30及调度模块40。
接收模块10用于:
接收报文,所述报文由至少一数据段组成;
处理模块20用于:
计算当前数据段的偏移量offset,所述偏移量offset定义为所述当前数据段与首数据段之间的数据段间隔数量;
判断所述当前数据段的数据段类型,当所述偏移量offset不大于预设值时,判断所述当前数据段为短包数据段,当所述偏移量offset大于预设值时,判断所述当前数据段为长包数据段;
存储模块30用于:
存储所述当前数据段,所述存储模块优先存储所述长包数据段,且所述存储模块30用于将长包数据段通道编号及存储地址写进高优先级先进先出队列,将短包数据段通道编号及存储地址写进低优先级先进先出队列;
调度模块40用于:
优先读取高优先级先进先出队列中的通道编号,索引出所述通道编号对应通道内的已调度数据段;
根据已调度数据段信息判断待调度数据段的数据段类型,当判断所述待调度数据段为长包数据段时,所述高优先级先进先出队列参与调度,当判断所述待调度数据段为短包数据段时,所述低优先级先进先出队列参与调度;
根据参与调度的高优先级先进先出队列或低优先级先进先出队列中的存储地址调度出所述待调度数据段;
将该通道待调度数据段信息更新为已调度数据段信息以进行下次调度。
这里,需要说明的是,上述模块的作用仅为本发明一实施方式的示意步骤,模块工作的先后顺序不以此为限,且某一时间段可由多个模块同时进行,例如,存储模块30可为一读一写存储器,接收模块10、处理模块20及存储模块30进行的存储过程及调度模块40进行的调度过程可同时进行,本申请不以此为限,可依据实际情况而定。调度模块40调度出存储模块30中缓存的数据段并发送至后级模块中。
在本实施方式中,存储模块30的存储空间优先存储长包数据段,大幅降低长包数据段因为存储空间用尽而被截断的概率,同时,在调度过程中,调度模块40优先调度出长包数据段,不仅保证后续进来的长包数据段可以顺利存储防止丢包,而且使得长包数据段顺利送出,整体上降低了长包数据段的丢包率,从而提高网络芯片的转发能力。另外,在数据段调度过程中,调度模块40利用调度仲裁逻辑,使得数据段间隔不会因为网络超带宽而被拉长,且保证数据段不发生错乱。
在本实施方式中,偏移量offset与报文总长度L及存储器位宽D有关,当报文总长度L大于存储器位宽D时,一个报文需要拆分成多个数据段进行传输。这里,某一报文包含的数据段总数定义为数据段总数Noffset=报文总长度L/存储器位宽D, Noffset实质为L和D的商,当商为非整数时,Noffset为商取整加1,Noffset为自然数。假设L=100bit,D=10bit,则该报文的数据段总数Noffset=100/10=10段,依次将这10段数据段编号,分别为:第1段数据段、第2段数据段……第10段数据段,此时,第1段数据段(即为首数据段)的偏移量offset为1,第2段数据段的偏移量offset为2......第10段数据段(即为尾数据段)的偏移量offset为10,其中,每一数据段均包含偏移量offset、起始信息及结尾信息,通过偏移量offset、所述起始信息及所述结尾信息可判断后一数据段的偏移量offset等信息。
在本实施方式中,预设值N定义为2,当偏移量offset≤2时,处理模块20判断对应的当前数据段为短包数据段,当偏移量offset>2时,处理模块20判断对应的当前数据段为长包数据段。当判断完当前数据段的数据段类型后,需要对当前数据段进行存储(或丢弃)以及进行调度请求排列,这里,为了防止长包数据段因存储空间用尽而被截断,存储模块30特别为长包数据段预留了一定的存储空间,即此时存储空间优先存储长包数据段。
具体的,当所述当前数据段为短包数据段且已使用存储空间S未超过所述存储空间的第一阈值T1时,存储模块30将所述当前数据段写入低优先级先进先出队列中,当判断所述当前数据段为短包数据段且所述已使用存储空间S超过所述第一阈值T1时,丢弃所述当前数据段,当判断所述当前数据段为长包数据段且所述已使用存储空间S未超过所述存储空间的第二阈值T2时,存储模块30将所述当前数据段写入高优先级先进先出队列中,当判断所述当前数据段为长包数据段且已使用存储空间S超过第二阈值T2时,丢弃当前数据段,所述第二阈值T2大于所述第一阈值T1。这里,第二阈值T2实质为存储空间的最大值,第二阈值T2与第一阈值T1之间的存储空间即为预留给长包数据段的存储空间,也就是说,只要已使用存储空间S还未达到最大值,则一定可以存储长包数据段,但不一定可以存储短包数据段,只有已使用存储空间S还未达到第一阈值T1时才可存储短包数据段,如此,在存储空间有限的情况下,会优先存储长包数据段,从而降低长包数据段丢包率。
这里,存储空间的大小由存储器的深度决定,本实施方式还可利用一计数器(未标示)来统计已使用存储空间S,当存储器中存储某一数据段时,无论是写入高优先级先进先出队列还是低优先级先进先出队列,计数器的计数值都加1,当存储器中调度出某一数据段时,无论是由高优先级先进先出队列还是低优先级先进先出队列调度出,计数器的计数值都减1,如此,可根据计数值与第一阈值T1、第二阈值T2的大小关系控制数据段的存储及丢弃。另外,当需要将长包数据段写入高优先级先进先出队列中时,将该长包数据段的通道编号(即由哪条通道传输过来)、存储地址(即此时数据段对应存储空间的地址)写入高优先级先进先出队列中,类似的,当需要将短包数据段写入低优先级先进先出队列中时,将该短包数据段的通道编号、存储地址写入低优先级先进先出队列中,如此,可为后续的调度过程提供调度依据。
在本实施方式中,所述网络芯片包括多组多通道组,这里以两组多通道组(多通道组0、多通道组1)为例,多组多通道组之间的控制、存储逻辑等都是相互独立的,每个多通道组都包含多个数据通道,且多个数据通道共用一个存储模块30。所述调度模块40包括多个第一调度模块41及一第二调度模块42,所述多个第一调度模块41与所述多组多通道一一对应,所述第二调度模块42连接所述多个第一调度模块41,这里,第一调度模块41实现每一多通道组中低优先级先进先出队列及所述高优先级先进先出队列之间的仲裁,均衡该多通道组内数据段调度间隔,第二调度模块42通过WRR算法实现多组多通道组之间的仲裁,均衡多组多通道组之间的带宽流量,所述调度模块40还用于:
判断所述通道组中所述低优先级先进先出队列及所述高优先级先进先出队列是否为空,当所述低优先级先进先出队列及所述高优先级先进先出队列均为空时,不进入所述第二调度模块42,当所述低优先级先进先出队列为空且所述高优先级先进先出队列不为空时,所述高优先级先进先出队列进入第二调度模块42,当所述低优先级先进先出队列不为空且所述高优先级先进先出队列为空时,所述低优先级先进先出队列进入第二调度模块42,当所述低优先级先进先出队列及所述高优先级先进先出队列均不为空时,读出高优先级先进先出队列中的通道编号,索引出所述通道编号对应通道内的已调度数据段信息。这里,需要说明的是,网络芯片可以只包含一组多通道组,此时可省略第二调度模块42。
在本实施方式中,由于短包数据段及长包数据段分别位于低优先级先进先出队列及高优先级先进先出队列中,利用调度仲裁逻辑,可以实现高优先级先进先出队列中的长包数据段优先调度,使得数据段间隔不会因为网络超带宽而被拉长,且保证数据段不发生错乱。
当所述低优先级先进先出队列及所述高优先级先进先出队列均不为空时,调度模块40首先对高优先级先进先出队列中的通道调度状态进行判断。具体的,调度模块40读出高优先级先进先出队列中的通道编号,索引出所述通道编号对应通道内的已调度数据段,读取已调度数据段的偏移量offset、起始信息及结尾信息,根据所述已调度数据段的偏移量offset、起始信息及结尾信息判断待调度数据段的偏移量offset,当待调度数据段的偏移量offset大于预设值时,判断所述待调度数据段为长包数据段,所述高优先级先进先出队列进入第二调度模块42,当待调度数据段的偏移量offset不大于预设值时,判断所述待调度数据段为短包数据段,所述低优先级先进先出队列进入第二调度模块42,经第一调度模块41及第二调度模块42后,根据最终所选的高优先级先进先出队列或低优先级先进先出队列中的存储地址调度出所述待调度数据段。需要说明的是,这里提到的预设值与前述判断当前数据段的数据段类型时的预设值相同,即此时的预设值为2。
这里,先索引出该通道内已调度数据段的起始信息及结尾信息,如此,根据已调度数据段的偏移量offset、起始信息及结尾信息判断待调度数据段的偏移量offset。例如,以报文包括10段数据段为例,当已调度数据段位于报文结尾时,说明该报文已经调度完成,则待调度数据段为下一个报文的第1段数据段,待调度数据段的偏移量offset为1,待调度数据段位于低优先级先进先出队列中,此时低优先级先进先出队列进入第二调度模块42;当已调度数据段的偏移量offset为第1段数据段时,则待调度数据段为第2段数据段,待调度数据段的偏移量offset为2,待调度数据段位于低优先级先进先出队列中,此时低优先级先进先出队列进入第二调度模块42;当已调度数据段的偏移量offset为第5段数据段时,则待调度数据段为第6段数据段,待调度数据段的偏移量offset为6,待调度数据段位于高优先级先进先出队列中,此时高优先级先进先出队列进入第二调度模块42。这里,由于高优先级先进先出队列及低优先级先进先出队列中存储有存储地址,此时可以根据选中的高优先级先进先出队列或低优先级先进先出队列得到所述待调度数据段的存储地址,而后可根据存储地址调度出所述待调度数据段,以此类推,将所述待调度数据段更新为已调度数据段,进一步调度出下一数据段,从而实现整个报文的调度。
应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施方式中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。
Claims (8)
1.一种网络芯片多通道数据传输方法,其特征在于包括步骤:
S1:接收报文,所述报文由至少一数据段组成;
S2:计算当前数据段的偏移量,所述偏移量定义为所述当前数据段与首数据段之间的数据段间隔数量;
S3:判断所述当前数据段的数据段类型,当所述偏移量不大于预设值时,判断所述当前数据段为短包数据段,当所述偏移量大于预设值时,判断所述当前数据段为长包数据段;
S4:于存储空间内存储所述当前数据段,所述存储空间优先存储长包数据段;
步骤S4具体包括:
于存储空间内存储所述当前数据段,当所述当前数据段为短包数据段且已使用存储空间未超过所述存储空间的第一阈值时,存储所述当前数据段,当判断所述当前数据段为短包数据段且所述已使用存储空间超过所述第一阈值时,丢弃所述当前数据段,当判断所述当前数据段为长包数据段且所述已使用存储空间未超过所述存储空间的第二阈值时,存储所述当前数据段,当判断所述当前数据段为长包数据段且已使用存储空间超过第二阈值时,丢弃当前数据段,所述第二阈值大于所述第一阈值;
S5:将长包数据段通道编号及存储地址写进高优先级先进先出队列,将短包数据段通道编号及存储地址写进低优先级先进先出队列;
S6:优先读取高优先级先进先出队列中的通道编号,索引出所述通道编号对应通道内的已调度数据段信息;
S7:根据已调度数据段信息判断待调度数据段的数据段类型,当判断所述待调度数据段为长包数据段时,所述高优先级先进先出队列参与调度,当判断所述待调度数据段为短包数据段时,所述低优先级先进先出队列参与调度;
S8:根据参与调度的高优先级先进先出队列或低优先级先进先出队列中的存储地址调度出所述待调度数据段;
S9:将该通道待调度数据段信息更新为已调度数据段信息,重复步骤S7、S8。
2.根据权利要求1所述的网络芯片多通道数据传输方法,其特征在于步骤S6具体包括:
调度存储的数据段,调度过程包括一通道组内的一级调度以及多组通道组之间的二级调度,具体包括:
判断所述通道组中所述低优先级先进先出队列及所述高优先级先进先出队列是否为空,当所述低优先级先进先出队列及所述高优先级先进先出队列均为空时,不参与二级调度,当所述低优先级先进先出队列为空且所述高优先级先进先出队列不为空时,所述高优先级先进先出队列参与二级调度,当所述低优先级先进先出队列不为空且所述高优先级先进先出队列为空时,所述低优先级先进先出队列参与二级调度,当所述低优先级先进先出队列及所述高优先级先进先出队列均不为空时,读出高优先级先进先出队列中的通道编号,索引出所述通道编号对应通道内的已调度数据段信息。
3.根据权利要求2所述的网络芯片多通道数据传输方法,其特征在于步骤S7具体包括:
读取已调度数据段的偏移量、起始信息及结尾信息,根据所述已调度数据段的偏移量、起始信息及结尾信息判断待调度数据段的偏移量,当待调度数据段的偏移量大于预设值时,判断所述待调度数据段为长包数据段,所述高优先级先进先出队列参与二级调度,当待调度数据段的偏移量不大于预设值时,判断所述待调度数据段为短包数据段,所述低优先级先进先出队列参与二级调度。
4.根据权利要求3所述的网络芯片多通道数据传输方法,其特征在于步骤S8具体包括:
经一级调度及二级调度后,根据最终所选的高优先级先进先出队列或低优先级先进先出队列中的存储地址调度出所述待调度数据段。
5.一种网络芯片多通道数据传输装置,其特征在于包括:
接收模块,用于接收报文,所述报文由至少一数据段组成;
处理模块,所述处理模块用于:
计算当前数据段的偏移量,所述偏移量定义为所述当前数据段与首数据段之间的数据段间隔数量;
判断所述当前数据段的数据段类型,当所述偏移量不大于预设值时,判断所述当前数据段为短包数据段,当所述偏移量大于预设值时,判断所述当前数据段为长包数据段;
存储模块,用于存储所述当前数据段,所述存储模块优先存储所述长包数据段,且所述存储模块用于将长包数据段通道编号及存储地址写进高优先级先进先出队列,将短包数据段通道编号及存储地址写进低优先级先进先出队列;
所述存储模块还用于:
当所述当前数据段为短包数据段且已使用存储空间未超过所述存储模块的存储空间的第一阈值时,所述存储模块存储所述当前数据段,当判断所述当前数据段为短包数据段且所述已使用存储空间超过所述第一阈值时,丢弃所述当前数据段,当判断所述当前数据段为长包数据段且所述已使用存储空间未超过所述存储空间的第二阈值时,所述存储模块存储所述当前数据段,当判断所述当前数据段为长包数据段且已使用存储空间超过第二阈值时,丢弃当前数据段,所述第二阈值大于所述第一阈值;
调度模块,所述调度模块用于:
优先读取高优先级先进先出队列中的通道编号,索引出所述通道编号对应通道内的已调度数据段信息;
根据已调度数据段判断待调度数据段的数据段类型,当判断所述待调度数据段为长包数据段时,所述高优先级先进先出队列参与调度,当判断所述待调度数据段为短包数据段时,所述低优先级先进先出队列参与调度;
根据参与调度的高优先级先进先出队列或低优先级先进先出队列中的存储地址调度出所述待调度数据段;
将该通道待调度数据段信息更新为已调度数据段信息以进行下次调度。
6.根据权利要求5所述的网络芯片多通道数据传输装置,其特征在于,所述网络芯片包括多组多通道组,所述调度模块包括多个第一调度模块及一第二调度模块,所述多个第一调度模块与所述多组多通道一一对应,所述第二调度模块连接所述多个第一调度模块,所述调度模块还用于:
判断所述通道组中所述低优先级先进先出队列及所述高优先级先进先出队列是否为空,当所述低优先级先进先出队列及所述高优先级先进先出队列均为空时,不进入所述第二调度模块,当所述低优先级先进先出队列为空且所述高优先级先进先出队列不为空时,所述高优先级先进先出队列进入所述第二调度模块,当所述低优先级先进先出队列不为空且所述高优先级先进先出队列为空时,所述低优先级先进先出队列进入所述第二调度模块,当所述低优先级先进先出队列及所述高优先级先进先出队列均不为空时,读出高优先级先进先出队列中的通道编号,索引出所述通道编号对应通道内的已调度数据段信息。
7.根据权利要求6所述的网络芯片多通道数据传输装置,其特征在于,所述调度模块还用于:
读取已调度数据段的偏移量、起始信息及结尾信息,根据所述已调度数据段的偏移量、起始信息及结尾信息判断待调度数据段的偏移量,当待调度数据段的偏移量大于预设值时,判断所述待调度数据段为长包数据段,所述高优先级先进先出队列进入第二调度模块,当待调度数据段的偏移量不大于预设值时,判断所述待调度数据段为短包数据段,所述低优先级先进先出队列进入第二调度模块。
8.根据权利要求7所述的网络芯片多通道数据传输装置,其特征在于,所述调度模块还用于:
经第一调度模块及第二调度模块后,根据最终所选的高优先级先进先出队列或低优先级先进先出队列中的存储地址调度出所述待调度数据段。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510992243.2A CN105656807B (zh) | 2015-12-25 | 2015-12-25 | 一种网络芯片多通道数据传输方法及传输装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510992243.2A CN105656807B (zh) | 2015-12-25 | 2015-12-25 | 一种网络芯片多通道数据传输方法及传输装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105656807A CN105656807A (zh) | 2016-06-08 |
CN105656807B true CN105656807B (zh) | 2019-02-22 |
Family
ID=56477928
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510992243.2A Active CN105656807B (zh) | 2015-12-25 | 2015-12-25 | 一种网络芯片多通道数据传输方法及传输装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105656807B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106713157A (zh) * | 2016-11-30 | 2017-05-24 | 北海高创电子信息孵化器有限公司 | 一种多通道咨询服务信息传输装置 |
CN106656862B (zh) * | 2016-12-28 | 2019-12-03 | 盛科网络(苏州)有限公司 | 网络芯片超带宽时保证多通道之间丢包均匀性的方法 |
CN109688070A (zh) * | 2018-12-13 | 2019-04-26 | 迈普通信技术股份有限公司 | 一种数据调度方法、网络设备及转发单元 |
CN109617838B (zh) * | 2019-02-22 | 2021-02-26 | 盛科网络(苏州)有限公司 | 多通道报文汇聚共享内存管理方法及系统 |
CN113453368A (zh) * | 2020-03-24 | 2021-09-28 | 阿里巴巴集团控股有限公司 | 指令调度方法和指令调度装置 |
CN114006862B (zh) * | 2021-10-29 | 2023-10-20 | 锐捷网络股份有限公司 | 报文转发方法、装置和设备及计算机存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1601995A (zh) * | 2003-09-25 | 2005-03-30 | 电子科技大学 | 一种多控制分组汇聚交换调度方法 |
CN101193061A (zh) * | 2006-12-14 | 2008-06-04 | 中兴通讯股份有限公司 | 基于多Qos的流量控制方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070201365A1 (en) * | 2006-01-23 | 2007-08-30 | Frederick Skoog | Video packet multiplexer with intelligent packet discard |
-
2015
- 2015-12-25 CN CN201510992243.2A patent/CN105656807B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1601995A (zh) * | 2003-09-25 | 2005-03-30 | 电子科技大学 | 一种多控制分组汇聚交换调度方法 |
CN101193061A (zh) * | 2006-12-14 | 2008-06-04 | 中兴通讯股份有限公司 | 基于多Qos的流量控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105656807A (zh) | 2016-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105656807B (zh) | 一种网络芯片多通道数据传输方法及传输装置 | |
CN106533982B (zh) | 基于带宽借用的动态队列调度装置及方法 | |
JP5036920B1 (ja) | 中継装置、中継装置の制御方法、およびプログラム | |
EP1788755B1 (en) | Method for cell processing and apparatus for cell processing using the same | |
US7296112B1 (en) | High bandwidth memory management using multi-bank DRAM devices | |
CN104394096B (zh) | 一种基于多核处理器的报文处理方法及多核处理器 | |
CN101777031B (zh) | 直接存储器存取控制器以及数据传输方法 | |
CN102971997B (zh) | 包括数据分段和数据描述分段的分组缓冲器 | |
CN110995598B (zh) | 一种变长报文数据处理方法和调度装置 | |
CN103748845B (zh) | 报文发送方法、接收方法、装置及系统 | |
WO2009070324A1 (en) | A method for setting parameters and determining latency in a chained device system | |
CN100420241C (zh) | 实现信息交换的系统及方法和调度算法 | |
US9667564B2 (en) | Implementing hierarchical high radix switch with timesliced crossbar | |
GB2464310A (en) | Scheduling transmission of selected data packets from ingress to egress ports in a switching device. | |
CN109639596A (zh) | 一种用于车载can-canfd混合网络的网关调度方法 | |
CN101635682A (zh) | 一种存储管理的方法和系统 | |
CN107800644A (zh) | 一种可动态配置的流水化令牌桶限速方法与装置 | |
US9665514B2 (en) | Integrated circuit having a bus network, and method for the integrated circuit | |
CN103617132B (zh) | 一种基于共享存储的以太网终端发送实现方法及终端装置 | |
US20080031262A1 (en) | Load-balanced switch architecture for reducing cell delay time | |
CN105335323A (zh) | 一种数据突发的缓存装置和方法 | |
US9628398B1 (en) | Queuing methods and apparatus in a network device | |
CN102388359A (zh) | 信号保序方法和装置 | |
US20030152091A1 (en) | Scalable link-level flow-control for a switching device | |
CN103927125B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 215000 unit 13 / 16, 4th floor, building B, No.5 Xinghan street, Suzhou Industrial Park, Jiangsu Province Patentee after: Suzhou Shengke Communication Co.,Ltd. Address before: Xinghan Street Industrial Park of Suzhou city in Jiangsu province 215021 B No. 5 Building 4 floor 13/16 unit Patentee before: CENTEC NETWORKS (SU ZHOU) Co.,Ltd. |