[发明专利]一种任意字节长度拼接缓存的实现方法和系统有效
申请号: | 202011024544.3 | 申请日: | 2020-09-25 |
公开(公告)号: | CN112153054B | 公开(公告)日: | 2023-04-07 |
发明(设计)人: | 王培培;陈乃阔;吴之光;张明瑞;牛晓威 | 申请(专利权)人: | 超越科技股份有限公司 |
主分类号: | H04L67/568 | 分类号: | H04L67/568;H04L67/01;H04L69/06 |
代理公司: | 北京连和连知识产权代理有限公司 11278 | 代理人: | 刘小峰;杨帆 |
地址: | 250104 山东省*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 任意 字节 长度 拼接 缓存 实现 方法 系统 | ||
一种任意字节长度拼接缓存的实现方法,包括:根据拼接缓存中的读指针和写指针判断拼接缓存的状态;响应于拼接缓存的状态为可写,提取输入数据中的有效数据,并将该有效数据存入拼接缓存;响应于拼接缓存的状态为可读,将拼接缓存中的数据读出并输出。本发明还公开了一种任意字节长度拼接缓存的实现系统。本发明所公开的任意字节长度拼接缓存的实现方法和系统,有效解决了因传输协议位宽转换以及数据较小时导致的无效数据占位影响数据处理性能的问题。
技术领域
本专利涉及FPGA的高速接口解析技术领域,具体是一种任意字段长度拼接缓存的实现方法和系统。
背景技术
随着信息产业的飞速发展,在各个领域诞生了许多高速接口协议,如以太网协议,证券交易协议,雷达数据传输协议等等。这些协议目前软件处理起来较为缓慢,而用硬件处理速度会有大幅提升,其中FPGA因其灵活性,在这些领域中有着广泛的应用。但这些协议在设计之初,并没有考虑到用硬件进行解析,其设计的很多字段并不是64bit或者32bit对齐的,例如万兆网络的总线位宽可以设置为64bit或32bit;40G网络的总线位宽可以配置成128bit或者256bit;PCIe Gen3 x8接口的总线位宽和单lane的速率相关,如果单lane速率为2.5GT/s,总线位宽为128bit,如果单lane速率为8GT/s,总线位宽为256bit。因输入和输出位宽的不同,在实际数据传输中,有大量因数据量较小,无法有效利用完整的数据位宽,存在高位补零等占位传输的数据。大量的无效占位数据对于使用CPU处理数据的“软解析”应用程序来讲,对性能的消耗是巨大的,而当这些应用程序的使用场景大都为数据中心服务器时,因此对整个服务器集群来说将面临巨大的性能压力。
因此,亟需一种可以快速处理无效数据使之拼接成连续有效数据的方法和装置,可适配与各种常见不同数据位宽的输入输出协议的数据拼接。大大降低因软件解析所占用的CPU性能压力。提高系统整体性能。
发明内容
基于以上目的,本发明提出了一种任意字节长度拼接缓存的实现方法,包括以下步骤:
根据读指针和写指针判断拼接缓存的状态;
响应于拼接缓存的状态为可写,提取输入数据中的有效数据,并将该有效数据存入拼接缓存;
响应于拼接缓存的状态为可读,将拼接缓存中的数据读出并输出。
在一些实施方式中,所述拼接缓存最小不低于第一预定长度,且最大不超过第二预定长度。
在一些实施方式中,方法还包括:
每向拼接缓存写入1字节数据,写指针加1;
每从拼接缓存读取1字节数据,读指针加1;
响应于写指针加1,记录拼接缓存已存入数据个数的寄存器加1;
响应于读指针加1,记录拼接缓存已存入数据个数的寄存器减1。
在一些实施方式中,所述判断拼接缓存的状态还包括:
响应于所述寄存器的值小于第二预定长度,拼接缓存状态为可读可写;
响应于所述寄存器的值为0,则拼接缓存状态仅为可写;
响应于所述寄存器的值等于第二预定长度,则拼接缓存状态仅为可读。
在一些实施方式中,所述提取输入数据的有效数据并存入拼接缓存包括:根据输入数据的掩码,将输入数据与掩码对应位置的数据存入拼接缓存。
在一些实施方式中,还包括:每向拼接缓存中每存入1字节数据,将写指针的值加1。
在一些实施方式中,所述将拼接缓存中的数据读出并输出包括:
将拼接缓存中的数据以字节为单位读出;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于超越科技股份有限公司,未经超越科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011024544.3/2.html,转载请声明来源钻瓜专利网。