JP5360061B2 - マルチプロセッサシステム及びその制御方法 - Google Patents

マルチプロセッサシステム及びその制御方法 Download PDF

Info

Publication number
JP5360061B2
JP5360061B2 JP2010523720A JP2010523720A JP5360061B2 JP 5360061 B2 JP5360061 B2 JP 5360061B2 JP 2010523720 A JP2010523720 A JP 2010523720A JP 2010523720 A JP2010523720 A JP 2010523720A JP 5360061 B2 JP5360061 B2 JP 5360061B2
Authority
JP
Japan
Prior art keywords
processor
sub
processing
command
data
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
JP2010523720A
Other languages
English (en)
Other versions
JPWO2010016169A1 (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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2010523720A priority Critical patent/JP5360061B2/ja
Publication of JPWO2010016169A1 publication Critical patent/JPWO2010016169A1/ja
Application granted granted Critical
Publication of JP5360061B2 publication Critical patent/JP5360061B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Bus Control (AREA)

Description

本発明は、マルチプロセッサシステム及びその制御方法に関し、特に複数のサブプロセッサを並列制御するマルチプロセッサシステム及びその制御方法に関する。
マルチプロセッサシステムは、一般に、各サブプロセッサの機能が均質(ホモジニアス)且つ対称に割り当てられたSMP(Symmetric Multi−Processor)型のものと、各サブプロセッサの機能が不均質(ヘテロジニアス)且つ非対称に割り当てられたAMP(Asymmetric Multi−Processor)型のものとに分類される。
ここで、AMP型のマルチプロセッサシステムにおいては、従来、メインプロセッサが他の複数のサブプロセッサを直接制御する方式が一般的であった。これは、システム全体を管理して主要な処理を行うメインプロセッサが、機能分散された各サブプロセッサの起動制御も実行するものである。各サブプロセッサに対する制御は、メインプロセッサがアクセス権を持つシステムバスを用いて行われる。各サブプロセッサからの処理完了通知は、各サブプロセッサから割込信号をメインプロセッサに対して入力し、メインプロセッサがシステムバスを用いて各サブプロセッサの状態を確認することにより行われる。これにより、システム全体の状態管理や各サブプロセッサの状態管理を一箇所に集約できるため、マルチプロセッサシステム全体の制御シーケンスの検討及び実装が容易となるという利点や、デバッグ時の可観測性も高いという利点があった。
しかしながら、上記の方式には、近年のシステムLSI(Large Scale Integration)の大規模化や複雑化に伴い、システムLSI全体の処理が破綻してしまうという問題があった。その主な要因は、システムLSI内に搭載されるサブプロセッサ数の増加により、従来のメインプロセッサが全体の制御を行うアーキテクチャでは、処理負荷がメインプロセッサに集中して輻輳してしまうためである。
この問題に対処するための関連技術1〜3が既に提案されている。以下、これらの関連技術1〜3を順に説明する。
[関連技術1]
特許文献1には、メインプロセッサに代わってサブプロセッサを並列制御する実行制御装置を備えたマルチプロセッサシステムが記載されている。ここで、実行制御装置は、大略、2つ以上のサブプロセッサをパイプライン的に並列動作させることで、メインプロセッサからの負荷分散と各サブプロセッサの稼働率向上を図るものである。
具体的には、このマルチプロセッサシステムは、図22に示す如く、メインプロセッサとして機能するマスタプロセッサ1110と、サブプロセッサとして機能するスレーブプロセッサ1120及びDMA(Direct Memorry Access)コントローラ1130と、スレーブプロセッサ1120の作業領域として用いられるローカルメモリ1121と、メインメモリ1140と、コマンド実行制御装置1150とで構成されている。この例では、DMAコントローラ1130は、ローカルメモリ1121とメインメモリ1140の間のデータ転送を制御する。なお、ローカルメモリ1121には、4つのバンク#0〜#3が割り当てられている。
また、コマンド実行制御装置1150は、マスタプロセッサ1110により使用される複数のコマンドが予め格納された通信メモリ1151と、マスタプロセッサ1110からのコマンド列を受け付けるコマンドキュー1152と、このコマンドキュー1152にて受け付けたコマンド列内の各コマンドをスレーブプロセッサ1120及びDMAコントローラ1130に並列実行させる実行制御部1160と、スレーブプロセッサ1120及びDMAコントローラ1130からコマンドの実行完了を示す完了通知信号を受信する完了受付部1153と、この完了通知信号をマスタプロセッサ1110からの要求に応じて伝達する完了通知部1170と、を備えている。
また、実行制御部1160は、次コマンドID保持部1161及び1162、並びにバンクテーブル1163を有する。ここで、次コマンドID保持部1161及び1162は、実行制御部1160がスレーブプロセッサ1120及びDMAコントローラ1130に次に実行させるべきコマンドのIDを格納するためのメモリ領域である。また、バンクテーブル1163は、コマンドにてローカルメモリ1121へのアクセスを指示する際に用いる仮想バンク番号と、ローカルメモリ1121内のバンクを実際に特定する物理バンク番号とを対応付けて管理する。
また、完了通知部1170内には、各コマンドの実行が完了したか否かを管理するための完了テーブル1171が設けられている。
[関連技術2]
また、図示されないが、他のサブプロセッサの状態を確認するためにステータスレジスタを実装する技術が一般に知られている。具体的には、或るサブプロセッサが自身の状態変化を通知したい場合にステータスレジスタに状態変化を書き込むと、通知先の他のサブプロセッサに対する割込信号が発生する。当該割込信号を受けたサブプロセッサは、ステータスレジスタから状態変化を取得する。
[関連技術3]
また、特許文献2には、2つのプロセッサ同士間の通信をFIFO(First In First Out)バッファを用いて行うマルチプロセッサシステムが記載されている。具体的には、このマルチプロセッサシステムは、図23に示す如く、プロセッサ2101及び2102同士間の通信に用いるFIFOバッファ2103と、このFIFOバッファに対するアクセスを制御するアクセス制御回路2104とを有する。また、アクセス制御回路2104内にはFIFOバッファ2103のデータ段数を設定するための容量設定レジスタ2105が設けられており、このレジスタ2105の設定値に応じてプロセッサ2101及び2102の各々に対するFIFOバッファ2103の容量配分が行われる。また、プロセッサ2101及び2102からのFIFOバッファ2103に対するアクセスは、書込ポインタ2106及び2108、並びに読出ポインタ2107及び2109をそれぞれ用いて制御される。
特開2003−208412号公報 特開2003−036240号公報
しかしながら、上記の関連技術1〜3には、マルチプロセッサシステムの拡張性が低いという課題があった。その理由は、回路構成がサブプロセッサ数に依存してしまうためである。
具体的には、まず上記の関連技術1の実行制御装置では、各サブプロセッサから並行して完了通知信号が入力される等の理由により、内部の回路構成が接続されるサブプロセッサ数に依存する。上述した通り、近年のシステムLSIでは複数のサブプロセッサが1チップに集積されることが一般的であり、短い期間でのシステムの拡張(すなわち、サブプロセッサ数の増設)を求められるが、システム拡張の度毎に実行制御装置の回路構成を変更する必要が生じてしまう。
また、上記の関連技術2では、必要となるステータスレジスタ数がサブプロセッサ数やステータス数(状態変化の種別数)等に依存して変わるため、やはりシステム拡張の度毎に回路構成を変更する必要がある。これに対処するために予め多くのステータスレジスタを実装しておく対策が考えられるが、この場合、開発コストが増大してしまう。
また、上記の関連技術3では、プロセッサ数に依存してFIFOの個数やプロセッサ間の通信経路を増やす必要があり、やはりシステム拡張の度毎に回路構成の変更が生じてしまう。
従って、本発明は、拡張性を損なうこと無く、サブプロセッサを並列制御することが可能なマルチプロセッサシステム及びその制御方法を提供することを目的とする。
上記の目的を達成するため、本発明の一態様に係るマルチプロセッサシステムは、少なくとも1つのメインプロセッサと、複数のサブプロセッサと、前記メインプロセッサにより指定された処理シーケンスに基づき各サブプロセッサに対する処理コマンドを発行すると共に、各サブプロセッサによる前記処理コマンドに応じた処理の実行結果を取得する実行制御回路と、前記実行制御回路と各サブプロセッサの間で、前記処理コマンド及び実行結果の転送を調停する調停回路とを備える。前記調停手段は、前記処理コマンドを前記実行制御手段から各サブプロセッサへ転送するためのコントロールバスを、制御するコントロールバス制御手段と、前記実行結果を各サブプロセッサから前記実行制御手段へ転送するためのステータスバスに対するアクセスを、調停するステータスバス調停手段とを含む。
また、本発明の他の一態様に係るマルチプロセッサシステムは、少なくとも1つのメインプロセッサと、複数のサブプロセッサと、前記メインプロセッサにより指定された処理シーケンスに基づき各サブプロセッサに対する処理コマンドを発行すると共に、各サブプロセッサによる前記処理コマンドに応じた処理の実行結果を取得する、複数の実行制御手段と、各実行制御手段と各サブプロセッサの間で、前記処理コマンド及び実行結果の転送を調停する調停手段とを備える。前記調停手段は、前記処理コマンドを各実行制御手段から各サブプロセッサへ転送するためのコントロールバスに対するアクセスを調停するコントロールバス調停手段と、前記実行結果を各サブプロセッサから各実行制御手段へ転送するためのステータスバスに対するアクセスを調停するステータスバス調停手段とを含む。
また、本発明の一態様に係るマルチプロセッサシステムの制御方法は、少なくとも1つのメインプロセッサと、複数のサブプロセッサとを備えたマルチプロセッサシステムの制御方法を提供する。この制御方法は、前記メインプロセッサにより指定された処理シーケンスに基づき各サブプロセッサに対する処理コマンドを発行すると共に、各サブプロセッサによる前記処理コマンドに応じた処理の実行結果を取得し、前記処理コマンドの各サブプロセッサへの転送、及び前記実行結果の前記メインプロセッサへの転送を調停し、前記メインプロセッサにより複数の処理シーケンスが指定される場合、前記処理コマンドの発行及び前記実行結果の取得を、処理シーケンス毎に並列に行うことを含む
本発明では、調停回路(又はこれに相当する処理)にてサブプロセッサ数に依存するインタフェース部分を吸収するため、サブプロセッサ数が増減しても実行制御回路の構成(又はこれに相当する処理)には変更が生じない。従って、マルチプロセッサシステムの拡張性を、上記の関連技術1〜3と比較して大幅に向上させることが可能となる。また、サブプロセッサを並列制御するため、メインプロセッサの処理負荷の低減、及びサブプロセッサの稼働率の向上を図ることができる。
本発明に係るマルチプロセッサシステムの各実施の形態に共通の構成例を示したブロック図である。 本発明に係るマルチプロセッサシステムの各実施の形態で共通に用いる処理シーケンスの構成例を示した図である。 本発明に係るマルチプロセッサシステムの各実施の形態に共通の動作例を示したシーケンス図である。 本発明に係るマルチプロセッサシステムの実施の形態1の構成例を示したブロック図である。 本発明に係るマルチプロセッサシステムの実施の形態1における処理シーケンスの設定動作例を示したブロック図である。 本発明に係るマルチプロセッサシステムの実施の形態1における処理コマンドの発行動作例を示したブロック図である。 本発明に係るマルチプロセッサシステムの実施の形態1における処理ステータスの通知動作例を示したブロック図である。 本発明に係るマルチプロセッサシステムの実施の形態1に用いる処理ステータスのフォーマット例を示した図である。 本発明に係るマルチプロセッサシステムの実施の形態1における処理完了の通知動作例を示したブロック図である。 本発明に係るマルチプロセッサシステムの適用例1を示したブロック図である。 本発明に係るマルチプロセッサシステムの適用例2を示したブロック図である。 本発明に係るマルチプロセッサシステムの実施の形態2の構成例を示したブロック図である。 本発明に係るマルチプロセッサシステムの実施の形態2に用いる制御レジスタ、FIFO管理部、及びFIFOメモリ制御部の構成例を示したブロック図である。 本発明に係るマルチプロセッサシステムの実施の形態2に用いるFIFOメモリ制御部によるアドレス変換処理例及びデータバスアクセスの調停処理例を示した図である。 本発明に係るマルチプロセッサシステムの実施の形態2に用いるFIFOメモリ制御部によるデータ変換処理の一例を示した図である。 本発明に係るマルチプロセッサシステムの実施の形態2に用いるFIFOメモリ制御部によるデータ変換処理の他の例を示した図である。 本発明に係るマルチプロセッサシステムの実施の形態2に用いる実行制御回路のアドレスマップ例を示した図である。 本発明に係るマルチプロセッサシステムの実施の形態3の構成例を示したブロック図である。 本発明に係るマルチプロセッサシステムの実施の形態3に用いるデータメモリ制御部によるアドレス変換処理例及びデータバスアクセスの調停処理例を示した図である。 本発明に係るマルチプロセッサシステムの実施の形態3に用いる実行制御回路のアドレスマップ例を示した図である。 本発明に係るマルチプロセッサシステムの実施の形態4の構成例を示したブロック図である。 本発明に係るマルチプロセッサシステムの実施の形態5の構成例を示したブロック図である。 本発明の関連技術1に係るマルチプロセッサシステムの構成例を示したブロック図である。 本発明の関連技術3に係るマルチプロセッサシステムの構成例を示したブロック図である。
以下、本発明に係るマルチプロセッサシステムの実施の形態1〜5を、図1〜図14、図15A及び図15B、並びに図16〜図21を参照して説明する。なお、各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略される。
まず、実施の形態1〜5に係るマルチプロセッサシステムに共通の構成例及び動作例を、図1〜図3を参照して概略的に説明する。
図1に示すマルチプロセッサシステム1は、メインプロセッサ(以下、MPと略称することがある)10と、n個(nは2以上の整数)のサブプロセッサ(機能ブロック)20_1〜20_nと、メインプロセッサ10により指定された処理シーケンスSEQに基づき各サブプロセッサ20_1〜20_nに対する処理コマンドCMDを発行すると共に、各サブプロセッサ20_1〜20_nによる処理コマンドCMDに応じた処理の実行結果を示す処理ステータスSTSを取得する実行制御回路30と、この実行制御回路30と各サブプロセッサ20_1〜20_nの間で、処理コマンドCMD及び処理ステータスSTSの転送を調停する調停回路40とで構成されている。また、実行制御回路20は、処理シーケンスSEQに基づく処理が全て完了した場合、処理完了通知NTFをメインプロセッサ10へ通知する。
なお、サブプロセッサ20_1〜20_nには、同一の機能を割り当てても良いし、互いに異なる機能を割り当てても良い。すなわち、マルチプロセッサシステム1は、SMP型及びAMP型のいずれのマルチプロセッサシステムとしても動作できる。
ここで、上記の処理シーケンスSEQは、各サブプロセッサに実行させる処理を定義した構造体と、当該処理によって得られるデータを定義した構造体とを相互にリンクさせた構造体群である。図2に、処理シーケンスSEQの具体例を示す。図示の例では、処理シーケンスSEQは、下記(1)〜(4)を示している。
(1)処理PAによる出力データとしてデータD0及びD1が得られる。
(2)処理PBは、データD0を入力データとし、データD2を出力データとする。
(3)処理PCは、データD1を入力データとし、データD3を出力データとする。
(4)処理PDは、処理PA及びPBにより得られたデータD2及びD3を入力データとする。
この場合、実行制御回路30は、処理PAを実行させたサブプロセッサからデータD0の出力完了を示す処理ステータスSTSを受信すると、処理PBの起動を要求する処理コマンドCMDを発行する。データD1の出力完了を示す処理ステータスSTSを受信すると、実行制御回路30は、処理PCの起動を要求する処理コマンドCMDを発行する。また、実行制御回路30は、処理PB及びPCを実行させた2つのサブプロセッサからデータD2及びD3の出力完了を示す処理ステータスSTSを共に受信すると、処理PDの起動を要求する処理コマンドCMDを発行する。なお、図示を省略するが、処理PA〜PDの起動をそれぞれ要求するための処理コマンドCMDは、処理シーケンスSEQ内の構造体中に定義される。
次に、マルチプロセッサシステム1の全体動作を、図3を参照して説明する。
図3に示すように、まずメインプロセッサ10は、サブプロセッサを動作させるためのパラメータ(入力データを含む)が存在する場合、当該パラメータを、例えば各サブプロセッサからアクセス可能な共有メモリ50に格納する(ステップS1)。そして、メインプロセッサ10は、実行制御回路30に対して処理シーケンスSEQを与える(ステップS2)。
図2に示した処理シーケンスSEQを例に取ると、実行制御回路30は、例えばサブプロセッサ20_1に対して処理PAの起動を要求する処理コマンドCMD1を発行し、調停回路40に与える。調停回路40は、処理コマンドCMD1をサブプロセッサ20_1へ転送する(ステップS3)。
サブプロセッサ20_1は、処理コマンドCMD1に従って、共有メモリ50から処理PAに必要なパラメータを読み出して処理PAを実行する(ステップS4及びS5)。そして、サブプロセッサ20_1は、処理PAにより得たデータD0を共有メモリ50に書き込む(ステップS6)。
この後、サブプロセッサ20_1は、処理PAの完了を示す処理ステータスSTS1を調停回路40に通知する。調停回路40は、処理ステータスSTS1を実行制御回路30へ転送する(ステップS7)。
実行制御回路30は、処理PAの完了を認識すると、処理シーケンスSEQに従い、例えばサブプロセッサ20_2に対して、処理PBの起動を要求する処理コマンドCMD2を調停回路40を介して与える(ステップS8)。
サブプロセッサ20_2は、処理コマンドCMD2に従って、共有メモリ50から処理PBに必要なデータD0を読み出して処理PBを実行する(ステップS9及びS10)。そして、サブプロセッサ20_2は、処理PBにより得たデータD2を共有メモリ50に書き込む(ステップS11)と共に、調停回路40を介して処理PBの完了を示す処理ステータスSTS2を実行制御回路30へ転送する(ステップS12)。
また、図示されないが、上記のステップS8と並行して、実行制御回路30は、処理シーケンスSEQに従い、サブプロセッサ20_1或いはサブプロセッサ20_3〜20_nのいずれかに対して、処理PCの起動を要求する処理コマンドを与える。この処理コマンドを受けたサブプロセッサは、上記のステップS9〜S12と並行して処理PCを実行し、これにより得たデータD1の共有メモリ50への書込、及び処理PCの完了を示す処理ステータスの実行制御回路30への転送を行う。そして、実行制御回路30は、サブプロセッサ20_1〜20_nのいずれかに対して、処理PDの起動を要求する処理コマンドを与える。この処理コマンドを受けたサブプロセッサは、処理PDを実行し、これにより得たデータの共有メモリ50への書込、及び処理PDの完了を示す処理ステータスの実行制御回路30への転送を行う。
そして、実行制御回路30は、処理PA〜PDが全て完了したことを認識すると、処理完了通知NTFをメインプロセッサ10へ通知する(ステップS13)。処理完了通知NTFを受けたメインプロセッサ10は、共有メモリ50から処理PDの出力データを読み出す(ステップS14)。
このように、マルチプロセッサシステム1は、サブプロセッサをその数に依存せず並列制御することができる。また、一連の処理シーケンスが完了するまでメインプロセッサ10によるサブプロセッサ20_1〜20_nに対する実行制御が不要であり、以てメインプロセッサ10の処理負荷を低減することができる。なお、上記の共有メモリ50は必須では無く、例えば、処理コマンドCMD中に各処理に必要なパラメータを含ませ、処理ステータスSTS又は処理完了通知NTF中に各処理による出力データを含ませることにより、メインプロセッサ10とサブプロセッサ20_1〜20_nとの間でデータを授受するようにしても良い。
以下、実施の形態1〜5を、図4〜図14、図15A及び図15B、並びに図16〜図21を参照して詳細に説明する。
[実施の形態1]
[構成例]
図4に示す本実施の形態に係るマルチプロセッサシステム1aは、メインプロセッサ10と、n個のサブプロセッサ20_1〜20_nと、メインプロセッサ10にシステムバスB1を介して接続された実行制御回路30aと、この実行制御回路30aにコントロールバスB2及びステータスバスB3を介して接続され、これらのバスB2及びB3にサブプロセッサ20_1〜20_nを並列接続する調停回路40と、周辺ブロック(ペリフェラル)として、システムバスB1及び実行制御回路30aに接続された割込コントローラ60とで構成されている。ここで、コントロールバスB2は、上述した処理コマンドCMDを転送するためのバスであり、ステータスバスB3は、処理ステータスSTSを転送するためのバスである。
また、実行制御回路30aは、メインプロセッサ10とのインタフェース(以下、MPインタフェース)IF1と、コントロールバスB2とのインタフェース(以下、B2インタフェース)IF2と、ステータスバスB3とのインタフェース(以下、B3インタフェース)IF3と、割込コントローラ60とのインタタフェース(以下、割込インタフェース)IF4とを有する。
さらに、実行制御回路30aは、制御プロセッサ(以下、CPと略称することがある)31と、IF1を介してメインプロセッサ10から入力された処理シーケンスSEQを格納するデータメモリMEM1と、処理シーケンスSEQの構造体解析を行うための命令コードが予め格納された命令メモリMEM2と、IF1を介してメインプロセッサ10から入力されたコマンド(例えば、処理シーケンスSEQの開始を指示するコマンド(以下、シーケンス開始コマンド))を格納するコマンドFIFO32と、IF3を介して入力された処理ステータスSTSを格納するステータスFIFO33と、メインプロセッサ10への割込要因の通知に用いる割込FIFO34とを備える。ここで、割込FIFO34を用いるため、一般的な割込要因レジスタを実装する(すなわち、レジスタ数が割込要因数に依存する)マルチプロセッサシステムと比較して拡張性が高い。また、ステータスFIFO33を用いるため、上記の関連技術2に示したようなステータスレジスタを実装するマルチプロセッサシステムと比較して拡張性が高い。また、冗長なハードウェアリソースの実装が不要であるため、開発コストの増大を回避することができる。
また、データメモリMEM1、命令メモリMEM2、コマンドFIFO32、及び割込FIFO34は、MPバスB4を介してIF1に接続されている。また、コントロールバスB2、データメモリMEM1、コマンドFIFO32、ステータスFIFO33、及び割込FIFO34は、CPバスB5を介して相互接続されている。さらに、バススイッチSWにより、CPバスB5のアクセス権をメインプロセッサ10と制御プロセッサ31とで選択できるようにしている。通常運用時は、図示の如く、制御プロセッサ31がCPバスB5のアクセス権を取得する。一方、テスト時等は、メインプロセッサ10がCPバスB5のアクセス権を取得する。
また、調停回路40は、コントロールバスB2への処理コマンドCMDの転送を制御するコントロールバス制御回路41と、処理ステータスSTSの転送に際し、サブプロセッサ20_1〜20_nからのステータスバスB3に対するアクセスを調停するステータスバス調停回路42とを備える。図示の如く、コントロールバス制御回路41及びステータスバス調停回路42は、それぞれ、シングルレイヤバス構成で簡易に実現することができる。
また、各サブプロセッサ20_1〜20_nは、コントロールバスB2を介して実行制御回路30aからの処理コマンドCMDを受信するコマンド受信制御部21と、ステータスバスB3を介して実行制御回路30aに対し処理ステータスSTSを通知するステータス通知制御部22とを備える。すなわち、コマンド受信制御部21は、コントロールバスB2のスレーブ(受け側)として接続され、取得した処理コマンドCMDをサブプロセッサ内部に伝達する機能を有する。また、ステータス通知制御部22は、ステータスバスB3のマスタ(送り側)として接続され、サブプロセッサ内部で生成された処理ステータスSTSを実行制御回路30aに転送する機能を有する。
[動作例]
次に、本実施の形態の動作を、図5〜図9を参照して説明する。ここで、図5〜図7及び図9は、それぞれ、図3に示したステップS2(以下、処理シーケンス設定動作)、ステップS3(以下、処理コマンド発行動作)、ステップS7(以下、処理ステータス通知動作)、及びステップS13(以下、処理完了通知動作)に相当する動作を示している。また、図8は、本実施の形態に用いる処理ステータスSTSのフォーマット例を示している。
[処理シーケンス設定動作例]
図5に示すように、まずメインプロセッサ10が、実行制御回路30a内のMPインタフェースIF1及びMPバスB4を介して、処理シーケンスSEQをデータメモリMEM1に格納する(ステップS21)。そして、メインプロセッサ10は、シーケンス開始コマンドCMD22をコマンドFIFO32に書き込む(ステップS22)。この時、コマンドFIFO32により発生された割込信号が制御プロセッサ31で受信される。割込信号を受けた制御プロセッサ31は、コマンドFIFO32からシーケンス開始コマンドCMD22を取得する(ステップS23)。なお、処理シーケンスSEQは、命令メモリMEM2内の命令コードと同様、初期起動時等に予めデータメモリMEM1に格納しておいても良い。
[処理コマンド発行動作例]
上記の処理シーケンス設定動作の後、まず制御プロセッサ31は、図6に示す如くデータメモリMEM1から処理シーケンスSEQを読み出す(ステップS31)。
そして、制御プロセッサ31は、命令メモリMEM2から読み出した命令コードINSを実行して、処理シーケンスSEQ中に定義された処理とデータのリンク関係を解析し、以て次に発行すべき処理コマンドを決定する。また、制御プロセッサ31は、取得済みの処理ステータスSTSから、どの処理が実行されたか及びどのサブプロセッサが稼働中なのかを認識し、処理コマンドの発行先を決定する。具体的には、制御プロセッサ31は、次に実行すべき処理に必要な入力データが揃っており、出力データの書込先が空いており、且つ当該処理を実行可能なサブプロセッサ(演算リソース)が稼働中でない状態に在る場合に、当該サブプロセッサを処理コマンドの発行先として決定する。
今、次に発行すべき処理コマンドを図3に示した処理コマンドCMD1と決定し、その発行先をサブプロセッサ20_1と決定したとすると、制御プロセッサ31は、処理コマンドCMD1を、バススイッチSW、CPバスB5、B2インタフェースIF2、及びコントロールバスB2を順に経由して調停回路40内のコントロールバス制御回路41に与える。コントロールバス制御回路41は、実行制御回路30aからのコントロールバスアクセスに対してアドレスデコードを行い、その結果として選択したサブプロセッサ20_1へ処理コマンドCMD1を転送する。サブプロセッサ20_1内のコマンド受信制御部21は、処理コマンドCMD1中に設定された処理ID(命令番号)等の必要パラメータをサブプロセッサ20_1内部に伝達し、以て処理IDに応じた処理を実行する(ステップS32)。
なお、入力データが連続して発生するような処理の場合、制御プロセッサ31は、一連の処理をサブプロセッサ20_1〜20_nにパイプライン的に並列実行させることもできる。
[処理ステータス通知動作例]
上記の処理コマンド発行動作の後、図7に示すように、サブプロセッサ20_1内のステータス通知制御部22が、図3に示した処理ステータスSTS1をステータスバスB3へ出力する。ステータスバス調停回路42は、処理ステータスSTS1を実行制御回路30aへ転送する。ここで、他のサブプロセッサからのステータスバスアクセスが競合した場合、ステータスバス調停回路42は、ラウンドロビン方式等を用いてアクセス調停を行い、その結果として選択したサブプロセッサからの処理ステータスを実行制御回路30aへ転送する。実行制御回路30a内のB3インタフェースIF3は、処理ステータスSTS1をステータスFIFO33に格納する(ステップS71)。
この時、ステータスFIFO33により発生された割込信号が制御プロセッサ31で受信される。割込信号を受けた制御プロセッサ31は、ステータスFIFO33から処理ステータスSTS1を取得する(ステップS72)。
ここで、処理ステータスSTSのフォーマット例を図8に示す。この例では、処理ステータスSTSを32ビットで構成し、MSB(Most Significant Bit)から8ビット分をサブプロセッサIDの設定領域、次の8ビット分を処理IDの設定領域、最後の16ビット分をステータス値(入力データ読出完了、出力データ書込完了、処理完了等を示す値)の設定領域として割り当てている。サブプロセッサ20_1〜20_nは、処理IDをステータスバスB3のアドレス信号[7:0]とし、ステータス値をデータ信号[15:0]としてステータスバス調停回路42へ出力する。ステータスバス調停回路42は、処理ID及びステータス値に、サブプロセッサIDを転送アドレス信号の上位ビット[15:8]として付加して実行制御回路30aへ転送する。また、B3インタフェースIF3は、サブプロセッサID、処理ID、及びステータス値を1つの処理ステータスSTSとしてステータスFIFO33に格納する。
これにより、制御プロセッサ31は、ステータスFIFO33から処理ステータスSTSを読み出すことのみで、どのサブプロセッサによるどの処理がどのような状態に在るかを認識することができる。
[処理完了通知動作例]
上記の処理ステータス通知動作により処理シーケンスSEQの完了(全ての処理の完了)を認識した場合、制御プロセッサ31は、図9に示す如くシーケンス完了(図3に示した処理完了通知NTF)を示す割込要因データDIを割込FIFO34に格納する(ステップS131)。この時、割込FIFO34により発生された割込信号SIが、割込インタフェースIF2を介して割込コントローラ60で受信される。割込の発生は、割込コントローラ60からメインプロセッサ10へ伝達される(ステップS132)。そして、メインプロセッサ10は、MPインタフェースIF1及びMPバスB4を介して割込FIFO34から割込要因データDIを取得し、以てシーケンス完了を認識する(ステップS133)。
次に、本実施の形態に係るマルチプロセッサシステム1aのデータ処理システムへの適用例1、及びコーデックシステムへの適用例2を、それぞれ、図10及び図11を参照して説明する。
[適用例1]
図10に示すデータ処理システム2は、マルチプロセッサシステム1aと同様のメインプロセッサ10、実行制御回路30a、調停回路40、及び割込コントローラ60を備えている。また、システムバスB1には、外部メモリ(図示せず)へのアクセスを制御するメモリコントローラ70が接続されている。また、サブプロセッサとして、システム外部にデータDoutを送信するデータ送信機能ブロック23_1と、システム外部からデータDinを受信するデータ受信機能ブロック23_2と、受信データDinからタイミング信号TSを生成して機能ブロック23_1及び23_2に与えるタイミング機能ブロック23_3と、機能ブロック23_2から出力された受信データDinに対して所定の処理を施し、処理されたデータDfをメモリコントローラ70を介して外部メモリに記憶するデータ処理機能ブロック23_4とを用いている。ここで、機能ブロック23_1〜23_4の各々は、上述したコマンド受信制御部21及びステータス通知制御部22を有する。なお、図10に一点鎖線で示すように、システムバスB1からコントロールバス制御回路41にアクセスできるようにしても良い。この場合、メインプロセッサ10から機能ブロック23_1〜23_4を直接制御することも可能となる。
データ受信動作において、メインプロセッサ10が実行制御回路30aに対して受信処理シーケンスとその開始コマンドを与えると、実行制御回路30aは、受信処理シーケンスを解析し、タイミング機能ブロック23_3へタイミング信号TSの生成開始を要求する処理コマンドを発行する。タイミング機能ブロック23_3からタイミング信号TSの生成開始処理完了を示す処理ステータスを受けると、実行制御回路30aは、データ受信機能ブロック23_2へデータDinの受信開始を要求する処理コマンドを発行する。データ受信機能ブロック23_2から受信開始処理の完了を示す処理ステータスを受けると、実行制御回路30aは、データ処理機能ブロック23_4へ処理データDfの外部メモリへの書込を要求する処理コマンドを発行する。データ処理機能ブロック23_4から処理データDfの書込処理完了を示す処理ステータスを受けると、実行制御回路30aは、メインプロセッサ10へ受信処理完了を示す割込を通知する。
この時、データ処理機能ブロック23_4が、データ受信機能ブロック23_2から受信データDinを取得したタイミングで取得完了を示す処理ステータスを発行する。これにより、実行制御回路30aは、データ受信機能ブロック23_2に対して、次のタイミング信号TSにおいて受信データDinをデータ処理機能ブロック23_4へ出力するよう要求する処理コマンドを発行することができる。このため、データ受信機能ブロック23_2は、データ処理機能ブロック23_4の動作状態を確認する必要が無い。従って、データ処理システム2は、データDinの受信処理と、処理データDfの外部メモリへの書込処理とを同時に実行することができる。結果として、各機能ブロックは、パイプライン的に並列動作することとなる。
一方、データ送信動作において、実行制御回路30aは、タイミング機能ブロック23_3からのタイミング信号TSの生成開始処理完了と、メインプロセッサ10からの送信データDoutの外部メモリへの書込完了とを受けて、データ送信機能ブロック23_1に対して、送信データDoutのシステム外部への送信を要求する処理コマンドを発行する。この時、データ送信機能ブロック23_1が、外部メモリから送信データDoutを取得したタイミングで取得完了を示す処理ステータスを発行する。これにより、実行制御回路30aは、メインプロセッサ10に対して、次の送信データDoutを外部メモリへ書き込み可能であることを示す割込を通知することができる。このため、メインプロセッサ10は、データ送信機能ブロック23_1の動作状態を確認する必要が無い。従って、データ処理システム2は、データDoutの送信処理と、次の送信データDoutの外部メモリへの書込処理とを同時に実行することができる。結果として、各機能ブロックは、パイプライン的に並列動作することとなる。
また、図10に点線で示す如くデータ処理機能ブロック23_5を追加する場合、データ送信機能ブロック23_6を追加する場合、或いはデータ送信機能ブロック23_1の機能を拡張する場合のいずれであっても、実行制御回路30aの回路構成を全く変更する必要が無い。
[適用例2]
図11に示すコーデックシステム3は、サブプロセッサとして、上記の適用例1で示した機能ブロック23_1〜23_6に代えて、システム外部とのデータ信号Dout及びDinの送受信を行う送受信機能ブロック24_1と、受信データDinに対して復号化処理を施して復号データDdを得る復号化機能ブロック24_2〜24_4と、メインプロセッサ10から与えられた処理データDfに対して符号化処理を施し符号データDeを得る符号化機能ブロック24_5及び24_6とを用いている。ここで、機能ブロック24_1〜24_6の各々は、上述したコマンド受信制御部21及びステータス通知制御部22を有する。また、受信データDin、復号データDd、処理データDf、及び符号データDeの授受は、マルチバンク型の共有メモリ50を介して行う。このため、機能ブロック24_1〜24_6からは、異なるバンクに対して並列にアクセスすることができる。また、各データの授受が共有メモリ50を介して行われるため、機能ブロック同士間で直接通信を行う必要は無い。また、メインプロセッサ10が処理に必要なパラメータを共有メモリ50に予め書き込むことにより、各機能ブロックは、実行制御回路30aから起動を要求する処理コマンドを受信すると自律的に共有メモリ50からパラメータを取得する。このため、実行制御回路30aは、処理IDと、共有メモリ50上のパラメータの格納アドレス(ポインタ)とを含む処理コマンドを発行すれば良く、各機能ブロックを共通に制御することができる。なお、図11に一点鎖線で示すように、システムバスB1からコントロールバス制御回路41にアクセスできるようにしても良い。この場合、メインプロセッサ10から機能ブロック24_1〜24_6を直接制御することも可能となる。
データ符号化動作において、メインプロセッサ10が実行制御回路30aに対して符号化処理シーケンスとその開始コマンドを与えると、実行制御回路30aは、符号化処理シーケンスを解析し、メインプロセッサ10から処理データDfの共有メモリ50への書込完了を受けて、符号化機能ブロック24_5へ処理データDfの符号化処理を要求する処理コマンドを発行する。符号化機能ブロック24_5から符号化処理の完了を示す処理ステータスを受けると、実行制御回路30aは、符号化機能ブロック24_6へ処理データDfの符号化処理を要求する処理コマンドを発行する。符号化機能ブロック24_6から符号化処理の完了を示す処理ステータスを受けると、実行制御回路30aは、送受信機能ブロック24_1に対して、符号データDeのシステム外部への送信を要求する処理コマンドを発行する。
この時、符号化機能ブロック24_5が、メインプロセッサ10からの処理データDfを共有メモリ50から取得したタイミングで取得完了を示す処理ステータスを発行する。これにより、実行制御回路30aは、メインプロセッサ10に対して、次のフレーム分の処理データDfを共有メモリ50へ書き込み可能であることを示す割込を通知することができる。このため、メインプロセッサ10は、符号化機能ブロック24_5による符号化処理と並行して、処理データDfの共有メモリ50への書込処理を実行することができる。結果として、各機能ブロックは、パイプライン的に並列動作することとなる。
一方、データ復号化動作においては、メインプロセッサ10が実行制御回路30aに対して復号化処理シーケンスとその開始コマンドを与えると、実行制御回路30aは、復号化処理シーケンスを解析し、定常的且つ周期的に発生する送受信機能ブロック24_1からの受信データDinの共有メモリ50への書込完了を示す処理ステータスを受けて、復号化機能ブロック24_2へ受信データDinに対する復号化処理を要求する処理コマンドを発行する。復号化機能ブロック24_2から復号化処理の完了を示す処理ステータスを受けると、実行制御回路30aは、復号化機能ブロック24_3へ受信データDinに対する復号化処理を要求する処理コマンドを発行する。復号化機能ブロック24_3から復号化処理の完了を示す処理ステータスを受けると、実行制御回路30aは、復号化機能ブロック24_4へ受信データDinに対する復号化処理を要求する処理コマンドを発行する。復号化機能ブロック24_4から復号化処理の完了を示す処理ステータスを受けると、実行制御回路30aは、メインプロセッサ10に対して、復号データDdが共有メモリから読み出し可能であることを示す割込を通知する。
この時、復号化機能ブロック24_3が、受信データDinを共有メモリ50から取得したタイミングで取得完了を示す処理ステータスを発行する。これにより、実行制御回路30aは、復号化機能ブロック24_2に対して、次のフレーム分の受信データDinの共有メモリ50からの読出を要求する処理コマンドを発行することができる。このため、復号化機能ブロック24_2は、復号化機能ブロック24_3の動作状態を確認する必要が無い。従って、復号化処理と、受信データDinの読出処理とを同時に実行することができる。結果として、各機能ブロックは、パイプライン的に並列動作することとなる。
また、復号化機能ブロック24_2〜24_4、並びに符号化機能ブロック24_5及び24_6には、それぞれ、複数の符号化方式に対応するものを用いても良い。この場合、復号化機能ブロック及び符号化機能ブロックは、実行回路30aから受けた処理コマンド(処理ID)に従って符号化方式を選択する。実行制御回路30aには、各方式に対応する処理シーケンスを設定する。システム全体を或る符号化方式から他の符号化方式に変更する場合は、メインプロセッサ10が当該他の符号化方式用の処理シーケンスを実行制御回路30aに設定することによって、容易に符号化方式を切り替えることができる。また、上述した通り、ステータスFIFO33には、処理IDとステータス値とをセットにして格納するため、ステータスFIFO33を各符号化方式で共用することができる。
このように、本実施の形態に係るマルチプロセッサシステムは、種々のシステムに適用することができる。また、システムの再構成や再利用が容易であるというメリットもある。なお、上記のデータ処理システム2及びコーデックシステム3は、それぞれ後述する実施の形態2〜5に係るマルチプロセッサシステムを用いて構成しても良い。
次に、実施の形態2を図12〜図14、図15A及び図15B、並びに図16を参照して説明する。
[実施の形態2]
[構成例]
図12に示す本実施の形態に係るマルチプロセッサシステム1bは、図4に示したマルチプロセッサシステム1a内の実行制御回路30aに代えて、実行制御回路30bを備えている点が上記の実施の形態1と異なる。なお、図示を省略するが、マルチプロセッサシステム1bは、マルチプロセッサシステム1aと同様、n個のサブプロセッサ20_1〜20_n、及びこれらのサブプロセッサと実行制御回路30bの間で処理コマンドCMD及び処理ステータスSTSの転送を調停する調停回路40を備えている。
実行制御回路30bは、図4に示したコマンドFIFO32、ステータスFIFO33、及び割込FIFO34に代えて、FIFOメモリMEM3、FIFOメモリ制御部35、コマンドFIFO管理部36、ステータスFIFO管理部37、割込FIFO管理部38、及び制御レジスタREGを有する。FIFOメモリMEM3のアドレス空間上には、コマンドFIFO32、ステータスFIFO33、及び割込FIFO34にそれぞれ相当するコマンドFIFO領域、ステータスFIFO領域、及び割込FIFO領域が形成されている。FIFOメモリ制御部35は、FIFOメモリMEM3に対するアクセスを制御する。コマンドFIFO管理部36は、コマンドFIFO領域についての管理情報を保持する。ステータスFIFO管理部37は、ステータスFIFO領域についての管理情報を保持する。割込FIFO管理部38は、割込FIFO領域についての管理情報を保持する。制御レジスタREGは、コマンドFIFO領域、ステータスFIFO領域、割込FIFO領域、及びFIFOメモリMEM3についての制御情報を保持する。
また、FIFOメモリ制御部35、コマンドFIFO管理部36、ステータスFIFO管理部37、割込FIFO管理部38、及び制御レジスタREGは、それぞれMPバスB4及びCPバスB5に接続されている。FIFOメモリ制御部35には、B3インタフェースIF3を介して、ステータスバスB3からの処理ステータスSTSが入力される。また、制御レジスタREGは、割込FIFO管理部38により発生された割込信号を、割込インタフェースIF4を介して割込コントローラ60に与える一方、コマンドFIFO管理部36及びステータスFIFO管理部37により発生された割込信号を制御プロセッサ31に与える。
具体的には、各FIFO管理部36〜38は、図13に示す如く、管理レジスタ101、マスクレジスタ102、クリアレジスタ103、及びマスク回路104を備えている。管理レジスタ101は、各FIFO領域への書込アドレスを管理するための書込ポインタWP、各FIFO領域からの読出アドレスを管理するための読出ポインタRP、各FIFO領域に格納されているデータ数を保持する格納データ数NUM、及び各FIFO領域がFull状態又はEmpty状態に在るか否かを示す状態フラグFLGを有する。マスクレジスタ102は、各FIFO領域への書込アクセスが生じた際に、管理レジスタ101から発生される割込信号SIを制御レジスタREGへ与えるか否か(割込をマスクするか否か)を示す2値データを保持する。クリアレジスタ103は、管理レジスタ101内の情報をクリアするか否かを示す2値データを保持する。マスク回路104は、マスクレジスタ102の出力値に応じて割込信号SIをマスクする。
ここで、状態フラグFLGは、FIFO領域の状態を表示及び観測するために用いられる。状態フラグFLGは、例えばEmptyフラグとFullフラグの2ビットで構成され、FIFO領域がEmpty状態に在る場合にEmptyフラグが"1"となり、FIFO領域がFull状態に或る場合にはFullフラグが"1"となる。Fullフラグは、FIFO領域からデータを読み出すことで"0"に戻る。また、クリアレジスタ103に"1"を書き込むことにより、管理レジスタ101内の各情報がゼロに初期化される。さらに、マスクレジスタ102は、FIFO領域にデータを書き込んだ時に発生する割込信号の出力をマスクするために用いられる。マスクレジスタ102の値が"1"(マスク状態)に設定されている場合、FIFO領域にデータが書き込まれても割込信号は出力されない。但し、マスク解除したタイミング(マスクレジスタ102の値が"1"→"0"に変化したタイミング)で、FIFO領域内にデータが存在する場合には、割込信号が出力される。これにより、FIFO内データの取りこぼしや不要な割り込み信号の発生を防止することができる。
また、制御レジスタREGには、FIFOメモリMEM3上に割り当てた各FIFO領域のベースアドレスBA、各FIFO領域に格納可能なデータ段数DEP、並びに各FIFO領域に格納されるデータ(すなわち、上述したシーケンス開始コマンドCMD22、処理ステータスSTS、及び割込要因データDI)のデータビット幅WIDが記憶されている。この内、段数DEP及びデータビット幅WIDは、各FIFO管理部36〜38に与えられる。
ここで、上記の書込ポインタWPは、書込イネーブル信号WEがアクティブになる度毎に、データビット幅WID(バイト単位数)分だけインクリメントされる。例えば、データビット幅WID="16ビット"の場合、書込ポインタWPは、FIFO領域にデータが書き込まれる度毎に2ずつインクリメントされ、データビット幅WID="32ビット"の場合には4ずつインクリメントされる。但し、書込ポインタWPの値が段数DEP分に達したらゼロに初期化され、上記のインクリメントが再び行われる。読出ポインタRPは、読出イネーブル信号REがアクティブになる度毎に、書込ポインタWPと同様のインクリメントが行われる。格納データ数NUMは、FIFO領域に格納されているデータ数を表示及び観測するために用いられる。格納データ数NUMは、読出ポインタRPの値と書込ポインタWPの値との差分から算出する。すなわち、データ数NUMは、FIFO領域にデータが書き込まれると1ずつ増加し、読み出されると1ずつ減少する。
また、FIFOメモリ制御部35は、制御インタフェース201、アドレス/データ変換回路202_1〜202_3、及びアービタ回路203を備えている。制御インタフェース201は、各FIFO領域への書込イネーブル信号WE及び読出イネーブル信号REを管理レジスタ101に与える一方、書込ポインタWP、読出ポインタRP、ベースアドレスBA、及びデータビット幅WIDを受信する。アドレス/データ変換回路202_1〜202_3は、ステータスバスB3、MPバスB4、CPバスB5にそれぞれ接続されており、制御インタフェース201から出力された書込ポインタWP、読出ポインタRP、ベースアドレスBA、及びデータビット幅WIDに基づくアドレスの変換処理を行う。さらに、アドレス/データ変換回路202_1〜202_3は、データビット幅WIDとFIFOメモリMEM3のデータビット幅(すなわち、MEM3に接続される並列データバス幅)との相違(差分)に基づき、データバスに転送する若しくはデータバスから取得したデータの変換処理を行う。アービタ回路203は、アドレス/データ変換回路202_1〜202_3によるデータバスアクセスを調停する。
[動作例]
次に、本実施の形態の動作を、図14、図15A及び図15B、並びに図16を参照して説明する。なお、実行制御回路30bにおけるFIFO領域アクセスに係る動作以外については、図4に示したマルチプロセッサ1aと同様であるため、その説明を省略する。
図14は、FIFOメモリ制御部35によるアドレス変換処理例及びデータバスアクセスの調停処理例を示している。
まず、FIFOメモリMEM3のアドレス空間上には、割込FIFO領域AR_I、コマンドFIFO領域AR_C、及びステータスFIFO領域AR_Sが形成されている。ここで、割込FIFO領域AR_Iのベースアドレス及び領域長は、それぞれBA_I及び"段数DEP_I×データビット幅WID_I"に設定されている。同様に、コマンドFIFO領域AR_Cのベースアドレス及び領域長は、それぞれBA_C及び"段数DEP_C×データビット幅WID_C"に設定され、ステータスFIFO領域AR_Sのベースアドレス及び領域長は、それぞれBA_S及び"段数DEP_S×データビット幅WID_S"に設定されている。なお、各FIFO領域の領域長は、ベースアドレスBA及び段数DEPの設定値を変更することにより可変にできる。
図示の如く、制御プロセッサ31による割込要因データDIの書込アクセスが発生した場合(ステップS1311)、FIFOメモリ制御部35内のアドレス/データ変換回路202_3は、ベースアドレスBA_Iに、制御インタフェース201から受信した割込FIFO領域AR_Iの書込ポインタWP_Iの値を加算して、FIFOメモリMEM3上の書込アドレスWAを発生する(ステップS1312)。この時、アドレス/データ変換回路202_3からのデータバスアクセスが、ステータスバスB3及びメインプロセッサ10の少なくとも一方からのデータバスアクセスと競合していれば、アービタ回路203がアクセス調停を行う(ステップS2000)。具体的には、アービタ回路203は、「ラウンドロビン方式」や「メインプロセッサ10>制御プロセッサ31>ステータスバスB3の順の優先度方式」等を用いて、アクセス調停(アービトレーション)を実施する。
また、制御プロセッサ31によるシーケンス開始コマンドCMD22の読出アクセスが発生した場合(ステップS231)、アドレス/データ変換回路202_3は、ベースアドレスBA_Cに、コマンドFIFO領域AR_Cの読出ポインタRP_Cの値を加算して、FIFOメモリMEM3上の読出アドレスRAを発生する(ステップS232)。同様にして、処理ステータスSTSの読出アクセスが発生した場合(ステップS721)、アドレス/データ変換回路202_3は、ベースアドレスBA_Sに、ステータスFIFO領域AR_Sの読出ポインタRP_Sの値を加算して読出アドレスRAを発生する(ステップS722)。
一方、ステータスバスB3による処理ステータスSTSの書込アクセスが発生した場合(ステップS711)、FIFOメモリ制御部35内のアドレス/データ変換回路202_1は、ベースアドレスBA_Sに、ステータスFIFO領域AR_Sの書込ポインタWP_Sの値を加算して書込アドレスWAを発生する(ステップS712)。なお、処理ステータスSTSは、図8に示したようなフォーマットでそのままステータスFIFO領域AR_S中に書き込まれる。
また、メインプロセッサ10による割込要因データDIの読出アクセスが発生した場合(ステップS1331)、FIFOメモリ制御部35内のアドレス/データ変換回路202_2は、ベースアドレスBA_Iに、割込FIFO領域AR_Iの読出ポインタRP_Iの値を加算して読出アドレスRAを発生する(ステップS1332)。同様にして、シーケンス開始コマンドCMD22の書込アクセスが発生した場合(ステップS221)、アドレス/データ変換回路202_2は、ベースアドレスBA_Cに、コマンドFIFO領域AR_Cの書込ポインタWP_Cの値を加算して書込アドレスWAを発生する(ステップS222)。
上記のステップS232、S722、S712、S1332、及びS222のいずれかで書込アドレスWA又は読出アドレスRAが発生した場合も、アービタ回路203によるアクセス調停が行われる。
なお、図示されないが、制御プロセッサ31は、例えばメモリテストを目的として、FIFOメモリMEM3のアドレス値を直接指定し、通常のメモリアクセスと同様にランダムアクセスすることもできる。
また、FIFOメモリ制御部35は、図15A及び図15Bに示すデータ変換処理を行う。例えば、図15Aに示す如く割込要因データDIのデータビット幅WID_Iが"8ビット"である一方、データバス幅が"32ビット"であり、且つ書込アドレスWA="0x040A"に対する書込を行う場合、FIFOメモリ制御部35内のアドレス/データ変換回路202_3は、データバス[23:16]を用いて割込要因データDIをFIFOメモリMEM3へ転送し、以てFIFOメモリMEM3上のアドレス"0x0408"に対応する領域の16〜23ビット目に割込要因データDIを書き込む。
一方、上記の処理により書き込まれた割込要因データDIを読み出す場合(すなわち、読出アドレスRA="0x040A"に対する読出を行う場合)、アドレス/データ変換回路202_2が、FIFOメモリMEM3からデータバス[23:16]を介して8ビット分の割込要因データDI[7:0]を読み出す。
また、図15Bに示す如く処理コマンドCMDのデータビット幅WID_Cが"16ビット"であり、且つ書込アドレスWA="0x050A"に対する書込を行う場合、アドレス/データ変換回路202_2は、データバス[31:16]を用いて処理コマンドCMDをFIFOメモリMEM3へ転送し、以てFIFOメモリMEM3上のアドレス"0x0508"に対応する領域の16〜31ビット目に処理コマンドCMDを書き込む。
一方、上記の処理により書き込まれた処理コマンドCMDを読み出す場合(すなわち、読出アドレスRA="0x050"に対する読出を行う場合)、アドレス/データ変換回路202_3が、FIFOメモリMEM3からデータバス[31:16]を介して16ビット分の処理コマンドCMD[15:0]を読み出す。

また、図16は、メインプロセッサ10及び制御プロセッサ31から見た実行制御回路30bのアドレスマップ例を示している。例えば、図示の如く各FIFO管理部36〜38については、図13に示した管理レジスタ101、マスクレジスタ102、及びクリアレジスタ103各々のアクセスアドレスAAのみがマッピングされている。一方、FIFO領域(割込要因データ読出アクセス領域、コマンド書込アクセス領域、割込要因データ書込アクセス領域、コマンド読出アクセス領域、及びステータス読出アクセス領域)のアクセスアドレスAAは、FIFOメモリ制御部35のアドレス空間にマッピングされている。すなわち、例えば、制御プロセッサ31は、ステータス読出アクセス領域のアクセスアドレスAA="0x00…0308"に対して連続してアクセスすることにより、実際には図14に示したステータスFIFO領域AR_S内の連続したアドレスから処理ステータスSTSの順次読出を行うことができる。
このように、割込FIFO領域AR_I、コマンドFIFO領域AR_C、及びステータスFIFO領域AR_Sを1つのメモリ上に形成するため、FIFO領域中に格納するデータの段数及びビット幅を可変にでき、以て上記の実施の形態1と比較してよりマルチプロセッサシステムの拡張性を向上させることができる。すなわち、LSI開発後の仕様変更等により処理ステータス、処理コマンド、割込要因の各々の数やフォーマットが変更されても柔軟に対応できる。
次に、実施の形態3を図17〜図19を参照して説明する。
[実施の形態3]
[構成例]
図17に示す本実施の形態に係るマルチプロセッサシステム1cは、実行制御回路3cが、図12に示した実行制御回路30b内のFIFOメモリMEM3及びFIFOメモリ制御部35に代えて、データメモリMEM1に対するアクセスを制御するデータメモリ制御部39を備えている点が上記の実施の形態2と異なる。すなわち、本実施の形態では、上記の実施の形態2で示した割込FIFO領域AR_I、コマンドFIFO領域AR_C、及びステータスFIFO領域AR_SをデータメモリMEM1のアドレス空間上に形成している。また、データメモリ制御部39は、MPバスB4及びCPバスB5に接続されている。データメモリ制御部39には、B3インタフェースIF3を介してステータスバスB3からの処理ステータスSTSが入力される。
なお、図示を省略するが、マルチプロセッサシステム1cは、図4に示したマルチプロセッサシステム1aと同様、n個のサブプロセッサ20_1〜20_n、及びこれらのサブプロセッサと実行制御回路30cの間で処理コマンドCMD及び処理ステータスSTSの転送を調停する調停回路40を備えている。
[動作例]
次に、本実施の形態の動作を、図18及び図19を参照して説明する。なお、実行制御回路30cにおけるFIFO領域アクセスに係る動作以外については、図4に示したマルチプロセッサ1aと同様であるため、その説明を省略する。
図18は、データメモリ制御部39によるアドレス変換処理例及びデータバスアクセス調停処理例を示している。制御プロセッサCP31及びメインプロセッサ10がステップS2100及びS2200の処理をそれぞれ実行できる点が、図14に示したアドレス変換処理例及びデータバスアクセス調停処理例と異なる。すなわち、FIFO領域AR_I、AR_C、及びAR_SをデータメモリMEM1に形成した場合、制御プロセッサCP31及びメインプロセッサ10は、各FIFO領域へのアクセスと、データ領域AR_Dに対するランダムアクセスとを単一のデータメモリMEM1を用いて行うことができる。
図19は、メインプロセッサ10及び制御プロセッサ31から見た実行制御回路30cのアドレスマップ例を示している。図16に示した実行制御回路30bのアドレスマップと異なる点は、FIFO領域のアクセスアドレスAAが、各領域に対して1つでは無く、少なくとも各領域の先頭と末尾とを含んで複数割り当てられていることである。すなわち、本実施の形態においては、FIFO領域が、一定領域幅のアドレス空間としてマッピングされている。
従って、マッピングされたアドレス空間内であれば、どのアドレスにアクセスしても同一のFIFOアクセス(FIFO領域内のデータに対する順次アクセス)となる。一方、メインプロセッサ10及び制御プロセッサ31は、複数のアクセスアドレスを用いることにより、インクリメンタルバーストアクセス(FIFO領域内の連続したデータに対するバーストアクセス)を行うこともできる。この場合、FIFOアクセス処理を高速化できる。
次に、実施の形態4を、図20を参照して説明する。
[実施の形態4]
図20に示す本実施の形態に係るマルチプロセッサシステム1dは、図4に示したマルチプロセッサシステム1aの構成に加えて、調停回路40内のコントロールバス制御回路41及びステータスバス調停回路42をそれぞれ通過する処理コマンドCMD及び処理ステータスSTSを外部にモニタ出力するバスモニタ80を備えている。なお、このバスモニタ80は、図12及び図17にそれぞれ示したマルチプロセッサシステム1b及び1c内に設けても良い。この場合も、以下の説明は同様に適用される。また、上記の適用例2のように共有メモリを用いてサブプロセッサ同士間で通信を行う場合には、その通信の観測を、共有メモリバスにバスモニタ80を接続して行うようにしても良い。
動作においては、バスモニタ80が、実行制御回路30aからサブプロセッサ20_1〜20_nへの処理開始等を要求するコマンドと、サブプロセッサ20_1〜20_nから実行制御回路30aへの処理完了通知やエラー通知等を外部にモニタ出力する。これにより、各サブプロセッサの処理実行に関する略全ての動作状態を観測することが可能となる。このように高い観測性(デバッグ容易性)が得られるのは、処理ステータスSTSの転送に専用線や専用バスを用いず、実行制御回路30aとサブプロセッサ20_1〜20_nの間の通信を全て共通バス化しているためである。
次に、実施の形態5を、図21を参照して説明する。
[実施の形態5]
図21に示す本実施の形態に係るマルチプロセッサシステム1eは、2つの実行制御回路30_1及び30_2を備えている。また、調停回路40は、図4等に示したコントロールバス制御回路41に代えて、処理コマンドCMDの転送に際し、実行制御回路30_1及び30_2からのコントロールバスB2に対するアクセスを調停するコントロールバス調停回路43を有する。なお、調停回路は実行制御回路毎に設けても良い。実行制御回路は3つ以上設けても良い。また、メインプロセッサは複数設けても良い。また、実行制御回路30_1及び30_2には、図4に示した実行制御回路30a、図12に示した実行制御回路30b、及び図17に示した実行制御回路30cのいずれを用いても良い。
動作においては、メインプロセッサ10が、実行制御回路30_1及び30_2に対して互いに異なる処理シーケンスを設定し、以て実行制御を並列に行わせる。また、コントロールバス調停回路43は、実行制御回路30_1及び30_2からのコントロールバスB2に対するアクセスが競合した場合、ラウンドロビン方式等を用いてアクセス調停を行った上でアドレスデコードを行い、選択した実行制御回路からの処理コマンドをサブプロセッサへ転送する。同様にして、ステータスバス調停回路42は、サブプロセッサ20_1〜20_nからのステータスバスB3に対するアクセスが競合した場合のアクセス調停を行う。
これにより、システム全体として更なる負荷分散を図ることができる。また、システム全体の処理負荷が低減されるため、サブプロセッサ数を増加させることもできる。また、実行制御回路を複数備えることにより、例えシステムの大規模化に伴ってサブプロセッサ数が急増しても、実行制御に伴う処理負荷を低減できるため、システム全体の処理破綻を回避できる。なお、実行制御回路を増設する場合であっても、その回路構成の変更は不要である。
なお、上記の実施の形態によって本発明は限定されるものではなく、特許請求の範囲の記載に基づき、当業者によって種々の変更が可能なことは明らかである。
この出願は、2008年8月7日に出願された日本出願特願2008−203768を基礎とする優先権を主張し、その開示の全てをここに取り込む。
本発明は、マルチプロセッサシステム及びその制御方法に適用され、特に複数のサブプロセッサを並列制御するマルチプロセッサシステム及びその制御方法に適用される。
1, 1a〜1e マルチプロセッサシステム
2 データ処理システム
3 コーデックシステム
10 メインプロセッサ(MP)
20_1〜20_n サブプロセッサ(機能ブロック)
21 コマンド受信制御部
22 ステータス通知制御部
23_1, 23_6 データ送信機能ブロック
23_2 データ受信機能ブロック
23_3 タイミング機能ブロック
23_4, 23_5 データ処理機能ブロック
24_1 送受信機能ブロック
24_2〜24_4 復号化機能ブロック
24_5〜24_6 符号化機能ブロック
30, 30a〜30c, 30_1〜30_2 実行制御回路
31 制御プロセッサ(CP)
32 コマンドFIFO
33 ステータスFIFO
34 割込FIFO
35 FIFOメモリ制御部
36 コマンドFIFO管理部
37 ステータスFIFO管理部
38 割込FIFO管理部
39 データメモリ制御部
40 調停回路
41 コントロールバス制御回路
42 ステータスバス調停回路
43 コントロールバス調停回路
50 共有メモリ
60 割込コントローラ
70 メモリコントローラ
80 バスモニタ
101 管理レジスタ
102 マスクレジスタ
103 クリアレジスタ
104 マスク回路
AA アクセスアドレス
AB アクセス先ブロック
AR_C コマンドFIFO領域
AR_D データ領域
AR_I 割込FIFO領域
AR_S ステータスFIFO領域
B1 システムバス
B2 コントロールバス
B3 ステータスバス
B4 MPバス
B5 CPバス
BA, BA_I, BA_S, BA_C ベースアドレス
CMD, CMD1, CMD2, CMD22 処理コマンド
D0〜D3 データ
Dd 復号データ
De 符号データ
DEP, DEP_I, DEP_S, DEP_C 段数
Df 処理データ
DI 割込要因データ
Din 受信データ
Dout 送信データ
FLG 状態フラグ
IF1 MPインタフェース
IF2 B2インタフェース
IF3 B3インタフェース
IF4 割込インタフェース
INS 命令コード
MEM1 データメモリ
MEM2 命令メモリ
MEM3 FIFOメモリ
NTF 処理完了通知
NUM 格納データ数
PA〜PD 処理
RA 読出アドレス
RE 読出イネーブル信号
REG 制御レジスタ
RP, RP_I, RP_S, RP_C 読出ポインタ
SEQ 処理シーケンス
SI 割込信号
STS, STS1, STS2 処理ステータス
SW バススイッチ
WA 書込アドレス
WE 書込イネーブル信号
WID, WID_I, WID_S, WID_C データビット幅
WP, WP_I, WP_S, WP_C 書込ポインタ

Claims (17)

  1. 少なくとも1つのメインプロセッサと、
    複数のサブプロセッサと、
    前記メインプロセッサにより指定された処理シーケンスに基づき各サブプロセッサに対する処理コマンドを発行すると共に、各サブプロセッサによる前記処理コマンドに応じた処理の実行結果を取得する実行制御手段と、
    前記実行制御手段と各サブプロセッサの間で、前記処理コマンド及び実行結果の転送を調停する調停手段と、を備え、
    前記調停手段が、
    前記処理コマンドを前記実行制御手段から各サブプロセッサへ転送するためのコントロールバスを、制御するコントロールバス制御手段と、
    前記実行結果を各サブプロセッサから前記実行制御手段へ転送するためのステータスバスに対するアクセスを、調停するステータスバス調停手段と、を含み、
    前記調停手段が、前記実行結果にその転送元を示すサブプロセッサIDを付加して前記実行制御手段へ転送し、
    前記実行制御手段が、FIFO(First In First Out)バッファに、前記サブプロセッサIDと前記実行結果とを対応付けて格納する、
    マルチプロセッサシステム。
  2. 少なくとも1つのメインプロセッサと、
    複数のサブプロセッサと、
    前記メインプロセッサにより指定された処理シーケンスに基づき各サブプロセッサに対する処理コマンドを発行すると共に、各サブプロセッサによる前記処理コマンドに応じた処理の実行結果を取得する、複数の実行制御手段と、
    各実行制御手段と各サブプロセッサの間で、前記処理コマンド及び実行結果の転送を調停する調停手段と、を備え、
    前記調停手段が、
    前記処理コマンドを各実行制御手段から各サブプロセッサへ転送するためのコントロールバスに対するアクセスを調停するコントロールバス調停手段と、
    前記実行結果を各サブプロセッサから各実行制御手段へ転送するためのステータスバスに対するアクセスを調停するステータスバス調停手段と、を含み、
    前記調停手段が、前記実行結果にその転送元を示すサブプロセッサIDを付加して各実行制御手段へ転送し、
    各実行制御手段が、FIFOバッファに、前記サブプロセッサIDと前記実行結果とを対応付けて格納する、
    マルチプロセッサシステム。
  3. 少なくとも1つのメインプロセッサと、
    複数のサブプロセッサと、
    前記メインプロセッサにより指定された処理シーケンスに基づき各サブプロセッサに対する処理コマンドを発行すると共に、各サブプロセッサによる前記処理コマンドに応じた処理の実行結果を取得する実行制御手段と、
    前記実行制御手段と各サブプロセッサの間で、前記処理コマンド及び実行結果の転送を調停する調停手段と、を備え、
    前記調停手段が、
    前記処理コマンドを前記実行制御手段から各サブプロセッサへ転送するためのコントロールバスを、制御するコントロールバス制御手段と、
    前記実行結果を各サブプロセッサから前記実行制御手段へ転送するためのステータスバスに対するアクセスを、調停するステータスバス調停手段と、を含み、
    前記実行制御手段が、
    前記メインプロセッサからのコマンドを格納するコマンドFIFO領域と、前記実行結果を格納するステータスFIFO領域と、前記メインプロセッサへの割り込み通知内容を格納する割込FIFO領域とが同一アドレス空間上に形成されたメモリと、
    各FIFO領域のベースアドレス及び格納可能なデータの段数に基づき、各FIFO領域中の所望のデータにアクセスするための前記メモリ上のアドレスを発生するアドレス発生手段と、を含み、
    前記アドレス発生手段が、前記データの段数各々を設定するためのレジスタを含む、
    マルチプロセッサシステム。
  4. 少なくとも1つのメインプロセッサと、
    複数のサブプロセッサと、
    前記メインプロセッサにより指定された処理シーケンスに基づき各サブプロセッサに対する処理コマンドを発行すると共に、各サブプロセッサによる前記処理コマンドに応じた処理の実行結果を取得する、複数の実行制御手段と、
    各実行制御手段と各サブプロセッサの間で、前記処理コマンド及び実行結果の転送を調停する調停手段と、を備え、
    前記調停手段が、
    前記処理コマンドを各実行制御手段から各サブプロセッサへ転送するためのコントロールバスに対するアクセスを調停するコントロールバス調停手段と、
    前記実行結果を各サブプロセッサから各実行制御手段へ転送するためのステータスバスに対するアクセスを調停するステータスバス調停手段と、を含み、
    各実行制御手段が、
    前記メインプロセッサからのコマンドを格納するコマンドFIFO領域と、前記実行結果を格納するステータスFIFO領域と、前記メインプロセッサへの割り込み通知内容を格納する割込FIFO領域とが同一アドレス空間上に形成されたメモリと、
    各FIFO領域のベースアドレス及び格納可能なデータの段数に基づき、各FIFO領域中の所望のデータにアクセスするための前記メモリ上のアドレスを発生するアドレス発生手段と、を含み、
    前記アドレス発生手段が、前記データの段数各々を設定するためのレジスタを含む、
    マルチプロセッサシステム。
  5. 少なくとも1つのメインプロセッサと、
    複数のサブプロセッサと、
    前記メインプロセッサにより指定された処理シーケンスに基づき各サブプロセッサに対する処理コマンドを発行すると共に、各サブプロセッサによる前記処理コマンドに応じた処理の実行結果を取得する実行制御手段と、
    前記実行制御手段と各サブプロセッサの間で、前記処理コマンド及び実行結果の転送を調停する調停手段と、を備え、
    前記調停手段が、
    前記処理コマンドを前記実行制御手段から各サブプロセッサへ転送するためのコントロールバスを、制御するコントロールバス制御手段と、
    前記実行結果を各サブプロセッサから前記実行制御手段へ転送するためのステータスバスに対するアクセスを、調停するステータスバス調停手段と、を含み、
    前記実行制御手段が、
    前記メインプロセッサからのコマンドを格納するコマンドFIFO領域と、前記実行結果を格納するステータスFIFO領域と、前記メインプロセッサへの割り込み通知内容を格納する割込FIFO領域とが同一アドレス空間上に形成されたメモリと、
    各FIFO領域のベースアドレス及び格納可能なデータの段数に基づき、各FIFO領域中の所望のデータにアクセスするための前記メモリ上のアドレスを発生するアドレス発生手段と、を含み、
    前記アドレス発生手段が、前記メインプロセッサからのコマンド、前記実行結果、及び前記割り込み通知内容各々のデータビット幅に応じて前記メモリ上のアドレスを発生し、
    前記実行制御手段が、各データビット幅と前記メモリのデータビット幅との相違に基づき、前記メモリに接続される並列データバスの内から、前記メインプロセッサからのコマンド、前記実行結果、及び前記割り込み通知内容各々のアクセスに用いるデータバスを決定するデータバス決定手段をさらに含む、
    マルチプロセッサシステム。
  6. 少なくとも1つのメインプロセッサと、
    複数のサブプロセッサと、
    前記メインプロセッサにより指定された処理シーケンスに基づき各サブプロセッサに対する処理コマンドを発行すると共に、各サブプロセッサによる前記処理コマンドに応じた処理の実行結果を取得する、複数の実行制御手段と、
    各実行制御手段と各サブプロセッサの間で、前記処理コマンド及び実行結果の転送を調停する調停手段と、を備え、
    前記調停手段が、
    前記処理コマンドを各実行制御手段から各サブプロセッサへ転送するためのコントロールバスに対するアクセスを調停するコントロールバス調停手段と、
    前記実行結果を各サブプロセッサから各実行制御手段へ転送するためのステータスバスに対するアクセスを調停するステータスバス調停手段と、を含み、
    各実行制御手段が、
    前記メインプロセッサからのコマンドを格納するコマンドFIFO領域と、前記実行結果を格納するステータスFIFO領域と、前記メインプロセッサへの割り込み通知内容を格納する割込FIFO領域とが同一アドレス空間上に形成されたメモリと、
    各FIFO領域のベースアドレス及び格納可能なデータの段数に基づき、各FIFO領域中の所望のデータにアクセスするための前記メモリ上のアドレスを発生するアドレス発生手段と、を含み、
    前記アドレス発生手段が、前記メインプロセッサからのコマンド、前記実行結果、及び前記割り込み通知内容各々のデータビット幅に応じて前記メモリ上のアドレスを発生し、
    各実行制御手段が、各データビット幅と前記メモリのデータビット幅との相違に基づき、前記メモリに接続される並列データバスの内から、前記メインプロセッサからのコマンド、前記実行結果、及び前記割り込み通知内容各々のアクセスに用いるデータバスを決定するデータバス決定手段をさらに含む、
    マルチプロセッサシステム。
  7. 請求項1〜6のいずれか一項において、
    各サブプロセッサが、
    前記コントロールバスから前記処理コマンドを受信するコマンド受信制御手段と、
    前記ステータスバスに対して前記実行結果を送信するステータス通知制御手段と、
    を含むことを特徴としたマルチプロセッサシステム。
  8. 請求項1〜のいずれか一項において、
    前記処理コマンドが、前記処理を指定するための処理IDを含み、
    前記実行結果が、前記処理IDと前記処理のステータスとを含むことを特徴としたマルチプロセッサシステム。
  9. 請求項又はにおいて、
    前記アドレス発生手段が、前記メインプロセッサからのコマンド、前記実行結果、及び前記割り込み通知内容各々のデータビット幅に応じて前記メモリ上のアドレスを発生し、
    前記実行制御手段が、各データビット幅と前記メモリのデータビット幅との相違に基づき、前記メモリに接続される並列データバスの内から、前記メインプロセッサからのコマンド、前記実行結果、及び前記割り込み通知内容各々のアクセスに用いるデータバスを決定するデータバス決定手段をさらに含むことを特徴としたマルチプロセッサシステム。
  10. 請求項3〜6及び9のいずれか一項において、
    前記調停手段が、前記実行結果にその転送元を示すサブプロセッサIDを付加して前記実行制御手段へ転送し、
    前記実行制御手段が、前記ステータスFIFO領域に、前記サブプロセッサIDと前記実行結果とを対応付けて格納することを特徴としたマルチプロセッサシステム。
  11. 請求項3〜6、9及び10のいずれか一項において、
    各FIFO領域が、前記実行制御手段内に設けた制御用プロセッサにより使用されるデータメモリ中に形成されることを特徴としたマルチプロセッサシステム。
  12. 請求項3〜6及び9〜11のいずれか一項において、
    各FIFO領域に、前記メインプロセッサ又は前記実行制御手段内に設けた制御用プロセッサに複数のデータを連続してアクセスさせるためのアクセスアドレスを割り当てたことを特徴とするマルチプロセッサシステム。
  13. 請求項1〜12のいずれか一項において、
    マルチバンク化された共有メモリをさらに備え、
    各サブプロセッサが、前記共有メモリを介して前記処理に必要な入力データの取得及び前記処理により得たデータの出力を行うことを特徴としたマルチプロセッサシステム。
  14. 請求項1〜13のいずれか一項において、
    前記調停手段を通過する前記処理コマンド及び実行結果を外部にモニタ出力するモニタ手段をさらに備えたことを特徴とするマルチプロセッサシステム。
  15. 少なくとも1つのメインプロセッサと、複数のサブプロセッサとを備えたマルチプロセッサシステムの制御方法であって、
    前記メインプロセッサにより指定された処理シーケンスに基づき各サブプロセッサに対する処理コマンドを発行すると共に、各サブプロセッサによる前記処理コマンドに応じた処理の実行結果を取得し、
    前記処理コマンドの各サブプロセッサへの転送、及び前記実行結果の前記メインプロセッサへの転送を調停し、
    前記メインプロセッサにより複数の処理シーケンスが指定される場合、前記処理コマンドの発行及び前記実行結果の取得を、処理シーケンス毎に並列に行う、ことを含み、
    前記取得した実行結果にその転送元を示すサブプロセッサIDを付加し、
    前記サブプロセッサIDと前記実行結果とを対応付けて順次記憶する、
    マルチプロセッサシステムの制御方法。
  16. 請求項15において、
    前記処理コマンドに、前記処理を指定するための処理IDを含め、
    前記実行結果に、前記処理IDと前記処理のステータスとを含めることを特徴としたマルチプロセッサシステムの制御方法。
  17. 請求項15又は16において、
    前記調停した処理コマンド及び実行結果を、外部にモニタ出力することを特徴とするマルチプロセッサシステムの制御方法。
JP2010523720A 2008-08-07 2009-04-22 マルチプロセッサシステム及びその制御方法 Active JP5360061B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010523720A JP5360061B2 (ja) 2008-08-07 2009-04-22 マルチプロセッサシステム及びその制御方法

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2008203768 2008-08-07
JP2008203768 2008-08-07
PCT/JP2009/001827 WO2010016169A1 (ja) 2008-08-07 2009-04-22 マルチプロセッサシステム及びその制御方法
JP2010523720A JP5360061B2 (ja) 2008-08-07 2009-04-22 マルチプロセッサシステム及びその制御方法

Publications (2)

Publication Number Publication Date
JPWO2010016169A1 JPWO2010016169A1 (ja) 2012-01-12
JP5360061B2 true JP5360061B2 (ja) 2013-12-04

Family

ID=41663398

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010523720A Active JP5360061B2 (ja) 2008-08-07 2009-04-22 マルチプロセッサシステム及びその制御方法

Country Status (4)

Country Link
US (1) US8583845B2 (ja)
JP (1) JP5360061B2 (ja)
CN (1) CN102112972B (ja)
WO (1) WO2010016169A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011148920A1 (ja) 2010-05-26 2011-12-01 日本電気株式会社 マルチプロセッサシステム、実行制御方法、実行制御プログラム
JP2012150661A (ja) * 2011-01-19 2012-08-09 Toshiba Corp プロセッサ動作検査システム、及びその検査方法
JP6297853B2 (ja) * 2014-02-18 2018-03-20 ルネサスエレクトロニクス株式会社 マルチプロセッサシステム
KR101603429B1 (ko) * 2014-09-03 2016-03-14 (주)솔투로 빅데이터의 멀티프로세스 분배를 통한 멀티 출력 장치 및 그 방법
KR101597045B1 (ko) * 2014-09-03 2016-02-23 (주)솔투로 빅데이터의 멀티프로세스 분배를 통한 순차 출력 장치 및 그 방법
US20160179707A1 (en) * 2014-12-19 2016-06-23 Lattice Semiconductor Corporation Sharing a Common Resource Via Multiple Interfaces
CN113050044B (zh) * 2021-04-27 2023-09-01 广州极飞科技股份有限公司 雷达系统及电子设备
US20220398130A1 (en) * 2021-06-11 2022-12-15 International Business Machines Corporation Asynchronous completion notification in a multi-core data processing system
CN114817120A (zh) * 2022-06-29 2022-07-29 湖北芯擎科技有限公司 一种跨域数据共享方法、系统级芯片、电子设备及介质

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02101558A (ja) * 1988-10-11 1990-04-13 Seiko Instr Inc ホスト・コンピュータと周辺装置との間のコマンド通信方式
JPH02202637A (ja) * 1988-12-09 1990-08-10 Tandem Comput Inc フォールトトレラントコンピュータにおけるメモリ管理システム
JPH0512219A (ja) * 1991-07-04 1993-01-22 Yokogawa Hewlett Packard Ltd プロセス転送方式
JPH0535661A (ja) * 1991-07-30 1993-02-12 Hitachi Ltd Scsiコントロ−ラic
JPH07281946A (ja) * 1993-11-01 1995-10-27 Ericsson Inc データメモリへのアクセスを制御するための装置
JPH09218859A (ja) * 1996-02-07 1997-08-19 Oki Electric Ind Co Ltd マルチプロセッサ制御システム
JP2000040076A (ja) * 1998-06-30 2000-02-08 Sun Microsyst Inc 多重コンピュ―タ・プロセスの制御
JP2000341245A (ja) * 1999-05-11 2000-12-08 Koninkl Philips Electronics Nv 通信システム、受信機及びデジタルデータ復調器
JP2001167069A (ja) * 1999-12-13 2001-06-22 Fujitsu Ltd マルチプロセッサシステム及びデータ転送方法
JP2002207711A (ja) * 2001-01-11 2002-07-26 Nec Eng Ltd グラフィックス負荷分散処理装置
JP2003208412A (ja) * 2001-11-08 2003-07-25 Matsushita Electric Ind Co Ltd 回路群制御システム
JP2007219816A (ja) * 2006-02-16 2007-08-30 Handotai Rikougaku Kenkyu Center:Kk マルチプロセッサシステム
JP2007219925A (ja) * 2006-02-17 2007-08-30 Olympus Corp バス制御装置、バス制御プログラム及び記録媒体

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3538214C2 (de) * 1984-10-30 1994-06-16 Mitsubishi Electric Corp Multiprozessorsystem
JPH01292539A (ja) * 1988-05-20 1989-11-24 Toshiba Corp タスクのスケジュール装置
JPH0248765A (ja) * 1988-08-11 1990-02-19 Nec Corp マルチプロセッサ間データ転送システム
JPH02220138A (ja) * 1989-02-22 1990-09-03 Matsushita Electric Ind Co Ltd リアルタイムオペレーティングシステムの割り込み保護方式
US5452452A (en) * 1990-06-11 1995-09-19 Cray Research, Inc. System having integrated dispatcher for self scheduling processors to execute multiple types of processes
US5428811A (en) * 1990-12-20 1995-06-27 Intel Corporation Interface between a register file which arbitrates between a number of single cycle and multiple cycle functional units
US6378061B1 (en) * 1990-12-20 2002-04-23 Intel Corporation Apparatus for issuing instructions and reissuing a previous instructions by recirculating using the delay circuit
US5321818A (en) * 1992-05-12 1994-06-14 Hughes Aircraft Company System for arbitrating for access on VME bus structures
JPH0619836A (ja) * 1992-07-06 1994-01-28 Yokogawa Electric Corp Dma制御回路
JP2553823B2 (ja) * 1994-05-30 1996-11-13 静岡日本電気株式会社 バス調停方式
US5767866A (en) * 1995-06-07 1998-06-16 Seiko Epson Corporation Computer system with efficient DRAM access
FR2737030B1 (fr) * 1995-07-21 1997-08-14 Bull Sa Procede de transfert de messages dans un systeme informatique multinodal
AU6452396A (en) * 1995-07-27 1997-02-26 Intel Corporation Protocol for arbitrating access to a shared memory area using historical state information
US5819112A (en) * 1995-09-08 1998-10-06 Microsoft Corporation Apparatus for controlling an I/O port by queuing requests and in response to a predefined condition, enabling the I/O port to receive the interrupt requests
US5671365A (en) * 1995-10-20 1997-09-23 Symbios Logic Inc. I/O system for reducing main processor overhead in initiating I/O requests and servicing I/O completion events
JPH10171752A (ja) * 1996-12-13 1998-06-26 Kyocera Corp Dmaのデータ転送監視方法
JP3730740B2 (ja) * 1997-02-24 2006-01-05 株式会社日立製作所 並列ジョブ多重スケジューリング方法
US6378051B1 (en) * 1999-06-14 2002-04-23 Maxtor Corporation Interrupt signal prioritized shared buffer memory access system and method
US6513082B1 (en) * 1999-09-29 2003-01-28 Agere Systems Inc. Adaptive bus arbitration using history buffer
US6701407B1 (en) 1999-12-13 2004-03-02 Fujitsu Limited Multiprocessor system with system modules each having processors, and a data transfer method therefor
US6772254B2 (en) * 2000-06-21 2004-08-03 International Business Machines Corporation Multi-master computer system with overlapped read and write operations and scalable address pipelining
US7032031B2 (en) * 2000-06-23 2006-04-18 Cloudshield Technologies, Inc. Edge adapter apparatus and method
US6854053B2 (en) * 2000-10-25 2005-02-08 Signet Scientific Company Method for identifying and communicating with a plurality of slaves in a master-slave system
KR100362167B1 (ko) * 2000-12-26 2002-11-23 한국전자통신연구원 비동기전달모드 방식의 수동광망 광 네트워크 유니트 제어장치
US6889283B2 (en) * 2001-02-23 2005-05-03 Hewlett-Packard Development Company, L.P. Method and system to promote arbitration priority in a buffer queue
JP2003036240A (ja) 2001-07-24 2003-02-07 Matsushita Electric Ind Co Ltd マルチプロセッサ間通信装置
US20040181638A1 (en) * 2003-03-14 2004-09-16 Paul Linehan Event queue system
US7721069B2 (en) * 2004-07-13 2010-05-18 3Plus1 Technology, Inc Low power, high performance, heterogeneous, scalable processor architecture
US7995043B2 (en) * 2004-10-18 2011-08-09 Tamiras Per Pte. Ltd., Llc Arbitration for acquisition of extended display identification data (EDID)
US7305537B1 (en) * 2005-03-01 2007-12-04 Sun Microsystems, Inc. Method and system for I/O scheduler activations
JP4847036B2 (ja) * 2005-03-30 2011-12-28 キヤノン株式会社 バスアクセスを調停する制御装置およびデータ処理装置の制御方法
US20070174529A1 (en) * 2005-12-29 2007-07-26 Intel Corporation Queue manager having a multi-level arbitrator
JP4935392B2 (ja) * 2007-02-07 2012-05-23 富士通株式会社 出力調停プログラム及び装置
US20100049268A1 (en) * 2007-02-20 2010-02-25 Avery Biomedical Devices, Inc. Master/slave processor configuration with fault recovery
US8625719B2 (en) * 2007-06-06 2014-01-07 Landis+Gyr Technologies, Llc DSP workload distribution in a power line carrier system
JP4746699B1 (ja) * 2010-01-29 2011-08-10 株式会社東芝 半導体記憶装置及びその制御方法

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02101558A (ja) * 1988-10-11 1990-04-13 Seiko Instr Inc ホスト・コンピュータと周辺装置との間のコマンド通信方式
JPH02202637A (ja) * 1988-12-09 1990-08-10 Tandem Comput Inc フォールトトレラントコンピュータにおけるメモリ管理システム
JPH0512219A (ja) * 1991-07-04 1993-01-22 Yokogawa Hewlett Packard Ltd プロセス転送方式
JPH0535661A (ja) * 1991-07-30 1993-02-12 Hitachi Ltd Scsiコントロ−ラic
JPH07281946A (ja) * 1993-11-01 1995-10-27 Ericsson Inc データメモリへのアクセスを制御するための装置
JPH09218859A (ja) * 1996-02-07 1997-08-19 Oki Electric Ind Co Ltd マルチプロセッサ制御システム
JP2000040076A (ja) * 1998-06-30 2000-02-08 Sun Microsyst Inc 多重コンピュ―タ・プロセスの制御
JP2000341245A (ja) * 1999-05-11 2000-12-08 Koninkl Philips Electronics Nv 通信システム、受信機及びデジタルデータ復調器
JP2001167069A (ja) * 1999-12-13 2001-06-22 Fujitsu Ltd マルチプロセッサシステム及びデータ転送方法
JP2002207711A (ja) * 2001-01-11 2002-07-26 Nec Eng Ltd グラフィックス負荷分散処理装置
JP2003208412A (ja) * 2001-11-08 2003-07-25 Matsushita Electric Ind Co Ltd 回路群制御システム
JP2007219816A (ja) * 2006-02-16 2007-08-30 Handotai Rikougaku Kenkyu Center:Kk マルチプロセッサシステム
JP2007219925A (ja) * 2006-02-17 2007-08-30 Olympus Corp バス制御装置、バス制御プログラム及び記録媒体

Also Published As

Publication number Publication date
US20110125948A1 (en) 2011-05-26
JPWO2010016169A1 (ja) 2012-01-12
WO2010016169A1 (ja) 2010-02-11
CN102112972A (zh) 2011-06-29
US8583845B2 (en) 2013-11-12
CN102112972B (zh) 2014-05-07

Similar Documents

Publication Publication Date Title
JP5360061B2 (ja) マルチプロセッサシステム及びその制御方法
JP5895840B2 (ja) マルチプロセッサシステム、実行制御方法、実行制御プログラム
US20070255872A1 (en) Bus system and semiconductor integrated circuit
US20120311266A1 (en) Multiprocessor and image processing system using the same
JP2012512472A (ja) データバースト間の競合の解決
CN116880773B (zh) 一种内存扩展装置及数据处理方法、系统
JP2010244580A (ja) 外部デバイスアクセス装置
JP2591502B2 (ja) 情報処理システムおよびそのバス調停方式
JP5382113B2 (ja) 記憶制御装置及びその制御方法
EP1936514B1 (en) Apparatus and method for controlling issue of requests to another operation processing device
JP2006268753A (ja) Dma回路及びコンピュータシステム
US7254667B2 (en) Data transfer between an external data source and a memory associated with a data processor
JP2006079394A (ja) データ処理装置
JP4437386B2 (ja) 信号処理システム
JP2008305215A (ja) バスシステム
WO2011030498A1 (ja) データ処理装置及びデータ処理方法
JP4642398B2 (ja) 共有バス調停システム
JP2020071688A (ja) 半導体装置
JP6535516B2 (ja) マルチ・プログラマブルデバイス・システムとその制御方法
US20090216932A1 (en) Data processing apparatus
JP2001273191A (ja) コンピュータシステム
JP2005259051A (ja) プロセッシングユニットおよびその制御方法
CN116009966A (zh) 一种实现异构多处理器运算分配的电路系统及方法
JPH0535507A (ja) 中央処理装置
JP2006031227A (ja) Dma転送を用いたコンピュータシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120307

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130514

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130712

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: 20130806

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130819

R150 Certificate of patent or registration of utility model

Ref document number: 5360061

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150