JP6321324B2 - 並列処理システムにおけるプログラムの制御 - Google Patents

並列処理システムにおけるプログラムの制御 Download PDF

Info

Publication number
JP6321324B2
JP6321324B2 JP2013071989A JP2013071989A JP6321324B2 JP 6321324 B2 JP6321324 B2 JP 6321324B2 JP 2013071989 A JP2013071989 A JP 2013071989A JP 2013071989 A JP2013071989 A JP 2013071989A JP 6321324 B2 JP6321324 B2 JP 6321324B2
Authority
JP
Japan
Prior art keywords
primitive
computer
activity
signal
task
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2013071989A
Other languages
English (en)
Other versions
JP2013211015A5 (ja
JP2013211015A (ja
Inventor
エルクト ウィガン
エルクト ウィガン
ポール ティンダル
ポール ティンダル
ジョン ヘイン
ジョン ヘイン
ジャン ギュファンス
ジャン ギュファンス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
U Blox AG
Original Assignee
U Blox AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by U Blox AG filed Critical U Blox AG
Publication of JP2013211015A publication Critical patent/JP2013211015A/ja
Publication of JP2013211015A5 publication Critical patent/JP2013211015A5/ja
Application granted granted Critical
Publication of JP6321324B2 publication Critical patent/JP6321324B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/10Requirements analysis; Specification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/35Creation or generation of source code model driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B1/00Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission
    • H04B1/0003Software-defined radio [SDR] systems, i.e. systems wherein components typically implemented in hardware, e.g. filters or modulators/demodulators, are implented using software, e.g. by involving an AD or DA conversion stage such that at least part of the signal processing is performed in the digital domain
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B1/00Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission
    • H04B1/005Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission adapting radio receivers, transmitters andtransceivers for operation on two or more bands, i.e. frequency ranges

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Multimedia (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Multi Processors (AREA)

Description

本発明は、デジタルデータ処理システムに関するものである。
本出願の出願者らは、GB2482141Aの公開番号で公開され、CN102339223A及びUS2012/0023317A1の公開番号でそれぞれ公開された中国及び米国の同等出願を有する英国特許出願も出願した。GB2482141Aの教示内容の多くは、参照を容易にするために以下で再掲される。
システムの記述には、統一モデリング言語(UML)を使用することができる。UMLの一般的用途は、ソフトウェアによって実装されるシステムの記述を提供することである。従来は、アナリストが、ソフトウェアでの実装を提案されたシステムを調査し、そのシステムのUML記述を作成する。次いで、プログラマが、アナリストによって提供されたUML記述をもとに作業し、ソフトウェアを実行する予定の特定のコンピューティングハードウェアアーキテクチャの制約にしたがいながら、システムを実装するソフトウェアを作成する。このような制約の幾つかの例として、コンピューティングハードウェア内のメモリの量や、コンピューティングハードウェア内のプロセッサの数及び処理速度が挙げられる。
UMLは、システムを記述するための一連の方法を提供する。このような方法の1つが、アクティビティ図の使用である。アクティビティ図は、アクティビティの観点やアクティビティ間の制御フローの観点からシステムを記述する。制御フローは、ひとそろいのプリミティブによって表され、これらのプリミティブは、ここで、図1〜6を参照にして説明される。
図1は、フォーク(分岐)ノードと呼ばれるアクティビティ図プリミティブを示している。ここで、フォークノード10は、アクティビティ12、14、及び16の間の関係を記述している。フォークノード10は、アクティビティ12の完了時にアクティビティ14及び16が同時に開始されることを示している。
図2は、ジョイン(合流)ノードと呼ばれるアクティビティ図プリミティブを示している。ここで、ジョインノード18は、アクティビティ20、22、及び24の間の関係を記述している。ジョインノード18は、アクティビティ20及び22の両方の完了時にアクティビティ24が開始されることを示している。したがって、ジョインノードプリミティブは、或るアクティビティが開始することを複数のその他のアクティビティの終了後に初めて許可するという意味で、同期化の効果を有する。
図3は、デシジョン(判断)ノードと呼ばれるアクティビティ図プリミティブを示している。ここで、デシジョンノード26は、アクティビティ28、30、及び32の間の関係を記述している。デシジョンノード26は、アクティビティ28の完了時にアクティビティ30及び32のいずれか1つのみが開始されることを示している。アクティビティ30及び32のいずれが開始されるかは、デシジョンノード26に関連付けられたロジック条件によって判断される。例えば、システムの特定のパラメータが何らかの所定値を上回るか又は下回るかである。
図4は、マージ(結合)ノードと呼ばれるアクティビティ図プリミティブを示している。ここで、マージノード34は、アクティビティ36、38、及び40の間の関係を記述
している。マージノード34は、アクティビティ36及び38のいずれか1つが完了したらすぐに開始される。
図5は、イニシャル(初期)ノードと呼ばれるアクティビティ図プリミティブを示している。イニシャルノードは、システムの始まりを示している。ここで、イニシャルノード42は、アクティビティ44の実行からシステムが始まることを示している。
図6は、ファイナル(最終)ノードと呼ばれるアクティビティ図プリミティブを示している。ファイナルノードは、システムの終わりを示している。ここで、ファイナルノード46は、システムがアクティビティ48の実行後に終わることを示している。
これまでのところ、プリミティブがつなぐアクティビティの性質に関して何も語られていない。これらのアクティビティは、ほぼ無限に多様な性質を有する。アクティビティは、多くの場合、それ自身がアクティビティ図によって記述されうるという意味で、複雑である。この文書は、無線通信を行うのに適したマルチプロセッサシステムを論じる。この文脈におけるアクティビティの例は、以下の通りである。
・データを或る場所から別の場所に移すためのダイレクトメモリアクセス(DMA)手続きを行う。
・デジタル時間領域信号に対して高速フーリエ変換(FFT)を実施する。
・2つのデジタル時間領域信号の相互相関を実施する。
・データシーケンスについての巡回冗長チェックサム(CRC)を計算する。
図7は、デシジョンノードに関連付けられた信号フローを例示している。この図は、プリミティブの、入力50並びに出力52及び54を示している。並べて示されるのは、3つのプロットである。プロット56は、入力50上を伝わる信号を示しており、プロット58は、出力52上を伝わる信号を示しており、プロット60は、出力54上を伝わる信号を示している。3つの全てのプロットの時間スケールは、62において任意単位で示されている(図8、9、及び10の時間スケールにおいても同様の取り決めを使用している)。プロット56に示されるように、第2の時間間隔中に、入力50上にイベント信号が到着する。プリミティブは、第3の期間中に、プリミティブに関連付けられたロジック条件の状態によって示されるように出力52及び54の一方にイベント信号を出力することによって応答する。この場合は、ロジック条件の状態は、イベント信号を出力52上に発信させ、出力54上には何も送信されない。
図8は、マージノードに関連付けられた信号フローを例示している。図は、プリミティブの、入力64及び66並びに出力68を示している。並べて示されるのは、3つのプロットである。プロット70は、入力64上を伝わる信号を示しており、プロット72は、入力66上を伝わる信号を示しており、プロット74は、出力68上を伝わる信号を示している。プロット70に示されるように、第2の時間間隔中に、入力64上にイベント信号が到着する。プロット72に示されるように、第6の期間中に、入力66上にイベント信号が到着する。プロット74に示されるように、プリミティブは、第3の期間中に、その出力68にイベント信号を出力することによって、自身が受信した第1のイベント信号に応答する。プリミティブは、入力66上に到着する遅い方のイベント信号に応答してその出力68上に更なるイベント信号を送信することはない。
図9は、フォークノードに関連付けられた信号フローを例示している。図は、プリミティブの、入力76並びに出力78及び80を示している。並べて示されるのは、3つのプロットである。プロット82は、入力76上を伝わる信号を示しており、プロット84は、出力78上を伝わる信号を示しており、プロット86は、出力80上を伝わる信号を示している。プロット82に示されるように、第2の時間間隔中に、入力76上にイベント
信号が到着する。プリミティブは、第3の期間中に、その出力78及び80の両方にイベント信号を出力することによって応答する。
図10は、ジョインノードに関連付けられた信号フローを例示している。図は、プリミティブの、入力88及び90並びに出力92を示している。並べて示されるのは、3つのプロットである。プロット94は、入力88上を伝わる信号を示しており、プロット96は、入力90上を伝わる信号を示しており、プロット98は、出力92上を伝わる信号を示している。プロット94に示されるように、第2の時間間隔中に、入力88上にイベント信号が到着する。プロット96に示されるように、第6の期間中に、入力90上にイベント信号が到着する。プロット98に示されるように、プリミティブは、その入力88及び90のそれぞれがイベント信号を受信した後に初めて応答し、該応答は、第7の期間中における出力92上へのイベント信号の発信である。
図7〜10の信号ベースの記述に共通する特徴は、いずれの場合も、特定の数のイベント信号が受信されるまで制御フローをブロックするプリミティブによってUMLアクティビティ図プリミティブが実装可能であることにある。したがって、図11に示されるようにバリア102、すなわち、(それぞれ異なるソースからくる)適切な数のイベント信号100を受けた後に破られて、1つ以上のイベント信号105の(それぞれの対応する宛先への)発行を引き起こす何らかの命令104の実行をトリガするバリア102として、プリミティブを表すことが可能である。
図12は、図11で与えられた表現の簡易フォーマットを示しており、ここでは、バリアは、ブロック106によって表される。命令は、ブロック108によって表される。命令108の実行をトリガするためにバリア106に達しなければならないイベント信号の数は、ブロック110内の番号によって与えられる。この文書では、これ以降、UMLアクティビティ図プリミティブを表すための図12に与えられた簡易表記をバリア−カウンタフォーマット(BCF:Barrier-counter format)と称し、命令が実施される前にバリアに達しなければならないイベント信号の数を示す番号をカウントダウン値と称する。なお、もし、カウントダウン値がゼロならば、引き続きイベント信号が受信されても何のアクションも生じないことに留意せよ。
図13〜19は、UMLアクティビティ図においてBCFがどのように使用可能であるかを説明している。各UMLプリミティブは、BCF表現にマッピングする(対応付ける)ことができる。このマッピングは、高レベル表現から実装用表現に進むものであり、専用ソフトウェアコンパイラによって一般的に実施可能なタスクである。
図13は、BCF要素を使用してUMLフォークプリミティブがどのように実装可能であるかを例示している。通常のUMLアクティビティ図ヴァージョンのプリミティブが図の左側にあり、BCFヴァージョンが図の右側にある。カウントダウン値は1に設定されており、バリア112が1つのイベント信号を受信した時点で命令114が実施される。命令114は、それぞれ異なる宛先に2つのイベント信号が発信されるように定めており、これにより例えば、2つの同時アクティビティがトリガされる。
図14は、ジョインプリミティブを実装するためにBCFがどのように使用可能であるかを例示している。通常のUMLアクティビティ図ヴァージョンのプリミティブが図の左側にあり、BCFヴァージョンが図の右側にある。このときは、カウントダウン値は2に設定されており、バリア116が2つのイベント信号を受信した時点で命令118が実施される。命令118は、特定の宛先に1つのイベント信号が発信されるように定めている。
図15は、図14に示すBCFヴァージョンのジョインプリミティブが、特定の条件下でどのように誤動作しうるかを例示している。図15は、BCFプリミティブの一方の入力120上で2つのイベント信号が受信され、もう一方の入力122上ではイベント信号が受信されない状況を示している。これは、例えば、イベント信号を定期的に送出するタイマに入力120が接続されている場合に生じることがある。このような状況では、BCFプリミティブ124は、ジョインプリミティブがそうすべきでないにもかかわらず、イベント信号を発信する。BCFプリミティブ124は、そのバリアに達するイベント信号が共通の発信元を有するかどうかを区別することができないゆえに誤動作する。
図16は、図15に提示された誤動作のシナリオを回避するために、図14及び図15に示されたジョインプリミティブがどのように変更可能であるかを例示している。図16では、2つの更なるBCFプリミティブ126及び128が追加され、それぞれ、BCFプリミティブ124と、入力120及び122のうちの対応する一方との間に配されている。BCFプリミティブ126及び128が、それぞれカウントダウン値1を与えられている一方で、BCFプリミティブ124のカウントダウン値は、2のままである。この変更を適用されると、BCFプリミティブ124は、入力120及び122のそれぞれからイベント信号を受信した後に初めてイベント信号を発信し、これは、ジョインプリミティブの正しい振る舞いである。
図17は、マージプリミティブを実装するためにBCFがどのように使用可能であるかを例示している。通常のUMLアクティビティ図ヴァージョンのプリミティブが図の左側にあり、BCFヴァージョンが図の右側にある。カウントダウン値は1に設定され、バリア132が1つのイベント信号を受信した時点で、プリミティブのどの入力が信号を伝えるかにかかわらず、命令130が実施される。
図18は、デシジョンプリミティブを実装するためにBCFがどのように使用可能であるかを例示している。通常のUMLアクティビティ図ヴァージョンのプリミティブが図の左側にあり、BCFヴァージョンが図の右側にある。カウントダウン値は1に設定され、バリア136が1つのイベント信号を受信しただけの時点で命令134が実施される。命令134は、特定の宛先に1つのイベント信号が発信されるように定めており、その宛先は、命令134のなかで指定されるロジック条件の状態によって決定される。
図19は、1つのロジック条件を用いて、2つ以上のデシジョンプリミティブインスタンスを制御可能であることを示すものである。
図20は、マルチプロセッサコンピュータ138を示している。発明を説明するのに役立つ要素のみが示されており、コンピュータアーキテクチャ設計の分野の当業者ならば、コンピュータ138が実際は、図20に示されるよりも多くの更なる構成要素及び要素間接続を含むことがわかるであろう。図に示されるように、コンピュータ138は、中央演算処理装置(CPU)140と、幾つかのベクトル信号プロセッサ142と、幾つかのDMAコントローラ144と、割り込みコントローラ146と、タイマ148と、メモリ150と、シーケンサ152とを含む。これらの要素は、互いに通信し合うことができるように、いずれも、バス154につながれている。更に、割り込みコントローラ146は、接続156によってCPU140にもつながれており、該接続を通じてCPUに割り込みを送信することができる。コンピュータ138のアーキテクチャは、例えば、DMAコントローラ144の数、ベクトル信号プロセッサ142の数、及びメモリ150の大きさがいずれも可変であり、更なるタイマが追加されてもよいという点で、スケーラブル(拡張可能)である。
CPU140は、コンピュータのオペレーティングシステムを実行する。例えば、CP
U140は、ARM RISCプロセッサである。VSP142は、マルチコアであり、それらのコアは、単一命令複数データ(SIMD)フォーマットを有する超長命令語(VLIW)で動作するように設計されている。メモリ150は、コンピュータが処理するべき命令及びデータを記憶している。DMAコントローラ144は、転送プロセスを行うことによる負担をCPU140にかけずに、例えばVSP142が命令及びデータをメモリ150から読み出したりメモリ150に書き込んだりすることを可能にする。割り込みコントローラ146は、ユーザ入力などの外部イベントが処理される必要があるときにライン156を通じてCPU140に割り込みをかける役割を担っている。タイマ148は、定期的に信号を発信し、コンピュータ138のその他の要素は、タイマからの信号を動作の同期化をもたらすための時間基準として使用する。
中央演算処理装置(CPU)140、ベクトル信号プロセッサ142、及びDMAコントローラ144は、いずれも、互いに並列に処理を行う能力を有し、以下ではコンピュータ138の処理要素と称する。この並列性は、VSP142のマルチコア性によって比較的高度に拡張され、それらのコアのVLIW及びSIMDの能力によってなおも更に拡張される。この比較的高度な並列性は、3GPP−LTE(第三世代携帯電話標準化プロジェクト−ロングタームエヴォリューション)規格やCDMA EV−DO(符号分割多重アクセス:エヴォリューション−データ最適化)規格などの計算集約的な無線電気通信モデムのソフトウェアにおける実行のような、集約的なデジタル信号処理アクティビティを行うのに役立つことを意味する。並列性の度合いを拡張するために、コンピュータ138は、バス154につながれた更なる処理要素を含むこともでき、これらは、多くの場合、ビタビ加速器、ターボ復号器、及びRFからベースバンドへのインターフェースのように、特定の信号処理アクティビティを実装するように設計される。
シーケンサ152は、図21に更に詳しく示されている。シーケンサ152は、処理コア158と、シーケンサ命令メモリ159と、包括的に160で示された幾つかのバリア−カウンタ要素(BCE)160と、イベントマッピングブロック161とを含む。
BCE160は、それぞれ、包括的に162で示された経路のうちの対応する経路を通じて処理コア158と通信することができる。各BCE160は、包括的に164で示された経路の内の対応する経路を通じてイベントマッパ161と通信することができる。処理コア158及びイベントマッパ161は、それぞれ経路166及び167を通じてバス154につながれている。処理コア158は、その命令を、経路163を通じてシーケンサ命令メモリ159から取り出す。代替の設計では、シーケンサ命令メモリ159は、シーケンサ152の外部にあって、バス154を通じてアクセスされることが可能である。
各BCE160は、対応するBCFプリミティブを実装するようにプログラムすることができる。イベントマッパ161は、パス167を通じて処理要素(例えばVSP142又はDMAコントローラ144)から受信されたアクティビティ終了ハードウェア信号をイベント信号に変換して、バス164を通じてBCE160に渡す。イベントマッパ161は、経路165を通じて処理コア158によってプログラムされる。この変換は、特定の処理要素からのアクティビティ終了信号が、UMLアクティビティ図のなかの当該処理要素が完了させたばかりのアクティビティに続くBCFプリミティブを実装する特定の一BCE160に送信されるイベント信号に変換されることを保証する。
各BCE160は、同じ構造を有する。これについて、図22に示される典型的なBCE168を参照にして説明する。典型的なBCE168の基本要素は、カウンタ170並びに2つのレジスタ172及び174である。レジスタ172は、典型的なBCE168が実装するべきBCFプリミティブのカウントダウン値を有している。レジスタ174は、メモリ150内におけるアドレスを有しており、そのアドレスから、処理コア158は
、典型的なBCE168が実装するべきBCFプリミティブの一部を構成する命令をフェッチすることができる。典型的なBCE168がイベント信号を受信するたびに、カウンタ170がデクリメントされる。カウンタ170がゼロに達すると、レジスタ174に含まれるアドレスが処理コア158内のレジスタ(不図示)に取り込まれる。
処理コア158は、シーケンサ命令メモリ159のなかのレジスタ174から受信されたアドレスから開始する一連の命令を取り出して実施することによってこのイベントに反応するように設計される。これらの命令によって、処理コア158は、1つ以上の宛先のそれぞれに対して対応する信号を送信する。送信される信号の性質は、宛先の性質に依存する。
・もし、宛先が別のBCE160であるならば、信号は、その別のBCEのカウンタをデクリメントすることを意図されたイベント信号である。UMLアクティビティ図レベルでは、典型的なBCE168によって表されるBCFプリミティブが、(宛先BCEによって実装される)別のBCFプリミティブへのイベント信号を発行する。
・もし、宛先がコンピュータ138の処理要素の1つであるならば、信号は、指定の一連の命令を処理するためのコマンドである。UMLアクティビティ図レベルでは、典型的なBCE168によって表されるBCFプリミティブが、(指定の一連の命令を実施する指定の処理要素によって実施される)アクティビティの実行を引き起こす。
これは、図12に関連して与えられたBCFの定義からの僅かなずれを表している。なぜならば、その定義によると、BCFプリミティブが発行するのは、イベント信号であってコマンドではないからである。しかしながら、BCFはアクティビティ図においてプリミティブを表す代替方法であること、及びアクティビティ図においてアクティビティの開始はイベント信号によってトリガされることを忘れてはならない。これとは対照的に、コンピュータ138では、アクティビティは、処理要素の1つによって実施され、関係する処理要素には、当該アクティビティを実施するために必要な命令をその処理要素に実施させるコマンドが送信されなければならない。
まとめると、処理コア158は、(UMLアクティビティ図プリミティブを実装する)BCE160にはイベント信号を、(UMLアクティビティ図アクティビティを実施するための)処理要素にはコマンドを送信する。UMLアクティビティ図プリミティブは、アクティビティから、そのアクティビティの完了を示すイベント信号を受信することができる。これに対応するために、コンピュータ138内の処理要素は、割り当てられたアクティビティの完了時に、対応する一BCE160にイベント信号を送信する。大半の処理要素は、ハードウェアによって生成されたアクティビティ終了信号をイベントマッパ161に送信し、該イベントマッパ161が、イベント信号をBCE160に送信する。
シーケンサ152の実際の実装形態では、コンピュータ138内の処理要素ごとに、最少で2つ、最多でもしかすると総数一千に及ぶBCE160がある。
特定の背景のなかで特定のUMLアクティビティ図プリミティブを実装するために典型的なBCE168がどのように使用可能であるかの5つの例が、以下で与えられる。
第1の例として、典型的なBCE168が、図1に示されたフォークプリミティブ10を実装するためのものであり、VSP#2がアクティビティ12を、DMAコントローラ#1がアクティビティ14を、CPUがアクティビティ16を実施すると想定する。フォークプリミティブのBCFヴァージョンは、図13に示されている。したがって、レジスタ172内のカウントダウン値は、1に設定される。アクティビティ12の完了時に、VSP#2は、典型的なBCE168にイベント信号を送信し、カウンタは、ゼロにデクリメントされる。これにより、処理コア158に、レジスタ174内のアドレスによって指
定される一連の命令を実施させる。この一連の命令は、DMAコントローラ#1に対してアクティビティ14を開始するためのコマンド信号を送信し、割り込みコントローラ146に対してCPU140がアクティビティ16を開始することを要求するための別のコマンド信号を送信する。
第2の例として、典型的なBCE168が、図2に示されたジョインプリミティブ18を実装するためのものであり、図14に示される簡易ヴァージョンのBCFジョインプリミティブの使用が適切であると想定する。また、DMAコントローラ#1がアクティビティ20を、CPU140がアクティビティ22を、VSP#2がアクティビティ24を実施すると想定する。したがって、ジョインプリミティブを実装するために、レジスタ172に記憶されている値は2である。CPU140がアクティビティ22を完了させる前に、DMAコントローラ#1がアクティビティ20を完了させると想定する。この状況では、DMAコントローラ#1は、典型的なBCE168にイベント信号を送信し、カウンタ170を1にデクリメントさせる。幾らか後に、CPU140がアクティビティ22を完了させ、典型的なBCE168にイベント信号を送信すると想定する。これにより、カウンタがゼロにデクリメントされ、処理コア158はレジスタ174内のアドレスによって指定された一連の命令を実施する。この一連の命令により、アクティビティ24を開始するためのコマンド信号がVSP#2に送信される。
第3の例として、典型的なBCE168が、図3に示されたデシジョンプリミティブ26を実装するためのものであり、VSP#2がアクティビティ28を、DMAコントローラ#1がアクティビティ30を、DMAコントローラ#2がアクティビティ32を実施すると想定する。デシジョンプリミティブのBCFヴァージョンは、図18に示されている。したがって、デシジョンプリミティブを実装するために、レジスタ172に記憶されている値は1であり、レジスタ174に記憶されているアドレスは、処理コア158が一連の命令の始まりを見つけることができるメモリ150内の場所である。それら一連の命令によって、デシジョンプリミティブに関連付けられたロジック条件が評価され、該ロジック条件の状態にしたがって、アクティビティ30を開始させるためにDMAコントローラ#1に又はアクティビティ32を開始させるためにDMAコントローラ#2に、いずれか正しい方にコマンド信号が送信される。VSP#2は、アクティビティ28を完了するときに、典型的なBCE168にイベント信号を送信し、カウンタ170をゼロにデクリメントさせる。これにより、処理コア158がトリガされて、レジスタ174内のアドレスによって指定される一連の命令を実施し、その結果として、関連付けられたロジック条件の状態に応じてアクティビティ30又は32を開始する。
第4の例として、典型的なBCE168が、図4に示されたマージプリミティブ34を実装するためのものであり、VSP#1がアクティビティ36を、CPU140がアクティビティ38を、VSP#2がアクティビティ40を実施すると想定する。マージプリミティブのBCFヴァージョンは、図17に示されている。したがって、レジスタ172内のカウントダウン値は、1に設定される。次に、VSP#1がアクティビティ36を完了させ、典型的なBCE168にイベント信号を送信するとする。このイベント信号の到着により、カウンタ170がゼロにデクリメントされ、これにより処理コア158がトリガされて、レジスタ174内のアドレスによって指定される一連の命令を実施する。この一連の命令により、VSP#2に対してコマンド信号を送信し、アクティビティ40を開始させる。その後は、アクティビティ38がいつ完了するか又はアクティビティ38が完了するかどうかは問題でなくなる。
第5の例として、典型的なBCE168が、図23に示されたフォークプリミティブ176を実装するためのものであり、VSP#2がアクティビティ178を、DMAコントローラ#1がアクティビティ180を、別のBCEが、最終的にアクティビティ184又
はアクティビティ186のいずれかを開始させるデシジョンプリミティブを実装すると想定する。フォークプリミティブのBCFヴァージョンは、図13に示されている。したがって、レジスタ172内のカウントダウン値は、1に設定される。VSP#2が、アクティビティ178の完了時に、典型的なBCE168にイベント信号を送信すると、カウンタがゼロにデクリメントされて、これにより処理コア158がトリガされて、レジスタ174内のアドレスによって指定される一連の命令を実施する。これら一連の命令により、DMAコントローラ#1に対してアクティビティ180を開始させるためのコマンド信号が送信され、デシジョンプリミティブ182を実装する別のBCEに対してコマンド信号ではなくイベント信号が送信される。
このように、BCEの振る舞いは、そのカウントダウン値と、BCEのカウンタがゼロにデクリメントされたときにトリガされる命令シーケンスとによって定められることが明らかである。BCEのカウントダウン値とその命令シーケンスとの組み合わせは、これ以降、BCEの「構成」と称する。BCEの構成は、UMLアクティビティ図内の特定の場所における特定のプリミティブの役割を全うするように設定することができる。
UMLアクティビティ図への従来のアプローチでは、先ず、アナリストが、ソフトウェアで実装するために提案されたシステムを調査し、そのシステムを記述するUMLアクティビティ図を作成する必要がある。次いで、プログラマが、アナリストによって提供されたUML記述をもとに作業し、ソフトウェアを実行する予定の特定のコンピューティングハードウェアアーキテクチャの制約にしたがいながら、システムを実装するソフトウェアを作成する必要がある。ところが、シーケンサ152を使用することにより、UMLアクティビティ図から直接、アクティビティ図を実装するソフトウェアを作成することが可能となる。これは、UMLアクティビティ図のなかの各アクティビティにソフトウェアコードブロックを提供し、UMLアクティビティ図の各プリミティブを、適切な構成を与えられたBCEによって実装される対応するBCEプリミティブに変換することによって達成される。
UMLアクティビティ図は、通常は、XMI(XML(拡張マークアップ言語)メタデータ交換)フォーマットで作成される。図24は、シーケンサ152によって実行可能でありXMIフォーマットUMLアクティビティ図で記述されるシステムを実装するためのソフトウェアパッケージを自動的に作成するソフトウェアツールを説明したフローチャートである。ツールは、例えば、VSP142の数、DMAコントローラ144の数、メモリ150の大きさ、各種要素の処理速度、各種要素の電力消費などの、コンピュータ138のアーキテクチャに関する知識を与えられる。ツールは、また、ソフトウェアブロックのライブラリも提供され、これらのブロックは、それぞれ、XMI UMLアクティビティ図のアクティビティの1つを実施するために処理要素の1つによって実行されるためのものである。ツールは、また、ソフトウェアブロックがそれらに対応する処理要素上での実行にどれだけの時間がかかるかを示す表示も提供される。
ステップS1では、XMIフォーマットUMLアクティビティ図が提供される。ステップS2では、ツールは、XMIフォーマットUMLアクティビティ図内のプリミティブを識別する。ステップS3では、ツールは、それが識別したプリミティブ用の個々のBCE構成を作成する。ステップS4では、ツールは、アクティビティ図の各アクティビティについてライブラリを検索し、そのアクティビティを実施するために処理要素の1つによって実行可能なソフトウェアブロックを識別する。導出されたひとそろいのBCE構成及び選択されたひとそろいのソフトウェアブロックは、コンピュータ138の電力消費について指定されたあらゆる制約と、XMI UMLアクティビティ図によって表されるシステムの一部を実施するためにコンピュータが費やす時間の長さとを考慮に入れることによってツールがたどり着くものである。ステップS5では、ツールは、BCE構成及び識別さ
れたソフトウェアブロックを、XMIフォーマットUMLアクティビティ図によって記述されるシステムを実装するためにシーケンサ152によって実行可能なソフトウェアパッケージとして送る。
シーケンサ152は、ステップS3において決定された構成にしたがってBCEを構成し、BCEが必要に応じて処理要素に対してステップS4で識別されたソフトウェアブロックを実行するように命じるようにすることで、XMI UMLアクティビティ図によって記述されるシステムをソフトウェアにより実装することができる。
ソフトウェアツールは、もし必要であれば、以下の特徴のうちの1つ以上も含めることによって強化することができる。
・ツールは、対象アーキテクチャの処理要素が対象システムのアクティビティ以外の追加プロセスを実行可能であるかどうかを評価してもよい。ツールは、処理要素が現UMLアクティビティ図用の「スレッド」を実行する能力のみを有するのではなく、更なるUMLアクティビティ図を実装するソフトウェアに対応する1つ以上の追加スレッドも実行する能力を有すると判断することもある。その場合は、ソフトウェアツールを、処理要素上での複数のスレッドのスケジューリングを再編成するに構成し、仮想化方式を実装するように構成してもよい。
・ツールは、作成されたソフトウェア内にアクティビティの開始地点及び終了地点にブレークポイントを含めるように構成することができる。すると、これらのブレークポイントは、アクティビティ図のグラフィカルユーザインターフェース(GUI)表示で示すことができ、そして、ソフトウェアのパフォーマンスをアクティビティ図のレベルで評価できる。
マルチプロセッサシステ設計の分野の当業者にならば、発明の範囲から逸脱することなく上述の技術に対して様々な変更が可能であることが明らかであろう。例えば、BCE160は、処理コア158を通じてコードの実行をトリガするためにプログラム可能な値からゼロにカウントダウンするものとして説明された。代替の実装形態では、しかしながら、BCE160は、コード実行をトリガするために何らかのプログラム可能な値に達するまでゼロからカウントアップするように構成することもできる。
並列に動作可能な処理要素グループの動作を指示するシーケンサ152の概念は、様々に異なる目的を意図されたコンピュータに使用することができる。例えば、この概念は、3GPP LTE規格やCDMA EV−DO規格などをもとにしたソフトウェア無線通信モデムでの実装を意図されたコンピュータに使用することができる。
現代の携帯電話端末は、ほぼ例外なく、幾つかのモードで動作することを求められる。例えば、GSM及び3Gの両方のスペクトルを割り当てられ、第三世代携帯電話標準化プロジェクト(3GPP)によって定められた標準規格群にしたがってネットワークを動作させるオペレータは、優れたスペクトル効率を得ることによって動作費用を最小限に抑えるために受信可能エリアでは電話端末が3Gインフラを使用することを好むが、3Gネットワークの受信が不可能であったり混雑していたりするエリアでは(通話中も「アイドルモード」にあるときもいずれも)電話端末がシームレスにGSMで動作することを好む。一部の市場では、ユーザは、2つのネットワークの顧客であることが一般的であり、両方のネットワークに同時に「常駐」し、したがって通話の受信及び発信又はデータの送信及び受信をいずれのネットワークでも行える「二重モード」電話端末を必要とする。このような電話端末は、基本的に非同期な2つのインターフェース上で動作しなければならない。最後の例は、最新の「スマートフォン」であり、セルラ方式の無線インターフェース(それ自体が恐らくは二重モード3G/GSMであろう)も使用しつつ、IEEEによって定められたWiFi規格を使用して無線LANで同時に通信する能力も有する。費用及び
電力消費を抑えるためには、無線電話端末で使用されるハードウェアの量を最小限に抑えることが望まれ、したがって、SDRの実装形態では、複数の非同期な規格に対して共通の処理プラットフォームを使用することが好まれる。このような能力が提供されたら、今度は、例えば、販売された後、異なる規格が使用されている地域にユーザがローミングしたときに新しいソフトウェアをダウンロードすることによって製造後にデバイスを更新可能であること、及びこれをデバイス内でシームレスに実行可能であることも望まれる。
したがって、相互作用を考慮する必要がない異なるプロトコルを、共通の処理プラットフォーム上の独立したソフトウェアインスタンスを使用して処理する場合に、これらのプロトコルを非同期動作させることが望ましい。
本発明は、これから参照される添付の特許請求の範囲によって定められる。
次に、単なる例として、添付の図面を参照にすることによって本発明の様々な実施形態が説明される。
フォークノードの使用を示したUMLアクティビティ図である。 ジョインノードの使用を示したUMLアクティビティ図である。 デシジョンノードの使用を示したUMLアクティビティ図である。 マージノードの使用を示したUMLアクティビティ図である。 イニシャルノードの使用を示したUMLアクティビティ図である。 ファイナルノードの使用を示したUMLアクティビティ図である。 デシジョンノードに関連付けられた信号フローを示した図である。 マージノードに関連付けられた信号フローを示した図である。 フォークノードに関連付けられた信号フローを示した図である。 ジョインノードに関連付けられた信号フローを示した図である。 UMLアクティビティ図プリミティブの変更形態の概念図である。 図11の変更形態のプリミティブの簡易表記を示した図である。 フォークプリミティブを表すために図12の簡易表記がどのように使用可能であるかを示した図である。 ジョインプリミティブを表すために図12の簡易表記がどのように使用可能であるかを示した図である。 図14で使用される変更形態のプリミティブが或る種の条件下でどのように誤動作しうるかを示した図である。 図15で提示される誤動作のシナリオを回避する形でジョインプリミティブを表すために、図11で与えられた変更形態の幾つかのプリミティブがどのように併用可能であるかを示した図である。 マージプリミティブを表すために図12の簡易表記がどのように使用可能であるかを示した図である。 デシジョンプリミティブを表すために図12に簡易表記がどのように使用可能であるかを示した図である。 デシジョンプリミティブの2つ以上のインスタンスを制御するために1つのロジック条件がどのように使用可能であるかを示した図である。 マルチプロセッサコンピュータを概略的に示した図である。 図20のシーケンサを概略的に示した図である。 図21のバリア−カウンタ要素を概略的に示した図である。 或るプリミティブが別のプリミティブをトリガすることができるアクティビティ図を示した図である。 図20のシーケンサを使用して実行可能なソフトウェアを作成するためのツールの動作を示した図である。 図20に示されるようなマルチプロセッサコンピュータを埋め込まれた携帯電話を概略的に示した図である。 図25の携帯電話内で着手されるタスクのパフォーマンスを示したタイミング図である。 図25の携帯電話の変形を概略的に示した図である。 図21のシーケンサ内のリソースがどのように区分け可能であるかを概略的に示した図である。 図27の携帯電話内で着手されるタスクのパフォーマンスを示したタイミング図である。
図25は、マルチプロセッサコンピュータ138が埋め込まれた携帯電話300を示している。図25には、発明を説明するのに役立つ要素のみが示されており、コンピュータアーキテクチャ設計の分野の当業者ならば、携帯電話300が実際は、図25に示されるよりも多くの更なる構成要素及び要素間接続を含むことがわかるだろう。実際、図25は、明瞭さを期するために、図20から、携帯電話300の背景のなかでマルチプロセッサコンピュータ138がどのように動作するかを説明するのに必要な要素のみを示している。簡潔さを期するために、図20と同一の図25の要素は、図25でも同じ参照番号を維持しており、それらの要素の性質及び機能の説明は、ここでは繰り返さない。
図20と同一の要素に加えて、図に示された電話300は、RFインターフェース309と、無線送受信器(TRX)310と、アンテナ311とを含むものとして示されている。代表的なのは、タイムスロットダウンリンク(基地局から携帯端末)プロトコルを電話300が使用することを可能にするモデムを実現するためにマルチプロセッサコンピュータ138が使用される場合である。DMAコントローラ144は、RFインターフェース309と通信し、RFインターフェース309は、無線送受信器(TRX)310に接続され、無線送受信器(TRX)310は、アンテナ311を使用してセルラ方式又はWiFiなどの無線インターフェースを通じて通信する。RFインターフェース309は、タイマ148から直接、スロット同期信号312を受信する。メモリ150内では、2つの領域309、すなわちバッファ_0及びバッファ_1が、受信されたデジタル化RFサンプル用のバッファとして予約(reserve)される。これらの各バッファは、一タイムス
ロット全体分の受信データに対して十分であり、「奇数」スロットと「偶数」スロットのためにそれぞれ交互に使用される。
図26は、イベントどうしがどのように協調されるかを示したタイミング図である。RF信号401は、概念的に複数のタイムスロットに分割された連続するデータ変調搬送波である。スロット(n−1)とスロット(n)との間の概念的なスロット境界では、信号ライン312上のスロット同期パルス402が、RFインターフェースをトリガしてバッファ_1へのデータサンプルの格納を開始する。このとき、バッファ_0は、先のスロット(n−1)中に取得されたサンプルで既に満杯である。DMAコントローラ144は、スロット(n−1)からバッファ一杯のサンプルが利用可能であることを示すDMA完了信号404を生成し、該信号はシーケンサ152をトリガしてシーケンスプログラムの実行を開始させる。このシーケンスプログラムは、先のスロット中に取り込まれて記憶済みであり、バッファ_0から取得されるデータを処理するようにコンピュータ138内の様々な処理リソースに指示する。シーケンスの終わりに、シーケンサ152は、割り込み要求(IRQ)信号406を生成し、この信号は、CPU140に送られ、CPU140に、バッファ_1に記憶されたスロット(n)データを処理するために必要とされるシーケンサプログラムを作成させて(407)そのプログラムをメモリ150に取り込ませる。
シーケンサ152のBCE160は、初期化しなおす必要があるが、プログラムは、多くの場合、実行されたばかりのプログラムと同じである。しかしながら、次スロットにおけるシーケンスは、例えば、受信された復号データに応じて異なるかもしれない。
これまでに説明された動作から明らかでない態様は、1つには、スロット同期信号402が受信信号内の実際のスロット境界と同期していることをシステムがどのように保証するかである。これは、例えば、受信データのなかから既知のパターンを見つけてそのパターンの位置と同期パルスとの間の時間的ずれを算出するタイプの、同期用に特別に設計されたシーケンスを有することによって達成することができる。次いで、タイマ148が、初期の同期を達成するためにこの時間的ずれを伴うようにプログラムされ、その後に続くシーケンスは、進行中の時間的ずれを監視してタイマ148に補正を送る動作を含むことになる。
図26では、(一スロットぶんのデータを処理するための)ステージ405及び(続くスロット中に受信されるデータを処理するために使用されるシーケンスを生成するための)ステージ407におけるシーケンス実行が、一スロットのうちのかなりの持続時間に及ぶ1つのアクティビティとして示されているが、時間を要するアクティビティの大半は、(明瞭さを期するために図25では省略されている)VSP142などの、システムの処理リソースによって実施される。シーケンサ152は、イベントによってトリガされたときにのみ起動すればよく、必要とされる行為は、高周波数システムクロックの数サイクルぶんしかかからない。したがって、シーケンサ152は、軽負荷のハードウェアエンジンである。また、シーケンサ152は、同時にタスクを完了させる複数の異なる処理要素などの、異なるそして恐らくは無関係の複数のソースから実質的に同時に到着するイベントを扱うように、及びこれらを適切なBCE160に正しく登録するように設計されなければならないこともわかる。
図26のタイミング図に関する上記の記述から、説明されたようなシステムの処理におけるCPU140のアクティビティは、潜在的に最小限に抑えられる。なぜならば、CPU140が、スロットごとに一度、次のスロット用の適切なシーケンスプログラムを見つけてそのシーケンスをシーケンサ152による使用のためにメモリ150に取り込むだけでよいからである。このアクティビティは、割り込みによってトリガされ、また、CPU140は、通常、割り込みを完全にサポートするARM RISCコアなどのタイプであるので、追加のタスクをCPU140で実行可能である。このようなタスクは、通常は、優先度の低い性質のものであるが、CPU140が実際に時間内にタスクを完了させる能力を有するのであれば、CPU140は、もちろん、より優先度の高いその他のタスク(例えばステージ405自体のシーケンスの一部として必要とされるものなど)に使用されることも可能である。
図27は、2つの無線インターフェースを同時に使用することができる電話300の変形である携帯電話500を示している。簡潔さを期するために、図25と同一の図27の要素は、図27でも同じ参照番号を維持しており、それらの要素の性質及び機能の説明は、ここでは繰り返さない。図25で提供された要素に加えて、電話500は、第2のタイマ512と、第2のDMAコントローラ513と、第2のRFインターフェース514と、第2のTRX515と、第2のアンテナ516とを含む。これらの追加要素512〜516は、もちろん、アンテナ311とともに使用される無線インターフェースとは異なる又は同じ第2の無線インターフェースを通じて電話が通信することを可能にする目的で提供されるものである。タイマ512は、自律性であり、タイマ148とは異なる周波数で動作することができる。RFインターフェース514及びDMAコントローラ513は、第2のTRX515からデータを読み出す。なお、第2のTRX515は、第1のRFチェーン309〜311とは異なる周波数バンド及び無線インターフェースプロトコルに関
連付けられる。第2のRFチェーン514〜516からのデータは、第1と同様に交互に、バッファ_2及びバッファ_3 505に書き込まれる。バッファ_2及びバッファ_3 505は、バッファ_0及びバッファ_1 505とは区別されるメモリ領域である。
電話500は、また、図28に示されるように、幾分異なる方式で(ただしその構成を変更することなく)シーケンサ152を使用する。シーケンサ152は、図28においてプログラム_1及びプログラム_2として示される2つのプログラムを実行する。これらのプログラムは、それぞれRFチェーン309〜311及びRFチェーン514〜516に必要とされるシーケンスを実行するためのものである。BCE160は、ここでは、重複しない(disjoint)グループ160aと160bとに分けて扱われ、シーケンサ命令メモリ158は、プログラム_1用とプログラム_2用とで重複しない領域を有する。BCEグループ160a及び160bは、プログラム_1及びプログラム_2にそれぞれ関連付けられる。これらのBCE及びプログラムメモリ領域は、重複せず、別々に定義され別々のシーケンスに関連付けられるが、実行中にタスクがそれぞれ異なる処理要素に割り当てられる限り、シーケンサ152は、両方のシーケンスを並列に実行可能であることが明らかであろう。BCEは、任意のアルゴリズムにしたがってグループ分けすることができる。例えば、BCEは、2つのグループに任意に分けることができるし、均等にグループ分けすることもできる。したがって、(例示の実施形態のように)2つのグループがある場合は、BCEは、50:50の関係性でグループ分けすることができる。
図29は、電話500の背景のなかでマルチプロセッサコンピュータ138がどのように振る舞うかを示したタイミング図である。一方の無線インターフェース701は、第2の無線インターフェース702よりも遅いスロットタイミング速度で動作する。これらの無線インターフェースは、ともに、データを取得するために別々のハードウェアを使用するので、同じシステム内に共存することができる。同じく、各無線インターフェースは、シーケンサ152のなかの重複しないリソースを使用し、シーケンサは、同時イベントを正しく解決可能でなければならないので、複数のシーケンスは、同時に同じ処理リソースの使用を試みるものでない限り、たとえ非同期であっても正しく制御されることが可能である。
図29に示されたスロット構造は、それぞれ等間隔ではあるが互いに非同期であるので、CPU140へのIRQ信号は重なることがある。しかしながら、割り込みコントローラは、このようなイベントで調整を行って正しい動作を保証するように設計されるのが一般的である。より深刻な問題は、一方の無線インターフェースで次スロットを処理するためにCPU140によってシーケンスが生成されたときに、それが、もう一方の無線インターフェースでの処理に既に割り振られた処理リソースや、もう一方の無線インターフェースでの処理に必要とされている処理リソースを使用するかもしれないことである。この問題を解決するための方法は、1つには、別々で重複しないひとそろいの処理リソースを使用するように予め別々のシーケンスプログラムを書くことである。しかしながら、これは、プロトコル間でリソースを共有する機会が活かされないことを意味する。また、実行されるシーケンスを取り込むことによって両リソースに関する知識を有する追加のスケジューリング手段をCPUに設けてもよいし、分離手段を設けてもよい。
当業者にならば、上述された発明の実施形態に対して様々な変更が可能であることが明らかである。例えば、3つ以上のRF送受信器チェーンがあってもよく、各チェーンは、それ自身の、留保された重複しないBCEグループと、それ自身の、そのBCEがトリガされたときに実施される必要がある命令を保持するための留保された重複しないメモリ領域とを伴う。
上述された実施形態は、受信されたダウンリンク信号を処理するという代表的な状況を使用しているが、シーケンサ152のリソースを区分するためとして説明された方式は、2つの送受信器チェーンで異なるアップリンク通信を行うなどの、その他のアクティビティにも使用されることが可能である。より広義には、シーケンサ152の区分が取り組むタスクの厳密な性質は、重要でないことが理解される。例えば、タスクは、電気通信に無関係なプロセスであるかもしれない。

Claims (11)

  1. イベント信号によってトリガされるとともにイベント信号を発信するプリミティブによってつながれた複数のアクティビティを含む統一モデリング言語アクティビティ図を実装するソフトウェアを実行するのに適したコンピュータであって、
    a)互いに並列に処理を行うことが可能であり、それぞれが前記アクティビティの少なくとも1つを実施する能力を有する複数の処理要素と、
    b)前記プリミティブを実装するように構成されるシーケンサであって、
    b1)プリミティブをトリガするために必要な1つ又は複数の前記イベント信号を受信したことを検出するための検出手段と、
    b2)プリミティブの前記トリガの検出に対して、
    b2a)前記アクティビティ図内において前記トリガされたプリミティブからのイベント信号の受け手として示される処理要素に、アクティビティを実施するように指示すること、または
    b2b)前記検出手段に別のプリミティブに対するイベント信号を送信すること、
    の少なくともいずれかの応答を与えることによって応答するように構成される信号発信手段と、
    を含むシーケンサと、
    を備え、
    c)前記検出手段は、複数の検出要素を含み、
    d)各検出要素は、各プリミティブをトリガするために必要な1つ又は複数の前記イベント信号を検出すること、及び各プリミティブがトリガされたことを前記信号発信手段に通知することが可能であり、
    e)前記コンピュータは、第1のタスクの実行のために第1のグループの検出要素を予約し、前記第1のタスクと時間的に重なる第2のタスクの実行のために、第1のグループと重複しない第2のグループの検出要素を予約するように構成される、
    コンピュータ。
  2. 請求項1に記載のコンピュータであって、
    前記第1のグループの検出要素がトリガされたときに前記信号発信手段によって実施されるべき命令を第1の領域内に保持し、前記第2のグループの検出要素がトリガされたときに前記信号発信手段によって実施されるべき命令を第1の領域と重複しない第2の領域に保持するように構成されるメモリ手段をさらに備える、
    コンピュータ。
  3. 請求項2に記載のコンピュータであって、
    前記信号発信手段は、前記第1のグループ及び前記第2のグループのいずれかのプリミティブがトリガされたことを示す指示に対して、前記プリミティブにリンクされた第1の領域及び第2の領域の対応するいずれかにある一連の命令であり、前記応答をコアに行わせる一連の命令を実施することによって応答する処理コアを含む、
    コンピュータ。
  4. 請求項1から3のいずれか1項に記載のコンピュータであって、
    各検出要素は、その対応するプリミティブのトリガのために必要な1つ又は複数の前記イベント信号をカウントするためのカウンタを含む、
    コンピュータ。
  5. 請求項1から4のいずれか1項に記載のコンピュータであって、
    少なくとも1つの検出要素は、そのトリガ後に別のプリミティブを実装するように前記シーケンサによって再構成可能である、
    コンピュータ。
  6. 請求項1から5のいずれか1項に記載のコンピュータであって、
    前記処理要素は、ベクトル信号プロセッサ、中央演算処理装置、ビタビ加速器、ターボ復号器、外部の無線送受信器へのデジタルインターフェース、及びダイレクトメモリアクセスコントローラのうちの2つ以上を含む、
    コンピュータ。
  7. 請求項1から6のいずれか1項に記載のコンピュータであって、
    前記第1のタスク及び前記第2のタスクは、非同期である、
    コンピュータ。
  8. 請求項1から7のいずれか1項に記載のコンピュータであって、
    前記第1のタスクは第1のアクティビティ図に関連付けられ、前記第2のタスクは第2のアクティビティ図に関連付けられる、
    コンピュータ。
  9. 請求項1から8のいずれか1項に記載のコンピュータを備える無線通信装置であって、
    前記第1のタスク及び前記第2のタスクによって処理されるべき無線信号を受信するための少なくとも1つの無線周波数処理チェーンを備える、
    無線通信装置。
  10. 請求項9に記載の無線通信装置であって、
    前記第1のタスク及び前記第2のタスクのそれぞれ用に、対応する無線周波数処理チェーンがある、
    無線通信装置。
  11. 請求項9又は10のいずれかに記載の無線通信装置であって、
    前記無線通信装置は、携帯電話、スマートフォン、又はタブレット型コンピュータのうちの1つである、無線通信装置。
