(57)【要約】本発明によるデータ処理装置は、第１のバス（５）に連結された第１の処理ユニット（１）と、第２のバス（６）に連結された第２の処理ユニット（２）と、前記第１のバス（５）に連結された第１のバスマスタ（３）と、前記第２のバス（６）に連結された第２のバスマスタ（４）と、前記第１および前記第２のバスマスタ（３、４）を互いに連結する第１および第２の通信チャネル（７、２０、８、２１）と、前記第１および前記第２の通信チャネル（７、２０、８、２１）を介した前記第１および前記第２のバスマスタ（３、４）間でのデータ転送を制御する制御ユニット（９）とを含む。
2006520956.tif 000002
【特許請求の範囲】
【請求項１】
第１のバス（５）に連結された第１の処理ユニット（１）と、第２のバス（６）に連結された第２の処理ユニット（２）と、前記第１のバス（５）に連結された第１のバスマスタ（３）と、前記第２のバス（６）に連結された第２のバスマスタ（４）と、前記第１および前記第２のバスマスタ（３、４）を互いに連結する第１および第２の通信チャネル（７、２０、８、２１）と、前記第１および前記第２の通信チャネル（７、２０、８、２１）を介した前記第１および前記第２のバスマスタ（３、４）間でのデータ転送を制御する制御ユニット（９）とを含むデータ処理装置。
【請求項２】
前記第１および前記第２の通信チャネル（７、２０、８、２１）の各々が、１つまたは複数のバッファ（７、８）を含む、請求項１に記載のデータ処理装置。
【請求項３】
各バッファ（７、８）が第１および第２のクロック入力（７．１、７．２、８．１、８．２）を有しており、前記第１のクロック入力（７．１、８．１）が前記第１のバスマスタ（３）に連結されており、前記第２のクロック入力（７．２、８．２）が前記第２のバスマスタ（４）に連結されている、請求項２に記載のデータ処理装置。
【請求項４】
前記第１のバス（５）が第１のバス幅（ｎ１、ｎ２）を有し、前記第２のバス（６）が第２のバス幅（ｍ１、ｍ２）を有し、前記第１および前記第２の通信チャネル（７、２０、８、２１）が前記バス幅（ｎ１、ｎ２、ｍ１、ｍ２）を適合させるための適合化ユニット（２０、２１）を含む、請求項１乃至３のいずれかに記載のデータ処理装置。
【請求項５】
前記第１のバス（５）が第１のバイト順序を有し、前記第２のバス（６）が第２のバイト順序を有し、前記第１および前記第２の通信チャネル（７、２０、８、２１）が前記バイト順序を適合させるためのさらなる適合化ユニット（２０、２１）を含む、請求項１乃至４のいずれかに記載のデータ処理装置。
【請求項６】
前記制御ユニット（９）が、単一データ転送のための出力レジスタ（１７）として、当該出力レジスタ（１７）の入力が前記第１のバス（５）に接続された出力レジスタ（１７）を含み、且つ、マルチプレクサ（１０）が、前記通信チャネル（８、２１）のうちの１つで切り替えられると共に前記出力レジスタ（１７）に接続されている、請求項１乃至５のいずれかに記載のデータ処理装置。
【請求項７】
前記処理ユニット（１、２）のうちの１つがマスタであり、残りの１つがスレーブであり、前記制御ユニット（９）が、制御信号および状態信号を受信および送信するために前記マスタ（１）に接続されている、請求項１乃至６のいずれかに記載のデータ処理装置。
【請求項８】
前記制御ユニット（９）が、アドレスレジスタ発生器（１３）として、当該アドレスレジスタ発生器（１３）の入力（１３．１）が前記第１の処理ユニット（１）に接続され、当該アドレスレジスタ発生器（１３）の出力（１３．２）が前記第２のバスマスタ（４）に接続されたアドレスレジスタ発生器（１３）を含み、且つ、前記制御ユニット（９）が、さらなるアドレスレジスタ発生器（１４）として、当該アドレスレジスタ発生器（１４）の入力（１４．１）が前記第１の処理ユニット（１）に接続され、当該アドレスレジスタ発生器（１４）の出力（１４．２）が前記第１のバスマスタ（３）に接続されたアドレスレジスタ発生器（１４）を含む、請求項１乃至７のいずれかに記載のデータ処理装置。
【請求項９】
前記制御ユニット（９）が、転送されるべきデータのアドレスが自動的にインクリメントされるように構成されている、請求項１乃至８のいずれかに記載のデータ処理装置。
【請求項１０】
前記制御ユニット（９）が、転送されるべきデータのアドレスがリングバッファモードで生成されるように構成されている、請求項１乃至９のいずれかに記載のデータ処理装置。
【請求項１１】
前記制御ユニット（９）が、前記第１のバス（５）に接続されたワードカウンタ（１５）を含む、請求項１乃至１０のいずれかに記載のデータ処理装置。
【請求項１２】
前記制御ユニット（９）が、もし前記バッファ（７、８）が満杯ならば前記データ転送を保留することができるように構成されている、請求項２乃至１１のいずれかに記載のデータ処理装置。
【請求項１３】
前記制御ユニット（９）が、前記バスのアクセス負荷が既定値未満に保持されるように前記バスのアクセス負荷を制御することができるように構成されている、請求項１乃至１２のいずれかに記載のデータ処理装置。
【請求項１４】
当該データ処理装置が、前記マスタである前記第１の処理ユニット（１）が前記データ転送を保留することができるように構成されている、請求項１乃至１３のいずれかに記載のデータ処理装置。
【請求項１５】
前記第１のバスマスタ（３）は、当該第１のバスマスタ（３）がアドレスの並びまたは違法アドレスに関するエラーを検出するように、且つ、当該第１のバスマスタ（３）が当該エラーを前記制御ユニット（９）に転送することができるように構成されている、請求項１乃至１４のいずれかに記載のデータ処理装置。
【請求項１６】
第１のプロセッサシステムの第１のメモリから第２のプロセッサシステムの第２のメモリにデータを転送するための方法であって、前記第１のメモリが、前記データを、第１のバス（５）を介して、第１のパイプライン（８）に、第１のバスマスタ（３）の助力によって、第１のクロックレートで送出するステップと、前記データが、前記第１のパイプライン（８）から、第２のバスマスタ（４）の助力によって、第２のクロックレートで、第２のバス（６）を介して、前記第２のメモリに転送されるステップとを含む方法。
【請求項１７】
制御ユニット（９）が、前記バスのアクセス負荷が既定値未満に保持されるように前記バスのアクセス負荷を制御する、請求項１６に記載の方法。
【請求項１８】
前記第２のメモリから前記第１のメモリへのデータ転送は、前記第２のメモリが、前記データを、前記第２のバス（５）を介して、第２のパイプライン（７）に、前記第２のバスマスタ（４）の助力によって、前記第２のクロックレートで送出するステップと、前記データが、前記第２のパイプライン（７）から、前記第１のバスマスタ（３）の助力によって、前記第１のクロックレートで、前記第１のバス（３）を介して、前記第１のメモリに転送されるステップとを含む、請求項１６または１７に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、第１のプロセッサシステムの第１のメモリから第２のプロセッサシステムの第２のメモリにデータを転送するためのデータ処理の装置および方法に関する。例えば、本発明は、２つ以上のプロセッサ間の通信を確立するために使用することができる。本発明は、特に、同一半導体ダイ上に配置された複数のプロセッサの間のプロセッサ間通信に関する。
【背景技術】
【０００２】
本発明によるデータを転送するためのデータ処理の装置および方法は、一般に、各プロセッサコア間で大きなデータブロックの高速交換が必要な複数のマルチプルマイクロプロセッサを使用する用途をサポートする。こうした用途には、データがプロセッサの境界をまたがなければならないシステム内で、様々なプロセッサコアが様々なタスクを共用する、移動電話、ネットワーク化されたＰＤＡ（ｐｅｒｓｏｎａｌ  ｄｉｇｉｔａｌ  ａｓｓｉｓｔａｎｔ、携帯型情報端末）、ネットワーク機器または一般のコンピューティング装置が含まれる。
【０００３】
より強力な計算装置への要求が増すにつれて、２つ以上のプロセッサを備えるシステムがますます多く提供されている。
【０００４】
２つ以上のプロセッサが同一チップまたは同一半導体ダイ上に集積されているシステムがある。典型的な例は、メインプロセッサと暗号プロセッサとを同一半導体ダイ上に有するスマートカード（ＳｍａｒｔＣａｒｄ）である。
【０００５】
小型のハンドヘルド装置がますます一般に普及してくるにつれて、強力で柔軟なチップへの要求が増大している。典型的な例は、普及の当初は音声伝送すなわちアナログ通信のための電話に過ぎなかった携帯電話である。年を追うごとに、追加の諸機能が追加され、今日の携帯電話のほとんどが、音声サービスおよびデータサービス向けに設計されている。追加の差別化要因は、つい最近の開発例をいくつか挙げると、無線アプリケーションプロトコル（ＷＡＰ、ｗｉｒｅｌｅｓｓ  ａｐｐｌｉｃａｔｉｏｎ  ｐｒｏｔｏｃｏｌ）のサポート、ページング機能およびショートメッセージシステム（ＳＭＳ、ｓｈｏｒｔ  ｍｅｓｓａｇｅ  ｓｙｓｔｅｍ）機能である。これらすべての機能は、より強力なプロセッサ、および非常にしばしばデュアルプロセッサチップまたはマルチプロセッサチップさえも必要とする。
【０００６】
将来は、例えばデジタルビデオストリームを扱うシステムが利用可能になるだろう。これらのシステムも、強力で柔軟なチップセットを必要とする。
【０００７】
他の例は、多目的ＪａｖａＣａｒｄなどのＩＣ（集積回路）カード、パームトップコンピュータまたは携帯型情報端末（ＰＤＡ）など小型のハンドヘルド装置、などである。
【０００８】
Ｇｈｏｄｒａｔ等の米国特許第６，２６６，７２３号には、ＰＣＩ（ｐｅｒｉｐｈｅｒａｌ  ｃｏｍｐｏｎｅｎｔ  ｉｎｔｅｒｃｏｎｎｅｃｔ、周辺装置相互接続）バス転送を最適化するための方法およびシステムが記載されている。この方法および装置は、特に、データ処理システム中でバス上でのデータ転送を最適化するために提供される。このために、当該データ処理システムは、中央処理装置、メモリサブシステム、データを転送するためのバストランザクションを受信するためのバス、およびそのバスに接続されている装置を備える。また、この装置は、バストランザクション要求を生成するバストランザクションイニシエータ、および元のバストランザクション要求の受信に応答して複数のバストランザクション要求を生成するバストランザクションオプティマイザを備える。こうした要求としては、高性能バストランザクション要求、および低性能バストランザクション要求が含まれる。この装置は、バストランザクション要求の受信に応答してバストランザクションを制御するバスインターフェースユニットをも備える。
【０００９】
Ｍｅｌｏ等の米国特許第６，２１２，５９０号には、遅延トランザクションアービトレーション機構による統合バスブリッジ設計を採用したコンピュータシステムが記載されている。このシステムは、使用により高性能を得ることができる拡張ベース機構（ｂａｓｅ）にドッキングされているラップトップコンピュータで使用される。このシステムは、ポータブルコンピュータ内にある２次バスブリッジ装置と、ポータブルコンピュータがドッキングされる拡張ベース機構内にあるもう１つの２次バスブリッジ装置とを備える。拡張ベース機構内の周辺装置は、やはりＣＰＵに結合されている１次バスブリッジ装置を介してメモリとの間でデータを読み書きするように遅延サイクルを開始するようにしてもよい。どちらのバスブリッジ装置も、両方の２次ブリッジ装置を接続する周辺バスのアービトレーションを制御するためのアービタを備える。
【００１０】
Ｍｅｌｏ等の米国特許第６，２７９，０８７号には、書込み転写（ｐｏｓｔｉｎｇ）動作をサポートするバスブリッジ内においてコヒーレンシを維持し性能を改善するためのシステムおよび方法が記載されている。当該ブリッジは、プロセッサバスに結合されているマイクロプロセッサと、メモリバスに結合されているメインメモリと、周辺バスに結合されている周辺装置との間のインターフェースを提供する。コヒーレンシを維持するために、当該ブリッジは、ある状況では転写を使用禁止にし、そしてサービスすべきある種の読取り要求を許可する前に、転写された書込みトランザクションを消去する。少なくともＭｅｌｏ等の米国特許第６，１９９，１３１号には、最適化された遅延トランザクションアービトレーション技法を利用するコンピュータシステムが記載されている。不利なことに、どちらの方法も、データの読取りと書込みを同時には許可しない。
【００１１】
Ｐａｒｄｉｌｌｏｓの米国特許第５，６４２，４８２号には、プロトコル層を提供するためのマイクロプロセッサとダイレクトメモリアクセスを管理するためのマイクロプロセッサとを備える通信コプロセッサ、を利用したネットワーク伝送用のシステムが記載されている。コンピュータバスと当該ネットワークとの間でデータを伝送するための当該システムは、当該バスに及びネットワーク接続されたアダプタに接続されている汎用ユニットを備え、さらに、第１のマイクロプロセッサと、当該バスと当該アダプタとの間でフレームを転送するための（そして、その間に接続されたデュアルポートメモリを備える）ユニットとを備える。当該システムはさらに、上記汎用ユニットに接続されている通信コプロセッサを備える。当該通信コプロセッサは、各通信層に対し、対応するプロトコルを、当該プロトコルに適合する制御データを各フレームに提供することにより提供する第２のマイクロプロセッサを備える。当該第２のマイクロプロセッサは、上記第１のマイクロプロセッサと上記デュアルポートメモリとに接続されている。最後に、当該システムは、上記第２のマイクロプロセッサと上記デュアルポートメモリとの間のデータ転送のダイレクトメモリアクセス管理を提供する第３のマイクロプロセッサを備える。
【００１２】
この解決法の不利な点は、ブロック転送または単一転送における長い待ち時間である。というのも、データブロックまたはワードの全体が、デュアルポートメモリに対向するプロセッサにより読み出せるようになるには、その前にまず、それがデュアルポートメモリに書き込まれる必要があるからである。この間は常時、プロセッサは転送に占有される。もう１つの不利な点は、ファームウェアが、当該転送を実行すべき両プロセッサブロックに巻き込まれるということである。また、両側の転送機能も調整される必要がある。
【００１３】
さらなるマルチプロセッサシステムが、Ｈｏｎｄａの米国特許第５，９１６，２９６号に記載されている。そこに記載されているデュアルプロセッサ自動車用制御（automotvie control）システムは、リードオンリメモリ（ＲＯＭ）と、ランダムアクセスメモリ（ＲＡＭ）と、中央処理装置（ＣＰＵ）と、ダイレクトメモリアクセス（ＤＭＡ）コントローラとを有するホストマイクロプロセッサを備える。このシステムはさらには、ＲＯＭと、ＲＡＭと、ＣＰＵと、ＤＭＡコントローラとを有するノック制御システム（knock-control system）マイクロプロセッサを備える。ホストマイクロプロセッサおよびノック制御システムマイクロプロセッサは、双方向通信ラインによって接続されている。
【００１４】
この解決法の不利な点は、２つのＤＭＡコントローラ間の双方向通信ラインが、パイプライン化されたバッファを使用しないことである。
【発明の開示】
【発明が解決しようとする課題】
【００１５】
本発明の一目的は、第１のプロセッサから第２のプロセッサにデータを転送するためのデータ処理の装置および方法として、データを両方のプロセッサ間で同時に双方向に交換することができるような装置および方法を提供することである。
【００１６】
本発明の他の目的は、待ち時間（これは、データを送信しようとする時点から転送のためにバスが利用可能になる時点までの間の時間を意味する）が可能な限り短くなるように、一方のプロセッサから他方のプロセッサにデータを転送することである。
【００１７】
本発明のさらなる目的は、両方のプロセッサコアの性能を最適化することである。一方のプロセッサコアから他方のプロセッサコアへのデータ転送は、プロセッサコアの性能についてはこれを浪費すべきではなく、よってシステムの全体性能の低下についてはこれを回避すべきである。
【００１８】
もし、従来技術によるシステム内で各プロセッサクロック速度が著しく異なると、これによって、データ転送中に、より速いプロセッサの速度が落ちることになり、システム全体の性能が低下することになる。したがって、本発明の他の目的は、各プロセッサがそれぞれ異なるクロック速度で動作するときのプロセッサおよびシステムの性能損失を避けることである。
【００１９】
単一ワードのデータだけを転送するシステムに比べて、大きなデータブロックを転送するシステムは、異なるハードウェア実装を必要とする。本発明の一目的はまた、第１のプロセッサから第２のプロセッサにデータを転送するためのデータ処理の装置および方法として、大きなデータブロックの転送にはもちろん、単一ワードの転送にも使用することができるような装置および方法を提供することでもある。
【００２０】
第１のプロセッサを有する一方のサブシステムから第２のプロセッサを有する他方のサブシステムにデータが転送されると、従来技術の解決法ではしばしば、そのデータをサブシステム内の望ましい場所に移動させるための追加プロセスを必要とする。これにより、不利なことに、プロセッサの性能がさらに低下する。したがって、本発明のさらなる目的は、第１のプロセッサから第２のプロセッサにデータを転送するためのデータ処理の装置および方法として、サブシステム内の望ましい場所へのデータ転送がプロセッサ性能に影響を及ぼさないような装置および方法を提供することである。
【課題を解決するための手段】
【００２１】
その問題は、第１のバスに連結（リンク）された第１の処理ユニットと、第２のバスに連結された第２の処理ユニットと、前記第１のバスに連結された第１のバスマスタと、前記第２のバスに連結された第２のバスマスタと、前記第１および前記第２のバスマスタを互いに連結する複数の通信チャネルと、前記複数の通信チャネルを介した前記２つのバスマスタ間でのデータ転送のためのコントローラとを本質的に備える、独立装置クレーム記載の各特徴を有するデータ処理装置によって解決される。
【００２２】
第１のプロセッサから第２のプロセッサにデータを転送するための適切な方法は、独立方法クレームに示される各特徴を含む。本発明による第１のプロセッサシステムの第１のメモリから第２のプロセッサシステムの第２のメモリにデータを転送するためのこの方法は、以下の各ステップを含む。すなわち、前記第１のメモリは、前記データを、第１のバスを介して、第１のパイプラインに、第１のバスマスタによって制御されて、第１のクロックレートで送出し、続いて、前記データは、前記第１のパイプラインから、第２のバスマスタの助力によって、第２のクロックレートで、第２のバスを介して、前記第２のメモリに転送される。
【００２３】
本発明のさらなる有利な発展形態は、各従属クレームに示される各特徴から分かる。
【００２４】
本発明の一実施形態によるデータ処理装置内の第１および第２の通信チャネルは、バッファを備える。よって、一方のプロセッサコアから他方のプロセッサコアへのデータ転送はバッファに格納されることになり、したがって、より高速のプロセッサの性能が、より低速のプロセッサの性能の影響を受けることはない。したがって、データ転送によって優れたシステムの全体性能が低下することはない。
【００２５】
本発明によるデータ処理装置の他の一実施形態では、各バッファは第１および第２のクロック入力を有しており、当該第１のクロック入力が前記第１のバスマスタに連結されており、当該第２のクロック入力が前記第２のバスマスタに連結されている。この実施形態の有利な点は、もし各プロセッサ速度が著しく異なっても、このことが、データ転送中に、より高速なプロセッサの速度を落とすことにはならず、より高速なシステムの性能を低下させることにはならないことである。例えば、前記データを、前記第１のプロセッサの前記クロックで前記第１のバッファに書き込むことができ、前記データを、前記第２のプロセッサの前記クロックレートで前記第１のバッファから読み出すことができる。
【００２６】
本発明によるデータ処理装置のさらなる一実施形態では、前記第１のバスは第１のバス幅を有し、前記第２のバスは第２のバス幅を有し、前記第１および前記第２の通信チャネルは前記各バス幅を適合させる適合化ユニットを備える。これには、データ転送がソフトウェアにとってトランスペアレントであるという有利な点がある。
【００２７】
本発明によるデータ処理装置のさらなる一実施形態では、前記第１のバスは一方のタイプのバイト順序を有し、前記第２のバスは他方のタイプのバイト順序を有する。さらに、前記第１および前記第２の通信チャネルは、前記各バイト順序を適合化させるさらなる適合化ユニットを備える。したがって、たとえ両方のサブシステムが互いに異なるバイト順序を有していたとしても、各プロセッサ間でのデータ転送を確実に行うことができる。例えば、もし一方のサブシステムがリトルエンディアン構成で稼動して他方のサブシステムがビッグエンディアン構成で稼動しても、両方のサブシステム間の通信は依然として可能である。
【００２８】
さらに、本発明によるデータ処理装置の制御ユニットは、単一データ転送のための出力レジスタとして、当該出力レジスタの入力が前記第１のバスに接続された出力レジスタを備えることができる。マルチプレクサは、各通信チャネルのうちの１つで切り替えられると共にスレーブアクセス出力レジスタに接続される。これにより、単一データ転送またはブロックデータ転送を実現することができる。
【００２９】
さらに、前記データ処理装置において、前記処理ユニットのうちの１つをマスタとし、残りの１つをスレーブとすることが提案される。前記制御ユニットは、制御信号および状態信号を受信および送信するために、当該マスタに接続される。
【００３０】
有利には、本発明によるデータ処理装置の前記制御ユニットは、アドレスレジスタ発生器として、当該アドレスレジスタ発生器の入力が前記マスタに接続され、当該アドレスレジスタ発生器の出力が前記第１のバスマスタに接続されたアドレスレジスタ発生器を備え、且つ、前記制御ユニットは、さらなるアドレスレジスタ発生器として、当該アドレスレジスタ発生器の入力が前記マスタに接続され、当該アドレスレジスタ発生器の出力が前記第２のバスマスタに接続されたアドレスレジスタ発生器を備える。
【００３１】
さらには、本発明によるデータ処理装置の前記制御ユニットは、各アドレスが自動的にインクリメントされるように構成される（ｅｑｕｉｐｐｅｄ）ことが可能である。それにより、どのサブシステムも、アドレスの発生に圧迫されることがなくなる。
【００３２】
さらなる有利な一実施形態では、本発明によるデータ処理装置の前記制御ユニットは、各アドレスがリングバッファモードで生成されるように構成されることが可能である。
【００３３】
有利には、本発明によるデータ処理装置の前記制御ユニットは、前記第１のバスに接続されたワードカウンタを備える。
【００３４】
本発明のさらなる一実施形態によれば、前記制御ユニットは、もし前記バッファが満杯ならばデータ転送を保留することができるように構成される。それにより、バッファオーバーフローとそれに起因するデータの損失とを避けることができる。
【００３５】
本発明によるデータ処理装置の他の一態様では、前記制御ユニットは、前記バスのアクセス負荷が既定値未満に保持されるように前記バスのアクセス負荷を制御することができるように構成される。
【００３６】
さらには、本発明によるデータ処理装置は、前記マスタである前記第１のプロセッサがデータ転送を保留することができるように構成されることが可能である。
【００３７】
本発明によるデータ処理装置の他の一実施形態では、前記第１のバスマスタは、当該第１のバスマスタがアドレスの並び（ａｌｉｇｎｍｅｎｔ）または違法アドレスに関するエラーを検出するように、且つ、当該第１のバスマスタが当該エラーを前記制御ユニットに転送することができるように構成される。
【００３８】
本発明によるデータ転送のための方法のさらなる一実施形態では、前記第２のプロセッサから前記第１のプロセッサへのデータ転送は以下のステップを含む。すなわち、前記第２のメモリは、前記データを、前記第２のバスを介して、第２のパイプラインに、前記第２のバスマスタの助力によって、前記第２のクロックレートで送信する。その後、前記データは、第２のパイプラインから、前記第１のバスマスタの助力によって、前記第１のクロックレートで、前記第１のバスを介して、前記第１のメモリに転送される。
【発明を実施するための最良の形態】
【００３９】
本発明は、マルチプロセッサシステムにおけるデータ交換の改善をもたらす。図には、パイプライニングによりリモートバスマスタに連結されたローカルマスタを有する２プロセッサシステムの一実施形態が示してある。
【００４０】
図に示した本発明によるデータ処理装置は、中央処理装置（ＣＰＵ）とすることができる参照符号１で示される第１のプロセッサＡと、例えばデジタル信号プロセッサ（ＤＳＰ）とすることができる参照符号２で示される第２のプロセッサＢとを備える。第１のプロセッサＡは、参照符号５で示される第１のバスＡを介してローカルバスマスタ３に連結（リンク）されている。第２のプロセッサＢは、参照符号６で示される第２のバスＢを介してリモートバスマスタ４に連結されている。このシステムはまた、第１のバス５に連結された第１のメモリＡと、第２のバス６に連結された第２のメモリＢとを備える。
【００４１】
第１のサブシステムは、第１のプロセッサＡと、第１のバスＡと、第１のメモリＡと、ローカルバスマスタ３とを備える。第２のサブシステムは、第２のプロセッサＢと、第２のバスＢと、第２のメモリＢと、リモートバスマスタ４とを備える。
【００４２】
データ転送は２つの通信チャネルによって実行され、第１の通信チャネルはリモートバスマスタ４からローカルバスマスタ３にデータを転送し、第２の通信チャネルはローカルバスマスタ３からリモートバスマスタ４にデータを転送する。第１の通信チャネルはＲＸチャネルとも呼ばれ、第２の通信チャネルはＴＸチャネルとも呼ばれる。ＲＸチャネルはＲＸパイプラインを備え、当該ＲＸパイプラインの入力はリモートバスマスタ４のデータ出力Ｒ＿ｄａｔａ＿ｏｕｔに接続されており、当該ＲＸパイプラインのデータ出力７．４は適合化ユニット２０を介してローカルバスマスタ３のデータ入力Ｌ＿ｄａｔａ＿ｉｎに接続されている。ＴＸチャネルはＴＸパイプライン８を備え、当該ＴＸパイプラインの入力はマルチプレクサ１０および第２の適合化ユニット２１を介してローカルバスマスタ３のデータ出力Ｌ＿ｄａｔａ＿ｏｕｔに接続されており、当該ＴＸパイプラインのデータ出力８．５はリモートバスマスタ４のデータ入力Ｒ＿ｄａｔａ＿ｉｎに接続されている。
【００４３】
第１の適合化ユニット２０は、リモートバスマスタ４のデータ出力Ｒ＿ｄａｔａ＿ｏｕｔから引き渡されるデータを、ローカルバスマスタ３に適したフォーマットに変換するために設けられる。特に、もし、リモートバスマスタ４がその出力データをｍ１本のラインを有するデータバス上に引き渡すとともに、ローカルバスマスタのデータバスがｎ１本のラインを有するならば、第１の適合化ユニット２０は、そのデータをローカルバスマスタ３のデータバスに適合するように変換する。もし、リモートバスマスタ４がその出力データＲ＿ｄａｔａ＿ｏｕｔをリトルエンディアンフォーマット（コンピュータ業界で知られている第１のバイトアドレッシングフォーマット）で引き渡すが、ローカルバスマスタ３がそのデータをビッグエンディアンフォーマット（コンピュータ業界で知られている第２のバイトアドレッシングフォーマット）で必要とするならば、第１の適合化ユニット２０は、出力データＲ＿ｄａｔａ＿ｏｕｔを適切に変換する。リモートバスマスタ４からの出力データＲ＿ｄａｔａ＿ｏｕｔが変換されなければならないか否かは、第１の適合化ユニット２０の制御入力２０．１に連結された制御ユニット９によって決定される。
【００４４】
第２の適合化ユニット２１は、ローカルバスマスタ３のデータ出力Ｌ＿ｄａｔａ＿ｏｕｔから引き渡されるデータを、リモートバスマスタ４に適したフォーマットに変換するために設けられる。もし、ローカルバスマスタ３がその出力データをｎ２本のラインを有するデータバス上に引き渡す一方で、リモートバスマスタのデータバスがｍ２本のラインを有するならば、第２の適合化ユニット２１は、その出て行くデータをリモートバスマスタ４のデータバスに適合するように変換する。もし、ローカルバスマスタ３がその出力データＬ＿ｄａｔａ＿ｏｕｔをリトルエンディアンフォーマットで引き渡すが、リモートバスマスタ４がそのデータをビッグエンディアンフォーマットで必要とするならば、第２の適合化ユニット２１は、出力データＬ＿ｄａｔａ＿ｏｕｔを適切に変換する。同様に、もしローカルバスマスタ３からの出力データＬ＿ｄａｔａ＿ｏｕｔが、ビッグエンディアンフォーマットで引き渡されるがリモートバスマスタ４からリトルエンディアンフォーマットで要求されるとしても、これが妥当する。ローカルバスマスタ３からの出力データＬ＿ｄａｔａ＿ｏｕｔが変換されなければならないか否かは、第２の適合化ユニット２１の制御入力２１．１に連結された制御ユニット９によって決定される。
【００４５】
ここに示す本発明の実施形態によれば、ＲＸパイプラインは、２つのクロック入力７．１および７．２を有する先入れ先出し（ＦＩＦＯ、ｆｉｒｓｔ  ｉｎ  ｆｉｒｓｔ  ｏｕｔ）バッファ７を備える。クロック入力７．１はリモートバスマスタ４に接続され、クロック入力７．２はローカルバスマスタ３に接続されている。それによって、リモートバスマスタ４からローカルバスマスタ３への非同期データ転送を実現することが可能になる。もし第１のプロセッサＡのクロックと第２のプロセッサＢのクロックとが非常に異なっても、プロセッサ１および２のクロックレートがバッファ７により切り離されているので、このことが、データ転送中に、より速いプロセッサの速度を落とすことにはならず、より速いサブシステムの性能を低下させることにはならない。例えば、データを、プロセッサＢのクロックでバッファ７に書き込むことができ、プロセッサＡのクロックでバッファ７から読み出すことができる。
【００４６】
バッファアンダランまたはバッファオーバーフローを避けるために、バッファ７は、そのバッファ制御入力７．３を介して制御ユニット９のＲＸ制御ユニット１１の制御出力に接続されている。一般に、ＲＸ制御ユニット１１はバッファ７を制御する。ＲＸ制御ユニット１１は、受信データの状態を状態ライン７．４上のバッファ７を介して獲得する。
【００４７】
ＴＸパイプラインは、やはり先入れ先出しバッファである、２つのクロック入力８．１および８．２を有するバッファ８を備える。バッファ８の第１のクロック入力８．１はリモートバスマスタ４に接続され、バッファ８の第２のクロック入力８．２はローカルバスマスタ３に接続されている。それによって、ローカルバスマスタ３からリモートバスマスタ４への非同期データ転送を実現することも可能になる。もし第１のプロセッサＡのクロックと第２のプロセッサＢのクロックとが大幅に異なっても、２つのプロセッサ１および２のクロックレートがバッファ８により切り離されているので、このことが、データ転送中に、より速いプロセッサの速度を落とすことにはならず、より速いサブシステムの性能を低下させることにはならない。例えば、データを、プロセッサＡのクロックでバッファ８に書き込むことができ、プロセッサＢのクロックでバッファ８から読み出すことができる。
【００４８】
バッファ８のバッファアンダランまたはバッファオーバーフローを避けるために、バッファ８は、そのバッファ制御入力８．３を介して制御ユニット９のＴＸ制御ユニット１２の制御出力に接続されている。一般に、ＴＸ制御ユニット１２はバッファ８を制御する。ＴＸ制御ユニット１１は、送信データの状態を状態ライン８．４上のバッファ８を介して獲得する。
【００４９】
本発明は、ローカルおよびリモートバスマスタ３および４を、各プロセッサコア１、２の２つのバス５、６専用にすることによって、望ましい改善を提供する。プロセッサ１、２がバス５、６を必要としない時間内には、２つのバスマスタ３、４はデータ転送を行うことができるので、プロセッサの性能は抑制されない。
【００５０】
データパイプライン８は、出力データＬ＿ｄａｔａ＿ｏｕｔを、ローカルバスマスタ３からリモートバスマスタ４に至る経路上で転送し、データパイプライン７は、出力データＲ＿ｄａｔａ＿ｏｕｔを、リモートバスマスタ４からローカルバスマスタ３に至る経路上で転送する。これは特に、バスマスタ３または４のうちの一方が、バス５または６が使用不能であるために、または、サブシステムのクロック速度の違いに起因して他方のバス５または６がデータパケットを当該データパケットの供給時と同一レートで受容することができないために、その専用バス５または６との間で一時的にデータを受信または送信することができないときに有益である。データパイプライン７および８を使用するアーキテクチャによって、２つのクロック領域（ｃｌｏｃｋ  ｄｏｍａｉｎ）が、独立したクロック速度で動作できるようになる。
【００５１】
バスＡおよびバスＢの全アドレス範囲をカバーするアドレスレジスタ１３および１４は、データが転送されて行くまたは転送されて来るサブシステムアドレスを決定するのであり、したがって、さらなるデータ転送は必要でない。というのは、当該データを、所望の送信元アドレスロケーションから所望の宛先アドレスロケーションに直接的に転送することができるからである。
【００５２】
各プロセッサ領域でのダイレクトメモリアクセスにより、大きなデータブロックを転送するときの待ち時間が最小限まで低減される。
【００５３】
任意選択として、本発明によるデータ処理ユニットは、レジスタの完全なセットをプログラムするというオーバーヘッドなしに、単一データワードを同時に転送することもできる。これは、制御ユニット９上に配置されており、制御ユニットバス１９上でバスＡに接続されている、スレーブアクセスデータ入力レジスタ１６およびスレーブアクセスデータ出力レジスタ１７を通じて実行可能である。
【００５４】
ローカルバスマスタ３はバスＡのために働くと共に、制御インターフェース２２を介して制御ユニット９を制御する同様のプロセッサＡに接続されていることを理由にローカルバスマスタと呼ばれる。リモートバスマスタ４はバスＢのために働く。バスマスタ３および４はどちらも、バスインターフェースと呼ぶこともできる。例えば、バスＡは１６ビットのバス幅を有するバスとすることができ、バスＢは３２ビットのバス幅を有することができる。
【００５５】
２つのバス５と６とのデータ経路は、受信（ＲＸ）データパイプライン７を介して一方向に、送信（ＴＸ）データパイプライン８を介してもう一方向に接続されている。パイプライン７および８は、もしバスＡまたはバスＢが受信または送信のために直ちに使用できないならば、バッファとして働く。パイプライン７および８への書込みおよびパイプライン７および８からの読取りは、制御ユニット９によって制御される。
【００５６】
データパイプライン７および８を介して送信および受信される各ワードと並行して、制御情報および状態情報もそれぞれ、ＲＸ制御ユニット１１およびＴＸ制御ユニット１２に転送される。
【００５７】
リモートバスマスタ４のためのアドレスは、リモートバスマスタ４自身によって生成される。スタートアドレスとも呼ばれる初期ブロックアドレスのみが、制御ユニット９からリモートバスマスタ４に送られる。これは、パイプラインを各アドレスのためにも使用することを避けるためである。各アドレスはインクリメンタルなので、リモートバスマスタ４は、各転送ワードの後に続くアドレスを自動的にインクリメントする。
【００５８】
制御ユニット９は、転送されて行くおよび転送されて来るデータの送信元アドレスおよび宛先アドレス用のレジスタ１３および１４を有する。
【００５９】
制御ユニット９は、転送されるべきワードの数を決定するためのワードカウンタ１５も有する。
【００６０】
制御ユニット９は、制御プロセッサＡが転送の状態を検査できるようにするとともに、制御プロセッサＡが制御ユニット１１および１２を介するデータ転送を実行可能にできるようにする、制御／状態レジスタ１８をさらに含む。
【００６１】
最後に、制御ユニット９は、プロセッサＡがバスＡ上のローカルバスマスタ３を使用せずに単一データ転送を行うこともできるようにする、スレーブアクセスデータ入力レジスタ１６およびスレーブアクセスデータ出力レジスタ１７を有する。
【００６２】
データ転送のための新規のデータ処理装置および方法の好ましい一実施形態を図示および説明してきたが、本発明の全般的な概念または添付された特許請求の範囲の領域を逸脱することなく、当該装置および当該方法の変形および修正を想到することができることに留意されたい。
【図面の簡単な説明】
【００６３】
【図１】本発明によるデータ処理装置のブロック図を表す。
【図１】
2006520956.tif 000003
【国際調査報告】
2006520956.tif 000004
2006520956.tif 000005
2006520956.tif 000006