JP4019073B2 - キャッシュ可能なdma - Google Patents

キャッシュ可能なdma Download PDF

Info

Publication number
JP4019073B2
JP4019073B2 JP2004207889A JP2004207889A JP4019073B2 JP 4019073 B2 JP4019073 B2 JP 4019073B2 JP 2004207889 A JP2004207889 A JP 2004207889A JP 2004207889 A JP2004207889 A JP 2004207889A JP 4019073 B2 JP4019073 B2 JP 4019073B2
Authority
JP
Japan
Prior art keywords
cache
data
size
system memory
local store
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.)
Expired - Fee Related
Application number
JP2004207889A
Other languages
English (en)
Other versions
JP2005056401A (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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2005056401A publication Critical patent/JP2005056401A/ja
Application granted granted Critical
Publication of JP4019073B2 publication Critical patent/JP4019073B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • 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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/25Using a specific main memory architecture
    • G06F2212/251Local memory within processor subsystem
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/25Using a specific main memory architecture
    • G06F2212/253Centralized memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Bus Control (AREA)

Description

本発明は、概してメモリ・マネジメントに関し、より詳細に述べれば、ダイレクト・メモリ・アクセス(DMA)メカニズム内のキャッシュに対するデータのフェッチに関する。
マルチプロセッサ設計においては、DMAメカニズムが使用されて1つのタイプのメモリから別のメモリへ情報が移動される。DMAエンジンまたはDMAコントローラ等のDMAメカニズムもまた、システム・メモリからプロセッサのローカル・ストアへ、情報を移動する。DMAコマンドがシステム・メモリからプロセッサのローカル・ストアへ情報の移動を試みるとき、システム・メモリからプロセッサのローカル・ストアへの情報のロードにおいていくらかの遅延が生じる。
したがって、コンピュータ・システム内において、システム・メモリからダイレクト・メモリ・アクセス(DMA)メカニズム用のキャッシュへデータをフェッチするためのシステムおよび方法の存在が必要とされている。
本発明は、ダイレクト・メモリ・アクセス(DMA)メカニズムを有するコンピュータ・システム内においてプロセッサのローカル・ストアへデータをロードするための方法および装置を提供する。データの転送が、コンピュータ・システムのシステム・メモリからローカル・メモリに対して行われる。データは、システム・メモリからプロセッサのキャッシュへフェッチされる。データを要求するDMAロード要求が発行される。要求されたデータがキャッシュ内に見つかるか否かの決定が行われる。要求されたデータがキャッシュ内に見つかったとの決定に応答して、その要求されたデータが、キャッシュからローカル・ストアへ直接ロードされる。
本発明ならびにその利点のより完全な理解のため、以下、添付図面とともに詳細な説明を行う。
以下の考察においては、多くの具体的な詳細を示して本発明の完全な理解を提供する。しかしながら、当業者が、その種の特定の詳細なしに本発明が実施できることは明らかであろう。一方、周知のエレメントについては、本発明が、不必要な詳細の中に埋もれて不明瞭となることを避けるため、略図またはブロック図形式で示している。
さらにここで注意を要するが、特に示さない限り、ここに述べられているすべての機能は、ハードウエアもしくはソフトウエア、あるいは何らかの形のそれらの組み合わせにおいて実施することができる。しかしながら好ましい実施態様においては、それらの機能が、特に示さない限り、コンピュータ・プログラム・コード等のコード、ソフトウエアに従ってコンピュータ等のプロセッサまたは電子データ・プロセッサにより、かつ/またはその種の機能を実行するべくコードされた集積回路によって実行される。
この説明の残りの部分においては、プロセッシング・ユニット(PU)をデバイス内の単独の演算プロセッサとすることができる。その種の状況においては、通常、PUがMPU(メイン・プロセッシング・ユニット)と呼ばれる。プロセッシング・ユニットは、与えられた演算デバイス用に開発された何らかの方法もしくはアルゴリズムに従って演算負荷を共有する多くのプロセッシング・ユニットとしてもよい。この説明の残りの部分については、プロセッサに対するあらゆる参照に、特に示さない限り、MPUがデバイス内の単独の演算エレメントであるか否か、あるいはMPUがほかのMPUと演算エレメントを共有するか否かとは無関係に、MPUという用語を用いるものとする。
添付図面の図1を参照すると、参照番号100は、ダイレクト・メモリ・アクセス(DMA)メカニズム内にキャッシュを採用したシングル・プロセッサ・コンピュータ・システムを示している。このシングル・プロセッサ・コンピュータ・システム100は、シナジスティック・プロセッサ・コンプレックス(SPC)102を備え、そこには、シナジスティック・プロセッサ・ユニット(SPU)104、ローカル・ストア106、およびメモリ・フロー・コントローラ(MFC)108が含まれている。またこのシングル・プロセッサ・コンピュータ・システムには、SPUのL1キャッシュ(SL1キャッシュ)109、およびシステム・メモリ110も備わっている。SPC 102は、接続112を介してSL1キャッシュ109へ結合されている。SL1キャッシュ109は、接続114を介してシステム・メモリ110へ結合されている。MFC 108は、DMAコントローラとして機能する。
MFC 108が、システム・メモリ110とローカル・ストア106の間におけるデータ転送を実行すると、SL1キャッシュ109にもその転送されたデータがフェッチされる。MFC 108が、その後、同一のデータを要求するときには、MFC 108は、システム・メモリ110まで完全に引き返してそのデータを検索する必要がない。それに代えてMFC 108は、SL1キャッシュ109へアクセスしてそのデータを検索し、そのデータをローカル・ストア106へ転送する。通常、転送されるデータのサイズは、SL1キャッシュ109のサイズを超えないものとなる。
好ましくは、あらゆるデータに関してMFC 108は、まずSL1キャッシュ109をチェックする。そこでヒットがあれば、MFC 108は、そのデータをSL1キャッシュ109からローカル・ストア106へ転送する。ヒットがなければ、MFC 108が通常に行っているとおり、MFC 108は、システム・メモリ110からローカル・ストア106へデータを転送する。
図2は、DMAメカニズム内にキャッシュを採用したマルチプロセッサ・コンピュータ・システム200を示したブロック図である。このマルチプロセッサ・コンピュータ・システム200は、1ないしは複数のシナジスティック・プロセッサ・コンプレックス(SPC)202を有している。SPC 202は、シナジスティック・プロセッサ・ユニット(SPU)204、ローカル・ストア206、およびメモリ・フロー・コントローラ(MFC)208を有する。さらにマルチプロセッサ・コンピュータ・システム200は、SPUのL1キャッシュ(SL1キャッシュ)210、およびシステム・メモリ212を備えている。SL1キャッシュ210は、SPC 202とシステム・メモリ212の間に、接続216および218を介して結合されている。ここで注意されたいが、すべてのSPC 202とのインターフェースに単一のSL1キャッシュ210が使用されている。しかしながら、別の具体化においては、複数のキャッシュが使用されることもある。上記に加えて、このマルチプロセッサ・コンピュータ・システム200は、プロセッシング・ユニット(PU)220を備え、そこにはL1キャッシュ222が含まれている。マルチプロセッサ・コンピュータ・システム200は、さらに、PU 220とシステム・メモリ212の間に、接続226および228を介して結合されたL2キャッシュ224を備えている。
MFC 208が、システム・メモリ212とローカル・ストア206の間におけるデータ転送を実行すると、SL1キャッシュ210にもその転送されたデータがフェッチされる。MFC 208が、その後、同一のデータを要求するときには、MFC 208は、システム・メモリ212まで完全に引き返してそのデータを検索する必要がない。それに代えてMFC 208は、SL1キャッシュ210へアクセスしてそのデータを検索し、そのデータをローカル・ストア206へ転送する。通常、転送されるデータのサイズは、SL1キャッシュ210のサイズを超えないものとなる。
好ましくは、あらゆるデータに関してMFC 208は、まずSL1キャッシュ210をチェックする。そこでヒットがあれば、MFC 208は、そのデータをSL1キャッシュ210からローカル・ストア206へ転送する。ヒットがなければ、MFC 208が通常に行っているとおり、MFC 208は、システム・メモリ212からローカル・ストア206へデータを転送する。
次に図3を参照すると、図1および2に示したようなDMAメカニズムに適用できるキャッシュ・メカニズム300を例示したフローチャートが示されている。
ステップ302においては、DMAメカニズムが、システム・メモリからプロセッサのローカル・ストアへのデータの転送を行う。たとえば図1の場合であれば、MFC 108が、システム・メモリ110からSPC 102のためのローカル・ストア106へ、データを転送する。たとえば図2の場合であれば、MFC 208が、システム・メモリ212からSPC 202のためのローカル・ストア206へ、データを転送する。ステップ304においては、システム・メモリからキャッシュへデータがフェッチされる。ステップ306においては、システム・メモリからのデータを要求するDMAロード要求が発行される。ステップ308においては、要求されたデータがキャッシュ内に見つかるか否かが決定される。ステップ308において、要求されたデータがキャッシュ内に見つかった場合(つまり、キャッシュがヒットした場合)には、プロセスがステップ310へ進み、そこで、キャッシュからローカル・ストアへ、要求されたデータが直接ロードされる。ステップ308において、要求されたデータがキャッシュ内に見つからなかった場合(つまり、キャッシュがヒットしなかった場合)には、プロセスがステップ312へ進み、そこで、メモリからローカル・ストアへ、要求されたデータがロードされる。
ここで注意が必要であるが、本発明の真の精神から逸脱することなく、システム・メモリへデータを書き戻す方法は、数多く存在し得る。たとえば、キャッシュ(たとえば、図1のSL1キャッシュ109)を介してシステム・メモリ(たとえば、図1のシステム・メモリ110)へデータを書き戻すことができる。それに代えて、キャッシュを経由せずに直接、データがシステム・メモリへ書き戻されるようにしてもよい。後者の場合には、システム・メモリへ書き戻されているデータに関するキャッシュ・エントリを無効化することができる。システム・メモリへのデータの書き戻しに関するこれらの、およびこのほかの詳細は、これ以上ここでは開示しない。
以上の説明から、本発明の真の精神から逸脱することなしに、その好ましい実施態様において各種の修正および変更を行うことができることが理解されよう。この説明は、例示のみを目的として意図されたものであり、限定的に解釈されるべきではない。本発明の範囲は、付随する特許請求の範囲の表現によってのみ限定されるべきとする。
まとめとして、本発明の構成に関して以下の事項を開示する。
(1)ダイレクト・メモリ・アクセス(DMA)メカニズムを有するコンピュータ・システム内におけるプロセッサのローカル・ストアへデータをロードするための方法であって:前記コンピュータ・システムのシステム・メモリから前記ローカル・ストアへのデータの転送を行うステップ;前記システム・メモリから前記プロセッサのキャッシュへ前記データをフェッチするステップ;データを要求するDMAロード要求を発行するステップ;前記要求されたデータが前記キャッシュ内に見つかるか否かを決定するステップ;および、前記要求されたデータが前記キャッシュ内に見つかるとの決定に応答して、前記要求されたデータを直接、前記キャッシュから前記ローカル・ストアへロードするステップ;を含む方法。
(2)さらに、前記要求されたデータが前記キャッシュ内に見つからないとの決定に応答して、前記要求されたデータを、前記システム・メモリから前記ローカル・ストアへロードするステップを含むものとする、上記(1)に記載の方法。
(3)前記コンピュータ・システムは、前記キャッシュを共有する複数のプロセッサを含むものとし、さらに、前記キャッシュからのデータを前記複数のプロセッサの1ないしは複数へロードするステップを含むものとする、上記(1)に記載の方法。
(4)さらに:前記システム・メモリから前記ローカル・ストアへ転送されるデータのサイズが、前記キャッシュのサイズより大きいか否かを決定するステップ;および、前記データのサイズが前記キャッシュのサイズより大きいとの決定に応答して、前記システム・メモリから前記プロセッサのキャッシュへ前記データをフェッチするステップを停止するステップ;を含むものとする、上記(1)に記載の方法。
(5)コンピュータ・システムであって:ローカル・ストアを有するプロセッサ;前記プロセッサ内に備わるメモリ・フロー・コントローラ(MFC)であり、データに関するDMAロード要求を発行するMFC;システム・メモリ;および、前記プロセッサと前記システム・メモリの間に結合されるキャッシュ;を備え、かつ前記要求されたデータが前記キャッシュ内に見つかるとの決定に応答して、前記要求されたデータが直接、前記キャッシュから前記ローカル・ストアへロードされるものとする、コンピュータ・システム。
(6)前記MFCは、前記データのDMAロード要求に応答して、前記データを前記キャッシュから前記ローカル・ストアへロードするものとする、上記(5)に記載のコンピュータ・システム。
(7)マルチプロセッサ・コンピュータ・システムであって:それぞれがローカル・ストアを有する1ないしは複数のプロセッサ;それぞれが各プロセッサ内に備わり、第1のメモリ・フロー・コントローラ(MFC)がデータに関するDMAロード要求を発行するものとする1ないしは複数のMFC;システム・メモリ;および、少なくとも1つのプロセッサと前記システム・メモリの間に結合されるキャッシュを備え、それにおいて、前記要求されたデータが前記キャッシュ内に見つかるとの決定に応答して、前記要求されたデータが直接、前記キャッシュから前記ローカル・ストアへロードされるものとする、マルチプロセッサ・コンピュータ・システム。
(8)前記プロセッサの少なくとも1つは、シナジスティック・プロセッサ・コンプレックス(SPC)であるとする、上記(7)に記載のマルチプロセッサ・コンピュータ・システム。
(9)前記シナジスティック・プロセッサ・コンプレックス(SPC)は、シナジスティック・プロセッサ・ユニット(SPU)を含むものとする、上記(8)に記載のマルチプロセッサ・コンピュータ・システム。
(10)ダイレクト・メモリ・アクセス(DMA)メカニズムを有するコンピュータ・システム内におけるプロセッサのローカル・ストアへデータをロードするための装置であって:前記コンピュータ・システムのシステム・メモリから前記ローカル・ストアへのデータの転送を行うための手段;前記システム・メモリから前記プロセッサのキャッシュへ前記データをフェッチするための手段;データを要求するDMAロード要求を発行するための手段;前記要求されたデータが前記キャッシュ内に見つかるか否かを決定するための手段;および、前記要求されたデータが前記キャッシュ内に見つかるとの決定に応答して、前記要求されたデータを直接、前記キャッシュから前記ローカル・ストアへロードするための手段;を備える装置。
(11)さらに、前記要求されたデータが前記キャッシュ内に見つからないとの決定に応答して、前記要求されたデータを、前記システム・メモリから前記ローカル・ストアへロードするための手段を備えるものとする、上記(10)に記載の装置。
(12)前記コンピュータ・システムは、前記キャッシュを共有する複数のプロセッサを含むものとし、さらに、前記キャッシュからのデータを前記複数のプロセッサの1ないしは複数へロードするための手段を備えるものとする、上記(10)に記載の装置。
(13)さらに:前記システム・メモリから前記ローカル・ストアへ転送されるデータのサイズが、前記キャッシュのサイズより大きいか否かを決定するための手段;および、前記データのサイズが前記キャッシュのサイズより大きいとの決定に応答して、前記システム・メモリから前記プロセッサのキャッシュへ前記データをフェッチするための手段をディセーブルするための手段;を備えるものとする、上記(10)に記載の装置。
(14)ダイレクト・メモリ・アクセス(DMA)メカニズムを有するコンピュータ・システム内におけるプロセッサのローカル・ストアへデータをロードするためのコンピュータ・プログラム・プロダクトであり、コンピュータ・プログラムが埋め込まれたメディアを有し、前記コンピュータ・プログラムが:前記コンピュータ・システムのシステム・メモリから前記ローカル・ストアへのデータの転送を行うためのコンピュータ・プログラム・コード;前記システム・メモリから前記プロセッサのキャッシュへ前記データをフェッチするためのコンピュータ・プログラム・コード;データを要求するDMAロード要求を発行するためのコンピュータ・プログラム・コード;前記要求されたデータが前記キャッシュ内に見つかるか否かを決定するためのコンピュータ・プログラム・コード;および、前記要求されたデータが前記キャッシュ内に見つかるとの決定に応答して、前記要求されたデータを直接、前記キャッシュから前記ローカル・ストアへロードするためのコンピュータ・プログラム・コード;を含むものとする、コンピュータ・プログラム・プロダクト。
(15)前記コンピュータ・プログラムが、さらに、前記要求されたデータが前記キャッシュ内に見つからないとの決定に応答して、前記要求されたデータを、前記システム・メモリから前記ローカル・ストアへロードするためのコンピュータ・プログラム・コードを含むものとする、上記(14)に記載のコンピュータ・プログラム・プロダクト。
(16)前記コンピュータ・システムは、前記キャッシュを共有する複数のプロセッサを含むものとし、それにおいて前記コンピュータ・プログラムが、さらに、前記キャッシュからのデータを前記複数のプロセッサの1ないしは複数へロードするためのコンピュータ・プログラム・コードを含むものとする、上記(14)に記載のコンピュータ・プログラム・プロダクト。
(17)前記コンピュータ・プログラムが、さらに:前記システム・メモリから前記ローカル・ストアへ転送されるデータのサイズが、前記キャッシュのサイズより大きいか否かを決定するためのコンピュータ・プログラム・コード;および、前記データのサイズが前記キャッシュのサイズより大きいとの決定に応答して、前記システム・メモリから前記プロセッサのキャッシュへ前記データをフェッチするためのコンピュータ・プログラム・コードをディセーブルするためのコンピュータ・プログラム・コード;を含むものとする、上記(14)に記載のコンピュータ・プログラム・プロダクト。
ダイレクト・メモリ・アクセス(DMA)メカニズムに加えてキャッシュを採用したシングル・プロセッサ・コンピュータ・システムを示したブロック図である。 DMAメカニズムに加えてキャッシュを採用したマルチプロセッサ・コンピュータ・システムを示したブロック図である。 図1および2に示したようなDMAメカニズムに適用できるキャッシュ・メカニズムを例示したフローチャートである。
符号の説明
100 シングル・プロセッサ・コンピュータ・システム
102 シナジスティック・プロセッサ・コンプレックス(SPC)
104 シナジスティック・プロセッサ・ユニット(SPU)
106 ローカル・ストア
108 メモリ・フロー・コントローラ(MFC)
109 SL1キャッシュ
110 システム・メモリ
112 接続
114 接続
200 マルチプロセッサ・コンピュータ・システム
202 シナジスティック・プロセッサ・コンプレックス(SPC)
204 シナジスティック・プロセッサ・ユニット(SPU)
206 ローカル・ストア
208 メモリ・フロー・コントローラ(MFC)
210 SL1キャッシュ
212 システム・メモリ
216 接続
218 接続
220 プロセッシング・ユニット(PU)
222 L1キャッシュ
224 L2キャッシュ
226 接続
228 接続
300 キャッシュ・メカニズム

Claims (10)

  1. ダイレクト・メモリ・アクセス(DMA)メカニズムを有するコンピュータ・システムにおいてプロセッサのローカル・ストアへデータをロードするための方法であって、
    前記コンピュータ・システムのシステム・メモリから前記ローカル・ストアへのデータの転送を行うステップと、
    前記システム・メモリから前記ローカル・ストアへ転送されるデータのサイズが、キャッシュのサイズより大きいか否かを判定するステップと、
    前記データのサイズが前記キャッシュのサイズ以下であると判定された場合に、前記システム・メモリから前記プロセッサのキャッシュへ前記データをフェッチするステップと、
    前記データのサイズが前記キャッシュのサイズより大きいと判定された場合に、前記システム・メモリから前記プロセッサのキャッシュへ前記データをフェッチするステップを停止するステップと、
    データを要求するDMAロード要求を発行するステップと、
    前記要求されたデータが前記キャッシュ内に存在するか否かを判定するステップと、
    前記要求されたデータが前記キャッシュ内に存在すると判定された場合に、前記要求されたデータを直接前記キャッシュから前記ローカル・ストアへロードするステップと、
    前記要求されたデータが前記キャッシュ内に存在しないと判定された場合に、前記要求されたデータを、前記システム・メモリから前記ローカル・ストアへロードするステップと、
    を含む方法。
  2. 前記コンピュータ・システムは、前記キャッシュを共有する複数のプロセッサを含み、さらに、前記キャッシュからのデータを前記複数のプロセッサの1ないしは複数へロードするステップを含む請求項1に記載の方法。
  3. コンピュータ・システムであって、
    ローカル・ストアを有するプロセッサと、
    システム・メモリと、
    前記プロセッサと前記システム・メモリの間に結合されるキャッシュとを備え、
    さらに、前記プロセッサに備えられ、前記コンピュータ・システムのシステム・メモリから前記ローカル・ストアへのデータの転送を行うステップと、
    前記システム・メモリから前記ローカル・ストアへ転送されるデータのサイズが、前記キャッシュのサイズより大きいか否かを判定するステップと、
    前記データのサイズが前記キャッシュのサイズ以下であると判定した場合に、前記システム・メモリから前記プロセッサのキャッシュへ前記データをフェッチするステップと、
    前記データのサイズが前記キャッシュのサイズより大きいと判定した場合に、前記システム・メモリから前記プロセッサのキャッシュへ前記データをフェッチするステップを停止するステップと、
    データを要求するDMAロード要求に応じて、前記要求されたデータが前記キャッシュ内に存在するか否かを判定するステップと、
    前記要求されたデータが前記キャッシュ内に存在すると判定した場合に、前記要求されたデータを直接前記キャッシュから前記ローカル・ストアへロードするステップと、
    前記要求されたデータが前記キャッシュ内に存在しないと判定された場合に、前記要求されたデータを、前記システム・メモリから前記ローカル・ストアへロードするステップとを実行するメモリ・フロー・コントローラを有するコンピュータ・システム。
  4. 前記プロセッサが複数備えられ、前記キャッシュは少なくとも1つのプロセッサと前記システム・メモリの間に結合される請求項3記載のコンピュータ・システム。
  5. 前記プロセッサの少なくとも1つは、シナジスティック・プロセッサ・コンプレックス(SPC)である請求項4に記載のコンピュータ・システム。
  6. 前記シナジスティック・プロセッサ・コンプレックス(SPC)は、シナジスティック・プロセッサ・ユニット(SPU)を含む請求項5に記載のコンピュータ・システム。
  7. ダイレクト・メモリ・アクセス(DMA)メカニズムを有するコンピュータ・システムにおいてプロセッサのローカル・ストアへデータをロードするための装置であって、
    前記コンピュータ・システムのシステム・メモリから前記ローカル・ストアへのデータの転送を行う手段と、
    前記システム・メモリから前記ローカル・ストアへ転送されるデータのサイズが、キャッシュのサイズより大きいか否かを判定する手段と、
    前記データのサイズが前記キャッシュのサイズ以下であると判定された場合に、前記システム・メモリから前記プロセッサのキャッシュへ前記データをフェッチする手段と、
    前記データのサイズが前記キャッシュのサイズより大きいと判定された場合に、前記システム・メモリから前記プロセッサのキャッシュへの前記データのフェッチを停止する手段と、
    データを要求するDMAロード要求を発行する手段と、
    前記要求されたデータが前記キャッシュ内に存在するか否かを判定する手段と、
    前記要求されたデータが前記キャッシュ内に存在すると判定された場合に、前記要求されたデータを直接前記キャッシュから前記ローカル・ストアへロードする手段と、
    前記要求されたデータが前記キャッシュ内に存在しないと判定された場合に、前記要求されたデータを、前記システム・メモリから前記ローカル・ストアへロードする手段と、
    を備える装置。
  8. 前記コンピュータ・システムは、前記キャッシュを共有する複数のプロセッサを含み、さらに、前記キャッシュからのデータを前記複数のプロセッサの1ないしは複数へロードするための手段を備える請求項7に記載の装置。
  9. ダイレクト・メモリ・アクセス(DMA)メカニズムを有するコンピュータ・システムにおいてプロセッサのローカル・ストアへデータをロードするために用いられるコンピュータ・プログラムを記録したコンピュータ読み取り可能な記録媒体であって、
    前記コンピュータ・プログラムが、
    前記コンピュータ・システムのシステム・メモリから前記ローカル・ストアへのデータの転送を行うためのコンピュータ・プログラム・コードと、
    前記システム・メモリから前記ローカル・ストアへ転送されるデータのサイズが、キャッシュのサイズより大きいか否かを判定するためのコンピュータ・プログラム・コードと、
    前記データのサイズが前記キャッシュのサイズ以下であると判定された場合に、前記システム・メモリから前記プロセッサのキャッシュへ前記データをフェッチするためのコンピュータ・プログラム・コードと、
    前記データのサイズが前記キャッシュのサイズより大きいと判定された場合に、前記システム・メモリから前記プロセッサのキャッシュへの前記データのフェッチを停止するためのコンピュータ・プログラム・コードと、
    データを要求するDMAロード要求を発行するためのコンピュータ・プログラム・コードと、
    前記要求されたデータが前記キャッシュ内に存在するか否かを判定するためのコンピュータ・プログラム・コードと、
    前記要求されたデータが前記キャッシュ内に存在すると判定された場合に、前記要求されたデータを直接前記キャッシュから前記ローカル・ストアへロードするためのコンピュータ・プログラム・コードと、
    前記要求されたデータが前記キャッシュ内に存在しないと判定された場合に、前記要求されたデータを前記システム・メモリから前記ローカル・ストアへロードするためのコンピュータ・プログラム・コードと、
    を含むコンピュータ読み取り可能な記録媒体。
  10. 前記コンピュータ・システムは、前記キャッシュを共有する複数のプロセッサを含み、さらに、前記コンピュータ・プログラムは、前記キャッシュからのデータを前記複数のプロセッサの1ないしは複数へロードするためのコンピュータ・プログラム・コードを含む請求項9に記載のコンピュータ読み取り可能な記録媒体。
JP2004207889A 2003-07-31 2004-07-14 キャッシュ可能なdma Expired - Fee Related JP4019073B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/631,590 US7200689B2 (en) 2003-07-31 2003-07-31 Cacheable DMA

Publications (2)

Publication Number Publication Date
JP2005056401A JP2005056401A (ja) 2005-03-03
JP4019073B2 true JP4019073B2 (ja) 2007-12-05

Family

ID=34104147

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004207889A Expired - Fee Related JP4019073B2 (ja) 2003-07-31 2004-07-14 キャッシュ可能なdma

Country Status (2)

Country Link
US (1) US7200689B2 (ja)
JP (1) JP4019073B2 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7233998B2 (en) * 2001-03-22 2007-06-19 Sony Computer Entertainment Inc. Computer architecture and software cells for broadband networks
US7200689B2 (en) 2003-07-31 2007-04-03 International Business Machines Corporation Cacheable DMA
US7549145B2 (en) * 2003-09-25 2009-06-16 International Business Machines Corporation Processor dedicated code handling in a multi-processor environment
US7478390B2 (en) * 2003-09-25 2009-01-13 International Business Machines Corporation Task queue management of virtual devices using a plurality of processors
US7496917B2 (en) * 2003-09-25 2009-02-24 International Business Machines Corporation Virtual devices using a pluarlity of processors
US7657667B2 (en) * 2004-03-25 2010-02-02 International Business Machines Corporation Method to provide cache management commands for a DMA controller
US7386636B2 (en) * 2005-08-19 2008-06-10 International Business Machines Corporation System and method for communicating command parameters between a processor and a memory flow controller
US7778271B2 (en) 2005-08-19 2010-08-17 International Business Machines Corporation Method for communicating instructions and data between a processor and external devices
US7500039B2 (en) 2005-08-19 2009-03-03 International Business Machines Corporation Method for communicating with a processor event facility
US8239587B2 (en) * 2006-01-18 2012-08-07 Freescale Semiconductor, Inc. Device having data sharing capabilities and a method for sharing data
US7814279B2 (en) * 2006-03-23 2010-10-12 International Business Machines Corporation Low-cost cache coherency for accelerators
CN101453416A (zh) 2007-11-30 2009-06-10 国际商业机器公司 用于远程程序安装的包预取的服务节点、网络及其方法
CN103713928B (zh) * 2013-12-31 2017-02-22 优视科技有限公司 增量文件生成方法、应用程序安装文件更新方法及装置
KR20180041037A (ko) * 2016-10-13 2018-04-23 삼성전자주식회사 멀티 코어 솔리드 스테이트 드라이브의 공유 분산 메모리 관리 방법
US11372645B2 (en) * 2020-06-12 2022-06-28 Qualcomm Incorporated Deferred command execution

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08263424A (ja) 1995-03-20 1996-10-11 Fujitsu Ltd コンピュータ装置
US5893165A (en) * 1996-07-01 1999-04-06 Sun Microsystems, Inc. System and method for parallel execution of memory transactions using multiple memory models, including SSO, TSO, PSO and RMO
US5953538A (en) 1996-11-12 1999-09-14 Digital Equipment Corporation Method and apparatus providing DMA transfers between devices coupled to different host bus bridges
US6381657B2 (en) * 1997-01-31 2002-04-30 Hewlett-Packard Company Sharing list for multi-node DMA write operations
JP4134357B2 (ja) 1997-05-15 2008-08-20 株式会社日立製作所 分散データ管理方法
US6658537B2 (en) 1997-06-09 2003-12-02 3Com Corporation DMA driven processor cache
US6178533B1 (en) * 1997-06-30 2001-01-23 Sun Microsystems, Inc. Method and system for design verification
US5890271A (en) * 1997-07-30 1999-04-06 Davco Packing And Seals, Inc. Insertion tool
JPH1165989A (ja) 1997-08-22 1999-03-09 Sony Computer Entertainment:Kk 情報処理装置
US6247094B1 (en) * 1997-12-22 2001-06-12 Intel Corporation Cache memory architecture with on-chip tag array and off-chip data array
US6205409B1 (en) 1998-06-26 2001-03-20 Advanced Micro Devices, Inc. Predictive failure monitoring system for a mass flow controller
US6401193B1 (en) 1998-10-26 2002-06-04 Infineon Technologies North America Corp. Dynamic data prefetching based on program counter and addressing mode
DE69924475T2 (de) 1999-06-09 2006-02-16 Texas Instruments Inc., Dallas Multikanal-DMA mit Datenverkehrplanung auf die Ausgänge
US6859862B1 (en) 2000-04-07 2005-02-22 Nintendo Co., Ltd. Method and apparatus for software management of on-chip cache
US6636906B1 (en) * 2000-04-28 2003-10-21 Hewlett-Packard Development Company, L.P. Apparatus and method for ensuring forward progress in coherent I/O systems
EP1182561B1 (en) 2000-08-21 2011-10-05 Texas Instruments France Cache with block prefetch and DMA
US6874039B2 (en) * 2000-09-08 2005-03-29 Intel Corporation Method and apparatus for distributed direct memory access for systems on chip
US20030154349A1 (en) 2002-01-24 2003-08-14 Berg Stefan G. Program-directed cache prefetching for media processors
US6842822B2 (en) 2002-04-05 2005-01-11 Freescale Semiconductor, Inc. System and method for cache external writing
DE10223178B4 (de) 2002-05-24 2004-11-04 Infineon Technologies Ag Schaltungsanordnung mit einer Ablaufsteuerung, integrierter Speicher sowie Testanordnung mit einer derartigen Schaltungsanordnung
US6711650B1 (en) 2002-11-07 2004-03-23 International Business Machines Corporation Method and apparatus for accelerating input/output processing using cache injections
US20050210204A1 (en) * 2003-01-27 2005-09-22 Fujitsu Limited Memory control device, data cache control device, central processing device, storage device control method, data cache control method, and cache control method
US20040193754A1 (en) 2003-03-27 2004-09-30 International Business Machines Corporation DMA prefetch
US7200689B2 (en) 2003-07-31 2007-04-03 International Business Machines Corporation Cacheable DMA
US7287101B2 (en) 2003-08-05 2007-10-23 Intel Corporation Direct memory access using memory descriptor list
US7657667B2 (en) 2004-03-25 2010-02-02 International Business Machines Corporation Method to provide cache management commands for a DMA controller

Also Published As

Publication number Publication date
US20050027899A1 (en) 2005-02-03
JP2005056401A (ja) 2005-03-03
US7200689B2 (en) 2007-04-03

Similar Documents

Publication Publication Date Title
US7010626B2 (en) DMA prefetch
US11334494B2 (en) Write merging on stores with different tags
JP4019073B2 (ja) キャッシュ可能なdma
US7890708B2 (en) Prioritization of out-of-order data transfers on shared data bus
US9286223B2 (en) Merging demand load requests with prefetch load requests
US20080034146A1 (en) Systems and Methods for Transactions Between Processor and Memory
US11500797B2 (en) Computer memory expansion device and method of operation
US7536514B2 (en) Early return indication for read exclusive requests in shared memory architecture
US20070083715A1 (en) Early return indication for return data prior to receiving all responses in shared memory architecture
JPH1031625A (ja) マルチ・プロセッサ・システムにおける改良されたコピーバック性能のためのライトバック・バッファ
US6321307B1 (en) Computer system and method employing speculative snooping for optimizing performance
US20060212652A1 (en) Information processing device and data control method in information processing device
US8856478B2 (en) Arithmetic processing unit, information processing device, and cache memory control method
US9342472B2 (en) PRD (physical region descriptor) pre-fetch methods for DMA (direct memory access) units
EP1622029A2 (en) Memory control device, move-in buffer control method
JP2001249846A (ja) キャッシュメモリ装置及びデータ処理システム
US10963409B2 (en) Interconnect circuitry and a method of operating such interconnect circuitry
US7502892B2 (en) Decoupling request for ownership tag reads from data read operations
JPH07121443A (ja) 情報処理システム及びその動作方法
US7159077B2 (en) Direct processor cache access within a system having a coherent multi-processor protocol
JPH06282528A (ja) データ転送方法及びそのシステム
US11216379B2 (en) Fast cache loading with zero fill
JPH10320278A (ja) メモリコントローラ及びコンピュータシステム
RU2475822C1 (ru) Подсистема памяти ядра микропроцессора
JP2006331252A (ja) バスブリッジ装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070306

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070313

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070531

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20070531

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20070531

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070717

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070831

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070904

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: 20070918

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20070918

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070921

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100928

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100928

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110928

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120928

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130928

Year of fee payment: 6

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

LAPS Cancellation because of no payment of annual fees