[发明专利]一种基于索引的FPGA中DDR4包缓存的实现方法有效
申请号: | 201910530093.1 | 申请日: | 2019-06-19 |
公开(公告)号: | CN110232029B | 公开(公告)日: | 2021-06-29 |
发明(设计)人: | 杨庸 | 申请(专利权)人: | 成都博宇利华科技有限公司 |
主分类号: | G06F12/02 | 分类号: | G06F12/02;G06F12/0868 |
代理公司: | 成都虹盛汇泉专利代理有限公司 51268 | 代理人: | 刘冬静 |
地址: | 610094 四川省成都市高新区*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 索引 fpga ddr4 缓存 实现 方法 | ||
本发明公开了一种基于索引的FPGA中DDR4包缓存的实现方法,该方法包括数据转换及切片处理,将切片数据写入DDR4,数据包索引管理,从DDR4中读取数据包,数据包读指令次数控制,数据转换及切片重组。本发明通过对用户数据包进行切片处理,构建数据包索引并存放进FPGA的片内索引缓存中,实现对DDR4读写操作进行管理;并且根据DDR4返回的数据帧进行切片重组管理,从而得到完整的数据包,能够大大减小FPGA内部缓存资源消耗,提高数据包缓存效率。
技术领域
本发明属于数据包缓存技术领域,具体涉及一种基于索引的FPGA中DDR4包缓存的实现方法。
背景技术
数据包缓存是FPGA(Field-Programmable Gate Array)设计中的常见设计,而DDR也是电子系统中的常用器件。很多应用常常都需要在DDR中缓存大量的数据包。常见的设计方法是,将数据包的信息,包括长度,校验,各种随包传输的带外指示信号等,全部和数据包正文一起放进缓存,优点是实现方案相对简易,缺点是只能顺序读取缓存中的报文,而且因为数据包的长度信息用户事先未知,只能从缓存中和数据包一同获取,所以对于超短报文,由于DDR回读数据的等待时间很长,常常出现当用户获取到正确包长的时候,DDR的读操作其实已经远远超出正确的地址范围等问题。
DDR4器件的特性中,很重要的一点是,读操作时,ddr颗粒接受到读指令之后,在一个约定范围的不确定时间延迟之后,才能将该指令对应的读数据回给用户。
DDR4由于芯片颗粒的访问带宽很大,比如我们常见的DDR4-2400,其数据管脚的双沿速率为2400MHz,但是FPGA内部的电路不能运行这么快的速度,所以在FPGA内部的电路中,常常采用降低时钟频率、提升数据位宽来保持同样的操作带宽。由此,用户访问DDR4的数据位宽常常都远大于器件IO的数据位宽。
数据包往往长度不一,如果遇到很大的数据包,全部先缓存下来再整包存进DDR4并不合理,会带来FPGA内部缓存资源的大幅消耗。
发明内容
本发明的主要目的在于提供一种基于索引的FPGA中DDR4包缓存的实现方法,旨在解决既有方法存在的以上部分技术问题。
为实现上述目的,本发明提供一种基于索引的FPGA中DDR4包缓存的实现方法,包括以下步骤:
S1、输入用户数据包,将用户数据进行位宽转换、时钟域转换和切片处理,建立数据包切片索引,并将切片数据及索引缓存到FPGA片内FIFO;
S2、将切片数据写入DDR4,并建立数据包索引,将建立的数据包索引存放进FPGA的片内索引缓存;
S3、对数据包的索引缓存进行管理;
S4、当需要读取数据包时,在FPGA的片内索引缓存中获取数据包的索引;
S5、从DDR4中读取数据包,根据数据包长度对数据包的读指令次数进行控制;
S6、将DDR4返回的数据帧进行位宽转换、时钟域转换和切片重组处理,得到完整的数据包。
优选地,所述步骤S1中,建立的数据包切片索引具体包括:
是否切片长度,是否包头,是否包尾,冗余带外信息。
优选地,所述步骤S2中,将切片数据写入DDR4,还包括:
判断切片数据是否是包头;若是包头,则将包头在DDR4中的存储地址进行记录;
判断切片数据是否是包尾;若是包尾,则将数据包长度和校验信息进行记录。
优选地,所述步骤S2中,建立数据包索引具体为:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于成都博宇利华科技有限公司,未经成都博宇利华科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910530093.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种测试用例自动化运行方法及系统
- 下一篇:多芯片系统及缓存处理方法