JP2005526335A - 複数のコヒーレンシー・グラニュールをサポートするデータ転送ユニット - Google Patents

複数のコヒーレンシー・グラニュールをサポートするデータ転送ユニット Download PDF

Info

Publication number
JP2005526335A
JP2005526335A JP2004508011A JP2004508011A JP2005526335A JP 2005526335 A JP2005526335 A JP 2005526335A JP 2004508011 A JP2004508011 A JP 2004508011A JP 2004508011 A JP2004508011 A JP 2004508011A JP 2005526335 A JP2005526335 A JP 2005526335A
Authority
JP
Japan
Prior art keywords
block
sub
coherency granule
source
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.)
Granted
Application number
JP2004508011A
Other languages
English (en)
Other versions
JP2005526335A5 (ja
JP4431492B2 (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.)
NXP USA Inc
Original Assignee
NXP USA Inc
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 NXP USA Inc filed Critical NXP USA Inc
Publication of JP2005526335A publication Critical patent/JP2005526335A/ja
Publication of JP2005526335A5 publication Critical patent/JP2005526335A5/ja
Application granted granted Critical
Publication of JP4431492B2 publication Critical patent/JP4431492B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4208Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus
    • 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/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • G06F12/0835Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means for main memory peripheral accesses (e.g. I/O or DMA)
    • 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

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)

Abstract

データ転送ユニット(38)は、2つのグラニュール・サイズが異なる場合であっても、ソース(26)のコヒーレンシー・グラニュール・サイズにてデータを読み取り、ディスティネーション(24)のコヒーレンシー・グラニュール・サイズにてデータを書き込むことが可能である。データ転送ユニット(38)は、ソース(26)とディスティネーション(24)との間のデータブロック転送に備えて、グラニュール・サイズの情報を格納するレジスタ(52,56)を備える。データブロックは、サブブロックにて転送される。第一サブブロックおよび最終サブブロックを除いて、読み取られるサブブロックは、ソース(26)のコヒーレンシー・グラニュール・サイズを有し、同コヒーレンシー・グラニュール・サイズは、ソース(26)のために最適化された転送サイズである。書き込みにおいては、書き込まれるサブブロックはディスティネーション(24)のコヒーレンシー・グラニュール・サイズを有し、同コヒーレンシー・グラニュール・サイズは、ディスティネーション(24)のために最適化された転送サイズである。従って、転送自体は異なるコヒーレンシー・グラニュールを有するデバイス(24,26)間で行われても、読み取りと書き込みとの双方が最適化される。

Description

