專利名稱:一種路由交換設(shè)備及其數(shù)據(jù)緩存的方法
技術(shù)領(lǐng)域:
本發(fā)明屬于網(wǎng)絡(luò)通信領(lǐng)域,具體地說是一種路由交換設(shè)備及其數(shù)據(jù)緩存 的方法。
背景技術(shù):
在路由交換設(shè)備中,通常將數(shù)據(jù)包按照一定的規(guī)則拆分成多個數(shù)據(jù)片, 在數(shù)據(jù)包輸出時,再將被拆分成的多個數(shù)據(jù)片進(jìn)行組合,恢復(fù)成原來的數(shù)據(jù) 包。數(shù)據(jù)包拆分的數(shù)據(jù)片長度應(yīng)該與數(shù)據(jù)包最小長度、內(nèi)部包處理速度、存 儲器數(shù)據(jù)位寬等因素有關(guān)。隊列保存通常選用不同隊列存儲區(qū)域動態(tài)保存的 方式,在考慮動態(tài)存儲器的帶寬利用率的條件下,任何空閑的區(qū)域隨時都可 以放入需要緩存的隊列數(shù)據(jù)。隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,路由交換設(shè)備中數(shù)據(jù)動態(tài)緩存的帶寬越來越大, 由于動態(tài)存儲器的預(yù)充電、列激活和自動刷新等時序要求的存在。存儲器帶 寬利用率成為數(shù)據(jù)緩存首要考慮的問題。但是端口速度的提高和數(shù)據(jù)包長度變化使得數(shù)據(jù)緩存的時序控制變得復(fù)雜。所以存儲器實(shí)際彰:據(jù)帶寬成為路由 交換設(shè)備中數(shù)據(jù)緩存存儲器件選擇的重要參考。在數(shù)據(jù)緩存的應(yīng)用中,讀寫操作的地址不相關(guān)以及不同包長數(shù)據(jù)切片數(shù) 不相等導(dǎo)致不同讀操作的地址沒有相關(guān)性,導(dǎo)致帶寬利用率難于提高。發(fā)明內(nèi)容本發(fā)明要解決的技術(shù)問題是,提出一種路由交換設(shè)備及其數(shù)據(jù)緩存的方 法,以方便的邏輯代碼移植的高性能路由交換設(shè)備提高存儲帶寬利用率。為了解決上述問題,本發(fā)明公開了一種數(shù)據(jù)緩存的方法,包括路由交換設(shè)備收到數(shù)據(jù)包時,若查詢外部緩存器的數(shù)據(jù)緩存狀態(tài)為,有非全滿的數(shù)據(jù)片行地址,且該非全滿的數(shù)據(jù)片行地址中的連續(xù)空間足夠存儲 所述數(shù)據(jù)包的所有數(shù)據(jù)片,則將所述數(shù)據(jù)包的所有數(shù)據(jù)片播入所述非全滿的 數(shù)據(jù)片行地址中,保存所述數(shù)據(jù)包的包信息和寫入的數(shù)據(jù)片行地址,并更新 所述外部緩存器的數(shù)據(jù)緩存狀態(tài)。進(jìn)一步地,上述方法中,若所述路由交換設(shè)備查詢外部緩存器的數(shù)據(jù)緩 存狀態(tài)為,有全空的連續(xù)的數(shù)據(jù)片行地址時,則將所述數(shù)據(jù)包的所有數(shù)據(jù)片 寫入所述全空的連續(xù)的數(shù)據(jù)片行地址中。進(jìn)一步地,所述路由交換設(shè)備通過連續(xù)burst寫操作,將所述數(shù)據(jù)包的數(shù) 據(jù)片連續(xù)寫入數(shù)據(jù)片行地址中,其中,當(dāng)所述數(shù)據(jù)包的數(shù)據(jù)片個數(shù)超過連續(xù) burst寫操作的最大次數(shù)時,所述路由交換設(shè)備在每次寫數(shù)據(jù)過程中,按照連 續(xù)burst寫操作的最大次數(shù)進(jìn)行burst寫操作,直到寫入所述數(shù)據(jù)的所有數(shù)據(jù) 片。該方法還包括所述路由交換設(shè)備接收到讀操作時,根據(jù)所要讀取的數(shù) 據(jù)包的包信息和寫入的數(shù)據(jù)片行地址,從外部緩存器中讀取所述數(shù)據(jù)包,并 更新所述外部緩存器的數(shù)據(jù)緩存狀態(tài)。其中,所述路由交換設(shè)備通過連續(xù)burst讀操作,讀取所述數(shù)據(jù)包的數(shù)據(jù) 片,其中,當(dāng)所述數(shù)據(jù)包的數(shù)據(jù)片個數(shù)超過連續(xù)burst讀操作的最大次數(shù)時, 所述路由交換設(shè)備一次讀出所述數(shù)據(jù)包的所有數(shù)據(jù)片,并在下一次讀數(shù)據(jù)時, 減去本次讀數(shù)據(jù)過程中超過連續(xù)burst讀操作的最大次數(shù)的burst讀操作數(shù)目。本發(fā)明還公開了 一種路由交換設(shè)備,包括緩存控制模塊和數(shù)據(jù)緩存表模 塊,其中所述緩存控制模塊,用于在收到數(shù)據(jù)包時,若查詢數(shù)據(jù)緩存表模塊中外 部緩存器的數(shù)據(jù)緩存狀態(tài)為,有非全滿的數(shù)據(jù)片行地址,且該非全滿的數(shù)據(jù) 片行地址中的連續(xù)空間足夠存儲所述數(shù)據(jù)包的所有數(shù)據(jù)片時,則將所述數(shù)據(jù) 包的所有數(shù)據(jù)片播入所述非全滿的數(shù)據(jù)片行地址中,并將所述數(shù)據(jù)包的包信 息和寫入的數(shù)據(jù)片行地址發(fā)送給所述數(shù)據(jù)緩存表模塊;所述數(shù)據(jù)緩存表模塊,用于保存所述緩存控制模塊發(fā)送的寫入外部存儲器的數(shù)據(jù)包的包信息以及寫入的數(shù)據(jù)片行地址,并實(shí)時更新所述外部緩存 器的數(shù)據(jù)緩存狀態(tài)。進(jìn)一步地,上述設(shè)備中,所述緩存控制模塊,若查詢外部緩存器的數(shù)據(jù) 緩存狀態(tài)為,有全空的連續(xù)的數(shù)據(jù)片行地址時,則將所述數(shù)據(jù)包的所有數(shù)據(jù) 片寫入所述全空的連續(xù)的數(shù)據(jù)片行地址中。進(jìn)一步地,所述緩存控制模塊,通過連續(xù)burst寫操作,將所述數(shù)據(jù)包的 數(shù)據(jù)片連續(xù)寫入數(shù)據(jù)片行地址中,其中,當(dāng)所述數(shù)據(jù)包的數(shù)據(jù)片個數(shù)超過連 續(xù)burst寫操作的最大次數(shù)時,所述所述緩存控制模塊在每次寫數(shù)據(jù)過程中, 按照連續(xù)burst寫操作的最大次數(shù)進(jìn)行burst寫操作,直到寫入所述數(shù)據(jù)的所 有數(shù)據(jù)片。其中,所述緩存控制模塊,還用于在接收到讀操作時,從所述數(shù)據(jù)緩存 表模塊中查詢所要讀取的數(shù)據(jù)包的包信息和寫入的數(shù)據(jù)片行地址,從外部緩 存器中讀取所述數(shù)據(jù)包,并將讀取結(jié)果發(fā)送給所述數(shù)據(jù)緩存表模塊;所述數(shù)據(jù)緩存表模塊,用于接收所述緩存控制模塊發(fā)送的讀取給果,根 據(jù)所述讀取結(jié)果更新所述外部緩存器的數(shù)據(jù)緩存狀態(tài)。所述緩存控制模塊,通過連續(xù)burst讀操作,讀取所述數(shù)據(jù)包的數(shù)據(jù)片, 其中,當(dāng)所述數(shù)據(jù)包的數(shù)據(jù)片個數(shù)超過連續(xù)burst讀操作的最大次數(shù)時,所述 緩存控制模塊一次讀出所述數(shù)據(jù)包的所有數(shù)據(jù)片,并在下一次讀數(shù)據(jù)時,減 去本次讀數(shù)據(jù)過程中超過連續(xù)burst讀操作的最大次數(shù)的burst讀操作數(shù)目。本發(fā)明技術(shù)方案與現(xiàn)有的軟件實(shí)現(xiàn)的技術(shù)相比,直接應(yīng)用于硬件設(shè)備, 易于在硬件設(shè)備中移植,與現(xiàn)有的硬件實(shí)現(xiàn)的技術(shù)相比,硬件結(jié)構(gòu)設(shè)計直接 考慮數(shù)據(jù)包緩存管理,提高了存儲器帶寬利用率。另外,本發(fā)明技術(shù)中接口 固定的代碼移植,易于在其他相關(guān)的數(shù)據(jù)緩存管理中應(yīng)用。
圖1是本實(shí)施例中數(shù)據(jù)緩存系統(tǒng)的結(jié)構(gòu)示意圖;示意圖; 圖3是圖1所示系統(tǒng)中數(shù)據(jù)緩存表結(jié)構(gòu)示意圖; 圖4是圖1所示系統(tǒng)中數(shù)據(jù)片緩存的鏈表方式示意圖; 圖5是本實(shí)施例中數(shù)據(jù)緩存管理的流程圖。
具體實(shí)施方式
本發(fā)明的主要構(gòu)思是,數(shù)據(jù)包在路由交換設(shè)備中可以按照如下過程進(jìn)行 控制接收路由交換設(shè)備對輸入的數(shù)據(jù)包做識別后,切分成等字節(jié)長度的數(shù)據(jù) 片,這些數(shù)據(jù)片的緩存使用鏈表維護(hù),其中,鏈表地址與緩存物理位置一一 對應(yīng)。在緩存數(shù)據(jù)寫入存儲器前將數(shù)據(jù)片暫存,通過在數(shù)據(jù)緩存表中查詢外 部緩存器的數(shù)據(jù)緩存狀態(tài)進(jìn)行寫操作,例如,當(dāng)數(shù)據(jù)緩存狀態(tài)為,有全空的 數(shù)據(jù)片行地址連續(xù)空間,則可以通過連續(xù)burst寫操作將數(shù)據(jù)包的所有數(shù)據(jù)片 放入外部緩存器中;當(dāng)數(shù)據(jù)緩存狀態(tài)為,有非全滿的數(shù)據(jù)片行地址,且該數(shù) 據(jù)片行地址中的連續(xù)空間足夠?qū)懭霐?shù)據(jù)包的所有數(shù)據(jù)片,則可以將該數(shù)據(jù)包 的所有數(shù)據(jù)片插入數(shù)據(jù)片行地址中連續(xù)的空地址片中。其中,如果數(shù)據(jù)包的數(shù)據(jù)片個數(shù)超過連續(xù)burst寫操作的最大次數(shù),則在 一次寫數(shù)據(jù)過程中,按照連續(xù)burst寫操作的最大次數(shù)進(jìn)行連續(xù)burst寫操作, 而在下一次寫數(shù)據(jù)過程中,再連續(xù)burst寫操作以將剩余的數(shù)據(jù)片寫完。同時, 在連續(xù)整數(shù)據(jù)包寫操作的過程中,保證不在跨列地址的地址空間進(jìn)行寫操作, 因為這樣可以提高數(shù)據(jù)讀寫帶寬利用的性能。數(shù)據(jù)包寫入后,還需要更新隊 列指針表、數(shù)據(jù)緩存表、緩存狀態(tài)表以及通過鏈表控制更新鏈表。而在數(shù)據(jù)輸出(即從外部緩存器中讀取數(shù)據(jù)包)時,外部端口整形以及 流量控制模塊通過緩存狀態(tài)表中的每個隊列的緩存狀態(tài)控制隊列數(shù)據(jù)的讀 出。讀出緩存中的數(shù)據(jù)時,要讀出一個完整數(shù)據(jù)包的所有數(shù)據(jù)片。如果數(shù)據(jù) 片個數(shù)不超過連續(xù)burst讀操作個數(shù),則正常操作,否則將整個數(shù)據(jù)包的所有 數(shù)據(jù)片一次讀出,并在下一次讀操作中減去本次多余burst讀操作的次數(shù)(即 超過連續(xù)burst讀操作的最大次數(shù)的數(shù)目),并更新隊列指針表、數(shù)據(jù)緩存表、緩存狀態(tài)表中的相應(yīng)數(shù)據(jù)。下面結(jié)合附圖及具體實(shí)施例對本發(fā)明技術(shù)方案作進(jìn)一步詳細(xì)說明。一種路由交換設(shè)備,如圖1所示,主要包括數(shù)據(jù)輸入控制模塊101、隊 列指針表模塊102、數(shù)據(jù)緩存表模塊103、鏈表控制模塊104、鏈表存儲模塊 105、緩存控制模塊106、數(shù)據(jù)輸出控制模塊108以及緩存狀態(tài)表模塊109。 下面介紹各模塊的功能。數(shù)據(jù)輸入控制模塊101,用于接收路由交換設(shè)備端口輸入的數(shù)據(jù)包,對 該數(shù)據(jù)包進(jìn)行包識別后,將該數(shù)據(jù)包、以及該數(shù)據(jù)包的包信息(如包長、隊 列號等信息)送給緩存控制模塊106;緩存控制模塊106,用于將數(shù)據(jù)輸入控制模塊101發(fā)送的數(shù)據(jù)包切為數(shù) 據(jù)片,調(diào)用數(shù)據(jù)緩存表模塊103中的外部緩存器的數(shù)據(jù)緩存狀態(tài)信息并參考 隊列指針表102中相關(guān)隊列的寫指針信息,組織外部緩存器(即為圖1中的 107)的寫時序;以及對外部緩存器中的完整數(shù)據(jù)包進(jìn)行讀操作,將讀、寫操 作結(jié)果發(fā)送給數(shù)據(jù)緩存表103和緩存狀態(tài)表109以進(jìn)行相關(guān)信息的更新,以 及將鏈表存儲模塊105中鏈表的更新信息發(fā)送給鏈表控制模塊104;其中,緩存控制模塊106調(diào)用數(shù)據(jù)緩存表模塊103中的信息,獲取連續(xù) 地址空間^#個完整的數(shù)據(jù)包的所有數(shù)據(jù)片,緩存數(shù)據(jù)片個數(shù)達(dá)到連續(xù)burst 操作數(shù)后將數(shù)據(jù)寫入外部緩存器中,并且更新相關(guān)的隊列指針表、數(shù)據(jù)緩存 表、緩存狀態(tài)表,以及將鏈表信息發(fā)送出給鏈表控制模塊104,并且在數(shù)據(jù) 包輸出時由數(shù)據(jù)緩存表模塊獲取數(shù)據(jù)包數(shù)據(jù)片個數(shù),控制外部緩存器107(即 用于緩存數(shù)據(jù)包的緩存器)的數(shù)據(jù)讀出并更新隊列指針表、數(shù)據(jù)緩存表、緩 存狀態(tài)表;在外部數(shù)據(jù)包的讀寫操作中,緩存控制模塊106讀寫數(shù)據(jù)包控制以連續(xù) burst操作次數(shù)等分,寫操作按照連續(xù)burst操作次數(shù)執(zhí)行,如果數(shù)據(jù)包的數(shù) 據(jù)片個數(shù)超出burst操作次數(shù)則只要保證數(shù)據(jù)片存儲地址連續(xù)。讀操作考慮完 整數(shù)據(jù)包超出連續(xù)burst操作次數(shù)則先完成數(shù)據(jù)包所有數(shù)據(jù)片讀取,在下一次 讀操作中連續(xù)burst次數(shù)減去本次超出次數(shù)。鏈表控制模塊104,用于在數(shù)據(jù)包寫入時,將數(shù)據(jù)片緩存鏈表指向信息
更新到鏈表存儲才莫塊105中,并將該隊列的寫指針更新到隊列指針表模塊102 中的相應(yīng)位置,數(shù)據(jù)包讀出時將隊列指針表模塊102的讀指針指向的讀操作 映射的鏈表控制模塊104中隊列的鏈表中內(nèi)容更新到隊列指針表模塊102中 的讀指針中。
隊列指針表才莫塊102,用于維護(hù)隊列指針表,在數(shù)據(jù)輸入時將相應(yīng)隊列 的寫指針更新(即更新為當(dāng)前寫入位置的下一凄t據(jù)片位置),在數(shù)據(jù)輸出時 將相應(yīng)隊列的讀指針更新到鏈表中的相應(yīng)的位置(指向的下 一 個數(shù)據(jù)片位 置)。如果讀指針位置超出寫指針位置,則說明該隊列已經(jīng)讀空,讀指針不 用更新;如果是隊列第一次寫入數(shù)據(jù)則更新讀指針和寫指針,讀指針為寫入 位置,寫指針為讀指針加1。
其中,本實(shí)施例中隊列指針表的表結(jié)構(gòu)如圖2所示,主要包括所有隊列 的讀寫指針,其中,讀寫指針和鏈表存儲模塊105的地址和外部緩存器中的 緩存位置是一一對應(yīng)的。
數(shù)據(jù)緩存表4莫塊103,用于維護(hù)數(shù)據(jù)緩存標(biāo)示表,數(shù)據(jù)緩存標(biāo)示表中的 比特位置與外部》爰存器107中的數(shù)據(jù)片序號一一對應(yīng)。在彩:據(jù)寫入時候的寫 入地址的獲取和寫入時序的安排需要參考數(shù)據(jù)緩存表中的緩存信息。
其中,數(shù)據(jù)緩存表結(jié)構(gòu)如圖3所示,數(shù)據(jù)緩存表中每個位置的高8比特 做存儲地址映射,數(shù)值1代表有存儲數(shù)據(jù);低8比特數(shù)據(jù)標(biāo)志數(shù)據(jù)包的數(shù)據(jù) 片內(nèi)容,與高8比特——對應(yīng);數(shù)值0代表數(shù)據(jù)包的第一個數(shù)據(jù)片,數(shù)值1 代表數(shù)據(jù)包的連續(xù)^:據(jù)片。
如圖4所示,是數(shù)據(jù)片緩存的鏈表實(shí)現(xiàn)方式。數(shù)據(jù)片鏈表中的位置指向 包括所有隊列的鏈表指向。整個表中包含每個隊列鏈表內(nèi)容完全獨(dú)立。
緩存狀態(tài)表^^莫塊109,用于維護(hù)全部隊列的緩存狀態(tài),在數(shù)據(jù)包輸入、 輸出時將相應(yīng)的操作數(shù)據(jù)片的個數(shù)更新到緩存狀態(tài)表中,并且提供緩存狀態(tài) 表的外部查詢^妻口。
數(shù)據(jù)輸出控制模塊108,是外部接口的控制模塊,用于識別外部的讀操 作并將操作消息傳送給緩存控制模塊106。下面介紹上述設(shè)備實(shí)現(xiàn)數(shù)據(jù)緩存的過程,如圖5所示,包括以下步驟
步驟501:路由交換設(shè)備對輸入的數(shù)據(jù)包進(jìn)行包識別,提取包長等相關(guān) 信息;
步驟502:路由交換設(shè)備將輸入數(shù)據(jù)包切片后,參考數(shù)據(jù)緩存表和隊列 寫指針中的寫指針確定數(shù)據(jù)片寫入位置和寫入時序,并將所確定的寫入地址 以及步驟501中提:f又的包長的信息更新到數(shù)據(jù)緩存表中;
本實(shí)施例中,數(shù)據(jù)緩存表的結(jié)構(gòu)如圖4所示,數(shù)據(jù)緩存表中每個位置的 高8比特作為存儲地址映射,數(shù)值1表示有存儲數(shù)據(jù)(即寫入有數(shù)據(jù)片), 數(shù)值0表示未寫入數(shù)據(jù)片;低8比特數(shù)據(jù)標(biāo)志數(shù)據(jù)包的數(shù)據(jù)片個數(shù)(即包長 信息),數(shù)值O代表數(shù)據(jù)包的第一個數(shù)據(jù)片,數(shù)值1代表數(shù)據(jù)包的連續(xù)數(shù)據(jù) 片,其中,^f氐8比特與高8比特一一對應(yīng)。
步驟503:更新緩存狀態(tài)表中的該隊列相關(guān)信息(即更新該隊列中的數(shù) 據(jù)包個數(shù));
步驟504:數(shù)據(jù)片存儲信息更新到存儲位置相應(yīng)的鏈表中; 該步驟中,數(shù)據(jù)片存儲信息對應(yīng)的存儲位置的鏈表如圖4所示。 步驟505:根據(jù)寫操作的情況,更新隊列指針表中的寫指針的值; 步驟506:路由器交換設(shè)備進(jìn)入輸出等待狀態(tài);
步驟507:路由器交換設(shè)備判斷是否接收到外部讀操作,如果是,則執(zhí) 行步驟508 ,否則返回步"驟506;
步驟508:獲取隊列指針表中的讀指針;
步驟509:使用讀指針將外部存儲器中的一個完整數(shù)據(jù)包的數(shù)據(jù)片全部 讀出;
該步驟中,路由交換設(shè)備根據(jù)數(shù)據(jù)緩存表中該數(shù)據(jù)包的包長信息以及寫 入位置,從外部緩存器的相應(yīng)地址連續(xù)讀取該數(shù)據(jù)包的所有數(shù)據(jù)片,其中, 路由交換設(shè)備通過連續(xù)續(xù)burst讀操作將數(shù)據(jù)包的所有數(shù)據(jù)片 一次讀出,并在 下一次讀操作中減去本次多余burst讀操作的次數(shù)(即超過連續(xù)burst讀操作的最大次數(shù)的數(shù)目)。
步驟510:將已經(jīng)讀出的數(shù)據(jù)在數(shù)據(jù)緩存表中的相應(yīng)位置清零(即更新 數(shù)據(jù)緩存表中外部緩存器的數(shù)據(jù)緩存狀態(tài));
步驟511:將讀出數(shù)據(jù)片的個數(shù)更新到相應(yīng)的緩存狀態(tài)表中;
步驟512:將已經(jīng)讀走的末尾數(shù)據(jù)片的鏈表中的內(nèi)容更新到相應(yīng)隊列指 針表的讀指針中。
從上述實(shí)施例中可以看出,本發(fā)明技術(shù)方案增加了數(shù)據(jù)操作中讀寫的多 次burst操作,從而提高了路由交換設(shè)備的帶寬利用。另夕卜,本發(fā)明技術(shù)方案 通過burst連續(xù)操作改善了數(shù)據(jù)寫時序,并且單數(shù)據(jù)包讀梯:作的數(shù)據(jù)地址連續(xù) burst操作同樣提高了讀操作的帶寬利用。
當(dāng)然,本發(fā)明還可有多種實(shí)施方式,在不背離本發(fā)明精神及其實(shí)質(zhì)的情
凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換、改進(jìn),均應(yīng)包含 在本發(fā)明所附的權(quán)利要求的保護(hù)范圍之內(nèi)。
權(quán)利要求
1、一種數(shù)據(jù)緩存的方法,其特征在于,該方法包括路由交換設(shè)備收到數(shù)據(jù)包時,若查詢外部緩存器的數(shù)據(jù)緩存狀態(tài)為,有非全滿的數(shù)據(jù)片行地址,且該非全滿的數(shù)據(jù)片行地址中的連續(xù)空間足夠存儲所述數(shù)據(jù)包的所有數(shù)據(jù)片,則將所述數(shù)據(jù)包的所有數(shù)據(jù)片播入所述非全滿的數(shù)據(jù)片行地址中,保存所述數(shù)據(jù)包的包信息和寫入的數(shù)據(jù)片行地址,并更新所述外部緩存器的數(shù)據(jù)緩存狀態(tài)。
2、 如權(quán)利要求l所述的方法,其特征在于,若所述路由交換設(shè)備查詢外部緩存器的數(shù)據(jù)緩存狀態(tài)為,有全空的連續(xù) 的數(shù)據(jù)片行地址時,則將所述數(shù)據(jù)包的所有數(shù)據(jù)片寫入所述全空的連續(xù)的數(shù) 據(jù)片行地址中。
3、 如權(quán)利要求1或2所述的方法,其特征在于,所述路由交換設(shè)備通過連續(xù)burst寫操作,將所述數(shù)據(jù)包的數(shù)據(jù)片連續(xù)寫 入數(shù)據(jù)片行地址中,其中,當(dāng)所述數(shù)據(jù)包的數(shù)據(jù)片個數(shù)超過連續(xù)burst寫操作 的最大次數(shù)時,所述路由交換設(shè)備在每次寫數(shù)據(jù)過程中,按照連續(xù)burst寫操 作的最大次數(shù)進(jìn)行burst寫操作,直到寫入所述數(shù)據(jù)的所有數(shù)據(jù)片。
4、 如權(quán)利要求l或2所述的方法,其特征在于,該方法還包括所述路由交換i殳備接收到讀操作時,根據(jù)所要讀取的數(shù)據(jù)包的包信息和 寫入的數(shù)據(jù)片行地址,從外部緩存器中讀取所述數(shù)據(jù)包,并更新所述外部緩 存器的數(shù)據(jù)緩存狀態(tài)。
5、 如權(quán)利要求4所述的方法,其特征在于,所述路由交換設(shè)備通過連續(xù)burst讀操作,讀取所述數(shù)據(jù)包的數(shù)據(jù)片,其 中,當(dāng)所述數(shù)據(jù)包的數(shù)據(jù)片個數(shù)超過連續(xù)burst讀操作的最大次數(shù)時,所述路 由交換設(shè)備一次讀出所述數(shù)據(jù)包的所有數(shù)據(jù)片,并在下一次讀數(shù)據(jù)時,減去 本次讀數(shù)據(jù)過程中超過連續(xù)burst讀操作的最大次數(shù)的burst讀操作數(shù)目。
6、 一種路由交換設(shè)備,其特征在于,該設(shè)備包括緩存控制模塊和數(shù)據(jù) 緩存表模塊,其中所述緩存控制模塊,用于在收到數(shù)據(jù)包時,若查詢數(shù)據(jù)緩存表模塊中外 部緩存器的數(shù)據(jù)緩存狀態(tài)為,有非全滿的數(shù)據(jù)片行地址,且該非全滿的數(shù)據(jù) 片行地址中的連續(xù)空間足夠存儲所述數(shù)據(jù)包的所有數(shù)據(jù)片時,則將所述數(shù)據(jù) 包的所有數(shù)據(jù)片播入所述非全滿的數(shù)據(jù)片行地址中,并將所述數(shù)據(jù)包的包信息和寫入的數(shù)據(jù)片行地址發(fā)送給所述數(shù)據(jù)緩存表模塊;所述數(shù)據(jù)緩存表模塊,用于保存所述援存控制模塊發(fā)送的寫入外部存 儲器的數(shù)據(jù)包的包信息以及寫入的數(shù)據(jù)片行地址,并實(shí)時更新所述外部緩存 器的數(shù)據(jù)緩存狀態(tài)。
7、 如權(quán)利要求6所述的設(shè)備,其特征在于,所述緩存控制模塊,若查詢外部緩存器的數(shù)據(jù)緩存狀態(tài)為,有全空的連 續(xù)的數(shù)據(jù)片行地址時,則將所述數(shù)據(jù)包的所有數(shù)據(jù)片寫入所述全空的連續(xù)的 數(shù)據(jù)片行地址中。
8、 如權(quán)利要求6或7所述的設(shè)備,其特征在于,所述緩存控制模塊,通過連續(xù)burst寫搡作,將所述數(shù)據(jù)包的數(shù)據(jù)片連續(xù) 寫入數(shù)據(jù)片行地址中,其中,當(dāng)所述數(shù)據(jù)包的數(shù)據(jù)片個數(shù)超過連續(xù)burst寫搡 作的最大次數(shù)時,所述所述緩存控制模塊在每次寫數(shù)據(jù)過程中,按照連續(xù) burst寫操作的最大次數(shù)進(jìn)行burst寫操作,直到寫入所述數(shù)據(jù)的所有數(shù)據(jù)片。
9、 如權(quán)利要求6或7所述的設(shè)備,其特征在于,所述緩存控制4莫塊,還用于在接收到讀操作時,從所述數(shù)據(jù)緩存表模塊 中查詢所要讀取的數(shù)據(jù)包的包信息和寫入的數(shù)據(jù)片行地址,從外部緩存器中 讀取所述數(shù)據(jù)包,并將讀取結(jié)果發(fā)送給所述數(shù)據(jù)緩存表模塊;所述數(shù)據(jù)緩存表模塊,用于接收所述緩存控制模塊發(fā)送的讀取結(jié)果,根 據(jù)所述讀取結(jié)果更新所述外部緩存器的凄t據(jù)緩存狀態(tài)。
10、 如權(quán)利要求9所述的設(shè)備,其特征在于,所述緩存控制才莫塊,通過連續(xù)burst讀操作,讀取所述數(shù)據(jù)包的數(shù)據(jù)片, 其中,當(dāng)所述數(shù)據(jù)包的數(shù)據(jù)片個數(shù)超過連續(xù)burst讀操作的最大次數(shù)時,所述 緩存控制模塊一次讀出所述數(shù)據(jù)包的所有數(shù)據(jù)片,并在下一次讀數(shù)據(jù)時,減 去本次讀數(shù)據(jù)過程中超過連續(xù)burst讀操作的最大次數(shù)的burst讀操作數(shù)目。
全文摘要
本發(fā)明公開了一種路由交換設(shè)備及其數(shù)據(jù)緩存的方法,屬于網(wǎng)絡(luò)通信領(lǐng)域。本發(fā)明方法包括路由交換設(shè)備收到數(shù)據(jù)包時,若查詢外部緩存器的數(shù)據(jù)緩存狀態(tài)為,有非全滿的數(shù)據(jù)片行地址,且該非全滿的數(shù)據(jù)片行地址中的連續(xù)空間足夠存儲所述數(shù)據(jù)包的所有數(shù)據(jù)片,則將所述數(shù)據(jù)包的所有數(shù)據(jù)片播入所述非全滿的數(shù)據(jù)片行地址中,保存所述數(shù)據(jù)包的包信息和寫入的數(shù)據(jù)片行地址,并更新所述外部緩存器的數(shù)據(jù)緩存狀態(tài)。本發(fā)明技術(shù)方案提高了存儲器帶寬利用率。
文檔編號H04L12/56GK101645846SQ20091016727
公開日2010年2月10日 申請日期2009年9月2日 優(yōu)先權(quán)日2009年9月2日
發(fā)明者昶 周, 陳紅旗 申請人:中興通訊股份有限公司