(57)【要約】データ転送ユニット（３８）は、２つのグラニュール・サイズが異なる場合であっても、ソース（２６）のコヒーレンシー・グラニュール・サイズにてデータを読み取り、ディスティネーション（２４）のコヒーレンシー・グラニュール・サイズにてデータを書き込むことが可能である。データ転送ユニット（３８）は、ソース（２６）とディスティネーション（２４）との間のデータブロック転送に備えて、グラニュール・サイズの情報を格納するレジスタ（５２，５６）を備える。データブロックは、サブブロックにて転送される。第一サブブロックおよび最終サブブロックを除いて、読み取られるサブブロックは、ソース（２６）のコヒーレンシー・グラニュール・サイズを有し、同コヒーレンシー・グラニュール・サイズは、ソース（２６）のために最適化された転送サイズである。書き込みにおいては、書き込まれるサブブロックはディスティネーション（２４）のコヒーレンシー・グラニュール・サイズを有し、同コヒーレンシー・グラニュール・サイズは、ディスティネーション（２４）のために最適化された転送サイズである。従って、転送自体は異なるコヒーレンシー・グラニュールを有するデバイス（２４，２６）間で行われても、読み取りと書き込みとの双方が最適化される。
2005526335.tif 000002
【特許請求の範囲】
【請求項１】
第一ソースと、第一ディスティネーションとの間のコミュニケーション経路に対応する第一データ転送エンジンを備え、同第一データ転送エンジンは、
ソース・アドレスを格納するソース・アドレス格納回路と、
ディスティネーション・アドレスを格納するディスティネーション・アドレス格納回路と、
前記ソースに対応する第一コヒーレンシー・グラニュールを格納するコヒーレンシー・グラニュール・フィールドを有するソース属性格納回路と、
前記ディスティネーションに対応する第ニコヒーレンシー・グラニュールを格納するコヒーレンシー・グラニュール・フィールドを有するディスティネーション属性格納回路とを備えるデータ転送ユニット（ＤＴＵ）。
【請求項２】
前記第一コヒーレンシー・グラニュールは、第二コヒーレンシー・グラニュールと異なる請求項１に記載のＤＴＵ。
【請求項３】
前記ＤＴＵは、前記ソースからディスティネーションへデータブロックを転送する請求項１に記載のＤＴＵ。
【請求項４】
前記ＤＴＵは、前記ソースからデータブロックのサブブロックを転送し、前記サブブロックは、最大で第一コヒーレンシー・グラニュールのサイズを有する請求項３に記載のＤＴＵ。
【請求項５】
前記サブブロックは、前記ソースのコヒーレンシー・グラニュールの境界を越えない請求項４に記載のＤＴＵ。
【請求項６】
前記ＤＴＵは、サブブロックに対応する第一ビートを前記ソースから受信し、該第一ビートは、データブロックの開始アドレスに対応するソース・アドレスに格納されたデータを備える請求項４に記載のＤＴＵ。
【請求項７】
前記第一ビートは、最大で、コミュニケーション経路のデータ転送サイズに対応するビートサイズを有する請求項６に記載のＤＴＵ。
【請求項８】
前記第一ビートは前記ソースのコヒーレンシー・グラニュール境界と整合されていず、かつ第一サブブロックは第一コヒーレンシー・グラニュールよりも小さい請求項７に記載のＤＴＵ。
【請求項９】
前記ＤＴＵは、データブロックの第二サブブロックをディスティネーションへ転送し、前記データの第二サブブロックは、最大で第二コヒーレンシー・グラニュールのサイズを有する請求項４に記載のＤＴＵ。
【請求項１０】
前記第一サブブロックの一部分と第二サブブロックの一部分とが同一の部分である、請求項９に記載のＤＴＵ。
【請求項１１】
第ニソースと、第ニディスティネーションとの間のコミュニケーション経路に対応する第ニデータ転送エンジンをさらに備え、同第ニデータ転送エンジンは、
ソース・アドレスを格納するソース・アドレス格納回路と、
ディスティネーション・アドレスを格納するディスティネーション・アドレス格納回路と、
前記ソースに対応する第一コヒーレンシー・グラニュールを格納するコヒーレンシー
・グラニュール・フィールドを有するソース属性格納回路と、
前記ディスティネーションに対応する第ニコヒーレンシー・グラニュールを格納するコヒーレンシー・グラニュール・フィールドを有するディスティネーション属性格納回路とを備える請求項１に記載のＤＴＵ。
【請求項１２】
前記ソース属性格納回路内のコヒーレンシー・グラニュール・フィールドと、ディスティネーション属性格納回路内のコヒーレンシー・グラニュール・フィールドとは、ユーザによりプログラミング可能である請求項１に記載のＤＴＵ。
【請求項１３】
請求項１に記載のＤＴＵを備えるデータ処理装置。
【請求項１４】
ユーザによりプログラミング可能なコヒーレンシー・グラニュール・フィールドから、第一および第二のコヒーレンシー・グラニュールを決定する工程と、
データブロックに対応するデータブロック・サイズを決定する工程と、
前記第一コヒーレンシー・グラニュールに対応するデータブロックの第一受信サブブロックをソースから要求する工程と、前記第一受信サブブロックは、最大で第一コヒーレンシー・グラニュールのサイズを有することと、
前記第一受信サブブロックをソースから受信する工程と、
第二コヒーレンシー・グラニュールに対応するデータブロックの第一転送サブブロックをディスティネーションへ提供する工程と、前記第一転送サブブロックは、最大で第二コヒーレンシー・グラニュールのサイズを有し、前記第一受信サブブロックの一部分と、第一転送サブブロックの一部分とは、データブロックの同一部分であることとを含むデータブロックの転送方法。
【請求項１５】
ソースから第一受信サブブロックを受信した後、データブロックの第二受信サブブロックを前記ソースから要求する工程と、前記第二受信サブブロックは、最大で第一コヒーレンシー・グラニュールのサイズを有することと、
前記第二受信サブブロックを受信する工程とを含む、請求項１４に記載の方法。
【請求項１６】
前記第二受信サブブロックのサイズは、第一コヒーレンシー・グラニュールのサイズに等しい請求項１５に記載の方法。
【請求項１７】
第一転送サブブロックを提供した後、データブロックの第二受信転送サブブロックをディスティネーションへ提供する工程と、前記第二転送サブブロックは、最大で第二コヒーレンシー・グラニュールのサイズを有する請求項１４に記載の方法。
【請求項１８】
前記第二転送サブブロックのサイズは、第二コヒーレンシー・グラニュールのサイズに等しい請求項１７に記載の方法。
【請求項１９】
前記第一受信サブブロックは、第一転送サブブロックと第二転送サブブロックとを含む請求項１７に記載の方法。
【請求項２０】
前記第一受信サブブロックは、前記ソース内の開始アドレスを有することに特徴付けられる、請求項１４に記載の方法。
【請求項２１】
前記開始アドレスが、前記ソースの第一コヒーレンシー・グラニュール境界に対して整合されていない場合、第一受信サブブロックは第一コヒーレンシー・グラニュールよりも小さい、請求項２０に記載の方法。
【請求項２２】
前記開始アドレスが、前記ソースの第一コヒーレンシー・グラニュール境界に対して整
合されていない場合、前記第一受信サブブロックを受信する工程は、
前記第一受信サブブロックに対応する第一ビートを受信する工程と、前記第一ビートは、開始アドレスに格納されたデータを有することと、
前記第一受信サブブロックに対応する、続く残りのビートを受信する工程と、前記残りのビートは、前記ソースの第二コヒーレンシー・グラニュール境界を越えないこととを含む方法。
【請求項２３】
前記開始アドレスが、前記ソースのビート境界に対して整合されていない場合、前記第一転送サブブロックは、第一ビートの一部分を含む請求項２２に記載の方法。
【請求項２４】
前記第一転送サブブロックは、ディスティネーション内の開始アドレスを有することに特徴付けられ、開始アドレスがディスティネーションの第一コヒーレンシー・グラニュール境界に対して整合されていない場合、第一転送サブブロックは第二コヒーレンシー・グラニュールよりも小さい、請求項１４に記載の方法。
【請求項２５】
前記開始アドレスが、ディスティネーションのビート境界に対して整合されていない場合、前記第一転送サブブロックを提供する工程は、
第一転送サブブロックに対応するサブビートを、ディスティネーションの開始アドレスへ提供する工程と、
第一転送サブブロックに対応する、続く残りのビートを提供する工程と、前記残りのビートはディスティネーションの第二コヒーレンシー・グラニュール境界を越えないこととを含む、請求項２４に記載の方法。
【請求項２６】
第一キャッシュメモリと、同第一キャッシュメモリに対応する第一コヒーレンシー・グラニュールとを有する第一処理装置と、
第二キャッシュメモリと、同第二キャッシュメモリに対応し、かつ第一コヒーレンシー・グラニュールとは異なる第二コヒーレンシー・グラニュールとを有する第二処理装置と、
前記第一処理装置と第二処理装置とに連結されて、第一処理装置と第二処理装置との間でデータを転送するデータ転送ユニットとを備えるシステムであって、前記データ転送ユニットは、
第一コヒーレンシー・グラニュールを格納する第一コヒーレンシー・グラニュール・フィールドと、第二コヒーレンシー・グラニュールを格納する第二コヒーレンシー・グラニュール・フィールドとを有する属性格納回路を備えるシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ転送ユニットに関し、特に直接メモリアクセス（ＤＭＡ）ユニット、より詳細にはシステム要求に従いデータを転送するデータ転送ユニットに関する。
【背景技術】
【０００２】
データ処理システムにおいては、データ転送に関連する規則を定義して、システム全体を最適化することが一般的である。その一つとして、メモリ内に格納されているデータユニットに関連するコヒーレンシー・グラニュールを定義する。データユニットは、一般に、システム内で使用され得るキャッシュと密接な関係を有している。キャッシュは、システム・パフォーマンスを向上させる目的で利用される。その一つの側面として、キャッシュ・アクセスが実行されると、要求されたデータのみでなく追加データも取り出される。これは、キャッシュのハードウエアに関連する、次なるアクセスを予想する機能により実行される。要求に応答して収集されるデータの総量は、一般にキャッシュ・ラインと称されている。上記の場合、典型的な例として、キャッシュ・ラインとコヒーレンシー・グラニュールとは同一である。
【０００３】
ハードウエアは、一般に、コヒーレント・データにアクセスすると、コヒーレンシー・グラニュールが、コヒーレント方式で転送されるデータパケットに変換されるとの仮定の下に設計されている。コヒーレント・グラニュールのサイズは、一般に、バスのサイズと比較して相当大きい。例えば、現在の処理システムにおいて、コヒーレンシー・グラニュールは通常３２バイトで、バスサイズは８バイト幅である。この場合、１個のコヒーレンシー・グラニュールのデータ転送には、バス上で４サイクルが要求される。ハードウエアは、例えばバースト技術を使用して、この転送パフォーマンスを最適化するように設計されている。従って、コヒーレンシー・グラニュールのバースト転送は、コヒーレンシー・グラニュールの各半分を２回未満で転送する。
【０００４】
システムがより複雑になるにつれて、コヒーレンシー・グラニュールのサイズは増大する傾向にある。コヒーレンシー・グラニュール・サイズが増大すると、各コヒーレンシー・グラニュールが有するデータが増加する。このことは、データに関連したコヒーレンシーに対する要求を保持する必要性のある各操作において、より多くのデータを処理しなければならないため、データ転送をより複雑にする可能性がある。
【０００５】
従って、良好なパフォーマンスと、コヒーレンシー・グラニュールのコンテキスト内のコヒーレンシー要求とを保持しながら、データ転送を行う技術が必要とされている。
当業者は、図面中の要素が簡略化および明瞭化を目的として、必ずしも当尺に描かれていないことを理解するであろう。例えば、図面中のいくつかの要素の大きさは、本発明の実施形態の理解を深めるために他の要素に比較して誇張されている。
【０００６】
データ転送ユニット、一般に直接メモリアクセス（ＤＭＡ）コントローラは、コヒーレンシー・グラニュール・サイズが異なるデバイス間でデータブロックを転送することが可能である。ここで、コヒーレンシー・グラニュールはデータユニットであり、同データユニットのためにコヒーレンシー状態がキャッシュ内に維持されている。このことは、転送のソースデバイスと目標デバイスとを識別するマスターとして作動する、ＤＭＡコントローラにより実行される。例えば、ソースは、ソースのコヒーレンシー・グラニュール・サイズではなく、目標のコヒーレンシー・グラニュール・サイズを有するサブ−ブロックにて、データを目標に転送する。本発明は、図面と、図面の説明とを参照してより深く理解されよう。
【発明を実施するための最良の形態】
【０００７】
図１に、関連した第一コヒーレンシー・グラニュール・サイズを有するデバイス１２と、関連した第二コヒーレンシー・グラニュール・サイズを有し、かつシステム・バス・インターコネクトを介してデバイス１２に連結されたデバイス１４と、デバイス１２に連結されたＰＣＩスレーブ１６と、デバイス１２に連結されたＰＣＩマスター１８と、デバイス１２に連結されたメモリ２０と、デバイス１４に連結されたメモリ２２と、デバイス１４に連結された外部キャッシュ２４と、デバイス１２に連結された外部キャッシュ２６と、デバイス１２に連結された他の周辺機器２８と、デバイス１４に連結された外部キャッシュ２６と、デバイス１４に連結された他の周辺機器３０とを有するシステム１０を示す。デバイス１２は、ローカルプロセッサ３６とＤＭＡコントローラ３８とを含む。デバイス１４は、ローカルプロセッサ３４とＤＭＡコントローラ３２とを含む。デバイス１２，１４は、各々、マルチプロセッシングのためのサポートを有している。図１に示すこれらの要素は、デバイス１２とデバイス１４のコヒーレンシー・グラニュールのサイズが異なり、ＤＭＡコントローラ３８、および／またはＤＭＡコントローラ３２が、いくつかの固有の特徴を有する以外は、先行技術として考慮し得る。
【０００８】
作動中、デバイス１２，１４は、プログラミングされた所望のパフォーマンスを実行するために協働して機能する。この工程において、様々な操作が実行される。操作の一タイプとしては、ＤＭＡコントローラ３２,３８のうちの片方により制御されたデータブロッ
クのデータ転送である。データブロックは、任意のメモリ・リソースから他の任意のメモリ・リソースへ移動することが可能であり、このようなリソースには、周辺機器が含まれる。これらの周辺機器およびメモリ・リソースの各々は、システムプログラマが認識可能である所定のメモリ空間を備えている。データ転送の一例として、システム・バス・インターコネクトを介した外部キャッシュ２６、即ちソースと、外部キャッシュ２４、即ちディスティネーションとの間のデータ転送がある。ＤＭＡコントローラ３２，３８の各々は、それが一部を構成するシステムのリソースのコヒーレンシー・サイズに従って、リソースを読み取り、かつリソースに書き込むように設計されている。目下のケースでは、まず、第一コヒーレンシー・グラニュール・サイズ、即ちデバイス１２のコヒーレンシー・グラニュール・サイズが３２バイトであると仮定し、第二コヒーレンシー・グラニュール・サイズ、即ちデバイス１４のコヒーレンシー・グラニュール・サイズが６４バイトであると仮定する。ＤＭＡコントローラ３８がマスターとして作動している場合、ＤＭＡコントローラ３８は、可能な限りの範囲において、デバイス１２の制御の下でデータブロックが外部キャッスから３２バイトのサブブロックにて読み取られ、システム・バス・インターコネクトを介して、デバイス１４の制御の下で６４バイトのブロックにて外部キャッシュ２４へ書き込まれることを確実にする。
【０００９】
図２に、チャネル４０、チャネル４２およびチャネル４４を備えたＤＭＡコントローラ３８の図表を示す。コントローラ３２も同様の形態にて図表化することが可能である。チャネル４０〜４４の各々は、データ転送エンジンとして考慮し得る。例えばＤＭＡコントローラ３８等のＤＭＡコントローラは、より多数のチャネルを備えてもよい。チャネル数は、一般に４〜１６の範囲内にあるが、これより少数か、または多数であってもよい。チャネル４０は、制御レジスタ４６と、状態レジスタ４８と、ソース・アドレス・レジスタ５０と、ソース属性レジスタ５２と、ディスティネーション・アドレス・レジスタ５４と、ディスティネーション属性レジスタ５６と、バイト数レジスタ５８と、データバッファおよびコントロール６０と、アドレス・コントロール６２とを含む。これら全レジスタは、ソース属性レジスタ５２と、ディスティネーション属性レジスタ５６とが特定の特徴を有する以外は、従来と同様である。ＤＭＡコントローラの典型的なチャネルはデータバッファおよびコントロールを有するが、バッファはデバイスのコヒーレンシー・グラニュールと同一のサイズを有している。その一方で、図２のデータバッファおよびコントロール
６０のバッファは、デバイス１２のコヒーレンシー・グラニュール・サイズの少なくとも２倍、好ましくは８倍のサイズを有する。従って、データバッファおよびコントロール６０は十分に大きく、それ故デバイス１２のコヒーレンシー・グラニュール・サイズの８倍迄のコヒーレンシー・グラニュール・サイズを有するサブブロックにてデータを書き込むことが可能である。
【００１０】
図３に、ユーザによりプログラミング可能な３ビットがソースまたはディスティネーションのコヒーレンシー・グラニュール・サイズを識別する、３２ビットのソース属性レジスタ５２またはディスティネーション属性レジスタ５６を示す。ＤＭＡコントローラ３８がデータ転送ユニットとして作動している場合、ソースのコヒーレンシー・グラニュール・サイズはソース属性レジスタ５２内に収容され、ディスティネーションのコヒーレンシー・グラニュール・サイズはディスティネーション属性レジスタ５６内に収容されると想定される。従って、ＤＭＡコントローラ３８は、ソース内のデータを、ディスティネーションのコヒーレンシー・グラニュール・サイズに一致するサブブロックにて、ディスティネーションへ転送し得る。データバッファおよびコントロール６０のバッファ・サイズは、ソースのコヒーレンシー・グラニュール・サイズがディスティネーションのコヒーレンシー・グラニュール・サイズよりも小さい場合、データ量がディスティネーションのコヒーレンシー・グラニュール・サイズに一致するまで、データを蓄積することを可能にする。同様に、データバッファおよびコントロール６０は、ソースのコヒーレンシー・グラニュール・サイズが、ディスティネーションのコヒーレンシー・グラニュール・サイズよりも大きい場合、ディスティネーションのコヒーレンシー・グラニュール・サイズに一致するブロックを伝送し、残留するブロックをバッファ内に保持し、その後、バッファからのサブブロックの伝送を継続する。このように、データバッファおよびコントロール６０は、ソースから到着するデータをサブブロックとして蓄積して、ディスティネーションのコヒーレンシー・グラニュール・サイズと一致するより小さいサブブロックを書き込むことを可能にする。
【００１１】
データ転送においては、ソースであるリソースの読み取りを行った後、ディスティネーションへの書き込みが行われる。読み取り命令は、コヒーレンシー・グラニュール・サイズに一致する量であるデータのサブブロックにて実行され、コヒーレンシー・グラニュール境界で開始されることが好ましい。読み取りは、コヒーレンシー・グラニュール境界を越えることが不可能である。ビートと称される、バーストを構成する個別の転送は、データがバスサイズの量に達すると発生し、従ってコヒーレンシー・グラニュール・サイズよりも小さい。一般的なビートは、コヒーレンシー・グラニュール・サイズの１／４のサイズを有する。従って、この例では、コヒーレンシー・グラニュール・サイズは３２バイトで、各ビートは８バイトである。従って、ビートサイズに加えて、各フル８バイトアクセスについてビート境界も存在する。しかしながら、開始アドレスはビート境界ではない位置にて開始され得る。第一ビートは、開始アドレスからビート境界へ至るデータである。従って、開始アドレスがビート境界に対して整合されていない場合、第一ビートは完全なビートサイズよりも小さいが、その後のアクセスは、おそらく最後のビートを除いて、完全なビートサイズを有する。
【００１２】
図４は、ソースが３２バイトのコヒーレンシー・グラニュール・サイズを有し、ディスティネーションが６４バイトのコヒーレンシー・グラニュール・サイズを有する場合の読み取り、および書き込み方法を示すフローチャートである。読み取りにおいては、ステップ１０４に示すように、読み取られるべき残留バイト数が０より大きいか否かを測定するステップが存在する。残留バイト数が０より大きい場合、次のステップ１０６において、読み取り開始位置がコヒーレンシー・グラニュール境界、この場合は３２バイト境界に対して整合されているか、かつ残留バイト数がコヒーレンシー・グラニュール・サイズ以上、この場合は３２バイト以上であるかを決定する。アドレスが３２バイト境界に存在しな
い場合、ステップ１１２に示すように、サブ３２バイト読み取りが実行される。この読み取りは、コヒーレンシー・グラニュール境界に対して整合されていない開始アドレスからのデータを、次のコヒーレンシー・グラニュール境界へ返送する。ステップ１１２は、複数のステップを有し得る。複数のステップの第一ステップでは、ビート境界に対して整合されているか、されていない第一ビートを検索する。第一ビートがビート境界に整合されていない場合、開始アドレスからビート境界へ至るデータが最初にアクセスされるビート部分である。その後、残りのビートのサブブロックへのバーストにより、残留するサブブロックが獲得され得る。従って、第一サブブロックのアクセス後、サブブロックはデータバッファおよびコントロール６０のバッファ内に蓄積され、ステップ１１０に示すように、バイト数が減少される。このステップは、ステップ１０４にて残留バイト数が０より大きいことを確実にした後、第一の転送がコヒーレンシー・グラニュール境界まで転送された後は必ずそうであるが、次のアドレスがコヒーレンシー・グラニュールに対して整合されているか否か、かつ残留バイト数がグラニュール・サイズ以上であるか否かを決定することにより継続する。バイト数が転送の完了を示すか、または残留バイト数がコヒーレンシー・グラニュール・サイズより小さくなるかのいずれかまで、コヒーレンシー・グラニュール・サイズのデータは継続して転送される。最終転送はフル３２バイトよりも小さいものと想定されるため、ステップ１０６において次の転送が３２バイトに整合されていることが決定され、３２バイトよりも大きいか否かの比較の結果は「否」であろう。従って、最終転送は、読み取りがコヒーレンシー・グラニュールのバーストの一部として実行されない点において、第一転送と同様の方法で処理されるであろう。この種の特別な転送は、当業者の技術の範囲内に含まれる。しかしながら、この転送は、コヒーレンシー・グラニュール転送と比較すると効率が良くない。
【００１３】
書き込み方法においては、第一ステップであるステップ１１４にて、書き込むべきバイトが残留しているか否かを決定する。最初は確実にそうであるが、残留バイト数が０より大きい場合、この場合６４バイトであるディスティネーションのコヒーレンシー境界に対する整合と、残留バイト数がコヒーレンシー・グラニュール・サイズ以上、この場合６４バイト以上であるか否かとが決定される。開始アドレスが整合されていない場合、ステップ１２２に示す特別な処理によりサブ６４バイト書き込みが行われる。第一書き込みは、ディスティネーションの開始アドレスのデータから開始されて、次のディスティネーションのコヒーレンシー・グラニュールへ継続する。この例では、書き込みは、データバッファおよびコントロール６０内に、開始アドレスから６４バイト境界へ至る量のデータが蓄積される迄実行されない。第一データがディスティネーションへ転送された後、おそらく最後の転送を除いた続く転送はコヒーレンシー・グラニュール境界にあり、データは、ディスティネーションのコヒーレンシー・グラニュール・サイズにて転送されるため、効率よく転送されるものと想定される。最終転送は、その転送がコヒーレンシー・グラニュール境界上で終了しない限り、異なる処理を要求するため、ステップ１２２により処理されるであろう。
【００１４】
データブロック転送においては、読み取りが行われ、ここでデータブロックを構成する第一サブブロックおよび最終サブブロックを除く全サブブロックが、ソースが存在するか、またはソースが連結されたシステムのコヒーレンシー・グラニュール・サイズ（ソース・コヒーレンシー・グラニュール・サイズ）にて確実に転送される。このことは、ソースのシステムに最適化された速度にて読み取りが行われる利点を有する。同様のことが、その後のディスティネーションへの転送にも当てはまる。ディスティネーションへ転送される第一サブブロックおよび最終サブブロックを除くサブブロックは、ソースが存在するか、またはソースと関連するシステムのコヒーレンシー・グラニュール・サイズ（ディスティネーション・コヒーレンシー・グラニュール・サイズ）にて転送される。このことは、ディスティネーションのシステムに最適化された速度にて書き込みが行われる利点を有する。従って、ディスティネーションのコヒーレンシー・グラニュール・サイズがソースの
コヒーレンシー・グラニュール・サイズと異なる場合でも、書き込みおよび読み取りにとって最適なデータ転送が行われ、ソースおよびディスティネーションのためのデータのコヒーレンシー要求が維持される。
【００１５】
図５に、読み取り、または書き込みの主要なステップを示す、より一般化されたフローチャートを示す。第一ステップでは、ステップ２０４に示すようにバイト数を決定して、転送されるべきデータが存在するか否かを決定する。転送されるべきデータがコヒーレンシー・グラニュール境界に存在し、かつ残留バイト数がコヒーレンシー・グラニュール・サイズ以上である場合（ステップ２１０）、次のステップでコヒーレンシー・グラニュールが転送されて（ステップ２１２）、バイト数が減少される。ステップ２１０にて、第一転送でのみ生じ得る、データがコヒーレンシー・グラニュール境界に存在しないと決定された場合、または、最終転送でのみ生じ得る、残留バイト数がコヒーレンシー・グラニュール・サイズよりも小さいと決定された場合、サブ・コヒーレンシー・グラニュール転送のステップ２０８により、特別な転送処理が行われる。この特別な処理は困難なタスクではないが、時間を要し、最適化されたコヒーレンシー・グラニュール転送とは区別される。従って、第一転送と最終転送とは特別であり、他の転送を最適化されたコヒーレンシー・グラニュール・サイズにする利点を提供する。
【００１６】
前述した明細書中で、本発明をその特定の実施形態の参照について説明した。しかしながら、当業者は、請求項に開示した本発明の範囲を逸脱せずに、様々な改良および変更をなし得ることを理解するであろう。従って、明細書および図面は、本発明を制限する意図ではなく説明することを意図すると考慮するべきであり、そのような改良の全ては、本発明の範囲内に含まれるものとする。
【００１７】
特定の実施形態に関して、利益、他の利点、および問題の解決法を開示してきた。しかしながら、利益、利点、問題の解決法、および利益、利点、または解決法を生じさせるか、または利益、利点、または解決法をより明白にする任意の要素は、任意または全ての請求項の、重大な、必要な、または必須の特徴、もしくは要素として解釈されるべきではない。
【図面の簡単な説明】
【００１８】
【図１】本発明の好ましい実施形態による、異なるコヒーレンシー要求を有する複数のデバイスを備えたシステムのブロック図。
【図２】本発明の好ましい実施形態による、図１に示したシステムのデータ転送デバイスのより詳細な図表。
【図３】図２のデータ転送デバイスの一部分を示す、より詳細な図表。
【図４】好ましい実施形態による図２のデータ転送デバイスの操作方法を示すフローチャート。
【図５】本発明の好ましい実施形態による図２のデータ転送ユニットの作動を示す、より一般化されたフローチャート。
【図１】
2005526335.tif 000003
【図２】
2005526335.tif 000004
【図３】
2005526335.tif 000005
【図４】
2005526335.tif 000006
【図５】
2005526335.tif 000007
【国際調査報告】
2005526335.tif 000008
2005526335.tif 000009