CN105656807A - 一种网络芯片多通道数据传输方法及传输装置 - Google Patents

一种网络芯片多通道数据传输方法及传输装置 Download PDF

Info

Publication number
CN105656807A
CN105656807A CN201510992243.2A CN201510992243A CN105656807A CN 105656807 A CN105656807 A CN 105656807A CN 201510992243 A CN201510992243 A CN 201510992243A CN 105656807 A CN105656807 A CN 105656807A
Authority
CN
China
Prior art keywords
data section
section
data
dispatching
outer queue
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
Application number
CN201510992243.2A
Other languages
English (en)
Other versions
CN105656807B (zh
Inventor
徐子轩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Centec Communications Co Ltd
Original Assignee
Centec Networks Suzhou Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Centec Networks Suzhou Co Ltd filed Critical Centec Networks Suzhou Co Ltd
Priority to CN201510992243.2A priority Critical patent/CN105656807B/zh
Publication of CN105656807A publication Critical patent/CN105656807A/zh
Application granted granted Critical
Publication of CN105656807B publication Critical patent/CN105656807B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/6215Individual queue per QOS, rate or priority
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/6245Modifications to standard FIFO or LIFO

Abstract

本发明揭示了一种网络芯片多通道数据传输方法及传输装置,包括:接收报文;计算数据段的偏移量并区分长、短包数据段;优先存储长包数据段;将长、短包数据段通道编号及存储地址分别写进高、低优先级先进先出队列;优先读取高优先级先进先出队列中的通道编号,索引该通道已调度数据段信息;根据已调度数据段信息判断待调度数据段类型,当为长包数据段时,高优先级先进先出队列参与调度,当为短包数据段时,低优先级先进先出队列参与调度;根据存储地址调度待调度数据段并用其更新为已调度数据段信息。本发明优先存储长包数据段,降低长包数据段的截断概率,利用调度仲裁逻辑,使数据段间隔不会因为网络超带宽而被拉长,且保证数据段不发生错乱。

Description

一种网络芯片多通道数据传输方法及传输装置
技术领域
本发明涉及网络通信领域,尤其涉及一种网络芯片多通道数据传输方法及传输装置。
背景技术
在高密度网络芯片中,多通道的数据汇聚到数据接收模块并调度至芯片内部进行处理。随着外部输入带宽的增加,会出现数据接收模块输出带宽小于输入带宽的现象,称之为网络超带宽。
在传统的网络芯片多通道数据传输装置中,如图1所示,包括多个多通道组,这里以两个多通道组(多通道组0、多通道组1)为例。首先从可使用地址的先进先出阵列(First-InFirst-Out,fifo)中取出一个可使用地址,将通道中传输的数据写进存储器1中与所述可使用地址对应的写地址中,并根据数据到达的先后顺序产生调度请求先进先出阵列2,将存储器对应的写地址写进调度请求先进先出阵列2中,调度模块3将某个通道的数据调度出来,发送给下级模块处理。
这里,由于短包包率比长包包率大,在网络超带宽时,大量传输短包的通道会抢占传输长包的通道带宽,引起多通道之间数据调度不均衡,导致同一通道数据调度间隔被拉大。其次,在网络超带宽时,存储器的入口流量大于出口流量,引起存储器被占满,长包数据更容易因为没有存储空间而被截断,平均丢包率大幅增加,进一步加剧了多通道之间数据调度的不均衡性。
发明内容
本发明的目的在于提供一种网络芯片多通道数据传输方法及传输装置。
为实现上述发明目的之一,本发明一实施方式提供一种网络芯片多通道数据传输方法,包括步骤:
S1:接收报文,所述报文由至少一数据段组成;
S2:计算当前数据段的偏移量,所述偏移量定义为所述当前数据段与首数据段之间的数据段间隔数量;
S3:判断所述当前数据段的数据段类型,当所述偏移量不大于预设值时,判断所述当前数据段为短包数据段,当所述偏移量大于预设值时,判断所述当前数据段为长包数据段;
S4:于存储空间内存储所述当前数据段,所述存储空间优先存储长包数据段;
S5:将长包数据段通道编号及存储地址写进高优先级先进先出队列,将短包数据段通道编号及存储地址写进低优先级先进先出队列;
S6:优先读取高优先级先进先出队列中的通道编号,索引出所述通道编号对应通道内的已调度数据段信息;
S7:根据已调度数据段信息判断待调度数据段的数据段类型,当判断所述待调度数据段为长包数据段时,所述高优先级先进先出队列参与调度,当判断所述待调度数据段为短包数据段时,所述低优先级先进先出队列参与调度;
S8:根据参与调度的高优先级先进先出队列或低优先级先进先出队列中的存储地址调度出所述待调度数据段;
S9:将该通道待调度数据段信息更新为已调度数据段信息,重复步骤S7、S8。
作为本发明一实施方式的进一步改进,步骤S4具体包括:
于存储空间内存储所述当前数据段,当所述当前数据段为短包数据段且已使用存储空间未超过所述存储空间的第一阈值时,存储所述当前数据段,当判断所述当前数据段为短包数据段且所述已使用存储空间超过所述第一阈值时,丢弃所述当前数据段,当判断所述当前数据段为长包数据段且所述已使用存储空间未超过所述存储空间的第二阈值时,存储所述当前数据段,当判断所述当前数据段为长包数据段且已使用存储空间超过第二阈值时,丢弃当前数据段,所述第二阈值大于所述第一阈值。
作为本发明一实施方式的进一步改进,步骤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 (10)

1.一种网络芯片多通道数据传输方法,其特征在于包括步骤:
S1:接收报文,所述报文由至少一数据段组成;
S2:计算当前数据段的偏移量,所述偏移量定义为所述当前数据段与首数据段之间的数据段间隔数量;
S3:判断所述当前数据段的数据段类型,当所述偏移量不大于预设值时,判断所述当前数据段为短包数据段,当所述偏移量大于预设值时,判断所述当前数据段为长包数据段;
S4:于存储空间内存储所述当前数据段,所述存储空间优先存储长包数据段;
S5:将长包数据段通道编号及存储地址写进高优先级先进先出队列,将短包数据段通道编号及存储地址写进低优先级先进先出队列;
S6:优先读取高优先级先进先出队列中的通道编号,索引出所述通道编号对应通道内的已调度数据段信息;
S7:根据已调度数据段信息判断待调度数据段的数据段类型,当判断所述待调度数据段为长包数据段时,所述高优先级先进先出队列参与调度,当判断所述待调度数据段为短包数据段时,所述低优先级先进先出队列参与调度;
S8:根据参与调度的高优先级先进先出队列或低优先级先进先出队列中的存储地址调度出所述待调度数据段;
S9:将该通道待调度数据段信息更新为已调度数据段信息,重复步骤S7、S8。
2.根据权利要求1所述的网络芯片多通道数据传输方法,其特征在于步骤S4具体包括:
于存储空间内存储所述当前数据段,当所述当前数据段为短包数据段且已使用存储空间未超过所述存储空间的第一阈值时,存储所述当前数据段,当判断所述当前数据段为短包数据段且所述已使用存储空间超过所述第一阈值时,丢弃所述当前数据段,当判断所述当前数据段为长包数据段且所述已使用存储空间未超过所述存储空间的第二阈值时,存储所述当前数据段,当判断所述当前数据段为长包数据段且已使用存储空间超过第二阈值时,丢弃当前数据段,所述第二阈值大于所述第一阈值。
3.根据权利要求1所述的网络芯片多通道数据传输方法,其特征在于步骤S6具体包括:
调度存储的数据段,调度过程包括一通道组内的一级调度以及多组通道组之间的二级调度,具体包括:
判断所述通道组中所述低优先级先进先出队列及所述高优先级先进先出队列是否为空,当所述低优先级先进先出队列及所述高优先级先进先出队列均为空时,不参与二级调度,当所述低优先级先进先出队列为空且所述高优先级先进先出队列不为空时,所述高优先级先进先出队列参与二级调度,当所述低优先级先进先出队列不为空且所述高优先级先进先出队列为空时,所述低优先级先进先出队列参与二级调度,当所述低优先级先进先出队列及所述高优先级先进先出队列均不为空时,读出高优先级先进先出队列中的通道编号,索引出所述通道编号对应通道内的已调度数据段信息。
4.根据权利要求3所述的网络芯片多通道数据传输方法,其特征在于步骤S7具体包括:
读取已调度数据段的偏移量、起始信息及结尾信息,根据所述已调度数据段的偏移量、起始信息及结尾信息判断待调度数据段的偏移量,当待调度数据段的偏移量大于预设值时,判断所述待调度数据段为长包数据段,所述高优先级先进先出队列参与二级调度,当待调度数据段的偏移量不大于预设值时,判断所述待调度数据段为短包数据段,所述低优先级先进先出队列参与二级调度。
5.根据权利要求4所述的网络芯片多通道数据传输方法,其特征在于步骤S8具体包括:
经一级调度及二级调度后,根据最终所选的高优先级先进先出队列或低优先级先进先出队列中的存储地址调度出所述待调度数据段。
6.一种网络芯片多通道数据传输装置,其特征在于包括:
接收模块,用于接收报文,所述报文由至少一数据段组成;
处理模块,所述处理模块用于:
计算当前数据段的偏移量,所述偏移量定义为所述当前数据段与首数据段之间的数据段间隔数量;
判断所述当前数据段的数据段类型,当所述偏移量不大于预设值时,判断所述当前数据段为短包数据段,当所述偏移量大于预设值时,判断所述当前数据段为长包数据段;
存储模块,用于存储所述当前数据段,所述存储模块优先存储所述长包数据段,且所述存储模块用于将长包数据段通道编号及存储地址写进高优先级先进先出队列,将短包数据段通道编号及存储地址写进低优先级先进先出队列;
调度模块,所述调度模块用于:
优先读取高优先级先进先出队列中的通道编号,索引出所述通道编号对应通道内的已调度数据段信息;
根据已调度数据段判断待调度数据段的数据段类型,当判断所述待调度数据段为长包数据段时,所述高优先级先进先出队列参与调度,当判断所述待调度数据段为短包数据段时,所述低优先级先进先出队列参与调度;
根据参与调度的高优先级先进先出队列或低优先级先进先出队列中的存储地址调度出所述待调度数据段;
将该通道待调度数据段信息更新为已调度数据段信息以进行下次调度。
7.根据权利要求6所述的网络芯片多通道数据传输装置,其特征在于,所述处理模块还用于:
当所述当前数据段为短包数据段且已使用存储空间未超过所述存储模块的存储空间的第一阈值时,所述存储模块存储所述当前数据段,当判断所述当前数据段为短包数据段且所述已使用存储空间超过所述第一阈值时,丢弃所述当前数据段,当判断所述当前数据段为长包数据段且所述已使用存储空间未超过所述存储空间的第二阈值时,所述存储模块存储所述当前数据段,当判断所述当前数据段为长包数据段且已使用存储空间超过第二阈值时,丢弃当前数据段,所述第二阈值大于所述第一阈值。
8.根据权利要求6所述的网络芯片多通道数据传输装置,其特征在于,所述网络芯片包括多组多通道组,所述调度模块包括多个第一调度模块及一第二调度模块,所述多个第一调度模块与所述多组多通道一一对应,所述第二调度模块连接所述多个第一调度模块,所述调度模块还用于:
判断所述通道组中所述低优先级先进先出队列及所述高优先级先进先出队列是否为空,当所述低优先级先进先出队列及所述高优先级先进先出队列均为空时,不进入所述第二调度模块,当所述低优先级先进先出队列为空且所述高优先级先进先出队列不为空时,所述高优先级先进先出队列进入所述第二调度模块,当所述低优先级先进先出队列不为空且所述高优先级先进先出队列为空时,所述低优先级先进先出队列进入所述第二调度模块,当所述低优先级先进先出队列及所述高优先级先进先出队列均不为空时,读出高优先级先进先出队列中的通道编号,索引出所述通道编号对应通道内的已调度数据段信息。
9.根据权利要求8所述的网络芯片多通道数据传输装置,其特征在于,所述调度模块还用于:
读取已调度数据段的偏移量、起始信息及结尾信息,根据所述已调度数据段的偏移量、起始信息及结尾信息判断待调度数据段的偏移量,当待调度数据段的偏移量大于预设值时,判断所述待调度数据段为长包数据段,所述高优先级先进先出队列进入第二调度模块,当待调度数据段的偏移量不大于预设值时,判断所述待调度数据段为短包数据段,所述低优先级先进先出队列进入第二调度模块。
10.根据权利要求9所述的网络芯片多通道数据传输装置,其特征在于,所述调度模块还用于:
经第一调度模块及第二调度模块后,根据最终所选的高优先级先进先出队列或低优先级先进先出队列中的存储地址调度出所述待调度数据段。
CN201510992243.2A 2015-12-25 2015-12-25 一种网络芯片多通道数据传输方法及传输装置 Active CN105656807B (zh)

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 true CN105656807A (zh) 2016-06-08
CN105656807B 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)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106656862A (zh) * 2016-12-28 2017-05-10 盛科网络(苏州)有限公司 网络芯片超带宽时保证多通道之间丢包均匀性的方法
CN106713157A (zh) * 2016-11-30 2017-05-24 北海高创电子信息孵化器有限公司 一种多通道咨询服务信息传输装置
CN109617838A (zh) * 2019-02-22 2019-04-12 盛科网络(苏州)有限公司 多通道报文汇聚共享内存管理方法及系统
CN109688070A (zh) * 2018-12-13 2019-04-26 迈普通信技术股份有限公司 一种数据调度方法、网络设备及转发单元
CN113453368A (zh) * 2020-03-24 2021-09-28 阿里巴巴集团控股有限公司 指令调度方法和指令调度装置
CN114006862A (zh) * 2021-10-29 2022-02-01 锐捷网络股份有限公司 报文转发方法、装置和设备及计算机存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1601995A (zh) * 2003-09-25 2005-03-30 电子科技大学 一种多控制分组汇聚交换调度方法
US20070201365A1 (en) * 2006-01-23 2007-08-30 Frederick Skoog Video packet multiplexer with intelligent packet discard
CN101193061A (zh) * 2006-12-14 2008-06-04 中兴通讯股份有限公司 基于多Qos的流量控制方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1601995A (zh) * 2003-09-25 2005-03-30 电子科技大学 一种多控制分组汇聚交换调度方法
US20070201365A1 (en) * 2006-01-23 2007-08-30 Frederick Skoog Video packet multiplexer with intelligent packet discard
CN101193061A (zh) * 2006-12-14 2008-06-04 中兴通讯股份有限公司 基于多Qos的流量控制方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106713157A (zh) * 2016-11-30 2017-05-24 北海高创电子信息孵化器有限公司 一种多通道咨询服务信息传输装置
CN106656862A (zh) * 2016-12-28 2017-05-10 盛科网络(苏州)有限公司 网络芯片超带宽时保证多通道之间丢包均匀性的方法
CN109688070A (zh) * 2018-12-13 2019-04-26 迈普通信技术股份有限公司 一种数据调度方法、网络设备及转发单元
CN109617838A (zh) * 2019-02-22 2019-04-12 盛科网络(苏州)有限公司 多通道报文汇聚共享内存管理方法及系统
CN113453368A (zh) * 2020-03-24 2021-09-28 阿里巴巴集团控股有限公司 指令调度方法和指令调度装置
CN114006862A (zh) * 2021-10-29 2022-02-01 锐捷网络股份有限公司 报文转发方法、装置和设备及计算机存储介质
CN114006862B (zh) * 2021-10-29 2023-10-20 锐捷网络股份有限公司 报文转发方法、装置和设备及计算机存储介质