本発明はデータ転送ユニットに関し、特に直接メモリアクセス(DMA)ユニット、より詳細にはシステム要求に従いデータを転送するデータ転送ユニットに関する。
データ処理システムにおいては、データ転送に関連する規則を定義して、システム全体を最適化することが一般的である。その一つとして、メモリ内に格納されているデータユニットに関連するコヒーレンシー・グラニュールを定義する。データユニットは、一般に、システム内で使用され得るキャッシュと密接な関係を有している。キャッシュは、システム・パフォーマンスを向上させる目的で利用される。その一つの側面として、キャッシュ・アクセスが実行されると、要求されたデータのみでなく追加データも取り出される。これは、キャッシュのハードウエアに関連する、次なるアクセスを予想する機能により実行される。要求に応答して収集されるデータの総量は、一般にキャッシュ・ラインと称されている。上記の場合、典型的な例として、キャッシュ・ラインとコヒーレンシー・グラニュールとは同一である。
ハードウエアは、一般に、コヒーレント・データにアクセスすると、コヒーレンシー・グラニュールが、コヒーレント方式で転送されるデータパケットに変換されるとの仮定の下に設計されている。コヒーレント・グラニュールのサイズは、一般に、バスのサイズと比較して相当大きい。例えば、現在の処理システムにおいて、コヒーレンシー・グラニュールは通常32バイトで、バスサイズは8バイト幅である。この場合、1個のコヒーレンシー・グラニュールのデータ転送には、バス上で4サイクルが要求される。ハードウエアは、例えばバースト技術を使用して、この転送パフォーマンスを最適化するように設計されている。従って、コヒーレンシー・グラニュールのバースト転送は、コヒーレンシー・グラニュールの各半分を2回未満で転送する。
システムがより複雑になるにつれて、コヒーレンシー・グラニュールのサイズは増大する傾向にある。コヒーレンシー・グラニュール・サイズが増大すると、各コヒーレンシー・グラニュールが有するデータが増加する。このことは、データに関連したコヒーレンシーに対する要求を保持する必要性のある各操作において、より多くのデータを処理しなければならないため、データ転送をより複雑にする可能性がある。
従って、良好なパフォーマンスと、コヒーレンシー・グラニュールのコンテキスト内のコヒーレンシー要求とを保持しながら、データ転送を行う技術が必要とされている。
当業者は、図面中の要素が簡略化および明瞭化を目的として、必ずしも当尺に描かれていないことを理解するであろう。例えば、図面中のいくつかの要素の大きさは、本発明の実施形態の理解を深めるために他の要素に比較して誇張されている。
データ転送ユニット、一般に直接メモリアクセス(DMA)コントローラは、コヒーレンシー・グラニュール・サイズが異なるデバイス間でデータブロックを転送することが可能である。ここで、コヒーレンシー・グラニュールはデータユニットであり、同データユニットのためにコヒーレンシー状態がキャッシュ内に維持されている。このことは、転送のソースデバイスと目標デバイスとを識別するマスターとして作動する、DMAコントローラにより実行される。例えば、ソースは、ソースのコヒーレンシー・グラニュール・サイズではなく、目標のコヒーレンシー・グラニュール・サイズを有するサブ−ブロックにて、データを目標に転送する。本発明は、図面と、図面の説明とを参照してより深く理解されよう。
図1に、関連した第一コヒーレンシー・グラニュール・サイズを有するデバイス12と、関連した第二コヒーレンシー・グラニュール・サイズを有し、かつシステム・バス・インターコネクトを介してデバイス12に連結されたデバイス14と、デバイス12に連結されたPCIスレーブ16と、デバイス12に連結されたPCIマスター18と、デバイス12に連結されたメモリ20と、デバイス14に連結されたメモリ22と、デバイス14に連結された外部キャッシュ24と、デバイス12に連結された外部キャッシュ26と、デバイス12に連結された他の周辺機器28と、デバイス14に連結された外部キャッシュ26と、デバイス14に連結された他の周辺機器30とを有するシステム10を示す。デバイス12は、ローカルプロセッサ36とDMAコントローラ38とを含む。デバイス14は、ローカルプロセッサ34とDMAコントローラ32とを含む。デバイス12,14は、各々、マルチプロセッシングのためのサポートを有している。図1に示すこれらの要素は、デバイス12とデバイス14のコヒーレンシー・グラニュールのサイズが異なり、DMAコントローラ38、および/またはDMAコントローラ32が、いくつかの固有の特徴を有する以外は、先行技術として考慮し得る。
作動中、デバイス12,14は、プログラミングされた所望のパフォーマンスを実行するために協働して機能する。この工程において、様々な操作が実行される。操作の一タイプとしては、DMAコントローラ32,38のうちの片方により制御されたデータブロッ
クのデータ転送である。データブロックは、任意のメモリ・リソースから他の任意のメモリ・リソースへ移動することが可能であり、このようなリソースには、周辺機器が含まれる。これらの周辺機器およびメモリ・リソースの各々は、システムプログラマが認識可能である所定のメモリ空間を備えている。データ転送の一例として、システム・バス・インターコネクトを介した外部キャッシュ26、即ちソースと、外部キャッシュ24、即ちディスティネーションとの間のデータ転送がある。DMAコントローラ32,38の各々は、それが一部を構成するシステムのリソースのコヒーレンシー・サイズに従って、リソースを読み取り、かつリソースに書き込むように設計されている。目下のケースでは、まず、第一コヒーレンシー・グラニュール・サイズ、即ちデバイス12のコヒーレンシー・グラニュール・サイズが32バイトであると仮定し、第二コヒーレンシー・グラニュール・サイズ、即ちデバイス14のコヒーレンシー・グラニュール・サイズが64バイトであると仮定する。DMAコントローラ38がマスターとして作動している場合、DMAコントローラ38は、可能な限りの範囲において、デバイス12の制御の下でデータブロックが外部キャッスから32バイトのサブブロックにて読み取られ、システム・バス・インターコネクトを介して、デバイス14の制御の下で64バイトのブロックにて外部キャッシュ24へ書き込まれることを確実にする。
図2に、チャネル40、チャネル42およびチャネル44を備えたDMAコントローラ38の図表を示す。コントローラ32も同様の形態にて図表化することが可能である。チャネル40〜44の各々は、データ転送エンジンとして考慮し得る。例えばDMAコントローラ38等のDMAコントローラは、より多数のチャネルを備えてもよい。チャネル数は、一般に4〜16の範囲内にあるが、これより少数か、または多数であってもよい。チャネル40は、制御レジスタ46と、状態レジスタ48と、ソース・アドレス・レジスタ50と、ソース属性レジスタ52と、ディスティネーション・アドレス・レジスタ54と、ディスティネーション属性レジスタ56と、バイト数レジスタ58と、データバッファおよびコントロール60と、アドレス・コントロール62とを含む。これら全レジスタは、ソース属性レジスタ52と、ディスティネーション属性レジスタ56とが特定の特徴を有する以外は、従来と同様である。DMAコントローラの典型的なチャネルはデータバッファおよびコントロールを有するが、バッファはデバイスのコヒーレンシー・グラニュールと同一のサイズを有している。その一方で、図2のデータバッファおよびコントロール
60のバッファは、デバイス12のコヒーレンシー・グラニュール・サイズの少なくとも2倍、好ましくは8倍のサイズを有する。従って、データバッファおよびコントロール60は十分に大きく、それ故デバイス12のコヒーレンシー・グラニュール・サイズの8倍迄のコヒーレンシー・グラニュール・サイズを有するサブブロックにてデータを書き込むことが可能である。
図3に、ユーザによりプログラミング可能な3ビットがソースまたはディスティネーションのコヒーレンシー・グラニュール・サイズを識別する、32ビットのソース属性レジスタ52またはディスティネーション属性レジスタ56を示す。DMAコントローラ38がデータ転送ユニットとして作動している場合、ソースのコヒーレンシー・グラニュール・サイズはソース属性レジスタ52内に収容され、ディスティネーションのコヒーレンシー・グラニュール・サイズはディスティネーション属性レジスタ56内に収容されると想定される。従って、DMAコントローラ38は、ソース内のデータを、ディスティネーションのコヒーレンシー・グラニュール・サイズに一致するサブブロックにて、ディスティネーションへ転送し得る。データバッファおよびコントロール60のバッファ・サイズは、ソースのコヒーレンシー・グラニュール・サイズがディスティネーションのコヒーレンシー・グラニュール・サイズよりも小さい場合、データ量がディスティネーションのコヒーレンシー・グラニュール・サイズに一致するまで、データを蓄積することを可能にする。同様に、データバッファおよびコントロール60は、ソースのコヒーレンシー・グラニュール・サイズが、ディスティネーションのコヒーレンシー・グラニュール・サイズよりも大きい場合、ディスティネーションのコヒーレンシー・グラニュール・サイズに一致するブロックを伝送し、残留するブロックをバッファ内に保持し、その後、バッファからのサブブロックの伝送を継続する。このように、データバッファおよびコントロール60は、ソースから到着するデータをサブブロックとして蓄積して、ディスティネーションのコヒーレンシー・グラニュール・サイズと一致するより小さいサブブロックを書き込むことを可能にする。
データ転送においては、ソースであるリソースの読み取りを行った後、ディスティネーションへの書き込みが行われる。読み取り命令は、コヒーレンシー・グラニュール・サイズに一致する量であるデータのサブブロックにて実行され、コヒーレンシー・グラニュール境界で開始されることが好ましい。読み取りは、コヒーレンシー・グラニュール境界を越えることが不可能である。ビートと称される、バーストを構成する個別の転送は、データがバスサイズの量に達すると発生し、従ってコヒーレンシー・グラニュール・サイズよりも小さい。一般的なビートは、コヒーレンシー・グラニュール・サイズの1/4のサイズを有する。従って、この例では、コヒーレンシー・グラニュール・サイズは32バイトで、各ビートは8バイトである。従って、ビートサイズに加えて、各フル8バイトアクセスについてビート境界も存在する。しかしながら、開始アドレスはビート境界ではない位置にて開始され得る。第一ビートは、開始アドレスからビート境界へ至るデータである。従って、開始アドレスがビート境界に対して整合されていない場合、第一ビートは完全なビートサイズよりも小さいが、その後のアクセスは、おそらく最後のビートを除いて、完全なビートサイズを有する。
図4は、ソースが32バイトのコヒーレンシー・グラニュール・サイズを有し、ディスティネーションが64バイトのコヒーレンシー・グラニュール・サイズを有する場合の読み取り、および書き込み方法を示すフローチャートである。読み取りにおいては、ステップ104に示すように、読み取られるべき残留バイト数が0より大きいか否かを測定するステップが存在する。残留バイト数が0より大きい場合、次のステップ106において、読み取り開始位置がコヒーレンシー・グラニュール境界、この場合は32バイト境界に対して整合されているか、かつ残留バイト数がコヒーレンシー・グラニュール・サイズ以上、この場合は32バイト以上であるかを決定する。アドレスが32バイト境界に存在しな
い場合、ステップ112に示すように、サブ32バイト読み取りが実行される。この読み取りは、コヒーレンシー・グラニュール境界に対して整合されていない開始アドレスからのデータを、次のコヒーレンシー・グラニュール境界へ返送する。ステップ112は、複数のステップを有し得る。複数のステップの第一ステップでは、ビート境界に対して整合されているか、されていない第一ビートを検索する。第一ビートがビート境界に整合されていない場合、開始アドレスからビート境界へ至るデータが最初にアクセスされるビート部分である。その後、残りのビートのサブブロックへのバーストにより、残留するサブブロックが獲得され得る。従って、第一サブブロックのアクセス後、サブブロックはデータバッファおよびコントロール60のバッファ内に蓄積され、ステップ110に示すように、バイト数が減少される。このステップは、ステップ104にて残留バイト数が0より大きいことを確実にした後、第一の転送がコヒーレンシー・グラニュール境界まで転送された後は必ずそうであるが、次のアドレスがコヒーレンシー・グラニュールに対して整合されているか否か、かつ残留バイト数がグラニュール・サイズ以上であるか否かを決定することにより継続する。バイト数が転送の完了を示すか、または残留バイト数がコヒーレンシー・グラニュール・サイズより小さくなるかのいずれかまで、コヒーレンシー・グラニュール・サイズのデータは継続して転送される。最終転送はフル32バイトよりも小さいものと想定されるため、ステップ106において次の転送が32バイトに整合されていることが決定され、32バイトよりも大きいか否かの比較の結果は「否」であろう。従って、最終転送は、読み取りがコヒーレンシー・グラニュールのバーストの一部として実行されない点において、第一転送と同様の方法で処理されるであろう。この種の特別な転送は、当業者の技術の範囲内に含まれる。しかしながら、この転送は、コヒーレンシー・グラニュール転送と比較すると効率が良くない。
書き込み方法においては、第一ステップであるステップ114にて、書き込むべきバイトが残留しているか否かを決定する。最初は確実にそうであるが、残留バイト数が0より大きい場合、この場合64バイトであるディスティネーションのコヒーレンシー境界に対する整合と、残留バイト数がコヒーレンシー・グラニュール・サイズ以上、この場合64バイト以上であるか否かとが決定される。開始アドレスが整合されていない場合、ステップ122に示す特別な処理によりサブ64バイト書き込みが行われる。第一書き込みは、ディスティネーションの開始アドレスのデータから開始されて、次のディスティネーションのコヒーレンシー・グラニュールへ継続する。この例では、書き込みは、データバッファおよびコントロール60内に、開始アドレスから64バイト境界へ至る量のデータが蓄積される迄実行されない。第一データがディスティネーションへ転送された後、おそらく最後の転送を除いた続く転送はコヒーレンシー・グラニュール境界にあり、データは、ディスティネーションのコヒーレンシー・グラニュール・サイズにて転送されるため、効率よく転送されるものと想定される。最終転送は、その転送がコヒーレンシー・グラニュール境界上で終了しない限り、異なる処理を要求するため、ステップ122により処理されるであろう。
データブロック転送においては、読み取りが行われ、ここでデータブロックを構成する第一サブブロックおよび最終サブブロックを除く全サブブロックが、ソースが存在するか、またはソースが連結されたシステムのコヒーレンシー・グラニュール・サイズ(ソース・コヒーレンシー・グラニュール・サイズ)にて確実に転送される。このことは、ソースのシステムに最適化された速度にて読み取りが行われる利点を有する。同様のことが、その後のディスティネーションへの転送にも当てはまる。ディスティネーションへ転送される第一サブブロックおよび最終サブブロックを除くサブブロックは、ソースが存在するか、またはソースと関連するシステムのコヒーレンシー・グラニュール・サイズ(ディスティネーション・コヒーレンシー・グラニュール・サイズ)にて転送される。このことは、ディスティネーションのシステムに最適化された速度にて書き込みが行われる利点を有する。従って、ディスティネーションのコヒーレンシー・グラニュール・サイズがソースの
コヒーレンシー・グラニュール・サイズと異なる場合でも、書き込みおよび読み取りにとって最適なデータ転送が行われ、ソースおよびディスティネーションのためのデータのコヒーレンシー要求が維持される。
図5に、読み取り、または書き込みの主要なステップを示す、より一般化されたフローチャートを示す。第一ステップでは、ステップ204に示すようにバイト数を決定して、転送されるべきデータが存在するか否かを決定する。転送されるべきデータがコヒーレンシー・グラニュール境界に存在し、かつ残留バイト数がコヒーレンシー・グラニュール・サイズ以上である場合(ステップ210)、次のステップでコヒーレンシー・グラニュールが転送されて(ステップ212)、バイト数が減少される。ステップ210にて、第一転送でのみ生じ得る、データがコヒーレンシー・グラニュール境界に存在しないと決定された場合、または、最終転送でのみ生じ得る、残留バイト数がコヒーレンシー・グラニュール・サイズよりも小さいと決定された場合、サブ・コヒーレンシー・グラニュール転送のステップ208により、特別な転送処理が行われる。この特別な処理は困難なタスクではないが、時間を要し、最適化されたコヒーレンシー・グラニュール転送とは区別される。従って、第一転送と最終転送とは特別であり、他の転送を最適化されたコヒーレンシー・グラニュール・サイズにする利点を提供する。
前述した明細書中で、本発明をその特定の実施形態の参照について説明した。しかしながら、当業者は、請求項に開示した本発明の範囲を逸脱せずに、様々な改良および変更をなし得ることを理解するであろう。従って、明細書および図面は、本発明を制限する意図ではなく説明することを意図すると考慮するべきであり、そのような改良の全ては、本発明の範囲内に含まれるものとする。
特定の実施形態に関して、利益、他の利点、および問題の解決法を開示してきた。しかしながら、利益、利点、問題の解決法、および利益、利点、または解決法を生じさせるか、または利益、利点、または解決法をより明白にする任意の要素は、任意または全ての請求項の、重大な、必要な、または必須の特徴、もしくは要素として解釈されるべきではない。
本発明の好ましい実施形態による、異なるコヒーレンシー要求を有する複数のデバイスを備えたシステムのブロック図。 本発明の好ましい実施形態による、図1に示したシステムのデータ転送デバイスのより詳細な図表。 図2のデータ転送デバイスの一部分を示す、より詳細な図表。 好ましい実施形態による図2のデータ転送デバイスの操作方法を示すフローチャート。 本発明の好ましい実施形態による図2のデータ転送ユニットの作動を示す、より一般化されたフローチャート。

