新四季網

基於fpga的實現多路突發數據業務緩存的系統及方法

2023-05-08 11:46:21 2

專利名稱:基於fpga的實現多路突發數據業務緩存的系統及方法
技術領域:
本 發明涉及通信技術領域,尤其涉及一種基於FPGA實現多路突發數據業務緩存 的系統及方法。
背景技術:
在通信技術領域中,經常需要對多路具有突發、變長、非定時等特性的通信數據業 務進行緩存處理,以便後級模塊固定速率的處理;特別對於不同速率的協議轉換,更需要對 多路突發數據業務進行緩存處理;在現有的技術中,對多路突發數據業務的緩存,有多種緩 存方法,其實現方法分別為。(1)採用專用的ASIC晶片以堆疊的方式來實現;但專用的ASIC晶片提供的 通道數有限,每片ASIC晶片需要獨立外掛存儲器晶片;在實現更多路(N>2)突發數據業務 時,就需要更多的ASIC晶片與存儲器晶片,造成硬體成本高,單板布線難度大。(2)採用FPGA片內RAM來實現;目前的FPGA內部一般都提供一定數目,固定 容量大小的RAM,利用這些RAM資源的組合,每路獨立採用數據隊列的方式,來實現多路數 據業務的緩存(見圖1);但FPGA提供的片內RAM資源十分有限,一方面造成分配給多路數 據的數據隊列深度有限,無法應對像視頻數據一樣的突發數據;另一方面如果要滿足數據 隊列的一定深度,緩存多路數據的通道數量就變得有限,無法實現通道數更多的情況。(3)採用FPGA片內RAM配合片外RAM晶片來實現;如圖2所採用的方式,多 路突發數據業務由FPGA內部邏輯實現的仲裁器以固定優先級方式緩存到片外RAM晶片中, 每路突發數據的每個數據包長度信息存儲於由FPGA片內RAM組成的數據包長度RAM中;該 方式相比方法(1)、(2)要靈活,但仍存在缺陷一,由FPGA片內RAM實現的數據包長度RAM, 其深度決定了緩存到片外RAM晶片的數據包個數,由於FPGA片內RAM資源有限,一方面限 制了數據包長度RAM的深度,即限制了緩存到片外RAM數據包的個數;另一方面在滿足數據 包長度RAM深度要求時,又限制了通道數個數;二,多路突發數據採用固定優先級方式緩存 到片外RAM時,優先級高的通道在數據業務量大的情況下,會造成優先級低的通道的數據 業務得不到及時處理,容易出現「饑飽」現象。

