(57)【要約】  演算効率の低下、回路規模の増大及び消費電力の増大を解決する演算装置提供するため、本発明の演算装置は、演算対象データを格納する第１のデータ格納手段と、データを用いて演算を実行する演算処理手段と、第１のデータ格納手段に格納された演算対象データ及び演算処理手段で演算されたデータの中から指示されたデータを選択し、パラメータに基づいて、指示されたデータのうち遅延の指示を受けたデータに対し所定の遅延を付与し、遅延の指示を受けないデータに対し遅延させず、パラメータに基づいて、指示されたデータの並び替えを実行し、演算処理手段において演算されるデータと演算処理手段の演算結果データとを出力するデータ並び替え手段と、演算結果データを格納する第２のデータ格納手段とを含む。
2014103235.tif 000002
【特許請求の範囲】
【請求項１】
演算対象データを格納する第１のデータ格納手段と、
データを用いて演算を実行する演算処理手段と、
前記第１のデータ格納手段に格納された前記演算対象データ及び前記演算処理手段で演算されたデータの中から指示されたデータを選択し、パラメータに基づいて、指示されたデータのうち遅延の指示を受けたデータに対し所定の遅延を付与し、遅延の指示を受けないデータに対し遅延させず、パラメータに基づいて、指示されたデータの並び替えを実行し、前記演算処理手段において演算されるデータと前記演算処理手段の演算結果データとを出力するデータ並び替え手段と、
前記データ並び替え手段が出力した前記演算結果データを格納する第２のデータ格納手段と
を含む演算装置。
【請求項２】
複数のデータ並び替え手段と、複数の演算処理手段とを含み、
前記データ並び替え手段が、
前記演算対象データと、１又は２以上の演算処理手段の演算結果のデータの中から指示されたデータを選択する
請求項１に記載の演算装置。
【請求項３】
前記データ並び替え手段が、
データを受け取り、指示されたデータを選択し、前記第２のデータ格納手段、又は、前記演算処理手段に出力する入力データ選択手段と、
前記入力データ選択手段からデータを受け取り、前記パラメータに基づいて、遅延の指示を受け取ったデータに対し遅延を付与し、遅延の指示を受けないデータに対し遅延させず、パラメータを基に、指示された並び替えを実行し、所定の出力ポートから出力するマルチポート格納手段と、
前記入力データ選択部及び前記マルチポート格納手段を制御する並び替え制御手段と
を含むことを特徴とする請求項１又は請求項２に記載の演算装置。
【請求項４】
前記入力データ選択手段が、
入力されたデータと同じ出力先の他のデータがあるか否かを確認し、他のデータがない場合、前記入力されたデータを出力し、他のデータがある場合、いずれかのデータを出力後、前記出力先が再度受信可能となった後、残りのデータを出力する
ことを特徴とする請求項３に記載の演算装置。
【請求項５】
前記並び替え制御手段が、
前記マルチポート格納手段の読み出しアドレス及び書き込みアドレスを監視し、
読み出し指示を受けたとき、
前記読み出し指示のアドレスが書き込み済みの場合、前記読み出しアドレスからデータを読み出し、
前記読み出し指示のアドレスが未書き込みの場合、前記読み出しアドレスにデータが書き込まれるまで読み出しを停止する
ことを特徴とする請求項３又は請求項４に記載の演算装置。
【請求項６】
演算対象データを格納し、
データを用いて演算し、
格納された前記演算対象データ及び演算されたデータの中から指示されたデータ選択し、パラメータに基づいて、指示されたデータのうち遅延の指示を受けたデータに対し所定の遅延を付与し、遅延の指示を受けないデータに対し遅延させず、パラメータに基づいて、指示されたデータの並び替えを実行し、演算されるデータと演算結果データとを出力し、
前記演算結果データを格納する
演算方法。
【請求項７】
演算対象データを格納する処理と、
データを用いて演算する処理と、
格納された前記演算対象データ及び演算されたデータの中から指示されたデータ選択し、パラメータに基づいて、指示されたデータのうち遅延の指示を受けたデータに対し所定の遅延を付与し、遅延の指示を受けないデータに対し遅延させず、パラメータに基づいて、指示されたデータの並び替えを実行し、演算されるデータと演算結果データとを出力する処理と、
前記演算結果データを格納する処理と
をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の演算処理部（プロセッサ）を含む演算装置に関し、特に、データを並び替える演算装置に関する。
【背景技術】
【０００２】
信号処理は、連続する多量のデータ（ストリームデータ）を演算対象データとして扱う。そして、信号処理は、それら多量のデータに対して繰り返し同じ処理（複数の命令を用いて実現できる演算）を実行する場合が多い。【０００３】
多量のデータを効率的に処理するためのプロセッサアーキテクチャの一つに、アレイプロセッサがある。【０００４】
図７は、一般的なアレイプロセッサ１９の構成の一例を示すブロック図である。【０００５】
図７に示すアレイプロセッサ１９は、複数の演算処理部１１ａ〜１１ｄ（以下、これらをまとめて演算処理部１１と言う）及び演算処理部１２ａ〜１２ｄ（以下、これらをまとめて演算処理部１２と言う）をアレイ状に配置したアレイ演算部１４を含む。（なお、以下の説明において、アレイ演算部１４に含まれる各演算処理部、つまり、演算処理部１１と演算処理部１２とをまとめて、演算処理部１５と言う。）
さらに、アレイプロセッサ１９は、アレイ演算部１４に接続されたメモリバンク１０ａ〜１０ｄ（以下、まとめてメモリバンク１０と言う）及びメモリバンク１３ａ〜１３ｄ（以下、まとめてメモリバンク１３と言う）を備えるデータメモリ１７を含む。（なお、以下の説明において、メモリバンク１０とメモリバンク１３とをまとめて、マルチバンク１６と言う。）
アレイ状に配置された演算処理部１５は、近隣の演算処理部１５と接続している。演算処理部１５の間には、網の目のように配線が、接続されている。それぞれの接続は、演算処理部１５の入力段にあるスイッチで制御されている。演算対象のデータは、アレイ演算部１４に接続されているマルチバンク１６のメモリバンク１０及びメモリバンク１３に格納される。【０００６】
アレイ演算部１４は、内部の接続構成に基づき、並列度及び演算処理に対する柔軟性の度合いが異なる。図７に示すアレイプロセッサ１９では、演算処理部１５は、図７に示すように近隣の演算処理部１５と接続している。【０００７】
アレイプロセッサ１９は、複数の演算処理部１５を協調させて所定の処理を実行する。そのため、演算処理部１５に到達して入力されるデータのタイミングが異なる場合、アレイプロセッサ１９は、適切に演算を実行できない場合がある。【０００８】
例えば、図７において、演算処理部１２ｂに注目して説明する。そして、演算処理部１２ｂの演算は、演算処理部１１ｂと演算処理部１２ａとの演算結果が必要であるとする。この場合、演算処理部１１ｂ及び演算処理部１２ａの演算の実行タイミングが異なると、そのタイミングに基づき、演算処理部１１ｂ及び演算処理部１２ａから演算処理部１２ｂへのそれぞれの演算結果の入力タイミングに、差が生じる。同様に、演算処理部１１ｂ及び演算処理部１２ａの演算の出力の遅延が異なると、その遅延差に基づき、演算処理部１１ｂ及び演算処理部１２ａから演算処理部１２ｂへのそれぞれの演算結果の入力タイミングに、差が生じる。このタイミング差に相当する時間が、無駄時間となる。【０００９】
アレイプロセッサ１９の演算処理中において、なるべく多くの演算処理部１５が同時に動作していることが、アレイプロセッサ１９の動作効率を高めるポイントとなる。そのため、演算処理部１５間の同期制御をいかに構成するかは、アレイプロセッサ１９の動作効率向上のために重要である。【００１０】
そのため、データの同期機構が、用いられている（例えば、特許文献１参照）。【００１１】
図８は、同期機構としてＦＩＦＯ（First In First Out）メモリを用いたアレイプロセッサ２９の構成の一例を示すブロック図である。【００１２】
図８に示すように、アレイプロセッサ２９は、演算処理部２１ａ〜２１ｄ（以下、まとめて演算処理部２１と言う）及び演算処理部２２ａ〜２２ｄ（以下まとめて、演算処理部２２と言う）を含む。また、アレイプロセッサ２９は、メモリバンク２０ａ〜２０ｄ（以下、まとめてメモリバンク２０と言う）及びメモリバンク２３ａ〜２３ｄ（以下、まとめてメモリバンク２３と言う）を含む。さらに、アレイプロセッサ２９は、演算処理部２１、演算処理部２２、メモリバンク２０及びメモリバンク２３の入出力を、ＦＩＦＯ２４ａ〜２４g、ＦＩＦＯ２５ａ〜２５g及びＦＩＦＯ２６ａ〜２６ｄを介して接続する。以下、ＦＩＦＯ２４ａ〜２４gをまとめて、ＦＩＦＯ２４と言う。同様に、ＦＩＦＯ２５ａ〜２５gを、まとめてＦＩＦＯ２５と言う。ＦＩＦＯ２６ａ〜２６ｄをまとめて、ＦＩＦＯ２６と言う。そして、アレイプロセッサ２９は、入出力データを同期する同期制御部２７ａ〜２７ｄ（以下、まとめて同期制御部２７と言う）及び同期制御部２８ａ〜２８ｄ（以下、まとめて同期制御部２８と言う）を含む。同期制御部２７及び同期制御部２８は、ＦＩＦＯ２４、ＦＩＦＯ２５及びＦＩＦＯ２６を用いて、メモリバンク２０、メモリバンク２３、演算処理部２１及び演算処理部２２に到達するデータを制御する。演算処理部２１及び演算処理部２２は、同期制御部２７及び同期制御部２８を用いて、到達する入力データが入力ポート毎に異なる場合の同期制御を可能とする。【００１３】
また、他の解決方法として、演算処理部と近隣の演算処理部との接続に非同期制御部を導入する技術がある（例えば、特許文献２参照）。特許文献２に記載の技術は、所定の演算処理に対する入力データが不足した場合、それぞれの演算処理部が演算の実行を待つ。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特表平４−５０３７２０号公報
【特許文献２】特開昭５８−１８１１６８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１５】
特許文献１に記載の技術は、演算処理部２１、演算処理部２２、メモリバンク２０及びメモリバンク２３の間の接続が、全てＦＩＦＯ２４〜２６を介したスイッチで構成する。そのため、特許文献１に記載の技術は、データ転送に関する回路規模が増大するという問題点があった。また、特許文献１に記載の技術は、回路規模が増大するため、消費電力が増加するという問題点があった。【００１６】
特許文献２に記載の技術は、演算処理部が非同期動作であるため、データ転送に関する冗長なハンドシェイクが発生する。そのため、特許文献２に記載の技術は、演算処理部の演算効率が低下するという問題点があった。また、特許文献２に記載の技術は、演算効率が低下するため、実行時間が増加する問題点があった。【００１７】
本発明の目的は、上述した課題である演算効率の低下、回路規模の増大及び消費電力の増大を解決する演算装置及び演算処理方式を提供することにある。
【課題を解決するための手段】
【００１８】
本発明の一形態における演算装置は、演算対象データを格納する第１のデータ格納手段と、データを用いて演算を実行する演算処理手段と、前記第１のデータ格納手段に格納された前記演算対象データ及び前記演算処理手段で演算されたデータの中から指示されたデータを選択し、パラメータに基づいて、指示されたデータのうち遅延の指示を受けたデータに対し所定の遅延を付与し、遅延の指示を受けないデータに対し遅延させず、パラメータに基づいて、指示されたデータの並び替えを実行し、前記演算処理手段において演算されるデータと前記演算処理手段の演算結果データとを出力するデータ並び替え手段と、前記データ並び替え手段が出力した前記演算結果データを格納する第２のデータ格納手段とを含む。【００１９】
本発明の一形態における演算方法は、演算対象データを格納し、データを用いて演算し、格納された前記演算対象データ及び演算されたデータの中から指示されたデータ選択し、パラメータに基づいて、指示されたデータのうち遅延の指示を受けたデータに対し所定の遅延を付与し、遅延の指示を受けないデータに対し遅延させず、パラメータに基づいて、指示されたデータの並び替えを実行し、演算されたデータと演算結果データとを出力し、前記演算結果データを格納する。【００２０】
本発明の一形態におけるコンピュータ読み取り可能なプログラムを記録した記録媒体は、演算対象データを格納する処理と、データを用いて演算する処理と、格納された前記演算対象のデータ及び演算されたデータの中から指示されたデータ選択し、パラメータに基づいて、指示されたデータのうち遅延の指示を受けたデータに対し所定の遅延を付与し、遅延の指示を受けないデータに対し遅延させず、パラメータに基づいて、指示されたデータの並び替えを実行し、演算されるデータと演算結果データとを出力する処理と、前記演算結果データを格納する処理とをコンピュータに実行させるプログラムを記録する。
【発明の効果】
【００２１】
本発明によれば、回路規模及び消費電力の増大を抑えながら、演算効率を高めることができる。
【図面の簡単な説明】
【００２２】
【図１】図１は、本発明における第１の実施形態の演算装置の構成の一例を示すブロック図である。
【図２】図２は、第１の実施形態のデータ並び替え部の構成の一例を示すブロック図である。
【図３】図３は、第１の実施形態の演算装置の別の構成の一例を示すブロック図である。
【図４】図４は、第１の実施形態の演算装置の別の構成の一例を示すブロック図である。
【図５】図５は、第１の実施形態の演算装置の別の構成の一例を示すブロック図である。
【図６】図６は、第１の実施形態のデータ並び替え部の構成の一例を示すブロック図である。
【図７】図７は、一般的なアレイプロセッサの構成を示すブロック図である。
【図８】図８は、一般的な同期機構を搭載したアレイプロセッサの構成を示すブロック図である。
【発明を実施するための形態】
【００２３】
次に、本発明の実施形態について図面を参照して説明する。
【００２４】
なお、各図面は、本発明の実施形態を説明するものである。そのため、本発明は、各図面の記載に限られるわけではない。また、各図面の同様の構成には、同じ番号を付し、その繰り返しの説明は、省略する場合がある。
【００２５】
（第１の実施形態）
図１は、本発明における第１の実施形態の演算装置３７の構成の一例を示すブロック図である。
【００２６】
演算装置３７は、メモリバンク３０ａ〜３０ｄと、メモリバンク３３ａ〜３３ｄと、演算処理部３１ａ〜３１ｄと、演算処理部３２ａ〜３２ｄと、データ並び替え部３４ａ〜３４ｂとを含む。以下、メモリバンク３０ａ〜３０ｄをまとめて、メモリバンク３０と言う。同様に、メモリバンク３３ａ〜３３ｄをまとめて、メモリバンク３３と言う。演算処理部３１ａ〜３１ｄをまとめて、演算処理部３１と言う。演算処理部３２ａ〜３２ｄをまとめて、演算処理部３２と言う。データ並び替え部３４ａ〜３４ｂをまとめてデータ並び替え部３４と言う。
【００２７】
本実施形態の演算装置３７は、図１に示すように、データ並び替え部３４ａと、演算処理部３１と、データ並び替え部３４ｂと、演算処理部３２とを、環状（リング状）に接続する。
【００２８】
メモリバンク３０は、データ並び替え部３４ａと、データ並び替え部３４ｂとに接続する。
【００２９】
メモリバンク３３は、データ並び替え部３４ａと、データ並び替え部３４ｂとに接続する。
【００３０】
メモリバンク３０及びメモリバンク３３は、演算データを格納する。そのため、メモリバンク３０及びメモリバンク３３は、データ格納部とも言える。なお、演算データは、演算対象となるデータ（演算対象データ）と演算結果となるデータ（演算結果データ）とを含むデータである。
【００３１】
また、メモリバンク３０及びメモリバンク３３は、使用目的に制限はない。メモリバンク３０又はメモリバンク３３のいずれか一部のメモリバンクが、演算対象データを保持し、残りのメモリバンクが演算結果データを格納すれば良い。例えば、メモリバンク３０が演算対象データを保持し、メモリバンク３３が演算結果データを保持しても良い。反対に、メモリバンク３３が演算対象データを保持し、メモリバンク３０が演算結果データを格納しても良い。また、メモリバンク３０及びメモリバンク３３の一部が、演算対象データを保持し、残りのメモリバンク３０及びメモリバンク３３が、演算結果データを格納しても良い。さらに、メモリバンク３０及びメモリバンク３３は、他のデータを保持しても良い。例えば、メモリバンク３０又はメモリバンク３３は、後ほど説明するパラメータを保持しても良い。
【００３２】
以下では、一例として、メモリバンク３０が、演算対象データを保持し、メモリバンク３３が、演算結果データを格納するとして説明する。
【００３３】
データ並び替え部３４ａは、前段となる演算処理部３２と、後段となる演算処理部３１と、メモリバンク３０と、メモリバンク３３とに接続する。
【００３４】
データ並び替え部３４ｂは、前段となる演算処理部３１と、後段となる演算処理部３２と、メモリバンク３０と、メモリバンク３３とに接続する。
【００３５】
データ並び替え部３４ａは、前段の演算処理部３２の処理結果のデータ又はメモリバンク３０のデータのどちらかを、出力先として接続する後段の演算処理部３１に、適切なタイミングで供給する。そのため、データ並び替え部３４ａは、データを時間方向に並び替え、データを供給する演算処理部３１を選択し、データを供給する。
【００３６】
データ並び替え部３４ｂは、前段の演算処理部３１の処理結果のデータ又はメモリバンク３０のデータのどちらかを、出力先として接続する後段の演算処理部３２に、適切なタイミングで供給する。そのために、データ並び替え部３４ｂは、データを時間方向に並び替え、データを供給する演算処理部３２を選択し、データを供給する。
【００３７】
複数の演算処理部３１及び演算処理部３２は、所定の演算処理に必要な要素演算を実行する。
【００３８】
例えば、演算処理部３１及び演算処理部３２は、四則演算、論理演算、アキュムレーション又はパワー計算を実行する。
【００３９】
ただし、本実施形態の演算処理部３１及び演算処理部３２が実行する演算は、特に制限はない。
【００４０】
演算処理部３１は、前段となるデータ並び替え部３４ａと、後段となるデータ並び替え部３４ｂとに接続する。演算処理部３１は、データ並び替え部３４ａからメモリバンク３０のデータを受け取り、所定の演算を処理し、データ並び替え部３４ｂに演算結果を出力する。
【００４１】
演算処理部３２は、前段となるデータ並び替え部３４ｂと、後段となるデータ並び替え部３４ａとに接続する。演算処理部３２は、データ並び替え部３４ｂからメモリバンク３０のデータと演算処理部３２の演算結果とを受け取り、所定の演算を処理し、データ並び替え部３４ａに演算結果を出力する。
【００４２】
以下では、必要に応じ、演算処理部３１を「第１の演算処理部」と、演算処理部３２を「第２の演算処理部」と言う。
【００４３】
また、必要に応じ、データ並び替え部３４ａを「第１のデータ並び替え部」と、データ並び替え部３４ｂを「第２のデータ並び替え部」と言う。
【００４４】
次に、図面を参照して、データ並び替え部３４について、詳細に説明する。
【００４５】
図２は、データ並び替え部３４の構成の一例を示すブロック図である。
【００４６】
図２に示すように、データ並び替え部３４は、入力データ選択部４０と、マルチバンクメモリ４１と、並び替え制御部４２とを含む。
【００４７】
入力データ選択部４０は、メモリバンク３０と、メモリバンク３３と、前段の演算処理部（演算処理部３１又は演算処理部３２）と、マルチバンクメモリ４１と、並び替え制御部４２とに接続する。
【００４８】
そして、入力データ選択部４０は、メモリバンク３０からの入力データ及び前段の演算処理部からの入力データを出力する演算処理部を、選択する。
【００４９】
例えば、データ並び替え部３４ａの入力データ選択部４０は、メモリバンク３０からの入力データ及び前段の演算処理部３２の入力データを出力する演算処理部３１を、選択する。
【００５０】
同様に、データ並び替え部３４ｂの入力データ選択部４０は、メモリバンク３０からの入力データ及び前段の演算処理部３１の入力データを出力する演算処理部３２を、選択する。
【００５１】
また、入力データ選択部４０は、前段の演算処理部からの入力データを、メモリバンク３３に出力するか否かを、選択する。
【００５２】
例えば、データ並び替え部３４ａの入力データ選択部４０は、前段の演算処理部３２からの入力データを、メモリバンク３３に出力するか否かを、選択する。
【００５３】
同様に、データ並び替え部３４ｂの入力データ選択部４０は、前段の演算処理部３１からの入力データを、メモリバンク３３に出力するか否かを、選択する。
【００５４】
マルチバンクメモリ４１は、複数のポートを具備するマルチポートメモリである。
【００５５】
なお、図２に示すマルチバンクメモリ４１は、ボート数として、４ポートとなっているが、これは例示である。本実施形態のマルチバンクメモリ４１は、４未満のポート数を備えても良く、４を超えるポート数を備えても良い。
【００５６】
マルチバンクメモリ４１は、入力データ選択部４０と、演算処理部３１又は演算処理部３２と、並び替え制御部４２とに接続する。
【００５７】
そして、マルチバンクメモリ４１は、並び替え制御部４２から、書き込み及び読み出しタイミングの信号又は指示を受ける。また、マルチバンクメモリ４１は、並び替え制御部４２から、書き込みポート及び読み出しポートの指示を受け取る。そして、マルチバンクメモリ４１は、これらを基に、受け取ったデータを格納し、データを出力ポート方向に並び替え、データを時間方向に並び替える。
【００５８】
例えば、図２に示す４ポートのマルチバンクメモリ４１を用いて、上記の動作について説明する。ここで、ポート番号は、それぞれ０、１、２、３とする。そして、ポート番号（第０ポート−第３ポート）は、各構成の符号（ａ−ｄ）に、それぞれ対応するものとする。
【００５９】
例えば、マルチバンクメモリ４１は、指示を基に、第０ポートから書き込まれたデータを第２ポートに送り出す。この結果、例えば、マルチバンクメモリ４１は、演算処理部３１ａからのデータを演算処理部３２ｃに転送する。
【００６０】
また、例えば、マルチバンクメモリ４１は、指示を基に、Ｎサイクル目に書き込まれたデータを、Ｎ＋４サイクル目に送り出す。この場合、マルチバンクメモリ４１は、時間方向に４サイクル分、データを遅延させる。
【００６１】
なお、本実施形態のマルチバンクメモリ４１は、複数のバンクに同時にアクセスできれば、特に制限はない。例えば、マルチバンクメモリ４１は、所定のポート数とメモリを備えた一般的なマルチポートメモリでも良い。また、マルチバンクメモリ４１は、複数のメモリを接続するクロスバを搭載したメモリ装置でも良い。そのため、マルチバンクメモリ４１は、「マルチポート格納部」と言うこともできる。
【００６２】
並び替え制御部４２は、入力データ選択部４０と、マルチバンクメモリ４１とに接続する。
【００６３】
並び替え制御部４２は、少なくとも、入力データ選択部４０の選択動作と、マルチバンクメモリ４１のメモリアクセスとを制御する。
【００６４】
並び替え制御部４２は、制御方法について、特に制限はない。例えば、並び替え制御部４２は、入力データ選択部４０に、入力データの選択を示す入力データ選択信号を送っても良い。あるいは、並び替え制御部４２は、入力データ選択部４０に、選択命令を送っても良い。
【００６５】
また、並び替え制御部４２は、マルチバンクメモリ４１に、書き込みアドレス及び読み出しアドレスを送っても良い。あるいは、並び替え制御部４２は、書き込み命令及び読み出し命令を送っても良い。
【００６６】
次に、本実施形態の演算装置３７の動作について説明する。
【００６７】
説明の前提として、演算は、メモリバンク３０から並列に演算処理部３１に向かって読み出されるデータを対象とする。そして、演算処理部３１及び演算処理部３２が演算した結果は、メモリバンク３３に格納されると仮定する。
【００６８】
また、演算装置３７の演算処理として、以下に示す処理を説明する。
【００６９】
（１）演算に必要なパラメータをデータ並び替え部３４に格納する（以下、「パラメータのプレローディング」ステップとする）。
【００７０】
（２）メモリバンク３０に格納されているデータを用いて、演算処理部３１及び演算処理部３２で所定の演算を処理し、その後、演算結果をメモリバンク３３に書き込む（以下、「本演算」ステップとする）。
【００７１】
まず、（１）のパラメータのプレローディングステップについて説明する。
【００７２】
メモリバンク３０から並列にデータ並び替え部３４にパラメータが、転送される。
【００７３】
ここで、パラメータとは、マルチバンクメモリ４１におけるデータの出力ポートの切り替え及びデータの時間方向の並び替え、つまり、データの並び替え及び遅延を指示するデータである。
【００７４】
パラメータは、演算処理の前に、メモリバンク３０に格納されていれば良い。例えば、演算装置３７を用いて演算を実行する利用者が、演算処理の前に、パラメータをメモリバンク３０に格納する。
【００７５】
なお、本実施形態では、データ並び替え部３４は、メモリバンク３０から読み出されたパラメータがブロードキャストされて入力できるようにメモリバンク３０と接続されている。そのため、本実施形態のデータ並び替え部３４ａ及びデータ並び替え部３４ｂは、双方に必要なデータであっても、一度に、メモリバンク３０から読み出せる。
【００７６】
転送されたパラメータは、データ並び替え部３４の内部の入力データ選択部４０に入力される。そして、入力データ選択部４０は、並び替え制御部４２が生成した入力データ選択信号に基づき、必要なパラメータを選択する。そして、必要なパラメータは、並び替え制御部４２が生成した書き込みアドレスに従い、マルチバンクメモリ４１の所定の場所に格納される。
【００７７】
マルチバンクメモリ４１は、パラメータを基に、データの所定の遅延や並び替えを実行する。
【００７８】
本実施形態の演算装置３７は、（１）のステップが終了すると、実際の演算処理のための（２）の本演算ステップを処理する。
【００７９】
次に、（２）の本演算ステップについて説明する。
【００８０】
まず、演算データが、メモリバンク３０から並列にデータ並び替え部３４ａに転送される。
【００８１】
データ並び替え部３４ａに演算データ（演算対象データ）が入力されると、データ並び替え部３４ａの入力データ選択部４０は、入力された演算データを選択する。そして、入力データ選択部４０は、データ並び替え部３４ａの並び替え制御部４２が生成する書き込みアドレスを用いて、マルチバンクメモリ４１に演算データを格納する。このとき、並び替え制御部４２は、生成した書き込みアドレスの数をカウントし、読み出しアドレス生成のタイミングを判定する。
【００８２】
例えば、データ転送の遅延が４サイクルの場合、並び替え制御部４２は、書き込みアドレスのカウント数が４以上となったときに、最初の読み出しアドレスを生成する。このような動作を基に、並び替え制御部４２は、所定のデータ転送遅延を実現する。
【００８３】
マルチバンクメモリ４１が演算データを格納すると、並び替え制御部４２は、読み出しアドレス生成タイミング及びアドレスを制御する。この並び替え制御部４２の動作に基づき、演算データは、前述したように、所定の遅延が与えられ、並列方向に並び替えられ、所定のタイミングで演算処理部３１に転送される。
【００８４】
演算データが複数の演算処理部３１に入力されると、演算処理部３１は、所定の演算を実行する。
【００８５】
演算処理部３１の演算結果のデータは、後段のデータ並び替え部３４ｂに転送される。演算結果のデータがデータ並び替え部３４ｂに入力されると、データ並び替え部３４ｂは、データ並び替え部３４ａと同様に、入力データ（演算結果）に所定の遅延を与え、所定の並列方向に並び替え、演算処理部３２に転送する。
【００８６】
演算処理部３２は、データが転送されると、所定の演算を実行し、後段のデータ並び替え部３４ａにデータを送信する。
【００８７】
演算処理部３２からデータ並び替え部３４ａにデータが入力されると、データ並び替え部３４ａの並び替え制御部４２は、入力されたデータがメモリバンク３３に書き戻す対象であるか否かを判断する。そして、並び替え制御部４２は、データ並び替え部３４ａの入力データ選択部４０に、判断に沿った入力データ選択信号を供給する。その結果、入力データは、メモリバンク３３に転送される。
【００８８】
演算装置３７は、以上の処理をデータ数の回数繰り返し、所定の演算を実現できる。なお、演算装置３７の各部は、処理を、パイプライン的に実行しても良い。
【００８９】
ここまでの説明では、説明の明確化のため、データ並び替え部３４は、複雑な並び替え処理を用いていない。しかし、演算装置３７は、これまでの説明と同様の動作を基に、複雑なデータ転送（又は、演算処理部の接続）を有する演算処理を実現できる。例えば、演算装置３７のデータ並び替え部３４が、データの並び替えを適宜実行すれば、演算処理部３１及び演算処理部３２は、効率的に、協調動作しながら、所定の演算を実行できる。
【００９０】
また、ここまでの説明において、演算処理部３１及び演算処理部３２は、各１回演算処理を実行した。
【００９１】
しかし、本実施形態の演算装置３７は、演算処理部３１及び演算処理部３２の処理の回数を１回に限る必要はない。
【００９２】
データ並び替え部３４、演算処理部３１及び演算処理部３２は、図１に示すように、リング状に接続している。
【００９３】
そのため、演算装置３７は、次に示す動作を基に、演算処理部の段の数を超える規模の演算を処理できる。
【００９４】
まず、データ並び替え部３４ａは、メモリバンク３０のデータを必要に応じて並び替えた後、選択して、演算処理部３１に転送する。
【００９５】
演算処理部３１は、所定の演算を処理し、データ並び替え部３４ｂに転送する。
【００９６】
データ並び替え部３４ｂは、メモリバンク３０のデータ及び演算処理部３１の演算結果を必要に応じて並び替えた後、選択し、演算処理部３２に転送する。
【００９７】
演算処理部３２は、所定の演算を処理し、データ並び替え部３４ａに転送する。
【００９８】
これまでの説明では、データ並び替え部３４ａは、演算処理部３２の処理結果を選択して、メモリバンク３３に送り出した。
【００９９】
しかし、ここでは、データ並び替え部３４ａは、メモリバンク３０のデータ及び演算処理部３２の処理結果を必要に応じて並び替えた後、選択して、演算処理部３１に転送する。
【０１００】
なお、データ並び替え部３４ａは、受け取った演算結果に最終的な演算結果が含まれる場合、その演算結果を選択して、メモリバンク３３に転送する。具体的には、入力データ選択部４０が、並び替え制御部４３の指示を基に、演算処理部３２の処理結果をメモリバンク３３に転送する。
【０１０１】
演算処理部３１は、所定の演算を処理し、データ並び替え部３４ｂに転送する。
【０１０２】
前回と同様に、データ並び替え部３４ｂは、メモリバンク３０のデータ及び演算処理部３１の演算結果を必要に応じて並び替えた後、選択し、演算処理部３２に転送する。また、データ並び替え部３４ｂは、受け取った演算結果に最終的な演算結果が含まれる場合、その演算結果を、メモリバンク３３に転送する。
【０１０３】
演算装置３７は、所定の演算処理が終了するまで、この処理を繰り返す。
【０１０４】
なお、演算回数が１段で済むような演算規模が小さな演算を含む場合、データ並び替え部３４ｂは、最初の演算結果を受けた段階で、最終的な演算結果をメモリバンク３３に転送しても良い。この場合、上記と同様に、データ並び替え部３４ｂの入力データ選択部４０が、演算結果をメモリバンク３３に転送する。
【０１０５】
このように、本実施形態の演算装置３７は、演算処理部の段数を超える処理を実現できる。
【０１０６】
また、ここまでの説明において、説明の便宜のため、データ並び替え部３４の入力データ選択部４０が選択できるデータは、メモリバンク３０からのデータと前段の演算処理部からのデータとした。しかし、本実施形態の演算装置３７は、これに限る必要はない。
【０１０７】
例えば、データ並び替え部３４は、前段に加え後段の演算処理部からデータを受けて、選択しても良い。
【０１０８】
図３は、本実施形態の別の構成を含む演算装置３８の構成の一例を示すブロック図である。
【０１０９】
図３に示す演算装置３８は、図１に示す演算装置３７のデータ並び替え部３４ａ及びデータ並び替え部３４ｂに換え、データ並び替え部３４ｄ及びデータ並び替え部３４ｅを含む。（以下、データ並び替え部３４ｄとデータ並び替え部３４ｅをまとめて、「演算装置３８のデータ並び替え部３４」と言う。）
演算装置３８のデータ並び替え部３４は、メモリバンク３０と、メモリバンク３３と、演算処理部３１と演算処理部３２とに接続する。そして、演算装置３８のデータ並び替え部３４は、メモリバンク３０と、演算処理部３１と、演算処理部３２とからデータを受けて、選択する。
【０１１０】
このように構成された演算装置３８は、演算処理部に、メモリバンク３０と前段の演算処理部に加え、後段の演算処理部の演算結果を入力できる。そのため、演算装置３８は、より高度又は効率の良い演算を実行できる。
【０１１１】
なお、以下、特に断らない限り、演算装置３８を含めて演算装置３７として説明する。
【０１１２】
同様に、データ並び替え部３４は、データ並び替え部３４ｄ及びデータ並び替え部３４ｅを含むとする。
【０１１３】
また、本実施形態の演算装置３７が含むメモリバンク３０、メモリバンク３３、演算処理部３１及び演算処理部３２の数を、４個としたのは、例示である。本実施形態の演算装置３７は、４未満又は４を超える各構成を含んでも良い。
【０１１４】
また、演算装置３７は、データ並び替え部３４の数を２に限る必要はない。例えば、演算装置３７は、２を超えるデータ並び替え部３４を含んでも良い。
【０１１５】
図４は、データ並び替え部３４を３つ含む演算装置３９の構成の一例を示すブロック図である。なお、図４において、全てのデータの接続線を記載すると、図が煩雑となるため、接続線が複数であることを示す斜めの線を用いて記載した。
【０１１６】
演算装置３９は、データ並び替え部３４ａと、データ並び替え部３４ｂと、データ並び替え部３４ｃと、メモリバンク３０と、メモリバンク３３と、演算処理部３１と、演算処理部３２と、演算処理部３５とを含む。
【０１１７】
データ並び替え部３４ｃは、データ並び替え部３４ｂと同様の構成を含み、同様に動作する。そのため、本実施形態のデータ並び替え部３４ｃは、第２のデータ並び替え部の一部と言える。
【０１１８】
また、演算処理部３５は、演算処理部３２と同様の構成を含み、同様に動作する。そのため、本実施形態の演算処理部３５は、第２の演算処理部の一部と言える。
【０１１９】
演算処理部３１、演算処理部３２及び演算処理部３５は、並列に演算処理を実行できる。
【０１２０】
そのため、このような構成を含む演算装置３９は、演算装置３７に比べ、多くの演算処理を並列に実行できる。
【０１２１】
以下、特に断らない限り、演算装置３９を含めて、演算装置３７として説明する。同様に、データ並び替え部３４は、データ並び替え部３４ｃを含むとする。
【０１２２】
また、演算装置３７は、データ並び替え部３４を１つ含んでも良い。
【０１２３】
図５は、データ並び替え部３４を１つ含む演算装置３６の構成の一例を示すブロック図である。
【０１２４】
演算装置３６は、データ並び替え部３４ａと、メモリバンク３０と、メモリバンク３３と、演算処理部３１とを含む。
【０１２５】
演算装置３６のデータ並び替え部３４ａは、演算に必要な回数、演算処理部３１の演算を繰り返す。
【０１２６】
なお、演算装置３６は、本実施形態の最小構成の一例である。
【０１２７】
以下、特に断らない限り、演算装置３６を含めて、演算装置３７として説明する。
【０１２８】
また、演算装置３７は、データ並び替え部３４の前後の演算処理部の数が異なっても良い。
【０１２９】
また、演算装置３７は、メモリバンク３０及びメモリバンク３３の数を４つに限る必要はない。演算装置３７は、メモリバンク３０又はメモリバンク３３を、４つ未満含んでも良く、４つを超えて含んでも良い。また、演算装置３７は、異なる数のメモリバンク３０及びメモリバンク３３を含んでも良い。
【０１３０】
このように、本実施形態の演算装置３７は、回路規模及び消費電力の増大を抑えながら、演算効率を高める効果を得ることができる。
【０１３１】
その理由は、次のとおりである。
【０１３２】
演算装置３７のデータ並び替え部３４が、データの転送先制御を実施する。つまり、演算装置３７は、スイッチやＦＩＦＯを分散して配置する必要がない。そのため、演算装置３７は、ハードウェア使用効率が高くでき、回路規模及び消費電力の増大を抑えることができる。
【０１３３】
また、演算装置３７のデータ並び替え部３４は、複数のメモリバンクと演算処理部とに接続し、所定の並び替えを実施できる。そのため、演算装置３７は、メモリバンクのメモリ帯域に合わせた適切な並列度の演算処理部の構成を保つことができ、演算効率を高める効果を得ることができる。
【０１３４】
また、演算装置３７は、パラメータのローディングの時間を短縮できる効果を得ることができる。
【０１３５】
その理由は、次のとおりである。
【０１３６】
演算装置３７のデータ並び替え部３４は、メモリバンクから演算に必要なパラメータをブロードキャストで受信できる。したがって、演算装置３７は、複数のパラメータを使用する場合に、パラメータの同時に受信できるためである。
【０１３７】
＜変形例＞
演算装置３７の構成は、これまでの説明に限らない。
【０１３８】
例えば、演算装置３７は、メモリバンク３０、メモリバンク３３、演算処理部３１、演算処理部３２及びデータ並び替え部３４の少なくとも一部を、ネットワーク又はバスを介して接続する別装置としても良い。
【０１３９】
また、演算装置３７は、各構成を複数の構成に分けても良い。
【０１４０】
例えば、データ並び替え部３４は、各構成を、ネットワーク又はバスを介して接続する別装置を用いて構成しても良い。
【０１４１】
また、データ並び替え部３４は、複数の構成を１つの構成としても良い。
【０１４２】
例えば、データ並び替え部３４は、ＣＰＵ（Central Processing Unit）と、ＲＯＭ（Read Only Memory）と、ＲＡＭ（Random Access Memory）と、インターフェース回路（IＦ）とを含むコンピュータとして実現しても良い。
【０１４３】
図６は、本実施形態の別の構成であるデータ並び替え部６０の構成の一例を示すブロック図である。
【０１４４】
データ並び替え部６０は、ＣＰＵ６１０と、ＲＯＭ６２０と、ＲＡＭ６３０と、ＩＦ６４０とを含むコンピュータを構成している。
【０１４５】
ＣＰＵ６１０は、ＲＯＭ６２０からプログラムを読み込む。そして、ＣＰＵ６１０は、読み込んだプログラムに基づいて、ＲＡＭ６３０とＩＦ６４０とを制御する。ＣＰＵ６１０を含むコンピュータは、図２に示す入力データ選択部４０と、マルチバンクメモリ４１と、並び替え制御部４２としての各機能を実現しても良い。ＣＰＵ６１０は、各機能を実現する際に、ＲＡＭ６３０をプログラムの一時記憶として使用する。
【０１４６】
なお、ＣＰＵ６１０は、コンピュータで読み取り可能にプログラムを記憶した記憶媒体７００が含むプログラムを、図示しない記憶媒体読み取り装置を用いて読み込んでも良い。あるいは、ＣＰＵ６１０は、ＩＦ６４０を介して、図示しない外部の装置からプログラムを受け取っても良い。
【０１４７】
ＲＯＭ６２０は、ＣＰＵ６１０が実行するプログラム及び固定的なデータを記憶する。ＲＯＭ６２０は、例えば、Ｐ−ＲＯＭ(Programmable-ROM）やフラッシュＲＯＭである。
【０１４８】
ＲＡＭ６３０は、ＣＰＵ６１０が実行するプログラムやデータを一時的に記憶する。ＲＡＭ６３０は、例えば、Ｄ−ＲＡＭ（Dynamic-RAM）である。
【０１４９】
ＩＦ６４０は、メモリバンク３０、メモリバンク３３、演算処理部３１、演算処理部３２とのデータのやり取りを中継する。ＩＦ６４０は、ＰＣＩ（Peripheral Component Interconnect）カードやファイバーチャネルカードである。
【０１５０】
このように構成されたデータ並び替え部６０は、データ並び替え部３４と同様の効果を得ることができる。
【０１５１】
その理由は、データ並び替え部６０のＣＰＵ６１０が、プログラムに基づいてデータ並び替え部３４と同様の動作を実現できるためである。
【０１５２】
（第２の実施形態）
次に、本発明の第２の実施形態の演算装置３７について、図面を参照して説明する。
【０１５３】
本実施形態の演算装置３７の構成は、第１の実施形態の演算装置３７と同じため、構成の説明は省略する。
【０１５４】
本実施形態の演算装置３７は、データ並び替え部３４の並び替え制御が異なる点を除いて、第１の実施形態度と同様に動作する。そのため、同様の動作の説明を省略し、本実施形態に特有の動作を説明する。
【０１５５】
第１の実施形態の入力データ選択部４０は、データ並び替え部３４の並び替え制御部４２が供給する入力データを選択する信号を基に、後段の演算処理部への入力データの選択、及び、メモリバンクへ演算結果を出力するか否かを選択する。
【０１５６】
これに対し、本実施形態のデータ並び替え部３４の入力データ選択部４０は、入力されたデータを、そのままマルチバンクメモリ４１に入力する。ただし、本実施形態の入力データ選択部４０は、同時に複数のデータを同じマルチバンクメモリ４１のバンクに入力する状況が発生した場合、データ入力のタイミングを調停する調停機構を備える。
【０１５７】
本実施形態の調停機構は、特に制限はない。例えば、調停機構は、次のように動作すればよい。
【０１５８】
調停機構は、データを受け取る。そして、調停機構は、そのデータの出力先（例えば、ポート）に出力するデータの入力の状態、つまり、他に出力するデータがあるか否かを確認する。
【０１５９】
他のデータが入力されていない場合、調停機構は、受け取ったデータを出力先に出力する。
【０１６０】
他のデータが入力されている場合、調停機構は、指示（パラメータ）を基に、先に出力するデータを出力する。そして、出力したデータが出力先に受け取られ、出力先が次のデータを受け取れる状態後、調停機構は、残りのデータを出力する。
【０１６１】
あるいは、本実施形態の調停機構は、ラウンドロビン方式を用いてデータを調停し、順に１データずつマルチバンクメモリ４１に書き込んでも良い。
【０１６２】
本実施形態の演算装置３７は、並び替え制御部４２の動作を軽減化する効果を得ることができる。
【０１６３】
その理由は、次のとおりである。
【０１６４】
第１の実施形態の入力データ選択部４０は、入力データ選択信号を生成するため、生成に必要なパラメータを保持する回路（機構）が必要である。
【０１６５】
一方、本実施形態の演算装置３７の入力データ選択部４０は、マルチバンクメモリ４１の入力データのタイミングの調停機構（回路）を備える。
【０１６６】
一般に、調停機構の回路の規模は、パラメータを保持するための回路の規模より小さい。そのため、本実施形態の入力データ選択部４０は、第１の実施形態の入力データ選択部４０より少ない回路規模で実現できるためである。
【０１６７】
（第３の実施形態）
次に、本発明の第３の実施形態の演算装置３７について、図面を参照して説明する。
【０１６８】
本実施形態の演算装置３７の構成は、第１の実施形態の演算装置３７と同じため、構成の説明は省略する。
【０１６９】
本実施形態の演算装置３７は、データ並び替え部３４の並び替え制御が異なる点を除いて、第１の実施形態度と同様に動作する。そのため、同様の動作の説明を省略し、本実施形態に特有の動作を説明する。
【０１７０】
第１の実施形態の並び替え制御部４２は、マルチバンクメモリ４１の読み出しタイミングを、入力データ選択部４０への書き込みアドレスの生成のカウンタを基に制御した。そして、この制御を基に、並び替え制御部４２は、演算データ転送の所定の遅延を発生した。
【０１７１】
これに対し、本実施形態の並び替え制御部４２は、次のように動作する。
【０１７２】
並び替え制御部４２は、マルチバンクメモリ４１の書き込みアドレスと読み出しアドレスとを監視する。
【０１７３】
そして、並び替え制御部４２は、データの書き込みに関して、次のように動作する。
【０１７４】
マルチバンクメモリ４１の初期状態は、全てのアドレスが、書き込みされていない状態（未書き込み）である。
【０１７５】
書き込みアドレスが「未書き込み」の場合、並び替え制御部４２は、データをマルチバンクメモリ４１に書き込む。書き込み後、並び替え制御部４２は、そのアドレスを「書き込み済み」とする。
【０１７６】
書き込みアドレスが「書き込み済み」の場合、並び替え制御部４２は、そのアドレスのデータが読み出されるまで、マルチバンクメモリ４１への書き込みを停止する。そして、そのアドレスのデータが読み出された後、並び替え制御部４２は、そのアドレスにデータを書き込む。この場合、並び替え制御部４２は、そのアドレスを、「書き込み済み」とする。
【０１７７】
一方、並び替え制御部４２は、読み出しに関して、次のように動作する。
【０１７８】
「書き込み済み」のアドレスの読み出しの場合、並び替え制御部４２は、マルチバンクメモリ４１に、読み出しアドレスに格納されたデータを、出力させる。出力後、並び替え制御部４２は、そのアドレスを「未書き込み」とする。
【０１７９】
「未書き込み」のアドレスの読み出しの場合、並び替え制御部４２は、そのアドレスの書き込みが生成する（「書き込み済み」となる）まで、データの読み出しを停止する。並び替え制御部４２は、「書き込み済み」を検出後、データを読み出す。並び替え制御部４２は、読み出し後、そのアドレスを「未書き込み」とする。
【０１８０】
なお、並び替え制御部４２は、データの読み出しの後に「未書き込み」を設定せず、そのアドレスに対する書き込みの有無を確認後、「未書き込み／書き込み済み」を設定しても良い。
【０１８１】
このような動作を基に、並び替え制御部４２は、マルチバンクメモリ４１のデータの、時間方向及び出力（ポート）方向の並び替えを実現する。
【０１８２】
本実施形態の演算装置３７は、第１の実施形態の演算装置３７に比べ、制御を容易とする効果を得ることができる。
【０１８３】
その理由は、次のとおりである。
【０１８４】
本実施形態の演算装置３７の並び替え制御部４２は、マルチバンクメモリ４１の書き込みアドレスと読み出しアドレスとを監視し、アドレスを基に制御する。そのため、並び替え制御部４２は、書き込みにおいて、メモリアクセスのタイミングの考慮が不要となるためである。
【０１８５】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【０１８６】
この出願は、２０１２年１２月２５日に出願された日本出願特願２０１２−２８１０６０を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【０１８７】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【０１８８】
（付記１）  演算対象データを格納する第１のデータ格納手段と、
データを用いて演算を実行する演算処理手段と、
前記第１のデータ格納手段に格納された前記演算対象データ及び前記演算処理手段で演算されたデータの中から指示されたデータを選択し、パラメータに基づいて、指示されたデータのうち遅延の指示を受けたデータに対し所定の遅延を付与し、遅延の指示を受けないデータに対し遅延させず、パラメータに基づいて、指示されたデータの並び替えを実行し、前記演算処理手段において演算されるデータと前記演算処理手段の演算結果データとを出力するデータ並び替え手段と、
前記データ並び替え手段が出力した前記演算結果データを格納する第２のデータ格納手段と
を含む演算装置。
【０１８９】
（付記２）  複数のデータ並び替え手段と、複数の演算処理手段とを含み、
前記データ並び替え手段が、
前記演算対象データと、１又は２以上の演算処理手段の演算結果のデータの中から指示されたデータを選択する
付記１に記載の演算装置。
【０１９０】
（付記３）  前記データ並び替え手段が、
データを受け取り、指示されたデータを選択し、前記第２のデータ格納手段、又は、前記演算処理手段に出力する入力データ選択手段と、
前記入力データ選択手段からデータを受け取り、前記パラメータに基づいて、遅延の指示を受け取ったデータに対し遅延を付与し、遅延の指示を受けないデータに対し遅延させず、パラメータを基に、指示された並び替えを実行し、所定の出力ポートから出力するマルチポート格納手段と、
前記入力データ選択部及び前記マルチポート格納手段を制御する並び替え制御手段と
を含むことを特徴とする付記１又は付記２に記載の演算装置。
【０１９１】
（付記４）  前記入力データ選択手段が、
入力されたデータと同じ出力先の他のデータがあるか否かを確認し、他のデータがない場合、前記入力されたデータを出力し、他のデータがある場合、いずれかのデータを出力後、前記出力先が再度受信可能となった後、残りのデータを出力する
ことを特徴とする付記３に記載の演算装置。
【０１９２】
（付記５）  前記並び替え制御手段が、
前記マルチポート格納手段の読み出しアドレス及び書き込みアドレスを監視し、
読み出し指示を受けたとき、
前記読み出し指示のアドレスが書き込み済みの場合、前記読み出しアドレスからデータを読み出し、
前記読み出し指示のアドレスが未書き込みの場合、前記読み出しアドレスにデータが書き込まれるまで読み出しを停止する
ことを特徴とする付記３又は付記４に記載の演算装置。
【０１９３】
（付記６）  演算対象データを格納し、
データを用いて演算し、
格納された前記演算対象データ及び演算されたデータの中から指示されたデータ選択し、パラメータに基づいて、指示されたデータのうち遅延の指示を受けたデータに対し所定の遅延を付与し、遅延の指示を受けないデータに対し遅延させず、パラメータに基づいて、指示されたデータの並び替えを実行し、演算されるデータと演算結果データとを出力し、
前記演算結果データを格納する
演算方法。
【０１９４】
（付記７）  演算対象データを格納する処理と、
データを用いて演算する処理と、
格納された前記演算対象データ及び演算されたデータの中から指示されたデータ選択し、パラメータに基づいて、指示されたデータのうち遅延の指示を受けたデータに対し所定の遅延を付与し、遅延の指示を受けないデータに対し遅延させず、パラメータに基づいて、指示されたデータの並び替えを実行し、演算されるデータと演算結果データとを出力する処理と、
前記演算結果データを格納する処理と
をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体。
【産業上の利用可能性】
【０１９５】
本発明は、アレイプロセッサが有用となる処理、つまり、行列演算や、フィルタリング処理や、データの並び替え等の信号処理用途に適用できる。
【符号の説明】
【０１９６】
１０  メモリバンク
１１  演算処理部
１２  演算処理部
１３  メモリバンク
１４  アレイ演算部
１５  演算処理部
１６  マルチバンク
１７  データメモリ
１９  アレイプロセッサ
２０  メモリバンク
２１  演算処理部
２２  演算処理部
２３  メモリバンク
２４  ＦＩＦＯ
２５  ＦＩＦＯ
２６  ＦＩＦＯ
２７  同期制御部
２８  同期制御部
２９  アレイプロセッサ
３０  メモリバンク
３１  演算処理部
３２  演算処理部
３３  メモリバンク
３４  データ並び替え部
３５  演算処理部
３６  演算装置
３７  演算装置
３８  演算装置
３９  演算装置
４０  入力データ選択部
４１  マルチバンクメモリ
４２  並び替え制御部
６０  データ並び替え部
６１０  ＣＰＵ
６２０  ＲＯＭ
６３０  ＲＡＭ
６４０  ＩＦ
７００  記憶媒体
【図１】
2014103235.tif 000003
【図２】
2014103235.tif 000004
【図３】
2014103235.tif 000005
【図４】
2014103235.tif 000006
【図５】
2014103235.tif 000007
【図６】
2014103235.tif 000008
【図７】
2014103235.tif 000009
【図８】
2014103235.tif 000010
【手続補正書】
【提出日】平成27年6月23日(2015.6.23)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
演算対象データを格納する第１のデータ格納手段と、
データを用いて演算を実行する演算処理手段と、
前記第１のデータ格納手段に格納された前記演算対象データ及び前記演算処理手段で演算されたデータの中から指示されたデータを選択し、パラメータに基づいて、指示されたデータのうち遅延の指示を受けたデータに対し所定の遅延を付与し、遅延の指示を受けないデータに対し遅延させず、パラメータに基づいて、指示されたデータの並び替えを実行し、前記演算処理手段において演算されるデータと前記演算処理手段の演算結果データとを出力するデータ並び替え手段と、
前記データ並び替え手段が出力した前記演算結果データを格納する第２のデータ格納手段と
を含む演算装置。
【請求項２】
複数のデータ並び替え手段と、複数の演算処理手段とを含み、
前記データ並び替え手段が、
前記演算対象データと、１又は２以上の演算処理手段の演算結果のデータの中から指示されたデータを選択する
請求項１に記載の演算装置。
【請求項３】
前記データ並び替え手段が、
データを受け取り、指示されたデータを選択し、前記第２のデータ格納手段、又は、前記演算処理手段に出力する入力データ選択手段と、
前記入力データ選択手段からデータを受け取り、前記パラメータに基づいて、遅延の指示を受け取ったデータに対し遅延を付与し、遅延の指示を受けないデータに対し遅延させず、パラメータを基に、指示された並び替えを実行し、所定の出力ポートから出力するマルチポート格納手段と、
前記入力データ選択部及び前記マルチポート格納手段を制御する並び替え制御手段と
を含むことを特徴とする請求項１又は請求項２に記載の演算装置。
【請求項４】
前記入力データ選択手段が、
入力されたデータと同じ出力先の他のデータがあるか否かを確認し、他のデータがない場合、前記入力されたデータを出力し、他のデータがある場合、いずれかのデータを出力後、前記出力先が再度受信可能となった後、残りのデータを出力する
ことを特徴とする請求項３に記載の演算装置。
【請求項５】
前記並び替え制御手段が、
前記マルチポート格納手段の読み出しアドレス及び書き込みアドレスを監視し、
読み出し指示を受けたとき、
前記読み出し指示のアドレスが書き込み済みの場合、前記読み出しアドレスからデータを読み出し、
前記読み出し指示のアドレスが未書き込みの場合、前記読み出しアドレスにデータが書き込まれるまで読み出しを停止する
ことを特徴とする請求項３又は請求項４に記載の演算装置。
【請求項６】
演算対象データを格納し、
データを用いて演算し、
格納された前記演算対象データ及び演算されたデータの中から指示されたデータ選択し、パラメータに基づいて、指示されたデータのうち遅延の指示を受けたデータに対し所定の遅延を付与し、遅延の指示を受けないデータに対し遅延させず、パラメータに基づいて、指示されたデータの並び替えを実行し、演算されるデータと演算結果データとを出力し、
前記演算結果データを格納する
演算方法。
【請求項７】
演算対象データを格納する処理と、
データを用いて演算する処理と、
格納された前記演算対象データ及び演算されたデータの中から指示されたデータ選択し、パラメータに基づいて、指示されたデータのうち遅延の指示を受けたデータに対し所定の遅延を付与し、遅延の指示を受けないデータに対し遅延させず、パラメータに基づいて、指示されたデータの並び替えを実行し、演算されるデータと演算結果データとを出力する処理と、
前記演算結果データを格納する処理と
をコンピュータに実行させるプログラム。
【国際調査報告】
2014103235.tif 000011
2014103235.tif 000012
2014103235.tif 000013
2014103235.tif 000014