(57)【要約】【課題】割り込み処理やポーリング処理の実行を不要にして、オーバーヘッドの発生を削減することで、処理の高速化を図ることができるようにする。【解決手段】シーケンス制御部１１から発行されたパラメータをパラメータ用ＦＩＦＯレジスタ１７に書き込む書込制御手段と、パラメータ用ＦＩＦＯレジスタ１７により格納されているパラメータの中で、書込制御手段により最も先に書き込まれたパラメータを取り出して、そのパラメータを出力する読出制御手段とを設け、命令発行部２６が読出制御手段から出力されたパラメータが特定する演算命令を演算器２に発行する。【選択図】図１
2011107955.tif 000002
【特許請求の範囲】
【請求項１】
演算命令を格納している演算用命令メモリと、シーケンス制御用命令を順次実行し、上記シーケンス制御用命令が上記演算用命令メモリにより格納されている演算命令を制御対象の演算器に実行させる演算開始命令である場合、先に発行しているパラメータの書き込み完了通知が既に出力されていれば、上記演算命令を特定するパラメータを発行するシーケンス制御手段と、上記シーケンス制御手段からパラメータが発行される毎に、上記パラメータをＦＩＦＯレジスタに書き込んで、上記パラメータの書き込み完了通知を上記シーケンス制御手段に出力する書込制御手段と、既に次命令リクエストが出力されている場合、上記ＦＩＦＯレジスタにより格納されているパラメータの中で、上記書込制御手段により最も先に書き込まれたパラメータを取り出して、上記パラメータを出力する読出制御手段と、上記演算用命令メモリにより格納されている演算命令の中から、上記読出制御手段から出力されたパラメータが特定する演算命令を取得して、上記演算命令を上記演算器に発行し、上記演算命令の発行が完了すると、上記次命令リクエストを上記読出制御手段に出力する演算命令発行手段とを備えたデータ演算装置の制御回路。
【請求項２】
演算命令を格納している演算用命令メモリと、上記演算用命令メモリにより格納されている演算命令を特定するパラメータを格納している複数のパラメータ格納用レジスタと、シーケンス制御用命令を順次実行し、上記シーケンス制御用命令が上記演算用命令メモリにより格納されている演算命令を制御対象の演算器に実行させる演算開始命令である場合、先に発行しているレジスタ番号の書き込み完了通知が既に出力されていれば、上記演算命令を特定するパラメータが格納されているパラメータ格納用レジスタを示すレジスタ番号を発行するシーケンス制御手段と、上記シーケンス制御手段からレジスタ番号が発行される毎に、上記レジスタ番号をＦＩＦＯレジスタに書き込んで、上記レジスタ番号の書き込み完了通知を上記シーケンス制御手段に出力する書込制御手段と、既に次命令リクエストが出力されている場合、上記ＦＩＦＯレジスタにより格納されているレジスタ番号の中で、上記書込制御手段により最も先に書き込まれたレジスタ番号を取り出し、上記複数のパラメータ格納用レジスタのうち、上記レジスタ番号が示すパラメータ格納用レジスタにより格納されているパラメータを取得する読出制御手段と、上記演算用命令メモリにより格納されている演算命令の中から、上記読出制御手段により取得されたパラメータが特定する演算命令を取得して、上記演算命令を上記演算器に発行し、上記演算命令の発行が完了すると、上記次命令リクエストを上記読出制御手段に出力する演算命令発行手段とを備えたデータ演算装置の制御回路。
【請求項３】
発行された演算命令を実行する演算器と、演算命令を格納している演算用命令メモリと、シーケンス制御用命令を順次実行し、上記シーケンス制御用命令が上記演算用命令メモリにより格納されている演算命令を上記演算器に実行させる演算開始命令である場合、先に発行しているパラメータの書き込み完了通知が既に出力されていれば、上記演算命令を特定するパラメータを発行するシーケンス制御手段と、上記シーケンス制御手段からパラメータが発行される毎に、上記パラメータをＦＩＦＯレジスタに書き込んで、上記パラメータの書き込み完了通知を上記シーケンス制御手段に出力する書込制御手段と、既に次命令リクエストが出力されている場合、上記ＦＩＦＯレジスタにより格納されているパラメータの中で、上記書込制御手段により最も先に書き込まれたパラメータを取り出して、上記パラメータを出力する読出制御手段と、上記演算用命令メモリにより格納されている演算命令の中から、上記読出制御手段から出力されたパラメータが特定する演算命令を取得して、上記演算命令を上記演算器に発行し、上記演算命令の発行が完了すると、上記次命令リクエストを上記読出制御手段に出力する演算命令発行手段とを備えたデータ演算装置。
【請求項４】
発行された演算命令を実行する演算器と、演算命令を格納している演算用命令メモリと、上記演算用命令メモリにより格納されている演算命令を特定するパラメータを格納している複数のパラメータ格納用レジスタと、シーケンス制御用命令を順次実行し、上記シーケンス制御用命令が上記演算用命令メモリにより格納されている演算命令を上記演算器に実行させる演算開始命令である場合、先に発行しているレジスタ番号の書き込み完了通知が既に出力されていれば、上記演算命令を特定するパラメータが格納されているパラメータ格納用レジスタを示すレジスタ番号を発行するシーケンス制御手段と、上記シーケンス制御手段からレジスタ番号が発行される毎に、上記レジスタ番号をＦＩＦＯレジスタに書き込んで、上記レジスタ番号の書き込み完了通知を上記シーケンス制御手段に出力する書込制御手段と、既に次命令リクエストが出力されている場合、上記ＦＩＦＯレジスタにより格納されているレジスタ番号の中で、上記書込制御手段により最も先に書き込まれたレジスタ番号を取り出し、上記複数のパラメータ格納用レジスタのうち、上記レジスタ番号が示すパラメータ格納用レジスタにより格納されているパラメータを取得する読出制御手段と、上記演算用命令メモリにより格納されている演算命令の中から、上記読出制御手段により取得されたパラメータが特定する演算命令を取得して、上記演算命令を上記演算器に発行し、上記演算命令の発行が完了すると、上記次命令リクエストを上記読出制御手段に出力する演算命令発行手段とを備えたデータ演算装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、一連の演算命令を演算器に繰り返し実行させる制御回路と、その制御回路と演算器を実装しているデータ演算装置とに関するものである。
【背景技術】
【０００２】
アプリケーションプログラムを高速に処理する手段の一つとして、複数の演算装置を組み合わせて実行する方法がある。
複数の演算装置は、それぞれが担当する処理用のプログラムによって制御され、互いに通信を実施して同期を取りながら実行する。
このとき、一般的には、マスターとなる演算装置が、アプリケーションプログラム全体のシーケンスを管理し、その他のスレーブとなる演算装置に対して実行を指示することで全体の処理が制御される。
【０００３】
例えば、以下の特許文献１に開示されているデータ演算装置では、マスタープロセッサがメインプログラムを実行しているとき、サブプログラムの実行が必要になると、サブプログラムの開始アドレスをスレーブプロセッサに通知することで、サブプログラムの実行をスレーブプロセッサに指示する。
スレーブプロセッサは、マスタープロセッサからサブプログラムの実行指示を受けると、マスタープロセッサから通知された開始アドレスからサブプログラムの実行を開始し、サブプログラムの実行を完了すると、処理完了割り込み通知をマスタープロセッサに出力する。
マスタープロセッサは、スレーブプロセッサから処理完了割り込み通知を受けると、実行中のメインプログラムの処理を中断して、その処理完了割り込み通知に伴う割り込み処理を実行し、その割り込み処理の実行完了後に、続きのメインプログラムの処理を実行する。
【０００４】
ここで、図４は特許文献１に開示されているデータ演算装置が一つのアプリケーションプログラムの処理を実現する場合の処理タイミングを示す説明図である。
以下、メインプログラムに相当するシーケンス制御プログラムを処理する１つのマスタープロセッサを「シーケンス制御部」と称し、シーケンス制御部から出力される要求に応じてサブプログラムに相当する演算器用の制御プログラムを演算器に実行させる２つのスレーブプロセッサを「演算器制御部（１）」「演算器制御部（２）」と称する。
【０００５】
図４では、シーケンス制御部が「演算０→演算１→演算２→演算３」を実行し、演算器制御部（１）により制御される演算器が「演算Ｂ→演算Ａ→演算Ｃ」を実行し、演算器制御部（２）により制御される演算器が「演算Ｄ→演算Ｆ→演算Ｅ」を実行する例を示している。
以下、図４を参照して、シーケンス制御部及び演算器制御部（１）（２）の処理内容を具体的に説明する。
【０００６】
まず、シーケンス制御部は、「演算０」を実行して、「演算Ｂ」の実行を演算器制御部（１）に指示する。
演算器制御部（１）は、シーケンス制御部の指示の下、「演算Ｂ」の実行を開始し、「演算Ｂ」の実行が完了すると、処理完了割り込み通知をシーケンス制御部に出力する。
続いて、シーケンス制御部は、「演算１」を実行して、「演算Ｄ」の実行を演算器制御部（２）に指示する。
演算器制御部（２）は、シーケンス制御部の指示の下、「演算Ｄ」の実行を開始し、「演算Ｄ」の実行が完了すると、処理完了割り込み通知をシーケンス制御部に出力する。
【０００７】
シーケンス制御部は、演算２（演算２−１）の実行を開始し、演算２（演算２−１）の実行中に、演算器制御部（１）から処理完了割り込み通知を受けると、現在実行中の演算２（演算２−１）を中断して、「演算Ｂ」の完了割り込み処理を実行する。
このとき、シーケンス制御部は、現在実行しているプログラムの位置を示す位置情報と、レジスタ情報を図示せぬメモリに退避させてから、「演算Ｂ」の完了割り込み処理を実行し、その後、次の「演算Ａ」の実行を演算器制御部（１）に指示してから、退避させてある位置情報とレジスタ情報を中断前の状態に復帰させて、中断中の演算２（演算２−１）を実行してから、演算２（演算２−２）の実行を開始する。
【０００８】
シーケンス制御部は、演算２（演算２−２）の実行中に、演算器制御部（２）から処理完了割り込み通知を受けると、現在実行中の演算２（演算２−２）を中断して、「演算Ｄ」の完了割り込み処理を実行する。
このとき、シーケンス制御部は、現在実行しているプログラムの位置を示す位置情報と、レジスタ情報を図示せぬメモリに退避させてから、「演算Ｄ」の完了割り込み処理を実行し、その後、次の「演算Ｆ」の実行を演算器制御部（２）に指示してから、退避させてある位置情報とレジスタ情報を中断前の状態に復帰させて、中断中の演算２（演算２−２）を実行してから、演算２（演算２−３）の実行を開始する。
【０００９】
以下、同様にして、シーケンス制御部は「演算３」を実行し、演算器制御部（１）は「演算Ａ」と「演算Ｃ」を実行し、演算器制御部（２）は演算（Ｆ）と演算（Ｅ）を実行する。
このように、シーケンス制御部が、演算器制御部（１）（２）から処理完了割り込み通知を受ける毎に、その完了割り込み処理を実行する必要があるため、シーケンス制御プログラムを中断する際に、現在実行しているプログラムの位置を示す位置情報とレジスタ情報をメモリに退避させる処理や、完了割り込み処理の完了後に、退避させてある位置情報とレジスタ情報を中断前の状態に復帰させる処理などが必要になる。このため、完了割り込み処理によるサイクル数のオーバーヘッドが発生する。
【００１０】
ここでは、シーケンス制御部が演算器制御部（１）（２）から処理完了割り込み通知を受けることで、演算器制御部（１）（２）の処理が完了していることを認識するものについて示したが、シーケンス制御部がポーリング（ポーリングは、シーケンス制御部が実行するプログラムの一環として、演算器制御部の状態を監視する手法である）を用いても、演算器制御部（１）（２）の処理が完了していることを認識することができる。
図５はシーケンス制御部がポーリングを用いる場合の処理タイミングを示す説明図である。
【００１１】
図５でも図４と同様に、シーケンス制御部が「演算０→演算１→演算２→演算３」を実行し、演算器制御部（１）により制御される演算器が「演算Ｂ→演算Ａ→演算Ｃ」を実行し、演算器制御部（２）により制御される演算器が「演算Ｄ→演算Ｆ→演算Ｅ」を実行する例を示している。
以下、図５を参照して、シーケンス制御部及び演算器制御部（１）（２）の処理内容を具体的に説明する。
【００１２】
まず、シーケンス制御部は、「演算０」を実行して、「演算Ｂ」の実行を演算器制御部（１）に指示する。
演算器制御部（１）は、シーケンス制御部の指示の下、「演算Ｂ」の実行を開始する。
続いて、シーケンス制御部は、「演算１」を実行して、「演算Ｄ」の実行を演算器制御部（２）に指示する。
演算器制御部（２）は、シーケンス制御部の指示の下、「演算Ｄ」の実行を開始する。
【００１３】
シーケンス制御部は、「演算Ｄ」の実行を演算器制御部（２）に指示すると、演算器制御部（１）に対する処理完了通知のポーリングを開始し、演算器制御部（１）から出力される処理完了通知を検知すると、次の「演算Ａ」の実行を演算器制御部（１）に指示してから、「演算２」の実行を開始する。
シーケンス制御部は、「演算２」の実行が完了すると、演算器制御部（２）に対する処理完了通知のポーリングを開始し、演算器制御部（２）から出力される処理完了通知を検知すると、次の「演算Ｆ」の実行を演算器制御部（２）に指示してから、「演算３」の実行を開始する。
【００１４】
以下、同様にして、シーケンス制御部は「演算３」を実行し、演算器制御部（１）は「演算Ａ」と「演算Ｃ」を実行し、演算器制御部（２）は演算（Ｆ）と演算（Ｅ）を実行する。
【００１５】
このように、シーケンス制御部がポーリングを用いる場合、シーケンス制御部の処理が途中で中断されることがなく、位置情報とレジスタ情報の退避処理や復帰処理を実行する必要がない。
ただし、ポーリング中は、シーケンス制御部が別の処理を実行することができないため、ポーリングによるサイクル数のオーバーヘッドが発生する。
【００１６】
ここでは、シーケンス制御部が、演算器制御部（１）（２）による各演算のサイクル数が概ね把握できていることを前提としているため、各演算の終了タイミングに合わせてポーリングを実行することができるが、各演算のサイクル数を把握できていない場合、定期的にポーリングを実行して処理完了通知を検知する必要があり、ポーリングによるサイクル数のオーバーヘッドが更に増加する。
【先行技術文献】
【特許文献】
【００１７】
【特許文献１】特開２００８−７１０９３号公報（段落番号［０００７］、図１）
【発明の概要】
【発明が解決しようとする課題】
【００１８】
従来のデータ演算装置は以上のように構成されているので、シーケンス制御部が演算器制御部（１）（２）の処理が完了していることを認識する必要があり、演算器制御部（１）（２）から出力される処理完了割り込み通知によって認識する場合には、完了割り込み処理によるサイクル数のオーバーヘッドが発生し、ポーリングによって演算器制御部（１）（２）から出力される処理完了通知を検知する場合には、ポーリングによるサイクル数のオーバーヘッドが発生するなどの課題があった。
【００１９】
この発明は上記のような課題を解決するためになされたもので、割り込み処理やポーリング処理の実行を不要にして、オーバーヘッドの発生を削減することで、処理の高速化を図ることができるデータ演算装置の制御回路及びデータ演算装置を得ることを目的とする。
【課題を解決するための手段】
【００２０】
この発明に係るデータ演算装置の制御回路は、シーケンス制御用命令が演算用命令メモリにより格納されている演算命令を制御対象の演算器に実行させる演算開始命令である場合、先に発行しているパラメータの書き込み完了通知が既に出力されていれば、その演算命令を特定するパラメータを発行するシーケンス制御手段と、シーケンス制御手段からパラメータが発行される毎に、そのパラメータをＦＩＦＯレジスタに書き込んで、そのパラメータの書き込み完了通知をシーケンス制御手段に出力する書込制御手段と、既に次命令リクエストが出力されている場合、ＦＩＦＯレジスタにより格納されているパラメータの中で、書込制御手段により最も先に書き込まれたパラメータを取り出して、そのパラメータを出力する読出制御手段とを設け、演算命令発行手段が、演算用命令メモリにより格納されている演算命令の中から、読出制御手段から出力されたパラメータが特定する演算命令を取得して、その演算命令を演算器に発行し、その演算命令の発行が完了すると、次命令リクエストを読出制御手段に出力するようにしたものである。
【発明の効果】
【００２１】
この発明によれば、シーケンス制御用命令が演算用命令メモリにより格納されている演算命令を制御対象の演算器に実行させる演算開始命令である場合、先に発行しているパラメータの書き込み完了通知が既に出力されていれば、その演算命令を特定するパラメータを発行するシーケンス制御手段と、シーケンス制御手段からパラメータが発行される毎に、そのパラメータをＦＩＦＯレジスタに書き込んで、そのパラメータの書き込み完了通知をシーケンス制御手段に出力する書込制御手段と、既に次命令リクエストが出力されている場合、ＦＩＦＯレジスタにより格納されているパラメータの中で、書込制御手段により最も先に書き込まれたパラメータを取り出して、そのパラメータを出力する読出制御手段とを設け、演算命令発行手段が、演算用命令メモリにより格納されている演算命令の中から、読出制御手段から出力されたパラメータが特定する演算命令を取得して、その演算命令を演算器に発行し、その演算命令の発行が完了すると、次命令リクエストを読出制御手段に出力するように構成したので、割り込み処理やポーリング処理の実行を不要にして、オーバーヘッドの発生を削減することができるようになり、その結果、処理の高速化を図ることができる効果がある。
【図面の簡単な説明】
【００２２】
【図１】この発明の実施の形態１によるデータ演算装置を示す構成図である。
【図２】この発明の実施の形態１によるデータ演算装置の制御回路による処理タイミングを示す説明図である。
【図３】この発明の実施の形態２によるデータ演算装置を示す構成図である。
【図４】特許文献１に開示されているデータ演算装置が一つのアプリケーションプログラムの処理を実現する場合の処理タイミングを示す説明図である。
【図５】シーケンス制御部がポーリングを用いる場合の処理タイミングを示す説明図である。
【発明を実施するための形態】
【００２３】
実施の形態１．
図１はこの発明の実施の形態１によるデータ演算装置を示す構成図である。
図１において、制御回路１はシーケンス制御用のプログラムを実行することで、一連の演算命令を制御対象の演算器２に発行して、演算器２の演算結果を取得する処理を実施する。
演算器２は制御回路１から発行された演算命令を実行して、その演算命令の演算結果を制御回路１に返す処理を実施する。
図１では、２つの演算器２が制御回路１と接続されている例を示しているが、３つ以上の演算器２が制御回路１と接続されていてもよいし、演算器２が１つだけ接続されていてもよい。
【００２４】
シーケンス制御部１１はシーケンス制御用プログラム内の命令であるシーケンス制御用命令を順次実行し、そのシーケンス制御用命令がシーケンス制御部１１内の演算器１１ｂに実行させる演算命令である場合、その演算命令を演算器１１ｂに発行し、そのシーケンス制御用命令が演算用命令メモリ２４により格納されている演算命令を演算器２に実行させる演算開始命令である場合、先に発行しているパラメータの書き込み完了通知が既に書込制御部１５から出力されていれば、その演算命令を特定するパラメータを書込ＦＩＦＯ選択器１６に発行するとともに、そのパラメータの書き込み通知を書込制御部１５に出力する処理を実施する。なお、シーケンス制御部１１はシーケンス制御手段を構成している。
【００２５】
ここで、パラメータは、演算用命令メモリ２４により格納されている演算命令を特定するものであり、例えば、その演算命令が格納されている演算用命令メモリ２４内のアドレスなどが該当する。
また、演算用命令メモリ２４により格納されている一連の演算命令を演算器２に実行させる場合には、一連の演算命令の中の先頭の演算命令が格納されている演算用命令メモリ２４内のアドレスを示すスタートアドレス、一連の演算命令の中の最後の演算命令が格納されている演算用命令メモリ２４内のアドレスを示すエンドアドレス、一連の演算命令を繰り返し実行するか否かを示すループ指示（ＯＮ／ＯＦＦ）、一連の演算命令の繰り返し回数などが該当する。
【００２６】
シーケンス制御用命令メモリ１１ａはシーケンス制御用命令を格納している記録媒体である。
演算器１１ｂはシーケンス制御部１１内に実装されている内部演算装置である。
【００２７】
演算器制御部１２は命令ＦＩＦＯ部１３、演算用命令メモリ２４、現実行用パラメータレジスタ２５及び命令発行部２６から構成されており、シーケンス制御部１１の指示の下、一連の演算命令を演算器２に発行する処理を実施する。
図１の例では、２つの演算器制御部１２が制御回路１に実装されているが、３つ以上の演算器制御部１２が制御回路１に実装されていてもよいし、演算器制御部１２が１つだけ実装されていてもよい。
図１では、説明の便宜上、図中上側に記載している演算器制御部１２を「演算器制御部（１）」と表記し、図中下側に記載している演算器制御部１２を「演算器制御部（２）」と表記している。
また、演算器制御部（２）の内部構成は図示していないが、演算器制御部（１）の内部構成と同一である。
【００２８】
命令ＦＩＦＯ部１３はシーケンス制御部１１から発行されたパラメータを一時的に格納し、先に格納したパラメータから順番に現実行用パラメータレジスタ２５に出力する処理を実施する。
書込面番号レジスタ１４は書き込み面番号を格納しているレジスタであり、初期状態では、書き込み面番号として、書込制御部１５により“０”が設定され、また、書込制御部１５から書き込みイネーブル信号が書込ＦＩＦＯ選択器１６に出力される毎に、書込制御部１５によって書き込み面番号がインクリメントされる。
ただし、書込面番号レジスタ１４により格納されている書き込み面番号の最大値は、パラメータ用ＦＩＦＯレジスタ１７を構成しているパラメータレジスタの個数に相当し、書き込み面番号が最大値に到達すると、次のインクリメントによって書き込み面番号が“０”に戻る。
【００２９】
書込制御部１５はシーケンス制御部１１からパラメータの書き込み通知を受けると、フルフラグレジスタ１９が“０”であれば（パラメータ用ＦＩＦＯレジスタ１７を構成しているパラメータレジスタの中で、パラメータが格納されていないパラメータレジスタが存在している場合）、書込面番号レジスタ１４により格納されている書き込み面番号を選択信号として書込ＦＩＦＯ選択器１６に出力するとともに、書き込みイネーブル信号を書込ＦＩＦＯ選択器１６に出力する処理を実施する。
また、書込制御部１５は選択信号及び書き込みイネーブル信号を書込ＦＩＦＯ選択器１６に出力すると、パラメータの書き込み完了通知をシーケンス制御部１１に出力する処理を実施する。
さらに、書込制御部１５は使用面数レジスタ１８により格納されている使用面数をインクリメントするとともに、書込面番号レジスタ１４により格納されている書き込み面番号をインクリメントし、その使用面数がパラメータ用ＦＩＦＯレジスタ１７を構成しているパラメータレジスタの個数に到達すると、フルフラグレジスタ１９に設定されている値を“０”から“１”に変更する処理を実施する。
【００３０】
書込ＦＩＦＯ選択器１６は書込制御部１５から書き込みイネーブル信号を受けると、パラメータ用ＦＩＦＯレジスタ１７を構成しているパラメータレジスタの中から、書込制御部１５から出力された選択信号に対応するパラメータレジスタを選択し、シーケンス制御部１１から発行されたパラメータを当該パラメータレジスタに書き込む処理を実施する。
パラメータ用ＦＩＦＯレジスタ１７はシーケンス制御部１１から発行されたパラメータを格納するＮ個のパラメータレジスタから構成されている記録媒体である。なお、パラメータ用ＦＩＦＯレジスタ１７はＦＩＦＯレジスタを構成している。
【００３１】
使用面数レジスタ１８は使用面数（パラメータ用ＦＩＦＯレジスタ１７を構成しているパラメータレジスタの中で、既にパラメータが格納されているパラメータレジスタの個数）を格納しているレジスタであり、初期状態では、使用面数として、書込制御部１５により“０”が設定される。また、書込制御部１５から書き込みイネーブル信号が書込ＦＩＦＯ選択器１６に出力される毎に、書込制御部１５によって使用面数がインクリメントされる一方、読出制御部２２から読み出しイネーブル信号が読出ＦＩＦＯ選択器２３に出力される毎に、読出制御部２２によって使用面数がデクリメントされる。
【００３２】
フルフラグレジスタ１９はパラメータ用ＦＩＦＯレジスタ１７を構成しているパラメータレジスタの中で、パラメータが格納されていないパラメータレジスタが存在していれば“０”の値が設定され、全てのパラメータレジスタにパラメータが格納されると、“１”の値が設定されるレジスタである。
なお、書込面番号レジスタ１４、書込制御部１５、書込ＦＩＦＯ選択器１６、使用面数レジスタ１８及びフルフラグレジスタ１９から書込制御手段が構成されている。
【００３３】
実行開始制御部２０は使用面数レジスタ１８により格納されている使用面数が“０”でなければ、未実行のパラメータが存在しているので（パラメータ用ＦＩＦＯレジスタ１７を構成している何れかのパラメータレジスタの中にパラメータが格納されている）、命令発行開始指示を命令発行部２６に出力する処理を実施する。
読出面番号レジスタ２１は読み出し面番号を格納しているレジスタであり、初期状態では、読み出し面番号として、読出制御部２２により“０”が設定され、また、読出制御部２２から読み出しイネーブル信号が読出ＦＩＦＯ選択器２３に出力される毎に、読出制御部２２によって読み出し面番号がインクリメントされる。
ただし、読出面番号レジスタ２１により格納されている読み出し面番号の最大値は、パラメータ用ＦＩＦＯレジスタ１７を構成しているパラメータレジスタの個数に相当し、読み出し面番号が最大値に到達すると、次のインクリメントによって読み出し面番号が“０”に戻る。
【００３４】
読出制御部２２は既に命令発行部２６から次命令リクエストが出力されている場合、読出面番号レジスタ２１により格納されている読み出し面番号を選択信号として読出ＦＩＦＯ選択器２３に出力するとともに、読み出しイネーブル信号を読出ＦＩＦＯ選択器２３に出力する処理を実施する。
また、読出制御部２２は選択信号及び読み出しイネーブル信号を読出ＦＩＦＯ選択器２３に出力すると、使用面数レジスタ１８により格納されている使用面数をデクリメントするとともに、読出面番号レジスタ２１により格納されている読み出し面番号をインクリメントする処理を実施する。また、デクリメント前の使用面数がパラメータ用ＦＩＦＯレジスタ１７を構成しているパラメータレジスタの個数に到達していれば、フルフラグレジスタ１９に設定されている値を“１”から“０”に変更する処理を実施する。
【００３５】
読出ＦＩＦＯ選択器２３は読出制御部２２から読み出しイネーブル信号を受けると、パラメータ用ＦＩＦＯレジスタ１７を構成しているパラメータレジスタの中から、読出制御部２２から出力された選択信号に対応するパラメータレジスタを選択し、そのパラメータレジスタにより格納されているパラメータを取り出して、そのパラメータを現実行用パラメータレジスタ２５に出力する処理を実施する。
なお、使用面数レジスタ１８、フルフラグレジスタ１９、実行開始制御部２０、読出面番号レジスタ２１、読出制御部２２及び読出ＦＩＦＯ選択器２３から読出制御手段が構成されている。
【００３６】
演算用命令メモリ２４は演算器２に実行させる演算命令を格納している記録媒体である。
現実行用パラメータレジスタ２５は命令ＦＩＦＯ部１３から出力されたパラメータを格納するレジスタである。
【００３７】
命令発行部２６は命令ＦＩＦＯ部１３の実行開始制御部２０から命令発行開始指示を受けると、演算用命令メモリ２４により格納されている演算命令の中から、現実行用パラメータレジスタ２５により格納されているパラメータが特定する演算命令を取得して、その演算命令を演算器２に発行し、その演算命令の発行が完了すると、次命令リクエストを命令ＦＩＦＯ部１３の読出制御部２２に出力するとともに、処理完了通知をシーケンス制御部１１に出力する処理を実施する。
なお、現実行用パラメータレジスタ２５及び命令発行部２６から演算命令発行手段が構成されている。
【００３８】
次に動作について説明する。
まず、制御回路１は、処理開始前に初期化される。
即ち、演算器制御部１２の書込制御部１５は、処理開始前に、書込面番号レジスタ１４、使用面数レジスタ１８及びフルフラグレジスタ１９に“０”を初期設定し、演算器制御部１２の読出制御部２２は、読出面番号レジスタ２１に“０”を初期設定する。
また、初期状態として、書込制御部１５から書き込み完了通知が出力され、命令発行部２６から次命令リクエストが出力されているものとする。
なお、初期状態では、パラメータ用ＦＩＦＯレジスタ１７を構成している全てのパラメータレジスタには、パラメータが格納されておらず、空の状態である。
【００３９】
シーケンス制御部１１は、初期化処理が完了すると、シーケンス制御用命令メモリ１１ａにより格納されているシーケンス制御用プログラム内の命令であるシーケンス制御用命令を読み込み、そのシーケンス制御用命令を順次実行する。
このとき、そのシーケンス制御用命令がシーケンス制御部１１内の演算器１１ｂに実行させる演算命令である場合、その演算命令を演算器１１ｂに発行する。
これにより、演算器１１ｂが当該演算命令を実行して、その演算命令に対応する演算を行う。
【００４０】
一方、そのシーケンス制御用命令が演算用命令メモリ２４により格納されている演算命令を演算器２に実行させる演算開始命令である場合、先に発行しているパラメータの書き込み完了通知が既に演算器制御部１２の書込制御部１５から出力されていれば、その演算命令を特定するパラメータを書込ＦＩＦＯ選択器１６に発行するとともに、そのパラメータの書き込み通知を書込制御部１５に出力する。
ただし、パラメータを初めて発行する時点では、先にパラメータを発行していないが、上述したように、初期状態として、書込制御部１５から書き込み完了通知が出力されているので、パラメータを発行する。
２回目からのパラメータの発行時点では、書込制御部１５から先に発行しているパラメータの書き込み完了通知が既に出力されていることを条件にしてパラメータを発行し、書込制御部１５から書き込み完了通知が出力されていなければ、書き込み完了通知が出力されるまで待機する。
【００４１】
なお、シーケンス制御部１１は、パラメータを書込ＦＩＦＯ選択器１６に発行し、そのパラメータの書き込み通知を書込制御部１５に出力すると、そのパラメータの書き込み完了通知が書込制御部１５から出力されるまで、そのパラメータと書き込み通知の出力を継続し、そのパラメータの書き込み完了通知が書込制御部１５から出力されると、次のシーケンス制御用命令の実行に移行する。
【００４２】
書込制御部１５は、シーケンス制御部１１からパラメータの書き込み通知を受けると、フルフラグレジスタ１９が“０”であれば（パラメータ用ＦＩＦＯレジスタ１７を構成しているパラメータレジスタの中で、パラメータが格納されていないパラメータレジスタが存在している場合）、書込面番号レジスタ１４により格納されている書き込み面番号を選択信号として書込ＦＩＦＯ選択器１６に出力するとともに、書き込みイネーブル信号を書込ＦＩＦＯ選択器１６に出力する。
シーケンス制御部１１から初めてパラメータの書き込み通知を受けた段階では、パラメータ用ＦＩＦＯレジスタ１７を構成している全てのパラメータレジスタは空の状態であり、フルフラグレジスタ１９が“０”であるため、書込面番号レジスタ１４により格納されている書き込み面番号を選択信号として書込ＦＩＦＯ選択器１６に出力するが、この時点の書き込み面番号は“０”であるため、“０”の選択信号を出力する。
【００４３】
書込制御部１５は、選択信号及び書き込みイネーブル信号を書込ＦＩＦＯ選択器１６に出力すると、パラメータの書き込み完了通知をシーケンス制御部１１に出力する。
これにより、シーケンス制御部１１では、上述したように、次のシーケンス制御用命令の実行に移行することができる。
また、書込制御部１５は、使用面数レジスタ１８により格納されている使用面数をインクリメント（使用面数←使用面数＋１）するとともに、書込面番号レジスタ１４により格納されている書き込み面番号をインクリメント（書き込み面番号←書き込み面番号＋１）する。
ただし、書き込み面番号の最大値は、パラメータ用ＦＩＦＯレジスタ１７を構成しているパラメータレジスタの個数に相当し、書き込み面番号が最大値に到達すると、次のインクリメントによって書き込み面番号が“０”に戻るようにする。
【００４４】
書込制御部１５は、インクリメント後の使用面数がパラメータ用ＦＩＦＯレジスタ１７を構成しているパラメータレジスタの個数に到達すると、フルフラグレジスタ１９に設定されている値を“０”から“１”に変更する。
即ち、パラメータ用ＦＩＦＯレジスタ１７を構成しているパラメータレジスタの個数が、例えば、８個である場合、インクリメント後の使用面数が“８”になると、パラメータ用ＦＩＦＯレジスタ１７を構成している全てのパラメータレジスタにパラメータが格納されているので、フルフラグレジスタ１９に設定されている値を“０”から“１”に変更する。
【００４５】
書込ＦＩＦＯ選択器１６は、書込制御部１５から書き込みイネーブル信号を受けると、パラメータ用ＦＩＦＯレジスタ１７を構成しているパラメータレジスタの中から、書込制御部１５から出力された選択信号に対応するパラメータレジスタを選択する。
例えば、選択信号が“０”であれば、パラメータレジスタ［０］を選択し、選択信号が“ｎ−１”であれば、パラメータレジスタ［ｎ−１］を選択する。
書込ＦＩＦＯ選択器１６は、選択信号に対応するパラメータレジスタを選択すると、シーケンス制御部１１から発行されたパラメータを当該パラメータレジスタに書き込む処理を実施する。
【００４６】
実行開始制御部２０は、使用面数レジスタ１８により格納されている使用面数が“０”でなければ、未実行のパラメータが存在しているので（パラメータ用ＦＩＦＯレジスタ１７を構成している何れかのパラメータレジスタの中にパラメータが格納されている）、命令発行開始指示を命令発行部２６に出力する。
即ち、実行開始制御部２０は、書込制御部１５から書き込みイネーブル信号が出力され、書込制御部１５により使用面数レジスタ１８により格納されている使用面数がインクリメントされて、使用面数が“０”でなくなると、命令発行開始指示を命令発行部２６に出力する。
【００４７】
読出制御部２２は、既に命令発行部２６から次命令リクエストが出力されている場合、読出面番号レジスタ２１により格納されている読み出し面番号を選択信号として読出ＦＩＦＯ選択器２３に出力するとともに、読み出しイネーブル信号を読出ＦＩＦＯ選択器２３に出力する。
命令発行部２６から初めて次命令リクエストが出力された段階では、読出面番号レジスタ２１により格納されている読み出し面番号は“０”であるため、“０”の選択信号が読出ＦＩＦＯ選択器２３に出力される。
【００４８】
読出制御部２２は、選択信号及び読み出しイネーブル信号を読出ＦＩＦＯ選択器２３に出力すると、使用面数レジスタ１８により格納されている使用面数をデクリメント（使用面数←使用面数−１）するとともに、読出面番号レジスタ２１により格納されている読み出し面番号をインクリメント（読み出し面番号←読み出し面番号＋１）する。
ただし、読み出し面番号の最大値は、パラメータ用ＦＩＦＯレジスタ１７を構成しているパラメータレジスタの個数に相当し、読み出し面番号が最大値に到達すると、次のインクリメントによって読み出し面番号が“０”に戻るようにする。
また、読出制御部２２は、デクリメント前の使用面数がパラメータ用ＦＩＦＯレジスタ１７を構成しているパラメータレジスタの個数に到達していれば、今回のパラメータの読み出しによって、パラメータレジスタに空きができるので、フルフラグレジスタ１９に設定されている値を“１”から“０”に変更する。
【００４９】
読出ＦＩＦＯ選択器２３は、読出制御部２２から読み出しイネーブル信号を受けると、パラメータ用ＦＩＦＯレジスタ１７を構成しているパラメータレジスタの中から、読出制御部２２から出力された選択信号に対応するパラメータレジスタを選択する。
例えば、選択信号が“０”であれば、パラメータレジスタ［０］を選択し、選択信号が“ｎ−１”であれば、パラメータレジスタ［ｎ−１］を選択する。
読出ＦＩＦＯ選択器２３は、選択信号に対応するパラメータレジスタを選択すると、そのパラメータレジスタにより格納されているパラメータを取り出し、そのパラメータを現実行用パラメータレジスタ２５に出力する。
【００５０】
現実行用パラメータレジスタ２５は、命令ＦＩＦＯ部１３の読出ＦＩＦＯ選択器２３から出力されたパラメータを一時的に格納する。
命令発行部２６は、実行開始制御部２０から命令発行開始指示を受けると、演算用命令メモリ２４により格納されている演算命令の中から、現実行用パラメータレジスタ２５により格納されているパラメータが特定する演算命令を取得する。
例えば、パラメータが、演算命令が格納されている演算用命令メモリ２４内のアドレスを示していれば、そのアドレスに格納されている演算命令を取得する。
また、パラメータが、一連の演算命令の中の先頭の演算命令が格納されている演算用命令メモリ２４内のアドレスを示すスタートアドレスと、一連の演算命令の中の最後の演算命令が格納されている演算用命令メモリ２４内のアドレスを示すエンドアドレスとを示していれば、スタートアドレスに格納されている演算命令からエンドアドレスに格納されている演算命令までを取得する。
【００５１】
命令発行部２６は、パラメータが特定する演算命令を取得すると、その演算命令を演算器２に発行し、その演算命令の発行が完了すると、次命令リクエストを命令ＦＩＦＯ部１３の読出制御部２２に出力するとともに、処理完了通知をシーケンス制御部１１に出力する。
なお、一連の演算命令を繰り返し実行する旨を示すループ指示（ＯＮ）と、一連の演算命令の繰り返し回数とが、パラメータに含まれている場合、一連の演算命令を繰り返し演算器２に発行する。
ただし、命令発行部２６は、実行開始制御部２０から次の命令発行指示を出力されていなければ、演算命令としてＮＯＰ命令を発行する。
【００５２】
図１の制御回路１の処理内容は、上記の通りであるが、命令ＦＩＦＯ部１３は、命令発行部２６が演算命令を演算器２に発行している間も、シーケンス制御部１１から発行されるパラメータと書き込み通知を受け付けて、そのパラメータをパラメータ用ＦＩＦＯレジスタ１７に格納することが可能である。
したがって、命令発行部２６が演算命令を演算器２に発行している間に、次以降の演算命令を特定するパラメータをパラメータ用ＦＩＦＯレジスタ１７に複数個格納しておけば、使用面数レジスタ１８の設定値が“０”にならず、実行開始制御部２０から命令発行開始指示が命令発行部２６に出力される。
このため、命令発行部２６から次命令リクエストが出力され次第、読出制御部２２から読み出しイネーブル信号と選択信号が読出ＦＩＦＯ選択器２３に出力されて、パラメータ用ＦＩＦＯレジスタ１７からパラメータが取り出され、即座に次の演算命令の発行が開始される。
【００５３】
次に、シーケンス制御部１１内の演算器１１ｂと、演算器制御部（１）により制御される演算器２と、演算器制御部（２）により制御される演算器２とが並列に演算を実行する場合の処理内容を説明する。
図２はこの発明の実施の形態１によるデータ演算装置の制御回路による処理タイミングを示す説明図であり、演算内容は、図４及び図５の場合と同様である。
即ち、シーケンス制御部１１内の演算器１１ｂが「演算０→演算１→演算２→演算３」を実行し、演算器制御部（１）により制御される演算器が「演算Ｂ→演算Ａ→演算Ｃ」を実行し、演算器制御部（２）により制御される演算器が「演算Ｄ→演算Ｆ→演算Ｅ」を実行する例を示している。
以下、図２を参照して、シーケンス制御部１１及び演算器制御部（１）（２）の処理内容を具体的に説明する。
【００５４】
ただし、書込面番号レジスタ１４、使用面数レジスタ１８、フルフラグレジスタ１９及び読出面番号レジスタ２１が“０”に初期設定されており、初期状態として、書込制御部１５から書き込み完了通知が出力され、命令発行部２６から次命令リクエストが出力されているものとする。
また、パラメータ用ＦＩＦＯレジスタ１７を構成している全てのパラメータレジスタには、パラメータが格納されておらず、空の状態であるものとする。
【００５５】
まず、シーケンス制御部１１内の演算器１１ｂが「演算０」を実行し、シーケンス制御部１１が「演算Ｂ」の実行を演算器制御部（１）に指示する。即ち、シーケンス制御部１１が演算Ｂ用のパラメータを演算器制御部（１）の書込ＦＩＦＯ選択器１６に発行し、書き込み通知を演算器制御部（１）の書込制御部１５に出力する。
演算器制御部（１）の書込制御部１５は、シーケンス制御部１１から書き込み通知を受けると、書込面番号レジスタ１４により格納されている書き込み面番号（＝０）を選択信号として書込ＦＩＦＯ選択器１６に出力するとともに、書き込みイネーブル信号を書込ＦＩＦＯ選択器１６に出力する。
また、書込制御部１５は、使用面数レジスタ１８により格納されている使用面数をインクリメントして“１”に更新してから、書込面番号レジスタ１４により格納されている書き込み面番号をインクリメントして“１”に更新する。
【００５６】
演算器制御部（１）の書込ＦＩＦＯ選択器１６は、書込制御部１５から書き込みイネーブル信号を受けると、書込制御部１５から出力された選択信号（＝０）に対応するパラメータレジスタ［０］を選択し、シーケンス制御部１１から発行された演算Ｂ用のパラメータをパラメータレジスタ［０］に格納する。
演算器制御部（１）の実行開始制御部２０は、使用面数レジスタ１８により格納されている使用面数が“１”であるため、命令発行開始指示を命令発行部２６に出力する。
なお、実行開始制御部２０は、命令発行部２６により命令発行開始指示が受け付けられるまで、その命令発行開始指示の出力を継続する。
【００５７】
演算器制御部（１）の読出制御部２２は、既に命令発行部２６から次命令リクエストされており、かつ、使用面数レジスタ１８により格納されている使用面数が“１”であるため、実行開始制御部２０と並行して、読出面番号レジスタ２１により格納されている読み出し面番号（＝０）を選択信号として読出ＦＩＦＯ選択器２３に出力するとともに、読み出しイネーブル信号を読出ＦＩＦＯ選択器２３に出力する。
また、読出制御部２２は、選択信号及び読み出しイネーブル信号を読出ＦＩＦＯ選択器２３に出力すると、使用面数レジスタ１８により格納されている使用面数をデクリメントして“０”に更新し、読出面番号レジスタ２１により格納されている読み出し面番号をインクリメントして“１”に更新する。
【００５８】
演算器制御部（１）の読出ＦＩＦＯ選択器２３は、読出制御部２２から読み出しイネーブル信号を受けると、読出制御部２２から出力された選択信号（＝０）に対応するパラメータレジスタ［０］を選択して、そのパラメータレジスタ［０］により格納されている演算Ｂ用のパラメータを取り出し、演算Ｂ用のパラメータを現実行用パラメータレジスタ２５に格納する。
演算器制御部（１）の命令発行部２６は、実行開始制御部２０から出力されている命令発行開始指示を受け付けて、演算用命令メモリ２４により格納されている演算命令の中から、現実行用パラメータレジスタ２５により格納されている演算Ｂ用のパラメータが特定する「演算Ｂ」の演算命令を取得し、演算器２に対して「演算Ｂ」の演算命令の発行を開始する。
【００５９】
続いて、シーケンス制御部１１は、「演算Ａ」の実行を演算器制御部（１）に指示する。
即ち、シーケンス制御部１１は、演算Ａ用のパラメータを演算器制御部（１）の書込ＦＩＦＯ選択器１６に発行し、書き込み通知を演算器制御部（１）の書込制御部１５に出力する。
演算器制御部（１）の書込制御部１５は、シーケンス制御部１１から書き込み通知を受けると、書込面番号レジスタ１４により格納されている書き込み面番号（＝１）を選択信号として書込ＦＩＦＯ選択器１６に出力するとともに、書き込みイネーブル信号を書込ＦＩＦＯ選択器１６に出力する。
また、書込制御部１５は、使用面数レジスタ１８により格納されている使用面数（読出制御部２２によりデクリメントされて“０”になっている使用面数）をインクリメントして“１”に更新してから、書込面番号レジスタ１４により格納されている書き込み面番号をインクリメントして“２”に更新する。
【００６０】
演算器制御部（１）の書込ＦＩＦＯ選択器１６は、書込制御部１５から書き込みイネーブル信号を受けると、書込制御部１５から出力された選択信号（＝１）に対応するパラメータレジスタ［１］を選択し、シーケンス制御部１１から発行された演算Ａ用のパラメータをパラメータレジスタ［１］に格納する。
演算器制御部（１）の実行開始制御部２０は、使用面数レジスタ１８により格納されている使用面数が“１”に更新されたので、再び、命令発行開始指示を命令発行部２６に出力する。
なお、実行開始制御部２０は、命令発行部２６により命令発行開始指示が受け付けられるまで、その命令発行開始指示の出力を継続する。
【００６１】
演算器制御部（１）の読出制御部２２は、使用面数レジスタ１８により格納されている使用面数が“１”であるが、この時点では、「演算Ｂ」の演算命令の発行が完了しておらず、未だ命令発行部２６から次命令リクエストが出力されていないため、命令発行部２６から次命令リクエストが出力されるまで待機する。
演算器制御部（１）の命令発行部２６は、演算器２に対して「演算Ｂ」の演算命令を発行している最中であるため、実行開始制御部２０から命令発行開始指示が出力されても、この時点では受け付けない。
【００６２】
続いて、シーケンス制御部１１は、「演算Ｃ」の実行を演算器制御部（１）に指示する。
即ち、シーケンス制御部１１は、演算Ｃ用のパラメータを演算器制御部（１）の書込ＦＩＦＯ選択器１６に発行し、書き込み通知を演算器制御部（１）の書込制御部１５に出力する。
演算器制御部（１）の書込制御部１５は、シーケンス制御部１１から書き込み通知を受けると、書込面番号レジスタ１４により格納されている書き込み面番号（＝２）を選択信号として書込ＦＩＦＯ選択器１６に出力するとともに、書き込みイネーブル信号を書込ＦＩＦＯ選択器１６に出力する。
また、書込制御部１５は、使用面数レジスタ１８により格納されている使用面数をインクリメントして“２”に更新してから、書込面番号レジスタ１４により格納されている書き込み面番号をインクリメントして“３”に更新する。
【００６３】
演算器制御部（１）の書込ＦＩＦＯ選択器１６は、書込制御部１５から書き込みイネーブル信号を受けると、書込制御部１５から出力された選択信号（＝２）に対応するパラメータレジスタ［２］を選択し、シーケンス制御部１１から発行された演算Ｃ用のパラメータをパラメータレジスタ［２］に格納する。
演算器制御部（１）の実行開始制御部２０は、使用面数レジスタ１８により格納されている使用面数が“２”に更新されたので、再び、命令発行開始指示を命令発行部２６に出力する。
なお、実行開始制御部２０は、命令発行部２６により命令発行開始指示が受け付けられるまで、その命令発行開始指示の出力を継続する。
【００６４】
演算器制御部（１）の読出制御部２２は、使用面数レジスタ１８により格納されている使用面数が“２”であるが、この時点では、「演算Ｂ」の演算命令の発行が完了しておらず、未だ命令発行部２６から次命令リクエストが出力されていないため、命令発行部２６から次命令リクエストが出力されるまで待機する。
命令発行部２６は、演算器２に対して「演算Ｂ」の演算命令を発行している最中であるため、実行開始制御部２０から命令発行開始指示が出力されても、この時点では受け付けない。
【００６５】
続いて、シーケンス制御部１１は、内部の演算器１１ｂが「演算１」の実行を完了すると、「演算Ｄ」「演算Ｆ」「演算Ｅ」の実行を演算器制御部（２）に順次指示する。
演算器制御部（２）に対する「演算Ｄ」「演算Ｆ」「演算Ｅ」の実行指示は、演算器制御部（１）に対する「演算Ｂ」「演算Ａ」「演算Ｃ」の実行指示と同様であるため説明を省略する。
【００６６】
演算器制御部（１）の命令発行部２６は、「演算Ｂ」の演算命令の発行が完了すると、次命令リクエストを読出制御部２２に出力するとともに、処理完了通知をシーケンス制御部１１に出力する。
演算器制御部（１）の読出制御部２２は、命令発行部２６から次命令リクエストされており、かつ、使用面数レジスタ１８により格納されている使用面数が“２”であるため、読出面番号レジスタ２１により格納されている読み出し面番号（＝１）を選択信号として読出ＦＩＦＯ選択器２３に出力するとともに、読み出しイネーブル信号を読出ＦＩＦＯ選択器２３に出力する。
また、読出制御部２２は、選択信号及び読み出しイネーブル信号を読出ＦＩＦＯ選択器２３に出力すると、使用面数レジスタ１８により格納されている使用面数をデクリメントして“１”に更新し、読出面番号レジスタ２１により格納されている読み出し面番号をインクリメントして“２”に更新する。
【００６７】
演算器制御部（１）の読出ＦＩＦＯ選択器２３は、読出制御部２２から読み出しイネーブル信号を受けると、読出制御部２２から出力された選択信号（＝１）に対応するパラメータレジスタ［１］を選択して、そのパラメータレジスタ［１］により格納されている演算Ａ用のパラメータを取り出し、演算Ａ用のパラメータを現実行用パラメータレジスタ２５に格納する。
演算器制御部（１）の命令発行部２６は、実行開始制御部２０から出力されている命令発行開始指示を受け付けて、演算用命令メモリ２４により格納されている演算命令の中から、現実行用パラメータレジスタ２５により格納されている演算Ａ用のパラメータが特定する「演算Ａ」の演算命令を取得し、演算器２に対して「演算Ａ」の演算命令の発行を開始する。
【００６８】
続いて、シーケンス制御部１１内の演算器１１ｂが「演算２」を実行する。
この間、演算器制御部（１）の命令発行部２６は、演算器２に対して「演算Ａ」の演算命令を発行し続け、演算器制御部（２）の命令発行部２６は、演算器２に対して「演算Ｄ」の演算命令を発行し続けている。
演算器制御部（１）の命令発行部２６は、「演算Ａ」の演算命令の発行が完了すると、次命令リクエストを読出制御部２２に出力するとともに、処理完了通知をシーケンス制御部１１に出力する。
【００６９】
演算器制御部（１）の読出制御部２２は、命令発行部２６から次命令リクエストされており、かつ、使用面数レジスタ１８により格納されている使用面数が“１”であるため、読出面番号レジスタ２１により格納されている読み出し面番号（＝２）を選択信号として読出ＦＩＦＯ選択器２３に出力するとともに、読み出しイネーブル信号を読出ＦＩＦＯ選択器２３に出力する。
また、読出制御部２２は、選択信号及び読み出しイネーブル信号を読出ＦＩＦＯ選択器２３に出力すると、使用面数レジスタ１８により格納されている使用面数をデクリメントして“０”に更新し、読出面番号レジスタ２１により格納されている読み出し面番号をインクリメントして“３”に更新する。
【００７０】
演算器制御部（１）の読出ＦＩＦＯ選択器２３は、読出制御部２２から読み出しイネーブル信号を受けると、読出制御部２２から出力された選択信号（＝２）に対応するパラメータレジスタ［２］を選択して、そのパラメータレジスタ［２］により格納されている演算Ｃ用のパラメータを取り出し、演算Ｃ用のパラメータを現実行用パラメータレジスタ２５に格納する。
演算器制御部（１）の命令発行部２６は、実行開始制御部２０から出力されている命令発行開始指示を受け付けて、演算用命令メモリ２４により格納されている演算命令の中から、現実行用パラメータレジスタ２５により格納されている演算Ｃ用のパラメータが特定する「演算Ｃ」の演算命令を取得し、演算器２に対して「演算Ｃ」の演算命令の発行を開始する。
【００７１】
演算器制御部（１）の命令発行部２６が「演算Ｃ」の演算命令の発行をしている間に、演算器制御部（２）の命令発行部２６による「演算Ｄ」の演算命令の発行が完了して、「演算Ｆ」の演算命令の発行が開始されるが、この処理内容は、演算器制御部（１）の命令発行部２６による「演算Ｂ」の演算命令の発行が完了して、「演算Ａ」の演算命令の発行が開始される際の処理内容と同様であるため説明を省略する。
【００７２】
続いて、シーケンス制御部１１内の演算器１１ｂが「演算３」を実行する。
この間、演算器制御部（１）の命令発行部２６は、演算器２に対して「演算Ｃ」の演算命令を発行し続けている。
演算器制御部（１）の命令発行部２６は、「演算Ｃ」の演算命令の発行が完了すると、次命令リクエストを読出制御部２２に出力するとともに、処理完了通知をシーケンス制御部１１に出力する。
【００７３】
演算器制御部（１）の読出制御部２２は、命令発行部２６から次命令リクエストされているが、使用面数レジスタ１８により格納されている使用面数が“０”であるため、選択信号や読み出しイネーブル信号の出力を行わない。
演算器制御部（１）の実行開始制御部２０も、使用面数レジスタ１８により格納されている使用面数が“０”であるため、命令発行開始指示の出力を行わない。
したがって、演算器制御部（１）の命令発行部２６は、次の演算命令の発行を開始せずに、ＮＯＰ命令を発行する。
【００７４】
この間、演算器制御部（２）の命令発行部２６は、演算器２に対して「演算Ｆ」の演算命令を発行し、「演算Ｆ」の演算命令の発行が完了すると、演算器２に対して「演算Ｅ」の演算命令を発行するが、この処理内容は、演算器制御部（１）の命令発行部２６が「演算Ａ」「演算Ｃ」の演算命令を発行する際の処理内容と同様であるため説明を省略する。
【００７５】
シーケンス制御部１１は、内部の演算器１１ｂが「演算３」の実行が完了すると、演算器制御部（１）に対する「演算Ｃ」の処理完了通知のポーリングを開始し、既に演算器制御部（１）から出力されている「演算Ｃ」の処理完了通知を検知する。
また、演算器制御部（２）に対する「演算Ｅ」の処理完了通知のポーリングを開始し、演算器制御部（２）から出力されている「演算Ｅ」の処理完了通知を検知する。
このようにして、「演算Ｃ」の処理完了通知と「演算Ｅ」の処理完了通知を検知すると、一連の処理を終了する。
【００７６】
以上で明らかなように、この実施の形態１によれば、シーケンス制御用命令が演算用命令メモリ２４により格納されている演算命令を演算器２に実行させる演算開始命令である場合、先に発行しているパラメータの書き込み完了通知が既に出力されていれば、その演算命令を特定するパラメータを発行するシーケンス制御部１１と、シーケンス制御部１１からパラメータが発行される毎に、そのパラメータをパラメータ用ＦＩＦＯレジスタ１７に書き込んで、そのパラメータの書き込み完了通知をシーケンス制御部１１に出力する書込制御手段と、既に次命令リクエストが出力されている場合、パラメータ用ＦＩＦＯレジスタ１７により格納されているパラメータの中で、書込制御手段により最も先に書き込まれたパラメータを取り出して、そのパラメータを出力する読出制御手段とを設け、命令発行部２６が、演算用命令メモリ２４により格納されている演算命令の中から、読出制御手段から出力されたパラメータが特定する演算命令を取得して、その演算命令を演算器２に発行し、その演算命令の発行が完了すると、次命令リクエストを読出制御手段に出力するように構成したので、割り込み処理やポーリング処理の実行を不要にして、オーバーヘッドの発生を削減することができるようになり、その結果、処理の高速化を図ることができる効果を奏する。
【００７７】
即ち、シーケンス制御部１１において、演算器２の以降の演算を一意に決定することができる場合、予め、シーケンス制御部１１が演算器制御部１２に対して、以降の演算の実行を予約することが可能であり、前演算の実行が完了すると、直ちに、演算器制御部１２によって次の演算が自動的に開始されるため、シーケンス制御部１１におけるポーリング処理や、割り込み処理の実行を省略することができる。このため、ポーリング処理や、割り込み処理の実行に伴うオーバーヘッドサイクルを削減することが可能であり、処理の高速化を図ることができる。
さらに、処理の高速化により、周波数や電源電圧を低減することができるため、低消費電力化を図ることができる。
【００７８】
実施の形態２．
図３はこの発明の実施の形態２によるデータ演算装置を示す構成図であり、図において、図１と同一符号は同一又は相当部分を示すので説明を省略する。
シーケンス制御部３０はシーケンス制御用命令メモリ１１ａ及び演算器１１ｂを内蔵しており、図１のシーケンス制御部１１と同様に、シーケンス制御用命令が演算用命令メモリ２４により格納されている演算命令を演算器２に実行させる演算開始命令である場合、先に発行しているパラメータの書き込み完了通知が既に書込制御部１５から出力されていれば、その演算命令を特定するパラメータと書き込み通知を命令ＦＩＦＯ部１３に出力する。ただし、シーケンス制御部３０は、図１のシーケンス制御部１１と異なり、パラメータの出力先が書込レジスタ選択器３４である。
また、シーケンス制御部３０はパラメータを書込レジスタ選択器３４に出力する際、書き込みイネーブル信号と書き込みレジスタ番号を書込レジスタ選択器３４に出力する処理を実施する。
さらに、シーケンス制御部３０は実行レジスタ番号（演算命令を特定するパラメータが格納されているパラメータレジスタ３５を示すレジスタ番号）を書込ＦＩＦＯ選択器３１に出力する処理を実施する。
なお、シーケンス制御部３０はシーケンス制御手段を構成している。
【００７９】
書込ＦＩＦＯ選択器３１は書込制御部１５から書き込みイネーブル信号を受けると、レジスタ番号用ＦＩＦＯレジスタ３２を構成しているＮ個のレジスタの中から、書込制御部１５から出力された選択信号に対応するレジスタを選択し、シーケンス制御部３０から発行された実行レジスタ番号を当該レジスタに書き込む処理を実施する。
なお、書込面番号レジスタ１４、書込制御部１５、書込ＦＩＦＯ選択器３１、使用面数レジスタ１８及びフルフラグレジスタ１９から書込制御手段が構成されている。
【００８０】
レジスタ番号用ＦＩＦＯレジスタ３２はシーケンス制御部３０から出力された実行レジスタ番号を格納するＮ個のレジスタから構成されている記録媒体である。なお、レジスタ番号用ＦＩＦＯレジスタ３２はＦＩＦＯレジスタを構成している。
読出ＦＩＦＯ選択器３３は読出制御部２２から読み出しイネーブル信号を受けると、レジスタ番号用ＦＩＦＯレジスタ３２を構成しているＮ個のレジスタの中から、読出制御部２２から出力された選択信号に対応するレジスタを選択し、そのレジスタにより格納されている実行レジスタ番号を取り出して、その実行レジスタ番号を読み出しレジスタ番号として読出レジスタ選択器３６に出力する処理を実施する。
【００８１】
書込レジスタ選択器３４はシーケンス制御部３０から書き込みイネーブル信号を受けると、複数のパラメータレジスタ３５の中から、シーケンス制御部３０から出力された書き込みレジスタ番号に対応するパラメータレジスタ３５を選択し、シーケンス制御部３０から出力されたパラメータを当該パラメータレジスタ３５に書き込む処理を実施する。
パラメータレジスタ３５は演算用命令メモリ２４により格納されている演算命令を特定するパラメータを格納している記録媒体である。なお、パラメータレジスタ３５はパラメータ格納用レジスタを構成している。
図３の例では、パラメータレジスタ３５がＮ個実装されている。
【００８２】
読出レジスタ選択器３６は読出ＦＩＦＯ選択器３３から読み出しイネーブル信号を受けると、複数のパラメータレジスタ３５の中から、読出ＦＩＦＯ選択器３３から出力された読み出しレジスタ番号に対応するパラメータレジスタ３５を選択し、そのパラメータレジスタ３５により格納されているパラメータを取り出して、そのパラメータを現実行用パラメータレジスタ２５に出力する処理を実施する。
なお、使用面数レジスタ１８、フルフラグレジスタ１９、実行開始制御部２０、読出面番号レジスタ２１、読出制御部２２、読出ＦＩＦＯ選択器３３及び読出レジスタ選択器３６から読出制御手段が構成されている。
【００８３】
次に動作について説明する。
上記実施の形態１では、シーケンス制御部１１からパラメータが発行される毎に、そのパラメータをパラメータ用ＦＩＦＯレジスタ１７に書き込むものについて示したが、パラメータについては、予め、複数のパラメータレジスタ３５に格納し、シーケンス制御部３０から演算命令を特定するパラメータが格納されているパラメータレジスタ３５を示す実行レジスタ番号を出力し、その実行レジスタ番号をレジスタ番号用ＦＩＦＯレジスタ３２に書き込むようにしてもよい。
これにより、パラメータの種類が多い場合に、命令コードが長くなり過ぎるのを回避することができる。
以下、図３の制御回路１の処理内容を具体的に説明する。
【００８４】
まず、制御回路１は、処理開始前に初期化される。
即ち、演算器制御部１２の書込制御部１５は、処理開始前に、書込面番号レジスタ１４、使用面数レジスタ１８及びフルフラグレジスタ１９に“０”を初期設定し、演算器制御部１２の読出制御部２２は、読出面番号レジスタ２１に“０”を初期設定する。
また、初期状態として、書込制御部１５から書き込み完了通知が出力され、命令発行部２６から次命令リクエストが出力されているものとする。
なお、初期状態では、レジスタ番号用ＦＩＦＯレジスタ３２を構成している全てのレジスタには、実行レジスタ番号が格納されておらず、空の状態である。
【００８５】
シーケンス制御部３０は、予め、処理開始前に、演算用命令メモリ２４により格納されている演算命令を特定するパラメータを複数のパラメータレジスタ３５に格納する。
即ち、シーケンス制御部３０は、例えば、Ｎ個のパラメータをパラメータレジスタ３５に格納する場合、最初に、１個目のパラメータを書込レジスタ選択器３４に出力するとともに、そのパラメータの書き込み先のパラメータレジスタ［０］を示す書き込みレジスタ番号と、書き込みイネーブル信号とを書込レジスタ選択器３４に出力する。
書込レジスタ選択器３４は、シーケンス制御部３０から書き込みイネーブル信号を受けると、複数のパラメータレジスタ３５の中から、シーケンス制御部３０から出力された書き込みレジスタ番号に対応するパラメータレジスタ［０］を選択し、シーケンス制御部３０から出力されたパラメータをパラメータレジスタ［０］に格納する。
【００８６】
次に、シーケンス制御部３０は、２個目のパラメータを書込レジスタ選択器３４に出力するとともに、そのパラメータの書き込み先のパラメータレジスタ［１］を示す書き込みレジスタ番号と、書き込みイネーブル信号とを書込レジスタ選択器３４に出力する。
書込レジスタ選択器３４は、シーケンス制御部３０から書き込みイネーブル信号を受けると、複数のパラメータレジスタ３５の中から、シーケンス制御部３０から出力された書き込みレジスタ番号に対応するパラメータレジスタ［１］を選択し、シーケンス制御部３０から出力されたパラメータをパラメータレジスタ［１］に格納する。
以下、３個目〜Ｎ個目のパラメータを同様にして、パラメータレジスタ［２］〜パラメータレジスタ［ｎ−１］に格納する。
【００８７】
シーケンス制御部３０は、初期化処理が完了すると、シーケンス制御用命令メモリ１１ａにより格納されているシーケンス制御用プログラム内の命令であるシーケンス制御用命令を読み込み、そのシーケンス制御用命令を順次実行する。
このとき、そのシーケンス制御用命令がシーケンス制御部３０内の演算器１１ｂに実行させる演算命令である場合、その演算命令を演算器１１ｂに発行する。
これにより、演算器１１ｂが当該演算命令を実行して、その演算命令に対応する演算を行う。
【００８８】
一方、そのシーケンス制御用命令が演算用命令メモリ２４により格納されている演算命令を演算器２に実行させる演算開始命令である場合、先に発行している実行レジスタ番号の書き込み完了通知が既に演算器制御部１２の書込制御部１５から出力されていれば、パラメータが格納されているパラメータレジスタ３５を示す実行レジスタ番号を書込ＦＩＦＯ選択器３１に発行するとともに、その実行レジスタ番号の書き込み通知を書込制御部１５に出力する。
ただし、実行レジスタ番号を初めて発行する時点では、先に実行レジスタ番号を発行していないが、上述したように、初期状態として、書込制御部１５から書き込み完了通知が出力されているので、実行レジスタ番号を発行する。
２回目からの実行レジスタ番号の発行時点では、書込制御部１５から先に発行している実行レジスタ番号の書き込み完了通知が既に出力されていることを条件にして実行レジスタ番号を発行し、書込制御部１５から書き込み完了通知が出力されていなければ、書き込み完了通知が出力されるまで待機する。
【００８９】
なお、シーケンス制御部３０は、実行レジスタ番号を書込ＦＩＦＯ選択器３１に発行し、その実行レジスタ番号の書き込み通知を書込制御部１５に出力すると、その実行レジスタ番号の書き込み完了通知が書込制御部１５から出力されるまで、その実行レジスタ番号と書き込み通知の出力を継続し、その実行レジスタ番号の書き込み完了通知が書込制御部１５から出力されると、次のシーケンス制御用命令の実行に移行する。
【００９０】
書込制御部１５は、シーケンス制御部３０から実行レジスタ番号の書き込み通知を受けると、フルフラグレジスタ１９が“０”であれば（レジスタ番号用ＦＩＦＯレジスタ３２を構成しているレジスタの中で、実行レジスタ番号が格納されていないレジスタが存在している場合）、書込面番号レジスタ１４により格納されている書き込み面番号を選択信号として書込ＦＩＦＯ選択器３１に出力するとともに、書き込みイネーブル信号を書込ＦＩＦＯ選択器３１に出力する。
シーケンス制御部３０から初めて実行レジスタ番号の書き込み通知を受けた段階では、レジスタ番号用ＦＩＦＯレジスタ３２を構成している全てのレジスタは空の状態であり、フルフラグレジスタ１９が“０”であるため、書込面番号レジスタ１４により格納されている書き込み面番号を選択信号として書込ＦＩＦＯ選択器１６に出力するが、この時点の書き込み面番号は“０”であるため、“０”の選択信号を出力する。
【００９１】
書込制御部１５は、選択信号及び書き込みイネーブル信号を書込ＦＩＦＯ選択器３１に出力すると、実行レジスタ番号の書き込み完了通知をシーケンス制御部３０に出力する。
これにより、シーケンス制御部３０では、上述したように、次のシーケンス制御用命令の実行に移行することができる。
また、書込制御部１５は、使用面数レジスタ１８により格納されている使用面数をインクリメント（使用面数←使用面数＋１）するとともに、書込面番号レジスタ１４により格納されている書き込み面番号をインクリメント（書き込み面番号←書き込み面番号＋１）する。
ただし、書き込み面番号の最大値は、レジスタ番号用ＦＩＦＯレジスタ３２を構成しているレジスタの個数に相当し、書き込み面番号が最大値に到達すると、次のインクリメントによって書き込み面番号が“０”に戻るようにする。
【００９２】
書込制御部１５は、インクリメント後の使用面数がレジスタ番号用ＦＩＦＯレジスタ３２を構成しているレジスタの個数に到達すると、フルフラグレジスタ１９に設定されている値を“０”から“１”に変更する。
即ち、レジスタ番号用ＦＩＦＯレジスタ３２を構成しているレジスタの個数が、例えば、８個である場合、インクリメント後の使用面数が“８”になると、レジスタ番号用ＦＩＦＯレジスタ３２を構成している全てのレジスタに実行レジスタ番号が格納されているので、フルフラグレジスタ１９に設定されている値を“０”から“１”に変更する。
【００９３】
書込ＦＩＦＯ選択器３１は、書込制御部１５から書き込みイネーブル信号を受けると、レジスタ番号用ＦＩＦＯレジスタ３２を構成しているレジスタの中から、書込制御部１５から出力された選択信号に対応するレジスタを選択する。
例えば、選択信号が“０”であれば、レジスタ［０］を選択し、選択信号が“ｎ−１”であれば、レジスタ［ｎ−１］を選択する。
書込ＦＩＦＯ選択器３１は、選択信号に対応するレジスタを選択すると、シーケンス制御部１１から発行された実行レジスタ番号を当該レジスタに書き込む処理を実施する。
【００９４】
実行開始制御部２０は、使用面数レジスタ１８により格納されている使用面数が“０”でなければ、未実行の実行レジスタ番号が存在しているので（レジスタ番号用ＦＩＦＯレジスタ３２を構成している何れかのレジスタの中に実行レジスタ番号が格納されている）、命令発行開始指示を命令発行部２６に出力する。
即ち、実行開始制御部２０は、書込制御部１５から書き込みイネーブル信号が出力され、書込制御部１５により使用面数レジスタ１８により格納されている使用面数がインクリメントされて、使用面数が“０”でなくなると、命令発行開始指示を命令発行部２６に出力する。
【００９５】
読出制御部２２は、既に命令発行部２６から次命令リクエストが出力されている場合、読出面番号レジスタ２１により格納されている読み出し面番号を選択信号として読出ＦＩＦＯ選択器３３に出力するとともに、読み出しイネーブル信号を読出ＦＩＦＯ選択器３３に出力する。
命令発行部２６から初めて次命令リクエストが出力された段階では、読出面番号レジスタ２１により格納されている読み出し面番号は“０”であるため、“０”の選択信号が読出ＦＩＦＯ選択器３３に出力される。
【００９６】
読出制御部２２は、選択信号及び読み出しイネーブル信号を読出ＦＩＦＯ選択器３３に出力すると、使用面数レジスタ１８により格納されている使用面数をデクリメント（使用面数←使用面数−１）するとともに、読出面番号レジスタ２１により格納されている読み出し面番号をインクリメント（読み出し面番号←読み出し面番号＋１）する。
ただし、読み出し面番号の最大値は、レジスタ番号用ＦＩＦＯレジスタ３２を構成しているレジスタの個数に相当し、読み出し面番号が最大値に到達すると、次のインクリメントによって読み出し面番号が“０”に戻るようにする。
また、読出制御部２２は、デクリメント前の使用面数がレジスタ番号用ＦＩＦＯレジスタ３２を構成しているレジスタの個数に到達していれば、今回のパラメータの読み出しによって、レジスタに空きができるので、フルフラグレジスタ１９に設定されている値を“１”から“０”に変更する。
【００９７】
読出ＦＩＦＯ選択器３３は、読出制御部２２から読み出しイネーブル信号を受けると、レジスタ番号用ＦＩＦＯレジスタ３２を構成しているレジスタの中から、読出制御部２２から出力された選択信号に対応するレジスタを選択する。
例えば、選択信号が“０”であれば、レジスタ［０］を選択し、選択信号が“ｎ−１”であれば、レジスタ［ｎ−１］を選択する。
読出ＦＩＦＯ選択器３３は、選択信号に対応するレジスタを選択すると、そのレジスタにより格納されている実行レジスタ番号を取り出し、その実行レジスタ番号を読み出しレジスタ番号として読出レジスタ選択器３６に出力するとともに、読み出しイネーブル信号を読出レジスタ選択器３６に出力する。
【００９８】
読出レジスタ選択器３６は、読出ＦＩＦＯ選択器３３から読み出しイネーブル信号を受けると、複数のパラメータレジスタ３５の中から、読出ＦＩＦＯ選択器３３から出力された読み出しレジスタ番号に対応するパラメータレジスタ３５を選択し、そのパラメータレジスタ３５により格納されているパラメータを取り出して、そのパラメータを現実行用パラメータレジスタ２５に出力する。
【００９９】
現実行用パラメータレジスタ２５は、命令ＦＩＦＯ部１３の読出レジスタ選択器３６から出力されたパラメータを一時的に格納する。
命令発行部２６は、実行開始制御部２０から命令発行開始指示を受けると、演算用命令メモリ２４により格納されている演算命令の中から、現実行用パラメータレジスタ２５により格納されているパラメータが特定する演算命令を取得する。
例えば、パラメータが、演算命令が格納されている演算用命令メモリ２４内のアドレスを示していれば、そのアドレスに格納されている演算命令を取得する。
また、パラメータが、一連の演算命令の中の先頭の演算命令が格納されている演算用命令メモリ２４内のアドレスを示すスタートアドレスと、一連の演算命令の中の最後の演算命令が格納されている演算用命令メモリ２４内のアドレスを示すエンドアドレスとを示していれば、スタートアドレスに格納されている演算命令からエンドアドレスに格納されている演算命令までを取得する。
【０１００】
命令発行部２６は、パラメータが特定する演算命令を取得すると、その演算命令を演算器２に発行し、その演算命令の発行が完了すると、次命令リクエストを命令ＦＩＦＯ部１３の読出制御部２２に出力するとともに、処理完了通知をシーケンス制御部３０に出力する。
なお、一連の演算命令を繰り返し実行する旨を示すループ指示（ＯＮ）と一連の演算命令の繰り返し回数がパラメータ内に含まれている場合、一連の演算命令を繰り返し演算器２に発行する。
ただし、命令発行部２６は、実行開始制御部２０から次の命令発行指示を出力されていなければ、演算命令としてＮＯＰ命令を発行する。
【０１０１】
図３の制御回路１の処理内容は、上記の通りであるが、命令ＦＩＦＯ部１３は、命令発行部２６が演算命令を演算器２に発行している間も、シーケンス制御部３０から発行される実行レジスタ番号と書き込み通知を受け付けて、その実行レジスタ番号をレジスタ番号用ＦＩＦＯレジスタ３２に格納することが可能である。
したがって、命令発行部２６が演算命令を演算器２に発行している間に、次以降の演算命令を特定するパラメータを格納しているパラメータレジスタ３５を示す実行レジスタ番号をレジスタ番号用ＦＩＦＯレジスタ３２に複数個格納しておけば、使用面数レジスタ１８の設定値が“０”にならず、実行開始制御部２０から命令発行開始指示が命令発行部２６に出力される。
このため、命令発行部２６から次命令リクエストが出力され次第、読出制御部２２から読み出しイネーブル信号と選択信号が読出ＦＩＦＯ選択器３３に出力されて、レジスタ番号用ＦＩＦＯレジスタ３２から実行レジスタ番号が取り出されるとともに、パラメータレジスタ３５からパラメータが取り出され、即座に次の演算命令の発行が開始される。
【０１０２】
以上で明らかなように、この実施の形態２によれば、上記実施の形態１と同様に、割り込み処理やポーリング処理の実行を不要にして、オーバーヘッドの発生を削減することができるため、処理の高速化を図ることができる効果を奏する。
また、処理の高速化により、周波数や電源電圧を低減することができるため、低消費電力化を図ることができる。
【０１０３】
なお、この実施の形態２では、シーケンス制御部３０が、予め、処理開始前に、演算用命令メモリ２４により格納されている演算命令を特定するパラメータを複数のパラメータレジスタ３５に格納するものについて示したが、処理の途中でシーケンス制御部３０が、パラメータレジスタ３５に格納されているパラメータを変更するようにしてもよく、実行可能な演算種類の数には制限されない。
【符号の説明】
【０１０４】
１  制御回路、２  演算器、１１  シーケンス制御部（シーケンス制御手段）、１１ａ  シーケンス制御用命令メモリ、１１ｂ  演算器、１２  演算器制御部、１３  命令ＦＩＦＯ部、１４  書込面番号レジスタ（書込制御手段）、１５  書込制御部（書込制御手段）、１６  書込ＦＩＦＯ選択器（書込制御手段）、１７  パラメータ用ＦＩＦＯレジスタ（ＦＩＦＯレジスタ）、１８  使用面数レジスタ（書込制御手段、読出制御手段）、１９  フルフラグレジスタ（書込制御手段、読出制御手段）、２０  実行開始制御部（読出制御手段）、２１  読出面番号レジスタ（読出制御手段）、２２  読出制御部（読出制御手段）、２３  読出ＦＩＦＯ選択器（読出制御手段）、２４  演算用命令メモリ、２５  現実行用パラメータレジスタ（演算命令発行手段）、２６  命令発行部（演算命令発行手段）、３０  シーケンス制御部（シーケンス制御手段）、３１  書込ＦＩＦＯ選択器（書込制御手段）、３２  レジスタ番号用ＦＩＦＯレジスタ（ＦＩＦＯレジスタ）、３３  読出ＦＩＦＯ選択器（読出制御手段）、３４  書込レジスタ選択器、３５  パラメータレジスタ（パラメータ格納用レジスタ）、３６  読出レジスタ選択器（読出制御手段）。
【図１】
2011107955.tif 000003
【図２】
2011107955.tif 000004
【図３】
2011107955.tif 000005
【図４】
2011107955.tif 000006
【図５】
2011107955.tif 000007