Also Published As

Publication number Publication date
CN105656807B (zh) 2019-02-22

Similar Documents

Publication Publication Date Title
CN105656807A (zh) 一种网络芯片多通道数据传输方法及传输装置
CN103348640B (zh) 中继装置
US9602436B2 (en) Switching device
CN100420241C (zh) 实现信息交换的系统及方法和调度算法
CN101252536A (zh) 路由器多队列数据包缓存管理与输出队列调度系统
CN102971997B (zh) 包括数据分段和数据描述分段的分组缓冲器
CN104125168A (zh) 一种共享资源的调度方法和系统
CN103714038A (zh) 一种数据处理方法和装置
CN102665284B (zh) 上行业务传输调度方法和终端
CN108984280A (zh) 一种片外存储器的管理方法和装置、计算机可读存储介质
CN101374109B (zh) 一种报文调度方法和调度装置
US9063841B1 (en) External memory management in a network device
CN103858393A (zh) 网络包的并行处理
CN103617132B (zh) 一种基于共享存储的以太网终端发送实现方法及终端装置
JP3698079B2 (ja) データ転送方法、データ転送装置及びプログラム
CN102594669A (zh) 数据报文的处理方法、装置及设备
US7304949B2 (en) Scalable link-level flow-control for a switching device
CN109995667A (zh) 传输报文的方法和发送设备
CN102170401B (zh) 一种数据的处理方法和设备
CN102143053A (zh) 传输数据的方法、装置和系统
CN101478495A (zh) 流量限制方法和装置
CN103827836A (zh) 存储数据的方法和装置
US10021035B1 (en) Queuing methods and apparatus in a network device
CN102739531A (zh) 流量整形方法和流量整形设备
CN102388359A (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.