報文緩存方法、裝置及設(shè)備的制造方法
【專利摘要】本發(fā)明適用于通信技術(shù)領(lǐng)域,提供了一種報文緩存方法、裝置及設(shè)備,所述方法包括:根據(jù)報文流量的大小調(diào)整報文的緩沖通路,通過調(diào)整后的緩沖通路對輸入的報文進行緩存,并記錄所述報文的通路信息;獲取所述通路信息,從所述通路信息對應(yīng)的緩沖通路中讀取報文,并輸出所讀取的報文。本發(fā)明實現(xiàn)了根據(jù)報文流量的擁塞情況動態(tài)調(diào)用不同緩沖容量的緩沖通路,且通過記錄報文的通路信息保證了報文通過不同的緩沖通路傳輸時不會出現(xiàn)亂序;以及實現(xiàn)了緩沖存儲器Buffer共享讀寫帶寬,提高了緩沖存儲器Buffer的利用效率,有利于防止報文在流量擁塞的情況下丟包的情況。
【專利說明】
報文緩存方法、裝置及設(shè)備
技術(shù)領(lǐng)域
[0001]本發(fā)明適用于通信技術(shù)領(lǐng)域,提供了一種報文緩存方法、裝置及設(shè)備。
【背景技術(shù)】
[0002]在網(wǎng)絡(luò)處理器芯片中,報文流量具有波動性,在短時間內(nèi)會出現(xiàn)流量突發(fā),導致數(shù)據(jù)通道流量擁塞。為了保證報文不會因為流量擁塞而丟棄,需要對數(shù)據(jù)通道中的報文進行擁塞緩存?,F(xiàn)有技術(shù)一般為芯片中的每個數(shù)據(jù)通道添加一個BuffeH即緩存存儲器),Buffer的帶寬大于或等于數(shù)據(jù)通道的輸入帶寬,并且Buffer是串接在數(shù)據(jù)通道中的,如果數(shù)據(jù)通道中報文的輸入流量大于輸出流量時,報文就會在Buffer中緩存;當數(shù)據(jù)通道中報文的輸出流量大于輸入流量時,Buffer中緩存的報文就會清空。
[0003]然而,用作Buffer的芯片內(nèi)置RAM或者芯片外掛的DDR等存儲單元的容量和接口帶寬增長速率趕不上網(wǎng)絡(luò)流量的帶寬增長速率。當一個網(wǎng)絡(luò)處理器中包含很多需要添加Buffer的數(shù)據(jù)通道時,采用現(xiàn)有的將Buffer串接在數(shù)據(jù)通道中組成緩沖通路的方式,所需要的Buffer數(shù)量和Buffer的容量將難以接受;且不管是否發(fā)生擁塞,報文都需要經(jīng)過Buffer所在的緩沖通路,造成存儲空間的浪費。
【發(fā)明內(nèi)容】
[0004]鑒于此,本發(fā)明實施例提供一種報文緩存方法、裝置及設(shè)備,以根據(jù)報文流量大小動態(tài)調(diào)用不同緩沖容量的緩沖通路,提高了 Buffer的利用效率。
[0005]第一方面,提供了一種報文緩存方法,所述方法包括:
[0006]根據(jù)報文流量的大小調(diào)整報文的緩沖通路,通過調(diào)整后的緩沖通路對輸入的報文進行緩存,并記錄所述報文的通路信息;
[0007]獲取所述通路信息,從所述通路信息對應(yīng)的緩沖通路中讀取報文,并輸出所讀取的報文。
[0008]第二方面,提供了一種報文緩存裝置,所述裝置包括:
[0009]選通模塊,用于根據(jù)報文流量的大小調(diào)整報文的緩沖通路,通過調(diào)整后的緩沖通路對輸入的報文進行緩存;
[0010]記錄模塊,用于記錄所述報文的通路信息;
[0011]輸出模塊,用于獲取所述通路信息,從所述通路信息對應(yīng)的緩沖通路中讀取報文,并輸出所讀取的報文。
[0012]第三方面,提供了一種報文緩存設(shè)備,所述設(shè)備包括多個如上所述的報文緩存裝置,以及物理存儲設(shè)備和多通道控制單元;
[0013]所述報文緩存裝置中的第一緩存通路中的第一緩沖存儲器通過所述多通道控制單元與所述物理存儲設(shè)備連接。
[0014]與現(xiàn)有技術(shù)相比,本發(fā)明實施例增加設(shè)置不同容量的緩沖通路用于傳輸報文,并根據(jù)報文流量的大小調(diào)整報文的緩沖通路,通過調(diào)整后的緩沖通路對輸入的報文進行緩存,并記錄每一個報文的通路信息;以及根據(jù)所述通路信息從所述通路信息對應(yīng)的緩沖通路讀取報文,并輸出所讀取的報文;實現(xiàn)了根據(jù)報文流量的擁塞情況動態(tài)調(diào)用不同緩沖容量的緩沖通路;且通過記錄報文的通路信息保證了報文通過不同的緩沖通路傳輸時不會出現(xiàn)亂序。
【附圖說明】
[0015]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他附圖。
[0016]圖1是本發(fā)明實施例提供的報文緩存方法的實現(xiàn)流程圖;
[0017]圖2是本發(fā)明實施例提供的報文緩存方法中步驟SlOl的具體實現(xiàn)流程;
[0018]圖3是本發(fā)明實施例提供的報文緩存裝置的組成結(jié)構(gòu)圖;
[0019]圖4是本發(fā)明實施例提供的報文緩存設(shè)備的組成結(jié)構(gòu)圖;
[0020]圖5是本發(fā)明實施例提供的報文緩存設(shè)備的結(jié)構(gòu)示意圖。
【具體實施方式】
[0021]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進行進一步詳細說明。應(yīng)當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0022]本發(fā)明實施例增加設(shè)置不同容量的緩沖通路用于傳輸報文,并根據(jù)報文流量的大小調(diào)整報文的緩沖通路,通過調(diào)整后的緩沖通路對輸入的報文進行緩存,并記錄每一個報文的通路信息;以及根據(jù)所述通路信息從所述通路信息對應(yīng)的緩沖通路讀取報文,并輸出所讀取的報文;實現(xiàn)了根據(jù)報文流量的擁塞情況動態(tài)調(diào)用不同緩沖容量的緩沖通路;且通過記錄報文的通路信息保證了報文通過不同的緩沖通路傳輸時不會出現(xiàn)亂序。本發(fā)明實施例還提供了相應(yīng)的裝置,以下分別進行詳細的說明。
[0023]實施例一
[0024]圖1示出了本發(fā)明實施例一提供的報文緩存方法的實現(xiàn)流程,為了便于說明,僅不出了與本發(fā)明相關(guān)的部分。
[0025]如圖1所示,所述方法包括:
[0026]在步驟SlOl中,根據(jù)報文流量的大小調(diào)整報文的緩沖通路。
[0027]在本發(fā)明實施例中,所述緩沖通路包括第一緩沖通路和第二緩沖通路,所述第一緩沖通路中包括第一緩沖存儲器和第二緩沖存儲器,所述第二緩沖通路中包括第三緩沖存儲器,所述第一緩沖存儲器為Buffer,所述第二緩沖存儲器和第三緩沖存儲器為FIFO (先進先出的數(shù)據(jù)緩存器),所述第一緩沖存儲器的緩沖容量均大于所述第二緩沖存儲器和第三緩沖存儲器的緩沖容量,所述第二緩沖存儲器與所述第三緩沖存儲器的緩沖容量相同。
[0028]圖2示出了本發(fā)明實施例提供的報文緩存方法中步驟SlOl的具體實現(xiàn)流程。參閱圖2,步驟SlOl中包括:
[0029]在步驟S201中,網(wǎng)絡(luò)處理器初始化后,選通所述第二緩沖通路緩存報文。
[0030]在步驟S202中,在第二緩沖通路處于選通狀態(tài)時,若檢測到所述第三緩沖存儲器中的報文流量大于第一閾值,則斷開所述第二緩沖通路,接合所述第一緩沖通路。
[0031]在步驟S203中,在第一緩沖通路處于選通狀態(tài)時,若檢測到所述第一緩沖存儲器中的報文流量小于第二閾值且所述第三緩沖存儲器中不存在報文,則斷開所述第一緩沖通路,接合所述第二緩沖通路。
[0032]其中,所述第一閾值小于第三緩沖存儲器的緩沖容量且大于第三緩沖存儲器的緩沖容量的二分之一;所述第二閾值為所述第三緩沖存儲器的緩沖容量的二分之一。由于網(wǎng)絡(luò)處理器初始化后,報文傳輸一般沒有出現(xiàn)擁塞,默認選擇第二緩沖通路,即報文不經(jīng)過第一緩沖存儲器Buffer的緩存,由于第二緩沖通路中的第三緩沖存儲器的緩沖容量下,即報文直接傳輸過去。示例性地,當所述第三緩沖存儲器的緩沖容量為最大可同時緩存64個報文時,所述第一閾值可以為60,所述第二閾值可以為32。在報文的傳輸過程中,當在第二緩沖通路中的報文個數(shù)大于60時,表明第二緩沖通路的緩沖容量可能不適用于傳輸當前的報文流量,則切換為緩沖容量更大的第一緩沖通路;當在第一緩沖通路中的報文個數(shù)小于32時,表明第一緩沖通路中的數(shù)據(jù)傳輸流暢,則切換為緩沖容量較小的第二緩沖通路;從而實現(xiàn)了根據(jù)報文的流量大小動態(tài)調(diào)用不同緩沖容量的緩沖通路,防止數(shù)據(jù)通道因為流量擁塞而丟包,也使得報文在傳輸流暢時不必經(jīng)過緩沖容量大的緩沖通路,且設(shè)置作為切換標準的第一閾值和第二閾值,可以避免兩條緩沖通路切換過于頻繁而導致的數(shù)據(jù)通道報文輸出效率低的問題。
[0033]在步驟S102中,通過調(diào)整后的緩沖通路對輸入的報文進行緩存,并記錄所述報文的通路信息。
[0034]在本發(fā)明實施例中,當調(diào)整報文的緩沖通路后,報文將通過調(diào)整后的緩沖通路進行緩存及傳輸,同時,設(shè)置所述報文的通路信息為處于選通狀態(tài)的緩沖通路,記錄所述報文的通路信息。優(yōu)選地,本發(fā)明實施例中,所述通路信息的大小為Ibit (比特),當處于選通狀態(tài)的緩沖通路為第一緩沖通路時,設(shè)置報文的通路信息為I;當處于選通狀態(tài)的緩沖通路為第二緩沖通路時,設(shè)置報文的通路信息為O。
[0035]進一步地,每一個報文對應(yīng)一個通路信息,由于第一緩沖通路的緩沖容量很大,對應(yīng)的值為I的通路信息的數(shù)量也很大,本發(fā)明采用計數(shù)器來計算值為I的連續(xù)通路信息的個數(shù)。若所記錄的通路信息中,值為I的連續(xù)通路信息的個數(shù)滿足預(yù)設(shè)閾值且計數(shù)器的值為O時,則控制所述計數(shù)器開始計算值為I的連續(xù)通路信息的個數(shù)。所述計數(shù)器的值表示有多少個連續(xù)報文通過第一緩沖通路傳輸,值為O的通路信息仍通過FIFO存儲。通過使用計數(shù)器計數(shù)的方式代替直接使用先進先出序列FIFO存儲值為I的連續(xù)通路信息,能夠大規(guī)模地降低所需要的存儲容量。
[0036]在步驟S103中,獲取所述通路信息,從所述通路信息對應(yīng)的緩沖通路中讀取報文,并輸出所讀取的報文。
[0037]在報文的輸出端,依次地獲取所記錄的通路信息,獲得所述通路信息對應(yīng)的緩沖通路,從所述緩沖通路讀取報文,以恢復(fù)報文輸入時的順序,并輸出所讀取的報文。
[0038]其中,當通路信息的值為O時,從第三緩沖存儲器中讀取報文;當通路信息的值為I時,從第二緩沖存儲器中讀取報文。
[0039]當通路信息的值為I且前一個通路信息的值為O時,即從第二緩沖通路切換到第一緩沖通路時,若第三緩沖存儲器中存在報文,則先讀取第三緩沖存儲器中的報文,直至所述第二緩沖通路中的報文讀取完后,再讀取第二緩沖存儲器中(即第一緩沖通路中)的報文;當通路信息的值為O且前一個通路信息的值為I時,即從第一緩沖通路切換到第二緩沖通路時,若第二緩沖存儲器中存在報文,則先讀取第二緩沖存儲器中的報文直至所述第一緩沖通路中的報文讀取完后,再讀取第三緩沖存儲器中(即第二緩沖通路中)的報文。
[0040]上述步驟S103根據(jù)所記錄的通路信息的指示下實現(xiàn),確保了緩沖通路切換過程中報文輸出的順序不會改變,與報文輸入時的傳輸順序一致,不會出現(xiàn)亂序的現(xiàn)象。
[0041]本發(fā)明實施例增加設(shè)置不同容量的緩沖通路用于傳輸報文,并根據(jù)報文流量的大小調(diào)整報文的緩沖通路,通過調(diào)整后的緩沖通路對輸入的報文進行緩存,并記錄每一個報文的通路信息;以及根據(jù)所述通路信息從所述通路信息對應(yīng)的緩沖通路讀取報文,并輸出所讀取的報文;實現(xiàn)了根據(jù)報文流量的擁塞情況大小動態(tài)調(diào)用不同緩沖容量的緩沖通路;且通過記錄報文的通路信息保證了報文通過不同的緩沖通路傳輸時不會出現(xiàn)亂序。
[0042]實施例二
[0043]圖3示出了本發(fā)明實施例二提供的報文緩存裝置的組成結(jié)構(gòu),為了便于說明,僅不出了與本發(fā)明相關(guān)的部分。
[0044]如圖3所示,所述報文緩存裝置3包括:
[0045]選通模塊31,用于根據(jù)報文流量的大小調(diào)整報文的緩沖通路,通過調(diào)整后的緩沖通路對輸入的報文進行緩存。
[0046]記錄模塊32,用于記錄所述報文的通路信息。
[0047]輸出模塊33,用于獲取所述通路信息,從所述通路信息對應(yīng)的緩沖通路中讀取報文,并輸出所讀取的報文。
[0048]在本發(fā)明實施例中,報文從所述選通模塊31進入,從所述輸出模塊33輸出。所述選通模塊31內(nèi)設(shè)置有不同緩沖容量的緩沖通路,所述緩沖通路包括第一緩沖通路311和第二緩沖通路312 ;
[0049]所述第一緩沖通路311包括第一緩沖存儲器和第二緩沖存儲器,所述第二緩沖通路312包括第三緩沖存儲器,所述第一緩沖存儲器的緩沖容量均大于所述第二緩沖存儲器和第三緩沖存儲器的緩沖容量,所述第二緩沖存儲器與所述第三緩沖存儲器的緩沖容量相同。優(yōu)選地,所述第一緩沖存儲器為Buffer,所述第二緩沖存儲器和第三緩沖存儲器為FIFO (先進先出的數(shù)據(jù)緩存器)。
[0050]所述選通模塊31具體用于:
[0051]網(wǎng)絡(luò)處理器初始化后,選通所述第二緩沖通路緩存報文;
[0052]在第二緩沖通路處于選通狀態(tài)時,若檢測到所述第三緩沖存儲器中的報文流量大于第一閾值,則斷開所述第二緩沖通路,接合所述第一緩沖通路;
[0053]在第一緩沖通路處于選通狀態(tài)時,若檢測到所述第一緩沖存儲器中的報文流量小于第二閾值且所述第三緩沖存儲器中不存在報文,則斷開所述第一緩沖通路,接合所述第二緩沖通路;
[0054]其中,所述第一閾值小于第三緩沖存儲器的緩沖容量且大于第三緩沖存儲器的緩沖容量的二分之一;所述第二閾值為所述第三緩沖存儲器的緩沖容量的二分之一。從而實現(xiàn)了根據(jù)報文的流量大小動態(tài)調(diào)用不同緩沖容量的緩沖通路,防止數(shù)據(jù)通道因為流量擁塞而丟包,也使得報文在傳輸流暢時不必經(jīng)過緩沖容量大的緩沖通路,且設(shè)置作為切換標準的第一閾值和第二閾值,可以避免兩條緩沖通路切換過于頻繁而導致的數(shù)據(jù)通道報文輸出效率低的問題。
[0055]進一步地,所述記錄模塊32具體用于:
[0056]設(shè)置報文的通路信息為處于選通狀態(tài)的緩沖通路,記錄每一個報文的通路信息;
[0057]其中,所述通路信息的大小為I比特,當處于選通狀態(tài)的緩沖通路為第一緩沖通路時,設(shè)置報文的通路信息為I ;當處于選通狀態(tài)的緩沖通路為第二緩沖通路時,設(shè)置報文的通路信息為O ;
[0058]若所記錄的通路信息中,值為I的連續(xù)通路信息的個數(shù)滿足預(yù)設(shè)閾值且計數(shù)器的值為O時,則控制所述計數(shù)器開始計算值為I的連續(xù)通路信息的個數(shù)。
[0059]所述計數(shù)器的值表示有多少個連續(xù)報文通過第一緩沖通路傳輸,值為O的通路信息仍通過FIFO存儲。通路信息使用最小的信息表示單位以及通過使用計數(shù)器計數(shù)的方式代替直接使用先進先出序列FIFO存儲值為I的連續(xù)通路信息,能夠大規(guī)模地降低所需要的存儲容量。
[0060]進一步地,所述輸出模塊33具體用于:
[0061]當通路信息的值為O時,從所述第三緩沖存儲器中讀取報文;當通路信息的值為I時,從所述第二緩沖存儲器中讀取報文;
[0062]其中,當通路信息的值為I且前一個通路信息的值為O時,即從第二緩沖通路切換到第一緩沖通路時,讀取所述第三緩沖存儲器中的報文直至所述第二緩沖通路中的報文讀取完后,再讀取所述第二緩沖存儲器中(即第一緩沖通路中)的報文;
[0063]當通路信息的值為O且前一個通路信息的值為I時,即從第一緩沖通路切換到第二緩沖通路時,讀取所述第二緩沖存儲器中的報文直至所述第一緩沖通路中的報文讀取完后,再讀取所述第三緩沖存儲器中(即第二緩沖通路中)的報文。
[0064]上述輸出模塊33在所述記錄模塊31的記錄下實現(xiàn),確保了緩沖通路切換過程中報文輸出的順序不會改變,與報文輸入時的傳輸順序一致,不會出現(xiàn)亂序的現(xiàn)象。
[0065]本發(fā)明實施例增加設(shè)置不同容量的緩沖通路用于傳輸報文,并根據(jù)報文流量的大小調(diào)整報文的緩沖通路,通過調(diào)整后的緩沖通路對輸入的報文進行緩存,并記錄每一個報文的通路信息;以及根據(jù)所述通路信息從所述通路信息對應(yīng)的緩沖通路讀取報文,并輸出所讀取的報文;實現(xiàn)了根據(jù)報文流量的擁塞情況動態(tài)調(diào)用不同緩沖容量的緩沖通路;且通過記錄報文的通路信息保證了報文通過不同的緩沖通路傳輸時不會出現(xiàn)亂序。
[0066]實施例三
[0067]圖4示出了本發(fā)明實施例三提供的報文緩存設(shè)備的組成結(jié)構(gòu),為了便于說明,僅不出了與本發(fā)明相關(guān)的部分。
[0068]在本發(fā)明實施例中,所述設(shè)備包括多個如圖3實施例中所述的報文緩存裝置3,以及多通道控制單元2和物理存儲設(shè)備I。
[0069]所述報文緩存裝置3中的第一緩存通路31中的第一緩沖存儲器通過所述多通道控制單元2與所述物理存儲設(shè)備I連接。
[0070]進一步地,所述多通道控制單元包括調(diào)度器21和接口管理單元22。
[0071]在本發(fā)明實施例中,每一個報文緩存裝置3中的第一緩沖存儲器通過所述調(diào)度器21和所述管理接口單元22與所述物理存儲設(shè)備I連接。每一個報文緩存裝置3中的第一緩沖存儲器Buffer為虛擬的Buffer,所述第一緩沖存儲器Buffer沒有分配固定的接口帶寬和存儲空間容量,而是每一個報文存儲裝置中的第一緩沖存儲器共享同一物理存儲設(shè)備的接口帶寬和緩存空間。調(diào)度器21包括寫入和讀出方向上的數(shù)據(jù)通道,在寫入方向上,接收不同報文緩存裝置的第一緩沖存儲器寫入的報文,匯聚所接收到的報文,并為報文報上通道標識后輸入到所述物理存儲設(shè)備I ;在讀出方向上,依次按順序讀出物理存儲設(shè)備I中的報文,并根據(jù)通道標識將所述報文分發(fā)至對應(yīng)的報文緩存裝置中的第一緩沖存儲器進行輸出。所述通道標識表明所述報文通過哪個報文緩存裝置寫入的。
[0072]所述管理接口單元22接收調(diào)度器21的報文寫入指令和報文讀出指令,根據(jù)所述物理存儲設(shè)備I的寫入方向和讀出方向上報文流量的大小,調(diào)整所述物理存儲設(shè)備I的寫入帶寬和讀出帶寬。在本發(fā)明實施例中,所述管理接口單元22根據(jù)調(diào)度器21中寫入方向上的數(shù)據(jù)通道中報文流量的大小,優(yōu)先將物理存儲設(shè)備I的接口帶寬用作寫帶寬,剩余的物理存儲設(shè)備帶寬用作讀帶寬。示例性地,當調(diào)度器中寫入方向上的報文流量小于物理存儲設(shè)備的接口帶寬的二分之一,則將小部分物理存儲設(shè)備的接口帶寬用作讀帶寬;當調(diào)度器中寫入方向上的報文流量大于物理存儲設(shè)備的接口帶寬的二分之一,則壓縮讀帶寬,將部分讀帶寬轉(zhuǎn)換為寫帶寬,以保證足夠的寫帶寬。
[0073]優(yōu)選地,所述物理存儲設(shè)備可以為雙倍速率同步動態(tài)隨機存儲器DDR或者網(wǎng)絡(luò)處理器內(nèi)置的RAM。
[0074]本發(fā)明實施例結(jié)合多個報文緩存裝置,且每一個報文緩存裝置中的第一緩沖通路中Buffer并未分配固定的接口帶寬和存儲空間容量,而是根據(jù)需要在同一物理存儲設(shè)備中申請一定的存儲空間,通過多通道控制單元根據(jù)第一緩沖存儲器所寫入報文的流量大小動態(tài)調(diào)整物理存儲設(shè)備的接口帶寬,實現(xiàn)了緩沖存儲器Buffer共享讀寫帶寬,降低了緩沖存儲器Buffer對物理存儲設(shè)備接口帶寬的要求,提高了緩沖存儲器Buffer的利用效率;且在出現(xiàn)報文流量擁塞的情況下,通過將物理存儲設(shè)備中的讀帶寬轉(zhuǎn)換成寫帶寬,有利于防止丟包的情況。
[0075]參閱圖5,本發(fā)明實施例提供的報文緩存設(shè)備的結(jié)構(gòu)示意圖。所述報文緩存設(shè)備包括圖3實施例中所述的報文緩存裝置3,以及物理存儲設(shè)備1、多通道控制單元2。
[0076]對于所述報文緩存裝置3,每一個報文緩存裝置3中的選通模塊31包括第一緩沖通路311、第二緩沖通路312、選通單元313,所述輸出模塊33包括合并單元331,所述第一緩沖通路311包括第一緩沖存儲器3111和第二緩沖存儲器3112,所述第一緩沖存儲器3111的輸入端與選通單元313連接,輸出端與所述第二緩沖存儲器3112的輸入端連接,所述第二緩沖存儲器3112的輸出端與所述合并單元331連接。所述第二緩沖通路312包括第三緩沖存儲器3121,所述第三緩沖存儲器3121的輸入端與所述選通單元313連接,輸出端與所述合并單元331連接。其中,所述第一緩沖存儲器3111為Buffer,且為虛擬Buffer,這里的虛擬是指所述第一緩沖存儲器Buffer沒有分配固定的緩存空間和緩存帶寬,所述第一緩沖存儲器Buffer的容量大,能夠長時間地容忍流量擁塞導致的報文堆積。所述第二緩沖存儲器3112和所述第三緩沖存儲器3121為FIFO (—種先進先出的數(shù)據(jù)緩沖存儲器),容量較小,僅用于緩存短時間突發(fā)導致的報文堆積。所述第二緩存存儲器3112和第三緩沖存儲器3121可以為規(guī)格相同的FIFO,即讀寫帶寬和容量相同的緩沖存儲器FIFO。本發(fā)明通過在所述第一緩沖存儲器3111后接一個第二緩沖存儲器3112,用于接收從第一緩沖存儲器Buffer中預(yù)讀取的報文,以便于合并模塊331進行調(diào)度。
[0077]在本發(fā)明實施例中,網(wǎng)絡(luò)處理器初始化后,報文傳輸一般沒有出現(xiàn)擁塞,默認選擇第二緩沖通路312。在第二緩沖通路312處于工作狀態(tài)時,若所述選通單元313檢測到所述第三緩沖存儲器3121中的報文流量大于第一閾值,則斷開第二緩沖通路312,接合第一緩沖通路311。在第一緩沖通路311處于工作狀態(tài)時,若所述選通單元313檢測到所述第一緩沖存儲器3111中的報文流量小于第二閾值且所述第三緩沖存儲器3121中不存在報文,則斷開第一緩沖通路311,接合第二緩沖通路312。其中,所述第一閾值小于第三緩沖存儲器的緩沖容量且大于第三緩沖存儲器的緩沖容量的二分之一;所述第二閾值為所述第三緩沖存儲器的緩沖容量的二分之一;從而實現(xiàn)了根據(jù)報文的流量大小動態(tài)調(diào)用不同緩沖容量的緩沖通路,防止數(shù)據(jù)通道因為流量擁塞而丟包,且可以避免兩條緩沖通路切換過于頻繁而導致的數(shù)據(jù)通道報文輸出效率低的問題。
[0078]示例性地,若第三緩沖存儲器可以緩存64個報文,所述第一閾值可以為60,所述第二閾值可以為32。在第二緩沖通路處于工作狀態(tài)時,當所述第三緩沖存儲器中包含的報文個數(shù)大于60時,則斷開第二緩沖通路,接合第一緩沖通路,后續(xù)報文將從第一緩沖通路進行傳輸。當?shù)谝痪彌_通路處于工作狀態(tài)時,若在所述第一緩沖存儲器中緩存的報文個數(shù)小于32且第三緩沖存儲器所緩存的報文為空時,則斷開第一緩沖通路,接合第二緩沖通路,后續(xù)報文將從所述第二緩沖通路進行傳輸。
[0079]進一步地,每一個報文均對應(yīng)一個通路信息,所述通路信息用以記錄所述報文是通過第一緩沖通路還是通過第二緩沖通路進行傳輸。在本發(fā)明中,使用I比特表示報文選擇的緩沖通路,即通路信息的大小為lbit。當報文通過第一緩沖通路傳輸時,所述報文的通路信息為1,當報文通過第二緩沖通路傳輸時,所述報文的通路信息為O。作為本發(fā)明的一個示例,所述記錄模塊32包括:
[0080]第四緩沖存儲器321、計數(shù)器322以及第五緩沖存儲器323。
[0081]所述第四緩沖存儲器321的輸入端與所述選通單元313連接、第一輸出端與所述第五緩沖存儲器323的第一輸入端連接、第二輸出端與所述計數(shù)器322連接,用于從所述選通單元313中獲取每一個報文的通路信息,將報文的通路信息傳輸至所述第五緩沖存儲器323,以及在值為I的連續(xù)通路信息的個數(shù)滿足預(yù)設(shè)閾值且計數(shù)器322的值為O時,控制所述計數(shù)器322開始計算值為I的連續(xù)通路信息的個數(shù)。
[0082]所述計數(shù)器322的輸入端與所述第四緩沖存儲器321的第二輸出端連接、輸出端與所述第五緩沖存儲器323的第二輸入端連接,用于計算值為I的連續(xù)通路信息的個數(shù)以及將值為I的通路信息傳輸至所述第五緩沖存儲器323。
[0083]所述第五緩沖存儲器323的輸出端與所述合并單元331連接,用于將報文的通路信息傳輸給所述合并單元331。
[0084]作為本發(fā)明的一個示例,所述通路記錄模塊32中的第四緩沖存儲器321和第五緩沖存儲器323為位寬為I容量為最大可存儲64個報文的FIFO,所述計數(shù)器322的計數(shù)范圍足夠大,比如0-1000,000, 000,根據(jù)第一緩沖通路311中第一緩沖存儲器3111的緩沖容量決定。選通單元313根據(jù)報文的流量大小選通第一緩沖通路或者第二緩沖通路傳輸報文并將報文對應(yīng)的通路信息輸入到所述記錄模塊32,即輸入到第四緩沖存儲器321,然后按預(yù)設(shè)邏輯將所述報文的通路信息從所述第四緩沖存儲器321中讀出,輸入到第五緩沖存儲器323或者計數(shù)器322中。第四緩沖存儲器321中讀出的通路信息在初始化后默認輸入到第五緩沖存儲器323 ;當?shù)谒木彌_存儲器321讀出的通路信息中,值為I的連續(xù)通路信息的個數(shù)滿足預(yù)設(shè)閾值,第四緩沖存儲器321中沒有更多的通路信息或者下一個通路信息的值仍為I且計數(shù)器322的值為O,則第四緩沖存儲器321后續(xù)輸出的通路信息不再直接輸出到第五緩沖存儲器323,而是每輸出一個值為I的通路信息,控制計數(shù)器322的值加1,計數(shù)器322的值表示了接收到多少個值為I的通路信息,即有多少個連續(xù)報文通過第一緩沖通路傳輸。計數(shù)器322再根據(jù)第五緩沖存儲器323中剩余容量的大小(或者第五緩沖存儲器中包含的通道信息的數(shù)量),控制值為I的通路信息逐一傳輸?shù)降谖寰彌_存儲器,每傳輸一個通路信息,則計數(shù)值減I。本發(fā)明針對通過第一緩沖通路傳輸?shù)膱笪牡耐沸畔?第一緩沖通路的緩沖容量大,直接使用FIFO存儲每個值為I的報文的通路信息,需要FIFO的容量非常大),采用計數(shù)器來計算值為I的通路信息的個數(shù),能夠大規(guī)模地降低FIFO的容量。進一步地,本發(fā)明還設(shè)置在值為I的連續(xù)通路信息的個數(shù)滿足預(yù)設(shè)閾值且計數(shù)器的值為O時才進行計數(shù),所述預(yù)設(shè)閾值可以為16,即傳輸?shù)膱笪闹谐掷m(xù)16個報文通過第一緩沖通路進行傳輸才開始計數(shù),能夠有效地降低計數(shù)器啟用和關(guān)閉過于頻繁時對傳輸效率的影響。
[0085]在本發(fā)明實施例中,所述合并單元331與所述記錄模塊32的第五緩沖存儲器323連接,用于接收第五緩沖存儲器323傳輸過來的通路信息,讀取所述通路信息所對應(yīng)的緩沖通路輸出的報文,以恢復(fù)報文的順序,并輸出所讀取的報文。具體地,所述合并單元331用于:
[0086]當通路信息的值為O時,從所述第三緩沖存儲器中讀取報文;當通路信息的值為I時,從所述第二緩沖存儲器中讀取報文;
[0087]其中,當通路信息的值為I且前一個通路信息的值為O時,即從第二緩沖通路切換到第一緩沖通路時,讀取所述第三緩沖存儲器中的報文直至所述第二緩沖通路中的報文讀取完后,再讀取所述第二緩沖存儲器中(即第一緩沖通路中)的報文;
[0088]當通路信息的值為O且前一個通路信息的值為I時,即從第一緩沖通路切換到第二緩沖通路時,讀取所述第二緩沖存儲器中的報文直至所述第一緩沖通路中的報文讀取完后,再讀取所述第三緩沖存儲器中(即第二緩沖通路中)的報文。
[0089]可見,所述合并單元331在記錄模塊32的指示下對報文進行合并,確保了緩沖通路的切換過程中報文輸出的順序是正確的,不會出現(xiàn)亂序。
[0090]在本發(fā)明實施例中,所述多通道控制單元2還包括:調(diào)度器21、接口管理單元22 ;
[0091]所述調(diào)度器21的輸入端和輸出端均與每一個第一緩沖通路311的第一緩沖存儲器3111連接,所述調(diào)度器21還與所述接口管理單元22連接,所述接口管理單元22與所述物理存儲設(shè)備I連接;
[0092]所述調(diào)度器21在寫入方向上接收不同報文緩存裝置的第一緩沖存儲器寫入的報文并為所述報文添加通道標識,將報文存儲值物理存儲設(shè)備;以及在讀出方向上將從物理存儲設(shè)備讀出的報文按照通道標識分發(fā)至所述通道標識對應(yīng)的報文緩存裝置。
[0093]所述管理接口單元22接收調(diào)度器21的報文寫入指令和報文讀出指令,接收根據(jù)所述物理存儲設(shè)備的寫入方向和讀出方向上報文流量的大小,調(diào)整所述物理存儲設(shè)備的寫帶寬和讀帶寬。
[0094]在本發(fā)明實施例中,所述多通道控制單元2可以接入多個報文緩存裝置3中的第一緩沖存儲器3111,所接入的第一緩沖存儲器3111的數(shù)量取決于物理存儲設(shè)備的接口讀寫總帶寬和多個第一緩沖存儲器3111讀寫帶寬的總和:多個第一緩沖存儲器3111讀寫帶寬的總和小于物理存儲設(shè)備I的讀寫帶寬總和。
[0095]需要說明的是,在本發(fā)明實施例中,所述調(diào)度器21由寫入和讀出兩個方向的數(shù)據(jù)通道組成,寫入通道帶寬等于所有接入的第一緩沖存儲器3111的寫帶寬總和,讀出通道帶寬等于所有接入的第一緩沖存儲器3111的讀帶寬總和。在寫入方向上,調(diào)度器21的主要功能是將多個第一緩沖存儲器3111的流量匯聚,并為每一個報文打上通道標識,輸入到物理存儲設(shè)備。其中,每一個報文緩存裝置3的第一緩沖通路311對應(yīng)一個標識,所述通路標識為所述報文經(jīng)過的報文緩存裝置的第一緩沖通路對應(yīng)的標識。在讀出方向上,調(diào)度器21根據(jù)每一個報文緩存裝置輸出方向的反壓狀態(tài)(即根據(jù)第二緩沖存儲器中的報文個數(shù))以及物理存儲設(shè)備I的接口帶寬狀態(tài),采用輪詢的方式,從物理存儲設(shè)備中讀出報文,并按照報文的通路標識將所述報文分發(fā)到通路標識對應(yīng)的報文緩存裝置的第一緩沖存儲器中,經(jīng)第一緩沖存儲器和第二緩沖存儲器輸出。
[0096]所述接口管理單元22與物理存儲設(shè)備I對接,可以動態(tài)分配物理存儲設(shè)備的讀寫帶寬。在本發(fā)明實施例中,物理存儲設(shè)備的總接口帶寬小于調(diào)度器的總接口帶寬,接口管理單元22根據(jù)調(diào)度器的寫入方向上的通道流量大小,優(yōu)先分配物理存儲設(shè)備的接口帶寬作為寫入帶寬,剩下的物理存儲設(shè)備的接口帶寬作為讀出帶寬。從而優(yōu)先保證了寫入方向上的帶寬,防止丟包的情況。
[0097]需要說明的是,本發(fā)明實施例中所述的物理存儲設(shè)備I為讀寫帶寬可分配的存儲單元,可以為網(wǎng)絡(luò)處理器外置的存儲芯片(如DDR、PLDRAM等),也可以為網(wǎng)絡(luò)處理器內(nèi)置的RAM ;優(yōu)選為雙倍速率同步動態(tài)隨機存儲器DDR或者內(nèi)置RAM。
[0098]本領(lǐng)域普通技術(shù)人員可以意識到,結(jié)合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、或者計算機軟件和電子硬件的結(jié)合來實現(xiàn)。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計約束條件。專業(yè)技術(shù)人員可以對每個特定的應(yīng)用來使用不同方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應(yīng)認為超出本發(fā)明的范圍。
[0099]所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡潔,上述描述的裝置和單元的具體工作過程,可以參考前述方法實施例中的對應(yīng)過程,在此不再贅述。
[0100]在本申請所提供的幾個實施例中,應(yīng)該理解到,所揭露的裝置和方法,可以通過其它的方式實現(xiàn)。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。
[0101]所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。
[0102]另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。
[0103]所述功能如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、移動硬盤、只讀存儲器(ROM,Read-Only Memory)、隨機存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
[0104]以上所述,僅為本發(fā)明的【具體實施方式】,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應(yīng)所述以權(quán)利要求的保護范圍為準。
【主權(quán)項】
1.一種報文緩存方法,其特征在于,所述方法包括: 根據(jù)報文流量的大小調(diào)整報文的緩沖通路,通過調(diào)整后的緩沖通路對輸入的報文進行緩存,并記錄所述報文的通路信息; 獲取所述通路信息,從所述通路信息對應(yīng)的緩沖通路中讀取報文,并輸出所讀取的報文。2.如權(quán)利要求1所述的報文緩存方法,其特征在于,所述緩沖通路包括第一緩沖通路和第二緩沖通路; 所述第一緩沖通路中包括第一緩沖存儲器和第二緩沖存儲器,所述第二緩沖通路中包括第三緩沖存儲器; 所述第一緩沖存儲器為Buffer,所述第二緩沖存儲器和第三緩沖存儲器為FIFO,所述第一緩沖存儲器的緩沖容量均大于所述第二緩沖存儲器和第三緩沖存儲器的緩沖容量,所述第二緩沖存儲器與所述第三緩沖存儲器的緩沖容量相同。3.如權(quán)利要求2所述的報文緩存方法,其特征在于,所述根據(jù)報文流量的大小調(diào)整報文的緩沖通路包括: 在網(wǎng)絡(luò)處理器初始化后,選通所述第二緩沖通路緩存報文; 在第二緩沖通路處于選通狀態(tài)時,若檢測到所述第三緩沖存儲器中的報文流量大于第一閾值,則斷開所述第二緩沖通路,接合所述第一緩沖通路; 在第一緩沖通路處于選通狀態(tài)時,若檢測到所述第一緩沖存儲器中的報文流量小于第二閾值且所述第三緩沖存儲器中不存在報文,則斷開所述第一緩沖通路,接合所述第二緩沖通路。4.如權(quán)利要求3所述的緩存裝置,其特征在于,所述第一閾值小于第三緩沖存儲器的緩沖容量且大于第三緩沖存儲器的緩沖容量的二分之一; 所述第二閾值為所述第三緩沖存儲器的緩沖容量的二分之一。5.如權(quán)利要求3或4所述的報文緩存方法,其特征在于,所述記錄所述報文的通路信息包括: 設(shè)置報文的通路信息為處于選通狀態(tài)的緩沖通路,記錄每一個報文的通路信息; 其中,所述通路信息的大小為lbit,當處于選通狀態(tài)的緩沖通路為第一緩沖通路時,設(shè)置報文的通路信息為I ;當處于選通狀態(tài)的緩沖通路為第二緩沖通路時,設(shè)置報文的通路信息為O。6.如權(quán)利要求5所述的報文緩存方法,其特征在于,所述記錄每一個報文的通路信息還包括: 若所記錄的通路信息中,值為I的連續(xù)通路信息的個數(shù)滿足預(yù)設(shè)閾值且計數(shù)器的值為O時,控制所述計數(shù)器開始計算值為I的連續(xù)通路信息的個數(shù)。7.如權(quán)利要求5所述的報文緩存方法,其特征在于,所述從所述通路信息對應(yīng)的緩沖通路中讀取報文包括: 當通路信息的值為O時,從所述第三緩沖存儲器中讀取報文;當通路信息的值為I時,從所述第二緩沖存儲器中讀取報文。8.一種報文緩存裝置,其特征在于,所述裝置包括: 選通模塊,用于根據(jù)報文流量的大小調(diào)整報文的緩沖通路,通過調(diào)整后的緩沖通路對輸入的報文進行緩存; 記錄模塊,用于記錄所述報文的通路信息; 輸出模塊,用于獲取所述通路信息,從所述通路信息對應(yīng)的緩沖通路中讀取報文,并輸出所讀取的報文。9.如權(quán)利要求8所述的報文緩存裝置,其特征在于,所述選通模塊包括緩沖通路,所述緩沖通路包括第一緩沖通路和第二緩沖通路; 所述第一緩沖通路中包括第一緩沖存儲器和第二緩沖存儲器,所述第二緩沖通路中包括第三緩沖存儲器; 所述第一緩沖存儲器為Buffer,所述第二緩沖存儲器和第三緩沖存儲器為FIFO,所述第一緩沖存儲器的緩沖容量均大于所述第二緩沖存儲器和第三緩沖存儲器的緩沖容量,所述第二緩沖存儲器與所述第三緩沖存儲器的緩沖容量相同。 所述選通模塊具體用于: 在網(wǎng)絡(luò)處理器初始化后,選通所述第二緩沖通路緩存報文; 在第二緩沖通路處于選通狀態(tài)時,若檢測到所述第三緩沖存儲器中的報文流量大于第一閾值,則斷開所述第二緩沖通路,接合所述第一緩沖通路; 在第一緩沖通路處于選通狀態(tài)時,若檢測到所述第一緩沖存儲器中的報文流量小于第二閾值且所述第三緩沖存儲器中不存在報文,則斷開所述第一緩沖通路,接合所述第二緩沖通路; 所述第一閾值小于第三緩沖存儲器的緩沖容量且大于第三緩沖存儲器的緩沖容量的二分之一; 所述第二閾值為所述第三緩沖存儲器的緩沖容量的二分之一。10.如權(quán)利要求9所述的報文緩存裝置,其特征在于,所述記錄模塊具體用于: 設(shè)置報文的通路信息為處于選通狀態(tài)的緩沖通路,記錄每一個報文的通路信息; 其中,所述通路信息的大小為lbit,當處于選通狀態(tài)的緩沖通路為第一緩沖通路時,設(shè)置報文的通路信息為I;當處于選通狀態(tài)的緩沖通路為第二緩沖通路時,設(shè)置報文的通路信息為O ; 若所記錄的通路信息中,值為I的連續(xù)通路信息的個數(shù)滿足預(yù)設(shè)閾值且計數(shù)器的值為O時,控制所述計數(shù)器開始計算值為I的連續(xù)通路信息的個數(shù)。11.如權(quán)利要求10所述的報文緩存裝置,其特征在于,所述輸出模塊具體用于: 當通路信息的值為O時,從第三緩沖存儲器中讀取報文;當通路信息的值為I時,從第二緩沖存儲器中讀取報文。12.一種報文緩存設(shè)備,其特征在于,所述設(shè)備包括多個如權(quán)利要求8至11任一項所述的報文緩存裝置,以及物理存儲設(shè)備和多通道控制單元; 所述報文緩存裝置中的第一緩存通路中的第一緩沖存儲器通過所述多通道控制單元與所述物理存儲設(shè)備連接。13.如權(quán)利要求12所述的報文緩存設(shè)備,其特征在于,所述多通道控制單元包括調(diào)度器和接口管理單元; 所述報文緩存裝置中的第一緩沖存儲器通過所述調(diào)度器和所述管理接口單元與所述物理存儲設(shè)備連接; 所述調(diào)度器接收不同報文緩存裝置的第一緩沖存儲器寫入的報文并為所述報文添加通道標識;以及將從物理存儲設(shè)備讀出的報文按照通道標識分發(fā)至所述通道標識對應(yīng)的報文緩存裝置; 所述管理接口單元接收調(diào)度器的報文寫入指令和報文讀出指令,接收根據(jù)所述物理存儲設(shè)備的寫入方向和讀出方向上報文流量的大小,調(diào)整所述物理存儲設(shè)備的寫帶寬和讀帶寬。14.如權(quán)利要求13所述的報文緩存設(shè)備,其特征在于,所述物理存儲設(shè)備為雙倍速率同步動態(tài)隨機存儲器DDR或者網(wǎng)絡(luò)處理器內(nèi)置的RAM。
【文檔編號】H04L12/861GK106027413SQ201510474348
【公開日】2016年10月12日
【申請日】2015年8月5日
【發(fā)明人】周毅華
【申請人】深圳市恒揚數(shù)據(jù)股份有限公司