一種現場可編程門陣列數據緩存的管理方法
2023-07-10 11:34:26 1
專利名稱:一種現場可編程門陣列數據緩存的管理方法
技術領域:
本發明涉及一種數據緩存的管理方法,尤其是一種FPGA (Field Programmable Gate Array,現場可編程門陣列)數據緩存的管理方法。
背景技術:
當FPGA接收到待處理的數據後,將數據寫入數據FIFO (First Input First Output,先入先出隊列),即數據存儲器,並將控制信息 寫入控制FIFO,即存儲控制器;當控制FIFO非空時,表示有數據。 下遊模塊讀控制FIFO得到控制信息,然後從數據FIFO中讀取相應數 據加以處理。
常規的FIFO實現包含 一 個FIFO控制器和雙口 RAM (random-access memory,隨機訪問內存),雙口RAM的一口作為寫端 口,而另一口作為讀埠,讀寫埠獨立操作。FIFO控制器完成讀寫 操作的管理,包含讀寫操作地址指針、FIFO內部數據個數計數器、一 個深度常數以及FIFO內部空滿狀態指示。如專利號為 "ZL200410034425. 0",名稱為" 一種多通道數據緩沖設計方法與裝 置,,的中國專利即描述了上述FIFO的實現方法。然而,其雙口 RAM 的讀寫地址由FIFO控制器產生,外部發起寫操作或讀操作的模塊無法 知道當前的讀寫地址, 一旦寫模塊和讀模塊有一個發生操作錯誤的話, 就會導致整個RAM內部以及後續的數據發生混亂而無法恢復;並且,
該專利中將不同通道的報文按通道進行緩存,要求每個通道必須有一
組FIFO控制信息,如讀寫地址指針、空滿狀態指示、個數計數器等, 通道數量較多時,就會導致管理不便及邏輯資源浪費;再者,該專利 中需要設定一個深度常數,多個通道便需要多個不同的深度常數。
專利號為"US5664116"的美國專利描述了一種才艮文緩存的方法, 即採用每個通道分配一個單獨的FIFO來緩存數據,但每個報文分片在 數據FIFO中的位置沒有明確的標識, 一旦讀寫操作有一方發生4ti吳 時,整個緩存區的數據都會發生讀取混亂,導致無法恢復的錯誤。
發明內容
本發明要解決的技術問題是提供一種FPGA數據緩存的管理方法, 使得每個報文分片在數據FIFO中的位置得到明確的標識,確保了某個 報文分片在讀寫操作發生錯誤時後續報文緩存的正確性。
本發明解決其技術問題所採用的技術方案是
一種FPGA數據緩存的管理方法,
寫數據時包括以下步驟
a、 寫操作模塊將分片數據寫入數據FIFO,記錄所述分片數據的 長度並獲得所述分片數據在所述數據FIFO中的起始地址;
b、 所述寫操作模塊將所述分片數據的長度及其在所述數據FIFO 中的起始地址寫入控制FIFO;
讀數據時包括以下步驟
A、 讀操作模塊讀取所述控制FIFO獲得分片數據的長度及其在所 述數據FIFO中的起始地址;
B、 所述讀操作模塊根據所述起始地址給出所述數據FIFO的讀地
址後,讀取所述分片數據。
上述方案中,寫數據時,所述起始地址是由所述數據FIFO通過預 設接口傳輸給所述寫操作模塊的。
上述方案中,讀數據時,所述數據FIF0的讀地址是由所述讀操作 模塊根據所述起始地址,通過預設接口給出的。
上述方案中,讀數據時,所述步驟B通過以下步驟實現
(1) 、所述讀操作模塊通過所述預設接口給出所述數據FIFO的讀地
址;
(2) 、所述讀操作模塊根據所述讀地址進行一次讀操作;
(3) 、根據所述分片數據的長度判斷所述分片數據是否已經全部讀 出,若已全部讀出,則結束流程,否則,將所述讀地址加l後回到步 驟(2)。
上述方案中,所述分片數據包括按固定長度劃分才艮文數據得到的 分片以及數據通道號、報文開始標誌和報文結束標誌。
本發明的有益效果主要表現在本發明在寫操作時返回數據FIFO 的地址,而在讀操作時給出數據FIFO的起始地址,使得每個報文分片 在數據FIFO中的位置得到明確的標識,即使某個報文分片在讀寫操作 時發生錯誤,也不會引起整個數據FIFO發生混亂,保證後續報文緩存 的正確性;再者,本發明將通道號隨同數據一起寫入數據FIFO,只管 理一個數據FIFO,便可以緩存多通道數據,極大地簡化了實現的複雜 度,節省了邏輯資源。
圖1為本發明FPGA數據緩存的管理中寫數據FIFO的方法流程圖2為本發明FPGA數據緩存的管理中讀數據FIFO的方法流程圖。
具體實施例方式
下面分別結合圖l及圖2對本發明作進一步的描述。
參照圖1, FPGA的上遊模塊發送報文數據時,數據緩存的管理方 法包括以下步驟
步驟101:寫操作模塊判斷控制FIFO和數據FIFO是否均非滿, 若兩者均非滿,則表明還能緩存報文數據,ii^步驟102;否則,表 明不能從上遊模塊接收數據,再次執行步驟101;
步驟102:寫操作模塊接收報文數據,並得到數據通道號、報文 開始標誌及^R文結束標誌;
步驟103:寫操作模塊將報文數據按固定長度劃分得到分片,並 將各個分片分別連同數據通道號、報文開始標誌及才艮文結束標誌組成 各個分片數據;
步驟104:寫操作模塊將一分片數據全部寫入數據FIFO,記錄該 分片數據的長度並獲得該分片數據在數據FIFO中的起始地址;其中, 該起始地址是由數據FIFO通過預設的Wr-addr接口傳輸給寫操作模塊 的;記錄分片數據的長度是由於報文的長度不固定,往往不是劃分時 設定的固定長度的整數倍,這使得報文數據最後一個分片的長度不足 設定的固定長度;
步驟105:寫操作模塊將該分片數據的長度及其在數據FIFO中的 起始地址寫入控制FIFO;
步驟106:寫操作模塊判斷是否還有分片數據需要寫入數據FIFO, 若是,回到步驟104,否則,結束流程。
參照圖2,從FPGA讀取報文數據時,數據緩存的管理方法包括以 下步驟
步驟201:讀操作模塊判斷控制FIFO是否非空,若非空,表示至 少有一個分片數據緩存在數據FIFO中,進入步驟202;否則,再次執 行步驟201;
步驟202:讀操作模塊讀取控制FIFO獲取一分片數據的長度及其 在數據FIFO中的起始地址;
步驟203:讀操作模塊根據讀操作模塊根據該起始地址通過預設 的Rd-addr接口給出數據FIFO的讀地址;
步驟204:讀操作模塊根據該讀地址對數據FIFO進行一次讀操作, 同時控制FIFO中的初值為0的讀取次數計數器加1;
步驟205:根據該分片數據的長度及讀取次數計數器的值判斷該 分片數據是否讀取完畢,若兩者相同,表示分片數據已讀取完畢,回 到步驟201再次進行判斷操作;否則,進入步驟206;
步驟206:將該讀地址增加l,並回到步驟204。
權利要求
1、一種現場可編程門陣列數據緩存的管理方法,其特徵在於,寫數據時包括以下步驟a、寫操作模塊將分片數據寫入數據存儲器,記錄所述分片數據的長度並獲得所述分片數據在所述數據存儲器中的起始地址;b、所述寫操作模塊將所述分片數據的長度及其在所述數據存儲器中的起始地址寫入存儲控制器;讀數據時包括以下步驟A、讀操作模塊讀取所述存儲控制器獲得分片數據的長度及其在所述數據存儲器中的起始地址;B、所述讀操作模塊根據所述起始地址給出所述數據存儲器的讀地址後,讀取所述分片數據。
2、 如權利要求1所述的現場可編程門陣列數據緩存的管理方法, 其特徵在於寫數據時,所述起始地址是由所述數據存儲器通過預設 接口傳輸給所述寫操作才莫塊的。
3、 如權利要求2所述的現場可編程門陣列數據緩存的管理方法, 其特徵在於讀數據時,所述數據存儲器的讀地址是由所述讀操作模 塊根據所述起始地址,通過預設接口給出的。
4、 如權利要求3所述的現場可編程門陣列數據緩存的管理方法, 其特徵在於,讀數據時,所述步驟B通過以下步驟實現(1) 、所述讀操作模塊通過所述預設接口給出所述數據存儲器的讀 地址;(2) 、所述讀操作模塊根據所述讀地址進行一次讀操作;(3) 、根據所述分片數據的長度判斷所述分片數據是否已經全部讀 出,若已全部讀出,則結束流程,否則,將所述讀地址加l後回到步 驟(2)。
5、 如4又利要求1至4其中之一所述的現場可編程門陣列數據緩存 的管理方法,其特徵在於所述分片數據包括按固定長度劃分報文數 據得到的分片以及數據通道號、^^文開始標誌和^J艮文結束標誌。
全文摘要
本發明公開了一種現場可編程門陣列數據緩存的管理方法,寫數據時,首先,寫操作模塊將分片數據寫入數據存儲器,記錄所述分片數據的長度並獲得所述分片數據在所述數據存儲器中的起始地址;然後,所述寫操作模塊將所述分片數據的長度及其在所述數據存儲器中的起始地址寫入存儲控制器;讀數據時,首先,讀操作模塊讀取所述存儲控制器獲得分片數據的長度及其在所述數據存儲器中的起始地址;然後,所述讀操作模塊根據所述起始地址給出所述數據存儲器的讀地址後,讀取所述分片數據。本發明所述技術方案使得每個報文分片在數據存儲器中的位置得到明確的標識。
文檔編號G06F12/02GK101187896SQ20071012501
公開日2008年5月28日 申請日期2007年12月14日 優先權日2007年12月14日
發明者邱聖斌 申請人:中興通訊股份有限公司