• 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>

    一種基于FPGA的多虛擬隊列數據存儲的方法技術

    技術編號:3847413 閱讀:200 留言:0更新日期:2012-04-11 18:40
    一種基于FPGA的多虛擬隊列數據存儲的方法,本發明專利技術設計基于FPGA中實現高速網卡數據讀寫技術,特別是涉及一種多虛擬隊列的數據存儲方法,本設計采用接收引擎模塊、讀寫模塊、塊狀存儲器的多個寄存器組,每個寄存器組都屬于其中的一個隊列、塊狀存儲器設有讀寫模式狀態轉換模塊、塊狀存儲器和讀寫模式狀態轉換模塊均支持三種操作模式,對所有大量的(如2048個)隊列中的寄存器使用FPGA中的塊RAM進行存儲和處理,實現對同一隊列的相關寄存器進行同時讀寫。解決了現有技術中邏輯存儲和外部存儲的邏輯資源不足、存儲速度慢、存儲周期長等問題。

    【技術實現步驟摘要】

    本專利技術設計基于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存儲器進行寫操作,命令字為O,地址維持兩個周期有效,寫使能維持一個周期有效, 數據在兩個周期內給出(每個周期128bits),這樣實現了 burst length = 4的操作,4x 64bit = 2 x 128bit。地址是按照4的倍數給出,也就是說每個64bit—個地址, 一次寫 操作要使用4個地址。讀取命令字為l,地址維持l個周期有效,讀使能維持一個周期有 效,地址也是4的倍數,在讀數據有效時,數據出現在讀數據輸出端口上,每128bit維 持l個周期;但是從發出讀取命令字到讀出數據則需要8個周期,并且DDR2—SDRAM控制器比較復雜,數據存儲周期長、數據存儲速度慢且不靈活。因此,需要設計一種能夠提供數據存儲速度快、控制便捷靈活、可用于大量數據的存 儲的存儲機制,以解決上述現有技術的缺陷。
    技術實現思路
    為了解決上述邏輯資源不足、存儲速度慢、存儲周期長等問題,本設計采用一種巧妙 的設計方法對所有大量的(如2048個)隊列中的寄存器使用FPGA中的塊RAM進行存儲和處 理,實現對同一隊列的相關寄存器進行同時讀寫。為了實現上述目的,本專利技術提供了一種基于FPGA的多虛擬隊列數據存儲的方法,包括 網卡、FPGA,所述FPGA包括塊狀存儲器(塊ram)、 MAC控制器模塊、DMA控制器、PCIe 控制器模塊,其特殊之處在于所述FPGA中設有接收引擎模塊(Rxengine)、發送引擎模塊(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 No叩osted)、接收Completion包模塊 (Rx Completion);所述發送引擎模塊(Tx engine)包括發送有限狀態機模塊(TxFSM)、發送Completion 包模塊(Tx Completion);所述塊狀存儲器(塊ram)內虛擬設有已編址的多個寄存器組,多個寄存器組包括發 送端寄存器組(TX reg),接收端寄存器組(RX reg),中斷頻率控制寄存器組,每個寄存 器虛擬設有多個隊列;一種基于FPGA的多虛擬隊列數據存儲的方法步驟如下a、 主機將數據包發送到PCIe模塊,由PCIe模塊傳遞到接收引擎模塊(Rx engine), 由接收引擎模塊(Rx engine)進行處理,執行b操作;b、 接收至ll的數據包有三禾中posted request, non—posted request, rx completion,由發送有限狀態機模塊(RxFSM)對三種數據包進行處理分類,發送有限狀態機模塊(Rx FSM)對posted request執行c操作,發送有限狀態機模塊(Rx FSM)對non-posted request 執行d操作,c、 posted request由接收Posted包模塊(Rx posted)通過讀寫模塊(Reg—Rd_Wr) 分配給寄存器進行寫操作,執行cl操作,cl、接收Posted包模塊(Rx posted)根據數據包中的地址判斷是進行邏輯存儲 還是塊狀存儲器(塊ram)存儲,如果是塊狀存儲器(塊ram)存儲,執行c2操作,c2、接收Posted包模塊(Rx posted)根據數據包中的地址判斷是對發送端寄存 器(TX reg)還是接收端寄存器(RX reg)操作,如果是接收端寄存器(RX reg)操作, 執行c3操作,c3、接收Posted包模塊(Rx posted)根據數據包中的地址判斷確定對接收端寄 存器的具體塊狀存儲器(塊ram)寫操作,再根據地址判斷具體要向該塊狀存儲器(塊ram) 的哪一個隊列進行寫操作,執行c4操作;c4、由讀寫模塊(Reg—Rd—Wr)將數據寫入塊狀存儲器的隊列中,以實現數據的寫 操作,寫操作完畢;d、 non_posted request由接收NonPosted包模塊(Rx No叩osted)通過讀寫模塊 (Reg—Rd_Wr)分配給寄存器進行讀操作,執行dl操作,dl、接收NonPosted包模塊(Rx Nonposted)根據數據包中的地址判斷是進行邏 輯存儲還是塊狀存儲器(塊ram)存儲,如果是塊狀存儲器(塊ram)存儲,執行d2操作,d2、接收NonPosted包模塊(Rx Nonposted)根據數據包中的地址判斷是對發送 端寄存器還是接收端寄存器操作,如果是接收端寄存器操作,執行d3操作,d3、接收NonPosted包模塊(Rx Nonposted)根據數據包中的地址判確定對接收 端寄存器的具體塊狀存儲器(塊ram)讀操作,再根據數據包中的地址判斷具體要向該塊 狀存儲器(塊ram)的哪一個隊列進行讀操作,執行d4操作,d4、由讀寫模塊(Reg_Rd—Wr)將數據從塊狀存儲器的隊列中讀出,以實現數據的 讀操作,讀操作完畢,執行d5操作;所述塊狀存儲器設有讀寫模式狀態轉換模塊,讀寫模式狀態轉換模塊分為讀模式狀態 的轉換和寫模式狀態的轉換,讀模式狀態分為初始狀態(idle),主機讀使能狀態 (host—rd—en ),讀狀態(read),讀結束狀態(read_end ),讀結束延時狀態 (read—end_dly),寫模式狀態分為初始狀態(idle),主機寫使能狀態(h本文檔來自技高網
    ...

    【技術保護點】
    一種基于FPGA的多虛擬隊列數據存儲的方法,包括網卡、FPGA,所述FPGA包括塊狀存儲器、MAC控制器模塊、DMA控制器、PCIe控制器模塊,其特征在于: 所述FPGA中設有接收引擎模塊、發送引擎模塊、讀寫模塊,接收引擎模塊通過讀寫 模塊與發送引擎模塊連接,接收引擎模塊實現從主機發送過來的數據包進行處理分類,發送引擎模塊實現將用戶發往主機的數據打包,按照相應的時序發送給核接口,讀寫模塊實現數據的存儲與提取; 所述接收引擎模塊包括接收有限狀態機模塊、接收Posted 包模塊、接收NonPosted包模塊、接收Completion包模塊; 所述發送引擎模塊包括發送有限狀態機模塊、發送Completion包模塊; 所述塊狀存儲器內虛擬設有已編址的多個寄存器組,多個寄存器組包括發送端寄存器組,接收 端寄存器組,中斷頻率控制寄存器組,每個寄存器虛擬設有多個隊列; 一種基于FPGA的多虛擬隊列數據存儲的方法步驟如下: 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-pos ted request由接收NonPosted包模塊通過讀寫模塊分配給寄存器進行讀操作,執行d1操作, d1、接收NonPos...

    【技術特征摘要】

    【專利技術屬性】
    技術研發人員:曾宇方信我鄭臣明白宗元
    申請(專利權)人:曙光信息產業北京有限公司
    類型:發明
    國別省市:11[中國|北京]

    網友詢問留言 已有0條評論
    • 還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。

    1
    相關領域技術
    • 暫無相關專利
    主站蜘蛛池模板: 亚洲AV无码成人精品区大在线| 黑人无码精品又粗又大又长 | 亚洲AV无码1区2区久久| 国产麻豆天美果冻无码视频| 中文字幕无码乱人伦| 免费无遮挡无码视频网站| 国产精品免费无遮挡无码永久视频| 特级小箩利无码毛片| 亚洲一区二区三区无码国产| 人妻少妇AV无码一区二区| 免费无码国产在线观国内自拍中文字幕| 人妻精品久久无码专区精东影业| 特级做A爰片毛片免费看无码| 无码精品久久久天天影视| 国产精品无码无片在线观看| 久久中文字幕无码一区二区| 免费无码中文字幕A级毛片| 无码精品人妻一区二区三区影院| 人妻无码一区二区不卡无码av| 国产高清无码二区 | 国模无码一区二区三区不卡| 精品久久久无码人妻字幂| 日韩毛片无码永久免费看| 精品久久久无码人妻中文字幕| 亚洲乱码无码永久不卡在线| 国产精品无码素人福利| 无码人妻久久一区二区三区蜜桃| 精品无码一区二区三区在线| 无码精品A∨在线观看中文| 国产精品无码无片在线观看| 精品久久久久久无码国产| 免费无码又爽又黄又刺激网站| 亚洲av日韩av永久无码电影 | 亚洲成?Ⅴ人在线观看无码| 中文字幕亚洲精品无码| 热の无码热の有码热の综合| 无码中文av有码中文a| 精品久久久无码人妻中文字幕豆芽| 无码人妻精品一区二区三区蜜桃| 无码av免费毛片一区二区| 熟妇人妻无码中文字幕老熟妇|