專利名稱:基于內(nèi)容可尋址存儲器的高速路由查找系統(tǒng)的制作方法
技術(shù)領域:
本發(fā)明涉及一個基于內(nèi)容可尋址寄存器(以下簡稱CAM)的高速路由查找系統(tǒng),屬于網(wǎng)絡技術(shù)領域。
路由查找是在路由器中根據(jù)IP包的目的地址,查找路由表,得到該IP包的轉(zhuǎn)發(fā)信息的過程,其中轉(zhuǎn)發(fā)信息是路由協(xié)議運行的結(jié)果動態(tài)刷新到路由表中的。因此在高速路由器中一個路由查找系統(tǒng)包括高速路由查找和實時路由刷新功能。
在以往的實現(xiàn)中,高速路由器中的路由查找系統(tǒng)一般通過下面的方法實現(xiàn)a、通過硬件直接控制靜態(tài)存儲器(以下簡稱SRAM)實現(xiàn)。
b、通過硬件直接控制動態(tài)存儲器(以下簡稱DRAM)實現(xiàn)。(參見Pankaj Gupta,Linand N.McKeown“Routing Lookups in Hardware at Memory Access Speeds”,Proc,IEEE INFOCOM’98 Apr.1998.)通過硬件直接控制SRAM實現(xiàn)路由查找一般不能支持大路由表,并且要通過壓縮算法存放路由表,路由的刷新更加復雜,有時要重建整個路由表。
用硬件直接控制DRAM的方法大都是直接根據(jù)IP地址的高24位作為DRAM的存儲器地址,因為大多數(shù)的路由前綴長度都是小于等于24的,所以對于絕大多數(shù)的路由查找只需要一次存儲器訪問就能得到結(jié)果,但是它還存在以下缺點1、由于DRAM的存儲器訪問時間限制,此方法的最大查找速率只能達到20兆包/秒(MPPS)。
2、由于要將長度小于24的前綴擴展成24位,所以路由刷新過程比較復雜,不能實時刷新路由表。
3、在使用一個DRAM的情況下,刷新會影響路由查找,使路由查找速率下降,延遲變大。
4、不能直接應用到下一代因特網(wǎng)協(xié)議IPv6路由查找中。
本發(fā)明提出的基于內(nèi)容可尋址存儲器的路由查找系統(tǒng),包括路由查找協(xié)處理器,驅(qū)動電路,內(nèi)容可尋址存儲器和同步靜態(tài)存儲器。其中的路由查找協(xié)處理器為一可編程芯片,內(nèi)容可尋址存儲器通過驅(qū)動電路與路由查找協(xié)處理器相連,并接收路由查找協(xié)處理器的控制,同步靜態(tài)存儲器與路由查找協(xié)處理器相連,由路由查找協(xié)處理器控制同步靜態(tài)存儲器的讀與寫。
本發(fā)明提出的基于內(nèi)容可尋址存儲器的路由查找系統(tǒng),具有以下優(yōu)點高速率最大查找速率可達50兆包/秒(MPPS),保證最小查找速率為Smin。
大容量可支持256K路由表項,并可擴展到1M路由表項。
實時刷新保證每秒有U條路由刷新命令被執(zhí)行。
小延遲保證最大的查找延時小于Dmax。
支持IPv6通過簡單的設置可以適用于IPv6。
其中Smin、Dmax和U是相關(guān)并且可調(diào)的。
總之本系統(tǒng)能夠進行高速率,低延遲的路由查找,進行實時路由表刷新,支持大容量路由表,并且支持IPv6的路由查找。
內(nèi)容可尋址存儲器(CAM),使用Lara Technology公司的內(nèi)容可尋址存儲器條(CAMmodule),為45度或90度傾斜的插槽結(jié)構(gòu)。最多可以使用兩個內(nèi)容可尋址存儲器條(CAMModule),內(nèi)容可尋址存儲器(CAM)中存放路由前綴,包括IP地址和掩碼。
同步靜態(tài)存儲器(SSRAM)配合內(nèi)容可尋址存儲器(CAM)使用,用于存放路由轉(zhuǎn)發(fā)信息如IP包發(fā)送的端口,下一跳IP地址等;驅(qū)動電路使用+3.3v供電的74xx16245器件。由于路由查找協(xié)處理器要驅(qū)動內(nèi)容可尋址存儲器條(CAM module)中所有芯片,在使用兩個內(nèi)容可尋址存儲器條(CAMmodule)時,要驅(qū)動16個芯片,通過此驅(qū)動電路增加信號的驅(qū)動能力,路由查找協(xié)處理器在讀寫內(nèi)容可尋址存儲器(CAM)時要控制驅(qū)動電路的方向。
下面結(jié)合附圖
詳細介紹本發(fā)明的內(nèi)容及工作過程。
本發(fā)明中涉及到三個處理過程初始化過程,路由表刷新過程,路由查找過程,下面分別結(jié)合附圖介紹這三個過程。
初始化過程在本發(fā)明的路由查找系統(tǒng)正常工作前需要一個初始化過程,外部系統(tǒng)在使用本系統(tǒng)時要通過中央處理器(CPU)接口來完成此初始化過程,首先,外部系統(tǒng)要給出復位信號;然后,向地址為3的單元寫動態(tài)調(diào)度算法的參數(shù)(中央處理器接口所涉及到的地址單元的意義,以及動態(tài)調(diào)度算法所用到的參數(shù)的意義在本說明書的后面部分介紹);最后,外部系統(tǒng)通過向地址為2的單元寫Config指令(中央處理器接口所涉及到的地址單元的意義和所用到的指令格式在本說明書的后面部分介紹)來配置CAM。這樣整個初始化過程結(jié)束。在向中央處理器接口寫入數(shù)據(jù)時,必須遵循圖5所示的時序。
路由刷新過程外部系統(tǒng)根據(jù)路由通過中央處理器(CPU)接口向路由查找協(xié)處理器發(fā)送路由刷新命令。外部系統(tǒng)先讀地址為1單元,如果讀到的值為0,寫地址為2的單元寫路由刷新指令,這些指令包括Fill,Delete,Mov;如果讀到的值非0,則不能寫這些命令(中央處理器接口所涉及到的地址單元的意義和所用到的指令格式在本說明書的后面介紹)。圖2為系統(tǒng)中路由查找協(xié)處理器的內(nèi)部結(jié)構(gòu)圖,從中可以看出路由查找協(xié)處理器在收到上述指令后進行操作的過程中央處理器接口模塊在接收到路由刷新命令后,由命令處理模塊對這些命令進行處理,把路由刷新命令分割成可以直接執(zhí)行的微指令,放到一個緩沖區(qū)中,如果調(diào)度模塊選擇了刷新命令執(zhí)行,則這些微指令通過發(fā)射模塊被發(fā)射到CAM接口模塊和SSRAM接口模塊,CAM接口模塊通過驅(qū)動電路控制CAM的讀寫,SSRAM接口模塊控制SSRAM的讀寫,完成對路由表的刷新。
路由查找過程外部系統(tǒng)通過目的IP地址接收接口模塊向路由查找協(xié)處理器發(fā)送目的IP地址,此模塊的工作過程如圖3所示,外部系統(tǒng)給路由查找協(xié)處理器提供了傳送目的IP地址的時鐘CLK,在FULL信號為低時,外部系統(tǒng)可以向路由查找協(xié)處理器發(fā)送目的IP地址,外部系統(tǒng)通過將TEN信號置高表示送入一個目的IP地址,這個IP地址就是DATA總線傳送的32位數(shù)據(jù),路由查找協(xié)處理器會根據(jù)時鐘CLK采集此數(shù)據(jù),通過時序圖可知,多個目的IP地址可以連續(xù)傳送。
如圖2所示,在目的IP地址接收接口模塊接收到目的IP地址以后,會將此目的IP地址放入到一個緩沖區(qū)中,可能有多個目的IP地址緩沖被緩存起來,如果調(diào)度模塊選擇查找操作來執(zhí)行,則這些目的IP地址被送到發(fā)射模塊,發(fā)射模塊將它們傳送到CAM接口模塊,CAM接口模塊通過驅(qū)動電路控制CAM進行流水線查找操作,CAM會返回一個地址給路由查找協(xié)處理器,CAM接口模塊接收這個地址,并把它傳送給SSRAM接口模塊,SSRAM接口模塊控制SSRAM進行讀操作,將返回的數(shù)據(jù)(轉(zhuǎn)發(fā)信息)送到轉(zhuǎn)發(fā)信息發(fā)送接口模塊。
轉(zhuǎn)發(fā)信息發(fā)送接口模塊在收到SSRAM接口模塊發(fā)來的轉(zhuǎn)發(fā)信息以后,根據(jù)圖4所示的時序?qū)⑥D(zhuǎn)發(fā)信息發(fā)送出去。轉(zhuǎn)發(fā)信息發(fā)送接口模塊向外部系統(tǒng)送出一個時鐘CLK,在傳輸轉(zhuǎn)發(fā)信息時將TEN信號置高,同時將轉(zhuǎn)發(fā)信息放到DATA總線上,完成轉(zhuǎn)發(fā)信息發(fā)送過程,同樣路由轉(zhuǎn)發(fā)信息也可以連續(xù)的被發(fā)送出去。
以下介紹中央處理器(CPU)接口所涉及到的地址單元的意義和所用到的指令格式通過中央處理器(CPU)接口完成整個查找系統(tǒng)的配置,路由表的初始化和實時路由刷新新。在協(xié)處理器內(nèi)部有若干狀態(tài)寄存器、命令寄存器和其它接口,他們的地址如下表所示。
本系統(tǒng)為上層軟件提供了路由刷新接口,以指令形式提供,包括Fill,Delete,Mov,Config四條指令,外部系統(tǒng)通過寫地址為2的單元向本系統(tǒng)發(fā)送刷新命令,下面給出所用到的指令格式。命令1 Fill添加一條路由Fill在路由表中添加一條路由,這條指令的長度為128位,外部系統(tǒng)通過兩次寫地址為2的單元發(fā)送這條路由刷新指令。
OPCODE是指令的操作碼,為0000。
ADDR 是要添加的路由在路由表中的地址。
NextHopIP是要添加的路由的下一條IP地址。
PortNo是要添加的路由的轉(zhuǎn)發(fā)端口號。
IPAddress是要添加的路由的前綴。
Mask 是要添加的路由的掩碼。
命令2 Delete刪除一條路由。
此指令刪除路由表中指定地址的一個路由表項。
OPCODE是指令的操作碼,為0001。
ADDR 是要刪除的路由在路由表中的地址。
其它位保留,沒有意義。
命令3Mov 移動路由命令將路由表中地址位S_ADDR開始的表項移動到D_ADDR開始的表項,移動的路由條數(shù)為LENGTH。
OP CODE 指令的操作碼,為0011。
S_ADDR所要移動的塊的源地址,數(shù)據(jù)寬度20位。
D_ADDR所要移動的塊的目標地址,數(shù)據(jù)寬度20位。
LENGTH所要移動的塊的長度,也就是塊中所包含的表項的個數(shù),數(shù)據(jù)寬度20位。
命令4 Config 配置內(nèi)容可尋址存儲器(CAM)該命令是針對內(nèi)容可尋址存儲器(CAM)而設計的,和普通的存儲器不同,在內(nèi)容可尋址存儲器(CAM)內(nèi)部有一些需要進行配置的寄存器,該命令用于內(nèi)容可尋址存儲器(CAM)的初始化過程。命令的格式如下
OPCODE指令的操作碼,為0100。
ADDR 要配置的內(nèi)容可尋址存儲器(CAM)寄存器地址,數(shù)據(jù)寬度20位。
CONFIG_DATA 寫入寄存器的內(nèi)容,數(shù)據(jù)寬度68位,其中指令的第二個64位為CONFIG_DATA的高64位,第一個64位的為CONFIG_DATA的低4位。
在使用本發(fā)明的系統(tǒng)的時候涉及到的調(diào)度算法參數(shù)的說明本發(fā)明中針對路由查找和刷新之間的沖突關(guān)系,使用了一種動態(tài)調(diào)度策略,保證路由查找和路由刷新的互斥執(zhí)行,同時保證查找的最低性能和最大延時,動態(tài)調(diào)度策略有一個參數(shù)A,可以通過中央處理器(CPU)接口寫地址為3的寄存器來配置實現(xiàn)。本發(fā)明的一個實施例把此值設置成100K,此時對于2.5吉比特/秒(Gb/s)的端口,最小查找速率Smin大于端口的最大包速,最大的查找延時Dmax為1.1微秒,每秒執(zhí)行的路由刷新命令條數(shù)U為100K。對于10吉比特/秒(Gb/s)的端口,Smin大于端口的最大包速,Dmax為1.4us,U為100K。
權(quán)利要求
1.一種基于內(nèi)容可尋址存儲器的路由查找系統(tǒng),其特征在于該查找系統(tǒng)包括路由查找協(xié)處理器、驅(qū)動電路、內(nèi)容可尋址存儲器和同步靜態(tài)存儲器;所述的路由查找協(xié)處理器為一可編程芯片,所述的內(nèi)容可尋址存儲器通過驅(qū)動電路與路由查找協(xié)處理器相連,并接收路由查找協(xié)處理器的控制,所述的同步靜態(tài)存儲器與路由查找協(xié)處理器相連,由路由查找協(xié)處理器控制同步靜態(tài)存儲器的讀與寫。
全文摘要
本發(fā)明涉及一種基于內(nèi)容可尋址存儲器的路由查找系統(tǒng),屬網(wǎng)絡技術(shù)領域。該查找系統(tǒng)包括路由查找協(xié)處理器,驅(qū)動電路,內(nèi)容可尋址存儲器和同步靜態(tài)存儲器。其中的路由查找協(xié)處理器為一可編程芯片,內(nèi)容可尋址存儲器通過驅(qū)動電路與路由查找協(xié)處理器相連,并接收路由查找協(xié)處理器的控制,上述的同步靜態(tài)存儲器與路由查找協(xié)處理器相連,由路由查找協(xié)處理器控制同步靜態(tài)存儲器的讀與寫。本發(fā)明系統(tǒng)的優(yōu)點是最大查找速率可達50兆包/秒(MPPS),最大容量時可支持256K路由表項,并可擴展到1M路由表項,可進行實時刷新,通過簡單的設置可以適用于IPv6。
文檔編號H04L29/02GK1362822SQ02100458
公開日2002年8月7日 申請日期2002年2月1日 優(yōu)先權(quán)日2002年2月1日
發(fā)明者劉斌, 戴智偉 申請人:清華大學