(57)【要約】【課題】オーバーヘッドの増加を抑制する。【解決手段】演算システムは、所定の演算の演算内容の情報を有する要素コードと、前記所定の演算の入力値の情報を有し、前記要素コードと関連付けられている入力データと、を有する演算要素データが入力される演算システムであって、要素コードが入力される要素コードメモリ部３４と、入力データが入力される入力データメモリ部４０と、要素コードメモリ部３４の要素コードの情報、及び入力データメモリ部４０の入力データの情報を有する電気信号により演算を行う演算回路を複数有する要素演算部４４と、要素コードの演算内容に基づき、要素演算部４４から所定の演算回路を選択して演算を行わせる演算回路選択部３６と、要素演算部４４による演算結果が、要素コード及び入力データと関連付けられた出力データとして出力される出力データメモリ部５４と、を有する。【選択図】図４
2016076031.tif 000002
【特許請求の範囲】
【請求項１】
所定の演算の演算内容の情報を有する要素コードと、前記所定の演算の入力値の情報を有し、前記要素コードと関連付けられている入力データと、を有する演算要素データが入力される演算システムであって、
前記要素コードが入力される要素コードメモリ部と、
前記入力データが入力される入力データメモリ部と、
前記要素コードメモリ部の要素コードの情報、及び前記入力データメモリ部の前記入力データの情報を有する電気信号により演算を行う演算回路を複数有する要素演算部と、
前記要素コードの演算内容に基づき、前記要素演算部から所定の前記演算回路を選択して演算を行わせる演算回路選択部と、
前記要素演算部による演算結果が、前記要素コード及び前記入力データと関連付けられた出力データとして出力される出力データメモリ部と、を有する、
演算システム。
【請求項２】
前記演算要素データは、前記所定の演算に対応して複数入力され、さらに、前記所定の演算の演算順を示し、同じ前記演算要素データに属する要素コードと対応している演算順データを有し、
前記演算回路選択部は、前記演算順データに基づいた順番で、前記要素演算部に前記所定の演算を行わせる、
請求項１に記載の演算システム。
【請求項３】
前記出力データメモリ部は、複数の前記所定の演算のうち１つの演算結果に対応する前記出力データを複数の前記所定の演算のうち他の演算の前記入力データとして使用する場合に、前記出力データを前記入力データとして前記入力データメモリ部に出力する、
請求項２に記載の演算システム。
【請求項４】
前記要素演算部が、第１要素演算部と第２要素演算部との複数設けられ、
前記所定の演算の出力データを、前記所定の演算と連続して行われる他の演算の入力データとして用いるかについて、前記要素コード及び前記演算順データに基づいて確認する並行演算確認部を更に有し、
前記並行演算確認部により前記所定の演算の出力データを前記他の演算の入力データとして用いないと確認した場合に、前記第１要素演算部は、前記所定の演算を行い、前記第２要素演算部は、前記第１要素演算部による前記所定の演算と並行して前記他の演算を行う、
請求項２又は請求項３に記載の演算システム。
【請求項５】
前記出力データメモリ部は、前記所定の演算の入力値が入力され、
前記入力データメモリ部は、前記入力データとして、前記出力データメモリ部の前記所定の演算の入力値が入力されているアドレスが入力され、
前記要素演算部は、前記入力データに基づいて読み出された前記所定の演算の入力値に基づき演算を行う、請求項２から請求項４のいずれか１項に記載の演算システム。
【請求項６】
前記演算要素データは、１つの演算で使用される複数の入力データを有し、
前記入力データメモリ部は、第１入力データメモリ部と第２入力データメモリ部との複数設けられ、
前記第１入力データメモリ部は、前記要素演算部から、１つの演算で使用される複数の前記入力データのうち一部の入力データが読み出され、
前記第２入力データメモリ部は、前記第１入力データメモリ部からの前記一部の入力データの読み出しと並行して、前記要素演算部から、１つの演算で使用される複数の前記入力データのうち他の一部の入力データが読み出される、
請求項１から請求項５のいずれか１項に記載の演算システム。
【請求項７】
請求項１から請求項６のいずれか１項に記載の演算システムと、
ロジックを図形で表現した図形言語で記載される制御ロジックから前記演算要素データを生成して前記演算システムに出力し、前記演算システムの出力データに基づき機械の動作を制御する主演算部と、を有する、制御装置。
【請求項８】
所定の演算の演算内容の情報を有する要素コードと、前記所定の演算の入力値の情報を有し、前記要素コードと関連付けられている入力データと、を取得するステップと、
前記要素コード及び前記入力データの情報を有する電気信号により所定の演算を行う複数の演算回路から、前記要素コードの演算内容に基づいて所定の前記演算回路を選択し、選択した所定の前記演算回路によって演算を行うステップと、
所定の前記演算回路の演算結果を、前記要素コード及び前記入力データと関連付けられた出力データとして出力するステップと、
を有する、演算方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、演算システム、制御装置及び演算方法に関する。
【背景技術】
【０００２】
プラントの機械等には、機械を制御するために演算を行い、その演算結果に基づき機械を制御する制御装置が組み込まれている。この場合、ファンクションブロックダイアグラム等の図形言語で記述された制御ロジックを、制御装置に認識可能な機械語プログラムに変換し、制御装置がこの機械語プログラムに従って演算を行うことで、機械を制御する場合がある。例えば、特許文献１には、図形言語に基づき汎用ロボットを制御する制御装置が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１１−３３８５２１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、近年、機械制御に高応答性が求められており、制御装置に高速演算が可能な高性能ＣＰＵが搭載される機会が増えている。高性能ＣＰＵは、高速演算が可能であるが、ハードウェア又はＯＳ（Ｏｐｅｒａｔｉｏｎ  Ｓｙｓｔｅｍ）が複雑となってしまい、オーバーヘッド（演算負荷）が増加する。オーバーヘッドが増加すれば、演算速度が低下したり、消費電力が高くなったりするという問題が生じる。
【０００５】
また、特にプラントの機械等に用いられる場合、プログラムのバグを発見したり、異常発生時に機械を停止させたりするための自己診断機能を制御装置に組み入れることも求められている。この場合においても、自己診断を行うために、オーバーヘッドが増加する。また、このようなオーバーヘッドの増加によりコンテクストに切替えが必要となり、このコンテクスト切替えがさらにオーバーヘッドを増加させてしまう。このように、機械制御に用いられる制御装置は、オーバーヘッドの増加という問題が生じている。
【０００６】
ここで、本発明は、上記課題を解決するために、オーバーヘッドの増加を抑制する演算システム、制御装置及び演算方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するために、本発明の演算システムは、所定の演算の演算内容の情報を有する要素コードと、前記所定の演算の入力値の情報を有し、前記要素コードと関連付けられている入力データと、を有する演算要素データが入力される演算システムであって、前記要素コードが入力される要素コードメモリ部と、前記入力データが入力される入力データメモリ部と、前記要素コードメモリ部の要素コードの情報、及び前記入力データメモリ部の前記入力データの情報を有する電気信号により演算を行う演算回路を複数有する要素演算部と、前記要素コードの演算内容に基づき、前記要素演算部から所定の前記演算回路を選択して演算を行わせる演算回路選択部と、前記要素演算部による演算結果が、前記要素コード及び前記入力データと関連付けられた出力データとして出力される出力データメモリ部と、を有する。
【０００８】
この演算システムは、演算に必要なデータのみを抽出して、選択した演算回路によって演算を行う。従って、この演算システムは、機械を制御する制御装置に搭載された際、制御装置のメモリから必要なデータを抽出して演算回路を選択するだけで演算を行うことができる。従って、この演算システムは、制御装置の演算処理の負担を軽減し、制御装置のオーバーヘッドの増加を抑制することができる。
【０００９】
前記演算システムにおいて、前記演算要素データは、前記所定の演算に対応して複数入力され、さらに、前記所定の演算の演算順を示し、同じ前記演算要素データに属する要素コードと対応している演算順データを有し、前記演算回路選択部は、前記演算順データに基づいた順番で、前記要素演算部に前記所定の演算を行わせることが好ましい。この演算システムによると、演算順データに基づいて演算順を判断する。従って、この演算システムは、機械を制御する制御装置に搭載された際、この制御装置がメモリから全てのデータを読み込んで演算順を判断する必要が無い。従って、この演算システムは、制御装置のデータ読み取り負荷を軽減することにより、制御装置のオーバーヘッドの増加を好適に抑制することができる。
【００１０】
前記演算システムにおいて、前記出力データメモリ部は、複数の前記所定の演算のうち１つの演算結果に対応する前記出力データを複数の前記所定の演算のうち他の演算の前記入力データとして使用する場合に、前記出力データを前記入力データとして前記入力データメモリ部に出力することが好ましい。この演算システムは、出力データメモリ部とのデータの送受信により、入力データを入力データメモリ部に入力する。従って、この演算システムは、入力データを入力するために、例えば他の箇所とのデータの送受信処理が不要となり、オーバーヘッドの増加を好適に抑制することができる。
【００１１】
前記演算システムは、前記要素演算部が、第１要素演算部と第２要素演算部との複数設けられ、前記所定の演算の出力データを、前記所定の演算と連続して行われる他の演算の入力データとして用いるかについて、前記要素コード及び前記演算順データに基づいて確認する並行演算確認部を更に有し、前記並行演算確認部により前記所定の演算の出力データを前記他の演算の入力データとして用いないと確認した場合に、前記第１要素演算部は、前記所定の演算を行い、前記第２要素演算部は、前記第１要素演算部による前記所定の演算と並行して前記他の演算を行うことが好ましい。この演算システムによると、連続して行われる演算が互いに依存関係を有さない場合に、それらの演算を並行して実行することができるため、演算の処理速度を向上させることができる。
【００１２】
前記演算システムにおいて、前記出力データメモリ部は、前記所定の演算の入力値が入力され、前記入力データメモリ部は、前記入力データとして、前記出力データメモリ部の前記所定の演算の入力値が入力されているアドレスが入力され、前記要素演算部は、前記入力データに基づいて読み出された前記所定の演算の入力値に基づき演算を行うことが好ましい。この演算システムによれば、入力データの読み出しにあたり、出力データメモリ部のデータと入力データメモリ部のデータとの関連を読み取る処理が不要となる。そのため、この演算システムによると、演算の処理負担を軽減することができる。
【００１３】
前記演算システムにおいて、前記演算要素データは、１つの演算で使用される複数の入力データを有し、前記入力データメモリ部は、第１入力データメモリ部と第２入力データメモリ部との複数設けられ、前記第１入力データメモリ部は、前記要素演算部から、１つの演算で使用される複数の前記入力データのうち一部の入力データが読み出され、前記第２入力データメモリ部は、前記第１入力データメモリ部からの前記一部の入力データの読み出しと並行して、前記要素演算部から、１つの演算で使用される複数の前記入力データのうち他の一部の入力データが読み出されることが好ましい。この演算システムによると、複数の入力データメモリ部からの入力データの読み出しが並行して行われるため、演算の処理速度を向上させることができる。
【００１４】
本発明の制御装置は、前記演算システムと、ロジックを図形で表現した図形言語で記載される制御ロジックから前記演算要素データを生成して前記演算システムに出力し、前記演算システムの出力データに基づき機械の動作を制御する主演算部と、を有する。この制御装置は、演算システムが演算を行い、主演算部は演算を行わない。従って、この制御装置は、演算システムが演算を行うため、実際に機械の動作を制御する主演算部の処理負担を軽減し、主演算部のオーバーヘッドの増加を好適に抑制することができる。
【００１５】
本発明の演算方法は、所定の演算の演算内容の情報を有する要素コードと、前記所定の演算の入力値の情報を有し、前記要素コードと関連付けられている入力データと、を取得するステップと、前記要素コード及び前記入力データの情報を有する電気信号により所定の演算を行う複数の演算回路から、前記要素コードの演算内容に基づいて所定の前記演算回路を選択し、選択した所定の前記演算回路によって演算を行うステップと、所定の前記演算回路の演算結果を、前記要素コード及び前記入力データと関連付けられた出力データとして出力するステップとを有する。この演算方法は、演算に必要なデータのみを抽出して、選択した演算回路によって演算を行うものである。従って、この演算方法によれば、処理負担の増加を抑制し、オーバーヘッドの増加を抑制することができる。
【発明の効果】
【００１６】
本発明によれば、演算処理にあたり、オーバーヘッドの増加を抑制することができる。
【図面の簡単な説明】
【００１７】
【図１】図１は、実施形態１に係る機械の構成を示すブロック図である。
【図２】図２は、実施形態１に係る制御ロジックの一例を示した模式図である。
【図３】図３は、実施形態１に係る主演算部が生成する演算要素データの一例を示す表である。
【図４】図４は、実施形態１に係る演算部の構成を示すブロック図である。
【図５】図５は、実施形態１に係る要素演算部の構成の一例を示すブロック図である。
【図６】図６は、実施形態１に係る演算部の演算処理を説明するフローチャートである。
【図７】図７は、生成した出力データが前出力データでない場合の演算フローを示した模式図である。
【図８】図８は、生成した出力データが前出力データである場合の演算フローを示した模式図である。
【図９】図９は、実施形態１に係る演算部の他の演算方法の一例を示すフローチャートである。
【図１０】図１０は、実施形態１に係る演算部が他の演算方法を行った場合の演算フローの一例を示す模式図である。
【図１１】図１１は、実施形態２に係る演算部の構成を示すブロック図である。
【図１２】図１２は、実施形態３に係る演算部の構成を示すブロック図である。
【図１３】図１３は、実施形態４に係る演算部の構成を示すブロック図である。
【発明を実施するための形態】
【００１８】
以下に添付図面を参照して、本発明の好適な実施形態を詳細に説明する。なお、この実施形態により本発明が限定されるものではなく、また、実施形態が複数ある場合には、各実施例を組み合わせて構成するものも含むものである。
【００１９】
（実施形態１）
本発明の実施形態１について説明する。図１は、実施形態１に係る機械の構成を示すブロック図である。図１に示すように、実施形態１に係る機械１は、制御ロジック入力部５と、制御装置１０と、機械部１００とを有する。制御ロジック入力部５と制御装置１０とは、電気的に接続されている。制御装置１０と機械部１００とは、電気的に接続されている。機械１は、例えばプラント等で用いられる産業機械である。機械１は、制御装置１０の制御により機械部１００が動作することにより所定の作業を行う。より詳しくは、機械１は、制御ロジック入力部５に制御ロジックが入力され、制御装置１０が、その制御ロジックに記載された指令に従い機械部１００を制御する機械である。なお、機械１は、プラント等で用いられる産業機械に限られず、制御ロジックに基づいて動作する機械であれば、その用途は任意である。
【００２０】
制御ロジック入力部５は、機械１を制御するための制御ロジックが入力される。ここで、制御ロジックとは、プログラム言語で記載されて、機械１に所定の動作を行わせるための指令が記載されているデータである。実施形態１においては、制御ロジックは、例えばブロック図等の図形でプログラム言語が表現された図形言語制御ロジックである。より詳しくは、実施形態１の制御ロジックは、例えば標準規格ＩＥＣ６１１３１−３で規定されるＰＬＣ（Ｐｒｏｇｒａｍａｂｌｅ  Ｌｏｇｉｃ  Ｃｏｎｔｒｏｌｌｅｒ）に用いられるプログラム言語である。さらに詳しくは、実施形態１の制御ロジックは、標準規格ＩＥＣ６１１３１−３で規定されるファンクションブロックダイアグラム言語である。ただし、制御ロジックは、上記に記載されたものに限られず、プログラム言語で記載されて、機械１に所定の動作を行わせるための指令が記載されているデータであれば、任意に選択することができる。
【００２１】
図２は、実施形態１に係る制御ロジックの一例を示した模式図である。実施形態１の制御ロジックは、例えば、図２に示すように、演算内容が記載されたブロックを演算の順序に沿って矢印で接続したファンクションブロックダイアグラム言語で記載されている。図２に示すように、実施形態１に係る制御ロジックは、ブロック１１１、１１２、１１３が矢印で接続されている。ブロック１１１は、入力値ｘ１と入力値ｘ２とを加算して、出力値ｙ１を出力するＡＤＤ演算を表現している。また、ブロック１１２は、ＡＤＤ演算と並列して行われ、入力値ｘ３と入力値ｘ４との差分を計算して、出力値ｙ２を出力するＳＵＢ演算を表現している。また、ブロック１１３は、ＡＤＤ演算及びＳＵＢ演算の後に行われ、ＡＤＤ演算の出力値ｙ１とＳＵＢ演算の出力値ｙ２をそれぞれ入力値として、それらｙ１とｙ２との大小を比較して、その比較結果を出力値ｙ３として出力するＣＯＭＰ演算を表現している。なお、この演算は一例であり、制御ロジックは、複数の演算を組み合わせた任意の演算を記載することができる。
【００２２】
図１に示すように、制御装置１０は、主演算部２０と、演算要素データ記憶部２２と、演算システムとしての演算部３０とを有する。主演算部２０は、演算要素データ記憶部２２及び演算部３０と電気的に接続されている。制御装置１０は、制御ロジック入力部５に入力された制御ロジックに基づいて演算を行い、その演算結果に基づいて、機械部１００に所定の動作を行わせる。
【００２３】
主演算部２０は、制御装置１０の中央処理装置である。すなわち、主演算部２０は、制御装置１０を制御するために主要な演算を行うＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。主演算部２０は、制御ロジック入力部５から入力された制御ロジックに基づき、制御ロジックに記載された演算を行うための各種データを有する演算要素データを生成する。また、主演算部２０は、演算部３０の出力データに基づき機械の動作を制御する。
【００２４】
具体的には、主演算部２０は、制御ロジック入力部５から制御ロジックが入力される。主演算部２０は、入力された制御ロジックに基づき、演算に必要な複数のデータを集めた演算要素データＤＴを抽出して生成する。演算要素データＤＴは、演算の順番の情報を有する演算順データＩＤと、演算の内容（ＡＤＤ演算等）の情報を有する要素コードＯＰと、演算の入力値ｘの情報を有する入力データＸと、演算の出力値ｙのアドレス情報を有する出力アドレスデータＹ’とを有する。同じ演算要素データＤＴに属する演算順データＩＤと、要素コードＯＰと、入力データＸと、出力アドレスデータＹ’とは、互いに関連付けられている。
【００２５】
ここで、演算の出力値ｙは、実際に演算を行った後に入力される信号値であり、演算が行われる前にはまだ算出されていない。従って、演算要素データＤＴは、出力データＹのかわりに、出力値ｙの電気信号が生成された際に出力値ｙの電気信号が記憶される箇所のアドレス情報を有する、出力アドレスデータＹ’を有している。演算要素データＤＴは、演算が行われた後に、出力アドレスデータＹ’の記憶しているアドレスに出力値ｙが入力され、出力値ｙの信号値を有する出力データＹとして置き換えられる。
【００２６】
また、実施形態１において、制御ロジックに記載されている演算は、複数の演算を組み合わせて構成されている。演算要素データＤＴは、その複数の演算毎に一つずつ生成される。さらに、実施形態１において、制御ロジックに記載されている演算は、複数の演算のうち前に行われる演算の演算結果（出力値）を、複数の演算のうち後に行われる別の演算の入力値として使用する。以下、出力値が他の演算に使用される演算の演算要素データを演算要素データＤＴＡと記載する。また、演算要素データＤＴＡの出力値を入力値として使用する演算の演算要素データを、演算要素データＤＴＢと記載する。演算要素データＤＴＡは、演算順データＩＤＡと、要素コードＯＰＡと、この演算の入力値である前入力値ｘＡの情報を有する前入力データＸＡと、この演算の出力値である前出力値ｙＡのアドレス情報を有する前出力アドレスデータＹＡ’とを有する。演算要素データＤＴＡに係る演算が行われた後、前出力アドレスデータＹＡ’は、前出力値ｙＡの信号値を有する前出力データＹＡに置き換えられる。
【００２７】
演算要素データＤＴＢは、演算順データＩＤＢと、要素コードＯＰＢと、後入力値ｘＢのアドレスデータを有する後入力アドレスデータＸＢ’と、この演算の出力値である後出力値ｙＢのアドレス情報を有する後出力アドレスデータＹＢ’とを有する。ここで、後入力アドレスデータＸＢ’は、演算要素データＤＴＡの演算の前出力値ｙＡの電気信号が生成された際に、前出力値ｙＡを後入力値ｘＢとする電気信号が記憶される箇所のアドレス情報を有する。前出力値ｙＡが後入力値ｘＢに置き換えられるため、前出力値ｙＡと後入力値ｘＢとは同じ信号値である。演算要素データＤＴＡに係る演算が行われた後、後入力アドレスデータＸＢ’は、後入力値ｘＢの信号値を有する後入力データＸＢに置き換えられる。また、演算要素データＤＴＢに係る演算が行われた後、後出力アドレスデータＹＢ’は、後出力値ｙＢの信号値を後有する出力データＹＢに置き換えられる。
【００２８】
次に、例として、図２の制御ロジックに基づいて生成した場合の演算要素データＤＴについて、説明する。図３は、実施形態１に係る主演算部が生成する演算要素データの一例を示す表である。例えば、図２に示す制御ロジックが入力された場合、主演算部２０は、図３に示すような演算要素データを生成する。図３に示すように、主演算部２０は、演算要素データＤＴ１、ＤＴ２、ＤＴ３を生成する。演算要素データＤＴ１は、制御ロジックのＡＤＤ演算に対応する。演算要素データＤＴ２は、制御ロジックのＳＵＢ演算に対応する。演算要素データＤＴ３は、制御ロジックのＣＯＭＰ演算に対応する。演算要素データＤＴ３の演算は、演算要素データＤＴ１、ＤＴ２の後に行われ、かつ、演算要素データＤＴ１、ＤＴ２の出力値を、入力値として使用する。従って、演算要素データＤＴ１、ＤＴ２は、演算要素データＤＴＡに対応し、演算要素データＤＴ３は、演算要素データＤＴＢに対応する。
【００２９】
演算要素データＤＴ１は、演算の順番を示す「ＩＤ＝１」の情報が入力される演算順データＩＤ１、ブロック１１１に対応し演算の内容の情報を有する（ここではＡＤＤ演算）要素コードＯＰ１、前入力値ｘ１の値の情報を有する前入力データＸ１、前入力値ｘ２の値の情報を有する前入力データＸ２、前出力データＹ１のアドレスデータであるｙ１アドレスデータを有する前出力アドレスデータＹ１’を有する。ここで、演算順データＩＤ１に入力されている情報「ＩＤ＝１」は、演算の順番が１番目であることを意味している。また、前出力アドレスデータＹ１’は、ＡＤＤ演算の結果が出力されたら、その演算結果の値である前出力値ｙ１の値を有する前出力データＹ１に置き換えられる。
【００３０】
演算要素データＤＴ２は、演算の順番を示す演算順データＩＤ２、ブロック１１２に対応し演算の内容の情報を有する（ここではＳＵＢ演算）要素コードＯＰ２、前入力値ｘ３の値の情報を有する前入力データＸ３、前入力値ｘ４の値の情報を有する前入力データＸ４、前出力データＹ２のアドレスデータであるｙ２アドレスデータを有する前出力アドレスデータＹ２’を有する。ここで、演算順データＩＤ２に入力されている情報「ＩＤ＝２」は、演算の順番が２番目であることを意味している。また、前出力アドレスデータＹ２’は、ＳＵＢ演算の結果が出力されたら、その演算結果の値である前出力値ｙ２の値を有する前出力データＹ２に置き換えられる。
【００３１】
演算要素データＤＴ３は、演算の順番を示す演算順データＩＤ３、ブロック１１３に対応し演算の内容の情報を有する（ここではＣＯＭＰ演算）要素コードＯＰ３、後入力値ｘ５（前出力値ｙ１に対応）のアドレスデータを有する後入力アドレスデータＸ５’、後入力値ｘ６（前出力値ｙ２に対応）のアドレスデータを有する後入力アドレスデータＸ６’、後出力値ｙ３のアドレスデータを有する後出力アドレスデータＹ３’を有する。ここで、演算順データＩＤ３に入力されている情報「ＩＤ＝３」は、演算の順番が３番目であることを意味している。また、後入力アドレスデータＸ５’は、前出力データＹ１が出力された後、前出力値ｙ１を後入力値ｘ５とする後入力データＸ５に置き換えられる。また、後入力アドレスデータＸ６’は、前出力データＹ２が出力された後、前出力値ｙ２を後入力値ｘ６とする後入力データＸ６に置き換えられる。また、後出力アドレスデータＹ３’は、ＣＯＭＰ演算の結果が出力されたら、その演算結果の値である後出力値ｙ３の値を有する後出力データＹ３に置き換えられる。
【００３２】
このように、主演算部２０は、演算順データＩＤＡ、要素コードＯＰＡ、前入力データＸＡ及び前出力アドレスデータＹＡ’を有する演算要素データＤＴＡと、演算順データＩＤＢ、要素コードＯＰＢ、後入力アドレスデータＸＢ’及び後出力アドレスデータＹＢ’を有する演算要素データＤＴＢとを含む演算要素データＤＴを生成する。また、各演算が終わった後、演算要素データＤＴＡは、演算順データＩＤＡ、要素コードＯＰＡ、前入力データＸＡ及び前出力データＹＡを有する。同様に、各演算が終わった後、演算要素データＤＴＢは、演算順データＩＤＢ、要素コードＯＰＢ、後入力データＸＢ及び後出力データＹＢを有する。以下、演算順データＩＤＡと演算順データＩＤＢとを区別しない場合は、適宜演算順データＩＤと記載する。また、要素コードＯＰＡと要素コードＯＰＢとを区別しない場合は、適宜要素コードＯＰと記載する。また、前入力データＸＡと後入力データＸＢとを区別しない場合は、適宜入力データＸと記載する。また、前出力アドレスデータＹＡ’と後出力アドレスデータＹＢ’とを区別しない場合は、適宜出力アドレスデータＹ’と記載する。また、前出力データＹＡと後出力データＹＢとを区別しない場合は、適宜出力データＹと記載する。
【００３３】
主演算部２０は、この演算要素データＤＴを、演算要素データ記憶部２２に記憶させる。なお、演算要素データ記憶部２２は、制御装置１０に含まれているＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。ただし、演算要素データ記憶部２２は、書き込み可能なＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、又は外部メモリ等であってもよい。
【００３４】
図４は、実施形態１に係る演算部の構成を示すブロック図である。演算部３０は、主演算部２０に接続されて補助的に演算を行う演算回路であり、主演算部２０が生成した演算要素データＤＴに基づき、演算を実行する。図４に示すように、演算部３０は、ＩＦ部３２、要素コードメモリ部３４、演算回路選択部３６、入力データメモリ部４０、第１入力レジスタ部４２Ａ、第２入力レジスタ部４２Ｂ、要素演算部４４、出力レジスタ部４８、ＭＵＸ５２、５６、５８、出力データメモリ部５４及び副入力レジスタ部５５を有する。実施形態１において、演算部３０は、製造後に使用者等が構成を設定できる集積回路であるＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）であるが、以下説明する機能を有している演算回路であれば、ＦＰＧＡに限定されない。
【００３５】
ＩＦ部３２は、主演算部２０と演算部３０とのインターフェイスを行う。ＩＦ部３２は、主演算部２０と電気的に接続される。ＩＦ部３２は、主演算部２０を介して、演算要素データ記憶部２２から、演算要素データＤＴが入力される。より詳しくは、ＩＦ部３２は、入力された演算要素データＤＴの各データを分類して、要素コードＯＰ及び演算順データＩＤを要素コードメモリ部３４に出力し、前入力データＸＡ、後入力アドレスデータＸＢ’、及び演算順データＩＤを入力データメモリ部４０に出力し、前出力アドレスデータＹＡ’、後出力アドレスデータＹＢ’及び演算順データＩＤを出力データメモリ部５４に出力する。また、ＩＦ部３２は、出力データメモリ部５４が生成した後出力データＹＢを主演算部２０に出力する。
【００３６】
要素コードメモリ部３４は、ＩＦ部３２と電気的に接続されている。要素コードメモリ部３４は、同じ演算要素データに属する要素コードＯＰ及び演算順データＩＤを、互いを関連付けて記憶する。実施形態１において、要素コードメモリ部３４は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。
【００３７】
演算回路選択部３６は、要素コードメモリ部３４及び要素演算部４４と電気的に接続されている。演算回路選択部３６は、要素コードメモリ部３４から、要素コードＯＰ及び演算順データＩＤが入力される。演算回路選択部３６は、演算順データＩＤから、どの順で演算を行うかを読み出し、行う演算に用いる要素コードＯＰを選択する。演算回路選択部３６は、選択した要素コードＯＰの信号値をデコードしてどのような演算を行うかを読み出し、要素演算部４４が有する演算回路から演算を行わせる演算回路を選択する。演算回路選択部３６の演算回路の選択については、後述する。
【００３８】
入力データメモリ部４０は、ＩＦ部３２と電気的に接続されている。より詳しくは、入力データメモリ部４０は、ＭＵＸ５８を介してＩＦ部３２と電気的に接続されている（ＭＵＸ５８については後述する）。入力データメモリ部４０は、同じ演算要素データに属する前入力データＸＡと後入力アドレスデータＸＢ’と演算順データＩＤＢとを関連付けて記憶する。また、詳しくは後述するが、入力データメモリ部４０は、後入力アドレスデータＸＢ’と、それに対応する前出力データＹＡとに基づき、後入力データＸＢを生成して記憶する。実施形態１において、入力データメモリ部４０は、ＲＡＭである。
【００３９】
なお、入力データメモリ部４０は、同じ演算要素データに属する前入力データＸＡ又は後入力アドレスデータＸＢ’と要素コードＯＰとの関連を記憶するために、演算順データＩＤが入力されている。入力データメモリ部４０は、同じ演算要素データに属する前入力データＸＡ又は後入力アドレスデータＸＢ’と要素コードＯＰとの関連を記憶できれば、演算順データＩＤを記憶しなくてもよい。例えば、入力データメモリ部４０は、前入力データＸＡ又は後入力アドレスデータＸＢ’に、自身が属する演算要素データＤＴの情報など、同じ演算要素データに属する要素コードＯＰと関連していることを示す情報が含まれていれば、前入力データＸＡ又は後入力アドレスデータＸＢ’のみを記憶すればよい。
【００４０】
第１入力レジスタ部４２Ａ及び第２入力レジスタ部４２Ｂは、入力データメモリ部４０及び要素演算部４４と電気的に接続されているレジスタである。第１入力レジスタ部４２Ａ及び第２入力レジスタ部４２Ｂは、演算順データＩＤから、これから行う演算に用いる入力データＸを選択して入力データメモリ部４０から読み出し、要素演算部４４に出力する。ここで、第１入力レジスタ部４２Ａと第２入力レジスタ部４２Ｂとは、入力データメモリ部４０及び要素演算部４４に並列に接続されている。第１入力レジスタ部４２Ａは、所定の演算で使用する一方の入力データＸ（例えばＡＤＤ演算における前入力データＸ１）を読み出し、第２入力レジスタ部４２Ｂは、所定の演算で使用する他方の入力データＸ（例えばＡＤＤ演算における前入力データＸ２）を読み出す。第１入力レジスタ部４２Ａと第２入力レジスタ部４２Ｂとは、同じ演算で使用する入力データＸを、要素演算部４４に同時に出力する。このように、実施形態１において、入力レジスタ部は２つ設けられているが、これに限られず、１つ設けられていてもよく、３つ以上設けられていてもよい。
【００４１】
図５は、実施形態１に係る要素演算部の構成の一例を示すブロック図である。図５に示すように、要素演算部４４は、演算回路４５Ａ、４５Ｂ、４５Ｃ、４５Ｄ、４５Ｅと、スイッチ部４６Ａ、４６Ｂ、４６Ｃ、４６Ｄ、４６Ｅとを有する。演算回路４５Ａ、４５Ｂ、４５Ｃ、４５Ｄ、４５Ｅは、それぞれスイッチ部４６Ａ、４６Ｂ、４６Ｃ、４６Ｄ、４６Ｅを介して、第１入力レジスタ部４２Ａ及び第２入力レジスタ部４２Ｂと電気的に接続されている。また、演算回路４５Ａ、４５Ｂ、４５Ｃ、４５Ｄ、４５Ｅは、出力レジスタ部４８と電気的に接続されている。以下、演算回路４５Ａ、４５Ｂ、４５Ｃ、４５Ｄ、４５Ｅを区別しない場合は、適宜演算回路４５と記載する。また、以下、スイッチ部４６Ａ、４６Ｂ、４６Ｃ、４６Ｄ、４６Ｅを区別しない場合は、適宜スイッチ部４６と記載する。要素演算部４４は、スイッチ部４６の接続切り替えにより、演算に使用する演算回路４５が選択され、選択された演算回路４５により、所定の演算を行う演算回路の集合体である。
【００４２】
演算回路４５は、それぞれ異なる演算を行うことができる電子回路である。実施形態１において、演算回路４５ＡはＡＤＤ演算を行うＡＤＤ回路であり、演算回路４５ＢはＳＵＢ演算を行うＳＵＢ回路であり、演算回路４５ＣはＣＯＭＰ演算を行うＣＯＭＰ回路であり、演算回路４５ＤはＡＮＤ演算を行うＡＮＤ回路であり、演算回路４５ＥはＯＲ演算を行うＯＲ回路である。演算回路４５は、これら演算回路４５Ａ、４５Ｂ、４５Ｃ、４５Ｄ、４５Ｅに限られず、入力信号（電気信号）に応じてそれぞれ異なる演算に対応した出力信号を生成する回路を複数有しているものであればよい。
【００４３】
スイッチ部４６は、第１入力レジスタ部４２Ａ及び第２入力レジスタ部４２Ｂと、各演算回路４５との接続を切り替えるスイッチである。スイッチ部４６は、演算回路選択部３６に電気的に接続されている。スイッチ部４６は、演算回路選択部３６の電気信号により、スイッチをＯＮとし、所定の演算回路４５と第１入力レジスタ部４２Ａ及び第２入力レジスタ部４２Ｂとを電気的に接続させる。
【００４４】
すなわち、演算回路選択部３６は、入力された要素コードに基づいて演算内容を判断する。演算回路選択部３６は、その演算内容に基づき、対応する演算を行う演算回路４５を選択し、その演算回路４５に対応するスイッチ部４６のスイッチをＯＮとする選択信号Ｓを出力する。選択された演算回路４５には、第１入力レジスタ部４２Ａ及び第２入力レジスタ部４２Ｂから入力データＸが入力される。選択された演算回路４５は、その入力データＸ（電気信号）に基づいて、所定の演算結果の情報である出力値ｙ（前出力値ｙＡ又は後出力値ｙＢ）の信号値を有する演算結果データＷを生成し、出力レジスタ部４８に出力する。なお、演算結果データＷは、出力値ｙの信号値を有するが、演算要素データＤＴに関連付けられていない。また、要素演算部４４は、複数の演算回路４５を有し、演算回路選択部３６により演算を行う演算回路を選択されるものであれば、スイッチ部によるものに限られず、任意の構成をとることができる。
【００４５】
例えば、演算回路選択部３６に、ＡＤＤ演算を行う要素コードＯＰ１が入力された場合、演算回路選択部３６は、スイッチ部４６ＡのスイッチをＯＮにして、第１入力レジスタ部４２Ａ及び第２入力レジスタ部４２Ｂと演算回路４５Ａとを接続する。ここで、第１入力レジスタ部４２Ａは、要素コードＯＰ１に対応する前入力データＸ１を読み出しており、第２入力レジスタ部４２Ｂは、要素コードＯＰ１に対応する前入力データＸ２を読み出している。従って、演算回路４５Ａには、前入力データＸ１、Ｘ２が入力される。演算回路４５Ａは、ＡＤＤ演算の演算結果である後出力値ｙ１の信号値を有する演算結果データを生成して、出力レジスタ部４８に出力する。
【００４６】
出力レジスタ部４８は、ＭＵＸ５２を介して出力データメモリ部５４に電気的に接続されるレジスタである。出力レジスタ部４８は、要素演算部４４から演算結果データＷが出力され、その演算結果データをＭＵＸ５２に出力する。なお、出力レジスタ部４８は、内部にマルチプレクサを有し、演算要素部４４からこのマルチプレクサを介して演算結果データＷが入力される。
【００４７】
ＭＵＸ５２は、マルチプレクサである。ＭＵＸ５２は、ＩＦ部３２、出力レジスタ部４８、出力データメモリ部５４に電気的に接続される。ＭＵＸ５２は、ＩＦ部３２から出力アドレスデータＹ’及び演算順データＩＤが入力された場合は、出力アドレスデータＹ’及び演算順データＩＤを出力データメモリ部５４に出力する。また、ＭＵＸ５２は、出力レジスタ部４８から演算結果データＷが出力された場合は、演算結果データＷを出力データメモリ部５４に出力する。
【００４８】
出力データメモリ部５４は、同じ演算要素データＤＴに属する出力アドレスデータＹ’及び演算順データＩＤを関連付けて記憶する。また、出力データメモリ部５４は、演算結果データＷが入力された場合、演算順データＩＤに基づき、出力アドレスデータＹ’のアドレス情報と、対応する演算結果データＷの出力値ｙとを関連付け、出力値ｙを有する出力データＹとして記憶する。また、出力データメモリ部５４は、ＭＵＸ５６を介してＩＦ部３２と接続されている（ＭＵＸ５６については後述する）。出力データメモリ部５４は、記憶した出力データＹを、ＭＵＸ５６を介してＩＦ部３２に出力する。なお、実施形態１において、出力データメモリ部５４は、ＲＡＭである。
【００４９】
副入力レジスタ部５５は、入力データメモリ部４０とＭＵＸ５６とに電気的に接続されるレジスタである。副入力レジスタ部５５は、出力データを次の他の演算の入力データとして用いるかを決定するために、入力データメモリ部４０から後入力アドレスデータＸＢ’を読み出すものである。副入力レジスタ部５５は、入力データメモリ部４０から、第１入力レジスタ部４２Ａ及び第２入力レジスタ部４２Ｂが読み出した前入力データＸＡに対応する演算の後に行われる演算に属する後入力アドレスデータＸＢ’を読み出して、ＭＵＸ５６に出力する。例えば、第１入力レジスタ部４２Ａ及び第２入力レジスタ部４２Ｂが、演算要素データＤＴ１に対応する前入力データＸ１、Ｘ２を読み出した場合、副入力レジスタ部５５は、それよりも後の演算に対応する演算要素データＤＴ３の後入力アドレスデータＸ５’、Ｘ６’を読み出して、ＭＵＸ５６に出力する。
【００５０】
ＭＵＸ５６は、マルチプレクサである。ＭＵＸ５６は、ＩＦ部３２、出力データメモリ部５４、副入力レジスタ部５５、ＭＵＸ５８と電気的に接続される。ＭＵＸ５６は、出力データメモリ部５４から、出力データＹが入力される。ＭＵＸ５６は、この出力データＹ
の出力値ｙを、後入力データＸＢの入力値ｘＢとして使用しない場合には、出力データＹをＩＦ部３２に出力する。
【００５１】
また、ＭＵＸ５６は、この出力データＹの出力値ｙを後入力データＸＢの入力値ｘＢとして使用する場合には、出力データＹをＭＵＸ５８に出力する。言い換えれば、ＭＵＸ５６は、出力データＹが前出力データＹＡである場合は、出力データＹをＭＵＸ５８に出力する。より詳しくは、ＭＵＸ５６は、後入力アドレスデータＸＢ’が入力される。ＭＵＸ５６は、この後入力アドレスデータＸＢ’の有するアドレス情報が、出力データＹの出力値ｙと対応する場合に、この出力データＹをＭＵＸ５８に出力する。すなわち、ＭＵＸ５６は、後入力アドレスデータＸＢ’に基づき、出力データＹが前出力データＹＡであるかを確認する。ＭＵＸ５６は、出力データＹが前出力データＹＡである場合に、出力データＹをＭＵＸ５８に出力する。
【００５２】
ＭＵＸ５８は、マルチプレクサである。ＭＵＸ５８は、ＩＦ部３２、入力データメモリ部４０、ＭＵＸ５６と電気的に接続される。ＭＵＸ５８は、ＭＵＸ５６から出力データＹ（前出力データＹＡ）が入力された場合、出力データＹ（前出力データＹＡ）を入力データメモリ部４０に出力する。入力データメモリ部４０は、出力データＹ（前出力データＹＡ）の出力値ｙＡと、対応する入力アドレスデータＸＢ’のアドレス情報とを関連付け、入力値ｘＢ（出力値ｙＡと同じ信号値）を有する後入力データＸＢとして記憶する。なお、ＭＵＸ５８は、ＩＦ部３２から前入力データＸＡ、後入力アドレスデータＸＢ’、及び演算順データＩＤが入力された場合には、これらを入力データメモリ部４０に出力する。
【００５３】
例えば、図３に示す演算要素データＤＴ１のＡＤＤ演算を行った場合、ＭＵＸ５６は、出力データメモリ部５４から、演算要素データＤＴ１の前出力データＹ１が入力される。また、ＭＵＸ５６は、入力データメモリ部４０から、演算要素データＤＴ３の後入力アドレスデータＸ５’、Ｘ６’が入力される。前出力データＹ１は、後入力アドレスデータＸ５’に対応し、前出力データＹ１の前出力値ｙ１が演算要素データＤＴ３の後入力値ｘ５として使用される。従って、ＭＵＸ５６は、前出力データＹ１を、ＭＵＸ５８を介して入力データメモリ部４０に出力する。入力データメモリ部４０は、後入力アドレスデータＸ５’のアドレス情報と、前出力データＹ１の前出力値ｙ１とを関連付け、前出力値ｙ１を後入力値ｘ５とする後入力データＸ５を生成する。
【００５４】
次に、演算部３０による演算処理について、フローチャートに基づいて説明する。図６は、実施形態１に係る演算部の演算処理を説明するフローチャートである。図６に示すように、演算部３０により演算処理を行う場合、最初に、主演算部２０が、制御ロジックに基づき、演算要素データＤＴを生成する（ステップＳ１２）。すなわち、主演算部２０は、演算順データＩＤ、要素コードＯＰ、前入力データＸＡ、後入力アドレスデータＸＢ’、出力アドレスデータＹ’を有する演算要素データＤＴを生成する。例えば、主演算部２０は、図２に示す図形言語制御ロジックに基づき、図３に示すような演算要素データＤＴ１、ＤＴ２、ＤＴ３を生成する。主演算部２０は、生成した演算要素データＤＴを、演算要素データ記憶部２２に記憶させる。
【００５５】
主演算部２０により演算要素データが生成された後、演算部３０は、ＩＦ部３２により、演算要素データＤＴの各データを、要素コードメモリ部３４、入力データメモリ部４０、出力データメモリ部５４に分配して出力する（ステップＳ１４）。より詳しくは、ＩＦ部３２は、主演算部２０を介して演算要素データ記憶部２２から演算要素データＤＴを読み出す。図４に示すように、ＩＦ部３２は、要素コードＯＰと演算順データＩＤとを要素コードメモリ部３４に出力する。要素コードメモリ部３４は、要素コードＯＰと演算順データＩＤとを、演算要素データＤＴ毎に関連付けて記憶する。
【００５６】
また、ＩＦ部３２は、図４に示すように、前入力データＸＡ、後入力アドレスデータＸＢ’、及び演算順データＩＤを、ＭＵＸ５８を介して入力データメモリ部４０に出力する。入力データメモリ部４０は、前入力データＸＡと後入力アドレスデータＸＢ’と演算順データＩＤとを、演算要素データＤＴ毎に関連付けて記憶する。
【００５７】
また、ＩＦ部３２は、図４に示すように、出力アドレスデータＹ’（前出力アドレスデータＹＡ’及び後出力アドレスデータＹＢ’）と演算順データＩＤとを、ＭＵＸ５２を介して出力データメモリ部５４に出力する。出力データメモリ部５４は、出力アドレスデータＹ’と演算順データＩＤとを、演算要素データＤＴ毎に関連付けて記憶する。要素コードメモリ部３４、入力データメモリ部４０、出力データメモリ部５４は、演算要素データＤＴが複数からなる演算を実行する場合、全ての演算要素データＤＴに属する演算順データＩＤ、要素コードＯＰ、前入力データＸＡ、後入力アドレスデータＸＢ’、及び出力アドレスデータＹ’を記憶する。
【００５８】
演算要素データＤＴの各データを出力した後、演算部３０は、演算順データＩＤに基づき、演算回路選択部３６により、演算に用いる要素コードＯＰを選択して読み出し、第１入力レジスタ部４２Ａ及び第２入力レジスタ部４２Ｂにより、演算に用いる入力データＸを選択して読み出す（ステップＳ１６）。演算回路選択部３６は、要素コードメモリ部３４が記憶する演算順データＩＤから、どの順で演算を行うか読み出し、要素コードメモリ部３４から、行う演算に用いる要素コードＯＰを選択して読み出す。第１入力レジスタ部４２Ａ及び第２入力レジスタ部４２Ｂは、入力データメモリ部４０が記憶する演算順データＩＤから、どの順で演算を行うかを読み出し、入力データメモリ部４０から、行う演算に用いる入力データＸを選択して読み出す。
【００５９】
例えば、図３に示す演算要素データＤＴ１、ＤＴ２、ＤＴ３に基づき演算を行う場合、演算回路選択部３６、第１入力レジスタ部４２Ａ及び第２入力レジスタ部４２Ｂは、演算の順番が１番目であるという情報を有する演算順データＩＤ１が属する演算要素データＤＴ１から演算を行うことを読み出す。この場合、演算回路選択部３６は、演算要素データＤＴ１に属する要素コードＯＰ１を読み出す。また、第１入力レジスタ部４２Ａは、演算要素データＤＴ１に属する前入力データＸ１を読み出す。第２入力レジスタ部４２Ｂは、演算要素データＤＴ１に属する前入力データＸ２を読み出す。
【００６０】
演算に用いる要素コードＯＰ及び入力データＸを選択した後、演算部３０は、演算回路選択部３６により、要素演算部４４から演算に用いる演算回路４５を選択する（ステップＳ１８）。演算回路選択部３６は、読み出した要素コードＯＰをデコードしてどのような演算を行うかを読み出す。演算回路選択部３６は、読み出した演算を行うことができる演算回路４５を、要素演算部４４から選択する。例えば、演算回路選択部３６は、演算要素データＤＴ１に対応するＡＤＤ演算を行う場合は、ＡＤＤ演算回路である演算回路４５Ａを選択する。演算回路選択部３６は、選択した演算回路４５に対応するスイッチ部４６のスイッチをＯＮとする選択信号Ｓを出力することにより、選択した演算回路４５と第１入力レジスタ部４２Ａ及び第２入力レジスタ部４２Ｂとを電気的に接続する。
【００６１】
演算に用いる演算回路４５を選択した後、演算部３０は、選択した演算回路４５により演算を行い、演算結果の情報を有する演算結果データＷを生成する(ステップＳ２０)。選択した演算回路４５には、第１入力レジスタ部４２Ａ及び第２入力レジスタ部４２Ｂから、入力値ｘ（前入力値ｘＡ又は後入力値ｘＢ）の信号値を有する入力データＸが入力される。選択した演算回路４５は、入力データＸの入力値ｘに基づいて出力値ｙ（前出力値ｙＡ又は後出力値ｙＢ）の電圧信号値を有する演算結果データＷを生成する。選択した演算回路４５は、演算結果データＷを、出力レジスタ部４８に出力する。例えば、演算要素データＤＴ１に対応するＡＤＤ演算を行う場合、選択された演算回路４５Ａは、前入力データＸ１、Ｘ２が入力されることにより、前出力値ｙ１の信号値を有する演算結果データＷを生成して、出力レジスタ部４８に出力する。
【００６２】
演算結果データＷを生成した後、演算部３０は、出力データメモリ部５４により、演算結果データＷと出力アドレスデータＹ’とに基づいて、出力データＹを生成する（ステップＳ２２）。より詳しくは、出力データメモリ部５４は、ステップＳ１４において、ＭＵＸ５２を介して出力アドレスデータＹ’が入力されている。また、出力データメモリ部５４は、ＭＵＸ５２を介して、出力レジスタ部４８から出力値ｙの信号値を有する演算結果データＷが入力される。出力データメモリ部５４は、演算順データＩＤに基づき、出力アドレスデータＹ’のアドレス情報と、対応する演算結果データＷの出力値ｙとを関連付け、出力値ｙを有する出力データＹを生成して記憶する。より詳しくは、出力アドレスデータＹ’は、演算順データＩＤと関連付けて記憶されている。また、演算結果データＷは、演算順データＩＤと関連付けられた要素コードＯＰ及び入力データＸに基づいて生成される。すなわち、演算結果データＷは、演算順に沿って順番に生成される。従って、出力データメモリ部５４は、演算順データＩＤに基づき、出力アドレスデータＹ’のアドレス情報と、対応する演算結果データＷとを関連付けることができる。
【００６３】
出力データＹを生成した後、演算部３０は、ＭＵＸ５６により、副入力レジスタ部５５から入力された後入力アドレスデータＸＢ’と、出力データメモリ部５４から入力された出力データＹとに基づき、生成した出力データＹが後の演算に使用する前出力データＹＡであるかを確認する（ステップＳ２４）。言い換えれば、ＭＵＸ５６は、以降に行う他の演算に、生成した出力データＹを使用するかを確認する。より詳しくは、ＭＵＸ５６は、副入力レジスタ部５５から、この演算の後に行われる演算に属する後入力アドレスデータＸＢ’が入力される。また、ＭＵＸ５６は、生成した出力データＹ（前出力データＹＡ又は後出力データＹＢ）が入力される。ＭＵＸ５６は、入力された後入力アドレスデータＸＢ’の有するアドレス情報が、入力された出力データＹと対応する場合に、入力された出力データＹが前出力データＹＡであると確認する。
【００６４】
生成した出力データＹが前出力データＹＡである場合（ステップＳ２４でＹｅｓ）、演算部３０は、入力データメモリ部４０において、前出力データＹＡと、対応する後入力アドレスデータＸＢ’とに基づき、後入力データＸＢを生成する（ステップＳ２６）。より詳しくは、ＭＵＸ５６に入力された出力データＹが前出力データＹＡである場合、入力データメモリ部４０は、この出力データＹ（前出力データＹＡ）が、ＭＵＸ５６から入力される。また、入力データメモリ部４０は、ステップＳ１４において、後入力アドレスデータＸＢ’を記憶している。入力データメモリ部４０は、ＭＵＸ５６から入力された前出力データＹＡと、それに対応する後入力アドレスデータＸＢ’とに基づき、ＭＵＸ５６から入力された前出力データＹＡの前出力値ｙＡを後入力値ｘＢとする後入力データＸＢを生成して記憶する。
【００６５】
例えば、演算要素データＤＴ１に対応する演算を行った場合、ＭＵＸ５６は、出力データメモリ部５４から、演算要素データＤＴ１の前出力データＹ１が入力される。また、ＭＵＸ５６は、入力データメモリ部４０から、演算要素データＤＴ１よりも後の演算に対応する演算要素データＤＴ３の後入力アドレスデータＸ５’、Ｘ６’が入力される。前出力データＹ１は、後入力アドレスデータＸ５’に対応する。従って、ＭＵＸ５６は、前出力データＹ１を、ＭＵＸ５８を介して入力データメモリ部４０に出力する。入力データメモリ部４０は、記憶している後入力アドレスデータＸ５’のアドレス情報と、前出力データＹ１の前出力値ｙ１とを関連付け、前出力値ｙ１を入力値ｘ５とする後入力データＸ５を生成して記憶する。
【００６６】
後入力データＸＢを生成した後、演算部３０は、ステップＳ１６に戻り、次に行われる演算を実行する。すなわち、演算部３０は、ＤＴ１に対応する演算を実行した後、次の演算順であるＤＴ２の演算を実行する。また、生成した出力データＹが前出力データＹＡでない（出力データＹを他の演算に使用しない）場合（ステップＳ２４でＮｏ）は、演算部３０は、ＩＦ部３２により、出力データＹを演算結果として、主演算部２０に出力する。これにより、演算部３０の演算処理は終了する。例えば、生成した出力データＹが後出力データＹＢである場合、ＭＵＸ５６は、出力データＹ（後出力データＹＢ）を、ＩＦ部３２を介して主演算部２０に出力する。主演算部２０は、この出力データＹを、演算要素データ記憶部２２に記憶させる。
【００６７】
図７は、生成した出力データが前出力データでない場合の演算フローを示した模式図である。図８は、生成した出力データが前出力データである場合の演算フローを示した模式図である。図７に示すように、生成した出力データＹが前出力データＹＡでない場合、出力データメモリ部５４からＭＵＸ５６、５８を経由して入力データメモリ部４０へ向かう矢印は、点線矢印となっている。すなわち、生成した出力データＹが前出力データＹＡでなく、他の演算の入力データとして使用されない場合、出力データメモリ部５４が記憶する出力データＹは、入力データメモリ部４０へ入力されない。
【００６８】
一方、図８に示すように、生成した出力データＹが前出力データＹＡである場合、出力データメモリ部５４からＭＵＸ５６、５８を経由して入力データメモリ部４０へ向かう矢印は、実線矢印となっている。すなわち、生成した出力データＹが前出力データＹＡであり、他の演算の入力データとして使用される場合、出力データメモリ部５４が記憶する出力データＹは、他の演算の入力データに使用するため、入力データメモリ部４０へ入力される。
【００６９】
以上説明したように、実施形態１に係る演算部３０は、演算を行うための演算要素データＤＴの要素コードＯＰが要素コードメモリ部３４に記憶され、入力データＸが入力データメモリ部４０に記憶される。演算部３０は、演算回路選択部３６により、要素コードメモリ部３４に記憶された要素コードＯＰから、行う演算の内容を読み取り、この演算を実行可能な演算回路４５を選択して、演算を実行させる。演算の結果は、出力データメモリ部５４に記憶される。
【００７０】
例えば、演算を主演算部２０のプログラムにより実行させる場合、演算を行うためのデータを制御装置１０のメモリに記憶させて、主演算部２０がこのメモリのデータを逐次読み書きしながら演算を実行する必要がある。この場合、主演算部２０は、メモリのデータの読み書きをしながら演算を行うため、処理負担が高くなり、主演算部２０のオーバーヘッドが増加する場合がある。また、例えば、主演算部２０は、定期的に自己診断を行うため、コンテクストを切替えながら演算と自己診断とを行う必要がある。従って、この場合、主演算部２０は、自己診断を行うことによる処理負担の増加と、演算処理と自己診断処理とのコンテクスト切替えによる処理負担の増加とにより、オーバーヘッドが増加する。
【００７１】
一方、実施形態１においては、主演算部２０のプログラムにより演算を行う代わりに、演算部３０が、電子回路（演算回路４５）により演算を行う。演算部３０は、演算に必要なデータ（演算要素データＤＴ）を要素コードメモリ部３４、入力データメモリ部４０に分配して記憶させる。そして、演算部３０は、要素コードＯＰにより演算の内容を読み取り、その演算を実行できる演算回路４５を選択し、その演算回路４５に入力値を入力することにより演算を行う。すなわち、演算部３０は、演算を行う演算回路４５を選択してその演算回路４５に入力値を入力するだけで、演算を行うことができる。そして、主演算部２０は、演算要素データＤＴを演算部３０に入力するだけで、演算結果を得ることができる。従って、主演算部２０は、メモリのデータの読み書きをしながら演算を行う必要がない。また、主演算部２０は、自己診断と演算処理とを並列して行う必要がなくなる。そのため、この演算部３０は、主演算部２０の処理負担の増加を抑制し、オーバーヘッドの増加を抑制することができる。言い換えれば、この演算部３０は、制御装置１０のオーバーヘッドの増加を抑制することができる。
【００７２】
さらに、演算部３０は、複数の演算を組み合わせた演算を行う場合において、演算の順番の情報を有する演算順データと、演算内容の情報を有する要素コードと関連付けて記憶している。そして、演算部３０は、この演算順データに基づいた順番で演算を行う。従って、演算部３０は、複数の演算を組み合わせた演算を行う場合においても、適切に演算を行うことができる。また、演算部３０は、演算順データに基づいて演算順を判断するため、例えば主演算部２０がメモリから全てのデータを読み込んで演算順を判断する必要が無い。この演算部３０によると、主演算部２０のデータ読み取り負荷を軽減し、制御装置１０のオーバーヘッドの増加をより好適に抑制することができる。
【００７３】
また、演算部３０は、演算の結果情報を有する出力データＹが、他の演算の入力データＸとして使用される場合に、この出力データＹを、出力データメモリ部５４から入力データメモリ部４０に直接入力する。従って、出力データＹを他の演算の入力データＸとして使用する場合における処理は、出力データが記憶される出力データメモリ部５４と入力データが記憶される入力データメモリ部４０とのデータの送受信の処理のみでよく、例えば他の箇所に出力データを出力するなど、他の処理が不要となる。従って、演算部３０は、制御装置１０のオーバーヘッドの増加をより好適に抑制することができる。
【００７４】
なお、演算部３０は、演算要素データＤＴが複数からなる演算を実行する場合、全ての演算要素データＤＴの有するデータを、要素コードメモリ部３４、入力データメモリ部４０、出力データメモリ部５４に記憶している。そして、演算部３０は、全ての演算要素データＤＴの有するデータに基づき、全ての演算要素データＤＴに対応する演算を実行する。そして、演算部３０は、全ての演算が終了し、最終的な演算結果が出力データメモリ部５４に記憶された後、その最終的な演算結果のみを主演算部２０に出力する。すなわち、演算部３０は、途中の過程の演算結果、すなわち前出力データＹＡについては、主演算部２０に出力しない。
【００７５】
ただし、演算部３０は、１つの演算要素データＤＴの有するデータのみを読み出して記憶して、その演算要素データＤＴに対応する演算のみを行ってもよい。この場合、演算部３０は、この演算の演算結果を、主演算部２０に出力する。そして、演算部３０は、次の演算に対応する別の演算要素データＤＴの有するデータを記憶して、その演算要素データＤＴに対応する演算を行い、その演算結果を主演算部２０に出力する。演算部３０は、この処理を繰り返す。このように、演算部３０は、演算毎に主演算部２０から演算要素データＤＴのデータを読み出して演算し、その演算結果を主演算部２０に出力するという処理を繰り返してもよい。この場合、演算部３０は、途中の過程の演算結果である前出力データＹＡを、主演算部２０に出力する。
【００７６】
このように、演算毎に主演算部２０から演算要素データＤＴのデータを読み出して演算し、その演算結果を主演算部２０に出力する場合における演算方法について、フローチャートに基づいて説明する。図９は、実施形態１に係る演算部の他の演算方法の一例を示すフローチャートである。この場合、図９に示すように、主演算部２０が、制御ロジックに基づき、演算要素データＤＴを生成する（ステップＳ３２）。
【００７７】
演算要素データＤＴが生成された後、演算部３０は、ＩＦ部３２により、演算順データＩＤに基づき、演算に用いる各種データを選択する（ステップＳ３４）。より詳しくは、ＩＦ部３２は、主演算部２０を介して、演算要素データ記憶部２２から、演算要素データＤＴの演算順データＩＤを読み出す。ＩＦ部３２は、演算順データＩＤに基づき、次に行う演算に用いる要素コードＯＰ、入力データＸ、出力アドレスデータＹ’を選択する。すなわち、ＩＦ部３２は、演算順データＩＤに基づき、次の演算に使用して、１つの演算要素データＤＴに属する要素コードＯＰ、入力データＸ、出力アドレスデータＹ’を選択する。
【００７８】
演算に用いる各種データを選択した後、演算部３０は、ＩＦ部３２により、選択した各種データを、要素コードメモリ部３４、入力データメモリ部４０、出力データメモリ部５４に分配して出力する（ステップＳ３６）。ＩＦ部３２は、要素コードメモリ部３４に要素コードＯＰを出力して記憶させ、入力データメモリ部４０に入力データＸを出力して記憶させ、出力データメモリ部５４に出力アドレスデータＹ’を出力して記憶させる。すなわち、要素コードメモリ部３４、入力データメモリ部４０、出力データメモリ部５４は、それぞれ１つの演算要素データＤＴに属する要素コードＯＰ、入力データＸ、出力アドレスデータＹ’のみを記憶する。
【００７９】
各種データを分配して出力した後、演算部３０は、演算回路選択部３６により、要素コードメモリ部３４が記憶する要素コードＯＰに基づき、演算に使用する演算回路４５を選択する（ステップＳ３８）。
【００８０】
演算に使用する演算回路４５を選択した後、演算部３０は、選択した演算回路４５により、入力データメモリ部４０に記憶した入力データＸに基づいて演算を行い、演算結果データＷを生成する（ステップＳ４０）。より詳しくは、演算部３０は、第１入力レジスタ部４２Ａ及び第２入力レジスタ部４２Ｂにより、入力データメモリ部４０に記憶した入力データＸを、選択した演算回路４５に入力する。選択した演算回路４５は、この入力データＸに基づいて演算を行い、出力値ｙの信号値を有する演算結果データＷを生成する。
【００８１】
演算結果データＷを生成した後、演算部３０は、出力データメモリ部５４により、演算結果データＷと出力アドレスデータＹ’とに基づいて、出力データＹを生成して記憶する（ステップＳ４２）。ＩＦ部３２は、出力データメモリ部５４から出力データＹを読み出し、主演算部２０に出力する。ここで、ＩＦ部３２は、出力データＹが前出力データＹＡと後出力データＹＢとのいずれであっても、出力データＹを主演算部２０に出力する。
【００８２】
出力データＹを生成した後、演算部３０は、ＩＦ部３２により、次の演算があるかを判断する（ステップＳ４４）。ＩＦ部３２は、主演算部２０を介して、演算要素データ記憶部２２から、演算要素データＤＴの演算順データＩＤを読み出す。ＩＦ部３２は、この演算順データＩＤに基づき、次の演算があるかを判断する。
【００８３】
次の演算がある場合（ステップＳ４４でＹｅｓ）、ステップＳ３４に戻り、演算部３０は、次の演算に用いる各種データを選択して主演算部２０を介して読み出し、次の演算を実行する。また、次の演算が無い場合（ステップＳ４４でＮｏ）、演算部３０による演算処理は終了する。
【００８４】
このように、演算部３０は、演算毎に主演算部２０から演算要素データＤＴのデータを読み出して演算し、その演算結果を主演算部２０に出力するという処理を繰り返してもよい。図１０は、実施形態１に係る演算部が他の演算方法を行った場合の演算フローの一例を示す模式図である。図１０に示すように、演算毎に主演算部２０から演算要素データＤＴのデータを読み出して演算する場合、出力データメモリ部５４からＭＵＸ５６、５８を経由して入力データメモリ部４０へ向かう矢印は、点線矢印となっている。すなわち、演算部３０は、各演算の演算結果を主演算部２０に出力する。すなわち、この場合、演算部３０は、生成した出力データＹが前出力データＹＡであっても、出力データＹを入力データメモリ部４０へ入力しない。この場合、演算部３０は、出力データＹが前出力データＹＡであるかを判断する処理が不要となり、演算処理を単純にすることができる。
【００８５】
（実施形態２）
次に、本発明の実施形態２について説明する。実施形態２に係る機械１ａの演算部３０ａは、入力データメモリ部を複数有する点で、実施形態１に係る演算部３０と異なる。実施形態２に係る演算部３０ａは、その他の点で、実施形態１に係る演算部３０と構成が共通するため、共通する箇所の説明は省略する。
【００８６】
図１１は、実施形態２に係る演算部の構成を示すブロック図である。図１１に示すように、実施形態２に係る演算部３０ａは、第１入力データメモリ部４０Ａａと、第２入力データメモリ部４０Ｂａとを有する。第１入力データメモリ部４０Ａａは、第１入力レジスタ部４２Ａａに電気的に接続されている。第２入力データメモリ部４０Ｂａは、第２入力レジスタ部４２Ｂａに電気的に接続されている。
【００８７】
第１入力データメモリ部４０Ａａ及び第２入力データメモリ部４０Ｂａは、ＩＦ部３２から、前入力データＸＡ、後入力アドレスデータＸＢ’、及び演算順データＩＤが入力される。すなわち、第１入力データメモリ部４０Ａａ及び第２入力データメモリ部４０Ｂａは、同じデータが入力される。
【００８８】
第１入力レジスタ部４２Ａａは、第１入力データメモリ部４０Ａａから、所定の演算で使用する一方の入力データＸを読み出す。第２入力レジスタ部４２Ｂａは、第２入力データメモリ部４０Ｂａから、同じ演算で使用する他方の入力データＸを読み出す。例えば、図３における演算要素データＤＴ１に係る演算を行う場合、第１入力レジスタ部４２Ａａは、第１入力データメモリ部４０Ａａから、入力データＸ１を読み出す。第２入力レジスタ部４２Ｂａは、第２入力データメモリ部４０Ｂａから、入力データＸ２を読み出す。
【００８９】
第１入力レジスタ部４２Ａａと第２入力レジスタ部４２Ｂａとは、同一の演算で使用される入力データＸを、それぞれ同時に読み出す。第１入力レジスタ部４２Ａａと第２入力レジスタ部４２Ｂａとは、読み出した入力データＸを、要素演算部４４に出力する。
【００９０】
このように、第１入力データメモリ部４０Ａａは、同一の演算で使用される複数の入力データのうち一部の入力データが、第１入力レジスタ部４２Ａａを介して要素演算部４４に読み出される。また、第２入力データメモリ部４０Ｂａは、同一の演算で使用される複数の入力データのうち他の一部の入力データが、第２入力レジスタ部４２Ｂａを介して要素演算部４４に読み出される。さらに、第２入力データメモリ部４０Ｂａは、第１入力データメモリ部４０Ａａのデータ読み出しと並行して、同一の演算で使用される複数の入力データのうち他の一部の入力データが、第２入力レジスタ部４２Ｂａを介して要素演算部４４に読み出される。このように、実施形態２に係る演算部３０ａは、同じ演算で使用される複数の入力データを並行して読み出すことができるため、演算の処理速度を向上させることができる。
【００９１】
なお、第１入力データメモリ部４０Ａａ及び第２入力データメモリ部４０Ｂａは、同じデータが入力されるが、これに限られず、第１入力データメモリ部４０Ａａは、同一の演算で使用される複数の入力データのうち一部の入力データが入力され、第２入力データメモリ部４０Ｂａは、同一の演算で使用される複数の入力データのうち他の一部の入力データが入力されるものであってもよい。また、実施形態２においては、入力データメモリ部は２つであるが、入力データメモリ部を３つ以上有していてもよい。
【００９２】
（実施形態３）
次に、本発明の実施形態３について説明する。実施形態３に係る機械１ｂの演算部３０ｂは、要素演算部を複数有する点で、実施形態２に係る演算部３０ａと異なる。実施形態３に係る演算部３０ｂは、その他の点で、実施形態２に係る演算部３０ａと構成が共通するため、共通する箇所の説明は省略する。
【００９３】
図１２は、実施形態３に係る演算部の構成を示すブロック図である。図１２に示すように、実施形態３に係る演算部３０ｂは、並行演算確認部３５ｂと、第１入力レジスタ部４２Ａｂ、第２入力レジスタ部４２Ｂｂ、第３入力レジスタ部４３Ａｂ、第４入力レジスタ部４３Ｂｂと、第１要素演算部４４Ａｂ、第２要素演算部４４Ｂｂと、第１出力レジスタ部４８Ａｂ、第２出力レジスタ部４８Ｂｂとを有する。
【００９４】
並行演算確認部３５ｂは、要素コードメモリ部３４、演算回路選択部３６ｂ、第１入力データメモリ部４０Ａｂ、第２入力データメモリ部４０Ｂｂ、第１入力レジスタ部４２Ａｂ、第２入力レジスタ部４２Ｂｂ、第３入力レジスタ部４３Ａｂ、第４入力レジスタ部４３Ｂｂと電気的に接続されている。並行演算確認部３５ｂは、要素コードメモリ部３４、第１入力データメモリ部４０Ａｂ、第２入力データメモリ部４０Ｂｂから、演算順データＩＤと、それに対応する要素コードＯＰ及び入力データＸを読み出す。並行演算確認部３５ｂは、演算順データＩＤ、要素コードＯＰ及び入力データＸから、連続して行われる演算のうち１つの演算の出力データを、連続して行われる演算のうち他の演算の入力データとして用いることを確認する。
【００９５】
実施形態３において、並行演算確認部３５ｂは、これから行われる演算とその次に行われる演算の要素コードＯＰ及び入力データＸを読み出す。並行演算確認部３５ｂは、その次に行われる演算の入力データに、これから行われる演算の出力データが使用されるかを確認する。例えば、図３に示す演算要素データＤＴ１に係る演算が行われる場合、並行演算確認部３５ｂは、演算要素データＤＴ１の要素コードＯＰ１、入力データＸ１，Ｘ２と、演算要素データＤＴ１に係る演算の次に行われる演算要素データＤＴ２の要素コードＯＰ２、入力データＸ３，Ｘ４とを読み出す。演算要素データＤＴ２に係る演算の入力データＸ３，Ｘ４は、演算要素データＤＴ１に係る演算の出力データを用いない。並行演算確認部３５ｂは、演算要素データＤＴ１に係る演算の次に行われる演算要素データＤＴ２に、演算要素データＤＴ１に係る演算の出力データを用いないことを確認する。
【００９６】
以下、これから行われる演算に係る要素コードを要素コードＯＰ１１と記載し、要素コードＯＰ１１に対応する入力データを、入力データＸ１１、Ｘ１２と記載する。また、要素コードＯＰ１１に係る演算の次に行われ、かつ、要素コードＯＰ１１に係る演算の出力データを入力データとして用いない演算に係る要素コードを、要素コードＯＰ１２と記載する。そして、要素コードＯＰ１２に対応する入力データを、入力データＸ１３、Ｘ１４と記載する。
【００９７】
並行演算確認部３５ｂは、これから行われる演算の出力データが、その次に行われる演算の入力データに使用されないと確認した場合、演算回路選択部３６ｂに、これから行われる演算と次に行われる演算とを並行して行う旨の指令を出力する。すなわち、並行演算確認部３５ｂは、演算回路選択部３６ｂに、要素コードＯＰ１１に係る演算と要素コードＯＰ１２に係る演算を並行して行う旨の指令を出力する。また、並行演算確認部３５ｂは、第１入力レジスタ部４２Ａｂ、第２入力レジスタ部４２Ｂｂ、第３入力レジスタ部４３Ａｂ、第４入力レジスタ部４３Ｂｂに、それぞれ入力データＸ１１、Ｘ１２、Ｘ１３、Ｘ１４を読み出す旨の指令を出力する。
【００９８】
演算回路選択部３６ｂは、第１要素演算部４４Ａｂ、第２要素演算部４４Ｂｂと電気的に接続されている。演算回路選択部３６ｂは、並行演算確認部３５ｂからの指令に基づき、要素コードメモリ部３４から、要素コードＯＰ１１及び要素コードＯＰ１２を読み出す。そして、演算回路選択部３６ｂは、要素コードＯＰ１１に基づき、第１要素演算部４４Ａｂから、要素コードＯＰ１１に係る演算を行う演算回路４５を選択する。同様に、演算回路選択部３６ｂは、要素コードＯＰ１２に基づき、第２要素演算部４４Ｂｂから、要素コードＯＰ１２に係る演算を行う演算回路４５を選択する。
【００９９】
第１入力レジスタ部４２Ａｂは、第１入力データメモリ部４０Ａｂ及び第１要素演算部４４Ａｂと電気的に接続されている。第１入力レジスタ部４２Ａｂは、並行演算確認部３５ｂからの指令に基づき、第１入力データメモリ部４０Ａｂから入力データＸ１１を読み出し、第１要素演算部４４Ａｂに出力する。
【０１００】
第２入力レジスタ部４２Ｂｂは、第２入力データメモリ部４０Ｂｂ及び第１要素演算部４４Ａｂと電気的に接続されている。第２入力レジスタ部４２Ｂｂは、並行演算確認部３５ｂからの指令に基づき、第２入力データメモリ部４０Ｂｂから入力データＸ１２を読み出し、第１要素演算部４４Ａｂに出力する。
【０１０１】
第３入力レジスタ部４３Ａｂは、第１入力データメモリ部４０Ａｂ及び第２要素演算部４４Ｂｂと電気的に接続されている。第３入力レジスタ部４３Ａｂは、並行演算確認部３５ｂからの指令に基づき、第１入力データメモリ部４０Ａｂから入力データＸ１３を読み出し、第２要素演算部４４Ｂｂに出力する。
【０１０２】
第４入力レジスタ部４３Ｂｂは、第２入力データメモリ部４０Ｂｂ及び第２要素演算部４４Ｂｂと電気的に接続されている。第４入力レジスタ部４３Ｂｂは、並行演算確認部３５ｂからの指令に基づき、第２入力データメモリ部４０Ｂｂから入力データＸ１４を読み出し、第２要素演算部４４Ｂｂに出力する。
【０１０３】
第１要素演算部４４Ａｂは、第１出力レジスタ部４８Ａｂと電気的に接続されている。第１要素演算部４４Ａｂは、選択された演算回路４５により、入力データＸ１１、Ｘ１２から要素コードＯＰ１１に係る演算を行い、その演算結果の情報を有する演算結果データＷ１１を生成する。第１要素演算部４４Ａｂは、生成した演算結果データＷ１１を、第１出力レジスタ部４８Ａｂに出力する。
【０１０４】
第２要素演算部４４Ｂｂは、第２出力レジスタ部４８Ｂｂと電気的に接続されている。第２要素演算部４４Ｂｂは、選択された演算回路４５により、入力データＸ１３、Ｘ１４から要素コードＯＰ１２に係る演算を行い、その演算結果の情報を有する演算結果データＷ１２を生成する。第２要素演算部４４Ａｂは、生成した演算結果データＷ１２を、第２出力レジスタ部４８Ｂｂに出力する。ここで、第２要素演算部４４Ｂｂは、第１要素演算部４４Ａｂによる要素コードＯＰ１１に係る演算と並行して、要素コードＯＰ１２に係る演算を行う。
【０１０５】
このように、第１要素演算部４４Ａｂと第２要素演算部４４Ｂｂとは、要素コードＯＰ１１に係る演算と要素コードＯＰ１２に係る演算を並行して行う。従って、実施形態３に係る演算部３０ｂは、互いに依存関係がない演算を並行して実行することができるため、演算の処理速度を向上させることができる。
【０１０６】
なお、実施形態３においては、その次に行われる演算の入力データに、これから行われる演算の出力データが使用されるかを確認するために、入力データＸを用いたが、要素コードによってこの判断が可能な場合は、入力データＸを判断に用いなくてもよい。例えば、その次に行われる演算の入力データにこれから行われる演算の出力データが使用されるかは、主演算部２０により、演算要素データを作成する際に確認されてもよい。また、例えば、その次に行われる演算の入力データにこれから行われる演算の出力データが使用されるかは、ＩＦ部３２により、演算要素データが入力された際に確認されてもよい。
【０１０７】
（実施形態４）
次に、本発明の実施形態４について説明する。実施形態４に係る機械１ｃの演算部３０ｃは、入力データメモリ部に入力データＸが記憶されず、出力データメモリ部に入力データＸが記憶される点で、実施形態１に係る演算部３０とは異なる。実施形態４に係る演算部３０ｃは、その他の点で、実施形態１に係る演算部３０と構成が共通するため、共通する箇所の説明は省略する。
【０１０８】
図１３は、実施形態４に係る演算部の構成を示すブロック図である。図１３に示すように、実施形態４に係る演算部３０ｃは、入力データメモリ部４０ｃと、出力データメモリ部５４ｃと、ＭＵＸ５９Ａｃ、５９Ｂｃとを有する。
【０１０９】
実施形態４においては、演算要素データＤＴｃは、入力参照アドレスデータＸＡＤを有する。入力参照アドレスデータＸＡＤは、入力データＸが記憶されている箇所のアドレス情報を有するデータである。実施形態４においては、入力データＸは、出力データメモリ部５４ｃに記憶されている。従って、入力参照アドレスデータＸＡＤは、出力データメモリ部５４ｃにおける入力データＸが記憶されている箇所のアドレス情報を有する。
【０１１０】
入力データメモリ部４０ｃは、出力データメモリ部５４ｃ、ＭＵＸ５９Ａｃ、５９Ｂｃと電気的に接続されている。入力データメモリ部４０ｃは、入力データＸが記憶されている箇所のアドレス情報を有する入力参照アドレスデータＸＡＤが記憶されている。入力データメモリ部４０ｃは、入力参照アドレスデータＸＡＤに基づき、出力データメモリ部５４ｃに、演算に使用する入力データＸを照会する照会信号を出力する。
【０１１１】
出力データメモリ部５４ｃは、ＭＵＸ５９Ａｃ、５９Ｂｃと電気的に接続されている。出力データメモリ部５４ｃは、入力データメモリ部４０ｃの照会信号に基づき、照会された入力データＸが、ＭＵＸ５９Ａｃ、５９Ｂｃに読み出される。
【０１１２】
ＭＵＸ５９Ａｃは、第１入力レジスタ部４２Ａｃに電気的に接続されている。ＭＵＸ５９Ａｃは、出力データメモリ部５４ｃから、演算に使用される入力信号Ｘが入力される。ＭＵＸ５９Ａｃは、入力信号Ｘを第１入力レジスタ部４２Ａｃに出力する。第１入力レジスタ部４２Ａｃは、この入力信号Ｘを要素演算部４４に出力し、演算を行わせる。
【０１１３】
ＭＵＸ５９Ｂｃは、第２入力レジスタ部４２Ｂｃに電気的に接続されている。ＭＵＸ５９Ｂｃは、ＭＵＸ５９Ａｃと同様に、出力データメモリ部５４ｃからの入力信号Ｘを第２入力レジスタ部４２Ｂｃに出力する。
【０１１４】
このように、実施形態４に係る入力データメモリ部４０ｃは、入力データＸではなく、入力参照アドレスデータＸＡＤが記憶される。また、出力データメモリ部５４ｃは、入力参照アドレスデータＸＡＤに基づいて、入力データＸが、ＭＵＸ５９Ａｃ、５９Ｂｃ、を介して要素演算部４４に読み出される。
【０１１５】
実施形態１においては、出力データに基づいて生成される後入力データＸＢは、入力データメモリ部４０ｃに記憶され、入力データメモリ部４０ｃから要素演算部４４に出力されていた。そして、入力データメモリ部４０ｃに記憶される後入力データＸＢを生成する場合、出力データメモリ部５４ｃから読み出された出力データＹが、入力データメモリ部４０ｃから読み出された後入力アドレスデータＸＢ’と対応する前出力データＹＡであるかを確認する処理が必要であった。すなわち、この場合、出力データメモリ部５４ｃに記憶されている出力データＹと、入力データメモリ部４０ｃに記憶されている後入力アドレスデータＸＢ’との関連を読み取る処理が必要であった。
【０１１６】
一方、実施形態４においては、入力データメモリ部４０ｃは、後入力データＸＢを記憶していない。そして、後入力データＸＢを生成するための後入力アドレスデータＸＢ’と前出力データＹＡとは、出力データメモリ部５４ｃに記憶されている。後入力データＸＢは、出力データメモリ部５４ｃにおいて生成され、その後入力データＸＢは、入力データメモリ部４０ｃに入力されず、直接入力レジスタ部に出力される。すなわち、実施形態４においては、例えば後入力データＸＢを生成する場合に、出力データメモリ部５４ｃと入力データメモリ部４０ｃとの両方のデータを読み出す必要がない。従って、実施形態４に係る演算部３０ｃは、後入力データＸＢの生成にあたり、出力データメモリ部５４ｃのデータと入力データメモリ部４０ｃのデータとの関連を読み取る処理が不要となる。そのため、実施形態４に係る演算部３０ｃは、処理負担を軽減することができる。
【０１１７】
なお、上述のように、演算部３０ｃは、入力データメモリ部４０ｃにおいてＭＵＸ５９Ａｃ、５９Ｂｃと電気的に接続されている。従って、演算部３０ｃは、例えば演算要素データＤＴｃが入力参照アドレスデータＸＡＤを含まず、入力データＸのみを有する場合には、入力データメモリ部４０ｃに入力データＸを入力させて、入力データメモリ部４０ｃからＭＵＸ５９Ａｃ、５９Ｂｃを介して演算要素部４４に入力データを出力させることにより、演算を行わせることができる。すなわち、演算部３０ｃは、演算要素データＤＴｃが入力参照アドレスデータＸＡＤを含まない場合は、入力データＸを出力データメモリ部５４ｃに入力せずに演算処理を行う。このように、演算部３０ｃは、演算要素データＤＴｃが入力参照アドレスデータＸＡＤを含む場合の処理と、演算要素データＤＴｃが入力参照アドレスデータＸＡＤを含まない場合の処理との双方を行うことができる。
【０１１８】
以上、本発明の実施形態を説明したが、これらの実施形態の内容によりこれらの実施形態が限定されるものではない。また、前述した構成要素には、当業者が容易に想定できるもの、実質的に同一のもの、いわゆる均等の範囲のものが含まれる。さらに、前述した構成要素は適宜組み合わせることが可能である。さらに、前述した実施形態等の要旨を逸脱しない範囲で構成要素の種々の省略、置換又は変更を行うことができる。
【符号の説明】
【０１１９】
１、１ａ、１ｂ、１ｃ  機械
５  制御ロジック入力部
１０  制御装置
２０  主演算部
２２  演算要素データ記憶部
３０、３０ａ、３０ｂ、３０ｃ  演算部
３２  ＩＦ部
３４  要素コードメモリ部
３５ｂ  並行演算確認部
３６、３６ｂ  演算回路選択部
４０、４０ｃ  入力データメモリ部
４０Ａａ、４０Ａｂ  第１入力データメモリ部
４０Ｂａ、４０Ｂｂ  第２入力データメモリ部
４２Ａ、４２Ａａ、４２Ａｂ、４２Ａｃ  第１入力レジスタ部
４２Ｂ、４２Ｂａ、４２Ｂｂ、４２Ｂｃ  第２入力レジスタ部
４３Ａｂ  第３入力レジスタ部
４３Ｂｂ  第４入力レジスタ部
４４  要素演算部
４４Ａｂ  第１要素演算部
４４Ｂｂ  第２要素演算部
４４  要素演算部
４５、４５Ａ、４５Ｂ、４５Ｃ、４５Ｄ、４５Ｅ  演算回路
４６、４６Ａ、４６Ｂ、４６Ｃ、４６Ｄ、４６Ｅ  スイッチ部
４８  出力レジスタ部
４８Ａｂ  第１出力レジスタ部
４８Ｂｂ  第２出力レジスタ部
５４、５４ｃ  出力データメモリ部
５５  副入力レジスタ部
１００  機械部
１１１、１１２、１１３  ブロック
ＤＴ、ＤＴ１、ＤＴ２、ＤＴ３、ＤＴＡ、ＤＴＢ、ＤＴｃ  演算要素データ
ＩＤ、ＩＤ１、ＩＤ２、ＩＤ３、ＩＤＡ、ＩＤＢ  演算順データ
ＯＰ、ＯＰ１、ＯＰ２、ＯＰ３、ＯＰ１１、ＯＰ１２、ＯＰＡ、ＯＰＢ  要素コード
Ｓ  選択信号
Ｗ、Ｗ１１、Ｗ１２  演算結果データ
Ｘ、Ｘ１１、Ｘ１２、Ｘ１３、Ｘ１４  入力データ
Ｘ１、Ｘ２、Ｘ３、Ｘ４、ＸＡ  前入力データ
Ｘ５’、Ｘ６’、ＸＢ’  後入力アドレスデータ
ＸＢ  後入力データ
ＸＡＤ  入力参照アドレスデータ
Ｙ  出力データ
Ｙ１、Ｙ２、ＹＡ  前出力データ
Ｙ１’、Ｙ２’、ＹＡ’  前出力アドレスデータ
Ｙ３、ＹＢ  後出力データ
ＹＢ’  後出力アドレスデータ
【図１】
2016076031.tif 000003
【図２】
2016076031.tif 000004
【図３】
2016076031.tif 000005
【図４】
2016076031.tif 000006
【図５】
2016076031.tif 000007
【図６】
2016076031.tif 000008
【図７】
2016076031.tif 000009
【図８】
2016076031.tif 000010
【図９】
2016076031.tif 000011
【図１０】
2016076031.tif 000012
【図１１】
2016076031.tif 000013
【図１２】
2016076031.tif 000014
【図１３】
2016076031.tif 000015