(57)【要約】集積されたプロセッサ（Ｐ１、Ｐ２）を少なくとも２つ含むシステム。これらの２つのプロセッサ（Ｐ１、Ｐ２）は、情報を交換するために２つの双方向通信チャネルを介して動作可能に接続される。双方向通信チャネルを確立するため、システムは、第１のプロセッサ（Ｐ１）が接続される第１のプロセッサ・バス（１０）と、第１の直接メモリ・アクセス・ユニット（４５）と、第１のプログラム可能ユニット（３４）と、第１の共用可能ユニット（１３）とを含む。プログラム可能ユニット（３４）は、第１のプロセッサ（Ｐ１）によってプログラムすることができる。また、第２のプロセッサ・バス（２０）と、第２のプロセッサ・バス（２０）に接続可能な第２のプロセッサ（Ｐ２）と、第２の直接メモリ・アクセス・ユニット（３５）と、第２のプログラム可能ユニット（４４）とが含まれる。第２のプログラム可能ユニット（４４）は、第２のプロセッサ（Ｐ２）によってプログラムすることができる。
2005534094.tif 000002
【特許請求の範囲】
【請求項１】
第１のプロセッサ・バスと、
前記第１のプロセッサ・バスに接続可能な第１のプロセッサと、
第１の外部直接メモリ・アクセス・チャネルを有し、前記第１のプロセッサ・バスに接続可能な第１の直接メモリ・アクセス・ユニットと、
前記第１の外部直接メモリ・アクセス・チャネルを介して前記第１の直接メモリ・アクセス・ユニットに接続可能であり、前記第１のプロセッサによってプログラム可能な第１のプログラム可能ユニットと、
前記第１のプロセッサ・バスに接続可能な第１の共用可能ユニットと、
第２のプロセッサ・バスと、
前記第２のプロセッサ・バスに接続可能な第２のプロセッサと、
第２の外部直接メモリ・アクセス・チャネルを有し、前記第２のプロセッサ・バスに接続可能な第２の直接メモリ・アクセス・ユニットと、
前記第２の外部直接メモリ・アクセス・チャネルを介して前記第２の直接メモリ・アクセス・ユニットに接続可能であり、前記第２のプロセッサによってプログラム可能な第２のプログラム可能ユニットと、
前記第２のプロセッサ・バスに接続可能な第２の共用可能ユニットとを含み、
第１の双方向通信チャネルが、前記第１の共用可能ユニットと前記第２のプロセッサの間に確立可能であり、第２の双方向通信チャネルが、前記第２の共用可能ユニットと前記第１のプロセッサの間に確立可能であるシステム。
【請求項２】
前記第１の双方向通信チャネルおよび／または前記第２の双方向通信チャネルが、半二重チャネルまたは全二重チャネルである、請求項１に記載のシステム。
【請求項３】
前記第１のプロセッサと前記第２のプロセッサが、アーキテクチャ上の観点から見て同様である、請求項１に記載のシステム。
【請求項４】
前記第１のプロセッサと前記第２のプロセッサは、同じタイプのプロセッサ設計を実施したものである、請求項１に記載のシステム。
【請求項５】
前記第１のプロセッサと前記第２のプロセッサは、異なるタイプのプロセッサ設計を実施したものである、請求項１に記載のシステム。
【請求項６】
前記共用可能ユニットが、メモリ、周辺装置、インタフェース、入力装置、出力装置のいずれかである、請求項１ないし５のいずれかに記載のシステム。
【請求項７】
前記２つの集積されたプロセッサの一方が、中央処理装置、マイクロプロセッサ、デジタル信号プロセッサ、システム・コントローラ、コプロセッサ、または補助プロセッサである、請求項１ないし５のいずれかに記載のシステム。
【請求項８】
前記第１のプログラム可能ユニットおよび／または前記第２のプログラム可能ユニットが、プロセッサ・インタフェースと、直接アクセス・ユニット・コアと、２つの外部直接メモリ・アクセス・チャネル・インタフェースとを含む、請求項１ないし５のいずれかに記載のシステム。
【請求項９】
前記プロセッサ・インタフェースが、プロセッサ・バスに接続するため、またはプロセッサに接続するためのプログラミング・リンクを有する、請求項８に記載のシステム。
【請求項１０】
前記共用可能ユニットとの間でデータおよび／または制御情報を転送するため、前記通信チャネルを確立することができる、請求項１ないし９のいずれかに記載のシステム。
【請求項１１】
共通の半導体ダイ上に配置され、情報を交換するために双方向通信チャネルを介して動作可能に接続される第１のプロセッサと第２のプロセッサとを含むコンピューティング装置であって、
前記第１のプロセッサが接続可能な第１のプロセッサ・バスと、
第１の外部直接メモリ・アクセス・チャネルを有し、前記第１のプロセッサ・バスに接続可能な第１の直接メモリ・アクセス・ユニットと、
前記第１の外部直接メモリ・アクセス・チャネルを介して前記第１の直接メモリ・アクセス・ユニットに接続可能であり、前記第１のプロセッサによってプログラム可能な第１のプログラム可能ユニットと、
前記第１のプロセッサ・バスに接続可能な第１の共用可能ユニットと、
前記第２のプロセッサが接続可能な第２のプロセッサ・バスと、
第２の外部直接メモリ・アクセス・チャネルを有し、前記第２のプロセッサ・バスに接続可能な第２の直接メモリ・アクセス・ユニットと、
前記第２の外部直接メモリ・アクセス・チャネルを介して前記第２の直接メモリ・アクセス・ユニットに接続可能であり、前記第２のプロセッサによってプログラム可能な第２のプログラム可能ユニットと、
前記第２のプロセッサ・バスに接続される第２の共用可能ユニットとをさらに含むコンピューティング装置。
【請求項１２】
ＰＤＡ、ハンドヘルド・コンピュータ、パーム・トップ・コンピュータ、セルラ電話、またはコードレス電話の一部となる、請求項１１に記載のコンピューティング装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般に、２以上のプロセッサ間での通信に関する。詳細には、本発明は、同一の半導体ダイ上に配置されるプロセッサ間でのプロセッサ間通信に関する。
【背景技術】
【０００２】
より高性能なコンピューティング装置に対する要望が高まるにつれて、プロセッサを２つ以上含むシステムが、ますます数多く提供されるようになった。
【０００３】
本発明の目的のためには、２以上の別個のプロセッサを含むコンピュータ・システムと、２以上のプロセッサが同一チップ上に集積されるシステムとを明確に区別すべきである。マザーボード上にメイン中央処理装置（ＣＰＵ）を、グラフィックス・カード上にアルゴリズム・プロセッサを搭載するコンピュータは、２つの別個のプロセッサを備えるコンピュータ・システムの一例である。複数の別個のプロセッサを備えるコンピュータ・システムの別の例は、性能の向上が達成されるように、プロセッサをアレイ状に配置した並列コンピュータである。説明を簡潔にするため、２以上の別個のプロセッサを備えるオンボード・システムも、同じカテゴリに属するものと考える。
【０００４】
２以上のプロセッサが同一のチップまたは半導体ダイ上に集積されるシステムが存在する。代表的な例は、メイン・プロセッサと暗号プロセッサとを同一の半導体ダイ上に有するＳｍａｒｔＣａｒｄ（ＩＣカードとも呼ぶ）である。
【０００５】
小型のハンドヘルド装置がますます普及するにつれて、高性能かつ柔軟性のあるチップに対する要望も高まっている。代表的な例は、普及当初は音声通信（アナログ通信）用の単なる電話でしかなかったセルラ電話である。ここ数年の間に、追加の機能が付け加えられ、今日のセルラ電話の大部分は、音声およびデータ・サービス用に設計されている。追加の差別化要因には、ごく最近の開発成果のいくつかから挙げるだけでも、無線アプリケーション・プロトコル（ＷＡＰ）サポート、ショート・メッセージ・システム（ＳＭＳ）、およびマルチメディア・メッセージ・サービス（ＭＭＳ）機能がある。これらの機能はすべて、より高性能なプロセッサを必要とし、かなりの頻度でデュアルプロセッサ・チップまたはマルチプロセッサ・チップすらも必要とする。
【０００６】
将来、例えば、デジタル・ビデオ・ストリームを処理するシステムが利用可能になるであろう。これらのシステムも、高性能かつ柔軟性のあるチップ・セットを必要とする。
【０００７】
その他の例として、多目的Ｊａｖａ（登録商標）ＣａｒｄなどのＩＣカード、パーム・トップ・コンピュータまたは携帯情報端末（ＰＤＡ）などの小型ハンドヘルド装置、ビデオおよびオーディオ装置、自動車用装置などがある。
【０００８】
そのようなデュアルプロセッサ・チップまたはマルチプロセッサ・チップでは、効率的なプロセッサ間通信のための通信チャネルの存在が欠かせない。本明細書では、「プロセッサ間通信」という表現は、第１のプロセッサおよび／またはその第１のプロセッサに関連づけられたシステム資源と、第２のプロセッサおよび／またはその第２のプロセッサに関連づけられたシステム資源との間の任意の通信の同義語として用いる。共用メモリ（例えば、ランダム・アクセス・メモリ）は、通常はチップのすべてのプロセッサがアクセスできる必要がある、システム資源の一例である。
【０００９】
システム資源は、あるタスクの同じアスペクトまたは同じタスクの異なるアスペクトを処理するためにプロセッサが並列で動作するデュアルプロセッサ・チップまたはマルチプロセッサ・チップにおいて、有効な方式で共用されなければならない。資源の共用は、各プロセッサが関連データを処理するよう求められるアプリケーションでも必要となることがある。
【００１０】
マルチプロセッサの一例が、１９９３年４月１６日に出願された欧州特許出願第０５８０９６１−Ａ１号において提示されている。この特許出願は、複数の別個のプロセッサと、それらすべてのプロセッサによって共用されるグローバル・バスとを備えるシステムに関する。プロセッサをその共通バスに接続するため、拡張プロセッサ・インタフェースが提供される。グローバル・バスを備えるそのようなマルチプロセッサ・システムは、システム性能に影響を及ぼす高いバス負荷のため、ＲＩＳＣプロセッサを用いて実現することができない。欧州特許出願第０５８０９６１−Ａ１号で提示されたマルチプロセッサ・システムは、高性能ではあるが、複雑であり、実施に多くの費用がかかる。提示された構造は、共通ダイ上のマルチプロセッサ・システムでは使用することができない。
【００１１】
別のシステムが、１９８５年４月２６日に出願された米国特許第４８６６５９７号で提案されている。この米国特許は、各プロセッサが独自のプロセッサ・バスを有するマルチプロセッサ・システムに関する。データは、個々のプロセッサ・バスを直接に相互接続する先入れ先出しデータ・バッファ（ＦＩＦＯ）を介してプロセッサ間で交換される。転送されるデータ量に伴いバッファのサイズが劇的に増加することが、この手法の短所である。
【００１２】
米国特許第５０９３７８０号は、転送データを自動的に読み書きするデータ・リンクを有するプロセッサ間送信システムに関する。直接メモリ・アクセス（ＤＭＡ）ユニットと送信器が、第１のプロセッサに割り当てられ、ＤＭＡユニットと受信器が、第２のプロセッサに割り当てられる。プロセッサは、対応するＤＭＡをプログラミングすることによって、転送をセットアップしなければならない。すなわち、プロセッサは、データを転送すべきかどうかについて事前に知らなければならない。これは、個々のプロセッサの関与を必要とするため、上述のプロセッサ間送信システムの短所である。前記システムの別の短所は、すべての送信が単方向であること、すなわち、実装が非対称であることである。図４の左側のメモリ１６から右側のメモリ２６にしかデータを送信することができない。
【００１３】
マルチマイクロプロセッサ・システム用のＤＭＡコントローラが、米国特許第５２２２２２７号に開示されている。このＤＭＡコントローラは、マイクロコンピュータ・システムによって実行されるデータ転送操作を制御する機能を有する。アドレス・パイプラインとデータ・パイプラインが、別々に提供される。トライステート技術がバスに用いられる。バスＣＤＢとバスＳＤＢは、少なくとも一時的に電気的に相互接続される。その結果、両バスは、同一のクロック速度で動作しなければならず、また同一のバス幅を持たなければならない。米国特許第５２２２２２７号によれば、同種のバスだけが相互接続できる。提示のシステムで使用される外部ＤＭＡチャネルは存在しない。
【００１４】
共用メモリを備えるマルチプロセッサ・システムが、１９９１年９月１７日に出願された米国特許第５２８３９０３号で説明され、特許請求されている。この米国特許によるシステムは、複数のプロセッサと、共用メモリ（メイン・メモリ）と、優先権選択ユニットとを含む。優先権選択ユニットは、プロセッサ間において、共用メモリへの要求アクセスを調停する。調停が必要となるのは、共用メモリが、複数のプロセッサからの競合する要求を同時に処理できない単一ポート・メモリ（例えば、ランダム・アクセス・メモリ）であるためである。共用メモリが単なる中間ストレージとしては高価であることが、この手法の短所である。共用メモリは、データ転送の高速化に伴い、その容量を増すことができる。
【００１５】
別のマルチプロセッサ・システムが、１９９０年４月２４日に出願された米国特許第５２８９５８８号で説明されている。プロセッサは、共通バスによって結合される。プロセッサは、このバスを介して共用メモリにアクセスすることができる。プロセッサごとにキャッシュが関連づけられ、共用メモリへのアクセスを制御するために調停方式が利用される。この手法の短所は、大きいキャッシュのみが性能を飛躍的に高めるので上記のキャッシュ・メモリは高価となることである。さらに、バス競合によって、各プロセッサの性能が低下する。
【００１６】
マイクロプロセッサ・アーキテクチャが、１９９２年７月７日に出願され、ＰＣＴ公開番号ＷＯ９３／０１５５３を付して公開されたＰＣＴ特許出願ＰＣＴ／ＪＰ９２／００８６９で説明されている。このアーキテクチャは、データ・バス、アドレス・バス、および制御信号バスによって結合される複数の異種のプロセッサをサポートする。メモリへのアクセスは、調停回路によって制御される。
【００１７】
公知のマイクロプロセッサ・システムのいくつかは、プロセッサ間通信がプロセッサの処理サイクルの一部を占有するアーキテクチャを使用する。プロセッサ機能および性能をより有効に利用できるようにするため、このオーバヘッドを回避して、プロセッサの処理能力を自由に使えるようすることが望ましい。
【００１８】
その他の周知の方式は、２以上のプロセッサが同一チップ内に配置される集積マルチプロセッサ・システムには使用することができない。
【００１９】
いくつかの公知のシステムが実装において非対称であること、つまり、プロセッサごとに異なる実装が必要であることが、それらのシステムのさらに別の短所である。さらに、実装が非対称だと、対称な場合に比べて、本格的な検証に費やす労力が大きくなる。
【発明の開示】
【発明が解決しようとする課題】
【００２０】
本発明の目的は、２以上のプロセッサおよび／またはそれに関連づけられたコンポーネントの間で効率的なデータ転送を行うための方式を提供することである。
【００２１】
本発明の目的は、半導体ダイへの組み込みに適したプロセッサ間データ転送方式を提供することである。
【課題を解決するための手段】
【００２２】
上記およびその他の目的は、集積されたプロセッサを少なくとも２つ含むシステムを提供する本発明によって達成される。本発明によれば、これらの２つのプロセッサは、情報を交換するために通信チャネルを介して動作可能に接続される。一方のプロセッサ（Ｐ１）は、プロセッサ・バスと、共用可能ユニットと、２つの外部ＤＭＡチャネルを有するＤＭＡユニットとを含む。ＤＭＡユニットおよび共用可能ユニットは、プロセッサ・バスに接続される。他方のプロセッサも、共用可能ユニットと、２つの外部ＤＭＡチャネルを有するＤＭＡユニットとを含む。プログラム可能ユニットを利用して、プロセッサが所望の通信リンクをセットアップできるようにする。この構成によって、２つのバス組織の間に２つの双方向通信チャネルを確立することができる。
【００２３】
２以上のプロセッサを、共通の半導体ダイ上に配置することができる。こうすることで、例えば、ＰＤＡ、ハンドヘルド・コンピュータ、パーム・トップ・コンピュータ、セルラ電話、コードレス電話などのコンピューティング装置を実現することができる。
【００２４】
２以上のプロセッサおよび／またはそれに関連づけられたコンポーネントの間で通信を行うため、通信チャネルを有利に利用することができる。本発明の構成は、一般的なマルチコア通信のニーズに適している。本発明の構成は高度に対称的であり、本発明を用いなければプロセッサごとに必要となるバス・マスタの数を最少に抑えることができる。本発明の方式は、拡張可能であり非常に柔軟である。
【００２５】
本発明の上記およびその他の態様は、以下で説明する実施形態から明らかであり、またそれらの実施形態を参照して説明される。
【００２６】
本発明のより完全な説明のため、また本発明のさらなる目的および利点を示すため、以下の説明を添付の図面と併せて参照する。
【発明を実施するための最良の形態】
【００２７】
本発明をいくつかの実施形態に関して説明する。
【００２８】
図１に示すように、本発明が適用されるデュアルプロセッサ・システムは、第１のプロセッサ・バス１０を介して第１の共用可能ユニット１３に接続される第１のプロセッサＰ１を含む。プロセッサ・バス（マイクロプロセッサ・バスとも呼ばれる）は、コンピュータ・システムのプロセッサに接続するメイン・パスである。共用可能ユニット１３または２３の一例として、共用メモリ（例えば、ランダム・アクセス・メモリ；ＲＡＭ）がある。第１のプロセッサ・バス１０は、６４ビット、２０ＭＨｚのバスである。システムは、やはりプロセッサ・バス２０を有する第２のプロセッサＰ２を含む。この第２のプロセッサ・バス２０は、６４ビット、６６ＭＨｚのバスである。（図１に楕円によって概略的に示された）２つのプロセッサ環境１８および２８の間の相互接続は、２つの双方向通信チャネル１１および２１を介して確立される。第１の双方向チャネル１１は、矢印１２によって示すように、プロセッサＰ１によってプログラム可能であり、第２の双方向チャネル２１は、矢印２２によって示すように、プロセッサＰ２によってプログラム可能である。２つの双方向通信チャネル１１および２１は、以降、コア間通信システム９と呼ばれる。
【００２９】
図２に、第１の実施形態をより詳細に示す。コア間通信システム２９は、第１および第２の外部ＤＭＡチャネル４６、４７を備える第１のＤＭＡユニット４５（ＤＭＡ１）を含む。第１のＤＭＡユニット４５は、内部ＤＭＡチャネル４９を介して第１のプロセッサ・バス１０に接続可能である。コア間通信システム２９はさらに、第１の外部ＤＭＡチャネル４７を介して第１のＤＭＡユニット４５に接続可能な第１のダブル・タンデム・ユニット（ＤＴＵ）３４（ＤＴＵ１）を含む。ＤＴＵユニット３４は、矢印３２によって示すように、第１のプロセッサＰ１によってプログラム可能であり、第１のＤＭＡユニット４５は、矢印１３２によって示すように、プロセッサＰ１によってプログラム可能である。さらに、コア間通信システム２９は、第２のＤＭＡユニット３５（ＤＭＡ２）と、第２のＤＴＵユニット４４（ＤＴＵ２）を含む。ＤＭＡユニット３５は、第１および第２の外部ＤＭＡチャネル３６、３７と、内部ＤＭＡチャネル３９とを有する。第２のＤＭＡユニット３５は、内部ＤＭＡチャネル３９を介して第２のプロセッサ・バス２０に接続される。第２のＤＭＡユニット３５と第２のＤＴＵユニット４４は、第１の外部ＤＭＡチャネル３７を介して接続可能である。ＤＴＵユニット４４は、矢印４２によって示すように、第２のプロセッサＰ２によってプログラム可能であり、第２のＤＭＡユニット３５は、矢印１４２によって示すように、第２のプロセッサＰ２によってプログラム可能である。第１の双方向通信チャネルは、第１のＤＴＵ３４によって実施され、第２の双方向通信チャネルは、第２のＤＴＵ４４によって実施される。ＤＴＵ３４、４４は各々、図２に示すように、プログラミング／構成定義の目的で、プロセッサに直接接続可能である。（図２に楕円によって概略的に示された）２つのプロセッサ環境３８および４８の間の相互接続は、双方向データ転送によって確立される。
【００３０】
１つのＤＴＵユニット、例えば、ＤＴＵ１をプログラミングすることで、プロセッサ環境４８からプロセッサ環境３８に向う方向およびその反対方向の（双方向）データ転送が、その他のどのような資源のプログラミングも必要とせずに可能となる点が、図１および図２に示す実施形態の新規な特徴である。データは、ＤＭＡ１に移送することができ、第２のプロセッサ・バス２０に接続された共用可能ユニット２３からフェッチすることができる。ＤＴＵ２は、ＤＭＡ２にデータを移送することができ、第１のプロセッサ・バス１０に接続された共用可能ユニット１３からデータをフェッチすることができる。
【００３１】
図１または図２に示すデュアルプロセッサ構成は、第２のプロセッサＰ２が、共用可能ユニット１３にアクセスすることを可能にする。共用可能ユニット２３は、プロセッサＰ１によってアクセス可能である。
【００３２】
より一般的に言えば、本発明によるマルチプロセッサ・システムの１つのプロセッサ（説明中の実施形態ではプロセッサＰ２）は、別のプロセッサ（説明中の実施形態ではプロセッサＰ１）に関連づけられた資源にアクセスすることができる。例えば、安価なリモート・メモリとの間でデータのアップロードおよびダウンロードを行うため、リモート・バスに接続された別のプロセッサの資源にアクセスすることができる。プロセッサは、例えば、コプロセッサのメモリにアクセスして、コプロセッサによって計算されたデータをフェッチすることができる。これらは、第１のプロセッサがリモート・バスに接続された資源にアクセスする状況の２つの代表的な例に過ぎない。
【００３３】
説明中の方式を用いて、様々なタイプのプロセッサを相互接続することができる。この方式によって、複数の同種のプロセッサを有するチップの実現が可能になり、または複数の異種のプロセッサを有するチップの実現さえもが可能になる。プロセッサという語は、本明細書では、半導体チップに組み込むことができ、実際にデータを用いて命令および作業を実行する任意の処理ユニットの同義語として用いられる。
【００３４】
複合命令セット・コンピューティング（ＣＩＳＣ）は、今日用いられている２つの主要なプロセッサ設計のうちの１つである。ＣＩＳＣは徐々に人気を失い、縮小命令セット・コンピューティング（ＲＩＳＣ）設計に移り変わりつつある。現在最も普及しているＣＩＳＣプロセッサはｘ８６であるが、６８ｘｘ、６５ｘｘ、およびＺ８０も利用されている。
【００３５】
現在、最速のプロセッサは、ＲＩＳＣベースである。いくつかの普及しているＲＩＳＣプロセッサが存在し、その中には、（デジタル社によって開発され、現在、デジタル／コンパック社およびサムスン社によって製造される）Ａｌｐｈａ、（アドバンストＲＩＳＣマシーンズ社によって開発され、インテル社によって所有され、上記２社およびデジタル／コンパック社によって製造される）ＡＲＭ、（ヒューレット・パッカード社によって開発された）ＰＡ−ＲＩＳＣ、（ＩＢＭ社、アップル社、モトローラ社の共同作業によって開発された）ＰｏｗｅｒＰＣ、および（Ｓｕｎ社によって開発され、現在、数多くの様々なメーカによって製造される）ＳＰＡＲＣなどが含まれる。
【００３６】
ＡＲＭは、性能を最大化するようにではなく、消費電力に対する性能を最大化するように設計されている点で、その他の大部分のプロセッサとは異なっている。したがって、ＡＲＭは、その大部分がハンドヘルド・マシンおよびＰＤＡで使用される。
【００３７】
上記のセクションで、本発明によって相互接続できるプロセッサのいくつかの例が示された。デジタル信号プロセッサ（ＤＳＰ）、周知のあらゆるプロセッサのプロセッサ・コア、および特定顧客向けプロセッサ設計にも適している。言い換えれば、説明中の概念は、大部分のマイクロプロセッサ・アーキテクチャに適用可能である。低速プロセッサ・バスを有するプロセッサと高速プロセッサ・バスを有するプロセッサとを相互接続することさえできる。
【００３８】
本出願では、中央処理装置（ＣＰＵ）、マイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、システム・コントローラ（ＳＣ）、コプロセッサ、補助プロセッサ、制御ユニットなども、プロセッサと見なされる。
【００３９】
直接メモリ・アクセス（ＤＭＡ）ユニットは、プロセッサを介することなく、データをメモリから別の装置へ渡すために設計されたユニットである。ＤＭＡは一般に、１つまたは複数の専用内部ＤＭＡチャネルと、外部周辺装置用の１つまたは複数の専用外部ＤＭＡチャネルを有する。そのような外部ＤＭＡチャネルは、関連するプロセッサによって制御される内部ＤＭＡチャネルとは反対に、リモート・プロセッサが別のプロセッサの共用可能ユニットにアクセスできるように、外部エージェントによってセットアップされる。例えば、ＤＭＡは、プロセッサ・バスに接続された装置が、プロセッサによる介入を必要とせず、メモリにアクセスできるようにする。
【００４０】
共用可能ユニットの例として、揮発性メモリ、不揮発性メモリ、周辺装置、インタフェース、入力装置、出力装置などがある。
【００４１】
本発明によるコア間通信システムは、第１のプロセッサＰ１のクロック・ドメインと第２のプロセッサＰ２のクロック・ドメインの間のデータ・フローを分断する。これは、本発明のデータ転送システムの範囲内では、一方のプロセッサの動作が、他方のプロセッサと同時かつ同等の動作を必要としないことを意味する。
【００４２】
本発明によるコア間通信システム２９を、図３に関連させて詳細に説明する。コア間通信システム２９は、第１のＤＴＵ３４（ＤＴＵ１）、第２のＤＴＵ４４（ＤＴＵ２）、第１のＤＭＡ４５（ＤＭＡ１）、および第２のＤＭＡ３５（ＤＭＡ２）を含む。説明中の実施形態では、ＤＭＡユニット３５は、２つの外部ＤＭＡチャネル・ユニット５６、５７を含む。これら２つの外部ＤＭＡチャネル・ユニット５６、５７の内部チャネル３９は、プロセッサ・バス２０に接続される。
【００４３】
第１の外部ＤＭＡチャネル・ユニット５６は、リンク３６を介して第２のＤＴＵ４４に接続される。第２の外部ＤＭＡチャネル・ユニット５７は、リンク３７を介して第１のＤＴＵ３４に接続される。第１のＤＭＡユニット４５は、２つの外部ＤＭＡチャネル・ユニット５４、５５を含む。これら２つの外部ＤＭＡチャネル・ユニット５４、５５の内部チャネル４９は、プロセッサ・バス１０に接続される。第１の外部ＤＭＡチャネル・ユニット５５は、リンク４７を介して第１のＤＴＵ３４に接続される。第２の外部ＤＭＡチャネル・ユニット５４は、リンク４６を介して第２のＤＴＵ４４に接続される。これら２つの外部ＤＭＡチャネル・ユニット５４、５５の内部チャネル４９は、プロセッサ・バス１０に接続される。
【００４４】
ＤＴＵ３４は、プロセッサ・バス１０を介してプロセッサＰ１（図３には図示せず）へのプログラミング・リンク５２を確立できるようにする第１のプロセッサ・インタフェース６０を含む。ＤＴＵ３４はさらに、直接アクセス・ユニット・コア（ＤＡＵコア）６２と、２つの外部ＤＭＡチャネル・インタフェース６１、６３を含む。外部ＤＭＡチャネル・インタフェース６１は、外部ＤＭＡチャネル・ユニット５５とのインタフェースとして機能し、外部ＤＭＡチャネル・インタフェース６３は、外部ＤＭＡチャネル・ユニット５７とのインタフェースとして機能する。
【００４５】
ＤＴＵ４４は、プロセッサ・バス２０を介してプロセッサＰ２（図３には図示せず）へのプログラミング・リンク５１を確立できるようにする第１のプロセッサ・インタフェース５０を含む。ＤＴＵ４４はさらに、直接アクセス・ユニット・コア（ＤＡＵコア）５２と、２つの外部ＤＭＡチャネル・インタフェース５１、５３を含む。外部ＤＭＡチャネル・インタフェース５１は、外部ＤＭＡチャネル・ユニット５６とのインタフェースとして機能し、外部ＤＭＡチャネル・インタフェース５３は、外部ＤＭＡチャネル・ユニット５４とのインタフェースとして機能する。
【００４６】
第１のプロセッサＰ１のクロック信号（ｃｌｏｃｋ１）は、クロック線５８を介して次のユニットに、すなわち、外部ＤＭＡチャネル・ユニット５４、外部ＤＭＡチャネル・ユニット５５、外部ＤＭＡチャネル・インタフェース５３、外部ＤＭＡチャネル・インタフェース６１、およびＤＡＵコア６２に供給される。第２のプロセッサＰ２のクロック信号（ｃｌｏｃｋ２）は、クロック線５９を介して次のユニットに、すなわち、外部ＤＭＡチャネル・ユニット５６、外部ＤＭＡチャネル・ユニット５７、外部ＤＭＡチャネル・インタフェース５１、外部ＤＭＡチャネル・インタフェース６３、およびＤＡＵコア５２に供給される。
【００４７】
プロセッサＰ１は、第１のプロセッサ・インタフェース６０を用いて第１のＤＴＵ３４を構成定義する。ＤＴＵ３４のＤＡＵコア６２は、２つの外部チャネル・インタフェース・ユニット６１、６３用の制御ロジックである。ＤＡＵコア６２はさらに、理想的には先入れ先出し（ＦＩＦＯ）によって高機能化されたデータ転送を実行する。同様に、プロセッサＰ２は、第２のプロセッサ・インタフェース５０を介して第２のＤＴＵ４４を構成定義する。どちらの場合も、第１のＤＭＡユニット４５の外部チャネルは、プロセッサ・バス１０に接続する内部ＤＭＡチャネル４９の資源を使用し、第２のＤＭＡユニット３５の外部チャネルは、プロセッサ・バス２０に接続する内部ＤＭＡチャネル３９の資源を使用する。
【００４８】
図３に示すように、コア間通信システム２９は、クロックの分断を可能にする。すべてのブロックは、プロセッサＰ１のクロックｃｌｏｃｋ１またはプロセッサＰ２のクロックｃｌｏｃｋ２のどちらかによって刻時され、一方のプロセッサの動作は、他方のプロセッサの同時かつ同等の動作を必要としない。
【００４９】
信号ｃｌｏｃｋ１とｃｌｏｃｋ２の間に位相および／または周波数上の関係が存在しない場合、ＤＡＵコア５２、６２は、適切なハンドシェイク信号を用いて安全なデータ転送を実現できるように実装することができる。このハンドシェイク信号は、ＤＡＵコア５２と外部ＤＭＡチャネル・インタフェース５３の間、およびＤＡＵコア６２と外部ＤＭＡチャネル・インタフェース６３の間で交換される。
【００５０】
外部ＤＭＡチャネル・インタフェースおよび／またはＤＡＵコアは、標準化することができる。言い換えれば、本発明による各ＤＴＵまたはＤＭＡは、同一の機能コアを含むことができる。プロセッサ・インタフェースだけは、実際に利用されるプロセッサおよび／またはプロセッサ・バスに応じて構成しなければならない。標準化によって、再利用が最大限促進され、また検証に要する労力が減少するため、開発時間の短縮がもたらされる。
【００５１】
本発明によれば、ＤＭＡユニットは、内部インタフェースを介してプロセッサ・バスに接続され、外部インタフェースを介してＤＴＵに接続される。外部インタフェースは、８ビット幅とすることができる。
【００５２】
プロセッサ・インタフェースは、当該インタフェースが含まれるＤＴＵをプログラミングするのに利用されるので、プログラミング入力（例えば、図３の入力５２）を有する。交換されるデータはＤＴＵの外部ＤＭＡチャネル・インタフェースによって処理されるので、プロセッサ・インタフェースは、プロセッサ・バスへのデータ・リンクを必要としない。双方向チャネルの設定および構成定義は、プロセッサがプロセッサ・インタフェースを介して個々のＤＴＵのＤＡＵコアをプログラミングすることによって行われる。
【００５３】
ＤＴＵ３４は、例えば、共用可能ユニット１３との間で情報（データおよび／または制御情報）を転送するため、外部ＤＭＡチャネル４７を利用する。
【００５４】
図４に、本発明の別の実施形態を示す。第１のプロセッサＰ１と、第１のプロセッサ・バス７０と、第１のプロセッサ・バス７０に接続される第１の共用可能ユニット７６を含むシステムが示されている。第２のプロセッサＰ２と、第２のプロセッサ・バス８０と、第２のプロセッサ・バス８０に接続される第２の共用可能ユニット８６も存在する。第１の双方向通信チャネルは、外部ＤＭＡチャネル８５を有する第１のＤＭＡユニット８３を介して確立可能である。第１のＤＭＡユニット８３は、第１のプロセッサ・バス７０に接続可能である。第１のＤＴＵユニット８２が設けられる。第１のＤＴＵユニット８２は、外部ＤＭＡチャネル８５を介して第１のＤＭＡユニット８３に接続可能である。ＤＴＵユニット８２は、第１のプロセッサＰ１によってプログラム可能である。プログラミングは、プロセッサ・バス７０とプログラミング・リンク８４を介して行われる。さらに、マスタ・ユニット（ｍａｓｔｅｒ２）８１が設けられる。このマスタ・ユニット８１は、第１のＤＴＵ８２と第２のプロセッサ・バス８０の間のインタフェースとして機能する。第２の双方向通信チャネルは、外部ＤＭＡチャネル７５を有する第２のＤＭＡユニット７３を介して確立可能である。第２のＤＭＡユニット７３は、第２のプロセッサ・バス８０に接続可能である。第２のＤＴＵユニット７２が設けられる。第２のＤＴＵユニット７２は、外部ＤＭＡチャネル７５を介して第２のＤＭＡユニット７３に接続可能である。ＤＴＵユニット７２は、第２のプロセッサＰ２によってプログラム可能である。プログラミングは、プロセッサ・バス８０とプログラミング・リンク７４を介して行われる。さらに、マスタ・ユニット（ｍａｓｔｅｒ１）７１が設けられる。このマスタ・ユニット７１は、第２のＤＴＵ７２と第１のプロセッサ・バス７０の間のインタフェースとして機能する。この説明におけるマスタは、プロセッサ・バス上のデータ転送を開始（および続行）できるユニットである。したがって、マスタは、バス上の何らかの調停機構（優先順位づけ機構）にアクセスする必要がある（この優先順位づけ機構は、本特許出願の一部ではない）。マスタは、プロセッサ・バス上の動作中の装置を選択するのに用いられるアドレッシング回路を有する。
【００５５】
図５に、本発明の別の実施形態を示す。２つのプロセッサ・バス９０と１００の間に２つの双方向チャネルを確立できるコア間通信システム９９が提供される。例えば、プロセッサＰ１は、デジタル信号プロセッサ（ＤＳＰ）コアとすることができ、プロセッサＰ２は、システム・コントローラ（ＳＣ）コアとすることができる。この実施形態では、例えば、図２、図３、または図４に示すＤＴＵ１およびＤＴＵ２の機能要素を含む１つの共通ＤＴＵユニット９２が存在する。この共通ＤＴＵ９２の一部は、矢印１０４に示すように、プロセッサＰ１によってプログラム可能であり、別の一部は、矢印９４に示すように、プロセッサＰ２によってプログラム可能である。このＤＴＵ９２の詳細を、図６に示す。
【００５６】
共通ＤＴＵ９２は、プロセッサＰ１（図６には図示せず）へのプログラミング・リンク１０４をプロセッサ・バス９０を介して確立できる第１のプロセッサ・インタフェース１２０を含む。ＤＴＵ９２はさらに、直接アクセス・ユニット・コア（ＤＡＵコア）１２２と、２つの外部ＤＭＡチャネル・インタフェース１２１、１２３を含む。外部ＤＭＡチャネル・インタフェース１２１は、ＤＭＡ１ユニット１０１とのインタフェースとして機能し、外部ＤＭＡチャネル・インタフェース１２３は、ＤＭＡ２ユニット９３とのインタフェースとして機能する。ＤＴＵ９２はさらに、プロセッサＰ２（図６には図示せず）へのプログラミング・リンク９４をプロセッサ・バス１００を介して確立できる第２のプロセッサ・インタフェース１１０を含む。ＤＴＵ９２はさらに、別の直接アクセス・ユニット・コア（ＤＡＵコア）１１２と、２つの外部ＤＭＡチャネル・インタフェース１１１、１１３を含む。外部ＤＭＡチャネル・インタフェース１１１は、ＤＭＡ２ユニット９３とのインタフェースとして機能し、外部ＤＭＡチャネル・インタフェース１１３は、ＤＭＡ１ユニット１０１とのインタフェースとして機能する。また、２つのクロック信号ｃｌｏｃｋ１、ｃｌｏｃｋ２がどのように供給されるかも図６に示されている。
【００５７】
ＤＴＵ９２のプログラミングは、好ましくは、２つの別々のレジスタ・セットを用いて行われ、各レジスタ・セットは、プロセッサＰ１またはＰ２の一方によって割り当てられる。こうすることで、２つのＤＡＵコア１１２、１２２によって実行される同時アクセスに伴う競合を回避することができる。しかし、プロセッサＰ１からの要求とプロセッサＰ２からの要求のどちらを優先するかを決定できる優先順位づけ方式は必要である。次の２つの方式が提案される。
【００５８】
−優先順位を指定せず、先着順の原則に基づいて動作する。すなわち、先に権利を確保したプロセッサが、他方のプロセッサよりも高い優先権をもつ。進行中の転送は常に完了し、新しい転送は待ち行列に入れられる。
【００５９】
−プロセッサＰ１がプロセッサＰ２よりも高い優先順位をもつか、またはその反対とする。優先順位が低いデータ転送が進行中の場合、より高い優先順位をもつプロセッサが発行した要求によって、その転送を中断させることができる。転送の中断は、低い優先順位をもつコアからは透過的に発生する。高い優先順位の要求が終了した後、低い優先順位の要求が再開される。高い優先順位の要求が中断されることはない。
【００６０】
本発明によれば、ＤＴＵユニットは、外部ＤＭＡチャネルを利用して、他のプロセッサのプロセッサ・バスに接続可能な共用可能ユニットとの間でデータを転送する。そのような外部ＤＭＡチャネルは、個々のプロセッサによってプログラムされる内部ＤＭＡチャネルとは反対に、その他のプロセッサの資源にアクセスするために、外部エージェントによってセットアップされる。本特許出願における外部エージェントは、ローカル・プロセッサ上の資源にアクセスするため、リモート・プロセッサによってプログラムされたコマンドである。内部ＤＭＡチャネルは、ローカル・プロセッサ自体によってプログラムされる。
【００６１】
本発明は、３以上のプロセッサを備えるシステムでも利用することができる。第３のプロセッサは、それ自体のプロセッサ・バス、第３のＤＭＡ３ユニット、および第３のＤＴＵ３を介して、例えば、第２のプロセッサのＤＭＡ２ユニットに接続することができる。こうすることで、第３のプロセッサは、第２のプロセッサに関連づけられた資源への双方向チャネルを確立することができる。
【００６２】
本発明のさらに別の実施形態では、２以上のプロセッサと本発明によるプロセッサ間通信用の通信チャネルは、カスタマイズされた特定用途向け集積回路（ＡＳＩＣ）に組み込まれる。
【００６３】
本明細書で提示され、特許請求の範囲で特許請求されるアーキテクチャの利点は、このアーキテクチャが複数の異種のプロセッサをサポートする点にある。本発明の方式は、一般的なマルチコア通信のニーズに適するように拡張することができる。本発明によって、各プロセッサ用のバス・マスタの数を減らすことができるが、それは、潜在的に利用可能なＤＭＡユニットをこの目的のために使用することができるからである。再利用の概念とそのための設計は、もう一つの利点である。その他の様々な利点は、本発明の様々な実施形態に関連してすでに述べた。
【００６４】
提案されたアーキテクチャは、対称的であり、大部分のマイクロプロセッサ・アーキテクチャに適用可能である。提案されたアーキテクチャは、マルチコア・アーキテクチャに拡張することができる。すなわち、コアの数に左右されない。
【００６５】
本発明は、ＰＤＡ、ハンドヘルド・コンピュータ、パーム・トップ・コンピュータなどのコンピューティング装置での利用によく適している。本発明はまた、セルラ電話（例えば、ＧＳＭ電話）、コードレス電話（例えば、ＤＥＣＴ電話）などでの利用にも適している。本明細書で提案したアーキテクチャは、上記の装置用のチップもしくはチップ・セット、またはＢｌｕｅｔｏｏｔｈアプリケーション用のチップで利用することができる。
【００６６】
説明を明瞭にするため、別々の実施形態として説明した本発明の様々な特徴は、組み合わせて単一の実施形態としても実現できることは理解されよう。その反対に、説明を簡略にするため、単一の実施形態として説明した本発明の様々な特徴は、別々に、または適切な副組み合わせとして実現することもできる。
【００６７】
図面および明細書で、本発明の好ましい実施形態を提示した。その際、具体的な術語を使用したが、上述の説明では、術語は総称的かつ説明的な意味でのみ使用されており、限定的な目的では使用されていない。
【図面の簡単な説明】
【００６８】
【図１】本発明の第１の実施形態によるデュアルプロセッサ・コンピュータ・システムの概略ブロック図である。
【図２】本発明によるプロセッサ間通信システムの概略図である。
【図３】図２のプロセッサ間通信システムの詳細ブロック図である。
【図４】本発明の別の実施形態によるデュアルプロセッサ・コンピュータ・システムの概略ブロック図である。
【図５】本発明の別の実施形態によるデュアルプロセッサ・コンピュータ・システムの概略ブロック図である。
【図６】図５のＤＴＵユニットの詳細ブロック図である。
【図１】
2005534094.tif 000003
【図２】
2005534094.tif 000004
【図３】
2005534094.tif 000005
【図４】
2005534094.tif 000006
【図５】
2005534094.tif 000007
【図６】
2005534094.tif 000008
【国際調査報告】
2005534094.tif 000009
2005534094.tif 000010
2005534094.tif 000011