欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

多階復制計數(shù)器存儲裝置及用來管理多播封包處理的方法

文檔序號:7545561閱讀:137來源:國知局
多階復制計數(shù)器存儲裝置及用來管理多播封包處理的方法
【專利摘要】本發(fā)明公開一種多階復制計數(shù)器存儲裝置及用來管理多播封包處理的方法。多階復制計數(shù)器存儲裝置,用于多播封包處理,包括:第一階存儲裝置,用來存儲關于需要被廣播至多個多播目標的第一多播封包的相同單元數(shù)據的多個第一計數(shù)值,其中所存儲的所述第一計數(shù)值的總和等于尚未被廣播到所述第一多播封包的所述相同單元數(shù)據的所述多播目標的數(shù)目;以及第二階存儲裝置,用來存儲第二計數(shù)值,所述第二計數(shù)值基于所述第一計數(shù)值來調整,以指示所述第一多播封包的所述相同單元數(shù)據的多播操作是否完成。本發(fā)明所公開的多階復制計數(shù)器存儲裝置,能夠以可接受的面積尺寸和成本來達到所需頻寬。
【專利說明】多階復制計數(shù)器存儲裝置及用來管理多播封包處理的方法

【技術領域】
[0001] 本發(fā)明所揭露的實施例相關于封包的發(fā)送,特別指一種用于多播封包處理的多階 復制計數(shù)器存儲裝置(multi-level replication counter storage device)以及用來管 理多播封包處理的方法。

【背景技術】
[0002] 網絡交換機為電腦網絡裝置,可用于連接不同電子裝置。舉例來說,網絡交換機會 接收由其所連接的源電子裝置所產生的輸入封包,并且只將依據所述接收到的封包所產生 的輸出封包轉發(fā)至一個或是一個以上由所述接收到的封包所指定的目的電子裝置。一般來 說,網絡交換機具有封包緩沖器以緩沖由入端口(ingress port)所接收到的封包的封包數(shù) 據,并且通過出端口(egress port)來將封包緩沖器中所存儲的封包轉發(fā)出去。若是有分 別連接至所述網絡裝置的不同出端口的一組目的電子裝置要求相同封包時,可以在單一傳 輸中從連接至所述網絡裝置的入端口的源電子裝置得到所要求的封包,又稱為多播封包, 且所述網絡交換機可執(zhí)行多播操作來將存儲在封包緩沖器中的所要求的封包的副本傳送/ 廣播至上述一組目的電子裝置。復制計數(shù)器(又稱為多播計數(shù)器)被廣泛地使用在網絡交 換機中來計算網絡中多播或是廣播目標的數(shù)目。
[0003] 在傳統(tǒng)設計中,僅使用存儲裝置(memory device)來實現(xiàn)計數(shù)器存儲裝置。因此, 當針對所述存儲裝置執(zhí)行入列操作(en-queue operation)時,會將初始計數(shù)值存儲至所述 存儲裝置。當針對所述存儲裝置執(zhí)行出列操作(de-queue operation)時,會從存儲位置 (memory location)將所存儲的計數(shù)值讀出,并將其減去1再寫回至相同的存儲位置。一般 來說,所述存儲裝置需要若干時鐘周期來結束一個出列操作。此外,多數(shù)存儲裝置不允許同 時進行讀寫的操作。因此,若是入列或是出列率較高(即所述交換機裝置使用在高速網絡 中),存儲裝置的操作頻率將無法達到所需要的頻寬。
[0004] 在另一傳統(tǒng)設計中,僅使用觸發(fā)器陣列(flip-flop array)來實現(xiàn)計數(shù)器存儲裝 置。所述觸發(fā)器陣列中的每一觸發(fā)器都能夠在單一時鐘周期之內完成一個出列操作(直接 更新所存儲的計數(shù)值)。因此,若是入列或是出列率較高(即所述交換機裝置使用在高速網 絡中),觸發(fā)器陣列的操作頻率可以達到所需要的頻寬。如果η個比特(bit)都具有相同的 m個字(word)的大小,不過芯片中觸發(fā)器陣列的面積通常為同樣容量的存儲裝置的8?12 倍。因此,這樣的作法會耗費相當高的成本。
[0005] 有鑒于此,此領域亟需一種新穎的復制計數(shù)器存儲設計,能夠以可接受的面積尺 寸和成本來達到所需頻寬。


【發(fā)明內容】