發明內容
本發明的目的在於克服上述方法所存在的缺點,提供一種基於FPGA實現多路突 發數據業務緩存的系統及方法。本發明實施例是這樣實現的一種基於FPGA的實現多路突發數據業務緩存的系 統,包括用於緩存多路突發數據的片外緩存器和提供RAM資源的FPGA晶片;所述FPGA晶片 包括片外緩存控制器,多路突發數據緩存管理電路,以及與數據通道數一致的數據包接收 及緩衝電路、數據包寫控制電路、數據包緩衝及發送電路、數據包讀控制電路;其中,
所述數據包接收及緩衝電路,其輸入端接收外界的突發數據輸入、輸出端與數據包寫 控制電路連接,包括數據包接收控制電路以及接收緩衝區,用於在接收緩衝區為空時接收外界輸入的突發數據並將其寫入接收緩衝區中,且在寫入完整的數據包時置位整包標誌位;
所述數據包寫控制電路,其輸入端與數據包接收及緩衝電路連接、輸出端與多路突發 數據緩存管理電路連接,用於在所述整包標誌位被置位且片外存儲器中對應通道的緩存區 為非滿狀態時,在向多路突發數據包緩衝管理電路申請並得到授權的情況下,讀取接收緩 衝區中完整的數據包並將其與其長度信息組合成新的數據流緩存到片外存儲器中對應通 道的緩存區中,同時生成下一個寫操作的行地址信息;
所述數據包緩衝及發送電路,其輸入端與數據包讀控制電路連接、輸出端與外界埠 連接,包括發送緩衝區以及數據包發送控制電路,用於緩衝完整的數據包並將其發送至外 界埠 ;
所述數據包讀控制電路,其輸入端與多路突發數據緩存管理電路連接、輸出端與數據 包緩衝及發送電路連接,用於發送緩衝區為空且片外存儲器中對應通道的緩存區為非空狀 態時,在向多路突發數據包緩衝管理電路申請並得到授權的情況下從片外存儲器中對應通 道的緩存區中讀取完整的數據包後寫入發送緩衝區中,同時生成下一個讀操作的行地址信 息;
所述多路突發數據包緩存管理電路,分別連接至多路數據包寫控制電路及數據包讀 控制電路,並與片外緩存控制器連接,用於在接收到多路突發數據的讀包申請/寫包申請 時對發送申請的突發數據通道進行仲裁及授權、再對授權的通道授權具體的讀操作/寫操 作,生成當前讀/寫操作的列地址信息,將數據包寫入片外緩存器或將數據包從片外緩存 器中讀取出來;
所述片外緩存控制器,與多路突發數據包緩存管理電路和片外緩存器分別連接,用於 對片外緩存器進行控制。其中,所述多路突發數據緩存管理電路包括多路突發數據組合仲裁器、讀寫仲裁 電路、突發管理電路、緩存用戶接口、緩存區狀態管理電路、寫端數據與地址選擇器、讀端數 據與地址選擇器、讀授權控制電路、寫授權控制電路。其中,所述多路突發數據組合仲裁器,用於在當前僅有單個通道請求採用固定優 先級的方式或者在當前通道請求的數量大於1時採用循環優先級的方式對各突發數據通 道進行仲裁及授權,並將授權的突發數據通道信息提供給讀寫仲裁電路,由其授權具體的 讀操作或者寫操作。所述突發管理電路,用於在讀操作或者寫操作過程中,生成當前操作的片外緩存 器的列地址,同時由緩存用戶接口據此完成片外緩存器地址的轉化並生成片外緩存控制器 的接口信號。所述緩存區狀態管理電路,包含與突發數據通道數一致的N個包計數器,用於對 片外緩存器中對應於各路突發數據通道的緩存區中的數據包的個數分別進行實時統計,在 每路對應的包計數器值大於最大閾值/小於最小閾值時通知對應的寫授權控制電路/讀授 權控制電路及數據包寫控制電路/數據包讀控制電路其相應的緩存區為滿狀態/空狀態, 多路突發數據組合仲裁器將據此狀態中止響應對應通道的數據包寫控制電路/數據包讀 控制電路的寫包/讀包申請,同時對應通道的數據包寫控制電路/數據包讀控制電路將據 此滿狀態/空狀態中止發送寫包/讀包申請。
所述寫端數據與地址選擇器/讀端數據與地址選擇器用於在寫操作/讀操作時根 據多路突發數據組合仲裁器的仲裁結果選擇所授權通道的對應的數據包與行地址。 其中,所述接收緩衝區由2個雙埠的以桌球方式工作的片內RAM存儲器組成;所 述發送緩衝區由1個雙埠的片內RAM存儲器組成。其中,所述組成接收緩衝區的片內RAM存儲器的寫埠的地址線有11根、輸入數 據寬度為8位,讀埠的地址線有8根、輸出數據寬度為64位。所述組成發送緩衝區的片內RAM存儲器的寫埠的地址線有8根、寫數據寬度為 64位,讀埠的地址線有11根、讀數據寬度為8位。其中,所述片外緩存器由2片16位的片外存儲器組成。其中,所述片外存儲器劃分為多個相同容量大小的存儲塊,且其中連續的多個存 儲塊組成緩存區並分配給各路突發數據通道。其中,所述片外存儲器劃分為多個2048位元組大小的存儲塊。一種如上所述系統的實現多路突發數據業務緩存的方法,包括接收數據處理的 步驟、寫數據申請的步驟、多路突發數據仲裁管理的步驟、讀數據申請的步驟以及發送數據 處理的步驟;其中,
所述接收數據處理的步驟包括在外界有突發數據輸入時,判斷接收緩衝區是否為空 且片外緩存器中對應通道的緩存區是否非滿,若否,則丟棄當前輸入的數據包;若是,則將 該數據包按字節寫入接收緩衝區中,同時統計該數據包的字節數,且在接收完一個完整的 數據包時置位整包標誌位;
所述寫數據申請的步驟包括實時查詢接收緩衝區中的整包標誌位,當檢測到置位時 向多路突發數據包緩存管理電路發起寫包申請,並在通過申請並得到授權時,讀取接收緩 衝區中完整的數據包內容並將其與該數據包的長度信息組合成新的數據流緩存到片外存 儲器中對應於該突發數據通道的緩存區中;
所述多路突發數據仲裁管理的步驟包括實時查詢各路通道的讀/寫請求,先進行對 請求的仲裁與通道的授權,再對授權的通道進行讀寫仲裁,生成讀操作授權或者寫操作授 權;
所述讀數據申請的步驟包括檢測發送緩衝區是否為空且片外緩存器中對應通道的緩 存區是否非空,若是,則向多路突發數據包緩存管理電路發起讀包申請,並在通過申請並得 到授權時,從片外緩存器中對應通道的緩存區中讀取完整的數據包並從其中分離出數據包 內容與數據長度信息,記錄數據長度信息,將數據包內容寫入發送緩衝區中;
所述發送數據處理的步驟包括檢測發送緩衝區中是否有完整的數據包,然後從發送 緩衝區中讀取數據包並將其發送至外界的輸出端。其中,所述多路突發數據仲裁管理的步驟中,根據當前通道請求的數量,採用循環 優先級或者固定優先級的方式來實現對請求的仲裁與通道的授權。其中,若當前僅有單個通道請求,則採用固定優先級的方式來實現對請求的仲裁 與通道的授權;若當前通道請求的數量大於1,則採用循環優先級的方式來實現對請求的 仲裁與通道的授權。其中,所述方法還包括系統初始化的步驟,該步驟進一步包括
上電復位後,系統立即進行初始化過程,將FPGA晶片內的各個通道的行、列地址清零,緩存區狀態管理中的包計數器、長度計數器清零,RAM讀寫地址、通道讀寫請求全部清零,各緩衝區、緩存區設為空狀態,設置各路緩存區水線深度,將內部各控制邏輯設於空閒狀態。本發明實施例與現有技術相比,有益效果在於
1)本發明採用FPGA實現多路突發數據業務的緩存,尤其適合於數據通信設備中的多 路通信數據的緩存處理,可實現多路(N > 2)突發數據業務的緩存,實現相對靈活,可根據 要求配置更多的通道。2)本發明採用循環優先級與固定優先級相結合的方式來實現對多路突發數據的 操作仲裁,使各路的突發數據業務能得到相對均衡的緩存。3)本發明將數據長度信息與數據內容組合成新的數據流,存放在片外的存儲器 中,避免了數據長度記錄表造成FPGA片內RAM資源短缺的瓶頸。4) 本發明採用獨特的系統架構,根據需求及FPGA資源情況,可以以模塊化的 方式,簡單的增加或者減少通道個數,以適合不同的應用情況。5) 本發明對片外存儲器的訪問採用簡單的地址生成機制,不需要採用複雜的 鍊表,使得片外存儲器的BANK、行、列地址能獨立產生,且列地址的生成不受通道個數的影 響。


