The invention discloses a pointer recovery method and device based on FPGA, which includes: updating the number of visits to the first cache address corresponding to the extracted message cache pointer after obtaining the extracted message cache pointer; and updating the number of visits to the second cache address corresponding to the extracted message cache pointer after obtaining the extracted message cache pointer; Whether the number of visits to the second cache address is the same as the number of visits already made, and if it is determined that the number of visits to the second cache address is the same as the number of visits already made, the pointer corresponding to the second cache address is recovered. This scheme can update the cache resources in time and avoid wasting the cache resources.
【技术实现步骤摘要】
基于FPGA的指针回收方法及装置
本专利技术涉及通信
,尤指一种基于现场可编程门阵列(Field-ProgrammableGateArray,FPGA)的指针回收方法及装置。
技术介绍
交换机和路由器等网络设备对报文进行转发可以分为单播报文转发和多播报文的转发,下面分别介绍这两种情况。第一种针对单播报文的转发,如图1所示,报文packet0从端口port0进入,在入口处将报文存储在缓存内,会生成携带报文缓存指针的钥匙(KEY),同时解析报文头部提取查表信息,根据查表信息和KEY中携带的报文缓存指针进入查表引擎获取到查表结果后,根据KEY中携带的报文缓存指针从缓存内提取报文,并转发至相应出口,也就是端口3。第二种针对多播报文的转发,多播报文可以是组播报文和广播报文,如图2所示,报文packet1从端口0进入,在入口处将报文存储在缓存内,会生成携带报文缓存指针的钥匙(KEY),同时解析报文头部提取查表信息,根据查表信息和KEY中携带的报文存储指针进入查表引擎获取到查表结果后,假设获得的查表结果是需要将该packet1转发至端口1、2、3,这就需要将KEY复制三份存储至缓存,然后再根据KEY携带的报文缓存指针依次从缓存内提取报文,并转发至相应出口,也就是至端口1、2、3。如图3所示为上述过程中提到的缓存的结构示意图,主要由指针管理模块和缓存区构成,指针管理模块包括指针分配模块和指针回收模块。其中,指针分配模块存储着缓存区内可用的每个缓存单元的地址,当某个报文进入网络设备后,需要先向指针分配模块申请指针,然后将报文存储至申请到的指针对应的缓存单元内。指针回收 ...
【技术保护点】
1.一种基于现场可编程门阵列FPGA的指针回收方法,所述FPGA作为网络设备的缓存,其特征在于,所述方法包括:获取待提取报文缓存指针后,更新所述待提取报文缓存指针对应的第一缓存地址的待访问次数;以及,获取已提取报文缓存指针后,更新所述已提取报文缓存指针对应的第二缓存地址的已访问次数;确定所述第二缓存地址的待访问次数与已访问次数是否相同;若确定所述第二缓存地址的待访问次数与已访问次数相同,则回收所述第二缓存地址对应的指针。
【技术特征摘要】
1.一种基于现场可编程门阵列FPGA的指针回收方法,所述FPGA作为网络设备的缓存,其特征在于,所述方法包括:获取待提取报文缓存指针后,更新所述待提取报文缓存指针对应的第一缓存地址的待访问次数;以及,获取已提取报文缓存指针后,更新所述已提取报文缓存指针对应的第二缓存地址的已访问次数;确定所述第二缓存地址的待访问次数与已访问次数是否相同;若确定所述第二缓存地址的待访问次数与已访问次数相同,则回收所述第二缓存地址对应的指针。2.如权利要求1所述的方法,其特征在于,更新所述待提取报文缓存指针对应的第一缓存地址的待访问次数,具体包括:从所述缓存包括的第一存储器中读取所述待提取报文缓存指针对应的第一缓存地址的第一数据,所述第一存储器与所述缓存的缓存地址相同;将所述第一数据增加第一设定数值后,得到所述待访问次数;将所述待访问次数写入所述第一存储器中的所述第一缓存地址中和所述缓存包括的第二存储器中的所述第一缓存地址中,所述第二存储器与所述缓存的缓存地址相同。3.如权利要求2所述的方法,其特征在于,将所述第一数据增加第一设定数值后,得到所述待访问次数,具体包括:确定在设定时长之前是否执行过所述从所述缓存包括的第一存储器中读取所述待提取报文缓存指针对应的第一缓存地址的第一数据的步骤;若确定在所述设定时长之前执行过所述从所述缓存包括的第一存储器中读取所述待提取报文缓存指针对应的第一缓存地址的第一数据的步骤,则将所述第一数据增加2;若确定在所述设定时长之前未执行过所述从所述缓存包括的第一存储器中读取所述待提取报文缓存指针对应的第一缓存地址的第一数据的步骤,则将所述第一数据增加1。4.如权利要求2所述的方法,其特征在于,更新所述已提取报文缓存指针对应的第二缓存地址的已访问次数,具体包括:从所述缓存包括的第三存储器中读取所述已提取报文缓存指针对应的第二缓存地址的第二数据,所述第三存储器与所述缓存的缓存地址相同;将所述第二数据增加第二设定数值后,得到所述已访问次数;将所述已访问次数写入所述第三存储器的所述第二缓存地址中。5.如权利要求4所述的方法,其特征在于,将所述第二数据增加第二设定数值后,得到所述已访问次数,具体包括:确定在设定时长之前是否执行过所述从所述缓存包括的第三存储器中读取所述已提取报文缓存指针对应的第二缓存地址的第二数据的步骤;若确定在所述设定时长之前执行过所述从所述缓存包括的第三存储器中读取所述已提取报文缓存指针对应的第二缓存地址的第二数据的步骤,则将所述第二数据增加2;若确定在所述设定时长之前未执行过所述从所述缓存包括的第三存储器中读取所述已提取报文缓存指针对应的第二缓存地址的第二数据的步骤,则将所述第二数据增加1。6.如权利要求4所述的方法,其特征在于,确定所述第二缓存地址的待访问次数与已访问次数是否相同,具体包括:读取所述第二存储器的所述第二缓存地址的第三数据;确定所述第三数据与所述已访问次数是否相同;若确定所述第三数据与所述已访问次数相同,则确定所述第二缓存地址的待访问次数与已访问次数相同;若确定所述第三数据与所述已访问次数不同,则确定所述第二缓存地址的待访问次数与已访问次数不同。7.一种基于FPGA的...
【专利技术属性】
技术研发人员:王珊,
申请(专利权)人:锐捷网络股份有限公司,
类型:发明
国别省市:福建,35
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。