JP6676027B2 - ネットワークプロセッサにおけるマルチコア相互接続 - Google Patents

ネットワークプロセッサにおけるマルチコア相互接続 Download PDF

Info

Publication number
JP6676027B2
JP6676027B2 JP2017213851A JP2017213851A JP6676027B2 JP 6676027 B2 JP6676027 B2 JP 6676027B2 JP 2017213851 A JP2017213851 A JP 2017213851A JP 2017213851 A JP2017213851 A JP 2017213851A JP 6676027 B2 JP6676027 B2 JP 6676027B2
Authority
JP
Japan
Prior art keywords
cache
interconnect circuit
processor cores
request
data
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.)
Active
Application number
JP2017213851A
Other languages
English (en)
Other versions
JP2018045700A (ja
Inventor
ケスラー・リチャード・イー
アシャー・ディビッド・エイチ
パーヴェイラー・ジョン・エム
ドビー・ブラッドリー・ディ
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.)
Cavium LLC
Original Assignee
Cavium Networks LLC
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 Cavium Networks LLC filed Critical Cavium Networks LLC
Publication of JP2018045700A publication Critical patent/JP2018045700A/ja
Application granted granted Critical
Publication of JP6676027B2 publication Critical patent/JP6676027B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0808Multiuser, multiprocessor or multiprocessing cache systems with cache invalidating means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)

Description

