(57)【要約】【課題】ネットワークプロセッサは、広帯域幅メモリアクセスを複数のプロセッサコアに提供する。【解決手段】ネットワークプロセッサは、パケットデータを処理する複数のプロセッサコアを含む。プロセッサコアにメモリサブシステムへのアクセスを提供するために、相互接続回路が、プロセッサコアとＬ２キャッシュ及び他のメモリ装置との間での通信を指示する。プロセッサコアはいくつかの群に分けられ、各群は個別のバスを共有し、Ｌ２キャッシュはいくつかのバンクに分けられ、各バンクは別個のバスへのアクセスを有する。相互接続回路は要求を処理して、プロセッサコアからのデータを複数のバスにわたって記憶し検索し、応答を処理して、キャッシュバンクからデータを返す。【選択図】図２
2018045700.tif 000002
【特許請求の範囲】
【請求項１】
相互接続回路と、
複数のメモリバスであって、各メモリバスが、複数のプロセッサコア群のそれぞれを前記相互接続回路に接続する、複数のメモリバスと、
複数のバンクに分割されるキャッシュであって、各バンクは、個々のバスを介して前記相互接続回路に接続される、キャッシュとを備えた、コンピュータチップ上のコンピュータシステムであって、
前記相互接続回路が、前記複数のプロセッサコアから受信される複数の要求を前記複数のバンクに分配する、コンピュータシステム。
【請求項２】
前記相互接続回路が、前記要求のアドレスコンポーネントを変更することによって前記要求を変換する、請求項１に記載のシステム。
【請求項３】
前記相互接続回路が、前記要求のそれぞれにハッシュ関数を実行し、このハッシュ関数が、前記複数のバンクへの前記要求の疑似ランダム分配を提供する、請求項２に記載のシステム。
【請求項４】
前記相互接続回路は、前記複数のプロセッサコアの１つに結合された１次キャッシュの状態を示すタグを保持し、前記相互接続回路は、前記複数の要求のタグを複数のチャネルに誘導し、これにより、前記各タグを同時に処理する、請求項１に記載のシステム。
【請求項５】
前記相互接続回路は、複数のデータ出力バッファを更に備え、前記データ出力バッファのそれぞれは、前記複数のバンクのそれぞれからデータを受信し、前記複数のメモリバスのそれぞれ１つを通してデータを出力する、請求項１に記載のシステム。
【請求項６】
前記相互接続回路は、複数の要求バッファを更に備え、前記要求バッファのそれぞれは、複数のプロセッサの各群から要求を受信し、前記要求を前記複数のバンクの１つに出力する、請求項１に記載のシステム。
【請求項７】
前記メモリバスのうちの少なくとも１つに結合された少なくとも１つのブリッジ回路を更に備え、当該少なくとも１つのブリッジ回路は、前記複数のプロセッサコアを少なくとも１つのオンチップコプロセッサに接続する、請求項１に記載のシステム。
【請求項８】
前記バンクは、前記複数のプロセッサコアへのコミット信号の送信を遅延させるものであり、前記バンクは、無効化信号が前記複数のプロセッサコア全てに送信されたことの表明の受信に応答して、前記コミット信号を送信する、請求項１に記載のシステム。
【請求項９】
前記相互接続回路及び複数のメモリバスは、コミット信号が前記複数のバンクの１つに到達するため、かつ、続く信号が前記無効化信号を受信する前記複数のプロセッサコアの１つに到達するために必要な時間未満で１次キャッシュに到達するように、無効化信号を制御する、請求項１に記載のシステム。
【発明の詳細な説明】
【関連出願】
【０００１】
本願は、２０１１年１０月３１日に出願された米国特許出願第１３／２８５，６２９号明細書の継続出願であり、その利益を主張するものであり、この特許出願の教示全体を参照により本明細書に援用する。
【背景技術】
【０００２】
典型的なネットワークプロセッサは、上位ネットワークプロトコルのパケット処理動作等の作業をスケジュールし待ち行列に入れ、受信パケットを接続された装置に転送する前に、受信パケットにおける上位ネットワークプロトコル（例えば、トランスポートレイヤ及びアプリケーションレイヤ）に関する処理を可能にする。通常、ネットワークプロセッサによって実行されるこの機能は、パケットフィルタリング、待ち行列の管理及び優先度付け、サービス品質強化、及びアクセス制御を含む。処理パケットデータに固有の特徴を利用することにより、ネットワークプロセッサは、ネットワーク接続された装置のインタフェースを最適化することができる。
【発明の概要】
【０００３】
本発明の各実施形態は、ネットワークプロセッサにおいてデータの転送及び処理を制御するシステムを提供する。相互接続回路が、複数のプロセッサコアの群とキャッシュとの間での通信を誘導する。複数のメモリバスはそれぞれ、複数のプロセッサコアの各群を相互接続回路に接続する。キャッシュは複数のバンクに分割され、各バンクは、個別のバスを通して相互接続回路に接続される。相互接続回路は、複数のプロセッサコアから受信する要求（リクエスト）をキャッシュバンクに分配することを提供する。
【０００４】
更なる実施形態では、相互接続回路は、要求のアドレスコンポーネントを変更することによって要求を変換することができる。この変換は、各要求に対してハッシュ関数を実行することを含み、これにより、複数のバンクへの要求の疑似ランダム分布を提供する。相互接続回路又はキャッシュバンクは、複数のプロセッサコアに結合されたＬ１キャッシュ（１次キャッシュ）の状態を示すタグを保持するように更に構成し得る。相互接続回路は、受信した要求内のタグを複数のチャネルに向ける（誘導する）ことができ、それにより、複数のタグを同時に処理する。
【０００５】
更なる実施形態では、相互接続回路はいくつかのデータ出力バッファを含むことができる。各データ出力バッファは、複数のバンクのそれぞれからデータを受信し、メモリバスのそれぞれ１つを通してデータを出力し得る。相互接続回路は、いくつかの要求バッファを含むこともでき、各要求バッファは、各プロセッサ群から要求を受信し、要求をバンクのそれぞれ１つに出力する。
【０００６】
更なる実施形態では、１つ又は複数のブリッジ回路をメモリバスに結合し得る。ブリッジ回路は、プロセッサコアを１つ又は複数のオンチップコプロセッサに接続し得る。さらに、メモリのコヒーレンス性を維持するために、キャッシュバンクは、複数のプロセッサコアへのコミット信号の送信を遅延させ得る。次に、キャッシュバンクは、無効化信号が複数のプロセッサコアの全体に送信されたことの表明の受信に応答して、コミット信号を送信し得る。相互接続回路及び複数のメモリバスは、コミット信号が複数のバンクの１つに到達し、続く信号が無効化信号を受信中の複数のプロセッサコアの１つに到達するために必要な時間未満で、無効化信号がＬ１キャッシュに到達するように制御するように構成し得る。
【０００７】
以下は、同様の参照文字が異なる図全体を通して同じ部分を指す添付図面に示される本発明の実施形態例のより具体的な説明から明らかになるだろう。図面は必ずしも一定の縮尺ではなく、代わりに、本発明の実施形態を示すことに重点が置かれている。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施形態を実施し得るネットワークサービスプロセッサを示すブロック図である。
【図２】一実施形態でのコヒーレントメモリ相互接続（ＣＭＩ）回路及び関連付けられた構成要素のブロック図である。
【図３】一実施形態でのキャッシュバンクへの要求の処理を示すブロック図である。
【図４】要求をキャッシュバンクに記憶する際に実現されるバッファを示すブロック図である。
【図５】キャッシュバンクからデータ出力する際に実現されるバッファを示すブロック図である。
【図６】一実施形態でのキャッシュバンクのブロック図である。
【発明を実施するための形態】
【０００９】
本発明の実施形態例を詳細に説明する前に、実施形態を実装し得るネットワークサービスプロセッサの例について、以下説明し、読み手による本発明の本発明による特徴の理解を助ける。
【００１０】
図１は、ネットワークサービスプロセッサ１００を示すブロック図である。ネットワークサービスプロセッサ１００は、少なくとも１つのプロセッサコア１２０を使用して高いアプリケーション性能を発揮する。
【００１１】
ネットワークサービスプロセッサ１００は、受信パケットにカプセル化された開放型システム間相互接続ネットワークＬ２〜Ｌ７レイヤプロトコルを処理する。当業者にはよく知られているように、開放型システム間相互接続（ＯＳＩ）参照モデルは７つのネットワークプロトコルレイヤ（Ｌ１〜Ｌ７）を定義する。物理レイヤ（Ｌ１）は、装置を伝送媒体に接続する電気的及び物理的な実際のインタフェースを表す。データリンクレイヤ（Ｌ２）はデータフレーム化を実行する。ネットワークレイヤ（Ｌ３）はデータをパケットにフォーマットする。トランスポートレイヤ（Ｌ４）は、エンドツーエンドトランスポートを処理する。セッションレイヤ（Ｌ５）は、装置間の通信、例えば、通信が半二重であるか、それとも全二重であるかを管理する。プレゼンテーションレイヤ（Ｌ６）は、データのフォーマット及びプレゼンテーション、例えば、シンタックス、制御コード、特別なグラフィックス、及びキャラクタセットを管理する。アプリケーションレイヤ（Ｌ７）は、ユーザ間の通信、例えば、ファイル転送及び電子メールを可能にする。
【００１２】
ネットワークサービスプロセッサ１００は、上位ネットワークプロトコル、例えばＬ４〜Ｌ７の作業（パケット処理動作）をスケジュールし待ち行列に入れ得、受信したパケットでの上位レベルネットワークプロトコルの処理を実行して、ワイヤ速度でパケットを転送する。ワイヤ速度は、データが送受信されるネットワークのデータ転送速度である。プロトコルを処理して、パケットをワイヤ速度で転送することにより、ネットワークサービスプロセッサはネットワークデータ転送率を低速化させない。
【００１３】
パケットは、複数のインタフェースユニット１２２によって受信されて処理される。パケットは、ＰＣＩインタフェース１２４によって受信することもできる。インタフェースユニット１２２は、受信パケットに含まれるＬ２ネットワークプロトコルヘッダ内の様々なフィールドをチェックすることによって受信パケットの事前処理を実行し、次に、パケットをパケット入力ユニット１２６に転送する。少なくとも１つのインタフェースユニット１２２ａは、複数のＸアタッチメントユニットインタフェース（ＸＡＵＩ）、リデュースドＸアタッチメントユニットインタフェース（ＲＸＡＵＩ）、又はシリアルギガビット媒体非依存インタフェース（ＳＧＭＩＩ）からパケットを受信することができる。少なくとも１つのインタフェースユニット１２２ｂは、インターラーケンインタフェース（ＩＬＫ）から接続を受信することができる。
【００１４】
パケット入力ユニット１２６は、受信パケットに含まれるネットワークプロトコルヘッダ（例えば、Ｌ３及びＬ４ヘッダ）の更なる事前処理を実行する。事前処理は、ＴＣＰ／ユーザデータグラムプロトコル（ＵＤＰ）（Ｌ３ネットワークプロトコル）のチェックサムチェックを含む。
【００１５】
フリープールアロケータ１２８は、レベル２キャッシュメモリ１３０及び外部ＤＲＡＭ１０８内の自由メモリへのポインタのプールを保持する。パケット入力ユニット１２６は、ポインタプールのうちの１つのポインタを使用して、受信パケットデータをレベル２キャッシュメモリ１３０又は外部ＤＲＡＭ１０８に記憶し、ポインタプールのうちの別の１つのポインタを使用して、プロセッサコア１２０用の作業待ち行列エントリを割り振る。
【００１６】
次に、パケット入力ユニット１２６は、パケットデータをレベル２キャッシュ１３０又は外部ＤＲＡＭ１０８内のバッファに書き込む。好ましくは、パケットデータは、プロセッサコア１２０の少なくとも１つで実行されるより上位レイヤのソフトウェアに都合のよいフォーマットでバッファに書き込まれる。したがって、より上位のネットワークプロトコルによる更なる処理が容易になる。
【００１７】
ネットワークサービスプロセッサ１００は、１つ又は複数のアプリケーション固有のコプロセッサを含むこともできる。これらのコプロセッサは、含まれる場合、処理のいくらかをコア１２０からオフロードし、それにより、ネットワークサービスプロセッサが高スループットパケット処理を達成することができる。例えば、受信パケットの圧縮及び圧縮解除の実行専用の圧縮／圧縮解除コプロセッサ１３２が提供される。コプロセッサユニットの他の実施形態はＲＡＩＤ／重複除外ユニット１６２を含み、これは、ディスク記憶アプリケーションのデータストライピング及びデータ複製処理を加速化する。
【００１８】
別のコプロセッサはハイパー有限オートマトン（ＨＦＡ）ユニット１６０であり、これは、アンチウィルス侵入検出システム及び他のコンテンツ処理アプリケーションに必要なパターン及び／又はシグネチャマッチングを加速化するように構成された専用ＨＦＡスレッドエンジンを含む。ＨＦＡユニット１６０を使用して、パターン及び／又はシグネチャマッチングは加速化され、例えば、毎秒数１０ギガビットの倍数以上の速度で実行される。ＨＦＡユニット１６０は、いくつかの実施形態では、決定性有限オートマトン（ＤＦＡ）、非決定性有限オートマトン（ＮＦＡ）、又はＨＦＡアルゴリズムユニットのうちの任意を含むことができる。
【００１９】
Ｉ／Ｏインタフェース１３６は、全体的なプロトコル及びアービトレーションを管理し、コヒーレントなＩ／Ｏパーティション化を提供する。Ｉ／Ｏインタフェース１３６は、Ｉ／Ｏブリッジ１３８及びフェッチアンドアッドユニット１４０を含む。Ｉ／Ｏブリッジは２つのブリッジ、すなわち、Ｉ／Ｏパケットブリッジ（ＩＯＢＰ）１３８ａ及びＩ／Ｏバスブリッジ（ＩＯＢＮ）１３８ｂを含む。Ｉ／Ｏパケットブリッジ１３８ａは、全体のプロトコル及びアービトレーションを管理し、主なパケット入出力にコヒーレントなＩ／Ｏ分割を提供するように構成される。Ｉ／Ｏバスブリッジ１３８ｂは、全体のプロトコル及びアービトレーションを管理し、主にＩ／ＯバスとのコヒーレントなＩ／Ｏ分割を提供するように構成される。フェッチアンドアッドユニット１４０内のレジスタを使用して、処理済みのパケットを、パケット出力ユニット１４６を通して転送するのに使用される出力待ち行列の長さを維持する。Ｉ／Ｏブリッジ１３８は、コヒーレントなメモリ相互接続（ＣＭＩ）１４４、Ｉ／Ｏバス１４２、パケット入力ユニット１２６、及びパケット出力ユニット１４６の間で転送すべき情報を記憶するバッファ待ち行列を含む。
【００２０】
種々雑多のＩ／Ｏインタフェース（ＭＩＯ）１１６は、汎用Ｉ／Ｏ（ＧＰＩＯ）、フラッシュ、ＩＥＥＥ８０２  ２線式管理インタフェース（ＭＤＩＯ）、シリアル管理割り込み（ＳＭＩ）、汎用非同期受信機−送信機（ＵＡＲＴ）、リデュースドギガビット媒体非依存インタフェース（ＲＧＭＩＩ）、媒体非依存インタフェース（ＭＩＩ）、２線式シリアルインタフェース（ＴＷＳＩ）、及び他のシリアルインタフェース等の補助インタフェースを含むことができる。
【００２１】
ネットワークサービスプロバイダ１００は、ＭＩＰＳ  ＥＪＴＡＧ規格をサポートするジョイントテストアクショングループ（「ＪＴＡＧ」）インタフェース１２３も含み得る。ＪＴＡＧ及びＭＩＰＳ  ＥＪＴＡＧ規格によれば、ネットワークサービスプロバイダ１００内の複数のコアはそれぞれ、内部テストアクセスポート（「ＴＡＰ」）コントローラを有する。これにより、ネットワークサービスプロバイダ１００のマルチコアデバッグサポートが可能になる。
【００２２】
スケジュール／同期・順序（ＳＳＯ）モジュール１４８は、プロセッサコア１２０の作業を待ち行列に入れスケジュールする。作業は、作業待ち行列エントリを待ち行列に追加することによって待ち行列に入れられる。例えば、作業待ち行列エントリは、パケットが到着する都度、パケット入力ユニット１２６によって追加される。タイマユニット１５０を使用して、プロセッサコア１２０の作業をスケジュールする。
【００２３】
プロセッサコア１２０は、ＳＳＯモジュール１４８からの作業を要求する。ＳＳＯモジュール１４８は、プロセッサコア１２０のうちの１つの作業を選択し（すなわち、スケジュールし）、作業を記述する作業待ち行列エントリへのポインタをプロセッサコア１２０に返す。
【００２４】
プロセッサコア１２０は次に、命令キャッシュ１５２と、レベル１データキャッシュ１５４と、暗号化アクセラレーション１５６とを含む。一実施形態では、ネットワークサービスプロセッサ１００は、３２のスーパースカラーリデュースド命令セットコンピュータ（ＲＩＳＣ）型プロセッサコア１２０を含む。いくつかの実施形態では、スーパースカラーＲＩＳＣ型プロセッサコア１２０のそれぞれは、ＭＩＰＳ６４バージョン３プロセッサコアの拡張を含む。一実施形態では、スーパースカラーＲＩＳＣ型プロセッサコア１２０のそれぞれは、ｃｎＭＩＰＳＩＩプロセッサコアを含む。
【００２５】
レベル２キャッシュメモリ１３０及び外部ＤＲＡＭ１０８は、全てのプロセッサコア１２０及びＩ／Ｏコプロセッサ装置によって共有される。各プロセッサコア１２０は、ＣＭＩ１４４によってレベル２キャッシュメモリ１３０に結合される。ＣＭＩ１４４は、プロセッサコア１００、Ｉ／Ｏインタフェース１３６、レベル２キャッシュメモリ１３０、及びコントローラの間での全てのメモリ及びＩ／Ｏトランザクションの通信チャネルである。一実施形態では、ＣＭＩ１４４は３２プロセッサコア１２０に拡張可能であり、ライトスルーを用いて完全にコヒーレントなレベル１データキャッシュ１５４をサポートする。好ましくは、ＣＭＩ１４４は、Ｉ／Ｏに優先度を付ける能力を用いて高度にバッファリングされる。ＣＭＩはトレース制御ユニット１６４に結合され、このユニットは、バス要求を捕捉、それにより、ソフトウェアが後に要求を読み出し、ＣＭＩでのイベントの順序のトレースを生成することができるように構成される。
【００２６】
レベル２キャッシュメモリコントローラ１３１は、メモリ参照コヒーレント性を維持する。レベル２キャッシュメモリコントローラ１３１は、ブロックがレベル２キャッシュメモリ１３０に記憶されるか、外部ＤＲＡＭ１０８に記憶されるか、それとも「インフライト（未処理）」であるかに関係なく、フィル要求毎にブロックの最新コピーを返す。このコントローラは、データキャッシュ１５４のタグの複製コピーも各プロセッサコア１２０に記憶する。このコントローラは、キャッシュブロックストア要求のアドレスをデータキャッシュタグと突き合わせて比較し、記憶命令が別のプロセッサコアからのものである場合、又はＩ／Ｏインタフェース１３６を介してＩ／Ｏ構成要素からのものである場合は常に、プロセッサコア１２０のデータキャッシュタグ（両コピー）を無効化する。
【００２７】
いくつかの実施形態では、複数のＤＲＡＭコントローラ１３３は最大で１２８ギガバイトのＤＲＡＭをサポートする。一実施形態では、複数のＤＲＡＭコントローラは４つのＤＲＡＭコントローラを含み、各ＤＲＡＭコントローラは３２ギガバイトのＤＲＡＭをサポートする。好ましくは、各ＤＲＡＭコントローラ１３３は、ＤＲＡＭ１０８への６４ビットインタフェースをサポートする。さらに、ＤＲＡＭコントローラ１３３は、ＤＤＲ−ＩＩＩプロトコル等の好ましいプロトコルをサポートすることができる。
【００２８】
パケットがプロセッサコア１２０によって処理された後、パケット出力ユニット１４６は、パケットデータをレベル２キャッシュメモリ１３０、１０８から読み出し、Ｌ４ネットワークプロトコル事後処理（例えば、ＴＣＰ／ＵＤＰチェックサムの生成）を実行し、インタフェースユニット１２２又はＰＣＩインタフェース１２４を通してパケットを転送し、パケットによって使用されたＬ２キャッシュ（２次キャッシュ）メモリ１３０／ＤＲＡＭ１０８を解放する。
【００２９】
ＤＲＡＭコントローラ１３３は、ＤＲＡＭ１０８への／からのインフライトトランザクション（ロード／ストア）を管理する。いくつかの実施形態では、ＤＲＡＭコントローラ１３３は４つのＤＲＡＭコントローラを含み、ＤＲＡＭ１０８は４つのＤＲＡＭメモリを含み、各ＤＲＡＭコントローラはＤＲＡＭメモリに接続される。ＤＦＡユニット１６０は、キャッシュ迂回アクセスパス１３５でＤＲＡＭコントローラ１３３に直接結合される。キャッシュ迂回アクセスパス１３５により、ＨＦＡユニットは、レベル２キャッシュメモリ１３０を使用せずにメモリから直接読み取ることができ、ＨＦＡ動作の効率を向上させることができる。
【００３０】
本発明の実施形態は、図１に示されるネットワークサービスプロセッサ１００において実施し得、より具体的にはパケット出力ユニット（ＰＫＯ）１２６及びインタフェースユニット１２２に向け得る。実施形態例について、図２〜図４を参照して更に詳細に以下に説明する。
【００３１】
図２は、一実施形態でのコヒーレントメモリ相互接続（ＣＭＩ）回路２４４及び関連付けられた構成要素のブロック図である。ＣＭＩ２４４は、プロセッサコアの群２２０Ａ〜Ｄと、Ｉ／Ｏブリッジ２３８Ａ及びＢと、レベル２キャッシュメモリバンク２３０Ａ〜Ｄとの間でメモリ及びＩ／Ｏトランザクションを誘導する通信チャネル及び制御回路である。ＣＭＩ２４４は、ＣＭＩ１４４としてネットワークプロセッサ１００で実施し得、プロセッサコア２２０Ａ〜Ｄは、プロセッサコア１２０として実現され、Ｉ／Ｏブリッジ２３８Ａ及びＢはＩ／Ｏブリッジ１３８ａ及びｂとして実現され、レベル２キャッシュメモリバンク２３０Ａ〜Ｄはレベル２キャッシュ１３０として実現される。
【００３２】
ネットワークプロセッサで実現されるプロセッサコアの数が増大するにつれて、そのような多数のソースのメモリサブシステムに対して、制御されたアクセスを提供することが問題になる。多数のプロセッサコア（例えば、３２）を有するネットワークプロセッサにおける第１の問題は、要求をコアからメモリシステムにいかに転送するかである。従来の設計は、リングバスを使用し、これは、より高い（そして変動する）待ち時間を生み出すおそれがある。複数のコアチップを設計する際の第２の問題は、その多数のコアによって生成される大量の要求にサービス提供することである。第３の同様の問題は、参照し、場合によってはＤＵＴ（ＤＵｐｌｉｃａｔｅタグ）を更新する各要求の要求仕様に対応しなければならないプロセッサコアのＬ１タグ（以下、ＤＵｐｌｉｃａｔｅタグ（複製タグ）又はＤＵＴと呼ぶ）の構造が関わる。第４に、応答データは、キャッシュから元のフィルバスに転送しなければならない。一度に１つのバス要求のみにサービス提供する能力を有する各キャッシュバンクを用い、各要求が最高で４サイクルを要求する場合、フィル（ＦＩＬＬ）バスが完全には利用されないことがある。第５の問題は、要求ソースから、要求にサービス提供することになるキャッシュバンクに転送しなければならないバスストア要求に関連付けられたデータに関わる。この問題は第４の問題（応答データが関わる）と同等であるが、ソースと宛先とが逆になる。第６に、プロセスコアは、Ｉ／Ｏブリッジの逆側にある装置へのアクセスを要求する。最後に、第７の問題は、メモリサブシステム全体を通してメモリコヒーレント性を維持することに関わる。
【００３３】
本発明の実施形態は、４組のコヒーレントメモリバス（ＣＭＢ）２２５Ａ〜Ｄを介して複数のプロセッサコアとＬ２キャッシュ及びメモリサブシステムとの間でのトランザクションの処理を提供する。各ＣＭＢ２２５Ａ〜Ｄは、個々のアッド（ＡＤＤ）／ストア（ＳＴＯＲＥ）／コミット（ＣＯＭＭＩＴ）／フィル（ＦＩＬＬ）のバスを備える。４つのＣＭＢ２２５Ａ〜Ｄ及びＩ／ＯブリッジバスＩＯＣ／ＩＯＲの群全体は、コヒーレントメモリ相互接続（ＣＭＩ）２４４を通して一緒に接続される。同様に、４つの追加のＣＭＢ２３５Ａ〜Ｄは個々のアッド／ストア／コミット／フィルのバスを備え、キャッシュバンク２３０Ａ〜ＤをＣＭＩ２４４に接続する。
【００３４】
ＣＭＢ２２５Ａ〜Ｄはそれぞれ、プロセッサコアの各群２２０Ａ〜Ｄをサポートし得る。この実施形態例では、プロセッサコアの各群２２０Ａ〜Ｄは８つのプロセッサコアを備えるが、追加のコア又はより少数のコアを含むように修正し得る。メモリアクセスをネットワークプロセッサのＩ／Ｏ部に提供するために、バス２２５Ａ及びＢの２つにはＩＯブリッジ（ＩＯＢ）２３８Ａ及びＢが取り付けられる。ＩＯＢ０  ２３８Ａを使用して、プロセッサコア２２０Ａ〜Ｄに、専用Ｉ／Ｏコマンド（ＩＯＣ）及びＩＯ応答（ＩＯＲ）バスを介してＮＣＢ側Ｉ／Ｏ装置へのアクセスを提供し得る。ＩＯＢ０  ２３８Ａ及びＩＯＢ１  ２３８Ｂは両方とも、プロセッサコア２２０Ａ及びＢとＣＭＢバス２２５Ａ及びＢをそれぞれ共有することによってＬ２キャッシュ及びメモリサブシステムにアクセスすることができる。
【００３５】
各キャッシュバンク２３０Ａ〜Ｄはレベル２キャッシュコントローラ（Ｌ２Ｃ）を含み得、これは、システムの共有メモリコヒーレントメモリを維持しながら、ＣＭＢ２２５Ａ〜Ｄとキャッシュバンク２３０Ａ〜Ｄとの間でのコマンド及び応答の転送を制御する。Ｌ２Ｃについては、図６を参照して更に詳細に後述する。
【００３６】
プロセッサコア２２０Ａ〜Ｄ及びＩ／Ｏブリッジ２３８Ａ及びＢを、それぞれが単一のＣＭＢ２２５Ａ〜Ｄによってサービス提供される４つの群に分割することにより、低待ち時間アービトレーション論理を使用し得る。ローカルアービトレーション判断は、群２２０Ａ〜Ｄ（及びＩＯブリッジが取り付けられたＣＭＢの場合には、Ｉ／Ｏブリッジ２３８Ａ及びＢ）のプロセッサコアのみの間でなされ、ソースははるかに小さな物理エリアをカバーする。アービトレーション要求及びそれらの要求の認可は、単一のサイクルで行うことができ、これは、ネットワークプロセッサの全てのプロセッサコアとＩ／Ｏブリッジとの間で調停しようとする場合には達成不可能なレートである。さらに、全てのＣＭＢ２２５Ａ〜Ｄは、同じ低い一定の待ち時間で、相互接続回路内の要求バッファに直接接続を有し得る。その結果、コアからメモリシステムへの要求は低待ち時間で転送される。
【００３７】
多数のプロセッサコアによって生成される大量の要求にサービス提供するために、Ｌ２キャッシュは４つの個別のキャッシュバンク２３０Ａ〜Ｄに分割される。その結果、サービス提供可能な要求の帯域幅は４倍になる。各要求の物理アドレスは、全ての共通するアドレスストライドで４つのキャッシュバンクにわたり略ランダム分布のキャッシュブロックを生成するように構成された排他的ＯＲ（ＸＯＲ）関数を使用してハッシュし得る。これは、ＣＭＢ要求の空間的な局所性を、４つのキャッシュバンク２３０Ａ〜Ｄにわたる略ランダム分布に変換し、サイクル毎の４つのタグ参照の利用率を向上させることができる。逆に、仮にＬ２キャッシュが１つの均一の構造であった場合、サイクル毎に１つのタグ参照しかできず、Ｌ２キャッシュ帯域幅をひどく制限してしまう。その結果、ネットワークプロセッサは、多数のコアによって生成される大量の要求にサービス提供することができる。要求の処理及び指示の構成例について図３を参照して後述する。
【００３８】
データ要求を処理するに当たり、ＣＭＩ２４４は、ＤＵＴを参照し、場合によっては更新しなければならない。４つのバスが要求を供給する場合、このプロセスは、サイクル毎に最高で４つのＤＵＴ参照を必要とする。ＤＵＴ参照に対応するために、ＤＵＴは８組に分割し得（「チャネル」とも呼ばれる）、各組はサイクル毎に１つの参照を実行することができる。相互接続回路２４４は、要求が異なる組を使用する必要がある場合、サイクル毎に最高で４つのＣＭＢ要求をＤＵＴにスロッティングすることが可能である。この構成は、２：１のリソース対要求比を提供し、同じサイクルで複数の要求にサービス提供することができる可能性を増大させる。その結果、ネットワークプロセッサコアのＬ１タグは、ＤＵＴを参照して更新する各要求の要求仕様に対応することができる。ＤＵＴを更新するプロセスは、図３を参照して更に詳細に後述する。
【００３９】
データを記憶するか、又は検索する要求は、プロセッサコアの群２２０Ａ〜Ｄのコアから、各バス２２５Ａ〜Ｄ及びＣＭＩ２４４を通り、キャッシュバンク２３０Ａ〜Ｄに転送され、キャッシュバンクが要求にサービス提供する。複数のプロセッサコアからのいくつかの要求にサービス提供するために、ストアソース（Ｉ／Ｏブリッジ２３８Ａ及びＢ又はプロセッサコア２２０Ａ〜Ｄのいずれか）からストアデータを読み出すプロセスを、キャッシュバンク２３０Ａ〜Ｄにストアバッファを書き込むプロセスと切り離し得る。これは、４つの２リード／２ライトポートカスタムデータバッファを使用して達成し得る。各バッファは、データを２つのＣＭＢ２２５Ａ〜Ｄバスから受信し得、データを２つのキャッシュバンク２３０Ａ〜Ｄに送信する。この構成により、データを提供又は受信する必要がある特定のＣＭＢ２２５Ａ〜Ｄ又はキャッシュバンク２３０Ａ〜Ｄから独立して、各ＣＭＢ２２５Ａ〜Ｄストアバスは各サイクル中に所与の量（例えば、１２８バイト）のストアデータを提供することができるとともに、各キャッシュバンクはサイクル毎に同量（例えば、１２８バイト）のストアデータを受信することができる。この構成は、ＣＭＢストアデータ要求のアービトレーション及びキャッシュバンク２３０Ａ〜Ｄのバッファに書き込むアービトレーションを簡易化し、それにより、利用可能なバスリソースの完全な利用を可能にする。その結果、キャッシュバンクのデータ入力能力が完全に利用される。データバッファの構造については、図４を参照して後述する。
【００４０】
要求への応答はキャッシュバンクによって提供され、キャッシュバンクから元のＣＭＢ２３５Ａ〜Ｄフィルバスに転送しなければならない。各キャッシュバンク２３０Ａ〜Ｄは、一度に１つのＣＭＢ要求にしかサービス提供することができないことがあり、各要求は最高で４サイクルを必要とする。ＣＭＢ２３５Ａ〜Ｄフィルバスを完全に利用する状態を保つために、キャッシュバンク２３０Ａ〜Ｄフィルバッファ読み出しポートは、ＣＭＢ２３５Ａ〜Ｄフィルバスから切り離し得、３ライトポート迂回可能バッファを相互接続回路２４４において実現して、ＣＭＢ２３５Ａ〜Ｄフィルバスを宛先としたデータをプリフェッチし得る。これにより、最高で３つのキャッシュバンクが応答を読み出し、同じバスに送信するために待ち行列に入れることができる。バッファは、ＣＭＢ２３５Ａ〜Ｄフィルバス及びキャッシュバンク２３０Ａ〜Ｄフィルポートの調整を提供して、利用を最大化する。その結果、キャッシュバンクからのデータ出力能力は完全に利用される。フィルバッファのこの構成について、図５を参照して更に詳細に後述する。
【００４１】
キャッシュバンク２３０Ａ〜Ｄに加えて、プロセッサコア２２０Ａ〜Ｄは、ＩＯＢ２３８Ａ及びＢの逆側にある装置（例えば、図１のネットワークプロセッサ１００のインタフェースユニット１２２ａ及びｂ並びにＩ／Ｏバス１４２の他の装置）へのアクセスを要求する。このアクセスは、専用Ｉ／Ｏコマンド（ＩＯＣ）バスを介してＩＯＢ０  ２３８Ａに提供される。ＣＭＢ２３５Ａアッド／ストアバスは、プロセッサコア２２０Ａ〜Ｄからの要求を提供し、相互接続回路２４４は、これらの要求をＩＯＣバスに必要な形態に変換し得る。さらに、相互接続回路２４４は、単一のＩＯＣバスのアービトレーションを処理しなければならない。Ｉ／Ｏブリッジ２３８Ａは、応答データを提供する場合、応答データをＩ／Ｏ応答（ＩＯＲ）バスに配置する。次に、相互接続回路２４４はこのデータを受信し、適宜フォーマットし、ＣＭＢ２３５Ａ〜Ｄフィルバスを介して要求側コアにデータを返す。その結果、プロセッサコア２２０Ａ〜Ｄに、ＩＯＢ２３８Ａ及びＢにわたる装置へのアクセスが提供される。
【００４２】
メモリサブシステムコヒーレント性を維持するために、複数バス構造に鑑みて、ストア要求によって生成される無効化信号及びコミット信号を考慮しなければならない。プロセッサコア２２０Ａ〜Ｄ又はＩ／Ｏ装置は、ストア動作を要求する（Ｉ／Ｏブリッジ２３８Ａ及びＢを通して）場合、各キャッシュバンク２３０Ａ〜ＤのＬ２Ｃからコミット信号を受信し、他のコア又はＩ／Ｏ装置が、そのストアからのデータを見えることを通知する。各自のストアの全ての未処理コミット信号を待つことにより、ソースは、続くストアの前に先のストアが可視であると判断することができる。これは、進むことができることを他のコア又は装置に通知するメカニズムを提供する。コアは、ストアを生成するコア／装置とは異なるバスにあることができるため、コミット信号とそれに関連付けられたＬ１無効化信号との間に重要な順序関係がある。通知されたコアは、無効化信号を受信する前に信号を受信する場合、古いデータを見ることができ、メモリシステムのコヒーレント性が失われることがある。このコヒーレント性の損失は、全てのバスの無効化信号が全てのバス２２５Ａ〜Ｄを横切ってプロセッサコア２２０Ａ〜Ｄに送信されたことがまず確認されるまでコミット信号を送信しないことにより、キャッシュバンク２３０Ａ〜ＤのＬ２Ｃによって回避することができる。いくつかの実施形態では、コミット信号がストアソースに到達して続く信号が、無効化信号を受信中のコアに到達するために必要な時間未満の時間で、無効化信号がＬ１に到達することを保証するように、回路を構成することができる。その結果、メモリコヒーレント性が維持される。
【００４３】
図３は、一実施形態でのキャッシュバンクへの要求の処理を示すブロック図である。図２を参照して上述したように、コア側ＣＭＢ２２５Ａ〜Ｄ及びキャッシュ側ＣＭＢ２３５Ａ〜Ｄは両方ともアッドバスを含み、アッドバスは、メモリトランザクションを開始するアドレス及び制御情報を搬送する。トランザクションのソースは、プロセッサコア２２０Ａ及びＢ並びにＩＯＢ２３８Ａ及びＢであることができる。ＣＭＩ相互接続回路２４４は、図３に示されるように、アドレスの処理及びコア側ＣＭＢ２２５Ａ〜Ｄからキャッシュ側ＣＭＢ２３５Ａ〜Ｄへの転送を提供する。ここで、図２を参照すると、要求のアドレスは、キャッシュバンク２３０Ａ〜Ｄ（「ＴＡＤ」（ＴＡＤ０〜ＴＡＤ３）とも呼ばれる）の任意のＦＩＦＯバッファへのＣＭＢ２２５Ａ〜Ｄの各アッドバス（ＡＤＤ０〜ＡＤＤ３）において受信される。４つのアッドバスのうちの任意のバスは、トランザクションを任意のキャッシュバンク２３０Ａ〜Ｄに誘導することができる。要求のアドレスは、どのＡＤＤバスからトランザクションが開始されたかに関係なく、トランザクションを処理するキャッシュバンク２３０Ａ〜Ｄを選択する。各要求の物理アドレスは、全ての共通アドレスストライドで４つのキャッシュバンク２３０Ａ〜Ｄ（ＴＡＤ０〜ＴＡＤ３）にわたりキャッシュブロックの略ランダムな分布を生成するように構成された排他的ＯＲ（ＸＯＲ）関数を使用してハッシュし得る。これは、ＣＭＢ要求の空間的局所性を、４つのキャッシュバンク２３０Ａ〜Ｄ（ＴＡＤ０〜ＴＡＤ３）にわたる略ランダム分布に変換し、サイクル毎の４つのタグ参照の利用率を向上させることができる。
【００４４】
アッドバスに到着したトランザクションはまず、宛先キャッシュバンクのＦＩＦＯのうちの１つに入る。各ＦＩＦＯは、最高で４つのアッドバストランザクションをサイクル毎にバッファリングすることができる。アルゴリズムにより、アドレスが更に処理される順序が決まる。
【００４５】
ＣＭＩ相互接続回路２４４でのスケジューラは、どのトランザクションがＦＩＦＯを出ることができるかを決定し得る。最高で４つのトランザクション（４つのＴＡＤのそれぞれから１つが可能）が、回路２４４でのＬ１Ｄタグパイプに向けて各サイクルで競う。Ｌ１Ｄタグパイプ（パイプ０〜７として示される）は、Ｌ１データキャッシュタグのコピーを有する（すなわち、複製タグつまりＤＵＴである）。Ｌ１Ｄタグパイプは、トランザクションがＬ１データキャッシュ内のブロックのコピーを無効化するか否かを判断する。無効化する場合、相互接続回路２４４は最終的に、Ｌ１Ｄキャッシュ無効化コマンドをトランザクションのコミットバス及びフィルバスに送信する。
【００４６】
相互接続回路２４４は、要求を受信すると、要求のアドレス（又はアドレスビット＜９：７＞のようなアドレスの一部分）を解析して、どのＬ１Ｄタグパイプが各トランザクションによって使用されるかを選択し得る。最高で４つのトランザクションのそれぞれが全て、異なるアドレスビット＜９：７＞を提示した場合、クロスバーはサイクル中に全てのトランザクションをスケジュールする。実施態様は、ＤＵＴを、Ｌ１Ｄタグパイプ０〜３を含むＤＵＴ０〜３と、Ｌ１Ｄタグパイプ４〜７を含むＤＵＴ４〜７とに分割する。
【００４７】
相互接続回路２４４が、キャッシュバンクＦＩＦＯからのトランザクションをスケジュールする場合、トランザクションは、相互接続回路２４４（アッドバスを介して）及びキャッシュバンクのそれぞれのＬ１Ｄタグパイプ及びＬ２タグパイプの両方に同時に入る。ＤＵＴの状態は、Ｌ１タグの状態に一致するように更新される。キャッシュバンクインフライトバッファは最終的に、これらのタグパイプからの結果を使用してトランザクションを完了する。迂回（図示せず）は、ＤＵＴ及びキャッシュバンクリソースに競合がない場合、余分ないかなるＦＩＦＯ待ち時間も回避することができる。
【００４８】
各要求は、キャッシュバンクＬ２タグの参照及び全てのプロセッサコアのＬ１タグの状態の参照を要求し得る。この状態はＤＵＴとして保持され、Ｌ２内のＬ１タグのコピーである。要求をキャッシュバンクに均等に分布させるアドレスハッシュ関数は、ハッシュ関数に必要なビットが時間内で利用可能ではないことがあることから、Ｌ１には使用されないことがあるため、ＤＵＴでサイクル毎に４つの参照を実行するのに十分な帯域幅を提供するために、ＤＵＴを８つの別個の組（「チャネル」）に分割し得、各アドレスは１つのチャネルにマッピングされる。４つのみのアドレスがサイクル毎に選択され、８つのＤＵＴチャネルがあるため、２つ以上の要求（最高で４つまで）が、通常のアドレス分布に基づいて選択される可能性が高い。
【００４９】
図４は、キャッシュバンクへの要求において実施されるバッファを示すブロック図である。図２を参照して上述したように、キャッシュ側ＣＭＢ２３５Ａ〜Ｄはストアバスを含み、ストアバスは、メモリトランザクション中にキャッシュバンク２３０Ａ〜Ｄに記憶すべきデータを搬送する。データを記憶又は検索する要求は、プロセッサコア群２２０Ａ〜Ｄから各バス２２５Ａ〜Ｄ及びＣＭＩ２４４を通してキャッシュバンク２３０Ａ〜Ｄに転送され、キャッシュバンクは要求にサービス提供する。複数のプロセッサコアからのいくつかの要求にサービス提供するために、４つの２リード／２ライトポートデータバッファ４２２Ａ〜Ｄが、データをストアバス（ＳＴＯＲＥ０〜ＳＴＯＲＥ１）から受信する。各バッファ４２２Ａ〜Ｄは、２つのＣＭＢ２５５Ａ〜Ｄストアバスからデータを受信し得、２つのキャッシュバンク２３０Ａ〜Ｄにデータを送信し得る。この構成により、データを提供又は受信する必要がある特定のＣＭＢ２２５Ａ〜Ｄ又はキャッシュバンク２３０Ａ〜Ｄから独立して、各ＣＭＢ２２５Ａ〜Ｄストアバスは、各サイクル中に所与の量（例えば、１２８バイト）のストアデータを提供することができるとともに、各キャッシュバンクは、サイクル毎に同量（例えば、１２８バイト）のストアデータを受信することができる。
【００５０】
図５は、キャッシュバンクからデータ出力する際に実現されるバッファを示すブロック図である。図２を参照して上述したように、要求への応答はキャッシュバンクによって提供され、キャッシュバンクから元のＣＭＢ２３５Ａ〜Ｄフィルバス（図５ではＴＡＤ０  ＦＩＬＬ…ＴＡＤ３  ＦＩＬＬとして示される）に転送しなければならない。各キャッシュバンク２３０Ａ〜Ｄは、一度に１つのみのＣＭＢ要求にサービス提供可能であり得、各要求は最高で４サイクルを必要とする。ＣＭＢ２３５Ａ〜Ｄフィルバスを完全に利用する状態を保つために、フィルバッファ５３２Ａ〜Ｄを実現して、ＣＭＢ２３５Ａ〜Ｄフィルバスからキャッシュバンク２３０Ａ〜Ｄの読み出しポートを切り離すことができる。フィルバッファ５３２Ａ〜Ｄは、相互接続回路２４４で実施することができ、ＣＭＢ２３５Ａ〜Ｄフィルバスを宛先としたデータをプリフェッチすることができる３ライトポート迂回可能バッファであり得る。これにより、最高で３つのキャッシュバンクが応答データを読み出し、同じバスで送信するために待ち行列に入れ得る。バッファ５３２Ａ〜Ｄは、ＣＭＢ２３５Ａ〜Ｄフィルバス及びキャッシュバンク２３０Ａ〜Ｄフィルポートの調整を提供して、各ＣＭＢ２３５Ａ〜Ｄフィルバスの利用を最大化する。
【００５１】
図６は、図２を参照して上述した各キャッシュバンク２３０Ａ〜Ｄに存在するＬ２Ｃ制御回路のブロック図である。キャッシュバンクは、Ｌ２キャッシュの部分のキャッシュタグ及びデータの両方を含む。４つのクワッドがデータを含む。各クワッドはＬ２キャッシュの２５６ＫＢを有する。キャッシュバンクは、アドレスバッファ及びデータバッファも含む。アドレスバッファは、受信した全てのＬ２読み出し動作及び書き込み動作を追跡するインフライトアドレスバッファ（ＬＦＢ）と、ＤＲＡＭに書き込まれた（ＬＭＣを介して）全てのブロックを追跡するビクティムアドレスバッファ（ＶＡＢ）とを含む。Ｌ２Ｃは、ＬＦＢに最高で１６の同時Ｌ２／ＤＲＡＭトランザクションを保持して処理するとともに、ＶＡＢ／ＶＢＦにおいて最高で１６のインフライトＬ２キャッシュビクティム／ライトスルー動作を管理する。
【００５２】
データバッファは、データがＬ２キャッシュ又はＤＲＡＭから読み出されるときは常に使用されるフィルバッファ（ＦＢＦ）と、全てのストアトランザクションに使用されるストアバッファ（ＳＢＦ）と、データをＤＲＡＭに書き込むために使用されるビクティムデータバッファ（ＶＤＢ）とを含む。Ｌ２／ＤＲＡＭフィルトランザクションでは、Ｌ２Ｃは、ＬＦＢエントリに関連付けられたＦＢＦエントリを介して、Ｌ２キャッシュ又はメモリのいずれかからデータを返す。Ｌ２／ＤＲＡＭストアトランザクションでは、Ｌ２Ｃはまず、ストアバスデータを、ＬＦＢエントリに関連付けられたＳＢＦエントリに配置し、次に、キャッシュを更新するか、又は完全なキャッシュブロックストアをそのままＤＲＡＭに書き込む。キャッシュブロック内の全てのバイトへのストア動作を除き、Ｌ２キャッシュでミスする全てのＬ２／ＤＲＡＭトランザクションはＤＲＡＭフィル動作を必要とする。部分キャッシュブロックストア動作は、ストアされないバイトを得るためにＤＲＡＭフィル動作を必要とする。Ｌ２Ｃは、ＤＲＡＭフィルデータをＦＢＦに配置し、次に、必要であればそれをＬ２キャッシュに書き込み、必要であればフィルバスに転送する。
【００５３】
本発明を本発明の実施形態例を参照して具体的に図示し説明したが、添付の特許請求の範囲によって包含される本発明の範囲から逸脱せずに、形態及び詳細に様々な変更を行い得ることが当業者には理解されるだろう。
【図１】
2018045700.tif 000003
【図２】
2018045700.tif 000004
【図３】
2018045700.tif 000005
【図４】
2018045700.tif 000006
【図５】
2018045700.tif 000007
【図６】
2018045700.tif 000008
【手続補正書】
【提出日】平成29年11月24日(2017.11.24)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
相互接続回路と、
複数のメモリバスであって、各メモリバスが、複数のプロセッサコア群のそれぞれを前記相互接続回路に接続する、複数のメモリバスと、
複数のバンクに分割されるキャッシュであって、各バンクは、個々のバスを介して前記相互接続回路に接続される、キャッシュとを備えた、コンピュータチップ上のコンピュータシステムであって、
前記相互接続回路が、前記複数のプロセッサコアから受信される複数の要求を前記複数のバンクに分配し、
前記相互接続回路が、前記要求のそれぞれにハッシュ関数を実行し、このハッシュ関数が、前記複数のバンクへの前記要求の疑似ランダム分配を提供する、
コンピュータシステム。
【請求項２】
前記相互接続回路が、前記要求のアドレスコンポーネントを変更することによって前記要求を変換する、請求項１に記載のシステム。
【請求項３】
前記相互接続回路は、前記複数のプロセッサコアの１つに結合された１次キャッシュの状態を示すタグを保持し、前記相互接続回路は、前記複数の要求のタグを複数のチャネルに誘導し、これにより、前記各タグを同時に処理する、請求項１に記載のシステム。
【請求項４】
前記相互接続回路は、複数のデータ出力バッファを更に備え、前記データ出力バッファのそれぞれは、前記複数のバンクのそれぞれからデータを受信し、前記複数のメモリバスのそれぞれ１つを通してデータを出力する、請求項１に記載のシステム。
【請求項５】
前記相互接続回路は、複数の要求バッファを更に備え、前記要求バッファのそれぞれは、複数のプロセッサの各群から要求を受信し、前記要求を前記複数のバンクの１つに出力する、請求項１に記載のシステム。
【請求項６】
前記メモリバスのうちの少なくとも１つに結合された少なくとも１つのブリッジ回路を更に備え、当該少なくとも１つのブリッジ回路は、前記複数のプロセッサコアを少なくとも１つのオンチップコプロセッサに接続する、請求項１に記載のシステム。
【請求項７】
前記バンクは、前記複数のプロセッサコアへのコミット信号の送信を遅延させるものであり、前記バンクは、無効化信号が前記複数のプロセッサコア全てに送信されたことの表明の受信に応答して、前記コミット信号を送信する、請求項１に記載のシステム。
【請求項８】
前記相互接続回路及び複数のメモリバスは、コミット信号が前記複数のバンクの１つに到達するため、かつ、続く信号が前記無効化信号を受信する前記複数のプロセッサコアの１つに到達するために必要な時間未満で１次キャッシュに到達するように、無効化信号を制御する、請求項１に記載のシステム。