本技术涉及芯片,特别是涉及一种片上缓存共享方法及交换芯片。
背景技术:
1、交换芯片在进行报文处理和转发时,会将报文存入不同的缓冲空间中。在入队流程中,交换芯片会将报文中的报文内容和报文描述符分开存储,报文描述符将会存储在队列管理单元中。在出队流程中,交换芯片根据不同的调度算法对报文做不同的调度处理时,需要同时读出报文描述符和报文内容。
2、然而随着通讯业务越来越多,交换芯片处理流量的要求越来越大。由于交换芯片上缓存空间的不合理利用,只设置了一个队列管理单元,有大流量来临时,会有大量的报文描述符短时间涌入该队列管理单元中,进而该队列管理单元会在短时间内进行大量的读写操作,队列管理单元难以在短时间内处理大量的报文描述符,进而就容易造成网络堵塞和数据丢失。
技术实现思路
1、本技术实施例的目的在于提供一种片上缓存共享方法及交换芯片,以实现交换芯片上缓存空间的合理利用,从而能够在短时间内处理大量的报文描述符,进而降低网络堵塞和数据丢失的概率。具体技术方案如下:
2、第一方面,本技术实施例提供了一种片上缓存共享方法,所述方法应用于交换芯片,所述交换芯片包括第一数量个队列管理单元和第一数量个空闲缓存计算单元,每一个队列管理单元连接有一个空闲缓存计算单元,相邻的空闲缓存计算单元之间相互连接,每一队列管理单元的本地缓存空间用于缓存报文描述符,所述方法包括:
3、所述队列管理单元中任一的第一队列管理单元根据本地空闲缓存空间容量确定第一优先级,向所连接的第一空闲缓存计算单元发送所述第一优先级,所述第一优先级的大小与所述队列管理单元的本地空闲缓存空间容量的大小成反比;
4、所述第一空闲缓存计算单元接收相邻的第二空闲缓存计算单元发送的第二优先级,基于所述第二优先级的最大值确定第三优先级;若所述第一优先级大于所述第三优先级,从所述第二空闲缓存计算单元中获取第一空闲指针,在接收到所述第一队列管理单元发送的空闲指针获取请求后,向所述第一队列管理单元发送所述第一空闲指针;若所述第一优先级小于等于所述第三优先级,从所述第一队列管理单元中获取第二空闲指针,向所述第二空闲缓存计算单元发送获取的空闲指针;
5、其中,所述第二空闲缓存计算单元的第二优先级等于所连接的第二队列管理单元的第一优先级,所述第一空闲指针用于指示所对应的队列管理单元中本地空闲缓存空间的地址,所述第二空闲指针用于指示所述第一队列管理单元中本地空闲缓存空间的地址。
6、本技术的一个实施例中,所述从所述第二空闲缓存计算单元中获取第一空闲指针,包括:
7、从第二优先级小于所述第一优先级的第二空闲缓存计算单元中获取第一空闲指针;
8、和/或
9、所述向所述第二空闲缓存计算单元发送获取的空闲指针,包括:
10、向第二优先级最大的第二空闲缓存计算单元发送获取的空闲指针。
11、本技术的一个实施例中,每一队列管理单元和每一空闲缓存计算单元包括临时缓存子单元,所述从所述第二空闲缓存计算单元中获取第一空闲指针,在接收到所述第一队列管理单元发送的空闲指针获取请求后,向所述第一队列管理单元发送所述第一空闲指针,包括:
12、从第二临时缓存子单元中获取第一空闲指针,并将所述第一空闲指针存储至第一临时缓存子单元,直至所述第一临时缓存子单元的空闲空间容量小于等于第一预设阈值;在接收到所述第一队列管理单元发送的空闲指针获取请求后,向第三临时缓存子单元发送所述第一空闲指针;
13、其中,所述第一临时缓存子单元为:所述第一空闲缓存计算单元的临时缓存子单元,所述第二临时缓存子单元为:所述第二空闲缓存计算单元的临时缓存子单元,所述第三临时缓存子单元为:所述第一队列管理单元的临时缓存子单元;
14、所述从所述第一队列管理单元中获取第二空闲指针,向所述第二空闲缓存计算单元发送获取的空闲指针,包括:
15、从所述第三临时缓存子单元中获取第二空闲指针,并将所述第二空闲指针存储至所述第一临时缓存子单元,向所述第二临时缓存子单元发送获取的空闲指针。
16、本技术的一个实施例中,所述空闲指针获取请求是所述第一队列管理单元的本地空闲缓存空间容量小于等于第二预设阈值时发送的;
17、和/或
18、所述第二空闲指针是所述第一队列管理单元的本地空闲缓存空间容量大于第三预设阈值时,所述第一队列管理单元从本地空闲缓存空间中选取并存储至所述第三临时缓存子单元的空闲指针。
19、本技术的一个实施例中,所述根据本地空闲缓存空间容量确定第一优先级,包括:
20、当所述第一队列管理单元的本地空闲缓存空间容量为零时,确定第一优先级为预设最大值;
21、当所述第一队列管理单元的本地空闲缓存空间容量不为零时,基于所述第一队列管理单元的本地空闲缓存空间容量,确定所述第一队列管理单元的本地已使用缓存空间容量,对所述本地已使用缓存空间容量和第一预设参数求商,确定所述第一优先级。
22、第二方面,本技术实施例提供了一种交换芯片,所述交换芯片包括第一数量个队列管理单元和第一数量个空闲缓存计算单元,每一个队列管理单元连接有一个空闲缓存计算单元,相邻的空闲缓存计算单元之间相互连接,所述队列管理单元的本地缓存空间用于缓存报文描述符;
23、所述队列管理单元中任一的第一队列管理单元,用于根据本地空闲缓存空间容量确定第一优先级,向所连接的第一空闲缓存计算单元发送所述第一优先级,所述第一优先级的大小与所述队列管理单元的本地空闲缓存空间容量的大小成反比;
24、所述第一空闲缓存计算单元,用于接收相邻的第二空闲缓存计算单元发送的第二优先级,基于所述第二优先级的最大值确定第三优先级;若所述第一优先级大于所述第三优先级,从所述第二空闲缓存计算单元中获取第一空闲指针,在接收到所述第一队列管理单元发送的空闲指针获取请求后,向所述第一队列管理单元发送所述第一空闲指针;若所述第一优先级小于等于所述第三优先级,从所述第一队列管理单元中获取第二空闲指针,向所述第二空闲缓存计算单元发送获取的空闲指针;
25、其中,所述第二空闲缓存计算单元的第二优先级等于所连接的第二队列管理单元的第一优先级,所述第一空闲指针用于指示所对应的队列管理单元中本地空闲缓存空间的地址,所述第二空闲指针用于指示所述第一队列管理单元中本地空闲缓存空间的地址。
26、本技术的一个实施例中,所述第一空闲缓存计算单元,具体用于从第二优先级小于所述第一优先级的第二空闲缓存计算单元中获取第一空闲指针;和/或向第二优先级最大的第二空闲缓存计算单元发送获取的空闲指针。
27、本技术的一个实施例中,每一队列管理单元和每一空闲缓存计算单元包括临时缓存子单元,所述第一空闲缓存计算单元,
28、具体用于从第二临时缓存子单元中获取第一空闲指针,并将所述第一空闲指针存储至第一临时缓存子单元,直至所述第一临时缓存子单元的空闲空间容量小于等于第一预设阈值;在接收到所述第一队列管理单元发送的空闲指针获取请求后,向第三临时缓存子单元发送所述第一空闲指针;其中,所述第一临时缓存子单元为:所述第一空闲缓存计算单元的临时缓存子单元,所述第二临时缓存子单元为:所述第二空闲缓存计算单元的临时缓存子单元,所述第三临时缓存子单元为:所述第一队列管理单元的临时缓存子单元;
29、从所述第三临时缓存子单元中获取第二空闲指针,并将所述第二空闲指针存储至所述第一临时缓存子单元,向所述第二临时缓存子单元发送获取的空闲指针。
30、本技术的一个实施例中,所述空闲指针获取请求是所述第一队列管理单元的本地空闲缓存空间容量小于第二预设阈值时发送的;和/或所述第二空闲指针是所述第一队列管理单元的本地空闲缓存空间容量大于第三预设阈值时,所述第一队列管理单元从本地空闲缓存空间中选取并存储至所述第三临时缓存子单元的空闲指针。
31、本技术的一个实施例中,所述队列管理单元中任一的第一队列管理单元,具体用于当所述第一队列管理单元的本地空闲缓存空间容量为零时,确定第一优先级为预设最大值;当所述第一队列管理单元的本地空闲缓存空间容量不为零时,基于所述第一队列管理单元的本地空闲缓存空间容量,确定所述第一队列管理单元的本地已使用缓存空间容量,对所述本地已使用缓存空间容量和第一预设参数求商,确定所述第一优先级。
32、本技术实施例还提供了一种电子设备,包括交换芯片、通信接口、存储器和通信总线,其中,交换芯片,通信接口,存储器通过通信总线完成相互间的通信;
33、存储器,用于存放计算机程序;
34、交换芯片,用于执行存储器上所存放的程序时,实现上述任一所述的片上缓存共享方法。
35、本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被交换芯片执行时实现上述任一所述的片上缓存共享方法。
36、本技术实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的片上缓存共享方法。
37、本技术实施例有益效果:
38、本技术实施例提供的技术方案,由于在交换芯片上设置了多个队列管理单元来缓存报文描述符,当有大流量来临时,报文描述符分布存储至多个队列管理单元中,避免大量的报文描述符短时间涌入一个队列管理单元中,从而减少网络堵塞和数据丢失的发生。
39、另外,交换芯片上每一个队列管理单元连接有一个空闲缓存计算单元,相邻的空闲缓存计算单元之间相互连接,也就是组成了一个缓存共享网络。基于该缓存共享网络,队列管理单元中任一的第一队列管理单元,将自身的第一优先级扩散到与其连接的第一空闲缓存计算单元,同时,第一空闲缓存计算单元也会接收到与其相邻的第二空闲缓存计算单元发送的第二优先级,相应的,第一空闲缓存计算单元也会向第二空闲缓存计算单元发送自身的第二优先级,且第二空闲缓存计算单元的第二优先级等于所连接的第二队列管理单元的第一优先级,第一空闲缓存计算单元的第二优先级等于第一队列管理单元的第一优先级。也就是,基于该缓存共享网络,空闲缓存计算单元中任一的第一空闲缓存计算单元,都可以间接获知与其相邻的第二空闲缓存计算单元所连接的第二队列管理单元的第一优先级,而队列管理单元的第一优先级的大小与该队列管理单元的本地空闲缓存空间容量的大小成反比,也即,基于该缓存共享网络,空闲缓存计算单元中任一的第一空闲缓存计算单元,都可以间接获知与其连接的第一队列管理单元的本地空闲缓存空间容量,以及与其相邻的第二空闲缓存计算单元所连接的第二队列管理单元的本地空闲缓存空间容量。
40、进而,空闲缓存计算单元中任一的第一空闲缓存计算单元,基于与其相邻的第二空闲缓存计算单元的第二优先级中的最大值确定第三优先级,将与其连接的第一队列管理单元的第一优先级与该第三优先级进行比较,若第一优先级大于第三优先级,则表示与第二队列管理单元中包含的空闲缓存空间容量相比,第一队列管理单元中包含的本地空闲缓存空间的容量较小,则第一空闲缓存计算单元从第二空闲缓存计算单元中获取第一空闲指针,并提供给第一队列管理单元,使得第一队列管理单元在本地空闲缓存容量较小时,可以使用其他队列管理单元的空闲指针进行报文描述符的存储。反之,若第一优先级小于等于第三优先级,则表示与第二队列管理单元中包含的空闲缓存空间容量相比,第一队列管理单元中包含的本地空闲缓存空间的容量较大,则第一空闲缓存计算单元从第一队列管理单元中拉取本地空闲缓存空间的地址,进而向第二空闲缓存计算单元捐赠所获取的空闲指针,并提供给第二队列管理单元,使得空闲缓存容量较小的第二队列管理单元能够使用其他队列管理单元的空闲指针进行报文描述符的存储。从而实现队列管理单元之间缓存空间的共享,队列管理单元在大多数情况下具有足够的存储报文描述符的存储空间,从而能够在短时间内处理大量的报文描述符,进而降低网络堵塞和数据丢失的概率,提高了片上缓存的利用率和访问率。
41、当然,实施本技术的任一产品或方法并不一定需要同时达到以上所述的所有优点。