(57)【特許請求の範囲】
【請求項１】
１つまたは複数のメインプロセッサ及び発行されたコマンドを実行する複数のサブプロセッサと、
各前記複数のサブプロセッサの各々の実行制御を行う実行制御回路とを備え、
前記実行制御回路は、
各前記複数のサブプロセッサのいずれかに対して、前記コマンドを出力するコントロールバス出力手段と、
各前記複数のサブプロセッサの各々から、前記複数のサブプロセッサの各々に対して発行されたコマンドの処理状態を示すステータス通知を入力するステータスバス入力手段と、
前記複数のサブプロセッサ内の、第１のコマンドを発行されたサブプロセッサから入力された、前記第１のコマンドの処理状態を示す前記ステータス通知が、動作シーケンス上で次に発行される第２のコマンドと１対１の依存関係にあるか否かを判定する判定回路と、
前記依存関係があると判定された場合に、前記コントロールバス出力手段に前記第２のコマンドをハードウェア処理で発行するステータスアクセラレータと、
前記依存関係がないと判定された場合に、前記ステータス通知を格納するためのステータスＦＩＦＯ制御部と、
前記格納されたステータス通知と前記ステータス通知に１対１対応ではない処理の依存関係の解析を行い、前記コントロールバス出力手段に解析結果の前記処理を実行するための第３のコマンドをソフトウェア処理で発行する実行制御用プロセッサと
を備えることを特徴とするマルチプロセッサシステム。
【請求項２】
前記ステータスアクセラレータが、処理する場合にテーブル引きにより対応する処理起動コマンドを発行することを特徴とする請求項１に記載のマルチプロセッサシステム。
【請求項３】
前記解析は、
処理されたデータの判別、前記複数のサブプロセッサの各々の前記コマンドの処理状態、及び前記コマンドによる処理とデータとの依存関係についての解析を含む
ことを特徴とする請求項１記載のマルチプロセッサシステム。
【請求項４】
前記実行制御回路が、前記実行制御用プロセッサと前記ステータスアクセラレータからのアクセスを調停するコマンド調停回路を備えることを特徴とする請求項１から請求項３の何れか１項に記載のマルチプロセッサシステム。
【請求項５】
前記ステータスアクセラレータが、
対応する処理コマンドのサブプロセッサＩＤと処理ＩＤをペアにして格納するコマンドテーブルと、
対応する処理コマンドを前記サブプロセッサに発行するためのコマンド出力コントローラとを備え、
前記コマンド出力コントローラが、
前記判定回路から転送されたデータの全てまたは一部をアドレスとして、前記コマンドテーブルから格納された処理コマンドを読み出し、読み出したサブプロセッサＩＤを持つサブプロセッサに対して、一緒に読み出した処理ＩＤを含めて処理起動コマンドを発行することを特徴とする請求項１から請求項４の何れか１項に記載のマルチプロセッサシステム。
【請求項６】
前記ステータス通知用のステータスデータのフォーマット中に判定用のビット領域を設け、
前記判定回路が、
前記判定用のビット領域を用いて判定を行う比較判定回路と、
前記ステータスデータの全部または一部を、１対１の依存関係にあり且つ前記ステータスアクセラレータが処理するという判定結果の場合に前記ステータスアクセラレータに転送し、それ以外の判定結果の場合に前記ステータスＦＩＦＯ制御部に転送する転送選択手段とを備えることを特徴とする請求項１から請求項５の何れか１項に記載のマルチプロセッサシステム。
【請求項７】
前記判定回路が、
入力したステータスデータを用いてアクセスした場合、１対１の依存関係にある処理コマンドが存在する場合は前記コマンドテーブルのアドレスを出力することで判定を実現する連想メモリと、
前記連想メモリにヒットした場合は出力されるアドレスを前記ステータスアクセラレータに転送し、ヒットしない場合は入力した前記ステータスデータを前記ステータスＦＩＦＯ制御部に転送する転送選択手段とを備えることを特徴とする請求項５に記載のマルチプロセッサシステム。
【請求項８】
前記連想メモリが、
ステータスデータのハッシュ値計算回路と、
１対１の依存関係にあるステータスデータから計算されるハッシュ値をアドレスとして当該ステータスデータをデータとして格納するハッシュテーブルと、
同一のハッシュ値を持つステータスデータが複数存在する場合に前記ハッシュ値を基準アドレスとした所定のアドレス範囲内を探索するアドレスカウンタとを備えることを特徴とする請求項７に記載のマルチプロセッサシステム。
【請求項９】
前記実行制御回路は、
メインプロセッサとの通信用としてメインプロセッサからの動作シーケンスの設定およびコマンド入力用のコマンドＦＩＦＯ制御部と、
メインプロセッサへの処理シーケンス完了の割り込み通知用の割り込みＦＩＦＯ制御部と、
前記ステータスＦＩＦＯ制御部と前記コマンドＦＩＦＯ制御部、前記割り込みＦＩＦＯ制御部の実体を同一アドレス空間上のメモリに共有化し、各々のＦＩＦＯ段数を可変にするためのＦＩＦＯベースアドレス設定レジスタおよびＦＩＦＯ段数設定レジスタと、
各ＦＩＦＯ制御部に対するアクセスが発生した場合に前記２つのＦＩＦＯ設定レジスタの値を用いて実際のメモリアドレスに変換するアドレス変換手段とを備えることを特徴とする請求項１から請求項８の何れか１項に記載のマルチプロセッサシステム。
【請求項１０】
１つまたは複数のメインプロセッサ及び発行されたコマンドを実行する複数のサブプロセッサを備えるマルチプロセッサシステムにおけるサブプロセッサの実行制御方法であって、
各前記複数のサブプロセッサの各々の実行制御を行う実行制御回路を備え、
前記実行制御回路の判定回路が、前記複数のサブプロセッサ内の、第１のコマンドを発行されたサブプロセッサから入力された、前記第１のコマンドの処理状態を示すステータス通知が、動作シーケンス上で次に発行される第２のコマンドと１対１の依存関係にあるか否かを判定し、
前記依存関係があると判定された場合に、前記実行制御回路のステータスアクセラレータが、前記第２のコマンドをハードウェア処理で発行し、
前記依存関係がないと判定された場合に、前記実行制御回路のステータスＦＩＦＯ制御部が、前記ステータス通知を格納し、
前記実行制御回路の実行制御用プロセッサが、前記格納されたステータス通知と前記ステータス通知に１対１対応ではない処理の依存関係の解析を行い、解析結果の前記処理を実行するための第３のコマンドを発行する
ことを特徴とする実行制御方法。
【請求項１１】
１つまたは複数のメインプロセッサ及び発行されたコマンドを実行する複数のサブプロセッサを備えるマルチプロセッサシステムにおいて、
各前記複数のサブプロセッサの各々の実行制御を行う実行制御回路に、
前記実行制御回路の判定回路が、前記複数のサブプロセッサ内の、第１のコマンドを発行されたサブプロセッサから入力された、前記第１のコマンドの処理状態を示すステータス通知が、動作シーケンス上で次に発行される第２のコマンドと１対１の依存関係にあるか否かを判定する機能と、
前記依存関係があると判定された場合に、前記実行制御回路のステータスアクセラレータが、前記第２のコマンドをハードウェア処理で発行する機能と、
前記依存関係がないと判定された場合に、前記実行制御回路のステータスＦＩＦＯ制御部が、前記ステータス通知を格納する機能と、
前記実行制御回路の実行制御用プロセッサが、前記格納されたステータス通知と前記ステータス通知に１対１対応ではない処理の依存関係の解析を行い、解析結果の前記処理を実行するための第３のコマンドをソフトウェア処理で発行する機能と
を実行させることを特徴とする実行制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチプロセッサシステムの改良に関し、特に、並列実行制御処理の柔軟性、拡張性を損なわずに高速化を可能とするマルチプロセッサシステムに関する。
【背景技術】
【０００２】
マルチプロセッサシステムは、主に、各プロセッサがホモジニアスで対称的（ＳＭＰ：Ｓｙｍｍｅｔｒｉｃ  Ｍｕｌｔｉｐｒｏｃｅｓｓｉｎｇ）な構成のものと、ヘテロジニアスで非対称（ＡＭＰ：Ａｓｙｍｍｅｔｒｉｃ  ｍｕｌｔｉｐｒｏｃｅｓｓｉｎｇ）な構成のものに分類できる。【０００３】
ここで、後者のヘテロジニアスなマルチプロセッサシステムにおいては、通常、メインプロセッサ（ｍａｉｎ  ｐｒｏｃｅｓｓｏｒ：ＭＰ）が他の複数のサブプロセッサを直接実行制御する制御方法が一般的であった。【０００４】
これは、システム全体を管理して主要な処理を行うメインプロセッサが、機能分散された各サブプロセッサの起動制御も実施するものである。【０００５】
このとき、各サブプロセッサの制御はメインプロセッサがアクセス権を持つシステムバスを用いて行い、各サブプロセッサからの処理完了通知は、各サブプロセッサから割り込み信号をそれぞれ入力した上でシステムバスを用いて各サブプロセッサの状態を確認する方法が用いられてきた。【０００６】
このような制御方法により、システム全体の状態管理や各サブプロセッサの状態管理を一箇所に集約できるため、マルチプロセッサシステム全体の制御シーケンスの検討及び実装が容易となるという利点や、デバッグ用に可観測性も高いという利点があった。【０００７】
しかしながら、この場合、近年のシステムＬＳＩの大規模化、複雑化に伴って、処理負荷がメインプロセッサに集中するようになるため、処理が破綻するという問題があった。【０００８】
この問題を解決するため、例えば、特許文献１に示されるような、並列実行専用の実行制御部を備える技術が関連技術として提案されている。【０００９】
特許文献１に記載の関連技術は、少なくとも２つ以上のサブプロセッサをパイプライン的に並列動作させる制御機構を実装することで、メインプロセッサからの負荷分散と各サブプロセッサの並列実行による稼働率向上を可能とするものである。【００１０】
ただし、該実行制御部は、完了通知信号の入力など接続されるサブプロセッサ数に依存した回路構成となる。この場合、近年のシステムＬＳＩでは、複数のサブプロセッサ（ＩＰコア）が１チップに集積されることが一般的であり、短ＴＡＴ（Ｔｕｒｎ  Ａｒｏｕｎｄ  Ｔｉｍｅ）でのシステムの拡張、すなわち、コア数の増加を求められる。従って、その度に実行制御部の回路構成や内部コマンドテーブルの容量を変更する必要が生じ、拡張性が低いという問題がある。また、３つ以上の複数の処理が依存関係にあるような複雑な実行制御処理は困難であり柔軟性が低いという問題もある。【００１１】
また、他の関連技術として、特許文献２に示されるような、並列実行制御専用の実行制御回路に柔軟性や拡張性を向上させた技術が提案されている。【００１２】
特許文献２に記載の関連技術は、実行制御回路内に、実行制御用プロセッサと、各サブプロセッサからの処理ステータスを確認するためのステータスバス入力手段、容量を可変にできるステータスＦＩＦＯとを備えることにより、実行制御処理の負荷分散化と拡張性および柔軟性の向上を同時に達成できるものである。【００１３】
しかしながら、この場合、各サブプロセッサの実行制御処理を、実行制御用プロセッサ上のソフトウェア処理により行うため、１つの処理ステータスに対する実行制御処理に、例えば数十から数百サイクル程度の処理時間が必要という問題があった。【００１４】
また、サブプロセッサ数の拡張や処理ステータス数の拡張がそのまま実行制御用プロセッサの処理量増加につながるため、当該プロセッサの処理破綻や実行制御回路の個数増加が必要となるリスクが高くなるという問題もあった。【００１５】
また、他の関連技術として、特許文献３に示されるような、命令バッファと応答バッファを用いてメインプロセッサによるサブプロセッサの制御を高速化する技術が提案されている。【００１６】
特許文献３に記載の関連技術は、アイドル状態のサブプロセッサが自発的に命令バッファをリードすることで、メインプロセッサはどのサブプロセッサがアイドル状態かを認識する必要はなく、サブプロセッサ制御の高速化を可能とするものである。【００１７】
しかしながら、この場合、各々のサブプロセッサがいずれのタスクも処理可能なホモジニアスで対称的（ＳＭＰ）な構成であるという前提があり、そもそも本発明にて対象としているヘテロジニアスで非対称（ＡＭＰ）なマルチプロセッサシステムには適用できないという問題がある。【００１８】
また、特許文献２に記載の関連技術と同様、やはりメインプロセッサによるソフトウェア処理となるため、１タスク分の実行制御処理に、高速化できても数十サイクルから数百サイクル程度は必要になるという問題がある。
【先行技術文献】
【特許文献】
【００１９】
【特許文献１】特開２００３−２０８４１２号公報
【特許文献２】国際公開番号ＷＯ２０１０／０１６１６９Ａ１号公報
【特許文献３】特開平９−２１８８５９号公報
【発明の概要】
【発明が解決しようとする課題】
【００２０】
第１の課題は、マルチプロセッサシステムにおいて、各サブプロセッサの実行制御をメインプロセッサではなく専用の実行制御用プロセッサ（ＣＰ）を用いて実施する場合、その実行制御処理時間（レイテンシ）が問題となり、マルチプロセッサシステム全体の処理が破綻してしまうことである。【００２１】
その理由は、近年の画像処理用システムＬＳＩや通信処理用システムＬＳＩなどの更なる高速化要求に伴って、各サブプロセッサ間における実行制御に要する処理時間の影響により、全体の処理が間に合わなくなる可能性が高くなるためである。特に、各サブプロセッサを順番に用いてパイプライン的にデータ処理していくようなデータ処理システムでは、その各サブプロセッサ処理間における時間オーバヘッドをどれだけ小さくできるかが今後は重要な課題となる。【００２２】
ただし、例えば実行制御用プロセッサによる実行制御処理をそのまま専用ハードウェア化して高速化した場合には、第２の課題として後述する柔軟性や拡張性が低下するという問題が発生する。【００２３】
第２の課題は、実行制御専用のハードウェアを実装した場合に、マルチプロセッサシステム全体の拡張性や柔軟性が低いことである。【００２４】
その理由は、一般的に実行制御部のインタフェースや回路構成は、接続されるサブプロセッサ数や処理ステータス数に依存する構成となることが多いためである。つまり、システム拡張のためにサブプロセッサ数や処理ステータス数を増加させたい場合に、実行制御部自体のインタフェースやテーブル容量などの回路変更が必要となる。【００２５】
また、３つ以上のサブプロセッサによる各処理がお互いに依存関係にあるような複雑な実行制御処理を、テーブル引きを含めた専用ハードウェアを用いて実現することは一般的に困難であるという問題もある。仮に複雑な回路構成を用いて実現できたとしても当該実行制御処理に特化した回路である場合は、柔軟性や拡張性が非常に低いという問題が生じる。【００２６】
（発明の目的）
本発明の目的は、上述した課題を解決し、並列実行制御処理の柔軟性、拡張性を損なわずに高速化を可能とするマルチプロセッサシステムを提供することである。
【課題を解決するための手段】
【００２７】
本発明の第１のマルチプロセッサシステムは、１つまたは複数のメインプロセッサ及び発行されたコマンドを実行する複数のサブプロセッサと、各複数のサブプロセッサの各々の実行制御を行う実行制御回路とを備え、実行制御回路は、各複数のサブプロセッサのいずれかに対して、コマンドを出力するのコントロールバス出力手段と、各複数のサブプロセッサの各々から、複数のサブプロセッサの各々に対して発行されたコマンドの処理状態を示すステータス通知を入力するステータスバス入力手段と、複数のサブプロセッサ内の、第１コマンドを発行されたサブプロセッサから入力された、第１のコマンドの処理状態を示すステータス通知が、動作シーケンス上で次に発行される第２のコマンドと１対１の依存関係にあるか否かを判定する判定回路と、依存関係があると判定された場合に、コントロールバス出力手段に第２のコマンドを発行するステータスアクセラレータと、依存関係がないと判定された場合に、ステータス通知を格納するためのステータスＦＩＦＯ制御部と、格納されたステータス通知を用いて所定の解析を行い、コントロールバス出力手段に第３のコマンドを発行する実行制御用プロセッサとを備える。
【００２８】
本発明の第１の実行制御方法は、１つまたは複数のメインプロセッサ及び発行されたコマンドを実行する複数のサブプロセッサを備えるマルチプロセッサシステムにおけるサブプロセッサの実行制御方法であって、各複数のサブプロセッサの各々の実行制御を行う実行制御回路を備え、実行制御回路の判定回路が、複数のサブプロセッサ内の、第１コマンドを発行されたサブプロセッサから入力された、第１のコマンドの処理状態を示すステータス通知が、動作シーケンス上で次に発行される第２のコマンドと１対１の依存関係にあるか否かを判定し、依存関係があると判定された場合に、実行制御回路のステータスアクセラレータが、第２のコマンドを発行し、依存関係がないと判定された場合に、実行制御回路のステータスＦＩＦＯ制御部が、ステータス通知を格納し、実行制御回路の実行制御用プロセッサが、格納されたステータス通知を用いて所定の解析を行い、第３のコマンドを発行する。
【００２９】
本発明の第１の実行制御プログラムは、１つまたは複数のメインプロセッサ及び発行されたコマンドを実行する複数のサブプロセッサを備えるマルチプロセッサシステムにおいて、各複数のサブプロセッサの各々の実行制御を行う実行制御回路に、実行制御回路の判定回路が、複数のサブプロセッサ内の、第１コマンドを発行されたサブプロセッサから入力された、第１のコマンドの処理状態を示すステータス通知が、動作シーケンス上で次に発行される第２のコマンドと１対１の依存関係にあるか否かを判定する機能と、依存関係があると判定された場合に、実行制御回路のステータスアクセラレータが、第２のコマンドを発行する機能と、依存関係がないと判定された場合に、実行制御回路のステータスＦＩＦＯ制御部が、ステータス通知を格納する機能と、実行制御回路の実行制御用プロセッサが、格納されたステータス通知を用いて所定の解析を行い、第３のコマンドを発行する機能とを実行させる。
【発明の効果】
【００３０】
本発明によれば、並列実行制御処理の柔軟性、拡張性を損なわずに高速化を可能とするマルチプロセッサシステムを提供できる。
【図面の簡単な説明】
【００３１】
【図１】本発明の第１の実施の形態におけるマルチプロセッサシステムの構成を示す図である。
【図２】本発明で想定している各サブプロセッサの並列実行制御を行う処理フロー例を示す図である。
【図３】本発明で想定している動作シーケンスの例を示す図である。
【図４】本発明で想定している高速処理可能な動作シーケンスの例を示す図である。
【図５】本発明におけるメインプロセッサからのコマンド設定シーケンスを示す図である。
【図６】本発明におけるメインプロセッサへの割り込み通知シーケンスを示す図である。
【図７】本発明におけるサブプロセッサへのコマンド発行シーケンスを示す図である。
【図８】本発明におけるサブプロセッサからのステータス通知シーケンスを示す図である。
【図９】本発明におけるステータスアクセラレータによる実行制御処理シーケンスを示す図である。
【図１０】本発明の第１の実施の形態におけるステータスデータのフォーマットを示す図である。
【図１１】本発明の第１の実施の形態における判定回路の構成を示す図である。
【図１２】本発明におけるステータスアクセラレータの構成を示す図である。
【図１３】本発明の実施例１におけるデータ符号化／復号化処理システムを示す図である。
【図１４】本発明の実施例１における動作シーケンスの例を示す図である。
【図１５】本発明におけるＦＩＦＯ制御回路構成を示す図である。
【図１６】本発明におけるＦＩＦＯメモリ制御部のバス制御構成を示す図である。
【図１７】本発明の第２の実施の形態におけるマルチプロセッサの構成を示す図である。
【図１８】本発明の第２の実施の形態におけるステータスデータのフォーマットを示す図である。
【図１９】本発明の第２の実施の形態における判定回路の構成を示す図である。
【図２０】本発明の第３の実施の形態におけるマルチプロセッサの構成を示す図である。
【発明を実施するための形態】
【００３２】
次に、本発明の実施の形態について、図面を参照して詳細に説明する。なお、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
【００３３】
（第１の実施の形態）
第１の実施の形態では、本発明におけるマルチプロセッサシステムとして、発明した実行制御回路をデータ符号化／復号化処理システムに応用した場合の実施例１などを用いてその基本構成と特徴、動作について詳説する。なお、以下の図において、本発明の本質に関わらない部分の構成については省略してあり、図示されていない。
【００３４】
図１は、本発明の第１の実施の形態であるマルチプロセッサシステムの例として、複数のサブプロセッサを実行制御するための実行制御回路を実装した場合の全体構成を示す図である。
【００３５】
本発明におけるマルチプロセッサシステムは、メインプロセッサ側にメインプロセッサ（ＭＰ（ＣＰＵ））１０と、そのシステムバスであるＣＰＵバス１１、周辺ブロック（ペリフェラル）として割り込みコントローラ１２が存在し、サブプロセッサ側に各サブプロセッサ（機能ブロック）３０〜３ｎが存在する構成である。ｎ（１以上の任意の自然数）はサブプロセッサの数を示している。
【００３６】
メインプロセッサ（ＭＰ（ＣＰＵ））１０は、ＣＰＵバス１１を用いてサブプロセッサ側の実行制御を行い、割り込みコントローラ１２に入力される割り込み信号を用いてサブプロセッサ側の状態を確認する。
【００３７】
第１の実施の形態では、メインプロセッサ（ＭＰ（ＣＰＵ））１０とサブプロセッサ（機能ブロック）３０〜３ｎの間に、本発明である実行制御回路２０を実装する。この実行制御回路２０は、実行制御用プロセッサ（ＣＰ）２１、メインプロセッサ（ＭＰ（ＣＰＵ））１０との入出力インタフェース（ＣＰＵ  Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）、  ＩＮＴＲ  Ｉ／Ｆ）、サブプロセッサとの入出力インタフェースとしてコントロールバス４２、ステータスバス５２を備える。実行制御回路２０内に、実行制御用プロセッサ（ＣＰ）２１用のＣＰ用命令メモリ２２及びＣＰ用データメモリ２３を備えることも可能である。
【００３８】
ここで、ＩＮＴＲ  Ｉ／Ｆとは、割り込みインタフェースを意味する。
【００３９】
実行制御回路２０と各サブプロセッサ（機能ブロック）３０〜３ｎの間には、実行制御回路２０がサブプロセッサ（機能ブロック）３０〜３ｎを制御するためのコントロールバス制御回路４０と、サブプロセッサ（機能ブロック）３０〜３ｎが処理ステータスを実行制御回路２０に通知するためのステータスバス制御回路５０を備えている。
【００４０】
実行制御回路２０における各サブプロセッサ（機能ブロック）３０〜３ｎからの入力インタフェースは、割り込み信号のような専用線ではなく、ステータスバス５２での入力とし、実行制御回路２０とサブプロセッサ（機能ブロック）３０〜３ｎ間にステータスバス制御回路５０を備えることで、実行制御回路２０はサブプロセッサ数に依存しないハードウェア構成とする。
【００４１】
実行制御回路２０内には、ステータスバス５２入力用に判定回路２４、ステータスアクセラレータ２５、ステータスＦＩＦＯ（Ｆｉｒｓｔ−Ｉｎ  Ｆｉｒｓｔ−Ｏｕｔ）制御部２６を備えている。ステータスバス５２から入力されるステータスデータは、そのステータス通知に関連する処理ＩＤと処理ステータス値に、ステータスバス制御回路５０上でサブプロセッサＩＤを付加した形式のデータフォーマットとする。
【００４２】
ここで、入力されたステータスデータは、判定回路２４にて次に発行される処理コマンドと１対１の依存関係にある単純な処理ステータスであるかを判定でき、ステータスアクセラレータ２５またはステータスＦＩＦＯ制御部２６に転送可能な構成とする。そして、ステータスアクセラレータ２５は、単純な処理ステータスを入力した場合に、対応する処理コマンドを自動的に発行可能な構成とする。
【００４３】
また、各サブプロセッサ（機能ブロック）３０〜３ｎに対するコマンド発行用に実行制御回路２０からコントロールバス４２を出力し、実行制御回路２０とサブプロセッサ（機能ブロック）３０〜３ｎ間にコントロールバス制御回路４０を備えることで、実行制御回路２０の構成はサブプロセッサ数に依存しない構成とする。
【００４４】
ここで、実行制御回路２０内では、実行制御用プロセッサ（ＣＰ）２１からのアクセスとステータスアクセラレータ２５からのアクセスをコマンド調停回路２９にて調停して出力する。
【００４５】
実行制御回路２０内のメインプロセッサ（ＭＰ（ＣＰＵ））１０側のインタフェースとしては、メインプロセッサ（ＭＰ（ＣＰＵ））１０からのコマンド入力用にコマンドＦＩＦＯ制御部２７を備え、メインプロセッサ（ＭＰ（ＣＰＵ））１０への割り込み要因通知用に割り込みＦＩＦＯ制御部２８を備える構成とする。
【００４６】
一般的な割り込み要因レジスタを実装する方法では要因数がレジスタ数依存となり拡張性が低いため、より柔軟性が高い割り込みＦＩＦＯ制御部２８を備えることとする。
【００４７】
ここで、ステータスＦＩＦＯ制御部２６、コマンドＦＩＦＯ制御部２７、割り込みＦＩＦＯ制御部２８等の各ＦＩＦＯは、同一のメモリ等を用いて共有化することで、各々のＦＩＦＯ段数を柔軟に変更可能な構成としても何ら問題はない。
【００４８】
各サブプロセッサ（機能ブロック）３０〜３ｎ側の構成は、実行制御回路２０からのコマンドを受け付けるためのコマンド受信制御部４３と、実行制御回路２０に対して処理完了などのステータスを通知するためのステータス通知制御部５３を備える構成である。
【００４９】
コマンド受信制御部４３はコントロールバスのスレーブ（受け側）として接続され、取得したコマンドをサブプロセッサ内部に伝える機能を持つ。
【００５０】
ステータス通知制御部５３は、ステータスバスのマスタ（送り側）として接続され、サブプロセッサからのステータス値を実行制御回路２０に転送する機能を持つ。
【００５１】
（第１の実施の形態の動作の説明）
次に、本実施の形態の動作について、図１から図１２を参照して詳細に説明する。
【００５２】
図２は、図１に示した実行制御回路２０を用いて複数のサブプロセッサ（機能ブロック）３０〜３ｎの並列実行制御を行う処理フローの例について示す図である。
【００５３】
（１）メインプロセッサ（ＭＰ（ＣＰＵ））１０は、サブプロセッサを動作させるためのパラメータ等が存在する場合、共有メモリ６０など各サブプロセッサ（機能ブロック）３０〜３ｎからアクセス可能な領域に該パラメータ等を書き込んでおく。ただし、本発明において本処理は必須の処理ではない。
【００５４】
（２）メインプロセッサ（ＭＰ（ＣＰＵ））１０はＣＰＵ  Ｉ／Ｆを介して、実行制御回路２０に複数のサブプロセッサ（機能ブロック）３０〜３ｎを連動させる動作シーケンスを設定の後、コマンドＦＩＦＯ制御部２７を用いて動作シーケンス開始などのコマンド発行を行う。
【００５５】
（３）実行制御回路２０は、コントロールバス４２を用いて、メインプロセッサ（ＭＰ（ＣＰＵ））１０からの動作シーケンスにて指定されたタイミングでサブプロセッサ３０（機能ブロック＃０）に対して処理Ａの起動をかける。
【００５６】
（４）サブプロセッサ３０（機能ブロック＃０）は、実行制御回路２０からの起動コマンドに基づき、共有メモリ６０から処理Ａに必要なパラメータと入力データを取得する。
【００５７】
（５）サブプロセッサ３０（機能ブロック＃０）は、処理Ａを実行する。必要に応じてサブプロセッサ３０（機能ブロック＃０）内のローカルメモリを使用する。
【００５８】
（６）  サブプロセッサ３０（機能ブロック＃０）は、処理Ａの結果データを共有メモリ６０に格納する。
【００５９】
（７）サブプロセッサ３０（機能ブロック＃０）は、ステータスバス５２を介して、実行制御回路２０に処理Ａ完了を通知する。
【００６０】
（８）実行制御回路２０は、処理Ａ完了を認識後、メインプロセッサ（ＭＰ（ＣＰＵ））１０から設定された動作シーケンスに従って、コントロールバス４２を用いて、サブプロセッサ３１（機能ブロック＃１）に対して処理Ｂを起動する。
【００６１】
（９）サブプロセッサ３１（機能ブロック＃１）は、実行制御回路２０からの起動コマンドに基づき、共有メモリ６０から処理Ｂに必要なパラメータと入力データを取得する。
【００６２】
（１０）サブプロセッサ３１（機能ブロック＃１）は処理Ｂを実行する。必要に応じてサブプロセッサ３１（機能ブロック＃１）内のローカルメモリを使用する。
【００６３】
（１１）サブプロセッサ３１（機能ブロック＃１）は処理Ｂの結果データを共有メモリ６０に格納する。
【００６４】
（１２）サブプロセッサ３１（機能ブロック＃１）は、ステータスバス５２を介して、実行制御回路２０に処理Ｂ完了を通知する。
【００６５】
（１３）実行制御回路２０は、処理Ｂ完了を認識後、メインプロセッサ（ＭＰ（ＣＰＵ））１０から設定された動作シーケンスに従って、ＩＮＴＲ  Ｉ／Ｆを用いて、メインプロセッサ（ＭＰ（ＣＰＵ））１０に処理完了を割り込み信号によって通知する。
【００６６】
（１４）メインプロセッサ（ＭＰ（ＣＰＵ））１０は、割り込みにて処理完了を認識後、必要に応じて共有メモリ６０から処理結果データを取得する。
【００６７】
ただし、本発明における実行制御回路２０では、前記（８）（図２の（８））に示した動作のように、サブプロセッサからのステータス通知（処理の完了）を受けて次のサブプロセッサにコマンド発行（処理の起動）を行う動作については、以下の場合の何れかを選択することが可能である。
・受信したステータスデータの全てまたは一部のビットを用いて判定回路２４にて判定することにより、ステータスアクセラレータ２５にて直接テーブル引きして次のコマンドを自動発行する（ハードウェア処理する）場合。
・ステータスＦＩＦＯ制御部２６経由で実行制御用プロセッサ（ＣＰ）２１にてソフトウェア処理する場合。
【００６８】
ここで、図３及び図４は、図２で示した動作シーケンス（各サブプロセッサ処理の依存関係）の例を示す図である。
【００６９】
図３の例では、処理Ａの出力データとしてデータ０とデータ１が存在し、処理Ｂはそのデータ０を入力データ、データ２を出力データとし、処理Ｃはそのデータ１を入力データ、データ３を出力データとし、処理Ｄは処理Ｂ、Ｃの出力であるデータ２とデータ３を入力データとする場合の例を示している。
【００７０】
図３の例の場合、実行制御回路２０は、処理Ａを実施するサブプロセッサからデータ０の書き込み完了というステータス通知を受信することで処理Ｂ起動のコマンド発行を行い、データ１の書き込み完了というステータス通知を受信することで処理Ｃ起動のコマンド発行を行う。
【００７１】
また、処理Ｂを実施するサブプロセッサからのデータ２の書き込み完了というステータス通知と処理Ｃを実施するサブプロセッサからのデータ３の書き込み完了というステータス通知の両方ともを受信することで処理Ｄ起動のコマンド発行を行う。
【００７２】
図４の例では、処理Ｅはデータ４を出力データとし、処理Ｆはそのデータ４のみが入力データであり、また、処理Ｆはデータ５を出力データとし、処理Ｇはそのデータ５のみが入力データであるような場合の例を示している。
【００７３】
図４の例の場合、処理Ｅ完了のステータス通知と処理Ｆ起動のコマンド発行がデータ４を介して１対１の関係になっている。また、同様に、処理Ｆ完了のステータス通知と処理Ｇ起動のコマンド発行もデータ５を介して１対１の関係になっている。
【００７４】
本発明における実行制御回路２０では、サブプロセッサ間の連続した処理間における処理ステータスと次のコマンド発行との関係が、このように１対１の依存関係にあるような部分の実行制御処理については、判定回路２４にて判定し、ステータスアクセラレータ２５にて当該コマンドを自動発行する（ハードウェア処理する）ことが可能という特徴がある。
【００７５】
本発明では、図３及び図４に示したような動作シーケンスを、各処理を定義する構造体と各データを定義する構造体を相互にリンクさせた構造体群として定義した上でＣＰ用データメモリ２３上に格納する。そして、実行制御用プロセッサ（ＣＰ）２１が、取得した各ステータス通知からどのデータに変化があったのか（どのデータに対する処理が行われたのか）、及び、どのサブプロセッサが稼働中なのか（処理完了したのか）を認識し、ＣＰ用データメモリ２３上に格納された構造体群のリンク（処理とデータの依存関係）を解析することによって、次に動作可能な処理コマンドを各サブプロセッサ（機能ブロック）３０〜３ｎに発行する。
【００７６】
具体的には、図３に示した各処理において、その処理用の入力データが揃っており、出力データの書き込み先が空いており、かつ、処理を行うためのサブプロセッサ（演算リソース）が処理を実施可能な（稼働中でない）状態の場合に、該当サブプロセッサに対して該当処理コマンドを発行する。
【００７７】
このような動作を実行制御回路２０が行うことにより、図２に示したような処理フローを実現でき、また、パイプライン的に入力データが発生するような処理の場合は、一連の処理を各サブプロセッサ（機能ブロック）３０〜３ｎにパイプライン的に並列実行させることも可能となる。
【００７８】
ただし、例えば図４に示したような、サブプロセッサ間における処理ステータスと次のコマンド発行との依存関係が１対１であるような単純な動作シーケンスの実行制御処理については、その構造体群をＣＰ用データメモリ２３上に格納するのではなく、ステータスアクセラレータ２５内にその対応テーブルを格納しておくことで、当該実行制御処理を、実行制御用プロセッサ（ＣＰ）２１によるソフトウェア処理ではなくステータスアクセラレータ２５によるハードウェア処理により高速化することができる。
【００７９】
次いで、図５から図９までに、図２で示した各処理フローの動作例について示す。
【００８０】
図５は、図２の（２）に示したような、メインプロセッサ（ＭＰ（ＣＰＵ））１０から実行制御回路２０に対してコマンドＦＩＦＯ制御部２７を用いてコマンド発行を行う動作例を示す図である。
【００８１】
（Ａ）メインプロセッサ（ＭＰ（ＣＰＵ））１０からＭＰバス１４を通してコマンドＦＩＦＯ制御部２７に所望のコマンドデータを書き込むことにより、実行制御回路２０内の実行制御用プロセッサ（ＣＰ）２１に割り込み信号が発生し、（Ｂ）実行制御用プロセッサ（ＣＰ）２１はコマンドＦＩＦＯ制御部２７からコマンドデータを取得することができる。
【００８２】
図６は、図２の（１３）に示したような、実行制御回路２０からメインプロセッサ（ＭＰ（ＣＰＵ））１０に対して割り込みＦＩＦＯ制御部２８を用いて動作シーケンスの完了などを割り込み信号で通知する動作例を示す図である。
【００８３】
（Ａ）実行制御用プロセッサ（ＣＰ）２１からＣＰバス１５を通して割り込みＦＩＦＯ制御部２８にシーケンス完了などの割り込み要因データを書き込むことにより、（Ｂ）割り込みコントローラ１２等を介してメインプロセッサ（ＭＰ（ＣＰＵ））１０に割り込み信号が通知される。（Ｃ）メインプロセッサ（ＭＰ（ＣＰＵ））１０は割り込みＦＩＦＯ制御部２８からその要因データを順に取得し、どの動作シーケンスが完了したのか等を認識することができる。
【００８４】
図７は、図２の（３）及び（８）に示したような、実行制御用プロセッサ（ＣＰ）２１から各サブプロセッサ（機能ブロック）３０〜３ｎに対して処理起動コマンドを発行する動作の例を示す図である。ただし、当該処理起動コマンドが、図４に示したような関連する処理ステータスと１対１の依存関係にある処理起動コマンドの場合は、図９や後述するその動作説明を参照のこと。
【００８５】
（Ａ）実行制御用プロセッサ（ＣＰ）２１はコントロールバス４２を介して、該当処理を担当するサブプロセッサ（機能ブロック）に対して処理ＩＤ（命令番号）等の必要パラメータを設定後、処理起動コマンドを発行する。
【００８６】
サブプロセッサ（機能ブロック）側は、コマンド受信制御回路４３にて処理コマンドを取得すると、設定された必要パラメータ等をサブプロセッサ（機能ブロック）内に伝達し、処理ＩＤ（命令番号）等にて指定された処理を実行する。
【００８７】
コントロールバス制御回路４２は、例えばシングルレイヤバス構成で実現され、実行制御回路２０からのコントロールバスアクセスに対してアドレスデコードを行い、選択されたサブプロセッサとの間でバスアクセスを実現する。
【００８８】
図８は、図２の（７）及び（１２）に示したような、各サブプロセッサ（機能ブロック）３０〜３ｎから実行制御回路２０に対してステータスを通知する場合の動作の例を示す図である。ただし、当該処理ステータスが、図４に示したような次に発行される処理コマンドと１対１の依存関係にある処理ステータスの場合は、図９や後述するその動作説明を参照のこと。
【００８９】
（Ａ）各サブプロセッサ（機能ブロック）はステータス通知制御回路５３を用いて所望のステータスデータ（処理ＩＤとそのステータス値など）を転送出力し、通知されたステータスデータが実行制御回路２０内の判定回路２４を経由してステータスＦＩＦＯ制御部２６に格納されると、実行制御用プロセッサ（ＣＰ）２１に対して割り込み信号が出力され、（Ｂ）実行制御用プロセッサ（ＣＰ）２１はステータスＦＩＦＯ制御部２６から該当ステータスデータを取得する。
【００９０】
ステータスバス制御回路５２は、例えばシングルレイヤバス構成で実現され、各サブプロセッサ（機能ブロック）３０〜３ｎからのステータスバスアクセスに対してアクセス競合した場合は「ラウンドロビン方式」等を用いてアクセス調停を行い、選択されたサブプロセッサからのステータスバスアクセスを実行制御回路２０に転送する。
【００９１】
図９は、図２の（７）と（８）、及び図４に示したような、各サブプロセッサ（機能ブロック）３０〜３ｎから実行制御回路２０に対して処理ステータスを通知し、その処理ステータスと１対１の依存関係にある処理コマンドを、該当するサブプロセッサ（機能ブロック）３０〜３ｎに対して自動発行する場合の動作の例を示す図である。
【００９２】
（Ａ）各サブプロセッサ（機能ブロック）はステータス通知制御回路５３を用いて所望のステータスデータ（処理ＩＤとそのステータス値など）を転送出力し、通知されたステータスデータが実行制御回路２０内の判定回路２４にて１対１の依存関係にある処理ステータスと判定されるとステータスアクセラレータ２５に転送される。（Ｂ）ステータスアクセラレータ２５は、転送された処理ステータス値を用いて予め設定されたコマンドテーブルをテーブル引きすることにより対応する処理コマンド（サブプロセッサＩＤや処理ＩＤ（命令番号）等）を取得し、当該サブプロセッサに対して処理ＩＤ（命令番号）等の設定や処理起動コマンドを自動発行する。サブプロセッサ側のコマンド受信制御回路４３の動作や、コントロールバス制御回路４２の動作は、図７と同様であるため上記図７の説明を参照のこと。
【００９３】
（ステータスデータのフォーマットの説明）
図１０は、本実施の形態におけるステータスデータのデータフォーマットの例を示す図である。ステータスデータの転送はステータスバス５２を介して行われる。各サブプロセッサ（機能ブロック）３０〜３ｎは、例えば、ステータスバス５２のアドレス信号として処理ＩＤ（命令番号）を、データ信号としてそのステータス値（入力データ読み込み完了、出力データ書き込み完了、処理完了などを示す値）を通知する。更にステータスバス制御回路５０上でアドレス信号の上位ビット等を用いてサブプロセッサＩＤを付加した上で実行制御回路２０に通知される。
【００９４】
ここで、本実施の形態における実行制御回路２０の特徴として、ステータス値の任意のビット（例えば、図１０の例の場合はビット［１５］）を用いて、各サブプロセッサは、当該ステータスが次に発行される処理コマンドと１対１の依存関係にあるかどうかを通知できる構成とする。
【００９５】
例として、ビット［１５］が”’１’の場合は、次に発行される処理コマンドと１対１の依存関係にある単純な処理ステータスであることを示し、ビット［１５］が’０’の場合は、それ以外の通常の処理ステータスであることを示す。
【００９６】
本実施の形態においては、単純な処理ステータスであるかどうかの判定を判定回路２４にて実施し、単純な処理ステータスの場合は、当該ステータス値がステータスアクセラレータ２５に転送される。そして、処理ステータス値またはその一部のビットがステータスアクセラレータ２５にて対応する処理コマンドをテーブル引きする際に用いられる。
【００９７】
ここで、判定に用いるビットは、図１０に示したビット［１５］は例であるため、ビット［１５］以外の他のビットであっても何ら問題はないし、また、ステータスデータ中の任意の複数のビットを判定ビットとして使用しても何ら問題はない。
【００９８】
また、通常の処理ステータスの場合は、本発明における実行制御回路２０では、転送アドレス（処理ＩＤ）ごとにステータスレジスタを実装する構成ではなく、サブプロセッサＩＤ（機能ブロックコード）や処理ＩＤ（転送アドレス信号）、そのステータス値（転送データ信号）を１つのステータスデータとしてまとめたデータフォーマットで実行制御回路２０内のステータスＦＩＦＯ制御部２６に格納する。
【００９９】
ステータスバス５２とこのようなデータフォーマットにより、実行制御用プロセッサ（ＣＰ）２１は、ステータスＦＩＦＯ制御部２６から１回ステータスデータを読み出すだけで、どのサブプロセッサのどの処理に対するどういうステータスか（サブプロセッサＩＤと処理ＩＤとそのステータス値）を取得できるという利点がある。また、このようなデータフォーマットを用いることと、ステータスＦＩＦＯを他ＦＩＦＯと共有化することにより、将来的なシステム拡張性を考慮した場合においても過度に余分なステータスレジスタの実装も不要であり、ステータスＦＩＦＯ段数の変更で容易に対応可能であるという利点もある。
【０１００】
（判定回路２４の動作の説明）
図１１は、本実施の形態における判定回路２４の構成例について示すものである。
【０１０１】
ステータスバス５２からステータスデータが入力されると、判定回路２４はその処理ステータスが次の処理コマンドと１対１の依存関係にあり高速処理するかの判定を行う。
【０１０２】
具体的には、例えば、本実施の形態においては、ステータスデータのビット［１５］を判定ビットとした場合、そのビット［１５］が’１’であるかを、判定回路２４内に備える比較判定回路７０を用いて判定する。
【０１０３】
そして、次に発行される処理コマンドと１対１の依存関係にある単純な処理ステータスと判定された場合（ビット［１５］が’１’の場合）は、ステータス値の残りのビット（例えばビット［１４：０］）をステータスアクセラレータ２５に転送する（ＥＮ＿１が有効）。
【０１０４】
一方、単純ではなく通常の処理ステータスと判定された場合（ビット［１５］が’０’の場合）は当該ステータスデータをステータスＦＩＦＯ制御部２６に転送する（ＥＮ＿０が有効）。ここで、ビット［１５］は例であるため、判定に用いるビットは、ビット［１５］以外の他のビットであっても何ら問題はないし、また、ステータスデータ中の任意の複数のビットを用いて判定しても何ら問題はない。
【０１０５】
また、判定回路２４は、デバッグ用やテスト用のフラグ（制御レジスタ）等を用いて、判定結果に関わらず全てのステータスデータをステータスＦＩＦＯ２５に転送して実行制御用プロセッサ（ＣＰ）２１による確認や実行制御処理を可能にしたり、１対１と判定された場合にステータスアクセラレータ２５とステータスＦＩＦＯ制御部２６の両方に転送したりする機能を有することも特徴とする。
【０１０６】
ここで、判定回路２４は、専用ハードウェアにより実現されるが、判定にステータスデータのみを用いるため、サブプロセッサから通知されるステータスデータの値を変更することで、その機能を変更可能な柔軟性と拡張性の高い構成で実現できることも特徴である。
【０１０７】
（ステータスアクセラレータ２５の動作の説明）
図１２は、本発明の実行制御回路２０におけるステータスアクセラレータ２５の構成例について示すものである。
【０１０８】
ステータスアクセラレータ２５は、判定回路２４から入力された、次に発行される処理コマンドと１対１の関係にある処理ステータス値またはそれに相当するデータの一部をアドレスとして、対応する処理コマンドが格納されているコマンドテーブル７１（メモリ）を読み出す。
【０１０９】
コマンドテーブル７１には、当該処理コマンドの発行先となるコマンドアドレスに対応するサブプロセッサＩＤ（機能ブロックコード）とコマンドデータに対応する処理ＩＤ（命令番号）等が格納されている。
【０１１０】
ステータスアクセラレータ２５内のコマンド出力コントローラ７２は、読み出したコマンドアドレスとコマンドデータを用いて、該当処理コマンドを担当するサブプロセッサ（機能ブロック）に対して処理ＩＤ（命令番号）等の必要パラメータを設定後、処理起動コマンドを自動発行する。
【０１１１】
ここで、ステータスアクセラレータ２５内のコマンドテーブル７１の値は、実行制御用プロセッサ（ＣＰ）２１のブート動作時などシステムの初期動作時に、実行制御用プロセッサ（ＣＰ）２１やメインプロセッサ（ＭＰ（ＣＰＵ））１０からＣＰバス１５経由で書き込み可能な構成とする。
【０１１２】
ステータスアクセラレータ２５を、このようにコマンドテーブル７１を用いた書き換え可能な構成とすることで、どの処理ステータスを単純な処理ステータスとして高速に処理すべきか、または、通常の処理ステータスとして実行制御用プロセッサ（ＣＰ）に処理させるか等、システムＬＳＩ開発後に柔軟に変更したり、拡張したりすることが可能という大きな利点がある。
【０１１３】
また、処理コマンド発行時にステータスアクセラレータ２５から出力されたコントロールバス４２へのバスアクセスは、実行制御用プロセッサ（ＣＰ）２１からのＣＰバス１５経由でのアクセスと競合した場合は、コマンド調停回路２９にてアクセス調停され、コントロールバス４２に転送される。
【０１１４】
コマンド調停回路２９は、基本的にはステータスアクセラレータ２５からのバスアクセスを常に優先としたアクセス調停を行う。ただし、１つの処理コマンド発行に複数回のバスアクセスが必要な場合は、その分だけは連続的にアクセス実行できるようなバスアクセス調停を実施する。
【０１１５】
ここで、本発明におけるステータスアクセラレータ２５は、専用ハードウェアにより実現されるが、その機能としてコマンドテーブル７１のテーブル引きを用いるため、メインプロセッサや実行制御用プロセッサからそのコマンドテーブル７１の値を変更することで、発行する処理コマンド等を任意に変更可能な柔軟性と拡張性の高い構成で実現できることも特徴である。すなわち、コマンドテーブル７１の設定値は、実行制御用プロセッサの命令コード等と同等に扱えるという利点がある。
【実施例１】
【０１１６】
図１３は、本実施の形態を、具体的なマルチプロセッサシステム例の１つとして、複数の符号化処理方式（符号化方式Ａ、符号化方式Ｂ）に対応したデータ符号化／復号化処理システムに適用した場合の例を示した図である。【０１１７】
（構成の説明）
データ符号化／復号化処理システム全体を制御するメインプロセッサ（ＭＰ（ＣＰＵ））１０及びＣＰＵバス１１、割り込みコントローラ１２、外部メモリコントローラ１３等を備え、実際にデータ符号化／復号化処理を行うサブプロセッサ（機能ブロック）として３１〜３５のプロセッサ要素（ＦＡ１、  ＦＡ２、  ＦＡ３、  ＦＡ４、  ＦＡ５）を、ＬＳＩ外部とのインタフェースを行うサブプロセッサ（機能ブロック）として３６のプロセッサ要素（Ｆ６）を備える。【０１１８】
また、メインプロセッサ（ＭＰ（ＣＰＵ））１０と各サブプロセッサ３１〜３６の間に、本発明の特徴であるこれら複数のサブプロセッサ３１〜３６の並列実行制御を行うための実行制御回路２０を実装し、実行制御回路２０とサブプロセッサ３１〜３６との間に、コントロールバス制御回路４０及びステータスバス制御回路５０を備える。【０１１９】
各サブプロセッサ３１〜３６は、実行制御回路２０からコントロールバス４２を通してコマンドを受信するためのコマンド受信制御部４３と、ステータスバス５２を通して実行制御回路２０にステータスを通知するためのステータス通知制御部５３を備える。【０１２０】
各サブプロセッサ間におけるデータの転送はＬＳＩ内の共有メモリ６０を介して行い、共有メモリ６０はマルチバンク化されているため、メインプロセッサ（ＭＰ（ＣＰＵ））１０や各サブプロセッサ（機能ブロック）３１〜３６から異なるバンクの共有メモリに対しては並列にアクセスすることが可能である。また、各サブプロセッサ３１〜３６間におけるデータ転送は全てこの共有メモリ６０を介して行うことで、異なるサブプロセッサ３１〜３６間における直接の通信手段は不要となる。すなわち、本実施例のようなマルチプロセッサ構成により、サブプロセッサ（機能ブロック）の再利用可能性の向上やシステム全体の拡張性向上が期待できる。【０１２１】
ここで、実施例１における実行制御回路２０内において、図１に示したステータスＦＩＦＯ制御部２６、コマンドＦＩＦＯ制御部２７、割り込みＦＩＦＯ制御部２８など各ＦＩＦＯの制御機能は専用のハードウェア回路２６、２７、２８で実現する。しかし、ＦＩＦＯの実体については、同一アドレス空間上のメモリ（ＦＩＦＯメモリ）であるＦＩＦＯメモリ制御部６１を用いて共有化し、制御レジスタ６２内に各々のＦＩＦＯのベースアドレス、ＦＩＦＯ段数を設定するためのレジスタ等を備えることにより、各々のＦＩＦＯ構成を可変にできる構成で実現する。【０１２２】
（動作の説明）
実施例１の動作について、図１３から図１６を用いて説明する。【０１２３】
図１４は、符号化方式Ａ及び符号化方式Ｂの各々のデータ符号化／復号化処理の動作シーケンスを示す図である。【０１２４】
符号化方式Ａを処理する場合のデータ符号化／復号化処理システムでは、データ符号化処理の場合、メインプロセッサ（ＭＰ（ＣＰＵ））１０から実行制御回路２０に対して符号化処理Ａシーケンス実行のコマンドを発行すると、実行制御回路２０は、図１４に示したような符号化処理Ａシーケンスを解析し、（Ａ）メインプロセッサ（ＭＰ（ＣＰＵ））１０からの符号処理データＡ転送完了ステータスを受けて機能ブロック３１へ符号化処理ＦＡ１起動コマンドを発行したり、（Ｂ）機能ブロック３１からの符号化処理ＦＡ１完了ステータスを受けて機能ブロック３２に符号化処理ＦＡ２起動コマンドを発行したり、（Ｃ）機能ブロック３２からの符号化処理ＦＡ２完了ステータスを受けて機能ブロック３６に符号化データ転送処理Ｆ６起動コマンドを発行したり、といった実行制御処理を行う。【０１２５】
このような実行制御処理により、メインプロセッサから次の符号処理データＡが格納されることで、各機能ブロックの動作はパイプライン並列動作となる。【０１２６】
この時、図１４に「１対１」と示すように、例えば、符号化処理ＦＡ１完了ステータスと符号化処理ＦＡ２起動コマンド間などはサブプロセッサ（機能ブロック）間における１対１の依存関係が成り立つ。このため、ステータスアクセラレータ２５内のコマンドテーブル７１に対応する処理コマンドを設定しておき、当該ステータスデータ中の判定ビットを１にすることで、ステータスアクセラレータ２５による実行制御処理の高速化が可能となる。【０１２７】
復号化処理の場合、メインプロセッサ（ＭＰ（ＣＰＵ））１０から実行制御回路２０に対して復号化処理Ａシーケンス実行のコマンドを発行すると、実行制御回路２０は、図１４に示したような復号化処理Ａシーケンスを解析し、（Ａ）定常的、周期的に発生する機能ブロック３６からの入力データ転送処理Ｆ７完了ステータスを受けて機能ブロック３５へ復号化処理ＦＡ５起動コマンドを発行したり、（Ｂ）復号化処理ＦＡ５完了ステータスを受けて機能ブロック３４へ復号化処理ＦＡ４起動コマンドを発行したり、（Ｃ）復号化処理ＦＡ４完了ステータスを受けて機能ブロック３３へ復号化処理ＦＡ３コマンドを発行したり、（Ｄ）復号化処理ＦＡ３完了ステータスを受けてメインプロセッサ（ＭＰ（ＣＰＵ））１０へ復号化データ通知割り込みを発行するといった処理を実行する。【０１２８】
このような実行制御処理により、定常的、周期的に復号処理データＤが転送されてくることで、各機能ブロックの動作はパイプライン並列動作となる。復号化処理時も同様に、図１４に「１対１」と示される復号化処理ＦＡ５完了ステータスと符号化処理ＦＡ４起動コマンド間などはサブプロセッサ（機能ブロック）間における１対１の依存関係が成り立つため、ステータスアクセラレータ２５による実行制御処理の高速化が可能である。【０１２９】
また、別の符号化方式Ｂのデータ符号化／復号化システムとして動作する場合も、データ符号化／復号化方式Ａの場合と基本的な実行制御動作は同様である。この時、各サブプロセッサ（機能ブロック）３１〜３５は符号化方式Ａ（ＦＡ１、ＦＡ２、ＦＡ３、ＦＡ４、ＦＡ５）、符号化方式Ｂ（ＦＢ１、ＦＢ２、ＦＢ３、ＦＢ４、ＦＢ５）のどちらの処理にも対応しており、実行制御回路２０から指示される処理コマンド（処理ＩＤ）によって処理を選択実行する。実行制御回路２０内に登録する動作シーケンスとしても、符号化方式Ａの場合と符号化方式Ｂの場合の両方を実装する。【０１３０】
システム全体を符号化方式Ａ処理用から符号化方式Ｂ処理用に、あるいは、符号化方式Ｂ処理用から符号化方式Ａ処理用に切り替える場合は、メインプロセッサ（ＭＰ（ＣＰＵ））１０が該当する符号化方式用の動作シーケンスを実行（実行制御回路２０にコマンド発行）することによって容易に切り替えることが可能である。【０１３１】
ここで、次に発行される処理コマンドと１対１の依存関係にある単純な処理ステータスの高速化処理についても、予め複数の動作シーケンス分をステータスアクセラレータ２５内のコマンドテーブル７１に設定しておくか、または、符号化方式を切り替えたタイミングでコマンドテーブル７１の値も書き換えることで、柔軟に複数の動作シーケンスに対応できるという利点がある。【０１３２】
また、図１３に示した構成では、メインプロセッサ（ＭＰ（ＣＰＵ））１０とサブプロセッサ３１〜３６間、異なるサブプロセッサ間の転送に共有メモリ６０を利用する。【０１３３】
この場合、異なるサブプロセッサ間における直接の通信手段は不要となる上、処理に必要な処理パラメータ等も共有メモリ６０に書き込んでおくことで、実行制御回路２０から全てのサブプロセッサ３１〜３６に対しては、処理内容（処理ＩＤ）および必要に応じてその処理用のパラメータを格納している共有メモリアドレス（データポインタ）、起動コマンドだけを発行するという共通の制御で起動制御が可能となる。更に、本発明の特徴である実行制御回路２０と、異なるサブプロセッサ間のデータ転送に共有メモリ６０を用いることで、図１４に示したような各サブプロセッサ（機能ブロック）の処理順序（実行順序）が異なるような複数の動作シーケンスにも柔軟に対応可能であるという大きな利点がある。【０１３４】
（ＦＩＦＯ共有化のための動作の説明）
ＦＩＦＯ共有化のための動作について、図１５および図１６を用いて説明する。図１５は、ＦＩＦＯの共有化の構成例について示す図である。【０１３５】
図１では論理的なブロック構成として、ＣＰバス１５及びＭＰバス１４、ステータスバス５２からそれぞれのＦＩＦＯにアクセスするためには、割り込みＦＩＦＯ制御部２８、ステータスＦＩＦＯ制御部２６、コマンドＦＩＦＯ制御部２７に対して直接アクセスするように示したが、ＦＩＦＯを共有化する場合は、図１５に示すように、ＦＩＦＯメモリ制御部６１へアクセスすることになる。【０１３６】
また、ステータスＦＩＦＯ制御部２６、コマンドＦＩＦＯ制御部２７、割り込みＦＩＦＯ制御部２８については、内部にＦＩＦＯの実体は存在せず、各ＦＩＦＯの書き込みポインタ（ＷＰ）、読み出しポインタ（ＲＰ）、格納データ数（ＮＵＭ）などの制御を行う。【０１３７】
したがって、ステータスＦＩＦＯ制御部２６、コマンドＦＩＦＯ制御部２７、割り込みＦＩＦＯ制御部２８は、それぞれ、書き込みポインタレジスタ、読み出しポインタレジスタ、格納データ数レジスタ、Ｆｕｌｌ／Ｅｍｐｔｙフラグを示すステータスレジスタ、ＦＩＦＯをクリアするためのクリアレジスタ（ＣＬＲ）、ＦＩＦＯに書き込みが生じた場合に発生するメインプロセッサ（ＭＰ（ＣＰＵ））１０や実行制御用プロセッサ（ＣＰ）２１への割り込みをマスクするためのマスクレジスタ（ＭＳＫ）等を備える。【０１３８】
制御レジスタ部６２は、ＦＩＦＯ共有化のための設定レジスタである各ＦＩＦＯ分のベースアドレスレジスタ（ＢＡＳＥ）、段数レジスタ（ＤＥＰＴＨ）、データビット幅レジスタ（ＷＩＤＴＨ）等を備える。【０１３９】
ＦＩＦＯメモリ制御部６１は、各ＦＩＦＯの実体であるＦＩＦＯ用メモリ（ＦＩＦＯ  ＲＡＭ）を備え、制御レジスタ部６２からの各ＦＩＦＯベースアドレス（ＢＡＳＥ）や、ステータスＦＩＦＯ制御部２６、コマンドＦＩＦＯ制御部２７、割り込みＦＩＦＯ制御部２８からの各書き込みアドレスポインタ（ＷＰ）、各読み出しアドレスポインタ（ＲＰ）を用いてメモリアクセスのアドレス変換を行うアドレス変換回路（Ａｄｄｒｅｓｓ  Ｃｏｎｖ．）を、ＣＰバス１５やＭＰバス１４、判定回路２４を経由したステータスバスそれぞれからのＦＩＦＯアクセス用に備える。【０１４０】
ステータスＦＩＦＯ制御部２６、コマンドＦＩＦＯ制御部２７、割り込みＦＩＦＯ制御部２８など各ＦＩＦＯ制御部の動作について図１５を用いて説明する。【０１４１】
各ＦＩＦＯ制御部２６、２７、２８は、制御レジスタ部６２からの各ＦＩＦＯ段数信号（ＤＥＰＴＨ）、各ＦＩＦＯデータビット幅信号（ＷＩＤＴＨ）や、ＦＩＦＯメモリ制御部６１からの各ＦＩＦＯの書き込みイネーブル信号（ＷＥ）、読み出しイネーブル信号（ＲＥ）を用いて、各ＦＩＦＯの書き込みアドレスポインタ（ＷＰ）と読み出しアドレスポインタ（ＲＰ）、格納データ数（ＮＵＭ）などの制御を行う。また、この他に、ＦＩＦＯステータスレジスタ機能やＦＩＦＯクリア機能、割り込みマスク機能などを備えていても何ら問題はない。【０１４２】
図１６はＦＩＦＯメモリ制御部６１のバス制御を示す図である。ステータスＦＩＦＯ制御部２６、コマンドＦＩＦＯ制御部２７、割り込みＦＩＦＯ制御部２８などの各ＦＩＦＯについての実装は、１つのメモリ（ＦＩＦＯ用メモリ）を使用し、各ＦＩＦＯ領域およびＦＩＦＯ段数については、ベースアドレスレジスタ（ＢＡＳＥ）及びＦＩＦＯ段数レジスタ（ＤＥＰＴＨ）を用いて可変に設定することが可能である。【０１４３】
各ＦＩＦＯに対してデータを書き込む場合、及び、各ＦＩＦＯからデータを読み出す場合は、専用の「割り込みＦＩＦＯ書き込みアドレス領域（ＩＮＴＷＲＩＴＥ）」「割り込みＦＩＦＯ読み出しアドレス領域（ＩＮＴＲＥＡＤ）」「ステータスＦＩＦＯ読み出しアドレス領域（ＳＴＡＴＲＥＡＤ）」「コマンドＦＩＦＯ書き込みアドレス領域（ＣＭＤＷＲＩＴＥ）」「コマンドＦＩＦＯ読み出しアドレス領域（ＣＭＤＲＥＡＤ）」等のアドレスを使用してアクセスする。これらの領域にアクセスがあった場合は、それぞれ、各ＦＩＦＯのベースアドレス（ＢＡＳＥ）、書き込みアドレスポインタ（ＷＡＤＲ（ＷＰ））、読み出しアドレスポインタ（ＲＡＤＲ（ＲＰ））の値を用いて実際のＦＩＦＯ用メモリに対するアドレスにアドレス変換処理を行う。【０１４４】
また、図１６に示したＦＩＦＯメモリ制御部６１では、各ＦＩＦＯの実装に１つのＦＩＦＯ用メモリ（ＦＩＦＯ  ＲＡＭ）を用いるため、ＣＰバス１５、ＭＰバス１４、ステータスバス５２からのアクセス競合の調停も行う。【０１４５】
特にアクセス制御レジスタ等を用いずにハードウェア的にアクセス調停（アービトレーション）を実施し、調停方法は「ラウンドロビン方式」または「優先度がＭＰバス１４＞ＣＰバス１５＞ステータスバスの順の固定優先度方式」などを用いる。【０１４６】
このように、制御レジスタ部６２が各ＦＩＦＯベースアドレスレジスタ（ＢＡＳＥ）や段数設定レジスタ（ＤＥＰＴＨ）、データビット幅レジスタ（ＷＩＤＴＨ）を備え、各ＦＩＦＯ制御部２５、２６、２７が書き込み／読み出しポインタや格納データ数などの制御機能を備え、ＦＩＦＯメモリ制御部６１が各ＦＩＦＯアクセスのアドレス変換機能を備えることで、各ＦＩＦＯ（ステータスＦＩＦＯ、コマンドＦＩＦＯ、割り込みＦＩＦＯ）の共有化が可能となり、各ＦＩＦＯ段数やデータビット幅を可変にすることも可能となる。結果として、拡張性や柔軟性が非常に高い実行制御回路２０を実現できるという利点がある。なお、ステータスアクセラレータ２５内のコマンドテーブル７１も同様に、各ＦＩＦＯと同一のメモリを用いて共有化する構成としても何ら問題はない。【０１４７】
上述したように、本発明によれば、各サブプロセッサからの処理ステータスを、次に発行される処理コマンドと１対１の依存関係にあるような単純な処理ステータスと、それ以外の通常の処理ステータスとに分類し、通知された処理ステータスがいずれに該当するかを実行制御回路内に判定回路（ステータスデコーダ）を備えることで判定可能である。【０１４８】
そして、１対１の依存関係にある単純な処理ステータスの場合は、実行制御回路内にステータスアクセラレータを備えることで、対応する処理コマンドを専用回路によるテーブル引きにより自動発行することが可能である。【０１４９】
したがって、単純な処理ステータスであるか否か等に応じて専用ハードウェア処理が可能となり、実行制御用プロセッサによるソフトウェア処理に比べて格段の高速化が可能である。また、２つ以上の処理ステータスが関係して１つの処理コマンドを発行するなど３つ以上の処理が依存関係にあるような通常の実行制御処理は、当該処理ステータスを判定回路を用いてステータスＦＩＦＯに転送可能なことにより、実行制御用プロセッサによるソフトウェア処理にて実現できるため、高い柔軟性も同時に実現可能という利点がある。【０１５０】
また、ステータスアクセラレータによるハードウェア的な実行制御処理と、ステータスＦＩＦＯと実行制御プロセッサ（ＣＰ）２１によるソフトウェア的な実行制御処理は並列に実行可能なため、その分の負荷分散化による高速化も可能となる。【０１５１】
なお、ステータスアクセラレータ内のコマンド発行用のコマンドテーブルは、実行制御用プロセッサ（ＣＰ）２１やメインプロセッサ（ＭＰ（ＣＰＵ））１０から設定可能な構成とするため、ＬＳＩ開発後に仕様変更等により当該テーブルを変更したり拡張したりすることが容易であり、また、実行制御回路のインタフェースが接続されるサブプロセッサ数や処理ステータス数に依存しない構成のため、高速化と合わせて柔軟性や拡張性も非常に高いという利点がある。【０１５２】
（第１の実施の形態による効果）
次に本実施の形態の効果について説明する。本実施の形態によれば、以下のような効果が期待できる。【０１５３】
第１の効果は、マルチプロセッサシステムにおいて、メインプロセッサから実行制御回路に負荷分散化（オフロード化）した各サブプロセッサ実行制御機能を、高速化および更に負荷分散化できる。【０１５４】
その理由は、各サブプロセッサの並列実行制御するための実行制御回路を備え、サブプロセッサの実行順序を規定した動作シーケンスの中において、各サブプロセッサ間における処理ステータスと次に発行される処理コマンドとの依存関係が１対１である動作シーケンスの実行制御処理については、実行制御用プロセッサによるソフトウェア処理ではなく、ステータスアクセラレータによるハードウェア処理にて実現できるためである。【０１５５】
特に、関連技術ではハードウェア処理化することで柔軟性や拡張性が低下する場合が多かったが、本発明では，第２及び第３の効果として後述するシステム全体の高い柔軟性や拡張性を維持したままで、実行制御処理の高速化を実現できることは本発明における最も大きな効果である。【０１５６】
実行制御処理を実行制御用プロセッサでソフトウェア処理する場合は、ステータスＦＩＦＯからのステータスデータの読み出し、当該動作シーケンスの特定と解析、処理コマンドの発行まで全てプロセッサ処理で実現するため、数十サイクルから数百サイクル程度の処理サイクル数（レイテンシ）が想定される。一方、ステータスアクセラレータにてハードウェア処理する場合には、判定回路での判定からステータスアクセラレータでのテーブル引き、処理コマンドの発行まで全てハードウェアにて処理されるため、数サイクル程度（１０サイクル以下）の処理サイクル数（レイテンシ）にて実現可能である。すなわち、実行制御用プロセッサによるソフトウェア処理の場合に比べて数倍から１０倍以上の高速化が可能である。【０１５７】
更に、実施例１（図１４の動作シーケンス例）で示したように、各サブプロセッサをパイプライン並列処理させるような実際のデータ処理システムにおいては、各サブプロセッサ間における処理ステータスと次に発行される処理コマンドとの関係は１対１である可能性が高くなるため、高速化効果が得られる可能性もより高くなるという利点もある。【０１５８】
また、実行制御用プロセッサによるソフトウェア処理と、ステータスアクセラレータによるハードウェア処理は並列に動作可能であるため、実行制御用プロセッサによる処理を想定していた単純な処理ステータス分の実行制御処理を、ステータスアクセラレータにて処理させることにより、実行制御用プロセッサの処理負荷を負荷分散させることも可能となる。【０１５９】
これは全ての実行制御処理を実行制御用プロセッサによって処理させる関連技術に比べて、実行制御プロセッサが処理破綻するリスクを大幅に減らすことができる。【０１６０】
第２の効果は、実行制御回路を備えた、柔軟性の高いマルチプロセッサシステムを提供できることである。特に、サブプロセッサ間にて処理ステータスと次に発行される処理コマンドとの依存関係が１対１であるような動作シーケンスの実行制御処理の高速化を、簡単なハードウェア回路の追加だけで高い柔軟性を維持したまま実現できることである。【０１６１】
その理由は、本発明では、実行制御回路の構成として、各サブプロセッサ間における実行制御処理については、その処理ステータスと次に発行される処理コマンドとの依存関係が１対１である場合には、簡単なテーブル引きにより実現されるステータスアクセラレータを用いて高速にハードウェア処理させるか、段数可変のステータスＦＩＦＯと実行制御用プロセッサを用いて柔軟にソフトウェア処理させるかを、例えば実行制御用プロセッサの処理負荷やコマンドテーブルの容量等に応じて各々の処理ステータスごとに柔軟に選択することができるためである。【０１６２】
特に、高速化する実行制御処理を、サブプロセッサ間における処理ステータスと次に発行される処理コマンドとの依存関係が１対１である動作シーケンスに限定することにより、複雑で専用のハードウェア構成ではなく、比較的簡単でかつ柔軟なテーブル引きを行うハードウェア回路（判定回路とステータスアクセラレータ）の追加のみで、柔軟性を維持したままでの高速化が可能という利点がある。【０１６３】
また、すなわち、本発明の実行制御回路における実行制御処理の高速化は、例えば前記特許文献２に示されるような高い柔軟性を持つ実行制御回路と、単純な判定回路の組み合わせのみで容易に実現できるものではなく、図３や図４および図１４に示したように、処理ステータスと次に発行される処理コマンドとの依存関係が１対１であるという動作シーケンス中の特性を見出して、高速化可能かどうかの基準（判定のポイント）として活用していることに大きな特徴がある。【０１６４】
また、ステータスデータ中に判定ビットを設けるデータフォーマットとすることで、判定回路における判定機能を比較的簡単な比較判定回路にて実現可能であることを示した。【０１６５】
この場合、当該処理ステータスの実行制御処理をステータスアクセラレータにてハードウェア処理させるか、実行制御用プロセッサにてソフトウェア処理させるかに応じてステータスデータの値をサブプロセッサ側にて変更する必要があるものの、判定回路は非常に簡単なものを用いて実現可能という利点がある。【０１６６】
また、実施例１にて詳説したように、実行制御回路内のステータスＦＩＦＯ、コマンドＦＩＦＯ、割り込みＦＩＦＯを同一のメモリ上に共有化することで、ＬＳＩ開発後に、動作シーケンスや実行制御用プロセッサの処理量に応じて各ＦＩＦＯの段数等を柔軟に調整することができるという利点もある。【０１６７】
第３の効果は、実行制御回路を備えた、拡張性の高いマルチプロセッサシステムを提供できることである。特に、サブプロセッサ間にて処理ステータスと次に発行される処理コマンドとの依存関係が１対１であるような動作シーケンスの実行制御処理の高速化を、高い拡張性を維持したまま実現できることである。【０１６８】
その理由は、本発明では、実行制御回路の構成として、各サブプロセッサからのステータス通知の処理用に、図１０に示したようなステータスデータのフォーマットと、段数可変のステータスＦＩＦＯ、そして専用ハードウェア構成となるステータスアクセラレータも設定変更可能なコマンドテーブル等を用いて実現することにより、実行制御回路のハードウェア構成の変更なしにサブプロセッサ数や処理ステータス数の拡張等に対応可能であるためである。【０１６９】
特に、次に発行される処理コマンドとの依存関係が１対１であるような処理ステータスを拡張する場合には、処理サイクル数の少ないステータスアクセラレータにて処理可能なため、全体処理レイテンシや実行制御用プロセッサの処理負荷への影響なしに、ステータスアクセラレータ内のコマンドテーブル等の設定変更のみで拡張可能という利点もある。【０１７０】
また、実行制御回路のハードウェアは、基本的に実行制御用プロセッサと各インタフェース用の各ＦＩＦＯ、ステータス処理を高速化するために追加した簡単なハードウェア回路（判定回路とステータスアクセラレータ）のみで構成され、メインプロセッサ側のインタフェースであるコマンドＦＩＦＯ、割り込みＦＩＦＯについても、他の各ＦＩＦＯとの共有化により段数設定可能であるため、本発明における実行制御回路は様々なマルチプロセッサシステムに応用できる流用可能性も高いという利点がある。【０１７１】
（第２の実施の形態）
次に、本発明の第２の実施の形態について、図面を参照して詳細に説明する。以下の図において、本発明の本質に関わらない部分の構成については省略してあり、図示されていない。【０１７２】
本実施の形態では、実行制御回路の判定回路におけるステータス判定に連想メモリ（ＣＡＭ：  Ｃｏｎｔｅｎｔ  Ａｄｄｒｅｓｓａｂｌｅ  Ｍｅｍｏｒｙ）を用いた場合の例について詳説する。【０１７３】
図１７は、本発明の第２の実施の形態である、実行制御回路の判定回路におけるステータス判定に連想メモリ（ＣＡＭ：  Ｃｏｎｔｅｎｔ  Ａｄｄｒｅｓｓａｂｌｅ  Ｍｅｍｏｒｙ）を用いた場合のマルチプロセッサシステムの構成例を示す図である。【０１７４】
第１の実施の形態と同様、本発明におけるマルチプロセッサシステムは、メインプロセッサ側にメインプロセッサ（ＭＰ（ＣＰＵ））１０とそのＣＰＵバス１１、周辺ブロック（ペリフェラル）として割り込みコントローラ１２などが存在し、サブプロセッサ側に各サブプロセッサ（機能ブロック）３０〜３ｎが存在するような構成を想定している。メインプロセッサ（ＭＰ（ＣＰＵ））１０はＣＰＵバス１１を用いてサブプロセッサ側の実行制御を行い、割り込みコントローラ１２に入力される割り込み信号を用いてサブプロセッサ側の状態を確認する。また、メインプロセッサ（ＭＰ（ＣＰＵ））１０とサブプロセッサ（機能ブロック）３０〜３ｎの間に本発明である実行制御回路２０を実装し、実行制御回路２０は、第１の実施の形態と同様のインタフェース（ＣＰＵ  Ｉ／Ｆ、ＩＮＴＲ  Ｉ／Ｆ、コントロールバス４２、ステータスバス５２）を備える。【０１７５】
また、実行制御回路２０と各サブプロセッサ（機能ブロック）３０〜３ｎの間も、第１の実施の形態と同様、コントロールバス制御回路４０とステータスバス制御回路５０から構成される。各サブプロセッサ（機能ブロック）３０〜３ｎ側の構成としても、第１の実施の形態と同様、コマンド取得制御部４３とステータス通知制御部５３を備えている。【０１７６】
第２の実施の形態に特有の実行制御回路２０内の構成として、処理ステータス値に判定ビットを設けることなく次に発行される処理コマンドと１対１の依存関係にあるかを判定可能なように、判定回路２４に連想メモリ（ハッシュテーブル）を備えることを特徴とする。【０１７７】
更に、そのハッシュテーブルの内容を実行制御用プロセッサ（ＣＰ）２１から設定可能なように、判定回路２４はＣＰバス１５からのアクセスインタフェースを備えることも特徴とする。また、第２の実施の形態では、コントロールバス４２およびステータスバス５２のアクセス状況をＬＳＩ外部で観測するためのバスモニタ出力回路６３を備えることとする。【０１７８】
（第２の実施の形態の動作の説明）
次に、本実施の形態の動作について、図１７から図１９を参照して詳細に説明する。【０１７９】
実行制御回路２０の基本的な動作、すなわち、図２に示した処理フローや図３及び図４に示した動作シーケンス、図５から図９に示した動作イメージについては第１の実施の形態と同様であるが、第２の実施の形態に特有の動作としては、判定回路２４内に連想メモリ（ハッシュテーブル）を備え、その連想メモリ（ハッシュテーブル）を用いて、各サブプロセッサ（機能ブロック）３０〜３ｎから通知された処理ステータスが次に発行される処理コマンドと１対１の関係にあるかの判定を実施することである。また、そのため、第１の実施の形態のようなステータスデータ中に判定ビットを設定することが不要となる点である。【０１８０】
図１８は、第２の実施の形態におけるステータスデータのデータフォーマットの例を示す図である。【０１８１】
本実施の形態におけるステータスデータの基本的な構成は、図１０に示した第１の実施の形態におけるデータフォーマットと同様であるが、次に発行される処理コマンドと１対１の依存関係にある単純な処理ステータスであるかを示す判定ビットが不要である点が異なる。【０１８２】
また、単純な処理ステータスの場合に、処理ステータス値またはその一部のビットをステータスアクセラレータ２５にてテーブル引きする際にもそのアドレスとして使用されなくなるため、第１の実施の形態である図１０のフォーマットに比べて、第２の実施の形態では、各サブプロセッサ（機能ブロック）３０〜３ｎにより柔軟に処理ステータス値を割り当てることが可能である。【０１８３】
すなわち、ステータスアクセラレータ２５によるハードウェア処理と実行制御用プロセッサ（ＣＰ）２１によるソフトウェア処理との選択に、各サブプロセッサ側から通知するステータスデータの変更は不要であり、判定回路内の連想メモリ（ハッシュテーブル）やステータスアクセラレータ２５内のコマンドテーブル７１など実行制御回路内のテーブル設定変更のみでより柔軟に実現可能という利点がある。【０１８４】
図１９は、本実施の形態における判定回路２４の構成例を示す図である。第２の実施の形態における判定回路２４では、内部に備える連想メモリ（ＣＡＭ：  Ｃｏｎｔｅｎｔ  Ａｄｄｒｅｓｓａｂｌｅ  Ｍｅｍｏｒｙ）７３を用いて各サブプロセッサ（機能ブロック）３０〜３ｎから通知された処理ステータスが次に発行される処理コマンドと１対１の依存関係にあるかを判定する。【０１８５】
判定回路２４は、通知されたステータスデータ［３１：０］をデータとして連想メモリ（ＣＡＭ）７３にアクセスを行い、データがヒットした場合（単純な処理ステータスの場合）は出力されるそのアドレスをステータスアクセラレータ２５に転送し、ステータスアクセラレータ２５ではそのアドレスを用いてコマンドテーブル７１をテーブル引きすることで、ハードウェアで高速に実行制御処理を行う。【０１８６】
一方、連想メモリ（ＣＡＭ）７３にてヒットしなかった場合（通常の処理ステータスの場合）は、入力されたステータスデータをそのままステータスＦＩＦＯ制御部２６に転送し、実行制御用プロセッサ（ＣＰ）２１によるソフトウェア処理にて当該ステータスの実行制御処理を行う。【０１８７】
ここで、実行制御用プロセッサ（ＣＰ）２１は、ブート動作時などの初期動作時にＣＰバス１５を用いて、図１９に示した判定回路２４内の連想メモリ（ＣＡＭ）７３と、図１２に示したステータスアクセラレータ２５内のコマンドテーブル７１とに、各サブプロセッサ間にて１対１の依存関係にある高速処理すべきステータスデータ値と処理コマンドの値とを、各々のメモリの同一のアドレスにペアにして設定しておく。複数存在する場合は、アドレスを変更して設定することで対応可能である。【０１８８】
ただし、連想メモリ（ＣＡＭ）７３は、データを入力するとそのアドレスが出力されるというその特徴から、基本的には当該メモリ内を一度に全探索する必要がある。したがって、一般的には高速にアクセス可能な連想メモリ（ＣＡＭ）７３を用意するのは困難である。【０１８９】
そこで、本実施の形態では、ハッシュテーブル（メモリ）７５と、その探索範囲を限定可能なアドレスカウンタ７６とを用いることにより、比較的に高速アクセス可能な連想メモリ（ＣＡＭ）７３を実現することも特徴とする。【０１９０】
まず、ステータスバス５２からステータスデータが通知された場合、例えばビットごとの排他的論理和（ＸＯＲ）を計算するなどのハッシュ関数（ハッシュ値計算回路）７４を用いてハッシュ値を求める。【０１９１】
次に、そのハッシュ値を基準アドレスとして、アドレスカウンタ７６はハッシュテーブル（メモリ）７５にアクセスを実施し、入力されたステータスデータと値が一致するか否かを比較回路７７にて判定する。【０１９２】
値が一致した場合は、そのアクセスアドレスを連想メモリ（ＣＡＭ）７３の出力アドレスとし、次の処理コマンドと１対１の依存関係にある単純な処理ステータスとしてステータスアクセラレータ２５に転送する。【０１９３】
値が一致しなかった場合は、実行制御用プロセッサ（ＣＰ）２１から予め設定された「順方向探索数Ａ」と「逆方向探索数Ｂ」の設定値を用いて、アドレスカウンタ７６は「基準アドレス」から「基準アドレス＋Ａ」までと、「基準アドレス−１」から「基準アドレス−Ｂ」までとを順番にハッシュテーブル（メモリ）７５にアクセスして再検索並びに再判定する。【０１９４】
−Ｂから＋Ａまでの範囲で全て一致しなかった場合は、次の処理コマンドと１対１の依存関係にはない通常の処理ステータスとなるため、当該ステータスデータをステータスＦＩＦＯ制御部２６に転送する。【０１９５】
ここで、実行制御用プロセッサ（ＣＰ）２１は、予め、次の処理コマンドと１対１の依存関係にある単純なステータスデータについてはハッシュ値を計算し、そのハッシュ値をアドレスとしてハッシュテーブル７５に当該ステータスデータを設定しておく。【０１９６】
また、ステータスアクセラレータ２５内のコマンドテーブル７１には、同じアドレスに対応する処理コマンドを設定する。複数のステータスデータが同一のハッシュ値を持つ場合には、そのハッシュ値を基準として前後の空いているアドレスに設定する。【０１９７】
その場合には、前記「順方向探索数Ａ」と「逆方向探索数Ｂ」の制御レジスタに、そのステータスデータの位置まで探索可能なように値を設定しておく。【０１９８】
本実施の形態における判定回路２４では、このように、単純なハッシュ計算機７４とハッシュテーブル（メモリ）７５、探索範囲を限定可能なアドレスカウンタ７６とを備えることで、比較的簡単な回路構成で、高速にアクセス可能な連想メモリ（ＣＡＭ）７３を実現することが可能である。【０１９９】
更に、本発明におけるハッシュテーブル（メモリ）７５に特有の特徴として、対象となる全データ分を格納する必要はなく、判定回路２４やステータスアクセラレータ２５の処理負荷に応じて、高速化すべき優先度が相対的に低い単純なステータスデータについては、ハッシュテーブル７５へは格納せずにステータスＦＩＦＯ制御部２６経由で実行制御用プロセッサ（ＣＰ）２１に処理させるなど、柔軟な構成を選択できるという利点もある。【０２００】
また、図１７に示した第２の実施の形態では、バスモニタ機能も有する。【０２０１】
バスモニタ出力回路６３にて、実行制御回路２０から各サブプロセッサ（機能ブロック）３０〜３ｎへ処理開始などのコマンド発行を行うコントロールバス４２と、各サブプロセッサ（機能ブロック）３０〜３ｎから実行制御回路２０に対して処理完了通知やエラー通知などを行うステータスバス５２の２種類のシングルレイヤバスアクセスだけをＬＳＩ外部にモニタ出力することで、各サブプロセッサの処理実行に関するほとんど全ての状態（開始、終了など）を観測することが比較的容易に可能である。【０２０２】
このように観測容易性（デバッグ容易性）が比較的高いのは、ステータス通知に各サブプロセッサからの専用線や専用バスではなく、本発明の特徴であるステータスバス５２とステータスバス制御回路５０を用いることにより、実行制御回路２０と各サブプロセッサ（機能ブロック）３０〜３ｎ間の通信を全て共通バス化できるためである。【０２０３】
（第２の実施の形態による効果）
次に本実施の形態の効果について説明する。【０２０４】
本実施の形態によれば、判定回路における判定機能を柔軟な連想メモリ（ハッシュテーブル）を用いた構成とすることで、第１の実施の形態に比べて少し複雑で規模の大きいハードウェアが必要となるものの、ステータスアクセラレータによるハードウェア処理と実行制御用プロセッサによるソフトウェア処理との選択に、各サブプロセッサ側から通知するステータスデータの変更は不要であり、判定回路内の連想メモリ（ハッシュテーブル）やステータスアクセラレータ内のコマンドテーブルなど実行制御回路内のテーブル設定変更のみでより柔軟に実現可能という利点がある。【０２０５】
また、本実施の形態によれば、バスモニタ出力装置を備えたことにより、デバッグ容易性、可観測性の高いマルチプロセッサシステムを実現できる。【０２０６】
その理由は、実行制御回路と各サブプロセッサ間のインタフェースはコントロールバスとステータスバスのみで構成され、各サブプロセッサへの処理内容（処理ＩＤ）と処理起動コマンドなどはコントロールバスを用いて転送され、各サブプロセッサからの処理完了などステータス通知はステータスバスを用いて転送されるため、この２種類のバスをＬＳＩ外部にバスモニタ出力することだけで、各サブプロセッサの処理実行に関するほとんど全ての動作状態（開始、終了など）を比較的容易に観測できるためである。【０２０７】
特に、各サブプロセッサからのステータス通知手段として、可観測性の低い専用線や専用バスではなく、可観測性の高いステータスバス構成にて実現していることにより、実行制御回路と各サブプロセッサ間の全ての通信を２種類のシングルレイヤバス上のみで観測することが可能である。【０２０８】
また、第１の実施の形態において実施例１に示したように、共有メモリを用いてサブプロセッサ間のデータ転送を実現する場合は、観測したい共有メモリバスを選択してＬＳＩ外部にモニタ出力することでサブプロセッサ間のデータ転送も観測することができる。【０２０９】
（第３の実施の形態）
本発明の第３の実施の形態について、図２０を参照して詳細に説明する。図２０において、本発明の本質に関わらない部分の構成については省略してあり、図示されていない。【０２１０】
本実施の形態では、実行制御回路自体を複数備え、各サブプロセッサの実行制御処理を並列化する場合の例について詳説する。【０２１１】
図２０は、本実施の形態である、実行制御回路２０自体を複数備え、各サブプロセッサの実行制御処理を並列化する場合のマルチプロセッサシステムの構成例を示す図である。【０２１２】
第１及び第２の実施の形態と同様、本発明におけるマルチプロセッサシステムは、メインプロセッサ側にメインプロセッサ（ＭＰ（ＣＰＵ））１０とそのＣＰＵバス１１、周辺ブロック（ペリフェラル）として割り込みコントローラ１２などが存在し、サブプロセッサ側に各サブプロセッサ（機能ブロック）３０〜３ｎが存在するような構成を想定している。メメインプロセッサ（ＭＰ（ＣＰＵ））１０はＣＰＵバス１１を用いてサブプロセッサ側の実行制御を行い、割り込みコントローラ１２に入力される割り込み信号を用いてサブプロセッサ側の状態を確認する。【０２１３】
第３の実施の形態に特有の構成として、メインプロセッサ（ＭＰ（ＣＰＵ））１０とサブプロセッサ（機能ブロック）３０〜３ｎの間に本発明である実行制御回路２０を複数個（２０ａ、２０ｂ）実装し、実行制御処理を並列実行させることを特徴とする。【０２１４】
実行制御回路２０ａ、２０ｂの構成やインタフェースは、第１及び第２の実施の形態における実行制御回路２０と同様のハードウェア構成およびインタフェース（ＣＰＵ  Ｉ／Ｆ、ＩＮＴＲ  Ｉ／Ｆ、  コントロールバス４２、ステータスバス５２）で実現可能である。【０２１５】
また、実行制御回路２０ａ、２０ｂと各サブプロセッサ（機能ブロック）３０〜３ｎの間は、コントロールバス制御回路４０とステータスバス制御回路５０から構成される。【０２１６】
ただし、コントロールバス制御回路４０とステータスバス制御回路５０は、図２０に示したように、２つの実行制御回路２０ａ、２０ｂで共有して１つずつだけ備える構成で実現しても良いし、複数の実行制御回路ごとにそれぞれコントロールバス制御回路４０、ステータスバス制御回路５０を備えていても何ら問題はない。【０２１７】
また、図２０では、実行制御回路２０が２つの場合の例を示しているが、３つ以上備えて並列動作させる場合でも何ら問題はない。メインプロセッサ側の割り込みコントローラ１２のみ、実行制御回路２０の実装数に依存して割り込み信号の入力本数が変更されるが、それ以外のブロックは、比較的構成変更が容易であるバス制御回路（ＣＰＵバス１１、コントロールバス制御回路４０、ステータスバス制御回路５０）の変更だけで対応可能である。すなわち、実行制御回路２０の内部構成およびインタフェースの変更は不要であり、システムに依存して変更となる可能性があるステータスアクセラレータ２５にて高速化する処理ステータスの変更や各ＦＩＦＯのＦＩＦＯ段数などの変更についても本発明の特徴であるコマンドテーブル７１等の書き換え機能や実施例１で示したＦＩＦＯ共有化の機能を用いることで、ハードウェア構成を変更することなく対応可能である。【０２１８】
ここで、図２０ではメインプロセッサ（ＭＰ（ＣＰＵ））１０は便宜的に１つで記載しているが、実行制御回路２０と同様、複数のメインプロセッサ（ＭＰ（ＣＰＵ））が存在しても何ら問題はない。【０２１９】
（第３の実施の形態の動作の説明）
次に、本実施の形態の動作について、詳細に説明する。【０２２０】
本実施の形態に特有の動作としては、本発明の特徴である実行制御回路を複数（図２０の例では２個）備え、実行制御処理を並列動作および負荷分散することを特徴としている。【０２２１】
メインプロセッサ（ＭＰ（ＣＰＵ））１０から処理に必要な動作シーケンスを実行制御回路２０ａ、２０ｂに分散させて登録し、該当する動作シーケンスが登録されている実行制御回路に該当動作シーケンスの開始コマンドを発行する。【０２２２】
それぞれの実行制御回路に異なった動作シーケンスを実行させることによって、実行制御処理の並列化が可能となり、システム全体として更なる負荷分散が可能となる。【０２２３】
また、システム全体の処理負荷に応じて、サブプロセッサの個数も更に増加させることが可能となる。【０２２４】
サブプロセッサ（機能ブロック）３０〜３ｎ側の動作は基本的には第１及び第２の実施の形態と同様だが、２つの実行制御回路２０ａ、２０ｂの両方から制御されるサブプロセッサについては両方の実行制御回路に対して処理ステータスの通知を実施する必要がある。【０２２５】
一方の実行制御回路からしか制御されないサブプロセッサについては該当する実行制御回路のみに処理ステータスを通知する。本発明における実行制御回路２０は、処理ステータスの実行制御処理に実行制御用プロセッサ（ＣＰ）２１から設定変更可能なコマンドテーブル７１やＦＩＦＯ段数可変のステータスＦＩＦＯを用いているため、ステータス通知の変更にも柔軟に対応可能である。【０２２６】
コントロールバス制御回路４０では、２つの実行制御回路２０ａ、２０ｂからのコントロールバスアクセスが競合した場合はラウンドロビン方式等でアクセス調停を行った上でアドレスデコードを行い、選択された実行制御部とサブプロセッサの間でコントロールバスアクセスを実現する。【０２２７】
ステータスバス制御回路５０では、各サブプロセッサ（機能ブロック）３０〜３ｎからのステータスバスアクセスが競合した場合はラウンドロビン方式等でアクセス調停を行った上でアドレスデコードを行い、該当サブプロセッサから選択された実行制御回路に対するステータスバスアクセスを実現する。【０２２８】
マルチプロセッサシステムとして、将来的にサブプロセッサ数が増加していくことが予測されるが、本実施の形態のように、実行制御回路２０を複数個備えることによって、実行制御処理の負荷増大による処理破綻を防止できるという利点がある。【０２２９】
また、本発明である実行制御回路２０を増加させる場合に、実行制御回路２０自体のハードウェア構成やサブプロセッサ側のハードウェア構成を変更することなく実現可能であるという利点もある。【０２３０】
（第３の実施の形態による効果）
次に本実施の形態の効果について説明する。【０２３１】
本実施の形態によれば、第１の実施の形態比べ、実行制御回路自体を複数個実装することで、実行制御用プロセッサ（ＣＰ）やステータスアクセラレータの処理を更に負荷分散させることが可能である。今後、システムの大規模化に伴い、ＬＳＩ内のサブプロセッサ数が増加することが予想されるが、本発明においては実行制御回路のハードウェア構成を変更することなく実装個数を増やすことができるため、高い拡張性を維持したまま更なる負荷分散が可能という効果もある。【０２３２】
以上好ましい実施の形態をあげて本発明を説明したが、本発明は必ずしも、上記実施の形態に限定されるものでなく、その技術的思想の範囲内において様々に変形して実施することができる。【０２３３】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。【０２３４】
また、本発明の各種の構成要素は、必ずしも個々に独立した存在である必要はなく、複数の構成要素が一個の部材として形成されていること、一つの構成要素が複数の部材で形成されていること、ある構成要素が他の構成要素の一部であること、ある構成要素の一部と他の構成要素の一部とが重複していること、等でもよい。【０２３５】
また、本発明の方法およびコンピュータプログラムには複数の手順を順番に記載してあるが、その記載の順番は複数の手順を実行する順番を限定するものではない。このため、本発明の方法およびコンピュータプログラムを実施する時には、その複数の手順の順番は内容的に支障しない範囲で変更することができる。【０２３６】
また、本発明の方法およびコンピュータプログラムの複数の手順は個々に相違するタイミングで実行されることに限定されない。このため、ある手順の実行中に他の手順が発生すること、ある手順の実行タイミングと他の手順の実行タイミングとの一部ないし全部が重複していること、等でもよい。【０２３７】
さらに、上記実施形態の一部又は全部は、以下の付記のようにも記載されうるが、これに限定されない。【０２３８】
（付記１）
１つまたは複数のメインプロセッサ及び複数のサブプロセッサと、
各サブプロセッサの実行制御を行う実行制御回路とを備え、
前記実行制御回路は、
各サブプロセッサの実行制御処理のための実行制御用プロセッサと、
各サブプロセッサのコマンド起動用のコントロールバス出力手段と、
各サブプロセッサからのステータス通知用のステータスバス入力手段と、
前記ステータス通知が動作シーケンス上で次に発行される処理コマンドと１対１の依存関係にあり高速処理するか否かを判定する判定回路と、
高速処理する場合に対応する処理起動コマンドを発行するステータスアクセラレータと、
前記実行制御用プロセッサを用いて前記ステータス通知を処理するためのステータスＦＩＦＯ制御部と
を備えることを特徴とするマルチプロセッサシステム。【０２３９】
（付記２）
前記ステータスアクセラレータが、高速処理する場合にテーブル引きにより対応する処理起動コマンドを発行することを特徴とする付記１に記載のマルチプロセッサシステム。【０２４０】
（付記３）
前記実行制御回路が、前記実行制御用プロセッサと前記ステータスアクセラレータからのアクセスを調停するコマンド調停回路を備えることを特徴とする付記１又は付記２に記載のマルチプロセッサシステム。【０２４１】
（付記４）
前記ステータスアクセラレータが、
対応する処理コマンドのサブプロセッサＩＤと処理ＩＤをペアにして格納するコマンドテーブルと、
対応する処理コマンドを前記サブプロセッサに発行するためのコマンド出力コントローラとを備え、
前記コマンド出力コントローラが、
前記判定回路から転送されたデータの全てまたは一部をアドレスとして、前記コマンドテーブルから格納された処理コマンドを読み出し、読み出したサブプロセッサＩＤを持つサブプロセッサに対して、一緒に読み出した処理ＩＤを含めて処理起動コマンドを発行することを特徴とする付記１から付記３の何れか１項に記載のマルチプロセッサシステム。【０２４２】
（付記５）
前記ステータス通知用のステータスデータのフォーマット中に判定用のビット領域を設け、
前記判定回路が、
前記判定用のビット領域を用いて判定を行う比較判定回路と、
前記ステータスデータの全部または一部を、１対１の依存関係にあり且つ高速処理するという判定結果の場合に前記ステータスアクセラレータに転送し、それ以外の判定結果の場合に前記ステータスＦＩＦＯ制御部に転送する転送選択手段とを備えることを特徴とする付記１から付記４の何れか１項に記載のマルチプロセッサシステム。【０２４３】
（付記６）
前記判定回路が、
入力したステータスデータを用いてアクセスした場合、１対１の依存関係にある処理コマンドが存在する場合は前記コマンドテーブルのアドレスを出力することで判定を実現する連想メモリと、
前記連想メモリにヒットした場合は出力されるアドレスを前記ステータスアクセラレータに転送し、ヒットしない場合は入力した前記ステータスデータを前記ステータスＦＩＦＯ制御部に転送する転送選択手段とを備えることを特徴とする付記１から付記４の何れか１項に記載のマルチプロセッサシステム。【０２４４】
（付記７）
前記連想メモリが、
ステータスデータのハッシュ値計算回路と、
１対１の依存関係にあるステータスデータから計算されるハッシュ値をアドレスとして当該ステータスデータをデータとして格納するハッシュテーブルと、
同一のハッシュ値を持つステータスデータが複数存在する場合に最小限のアクセス回数で判定するためのアドレスカウンタとを備えることを特徴とする付記６に記載のマルチプロセッサシステム。【０２４５】
（付記８）
前記連想メモリの内容を、前記メインプロセッサまたは前記実行制御用プロセッサから設定変更可能であることを特徴とする付記６又は付記７に記載のマルチプロセッサシステム。【０２４６】
（付記９）
前記判定回路が、
前記メインプロセッサまたは前記実行制御用プロセッサから設定可能な制御レジスタの値により、前記判定した結果に関わらず、全てのステータスデータをステータスＦＩＦＯ制御部に転送する手段を備えることを特徴とする付記１から付記８の何れか１項に記載のマルチプロセッサシステム。【０２４７】
（付記１０）
前記実行制御回路から前記各サブプロセッサへの制御を行うコントロールバスのコントロールバス制御回路と、
前記各サブプロセッサから前記実行制御回路へのステータス通知を行うステータスバスのステータスバス制御回路とを備え、
前記ステータスバス制御回路は、
各サブプロセッサからのステータスバスのアクセス調停時にどのサブプロセッサからのステータス通知なのかを示すサブプロセッサＩＤを付加して前記実行制御回路にステータスバス転送する手段を備え、
前記ステータスＦＩＦＯ制御部は、前記サブプロセッサＩＤ、処理ＩＤ、そのステータス値をまとめて格納する機構を備えることを特徴とする付記１から付記９の何れか１項に記載のマルチプロセッサシステム。【０２４８】
（付記１１）
前記各サブプロセッサは、
前記コントロールバスからの処理起動コマンドを取得するためのコマンド受信制御手段と、
前記ステータスバスに対して処理ステータスを送信するためのステータス通知制御手段とを備え、
前記ステータスバスへのステータス通知データとして、前記処理起動コマンドで指定された処理ＩＤとその処理ＩＤに対応する処理ステータスを合わせて通知することを特徴とする付記１から付記１０の何れか１項に記載のマルチプロセッサシステム。【０２４９】
（付記１２）
前記実行制御回路は、
メインプロセッサとの通信用としてメインプロセッサからの動作シーケンスの設定およびコマンド入力用のコマンドＦＩＦＯ制御部と、
メインプロセッサへの処理シーケンス完了など割り込み通知用の割り込みＦＩＦＯ制御部と、
前記ステータスＦＩＦＯ制御部と前記コマンドＦＩＦＯ制御部、前記割り込みＦＩＦＯ制御部の実体を同一アドレス空間上のメモリに共有化し、各々のＦＩＦＯ段数を可変にするためのＦＩＦＯベースアドレス設定レジスタおよびＦＩＦＯ段数設定レジスタと、
各ＦＩＦＯ制御部に対するアクセスが発生した場合に前記２つのＦＩＦＯ設定レジスタの値を用いて実際のメモリアドレスに変換するアドレス変換手段とを備えることを特徴とする付記１から付記１１の何れか１項に記載のマルチプロセッサシステム。【０２５０】
（付記１３）
各サブプロセッサ間のデータ授受手段としてマルチバンク化された共有メモリを備え、
各サブプロセッサは、
入出力データの転送用に共有メモリインタフェースを備え、前記共有メモリインタフェースを介して入出力データの転送および処理パラメータの取得を行うことを特徴とする付記１から付記１２の何れか１項に記載のマルチプロセッサシステム。【０２５１】
（付記１４）
前記コントロールバスまたは前記ステータスバスをＬＳＩ外部にモニタ出力するバスモニタ出力回路を備えることを特徴とする付記１から付記１３の何れか１項に記載のマルチプロセッサシステム。【０２５２】
（付記１５）
前記実行制御回路を複数個備え、
実行制御処理を並列に行うことを特徴とする付記１から付記１４の何れか１項に記載のマルチプロセッサシステム。【０２５３】
（付記１６）
１つまたは複数のメインプロセッサ及び複数のサブプロセッサを備えるマルチプロセッサシステムにおけるサブプロセッサの実行制御方法であって、
各サブプロセッサの実行制御を行う実行制御回路を備え、
前記実行制御回路の判定回路が、各サブプロセッサからのステータス通知が動作シーケンス上で次に発行される処理コマンドと１対１の依存関係にあり高速処理するか否かを判定し、
高速処理する場合に、前記実行制御回路のステータスアクセラレータが、対応する処理起動コマンドを発行し、
前記実行制御回路のステータスＦＩＦＯ制御部が、各サブプロセッサの実行制御処理のための実行制御用プロセッサを用いて前記ステータス通知を処理する
ことを特徴とする実行制御方法。【０２５４】
（付記１７）
前記ステータスアクセラレータが、高速処理する場合にテーブル引きにより対応する処理起動コマンドを発行することを特徴とする付記１６に記載の実行制御方法。【０２５５】
（付記１８）
前記実行制御回路のコマンド調停回路が、前記実行制御用プロセッサと前記ステータスアクセラレータからのアクセスを調停することを特徴とする付記１６又は付記１７に記載の実行制御方法。【０２５６】
（付記１９）
前記ステータスアクセラレータが、
対応する処理コマンドのサブプロセッサＩＤと処理ＩＤをペアにして格納するコマンドテーブルと、
対応する処理コマンドを前記サブプロセッサに発行するためのコマンド出力コントローラとを備え、
前記コマンド出力コントローラが、
前記判定回路から転送されたデータの全てまたは一部をアドレスとして、前記コマンドテーブルから格納された処理コマンドを読み出し、読み出したサブプロセッサＩＤを持つサブプロセッサに対して、一緒に読み出した処理ＩＤを含めて処理起動コマンドを発行することを特徴とする付記１６から付記１８の何れか１項に記載の実行制御方法。【０２５７】
（付記２０）
前記ステータス通知用のステータスデータのフォーマット中に判定用のビット領域を設け、
前記判定回路が、
前記判定用のビット領域を用いて判定を行い、
前記ステータスデータの全部または一部を、１対１の依存関係にあり且つ高速処理するという判定結果の場合に前記ステータスアクセラレータに転送し、それ以外の判定結果の場合に前記ステータスＦＩＦＯ制御部に転送することを特徴とする付記１６から付記１９の何れか１項に記載の実行制御方法。【０２５８】
（付記２１）
前記判定回路が、
入力したステータスデータを用いてアクセスした場合、連想メモリによって１対１の依存関係にある処理コマンドが存在する場合に前記コマンドテーブルのアドレスを出力することで判定を実現し、
前記連想メモリにヒットした場合は出力されるアドレスを前記ステータスアクセラレータに転送し、ヒットしない場合は入力した前記ステータスデータを前記ステータスＦＩＦＯ制御部に転送することを特徴とする付記１６から付記１９の何れか１項に記載の実行制御方法。【０２５９】
（付記２２）
前記判定回路が、
前記メインプロセッサまたは前記実行制御用プロセッサから設定可能な制御レジスタの値により、前記判定した結果に関わらず、全てのステータスデータをステータスＦＩＦＯ制御部に転送することを特徴とする付記１６から付記２１の何れか１項に記載の実行制御方法。【０２６０】
（付記２３）
１つまたは複数のメインプロセッサ及び複数のサブプロセッサを備えるマルチプロセッサシステムにおいて、
各サブプロセッサの実行制御を行う実行制御回路に、
前記実行制御回路の判定回路が、各サブプロセッサからのステータス通知が動作シーケンス上で次に発行される処理コマンドと１対１の依存関係にあり高速処理するか否かを判定する機能と、
高速処理する場合に、前記実行制御回路のステータスアクセラレータが、対応する処理起動コマンドを発行する機能と、
前記実行制御回路のステータスＦＩＦＯ制御部が、各サブプロセッサの実行制御処理のための実行制御用プロセッサを用いて前記ステータス通知を処理する機能と、を実行させることを特徴とする実行制御プログラム。【０２６１】
（付記２４）
前記ステータスアクセラレータに、高速処理する場合にテーブル引きにより対応する処理起動コマンドを発行する機能を実行させることを特徴とする付記２３に記載の実行制御プログラム。【０２６２】
（付記２５）
前記実行制御回路のコマンド調停回路に、前記実行制御用プロセッサと前記ステータスアクセラレータからのアクセスを調停する機能を実行させることを特徴とする付記２３又は付記２４に記載の実行制御プログラム。【０２６３】
（付記２６）
前記ステータスアクセラレータが、
対応する処理コマンドのサブプロセッサＩＤと処理ＩＤをペアにして格納するコマンドテーブルと、
対応する処理コマンドを前記サブプロセッサに発行するためのコマンド出力コントローラとを備え、
前記コマンド出力コントローラに、
前記判定回路から転送されたデータの全てまたは一部をアドレスとして、前記コマンドテーブルから格納された処理コマンドを読み出し、読み出したサブプロセッサＩＤを持つサブプロセッサに対して、一緒に読み出した処理ＩＤを含めて処理起動コマンドを発行する機能を実行させることを特徴とする付記２３から付記２５の何れか１項に記載の実行制御プログラム。【０２６４】
（付記２７）
前記ステータス通知用のステータスデータのフォーマット中に判定用のビット領域を設け、
前記判定回路に、
前記判定用のビット領域を用いて判定を行い、
前記ステータスデータの全部または一部を、１対１の依存関係にあり且つ高速処理するという判定結果の場合に前記ステータスアクセラレータに転送し、それ以外の判定結果の場合に前記ステータスＦＩＦＯ制御部に転送する機能を実行させることを特徴とする付記２３から付記２６の何れか１項に記載の実行制御プログラム。【０２６５】
（付記２８）
前記判定回路に、
入力したステータスデータを用いてアクセスした場合、連想メモリによって１対１の依存関係にある処理コマンドが存在する場合に前記コマンドテーブルのアドレスを出力することで判定を実現し、
前記連想メモリにヒットした場合は出力されるアドレスを前記ステータスアクセラレータに転送し、ヒットしない場合は入力した前記ステータスデータを前記ステータスＦＩＦＯ制御部に転送する機能を実行させることを特徴とする付記２３から付記２６の何れか１項に記載の実行制御プログラム。【０２６６】
（付記２９）
前記判定回路に、
前記メインプロセッサまたは前記実行制御用プロセッサから設定可能な制御レジスタの値により、前記判定した結果に関わらず、全てのステータスデータをステータスＦＩＦＯ制御部に転送する機能を実行させることを特徴とする付記２３から付記２８の何れか１項に記載の実行制御プログラム。【０２６７】
この出願は、２０１０年５月２６日に出願された日本出願特願２０１０−１２０２４１を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【図１】
0005895840.tif 000002
【図２】
0005895840.tif 000003
【図３】
0005895840.tif 000004
【図４】
0005895840.tif 000005
【図５】
0005895840.tif 000006
【図６】
0005895840.tif 000007
【図７】
0005895840.tif 000008
【図８】
0005895840.tif 000009
【図９】
0005895840.tif 000010
【図１０】
0005895840.tif 000011
【図１１】
0005895840.tif 000012
【図１２】
0005895840.tif 000013
【図１３】
0005895840.tif 000014
【図１４】
0005895840.tif 000015
【図１５】
0005895840.tif 000016
【図１６】
0005895840.tif 000017
【図１７】
0005895840.tif 000018
【図１８】
0005895840.tif 000019
【図１９】
0005895840.tif 000020
【図２０】
0005895840.tif 000021