專利名稱:連網系統的制作方法
技術領域:
本發明涉及連網系統以及其中的信息的轉發和路由選擇,具體涉及由于爭用共享存儲器以及用于轉發和/或路由選擇決定的時間所引發的系統等待時間的問題,本發明在于在各種因素之間使這樣的等待時間最小化。
在連網系統中與驅動系統性能有關的兩個主要因素一般是帶寬性能和系統操作等待時間。帶寬反映通過系統傳輸的數據量;等待時間包括數據在系統內“停留”的時間量。
本發明涉及使等待時間最小化。在1995,12,29申請的,與本申請具有共同代理人,名稱為用于高性能通用多端口內部高速緩存的動態隨機存取存儲器系統、結構和方法的共同未決U.S.專利申請No.581,467,提供了一種最大化帶寬的有效的解決方法。
網絡系統的等待時間由幾個因素確定,一個主要的因素是檢查數據分組或信元開始處控制信息所導致的用于轉發或路由選擇決定的時間量。控制信息根據是包括信元還是包括分組而不同。對于一個信元,交換決定是基于VCI/VPI信息,VCI/VPI信息用于將信元映象到系統中的出口接口。另一方面,對于分組,路由選擇決定基于可將分組映象到一個出口接口的目的地地址。另外,對于分組,源地址也根據源和目的地地址對提供一個過濾級,其中設定多個規則以定義允許哪個源/目的地對進行通信。如果在未遵守這樣的規則的情況下接收到一個分組,則去除該分組。通常,例如,在具有該特征的網絡數據是53字節的信元或64到64K字節的分組。
在常規系統,控制信息的處理通過中央處理單元(CPU)進行并且直到接收到整個信元/分組才開始處理。這樣系統的等待時間基于數據從I/O口到存儲器的傳送,位于數據開始處的控制信息的存取,控制信息的更新,以及數據從存儲器到I/O口的傳送。所有這些對共享存儲器的訪問導致根本的總線和存儲器的爭用,這就增加了等待時間。在這種結構的系統中等待時間較大,因為直到接收到整個信元/分組才開始控制信息的處理。導致增大等待時間的其他因素包括支持服務質量(QOS)和多點傳送。QOS要求每個I/O口保持多個隊列,從而增加對已過載的存儲器的訪問量。多點傳送要求將相同的信元/分組發送給多個I/O口,因此,這就再次增加對已過載的存儲器的訪問量。
確定系統的等待時間的再一個因素是共享存儲器的吞吐量。如果共享存儲器的吞吐量不是很高,則由此增加等待時間。通常,為支持大帶寬,存儲器的吞吐量必須等于端口速度與端口數乘積的二倍。然而,這未解決所必須執行的對同一個共享存儲器的所有其他訪問,從而要求存儲器的吞吐量更高以最小化等待時間并獲得通過系統的較高帶寬。另外,由于增加了較多的端口并提高了每個端口的速度,所以等待時間成比例增加。因此,提高共享存儲器系統的吞吐量成為一個不易解決的問題。
正如后面所描述的,多數常規連網系統的操作本質上不允許獲得零或接近零的等待時間。另一方面,根據本發明,通過使用一種新穎的雙路徑數據處理和分組/信元結構管理,最終實現最佳的最小等待時間。
因此,本發明的一個目的是提供一種這樣的新穎系統結構和雙路徑數據處理與數據分組和/或信元的管理的方法,上述結構和方法顯著地減少等待時間。
一個進一步的目的是在不爭用其他資源的情況下同時處理每個分組/信元的控制信號的情況下實現最小化等待時間的新結果。
其他和進一步的目的將在下面解釋并在附屬權利要求書中進行具體描述。
總之,從其最重要的角度看,本發明可以包含在CPU或數據控制器系統中,其中數據經一個與公共存儲器和從其中接收和寫入分組/信元數據的多個I/O模塊連接的公共總線接口,減少存儲器存取爭用和所產生的系統等待時間的方法包括,為每個I/O模塊提供一個相應的轉發引擎和發送隊列設備以及一個分開的路徑,該路徑用于從I/O模塊接收的分組/信元提取控制信息,并將該控制信息提供給轉發引擎;在轉發引擎處理所提取的分組/信元控制信息,用于進行交換,路由選擇和/或過濾決定同時將數據寫入存儲器,將轉發引擎處理結果傳送給用于入隊和出隊接收并發送每個分組/信元的隊列的隊列管理器,并通過相應的I/O模塊發送隊列設備,控制與適當的出口I/O模塊接口,通過出口I/O模塊發送分組/信元數據,所有這些與分組/信元數據傳送到存儲器和從存儲器傳送出都不沖突并且與其無關。
后面詳細給出了優選和最佳的模式設計和技術。
下面將結合附圖解釋本發明,其中
圖1是已有技術和當前連網系統的示范分組/信元結構的方框圖;圖2是已有技術中的典型連網系統的說明性示意圖;圖3是表示爭用如何導致增加等待時間的圖;圖4表示一個具有很多I/O口的典型的已有的共享存儲器系統;圖5表示一個具有“標題”高速緩存的改進的共享存儲器系統;圖6是已有和當前的連網中的典型的分布式存儲器系統的示意圖;圖7表示一個用于連網的典型的交叉系統;圖8是本發明的優選雙路徑數據處理和分組/信元結構管理的圖;和圖9是表示根據本發明如何減少等待時間的圖。
現有技術和當前網絡系統中的等待時間的限制如前所述,在網絡系統所使用的典型的分組/信元結構中,控制信息位于分組或信元的開始,如圖1所示。根據VCI/VPI信息表示信元的交換決定,如前所述,VCI/VPI信息用于將信元映象到系統內的出口接口。分組的路由選擇決定基于目的地地址,目的地地址用于將分組映象到出口地址。
在圖2的常規系統,公知一個通過公共總線,具有存儲器存取,具有多個數據接收和刪除I/O口#1,#2等,具有由點和虛線表示的各種接口路徑和共享存儲器的CPU。正如前面所指出的,共享存儲器的各種存取導致本質上的爭用,從而增加了等待時間,等待時間的增加在這種結構中是實質性的,因為直到接收到整個分組/信元才開始處理控制信息。
另外,從圖3中可以看出,由于增加了對共享存儲器的存取,所以爭用也增加了;并且由于增加了爭用,這就導致增加系統的等待時間。在圖3,(每次對存儲器的讀和寫的訪問時間等于M,存儲器存取的比特數為W)。給出下面的功能A.將數據從接收口#1寫入到共享存儲器。傳送一個分組或信元的時間等于((B*8)/W)*M,其中B等于分組或信元的字節數。由于分組較大,所以將其寫入到存儲器的時間也較長。
B.將數據從接收口#2寫入到共享存儲器。傳送一個分組或信元的時間等于((B*8)/W)*M,其中B等于分組或信元的字節數。由于分組較大,所以將其寫入到存儲器的時間也較長。
C.從端口#1剛寫入到共享存儲器的分組/信元中讀取控制信息。所需時間量基于要讀取的控制信息量。對于分組控制信息一般為24到28字節,對于信元控制信息一般為5字節。要讀取的字節數等于N;因此,讀取時間等于((N*8)/W)*M。從這里可以看出,由于其他接口爭用相同的共享存儲器,這種存取要花費較長時間,因為端口#2當前正將數據寫入到存儲器。這就增加了僅在端口#1接收的分組/信元的等待時間。
D.將剛從端口#1接收分組/信元的緩沖器地址寫入到適當的隊列。這一般為8到12字節。更新隊列的時間為((P*8)/W)*M,其中P是要寫入適當隊列的隊列信息的長度。由于其他接口可能爭用相同的共享存儲器,這種存取要花費較長時間,再次增加了僅在端口#1接收的分組/信元的等待時間。
E.讀取不同的隊列以確定哪個隊列具有可用于發送的數據。這將由讀取多個隊列組成,直到來自端口#1的分組/信元的緩沖器地址已準備好發送為止。每個隊列項的讀取一般為8到12字節。更新隊列的時間為(Q+1)(((P*8)/W)*M),其中Q為分組最終出隊之前讀取的隊列數。由于其他接口可能爭用相同的共享存儲器,這種存取要花費較長時間,再次增加了僅在端口#1接收的分組/信元的等待時間。
F.將數據從共享存儲器讀取到接收端口#2。傳送一個分組或信元的時間等于((B*8)/W)*M,其中B等于分組或信元的字節數。由于分組變得較大,所以從存儲器將其讀出的時間變得較長。
自然,一個系統的目的是實現零(或接近零)等待時間。具有零等待時間將導致將分組/信元從入口接口寫入存儲器和將其從存儲器讀出到出口接口之間不存在時間。事實上,如果可以確定出口接口并且在分組/信元被完全寫入到存儲器之前緩沖器地址出隊,則存在競爭條件。該競爭條件將導致在其被完全寫入到存儲器之前開始讀出數據,從而發送錯誤數據。在共享存儲器系統,如前所解釋的,由于直到分組/信元被完全寫入到存儲器才開始處理控制信息和排隊,所以不能實現零等待時間。
現在的一般系統通過提供系統的較高吞吐量盡力減少系統中的等待時間,在減少等待時間方面一般提供較大效果。然而,實現系統內的較高吞吐量,必須以成本和復雜性為代價。從根本上說,由于增加了數據傳輸率和I/O口的密度,該系統的等待時間不是按比例減少,事實上,等待時間增加。
圖4的連網類型諸如開關,路由器,網橋,集線器,路由選擇開關,交換路由器等之類的典型的連網設備使諸如ATM.,令牌環,FDDI,以太網,Sonet,等這樣的多個網絡互連,如圖4所示。互連這些網絡需要CPU或轉發引擎(FE)以查看系統接收的每個分組或信元并確定分組/信元應從哪個端口發送出。如前所述,CPU/FE必須存取每個分組/信元的開始以確定數據類型及其數據的目的地。由于增加數據傳輸率和I/O口,對相同的存儲器資源的爭用也增加,這就增加了系統的等待時間,正如前面所解釋的。減少等待時間的唯一解決方法是減少存儲器訪問時間,但這又導致高成本和復雜性。對于共享存儲器系統,存儲器系統的性能最低必須大于所有端口的帶寬的二倍。例如,如果一個系統具有N個端口并且每個端口具有數據傳輸率V,則存儲器系統的整個帶寬必須大于2NV。整個帶寬必須大于2NV是因為存儲器系統還必須支持控制信息的查找和修改以及可能的隊列管理,路由選擇表查找等。由于存儲器系統必須大于2NV,這就禁止了性能的調節性,從而導致限定其減少等待時間的調節性。
當提供QOS時,QOS要求每個端口保持多個隊列,由于增加對訪問隊列的爭用,這種結構導致增加等待時間。自然,這就要求較高的存儲器吞吐量,這就再次增加了成本和復雜性。
當提供多點傳送支持時,也大大增加了對共享存儲器的存取數,大大增加爭用和等待時間,從而要求具有更高吞吐量的存儲器系統。
在這種系統,也不可能實現零等待時間,這是由于直到分組/信元被完全寫入到存儲器才開始處理控制信息和排隊。
圖5的連網類型圖5與圖4類似,但是在CPU/FE前面增加了一個標題高速緩存。由于在每個接口發送/接收分組/信元,則分組/信元被從共享存儲器結構讀出或寫入共享存儲器結構,但是現在分組的前64字節在標題高速緩存內被“鏡象”。由于前64字節被復制到標題高速緩存并且信元為53字節,該結構僅適用于基于分組的系統。當CPU/FE存取分組的控制信息,實際上從標題高速緩存而不是從共享存儲器檢索數據。僅對控制信息的存取而言,則減少了對共享存儲器的爭用。這樣這種結構提供了對圖4結構實例的很多改進。
然而,使用前面的結構,存儲器系統還必須大于每個接口的吞吐量的二倍。還存在一組順序存取,包括將數據寫入到共享存儲器,處理控制信息,設定并保持每個端口的隊列并從共享存儲器讀取數據。由于增加端口和數據傳輸率,存儲器吞吐量必須再次增加,從而提供相同的等待時間。這僅通過增加成本和復雜性來實現,其中有可能達到一個不可能實現的成本點。
當提供QOS時,QOS要求每個端口保持多個隊列,由于增加對訪問隊列的爭用,該結構導致增加等待時間,再次要求較高的存儲器吞吐量,從而增加了成本和復雜性。
當提供多點傳送支持時,也增加了對共享存儲器的存取數,大大增加爭用和等待時間,從而要求具有更高吞吐量的存儲器系統。
此外,在該系統,不可能實現零等待時間,這是由于直到分組/信元被完全寫入到存儲器才開始處理控制信息和排隊。
圖6的連網類型該系統的操作與圖4的系統類似。在圖6的系統內,隨著接收分組/信元,將其存儲在每個I/O模塊的存儲器以及CPU/FE存儲器。一旦在可由CPU/FE存取的存儲器已接收到數據,則讀取控制信息以確定數據的目的地是哪個端口。一旦進行確定,將其寫入到每個I/O模塊以指示應刪除還是保留該數據。盡管這種結構確實減輕了對CPU/FE存儲器存取的某些爭用,從而減低了一些等待時間,但是,由于無論是否需要,每個I/O模塊必須發送其他I/O模塊的數據,則又在主系統總線產生了很多爭用。由于增加了端口和數據傳輸率,則CPU/FE模塊的存儲器吞吐量必須大于系統中的所有端口的速度。與前面圖4和5的兩個實例相比,盡管這減少了存儲器系統的成本和復雜性,但卻要求更復雜和昂貴的“模塊”互連總線以及每個I/O模塊上的存儲器,這就增加了整個系統的成本和復雜性。增加成本和復雜性的另一個因素是每個I/O模塊必須具有足夠的存儲器以接收來自每個其他I/O模塊的數據。一般地,如前所述,I/O模塊上的存儲器吞吐量僅必須支持其端口的數據傳輸率的二倍,并支持其隊列的管理。在該結構,也必須支持其端口的數據傳輸率的二倍和其隊列的管理,另外,還支持系統內的所有其他端口的數據傳輸率和用于該數據的附加接收隊列的管理。由于增加端口和數據傳輸率,因此,每個I/O模塊和CPU/FE模塊上的存儲器系統的吞吐量必須相應地增加,從而限定這種類型結構的可量測性。
當提供QOS時,QOS要求每個端口保持很多隊列,由于增加對存取存儲器的爭用,這樣的結構也導致增加等待時間。
當提供多點傳送支持時,這種結構優于前面實例,因為相同的分組被同時傳送到每個I/O模塊,但是由于整個分組不能在一次存取中被傳送,從而相應地增加等待時間。這樣,盡管這種結構確實提供等待時間的顯著減少,這是以較高的存儲器吞吐量,增加成本和每個I/O模塊的復雜性為代價。
再次,在該系統,不能實現零等待時間,這是因為直到分組/信元被完全寫入到存儲器才開始控制信息的處理和排隊。
圖7的連網類型當如圖7所示使用交叉時,信元一般在輸入被處理并被給予一個新的內部標題,該標題允許信元在系統內進行有效交換。交叉將使用內部標題確定信元應被交換到哪個輸出口。對于進行相同輸出的多個信元,可能要求在交叉內的輸出或者輸入進行附加緩沖。由于它們一般都存在阻塞問題的事實,多數交叉結構僅使用信元,阻塞問題由幾個因素造成,這些因素包括用于一個單一輸出口的多個輸入口,和多點傳送。當使用分組時,分組尺寸可以從64字節到64,000字節進行變化,這些阻塞問題成為主要問題,通常造成不能使用系統。
在輸入口進行的初始查找仍然存在圖4討論的爭用問題,在執行查找之前必須等待接收整個信元,這就再次增加了等待時間。一旦信元進入開關,等待時間就基于所使用的交叉的類型;但是,通常,等待時間由經過硅基交叉或爭用基于交叉的存儲器內的共享存儲器的跳躍組成。另外,如果在交叉內發生內部阻塞,則產生等待時間。
當提供QOS時,一般在輸入或輸出口提供隊列。由于每個端口不要求隊列,減少了爭用和要保持的隊列數,這就減少了等待時間。
當提供多點傳送支持時,信元一般在交叉內被復制,這就導致內部或者在輸出口的阻塞狀態(和增加等待時間),還導致到輸入口的反壓力,這就要求輸入口提供附加的緩沖空間。由于增加端口和數據傳輸率,這種結構不能進行調節,這是因為多點傳送將產生阻塞問題并再次增加系統的成本和復雜性。
在該系統,不可能實現零等待時間,因為直到分組/信元被完全寫入到存儲器才再次開始控制信息的處理和排隊。
本發明的優選實施例如圖8所示,本發明與所有這些已有技術不同,本發明最優化連網系統使其等待時間最小化,甚至在數據傳輸率和端口密度增加的情況下,本發明也確實能實現零等待時間。此外,對于53字節的信元或者64字節到64K字節的分組,本發明都能很好實現上述要求。這通過在將分組/信元寫入存儲器時從中提取控制信息,并將控制信息提供給轉發引擎FE來實現,其中轉發引擎在數據被寫入存儲器時進行交換,路由選擇和/或過濾決定。
在轉發引擎FE已完成其任務之后,結果送給用于入隊和出隊這些結果的隊列管理器QM。根據本發明,在分組/信元被完全寫入存儲器之前,進行上述過程,從而允許在分組/信元被完全寫入存儲器之后立即開始數據的讀取。事實上,當從存儲器讀取時,有可能在數據已被完全寫入存儲器之前開始讀出分組,由于可能從存儲器讀取錯誤數據,這在以前是不可能的。在入口和出口之間需要一個同步S以保證分組/信元的讀取不致開始過早,如圖8所示,對于選定的出口,當轉發引擎FE檢測到最后數據處于存儲器,并將排隊地址信息送到隊列管理器QM時實現上述過程。這是本發明與所有其他連網系統的一個很重要的區別。通過這種結構,不存在競爭條件,因此,如前面所指出的,使用該結構不可能實現零等待時間。
為防止競爭條件,在轉發引擎的輸出進行入口和出口之間的同步S---轉發引擎在其輸出保留結果直到分組/信元被完全寫入存儲器為止,接著轉發引擎將結果傳送到隊列管理器,如點劃線所示。
這樣,在本發明使用分開或雙路徑用于控制信息,從而允許每個I/O模塊(#1-#n)僅為其端口處理數據,無論是發送數據還是接收數據,因此,需要簡單的邏輯,易于實現并且比現在的系統成本低。正如前面所指出的,多數系統需要存儲器結構,存儲器結構用于存儲控制信息以支持比系統內的每個端口的數據傳輸率大二倍的數據。另一方面,本發明降低對其I/O模塊的每個端口的數據傳輸率的要求—顯著降低。在不需要昂貴和復雜的解決方法的前提下,本發明還允許系統增加端口和數據傳輸率。
在多數其他結構中,如前面所示,需要FE和隊列管理器以訪問用于存儲分組或信元的同一存儲器,由于FE和隊列管理器必須爭用每個端口對存儲器的訪問,從而導致增加等待時間。然而,使用本發明,FE和隊列管理器具有分開的路徑P以處理控制信息,從而允許這兩部分具有最高性能,而不影響分組/信元傳送到存儲器或從存儲器傳送分組/信元。確實,為實現零等待時間,必須進行上述過程。
如圖9所示,如果進行控制信息的處理和排隊,而這與數據寫入存儲器無關,則本發明的系統的等待時間可以減少到零。在圖9(每次對存儲器的讀或寫的訪問時間等于M,用于存儲器訪問的比特數為W),如圖8所示,與前面給出的圖3的A-E操作相比,對于本發明的雙路徑處理進行如下過程,A.將數據從接收端口#1寫入到存儲器。傳送一個分組或信元的時間等于((B*8)/W)*M,其中B等于分組或信元的字節數。由于分組較大,所以將其寫入到存儲器的時間也較長。
B.將數據從接收端口#2寫入到存儲器。傳送一個分組或信元的時間等于((C*8)/W)*M,其中C等于分組或信元的字節數。由于分組較大,所以將其寫入到存儲器的時間也較長。
C.當分組或信元被寫入存儲器時,從分組或信元中提取控制信息。立即開始控制信息的處理。將該處理的結果送給隊列管理器。由于從分組/信元的標題提取控制信息,僅提取所要求的信息。對于分組或者信元一般為4到10字節。提取控制信息所需的時間量基于存儲器存取時間和寬度。提取控制信息的時間等于((Y*8)/W)*M,這里Y為處于標題內的控制信息的字節數(一般為4到24字節)。從這里可以看出,由于轉發引擎不必與其他設備競爭,所以在開始處理控制信息時不存在延遲。這就導致未影響僅接收分組/信元的等待時間。
D.將剛從端口#1接收分組/信元的緩沖器地址寫入到適當的出口I/O模塊。在I/O模塊,隊列管理器將緩沖器地址放入適當的隊列并在其出現在隊列的開始時提取緩沖器地址。轉發結果一般為4到10字節。將結果傳送到隊列管理器的時間為((Z*8)/R)*S,其中Z是轉發結果的長度,R是用于將結果從FE送到隊列管理器的總線的寬度,S是同一總線的時鐘率。從這里可以看出,將分組/信元傳送到存儲器或從存儲器傳送出將不影響轉發結果的傳送。這就導致未影響僅接收分組/信元的等待時間。
E.讀取不同的隊列以確定哪個隊列具有可用于發送的數據。這將由讀取多個隊列組成,直到來自端口#1的分組/信元的緩沖器地址已準備好發送為止。每個隊列項的讀取一般為8到12字節。更新隊列的時間為(F+1))((P*8)/R)*S)),其中F為分組最終出隊之前讀取的隊列數。分布隊列,并且將要讀取的隊列數減少到支持特定I/O模塊(而不是整個系統)的隊列數。這就減少掃描不同的隊列所需的時間量,從而有助于實現零等待時間。從這里可以看出,將分組/信元傳送到存儲器或從存儲器傳送出將不影響緩沖器地址的出隊。這就導致未影響僅接收分組/信元的等待時間。
F.將數據從存儲器讀取到接收端口#2。傳送一個分組或信元的時間等于((B*8)/W)*M,其中B等于分組或信元的字節數。由于分組變得較大,所以從存儲器將其讀出的時間變得較長。
當提供QOS時,如前所述,QOS要求每個端口保持多個隊列,該結構允許隊列管理器分為N個獨立的子隊列管理器,其中每個子隊列管理器負責處理其相關的I/O模塊的隊列。由于增加系統的端口和數據傳輸率,這就允許可調節的較簡單和低成本的實現,再次允許系統實現零等待時間。
當提供多點傳送時,本發明的結構提供最佳的解決方法,因為本發明將傳送進行轉發和排隊決定所需最小信息量,從而可以使用簡單和低成本的設備。由于隊列管理器由“子隊列”管理器組成,多點傳送信息可以同時送給每個子隊列管理器,從而消除爭用并實現零等待時間。
這樣,本發明提供一種最小化等待時間的最佳解決方法,一種隨著端口和數據傳輸率的增加可調節的解決方法,同時僅需要簡單和廉價的設備。
本發明的最終結果是,在處理每個分組/信元的控制信息的同時,轉發引擎不必與其他資源爭用;事實上,由于轉發引擎僅處理其I/O模塊內的數據,轉發引擎可以比較簡單和易于理解。在處理每個分組/信元的接收和發送隊列的同時,隊列管理器也不必與其他資源爭用;事實上,由于隊列管理器僅處理其I/O模塊內的數據,隊列管理器可以比較簡單和易于理解。
另外,使用本發明,在數據和控制信息之間不存在爭用,并且,可以高效處理隊列以及提供多點傳送支持。最終結果是一種大大減少等待時間的結構。當與所述共同未決申請的寬帶最優結構組合時,可以獲得最佳帶寬和最小等待時間的網絡。
對本領域技術人員來說可進行進一步的修改,但是這些修改被認為是落入附屬權利要求書所定義的本發明的精神和范圍內。
權利要求
1.在CPU或類似數據處理系統中,其中數據經與公共存儲器和接收并寫入存儲器以及從中刪除分組/信元數據的多個I/O模塊相連的公共總線接口,一種減少存儲器和總線訪問爭用所導致的系統等待時間的方法,包括,為每個I/O模塊提供一個相應的轉發引擎和發送隊列設備以及一個用于從I/O模塊接收的分組/信元提取控制信息并將控制信息提供給轉發引擎的分離路徑;在轉發引擎處理提取的分組/信元控制信息用于進行交換,路由選擇和/或過濾決定,同時將其中數據寫入到存儲器;將轉發引擎處理結果傳送到用于入隊和出隊每個分組/信元的發送和接收隊列的隊列管理器,并通過相應的I/O模塊發送隊列設備,控制與適當的分組/信元數據要發送到的出口I/O模塊的接口,所有這些步驟不存在爭用并與分組/信元傳送到隊列管理器和從隊列管理器傳送出無關。
2.如權利要求1所述的方法,其中從分組/信元的標題提取控制信息,并由隊列管理器處理其中的緩沖器地址信息。
3.如權利要求2所述的方法,其中在分組/信元數據被完全寫入到存儲器之前將轉發引擎結果送到隊列管理器,從而允許在分組/信元數據被完全寫入到存儲器之后立即開始讀出數據。
4.如權利要求2所述的方法,其中在分組/信元數據被完全寫入到存儲器之前開始分組/信元數據的讀出。
5.如權利要求4所述的方法,其中進行入口和出口之間的同步以保證不致過早開始分組/信元的讀出。
6.如權利要求5所述的方法,其中當檢測到所有分組/信元已被寫入存儲器時轉發引擎將其所述輸出傳送給隊列管理器。
7.如權利要求2所述的方法,其中接收分組/信元的緩沖器地址傳送到適當的出口I/O模塊。
8.如權利要求7所述方法,其中通過將隊列管理器讀取的隊列數減少到支持特定I/O模塊而不是整個系統的所要求的隊列數,分布隊列。
9.如權利要求7所述方法,其中為每個I/O口保持多個隊列并將隊列管理器分為多個獨立的子隊列管理器,每個子隊列管理器處理其相關的I/O模塊的隊列。
10.如權利要求9所述方法,其中將多點傳送信息同時提供給每個子隊列管理器。
11.一種用于在CPU或類似數據處理系統中減少存儲器和總線訪問爭用所導致的系統等待時間的裝置,其中數據經與公共存儲器和接收并寫入存儲器以及從中刪除分組/信元數據的多個I/O模塊相連的公共總線接口,所述裝置具有,為每個I/O模塊提供多個轉發引擎和發送隊列設備的組合,以及一個用于從其I/O模塊接收的分組/信元提取控制信息并將控制信息提供給轉發引擎的分離路徑;每個轉發引擎處理從其相應的I/O模塊接收的分組/信元提取的控制信息用于進行交換,路由選擇和/或過濾決定,同時將其中數據寫入到存儲器;用于將轉發引擎處理結果傳送到用于入隊和出隊每個分組/信元的發送和接收隊列的隊列管理器,并通過相應的I/O模塊發送隊列設備,控制與適當的分組/信元數據要發送到的出口I/O模塊接口的裝置,所有這些裝置不存在爭用并與分組/信元傳送到隊列管理器和從隊列管理器傳送出無關。
12.如權利要求11所述的裝置,其中從分組/信元數據的標題提取控制信息。
13.如權利要求12所述的裝置,其中轉發引擎將緩沖器地址信息提供給隊列管理器
14.如權利要求13所述的裝置,其中裝置用于在分組/信元數據被完全寫入到存儲器之前將轉發引擎結果送到隊列管理器,從而允許在分組/信元數據被完全寫入到存儲器之后立即開始讀出數據。
15.如權利要求13所述的裝置,其中裝置用于在分組/信元數據被完全寫入到存儲器之前開始分組/信元數據的讀出。
16.如權利要求15所述的裝置,其中裝置用于同步入口和出口的數據以保證不致過早開始分組/信元的讀取。
17.如權利要求16所述的裝置,其中裝置用于當確定分組/信元數據的最后比特已被寫入存儲器時,使轉發引擎將其所述結果傳送到隊列管理器。
18.如權利要求13所述裝置,其中將接收的分組/信元的緩沖器地址傳送給適當的出口I/O模塊。
19.如權利要求18所述裝置,其中通過將隊列管理器讀取的隊列數減少到支持特定I/O模塊而不是整個系統的所要求的隊列數,分布隊列。
20.如權利要求18所述裝置,其中為每個I/O口保持多個隊列并將隊列管理器分為多個獨立的子隊列管理器,每個子隊列管理器處理其相關的I/O模塊的隊列。
全文摘要
一種減少其中至少部分是由存儲器和總線訪問爭用所導致的系統等待時間的新穎的連網結構和技術,其中為每個I/O模塊提供一個分離數據處理和隊列管理轉發引擎以及隊列管理器,以處理分組/信元控制信息和沿分離路徑傳遞分組/信元的入隊和出隊,從而消除與其它資源的競爭,并與分組/信元傳送到存儲器和從存儲器傳送出分開進行。
文檔編號H04L12/56GK1267418SQ98807579
公開日2000年9月20日 申請日期1998年7月21日 優先權日1997年7月25日
發明者蒂姆·賴特, 彼得·馬爾科尼, 理查德·康林, 茲比格涅夫·歐帕爾卡 申請人:奈克瑟比特網絡有限責任公司