(57)【要約】  アレイ演算部は、入力ポートから入力したデータ列を用い、複数のデータ演算部が相互にデータを転送しながら所定の演算を実行し、演算結果のデータ列を複数の出力ポートから出力する。第１のデータ列変換部は、データ格納部群の複数のデータ格納部に格納されているデータ列をアレイ演算部での演算に適した配置に変換し、アレイ演算部の入力ポートに入力する。第２のデータ列変換部は、アレイ演算部の出力ポートから出力されたデータ列をデータ格納部群の複数のデータ格納部に格納するための配置に変換する。
2008129900.tif 000002
【特許請求の範囲】
【請求項１】
データ列をそれぞれに格納する複数のデータ格納部で構成されたデータ格納部群と、
アレイ状に配置された複数のデータ演算部と複数の入力ポートと複数の出力ポートとを備え、前記入力ポートから入力したデータ列を用い、前記複数のデータ演算部が相互にデータを転送しながら所定の演算を実行し、演算結果のデータ列を前記複数の出力ポートから出力するアレイ演算部と、
前記データ格納部群の前記複数のデータ格納部に格納されているデータ列を前記アレイ演算部での演算に適した配置に変換し、前記アレイ演算部の前記入力ポートに入力する第１のデータ列変換部と、
前記アレイ演算部の前記出力ポートから出力されたデータ列を前記データ格納部群の前記複数のデータ格納部に格納するための配置に変換する第２のデータ列変換部と、を有するアレイプロセッサ型データ処理装置。
【請求項２】
前記アレイ演算部は、独立した処理単位をなすスレッドを複数個、時分割で連続的に処理できるようにマルチスレッド化されており、時分割で処理した前記スレッドの演算結果を処理した順に出力し、
前記データ格納部群では、前記スレッドのためのデータ列は前記スレッドの単位で前記データ格納部にまとめて格納されており、
前記第１のデータ列変換部は、前記データ格納部群の前記複数のデータ格納部に格納されているスレッドのデータ列をシリアル−パラレル変換するとともに、前記スレッドの単位で時系列に配置し、
前記第２のデータ列変換部は、前記アレイ演算部から出力されたスレッドの演算結果のデータ列をパラレル−シリアル変換すると共に、前記スレッドの単位で並列に配置する、請求項１に記載のアレイプロセッサ型データ処理装置。
【請求項３】
前記アレイ演算部が時分割で処理できるデータ列の数が、前記第１のデータ列変換部の出力ポート数または前記第２のデータ列変換部の入力ポート数と等しい、請求項１に記載のアレイプロセッサ型データ処理装置。
【請求項４】
前記アレイ演算部が時分割で処理できるデータ列の数が前記第１のデータ列変換部の出力ポート数または前記第２のデータ列変換部の入力ポート数の整数倍である、請求項１に記載のアレイプロセッサ型データ処理装置。
【請求項５】
前記第１のデータ列変換部は、前記第１のデータ列変換部の同一の入力ポートに複数のサイクルにわたり入力されたデータが前記第１のデータ列変換部の複数の出力ポートから同一サイクルで出力され、かつ前記第１のデータ列変換部の複数の入力ポートに同一サイクルで入力されたデータが前記第１のデータ列変換部の同一の出力ポートから複数サイクルにわたり出力されるように、データの配置を変換し、
前記第２のデータ列変換部は、前記第２のデータ列変換部の複数の入力ポートに同一サイクルで入力されたデータが前記第２のデータ列変換部の同一の出力ポートから複数サイクルにわたり出力され、かつ前記第２のデータ列変換部の同一の入力ポートに複数のサイクルにわたり入力されたデータが前記第２のデータ列変換部の複数の出力ポートから同一サイクルで出力されるように、データの配置を変換する、請求項１に記載のアレイプロセッサ型データ処理装置。
【請求項６】
前記第１のデータ列変換部および前記第２のデータ列変換部は、データ配置の変換方法を設定することができ、入力ポートに順次入力したデータを、設定された前記変換方法で変換し、変換後のデータを各出力ポートから出力する、請求項１に記載のアレイプロセッサ型データ処理装置。
【請求項７】
前記データ格納部群は、前記第１のデータ列変換部と接続し、前記アレイ演算部での演算に用いるデータを格納する複数のデータ格納部で構成された第１のデータ格納部群と、前記第２のデータ列変換部と接続し、前記アレイ演算部による演算結果のデータを格納する複数のデータ格納部で構成された第２のデータ格納部群とからなる、請求項１に記載のアレイプロセッサ型データ処理装置。
【請求項８】
前記データ格納部群は、前記第１のデータ列変換部および前記第２のデータ列変換部の双方と接続し、前記アレイ演算部での演算に用いるデータと、前記アレイ演算部による演算結果のデータとを格納する、マルチポートのデータ格納部で構成されている、請求項１に記載のアレイプロセッサ型データ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はアレイプロセッサに関し、特にシストリックアレイに関する。
【背景技術】
【０００２】
高い演算性能を追求したプロセッサアーキテクチャの１つにアレイプロセッサがある。アレイプロセッサは、複数の演算ユニット（ＰＥ：Ｐｒｏｃｅｓｓｏｒ  Ｅｌｅｍｅｎｔ）がアレイ状に配置され、その周辺に複数のメモリバンクが配置された構成である。アレイ状に配置された複数のＰＥが周辺のユニットからデータを受け取りながら並列に演算を実行することで全体として高い演算性能を実現する。アレイプロセッサの一例としてＶｏｌｋｅｒ  Ｓｔｒｕｍｐｅｎらが提唱したＤＳＡ（Ｄｅｃｏｕｐｌｅｄ  Ｓｙｓｔｏｌｉｃ  Ａｒｃｈｉｔｅｃｔｕｒｅ）がある（Ｖｏｌｋｅｒ  Ｓｔｒｕｍｐｅｎ他２名「Ｓｔｒｅａｍ  Ａｌｇｏｒｉｔｈｍｓ  ａｎｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ」，  Ｊｏｕｒｎａｌ  ｏｆ  Ｉｎｓｔｒｕｃｔｉｏｎ−Ｌｅｖｅｌ  Ｐａｒａｌｌｅｌｉｓｍ  ６、２００４年９月４日、ｐｐ．１−３１（以下、文献１という）参照）。【０００３】
文献１においては、ＲｘＲ（Ｒは自然数）のアレイ状にＰＥが配置され、そのＰＥの周辺にメモリバンクが配置されたアレイプロセッサが述べられている。図１は一般的なアレイプロセッサの構成例を示すブロック図である。図１を参照すると、アレイプロセッサはメモリバンク２０ａ，・・・，２０ｄ、２１ａ，・・・，２１ｄおよびアレイ演算部２２を有している。【０００４】
なお、ここでは簡素化のためにアレイ演算部２２の上下にメモリバンクが４つずつ配置された構成を例示する。アレイ演算部２２の上にはメモリバンク２０ａ，・・・２０ｄが配置され、アレイ演算部２２の下にはメモリバンク２１ａ，・・・，２１ｄが配置されている。【０００５】
また説明の便宜上、メモリバンク２０ａ，・・・，２０ｄ、２１ａ，・・・，２１ｄにはメモリバンクとしてのナンバーも付与している。８個のメモリバンク２０ａ，・・・，２０ｄ、２１ａ，・・・，２１ｄのメモリバンクとしてのナンバーはそれぞれ＃０，・・・，＃７である。【０００６】
またアレイ演算部２２は複数のＰＥ２３ａ，・・・，２３ｐで構成されている。ここではアレイ演算部２２はＰＥが４ｘ４のアレイ状に配置された構成が例示されている。【０００７】
このアレイプロセッサで処理を実行するとき、まず、演算用のデータが格納された４つのメモリバンク２０ａ，・・・，２０ｄからアレイ演算部２２のポートに必要なデータを同時に入力する。入力されたデータはポートに接続されたＰＥに転送される。【０００８】
ＰＥでは受け取ったデータに対して所定の演算を施し、演算結果を他のＰＥへ結果を転送する。例えば、ＰＥの演算結果はそのＰＥの下部に位置するＰＥに転送される。【０００９】
アレイプロセッサは、この動作を繰り返してＰＥ間でデータを伝搬することにより所望の処理を実行する。データの伝搬経路は実行する処理によって異なる。最終的な演算結果のデータは最終段のＰＥ２３ｍ，・・・，２３ｐからメモリバンク２１ａ，・・・，２１ｄに出力され、メモリバンク２１ａ，・・・，２１ｄにそれぞれ格納される。【００１０】
次の処理で再びそのデータを用いる場合には、アレイプロセッサは、次の処理に適したデータ配置とするためにメモリバンク間でデータの入れ替えを行った後、データをアレイ演算部２２へ入力する。【００１１】
この種のアレイプロセッサは複数のＰＥが同時に演算を実行するため演算の並列度が高く、同じ周波数で動作するノイマン型アーキテクチャに比べて高い演算性能を実現できる。また、アレイプロセッサは複数のメモリバンクからアレイ演算部２２に同時にデータを入力するため、ノイマン型アーキテクチャに存在したメモリアクセスに対するボトルネックを解消できる。さらに、アレイプロセッサは連続してデータを処理できるのでストリームデータを対象とした処理に適している。
【発明の開示】
【００１２】
上述したように、アレイプロセッサではアレイ演算部２２からメモリバンク２１ａ，・・・，２１ｄに出力されたデータを再び用いて処理を実行するとき、メモリバンク間でデータを次の処理に適した配置に入れ替える必要があった。そのため、メモリバンク２１ａ，・・・，２１ｄに出力されたデータを再び用いながらアレイプロセッサ内に閉じて複数の処理を連続して実行するとき、メモリバンク間のデータ転送が頻発し、処理効率が低下するという問題があった。
【００１３】
例えば、１６ポイントＦＦＴ（高速フーリエ変換）の演算を２つのステージに分割し、図１のアレイプロセッサを２回用いてステージ毎の処理を実行する場合について述べる。図２は、アレイプロセッサによって１６ポイントＦＦＴの演算を実行したときのデータの流れを示す図である。演算はステージ１とステージ２からなる。
【００１４】
ステージ１では４つのデータがまとめて処理される。ステージ２では各データが個別に処理される。またステージ２では、同じメモリバンクに格納されていたデータがそれぞれ異なるメモリバンクに振り分けられる。
【００１５】
このようにステージ１におけるメモリバンクでのデータの格納の仕方と、ステージ２におけるメモリバンクでのデータの格納の仕方とが異なるため、ステージ１とステージ２の間にメモリバンク＃４，・・・，＃７で相互にデータを転送する必要がある。
【００１６】
本発明の一目的は、データ格納部であるメモリバンク間でデータを転送せずに複数の処理を連続して実行可能な処理効率の良いアレイプロセッサを提供することである。
【００１７】
上記目的を達成するために、本発明の一態様によるアレイプロセッサ型データ処理装置は、データ列をそれぞれに格納する複数のデータ格納部で構成されたデータ格納部群と、
アレイ状に配置された複数のデータ演算部と複数の入力ポートと複数の出力ポートとを備え、前記入力ポートから入力したデータ列を用い、前記複数のデータ演算部が相互にデータを転送しながら所定の演算を実行し、演算結果のデータ列を前記複数の出力ポートから出力するアレイ演算部と、
前記データ格納部群の前記複数のデータ格納部に格納されているデータ列を前記アレイ演算部での演算に適した配置に変換し、前記アレイ演算部の前記入力ポートに入力する第１のデータ列変換部と、
前記アレイ演算部の前記出力ポートから出力されたデータ列を前記データ格納部群の前記複数のデータ格納部に格納するための配置に変換する第２のデータ列変換部と、を有している。
【図面の簡単な説明】
【００１８】
【図１】一般的なアレイプロセッサの構成例を示すブロック図である。
【図２】アレイプロセッサによって１６ポイントＦＦＴの演算を実行したときのデータの流れを示す図である。
【図３】第１の実施例におけるアレイプロセッサの構成を示すブロック図である。
【図４】第１の実施例におけるデータ列変換部１３ａの入出力信号を示すタイミングチャートである。
【図５】第１の実施例におけるアレイ演算部１２の入出力信号を示すタイミングチャートである。
【図６】第１の実施例におけるデータ列変換部１３ｂの入出力信号を示すタイミングチャートである。
【図７】第２の実施例におけるデータ列変換部１３ａの入出力信号を示すタイミングチャートである。
【図８】第２の実施例におけるアレイ演算部１２の入出力信号を示すタイミングチャートである。
【図９】第２の実施例におけるデータ列変換部１３ｂの入出力信号を示すタイミングチャートである。
【図１０】第３の実施例におけるアレイプロセッサの構成を示すブロック図である。
【発明を実施するための最良の形態】
【００１９】
本発明の一実施形態について図面を参照して詳細に説明する。【００２０】
本実施形態のアレイプロセッサは、メモリバンクとアレイ演算部の間にデータ列変換部を有する。【００２１】
アレイ演算部は、アレイ状に配置された複数の演算ユニット（ＰＥ）を有し、ＰＥ間でデータを転送しながら各ＰＥで所定の演算を行なうことにより、全体として所望の処理を実行する。また、アレイ演算部はマルチスレッド化されている。ここでは、それぞれが独立した処理の単位をスレッドと定義し、１つのスレッドに必要なデータの集合をデータシーケンスと定義する。マルチスレッド化とは、アレイ演算部を、複数のデータシーケンスを連続して入力して複数のスレッドを時分割で処理できるような構成にすることである。【００２２】
データ列変換部は、メモリバンクとアレイ演算部の間でデータ配置の変換を行なう。データ列変換部には、メモリバンクからアレイ演算部に向かうデータを扱う第１のデータ列変換部と、アレイ演算部からメモリバンクに向かうデータを扱う第２のデータ列変換部とがある。第１のデータ列変換部は、メモリバンクに格納されている、アレイ演算部での演算に必要なデータをアレイ演算部での処理に適した配置に変換してアレイ演算部に入力する。第２のデータ列変換部は、アレイ演算部から出力された演算結果のデータをメモリバンクに格納するための配置に変換してメモリバンクに出力する。【００２３】
この構成によれば、データ列変換部がデータの配置を変換するので、メモリバンク間のデータ転送によりデータの配置を変換しなくても、アレイ演算部への入力ではアレイ演算部での演算に適したデータの配置とし、メモリバンクへの入力ではメモリバンクでの格納に合ったデータの配置とすることができる。その結果、前回の処理結果を次の処理に用いて複数の処理を連続して実行するときメモリバンク間でデータ転送を行なわなくてもよく、処理効率が向上する。【００２４】
また、アレイ演算部がマルチスレッド化されていることによりデータ列変換部のリソースを複数のスレッドで共有できるので、データ列変換部のリソースを効率良く使用することができる。【００２５】
（第１の実施例）
図３は、第１の実施例におけるアレイプロセッサの構成を示すブロック図である。図３を参照すると、メモリバンク１０ａ，・・・，１０ｄ，１１ａ，・・・，１１ｄ、アレイ演算部１２、およびデータ列変換部１３ａ，１３ｂを有している。ここでは、並列に設けられるメモリバンクの数が４つ、アレイ演算部１２の入力ポート数が４ポート、アレイ演算部１２が扱うことのできるスレッド数が４スレッドであるものとする。【００２６】
メモリバンク１０ａ，・・・，１０ｄは、演算に用いられるデータを格納するためのメモリバンクであり、互いに並列に設けられている。メモリバンク１０ａ，・・・，１０ｄのそれぞれはデータ列変換部１３ａの入力ポートＣ００，・・・，Ｃ０３のそれぞれに接続されている。【００２７】
データ列変換部１３ａは、入力ポートＣ００，・・・，Ｃ０３には上述のメモリバンク１０ａ，・・・，１０ｄが接続され、出力ポートＣ０４，・・・，Ｃ０７にはアレイ演算部１２の入力ポートＰ０，・・・，Ｐ３が接続されている。データ列変換部１３ａは、メモリバンク１０ａ，・・・，１０ｄから入力ポートＣ００，・・・，Ｃ０３に入力したデータの配置を変換し、変換後のデータを出力ポートＣ０４，・・・，Ｃ０７からアレイ演算部１２に出力する。【００２８】
アレイ演算部１２は、入力ポートＰ０，・・・，Ｐ３にはデータ列変換部１３ａの出力ポートＣ０４，・・・，Ｃ０７が接続され、出力ポートＰ４，・・・，Ｐ７にはデータ列変換部１３ｂの入力ポートＣ１０，・・・，Ｃ１３が接続されている。アレイ演算部１２は複数のＰＥ（不図示）をアレイ状に配置した構成を有し、入力ポートＰ０，・・・，Ｐ３から入力されたデータに対して、ＰＥ間でデータを転送しながら各ＰＥで所定の演算を行ない、演算結果を出力ポートＰ４，・・・，Ｐ７からデータ変換部１３ｂに出力する。また、アレイ演算部１２はマルチスレッド化されており、連続して入力されるデータシーケンスを用いて複数のスレッドを時分割で処理することができる。【００２９】
データ列変換部１３ｂは、入力ポートＣ１０，・・・，Ｃ１３にはアレイ演算部１２の出力ポートＰ４，・・・，Ｐ７が接続され、出力ポートＣ１４，・・・，Ｃ１７のそれぞれにはメモリバンク１１ａ，・・・，１１ｄが接続されている。データ変換部１３ｂは、アレイ演算部１２から入力ポートＣ１０，・・・，Ｃ１３に入力したデータの配置を変換し、変換後のデータを出力ポートＣ１４，・・・，Ｃ１７からメモリバンク１１ａ，・・・，１１ｄに出力する。【００３０】
メモリバンク１１ａ，・・・，１１ｄは、処理結果のデータを格納するためのメモリバンクであり、互いに並列に設けられている。メモリバンク１１ａ，・・・，１１ｄのそれぞれはデータ列変換部１３ｂの出力ポートＣ１４，・・・，Ｃ１７のそれぞれに接続されている。また、メモリバンク１１ａ，・・・，１１ｄに格納されたデータを次の処理で用いる場合、メモリバンク１１ａ，・・・，１１ｂのデータをメモリバンク１０ａ，・・・，１０ｄに転送することなく、データ列変換部１３ａに入力することができる。【００３１】
次に、第１の実施例におけるアレイプロセッサの動作について説明する。【００３２】
ここでは、メモリバンク１０ａ，・・・，１０ｄから連続した４ポート分のデータを読み出し、それらのデータを用いてアレイ演算部１２で処理を実行し、処理結果のデータをメモリバンク１１ａ，・・・，１１ｄに書き込むまでについての動作を説明する。演算に必要なデータシーケンスは予めメモリバンク１０ａ，・・・，１０ｄのそれぞれに格納されているものとする。【００３３】
まず、アレイプロセッサは、メモリバンク１０ａ，・・・，１０ｄから４ポート分のデータをまとめて読み出す。このときメモリバンク１０ａ，・・・，１０ｄから１サイクル毎に１ワードずつが出力され、４サイクルで４ワードのデータが順に出力される。【００３４】
データ列変換部１３ａはメモリバンク１０ａ，・・・，１０ｄからのデータの配置を変換してアレイ演算部１２へ出力する。【００３５】
図４は、データ列変換部１３ａの入出力信号を示すタイミングチャートである。図４には、メモリバンク１０ａ，・・・，１０ｄ側からアレイ演算部１２へ転送されるデータの変換の様子が示されている。データ列変換部１３ａは、入力クロック５０に同期して動作する。【００３６】
入力データ５１ａ，・・・，５１ｄはデータ列変換部１３ａへの入力データである。符号に付加されているａ〜ｄはデータ列変換部１３ａの入力ポートＣ００，・・・，Ｃ０３に対応している。出力データ５２ａ，・・・，５２ｄはデータ列変換部１３ａからの出力データである。符号に付加されているａ〜ｄはデータ列変換部１３ａの各出力ポートＣ０４，・・・，Ｃ０７に対応している。【００３７】
図４に示したように、あるスレッドのデータはいずれか１つの入力ポートに順次入力される。データ列変換部１３ａは４つの入力ポートＣ００，・・・，Ｃ０３に入力クロック５０の同一サイクルで入力したデータが同一ポートから順次出力されるデータとなるように転置変換を行なう。この転置変換によって、スレッドのデータシーケンスはシリアルからパラレルに変換され、同一スレッドのデータが同一サイクルで出力されるようになる。また、複数のスレッドのデータが時系列に順次出力されるようになる。【００３８】
データ列変換部１３ａの各出力ポートＣ０４，・・・，Ｃ０７からアレイ演算部１２の各ポートＰ０，・・・，Ｐ３にデータが入力されると、アレイ演算部１２の内部のＰＥがそれぞれ演算を行い、演算結果が出力ポートＰ４，・・・，Ｐ７から出力される。【００３９】
図５は、アレイ演算部１２の入出力信号を示すタイミングチャートである。アレイ演算部１２には入力クロック４０が入力されている。【００４０】
入力データ４１ａ，・・・，４１ｄはアレイ演算部１２への入力データである。１クロック毎に４つずつのデータが同時にアレイ演算部１２へ入力される。符号のａ〜ｄはそれぞれの入力ポートＰ０，・・・，Ｐ３への入力であることを表している。【００４１】
出力データ４２ａ，・・・，４２ｄはアレイ演算部１２からの出力データである。１クロック毎に４つずつのデータがアレイ演算部１２から同時に出力される。符号のａ〜ｄはそれぞれ出力ポートＰ４，・・・，Ｐ７に対応している。【００４２】
データの名称に含まれているＴ０〜Ｔ３はスレッド番号０〜３を示している。図５に示すように、スレッド番号０（Ｔ０）からスレッド番号３（Ｔ３）までスレッド番号の若い順に入力されたデータはスレッド毎に順次処理される。各スレッドの処理はそれぞれが独立しており、互いの演算に影響を及ぼさない。演算結果は、スレッド番号の若い順に、同一スレッドの演算結果が４つの出力ポートＰ４，・・・，Ｐ７から同時に出力される。アレイ演算部１２の出力ポートＰ４，・・・，Ｐ７から出力された演算結果は、データ列変換部１３ｂによる転置変換によって、再び配置が変換される。【００４３】
図６は、データ列変換部１３ｂの入出力信号を示すタイミングチャートである。データ列変換部１３ｂへは入力クロック６０が入力されている。入力データ６１ａ，・・・，６１ｄはデータ列変換部１３ｂへの入力データである。符号に付加されているａ〜ｄはデータ列変換部１３ｂの各入力ポートＣ１０，・・・，Ｃ１３に対応している。出力データ６２ａ，・・・，６２ｄはデータ列変換部１３ｂからの出力データである。符号に付加されているａ〜ｄはデータ列変換部１３ｂの各出力ポートＣ１４，・・・，Ｃ１７に対応している。【００４４】
図６に示すように、データ列変換部１３ｂに同一サイクルで入力されたデータは、データ列変換部１３ｂによる転置変換によって、同一の出力ポートのデータに変換される。この転置変換によって、スレッドの演算結果のデータはパラレルからシリアルに変換され、同一スレッドのデータが同一の出力ポートから時系列で順次出力されるようになる。各出力ポートＣ１４，・・・，Ｃ１７から出力されたデータは各メモリバンク１１ａ，・・・，１１ｄに格納される。【００４５】
その結果、各スレッドのデータがメモリバンク１１ａ，・・・，１１ｄにまとめて格納されるため、メモリバンク１１ａ，・・・，１１ｄのデータを次の処理に用いる場合に、メモリバンク１１ａ，・・・，１１ｄのデータをメモリバンク間でデータ転送せずそのままデータ列変換部１３ａに書き込めばよい。【００４６】
以上説明したように本実施例によれば、データ列変換部１３ａ、１３ｂがデータの配置をアレイ演算部１２のポートに合わせて、処理に適した配置に変換するので、前回の処理結果を次の処理に用いて複数の処理を連続して実行するときメモリバンク間でデータ転送を行なわなくてよい。【００４７】
また、１つのメモリバンクに１つのスレッドのデータシーケンスがまとめて格納されてもデータ列変換部１３ａがデータの配置をアレイ演算部１２の入力ポートに合わせて転置変換するため、メモリバンク間でデータ転送を行なわなくてもアレイ演算部１２は並列処理を行うことができる。【００４８】
また、アレイ演算部１２がマルチスレッド化されていることによりデータ列変換部１３ａ、１３ｂのリソースを複数のスレッドで共有できるので、データ列変換部のリソースを効率良く使用することができる。【００４９】
なお、本実施例では、並列に設けるメモリバンクの数、アレイ演算部１２の入力ポート数、アレイ演算部１２で扱うことのできるスレッドの数が全て４個の場合を示したが、４個は一例でありこれ限定されるものではない。メモリバンクの数、アレイ演算部１２の入力ポート数、アレイ演算部１２で扱うことのできるスレッドの数が全て等しくＮ（自然数）であれば本実施例と同様に考えることができる。【００５０】
また、本実施例においてアレイ演算部１２をマルチスレッド化することにより制限されるのは入出力タイミングだけである。【００５１】
（第２の実施例）
第２の実施例は第１の実施例の変形例である。第２の実施例は、アレイ演算部１２が、並列に設けられるメモリバンクの数あるいは入力ポート数のＮ倍（Ｎは整数）のスレッドを扱うことができる点で第１の実施例と異なっている。ここでは、並列に設けられるメモリバンクの個数と入力ポートの個数は共に４個であり、アレイ演算部１２が扱うことのできるスレッドの個数は８個である場合を例示する。【００５２】
メモリバンク１０ａ，・・・，１０ｄにはスレッド番号Ｔ０，・・・，Ｔ８までのスレッドのデータシーケンスが格納されている。ここではスレッドが２つずつでペアとなり、１つのメモリバンクに格納されているものとする。具体的には、メモリバンク１０ａにスレッド番号Ｔ０、Ｔ４のスレッドが格納されており、メモリバンク１０ｂにスレッド番号Ｔ１、Ｔ５のスレッドが格納されており、メモリバンク１０ｃにスレッド番号Ｔ２、Ｔ６のスレッドが格納されており、メモリバンク１０ｄにスレッド番号Ｔ３、Ｔ７のスレッドが格納されている。【００５３】
アレイプロセッサの動作について説明する。【００５４】
ここでは、メモリバンク１０ａ，・・・，１０ｄから４ポート分のデータを読み出し、それらのデータを用いてアレイ演算部１２で処理を実行し、処理結果のデータをメモリバンク１１ａ，・・・，１１ｄに書き込むまでについての動作を説明する。演算に必要なデータのデータシーケンスは予めメモリバンク１０ａ，・・・，１０ｄのそれぞれに格納されているものとする。【００５５】
まずアレイプロセッサは、メモリバンク１０ａ，・・・，１０ｄから、１サイクル毎に１ワードずつ、４サイクルで４ワードのデータを順に読み出してデータ列変換部１３ａに入力する。【００５６】
図７は、データ列変換部１３ａの入出力信号を示すタイミングチャートである。図７には、メモリバンク１０ａ，・・・，１０ｂ側からアレイ演算部１２へ転送されるデータの変換の様子が示されている。データ列変換部１３ａには入力クロック８０が入力されている。【００５７】
入力データ８１ａ，・・・，８１ｄはデータ列変換部１３ａへの入力データである。符号に付加されているａ〜ｄはデータ列変換部の各入力ポートＣ００，・・・，Ｃ０３に対応している。それぞれのメモリバンク１１ａ，・・・，１１ｄからは１サイクルずつ４サイクル分のデータが読み出され、データ列変換部１３ａの入力ポートＣ００，・・・，Ｃ０３に入力される。１つのメモリバンク１１ａからは１つのスレッドのためのデータが１サイクルに１ワードずつ順に読み出される。１つのスレッドのデータシーケンスは４ワードである。【００５８】
このとき読み出される４サイクルのデータは８個のスレッドのうち前半の４個のスレッド（スレッド番号Ｔ０〜Ｔ３）のデータシーケンスである。その後、同様にして、後半の４個のスレッド（スレッド番号Ｔ４〜Ｔ７）のデータシーケンスが読み出され、データ列変換部１３ａの入力ポートＣ０４，・・・，Ｃ０７に入力される。【００５９】
出力データ８２ａ，・・・，８２ｄはデータ列変換部１３ａからの出力データである。符号に付加されているａ〜ｄはデータ列変換部１３ａの各出力ポートＣ０４，・・・，Ｃ０７に対応している。【００６０】
図７に示すように４つの入力ポートＣ００，・・・，Ｃ０３に入力クロック８０の同一サイクルで入力したデータは、データ列変換部１３ａによる転置変換によって、同一ポートに出力されるデータに変換される。データ列変換部１３ａの出力ポートＣ０４，・・・，Ｃ０７からはＴ０からＴ７というスレッド番号の順にデータが出力され、アレイ演算部１２の入力ポートＰ０，・・・，Ｐ３に入力される。【００６１】
データ列変換部１３ａの各出力ポートＣ０４，・・・，Ｃ０７からアレイ演算部１２の各入力ポートＰ０，・・・，Ｐ３にデータが入力されると、アレイ演算部１２の内部のＰＥがそれぞれ演算を行い、演算結果が出力ポートＰ４，・・・，Ｐ７から出力される。【００６２】
図８は、アレイ演算部１２の入出力信号を示すタイミングチャートである。アレイ演算部１２には入力クロック４０が入力されている。【００６３】
入力データ７１ａ，・・・，７１ｄはアレイ演算部１２への入力データである。入力クロック７０に同期して１サイクル毎に４ワードのデータが同時に入力される。符号のａ〜ｄはそれぞれ入力ポートＰ０，・・・，Ｐ３への入力を表している。【００６４】
出力データ７２ａ，・・・，７２ｄはアレイ演算部１２からの出力データである。１サイクル毎に４つずつのデータが同時に出力される。符号のａ〜ｄはそれぞれ出力ポートＰ４，・・・，Ｐ７に対応している。【００６５】
図８に示すように、スレッド番号０（Ｔ０）からスレッド番号７（Ｔ７）までスレッド番号の若い順に入力されたデータはスレッド毎に順次処理される。各スレッドの処理はそれぞれ独立しており、互いの演算に影響を及ぼさない。演算結果は、スレッド番号の若い順に、同一スレッドの演算結果である４ワードが４つの出力ポートＰ４，・・・，Ｐ７から同時に出力される。アレイ演算部１２の出力ポートＰ４，・・・，Ｐ７から出力された演算結果は、データ列変換部１３ｂによる転置変換によって、再び配置が変換される。【００６６】
図９は、データ列変換部１３ｂの入出力信号を示すタイミングチャートである。データ列変換部１３ｂには入力クロック９０が入力されている。９１ａ，・・・，９１ｄはデータ列変換部１３ｂへの入力データである。符号に付加されているａ〜ｄはデータ列変換部１３ｂの各入力ポートＣ１０，・・・，Ｃ１３に対応している。【００６７】
出力データ９２ａ，・・・，９２ｄはデータ列変換部１３ｂからの出力データである。符号に付加されているａ〜ｄはデータ列変換部１３ｂの各出力ポートＣ１４，・・・，Ｃ１７に対応している。【００６８】
図９に示すように、データ列変換部１３ｂに同一サイクルで入力されたデータは、データ列変換部１３ｂによる転置変換によって同一の出力ポートのデータに変換される。各出力ポートＣ１４，・・・，Ｃ１７から出力されたデータは各メモリバンク１１ａ，・・・，１１ｄに格納される。【００６９】
その結果、各スレッドのデータがメモリバンク１１ａ，・・・，１１ｄにまとめて格納されるため、メモリバンク１１ａ，・・・，１１ｄのデータを次の処理に用いる場合に、メモリバンク１１ａ，・・・，１１ｄのデータをメモリバンク間でデータ転送せずにそのままデータ列変換部１３ａに書き込めばよい。【００７０】
本実施例では、１つのメモリバンクに２個のスレッドのデータが格納されるが、データ列変換部１３ａがデータの配置をアレイ演算部１２の入力ポートに合わせて天地変換するため、メモリバンク間でデータ転送を行なわなくてもアレイ演算部１２は並列処理ができると共に時分割での処理ができる。【００７１】
なお、本実施例においても、説明の簡素化のために明示的に、並列に設けるメモリバンク数を４個とし、アレイ演算部１２の入力ポート数を４個とし、アレイ演算部１２で扱うことのできるスレッド数を８個としたが、これは一例であり、本発明がこれに限定されるものではない。メモリバンクの数とアレイ演算部１２の入力ポートの数が等しく、アレイ演算部１２で扱うことのできるスレッドの数は、そのＮ倍（Ｎは自然数）であれば本実施例と同様に考えることができる。【００７２】
また、本実施例においてもアレイ演算部１２をマルチスレッド化することにより制限されるのは入出力タイミングだけである。【００７３】
（第３の実施例）
第３の実施例も実施例１の変形である。第３の実施例は、メモリバンクの配置構成が第１の実施例とは異なる。第１の実施例のアレイプロセッサでは、アレイ演算部１２の上に４つのメモリバンク１０ａ，・・・，１０ｄを配置し、下に４つのメモリバンク１１ａ，・・・，１１ｄを配置した構成であった。それに対して、第３の実施例のアレイプロセッサは、第１の実施例でアレイ演算部１２の上下に配置されていた２つのメモリバンクの代わりに、１つのマルチポートのメモリバンクを用いる。【００７４】
図１０は、第３の実施例におけるアレイプロセッサの構成を示すブロック図である。図１０を参照すると、メモリバンク１００ａ，・・・，１００ｄ、アレイ演算部１０１、およびデータ列変換部１０２ａ，１０２ｂを有している。本実施例では第１の実施例と同様に並列に配置されるメモリバンクが４個、アレイ演算部１０１の入力ポートが４ポート、アレイ演算部１０１が扱うことのできるスレッドが４スレッドであるとする。【００７５】
メモリバンク１００ａ，・・・，１００ｄは、演算に用いられるデータを格納するためのメモリバンクであり、互いに並列に設けられている。メモリバンク１００ａ，・・・，１００ｄのそれぞれはデータ列変換部１０２ａの入力ポートおよびデータ列変換部１０２ｂの出力ポートに接続されている。【００７６】
アレイ演算部１０１は、入力ポートＰ０，・・・，Ｐ３にデータ列変換部１０２ａの出力ポートが接続され、出力ポートＰ４，・・・，Ｐ７にデータ列変換部１０２ｂの入力ポートが接続されている。アレイ演算部１０１は複数のＰＥをアレイ状に配置した構成を有し、複数の入力ポートＰ０，・・・，Ｐ３から入力されるデータを用いてＰＥで所定の演算を実行し、演算結果を出力ポートＰ４，・・・，Ｐ７から出力する。また、アレイ演算部１０１はマルチスレッド化されており、連続して入力されるデータシーケンスを用いて複数のスレッドを時分割で処理することができる。【００７７】
データ列変換部１０２ａは、入力ポートＣ００，・・・，Ｃ０３にはメモリバンク１００ａ，・・・，１００ｄが接続され、出力ポートＣ０４，・・・，Ｃ０７にはアレイ演算部１０１の入力ポートＰ０，・・・，Ｐ３が接続されている。【００７８】
また、データ列変換部１０２ｂは、入力ポートＣ００，・・・，Ｃ０３にはアレイ演算部１０１の出力ポートＰ４，・・・，Ｐ７が接続され、出力ポートＣ０４，・・・，Ｃ０７にはメモリバンク１００ａ，・・・，１００ｂが接続されている。【００７９】
本実施例では、マルチポートのメモリバンク１００ａ，・・・，１００ｂを用いたことにより、データ列変換部１０２ａ，１０２ｂが両方ともアレイ演算部１０１とメモリバンク１００ａ，・・・，１００ｄの間に配置されている。データ列変換部１０２ａ，１０２ｂは、複数の入力ポートＣ００，・・・，Ｃ０３から順次入力されたデータを転置変換し、複数の出力ポートＣ０４，・・・，Ｃ０７から順次出力する。【００８０】
次にアレイプロセッサの動作について説明する。【００８１】
ここでは、メモリバンク１００ａ，・・・，１００ｄから連続して４ポート分のデータを読み出し、アレイ演算部１０１で処理を実行し、処理結果のデータをメモリバンク１００ａ，・・・，１００ｄに書き込むまでについての動作を説明する。演算に必要なデータシーケンスは予めメモリバンク１００ａ，・・・，１００ｄに格納されているものとする。【００８２】
まず、アレイプロセッサは、各メモリバンク１００ａ，・・・，１００ｄから４ポート分のデータをまとめて読み出す。このときメモリバンク１００ａ，・・・，１００ｄから１サイクル毎に１ワードずつが出力され、４サイクルで４ワードのデータが順に出力される。【００８３】
データ列変換部１０２ａは各メモリバンク１００ａ，・・・，１００ｄからのデータの配置を変換してアレイ演算部１０１へ出力される。【００８４】
データ列変換部１０２ａの入出力信号のタイミングは、図４に示した第１の実施例と同様である。図４に示したように、４つの入力ポートのＣ００，・・・，Ｃ０３にはスレッド毎のデータがポート番号の順で入力される。データ列変換部１０２ａの転置変換により、出力ポートＣ０４，・・・，Ｃ０７からはポート毎のデータがスレッド番号の順で出力される。【００８５】
データ列変換部１０２ａの各ポートＣ０４，・・・，Ｃ０７からアレイ演算部１０１の各ポートＰ０，・・・，Ｐ３にデータが入力されると、アレイ演算部１０１の内部のＰＥがそれぞれ演算を行い、演算結果が出力ポートＰ４，・・・，Ｐ７から出力される。【００８６】
アレイ演算部１０１の入出力信号のタイミングは、図５に示した第１の実施例と同様である。図５に示すように、スレッド番号０（Ｔ０）からスレッド番号３（Ｔ３）までスレッド番号の若い順に入力されたデータはスレッド毎に順次処理される。各スレッドの処理はそれぞれが独立しており、互いの演算に影響を及ぼさない。演算結果は、スレッド番号の若い順に、同一スレッドの演算結果が４つの出力ポートＰ４，・・・，Ｐ７から同時に出力される。アレイ演算部１０１の出力ポートＰ４，・・・，Ｐ７から出力された演算結果は、データ列変換部１０２ｂによる転置変換によって、再び配置が変換される。【００８７】
データ列変換部１０２ｂによるデータの変換方法は、図６に示した第１の実施例と同様である。データ列変換部１０２ｂは、入力ポートＣ００，・・・，Ｃ０３に入力クロック５０の同一サイクルで入力されたデータが同一の出力ポートから順次出力されるように、転置変換を行なう。各出力ポートＣ１４，・・・，Ｃ１７から出力されたデータは各メモリバンク１００ａ，・・・，１００ｄに格納される。【００８８】
その結果、各スレッドのデータがメモリバンク１００ａ，・・・，１００ｄ毎にまとめて格納されるため、メモリバンク１００ａ，・・・，１００ｄのデータを次の処理に用いる場合に、メモリバンク１００ａ，・・・，１００ｄのデータをメモリバンク間でデータ転送せずそのままデータ列変換部１０２ａに書き込めばよい。【００８９】
また本実施例ではマルチポートのメモリバンクを用いることによりメモリバンク１００ａ，・・・，１００ｄを物理的にアレイ演算部１０１の両側（図では上下）に配置する必要がなくなっている。これにより外部との入出力用のバスの配線を簡素化することができる。【００９０】
なお、本実施例においても、並列に設けるメモリバンクの数、アレイ演算部１０１の入力ポートの数、アレイ演算部１０１が扱うことのできるスレッドの数が全て４個の場合を例示したが、本発明がこれに限定されるものではない。メモリバンクの数、アレイ演算部１２の入力ポート数、アレイ演算部１２で扱うことのできるスレッドの数がＮ（自然数）であれば本実施例と同様に考えることができる。【００９１】
また、本実施例においてアレイ演算部１２をマルチスレッド化することにより制限されるのは入出力タイミングだけである。【００９２】
（第４の実施例）
第４の実施例は第３の実施例の変形である。第４の実施例は、第２の実施例と同様に、アレイ演算部が、並列に設けられるメモリバンクの数あるいは入力ポート数のＮ倍（Ｎは整数）のスレッドを扱うことができる点で第３の実施例と異なる。【００９３】
本実施例のアレイプロセッサにおけるアレイ演算部およびデータ列変換部は第２の実施例と同じものである。本実施例ではマルチポートのメモリバンクが用いられるので、第３の実施例と同様に、そのメモリバンクにはアレイ演算部の入力側のデータ列変換部と出力側のデータ列変換部の両方が接続される。【００９４】
また本実施例は、メモリバンクの数とアレイ演算部の入力ポートの数が等しく、アレイ演算部で扱うことのできるスレッドの数は、そのＮ倍（Ｎは自然数）であればよい。【００９５】
（第５の実施例）
第５の実施例では、データ列変換部によるデータ配列の変換方法を外部から設定することができる。本実施例のアレイプロセッサは、図３に示した第１の実施例と同様の構成であってもよく、図１０に示した第３の実施例と同様の構成であってもよい。いずれの場合でも、本実施例では、データ列変換部は各入力ポートに順次入力したデータを、外部から設定された変換方法で変換し、変換後のデータを各出力ポートから出力する。【００９６】
本実施例によれば、データ列変換部にてメモリバンクとアレイ演算部の間のデータをどのように変換するか設定できるので、メモリバンク間でデータ転送をせずにアレイ演算部を連続して実行できる演算の自由度が高まる。【００９７】
また本実施例によれば、データ列変換部を上述した第１〜第４の実施例のデータ列変換部のように動作させることもできる。【００９８】
また本実施例によれば、多数のメモリバンクを用い、アレイ演算部を繰り返し用いて大規模な演算を行なう場合でも、アレイ演算部の各入力ポートに入力されるデータが所望の処理に適した配置となるようにデータ列変換部の変換方法を設定することにより、メモリバンク間のデータ転送が不要となる。【００９９】
以上、実施形態（および実施例）を参照して本発明を説明したが、本発明は実施形態（および実施例）に限定されるものではない。クレームに定義された本発明の構成や詳細には、発明のスコープ内で当業者が理解し得る様々な変更をすることができる。【０１００】
この出願は、２００７年４月１２日に出願された日本出願特願２００７−１０４８９２を基礎として優先権の利益を主張するものであり、その開示の全てを引用によってここに取り込む。
【図１】
2008129900.tif 000003
【図２】
2008129900.tif 000004
【図３】
2008129900.tif 000005
【図４】
2008129900.tif 000006
【図５】
2008129900.tif 000007
【図６】
2008129900.tif 000008
【図７】
2008129900.tif 000009
【図８】
2008129900.tif 000010
【図９】
2008129900.tif 000011
【図１０】
2008129900.tif 000012
【手続補正書】
【提出日】平成20年7月18日(2008.7.18)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
データ列をそれぞれに格納する複数のデータ格納部で構成されたデータ格納部群と、
アレイ状に配置された複数のデータ演算部と複数の入力ポートと複数の出力ポートとを備え、前記入力ポートから入力したデータ列を用い、前記複数のデータ演算部が相互にデータを転送しながら所定の演算を実行し、演算結果のデータ列を前記複数の出力ポートから出力するアレイ演算部と、
前記データ格納部群の前記複数のデータ格納部に格納されているデータ列を前記アレイ演算部での演算に適した配置に変換し、前記アレイ演算部の前記入力ポートに入力する第１のデータ列変換部と、
前記アレイ演算部の前記出力ポートから出力されたデータ列を前記データ格納部群の前記複数のデータ格納部に格納するための配置に変換する第２のデータ列変換部と、を有し、
前記アレイ演算部は、独立した処理単位をなすスレッドを複数個、時分割で連続的に処理できるようにマルチスレッド化されており、時分割で処理した前記スレッドの演算結果を処理した順に出力し、
前記データ格納部群では、前記スレッドのためのデータ列であるデータシーケンスは前記スレッドの単位で前記データ格納部のそれぞれにまとめて格納されており、
前記第１のデータ列変換部および前記第２のデータ列変換部では、データ列の配置の変換を行うためのリソースが複数のスレッドに共有で用いられる、アレイプロセッサ型データ処理装置。
【請求項２】
前記アレイ演算部は、独立した処理単位をなすスレッドを複数個、時分割で連続的に処理できるようにマルチスレッド化されており、時分割で処理した前記スレッドの演算結果を処理した順に出力し、
前記データ格納部群では、前記スレッドのためのデータ列は前記スレッドの単位で前記データ格納部のそれぞれにまとめて格納されており、
前記第１のデータ列変換部は、前記データ格納部群の前記複数のデータ格納部に格納されているスレッドのデータ列をシリアル−パラレル変換するとともに、前記スレッドの単位で時系列に配置することにより、前記データ格納部群の前記複数のデータ格納部に格納されているデータ列の配置を、前記アレイ演算部での演算に適した配置に変換し、
前記第２のデータ列変換部は、前記アレイ演算部から出力されたスレッドの演算結果のデータ列をパラレル−シリアル変換すると共に、前記スレッドの単位で並列に配置することにより、前記アレイ演算部の前記出力ポートから出力されたデータ列の配置を、前記複数のデータ格納部に格納するための配置に変換する、請求項１に記載のアレイプロセッサ型データ処理装置。
【請求項３】
前記アレイ演算部が時分割で処理できるデータ列の数が、前記第１のデータ列変換部の出力ポート数または前記第２のデータ列変換部の入力ポート数と等しい、請求項１に記載のアレイプロセッサ型データ処理装置。
【請求項４】
前記アレイ演算部が時分割で処理できるデータ列の数が前記第１のデータ列変換部の出力ポート数または前記第２のデータ列変換部の入力ポート数の整数倍である、請求項１に記載のアレイプロセッサ型データ処理装置。
【請求項５】
前記第１のデータ列変換部は、前記第１のデータ列変換部の同一の入力ポートに複数のサイクルにわたり入力されたデータが前記第１のデータ列変換部の複数の出力ポートから同一サイクルで出力され、かつ前記第１のデータ列変換部の複数の入力ポートに同一サイクルで入力されたデータが前記第１のデータ列変換部の同一の出力ポートから複数サイクルにわたり出力されるように、データの配置を変換することにより、前記データ格納部群の前記複数のデータ格納部に格納されているデータ列の配置を、前記アレイ演算部での演算に適した配置に変換し、
前記第２のデータ列変換部は、前記第２のデータ列変換部の複数の入力ポートに同一サイクルで入力されたデータが前記第２のデータ列変換部の同一の出力ポートから複数サイクルにわたり出力され、かつ前記第２のデータ列変換部の同一の入力ポートに複数のサイクルにわたり入力されたデータが前記第２のデータ列変換部の複数の出力ポートから同一サイクルで出力されるように、データの配置を変換することにより、前記アレイ演算部の前記出力ポートから出力されたデータ列の配置を、前記複数のデータ格納部に格納するための配置に変換する、請求項１に記載のアレイプロセッサ型データ処理装置。
【請求項６】
前記第１のデータ列変換部および前記第２のデータ列変換部は、データ配置の変換方法を設定することができ、入力ポートに順次入力したデータを、設定された前記変換方法で変換し、変換後のデータを各出力ポートから出力する、請求項１に記載のアレイプロセッサ型データ処理装置。
【請求項７】
前記データ格納部群は、前記第１のデータ列変換部と接続し、前記アレイ演算部での演算に用いるデータを格納する複数のデータ格納部で構成された第１のデータ格納部群と、前記第２のデータ列変換部と接続し、前記アレイ演算部による演算結果のデータを格納する複数のデータ格納部で構成された第２のデータ格納部群とからなる、請求項１に記載のアレイプロセッサ型データ処理装置。
【請求項８】
前記データ格納部群は、前記第１のデータ列変換部および前記第２のデータ列変換部の双方と接続し、前記アレイ演算部での演算に用いるデータと、前記アレイ演算部による演算結果のデータとを格納する、マルチポートのデータ格納部で構成されている、請求項１に記載のアレイプロセッサ型データ処理装置。
【請求項９】
データ列をそれぞれに格納する複数のデータ格納部で構成されたデータ格納部群と、アレイ状に配置された複数のデータ演算部、複数の入力ポート、および複数の出力ポートを備え、前記入力ポートから入力したデータ列を用い、前記複数のデータ演算部が相互にデータを転送しながら所定の演算を実行し、演算結果のデータ列を前記複数の出力ポートから出力するアレイ演算部と、を有するアレイプロセッサ型データ処理装置におけるデータ列変換方法であって、
前記データ格納部群において、前記スレッドのためのデータ列であるデータシーケンスを前記スレッドの単位で前記データ格納部のそれぞれにまとめて格納し、
第１のデータ列変換部が、データ列の配置の変換を行うためのリソースを複数のスレッドで共有しつつ、前記データ格納部群の前記複数のデータ格納部に格納されているデータ列を前記アレイ演算部での演算に適した配置に変換し、前記アレイ演算部の前記入力ポートに入力し、
独立した処理単位をなすスレッドを複数個、時分割で連続的に処理できるようにマルチスレッド化された前記アレイ演算部が、前記入力ポートに入力されたデータ列を時分割で処理し、前記スレッドの演算結果を処理した順に前記出力ポートから出力し、
第２のデータ列変換部が、データ列の配置の変換を行うためのリソースを複数のスレッドで共有しつつ、前記アレイ演算部の前記出力ポートから出力されたデータ列を前記データ格納部群の前記複数のデータ格納部に格納するための配置に変換する、データ列変換方法。
【請求項１０】
前記アレイ演算部は、独立した処理単位をなすスレッドを複数個、時分割で連続的に処理できるようにマルチスレッド化されており、時分割で処理した前記スレッドの演算結果を処理した順に出力し、
前記データ格納部群では、前記スレッドのためのデータ列は前記スレッドの単位で前記データ格納部のそれぞれにまとめて格納されており、
前記第１のデータ列変換部は、前記データ格納部群の前記複数のデータ格納部に格納されているスレッドのデータ列をシリアル−パラレル変換するとともに、前記スレッドの単位で時系列に配置することにより、前記データ格納部群の前記複数のデータ格納部に格納されているデータ列の配置を、前記アレイ演算部での演算に適した配置に変換し、
前記第２のデータ列変換部は、前記アレイ演算部から出力されたスレッドの演算結果のデータ列をパラレル−シリアル変換すると共に、前記スレッドの単位で並列に配置することにより、前記アレイ演算部の前記出力ポートから出力されたデータ列の配置を、前記複数のデータ格納部に格納するための配置に変換する、請求項９に記載のデータ列変換方法。
【請求項１１】
前記アレイ演算部が時分割で処理できるデータ列の数が、前記第１のデータ列変換部の出力ポート数または前記第２のデータ列変換部の入力ポート数と等しい、請求項９に記載のデータ列変換方法。
【請求項１２】
前記アレイ演算部が時分割で処理できるデータ列の数が前記第１のデータ列変換部の出力ポート数または前記第２のデータ列変換部の入力ポート数の整数倍である、請求項９に記載のデータ列変換方法。
【請求項１３】
前記第１のデータ列変換部は、前記第１のデータ列変換部の同一の入力ポートに複数のサイクルにわたり入力されたデータが前記第１のデータ列変換部の複数の出力ポートから同一サイクルで出力され、かつ前記第１のデータ列変換部の複数の入力ポートに同一サイクルで入力されたデータが前記第１のデータ列変換部の同一の出力ポートから複数サイクルにわたり出力されるように、データの配置を変換することにより、前記データ格納部群の前記複数のデータ格納部に格納されているデータ列の配置を、前記アレイ演算部での演算に適した配置に変換し、
前記第２のデータ列変換部は、前記第２のデータ列変換部の複数の入力ポートに同一サイクルで入力されたデータが前記第２のデータ列変換部の同一の出力ポートから複数サイクルにわたり出力され、かつ前記第２のデータ列変換部の同一の入力ポートに複数のサイクルにわたり入力されたデータが前記第２のデータ列変換部の複数の出力ポートから同一サイクルで出力されるように、データの配置を変換することにより、前記アレイ演算部の前記出力ポートから出力されたデータ列の配置を、前記複数のデータ格納部に格納するための配置に変換する、請求項９に記載のデータ列変換方法。
【請求項１４】
前記第１のデータ列変換部および前記第２のデータ列変換部は、データ配置の変換方法を設定することができ、入力ポートに順次入力したデータを、設定された前記変換方法で変換し、変換後のデータを各出力ポートから出力する、請求項９に記載のデータ列変換方法。
【請求項１５】
前記データ格納部群は、前記第１のデータ列変換部と接続し、前記アレイ演算部での演算に用いるデータを格納する複数のデータ格納部で構成された第１のデータ格納部群と、前記第２のデータ列変換部と接続し、前記アレイ演算部による演算結果のデータを格納する複数のデータ格納部で構成された第２のデータ格納部群とからなる、請求項９に記載のデータ列変換方法。
【請求項１６】
前記データ格納部群は、前記第１のデータ列変換部および前記第２のデータ列変換部の双方と接続し、前記アレイ演算部での演算に用いるデータと、前記アレイ演算部による演算結果のデータとを格納する、マルチポートのデータ格納部で構成されている、請求項９に記載のデータ列変換方法。
【国際調査報告】
2008129900.tif 000013
2008129900.tif 000014