JP2002198999A - Non-blocking and multi-context pipeline system processor - Google Patents

Non-blocking and multi-context pipeline system processor

Info

Publication number
JP2002198999A
JP2002198999A JP2001328679A JP2001328679A JP2002198999A JP 2002198999 A JP2002198999 A JP 2002198999A JP 2001328679 A JP2001328679 A JP 2001328679A JP 2001328679 A JP2001328679 A JP 2001328679A JP 2002198999 A JP2002198999 A JP 2002198999A
Authority
JP
Japan
Prior art keywords
packet
processing
packet data
logical block
processor
Prior art date
Legal status (The legal status 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 status listed.)
Withdrawn
Application number
JP2001328679A
Other languages
Japanese (ja)
Inventor
Werner Van Hoof
ウエルナー・フアン・ホーフ
Jerrold Wheeler
ジエロルド・ホイーラー
Mathieu Tallegas
マシユー・トーレガス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nokia of America Corp
Original Assignee
Alcatel Internetworking PE 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 Alcatel Internetworking PE Inc filed Critical Alcatel Internetworking PE Inc
Publication of JP2002198999A publication Critical patent/JP2002198999A/en
Withdrawn legal-status Critical Current

Links

Abstract

PROBLEM TO BE SOLVED: To provide a packet processor optimizing the processing ability by processing plural pipelines in parallel in various stages in a pipeline system. SOLUTION: In each stage, plural packets are processed internally by a sub-processor in the pipeline system. In an embodiment, packets are processed in a round robin system. When a particular packet is processed in a particular stage, the packet can move to the next stage passing other packets which have not completed the process. In another embodiment, a packet is continues by processed until a conditional branch command to cause a potential function stop or any other command happen. When such a command happens, a next usable packet is selected and processed instead of wasting the processing cycles during the function stop or processing the present packet based on the expected result.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】関連出願の相互参照本出願
は、2000年11月7日に申請の「High Spe
ed Network Processor」と題する
米国仮出願第60/246447号および2001年3
月23日に申請の「Non−Blocking、Mul
ti−Context Pipelined Proc
essor」と題する米国仮出願第60/278310
号の特典を請求し、その内容を参照により本明細書に組
み込む。
BACKGROUND OF THE INVENTION This application is filed on Nov. 7, 2000, entitled "High Speed
Provisional Application No. 60 / 246,647, entitled "ed Network Processor" and March 2001.
"Non-Blocking, Mul
ti-Context Pipelined Proc
Provisional Application No. 60/278310 entitled "Essor"
Claim the benefits of the issue, the contents of which are incorporated herein by reference.

【0002】本発明は、一般にデータネットワークにお
けるパケット交換コントローラに関し、より詳細には、
着信データパケットを処理する際にパイプライン方式パ
ケットプロセッサの使用量を最大化することに関する。
[0002] The present invention relates generally to packet switched controllers in data networks, and more particularly to
It relates to maximizing the use of pipelined packet processors when processing incoming data packets.

【0003】[0003]

【従来の技術】レガシパケットプロセッサは、第1のパ
ケットデータのすべての処理タスクを完了した後、第2
のパケットデータの処理を開始する。従来のパイプライ
ン方式パケットプロセッサは、第1のパケットデータの
処理を完了する前に、処理を第2のパケットデータにつ
いて開始することを可能にすることによって、レガシパ
ケットプロセッサに関係したストリームライン方式パケ
ット処理を行う。そのような従来のパイプライン方式
は、一般にパイプラインの異なるステージで個別に実行
される異なる組の処理タスクを実施すること、つまり異
なるステージで異なるパケットを並行して処理すること
によって達成される。
2. Description of the Related Art After completing all processing tasks for a first packet data, a legacy packet processor
Of packet data is started. A conventional pipelined packet processor may provide a streamlined packet processor associated with a legacy packet processor by allowing processing to begin on a second packet data before completing the processing of the first packet data. Perform processing. Such a conventional pipeline strategy is generally achieved by performing different sets of processing tasks that are performed individually at different stages of the pipeline, ie, processing different packets in parallel at different stages.

【0004】記述した従来のパイプライン方式のパケッ
ト処理の1つの問題は、ステージがブロッキング状態で
あることである。具体的には、処理パイプラインの速度
は、そのチェーンの最も遅いパケットの速さでしかな
い。現行ステージで早く処理が完了したパケットは、そ
の次のステージが他のフレームの処理中の場合、一般に
次のステージへの進行を待たなければならない。すなわ
ち、現ステージの処理能力は、次のステージの処理の完
了を待つ間、十分に活用されなくなる可能性がある。
[0004] One problem with the described conventional pipelined packet processing is that the stages are blocking. Specifically, the speed of the processing pipeline is only as fast as the slowest packet in the chain. A packet that has been processed earlier in the current stage generally has to wait for progress to the next stage if the next stage is processing another frame. That is, the processing capacity of the current stage may not be fully utilized while waiting for the completion of the processing of the next stage.

【0005】従来のプロセッサ技術の他の問題は、一般
に各ステージのパケット処理の間に実行される条件付き
分岐命令を実行することにある。条件付き分岐命令は、
「if<条件>then<条件>」の形を取る。分岐条
件が真か否かの決定には、一般にその情報が取り出さ
れ、解読され、実行され、書き込まれる間のいくつかの
プロセッササイクルが必要とされる。続いて実行される
その次の条件付き分岐命令は、その前の分岐条件の結果
次第なので、従来のプロセッサは、実際に結果が戻るま
でいくつかのプロセッササイクルを待つか、または予測
結果に基づいて処理を続行するかのいずれかである。こ
れらの解決策は両方とも、かなりの時刻的なマイナスと
なる可能性がある。実際の結果を待つ場合、実質的には
処理を遅延させる可能性があり、一方予測結果に基づい
て処理する場合、後で除かれる必要が生じうる誤った命
令をロードすることになる可能性がある。
Another problem with conventional processor technology is in executing conditional branch instructions, which are generally executed during each stage of packet processing. Conditional branch instructions are:
It takes the form of "if <condition> then <condition>". Determining whether a branch condition is true generally requires several processor cycles while the information is retrieved, decoded, executed, and written. Since the next conditional branch instruction to be executed depends on the result of the previous branch condition, conventional processors either wait several processor cycles until the result is actually returned, or based on the predicted result. Either continue processing. Both of these solutions can be quite negative in time. Waiting for actual results can effectively delay processing, while processing based on predicted results can result in loading erroneous instructions that may need to be removed later. is there.

【0006】したがって、改良されたスループットと処
理効率をもつパケットプロセッサが必要とされている。
そのようなプロセッサの処理能力は、次のステージが使
用可能になるのを待ちおよび/または分岐条件の結果を
待つ間にも、十分に利用されないことがないようにすべ
きである。同時に、そのようなプロセッサは、条件誤予
測のリスクを受けやすくないものであるべきである。
[0006] Therefore, there is a need for a packet processor with improved throughput and processing efficiency.
The processing power of such a processor should not be underutilized while waiting for the next stage to become available and / or for the outcome of a branch condition. At the same time, such processors should not be susceptible to the risk of mispredictions.

【0007】[0007]

【発明が解決しようとする課題】本発明は、種々のパイ
プラインステージ内で複数のパケットを並行処理するパ
ケットプロセッサのパケット処理能力を効果的に利用す
ることに取り組んでいる。
SUMMARY OF THE INVENTION The present invention addresses the efficient use of the packet processing capabilities of packet processors that process multiple packets in parallel in various pipeline stages.

【0008】[0008]