圖1是採用FPGA片內RAM實現數據隊列的多通道數據緩存的系統框圖。圖2是採用FPGA片內RAM與片外RAM相結合實現多通道數據緩存的系統框圖。圖3是本發明實施例提供的採用FPGA實現多路突發數據業務緩存的系統框圖。圖4是本發明實施例提供的存儲塊及多路突發數據緩存區的劃分示意圖。圖5是本發明實施例提供的循環優先級分配方法示意圖 圖6是本發明實施例提供的單路突發數據接收處理流程圖。圖7是本發明實施例提供的單路突發數據寫控制處理流程圖。圖8是本發明實施例提供的多路突發數據緩存管理流程圖。圖9是本發明實施例提供的單路突發數據讀控制處理流程圖。圖10是本發明實施例提供的單路突發數據發送控制流程圖。
具體實施例方式為了使本發明的目的、技術方案及優點更加清楚明白,以下結合附圖及實施例,對 本發明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發明,並 不用於限定本發明。(一)、如圖3所示,本實施例中採用FPGA實現多路突發數據業務緩存的系統包括 提供塊RAM資源的FPGA晶片1和片外緩存器2。其中的FPGA晶片進一步包括與數據通道數一致的數據包接收及緩衝電路11、數 據包寫控制電路12、數據包讀控制電路13、數據包緩衝及發送電路14,多路突發數據緩存 管理電路15,片外緩存控制器16。上述各個組成部分的連接關係及工作原理分別如下所述。(1)數據包接收及緩衝電路11,它的輸入來自外界的突發數據輸入,輸出連接到數據包寫控制電路12,用於負責 接收輸入端的數據並將數據緩衝起來,並將接收緩衝區 中的空滿狀態及是否有整包的標誌反饋給數據包寫控制電路12。它內含2個雙埠 RAM組 成的以桌球方式工作的桌球緩衝區,緩衝從外界輸入的突發數據,同時產生緩衝區空滿狀 態信號。組成桌球緩衝區的2個雙埠 RAM讀寫埠的地址線、數據線寬度不同,寫埠的 地址線為11位、數據寬度為8位,而讀埠的地址線為8位、數據寬度為64位。(2)數據包寫控制電路12,輸入來自前級的突發數據業務接收及緩衝電路1, 輸出連接到多路突發數據緩存管理電路15,每個通道的緩存區狀態管理中的滿狀態信號也 做為輸入提供給數據包寫控制電路12。它用於負責在通過申請並得到授權的情況下,將一 個完整的數據包緩存到片外存儲器對應的緩存區中。(3 )數據包讀控制電路13,它的輸入來自多路突發數據緩存管理電路15,輸 出連接到數據包緩存及發送電路14。它負責數據包讀取,在通過申請並授權情況下,從片外 存儲器對應的緩存區中讀取一個完整的數據包寫入到發送緩衝區中。(4)數據包發送及緩衝電路14,其輸入來自數據包讀控制電路13,輸出連接 到外界埠。它負責緩衝讀取的整個數據包,然後發送到外界。它內含由1個雙埠 RAM 組成的發送數據緩衝區,雙埠 RAM的讀寫埠的地址線、數據線寬度不同,寫埠的地址 線為8根、數據線寬度為64位,而讀埠的地址線為11根、數據線寬度為8位。(5)多路突發數據緩存管理電路15,它的輸入輸出與每路的數據包寫控制電 路12、數據包讀控制電路13及片外緩存控制器16相連。它負責多路突發數據的請求、仲裁 及通道授權,選擇已授權通道的數據、地址、狀態信息,統計緩存區的狀態,生成列地址,將 數據包寫入到片外存儲器或將數據包從片外存儲器中讀取出來。它包括有緩存區狀態管理 電路151、多路突發數據組合仲裁器152、讀寫仲裁電路153、突發管理電路154、緩存用戶接 口 155、寫端數據與地址選擇器156、讀端數據與地址選擇器157、寫授權控制電路158以及 讀授權控制電路等功能模塊。其中多路突發數據組合仲裁器152,是採用固定優先級與循環優先級相結合的 方式,實現對多路突發數據的請求、仲裁、授權。讀端數據與地址選擇器156/寫端數據與地址選擇器157均是N選1的X位 多路選擇器,N的大小跟設計的突發數據通道數對應,對於數據選擇器,X為片外存儲器2的 總數據位寬度的2倍;對於地址選擇器,X的位數跟片外存儲器2的行、列地址位長度及數 據位寬度有關。緩存區狀態管理電路151,含有N個K位的包計數器,N的大小跟突發數據通 道數對應,而K的大小跟對應通道的緩存區的深度有關;在某路對應緩存區寫入一個包時, 相應的包計數器加1,當取走一個包時,相應的包計數器減1 ;當包計數器值超過最大閾值 時,相應通道的緩存區判為空狀態,此時讀端將不再發出讀申請;當包計數器值超過最小閾 值時,相應通道的緩存區判為滿狀態,此時寫端將不再發出寫申請;同時,在緩存區空或滿 的情況下,多路突發數據組合仲裁器152將不再響應讀或寫請求。(6)片外緩存控制器16,它的輸入端、輸出端分別與片外緩存器2及多路突發數據 緩存管理電路15相連接;片外緩存控制器16採用FPGA晶片廠商提供的IP軟核實現。(7)片外緩存器2,它的輸入端、輸出端與片外緩存控制器16相連,它是獨立 於FPGA的片外存儲器。
片外緩存器2由片外的存儲器晶片組成,根據存儲晶片內部的存儲結構,可 將存儲區劃分為多個2048位元組大小的存儲塊,每個存儲塊的存儲單元地址是連續的。連續 的多個存儲塊組成緩存區,再分配給各路突發數據通道;存儲塊可以根據存儲晶片的行、列 地址、數據位寬度來劃分,假如列地址寬度為10位,數據位寬度為16位,則正好一行劃分為 一個存儲塊,對應每個存儲塊存儲一個完整的數據包。而各路緩存區的大小如果都分配相 同,則可以根據存儲晶片的BANK地址及行的高位地址來劃分。假如多路突發數據通道為32 個,而存儲晶片BANK地址寬度為3,則緩存區可按8個BANK,每個BANK分成四個區來劃分, 即行的高2位地址用來做一個BANK內四個緩存區的劃分,劃分方式可參考附圖4。因此每 路的地址產生,就變得十分簡單,列的地址由多路突發數據緩存管理電路中的突發管理模 塊生成,每次突發操作後,列地址自動按突髮長度增加;而行的地址由每路的數據包寫/讀 控制電路生產,即每次往緩存區寫入一個完整的數據包,行低(N-2)位地址(高2位地址用 於緩存區區域的劃分,分配後不變)自動加1,每次從緩存區讀取一個完整的數據包,行低位 地址自動減1。另外,數據包接收及緩存電路11含有數據接收控制電路和數據包緩衝區,其中 的數據接收控制電路用於負責控制外界輸入數據到數據包緩衝區的寫入過程,產生寫地 址(Wr_ram_adr)及相關的寫使能(Wr_ram_en)信號,含有2個數據包長度寄存器(pkt_ length_reg),2個整包標誌位(full_pkt_flag),其中數據包長度寄存器(pkt_length_ reg)用於當一個完整的數據包寫入到包緩衝區時,鎖存當前寫地址(wr_ram_adr)值,記錄 當前數據包的長度信息及數據包寫入緩存區時按一定突髮長度所需的突發次數信息;整包 標誌位(full_pkt_flag)標示緩衝區是否有完整的數據包。數據包寫控制電路12由內部邏輯實現,檢測到整包標誌(full_pkt_flag) 置位時,向多路突發數據緩存管理電路15發起寫請求(ch_wr_req),等待寫授權(ch_wr_ gnt),然後查詢數據包接收及緩存電路11提供的桌球緩衝區的空狀態信號,判斷哪個緩衝 區有整包,並在寫數據請求(Ch_Wdata_req)有效的情況下,讀取緩衝區的數據並將其與數 據包長度信息組合成新的數據流輸出給多路突發數據緩存管理電路15 ;且每向緩存區寫 入一個完整數據包後,行地址(ch_wr_row_adr)自動加1,指向下一個數據包要緩存的行位 置。多路突發數據緩存管理電路15,由內部邏輯實現,將多個通道的仲裁授權與 通道的讀寫仲裁授權從功能上分開。內含的多路突發數據組合仲裁器152實時檢測是否有 通道請求,並根據多個請求或單個請求採用循環優先級或固定優先級的方式來仲裁授權哪 個通道,並將授權的通道提供給讀寫仲裁電路153,讀寫仲裁電路153將授權通道的具體的 讀或者寫操作。在讀或者寫操作過程中,突發管理電路154生成當前操作的列地址(col_ adr),且每次突發操作後列地址(C0l_adr)按突髮長度增加,以指向下一次要突發的位置; 同時緩存用戶接口 155完成片外緩存器地址的轉化,並生成片外緩存控制器16的接口信 號。循環優先級的優先級分配方法如圖5所示,當前優先級最高的突發數據通道在下一次 分配中優先級最低。數據包讀控制電路13,由內部邏輯控制實現,當檢測到發送緩衝區空,而片 外的緩存區有數據包時,向多路突發數據緩存管理電路15發起讀請求(Ch_rd_req),並等 待讀授權(ch_rd_gnt),當讀數據有效信號(ch_rdata_val id)有效時,將讀取的數據寫入到發送緩衝區中,同時鎖存讀 取的數據包長度信息(pkt_length_inf0),數據包長度信息 (pkt_length_inf0)提供當前讀取數據包按一定突髮長度所需的突發次數。數據包發送及緩存電路14,含有數據讀控制電路和發送緩衝區,數據讀控制 電路在發送緩存區有完整數據包時,生成讀控制信號,控制發送緩衝區的數據讀取。(二)、上述系統的工作過程為 (1)初始化過程。上電復位後,系統立即進行初始化過程,FPGA片內的各個通道的行地址、長度 計數器、RAM讀/寫地址、通道讀/寫請求等全部清零,列地址,緩存區狀態管理中的包計數 器、各緩存區狀態為空,設置各路緩存區水線深度,各內部控制邏輯處於空閒狀態。(2)接收數據處理。參考附圖6,該過程中的具體處理流程為如果有外界數據輸入,檢查桌球緩 衝區是否為空,檢查對應的片外緩存區狀態是否非滿,如果條件不成立,則丟棄當前輸入的 數據包;如果條件成立,則將輸入數據按字節寫入到桌球緩衝區中,同時計數輸入數據的字 節數,收到一個完整的數據包後,鎖存桌球緩衝的寫地址(wr_ram_adr)到數據包長度寄存 器(pkt_length_reg)中,同時置位相應的整包標誌(full_pkt_flag)。(3)寫數據申請。參考附圖7,該過程中的具體處理流程為數據包寫控制電路在時鐘周期下 查詢整包標誌(full_pkt_flag),當檢測到整包標誌置位時,已知桌球緩衝區有一個完整 包,立即向多路突發數據緩存管理電路發起寫包申請(ch_wr_req),並等待多路突發數據組 合仲裁器的寫授權(ch_Wr_gnt),當寫數據請求有效信號(Ch_Wdata_req)到來,數據包寫 控制電路讀取桌球緩衝區的完整數據包內容,並將其與該數據包的長度信息(pkt_length_ reg)中的值組合成新的數據流緩存到片外緩存器中對應的緩存區中;寫操作下的行地 址(ch_wr_c0l_adr)在一個完整數據包寫入片外緩存器中其對應的緩存區後,自動加1, 指向下一個數據包將要寫入的位置;數據包的寫中止信號(ch_wr_term)為由多路突發數 據緩存管理電路中的突發管理電路通過比較當前的列地址(c0l_adr)與整包長度(pkt_ length_reg)中的突發次數來產生。(4)多路突發數據仲裁管理。參考附圖8,該過程中的具體處理流程為多路突發數據組合仲裁器在時鐘周期 下實時檢測是否有通道(讀或寫)請求(chx_req),並根據當前通道請求的數量,決定採用循 環優先級(通道請求數大於1)或者固定優先級(只有單個請求)方式來實現請求的輪詢與通 道的授權(chX_gnt),授權的通道再通過讀寫仲裁,生成讀操作授權(chX_rd_gnt)或者寫 操作授權(chX_Wr_gnt)。同時根據仲裁的結果來選擇所授權通道對應的數據、行地址、突發 次數、控制信號,授權通道的數據、行地址、突發次數、控制信號的選擇由讀端/ 寫端地址與數據選擇器完成;當向相對應通道的緩存區寫入一個完整數據包時,緩存區狀 態管理電路中相應的包計數器自動加1,當從相對應通道的緩存區讀取一個完整數據包時, 緩存區狀態管理電路中相應的包計數器自動減1 ;當包計數器值超過最大閾值或者最小閾 值時,將產生相應通道的緩存區滿或者空狀態信號。(5)讀數據申請。參考附圖9,該過程中的具體處理流程為數據讀控制電路檢測發送緩衝區是否為空,再檢測對應的片外緩存區是否非空,然後則向多路突發數據緩存管理電路發出讀包申請(Ch_rd_req),並等待多路突發數據組合仲裁器的讀授權(ch_rd_gnt),在讀取數據 有效信號(ch_rdata_valid)有效時,分離出數據包內容與數據長度信息,將數據長度記錄 到長度信息寄存器(pkt_length_inf0)中,數據內容按時序寫入到發送緩衝區中。當一個 完整數據包被讀取後,讀操作下的行地址(ch_rd_C0l_adr)自動加1,指向下一個將要讀取 的數據包位置。數據包的讀中止信號(ch_rd_term)由長度信息寄存器(pkt_length_inf0) 中突發次數與當前列地址(col_adr)比較產生。具體處理流程可見附圖9。(6)發送數據處理。參考附圖10,該過程中的具體處理流程為數據包緩衝及發送電路檢測發送 緩衝區是否有完整的數據包,然後以字節形式從發送緩衝區中讀取數據後發送到外界的 輸出端。發送過程中,將記錄發送的字節數(tx_byteS),並與當前數據包長度信息(pkt_ lengthjnfo)進行比較,確定數據包是否發送完,發送完成後,發送字節數與當前的數據包 長度信息都被清零,等待下一個數據包的讀取與發送。以上所述僅為本發明的較佳實施例而已,並不用以限制本發明,凡在本發明的精 神和原則之內所作的任何修改、等同替換和改進等,均應包含在本發明的保護範圍之內。
權利要求
1.一種基於FPGA的實現多路突發數據業務緩存的系統,其特徵在於,該系統包括用於 緩存多路突發數據的片外緩存器和提供RAM資源的FPGA晶片;所述FPGA晶片包括片外緩 存控制器,多路突發數據緩存管理電路,以及與數據通道數一致的數據包接收及緩衝電路、 數據包寫控制電路、數據包緩衝及發送電路、數據包讀控制電路;其中,所述數據包接收及緩衝電路,其輸入端接收外界的突發數據輸入、輸出端與數據包寫 控制電路連接,包括數據包接收控制電路以及接收緩衝區,用於在接收緩衝區為空時接收 外界輸入的突發數據並將其寫入接收緩衝區中,且在寫入完整的數據包時置位整包標誌 位;所述數據包寫控制電路,其輸入端與數據包接收及緩衝電路連接、輸出端與多路突發 數據緩存管理電路連接,用於在所述整包標誌位被置位且片外存儲器中對應通道的緩存區 為非滿狀態時,在向多路突發數據包緩衝管理電路申請並得到授權的情況下,讀取接收緩 衝區中完整的數據包並將其與其長度信息組合成新的數據流緩存到片外存儲器中對應通 道的緩存區中,同時生成下一個寫操作的行地址信息;所述數據包緩衝及發送電路,其輸入端與數據包讀控制電路連接、輸出端與外界埠 連接,包括發送緩衝區以及數據包發送控制電路,用於緩衝完整的數據包並將其發送至外 界埠 ;所述數據包讀控制電路,其輸入端與多路突發數據緩存管理電路連接、輸出端與數據 包緩衝及發送電路連接,用於發送緩衝區為空且片外存儲器中對應通道的緩存區為非空狀 態時,在向多路突發數據包緩衝管理電路申請並得到授權的情況下從片外存儲器中對應通 道的緩存區中讀取完整的數據包後寫入發送緩衝區中,同時生成下一個讀操作的行地址信 息;所述多路突發數據包緩存管理電路,分別連接至多路數據包寫控制電路及數據包讀 控制電路,並與片外緩存控制器連接,用於在接收到多路突發數據的讀包申請/寫包申請 時對發送申請的突發數據通道進行仲裁及授權、再對授權的通道授權具體的讀操作/寫操 作,生成當前讀/寫操作的列地址信息,將數據包寫入片外緩存器或將數據包從片外緩存 器中讀取出來;所述片外緩存控制器連接於多路突發數據包緩存管理電路和片外緩存器之間,用於對 片外緩存器進行控制。
2.如權利要求1所述的基於FPGA的實現多路突發數據業務緩存的系統,其特徵在於, 所述多路突發數據緩存管理電路包括多路突發數據組合仲裁器、讀寫仲裁電路、突發管理 電路、緩存用戶接口、緩存區狀態管理電路、寫端數據與地址選擇器、讀端數據與地址選擇 器、讀授權控制電路、寫授權控制電路;其中,所述多路突發數據組合仲裁器,用於在當前僅有單個通道請求採用固定優先級的方式 或者在當前通道請求的數量大於1時採用循環優先級的方式對各突發數據通道進行仲裁 及授權,並將授權的突發數據通道信息提供給讀寫仲裁電路,由其授權具體的讀操作或者 寫操作;所述突發管理電路,用於在讀操作或者寫操作過程中,生成當前操作的片外緩存器的 列地址,同時由緩存用戶接口據此完成片外緩存器地址的轉化並生成片外緩存控制器的接 口信號;所述緩存區狀態管理電路,包含與突發數據通道數一致的N個包計數器,用於對片外 緩存器中對應於各路突發數據通道的緩存區中的數據包的個數分別進行實時統計,在每路 對應的包計數器值大於最大閾值/小於最小閾值時通知對應的寫授權控制電路/讀授權控 制電路及數據包寫控制電路/數據包讀控制電路其相應的緩存區為滿狀態/空狀態,多路 突發數據組合仲裁器將據此狀態中止響應對應通道的數據包寫控制電路/數據包讀控制 電路的寫包/讀包申請,同時對應通道的數據包寫控制電路/數據包讀控制電路將據此滿 狀態/空狀態中止發送寫包/讀包申請。所述寫端數據與地址選擇器/讀端數據與地址選擇器用於在寫操作/讀操作時根據多 路突發數據組合仲裁器的仲裁結果選擇所授權通道的對應的數據包與行地址。
3.如權利要求1或2所述的基於FPGA的實現多路突發數據業務緩存的系統,其特徵在 於,所述接收緩衝區由2個雙埠的以桌球方式工作的片內RAM存儲器組成;所述發送緩衝 區由1個雙埠的片內RAM存儲器組成。
4.如權利要求3所述的基於FPGA的實現多路突發數據業務緩存的系統,其特徵在於,所述組成接收緩衝區的片內RAM存儲器的寫埠的地址線有11根、輸入數據寬度為8位,讀埠的地址線有8根、輸出數據寬度為64位;所述組成發送緩衝區的片內RAM存儲器的寫埠的地址線有8根、寫數據寬度為64 位,讀埠的地址線有11根、讀數據寬度為8位。
5.如權利要求1所述的基於FPGA的實現多路突發數據業務緩存的系統,其特徵在於, 所述片外緩存器由2片16位的片外存儲器組成。
6.如權利要求1或5所述的基於FPGA的實現多路突發數據業務緩存的系統,其特徵在 於,所述片外存儲器劃分為多個相同容量大小的存儲塊,且其中連續的多個存儲塊組成緩 存區並分配給各路突發數據通道。
7.如權利要求6所述的基於FPGA的實現多路突發數據業務緩存的系統,其特徵在於, 所述片外存儲器劃分為多個2048位元組大小的存儲塊。
8.—種如權利要求1所述系統的實現多路突發數據業務緩存的方法,其特徵在於,該 方法包括接收數據處理的步驟、寫數據申請的步驟、多路突發數據仲裁管理的步驟、讀數 據申請的步驟以及發送數據處理的步驟;其中,所述接收數據處理的步驟包括在外界有突發數據輸入時,判斷接收緩衝區是否為空 且片外緩存器中對應通道的緩存區是否非滿,若否,則丟棄當前輸入的數據包;若是,則將 該數據包按字節寫入接收緩衝區中,同時統計該數據包的字節數,且在接收完一個完整的 數據包時置位整包標誌位;所述寫數據申請的步驟包括實時查詢接收緩衝區中的整包標誌位,當檢測到置位時 向多路突發數據包緩存管理電路發起寫包申請,並在通過申請並得到授權時,讀取接收緩 衝區中完整的數據包內容並將其與該數據包的長度信息組合成新的數據流緩存到片外存 儲器中對應於該突發數據通道的緩存區中;所述多路突發數據仲裁管理的步驟包括實時查詢各路通道的讀/寫請求,先進行對 請求的仲裁與通道的授權,再對授權的通道進行讀寫仲裁,生成讀操作授權或者寫操作授 權;所述讀數據申請的步驟包括檢測發送緩衝區是否為空且片外緩存器中對應通道的緩存區是否非空,若是,則向多路突發數據包緩存管理電路發起讀包申請,並在通過申請並得 到授權時,從片外緩存器中對應通道的緩存區中讀取完整的數據包並從其中分離出數據包 內容與數據長度信息,記錄數據長度信息,將數據包內容寫入發送緩衝區中;所述發送數據處理的步驟包括檢測發送緩衝區中是否有完整的數據包,然後從發送 緩衝區中讀取數據包並將其發送至外界的輸出端。
9.如權利要求8所述的實現多路突發數據業務緩存的方法,其特徵在於,所述多路突 發數據仲裁管理的步驟中,根據當前通道請求的數量,採用循環優先級或者固定優先級的 方式來實現對請求的仲裁與通道的授權。
10.如權利要求9所述的實現多路突發數據業務緩存的方法,其特徵在於,若當前僅有單個通道請求,則採用固定優先級的方式來實現對請求的仲裁與通道的授權;若當前通道請求的數量大於1,則採用循環優先級的方式來實現對請求的仲裁與通道 的授權。
11.如權利要求8至10任一權利要求所述的實現多路突發數據業務緩存的方法,其特 徵在於,該方法還包括系統初始化的步驟,該步驟進一步包括上電復位後,系統立即進行初始化過程,將FPGA晶片內的各個通道的行、列地址清零, 緩存區狀態管理中的包計數器、長度計數器清零,RAM讀寫地址、通道讀寫請求全部清零,各 緩衝區、緩存區設為空狀態,設置各路緩存區水線深度,將內部各控制邏輯設於空閒狀態。
全文摘要
本發明公開了一種基於FPGA的實現多路突發數據業務緩存的系統及方法,其中的系統包括用於緩存多路突發數據的片外緩存器和提供RAM資源的FPGA晶片;所述FPGA晶片又包括片外緩存控制器,用於處理多路突發數據的請求仲裁及通道授權、生成當前讀/寫操作的列地址信息、將數據包寫入片外緩存器或將數據包從片外緩存器中讀取出來的多路突發數據緩存管理電路,以及與數據通道數一致的數據包接收及緩衝電路、數據包寫控制電路、數據包讀控制電路、數據包緩衝及發送電路。採用本發明,可簡單的增加或者減少通道個數,各路的突發數據業務能得到相對均衡的緩存,避免了FPGA片內RAM資源短缺造成的瓶頸。
文檔編號G06F13/18GK102096648SQ20101058075
公開日2011年6月15日 申請日期2010年12月9日 優先權日2010年12月9日
發明者周學兵, 宋海波, 林彬, 鄭楠, 黃良靜 申請人:深圳中興力維技術有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