專利名稱:一種信元交換方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)通信技術(shù),尤其涉及數(shù)據(jù)通信技術(shù)中的一種信元交換方法和裝置。
背景技術(shù):
目前的交換裝置中,交換芯片一般采用兩種架構(gòu)來實(shí)現(xiàn),一種是crossbar(交叉 開關(guān)矩陣)架構(gòu),另一種是shared-memory (共享內(nèi)存)架構(gòu)。采用crossbar架構(gòu)進(jìn)行信元交換需要考慮數(shù)據(jù)輸入輸出的兩級調(diào)度問題,在輸 入輸出之間需要進(jìn)行匹配,即輸入端和輸出端需要根據(jù)自身的空閑情況進(jìn)行匹配和調(diào)度, 再與對方進(jìn)行協(xié)商。調(diào)度算法的復(fù)雜性隨著輸入輸出端口的增加而成指數(shù)增加,在輸入輸 出端口較多時,調(diào)度算法的復(fù)雜度極大。在這種crossbar架構(gòu)的基礎(chǔ)上進(jìn)一步發(fā)展出來的帶交叉點(diǎn)緩存的crossbar結(jié)構(gòu) 在每個交叉點(diǎn)都增加了緩存,雖然不再需要匹配算法,但是需要的交叉點(diǎn)緩存數(shù)量為輸入 輸出端口數(shù)的平方倍,在端口數(shù)量較多的情況下,交叉點(diǎn)緩存數(shù)量達(dá)到不可實(shí)現(xiàn)的程度。采用share-memory架構(gòu)使用了共享緩存,相對于crossbar架構(gòu)減少了對緩存資 源的消耗,但是在向多個共享緩存中寫入信元時,由于是按照各個緩存的深度輪流寫入的, 以使得各個緩存的深度均勻,但是這就有可能使得不同的輸出端口在同一時間從同一緩存 中讀數(shù)據(jù),造成沖突。如果增大共享緩存的帶寬,允許更多的輸出端口同時讀取數(shù)據(jù),可以 降低這種沖突發(fā)生的概率,但同時多個輸出端口需要在統(tǒng)一緩存中讀數(shù)據(jù)時的調(diào)度復(fù)雜度 也增加了,在端口數(shù)量較多的時候,很難解決沖突的問題。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供一種信元交換方法和裝置,以實(shí)現(xiàn)在較簡單的調(diào)度下無沖突的 進(jìn)行信元交換。一種信元交換方法,包括將從輸入端口接收的信元緩存在所述輸入端口對應(yīng)的第一 fifo中;根據(jù)信元中的目的地址信息或目的端口信息,確定所述信元的輸出端口 ;按照第一 RAM組的位寬,將所述第一 fifo中的信元拆分為L個數(shù)據(jù)塊,并分別寫 入第一 RAM組中的各RAM中,所述第一 RAM組中包括的RAM個數(shù)大于或等于L個,其中,L = 信元長度/第一 RAM組的位寬;從為所述輸出端口分配的起始時隙開始,通過一個周期中的L個時隙分別從所述 第一 RAM組的L個RAM中依次讀出所述信元的各數(shù)據(jù)塊,并輸出,其中,不同輸出端口分配 的起始時隙不同,一個周期中包括的時隙數(shù)大于或等于輸出端口的數(shù)量,并大于或等于L。進(jìn)一步,所述從為所述輸出端口分配的起始時隙開始,通過一個周期中的L個時 隙分別從所述第一 RAM組的L個RAM中依次讀出所述信元的各數(shù)據(jù)塊,并輸出,具體包括從為所述輸出端口分配的起始時隙開始,通過一個周期中的L個時隙分別從所述第一 RAM組的L個RAM中依次讀出所述信元的各數(shù)據(jù)塊,并緩存在所述信元的輸出端口所 對應(yīng)的第二 fifo中;通過所述輸出端口輸出所述第二 fifo中緩存的信元。較佳的,所述將第一 fifo中的信元拆分為L個數(shù)據(jù)塊,并分別寫入第一 RAM組中 的各RAM中具體為按照第一 RAM組的位寬,將所述第一 fifo中的信元拆分成L個數(shù)據(jù)塊,從預(yù)先為 所述輸入端口分配的起始時隙開始,通過L個時隙將所述L個數(shù)據(jù)塊依次寫入第一 RAM組 中,每個時隙向第一 RAM組中的相應(yīng)RAM中寫入一個數(shù)據(jù)塊。一種信元交換裝置,包括與輸入端口數(shù)量相同的第一 fifo,用于存儲從與之對應(yīng)的輸入端口接收的信元;確定單元,用于根據(jù)所述信元中的目的地址信息或目的端口信息,確定所述信元 的輸出端口;第一 RAM組,包括不少于L個RAM,用于緩存所述信元,其中,L=信元長度/第一 RAM組的位寬;輸入控制單元,用于按照第一 RAM組的位寬,將所述第一 fifo中的信元拆分為L 個數(shù)據(jù)塊,并分別寫入所述第一 RAM組中的各RAM中;輸出控制單元,用于根據(jù)所述確定單元確定的所述信元的輸出端口,從為所述輸 出端口分配的起始時隙開始,通過一個周期中的L個時隙分別從所述第一 RAM組的L個RAM 中依次讀出所述信元的各數(shù)據(jù)塊,并輸出,其中,不同輸出端口分配的起始時隙不同,一個 周期中包括的時隙數(shù)大于或等于輸出端口的數(shù)量,并大于或等于L。進(jìn)一步,裝置中還包括與輸出端口數(shù)量相同的第二 fifo,用于緩存對應(yīng)的輸出端口從所述第一 RAM組中 讀出的數(shù)據(jù);所述輸出控制單元具體用于,根據(jù)所述確定單元確定的所述信元的輸出端口,從 為所述輸出端口分配的起始時隙開始,通過一個周期中的L個時隙分別從所述第一 RAM組 的L個RAM中依次讀出所述信元的各數(shù)據(jù)塊,并緩存在所述輸出端口所對應(yīng)的第二 fifo 中,并在一個信元讀取完畢后,從對應(yīng)的輸出端口輸出所述第二 fifo中緩存的信元。進(jìn)一步,所述第一控制單元具體用于按照第一 RAM組的位寬,將所述第一 fifo中的信元拆分成L個數(shù)據(jù)塊,從預(yù)先為 所述輸入端口分配的起始時隙開始,通過L個時隙將所述L個數(shù)據(jù)塊依次寫入第一 RAM組 中,每個時隙向第一 RAM組中的相應(yīng)RAM中寫入一個數(shù)據(jù)塊。一種信元交換方法,包括將從輸入端口接收的信元緩存在所述輸入端口對應(yīng)的第一 fifo中;按照第一 RAM組的位寬,將所述第一 fifo中的信元拆分成L個數(shù)據(jù)塊,從預(yù)先為 所述輸入端口分配的起始時隙開始,通過一個周期中的L個時隙將所述L個數(shù)據(jù)塊依次寫 入所述輸入端口所屬的分組對應(yīng)的第一 RAM組中,每個時隙向所述第一 RAM組中的相應(yīng)RAM 中寫入一個數(shù)據(jù)塊,不同輸入端口分配的起始時隙不同,所述第一 RAM組中包括的RAM個數(shù) 大于或等于L個,其中,L =信元長度/第一 RAM組的位寬,一個周期包括的時隙數(shù)大于或 等于一個分組中所包括的輸入端口數(shù)量,并且大于或等于L ;
根據(jù)所述信元中的目的地址信息或目的端口信息,確定所述信元的輸出端口和該 輸出端口所屬的分組,每組的輸出端口數(shù)小于或等于一個周期中時隙的個數(shù);將所述第一 RAM組中的信元寫入所述信元的輸出端口所屬的分組所對應(yīng)的第二 RAM組中,所述第二 RAM組的位寬與所述信元長度相等。將所述第二 RAM組中的信元拆分為L個數(shù)據(jù)塊,并分別寫入所述輸出端口所屬分 組對應(yīng)的第三RAM組中的各RAM中,所述第三RAM組的位寬與所述第一 RAM組相同,所述第 三RAM組中包括的RAM個數(shù)大于或等于L個;從為所述輸出端口分配的起始時隙開始,通過一個周期中的L個時隙分別從所述 第三RAM組的L個RAM中依次讀出所述信元的各數(shù)據(jù)塊,并輸出,其中,不同輸出端口分配 的起始時隙不同,一個周期中包括的時隙數(shù)大于或等于輸出端口的數(shù)量,并大于或等于L。進(jìn)一步,所述從為所述輸出端口分配的起始時隙開始,通過一個周期中的L個時 隙分別從所述第三RAM組的L個RAM中依次讀出所述信元的各數(shù)據(jù)塊,并輸出,具體包括從為所述輸出端口分配的起始時隙開始,通過一個周期中的L個時隙分別從所述 第三RAM組的L個RAM中依次讀出所述信元的各數(shù)據(jù)塊,并緩存在所述信元的輸出端口所 對應(yīng)的第二 fifo中,以及通過所述輸出端口輸出所述第二 fifo中緩存的信元。較佳的,所述每個分組中輸入端口或輸出端口的個數(shù)不超過L個。進(jìn)一步,所述將信元寫入所述信元的輸出端口所屬的分組所對應(yīng)的第三RAM組中 與所述信元輸出端口對應(yīng)的RAM中,具體為將所述信元寫入所述信元的輸出端口所屬的分組和所述信元的輸入端口所屬的 分組共同對應(yīng)的第二 RAM組中的與所述信元輸出端口對應(yīng)的RAM中。進(jìn)一步,所述將信元寫入所述信元的輸出端口所屬的分組所對應(yīng)的第三RAM組中 與所述信元輸出端口對應(yīng)的RAM中,具體為將所述信元寫入所述信元的輸出端口所屬的分組對應(yīng)的各第二 RAM組中數(shù)據(jù)量 較少的一個對應(yīng)所述輸出端口的RAM中。較佳的,所述將所述第二 RAM組中的信元拆分為L個數(shù)據(jù)塊,并分別寫入所述輸出 端口所屬分組對應(yīng)的第三RAM組中的各RAM中具體包括輪流將對應(yīng)同一第三RAM組的各第二 RAM組中較早存儲的信元拆分為L個數(shù)據(jù) 塊,并分別寫入所述輸出端口所屬分組對應(yīng)的第三RAM組中的各RAM中。進(jìn)一步,所述將信元寫入第三RAM組中,具體為根據(jù)所述信元的輸出端口,將所述信元寫入所述第三RAM中對應(yīng)所述輸出端口的 區(qū)域。一種信元交換裝置,包括與輸入端口數(shù)量相同的第一 fifo,用于存儲從與之對應(yīng)的輸入端口接收的信元;確定單元,用于根據(jù)所述信元中的目的地址信息或目的端口信息,確定所述信元 的輸出端口和該輸出端口所屬的分組,每組的輸出端口數(shù)小于或等于一個周期中時隙的個 數(shù);與輸入端口分組數(shù)量相等的第一 RAM組,包括不少于L個RAM,用于緩存所述信元, 其中,L =信元長度/第一 RAM組的位寬;M個第二RAM組,位寬與所述信元長度相等,用于緩存所述信元,其中M為輸入端口的分組數(shù)與輸出端口的分組數(shù)的乘積;與輸出端口分組數(shù)量相等的第三RAM組,包括不少于L個RAM,用于緩存所述信元, 位寬與所述第一 RAM組相同;第一控制單元,用于按照所述第一 RAM組的位寬,將所述第一 fifo中的信元拆分 成L個數(shù)據(jù)塊,從預(yù)先為所述輸入端口分配的起始時隙開始,通過一個周期中的L個時隙將 所述L個數(shù)據(jù)塊依次寫入所述輸入端口所屬的分組對應(yīng)的第一 RAM組中,每個時隙向所述 第一 RAM組中的相應(yīng)RAM中寫入一個數(shù)據(jù)塊,不同輸入端口分配的起始時隙不同,其中,一 個周期包括的時隙數(shù)大于或等于一個分組中所包括的輸入端口數(shù)量;第二控制單元,用于根據(jù)所述確定單元確定的所述信元的輸出端口所屬的分組, 將所述第一 RAM組中的信元寫入所述信元的輸出端口所屬的分組對應(yīng)的第二 RAM組中;第三控制單元,用于將所述第二 RAM組中的信元拆分為L個數(shù)據(jù)塊,并分別寫入所 述輸出端口所屬分組對應(yīng)的第三RAM組中的各RAM中;第四控制單元,用于從為所述信元的輸出端口分配的起始時隙開始,通過一個周 期中的L個時隙分別從所述第三RAM組的L個RAM中依次讀出所述信元的各數(shù)據(jù)塊,并輸 出,其中,不同輸出端口分配的起始時隙不同,一個周期中包括的時隙數(shù)大于或等于輸出端 口的數(shù)量,并大于或等于L。進(jìn)一步,裝置中還包括與輸出端口數(shù)量相同的第二 fifo,用于緩存對應(yīng)的輸出端口從所述第三RAM組中 讀出的數(shù)據(jù);所述第四控制單元具體用于,根據(jù)所述確定單元確定的所述信元的輸出端口,從 為所述輸出端口分配的起始時隙開始,通過一個周期中的L個時隙分別從所述第三RAM組 的L個RAM中依次讀出所述信元的各數(shù)據(jù)塊,并緩存在所述輸出端口所對應(yīng)的第二 fifo 中,并在一個信元讀取完畢后,從對應(yīng)的輸出端口輸出所述第二 fifo中緩存的信元。進(jìn)一步,所述第二控制單元具體用于,根據(jù)所述確定單元確定的所述信元的輸出 端口所屬的分組,將所述信元寫入所述信元的輸出端口所屬的分組和所述信元的輸入端口 所屬的分組共同對應(yīng)的第二 RAM組中的與所述信元輸出端口對應(yīng)的RAM中。進(jìn)一步,所述第二控制單元具體用于,根據(jù)所述確定單元確定的所述信元的輸出 端口所屬的分組,將所述信元寫入所述信元的輸出端口所屬的分組對應(yīng)的各第二 RAM組中 數(shù)據(jù)量較少的一個對應(yīng)所述輸出端口的RAM中。較佳的,所述第三控制單元具體用于,輪流將對應(yīng)同一第三RAM組的各第二 RAM組 中較早存儲的信元拆分為L個數(shù)據(jù)塊,并分別寫入所述輸出端口所屬分組對應(yīng)的第三RAM 組中的各RAM中。進(jìn)一步,所述第三控制單元具體用于,將所述第二 RAM組中的信元拆分為L個數(shù)據(jù) 塊,并根據(jù)所述信元的輸出端口,分別寫入所述輸出端口所屬分組對應(yīng)的第三RAM組中的 各RAM中對應(yīng)所述輸出端口的區(qū)域。將從輸入端口接收的信元緩存在所述輸入端口對應(yīng)的第一 fifo中;根據(jù)信元中的目的地址信息或目的端口信息,確定所述信元的輸出端口 ;按照第一 RAM組的位寬,將所述第一 fifo中的信元拆分為L個數(shù)據(jù)塊,并分別寫 入第一 RAM組中的各RAM中,所述第一 RAM組中包括的RAM個數(shù)大于或等于L個,其中,L =
9信元長度/第一 RAM組的位寬;從為所述輸出端口分配的起始時隙開始,通過一個周期中的L個時隙分別從所述 第一 RAM組的L個RAM中依次讀出所述信元的各數(shù)據(jù)塊,并緩存在所述信元的輸出端口所 對應(yīng)的第二 fifo中,其中,不同輸出端口分配的起始時隙不同,一個周期中包括的時隙數(shù) 大于或等于輸出端口的數(shù)量,并大于或等于L ;通過所述輸出端口輸出所述第二 fifo中緩存的信元。進(jìn)一步,所述將第一 fifo中的信元拆分為L個數(shù)據(jù)塊,并分別寫入第一 RAM組中 的各RAM中具體為按照第一 RAM組的位寬,將所述第一 fifo中的信元拆分成L個數(shù)據(jù)塊,從預(yù)先為 所述輸入端口分配的起始時隙開始,通過L個時隙將所述L個數(shù)據(jù)塊依次寫入第一 RAM組 中,每個時隙向第一 RAM組中的相應(yīng)RAM中寫入一個數(shù)據(jù)塊。一種信元交換裝置,包括與輸入端口數(shù)量相同的第一 fifo,用于存儲從與之對應(yīng)的輸入端口接收的信元;第一 RAM組,包括不少于L個RAM,用于緩存所述信元,其中,L=信元長度/第一 RAM組的位寬;與輸出端口數(shù)量相同的第二 fifo,用于緩存從所述第一 RAM組中讀出的數(shù)據(jù);輸入控制單元,用于按照第一 RAM組的位寬,將所述第一 fifo中的信元拆分為L 個數(shù)據(jù)塊,并分別寫入所述第一 RAM組中的各RAM中;輸出控制單元,用于根據(jù)所述確定單元確定的所述信元的輸出端口,從為所述輸 出端口分配的起始時隙開始,通過一個周期中的L個時隙分別從所述第一 RAM組的L個RAM 中依次讀出所述信元的各數(shù)據(jù)塊,并緩存在所述輸出端口所對應(yīng)的第二 fifo中,并在一個 信元讀取完畢后,從對應(yīng)的輸出端口輸出所述信元,其中,不同輸出端口分配的起始時隙不 同,一個周期中包括的時隙數(shù)大于或等于輸出端口的數(shù)量,并大于或等于L。進(jìn)一步,所述第一控制單元具體用于按照第一 RAM組的位寬,將所述第一 fifo中的信元拆分成L個數(shù)據(jù)塊,從預(yù)先為 所述輸入端口分配的起始時隙開始,通過L個時隙將所述L個數(shù)據(jù)塊依次寫入第一 RAM組 中,每個時隙向第一 RAM組中的相應(yīng)RAM中寫入一個數(shù)據(jù)塊。一種信元交換方法,包括將從輸入端口接收的信元緩存在所述輸入端口對應(yīng)的第一 fifo中;按照第一 RAM組的位寬,將所述第一 fifo中的信元拆分成L個數(shù)據(jù)塊,從預(yù)先為 所述輸入端口分配的起始時隙開始,通過一個周期中的L個時隙將所述L個數(shù)據(jù)塊依次寫 入所述輸入端口所屬的分組對應(yīng)的第一 RAM組中,每個時隙向所述第一 RAM組中的相應(yīng)RAM 中寫入一個數(shù)據(jù)塊,不同輸入端口分配的起始時隙不同,所述第一 RAM組中包括的RAM個數(shù) 大于或等于L個,其中,L =信元長度/第一 RAM組的位寬,一個周期包括的時隙數(shù)大于或 等于一個分組中所包括的輸入端口數(shù)量,并且大于或等于L ;根據(jù)所述信元中的目的地址信息或目的端口信息,確定所述信元的輸出端口和該 輸出端口所屬的分組,每組的輸出端口數(shù)小于或等于一個周期中時隙的個數(shù);將所述第一 RAM組中的信元寫入所述信元的輸出端口所屬的分組所對應(yīng)的第二 RAM組中,所述第二 RAM組的位寬與所述信元長度相等。
10
將所述第二 RAM組中的信元拆分為L個數(shù)據(jù)塊,并分別寫入所述輸出端口所屬分 組對應(yīng)的第三RAM組中的各RAM中,所述第三RAM組的位寬與所述第一 RAM組相同,所述第 三RAM組中包括的RAM個數(shù)大于或等于L個;從為所述輸出端口分配的起始時隙開始,通過一個周期中的L個時隙分別從所述 第三RAM組的L個RAM中依次讀出所述信元的各數(shù)據(jù)塊,并緩存在所述信元的輸出端口所 對應(yīng)的第二 fifo中,其中,不同輸出端口分配的起始時隙不同,一個周期中包括的時隙數(shù) 大于或等于輸出端口的數(shù)量,并大于或等于L ;通過所述輸出端口輸出所述第二 fifo中緩存的信元。較佳的,所述每個分組中輸入端口或輸出端口的個數(shù)不超過L個。進(jìn)一步,所述將信元寫入所述信元的輸出端口所屬的分組所對應(yīng)的第三RAM組中 與所述信元輸出端口對應(yīng)的RAM中,具體為將所述信元寫入所述信元的輸出端口所屬的分組和所述信元的輸入端口所屬的 分組共同對應(yīng)的第二 RAM組中的與所述信元輸出端口對應(yīng)的RAM中?;蛘?,所述將信元寫入所述信元的輸出端口所屬的分組所對應(yīng)的第三RAM組中與 所述信元輸出端口對應(yīng)的RAM中,具體為將所述信元寫入所述信元的輸出端口所屬的分組對應(yīng)的各第二 RAM組中數(shù)據(jù)量 較少的一個對應(yīng)所述輸出端口的RAM中。進(jìn)一步,所述將所述第二 RAM組中的信元拆分為L個數(shù)據(jù)塊,并分別寫入所述輸出 端口所屬分組對應(yīng)的第三RAM組中的各RAM中具體包括輪流將對應(yīng)同一第三RAM組的各第二 RAM組中較早存儲的信元拆分為L個數(shù)據(jù) 塊,并分別寫入所述輸出端口所屬分組對應(yīng)的第三RAM組中的各RAM中。較佳的,所述將信元寫入第三RAM組中,具體為根據(jù)所述信元的輸出端口,將所述信元寫入所述第三RAM中對應(yīng)所述輸出端口的 區(qū)域。一種信元交換裝置,包括與輸入端口數(shù)量相同的第一 fifo,用于存儲從與之對應(yīng)的輸入端口接收的信元;確定單元,用于根據(jù)所述信元中的目的地址信息或目的端口信息,確定所述信元 的輸出端口和該輸出端口所屬的分組,每組的輸出端口數(shù)小于或等于一個周期中時隙的個 數(shù);與輸入端口分組數(shù)量相等的第一 RAM組,包括不少于L個RAM,用于緩存所述信元, 其中,L =信元長度/第一 RAM組的位寬;M個第二RAM組,位寬與所述信元長度相等,用于緩存所述信元,其中M為輸入端口 的分組數(shù)與輸出端口的分組數(shù)的乘積;與輸出端口分組數(shù)量相等的第三RAM組,包括不少于L個RAM,用于緩存所述信元, 位寬與所述第一 RAM組相同;與輸出端口數(shù)量相同的第二 fifo,用于存儲從所述第三RAM組中讀出的信元;第一控制單元,用于按照所述第一 RAM組的位寬,將所述第一 fifo中的信元拆分 成L個數(shù)據(jù)塊,從預(yù)先為所述輸入端口分配的起始時隙開始,通過一個周期中的L個時隙將 所述L個數(shù)據(jù)塊依次寫入所述輸入端口所屬的分組對應(yīng)的第一 RAM組中,每個時隙向所述第一 RAM組中的相應(yīng)RAM中寫入一個數(shù)據(jù)塊,不同輸入端口分配的起始時隙不同,其中,一 個周期包括的時隙數(shù)大于或等于一個分組中所包括的輸入端口數(shù)量;第二控制單元,用于根據(jù)所述確定單元確定的所述信元的輸出端口所屬的分組, 將所述第一 RAM組中的信元寫入所述信元的輸出端口所屬的分組對應(yīng)的第二 RAM組中;第三控制單元,用于將所述第二 RAM組中的信元拆分為L個數(shù)據(jù)塊,并分別寫入所 述輸出端口所屬分組對應(yīng)的第三RAM組中的各RAM中;第四控制單元,用于從為所述信元的輸出端口分配的起始時隙開始,通過一個周 期中的L個時隙分別從所述第三RAM組的L個RAM中依次讀出所述信元的各數(shù)據(jù)塊,并緩 存在所述信元的輸出端口所對應(yīng)的第二 fifo中,并在一個信元讀取完畢后,從對應(yīng)的輸出 端口輸出所述信元,其中,不同輸出端口分配的起始時隙不同,一個周期中包括的時隙數(shù)大 于或等于輸出端口的數(shù)量,并大于或等于L。進(jìn)一步,所述第二控制單元具體用于,根據(jù)所述確定單元確定的所述信元的輸出 端口所屬的分組,將所述信元寫入所述信元的輸出端口所屬的分組和所述信元的輸入端口 所屬的分組共同對應(yīng)的第二 RAM組中的與所述信元輸出端口對應(yīng)的RAM中?;蛘?,所述第二控制單元具體用于,根據(jù)所述確定單元確定的所述信元的輸出端 口所屬的分組,將所述信元寫入所述信元的輸出端口所屬的分組對應(yīng)的各第二 RAM組中數(shù) 據(jù)量較少的一個對應(yīng)所述輸出端口的RAM中。進(jìn)一步,所述第三控制單元具體用于,輪流將對應(yīng)同一第三RAM組的各第二 RAM組 中較早存儲的信元拆分為L個數(shù)據(jù)塊,并分別寫入所述輸出端口所屬分組對應(yīng)的第三RAM 組中的各RAM中。較佳的,所述第三控制單元具體用于,將所述第二 RAM組中的信元拆分為L個數(shù)據(jù) 塊,并根據(jù)所述信元的輸出端口,分別寫入所述輸出端口所屬分組對應(yīng)的第三RAM組中的 各RAM中對應(yīng)所述輸出端口的區(qū)域。本發(fā)明實(shí)施例提供一種信元交換方法和裝置,通過在每個輸入端口增加fifo,緩 存對應(yīng)的輸入端口所輸入的信元,并將各個fifo中緩存的信元拆分為多個數(shù)據(jù)塊寫入共 享緩存,再由輸出端口通過不同的時隙讀出信元,并輸出,完成交換,由于增加了 fifo對信 元進(jìn)行了緩存,進(jìn)而可以使得各個不同端口需要對同一緩存進(jìn)行讀寫時,各端口分別在不 同的時隙進(jìn)行讀寫,避免了沖突且容易調(diào)度。
圖1為本發(fā)明實(shí)施例中按照時隙向RAM組中寫入信元的示意圖;圖2為本發(fā)明實(shí)施例中按照時隙從RAM組中讀出信元的示意圖;圖3為本發(fā)明實(shí)施例提供的信元交換方法流程圖之一;圖4為本發(fā)明實(shí)施例提供的信元交換裝置結(jié)構(gòu)示意圖之一;圖5為本發(fā)明實(shí)施例提供的信元交換方法流程圖之二 ;圖6為本發(fā)明實(shí)施例提供的信元交換裝置結(jié)構(gòu)示意圖之二 ;圖7為本發(fā)明實(shí)施例提供的一種具體的信元交換裝置結(jié)構(gòu)示意圖;圖8為本發(fā)明實(shí)施例提供的從第二 RAM組中輪詢讀取信元的示意圖。
具體實(shí)施例方式本發(fā)明實(shí)施例提供一種信元交換方法和裝置,在每個輸入輸出端口都增加了一個 對應(yīng)的fifo來緩存所輸入輸出的信元,并為每個輸入輸出端口分配寫入或讀出緩存的起 始時隙,各端口從各自的起始時隙開始,通過一個周期中的L個時隙寫入或讀出緩存中的 信元,其中,L =信元長度/第一 RAM的位寬,在每個端口都需要進(jìn)行寫入或讀取時,每個時 隙都有且只有一個端口對一個RAM進(jìn)行讀取或?qū)懭耄瑥亩苊饬司彺孀x寫的沖突。以576位的信元和位寬為16位的RAM組為例在進(jìn)行寫入時,如圖1所示,每個輸入端口都通過36個時隙分別對RAM組中的36 個RAM進(jìn)行寫入,每次寫入一個RAM的位寬的長度,36個時隙剛好可以將一個信元全部寫入 到該RAM組中,由于每個輸入端口的起始時隙都不同,比前一個端口晚一個時隙,并且都是 從RAM組的第一個RAM開始一次寫入,避免了輸入端口間寫入的沖突,且在進(jìn)行一個周期以 后,每個輸入端口都處于全速寫的狀態(tài),沒有對帶寬造成浪費(fèi)。同樣,在進(jìn)行讀出時,如圖2所示,每個輸出端口都通過36個時隙分別從RAM組中 的36個RAM讀出,每次讀出一個RAM的位寬的長度,36個時隙剛好可以將一個信元從該RAM 組中全部讀出,由于每個輸出端口的起始時隙都不同,比前一個端口晚一個時隙,并且都是 從RAM組的第一個RAM開始一次讀取,避免了輸出端口間讀取緩存的沖突,且在進(jìn)行一個周 期以后,每個輸入端口都處于全速讀的狀態(tài),沒有對帶寬造成浪費(fèi)。根據(jù)端口的數(shù)量,設(shè)置的緩存數(shù)量的不同,本發(fā)明實(shí)施例具體提供如下幾種實(shí)施 方式實(shí)施例一、僅在信元交換裝置中設(shè)置一個RAM組。如圖3所示,本發(fā)明實(shí)施例提供的信元交換方法包括步驟S301、將從輸入端口接收的信元緩存在輸入端口對應(yīng)的第一 fifo中;步驟S302、根據(jù)信元中的目的地址信息或目的端口信息,確定信元的輸出端口 ;步驟S303、按照第一 RAM組的位寬,將第一 fifo中的信元拆分為L個數(shù)據(jù)塊,并 分別寫入第一 RAM組中的各RAM中,第一 RAM組中至少包括L個RAM,L =信元長度/第一 RAM的位寬;步驟S304、從為該輸出端口分配的起始時隙開始,通過一個周期中的L個時隙分 別從第一 RAM組的L個RAM中依次讀出該信元的各數(shù)據(jù)塊,并通過該信元的輸出端口輸出。進(jìn)一步,在步驟S304中,還可以將從第一 RAM組的L個RAM中依次讀出該信元的 各數(shù)據(jù)塊存儲到與該信元的輸出端口對應(yīng)的第二 fifo中,待該信元的所有數(shù)據(jù)塊全部讀 出后,再從第二 fifo中輸出該信元。為防止寫入時造成緩存沖突,在步驟S303中,同樣也是按照時隙順序?qū)懭?,即,?照第一 RAM組的位寬,將第一 fifo中的信元拆分成L個數(shù)據(jù)塊,從預(yù)先為輸入端口分配的 起始時隙開始,通過L個時隙將L個數(shù)據(jù)塊依次寫入第一 RAM組中,每個時隙向第一 RAM組 中的相應(yīng)RAM中寫入一個數(shù)據(jù)塊。以輸出端口從第一 RAM組中寫數(shù)據(jù)為例,由于給不同的輸出端口分配的起始時隙 不同,而各個輸出端口從起始時隙開始,都從第一 RAM組的第一個RAM開始讀取數(shù)據(jù),所以 各個輸出端口錯開了讀取時間,對于緩存來講,每個時隙都有輸出端口在進(jìn)行讀取,并沒有位寬的浪費(fèi)。在寫入時,也是同樣,由于給不同的輸入端口分配的時隙不同,在每個時隙中,各 個輸入端口都對第一 RAM中不同的RAM進(jìn)行寫入操作,避免了沖突。為保證每個輸出端口都能夠分到不同的時隙,一個周期中所包含的時隙數(shù)目要大 于或者等于輸出端口的數(shù)量,當(dāng)然,為保證對于每個RAM來講,能夠達(dá)到每個時隙都有輸出 端口在讀取數(shù)據(jù),一個周期中的時隙數(shù)目應(yīng)該等于輸出端口的數(shù)量。當(dāng)輸入端口數(shù)量和輸 出端口數(shù)量不同時,一個周期中所包含的時隙數(shù)目要大于或等于較多的一個,即,如果輸入 端口數(shù)量大于輸出端口數(shù)量,一個周期中所包含的時隙數(shù)目要大于或等于輸入端口數(shù)量, 反之,則一個周期中所包含的時隙數(shù)目要大于或等于輸出端口數(shù)量。同時,一個周期中所包含的時隙數(shù)目還要大于或等于L,這樣才能夠保證在一個周 期內(nèi)將一個信元完整的寫入到第一 RAM組中去。當(dāng)?shù)谝?RAM組中包括的RAM數(shù)目大于L時,只有前L個RAM中會被寫入數(shù)據(jù)。較佳的情況是,第一 RAM組中包括L個RAM,一個周期所包含的時隙數(shù)目剛好等于 輸出端口數(shù)量和L中較大的一個,這樣既保證了數(shù)據(jù)讀取的順利進(jìn)行,又沒有浪費(fèi)緩存資 源。當(dāng)?shù)谝?RAM組中包括L個RAM時,每個RAM中存儲該信元的一個數(shù)據(jù)塊,L個RAM 剛好存儲一個信元,即利用第一 RAM組每個RAM的相同地址來存儲一個信元。進(jìn)一步,第一 RAM組中的RAM容量越大越好,當(dāng)多個輸入端口向同一個輸出端口發(fā) 送信元時,可以存儲在第一 RAM組中,由該輸出端口依次讀出,實(shí)現(xiàn)了緩沖,且調(diào)度較簡單。如圖4所示,該信元交換裝置中包括第一 fifo401、確定單元402、第一 RAM組 403、輸入控制單元405和輸出控制單元406,其中第一 fifo401的數(shù)量與輸入端口相同,并且每個第一 fifo對應(yīng)一個輸入端口,用 于存儲從與之對應(yīng)的輸入端口接收的信元;確定單元402,用于根據(jù)第一 fifo401中所存儲的信元中的目的地址信息或目的 端口信息,確定該信元的輸出端口 ;第一 RAM組403,包括不少于L個RAM,用于緩存信元,其中,L=信元長度/第一 RAM組的位寬;輸入控制單元405,用于按照第一 RAM組403的位寬,將第一 fifo401中的信元拆 分為L個數(shù)據(jù)塊,每個數(shù)據(jù)塊的大小即為第一 RAM組403中RAM的位寬,并將L個數(shù)據(jù)塊分 別寫入第一 RAM組403中的各RAM中;在寫入時,可以從預(yù)先為所述輸入端口分配的起始時隙開始,通過L個時隙將所 述L個數(shù)據(jù)塊依次寫入第一 RAM組中,每個時隙向第一 RAM組中的相應(yīng)RAM中寫入一個數(shù) 據(jù)塊。輸出控制單元406,用于根據(jù)確定單元402確定的信元的輸出端口,從為該輸出端 口分配的起始時隙開始,通過一個周期中的L個時隙分別從第一 RAM組403的L個RAM中 依次讀出信元的各數(shù)據(jù)塊,并輸出,其中,不同輸出端口分配的起始時隙不同,一個周期中 包括的時隙數(shù)大于或等于輸出端口的數(shù)量,并大于或等于L。或者,信元交換裝置中也可以進(jìn)一步包括第二 fifo404,第二 fifo404的數(shù)量與輸 出端口相同,并且每個第二 fifo404對應(yīng)一個輸出端口,用于緩存從第一 RAM組中讀取出的數(shù)據(jù),此時,輸出控制單元406具體用于,根據(jù)確定單元402確定的信元的輸出端口,從為該 輸出端口分配的起始時隙開始,通過一個周期中的L個時隙分別從第一 RAM組403的L個 RAM中依次讀出信元的各數(shù)據(jù)塊,并緩存在該輸出端口對應(yīng)的第二 fifo404中,并在一個信 元讀取完畢后,從對應(yīng)的輸出端口輸出第二 fifo404中緩存的信元。下面以具體的實(shí)例來說明該實(shí)施方式若交換裝置中的輸入輸出端口各有36個,一個信元的長度為576位,第一 RAM組 的位寬為16,那么L為36,剛好等于輸入輸出端口的數(shù)量,此時,信元交換裝置中的第一 RAM 組中需要包括至少36個RAM,當(dāng)?shù)谝?RAM組中包括36個RAM、每個周期包括36個時隙時較 佳。如從該信元交換裝置的第15個輸入端口輸入一個信元,需要輸出至第20個輸出端口 時,該第15個輸入端口所對應(yīng)的第一 fifo首先緩存該信元,確定單元根據(jù)第一 fifo中緩 存的信元中的目的地址信息或目的端口信息確定該信元的輸出端口為第20個輸出端口。 輸入控制單元從預(yù)先分配的第15個時隙開始,向第一 RAM組中寫入該信元,在時隙15時向 第一 RAM組中的第一個RAM中寫入該信元的第一個16位,在時隙16時向第一 RAM組中的第 二個RAM中寫入該信元的下一個16位,當(dāng)下一個周期的第14個時隙時,即可將該信元的最 后一個16位寫入第一 RAM組中的最后一個RAM中,完成了向第一 RAM組中寫入該信元。輸 出控制單元從預(yù)先分配給第20個輸出端口的第20個時隙開始,從第一 RAM組中讀出該信 元,在時隙20時向第一 RAM組中的第一個RAM中讀出該信元的第一個16位,在時隙21時 向第一 RAM組中的第一個RAM中讀出該信元的下一個16位,直到下一個周期的第19個時 隙時,即可從第一 RAM組中的最后一個RAM中讀出該信元的最后一個16位,所讀出的數(shù)據(jù) 都存儲在第20個輸出端口所對應(yīng)的第二 fifo中,當(dāng)該信元讀取完畢后,將該第二 fifo中 存儲的信元從第20個輸出端口輸出,完成了對該信元的交換。若該信元交換裝置有37個輸入端口或者37個輸出端口,將一個周期所包括的時 隙數(shù)目設(shè)置為37個即可實(shí)現(xiàn)信元的交換。實(shí)施例二、在信元交換裝置中設(shè)置了多個緩存,較適用于輸入輸出端口較多的情況。此時,如圖5所示,進(jìn)行信元交換的方法中包括步驟S501、將從輸入端口接收的信元緩存在輸入端口對應(yīng)的第一 fifo中;步驟S502、按照第一 RAM組的位寬,將第一 fifo中的信元拆分成L個數(shù)據(jù)塊,從預(yù) 先為輸入端口分配的起始時隙開始,通過一個周期中的L個時隙將L個數(shù)據(jù)塊依次寫入輸 入端口所屬的分組對應(yīng)的第一 RAM組中,每個時隙向第一 RAM組中的相應(yīng)RAM中寫入一個 數(shù)據(jù)塊;不同輸入端口分配的起始時隙不同,為保證能夠?qū)⒁粋€信元的各個數(shù)據(jù)塊寫入到 第一 RAM組各個RAM的相同地址中,第一 RAM組中包括的RAM個數(shù)要大于或等于L個,其 中,L =信元長度/第一 RAM組的位寬,一個周期包括的時隙數(shù)大于或等于一個分組中所包 括的輸入端口數(shù)量;步驟S503、根據(jù)信元中的目的地址信息或目的端口信息,確定信元的輸出端口和 該輸出端口所屬的分組,每組的輸出端口數(shù)小于或等于一個周期中時隙的個數(shù);步驟S504、將第一 RAM組中的信元寫入信元的輸出端口所屬的分組所對應(yīng)的第二 RAM組中,第二 RAM組的位寬與信元長度相等。
15
步驟S505、將第二RAM組中的信元拆分為L個數(shù)據(jù)塊,并分別寫入輸出端口所屬分 組對應(yīng)的第三RAM組中的各RAM中,第三RAM組的位寬與第一 RAM組相同,第三RAM組中包 括的RAM個數(shù)大于或等于L個;步驟S506、從為輸出端口分配的起始時隙開始,通過一個周期中的L個時隙分別 從第三RAM組的L個RAM中依次讀出信元的各數(shù)據(jù)塊,并輸出。同樣,不同輸出端口分配的起始時隙不同,一個周期中包括的時隙數(shù)大于或等于 輸出端口的數(shù)量,并大于或等于第一 RAM組中RAM的數(shù)量;進(jìn)一步,還可以為每個輸出端口設(shè)置一個第二 fifo,將從第三RAM組的L個RAM中 讀出信元的各數(shù)據(jù)塊緩存在信元的輸出端口所對應(yīng)的第二 fifo中,在一個信元讀取完畢 后,再通過輸出端口輸出第二 fifo中緩存的信元。如圖6所示,此時,該信元交換裝置中包括第一 fifo601、確定單元602、第一 RAM 組603、第二 RAM組604、第三RAM組605、第一控制單元607、第二控制單元608、第三控制單 元609和第四控制單元610,其中第一 fifo601的數(shù)量與輸入端口相同,并且每個第一 fifo601對應(yīng)一個輸入端口, 用于存儲從與之對應(yīng)的輸入端口接收的信元;確定單元602,用于根據(jù)第二 RAM組604中所存儲的信元中的目的地址信息或目的 端口信息,確定該信元的輸出端口和該輸出端口所屬的分組;第一 RAM組603,數(shù)量與輸入端口的分組數(shù)量相同,每個第一 RAM組603都包括不 少于L個RAM,用于緩存接收的信元,其中,L =信元長度/第一 RAM組的位寬;第二 RAM組604,至少包括M個,M為輸入端口的分組數(shù)與輸出端口的分組數(shù)的乘 積,用于緩存信元,第二 RAM組604的位寬與信元長度相等,可以在一個時隙完成一個信元 的寫入或讀出;第三RAM組605,數(shù)量與輸出端口的分組數(shù)量相同,每個第三RAM組605都包括不 少于L個RAM,用于緩存信元,第三RAM組605的位寬和第一 RAM組603的位寬相同;第一控制單元607,用于按照第一 RAM組603的位寬,將第一 fifo601中的信元拆 分成L個數(shù)據(jù)塊,從預(yù)先為輸入端口分配的起始時隙開始,通過一個周期中的L個時隙將L 個數(shù)據(jù)塊依次寫入輸入端口所屬的分組對應(yīng)的第一 RAM組中,每個時隙向第一 RAM組中的 相應(yīng)RAM中寫入一個數(shù)據(jù)塊,不同輸入端口分配的起始時隙不同,其中,一個周期包括的時 隙數(shù)大于或等于一個分組中所包括的輸入端口數(shù)量;第二控制單元608,用于根據(jù)確定單元602確定的信元的輸出端口所屬的分組,將 第一 RAM組603中的信元寫入該信元的輸出端口所屬的分組對應(yīng)的第二 RAM組604中;第三控制單元609,用于將第二 RAM組604中的信元拆分為L個數(shù)據(jù)塊,并分別寫 入該信元的輸出端口所屬分組對應(yīng)的第三RAM組605中的各RAM中;第四控制單元610,用于從為信元的輸出端口分配的起始時隙開始,通過一個周期 中的L個時隙分別從第三RAM組605的L個RAM中依次讀出該信元的各數(shù)據(jù)塊,并輸出,其 中,預(yù)先為不同輸出端口分配的起始時隙不同,一個周期中包括的時隙數(shù)大于或等于輸出 端口的數(shù)量,并大于或等于L。進(jìn)一步,信元交換裝置中還可以包括數(shù)量與輸出端口的數(shù)量相同的第二 fifo606, 與輸出端口一一對應(yīng),用于存儲從第三RAM組605中讀出的信元,此時,第四控制單元在從第三RAM組605的L個RAM中依次讀出該信元的各數(shù)據(jù)塊時,將各個數(shù)據(jù)塊緩存在該信元 的輸出端口所對應(yīng)的第二 fifo606中,并在一個信元讀取完畢后,從對應(yīng)的輸出端口輸出 第二 fifo606中緩存的信元。下面舉例說明本發(fā)明實(shí)施例較佳的實(shí)施方式如圖7所示,為具有96個輸入端口和輸出端口的信元交換裝置的結(jié)構(gòu)示意圖,由 于信元長度為576,第一 RAM組和第三RAM組中RAM的位寬為16,所以L值為36,為充分利 用時間,避免端口的等待情況,一個周期的時隙數(shù)目設(shè)置為36,所以輸入端口和輸出端口各 被分成了三組,1-36端口為第一組,37-72端口為第二組,73-96端口為第三組,每個分組中 各個端口編號由小到大分別對應(yīng)的起始時隙為1-36。當(dāng)信元交換裝置從第1個輸入端口接收到一個信元后,將該信元存儲在第1個輸 入端口對應(yīng)的第一 fifo中,并在下一個周期的第一個時隙將該信元的前16位寫入到第一 RAM組的第一個RAM中,在該周期的第二個時隙將該信元的下一個16位寫入到第一 RAM組 的第二個RAM中,直至該周期結(jié)束時,將該信元的第36個16位寫入到第一 RAM組的第36 個RAM中,完成了對該信元的展寬。若同時信元交換裝置的第2個輸入端口也接收到一個信元,則該信元存儲在與第 2個輸入端口對應(yīng)的第一 fifo中,并在這個周期的第二個時隙向第一 RAM組的第一個RAM 中寫入第一 fifo中所存儲的信元的前16位,在第三個時隙向第一 RAM組的第二個RAM中 寫入該信元的下一個16位,依次類推,剛好與第1個端口的寫入操作錯開一個時隙。如果該分組的36個輸入端口都不停的接收信元,那么每個時隙中,36個輸入端口 都分別向該分組中的第一 RAM組的不同RAM中寫入數(shù)據(jù)。確定單元獲取各個分組的第一 RAM組中所存儲的信元中的目的地址信息或目的 端口信息,確定各個信元的輸出端口以及各個信元的輸出端口所屬的分組。可以為每個分 組的第一 RAM組分別設(shè)置一個確定單元,也可以各個分組共用一個確定單元。讀出第一 RAM組中存儲的信元,并寫入到對應(yīng)該信元的輸出端口所在分組的第二 RAM組中。由于第二 RAM組中各RAM的位寬與信元長度相等,為576位,所以用一個時隙從 第一 RAM組中讀出并寫入到第二 RAM組中即可,這樣,在一個周期的36個時隙中,就可以將 該組的36個端口在一個周期內(nèi)所寫入的36個信元全部讀出并寫入到各信元相應(yīng)的第二 RAM組中。由于每個輸入端口組和輸出端口組的組合都有一個對應(yīng)的第二 RAM組,在將第一 RAM組中的信元寫入到第二 RAM組中的時候,可以根據(jù)該信元的輸入端口組和輸出端口組, 將該信元寫入到對應(yīng)的第二 RAM組中,S卩,仍以圖7中的信元交換裝置為例,若從第1個輸 入端口輸入一個信元去往第73個輸出端口,則將該信元寫入到第一組輸入端口和第三組 輸出端口共同對應(yīng)的第二 RAM組中。進(jìn)一步,為使得信元在等待寫入到第三RAM組中的時候更加有序,便于調(diào)度,可以 在將信元寫入到第二 RAM組中時,將信元寫入到第二 RAM組中與該信元的輸出端口所對應(yīng) 的RAM中,例如從第1個輸入端口輸入一個信元去往第73個輸出端口,則將該信元寫入到 第一組輸入端口和第三組輸出端口共同對應(yīng)的第二 RAM組對應(yīng)第73個輸出端口的第一個 RAM 中。更進(jìn)一步,為了避免各個輸入端口分組中去往同一個輸出端口的信元數(shù)量不均衡,導(dǎo)致同一個輸出端口對應(yīng)的三個第二 RAM組中的RAM利用率不均衡,可以在將信元寫 入到第二 RAM組中時,選擇該信元的輸出端口所屬的分組所對應(yīng)的三個第二 RAM組中,該輸 出端口對應(yīng)的三個RAM中數(shù)據(jù)量最少的一個。如果在一個時隙中,只有一個輸入端口分組 的一個信元去往該輸出端口,則將該信元寫入到該輸出端口對應(yīng)的三個第二 RAM組的三個 RAM中最淺的一個,如果有兩個輸入端口分組各有一個信元去往該輸出端口,則分別將這兩 個信元寫入到該輸出端口對應(yīng)的三個第二 RAM組的三個RAM中較淺的兩個,如果三個輸入 端口分組都有一個信元去往該輸出端口,則分別將三個信元寫入到該輸出端口對應(yīng)的三個 第二 RAM組的三個RAM中,此時,可以采用鏈表的方式來記錄各個信元的寫入順序?;蛘撸诘诙?RAM組中,還可以采用鏈表的方式來表征一個信元的輸出端口,這時 就不需要將信元寫入第二 RAM組中固定的對應(yīng)該信元的輸出端口的RAM中了,在讀出時,如 圖8所示,只要輪詢?nèi)齻€輸入端口分組到該輸出端口分別生成的三個鏈表即可。從第二 RAM組中讀出信元并寫入第三RAM組中也只需要一個時隙就可以完成,這 樣,通過一個周期的36個時隙,剛好可以向第三RAM組中為該組36個輸出端口各寫入一個 信元。在為一個輸出端口寫入信元時,第三控制單元輪詢該輸出端口所對應(yīng)的三個RAM或 者三個鏈表,每次讀出一個信元寫入到第三RAM組中。第三RAM組的深度可以為該組輸出端口數(shù)量的二倍,每個輸出端口對應(yīng)兩個地 址,這樣,剛好在一個周期內(nèi),第三控制單元在這個周期的一個時隙中向一個地址寫入信 元,第四控制單元在這個周期中從另一個地址讀出信元,實(shí)現(xiàn)了對緩存的充分利用。本發(fā)明實(shí)施例提供一種信元交換方法和裝置,通過在每個端口增加fifo,緩存對 應(yīng)的輸入端口所輸入的信元,并將各個fifo中緩存的信元在不同的時隙中寫入共享緩存, 再由輸出端口通過不同的時隙讀出信元,并緩存在輸出端口處增加的fifo中,再通過輸出 端口輸出,完成交換,由于增加了 fifo對信元進(jìn)行了緩存,進(jìn)而可以使得各個不同端口需 要對同一緩存進(jìn)行讀寫時,各端口分別在不同的時隙進(jìn)行讀寫,避免了沖突且容易調(diào)度。顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明實(shí)施例進(jìn)行各種改動和變型而不脫離本發(fā) 明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù) 的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。
18
權(quán)利要求
1.一種信元交換方法,其特征在于,包括將從輸入端口接收的信元緩存在所述輸入端口對應(yīng)的第一 fifo中;根據(jù)信元中的目的地址信息或目的端口信息,確定所述信元的輸出端口 ;按照第一 RAM組的位寬,將所述第一 fifo中的信元拆分為L個數(shù)據(jù)塊,并分別寫入第 一 RAM組中的各RAM中,所述第一 RAM組中包括的RAM個數(shù)大于或等于L個,其中,L =信 元長度/第一 RAM組的位寬;從為所述輸出端口分配的起始時隙開始,通過一個周期中的L個時隙分別從所述第一 RAM組的L個RAM中依次讀出所述信元的各數(shù)據(jù)塊,并輸出,其中,不同輸出端口分配的起始 時隙不同,一個周期中包括的時隙數(shù)大于或等于輸出端口的數(shù)量,并大于或等于L。
2.如權(quán)利要求1所述的方法,其特征在于,所述從為所述輸出端口分配的起始時隙開 始,通過一個周期中的L個時隙分別從所述第一 RAM組的L個RAM中依次讀出所述信元的 各數(shù)據(jù)塊,并輸出,具體包括從為所述輸出端口分配的起始時隙開始,通過一個周期中的L個時隙分別從所述第一 RAM組的L個RAM中依次讀出所述信元的各數(shù)據(jù)塊,并緩存在所述信元的輸出端口所對應(yīng)的 第二 fifo中;通過所述輸出端口輸出所述第二 fifo中緩存的信元。
3.如權(quán)利要求1或2所述的方法,其特征在于,所述將第一fifo中的信元拆分為L個 數(shù)據(jù)塊,并分別寫入第一 RAM組中的各RAM中具體為按照第一 RAM組的位寬,將所述第一 fifo中的信元拆分成L個數(shù)據(jù)塊,從預(yù)先為所述 輸入端口分配的起始時隙開始,通過L個時隙將所述L個數(shù)據(jù)塊依次寫入第一 RAM組中,每 個時隙向第一 RAM組中的相應(yīng)RAM中寫入一個數(shù)據(jù)塊。
4.一種信元交換裝置,其特征在于,包括與輸入端口數(shù)量相同的第一 fifo,用于存儲從與之對應(yīng)的輸入端口接收的信元;確定單元,用于根據(jù)所述信元中的目的地址信息或目的端口信息,確定所述信元的輸 出端口 ;第一 RAM組,包括不少于L個RAM,用于緩存所述信元,其中,L =信元長度/第一 RAM 組的位寬;輸入控制單元,用于按照第一 RAM組的位寬,將所述第一 fifo中的信元拆分為L個數(shù) 據(jù)塊,并分別寫入所述第一 RAM組中的各RAM中;輸出控制單元,用于根據(jù)所述確定單元確定的所述信元的輸出端口,從為所述輸出端 口分配的起始時隙開始,通過一個周期中的L個時隙分別從所述第一 RAM組的L個RAM中 依次讀出所述信元的各數(shù)據(jù)塊,并輸出,其中,不同輸出端口分配的起始時隙不同,一個周 期中包括的時隙數(shù)大于或等于輸出端口的數(shù)量,并大于或等于L。
5.如權(quán)利要求4所述的裝置,其特征在于,還包括與輸出端口數(shù)量相同的第二 fifo,用于緩存對應(yīng)的輸出端口從所述第一 RAM組中讀出 的數(shù)據(jù);所述輸出控制單元具體用于,根據(jù)所述確定單元確定的所述信元的輸出端口,從為所 述輸出端口分配的起始時隙開始,通過一個周期中的L個時隙分別從所述第一 RAM組的L 個RAM中依次讀出所述信元的各數(shù)據(jù)塊,并緩存在所述輸出端口所對應(yīng)的第二 fifo中,并在一個信元讀取完畢后,從對應(yīng)的輸出端口輸出所述第二 fifo中緩存的信元。
6.如權(quán)利要求4或5所述的裝置,其特征在于,所述第一控制單元具體用于按照第一 RAM組的位寬,將所述第一 fifo中的信元拆分成L個數(shù)據(jù)塊,從預(yù)先為所述 輸入端口分配的起始時隙開始,通過L個時隙將所述L個數(shù)據(jù)決依次寫入第一 RAM組中,每 個時隙向第一 RAM組中的相應(yīng)RAM中寫入一個數(shù)據(jù)塊。
7.一種信元交換方法,其特征在于,包括將從輸入端口接收的信元緩存在所述輸入端口對應(yīng)的第一 fifo中;按照第一 RAM組的位寬,將所述第一 fifo中的信元拆分成L個數(shù)據(jù)塊,從預(yù)先為所述 輸入端口分配的起始時隙開始,通過一個周期中的L個時隙將所述L個數(shù)據(jù)塊依次寫入所 述輸入端口所屬的分組對應(yīng)的第一 RAM組中,每個時隙向所述第一 RAM組中的相應(yīng)RAM中 寫入一個數(shù)據(jù)塊,不同輸入端口分配的起始時隙不同,所述第一 RAM組中包括的RAM個數(shù)大 于或等于L個,其中,L =信元長度/第一 RAM組的位寬,一個周期包括的時隙數(shù)大于或等 于一個分組中所包括的輸入端口數(shù)量,并且大于或等于L ;根據(jù)所述信元中的目的地址信息或目的端口信息,確定所述信元的輸出端口和該輸出 端口所屬的分組,每組的輸出端口數(shù)小于或等于一個周期中時隙的個數(shù);將所述第一 RAM組中的信元寫入所述信元的輸出端口所屬的分組所對應(yīng)的第二 RAM組 中,所述第二 RAM組的位寬與所述信元長度相等;將所述第二 RAM組中的信元拆分為L個數(shù)據(jù)塊,并分別寫入所述輸出端口所屬分組對 應(yīng)的第三RAM組中的各RAM中,所述第三RAM組的位寬與所述第一 RAM組相同,所述第三 RAM組中包括的RAM個數(shù)大于或等于L個;從為所述輸出端口分配的起始時隙開始,通過一個周期中的L個時隙分別從所述第三 RAM組的L個RAM中依次讀出所述信元的各數(shù)據(jù)塊,并輸出,其中,不同輸出端口分配的起始 時隙不同,一個周期中包括的時隙數(shù)大于或等于輸出端口的數(shù)量,并大于或等于L。
8.如權(quán)利要求7所述的方法,其特征在于,所述從為所述輸出端口分配的起始時隙開 始,通過一個周期中的L個時隙分別從所述第三RAM組的L個RAM中依次讀出所述信元的 各數(shù)據(jù)塊,并輸出,具體包括從為所述輸出端口分配的起始時隙開始,通過一個周期中的L個時隙分別從所述第三 RAM組的L個RAM中依次讀出所述信元的各數(shù)據(jù)塊,并緩存在所述信元的輸出端口所對應(yīng)的 第二 fifo中,以及通過所述輸出端口輸出所述第二 fifo中緩存的信元。
9.如權(quán)利要求7所述的方法,其特征在于,所述每個分組中輸入端口或輸出端口的個 數(shù)不超過L個。
10.如權(quán)利要求7所述的方法,其特征在于,所述將信元寫入所述信元的輸出端口所屬 的分組所對應(yīng)的第三RAM組中與所述信元輸出端口對應(yīng)的RAM中,具體為將所述信元寫入所述信元的輸出端口所屬的分組和所述信元的輸入端口所屬的分組 共同對應(yīng)的第二 RAM組中的與所述信元輸出端口對應(yīng)的RAM中。
11.如權(quán)利要求7所述的方法,其特征在于,所述將信元寫入所述信元的輸出端口所屬 的分組所對應(yīng)的第三RAM組中與所述信元輸出端口對應(yīng)的RAM中,具體為將所述信元寫入所述信元的輸出端口所屬的分組對應(yīng)的各第二 RAM組中數(shù)據(jù)量較少 的一個對應(yīng)所述輸出端口的RAM中。
12.如權(quán)利要求7-11任一所述的方法,其特征在于,所述將所述第二RAM組中的信元拆 分為L個數(shù)據(jù)塊,并分別寫入所述輸出端口所屬分組對應(yīng)的第三RAM組中的各RAM中具體 包括輪流將對應(yīng)同一第三MM組的各第二 RAM組中較早存儲的信元拆分為L個數(shù)據(jù)塊,并 分別寫入所述輸出端口所屬分組對應(yīng)的第三RAM組中的各RAM中。
13.如權(quán)利要求7所述的方法,其特征在于,所述將信元寫入第三RAM組中,具體為 根據(jù)所述信元的輸出端口,將所述信元寫入所述第三RAM中對應(yīng)所述輸出端口的區(qū)域。
14.一種信元交換裝置,其特征在于,包括與輸入端口數(shù)量相同的第一 fifo,用于存儲從與之對應(yīng)的輸入端口接收的信元; 確定單元,用于根據(jù)所述信元中的目的地址信息或目的端口信息,確定所述信元的輸 出端口和該輸出端口所屬的分組,每組的輸出端口數(shù)小于或等于一個周期中時隙的個數(shù);與輸入端口分組數(shù)量相等的第一 RAM組,包括不少于L個RAM,用于緩存所述信元,其 中,L =信元長度/第一 RAM組的位寬;M個第二 RAM組,位寬與所述信元長度相等,用于緩存所述信元,其中M為輸入端口的分 組數(shù)與輸出端口的分組數(shù)的乘積;與輸出端口分組數(shù)量相等的第三RAM組,包括不少于L個RAM,用于緩存所述信元,位寬 與所述第一 RAM組相同;第一控制單元,用于按照所述第一 RAM組的位寬,將所述第一 fifo中的信元拆分成L 個數(shù)據(jù)塊,從預(yù)先為所述輸入端口分配的起始時隙開始,通過一個周期中的L個時隙將所 述L個數(shù)據(jù)塊依次寫入所述輸入端口所屬的分組對應(yīng)的第一 RAM組中,每個時隙向所述第 一 RAM組中的相應(yīng)RAM中寫入一個數(shù)據(jù)塊,不同輸入端口分配的起始時隙不同,其中,一個 周期包括的時隙數(shù)大于或等于一個分組中所包括的輸入端口數(shù)量;第二控制單元,用于根據(jù)所述確定單元確定的所述信元的輸出端口所屬的分組,將所 述第一 RAM組中的信元寫入所述信元的輸出端口所屬的分組對應(yīng)的第二 RAM組中;第三控制單元,用于將所述第二 RAM組中的信元拆分為L個數(shù)據(jù)塊,并分別寫入所述輸 出端口所屬分組對應(yīng)的第三RAM組中的各RAM中;第四控制單元,用于從為所述信元的輸出端口分配的起始時隙開始,通過一個周期中 的L個時隙分別從所述第三RAM組的L個RAM中依次讀出所述信元的各數(shù)據(jù)塊,并輸出,其 中,不同輸出端口分配的起始時隙不同,一個周期中包括的時隙數(shù)大于或等于輸出端口的 數(shù)量,并大于或等于L。
15.如權(quán)利要求14所述的裝置,其特征在于,還包括與輸出端口數(shù)量相同的第二 fifo,用于緩存對應(yīng)的輸出端口從所述第三RAM組中讀出 的數(shù)據(jù);所述第四控制單元具體用于,根據(jù)所述確定單元確定的所述信元的輸出端口,從為所 述輸出端口分配的起始時隙開始,通過一個周期中的L個時隙分別從所述第三RAM組的L 個RAM中依次讀出所述信元的各數(shù)據(jù)塊,并緩存在所述輸出端口所對應(yīng)的第二 fifo中,并 在一個信元讀取完畢后,從對應(yīng)的輸出端口輸出所述第二 fifo中緩存的信元。
16.如權(quán)利要求14所述的裝置,其特征在于,所述第二控制單元具體用于,根據(jù)所述確定單元確定的所述信元的輸出端口所屬的分組,將所述信元寫入所述信元的輸出端口所屬 的分組和所述信元的輸入端口所屬的分組共同對應(yīng)的第二 RAM組中的與所述信元輸出端 口對應(yīng)的RAM中。
17.如權(quán)利要求14所述的裝置,其特征在于,所述第二控制單元具體用于,根據(jù)所述確 定單元確定的所述信元的輸出端口所屬的分組,將所述信元寫入所述信元的輸出端口所屬 的分組對應(yīng)的各第二 RAM組中數(shù)據(jù)量較少的一個對應(yīng)所述輸出端口的RAM中。
18.如權(quán)利要求14-17任一所述的裝置,其特征在于,所述第三控制單元具體用于,輪 流將對應(yīng)同一第三RAM組的各第二 RAM組中較早存儲的信元拆分為L個數(shù)據(jù)塊,并分別寫 入所述輸出端口所屬分組對應(yīng)的第三RAM組中的各RAM中。
19.如權(quán)利要求14所述的裝置,其特征在于,所述第三控制單元具體用于,將所述第二 RAM組中的信元拆分為L個數(shù)據(jù)塊,并根據(jù)所述信元的輸出端口,分別寫入所述輸出端口所 屬分組對應(yīng)的第三RAM組中的各RAM中對應(yīng)所述輸出端口的區(qū)域。
全文摘要
本發(fā)明公開了一種信元交換方法和裝置,涉及數(shù)據(jù)通信技術(shù),本發(fā)明實(shí)施例通過在每個輸入端口增加fifo,緩存對應(yīng)的輸入端口所輸入的信元,并將各個fifo中緩存的信元拆分為多個數(shù)據(jù)塊寫入共享緩存,再由輸出端口通過不同的時隙讀出信元,并輸出,完成交換,由于增加了fifo對信元進(jìn)行了緩存,進(jìn)而可以使得各個不同端口需要對同一緩存進(jìn)行讀寫時,各端口分別在不同的時隙進(jìn)行讀寫,避免了沖突且容易調(diào)度。
文檔編號H04L12/56GK102118304SQ20101000160
公開日2011年7月6日 申請日期2010年1月5日 優(yōu)先權(quán)日2010年1月5日
發(fā)明者孫明施, 楊宜, 黃煒 申請人:中興通訊股份有限公司