【課題を解決するための手段】本発明の一実施形態で
は、パケットプロセッサは、複数の論理ブロック(ステ
ージとも呼ばれる)を含む。パケットプロセッサの第1
の論理ブロックは、パケットデータに対して1つまたは
複数の処理動作を行い、第2の論理ブロックは、第1の
論理ブロックから出力されたパケットデータに応答して
パケットデータに対して1つまたは複数の処理動作を行
う。前記第1または第2の論理ブロックの少なくとも1
つが、時刻Tで入力されたパケットデータに応答してパ
ケットデータを前記少なくとも1つの論理ブロックに出
力する前に、t>0の時刻T+tで入力されたパケット
データに応答してパケットデータを前記少なくとも1つ
の論理ブロックへ出力することが好ましい。
SUMMARY OF THE INVENTION In one embodiment of the present invention, a packet processor includes a plurality of logical blocks (also called stages). The first of packet processors
Performs one or more processing operations on the packet data, and the second logical block performs one or more operations on the packet data in response to the packet data output from the first logical block. Perform multiple processing operations. At least one of the first or second logical blocks
Before outputting the packet data to the at least one logical block in response to the packet data input at time T, the packet data is transmitted to the at least one logical block in response to the packet data input at time T + t where t> 0. It is preferable to output to one logical block.

【0009】本発明の他の実施形態では、パケットプロ
セッサが複数の論理ブロックを含み、各論理ブロックは
時刻Tで第1のパケットに関連付けられた第1のパケッ
トデータを受け取り、t>0の時刻T+tで第2のパケ
ットに関連付けられた第2のパケットデータを受け取る
入力部を含んでいる。各論理ブロックは、さらに第1の
パケットデータおよび第2のパケットデータを格納する
記憶デバイスならびに記憶デバイスと結合したサブプロ
セッサを含む。サブプロセッサは、第1のパケットデー
タの処理と第2のパケットデータの処理を交互に行う。
In another embodiment of the present invention, a packet processor includes a plurality of logical blocks, each logical block receiving a first packet data associated with a first packet at time T, and a time t> 0 An input is provided for receiving second packet data associated with the second packet at T + t. Each logical block further includes a storage device for storing the first packet data and the second packet data, and a sub-processor coupled to the storage device. The sub-processor alternately performs processing of the first packet data and processing of the second packet data.

【0010】本発明のさらに他の実施形態では、パケッ
トプロセッサが複数の論理ブロックを含み、各論理ブロ
ックは第1のパケットに関連付けられた第1のパケット
データと第2のパケットに関連付けられた第2のパケッ
トデータを受け取る入力部を含んでいる。各論理ブロッ
クは、さらに第1のパケットデータおよび第2のパケッ
トデータを格納する記憶デバイスならびに記憶デバイス
と結合したサブプロセッサを含む。サブプロセッサは、
第1のパケットデータの処理から第2のパケットデータ
の処理へ切り換えて、同時に第1のパケットデータに対
する処理結果を待つ。
In yet another embodiment of the present invention, a packet processor includes a plurality of logical blocks, each logical block including a first packet data associated with a first packet and a second packet associated with a second packet. 2 includes an input section for receiving the packet data. Each logical block further includes a storage device for storing the first packet data and the second packet data, and a sub-processor coupled to the storage device. The sub-processor is
The processing is switched from the processing of the first packet data to the processing of the second packet data, and at the same time, the processing result for the first packet data is waited.

【0011】本発明のさらに他の実施形態では、パイプ
ライン方式のプロセッサが複数の論理ブロックを含む。
第1の論理ブロックは第1のパケットに関連付けられた
第1の処理命令に基づいて第1の動作を行い、第1の処
理命令を、第2の動作を行うため第2の論理ブロックに
転送する。第1の論理ブロックは、第1の処理命令を処
理する際に潜在的な機能停止(potential s
tall)が予期される場合、第2のパケットに関連付
けられた第2の処理命令を受け取る。第1の論理ブロッ
クは、第1の処理命令に基づく第2の動作と並行して第
2の処理命令に基づく第1の動作を行う。
In yet another embodiment of the present invention, a pipelined processor includes a plurality of logical blocks.
The first logical block performs a first operation based on a first processing instruction associated with the first packet, and transfers the first processing instruction to a second logical block for performing a second operation. I do. The first logical block is a potential stumbling block when processing the first processing instruction.
If (tall) is expected, a second processing instruction associated with the second packet is received. The first logic block performs the first operation based on the second processing instruction in parallel with the second operation based on the first processing instruction.

【0012】したがって、本発明ではパケットプロセッ
サのパケット処理能力の効率的な利用が可能であること
は高く評価されるはずである。特定のステージ内で処理
されているパケットを交換することで、早期に処理され
たパケットがまだ処理されている他のパケットを追い越
すことが可能になる。さらに、現在のパケットを処理す
る際に機能停止が発生する場合、次のパケットを処理す
るためにパケットを交換することで、プロセッサを十分
に利用し、同時に処理結果を待つことが可能になり、か
つ/または分岐誤予測のマイナスのリスクがなくなる。
Therefore, it should be highly appreciated that the present invention enables efficient use of the packet processing capability of the packet processor. By exchanging packets being processed within a particular stage, it is possible for an earlier processed packet to overtake another packet that is still being processed. In addition, if an outage occurs when processing the current packet, by exchanging packets to process the next packet, it is possible to make full use of the processor and simultaneously wait for the processing result, And / or eliminate the negative risk of misprediction.

【0013】本発明のこれらおよび他の特徴、態様なら
びに利点は、以下の詳細な説明、添付請求項、および添
付図面とともに考慮するとき、より十分に理解されよ
う。
[0013] These and other features, aspects, and advantages of the present invention will become more fully understood when considered in conjunction with the following detailed description, the appended claims, and the accompanying drawings.

【0014】[0014]

【発明の実施の形態】図1は、着信パケットフローの分
類とルーティングを行うためのパケット交換コントロー
ラのブロック図である。パケット交換コントローラは、
本発明の一実施形態による種々のリソースと結合したパ
ケットプロセッサ12を含むことが好ましい。パケット
プロセッサ12は、特定用途向けIC(ASIC:appl
ication specific integrated circuit)として実装す
ることができるが、知られているあらゆるハードウェ
ア、ファームウェア、またはその両方において実装する
こともできる。
FIG. 1 is a block diagram of a packet switching controller for classifying and routing incoming packet flows. The packet switching controller
It preferably includes a packet processor 12 coupled with various resources according to one embodiment of the present invention. The packet processor 12 is an application specific IC (ASIC: appl).
communication specific integrated circuit), but can also be implemented in any known hardware, firmware, or both.

【0015】パケットプロセッサ12は、直列のパイプ
ライン方式で、互いに独立して動作する複数のプロセッ
サを含むことが好ましい。サブプロセッサが独立して動
作することで、パイプラインの異なるステージで異なる
パケットデータの並行処理が可能になる。さらに、各サ
ブプロセッサは、各ステージ内での1つまたは複数のパ
ケットに関連付けられた複数の命令の現行処理を可能に
するため、さらに内部的にもパイプライン方式である。
The packet processor 12 preferably includes a plurality of processors operating independently of each other in a serial pipeline system. The independent operation of the sub-processor allows parallel processing of different packet data at different stages of the pipeline. Further, each sub-processor is also internally pipelined to allow for the current processing of multiple instructions associated with one or more packets within each stage.

