缓存管理方法、装置、设备及可读存储介质与流程

文档序号:36090212发布日期:2023-11-18 08:38阅读:33来源:国知局
缓存管理方法、装置、设备及可读存储介质与流程

本发明是关于通信,特别是关于一种缓存管理方法、装置、设备及可读存储介质。


背景技术:

1、随着通信技术领域蓬勃发展,交换机技术在进来也实现了极大的飞跃,在交换机中,交换core和cpu之间的信息或者数据包,通常以dma方式进行交互。常见dma通常在描述符中记录数据存放的内存空间地址。交换core将收到的报文数据写入到dma rx描述符中绑定的数据存放地址,并更新dmarx描述符,cpu根据dmarx描述中绑定的数据存放地址获取报文数据,完成交换core的报文上送cpu。cpu将待发送的报文数据存放到dmatx描述符中绑定的数据存放地址,并更新dmatx描述符,交换core根据dma tx描述中绑定的数据存放地址获取报文数据,并将报文数据从网口发送出去,完成cpu的报文发送。以上描述的交换core和cpu之间信息或者数据包的交互过程中,都依赖与dma描述符中绑定的数据存放地址。

2、一般情况下,描述符中绑定的数据存放地址是通过cpu分配和维护的。在大带宽软转发场景要求下,这种软件管理buffer方式会导致消耗过多的cpu性能。同时,采用硬件接口传输所述bufferpointer,存在跨越接口数目多,调用时间长的问题。

3、因此,针对上述技术问题,有必要提供一种缓存管理方法、装置、设备及可读存储介质。

4、公开于该背景技术部分的信息仅仅旨在增加对本发明的总体背景的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域一般技术人员所公知的现有技术。


技术实现思路

1、本发明的目的在于提供一种缓存管理方法、装置、设备及可读存储介质,其能够基于buffer manger对所述bufferpointer实现硬件管理,避免在大带宽软转发场景要求下,消耗过多的cpu性能。

2、为实现上述目的,本发明提供的技术方案如下:

3、第一方面,本发明提供了一种缓存管理方法,其包括:

4、创建用于存放buffer pointer的buffer pointerpool,并基于bufferpointer的个数,从内存中分配空间块;

5、基于所述空间块的物理地址,为所述bufferpointer赋值;

6、创建页表索引表,并将所述bufferpointerpool中bufferpointer所指向的物理页的page number、page pabase地址以及page vabase地址存入所述页表索引表;

7、获取所述buffer pointer并将所述buffer pointer存入buffer manager的prefetch fifo中;

8、响应于dma接口和/或cpu接口的请求,获取所述bufferpointer。

9、在一个或多个实施方式中,所述方法还包括:

10、对所述prefetch fifo设置buffer pointer的empty threshold、full threshold以及stall threshold;

11、若所述prefetch fifo中bufferpointer个数小于等于所述empty threshold,所述buffermanager会从所述bufferpointerpool中获取所述bufferpointer存入prefetchfifo中;

12、若所述prefetch fifo中bufferpointer个数大于等于所述full threshold,所述buffermanager会将prefetch fifo中的bufferpointer写入到所述bufferpointer pool;

13、若所述prefetch fifo中bufferpointer个数大于等于所述stall threshold,所述buffermanager会阻止向bufferpointerpool中归还bufferpoiner。

14、在一个或多个实施方式中,所述方法还包括:

15、对存入prefetch fifo的所述bufferpointer,将其在页表索引表中的表项存入所述buffermanger的page index fifo。

16、在一个或多个实施方式中,所述方法还包括:

17、获取存放在所述page index fifo中的所述bufferpointer对应页表索引表的表项;

18、基于dma接口的vapatch,获取bufferpointer对应的虚拟地址。

19、在一个或多个实施方式中,所述基于dma接口的vapatch,获取buffer pointer对应的虚拟地址,包括:

20、输入所述bufferpointer对应的物理地址;

21、判断所述物理地址是否匹配所述页表索引表表项中的page number;

22、若是,则基于虚拟地址算法,获取bufferpointer对应的虚拟地址。

23、在一个或多个实施方式中,所述虚拟地址算法为:va=pa-pabase+va base;

24、其中,va为所述bufferpointer对应的虚拟地址,pabase为bufferpointer对应页表索引表表项中的page pabase地址,vabase为bufferpointer对应页表索引表表项中的page vabase地址。

25、第二方面,本发明提供了一种缓存管理装置,其包括:

26、创建模块,用于创建用于存放bufferpointer的bufferpointerpool,并基于bufferpointer的个数,从内存中分配空间块;

27、赋值模块,用于基于所述空间块的物理地址,为所述bufferpointer赋值;

28、表项模块,用于创建页表索引表,并将所述bufferpointer pool中bufferpointer所指向的物理页的page number、page pabase地址以及page vabase地址存入所述页表索引表;

29、转存模块,用于获取所述bufferpointer并将所述bufferpointer存入buffermanager的prefetch fifo中;

30、获取模块,用于响应于dma接口和/或cpu接口的请求,获取buffer pointer及所述bufferpointer对应的物理地址。

31、在一个或多个实施方式中,所述装置还包括:用于cpu获取和释放buffer pointer的基于cache的cpu接口以及用于dma获取和释放bufferpointer的基于vapatch的dma接口。

32、第三方面,本发明提供了一种计算机设备,其包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行所述的缓存管理方法。

33、第四方面,本发明提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使计算机执行所述的缓存管理方法。

34、与现有技术相比,本发明提供的缓存管理方法、装置、设备及可读存储介质,创建用于存放bufferpointer的bufferpointerpool,并基于bufferpointer的个数,分配空间块;基于所述空间块的物理地址,为所述bufferpointer赋值;创建页表索引表,并将所述bufferpointerpool中的bufferpointer表项存入所述页表索引表;创建prefetch fifo,获取所述bufferpointer并将所述buffer pointer存入所述prefetch fifo。该缓存管理方法具有以下优点:

35、(1)基于硬件管理buffer并进行一定的性能优化,保证在软转发场景下,交换core或cpu能够高效的获取和释放buffer资源。

36、(2)在软转发场景下,减少cpu在buffer管理过程中的参与,提升软转发性能,避免在大带宽软转发场景要求下,消耗过多的cpu性能。

37、(3)提前缓存bufferpointer,调用时用时更少,响应更迅速。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1