関連出願
本願は、2011年10月31日に出願された米国特許出願第13/285,629号明細書の継続出願であり、その利益を主張するものであり、この特許出願の教示全体を参照により本明細書に援用する。
典型的なネットワークプロセッサは、上位ネットワークプロトコルのパケット処理動作等の作業をスケジュールし待ち行列に入れ、受信パケットを接続された装置に転送する前に、受信パケットにおける上位ネットワークプロトコル(例えば、トランスポートレイヤ及びアプリケーションレイヤ)に関する処理を可能にする。通常、ネットワークプロセッサによって実行されるこの機能は、パケットフィルタリング、待ち行列の管理及び優先度付け、サービス品質強化、及びアクセス制御を含む。処理パケットデータに固有の特徴を利用することにより、ネットワークプロセッサは、ネットワーク接続された装置のインタフェースを最適化することができる。
本発明の各実施形態は、ネットワークプロセッサにおいてデータの転送及び処理を制御するシステムを提供する。相互接続回路が、複数のプロセッサコアの群とキャッシュとの間での通信を誘導する。複数のメモリバスはそれぞれ、複数のプロセッサコアの各群を相互接続回路に接続する。キャッシュは複数のバンクに分割され、各バンクは、個別のバスを通して相互接続回路に接続される。相互接続回路は、複数のプロセッサコアから受信する要求(リクエスト)をキャッシュバンクに分配することを提供する。
更なる実施形態では、相互接続回路は、要求のアドレスコンポーネントを変更することによって要求を変換することができる。この変換は、各要求に対してハッシュ関数を実行することを含み、これにより、複数のバンクへの要求の疑似ランダム分布を提供する。相互接続回路又はキャッシュバンクは、複数のプロセッサコアに結合されたL1キャッシュ(1次キャッシュ)の状態を示すタグを保持するように更に構成し得る。相互接続回路は、受信した要求内のタグを複数のチャネルに向ける(誘導する)ことができ、それにより、複数のタグを同時に処理する。
更なる実施形態では、相互接続回路はいくつかのデータ出力バッファを含むことができる。各データ出力バッファは、複数のバンクのそれぞれからデータを受信し、メモリバスのそれぞれ1つを通してデータを出力し得る。相互接続回路は、いくつかの要求バッファを含むこともでき、各要求バッファは、各プロセッサ群から要求を受信し、要求をバンクのそれぞれ1つに出力する。
更なる実施形態では、1つ又は複数のブリッジ回路をメモリバスに結合し得る。ブリッジ回路は、プロセッサコアを1つ又は複数のオンチップコプロセッサに接続し得る。さらに、メモリのコヒーレンス性を維持するために、キャッシュバンクは、複数のプロセッサコアへのコミット信号の送信を遅延させ得る。次に、キャッシュバンクは、無効化信号が複数のプロセッサコアの全体に送信されたことの表明の受信に応答して、コミット信号を送信し得る。相互接続回路及び複数のメモリバスは、コミット信号が複数のバンクの1つに到達し、続く信号が無効化信号を受信中の複数のプロセッサコアの1つに到達するために必要な時間未満で、無効化信号がL1キャッシュに到達するように制御するように構成し得る。
以下は、同様の参照文字が異なる図全体を通して同じ部分を指す添付図面に示される本発明の実施形態例のより具体的な説明から明らかになるだろう。図面は必ずしも一定の縮尺ではなく、代わりに、本発明の実施形態を示すことに重点が置かれている。
本発明の実施形態を実施し得るネットワークサービスプロセッサを示すブロック図である。 一実施形態でのコヒーレントメモリ相互接続(CMI)回路及び関連付けられた構成要素のブロック図である。 一実施形態でのキャッシュバンクへの要求の処理を示すブロック図である。 要求をキャッシュバンクに記憶する際に実現されるバッファを示すブロック図である。 キャッシュバンクからデータ出力する際に実現されるバッファを示すブロック図である。 一実施形態でのキャッシュバンクのブロック図である。
本発明の実施形態例を詳細に説明する前に、実施形態を実装し得るネットワークサービスプロセッサの例について、以下説明し、読み手による本発明の本発明による特徴の理解を助ける。
図1は、ネットワークサービスプロセッサ100を示すブロック図である。ネットワークサービスプロセッサ100は、少なくとも1つのプロセッサコア120を使用して高いアプリケーション性能を発揮する。
ネットワークサービスプロセッサ100は、受信パケットにカプセル化された開放型システム間相互接続ネットワークL2〜L7レイヤプロトコルを処理する。当業者にはよく知られているように、開放型システム間相互接続(OSI)参照モデルは7つのネットワークプロトコルレイヤ(L1〜L7)を定義する。物理レイヤ(L1)は、装置を伝送媒体に接続する電気的及び物理的な実際のインタフェースを表す。データリンクレイヤ(L2)はデータフレーム化を実行する。ネットワークレイヤ(L3)はデータをパケットにフォーマットする。トランスポートレイヤ(L4)は、エンドツーエンドトランスポートを処理する。セッションレイヤ(L5)は、装置間の通信、例えば、通信が半二重であるか、それとも全二重であるかを管理する。プレゼンテーションレイヤ(L6)は、データのフォーマット及びプレゼンテーション、例えば、シンタックス、制御コード、特別なグラフィックス、及びキャラクタセットを管理する。アプリケーションレイヤ(L7)は、ユーザ間の通信、例えば、ファイル転送及び電子メールを可能にする。
ネットワークサービスプロセッサ100は、上位ネットワークプロトコル、例えばL4〜L7の作業(パケット処理動作)をスケジュールし待ち行列に入れ得、受信したパケットでの上位レベルネットワークプロトコルの処理を実行して、ワイヤ速度でパケットを転送する。ワイヤ速度は、データが送受信されるネットワークのデータ転送速度である。プロトコルを処理して、パケットをワイヤ速度で転送することにより、ネットワークサービスプロセッサはネットワークデータ転送率を低速化させない。
パケットは、複数のインタフェースユニット122によって受信されて処理される。パケットは、PCIインタフェース124によって受信することもできる。インタフェースユニット122は、受信パケットに含まれるL2ネットワークプロトコルヘッダ内の様々なフィールドをチェックすることによって受信パケットの事前処理を実行し、次に、パケットをパケット入力ユニット126に転送する。少なくとも1つのインタフェースユニット122aは、複数のXアタッチメントユニットインタフェース(XAUI)、リデュースドXアタッチメントユニットインタフェース(RXAUI)、又はシリアルギガビット媒体非依存インタフェース(SGMII)からパケットを受信することができる。少なくとも1つのインタフェースユニット122bは、インターラーケンインタフェース(ILK)から接続を受信することができる。
パケット入力ユニット126は、受信パケットに含まれるネットワークプロトコルヘッダ(例えば、L3及びL4ヘッダ)の更なる事前処理を実行する。事前処理は、TCP/ユーザデータグラムプロトコル(UDP)(L3ネットワークプロトコル)のチェックサムチェックを含む。
フリープールアロケータ128は、レベル2キャッシュメモリ130及び外部DRAM108内の自由メモリへのポインタのプールを保持する。パケット入力ユニット126は、ポインタプールのうちの1つのポインタを使用して、受信パケットデータをレベル2キャッシュメモリ130又は外部DRAM108に記憶し、ポインタプールのうちの別の1つのポインタを使用して、プロセッサコア120用の作業待ち行列エントリを割り振る。
次に、パケット入力ユニット126は、パケットデータをレベル2キャッシュ130又は外部DRAM108内のバッファに書き込む。好ましくは、パケットデータは、プロセッサコア120の少なくとも1つで実行されるより上位レイヤのソフトウェアに都合のよいフォーマットでバッファに書き込まれる。したがって、より上位のネットワークプロトコルによる更なる処理が容易になる。
ネットワークサービスプロセッサ100は、1つ又は複数のアプリケーション固有のコプロセッサを含むこともできる。これらのコプロセッサは、含まれる場合、処理のいくらかをコア120からオフロードし、それにより、ネットワークサービスプロセッサが高スループットパケット処理を達成することができる。例えば、受信パケットの圧縮及び圧縮解除の実行専用の圧縮/圧縮解除コプロセッサ132が提供される。コプロセッサユニットの他の実施形態はRAID/重複除外ユニット162を含み、これは、ディスク記憶アプリケーションのデータストライピング及びデータ複製処理を加速化する。
別のコプロセッサはハイパー有限オートマトン(HFA)ユニット160であり、これは、アンチウィルス侵入検出システム及び他のコンテンツ処理アプリケーションに必要なパターン及び/又はシグネチャマッチングを加速化するように構成された専用HFAスレッドエンジンを含む。HFAユニット160を使用して、パターン及び/又はシグネチャマッチングは加速化され、例えば、毎秒数10ギガビットの倍数以上の速度で実行される。HFAユニット160は、いくつかの実施形態では、決定性有限オートマトン(DFA)、非決定性有限オートマトン(NFA)、又はHFAアルゴリズムユニットのうちの任意を含むことができる。
I/Oインタフェース136は、全体的なプロトコル及びアービトレーションを管理し、コヒーレントなI/Oパーティション化を提供する。I/Oインタフェース136は、I/Oブリッジ138及びフェッチアンドアッドユニット140を含む。I/Oブリッジは2つのブリッジ、すなわち、I/Oパケットブリッジ(IOBP)138a及びI/Oバスブリッジ(IOBN)138bを含む。I/Oパケットブリッジ138aは、全体のプロトコル及びアービトレーションを管理し、主なパケット入出力にコヒーレントなI/O分割を提供するように構成される。I/Oバスブリッジ138bは、全体のプロトコル及びアービトレーションを管理し、主にI/OバスとのコヒーレントなI/O分割を提供するように構成される。フェッチアンドアッドユニット140内のレジスタを使用して、処理済みのパケットを、パケット出力ユニット146を通して転送するのに使用される出力待ち行列の長さを維持する。I/Oブリッジ138は、コヒーレントなメモリ相互接続(CMI)144、I/Oバス142、パケット入力ユニット126、及びパケット出力ユニット146の間で転送すべき情報を記憶するバッファ待ち行列を含む。
種々雑多のI/Oインタフェース(MIO)116は、汎用I/O(GPIO)、フラッシュ、IEEE802 2線式管理インタフェース(MDIO)、シリアル管理割り込み(SMI)、汎用非同期受信機−送信機(UART)、リデュースドギガビット媒体非依存インタフェース(RGMII)、媒体非依存インタフェース(MII)、2線式シリアルインタフェース(TWSI)、及び他のシリアルインタフェース等の補助インタフェースを含むことができる。
ネットワークサービスプロバイダ100は、MIPS EJTAG規格をサポートするジョイントテストアクショングループ(「JTAG」)インタフェース123も含み得る。JTAG及びMIPS EJTAG規格によれば、ネットワークサービスプロバイダ100内の複数のコアはそれぞれ、内部テストアクセスポート(「TAP」)コントローラを有する。これにより、ネットワークサービスプロバイダ100のマルチコアデバッグサポートが可能になる。
スケジュール/同期・順序(SSO)モジュール148は、プロセッサコア120の作業を待ち行列に入れスケジュールする。作業は、作業待ち行列エントリを待ち行列に追加することによって待ち行列に入れられる。例えば、作業待ち行列エントリは、パケットが到着する都度、パケット入力ユニット126によって追加される。タイマユニット150を使用して、プロセッサコア120の作業をスケジュールする。
プロセッサコア120は、SSOモジュール148からの作業を要求する。SSOモジュール148は、プロセッサコア120のうちの1つの作業を選択し(すなわち、スケジュールし)、作業を記述する作業待ち行列エントリへのポインタをプロセッサコア120に返す。
プロセッサコア120は次に、命令キャッシュ152と、レベル1データキャッシュ154と、暗号化アクセラレーション156とを含む。一実施形態では、ネットワークサービスプロセッサ100は、32のスーパースカラーリデュースド命令セットコンピュータ(RISC)型プロセッサコア120を含む。いくつかの実施形態では、スーパースカラーRISC型プロセッサコア120のそれぞれは、MIPS64バージョン3プロセッサコアの拡張を含む。一実施形態では、スーパースカラーRISC型プロセッサコア120のそれぞれは、cnMIPSIIプロセッサコアを含む。
レベル2キャッシュメモリ130及び外部DRAM108は、全てのプロセッサコア120及びI/Oコプロセッサ装置によって共有される。各プロセッサコア120は、CMI144によってレベル2キャッシュメモリ130に結合される。CMI144は、プロセッサコア100、I/Oインタフェース136、レベル2キャッシュメモリ130、及びコントローラの間での全てのメモリ及びI/Oトランザクションの通信チャネルである。一実施形態では、CMI144は32プロセッサコア120に拡張可能であり、ライトスルーを用いて完全にコヒーレントなレベル1データキャッシュ154をサポートする。好ましくは、CMI144は、I/Oに優先度を付ける能力を用いて高度にバッファリングされる。CMIはトレース制御ユニット164に結合され、このユニットは、バス要求を捕捉、それにより、ソフトウェアが後に要求を読み出し、CMIでのイベントの順序のトレースを生成することができるように構成される。
レベル2キャッシュメモリコントローラ131は、メモリ参照コヒーレント性を維持する。レベル2キャッシュメモリコントローラ131は、ブロックがレベル2キャッシュメモリ130に記憶されるか、外部DRAM108に記憶されるか、それとも「インフライト(未処理)」であるかに関係なく、フィル要求毎にブロックの最新コピーを返す。このコントローラは、データキャッシュ154のタグの複製コピーも各プロセッサコア120に記憶する。このコントローラは、キャッシュブロックストア要求のアドレスをデータキャッシュタグと突き合わせて比較し、記憶命令が別のプロセッサコアからのものである場合、又はI/Oインタフェース136を介してI/O構成要素からのものである場合は常に、プロセッサコア120のデータキャッシュタグ(両コピー)を無効化する。
いくつかの実施形態では、複数のDRAMコントローラ133は最大で128ギガバイトのDRAMをサポートする。一実施形態では、複数のDRAMコントローラは4つのDRAMコントローラを含み、各DRAMコントローラは32ギガバイトのDRAMをサポートする。好ましくは、各DRAMコントローラ133は、DRAM108への64ビットインタフェースをサポートする。さらに、DRAMコントローラ133は、DDR−IIIプロトコル等の好ましいプロトコルをサポートすることができる。
パケットがプロセッサコア120によって処理された後、パケット出力ユニット146は、パケットデータをレベル2キャッシュメモリ130、108から読み出し、L4ネットワークプロトコル事後処理(例えば、TCP/UDPチェックサムの生成)を実行し、インタフェースユニット122又はPCIインタフェース124を通してパケットを転送し、パケットによって使用されたL2キャッシュ(2次キャッシュ)メモリ130/DRAM108を解放する。
DRAMコントローラ133は、DRAM108への/からのインフライトトランザクション(ロード/ストア)を管理する。いくつかの実施形態では、DRAMコントローラ133は4つのDRAMコントローラを含み、DRAM108は4つのDRAMメモリを含み、各DRAMコントローラはDRAMメモリに接続される。DFAユニット160は、キャッシュ迂回アクセスパス135でDRAMコントローラ133に直接結合される。キャッシュ迂回アクセスパス135により、HFAユニットは、レベル2キャッシュメモリ130を使用せずにメモリから直接読み取ることができ、HFA動作の効率を向上させることができる。
本発明の実施形態は、図1に示されるネットワークサービスプロセッサ100において実施し得、より具体的にはパケット出力ユニット(PKO)126及びインタフェースユニット122に向け得る。実施形態例について、図2〜図4を参照して更に詳細に以下に説明する。
図2は、一実施形態でのコヒーレントメモリ相互接続(CMI)回路244及び関連付けられた構成要素のブロック図である。CMI244は、プロセッサコアの群220A〜Dと、I/Oブリッジ238A及びBと、レベル2キャッシュメモリバンク230A〜Dとの間でメモリ及びI/Oトランザクションを誘導する通信チャネル及び制御回路である。CMI244は、CMI144としてネットワークプロセッサ100で実施し得、プロセッサコア220A〜Dは、プロセッサコア120として実現され、I/Oブリッジ238A及びBはI/Oブリッジ138a及びbとして実現され、レベル2キャッシュメモリバンク230A〜Dはレベル2キャッシュ130として実現される。
ネットワークプロセッサで実現されるプロセッサコアの数が増大するにつれて、そのような多数のソースのメモリサブシステムに対して、制御されたアクセスを提供することが問題になる。多数のプロセッサコア(例えば、32)を有するネットワークプロセッサにおける第1の問題は、要求をコアからメモリシステムにいかに転送するかである。従来の設計は、リングバスを使用し、これは、より高い(そして変動する)待ち時間を生み出すおそれがある。複数のコアチップを設計する際の第2の問題は、その多数のコアによって生成される大量の要求にサービス提供することである。第3の同様の問題は、参照し、場合によってはDUT(DUplicateタグ)を更新する各要求の要求仕様に対応しなければならないプロセッサコアのL1タグ(以下、DUplicateタグ(複製タグ)又はDUTと呼ぶ)の構造が関わる。第4に、応答データは、キャッシュから元のフィルバスに転送しなければならない。一度に1つのバス要求のみにサービス提供する能力を有する各キャッシュバンクを用い、各要求が最高で4サイクルを要求する場合、フィル(FILL)バスが完全には利用されないことがある。第5の問題は、要求ソースから、要求にサービス提供することになるキャッシュバンクに転送しなければならないバスストア要求に関連付けられたデータに関わる。この問題は第4の問題(応答データが関わる)と同等であるが、ソースと宛先とが逆になる。第6に、プロセスコアは、I/Oブリッジの逆側にある装置へのアクセスを要求する。最後に、第7の問題は、メモリサブシステム全体を通してメモリコヒーレント性を維持することに関わる。
本発明の実施形態は、4組のコヒーレントメモリバス(CMB)225A〜Dを介して複数のプロセッサコアとL2キャッシュ及びメモリサブシステムとの間でのトランザクションの処理を提供する。各CMB225A〜Dは、個々のアッド(ADD)/ストア(STORE)/コミット(COMMIT)/フィル(FILL)のバスを備える。4つのCMB225A〜D及びI/OブリッジバスIOC/IORの群全体は、コヒーレントメモリ相互接続(CMI)244を通して一緒に接続される。同様に、4つの追加のCMB235A〜Dは個々のアッド/ストア/コミット/フィルのバスを備え、キャッシュバンク230A〜DをCMI244に接続する。
CMB225A〜Dはそれぞれ、プロセッサコアの各群220A〜Dをサポートし得る。この実施形態例では、プロセッサコアの各群220A〜Dは8つのプロセッサコアを備えるが、追加のコア又はより少数のコアを含むように修正し得る。メモリアクセスをネットワークプロセッサのI/O部に提供するために、バス225A及びBの2つにはIOブリッジ(IOB)238A及びBが取り付けられる。IOB0 238Aを使用して、プロセッサコア220A〜Dに、専用I/Oコマンド(IOC)及びIO応答(IOR)バスを介してNCB側I/O装置へのアクセスを提供し得る。IOB0 238A及びIOB1 238Bは両方とも、プロセッサコア220A及びBとCMBバス225A及びBをそれぞれ共有することによってL2キャッシュ及びメモリサブシステムにアクセスすることができる。
各キャッシュバンク230A〜Dはレベル2キャッシュコントローラ(L2C)を含み得、これは、システムの共有メモリコヒーレントメモリを維持しながら、CMB225A〜Dとキャッシュバンク230A〜Dとの間でのコマンド及び応答の転送を制御する。L2Cについては、図6を参照して更に詳細に後述する。
プロセッサコア220A〜D及びI/Oブリッジ238A及びBを、それぞれが単一のCMB225A〜Dによってサービス提供される4つの群に分割することにより、低待ち時間アービトレーション論理を使用し得る。ローカルアービトレーション判断は、群220A〜D(及びIOブリッジが取り付けられたCMBの場合には、I/Oブリッジ238A及びB)のプロセッサコアのみの間でなされ、ソースははるかに小さな物理エリアをカバーする。アービトレーション要求及びそれらの要求の認可は、単一のサイクルで行うことができ、これは、ネットワークプロセッサの全てのプロセッサコアとI/Oブリッジとの間で調停しようとする場合には達成不可能なレートである。さらに、全てのCMB225A〜Dは、同じ低い一定の待ち時間で、相互接続回路内の要求バッファに直接接続を有し得る。その結果、コアからメモリシステムへの要求は低待ち時間で転送される。
多数のプロセッサコアによって生成される大量の要求にサービス提供するために、L2キャッシュは4つの個別のキャッシュバンク230A〜Dに分割される。その結果、サービス提供可能な要求の帯域幅は4倍になる。各要求の物理アドレスは、全ての共通するアドレスストライドで4つのキャッシュバンクにわたり略ランダム分布のキャッシュブロックを生成するように構成された排他的OR(XOR)関数を使用してハッシュし得る。これは、CMB要求の空間的な局所性を、4つのキャッシュバンク230A〜Dにわたる略ランダム分布に変換し、サイクル毎の4つのタグ参照の利用率を向上させることができる。逆に、仮にL2キャッシュが1つの均一の構造であった場合、サイクル毎に1つのタグ参照しかできず、L2キャッシュ帯域幅をひどく制限してしまう。その結果、ネットワークプロセッサは、多数のコアによって生成される大量の要求にサービス提供することができる。要求の処理及び指示の構成例について図3を参照して後述する。
データ要求を処理するに当たり、CMI244は、DUTを参照し、場合によっては更新しなければならない。4つのバスが要求を供給する場合、このプロセスは、サイクル毎に最高で4つのDUT参照を必要とする。DUT参照に対応するために、DUTは8組に分割し得(「チャネル」とも呼ばれる)、各組はサイクル毎に1つの参照を実行することができる。相互接続回路244は、要求が異なる組を使用する必要がある場合、サイクル毎に最高で4つのCMB要求をDUTにスロッティングすることが可能である。この構成は、2:1のリソース対要求比を提供し、同じサイクルで複数の要求にサービス提供することができる可能性を増大させる。その結果、ネットワークプロセッサコアのL1タグは、DUTを参照して更新する各要求の要求仕様に対応することができる。DUTを更新するプロセスは、図3を参照して更に詳細に後述する。
データを記憶するか、又は検索する要求は、プロセッサコアの群220A〜Dのコアから、各バス225A〜D及びCMI244を通り、キャッシュバンク230A〜Dに転送され、キャッシュバンクが要求にサービス提供する。複数のプロセッサコアからのいくつかの要求にサービス提供するために、ストアソース(I/Oブリッジ238A及びB又はプロセッサコア220A〜Dのいずれか)からストアデータを読み出すプロセスを、キャッシュバンク230A〜Dにストアバッファを書き込むプロセスと切り離し得る。これは、4つの2リード/2ライトポートカスタムデータバッファを使用して達成し得る。各バッファは、データを2つのCMB225A〜Dバスから受信し得、データを2つのキャッシュバンク230A〜Dに送信する。この構成により、データを提供又は受信する必要がある特定のCMB225A〜D又はキャッシュバンク230A〜Dから独立して、各CMB225A〜Dストアバスは各サイクル中に所与の量(例えば、128バイト)のストアデータを提供することができるとともに、各キャッシュバンクはサイクル毎に同量(例えば、128バイト)のストアデータを受信することができる。この構成は、CMBストアデータ要求のアービトレーション及びキャッシュバンク230A〜Dのバッファに書き込むアービトレーションを簡易化し、それにより、利用可能なバスリソースの完全な利用を可能にする。その結果、キャッシュバンクのデータ入力能力が完全に利用される。データバッファの構造については、図4を参照して後述する。
要求への応答はキャッシュバンクによって提供され、キャッシュバンクから元のCMB235A〜Dフィルバスに転送しなければならない。各キャッシュバンク230A〜Dは、一度に1つのCMB要求にしかサービス提供することができないことがあり、各要求は最高で4サイクルを必要とする。CMB235A〜Dフィルバスを完全に利用する状態を保つために、キャッシュバンク230A〜Dフィルバッファ読み出しポートは、CMB235A〜Dフィルバスから切り離し得、3ライトポート迂回可能バッファを相互接続回路244において実現して、CMB235A〜Dフィルバスを宛先としたデータをプリフェッチし得る。これにより、最高で3つのキャッシュバンクが応答を読み出し、同じバスに送信するために待ち行列に入れることができる。バッファは、CMB235A〜Dフィルバス及びキャッシュバンク230A〜Dフィルポートの調整を提供して、利用を最大化する。その結果、キャッシュバンクからのデータ出力能力は完全に利用される。フィルバッファのこの構成について、図5を参照して更に詳細に後述する。
キャッシュバンク230A〜Dに加えて、プロセッサコア220A〜Dは、IOB238A及びBの逆側にある装置(例えば、図1のネットワークプロセッサ100のインタフェースユニット122a及びb並びにI/Oバス142の他の装置)へのアクセスを要求する。このアクセスは、専用I/Oコマンド(IOC)バスを介してIOB0 238Aに提供される。CMB235Aアッド/ストアバスは、プロセッサコア220A〜Dからの要求を提供し、相互接続回路244は、これらの要求をIOCバスに必要な形態に変換し得る。さらに、相互接続回路244は、単一のIOCバスのアービトレーションを処理しなければならない。I/Oブリッジ238Aは、応答データを提供する場合、応答データをI/O応答(IOR)バスに配置する。次に、相互接続回路244はこのデータを受信し、適宜フォーマットし、CMB235A〜Dフィルバスを介して要求側コアにデータを返す。その結果、プロセッサコア220A〜Dに、IOB238A及びBにわたる装置へのアクセスが提供される。
メモリサブシステムコヒーレント性を維持するために、複数バス構造に鑑みて、ストア要求によって生成される無効化信号及びコミット信号を考慮しなければならない。プロセッサコア220A〜D又はI/O装置は、ストア動作を要求する(I/Oブリッジ238A及びBを通して)場合、各キャッシュバンク230A〜DのL2Cからコミット信号を受信し、他のコア又はI/O装置が、そのストアからのデータを見えることを通知する。各自のストアの全ての未処理コミット信号を待つことにより、ソースは、続くストアの前に先のストアが可視であると判断することができる。これは、進むことができることを他のコア又は装置に通知するメカニズムを提供する。コアは、ストアを生成するコア/装置とは異なるバスにあることができるため、コミット信号とそれに関連付けられたL1無効化信号との間に重要な順序関係がある。通知されたコアは、無効化信号を受信する前に信号を受信する場合、古いデータを見ることができ、メモリシステムのコヒーレント性が失われることがある。このコヒーレント性の損失は、全てのバスの無効化信号が全てのバス225A〜Dを横切ってプロセッサコア220A〜Dに送信されたことがまず確認されるまでコミット信号を送信しないことにより、キャッシュバンク230A〜DのL2Cによって回避することができる。いくつかの実施形態では、コミット信号がストアソースに到達して続く信号が、無効化信号を受信中のコアに到達するために必要な時間未満の時間で、無効化信号がL1に到達することを保証するように、回路を構成することができる。その結果、メモリコヒーレント性が維持される。
図3は、一実施形態でのキャッシュバンクへの要求の処理を示すブロック図である。図2を参照して上述したように、コア側CMB225A〜D及びキャッシュ側CMB235A〜Dは両方ともアッドバスを含み、アッドバスは、メモリトランザクションを開始するアドレス及び制御情報を搬送する。トランザクションのソースは、プロセッサコア220A及びB並びにIOB238A及びBであることができる。CMI相互接続回路244は、図3に示されるように、アドレスの処理及びコア側CMB225A〜Dからキャッシュ側CMB235A〜Dへの転送を提供する。ここで、図2を参照すると、要求のアドレスは、キャッシュバンク230A〜D(「TAD」(TAD0〜TAD3)とも呼ばれる)の任意のFIFOバッファへのCMB225A〜Dの各アッドバス(ADD0〜ADD3)において受信される。4つのアッドバスのうちの任意のバスは、トランザクションを任意のキャッシュバンク230A〜Dに誘導することができる。要求のアドレスは、どのADDバスからトランザクションが開始されたかに関係なく、トランザクションを処理するキャッシュバンク230A〜Dを選択する。各要求の物理アドレスは、全ての共通アドレスストライドで4つのキャッシュバンク230A〜D(TAD0〜TAD3)にわたりキャッシュブロックの略ランダムな分布を生成するように構成された排他的OR(XOR)関数を使用してハッシュし得る。これは、CMB要求の空間的局所性を、4つのキャッシュバンク230A〜D(TAD0〜TAD3)にわたる略ランダム分布に変換し、サイクル毎の4つのタグ参照の利用率を向上させることができる。
アッドバスに到着したトランザクションはまず、宛先キャッシュバンクのFIFOのうちの1つに入る。各FIFOは、最高で4つのアッドバストランザクションをサイクル毎にバッファリングすることができる。アルゴリズムにより、アドレスが更に処理される順序が決まる。
CMI相互接続回路244でのスケジューラは、どのトランザクションがFIFOを出ることができるかを決定し得る。最高で4つのトランザクション(4つのTADのそれぞれから1つが可能)が、回路244でのL1Dタグパイプに向けて各サイクルで競う。L1Dタグパイプ(パイプ0〜7として示される)は、L1データキャッシュタグのコピーを有する(すなわち、複製タグつまりDUTである)。L1Dタグパイプは、トランザクションがL1データキャッシュ内のブロックのコピーを無効化するか否かを判断する。無効化する場合、相互接続回路244は最終的に、L1Dキャッシュ無効化コマンドをトランザクションのコミットバス及びフィルバスに送信する。
相互接続回路244は、要求を受信すると、要求のアドレス(又はアドレスビット<9:7>のようなアドレスの一部分)を解析して、どのL1Dタグパイプが各トランザクションによって使用されるかを選択し得る。最高で4つのトランザクションのそれぞれが全て、異なるアドレスビット<9:7>を提示した場合、クロスバーはサイクル中に全てのトランザクションをスケジュールする。実施態様は、DUTを、L1Dタグパイプ0〜3を含むDUT0〜3と、L1Dタグパイプ4〜7を含むDUT4〜7とに分割する。
相互接続回路244が、キャッシュバンクFIFOからのトランザクションをスケジュールする場合、トランザクションは、相互接続回路244(アッドバスを介して)及びキャッシュバンクのそれぞれのL1Dタグパイプ及びL2タグパイプの両方に同時に入る。DUTの状態は、L1タグの状態に一致するように更新される。キャッシュバンクインフライトバッファは最終的に、これらのタグパイプからの結果を使用してトランザクションを完了する。迂回(図示せず)は、DUT及びキャッシュバンクリソースに競合がない場合、余分ないかなるFIFO待ち時間も回避することができる。
各要求は、キャッシュバンクL2タグの参照及び全てのプロセッサコアのL1タグの状態の参照を要求し得る。この状態はDUTとして保持され、L2内のL1タグのコピーである。要求をキャッシュバンクに均等に分布させるアドレスハッシュ関数は、ハッシュ関数に必要なビットが時間内で利用可能ではないことがあることから、L1には使用されないことがあるため、DUTでサイクル毎に4つの参照を実行するのに十分な帯域幅を提供するために、DUTを8つの別個の組(「チャネル」)に分割し得、各アドレスは1つのチャネルにマッピングされる。4つのみのアドレスがサイクル毎に選択され、8つのDUTチャネルがあるため、2つ以上の要求(最高で4つまで)が、通常のアドレス分布に基づいて選択される可能性が高い。
図4は、キャッシュバンクへの要求において実施されるバッファを示すブロック図である。図2を参照して上述したように、キャッシュ側CMB235A〜Dはストアバスを含み、ストアバスは、メモリトランザクション中にキャッシュバンク230A〜Dに記憶すべきデータを搬送する。データを記憶又は検索する要求は、プロセッサコア群220A〜Dから各バス225A〜D及びCMI244を通してキャッシュバンク230A〜Dに転送され、キャッシュバンクは要求にサービス提供する。複数のプロセッサコアからのいくつかの要求にサービス提供するために、4つの2リード/2ライトポートデータバッファ422A〜Dが、データをストアバス(STORE0〜STORE1)から受信する。各バッファ422A〜Dは、2つのCMB255A〜Dストアバスからデータを受信し得、2つのキャッシュバンク230A〜Dにデータを送信し得る。この構成により、データを提供又は受信する必要がある特定のCMB225A〜D又はキャッシュバンク230A〜Dから独立して、各CMB225A〜Dストアバスは、各サイクル中に所与の量(例えば、128バイト)のストアデータを提供することができるとともに、各キャッシュバンクは、サイクル毎に同量(例えば、128バイト)のストアデータを受信することができる。
図5は、キャッシュバンクからデータ出力する際に実現されるバッファを示すブロック図である。図2を参照して上述したように、要求への応答はキャッシュバンクによって提供され、キャッシュバンクから元のCMB235A〜Dフィルバス(図5ではTAD0 FILL…TAD3 FILLとして示される)に転送しなければならない。各キャッシュバンク230A〜Dは、一度に1つのみのCMB要求にサービス提供可能であり得、各要求は最高で4サイクルを必要とする。CMB235A〜Dフィルバスを完全に利用する状態を保つために、フィルバッファ532A〜Dを実現して、CMB235A〜Dフィルバスからキャッシュバンク230A〜Dの読み出しポートを切り離すことができる。フィルバッファ532A〜Dは、相互接続回路244で実施することができ、CMB235A〜Dフィルバスを宛先としたデータをプリフェッチすることができる3ライトポート迂回可能バッファであり得る。これにより、最高で3つのキャッシュバンクが応答データを読み出し、同じバスで送信するために待ち行列に入れ得る。バッファ532A〜Dは、CMB235A〜Dフィルバス及びキャッシュバンク230A〜Dフィルポートの調整を提供して、各CMB235A〜Dフィルバスの利用を最大化する。
図6は、図2を参照して上述した各キャッシュバンク230A〜Dに存在するL2C制御回路のブロック図である。キャッシュバンクは、L2キャッシュの部分のキャッシュタグ及びデータの両方を含む。4つのクワッドがデータを含む。各クワッドはL2キャッシュの256KBを有する。キャッシュバンクは、アドレスバッファ及びデータバッファも含む。アドレスバッファは、受信した全てのL2読み出し動作及び書き込み動作を追跡するインフライトアドレスバッファ(LFB)と、DRAMに書き込まれた(LMCを介して)全てのブロックを追跡するビクティムアドレスバッファ(VAB)とを含む。L2Cは、LFBに最高で16の同時L2/DRAMトランザクションを保持して処理するとともに、VAB/VBFにおいて最高で16のインフライトL2キャッシュビクティム/ライトスルー動作を管理する。
データバッファは、データがL2キャッシュ又はDRAMから読み出されるときは常に使用されるフィルバッファ(FBF)と、全てのストアトランザクションに使用されるストアバッファ(SBF)と、データをDRAMに書き込むために使用されるビクティムデータバッファ(VDB)とを含む。L2/DRAMフィルトランザクションでは、L2Cは、LFBエントリに関連付けられたFBFエントリを介して、L2キャッシュ又はメモリのいずれかからデータを返す。L2/DRAMストアトランザクションでは、L2Cはまず、ストアバスデータを、LFBエントリに関連付けられたSBFエントリに配置し、次に、キャッシュを更新するか、又は完全なキャッシュブロックストアをそのままDRAMに書き込む。キャッシュブロック内の全てのバイトへのストア動作を除き、L2キャッシュでミスする全てのL2/DRAMトランザクションはDRAMフィル動作を必要とする。部分キャッシュブロックストア動作は、ストアされないバイトを得るためにDRAMフィル動作を必要とする。L2Cは、DRAMフィルデータをFBFに配置し、次に、必要であればそれをL2キャッシュに書き込み、必要であればフィルバスに転送する。
本発明を本発明の実施形態例を参照して具体的に図示し説明したが、添付の特許請求の範囲によって包含される本発明の範囲から逸脱せずに、形態及び詳細に様々な変更を行い得ることが当業者には理解されるだろう。

