專利名稱:一種雙模存儲(chǔ)的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù)領(lǐng)域,特別是涉及一種雙模存儲(chǔ)的方法和裝置。
背景技術(shù):
隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,世界各地的計(jì)算機(jī)系統(tǒng)都可以通過(guò)互聯(lián)網(wǎng)Internet 協(xié)議來(lái)進(jìn)行通信,運(yùn)行傳輸控制協(xié)議TCP/IP協(xié)議的網(wǎng)絡(luò)設(shè)備是計(jì)算機(jī)系統(tǒng)互 通互聯(lián)的基礎(chǔ)。傳統(tǒng)的網(wǎng)絡(luò)設(shè)備主要有兩種實(shí)現(xiàn)方法直接轉(zhuǎn)發(fā)型和存儲(chǔ)轉(zhuǎn) 發(fā)型。對(duì)于直接轉(zhuǎn)發(fā)型的網(wǎng)絡(luò)設(shè)備,對(duì)接收的以太網(wǎng)Ethernet報(bào)文不進(jìn)行存儲(chǔ), 而是邊接收邊分析報(bào)文頭然后進(jìn)行轉(zhuǎn)發(fā);對(duì)于存儲(chǔ)轉(zhuǎn)發(fā)型的網(wǎng)絡(luò)設(shè)備,對(duì)接 收的Ethernet報(bào)文先進(jìn)行存儲(chǔ),然后提取報(bào)文頭,并分析報(bào)文頭后進(jìn)行轉(zhuǎn)發(fā)。 現(xiàn)有的存儲(chǔ)轉(zhuǎn)發(fā)型網(wǎng)絡(luò)設(shè)備必須提供兩塊緩存, 一塊緩存用于存儲(chǔ)普通數(shù)據(jù) 包, 一塊緩存作為CPU (Central Processing Unit,中央處理單元)的主存。在 高帶寬的應(yīng)用場(chǎng)景下,為加快存儲(chǔ)轉(zhuǎn)發(fā)速度使用兩塊緩存是必要的,在低帶 寬的應(yīng)用場(chǎng)景下,對(duì)存儲(chǔ)速率要求不高,提供一塊緩存就可以滿足需求,然 后現(xiàn)有技術(shù)仍然會(huì)提供兩塊緩存,這樣會(huì)致使低帶寬需求情況下增加產(chǎn)品成 本。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供了 一種雙模存儲(chǔ)的方法和裝置,可以在兼顧高帶寬需 求的情況下,為低帶寬情況節(jié)約設(shè)備成本。
為達(dá)到上述目的,本發(fā)明實(shí)施例提供一種雙模存儲(chǔ)的方法,包括 根據(jù)應(yīng)用場(chǎng)景對(duì)數(shù)據(jù)存儲(chǔ)的帶寬模式進(jìn)行配置; 當(dāng)配置為高帶寬模式時(shí),使用兩塊存儲(chǔ)空間對(duì)接收的數(shù)據(jù)進(jìn)行緩存; 當(dāng)配置為低帶寬模式時(shí),使用一塊存儲(chǔ)空間對(duì)接收的數(shù)據(jù)進(jìn)行緩存。 本發(fā)明實(shí)施例還4是供了 一種雙模存儲(chǔ)的裝置,包括配置模塊,用于根據(jù)應(yīng)用場(chǎng)景對(duì)數(shù)據(jù)存儲(chǔ)的帶寬模式進(jìn)行配置;
處理模塊,用于根據(jù)所述配置模塊配置的帶寬模式,處理接收的信息。
與現(xiàn)有技術(shù)相比,本發(fā)明實(shí)施例的技術(shù)方案具有以下優(yōu)點(diǎn) 本發(fā)明實(shí)施例提供的方法可以根據(jù)不同的應(yīng)用需求提供不同的存儲(chǔ)方 案,對(duì)帶寬要求較高時(shí),配置成高帶寬模式,使用兩塊緩存進(jìn)行存儲(chǔ);對(duì) 帶寬的要求較低時(shí),配置成低帶寬模式,使用一塊緩存進(jìn)行存儲(chǔ)。
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí) 施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面 描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通^t支術(shù)人員來(lái)講, 在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實(shí)施例中雙模存儲(chǔ)的方法流程圖2為本發(fā)明又一實(shí)施例中雙模存儲(chǔ)的結(jié)構(gòu)框圖3為本發(fā)明又一實(shí)施例中普通以太包情況下雙模存儲(chǔ)的方法流程圖4為本發(fā)明實(shí)施例中CPU收包情況下雙模存儲(chǔ)的方法流程圖5為本發(fā)明實(shí)施例中雙模存儲(chǔ)的裝置示意圖。
具體實(shí)施例方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行 清楚、完整地描述,顯然,所描述的實(shí)施例僅是本發(fā)明一部分實(shí)施例,而不 是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出 創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
本發(fā)明實(shí)施例提供一種雙模存儲(chǔ)的方法和裝置,可以在兼顧高帶寬需求 的情況下,為低帶寬情況節(jié)約設(shè)備成本。
下面結(jié)合附圖和實(shí)施例,對(duì)本發(fā)明的具體實(shí)施方式
作進(jìn)一步詳細(xì)描述
本發(fā)明實(shí)施例提供了一種雙模存儲(chǔ)的方法,如圖l所示,包括
步驟s101、根據(jù)應(yīng)用場(chǎng)景對(duì)數(shù)據(jù)存儲(chǔ)的帶寬模式進(jìn)行配置。若配置為高
帶寬模式,執(zhí)行步驟sl02;若配置為低帶寬模式,執(zhí)行步驟sl03。
步驟s102、當(dāng)配置為高帶寬模式時(shí),使用兩塊存儲(chǔ)空間對(duì)接收的數(shù)據(jù)進(jìn) 行緩存。
步驟s103、當(dāng)配置為低帶寬才莫式時(shí),使用一塊存儲(chǔ)空間對(duì)接收的數(shù)據(jù)進(jìn) 行緩存。具體的,選擇低帶寬模式時(shí),將接收的信息寫(xiě)入存儲(chǔ)空間中的包緩 存空間,并經(jīng)過(guò)解析、轉(zhuǎn)發(fā)、處理等過(guò)程后,將緩存的信息從存儲(chǔ)空間中 的包緩存空間中讀出。
存儲(chǔ)轉(zhuǎn)發(fā)型網(wǎng)絡(luò)設(shè)備中具有的存儲(chǔ)空間可以根據(jù)應(yīng)用場(chǎng)景的不同而改 變,在帶寬要求較高的情況下(如商用)存儲(chǔ)轉(zhuǎn)發(fā)型網(wǎng)絡(luò)設(shè)備可以提供兩塊 存儲(chǔ)空間,而在帶寬要求較低的情況下(如家用)存儲(chǔ)轉(zhuǎn)發(fā)型網(wǎng)絡(luò)設(shè)備提供 一塊存儲(chǔ)空間就可以滿足用戶的需求。所以在低帶寬模式時(shí),可以僅提供一 塊存儲(chǔ)空間,并將該空間在邏輯上劃分為包緩存空間和CPU主存空間。
通過(guò)本發(fā)明實(shí)施例提供的雙模存儲(chǔ)的方法,根據(jù)不同的帶寬情況,對(duì)接 收的信息進(jìn)行存儲(chǔ),在兼顧高帶寬的情況下,對(duì)低帶寬情況只使用一塊存儲(chǔ) 空間,既滿足了緩存信息的需要,也滿足節(jié)省設(shè)備成本的需要。
當(dāng)對(duì)帶寬的要求較高時(shí),可以通過(guò)配置寄存器選擇使用高帶寬模式,此 時(shí)使用片外的兩塊緩存(Memory0和Memory 1 )進(jìn)行存儲(chǔ);當(dāng)對(duì)帶寬的要求 較低時(shí),可以通過(guò)配置寄存器選擇使用低帶寬模式,此時(shí)使用片外的一塊緩 存(Memoryl)進(jìn)行存儲(chǔ)。下面以低帶寬模式下對(duì)普通以太^^艮文的收發(fā)過(guò)程 為例,對(duì)本發(fā)明又一實(shí)施例提供的雙模存儲(chǔ)的方法進(jìn)行詳細(xì)的說(shuō)明,如圖2 所示,為實(shí)現(xiàn)本發(fā)明實(shí)施例提供的雙模存儲(chǔ)的結(jié)構(gòu)框圖,根據(jù)帶寬需要利用 配置寄存器選取低帶寬模式后,只提供一塊存儲(chǔ)空間用于緩存信息和處理數(shù) 據(jù),由圖可知,此時(shí)執(zhí)行以下步驟,如圖3所示,包括
步驟s301、直接存儲(chǔ)器訪問(wèn)接收RXDMA模塊從端口接收以太包,然后 將以太包寫(xiě)入存儲(chǔ)空間Memoryl中進(jìn)行緩存,同時(shí)提取報(bào)頭送給轉(zhuǎn)化引擎 Forward Engine模塊。此時(shí),Memoryl在邏輯上被分成連續(xù)的兩塊地址空 間, 一塊包緩存空間用于緩存以太包, 一塊CPU主存空間作為CPU的主 存,同時(shí)配置Memoryl中作為以太包緩存的地址空間的基地址。
步驟s302、 Forward Engine模塊對(duì)提取的報(bào)文頭進(jìn)行分析和轉(zhuǎn)發(fā)處理, 并將轉(zhuǎn)發(fā)結(jié)果送給直接存儲(chǔ)器訪問(wèn)發(fā)送TXDMA模塊。
步驟s303、 TXDMA才莫塊才艮據(jù)Engine Forward的處理結(jié)果將報(bào)文從 Memoryl中的包緩存空間讀出,并將其轉(zhuǎn)發(fā)到相應(yīng)的端口。
通過(guò)上述步驟在對(duì)帶寬要求不高的情況下配置為低帶寬模式,將接收 的信息存放在存儲(chǔ)空間中的包緩存空間,由于只使用 一塊存儲(chǔ)空間可以節(jié) 約設(shè)備的成本。
若對(duì)帶寬要求較高,則可以通過(guò)配置寄存器將帶寬模式配置為高帶寬模 式,此時(shí)使用片外的兩塊存儲(chǔ)空間(Memory0和Memory 1 )進(jìn)行信息處理, 下面以CPU的收包過(guò)程為例,對(duì)本發(fā)明實(shí)施例提供的雙模存儲(chǔ)的方法進(jìn)行詳 細(xì)的說(shuō)明,如圖4所示,包括
步驟s401、 RXDMA模塊從端口接收以太包,然后將以太包寫(xiě)入存儲(chǔ) 空間Memory0中進(jìn)行緩存,同時(shí)提取報(bào)文頭發(fā)送到Forward Engine ^f莫塊。
步驟s402、 Forward Engine模塊對(duì)提取的報(bào)文頭進(jìn)行分析和轉(zhuǎn)發(fā)處理, 并將轉(zhuǎn)發(fā)結(jié)果發(fā)送到TXDMA模塊。
步驟s403、 TXDMA模塊根據(jù)Engine Forward的處理結(jié)果將報(bào)文從 Memory0中讀出,并將其轉(zhuǎn)發(fā)到CPURTX。
步驟s404、 CPU向CPU收發(fā)包模塊CPURTX提供緩存基地址(在內(nèi) 核分配的CPU主存空間),CPURTX將接收的數(shù)據(jù)包發(fā)送到Memoryl的 CPU主存中,然后通知CPU已完成CPU的收包過(guò)程。
上述兩個(gè)實(shí)施例分別提供了低帶寬模式和高帶寬模式下對(duì)接收信息的 處理過(guò)程,根據(jù)帶寬要求對(duì)帶寬模式進(jìn)行配置,當(dāng)帶寬要求較高時(shí)配置為 高帶寬模式,此時(shí)提供兩個(gè)片外存儲(chǔ)空間;當(dāng)帶寬要求較低時(shí)配置為低帶 寬模式,此時(shí)提供一塊片外存儲(chǔ)空間。由此可以在兼顧高帶寬要求下,節(jié) 約低帶寬要求下的設(shè)備成本。
為了實(shí)現(xiàn)本發(fā)明實(shí)施例提供雙模存儲(chǔ)的方法,本發(fā)明實(shí)施例還提供了 一 種雙模存儲(chǔ)的裝置,如圖5所示,包括
配置模塊510,用于根據(jù)應(yīng)用場(chǎng)景對(duì)數(shù)據(jù)存儲(chǔ)的帶寬模式進(jìn)行配置;處理模塊520,用于根據(jù)所述配置模塊510配置的帶寬模式,處理接收的 信息。
該處理模塊520包括第一處理子模塊521,用于當(dāng)配置為高帶寬模式時(shí), 使用兩塊存儲(chǔ)空間對(duì)接收的數(shù)據(jù)進(jìn)行緩存;第二處理子模塊522,用于當(dāng)配置 為低帶寬模式時(shí),使用一塊存儲(chǔ)空間對(duì)接收的數(shù)據(jù)進(jìn)行緩存。
通過(guò)本發(fā)明實(shí)施例提供的雙模存儲(chǔ)的方法和裝置,通過(guò)配置選擇低帶 寬模式時(shí),讓充當(dāng)CPU主存的片外緩存在邏輯上劃分出 一塊地址空間充當(dāng) 數(shù)據(jù)包緩存的作用,從而可以在兼顧高帶寬需求的情況下,為低帶寬需求 情況下節(jié)約了設(shè)備成本。而且本發(fā)明實(shí)施例提供的方法和裝置并不限于存 儲(chǔ)轉(zhuǎn)發(fā)型的網(wǎng)絡(luò)設(shè)備開(kāi)發(fā),還可以用于IC開(kāi)發(fā)和FPGA/CPLD等可編程邏輯 門(mén)陣列的開(kāi)發(fā)。
通過(guò)以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā) 明可以通過(guò)硬件實(shí)現(xiàn),也可以借助軟件加必要的通用硬件平臺(tái)的方式來(lái)實(shí)現(xiàn) 基于這樣的理解,本發(fā)明的技術(shù)方案可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該軟 件產(chǎn)品可以存儲(chǔ)在一個(gè)非易失性存儲(chǔ)介質(zhì)(可以是CD-ROM, U盤(pán),移動(dòng)硬 盤(pán)等)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服 務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述的方法。
以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的 普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn) 和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視本發(fā)明的保護(hù)范圍。
權(quán)利要求
1、一種雙模存儲(chǔ)的方法,其特征在于,包括根據(jù)應(yīng)用場(chǎng)景對(duì)數(shù)據(jù)存儲(chǔ)的帶寬模式進(jìn)行配置;當(dāng)配置為高帶寬模式時(shí),使用兩塊存儲(chǔ)空間對(duì)接收的數(shù)據(jù)進(jìn)行緩存;當(dāng)配置為低帶寬模式時(shí),使用一塊存儲(chǔ)空間對(duì)接收的數(shù)據(jù)進(jìn)行緩存。
2、 如權(quán)利要求l所述的方法,其特征在于,所述根據(jù)應(yīng)用場(chǎng)景對(duì)數(shù)據(jù)存 儲(chǔ)的帶寬模式進(jìn)行配置,包括帶寬要求高時(shí),將帶寬模式配置為高帶寬模式; 帶寬要求低時(shí),將帶寬模式配置為低帶寬模式。
3、 如權(quán)利要求l所述的方法,其特征在于,低帶寬模式時(shí)所述一塊存儲(chǔ) 空間在邏輯上分為包緩存空間和中央處理單元CPU主存空間,所述包緩存空 間用于緩存接收的信息。
4、 一種雙模存儲(chǔ)的裝置,其特征在于,包括配置模塊,用于根據(jù)應(yīng)用場(chǎng)景對(duì)數(shù)據(jù)存儲(chǔ)的帶寬模式進(jìn)行配置; 處理模塊,用于根據(jù)所述配置模塊配置的帶寬模式,處理接收的信息。
5、 如權(quán)利要求4所述的裝置,其特征在于,所述處理模塊包括 第一處理子模塊,用于當(dāng)配置為高帶寬模式時(shí),使用兩塊存儲(chǔ)空間對(duì)接收的數(shù)據(jù)進(jìn)行緩存;第二處理子模塊,用于當(dāng)配置為低帶寬模式時(shí),使用一塊存儲(chǔ)空間對(duì)接 收的數(shù)據(jù)進(jìn)行緩存。
全文摘要
本發(fā)明實(shí)施例公開(kāi)了一種雙模存儲(chǔ)的方法和裝置,包括根據(jù)應(yīng)用場(chǎng)景對(duì)數(shù)據(jù)存儲(chǔ)的帶寬模式進(jìn)行配置;當(dāng)配置為高帶寬模式時(shí),使用兩塊存儲(chǔ)空間對(duì)接收的數(shù)據(jù)進(jìn)行緩存;當(dāng)配置為低帶寬模式時(shí),使用一塊存儲(chǔ)空間對(duì)接收的數(shù)據(jù)進(jìn)行緩存。該裝置包括配置模塊,用于根據(jù)應(yīng)用場(chǎng)景對(duì)數(shù)據(jù)存儲(chǔ)的帶寬模式進(jìn)行配置;處理模塊,用于根據(jù)所述配置模塊配置的帶寬模式,處理接收的信息。采用本發(fā)明實(shí)施例提供的方法和裝置,可以在兼顧高帶寬需求的情況下,為低帶寬的情況只提供一塊存儲(chǔ)空間,節(jié)約了設(shè)備的成本。
文檔編號(hào)H04L29/06GK101350821SQ20081014667
公開(kāi)日2009年1月21日 申請(qǐng)日期2008年9月4日 優(yōu)先權(quán)日2008年9月4日
發(fā)明者匡雄才, 宋奇剛, 朱偉偉, 李明月, 李瑞彬, 文 潘, 錦 王, 王俊華 申請(qǐng)人:華為技術(shù)有限公司