本发明实施例涉及流量管理,具体而言,涉及一种多端口读写的缓存管理方法及装置。
背景技术:
1、在网络处理器的流量管理过程中,由于流队列数众多、带宽需求大等原因,往往有多端口共享存储的需求。传统的做法是使用定制的多端口随机存取存储器(random accessmemory,ram)或者基于数据冗余备份的多端口ram,会存在需要网际互联协议(1nternetprotocol,ip)厂家定制、设计成本高、缓存空间浪费大等问题,此外,多路并发读到同一块ram时会产生冲突,需要做额外的数据冗余备份。
技术实现思路
1、本发明实施例提供了一种多端口读写的缓存管理方法及装置,以至少解决相关技术中多端口ram存在缓存利用率低的问题。
2、根据本发明的一个实施例,提供了一种多端口读写的缓存管理方法,包括:将芯片上多端口ram缓存划分为m×n的缓存单元阵列,其中,所述多端口ram缓存包括k个写端口和h个读端口,m、n、k和h均为大于1的整数,n大于k和h;在写操作时,通过所述k个写端口将k个数据一次写入所述缓存单元阵列的k个不同列,其中,每个写端口对应缓存单元阵列的一个不同列;在读操作时,通过所述h个读端口一次从所述缓存单元阵列读取共h×n个数据,其中,每个读端口一次从所述缓存单元阵列的每一行中读取一个数据。
3、根据本发明的另一个实施例,提供了一种多端口读写的缓存管理装置,包括:划分模块,用于将芯片上多端口ram缓存划分为m×n的缓存单元阵列,其中,所述多端口ram缓存包括k个写端口和h个读端口,m、n、k和h均为大于1的整数,n大于k和h;写入模块,用于在写操作时,通过所述k个写端口将k个数据一次写入所述缓存单元阵列的k个不同列,其中,每个写端口对应缓存单元阵列的一个不同列;读取模块,用于在读操作时,通过所述h个读端口一次从所述缓存单元阵列读取共h×n个数据,其中,每个读端口一次从所述缓存单元阵列的每一行中读取一个数据。
4、根据本发明的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
5、根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
6、通过本发明,由于将多端口ram划分成缓存单元阵列,在有少部分缓存单元损坏时不会影响整体的芯片性能,可提升芯片良率;而写操作时,按列将数据写入缓存单元,可提高缓存空间的均衡性。因此,可以解决相关技术中多端口ram存在缓存利用率低的问题,达到提高多端口ram缓存利用率的效果。
1.一种多端口读写的缓存管理方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,其中,所述读端口的数量h基于读端口侧所需的带宽加速比设置。
3.根据权利要求1所述的方法,其特征在于,通过所述k个写端口将k个数据一次写入所述缓存单元阵列的k个不同列,包括:
4.根据权利要求3所述的方法,其特征在于,通过所述k个写端口将k个数据一次写入所述缓存单元阵列的k个不同列,还包括:
5.根据权利要求3所述的方法,其特征在于,轮询调度所述缓存单元阵列,包括:
6.根据权利要求1所述的方法,其特征在于,通过所述h个读端口一次从所述缓存单元阵列读取共h×n个数据之前,还包括:
7.根据权利要求6所述的方法,其特征在于,在每个行缓存单元阵列中为各所述读端口调度出一个读地址,包括:
8.根据权利要求1所述的方法,其特征在于,通过所述h个读端口一次从所述缓存单元阵列读取共h×n个数据之后,还包括:
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
10.一种多端口读写的缓存管理装置,其特征在于,包括:
11.根据权利要求10所述的装置,其特征在于,还包括:
12.根据权利要求10所述的装置,其特征在于,还包括:
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被处理器执行时实现所述权利要求1至9任一项中所述的方法的步骤。
14.一种电子装置,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现所述权利要求1至9任一项中所述的方法的步骤。