Claims (8)

  1. 相互接続回路と、
    複数のメモリバスであって、各メモリバスが、複数のプロセッサコア群のそれぞれを前記相互接続回路に接続する、複数のメモリバスと、
    複数のバンクに分割されるキャッシュであって、各バンクは、個々のバスを介して前記相互接続回路に接続される、キャッシュとを備えた、コンピュータチップ上のコンピュータシステムであって、
    前記相互接続回路が、前記複数のプロセッサコアの群から受信される複数の要求を前記複数のバンクに分配し、
    前記相互接続回路が、前記要求のそれぞれにハッシュ関数を実行し、このハッシュ関数が、前記複数のバンクへの前記要求の疑似ランダム分配を提供し、
    前記相互接続回路及び前記複数のメモリバスは、前記相互接続回路からのコミット信号が前記複数のバンクの1つに到達するため、かつ、前記コミット信号に続く前記相互接続回路からの信号が無効化信号を受信する前記複数のプロセッサコアの群の1つに到達するために必要な時間未満で前記複数のプロセッサコアの群の1つに結合された1次キャッシュに到達するように、前記相互接続回路からの無効化信号を制御する
    コンピュータシステム。
  2. 前記相互接続回路が、前記要求のアドレスコンポーネントを変更することによって前記要求を変換する、請求項1に記載のシステム。
  3. 前記相互接続回路は、前記複数のプロセッサコアの群の1つに結合された1次キャッシュの状態を示すタグを保持し、前記相互接続回路は、前記複数の要求のタグを複数のチャネルに誘導し、これにより、前記各タグを同時に処理する、請求項1に記載のシステム。
  4. 前記相互接続回路は、複数のデータ出力バッファを更に備え、前記データ出力バッファのそれぞれは、前記複数のバンクのそれぞれからデータを受信し、前記複数のメモリバスのそれぞれ1つを通してデータを出力する、請求項1に記載のシステム。
  5. 前記相互接続回路は、複数の要求バッファを更に備え、前記要求バッファのそれぞれは、複数のプロセッサの各群から要求を受信し、前記要求を前記複数のバンクの1つに出力する、請求項1に記載のシステム。
  6. 前記メモリバスのうちの少なくとも1つに結合された少なくとも1つのブリッジ回路を更に備え、当該少なくとも1つのブリッジ回路は、前記複数のプロセッサコアの群を少なくとも1つのオンチップコプロセッサに接続する、請求項1に記載のシステム。
  7. 前記バンクは、前記複数のプロセッサコアの群へのコミット信号の送信を遅延させるものであり、前記バンクは、無効化信号が前記複数のプロセッサコアの群全てに送信されたことの表明の受信に応答して、前記コミット信号を送信する、請求項1に記載のシステム。
  8. 前記キャッシュは2次キャッシュである、請求項1に記載のシステム。