【0016】プロセッサ12と結合した種々のリソース
は、1つまたは複数のルックアップエンジン14、ポリ
スエンジン16および/または着信パケットフローの処
理とルーティングに役立つためのあらゆる他のリソース
18を含む。他のリソース18には、サービス品質(Q
oS:quality of service)分類エンジン、アクセス制
御リストなどを含むことができるがこれらのみに限定さ
れない。
The various resources associated with processor 12 include one or more lookup engines 14, police engines 16, and / or any other resources 18 to assist in processing and routing incoming packet flows. Other resources 18 include quality of service (Q
oS (quality of service) can include, but is not limited to, classification engines, access control lists, and the like.

【0017】プロセッサ12が、イーサネット(登録商
標)フレーム、ATMセル、TCP/IPおよび/また
はUDP/IPパケット、ならびに他のレイヤ2(デー
タリンク/MACレイヤ)、レイヤ3(ネットワークレ
イヤ)またはレイヤ4(トランスポートレイヤ)のデー
タユニットを含むことができるインバウンドパケットを
受け取ることが好ましい。プロセッサ12は、特定のメ
モリコンポーネント、たとえばフレームメモリ、プロト
コルメモリおよびレジスタメモリなどのフレームと関係
する情報のすべてまたは一部を格納することによって各
入力フレームのフレームコンテキストを作成することが
好ましい。フレームメモリはパケットのヘッダ情報を含
むことが好ましい。プロトコルメモリはフレームヘッダ
メモリに含まれるプロトコルへの1つまたは複数のポイ
ンタを含むプロトコルテーブルを格納することが好まし
い。レジスタメモリは処理に必要なフレームについての
いずれかの付加的な情報を格納することが好ましい。
[0017] Processor 12 may include Ethernet frames, ATM cells, TCP / IP and / or UDP / IP packets, and other layers 2 (data link / MAC layers), 3 (network layers) or 4 layers. It is preferable to receive an inbound packet that can include (transport layer) data units. Processor 12 preferably creates a frame context for each input frame by storing all or some of the information associated with the frame, such as specific memory components, eg, frame memory, protocol memory, and register memory. The frame memory preferably contains the packet header information. The protocol memory preferably stores a protocol table containing one or more pointers to the protocols contained in the frame header memory. The register memory preferably stores any additional information about the frames required for processing.

【0018】プロセッサ12は、パイプライン方式の各
ステージでコンテキストを処理することが好ましく、そ
こで、特定のステージのサブプロセッサは、コンテキス
トのための動作を行い、必要に応じてコンテキストを変
更し、次のサブプロセッサで動作を行うためにコンテキ
ストを次のステージに転送する。パイプラインのあらゆ
る所与のステージで、サブプロセッサはコンテキストを
処理する際に異なる種々のフレームコンテキストを交換
することが好ましい。本発明の一実施形態では、フレー
ムコンテキストは、ラウンドロビン方式、つまりすべて
のコンテキスト間を常時循環することで処理される。コ
ンテキストの数は、サブプロセッサのパイプラインステ
ージの数に、サブプロセッサに入出力するデータを転送
するのに必要な数を加えたものと等しいことが好まし
い。この実施形態によると、現行のコンテキストの処理
がコンテキスト処理時刻の満了時に完了している場合、
そのステージ全体に割り当てられた処理時刻が満了しな
い場合でさえ、循環から削除され次のステージに出力さ
れることが好ましい。すなわち、パイプラインの各ステ
ージはノンブロッキングなので、比較的短い処理時刻し
か必要としないコンテキストはパイプラインのそのステ
ージで比較的長い処理時刻を必要とするコンテキストを
追い越すことができる。
Processor 12 preferably processes the context at each stage of the pipeline, where the sub-processors at a particular stage perform operations for the context, change the context as needed, and The context is transferred to the next stage in order to perform the operation in the sub-processor. At any given stage of the pipeline, the sub-processors preferably exchange various different frame contexts in processing the context. In one embodiment of the invention, frame contexts are processed in a round-robin fashion, i.e., constantly cycling between all contexts. The number of contexts is preferably equal to the number of pipeline stages of the sub-processor plus the number required to transfer data to and from the sub-processor. According to this embodiment, if processing of the current context has been completed at the expiration of the context processing time,
Even if the processing time assigned to the entire stage has not expired, it is preferably removed from the circulation and output to the next stage. That is, because each stage of the pipeline is non-blocking, a context that requires a relatively short processing time can overtake a context that requires a relatively long processing time at that stage of the pipeline.

【0019】本発明の他の実施形態によると、フレーム
コンテキストの交換は、現行コンテキストの処理中に潜
在的な機能停止を検出することに基づいて行われる。た
とえば、コンテキストの条件付き分岐命令または外部メ
モリアクセスを処理するとき、機能停止が発生する可能
性がある。そのような潜在的な処理機能停止が発生した
とき、サブプロセッサがコンテキストを、処理の準備の
できている次のコンテキストフレームに交換することが
好ましい。当該次の使用可能なコンテキストフレーム
も、潜在的な処理機能停止が発生するまで処理される。
According to another embodiment of the invention, the exchange of frame contexts is based on detecting a potential outage during the processing of the current context. For example, a stall may occur when processing a conditional branch instruction in a context or an external memory access. When such a potential processing outage occurs, the sub-processor preferably switches contexts to the next context frame that is ready for processing. The next available context frame is also processed until a potential processing outage occurs.

【0020】図2は、本発明の一実施形態による種々の
パイプラインステージ20a〜20cを含むプロセッサ
12のより詳細な機能的ブロック図である。各パイプラ
インステージ20a〜20cは、好ましくはステージサ
ブプロセッサ22a〜22cおよびステージバッファ2
4a〜24cを含むプロセッサ12内の論理ブロックで
あることが好ましい。ステージサブプロセッサは、フレ
ームコンテキストに対して特定の処理動作を行い、必要
に応じてコンテキストを変更し、コンテキストをパイプ
ラインの次のステージに転送するように構成されたマイ
クロプロセッサエンジンであることが好ましい。たとえ
ば、分類などの処理動作、アドレスのルックアップ、パ
ケットポリシング、パケットの転送、プログラムの編集
は、パイプラインの個別のステージでそれぞれ行うこと
ができる。
FIG. 2 is a more detailed functional block diagram of processor 12 including various pipeline stages 20a-20c according to one embodiment of the present invention. Each pipeline stage 20a-20c preferably comprises a stage sub-processor 22a-22c and a stage buffer 2
Preferably, it is a logical block in the processor 12 including 4a to 24c. The stage sub-processor is preferably a microprocessor engine configured to perform certain processing operations on the frame context, change the context as needed, and transfer the context to the next stage in the pipeline. . For example, processing operations such as classification, address lookup, packet policing, packet transfer, and program editing can be performed at individual stages of the pipeline.

【0021】ステージバッファは、1つまたは複数のリ
ソース12、16または18がコンテキストのために発
生した情報を処理している間、フレームコンテキストを
保持するように構成されていることが好ましい。いった
んリソースから結果を受け取ると、サブプロセッサはコ
ンテキストをステージバッファから取り除き、それを次
のステージに転送する。
The stage buffer is preferably configured to hold the frame context while one or more resources 12, 16, or 18 are processing information generated for the context. Once the result is received from the resource, the sub-processor removes the context from the stage buffer and transfers it to the next stage.

【0022】パイプラインの種々のステージ20a〜2
0cは互いに独立して実行し、種々のステージでのフレ
ームコンテキストを並行処理することが可能になること
が好ましい。本発明の一実施形態によると、各ステージ
はノンブロッキングである。具体的には、各サブプロセ
ッサ22a〜24cは、1度に複数のフレームコンテキ
ストを処理するので、比較的短い処理時刻しか必要とし
ないフレームが、比較的長い処理時刻を必要とするフレ
ームを追い越すことが可能になる。すなわち、サブプロ
セッサは、処理が早期に完了する場合、コンテキストを
次のステージに転送前に、そのステージに割り当てられ
た処理時刻の満了まで待つ必要がないのである。
Various stages 20a-2 of the pipeline
0c preferably run independently of each other to allow for parallel processing of frame contexts at various stages. According to one embodiment of the invention, each stage is non-blocking. Specifically, since each of the sub-processors 22a to 24c processes a plurality of frame contexts at a time, a frame requiring only a relatively short processing time can overtake a frame requiring a relatively long processing time. Becomes possible. That is, if processing is completed early, the sub-processor need not wait for the expiration of the processing time assigned to that stage before transferring the context to the next stage.

【0023】図3は、本発明の一実施形態によるパイプ
ラインの特定のステージ30の機能図である。特定のス
テージ30は、図2のステージ20a〜20cと同様な
ものとすることができる。前ステージからのコンテキス
トが特定のステージ30で受け取られ、ステージバッフ
ァ24a〜24cと同様なものとすることができるステ
ージバッファ32に格納される。
FIG. 3 is a functional diagram of a particular stage 30 of the pipeline according to one embodiment of the present invention. The particular stage 30 can be similar to the stages 20a-20c of FIG. The context from the previous stage is received at a particular stage 30 and stored in a stage buffer 32, which may be similar to stage buffers 24a-24c.

【0024】メッセージインバッファ34が、リソース
14、16または18の1つからコンテキストのために
発生した処理結果を伴う1つまたは複数のメッセージを
受け取ることが好ましい。1つまたは複数の結果は、好
ましくはFIFOバッファとして実装されるメッセージ
インバッファ34でキューに登録される。入力メッセー
ジハンドラ36は、メッセージをデキューして、ステー
ジバッファ32から関連したコンテキストを検索する。
入力メッセージハンドラは、そのフレームコンテキスト
を更新し、コンテキストプール38にそれをコピーす
る。そのフレームコンテキストは、さらに処理に使用可
能なものとして印を付けられる。
Preferably, the message-in buffer 34 receives one or more messages from one of the resources 14, 16 or 18 with processing results generated for the context. The one or more results are queued in a message-in buffer 34, which is preferably implemented as a FIFO buffer. The input message handler 36 dequeues the message and retrieves the associated context from the stage buffer 32.
The input message handler updates its frame context and copies it to the context pool 38. The frame context is marked as available for further processing.

【0025】図2のサブプロセッサ22aと同様なもの
とすることができるステージサブプロセッサ40は、コ
ンテキストプール38のコンテキストを処理する。本発
明の一実施形態によると、コンテキストプール38のコ
ンテキストは、ラウンドロビン方式で処理される。この
実施形態によると、サブプロセッサ40は、たとえば1
クロックサイクルなどの割り当てられたコンテキスト処
理時刻の間で各コンテキストを処理し、割り当てられた
コンテキスト処理時刻が満了した後、コンテキストプー
ルで次に使用可能なコンテキストを処理するためにコン
テキストの交換を行うことが好ましい。割り当てられた
コンテキスト処理時刻は、特定のステージ30に割り当
てられた全体の処理時刻よりも短いことが好ましい。そ
のコンテキストの処理が割り当てられた処理時刻の終わ
りまでに完了する場合、そのコンテキストが次のステー
ジに転送されることが好ましい。
A stage sub-processor 40, which may be similar to sub-processor 22a of FIG. According to one embodiment of the present invention, the contexts of the context pool 38 are processed in a round robin manner. According to this embodiment, the sub-processor 40 includes, for example, 1
Process each context during the assigned context processing time, such as a clock cycle, and after the expiration of the assigned context processing time, exchange contexts to process the next available context in the context pool Is preferred. Preferably, the assigned context processing time is shorter than the overall processing time assigned to a particular stage 30. If the processing of the context is completed by the end of the allocated processing time, the context is preferably transferred to the next stage.

【0026】本発明の他の実施形態では、サブプロセッ
サは、たとえば条件付き分岐命令または外部メモリアク
セスなど、機能停止を生じさせる可能性がある命令に遭
遇するまで、コンテキストを処理する。この時点で、結
果が戻されるのを待つ代わりに、このサブプロセッサ
は、コンテキストの交換を行い、コンテキストプールの
次に使用可能なコンテキストの次の命令を処理する。
In another embodiment of the invention, the sub-processor processes the context until it encounters an instruction that may cause a stall, such as a conditional branch instruction or an external memory access. At this point, instead of waiting for a result to be returned, the subprocessor performs a context swap and processes the next instruction in the next available context in the context pool.

【0027】ステージサブプロセッサ40の内部パイプ
ライン方式のアーキテクチャが、各ステージ内でコンテ
キストを処理する種々の命令の並行処理を可能なものと
することが好ましい。特定のコンテキストの命令を処理
する際、サブプロセッサは、たとえば命令の取り出し、
命令の解読、実行およびメモリアクセスなどの複数の動
作を実行する。各動作は、サブプロセッサ40の内部的
なパイプライン方式の各ステージで実行されることが好
ましい。
Preferably, the internal pipelined architecture of stage sub-processor 40 allows for the parallel processing of various instructions that process context within each stage. When processing instructions in a particular context, the sub-processor may, for example, fetch instructions,
Performs multiple operations such as decoding and executing instructions and memory access. Each operation is preferably executed in each stage of the pipeline system internal to the sub-processor 40.

【0028】特定のコンテキストを処理する間、サブプ
ロセッサ40はいくつかのメッセージコマンドを送出す
る。メッセージコマンドは、好ましくはFIFOバッフ
ァとして実装されるメッセージコマンドバッファ42で
キューに登録されることが好ましい。メッセージビルダ
44が、メッセージコマンドバッファ42からメッセー
ジコマンドを引き出し、これを処理して、そのコンテキ
ストのための出力メッセージを作成することは好まし
い。たとえば、出力メッセージには、ルーティングテー
ブルでルックアップするための発信元/宛先アドレス、
またはパケットのポリシングのためのポリスIDを含む
ことができる。
While processing a particular context, sub-processor 40 sends out several message commands. The message commands are preferably queued in a message command buffer 42, which is preferably implemented as a FIFO buffer. Preferably, the message builder 44 retrieves the message command from the message command buffer 42 and processes it to create an output message for that context. For example, outgoing messages may include source / destination addresses to look up in the routing table,
Alternatively, a police ID for policing a packet may be included.

【0029】メッセージビルダは、サブプロセッサと並
列してメッセージコマンドを処理するコプロセッサであ
ることが好ましい。出力メッセージは、好ましくはFI
FOバッファとして実装されるメッセージアウトバッフ
ァ46でキューに登録されることが好ましい。出力メッ
セージは、外部リソース14、16または18に伝送さ
れ、リソースからの結果を待つ。現行ステージのコンテ
キストの処理が完了する場合、コンテキストはコンテキ
ストプール38から除去され、次のステージに転送され
次のステージバッファに格納される。次のステージにス
テージバッファがない場合、コンテキストは直接コンテ
キストプール38にコピーされることが好ましい。
The message builder is preferably a coprocessor that processes message commands in parallel with the sub-processor. The output message is preferably FI
It is preferably enqueued in a message out buffer 46 implemented as a FO buffer. The output message is transmitted to an external resource 14, 16, or 18 and waits for a result from the resource. When the processing of the context of the current stage is completed, the context is removed from the context pool 38, transferred to the next stage, and stored in the next stage buffer. If there is no stage buffer in the next stage, the context is preferably copied directly to the context pool 38.

【0030】図4は、本発明の一実施形態によるコンテ
キストを処理するための流れ図である。プロセスが開始
し、ステップ50で、入力メッセージハンドラ36は、
コンテキストをコンテキストプールに加えるべきかどう
かを決定する。応答が肯定の場合、ステップ52でコン
テキストはコンテキストプール38に加えられる。ステ
ップ54で、ステージサブプロセッサ40は、コンテキ
ストプールの次のコンテキストを選択する。ステップ5
6で、選択されたコンテキストは、たとえば、1クロッ
クサイクルなどのコンテキスト処理に割り当てられた固
定の時刻量の間に処理される。
FIG. 4 is a flowchart for processing a context according to one embodiment of the present invention. The process starts, and at step 50, the input message handler 36
Determines whether context should be added to the context pool. If the response is positive, the context is added to the context pool 38 at step 52. At step 54, stage sub-processor 40 selects the next context in the context pool. Step 5
At 6, the selected context is processed for a fixed amount of time allocated for context processing, such as, for example, one clock cycle.

【0031】ステップ58では、コンテキストの処理が
完了したかどうかが決定される。応答が肯定の場合、ス
テップ60で、コンテキストはコンテキストプールから
削除され、ステップ62で次のステージに出力され、コ
ンテキストがより長い処理時刻を伴う他のコンテキスト
を追い越すことが可能になる。ステップ58の決定時
に、コンテキストの処理が完了しない場合、次のコンテ
キストが処理用に選択されるが、現行のコンテキストは
循環から除去されない。
At step 58, it is determined whether the processing of the context has been completed. If the response is positive, at step 60, the context is removed from the context pool and output to the next stage at step 62, allowing the context to overtake other contexts with longer processing times. If the processing of the context is not completed, as determined in step 58, the next context is selected for processing, but the current context is not removed from the cycle.

【0032】図5は、本発明の他の実施形態によるコン
テキストを処理するための流れ図である。プロセスが開
始し、ステップ51で入力メッセージハンドラ36はコ
ンテキストをコンテキストプールに加えるべきかどうか
を決定する。応答が肯定の場合、ステップ53でコンテ
キストはコンテキストプール38に加えられる。ステッ
プ55で、ステージサブプロセッサ40はコンテキスト
プールで次に使用可能なコンテキストを選択する。ステ
ップ57で、サブプロセッサは、潜在的な処理機能停止
が発生するかどうかを決定する。応答が肯定の場合、サ
ブプロセッサはコンテキストを交換して、処理するため
にコンテキストプールで次に使用可能なコンテキストを
選択する。
FIG. 5 is a flowchart for processing a context according to another embodiment of the present invention. The process starts and at step 51 the input message handler 36 determines whether to add a context to the context pool. If the response is positive, the context is added to the context pool 38 in step 53. At step 55, stage sub-processor 40 selects the next available context in the context pool. At step 57, the sub-processor determines whether a potential processing outage occurs. If the response is positive, the sub-processors swap contexts and select the next available context in the context pool to process.

【0033】しかし、潜在的な処理機能停止がステップ
57で発生しない場合、サブプロセッサは、処理が完了
するか、または潜在的な処理機能停止に遭遇するかのい
ずれかの時までそのコンテキストを処理する。ステップ
61の決定時に、コンテキストの処理が完了する場合、
ステップ63でコンテキストはコンテキストプールから
削除され、ステップ65で次のステージに出力される。
However, if a potential processing outage does not occur at step 57, the subprocessor processes its context until either processing is completed or a potential processing outage is encountered. I do. When the processing of the context is completed at the time of the determination of step 61,
In step 63, the context is deleted from the context pool, and in step 65, it is output to the next stage.

【0034】図6は、本発明の一実施形態によるコンテ
キストの具体的な命令を処理する際に行われる動作の流
れ図である。ステップ70で、ステージサブプロセッサ
は命令取出し動作を行う。ステップ72で、この命令は
解読され、ステップ74で実行される。ステップ76
で、メモリアクセスが実行の結果の書き戻しのために行
われることが好ましい。命令が条件付き分岐命令の場
合、命令の結果は、取出され、解釈されおよび実行され
る次の命令を決定する真または偽の値であることが好ま
しい。
FIG. 6 is a flowchart of the operation performed when processing a specific instruction of a context according to an embodiment of the present invention. In step 70, the stage sub-processor performs an instruction fetch operation. At step 72, the instruction is decrypted and executed at step 74. Step 76
Preferably, the memory access is performed for writing back the result of the execution. If the instruction is a conditional branch instruction, the result of the instruction is preferably a true or false value that determines the next instruction to be fetched, interpreted and executed.

【0035】図7は、図5で例示した実施形態に従って
複数のコンテキストが適用されるときの、図5に例示し
た処理動作の図である。クロックサイクル1で、内部パ
イプラインの第1のステージでサブプロセッサは、コン
テキスト1の命令Iを、命令取出し動作を行うことで処
理する。この内部ステージで命令が潜在的な機能停止を
持ち込む命令として識別される場合、次のコンテキスト
フラグがコンテキストを交換するために生成される。潜
在的な機能停止の識別は、そのような情報を命令に直接
エンコードすることで可能になる可能性がある。たとえ
ば、潜在的な機能停止を生じさせる命令が、「1」に設
定したストールビットを含むようにすることができる。
FIG. 7 is a diagram of the processing operation illustrated in FIG. 5 when a plurality of contexts are applied according to the embodiment illustrated in FIG. At clock cycle 1, in the first stage of the internal pipeline, the sub-processor processes instruction I of context 1 by performing an instruction fetch operation. If an instruction is identified as an instruction that introduces a potential outage at this internal stage, the next context flag is generated to swap contexts. Identification of potential outages may be possible by encoding such information directly into the instructions. For example, the instruction causing the potential stall may include a stall bit set to "1".

【0036】クロック2で、サブプロセッサは命令1を
内部パイプラインの命令解釈ステージに転送する。同時
に、プロセッサの命令取出しステージは新しい命令を取
り出すために使用可能になる。しかし、次のコンテキス
トフラグが設定されているので、サブプロセッサは、コ
ンテキスト1の次の命令を取り出す代わりに、循環内の
次に使用可能なコンテキスト、つまりコンテキスト2の
命令Jを取り出す。例示している例の命令Jは潜在的な
機能停止を生じさせない。したがって、コンテキスト2
の命令が、潜在的な機能停止が検出されるまで、取り出
され、サブプロセッサの処理チェーンに挿入され続け
る。
At clock 2, the subprocessor transfers instruction 1 to the instruction interpretation stage of the internal pipeline. At the same time, the instruction fetch stage of the processor becomes available for fetching new instructions. However, because the next context flag is set, the subprocessor fetches the next available context in the cycle, ie, instruction J of context 2, instead of fetching the next instruction in context 1. Instruction J in the illustrated example does not cause a potential stall. Therefore, context 2
Instructions continue to be fetched and inserted into the processing chain of the sub-processor until a potential stall is detected.

【0037】クロックサイクル5で、コンテキスト2の
命令J+3を処理するとき潜在的な機能停止が検出され
る。結果として、交換コンテキストフラグが生成され、
循環内で次に使用可能なコンテキストの命令がクロック
サイクル6で取り出される。例示例では、コンテキスト
3からの命令Kが処理のために取り出される。クロック
サイクル8で、サブプロセッサはコンテキスト3から他
の機能停止を引き起こす命令K+2を解読する。これに
よって、サイクル9の間に次に使用可能なコンテキスト
へのコンテキスト交換が生じ、この例では、それはコン
テキスト1である。そのとき、命令Iの結果が使用可能
で、そのため、誤予測またはその他の即座の機能停止が
生じることのマイナス面なしで、次の命令をコンテキス
ト1に対して処理することができる。
At clock cycle 5, a potential stall is detected when processing instruction J + 3 in context 2. As a result, an exchange context flag is generated,
The instruction in the next available context in the cycle is fetched in clock cycle 6. In the illustrated example, instruction K from context 3 is fetched for processing. At clock cycle 8, the sub-processor decodes instruction K + 2 from context 3 causing another stall. This causes a context exchange to the next available context during cycle 9, which in this example is context 1. The result of instruction I is then available, so that the next instruction can be processed for Context 1 without the negative side of mispredictions or other immediate outages.

【0038】本発明をある特定の実施形態で説明してき
たが、当業者が本発明の範囲および趣旨から逸脱するこ
となく変形形態を考案することは難しくないであろう。
したがって、本発明は具体的に説明したもの以外にも実
施することができることを理解すべきである。したがっ
て、本発明の本実施形態は、すべての点で例示的なもの
で限定的なものではないと見なすべきであり、本発明の
範囲は、前述の説明ではなくて頭記の請求項およびそれ
に相当するもので示されるものと見なされるべきであ
る。
Although the invention has been described in certain specific embodiments, it will not be difficult for those skilled in the art to devise variations without departing from the scope and spirit of the invention.
Therefore, it is to be understood that the invention may be practiced other than as specifically described. Therefore, the present embodiments of the invention are to be considered in all respects as illustrative and not restrictive, and the scope of the present invention is not limited to the foregoing description, but to the following claims and claims It should be taken to be indicated by the equivalent.

【図面の簡単な説明】[Brief description of the drawings]

【図1】着信パケットフローの分類とルーティングを行
うためのパケットプロセッサを有するパケット交換コン
トローラのブロック図である。
FIG. 1 is a block diagram of a packet switching controller having a packet processor for classifying and routing incoming packet flows.

【図2】本発明の一実施形態による種々のパイプライン
ステージを含むパケットプロセッサのより詳細な機能的
ブロック図である。
FIG. 2 is a more detailed functional block diagram of a packet processor including various pipeline stages according to one embodiment of the present invention.

【図3】本発明の一実施形態によるパイプラインの特定
のステージの機能図である。
FIG. 3 is a functional diagram of a particular stage of a pipeline according to one embodiment of the present invention.

【図4】本発明の一実施形態によるコンテキストを処理
するための流れ図である。
FIG. 4 is a flowchart for processing a context according to one embodiment of the present invention.

【図5】本発明の他の実施形態によるコンテキストを処
理するための流れ図である。
FIG. 5 is a flowchart for processing a context according to another embodiment of the present invention;

【図6】図5で例示した実施形態によるコンテキストの
具体的な命令を処理する際に、ステージプロセッサによ
って行われる動作の流れ図である。
FIG. 6 is a flowchart of operations performed by a stage processor when processing a specific instruction of a context according to the embodiment illustrated in FIG. 5;

【図7】図5で例示した実施形態に従って複数のコンテ
キストを処理する際のパイプライン方式の動作の図であ
る。
FIG. 7 is a diagram of pipelined operation when processing multiple contexts according to the embodiment illustrated in FIG.

【符号の説明】[Explanation of symbols]

12 プロセッサ 14 ルックアップエンジン(リソース) 16 ポリスエンジン(リソース) 18 他のリソース(リソース) 20a、20b、20c、30 ステージ 22a、22b、22c、40 ステージサブプロセッ
サ 24a、24b、24c、32 ステージバッファ 34 メッセージインバッファ 36 入力メッセージハンドラ 38 コンテキストプール 42 メッセージコマンドバッファ 44 メッセージビルダ 46 メッセージアウトバッファ
12 Processor 14 Lookup Engine (Resource) 16 Police Engine (Resource) 18 Other Resources (Resource) 20a, 20b, 20c, 30 Stage 22a, 22b, 22c, 40 Stage Subprocessor 24a, 24b, 24c, 32 Stage Buffer 34 Message In Buffer 36 Input Message Handler 38 Context Pool 42 Message Command Buffer 44 Message Builder 46 Message Out Buffer

フロントページの続き (72)発明者 ジエロルド・ホイーラー アメリカ合衆国、ワシントン・99216、ス ポーケン、イースト・フオース・アベニユ ー・12608 (72)発明者 マシユー・トーレガス アメリカ合衆国、ワシントン・99037、ベ ラデール、イースト・トウエンテイ・サー ド・アベニユー・16521 Fターム(参考) 5K030 GA01 HA08 KA01 LE04 Continuing the front page (72) Inventor Gjerold Wheeler United States, Washington 99216, Spokane, East Fourth Avenue 12608 Third Avenue 16521 F-term (reference) 5K030 GA01 HA08 KA01 LE04

Claims (22)

【特許請求の範囲】[Claims] 【請求項1】 パケットデータに対して1つまたは複数
の処理動作を行うための第1の論理ブロックと、前記第
1の論理ブロックから出力されたパケットデータに応答
してパケットデータに対して1つまたは複数の処理動作
を行うための第2の論理ブロックとを含む複数の論理ブ
ロックを備えるパケットプロセッサであって、前記第1
または第2の論理ブロックの少なくとも1つが、時刻T
で入力されたパケットデータに応答してパケットデータ
を前記少なくとも1つの論理ブロックに出力する前に、
t>0の時刻T+tで入力されたパケットデータに応答
してパケットデータを前記少なくとも1つの論理ブロッ
クへ出力するパケットプロセッサ。
A first logical block for performing one or more processing operations on the packet data; and a first logical block for responding to the packet data output from the first logical block. A packet processor comprising a plurality of logical blocks including one or more second logical blocks for performing one or more processing operations,
Or at least one of the second logical blocks is at time T
Before outputting the packet data to said at least one logical block in response to the packet data input at
A packet processor that outputs packet data to the at least one logical block in response to the packet data input at time T + t where t> 0.
【請求項2】 前記第1または第2の論理ブロックの前
記少なくとも1つが、時刻T+tで入力された前記パケ
ットデータの処理と、時刻Tで入力された前記パケット
データの処理を交互に行う請求項1に記載のパケットプ
ロセッサ。
2. The at least one of the first and second logical blocks alternately performs processing of the packet data input at time T + t and processing of the packet data input at time T. 2. The packet processor according to 1.
【請求項3】 パケットデータに対して1つまたは複数
の処理動作を行うための第1の論理ブロックと、前記第
1の論理ブロックから出力されたパケットデータに応答
してパケットデータに対して1つまたは複数の処理動作
を行うための第2の論理ブロックとを含む複数の論理ブ
ロックを備えるパケットプロセッサであって、前記第1
または第2の論理ブロックの少なくとも1つが時刻Tで
受け入れたパケットデータを出力する前に、t>0の時
刻T+tでパケットデータを受け入れるパケットプロセ
ッサ。
3. A first logical block for performing one or more processing operations on the packet data, and a first logical block on the packet data in response to the packet data output from the first logical block. A packet processor comprising a plurality of logical blocks including one or more second logical blocks for performing one or more processing operations,
Or a packet processor that receives packet data at time T + t where t> 0 before at least one of the second logical blocks outputs the packet data received at time T.
【請求項4】 前記第1または第2の論理ブロックの前
記少なくとも1つが、時刻T+tで受け入れた前記パケ
ットデータの処理と、時刻Tで受け入れた前記パケット
データの処理を交互に行う請求項3に記載のパケットプ
ロセッサ。
4. The method according to claim 3, wherein the at least one of the first and second logical blocks alternately performs processing of the packet data received at time T + t and processing of the packet data received at time T. The packet processor as described.
【請求項5】 複数の論理ブロックを含むパケットプロ
セッサであって、各論理ブロックが、 時刻Tで第1のパケットに関連付けられた第1のパケッ
トデータを受け取り、t>0の時刻T+tで第2のパケ
ットに関連付けられた第2のパケットデータを受け取る
入力部と、 第1のパケットデータおよび第2のパケットデータを格
納する記憶デバイスと、 記憶デバイスと結合したサブプロセッサであって、前記
サブプロセッサは、第1のパケットデータの処理と第2
のパケットデータの処理を交互に行い、第1のパケット
データを出力する前に、第2のパケットデータを次の論
理ブロックに出力するサブプロセッサとを備えるパケッ
トプロセッサ。
5. A packet processor including a plurality of logical blocks, each logical block receiving a first packet data associated with a first packet at time T, and a second packet data at time T + t where t> 0. An input for receiving second packet data associated with the packet of the following, a storage device for storing the first packet data and the second packet data, and a sub-processor coupled to the storage device, wherein the sub-processor comprises: , Processing of the first packet data and the second
And a sub-processor that alternately performs the processing of the packet data and outputs the second packet data to the next logical block before outputting the first packet data.
【請求項6】 入力部が、第1または第2のパケットデ
ータを出力する前に、t’>tの時刻T+t’で第3の
パケットに関連付けられた第3のパケットデータを受け
取る請求項5に記載のパケットプロセッサ。
6. The input unit receives the third packet data associated with the third packet at time T + t ′ where t ′> t before outputting the first or second packet data. A packet processor according to claim 1.
【請求項7】 複数の論理ブロックを含むパケットプロ
セッサであって、各論理ブロックが、 第1のパケットに関連付けられた第1のパケットデータ
と第2のパケットに関連付けられた第2のパケットデー
タを受け取る入力部と、 第1のパケットデータおよび第2のパケットデータを格
納する記憶デバイスと、 記憶デバイスと結合したサブプロセッサであって、前記
サブプロセッサは、第1のパケットデータの処理から第
2のパケットデータの処理へ切り換え、同時に第1のパ
ケットデータの処理結果を待つパケットプロセッサ。
7. A packet processor including a plurality of logical blocks, wherein each logical block stores first packet data associated with a first packet and second packet data associated with a second packet. An input unit for receiving; a storage device for storing first and second packet data; and a sub-processor coupled to the storage device, wherein the sub-processor is configured to perform processing from the first packet data to a second A packet processor that switches to packet data processing and simultaneously waits for a processing result of the first packet data.
【請求項8】 処理結果が条件付き分岐命令の結果であ
る請求項7に記載のパケットプロセッサ。
8. The packet processor according to claim 7, wherein the processing result is a result of a conditional branch instruction.
【請求項9】 複数の論理ブロックを備えるパイプライ
ン方式プロセッサであって、第1のパケットに関連付け
られた第1の処理命令に基づいて第1の動作を行い、第
1の処理命令を、第2の動作を行うため第2の論理ブロ
ックに転送するための第1の論理ブロックであって、前
記第1の論理ブロックは、第1の処理命令を処理する際
に潜在的な機能停止が予期される場合、第2のパケット
に関連付けられた第2の処理命令を受け取り、前記第1
の論理ブロックは、第1の処理命令に基づく第2の動作
と並行して第2の処理命令に基づく第1の動作を行うパ
イプライン方式プロセッサ。
9. A pipeline processor having a plurality of logical blocks, wherein the first processor performs a first operation based on a first processing instruction associated with a first packet, and performs a first processing instruction on the first processing instruction. A first logical block for transferring to a second logical block to perform the second operation, said first logical block anticipating a potential stall in processing the first processing instruction. Receiving a second processing instruction associated with a second packet,
Is a pipelined processor that performs a first operation based on a second processing instruction in parallel with a second operation based on the first processing instruction.
【請求項10】 第1の論理ブロックが、第1の処理命
令を処理する際に潜在的な機能停止が予期されない場
合、第1のパケットに関連付けられた第3の処理命令を
受け取ることを特徴とする請求項9に記載のパイプライ
ン式プロセッサ。
10. The first logic block receives a third processing instruction associated with the first packet if a potential outage is not anticipated in processing the first processing instruction. The pipeline type processor according to claim 9, wherein
【請求項11】 潜在的な機能停止が条件付き分岐命令
により引き起こされる請求項9に記載のパイプライン式
プロセッサ。
11. The pipelined processor of claim 9, wherein the potential stall is caused by a conditional branch instruction.
【請求項12】 パケットデータに対して1つまたは複
数の処理動作を行うための第1の論理ブロックと、前記
第1の論理ブロックから出力されたパケットデータに応
答してパケットデータに対して1つまたは複数の処理動
作を行うための第2の論理ブロックとを含むパケットプ
ロセッサにおいてパケットを処理するための方法であっ
て、前記方法は、 時刻Tで第1の論理ブロックが第1のパケットデータを
受け取るステップと、第1のパケットデータを処理する
ステップと、 t>0の時刻T+tで第1の論理ブロックが第2のパケ
ットデータを受け取るステップと、 第2のパケットデータを処理するステップと、 時刻Tで入力された第1のパケットデータに応答して第
4のパケットデータを第2の論理ブロックに出力する前
に、時刻T+tで入力された第2のパケットデータに応
答して第3のパケットデータを第2の論理ブロックに出
力するステップとを含む方法。
12. A first logical block for performing one or more processing operations on packet data, and a first logical block for responding to the packet data output from the first logical block. And a second logical block for performing one or more processing operations, the method comprising: processing a packet in a packet processor, the method comprising: Receiving the first packet data; receiving the second packet data at a time T + t where t>0; and processing the second packet data. Before outputting the fourth packet data to the second logical block in response to the first packet data input at the time T, the time T + Method comprising the steps of: in response to a second packet data input and outputs a third packet data to the second logical blocks.
【請求項13】 時刻T+tで入力された第2のパケッ
トデータの処理と、時刻Tで入力された第1のパケット
データの処理を交互に行うステップをさらに含む請求項
12の方法。
13. The method of claim 12, further comprising the step of alternately processing the second packet data input at time T + t and processing the first packet data input at time T.
【請求項14】 パケットデータに対して1つまたは複
数の処理動作を行うために動作可能な第1の論理ブロッ
クと、前記第1の論理ブロックから出力されたパケット
データに応答してパケットデータに対して1つまたは複
数の処理動作を行うための第2の論理ブロックとを含む
パケットプロセッサにおいてパケットを処理するための
方法であって、前記方法は、時刻Tで第1の論理ブロッ
クが第1のパケットデータを受け取るステップと、 第1のパケットデータを第2の論理ブロックに出力する
ステップと、 時刻Tで受け取った第1のパケットデータを第2の論理
ブロックに出力する前に、t>0の時刻T+tで第1の
論理ブロックが第2のパケットデータを受け取るステッ
プとを含む方法。
14. A first logical block operable to perform one or more processing operations on packet data, and a first logical block responsive to the packet data output from the first logical block, and A second logical block for performing one or more processing operations on the packet in a packet processor, wherein at time T the first logical block is the first logical block. Receiving the first packet data to the second logical block; and outputting the first packet data received at time T to the second logical block, t> 0 Receiving the second packet data at a time T + t of the first logical block.
【請求項15】 時刻T+tで受け取った第2のパケッ
トデータの処理と、時刻Tで受け取った第1のパケット
データの処理を交互に行うステップをさらに含む請求項
14の方法。
15. The method of claim 14, further comprising alternately processing the second packet data received at time T + t and processing the first packet data received at time T.
【請求項16】 第1の論理ブロックおよび第2の論理
ブロックを含むパケットプロセッサにおいてパケットを
処理するための方法であって、前記方法は、 時刻Tで第1のパケットに関連付けられた第1のパケッ
トデータを第1の論理ブロックで受け取るステップと、 t>0の時刻T+tで第2のパケットに関連付けられた
第2のパケットデータを第1の論理ブロックで受け取る
ステップと、 第1のパケットデータの処理と第2のパケットデータの
処理を交互に行うステップと、 第1のパケットデータを出力する前に第2のパケットデ
ータを第2の論理ブロックに出力するステップとを含む
方法。
16. A method for processing a packet in a packet processor including a first logical block and a second logical block, the method comprising: a first processor associated with a first packet at a time T; Receiving the packet data in the first logical block; receiving the second packet data associated with the second packet in the first logical block at time T + t where t>0; A method comprising: alternating between processing and processing of the second packet data; and outputting the second packet data to the second logical block before outputting the first packet data.
【請求項17】 第1または第2のパケットデータを出
力する前に、t’>tの時刻T+t’で第3のパケット
に関連付けられた第3のパケットデータを受け取るステ
ップをさらに含む請求項16に記載の方法。
17. The method according to claim 16, further comprising the step of receiving third packet data associated with the third packet at time T + t ′ where t ′> t before outputting the first or second packet data. The method described in.
【請求項18】 第1の論理ブロックおよび第2の論理
ブロックを含むパケットプロセッサにおいてパケットを
処理するための方法であって、前記方法は、 第1の論理ブロックで第1のパケットに関連付けられた
第1のパケットデータを受け取るステップと、 第1の論理ブロックで第2のパケットに関連付けられた
第2のパケットデータを受け取るステップと、 第1のパケットデータを処理するステップと、 第1のパケットデータの処理から第2のパケットデータ
の処理へ切り換えて、同時に第1のパケットデータの処
理結果を待つステップとを含む方法。
18. A method for processing a packet in a packet processor including a first logical block and a second logical block, the method comprising: a first logical block associated with the first packet in the first logical block. Receiving the first packet data; receiving the second packet data associated with the second packet in the first logical block; processing the first packet data; Switching from the processing of the first packet data to the processing of the second packet data, and simultaneously waiting for a processing result of the first packet data.
【請求項19】 処理結果が条件付き分岐命令の結果で
ある請求項18に記載の方法。
19. The method according to claim 18, wherein the processing result is a result of a conditional branch instruction.
【請求項20】 複数の論理ブロックを有するパイプラ
イン方式プロセッサにおいてパケットを処理するための
方法であって、前記方法は、 第1の論理ブロックで第1のパケットに関連付けられた
第1の処理命令に基づいて第1の動作を行うステップ
と、 第2の動作を行うために第1の処理命令を第2の論理ブ
ロックに転送するステップと、 第1の処理命令を処理する際に潜在的な機能停止が予期
される場合、第2のパケットに関連付けられた第2の処
理命令を第1の論理ブロックで受け取るステップであっ
て、前記第1の論理ブロックは、第1の処理命令に基づ
く第2の動作と並行して第2の処理命令に基づく第1の
動作を行うステップとを含む方法。
20. A method for processing a packet in a pipelined processor having a plurality of logical blocks, the method comprising: a first processing instruction associated with a first packet in a first logical block. Performing a first operation on the basis of: transferring a first processing instruction to a second logical block to perform a second operation; Receiving a second processing instruction associated with a second packet in a first logical block if an outage is expected, wherein the first logical block is based on a first processing instruction based on the first processing instruction. Performing a first operation based on a second processing instruction in parallel with the second operation.
【請求項21】 第1の処理命令を処理する際に潜在的
な機能停止が予期されない場合、第1のパケットに関連
付けられた第3の処理命令を第1の論理ブロックで受け
取るステップをさらに含む請求項20に記載の方法。
21. The method further comprises receiving a third processing instruction associated with the first packet in the first logical block if a potential outage is not anticipated in processing the first processing instruction. The method according to claim 20.
【請求項22】 潜在的な機能停止が条件付き分岐命令
により引き起こされる請求項20に記載の方法。
22. The method of claim 20, wherein the potential stall is caused by a conditional branch instruction.
JP2001328679A 2000-11-07 2001-10-26 Non-blocking and multi-context pipeline system processor Withdrawn JP2002198999A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US24644700P 2000-11-07 2000-11-07
US246447 2000-11-07

Publications (1)

Publication Number Publication Date
JP2002198999A true JP2002198999A (en) 2002-07-12

Family

ID=22930728

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001328679A Withdrawn JP2002198999A (en) 2000-11-07 2001-10-26 Non-blocking and multi-context pipeline system processor

Country Status (1)

Country Link
JP (1) JP2002198999A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100788500B1 (en) 2006-07-14 2007-12-24 엠텍비젼 주식회사 Vertex processing apparatus and method having multi-stage pipeline structure
JP2012044570A (en) * 2010-08-23 2012-03-01 Nippon Telegr & Teleph Corp <Ntt> Call processing server, call processing method, and call processing program

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100788500B1 (en) 2006-07-14 2007-12-24 엠텍비젼 주식회사 Vertex processing apparatus and method having multi-stage pipeline structure
JP2012044570A (en) * 2010-08-23 2012-03-01 Nippon Telegr & Teleph Corp <Ntt> Call processing server, call processing method, and call processing program

Similar Documents

Publication Publication Date Title
US7797513B2 (en) Non-blocking, multi-context pipelined processor
US7873817B1 (en) High speed multi-threaded reduced instruction set computer (RISC) processor with hardware-implemented thread scheduler
US8743877B2 (en) Header processing engine
US7376952B2 (en) Optimizing critical section microblocks by controlling thread execution
US7328277B2 (en) High-speed data processing using internal processor memory space
EP1430658B1 (en) Method, apparatus and computer program for the decapsulation and encapsulation of packets with multiple headers
US6292888B1 (en) Register transfer unit for electronic processor
US8015392B2 (en) Updating instructions to free core in multi-core processor with core sequence table indicating linking of thread sequences for processing queued packets
US7310348B2 (en) Network processor architecture
US6996639B2 (en) Configurably prefetching head-of-queue from ring buffers
US7836195B2 (en) Preserving packet order when migrating network flows between cores
US20100254387A1 (en) Network processor architecture
US8117620B2 (en) Techniques for implementing a communication channel with local and global resources
KR20040010789A (en) A software controlled content addressable memory in a general purpose execution datapath
JP2007133456A (en) Semiconductor device
WO2023216629A1 (en) Multi-process management method in heterogeneous computing, and computing device
US20070156928A1 (en) Token passing scheme for multithreaded multiprocessor system
US7477641B2 (en) Providing access to data shared by packet processing threads
EP2568388B1 (en) Processor to message-based network interface using speculative techniques
US20060149921A1 (en) Method and apparatus for sharing control components across multiple processing elements
JP2011128989A (en) Data processing apparatus, data processing method, and program
JP2002198999A (en) Non-blocking and multi-context pipeline system processor
US7613905B2 (en) Partial register forwarding for CPUs with unequal delay functional units
JPH08265366A (en) Packet transfer system

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20050104