Claims (26)

  1. 第一ソースと、第一ディスティネーションとの間のコミュニケーション経路に対応する第一データ転送エンジンを備え、同第一データ転送エンジンは、
    ソース・アドレスを格納するソース・アドレス格納回路と、
    ディスティネーション・アドレスを格納するディスティネーション・アドレス格納回路と、
    前記ソースに対応する第一コヒーレンシー・グラニュールを格納するコヒーレンシー・グラニュール・フィールドを有するソース属性格納回路と、
    前記ディスティネーションに対応する第ニコヒーレンシー・グラニュールを格納するコヒーレンシー・グラニュール・フィールドを有するディスティネーション属性格納回路とを備えるデータ転送ユニット(DTU)。
  2. 前記第一コヒーレンシー・グラニュールは、第二コヒーレンシー・グラニュールと異なる請求項1に記載のDTU。
  3. 前記DTUは、前記ソースからディスティネーションへデータブロックを転送する請求項1に記載のDTU。
  4. 前記DTUは、前記ソースからデータブロックのサブブロックを転送し、前記サブブロックは、最大で第一コヒーレンシー・グラニュールのサイズを有する請求項3に記載のDTU。
  5. 前記サブブロックは、前記ソースのコヒーレンシー・グラニュールの境界を越えない請求項4に記載のDTU。
  6. 前記DTUは、サブブロックに対応する第一ビートを前記ソースから受信し、該第一ビートは、データブロックの開始アドレスに対応するソース・アドレスに格納されたデータを備える請求項4に記載のDTU。
  7. 前記第一ビートは、最大で、コミュニケーション経路のデータ転送サイズに対応するビートサイズを有する請求項6に記載のDTU。
  8. 前記第一ビートは前記ソースのコヒーレンシー・グラニュール境界と整合されていず、かつ第一サブブロックは第一コヒーレンシー・グラニュールよりも小さい請求項7に記載のDTU。
  9. 前記DTUは、データブロックの第二サブブロックをディスティネーションへ転送し、前記データの第二サブブロックは、最大で第二コヒーレンシー・グラニュールのサイズを有する請求項4に記載のDTU。
  10. 前記第一サブブロックの一部分と第二サブブロックの一部分とが同一の部分である、請求項9に記載のDTU。
  11. 第ニソースと、第ニディスティネーションとの間のコミュニケーション経路に対応する第ニデータ転送エンジンをさらに備え、同第ニデータ転送エンジンは、
    ソース・アドレスを格納するソース・アドレス格納回路と、
    ディスティネーション・アドレスを格納するディスティネーション・アドレス格納回路と、
    前記ソースに対応する第一コヒーレンシー・グラニュールを格納するコヒーレンシー
    ・グラニュール・フィールドを有するソース属性格納回路と、
    前記ディスティネーションに対応する第ニコヒーレンシー・グラニュールを格納するコヒーレンシー・グラニュール・フィールドを有するディスティネーション属性格納回路とを備える請求項1に記載のDTU。
  12. 前記ソース属性格納回路内のコヒーレンシー・グラニュール・フィールドと、ディスティネーション属性格納回路内のコヒーレンシー・グラニュール・フィールドとは、ユーザによりプログラミング可能である請求項1に記載のDTU。
  13. 請求項1に記載のDTUを備えるデータ処理装置。
  14. ユーザによりプログラミング可能なコヒーレンシー・グラニュール・フィールドから、第一および第二のコヒーレンシー・グラニュールを決定する工程と、
    データブロックに対応するデータブロック・サイズを決定する工程と、
    前記第一コヒーレンシー・グラニュールに対応するデータブロックの第一受信サブブロックをソースから要求する工程と、前記第一受信サブブロックは、最大で第一コヒーレンシー・グラニュールのサイズを有することと、
    前記第一受信サブブロックをソースから受信する工程と、
    第二コヒーレンシー・グラニュールに対応するデータブロックの第一転送サブブロックをディスティネーションへ提供する工程と、前記第一転送サブブロックは、最大で第二コヒーレンシー・グラニュールのサイズを有し、前記第一受信サブブロックの一部分と、第一転送サブブロックの一部分とは、データブロックの同一部分であることとを含むデータブロックの転送方法。
  15. ソースから第一受信サブブロックを受信した後、データブロックの第二受信サブブロックを前記ソースから要求する工程と、前記第二受信サブブロックは、最大で第一コヒーレンシー・グラニュールのサイズを有することと、
    前記第二受信サブブロックを受信する工程とを含む、請求項14に記載の方法。
  16. 前記第二受信サブブロックのサイズは、第一コヒーレンシー・グラニュールのサイズに等しい請求項15に記載の方法。
  17. 第一転送サブブロックを提供した後、データブロックの第二受信転送サブブロックをディスティネーションへ提供する工程と、前記第二転送サブブロックは、最大で第二コヒーレンシー・グラニュールのサイズを有する請求項14に記載の方法。
  18. 前記第二転送サブブロックのサイズは、第二コヒーレンシー・グラニュールのサイズに等しい請求項17に記載の方法。
  19. 前記第一受信サブブロックは、第一転送サブブロックと第二転送サブブロックとを含む請求項17に記載の方法。
  20. 前記第一受信サブブロックは、前記ソース内の開始アドレスを有することに特徴付けられる、請求項14に記載の方法。
  21. 前記開始アドレスが、前記ソースの第一コヒーレンシー・グラニュール境界に対して整合されていない場合、第一受信サブブロックは第一コヒーレンシー・グラニュールよりも小さい、請求項20に記載の方法。
  22. 前記開始アドレスが、前記ソースの第一コヒーレンシー・グラニュール境界に対して整
    合されていない場合、前記第一受信サブブロックを受信する工程は、
    前記第一受信サブブロックに対応する第一ビートを受信する工程と、前記第一ビートは、開始アドレスに格納されたデータを有することと、
    前記第一受信サブブロックに対応する、続く残りのビートを受信する工程と、前記残りのビートは、前記ソースの第二コヒーレンシー・グラニュール境界を越えないこととを含む方法。
  23. 前記開始アドレスが、前記ソースのビート境界に対して整合されていない場合、前記第一転送サブブロックは、第一ビートの一部分を含む請求項22に記載の方法。
  24. 前記第一転送サブブロックは、ディスティネーション内の開始アドレスを有することに特徴付けられ、開始アドレスがディスティネーションの第一コヒーレンシー・グラニュール境界に対して整合されていない場合、第一転送サブブロックは第二コヒーレンシー・グラニュールよりも小さい、請求項14に記載の方法。
  25. 前記開始アドレスが、ディスティネーションのビート境界に対して整合されていない場合、前記第一転送サブブロックを提供する工程は、
    第一転送サブブロックに対応するサブビートを、ディスティネーションの開始アドレスへ提供する工程と、
    第一転送サブブロックに対応する、続く残りのビートを提供する工程と、前記残りのビートはディスティネーションの第二コヒーレンシー・グラニュール境界を越えないこととを含む、請求項24に記載の方法。
  26. 第一キャッシュメモリと、同第一キャッシュメモリに対応する第一コヒーレンシー・グラニュールとを有する第一処理装置と、
    第二キャッシュメモリと、同第二キャッシュメモリに対応し、かつ第一コヒーレンシー・グラニュールとは異なる第二コヒーレンシー・グラニュールとを有する第二処理装置と、
    前記第一処理装置と第二処理装置とに連結されて、第一処理装置と第二処理装置との間でデータを転送するデータ転送ユニットとを備えるシステムであって、前記データ転送ユニットは、
    第一コヒーレンシー・グラニュールを格納する第一コヒーレンシー・グラニュール・フィールドと、第二コヒーレンシー・グラニュールを格納する第二コヒーレンシー・グラニュール・フィールドとを有する属性格納回路を備えるシステム。