JP2017213851A 2011-10-31 2017-11-06 ネットワークプロセッサにおけるマルチコア相互接続 Active JP6676027B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/285,629 2011-10-31
US13/285,629 US9330002B2 (en) 2011-10-31 2011-10-31 Multi-core interconnect in a network processor

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2014539104A Division JP2014534529A (ja) 2011-10-31 2012-10-29 ネットワークプロセッサにおけるマルチコア相互接続

Publications (2)

Publication Number Publication Date
JP2018045700A JP2018045700A (ja) 2018-03-22
JP6676027B2 true JP6676027B2 (ja) 2020-04-08

Family

ID=47144154

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2014539104A Pending JP2014534529A (ja) 2011-10-31 2012-10-29 ネットワークプロセッサにおけるマルチコア相互接続
JP2017213851A Active JP6676027B2 (ja) 2011-10-31 2017-11-06 ネットワークプロセッサにおけるマルチコア相互接続

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2014539104A Pending JP2014534529A (ja) 2011-10-31 2012-10-29 ネットワークプロセッサにおけるマルチコア相互接続

Country Status (6)

Country Link
US (1) US9330002B2 (ja)
JP (2) JP2014534529A (ja)
KR (2) KR102409024B1 (ja)
CN (1) CN103959261B (ja)
DE (1) DE112012004551T5 (ja)
WO (1) WO2013066798A1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9892063B2 (en) * 2012-11-27 2018-02-13 Advanced Micro Devices, Inc. Contention blocking buffer
US9652396B2 (en) 2013-12-27 2017-05-16 Samsung Electronics Co., Ltd. Cache element processing for energy use reduction
US9811467B2 (en) * 2014-02-03 2017-11-07 Cavium, Inc. Method and an apparatus for pre-fetching and processing work for procesor cores in a network processor
US9432288B2 (en) 2014-02-28 2016-08-30 Cavium, Inc. System on chip link layer protocol
US10592459B2 (en) * 2014-03-07 2020-03-17 Cavium, Llc Method and system for ordering I/O access in a multi-node environment
US9529532B2 (en) * 2014-03-07 2016-12-27 Cavium, Inc. Method and apparatus for memory allocation in a multi-node system
US9411644B2 (en) 2014-03-07 2016-08-09 Cavium, Inc. Method and system for work scheduling in a multi-chip system
US9372800B2 (en) 2014-03-07 2016-06-21 Cavium, Inc. Inter-chip interconnect protocol for a multi-chip system
US9436972B2 (en) * 2014-03-27 2016-09-06 Intel Corporation System coherency in a distributed graphics processor hierarchy
US10235203B1 (en) * 2014-03-31 2019-03-19 EMC IP Holding Company LLC Techniques for increasing storage system performance in processor-bound workloads with large working sets and poor spatial locality
US10740236B2 (en) * 2017-05-12 2020-08-11 Samsung Electronics Co., Ltd Non-uniform bus (NUB) interconnect protocol for tiled last level caches
US10592452B1 (en) 2018-09-12 2020-03-17 Cavium, Llc Low latency interconnect protocol for coherent multi-chip communication

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58220287A (ja) * 1982-06-15 1983-12-21 Nec Corp メモリアクセス制御装置
US4977498A (en) * 1988-04-01 1990-12-11 Digital Equipment Corporation Data processing system having a data memory interlock coherency scheme
JP4240610B2 (ja) * 1998-11-27 2009-03-18 株式会社日立製作所 計算機システム
JP2002149353A (ja) * 2000-11-08 2002-05-24 Nec Corp ディスクアレイ制御装置及びディスクアレイ制御方法
US7209996B2 (en) * 2001-10-22 2007-04-24 Sun Microsystems, Inc. Multi-core multi-thread processor
US7873785B2 (en) * 2003-08-19 2011-01-18 Oracle America, Inc. Multi-core multi-thread processor
US7133950B2 (en) 2003-08-19 2006-11-07 Sun Microsystems, Inc. Request arbitration in multi-core processor
US7290116B1 (en) 2004-06-30 2007-10-30 Sun Microsystems, Inc. Level 2 cache index hashing to avoid hot spots
US7606998B2 (en) * 2004-09-10 2009-10-20 Cavium Networks, Inc. Store instruction ordering for multi-core processor
US7941585B2 (en) * 2004-09-10 2011-05-10 Cavium Networks, Inc. Local scratchpad and data caching system
US20060112226A1 (en) * 2004-11-19 2006-05-25 Hady Frank T Heterogeneous processors sharing a common cache
US7477641B2 (en) * 2004-12-30 2009-01-13 Intel Corporation Providing access to data shared by packet processing threads
US7661006B2 (en) * 2007-01-09 2010-02-09 International Business Machines Corporation Method and apparatus for self-healing symmetric multi-processor system interconnects
US7793038B2 (en) * 2007-06-26 2010-09-07 International Business Machines Corporation System and method for programmable bank selection for banked memory subsystems
US20090274157A1 (en) * 2008-05-01 2009-11-05 Vaidya Aniruddha S Method and apparatus for hierarchical routing in multiprocessor mesh-based systems
US8131944B2 (en) * 2008-05-30 2012-03-06 Intel Corporation Using criticality information to route cache coherency communications
US8195883B2 (en) * 2010-01-27 2012-06-05 Oracle America, Inc. Resource sharing to reduce implementation costs in a multicore processor

