專利名稱:Vlsi網絡處理器和方法
技術領域:
本發明涉及一種通信網絡裝置,可用來將各種類型和功能的信息處理系統或計算機連接到該裝置。本發明尤其涉及用以組裝上述裝置的可伸縮的交換裝置和部件。本發明涉及一種經過改進的多功能接口設備以及這種設備與其它元件的組合,從而構成一臺介質速度網絡交換機。本發明還涉及操作這種裝置的方法,從而改善網絡交換機處理數據流的能力。
背景技術:
在下文的說明中,我們假定讀者對用于通信網絡的網絡數據通信、交換機和路由器已有一定的認識。我們尤其假定讀者對網絡體系結構的ISO模式較為熟悉,該模式是把網絡操作分成若干層。一個典型的基于ISO模式的體系結構是從第1層(有時也用“L1”來表示)開始向外延伸,第1層是指物理通道或介質,信號就是從這里上傳至第2層、第3層、第4層直至第7層,第7層為應用程序層,應用程序運行在與網絡相連接的計算機系統中。在本文中,我們將以L1、L2等來表示網絡體系結構中相應的各層。本公開還假定讀者對網絡通信中由位串組成的“包”和“幀”有基本的了解。
在當今的網絡世界,帶寬是一種極為重要的資源。由于因特網的發展和其它新的應用程序的不斷出現,網絡通信量與日俱增,從而為網絡基礎結構的容量帶來巨大壓力。為跟上要求,許多公司都在尋求更好的技術和方法,從而為通信量的增長和話音與數據的會聚提供支持和管理。
目前的網絡通信量之所以迅猛增長,主要歸因于因特網的普及、對遠程信息訪問的日益頻繁、以及新應用程序的不斷出現。單說因特網一項,由于電子商務的飛速發展,已經使網絡主干線路不堪重負。數據信息量不斷增加并首次超過電話業務量,這其中,因特網起到了極為重要的作用。與此同時,對遠程訪問應用程序(包括電子郵件、數據庫訪問和文件傳輸)日益旺盛的需求,也在增大對網絡的壓力。
話音與數據的會聚將成為未來網絡環境中的主角。目前,通過因特網協議(IP)網絡的數據傳輸是不收費的。這是因為音頻通信自然會尋求最低成本方式,話音必將與數據會聚在一起。在這種變化的市場中,諸如通過IP的話音傳輸(VolP)、通過ATM的話音傳輸(VoATM)以及通過幀中繼的話音傳輸(VoFR)等技術的性能價格比都使其能占有一席之地。不過,要使這些技術得以應用,業界還必須保證話音服務質量(QoS),并確定如何對數據線上的話音傳輸進行收費。1996年的《電信自由化法案》使這一環境進一步復雜化。該法規旨在實現精選出來的語音協議ATM與精選出來的數據協議IP之間的協作關系。
隨著新產品的不斷問世和新功能的不斷出現,能否將其集成到原有系統中成了眾多公司十分關心的問題。為保留對原有設備和軟件的投資,很多公司急需這樣的解決方案,即能夠將新技術移入,同時又不妨礙原有設備的使用。
消除網絡瓶頸仍是眾多服務供應商的當務之急。這些瓶頸的根源往往是路由器。然而,通常的網絡擁擠往往被錯判為帶寬問題,于是把尋求較高的寬帶當作解決方案。目前,生產商正逐漸意識到這個問題。他們開始轉向網絡處理器技術,以期以有線速度更有效地管理帶寬資源,并提供先進的數據服務、這些服務通常在路由器和網絡應用服務器中提供。這些服務包括負載平衡、QoS、網關、防火墻、安全以及Web高速緩存。
對于用于遠程訪問的應用程序來說,性能、符合需要的帶寬、安全性和身份驗證是頭等重要的方面。將QoS與CoS相結合的需求、集成話音處理、更為復雜的安全性解決方案,這些也將影響未來遠程訪問網絡交換機的設計思路。另外,遠程訪問還必須能適應物理介質數目的不斷增加,如ISDN、T1、El、OC-3到OC-48、電纜以及xDSL調制解調器等。
業界顧問為網絡處理器(這里也稱作“NP”)下的定義是一種可編程的通信集成電路,能執行以下一項或多項功能包分類——根據已知特征(如地址或協議)來標識包包修改——對包進行修改,從而使其符合IP、ATM或其它協議(例如,更新IP首標中的實時激活字段)隊列/政策管理——反映包隊列的設計策略對于特定應用進行包出列和調度包轉發——通過交換結構發送和接收數據,并將包轉發或路由到適當的地址。
盡管該定義對早期NP的基本特征給出了準確的說明,但NP的全面能力和效益的開發尚待實現。由于原來由軟件處理的任務現在都可由硬件來執行,故網絡處理器可以將帶寬提高,并解決大量應用程序中所存在的問題。此外,NP還對體系結構(如并行分布式處理與流水式處理設計)中的速度予以改善。上述功能可提高搜索引擎的效率、增加處理量,并對復雜任務進行快速處理。
有人預計,就象CPU之于PC機一樣,網絡處理器將成為網絡中的基本網絡結構單元。NP能夠提供的基本功能包括實時處理、安全性、儲存和轉發、交換結構、IP包處理和學習功能。NP目標是ISO第2層至第5層,主要負責優化與網絡相關的各項任務。
處理器模式的NP將多個通用處理器與專門的邏輯電路結合在一起。當前,供貨商們都看好這種設計,它可以提供可伸縮的、靈活的解決方案,從而及時、經濟地應對各種變化。處理器模式的NP可以在集成的較低層次上進行分布式處理,且具有較高的處理量、較好的靈活性和控制性。可編程性還可實現向新協議和新技術的方便遷移,而無需重新設計專用集成電路。通過處理器模式的NP,NEV可以從兩個方面受益一是降低了不可返還的工程成本,二是縮短了上市時間。
發明內容
本發明的目的之一是提供一個用于數據通信網絡的可伸縮的交換機體系結構,它在改善傳輸數據處理速度的同時,還可以為各種潛在需求提供強大的支持。為實現上述目的,本發明提供了若干部件以及各個部件的組合,這些部件使處理單元的數據處理量與以前相比大大降低。
本發明的另一個目的是提供一種接口設備或網絡處理器(這兩個術語可互換使用),其中包含集成在一個基片上的若干子部件,這些子部件共同動作,對第2層、第3層、第4層和第5層中的幀進行中等速度的交換。該接口設備可作為單一解決方案為工作組交換機提供基本功能,也可作為互聯解決方案為工作組交換機提供高級功能,或是通過與交換結構裝置的合作來提供高級功能。
附圖簡要說明前面已對本發明的一些目的作了表述,下面將結合附圖對本發明的其它目的進行說明。在這些附圖中
圖1是表示本發明接口設備的一個方框圖。圖1A是說明MAC的一個方框圖。圖2A到2D為在不同系統配置中該接口設備與其它部件相互連接的情況。圖3表示壓縮引導幀的流程和處理步驟。圖4表示內部引導幀的流程和處理步驟。圖5為引導單元的概括形式。圖6所示為幀控制信息的格式。圖7所示為關聯子的形式。圖8為命令控制信息格式。圖9為地址信息格式。圖10為結構編址的一般格式。圖11為編址和島編碼圖解。圖12A為嵌入式處理器相復合的方框圖。圖12B為嵌入式處理器的示意圖。圖12C所示為GxH處理器的結構。圖13為存儲器組合體的方框圖。圖14為固定匹配(FM)搜尋算法流程圖。圖15為不使用直接表和使用直接表兩種情況下的數據結構流程圖。圖16是以Prizma為例的交換系統的方框圖。圖17為CP的方框圖。圖18為單片網絡處理器的方框圖,主要突出其EDS-UP、EDS-DOWN和EPC功能。
本發明的實施例在下文中,我們將通過本發明的優選實施例并結合附圖對本發明進行更加充分的說明,不過讀者應事先明白,本領域的技術人員可以對本發明進行某些修改,但仍能達到本發明的理想效果。因此,應當說,下面的說明只是為本領域的技術人員提供了一種廣義的、啟發性的揭示,并不等于對本發明的限制。
本公開中的裝置是可伸縮的,具有互聯桌面或工作組交換機功能,可將其接入網絡主干線路,并可提供主干交換機服務。該裝置可支持第2層、第3層和第4層以上的硬件。該裝置的一些形式是為桌面或工作組交換機集合體設計的,另外一些形式則是為核心骨干網交換機設計的。
用于該裝置的體系結構,其基礎是接口設備或網絡處理器硬件子系統以及在控制點運行的一個軟件庫,這些在本文后面的內容中將進行充分說明。該接口設備或網絡處理器子系統是一種高性能幀轉發引擎,它以對L2、L3和L4+的協議首標進行解析和翻譯。這樣就可以通過使用硬件以更快的速度來交換協議。該接口設備或網絡處理器子系統提供一個通過箱的快速通道,軟件庫和控制點處理器提供維護此快速通道所需的管理及路由顯示功能。在其上運行的控制點處理器和軟件庫共同限定系統的控制點(CP)。現實網橋和路由協議(如透明網橋和OSPF)都在CP上運行。CP也可作為系統中的低速通道。
本公開中的該裝置除了可支持硬件設備中的多層轉發外,還可單獨作為L2上的交換機來運行,而且這也是它在本專利的簡式公開中的默認運行方式。每個域中都有一個端口,從而使任何設備都能與其它設備通信。該裝置可在L2配置,從而使系統管理員能夠對某些功能進行配置,比如將通信口分為單獨的域或主干區、配置虛擬數據網絡(VLAN)段、或是配置過濾器以控制廣播和多播業務。
這一可伸縮的裝置有多種優點。首先,它使系統管理員能夠配置IP和IPX業務的L3轉發和路由,所使用的硬件與L2相同,速度也相同。其次,它在提高性能的同時不需要使用外部路由器來連接園區建筑。第三,它簡化或合并了對L2/L3服務的管理,將其集中到一個控制點上。最后,它還為L4+功能提供了一些增值特征,從而使系統管理員能夠對不同類別的通信量進行分配,從而支持任務關鍵的應用,它還可使網絡分配器達到不同服務器間的動態平衡。
該裝置可用作一個模塊單元,其基本組成包括一個接口設備或網絡處理器、一個控制點(CP)和一個交換結構裝置(可選)。該接口設備優選情況下提供L2/L3/L4+的快速路徑轉發服務,而CP可提供維護該快速通道所需的管理及路由顯示功能。上述可選的交換結構裝置用于兩個以上的接口設備子系統相互連接的情況。有關該可選交換結構裝置,詳見美國專利第5,008,878號,
公開日為1991年4月16日,標題為“HighSpeed Modular Switching Apparatus for Circuit and Packet SwitchedTraffic”。
該裝置使用印刷電路板單元(這里也稱作“托板”)來組合安裝。這些印刷電路板單元上裝有電路元件,這些電路元件插在裝置外殼的連接器上。類似的裝置又稱作“可選插件”。對于該裝置,我們假設,在有合適的連接器和底板電源接頭的情況下,托板的底盤或外殼均可變換。構成各種托板的基本部件是托架子系統。從托架子系統的角度來講,可以有三種托板。第一種是只有CP的托板,它由一個托架子系統和一個CP子系統組成。這種只有CP的托板主要用于優先考慮冗余性的產品。第二種是CP+介質托板,它由一個托架子系統、一個CP子系統和一個1-3介質子系統組成。這種CP+介質托板主要用于視端口密度比冗余性更重要的產品。第三種是介質托板,它由一個托架子系統、和一個1-4介質子系統組成。這種介質托板可用于任何底盤,而且這種介質子系統還可配置。
托板管理包括故障檢測、電源管理、新裝置檢測、初始化和配置。上述管理是通過使用各種寄存器、I/O信號以及用于CP和托架子系統之間通信的引導單元接口來實現的。不過,與底盤不同的是,所有的托板上都有可編程裝置和存儲器。可編程性的程度取決于托板的種類。當托板上存在CP子系統時,CP和托架子系統均可編程。介質子系統也是可編程的,不過只能間接地通過托架子系統來實現。
在某些功能較強的產品中,還有一個交換托板,其中包含交換結構裝置子系統。該托板的管理包括故障檢測、電源管理、新裝置檢測和初始化和配置。上述管理是通過使用各種寄存器和I/O信號來實現的,這些寄存器和信號可映射到CP子系統中。
本發明假定這種交換裝置的簡式形態中有一個控制點處理器,還有一個連接到該控制點處理器的可操作的接口設備。在本公開中,我們更傾向于將該接口設備(又稱網絡處理器)假設為一個單一的、超大規模集成電路裝置(VLSI,超大規模集成電路)或集成電路塊,它包含一個半導體基片,基片上有多個接口處理器,所述基片上有內部指令存儲器,并存儲可以由接口處理器訪問的經由該設備的數據,位于基片上的內部數據存儲器和通過該裝置可到達接口處理器的存儲數據;以及多個輸入/輸出端口。在本文中,該接口處理器有時也稱為微微處理器或處理單元。在所提供的端口中,至少有一個端口用于將內部數據存儲器與外部數據存儲器相連接,另外有兩個以上的端口用于在接口處理器的指導下通過該接口設備與外部網絡交換數據。控制點與接口設備協同工作,先由控制點將指令輸入指令存儲器,然后由接口處理器來執行這些指令,從而控制在輸入端口與輸出端口之間的數據交換以及通過數據存儲器的數據流量。
本公開中的網絡處理器被當成是除組成交換機的各個部件之外的發明。此處公開的網絡處理器被認為在其單元內具有其它一些未在此處討論的發明。
圖1是一個方框圖,用以說明該接口設備集成電路塊,其中包含基片10和集成在該基片上的多個子部件。這些子部件被排列成上行配置和下行配置。在這里,“上行”是指數據流從網絡進入到該裝置,而“下行”則是指數據從該裝置出來,進入到網絡服務中去。數據流分別依照不同的配置流動。這樣,就有了一個上行數據流和一個下行數據流。上行線中的子部件包括入列-出列-調度UP(EDS-UP)邏輯電路16、多路復合MAC-UP(PPM-UP)14、交換數據推進器-UP(SDM-UP)18、系統接口(SIF)20、數據調整串行鏈接連接A(DASLA)22、以及數據調整串行鏈接B(DASLB)24。數據調整串行鏈接在1999年6月提出的標題為High Speed High Speed Parallel/Serial Link for Data for DataCommunication的美國專利申請第09/330,968號中有詳細的說明。雖然在本發明中該裝置優選了DASL連接的形式,但本發明認為,為達到較高的數據流速率,也可使用其它形式的連接,尤其是將數據流限在VLSI結構的范圍之內。
下行線中的子部件包括DASL-A26、DASL-B28、SIF30、SDM-DN32、EDS-DN34以及PPM-DN36。集成電路塊中也包含多個內部S-RAM、通信管理調度器40,以及嵌入式處理器組合體(EPC)12。接口設備38通過相應的DMU總線與PMM14和36相連接。接口38可以是任何適當的L1線路,如以太網實體(ENET PHY)、ATM幀調節器等。接口的種類一定程度上決定于集成電路塊所連接的網絡介質。有多個外部D-RAM和S-RAM可供該集成電路塊使用。
雖然本公開的網絡中一般數據是通過導電體(如布設在樓宇中的電線和電纜)從相關的交換機和路由裝置中流出的,但本發明假定,本公開中的網絡交換機和部件也可用于無線環境。舉例來說,這里所講的媒體接入控制(MAC)單元就可以由適當的射電頻率單元來替代,如可以使用知名的硅鍺技術,從而將上述單元直接連接到無線網絡。在適當應用上述技術時,射電頻率單元可以由本領域的技術人員集成到本公開所講的VLSI結構中。另外,射電頻率抑或是無線響應器(如紅外線響應器)可以與本公開的其它單元一道安裝在托板上,從而組成用于無線網絡系統的交換裝置。
箭頭所示為數據在接口設備內部的通常流向。從以太網MAC接收的幀由EDS-UP放在內部數據存儲器的緩沖區。這些幀被當作普通的數據幀或系統控制引導幀排入EPC的隊列中(圖1)。EPC中包含N個協議處理器,最多可并行處理N個幀(N>1)。在一個有10個協議處理器的實施例(圖12B)中,有兩個協議處理器是專用的一個用于處理引導幀(普通中央處理器,或GCH),另一個用于在控制存儲器中建立查找數據(普通樹形處理器,或GTH)。幀如圖12A所示,EPC中包含有一個分配器,可將新的幀與空閑的處理器相匹配;一個完成單元,用以維護幀序列;一個由全部十個處理器共享的公共指令存儲器;一個用以決定幀的分類的分類器硬件加速器和一個用以幫助確定幀的起始指令地址的協處理器;用以控制幀緩存的讀寫運算的入口和出口數據存儲連接;一個能使十個處理器共享控制儲存器的控制存儲器判優器;能夠對內部接口裝置的數據結構進行調試的Web控制器、判優器和連接;以及其它硬件結構。
GCH處理器一但可用,分配器就會把引導幀發送進來。然后由GCH處理器來執行引導幀中各種代碼化的操作,如寄存器執行寫入,計數器執行讀取,以太網MAC執行配置更改,等等。查找表格的各種更改,如MAC或IP條目的增加,也將被傳送到查找數據處理器,以便進行控制存儲器運算,如存儲器讀出和寫入等。有些命令,如MIB計數器讀取,要求建立一個應答幀并將其轉發到適當接口設備的適當端口上去。在有些情況下,引導幀為接口設備的出口端編碼。這些幀被轉發到正在查詢的接口設備的出口端上,然后執行編碼運算并建立適當的應答幀。
數據幀被發送到下一個可用的協議處理器上,在那里執行幀查找。幀數據連同來自分類器硬件加速器(CHA)引擎的結果一起被送到該協議處理器上。CHA對IP或IPX進行解析。其結果將決定樹搜索算法和公共指令地址(CIA)的起始。所支持的樹搜索算法包含固定匹配樹型結構(要求準確吻合的固定尺寸格式,如第2層以太網MAC表),最長前綴匹配樹型結構(要求可變長度匹配的可變長度格式,如子網IP轉發)以及軟件處理樹型結構(定義范圍或字節掩模組的兩個圖案,如過濾器法則中所使用的)。
查找是在樹形搜索引擎(TSE)協處理器的幫助下執行的,該處理器屬協議處理器的一部分。TSE協處理器執行控制存儲器訪問,空出協議處理器來繼續執行。控制存儲器上儲存著全部表、計數器及其它該微微碼所需的數據。控制存儲器運算是由控制存儲器判優器來管理的,判優器在十個處理器間對存儲訪問進行判優。
幀數據是通過數據存儲協處理器來訪問的。數據存儲協處理器中包含一個初級數據緩沖區(最多可容納8個16字節的幀數據段),一個便箋式數據緩沖器(最多也可容納8個16字節的幀數據段)和若干用于數據存儲操作的控制寄存器。一旦發現了某個匹配,入口幀變更中就會包含一個VLAN首標插入或覆蓋。這種變更不是由接口設備處理器組合體來執行,而是首先得到硬件標志,再由其它入口轉換接口硬件來執行。其它幀的變更可由微微碼和數據存儲協處理器通過修改幀的入口數據存儲中所包含的內容來完成。
其它數據被收集起來并用于在向交換結構裝置發送幀之前構建交換機首標和幀標題。幀數據是通過數據存儲協處理器來訪問的。
在完成之后,入列協處理器就會建立起必要的形式,以便將該幀加入到交換結構隊列并將其發送到完成單元。完成單元保證幀從十個協議處理器到交換結構隊列的順序。從交換結構隊列出來的幀被分成以64個字節為單位的段,并嵌有幀標題字節和交換首標字節,就象將被送到Prizma-E交換機時一樣。
從結構接收到的幀由出口EDS(34)放置在出口數據存儲(出口DS)緩沖區并排入EPC隊列。一部分幀由分配器發送到某個空閑的協議處理器來執行幀查找。幀數據與來自分類器硬件加速器的數據一起被發送到該協議處理器。分類器硬件加速器運用由入口接口設備生成的幀控制數據來幫助確定密碼指令地址(CIA)的起始。
與在入口檢索中的情況相同,出口樹形搜索也支持同樣的算法。查找是在TSE協處理器上執行的,這樣可以使協議處理器能夠繼續執行。所有的控制存儲器運算是由控制存儲器判優器來管理的,判優器在十個處理器間對分配存儲器訪問進行判優。
出口幀數據是通過數據存儲協處理器來訪問的。數據存儲協處理器中包含一個初級數據緩沖區(最多可容納8個16字節的幀數據段),一個便箋式數據緩沖器(最多也可容納8個16字節的幀數據段)和若干用于數據存儲操作的控制寄存器。成功查找的結果中包含轉發信息,有時還包含幀變更信息。幀變更中也可包含VLAN首標缺失、實時激活增值(IPX)或遞減(IP),IP首標和校驗重算、以太網幀CRC覆蓋或插入,以及MAC DA/SA覆蓋或插入。IP首標和校驗是由校驗和協處理器來準備的。這種變更不是由接口設備處理器組合體來執行,而是首先生成硬件標志,再由PMM入口硬件來執行。在完成之后,入列協處理器就會根據要求建立必要的形式,以便將EDS出口隊列中的幀加入列列并將其發送到完成單元。完成單元保證幀從十個協議處理器到EDS出口隊列的順序,以便饋送到出口以太網MAC36。
已完成的幀最終由PMM出口硬件發送到以太網MAC,并從以太網端口輸出。
一條內部總線(亦稱為Web)提供對內部寄存器、計數器和存儲器的訪問。該Web中還包含一個外部接口,用以在調試和診斷中控制指令步驟或中斷控制。
樹形搜索引擎協處理器可提供存儲范圍檢查、非法存儲器訪問提示,此外還可與協議處理器并行操作執行樹形搜索指令(如存儲器讀出、寫入或讀取-增加-寫入)。
公共指令存儲器由一個1024×128的RAM和兩組復式512×128 RAM組成。每套復式RAM可提供兩份微微碼,從而使處理器能在相同的地址范圍內獨立訪問指令。每個128位字中包含四條32位指令,總共可提供8192條指令。
分配器控制幀的通過使其到達十個協議處理器,同時管理中斷信號和計時器。
完成單元保證幀從處理器組合體到交換結構和目標端口隊列的順序。一套內容豐富的指令集中包含條件執行、拼(用于輸入散列密鑰)、條件轉移、有簽名的和未簽名的操作、先導零字符統計等等。
分類器硬件加速器引擎將每個幀的第2層和第3層傳送到協議首標,并在將幀發送到協議處理器的過程中提供這些信息。
控制存儲判優器控制處理器對內部和外部存儲器的訪問。
外部控制內存選項包含5到7個DDR DRAM子系統,每個子系統支持一對2M×16位×4排或一對4M×16位×4排的DDR DRAM。DDRDRAM連接以133兆赫的時鐘頻率運行,一個266兆赫的數據頻閃儀支持可配置的CAS延遲和驅動強度。另外還可根據需要選擇增加一個133兆赫的ZBT SRAM,其配置可為128k×36、2×256k×18或者2×512k×18。
出口幀可以儲存于一個外部數據緩沖區(如DSO),也可以儲存于兩個外部數據緩沖區(DSO和DS1)。每個緩沖區可以由一對2M×16位×4排的DDR DRAM組成(最多可儲存256k的64字節幀),或是由一對4M×16位×4排DDR DRAM組成(最多可儲存512k的64字節幀)。對于2.28Mbps可選擇一個外部數據緩沖區(如DSO),若要支持4.57Mbps的第2層和第3層就要增加第二個緩沖區(如DS1)。增加第二個緩沖區可改善性能,但并不增加幀容量。外部數據緩沖區連接以133兆赫的時鐘頻率運行,它還帶有一個266兆赫的數據頻閃儀,用以支持可配置的CAS延遲與驅動強度。
內部控制存儲中包含兩個512×128位的RAM、兩個1024×36位的RAM以及一個1024×64位的RAM。
內部數據存儲器在入口方向(上行)最大可提供2048個64字節的幀的緩沖。
固定的幀變更包括在入口方向的VLAN標記插入和刪除、Time To Live的增量/遞減(IP、IPx),以太網CRC覆蓋/插入,以及在出口(下行)方向的MAC DA/SA的覆蓋/添加。
端口映射功能可以將一個接收端口和一發送端口復制到指定系統的觀察端口,而無須使用協議處理器資源。映射而來的接口設備端口可用以增加幀和交換控制數據。一個單獨的數據路徑可以對幀進入入口交換接口隊列進行控制。
接口設備中集成了四種以太網宏指令。每個宏又可以分別進行配置,從而在1G比特或10/100的快速以太網模式下運行。每個以太網宏最多可支持十個10/100Mbps的MAC,或者說四個宏指令中的每一個都可支持一個1000Mbps的MAC。
圖1A為一個MAC核心部分的方框圖。每個宏中包括三個以太網核心設計;即多口10/100Mbps MAC核心(Fenet)、1000Mbps MAC核心(Genet)以及100Mbps物理代碼底層核心(PCS)。多端口以太網10/100MAC的功能支持該物理層上的十個串行介質設備獨立連接能夠處理速度為10Mbps或100Mbps的介質速度或任意速度組合的十個端口一個MAC通過一個時分多路復用連接服務于全部十個端口在所有端口上以介質速度支持完全/半雙向通信支持IEEE802.3二進制指數補償1000Mbps以太網MAC核心的功能支持到物理PCS層上的十億比特介質獨立連接(GMIi)直接到達物理層通過PCS核心來支持完全的TBI(8b/10b)解決方案以介質速度支持全雙向點到點連接支持IBM PCS核心有效字節信號1000Mbps以太網物理代碼底層核心的功能執行8b/lOb代碼及解碼支持如IEEE802.3z中所定義的PMA(10位)服務接口,該接口可與符合IEEE802.3z定義的任何PMA相連。
將來自PMA(二相時鐘)的數據與MAC(單相)時鐘同步支持包括下兩頁在內的自動洽談從標準中定義的二相時鐘系統向單相時鐘轉換向MAC提供信號指示出包含新數據的時鐘周期核對COMMA收到的代碼組(10位)并建立起單詞同步計算并核對8b/10b運行的不均勻性圖2A到2D說明接口設備集成電路塊的不同配置。該配置中由于有了DASL并連接到交換結構裝置而變得更為方便。每個DASL中包括兩個信道,即一個發射信道和一個接收器信道。
圖2A表示一單一接口設備的包配置。在該配置下,發射信道被輪循到接收信道當中。
圖2B表示兩個接口設備集成電路塊相連接時的配置。每個接口設備集成電路塊中至少裝有兩個DASL。在該配置中,一個集成電路塊上的DASL上的信道與位于另一個集成電路塊上的相匹配的DASL上的信道相連接而運行。每個集成電路塊上的另外一個DASL則被卷包起來。
圖2C表示交換結構中多接口設備相連接時的配置。其中雙向箭頭表示沿兩個方向傳輸。
圖2D表示將一臺主交換機和一臺備用交換機連接到多個接口設備時的配置情況。如果主交換機發生故障,就可以起用備用交換機。
控制點(CP)包括連接到每一種配置的一個系統處理器。CP上的系統處理器主要提供初始化以及與集成電路塊相關的配置服務。CP可處于以下三個位置之一在接口設備的集成電路塊上,在裝有集成電路塊的托板上,或是在托板之外。如果是在托板以外,CP就可能遠程的;也就是說,它身處別處,通過接口設備和中央處理器所屬的網絡來進行通信。CP上的各個單元如圖17所示,其中包括若干存儲器單元(高速緩存、閃存和SDRAM)、一個存儲器控制器、一個PCI總線、以及用于底板和L1連網介質的連接器。
圖18為一個單片網絡處理器的方框圖,主要突出其EDS-UP、業務管理(MGT)調度器和EDS-DOWN(DN)功能。其中的U-形圖標表示隊列,而跟蹤隊列中的內容的控制塊(CB)則由長方形圖標表示。
下面將對各元件、其各自的功能和交互作用進行說明。PMM是網絡處理器的一部分,該網絡處理器中包含MAC(FEnet、POS、GEnet)并與外部PHY設備相連接。UP-PMM這一邏輯電路從PHY當中提取字節,將其轉換為FISH(16字節)的格式,然后送至UP-EDS。在PMM中有4個DMU,每個DMU都能夠使用1GEnet或10FEnet的裝置。UP-EDS該邏輯電路從UP-PMM上提取FISH,將其存入UP-數據存儲器(內部隨機存取存儲器)。它能夠同時處理40幀,而且可以在收到適當的脈碼調制數字節之后將幀排入EPC隊列。當EPC處理完幀之后,UP-EDS就將該幀排入適當的目標端口隊列并開始將該幀發送到UP-SDM。UP-EDS負責全部緩沖區和幀的管理,并負責在向UP-SDM的傳遞完成之后將緩沖區/幀送回到空閑庫。EPC該邏輯電路中包含一個微微處理器,并可以包含一個嵌入式PowerPC。該邏輯電路能夠通過查看幀標題來決定如何處理該幀(轉發、修改、過濾等)。EPC可以對若干個查找表格進行訪問,其硬件可幫助微微處理器跟上網絡處理器對高速帶寬的要求。UP-SDM該邏輯電路可提取幀并將其轉變成PRIZMA單元的格式,以便于向交換結構傳輸。該邏輯電路還能夠將VLAN首標插入到幀。UP-SIF該邏輯電路中包含UP-DASL宏指令,與外部開關I/O相連。DN-SIF該邏輯電路中包含DN-DASL宏指令,可以從外部I/O接收PRIZMA單元。DN-SDM該邏輯電路接收PRIZMA單元并對其進行預處理,以便幫助重新組裝幀。DN-EDS該邏輯電路提取每個單元并將其組合還原為幀。該單元儲存在外部數據儲存器,與緩沖區相聯來構造幀。在接收整個幀之后,便將該幀排入EPC隊列。當EPC處理完該幀之后,就把該幀排入調度器(如果存在)的隊列中,或是排入目標端口隊列。然后DN-EDS通過幀發送程序,把幀發送到適當的端口,把所有的變更信息和某些控制信息發送到DN-PMM。DN-PMM從DN-EDS中提取信息,將幀格式化為以太網、POS等,然后將幀發送到外部PHY。SPM該邏輯電路可使網絡處理器聯接到外部設備(PHY、LED、FLASH等),但只需要3個I/O。網絡處理器使用一個串行接口與SPM通信,然后SPM啟動必要的功能來管理這些外部設備。上行流程1)幀達到PHY2)UP-PMM收到字節3)UP-PMM將FISH發送到UP-EDS(Fish是指幀的一個部分)4)UP-EDS將FISH儲存到UP-DS5)UP-EDS將首標發送到EPC6)EPC處理首標后將入列信息送回到UP-EDS7)UP-EDS繼續從UP-PMM上接收幀的其余部分8)當可以把適當的數據發送到交換機上時,UP-EDS就將信息發送到UP-SDM9)UP-SDM讀取幀數據,然后將其格式化為PRIZMA單元10)UP-SDM將各個單元發送到UP-SIF11)UP-SIF將各個單元通過DASL序列傳輸到PRIZMA12)當全部數據提取完畢之后,UP-EDS釋放緩沖區/幀下行流程1)DN-SIF接收PRIZMA單元2)DN-SDM存儲這些單元并對其進行預處理,以便對信息進行重新組合3)DN-EDS接收上述單元數據并重新組合信息,然后將這些單元連接成下行線上的一個新幀4)DN-EDS將單元儲存到DN-DS5)在所有數據接收完畢之后,DN-EDS將幀排入到EPC隊列6)EPC處理首標并將入列信息送回DN-EDS7)DN-EDS將幀排入調度器隊列(如果存在)或是目標端口隊列8)DN-EDS服務于隊列并將幀信息發送到PCB中9)DN-EDS使用該PCB將幀“散開”,然后讀取適當的數據并這些數據發送到DN-PMM10)DN-PMM將數據格式化(如有要求不可更改),然后將幀發送到外部PHY11)當不再需要緩沖區時,DN-PMM就通知DN-EDS,DN-EDS就會釋放這些資源幀控制流程1)將首標從UP-DS或DN-DS送到EPC2)EPC在查找表格中查找標頭資料并接收幀隊列信息3)EPC將排隊信息送回到EDS,于是該幀被排入適當的隊列4)單元首標和幀標題與幀數據一起被發送出去,從而有助于幀的重新組合和轉發CP控制流程1)控制點將所引導的幀格式化并將它發送到網絡處理器2)網絡處理器將所引導的幀排入GCH微微處理器隊列3)GCH處理對引導幀進行處理并讀取或寫入所要求的Rainier區域4)GCH將所有的表更新要求傳遞到GTH5)GTH根據來自引導幀的信息更新適當的表6)將引導幀確認送回到CP網絡處理器控制流程1)微微處理器可建立一個引導幀,以便將信息發送到另一個Rainier或控制點2)該引導幀被送到適當的位置進行處理接口設備提供介質速度交換,最多可達40個快速以太網端口(圖2A)。如果使用IBM的數據調整同步聯動裝置(DASL)將兩個接口設備連接起來,就可支持80個快速以太網端口。每個DASL差分器對可承載440Mbps的數據。兩組八對可提供3.5Gbps的雙向連接(8X每個方向的440Mbps)。如圖2C和2D所示,通過將多個接口設備互連到一臺交換機(如IBM的Prizma-E交換機)可建立起更大的系統。該接口設備可提供兩個3.5Gbps的雙向DASL連接,一個主要的和一個輔助的,可用來對本地幀通信提供卷包后路徑(當兩個接口設備直接相連時,圖2B)或連接到一個多余的交換結構(圖2D,備用交換機)。由以上所述可見,這樣的網絡處理器芯片是有伸縮性的,即同一集成電路塊既可提供低端系統(具有相對較低的端口密度,如40),又可提供高端系統(具有比較高的端口密度,如80-N端口)。
系統中的接口設備經由10/100Mbps的快速以太網端口(最多可達十個)或一個1000Mbps以太網端口與系統處理器相連。配置到系統處理器的以太網位于EEPROM,后者與上述接口設備相連,于初始化過程中載入。系統處理器通過建立專門的引導幀(壓縮為以太網幀)可與同系統中的所有接口設備通信。壓縮引導幀通過與其它裝置相連接的DASL來轉發,從而使得系統中所有的接口設備都可通過一個點來控制。
引導幀用以在控制點(CP)與嵌入式處理器組合體之間以及在同一接口設備內部進行通信。先前有關引導單元的公開將有助于闡明本專利中的討論,詳見1998年3月提出的標題為Efficient Hardware/SoftwareInterface Software Interface for Data Switch的美國專利5,724,348。
對于那些源自CP的引導幀通信,CP會在其本地存儲器中的數據緩沖器中構建引導幀。CP設備驅動程序將引導幀發送到網絡處理器的介質接口。媒體接入控制(MAC硬件)將引導幀進行恢復,并將其存入內部數據存儲器(U_DS)中。引導幀被送往適當的托板,經處理后根據需要再路由回到CP。在外部CP與接口設備之間傳遞的引導幀是壓縮過的,以便適應外部網絡協議。因此,如果外部網絡中有以太網,則引導幀就被壓縮為以太網幀,如此等等。
以太網壓縮為引導通信在CP與接口設備之間傳輸提供了一種裝置。接口設備的以太網MAC(Enet MAC)在接收幀時并不解析目的地址(DA)或源地址(SA)。這種解析是由EPC微微碼來執行的。引導通信假設接口設備尚未配置,DA和SA無法由EPC微微碼解析。因此,這些幀本身就能夠自我路由。然而,Enet MAC會解析以太網類型字段以便從數據通信當中辨別引導通信。該引導幀的以太網類型值必須與載入E_Type_C寄存器中的值相匹配。寄存器是從閃速存儲器中由接口設備的根目錄微微碼載入的。
CP在其本地存儲器的數據緩沖區中構建引導幀。CP處理器中的32位寄存器的內容以大頭格式保存在本地存儲器中(如圖3所示)。當構造好幀之后,CP的設備驅動程序就將以太網幀發送出去,發送的內容包括一個有關具體引導單元處理器(GCH)的DA,一個與CP全程MAC地址相對應、或是與專用接口的MAC地址相對應的SA,一個表明某個引導幀的特定以太網類型字段,以及引導幀數據。所有到達該端口的以太網幀都是由Enet MAC來接收和解析的。對于那些以太網類型值與E_Type_C寄存器中的內容相匹配的幀,Enet MAC就會剝離掉DA、SA和以太網類型字段,將引導幀數據存入UDS存儲器。Enet MAC一次一個地收集字節,并將其做成以16字節為單位的塊,稱作Fish。這些字節以大頭格式保存,引導幀的第一個字節保存在Fish中重要的字節位置(字節0)。以后的各個字節相繼保存在該Fish中隨后的字節位置(字節1,字節2...字節15)。上述16字節的塊又被保存在U_DS中的緩沖區,其排位從Fish0開始。以后的各個Fish相繼保存在該緩沖區中隨后的Fish位置(Fish1,Fish2,Fish3,等)。根據需要,還可從空閑庫中獲得額外的緩沖區來儲存引導幀的其余部分。
接口設備10內部引導通信流程如圖4所示。接口設備的Enet MAC功能會檢查該幀的標題信息以確定該幀為引導幀。Enet MAC從引導幀中將幀標題刪除,然后其余內部緩沖到接口設備的內部U_DS存儲器。EnetMAC顯示出該幀將被排入總控制(GC隊列),以便由GCH進行處理。當到達該引導幀的結尾時,入列、出列和調度(EDS)邏輯電路就會將該幀排入GC隊列。
與本地CP相連的托板上的GCH微微碼就會檢查幀控制信息(參見圖6),以確定該引導幀是否用于系統中的其它托板以及是否在接口設備的下行線執行。如果該幀用于本地托板之外的其它托板,則GCH微微碼就會將幀控制塊(FCB)中的TB值更新為引導幀的幀控制信息中的TB值,并指示EDS將該幀排入多路傳送目標托板幀起點(TB_SOF)隊列。由于性能方面的原因,所有引導通信都被排入到多路傳送TB_SOF隊列當中,與所述的目的地托板數目無關。
如果該幀只用于送給本地托板,GCH微微碼就會檢查幀控制信息中的上行/下行區段,以確定是否在接口設備的上行或下行線來執行該引導幀(參見圖6)。如果引導幀在接口設備的下行線執行,則GCH微微碼就會將幀控制區(FCB)中的TB值更新為引導幀的幀控制信息中的TB值,并指示EDS將該幀排入多路傳送目標接口設備幀起點(TB_SOF)隊列。如果幀控制信息表明引導幀在上行線執行,GCH微微碼就會對該引導幀進行解析并執行引導命令中所顯示的操作。
在處理引導命令之前,微微碼會檢查幀控制信息中ack/noack字段的值。如果該值為‘0’b,則在處理后將該引導幀刪除,引導讀出命令將不再作用于這一類幀。
如果ack/noack字段中的值是‘1’b,而“early/late”字段中的值是‘1’b,則微微碼會在處理任何引導幀中的引導命令之前構造一個早確認引導幀,其幀控制的TB字段中的值與Early_Ack引導幀中的值相等,而幀控制的TB字段中的值與My_TB寄存器中的值相等。微微碼將早確認引導幀路由回到CP,其方法是將該幀的FCB中的TB值更新為局域網控制點地址(LAN_CP_Addr)寄存器的TB字段中所包含的值,然后指示EDS將該幀排入多路傳送TB_SOF隊列。然后微微碼對該引導幀的引導命令進行處理并刪除該引導幀。引導讀出命令不屬于此類。
相反,如果ack/noack字段中的值是‘1’b,而early/late字段中的值是‘0’b,則微微碼將幀控制信息中的resp/req字段更改為‘1’b,以此來表明引導幀響應,同時用My_TB寄存器的內容替換TB字段,并處理該引導幀內的每個引導命令。在處理引導命令的過程中,微微碼會用當前引導命令的完成狀態代碼值來更新下一個引導命令的完成代碼字段。微微碼將響應路由回到源,其方法是將(FCB)中的TB值更新為與之相應的CP源托板(LAN_CP_Addr)寄存器的值,然后指示EDS將該幀排入多路傳送TB SOF隊列。
EDS對駐留在TB_SOF隊列中的幀安排轉發時間。交換機數據推進器(SDM)根據FCB中所包含的信息建立交換結構單元首標和接口設備幀標題。上述單元通過交換結構裝置達到目標托板,在托板的D-DS存儲器中由這些單元重新集合為幀。下行線SDM經識別確定該幀為引導幀,然后指示EDS將其排入GC隊列。
來自GC隊列或GT隊列的壓力促使微微碼對該引導幀進行訪問和解析。所有到達下行線的引導幀最初都是排在GC隊列中。GCH微微碼檢查這些幀的幀控制信息gth/gch的值。如果該gth/gch值是′0′b,則將引導幀排入GT隊列。否則,則由GCH微微碼檢查幀控制信息中的resp/req字段,以便確定該引導幀是否已執行。如果resp/req的值為′1′ b,就說明該引導幀已經執行過,于是將其路由到CP。與CP連接相對應的目標端口值是由EPC微微碼來維護的。來自目標端口隊列的幀從接口設備送回到CP。
如果resp/req字段的值是′0′b,則可能相對于CP為本地托板或遠程托板。解決的辦法是將LAN_CP_Addr寄存器TB字段中的值與我的目標托板(My_TB)寄存器中的內容相比較。如果二者相匹配,則該托板為本地托板,否則該托板就是CP的遠程托板。不論是哪種情況,微微碼都會檢查幀控制信息中的上行/下行值。如果up/down為′1′b,則將該幀排入輪循TP隊列,以便轉發到U_DS并由GCH上行線處理。否則,微微碼(GCH或Gth)就執行該引導幀的引導命令中所包含的操作。在執行引導命令之前,微微碼會檢查幀控制信息中ack/noack字段的值。如果該值為‘0’b,則在處理后將該引導幀刪除。引導讀出命令不屬于此類。
如果ack/noack字段中的值是‘1’b,而early/late字段中的值也是‘1’b,則微微碼會在處理任何引導幀中的引導命令之前構造一個早確認引導幀,其幀控制信息中TB字段的值與My_TB寄存器中的內容相等。如果該托板遠離CP,則微微碼會將早確認引導幀路由到輪循端口。相反,如果該托板處于CP本地,則該幀被路由到與CP相對應的端口隊列。微微碼處理引導命令,與此同時,輪循端口將早確認引導幀從D_DS移動到U_DS并將該幀排入上行線GC隊列,或者將該幀從端口隊列送回到CP。對于輪循后回到U_DS的幀,GCH微微碼會再次看到它,不過resp/req字段的值將變為′1′b。GCH微微碼將該幀路由回到CP,其方法是將FCB的TB字段更新為LAN_CP_Addr寄存器的TB字段中所包含的值,然后指示EDS將該幀排入多路傳送TB_SOF隊列。EDS對駐留在TB_SOF隊列中的幀安排轉發時間。SDM根據FCB中所包含的信息建立Prizma單元首標和接口設備幀標題。來自該幀的各個單元通過Prizma并在CP的本地托板上重新集合為幀。下行線SDM經識別確定該幀為引導幀,然后指示EDS將其排入GC隊列。這次當GCH微微碼解析幀時,resp/req字段的值就變為′1′b。這就意味著該托板是CP的本地托板,于是該引導幀就被路由到與CP相對應的端口隊列。來自該隊列的幀從接口設備送回到CP。
相反,如果ack/noack字段中的值是‘1’b,而early/late字段中的值是‘0’b,則微微碼將resp/req字段的值更改為‘1’b,以此來表明引導幀響應,同時用My_TB寄存器的內容替換TB字段,然后處理該引導幀內的每個引導命令。在處理引導命令的過程中,微微碼會用當前引導命令的完成狀態代碼值來更新下一個引導命令的完成代碼字段。如果該托板遠離CP,則微微碼會將引導幀路由到輪循端口。相反,如果該托板處于CP本地,則該幀被路由到與CP相對應的端口隊列。輪循端口將引導幀從D_DS移動到U_DS并將該幀排入上行線GC隊列,或者將該幀從端口隊列送回到CP。對于輪循后回到U_DS的幀,GCH微微碼會再次看到它,不過resp/req字段的值將變為′1′b。GCH微微碼將該幀路由回到CP,其方法是將FCB的TB字段更新為LAN_CP_Addr寄存器的TB字段中所包含的值,然后指示EDS將該幀排入多路傳送TB_SOF隊列。EDS對駐留在TB_SOF隊列中的幀安排轉發時間。SDM根據FCB中所包含的信息建立Prizma單元首標和接口設備幀標題。來自該幀的各個單元通過Prizma并在CP的本地托板的下行線上重新集合為幀。下行線SDM經識別確定該幀為引導幀,然后指示EDS將其排入GC隊列。這次,當GCH微微碼從D_DS中解析幀時,resp/req字段的值已變為′1′b。這就意味著該托板是CP的本地托板,于是該引導幀就被路由到與CP相對應的端口隊列。來自該隊列的幀從接口設備送回到CP。
如果由于某種原因GCH微微碼遇到這樣的引導幀,其幀控制信息的TB字段等于′0000′h,那么GCH微微碼就會認為該幀只用于此托板,并相應行事。這一動作在初始化時很必要,因為此時所有托板的My_TB寄存器中的值都是′0000′h。CP通過發送寫入引導命令將本地托板的My_TB寄存器初始化,上述命令在引導幀中,其幀控制信息的TB值為′0000′h。
EPC中的任何微微處理器都可生成引導幀。該幀可以是非請求引導幀,也可以是任何其它形式的引導幀。內部生成的這類幀是以一種無確認(即ack/noack=′0′b)的方式建立的。這些幀可送往同一EPC中的兩個微微處理器(GCH或GTH)之一,或是送往其它托板的GCH或GTH。
非請求引導幀還可發送到CP。送往相同EPC的引導幀是用D_DS中的數據緩沖區來構造的。這些幀隨后被排入GC或GT的隊列中等待處理。將這些幀處理,然后以通常方式刪除。送往本地CP的非請求引導幀是用D_DS中的數據緩沖區來構造的。在構造這些幀的同時會表明它們已經由EPC執行過(即resp/req=′1′b,TB=My_TB)。這些幀被排入相應CP的端口隊列。來自該隊列的幀被送回到CP。
送往另一個托板的引導幀可使用D_DS或U_DS中的數據緩沖區來構造。在構造送往CP的非請求引導幀時,會同時表明它們已經由EPC執行過(即resp/req=′1′b,TB=My_TB)。使用D_DS中的緩沖區構造而成的幀被排入輪循端口隊列。這些幀被移動到U_DS并排入上行線GC隊列。那些resp/req的值為′1′b的非請求引導幀將使用LAN_CP_Addr寄存器中的TB值被路由到CP。否則,GCH微微碼就會使用引導幀的幀控制信息中的TB值將這些幀路由。在接收托板上,該幀被排入下行GC隊列。該托板的GCH執行并刪除幀(resp/req=′0′b,gth/gch=′1′),或是將該幀排入GT隊列(resp/req=′0′b,gth/gch=′0′),或是將該幀排入相應的CP端口隊列(resp/req=′1’b)。使用U_DS中的數據緩沖區構造而成的幀被直接排入上行線GC隊列。從該點開始,這些幀將遵循相同的路徑,所接受的處理程序與使用D_DS數據緩沖區構造而成的幀相同。圖5為引導幀的概括形式。
圖中的格式是一種邏輯表示法,其中重要的字節在左邊,最不重要的字節在右邊。4字節單詞從頂端的0開始,向頁下方依次遞增。
由于引導幀必須在CP配置接口設備之前被路由并處理,故這些幀必須能自我路由。通常經查找和分類所得的結果包含在引導幀的幀控制信息字段中,從而使集成電路塊能夠以該信息來更新FCB,而不必再執行查找操作。引導幀中所包含的目標托板信息用于引導幀控制程序,用于準備FCB中的葉Page字段。CP提供目標托板信息,與此同時,GCH微微碼填充FCB中的其它字段。SDM使用這些FCB信息來準備單元和幀標題。引導幀的幀控制信息字段的格式見圖6。
圖6中的每個位的位置的縮寫解釋如下resp/req響應和不要求指示器值。該字段用于區分要求(未處理的)和響應引導幀。
0要求1響應ack/noack確認或不確認控制值。該字段用于控制GCH微微碼是(ack)否(noack)對引導幀進行確認。不需確認的引導幀中將不包含任何執行讀操作的引導命令。
0不確認1確認early/late Early與Late確認控制值。該字段用于控制是需要在引導幀被處理之前(early)進行確認(ack/noack=′1′b)還是在其之后(late)進行確認。當ack/noack=′0′b時,即忽略該字段。
0在引導幀處理之后確認1在引導幀處理之前確認neg/all不確認或確認所有控制值。當ack/noack字段的值為′0′b時,即忽略該字段,引導命令未成功完成的情況除外。
0如果ack/noack=′1′b即確認全部引導幀。根據early/late的值來確定是早確認還是晚確認。
1僅確認那些未成功完成的幀。該確認與ack/noack和early/late的值無關,所以自然是晚確認。up/down上行或下行控制值。該值用來控制是在上行線處理幀還是在下行線處理幀。當resp/req為′1′b時,即忽略該字段。所有多路傳送引導幀的up/down值都應為′0′b。此外,需要使用GTH硬件加速器指令的引導命令其up/down值應為′0′b。
0下行線處理1上行線處理gth/gch普通目錄樹處理器或引導單元處理器控制值。該值用來控制引導幀,使其到達適當的微微處理器。
0 GCH微微處理器1 GTH微微處理器TB目標托板值。當resp/req為‘0’b時,該字段中包含路由信息,可供Prizma使用。每個位的位置與一個目標托板相對應。如果該值為′0000′h,則認為該引導幀就是對應該托板的,并執行相應的操作。如果TB字段中的一個或多個位單元的值為′1′b,則表明應將該單元路由到相應的目標托板。當resp/req為′1′b時,該字段中就會包含相應托板的My_TB值。
引導幀的第1個字中包含一個相關子值(圖7)。該值是由CP指定的,其作用是將引導幀的響應與其各自的要求相關聯。相關子中包含多個具有特定功能的位。
每個引導命令從一個命令控制信息字段開始。該命令控制中包含有對GCH微微碼處理引導幀起輔助作用的信息。這些信息的格式見圖8。
長度值該值表示控制信息中所包含的32位字的總數(Cmd Word0)、地址信息(Cmd Word1)以及引導幀的操作對象(Cmd Words2+)等部分。
完成碼值該字段由CP初始化并由GCH微微碼在處理引導命令時修改。在執行命令表中的引導命令時,GCH微微碼使用該字段表示完成狀態。由于所有引導命令表都是以末端定界符引導命令來結束的,故上一個命令的完成狀態包含在末端定界符的完成碼字段中。引導命令類型值(符號名稱)符號名稱類型值類型說明End_Delimiter0000 標記引導幀序列的結尾Build_TSE_Free_List 0001 建立一個自由表。Software_Action 0010 執行軟件動作Unsolicited 0011 由EPC微微碼初始化的幀Block_Write 0100 將一塊數據寫入串行地址Duplicate_Write 0101 將復制的數據寫入寄存器或存儲器。Read 0110 請求和響應讀取存儲數據register 0111 保留Insert_Leaf 1000 在搜索樹中插入一個葉。Update_Leaf 1001 更新搜索樹的一個葉Read_Leaf1010 請求和響應讀取頁數據Leaf 1011保留Delete_Leaf 1100刪除搜索樹的一個葉1101-1111 保留包含在引導幀中的地址信息可根據在網絡處理器內部的編址方案識別元件。地址信息字段的一般格式見圖9。
接口設備使用一個32位的編址方案。該編址方案可以為接口設備中每個可訪問的結構分配一個地址值。這些結構可以是位于處理器內部的,也可以是與該處理器所控制的接口相連接的。有些結構可以由嵌入式處理器組合體(EPC)經由一個名為Web接口的內部接口來訪問。其余結構可以經存儲器控制器接口來訪問。在所有情況下,上述地址的一般格式見圖10。
網絡控制器被再分成主要集成電路塊島。每個島都有一個獨特的島ID值。這些5位的島ID值組成了結構地址中5個最為重要的位,這些結構由集成電路塊島來控制。編碼的島ID值與集成電路塊島名稱之間的通信見圖11。Web地址的第二部分由接下來最重要的23位組成。這些地址字段被分成結構地址部分和單元地址部分。島之間每個分段的位數各不相同。有些島可能只含有少數幾個大的結構,而其它島則可能包含許多小的結構。由于上述原因,地址分段也沒有固定的大小。結構地址部分用來為島內部的排列編址,而單元地址部分則用來為該排列內部的元件編址。地址的剩余部分用于容納Web接口的32位數據總線限制。這個4位字的地址用于選擇地址元件的32位段。這在將寬于32位的結構元件在網絡控制器的Web數據總線中移動是很必要的。字地址值′0′h是指結構元件中32個最重要的位,而順序字地址值則先后對應于結構元件中次重要的段。對于未經由Web接口訪問的結構,則不需要地址中的字地址部分。因此,上行數據存儲器、控制存儲器和下行數據存儲器都使用地址中全部27個最不重要的位來存取結構元件。這種格式的另一個例外是用于SPM接口的地址。在這種情況下,地址中的全部27個位都被使用,沒有一個元件的寬度超過32位。
嵌入組合體(EPC)提供并控制接口設備集成電路塊的可編程性。其中包含以下部件(參見圖12A)N個處理單元,稱作GxH這些GxH可同時執行儲存在一公共指令存儲器中的微微碼。每個GxH由一個稱為CLP的處理單元核心、16個GPR和一個運算器組成。CLP中包含一個3級管路。每個GxH還包含幾個協處理器,比如樹形搜索引擎。
指令存儲器在初始化期間載入,其中包含微微碼,用于轉發幀并管理系統。
一個分配器使幀-地址從上行和下行調度隊列中出列。在出列之后,分配器從上行或下行數據存儲(DS)中預先提取幀的一部分——首標,并將其儲存到內部存儲器中。GxH一但空閑,分配器就會將帶有適當控制信息如密碼指令地址(CIA)的幀標題傳遞到GxH。分配器還負責計時器和中斷信號。
樹狀檢索存儲器(TSM)判優器每個GxH都可以使用若干個共享的內部和外部存儲器單元。由于存儲器單元是共享的,故需要一個判優器來控制存儲器的訪問。TSM可由微微碼來直接訪問,TSM可用來儲存TSM中的時效表等。TSM也可由TSE在樹狀檢索期間進行訪問。
完成單元(CU)完成單元執行兩個功能。首先,它可將N個處理單元連接到上行和下行EDS(入列、出列和調度島)。EDS執行入列動作將一個幀地址連同稱作FCBPage的適當的參數排入傳送隊列、刪除隊列或調度隊列。第二,完成單元可保證幀序列。由于可能出現多個GxH處理相同流程中的幀的情況,因此必須采取預防措施,使這些幀以正確的順序排入上行下行傳送隊列。完成單元在幀發送時使用一個由分類器硬件加速器生成的標簽。
分類器硬件加速器用于上行幀,分類器硬件加速器為眾所周知的幀格式提供分類。分類結果按照CIA以及一個或多個寄存器的內容在幀發送期間被送到GxH。對于下行幀,分類器硬件加速器根據幀標題來確定CIA。對于上行和下行幀發送,分類器硬件加速器都會生成一個標簽用于完成單元中,以維護幀序列。
上行和下行數據存儲接口和判優器每個GxH都可使用上行和下行數據存儲。當讀取多個Fish時就會提供讀取訪問,當將FishPool中的內容寫回到數據存儲時就會提供寫入訪問。由于有個N個處理單元,而同一時間只有一個處理單元可以訪問上行數據存儲,同一時間也只有一個處理單元可以訪問下行數據存儲,因而每個數據存儲都需要有一個判優器。
WEB判優器和WEBWatch連接WEB判優器在各個GxH訪問WEB時判優。所有的GxH都可以訪問WEB,這樣就可以訪問接口設備中所有的存儲器和寄存器功能。這樣,任何GxH也都可以修改或讀取所有的配置區域。WEB可視作接口設備的內存映象。WEBWatch連接,使用3個集成電路塊IO插腳提供從集成電路塊外部到整個WEB的訪問。
調試中斷信號和單步控制WEB允許GCH或WEBWatch在必要時控制集成電路塊上的每個GxH。例如,WEB可被GCH或WEBWatch用于GxH上的單步指令。
一個嵌入式通用處理器,如PowerPC。
GxH有4種類型(圖12B)GDH(一般數據處理器)。有8個DH。每個GDH都有一個由5個協處理器組成的完全CLP(在后面的部分另有說明)。GDH主要用于轉發幀。
GCH(引導單元處理器,Guided Cell Handler)。GCH的硬件與GDH的完全相同。不過,引導幀只能由GCH來處理。通過在WEB上(CLP_Ena寄存器)編程可以使GCH也能夠處理數據幀(此時它起到GDH的作用)。與GDH相比,GCH還具有額外的硬件即協助執行目錄樹插入和刪除的硬件。GCH用于執行與引導單元有關的微微碼,還用于執行集成電路塊以及與微微碼有關的和目錄樹管理,諸如時效管理以及與CP和/或其它GCH的控制信息交換。在不執行上述任務的情況下,GCH就執行與幀轉發有關的微微碼,此時,它的功能與GDH完全一樣。
GTH(普通目錄樹處理器)。GTH還具有其它一些硬件來協助執行目錄樹插入、目錄樹刪除和繩管理。當GPQ中無幀(包含目錄樹管理命令)時,GTH將處理數據幀。
GPH(普通PowerPC處理器)。與GDH和GTH相比,GPH還具有其它一些硬件。GPH通過一個郵箱接口(i/f)與通用處理器相聯接。
GxH的數目(10)是一個很好猜的數字。性能評價可確定實際需要多少個GxH。該體系結構和結構是完全可伸縮的,它可以升級為更多的GxH,而唯一的限制是硅面積的大小(這里也需要一個較大的判優器和指令存儲器)。
每個GxH的構造如圖12C所示。除帶有通用寄存器(GPR)和算術及邏輯部件(ALU)的CLP之外,每個GxH中還包含以下5個協處理器(DS)協處理器接口。與分配器和各個子島的接口,上述接口可提供對上行和下行數據存儲的讀取和寫入訪問。DS接口中包含所謂的FishPool。
樹形搜索引擎協處理器(TSE)。TSE執行在目錄樹中的搜索,還可與樹狀檢索存儲器(TSM)相聯接。
入列協處理器。與完成單元接口相連,其中包含FCBPage。該協處理器中包含一個256位的寄存器,上面帶有額外的硬件加速器,微微碼必須使用該硬件加速器才能建立起包含入列參數的FCBPage。在FCBPage建立起來之后,微微處理器就執行入列指令,該指令讓協處理器將該FCBPage送往完成單元。
WEB接口協處理器。該協處理器提供一個與WEB判優器的連接,允許從接口設備WEB讀取以及向接口設備WEB寫入。
校驗和協處理器。在幀上生成和校驗,這些幀保存在Fishpool(有關Fishpool下文另行說明)中。
這些處理單元是在入口處理與出口處理之間共享的。可通過編程來設定為入口處理保留多少帶寬,為出口處理保留多少帶寬。在當前設備中有兩種模式50/50(即入口和出口取得相同的帶寬)或66/34(即入口所獲的帶寬為出口的兩倍)。
處理單元的操作是受事件驅動的。也就是說,是把幀的到達如同計時器的間歇或中斷信號一樣作為一個事件來處理。交換器以相同的方式處理不同的事件,盡管順序分先后(首先是中斷信號,然后是計時器事件,最后是幀到達事件)。當一個事件被送到處理單元時,相應的信息也隨之送到該處理單元。幀到達事件中包含幀標題的一部分以及來自硬件分類器的信息。計時器和信號中斷事件則包括代碼進入點及其它與該事件相關的信息。
當幀到達入口端時,且從該幀接收到的字節數超過了可編程的限度時,該幀控制塊的地址就被寫入GQ。
當在出口端完成一個幀的重新組合之后,該幀的地址就被寫入GQ。GQ共有四種類型(每一種類型都有入口型式和出口型式,見圖12B)GCQ包含必須由GCH處理的幀GTQ包含必須由GTH處理的幀GPQ包含必須由GPH處理的幀GDQ含有可由任何GDH(或GCH/GTH,當它們能夠處理數字幀時)處理的幀。GDQ有多項優先權,這樣,排入較高優先級的GDQ中的幀就比排入較低優先級隊列中的幀得到優先處理。
有些處理單元有專門的用途。在當前設備中,有四種類型的處理單元(GxH),參見圖12BGDH(一般數據處理器)。GDH主要用于轉發幀。
GCH(引導單元處理器)。GCH的硬件與GDH的完全相同。不過,引導幀只能由GCH來處理。通過在WEB(CLP_Ena寄存器)上編程可以使GCH也能夠處理數據幀(此時它起到GDH的作用)。
GTH(普通目錄樹處理器)。與GDH/GCH相比,GTH具有額外的硬件即協助執行目錄樹插入、目錄樹刪除和繩管理的硬件。當GPQ中無幀(包含目錄樹管理命令)時,GTH就處理數據幀。
GPH(普通PowerPC處理器)。與GDH/GTH相比,GPH還具有其它一些硬件。GPH通過一個郵箱接口與嵌入式PowerPC相連接。
在現實設備當中,GCH、GTH和GPH的角色可由一個處理單元來擔當。例如,一個設備可以將一個處理單元當作GCH和GPH來使用。類似的解釋也適用于GCQ、GTQ和GPQ。
數據存儲協處理器的用途為與上行數據存儲相連,上行數據存儲中包含從該介質接收到的幀;與下行數據存儲相連,下行數據存儲中包含從Prizma Atlantic收到的重新集合后的幀。
數據存儲協處理器也可以在發送計時器事件或中斷信號時接收配置信息。
數據存儲協處理器可以在幀上計算和校驗。
數據存儲協處理器中包含一個FishPool(可容納8個Fish)、一個暫存器(可容納8個Fish)以及若干個控制寄存器,用以從上行數據存儲中讀取FishPool的內容,或是將FishPool的內容寫入下行的數據存儲當中。我們可以把FishPool想象為某種數據存儲的工作區域它不是直接讀取/寫入到數據存儲,而是將大量的幀數據從數據存儲中讀出后放入Fishpool,或是將大量的幀數據從Fishpool寫入到數據存儲中。傳輸單位為Fish,一個Fish為16個字節。
我們可以把Fishpool想象為一個容納8個Fish的存儲器,也就是8個128位的字。在CLP處理器體系結構中,Fishpool是一個128字節的寄存器陣列。Fishpool中的每個字節中含有一個7位字節的地址(0...127),而入口的基礎是一個16位或32位的基片。與所有的寄存器陣列一樣,Fishpool中有一個循環編址方案。也就是說,為一個字(即4個字節)編址是從Fishpool中的位置126開始,然后回到字節126、127、0和1。而且,從數據存儲協處理器的角度來看,Fishpool中的Fish位置有一個3位Fish地址。
在幀發送時,幀的前N個Fish會由分配器自動復制到Fishpool中。N的值可以在PortConfigMemory中進行編程。一般來說,對于上行幀發送N等于4,對于下行單路傳送的幀發送N等于2,對于下行多路傳送的幀發送N等于4,對于中斷信號和計時器N等于0。
微微碼可以從幀中讀取更多的幀數據,此時數據存儲協處理器會自動將幀數據讀入位于下一個Fish地址的Fishpool,并在到達Fishpool的邊界時自動繞回到0。微微碼還可以在絕對地址上讀取或寫入上行/下行數據存儲。
WEB協處理器與EPC WEB判優器相連接。EPC WEB判優器在十個GxH之間判優,于是WEB監視器成為接口設備WEB接口上的主導。這就允許全部GxH在WEB上讀寫。
接口設備存儲器組合體可以為嵌入式處理器組合體(EPC)提供儲存設備,見圖12A。該存儲器組合體中包含目錄樹搜索存儲器(TSM)判優器和多個芯片內存儲器和芯片外存儲器。這些存儲器可儲存樹形結構、計數器以及微微碼要求通過存儲訪問的其它任何內容。此外,這些存儲器還可用來儲存用于硬件的數據結構,如自由表、隊列控制塊等。在默認情況下,任何未分配給目錄樹或未被硬件使用的存儲器單元都可供微微碼使用,如計數器和時效列表。
圖13為存儲器組合的更詳細的方框圖。目錄樹搜索存儲器(TSM)判優器提供在嵌入式處理器(GxH)與各個存儲器之間的通信聯絡。這些存儲器包括5個集成電路塊上的SRAM、1個集成電路塊外的SRAM以及7個集成電路塊外的DRAM。TSM判優器包括十個請求控制單元(每個控制單元與一個嵌入式處理器GxH相連接)和13個存儲器判優器單元,每個單元分別用于一個存儲器。一個總線結構將請求控制單元與判優器單元相連接,使得每個控制單元以及與之相連接的GxH都可以訪問所有的存儲器。
控制單元中包含必要的硬件,可以在嵌入式處理器(GxH)與判優器之間引導數據。
SRAM判優器單元著重對嵌入式處理器GxH與芯片內和芯片外的SRAM之間的數據流進行管理。
DRAM判優器單元則著重對嵌入式處理器(GxH)與芯片外DRAM裝置之間的數據流進行管理。
每個存儲器判優器中包含一個“后門”入口,一般用于該集成電路塊的其它部分,這些部分具有最高級的訪問優先權。
DRAM存儲器可以以兩種模式來運行TDM模式。對于DDRAM中4個區塊的存儲訪問是在讀取窗和寫入窗之間交互進行的。在讀取窗中,對4個區塊中任何一個的訪問都是只讀的;而在寫入窗中,對4個區塊中任何一個的訪問都是只寫的。對多個DDRAM使用TDM模式可以在各個DDRAM之間共享某些控制信號,從而省去一些集成電路塊IO(集成電路塊IO是非常稀有的資源)。非TDM模式。對DDRAM中4個區塊的存儲訪問可以是讀寫結合的,但這必須遵循一定的法則。例如,我們可以通過同一個訪問窗口在區塊A中讀,同時又在區塊C中寫。TSM判優器允許N個請求者同時訪問M個存儲器。當有多個請求者想訪問同一存儲器時,就會執行循環判優。這M個存儲器可以有不同的屬性。在我們當前的設備中,有三個存儲類型內部SRAM、外部SRAM和外部DDRAM。這M個存儲器與N個請求者屬同類任一請求者都可以訪問任一存儲器。某些存儲器在邏輯上分成多個子存儲器(如DDRAM中的4個區塊),這些子存儲器邏輯上可以同時訪問。這M個存儲器中的一部分用作控制存儲器,其中含有內部使用過的數據結構,這部分存儲器比微微處理器具有更高的優先訪問級。由于微微處理器可以讀取控制存儲器的內容,故也能夠對集成電路塊進行調試。判優器支持讀取訪問、寫入訪問和讀取-添加-寫入。通過讀取-添加-寫入,可以通過原子運算將一個N字節的整數添加到存儲器的內容中。訪問M個存儲器所使用的是普通編址方案,因而存儲器中對象的物理位置是透明的。
樹形搜索引擎中的目錄樹的概念是指存入和檢索信息。檢索就是指基于密鑰的樹形搜索以及插入和刪除操作,密鑰為位式組合格式,比如MAC源地址,或是串聯的IP源地址和IP目的地址。信息儲存在一個稱作葉的控制塊中,葉中至少含有上述密鑰(所儲存的位組合格式實際上為散列密鑰,這一點下文還會談到)。葉中還包含一些其它信息,如時效信息或用戶信息,用戶信息可以是轉發信息(如目標托板和目標端口數)等。
有各種不同的樹型(FM、LPM和SMT),于是就相應地有不同種類的樹型搜索固定匹配、軟件管理樹型結構以及最大前綴匹配。在樹形搜索中,還有另外一個自選的標準可用于葉的檢查,那就是VectorMask。還可運用圍起、老化和鎖定來提高搜索性能。
用于FM樹型結構的檢索算法見圖14。該檢索算法在包含密鑰的輸入參數進行運算,首先對密鑰執行散列,然后訪問直接表(DT)、穿過模式搜索控制箱(PSCB)中的樹型結構,最后在葉上結束(如圖14)。有三種不同的樹型結構,每種樹型結構都有其各自的檢索算法,因此就需要根據不同的法則在樹型間穿行。例如,對于固定匹配(FM)樹型結構,其數據結構為Patricia樹型結構。當發現一個葉之后,該葉就是唯一可能與輸入端密鑰相匹配的對象。而在軟件處理樹型結構中,就會有多個葉被鏈鎖在同一鏈接表中。此時,需要用輸入端密鑰檢查該鏈中所有的葉,直到發現一個匹配項,或是直到該鏈已全部檢查過。所謂的“最終比較”操作是將輸入端密鑰與儲存在葉中的格式相比較,它可以檢驗該葉是否與輸入端密鑰真的匹配。如果找到了相應的葉并且實現了匹配,檢索的結果就為“OK”,如果對于所有其它情況,檢索的結果就為“KO”。
檢索運算的輸入端由下列參數組成密鑰(128位)。密鑰必須是在搜索(或插入/刪除)之前由專門的微微碼指令來建立。只有一個密鑰寄存器。不過,在樹形搜索開始之后,密鑰寄存器就會通過微微碼來建立用于下一個檢索的密鑰,這一操作是在TSE進行搜索的同時進行的。這是因為TSE將密鑰散列并且將結果存儲在內部HashedKey寄存器中(這樣,實際上就有兩個密鑰寄存器)。KeyLength(7位)。該寄存器包含密鑰長度的各個位。密鑰長度是在建立密鑰的過程中由硬件自動更新的。LUDeflindex(8位)。它是到LUDefTable的指針,LUDefTable中包含全部樹型結構的定義,搜索就是在這里進行的。關于LUDefTable下文會有詳述。TSRNr(1位)。搜索結果可以存儲在樹形搜索結果區0(TSR0),也可存儲在TSR1。這是由TSRNr來確定的。在TSE執行搜索的同時,微微碼可以訪問另一個TSR以解析先前搜索的結果。Vectorlndex(6位)。對于那些可啟用VectorMask(這是在LUDefTabte中確定的)的樹型結構,Vectorlndex就會在VectorMask中標志一個位。當到達搜索結尾時,該位的值就被送回供微微碼使用。
輸入端密鑰被散列為HashedKey,如圖14所示。有6種固定的散列算法可以使用(一種“算法”執行非散列函數)。使用哪種算法在LUDefTable中有規定。還有一個可編程的散列函數可用來增加撓性。
散列函數的計算輸出總是一個128位的數,其屬性為在原輸入端密鑰與輸出端的散列函數之間一一對應。正如在下文中要說明的,該屬性使得在直接表之后開始的樹型結構的深度達到最小。
如果對樹型結構啟用了顏色,如圖14中所示的情形,則會將16位的彩色寄存器插入128位的散列函數計算輸出中。該插入是在直接表之后直接發生的。也就是說,如果直接表中包含2N個條目,則在第N個位的位置插入16位色值,如圖所示。散列函數的計算輸出與插入的色值(當啟用時)一起被儲存在HashedKey寄存器中。
散列函數是這樣定義的,即讓計算輸出中的多數熵駐留在最高位。HashedKey寄存器中的N個最高位可用作進行直接表(DT)的指針。
搜索從進入直接表開始從直接表中讀取一個DTEntry。用于讀取DTEntry的地址是從HashedKey中的N個最高位計算而來的,用于LUDefTable中所定義的樹型結構屬性的地址也是這樣得來的。這一點將在下面詳細介紹。DTEntry可以被看作是樹型結構的根。使用哪種樹型結構的數據結構取決于樹型結構的類型。在這一點上,我們完全可以認為,Patricia樹型結構的數據結構可用于FM樹型結構,而Patricia樹型結構的各種延展則可用于LPM和SMT樹型結構。
圖15中所示為一個8個條目的DT的使用舉例。可以看出,搜索時間(即必須訪問的PSCB的數目)可以由DT來減少。這樣,通過增加DT的容量,可以實現存儲器的使用與搜索性能之間的平衡。
從圖15可以看出,DTEntry中可以包含下列信息空。該DTEntry與任何葉都不相連。
指向葉的指針。有一個葉與該DTEntry相連接。
指向PSCB的指針。有多個葉與該DTEntry相連接。
DTEntry。DTEntry定義樹型結構的根。
軟件管理樹型結構的搜尋算法與生成該樹型結構的算法見美國專利申請第09/312,148號。
有一種名為“選擇位算法”的算法,它是根據從一套或多套法則中挑選出來的名為“法則”項運用某種量度來建立一個二元搜索樹。我們這里所講的例子都是依據因特網協議(IP)首標,但也可使用任何一種固定格式的首標來代替。
在IP中,每個法則都與特定的密鑰相匹配,這些密鑰可由下列子段組合而成源地址(SA)、目的地址(DA)、源端口(SP)、目的端口(DP)和協議(P)。這些數據分別為32、32、16、16和8個位長,這樣,要測試的密鑰就包含104位。選擇位算法會找到那些特別有用的104位。通過測試少數幾個有效的位,可以在眾多可能有用的應用程序中將多數剔除,而只留下一個或幾個有用的法則。對于某些法則,也可以通過簡單比較法來測試不等式。位測試和比較是在二元樹中通過邏輯來組織進行的。樹型結構被映射到一個啟用硬件的結構中,在那里以高速測試位。通過測試得出可能與密鑰相吻合的一種或少數幾種法則(稱為葉鏈)。在前一種情況下,再由該法則對該密鑰進行完全測試。在后一種情況下,再運用比較和完全法則測試的方法對密鑰進行點陣測試。
每組法則中的每個法則都伴隨著一個動作,當該法則與該密鑰相吻合且有最高優先權時,就會執行該動作。各種法則也會出現交叉(一個密鑰與兩個或兩個以上的法則相吻合)。在這種情況下,就要為法則設定優先級1,2,3,…,從而使兩個交叉的法則有不同的優先權(如果密鑰與兩個或兩個以上的法則相吻合,就需要由管理員來宣布以哪個法則為主)。這樣,如果在位測試和比較之后,還剩下不只一個法則需要測試,就按照這些法則的優先順序來進行測試。優先級的數字越小,所表示的法則的優先級越高。
如果一個相吻合的也找不到,就需要做一些默認規定。
有關最長前綴匹配法的搜尋算法公布于美國專利第5,787,430號。該方法要求從數據庫的一個節點(根節點)進入;確定從一個節點經上述樹形數據庫到另一個節點的搜索路徑,其方法是,依次對那些只包含識別下一個(子)節點所需條目的搜索變元的各段進行處理,同時依次處理二級鏈接信息,直至將上述各段都處理完或是到達一個無二級鏈接信息的(葉)節點;將上述搜索變元與儲存在搜索路徑末端節點中的條目相比較;如果在該節點上連搜索變元與所述條目之間的局部匹配都沒找到,就通過處理當前節點的一級鏈接信息退回到上述搜索路徑;重復前兩個步驟,直到至少找到局部匹配或是達到根節點。
圖16所示為主交換結構裝置的一個實施例。每個接口設備集成電路塊中最好集成有兩個以上的并行-串行口,這些口可接收并行數據并其轉換為高速串行數據流,然后再將這些數據通過串行鏈接轉發到交換結構裝置。把從高速串行鏈接上的交換結構裝置接收到的數據通過另一個DASL轉換為并行數據。在這里,我們以一個稱為數據調整串行鏈接(DASL)的串行器/解串器為實施例來進行說明。
至少有一個DASL將交換結構裝置連接到串行鏈接。來自串行鏈接的數據被轉換為并行數據后,然后傳送到交換結構裝置。與此類似,來自交換結構裝置的并行數據被轉換為串行數據,然后轉發到串行鏈接。也可將串行鏈接集合起來,以提高處理量。
仍然參看圖16,交換系統中包括交換結構11、輸入交換適配器13(13-1...13-k),它們與交換結構輸入端口15(15-1...15-k)相連接,以及輸出交換適配器17(17-1...17-p),它們與輸出端口19(19-1...19-p)交換結構相連接。
輸入和輸出傳輸鏈路21(21-I…21-q)和23(23-I…23-r)分別通過線路(鏈接)適配器25(25-I…25-q)和27(27-I…27-r)連接到交換系統。傳輸鏈路執行由電路交換的通信量或是由包交換的通信量與所連接的單元(如工作站、受話器組等由WS指定的的鏈接)之間的往來傳送、與局域網(由局域網路指定的鏈接)之間的往來傳送、與綜合服務數字網綜合服務數字網(由ISDN指定的鏈接)之間的往來傳送,或是與所有其它通信系統的往來傳送。傳輸鏈路執行由電路交換的通信量或是由包交換的通信量與所連接的單元(如工作站、受話器組等由WS指定的的鏈接)之間的往來傳送、與局域網(由局域網路指定的鏈接)之間的往來傳送、與綜合服務數字網綜合服務數字網(由ISDN指定的鏈接)之間的往來傳送,或是與所有其它通信系統的往來傳送。此外處理器還可連接到交換適配器13和17。線路適配器(LA)與交換適配器(SA)共用同一接口。
在輸入端交換適配器上,來自分組交換和電路交換接口的各種服務被集中起來,然后轉換為統一的迷你包(其長度為固定的幾種之一),其首標中包含路由選擇信息,該信息用以指定交換機的輸出端口(以及外向鏈路)。在下一個部分當中,將詳細介紹迷你包的格式、迷你包在輸入端交換適配器上的生成以及在輸出端交換適配器上的解包過程。
通過快速自我路由互連網絡,交換機網可將迷你包從任意一個輸入端路由到任意一個輸出端。自我路由網絡的結構可以使迷你包在內部同時路由而不發生任何沖突。
交換系統的中心部分是交換結構。這里,我們研究兩種不同的實現方式,并分別予以說明。在第一種實現方式中,交換結構中的每個輸入端口都有一個自我路由的二元樹,分別將對應的輸入端口與所有輸出端口相連接;交換結構中有k個這樣的樹型結構(如果能提供k個輸入端口),它們相互組合在一起。在另一種實現方式中,有一個帶有輸出端RAM的作為每個輸出端口的一個片段,它將所有的輸入端口連接到相應的輸出端口;交換結構中有P個這樣的片段組合在一起(如果能提供P個輸出端口)。
有關DASL的說明詳見1999年6月11日的申請,其序號為09/330,968。DASL接口從CMOS ASIC這樣的并行接口上接收數據,并將來自并行接口的位分割為數目較少的并行位流。這些較小數目的并行位流被轉換為一個高速串行流,然后經由傳輸介質傳送到另一個模塊中的接收器。一個帶有控制阻抗的差分驅動器將上述數據的串行位流輸送到傳輸介質中。
DASL對數據流進行解析,將N位并行的數據流變成若干段,每段中有n位,其中n為N的一部分;將數據流的各個n位段串起來;將每個串行的部分通過多個并行信道行中的一個傳輸出去;將所傳輸的每個數據流的部分進行串并轉換,使其恢復為并行的N位數據流。本發明優選實施例中的附圖和說明中,盡管也使用了一些專用名詞,但總體上講都是取術語的普通的、敘述性的含義,決無限制之意。
權利要求
1.一個裝置,包括一個介質接口,它與通信網絡或網絡設備相連接;一個嵌入式處理器組合體,控制信息可經過該設備被路由或處理;一個上行數據路徑,從介質接口進入該裝置的入口數據通過該裝置以介質速度進行路由;一個下行數據路徑,從該裝置到介質接口的出口數據以介質速度進行路由;一個連接器,它將上行數據路徑和下行數據路徑互相連接,
2.權利要求1中的裝置,進一步包含若干存儲器;以及一個存儲器接口機構,將所述存儲器與嵌入式處理器組合體連接起來。
3.權利要求2中的裝置,進一步包含一個基片,所述元件就集成在該基片上;其中,這些存儲器被分割成單獨的模塊,其中一些模塊安裝在該基片上,而其它的模塊安裝在基片以外。
4.權利要求1中的裝置,進一步包含一個上行數據存儲器,它位于上行數據路徑中;還有一個下行數據存儲器,它位于下行數據路徑中。
5.權利要求4的裝置,進一步包含一個第一接口邏輯電路,它將上行數據存儲器連接到嵌入式處理器組合體;以及一個第二接口邏輯電路,它將下行數據存儲器連接到嵌入式處理器組合體。
6.權利要求1中的裝置其特征在于,介質接口中包含至少一個以太網Mac核心,即宏。
7.權利要求6的裝置,進一步包含一個與以太網宏連接的以太網PHY。
8.權利要求7的裝置,其特征在于,至少有一個以太網宏可由第一模塊進行配置,使其具有支持包含100Mbps物理代碼底層核心(PCS)的1Gb的以太網的功能,也可以由第二模塊進行配置,使其具有10/100以太網或同步光纜上的包(POS)的功能。
9.權利要求8的裝置,進一步包含一個GMII接口,它將第一模塊連接到以太網PHY。
10.權利要求8的裝置,進一步包含一個SMII接口,它將第二模塊連接到以太網PHY。
11.一個裝置,包括一個半導體基片;裝在所述基片上的進入數據流邏輯電路,可以對從網絡地址進入到裝置中的信息單元作出響應;裝在所述基片上的分割邏輯電路,與所述進入數據流邏輯電路相連接,從其中接收信息單元,并將信息單元分割為預定的段;裝在所述基片上的進入系統接口的邏輯電路,與所述分割邏輯電路連接,從其中接收信息段;裝在所述基片上的第一輸入/輸出端口;裝在所述基片上的第一高速接口邏輯電路,與進入系統邏輯電路和所述第一輸入/輸出端口相連接,將信息單元段從進入系統邏輯電路傳送到所述第一輸入/輸出端口;裝在基片上的第二輸入/輸出端口;裝在所述基片上的第二高速接口邏輯電路,與所述第二輸入/輸出端口相連接,從其中接收信息單元段,這些信息單元段從該裝置出來后進入到網絡地址中;裝在所述基片上的流出系統接口邏輯電路,與所述第二高速接口邏輯電路相連,從其中接收信息單元段;裝在所述基片上的完成邏輯電路,與所述流出系統接口邏輯電路相連接,從其中接收信息單元段,并將所接收的段與前面所分割的段組合以組成信息單元,該信息單元從該裝置流出到網絡地址中;以及一個裝在所述基片上的嵌入式處理器組合體,與所述進入數據流邏輯電路、所述分割邏輯電路、所述進入系統接口邏輯電路、所述流出系統接口邏輯電路以及所述完成邏輯電路相連接,從而控制其通過該裝置傳遞信息單元的操作。
12.根據權利要求11的裝置,還包含一個裝在所述基片上的業務管理調度器,并被安插在流出數據流的路徑當中。
13.根據權利要求11或12的裝置,還包含裝在所述基片上的多個輸入/輸出介質端口,用于與網絡交換流入流出的數據流。
14.根據權利要求13的裝置,其特征在于,所述輸入/輸出介質端口包含裝在所述基片上的進入多路復合MAC,將輸入/輸出介質端口與進入數據流邏輯電路相連;同時還包含裝在所述基片上的流出多路復合MAC,將輸入/輸出介質端口與流出數據流邏輯電路相連。
15.根據權利要求13的裝置,其特征在于,輸入/輸出介質端口中包含以太網端口。
16.一個單芯片裝置,包含一個半導體基片;裝在所述基片上的上行入列/出列/調度UP-EDS)邏輯電路,所述UP-EDS可對沿第一方向,即上行方向,流動的信息單元的處理作出響應;裝在所述基片上的上行交換數據推進器(UP-SDM)邏輯電路,所述UP-SDM邏輯電路被定位得能從所述UP-SDM中接收信息單元,并將所述信息單元分割成預定的信息段;裝在所述基片上的上行系統接口(UP-SIF)邏輯電路,被定位得能從UP-SDM接收沿上行方向流動的信息段;裝在所述基片上的第一交換I/O端口;一個模塊,它可將離開集成電路塊的數據串行化,并將從集成電路塊上接收的數據并行化,該模塊位于該集成電路塊上,處于UP-SlF和第一交換端口之間;裝在所述基片上的一系列下行元素,各下行元素之間的位置關系與各上行元素之間的位置關系相似,并與上行元素間隔排列,可以處理沿第二方向,即下行方向,流動的數據;以及裝在所述基片上的一個嵌入式處理器組合體,約在所述集成電路塊的中心部位,能訪問上行和下行元素,可處理流經這些元素的信息單元。
17.權利要求16中的單芯片裝置,進一步包含一個業務管理調度器,位于所述集成電路塊的下行通信量流路徑當中。
18.權利要求16或17的單芯片裝置,進一步包含多個裝在所述基片上的輸入/輸出介質端口。
19.權利要求18的單芯片裝置,進一步包含裝在所述基片上的上行多路復合MAC,將輸入/輸出介質端口連接到UP-EDS;以及裝在所述基片上的下行多路復合MAC,將輸入/輸出介質端口連接到Down EDS。
20.根據權利要求18的單芯片裝置,其特征在于,輸入/輸出介質端口中包含以太網端口。
21.權利要求16中的單芯片裝置,其特征在于,該嵌入式處理器組合體還包含一個裝在所述基片上的系統控制PC。
22.權利要求16的單芯片裝置,其中一系列下行元素包括至少一個串行器/串并轉換器,一個Down-SIF,一個Down-EDS和一個下行多路復合MAC。
23.權利要求16的單芯片裝置,其中,UP-EDS中包括裝在所述集成電路塊上的數據存儲器、多個寄存器和控制邏輯電路。
24.一個單芯片裝置,包含一個半導體基片;裝在所述基片上的多個輸入/輸出端介質端口,所述介質端口最好是位于與基片的第一邊緣相對應的位置;裝在所述基片上的多個交換端口,所述交換端口最好是位于與基片的第二邊緣相對應的位置;裝在所述基片上的第一套上行電路元件,被定位得能與介質端口和交換端口相連接,并處理在第一方向中流動的數據;裝在所述基片上的第二套下行電路元件,該下行電路的位置與上行電路元件間隔開,能與介質端口和交換端口相連接,并處理沿第二方向流動的數據;以及一個裝在所述基片上的嵌入式處理器組合體,即EPC,該EPC位于上行元素和下行元素之間,用來處理流經上行元素和下行元素的信息。
25.一種方法,包含如下步驟接收從網絡地址流入的信息單元;將所接收的信息單元分割成預定的段;在儲存其它信息單元段的同時,將預定信息單元段傳送到第一高速接口邏輯電路;以及在第二高速接口邏輯電路接收通過的信息單元段;以及將所接收的信息單元段與過去儲存的其它信息單元段組合成完整的信息單元,用于流出到外部網絡地址;通過一個處理器組合體來控制所述步驟的執行,該處理器組合體與電路元件一起裝在一個半導體基片上,在執行上述步驟時,信息單元和段就在這些電路元件中傳送。
26.根據權利要求25的方法,還包括將數據流解析為多個部分,將經解析數據流的所選擇部分存入數據存儲器;將經解析數據流的其它所選擇部分定向到一個交換結構,以確定流出方向。
27.根據權利要求26的方法,還包括,在引導數據流經輸出端口流出之前,將所存儲的數據流部分和其它所選擇的數據流部分重新組合。
全文摘要
一種用于網絡交換機裝置的網絡處理器(10)以及操作所述處理器(10)的操作方法。該方法通過與裝在半導體基片上的多個接口處理器(16,34)協同工作來改善對數據流的處理,同時增強靈活性。所述接口處理器(16,34)可為流入和流出的數據流提供數據路徑,并根據存儲在一個指令存儲器中的指令來執行操作,所述指令存儲器裝在所述半導體基片上。
文檔編號H04L29/06GK1371495SQ00812060
公開日2002年9月25日 申請日期2000年8月24日 優先權日1999年8月27日
發明者肯尼思·J·巴克, 布賴恩·M·巴斯, 讓-路易斯·卡爾維格納克, 馬科·C·赫德斯, 邁克爾·S·西戈爾, 邁克爾·R·特羅姆布雷, 法布里斯·J·沃普蘭肯 申請人:國際商業機器公司