(57)【特許請求の範囲】
【請求項１】
コマンドを実行する第１の処理実行部と、
前記第１の処理実行部にコマンドの実行を指示する第１のアドレス管理部と、
前記第１の処理実行部の実行と並列に、前記第１の処理実行部が実行するコマンドとは異なるコマンドを実行する第２の処理実行部と、
前記第２の処理実行部にコマンドの実行を指示する第２のアドレス管理部と、
各アドレスにシーケンスコマンドを格納し、並列処理開始のコマンドには並列処理開始ビットを対応付けて格納し、並列処理終了のコマンドには並列処理終了ビットを対応付けて格納するシーケンスコマンド格納メモリと、
前記並列処理開始ビットに対応付けられたコマンドから前記並列処理終了ビットに対応付けられたコマンドまでのシーケンスコマンドを前記シーケンスコマンド格納メモリから連続して読み出して前記第１のアドレス管理部及び前記第２のアドレス管理部に出力させる処理シーケンス管理部とを有し、
前記第１のアドレス管理部は、前記シーケンスコマンド格納メモリから読み出されたシーケンスコマンドを先頭から順に参照し、前記第１の処理実行部が実行するコマンドを見つけるとそのコマンドの実行を前記第１の処理実行部に指示し、
前記第２のアドレス管理部は、前記シーケンスコマンド格納メモリから読み出されたシーケンスコマンドを先頭から順に参照し、前記第２の処理実行部が実行するコマンドを見つけるとそのコマンドの実行を前記第２の処理実行部に指示することを特徴とする並列処理装置。
【請求項２】
前記第１のアドレス管理部は、前記第１の処理実行部が実行中のコマンドのアドレスを記憶し、
前記第２のアドレス管理部は、前記第２の処理実行部が実行中のコマンドのアドレスを記憶し、
前記処理シーケンス管理部は、少なくとも前記第１の処理実行部又は前記第２の処理実行部がコマンドの実行を終了すると、再び、前記並列処理開始ビットに対応付けられたコマンドから前記並列処理終了ビットに対応付けられたコマンドまでのシーケンスコマンドを前記シーケンスコマンド格納メモリから連続して読み出して前記第１のアドレス管理部及び前記第２のアドレス管理部に出力させ、
前記第１のアドレス管理部は、前記第１の処理実行部のコマンドの実行が終了すると、前記実行が終了したコマンドのアドレスより後のアドレスから順に、前記シーケンスコマンド格納メモリから読み出されたシーケンスコマンドを参照し、前記第１の処理実行部が実行するコマンドを見つけるとそのコマンドの実行を前記第１の処理実行部に指示し、
前記第２のアドレス管理部は、前記第２の処理実行部のコマンドの実行が終了すると、前記実行が終了したコマンドのアドレスより後のアドレスから順に、前記シーケンスコマンド格納メモリから読み出されたシーケンスコマンドを参照し、前記第２の処理実行部が実行するコマンドを見つけるとそのコマンドの実行を前記第２の処理実行部に指示することを特徴とする請求項１記載の並列処理装置。
【請求項３】
前記第１のアドレス管理部は、前記並列処理開始ビットに対応付けられたコマンドから前記並列処理終了ビットに対応付けられたコマンドまでのシーケンスコマンドの中で、前記第１の処理実行部が実行する最後のコマンドの実行が終了すると、前記最後のコマンドの実行が終了した旨を出力し、
前記第２のアドレス管理部は、前記並列処理開始ビットに対応付けられたコマンドから前記並列処理終了ビットに対応付けられたコマンドまでのシーケンスコマンドの中で、前記第２の処理実行部が実行する最後のコマンドの実行が終了すると、前記最後のコマンドの実行が終了した旨を出力し、
前記処理シーケンス管理部は、少なくとも前記第１のアドレス管理部及び前記第２のアドレス管理部から前記最後のコマンドの実行が終了した旨が出力されると、前記並列処理終了ビットに対応付けられたコマンドの次のアドレスのコマンドを前記シーケンスコマンド格納メモリから読み出して前記第１のアドレス管理部及び前記第２のアドレス管理部に出力させることを特徴とする請求項２記載の並列処理装置。
【請求項４】
前記第１のアドレス管理部は、前記第１の処理実行部が前記最後のコマンドを実行中であるか否かを示す第１の最終アドレスフラグを記憶し、
前記第２のアドレス管理部は、前記第２の処理実行部が前記最後のコマンドを実行中であるか否かを示す第２の最終アドレスフラグを記憶することを特徴とする請求項３記載の並列処理装置。
【請求項５】
さらに、前記第１の処理実行部が実行するコマンドを前記第１の処理実行部及び前記第１のアドレス管理部に対して割り当て、前記第２の処理実行部が実行するコマンドを前記第２の処理実行部及び前記第２のアドレス管理部に対して割り当てるコマンドアサイン管理部を有することを特徴とする請求項１〜４のいずれか１項に記載の並列処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、並列処理装置に関する。
【背景技術】
【０００２】
データ駆動プログラムと制御駆動プログラムとを同一パイプライン上で命令単位に多重処理するデータ処理装置が知られている（例えば、特許文献１参照）。
【０００３】
また、キャッシュメモリ内でのデータ転送指示を複数の命令の組合せとして取得する演算処理装置が知られている（例えば、特許文献２参照）。
【０００４】
また、１命令毎に命令レジスタよりフェッチするか、もしくは複数の命令を同時に命令レジスタよりフェッチし、デコードされた複数の演算命令を実行するダイナミックなパイプライン制御が可能な汎用プロセッサが知られている（例えば、特許文献３参照）。
【０００５】
また、複数の計算機と、それらを接続する通信機構とから構成され、１つのジョブを複数のプロセスに分割して計算機に割り付ける構成を採って、各計算機が、自計算機で動作する１つ又は複数のプロセスの処理進行情報を通信機構を介して全計算機に放送していくとともに、通信機構を介して放送される処理進行情報に従って他計算機で動作するプロセスと同期をとりつつ割り付けられるプロセスを実行する並列計算機システムが知られている（例えば、特許文献４参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００５−１０８０８６号公報
【特許文献２】特開２００６−３１３４２２号公報
【特許文献３】特開平１１−１６１４９１号公報
【特許文献４】特開平１０−８３３７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
コマンドを並列処理する複数の処理実行部と、複数の処理実行部にそれぞれ実行するコマンドを供給する管理部とを有する並列処理装置が考えられる。しかし、管理部がすべての処理実行部の管理を行うと、回路規模が大きくなってしまう課題がある。
【０００８】
本発明の目的は、小規模の構成で、コマンドを並列処理することができる並列処理装置を提供することである。
【課題を解決するための手段】
【０００９】
並列処理装置は、コマンドを実行する第１の処理実行部と、前記第１の処理実行部にコマンドの実行を指示する第１のアドレス管理部と、前記第１の処理実行部の実行と並列に、前記第１の処理実行部が実行するコマンドとは異なるコマンドを実行する第２の処理実行部と、前記第２の処理実行部にコマンドの実行を指示する第２のアドレス管理部と、各アドレスにシーケンスコマンドを格納し、並列処理開始のコマンドには並列処理開始ビットを対応付けて格納し、並列処理終了のコマンドには並列処理終了ビットを対応付けて格納するシーケンスコマンド格納メモリと、前記並列処理開始ビットに対応付けられたコマンドから前記並列処理終了ビットに対応付けられたコマンドまでのシーケンスコマンドを前記シーケンスコマンド格納メモリから連続して読み出して前記第１のアドレス管理部及び前記第２のアドレス管理部に出力させる処理シーケンス管理部とを有し、前記第１のアドレス管理部は、前記シーケンスコマンド格納メモリから読み出されたシーケンスコマンドを先頭から順に参照し、前記第１の処理実行部が実行するコマンドを見つけるとそのコマンドの実行を前記第１の処理実行部に指示し、前記第２のアドレス管理部は、前記シーケンスコマンド格納メモリから読み出されたシーケンスコマンドを先頭から順に参照し、前記第２の処理実行部が実行するコマンドを見つけるとそのコマンドの実行を前記第２の処理実行部に指示する。
【発明の効果】
【００１０】
第１のアドレス管理部及び第２のアドレス管理部がコマンドを見つけるので、小規模の構成で、コマンドを並列処理することができる。
【図面の簡単な説明】
【００１１】
【図１】第１の実施形態による並列処理装置の構成例を示す図である。
【図２】図１のシーケンスコマンド格納メモリの記憶内容を示す図である。
【図３】図３（Ａ）〜（Ｃ）は図１の並列処理装置の処理例を説明するための図である。
【図４】図４（Ａ）〜（Ｄ）は図１の並列処理装置の処理例を説明するための図である。
【図５】図５（Ａ）〜（Ｃ）は図１の並列処理装置の処理例を説明するための図である。
【図６】図６（Ａ）及び（Ｂ）は図１の並列処理装置の処理例を説明するための図である。
【図７】図７（Ａ）及び（Ｂ）は図１の並列処理装置の処理例を説明するための図である。
【図８】図８（Ａ）及び（Ｂ）は図１の並列処理装置の処理例を説明するための図である。
【図９】図１の並列処理装置の処理例を説明するための図である。
【図１０】第２の実施形態による並列処理装置の構成例を示す図である。
【発明を実施するための形態】
【００１２】
（第１の実施形態）
図１は、第１の実施形態による並列処理装置の構成例を示す図である。第１の処理実行部１０４ａは、Ａ処理のコマンドＣＭＤａを実行する。第１のアドレス管理部１０１ａは、第１の実行アドレス１０２ａ及び第１の最終アドレスフラグ１０３ａを記憶し、第１の処理実行部１０４ａにＡ処理のコマンドＣＭＤａを供給し、第１の処理実行部１０４ａに実行指示ＩＮＳを供給することにより第１の処理実行部１０４ａにコマンドＣＭＤａの実行を指示する。第１の処理実行部１０４ａは、コマンドＣＭＤａの実行が終了すると、終了通知ＣＭＰを第１のアドレス管理部１０１ａに出力する。
【００１３】
第２の処理実行部１０４ｂは、Ｂ処理のコマンドＣＭＤｂを実行する。第２のアドレス管理部１０１ｂは、第２の実行アドレス１０２ｂ及び第２の最終アドレスフラグ１０３ｂを記憶し、第２の処理実行部１０４ｂにＢ処理のコマンドＣＭＤｂを供給し、第２の処理実行部１０４ｂに実行指示ＩＮＳを供給することにより第２の処理実行部１０４ｂにコマンドＣＭＤｂの実行を指示する。第２の処理実行部１０４ｂは、コマンドＣＭＤｂの実行が終了すると、終了通知ＣＭＰを第２のアドレス管理部１０１ｂに出力する。
【００１４】
第３の処理実行部１０４ｃは、Ｃ処理のコマンドＣＭＤｃを実行する。第３のアドレス管理部１０１ｃは、第３の実行アドレス１０２ｃ及び第３の最終アドレスフラグ１０３ｃを記憶し、第３の処理実行部１０４ｃにＣ処理のコマンドＣＭＤｃを供給し、第３の処理実行部１０４ｃに実行指示ＩＮＳを供給することにより第３の処理実行部１０４ｃにコマンドＣＭＤｃの実行を指示する。第３の処理実行部１０４ｃは、コマンドＣＭＤｃの実行が終了すると、終了通知ＣＭＰを第３のアドレス管理部１０１ｃに出力する。
【００１５】
上記のように、第１の処理実行部１０４ａはＡ処理のコマンドＣＭＤａを実行し、第２の処理実行部１０４ｂはＢ処理のコマンドＣＭＤｂを実行し、第３の処理実行部１０４ｃはＣ処理のコマンドＣＭＤｃを実行する。例えば、Ａ処理のコマンドＣＭＤａは加算処理のコマンド、Ｂ処理のコマンドＣＭＤｂは乗算処理のコマンド、Ｃ処理のコマンドＣＭＤｃは乗算処理のコマンドである。コマンドＣＭＤａ、ＣＭＤｂ及びＣＭＤｃは、相互に異なるコマンドであり、種々の四則演算の組み合わせのコマンドでもよい。第１の処理実行部１０４ａ、第２の処理実行部１０４ｂ及び第３の処理実行部１０４ｃは、相互に並列にコマンドを実行することができる。
【００１６】
図２は、図１のシーケンスコマンド格納メモリ１１４の記憶内容を示す図である。各アドレスＡＤＤにシーケンスのコマンドＣＭＤを格納する。例えば、「１」番地のアドレスＡＤＤには、「Ａ処理−１」のコマンドＣＭＤが格納される。「２」番地のアドレスＡＤＤには、「Ａ処理−２」のコマンドＣＭＤ及び並列処理開始ビットが格納される。「３」番地のアドレスＡＤＤには、「Ｂ処理−１」のコマンドＣＭＤが格納される。「４」番地のアドレスＡＤＤには、「Ｃ処理−１」のコマンドＣＭＤが格納される。「５」番地のアドレスＡＤＤには、「Ａ処理−３」のコマンドＣＭＤが格納される。「６」番地のアドレスＡＤＤには、「Ｂ処理−２」のコマンドＣＭＤが格納される。「７」番地のアドレスＡＤＤには、「Ｃ処理−２」のコマンドＣＭＤが格納される。「８」番地のアドレスＡＤＤには、「Ａ処理−４」のコマンドＣＭＤ及び並列処理終了ビットが格納される。「９」番地のアドレスＡＤＤには、「Ｂ処理−３」のコマンドＣＭＤが格納される。
【００１７】
第１の処理実行部１０４ａは、アドレスＡＤＤの順に従い、「１」番地の「Ａ処理−１」、「２」番地の「Ａ処理−２」、「５」番地の「Ａ処理−３」及び「８」番地の「Ａ処理−４」のコマンドＣＭＤを順に実行する必要がある。
【００１８】
第２の処理実行部１０４ｂは、アドレスＡＤＤの順に従い、「３」番地の「Ｂ処理−１」、「６」番地の「Ｂ処理−２」及び「９」番地の「Ｂ処理−３」のコマンドＣＭＤを順に実行する必要がある。
【００１９】
第３の処理実行部１０４ｃは、アドレスＡＤＤの順に従い、「４」番地の「Ｃ処理−１」及び「７」番地の「Ｃ処理−２」のコマンドＣＭＤを順に実行する必要がある。
【００２０】
シーケンスコマンド格納メモリ１１４は、並列処理開始のコマンドには並列処理開始ビットを対応付けて格納し、並列処理終了のコマンドには並列処理終了ビットを対応付けて格納する。例えば、並列処理開始ビットは、並列処理開始のコマンドである「２」番地の「Ａ処理−２」のコマンドＣＭＤに対応付けて格納される。並列処理終了ビットは、並列処理終了のコマンドである「８」番地の「Ａ処理−４」のコマンドＣＭＤに対応付けて格納される。これにより、「２」番地の「Ａ処理−２」のコマンドＣＭＤから「８」番地の「Ａ処理−４」のコマンドＣＭＤまでのシーケンスコマンドは、第１の処理実行部１０４ａ、第２の処理実行部１０４ｂ及び第３の処理実行部１０４ｃにより並列処理される。並列処理開始ビットの「２」番地より前の「１」番地以前のコマンドＣＭＤ、及び並列処理終了ビットの「８」番地より後の「９」番地以降のコマンドＣＭＤは、並列処理されず、アドレスＡＤＤの順に従って順に処理される。
【００２１】
図３（Ａ）〜（Ｃ）、図４（Ａ）〜（Ｄ）、図５（Ａ）〜（Ｃ）、図６（Ａ），（Ｂ）、図７（Ａ），（Ｂ）、図８（Ａ），（Ｂ）及び図９は、図１の並列処理装置の処理例を説明するための図である。以下、これらの図を参照しながら、図１の並列処理装置の処理例を説明する。
【００２２】
まず、処理シーケンス管理部１１１は、並列処理実行指示信号ＰＡＬ１がローレベルであるので、最初のアドレスＡＤＤから順にアドレスＡＤＤを、シーケンスコマンド格納メモリ１１４、第１のアドレス管理部１０１ａ、第２のアドレス管理部１０１ｂ及び第３のアドレス管理部１０１ｃに出力する。具体的には、処理シーケンス管理部１１１は、「１」番地のアドレスＡＤＤを出力する。シーケンスコマンド格納メモリ１１４は、「１」番地のアドレスＡＤＤを入力すると、「１」番地のアドレスＡＤＤに格納されている「Ａ処理−１」のコマンドＣＭＤを、並列処理ビット抽出部１１５、第１のアドレス管理部１０１ａ、第２のアドレス管理部１０１ｂ及び第３のアドレス管理部１０１ｃに出力する。並列処理ビット抽出部１１５は、シーケンスコマンド格納メモリ１１４から並列処理開始ビット又は並列処理終了ビットを入力しないので、並列処理実行指示信号ＰＡＬ１及び並列処理区間通知信号ＰＡＬ２をローレベルのままにする。
【００２３】
第１のアドレス管理部１０１ａは、入力した「１」番地の「Ａ処理−１」のコマンドＣＭＤがＡ処理のコマンドＣＭＤａのコードであると判定し、そのコマンドＣＭＤをＡ処理のコマンドＣＭＤａとして第１の処理実行部１０４ａに供給し、実行指示ＩＮＳを第１の処理実行部１０４ａに供給することにより第１の処理実行部１０４ａにコマンドＣＭＤａの実行を指示する。すると、第１の処理実行部１０４ａは、コマンドＣＭＤａの実行を開始する。
【００２４】
第２のアドレス管理部１０１ｂは、入力した「１」番地の「Ａ処理−１」のコマンドＣＭＤがＢ処理のコマンドＣＭＤｂのコードではないと判定し、コマンド実行を第２の処理実行部１０４ｂに指示しない。同様に、第３のアドレス管理部１０１ｃは、入力した「１」番地の「Ａ処理−１」のコマンドＣＭＤがＣ処理のコマンドＣＭＤｃのコードではないと判定し、コマンド実行を第３の処理実行部１０４ｃに指示しない。
【００２５】
第１の処理実行部１０４ａは、コマンドＣＭＤａの実行を終了すると、終了通知ＣＭＰを第１のアドレス管理部１０１ａに出力する。すると、第１のアドレス管理部１０１ａは、ハイレベルの処理終了通知ＣＭＰＡａを出力する。すると、論理和（ＯＲ）回路１１６は、ハイレベルの処理終了通知を出力する。
【００２６】
すると、処理シーケンス管理部１１１は、並列処理区間通知信号ＰＡＬ２がローレベルであるので、アドレス制御部１１３によりアドレスＡＤＤをインクリメントし、「２」番地のアドレスＡＤＤを、シーケンスコマンド格納メモリ１１４、第１のアドレス管理部１０１ａ、第２のアドレス管理部１０１ｂ及び第３のアドレス管理部１０１ｃに出力する。シーケンスコマンド格納メモリ１１４は、「２」番地のアドレスＡＤＤを入力すると、「２」番地のアドレスＡＤＤに格納されている「Ａ処理−２」のコマンドＣＭＤ及び並列処理開始ビットを、並列処理ビット抽出部１１５、第１のアドレス管理部１０１ａ、第２のアドレス管理部１０１ｂ及び第３のアドレス管理部１０１ｃに出力する。並列処理ビット抽出部１１５は、シーケンスコマンド格納メモリ１１４から並列処理開始ビットを入力すると、並列処理開始を認識し、ハイレベルの並列処理実行指示信号ＰＡＬ１及び並列処理区間通知信号ＰＡＬ２を、処理シーケンス管理部１１１、第１のアドレス管理部１０１ａ、第２のアドレス管理部１０１ｂ及び第３のアドレス管理部１０１ｃに出力する。
【００２７】
処理シーケンス管理部１１１内の並列処理区間保存部１１２は、並列処理区間通知信号ＰＡＬ２がローレベルからハイレベルに変化すると、現在の「２」番地のアドレスＡＤＤが並列処理開始ビットのアドレスである旨を保存する。
【００２８】
処理シーケンス管理部１１１は、並列処理区間通知信号ＰＡＬ２がローレベルであるときには、上記のように、１コマンドを読み出し、論理和回路１１６が出力する処理終了通知がハイレベルになると、次のコマンドＣＭＤを読み出す。
【００２９】
これに対し、処理シーケンス管理部１１１は、並列処理区間通知信号ＰＡＬ２がハイレベルになると、論理和回路１１６が出力する処理終了通知にかかわらずに、アドレス制御部１１３によりアドレスＡＤＤをインクリメントし、次の「３」番地のアドレスＡＤＤを、シーケンスコマンド格納メモリ１１４、第１のアドレス管理部１０１ａ、第２のアドレス管理部１０１ｂ及び第３のアドレス管理部１０１ｃに出力する。シーケンスコマンド格納メモリ１１４は、「３」番地のアドレスＡＤＤを入力すると、「３」番地のアドレスＡＤＤに格納されている「Ｂ処理−１」のコマンドＣＭＤを、並列処理ビット抽出部１１５、第１のアドレス管理部１０１ａ、第２のアドレス管理部１０１ｂ及び第３のアドレス管理部１０１ｃに出力する。並列処理ビット抽出部１１５は、ハイレベルの並列処理実行指示信号ＰＡＬ１及び並列処理区間通知信号ＰＡＬ２を維持する。
【００３０】
次に、処理シーケンス管理部１１１は、並列処理区間通知信号ＰＡＬ２がハイレベルのままであるので、論理和回路１１６が出力する処理終了通知にかかわらずに、アドレス制御部１１３によりアドレスＡＤＤをインクリメントし、次の「４」番地のアドレスＡＤＤを、シーケンスコマンド格納メモリ１１４、第１のアドレス管理部１０１ａ、第２のアドレス管理部１０１ｂ及び第３のアドレス管理部１０１ｃに出力する。シーケンスコマンド格納メモリ１１４は、「４」番地のアドレスＡＤＤを入力すると、「４」番地のアドレスＡＤＤに格納されている「Ｃ処理−１」のコマンドＣＭＤを、並列処理ビット抽出部１１５、第１のアドレス管理部１０１ａ、第２のアドレス管理部１０１ｂ及び第３のアドレス管理部１０１ｃに出力する。並列処理ビット抽出部１１５は、ハイレベルの並列処理実行指示信号ＰＡＬ１及び並列処理区間通知信号ＰＡＬ２を維持する。
【００３１】
次に、処理シーケンス管理部１１１は、並列処理区間通知信号ＰＡＬ２がハイレベルのままであるので、論理和回路１１６が出力する処理終了通知にかかわらずに、アドレス制御部１１３によりアドレスＡＤＤをインクリメントし、次の「５」番地のアドレスＡＤＤを、シーケンスコマンド格納メモリ１１４、第１のアドレス管理部１０１ａ、第２のアドレス管理部１０１ｂ及び第３のアドレス管理部１０１ｃに出力する。シーケンスコマンド格納メモリ１１４は、「５」番地のアドレスＡＤＤを入力すると、「５」番地のアドレスＡＤＤに格納されている「Ａ処理−３」のコマンドＣＭＤを、並列処理ビット抽出部１１５、第１のアドレス管理部１０１ａ、第２のアドレス管理部１０１ｂ及び第３のアドレス管理部１０１ｃに出力する。並列処理ビット抽出部１１５は、ハイレベルの並列処理実行指示信号ＰＡＬ１及び並列処理区間通知信号ＰＡＬ２を維持する。
【００３２】
次に、処理シーケンス管理部１１１は、並列処理区間通知信号ＰＡＬ２がハイレベルのままであるので、論理和回路１１６が出力する処理終了通知にかかわらずに、アドレス制御部１１３によりアドレスＡＤＤをインクリメントし、次の「６」番地のアドレスＡＤＤを、シーケンスコマンド格納メモリ１１４、第１のアドレス管理部１０１ａ、第２のアドレス管理部１０１ｂ及び第３のアドレス管理部１０１ｃに出力する。シーケンスコマンド格納メモリ１１４は、「６」番地のアドレスＡＤＤを入力すると、「６」番地のアドレスＡＤＤに格納されている「Ｂ処理−２」のコマンドＣＭＤを、並列処理ビット抽出部１１５、第１のアドレス管理部１０１ａ、第２のアドレス管理部１０１ｂ及び第３のアドレス管理部１０１ｃに出力する。並列処理ビット抽出部１１５は、ハイレベルの並列処理実行指示信号ＰＡＬ１及び並列処理区間通知信号ＰＡＬ２を維持する。
【００３３】
次に、処理シーケンス管理部１１１は、並列処理区間通知信号ＰＡＬ２がハイレベルのままであるので、論理和回路１１６が出力する処理終了通知にかかわらずに、アドレス制御部１１３によりアドレスＡＤＤをインクリメントし、次の「７」番地のアドレスＡＤＤを、シーケンスコマンド格納メモリ１１４、第１のアドレス管理部１０１ａ、第２のアドレス管理部１０１ｂ及び第３のアドレス管理部１０１ｃに出力する。シーケンスコマンド格納メモリ１１４は、「７」番地のアドレスＡＤＤを入力すると、「７」番地のアドレスＡＤＤに格納されている「Ｃ処理−２」のコマンドＣＭＤを、並列処理ビット抽出部１１５、第１のアドレス管理部１０１ａ、第２のアドレス管理部１０１ｂ及び第３のアドレス管理部１０１ｃに出力する。並列処理ビット抽出部１１５は、ハイレベルの並列処理実行指示信号ＰＡＬ１及び並列処理区間通知信号ＰＡＬ２を維持する。
【００３４】
次に、処理シーケンス管理部１１１は、並列処理区間通知信号ＰＡＬ２がハイレベルのままであるので、論理和回路１１６が出力する処理終了通知にかかわらずに、アドレス制御部１１３によりアドレスＡＤＤをインクリメントし、次の「８」番地のアドレスＡＤＤを、シーケンスコマンド格納メモリ１１４、第１のアドレス管理部１０１ａ、第２のアドレス管理部１０１ｂ及び第３のアドレス管理部１０１ｃに出力する。シーケンスコマンド格納メモリ１１４は、「８」番地のアドレスＡＤＤを入力すると、「８」番地のアドレスＡＤＤに格納されている「Ａ処理−４」のコマンドＣＭＤ及び並列処理終了ビットを、並列処理ビット抽出部１１５、第１のアドレス管理部１０１ａ、第２のアドレス管理部１０１ｂ及び第３のアドレス管理部１０１ｃに出力する。並列処理ビット抽出部１１５は、シーケンスコマンド格納メモリ１１４から並列処理終了ビットを入力すると、並列処理区間通知信号ＰＡＬ２をハイレベルからローレベルに変化させ、並列処理実行指示信号ＰＡＬ１のハイレベルを維持する。
【００３５】
処理シーケンス管理部１１１内の並列処理区間保存部１１２は、並列処理区間通知信号ＰＡＬ２がハイレベルからローレベルに変化すると、現在の「８」番地のアドレスＡＤＤが並列処理終了ビットのアドレスである旨を保存する。
【００３６】
処理シーケンス管理部１１１は、並列処理区間通知信号ＰＡＬ２がローレベルになると、アドレスＡＤＤの出力を停止し、シーケンスコマンド格納メモリ１１４の読み出しも停止される。
【００３７】
上記のように、処理シーケンス管理部１１１は、「２」番地の並列処理開始ビットが存在するコマンドＣＭＤから「８」番地の並列処理終了ビットが存在するコマンドＣＭＤまでのシーケンスコマンドを連続してシーケンスコマンド格納メモリ１１４から読み出す。
【００３８】
次に、並列処理実行指示信号ＰＡＬ１及び並列処理区間通知信号ＰＡＬ２がハイレベルである場合のアドレス管理部１０１ａ，１０１ｂ，１０１ｃの処理を説明する。図３（Ａ）に示すように、上記のように、「２」番地から「８」番地までのシーケンスコマンドが連続してシーケンスコマンド格納メモリ１１４から供給される。最終アドレスフラグ１０３ａ，１０３ｂ，１０３ｃは、オフに初期化されている。
【００３９】
まず、図３（Ｂ）に示すように、「２」番地のコマンドＣＭＤ及び並列処理開始ビットが、第１のアドレス管理部１０１ａ、第２のアドレス管理部１０１ｂ及び第３のアドレス管理部１０１ｃに供給される。
【００４０】
次に、図３（Ｃ）に示すように、第１のアドレス管理部１０１ａは、供給された「２」番地の「Ａ処理−２」のコマンドＣＭＤがＡ処理のコマンドＣＭＤａのコードであると判断し、「２」番地のアドレスＡＤＤを第１の実行アドレス１０２ａとして記録し、「Ａ処理−２」のコマンドＣＭＤをＡ処理のコマンドＣＭＤａとして第１の処理実行部１０４ａに供給し、実行指示ＩＮＳを第１の処理実行部１０４ａに供給することによりコマンドＣＭＤａの実行を指示する。すると、第１の処理実行部１０４ａは、「Ａ処理−２」のコマンドＣＭＤａの実行を開始する。第１の実行アドレス１０２ａは、第１の処理実行部１０４ａが実行中のコマンドＣＭＤのアドレスＡＤＤを示す。
【００４１】
第２のアドレス管理部１０１ｂは、供給された「２」番地の「Ａ処理−２」のコマンドＣＭＤがＢ処理のコマンドＣＭＤｂのコードではないと判断し、第２の処理実行部１０４ｂにコマンドＣＭＤの実行を指示しない。
【００４２】
同様に、第３のアドレス管理部１０１ｃは、供給された「２」番地の「Ａ処理−２」のコマンドＣＭＤがＣ処理のコマンドＣＭＤｃのコードではないと判断し、第３の処理実行部１０４ｃにコマンドＣＭＤの実行を指示しない。
【００４３】
次に、図４（Ａ）に示すように、「３」番地のコマンドＣＭＤが、第１のアドレス管理部１０１ａ、第２のアドレス管理部１０１ｂ及び第３のアドレス管理部１０１ｃに供給される。
【００４４】
次に、図４（Ｂ）に示すように、第１のアドレス管理部１０１ａは、第１の処理実行部１０４ａが実行中であるので、供給された「３」番地のコマンドＣＭＤを参照し、実行中である「２」番地の「Ａ処理−２」のコマンドＣＭＤが、「２」番地の並列処理開始ビットが存在するコマンドＣＭＤから「８」番地の並列処理終了ビットが存在するコマンドＣＭＤまでの中でＡ処理の最後のコマンドであるか否かを判断する。具体的には、「３」番地の「Ｂ処理−１」のコマンドＣＭＤがＡ処理のコマンドＣＭＤａのコードではなく、かつ並列処理終了ビットではないので、上記の実行中のコマンドが最後のコマンドか否か判断できず、第１の最終アドレスフラグ１０３ａをオフのままにしておく。
【００４５】
第２のアドレス管理部１０１ｂは、供給された「３」番地の「Ｂ処理−１」のコマンドＣＭＤがＢ処理のコマンドＣＭＤｂのコードであると判断し、「３」番地のアドレスＡＤＤを第２の実行アドレス１０２ｂとして記録し、「Ｂ処理−１」のコマンドＣＭＤをＢ処理のコマンドＣＭＤｂとして第２の処理実行部１０４ｂに供給し、実行指示ＩＮＳを第２の処理実行部１０４ｂに供給することによりコマンドＣＭＤｂの実行を指示する。すると、第２の処理実行部１０４ｂは、「Ｂ処理−１」のコマンドＣＭＤｂの実行を開始する。第２の実行アドレス１０２ｂは、第２の処理実行部１０４ｂが実行中のコマンドＣＭＤのアドレスＡＤＤを示す。
【００４６】
第３のアドレス管理部１０１ｃは、供給された「３」番地の「Ｂ処理−１」のコマンドＣＭＤがＣ処理のコマンドＣＭＤｃのコードではないと判断し、第３の処理実行部１０４ｃにコマンドＣＭＤの実行を指示しない。
【００４７】
次に、図４（Ｃ）に示すように、「４」番地のコマンドＣＭＤが、第１のアドレス管理部１０１ａ、第２のアドレス管理部１０１ｂ及び第３のアドレス管理部１０１ｃに供給される。
【００４８】
次に、図４（Ｄ）に示すように、第１のアドレス管理部１０１ａは、第１の処理実行部１０４ａが実行中であるので、上記と同様に、「４」番地の「Ｃ処理−１」のコマンドＣＭＤがＡ処理のコマンドＣＭＤａのコードではなく、かつ並列処理終了ビットではないので、上記の実行中のコマンドが最後のコマンドか否か判断できず、第１の最終アドレスフラグ１０３ａをオフのままにしておく。
【００４９】
同様に、第２のアドレス管理部１０１ｂは、第２の処理実行部１０４ｂが実行中であるので、上記と同様に、「４」番地の「Ｃ処理−１」のコマンドＣＭＤがＢ処理のコマンドＣＭＤｂのコードではなく、かつ並列処理終了ビットではないので、上記の実行中のコマンドが最後のコマンドか否か判断できず、第２の最終アドレスフラグ１０３ｂをオフのままにしておく。
【００５０】
第３のアドレス管理部１０１ｃは、供給された「４」番地の「Ｃ処理−１」のコマンドＣＭＤがＣ処理のコマンドＣＭＤｃのコードであると判断し、「４」番地のアドレスＡＤＤを第３の実行アドレス１０２ｃとして記録し、「Ｃ処理−１」のコマンドＣＭＤをＣ処理のコマンドＣＭＤｃとして第３の処理実行部１０４ｃに供給し、実行指示ＩＮＳを第３の処理実行部１０４ｃに供給することによりコマンドＣＭＤｃの実行を指示する。すると、第３の処理実行部１０４ｃは、「Ｃ処理−１」のコマンドＣＭＤｃの実行を開始する。第３の実行アドレス１０２ｃは、第３の処理実行部１０４ｃが実行中のコマンドＣＭＤのアドレスＡＤＤを示す。
【００５１】
次に、図５（Ａ）に示すように、「５」番地のコマンドＣＭＤが、第１のアドレス管理部１０１ａ、第２のアドレス管理部１０１ｂ及び第３のアドレス管理部１０１ｃに供給される。
【００５２】
次に、図５（Ｂ）に示すように、第１のアドレス管理部１０１ａは、第１の処理実行部１０４ａが実行中であるので、「５」番地の「Ａ処理−３」のコマンドＣＭＤがＡ処理のコマンドＣＭＤａのコードであると判断し、並列処理終了フラグが存在する「８」番地のアドレスまでにＡ処理のコマンドが存在するので、第１の処理実行部１０４ａが実行中のコマンドが最後のコマンドでないと判断し、第１の最終アドレスフラグ１０３ａのオフを確定させる。
【００５３】
第２のアドレス管理部１０１ｂは、第２の処理実行部１０４ｂが実行中であるので、上記と同様に、「５」番地の「Ａ処理−３」のコマンドＣＭＤがＢ処理のコマンドＣＭＤｂのコードではなく、かつ並列処理終了ビットではないので、上記の実行中のコマンドが最後のコマンドか否か判断できず、第２の最終アドレスフラグ１０３ｂをオフのままにしておく。
【００５４】
同様に、第３のアドレス管理部１０１ｂは、第３の処理実行部１０４ｃが実行中であるので、「５」番地の「Ａ処理−３」のコマンドＣＭＤがＣ処理のコマンドＣＭＤｃのコードではなく、かつ並列処理終了ビットではないので、上記の実行中のコマンドが最後のコマンドか否か判断できず、第３の最終アドレスフラグ１０３ｃをオフのままにしておく。
【００５５】
次に、「６」番地のコマンドＣＭＤが、第１のアドレス管理部１０１ａ、第２のアドレス管理部１０１ｂ及び第３のアドレス管理部１０１ｃに供給され、上記と同様の処理が行われる。第２のアドレス管理部１０１ｂは、第２の処理実行部１０４ｂが実行中であるので、「６」番地の「Ｂ処理−２」のコマンドＣＭＤがＢ処理のコマンドＣＭＤｂのコードであると判断し、並列処理終了フラグが存在する「８」番地のアドレスまでにＢ処理のコマンドが存在するので、第２の処理実行部１０４ｂが実行中のコマンドが最後のコマンドでないと判断し、第２の最終アドレスフラグ１０３ｂのオフを確定させる。
【００５６】
次に、「７」番地のコマンドＣＭＤが、第１のアドレス管理部１０１ａ、第２のアドレス管理部１０１ｂ及び第３のアドレス管理部１０１ｃに供給され、上記と同様の処理が行われる。第３のアドレス管理部１０１ｃは、第３の処理実行部１０４ｃが実行中であるので、「７」番地の「Ｃ処理−２」のコマンドＣＭＤがＣ処理のコマンドＣＭＤｃのコードであると判断し、並列処理終了フラグが存在する「８」番地のアドレスまでにＣ処理のコマンドが存在するので、第３の処理実行部１０４ｃが実行中のコマンドが最後のコマンドでないと判断し、第３の最終アドレスフラグ１０３ｃのオフを確定させる。
【００５７】
次に、図５（Ｃ）に示すように、「８」番地のコマンドＣＭＤ及び並列処理終了ビットが、第１のアドレス管理部１０１ａ、第２のアドレス管理部１０１ｂ及び第３のアドレス管理部１０１ｃに供給され、上記と同様の処理が行われる。第１のアドレス管理部１０１ａは、上記のように、第１の処理実行部１０４ａが実行中の「２」番地のコマンドが最後のコマンドでないので、第１の最終アドレスフラグ１０３ａをオフのままにしておく。同様に、第２のアドレス管理部１０１ｂは、上記のように、第２の処理実行部１０４ｂが実行中の「３」番地のコマンドが最後のコマンドでないので、第２の最終アドレスフラグ１０３ｂをオフのままにしておく。同様に、第３のアドレス管理部１０１ｃは、上記のように、第３の処理実行部１０４ｃが実行中の「４」番地のコマンドが最後のコマンドでないので、第３の最終アドレスフラグ１０３ｃをオフのままにしておく。
【００５８】
これにより、３個の処理実行部１０４ａ，１０４ｂ，１０４ｃの並列処理が行われる。その後、並列処理装置は、処理実行部１０４ａ，１０４ｂ，１０４ｃのいずれかのコマンド実行が終了するまで待機する。
【００５９】
次に、図６（Ａ）に示すように、第２の処理実行部１０４ｂは、コマンド実行を終了すると、終了通知ＣＭＰを第２のアドレス管理部１０１ｂに出力する。第２のアドレス管理部１０１ｂは、終了通知ＣＭＰを入力すると、ハイレベルの処理終了通知ＣＭＰＡｂを出力する。なお、第１の処理実行部１０４ａ及び第３の処理実行部１０４ｂは、コマンド実行中である。論理和回路１１６は、処理終了通知ＣＭＰＡａ、ＣＭＰＡｂ及びＣＭＰＡｃの論理和信号を出力する。この場合、論理和回路１１６は、ハイレベルの処理終了通知ＣＭＰＡｂを入力すると、ハイレベルの処理終了通知を処理シーケンス管理部１１１に出力する。すると、処理シーケンス管理部１１１は、並列処理区間保存部１１２が記録した並列処理開始ビットが存在する「２」番地から並列処理終了ビットが存在する「８」番地までのアドレスＡＤＤを、上記と同様に、再び連続して出力する。すると、それに対応し、シーケンスコマンド格納メモリ１１４は、上記と同様に、「２」番地のコマンドＣＭＤ（並列処理開始ビットを含む）から「８」番地のコマンドＣＭＤ（並列処理終了ビットを含む）までを連続して再び出力する。
【００６０】
第１のアドレス管理部１０１ａは、第１の処理実行部１０４ａがコマンド実行中であるので、新たなコマンド実行を指示しない。
【００６１】
第２のアドレス管理部１０１ｂは、第２の処理実行部１０４ｂから終了通知ＣＭＰを入力しているので、第２の実行アドレス１０２ｂの「３」番地より後のアドレスＡＤＤから順にコマンドを参照する。第２のアドレス管理部１０１ｂは、「４」番地の「Ｃ処理−１」のコマンドＣＭＤがＢ処理のコマンドＣＭＤｂのコードではないと判断する。次に、第２のアドレス管理部１０１ｂは、「５」番地の「Ａ処理−３」のコマンドＣＭＤがＢ処理のコマンドＣＭＤｂのコードではないと判断する。次に、図６（Ｂ）に示すように、第２のアドレス管理部１０１ｂは、「６」番地の「Ｂ処理−２」のコマンドＣＭＤがＢ処理のコマンドＣＭＤｂのコードであると判断し、「６」番地のアドレスＡＤＤを第２の実行アドレス１０２ｂとして記録し、「Ｂ処理−２」のコマンドＣＭＤをＢ処理のコマンドＣＭＤｂとして第２の処理実行部１０４ｂに供給し、実行指示ＩＮＳを第２の処理実行部１０４ｂに供給することによりコマンドＣＭＤｂの実行を指示する。すると、第２の処理実行部１０４ｂは、「Ｂ処理−２」のコマンドＣＭＤｂの実行を開始する。次に、第２のアドレス管理部１０１ｂは、第２の処理実行部１０４ｂが実行中であるので、上記と同様に、「７」番地の「Ｃ処理−２」のコマンドＣＭＤがＢ処理のコマンドＣＭＤｂのコードではなく、かつ並列処理終了ビットではないので、上記の実行中のコマンドが最後のコマンドか否か判断できず、第２の最終アドレスフラグ１０３ｂをオフのままにしておく。次に、第２のアドレス管理部１０１ｂは、「８」番地の「Ａ処理−４」のコマンドＣＭＤがＢ処理のコマンドＣＭＤｂのコードではないと判断する。また、第２のアドレス管理部１０１ｂは、「８」番地の並列処理終了ビットを入力すると、第２の処理実行部１０４ｂが実行中の「６」番地のコマンドが最後のコマンドであると判断し、第２の最終アドレスフラグ１０３ｂをオンに書き換える。
【００６２】
第３のアドレス管理部１０１ｃは、第３の処理実行部１０４ｃがコマンド実行中であるので、新たなコマンド実行を指示しない。
【００６３】
これにより、３個の処理実行部１０４ａ，１０４ｂ，１０４ｃの並列処理が行われる。その後、並列処理装置は、処理実行部１０４ａ，１０４ｂ，１０４ｃのいずれかのコマンド実行が終了するまで待機する。
【００６４】
次に、図７（Ａ）に示すように、第１の処理実行部１０４ａは、コマンド実行を終了すると、終了通知ＣＭＰを第１のアドレス管理部１０１ａに出力し、第３の処理実行部１０４ｃは、コマンド実行を終了すると、終了通知ＣＭＰを第３のアドレス管理部１０１ｃに出力する。なお、第２の処理実行部１０４ｂは、コマンド実行中である。第１のアドレス管理部１０１ａは、終了通知ＣＭＰを入力すると、ハイレベルの処理終了通知ＣＭＰＡａを出力する。第３のアドレス管理部１０１ｃは、終了通知ＣＭＰを入力すると、ハイレベルの処理終了通知ＣＭＰＡｃを出力する。論理和回路１１６は、ハイレベルの処理終了通知ＣＭＰＡａ及びＣＭＰＡｃを入力すると、ハイレベルの処理終了通知を処理シーケンス管理部１１１に出力する。すると、処理シーケンス管理部１１１は、並列処理区間保存部１１２が記録した並列処理開始ビットが存在する「２」番地から並列処理終了ビットが存在する「８」番地までのアドレスＡＤＤを、上記と同様に、再び連続して出力する。すると、それに対応し、シーケンスコマンド格納メモリ１１４は、上記と同様に、「２」番地のコマンドＣＭＤ（並列処理開始ビットを含む）から「８」番地のコマンドＣＭＤ（並列処理終了ビットを含む）までを連続して再び出力する。
【００６５】
次に、第１のアドレス管理部１０１ａは、第１の処理実行部１０４ｂから終了通知ＣＭＰを入力しているので、第１の実行アドレス１０２ａの「２」番地より後のアドレスＡＤＤから順にコマンドを参照する。第１のアドレス管理部１０１ａは、「３」番地の「Ｂ処理−１」のコマンドＣＭＤがＡ処理のコマンドＣＭＤａのコードではないと判断する。次に、第１のアドレス管理部１０１ａは、「４」番地の「Ｃ処理−１」のコマンドＣＭＤがＡ処理のコマンドＣＭＤａのコードではないと判断する。次に、第１のアドレス管理部１０１ａは、図７（Ｂ）に示すように、「５」番地の「Ａ処理−３」のコマンドＣＭＤがＡ処理のコマンドＣＭＤａのコードであると判断し、「５」番地のアドレスＡＤＤを第１の実行アドレス１０２ａとして記録し、「Ａ処理−３」のコマンドＣＭＤをＡ処理のコマンドＣＭＤａとして第１の処理実行部１０４ａに供給し、実行指示ＩＮＳを第１の処理実行部１０４ａに供給することによりコマンドＣＭＤａの実行を指示する。すると、第１の処理実行部１０４ａは、「Ａ処理−３」のコマンドＣＭＤａの実行を開始する。次に、第１のアドレス管理部１０１ａは、第１の処理実行部１０４ａが実行中であるので、上記と同様に、「６」番地の「Ｂ処理−２」のコマンドＣＭＤがＡ処理のコマンドＣＭＤａのコードではなく、かつ並列処理終了ビットではないので、上記の実行中のコマンドが最後のコマンドか否か判断できず、第１の最終アドレスフラグ１０３ａをオフのままにしておく。次に、第１のアドレス管理部１０１ａは、「７」番地の「Ｃ処理−２」のコマンドＣＭＤがＡ処理のコマンドＣＭＤａのコードではなく、かつ並列処理終了ビットではないので、上記の実行中のコマンドが最後のコマンドか否か判断できず、第１の最終アドレスフラグ１０３ａをオフのままにしておく。次に、第１のアドレス管理部１０１ａは、「８」番地の「Ａ処理−４」のコマンドＣＭＤがＡ処理のコマンドＣＭＤａのコードであると判断し、並列処理終了フラグが存在する「８」番地のアドレスまでにＡ処理のコマンドが存在するので、第１の処理実行部１０４ａが実行中のコマンドが最後のコマンドでないと判断し、第１の最終アドレスフラグ１０３ａのオフを確定させる。
【００６６】
第２のアドレス管理部１０１ｂは、第２の処理実行部１０４ｂがコマンド実行中であるので、新たなコマンド実行を指示しない。
【００６７】
次に、第３のアドレス管理部１０１ｃは、第３の処理実行部１０４ｃから終了通知ＣＭＰを入力しているので、第３の実行アドレス１０２ｃの「４」番地より後のアドレスＡＤＤから順にコマンドを参照する。第３のアドレス管理部１０１ｃは、「５」番地の「Ａ処理−３」のコマンドＣＭＤがＣ処理のコマンドＣＭＤｃのコードではないと判断する。次に、第３のアドレス管理部１０１ｃは、「６」番地の「Ｂ処理−２」のコマンドＣＭＤがＣ処理のコマンドＣＭＤｃのコードではないと判断する。次に、第３のアドレス管理部１０１ｃは、「７」番地の「Ｃ処理−２」のコマンドＣＭＤがＣ処理のコマンドＣＭＤｃのコードであると判断し、「７」番地のアドレスＡＤＤを第３の実行アドレス１０２ｃとして記録し、「Ｃ処理−２」のコマンドＣＭＤをＣ処理のコマンドＣＭＤｃとして第３の処理実行部１０４ｃに供給し、実行指示ＩＮＳを第３の処理実行部１０４ｃに供給することによりコマンドＣＭＤｃの実行を指示する。すると、第３の処理実行部１０４ｃは、「Ｃ処理−２」のコマンドＣＭＤｃの実行を開始する。次に、第３のアドレス管理部１０１ｃは、第３の処理実行部１０４ｃが実行中であるので、上記と同様に、「８」番地の「Ａ処理−４」のコマンドＣＭＤがＣ処理のコマンドＣＭＤｃのコードではなく、かつその後に並列処理終了ビットが存在するので、第３の処理実行部１０４ｃが実行中の「Ｃ処理−２」のコマンドが最後のコマンドであると判断し、第３の最終アドレスフラグ１０３ｃをオフからオンに書き換える。
【００６８】
これにより、３個の処理実行部１０４ａ，１０４ｂ，１０４ｃの並列処理が行われる。その後、並列処理装置は、処理実行部１０４ａ，１０４ｂ，１０４ｃのいずれかのコマンド実行が終了するまで待機する。
【００６９】
次に、図８（Ａ）に示すように、第１の処理実行部１０４ａは、コマンド実行を終了すると、終了通知ＣＭＰを第１のアドレス管理部１０１ａに出力し、第２の処理実行部１０４ｂは、コマンド実行を終了すると、終了通知ＣＭＰを第２のアドレス管理部１０１ｂに出力し、第３の処理実行部１０４ｃは、コマンド実行を終了すると、終了通知ＣＭＰを第３のアドレス管理部１０１ｃに出力する。第１のアドレス管理部１０１ａは、終了通知ＣＭＰを入力すると、第１の最終アドレスフラグ１０３ａがオフであるので、ハイレベルの処理終了通知ＣＭＰＡａを出力する。第２のアドレス管理部１０１ｂは、終了通知ＣＭＰを入力すると、第２の最終アドレスフラグ１０３ｂがオンであるので、ハイレベルの最終処理終了通知ＣＭＰＺｂを出力し、第２の最終アドレスフラグ１０３ｂをオフに書き換える。第３のアドレス管理部１０１ｃは、終了通知ＣＭＰを入力すると、第２の最終アドレスフラグ１０３ｂがオンであるので、ハイレベルの最終処理終了通知ＣＭＰＺｃを出力し、第３の最終アドレスフラグ１０３ｃをオフに書き換える。論理和回路１１６は、ハイレベルの処理終了通知ＣＭＰＡａを入力すると、ハイレベルの処理終了通知を処理シーケンス管理部１１１に出力する。すると、処理シーケンス管理部１１１は、並列処理区間保存部１１２が記録した並列処理開始ビットが存在する「２」番地から並列処理終了ビットが存在する「８」番地までのアドレスＡＤＤを、上記と同様に、再び連続して出力する。すると、それに対応し、シーケンスコマンド格納メモリ１１４は、上記と同様に、「２」番地のコマンドＣＭＤ（並列処理開始ビットを含む）から「８」番地のコマンドＣＭＤ（並列処理終了ビットを含む）までを連続して再び出力する。
【００７０】
なお、論理積（ＡＮＤ）回路１１７は、最終処理終了通知ＣＭＰＺａ、ＣＭＰＺｂ及びＣＭＰＺｃの論理積信号を出力する。この場合、最終処理終了通知ＣＭＰＺｂ及びＣＭＰＺｃがハイレベルであるが、最終処理終了通知ＣＭＰＺａがローレベルであるので、論理積回路１１７は、ローレベルの最終処理終了通知を出力する。
【００７１】
次に、第１のアドレス管理部１０１ａは、第１の処理実行部１０４ａから終了通知ＣＭＰを入力しているので、第１の実行アドレス１０２ｃの「５」番地より後のアドレスＡＤＤから順にコマンドを参照する。第１のアドレス管理部１０１ａは、「６」番地の「Ｂ処理−２」のコマンドＣＭＤがＡ処理のコマンドＣＭＤａのコードではないと判断する。次に、第１のアドレス管理部１０１ａは、「７」番地の「Ｃ処理−２」のコマンドＣＭＤがＡ処理のコマンドＣＭＤａのコードではないと判断する。次に、図８（Ｂ）に示すように、第１のアドレス管理部１０１ａは、「８」番地の「Ａ処理−４」のコマンドＣＭＤがＡ処理のコマンドＣＭＤａのコードであると判断し、「８」番地のアドレスＡＤＤを第１の実行アドレス１０２ａとして記録し、「Ａ処理−４」のコマンドＣＭＤをＡ処理のコマンドＣＭＤａとして第１の処理実行部１０４ａに供給し、実行指示ＩＮＳを第１の処理実行部１０４ａに供給することによりコマンドＣＭＤａの実行を指示する。すると、第１の処理実行部１０４ａは、「Ａ処理−４」のコマンドＣＭＤａの実行を開始する。次に、第１のアドレス管理部１０１ａは、「８」番地の並列処理終了ビットを入力すると、第１の処理実行部１０４ａが実行中の「Ａ処理−４」のコマンドが最後のコマンドであると判断し、第１の最終アドレスフラグ１０３ａをオフからオンに書き換える。
【００７２】
その後、並列処理装置は、第１の処理実行部１０４ａのコマンド実行が終了するまで待機する。
【００７３】
次に、図９に示すように、第１の処理実行部１０４ａは、コマンド実行を終了すると、終了通知ＣＭＰを第１のアドレス管理部１０１ａに出力する。第１のアドレス管理部１０１ａは、終了通知ＣＭＰを入力すると、第１の最終アドレスフラグ１０３ａがオンであるので、ハイレベルの最終処理終了通知ＣＭＰＺａを出力し、第１の最終アドレスフラグ１０３ａをオフに書き換える。論理積回路１１７は、ハイレベルの最終処理終了通知ＣＭＰＺａ、ＣＭＰＺｂ及びＣＭＰＺｃを入力すると、ハイレベルの最終処理終了通知を並列処理ビット抽出部１１５に出力する。すると、並列処理ビット抽出部１１５は、ローレベルの並列処理実行指示信号ＰＡＬ１を、処理シーケンス管理部１１１及びアドレス管理部１０１ａ，１０１ｂ，１０１ｃに出力する。すると、処理シーケンス管理部１１１及びアドレス管理部１０１ａ，１０１ｂ，１０１ｃは、並列処理の制御を終了し、上記の「１」番地のアドレスＡＤＤと同様の処理を行う。
【００７４】
すなわち、処理シーケンス管理部１１１は、並列処理実行指示信号ＰＡＬ１がローレベルであるので、アドレス制御部１１３によりアドレスＡＤＤをインクリメントし、次の「９」番地のアドレスＡＤＤを出力する。シーケンスコマンド格納メモリ１１４は、「９」番地のアドレスＡＤＤを入力すると、「９」番地のアドレスＡＤＤに格納されている「Ｂ処理−３」のコマンドＣＭＤを、並列処理ビット抽出部１１５及びアドレス管理部１０１ａ，１０１ｂ，１０１ｃに出力する。並列処理ビット抽出部１１５は、シーケンスコマンド格納メモリ１１４から並列処理開始ビット又は並列処理終了ビットを入力しないので、並列処理実行指示信号ＰＡＬ１及び並列処理区間通知信号ＰＡＬ２をローレベルのままにする。
【００７５】
第１のアドレス管理部１０１ａは、入力した「９」番地の「Ｂ処理−３」のコマンドＣＭＤがＡ処理のコマンドＣＭＤａのコードではないと判定し、コマンド実行を第１の処理実行部１０４ａに指示しない。
【００７６】
第２のアドレス管理部１０１ｂは、入力した「９」番地の「Ｂ処理−３」のコマンドＣＭＤがＢ処理のコマンドＣＭＤｂのコードであると判定し、そのコマンドＣＭＤをＢ処理のコマンドＣＭＤｂとして第２の処理実行部１０４ｂに供給し、実行指示ＩＮＳを第２の処理実行部１０４ｂに供給することにより第２の処理実行部１０４ｂにコマンドＣＭＤｂの実行を指示する。すると、第２の処理実行部１０４ｂは、コマンドＣＭＤｂの実行を開始する。
【００７７】
第３のアドレス管理部１０１ｃは、入力した「９」番地の「Ｂ処理−３」のコマンドＣＭＤがＣ処理のコマンドＣＭＤｃのコードではないと判定し、コマンド実行を第３の処理実行部１０４ｃに指示しない。
【００７８】
第２の処理実行部１０４ｂは、コマンドＣＭＤｂの実行を終了すると、終了通知ＣＭＰを第２のアドレス管理部１０１ｂに出力する。すると、第２のアドレス管理部１０１ｂは、ハイレベルの処理終了通知ＣＭＰＡｂを出力する。すると、論理和回路１１６は、ハイレベルの処理終了通知を出力する。
【００７９】
すると、処理シーケンス管理部１１１は、並列処理実行指示信号ＰＡＬ１がローレベルであるので、アドレス制御部１１３によりアドレスＡＤＤをインクリメントし、「１０」番地のアドレスＡＤＤを出力する。シーケンスコマンド格納メモリ１１４は、「１０」番地のアドレスＡＤＤを入力すると、「１０」番地のアドレスＡＤＤに格納されているコマンドＣＭＤを出力する。以下、上記と同様の処理を繰り返す。
【００８０】
なお、本実施形態では、アドレス管理部１０１ａ，１０１ｂ，１０１ｃ及び処理実行部１０４ａ，１０４ｂ，１０４ｃの組みが３組存在する場合を例に説明したが、２組でもよいし、４組以上でもよい。アドレス管理部１０１ａ，１０１ｂ，１０１ｃ及び処理実行部１０４ａ，１０４ｂ，１０４ｃの組みは２組以上あればよい。
【００８１】
以上のように、処理シーケンス管理部１１１は、並列処理実行指示信号ＰＡＬ１がハイレベルのときには、「２」番地の並列処理開始ビットに対応付けられたコマンドから「８」番地の並列処理終了ビットに対応付けられたコマンドまでのシーケンスコマンドをシーケンスコマンド格納メモリ１１４から連続して読み出して第１のアドレス管理部１０１ａ、第２のアドレス管理部１０１ｂ及び第３のアドレス管理部１０１ｃに出力させる。
【００８２】
第１のアドレス管理部１０１ａは、シーケンスコマンド格納メモリ１１４から読み出されたシーケンスコマンドを先頭から順に参照し、第１の処理実行部１０４ａが実行するコマンドを見つけるとそのコマンドの実行を第１の処理実行部１０４ａに指示する。
【００８３】
第２のアドレス管理部１０１ｂは、シーケンスコマンド格納メモリ１１４から読み出されたシーケンスコマンドを先頭から順に参照し、第２の処理実行部１０４ｂが実行するコマンドを見つけるとそのコマンドの実行を第２の処理実行部１０４ｂに指示する。
【００８４】
第３のアドレス管理部１０１ｃは、シーケンスコマンド格納メモリ１１４から読み出されたシーケンスコマンドを先頭から順に参照し、第３の処理実行部１０４ｃが実行するコマンドを見つけるとそのコマンドの実行を第３の処理実行部１０４ｃに指示する。
【００８５】
処理シーケンス管理部１１１は、第１の処理実行部１０４ａ、第２の処理実行部１０４ｂ又は第３の処理実行部１０４ｃがコマンドの実行を終了すると、論理和回路１１６からハイレベルの処理終了通知を入力し、再び、「２」番地の並列処理開始ビットに対応付けられたコマンドから「８」番地の並列処理終了ビットに対応付けられたコマンドまでのシーケンスコマンドをシーケンスコマンド格納メモリ１１４から連続して読み出して第１のアドレス管理部１０４ａ、第２のアドレス管理部１０４ｂ及び第３のアドレス管理部１０４ｃに出力させる。
【００８６】
第１のアドレス管理部１０１ａは、第１の処理実行部１０４ａのコマンドの実行が終了すると、その実行が終了したコマンドのアドレスより後のアドレスから順に、シーケンスコマンド格納メモリ１１４から読み出されたシーケンスコマンドを参照し、第１の処理実行部１０４ａが実行するコマンドを見つけるとそのコマンドの実行を第１の処理実行部１０４ａに指示する。
【００８７】
第２のアドレス管理部１０１ｂは、第２の処理実行部１０４ｂのコマンドの実行が終了すると、その実行が終了したコマンドのアドレスより後のアドレスから順に、シーケンスコマンド格納メモリ１１４から読み出されたシーケンスコマンドを参照し、第２の処理実行部１０４ｂが実行するコマンドを見つけるとそのコマンドの実行を第２の処理実行部１０４ｂに指示する。
【００８８】
第３のアドレス管理部１０１ｃは、第３の処理実行部１０４ｃのコマンドの実行が終了すると、その実行が終了したコマンドのアドレスより後のアドレスから順に、シーケンスコマンド格納メモリ１１４から読み出されたシーケンスコマンドを参照し、第３の処理実行部１０４ｃが実行するコマンドを見つけるとそのコマンドの実行を第３の処理実行部１０４ｃに指示する。
【００８９】
第１のアドレス管理部１０１ａは、「２」番地の並列処理開始ビットに対応付けられたコマンドから「８」番地の並列処理終了ビットに対応付けられたコマンドまでのシーケンスコマンドの中で、第１の処理実行部１０４ａが実行する最後のコマンドの実行が終了すると、最後のコマンドの実行が終了した旨を示すハイレベルの最終処理終了通知ＣＭＰＺａを出力する。
【００９０】
第２のアドレス管理部１０１ｂは、「２」番地の並列処理開始ビットに対応付けられたコマンドから「８」番地の並列処理終了ビットに対応付けられたコマンドまでのシーケンスコマンドの中で、第２の処理実行部１０４ｂが実行する最後のコマンドの実行が終了すると、最後のコマンドの実行が終了した旨を示すハイレベルの最終処理終了通知ＣＭＰＺｂを出力する。
【００９１】
第３のアドレス管理部１０１ｃは、「２」番地の並列処理開始ビットに対応付けられたコマンドから「８」番地の並列処理終了ビットに対応付けられたコマンドまでのシーケンスコマンドの中で、第３の処理実行部１０４ｃが実行する最後のコマンドの実行が終了すると、最後のコマンドの実行が終了した旨を示すハイレベルの最終処理終了通知ＣＭＰＺｃを出力する。
【００９２】
第１のアドレス管理部１０１ａは、第１の処理実行部１０４ａが最後のコマンドを実行中であるか否かを示す第１の最終アドレスフラグ１０３ａを記憶する。第２のアドレス管理部１０１ｂは、第２の処理実行部１０４ｂが最後のコマンドを実行中であるか否かを示す第２の最終アドレスフラグ１０３ｂを記憶する。第３のアドレス管理部１０１ｃは、第３の処理実行部１０４ｃが最後のコマンドを実行中であるか否かを示す第３の最終アドレスフラグ１０３ｃを記憶する。
【００９３】
処理シーケンス管理部１１１は、第１のアドレス管理部１０１ａ、第２のアドレス管理部１０１ｂ及び第３のアドレス管理部１０１ｃからハイレベルの最終処理終了通知ＣＭＰＺａ、ＣＭＰＺｂ及びＣＭＰＺｃが出力されると、並列処理実行指示信号ＰＡＬ１がローレベルになり、「８」番地の並列処理終了ビットに対応付けられたコマンドの次のアドレスの「９」番地のコマンドをシーケンスコマンド格納メモリ１１４から読み出して第１のアドレス管理部１０１ａ、第２のアドレス管理部１０１ｂ及び第３のアドレス管理部１０１ｃに出力させる。
【００９４】
本実施形態によれば、第１のアドレス管理部１０１ａ、第２のアドレス管理部１０１ｂ及び第３のアドレス管理部１０１ｃがそれぞれシーケンスコマンドから自己のコマンドを見つけるので、処理シーケンス管理部１１１を小型にできる。これにより、並列処理装置は、小規模の構成で、コマンドを並列処理することができる。
【００９５】
本実施形態では、処理実行部１０４ａ，１０４ｂ，１０４ｃの実行のうちのどの実行が先に終了しても、処理シーケンス管理部１１１は同じ処理を繰り返すだけで対応できる。 また、上記では並列度が３の場合を例に説明したが、並列度の数は、処理実行部１０４ａ，１０４ｂ，１０４ｃとアドレス管理部１０１ａ，１０１ｂ，１０１ｃを必要数用意するだけで、変更することができる。また、アドレス管理部１０１ａ，１０１ｂ，１０１ｃは、実行済みのコマンドのアドレス１０２ａ，１０２ｂ，１０２ｃを基に次に受け付けるコマンドを判断するので、コマンド数に制限がない。また、本実施形態は、所定条件の下、処理速度（動作周波数）を速くすることも可能である。
【００９６】
（第２の実施形態）
図１０は、第２の実施形態による並列処理装置の構成例を示す図である。図１０の並列処理装置は、図１の並列処理装置に対して、コマンド定義表メモリ１００１及びコマンドアサイン管理部１００２が追加される。第１の実施形態では、第１の処理実行部１０４ａ、第２の処理実行部１０４ｂ及び第３の処理実行部１０４ｃが実行する処理のコマンドが固定されていた。本実施形態では、第１の処理実行部１０４ａ、第２の処理実行部１０４ｂ及び第３の処理実行部１０４ｃが実行する処理のコマンドを可変にするため、事前に処理のコマンドを割り当てることができる。以下、本実施形態が第１の実施形態と異なる点を説明する。
【００９７】
コマンド定義表メモリ１００１は、コマンド定義表ＴＢＬを記憶する。コマンド定義表ＴＢＬは、コマンドＩＤ（識別子：Identifier）毎に、コマンドの内容、及びコマンドを割り当てる処理実行部１０４ａ，１０４ｂ，１０４ｃの番号を記憶する。例えば、コマンドＩＤが「Ａ」のコマンドは、コマンド内容が「演算」であり、第１の処理実行部１０４ａに割り当てられる。コマンドＩＤが「Ｂ」のコマンドは、コマンド内容が「データ変換」であり、第２の処理実行部１０４ｂに割り当てられる。コマンドＩＤが「Ｃ」のコマンドは、コマンド内容が「通信処理」であり、第３の処理実行部１０４ｃに割り当てられる。
【００９８】
コマンドアサイン管理部１００２は、例えば並列処理装置の初期化時に、定義表アドレスＡＤ１をコマンド定義表メモリ１００１に出力する。すると、コマンド定義表メモリ１００１は、定義表アドレスＡＤ１に記憶されているコマンド定義表ＴＢＬをコマンドアサイン管理部１００２に出力する。コマンドアサイン管理部１００２は、コマンド定義表ＴＢＬを基に、第１の処理実行部１０４ａに割り当てられたコマンドのコマンドＩＤ１０１２を第１のアドレス管理部１０１ａに出力し、第２の処理実行部１０４ｂに割り当てられたコマンドのコマンドＩＤ１０１２を第２のアドレス管理部１０１ｂに出力し、第３の処理実行部１０４ｃに割り当てられたコマンドのコマンドＩＤ１０１２を第３のアドレス管理部１０１ｃに出力する。また、コマンドアサイン管理部１００２は、コマンド定義表ＴＢＬを基に、第１の処理実行部１０４ａに割り当てられたコマンドのコンフィグレーション情報１０１１を第１の処理実行部１０４ａに出力し、第２の処理実行部１０４ｂに割り当てられたコマンドのコンフィグレーション情報１０１１を第２の処理実行部１０４ｂに出力し、第３の処理実行部１０４ｃに割り当てられたコマンドコンフィグレーション情報１０１１を第３の処理実行部１０４ｃに出力する。その後、コマンドアサイン管理部１００２は、アドレス管理部１０１ａ，１０１ｂ，１０１ｃ及び処理実行部１０４ａ，１０４ｂ，１０４ｃに割り当て終了信号１０１３を出力する。
【００９９】
第１の処理実行部１０４ａは、入力したコマンドコンフィグレーション情報１０１１を第１のコマンドコンフィグレーション情報１０２２ａとして記憶し、第１のコマンドコンフィグレーション情報１０２２ａの設定により、内部回路の接続等が制御され、割り当てられたコマンドＣＭＤ１の実行が可能になる。
【０１００】
第２の処理実行部１０４ｂは、入力したコマンドコンフィグレーション情報１０１１を第２のコマンドコンフィグレーション情報１０２２ｂとして記憶し、第２のコマンドコンフィグレーション情報１０２２ｂの設定により、内部回路の接続等が制御され、割り当てられたコマンドＣＭＤ２の実行が可能になる。
【０１０１】
第３の処理実行部１０４ｃは、入力したコマンドコンフィグレーション情報１０１１を第３のコマンドコンフィグレーション情報１０２２ｃとして記憶し、第３のコマンドコンフィグレーション情報１０２２ｃの設定により、内部回路の接続等が制御され、割り当てられたコマンドＣＭＤ３の実行が可能になる。
【０１０２】
第１のアドレス管理部１０１ａは、第１のコマンドＩＤ保持部１０２１ａを有する。第１のコマンドＩＤ保持部１０２１ａは、コマンドアサイン管理部１００２から入力したコマンドＩＤ１０１２を保持する。第１のアドレス管理部１０１ａは、第１のコマンドＩＤ保持部１０２１ａにより保持されたコマンドＩＤを参照することにより、入力したコマンドが第１の処理実行部１０４ａが実行するコマンドＣＭＤ１か否かを判断することができる。第１のアドレス管理部１０１ａは、入力したコマンドが第１の処理実行部１０４ａが実行するコマンドＣＭＤ１である場合には、そのコマンドＣＭＤ１を第１の処理実行部１０４ａに供給し、そのコマンドＣＭＤ１の実行を指示する。
【０１０３】
第２のアドレス管理部１０１ｂは、第２のコマンドＩＤ保持部１０２１ｂを有する。第２のコマンドＩＤ保持部１０２１ｂは、コマンドアサイン管理部１００２から入力したコマンドＩＤ１０１２を保持する。第２のアドレス管理部１０１ｂは、第２のコマンドＩＤ保持部１０２１ｂにより保持されたコマンドＩＤを参照することにより、入力したコマンドが第２の処理実行部１０４ｂが実行するコマンドＣＭＤ２か否かを判断することができる。第２のアドレス管理部１０１ｂは、入力したコマンドが第２の処理実行部１０４ｂが実行するコマンドＣＭＤ２である場合には、そのコマンドＣＭＤ２を第２の処理実行部１０４ｂに供給し、そのコマンドＣＭＤ２の実行を指示する。
【０１０４】
第３のアドレス管理部１０１ｃは、第３のコマンドＩＤ保持部１０２１ｃを有する。第３のコマンドＩＤ保持部１０２１ｃは、コマンドアサイン管理部１００２から入力したコマンドＩＤ１０１２を保持する。第３のアドレス管理部１０１ｃは、第３のコマンドＩＤ保持部１０２１ｃにより保持されたコマンドＩＤを参照することにより、入力したコマンドが第３の処理実行部１０４ｃが実行するコマンドＣＭＤ３か否かを判断することができる。第３のアドレス管理部１０１ｃは、入力したコマンドが第３の処理実行部１０４ｃが実行するコマンドＣＭＤ３である場合には、そのコマンドＣＭＤ３を第３の処理実行部１０４ｃに供給し、そのコマンドＣＭＤ３の実行を指示する。
【０１０５】
以上のように、コマンドアサイン管理部１００２は、第１の処理実行部１０４ａが実行するコマンドを第１の処理実行部１０４ａ及び第１のアドレス管理部１０１ａに対して割り当て、第２の処理実行部１０４ｂが実行するコマンドを第２の処理実行部１０４ｂ及び第２のアドレス管理部１０１ｂに対して割り当て、第３の処理実行部１０４ｃが実行するコマンドを第３の処理実行部１０４ｃ及び第３のアドレス管理部１０１ｃに対して割り当てる。上記の割り当て終了後、第１の実施形態と同様の処理を行うことができる。
【０１０６】
本実施形態によれば、第１の処理実行部１０４ａ、第２の処理実行部１０４ｂ及び第３の処理実行部１０４ｃが実行するコマンドを任意に割り当てることができる。
【０１０７】
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【０１０８】
１０１ａ  第１のアドレス管理部
１０１ｂ  第２のアドレス管理部
１０１ｃ  第３のアドレス管理部
１０２ａ  第１の実行アドレス
１０２ｂ  第２の実行アドレス
１０２ｃ  第３の実行アドレス
１０３ａ  第１の最終アドレスフラグ
１０３ｂ  第２の最終アドレスフラグ
１０３ｃ  第３の最終アドレスフラグ
１０４ａ  第１の処理実行部
１０４ｂ  第２の処理実行部
１０４ｃ  第３の処理実行部
１１１  処理シーケンス管理部
１１２  並列処理区間保存部
１１３  アドレス制御部
１１４  シーケンスコマンド格納メモリ
１１５  並列処理ビット抽出部
１１６  論理和回路
１１７  論理積回路
【図１】
0005831316.tif 000002
【図２】
0005831316.tif 000003
【図３】
0005831316.tif 000004
【図４】
0005831316.tif 000005
【図５】
0005831316.tif 000006
【図６】
0005831316.tif 000007
【図７】
0005831316.tif 000008
【図８】
0005831316.tif 000009
【図９】
0005831316.tif 000010
【図１０】
0005831316.tif 000011