一种数据包二级缓存方法、系统及应用技术方案

技术编号:29044766 阅读:16 留言:0更新日期:2021-06-26 05:57
本发明专利技术属于数据交换技术领域,公开了一种数据包二级缓存方法、系统及应用,所述二级缓存方法利用片外的DDR,同时在缓存管理上提出了二级缓存分配的方式对片外DDR的缓存空间进行管理;二级缓存适用的场景为多路物理层传输通道(以下简称PHY)分别对队列管理提出组播出队请求,某个PHY准备好了直接将队列管理中的组播帧转发到PHY中,片内按照PHY存多份组播帧。本发明专利技术为了解决组播帧需要在队列管理模块中重复存储所造成的资源浪费问题,创建了组播掩码表,组播的数据在片外DDR只需要存储一份即可,大大减少了存储数据帧的开销。本发明专利技术涉及支持组播的二级缓存装置及方法;适用于通信网络中网络节点基于QOS机制的缓存管理模块。网络中网络节点基于QOS机制的缓存管理模块。网络中网络节点基于QOS机制的缓存管理模块。

【技术实现步骤摘要】
一种数据包二级缓存方法、系统及应用


[0001]本专利技术属于数据交换
,尤其涉及一种数据包二级缓存方法、系统及应用。

技术介绍

[0002]目前:随着5G时代的来临,网络对于速率的要求变得越来越高。5G与4G相比,要求“更高的网速、更低的延时”,它的传输速率远远高于以前的蜂窝网络,最高可达10Gbit/s,比先前的4G LTE蜂窝网络快100倍。这对于交换机内部的处理速率提出了更高的要求,与此同时,交换机内部的存储容量也遇到了新的挑战。
[0003]在申请公开号为CN 102377682 A,名称为“基于定长单元存储变长分组的队列管理方法及设备”的专利申请,公开了一种基于BD的缓存分配方式装置及方法。基于BD(Buffer Description)的缓存分配方式可以有效的弥补传统的静态缓存分配策略和动态缓存分配策略的缺陷。它的特点是将队列的存储空间划分成等大小的基本缓存单元,并为每个单元设置一个缓存描述符(BD)。将这些描述符存在缓存描述符存储表中形成链表。该装置的实施步骤为:第一,将分组交换系统中用于存储分组的队列存储空间划分为4096个64Byte的基本缓存单元Buffer;第二,为每个缓存描述符Buffer设置一个缓存描述符BD,二者构成一一对应的关系;第三,分别配置缓存描述符存储表BD RAM、空闲队列信息表和输出队列信息表;第四,在分组入队时,执行分组入队处理的相关操作;第五,在分组出队时,执行分组出队处理的相关操作;第六,按照分组逻辑入队地址,将分组分片存储到队列存储空间中,按照分组逻辑出队地址,将分组分片从队列存储空间中搬出。通过对上述专利技术的研究,可以知道该专利技术的优点是采用了链式存储结构,使其保证了在存储时浪费的存储空间较少。
[0004]但是该专利技术的缺点是随着传输速率的提升,包括要考虑突发数据的影响,片内的缓存已经不够,迫切需要更大的缓存容量。并且当交换机处理组播流的时候,如果对发往不同通道的组播流按照目的端口号分别进行存储,需要较大的缓存空间,从而造成缓存浪费。
[0005]通过上述分析,现有技术存在的问题及缺陷为:现有技术存在片内的缓存已经不够,迫切需要更大的缓存容量;对发往不同通道的组播流按照目的端口号分别进行存储,需要较大的缓存空间,造成缓存浪费。
[0006]解决以上问题及缺陷的难度为:片内缓存空间不足,因此必须用到片外存储器。但是使用片外DDR进行数据存储转发会使数据分组的处理时延变长,所以必须使用片内缓存区进行数据缓冲。并且在组播帧转发的时候,保存在片外数据只对应一块物理地址,因此需要创建指示片外DDR中数据转发通道的掩码表。
[0007]解决以上问题及缺陷的意义为:基于片内缓存和片外SDRAM相结合的方式,采用写多通道的组播掩码表的方式来解决不同组播流共用缓存区的问题。写入片内fifo的组播数据每个组播成员都需要保存一份,但写入片外DDR的数据只需要一份即可,可以节省开销。

技术实现思路

