[发明专利]一种基于双端口RAM的数据包排序方法和系统有效
申请号: | 202010656298.7 | 申请日: | 2020-07-09 |
公开(公告)号: | CN111832048B | 公开(公告)日: | 2022-02-11 |
发明(设计)人: | 何骏;武元杰;余军;李鹏展;刘武忠;乔绍虎 | 申请(专利权)人: | 郑州信大捷安信息技术股份有限公司 |
主分类号: | G06F21/60 | 分类号: | G06F21/60;G06F21/72 |
代理公司: | 郑州德勤知识产权代理有限公司 41128 | 代理人: | 黄红梅 |
地址: | 450000 河南省*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 端口 ram 数据包 排序 方法 系统 | ||
本发明提出了一种基于双端口RAM的数据包排序方法和系统,所述系统包括输入状态机、双端口RAM、寄存器组以及输出状态机;所述双端口RAM分别与所述输入状态机和所述输出状态机进行数据通信连接,所述寄存器组分别与所述输入状态机和所述输出状态机进行数据通信连接,用以实现所述的基于双端口RAM的数据包排序方法。本发明通过输入状态机和寄存器组的配合,能够将乱序的数据包按序存储到双端口RAM,再通过输出状态机和寄存器组的配合,将数据包按序从双端口RAM读出,从而有效解决了算法模块的多个算法核并行运算后导致的输出数据包顺序乱序的问题。
技术领域
本发明涉及数据传输领域,尤其涉及一种基于双端口RAM的数据包排序方法和系统。
背景技术
FPGA对数据包进行加解密的计算,一般通过多个加解密运算核对输入数据包进行并行处理,然而由于各个数据包的长度大小不一样,从而导致各个加解密运算核处理相应数据包耗时不同,最终将可能导致运算后数据包出现乱序现象。当前,急需要提出一种排序方法,以解决多个加解密运算核并行运算导致运算后输出数据包顺序乱序的问题。
发明内容
为了解决上述问题,有必要提供一种基于双端口RAM的数据包排序方法和系统。
本发明第一方面提出一种基于双端口RAM的数据包排序方法,预设包括n个地址单元的双端口RAM,以及包括n个标志寄存器的寄存器组,其中,n个标志寄存器分别与n个地址单元一一对应,每个标志寄存器用于标识对应的地址单元是否有有效数据包,如果有有效数据包,则标志寄存器的值等于1,如果没有有效数据包,则标志寄存器的值等于0,n为正整数;
数据包读入阶段:
步骤11,由输入状态机接收数据包aj,获取所述数据包aj的序列号j,其中,1≤j≤n;
步骤12,所述输入状态机基于所述序列号j确定所述双端口RAM的地址单元j后,查看所述地址单元j对应的标志寄存器j的值fj是否等于0,如果是,则进入步骤13,如果否,则等待直到标志寄存器j的值fj等于0;
步骤13,所述输入状态机将所述数据包aj通过所述双端口RAM的端口A写入地址单元j中,待写入完成后,将标志寄存器j的值fj修改为1;
数据包读出阶段:
步骤21,输出状态机确定是否按地址单元从小到大的顺序轮询读取到所述双端口RAM的地址单元j,如果是,则进入步骤22,如果否,则等待直到轮询读取到双端口RAM的地址单元j;
步骤22,所述输出状态机查看地址单元j对应的标志寄存器j的值fj是否等于1,如果是,则进入步骤23,如果否,则等待直到所述标志寄存器j的值fj等于1;
步骤23,所述输出状态机通过所述双端口RAM的端口B从地址单元j中读取数据包aj,待读取数据包aj完毕后,将标志寄存器j的值fj修改为0。
基于上述,在所述步骤23之后,所述输出状态机返回步骤21继续轮询,直至所述输出状态机依序接收所有的数据包完成排序。
基于上述,所述数据包aj是经过算法模块处理后的数据包,所述算法模块包括多个算法核,多个算法核分别接收不同序列号的数据包,进行并行运算处理。
本发明第二方面提出一种基于双端口RAM的数据包排序方法,预设包括N个地址单元的双端口RAM,以及包括N个标志寄存器的寄存器组,其中,N个标志寄存器分别与N个地址单元一一对应,每个标志寄存器用于标识对应的地址单元是否有有效数据包,如果有有效数据包,则标志寄存器的值等于1,如果没有有效数据包,则标志寄存器的值等于0,N为正整数;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于郑州信大捷安信息技术股份有限公司,未经郑州信大捷安信息技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010656298.7/2.html,转载请声明来源钻瓜专利网。