Also Published As

Publication number Publication date
DE112012004551T5 (de) 2014-08-14
KR20190137948A (ko) 2019-12-11
JP2014534529A (ja) 2014-12-18
JP2018045700A (ja) 2018-03-22
KR20140084155A (ko) 2014-07-04
US9330002B2 (en) 2016-05-03
US20130111141A1 (en) 2013-05-02
CN103959261B (zh) 2019-06-21
WO2013066798A1 (en) 2013-05-10
KR102409024B1 (ko) 2022-06-14
CN103959261A (zh) 2014-07-30

Similar Documents

Publication Publication Date Title
JP6676027B2 (ja) ネットワークプロセッサにおけるマルチコア相互接続
US9569366B2 (en) System and method to provide non-coherent access to a coherent memory system
US9444757B2 (en) Dynamic configuration of processing modules in a network communications processor architecture
US9218290B2 (en) Data caching in a network communications processor architecture
US8850101B2 (en) System and method to reduce memory access latencies using selective replication across multiple memory ports
US9183145B2 (en) Data caching in a network communications processor architecture
US9141548B2 (en) Method and apparatus for managing write back cache
KR102003089B1 (ko) 효율적인 작업 큐잉을 갖는 프로세서
US8949500B2 (en) Non-blocking processor bus bridge for network processors or the like
US8972630B1 (en) Transactional memory that supports a put with low priority ring command
US8683221B2 (en) Configurable memory encryption with constant pipeline delay in a multi-core processor
US9069602B2 (en) Transactional memory that supports put and get ring commands
US8595401B2 (en) Input output bridging
WO2006031462A1 (en) Direct access to low-latency memory
US9195464B2 (en) Tracking written addresses of a shared memory of a multi-core processor
US11327890B1 (en) Partitioning in a processor cache

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171106

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171124

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180727

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180910

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190513

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190813

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200210

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200311

R150 Certificate of patent or registration of utility model

Ref document number: 6676027

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250