JP2004508011A 2002-05-17 2003-04-30 複数のコヒーレンシー・グラニュールをサポートするデータ転送ユニット Expired - Lifetime JP4431492B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/150,671 US6847990B2 (en) 2002-05-17 2002-05-17 Data transfer unit with support for multiple coherency granules
PCT/US2003/013711 WO2003100626A1 (en) 2002-05-17 2003-04-30 Data transfer unit with support for multiple coherency granules

Publications (3)

Publication Number Publication Date
JP2005526335A true JP2005526335A (ja) 2005-09-02
JP2005526335A5 JP2005526335A5 (ja) 2006-06-22
JP4431492B2 JP4431492B2 (ja) 2010-03-17

Family

ID=29419304

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004508011A Expired - Lifetime JP4431492B2 (ja) 2002-05-17 2003-04-30 複数のコヒーレンシー・グラニュールをサポートするデータ転送ユニット

Country Status (8)

Country Link
US (1) US6847990B2 (ja)
EP (1) EP1506488B1 (ja)
JP (1) JP4431492B2 (ja)
KR (1) KR100950356B1 (ja)
CN (1) CN1318991C (ja)
AU (1) AU2003225272A1 (ja)
DE (1) DE60301670T2 (ja)
WO (1) WO2003100626A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7631313B2 (en) * 2002-06-17 2009-12-08 David Mayhew System and method for transferring data
KR100772379B1 (ko) * 2005-09-23 2007-11-01 삼성전자주식회사 외부 메모리 장치, 그 영상 데이터 저장 방법, 이를 이용한영상 처리 장치
JP2011150684A (ja) 2009-12-21 2011-08-04 Sony Corp キャッシュメモリおよびキャッシュメモリ制御装置
WO2019022631A1 (en) * 2017-07-27 2019-01-31 EMC IP Holding Company LLC STORING DATA IN DIFFERENTLY SIZED WAFERS WITHIN DIFFERENT STORAGE LEVELS

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5072369A (en) 1989-04-07 1991-12-10 Tektronix, Inc. Interface between buses attached with cached modules providing address space mapped cache coherent memory access with SNOOP hit memory updates
US5590378A (en) 1994-04-25 1996-12-31 Compaq Computer Corporation Apparatus for aligning and padding data on transfers between devices of different data widths and organizations
US5598579A (en) 1994-04-25 1997-01-28 Compaq Computer Corporation System fpr transferring data between two buses using control registers writable by host processor connected to system bus and local processor coupled to local bus
JPH1040211A (ja) * 1996-04-30 1998-02-13 Texas Instr Inc <Ti> パケット化されたデータ通信インタフェース機器内での直接メモリアクセス優先順位を割り当てるための方法ならびにdmaチャンネル回路
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
CN100399763C (zh) * 1999-02-23 2008-07-02 阿尔卡塔尔互联网运行公司 具有自动保护交换的多业务网络交换机及其保护交换方法
US6807608B2 (en) * 2002-02-15 2004-10-19 International Business Machines Corporation Multiprocessor environment supporting variable-sized coherency transactions

