專利名稱::基于隨機(jī)副本分配的多存儲(chǔ)器流水路由體系結(jié)構(gòu)的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及一種路由體系結(jié)構(gòu),具體來說,涉及一種使用隨機(jī)副本分配技術(shù)和多個(gè)存儲(chǔ)器以流水并行化多個(gè)數(shù)據(jù)包的路由信息查找操作,從而有效提高路由系統(tǒng)的吞吐量的基于隨機(jī)副本分配的多存儲(chǔ)器流水路由體系結(jié)構(gòu)。
背景技術(shù):
:一個(gè)IP路由器實(shí)現(xiàn)兩個(gè)基本功能,分別是路由功能和交換功能,當(dāng)數(shù)據(jù)包到達(dá)路由器的某個(gè)輸入端口時(shí),其須依次經(jīng)歷路由階段和交換階段,在路由階段,系統(tǒng)獲取數(shù)據(jù)包的目的地址,并據(jù)此查找路由表以獲取相應(yīng)的目的輸出端口號;在交換階段,系統(tǒng)通過調(diào)度將數(shù)據(jù)包交換到指定的輸出端口,從而將數(shù)據(jù)包轉(zhuǎn)發(fā)到下一跳站點(diǎn)。目前,基于前綴樹的路由算法包括BinaryTrie(BT)>PrefixTrie(PT)[I]>Fixed-StrideTrie(FST)2和Multi-PrefixTrie(MPT)3等算法。在本文的陳述中用到以下術(shù)語。目的地址IPv4/IPv6互聯(lián)網(wǎng)協(xié)議下,一個(gè)數(shù)據(jù)包的目的地址可表示為一個(gè)長度32/128的二進(jìn)制字符串。二進(jìn)制字符串一個(gè)長度為n的二進(jìn)制字符串是將n個(gè)屬于字符集E={0,1}的字符按其位置依次排列形成的數(shù)組S。二進(jìn)制前綴子串二進(jìn)制字符串S的前綴子串S,表示S串中從位置0到位置i的一段字符串,也就是3,5[1],..,5[1]組成的字符串。路由表一張路由表由多條記錄組成,一條記錄由一個(gè)前綴子項(xiàng)和一個(gè)輸出端口號組成,一個(gè)前綴子項(xiàng)是一個(gè)二進(jìn)制字符串,各記錄的前綴子項(xiàng)構(gòu)成一個(gè)二進(jìn)制字符串集合n。最長匹配前綴對于任意兩個(gè)二進(jìn)制字符串S1,S2,m<n,若滿足S1為S2的前綴子串,則我們稱S1是S2的一個(gè)長度為m的匹配前綴,記作&ClS24合定一個(gè)二進(jìn)制字符串集合n和字符串s[o..n-1],若s'[o,..i]Gn且允(=S,則S’是s的一個(gè)匹配前綴。又若對S的任意匹配前綴S"G山有^^義,則我們稱s’為S的關(guān)于n的最長匹配前綴?;谇熬Y樹的路由算法在路由階段,系統(tǒng)根據(jù)數(shù)據(jù)包的目的地址在路由表中查找與目的地址匹配的最長匹配前綴。直觀地,系統(tǒng)可以將目的地址與表中各記錄的前綴子項(xiàng)依次進(jìn)行比較以獲得符合要求的最長匹配前綴。顯而易見,這種查找方式無法獲得較高的查找效率。另一方面,將路由表轉(zhuǎn)化為前綴樹以支持快速路由查找的策略被廣泛地研究并推廣到工業(yè)生產(chǎn)中。不失一般性地,在一棵前綴樹中,單個(gè)前綴結(jié)點(diǎn)可表示路由表中的一條或多條記錄,各前綴結(jié)點(diǎn)以指針相連。一個(gè)數(shù)據(jù)包的路由查找過程從前綴樹的根結(jié)點(diǎn)開始,直到其到達(dá)某葉子結(jié)點(diǎn)結(jié)束。在此過程中,系統(tǒng)將數(shù)據(jù)包的目的地址與查找路徑上的所有結(jié)點(diǎn)中的前綴進(jìn)行匹配,并記錄其間獲得的最長匹配前綴。最終,系統(tǒng)返回該最長匹配前綴對應(yīng)的輸出端口號,數(shù)據(jù)包繼而進(jìn)入交換階段。利用以上術(shù)語,我們給出一個(gè)基于前綴樹的路由查找示例,為了描述方便,我們選用BT路由算法來組織路由表中的前綴,如圖I和圖2所示根據(jù)圖I所示的路由表,圖2給出了釆用BT路由算法構(gòu)造而成的前綴樹,該前綴樹的每個(gè)前綴結(jié)點(diǎn)包含最多I個(gè)前綴。假設(shè)到達(dá)路由器的數(shù)據(jù)包的目的地址的高8位為10101010,則該數(shù)據(jù)包的路由查找過程可描述如下數(shù)據(jù)包訪問前綴樹的根結(jié)點(diǎn),根結(jié)點(diǎn)前綴為空,匹配不成功,其根據(jù)目的地址的第0位分支搜索前綴樹;目的地址第0位為1,則數(shù)據(jù)包訪問根結(jié)點(diǎn)的右孩子,該結(jié)點(diǎn)前綴為空,匹配不成功,其根據(jù)目的地址的第I位分支搜索前綴樹;目的地址第I位為0,則數(shù)據(jù)包訪問當(dāng)前結(jié)點(diǎn)的左孩子,該結(jié)點(diǎn)前綴為10*,匹配成功,最長匹配前綴更新為10*,其繼而根據(jù)目的地址的第2位分支搜索前綴樹。重復(fù)以上步驟,最終找到與目的地址匹配的路由表前綴為10*和1010*,根據(jù)最長匹配前綴的定義,系統(tǒng)返回1010*對應(yīng)的輸出端口號r7?,F(xiàn)存有多種基于前綴樹的路由算法,具體可參見文獻(xiàn)1-15。這些算法可進(jìn)一步劃分為串行前綴樹路由算法和并行前綴樹路由算法。在串行算法中,各數(shù)據(jù)包的路由查找過程嚴(yán)格按照時(shí)序先后執(zhí)行,因此,系統(tǒng)的處理速度慢,吞吐量低。為此,大量研究致力于設(shè)計(jì)高效的多存儲(chǔ)器流水路由體系結(jié)構(gòu),其通過合理地調(diào)度和安排存儲(chǔ)器資源的存取操作,以實(shí)現(xiàn)多個(gè)路由查找過程的并行執(zhí)行,從而極大地提高系統(tǒng)的整體性能12-15。參考文獻(xiàn)[1]M.Berger,“IPlookupwithlowmemoryrequirementandfastupdate,”inProc.IEEEHPSRjJun2003,287-291.[2]S.SahniandK.Kim,“EfficientconstructionofmultibittriesforIPlookup”,IEEE/ACMTrans,onNetworking,pp.650-662,Aug2003.[3]S.Hsieh,Y.HuangandY.Yang,“Anoveldynamicrouter-tablesdesignforIPlookupandupdate,,,inIEEEInt.Con.onFutureInformationTechnology,May2010,pp.1-6.[4]V.SrinivasanandG.Varghese,“FasterIPlookupsusingcontrolledprefixexpansion,,,ACMTrans,onComputerSystems,pp.I-40,Febl999.[5]S.NilssonandG.Karlsson,“IP-addresslookupusinglc-tries,,,IEEEJ.onSelectedAreasinCommunications,pp.1083-1092,Junl999.[6]M.Degermark,A.Brodnik,S.Carlsson,andS.Pink,“Smallforwardingtablesforfastroutinglookups,”inProc.ACMSIGC0MM,1997,pp.3-14.[7]V.Ravikumar,R.Mahapatra,andJ.Liu,“Modifiedlc-triebasedefficientroutinglookup,”inProc.IEEEInt.Symp.onMASCOTS,Jan2003,pp.177-182.[8]S.SahniandK.Kim,“Efficientconstructionoffixed-stridemultibittriesforIPlookup,,’inIEEEWorkshoponFutureTrendsofDistributedComputingSystems,Nov2001,pp.178-184.[9]-,“Efficientconstructionofvariable-stridemultibittriesforIPlookup,,’inProc.Symp.onApplicationsandtheInternet,Feb2002,pp.220-227.[10]S.SahniandH.Lu,“DynamictreebitmapforIPlookupandupdate,,,inIEEEInt.con.onNetworking,April2007,pp.79-84.[11]Y.Chang,Y.Lin,andC.Su,“DynamicmultiwaysegmenttreeforIPlookupsandthefastpipelinedsearchengine,,,IEEETrans,onComputers,pp.492-506,F(xiàn)eb2010.[12]K.KimandS.Sahni,“Efficientconstructionofpipelinedmultibit-trierouter-tables,,,IEEETrans,onComputers,pp.32-43,Jan2007.[13]M.BandoandH.J.Chao,uFlashtrie:Hash-basedprefixcompressedtrieforIProutelookupbeyondlOOGbps,”inProc.IEEEINF0C0M,March2010,pp.I-9.[14]W.JiangandV.Prasanna,“Amemory-balancedlinearpipelinearchitecturefortrie-basedIPlookup,,,inIEEESymp.onHigh-PerformanceInterconnects,Aug2007,pp.83-90.[15]S.Kumar,M.Becchi,P.Corwley,andJ.Turner,“CAMP:fastandefficientIPlookuparchitecture,,,inACM/1EEESymp.onArchitectureforNetworkingandCommunicationsSystems,2006,pp.51-60.[16]T.Anderson,S.Owicki,J.Saxe,andC.Thacker,“High-speedswitchschedulingforlocalareanetworks,”ACMTrans.Comput.Syst.,pp.319-352,Novl993.[17]N.McKeownj“TheiSLIPschedulingalgorithmforinput-queuedswitches,”IEEE/ACMTrans,onNetworking,pp.188-201,Aprill999.[18]P.Sanders,S.Egner,andJ.Korst,“Fastconcurrentaccesstoparalleldisks,,,inProc.IIthannualACM-SIAMsymposiumonDiscretealgorithms,2000,pp.849-858.[19]J.VitterandE.Shriver,“AlgorithmsforparallelmemoryI:Twolevelmemories.,’pp.110-147,1994.[20]R.Barve,E.Grove,andJ.Vitter,“Simplerandomizedmergesortonparalleldisks,Paral.Comput.,pp.601631,1997.
發(fā)明內(nèi)容針對以上的不足,本發(fā)明提供了一種使用隨機(jī)副本分配技術(shù)和多個(gè)存儲(chǔ)器以流水并行化多個(gè)數(shù)據(jù)包的路由信息查找操作,從而有效提高路由系統(tǒng)的吞吐量的基于隨機(jī)副本分配的多存儲(chǔ)器流水路由體系結(jié)構(gòu),它包含一個(gè)用于緩存數(shù)據(jù)包的路由緩沖區(qū),一個(gè)用于控制排隊(duì)數(shù)據(jù)包與各存儲(chǔ)器間之間的讀寫訪問的調(diào)度單元,以及一組用于存儲(chǔ)路由表前綴樹結(jié)點(diǎn)的存儲(chǔ)器。所述路由表前綴樹結(jié)點(diǎn)以隨機(jī)副本分配的存儲(chǔ)方式實(shí)現(xiàn)到存儲(chǔ)器的映射。還包括索引表存儲(chǔ)單元,所述路由表前綴樹被切分為一棵主樹和多棵子樹,主樹包含前綴樹的低層結(jié)點(diǎn),并被轉(zhuǎn)換為一個(gè)索引表,該索引表存儲(chǔ)在索引表存儲(chǔ)單元中,各子樹包含前綴樹的高層結(jié)點(diǎn),每棵子樹有兩個(gè)副本,各副本被獨(dú)立地映射到存儲(chǔ)器組中。所述索引表包含數(shù)個(gè)子項(xiàng),每個(gè)子項(xiàng)由一個(gè)前綴域和一個(gè)或多個(gè)結(jié)點(diǎn)指針域構(gòu)成。還包括一個(gè)用于檢查每個(gè)到達(dá)路由體系結(jié)構(gòu)的數(shù)據(jù)包,防止路由緩沖區(qū)中出現(xiàn)目的地址相同的數(shù)據(jù)包的包過濾器。所述數(shù)據(jù)包的排隊(duì)策略為1)系統(tǒng)時(shí)間被分割為固定大小的時(shí)隙,每個(gè)時(shí)隙被定義為一個(gè)存儲(chǔ)訪問周期,每個(gè)時(shí)隙被等分為M個(gè)時(shí)鐘周期;2)每個(gè)到達(dá)路由緩沖區(qū)的數(shù)據(jù)包長度固定,每個(gè)時(shí)鐘周期到達(dá)的數(shù)據(jù)包數(shù)量最多為1,即每個(gè)時(shí)隙最多有M數(shù)據(jù)包達(dá)到路由體系結(jié)構(gòu);3)在各時(shí)隙的末尾,調(diào)度單元從路由緩沖區(qū)的排隊(duì)數(shù)據(jù)包中選取一個(gè)無沖突的數(shù)據(jù)包集合,所有當(dāng)選的數(shù)據(jù)包并行地訪問存儲(chǔ)器組以查找存儲(chǔ)在各存儲(chǔ)器中的路由信息,如果某個(gè)當(dāng)選的數(shù)據(jù)包完成了其路由信息查找任務(wù),那么它將立刻離開路由緩沖區(qū);4)各存儲(chǔ)器在一個(gè)時(shí)隙內(nèi)只能被訪問一次。每個(gè)到達(dá)的數(shù)據(jù)包生成一個(gè)路由信息查找請求,該路由信息查找請求包含一次或多次存儲(chǔ)器訪問操作,每次存儲(chǔ)器訪問操作的目標(biāo)是路由表前綴樹中某結(jié)點(diǎn)所在的存儲(chǔ)器,各目標(biāo)結(jié)點(diǎn)依序構(gòu)成一條從根結(jié)點(diǎn)出發(fā)到某葉子結(jié)點(diǎn)結(jié)束的查找路徑。所述調(diào)度單元的調(diào)度策略為步驟I)請求每個(gè)尚未匹配成功的排隊(duì)數(shù)據(jù)包發(fā)送一個(gè)請求給其尚未匹配成功的根存儲(chǔ)器;步驟2)授權(quán)每個(gè)被請求的存儲(chǔ)器從所有向其請求的數(shù)據(jù)包中選擇一個(gè)授予訪問許可;步驟3)接受每個(gè)被授權(quán)的數(shù)據(jù)包從所有向其授權(quán)的存儲(chǔ)器中選擇一個(gè)接受其訪問許可。其中,根存儲(chǔ)器表示每棵子樹的根結(jié)點(diǎn)所在的存儲(chǔ)器。本發(fā)明的有益效果首先,本發(fā)明的路由體系結(jié)構(gòu)提供了一個(gè)路由緩沖區(qū)來緩沖到達(dá)的數(shù)據(jù)包,從而支持日益增長的主干網(wǎng)帶寬需求,如果路由緩沖區(qū)的包丟失率小于交換緩沖區(qū)的包丟失率,那么本發(fā)明的路由體系結(jié)構(gòu)的性能就能夠達(dá)到無路由緩沖區(qū)的路由系統(tǒng)的性能;另外,本發(fā)明通過包過濾器不但可以避免路由冗余,防止任意兩個(gè)目的地址相同的數(shù)據(jù)包會(huì)被路由到同一個(gè)輸出端口,還可以使目的地址相同的數(shù)據(jù)包保持先進(jìn)先出的順序;再有,本發(fā)明通過隨機(jī)副本分配技術(shù)通過使用額外的存儲(chǔ)空間來減少流水路由體系結(jié)構(gòu)中存儲(chǔ)器的訪問沖突頻率,可行性更高。圖I為路由表不例圖;圖2為路由表對應(yīng)的BT樹示意圖;圖3為本發(fā)明的路由體系結(jié)構(gòu)的示意圖;圖4為本發(fā)明的數(shù)據(jù)包的排隊(duì)策略的結(jié)構(gòu)示意圖;圖5為雙向圖匹配模型示意圖;圖6為本發(fā)明初始狀態(tài)和達(dá)到的數(shù)據(jù)包的示意圖;圖7為本發(fā)明對給定的數(shù)據(jù)包的流水并行調(diào)度的結(jié)果示意圖。具體實(shí)施例方式下面結(jié)合附圖來本對本發(fā)明進(jìn)行進(jìn)一步闡述。如圖3所示,本發(fā)明的基于隨機(jī)副本分配的多存儲(chǔ)器流水路由體系結(jié)構(gòu)包括路由緩沖區(qū)、調(diào)度單元和存儲(chǔ)器組,路由緩沖區(qū)用于緩存進(jìn)入路由體系結(jié)構(gòu)的數(shù)據(jù)包,調(diào)度單元用于控制路由緩沖區(qū)中的排隊(duì)數(shù)據(jù)包與各存儲(chǔ)器間之間的讀寫訪問,存儲(chǔ)器組用于存儲(chǔ)路由表前綴樹結(jié)點(diǎn)的存儲(chǔ)器。傳統(tǒng)路由器的一個(gè)設(shè)計(jì)假設(shè)是路由器能夠?yàn)橐匀我饪赡艿乃俾实竭_(dá)的數(shù)據(jù)包提供實(shí)時(shí)的路由服務(wù),從而,路由器在路由階段不需要提供緩沖區(qū)來緩存到達(dá)的數(shù)據(jù)包。本發(fā)明為了提高系統(tǒng)吞吐量,路由體系結(jié)構(gòu)提供一個(gè)路由緩沖區(qū)來緩沖到達(dá)的數(shù)據(jù)包,從而支持日益增長的主干網(wǎng)帶寬需求,且如果路由緩沖區(qū)的包丟失率小于交換緩沖區(qū)的包丟失率,那么本發(fā)明所提出的路由體系結(jié)構(gòu)的性能就能夠達(dá)到無路由緩沖區(qū)的路由系統(tǒng)的性能。另外,本發(fā)明還可以增加一個(gè)包過濾器,包過濾器檢查每個(gè)到達(dá)路由體系結(jié)構(gòu)的數(shù)據(jù)包,防止路由緩沖區(qū)中出現(xiàn)目的地址相同的數(shù)據(jù)包,使用包過濾器有兩個(gè)目的其一,避免路由冗余,任意兩個(gè)目的地址相同的數(shù)據(jù)包會(huì)被路由到同一個(gè)輸出端口;其二,使目的地址相同的數(shù)據(jù)包保持先進(jìn)先出的順序。另外,本發(fā)明通過使用一種隨機(jī)副本分配(RDA(RandomDuplicateAllocation))的存儲(chǔ)分配技術(shù)實(shí)現(xiàn)路由表前綴樹結(jié)點(diǎn)到存儲(chǔ)器的映射,該技術(shù)能夠?qū)⑷我饣谇熬Y樹的路由算法下的路由表前綴樹結(jié)點(diǎn)均勻地映射到流水系統(tǒng)的所有存儲(chǔ)器中,相較于現(xiàn)存的其他流水路由設(shè)計(jì)方案,隨機(jī)副本分配(RDA)技術(shù)通過使用額外的存儲(chǔ)空間來減少流水系統(tǒng)中存儲(chǔ)器的訪問沖突頻率,該技術(shù)最先被用于并行磁盤數(shù)據(jù)的存取管理18-20。詳細(xì)地說,任意路由表前綴樹被切分為一棵主樹和多棵子樹,主樹包含前綴樹的低層結(jié)點(diǎn),并被轉(zhuǎn)換為一個(gè)索引表,各子樹包含前綴樹的部分高層結(jié)點(diǎn),并被映射到存儲(chǔ)器組中,進(jìn)一步地,每棵子樹有兩個(gè)副本,各副本被獨(dú)立地映射到存儲(chǔ)器組中。從而,如果數(shù)據(jù)包的路由查找過程能夠訪問兩棵副本樹中的任意一棵,其就能夠繼續(xù)執(zhí)行。我們基于以下因素考慮使用RDA技術(shù)在構(gòu)建一個(gè)高性能路由系統(tǒng)的過程中,增加單個(gè)存儲(chǔ)器的容量較之增加存儲(chǔ)器的數(shù)量更為簡單,低廉和可行。為了方便描述,我們首先給出幾個(gè)專有名詞及其定義如下當(dāng)我們提到一個(gè)數(shù)據(jù)包的子樹時(shí),該子樹即為系統(tǒng)為了獲取數(shù)據(jù)包的路由信息所需遍歷的目標(biāo)子樹,對于每棵子樹,其根結(jié)點(diǎn)所在的存儲(chǔ)器被稱為該子樹的根存儲(chǔ)器,進(jìn)一步地說,給定某個(gè)數(shù)據(jù)包,其對應(yīng)子樹的根存儲(chǔ)器也可以被認(rèn)為是該數(shù)據(jù)包的根存儲(chǔ)器,由于RDA存儲(chǔ)分配技術(shù)為每棵子樹在存儲(chǔ)器組中提供兩個(gè)獨(dú)立的副本,故而每個(gè)數(shù)據(jù)包有兩棵子樹和兩個(gè)根存儲(chǔ)器。如圖3所示,本發(fā)明增加了一個(gè)用于存儲(chǔ)索引表的索引表存儲(chǔ)單元,該索引表存儲(chǔ)單元一般為小而快的存儲(chǔ)器(例如SRAM),即路由表前綴樹的主樹被表示為一個(gè)索引表,該索引表存儲(chǔ)在一個(gè)小而快速的存儲(chǔ)器中。每棵子樹從根結(jié)點(diǎn)開始按層循環(huán)地映射到存儲(chǔ)器組中,不失一般性地,如果根結(jié)點(diǎn)被存儲(chǔ)到編號為i的存儲(chǔ)器中,那么第j層結(jié)點(diǎn)被存儲(chǔ)到編號為(i+j)modM的存儲(chǔ)器中,對于每個(gè)新到達(dá)路由體系結(jié)構(gòu)的數(shù)據(jù)包,其將經(jīng)歷兩個(gè)處理階段來獲取數(shù)據(jù)包目的地址的最長匹配前綴,即一個(gè)查找索引表的單步匹配階段和一個(gè)涉及多次存儲(chǔ)器訪問的查找階段。索引表包含Z個(gè)子項(xiàng),每個(gè)子項(xiàng)由一個(gè)前綴域和一個(gè)或多個(gè)結(jié)點(diǎn)指針域構(gòu)成,從而,一個(gè)數(shù)據(jù)包的路由信息查找過程的執(zhí)行流程如下首先,系統(tǒng)獲取數(shù)據(jù)包目的地址的最高r比特,并將其作為索引表的第i號子項(xiàng)的索引,如果第i號子項(xiàng)的結(jié)點(diǎn)指針為空,那么本次路由查找就執(zhí)行完畢;否則,系統(tǒng)將從該結(jié)點(diǎn)指針?biāo)赶虻淖訕涞母Y(jié)點(diǎn)開始,遍歷該子樹以完成該路由信息查找請求。為了使存儲(chǔ)器的總吞吐量維持在較高水平,系統(tǒng)的調(diào)度目標(biāo)是從排隊(duì)數(shù)據(jù)包中選取一個(gè)盡可能大的數(shù)據(jù)包集合,該集合中的任意兩個(gè)數(shù)據(jù)包的根存儲(chǔ)器互異,根存儲(chǔ)器不同的數(shù)據(jù)包就能夠同時(shí)執(zhí)行存儲(chǔ)器訪問操作。對于每棵子樹,其根結(jié)點(diǎn)被隨機(jī)存儲(chǔ)到任意存儲(chǔ)器中,而其子孫結(jié)點(diǎn)被按層循環(huán)地映射到根存儲(chǔ)器的后續(xù)存儲(chǔ)器中,因此,在數(shù)據(jù)包的路由信息查找過程中,對目標(biāo)子樹的遍歷始于對根存儲(chǔ)器的訪問,直至到達(dá)某葉子結(jié)點(diǎn)所在的存儲(chǔ)器結(jié)束,在此過程中,路由信息查找請求在每層訪問一個(gè)結(jié)點(diǎn),在每個(gè)存儲(chǔ)器中訪問一層,從而,當(dāng)選的數(shù)據(jù)包集合的對應(yīng)子樹的訪問操作能夠按批處理方式并行地執(zhí)行。在這里,術(shù)語批處理(batch)意味著當(dāng)選的所有子樹的遍歷過程均始于同一時(shí)刻,并且,當(dāng)所有遍歷過程均完成時(shí),該批處理過程才宣告結(jié)束。下面,我們給出以下假設(shè)和參數(shù)聲明以建立路由體系結(jié)構(gòu)的數(shù)據(jù)包排隊(duì)策略I)系統(tǒng)時(shí)間被分割為固定大小的時(shí)隙,每個(gè)時(shí)隙被定義為一個(gè)存儲(chǔ)訪問周期,進(jìn)一步地,每個(gè)時(shí)隙被等分為M個(gè)時(shí)鐘周期。2)每個(gè)到達(dá)路由緩沖區(qū)的數(shù)據(jù)包長度固定,每個(gè)時(shí)鐘周期到達(dá)的數(shù)據(jù)包數(shù)量最多為1,換言之,每個(gè)時(shí)隙最多有M數(shù)據(jù)包達(dá)到路由體系結(jié)構(gòu)。3)在各時(shí)隙的末尾,調(diào)度單元從排隊(duì)數(shù)據(jù)包中選取一個(gè)無沖突的數(shù)據(jù)包集合,所有當(dāng)選的數(shù)據(jù)包并行地訪問存儲(chǔ)器組以查找存儲(chǔ)在各存儲(chǔ)器中的路由信息,如果某個(gè)當(dāng)選的數(shù)據(jù)包完成了其路由信息查找任務(wù),那么它將立刻離開路由緩沖區(qū)。4)各存儲(chǔ)器在一個(gè)時(shí)隙內(nèi)只能被訪問一次。為了表述方便,我們引入下面兩個(gè)參數(shù)N:路由緩沖區(qū)中排隊(duì)數(shù)據(jù)包的數(shù)量,緩沖區(qū)的容量為L個(gè)數(shù)據(jù)包。M:可用存儲(chǔ)器的數(shù)量。我們用符號叫,m2,...,mM表示存儲(chǔ)器,為了表述方便,我們假定M為2的整數(shù)次冪?;谏鲜黾僭O(shè)和參數(shù)定義,我們在圖4給出所涉及的路由體系結(jié)構(gòu)的排隊(duì)策略,在這個(gè)模型中,每個(gè)到達(dá)的數(shù)據(jù)包生成一個(gè)路由信息查找請求,該路由信息查找請求包含一次或多次存儲(chǔ)器訪問操作,每次存儲(chǔ)器訪問操作的目標(biāo)是前綴樹中某結(jié)點(diǎn)所在的存儲(chǔ)器,各目標(biāo)結(jié)點(diǎn)依序構(gòu)成一條從根結(jié)點(diǎn)出發(fā)到某葉子結(jié)點(diǎn)結(jié)束的查找路徑。調(diào)度策略對于每個(gè)新到達(dá)的數(shù)據(jù)包,系統(tǒng)通過數(shù)據(jù)包地址的前r比特查詢索引表以定位其子樹的根結(jié)點(diǎn)在存儲(chǔ)器組中的位置,然后,系統(tǒng)為數(shù)據(jù)包建立一個(gè)路由信息查找請求,該查找請求按層遍歷目標(biāo)子樹以獲取路由信息,我們同樣使用形如R(Sl,S2,...,Si,...,St)的多維元組來表示一個(gè)路由信息查找請求。一個(gè)數(shù)據(jù)包的路由信息查找過程分為兩個(gè)階段調(diào)度階段和訪問階段,在前一個(gè)階段中,系統(tǒng)選取一個(gè)根存儲(chǔ)器互不相同的數(shù)據(jù)包集合;在后一個(gè)階段中,系統(tǒng)同時(shí)遍歷各當(dāng)選數(shù)據(jù)包的對應(yīng)子樹以獲取路由信息,在調(diào)度階段所得到的數(shù)據(jù)包集合的根存儲(chǔ)器是互異的,故而,這些數(shù)據(jù)包所對應(yīng)的查找請求是可以并行地執(zhí)行的。在訪問階段,每個(gè)當(dāng)選的數(shù)據(jù)包將遍歷其目標(biāo)子樹,詳細(xì)地說,不失一般性地,假設(shè)Ri,Rj為任意兩個(gè)當(dāng)選的數(shù)據(jù)包的路由信息查找請求,Mi,Mj為這兩個(gè)查找請求的目標(biāo)根存儲(chǔ)器,則在訪問階段,查找請求Ri將循環(huán)地訪問編號依次為Mi,M(i+l)modMJM(j_+2)modM,的存儲(chǔ)器序列,直到到達(dá)某個(gè)葉子結(jié)點(diǎn)結(jié)束,&也是如此。從而,查找請求Ri和&在整個(gè)訪問階段中都是無沖突的,其對應(yīng)的每個(gè)查找步驟都可以被并行地執(zhí)行。如圖5所示,調(diào)度階段的仲裁問題可以被轉(zhuǎn)化為一個(gè)雙向圖匹配問題,此處的兩個(gè)頂點(diǎn)集分別為N個(gè)排隊(duì)數(shù)據(jù)包和M個(gè)存儲(chǔ)器,如果數(shù)據(jù)包和存儲(chǔ)器之間存在一條弧,則表示該數(shù)據(jù)包的子樹的根結(jié)點(diǎn)位于該存儲(chǔ)器中,注意,每棵子樹有兩棵副本樹,從而,我們有兩棵獨(dú)立地分布于存儲(chǔ)器組中的副本樹,以及兩個(gè)分布在不同存儲(chǔ)器中的根結(jié)點(diǎn),通過訪問該子樹的任意副本,我們可以得到所需的路由信息。因此,圖中的每個(gè)數(shù)據(jù)包頂點(diǎn)都有兩條邊。一般而言,我們可以使用任意雙向圖匹配算法來尋找存儲(chǔ)器組和排隊(duì)數(shù)據(jù)包之間的最大匹配集,這些匹配算法包括FCFS(FirstComeFirstServed),PIM(ParallelIterativeMatching)16,iSLIP17等等,調(diào)度的目標(biāo)是在有資格參與調(diào)度的排隊(duì)數(shù)據(jù)包和所有可用的存儲(chǔ)器之間尋找一個(gè)最大匹配,我們在下文中給出關(guān)于該調(diào)度問題的一個(gè)算法框架。注意,在每輪調(diào)度階段的開始時(shí)刻,所有的排隊(duì)數(shù)據(jù)包和存儲(chǔ)器均處于未匹配狀態(tài),系統(tǒng)迭代地執(zhí)行如下三個(gè)步驟,直到找到一個(gè)最大匹配。步驟I)請求每個(gè)尚未匹配成功的排隊(duì)數(shù)據(jù)包發(fā)送一個(gè)請求給其尚未匹配成功的根存儲(chǔ)器;步驟2)授權(quán)每個(gè)被請求的存儲(chǔ)器從所有向其請求的數(shù)據(jù)包中選擇一個(gè)授予訪問許可;步驟3)接受每個(gè)被授權(quán)的數(shù)據(jù)包從所有向其授權(quán)的存儲(chǔ)器中選擇一個(gè)接受其訪問許可。為了幫助理解該調(diào)度策略框架下的路由信息查找過程,我們圖6和圖7中給出了一個(gè)簡單的調(diào)度實(shí)例,注意,調(diào)度單元采取先來先服務(wù)的調(diào)度策略控制存儲(chǔ)器組和數(shù)據(jù)包集合間的訪問操作。此處,我們假定可用的存儲(chǔ)器數(shù)量為M=4,且初始緩沖區(qū)數(shù)據(jù)包數(shù)N=0,系統(tǒng)時(shí)間被劃分為等大時(shí)隙,每個(gè)時(shí)隙被進(jìn)一步細(xì)分為M個(gè)時(shí)鐘周期,每個(gè)時(shí)鐘周期最多有一個(gè)數(shù)據(jù)包到達(dá)路由緩沖區(qū),為了表述方便,我們假設(shè)每個(gè)尚未匹配成功的排隊(duì)數(shù)據(jù)包隨機(jī)地從其尚未匹配成功的根存儲(chǔ)器中選擇一個(gè)并向其發(fā)送訪問請求。在時(shí)隙0,Ptl-P3到達(dá)路由緩沖區(qū),系統(tǒng)分別為各數(shù)據(jù)包生成路由信息查找請求RcrR3。此處,R0對應(yīng)于Ptl,R1對應(yīng)于P1,以此類推。因?yàn)镽2和R3同時(shí)請求訪問m2,故而系統(tǒng)發(fā)生了一個(gè)存儲(chǔ)器訪問沖突。根據(jù)先來先服務(wù)的仲裁策略,m2被授權(quán)給更早到達(dá)的P2。結(jié)果是,數(shù)據(jù)包{Pc^P^Pd的查找請求當(dāng)選。查找請求集HR2I是一個(gè)無沖突訪問集,其可被系統(tǒng)并行地執(zhí)行。如表中所示,該批處理作業(yè)連續(xù)消耗時(shí)隙1-3來執(zhí)行存儲(chǔ)器訪問操作。顯而易見,訪問階段的持續(xù)時(shí)間由所需訪問次數(shù)最多的Rtl決定。系統(tǒng)在時(shí)隙4發(fā)起下一輪調(diào)度,查找請求{R3,R5,R6,R8I當(dāng)選,系統(tǒng)消耗三個(gè)連續(xù)時(shí)隙5-7執(zhí)行當(dāng)選的路由信息查找請求的存儲(chǔ)器訪問操作,近似地,在時(shí)隙8和時(shí)隙12,查找請求(R7R9RltJ和{Rn}分別當(dāng)選。注意,我們不必建立查找請求R4,因?yàn)镻4的路由信息在索引表的快速匹配階段已經(jīng)被直接確定了。從這個(gè)例子中,我們注意到一個(gè)數(shù)據(jù)包的路由信息查找過程包含兩個(gè)處理階段調(diào)度階段和緊隨其后的訪問階段。前一個(gè)階段持續(xù)一個(gè)時(shí)隙,后一個(gè)階段持續(xù)一個(gè)或多個(gè)時(shí)隙。在調(diào)度階段,系統(tǒng)選取一個(gè)排隊(duì)數(shù)據(jù)包集來執(zhí)行路由信息查找任務(wù)。每個(gè)當(dāng)選的數(shù)據(jù)包的查找請求需要消耗多個(gè)連續(xù)的時(shí)隙。我們還可以看到,對任意兩個(gè)連續(xù)執(zhí)行的路由信息查找過程,我們可以將前一個(gè)查找過程的訪問階段和后一個(gè)查找過程的調(diào)度階段并行地執(zhí)行以進(jìn)一步提高系統(tǒng)效率。然而,為了簡化描述,我們在這個(gè)例子中假設(shè)路由處理過程是非重疊地順序執(zhí)行的。以上所述僅為本發(fā)明的較佳實(shí)施方式,本發(fā)明并不局限于上述實(shí)施方式,在實(shí)施過程中可能存在局部微小的結(jié)構(gòu)改動(dòng),如果對本發(fā)明的各種改動(dòng)或變型不脫離本發(fā)明的精神和范圍,且屬于本發(fā)明的權(quán)利要求和等同技術(shù)范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型。權(quán)利要求1.一種基于隨機(jī)副本分配的多存儲(chǔ)器流水路由體系結(jié)構(gòu),它包含一個(gè)用于緩存數(shù)據(jù)包的路由緩沖區(qū),一個(gè)用于控制排隊(duì)數(shù)據(jù)包與各存儲(chǔ)器間之間的讀寫訪問的調(diào)度單元,以及一組用于存儲(chǔ)路由表前綴樹結(jié)點(diǎn)的存儲(chǔ)器。2.根據(jù)權(quán)利要求I所述基于隨機(jī)副本分配的多存儲(chǔ)器流水路由體系結(jié)構(gòu),其特征在于,所述路由表前綴樹結(jié)點(diǎn)以隨機(jī)副本分配的存儲(chǔ)方式實(shí)現(xiàn)到存儲(chǔ)器的映射。3.根據(jù)權(quán)利要求2所述基于隨機(jī)副本分配的多存儲(chǔ)器流水路由體系結(jié)構(gòu),其特征在于,還包括索引表存儲(chǔ)單元,所述路由表前綴樹被切分為一棵主樹和多棵子樹,主樹包含前綴樹的低層結(jié)點(diǎn),并被轉(zhuǎn)換為一個(gè)索引表,該索弓I表存儲(chǔ)在索弓I表存儲(chǔ)單兀中,各子樹包含前綴樹的高層結(jié)點(diǎn),每棵子樹有兩個(gè)副本,各副本被獨(dú)立地映射到存儲(chǔ)器組中。4.根據(jù)權(quán)利要求3所述基于隨機(jī)副本分配的多存儲(chǔ)器流水路由體系結(jié)構(gòu),其特征在于,所述索引表包含數(shù)個(gè)子項(xiàng),每個(gè)子項(xiàng)由一個(gè)前綴域和一個(gè)或多個(gè)結(jié)點(diǎn)指針域構(gòu)成。5.根據(jù)權(quán)利要求I所述基于隨機(jī)副本分配的多存儲(chǔ)器流水路由體系結(jié)構(gòu),其特征在于,還包括一個(gè)用于檢查每個(gè)到達(dá)路由體系結(jié)構(gòu)的數(shù)據(jù)包,防止路由緩沖區(qū)中出現(xiàn)目的地址相同的數(shù)據(jù)包的包過濾器。6.根據(jù)權(quán)利要求3所述基于隨機(jī)副本分配的多存儲(chǔ)器流水路由體系結(jié)構(gòu),其特征在于,所述數(shù)據(jù)包的排隊(duì)策略為1)系統(tǒng)時(shí)間被分割為固定大小的時(shí)隙,每個(gè)時(shí)隙被定義為一個(gè)存儲(chǔ)訪問周期,每個(gè)時(shí)隙被等分為M個(gè)時(shí)鐘周期;2)每個(gè)到達(dá)路由緩沖區(qū)的數(shù)據(jù)包長度固定,每個(gè)時(shí)鐘周期到達(dá)的數(shù)據(jù)包數(shù)量最多為1,即每個(gè)時(shí)隙最多有M數(shù)據(jù)包達(dá)到路由體系結(jié)構(gòu);3)在各時(shí)隙的末尾,調(diào)度單元從路由緩沖區(qū)的排隊(duì)數(shù)據(jù)包中選取一個(gè)無沖突的數(shù)據(jù)包集合,所有當(dāng)選的數(shù)據(jù)包并行地訪問存儲(chǔ)器組以查找存儲(chǔ)在各存儲(chǔ)器中的路由信息,如果某個(gè)當(dāng)選的數(shù)據(jù)包完成了其路由信息查找任務(wù),那么它將立刻離開路由緩沖區(qū);4)各存儲(chǔ)器在一個(gè)時(shí)隙內(nèi)只能被訪問一次。7.根據(jù)權(quán)利要求6所述基于隨機(jī)副本分配的多存儲(chǔ)器流水路由體系結(jié)構(gòu),其特征在于,每個(gè)到達(dá)的數(shù)據(jù)包生成一個(gè)路由信息查找請求,該路由信息查找請求包含一次或多次存儲(chǔ)器訪問操作,每次存儲(chǔ)器訪問操作的目標(biāo)是路由表前綴樹中某結(jié)點(diǎn)所在的存儲(chǔ)器,各目標(biāo)結(jié)點(diǎn)依序構(gòu)成一條從根結(jié)點(diǎn)出發(fā)到某葉子結(jié)點(diǎn)結(jié)束的查找路徑。8.根據(jù)權(quán)利要求6所述基于隨機(jī)副本分配的多存儲(chǔ)器流水路由體系結(jié)構(gòu),其特征在于,所述調(diào)度單元的調(diào)度策略為步驟I)請求每個(gè)尚未匹配成功的排隊(duì)數(shù)據(jù)包發(fā)送一個(gè)請求給其尚未匹配成功的根存儲(chǔ)器;步驟2)授權(quán)每個(gè)被請求的存儲(chǔ)器從所有向其請求的數(shù)據(jù)包中選擇一個(gè)授予訪問許可;步驟3)接受每個(gè)被授權(quán)的數(shù)據(jù)包從所有向其授權(quán)的存儲(chǔ)器中選擇一個(gè)接受其訪問許可,其中,根存儲(chǔ)器表示每棵子樹的根結(jié)點(diǎn)所在的存儲(chǔ)器。全文摘要本發(fā)明公開了一種基于隨機(jī)副本分配的多存儲(chǔ)器流水路由體系結(jié)構(gòu),它包含緩存數(shù)據(jù)包的路由緩沖區(qū),防止路由緩沖區(qū)中出現(xiàn)目的地址相同的數(shù)據(jù)包的包過濾器,控制排隊(duì)數(shù)據(jù)包與各存儲(chǔ)器間之間的讀寫訪問的調(diào)度單元,以及存儲(chǔ)單元和存儲(chǔ)器組,路由表前綴樹被切分為一棵主樹和多棵子樹,主樹包含前綴樹低層結(jié)點(diǎn),并被轉(zhuǎn)換為存儲(chǔ)在索引表存儲(chǔ)單元中的索引表,各子樹包含前綴樹高層結(jié)點(diǎn),每棵子樹有兩個(gè)副本,各副本被獨(dú)立地映射到存儲(chǔ)器組中,每個(gè)到達(dá)的數(shù)據(jù)包生成一個(gè)路由信息查找請求,該請求包含一次或多次存儲(chǔ)器訪問操作,每次存儲(chǔ)器訪問操作的目標(biāo)是前綴樹中某結(jié)點(diǎn)所在的存儲(chǔ)器,各目標(biāo)結(jié)點(diǎn)依序構(gòu)成一條從根結(jié)點(diǎn)出發(fā)到某葉子結(jié)點(diǎn)結(jié)束的查找路徑。文檔編號H04L12/56GK102739550SQ201210248200公開日2012年10月17日申請日期2012年7月17日優(yōu)先權(quán)日2012年7月17日發(fā)明者農(nóng)革,吳裔申請人:中山大學(xué)