專利名稱:路由器流量管理芯片緩存管理的實(shí)現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種T比特路由器流量管理芯片緩存管理的實(shí)現(xiàn)方法。
背景技術(shù):
路由器作為互聯(lián)網(wǎng)的核心設(shè)備,隨著網(wǎng)絡(luò)容量與業(yè)務(wù)不斷地快速增長,其接口速率已經(jīng)迅速從OC-48(2.5GBPS)增加到OC-192(10GBPS)。而T比特路由器作為下一代網(wǎng)路設(shè)備的核心,必須能與接口速率匹配,實(shí)現(xiàn)OC-192(10GBPS)速率的線速處理。這對整個系統(tǒng)的轉(zhuǎn)發(fā)引擎,緩存管理以及隊列調(diào)度都有很高的要求。流量管理芯片作為T比特路由器的核心芯片,要實(shí)現(xiàn)對2.5GBPS~10GBPS數(shù)據(jù)的流量管理,其中包括報文的切片與重組,數(shù)據(jù)緩存,隊列管理與調(diào)度,流量整形等的管理,可見,流量管理芯片在整個路由器中處于核心地位。
流量管理芯片為了實(shí)現(xiàn)內(nèi)部報文的高速轉(zhuǎn)發(fā)處理,一般把數(shù)據(jù)報文切成固定長度的Cell(基本單元)進(jìn)行處理。流量管理芯片在上行方向(指從MAC/Framer器件到交換網(wǎng)方向)從MAC/Framer(介質(zhì)訪問控制器/成幀器)芯片接收數(shù)據(jù)報文,把報文切成固定長度的Cell(基本單元),通過緩存管理模塊把切片后的Cell(基本單元)數(shù)據(jù)寫入數(shù)據(jù)緩存中。在完成報文的協(xié)議處理后,根據(jù)隊列調(diào)度的結(jié)果,把Cell(基本單元)數(shù)據(jù)從數(shù)據(jù)緩存中讀出來,封裝成Cframe(通用交換網(wǎng)接口幀)發(fā)送給交換網(wǎng)。流量管理芯片在下行方向(指從交換網(wǎng)到MAC/Framer方向)接收從交換網(wǎng)發(fā)送過來的CFrame(通用交換網(wǎng)接口幀),剝掉CFrame(通用交換網(wǎng)接口幀)頭后,把Cell(基本單元)數(shù)據(jù)通過緩存管理模塊寫入到下行緩存中,并把Cell(基本單元)重組為完整的數(shù)據(jù)包,加入到下行隊列中。然后根據(jù)隊列調(diào)度結(jié)果把報文數(shù)據(jù)從下行緩存中讀出來,完成報文頭的修改后,發(fā)送給MAC/Framer(介質(zhì)訪問控制器/成幀器)芯片,完成數(shù)據(jù)報文的處理過程。在此過程中,流量管理芯片在上下行兩個處理方向上,都要進(jìn)行報文到數(shù)據(jù)緩存的寫入和讀出操作,這樣緩存管理模塊提供的緩存帶寬必須為數(shù)據(jù)帶寬的2倍。但是由于流量管理芯片對數(shù)據(jù)緩存的訪問是按照固定長度的Cell(基本單元)進(jìn)行的,緩存帶寬存在切片損失,對于報文長度為Cell(基本單元)長度加一的數(shù)據(jù)包,要實(shí)現(xiàn)報文的線速處理,緩存管理模塊提供的緩存帶寬必須為數(shù)據(jù)帶寬的4倍??梢姡瑪?shù)據(jù)流量的加大,對緩存帶寬的要求也更高。
但是現(xiàn)有的路由器的流量管理芯片一般是按照鏈表的方式來管理整個緩存空間,鏈表表項中需要存放指針和基本Cell(基本單元)的描述信息,整個鏈表存放在控制存儲器中,而一般路由器流量管理芯片支持的數(shù)據(jù)緩存空間為32M字節(jié),最小存儲單元為Cell(基本單元),每個Cell(基本單元)占64字節(jié)的情況下,其存儲單元就為512K個,這樣,控制存儲芯片內(nèi)的控制信息就多達(dá)512K條。而流量管理芯片必需使用外接SRAM(靜態(tài)存儲器)作為控制存儲,導(dǎo)致芯片IO管腳增多,芯片成本增大,并且芯片處理性能也受到影響。
發(fā)明內(nèi)容
針對上述普通路由器流量管理芯片緩存管理方法所存在的問題和不足,本發(fā)明的目的是提供一種兩級的緩存管理機(jī)制,將數(shù)據(jù)緩存空間分成適當(dāng)大小的存儲塊,將控制存儲模塊內(nèi)的控制信息直接控制存儲塊的緩存管理的實(shí)現(xiàn)方法。
本發(fā)明是這樣實(shí)現(xiàn)的一種路由器流量管理芯片緩存管理的實(shí)現(xiàn)方法,該方法包括以下步驟將數(shù)據(jù)緩存模塊分成適當(dāng)大小的存儲塊;在控制存儲模塊中設(shè)置相應(yīng)的控制信息,該控制信息與所述存儲塊一一對應(yīng);緩存管理模塊收到讀寫請求命令后,向控制存儲模塊發(fā)出相應(yīng)指令,控制存儲模塊按照所述控制信息在存儲塊模塊中讀寫數(shù)據(jù),并記錄讀寫情況,控制存儲模塊更新數(shù)據(jù)的控制信息,并將該更新的控制信息地址發(fā)送給緩存管理模塊。
進(jìn)一步地,所述數(shù)據(jù)由基本Cell組成,每個基本Cell的大小為64字節(jié)。
進(jìn)一步地,所述適當(dāng)大小的存儲塊具體為256字節(jié)的存儲塊,即4個基本Cell大小的字節(jié)。
進(jìn)一步地,所述控制信息包括存儲塊指針信息和基本Cell的控制信息。
進(jìn)一步地,緩存管理模塊按照鏈表的方式來對存儲塊進(jìn)行管理。當(dāng)緩存管理模塊收到空閑緩存的申請命令后,分配一個空閑存儲塊,該存儲塊可以存放4個基本Cell的數(shù)據(jù),該存儲塊所對應(yīng)的指針信息和4個基本Cell的控制信息被寫入控制存儲模塊。當(dāng)緩存管理模塊收到數(shù)據(jù)的讀出命令時,根據(jù)控制存儲模塊中的控制信息,把Cell數(shù)據(jù)從緩存中讀出,當(dāng)該存儲塊的四個Cell都從緩存中讀出后,該存儲塊被回收。
本發(fā)明將32M字節(jié)的數(shù)據(jù)緩存空間分為128K個存儲塊,每個存儲塊包含4個64字節(jié)的Cell(基本單元);在控制存儲模塊中設(shè)置相應(yīng)的控制信息,每個控制信息對應(yīng)于一個存儲塊。
采用本發(fā)明所提出的這種兩級緩存管理機(jī)制,可大大減少管理大量數(shù)據(jù)緩存所需要的控制存儲容量,這樣流量管理芯片可以使用芯片內(nèi)部SRAM(靜態(tài)存儲器)作為控制存儲,從而有效降低芯片成本,提高芯片處理性能。
下面結(jié)合附圖,對本發(fā)明作出詳細(xì)描述。
圖1為本發(fā)明的兩級緩存管理機(jī)制數(shù)據(jù)結(jié)構(gòu)示意圖。
具體實(shí)施例方式本發(fā)明所提出的流量管理芯片兩級緩存管理機(jī)制是這樣實(shí)現(xiàn)的將數(shù)據(jù)緩存模塊分成適當(dāng)大小的存儲塊;在控制存儲模塊中設(shè)置相應(yīng)的控制信息,該控制信息具體是存儲塊指針信息和基本Cell的控制信息,并與所述存儲塊一一對應(yīng);
緩存管理模塊收到讀寫請求命令后,向控制存儲模塊發(fā)出相應(yīng)指令,控制存儲模塊按照所述控制信息在存儲塊模塊中讀寫數(shù)據(jù),并記錄讀寫情況,控制存儲模塊更新數(shù)據(jù)的控制信息,并將該更新的控制信息地址發(fā)送給緩存管理模塊。
緩存管理模塊按照鏈表的方式來對存儲塊進(jìn)行管理;當(dāng)緩存管理模塊收到空閑緩存的申請命令后,分配一個空閑存儲塊,該存儲塊可以存放4個基本Cell的數(shù)據(jù),該存儲塊所對應(yīng)的指針信息和4個基本Cell的控制信息被寫入控制存儲模塊。當(dāng)緩存管理模塊收到數(shù)據(jù)的讀出命令時,根據(jù)控制存儲模塊中的控制信息,把Cell數(shù)據(jù)從緩存中讀出,當(dāng)該存儲塊的四個Cell都從緩存中讀出后,該存儲塊被回收。
如圖1所示,路由器流量管理芯片的數(shù)據(jù)緩存模塊一般使用DDR SDRAM,其容量為32M字節(jié),即圖中所示的Buffer Memory,整個緩存空間被分成128K個256字節(jié)的存儲塊,每個存儲塊包含4個64字節(jié)的Cell。通過設(shè)置控制存儲模塊,即圖中所示的Ctrl Memory,存放128K個存儲塊的控制信息,控制存儲模塊包含128K個存儲單元,與緩存空間中128K個存儲塊一一對應(yīng),存放每個存儲塊的指針信息和控制信息??刂拼鎯Φ拿總€單元與相應(yīng)的存儲塊構(gòu)成緩存控制塊BCB(Buffer Control Block)。每個緩存控制塊(BCB)包含該存儲塊的指針信息和對應(yīng)Cell的控制信息,其數(shù)據(jù)結(jié)構(gòu)定義如下表所示
緩存管理模塊按照上表所定義的數(shù)據(jù)結(jié)構(gòu),對整個緩存空間進(jìn)行管理。所有空閑的緩存空間在控制存儲中形成一個空閑BCB鏈表,鏈表的頭指針、尾指針和鏈表長度保存在圖1所示的空閑BCB表中(即Free BCB Table)。當(dāng)緩存管理模塊收到空閑緩存申請命令后,則分配空閑BCB表中的頭BCB,并根據(jù)該頭指針訪問控制存儲,得到該BCB的下一個存儲塊,用來更新空閑BCB表的頭指針。所分配出的空閑存儲塊,可以存放四個基本Cell數(shù)據(jù),其對應(yīng)的控制信息保存在控制存儲中。
已分配出的存儲塊,也在控制存儲中形成鏈表,鏈表的頭尾指針保存在隊列表中。根據(jù)隊列調(diào)度結(jié)果,存儲管理模塊根據(jù)隊頭指針訪問控制存儲,得到所要讀出數(shù)據(jù)的控制信息,當(dāng)一個存儲塊的四個Cell都從緩存中讀出來后,該存儲塊被回收,重新加入到空閑BCB鏈表中。
權(quán)利要求
1.一種路由器流量管理芯片緩存管理的實(shí)現(xiàn)方法,該方法包括以下步驟將數(shù)據(jù)緩存模塊分成適當(dāng)大小的存儲塊;在控制存儲模塊中設(shè)置控制信息,該控制信息與所述存儲塊一一對應(yīng),用于控制對存儲快的讀寫;緩存管理模塊收到讀寫請求命令后,向控制存儲模塊發(fā)出相應(yīng)指令,控制存儲模塊按照所述控制信息在存儲塊模塊中讀寫數(shù)據(jù),并記錄讀寫情況,控制存儲模塊更新數(shù)據(jù)的控制信息,并將該更新的控制信息地址發(fā)送給緩存管理模塊。
2.如權(quán)利要求1所述的路由器流量管理芯片緩存管理的實(shí)現(xiàn)方法,其特征在于,所述數(shù)據(jù)由基本Cell組成。
3.如權(quán)利要求2所述的路由器流量管理芯片緩存管理的實(shí)現(xiàn)方法,其特征在于,所述適當(dāng)大小的存儲塊具體為256字節(jié)的存儲塊,即4個基本Cell大小的字節(jié)。
4.如權(quán)利要求2或3所述的路由器流量管理芯片緩存管理的實(shí)現(xiàn)方法,其特征在于,所述控制信息包括存儲塊指針信息及其控制信息。
5.如權(quán)利要求4所述的路由器流量管理芯片緩存管理的實(shí)現(xiàn)方法,其特征在于,緩存管理模塊按照鏈表的方式進(jìn)行管理??臻e緩存資源的分配按照所劃分的存儲塊進(jìn)行,每個所分配的存儲塊可以保存多個Cell數(shù)據(jù),在控制存儲中存放每個存儲塊的指針信息和所保存Cell的控制信息。只有每個存儲塊中的所有Cell數(shù)據(jù),都從數(shù)據(jù)緩存中讀出來后,該存儲塊才能被回收。
全文摘要
本發(fā)明公開了一種路由器流量管理芯片緩存管理的實(shí)現(xiàn)方法。該方法包括將數(shù)據(jù)緩存模塊分成適當(dāng)大小的存儲塊;在控制存儲模塊中設(shè)置相應(yīng)的控制信息,該控制信息與所述存儲塊一一對應(yīng);緩存管理模塊收到讀寫請求命令后,向控制存儲模塊發(fā)出相應(yīng)指令,控制存儲模塊按照所述控制信息在存儲塊模塊中讀寫數(shù)據(jù),并記錄讀寫情況,控制存儲模塊更新數(shù)據(jù)的控制信息,并將該更新的控制信息地址發(fā)送給緩存管理模塊。緩存管理模塊按照鏈表的方式進(jìn)行管理。本發(fā)明可大大減少管理大量數(shù)據(jù)緩存所需要的控制存儲容量,從而有效降低芯片成本,提高芯片處理性能。
文檔編號G06F12/00GK1529242SQ03134730
公開日2004年9月15日 申請日期2003年9月29日 優(yōu)先權(quán)日2003年9月29日
發(fā)明者王新柱, 朱天文 申請人:港灣網(wǎng)絡(luò)有限公司