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 PDF

Info

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
Application number
TW091134319A
Other languages
English (en)
Other versions
TW200303667A (en
Inventor
David Allen Brown
Mauricio Calle
Abraham Prasad
Original Assignee
Agere Systems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Agere Systems Inc filed Critical Agere Systems Inc
Publication of TW200303667A publication Critical patent/TW200303667A/zh
Application granted granted Critical
Publication of TWI246276B publication Critical patent/TWI246276B/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/43Assembling or disassembling of packets, e.g. segmentation and reassembly [SAR]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/253Routing or path finding in a switch fabric using establishment or release of connections between ports
    • H04L49/254Centralised 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. 一種於一處理器中用以處理訊包之方法,該方法包含以 下步驟: 識別處理器中接收之複數個訊包其每一訊包的一對應 訊包流識別符;以及 以維持該處理器中一或更多順序相依處理任務於具有 給定訊包流識別符的一或更多訊包之希望的功能呼叫順 序的一方式,導引具有一給定訊包流識別符的一或更多 訊包至處理器的至少一作業單元。
TW091134319A 2001-12-21 2002-11-26 Processor with packet processing order maintenance based on packet flow identifiers TWI246276B (en)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI487318B (zh) * 2007-09-07 2015-06-01 Broadcom Corp 用於在無線通信系統內傳送資訊的系統和方法

Families Citing this family (16)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (1)

* Cited by examiner, † Cited by third party
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