JP2017225166A - 構成可能なマルチコアネットワークプロセッサ - Google Patents
構成可能なマルチコアネットワークプロセッサ Download PDFInfo
- Publication number
- JP2017225166A JP2017225166A JP2017154241A JP2017154241A JP2017225166A JP 2017225166 A JP2017225166 A JP 2017225166A JP 2017154241 A JP2017154241 A JP 2017154241A JP 2017154241 A JP2017154241 A JP 2017154241A JP 2017225166 A JP2017225166 A JP 2017225166A
- Authority
- JP
- Japan
- Prior art keywords
- processing
- processing mode
- network processor
- mode
- pipeline
- 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.)
- Ceased
Links
- 239000004744 fabric Substances 0.000 claims abstract description 45
- 230000007246 mechanism Effects 0.000 claims abstract description 45
- 238000000034 method Methods 0.000 claims abstract description 45
- 230000015654 memory Effects 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 16
- 230000008569 process Effects 0.000 abstract description 18
- 238000010586 diagram Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 9
- 230000008901 benefit Effects 0.000 description 4
- 230000006855 networking Effects 0.000 description 4
- 241001522296 Erithacus rubecula Species 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3887—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3889—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/15—Interconnection of switching modules
- H04L49/1515—Non-blocking multistage, e.g. Clos
- H04L49/1546—Non-blocking multistage, e.g. Clos using pipelined operation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multi Processors (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Logic Circuits (AREA)
- Stored Programmes (AREA)
Abstract
【課題】パイプライン処理モードと並列処理モードとの間で構成可能なマルチコアネットワークプロセッサを提供する。
【解決手段】マルチコアネットワークプロセッサ200は、データパケットを処理するように構成された複数の処理コアと、パイプライン処理モードと並列処理モードとの間で処理コアを構成可能な処理モード機構とを含む。処理モード機構は、パイプライン処理モードまたは並列処理モードのいずれかで動作させるように、処理コアを相互接続するように構成可能なスイッチ要素、またはファブリックロジックおよびバスを含む。
【選択図】図2
【解決手段】マルチコアネットワークプロセッサ200は、データパケットを処理するように構成された複数の処理コアと、パイプライン処理モードと並列処理モードとの間で処理コアを構成可能な処理モード機構とを含む。処理モード機構は、パイプライン処理モードまたは並列処理モードのいずれかで動作させるように、処理コアを相互接続するように構成可能なスイッチ要素、またはファブリックロジックおよびバスを含む。
【選択図】図2
Description
関連出願の相互参照
[0001]本出願は、「CONFIGURABLE MULTICORE NETWORK
PROCESSOR」と題する2013年3月12日に出願された米国非仮特許出願第13/797,838号の優先権を主張するものであり、その全体を参照により本明細書に明示的に組み込む。
[0001]本出願は、「CONFIGURABLE MULTICORE NETWORK
PROCESSOR」と題する2013年3月12日に出願された米国非仮特許出願第13/797,838号の優先権を主張するものであり、その全体を参照により本明細書に明示的に組み込む。
[0002]本開示は、一般に、電子回路に関し、より詳細には、パイプライン処理モードと並列処理モードとの間で構成可能な複数の処理コアを備えたネットワークプロセッサに関する。
[0003]パケット交換網は、個人と組織体との間で情報を送信するために広く使用される。パケット交換網では、情報の小ブロック、またはデータパケットが共通のチャネルを介して送信される。より具体的には、情報は、発信源において複数のデータパケットにセグメント化され、アドレス方式を用いてチャネルを介して宛先へと経路指定される。宛先で、情報はデータパケットから再構成される。
[0004]ネットワーク上の多くのデバイスは、データパケットを処理するように設計されたネットワークプロセッサを含む。ネットワークプロセッサは、複数の処理コアを使用できる、ソフトウェアでプログラム可能なデバイスである。処理コアは、並列に専用化することができ、したがって、ネットワークプロセッサにより受信される各データパケットは、データパケットに対してすべての必要な処理を実施する処理コアに割り当てられる。代替的に、処理コアは、パイプライン方式に専用化することができ、パイプラインにおける各処理コアは、データパケットに対して特定のサブタスクを実行するように専用化される。各構成は、ネットワーキング用途において、それ自体の利点と不利な点とを有する。たとえば、レイヤ2およびレイヤ3ネットワークプロトコルは、パイプライン化された処理によく適しているが、ディープパケットインスペクション(DPI)のようなより高いレイヤプロトコルは、並列処理によく適している。したがって、たとえば、すべてのレイヤのネットワークプロトコルなど、すべてのネットワークプロトコルを効率的にサポートする単一の解決策が当技術分野で求められている。
[0005]ネットワークプロセッサが開示される。ネットワークプロセッサは、データパケットを処理するように構成された複数の処理コアと、パイプライン処理モードと並列処理モードとの間で処理コアを構成するように構成可能な処理モード機構とを含む。ネットワークプロセッサはまた、処理コアとともに配置される複数の先入れ先出し(FIFO)インターフェースを含むことができる。処理モード機構は、パイプライン処理モードまたは並列処理モードのいずれかで動作するようにFIFOインターフェースおよび処理コアを相互接続するように構成される。処理モード機構は、パイプライン処理モードまたは並列処理モードのいずれかで動作するように、処理コアを相互接続するように構成可能な、たとえば、スイッチ、マルチプレクサなどの複数のスイッチ要素を備えることができる。処理モード機構はまた、パイプライン処理モードまたは並列処理モードのいずれかで動作するように、処理コアを相互接続するように構成可能なファブリックロジックおよびバスを備えることができる。
[0006]他のネットワークプロセッサが開示される。ネットワークプロセッサは、データパケットを処理するための手段と、パイプライン処理モードと並列処理モードとの間で処理するための手段を構成するための手段とを含む。ネットワークプロセッサは、処理するための手段とともに配置される複数のFIFOインターフェースをさらに含むことができる。構成するための手段は、パイプライン処理モードまたは並列処理モードのいずれかで動作するように、FIFOインターフェースと処理するための手段とを相互接続するように構成される。処理するための手段は、複数の処理コアを含むことができ、また構成するための手段は、パイプライン処理モードまたは並列処理モードのいずれかで動作するように、処理コアを相互接続するように構成可能な複数のスイッチ要素、またはファブリックロジックおよびバスを含むことができる。
[0007]データパケットを処理する方法が開示される。方法は、選択された処理モードで複数の処理コアを構成することを含み、選択された処理モードは、パイプライン処理モードおよび並列処理モードの一方である。方法はまた、選択された処理モードに従って複数の処理コアにデータパケットを分配することと、構成された処理モードに従って、複数の処理コアの1つまたは複数のものから1つまたは複数のデータパケットを受け取ることとを含む。複数の処理コアを構成することは、パイプライン処理モードまたは並列処理モードのいずれかで動作するように、処理コアを相互接続するように複数のスイッチ要素を構成すること、またはパイプライン処理モードまたは並列処理モードのいずれかで動作するように、処理コアを相互接続するようにファブリックロジックおよびバスを構成することを含むことができる。
[0008]コンピュータプログラム製品が開示される。コンピュータプログラム製品は、ネットワークプロセッサにより実行可能なコードを備えるコンピュータ可読媒体を含む。ネットワークプロセッサは、複数の処理コアと処理モード機構とを含む。コードは、ネットワークプロセッサで実行されたとき、ネットワークプロセッサに、複数の処理コアを選択された処理モードに構成させる。選択された処理モードは、パイプライン処理モードおよび並列処理モードの一方とすることができる。コードはまた、選択された処理モードに従って、ネットワークプロセッサに、データパケットを複数の処理コアに分配させ、また構成された処理モードに従って、複数の処理コアのうちの1つまたは複数のものから1つまたは複数のデータパケットを受け取らせる。
[0009]他のネットワークプロセッサが開示される。ネットワークプロセッサは、データパケットを処理するように構成された複数の処理コアを含み、ここにおいて、処理コアは、パイプライン処理モードと並列処理モードとの間で構成可能である。ネットワークプロセッサは、パイプライン処理モードまたは並列処理モードのいずれかで動作するように、処理コアを相互接続するように構成された複数のスイッチを備えることができる。ネットワークプロセッサは、メモリと、処理コアにメモリへのアクセスを提供するためのメモリバスとを備えることができ、ここにおいて、メモリバスは、パイプライン処理モードまたは並列処理モードのいずれかで動作するように処理コアを相互接続する。
[0010]当業者であれば、装置および方法の他の態様は、装置および方法の様々な態様が例として示され、述べられている次の詳細な説明から容易に明らかになることを理解されたい。理解されるように、これらの態様は、他の、異なる形態で実施することができ、またそのいくつかの細部は、様々な他の点において変更することができる。したがって、図面および詳細な説明は、本質的に例示的なものであって、限定的なものと見なされるべきではない。
[0011]次に装置および方法の様々な態様が、添付図面を参照し、限定することなく例として、詳細な説明において示される。
[0019]本開示の様々な態様が、添付図面を参照して、以下でより完全に説明される。しかし、本開示は、当業者によって多くの異なる形態で実施することができ、本明細書で提示されたいずれかの特定の構造または機能に限定されるものと解釈されるべきではない。
そうではなくて、これらの態様は、本開示が十分なものであり、完全であるように、また本開示の範囲を当業者に十分伝えるように提供される。本明細書の教示に基づき、本開示の任意の他の態様とは独立して実施されようと、または組み合わせて実施されようと、本開示の範囲は、本開示のいずれの態様も包含するように意図されていることを当業者であれば理解されたい。たとえば、装置は、本明細書に記載の任意の数の態様を用いて実施され、または方法が実行され得る。さらに本開示の範囲は、本開示の他の態様に加えて、またはそれに代えて、他の構造および/または機能を用いて実施されるような装置または方法を包含することが意図されている。本明細書で開示される開示のいずれの態様も、特許請求の範囲の1つまたは複数の構成要件により実施され得ることを理解されたい。
そうではなくて、これらの態様は、本開示が十分なものであり、完全であるように、また本開示の範囲を当業者に十分伝えるように提供される。本明細書の教示に基づき、本開示の任意の他の態様とは独立して実施されようと、または組み合わせて実施されようと、本開示の範囲は、本開示のいずれの態様も包含するように意図されていることを当業者であれば理解されたい。たとえば、装置は、本明細書に記載の任意の数の態様を用いて実施され、または方法が実行され得る。さらに本開示の範囲は、本開示の他の態様に加えて、またはそれに代えて、他の構造および/または機能を用いて実施されるような装置または方法を包含することが意図されている。本明細書で開示される開示のいずれの態様も、特許請求の範囲の1つまたは複数の構成要件により実施され得ることを理解されたい。
[0020]特定の態様が本明細書で述べられるが、これらの諸態様の多くの変形および置換は、本開示の範囲に含まれる。好ましい態様のいくつかの利益および利点が述べられるが、本開示の範囲は、特定の利益、用途、または目的に限定されることを意図していない。
そうではなくて、本開示の態様は、様々な回路、技術、システム、ネットワーク、および方法に広く適用可能であるように意図されており、そのいくつかが、例として図面に、また以下の記述で示されている。詳細な説明および図面は、限定的なものではなく、本開示を単に例示するためのものであり、本開示の範囲は、添付の特許請求の範囲、およびその等価な形態により定義される。
そうではなくて、本開示の態様は、様々な回路、技術、システム、ネットワーク、および方法に広く適用可能であるように意図されており、そのいくつかが、例として図面に、また以下の記述で示されている。詳細な説明および図面は、限定的なものではなく、本開示を単に例示するためのものであり、本開示の範囲は、添付の特許請求の範囲、およびその等価な形態により定義される。
[0021]様々な概念が、添付図面を参照して、以下でより十分に述べられる。しかし、これらの概念は、当業者により多くの異なる形態で実施することができ、本明細書で提示される任意の特定の構造または機能に限定されるものと解釈されるべきではない。そうではなくて、これらの概念は、本開示が十分なものであり、完全であるように、またこれらの概念の範囲を当業者に十分伝えるように提供される。詳細な説明は、特定の細部を含むことができる。しかし、これらの概念は、これらの特定の細部を含まずに実施され得ることは当業者には明らかであろう。いくつかの例では、よく知られた構造および構成要素は、本開示を通して提示された様々な概念を曖昧にしないために、ブロック図の形で示されている。
[0022]本開示を通して提示される様々な概念は、ネットワーク要素で実施するのによく適している。ネットワーク要素(たとえば、ルータ、スイッチ、ブリッジ、または同様のネットワーキングデバイス。)は、ネットワーク上の他の機器を通信可能に相互接続する任意のネットワーキング機器(たとえば、他のネットワーク要素、終端局、または同様のネットワーキングデバイス)を含む。
[0023]これらの概念は、ハードウェアで、またはハードウェアプラットフォーム上で実行されるソフトウェアで実施され得る。ハードウェアまたはハードウェアプラットフォームは、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向けIC(ASIC)、書換え可能ゲートアレイ(FPGA)もしくは他のプログラム可能な論理構成要素、ディスクリートゲートもしくはトランジスタ論理、ディスクリートハードウェア構成要素、またはそれらの任意の組合せ、あるいは本明細書で述べる機能を実施するように設計された任意の他の適切な構成要素とすることができる。汎用プロセッサはマイクロプロセッサとすることができるが、代替的には、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態マシンとすることができる。プロセッサはまた、たとえば、DSPとマイクロプロセッサの組合せ、複数のマイクロプロセッサ、DSPと併せた1つまたは複数のマイクロプロセッサ、または任意の他のそのような構成など、コンピューティング構成要素の組合せとして実施され得る。
[0024]ソフトウェアは、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはその他として呼ばれようと、命令、命令セット、コード、コードセグメント、プログラムコード、プログラム、サブプログラム、ソフトウェアモジュール、アプリケーション、ソフトウェアアプリケーション、ソフトウェアパッケージ、ルーチン、サブルーチン、オブジェクト、実行可能ファイル、実行のスレッド、プロシージャ、関数などを意味するものと広く解釈されるべきである。ソフトウェアは、コンピュータ可読媒体上に常駐することができる。コンピュータ可読媒体は、例として、磁気記憶デバイス(たとえば、ハードディスク、フロッピー(登録商標)ディスク、磁気ストリップ)、光ディスク(たとえば、コンパクトディスク(CD)、デジタル多用途ディスク(DVD))、スマートカード、フラッシュメモリデバイス(たとえば、カード、スティック、キードライブ)、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、プログラマブルROM(PROM)、消去可能PROM(EPROM)、電気的消去可能なPROM(EEPROM(登録商標))、汎用レジスタ、またはソフトウェアを記憶するための任意の他の適切な非一時的な媒体を含むことができる。
[0025]本開示は、パイプライン処理モードと並列処理モードとの間で構成可能な複数の処理コアを有するネットワークプロセッサを対象とする。パイプライン処理モードでは、データパケットに対するソフトウェアオペレーションは、複数のソフトウェアオペレーションまたはサブタスクへと分割され、各サブタスクは、別個の処理コア上で実行される。
任意の1つの処理コアにより取得されるデータパケットの中間処理は、パイプライン処理の次段に渡すことができる。並列処理モードでは、各データパケットは、処理コアに割り当てられる。各処理コアは、同じソフトウェアを実行して、完了するまでデータパケットを処理する。
任意の1つの処理コアにより取得されるデータパケットの中間処理は、パイプライン処理の次段に渡すことができる。並列処理モードでは、各データパケットは、処理コアに割り当てられる。各処理コアは、同じソフトウェアを実行して、完了するまでデータパケットを処理する。
[0026]図1は、パケットベースのネットワーク100の例を示す概念的なブロック図である。ネットワーク100は、1つまたは複数のネットワークプロセッサ104を用いて、たとえば、コンピュータなどの複数のネットワークデバイス102を相互接続する。ネットワーク100は、インターネットなどの広域ネットワーク(WAN)、イーサネット(登録商標)網などのローカルエリアネットワーク(LAN)、または任意の他の適切なネットワークとすることができる。パケットベースのネットワーク100は、世界的、全国的、地域的、地方自治体的、もしくは施設内、または任意の他の適切な領域を含む任意の適切な領域を包含するように構成することができる。
[0027]ネットワークプロセッサ104は、スイッチ、ルータ、ブリッジ、またはネットワーク100上の他の機器を相互接続する任意の適切なデバイスとすることができる。ネットワークプロセッサ104は、データパケットを、ネットワークを介して導くために使用される1つまたは複数のルックアップテーブルを含むプログラム可能なデバイスとして実施することができる。各ルックアップテーブルは、1つまたは複数のフローテーブルエントリを含む。各フローエントリは、データパケットを処理するために使用される。
[0028]図2は、構成可能なマルチコアネットワークプロセッサ200の概略的なブロック図である。ネットワークプロセッサ200は、第1のコアグループ202と、第2のコアグループ204とを有する。各コアグループ202、204は、データパケットを処理するように構成されたいくつかの処理コアを含む。処理コアは、1つまたは複数のファームウェアと、コアに対してローカルなコードを記憶するための専用メモリとを含むことができる。各コアグループ202、204はまた、処理コアに関連付けられたいくつかのFIFOインターフェース(図示せず)を含むこともできる。
[0029]処理モード機構218、220は、各コアグループ202、204と関連付けられる。処理モード機構218、220は、スイッチおよびマルチプレクサ、またはファブリックロジックおよびバスの1つまたは複数のものを含むことができる。処理モード機構218、220は、パイプライン処理モードと並列処理モードとの間で処理コアを構成するように構成可能である。パイプライン構成もしくはモードでは、ソフトウェアタスクは、複数のサブタスクへと分割され、各タスクは、別個の処理コア上で動作する。任意のコアにより取得された中間的な処理情報は、パイプライン処理における次段へと渡され得る。並列モードでは、いずれのタスクも、オペレーティングシステム(OS)スケジューラの制御により任意のコアで動作され得る。OSスケジューラは、複数の処理コア間の負荷バランスを提供する。代替的に、並列モードでは、タスクは、CPU親和性機構を用いて、特定のコアに固定され得る。別々の処理モード機構218、220が、各コアグループ202、204に対して示されているが、両方のコアグループに対する処理コアを構成するために、単一の機構が使用され得る。
[0030]メモリアービタ206、208が、各コアグループと関連付けられている。アービタ206、208は、メモリ210、212へのインターフェースとして機能し、またメモリへのアクセスを管理する。たとえば、アービタ206、208は、処理コアによるメモリへのアクセスを管理するように構成され得る。アービタ206、208は、メモリに記憶されたコマンド、ならびに関連するプログラム命令およびデータが処理コアに提供されるシーケンスを決定することができる。アービタ206、208は、バスを介して、メモリ210、212へのアクセスを許可することができる。
[0031]メモリ210、212は、マルチコアネットワークプロセッサ200に対して外部のものとすることができ、また1つまたは複数の共用されたスタティックRAM(SRAM)バンク、およびターナリ内容検索メモリ(TCAM:ternary content addressable memory)バンクを含むことができる。メモリ210、212は、プログラムコード、ルックアップテーブル、パケットデータ、および待ち行列情報のうちの1つまたは複数のものを記憶することができる。
[0032]マルチコアネットワークプロセッサ200は、ディスパッチャ214とリアセンブル216とをさらに含む。ディスパッチャ214は、マルチコアネットワークプロセッサ200のオペレーションモードに従って、スイッチコアから受け取ったデータパケットを、処理コアに分配するように構成される。リアセンブラ216は、データパケットを処理コアから受け取り、マルチコアネットワークプロセッサ200のオペレーションモードに従って、データパケットをアセンブラに、または再順序付けするように構成される。リアセンブラ216は、リオーダモジュールと呼ばれ得る。
[0033]パイプライン処理モード:
[0034]図3は、パイプライン処理モードで動作するように構成された例示的なマルチコアネットワークプロセッサ300のブロック図である。例示的なマルチコアネットワークプロセッサ300は、4つの処理コアを有する第1のパイプライン302と、4つの処理コアを有する第2のパイプライン304とを含む(より多くの、またはより少ない処理コアがパイプライン302、304に含まれ得る)。各処理コアは、パケットを処理コアの中に移動させるための入力FIFOインターフェース306と、パケットを処理コアの外に移動させるための出力FIFOインターフェース308とを有する。
[0034]図3は、パイプライン処理モードで動作するように構成された例示的なマルチコアネットワークプロセッサ300のブロック図である。例示的なマルチコアネットワークプロセッサ300は、4つの処理コアを有する第1のパイプライン302と、4つの処理コアを有する第2のパイプライン304とを含む(より多くの、またはより少ない処理コアがパイプライン302、304に含まれ得る)。各処理コアは、パケットを処理コアの中に移動させるための入力FIFOインターフェース306と、パケットを処理コアの外に移動させるための出力FIFOインターフェース308とを有する。
[0035]第1の処理コア310を動作させるファームウェアは、その処理コアに関連付けられた入力FIFOインターフェース306から読み取ることにより、到来するパケットを処理する。処理コア310が到来するパケットの処理を完了したとき、コアのファームウェアは、コアに関連付けられた出力FIFOインターフェース308に対して中間パケットを出力する。「中間パケット」は、処理コアに入力されたパケットの、その処理コアによる処理から得られた、コアプロセッサにより出力されたパケットを指す。中間パケットは、次の処理コアの入力FIFOインターフェース306に入力されて、その処理コアのファームウェアに従って処理される。中間パケットの処理および転送は、最後のパケットが、パイプラインにおける最後の処理コアにより出力されるまで継続する。
[0036]ディスパッチャ314は、2つのパイプライン302、304にパケットを分配することができる。ディスパッチャ314は、異なる分配アルゴリズムを適用することができる。ラウンドロビン分配では、パケットディスパッチャ314は、パケットを二者択一的に分配する。第1のパイプライン302における第1の入力FIFOインターフェース306が、パケットを保持するのに十分ではない場合、ディスパッチャ314は、そのパケットを第2のパイプライン304の第1の入力FIFOインターフェース306に分配することができる。両方のパイプライン302、304の第1の入力FIFOインターフェース306が、パケットを保持するのに十分ではない場合、ディスパッチャ314は、パケットのさらなる分配を停止することができる。ハッシュベースの分配では、パケットディスパッチャ314は、パケットヘッダフィールドまたは他のフィールドに基づく一定のアルゴリズムを適用し、2つのパイプライン302、304のいずれか一方にインデックスを得るためにモジュロ演算を適用する。
[0037]ディスパッチャ314はまた、シーケンス番号をパケットに割り当てることができ、またリオーダモジュール316は、パケットがパイプラインに分配されたのと同じ順序でパケットを回収することができる。再順序付けタスクを容易にするために、シーケンス番号は、FIFOに入る最初の16ビットフィールドとすることができる。
[0038]並列処理モード:
[0039]図4は、並列処理モードで動作するように構成された例示的なマルチコアネットワークプロセッサ400のブロック図である。例示的なマルチコアネットワークプロセッサ400は、4つの処理コアを有する第1のプロセッサグループ402と、4つの処理コアを有する第2のプロセッサグループ404とを含む(より多くの、またはより少ない処理コアが、グループ402、404に含まれ得る)。各処理コアは、入力FIFOインターフェース406と、出力FIFOインターフェース408とを有する。処理コアを動作させるファームウェアは、その処理コアに関連付けられた入力FIFOインターフェース406から読み取ることにより、到来するパケットを処理する。処理コアが、到来するパケットの処理を完了したとき、コアのファームウェアが、処理されたパケットを、コアに関連付けられた出力FIFOインターフェース408に出力する。並列処理モードでは、各処理コアは、同じソフトウェアを実行して、完了するまでパケットを処理することができる。
[0039]図4は、並列処理モードで動作するように構成された例示的なマルチコアネットワークプロセッサ400のブロック図である。例示的なマルチコアネットワークプロセッサ400は、4つの処理コアを有する第1のプロセッサグループ402と、4つの処理コアを有する第2のプロセッサグループ404とを含む(より多くの、またはより少ない処理コアが、グループ402、404に含まれ得る)。各処理コアは、入力FIFOインターフェース406と、出力FIFOインターフェース408とを有する。処理コアを動作させるファームウェアは、その処理コアに関連付けられた入力FIFOインターフェース406から読み取ることにより、到来するパケットを処理する。処理コアが、到来するパケットの処理を完了したとき、コアのファームウェアが、処理されたパケットを、コアに関連付けられた出力FIFOインターフェース408に出力する。並列処理モードでは、各処理コアは、同じソフトウェアを実行して、完了するまでパケットを処理することができる。
[0040]ディスパッチャ414は、2つのプロセッサグループ402、404にパケットを分配することができる。ディスパッチャ414は、異なる分配アルゴリズムを適用することができる。ラウンドロビン分配では、パケットディスパッチャ414は、パケットを二者択一的に分配する。第1のプロセッサグループ402における入力FIFOインターフェース406のうちの1つが、パケットを保持するのに十分ではない場合、ディスパッチャ414は、そのパケットを第2のプロセッサグループ404の入力FIFOインターフェース406の1つに分配することができる。両方のグループ402、404の入力FIFOインターフェース406が、パケットを保持するのに十分ではない場合、ディスパッチャ414は、パケットのさらなる分配を停止することができる。ハッシュベースの分配では、パケットディスパッチャ414は、パケットヘッダフィールドまたは他のフィールドに基づく一定のアルゴリズムを適用し、2つのグループ402、404のいずれか一方にインデックスを得るためにモジュロ演算を適用する。
[0041]ディスパッチャ414はまた、シーケンス番号をパケットに割り当てることができ、またリオーダモジュール416は、パケットがパイプラインに分配されたのと同じ順序でパケットを回収することができる。再順序付けタスクを容易にするために、シーケンス番号は、FIFOに入る最初の16ビットフィールドとすることができる。
[0042]処理モード選択:
[0043]図5は、いくつかの処理コアに対する処理モードの選択を提供する処理モード機構500のブロック図である。処理モード機構500は、いくつかの処理コアを、パイプライン処理モードまたは並列処理モードのいずれかで構成するための手段を提供する。処理モード機構500、または複数の処理コアを構成するための手段は、たとえば、スイッチS0〜S5および/またはマルチプレクサ502a〜502cなどのいくつかのスイッチ要素を含むことができる。スイッチS0〜S5およびマルチプレクサ502の各々は、モード制御信号504により制御され得る。
[0043]図5は、いくつかの処理コアに対する処理モードの選択を提供する処理モード機構500のブロック図である。処理モード機構500は、いくつかの処理コアを、パイプライン処理モードまたは並列処理モードのいずれかで構成するための手段を提供する。処理モード機構500、または複数の処理コアを構成するための手段は、たとえば、スイッチS0〜S5および/またはマルチプレクサ502a〜502cなどのいくつかのスイッチ要素を含むことができる。スイッチS0〜S5およびマルチプレクサ502の各々は、モード制御信号504により制御され得る。
[0044]処理モード機構500は、モード制御信号504が、スイッチS0〜S5をオープン状態に設定し、またマルチプレクサ502a〜502cを、上側のFIFOインターフェースF1、F3、F5、F7にコア出力パケットを導くように設定するとき、処理コアをパイプライン処理モードに構成する。このモードでは、ディスパッチャ514、またはデータパケットを分配するための手段は、パケットをFIFOインターフェースF0に分配する。
[0045]処理コア、またはデータパケットを処理するための手段は、処理モード機構500のスイッチ要素と併せて、分配されたパケットを次のように処理することができる:分配されたパケットは、第1の処理コア506aにより処理される。第1のマルチプレクサ502aは、第1の処理コア506aにより出力された、得られた中間パケットを受け取り、それをFIFOインターフェースF1へと導く。中間パケットは、第2の処理コア506bにより処理される。第2のマルチプレクサ502bは、第2の処理コア506bにより出力された、得られた中間パケットを受け取り、それをFIFOインターフェースF3へと導く。この処理シーケンスは、第4のプロセッサコア506dが、最後のパケットを最後のFIFOインターフェースF7に出力するまで続けられる。リオーダモジュール516は、最後のパケットを最後のFIFOインターフェースF7から受け取る。パイプラインモードでは、下側のFIFOインターフェースF2、F4、F6は使用されない。
[0046]処理モード機構500は、モード制御信号504が、スイッチS0〜S5をクローズ状態に設定し、マルチプレクサ502a〜502cを、ディスパッチャ514入力パケットを上側FIFOインターフェースF1、F3、F5に導くように、また処理コア出力パケットを下側FIFOインターフェースF2、F4、F6、F7に導くように設定したとき、処理コアを並列処理モードに構成する。並列処理モードでは、上側と下側FIFOインターフェースF0〜F7の両方が使用される。
[0047]並列処理モードでは、ディスパッチャ514、またはデータパケットを分配するための手段は、処理モード機構のスイッチ要素と併せて、パケットを次のように処理コアに分配する:第1の処理コア506aに対するパケットは、FIFOインターフェースF0に入力され、第2の処理コア506bに対するパケットは、第1のマルチプレクサ502aを通してFIFOインターフェースF1に入力され、第3の処理コア506cに対するパケットは、第2のマルチプレクサ502bを通してFIFOインターフェースF3に入力され、第4の処理コア506dに対するパケットは、第3のマルチプレクサ502cを通してFIFOインターフェースF5に入力される。
[0048]処理コアの各々は、そのそれぞれのパケットを処理し、またマルチプレクサ502a〜502cを含む処理モード機構500は、次のように処理コア出力トラフィックを導く:第1の処理コア506aの出力はFIFOインターフェースF2に入力され、第2の処理コア506bの出力はFIFOインターフェースF4に入力され、また第3の処理コア506cの出力はFIFOインターフェースF6に入力される。リオーダモジュール516は、FIFOインターフェースF2、F4、F6、およびF7からパケットを収集する。
[0049]図6は、いくつかの処理コアに対して処理モードの選択を提供する他の例示的な処理モード機構600のブロック図である。処理モード機構600は、パイプライン処理モードまたは並列処理モードのいずれかで、いくつかの処理コアを構成するための手段を提供する。処理モード機構600、または複数の処理コアを構成するための手段は、メモリ602、バス604、およびファブリックロジック606を含むことができる。
[0050]いくつかの実施形態では、処理モード機構600は、次のように働くことができる。各処理コア612a〜612d、およびリオーダモジュール616は、IDと関連付けられる。ディスパッチャ614により、処理モード機構600の中に送出された各パケットは、コアの1つ、またはリオーダモジュールに対応するパケットヘッダフィールドにIDを有する。このIDは、パケットをどこに送るべきかを、処理モード機構600のファブリックロジック606に指示する。モード選択信号610は、処理コア612a〜612d、ディスパッチャ614、およびリオーダモジュール616の間でFIFOインターフェースの割り振りを制御する。
[0051]処理モード機構600は、モード選択信号610を介して、処理コアをパイプライン処理モードに構成する。パイプライン処理モードでは、ディスパッチャ614は、第1の処理コア612aに対応するIDを有するパケットを、第1のファブリック入力FIFO618に入力する。パケットは、バス604を通過し、ファブリックロジック606により受け取られる。パケットIDに基づき、ファブリックロジック606は、パケットを、バス604を介して第1の処理コア612a(Core0)のFIFOインターフェースF0_outに送る。
[0052]第1の処理コア612aは、パケットを処理し、第2の処理コア612b(Core1)のIDに対応するようにパケットIDを変更し、パケットを、FIFOインターフェースF0_inに入力する。パケットは、バス604を通過し、ファブリックロジック606により受け取られる。パケットIDに基づき、ファブリックロジック606は、パケットを第2の処理コア612bのFIFOインターフェースF1_outに送る。
[0053]第2の処理コア612bは、パケットを処理し、第3の処理コア612c(Core2)のIDに対応するようにパケットIDを変更し、パケットを、FIFOインターフェースF1_inに入力する。パケットは、次いで、ファブリックロジック606により受け取られる。パケットIDに基づき、ファブリックロジック606は、パケットを第3の処理コア612cのFIFOインターフェースF2_outに送る。
[0054]第3の処理コア612cは、パケットを処理し、第4の処理コア612d(Core3)のIDに対応するようにパケットIDを変更し、パケットを、FIFOインターフェースF2_inに入力する。パケットは、次いで、ファブリックロジック606により受け取られる。パケットIDに基づき、ファブリックロジック606は、パケットを第4の処理コア612dのFIFOインターフェースF3_outに送る。
[0055]第4の処理コア612dは、パケットを処理し、リオーダモジュール616のIDに対応するようにパケットIDを変更し、パケットを、FIFOインターフェースF3_inに入力する。パケットは、次いで、ファブリックロジック606により受け取られる。パケットIDに基づき、ファブリックロジック606は、パケットを、第1のファブリック出力FIFO620を介してリオーダモジュール616に送る。
[0056]パイプラインモードの場合、ディスパッチャモジュールに関連付けられたファブリック入力FIFOインターフェース618の数、およびリオーダモジュール616に関連付けられたファブリック出力FIFOインターフェース620の数は、パイプラインの数と同等にすることができる。たとえば、ここで述べたパイプラインでは、4つの処理コアが単一のパイプラインを形成し、したがって、単一のファブリック入力FIFOインターフェース618だけがディスパッチャ614に関連付けられ、また単一のファブリック出力FIFOインターフェース620が、リオーダモジュール616に関連付けられている。他の構成では、4つの処理コア612a〜612dは、それぞれが2つのコアを有する、2つの別々のパイプラインを規定することができる。この場合、ディスパッチャ614に関連付けられた2つのファブリック入力FIFOインターフェース618、622、およびリオーダモジュール616に関連付けられた2つのファブリック出力FIFOインターフェース620、624が存在することになる。
[0057]処理モード機構600は、モード選択信号610を介して、処理コアを並列処理モードに構成する。並列処理モードでは、ディスパッチャ614、またはデータパケットを分配するための手段は、第1のパケットを、第1の処理コア612a(Core0)に対応するIDを有する第1のファブリック入力FIFOインターフェース618に入力し、第2のパケットを、第2の処理コア612b(Core1)に対応するIDを有する第2のファブリック入力FIFO622に入力し、第3のパケットを、第3の処理コア612c(Core3)に対応するIDを有する第3のファブリック入力FIFOインターフェース(図示せず)に入力し、また第4のパケットを、第4の処理コア612d(Core4)に対応するIDを有する第4のファブリック入力FIFOインターフェース(図示せず)に入力する。
[0058]ファブリックロジック606は、バス604を介してパケットの各々を受け取る。それぞれのパケットIDに基づき、ファブリックロジック606は、各パケットを、対応するFIFOインターフェースF0_out、F1_out、F2_out、およびF3_outに送る。処理コア612a〜612dの各々は、そのそれぞれのパケットを処理し、リオーダモジュール616のIDに対応するようにそのパケットのパケットIDを変更し、そのパケットを、その対応するFIFOインターフェースF0_in、F1_in、F2_in、およびF3_inに出力する。ファブリックロジック606は、パケットを受け取り、パケットを、対応するファブリックアウトFIFOインターフェース620、624を介してリオーダモジュール616に送る。
[0059]並列処理モードの場合、ディスパッチャに関連付けられたファブリック入力FIFOインターフェース618、622の数、およびリオーダモジュールに関連付けられたファブリック出力FIFOインターフェース620、624の数は、処理コア612a〜612dの数と同等にすることができる。たとえば、ここで述べたマルチコアネットワークプロセッサでは、FIFOインターフェースの各タイプのうち2つだけが図6で示されているが、4つのファブリック入力FIFOインターフェース、および4つのファブリック出力FIFOインターフェースがある。
[0060]図7は、パイプライン処理モードと並列処理モードとの間で構成可能なネットワークプロセッサを用いてデータパケットを処理するための例示的な方法700の流れ図である。702では、ネットワークプロセッサは、選択された処理モードで複数の処理コアを構成する。選択された処理モードは、パイプライン処理モードおよび並列処理モードの一方とすることができる。
[0061]たとえば、ネットワークプロセッサは、FIFOインターフェースと、処理モード機構または処理コアを構成するための手段とを用いて、パイプライン処理モードまたは並列処理モードのいずれかで処理コアを構成することができる。そのような処理モード機構または処理コアを構成するための手段は、図5および図6、またはその等価なものを参照して本明細書で開示された、任意の対応する構造、要素、および/または機能とすることができる。その目的のために、ネットワークプロセッサは、パイプライン処理モードまたは並列処理モードのいずれかで動作するように処理コアを相互接続するように、たとえば、スイッチもしくはマルチプレクサなどの複数のスイッチ要素を構成することができる。ネットワークプロセッサはさらに、または代替的に、パイプライン処理モードまたは並列処理モードのいずれかで動作するように、処理コアを相互接続するようにファブリックロジックおよびバスを構成することができる。
[0062]704で、ネットワークプロセッサは、ディスパッチャ、またはパケットを分配するための手段を用いて、データパケットを、選択された処理モードに従って複数の処理コアに分配する。そのようなディスパッチャ、またはパケットを分配するための手段は、図5、および図6、またはその等価なものを参照して本明細書で開示された任意の対応する構造、要素、および/または機能によることができる。
[0063]706で、ネットワークプロセッサは、処理コアまたは処理するための手段を用いてデータパケットを処理する。パケットは、知られたパケットフロー技法に従って処理される。そのような処理は、コアプロセッサに関連付けられたフローテーブルのフローエントリに対して、データパケットをマッチングさせることと、フローエントリのマッチが見出された場合、パケットに対して命令セットを実行することと、パケットを他の処理コアに送ることとを含むことができる。命令を実行することは、パケットを変更し、マッチフィールドを更新することと、アクションセットを更新することと、メタデータを更新することとを含むことができる。パイプライン処理の場合、これらの命令は、パイプライン内の他の処理コアにパケットを導くことができる。並列処理の場合、これらの命令は、パケットをリオーダモジュールへと導くことができる。
[0064]708で、ネットワークプロセッサは、リオーダモジュール、またはパケットを出力するための手段を用いて、データパケットを出力する。そのようなリオーダモジュール、またはパケットを出力するための手段は、図5および図6、またはその等価なものを参照して本明細書で開示された任意の対応する構造、要素、および/または機能によることができる。パイプライン処理の場合、リオーダモジュールは、パイプラインにおける最後の処理コアから最後のデータパケットを受け取る。並列処理の場合、リオーダモジュールは、並列構成における処理コアの各々からパケットを受け取り、そのパケットを望ましい順序で送る。
[0065]本開示の様々な態様が、当業者に本発明を実施できるように提供されている。本開示を通して提示された例示的な実施形態に対する様々な変更は、当業者であれば容易に明らかになるはずであり、また本明細書で開示された概念は、他の磁気記憶デバイスに拡張され得る。したがって、特許請求の範囲は、本開示の様々な態様に限定されるようには意図されておらず、特許請求の範囲の文言に一致する完全な範囲が与えられるべきである。当業者に知られている、または後に知られるようになる、本開示を通して述べられた例示的な実施形態の様々な構成要素に対するすべての構造的、機能的に均等な形態は、参照により本明細書に明示的に組み込まれており、特許請求の範囲により包含されるように意図されている。さらに、そのような開示が特許請求の範囲に明示的に記載されているかどうかにかかわらず、本明細書で開示されたものはいずれも、公知のものとして供されるようには意図されていない。いずれの特許請求の範囲の構成要件も、その構成要件が、フレーズ「ための手段(means for)」を用いて明示的に記載されていない限り、または方法請求項の場合、構成要件が、フレーズ「ためのステップ(step for)」を用いて記載されていない限り、米国特許法第112条第6段落の規定の下に解釈されるべきではない。
[0065]本開示の様々な態様が、当業者に本発明を実施できるように提供されている。本開示を通して提示された例示的な実施形態に対する様々な変更は、当業者であれば容易に明らかになるはずであり、また本明細書で開示された概念は、他の磁気記憶デバイスに拡張され得る。したがって、特許請求の範囲は、本開示の様々な態様に限定されるようには意図されておらず、特許請求の範囲の文言に一致する完全な範囲が与えられるべきである。当業者に知られている、または後に知られるようになる、本開示を通して述べられた例示的な実施形態の様々な構成要素に対するすべての構造的、機能的に均等な形態は、参照により本明細書に明示的に組み込まれており、特許請求の範囲により包含されるように意図されている。さらに、そのような開示が特許請求の範囲に明示的に記載されているかどうかにかかわらず、本明細書で開示されたものはいずれも、公知のものとして供されるようには意図されていない。いずれの特許請求の範囲の構成要件も、その構成要件が、フレーズ「ための手段(means for)」を用いて明示的に記載されていない限り、または方法請求項の場合、構成要件が、フレーズ「ためのステップ(step for)」を用いて記載されていない限り、米国特許法第112条第6段落の規定の下に解釈されるべきではない。
以下に本願の出願当初の特許請求の範囲に記載された発明を付記する。
[C1]
データパケットを処理するための複数の処理コアと、
パイプライン処理モードと並列処理モードとの間で前記処理コアを構成するように構成可能な処理モード機構と
を備えるネットワークプロセッサ。
[C2]
前記処理コアとともに配置される複数の先入れ先出し(FIFO)インターフェースをさらに備え、ここにおいて、前記処理モード機構は、前記パイプライン処理モードまたは前記並列処理モードのいずれかで動作するように、前記FIFOインターフェースと前記処理コアとを相互接続するように構成される、C1に記載のネットワークプロセッサ。
[C3]
前記処理モード機構が、前記パイプライン処理モードまたは前記並列処理モードのいずれかで動作するように、前記処理コアを相互接続するように構成可能な複数のスイッチ要素を備える、C1に記載のネットワークプロセッサ。
[C4]
前記スイッチ要素が、スイッチとマルチプレクサの一方、または両方を備える、C3に記載のネットワークプロセッサ。
[C5]
前記処理モード機構が、前記パイプライン処理モードまたは前記並列処理モードのいずれかで動作するように、前記処理コアを相互接続するように構成可能なファブリックロジックおよびバスを備える、C1に記載のネットワークプロセッサ。
[C6]
前記処理コアは、複数の処理コアグループへと構成可能であり、各グループが、グループ内の前記処理コアを、パイプライン処理モードと並列処理モードとの間で構成するように構成可能な関連する処理モード機構を有する、C1に記載のネットワークプロセッサ。
[C7]
データパケットを処理するための手段と、
パイプライン処理モードと並列処理モードとの間で処理するための前記手段を構成するための手段と
を備えるネットワークプロセッサ。
[C8]
処理するための前記手段とともに配置される複数の先入れ先出し(FIFO)インターフェースをさらに備え、構成するための前記手段が、前記パイプライン処理モードまたは前記並列処理モードのいずれかで動作するように、前記FIFOインターフェースと処理するための前記手段とを相互接続するように構成される、C7に記載のネットワークプロセッサ。
[C9]
処理するための前記手段が、複数の処理コアを備え、また
構成するための前記手段が、前記パイプライン処理モードまたは前記並列処理モードのいずれかで動作するように、前記処理コアを相互接続するように構成可能な複数のスイッチ要素を備える、C7に記載のネットワークプロセッサ。
[C10]
前記スイッチ要素が、スイッチとマルチプレクサの一方、または両方を備える、C9に記載のネットワークプロセッサ。
[C11]
処理するための前記手段が複数の処理コアを備え、また
構成するための前記手段が、前記パイプライン処理モードまたは前記並列処理モードのいずれかで動作するように、前記処理コアを相互接続するように構成可能なファブリックロジックおよびバスを備える、C7に記載のネットワークプロセッサ。
[C12]
処理するための前記手段は、複数の処理コアグループへと構成可能な複数の処理コアを備え、各グループが、グループ内の前記処理コアを、パイプライン処理モードと並列処理モードとの間で構成するための関連する手段を有する、C7に記載のネットワークプロセッサ。
[C13]
データパケットを処理する方法であって、
複数の処理コアを選択された処理モードで構成することを備え、前記選択された処理モードが、パイプライン処理モードおよび並列処理モードの一方を備える、方法。
[C14]
構成することが、前記パイプライン処理モードまたは前記並列処理モードのいずれかで動作するように、前記処理コアを、複数の先入れ先出し(FIFO)インターフェースと相互接続することを備える、C13に記載の方法。
[C15]
構成することが、前記パイプライン処理モードまたは前記並列処理モードのいずれかで動作するように、前記処理コアを相互接続するように複数のスイッチ要素を構成することを備える、C13に記載の方法。
[C16]
前記スイッチ要素が、スイッチとマルチプレクサの一方、または両方を備える、C15に記載の方法。
[C17]
構成することが、前記パイプライン処理モードまたは前記並列処理モードのいずれかで動作するように、前記処理コアを相互接続するようにファブリックロジックおよびバスを構成することを備える、C13に記載の方法。
[C18]
コンピュータプログラム製品であって、
ネットワークプロセッサにより実行可能なコードを備えるコンピュータ可読媒体を備え、前記ネットワークプロセッサが、複数の処理コアと処理モード機構とを備え、前記コードが前記ネットワークプロセッサで実行されたとき、前記ネットワークプロセッサに、
複数の処理コアを選択された処理モードで構成させる、前記選択された処理モードがパイプライン処理モードおよび並列処理モードの一方を備える、コンピュータプログラム製品。
[C19]
前記コードが、前記ネットワークプロセッサで実行されたとき、前記ネットワークプロセッサに、前記パイプライン処理モードまたは前記並列処理モードのいずれかで動作するように、前記処理コアを複数の先入れ先出し(FIFO)インターフェースと相互接続することにより、複数の処理コアを選択されたモードで構成させる、C18に記載のコンピュータプログラム製品。
[C20]
前記コードが、前記ネットワークプロセッサで実行されたとき、前記ネットワークプロセッサに、前記パイプライン処理モードまたは前記並列処理モードのいずれかで動作するように前記処理コアを相互接続するように、複数のスイッチ要素を構成することにより、複数の処理コアを選択された処理モードで構成させる、C18に記載のコンピュータプログラム製品。
[C21]
前記スイッチ要素は、スイッチとマルチプレクサの一方、または両方を備える、C20に記載のコンピュータプログラム製品。
[C22]
前記コードが、前記ネットワークプロセッサで実行されたとき、前記ネットワークプロセッサに、前記パイプライン処理モードまたは前記並列処理モードのいずれかで動作するように前記処理コアを相互接続するようにファブリックロジックおよびバスを構成することにより、複数の処理コアを選択された処理モードで構成させる、C18に記載のコンピュータプログラム製品。
[C23]
データパケットを処理するための複数の処理コアを備え、ここにおいて、前記処理コアが、パイプライン処理モードと並列処理モードとの間で構成可能である、ネットワークプロセッサ。
[C24]
前記パイプライン処理モードまたは前記並列処理モードのいずれかで動作するように、前記処理コアを相互接続するように構成された複数のスイッチをさらに備える、C23に記載のネットワークプロセッサ。
[C25]
前記処理コアとともに配置された複数の先入れ先出し(FIFO)インターフェースをさらに備え、ここにおいて、前記スイッチ要素が、前記パイプライン処理モードまたは前記並列処理モードのいずれかで動作するように、前記FIFOインターフェースと前記処理コアとを相互接続するようにさらに構成される、C24に記載のネットワークプロセッサ。
[C26]
メモリと、前記メモリへのアクセスを前記処理コアに提供するためのメモリバスとをさらに備え、ここにおいて、前記メモリバスが、前記パイプライン処理モードまたは前記並列処理モードのいずれかで動作するように前記処理コアを相互接続する、C23に記載のネットワークプロセッサ。
[C27]
前記処理コアが、前記パイプライン処理モードにおける複数のパイプラインへと構成可能である、C23に記載のネットワークプロセッサ。
以下に本願の出願当初の特許請求の範囲に記載された発明を付記する。
[C1]
データパケットを処理するための複数の処理コアと、
パイプライン処理モードと並列処理モードとの間で前記処理コアを構成するように構成可能な処理モード機構と
を備えるネットワークプロセッサ。
[C2]
前記処理コアとともに配置される複数の先入れ先出し(FIFO)インターフェースをさらに備え、ここにおいて、前記処理モード機構は、前記パイプライン処理モードまたは前記並列処理モードのいずれかで動作するように、前記FIFOインターフェースと前記処理コアとを相互接続するように構成される、C1に記載のネットワークプロセッサ。
[C3]
前記処理モード機構が、前記パイプライン処理モードまたは前記並列処理モードのいずれかで動作するように、前記処理コアを相互接続するように構成可能な複数のスイッチ要素を備える、C1に記載のネットワークプロセッサ。
[C4]
前記スイッチ要素が、スイッチとマルチプレクサの一方、または両方を備える、C3に記載のネットワークプロセッサ。
[C5]
前記処理モード機構が、前記パイプライン処理モードまたは前記並列処理モードのいずれかで動作するように、前記処理コアを相互接続するように構成可能なファブリックロジックおよびバスを備える、C1に記載のネットワークプロセッサ。
[C6]
前記処理コアは、複数の処理コアグループへと構成可能であり、各グループが、グループ内の前記処理コアを、パイプライン処理モードと並列処理モードとの間で構成するように構成可能な関連する処理モード機構を有する、C1に記載のネットワークプロセッサ。
[C7]
データパケットを処理するための手段と、
パイプライン処理モードと並列処理モードとの間で処理するための前記手段を構成するための手段と
を備えるネットワークプロセッサ。
[C8]
処理するための前記手段とともに配置される複数の先入れ先出し(FIFO)インターフェースをさらに備え、構成するための前記手段が、前記パイプライン処理モードまたは前記並列処理モードのいずれかで動作するように、前記FIFOインターフェースと処理するための前記手段とを相互接続するように構成される、C7に記載のネットワークプロセッサ。
[C9]
処理するための前記手段が、複数の処理コアを備え、また
構成するための前記手段が、前記パイプライン処理モードまたは前記並列処理モードのいずれかで動作するように、前記処理コアを相互接続するように構成可能な複数のスイッチ要素を備える、C7に記載のネットワークプロセッサ。
[C10]
前記スイッチ要素が、スイッチとマルチプレクサの一方、または両方を備える、C9に記載のネットワークプロセッサ。
[C11]
処理するための前記手段が複数の処理コアを備え、また
構成するための前記手段が、前記パイプライン処理モードまたは前記並列処理モードのいずれかで動作するように、前記処理コアを相互接続するように構成可能なファブリックロジックおよびバスを備える、C7に記載のネットワークプロセッサ。
[C12]
処理するための前記手段は、複数の処理コアグループへと構成可能な複数の処理コアを備え、各グループが、グループ内の前記処理コアを、パイプライン処理モードと並列処理モードとの間で構成するための関連する手段を有する、C7に記載のネットワークプロセッサ。
[C13]
データパケットを処理する方法であって、
複数の処理コアを選択された処理モードで構成することを備え、前記選択された処理モードが、パイプライン処理モードおよび並列処理モードの一方を備える、方法。
[C14]
構成することが、前記パイプライン処理モードまたは前記並列処理モードのいずれかで動作するように、前記処理コアを、複数の先入れ先出し(FIFO)インターフェースと相互接続することを備える、C13に記載の方法。
[C15]
構成することが、前記パイプライン処理モードまたは前記並列処理モードのいずれかで動作するように、前記処理コアを相互接続するように複数のスイッチ要素を構成することを備える、C13に記載の方法。
[C16]
前記スイッチ要素が、スイッチとマルチプレクサの一方、または両方を備える、C15に記載の方法。
[C17]
構成することが、前記パイプライン処理モードまたは前記並列処理モードのいずれかで動作するように、前記処理コアを相互接続するようにファブリックロジックおよびバスを構成することを備える、C13に記載の方法。
[C18]
コンピュータプログラム製品であって、
ネットワークプロセッサにより実行可能なコードを備えるコンピュータ可読媒体を備え、前記ネットワークプロセッサが、複数の処理コアと処理モード機構とを備え、前記コードが前記ネットワークプロセッサで実行されたとき、前記ネットワークプロセッサに、
複数の処理コアを選択された処理モードで構成させる、前記選択された処理モードがパイプライン処理モードおよび並列処理モードの一方を備える、コンピュータプログラム製品。
[C19]
前記コードが、前記ネットワークプロセッサで実行されたとき、前記ネットワークプロセッサに、前記パイプライン処理モードまたは前記並列処理モードのいずれかで動作するように、前記処理コアを複数の先入れ先出し(FIFO)インターフェースと相互接続することにより、複数の処理コアを選択されたモードで構成させる、C18に記載のコンピュータプログラム製品。
[C20]
前記コードが、前記ネットワークプロセッサで実行されたとき、前記ネットワークプロセッサに、前記パイプライン処理モードまたは前記並列処理モードのいずれかで動作するように前記処理コアを相互接続するように、複数のスイッチ要素を構成することにより、複数の処理コアを選択された処理モードで構成させる、C18に記載のコンピュータプログラム製品。
[C21]
前記スイッチ要素は、スイッチとマルチプレクサの一方、または両方を備える、C20に記載のコンピュータプログラム製品。
[C22]
前記コードが、前記ネットワークプロセッサで実行されたとき、前記ネットワークプロセッサに、前記パイプライン処理モードまたは前記並列処理モードのいずれかで動作するように前記処理コアを相互接続するようにファブリックロジックおよびバスを構成することにより、複数の処理コアを選択された処理モードで構成させる、C18に記載のコンピュータプログラム製品。
[C23]
データパケットを処理するための複数の処理コアを備え、ここにおいて、前記処理コアが、パイプライン処理モードと並列処理モードとの間で構成可能である、ネットワークプロセッサ。
[C24]
前記パイプライン処理モードまたは前記並列処理モードのいずれかで動作するように、前記処理コアを相互接続するように構成された複数のスイッチをさらに備える、C23に記載のネットワークプロセッサ。
[C25]
前記処理コアとともに配置された複数の先入れ先出し(FIFO)インターフェースをさらに備え、ここにおいて、前記スイッチ要素が、前記パイプライン処理モードまたは前記並列処理モードのいずれかで動作するように、前記FIFOインターフェースと前記処理コアとを相互接続するようにさらに構成される、C24に記載のネットワークプロセッサ。
[C26]
メモリと、前記メモリへのアクセスを前記処理コアに提供するためのメモリバスとをさらに備え、ここにおいて、前記メモリバスが、前記パイプライン処理モードまたは前記並列処理モードのいずれかで動作するように前記処理コアを相互接続する、C23に記載のネットワークプロセッサ。
[C27]
前記処理コアが、前記パイプライン処理モードにおける複数のパイプラインへと構成可能である、C23に記載のネットワークプロセッサ。
Claims (27)
- データパケットを処理するための複数の処理コアと、
パイプライン処理モードと並列処理モードとの間で前記処理コアを構成するように構成可能な処理モード機構と
を備えるネットワークプロセッサ。 - 前記処理コアとともに配置される複数の先入れ先出し(FIFO)インターフェースをさらに備え、ここにおいて、前記処理モード機構は、前記パイプライン処理モードまたは前記並列処理モードのいずれかで動作するように、前記FIFOインターフェースと前記処理コアとを相互接続するように構成される、請求項1に記載のネットワークプロセッサ。
- 前記処理モード機構が、前記パイプライン処理モードまたは前記並列処理モードのいずれかで動作するように、前記処理コアを相互接続するように構成可能な複数のスイッチ要素を備える、請求項1に記載のネットワークプロセッサ。
- 前記スイッチ要素が、スイッチとマルチプレクサの一方、または両方を備える、請求項3に記載のネットワークプロセッサ。
- 前記処理モード機構が、前記パイプライン処理モードまたは前記並列処理モードのいずれかで動作するように、前記処理コアを相互接続するように構成可能なファブリックロジックおよびバスを備える、請求項1に記載のネットワークプロセッサ。
- 前記処理コアは、複数の処理コアグループへと構成可能であり、各グループが、グループ内の前記処理コアを、パイプライン処理モードと並列処理モードとの間で構成するように構成可能な関連する処理モード機構を有する、請求項1に記載のネットワークプロセッサ。
- データパケットを処理するための手段と、
パイプライン処理モードと並列処理モードとの間で処理するための前記手段を構成するための手段と
を備えるネットワークプロセッサ。 - 処理するための前記手段とともに配置される複数の先入れ先出し(FIFO)インターフェースをさらに備え、構成するための前記手段が、前記パイプライン処理モードまたは前記並列処理モードのいずれかで動作するように、前記FIFOインターフェースと処理するための前記手段とを相互接続するように構成される、請求項7に記載のネットワークプロセッサ。
- 処理するための前記手段が、複数の処理コアを備え、また
構成するための前記手段が、前記パイプライン処理モードまたは前記並列処理モードのいずれかで動作するように、前記処理コアを相互接続するように構成可能な複数のスイッチ要素を備える、請求項7に記載のネットワークプロセッサ。 - 前記スイッチ要素が、スイッチとマルチプレクサの一方、または両方を備える、請求項9に記載のネットワークプロセッサ。
- 処理するための前記手段が複数の処理コアを備え、また
構成するための前記手段が、前記パイプライン処理モードまたは前記並列処理モードのいずれかで動作するように、前記処理コアを相互接続するように構成可能なファブリックロジックおよびバスを備える、請求項7に記載のネットワークプロセッサ。 - 処理するための前記手段は、複数の処理コアグループへと構成可能な複数の処理コアを備え、各グループが、グループ内の前記処理コアを、パイプライン処理モードと並列処理モードとの間で構成するための関連する手段を有する、請求項7に記載のネットワークプロセッサ。
- データパケットを処理する方法であって、
複数の処理コアを選択された処理モードで構成することを備え、前記選択された処理モードが、パイプライン処理モードおよび並列処理モードの一方を備える、方法。 - 構成することが、前記パイプライン処理モードまたは前記並列処理モードのいずれかで動作するように、前記処理コアを、複数の先入れ先出し(FIFO)インターフェースと相互接続することを備える、請求項13に記載の方法。
- 構成することが、前記パイプライン処理モードまたは前記並列処理モードのいずれかで動作するように、前記処理コアを相互接続するように複数のスイッチ要素を構成することを備える、請求項13に記載の方法。
- 前記スイッチ要素が、スイッチとマルチプレクサの一方、または両方を備える、請求項15に記載の方法。
- 構成することが、前記パイプライン処理モードまたは前記並列処理モードのいずれかで動作するように、前記処理コアを相互接続するようにファブリックロジックおよびバスを構成することを備える、請求項13に記載の方法。
- コンピュータプログラム製品であって、
ネットワークプロセッサにより実行可能なコードを備えるコンピュータ可読媒体を備え、前記ネットワークプロセッサが、複数の処理コアと処理モード機構とを備え、前記コードが前記ネットワークプロセッサで実行されたとき、前記ネットワークプロセッサに、
複数の処理コアを選択された処理モードで構成させる、前記選択された処理モードがパイプライン処理モードおよび並列処理モードの一方を備える、コンピュータプログラム製品。 - 前記コードが、前記ネットワークプロセッサで実行されたとき、前記ネットワークプロセッサに、前記パイプライン処理モードまたは前記並列処理モードのいずれかで動作するように、前記処理コアを複数の先入れ先出し(FIFO)インターフェースと相互接続することにより、複数の処理コアを選択されたモードで構成させる、請求項18に記載のコンピュータプログラム製品。
- 前記コードが、前記ネットワークプロセッサで実行されたとき、前記ネットワークプロセッサに、前記パイプライン処理モードまたは前記並列処理モードのいずれかで動作するように前記処理コアを相互接続するように、複数のスイッチ要素を構成することにより、複数の処理コアを選択された処理モードで構成させる、請求項18に記載のコンピュータプログラム製品。
- 前記スイッチ要素は、スイッチとマルチプレクサの一方、または両方を備える、請求項20に記載のコンピュータプログラム製品。
- 前記コードが、前記ネットワークプロセッサで実行されたとき、前記ネットワークプロセッサに、前記パイプライン処理モードまたは前記並列処理モードのいずれかで動作するように前記処理コアを相互接続するようにファブリックロジックおよびバスを構成することにより、複数の処理コアを選択された処理モードで構成させる、請求項18に記載のコンピュータプログラム製品。
- データパケットを処理するための複数の処理コアを備え、ここにおいて、前記処理コアが、パイプライン処理モードと並列処理モードとの間で構成可能である、ネットワークプロセッサ。
- 前記パイプライン処理モードまたは前記並列処理モードのいずれかで動作するように、前記処理コアを相互接続するように構成された複数のスイッチをさらに備える、請求項23に記載のネットワークプロセッサ。
- 前記処理コアとともに配置された複数の先入れ先出し(FIFO)インターフェースをさらに備え、ここにおいて、前記スイッチ要素が、前記パイプライン処理モードまたは前記並列処理モードのいずれかで動作するように、前記FIFOインターフェースと前記処理コアとを相互接続するようにさらに構成される、請求項24に記載のネットワークプロセッサ。
- メモリと、前記メモリへのアクセスを前記処理コアに提供するためのメモリバスとをさらに備え、ここにおいて、前記メモリバスが、前記パイプライン処理モードまたは前記並列処理モードのいずれかで動作するように前記処理コアを相互接続する、請求項23に記載のネットワークプロセッサ。
- 前記処理コアが、前記パイプライン処理モードにおける複数のパイプラインへと構成可能である、請求項23に記載のネットワークプロセッサ。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/797,838 US9430239B2 (en) | 2013-03-12 | 2013-03-12 | Configurable multicore network processor |
US13/797,838 | 2013-03-12 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016501225A Division JP6193467B2 (ja) | 2013-03-12 | 2014-03-11 | 構成可能なマルチコアネットワークプロセッサ |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2017225166A true JP2017225166A (ja) | 2017-12-21 |
Family
ID=50628906
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016501225A Expired - Fee Related JP6193467B2 (ja) | 2013-03-12 | 2014-03-11 | 構成可能なマルチコアネットワークプロセッサ |
JP2017154241A Ceased JP2017225166A (ja) | 2013-03-12 | 2017-08-09 | 構成可能なマルチコアネットワークプロセッサ |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016501225A Expired - Fee Related JP6193467B2 (ja) | 2013-03-12 | 2014-03-11 | 構成可能なマルチコアネットワークプロセッサ |
Country Status (6)
Country | Link |
---|---|
US (1) | US9430239B2 (ja) |
EP (1) | EP2974185A2 (ja) |
JP (2) | JP6193467B2 (ja) |
KR (1) | KR101714659B1 (ja) |
CN (1) | CN105075204B (ja) |
WO (1) | WO2014164752A2 (ja) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150019702A1 (en) * | 2013-07-10 | 2015-01-15 | Brocade Communications Systems, Inc. | Flexible flow offload |
US9348602B1 (en) | 2013-09-03 | 2016-05-24 | Amazon Technologies, Inc. | Resource allocation for staged execution pipelining |
CN105159779B (zh) * | 2015-08-17 | 2020-03-13 | 深圳中兴网信科技有限公司 | 提高多核cpu数据处理性能的方法和系统 |
EP3433985B1 (en) * | 2016-03-23 | 2021-01-27 | Clavister AB | Method for traffic shaping using a serial packet processing algorithm and a parallel packet processing algorithm |
US10924416B2 (en) | 2016-03-23 | 2021-02-16 | Clavister Ab | Method for traffic shaping using a serial packet processing algorithm and a parallel packet processing algorithm |
US9832072B1 (en) * | 2016-05-31 | 2017-11-28 | 128 Technology, Inc. | Self-configuring computer network router |
WO2018018611A1 (zh) * | 2016-07-29 | 2018-02-01 | 华为技术有限公司 | 一种任务处理方法以及网卡 |
US20180089117A1 (en) | 2016-09-26 | 2018-03-29 | Wave Computing, Inc. | Reconfigurable fabric accessing external memory |
CA3060368C (en) * | 2017-04-17 | 2020-07-28 | Cerebras Systems Inc. | Dataflow triggered tasks for accelerated deep learning |
JP7137588B2 (ja) * | 2017-06-16 | 2022-09-14 | ドライブネッツ リミテッド | マルチコアコンピューティングプラットフォームにおける並列情報処理 |
US11165720B2 (en) * | 2017-12-19 | 2021-11-02 | Xilinx, Inc. | Network interface device |
JP6977621B2 (ja) * | 2018-03-02 | 2021-12-08 | 日本電信電話株式会社 | 制御装置、及び制御方法 |
CN109918043B (zh) * | 2019-03-04 | 2020-12-08 | 上海熠知电子科技有限公司 | 一种基于虚拟通道的运算单元共享方法和系统 |
KR20200112439A (ko) * | 2019-03-22 | 2020-10-05 | 삼성전자주식회사 | 멀티 코어를 포함하는 전자 장치 및 이의 패킷 처리를 위한 방법 |
US10826801B1 (en) | 2019-07-31 | 2020-11-03 | Bank Of America Corporation | Multi-level data channel and inspection architectures |
US11115310B2 (en) * | 2019-08-06 | 2021-09-07 | Bank Of America Corporation | Multi-level data channel and inspection architectures having data pipes in parallel connections |
US11470046B2 (en) | 2019-08-26 | 2022-10-11 | Bank Of America Corporation | Multi-level data channel and inspection architecture including security-level-based filters for diverting network traffic |
CN111884948B (zh) * | 2020-07-09 | 2022-08-12 | 烽火通信科技股份有限公司 | 一种流水线调度方法与装置 |
CN113986813B (zh) * | 2021-09-18 | 2023-08-04 | 苏州浪潮智能科技有限公司 | 片上网络结构构建及使用的方法、系统、设备和存储介质 |
CN115185878A (zh) * | 2022-05-24 | 2022-10-14 | 中科驭数(北京)科技有限公司 | 一种多核分组网络处理器架构及任务调度方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5960683A (ja) * | 1982-09-30 | 1984-04-06 | Toshiba Corp | アレイプロセッサ装置 |
JPH02284277A (ja) * | 1989-04-26 | 1990-11-21 | Mitsubishi Electric Corp | グラフィック表示装置 |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4811210A (en) * | 1985-11-27 | 1989-03-07 | Texas Instruments Incorporated | A plurality of optical crossbar switches and exchange switches for parallel processor computer |
US6128720A (en) * | 1994-12-29 | 2000-10-03 | International Business Machines Corporation | Distributed processing array with component processors performing customized interpretation of instructions |
US6272616B1 (en) | 1998-06-17 | 2001-08-07 | Agere Systems Guardian Corp. | Method and apparatus for executing multiple instruction streams in a digital processor with multiple data paths |
JP2000295613A (ja) * | 1999-04-09 | 2000-10-20 | Nippon Telegr & Teleph Corp <Ntt> | 再構成可能なハードウェアを用いた画像符号化方法,画像符号化装置および画像符号化のためのプログラム記録媒体 |
US20020107903A1 (en) | 2000-11-07 | 2002-08-08 | Richter Roger K. | Methods and systems for the order serialization of information in a network processing environment |
US6883084B1 (en) * | 2001-07-25 | 2005-04-19 | University Of New Mexico | Reconfigurable data path processor |
US6781407B2 (en) * | 2002-01-09 | 2004-08-24 | Xilinx, Inc. | FPGA and embedded circuitry initialization and processing |
US7420392B2 (en) * | 2001-09-28 | 2008-09-02 | Xilinx, Inc. | Programmable gate array and embedded circuitry initialization and processing |
US6789167B2 (en) | 2002-03-06 | 2004-09-07 | Hewlett-Packard Development Company, L.P. | Method and apparatus for multi-core processor integrated circuit having functional elements configurable as core elements and as system device elements |
US20110238948A1 (en) | 2002-08-07 | 2011-09-29 | Martin Vorbach | Method and device for coupling a data processing unit and a data processing array |
AU2003252054B2 (en) * | 2002-08-24 | 2008-09-25 | Cisco Technology, Inc. | Packet processing engine |
US7340585B1 (en) * | 2002-08-27 | 2008-03-04 | Xilinx, Inc. | Method and system for fast linked processor in a system on a chip (SoC) |
US7334086B2 (en) | 2002-10-08 | 2008-02-19 | Rmi Corporation | Advanced processor with system on a chip interconnect technology |
US8669988B2 (en) * | 2004-03-10 | 2014-03-11 | Qualcomm Incorporated | High data rate interface apparatus and method |
JP4546775B2 (ja) * | 2004-06-30 | 2010-09-15 | 富士通株式会社 | 時分割多重処理可能なリコンフィギュラブル回路 |
US20060047849A1 (en) * | 2004-06-30 | 2006-03-02 | Mukherjee Shubhendu S | Apparatus and method for packet coalescing within interconnection network routers |
US7738385B2 (en) | 2004-11-30 | 2010-06-15 | Broadcom Corporation | Mirroring of data in a network device |
KR100729241B1 (ko) * | 2005-12-05 | 2007-06-15 | 주식회사 텔레칩스 | 디블록킹 필터 |
JP4878487B2 (ja) * | 2006-03-30 | 2012-02-15 | キヤノン株式会社 | 情報配信装置、情報配信システム、情報処理方法、およびプログラム |
JP5354427B2 (ja) * | 2006-06-28 | 2013-11-27 | アクロニクス セミコンダクター コーポレイション | 集積回路のための再構成可能論理ファブリックおよび再構成可能論理ファブリックを構成するためのシステムおよび方法 |
US8099583B2 (en) * | 2006-08-23 | 2012-01-17 | Axis Semiconductor, Inc. | Method of and apparatus and architecture for real time signal processing by switch-controlled programmable processor configuring and flexible pipeline and parallel processing |
US20090128189A1 (en) * | 2007-11-19 | 2009-05-21 | Raminda Udaya Madurawe | Three dimensional programmable devices |
US8094560B2 (en) | 2008-05-19 | 2012-01-10 | Cisco Technology, Inc. | Multi-stage multi-core processing of network packets |
CN103004158B (zh) | 2011-01-06 | 2016-12-28 | 马维尔以色列(M.I.S.L)有限公司 | 具有可编程内核的网络设备 |
US9449257B2 (en) * | 2012-12-04 | 2016-09-20 | Institute Of Semiconductors, Chinese Academy Of Sciences | Dynamically reconstructable multistage parallel single instruction multiple data array processing system |
-
2013
- 2013-03-12 US US13/797,838 patent/US9430239B2/en active Active
-
2014
- 2014-03-11 EP EP14720742.7A patent/EP2974185A2/en not_active Withdrawn
- 2014-03-11 KR KR1020157027586A patent/KR101714659B1/ko active IP Right Grant
- 2014-03-11 CN CN201480013074.7A patent/CN105075204B/zh not_active Expired - Fee Related
- 2014-03-11 WO PCT/US2014/023395 patent/WO2014164752A2/en active Application Filing
- 2014-03-11 JP JP2016501225A patent/JP6193467B2/ja not_active Expired - Fee Related
-
2017
- 2017-08-09 JP JP2017154241A patent/JP2017225166A/ja not_active Ceased
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5960683A (ja) * | 1982-09-30 | 1984-04-06 | Toshiba Corp | アレイプロセッサ装置 |
JPH02284277A (ja) * | 1989-04-26 | 1990-11-21 | Mitsubishi Electric Corp | グラフィック表示装置 |
Also Published As
Publication number | Publication date |
---|---|
US20140281385A1 (en) | 2014-09-18 |
CN105075204A (zh) | 2015-11-18 |
US9430239B2 (en) | 2016-08-30 |
KR101714659B1 (ko) | 2017-03-09 |
CN105075204B (zh) | 2018-03-16 |
JP6193467B2 (ja) | 2017-09-06 |
JP2016516352A (ja) | 2016-06-02 |
KR20150128828A (ko) | 2015-11-18 |
WO2014164752A2 (en) | 2014-10-09 |
WO2014164752A3 (en) | 2014-12-24 |
EP2974185A2 (en) | 2016-01-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6193467B2 (ja) | 構成可能なマルチコアネットワークプロセッサ | |
US10970144B2 (en) | Packet processing on a multi-core processor | |
US10331468B2 (en) | Techniques for routing service chain flow packets between virtual machines | |
US10037222B2 (en) | Virtualization of hardware accelerator allowing simultaneous reading and writing | |
US9992113B2 (en) | Virtual network interface controller performance using physical network interface controller receive side scaling offloads | |
CN105511954B (zh) | 一种报文处理方法及装置 | |
WO2017166777A1 (zh) | 一种任务调度方法及装置 | |
US8954993B2 (en) | Local message queue processing for co-located workers | |
US8966484B2 (en) | Information processing apparatus, information processing method, and storage medium | |
US20140344826A1 (en) | Architecture for Efficient Computation of Heterogeneous Workloads | |
KR20110118810A (ko) | 다수의 가상 서버들 사이에 공유 자원들의 할당을 통한 소프트웨어 제어기능을 갖는 마이크로 프로세서 | |
US10757039B2 (en) | Apparatus and method for routing data in a switch | |
US20140281417A1 (en) | Systems, methods, and computer program products providing a data unit sequencing queue | |
US9164771B2 (en) | Method for thread reduction in a multi-thread packet processor | |
WO2014173166A1 (zh) | 一种共享资源的调度方法和系统 | |
CN106575220A (zh) | 多个经集群极长指令字处理核心 | |
US9438414B2 (en) | Virtualized SHA computational engine | |
JP2013206095A (ja) | データ処理装置及びデータ処理装置の制御方法 | |
WO2016188032A1 (zh) | 利用流表转发数据的方法及系统 | |
WO2015165323A1 (zh) | 一种数据处理方法、处理器及数据处理设备 | |
US20180144018A1 (en) | Method for changing allocation of data using synchronization token | |
US8683100B1 (en) | Method and apparatus for handling data flow in a multi-chip environment using an interchip interface | |
KR101634672B1 (ko) | 네트워크 인터페이스 가상화 장치, 방법 및 이를 실행하기 위한 컴퓨터 프로그램 | |
US11194734B2 (en) | Packet processing device, packet processing method, and recording medium | |
WO2023084740A1 (ja) | データ生成装置およびプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180918 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20180925 |
|
A045 | Written measure of dismissal of application [lapsed due to lack of payment] |
Free format text: JAPANESE INTERMEDIATE CODE: A045 Effective date: 20190129 |