[發明專利]一種基于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操作;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于曙光信息產業(北京)有限公司,未經曙光信息產業(北京)有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200910083892.5/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種用紅柱石礦制備化學品氧化鋁的方法
- 下一篇:一種納米銅粉的制備方法





