[发明专利]一种基于FPGA的多虚拟队列数据存储的方法有效

专利信息
申请号: 200910083892.5 申请日: 2009-05-11
公开(公告)号: CN101599294A 公开(公告)日: 2009-12-09
发明(设计)人: 曾宇;方信我;郑臣明;白宗元 申请(专利权)人: 曙光信息产业(北京)有限公司
主分类号: G11C7/00 分类号: G11C7/00;G11C11/401;G11C16/06
代理公司: 北京安博达知识产权代理有限公司 代理人: 徐国文
地址: 100084*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 基于 fpga 虚拟 队列 数据 存储 方法
【说明书】:

技术领域

发明设计基于FPGA中实现高速网卡数据读写技术,特别是涉及一种多虚拟队列的数 据存储方法。

背景技术

虚拟化技术是当前市场的一个热点,采用虚拟化技术可以节省了高达70%的硬件成本。 因为虚拟化技术可以帮助用户合并多种应用工作负荷,在单个系统上运行多种操作环境; 优化应用开发,在单一系统上进行测试和开发;提高系统可用性,在系统之间迁移虚拟环 境。当前设计主要是通过逻辑存储和外部存储,外部存储主要是采用DDR2_SDRAM、FLASH 等存储。

逻辑存储的情况下:在FPGA中实现高速虚拟网卡设计就是采用的虚拟化技术,在虚拟 网卡设计过程中需要用到大量的队列,如2048个,每个队列中又存在大量的32-bit的寄 存器,图1是虚拟网卡芯片按照2048、512、128和64队列设计的资源需求表。为节约设 计成本,FPGA采用Xilinx的XC5VLX50T芯片,该芯片的Slices大小为7200Clbs,经过 计算总共是28Kb的FF。如果按照要求设计2048个虚拟队列,某些寄存器与队列一一对应 的,需要2048个32-bit的寄存器,所占用的总资源大小为1047.6Kb,见图1所示;逻辑 存储适用于占用资源量不多的情况,很显然,这些寄存器若完全使用逻辑单元进行存储, 将会占用全部的逻辑资源,最终会使设计无法实现。

在外部存储的情况下:如果采用DDR2_SDRAM对大量数据进行存储,时钟333MHz,对 DDR2存储器进行写操作,命令字为0,地址维持两个周期有效,写使能维持一个周期有效, 数据在两个周期内给出(每个周期128bits),这样实现了burst length=4的操作,4x 64bit=2x128bit。地址是按照4的倍数给出,也就是说每个64bit一个地址,一次写 操作要使用4个地址。读取命令字为1,地址维持1个周期有效,读使能维持一个周期有 效,地址也是4的倍数,在读数据有效时,数据出现在读数据输出端口上,每128bit维 持1个周期;但是从发出读取命令字到读出数据则需要8个周期,并且DDR2 SDRAM控制 器比较复杂,数据存储周期长、数据存储速度慢且不灵活。

因此,需要设计一种能够提供数据存储速度快、控制便捷灵活、可用于大量数据的存 储的存储机制,以解决上述现有技术的缺陷。

发明内容

为了解决上述逻辑资源不足、存储速度慢、存储周期长等问题,本设计采用一种巧妙 的设计方法对所有大量的(如2048个)队列中的寄存器使用FPGA中的块RAM进行存储和处 理,实现对同一队列的相关寄存器进行同时读写。

为了实现上述目的,本发明提供了一种基于FPGA的多虚拟队列数据存储的方法,包括 网卡、FPGA,所述FPGA包括块状存储器(块ram)、MAC控制器模块、DMA控制器、PCIe 控制器模块,其特殊之处在于:

所述FPGA中设有接收引擎模块(Rx engine)、发送引擎模块(Tx engine)、读写模块 (Reg_Rd_Wr),接收引擎模块(Rx engine)通过读写模块(Reg_Rd_Wr)与发送引擎模块 (Tx engine)连接,接收引擎模块(Rx engine)实现从主机发送过来的数据包进行处理 分类,发送引擎模块(Tx engine)实现将用户发往主机的数据打包,按照相应的时序发 送给核接口,读写模块(Reg_Rd_Wr)实现数据的存储与提取;

所述接收引擎模块(Rx engine)包括接收有限状态机模块(Rx FSM)、接收Posted 包模块(Rx posted)、接收NonPosted包模块(Rx Nonposted)、接收Completion包模块 (Rx Completion);

所述发送引擎模块(Tx engine)包括发送有限状态机模块(Tx FSM)、发送Completion 包模块(Tx Completion);

所述块状存储器(块ram)内虚拟设有已编址的多个寄存器组,多个寄存器组包括发 送端寄存器组(TX reg),接收端寄存器组(RX reg),中断频率控制寄存器组,每个寄存 器虚拟设有多个队列;

一种基于FPGA的多虚拟队列数据存储的方法步骤如下:

a、主机将数据包发送到PCIe模块,由PCIe模块传递到接收引擎模块(Rx engine), 由接收引擎模块(Rx engine)进行处理,执行b操作;

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于曙光信息产业(北京)有限公司,未经曙光信息产业(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/200910083892.5/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top