[0008]针对现有技术存在的问题,本专利技术提供了一种数据包二级缓存方法、系统及应用。
[0009]本专利技术是这样实现的,一种二级缓存方法,所述二级缓存方法利用片外的DDR,同时在缓存管理上提出了二级缓存分配的方式对片外DDR的缓存空间进行管理;二级缓存适用的场景为多路PHY分别对队列管理提出组播出队请求,某个PHY准备好了直接将队列管理中的组播帧转发到PHY中,片内按照PHY存多份组播帧。
[0010]进一步,所述二级缓存方法具体包括:
[0011]第一步:假设组播有M个通道,组播流有三个优先级,把广播业务看成是特殊的组播业务。则片内缓存区需要M个BlockRAM,每一个BlockRAM要对发送到一个通道数据进行缓存;对每一个BlockRAM添加控制信号构成6个同步FIFO;每个BlockRAM划分成的6个fifo分别存储三个优先级的组播帧和三个优先级的广播帧;片外部分,将片外DDR作为扩充的数据存储区域;组播帧入队时根据优先级进入片内对应的缓存区,若片内缓存区已经完全被占用,则申请二级缓存,通过计算获得缓存描述符组BDG的编号,将数据存入其映射的片外DDR的物理地址;
[0012]第二步:由入队控制装置提取数据帧入队信息,将入队的操作指令信息存入fifo中,供接收总线模块使用;根据入队的数据帧的组播信息,修改组播掩码表,更新组播存储的队首、队尾、队列长度、节点长度以及片内fifo写数据计数信息;
[0013]第三步:由接收总线模块将定长帧搬移至片内fifo或者片外DDR的缓存区,并更新组播物理长度信息;
[0014]第四步:由出队控制装置读取出队请求,根据请求中的信息,获得要出队的定长帧的存储地址,更新物理队列长度,更新缓存区域可用空间,更新缓存管理模块维护的BDG链表;将出队帧信息写入调度结果FIFO中,更新组播掩码表,更新组播存储的队首、队尾、队列长度、节点长度信息,更新组播物理长度信息,并更新片内组播fifo的存储数据计数值;
[0015]第五步:由发送总线模块根据调度信息从缓存区中搬移出定长帧。
[0016]进一步,所述第一步将片内存储组播帧的BlockRAM转化成fifo以及二级缓存BDG与片外DDR的物理地址映射流程包括:
[0017]步骤一:假设组播数据流分为三个优先级,把广播帧当做特殊的组播队列,则每一条组播、广播流按照优先级和类别可以划分为6个缓存区。因此将BlockRAM划分成为6块,添加控制信号使之成为6个片内缓存fifo,每块fifo的存储区域容量为6个BD大小;假设帧长为LEN,数据总线位宽为W比特,则每块fifo的存储深度为6*LEN/W;每块fifo的存储区域由它们划分的基地址和偏移地址所决定;组播低优先级为{000},中优先级为{001},高优先级为{010}。广播低优先级为{011},中优先级为{100},高优先级为{101},则基地址addr_base=优先级*6*LEN/W,偏移地址为对应优先级fifo中已存数据的深度(depth<=6*LEN/W);
[0018]步骤二:将片外DDR的缓存区按照二级缓存分配的BDG进行映射,缓存管理总共管理M个BGD的分配,一个BDG中有N个BD,一个BD中能存下一个定长帧,帧长为LEN个字节;则片外DDR所用到的总存储空间为M*N*LEN字节,每个BD所映射的实际物理地址由其BDG的基地址和BD偏移地址所决定。
[0019]进一步,所述第二步入队控制流程包括:
[0020]步骤一:提取数据帧的信息,包含数据帧所需要的缓存BD数和需要转发的转发通
道PHY ID列表、优先级;
[0021]步骤二:根据PHY ID列表,查找每个相应的组播转发的队列长度信息,根据门限,判断是全部入队、部分入队还是全部入队失败;如果所有组播转发队列判断结果均为入队失败,则跳转到步骤七;否则返回满足条件的队列个数,并执行步骤三;
[0022]步骤三:如果组播通道的片内缓存足够,首先将数据存至片本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种二级缓存方法,其特征在于,所述二级缓存方法利用片外的DDR,同时在缓存管理上提出了二级缓存分配的方式对片外DDR的缓存空间进行管理;二级缓存适用的场景为多路PHY分别对队列管理提出组播出队请求,某个PHY准备好了直接将队列管理中的组播帧转发到PHY中,片内按照PHY存多份组播帧。2.如权利要求1所述的二级缓存方法,其特征在于,所述二级缓存方法具体包括:第一步:假设组播有M个通道,组播流有三个优先级,把广播业务看成是特殊的组播业务;则片内缓存区需要M个BlockRAM,每一个BlockRAM要对发送到一个通道数据进行缓存;对每一个BlockRAM添加控制信号构成6个同步FIFO;每个BlockRAM划分成的6个fifo分别存储三个优先级的组播帧和三个优先级的广播帧;片外部分,将片外DDR作为扩充的数据存储区域;组播帧入队时根据优先级进入片内对应的缓存区,若片内缓存区已经完全被占用,则申请二级缓存,通过计算获得缓存描述符组BDG的编号,将数据存入其映射的片外DDR的物理地址;第二步:由入队控制装置提取数据帧入队信息,将入队的操作指令信息存入fifo中,供接收总线模块使用;根据入队的数据帧的组播信息,修改组播掩码表,更新组播存储的队首、队尾、队列长度、节点长度以及片内fifo写数据计数信息;第三步:由接收总线模块将定长帧搬移至片内fifo或者片外DDR的缓存区,并更新组播物理长度信息;第四步:由出队控制装置读取出队请求,根据请求中的信息,获得要出队的定长帧的存储地址,更新物理队列长度,更新缓存区域可用空间,更新缓存管理模块维护的BDG链表;将出队帧信息写入调度结果FIFO中,更新组播掩码表,更新组播存储的队首、队尾、队列长度、节点长度信息,更新组播物理长度信息,并更新片内组播fifo的存储数据计数值;第五步:由发送总线模块根据调度信息从缓存区中搬移出定长帧。3.如权利要求2所述的二级缓存方法,其特征在于,所述第一步将片内存储组播帧的BlockRAM转化成fifo以及二级缓存BDG与片外DDR的物理地址映射流程包括:步骤一:假设组播数据流分为三个优先级,把广播帧当做特殊的组播队列,则每一条组播、广播流按照优先级和类别可以划分为6个缓存区;因此将BlockRAM划分成为6块,添加控制信号使之成为6个片内缓存fifo,每块fifo的存储区域容量为6个BD大小;假设帧长为LEN,数据总线位宽为W比特,则每块fifo的存储深度为6*LEN/W;每块fifo的存储区域由它们划分的基地址和偏移地址所决定;组播低优先级为{000},中优先级为{001},高优先级为{010};广播低优先级为{011},中优先级为{100},高优先级为{101},则基地址addr_base=优先级*6*LEN/W,偏移地址为对应优先级fifo中已存数据的深度(depth<=6*LEN/W);步骤二:将片外DDR的缓存区按照二级缓存分配的BDG进行映射,缓存管理总共管理M个BGD的分配,一个BDG中有N个BD,一个BD中能存下一个定长帧,帧长为LEN个字节;则片外DDR所用到的总存储空间为M*N*LEN字节,每个BD所映射的实际物理地址由其BDG的基地址和BD偏移地址所决定。4.如权利要求2所述的二级缓存方法,其特征在于,所述第二步入队控制流程包括:步骤一:提取数据帧的信息,包含数据帧所需要的缓存BD数和需要转发的转发通道PHYID列表、优先级;步骤二:根据PHYID列表,查找每个相应的组播转发的队列长度信息,根据门限,判断是
全部入队、部分入队还是全部入队失败;如果所有组播转发队列判断结果均为入队失败,则跳转到步骤七;否则返回满足条件的队列个数,并执行步骤三;步骤三:如果组播通道的片内缓存足够,首先将数据存至片内;若片内仅剩部分存储空间,不能满足一次入队申请所需的空间,则先将片内存储空间使用完毕再跳转至步骤四;若片内空间已经使用完毕,则直接跳转至步骤四;步骤四:从一级缓存分配中取出n个BD,n为该组播帧入队所需要的的BD数,如果某个一级缓存中不够n个BD,则该队列入队失败;若取出n个BD后,剩余BD个数小于7则提前向二级缓存分配申请1个BDG;如果申请BDG超过门限,返回申请失败;申请成功则更新LinkListRAM,该RAM维护了BDG的链表结构;步骤五:将入队成功的一个或多个组播队列的掩码表BDMaskBits和下一跳地址更新;写PHYIDRAM列表,表示能够直接写入片内组播缓存区的通道id,写PHYIDDDR列表,表示需要写入片外DDR的通道id,将对组播数据进行操作的指令信息写入fifo中;步骤六:将一个或多个组播转发的队尾、队列长度、节点长度、片内fifo深度等信息更新;步骤七:入队失败,返回步骤一。5.如权利要求2所述的二级缓存方法,其特征在于,所述第三步数据帧写入缓存流程包括:步骤一:读取对于组播数据进行操作的指令信息,包含PHYID列表、写入片内或片外DDR的方式、写入片外缓存区的逻辑地址,即BDG和BD;步骤二:PHYIDRAM列表为1的代表数据将从该PHY进行转发,故需要将数据搬移至该PHY对应的片内缓存区,故当M路通道在PHYIDRAM列表置1时,则将数据复制M份,分别搬移到各路组播的片内缓存区中;PHYIDDDR列表中为1代表需要将数据写入到片外DDR对应的缓存区中,当N路通道在PHYID DDR中为1...

【专利技术属性】
技术研发人员:潘伟涛陈凯邱智亮高志凯韩冰熊子豪
申请(专利权)人:西安电子科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1