[发明专利]一种基于FPGA的多虚拟队列数据存储的方法有效
申请号: | 200910083892.5 | 申请日: | 2009-05-11 |
公开(公告)号: | CN101599294A | 公开(公告)日: | 2009-12-09 |
发明(设计)人: | 曾宇;方信我;郑臣明;白宗元 | 申请(专利权)人: | 曙光信息产业(北京)有限公司 |
主分类号: | G11C7/00 | 分类号: | G11C7/00;G11C11/401;G11C16/06 |
代理公司: | 北京安博达知识产权代理有限公司 | 代理人: | 徐国文 |
地址: | 100084*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 fpga 虚拟 队列 数据 存储 方法 | ||
1.一种多虚拟队列数据存储的方法,基于网卡、FPGA,所述FPGA包括块 状存储器、MAC控制器模块、DMA控制器、PCIe接口,其特征在于:
所述FPGA中设有接收引擎模块、发送引擎模块、读写模块,接收引擎模块 通过读写模块与发送引擎模块连接,接收引擎模块实现对从主机发送过来的数据 包进行处理分类,发送引擎模块实现将用户发往主机的数据打包,按照相应的时 序发送给接口,读写模块实现数据的存储与提取;
所述接收引擎模块包括接收有限状态机模块、接收Posted包模块、接收 NonPosted包模块、接收Completion包模块;
所述发送引擎模块包括发送有限状态机模块、发送Completion包模块;
所述块状存储器内虚拟设有已编址的多个寄存器组,多个寄存器组包括发送 端寄存器组、接收端寄存器组、中断频率控制寄存器组,每个寄存器虚拟设有多 个队列;
所述的数据存储的方法步骤如下:
a、主机将数据包发送到PCIe接口,由PCIe接口传递到接收引擎模块,由接 收引擎模块进行处理,执行b操作;
b、接收到的数据包有三种:posted request、non-posted request、rx completion, 由发送有限状态机模块对三种数据包进行处理分类,发送有限状态机模块对 posted request执行c操作,发送有限状态机模块对non-posted request执行d操作,
c、posted request由接收Posted包模块通过读写模块分配给寄存器进行写操 作,执行c1操作,
c1、接收Posted包模块根据数据包中的地址判断是进行逻辑存储还是块状存 储器存储,如果是块状存储器存储,执行c2操作,
c2、接收Posted包模块根据数据包中的地址判断是对发送端寄存器还是接收 端寄存器操作,如果是接收端寄存器操作,执行c3操作,
c3、接收Posted包模块根据数据包中的地址判断确定对接收端寄存器的具体 块状存储器写操作,再根据地址判断具体要向该块状存储器的哪一个队列进行写 操作,执行c4操作;
c4、由读写模块将数据写入块状存储器的队列中,以实现数据的写操作,写 操作完毕;
d、non-posted request由接收NonPosted包模块通过读写模块分配给寄存器进 行读操作,执行d1操作,
d1、接收NonPosted包模块根据数据包中的地址判断是进行逻辑存储还是块 状存储器存储,如果是块状存储器存储,执行d2操作,
d2、接收NonPosted包模块根据数据包中的地址判断是对发送端寄存器还是 接收端寄存器操作,如果是接收端寄存器操作,执行d3操作,
d3、接收NonPosted包模块根据数据包中的地址判断确定对接收端寄存器的 具体块状存储器读操作,再根据数据包中的地址判断具体要向该块状存储器的哪 一个队列进行读操作,执行d4操作,
d4、由读写模块将数据从块状存储器的队列中读出,以实现数据的读操作, 读操作完毕,执行d5操作;
d5、读写模块将具体块状存储器的具体队列中读取到的数据通过发送 Completion包模块返回给主机。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于曙光信息产业(北京)有限公司,未经曙光信息产业(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910083892.5/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种用红柱石矿制备化学品氧化铝的方法
- 下一篇:一种纳米铜粉的制备方法