(57)【特許請求の範囲】
【請求項１】
イベント信号によってトリガされるとともにイベント信号を発信するプリミティブによってつながれた複数のアクティビティを含む統一モデリング言語アクティビティ図を実装するソフトウェアを実行するのに適したコンピュータであって、
ａ）互いに並列に処理を行うことが可能であり、それぞれが前記アクティビティの少なくとも１つを実施する能力を有する複数の処理要素と、
ｂ）前記プリミティブを実装するように構成されるシーケンサであって、
ｂ１）プリミティブをトリガするために必要な１つ又は複数の前記イベント信号を受信したことを検出するための検出手段と、
ｂ２）プリミティブの前記トリガの検出に対して、
ｂ２ａ）前記アクティビティ図内において、前記トリガされたプリミティブからのイベント信号の受け手として示される処理要素に、アクティビティを実施するように指示すること、または
ｂ２ｂ）前記検出手段に別のプリミティブに対するイベント信号を送信すること、
の少なくともいずれかの応答を与えることによって応答するように構成される信号発信手段と、
を含むシーケンサと、
を備え、
ｃ）前記検出手段は、複数の検出要素を含み、
ｄ）各検出要素は、各プリミティブをトリガするために必要な１つ又は複数の前記イベント信号を検出すること、及び各プリミティブがトリガされたことを前記信号発信手段に通知することが可能であり、
ｅ）前記コンピュータは、第１のタスクの実行のために第１のグループの検出要素を予約し、前記第１のタスクと時間的に重なる第２のタスクの実行のために、第１のグループと重複しない第２のグループの検出要素を予約するように構成される、
コンピュータ。
【請求項２】
請求項１に記載のコンピュータであって、
前記第１のグループの検出要素がトリガされたときに前記信号発信手段によって実施されるべき命令を第１の領域内に保持し、前記第２のグループの検出要素がトリガされたときに前記信号発信手段によって実施されるべき命令を第１の領域と重複しない第２の領域に保持するように構成されるメモリ手段をさらに備える、
コンピュータ。
【請求項３】
請求項２に記載のコンピュータであって、
前記信号発信手段は、前記第１のグループ及び前記第２のグループのいずれかのプリミティブがトリガされたことを示す指示に対して、前記プリミティブにリンクされた第１の領域及び第２の領域の対応するいずれかにある一連の命令であり、前記応答をコアに行わせる一連の命令を実施することによって応答する処理コアを含む、
コンピュータ。
【請求項４】
請求項１から３のいずれか１項に記載のコンピュータであって、
各検出要素は、その対応するプリミティブのトリガのために必要な１つ又は複数の前記イベント信号をカウントするためのカウンタを含む、
コンピュータ。
【請求項５】
請求項１から４のいずれか１項に記載のコンピュータであって、
少なくとも１つの検出要素は、そのトリガ後に別のプリミティブを実装するように前記シーケンサによって再構成可能である、
コンピュータ。
【請求項６】
請求項１から５のいずれか１項に記載のコンピュータであって、
前記処理要素は、ベクトル信号プロセッサ、中央演算処理装置、ビタビ加速器、ターボ復号器、外部の無線送受信器へのデジタルインターフェース、及びダイレクトメモリアクセスコントローラのうちの２つ以上を含む、
コンピュータ。
【請求項７】
請求項１から６のいずれか１項に記載のコンピュータであって、
前記第１のタスク及び前記第２のタスクは、非同期である、
コンピュータ。
【請求項８】
請求項１から７のいずれか１項に記載のコンピュータであって、
前記第１のタスクは第１のアクティビティ図に関連付けられ、前記第２のタスクは第２のアクティビティ図に関連付けられる、
コンピュータ。
【請求項９】
請求項１から８のいずれか１項に記載のコンピュータを備える無線通信装置であって、
前記第１のタスク及び前記第２のタスクによって処理されるべき無線信号を受信するための少なくとも１つの無線周波数処理チェーンを備える、
無線通信装置。
【請求項１０】
請求項９に記載の無線通信装置であって、
前記第１のタスク及び前記第２のタスクのそれぞれ用に、対応する無線周波数処理チェーンがある、
無線通信装置。
【請求項１１】
請求項９又は１０のいずれかに記載の無線通信装置であって、
前記無線通信装置は、携帯電話、スマートフォン、又はタブレット型コンピュータのうちの１つである、無線通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタルデータ処理システムに関するものである。
【背景技術】
【０００２】
本出願の出願者らは、ＧＢ２４８２１４１Ａの公開番号で公開され、ＣＮ１０２３３９２２３Ａ及びＵＳ２０１２／００２３３１７Ａ１の公開番号でそれぞれ公開された中国及び米国の同等出願を有する英国特許出願も出願した。ＧＢ２４８２１４１Ａの教示内容の多くは、参照を容易にするために以下で再掲される。
【０００３】
システムの記述には、統一モデリング言語（ＵＭＬ）を使用することができる。ＵＭＬの一般的用途は、ソフトウェアによって実装されるシステムの記述を提供することである。従来は、アナリストが、ソフトウェアでの実装を提案されたシステムを調査し、そのシステムのＵＭＬ記述を作成する。次いで、プログラマが、アナリストによって提供されたＵＭＬ記述をもとに作業し、ソフトウェアを実行する予定の特定のコンピューティングハードウェアアーキテクチャの制約にしたがいながら、システムを実装するソフトウェアを作成する。このような制約の幾つかの例として、コンピューティングハードウェア内のメモリの量や、コンピューティングハードウェア内のプロセッサの数及び処理速度が挙げられる。
【０００４】
ＵＭＬは、システムを記述するための一連の方法を提供する。このような方法の１つが、アクティビティ図の使用である。アクティビティ図は、アクティビティの観点やアクティビティ間の制御フローの観点からシステムを記述する。制御フローは、ひとそろいのプリミティブによって表され、これらのプリミティブは、ここで、図１〜６を参照にして説明される。
【０００５】
図１は、フォーク（分岐）ノードと呼ばれるアクティビティ図プリミティブを示している。ここで、フォークノード１０は、アクティビティ１２、１４、及び１６の間の関係を記述している。フォークノード１０は、アクティビティ１２の完了時にアクティビティ１４及び１６が同時に開始されることを示している。
【０００６】
図２は、ジョイン（合流）ノードと呼ばれるアクティビティ図プリミティブを示している。ここで、ジョインノード１８は、アクティビティ２０、２２、及び２４の間の関係を記述している。ジョインノード１８は、アクティビティ２０及び２２の両方の完了時にアクティビティ２４が開始されることを示している。したがって、ジョインノードプリミティブは、或るアクティビティが開始することを複数のその他のアクティビティの終了後に初めて許可するという意味で、同期化の効果を有する。
【０００７】
図３は、デシジョン（判断）ノードと呼ばれるアクティビティ図プリミティブを示している。ここで、デシジョンノード２６は、アクティビティ２８、３０、及び３２の間の関係を記述している。デシジョンノード２６は、アクティビティ２８の完了時にアクティビティ３０及び３２のいずれか１つのみが開始されることを示している。アクティビティ３０及び３２のいずれが開始されるかは、デシジョンノード２６に関連付けられたロジック条件によって判断される。例えば、システムの特定のパラメータが何らかの所定値を上回るか又は下回るかである。
【０００８】
図４は、マージ（結合）ノードと呼ばれるアクティビティ図プリミティブを示している。ここで、マージノード３４は、アクティビティ３６、３８、及び４０の間の関係を記述
している。マージノード３４は、アクティビティ３６及び３８のいずれか１つが完了したらすぐに開始される。
【０００９】
図５は、イニシャル（初期）ノードと呼ばれるアクティビティ図プリミティブを示している。イニシャルノードは、システムの始まりを示している。ここで、イニシャルノード４２は、アクティビティ４４の実行からシステムが始まることを示している。
【００１０】
図６は、ファイナル（最終）ノードと呼ばれるアクティビティ図プリミティブを示している。ファイナルノードは、システムの終わりを示している。ここで、ファイナルノード４６は、システムがアクティビティ４８の実行後に終わることを示している。
【００１１】
これまでのところ、プリミティブがつなぐアクティビティの性質に関して何も語られていない。これらのアクティビティは、ほぼ無限に多様な性質を有する。アクティビティは、多くの場合、それ自身がアクティビティ図によって記述されうるという意味で、複雑である。この文書は、無線通信を行うのに適したマルチプロセッサシステムを論じる。この文脈におけるアクティビティの例は、以下の通りである。
・データを或る場所から別の場所に移すためのダイレクトメモリアクセス（ＤＭＡ）手続きを行う。
・デジタル時間領域信号に対して高速フーリエ変換（ＦＦＴ）を実施する。
・２つのデジタル時間領域信号の相互相関を実施する。
・データシーケンスについての巡回冗長チェックサム（ＣＲＣ）を計算する。
【００１２】
図７は、デシジョンノードに関連付けられた信号フローを例示している。この図は、プリミティブの、入力５０並びに出力５２及び５４を示している。並べて示されるのは、３つのプロットである。プロット５６は、入力５０上を伝わる信号を示しており、プロット５８は、出力５２上を伝わる信号を示しており、プロット６０は、出力５４上を伝わる信号を示している。３つの全てのプロットの時間スケールは、６２において任意単位で示されている（図８、９、及び１０の時間スケールにおいても同様の取り決めを使用している）。プロット５６に示されるように、第２の時間間隔中に、入力５０上にイベント信号が到着する。プリミティブは、第３の期間中に、プリミティブに関連付けられたロジック条件の状態によって示されるように出力５２及び５４の一方にイベント信号を出力することによって応答する。この場合は、ロジック条件の状態は、イベント信号を出力５２上に発信させ、出力５４上には何も送信されない。
【００１３】
図８は、マージノードに関連付けられた信号フローを例示している。図は、プリミティブの、入力６４及び６６並びに出力６８を示している。並べて示されるのは、３つのプロットである。プロット７０は、入力６４上を伝わる信号を示しており、プロット７２は、入力６６上を伝わる信号を示しており、プロット７４は、出力６８上を伝わる信号を示している。プロット７０に示されるように、第２の時間間隔中に、入力６４上にイベント信号が到着する。プロット７２に示されるように、第６の期間中に、入力６６上にイベント信号が到着する。プロット７４に示されるように、プリミティブは、第３の期間中に、その出力６８にイベント信号を出力することによって、自身が受信した第１のイベント信号に応答する。プリミティブは、入力６６上に到着する遅い方のイベント信号に応答してその出力６８上に更なるイベント信号を送信することはない。
【００１４】
図９は、フォークノードに関連付けられた信号フローを例示している。図は、プリミティブの、入力７６並びに出力７８及び８０を示している。並べて示されるのは、３つのプロットである。プロット８２は、入力７６上を伝わる信号を示しており、プロット８４は、出力７８上を伝わる信号を示しており、プロット８６は、出力８０上を伝わる信号を示している。プロット８２に示されるように、第２の時間間隔中に、入力７６上にイベント
信号が到着する。プリミティブは、第３の期間中に、その出力７８及び８０の両方にイベント信号を出力することによって応答する。
【００１５】
図１０は、ジョインノードに関連付けられた信号フローを例示している。図は、プリミティブの、入力８８及び９０並びに出力９２を示している。並べて示されるのは、３つのプロットである。プロット９４は、入力８８上を伝わる信号を示しており、プロット９６は、入力９０上を伝わる信号を示しており、プロット９８は、出力９２上を伝わる信号を示している。プロット９４に示されるように、第２の時間間隔中に、入力８８上にイベント信号が到着する。プロット９６に示されるように、第６の期間中に、入力９０上にイベント信号が到着する。プロット９８に示されるように、プリミティブは、その入力８８及び９０のそれぞれがイベント信号を受信した後に初めて応答し、該応答は、第７の期間中における出力９２上へのイベント信号の発信である。
【００１６】
図７〜１０の信号ベースの記述に共通する特徴は、いずれの場合も、特定の数のイベント信号が受信されるまで制御フローをブロックするプリミティブによってＵＭＬアクティビティ図プリミティブが実装可能であることにある。したがって、図１１に示されるようにバリア１０２、すなわち、（それぞれ異なるソースからくる）適切な数のイベント信号１００を受けた後に破られて、１つ以上のイベント信号１０５の（それぞれの対応する宛先への）発行を引き起こす何らかの命令１０４の実行をトリガするバリア１０２として、プリミティブを表すことが可能である。
【００１７】
図１２は、図１１で与えられた表現の簡易フォーマットを示しており、ここでは、バリアは、ブロック１０６によって表される。命令は、ブロック１０８によって表される。命令１０８の実行をトリガするためにバリア１０６に達しなければならないイベント信号の数は、ブロック１１０内の番号によって与えられる。この文書では、これ以降、ＵＭＬアクティビティ図プリミティブを表すための図１２に与えられた簡易表記をバリア−カウンタフォーマット（ＢＣＦ：Barrier-counter format）と称し、命令が実施される前にバリアに達しなければならないイベント信号の数を示す番号をカウントダウン値と称する。なお、もし、カウントダウン値がゼロならば、引き続きイベント信号が受信されても何のアクションも生じないことに留意せよ。
【００１８】
図１３〜１９は、ＵＭＬアクティビティ図においてＢＣＦがどのように使用可能であるかを説明している。各ＵＭＬプリミティブは、ＢＣＦ表現にマッピングする（対応付ける）ことができる。このマッピングは、高レベル表現から実装用表現に進むものであり、専用ソフトウェアコンパイラによって一般的に実施可能なタスクである。
【００１９】
図１３は、ＢＣＦ要素を使用してＵＭＬフォークプリミティブがどのように実装可能であるかを例示している。通常のＵＭＬアクティビティ図ヴァージョンのプリミティブが図の左側にあり、ＢＣＦヴァージョンが図の右側にある。カウントダウン値は１に設定されており、バリア１１２が１つのイベント信号を受信した時点で命令１１４が実施される。命令１１４は、それぞれ異なる宛先に２つのイベント信号が発信されるように定めており、これにより例えば、２つの同時アクティビティがトリガされる。
【００２０】
図１４は、ジョインプリミティブを実装するためにＢＣＦがどのように使用可能であるかを例示している。通常のＵＭＬアクティビティ図ヴァージョンのプリミティブが図の左側にあり、ＢＣＦヴァージョンが図の右側にある。このときは、カウントダウン値は２に設定されており、バリア１１６が２つのイベント信号を受信した時点で命令１１８が実施される。命令１１８は、特定の宛先に１つのイベント信号が発信されるように定めている。
【００２１】
図１５は、図１４に示すＢＣＦヴァージョンのジョインプリミティブが、特定の条件下でどのように誤動作しうるかを例示している。図１５は、ＢＣＦプリミティブの一方の入力１２０上で２つのイベント信号が受信され、もう一方の入力１２２上ではイベント信号が受信されない状況を示している。これは、例えば、イベント信号を定期的に送出するタイマに入力１２０が接続されている場合に生じることがある。このような状況では、ＢＣＦプリミティブ１２４は、ジョインプリミティブがそうすべきでないにもかかわらず、イベント信号を発信する。ＢＣＦプリミティブ１２４は、そのバリアに達するイベント信号が共通の発信元を有するかどうかを区別することができないゆえに誤動作する。
【００２２】
図１６は、図１５に提示された誤動作のシナリオを回避するために、図１４及び図１５に示されたジョインプリミティブがどのように変更可能であるかを例示している。図１６では、２つの更なるＢＣＦプリミティブ１２６及び１２８が追加され、それぞれ、ＢＣＦプリミティブ１２４と、入力１２０及び１２２のうちの対応する一方との間に配されている。ＢＣＦプリミティブ１２６及び１２８が、それぞれカウントダウン値１を与えられている一方で、ＢＣＦプリミティブ１２４のカウントダウン値は、２のままである。この変更を適用されると、ＢＣＦプリミティブ１２４は、入力１２０及び１２２のそれぞれからイベント信号を受信した後に初めてイベント信号を発信し、これは、ジョインプリミティブの正しい振る舞いである。
【００２３】
図１７は、マージプリミティブを実装するためにＢＣＦがどのように使用可能であるかを例示している。通常のＵＭＬアクティビティ図ヴァージョンのプリミティブが図の左側にあり、ＢＣＦヴァージョンが図の右側にある。カウントダウン値は１に設定され、バリア１３２が１つのイベント信号を受信した時点で、プリミティブのどの入力が信号を伝えるかにかかわらず、命令１３０が実施される。
【００２４】
図１８は、デシジョンプリミティブを実装するためにＢＣＦがどのように使用可能であるかを例示している。通常のＵＭＬアクティビティ図ヴァージョンのプリミティブが図の左側にあり、ＢＣＦヴァージョンが図の右側にある。カウントダウン値は１に設定され、バリア１３６が１つのイベント信号を受信しただけの時点で命令１３４が実施される。命令１３４は、特定の宛先に１つのイベント信号が発信されるように定めており、その宛先は、命令１３４のなかで指定されるロジック条件の状態によって決定される。
【００２５】
図１９は、１つのロジック条件を用いて、２つ以上のデシジョンプリミティブインスタンスを制御可能であることを示すものである。
【００２６】
図２０は、マルチプロセッサコンピュータ１３８を示している。発明を説明するのに役立つ要素のみが示されており、コンピュータアーキテクチャ設計の分野の当業者ならば、コンピュータ１３８が実際は、図２０に示されるよりも多くの更なる構成要素及び要素間接続を含むことがわかるであろう。図に示されるように、コンピュータ１３８は、中央演算処理装置（ＣＰＵ）１４０と、幾つかのベクトル信号プロセッサ１４２と、幾つかのＤＭＡコントローラ１４４と、割り込みコントローラ１４６と、タイマ１４８と、メモリ１５０と、シーケンサ１５２とを含む。これらの要素は、互いに通信し合うことができるように、いずれも、バス１５４につながれている。更に、割り込みコントローラ１４６は、接続１５６によってＣＰＵ１４０にもつながれており、該接続を通じてＣＰＵに割り込みを送信することができる。コンピュータ１３８のアーキテクチャは、例えば、ＤＭＡコントローラ１４４の数、ベクトル信号プロセッサ１４２の数、及びメモリ１５０の大きさがいずれも可変であり、更なるタイマが追加されてもよいという点で、スケーラブル（拡張可能）である。
【００２７】
ＣＰＵ１４０は、コンピュータのオペレーティングシステムを実行する。例えば、ＣＰ
Ｕ１４０は、ＡＲＭ  ＲＩＳＣプロセッサである。ＶＳＰ１４２は、マルチコアであり、それらのコアは、単一命令複数データ（ＳＩＭＤ）フォーマットを有する超長命令語（ＶＬＩＷ）で動作するように設計されている。メモリ１５０は、コンピュータが処理するべき命令及びデータを記憶している。ＤＭＡコントローラ１４４は、転送プロセスを行うことによる負担をＣＰＵ１４０にかけずに、例えばＶＳＰ１４２が命令及びデータをメモリ１５０から読み出したりメモリ１５０に書き込んだりすることを可能にする。割り込みコントローラ１４６は、ユーザ入力などの外部イベントが処理される必要があるときにライン１５６を通じてＣＰＵ１４０に割り込みをかける役割を担っている。タイマ１４８は、定期的に信号を発信し、コンピュータ１３８のその他の要素は、タイマからの信号を動作の同期化をもたらすための時間基準として使用する。
【００２８】
中央演算処理装置（ＣＰＵ）１４０、ベクトル信号プロセッサ１４２、及びＤＭＡコントローラ１４４は、いずれも、互いに並列に処理を行う能力を有し、以下ではコンピュータ１３８の処理要素と称する。この並列性は、ＶＳＰ１４２のマルチコア性によって比較的高度に拡張され、それらのコアのＶＬＩＷ及びＳＩＭＤの能力によってなおも更に拡張される。この比較的高度な並列性は、３ＧＰＰ−ＬＴＥ（第三世代携帯電話標準化プロジェクト−ロングタームエヴォリューション）規格やＣＤＭＡ  ＥＶ−ＤＯ（符号分割多重アクセス：エヴォリューション−データ最適化）規格などの計算集約的な無線電気通信モデムのソフトウェアにおける実行のような、集約的なデジタル信号処理アクティビティを行うのに役立つことを意味する。並列性の度合いを拡張するために、コンピュータ１３８は、バス１５４につながれた更なる処理要素を含むこともでき、これらは、多くの場合、ビタビ加速器、ターボ復号器、及びＲＦからベースバンドへのインターフェースのように、特定の信号処理アクティビティを実装するように設計される。
【００２９】
シーケンサ１５２は、図２１に更に詳しく示されている。シーケンサ１５２は、処理コア１５８と、シーケンサ命令メモリ１５９と、包括的に１６０で示された幾つかのバリア−カウンタ要素（ＢＣＥ）１６０と、イベントマッピングブロック１６１とを含む。
【００３０】
ＢＣＥ１６０は、それぞれ、包括的に１６２で示された経路のうちの対応する経路を通じて処理コア１５８と通信することができる。各ＢＣＥ１６０は、包括的に１６４で示された経路の内の対応する経路を通じてイベントマッパ１６１と通信することができる。処理コア１５８及びイベントマッパ１６１は、それぞれ経路１６６及び１６７を通じてバス１５４につながれている。処理コア１５８は、その命令を、経路１６３を通じてシーケンサ命令メモリ１５９から取り出す。代替の設計では、シーケンサ命令メモリ１５９は、シーケンサ１５２の外部にあって、バス１５４を通じてアクセスされることが可能である。
【００３１】
各ＢＣＥ１６０は、対応するＢＣＦプリミティブを実装するようにプログラムすることができる。イベントマッパ１６１は、パス１６７を通じて処理要素（例えばＶＳＰ１４２又はＤＭＡコントローラ１４４）から受信されたアクティビティ終了ハードウェア信号をイベント信号に変換して、バス１６４を通じてＢＣＥ１６０に渡す。イベントマッパ１６１は、経路１６５を通じて処理コア１５８によってプログラムされる。この変換は、特定の処理要素からのアクティビティ終了信号が、ＵＭＬアクティビティ図のなかの当該処理要素が完了させたばかりのアクティビティに続くＢＣＦプリミティブを実装する特定の一ＢＣＥ１６０に送信されるイベント信号に変換されることを保証する。
【００３２】
各ＢＣＥ１６０は、同じ構造を有する。これについて、図２２に示される典型的なＢＣＥ１６８を参照にして説明する。典型的なＢＣＥ１６８の基本要素は、カウンタ１７０並びに２つのレジスタ１７２及び１７４である。レジスタ１７２は、典型的なＢＣＥ１６８が実装するべきＢＣＦプリミティブのカウントダウン値を有している。レジスタ１７４は、メモリ１５０内におけるアドレスを有しており、そのアドレスから、処理コア１５８は
、典型的なＢＣＥ１６８が実装するべきＢＣＦプリミティブの一部を構成する命令をフェッチすることができる。典型的なＢＣＥ１６８がイベント信号を受信するたびに、カウンタ１７０がデクリメントされる。カウンタ１７０がゼロに達すると、レジスタ１７４に含まれるアドレスが処理コア１５８内のレジスタ（不図示）に取り込まれる。
【００３３】
処理コア１５８は、シーケンサ命令メモリ１５９のなかのレジスタ１７４から受信されたアドレスから開始する一連の命令を取り出して実施することによってこのイベントに反応するように設計される。これらの命令によって、処理コア１５８は、１つ以上の宛先のそれぞれに対して対応する信号を送信する。送信される信号の性質は、宛先の性質に依存する。
・もし、宛先が別のＢＣＥ１６０であるならば、信号は、その別のＢＣＥのカウンタをデクリメントすることを意図されたイベント信号である。ＵＭＬアクティビティ図レベルでは、典型的なＢＣＥ１６８によって表されるＢＣＦプリミティブが、（宛先ＢＣＥによって実装される）別のＢＣＦプリミティブへのイベント信号を発行する。
・もし、宛先がコンピュータ１３８の処理要素の１つであるならば、信号は、指定の一連の命令を処理するためのコマンドである。ＵＭＬアクティビティ図レベルでは、典型的なＢＣＥ１６８によって表されるＢＣＦプリミティブが、（指定の一連の命令を実施する指定の処理要素によって実施される）アクティビティの実行を引き起こす。
【００３４】
これは、図１２に関連して与えられたＢＣＦの定義からの僅かなずれを表している。なぜならば、その定義によると、ＢＣＦプリミティブが発行するのは、イベント信号であってコマンドではないからである。しかしながら、ＢＣＦはアクティビティ図においてプリミティブを表す代替方法であること、及びアクティビティ図においてアクティビティの開始はイベント信号によってトリガされることを忘れてはならない。これとは対照的に、コンピュータ１３８では、アクティビティは、処理要素の１つによって実施され、関係する処理要素には、当該アクティビティを実施するために必要な命令をその処理要素に実施させるコマンドが送信されなければならない。
【００３５】
まとめると、処理コア１５８は、（ＵＭＬアクティビティ図プリミティブを実装する）ＢＣＥ１６０にはイベント信号を、（ＵＭＬアクティビティ図アクティビティを実施するための）処理要素にはコマンドを送信する。ＵＭＬアクティビティ図プリミティブは、アクティビティから、そのアクティビティの完了を示すイベント信号を受信することができる。これに対応するために、コンピュータ１３８内の処理要素は、割り当てられたアクティビティの完了時に、対応する一ＢＣＥ１６０にイベント信号を送信する。大半の処理要素は、ハードウェアによって生成されたアクティビティ終了信号をイベントマッパ１６１に送信し、該イベントマッパ１６１が、イベント信号をＢＣＥ１６０に送信する。
【００３６】
シーケンサ１５２の実際の実装形態では、コンピュータ１３８内の処理要素ごとに、最少で２つ、最多でもしかすると総数一千に及ぶＢＣＥ１６０がある。
【００３７】
特定の背景のなかで特定のＵＭＬアクティビティ図プリミティブを実装するために典型的なＢＣＥ１６８がどのように使用可能であるかの５つの例が、以下で与えられる。
【００３８】
第１の例として、典型的なＢＣＥ１６８が、図１に示されたフォークプリミティブ１０を実装するためのものであり、ＶＳＰ＃２がアクティビティ１２を、ＤＭＡコントローラ＃１がアクティビティ１４を、ＣＰＵがアクティビティ１６を実施すると想定する。フォークプリミティブのＢＣＦヴァージョンは、図１３に示されている。したがって、レジスタ１７２内のカウントダウン値は、１に設定される。アクティビティ１２の完了時に、ＶＳＰ＃２は、典型的なＢＣＥ１６８にイベント信号を送信し、カウンタは、ゼロにデクリメントされる。これにより、処理コア１５８に、レジスタ１７４内のアドレスによって指
定される一連の命令を実施させる。この一連の命令は、ＤＭＡコントローラ＃１に対してアクティビティ１４を開始するためのコマンド信号を送信し、割り込みコントローラ１４６に対してＣＰＵ１４０がアクティビティ１６を開始することを要求するための別のコマンド信号を送信する。
【００３９】
第２の例として、典型的なＢＣＥ１６８が、図２に示されたジョインプリミティブ１８を実装するためのものであり、図１４に示される簡易ヴァージョンのＢＣＦジョインプリミティブの使用が適切であると想定する。また、ＤＭＡコントローラ＃１がアクティビティ２０を、ＣＰＵ１４０がアクティビティ２２を、ＶＳＰ＃２がアクティビティ２４を実施すると想定する。したがって、ジョインプリミティブを実装するために、レジスタ１７２に記憶されている値は２である。ＣＰＵ１４０がアクティビティ２２を完了させる前に、ＤＭＡコントローラ＃１がアクティビティ２０を完了させると想定する。この状況では、ＤＭＡコントローラ＃１は、典型的なＢＣＥ１６８にイベント信号を送信し、カウンタ１７０を１にデクリメントさせる。幾らか後に、ＣＰＵ１４０がアクティビティ２２を完了させ、典型的なＢＣＥ１６８にイベント信号を送信すると想定する。これにより、カウンタがゼロにデクリメントされ、処理コア１５８はレジスタ１７４内のアドレスによって指定された一連の命令を実施する。この一連の命令により、アクティビティ２４を開始するためのコマンド信号がＶＳＰ＃２に送信される。
【００４０】
第３の例として、典型的なＢＣＥ１６８が、図３に示されたデシジョンプリミティブ２６を実装するためのものであり、ＶＳＰ＃２がアクティビティ２８を、ＤＭＡコントローラ＃１がアクティビティ３０を、ＤＭＡコントローラ＃２がアクティビティ３２を実施すると想定する。デシジョンプリミティブのＢＣＦヴァージョンは、図１８に示されている。したがって、デシジョンプリミティブを実装するために、レジスタ１７２に記憶されている値は１であり、レジスタ１７４に記憶されているアドレスは、処理コア１５８が一連の命令の始まりを見つけることができるメモリ１５０内の場所である。それら一連の命令によって、デシジョンプリミティブに関連付けられたロジック条件が評価され、該ロジック条件の状態にしたがって、アクティビティ３０を開始させるためにＤＭＡコントローラ＃１に又はアクティビティ３２を開始させるためにＤＭＡコントローラ＃２に、いずれか正しい方にコマンド信号が送信される。ＶＳＰ＃２は、アクティビティ２８を完了するときに、典型的なＢＣＥ１６８にイベント信号を送信し、カウンタ１７０をゼロにデクリメントさせる。これにより、処理コア１５８がトリガされて、レジスタ１７４内のアドレスによって指定される一連の命令を実施し、その結果として、関連付けられたロジック条件の状態に応じてアクティビティ３０又は３２を開始する。
【００４１】
第４の例として、典型的なＢＣＥ１６８が、図４に示されたマージプリミティブ３４を実装するためのものであり、ＶＳＰ＃１がアクティビティ３６を、ＣＰＵ１４０がアクティビティ３８を、ＶＳＰ＃２がアクティビティ４０を実施すると想定する。マージプリミティブのＢＣＦヴァージョンは、図１７に示されている。したがって、レジスタ１７２内のカウントダウン値は、１に設定される。次に、ＶＳＰ＃１がアクティビティ３６を完了させ、典型的なＢＣＥ１６８にイベント信号を送信するとする。このイベント信号の到着により、カウンタ１７０がゼロにデクリメントされ、これにより処理コア１５８がトリガされて、レジスタ１７４内のアドレスによって指定される一連の命令を実施する。この一連の命令により、ＶＳＰ＃２に対してコマンド信号を送信し、アクティビティ４０を開始させる。その後は、アクティビティ３８がいつ完了するか又はアクティビティ３８が完了するかどうかは問題でなくなる。
【００４２】
第５の例として、典型的なＢＣＥ１６８が、図２３に示されたフォークプリミティブ１７６を実装するためのものであり、ＶＳＰ＃２がアクティビティ１７８を、ＤＭＡコントローラ＃１がアクティビティ１８０を、別のＢＣＥが、最終的にアクティビティ１８４又
はアクティビティ１８６のいずれかを開始させるデシジョンプリミティブを実装すると想定する。フォークプリミティブのＢＣＦヴァージョンは、図１３に示されている。したがって、レジスタ１７２内のカウントダウン値は、１に設定される。ＶＳＰ＃２が、アクティビティ１７８の完了時に、典型的なＢＣＥ１６８にイベント信号を送信すると、カウンタがゼロにデクリメントされて、これにより処理コア１５８がトリガされて、レジスタ１７４内のアドレスによって指定される一連の命令を実施する。これら一連の命令により、ＤＭＡコントローラ＃１に対してアクティビティ１８０を開始させるためのコマンド信号が送信され、デシジョンプリミティブ１８２を実装する別のＢＣＥに対してコマンド信号ではなくイベント信号が送信される。
【００４３】
このように、ＢＣＥの振る舞いは、そのカウントダウン値と、ＢＣＥのカウンタがゼロにデクリメントされたときにトリガされる命令シーケンスとによって定められることが明らかである。ＢＣＥのカウントダウン値とその命令シーケンスとの組み合わせは、これ以降、ＢＣＥの「構成」と称する。ＢＣＥの構成は、ＵＭＬアクティビティ図内の特定の場所における特定のプリミティブの役割を全うするように設定することができる。
【００４４】
ＵＭＬアクティビティ図への従来のアプローチでは、先ず、アナリストが、ソフトウェアで実装するために提案されたシステムを調査し、そのシステムを記述するＵＭＬアクティビティ図を作成する必要がある。次いで、プログラマが、アナリストによって提供されたＵＭＬ記述をもとに作業し、ソフトウェアを実行する予定の特定のコンピューティングハードウェアアーキテクチャの制約にしたがいながら、システムを実装するソフトウェアを作成する必要がある。ところが、シーケンサ１５２を使用することにより、ＵＭＬアクティビティ図から直接、アクティビティ図を実装するソフトウェアを作成することが可能となる。これは、ＵＭＬアクティビティ図のなかの各アクティビティにソフトウェアコードブロックを提供し、ＵＭＬアクティビティ図の各プリミティブを、適切な構成を与えられたＢＣＥによって実装される対応するＢＣＥプリミティブに変換することによって達成される。
【００４５】
ＵＭＬアクティビティ図は、通常は、ＸＭＩ（ＸＭＬ（拡張マークアップ言語）メタデータ交換）フォーマットで作成される。図２４は、シーケンサ１５２によって実行可能でありＸＭＩフォーマットＵＭＬアクティビティ図で記述されるシステムを実装するためのソフトウェアパッケージを自動的に作成するソフトウェアツールを説明したフローチャートである。ツールは、例えば、ＶＳＰ１４２の数、ＤＭＡコントローラ１４４の数、メモリ１５０の大きさ、各種要素の処理速度、各種要素の電力消費などの、コンピュータ１３８のアーキテクチャに関する知識を与えられる。ツールは、また、ソフトウェアブロックのライブラリも提供され、これらのブロックは、それぞれ、ＸＭＩ  ＵＭＬアクティビティ図のアクティビティの１つを実施するために処理要素の１つによって実行されるためのものである。ツールは、また、ソフトウェアブロックがそれらに対応する処理要素上での実行にどれだけの時間がかかるかを示す表示も提供される。
【００４６】
ステップＳ１では、ＸＭＩフォーマットＵＭＬアクティビティ図が提供される。ステップＳ２では、ツールは、ＸＭＩフォーマットＵＭＬアクティビティ図内のプリミティブを識別する。ステップＳ３では、ツールは、それが識別したプリミティブ用の個々のＢＣＥ構成を作成する。ステップＳ４では、ツールは、アクティビティ図の各アクティビティについてライブラリを検索し、そのアクティビティを実施するために処理要素の１つによって実行可能なソフトウェアブロックを識別する。導出されたひとそろいのＢＣＥ構成及び選択されたひとそろいのソフトウェアブロックは、コンピュータ１３８の電力消費について指定されたあらゆる制約と、ＸＭＩ  ＵＭＬアクティビティ図によって表されるシステムの一部を実施するためにコンピュータが費やす時間の長さとを考慮に入れることによってツールがたどり着くものである。ステップＳ５では、ツールは、ＢＣＥ構成及び識別さ
れたソフトウェアブロックを、ＸＭＩフォーマットＵＭＬアクティビティ図によって記述されるシステムを実装するためにシーケンサ１５２によって実行可能なソフトウェアパッケージとして送る。
【００４７】
シーケンサ１５２は、ステップＳ３において決定された構成にしたがってＢＣＥを構成し、ＢＣＥが必要に応じて処理要素に対してステップＳ４で識別されたソフトウェアブロックを実行するように命じるようにすることで、ＸＭＩ  ＵＭＬアクティビティ図によって記述されるシステムをソフトウェアにより実装することができる。
【００４８】
ソフトウェアツールは、もし必要であれば、以下の特徴のうちの１つ以上も含めることによって強化することができる。
・ツールは、対象アーキテクチャの処理要素が対象システムのアクティビティ以外の追加プロセスを実行可能であるかどうかを評価してもよい。ツールは、処理要素が現ＵＭＬアクティビティ図用の「スレッド」を実行する能力のみを有するのではなく、更なるＵＭＬアクティビティ図を実装するソフトウェアに対応する１つ以上の追加スレッドも実行する能力を有すると判断することもある。その場合は、ソフトウェアツールを、処理要素上での複数のスレッドのスケジューリングを再編成するに構成し、仮想化方式を実装するように構成してもよい。
・ツールは、作成されたソフトウェア内にアクティビティの開始地点及び終了地点にブレークポイントを含めるように構成することができる。すると、これらのブレークポイントは、アクティビティ図のグラフィカルユーザインターフェース（ＧＵＩ）表示で示すことができ、そして、ソフトウェアのパフォーマンスをアクティビティ図のレベルで評価できる。
【００４９】
マルチプロセッサシステ設計の分野の当業者にならば、発明の範囲から逸脱することなく上述の技術に対して様々な変更が可能であることが明らかであろう。例えば、ＢＣＥ１６０は、処理コア１５８を通じてコードの実行をトリガするためにプログラム可能な値からゼロにカウントダウンするものとして説明された。代替の実装形態では、しかしながら、ＢＣＥ１６０は、コード実行をトリガするために何らかのプログラム可能な値に達するまでゼロからカウントアップするように構成することもできる。
【００５０】
並列に動作可能な処理要素グループの動作を指示するシーケンサ１５２の概念は、様々に異なる目的を意図されたコンピュータに使用することができる。例えば、この概念は、３ＧＰＰ  ＬＴＥ規格やＣＤＭＡ  ＥＶ−ＤＯ規格などをもとにしたソフトウェア無線通信モデムでの実装を意図されたコンピュータに使用することができる。
【００５１】
現代の携帯電話端末は、ほぼ例外なく、幾つかのモードで動作することを求められる。例えば、ＧＳＭ及び３Ｇの両方のスペクトルを割り当てられ、第三世代携帯電話標準化プロジェクト（３ＧＰＰ）によって定められた標準規格群にしたがってネットワークを動作させるオペレータは、優れたスペクトル効率を得ることによって動作費用を最小限に抑えるために受信可能エリアでは電話端末が３Ｇインフラを使用することを好むが、３Ｇネットワークの受信が不可能であったり混雑していたりするエリアでは（通話中も「アイドルモード」にあるときもいずれも）電話端末がシームレスにＧＳＭで動作することを好む。一部の市場では、ユーザは、２つのネットワークの顧客であることが一般的であり、両方のネットワークに同時に「常駐」し、したがって通話の受信及び発信又はデータの送信及び受信をいずれのネットワークでも行える「二重モード」電話端末を必要とする。このような電話端末は、基本的に非同期な２つのインターフェース上で動作しなければならない。最後の例は、最新の「スマートフォン」であり、セルラ方式の無線インターフェース（それ自体が恐らくは二重モード３Ｇ／ＧＳＭであろう）も使用しつつ、ＩＥＥＥによって定められたＷｉＦｉ規格を使用して無線ＬＡＮで同時に通信する能力も有する。費用及び
電力消費を抑えるためには、無線電話端末で使用されるハードウェアの量を最小限に抑えることが望まれ、したがって、ＳＤＲの実装形態では、複数の非同期な規格に対して共通の処理プラットフォームを使用することが好まれる。このような能力が提供されたら、今度は、例えば、販売された後、異なる規格が使用されている地域にユーザがローミングしたときに新しいソフトウェアをダウンロードすることによって製造後にデバイスを更新可能であること、及びこれをデバイス内でシームレスに実行可能であることも望まれる。
【００５２】
したがって、相互作用を考慮する必要がない異なるプロトコルを、共通の処理プラットフォーム上の独立したソフトウェアインスタンスを使用して処理する場合に、これらのプロトコルを非同期動作させることが望ましい。
【発明の概要】
【００５３】
本発明は、これから参照される添付の特許請求の範囲によって定められる。
【図面の簡単な説明】
【００５４】
次に、単なる例として、添付の図面を参照にすることによって本発明の様々な実施形態が説明される。
【００５５】
【図１】フォークノードの使用を示したＵＭＬアクティビティ図である。
【図２】ジョインノードの使用を示したＵＭＬアクティビティ図である。
【図３】デシジョンノードの使用を示したＵＭＬアクティビティ図である。
【図４】マージノードの使用を示したＵＭＬアクティビティ図である。
【図５】イニシャルノードの使用を示したＵＭＬアクティビティ図である。
【図６】ファイナルノードの使用を示したＵＭＬアクティビティ図である。
【図７】デシジョンノードに関連付けられた信号フローを示した図である。
【図８】マージノードに関連付けられた信号フローを示した図である。
【図９】フォークノードに関連付けられた信号フローを示した図である。
【図１０】ジョインノードに関連付けられた信号フローを示した図である。
【図１１】ＵＭＬアクティビティ図プリミティブの変更形態の概念図である。
【図１２】図１１の変更形態のプリミティブの簡易表記を示した図である。
【図１３】フォークプリミティブを表すために図１２の簡易表記がどのように使用可能であるかを示した図である。
【図１４】ジョインプリミティブを表すために図１２の簡易表記がどのように使用可能であるかを示した図である。
【図１５】図１４で使用される変更形態のプリミティブが或る種の条件下でどのように誤動作しうるかを示した図である。
【図１６】図１５で提示される誤動作のシナリオを回避する形でジョインプリミティブを表すために、図１１で与えられた変更形態の幾つかのプリミティブがどのように併用可能であるかを示した図である。
【図１７】マージプリミティブを表すために図１２の簡易表記がどのように使用可能であるかを示した図である。
【図１８】デシジョンプリミティブを表すために図１２に簡易表記がどのように使用可能であるかを示した図である。
【図１９】デシジョンプリミティブの２つ以上のインスタンスを制御するために１つのロジック条件がどのように使用可能であるかを示した図である。
【図２０】マルチプロセッサコンピュータを概略的に示した図である。
【図２１】図２０のシーケンサを概略的に示した図である。
【図２２】図２１のバリア−カウンタ要素を概略的に示した図である。
【図２３】或るプリミティブが別のプリミティブをトリガすることができるアクティビティ図を示した図である。
【図２４】図２０のシーケンサを使用して実行可能なソフトウェアを作成するためのツールの動作を示した図である。
【図２５】図２０に示されるようなマルチプロセッサコンピュータを埋め込まれた携帯電話を概略的に示した図である。
【図２６】図２５の携帯電話内で着手されるタスクのパフォーマンスを示したタイミング図である。
【図２７】図２５の携帯電話の変形を概略的に示した図である。
【図２８】図２１のシーケンサ内のリソースがどのように区分け可能であるかを概略的に示した図である。
【図２９】図２７の携帯電話内で着手されるタスクのパフォーマンスを示したタイミング図である。
【発明を実施するための形態】
【００５６】
図２５は、マルチプロセッサコンピュータ１３８が埋め込まれた携帯電話３００を示している。図２５には、発明を説明するのに役立つ要素のみが示されており、コンピュータアーキテクチャ設計の分野の当業者ならば、携帯電話３００が実際は、図２５に示されるよりも多くの更なる構成要素及び要素間接続を含むことがわかるだろう。実際、図２５は、明瞭さを期するために、図２０から、携帯電話３００の背景のなかでマルチプロセッサコンピュータ１３８がどのように動作するかを説明するのに必要な要素のみを示している。簡潔さを期するために、図２０と同一の図２５の要素は、図２５でも同じ参照番号を維持しており、それらの要素の性質及び機能の説明は、ここでは繰り返さない。
【００５７】
図２０と同一の要素に加えて、図に示された電話３００は、ＲＦインターフェース３０９と、無線送受信器（ＴＲＸ）３１０と、アンテナ３１１とを含むものとして示されている。代表的なのは、タイムスロットダウンリンク（基地局から携帯端末）プロトコルを電話３００が使用することを可能にするモデムを実現するためにマルチプロセッサコンピュータ１３８が使用される場合である。ＤＭＡコントローラ１４４は、ＲＦインターフェース３０９と通信し、ＲＦインターフェース３０９は、無線送受信器（ＴＲＸ）３１０に接続され、無線送受信器（ＴＲＸ）３１０は、アンテナ３１１を使用してセルラ方式又はＷｉＦｉなどの無線インターフェースを通じて通信する。ＲＦインターフェース３０９は、タイマ１４８から直接、スロット同期信号３１２を受信する。メモリ１５０内では、２つの領域３０９、すなわちバッファ＿０及びバッファ＿１が、受信されたデジタル化ＲＦサンプル用のバッファとして予約（reserve）される。これらの各バッファは、一タイムス
ロット全体分の受信データに対して十分であり、「奇数」スロットと「偶数」スロットのためにそれぞれ交互に使用される。
【００５８】
図２６は、イベントどうしがどのように協調されるかを示したタイミング図である。ＲＦ信号４０１は、概念的に複数のタイムスロットに分割された連続するデータ変調搬送波である。スロット（ｎ−１）とスロット（ｎ）との間の概念的なスロット境界では、信号ライン３１２上のスロット同期パルス４０２が、ＲＦインターフェースをトリガしてバッファ＿１へのデータサンプルの格納を開始する。このとき、バッファ＿０は、先のスロット（ｎ−１）中に取得されたサンプルで既に満杯である。ＤＭＡコントローラ１４４は、スロット（ｎ−１）からバッファ一杯のサンプルが利用可能であることを示すＤＭＡ完了信号４０４を生成し、該信号はシーケンサ１５２をトリガしてシーケンスプログラムの実行を開始させる。このシーケンスプログラムは、先のスロット中に取り込まれて記憶済みであり、バッファ＿０から取得されるデータを処理するようにコンピュータ１３８内の様々な処理リソースに指示する。シーケンスの終わりに、シーケンサ１５２は、割り込み要求（ＩＲＱ）信号４０６を生成し、この信号は、ＣＰＵ１４０に送られ、ＣＰＵ１４０に、バッファ＿１に記憶されたスロット（ｎ）データを処理するために必要とされるシーケンサプログラムを作成させて（４０７）そのプログラムをメモリ１５０に取り込ませる。
シーケンサ１５２のＢＣＥ１６０は、初期化しなおす必要があるが、プログラムは、多くの場合、実行されたばかりのプログラムと同じである。しかしながら、次スロットにおけるシーケンスは、例えば、受信された復号データに応じて異なるかもしれない。
【００５９】
これまでに説明された動作から明らかでない態様は、１つには、スロット同期信号４０２が受信信号内の実際のスロット境界と同期していることをシステムがどのように保証するかである。これは、例えば、受信データのなかから既知のパターンを見つけてそのパターンの位置と同期パルスとの間の時間的ずれを算出するタイプの、同期用に特別に設計されたシーケンスを有することによって達成することができる。次いで、タイマ１４８が、初期の同期を達成するためにこの時間的ずれを伴うようにプログラムされ、その後に続くシーケンスは、進行中の時間的ずれを監視してタイマ１４８に補正を送る動作を含むことになる。
【００６０】
図２６では、（一スロットぶんのデータを処理するための）ステージ４０５及び（続くスロット中に受信されるデータを処理するために使用されるシーケンスを生成するための）ステージ４０７におけるシーケンス実行が、一スロットのうちのかなりの持続時間に及ぶ１つのアクティビティとして示されているが、時間を要するアクティビティの大半は、（明瞭さを期するために図２５では省略されている）ＶＳＰ１４２などの、システムの処理リソースによって実施される。シーケンサ１５２は、イベントによってトリガされたときにのみ起動すればよく、必要とされる行為は、高周波数システムクロックの数サイクルぶんしかかからない。したがって、シーケンサ１５２は、軽負荷のハードウェアエンジンである。また、シーケンサ１５２は、同時にタスクを完了させる複数の異なる処理要素などの、異なるそして恐らくは無関係の複数のソースから実質的に同時に到着するイベントを扱うように、及びこれらを適切なＢＣＥ１６０に正しく登録するように設計されなければならないこともわかる。
【００６１】
図２６のタイミング図に関する上記の記述から、説明されたようなシステムの処理におけるＣＰＵ１４０のアクティビティは、潜在的に最小限に抑えられる。なぜならば、ＣＰＵ１４０が、スロットごとに一度、次のスロット用の適切なシーケンスプログラムを見つけてそのシーケンスをシーケンサ１５２による使用のためにメモリ１５０に取り込むだけでよいからである。このアクティビティは、割り込みによってトリガされ、また、ＣＰＵ１４０は、通常、割り込みを完全にサポートするＡＲＭ  ＲＩＳＣコアなどのタイプであるので、追加のタスクをＣＰＵ１４０で実行可能である。このようなタスクは、通常は、優先度の低い性質のものであるが、ＣＰＵ１４０が実際に時間内にタスクを完了させる能力を有するのであれば、ＣＰＵ１４０は、もちろん、より優先度の高いその他のタスク（例えばステージ４０５自体のシーケンスの一部として必要とされるものなど）に使用されることも可能である。
【００６２】
図２７は、２つの無線インターフェースを同時に使用することができる電話３００の変形である携帯電話５００を示している。簡潔さを期するために、図２５と同一の図２７の要素は、図２７でも同じ参照番号を維持しており、それらの要素の性質及び機能の説明は、ここでは繰り返さない。図２５で提供された要素に加えて、電話５００は、第２のタイマ５１２と、第２のＤＭＡコントローラ５１３と、第２のＲＦインターフェース５１４と、第２のＴＲＸ５１５と、第２のアンテナ５１６とを含む。これらの追加要素５１２〜５１６は、もちろん、アンテナ３１１とともに使用される無線インターフェースとは異なる又は同じ第２の無線インターフェースを通じて電話が通信することを可能にする目的で提供されるものである。タイマ５１２は、自律性であり、タイマ１４８とは異なる周波数で動作することができる。ＲＦインターフェース５１４及びＤＭＡコントローラ５１３は、第２のＴＲＸ５１５からデータを読み出す。なお、第２のＴＲＸ５１５は、第１のＲＦチェーン３０９〜３１１とは異なる周波数バンド及び無線インターフェースプロトコルに関
連付けられる。第２のＲＦチェーン５１４〜５１６からのデータは、第１と同様に交互に、バッファ＿２及びバッファ＿３  ５０５に書き込まれる。バッファ＿２及びバッファ＿３  ５０５は、バッファ＿０及びバッファ＿１  ５０５とは区別されるメモリ領域である。
【００６３】
電話５００は、また、図２８に示されるように、幾分異なる方式で（ただしその構成を変更することなく）シーケンサ１５２を使用する。シーケンサ１５２は、図２８においてプログラム＿１及びプログラム＿２として示される２つのプログラムを実行する。これらのプログラムは、それぞれＲＦチェーン３０９〜３１１及びＲＦチェーン５１４〜５１６に必要とされるシーケンスを実行するためのものである。ＢＣＥ１６０は、ここでは、重複しない（disjoint）グループ１６０ａと１６０ｂとに分けて扱われ、シーケンサ命令メモリ１５８は、プログラム＿１用とプログラム＿２用とで重複しない領域を有する。ＢＣＥグループ１６０ａ及び１６０ｂは、プログラム＿１及びプログラム＿２にそれぞれ関連付けられる。これらのＢＣＥ及びプログラムメモリ領域は、重複せず、別々に定義され別々のシーケンスに関連付けられるが、実行中にタスクがそれぞれ異なる処理要素に割り当てられる限り、シーケンサ１５２は、両方のシーケンスを並列に実行可能であることが明らかであろう。ＢＣＥは、任意のアルゴリズムにしたがってグループ分けすることができる。例えば、ＢＣＥは、２つのグループに任意に分けることができるし、均等にグループ分けすることもできる。したがって、（例示の実施形態のように）２つのグループがある場合は、ＢＣＥは、５０：５０の関係性でグループ分けすることができる。
【００６４】
図２９は、電話５００の背景のなかでマルチプロセッサコンピュータ１３８がどのように振る舞うかを示したタイミング図である。一方の無線インターフェース７０１は、第２の無線インターフェース７０２よりも遅いスロットタイミング速度で動作する。これらの無線インターフェースは、ともに、データを取得するために別々のハードウェアを使用するので、同じシステム内に共存することができる。同じく、各無線インターフェースは、シーケンサ１５２のなかの重複しないリソースを使用し、シーケンサは、同時イベントを正しく解決可能でなければならないので、複数のシーケンスは、同時に同じ処理リソースの使用を試みるものでない限り、たとえ非同期であっても正しく制御されることが可能である。
【００６５】
図２９に示されたスロット構造は、それぞれ等間隔ではあるが互いに非同期であるので、ＣＰＵ１４０へのＩＲＱ信号は重なることがある。しかしながら、割り込みコントローラは、このようなイベントで調整を行って正しい動作を保証するように設計されるのが一般的である。より深刻な問題は、一方の無線インターフェースで次スロットを処理するためにＣＰＵ１４０によってシーケンスが生成されたときに、それが、もう一方の無線インターフェースでの処理に既に割り振られた処理リソースや、もう一方の無線インターフェースでの処理に必要とされている処理リソースを使用するかもしれないことである。この問題を解決するための方法は、１つには、別々で重複しないひとそろいの処理リソースを使用するように予め別々のシーケンスプログラムを書くことである。しかしながら、これは、プロトコル間でリソースを共有する機会が活かされないことを意味する。また、実行されるシーケンスを取り込むことによって両リソースに関する知識を有する追加のスケジューリング手段をＣＰＵに設けてもよいし、分離手段を設けてもよい。
【００６６】
当業者にならば、上述された発明の実施形態に対して様々な変更が可能であることが明らかである。例えば、３つ以上のＲＦ送受信器チェーンがあってもよく、各チェーンは、それ自身の、留保された重複しないＢＣＥグループと、それ自身の、そのＢＣＥがトリガされたときに実施される必要がある命令を保持するための留保された重複しないメモリ領域とを伴う。
【００６７】
上述された実施形態は、受信されたダウンリンク信号を処理するという代表的な状況を使用しているが、シーケンサ１５２のリソースを区分するためとして説明された方式は、２つの送受信器チェーンで異なるアップリンク通信を行うなどの、その他のアクティビティにも使用されることが可能である。より広義には、シーケンサ１５２の区分が取り組むタスクの厳密な性質は、重要でないことが理解される。例えば、タスクは、電気通信に無関係なプロセスであるかもしれない。
【図１】
0006321324.tif 000002
【図２】
0006321324.tif 000003
【図３】
0006321324.tif 000004
【図４】
0006321324.tif 000005
【図５】
0006321324.tif 000006
【図６】
0006321324.tif 000007
【図７】
0006321324.tif 000008
【図８】
0006321324.tif 000009
【図９】
0006321324.tif 000010
【図１０】
0006321324.tif 000011
【図１１】
0006321324.tif 000012
【図１２】
0006321324.tif 000013
【図１３】
0006321324.tif 000014
【図１４】
0006321324.tif 000015
【図１５】
0006321324.tif 000016
【図１６】
0006321324.tif 000017
【図１７】
0006321324.tif 000018
【図１８】
0006321324.tif 000019
【図１９】
0006321324.tif 000020
【図２０】
0006321324.tif 000021
【図２１】
0006321324.tif 000022
【図２２】
0006321324.tif 000023
【図２３】
0006321324.tif 000024
【図２４】
0006321324.tif 000025
【図２５】
0006321324.tif 000026
【図２６】
0006321324.tif 000027
【図２７】
0006321324.tif 000028
【図２８】
0006321324.tif 000029
【図２９】
0006321324.tif 000030