(57)【要約】  開示されたデータ処理システムは、メモリ手段（ＳＤＲＡＭ）と、上記メモリ手段（ＳＤＲＡＭ）にアクセスするため設けられた複数のデータ処理手段（ＩＰ）と、上記メモリ手段（ＳＤＲＡＭ）と上記複数のデータ処理手段（ＩＰ）との間に接続された通信インターフェイス手段を備え、上記通信インターフェイス手段がノードのネットワーク（Ｈ１１，Ｈ１２，Ｈ２）を含み、各ノードがデータ処理手段（ＩＰ）または前のノードからメモリアクセス要求を受信する少なくとも１個のスレーブポート（ｓ）と上記スレーブポート（ｓ）で受信されたメモリアクセス要求に従って次のノードまたは上記メモリ手段（ＳＤＲＡＭ）へメモリアクセス要求を発行する少なくとも１個のマスターポート（ｍ）を備え、上記少なくとも１個のスレーブポート（ｓ）が前のノードのマスターポート（ｍ）または上記データ処理手段（ＩＰ）のうちの１台に接続され、上記少なくとも１個のマスターポート（ｍ）が次のノードのスレーブポート（ｓ）または上記メモリ手段（ＳＤＲＡＭ）に接続される。
2007504549.tif 000002
【特許請求の範囲】
【請求項１】
メモリ手段と前記メモリ手段にアクセスするため設けられた複数のデータ処理手段とを備えたデータ処理システムであって、
通信インターフェイス手段が前記メモリ手段と前記複数のデータ処理手段との間に接続され、前記通信インターフェイス手段がノードのネットワークを含み、各ノードがデータ処理手段または前のノードからメモリアクセス要求を受信する少なくとも１個のスレーブポートと、前記スレーブポートで受信された前記メモリアクセス要求に従って次のノードまたは前記メモリ手段へメモリアクセス要求を発行する少なくとも１個のマスターポートとを備え、前記少なくとも１個のスレーブポートが前のノードのマスターポートまたは前記データ処理手段のうちの１台に接続され、前記少なくとも１個のマスターポートが次のノードのスレーブポートまたは前記メモリ手段に接続される、
データ処理システム。
【請求項２】
各ノード手段において前記スレーブポートの個数が前記マスターポートの個数よりも多い、請求項１に記載のデータ処理システム。
【請求項３】
前記ノード手段のネットワークが階層構造化される、請求項１または２に記載のデータ処理システム。
【請求項４】
前記複数のノード手段が非循環有向グラフ構造に配置される、請求項３に記載のデータ処理システム。
【請求項５】
前記複数のノード手段がツリー構造に配置される、請求項４に記載のデータ処理システム。
【請求項６】
前記複数のノード手段が、ノード手段のｎ（ｎ≧２）個のグループを含み、
１番目のグループの前記ノード手段の前記スレーブポートのそれぞれが、前記複数のデータ処理手段のうちの１台に接続され、
ｎ番目のグループの前記ノード手段の前記マスターポートが前記メモリ手段に接続され、
前記ｎ番目のグループの前記ノード手段の前記スレーブポートのそれぞれが（ｎ−１）番目のグループの前記ノード手段のマスターポートに接続される、
請求項１から５の少なくともいずれか一項に記載のデータ処理システム。
【請求項７】
前記ノード手段がハブである、請求項１から６の少なくともいずれか一項に記載のデータ処理システム。
【請求項８】
メモリアクセス要求によって選択的にアクセスされるように適合した少なくとも１台のローカルメモリユニットを前記通信インターフェイス手段がさらに含む、請求項１から７の少なくともいずれか一項に記載のデータ処理システム。
【請求項９】
少なくとも１台のノード手段が、ローカルメモリユニットが接続された少なくとも１個のメモリポートをさらに備えている、請求項８に記載のデータ処理システム。
【請求項１０】
１台または複数の前記ローカルメモリユニットの少なくとも１個のセクションをキャッシュメモリとして制御するキャッシュコントローラ手段を前記通信インターフェイス手段が含む、請求項８または９に記載のデータ処理システム。
【請求項１１】
前記通信インターフェイス手段が、データ処理手段同士の通信をストリーム化する少なくとも１台の同期手段をさらに含む、請求項１から１０の少なくともいずれか一項に記載のデータ処理システム。
【請求項１２】
少なくとも１台のノード手段が、前記ノード手段に直接的または間接的に接続された前記データ処理手段同士の通信をストリーム化する前記同期手段を含む、請求項１１に記載のデータ処理システム。
【請求項１３】
前記１台または複数のローカルメモリユニットが先入れ／先出し機能のための記憶手段を備えるように構成され、前記同期手段が前記１台または複数のローカルメモリユニットを制御する先入れ／先出し管理手段を備えている、請求項８並びに請求項１１または１２に記載のデータ処理システム。
【請求項１４】
前記通信インターフェイス手段がシングルチップ上に設けられる、請求項１から１３の少なくともいずれか一項に記載のデータ処理システム。
【請求項１５】
前記複数のデータ処理手段の少なくとも一部分が前記シングルチップ上にさらに設けられる、請求項１４に記載のデータ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ手段と、上記メモリ手段にアクセスする複数のデータ処理手段とを備えるデータ処理システムに関係する。
【背景技術】
【０００２】
このようなシステムは、通常、マルチプロセッサシステムと呼ばれ、データ処理手段は、互いにある程度独立して動作し、あるプロセスを実行する。複数のデータ処理手段がメモリ手段にアクセスし、その結果、メモリ手段は複数のデータ処理手段によって共有される。通常、単一の共通メモリ手段だけがこのようなデータ処理システムに設けられ、複数のデータ処理手段が単一の共通チップに設けられるが、メモリ手段はオフチップメモリとしてこのようなチップの外部にある。上記処理手段の内部の詳細は本発明の範囲外であるので、それらは単にインテレクチュアルプロパティ（ＩＰ）手段と呼ばれる。
【０００３】
このような共有メモリデータ処理システムの一例として、デジタルビデオプラットフォーム（ＤＶＰ）システムがその基本的な形式で図１に表されている。このシステムは、オフチップメモリＳＤＲＡＭと通信する複数のデータ処理ユニットＩＰを備える。データ処理ユニットＩＰは、ＣＰＵのようなプログラマブル装置、特定用途ハードウェアブロック、複雑な内部構造をもつサブシステムなどである。さらに、図１のシステムには、装置トランザクションレベル（ＤＴＬ）インターフェイスＤＴＬが設けられ、それを介して各データ処理ユニットＩＰは、オフチップメモリＳＤＲＡＭへのアクセスを調停する中央主記憶（ＭＭＩ）インターフェイスとつながる。すべてのＩＰ同士の通信は、オフチップメモリＳＤＲＡＭにマップされた論理バッファ（図示されず）を介して行われる。通常、データ処理ユニットＩＰのうちの１台は、メモリマップされたコンフィギュレーションレジスタ（図示せず）を介してデータ処理ユニットをプログラミングすることによりタスクグラフのコンフィギュレーションを管理するＣＰＵ（中央処理ユニット）である。データ処理ユニットＩＰ間の同期は、メモリマップされた入力／出力ネットワークを介して、満杯のバッファまたは空のバッファが利用可能であるかどうかをデータ処理ユニットＩＰへ通知するこのＣＰＵによって集中化された方式で同様に取り扱われる。データ処理ユニットＩＰは、これらのバッファが空であるか、または、満杯になっているかを割り込みライン（図示せず）を介してＣＰＵに通知する。
【０００４】
同期のため使用されるメカニズムは、オフチップメモリＳＤＡＲＭに設けられたバッファがＣＰＵへの割り込みのレートを低く保つためにある程度大きくなければならないということになる。たとえば、ビデオ処理ユニットは、機能的な観点からは、細粒度（たとえば、ライン）で同期することが可能であるとしても、粗粒度（たとえば、フレーム）で同期することがよくある。
【０００５】
このようなデータ処理システムは、共有メモリアーキテクチャを備えているので、すべてのデータ処理手段がアクセスできる単一アドレス空間が存在する。これはプログラミングモデルを簡単化する。さらに、共通メモリ手段は費用効率が高いシステムソリューションを提供するために役立つ。
【０００６】
しかし、このようなデータ処理システムは、その基本的な形式で、テクノロジーが進歩すると共により顕著になる幾つかの欠点がある。すなわち、データ処理手段の台数が増加すると、メモリインターフェイスへのコネクションの個数が増加し、その結果として、メモリインターフェイスがより複雑になる。特に、種々のデータ処理手段間の調停はより複雑になる。さらに、ワイヤー長はメモリインターフェイスから離れた場所に置かれたデータ処理手段について問題になるので、多数の長いワイヤーは、時間遅延および消費電力の問題のみならず配線混雑の原因になる。さらなる重大な欠点は、帯域幅要件がさらに増加するとき、ボトルネックの可能性が存在することであり、（オフチップ）メモリ手段への帯域幅がオフチップ相互接続のシグナリング速度およびピン数のようなある種の側面によって制限される。
【０００７】
英国特許第２２３３４８０Ａ号は、各プロセッサがローカルメモリを有するマルチプロセッサデータ処理システムを開示する。ローカルメモリは一体となってシステムのメインメモリを形成し、各プロセッサは、メモリがそのプロセッサにローカルであるか、リモートであるかとは無関係に、いずれのメモリでもアクセス可能である。各プロセッサは、メモリアクセス要求がローカルメモリに関係するか、または、リモートメモリに関係するかを判定し、その要求を適切なメモリへ経路制御するインターフェイス回路を有し、リモート要求はバスを介して経路制御される。書き込みアクセスがローカルメモリに対して行われるときはいつも、ダミー書き込み要求がそのバスを介してすべての他のプロセッサへ経路制御される。各プロセッサはバス上のすべての書き込み要求を監視し、その要求に指定されたロケーションのコピーがローカルキャッシュメモリに保持されているならば、そのようなコピーはキャッシュ整合性を確保するため無効にされる。
【０００８】
米国特許第５，２６１，０６７Ａ号は、並列プロセッサ間でデータキャッシュ内容完全性を確保する装置および方法を開示する。各プロセッサは、中間計算の結果を記憶するデータキャッシュを有する。各プロセッサのデータキャッシュは同期間隔の使用によって互いに同期させられる。同期間隔のエントリーの間に、個別のキャッシュに収容された修正データ変数は共有メモリに書き戻される。データキャッシュに収容された無修正データはメモリからフラッシュされる。同期間隔を終了する間に、同期間隔へのエントリー以降に修正されなかったデータ変数は同様にフラッシュされる。修正データキャッシュ値を修正値を計算した個別のプロセッサに置くことにより、共有メモリへの不要なアクセスが回避される。
【０００９】
米国特許第６，２５３，２９０Ｂ１号は、複数のプロセッサユニットを有し、各プロセッサユニットがＣＰＵとＣＰＵに接続されたローカルキャッシュメモリとを含むマルチプロセッサシステムについて記載する。ＣＰＵはグローバル共有バスに接続されたそれらの共有バス端子を有し、ローカルキャッシュメモリはグローバル非共有バスに接続されたそれらのバス端子を有する。グローバル共有バスは、ＣＰＵによって共通に使用される共有情報を記憶する外部共有メモリに接続され、グローバル非共有バスはＣＰＵによって使用される非共有情報を記憶する外部非共有メモリに接続される。
【００１０】
米国特許第６，２８２，７０８Ｂ１号は、各基本ブロックが内部非循環有向グラフに編成された内部命令および外部命令から構成された複数の基本ブロックを含むような複数命令コンピュータプログラムを構造化する方法を開示する。ガーディングは、それぞれが個々に関連付けられた単一の先行命令から集合的に生じる後続命令で実行される。単一のジョイン／ターゲット命令に集中する結合された命令の部分集合は、次に、無条件で結合される。これは、結合された命令の部分集合内の個々の命令を相互に関係しない条件下で実行させ、ジャンプ命令についてのすべての演算を指定し、先に実行されていなければならないすべての演算を指定し、内部に収容された命令のさらなる部分集合の並列実行を可能にさせる非循環有向グラフ内の後続命令の部分集合により構成される種々の基本ブロックを連結することにより実現される。
【発明の開示】
【発明が解決しようとする課題】
【００１１】
本発明の目的は、上記の欠点を解決し、メモリインターフェイスへのコネクションの個数を削減し、ワイヤー長を短縮するために、帯域幅要件がさらに増加するときでもデータ処理手段とメモリ手段との間で通信ボトルネックを回避するようにデータ処理システムを改良することである。
【課題を解決するための手段】
【００１２】
上記の目的およびさらなる目的を達成するため、本発明によれば、メモリ手段と、上記メモリ手段にアクセスするため設けられた複数のデータ処理手段とを備えたデータ処理システムであって、通信インターフェイス手段が上記メモリ手段と上記複数のデータ処理手段との間に接続され、上記通信インターフェイス手段がノードのネットワークを含み、データ処理手段または前のノードからメモリアクセス要求を受信する少なくとも１個のスレーブポートと上記スレーブポートで受信されたメモリアクセス要求に従って次のノードまたは上記メモリ手段へメモリアクセス要求を発行する少なくとも１個のマスターポートとを各ノードが備え、上記少なくとも１個のスレーブポートが前のノードのマスターポートまたは上記データ処理手段のうちの１台に接続され、上記少なくとも１個のマスターポートが次のノードのスレーブポートまたは上記メモリ手段に接続される、データ処理システムが提供される。
【００１３】
本発明による構成によって、メモリ手段へのコネクションの個数は削減される。これは、通信インターフェイス手段がデータ処理手段からメモリアクセス要求を受信するスレーブポートおよびメモリ手段へ特有のメモリアクセス要求を発行する少なくとも１個のマスターポートを有する複数のノードのネットワークを含む、論理的に共有されたメモリアーキテクチャの特有の物理的な編成を準備することによって達成される。典型的に、ノードのマスターポートの個数はそのノードのスレーブポートの個数より少ない。その結果として、メモリインターフェイスの複雑さはそこに接続されるクライアントの個数が減少するので減少する。さらに、通信インターフェイス手段の相互接続が原因で、個別の配線の長さ、よって、配線の全長は配線混雑を回避するため役立つように削減される。
【００１４】
通信インターフェイス手段は複数のノード手段のネットワークを含み、各ノード手段は、メモリアクセス要求を受信する少なくとも１個のスレーブポートと、上記スレーブポートによって受信されたメモリアクセス要求に従ってメモリアクセス要求を発行する少なくとも１個のマスターポートとを備え、上記スレーブポートの個数は上記マスターポートの個数より大きくなり得る。したがって、本発明による通信インターフェイス手段は、データ処理手段とメモリ手段との間のコネクションのためのノード構造を含み、多数のデータ処理手段はノード手段にそのスレーブポートを介して接続され、一方、各ノード手段は唯一または少数のマスターポートを有する。ノード手段のスレーブポートはそれらが同一のサービスを提供するので均一であり、ノード手段にはスレーブポートがデータ処理手段に属するかまたは別のノード手段に属するかが明白である。データ処理手段によって発行されたメモリアクセスの要求がそのデータ処理手段に接続されたノード手段のうちの１台に渡される。本発明の概念の利点は段階的に導入できることである。すなわち、本発明の概念を採用するために最初のチップは、僅かに数台のデータ処理手段のため新しいノード手段を使用することが可能であり、後のチップでは、ノード手段の台数は徐々に上昇し、本発明の通信インターフェイス手段の設備はデータ処理手段の間のより多くの通信のため使用される。ノード手段が多数のマスターポートを有する場合、単一のポートが、たとえば、アドレス範囲識別に従って、転送のため選択される。
【００１５】
本発明の第１の実施形態では、上記ノード手段のスレーブポートのそれぞれは、上記複数のデータ処理手段のうちの１台に接続され、上記ノード手段のマスターポートは上記メモリ手段に接続される。よって、すべてのノード手段が同じレベルで設けられ、データ処理手段はこのような単一レベルのノード手段を介してメモリ手段に接続される。データ処理手段は、関連付けられたノード手段へメモリアクセス要求を発行可能であり、この関連付けられたノード手段がその要求をメモリ手段へ転送する。
【００１６】
代替的な第２の実施形態では、ノード手段のネットワークは、データ処理手段をリーフとしてもち、ノード手段をノードとしてもつ階層構造である。
【００１７】
複数のノード手段は非循環有向グラフ構造（ｄｉｒｅｃｔｅｄ  ａｃｙｃｌｉｃ  ｇｒａｐｈ  ｓｔｒｕｃｔｕｒｅ）に配置される。非循環有向グラフ構造の各エッジは、メモリアクセス要求に役立つ相互接続パスに対応する。エッジは有向であり、各エッジはあるノード手段のマスターポートを別のノード手段のスレーブポートに接続する。メモリ手段が複数の記憶セクションを含む場合、非循環グラフ構造は、結果として各データ処理手段が１個以上の記憶セクションと通信できるように、それぞれが異なる記憶セクションへのコネクションを提供するマスターポートの集合を生じ、それによって、多数のデータ処理手段が異なる記憶セクションへ並列にアクセスすることを可能にさせ、それによって、帯域幅ボトルネックを軽減させる。さらに、非循環グラフ構造は、あるデータ処理手段からある記憶セクションへ通じるグラフの中を通る数個の異なるパスを提供することがある。これらの異なるパスは、通信ボトルネックをさらに軽減するため、または、故障したコネクションの使用を回避するため有利に利用される。
【００１８】
さらに、上記の実施形態の好ましい改良では、複数のノード手段がツリー構造で配置され、その結果、１台以上のデータ処理手段および／または前のノードがノード手段にそのスレーブポートを介して接続されるが、各ノード手段は１個のマスターポートだけを有する。これは、ノード手段における転送プロセスを簡単化し、すべてのデータ処理手段によってアクセスされるノードツリーのルートで単一記憶セクションへの接続性を提供する。
【００１９】
この代替的な第２の改良では、好ましくは、複数のノード手段は、ｎ≧２として、ノード手段のｎ個のグループを含み、１番目のグループのノード手段のスレーブポートのそれぞれは上記複数のデータ処理手段のうちの１台に接続され、ｎ番目のグループのノード手段のマスターポートは上記メモリ手段に接続され、ｎ番目のグループのノード手段のスレーブポートのそれぞれは（ｎ−１）番目のグループのノード手段のマスターポートに接続される。よって、複数のノード手段はｎ個のグループに分割され、各グループは構造の中の異なるレベルを画定する。ノード手段がそのスレーブポートの一つでメモリアクセス要求を受信するならば、その要求はより上位のグループのノード手段へ転送されるか、または、ノード手段が最上位（すなわち、ｎ番目）のグループにあるならば、メモリ手段へ転送される。これに関して、ノード構造は必ずしも均一な深さをもたなくてもよいことに補足する。一部のデータ処理手段は、１台または２台のノードだけがそのデータ手段をメモリ手段から分離するので、メモリ手段の「近く」にあり、一方（同時に）、その他のデータ処理手段は、そのデータ処理手段が発行するメモリアクセス要求が非常に多数のノードを経由して移動しなければならないので、メモリ手段からより「遠く」にある。
【００２０】
上記のノード手段の階層構造は、データ処理手段には全くわからないので、データ処理手段の変更は不要である。
【００２１】
好ましくは、ノード手段はハブである。
【００２２】
本発明のさらなる好ましい一実施形態では、少なくとも１台のローカルメモリユニットが通信インターフェイスに取り付けられ、このようなローカルメモリユニットがメモリアクセス要求によって選択的にアクセスされることを可能にさせる。よって、単一アドレス空間がグローバルメモリおよびこのような１台〜複数のローカルメモリユニットに分配される。この実施形態の利点は、データ処理手段がグローバルメモリを用いる代わりにローカルメモリユニットだけを用いて相互にデータを交換し、その結果として、メモリアクセスレイテンシーを低下させ、消費電力を削減し、外部メモリ帯域幅の使用を削減することにより、通信における潜在的なボトルネックの危険性を低減することである。
【００２３】
好ましくは、少なくとも１台のノード手段は、ローカルメモリユニットが接続された少なくとも１個のメモリポートをさらに備える。よって、ノード手段は、メモリアクセス要求のアドレスをこのようなノード手段に取り付けられた、１台または複数のローカルメモリユニットに関連付けられたアドレス範囲と比較することにより、メモリアクセス要求がこのようなノード手段に取り付けられた、１台または複数のローカルメモリユニットを参照するかどうかをチェックする。もし、肯定的な結果であるならば、メモリアクセスがその選択されたローカルメモリユニットについて実行される。さもなければ、ノード手段は、そのマスターポートのうちの一つを介して、メモリアクセス要求を次のノード手段に転送し、ローカルメモリユニットがこのような次のノード手段にも取り付けられているならばチェックと「アクセスまたは転送」が繰り返されるか、または、メモリアクセス要求をメモリ手段へ転送する。
【００２４】
直前に説明した実施形態の変形では、通信インターフェイス手段は、１台または複数のローカルメモリユニットをキャッシュメモリとして制御するキャッシュコントローラ手段を含む。この場合、ローカルメモリユニットの少なくとも一部分は、そのマスターポートを介して到達可能な他のメモリにあるデータのコピーをローカルに記憶するため使用される。よって、メモリアクセス要求はキャッシュ動作が有効にされたより広いアドレス範囲に対してローカルに機能する。
【００２５】
さらに、通信インターフェイス手段は、データ処理手段の間で通信をストリーム化する少なくとも１台の同期手段を含む。特に、少なくとも１台のノード手段は、上記ノード手段に直接的または間接的に接続されたデータ処理手段の間で通信をストリーム化する上記同期手段を含む。
【００２６】
ローカルメモリユニットがノード手段に取り付けられている場合、ローカルメモリユニットは先入れ／先出し（ＦＩＦＯ）機能をもつべきであり、同期手段は、１台または複数の前記ローカルメモリユニットを制御するＦＩＦＯ管理手段を備える。同期サービスはＦＩＦＯ管理がローカルに記憶されるときにローカルに処理され、それによって、多数のデータ処理手段がノード手段に取り付けられた、１台または複数のローカルメモリユニットを介してデータを通信可能であり、さもなければ、同期要求が対応するノード手段のマスターポートのうちの一つに転送される。
【００２７】
さらなる好ましい一実施形態では、通信インターフェイス手段がシングルチップに設けられる。さらに、複数のデータ処理手段の少なくとも一部分が前記シングルチップにさらに設けられる。
【００２８】
本発明の上記の目的およびその他の態様は以下の説明および添付図面によってよりよく理解されるであろう。
【００２９】
本発明の好ましい実施形態は図面を参照して説明される。
【発明を実施するための最良の形態】
【００３０】
図２は、本発明の第１の好ましい実施形態によるハブ構造を有するデジタルビデオプラットフォーム（ＤＶＰ）システムを表す。図１に示されたシステムと同様に、図２のシステムは、インテレクチュアルプロパティ（ＩＰ）ユニットとも呼ばれる複数のデータ処理ユニットＩＰと、メモリＳＤＲＡＭとを備えている。データ処理ユニットＩＰは、プログラマブル装置（ＣＰＵ）、特定用途ハードウェアブロック、複雑な内部構造をもつサブシステムなどでもよい。すべてのデータ処理ユニットは、装置トランザクションレベル（ＤＴＬ）インターフェイスを備えている。さらに、複数のハブＨ１１、Ｈ１２、Ｈ２が設けられ、各ハブは数個のスレーブポートｓと１個のマスターポートｍとを備えている。図２のシステムでは、ハブは、ハブＨ１１およびＨ１２の第１のグループと、１台のハブＨ２だけにより構成される第２のグループとを備えているハブのネットワークを画定する。ハブＨ１１およびＨ１２の第１のグループは、データ処理ユニットＩＰに隣接した第１のレベルを画定するので、第１のグループのハブＨ１１およびＨ１２はそのスレーブポートｓによってデータ処理ユニットＩＰに直接的に接続される。図２に実施形態では、各ハブは次のハブまたはメモリインターフェイスＭＭＩへの接続のための１個のマスターポートだけを有する。第１のグループのハブＨ１１はそのマスターポートによって第２のグループのハブＨ２のスレーブポートに接続され、第２のグループのハブＨ２はそのマスターポートｍによってメモリインターフェイスＭＭＩへ接続され、一方、第１のグループのハブＨ１２はそのマスターポートｍによってメモリインターフェイスＭＭＩへ直接的に接続される。メモリインターフェイスＭＭＩはメモリＳＤＲＡＭに接続される。
【００３１】
図２の実施形態では、ハブのネットワークは非循環有向グラフ（ＤＡＧ）構造として作られ、ＤＡＧ構造のノードはハブＨ１１、Ｈ１２およびＨ２によって画定され、ＤＡＧ構造の各エッジはメモリアクセス要求に役立つ相互接続パスに対応する。エッジは有向である。図２に示されたＤＡＧ構造はツリー構造をもつように制限され、各ハブＨ１２、Ｈ１１およびＨ２は１個のマスターポートだけを有する。これによって、ハブは、たとえば、メモリ要求ごとに要求されたアドレスの範囲を識別することによってマスターポートを選択する必要がないので、ハブの転送プロセスを簡単化する。
【００３２】
ハブのスレーブポートｓにおいて、メモリアクセス要求が受信され、マスターポートｍによって転送される。ハブのスレーブポートｓは同じサービスを提供するので均一である。したがって、スレーブポートがデータ処理ユニットＩＰまたはその他のハブに接続されているかどうかはハブから見えない。
【００３３】
図２の実施形態に対して多様な構造の変形が可能であり、図２は一実施例に過ぎないことに注意すべきである。よって、ハブのネットワークは３以上のレベルを含むことがある。さらに、ハブＨ１２は構造内の上位の次のハブに接続される。その上、ハブは多数のマスターポートを有し、単一のマスターポートが、たとえば、アドレス範囲識別に従って、転送のため選択される。
【００３４】
図２にさらに示されているように、データ処理ユニット、装置トランザクションレベルＤＴＬ、ハブＨ１１、Ｈ１２およびＨ２、並びに、メモリインターフェイスＭＭＩはシングルチップＣ上にあり、一方、メモリＳＤＲＡＭはチップＣの外部に設けられる。
【００３５】
図２に表されたハブ構造に起因して、メモリインターフェイスＭＭＩのクライアントの個数は削減される。さらに、個別の配線の長さ、したがって、配線の全長が削減され、それによって、配線混雑が回避される。
【００３６】
階層的なハブ構造はデータ処理ユニットＩＰから全く見えず、データ処理ユニットＩＰの変更は不要である。さらに、同期が実行される方法にも影響がなく、同期は依然として、メモリマップされた入力／出力（図示せず）と、ＣＰＵを含むデータ処理ユニットによる割り込みとを用いて集中的に取り扱われる。
【００３７】
図３は、組み込みローカルメモリＭＥＭが各ハブに取り付けられている点で図２の第１の実施形態とは異なる本発明の第２の好ましい実施形態を表す。しかし、それに関して、代替的な実施形態では、ローカルメモリが一部のハブだけに設けられることに注意すべきである。ローカルメモリＭＥＭはアドレス空間内でプライベートセグメントが割り当てられ、オフチップメモリＳＤＲＡＭおよび多数のローカルメモリＭＥＭに分配された単一アドレス空間が設けられる。データ処理ユニットＩＰは通常のアドレスベースの方法でメモリアクセス要求を実行し、アドレスはオフチップメモリＳＤＲＡＭまたはオンチップローカルメモリＭＥＭを参照する。すべてのデータ処理ユニットＩＰは、オフチップメモリＳＤＲＡＭと、メモリインターフェイスＭＭＩに取り付けられたさらなるオンチップローカルメモリＭＥＭとにアクセスできるが、すべてのデータ処理ユニットＩＰがハブＨ１１、Ｈ１２およびＨ２に取り付けられたすべてのオンチップローカルメモリＭＥＭにアクセスできるのではない。すなわち、データ処理ユニットＩＰはメモリインターフェイスＭＭＩへの経路上のハブに取り付けられたローカルメモリＭＥＭにアクセスだけにアクセスできる。
【００３８】
データ処理ユニットＩＰは共通ハブを共有するので、バッファ通信はそのハブに取り付けられたローカルメモリＭＥＭによって実行される。データ処理ユニット間の通信のため使用される先入れ／先出し（ＦＩＦＯ）バッファは、共通ハブに、好ましくは、共通ハブに最も接近している第１のグループの共通ハブＨ１１またはＨ１２に取り付けられたローカルメモリＭＥＭのメモリセグメントにマップされる。データ処理ユニットＩＰは、このようなバッファがそれらのＤＴＬインターフェイスによって割り付けられたアドレス範囲内のデータにアクセスするように単に指示されるが、しかし、データ処理ユニットはそのアドレス範囲の物理的なロケーションに気付くことがなく、このことはデータ処理ユニットＩＰから見えない。ハブはデータ処理ユニットＩＰによって実行されるメモリアクセス要求のアドレスをチェックし、そのアドレスが指定された範囲内に入るならば、それらのローカルメモリへのアクセスを実行し、さもなければ、その要求を階層の上位へ転送する。ＩＰ同士の通信のためのバッファはコンフィギュレーションの際にローカルメモリＭＥＭに割り付けられ、バッファのアドレス範囲は、そのローカルメモリＭＥＭが取り付けられたハブにプログラムされる。
【００３９】
オンチップローカルメモリＭＥＭによる通信にマップされたＩＰ同士の通信はオフチップメモリＳＤＲＡＭへの高価な帯域幅を消費しない。ハブ構造は、頻繁に通信する必要のあるデータ処理ユニットＩＰがローカルメモリの取り付けられた共通ハブを有し、そのローカルメモリを介して通信するように選択されるべきである。たとえば、ビデオデータ処理ユニットＩＰはハブ構造と同じサブツリーに入るべきである。その上、全体の可用メモリ帯域幅は著しく増加される。一部のデータ処理ユニットＩＰによるオフチップメモリＳＤＲＡＭへのアクセスと並列して、オンチップローカルメモリへのアクセスは、他の（分離した）サブツリーに位置するデータ処理ユニットＩＰによって実行される。さらに、オンチップローカルメモリＭＥＭによる通信はより電力効率が高く、より高い帯域幅（より広い相互接続およびメモリポート、より高いクロック）をより容易にサポートすることが可能である。
【００４０】
上記のように、データ処理ユニットＩＰは、データがオンチップ（ローカルメモリＭＥＭ）にあるか、または、オフチップ（メモリＳＤＲＡＭ）にあるかとは無関係に、それらのＤＴＬインターフェイスを介してデータに簡単にアクセス可能である。したがって、オンチップ通信はデータ処理ユニットＩＰから見えない。これは提案されたコンフィギュレーションにおけるデータ処理ユニットＩＰの再利用を促進する。
【００４１】
データ処理ユニットＩＰ間での同期に特に注意すべきである。既に説明したように、ＤＶＰシステムでは、同期は、粗データ粒度で低レート同期を必要とする、ＣＰＵを含むデータ処理ユニットによって実行される。これによって、オフチップＳＤＲＡＭに容易に収容されるバッファサイズがより大きくなる。しかし、オンチップ通信の場合、細データ粒度での同期を必要とするより小さいバッファが使用されるべきである。多数のデータ処理ユニットによって実行される機能の場合、細粒度（たとえば、ラインまたはマクロブロック）での同期は単に論理的である。しかし、細粒度での同期のための割り込みベースのスキームの使用はＣＰＵ上により高い割り込みレートを引き起こす。
【００４２】
一つのソリューションは、より多くのＣＰＵパワーを同期のために専用し、または、さらに特別な（軽量の）ＣＰＵを同期タスクのために専用することである。
【００４３】
別の魅力的なソリューションはハブに同期サポートを追加することである。この場合、各ハブは、このハブに取り付けられたローカルメモリＭＥＭを介して（ＦＩＦＯベースの）ＩＰ同士の通信に関係する同期タスクを実行可能であり、すなわち、先入れ／先出し動作毎に、データおよび場所の可用性が管理され、データ処理ユニットＩＰへシグナリングされる。結果として、これは、少なくともローカルメモリによる通信が伴う限り、ＣＰＵソフトウェアの介入がないデータ処理ユニットの連続的な（自律的な）動作をサポートする。
【００４４】
データ処理ユニットＩＰはそれらのポートで抽象的な同期呼び出しを行う必要のあることが提案される。この基盤構造は、データ処理ユニットＩＰがシステムオンチップにどのように統合化されているかに依存して、これらの同期呼び出しがどのようにして解決されるかを決定する。これは再利用可能なデータ処理ユニットに組み込まれない。たとえば、このようなポートがローカルメモリを用いるローカル通信にマッピングするならば、対応するハブが同期呼び出しをローカルに解決し、その同期呼び出しを次の上位ハブへ転送する。通信がオフチップメモリＳＤＲＡＭを介して行われるならば、割り込みが発生される。データ処理ユニットＩＰに対し、これは「抽象的な」インターフェイス（図示せず）に隠され、その「抽象的な」インターフェイスは、上位レベル要求を通信インターフェイスに発行するためデータ処理ユニットＩＰに機能を提供し、このような要求がどのように実施されるかデータ処理ユニットＩＰから見えないように構成される。バッファがハブに取り付けられたローカルメモリＭＥＭに設けられるとき、同期のためのポートアドレスは、適宜に、コンフィギュレーション時にバッファのアドレス範囲と一緒にハブにプログラムされる。
【００４５】
上記のスキームにおいて、ローカルメモリＭＥＭは、データがオフチップＳＤＲＡＭへ全く移動する必要のないバッファされたＩＰ同士の通信のため使用されることに注意すべきである。これは、反復的な使用のためオフチップＳＤＲＡＭからオンチップローカルメモリＭＥＭにデータをコピーするキャッシュとしてのオンチップローカルメモリの使用とは異なる。
【００４６】
しかし、図３のアーキテクチャはキャッシングをサポートするために同様に使用され、トランスペアレントキャッシングとＩＰ制御キャッシングの２種類のキャッシングが有名である。
【００４７】
トランスペアレントキャッシングを用いると、データ処理ユニットＩＰは、データがローカルメモリＭＥＭにコピーされたことが実際にはわからず、むしろ、データ処理ユニットＩＰはデータをアクセスする際のレイテンシーの差異を感知する。キャッシュ制御機能を用いて、データがオフチップメモリＳＤＲＡＭとオンチップローカルメモリＭＥＭとの間でコピーされる。このようなキャッシュ制御はハブで実施される。キャッシュコヒーレンシは、ハードウェアキャッシュコヒーレンシスキームを実施するか、または、プログラミングモデルに制限を取り入れるかのいずれかによって解決されるべきである。
【００４８】
ＩＰ制御キャッシングを用いると、データ処理ユニットＩＰ自体は、反復的な（細粒度の）使用のためオフチップメモリＳＤＲＡＭからオンチップローカルメモリへデータをコピーする。オンチップローカルメモリＭＥＭ内のコピーは、オフチップメモリＳＤＲＡＭ内の対応するデータとは異なるアドレス範囲にある。ＩＰ制御キャッシングを用いると、データ処理ユニットＩＰがコヒーレンシの役割を担う。ＩＰ制御キャッシングの一実施例として、細粒度アクセスを実行するためにテクスチャデータをオンチップローカルメモリに「キャッシュ」する３次元グラフィックレンダラが考えられる。これは、テクスチャデータをハブに取り付けられたローカルメモリＭＥＭのアドレス範囲にコピーし、細粒度アクセスを実行するときにそのアドレス範囲内のアドレスを参照することによって行われる。このような場合、キャッシュ制御はデータ処理ユニットＩＰ自体によって実行され、この種の使用は、ＩＰ同士の通信のためのオンチップローカルメモリのトランスペアレントな使用とは異なる。それにもかかわらず、図３のアーキテクチャはこの種の使用をサポートする。
【００４９】
図４は、第１のオフチップメモリＳＤＲＡＭ１およびそれに接続された関連した第１のメモリインターフェイスＭＭＩ１の他に、第２のオフチップメモリＳＤＲＡＭ２およびそれに接続された関連した第２のメモリインターフェイスＭＭＩ２が設けられる点で、図２の第１の実施形態とは異なる第３の好ましい実施形態を表す。さらに、複数のハブＨ１１、Ｈ１２、Ｈ２１およびＨ２２が設けられ、ハブＨ１１およびＨ１２はそれぞれ数個のスレーブポートｓと２個のマスターポートｍを備え、ハブＨ２１およびＨ２２はそれぞれ２個のスレーブポートｓと１個のマスターポートｍを備えている。よって、図４のシステムでは、ハブは、ハブＨ１１およびＨ１２の第１のグループとハブＨ２１およびＨ２２により構成された第２のグループとを備えたハブのネットワークを画定する。ハブＨ１１およびＨ１２の第１のグループは、データ処理ユニットＩＰに隣接した第１のレベルを画定するので、第１のグループのハブＨ１１およびＨ１２はそのスレーブポートｓを介してデータ処理ユニットＩＰへ直接的に接続される。ハブＨ２１およびＨ２２の第２のグループは、メモリインターフェイスＭＭＩ１およびＭＭＩ２に隣接した第２のレベルを画定し、ハブＨ２１およびＨ２２はそれぞれそのスレーブポートの一方によってハブＨ１１のマスターポートｍの一つに接続され、さらに、そのスレーブポートのもう一方によってハブＨ１２のマスターポートｍの一つに接続される。さらに、ハブＨ２１はそのマスターポートｍによって第１のメモリインターフェイスＭＭＩ１に接続され、ハブＨ２２はそのマスターポートｍによって第２のメモリインターフェイスＭＭＩ２に接続される。
【００５０】
よって、図４の第３の実施形態では、ハブのネットワークは、図２および３のそれぞれの第１および第２の実施形態におけるＤＡＧ構造のようなＤＡＧ構造として編成されるが、データ処理ユニットＩＰは２台のオフチップメモリＳＤＲＡＭ１およびＳＤＲＡＭ２へのオプション的なアクセスが可能であり、一方、図２および３の第１および第２の実施形態では、単一のオフチップメモリＳＤＲＡＭとデータ処理ユニットＩＰとの間の通信だけが存在する。２台のオフチップメモリＳＤＲＡＭ１およびＳＤＲＡＭ２がハブのネットワークに接続されることは別として、図４の第３の実施形態の動作は図２の第１の実施形態の動作と同じであるので、図２の説明が参照される。さらに、図４の第３の実施形態では、図３と併せて説明されたようなローカルメモリおよび同期が同様にオプション的に設けられる。
【００５１】
上記のように、図４の第３の実施形態は、２台のオフチップメモリＳＤＲＡＭ１およびＳＤＲＡＭ２を備えている。しかし、３台以上のオフチップメモリが同様に設けられる。
【００５２】
上記の説明において、オフチップメモリＳＤＲＡＭへの通信ボトルネックを回避するためオンチップローカルメモリＭＥＭの使用を可能にさせるＤＶＰプラットフォームのようなマルチプロセッシングデータシステムの発展の次のステップが提示されている。ＩＰ同士の通信のためのローカルメモリＭＥＭの使用はデータ処理ユニットＩＰからは概ね見えない。
【００５３】
本発明による上記のアーキテクチャのさらなる利点は、それが段階的に導入できることである。そのソリューションを採用するために最初のチップは、ローカルメモリＭＥＭを介して通信したい僅かに数台のデータ処理ユニットＩＰだけのためオンチップローカルメモリＭＥＭおよび新しいハブ（たとえば、Ｈ１２）を使用可能である。後のチップでは、ローカルメモリをもつハブの台数は徐々に増加し、オンチップ通信設備はより多くのＩＰ同士の通信のため使用される。
【００５４】
本発明は添付図面に示された実施例に関して説明されたが、本発明はそれに限定されず、請求項に記載された事項の範囲内で様々に変化することが明白である。
【図面の簡単な説明】
【００５５】
【図１】従来技術によるＤＶＰシステムの基本形式の概略的な基本ブロック図である。
【図２】本発明の第１の好ましい実施形態によるハブ構造を含むＤＶＰシステムの概略的な基本ブロック図である。
【図３】オンチップローカルメモリをさらに含む本発明の第２の好ましい実施形態によるハブ構造をもつＤＶＰシステムの概略的な基本ブロック図である。
【図４】本発明の第３の好ましい実施形態によるハブ構造を含むＤＶＰシステムの概略的な基本ブロック図である。
【符号の説明】
【００５６】
ＳＤＲＡＭ  メモリ
ＭＭＩ  メモリインターフェイス
ＩＰ  インテレクチュアルプロパティ
ＤＴＬ  装置トランザクションレベル
Ｈ１１、Ｈ１２  ハブ
ｍ  マスターポート
ｓ  スレーブポート
ＭＥＭ  組み込みローカルメモリ
【図１】
2007504549.tif 000003
【図２】
2007504549.tif 000004
【図３】
2007504549.tif 000005
【図４】
2007504549.tif 000006
【国際調査報告】
2007504549.tif 000007
2007504549.tif 000008
2007504549.tif 000009