專利名稱:一種搜索處理裝置及網(wǎng)絡(luò)系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù)領(lǐng)域,特別是一種搜索處理裝置及網(wǎng)絡(luò)系統(tǒng)。
背景技術(shù):
Internet帶領(lǐng)著人們邁入一個(gè)全新的信息時(shí)代,對人類社會的發(fā)展起著巨大的推 進(jìn)作用。Internet是信息的載體,而實(shí)現(xiàn)Internet載體功能的除了眾多的終端計(jì)算機(jī)和 數(shù)據(jù)服務(wù)器,更主要的是搭起這個(gè)“信息高速公路”的網(wǎng)絡(luò)互連設(shè)備,如各級的路由器或交 換機(jī)。網(wǎng)絡(luò)互連設(shè)備所完成的最核心的功能就是在路由表中為來自不同鏈路、去往不同目 的地的IP分組找到最佳的傳送路由,又以同樣的方式把分組送到下一跳的路由器,如此反 復(fù),直到分組到達(dá)最終目的地。而為每個(gè)IP分組根據(jù)各自的目的地,在路由表里找到最佳 匹配路由的算法,是路由轉(zhuǎn)發(fā)處理的關(guān)鍵技術(shù)。隨著Internet應(yīng)用需求的廣泛、光接口技術(shù)的成熟,Internet鏈路帶寬以超 Moore定律的速度增長。近年來,大約每2年鏈路上路由查找的吞吐量就需要翻一番才能適 應(yīng)增長的需求。作為路由轉(zhuǎn)發(fā)關(guān)鍵路徑上的功能部件,路由查找引擎在性能上面臨著巨大 的壓力和挑戰(zhàn)?,F(xiàn)有技術(shù)中,網(wǎng)絡(luò)處理器在進(jìn)行IP分組轉(zhuǎn)發(fā)時(shí),首先要將待查找IPV4地址發(fā)送到 外部搜索處理裝置,由外部搜索處理裝置進(jìn)行搜索處理后返回下一跳表的索引給網(wǎng)絡(luò)處理 器,然后網(wǎng)絡(luò)處理器利用該下一跳表的索引從保存于一個(gè)外部存儲器的下一跳表中獲取下 一跳信息(如出端口號、下一跳IP地址、鏈路權(quán)重等),來進(jìn)行轉(zhuǎn)發(fā)計(jì)算處理。從以上的現(xiàn)有技術(shù)的描述中可以發(fā)現(xiàn),現(xiàn)有技術(shù)至少存在如下的問題網(wǎng)絡(luò)處理器在一次IP分組轉(zhuǎn)發(fā)計(jì)算的過程中,需要與外部裝置(網(wǎng)絡(luò)查找引擎、 外部存儲器)進(jìn)行多次請求_反饋的查詢過程,而由于處理器和外部存儲器的運(yùn)行速度差 別,以及處理器訪問外部設(shè)備受到的協(xié)議延遲,接口延遲,排隊(duì)緩沖等方面的影響,會導(dǎo)致 系統(tǒng)延遲較大,從而影響數(shù)據(jù)轉(zhuǎn)發(fā)性能。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種搜索處理裝置及網(wǎng)絡(luò)系統(tǒng),降低IP分組轉(zhuǎn)發(fā)計(jì)算中獲 取下一跳信息的時(shí)間,同時(shí)增加系統(tǒng)設(shè)計(jì)靈活度。為了實(shí)現(xiàn)上述目的,本發(fā)明實(shí)施例提供了一種搜索處理裝置,其中,所述搜索處理 裝置具有第一工作模式和第二工作模式,所述搜索處理裝置包括存儲單元、接口單元、第一 請求處理單元、第二請求處理單元以及第一結(jié)果處理單元,其中在第二工作模式下所述存儲單元用于存儲下一跳表;所述第一請求處理單元用于解析通過接口單元接收到的,由工作于第一工作模式 下的另一搜索處理裝置發(fā)送的數(shù)據(jù)訪問請求,獲取下一跳表的索引;
所述第二請求處理單元用于根據(jù)下一跳表的索引從所述下一跳表中獲取下一跳 fn息;所述第一結(jié)果處理單元用于將第二請求處理單元獲取的下一跳信息通過所述接 口單元發(fā)送,供網(wǎng)絡(luò)處理器進(jìn)行路由計(jì)算。所述搜索處理裝置具有第一工作模式和第二工作模式,所述搜索處理裝置包括存 儲單元、接口單元、第一請求處理單元、第二請求處理單元以及第一結(jié)果處理單元,其中在第二工作模式下所述存儲單元用于存儲下一跳表;所述第一請求處理單元用于解析通過所述接口單元接收到的,由工作于第一工作 模式下的另一所述搜索處理裝置發(fā)送的數(shù)據(jù)訪問請求,獲取下一跳表的索引;所述第二請求處理單元用于根據(jù)下一跳表的索引從所述下一跳表中獲取下一跳 fn息;所述第一結(jié)果處理單元用于將第二請求處理單元獲取的下一跳信息通過所述接 口單元發(fā)送,供網(wǎng)絡(luò)處理器進(jìn)行路由計(jì)算。上述的搜索處理裝置,其中,在第一工作模式下所述存儲單元用于存儲一路由表項(xiàng)數(shù)據(jù);所述第一請求處理單元用于解析通過所述接口單元接收到的搜索請求,獲取待查 找IP地址;所述第二請求處理單元用于根據(jù)所述待查找IP地址從所述路由表項(xiàng)數(shù)據(jù)中獲取 匹配的下一跳表的索引;所述第一結(jié)果處理單元用于將所述下一跳表的索引封裝到一數(shù)據(jù)訪問請求后通 過所述接口單元發(fā)送,供工作于第二工作模式下的再一所述搜索處理裝置獲取下一跳信 肩、ο上述的搜索處理裝置,其中,所述接口單元為高速串行接口或高速并行接口。上述的搜索處理裝置,其中,所述存儲單元為片內(nèi)存儲器,所述片內(nèi)存儲器包括多 個(gè)獨(dú)立的片內(nèi)存儲器塊,每個(gè)片內(nèi)存儲器塊具有獨(dú)立的地址和數(shù)據(jù)接口,供所述第二請求 處理單元進(jìn)行并行訪問。為了實(shí)現(xiàn)上述目的,本發(fā)明實(shí)施例還提供了一種網(wǎng)絡(luò)系統(tǒng),包括網(wǎng)絡(luò)處理器,其 中,所述網(wǎng)絡(luò)系統(tǒng)還包括至少一個(gè)工作于第一工作模式的搜索處理裝置;以及至少一個(gè)工作于第二工作模式的搜索處理裝置;所述工作于第一工作模式和第二工作模式的搜索處理裝置均包括存儲單元、接口 單元、第一請求處理單元、第二請求處理單元以及第一結(jié)果處理單元;工作于第一工作模式的搜索處理裝置中的存儲單元用于存儲一路由表項(xiàng)數(shù)據(jù),第 一請求處理單元用于解析通過接口單元接收到的由所述網(wǎng)絡(luò)處理器發(fā)送的搜索請求,獲取 待查找IP地址,第二請求處理單元用于根據(jù)所述待查找IP地址從所述路由表項(xiàng)數(shù)據(jù)中獲 取匹配的下一跳表的索引,第一結(jié)果處理單元用于將所述下一跳表的索引封裝到一數(shù)據(jù)訪 問請求后通過所述接口單元發(fā)送到工作于第二工作模式下的搜索處理裝置;工作于第二工作模式的搜索處理裝置中的存儲單元用于存儲下一跳表,第一請求
6處理單元用于解析通過接口單元接收到的所述數(shù)據(jù)訪問請求,獲取下一跳表的索引,第二 請求處理單元用于根據(jù)下一跳表的索引從所述下一跳表中獲取下一跳信息,第一結(jié)果處理 單元用于將第二請求處理單元獲取的下一跳信息通過所述接口單元發(fā)送到所述網(wǎng)絡(luò)處理
ο上述的網(wǎng)絡(luò)系統(tǒng),其中,所述接口單元為高速串行接口或高速并行接口。上述的網(wǎng)絡(luò)系統(tǒng),其中,所述存儲單元為片內(nèi)存儲器,所述片內(nèi)存儲器包括多個(gè)獨(dú) 立的片內(nèi)存儲器塊,每個(gè)片內(nèi)存儲器塊具有獨(dú)立的地址和數(shù)據(jù)接口,供所述第二請求處理 單元進(jìn)行并行訪問。為了實(shí)現(xiàn)上述目的,本發(fā)明實(shí)施例還提供了一種搜索處理裝置,其中,包括接口單元;用于存儲路由表項(xiàng)數(shù)據(jù)的第一存儲單元;用于存儲下一跳表的第二存儲單元;第三請求處理單元,用于通過解析從接口單元接收到搜索請求來獲取待查找IP 地址;第四請求處理單元,用于根據(jù)所述待查找IP地址從所述路由表項(xiàng)數(shù)據(jù)中獲取匹 配的下一跳表的索引;第五請求處理單元,用于通過所述下一跳表的索引從所述下一跳表中讀取下一跳 fn息;第二結(jié)果處理單元,用于將所述下一跳信息封裝后發(fā)送給網(wǎng)絡(luò)處理器,供網(wǎng)絡(luò)處 理器進(jìn)行路由計(jì)算。上述的搜索處理裝置,其中,所述第四請求處理單元具體包括第一子單元,用于根據(jù)所述待查找IP地址從所述路由表項(xiàng)數(shù)據(jù)中獲取匹配的下 一跳表的索引;第二子單元,用于將所述下一跳表的索引封裝到一數(shù)據(jù)訪問請求中;第五請求處理單元具體包括第三子單元,用于解析所述數(shù)據(jù)訪問請求獲取所述下一跳表的索引;第四子單元,用于通過所述下一跳表的索引從所述下一跳表中讀取下一跳信息。為了實(shí)現(xiàn)上述目的,本發(fā)明實(shí)施例還提供了一種網(wǎng)絡(luò)系統(tǒng),包括網(wǎng)絡(luò)處理器,所述 網(wǎng)絡(luò)系統(tǒng)還包括一搜索處理裝置,所述搜索處理裝置包括接口單元,與所述網(wǎng)絡(luò)處理器連接;用于存儲路由表項(xiàng)數(shù)據(jù)的第一存儲單元;用于存儲下一跳表的第二存儲單元;第三請求處理單元,用于通過解析從接口單元接收到的,由所述網(wǎng)絡(luò)處理器發(fā)送 的搜索請求來獲取待查找IP地址;第四請求處理單元,用于根據(jù)所述待查找IP地址從所述路由表項(xiàng)數(shù)據(jù)中獲取匹 配的下一跳表的索引;第五請求處理單元,用于通過所述下一跳表的索引從所述下一跳表中讀取下一跳 fn息;第二結(jié)果處理單元,用于將所述下一跳信息封裝后發(fā)送給所述網(wǎng)絡(luò)處理器,供所述網(wǎng)絡(luò)處理器進(jìn)行路由計(jì)算。上述的網(wǎng)絡(luò)系統(tǒng),其中,所述第四請求處理單元具體包括第一子單元,用于根據(jù)所述待查找IP地址從所述路由表項(xiàng)數(shù)據(jù)中獲取匹配的下 一跳表的索引;第二子單元,用于將所述下一跳表的索引封裝到一數(shù)據(jù)訪問請求中;第五請求處理單元具體包括第三子單元,用于解析所述數(shù)據(jù)訪問請求獲取所述下一跳表的索引;第四子單元,用于通過所述下一跳表的索引從所述下一跳表中讀取下一跳信息。本發(fā)明實(shí)施例具有以下的有益效果本發(fā)明的搜索處理裝置不僅可以配置成普通的搜索處理裝置,同時(shí)還可以被配置 成存儲芯片,且可以串行連接成為完整的查找-存儲器訪問鏈,使得網(wǎng)絡(luò)處理器不用再與 外部設(shè)備進(jìn)行很多次的交互,簡化了網(wǎng)絡(luò)處理器的路由查找過程;本發(fā)明的搜索處理裝置還可以同時(shí)起到搜索和存儲的作用,使得網(wǎng)絡(luò)處理器可以 直接得到下一跳信息,減少了網(wǎng)絡(luò)處理器與外部設(shè)備的交互次數(shù),簡化了網(wǎng)絡(luò)處理器的路 由查找過程,同時(shí)降低了整個(gè)路由處理路徑上的包延遲,提高了系統(tǒng)吞吐率;同時(shí),由于搜索和存儲采用了相同的芯片,能夠最大程度的降低硬件設(shè)計(jì)復(fù)雜度, 減小硬件成本和功耗。具體的說通過搜索引擎空間和存儲空間可以靈活配置,本發(fā)明可以使單個(gè)硬件平臺適應(yīng)不 同應(yīng)用對路由轉(zhuǎn)發(fā)的需求。如應(yīng)用對路由表容量需求較少,則可以將多片搜索引擎中的一 部分配置成存儲裝置,從而降低了網(wǎng)絡(luò)處理器上的存儲器需求,降低了硬件的成本和功耗。
圖1為本發(fā)明第一實(shí)施例的搜索處理裝置的結(jié)構(gòu)示意圖;圖2為本發(fā)明一種可能的模式配置指令的格式示意圖;圖3為本發(fā)明第一實(shí)施例的分別工作于第一工作模式和第二工作模式的搜索處 理裝置A和搜索處理裝置B與網(wǎng)絡(luò)處理器之間的連接示意圖;圖4為本發(fā)明第一實(shí)施例的分別工作于第一工作模式和第二工作模式的級聯(lián)的 搜索處理裝置A和級聯(lián)的搜索處理裝置B與網(wǎng)絡(luò)處理器之間的連接示意圖;圖5為本發(fā)明第一實(shí)施例的搜索請求的格式示意圖;圖6為本發(fā)明第一實(shí)施例的數(shù)據(jù)訪問請求的格式示意圖;圖7為本發(fā)明第二實(shí)施例的搜索處理裝置的結(jié)構(gòu)示意圖。
具體實(shí)施例方式本發(fā)明實(shí)施例中,提供一種搜索處理裝置及網(wǎng)絡(luò)系統(tǒng),通過降低網(wǎng)絡(luò)處理器與外 部裝置之間交互的過程,降低IP分組轉(zhuǎn)發(fā)計(jì)算中獲取下一跳信息的時(shí)間。本發(fā)明第一實(shí)施例的搜索處理裝置如圖1所示,所述搜索處理裝置工作于第一工 作模式或第二工作模式,所述搜索處理裝置包括存儲單元、接口單元、第一請求處理單元、 第二請求處理單元以及第一結(jié)果處理單元,其中在第二工作模式下,所述存儲單元用于存儲下一跳表,所述第一請求處理單元用于解析通過接口單元獲取工作于第一工作模式下的另一搜索處理裝置發(fā)送的數(shù)據(jù)訪問請 求,獲取下一跳表的索引,第二請求處理單元用于根據(jù)所述下一跳表的索引從所述下一跳 表中讀取下一跳信息(如下一跳的出端口號,下一跳IP地址,鏈路權(quán)重等),所述第一結(jié)果 處理單元用于將所述下一跳信息通過所述接口單元發(fā)送,供網(wǎng)絡(luò)處理器進(jìn)行路由計(jì)算。在第一工作模式下,所述存儲單元用于存儲一路由表項(xiàng)數(shù)據(jù),所述第一請求處理 單元用于解析通過接口單元接收到包括待查找IP地址的搜索請求,獲取所述待查找IP地 址,所述第二請求處理單元用于根據(jù)所述待查找IP地址從所述路由表項(xiàng)數(shù)據(jù)中獲取匹配 的下一跳表的索引,所述第一結(jié)果處理單元用于將所述下一跳表的索引封裝到一數(shù)據(jù)訪問 請求后通過所述接口單元發(fā)送,供工作于第二工作模式下的再一搜索處理裝置獲取下一跳 fn息;在此,在第一工作模式下,所述第一結(jié)果處理單元用于將所述下一跳表的索引封 裝到一數(shù)據(jù)訪問請求后通過所述接口單元發(fā)送,供工作于第二工作模式下的再一搜索處理 裝置獲取下一跳信息,該第一結(jié)果處理單元可能是直接或通過其他與之級聯(lián)的搜索處理裝 置發(fā)送到所述另一搜索處理裝置;而在第二工作模式下,所述第一結(jié)果處理單元用于將所述下一跳信息通過所述接 口單元發(fā)送,供網(wǎng)絡(luò)處理器進(jìn)行路由計(jì)算,該第一結(jié)果處理單元可能是直接或通過其他與 之級聯(lián)的搜索處理裝置發(fā)送到網(wǎng)絡(luò)處理器。當(dāng)然,所述搜索處理裝置可以工作于第一工作模式或第二工作模式,其需要一配 置模塊,將其配置成工作于第一工作模式或第二工作模式。圖1所示的各個(gè)模塊之間通過內(nèi)部數(shù)據(jù)總線及控制總線連接。該配置單元可以通過接口單元從外部接收的模式配置指令而進(jìn)行工作模式的配 置,也可以是通過硬件設(shè)置開關(guān)來進(jìn)行工作模式的配置。如圖2所示,為其中一種可能的模式配置指令的格式示意圖,包括編碼字段Ctrl-word (這個(gè)是控制字字段),159位至152位,如0x10表示查找模 式(第一工作模式),Oxll表示存儲模式(第二工作模式),0x12表示混合模式(第三工作 模式)。3種模式將在后續(xù)進(jìn)行詳細(xì)說明?;旌夏J街甘咀侄?包括Onchip mem size和Offhip mem size),用于記錄混合 模式下時(shí)用于存儲的存儲單元信息,如151位至120位記錄片內(nèi)RAM配置為存儲模式的大 小,而119位至80位記錄片外存儲器配置為存儲模式的大??;保留字段(Reserved),79位至0位,設(shè)置為0。下面以分別工作于第一工作模式和第二工作模式的搜索處理裝置A和搜索處理 裝置B來說明進(jìn)行IP分組轉(zhuǎn)發(fā)計(jì)算中獲取下一跳信息的工作過程。如圖3所示,網(wǎng)絡(luò)系統(tǒng)中包括網(wǎng)絡(luò)處理器以及工作于第一工作模式的搜索處理裝 置A和工作于第二工作模式的搜索處理裝置B,其中網(wǎng)絡(luò)處理器在接收到IP分組后,將IP分組的待查找IP地址封裝到搜索請求中, 發(fā)送給工作于第一工作模式的搜索處理裝置A,由于搜索處理裝置A的工作于第一工作模 式下,所以搜索處理裝置A中的第一請求處理單元解析通過接口單元接收到的搜索請求 后,獲取所述待查找IP地址,所述第二請求處理單元用于根據(jù)所述待查找IP地址從所述路 由表項(xiàng)數(shù)據(jù)中獲取匹配的下一跳表的索引,并由第一結(jié)果處理單元用于將所述下一跳表的索引封裝到一數(shù)據(jù)訪問請求后,通過所述接口單元發(fā)送到工作于第二工作模式下的搜索處 理裝置B ;搜索處理裝置B在第二工作模式下,其存儲單元中存儲有下一跳表,搜索處理裝 置B中的第一請求處理單元解析通過接口單元從工作于第一工作模式下的搜索處理裝置 A中接收到的數(shù)據(jù)訪問請求,獲取下一跳表的索引,第二請求處理單元根據(jù)所述下一跳表的 索引從所述下一跳表中讀取下一跳信息,由該第一結(jié)果處理單元將所述下一跳信息通過所 述接口單元發(fā)出。網(wǎng)絡(luò)處理器接收到下一跳信息后即可進(jìn)行包轉(zhuǎn)發(fā)計(jì)算處理。從以上描述可以發(fā)現(xiàn),從網(wǎng)絡(luò)處理器發(fā)送搜索請求開始,到網(wǎng)絡(luò)處理器接收到下 一跳信息為止,通過網(wǎng)絡(luò)相連接的各個(gè)裝置之間發(fā)生了 3次數(shù)據(jù)傳遞(網(wǎng)絡(luò)處理器-搜索 處理裝置A-搜索處理裝置B),相對于現(xiàn)有技術(shù)的4次傳遞,由于網(wǎng)絡(luò)傳輸帶來的時(shí)延減少 了 25%。下面,以η個(gè)級聯(lián)方式連接的工作于第一工作模式的搜索處理裝置和ρ個(gè)級聯(lián)方 式連接的工作于第二工作模式的搜索處理裝置相配合,進(jìn)行IP分組轉(zhuǎn)發(fā)計(jì)算中獲取下一 跳信息的工作過程。如圖4所示,假定搜索請求中的待查找IP地址對應(yīng)的下一跳表的索引保存于工作 于第一工作模式的搜索處理裝置Am中,則該搜索請求會被之前的搜索處理裝置Al到Am-I 一直旁路到搜索處理裝置Am,而搜索處理裝置Am在獲取待查找IP地址對應(yīng)的下一跳表的 索引(封裝于數(shù)據(jù)讀取請求中)會通過級聯(lián)的搜索處理裝置Am+1到An發(fā)送到搜索處理裝 置Bl ;假定下一跳表的索引對應(yīng)的下一跳表保存于工作于第一工作模式的搜索處理裝 置Bq中,則該下一跳表的索引會被之前的搜索處理裝置Bl到Bp-I —直旁路到搜索處理裝 置Bq,而搜索處理裝置Bq在獲取下一跳表的索引對應(yīng)的下一跳信息后,該下一跳信息會通 過級聯(lián)的搜索處理裝置Bq+Ι到Bp發(fā)送到網(wǎng)絡(luò)處理器。通過上述的級聯(lián)設(shè)置,極大的擴(kuò)大了路由表項(xiàng)及下一跳信息的支持能力(η倍)。在本發(fā)明的具體實(shí)施例中,該接口單元可以是高速并行接口單元和/或高速串行 接口單元,分別說明如下。高速并行接口由多條數(shù)據(jù)線和相應(yīng)的時(shí)鐘線構(gòu)成,數(shù)據(jù)在同步的時(shí)鐘驅(qū)動下,并 行的輸入/輸出到搜索處理裝置中。高速并行接口可以是 80bit 或者 72bit 的 TCAM(Ternary ContentAddressable Memory,三態(tài)內(nèi)容尋址存儲器)接口,也可以是36bit的LA-I接口(旁視接口)接口。關(guān) 于80bit或者72bitTCAM接口,以及LA-I接口,可以參考網(wǎng)絡(luò)處理論壇(npforum)的相關(guān) 文檔。而串行高速接口單元可以是由多個(gè)SERDES(Serializer-Deserializer,串行 器-解串器)構(gòu)成的接口。多個(gè)SERDES鏈路之間通過一定的串行傳輸鏈路協(xié)議來進(jìn)行綁定,如 interlaken-LA 協(xié)議,interlaken 協(xié)議,XAUI (IOGb 連接單元接 口 )協(xié)議,RXAUI,SPAUI (基 于IOGb以太網(wǎng)XAUI和spi4. 2標(biāo)準(zhǔn)的串行接口)等其他協(xié)議。在發(fā)送端,數(shù)據(jù)報(bào)文根據(jù)協(xié) 議進(jìn)行打包,拆分為多個(gè)串行數(shù)據(jù)通道,再經(jīng)過并串轉(zhuǎn)換成為高速的串行數(shù)據(jù)流輸出;而在
10接收端,高速串行數(shù)據(jù)流經(jīng)過串并轉(zhuǎn)換成為并行數(shù)據(jù),再經(jīng)過通道對齊,解碼等操作,恢復(fù) 出每通道的數(shù)據(jù),并根據(jù)協(xié)議層的通道恢復(fù)得到原始的傳輸數(shù)據(jù)。在40nm工藝下,高速串行收發(fā)器的工作頻率可以達(dá)到6. 25Gbps,甚至是IOGbps。 SERDES的通道數(shù)根據(jù)需要的數(shù)據(jù)傳輸率而設(shè)置,通常為了滿足100G路由查找的需求,需要 實(shí)現(xiàn)12甚至24對SERDES。接口單元所接收到的數(shù)據(jù)的編碼可以根據(jù)具體的應(yīng)用而作調(diào)整,例如,可以使高 速串行接口的數(shù)據(jù)格式和高速并行接口的數(shù)據(jù)格式一樣,也可以使高速并行接口的數(shù)據(jù) 格式和高速串行接口的數(shù)據(jù)格式不一樣。一般情況下,由于網(wǎng)絡(luò)處理器只會提供一種接口 (串行或者并行),所以對應(yīng)的搜索處理裝置也只能對應(yīng)使能高速串行接口和高速并行接 口中的一個(gè)。因此,一旦決定工作接口的類型后,搜索處理裝置將完全使用這種類型的接口 (串行或者并行)傳輸相關(guān)數(shù)據(jù)。在本發(fā)明的具體實(shí)施例中,該存儲單元可以片內(nèi)存儲器,用于存儲路由表項(xiàng)數(shù)據(jù), ACL(Access Control List,訪問控制列表)數(shù)據(jù),以及其他為了實(shí)現(xiàn)查找而附加的數(shù)據(jù)結(jié) 構(gòu)。片內(nèi)存儲器單元可以采用片上SRAM (Static Random Access Memory,靜態(tài)隨機(jī)存 取存儲器)構(gòu)成,也可以采用片內(nèi)集成的edRAM(embedded DynamicRandom Access Memory, 嵌入式動態(tài)隨機(jī)存取存儲器)來實(shí)現(xiàn),或者是二者混合的實(shí)現(xiàn)。SRAM具有速度高,密度低,功耗大的特點(diǎn),而edram具有速度低,功耗低,密度大的 特點(diǎn),可以根據(jù)具體的設(shè)計(jì)指標(biāo)進(jìn)行選擇,或者混合使用。比如為了實(shí)現(xiàn)100K的IPV4路由 表項(xiàng)存儲,每個(gè)路由前綴是32個(gè)bit,那么總共需要至少3. 2Mbit的存儲器資源,可以考慮 完全采用SRAM實(shí)現(xiàn),或者考慮采用1. 7Mb的SRAM和2Mb的edRAM來實(shí)現(xiàn),第二種方案相對 于第一種其芯片面積會變小,但是查詢性能可能會受一定的影響,此外,由于edRAM需要特 殊的掩模工藝實(shí)現(xiàn),在制作成本,開發(fā)周期以及成品率等方面,也會有一定的區(qū)別。片內(nèi)存儲器可以是由多個(gè)獨(dú)立的較小的片內(nèi)存儲器塊構(gòu)成,以加速查找速度,并 且降低芯片的不良生產(chǎn)率。每個(gè)片內(nèi)存儲器塊具有獨(dú)立的地址和數(shù)據(jù)接口,可以通過第二 請求處理單元進(jìn)行并行訪問。如3. 2Mb的SRAM,可以拆分成16個(gè)200Kb的SRAM塊,在查找 的時(shí)候,可以同時(shí)發(fā)起16個(gè)查找請求給16個(gè)SRAM塊,從而將查找速度加速16倍。此外, 分成多塊以后,可以將生產(chǎn)過程中有缺陷的芯片標(biāo)記成不同容量范圍的芯片。例如,在生產(chǎn)中16塊RAM有一塊RAM因?yàn)橹圃烊毕荻荒苁褂茫瑒t將因?yàn)橹圃烊?陷而不能使用的RAM標(biāo)記為不可用即可。通常情況下,SRAM或者edRAM存儲塊還可以加入 ECC(Error Checking and Correcting,錯(cuò)誤檢查和糾正)功能,即預(yù)留出一定的存儲空間 作為檢錯(cuò)糾錯(cuò)數(shù)據(jù)的存儲空間。例如64bit位寬的數(shù)據(jù),一般預(yù)留8位作為ECC的數(shù)據(jù)存 儲,從而實(shí)際的存儲塊數(shù)據(jù)位寬為72bit。該存儲單元也可以多個(gè)片外DRAM控制器單元和片外DRAM存儲器芯片結(jié)合實(shí) 現(xiàn)。所述DRAM存儲器芯片可以是現(xiàn)行工業(yè)標(biāo)準(zhǔn)的DDR(Double DataRate)動態(tài)隨機(jī)存 取器芯片,DDR2動態(tài)隨機(jī)存取器芯片,DDR3動態(tài)隨機(jī)存取器芯片、RLDRAMII (Reduced Latency Dynamic Random Access Memory II,第二代低延時(shí)動態(tài)隨機(jī)存取存儲器)芯片, RLDRAMII I (Reduced LatencyDynamic Random Access Memory III,第三代低延時(shí)動態(tài)隨機(jī) 存取存儲器)芯片等。
不同的芯片其性能,容量,接口標(biāo)準(zhǔn)也有所不同,實(shí)現(xiàn)的過程中可以根據(jù)系統(tǒng)的需 求進(jìn)行選取。如實(shí)現(xiàn)較小的表項(xiàng)空間擴(kuò)展,可以選擇容量較小但是速度較快的RLDRAM芯 片,如果實(shí)現(xiàn)比較大的表項(xiàng)空間的擴(kuò)展,但是對查找性能要求不是非常高,則可以選用DDR3 動態(tài)隨機(jī)存儲器芯片。DRAM控制器單元實(shí)現(xiàn)DRAM的配置,初始化,時(shí)序調(diào)整,讀寫以及刷 新等操作。通過例化多個(gè)DRAM控制器,可以增加單位時(shí)間的存儲器訪問次數(shù),從而達(dá)到更 高的查詢性能。DRAM控制器可以工作在兩種模式,查詢模式和緩存模式。工作在查詢模式 時(shí),控制器針對讀操作進(jìn)行優(yōu)化,將大部分的操作時(shí)間給予讀操作,保證讀操作的效率。工 作在緩存模式時(shí),控制器針對讀寫均衡的操作進(jìn)行優(yōu)化,重點(diǎn)優(yōu)化讀寫之間切換時(shí)的效率。下面結(jié)合圖3來具體說明數(shù)據(jù)/指令的傳遞過程。搜索處理裝置中的第一請求處理單元通過接口單元接收到搜索請求,其中,該搜 索請求包括如圖5所示的3個(gè)字段第一控制字字段Ctrl-word,第159至152位,用于指示搜索類型,如0x00代表當(dāng) 前是一個(gè)IPV4的路由地址的查詢,0x01代表當(dāng)前是一個(gè)IPV6的路由地址的查詢;內(nèi)容字段Dest IP,第151位至120位,用于記載待查找內(nèi)容,如待查找IPV4地址;保留字段Reserved,第119位至0位,用bitO填充。當(dāng)然,上述的字段長度僅僅是舉例說明,也可以根據(jù)不同的需要來調(diào)整。第一請求處理單元通過接口單元接收到搜索請求后,解析即可發(fā)現(xiàn)該搜索請求是 請求搜索內(nèi)容字段記錄的IP地址,然后將該IP地址發(fā)送給第二請求處理單元,第二請求處 理單元為一查找單元,其根據(jù)內(nèi)容字段記錄的IP地址從所述路由表項(xiàng)數(shù)據(jù)中獲取匹配的 下一跳表的索引。其中,第二請求處理單元可以通過多種算法去實(shí)現(xiàn)路由地址的最長前綴匹配,其 匹配可以基于現(xiàn)有的各種算法來實(shí)現(xiàn),如trie算法、Tree算法以及Hash算法中的一種或多 禾中,具體的匹配算法可以參考〈〈Packet ForwardingTechnologies)), weidong wu, Auerbach publication, 2007, ISBN :978-0-8493-8057_0。當(dāng)找到與待查找IP地址匹配的最長前綴條目后,第二處理單元將對應(yīng)的下一跳 表的索引發(fā)送到第一結(jié)果處理單元,由第一結(jié)果處理單元將該下一跳表的索引封裝到數(shù)據(jù) 訪問請求,并通過接口單元發(fā)送給工作于第二工作模式下的另一搜索處理裝置,當(dāng)然,如果 沒有找到匹配的路由條目,第二處理單元也輸出查找失敗標(biāo)記。第一結(jié)果處理單元需要對搜索結(jié)果(下一跳表的索引或失敗標(biāo)記)進(jìn)行編碼和處 理后發(fā)送到工作于第二工作模式下的另一搜索處理裝置。如圖6所示,數(shù)據(jù)訪問請求包括如下字段第二控制字字段Ctrl-Word,第159至152位,用于指示訪問類型,如可以使用 0x02代表當(dāng)前是一個(gè)128bit的寫操作,可以使用0x03代表當(dāng)前是一個(gè)128bit的讀操作;地址字段(Address),第151位至128位,用于記錄下一跳表的索引;內(nèi)容字段,第127位至0位,當(dāng)為讀請求時(shí),用bitO填充,而為寫請求時(shí),為待寫入數(shù)據(jù)。在這種鍵值的配置下,如果需要擴(kuò)大訪問空間,則可以適當(dāng)減小第二控制字字段 的位數(shù),比如減小第二控制字字段為4bit,那么相應(yīng)的地址可以擴(kuò)展至28位,從而對應(yīng)的 實(shí)際可尋址空間也對應(yīng)擴(kuò)大。具體的地址位數(shù)可以根據(jù)片內(nèi)存儲器的配置而設(shè)定為不同的值。在第二工作模式下工作的搜索處理裝置解析通過接口單元獲取數(shù)據(jù)訪問請求,獲 取地址字段中記錄的下一跳表的索引,并根據(jù)所述下一跳表的索引從下一跳表中讀取下一 跳信息,并將下一跳信息封裝后通過所述接口單元發(fā)送,供網(wǎng)絡(luò)處理進(jìn)行路由計(jì)算。第二工作模式下工作的搜索處理裝置解析后的數(shù)據(jù)訪問請求,并通過下一跳表的 索引與片內(nèi)存儲器單元或者DRAM控制器單元交互,獲取下一跳信息。如圖7所示,本發(fā)明第二實(shí)施例的網(wǎng)絡(luò)系統(tǒng)包括網(wǎng)絡(luò)處理器和搜索處理裝置,其 中的搜索處理裝置工作于混合模式,如圖7所示,包括接口單元;用于存儲路由表項(xiàng)數(shù)據(jù)的第一存儲單元;用于存儲下一跳表的第二存儲單元;第三請求處理單元,用于通過解析從接口單元接收到搜索請求來獲取待查找IP 地址;第四請求處理單元,用于根據(jù)所述待查找IP地址從所述路由表項(xiàng)數(shù)據(jù)中獲取匹 配的下一跳表的索引;第五請求處理單元,用于通過所述下一跳表的索引從所述下一跳表中讀取下一跳 fn息;第二結(jié)果處理單元,用于將所述下一跳信息封裝后發(fā)送給網(wǎng)絡(luò)處理器,供網(wǎng)絡(luò)處 理器進(jìn)行路由計(jì)算。圖7所示的搜索處理裝置中,該第一存儲單元可以是片內(nèi)存儲器,而第二存儲單 元可以是片外存儲器,當(dāng)然也可以是其它方式。當(dāng)然,上述的各個(gè)處理單元僅僅是邏輯上的劃分,在實(shí)現(xiàn)時(shí)可以利用同一模塊來 實(shí)現(xiàn),也可以分別實(shí)現(xiàn)。同時(shí),為了盡可能與標(biāo)準(zhǔn)保持一致,在本發(fā)明的第二具體實(shí)施例中,該第四請求處 理單元具體包括第一子單元,用于根據(jù)所述待查找IP地址從所述路由表項(xiàng)數(shù)據(jù)中獲取匹配的下 一跳表的索引;第二子單元,用于將所述下一跳表的索引封裝到一數(shù)據(jù)訪問請求中;第五請求處理單元具體包括第三子單元,用于解析所述數(shù)據(jù)訪問請求獲取所述下一跳表的索引;第四子單元,用于通過所述下一跳表的索引從所述下一跳表中讀取下一跳信息。該第五請求處理單元可以和第三請求處理單元設(shè)置一個(gè)第六請求處理單元,這種 情況下,第六請求處理單元在接收到的請求為搜索請求時(shí),則解析獲取待查找IP地址,由 第四請求處理單元來獲取下一跳索引,而在接收到的請求為數(shù)據(jù)訪問請求(由第二結(jié)果處 理單元封裝)時(shí),則直接解析獲取所述下一跳表的索引后,通過下一跳表的索引從所述下 一跳表中讀取下一跳信息。下面說明一下本發(fā)明實(shí)施例的系統(tǒng)的初始化過程。當(dāng)線卡上電后,搜索處理裝置(芯片)冷啟動,外部的時(shí)鐘輸入并維持穩(wěn)定,鎖相 環(huán)鎖定外部參考時(shí)鐘頻率。搜索處理裝置進(jìn)入預(yù)復(fù)位狀態(tài),等待網(wǎng)絡(luò)處理器輸入的復(fù)位信號或者指令。當(dāng)接收到復(fù)位信號或者指令后,搜索處理裝置進(jìn)入復(fù)位狀態(tài),清空各種狀態(tài)寄 存器、計(jì)數(shù)器、存儲單元。當(dāng)復(fù)位流程結(jié)束后,芯片給出復(fù)位完成指示。網(wǎng)絡(luò)處理器采取輪 詢等待的方式來等待搜索處理裝置的復(fù)位結(jié)束。在完成復(fù)位操作后,網(wǎng)絡(luò)處理器發(fā)出設(shè)置工作模式的配置指令。搜索處理裝置解 析配置指令,根據(jù)主控端的需求將內(nèi)部存儲器設(shè)置為查找模式或者是存儲模式,或者是混 合模式。本發(fā)明的查找加速芯片不僅可以配置成普通的查找引擎,同時(shí)也可以被配置成存 儲芯片,且可以串行連接成為完整的查找_存儲器訪問鏈,從而簡化整個(gè)路由查找過程,且 由于查找和存儲采用了相同的芯片,能夠最大程度的降低硬件設(shè)計(jì)復(fù)雜度,減小硬件成本 和功耗。如搜索引擎空間和存儲空間可以靈活配置,本發(fā)明可以使單個(gè)硬件平臺適應(yīng)不同 應(yīng)用對路由轉(zhuǎn)發(fā)的需求。如應(yīng)用對路由表容量需求較少,則可以將多片搜索引擎中的一部 分配置成存儲裝置,從而降低了網(wǎng)絡(luò)處理器上的存儲器需求,降低了硬件的成本和功耗。以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人 員來說,在不脫離本發(fā)明原理的前提下,還可以作出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng) 視為本發(fā)明的保護(hù)范圍。
權(quán)利要求
一種搜索處理裝置,其特征在于,所述搜索處理裝置具有第一工作模式和第二工作模式,所述搜索處理裝置包括存儲單元、接口單元、第一請求處理單元、第二請求處理單元以及第一結(jié)果處理單元,其中在第二工作模式下所述存儲單元用于存儲下一跳表;所述第一請求處理單元用于解析通過所述接口單元接收到的,由工作于第一工作模式下的另一所述搜索處理裝置發(fā)送的數(shù)據(jù)訪問請求,獲取下一跳表的索引;所述第二請求處理單元用于根據(jù)下一跳表的索引從所述下一跳表中獲取下一跳信息;所述第一結(jié)果處理單元用于將第二請求處理單元獲取的下一跳信息通過所述接口單元發(fā)送,供網(wǎng)絡(luò)處理器進(jìn)行路由計(jì)算。
2.根據(jù)權(quán)利要求1所述的搜索處理裝置,其特征在于,在第一工作模式下所述存儲單元用于存儲一路由表項(xiàng)數(shù)據(jù);所述第一請求處理單元用于解析通過所述接口單元接收到的搜索請求,獲取待查找IP 地址;所述第二請求處理單元用于根據(jù)所述待查找IP地址從所述路由表項(xiàng)數(shù)據(jù)中獲取匹配 的下一跳表的索引;所述第一結(jié)果處理單元用于將所述下一跳表的索引封裝到一數(shù)據(jù)訪問請求后通過所 述接口單元發(fā)送,供工作于第二工作模式下的再一所述搜索處理裝置獲取下一跳信息。
3.根據(jù)權(quán)利要求1或2所述的搜索處理裝置,其特征在于,所述接口單元為高速串行接 口或高速并行接口。
4.根據(jù)權(quán)利要求1或2所述的搜索處理裝置,其特征在于,所述存儲單元為片內(nèi)存儲 器,所述片內(nèi)存儲器包括多個(gè)獨(dú)立的片內(nèi)存儲器塊,每個(gè)片內(nèi)存儲器塊具有獨(dú)立的地址和 數(shù)據(jù)接口,供所述第二請求處理單元進(jìn)行并行訪問。
5.一種網(wǎng)絡(luò)系統(tǒng),包括網(wǎng)絡(luò)處理器,其特征在于,所述網(wǎng)絡(luò)系統(tǒng)還包括至少一個(gè)工作于第一工作模式的搜索處理裝置;以及至少一個(gè)工作于第二工作模式的搜索處理裝置;所述工作于第一工作模式和第二工作模式的搜索處理裝置均包括存儲單元、接口單 元、第一請求處理單元、第二請求處理單元以及第一結(jié)果處理單元;工作于第一工作模式的搜索處理裝置中的存儲單元用于存儲一路由表項(xiàng)數(shù)據(jù),第一請 求處理單元用于解析通過接口單元接收到的由所述網(wǎng)絡(luò)處理器發(fā)送的搜索請求,獲取待查 找IP地址,第二請求處理單元用于根據(jù)所述待查找IP地址從所述路由表項(xiàng)數(shù)據(jù)中獲取匹 配的下一跳表的索引,第一結(jié)果處理單元用于將所述下一跳表的索引封裝到一數(shù)據(jù)訪問請 求后通過所述接口單元發(fā)送到工作于第二工作模式下的搜索處理裝置;工作于第二工作模式的搜索處理裝置中的存儲單元用于存儲下一跳表,第一請求處理 單元用于解析通過接口單元接收到的所述數(shù)據(jù)訪問請求,獲取下一跳表的索引,第二請求 處理單元用于根據(jù)下一跳表的索引從所述下一跳表中獲取下一跳信息,第一結(jié)果處理單元 用于將第二請求處理單元獲取的下一跳信息通過所述接口單元發(fā)送到所述網(wǎng)絡(luò)處理器。
6.根據(jù)權(quán)利要求5所述的網(wǎng)絡(luò)系統(tǒng),其特征在于,所述接口單元為高速串行接口或高速并行接口。
7.根據(jù)權(quán)利要求5所述的網(wǎng)絡(luò)系統(tǒng),其特征在于,所述存儲單元為片內(nèi)存儲器,所述片 內(nèi)存儲器包括多個(gè)獨(dú)立的片內(nèi)存儲器塊,每個(gè)片內(nèi)存儲器塊具有獨(dú)立的地址和數(shù)據(jù)接口, 供所述第二請求處理單元進(jìn)行并行訪問。
8.一種搜索處理裝置,其特征在于,包括 接口單元;用于存儲路由表項(xiàng)數(shù)據(jù)的第一存儲單元; 用于存儲下一跳表的第二存儲單元;第三請求處理單元,用于通過解析從接口單元接收到搜索請求來獲取待查找IP地址; 第四請求處理單元,用于根據(jù)所述待查找IP地址從所述路由表項(xiàng)數(shù)據(jù)中獲取匹配的 下一跳表的索引;第五請求處理單元,用于通過所述下一跳表的索引從所述下一跳表中讀取下一跳信息;第二結(jié)果處理單元,用于將所述下一跳信息封裝后發(fā)送給網(wǎng)絡(luò)處理器,供網(wǎng)絡(luò)處理器 進(jìn)行路由計(jì)算。
9.根據(jù)權(quán)利要求8所述的搜索處理裝置,其特征在于,所述第四請求處理單元具體包括第一子單元,用于根據(jù)所述待查找IP地址從所述路由表項(xiàng)數(shù)據(jù)中獲取匹配的下一跳 表的索引;第二子單元,用于將所述下一跳表的索引封裝到一數(shù)據(jù)訪問請求中; 第五請求處理單元具體包括第三子單元,用于解析所述數(shù)據(jù)訪問請求獲取所述下一跳表的索引; 第四子單元,用于通過所述下一跳表的索引從所述下一跳表中讀取下一跳信息。
10.一種網(wǎng)絡(luò)系統(tǒng),包括網(wǎng)絡(luò)處理器,其特征在于,所述網(wǎng)絡(luò)系統(tǒng)還包括一搜索處理裝 置,所述搜索處理裝置包括接口單元,與所述網(wǎng)絡(luò)處理器連接; 用于存儲路由表項(xiàng)數(shù)據(jù)的第一存儲單元; 用于存儲下一跳表的第二存儲單元;第三請求處理單元,用于通過解析從接口單元接收到的,由所述網(wǎng)絡(luò)處理器發(fā)送的搜 索請求來獲取待查找IP地址;第四請求處理單元,用于根據(jù)所述待查找IP地址從所述路由表項(xiàng)數(shù)據(jù)中獲取匹配的 下一跳表的索引;第五請求處理單元,用于通過所述下一跳表的索引從所述下一跳表中讀取下一跳信息;第二結(jié)果處理單元,用于將所述下一跳信息封裝后發(fā)送給所述網(wǎng)絡(luò)處理器,供所述網(wǎng) 絡(luò)處理器進(jìn)行路由計(jì)算。
11.根據(jù)權(quán)利要求10所述的網(wǎng)絡(luò)系統(tǒng),其特征在于,所述第四請求處理單元具體包括 第一子單元,用于根據(jù)所述待查找IP地址從所述路由表項(xiàng)數(shù)據(jù)中獲取匹配的下一跳表的索引;第二子單元,用于將所述下一跳表的索引封裝到一數(shù)據(jù)訪問請求中; 第五請求處理單元具體包括第三子單元,用于解析所述數(shù)據(jù)訪問請求獲取所述下一跳表的索引; 第四子單元,用于通過所述下一跳表的索引從所述下一跳表中讀取下一跳信息。
全文摘要
本發(fā)明提供一種搜索處理裝置及網(wǎng)絡(luò)系統(tǒng),其中,搜索處理裝置具有第一工作模式和第二工作模式,在第一工作模式下,第一請求處理單元解析搜索請求,獲取IP地址;第二請求處理單元根據(jù)IP地址從路由表項(xiàng)數(shù)據(jù)中獲取匹配的下一跳表的索引;第一結(jié)果處理單元將下一跳表的索引封裝到一數(shù)據(jù)訪問請求后通過接口單元發(fā)送;而在第二工作模式下,第一請求處理單元解析數(shù)據(jù)訪問請求,獲取下一跳表的索引;第二請求處理單元根據(jù)下一跳表的索引從下一跳表中獲取下一跳信息;第一結(jié)果處理單元將第二請求處理單元獲取的下一跳信息通過接口單元發(fā)送,供網(wǎng)絡(luò)處理器進(jìn)行路由計(jì)算。本發(fā)明簡化了網(wǎng)絡(luò)處理器的路由查找過程,提高了系統(tǒng)吞吐率,減小硬件成本和功耗。
文檔編號H04L12/56GK101902401SQ20101023837
公開日2010年12月1日 申請日期2010年7月23日 優(yōu)先權(quán)日2010年7月23日
發(fā)明者張煒, 李彧, 王志忠, 錢曉東 申請人:中興通訊股份有限公司