JP2013071989A 2012-03-29 2013-03-29 並列処理システムにおけるプログラムの制御 Active JP6321324B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB1205617.2A GB2500681A (en) 2012-03-29 2012-03-29 Implementing UML activity diagrams via task sequencing
GB1205617.2 2012-03-29

Publications (3)

Publication Number Publication Date
JP2013211015A JP2013211015A (ja) 2013-10-10
JP2013211015A5 JP2013211015A5 (ja) 2016-05-19
JP6321324B2 true JP6321324B2 (ja) 2018-05-09

Family

ID=46159965

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013071989A Active JP6321324B2 (ja) 2012-03-29 2013-03-29 並列処理システムにおけるプログラムの制御

Country Status (3)

Country Link
EP (1) EP2645242A3 (ja)
JP (1) JP6321324B2 (ja)
GB (1) GB2500681A (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9552562B2 (en) * 2014-09-26 2017-01-24 Oracle International Corporation Visual information builder for business rules
CN106775964A (zh) * 2016-11-11 2017-05-31 西北工业大学 时间/事件混合触发的操作系统架构及任务调度方法
CN115454590A (zh) * 2022-08-09 2022-12-09 北京机电工程研究所 一种面向活动图的仿真调度方法和系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2482141B (en) * 2010-07-20 2012-07-18 Cognovo Ltd Digital data processing systems

Also Published As

Publication number Publication date
GB2500681A (en) 2013-10-02
GB201205617D0 (en) 2012-05-16
JP2013211015A (ja) 2013-10-10
EP2645242A3 (en) 2014-06-11
EP2645242A2 (en) 2013-10-02

Similar Documents

Publication Publication Date Title
US10789191B2 (en) Real-time embedded system
KR102206529B1 (ko) 제네릭 인터페이스를 제공하기 위한 방법 및 제네릭 인터페이스를 구비한 마이크로컨트롤러
Tinnirello et al. Wireless MAC processors: Programming MAC protocols on commodity hardware
US9703595B2 (en) Multi-core system with central transaction control
US10193705B2 (en) Method, communication network, and control unit for the cyclical transmission of data
US20170329632A1 (en) Device scheduling method, task manager and storage medium
KR20120099222A (ko) Plc와 그의 작동방법 및 plc 시스템
KR102202408B1 (ko) 제네릭 인터페이스를 제공하기 위한 방법 및 제네릭 인터페이스를 구비한 마이크로컨트롤러
US20220321493A1 (en) Method for transmitting data packet and apparatus for implementing the same
JP6321324B2 (ja) 並列処理システムにおけるプログラムの制御
US11196647B2 (en) Area efficient traffic generator
EP3679705A1 (en) Wireless communications apparatus and method for performing low latency high throughput layer 2 operations
US7917793B2 (en) Apparatus providing locally adaptive retiming pipeline with swing structure
Valck et al. Exploiting programmable architectures for WiFi/ZigBee inter-technology cooperation
US9507569B2 (en) Digital data processing systems
JP6069309B2 (ja) 汎用マルチ無線アクセス技術
WO2013080289A1 (ja) 信号処理装置及び信号処理方法
CN112929283B (zh) 数据处理方法、装置、设备及存储介质
JP7388561B2 (ja) コンピュータシステムおよび演算処理方法
US9336172B2 (en) Parallel computer system, data transfer device, and method for controlling parallel computer system for performing arbitration
CN109240978B (zh) 一种搭建加速平台的fpga系统、设备及加速平台
WO2022141921A1 (zh) 一种测量方法及装置
US20090240855A1 (en) Method and apparatus for control in reconfigurable architecture
Schoofs et al. Portability in MAC protocol and transceiver software implementations for LR‐WPAN platforms
CN114270318A (zh) 用于通过主从轮换执行任务的方法及处理单元

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20151126

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20151126

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160328

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160328

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170523

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20170822

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171023

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180306

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180405

R150 Certificate of patent or registration of utility model

Ref document number: 6321324

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250