[0006] 有鑒于此,本發(fā)明提供一種用于多播封包處理的多階復制計數(shù)器存儲裝置以及用 來管理多播封包處理的方法,以解決上述問題。
[0007] 依據本發(fā)明的第一示范性實施例,提出一種用于多播封包處理的多階復制計數(shù)器 存儲裝置,包括第一階存儲裝置以及第二階存儲裝置。所述第一階存儲裝置用來存儲關于 需要被廣播至多個多播目標的第一多播封包的相同單元數(shù)據的多個第一計數(shù)值,其中所存 儲的所述第一計數(shù)值的總和相等于尚未被廣播到所述第一多播封包的所述相同單元數(shù)據 的多播目標的數(shù)目。所述第二階存儲裝置用來存儲第二計數(shù)值,所述第二計數(shù)值基于所述 第一計數(shù)值來調整,以指示所述第一多播封包的所述相同單元數(shù)據的多播操作是否完成。
[0008] 依據本發(fā)明的第二示范性實施例,提出一種用來管理多播封包處理的方法,包括: 在第一階存儲裝置中存儲關于需要被廣播至多個多播目標的第一多播封包的相同單元數(shù) 據的多個第一計數(shù)值,其中所存儲的所述第一計數(shù)值的總和相等于尚未被廣播到所述第一 多播封包的所述相同單元數(shù)據的多播目標的數(shù)目;以及在第二階存儲裝置中存儲第二計數(shù) 值,所述第二計數(shù)值基于所述第一計數(shù)值來調整,以指示所述第一多播封包的所述相同單 元數(shù)據的多播操作是否完成。
[0009] 本發(fā)明結合存儲裝置和觸發(fā)器陣列的優(yōu)點,所提出的用于多播封包處理的多階復 制計數(shù)器存儲裝置,可以在可接受的面積和成本的考量下,達到所要求的頻寬。
[0010] 對于已經閱讀后續(xù)由各附圖及內容所顯示的較佳實施方式的本領域的技術人員 來說,本發(fā)明的各目的是明顯的。

【專利附圖】

【附圖說明】
[0011] 圖1為本發(fā)明的網絡系統(tǒng)的實施例的框圖。
[0012] 圖2為本發(fā)明的多階復制計數(shù)器存儲裝置的一實施例的示意圖。
[0013] 圖3為本發(fā)明的多階復制計數(shù)器存儲裝置的另一實施例的示意圖。

