TWI246276B - Processor with packet processing order maintenance based on packet flow identifiers - Google Patents
Processor with packet processing order maintenance based on packet flow identifiers Download PDFInfo
- Publication number
- TWI246276B TWI246276B TW091134319A TW91134319A TWI246276B TW I246276 B TWI246276 B TW I246276B TW 091134319 A TW091134319 A TW 091134319A TW 91134319 A TW91134319 A TW 91134319A TW I246276 B TWI246276 B TW I246276B
- Authority
- TW
- Taiwan
- Prior art keywords
- processor
- packet
- context
- sequence
- packets
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/43—Assembling or disassembling of packets, e.g. segmentation and reassembly [SAR]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
- H04L49/253—Routing or path finding in a switch fabric using establishment or release of connections between ports
- H04L49/254—Centralised controller, i.e. arbitration or scheduling
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
(i) 1246276 玖、發明說明 (發明說明應敘明:發明所屬之技術領域、先前技術、内容、實施方式及圖式簡單說明) 發明領域 本發明通常係關於訊包處理系統,而尤其有關被配置以 執行此一系統内之訊包路由選擇、訊包交換及其他訊包處 理作業的一網路處理器或其他處理器類型。 發明背景
通常,一網路處理器控制例如一非同步傳輸模式(ATM) 網路或同步光纖網路(SONET)的一實體層部分之實體傳輸 媒體與一路由器或其他訊包交換器類型的一交換器結構間 之訊包流。這類路由器及交換器通常包括例如安排成線路 或埠卡的一陣列形式而且每一卡結合一或更多處理器的多 重網路處理器。
於一網路處理器中,維持進入或外向訊包的一適當處理 順序相當重要。例如,一網路處理器中的許多處理任務係 順序相依任務,其中一給定作業的結果為正確執行一後續 作業所需。這類作業通常由處理器的一或更多作業單元之 功能呼叫予以啟動。一給定作業單元包括多重執行單元, 各可以執行作業單元的作業。一作業單元類型之例子為執 行特殊計算作業以響應這類作業之需求的一計算單元。 於一網路處理器中維持一希望之功能呼叫順序的傳統技 術包括:功能呼叫調度之•聯化,或者涉及一單一執行單 元的·^純量途徑。 於串聯化途徑中,不同作業單元之功能呼叫係根據一指 定的功能呼叫順序,以一串列方式加以調度。換言之,決 1246276 ——— 發明說明續頁 定一適當的功能呼叫順序,然後以一 _列方式調度功能呼 叫,以便維持希望的順序。當一功能呼叫從另一功能呼叫 要求一結果時,於調度予一特殊作業單元前,前者單純地 等待到該結果可用為止。此途徑透過使用多重作業單元維 持平行性的某些優勢,但無法完全開拓此平行性而增加網 路處理器通量。 純量途徑藉由僅利用一單一作業單元而完全迴避維持一 適當處理順序的問題。雖然此途徑確實確保證一適當的處 理順序,但其同時藉由消除平行性所導致的任何增益而嚴 重限制網路處理器通量。 因此,以上所述之傳統途徑有缺陷,因為其無法提供最 大的網路處理器通量。當例如資料率為每秒25億位元(Gbs) 或其以上的高資料率時,此等缺陷逐漸明顯。 因此,需要以藉由較有效率地開拓處理器作業單元間之 平行性而增加處理器通量的一方式維持一網路處理器或其 他處理器類型中順序相依處理任務的一希望之功能呼叫順 序的改良式技術。 發明概要 本發明提供於包含一或更多作業單元的一網路處理器或 其他處理器中維持訊包處理的一希望之功能呼叫順序的改 良式技術。 根據本發_明的一方面,一種具有一訊包處理順序維持特 性之處理器包括:被操作以識別該處理器中接收之複數個 訊包其母' 訊包的一對應訊包流識別符之分類電路’被操 1246276 (3) 作以耦合至 該控制電路 處理器中一 別符的一或 引具有一給 根據本發 成與該處理 對應於一給 計數器,用 根據本發 該訊包的功 符。 上下文識 擇,使上下 訊包的上下 之接收訊包 優勢上, 作業單元所 圖式簡單說 圖1係實斗 實施例的一 - 圖2係根I 器的較詳細 發明說明續頁
該分類電路之控制電路,以及被操作以耦合至 的至少一作業單元。該控制電路被操作以維持 或更多順序相依處理任務於具有給定訊包流識 更多訊包之希望的功能呼叫順序的一方式,導 定訊包流識別符的一或更多訊包至作業單元。 明的另一方面,一或更多訊包流識別符各轉換 器相關之記憶體電路中的一唯一記憶體位置。 定訊包流識別符的唯一記憶體位置儲存至少一 以指定於一相關訊包流上執行的一些功能。 明之進一步方面,每一接收之訊包具有於發佈 能呼叫前在處理器内所指派的一上下文識別
別符將從例如256符記的一固定符記數中選 文識別符包含一 8位元識別符。指派予接收之 文識別符用以維持與一特殊訊包流識別符相關 的希望之功能呼叫順序。 本發明可藉由較佳開拓透過使用處理器之多重 提供的平行性而改良處理器通量。 明 ΐ本發明的一訊包處理系統其圖例說明之具體 簡化方塊圖。 ^本發明之技術所配置之圖1系統中一網路處理 檢視。 圖3圖例說明根據本發明之圖2處理器中的定序邏輯其定 1246276 (4) 發明說明續頁 序佇列及組態暫存器元件。 圖4以安裝於一路由器或交換器上一線路卡的一積體電 路圖例說明圖2之網路處理器的一可能實行。 發明詳細說明 此處結合包含以一特殊方式配置的一網路處理器之示範 訊包處理系統而圖例說明本發明。然而,應了解,本發明 較常應用於希望於處理器的一或更多作業單元中維持一特 殊訊包處理順序的任何處理器。 此處使用的一 π處理器π可舉例但不限於利用一微處理 器、中央處理單元(CPU)、數位信號處理器(DSP)、專用積 體電路(ASIC)或其他資料處理裝置類型,以及此等與其他 裝置的一部分和組合加以實行。 此處使用的π分類電路π名詞包括能夠執行一訊包或部分 訊包之至少一分類作業其至少一部分的一處理器或其他處 理電路類型的任何部分。分類作業的例子包括但不限於: 預分類、重組、優先、統計蒐集、排程、流量管理等。如 一較特殊的例子,以下所述之本發明的一圖例說明之具體 實施例包括:第一分類電路,例如一預分類器或其他第一 通行分類器,其被配置以執行一第一通行分類;以及一第 二分類電路,例如一第二通行分類器,其被配置以執行一 第二通行分類。本具體實施例中的第一通行分類通常包括 一訊包重組-作業的至少一部分,而且本具體實施例中的第 二通行分類通常包括一排程或流量管理作業的至少一部 分。例如一或更多分離之分類引擎的第一及第二分類電路 1246276 » * (5) 明ί明"ϊΐ 代表單一分類引擎的不同部分,或者被配置以提供此 處所述 < 處理作業其至少一部分的其他電路安排。 ,、圖例說明之具體實施例中的本發明藉由利用訊包流 Ί我別 ΙΑ- Ρ 、付、、隹持處理器其一或更多作業單元之訊包處理順序而 改良 Λ包處理系統中的處理器通量。 圖1顯示實行本發明的一訊包處理系統丨〇〇。系統1〇〇包括 八有 内邰圮憶體104的一網路處理器102。如所示,網路 處理器102耦合至一外部記憶體1〇6,而且被配置以提供一 網路108與一交換器結構i 1〇間用以通訊蜂窩、訊包或其他 訊包資料的一介面。處理器1〇2及其相關外部記憶體1〇6可 以一路由器或交換器的一線路卡或埠卡上安裝的一或更多 積體電路加以實#。於此一組態中,通常交換器結構11〇 將視為路由器或交換器的一部分。 應了解:圖1所π之系統元件的特殊安排僅為圖例說明 的例子。尤其,如前面所提到,本發明可以任何訊包處理 态類型實行,而不限於任何特殊的訊包處理應用。 圖2詳細顯示圖1的網路處理器1〇2。此具體實施例中的 網路處理器102包括一第一通行分類器2〇〇,其接收來自網 路108或交換器結構110的進入訊包資料。第一通行分類器 200耦合至一記憶體204及一第二通行分類器2〇2。記憶體 包含内部記憶體104、外部記憶體1〇6或兩者的至少一部分。 —第二通行分-類器202同時耦合至記憶體2〇4。第二通行分類 器202的一輸出至例如包括:排程電路、排隊電路、調度 電路等後續處理電路。 -10- 1246276 ____- 發明說明續頁
網路處理器進一步包括:一第一通行上下文指派元件 206、一佇列引擎208、定序邏輯210、一第二通行上下文指 派元件2 1 2及一第二通行就緒佇列2 14。至少第一通行分類 器200及第二通行分類器202耦合至用以提供此等元件與N 個作業單元222- 1、222-2、...222_1^間一介面的一功能匯流 排220。於本說明之具體實施例中,每一作業單元222-i, 其中i二1,2,...N,具有相關的一些執行引擎(EE)225-i, j, 其中j = 1, 2,...Μ。作業單元222-i可為以其相關執行引擎執 行第一及第二通行分類器之計算的計算單元。於本發明之 其他具體實施例中,網路處理器102的其他元件將耦合至 功能匯流排220。
圖2的第一通行分類器2 0 0可例如以執行一給定訊包之重 組作業、一同位檢查及一優先決定中至少其一的一預分類 器加以實行,而且第二通行分類器202例如以執行一排程 作業、一排隊作業及一調度作業中至少其一的一或更多分 類引擎加以實行。分類器200、202之一或兩者同時有可能 實行供排程及像是治安維護之其他流量管理功能用的統計 蒐集作業。分類器200、202的此等及其他作業可使用此項 技藝中已知技術以一傳統方式實行,因此此處不詳細說 明。 由第一通行分類器200接收的訊包資料包含使用併入第 一通行分類器2 0 0亦或與其相關之重組電路加以重組而形 成的給定訊包之蜂窩或其他部分。因此,此處使用之’’訊 包"一詞不僅意味包括一重組訊包,而且包括當被重組而 1246276 __—__ (Ίλ 發明說明續頁 即將形成一訊包時的一或更多蜂窩或其他訊包資料。 同時,如前面所指示,記憶體204的不同部分可例如以 圖1之内部記憶體104及外部記憶體106部分的分離記憶體而 非如圖2所示的一單一記憶體實行。如此處使用之”記憶 體電路” 一詞意味包括一分離記憶體及一較大記憶體的一 特殊部分,而且可指内部記憶體、外部記憶體或其組合。
應了解:如圖2所示之網路處理器102僅單純作為說明用 途,而且於一給定之具體實施例中將包括像是以上提到之 排程電路、調度電路及排隊電路的額外電路;一或更多記 憶體控制器;以及與網路1 08、交換器結構110及像是一相 關主機處理器之其他外部裝置介接的適當介面電路。此 外,處理器元件間的特殊連接僅為示範,例如,顯示雙向 的連接可為單向,顯示單向的連接可為雙向或單向,同時 可為未特殊顯示的其他連接等。
雖然圖2之具體實施例包括多重作業單元222,但本發明 可於僅包括一單一作業單元的一具體實施例中實行。此 外,與一給定作業單元相關的特殊執行引擎225數目可依 單元變化,而非如圖2之具體實施例,其每一單元均相同。 再者,雖然圖2中圖例說明的執行引擎於其相關作業單元 的外部,但亦可將其併入相關作業單元中。 圖3中圖例說明圖2之網路處理器1 02其定序邏輯2 1 0的一 部分。於圖-例說明之具體實施例中,定序邏輯包括含有Κ 個分離佇列302- 1、302-2、...302-Κ的一組定序佇列300,每 一佇列用以將一給定處理通行上一組不同的功能定序。於 -12- 1246276 (8) 發明說明續頁 圖例說明之具體實施例中的一適當K值為四,允許將四組 不同的功能定序。根據例子,如果一給定功能於第一及第 二通行分類上定序,則將利用四個定序佇列中的兩佇列提 供定序。 定序邏輯進一步包括含有L個分離組態暫存器3 12- 1、 312-2、...3 12-L的一組組態暫存器310,該組態暫存器組控 制於網路處理器102中將選擇作業單元222之執行引擎225所 執行的哪些功能定序。因此,其從組態暫存器3 1 0所指定 的功能中選擇使用定序佇列300定序的功能組。每一定序 佇列302可能有二或更多組態暫存器3 12,例如,如果有四 個定序佇列,則一適當的組態暫存器數目為八。當然,定 序佇列及組態暫存器的特殊數目為實行中所指定,而且取 決於像是指定一功能需要多少位元以及每一組態暫存器中 有多少位元等因子而變化。 於像是處理器102的一網路處理器中執行的特殊功能為 此項技藝中已知,因此此處不詳細說明。本發明不限於所 執行的特殊功能,而通常為較適合用於以維持處理器中一 或更多順序相依處理任務於一或更多訊包之希望的功能呼 叫順序。每一順序相依處理任務通常要求執行多重功能, 因而涉及作業單元222及其相關執行引擎225的多重功能呼 叫。通常,與訊包資料之處理及發佈以及於功能匯流排220 上調度等相關的任何功能均可使用本發明的技術加以定 序。 應注意,圖3之定序邏輯2 1 0的至少一部分可於記憶體204 1246276 (ΟΛ 發明說明續頁 内實行,例如,定序佇列組300及組態暫存器組3 1 0各可以 處理器102之記憶體204内的特殊記憶體位置加以實行。
現在參照涉及由第一通行分類器200重組為此處亦稱為 通訊協定資料單元(P D U)的訊包之蜂窩處理的一特殊圖例 說明具體實施例而說明網路處理器1 02的作業。本具體實 施例中的第一通行分類器被配置以決定每一訊包的一對應 訊包流識別符。訊包流識別符可以此項技藝中已知的一方 式,從蜂窩標頭中擷取。 一或更多訊包流識別符各可轉換成記憶體204或者與網 路處理器1 02相關之其他記憶體電路中的一唯一記憶體位 置。對應於一給定訊包流識別符的唯一記憶體位置可被配 置以儲存至少一計數器,指定於一相關訊包流上執行的一 些功能。有關給定訊包流之處理的其他資訊亦可儲存於該 唯一記憶體位置中。
以上提到的計數器可用以計數每一上下文及每一有序功 能組的有序功能數目。然後計數結果可達成一上下文之生 命中發佈多次的一功能之定序。例如,於處理期間希望延 遲一或更多較晚訊包的功能呼叫,直到一較早訊包發佈至 少某指定的最小功能呼叫數為止。以防止較晚訊包超前較 早訊包太遠。 本具體實施例中,顯示包含圖2中一或更多元件206、208、 2 1 0、2 12及-2 1 4之網路處理器1 02的控制電路被操作以維持 處理器中一或更多順序相依處理任務於具有給定訊包流識 別符的多重訊包之希望的功能呼叫順序的一優勢方式,導 -14 - 1246276 發明說明績頁 (10) 引具有一給定訊包流識別符的一或更多訊包至適當作業單 元222。π控制電路"一詞應解釋為包含能夠根據訊包流識 別符以於處理器102中維持一希望之功能呼叫順序的一方 式提供訊包導引的任何處理元件安排,因此不應解釋為其 要求如圖2所示之元件206、208、210、2 12及2 14的特殊安排。
如圖例說明之具體實施例中的本發明之處理順序維持特 性可用以保證第一通行或第二通行上下文抑或兩者對某些 預先定義功能或功能組之呼叫將以一適當順序於功能匯流 排220上表達。對於第一通行上下文,其表示:功能呼叫 將以與第一通行上下文指派元件206指派予對應蜂窩之第 一通行上下文識別符相同的順序於功能匯流排2 2 0上表 達。其對應於蜂窩”於導線上〃到達網路處理器102之輸入 的順序,而且此種相關功能呼叫順序之維持於此處稱為上 下文導線定序。對於第二通行上下文,功能呼叫將以與第 二通行上下文指派元件2 12指派予第二通行上下文識別符 相同的順序於功能匯流排220上表達。其對應於PDU於第一 通行就緒佇列2 1 4中定序進而遞送予第二通行分類器202的 一順序。 於本圖例說明之具體實施例中,當蜂窩到達第一通行分 類器200時,元件206以數值順序指派第一通行上下文識別 符。以數值順序指派並非本發明的需求。通常,第一通行 上下文識別-符可以一不同的順序指派,其中使用適當電路 追蹤指派順序。上下文識別符於此處亦簡稱為π上下文π, 而且其例子包括像是上下文0,上下文1,上下文2等數值 -15 - 1246276 發明說明續頁 (ii) 識別符。
較佳者,從一固定符記數中選擇上下文識別符。例如, 如果固定符記數為256,則上下文識別符可為一 8位元識別 符。因此,具有相同訊包流識別符的蜂窩將具有元件206 指派的不同上下文識別符,而且此等上下文識別符可用於 佇列引擎208及定序邏輯2 1 0中增強具有一特殊訊包流識別 符之蜂窩間的一上下文導線定序。佇列引擎208以數值順 序釋放指派的第一通行上下文,而且元件206根據上下文 導線定序以數值順序重新指派,以增強希望的功能呼叫順 序。
於一給定PDU之第一通行分類完成後,佇列引擎208接收 來自第一通行分類器200的PDU,而且將放置於第二通行就 緒佇列214。PDU根據第二通行就緒佇列214中之定序被遞 送至第二通行分類器202。當一給定PDU從第二通行就緒佇 列2 14被遞送至第二通行分類器202時,第二通行上下文指 派元件212指派一第二上下文識別符予PDU。指派予PDU的 第二通行上下文識別符可能超出數值順序範圍。佇列引擎 208保留一空閒的第二通行上下文識別符清單,而且於PDU 開始第二通行分類時,將其指派予PDU。定序邏輯2 1 0追蹤 發佈第二通行上下文的順序,並根據該定序增強有序功 能。 雖然圖式-中所示為分離元件,但圖2之上下文指派元件 206、212可併入網路處理器102的相關元件中。例如,第一 通行上下文指派元件206可併入第一通行分類器電路或相 -16 - 1246276 發明說明續頁 (12) 關控制電路,而且第二通行上下文指派元件2 1 2可併入定 序邏輯210或佇列引擎208。 如前面所指示,圖3之定序佇列300組有可能用以將一組 功能分組於一起而定序。例如’該組3 0 0中每一定序仔列3 0 2 可將四個功能定序,而形成一給定的有序功能組fSet如下: fSet=fOne+fTwo+fThree+fFour
其中,f〇ne,fTwo,fThree,fFour為獨立功能。通常,屬於 一有序佇列中一功能組之任何已發佈功能係於該佇列中定 序。應注意,以上例子中使用的四個功能僅為圖例說明。 本發明對一功能組的功能數目不要求以任何特殊限制。
該等功能可程式化選定於第一通行上下文或第二通行上 下文抑或兩者中定序。如果一功能必需於第一通行及第二 通行上下文中定序,則最多將使用兩個功能定序佇列302。 應注意,於上述圖例說明之具體實施例中,第一及第二通 行上下文之間沒有定序。取而代之,如果處理器1 02已配 置,則一給定功能可於第一通行處理中定序,而且如果處 理器1 02已配置,則該給定功能可於第二通行處理中定序。 然而,其並非本發明的一要求,而且所述技術可將多重上 下文定序,例如,將第一通行以及第二通行處理定序。 於一上下文之生命中,同時有可能將相同的呼叫發佈一 次以上。於圖例說明之具體實施例中,定序邏輯2 1 0僅將 該功能的第-一發佈定序。於上下文終止前,後續呼叫的相 同有序功能將不定序,取而代之,一旦發佈,則於功能匯 流排220上送出,不管順序。再次強調,其並非本發明的 -17- 1246276 (13) 發明說明續頁 一要求’而且於一上下文終止前,所述技術可將一功能定 序多次。 如果定序邏輯2丨〇於等待該上下文的一有序功能時偵測 得一上下文的終止,則停止等待該上下文的有序功能,而 且依序釋放"其後”的上下文。基本上,定序邏輯增強功能 匯流> 排220上表達之功能的定序,以符合上下文開始的順 序。如果於接收一上下文的一有序功能前該上下文終止, 則足序邏輯決定沒有該上下文的有序功能發佈,而且停止 等待。 例如此處以fUnblockOrderQueues圖例說明的一特殊功能可 用以導引定序邏輯210將發佈該功能之上下文的定序佇列 302解塊。一旦一上下文發佈fUnblockOfderQueues功能,則 該上下文的其他功能將不定序,直到該上下文終止而且重 新發佈為止。 對於被定義於第二通行上下文定序之功能,定序邏輯21〇 可被配置而當執行定序時不考慮優先位準。其將簡化硬體 設計。然而,表示:如果較低優先PDU於較高優先PDU之 前開始,則一較低優先PDU將一較高優先PDU編塊。 欲定序之功能可使用結合圖3組態暫存器組3 1 0所述之組 態暫存器控制以外的技術加以指定。例如,可將欲定序的 一組功能定義為例如對應於像是功能5 1 1-256的一上功能空 間之特定功-能空間,或者可映射至例如功能255- 0的一下功 能空間,而且映射的功能為有序。通常,較佳者,組態暫 存器途徑之使用不衝擊未來的功能指派。 -18- 1246276 發明說明續頁 (14) 即使於上述組態暫存器途徑的一般上下文内,同樣可使 用其他技術指定一功能組中欲定序的功能。例如,可透過 使用遮罩,將像是最後三位元設定為00 1之類顯示一特殊 位元型樣的每一功能指派於一組。
現在參照一些例子詳細說明定序邏輯2 1 0的作業。應了 解,以下給定之例子僅作說明用途,而不必將其解釋為限 制本發明範圍的任何方式。本發明之其他具體實施例可以 上述以外的一方式作業。於此等例子中,假設於定序佇列 300組中有四個分離之定序佇列302- 1、32-2、302-3及302-4。 定序佇列增強一特殊佇列内的定序,亦即其係對一給定功 能或功能組,而非對不同佇列間。例如,假設以下功能係 以以下順序從第一通行分類器200或第二通行分類器202發 佈,而且指派上下文0於上下文1之前:
上下文1上的有序功能1 上下文0上的有序功能1 上下文0上的有序功能2 上下文1上的有序功能2 定序邏輯2 1 0被配置以確保:上下文0上的有序功能1於 上下文1之前在功能匯流排220發佈。然而,於圖例說明之 具體實施例中,定序邏輯並未確保:上下文0上的有序功 能2於上下文1上的有序功能1之前在功能匯流排220發佈。 如果一上-下文上並未發佈一有序功能,則當該上下文上 發佈例如一 fQueue,fQueueEOF,或fTransmit功能的一上下 文終止功能或者以上提到的fUnblockOrderQueues功能時,定 -19 - 發明說明續頁 1246276 (1)) 序遂輯2 1 0釋放跟隨該上下文之後的上下文。考慮以下例 子,其中假設以數值順序指派上下文,亦即上下文〇、上 下文1、上下文2的順序: 上下文1的有序功能1 上下文2的有序功能1 上下文0發佈的fQueue
定序邏輯2 1 0接收上下文1及2上的有序功能1,並加以保 留,等待發佈上下文0上的有序功能1。當上下文0上發佈 fQueue功能時’定序遂輯於功能匯流排220 (以其順序)發 佈上下文1及2上的有序功能1。上下文0上的fQueue功能基 本上告訴定序邏輯:上下文〇上的工作已經完成,而且已 將上下文轉回自由池。該上下文上沒有額外功能通過定序 传列’直到從該自由池重新指派予一新蜂窩為止。如果於 一上下文接收一 fUnblockOrderQueues功能,則直到上下文(例 如:由一 fQueue功能)終止為止,該上下文上發佈的任何 後績功能均不定序。其他上下文終止功能類型例如包括: 圖例表示為fQueueEOF的一特定功能結束(E〇F)功能,或者 圖例表示為fTransmit的一傳輸功能。 圖暫存器31G組中每-組態暫存器312被配置以定義: (、)万、相關的足序仔列3Q2中定序的最多-指定最大數目 之功此’例如:四個功能.门、a ^ , ’(2)疋·義為屬於該彳宁列的一些 有政功能,-例如:功能〇至 〜 4,以及(3)該等功能於第一通行 或者第二通行上下文定序。一此 7 ^ ^ -π* ^ 二通當格式中的任何格式可 W將此種或豆他類似資# 知 ,、 、, 〃 Λ储存於組態暫存器組3 10的組 -20- 1246276 發明說明續頁 (16) 態暫存器3 1 2中。 應再次強調:定序邏輯210及其相關定序佇列組300與組 態暫存器組3 1 0之作業與組態的前述說明僅作為一例子。 熟習此項技藝者將了解:許多替代安排可用以實行本發 明。
圖4圖例說明圖1之系統1 00其一部分的一示範路由器或 交換器線路卡具體實施例。於本具體實施例中,處理系統 包含具有至少一積體電路402安裝於其中的一線路卡400。 積體電路402包含具有内部記憶體1 04的網路處理器1 02。網 路處理器102與線路卡400上的外部記憶體106互動。外部記 憶體106例如當作網路處理器積體電路的一外部樹記憶 體。以上所提到的主機處理器亦可安裝於線路卡400上。
為了清楚地說明,可考慮將如圖4所示的處理系統部分 簡化。然而,顯然,該處理系統可包含其中包括多重這類 線路卡的一路由器或交換器,而且每一線路卡可包括多重 積體電路。一類似具體實施例可以一埠卡形式實行。 本發明之上述具體實施例僅為圖例說明。例如,雖然圖 2中圖例說明之具體實施例利用分離的第一通行及第二通 行分類器,亦即第一通行分類器200及第二通行分類器202, 但其他具體實施例可將此等元件的功能組合成一單一分類 引擎、分類引擎組或者其他分類電路類型。本發明的以上 下文識別符-為基礎之定序可於第一通行上下文、第二通行 上下文或第一及第二通行上下文,以及單一或多重上下文 的其他安排中提供。取決於本發明的一給定具體實施例中 -21- 1246276 發明說明續頁 (17)
利用的處理安排,網路處理器102中利用的特殊控制電路 可能變化。此外,雖然於上述具體實施例中,圖例說明的 記憶體204至少部分於網路處理器内部,但其僅為例子。 其他具體實施例可使用不同的内部或外部記憶體電路組態 類型實行所述功能。再者,如前面所述,取決於處理應用, 例如經由一主機處理器於軟體控制下,分類電路的特殊分 類作業可能變化。熟習此項技藝者將可明白以下申請專利 範圍内的此等以及許多其他替代具體實施例。 圖式代表符號說明
100 封 包 處 理 系 統 102 處 理 器 104 内 部 記 憶 體 106 外 部 記 憶 體 108 網 路 110 交 換 器 結 構 200 第 一 通 行 分 類 器 202 第 -- 通 行 分 類 器 204 記 憶 體 206 第 一 通 行 上 下 文 指 派 208 佇 列 引 擎 210 定 序 邏 輯 212 第 二 通 行 上 下 文 指 派 214 第 --- 通 行 就 緒 佇 列 220 功 能 匯 流 排 -22 - 1246276 (18) 發明說明續頁 222-1, 222-2, 222-N 302-1, 302-2, 302-3, 302-K 225-1,1; 225-UM; 225-2,1; 225-2,Μ; 225-Ν,Ι; 225-Ν,Μ 312-1, 312-2, 312-L 400 402 作業單元 定序列 執行引擎 組態暫存器 路由器或交換器線路卡 積體電路
-23 -
Claims (1)
1246276 拾、申請專利範圍 1. 一種處理器,包含: 分類電路,被操作以識別處理器中接收之複數個訊包 其每一訊包的一對應訊包流識別符; 控制電路,被操作以耦合至該分類電路;以及 至少一作業單元,被操作以耦合至該控制電路;
其中該控制電路被操作以維持處理器中一或更多順序 相依處理任務於具有給定訊包流識別符的一或更多訊包 之希望的功能呼叫順序的一方式,導引具有一給定訊包 流識別符的一或更多訊包至至少一作業單元。 2. 如申請專利範圍第1項之處理器,其中一或更多訊包流 識別符各轉換成與該處理器相關之記憶體電路中的一唯 一記憶體位置。
3. 如申請專利範圍第2項之處理器,其中對應於一給定訊 包流識別符的唯一記憶體位置儲存至少一計數器,用以 指定於一相關訊包流上執行的一些功能。 4. 如申請專利範圍第1項之處理器,其中控制電路被操作 以決定於一特殊處理區間期間,於具有相同訊包流識別 符的多重訊包上是否執行與一特殊順序相依處理任務相 關的一個以上功能。 5. 如申請專利範圍第4項之處理器,其中如果於一特殊處 理區期間,於具有相同訊包流識別符的多重訊包上執行 與一特殊順序相依處理任務相關的一個以上功能,則控 制電路維持有關該特殊順序相依處理任務的希望之功能 1246276 t 申請專利範圍績頁 呼叫順序。 6. 如申請專利範圍第4項之處理器,其中如果於一特殊處 理區間期間,於具有相同訊包流識別符的多重訊包上並 未執行與一特殊順序相依處理任務相關的一個以上功 能,則控制電路准許有關該特殊順序相依處理任務的一 任意功能呼叫順序。
7. 如申請專利範圍第I項之處理器,其中於該訊包之功能 呼叫發佈前,處理器内指派予每一接收的訊包一上下文 識別符。 8. 如申請專利範圍第7項之處理器,其中具有相同訊包流 識別符的一組給定訊包具有不同的指派之上下文識別 符。 9. 如申請專利範圍第7項之處理器,其中指派予接收訊包 的上下文識別符用以維持與一特殊訊包流識別符相關之 接收訊包的希望之功能呼叫順序。
10. 一種於一處理器中用以處理訊包之方法,該方法包含以 下步驟: 識別處理器中接收之複數個訊包其每一訊包的一對應 訊包流識別符;以及 以維持該處理器中一或更多順序相依處理任務於具有 給定訊包流識別符的一或更多訊包之希望的功能呼叫順 序的一方式,導引具有一給定訊包流識別符的一或更多 訊包至處理器的至少一作業單元。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/032,025 US7088719B2 (en) | 2001-12-21 | 2001-12-21 | Processor with packet processing order maintenance based on packet flow identifiers |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200303667A TW200303667A (en) | 2003-09-01 |
TWI246276B true TWI246276B (en) | 2005-12-21 |
Family
ID=21862699
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW091134319A TWI246276B (en) | 2001-12-21 | 2002-11-26 | Processor with packet processing order maintenance based on packet flow identifiers |
Country Status (6)
Country | Link |
---|---|
US (1) | US7088719B2 (zh) |
EP (1) | EP1326400B1 (zh) |
JP (2) | JP4307829B2 (zh) |
KR (1) | KR100945103B1 (zh) |
DE (1) | DE60222233T2 (zh) |
TW (1) | TWI246276B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI487318B (zh) * | 2007-09-07 | 2015-06-01 | Broadcom Corp | 用於在無線通信系統內傳送資訊的系統和方法 |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002071220A1 (en) * | 2001-03-05 | 2002-09-12 | Sanpro Systems Inc. | A system and a method for asynchronous replication for storage area networks |
US7349398B1 (en) * | 2001-12-31 | 2008-03-25 | Redback Networks, Inc. | Method and apparatus for out-of-order processing of packets |
EP1554842A4 (en) * | 2002-08-30 | 2010-01-27 | Corporation Broadcom | SYSTEM AND METHOD FOR TREATING FRAMES OUTSIDE THE ORDER |
US7349399B1 (en) * | 2002-09-20 | 2008-03-25 | Redback Networks, Inc. | Method and apparatus for out-of-order processing of packets using linked lists |
US7840696B2 (en) * | 2003-07-25 | 2010-11-23 | Broadcom Corporation | Apparatus and method for classifier identification |
JP2008524916A (ja) | 2004-12-21 | 2008-07-10 | テレフオンアクチーボラゲット エル エム エリクソン(パブル) | 通信システムにおけるパケットフローに関する装置及び方法 |
CN100459575C (zh) * | 2005-11-10 | 2009-02-04 | 中国科学院计算技术研究所 | 一种网络处理器中维护ip分组出入顺序的方法 |
US7801144B2 (en) * | 2006-03-31 | 2010-09-21 | Agere Systems Inc. | Switch-based network processor |
KR200449326Y1 (ko) * | 2008-06-12 | 2010-07-01 | 이종백 | 집속레일 결속용 파이프와이어클립 |
US8505013B2 (en) * | 2010-03-12 | 2013-08-06 | Lsi Corporation | Reducing data read latency in a network communications processor architecture |
US9444757B2 (en) | 2009-04-27 | 2016-09-13 | Intel Corporation | Dynamic configuration of processing modules in a network communications processor architecture |
US9461930B2 (en) | 2009-04-27 | 2016-10-04 | Intel Corporation | Modifying data streams without reordering in a multi-thread, multi-flow network processor |
US9104478B2 (en) | 2012-06-15 | 2015-08-11 | Freescale Semiconductor, Inc. | System and method for improved job processing of a number of jobs belonging to communication streams within a data processor |
US9286118B2 (en) | 2012-06-15 | 2016-03-15 | Freescale Semiconductor, Inc. | System and method for improved job processing to reduce contention for shared resources |
US9632977B2 (en) * | 2013-03-13 | 2017-04-25 | Nxp Usa, Inc. | System and method for ordering packet transfers in a data processor |
CN114827054A (zh) * | 2021-01-29 | 2022-07-29 | 阿里巴巴集团控股有限公司 | 加速单元、相关装置和路径选择方法 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4761733A (en) * | 1985-03-11 | 1988-08-02 | Celerity Computing | Direct-execution microprogrammable microprocessor system |
JPH02244852A (ja) * | 1989-03-17 | 1990-09-28 | Hitachi Ltd | パケット処理装置 |
FI104672B (fi) | 1997-07-14 | 2000-04-14 | Nokia Networks Oy | Kytkinjärjestely |
US6389468B1 (en) * | 1999-03-01 | 2002-05-14 | Sun Microsystems, Inc. | Method and apparatus for distributing network traffic processing on a multiprocessor computer |
US6765909B1 (en) * | 1999-04-22 | 2004-07-20 | Nortel Networks Limited | Method and apparatus for providing support for multiple QoS levels within a third generation packet data session |
US6721309B1 (en) | 1999-05-18 | 2004-04-13 | Alcatel | Method and apparatus for maintaining packet order integrity in parallel switching engine |
US7600131B1 (en) | 1999-07-08 | 2009-10-06 | Broadcom Corporation | Distributed processing in a cryptography acceleration chip |
US6766381B1 (en) | 1999-08-27 | 2004-07-20 | International Business Machines Corporation | VLSI network processor and methods |
US6661794B1 (en) | 1999-12-29 | 2003-12-09 | Intel Corporation | Method and apparatus for gigabit packet assignment for multithreaded packet processing |
US6381242B1 (en) * | 2000-08-29 | 2002-04-30 | Netrake Corporation | Content processor |
US7882257B2 (en) * | 2000-12-29 | 2011-02-01 | Avaya Inc. | Stream processing node |
US6957258B2 (en) * | 2001-03-28 | 2005-10-18 | Netrake Corporation | Policy gateway |
US20030061269A1 (en) * | 2001-09-17 | 2003-03-27 | Flow Engines, Inc. | Data flow engine |
-
2001
- 2001-12-21 US US10/032,025 patent/US7088719B2/en not_active Expired - Fee Related
-
2002
- 2002-11-25 DE DE60222233T patent/DE60222233T2/de not_active Expired - Lifetime
- 2002-11-25 EP EP02258103A patent/EP1326400B1/en not_active Expired - Lifetime
- 2002-11-26 TW TW091134319A patent/TWI246276B/zh not_active IP Right Cessation
- 2002-12-17 JP JP2002364517A patent/JP4307829B2/ja not_active Expired - Fee Related
- 2002-12-21 KR KR1020020082065A patent/KR100945103B1/ko not_active IP Right Cessation
-
2009
- 2009-01-23 JP JP2009012619A patent/JP2009081897A/ja not_active Ceased
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI487318B (zh) * | 2007-09-07 | 2015-06-01 | Broadcom Corp | 用於在無線通信系統內傳送資訊的系統和方法 |
Also Published As
Publication number | Publication date |
---|---|
DE60222233T2 (de) | 2008-06-12 |
KR100945103B1 (ko) | 2010-03-02 |
US7088719B2 (en) | 2006-08-08 |
EP1326400B1 (en) | 2007-09-05 |
EP1326400A2 (en) | 2003-07-09 |
JP4307829B2 (ja) | 2009-08-05 |
TW200303667A (en) | 2003-09-01 |
JP2003198601A (ja) | 2003-07-11 |
EP1326400A3 (en) | 2004-03-24 |
US20030118023A1 (en) | 2003-06-26 |
DE60222233D1 (de) | 2007-10-18 |
KR20030053449A (ko) | 2003-06-28 |
JP2009081897A (ja) | 2009-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI246276B (en) | Processor with packet processing order maintenance based on packet flow identifiers | |
US8005092B2 (en) | Two-dimensional pipelined scheduling technique | |
US6856622B1 (en) | Multicast cell scheduling protocol | |
JP2981082B2 (ja) | パケットセルスケジューリング装置 | |
US7453898B1 (en) | Methods and apparatus for simultaneously scheduling multiple priorities of packets | |
US20080240140A1 (en) | Network interface with receive classification | |
US7830903B2 (en) | Method and apparatus for scheduling packets and/or cells | |
US7184443B2 (en) | Packet scheduling particularly applicable to systems including a non-blocking switching fabric and homogeneous or heterogeneous line card interfaces | |
US9319352B1 (en) | Efficient message switching in a switching apparatus | |
CN100490383C (zh) | 一种支持多优先级的高速Crossbar调度方法 | |
US20070133585A1 (en) | Method and device for scheduling interconnections in an interconnecting fabric | |
EP1335540B1 (en) | Communications system and method utilizing a device that performs per-service queuing | |
US20040120321A1 (en) | Input buffered switches using pipelined simple matching and method thereof | |
US7486687B2 (en) | Method and allocation device for allocating pending requests for data packet transmission at a number of inputs to a number of outputs of a packet switching device in successive time slots | |
US20060062231A1 (en) | Packet switching system | |
KR100508546B1 (ko) | 가중치를 갖는 라운드 로빈 방식의 스케쥴링 시스템 및 방법 | |
James et al. | A 40 Gb/s packet switching architecture with fine-grained priorities | |
Hashemi et al. | A RAM-based generic packet switch with scheduling capability |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |