一种网络芯片多通道数据传输方法及传输装置的制造方法_2

文档序号:9891349阅读:来源:国知局
一实施方式的网络芯片多通道数据传输装置结构示意图。
【具体实施方式】
[0018]以下将结合附图所示的【具体实施方式】对本发明进行详细描述。但这些实施方式并不限制本发明,本领域的普通技术人员根据这些实施方式所做出的结构、方法、或功能上的变换均包含在本发明的保护范围内。
[0019]参图2,为本发明一实施方式的网络芯片多通道数据传输方法流程图,包括步骤:
SI:接收报文,所述报文由至少一数据段组成;
S2:计算当前数据段的偏移量offset,所述偏移量offset定义为所述当前数据段与首数据段之间的数据段间隔数量;
53:判断所述当前数据段的数据段类型,当所述偏移量off set不大于预设值时,判断所述当前数据段为短包数据段,当所述偏移量offset大于预设值时,判断所述当前数据段为长包数据段;
54:于存储空间内存储所述当前数据段,所述存储空间优先存储长包数据段;
S5:将长包数据段通道编号及存储地址写进高优先级先进先出队列,将短包数据段通道编号及存储地址写进低优先级先进先出队列;
S6:优先读取高优先级先进先出队列中的通道编号,索引出所述通道编号对应通道内的已调度数据段信息;
S7:根据已调度数据段信息判断待调度数据段的数据段类型,当判断所述待调度数据段为长包数据段时,所述高优先级先进先出队列参与调度,当判断所述待调度数据段为短包数据段时,所述低优先级先进先出队列参与调度;
S8:根据参与调度的高优先级先进先出队列或低优先级先进先出队列中的存储地址调度出所述待调度数据段;
S9:将该通道待调度数据段信息更新为已调度数据段信息,重复步骤S7、S8。
[0020]这里,需要说明的是,上述步骤仅为本发明一实施方式的示意步骤,步骤的先后顺序不以此为限,且某一时间段可由多个步骤同时进行,例如,存储数据段的存储器可为一读一写存储器,步骤S4-S5的存储过程及步骤S6-S9的调度过程可同时进行,本申请不以此为限,可依据实际情况而定。
[0021]在本实施方式中,存储空间优先存储长包数据段,大幅降低长包数据段因为存储空间用尽而被截断的概率,同时,在调度过程中,优先调度出长包数据段,不仅保证后续进来的长包数据段可以顺利存储防止丢包,而且使得长包数据段顺利送出,整体上降低了长包数据段的丢包率,从而提高网络芯片的转发能力。另外,在数据段调度过程中,本发明利用调度仲裁逻辑,使得数据段间隔不会因为网络超带宽而被拉长,且保证数据段不发生错舌L。
[0022]在本实施方式中,偏移量offset与报文总长度L及存储器位宽D有关,当报文总长度L大于存储器位宽D时,一个报文需要拆分成多个数据段进行传输。这里,某一报文包含的数据段总数定义为数据段总数Nciffse3t=报文总长度L/存储器位宽D,Nciffse3t实质为L和D的商,当商为非整数时,Nciffset为商取整加I ,Nciffset为自然数。假设L=10bit,D=10bit,则该报文的数据段总数Νμ-=100/10=10段,依次将这10段数据段编号,分别为:第I段数据段、第2段数据段……第10段数据段,此时,第I段数据段(即为首数据段)的偏移量offset为I,第2段数据段的偏移量offset为2......第10段数据段(即为尾数据段)的偏移量offset为10,其中,
每一数据段均包含偏移量offset、起始信息及结尾信息,通过偏移量offset、所述起始信息及所述结尾信息可判断后一数据段的偏移量offset等信息。
[0023]在本实施方式中,预设值N定义为2,当偏移量offset<2时,判断对应的当前数据段为短包数据段,当偏移量of f set > 2时,判断对应的当前数据段为长包数据段。当判断完当前数据段的数据段类型后,需要对当前数据段进行存储(或丢弃)以及进行调度请求排列,这里,为了防止长包数据段因存储空间用尽而被截断,特别为长包数据段预留了一定的存储空间,即此时存储空间优先存储长包数据段。
[0024]具体的,如图3所示,当所述当前数据段为短包数据段且已使用存储空间S未超过所述存储空间的第一阈值Tl时,将所述当前数据段写入低优先级先进先出队列中,当判断所述当前数据段为短包数据段且所述已使用存储空间S超过所述第一阈值Tl时,丢弃所述当前数据段,当判断所述当前数据段为长包数据段且所述已使用存储空间S未超过所述存储空间的第二阈值T2时,将所述当前数据段写入高优先级先进先出队列中,当判断所述当前数据段为长包数据段且已使用存储空间S超过第二阈值T2时,丢弃当前数据段,所述第二阈值T2大于所述第一阈值Tl ο这里,第二阈值T2实质为存储空间的最大值,第二阈值T2与第一阈值Tl之间的存储空间即为预留给长包数据段的存储空间,也就是说,只要已使用存储空间S还未达到最大值,则一定可以存储长包数据段,但不一定可以存储短包数据段,只有已使用存储空间S还未达到第一阈值Tl时才可存储短包数据段,如此,在存储空间有限的情况下,会优先存储长包数据段,从而降低长包数据段丢包率。
[0025]这里,存储空间的大小由存储器的深度决定,本实施方式还可利用一计数器来统计已使用存储空间S,当存储器中存储某一数据段时,无论是写入高优先级先进先出队列还是低优先级先进先出队列,计数器的计数值都加I,当存储器中调度出某一数据段时,无论是由高优先级先进先出队列还是低优先级先进先出队列调度出,计数器的计数值都减1,如此,可根据计数值与第一阈值Tl、第二阈值T2的大小关系控制数据段的存储及丢弃。另外,当需要将长包数据段写入高优先级先进先出队列中时,将该长包数据段的通道编号(即由哪条通道传输过来)、存储地址(即此时数据段对应存储空间的地址)写入高优先级先进先出队列中,类似的,当需要将短包数据段写入低优先级先进先出队列中时,将该短包数据段的通道编号、存储地址写入低优先级先进先出队列中,如此,可为后续的调度过程提供调度依据。
[0026]在本实施方式中,所述网络芯片包括多组多通道组,多组多通道组之间的控制、存储逻辑等都是相互独立的,每个多通道组都包含多个数据通道,且多个数据通道共用一个存储空间。每一多通道组进行一级调度,且多组多通道组之间在一级调度后还进行二级调度,一级调度实现每一多通道组中低优先级先进先出队列及所述高优先级先进先出队列之间的仲裁,均衡该多通道组内数据段调度间隔,二级调度通过WRR算法实现多组多通道组之间的仲裁,均衡多组多通道组之间的带宽流量,步骤S6具体包括:
判断所述通道组中所述低优先级先进先出队列及所述高优先级先进先出队列是否为空,当所述低优先级先进先出队列及所述高优先级先进先出队列均为空时,不参与二级调度,当所述低优先级先进先出队列为空且所述高优先级先进先出队列不为空时,所述高优先级先进先出队列参与二级调度,当所述低优先级先进先出队列不为空且所述高优先级先进先出队列为空时,所述低优先级先进先出队列参与二级调度,当所述低优先级先进先出队列及所述高优先级先进先出队列均不为空时,读出高优先级先进先出队列中的通道编号,索引出所述通道编号对应通道内的已调度数据段信息。这里,需要说明的是,网络芯片可以只包含一组多通道组,此时可省略二级调度。
[0027]在本实施方式中,由于短包数据段及长包数据段分别位于低优先级先进先出队列及高优先级先进先出队列中,利用调度仲裁逻辑,可以实现高优先级先进先出队列中的长包数据段优先调度,使得数据段间隔不会因为网络超带宽而被拉长,且保证数据段不发生错乱。
[0028]当所述低优先级先进先出队列及所述高优先级先进先出队列均不为空时,优先对高优先级先进先出队列中的数据段进行调度。具体包括:读出高优先级先进先出队列中的通道编号,索引出所述通道编号对应通道内的已调度数据段信息,读取已调度数据段的偏移量offset、起始信息及结尾信息,根据所述已调度数据段的偏移量offset、起始信息及结尾信息判断待调度数据段的偏移量offset,当待调度数据段的偏移量offset大于预设值时,判断所述待调度数据段为长包数据段,所述高优先级先进先出队列参与二级调度,当待调度数据段的偏移量offset不大于预设值时,判断所述待调度数据段为短包数据段,所述低优先级先进先出队列参与二级调度;经一级调度及二级调度后,根据最终所选的高优先级先进先出队列或低优先级先进先出队列中的存储地址调度出所述待调度数据段。需要说明的是,这里提到的预设值与前述判断当前数据段的数据段类型时的预设值相同,即此时的预设值为2。
[0029]这里,先索引出该通道内已调度数据段的起始信息及结尾信息,如此,根据已调度数据段的偏移量offset、起始信息及结尾信息判断待调度数据段的偏移量offset。例如,以报文包括10段数据段为例,当已调度数据段位于报文结尾时,说明该报文已经调度完成,则待调度数据段为下一个报文的第I段数据段,待调度数据段的偏移量offset为I,待调度数据段位于低优先级先进先出队列中,此时低优先级先进先出队列参与二级调度;当已调度数据段的偏移量offset为第I段数据段时,则待调度数据段为第2段数据段,待调度数据段的偏移量offset为2,待调度数据段位于低优先级先进先出队列中,此时低优先级先进先出队列参与二级调度;当已调度数据段的偏移量offset为第5段数据段时,则待调度数据段为第6段数据段,待调度数据段的偏移量offset为6,待调度数据段位于高优先级先进先出队列中,此时高优先级先进先出队列参与二级调度。这里,由于高优先级先进先出队列及低优先级先进先出
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1