(57)【特許請求の範囲】
【請求項１】
マルチプロセッサ配列であって、このマルチプロセッサ配列が
ａ）第一のクロック領域内で動作する第一のプロセッサシャドウレジスタユニットを備え、この第一のプロセッサシャドウレジスタユニットが
i）第一のプロセッサ、および
ii）データを送信できるように前記第一のプロセッサに接続された第一のシャドウレジスタユニットを備え、このマルチプロセッサ配列がさらに
ｂ）少なくとも一つの第二のプロセッサシャドウレジスタユニットを備え、この第二のプロセッサシャドウレジスタユニットが
i）対応する第二のクロック領域内で動作し、
ii）第二のプロセッサ、および
iii）データを送信できるように前記第二のプロセッサに接続された第二のシャドウレジスタユニットを備え、このマルチプロセッサ配列がさらに
ｃ）周辺クロック領域内で動作する周辺ユニットを備え、この周辺ユニットが
i）データを送信できるように前記第一のシャドウレジスタユニットと前記少なくとも一つの第二のシャドウレジスタユニットに接続されたマルチプレクサユニット、および
ii）レジスタユニットを備え、前記第一のシャドウレジスタユニットと前記少なくとも一つの第二のシャドウレジスタユニットおよびこのレジスタユニットの構造が機能の点で同一であり、この周辺ユニットがさらに
iii）データを送信するために前記マルチプレクサユニットを前記第一のシャドウレジスタユニットあるいは前記少なくとも一つの第二のシャドウレジスタユニットに割当てるための優先ユニットを備え、この優先ユニットがデータを送信できるように前記第一のシャドウレジスタユニットおよび前記少なくとも一つの第二のシャドウレジスタユニットに接続されることを特徴とするマルチプロセッサ配列。
【請求項２】
前記第一のシャドウレジスタユニット、前記少なくとも一つの第二のシャドウレジスタユニットおよび前記レジスタユニットが状態フラッグ並びに制御／データレジスタを備えることを特徴とする請求項１記載のマルチプロセッサ配列。
【請求項３】
前記第一のクロック領域および／あるいは前記少なくとも一つの第二のクロック領域が複数のプロセッサを備えることを特徴とする請求項１あるいは２記載のマルチプロセッサ配列。
【請求項４】
前記第一のシャドウレジスタユニットおよび／あるいは前記少なくとも一つの第二のシャドウレジスタユニットからデータを読み出すために、前記マルチプレクサユニットがこれらに読み出し方向に接続されることを特徴とする請求項１乃至３のいずれかに記載のマルチプロセッサ配列。
【請求項５】
前記第一のシャドウレジスタユニットおよび／あるいは前記少なくとも一つの第二のシャドウレジスタユニットから前記優先ユニットに送られるアクセスに対するリクエストが１ビット信号として符号化されることを特徴とする請求項１乃至４のいずれかに記載のマルチプロセッサ配列。
【請求項６】
前記優先ユニットが、前記第一のシャドウレジスタユニットあるいは前記少なくとも一つの第二のシャドウレジスタユニットに優先を"ファーストカム・ファーストサーブド（来たもの順に扱う）"という原理に従って付与することを特徴とする請求項１乃至５のいずれかに記載のマルチプロセッサ配列。
【請求項７】
前記優先ユニットが、前記第一のシャドウレジスタユニットあるいは前記少なくとも一つの第二のシャドウレジスタユニットに優先を"全てのシャドウレジスタユニットが順番に扱われる"という原理に従って付与することを特徴とする請求項１乃至５のいずれかに記載のマルチプロセッサ配列。
【請求項８】
前記優先ユニットが、前記第一のシャドウレジスタユニットあるいは前記少なくとも一つの第二のシャドウレジスタユニットに優先を"各シャドウレジスタユニットに周辺ユニットにアクセスできる時間のある与えられたパーセントを統計的に割当てられる"という原理に従って付与することを特徴とする請求項１乃至５のいずれかに記載のマルチプロセッサ配列。
【請求項９】
前記周辺ユニットが赤外インタフェース、UARTインタフェースもしくはUSBインタフェースとして構成されることを特徴とする請求項１乃至８のいずれかに記載のマルチプロセッサ配列。
【請求項１０】
前記第一のシャドウレジスタユニットおよび／あるいは前記少なくとも一つの第二のシャドウレジスタユニットが前記関連するプロセッサに割込みを介して接続されることを特徴とする請求項１乃至９のいずれかに記載のマルチプロセッサ配列。
【請求項１１】
請求項１乃至１０のいずれかに記載のマルチプロセッサ配列を用いる通信端末。
【請求項１２】
請求項１乃至１０のいずれかに記載のマルチプロセッサ配列を用いるポータブルデバイス。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のプロセッサが一つの共通の周辺ユニットに非同期的にアクセスすることができるマルチプロセッサ配列に関する。
【０００２】
【従来の技術】
複数のプロセッサが一つの共通の周辺ユニットにアクセスするように配列される場合これらプロセッサはこの周辺ユニットにバスを介して接続されることが知られている。バスを通じてのアクセスにはプロセッサ間の調停（アービトレーション）が必要となる。このようなアレンジメント（構成／方式）の実現は複雑となり、この動作はあまり効率的でない。とりわけ、アクセスに対して要求される時間はもはや決定論的（予測可能）ではなくなる。
【０００３】
このようなマルチプロセッサ配列は通信端末内で用いられる。複数のデジタル信号プロセッサおよびベースバンドコントローラが異なるタスクを遂行するために設けられる。これら通信端末は特にポータブルデバイスとして製造される。現存のプロセッサの能力（キャパシティ）を効率的に使用することは、各プロセッサがプロセッサの能力の使用のみには左右されない自身の電力消費を持つために非常に重要である。
【０００４】
【発明が解決しようとする課題】
本発明の一つの目的は複数のプロセッサが一つの共通の周辺ユニットに可能な限り簡単にアクセスできるマルチプロセッサ配列を提供することにある。
【０００５】
【課題を解決するための手段】
上述の目的が請求項１の特徴を記載する部分において開示されるやり方で達成される。本発明の基本的な概念は、問題のプロセッサのクロック領域内にシャドウレジスタユニットを設けることにあり；このシャドウレジスタユニットは周辺ユニットのレジスタユニットと同一となるように構成される。結果として、プロセッサから周辺ユニットへの問題ののデータの送信を、他のクロック領域との同期を必要とすることなく、さらにどのような調停（アービトレーション）も必要とすることもなく、行なうことが可能となる。
【０００６】
本発明の様々な他の好ましい実施例が従属クレームにおいて開示される。
【０００７】
上述の目的がマルチプロセッサ配列を用いる通信端末として達成される。現存のプロセッサおよび周辺コンポーネントの能力を効率的に用いることで、同一あるいはそれ以上の性能を持つシステムをより低い製造コストにて実現することが可能となる。他方においては、現存のコンポーネントが効率的に使用され、このため追加のプロセッサあるいは周辺コンポーネントの能力が不要となり、これらに対して必要とされる電力が節約されるために、電力消費が削減される。
【０００８】
さらに上述の目的がポータブルデバイスとしても達成される。これらマルチプロセッサ配列はモービル、PDAおよびMP3プレーヤなどの電子デバイス内に広く用いることができる。
【０００９】
本発明の追加の特徴および詳細が以下の実施例の説明を図面と照らして読むことで一層明白となるものである。
【００１０】
【発明の実施の形態】
図１に示すように、マルチプロセッサ配列は、第一のクロック領域、つまり、クロック発生器領域内で動作し、第一のプロセッサ２と第一のシャドウレジスタユニット３を備える第一のプロセッサシャドウレジスタユニット１を含む。シャドウレジスタユニット３自体は、状態フラッグ４並びに制御／データレジスタ５から成り、これらはデータ伝送ライン６および７を介してプロセッサ２に接続される。状態フラッグ４はプロセッサ２に向けて割り込み８を発行する能力を持つ。
【００１１】
第二のクロック領域内で動作し、第一のプロセッサシャドウレジスタユニット１と類似する構造を持つ第二のプロセッサシャドウレジスタユニット９も設けられる。第二のプロセッサシャドウレジスタユニット９は、プロセッサ１０および状態フラッグ１２と制御／データレジスタ１３を備え、これらはデータ伝送ライン１４および１５を介してプロセッサ１０に接続される。状態フラッグ１２は割込み１６を介してプロセッサ１０に接続される。類似の構造を持つ一連のさらなるプロセッサシャドウレジスタユニットを設けることもできる。さらに、複数のプロセッサおよび関連するプロセッサシャドウレジスタユニットを同一のクロック領域内に設けることもできる。明らかに、マルチプロセッサ配列にたった一つのプロセッサシャドウレジスタユニットのみを設けることもできる。
【００１２】
マルチプロセッサ配列は、さらに、周辺クロック領域内で動作し、マルチプレクサユニット１８、優先ユニット１９、並びにレジスタユニット２０を備える周辺ユニット１７を含む。周辺ユニット１７は、赤外インタフェース、UART（Universal Asynchronous Receiver Transmitter）インタフェース、あるいはUSB（Universal Serial Bus）のいずれであっても構わない。マルチプレクサユニット１８は、それぞれ、データ伝送ライン２１および２２を介して状態フラッグ４および制御／データレジスタ５に接続される。さらに、マルチプレクサユニット１８は、それぞれ、データ伝送ライン２３および２４を介して状態フラッグ１２および制御／データレジスタ１３に接続される。さらなるプロセッサシャドウレジスタユニットが設けられる場合は、マルチプレクサユニット１８は、さらなるデータ伝送ラインを介して対応するシャドウレジスタにも接続される。レジスタユニット２０は、状態レジスタ２５並びに制御／データレジスタ２６を備え、これらは、それぞれ、データ伝送ライン２７および２８を介してマルチプレクサユニット１８に接続される。シャドウレジスタユニット３および１１、並びに任意のさらなるシャドウレジスタユニットは、レジスタユニット２０のそれと類似する構造を有する。これら構造は少なくとも機能的には同一とされる。優先ユニット１９はデータ伝送ライン２９を介してマルチプレクサユニット１８に接続され、これに適当な制御信号を加える。状態フラッグ４および１２は、それぞれ、リクエストライン３０および３１を介して優先ユニット１９に接続される。
【００１３】
以下ではマルチプロセッサ配列の動作を詳細に説明する。プロセッサ２が周辺ユニット１７を用いること、およびこの目的でレジスタユニット２０に書き込むことを希望する場合、プロセッサ２は、最初、自身のクロック領域内に存在する同一のシャドウレジスタ３内に書込を行なう。シャドウレジスタ３への書込の際は、シャドウレジスタ３は第一のプロセッサ２と同一のクロック領域内に位置するために同期問題が発生することはない。さらに、他のプロセッサと衝突することもない。シャドウレジスタ３に書込みが行なわれると、プロセッサ２のために周辺ユニットとの通信は終端される。プロセッサ２は、割込み８を介して可能な結果あるいは周辺ユニット１７に転送されるべきタスクの終端を通知される。
【００１４】
プロセッサ２と同時に他のプロセッサ、例えば、プロセッサ１０も類似のリクエストをそれらの関連するシャドウレジスタユニット１１に送ることができる。こうして、プロセッサ２と１０は、互いに独立に、かつ、互いに非同期的に動作する。シャドウレジスタユニット３および１１へのアクセスは、それぞれ、関連するプロセッサ２および１０によって個別に制御される。
【００１５】
シャドウレジスタユニット３内で変更が行なわれると、このことが非同期リクエストライン３０を介して優先ユニット１９に通知される。優先ユニット１９は、後に詳細に説明する優先基準に基づいて、どのリクエストを最初に扱うべきかを決定する。プロセッサ２に優先が与えられた場合、優先ユニット１９は、データ伝送ライン２９を介してマルチプレクサユニット１８を制御し、マルチプレクサユニット１８によってシャドウレジスタ３の内容がライン２１および２２を介して読み出されようにする。シャドウレジスタユニット３内の静的データは読み出し動作の際に読み出されるために、プロセッサシャドウレジスタユニット１の第一のクロック領域と周辺クロック領域とを互いに同期する必要はない。データの伝送は、こうして非同期的に行なわれる。シャドウレジスタユニット３から読み出されたデータは、レジスタユニット２０内にコピーされる。周辺ユニット１７が次に自身に割当てられたタスクを実行する。この場合は、例えば、データが赤外インタフェースを介して環境内に出力される。この間、優先ユニット１９は他のリクエストは扱わない。周辺ユニット１７が自身のタスクを完結すると、対応するデータ結果および状態情報が対応するシャドウレジスタユニット３に送り返される。周辺ユニット１７は、次に再びアイドル状態となり、優先ユニット１９は次のリクエストを選択することが可能となる。周辺ユニット１７からのデータ結果および状態情報がシャドウレジスタユニット３内にコピーされると、直ちに割込みが発行され、プロセッサ２にそのリクエストが完結したことが通知される。
【００１６】
リクエストライン３０および３１を介して伝送されるリクエスト信号は１ビット信号として符号化される。こうすることで、長所として、シャドウレジスタユニット３あるいは１１から優先ユニット１９にリクエスト信号を送信する際の様々なクロック領域間の同期が不要となり、このためリクエスト信号を非同期に送信することが可能となる。
【００１７】
優先ユニット１９は、様々なプロセッサ２および１０に様々なやり方にて優先を割当てることができる。一つのやり方においては、"先に来たものが先に扱われる（first-come,first served）" という原理が用いられ、プロセッサから来る次のリクエストは次に処理される。さらに、プロセッサは、それらの正しい順番に処理することもできる。例えば、プロセッサ２を処理した後に、プロセッサ１０を処理し、このやり方で、周辺ユニット１７に接続された他の全てのプロセッサを順に処理することもできる。さらに、これらプロセッサに異なる優先を割当てることもできる。説明のケースにおいては、例えば、プロセッサ２は、常に、プロセッサ１０より優先される。これら優先は統計的に分配することもできる。例えば、60%の時間をプロセッサ２に割当て、40%の時間をプロセッサ１０に割当てることもできる。さらに、新たな割当ては、各アクセスの前に行なうことも、割当ての解放が判明した後に初めて行なうこともできる。後者の場合はブロック処理が可能となる。タスクが完結した後の割込みを発行するやり方の代替として、状態を関連するプロセッサを介して定期的にテストすることもでき、このやり方はポーリングとして知られている。
【００１８】
本発明のマルチプロセッサ配列は、プロセッサが互いに衝突することなく常に共通の周辺ユニットにアクセスできるという長所を持つ。こうして、時間のかかるバスアービトレーション（調停）を回避し、周辺ユニットの効率が最大化することができる。個々のプロセッサおよび周辺ユニットに対するクロックの供給は別個に行なわれる。
【図面の簡単な説明】
【図１】本発明によるマルチプロセッサ配列を線図にて示す。
【符号の説明】
１  第一のプロセッサシャドウレジスタユニット
２  第一のプロセッサ
３  第一のシャドウレジスタユニット
４  状態フラッグ
５  制御／データレジスタ
６、７  データ伝送ライン
８  割込み
９  第二のプロセッサシャドウレジスタユニット
１０  プロセッサ
１１  第二のシャドウレジスタユニット
１２  状態フラッグ
１３  制御／データレジスタ
１４、１５  データ伝送ライン
１６  割込み
１７  周辺ユニット
１８  マルチプレクサユニット
１９  優先ユニット
２０  レジスタユニット
２１、２２  データ伝送ライン
２３、２４  データ伝送ライン
２５  状態レジスタ
２６  制御／データレジスタ
２７、２８  データ伝送ライン
２９  データ伝送ライン
３０、３１  リクエストライン
【図１】
0004391050.tif 000002