本技术涉及芯片,特别是涉及一种报文分类缓存调度方法、装置、芯片及电子设备。
背景技术:
1、随着asic(application specific integrated circuit,专用集成芯片)接口带宽的不断提高,许多高速接口mac(media access control address,媒体存取控制) ip(internet protocol,网际互连协议)提供的用户侧接口往往会选择分段式接口。分段式接口相较于相关技术中的普通接口的最主要区别是:同拍可能出现多个报文,且报文开始位置和结束位置不确定。也就是同一时刻可能传输属于不同报文的数据,但普通接口中同一拍中仅可能传输属于同一报文的数据。且sop(start of packet,包开始)指示符和eop(endof packet,包结束)指示符可能会出现在接口中的任意段位置,但普通接口中sop指示符仅可能位于一拍中的第一个数据段。
2、例如,参见图1,为相关技术中的一种分段式接口示意图。
3、图中第一行为时钟信号,第二行为有效信号,有效信号为高电平表示该拍有报文传输,有效信号为低电平表示该拍没有报文传输。从第三行起,每一行对应一个数据段,从上至下分别为数据段0-数据段nseg-1,分别表示同一拍中的第0个数据段至第nseg-1个数据段,nseg为该分段式接口在一拍中能够传输的数据段的总数。图中黄色部分为数据1、橙色部分为数据2、蓝色部分为数据3分别表示属于报文1-报文3的数据段。图中的1、2、3分别为不同报文1-报文3的sop1-sop3,1’、2’、3’分别为不同报文1-报文3的eop1-eop3。图中斜线部分表示不存在数据传输。
4、由图可见,以倒数第三拍为例,该拍中该分段式接口传输数据1、数据2、数据3属于三种报文的数据。且包开始2和包开始3均不位于该拍中的第一数据段。
5、基于上述特性,由于通过分段式接口输入芯片的报文数据较为复杂,因此芯片处理此类报文数据的难度较大。相关技术中芯片往往将同一拍输入的不同报文的数据分为不同拍存储并在不同拍输出。这就导致能够在一拍内输入芯片的报文数据,需要分为多拍输出芯片。使得报文数据输出的速度慢于输入速度,进而导致数据拥塞在芯片中,影响报文的正常处理。
技术实现思路
1、本技术实施例的目的在于提供一种报文分类缓存调度方法、装置、芯片及电子设备,以避免芯片中出现报文数据拥塞的问题。具体技术方案如下:
2、第一方面,本技术实施例提供了一种报文分类缓存调度方法,应用于芯片,所述方法包括:
3、在通过分段式接口接收到一拍内的报文数据后,划分属于不同报文的报文数据,并合并属于同一优先级的报文的报文数据;
4、针对每一优先级,确定该优先级当前对应的多口随机存取存储器ram中的第一地址,所述多口ram中包含的ram的数量等于所述分段式接口一拍内能够传输的数据段的最大数量;
5、通过以下方式将一拍内接收到的报文数据在同一拍内写入所述多口ram中:
6、针对每一优先级,以优先级对应的当前的第一地址为起始位置,将该优先级的报文数据写入第一地址所在的第一存储空间中;若写入后,所述第一存储空间中存在空闲空间,则将第一地址更新为新写入的报文数据后的下一地址;若写入后,所述第一存储空间中不存在空闲空间,则申请新的存储空间,将第一地址更新为新的存储空间的起始地址;若还存在未写入的该优先级的报文数据,以更新后的第一地址为起始位置继续写入报文数据;其中,每一存储空间由所述多口ram中的各个ram中偏移量相同的存储区域组成,每一存储区域能够存储一拍中接收到的一段报文数据,初始的第一地址为最先为该优先级申请的存储区域的起始地址;
7、确定待读取报文数据的目标优先级;
8、确定目标优先级当前对应的第二地址,从所述第二地址起读取第二存储空间中属于同一报文的报文数据,并更新第二地址;其中,第二地址为:所述目标优先级对应的、当前未读取且最先写入的报文数据的起始存储地址,所述第二存储空间为当前的第二地址所在的存储空间;
9、若所述第二存储空间中不存在报文数据,且还存储有能够组成完整报文的目标优先级的报文数据的情况下,将第二地址更新为下一存储空间的起始地址,返回执行从所述第二地址起读取第二存储空间中属于同一报文的报文数据,并更新第二地址的步骤,其中,所述下一存储空间是在所述第二存储空间之后为所述目标优先级申请的下一个存储空间;
10、将属于同一报文的报文数据合并,在同一拍输出所读取的属于目标优先级的报文数据。
11、第二方面,本技术实施例提供了一种报文分类缓存调度装置,应用于芯片,所述装置包括:
12、数据处理模块,用于在通过分段式接口接收到一拍内的报文数据后,划分属于不同报文的报文数据,并合并属于同一优先级的报文的报文数据;
13、第一地址确定模块,用于针对每一优先级,确定该优先级当前对应的多口随机存取存储器ram中的第一地址,所述多口ram中包含的ram的数量等于所述分段式接口一拍内能够传输的数据段的最大数量;
14、数据写入模块,用于通过以下方式将一拍内接收到的报文数据在同一拍内写入所述多口ram中:
15、针对每一优先级,以优先级对应的当前的第一地址为起始位置,将该优先级的报文数据写入第一地址所在的第一存储空间中;若写入后,所述第一存储空间中存在空闲空间,则将第一地址更新为新写入的报文数据后的下一地址;若写入后,所述第一存储空间中不存在空闲空间,则申请新的存储空间,将第一地址更新为新的存储空间的起始地址;若还存在未写入的该优先级的报文数据,以更新后的第一地址为起始位置继续写入报文数据;其中,每一存储空间由所述多口ram中的各个ram中偏移量相同的存储区域组成,每一存储区域能够存储一拍中接收到的一段报文数据,初始的第一地址为最先为该优先级申请的存储区域的起始地址;
16、优先级确定模块,用于确定待读取报文数据的目标优先级;
17、数据读取模块,用于确定目标优先级当前对应的第二地址,从所述第二地址起读取第二存储空间中属于同一报文的报文数据,并更新第二地址;其中,第二地址为:所述目标优先级对应的、当前未读取且最先写入的报文数据的起始存储地址,所述第二存储空间为当前的第二地址所在的存储空间;
18、第二地址更新模块,用于若所述第二存储空间中不存在报文数据,且还存储有能够组成完整报文的目标优先级的报文数据的情况下,将第二地址更新为下一存储空间的起始地址,返回触发执行所述数据读取模块,其中,所述下一存储空间是在所述第二存储空间之后为所述目标优先级申请的下一个存储空间;
19、数据输出模块,用于将属于同一报文的报文数据合并,在同一拍输出所读取的属于目标优先级的报文数据。
20、第三方面,本技术实施例提供了一种芯片,所述芯片用于实现第一方面任一项所述的方法步骤。
21、第四方面,本技术实施例提供了一种电子设备,包括芯片,所述芯片用于实现第一方面中任一项所述的方法步骤。
22、第五方面,本技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现第一方面任一所述的方法步骤。
23、第六方面,本技术实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面任一所述的方法步骤。
24、本技术实施例有益效果:
25、本技术实施例中芯片通过分段式接口接收到报文数据后,首先将一拍内的报文数据按照优先级进行划分并合并,之后对不同优先级的报文数据分别存储与读取。在存储时,不同优先级的报文数据存储于不同的存储空间中。且同一拍接收到的不同优先级的报文在同一拍内存储。不同优先级的报文数据分别存储,能够便于读取目标优先级的报文数据时,不会对所存储的其他优先级的报文数据造成影响。
26、另外,在存储报文数据时,同一优先级的报文数据集中存储,在一个存储空间存满后才会申请新的存储空间,可以降低对多口ram中存储空间的占用。
27、再者,在输出报文数据时,在同一拍内能够输出属于目标优先级的一个以上报文的报文数据,因此报文输出的速度快于相关技术,从而可以避免芯片中出现报文数据拥塞的问题。
1.一种报文分类缓存调度方法,其特征在于,应用于芯片,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述第一地址由第一指针与第二指针指示,所述第一指针指示当前的第一地址所在的ram,所述第二指针指示当前的第一存储空间;
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
4.根据权利要求1所述的方法,其特征在于,所述合并属于同一优先级的报文数据,包括:
5.根据权利要求1-4中任一项所述的方法,其特征在于,针对每一优先级,存在该优先级对应的链表,该链表中记录有以下信息中的至少一项:该优先级对应的第一地址、第二地址、所述多口ram中当前存储的属于该优先级的完整报文的数量、所述多口ram中当前存储的属于该优先级的报文数据的数据量。
6.根据权利要求5所述的方法,其特征在于,针对每一优先级,在该优先级对应的链表中记录有所述多口ram中当前存储的属于该优先级的报文数据的数据量的情况下,所述方法还包括:
7.根据权利要求1-4中任一项所述的方法,其特征在于,所述方法还包括:
8.一种报文分类缓存调度装置,其特征在于,应用于芯片,所述装置包括:
9.根据权利要求8所述的装置,其特征在于,所述第一地址由第一指针与第二指针指示,所述第一指针指示当前的第一地址所在的ram,所述第二指针指示当前的第一存储空间;
10.根据权利要求8所述的装置,其特征在于,所述装置还包括:
11.根据权利要求8所述的装置,其特征在于,所述数据处理模块,包括:
12.根据权利要求8-11中任一项所述的装置,其特征在于,针对每一优先级,存在该优先级对应的链表,该链表中记录有以下信息中的至少一项:该优先级对应的第一地址、第二地址、所述多口ram中当前存储的属于该优先级的完整报文的数量、所述多口ram中当前存储的属于该优先级的报文数据的数据量。
13.根据权利要求12所述的装置,其特征在于,针对每一优先级,在该优先级对应的链表中记录有所述多口ram中当前存储的属于该优先级的报文数据的数据量的情况下,所述装置还包括:
14.根据权利要求8-11中任一项所述的装置,其特征在于,所述装置还包括:
15.一种芯片,其特征在于,所述芯片用于实现权利要求1-7中任一项所述的方法步骤。
16.一种电子设备,其特征在于,包括芯片,所述芯片用于实现权利要求1-7中任一项所述的方法步骤。
17.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-7任一所述的方法步骤。