新聞中心

EEPW首頁(yè) > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 基于FPGA和IP Core的定制緩沖管理的實(shí)現(xiàn)

基于FPGA和IP Core的定制緩沖管理的實(shí)現(xiàn)

作者: 時(shí)間:2010-11-05 來(lái)源:網(wǎng)絡(luò) 收藏

  在PRAM中存在兩種鏈表形式,PQ List代表已經(jīng)存儲(chǔ)的數(shù)據(jù)包鏈表。為方便數(shù)據(jù)讀出,PQ List需要記錄數(shù)據(jù)包的第一個(gè)數(shù)據(jù)塊地址,即首指針Pq_Hptr,為方便新的數(shù)據(jù)寫入,PQ List需要記錄數(shù)據(jù)包的最后一個(gè)數(shù)據(jù)塊地址,即尾指針Pq_Tptr。PQ List同時(shí)需要記錄該鏈表的長(zhǎng)度作為調(diào)度模塊進(jìn)行調(diào)度的權(quán)值計(jì)算使用。

  Free List代表空閑的地址隊(duì)列。為方便地辨識(shí)、管理空閑的地址,避免地址沖突,在BM中將所有空閑的地址使用一個(gè)鏈表進(jìn)行管理。這個(gè)鏈表就是空閑地址隊(duì)列??臻e地址隊(duì)列依據(jù)系統(tǒng)需求的不同有著不同的形式,一般空閑地址隊(duì)列的構(gòu)成和PQ List相似,由空閑地址首指針Free_Hptr和空閑地址尾指針Free_Tptr構(gòu)成。BM模塊的所有操作都圍繞著空閑的地址隊(duì)列Free List進(jìn)行。

  基于BM模塊的數(shù)據(jù)流結(jié)構(gòu),BM模塊一般分為Write CONtrol模塊、Free List control模塊、Read Control模塊、PRAM Control模塊、BRAM Control模塊。BM的結(jié)構(gòu)如圖3所示。

圖3.jpg


圖3 BM結(jié)構(gòu)圖

  Write Control模塊從Free List模塊處得到空閑地址,向BRAM Control模塊提出寫請(qǐng)求,同時(shí)更新PRAM中的內(nèi)容。Free List control模塊負(fù)責(zé)管理空閑地址列表,提供Write Control模塊的寫B(tài)RAM地址及PRAM地址,回收經(jīng)Read Control模塊讀出數(shù)據(jù)塊后釋放的地址。Read Control模塊根據(jù)調(diào)度器的調(diào)度結(jié)果,通過(guò)BRAM Control模塊讀出需要發(fā)送的數(shù)據(jù)單元,同時(shí)將釋放的緩沖單元地址寫入空閑地址列表。PRAM Control模塊為外部SSRAM的控制模塊,可直接使用參考設(shè)計(jì)完成。BRAM Control模塊為外部DRAM控制模塊,一般分為Datapath與Controler兩個(gè)子模塊。Datapath模塊專門負(fù)責(zé)數(shù)據(jù)接口部分,完成DRAM接口的DQ、DQS處理以及相應(yīng)的延時(shí)調(diào)整,Controler模塊負(fù)責(zé)完成DRAM的控制需求。

  在BM模塊中,BRAM的帶寬與PRAM的帶寬一般為TM的瓶頸。PRAM的帶寬主要受限于訪問(wèn)的次數(shù),而BRAM的帶寬受限于接口帶寬。例如對(duì)于一個(gè)10G的TM,BRAM的有效帶寬必須保證20G,以接口利用率最差只能達(dá)到65%計(jì)算(考慮SEG模塊切分信元出現(xiàn)的N+1問(wèn)題),需要保證接口帶寬達(dá)到30G。使用64位的DRAM接口,接口速率不能低于500MB/s,這樣對(duì)Datapath模塊的設(shè)計(jì)提出了更高的要求。在實(shí)際系統(tǒng)中,BRAM主要使用DDR SDRAM、DDR II SDRAM。

  當(dāng)使用Stratix II ,BRAM使用DDR II SDRAM時(shí),測(cè)試表明DDR II SDRAM接口速率可達(dá)到800MB/s。在常規(guī)使用的情況下,DDR II SDRAM接口速率可保證達(dá)到667MB/s。對(duì)于一個(gè)64位的DRAM接口,接口速率可達(dá)到42.7GB/s,完全可以滿足一個(gè)10G的TM系統(tǒng)。

  BM模塊作為緩沖管理模塊,緩沖的基本單元為BCELL,基于對(duì)BCELL的管理,對(duì)于BM的操作都牽涉到空閑地址隊(duì)列的操作以及鏈表的操作。最基本的操作就是寫入操作和讀出操作。BM模塊的寫入操作由Write Control模塊發(fā)起。

  對(duì)于Write Control模塊,有數(shù)據(jù)單元需要寫入,首先向Free List模塊申請(qǐng)空閑地址,F(xiàn)ree List將首指針a給Write Control模塊,作為該數(shù)據(jù)塊的寫地址,同時(shí)讀出首指針a對(duì)應(yīng)在PRAM中的內(nèi)容,得到下一跳地址b,將下一跳地址b作為新的空閑地址首指針。



關(guān)鍵詞: FPGA Core 定制

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