【具體實施方式】
[0014] 在權利要求書及說明書中使用了某些詞匯來指稱特定的組件。所屬領域中的技術 人員應可理解,硬件制造商可能會用不同的名詞來稱呼同樣的組件。本權利要求書及說明 書并不以名稱的差異來作為區(qū)分組件的方式,而是以組件在功能上的差異來作為區(qū)分的準 貝1J。在權利要求書及說明書中所提及的「包括」為開放式的用語,故應解釋成「包括但不限 定于」。另外,「耦接」一詞在此包括任何直接及間接的電氣連接手段。因此,若文中描述第 一裝置耦接于第二裝置,則代表所述第一裝置可直接電連接于所述第二裝置,或通過其他 裝置或連接手段間接地電連接至所述第二裝置。
[0015] 本發(fā)明的主要精神在于結合存儲裝置和觸發(fā)器陣列的優(yōu)點,因此提出一種用于多 播封包處理的多階復制計數(shù)器存儲裝置,以在可接受的面積和成本的考量下,達到所要求 的頻寬。舉例來說,網絡裝置(例如網絡交換機)中的多播控制機制可以采用單層多內存 庫多階存儲器(single-layer multi-bank multi-level storage)或是多層多內存庫多階 存儲器。以下將對更進一步的細節(jié)進行說明并佐以圖式。
[0016] 請參考圖1,圖1為本發(fā)明的網絡系統(tǒng)的實施例的框圖。網絡系統(tǒng)100包括源電子 裝置(例如伺服器101)、多個目標電子裝置(例如個人電腦1〇2_1、102_2、102_3、…102_N) 以及網絡交換機104,網絡交換機104耦接于所述源電子裝置以及所述目標電子裝置之間, 以將所請求的一個或是一個以上的封包PKT KEQ從所述源電子裝置轉發(fā)至一個或是一個以上 的所述目標電子裝置。如圖1所示,伺服器101連接至網絡交換機104的入端口 Pi,而個人 電腦102_1?102_N分別耦接至出端口 P21、P22、P23、…P2N。在一組目標電子裝置(例如個 人電腦102_1?102_N)對源電子裝置(例如伺服器101)要求相同封包的情況下,網絡交 換機104可以利用單次傳輸來從伺服器101接收所述請求封包(requested packet)(即多 播封包),然后執(zhí)行多播操作以將所述多播封包的副本分別傳送/廣播至個人電腦1〇2_1? 102_N。如圖1所示,網絡交換機104包括但不限定于多播控制器112、多階復制計數(shù)器存儲 裝置114、鏈表存儲裝置(linked list storage device) 116以及封包緩沖器118。
[0017] 由于封包緩沖器118中的可用空間可能分散在不連續(xù)的存儲位置,因此當網絡交 換機104從入端口 Pi接收到所述請求封包(即多播封包)時,網絡交換機104可將所述請 求封包(即多播封包)中的單元數(shù)據(cell data)存儲在封包緩沖器118中的不連續(xù)存儲 位置中。舉例來說,所述多播封包的第一單元數(shù)據PKT_CELL0被存儲在存儲地址'5'中,所 述多播封包的下一單元數(shù)據PKT_CELL1被存儲在不同的存儲地址'10'中,所述多播封包的 下一單元數(shù)據PKT_CELL2被存儲在不同的存儲地址' 12'中,并依此類推。為管理存儲在封 包緩沖器118中的封包單元數(shù)據,鏈表存儲裝置116中會建立鏈表。在此范例中,所述鏈表 的表頭節(jié)點位于存儲地址'5'中,而所述表頭節(jié)點中的下一個地址記錄為'10',表示所述 鏈表中的下一個節(jié)點位于存儲地址'10'。相似地,存儲地址'10'的節(jié)點的下一個地址記錄 為'12',表示所述鏈表中的下一個節(jié)點位于存儲地址'12'。如此一來,便可基于記錄于鏈 表中的節(jié)點順序來將所述多播封包中的單元數(shù)據從封包緩沖器118中讀取出來。
[0018] 多播控制器112可以接收復制計數(shù)值(replication count value)RC,復制計數(shù) 值RC是依據網絡系統(tǒng)100中,請求相同多播封包的多播/廣播目標的數(shù)目來設定。在個人 電腦102_1?102_N都對伺服器(例如多媒體伺服器)101請求相同封包的情況下,復制計 數(shù)值RC等于N。相對于傳統(tǒng)的復制計數(shù)器存儲設計,其僅使用存儲裝置或是觸發(fā)器陣列來 記錄復制計數(shù)值RC,然后減少復制計數(shù)值RC來反應多播封包副本的傳送/廣播,本發(fā)明使 用混合存儲設計,其使用存儲裝置(例如動態(tài)隨機存取存儲裝置或是靜態(tài)隨機存取存儲裝 置)來結合觸發(fā)器陣列來管理所述多播封包處理。因此,多階復制計數(shù)器存儲裝置114能 夠同時具有所述存儲裝置的好處(例如較低成本和面積)以及所述觸發(fā)器陣列的優(yōu)點(例 如較快的出列速度)。以下將針對所提出的多階復制計數(shù)器存儲裝置114的細節(jié)進行說明。
[0019] 請參考圖2,圖2為本發(fā)明多階復制計數(shù)器存儲裝置的一實施例的示意圖。多階復 制計數(shù)器存儲裝置200采用單層多內存庫多階計數(shù)器存儲架構,可以用來實現(xiàn)圖1的網絡 交換機104中的多階復制計數(shù)器存儲裝置114。多階復制計數(shù)器存儲裝置200包括第一階 存儲裝置202以及第二階存儲裝置204,第一階存儲裝置202以及第二階存儲裝置204具 有不同數(shù)據存取特性(data access characteristics)。例如第一階存儲裝置202通過在 K個時鐘周期內更新其所存儲的計數(shù)值來完成出列操作;第二階存儲裝置204通過在L個 時鐘周期內更新其所存儲的計數(shù)值來完成出列操作,其中K和L為正整數(shù),且K>L。也就是 說,相較于第一階存儲裝置202,第二階存儲裝置204能夠支援較高速的出列操作。一般來 說,出列速度和硬件成本/尺寸互為折衷關系,因此,相較于第二階存儲裝置204,第一階存 儲裝置202的尺寸和成本較低。在一較佳實施例中,可以使用具有多個存儲模塊(例如多 個內存庫)212_1、212_2、一212^-1312^的存儲裝置(例如動態(tài)隨機存取存儲裝置或 是靜態(tài)隨機存取存儲裝置)來實現(xiàn)第一階存儲裝置202,其中每一存儲模塊212_1?212_ η都由不同存儲位置的多個存儲空間113所組成;此外,可以使用位于不同存儲位置的多組 觸發(fā)器115所構成的觸發(fā)器陣列214來實現(xiàn)第二階存儲裝置204。
[0020] 第一階存儲裝置202中的存儲模塊212_1?212_n的數(shù)目η依據實際設計考量來 決定。舉例來說,若是每一存儲模塊212_1?212_η都需要4個時鐘周期來完成出列操作 (從存儲地址中讀出所存儲的第一計數(shù)器值、調整所述第一計數(shù)器值并且將調整后的第一 計數(shù)器值寫入相同的存儲地址),便需要在第一階存儲裝置202中設置4個存儲模塊(即η =4)。然而以上僅供說明用途,而非本發(fā)明的限制所在。
[0021] 第一階存儲裝置202用來存儲多個第一計數(shù)值R1、R2、…Rn-l、Rn,所述第一計數(shù) 值R1、R2、…Rn-l、Rn有關于需要被廣播至多個多播目標的多播封包的相同單元數(shù)據(例 如暫存在封包緩沖器118內的存儲地址'5'的第一單元數(shù)據PKT_CELL0)。所存儲的第一計 數(shù)值R1?Rn的總和等于尚未被廣播到多播封包的相同單元數(shù)據的多播目標的數(shù)目。在所 述多播目標為圖1的個人電腦1〇2_1?102_N的情況下,多播控制器112所接收到的復制 計數(shù)值RC會等于N。一開始,由于網絡交換機104和所述多播目標之間的多播封包單元數(shù) 據傳輸尚未開始,因此可以得知RC = Rl+R2+?"+Rn-l+Rn = N,在此實施例中,多播控制器 112會基于端口群(port groups)PGl、PG2、…、PGn-l、PGn來將復制計數(shù)值RC分割為第一 計數(shù)值R1?Rn。具體地說,存儲模塊212_1?212_n分別對應端口群PG1?PGn。每一多 播目標(例如個人電腦1〇2_1?102_N)都耦接至端口群PG1?PGn中的一個出端口。在 一較佳實施例中,所述多播目標平均地或是盡量平均地被指定至端口群PG1?PGn。更具體 地說,若N可以被η所整除,則因為端口群PG1?PGn中的每一個耦接至N/n個多播目標, 故每一第一計數(shù)值R1?Rn為N/n。然而,若是N無法被η所整除,第一計數(shù)值R1?Rn中 的一部份可以被設為值CV (例如CV = floor (N/n)),而剩下的所述第一計數(shù)值可以被設為 另一個值(CV+1)。然而以上僅供說明用途,本發(fā)明并不以此為限。
[0022] 當所述多播封包被存儲至封包緩沖器118后,多播控制器112會同時針對各個存 儲模塊212_1?212_n分別執(zhí)行入列操作EG1、EG2、"4611-1、EGn。在此實施例中,由入 列操作所存儲于存儲模塊的第一計數(shù)值由有關于所述存儲模塊的屬于一個端口群的多播 目標的數(shù)目來決定。舉例來說,若是端口群PGx(x = 1?η)具有X個出端口分別連接至X 個多播目標,多播控制器112會將初始值X指定給第一計數(shù)值Rx。關于每一端口群PG1? PGn,相對應第一計數(shù)值會指示尚未被廣播到多播封包的相同單元數(shù)據的多播目標的數(shù)目。 因此,在網絡交換機104和所述多播目標之間的多播封包單元數(shù)據傳輸開始之前,每一初 始值X代表所述多播封包的相同單元數(shù)據應通過端口群PGx來被傳送/廣播的最大次數(shù)。
[0023] 較佳地,第一計數(shù)值R1?Rn所存儲的存儲位置和封包緩沖器118中所述多播封 包的相同單元數(shù)據同步。舉例來說,當?shù)谝挥嫈?shù)值R1?Rn關于所述多播封包的相同單元 數(shù)據PKT_CELL0,第一計數(shù)值R1?Rn會被存儲在存儲模塊212_1?212_n中相同存儲地址 '5' 的共址存儲空間(co-located storage space)。
[0024] 當所述封包緩沖器中的所述多播封包的相同單元數(shù)據被通過端口群中的一個端 口來廣播時,多播控制器112會針對相關于所述端口群的存儲模塊執(zhí)行出列操作。舉例來 說,當所述多播封包的相同單元數(shù)據通過多個端口被廣播至一個多播目標,其中每一端口 都是從端口群PG1?PGn中選出的一個,多播控制器112會分別針對存儲模塊212_1?212_ η執(zhí)行出列操作DG1、DG2、如上所述,針對存儲模塊所執(zhí)行的出列操作包括 從存儲位置讀取第一計數(shù)值、調整從所述存儲位置所讀取的所述第一計數(shù)值、以及將所述 調整后第一計數(shù)值寫入至相同存儲位置。以針對存儲裝置212 j所執(zhí)行的出列操作DG1為 例,會讀取第一計數(shù)值R1,將其值減去1(即R1 = R1-1),然后將新的值寫回。
[0025] 為了增進對第一階存儲裝置202的原理的了解,管理存儲在存儲模塊中的第一計 數(shù)值的范例被提出如下,假設端口群PG1包括圖1所示的出端口 P21、P22以及P23,當多播封 包的單元數(shù)據(例如PKT_CELL0)被存儲至封包緩沖器118,會針對存儲模塊212_1執(zhí)行出 列操作,第一計數(shù)值R1便會被設定為3 (即R1 = 3)并存儲在存儲模塊212_1的存儲空間 中。當所述單元數(shù)據(例如PKT_CELL0)的第一副本通過端口群PG1的出端口被傳送至個 人電腦1〇2_1?102_3的其中之一時,會針對存儲模塊212_1執(zhí)行出列操作來更新第一計 數(shù)值R1。由于第一計數(shù)值R1用來指示尚未被廣播到所述單元數(shù)據(例如PKT_CELL0)的 多播目標的數(shù)目,每當從網絡交換機104傳送所述單元數(shù)據(例如PKT_CELL0)至個人電腦 102_1?102_3的其中之一時,第一計數(shù)值R1便會被減去1。因此,現(xiàn)在存儲模塊212_1中 第一計數(shù)值R1被更新至2。
[0026] 當所述單元數(shù)據(例如PKT_CELL0)的第二副本通過端口群PG1的另一出端口被 傳送至個人電腦1〇2_1?102_3的其中之一時,會針對存儲模塊212_1再次執(zhí)行出列操 作來更新第一計數(shù)值R1。由于第一計數(shù)值R1用來指示尚未被廣播到所述單元數(shù)據(例 如PKT_CELL0)的多播目標的數(shù)目,每當從網絡交換機104傳送所述單元數(shù)據(例如PKT_ CELLO)至個人電腦102_1?102_3的其中之一時,第一計數(shù)值R1便會被減去1。因此,現(xiàn) 在存儲模塊212_1中第一計數(shù)值R1被更新至1。
[0027] 當所述單元數(shù)據(例如PKT_CELL0)的第三副本通過端口群PG1的又一出端口被 傳送至個人電腦1〇2_1?102_3的其中之一時,會針對存儲模塊212_1再次執(zhí)行出列操 作來更新第一計數(shù)值R1。由于第一計數(shù)值R1用來指示尚未被廣播到所述單元數(shù)據(例 如PKT_CELL0)的多播目標的數(shù)目,每當從網絡交換機104傳送所述單元數(shù)據(例如PKT_ CELLO)至個人電腦102_1?102_3的其中之一時,第一計數(shù)值R1便會被減去1。因此,現(xiàn) 在存儲模塊212_1中第一計數(shù)值R1被更新至0。在第一計數(shù)值R1不再是非零值時,表示針 對耦接至屬于端口群PG1的相同出端口的個人電腦102_1?102_3的此部份多播操作已經 完成。
[0028] 本領域的技術人員在閱讀過上述段落后,應能立即明白對存儲在其他存儲模塊 212_2?212_n的其他第一計數(shù)值R2?Rn的管理與操作,故在此便不多做贅述。不言而喻 的是,在每一第一計數(shù)值R1?Rn都等于預定值(即0)時,所述多播封包的所述相同單元 數(shù)據(例如PKT_CELL0)的多播操作便宣告完成。
[0029] 如上所述,原始的復制計數(shù)值RC被分割為第一計數(shù)值R1?Rn,并分別被保持在 不同的存儲模塊212_1?212_n中。因此,需要檢查第一計數(shù)值R1?Rn來判斷所述多播 封包的所述相同單元數(shù)據(例如PKT_CELL0)的所述多播操作是否已經完成。在此實施例 中,圖1所示的第二階存儲裝置204用來快速地處理出列操作。具體來說,第二階存儲裝置 204用來存儲第二計數(shù)值RS,其中第二計數(shù)值RS基于第一計數(shù)值R1?Rn來調整,進而指 示所述多播封包的相同單元數(shù)據的多播操作是否完成。舉例來說,當?shù)诙嫈?shù)值RS達到預 定值(例如〇),表示所述多播封包的相同單元數(shù)據的多播操作已經完成。
[0030] 當所述多播封包被存儲至封包緩沖器118后,多播控制器112會針對第二階存儲 裝置204進一步執(zhí)行入列操作EG'。在此實施例中,使用觸發(fā)器陣列214來實現(xiàn)第二階存儲 裝置204。因此,由入列操作EG'所存儲于觸發(fā)器陣列214中的一組觸發(fā)器的第二計數(shù)值RS 一開始由第一階存儲裝置202中的存儲模塊212_1?212_n的數(shù)目來決定。換句話說,由 于在網絡交換機104和所述多播目標之間的多播封包傳輸尚未開始,因此第一計數(shù)值R1? Rn -開始為非零值,故第二計數(shù)值RS會和不為零的第一計數(shù)值R1?Rn的數(shù)目相等。
[0031] 每當至少一第一計數(shù)值達到預定值時(例如0),多播控制器112會針對第二階存 儲裝置204執(zhí)行至少一出列操作DG'。由于第二階存儲裝置204由觸發(fā)器陣列214來實現(xiàn), 第二階存儲裝置204能夠在一個時鐘周期之內對多個出列操作DG'做出反應。具體而言, 當僅有一個出列操作DG'受到一個第一計數(shù)值達到所述預定值(例如0)而觸發(fā)時,觸發(fā)器 陣列214會直接以調整值(例如RS = RS-1)來更新內部存儲的第二計數(shù)值RS。當有S個 出列操作DG'受到S個第一計數(shù)值達到所述預定值(例如0)而觸發(fā)時,觸發(fā)器陣列214會 直接以調整值(例如RS = RS-S)來更新內部存儲的第二計數(shù)值RS。簡而言之,第二計數(shù)值 RS可以依據以下的虛擬碼來設定。
[0032] RS = PR1+PR2+…+PRn,
[0033] if (Rx ! = 0), then PRx = 1,
[0034] else PRx = 0
[0035] where x = 0, 1,2,…,n
[0036] 當?shù)诙嫈?shù)值RS不再是非零值時,代表所有的第一計數(shù)值R1?Rn都等于所述預 定值(例如〇)。多播控制器112因此便認可所述多播封包的所述相同單元數(shù)據的所述多播 操作的結束。此時,第一計數(shù)值R1?Rn以及第二計數(shù)值RS所占據的存儲空間便可被釋放 出來以供重復使用。
[0037] 盡管第一階存儲裝置202中的每一存儲模塊(例如內存庫)212_1?212_n須花 費若干時鐘周期來完成一個出列操作(其中可包括讀出、減值以及寫回),存儲模塊(例如 內存庫)212_1?212_n能夠同時進行多個出列操作。因此,平行的出列操作等同于在若干 時鐘周期內完成若干出列操作。假設存儲裝置須花費4個時鐘周期來完成一個出列操作、 1個時鐘周期來完成一個入列操作,且多播目標的個數(shù)為4。傳統(tǒng)的基于存儲裝置的計數(shù)器 存儲設計需要至少17 (即1+4*4)個時鐘周期來完成多播封包的所述相同單元數(shù)據的多播 操作。而使用所提出的多內存庫架構的第一階存儲裝置202最少僅需要花費5(即1+4)個 時鐘周期來完成多播封包的所述相同單元數(shù)據的多播操作。因此,本發(fā)明的多內存庫架構 由于其具有可對多個出列操作平行處理的基于存儲裝置的存儲模塊,可以達到滿足高速網 絡所需的封包多播頻寬要求的高出列率。
[0038] 由于所提出的多內存庫架構允許基于存儲裝置的存儲模塊的多出列操作的平行 處理,本發(fā)明因此提出了使用第二階存儲裝置204的多階架構,例如采用觸發(fā)器陣列214, 來及時地滿足所需支援的多個出列操作,其中所述出列操作由第一階存儲裝置202中的存 儲模塊212_1?212_n的多個出列操作的平行操作結果所同時觸發(fā)。簡單來說,無論多少 個第一計數(shù)值同時被減至〇,第二階存儲裝置204都能夠及時地更新第二計數(shù)值RS來立即 反應所述多播操作的即時狀態(tài)。
[0039] 通過存儲裝置以及觸發(fā)器陣列的結合,能夠以可接受的成本和芯片尺寸來滿足 頻寬要求。假設原本的復制計數(shù)器需要w*d個比特,其中w代表條目數(shù)(即所述復制計 數(shù)器的深度),以及d代表每一條目的比特數(shù)。若是存儲裝置相對觸發(fā)器的面積因數(shù)為 1: α (在此經過簡化,假設存儲裝置面積單元為1),當所述復制計數(shù)器僅使用觸發(fā)器來實 現(xiàn)時,所述復制計數(shù)器的面積為α ·¥·(1。然而,當所述復制計數(shù)器使用所提出的混合存 儲架構來實現(xiàn)時,所述一層η內存庫二階(1-layer n-bank2-level)復制計數(shù)器的面積為 η · w · (d_log2n) + α · w · l〇g2n。因此,相較于傳統(tǒng)的設計,在⑴若η〈 α,則l〇g2n < d和 (2)若n> = α,貝lj l〇g2n > d的情況之下,所提出的混合設計可以更節(jié)省成本與芯片尺寸。 然而以上僅供說明用途,本發(fā)明并不以此為限。即任何使用所提出的混合式存儲架構的復 制計數(shù)器存儲設計皆落入本發(fā)明的權利要求范圍之中。
[0040] 在某些應用中,由于存儲在封包緩沖器中的多個多播封包在一個時鐘周期之內同 時觸發(fā)多個入列操作,因此入列率會較高。圖2所示的一層多內存庫復制計數(shù)器架構可能 無法達到高入列率的要求。因此,本發(fā)明另提出多層多內存庫復制計數(shù)器架構來滿足所需 要的高入列率。具體而言,在每一時鐘,每一階的混合式復制計數(shù)器存儲器都支援同時的多 重入列操作,換言之,入端口可以被視為分割為多個部份,以使得每一部份被允許具有較低 入列率。舉例來說,二層多內存庫多階復制計數(shù)器可以被用來處理同時傳輸存儲在封包緩 沖器中的兩個多播封包。
[0041] 請參考圖3,圖3為本發(fā)明另一實施例的多階復制計數(shù)器存儲裝置。多階復制計數(shù) 器存儲裝置300采用兩層多內存庫多階計數(shù)器存儲架構,可以用來實現(xiàn)圖1的網絡交換機 104中的多階復制計數(shù)器存儲裝置114。和多階復制計數(shù)器存儲裝置200相似,多階復制計 數(shù)器存儲裝置300也包括第一階存儲裝置302以及第二階存儲裝置304,其中可以使用具有 多個存儲模塊(例如多個內存庫)311_1?311_n、312_l?312_n的存儲裝置(例如動態(tài) 隨機存取存儲裝置或是靜態(tài)隨機存取存儲裝置)來實現(xiàn)第一階存儲裝置302。此外,可以使 用觸發(fā)器陣列314來實現(xiàn)第二階存儲裝置304。多階復制計數(shù)器存儲裝置200和多階復制 計數(shù)器存儲裝置300之間主要的差異在于,第一階存儲裝置302具有分別對應于兩個不同 的多播封包的兩層存儲模塊。應注意的是,存儲模塊的層數(shù)并非限定為2,可基于實際設計 需求和考量來調整存儲模塊的層數(shù)。
[0042] 在此實施例中,一層存儲模塊包括分別對應于端口群PG1、PG2、…、PGn-l、PGn的 第一存儲模塊311_1、311_2、…311_n-l、311_n ;而另一層存儲模塊包括分別對應于端口群 PG1?PGn(未顯示于圖中)的第二存儲模塊312_1、312_2、一312^-1.312^。多播控制 器112會針對第一存儲模塊311_1?311_n執(zhí)行多個入列操作EG1UEG12、…EGln-l、EGln 來存儲第一計數(shù)值R11、R12、…Rln-l、Rln,以反應在一個時鐘周期內被存儲至封包緩沖器 118的第一多播封包的單元數(shù)據。以及也會針對第二存儲模塊312_1?312_n執(zhí)行多個入 列操作EG21、EG22、…EG2n-1、EG2n來存儲第三計數(shù)值R21、R22、…R2n-1、R2n,以反應在 一個時鐘周期內被存儲至封包緩沖器118的第二多播封包的單元數(shù)據。換言之,第一計數(shù) 值R11?Rln相關于所述第一多播封包的相同單元數(shù)據,而第三計數(shù)值R21?R2n相關于 不同于所述第一多播封包的所述第二多播封包的相同單元數(shù)據。因此,所存儲的第一計數(shù) 值R11?Rln的總和反映尚未被廣播到所述第一多播封包的相同單元數(shù)據的多播目標的數(shù) 目;而所存儲的第三計數(shù)值R21?R2n的總和反映尚未被廣播到所述第二多播封包的相同 單元數(shù)據的多播目標的數(shù)目。
[0043] 除此之外,多播控制器112會執(zhí)行入列操作EG1'來將一二計數(shù)值RS1存儲至觸發(fā) 器陣列314中的一組觸發(fā)器,并且執(zhí)行另一入列操作EG2'來將第四計數(shù)值RS2存儲至觸發(fā) 器陣列314中的另一組觸發(fā)器。第二計數(shù)值RS1基于第一計數(shù)值R11?Rln來調整,進而 指示所述第一多播封包的相同單元數(shù)據的多播操作是否完成。第四計數(shù)值RS2基于第三計 數(shù)值R21?R2n來調整,進而指示所述第二多播封包的相同單元數(shù)據的多播操作是否完成。
[0044] 入列操作EG11?EGln以及EG21?EG2n的原理和上述入列操作EG1?EGn的原 理相同,且入列操作EG1'?EG2'的原理和上述入列操作EG'的原理相同。此外,出列操作 DG11?DGln以及DG21?DG2n的原理和上述出列操作DG1?DGn的原理相同,以及出列操 作DG1'以及DG2'的原理和上述出列操作DG'的原理相同。為簡潔起見,更進一步的細節(jié) 在此便不多做贅述。
[0045] 以上所述僅為本發(fā)明的較佳實施方式,凡依本發(fā)明權利要求所做的均等變化和修 飾,均應屬本發(fā)明的涵蓋范圍。
【權利要求】
1. 一種多階復制計數(shù)器存儲裝置,用于多播封包處理,其特征在于,包括: 第一階存儲裝置,用來存儲關于需要被廣播至多個多播目標的第一多播封包的相同單 元數(shù)據的多個第一計數(shù)值,其中所存儲的所述第一計數(shù)值的總和等于尚未被廣播到所述第 一多播封包的所述相同單元數(shù)據的所述多播目標的數(shù)目;以及 第二階存儲裝置,用來存儲第二計數(shù)值,所述第二計數(shù)值基于所述第一計數(shù)值來調整, 以指示所述第一多播封包的所述相同單元數(shù)據的多播操作是否完成。
2. 如權利要求1所述的多階復制計數(shù)器存儲裝置,其特征在于,所述第一階存儲裝置 包括: 多個存儲模塊,其中所述第一計數(shù)值分別被存儲在所述存儲模塊中。
3. 如權利要求2所述的多階復制計數(shù)器存儲裝置,其特征在于,每一所述存儲模塊都 具有多個存儲空間,以及所述第一計數(shù)值會被存儲在所述存儲模塊中的共址存儲空間。
4. 如權利要求2所述的多階復制計數(shù)器存儲裝置,其特征在于,所述存儲模塊分別對 應至多個端口群,每一所述多播目標耦接至所述端口群中的一個端口;以及通過入列操作 存儲至所述存儲模塊的所述第一計數(shù)值依據屬于有關于所述存儲模塊的所述端口群的所 述多播目標的數(shù)目來設定。
5. 如權利要求2所述的多階復制計數(shù)器存儲裝置,其特征在于,所述存儲模塊分別對 應至多個端口群,每一所述多播目標耦接至所述端口群中的一個端口;以及當所述第一多 播封包的所述相同單元數(shù)據通過關于所述存儲模塊的所述端口群的一個端口來被廣播時, 存儲在所述存儲模塊中的所述第一計數(shù)值通過出列操作來調整。
6. 如權利要求2所述的多階復制計數(shù)器存儲裝置,其特征在于,通過入列操作存儲至 所述第二階存儲裝置的所述第二計數(shù)值依據所述存儲模塊的數(shù)目來設定。
7. 如權利要求2所述的多階復制計數(shù)器存儲裝置,其特征在于,存儲在所述第二階存 儲裝置中的所述第二計數(shù)值通過至少一所述第一計數(shù)值達到預定值所觸發(fā)的至少一出列 操作來調整。
8. 如權利要求1所述的多階復制計數(shù)器存儲裝置,其特征在于,多個多播封包在單一 時鐘周期內被緩沖,所述多個多播封包包括所述第一多播封包以及第二多播封包;所述第 一階存儲裝置另用來存儲關于需要被廣播至所述多播目標的所述第二多播封包的相同單 元數(shù)據的多個第三計數(shù)值;被存儲的所述第三計數(shù)值的總和相等于尚未被廣播到所述第二 多播封包的所述相同單元數(shù)據的多播目標的所述數(shù)目;以及所述第二階存儲裝置另用來存 儲第四計數(shù)值,所述第四計數(shù)值基于所述第三計數(shù)值來調整,以指示所述第二多播封包的 所述相同單元數(shù)據的多播操作是否完成。
9. 如權利要求1所述的多階復制計數(shù)器存儲裝置,其特征在于,所述第一階存儲裝置 通過在K個時鐘周期內更新所述第一計數(shù)值來完成一個出列操作,所述第二階存儲裝置通 過在L個時鐘周期內更新所述第二計數(shù)值來完成一個出列操作,K以及L都是正整數(shù),且 K>L。
10. 如權利要求9所述的多階復制計數(shù)器存儲裝置,其特征在于,所述第一階存儲裝置 為存儲裝置,以及所述第二階存儲裝置為觸發(fā)器陣列。
11. 一種用來管理多播封包處理的方法,其特征在于,包括: 在第一階存儲裝置中存儲關于需要被廣播至多個多播目標的第一多播封包的相同單 元數(shù)據的多個第一計數(shù)值,其中所存儲的所述第一計數(shù)值的總和相等于尚未被廣播到所述 第一多播封包的所述相同單元數(shù)據的所述多播目標的數(shù)目;以及 在第二階存儲裝置中存儲第二計數(shù)值,所述第二計數(shù)值基于所述第一計數(shù)值來調整, 以指示所述第一多播封包的所述相同單元數(shù)據的多播操作是否完成。
12. 如權利要求11所述的用來管理多播封包處理的方法,其特征在于,所述第一階存 儲裝置包括多個存儲模塊;以及存儲所述第一計數(shù)值的步驟包括: 將所述第一計數(shù)值分別存儲至所述存儲模塊。
13. 如權利要求12所述的用來管理多播封包處理的方法,其特征在于,每一所述存儲 模塊都具有多個存儲空間,以及所述將所述第一計數(shù)值分別存儲至所述存儲模塊的步驟包 括: 將所述第一計數(shù)值存儲至所述存儲模塊中的共址存儲空間。
14. 如權利要求12所述的用來管理多播封包處理的方法,其特征在于,所述存儲模塊 分別對應至多個端口群;每一所述多播目標耦接至所述端口群的一個端口;以及所述用來 管理多播封包處理的方法還包括: 當針對所述存儲模塊執(zhí)行入列操作時,依據屬于有關于所述存儲模塊的所述端口群的 所述多播目標的數(shù)目來設定存儲至所述存儲模塊的所述第一計數(shù)值。
15. 如權利要求12所述的用來管理多播封包處理的方法,其特征在于,所述存儲模塊 分別對應至多個端口群;每一多播目標耦接至所述端口群的一個端口;以及所述用來管理 多播封包處理的方法還包括: 當所述第一多播封包的所述相同單元數(shù)據通過關于所述存儲模塊的所述端口群的一 個端口來被廣播時,針對所述存儲模塊執(zhí)行出列操作來調整存儲在所述存儲模塊中的所述 第一計數(shù)值。
16. 如權利要求12所述的用來管理多播封包處理的方法,其特征在于,還包括: 當針對所述第二階存儲裝置執(zhí)行入列操作時,依據所述存儲模塊的數(shù)目來設定存儲至 所述第二階存儲裝置的所述第二計數(shù)值。
17. 如權利要求12所述的用來管理多播封包處理的方法,其特征在于,還包括: 當至少一出列操作因至少一所述第一計數(shù)值達到預定值而被觸發(fā)時,調整存儲在所述 第二階存儲裝置中的所述第二計數(shù)值。
18. 如權利要求11所述的用來管理多播封包處理的方法,其特征在于,多個多播封包 在一單一時鐘周期內被緩沖,所述多個多播封包包括所述第一多播封包以及第二多播封 包;以及所述用來管理多播封包處理的方法還包括: 將關于需要被廣播至所述多播目標的所述第二多播封包的相同單元數(shù)據的多個第三 計數(shù)值存儲至所述第一階存儲裝置,其中被存儲的所述第三計數(shù)值的總和相等于尚未被廣 播到所述第二多播封包的所述相同單元數(shù)據的多播目標的所述數(shù)目;以及 將第四計數(shù)值存儲至所述第二階存儲裝置,其中所述第四計數(shù)值基于所述第三計數(shù)值 來調整,以指示所述第二多播封包的所述相同單元數(shù)據的多播操作是否完成。
19. 如權利要求11所述的用來管理多播封包處理的方法,其特征在于,還包括: 使用所述第一階存儲裝置來通過在K個時鐘周期內更新所述第一計數(shù)值以完成一個 出列操作;以及 使用所述第二階存儲裝置來通過在L個時鐘周期內更新所述第二計數(shù)值以完成一個 出列操作; 其中K以及L都系正整數(shù),且K>L。
20.如權利要求19所述的用來管理多播封包處理的方法,其特征在于,所述第一階存 儲裝置為存儲裝置,以及所述第二階存儲裝置為觸發(fā)器陣列。
【文檔編號】H03K23/40GK104124962SQ201410169530
【公開日】2014年10月29日 申請日期:2014年4月25日 優(yōu)先權日:2013年4月25日
【發(fā)明者】張建雄 申請人:聯(lián)發(fā)科技股份有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
五峰| 忻州市| 东明县| 隆德县| 成都市| 绿春县| 大连市| 云林县| 如东县| 开江县| 交口县| 婺源县| 临夏县| 镇江市| 闸北区| 绍兴市| 阿鲁科尔沁旗| 怀仁县| 阳朔县| 高安市| 华坪县| 通化市| 古丈县| 获嘉县| 准格尔旗| 海伦市| 文山县| 黎平县| 兰州市| 哈密市| 双辽市| 朝阳区| 綦江县| 乐平市| 五家渠市| 湘潭市| 普兰县| 永福县| 从江县| 浑源县| 巴东县|