(57)【特許請求の範囲】
【請求項１】
データパス演算に用いるデータの転送指令を出力するとともに、所定の単一演算を実行して、その単一演算の演算結果及びデータパス演算の演算内容を示すデータパス演算指示を出力するメイン制御部と、上記メイン制御部から出力されたデータの転送指令にしたがってＤＭＡコントローラを制御することで、記憶装置に記憶されているデータパス演算に用いるデータをデータパス回路に転送させるデータ転送制御部と、上記ＤＭＡコントローラによるデータ転送が完了すると、上記メイン制御部から出力された単一演算の演算結果及びデータパス演算指示が示す演算内容の実行指令であるデータパス演算命令を上記データパス回路に与えて、その単一演算の演算結果と上記ＤＭＡコントローラにより転送されたデータを用いる上記データパス演算命令に係るデータパス演算を上記データパス回路に実行させるデータパス制御部とを備えたデータ演算装置の制御回路。
【請求項２】
データパス演算に用いるデータの転送指令を出力するとともに、所定の単一演算を実行して、その単一演算の演算結果に対応するデータパス演算の演算内容を示すデータパス演算指示を出力するメイン制御部と、上記メイン制御部から出力されたデータの転送指令にしたがってＤＭＡコントローラを制御することで、記憶装置に記憶されているデータパス演算に用いるデータをデータパス回路に転送させるデータ転送制御部と、上記ＤＭＡコントローラによるデータ転送が完了すると、上記メイン制御部から出力されたデータパス演算指示が示す演算内容の実行指令であるデータパス演算命令を上記データパス回路に与えて、上記ＤＭＡコントローラにより転送されたデータを用いる上記データパス演算命令に係るデータパス演算を上記データパス回路に実行させるデータパス制御部とを備えたデータ演算装置の制御回路。
【請求項３】
データ転送制御部は、ＤＭＡコントローラを制御することで、データパス回路によるデータパス演算の演算結果をメイン制御部がアクセス可能な内部記憶装置に転送させることを特徴とする請求項１または請求項２記載のデータ演算装置の制御回路。
【請求項４】
データ転送制御部は、ＤＭＡコントローラによるデータ転送が完了すると、データの転送完了通知をメイン制御部及びデータパス制御部を出力し、
上記メイン制御部は、上記データ転送制御部からデータの転送完了通知を受けると、次のデータパス演算に用いるデータの転送指令を出力するとともに、所定の単一演算を実行し、
上記データパス制御部は、上記データ転送制御部からデータの転送完了通知を受けると、データパス回路によるデータパス演算の実行を開始させることを特徴とする請求項１から請求項３のうちのいずれか１項記載のデータ演算装置の制御回路。
【請求項５】
データパス制御部は、データパス回路によるデータパス演算の実行状況を把握し、上記データパス回路に対して、次のデータパス演算に用いるデータの転送が可能になると、データ転送可能通知をデータ転送制御部に出力し、
上記データ転送制御部は、上記データパス制御部からデータ転送可能通知を受けると、メイン制御部から出力されたデータの転送指令にしたがってＤＭＡコントローラを制御することで、記憶装置に記憶されている次のデータパス演算に用いるデータを上記データパス回路に転送させることを特徴とする請求項１から請求項４のうちのいずれか１項記載のデータ演算装置の制御回路。
【請求項６】
メイン制御部は、データパス演算指示を出力する際、データパス演算の完了通知を出力するタイミングを指定し、
データパス制御部は、上記メイン制御部により指定されたタイミングで、データパス回路によるデータパス演算の完了通知を上記メイン制御部に出力することを特徴とする請求項１から請求項４のうちのいずれか１項記載のデータ演算装置の制御回路。
【請求項７】
上位制御回路から出力された制御信号を受信する通信インタフェースを備え、メイン制御部の処理内容が、上記通信インタフェースにより受信された制御信号によって制御されることを特徴とする請求項１から請求項６のうちのいずれか１項記載のデータ演算装置の制御回路。
【請求項８】
データを記憶している記憶装置と、データを転送するＤＭＡコントローラと、データパス演算を実行するデータパス回路と、データパス演算に用いるデータの転送指令を出力するとともに、所定の単一演算を実行して、その単一演算の演算結果及びデータパス演算の演算内容を示すデータパス演算指示を出力するメイン制御部と、上記メイン制御部から出力されたデータの転送指令にしたがって上記ＤＭＡコントローラを制御することで、上記記憶装置に記憶されているデータパス演算に用いるデータを上記データパス回路に転送させるデータ転送制御部と、上記ＤＭＡコントローラによるデータ転送が完了すると、上記メイン制御部から出力された単一演算の演算結果及びデータパス演算指示が示す演算内容の実行指令であるデータパス演算命令を上記データパス回路に与えて、その単一演算の演算結果と上記ＤＭＡコントローラにより転送されたデータを用いる上記データパス演算命令に係るデータパス演算を上記データパス回路に実行させるデータパス制御部とを備えたデータ演算装置。
【請求項９】
データを記憶している記憶装置と、データを転送するＤＭＡコントローラと、データパス演算を実行するデータパス回路と、データパス演算に用いるデータの転送指令を出力するとともに、所定の単一演算を実行して、その単一演算の演算結果に対応するデータパス演算の演算内容を示すデータパス演算指示を出力するメイン制御部と、上記メイン制御部から出力されたデータの転送指令にしたがって上記ＤＭＡコントローラを制御することで、上記記憶装置に記憶されているデータパス演算に用いるデータを上記データパス回路に転送させるデータ転送制御部と、上記ＤＭＡコントローラによるデータ転送が完了すると、上記メイン制御部から出力されたデータパス演算指示が示す演算内容の実行指令であるデータパス演算命令を上記データパス回路に与えて、上記ＤＭＡコントローラにより転送されたデータを用いる上記データパス演算命令に係るデータパス演算を上記データパス回路に実行させるデータパス制御部とを備えたデータ演算装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、高速なデータ演算を行うデータ演算装置と、そのデータ演算装置におけるデータパス演算等を制御する制御回路とに関するものである。
【背景技術】
【０００２】
例えば、映像信号処理のように、複数のデータを高速に処理するデータ演算装置では、データパス演算を行うデータパス回路を実装しているものがある。
このとき、データの高速処理を実現するために、例えば、ＳＩＭＤ（Ｓｉｎｇｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ｄａｔａ）演算装置のような汎用アクセラレータを用いて、データパス回路を構成しているものがある。
このような汎用アクセラレータは、プロセッサによって制御されるが、従来の制御手段としてのプロセッサは、内蔵されている命令メモリ内のプログラムを実行することで、外部メモリに対する入出力制御や、演算器に対する演算内容の指示を行っている（例えば、特許文献１を参照）。
【０００３】
図４は従来のデータ演算装置に実装されているプロセッサによるデータパスの制御タイミング例を示す説明図である。
ただし、データ演算装置は、プロセッサのほかに、データパス演算を行うデータパス回路と、プロセッサの指示の下で、データパス回路内の記憶装置に対してデータを転送するＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）コントローラとを実装しているものとする。
なお、プロセッサは、データパス回路の演算制御や、データの転送制御を実施するほかに、データ転送のアドレス演算や条件分岐などの制御用の単一演算も実行するものとする。
【０００４】
まず、プロセッサは、データパス回路内の記憶装置に対してデータを転送するための前処理（図４では、「ＤＭＡ転送０前処理」と表記）として、ＤＭＡ転送に必要なアドレス演算等を実施する（例えば、転送元アドレス、転送先アドレス、転送データサイズなどを演算する）。
プロセッサは、ＤＭＡ転送に必要なアドレス演算等を実施すると、そのアドレス演算等の結果をＤＭＡコントローラに設定して（図４では、「ＤＭＡ転送０設定」と表記）、ＤＭＡ転送をＤＭＡコントローラに指示する。
【０００５】
ＤＭＡコントローラは、プロセッサからＤＭＡ転送指示を受けると、プロセッサの処理と並行して、「ＤＭＡ転送０設定」に見合うデータ転送（図４では、「ＤＭＡ転送０」と表記）を実行する。
ＤＭＡコントローラは、データ転送が完了すると、ＤＭＡ転送の完了通知をプロセッサに出力する。
【０００６】
プロセッサは、ＤＭＡコントローラが「ＤＭＡ転送０」を実行している間、次のデータ転送に必要な前処理（図４では、「ＤＭＡ転送１前処理」と表記）と、次のデータパス演算（図４では、「データパス演算０」と表記）で必要となるパラメータ等を算出するための単一演算（図４では、「単一演算０」と表記）を実行する。
その後、プロセッサは、ＤＭＡコントローラからＤＭＡ転送完了通知が出力されるまで待機し、ＤＭＡコントローラからＤＭＡ転送完了通知を受けると、「ＤＭＡ転送１前処理」におけるアドレス演算等の結果をＤＭＡコントローラに設定して（図４では、「ＤＭＡ転送１設定」と表記）、ＤＭＡ転送をＤＭＡコントローラに指示する。
また、プロセッサは、「単一演算０」におけるパラメータ等の算出結果をデータパス回路に出力して、「データパス演算０」の実行をデータパス回路に指示する。
【０００７】
データパス回路は、プロセッサから「データパス演算０」の実行指示を受けると、ＤＭＡコントローラによって記憶装置にＤＭＡ転送されているデータ（「ＤＭＡ転送０」により転送されたデータ）を読み込み、プロセッサから出力された「単一演算０」におけるパラメータ等の算出結果と、「ＤＭＡ転送０」により転送されたデータとを用いて、「データパス演算０」を実行する。
ＤＭＡコントローラは、プロセッサからＤＭＡ転送指示を受けると、データパス回路のデータパス演算と並行して、「ＤＭＡ転送１設定」に見合うデータ転送（図４では、「ＤＭＡ転送１」と表記）を実行する。
ＤＭＡコントローラは、データ転送が完了すると、ＤＭＡ転送の完了通知をプロセッサに出力する。
【０００８】
プロセッサは、データパス回路による「データパス演算０」が完了すると、「データパス演算０」の演算結果を用いた後処理（図４では、「データパス演算０後処理」）を実行し、「データパス演算０後処理」が完了すると、次のデータ転送に必要な前処理（図４では、「ＤＭＡ転送２前処理」と表記）と、次のデータパス演算（図４では、「データパス演算１」と表記）で必要となるパラメータ等を算出するための単一演算（図４では、「単一演算１」と表記）を実行する。
プロセッサは、「ＤＭＡ転送２前処理」と「単一演算１」を実行すると、「ＤＭＡ転送２前処理」におけるアドレス演算等の結果をＤＭＡコントローラに設定して（図４では、「ＤＭＡ転送２設定」と表記）、ＤＭＡ転送をＤＭＡコントローラに指示する。
また、プロセッサは、「単一演算１」におけるパラメータ等の算出結果をデータパス回路に出力して、「データパス演算１」の実行をデータパス回路に指示する。
【０００９】
データパス回路は、プロセッサから「データパス演算１」の実行指示を受けると、ＤＭＡコントローラによって記憶装置にＤＭＡ転送されているデータ（「ＤＭＡ転送１」により転送されたデータ）を読み込み、プロセッサから出力された「単一演算１」におけるパラメータ等の算出結果と、「ＤＭＡ転送１」により転送されたデータとを用いて、「データパス演算１」を実行する。
ＤＭＡコントローラは、プロセッサからＤＭＡ転送指示を受けると、データパス回路のデータパス演算と並行して、「ＤＭＡ転送２設定」に見合うデータ転送（図４では、「ＤＭＡ転送２」と表記）を実行する。
ＤＭＡコントローラは、データ転送が完了すると、ＤＭＡ転送の完了通知をプロセッサに出力する。
【００１０】
プロセッサは、データパス回路による「データパス演算１」が完了すると、「データパス演算１」の演算結果を用いた後処理（図４では、「データパス演算１後処理」）を実行し、「データパス演算１後処理」が完了すると、次のデータ転送に必要な前処理（図４では、「ＤＭＡ転送３前処理」と表記）と、次のデータパス演算で必要となるパラメータ等を算出するための単一演算（図４では、「単一演算２」と表記）を実行する。
以降、同様の処理の繰り返しであるため、説明を省略する。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００９−１５５５６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
従来のデータ演算回路は以上のように構成されているので、プロセッサのほかにデータパス回路が実装されていても、プロセッサによる単一演算とデータパス回路によるデータパス演算を並列に実行することができず、処理の高速化を図ることができない課題があった。
【００１３】
この発明は上記のような課題を解決するためになされたもので、単一演算とデータパス演算の並列実行を実現して、処理の高速化を図ることができるデータ演算装置の制御回路及びデータ演算装置を得ることを目的とする。
【課題を解決するための手段】
【００１４】
この発明に係るデータ演算装置の制御回路は、データパス演算に用いるデータの転送指令を出力するとともに、所定の単一演算を実行して、その単一演算の演算結果及びデータパス演算の演算内容を示すデータパス演算指示を出力するメイン制御部と、メイン制御部から出力されたデータの転送指令にしたがってＤＭＡコントローラを制御することで、記憶装置に記憶されているデータパス演算に用いるデータをデータパス回路に転送させるデータ転送制御部とを設け、ＤＭＡコントローラによるデータ転送が完了すると、データパス制御部が、メイン制御部から出力された単一演算の演算結果及びデータパス演算指示が示す演算内容の実行指令であるデータパス演算命令をデータパス回路に与えて、その単一演算の演算結果とＤＭＡコントローラにより転送されたデータを用いるデータパス演算命令に係るデータパス演算をデータパス回路に実行させるようにしたものである。
【発明の効果】
【００１５】
この発明によれば、データパス演算に用いるデータの転送指令を出力するとともに、所定の単一演算を実行して、その単一演算の演算結果及びデータパス演算の演算内容を示すデータパス演算指示を出力するメイン制御部と、メイン制御部から出力されたデータの転送指令にしたがってＤＭＡコントローラを制御することで、記憶装置に記憶されているデータパス演算に用いるデータをデータパス回路に転送させるデータ転送制御部とを設け、ＤＭＡコントローラによるデータ転送が完了すると、データパス制御部が、メイン制御部から出力された単一演算の演算結果及びデータパス演算指示が示す演算内容の実行指令であるデータパス演算命令をデータパス回路に与えて、その単一演算の演算結果とＤＭＡコントローラにより転送されたデータを用いるデータパス演算命令に係るデータパス演算をデータパス回路に実行させるように構成したので、データパス回路がデータパス演算を実行しているとき、メイン制御部が次の単一演算を並行して実行することができるようになり、その結果、処理の高速化を図ることができる効果がある。
【図面の簡単な説明】
【００１６】
【図１】この発明の実施の形態１によるデータ演算装置を示す構成図である。
【図２】この発明の実施の形態１によるデータ演算装置の制御タイミング例を示す説明図である。
【図３】この発明の実施の形態２によるデータ演算装置を示す構成図である。
【図４】従来のデータ演算装置に実装されているプロセッサによるデータパスの制御タイミング例を示す説明図である。
【発明を実施するための形態】
【００１７】
実施の形態１．
図１はこの発明の実施の形態１によるデータ演算装置を示す構成図である。
図１において、制御回路１はデータパス演算で必要となる所定の単一演算（例えば、加算、減算、論理和などを行ってパラメータ等を演算）を実行するほか、ＤＭＡコントローラ３におけるデータ転送の制御や、データパス回路４におけるデータパス演算の制御などを行う回路である。
外部記憶装置２は例えばデータパス回路４がデータパス演算を実施する際に用いるデータ等を記憶しているメモリやハードディスクなどの記憶媒体である。
【００１８】
ＤＭＡコントローラ３は制御回路１から出力されるデータ転送指令（ＤＭＡ転送設定＋ＤＭＡ転送開始指示）にしたがって、外部記憶装置２（または、制御回路１の内部記憶装置１６）に記憶されているデータをデータパス回路４内の記憶装置４ａにＤＭＡ転送する一方、データパス回路４内の記憶装置４ａに記憶されているデータパス演算の演算結果を制御回路１の内部記憶装置１６又は外部記憶装置２にＤＭＡ転送し、ＤＭＡ転送が完了すると、ＤＭＡ転送の完了通知を制御回路１に出力する処理を実施する。
【００１９】
データパス回路４は制御回路１から出力されるデータパス演算命令にしたがって、制御回路１から出力される単一演算の演算結果と記憶装置４ａに記憶されているデータ（ＤＭＡコントローラ３によりＤＭＡ転送されたデータ）を用いて、データパス演算を実行する回路である。
なお、制御回路１、外部記憶装置２、ＤＭＡコントローラ３及びデータパス回路４はバス５に接続されている。
【００２０】
制御回路１のメイン命令メモリ１１はメイン制御部１２が実行するプログラムを格納している記憶媒体である。
メイン命令メモリ１１により格納されているプログラムは、メイン制御部１２からデータ転送制御部１３に出力されるデータ転送指示に関する命令、メイン制御部１２からデータパス制御部１５に出力されるデータパス演算指示に関する命令、メイン制御部１２により実行される単一演算に関する命令、内部記憶装置１６に対する読み書き命令、メイン制御部１２におけるシーケンス制御に関する命令（例えば、ジャンプ、比較ジャンプなど）などから構成されている。
【００２１】
制御回路１のメイン制御部１２はメイン命令メモリ１１により格納されているプログラムを実行することで、データパス演算に用いるデータの転送指令であるデータ転送指示（例えば、転送元アドレス、転送先アドレス、転送データサイズのほか、データ転送の開始指示を含む）をデータ転送制御部１３に出力するとともに、データパス演算で必要となる所定の単一演算（例えば、加算、減算、論理和などを行ってパラメータ等を演算）を実行して、単一演算の演算結果及びデータパス演算の演算内容を示すデータパス演算指示をデータパス制御部１５に出力する処理を実施する。
【００２２】
制御回路１のデータ転送制御部１３はメイン制御部１２から出力されたデータ転送指示にしたがってＤＭＡ転送設定（例えば、転送元アドレス、転送先アドレス、転送データサイズなどを設定）をＤＭＡコントローラ３に行って、ＤＭＡ転送の開始指示をＤＭＡコントローラ３に出力することで、外部記憶装置２（または、制御回路１の内部記憶装置１６）に記憶されているデータをデータパス回路４内の記憶装置４ａにＤＭＡ転送させる処理を実施する。
また、データ転送制御部１３はＤＭＡコントローラ３からＤＭＡ転送の完了通知を受けると、そのＤＭＡ転送の完了通知をメイン制御部１２及びデータパス制御部１５に出力する処理を実施する。
さらに、データ転送制御部１３は、ＤＭＡコントローラ３を制御することで、データパス回路４によるデータパス演算の演算結果（記憶装置４ａにより記憶されている演算結果）を内部記憶装置１６又は外部記憶装置２に転送させる処理も実施する。
【００２３】
制御回路１のデータパス命令メモリ１４はデータパス制御部１５が実行するプログラムを格納している記憶媒体である。
制御回路１のデータパス制御部１５はデータパス命令メモリ１４により格納されているプログラムを実行することで、データ転送制御部１３からＤＭＡ転送の完了通知を受けると、メイン制御部１５から出力されたデータパス演算指示にしたがって単一演算の演算結果及びデータパス演算命令をデータパス回路４に与えて、そのデータパス演算命令に係るデータパス演算をデータパス回路４に実行させる処理を実施する。
制御回路１の内部記憶装置１６はメイン制御部１２がアクセス可能な記録媒体であり、データパス回路４の演算結果やデータパス演算に用いるデータ等を記憶している。
【００２４】
次に動作について説明する。
制御回路１のメイン制御部１２は、メイン命令メモリ１１により格納されているプログラムを読み込み、そのプログラムを実行する。
メイン命令メモリ１１により格納されているプログラムが、例えば、データ転送制御部１３に対するデータ転送指示に関する命令であれば、ＤＭＡ転送設定（例えば、転送元アドレス、転送先アドレス、転送データサイズなどを設定）をＤＭＡコントローラ３に行って、ＤＭＡ転送の開始指示を発行させる制御内容が記述されている。
【００２５】
メイン命令メモリ１１により格納されているプログラムが、例えば、データパス制御部１５に対するデータパス演算指示に関する命令であれば、データパス演算設定（例えば、データパス命令メモリ１４に格納されているプログラムにおいて、実行を開始する開始アドレス、終了アドレス、次データの転送可能アドレスなどを設定）とメイン制御部１２における単一演算結果の設定をデータパス回路４に行って、データパス演算の開始指示を発行させる制御内容が記述されている。
【００２６】
また、メイン命令メモリ１１により格納されているプログラムが、例えば、単一演算に関する命令であれば、単一演算の演算内容（パラメータ等を得るための演算内容）が記述されている。
メイン命令メモリ１１により格納されているプログラムが、例えば、内部記憶装置１６や図示せぬ内部レジスタに対する読み書き命令であれば、データ等の読み出し元や書き込み先を示すアドレスとデータサイズなどが記述されている。
メイン命令メモリ１１により格納されているプログラムが、例えば、シーケンス制御に関する命令であれば、ジャンプ、比較ジャンプなどの制御内容が記述されている。
【００２７】
図２はこの発明の実施の形態１によるデータ演算装置の制御タイミング例を示す説明図である。
この実施の形態１では、メイン制御部１２が図２の制御タイミング例に沿って処理を実行するプログラムがメイン命令メモリ１１に格納されているものとして説明する。
図２では、データパス演算０〜データパス演算３を実行する例を示している。
【００２８】
制御回路１のメイン制御部１２は、データパス回路４内の記憶装置４ａに対してデータを転送するための前処理（図２では、「ＤＭＡ転送０前処理」と表記）として、ＤＭＡ転送に必要なアドレス演算等を実施する（例えば、転送元アドレス、転送先アドレス、転送データサイズなどを演算する）。
メイン制御部１２は、ＤＭＡ転送に必要なアドレス演算等を実施すると、そのアドレス演算等の結果を含むデータ転送指示（図２では、「ＤＭＡ転送０指示」と表記）をデータ転送制御部１３に出力する。
【００２９】
データ転送制御部１３は、メイン制御部１２から「ＤＭＡ転送０指示」を受けると、データパス制御部１５からデータ転送可能通知が出力されていれば（データ転送可能通知については後述する）、「ＤＭＡ転送０指示」に含まれているアドレス演算等の結果を参照して、ＤＭＡ転送設定（例えば、転送元アドレス、転送先アドレス、転送データサイズなどを設定）をＤＭＡコントローラ３に行って、ＤＭＡ転送の開始指示をＤＭＡコントローラ３に発行する。
【００３０】
ＤＭＡコントローラ３は、データ転送制御部１３からＤＭＡ転送の開始指示を受けると、制御回路１のメイン制御部１２の処理と並行して、データ転送制御部１３によるＤＭＡ転送設定に見合うデータ転送（図２では、「ＤＭＡ転送０」と表記）を実行する。
例えば、ＤＭＡ転送設定における転送元アドレスが外部記憶装置２内のアドレスであり、転送先アドレスがデータパス回路４における記憶装置４ａ内のアドレスであれば、外部記憶装置２から転送データサイズ分のデータをデータパス回路４内の記憶装置４ａにＤＭＡ転送する。
なお、ＤＭＡコントローラ３は、データのＤＭＡ転送が完了すると、ＤＭＡ転送の完了通知をデータ転送制御部１３に出力し、データ転送制御部１３は、そのＤＭＡ転送の完了通知をメイン制御部１２及びデータパス制御部１５に転送する。
【００３１】
メイン制御部１２は、ＤＭＡコントローラ３が「ＤＭＡ転送０」を実行している間、次のデータ転送に必要な前処理（図２では、「ＤＭＡ転送１前処理」と表記）と、次のデータパス演算（図２では、「データパス演算０」と表記）で必要となるパラメータ等を算出するための単一演算（図２では、「単一演算０」と表記）を実行する。
メイン制御部１２は、「単一演算０」を実行すると、「単一演算０」の演算結果を含むデータパス演算指示をデータパス制御部１５に出力する。
【００３２】
図２では、データパス演算０〜データパス演算３を実行する例を示しており、データパス回路４がデータパス演算０の実施を開始する前に、メイン制御部１２がデータパス演算指示を１回だけデータパス制御部１５に出力すれば、データパス演算０〜データパス演算３の実行が可能であるようにしている。
即ち、メイン制御部１２から出力されるデータパス演算指示には、データパス命令メモリ１４に格納されているプログラムにおける指定範囲の“ループ実行”を指示する記述（プログラムの指定範囲を４回繰り返すことで、データパス演算０〜データパス演算３を実行する旨を示す記述）がなされており、データパス演算指示を１回だけデータパス制御部１５に出力すれば、データパス演算０〜データパス演算３の実行が行えるようにしている。
ただし、データパス演算を複数回繰り返す場合、データパス回路４がデータパス演算を実施する毎に、メイン制御部１２がデータパス演算指示をデータパス制御部１５に出力するようにしてもよい。
【００３３】
その後、メイン制御部１２は、ＤＭＡコントローラ３から出力された「ＤＭＡ転送０」の転送完了通知がデータ転送制御部１３から転送されるまで待機する。
データパス制御部１５についても、ＤＭＡコントローラ３から出力された「ＤＭＡ転送０」の転送完了通知がデータ転送制御部１３から転送されるまで待機する。
【００３４】
データパス制御部１５は、メイン制御部１２からデータパス演算指示を受けてから、データ転送制御部１３から「ＤＭＡ転送０」の転送完了通知を受けると、そのデータパス演算指示にしたがって、データパス演算設定（例えば、データパス命令メモリ１４に格納されているプログラムにおいて、実行を開始する開始アドレス、終了アドレス、次データの転送可能アドレスなどを設定）と、「単一演算０」の演算結果の設定とをデータパス回路４に行って、データパス演算の開始指示をデータパス回路４に発行する。
【００３５】
データパス回路４は、データパス制御部１５からデータパス演算の開始指示を受けると、メイン制御部１２やＤＭＡコントローラ３の処理と並行して、「単一演算０」の演算結果と記憶装置４ａに記憶されているデータ（ＤＭＡコントローラ３によりＤＭＡ転送されたデータ）を用いて、データパス演算設定に係る「データパス演算０」を実行する。
【００３６】
ここで、データパス制御部１５は、データパス命令メモリ１４に格納されているプログラムを実行することで、データパス回路４のデータパス演算を制御するが、そのプログラムが１命令１サイクルでデータパス命令メモリ１４に格納されているとすると、データパス制御部１５が、データパス演算命令を毎サイクル発行することになるため、データパス回路４の演算状況を常時把握していることになる。
したがって、データパス制御部１５は、データパス演算命令として、終了アドレスの命令を発行すると、データパス回路４のデータパス演算が完了したものとして、データパス演算の完了通知をメイン制御部１２に出力する。
また、データパス制御部１５は、データパス回路４がデータパス演算を実行しているときに、記憶装置４ａから取得するデータ（データパス演算に必要なデータ）の取り込み完了タイミングが、次データの転送可能アドレスで指定しているとすれば、データパス演算命令が、次データの転送可能アドレスの命令に到達した時点で、データ転送可能通知をデータ転送制御部１３に出力する。
【００３７】
メイン制御部１２は、データ転送制御部１３から「ＤＭＡ転送０」の転送完了通知を受けると、「ＤＭＡ転送１前処理」におけるアドレス演算等の結果を含むデータ転送指示（図２では、「ＤＭＡ転送１指示」と表記）をデータ転送制御部１３に出力する。
データ転送制御部１３は、メイン制御部１２から「ＤＭＡ転送１指示」を受けると、データパス制御部１５からデータ転送可能通知が出力されていれば、「ＤＭＡ転送１指示」に含まれているアドレス演算等の結果を参照して、ＤＭＡ転送設定（例えば、転送元アドレス、転送先アドレス、転送データサイズなどを設定）をＤＭＡコントローラ３に行って、ＤＭＡ転送の開始指示をＤＭＡコントローラ３に発行する。
【００３８】
ＤＭＡコントローラ３は、データ転送制御部１３からＤＭＡ転送の開始指示を受けると、メイン制御部１２やデータパス回路４の処理と並行して、データ転送制御部１３によるＤＭＡ転送設定に見合うデータ転送（図２では、「ＤＭＡ転送１」と表記）を実行する。
例えば、ＤＭＡ転送設定における転送元アドレスが外部記憶装置２内のアドレスであり、転送先アドレスがデータパス回路４における記憶装置４ａ内のアドレスであれば、外部記憶装置２から転送データサイズ分のデータをデータパス回路４内の記憶装置４ａにＤＭＡ転送する。
なお、ＤＭＡコントローラ３は、データのＤＭＡ転送が完了すると、ＤＭＡ転送の完了通知をデータ転送制御部１３に出力し、データ転送制御部１３は、そのＤＭＡ転送の完了通知をメイン制御部１２及びデータパス制御部１５に転送する。
【００３９】
メイン制御部１２は、ＤＭＡコントローラ３が「ＤＭＡ転送１」を実行している間、次のデータ転送に必要な前処理（図２では、「ＤＭＡ転送２前処理」と表記）と、次のデータパス演算（図２では、「データパス演算１」と表記）で必要となるパラメータ等を算出するための単一演算（図２では、「単一演算１」と表記）を実行する。
その後、メイン制御部１２は、ＤＭＡコントローラ３から出力された「ＤＭＡ転送１」の転送完了通知がデータ転送制御部１３から転送されるまで待機する。
【００４０】
メイン制御部１２は、データ転送制御部１３から「ＤＭＡ転送１」の転送完了通知を受けると、「ＤＭＡ転送２前処理」におけるアドレス演算等の結果を含むデータ転送指示（図２では、「ＤＭＡ転送２指示」と表記）をデータ転送制御部１３に出力する。
その後、メイン制御部１２は、データパス制御部１５から「データパス演算０」の完了通知が出力されるまで待機する。
【００４１】
データ転送制御部１３は、メイン制御部１２から「ＤＭＡ転送２指示」を受けると、データパス制御部１５からデータ転送可能通知が出力されるまで待機し、データパス制御部１５からデータ転送可能通知を受けると、「ＤＭＡ転送２指示」に含まれているアドレス演算等の結果を参照して、ＤＭＡ転送設定（例えば、転送元アドレス、転送先アドレス、転送データサイズなどを設定）をＤＭＡコントローラ３に行って、ＤＭＡ転送の開始指示をＤＭＡコントローラ３に発行する。
【００４２】
ＤＭＡコントローラ３は、データ転送制御部１３からＤＭＡ転送の開始指示を受けると、制御回路１のメイン制御部１２の処理と並行して、データ転送制御部１３によるＤＭＡ転送設定に見合うデータ転送（図２では、「ＤＭＡ転送２」と表記）を実行する。
例えば、ＤＭＡ転送設定における転送元アドレスが外部記憶装置２内のアドレスであり、転送先アドレスがデータパス回路４における記憶装置４ａ内のアドレスであれば、外部記憶装置２から転送データサイズ分のデータをデータパス回路４内の記憶装置４ａにＤＭＡ転送する。
なお、ＤＭＡコントローラ３は、データのＤＭＡ転送が完了すると、ＤＭＡ転送の完了通知をデータ転送制御部１３に出力し、データ転送制御部１３は、そのＤＭＡ転送の完了通知をメイン制御部１２及びデータパス制御部１５に転送する。
【００４３】
メイン制御部１２は、データパス制御部１５から「データパス演算０」の完了通知を受けると、ＤＭＡコントローラ３が「ＤＭＡ転送２」を実行している間、「データパス演算０」の後処理（例えば、データパス演算の演算回数をカウントする処理や、ＤＭＡコントローラ３により転送されたデータパス演算０の演算結果を用いる所定の演算処理）を実行する。
データ転送制御部１３は、メイン制御部１２の指示の下、ＤＭＡコントローラ３を制御することで、データパス回路４によるデータパス演算の演算結果（記憶装置４ａにより記憶されている演算結果）を内部記憶装置１６に転送させる。この演算結果の転送処理は、必要に応じて行われるものであり、データパス演算が実行される毎に行われるものではない。ただし、転送処理自体は、データパス演算に用いるデータの転送処理と同様であるため説明を省略する。
【００４４】
また、メイン制御部１２は、次のデータ転送に必要な前処理（図２では、「ＤＭＡ転送３前処理」と表記）と、次のデータパス演算（図２では、「データパス演算２」と表記）で必要となるパラメータ等を算出するための単一演算（図２では、「単一演算２」と表記）を実行する。
その後、メイン制御部１２は、ＤＭＡコントローラ３から出力された「ＤＭＡ転送２」の転送完了通知がデータ転送制御部１３から転送されるまで待機する。
【００４５】
データパス回路４は、「データパス演算０」の実行が完了すると、メイン制御部１２やＤＭＡコントローラ３の処理と並行して、「単一演算１」の演算結果と記憶装置４ａに記憶されているデータ（ＤＭＡコントローラ３によりＤＭＡ転送されたデータ）を用いて、データパス演算設定に係る「データパス演算１」を実行する。
【００４６】
以降、ＤＭＡコントローラ３における「ＤＭＡ転送３」「ＤＭＡ転送４」及びデータパス回路４における「データパス演算２」「データパス演算３」の処理内容は、ＤＭＡコントローラ３における「ＤＭＡ転送２」及びデータパス回路４における「データパス演算１」の処理内容と同様であるため説明を省略する。
【００４７】
以上で明らかなように、この実施の形態１によれば、データパス演算に用いるデータの転送指令を出力するとともに、所定の単一演算を実行して、その単一演算の演算結果及びデータパス演算の演算内容を示すデータパス演算指示を出力するメイン制御部１２と、メイン制御部１２から出力されたデータの転送指令にしたがってＤＭＡコントローラ３を制御することで、外部記憶装置２に記憶されているデータパス演算に用いるデータをデータパス回路４内の記憶装置４ａに転送させるデータ転送制御部１３とを設け、ＤＭＡコントローラ３によるデータ転送が完了すると、データパス制御部１５が、メイン制御部１２から出力された単一演算の演算結果及びデータパス演算指示が示す演算内容の実行指令であるデータパス演算命令をデータパス回路４に与えて、その単一演算の演算結果とＤＭＡコントローラ３により転送されたデータを用いるデータパス演算命令に係るデータパス演算をデータパス回路４に実行させるように構成したので、データパス回路４がデータパス演算を実行しているとき、メイン制御部１２が次の単一演算を並行して実行することができるようになり、その結果、処理の高速化を図ることができる効果を奏する。
【００４８】
実施の形態２．
上記実施の形態１では、メイン制御部１２が、単一演算の演算結果及びデータパス演算の演算内容を示すデータパス演算指示を出力し、データパス制御部１５が、メイン制御部１２から出力された単一演算の演算結果及びデータパス演算指示が示す演算内容の実行指令であるデータパス演算命令をデータパス回路４に与えて、その単一演算の演算結果とＤＭＡコントローラ３により転送されたデータを用いる上記データパス演算命令に係るデータパス演算をデータパス回路４に実行させるものについて示したが、メイン制御部１２が、単一演算の演算結果に対応するデータパス演算の演算内容を示すデータパス演算指示を出力し、データパス制御部１５が、メイン制御部１２から出力されたデータパス演算指示が示す演算内容の実行指令であるデータパス演算命令（単一演算の演算結果が反映されたデータパス演算の演算内容を実行するデータパス演算命令）をデータパス回路４に与えて、ＤＭＡコントローラ３により転送されたデータを用いる上記データパス演算命令に係るデータパス演算をデータパス回路４に実行させるようにしてもよい。
【００４９】
ここで、単一演算の演算結果が反映されたデータパス演算の演算内容として、例えば、単一演算の演算結果が閾値以上であれば、“Ａ＋Ｂ”のデータパス演算を実行し、単一演算の演算結果が閾値未満であれば、“Ａ＋２Ｂ”のデータパス演算を実行するなどが考えられる。
【００５０】
実施の形態３．
上記実施の形態１では、データパス制御部１５が、データパス演算命令として、終了アドレスの命令を発行すると、データパス回路４のデータパス演算が完了したものとして、データパス演算の完了通知をメイン制御部１２に出力するものについて示したが、メイン制御部１２がデータパス制御部１５に出力するデータパス演算指示で、データパス演算の完了通知を出力するタイミング（例えば、アドレス、プログラムカウンタ）を指定し、データパス制御部１５が、上記タイミングでデータパス演算の完了通知をメイン制御部１２に出力するようにしてもよい。
この場合、メイン制御部１２は、データパス演算の終了アドレスの命令が実行されるより前に、データパス演算の後処理を開始できる状況下（例えば、終了アドレスの命令が実行される前に、データパス演算の演算結果が確定しているような状況下）では、後処理を開始するタイミングを自在に設定することが可能となる。
【００５１】
実施の形態４．
図３はこの発明の実施の形態４によるデータ演算装置を示す構成図であり、図において、図１と同一符号は同一又は相当部分を示すので説明を省略する。
上位制御回路６は制御回路１の処理内容を制御する回路である。
上位制御回路間通信Ｉ／Ｆ１７は上位制御回路６から出力された制御信号を受信する一方、データパス演算の結果等を上位制御回路６に送信する処理を実施する。なお、上位制御回路間通信Ｉ／Ｆ１７は通信インタフェースを構成している。
【００５２】
次に動作について説明する。
上位制御回路６は、例えば、制御回路１のメイン制御部１２の処理内容を制御する際、メイン制御部１２の処理内容を示す制御指示や制御用のパラメータ等を含む制御信号を制御回路１に出力する。
制御回路１の上位制御回路間通信Ｉ／Ｆ１７は、通信用記憶装置（例えば、レジスタ）を備えており、上位制御回路６から出力された制御信号に含まれている制御指示や制御用のパラメータ等を通信用記憶装置に書き込む処理を行う。
【００５３】
メイン制御部１２は、上記実施の形態１と同様にして、メイン命令メモリ１１に格納されているプログラムを読み込むと、そのプログラムを実行することにより、上位制御回路間通信Ｉ／Ｆ１７の通信用記憶装置に書き込まれている制御指示や制御用のパラメータ等の読み出しを行う。
この実施の形態４では、メイン命令メモリ１１に格納されているプログラムの先頭には、上位制御回路間通信Ｉ／Ｆ１７の通信用記憶装置から制御指示や制御用のパラメータ等の読み出しを行う命令が記述されているものとする。
【００５４】
メイン制御部１２は、制御指示や制御用のパラメータ等の読み出しを行うと、その制御指示や制御用のパラメータ等を考慮して、単一演算を実行するとともに、データ転送制御部１３に対するデータ転送指示や、データパス制御部１５に対するデータパス演算指示を行う。
即ち、メイン制御部１２は、メイン命令メモリ１１に格納されているプログラムを実行することで、単一演算の実行や、データ転送制御部１３に対するデータ転送指示や、データパス制御部１５に対するデータパス演算指示を行うが、例えば、その制御指示がプログラムの追加や変更を示していれば、追加・変更されたプログラムを実行することで、単一演算の実行や、データ転送制御部１３に対するデータ転送指示や、データパス制御部１５に対するデータパス演算指示を行う。
また、制御用のパラメータがプログラムの分岐条件や閾値などを示していれば、その分岐条件や閾値などを満足するようにプログラムを実行する。
【００５５】
メイン制御部１２は、通信用記憶装置から読み出した制御指示が、データパス演算や単一演算の演算結果等の送信を指示するものであれば、データパス演算や単一演算の演算結果等を上位制御回路間通信Ｉ／Ｆ１７の通信用記憶装置に書き込む処理を行う。
上位制御回路間通信Ｉ／Ｆ１７は、メイン制御部１２がデータパス演算や単一演算の演算結果等を通信用記憶装置に書き込むと、そのデータパス演算や単一演算の演算結果等を上位制御回路６に送信する。
【００５６】
以上で明らかなように、この実施の形態４によれば、上位制御回路６から出力された制御信号を受信する上位制御回路間通信Ｉ／Ｆ１７を備え、メイン制御部１７が、上位制御回路間通信Ｉ／Ｆ１７により受信された制御信号にしたがって処理（例えば、単一演算の実行、データ転送制御部１３に対するデータ転送指示、データパス制御部１５に対するデータパス演算指示など）を行うように構成したので、上位制御回路６が制御回路１の処理を制御することが可能になり、その結果、他回路と連携しながらデータ演算を行うことができる効果を奏する。
【符号の説明】
【００５７】
１  制御回路、２  外部記憶装置、３  ＤＭＡコントローラ、４  データパス回路、４ａ  記憶装置、５  バス、６  上位制御回路、１１  メイン命令メモリ、１２  メイン制御部、１３  データ転送制御部、１４  データパス命令メモリ、１５  データパス制御部、１６  内部記憶装置、１７  上位制御回路間通信Ｉ／Ｆ（通信インタフェース）。
【図１】
0005404294.tif 000002
【図２】
0005404294.tif 000003
【図３】
0005404294.tif 000004
【図４】
0005404294.tif 000005