Also Published As

Publication number Publication date
CN1656462A (zh) 2005-08-17
KR20050004157A (ko) 2005-01-12
AU2003225272A1 (en) 2003-12-12
EP1506488A1 (en) 2005-02-16
WO2003100626A1 (en) 2003-12-04
EP1506488B1 (en) 2005-09-21
DE60301670D1 (de) 2005-10-27
US20030217232A1 (en) 2003-11-20
JP4431492B2 (ja) 2010-03-17
DE60301670T2 (de) 2006-04-27
KR100950356B1 (ko) 2010-03-29
CN1318991C (zh) 2007-05-30
US6847990B2 (en) 2005-01-25

Similar Documents

Publication Publication Date Title
US6954806B2 (en) Data transfer apparatus and method
US6839777B1 (en) System and method for transferring data over a communication medium using data transfer links
US6487628B1 (en) Peripheral component interface with multiple data channels and reduced latency over a system area network
JP2007233522A (ja) Dmaデータ転送装置及びdmaデータ転送方法
US8001296B2 (en) USB controller and buffer memory control method
JP4875981B2 (ja) データ処理システムにおけるプリフェッチ制御
CN113900974B (zh) 一种存储装置、数据存储方法及相关设备
US6687763B2 (en) ATAPI command receiving method
JP2008234059A (ja) データ転送装置および情報処理システム
US7409486B2 (en) Storage system, and storage control method
US8688944B2 (en) Memory sharing between embedded controller and central processing unit chipset
US6754780B1 (en) Providing data in response to a read command that maintains cache line alignment
TWI324755B (en) Processing modules with multilevel cache architecture
JP4431492B2 (ja) 複数のコヒーレンシー・グラニュールをサポートするデータ転送ユニット
CN116107923B (zh) 一种基于bram的多对多高速访存架构和访存系统
KR100532417B1 (ko) 디지털 신호 처리장치의 저전력 소비형 캐시 메모리 장치및 이에 대한 제어방법
WO2020034080A1 (zh) 一种基于dma的数据处理方法及相关产品
US20060277326A1 (en) Data transfer system and method
JP3599692B2 (ja) データ伝送装置
US8443145B2 (en) Distributed memory usage for a system having multiple integrated circuits each including processors
JP4774099B2 (ja) 演算処理装置、情報処理装置及び演算処理装置の制御方法
JP6665429B2 (ja) 演算処理装置、情報処理装置、および情報処理装置の制御方法
JP2008299747A (ja) Usbホストシステム及び転送データの転送方法
JP5211537B2 (ja) インターフェース回路
KR20230145907A (ko) 주소 변환 캐시를 미리 채우기 위한 시스템 및 방법

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060428

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060428

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090915

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091125

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20091221

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

Free format text: PAYMENT UNTIL: 20121225

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4431492

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20121225

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20131225

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term