(57)【要約】      （修正有）【課題】ダイレクト・メモリ・アクセス（ＤＭＡ）メカニズムを有するコンピュータ・システム内においてプロセッサのローカル・ストアへデータをロードするための方法および装置を提供する。【解決手段】データの転送が、コンピュータ・システムのシステム・メモリからローカル・ストアに対して行われる。データは、システム・メモリからプロセッサのキャッシュへフェッチされる。データを要求するＤＭＡロード要求が発行される。要求されたデータがキャッシュ内に見つかるか否かの決定が行われる。要求されたデータがキャッシュ内に見つかったとの決定に応答して、その要求されたデータが、キャッシュからローカル・ストアへ直接ロードされる。【選択図】  図３
2005056401.tif 000002
【特許請求の範囲】
【請求項１】
ダイレクト・メモリ・アクセス（ＤＭＡ）メカニズムを有するコンピュータ・システム内におけるプロセッサのローカル・ストアへデータをロードするための方法であって：
前記コンピュータ・システムのシステム・メモリから前記ローカル・ストアへのデータの転送を行うステップ；
前記システム・メモリから前記プロセッサのキャッシュへ前記データをフェッチするステップ；
データを要求するＤＭＡロード要求を発行するステップ；
前記要求されたデータが前記キャッシュ内に見つかるか否かを決定するステップ；および、
前記要求されたデータが前記キャッシュ内に見つかるとの決定に応答して、前記要求されたデータを直接、前記キャッシュから前記ローカル・ストアへロードするステップ；
を含む方法。
【請求項２】
さらに、前記要求されたデータが前記キャッシュ内に見つからないとの決定に応答して、前記要求されたデータを、前記システム・メモリから前記ローカル・ストアへロードするステップを含むものとする、請求項１に記載の方法。
【請求項３】
前記コンピュータ・システムは、前記キャッシュを共有する複数のプロセッサを含むものとし、さらに、前記キャッシュからのデータを前記複数のプロセッサの１ないしは複数へロードするステップを含むものとする、請求項１に記載の方法。
【請求項４】
さらに：
前記システム・メモリから前記ローカル・ストアへ転送されるデータのサイズが、前記キャッシュのサイズより大きいか否かを決定するステップ；および、
前記データのサイズが前記キャッシュのサイズより大きいとの決定に応答して、前記システム・メモリから前記プロセッサのキャッシュへ前記データをフェッチするステップを停止するステップ；
を含むものとする、請求項１に記載の方法。
【請求項５】
コンピュータ・システムであって：
ローカル・ストアを有するプロセッサ；
前記プロセッサ内に備わるメモリ・フロー・コントローラ（ＭＦＣ）であり、データに関するＤＭＡロード要求を発行するＭＦＣ；
システム・メモリ；および、
前記プロセッサと前記システム・メモリの間に結合されるキャッシュ；を備え、かつ
前記要求されたデータが前記キャッシュ内に見つかるとの決定に応答して、前記要求されたデータが直接、前記キャッシュから前記ローカル・ストアへロードされるものとする、コンピュータ・システム。
【請求項６】
前記ＭＦＣは、前記データのＤＭＡロード要求に応答して、前記データを前記キャッシュから前記ローカル・ストアへロードするものとする、請求項５に記載のコンピュータ・システム。
【請求項７】
マルチプロセッサ・コンピュータ・システムであって：
それぞれがローカル・ストアを有する１ないしは複数のプロセッサ；
それぞれが各プロセッサ内に備わり、第１のメモリ・フロー・コントローラ（ＭＦＣ）がデータに関するＤＭＡロード要求を発行するものとする１ないしは複数のＭＦＣ；
システム・メモリ；および、
少なくとも１つのプロセッサと前記システム・メモリの間に結合されるキャッシュを備え、それにおいて、前記要求されたデータが前記キャッシュ内に見つかるとの決定に応答して、前記要求されたデータが直接、前記キャッシュから前記ローカル・ストアへロードされるものとする、マルチプロセッサ・コンピュータ・システム。
【請求項８】
前記プロセッサの少なくとも１つは、シナジスティック・プロセッサ・コンプレックス（ＳＰＣ）であるとする、請求項７に記載のマルチプロセッサ・コンピュータ・システム。
【請求項９】
前記シナジスティック・プロセッサ・コンプレックス（ＳＰＣ）は、シナジスティック・プロセッサ・ユニット（ＳＰＵ）を含むものとする、請求項８に記載のマルチプロセッサ・コンピュータ・システム。
【請求項１０】
ダイレクト・メモリ・アクセス（ＤＭＡ）メカニズムを有するコンピュータ・システム内におけるプロセッサのローカル・ストアへデータをロードするための装置であって：
前記コンピュータ・システムのシステム・メモリから前記ローカル・ストアへのデータの転送を行うための手段；
前記システム・メモリから前記プロセッサのキャッシュへ前記データをフェッチするための手段；
データを要求するＤＭＡロード要求を発行するための手段；
前記要求されたデータが前記キャッシュ内に見つかるか否かを決定するための手段；および、
前記要求されたデータが前記キャッシュ内に見つかるとの決定に応答して、前記要求されたデータを直接、前記キャッシュから前記ローカル・ストアへロードするための手段；
を備える装置。
【請求項１１】
さらに、前記要求されたデータが前記キャッシュ内に見つからないとの決定に応答して、前記要求されたデータを、前記システム・メモリから前記ローカル・ストアへロードするための手段を備えるものとする、請求項１０に記載の装置。
【請求項１２】
前記コンピュータ・システムは、前記キャッシュを共有する複数のプロセッサを含むものとし、さらに、前記キャッシュからのデータを前記複数のプロセッサの１ないしは複数へロードするための手段を備えるものとする、請求項１０に記載の装置。
【請求項１３】
さらに：
前記システム・メモリから前記ローカル・ストアへ転送されるデータのサイズが、前記キャッシュのサイズより大きいか否かを決定するための手段；および、
前記データのサイズが前記キャッシュのサイズより大きいとの決定に応答して、前記システム・メモリから前記プロセッサのキャッシュへ前記データをフェッチするための手段をディセーブルするための手段；
を備えるものとする、請求項１０に記載の装置。
【請求項１４】
ダイレクト・メモリ・アクセス（ＤＭＡ）メカニズムを有するコンピュータ・システム内におけるプロセッサのローカル・ストアへデータをロードするためのコンピュータ・プログラム・プロダクトであり、コンピュータ・プログラムが埋め込まれたメディアを有し、前記コンピュータ・プログラムが：
前記コンピュータ・システムのシステム・メモリから前記ローカル・ストアへのデータの転送を行うためのコンピュータ・プログラム・コード；
前記システム・メモリから前記プロセッサのキャッシュへ前記データをフェッチするためのコンピュータ・プログラム・コード；
データを要求するＤＭＡロード要求を発行するためのコンピュータ・プログラム・コード；
前記要求されたデータが前記キャッシュ内に見つかるか否かを決定するためのコンピュータ・プログラム・コード；および、
前記要求されたデータが前記キャッシュ内に見つかるとの決定に応答して、前記要求されたデータを直接、前記キャッシュから前記ローカル・ストアへロードするためのコンピュータ・プログラム・コード；
を含むものとする、コンピュータ・プログラム・プロダクト。
【請求項１５】
前記コンピュータ・プログラムが、さらに、前記要求されたデータが前記キャッシュ内に見つからないとの決定に応答して、前記要求されたデータを、前記システム・メモリから前記ローカル・ストアへロードするためのコンピュータ・プログラム・コードを含むものとする、請求項１４に記載のコンピュータ・プログラム・プロダクト。
【請求項１６】
前記コンピュータ・システムは、前記キャッシュを共有する複数のプロセッサを含むものとし、それにおいて前記コンピュータ・プログラムが、さらに、前記キャッシュからのデータを前記複数のプロセッサの１ないしは複数へロードするためのコンピュータ・プログラム・コードを含むものとする、請求項１４に記載のコンピュータ・プログラム・プロダクト。
【請求項１７】
前記コンピュータ・プログラムが、さらに：
前記システム・メモリから前記ローカル・ストアへ転送されるデータのサイズが、前記キャッシュのサイズより大きいか否かを決定するためのコンピュータ・プログラム・コード；および、
前記データのサイズが前記キャッシュのサイズより大きいとの決定に応答して、前記システム・メモリから前記プロセッサのキャッシュへ前記データをフェッチするためのコンピュータ・プログラム・コードをディセーブルするためのコンピュータ・プログラム・コード；
を含むものとする、請求項１４に記載のコンピュータ・プログラム・プロダクト。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概してメモリ・マネジメントに関し、より詳細に述べれば、ダイレクト・メモリ・アクセス（ＤＭＡ）メカニズム内のキャッシュに対するデータのフェッチに関する。
【背景技術】
【０００２】
マルチプロセッサ設計においては、ＤＭＡメカニズムが使用されて１つのタイプのメモリから別のメモリへ情報が移動される。ＤＭＡエンジンまたはＤＭＡコントローラ等のＤＭＡメカニズムもまた、システム・メモリからプロセッサのローカル・ストアへ、情報を移動する。ＤＭＡコマンドがシステム・メモリからプロセッサのローカル・ストアへ情報の移動を試みるとき、システム・メモリからプロセッサのローカル・ストアへの情報のロードにおいていくらかの遅延が生じる。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
したがって、コンピュータ・システム内において、システム・メモリからダイレクト・メモリ・アクセス（ＤＭＡ）メカニズム用のキャッシュへデータをフェッチするためのシステムおよび方法の存在が必要とされている。
【課題を解決するための手段】
【０００４】
本発明は、ダイレクト・メモリ・アクセス（ＤＭＡ）メカニズムを有するコンピュータ・システム内においてプロセッサのローカル・ストアへデータをロードするための方法および装置を提供する。データの転送が、コンピュータ・システムのシステム・メモリからローカル・メモリに対して行われる。データは、システム・メモリからプロセッサのキャッシュへフェッチされる。データを要求するＤＭＡロード要求が発行される。要求されたデータがキャッシュ内に見つかるか否かの決定が行われる。要求されたデータがキャッシュ内に見つかったとの決定に応答して、その要求されたデータが、キャッシュからローカル・ストアへ直接ロードされる。
【０００５】
本発明ならびにその利点のより完全な理解のため、以下、添付図面とともに詳細な説明を行う。
【発明を実施するための最良の形態】
【０００６】
以下の考察においては、多くの具体的な詳細を示して本発明の完全な理解を提供する。しかしながら、当業者が、その種の特定の詳細なしに本発明が実施できることは明らかであろう。一方、周知のエレメントについては、本発明が、不必要な詳細の中に埋もれて不明瞭となることを避けるため、略図またはブロック図形式で示している。
【０００７】
さらにここで注意を要するが、特に示さない限り、ここに述べられているすべての機能は、ハードウエアもしくはソフトウエア、あるいは何らかの形のそれらの組み合わせにおいて実施することができる。しかしながら好ましい実施態様においては、それらの機能が、特に示さない限り、コンピュータ・プログラム・コード等のコード、ソフトウエアに従ってコンピュータ等のプロセッサまたは電子データ・プロセッサにより、かつ／またはその種の機能を実行するべくコードされた集積回路によって実行される。
【０００８】
この説明の残りの部分においては、プロセッシング・ユニット（ＰＵ）をデバイス内の単独の演算プロセッサとすることができる。その種の状況においては、通常、ＰＵがＭＰＵ（メイン・プロセッシング・ユニット）と呼ばれる。プロセッシング・ユニットは、与えられた演算デバイス用に開発された何らかの方法もしくはアルゴリズムに従って演算負荷を共有する多くのプロセッシング・ユニットとしてもよい。この説明の残りの部分については、プロセッサに対するあらゆる参照に、特に示さない限り、ＭＰＵがデバイス内の単独の演算エレメントであるか否か、あるいはＭＰＵがほかのＭＰＵと演算エレメントを共有するか否かとは無関係に、ＭＰＵという用語を用いるものとする。
【０００９】
添付図面の図１を参照すると、参照番号１００は、ダイレクト・メモリ・アクセス（ＤＭＡ）メカニズム内にキャッシュを採用したシングル・プロセッサ・コンピュータ・システムを示している。このシングル・プロセッサ・コンピュータ・システム１００は、シナジスティック・プロセッサ・コンプレックス（ＳＰＣ）１０２を備え、そこには、シナジスティック・プロセッサ・ユニット（ＳＰＵ）１０４、ローカル・ストア１０６、およびメモリ・フロー・コントローラ（ＭＦＣ）１０８が含まれている。またこのシングル・プロセッサ・コンピュータ・システムには、ＳＰＵのＬ１キャッシュ（ＳＬ１キャッシュ）１０９、およびシステム・メモリ１１０も備わっている。ＳＰＣ  １０２は、接続１１２を介してＳＬ１キャッシュ１０９へ結合されている。ＳＬ１キャッシュ１０９は、接続１１４を介してシステム・メモリ１１０へ結合されている。ＭＦＣ  １０８は、ＤＭＡコントローラとして機能する。
【００１０】
ＭＦＣ  １０８が、システム・メモリ１１０とローカル・ストア１０６の間におけるデータ転送を実行すると、ＳＬ１キャッシュ１０９にもその転送されたデータがフェッチされる。ＭＦＣ  １０８が、その後、同一のデータを要求するときには、ＭＦＣ  １０８は、システム・メモリ１１０まで完全に引き返してそのデータを検索する必要がない。それに代えてＭＦＣ  １０８は、ＳＬ１キャッシュ１０９へアクセスしてそのデータを検索し、そのデータをローカル・ストア１０６へ転送する。通常、転送されるデータのサイズは、ＳＬ１キャッシュ１０９のサイズを超えないものとなる。
【００１１】
好ましくは、あらゆるデータに関してＭＦＣ  １０８は、まずＳＬ１キャッシュ１０９をチェックする。そこでヒットがあれば、ＭＦＣ  １０８は、そのデータをＳＬ１キャッシュ１０９からローカル・ストア１０６へ転送する。ヒットがなければ、ＭＦＣ  １０８が通常に行っているとおり、ＭＦＣ  １０８は、システム・メモリ１１０からローカル・ストア１０６へデータを転送する。
【００１２】
図２は、ＤＭＡメカニズム内にキャッシュを採用したマルチプロセッサ・コンピュータ・システム２００を示したブロック図である。このマルチプロセッサ・コンピュータ・システム２００は、１ないしは複数のシナジスティック・プロセッサ・コンプレックス（ＳＰＣ）２０２を有している。ＳＰＣ  ２０２は、シナジスティック・プロセッサ・ユニット（ＳＰＵ）２０４、ローカル・ストア２０６、およびメモリ・フロー・コントローラ（ＭＦＣ）２０８を有する。さらにマルチプロセッサ・コンピュータ・システム２００は、ＳＰＵのＬ１キャッシュ（ＳＬ１キャッシュ）２１０、およびシステム・メモリ２１２を備えている。ＳＬ１キャッシュ２１０は、ＳＰＣ  ２０２とシステム・メモリ２１２の間に、接続２１６および２１８を介して結合されている。ここで注意されたいが、すべてのＳＰＣ  ２０２とのインターフェースに単一のＳＬ１キャッシュ２１０が使用されている。しかしながら、別の具体化においては、複数のキャッシュが使用されることもある。上記に加えて、このマルチプロセッサ・コンピュータ・システム２００は、プロセッシング・ユニット（ＰＵ）２２０を備え、そこにはＬ１キャッシュ２２２が含まれている。マルチプロセッサ・コンピュータ・システム２００は、さらに、ＰＵ  ２２０とシステム・メモリ２１２の間に、接続２２６および２２８を介して結合されたＬ２キャッシュ２２４を備えている。
【００１３】
ＭＦＣ  ２０８が、システム・メモリ２１２とローカル・ストア２０６の間におけるデータ転送を実行すると、ＳＬ１キャッシュ２１０にもその転送されたデータがフェッチされる。ＭＦＣ  ２０８が、その後、同一のデータを要求するときには、ＭＦＣ  ２０８は、システム・メモリ２１２まで完全に引き返してそのデータを検索する必要がない。それに代えてＭＦＣ  ２０８は、ＳＬ１キャッシュ２１０へアクセスしてそのデータを検索し、そのデータをローカル・ストア２０６へ転送する。通常、転送されるデータのサイズは、ＳＬ１キャッシュ２１０のサイズを超えないものとなる。
【００１４】
好ましくは、あらゆるデータに関してＭＦＣ  ２０８は、まずＳＬ１キャッシュ２１０をチェックする。そこでヒットがあれば、ＭＦＣ  ２０８は、そのデータをＳＬ１キャッシュ２１０からローカル・ストア２０６へ転送する。ヒットがなければ、ＭＦＣ  ２０８が通常に行っているとおり、ＭＦＣ  ２０８は、システム・メモリ２１２からローカル・ストア２０６へデータを転送する。
【００１５】
次に図３を参照すると、図１および２に示したようなＤＭＡメカニズムに適用できるキャッシュ・メカニズム３００を例示したフローチャートが示されている。
【００１６】
ステップ３０２においては、ＤＭＡメカニズムが、システム・メモリからプロセッサのローカル・ストアへのデータの転送を行う。たとえば図１の場合であれば、ＭＦＣ  １０８が、システム・メモリ１１０からＳＰＣ  １０２のためのローカル・ストア１０６へ、データを転送する。たとえば図２の場合であれば、ＭＦＣ  ２０８が、システム・メモリ２１２からＳＰＣ  ２０２のためのローカル・ストア２０６へ、データを転送する。ステップ３０４においては、システム・メモリからキャッシュへデータがフェッチされる。ステップ３０６においては、システム・メモリからのデータを要求するＤＭＡロード要求が発行される。ステップ３０８においては、要求されたデータがキャッシュ内に見つかるか否かが決定される。ステップ３０８において、要求されたデータがキャッシュ内に見つかった場合（つまり、キャッシュがヒットした場合）には、プロセスがステップ３１０へ進み、そこで、キャッシュからローカル・ストアへ、要求されたデータが直接ロードされる。ステップ３０８において、要求されたデータがキャッシュ内に見つからなかった場合（つまり、キャッシュがヒットしなかった場合）には、プロセスがステップ３１２へ進み、そこで、メモリからローカル・ストアへ、要求されたデータがロードされる。
【００１７】
ここで注意が必要であるが、本発明の真の精神から逸脱することなく、システム・メモリへデータを書き戻す方法は、数多く存在し得る。たとえば、キャッシュ（たとえば、図１のＳＬ１キャッシュ１０９）を介してシステム・メモリ（たとえば、図１のシステム・メモリ１１０）へデータを書き戻すことができる。それに代えて、キャッシュを経由せずに直接、データがシステム・メモリへ書き戻されるようにしてもよい。後者の場合には、システム・メモリへ書き戻されているデータに関するキャッシュ・エントリを無効化することができる。システム・メモリへのデータの書き戻しに関するこれらの、およびこのほかの詳細は、これ以上ここでは開示しない。
【００１８】
以上の説明から、本発明の真の精神から逸脱することなしに、その好ましい実施態様において各種の修正および変更を行うことができることが理解されよう。この説明は、例示のみを目的として意図されたものであり、限定的に解釈されるべきではない。本発明の範囲は、付随する特許請求の範囲の表現によってのみ限定されるべきとする。
【００１９】
まとめとして、本発明の構成に関して以下の事項を開示する。
【００２０】
（１）ダイレクト・メモリ・アクセス（ＤＭＡ）メカニズムを有するコンピュータ・システム内におけるプロセッサのローカル・ストアへデータをロードするための方法であって：前記コンピュータ・システムのシステム・メモリから前記ローカル・ストアへのデータの転送を行うステップ；前記システム・メモリから前記プロセッサのキャッシュへ前記データをフェッチするステップ；データを要求するＤＭＡロード要求を発行するステップ；前記要求されたデータが前記キャッシュ内に見つかるか否かを決定するステップ；および、前記要求されたデータが前記キャッシュ内に見つかるとの決定に応答して、前記要求されたデータを直接、前記キャッシュから前記ローカル・ストアへロードするステップ；を含む方法。
（２）さらに、前記要求されたデータが前記キャッシュ内に見つからないとの決定に応答して、前記要求されたデータを、前記システム・メモリから前記ローカル・ストアへロードするステップを含むものとする、上記（１）に記載の方法。
（３）前記コンピュータ・システムは、前記キャッシュを共有する複数のプロセッサを含むものとし、さらに、前記キャッシュからのデータを前記複数のプロセッサの１ないしは複数へロードするステップを含むものとする、上記（１）に記載の方法。
（４）さらに：前記システム・メモリから前記ローカル・ストアへ転送されるデータのサイズが、前記キャッシュのサイズより大きいか否かを決定するステップ；および、前記データのサイズが前記キャッシュのサイズより大きいとの決定に応答して、前記システム・メモリから前記プロセッサのキャッシュへ前記データをフェッチするステップを停止するステップ；を含むものとする、上記（１）に記載の方法。
（５）コンピュータ・システムであって：ローカル・ストアを有するプロセッサ；前記プロセッサ内に備わるメモリ・フロー・コントローラ（ＭＦＣ）であり、データに関するＤＭＡロード要求を発行するＭＦＣ；システム・メモリ；および、前記プロセッサと前記システム・メモリの間に結合されるキャッシュ；を備え、かつ前記要求されたデータが前記キャッシュ内に見つかるとの決定に応答して、前記要求されたデータが直接、前記キャッシュから前記ローカル・ストアへロードされるものとする、コンピュータ・システム。
（６）前記ＭＦＣは、前記データのＤＭＡロード要求に応答して、前記データを前記キャッシュから前記ローカル・ストアへロードするものとする、上記（５）に記載のコンピュータ・システム。
（７）マルチプロセッサ・コンピュータ・システムであって：それぞれがローカル・ストアを有する１ないしは複数のプロセッサ；それぞれが各プロセッサ内に備わり、第１のメモリ・フロー・コントローラ（ＭＦＣ）がデータに関するＤＭＡロード要求を発行するものとする１ないしは複数のＭＦＣ；システム・メモリ；および、少なくとも１つのプロセッサと前記システム・メモリの間に結合されるキャッシュを備え、それにおいて、前記要求されたデータが前記キャッシュ内に見つかるとの決定に応答して、前記要求されたデータが直接、前記キャッシュから前記ローカル・ストアへロードされるものとする、マルチプロセッサ・コンピュータ・システム。
（８）前記プロセッサの少なくとも１つは、シナジスティック・プロセッサ・コンプレックス（ＳＰＣ）であるとする、上記（７）に記載のマルチプロセッサ・コンピュータ・システム。
（９）前記シナジスティック・プロセッサ・コンプレックス（ＳＰＣ）は、シナジスティック・プロセッサ・ユニット（ＳＰＵ）を含むものとする、上記（８）に記載のマルチプロセッサ・コンピュータ・システム。
（１０）ダイレクト・メモリ・アクセス（ＤＭＡ）メカニズムを有するコンピュータ・システム内におけるプロセッサのローカル・ストアへデータをロードするための装置であって：前記コンピュータ・システムのシステム・メモリから前記ローカル・ストアへのデータの転送を行うための手段；前記システム・メモリから前記プロセッサのキャッシュへ前記データをフェッチするための手段；データを要求するＤＭＡロード要求を発行するための手段；前記要求されたデータが前記キャッシュ内に見つかるか否かを決定するための手段；および、前記要求されたデータが前記キャッシュ内に見つかるとの決定に応答して、前記要求されたデータを直接、前記キャッシュから前記ローカル・ストアへロードするための手段；を備える装置。
（１１）さらに、前記要求されたデータが前記キャッシュ内に見つからないとの決定に応答して、前記要求されたデータを、前記システム・メモリから前記ローカル・ストアへロードするための手段を備えるものとする、上記（１０）に記載の装置。
（１２）前記コンピュータ・システムは、前記キャッシュを共有する複数のプロセッサを含むものとし、さらに、前記キャッシュからのデータを前記複数のプロセッサの１ないしは複数へロードするための手段を備えるものとする、上記（１０）に記載の装置。
（１３）さらに：前記システム・メモリから前記ローカル・ストアへ転送されるデータのサイズが、前記キャッシュのサイズより大きいか否かを決定するための手段；および、前記データのサイズが前記キャッシュのサイズより大きいとの決定に応答して、前記システム・メモリから前記プロセッサのキャッシュへ前記データをフェッチするための手段をディセーブルするための手段；を備えるものとする、上記（１０）に記載の装置。
（１４）ダイレクト・メモリ・アクセス（ＤＭＡ）メカニズムを有するコンピュータ・システム内におけるプロセッサのローカル・ストアへデータをロードするためのコンピュータ・プログラム・プロダクトであり、コンピュータ・プログラムが埋め込まれたメディアを有し、前記コンピュータ・プログラムが：前記コンピュータ・システムのシステム・メモリから前記ローカル・ストアへのデータの転送を行うためのコンピュータ・プログラム・コード；前記システム・メモリから前記プロセッサのキャッシュへ前記データをフェッチするためのコンピュータ・プログラム・コード；データを要求するＤＭＡロード要求を発行するためのコンピュータ・プログラム・コード；前記要求されたデータが前記キャッシュ内に見つかるか否かを決定するためのコンピュータ・プログラム・コード；および、前記要求されたデータが前記キャッシュ内に見つかるとの決定に応答して、前記要求されたデータを直接、前記キャッシュから前記ローカル・ストアへロードするためのコンピュータ・プログラム・コード；を含むものとする、コンピュータ・プログラム・プロダクト。
（１５）前記コンピュータ・プログラムが、さらに、前記要求されたデータが前記キャッシュ内に見つからないとの決定に応答して、前記要求されたデータを、前記システム・メモリから前記ローカル・ストアへロードするためのコンピュータ・プログラム・コードを含むものとする、上記（１４）に記載のコンピュータ・プログラム・プロダクト。
（１６）前記コンピュータ・システムは、前記キャッシュを共有する複数のプロセッサを含むものとし、それにおいて前記コンピュータ・プログラムが、さらに、前記キャッシュからのデータを前記複数のプロセッサの１ないしは複数へロードするためのコンピュータ・プログラム・コードを含むものとする、上記（１４）に記載のコンピュータ・プログラム・プロダクト。
（１７）前記コンピュータ・プログラムが、さらに：前記システム・メモリから前記ローカル・ストアへ転送されるデータのサイズが、前記キャッシュのサイズより大きいか否かを決定するためのコンピュータ・プログラム・コード；および、前記データのサイズが前記キャッシュのサイズより大きいとの決定に応答して、前記システム・メモリから前記プロセッサのキャッシュへ前記データをフェッチするためのコンピュータ・プログラム・コードをディセーブルするためのコンピュータ・プログラム・コード；を含むものとする、上記（１４）に記載のコンピュータ・プログラム・プロダクト。
【図面の簡単な説明】
【００２１】
【図１】ダイレクト・メモリ・アクセス（ＤＭＡ）メカニズムに加えてキャッシュを採用したシングル・プロセッサ・コンピュータ・システムを示したブロック図である。
【図２】ＤＭＡメカニズムに加えてキャッシュを採用したマルチプロセッサ・コンピュータ・システムを示したブロック図である。
【図３】図１および２に示したようなＤＭＡメカニズムに適用できるキャッシュ・メカニズムを例示したフローチャートである。
【符号の説明】
【００２２】
１００  シングル・プロセッサ・コンピュータ・システム
１０２  シナジスティック・プロセッサ・コンプレックス（ＳＰＣ）
１０４  シナジスティック・プロセッサ・ユニット（ＳＰＵ）
１０６  ローカル・ストア
１０８  メモリ・フロー・コントローラ（ＭＦＣ）
１０９  ＳＬ１キャッシュ
１１０  システム・メモリ
１１２  接続
１１４  接続
２００  マルチプロセッサ・コンピュータ・システム
２０２  シナジスティック・プロセッサ・コンプレックス（ＳＰＣ）
２０４  シナジスティック・プロセッサ・ユニット（ＳＰＵ）
２０６  ローカル・ストア
２０８  メモリ・フロー・コントローラ（ＭＦＣ）
２１０  ＳＬ１キャッシュ
２１２  システム・メモリ
２１６  接続
２１８  接続
２２０  プロセッシング・ユニット（ＰＵ）
２２２  Ｌ１キャッシュ
２２４  Ｌ２キャッシュ
２２６  接続
２２８  接続
３００  キャッシュ・メカニズム
【図１】
2005056401.tif 000003
【図２】
2005056401.tif 000004
【図３】
2005056401.tif 000005