TOP > 国内特許検索 > アレイプロセッサ > 明細書

明細書 :アレイプロセッサ

発行国 日本国特許庁(JP)
公報種別 特許公報(B2)
特許番号 特許第5519951号 (P5519951)
公開番号 特開2009-289256 (P2009-289256A)
登録日 平成26年4月11日(2014.4.11)
発行日 平成26年6月11日(2014.6.11)
公開日 平成21年12月10日(2009.12.10)
発明の名称または考案の名称 アレイプロセッサ
国際特許分類 G06F  17/14        (2006.01)
FI G06F 17/14 A
G06F 17/14 S
請求項の数または発明の数 1
全頁数 33
出願番号 特願2009-094620 (P2009-094620)
出願日 平成21年4月9日(2009.4.9)
優先権出願番号 2008119884
優先日 平成20年5月1日(2008.5.1)
優先権主張国 日本国(JP)
審査請求日 平成24年3月26日(2012.3.26)
特許権者または実用新案権者 【識別番号】506301140
【氏名又は名称】公立大学法人会津大学
発明者または考案者 【氏名】スタニスラフ セドゥーキン
【氏名】宮崎 敏明
【氏名】黒田 研一
個別代理人の代理人 【識別番号】100118094、【弁理士】、【氏名又は名称】殿元 基城
審査官 【審査官】井上 宏一
参考文献・文献 特開2005-189970(JP,A)
特開2000-200261(JP,A)
佐藤 由香,3入力演算器を搭載した2Dアレイプロセッサの提案,情報処理学会研究報告 システムLSI設計技術,日本,社団法人情報処理学会,2007年10月26日,第2007巻,第105号,PP.7-12,2007-SLDM-131
調査した分野 G06F 17/14
特許請求の範囲 【請求項1】
積和演算機能を備えたプロセッシングエレメントを3つの軸方向にそれぞれn個ずつ配設することにより概念的な三次元配置状態を形成し、
各プロセッシングエレメントに対して、前記軸方向に対応付けられた入力端子と出力端子とを各軸方向に対応付けて3組設け、同一軸方向に隣接配置される一のプロセッシングエレメントの当該軸方向における入力端子と他のプロセッシングエレメントの当該軸方向における出力端子とを接続することにより、各プロセッシングエレメントの3組の入力端子および出力端子を軸方向に対応させてそれぞれトーラス状に接続し、
各プロセッシングエレメントでは、前記積和演算機能に基づいて積和演算を行った演算結果を、一の軸方向に対応する出力端子より当該一の軸方向に隣接する他のプロセッシングエレメントに出力すると共に、前記積和演算を行う際に用いた演算データを他の軸方向に対応する出力端子より当該他の軸方向に隣接する他のプロセッシングエレメントに出力し、
前記演算結果と演算データとをそれぞれ異なる軸方向に隣接する他のプロセッシングエレメントより取得したプロセッシングエレメントでは、取得した前記演算結果と演算データとを用いて積和演算を行い、当該積和演算に基づく演算結果と前記演算データとを、それぞれ取得した入力端子に対応する出力端子よりそれぞれの軸方向に隣接する他のプロセッシングエレメントに対し出力することにより、一の軸方向に対してトーラス状に接続された全てのプロセッシングエレメントにおいて第一周期目のn回の積和演算処理を互いに同期させて実行し、
該第一周期目のn回の積和演算処理の後に、各プロセッシングエレメントでは、前記演算結果を出力する出力端子の軸方向を変更すると共に、当該軸方向の変更に対応させて前記演算データを出力する出力端子の軸方向を変更して、第二周期目のn回の積和演算処理を互いに同期させて実行し、
該第二周期目のn回の積和演算処理の後に、各プロセッシングエレメントでは、前記演算結果を出力する出力端子の軸方向を、第一周期目および第二周期目と異なる軸方向に変更すると共に、当該軸方向の変更に対応させて前記演算データを出力する出力端子の軸方向を第一周期目および第二周期目と異なる軸方向に変更して、第三周期目のn回の積和演算処理を互いに同期させて実行することによって、
三次元直交変換処理を実行するアレイプロセッサであって、
前記各プロセッシングエレメントは、
前記積和演算に用いられる被演算値を記憶する1つの被演算値記憶手段と、
前記入力端子を介して入力された前記演算結果または前記演算データを記憶する3つの入力情報記憶手段と、
前記積和演算機能による演算方法に対応して決定される定数値を記憶する3つの定数値記憶手段と、
前記演算結果と前記演算データと前記被演算値と前記定数値とのいずれかを用いて積和演算を行う演算処理手段と、
前記3つの入力端子のいずれかより入力された情報を前記入力情報記憶手段または前記被演算値記憶手段のいずれかに案内する入力スイッチ手段と、
前記演算データおよび前記演算処理手段により積和演算が行われた演算結果を前記3つの出力端子のいずれかよりそれぞれ出力させる出力スイッチ手段と、
前記被演算値記憶手段と前記入力情報記憶手段と前記定数値記憶手段とのいずれかより3つのデータを読み出して前記演算処理手段に案内するセレクタ手段と、
前記入力スイッチ手段、前記出力スイッチ手段および前記セレクタ手段の制御を行う制御手段と
を有し、
前記制御手段は、前記演算結果が前記入力端子を介して入力された場合に、前記入力スイッチ手段を制御して当該演算結果を前記入力情報記憶手段のいずれかに案内し、前記セレクタ手段を制御して当該入力情報記憶手段より読み出された演算結果を前記演算処理手段に案内し、一周期においてまだn回の演算処理が行われていない場合には、前記出力スイッチ手段を制御して前記演算処理手段により積和演算が行われた演算結果を、前記演算結果が入力された前記入力端子に対応する軸方向の出力端子より出力し、一周期においてn回目の演算処理が行われた場合には、前記出力スイッチ手段を制御して前記演算処理手段により積和演算が行われた演算結果を、前記演算結果が入力された前記入力端子とは異なる軸方向の出力端子より出力する
ことを特徴とするアレイプロセッサ。
発明の詳細な説明 【技術分野】
【0001】
本発明は、アレイプロセッサに関し、より詳細には、積和演算処理を行うプロセッシングエレメントを各軸方向に配設して概念的な三次元配置状態に形成し、各プロセッシングエレメントに設けられる入力端子と隣接する他のプロセッシングエレメントに設けられる出力端子とを前記軸方向に対応させてトーラス状に接続させたアレイプロセッサに関する。
【背景技術】
【0002】
従来より、画像を空間座標から周波数座標に変換する処理方式として二次元直交変換処理が知られている。この二次元直交変換処理は、デジタル技術の進んだ今日において大変多く用いられる変換処理であり、例えば、JPEG等の画像圧縮技術や動画圧縮技術等においても多く用いられている。さらに、時間軸を考え三次元のデータに対して周波数座標に変換する三次元直交変換も古くから動画圧縮への応用が考えられている。
【0003】
次述する式(1)は、一般的な三次元離散直交変換処理に用いられる数式を示している。
【数1】
JP0005519951B2_000002t.gif

【0004】
ここで、n,n,nは、0以上n-1以下の整数値(つまり、0≦n≦n-1,0≦n≦n-1,0≦n≦n-1)であり、k,k,kは、0以上n-1以下の整数値(つまり、0≦k≦n-1,0≦k≦n-1,0≦k≦n-1)である。また、C(n,k),C(n,k),C(n,k)はサイズがn×nの二次元係数行列を示し、X(n1,n,n)はサイズn×n×nの三次元入力データ行列を示し、Y(k,k,k)はサイズn×n×nの三次元直交変換後のデータを表す行列である。
【0005】
式(1)に示す数式において、C(n,k),C(n,k),C(n,k)に記録される具体的な値を変更することにより、さまざまな直交変換の方式、例えば、JPEGで採用されている離散コサイン変換(DCT:Discrete Cosine Transform)の他に、ウォルシュ・アダマール変換(WHT:Walsh-Hadamard Transform)、離散フーリエ変換(DFT:Discrete Fourier Transform)、離散サイン変換(DST:Discrete Sine Transform)などの変換処理を実行することが可能となっている。
【0006】
このような三次元離散直交変換処理をコンピュータを用いて演算する場合には、メモリに格納した係数Cと入力データXとを虫食い的に何度もアクセスする必要があり、膨大なデータアクセスの発生により処理の高速化が困難であるという問題があった。このような問題を回避するために、一次元の離散直交変換専用回路を3つ用い、それぞれを接続して三次元離散直交変換処理を実現する方法が提案されている(例えば、特許文献1参照)。
【先行技術文献】
【0007】

【特許文献1】米国特許第5,126,962号明細書
【発明の概要】
【発明が解決しようとする課題】
【0008】
上述した特許文献1に記載の方法は、(1)式に示した各変数n,n,nの1つのみを変化させながら順番に計算を進める方法に該当する。この方法を用いる場合には、一の軸方向に係る離散直交変換処理が終了した後に次の軸方向において離散直交変換処理を行うために、計算途中のデータや係数データを回路に入力させる順番を調整して各データの掛け合わせ処理を行う必要が生ずる。このため、特許文献1に示す方法を用いる場合には、計算途中のデータや係数データを回路に入力させる順番を調整するための専用回路を設ける必要が生じる(例えば、特許文献1の図5参照。)。このようにデータ調整用の専用回路を設けることによって、離散直交変換処理における処理速度の向上を図ることが可能になる一方で、アレイプロセッサの回路構成が複雑になってしまうという問題が生じていた。
【0009】
また、複数のプロセッシングエレメントによって構成されるアレイプロセッサを用いて三次元離散直交変換を実行する方法も考えられているが、各次元の計算途中においてプロセッシングエレメントの内部に蓄えられるデータおよび係数行列要素を、各プロセッシングエレメントを互いに接続させた複雑な配線構造を用いて何度も交換し合う必要が生ずるという問題があった。
【0010】
しかも、行列要素の交換は、隣接するプロセッシングエレメントの間だけに限定されないため、プロセッシングエレメントの間の配線構造に制約がある場合は,幾つかのプロセッシングエレメントを経由してデータの交換作業を行う必要が生じ、演算処理における処理負担が増大してしまうという問題があった。
【0011】
さらに、このような問題は、式(2)に示す三次元離散直交変換の逆変換処理(三次元逆離散直交変換)においても同様に生じるものであった。
【数2】
JP0005519951B2_000003t.gif

【0012】
本発明は上記問題に鑑みて成されたものであり、計算途中におけるデータの入替作業を行ったり、その入替作業用の専用回路を設置したりすることなく、三次元直交変換および三次元逆直交変換を迅速に実行することが可能なアレイプロセッサを提供することを課題とする。
【課題を解決するための手段】
【0013】
上記課題を解決するために、本発明に係るアレイプロセッサは、積和演算機能を備えたプロセッシングエレメントを3つの軸方向にそれぞれn個ずつ配設することにより概念的な三次元配置状態を形成し、各プロセッシングエレメントに対して、前記軸方向に対応付けられた入力端子と出力端子とを各軸方向に対応付けて3組設け、同一軸方向に隣接配置される一のプロセッシングエレメントの当該軸方向における入力端子と他のプロセッシングエレメントの当該軸方向における出力端子とを接続することにより、各プロセッシングエレメントの3組の入力端子および出力端子を軸方向に対応させてそれぞれトーラス状に接続し、各プロセッシングエレメントでは、前記積和演算機能に基づいて積和演算を行った演算結果を、一の軸方向に対応する出力端子より当該一の軸方向に隣接する他のプロセッシングエレメントに出力すると共に、前記積和演算を行う際に用いた演算データを他の軸方向に対応する出力端子より当該他の軸方向に隣接する他のプロセッシングエレメントに出力し、前記演算結果と演算データとをそれぞれ異なる軸方向に隣接する他のプロセッシングエレメントより取得したプロセッシングエレメントでは、取得した前記演算結果と演算データとを用いて積和演算を行い、当該積和演算に基づく演算結果と前記演算データとを、それぞれ取得した入力端子に対応する出力端子よりそれぞれの軸方向に隣接する他のプロセッシングエレメントに対し出力することにより、一の軸方向に対してトーラス状に接続された全てのプロセッシングエレメントにおいて第一周期目のn回の積和演算処理を互いに同期させて実行し、該第一周期目のn回の積和演算処理の後に、各プロセッシングエレメントでは、前記演算結果を出力する出力端子の軸方向を変更すると共に、当該軸方向の変更に対応させて前記演算データを出力する出力端子の軸方向を変更して、第二周期目のn回の積和演算処理を互いに同期させて実行し、該第二周期目のn回の積和演算処理の後に、各プロセッシングエレメントでは、前記演算結果を出力する出力端子の軸方向を、第一周期目および第二周期目と異なる軸方向に変更すると共に、当該軸方向の変更に対応させて前記演算データを出力する出力端子の軸方向を第一周期目および第二周期目と異なる軸方向に変更して、第三周期目のn回の積和演算処理を互いに同期させて実行することによって、三次元直交変換処理を実行することを特徴とする。
【0014】
このように、本発明に係るアレイプロセッサでは、各プロセッシングエレメントの入出力端子が軸方向に対応されてトーラス状に接続されているため、積和演算処理に伴う演算結果と演算処理に用いる演算データとをそれぞれ異なる軸方向に対して隣接する他のプロセッシングエレメントに順次送り出しながら(リレーのように順次伝搬させながら)、各プロセッシングエレメントにおいて個別に演算処理を行うことができる。従って、軸方向に配設されたn個のプロセッシングエレメントにおいて演算結果の送り出しを行いつつn回の演算処理を行うことにより、n回の積和演算を軸方向に沿って行うことができる。
【0015】
また、直交変換処理を行うためには、データの掛け合わせの都合により、演算結果や演算データ等の入力順番を調整させて演算処理を行う必要があるが、第一周期目(第一回目)の演算処理が行われた後に、送り出しを行う軸方向を変更させることによって、容易にデータの入力順番の変更を行うことが可能となる。このため、従来のアレイプロセッサのように、データの入力順番を調整するための専用回路を設ける必要がなくなり、また、データの入替作業等を直接的に行うことなく直交変換処理を行うことが可能となる。
【0016】
特に、本発明に係るアレイプロセッサは、3つの軸方向に対してそれぞれn個ずつ配設されたプロセッシングエレメントにより概念的な三次元配置状態が形成され、各プロセッシングエレメントに対して各軸方向に対応付けられた3組の入出力端子が設けられているため、3回の周期にわたりn回の積和演算処理を行うことができる。このため、上述したデータの入替処理などを直接的に行うことなく、迅速、確実かつ簡易に三次元直交変換処理を行うことが可能となる。
【0017】
なお、本発明に係るアレイプロセッサでは、各プロセッシングエレメントが概念的な三次元配置状態を形成していればよいため、必ずしも物理的な立体形状を構成する必要はない。例えば、平面状に3つの軸を設けることによって、実際には平面的な配置状態において概念的な三次元配置状態を形成するものであってもよい。
【0018】
また、前記アレイプロセッサにおいて、前記各プロセッシングエレメントが、前記積和演算に用いられる被演算値を記憶する1つの被演算値記憶手段と、前記入力端子を介して入力された前記演算結果または前記演算データを記憶する3つの入力情報記憶手段と、前記積和演算機能による演算方法に対応して決定される定数値を記憶する3つの定数値記憶手段と、前記演算結果と前記演算データと前記被演算値と前記定数値とのいずれかを用いて積和演算を行う演算処理手段と、前記3つの入力端子のいずれかより入力された情報を前記入力情報記憶手段または前記被演算値記憶手段のいずれかに案内する入力スイッチ手段と、前記演算データおよび前記演算処理手段により積和演算が行われた演算結果を前記3つの出力端子のいずれかよりそれぞれ出力させる出力スイッチ手段と、前記被演算値記憶手段と前記入力情報記憶手段と前記定数値記憶手段とのいずれかより3つのデータを読み出して前記演算処理手段に案内するセレクタ手段と、前記入力スイッチ手段、前記出力スイッチ手段および前記セレクタ手段の制御を行う制御手段とを有し、前記制御手段は、前記演算結果が前記入力端子を介して入力された場合に、前記入力スイッチ手段を制御して当該演算結果を前記入力情報記憶手段のいずれかに案内し、前記セレクタ手段を制御して当該入力情報記憶手段より読み出された演算結果を前記演算処理手段に案内し、一周期においてまだn回の演算処理が行われていない場合には、前記出力スイッチ手段を制御して前記演算処理手段により積和演算が行われた演算結果を、前記演算結果が入力された前記入力端子に対応する軸方向の出力端子より出力し、一周期においてn回目の演算処理が行われた場合には、前記出力スイッチ手段を制御して前記演算処理手段により積和演算が行われた演算結果を、前記演算結果が入力された前記入力端子とは異なる軸方向の出力端子より出力するものであってもよい。
【0019】
このように、プロセッシングエレメントに対して、入力端子を介して取得されたデータを記録する入力情報記憶手段と被演算値を記憶する被演算値記憶手段とを設けることによって、これらの記憶手段を、n回の積和演算において内容が変更されたデータを記憶するための記憶手段(入力情報記憶手段)と、同一周期の処理では変更されないが、異なる周期において内容が変更されたデータを記録するための記憶手段として利用することが可能となる。従って、制御手段の制御に応じて入力スイッチ手段およびセレクタ手段を制御して、処理過程に応じて適切なデータを記憶手段に記憶(退避)させておくことができ、また、適切なタイミングで記憶(退避)されたデータを積和演算処理に利用させることが可能となる。このため結果として、データの入力順番を調整するための専用回路を設けることなく実質的なデータの入替処理を行うことができ、直交変換処理を迅速かつ容易に実行することが可能となる。
【0020】
また、演算方法に対応して決定される定数値を記憶する定数値記憶手段が設けられているので、この定数値を演算方法に応じて変更することにより、さまざまな種類の三次元直交変換処理を実行することが可能となる。定数値を適宜変更することにより、例えば、後述する実施の形態において説明する離散コサイン変換の他に、ウォルシュ・アダマール変換、離散フーリエ変換、離散サイン変換等を行うことが可能となる。
【0021】
さらに、制御手段が、入力スイッチ手段と、セレクタ手段と、出力スイッチ手段とを、積和演算処理に対応させて適宜制御することにより、3回の周期にわたるn回の積和演算処理を適切に行うことができるので、従来のようなデータの入力順番処理などを直接的に行うことなく、迅速、確実かつ簡易に三次元直交変換処理を行うことが可能となる。
【発明の効果】
【0022】
本発明に係るアレイプロセッサによれば、各プロセッシングエレメントの入出力端子が軸方向に対応されてトーラス状に接続されているため、積和演算処理に伴う演算結果と演算処理に用いる演算データとをそれぞれ異なる軸方向に対して隣接する他のプロセッシングエレメントに順次送り出しながら(リレーのように順次伝搬させながら)、各プロセッシングエレメントにおいて個別に演算処理を行うことができる。従って、軸方向に配設されたn個のプロセッシングエレメントにおいて演算結果の送り出しを行いつつn回の演算処理を行うことにより、n回の積和演算を軸方向に沿って行うことができる。
【0023】
また、直交変換処理を行うためには、データの掛け合わせの都合により、演算結果や演算データ等の入力順番を調整させて演算処理を行う必要があるが、第一周期目(第一回目)の演算処理が行われた後に、送り出しを行う軸方向を変更させることによって、第二周期目および第三周期目において、容易にデータの入力順番の変更を行うことが可能となる。このため、従来のアレイプロセッサのように、データの入力順番を調整するための専用回路を設ける必要がなくなり、入替作業等を直接的に行うことなく直交変換処理を行うことが可能となる。
【図面の簡単な説明】
【0024】
【図1】実施の形態1および実施の形態2に係るアレイプロセッサの概略構成を模式的に示した図である。
【図2】実施の形態1に係るプロセッシングエレメントの概略構成を示したブロック図である。
【図3】実施の形態1に係るアレイプロセッサを用いて三次元離散コサイン変換処理を行う場合におけるレジスタR0~R6の初期値および各処理ステップにおいて記録される内容を示した表である。
【図4】図3に示した表において、各レジスタの内容が変更される状態を処理ステップに応じて矢印で示したものである。
【図5】実施の形態1に係るアレイプロセッサを用いて三次元逆離散コサイン変換処理を行う場合におけるレジスタR0~R6の初期値および各処理ステップにおいて記録される内容を示した表である。
【図6】図5に示した表において、各レジスタの内容が変更される状態を処理ステップに応じて矢印で示したものである。
【図7】実施の形態2に係るプロセッシングエレメントの概略構成を示したブロック図である。
【図8】実施の形態2に係るアレイプロセッサを用いて三次元離散コサイン変換処理を行う場合におけるレジスタR0~R6の初期値および各処理ステップにおいて記録される内容を示した表である。
【図9】図8に示した表において、各レジスタの内容が変更される状態を処理ステップに応じて矢印で示したものである。
【図10】実施の形態2に係るアレイプロセッサを用いて三次元逆離散コサイン変換処理を行う場合におけるレジスタR0~R6の初期値および各処理ステップにおいて記録される内容を示した表である。
【図11】図10に示した表において、各レジスタの内容が変更される状態を処理ステップに応じて矢印で示したものである。
【発明を実施するための形態】
【0025】
以下、本発明に係るアレイプロセッサを、図面を用いて詳細に説明する。なお、後述する実施の形態1および実施の形態2では、三次元離散コサイン変換(3D Discrete Cosine Transform:3D—DCT)と三次元逆離散コサイン変換(3D Inverse Discrete Cosine Transform:3D-IDCT)とを計算するアレイプロセッサについて説明を行うが、本発明に係るアレイプロセッサは、この三次元離散コサイン変換および三次元逆離散コサイン変換の計算に用いるものだけには限定されず、上述した一般的な式(1)のCを適宜変更することによって、他の変換方式に基づく三次元直交変換処理を実行することができる。

【0026】
[実施の形態1]
図1は、実施の形態1に係るアレイプロセッサを示した図である。アレイプロセッサ1は、8個のプロセッシングエレメントPEを有している。ここでプロセッシングエレメントPEとは、積和演算処理を行う役割を有するアレイプロセッサの演算構成部である。

【0027】
プロセッシングエレメントPEは、縦方向、横方向、高さ方向(三軸方向)にそれぞれ2個ずつ配置されており、各プロセッシングエレメントPEは、直方体を成すアレイプロセッサ1の各頂点に一つずつ配置される構成となっている。

【0028】
実施の形態1では、前述した縦方向をi軸方向、前述した横方向をj軸方向、前述した高さ方向をk軸方向とする。また、各プロセッシングエレメントPEは、それぞれを他のプロセッシングエレメントPEと区別するために、i軸、j軸、k軸により構成されるijk空間の座標位置を用いてPE(i,j,k)で特定される。

【0029】
各プロセッシングエレメントPEは、図1及び図2に示すように、-i軸方向・-j軸方向・k軸方向に設けられる3つの入力端子(i入力端子、j入力端子、k入力端子)と、各入力端子(i入力端子、j入力端子、k入力端子)と対を成してそれぞれi軸方向・j軸方向・-k軸方向に設けられる3つの出力端子(i出力端子、j出力端子、k出力端子)とを有している。

【0030】
各出力端子は、それぞれの出力端子の設置方向(軸方向)に隣接するプロセッシングエレメントPEの対向する(同軸方向に設けられた)入力端子に接続されている。例えば、PE(1,0,1)において-i軸方向に向けて設けられるi出力端子は、PE(0,0,1)においてi軸方向に向けて設けられるi入力端子と接続される。

【0031】
また、対向する方向に他のプロセッシングエレメントPEが存在しない場合には、それぞれの軸方向に沿った配設位置の両端部に位置するプロセッシングエレメントPEの入力端子および出力端子を接続させることにより、同軸方向に設けられる入力端子および出力端子同士を接続したトーラス状を構成する。

【0032】
従って、i軸方向に整列されたプロセッシングエレメントPEは、i出力端子より-i軸方向に隣接する他のプロセッシングエレメントPEのi入力端子に対してデータの出力を行うことが可能となっており、i座標が0となる空間位置に存在するプロセッシングエレメントは、そのi出力端子を、i軸方向の他端部側に位置するプロセッシングエレメントのi入力端子にトーラス状に接続させて、データを出力することが可能となっている。この構造は、それぞれj軸方向およびk軸方向に整列されたプロセッシングエレメントPEにおいても同様である。

【0033】
このように、三次元空間に配置されたプロセッシングエレメントPEにおいて、それぞれ対応する軸方向に整列された隣接のプロセッシングエレメントPEに対してデータを順次出力することができる。このため、アレイプロセッサ1では、隣接するプロセッシングエレメントPEにおいて演算された算出結果のデータや、演算に用いる所定のデータなどを隣接する他のプロセッシングエレメントPEに順次リレーして、連続的な積和演算処理を、アレイプロセッサ1全体で行うことが可能となっている。

【0034】
図2は、各プロセッシングエレメントPEの内部構成を示したブロック図である。プロセッシングエレメントPEは、7個のレジスタR0~R6と、入力スイッチ部4と、セレクタ部5と、演算回路部6と、出力スイッチ部7と、制御回路部8とを有している。

【0035】
レジスタR0~R6は、三次元直交変換処理に用いるデータを記録することが可能となっている。レジスタR4、レジスタR5、レジスタR6には、式(1)に示したCのデータが記録される。このCは、実施の形態1に係るアレイプロセッサ1を用いて三次元直交変換処理を行う際に、その演算を行う処理方式に応じて決定される初期値であり、既に説明したように、Cの初期値を変更することによって、例えば、離散コサイン変換(DCT)、ウォルシュ・アダマール変換(WHT)、離散フーリエ変換(DFT)、離散サイン変換(DST)などの演算を行うことが可能となる。

【0036】
実施の形態1に係るアレイプロセッサ1では、三次元離散コサイン変換(3D—DCT)に適した初期値(DCT係数(固定値))が設定される。具体的には、各プロセッシングエレメントのR4に次述するC(i,k)の値が初期値として記録され、レジスタR5に次述するC(k,j)の値が初期値として記録され、レジスタR6に次述するC(i,j)の値が初期値として記録される。

【0037】
具体的に説明すると、プロセッシングエレメントPEの配置位置の座標位置(i,j,k)において、i=0であり、かつ、0≦k≦n—1であるプロセッシングエレメントPE(i,j,k)のレジスタR4には、
【数3】
JP0005519951B2_000004t.gif
が記録される。ここで、nは各軸方向に向けて配設されたプロセッシングエレメントPEの個数を示しており、実施の形態1では、i軸方向、j軸方向、k軸方向のそれぞれに対して2個ずつプロセッシングエレメントが配設されているため、以下、nは2(n=2)となる。

【0038】
次に、1≦i≦n—1であり、かつ、0≦k≦1であるプロセッシングエレメントPE(i,j,k)のレジスタR4には、
【数4】
JP0005519951B2_000005t.gif
が記録される。

【0039】
また、k=0であり、かつ、0≦j≦n—1であるプロセッシングエレメントPE(i,j,k)のレジスタR5には、
【数5】
JP0005519951B2_000006t.gif
が記録され、また、1≦k≦n-1であり、かつ、0≦j≦n—1であるプロセッシングエレメントPE(i,j,k)のレジスタR5には、
【数6】
JP0005519951B2_000007t.gif
が記録される。

【0040】
さらに、また、i=0であり、かつ、0≦j≦n—1であるプロセッシングエレメントPE(i,j,k)のレジスタR6には、
【数7】
JP0005519951B2_000008t.gif
が記録され、また、1≦i≦n-1であり、かつ、0≦j≦n—1であるプロセッシングエレメントPE(i,j,k)のレジスタR6には、
【数8】
JP0005519951B2_000009t.gif
が記録される。

【0041】
なお、レジスタR4~R6に記録される上述した式(3)~式(8)の設定値(定数値)は、演算処理が終了するまで変更されることなく同一の値が維持される。

【0042】
次に、レジスタR1、R2、R3には、初期値として0が記録されている。また、レジスタR0には、三次元離散コサイン変換処理を行う三次元の入力データ、具体的には上述した式(1)のX(i,j,k)の値が記録されている。なお、図2に示すように、レジスタR0~R3には、入力スイッチ部4を介してデータが案内される場合があり、この場合には各レジスタR0~R3に新たなデータが上書き保存されてしまうため、演算処理に応じて記録されるデータが変更される可能性が生じる。このため、レジスタR0~R3は、演算処理の処理経過に応じて演算結果、あるいは、演算に用いられる設定値が順次変更され得る。そして、後述するように、最終的にレジスタR3に対して、アレイプロセッサ1により演算された三次元直交変換処理の演算結果が記録される。

【0043】
入力スイッチ部4は、3つの入力端子(i入力端子、j入力端子、k入力端子)より入力された情報を、制御回路部8の指示に応じて切り替えて、レジスタR0~R3のいずれかに案内して記録させる役割を有している。実際に入力端子を介して入力されるデータは、3つの入力端子(i入力端子、j入力端子、k入力端子)のうちのいずれか2つの入力端子を介して入力される。制御回路部8では、入力された情報を入力端子の種類に応じて判断し、入力スイッチ部4を制御して、入力されたデータを、それぞれ該当するレジスタ(レジスタR0~R3のいずれか)に案内して記録させる。

【0044】
セレクタ部5は、レジスタR0~R6のいずれか3つのレジスタより演算回路部6の演算処理に用いられるデータを取得して演算回路部6に出力する。セレクタ部5では、取得した3つのデータを、演算回路部6の演算内容に応じて設けられる3つの入力端子(a入力端子,b入力端子およびc入力端子)に出力する。なお、b入力端子に対して出力されたデータは、b入力端子を介して演算回路部6に入力されると共に、そのまま出力スイッチ部7へと出力される。セレクタ部5において、いずれのレジスタ(レジスタR0~R6のうち3つのレジスタ)からデータを取得するか、および、取得したデータをa入力端子,b入力端子およびc入力端子のいずれに出力するかという判断処理は、制御回路部8の指示に応じて行われる。

【0045】
演算回路部6では、a入力端子より取得したデータaと、b入力端子より取得したデータbと、c入力端子より取得したデータcとに基づいて、積和演算を行う。積和演算は、演算結果をdとすると、d=a×b+cによって求められる。演算結果dは、演算回路部6の出力端子10を介して出力スイッチ部7に出力される。

【0046】
出力スイッチ部7は、セレクタ部5より演算回路部6のb入力端子に対して出力されたデータbと、演算回路部6の出力端子10を介して出力された演算結果dとを取得し、制御回路部8の指示に応じて、3つの出力端子(i出力端子、j出力端子、k出力端子)のいずれかよりデータbおよび演算結果dを出力させる役割を有している。実際に、出力端子を介して出力されるデータは、3つの出力端子(i出力端子、j出力端子、k出力端子)のうちいずれか2つの出力端子のみである。制御回路部8は、入力されたデータを判断し、出力スイッチ部7を制御することによって、データbおよび演算結果dを、それぞれ該当する出力端子(i出力端子、j出力端子、k出力端子のいずれか)に出力する。

【0047】
制御回路部8は、上述した入力スイッチ部4、セレクタ部5、出力スイッチ部7の操作制御を行う役割を有している。制御回路部8は、入力スイッチ部4,セレクタ部5および出力スイッチ部7に入力されるデータを、その内容や入力された入力端子の種類に応じて判断し、アレイプロセッサ1の処理内容に応じて入力スイッチ部4、セレクタ部5、出力スイッチ部7の制御を行う。

【0048】
なお、図2には示していないが、各プロセッシングエレメントPEには、レジスタR0に対して三次元離散コサイン変換処理を行うための入力データを入力し、また、レジスタR1~R3に対して初期値0を入力し、さらに、レジスタR4~R6に対して初期値C(i,k),C(k,j),C(i,j)を入力するためのデータ入力手段や、最終的な演算結果が記録されるレジスタR3よりデータを取得するためのデータ取得手段などが設けられている。

【0049】
次に、各プロセッシングエレメントPEの制御回路部8が、入力スイッチ部4,セレクタ部5,および出力スイッチ部7を適宜制御することにより、三次元離散コサイン変換処理(3D—DCT処理)を行う過程を説明する。

【0050】
図3は、各プロセッシングエレメントPE(i,j,k)における各レジスタR0~R6の初期値および各処理ステップにおいて記録される内容が利用され、または変更されるレジスタを示した表であり、図4は、図3に示したレジスタの内容が変更される状態を、処理ステップに応じて矢印で示したものである。なお、図4に示した破線による矢印は後述するデータbに該当するデータの出力状態を示しており、実線による矢印は後述する演算結果dに該当するデータの出力状態を示している。

【0051】
上述したレジスタR0~R6の初期値の設定が行われた後、各プロセッシングエレメントPEの制御回路部8は、セレクタ部5を制御して、レジスタR4に記録されるデータを演算回路部6のa入力端子に出力させ、レジスタR0に記録されるデータを演算回路部6のb入力端子に出力させ、レジスタR1に記録されるデータを演算回路部6のc入力端子に出力させる処理を実行する。この処理において、図3および図4に示すように、レジスタR4に記録されるデータは、C(i,k)の初期値であり、レジスタR0に記録されるデータは、三次元離散コサイン変換処理を行うための入力データ:X(i,j,k)であり、レジスタR1に記録されるデータは、初期値の0である。

【0052】
各プロセッシングエレメントPEの演算回路部6では、データaとして入力されたレジスタR4のデータと、データbとして入力されたレジスタR0のデータと、データcとして入力されたレジスタR1のデータとを用いて、積和演算(d=a×b+cの演算)を実行する。

【0053】
次いで各プロセッシングエレメントPEの制御回路部8は、出力スイッチ部7を制御して演算結果dとデータbとを取得し、演算結果dをk軸方向に隣接するプロセッシングエレメントPEのk入力端子に出力し、また、データb(詳細には、レジスタR0に記録されていたデータ)を-i軸方向に隣接するプロセッシングエレメントPEのi入力端子に出力する。

【0054】
そして、各プロセッシングエレメントPEの制御回路部8は、入力スイッチ部4を制御して、隣接するプロセッシングエレメントPEよりk入力端子を介して演算結果dを取得し、i入力端子を介してデータb(レジスタR0のデータ)とを取得して、演算結果dをレジスタR1に記録させるとともに、データb(レジスタR0のデータ)をレジスタR0に記録する。

【0055】
このようにして、各プロセッシングエレメントPEの制御回路部8は、演算結果dおよびデータbを隣接したプロセッシングエレメントPEに対して出力する処理を、各軸方向に配設されるプロセッシングエレメントPEの配置個数に対応する回数、つまりn回(実施の形態1では2回)だけ繰り返し実行して、i入力端子およびi出力端子の接続によりトーラス状に接続された経路と、k入力端子およびk出力端子の接続によりトーラス状に接続された経路とに沿って、演算処理結果および所定のデータを一巡させる。この一巡の処理が第一周期目のn回の積和演算処理に該当する。

【0056】
このn回の処理の繰り返しにより、各プロセッシングエレメントPEのレジスタR1には、k軸方向に配設された全てのプロセッシングエレメントPEにおいて積和演算された演算結果が記録されることになる。実施の形態1では、n=2であるため、2回だけ上述の処理が行われる。図3および図4に示した「0」および「1」の処理ステップは、上述したこの2回の処理に該当する処理内容を示している。

【0057】
続いて、各プロセッシングエレメントPEの制御回路部8は、セレクタ部5を制御して、レジスタR5に記録されるデータを演算回路部6のa入力端子に出力させ、レジスタR1に記録されるデータを演算回路部6のb入力端子に出力させ、レジスタR2に記録されるデータを演算回路部6のc入力端子に出力させる処理を実行する。この処理において、レジスタR5に記録されるデータは、C(k,j)の初期値であり、レジスタR1に記録されるデータは、k軸方向に配設された全てのプロセッシングエレメントPEにおいて積和演算された演算結果であり、レジスタR2に記録されるデータは、初期値の0である。

【0058】
各プロセッシングエレメントPEの演算回路部6では、データaとして入力されたレジスタR5のデータと、データbとして入力されたレジスタR1のデータと、データcとして入力されたレジスタR2のデータとを用いて、積和演算(d=a×b+cの演算)を実行する。

【0059】
次いで各プロセッシングエレメントPEの制御回路部8は、出力スイッチ部7を制御して、演算結果dとデータbとを取得し、演算結果dを-j軸方向に隣接するプロセッシングエレメントPEのj入力端子に出力し、また、データb(詳細には、レジスタR1に記録されていたデータ)をk軸方向に隣接するプロセッシングエレメントPEのk入力端子に出力する。

【0060】
そして、各プロセッシングエレメントPEの制御回路部8は、入力スイッチ部4を制御して、隣接するプロセッシングエレメントPEよりj入力端子を介して演算結果dを取得し、k入力端子を介してデータb(レジスタR1のデータ)を取得して、演算結果dをレジスタR2に記録させるとともに、データb(レジスタR1のデータ)をレジスタR1に記録する。

【0061】
このようにして、各プロセッシングエレメントPEの制御回路部8は、演算結果dおよびデータbを隣接したプロセッシングエレメントPEに対して出力する処理を、各軸方向に配設されるプロセッシングエレメントPEの配置個数に対応する回数、つまりn回(実施の形態1では2回)だけ繰り返し実行して、j入力端子およびj出力端子の接続によりトーラス状に接続された経路と、k入力端子およびk出力端子の接続によりトーラス状に接続された経路とに沿って、演算処理結果および所定データを一巡させる。この一巡の処理が第二周期目のn回の積和演算処理に該当する。

【0062】
このn回の処理の繰り返しにより、各プロセッシングエレメントPEのレジスタR2には、k軸方向に配設された全てのプロセッシングエレメントPEにおいて積和演算された演算結果(第一周期目のn回の積和演算処理による演算結果)であるレジスタR1に基づいて、j軸方向に配設された全てのプロセッシングエレメントPEで積和演算された演算結果(第二周期目のn回の積和演算処理による演算結果)が記録され、レジスタR1には、k軸方向に配設された全てのプロセッシングエレメントにおいて積和演算された演算結果が記録されることになる。実施の形態1では、n=2であるため、2回だけ上述の処理が行われる。図3および図4に示した「2」および「3」の処理ステップは、上述したこの2回の処理に該当する処理内容を示している。

【0063】
続いて、各プロセッシングエレメントPEの制御回路部8は、セレクタ部5を制御して、レジスタR6に記録されるデータを演算回路部6のa入力端子に出力させ、レジスタR2に記録されるデータを演算回路部6のb入力端子に出力させ、レジスタR3に記録されるデータを演算回路部6のc入力端子に出力させる処理を実行する。この処理において、レジスタR6に記録されるデータは、C(i,j)の初期値であり、レジスタR2に記録されるデータは、k軸方向に配設された全てのプロセッシングエレメントPEにおいて積和演算された演算結果(第一周期目のn回の積和演算処理による演算結果)に基づいて、j軸方向に配設された全てのプロセッシングエレメントPEで積和演算された演算結果(第二周期目のn回の積和演算処理による演算結果)であり、レジスタR3に記録されるデータは、初期値の0である。

【0064】
各プロセッシングエレメントPEの演算回路部6では、データaとして入力されたレジスタR6のデータと、データbとして入力されたレジスタR2のデータと、データcとして入力されたレジスタR3のデータとを用いて、積和演算(d=a×b+cの演算)を行う。

【0065】
次いで各プロセッシングエレメントPEの制御回路部8は、出力スイッチ部7を制御して、演算結果dとデータbとを取得して、演算結果dを-i軸方向に隣接するプロセッシングエレメントPEのi入力端子に出力し、また、データb(詳細には、レジスタR2に記録されていたデータ)を-j軸方向に隣接するプロセッシングエレメントPEのj入力端子に出力する。

【0066】
そして、各プロセッシングエレメントPEの制御回路部8は、入力スイッチ部4を制御して、隣接するプロセッシングエレメントPEよりi入力端子を介して演算結果dを取得し、j入力端子を介してデータb(レジスタR2のデータ)を取得して、演算結果dをレジスタR3に記録させるとともに、データb(レジスタR2のデータ)をR2に記録する。

【0067】
このようにして、各プロセッシングエレメントPEの制御回路部8は、演算結果dおよびデータbを隣接したプロセッシングエレメントPEに対して出力する処理を、各軸方向に配設されるプロセッシングエレメントPEの配置個数に対応する回数、つまりn回(実施の形態1では2回)だけ繰り返し実行して、i入力端子およびi出力端子の接続によりトーラス状に接続された経路と、j入力端子およびj出力端子の接続によりトーラス状に接続された経路とに沿って、演算処理結果および所定データを一巡させる。この一巡の処理が第三周期目のn回の積和演算処理に該当する。

【0068】
このn回の処理の繰り返しにより、各プロセッシングエレメントPEのレジスタR3には、k軸方向に配設された全てのプロセッシングエレメントPEにおいて積和演算された演算結果(第一周期目のn回の積和演算処理による演算結果)に基づいて積和演算されたj軸方向に配設される全てのプロセッシングエレメントPEの積和演算結果(第二周期目のn回の積和演算処理による演算結果)を用いて、i軸方向に配設された全てのプロセッシングエレメントPEで演算処理した演算結果(第三周期目のn回の積和演算処理による演算結果)が記録され、レジスタR2には、k軸方向に配設された全てのプロセッシングエレメントPEにおいて積和演算された演算結果(第一周期目のn回の積和演算処理による演算結果)に基づいて、j軸方向に配設された全てのプロセッシングエレメントPEで積和演算された演算結果(第二周期目のn回の積和演算処理による演算結果)が記録されることになる。実施の形態1では、n=2であるため、2回だけ上述の処理が行われる。図3および図4に示した「4」および「5」の処理ステップは、上述したこの2回の処理に該当する処理内容を示している。

【0069】
このようにして実施の形態1に係るアレイプロセッサ1では、隣接するプロセッシングエレメントPEに対して、演算結果および積和演算に用いる所定データを順次出力してそれぞれのプロセッシングエレメントPEにおいて積和演算処理を行い、この隣接するプロセッシングエレメントPEへの演算結果の出力処理を、順次k軸方向、j軸方向、i軸方向へと出力方向を変えて処理を進めることにより、各演算回路部6における積和演算結果をレジスタR3に記録させることができる。従って、従来のアレイプロセッサのように、計算途中でデータや係数データの入力順番を調整するための専用回路を設ける必要がなく、回路構成の簡素化を図ることが可能となる。また、演算結果を隣接するプロセッシングエレメントPEに順次出力することによって三次元離散コサイン変換処理(三次元直交変換処理)を行うことが可能であるため、各次元の計算途中においてプロセッシングエレメントPEの内部に蓄えられるデータおよび係数行列要素を、従来のように複雑な配線構造を用いて何度も交換し合う必要がなく、処理の迅速化および簡素化を図ることが可能となる。

【0070】
このように、実施の形態1に係るアレイプロセッサ1を用いることにより、従来の構成において必須とされていた計算途中におけるデータ同士の入替作業を行うことなくなる。また、複数のプロセッシングエレメントPEを接続させて演算結果処理を順次行うことにより、三次元離散コサイン変換処理(三次元離散直交変換処理)を迅速に実行することができ、さらに回路構成の複雑化を抑制することが可能となる。

【0071】
次に、上述したアレイプロセッサ1を用いて、三次元逆離散コサイン変換(3D-IDCT)を計算する方法を説明する。なお、図5は、各プロセッシングエレメントPE(i,j,k)における各レジスタR0~R6の初期値および各処理ステップにおいて記録されるレジスタを示した表であり、図6は、図5に示したレジスタの内容が変更される状態を、処理ステップに応じて矢印で示したものである。なお、図6に示した破線による矢印は、演算処理に用いられるデータbに該当するデータの出力状態を示しており、実線による矢印は演算結果dに該当するデータの出力状態を示している。

【0072】
三次元逆離散コサイン変換を行う場合には、式(2)において三次元逆離散コサイン変換用の固定値(IDCT係数(固定値))として下記のようなC(k,j),C(i,k)およびC(i,j)が用いられ、それぞれの値がレジスタR4,R5,R6に初期値として記録される。

【0073】
具体的に説明すると、プロセッシングエレメントPEの配置位置の座標位置(i,j,k)において、k=0であり、かつ、0≦j≦n—1であるプロセッシングエレメントPE(i,j,k)のレジスタR4には、
【数9】
JP0005519951B2_000010t.gif
が記録される。ここで、nは各軸方向に向けて配設されたプロセッシングエレメントPEの個数を示しており、実施の形態1では、以下、n=2となる。

【0074】
次に、1≦k≦n—1であり、かつ、0≦j≦n-1であるプロセッシングエレメントPE(i,j,k)のレジスタR4には、
【数10】
JP0005519951B2_000011t.gif
が記録される。

【0075】
また、i=0であり、かつ、0≦k≦n—1であるプロセッシングエレメントPE(i,j,k)のレジスタR5には、
【数11】
JP0005519951B2_000012t.gif
が記録され、また、1≦i≦n-1であり、かつ、0≦k≦n—1であるプロセッシングエレメントPE(i,j,k)のレジスタR5には、
【数12】
JP0005519951B2_000013t.gif
が記録される。

【0076】
さらに、また、i=0であり、かつ、0≦j≦n—1であるプロセッシングエレメントPE(i,j,k)のレジスタR6には、
【数13】
JP0005519951B2_000014t.gif
が記録され、また、1≦i≦n-1であり、かつ、0≦j≦n—1であるプロセッシングエレメントPE(i,j,k)のレジスタR6には、
【数14】
JP0005519951B2_000015t.gif
が記録される。

【0077】
また、レジスタR1、R2、R3には、初期値として0が記録されて、レジスタR0には、三次元逆離散コサイン変換処理を行う三次元の入力データ、具体的には上述した式(2)のY(i,j,k)の値が記録されている。

【0078】
このレジスタR0~R6の初期値の設定が行われた後、各プロセッシングエレメントPEの制御回路部8は、セレクタ部5を制御して、レジスタR4に記録されるデータを演算回路部6のa入力端子に出力させ、レジスタR0に記録されるデータを演算回路部6のb入力端子に出力させ、レジスタR1に記録されるデータを演算回路部6のc入力端子に出力させる処理を実行する。この処理において、レジスタR4に記録されるデータは、C(k,j)の初期値であり、レジスタR0に記録されるデータは、三次元逆離散コサイン変換処理を行うための入力データY(i,j,k)であり、レジスタR1に記録されるデータは、初期値の0である。

【0079】
各プロセッシングエレメントPEの演算回路部6では、データaとして入力されたレジスタR4のデータと、データbとして入力されたレジスタR0のデータと、データcとして入力されたレジスタR1のデータとを用いて、積和演算(d=a×b+cの演算)を行う。

【0080】
次いで各プロセッシングエレメントPEの制御回路部8は、出力スイッチ部7を制御して、演算結果dとデータbとを取得し、演算結果dをk軸方向に隣接するプロセッシングエレメントPEのk入力端子に出力し、また、データb(詳細には、レジスタR0に記録されていたデータ)を-j軸方向に隣接するプロセッシングエレメントPEのj入力端子に出力する。

【0081】
そして、各プロセッシングエレメントPEの制御回路部8は、入力スイッチ部4を制御して、隣接するプロセッシングエレメントPEよりk入力端子を介して演算結果dを取得し、j入力端子を介してデータb(レジスタR0のデータ)を取得して、演算結果dをレジスタR1に記録させるとともに、データb(レジスタR0のデータ)をレジスタR0に記録する。

【0082】
このようにして、各プロセッシングエレメントPEの制御回路部8は、演算結果dおよびデータbを隣接したプロセッシングエレメントPEに対して出力する処理を、各軸方向に配設されるプロセッシングエレメントPEの配置個数に対応する回数、つまりn回(実施の形態1では2回)だけ繰り返し実行して、k入力端子およびk出力端子の接続によりトーラス状に接続された経路と、j入力端子およびj出力端子の接続によりトーラス状に接続された経路とに沿って、演算処理結果および所定データを一巡させる。この一巡の処理が第一周期目のn回の積和演算処理に該当する。

【0083】
このn回の処理の繰り返しにより、各プロセッシングエレメントPEのレジスタR1には、k軸方向に配設された全てのプロセッシングエレメントPEにおいて積和演算された演算結果(第一周期目のn回の積和演算処理による演算結果)が記録されることになる。実施の形態1では、n=2であるため、2回だけ上述の処理が行われる。図5および図6に示した「0」および「1」の処理ステップは、上述したこの2回の処理に該当する処理内容を示している。

【0084】
続いて、各プロセッシングエレメントPEの制御回路部8は、セレクタ部5を制御して、レジスタR5に記録されるデータを演算回路部6のa入力端子に出力させ、レジスタR1に記録されるデータを演算回路部6のb入力端子に出力させ、レジスタR2に記録されるデータを演算回路部6のc入力端子に出力させる処理を実行する。この処理において、レジスタR5に記録されるデータは、C(i,k)の初期値であり、レジスタR1に記録されるデータは、k軸方向に配設された全てのプロセッシングエレメントPEにおいて積和演算された演算結果であり、レジスタR2に記録されるデータは、初期値の0である。

【0085】
各プロセッシングエレメントPEの演算回路部6では、データaとして入力されたレジスタR5のデータと、データbとして入力されたレジスタR1のデータと、データcとして入力されたレジスタR2のデータとを用いて、積和演算(d=a×b+cの演算)を実行する。

【0086】
次いで各プロセッシングエレメントPEの制御回路部8は、出力スイッチ部7を制御して、演算結果dとデータbとを取得し、演算結果dを-i軸方向に隣接するプロセッシングエレメントPEのi入力端子に出力し、また、データb(詳細には、レジスタR1に記録されていたデータ)をk軸方向に隣接するプロセッシングエレメントPEのk入力端子に出力する。

【0087】
そして、各プロセッシングエレメントPEの制御回路部8は、入力スイッチ部4を制御して、隣接するプロセッシングエレメントPEよりi入力端子を介して演算結果dを取得し、k入力端子を介してデータb(レジスタR1のデータ)を取得して、演算結果dをレジスタR2に記録させるとともに、データb(レジスタR1のデータ)をレジスタR1に記録する。

【0088】
このようにして、各プロセッシングエレメントPEの制御回路部8は、演算結果dおよびデータbを隣接したプロセッシングエレメントPEに対して出力する処理を、各軸方向に配設されるプロセッシングエレメントPEの配置個数に対応する回数、つまりn回(実施の形態1では2回)だけ繰り返し実行して、i入力端子およびi出力端子の接続によりトーラス状に接続された経路と、k入力端子およびk出力端子の接続によりトーラス状に接続された経路とに沿って、演算処理結果および所定データを一巡させる。この一巡の処理が第二周期目のn回の積和演算処理に該当する。

【0089】
このn回の処理の繰り返しにより、各プロセッシングエレメントPEのレジスタR2には、k軸方向に配設された全てのプロセッシングエレメントPEにおいて積和演算された演算結果(第一周期目のn回の積和演算処理による演算結果)であるレジスタR1に基づいて、i軸方向に配設された全てのプロセッシングエレメントPEで積和演算された演算結果(第二周期目のn回の積和演算処理による演算結果)が記録され、レジスタR1には、k軸方向に配設された全てのプロセッシングエレメントPEにおいて積和演算された演算結果が記録されることになる。図5および図6に示した「2」および「3」の処理ステップは、上述したこの2回の処理に該当する処理内容を示している。

【0090】
続いて、各プロセッシングエレメントPEの制御回路部8は、セレクタ部5を制御して、レジスタR6に記録されるデータを演算回路部6のa入力端子に出力させ、レジスタR2に記録されるデータを演算回路部6のb入力端子に出力させ、レジスタR3に記録されるデータを演算回路部6のc入力端子に出力させる処理を実行する。この処理において、レジスタR6に記録されるデータは、C(i,j)の初期値であり、レジスタR2に記録されるデータは、k軸方向に配設された全てのプロセッシングエレメントPEにおいて積和演算された演算結果(第一周期目のn回の積和演算処理による演算結果)に基づいて、i軸方向に配設された全てのプロセッシングエレメントPEで積和演算された演算結果(第二周期目のn回の積和演算処理による演算結果)であり、レジスタR3に記録されるデータは、初期値の0である。

【0091】
各プロセッシングエレメントPEの演算回路部6では、データaとして入力されたレジスタR6のデータと、データbとして入力されたレジスタR2のデータと、データcとして入力されたレジスタR3のデータとを用いて、積和演算(d=a×b+cの演算)を行う。

【0092】
次いで各プロセッシングエレメントPEの制御回路部8は、出力スイッチ部7を制御して、演算結果dとデータbとを取得して、演算結果dを-j軸方向に隣接するプロセッシングエレメントPEのj入力端子に出力し、また、データb(詳細には、レジスタR2に記録されていたデータ)を-i軸方向に隣接するプロセッシングエレメントPEのi入力端子に出力する。

【0093】
そして、各プロセッシングエレメントPEの制御回路部8は、入力スイッチ部4を制御して、隣接するプロセッシングエレメントPEよりj入力端子を介して演算結果dを取得し、i入力端子を介してデータb(レジスタR2のデータ)を取得して、演算結果dをレジスタR3に記録させるとともに、データb(レジスタR2のデータ)をレジスタR2に記録する。

【0094】
このようにして、各プロセッシングエレメントPEの制御回路部8は、演算結果dおよびデータbを隣接したプロセッシングエレメントPEに対して出力する処理を、各軸方向に配設されるプロセッシングエレメントPEの配置個数に対応する回数、つまりn回(実施の形態1では2回)だけ繰り返し実行して、j入力端子およびj出力端子の接続によりトーラス状に接続された経路と、i入力端子およびi出力端子の接続によりトーラス状に接続された経路とに沿って、演算処理結果および所定データを一巡させる。この一巡の処理が第三周期目のn回の積和演算処理に該当する。

【0095】
このn回の処理の繰り返しにより、各プロセッシングエレメントPEのレジスタR3には、k軸方向に配設された全てのプロセッシングエレメントPEにおいて積和演算された演算結果(第一周期目のn回の積和演算処理による演算結果)に基づいて積和演算されたi軸方向に配設される全てのプロセッシングエレメントPEの積和演算結果(第二周期目のn回の積和演算処理による演算結果)を用いて、j軸方向に配設された全てのプロセッシングエレメントPEで演算処理した演算結果(第三周期目のn回の積和演算処理による演算結果)が記録され、レジスタR2には、k軸方向に配設された全てのプロセッシングエレメントPEにおいて積和演算された演算結果(第一周期目のn回の積和演算処理による演算結果)に基づいて、i軸方向に配設された全てのプロセッシングエレメントPEにおいて積和演算された演算結果(第二周期目のn回の積和演算処理による演算結果)が記録されることになる。実施の形態1では、n=2であるため、2回だけ上述の処理が行われる。図5および図6に示した「4」および「5」の処理ステップは、上述したこの2回の処理に該当する処理内容を示している。

【0096】
このようにして実施の形態1に係るアレイプロセッサ1では、隣接するプロセッシングエレメントPEに対して、演算結果および積和演算に用いる所定データを順次出力してそれぞれのプロセッシングエレメントPEにおいて積和演算処理を行い、この隣接するプロセッシングエレメントPEへの演算結果の出力処理を、順次k軸方向、i軸方向、j軸方向へと出力方向を変えて処理を進めることにより、各演算回路部6における積和演算結果をレジスタR3に記録させることができる。従って、従来のアレイプロセッサ1のように、計算途中でデータや係数データの入力順番を調整するための専用回路を設ける必要がなく、回路構成の簡素化を図ることが可能となる。また、演算結果を隣接するプロセッシングエレメントPEに順次出力することによって三次元逆離散コサイン変換処理(三次元逆直交変換処理)を行うことが可能であるため、各次元の計算途中においてプロセッシングエレメントPEの内部に蓄えられるデータおよび係数行列要素を、従来のように複雑な配線構造を用いて何度も交換し合う必要がなく、処理の迅速化および簡素化を図ることが可能となる。

【0097】
このように、実施の形態1に係るアレイプロセッサ1を用いることにより、従来の構成において必須とされていた計算途中におけるデータ同士の入替作業を行うことがなくなる。また、複数のプロセッシングエレメントを接続させて演算結果処理を順次行うことにより、三次元逆離散コサイン変換処理(三次元逆離散直交変換処理)を迅速に実行することができ、さらに回路構成の複雑化を抑制することが可能となる。

【0098】
[実施の形態2]
次に、実施の形態2に係るアレイプロセッサについて説明を行う。実施の形態2に係るアレイプロセッサ1は、図1に示した実施の形態1に係るアレイプロセッサ1を構成するプロセッシングエレメントPEの構成状態(各プロセッシングエレメントPEの接続状態・配置状態)と同様の構成状態であるが、アレイプロセッサを構成するプロセッシングエレメントPEの内部構造が異なっている。

【0099】
図7は、実施の形態2に係るプロセッシングエレメントPEの概略構成を模式的に示した図である。実施の形態2に係るプロセッシングエレメントPEは、実施の形態1に係るプロセッシングエレメントPE(図2参照)と比較して、セレクタ部15から演算回路部16のa入力端子に対して出力されるデータが、演算回路部16のa入力端子だけでなく出力スイッチ部17にも出力することができるように構成される点で相違する。このため、実施の形態2に係るプロセッシングエレメントPEでは、実施の形態1に係るプロセッシングエレメントPEに比べて、出力スイッチ部17へと延設される出力端子の端子数が1本多いという特徴を有している。

【0100】
また、実施の形態2に係るアレイプロセッサ1では、追加されたa入力端子からの入出力信号に応じて出力スイッチ部17や他の要素を制御するために、制御回路部18が設けられている。なお、出力スイッチ部17と制御回路部18以外の各要素、すなわち入力スイッチ部14,セレクタ部15,演算回路部16およびレジスタR0~R6は、実施の形態1に係るプロセッシングエレメントPEと同一構成である。

【0101】
本構成のアレイプロセッサを用いて三次元離散コサイン変換処理(3D-DCT処理)を行う方法を説明する。

【0102】
まず、各プロセッシングエレメントPE内のレジスタR4~R6には、式3~式8に基づいて求められた値が初期値として設定される。なお、これら値は定数であり、全ての演算が終了するまで変更されることはない。また、レジスタR1~R3には、初期値として0が記録される。さらに、レジスタR0には、三次元離散コサイン変換処理(3D-DCT処理)を行う三次元の入力データ、具体的には前述した式(1)のX(m,j,k)の値が記録されている。ここで、mは、m=(-i-j+k)mod_nで計算される値であり、mod_nはnのモジュロ演算を表している。なお、mは、(-i-j+k)をnで割った余りであり、nは、三次元の入力データn×n×nのサイズ、すなわち、アレイプロセッサ1のサイズを示している。実施の形態2に係るプロセッシングエレメントPEでは、図1に示すようにn=2である。

【0103】
さらに、図7に示すように、レジスタR0~R3には、入力スイッチ部14を介してデータが案内される場合があり、この場合には各レジスタR0~R3に新たなデータが上書き保存されてしまう。このため、後述するように、レジスタR0~R3は、演算処理に応じて記録されるデータが変更される可能性があり、演算処理の処理経過に応じて演算結果、あるいは、演算に用いられる設定値が順次変更される。そして、最終的には、アレイプロセッサ1によって演算された三次元離散コサイン変換処理(3D-DCT処理)の演算結果が、レジスタR3に記録されることになる。

【0104】
入力スイッチ部14は、制御回路部18の指示に応じて、3つの入力端子(i入力端子、j入力端子、k入力端子)を切り替えることにより、3つの入力端子を介して隣接するプロセッシングエレメントPEより入力されたデータを、レジスタR0~R3のいずれかに案内して記録させる役割を有している。実際に入力端子を介して入力されるデータは、3つの入力端子(i入力端子、j入力端子、k入力端子)のうちのいずれか2つの入力端子を介して入力される。制御回路部18では、入力された情報を入力端子の種類に応じて判断し、入力スイッチ部14を制御して、入力されたデータを、それぞれ該当するレジスタ(レジスタR0~R3のいずれか)に案内して記録させる。

【0105】
セレクタ部15は、レジスタR0~R6のいずれか3つのレジスタより演算回路部16の演算処理に用いられるデータを取得して演算回路部16に出力する。セレクタ部15では、取得した3つのデータを、演算回路部16の演算内容に応じて設けられる3つの入力端子(a入力端子,b入力端子およびc入力端子)に出力する。なお、a入力端子およびb入力端子に対して出力されたデータは、a入力端子およびb入力端子を介して演算回路部16に入力されると共に、そのまま出力スイッチ部17へと出力される。セレクタ部15において、いずれのレジスタ(レジスタR0~R6のうち3つのレジスタ)からデータを取得するか、および、取得したデータをa入力端子,b入力端子およびc入力端子のいずれに出力するかという判断処理は、制御回路部18の指示に応じて行われる。

【0106】
演算回路部16では、a入力端子より取得したデータaと、b入力端子より取得したデータbと、c入力端子より取得したデータcとに基づいて、積和演算を行う。積和演算は、演算結果をdとすると、d=a×b+cによって求められる。演算結果dは、演算回路部16の出力端子20を介して出力スイッチ部17に出力される。

【0107】
出力スイッチ部17は、セレクタ部15より演算回路部16のa入力端子に対して出力され、さらに、出力端子21を介して出力スイッチ部17へ出力されたデータaと、演算回路部16のb入力端子に対して出力され、さらに、出力端子22を介して出力スイッチ部17へ出力されたデータbと、演算回路部16の出力端子20を介して出力スイッチ部17へ出力された演算結果dとを取得し、制御回路部18の指示に応じて、3つの出力端子(i出力端子、j出力端子、k出力端子)のいずれか2つの端子より、データaまたはデータbのいずれか一方と、演算結果dとを出力させる役割を有している。このため、実際に出力端子を介して出力されるデータは、3つの出力端子(i出力端子、j出力端子、k出力端子)のうちいずれか2つの出力端子のみになる。制御回路部18は、入力されたデータを判断し、出力スイッチ部17を制御することによって、データaまたはデータbのいずれか一方と、演算結果dとを、それぞれ該当する出力端子(i出力端子、j出力端子、k出力端子のいずれか)に出力する。

【0108】
制御回路部18は、上述した入力スイッチ部14、セレクタ部15、出力スイッチ部17の操作制御を行う役割を有している。制御回路部18は、入力スイッチ部14,セレクタ部15および出力スイッチ部17に入力されるデータを、その内容や入力された入力端子の種類に応じて判断し、アレイプロセッサ1の処理内容に応じて入力スイッチ部14、セレクタ部15、出力スイッチ部17の制御を行う。

【0109】
なお、図7には示していないが、各プロセッシングエレメントPEには、レジスタR0に対して三次元離散コサイン変換処理を行うための入力データを入力し、また、レジスタR1~R3に対して初期値0を入力し、さらに、レジスタR4~R6に対して初期値C(i,k),C(k,j),C(i,j)を入力するためのデータ入力手段や、最終的な演算結果が記録されるレジスタR3よりデータを取得するためのデータ取得手段などが設けられている。

【0110】
次に、各プロセッシングエレメントPEの制御回路部18が、入力スイッチ部14,セレクタ部15,および出力スイッチ部17を適宜制御することにより、三次元直交変換の一つである三次元離散コサイン変換処理(3D—DCT処理)を行う過程を説明する。

【0111】
図8は、各プロセッシングエレメントPE(i,j,k)における各レジスタR0~R6の初期値および各処理ステップにおいて記録される内容が利用され、または変更されるレジスタを示した表である。レジスタR0には、X(m,j,k)が設定される。但し、mの値には、m=(-i-j+k)mod_2で求められる値が用いられる。このため、プロセッシングエレメントPE(0,0,0)のレジスタR0にはX(0,0,0)が設定され、プロセッシングエレメントPE(0,1,0)のレジスタR0にはX(1,1,0)が設定される。また、プロセッシングエレメントPE(1,0,0)のレジスタR0にはX(1,0,0)が設定され、プロセッシングエレメントPE(1,1,0)のレジスタR0にはX(0,1,0)が設定される。さらに、プロセッシングエレメントPE(0,0,1)のレジスタR0にはX(1,0,1)が設定され、プロセッシングエレメントPE(0,1,1)のレジスタR0にはX(0,1,1)が設定される。また、プロセッシングエレメントPE(1,0,1)のレジスタR0にはX(0,0,1)が設定され、プロセッシングエレメントPE(1,1,1)のレジスタR0にはX(1,1,1)が設定される。

【0112】
その他の各レジスタの初期値は、実施の形態1において説明した値と同様とする。図9は、図8に示したレジスタR0~R6の内容が変更される状態を、処理ステップに応じて矢印で示したものである。なお、図9に示した破線による矢印は、後述するデータaまたはデータbのいずれか一方であって、後述する処理において用いられるデータの出力状態を示している。また、実線による矢印は、後述する演算結果dに該当するデータの出力状態を示している。

【0113】
上述したレジスタR0~R6の初期値の設定が行われた後、各プロセッシングエレメントPEの制御回路部18は、セレクタ部15を制御して、レジスタR4に記録されるデータを演算回路部16のa入力端子に出力させ、レジスタR0に記録されるデータを演算回路部16のb入力端子に出力させ、レジスタR1に記録されるデータを演算回路部16のc入力端子に出力させる処理を実行する。この処理において、図8および図9に示すように、レジスタR4に記録されるデータは、C(i,k)の初期値であり、レジスタR0に記録されるデータは、三次元離散コサイン変換処理を行うための入力データ:X(m,j,k)、ただし、m=(-i-j+k)mod_2であり、レジスタR1に記録されるデータは、初期値の0である。

【0114】
各プロセッシングエレメントPEの演算回路部16では、データaとして入力されたレジスタR4のデータと、データbとして入力されたレジスタR0のデータと、データcとして入力されたレジスタR1のデータとを用いて、積和演算(d=a×b+cの演算)を実行する。

【0115】
次いで各プロセッシングエレメントPEの制御回路部18は、出力スイッチ部17を制御して演算結果d、データaおよびデータbとを取得し、演算結果dをk軸方向に隣接するプロセッシングエレメントPEのk入力端子に出力し、また、データb(詳細には、レジスタR0に記録されていたデータ)を-i軸方向に隣接するプロセッシングエレメントPEのi入力端子に出力する。なお、取得されたデータaに関しては、隣接するプロセッシングエレメントPEに対して出力されない。

【0116】
そして、各プロセッシングエレメントPEの制御回路部18は、入力スイッチ部14を制御して、隣接するプロセッシングエレメントPEよりk入力端子を介して演算結果dを取得し、i入力端子を介してデータb(レジスタR0のデータ)とを取得して、演算結果dをレジスタR1に記録させるとともに、データb(レジスタR0のデータ)をレジスタR0に記録する。

【0117】
このようにして、各プロセッシングエレメントPEの制御回路部18は、演算結果dおよびデータbを隣接したプロセッシングエレメントPEに対して出力する処理を、各軸方向に配設されるプロセッシングエレメントPEの配置個数に対応する回数、つまりn回(実施の形態2では2回)だけ繰り返し実行して、i入力端子およびi出力端子の接続によりトーラス状に接続された経路と、k入力端子およびk出力端子の接続によりトーラス状に接続された経路とに沿って、演算処理結果および所定のデータを一巡させる。この一巡の処理が第一周期目のn回の積和演算処理に該当する。なお、第一周期目のn回の積和演算処理において、出力端子21を介して出力スイッチ部17に入力されたデータaは、隣接するプロセッシングエレメントPEに対して出力されることはない。

【0118】
このn回の処理の繰り返しにより、各プロセッシングエレメントPEのレジスタR1には、k軸方向に配設された全てのプロセッシングエレメントPEにおいて積和演算された演算結果が記録されることになる。実施の形態2では、n=2であるため、2回だけ上述の処理が行われる。図8および図9に示した「0」および「1」の処理ステップは、上述したこの2回の処理に該当する処理内容を示している。

【0119】
続いて、各プロセッシングエレメントPEの制御回路部18は、セレクタ部15を制御して、レジスタR1に記録されるデータを演算回路部16のa入力端子に出力させ、レジスタR5に記録されるデータを演算回路部16のb入力端子に出力させ、レジスタR2に記録されるデータを演算回路部16のc入力端子に出力させる処理を実行する。この処理において、レジスタR5に記録されるデータは、C(k,j)の初期値であり、レジスタR1に記録されるデータは、k軸方向に配設された全てのプロセッシングエレメントPEにおいて積和演算された演算結果であり、レジスタR2に記録されるデータは、初期値の0である。

【0120】
各プロセッシングエレメントPEの演算回路部16では、データaとして入力されたレジスタR1のデータと、データbとして入力されたレジスタR5のデータと、データcとして入力されたレジスタR2のデータとを用いて、積和演算(d=a×b+cの演算)を実行する。

【0121】
次いで各プロセッシングエレメントPEの制御回路部18は、出力スイッチ部17を制御して、演算結果d、データaおよびデータbを取得し、演算結果dを-j軸方向に隣接するプロセッシングエレメントPEのj入力端子に出力し、また、データa(詳細には、レジスタR1に記録されていたデータ)をk軸方向に隣接するプロセッシングエレメントPEのk入力端子に出力する。なお、取得されたデータbに関しては、隣接するプロセッシングエレメントPEに対して出力されない。

【0122】
そして、各プロセッシングエレメントPEの制御回路部18は、入力スイッチ部14を制御して、隣接するプロセッシングエレメントPEよりj入力端子を介して演算結果dを取得し、k入力端子を介してデータa(レジスタR1のデータ)を取得して、演算結果dをレジスタR2に記録させるとともに、データa(レジスタR1のデータ)をレジスタR1に記録する。

【0123】
このようにして、各プロセッシングエレメントPEの制御回路部18は、演算結果dおよびデータaを隣接したプロセッシングエレメントPEに対して出力する処理を、各軸方向に配設されるプロセッシングエレメントPEの配置個数に対応する回数、つまりn回(実施の形態2では2回)だけ繰り返し実行して、j入力端子およびj出力端子の接続によりトーラス状に接続された経路と、k入力端子およびk出力端子の接続によりトーラス状に接続された経路とに沿って、演算処理結果および所定データを一巡させる。この一巡の処理が第二周期目のn回の積和演算処理に該当する。なお、第二周期目のn回の積和演算処理において、出力端子22を介して出力スイッチ部17に入力されたデータbは、隣接するプロセッシングエレメントPEに対して出力されることはない。

【0124】
このn回の処理の繰り返しにより、各プロセッシングエレメントPEのレジスタR2には、k軸方向に配設された全てのプロセッシングエレメントPEにおいて積和演算された演算結果(第一周期目のn回の積和演算処理による演算結果)であるレジスタR1に基づいて、j軸方向に配設された全てのプロセッシングエレメントPEで積和演算された演算結果(第二周期目のn回の積和演算処理による演算結果)が記録され、レジスタR1には、k軸方向に配設された全てのプロセッシングエレメントにおいて積和演算された演算結果が記録されることになる。実施の形態2では、n=2であるため、2回だけ上述の処理が行われる。図8および図9に示した「2」および「3」の処理ステップは、上述したこの2回の処理に該当する処理内容を示している。

【0125】
続いて、各プロセッシングエレメントPEの制御回路部18は、セレクタ部15を制御して、レジスタR2に記録されるデータを演算回路部16のa入力端子に出力させ、レジスタR6に記録されるデータを演算回路部16のb入力端子に出力させ、レジスタR3に記録されるデータを演算回路部16のc入力端子に出力させる処理を実行する。この処理において、レジスタR6に記録されるデータは、C(i,j)の初期値であり、レジスタR2に記録されるデータは、k軸方向に配設された全てのプロセッシングエレメントPEにおいて積和演算された演算結果(第一周期目のn回の積和演算処理による演算結果)に基づいて、j軸方向に配設された全てのプロセッシングエレメントPEで積和演算された演算結果(第二周期目のn回の積和演算処理による演算結果)であり、レジスタR3に記録されるデータは、初期値の0である。

【0126】
各プロセッシングエレメントPEの演算回路部16では、データaとして入力されたレジスタR2のデータと、データbとして入力されたレジスタR6のデータと、データcとして入力されたレジスタR3のデータとを用いて、積和演算(d=a×b+cの演算)を行う。

【0127】
次いで各プロセッシングエレメントPEの制御回路部18は、出力スイッチ部17を制御して、演算結果d、データaおよびデータbとを取得して、演算結果dを-i軸方向に隣接するプロセッシングエレメントPEのi入力端子に出力し、また、データa(詳細には、レジスタR2に記録されていたデータ)を-j軸方向に隣接するプロセッシングエレメントPEのj入力端子に出力する。なお、取得されたデータbに関しては、隣接するプロセッシングエレメントPEに対して出力されない。

【0128】
そして、各プロセッシングエレメントPEの制御回路部18は、入力スイッチ部14を制御して、隣接するプロセッシングエレメントPEよりi入力端子を介して演算結果dを取得し、j入力端子を介してデータa(レジスタR2のデータ)を取得して、演算結果dをレジスタR3に記録させるとともに、データa(レジスタR2のデータ)をレジスタR2に記録する。

【0129】
このようにして、各プロセッシングエレメントPEの制御回路部18は、演算結果dおよびデータaを隣接したプロセッシングエレメントPEに対して出力する処理を、各軸方向に配設されるプロセッシングエレメントPEの配置個数に対応する回数、つまりn回(実施の形態2では2回)だけ繰り返し実行して、i入力端子およびi出力端子の接続によりトーラス状に接続された経路と、j入力端子およびj出力端子の接続によりトーラス状に接続された経路とに沿って、演算処理結果および所定データを一巡させる。この一巡の処理が第三周期目のn回の積和演算処理に該当する。なお、第三周期目のn回の積和演算処理において、出力端子22を介して出力スイッチ部17に入力されたデータbは、隣接するプロセッシングエレメントPEに対して出力されることはない。

【0130】
このn回の処理の繰り返しにより、各プロセッシングエレメントPEのレジスタR3には、k軸方向に配設された全てのプロセッシングエレメントPEにおいて積和演算された演算結果(第一周期目のn回の積和演算処理による演算結果)に基づいて積和演算されたj軸方向に配設される全てのプロセッシングエレメントPEの積和演算結果(第二周期目のn回の積和演算処理による演算結果)を用いて、i軸方向に配設された全てのプロセッシングエレメントPEで演算処理した演算結果(第三周期目のn回の積和演算処理による演算結果)が記録される。これは、すなわち、三次元離散コサイン変換の計算結果である。また、レジスタR2には、k軸方向に配設された全てのプロセッシングエレメントPEにおいて積和演算された演算結果(第一周期目のn回の積和演算処理による演算結果)に基づいて、j軸方向に配設された全てのプロセッシングエレメントPEで積和演算された演算結果(第二周期目のn回の積和演算処理による演算結果)が記録されることになる。これは、すなわち、i軸方向およびj軸方向で構成される二次元の離散コサイン変換の計算結果である。さらに、レジスタR1には、i軸方向の一次元の離散コサイン変換の計算結果が記録されることになる。実施の形態2では、n=2であるため、2回だけ上述の処理が行われる。図8および図9に示した「4」および「5」の処理ステップは、上述したこの2回の処理に該当する処理内容を示している。

【0131】
このようにして実施の形態2に係るアレイプロセッサ1では、隣接するプロセッシングエレメントPEに対して、演算結果および積和演算に用いる所定データを順次出力してそれぞれのプロセッシングエレメントPEにおいて積和演算処理を行い、この隣接するプロセッシングエレメントPEへの演算結果の出力処理を、順次k軸方向、j軸方向、i軸方向へと出力方向を変えて処理を進めることにより、各演算回路部16における積和演算結果をレジスタR3に記録させることができる。従って、従来のアレイプロセッサのように、計算途中でデータや係数データの入力順番を調整するための専用回路を設ける必要がなく、回路構成の簡素化を図ることが可能となる。また、演算結果を隣接するプロセッシングエレメントPEに順次出力することによって三次元離散コサイン変換処理(三次元直交変換処理)を行うことが可能であるため、各次元の計算途中においてプロセッシングエレメントPEの内部に蓄えられるデータおよび係数行列要素を、従来のように複雑な配線構造を用いて何度も交換し合う必要がなく、処理の迅速化および簡素化を図ることが可能となる。

【0132】
このように、実施の形態2に係るアレイプロセッサ1を用いることにより、従来の構成において必須とされていた計算途中におけるデータ同士の入替作業を行うことなくなる。また、複数のプロセッシングエレメントPEを接続させて演算結果処理を順次行うことにより、三次元離散コサイン変換処理(三次元直交変換処理)を迅速に実行することができ、さらに回路構成の複雑化を抑制することが可能となる。

【0133】
次に、上述したアレイプロセッサ1を用いて、三次元逆離散コサイン変換(3D-IDCT)を計算する方法を説明する。なお、図10は、各プロセッシングエレメントPE(i,j,k)における各レジスタR0~R6の初期値および各処理ステップにおいて記録されるレジスタを示した表であり、図11は、図10に示したレジスタの内容が変更される状態を、処理ステップに応じて矢印で示したものである。なお、図11に示した破線による矢印は、演算処理に用いられるデータaまたはデータbのいずれか一方であって、後述する処理において用いられるデータの出力状態を示している。また、実線による矢印は、演算結果dに該当するデータの出力状態を示している。

【0134】
まず始めに、各プロセッシングエレメントPE内のレジスタR0~R6の初期値を設定する。ここで、レジスタR4、R5、R6には、式9~式14により求められる値が初期値として設定される。こららは、定数であり、演算終了まで変更されることはない。

【0135】
また、レジスタR1~R3には、初期値として0が記録され、レジスタR0には、三次元逆離散コサイン変換処理(3D-IDCT処理)を行う三次元の入力データ、具体的には上述した式(2)のY(i,m,k)の値が記録されている。ここで、mは、m=(-i-j+k)mod_nで計算される値であり、mod_nはnのモジュロ演算を表す。すなわち,mは、(-i-j+k)をnで割った余りである。また、nは、三次元の入力データn×n×nのサイズ、すなわち、アレイプロセッサ1のサイズを示している。実施の形態2に係るプロセッシングエレメントPEでは、図1に示すようにn=2である。

【0136】
従って、プロセッシングエレメントPE(0,0,0)のレジスタR0にはY(0,0,0)が設定され、プロセッシングエレメントPE(0,1,0)のレジスタR0にはY(0,1,0)が設定される。また、プロセッシングエレメントPE(1,0,0)のレジスタR0にはY(1,1,0)が設定され、プロセッシングエレメントPE(1,1,0)のレジスタR0にはY(1,0,0)が設定される。さらに、プロセッシングエレメントPE(0,0,1)のレジスタR0にはY(0,1,1)が設定され、プロセッシングエレメントPE(0,1,1)のレジスタR0にはY(0,0,1)が設定される。また、プロセッシングエレメントPE(1,0,1)のレジスタR0にはY(1,0,1)が設定され、プロセッシングエレメントPE(1,1,1)のレジスタR0にはY(1,1,1)が設定される。

【0137】
このレジスタR0~R6の初期値の設定が行われた後、各プロセッシングエレメントPEの制御回路部18は、セレクタ部15を制御して、レジスタR0に記録されるデータを演算回路部16のa入力端子に出力させ、レジスタR4に記録されるデータを演算回路部16のb入力端子に出力させ、レジスタR1に記録されるデータを演算回路部16のc入力端子に出力させる処理を実行する。この処理において、レジスタR4に記録されるデータは、C(k,j)の初期値であり、レジスタR0に記録されるデータは、三次元逆離散コサイン変換処理(3D-IDCT処理)を行うための入力データY(i,m,k)、ただしm=(-i-j+k)mod_n、であり、レジスタR1に記録されるデータは、初期値の0である。

【0138】
各プロセッシングエレメントPEの演算回路部16では、データaとして入力されたレジスタR0のデータと、データbとして入力されたレジスタR4のデータと、データcとして入力されたレジスタR1のデータとを用いて、積和演算(d=a×b+cの演算)を行う。

【0139】
次いで各プロセッシングエレメントPEの制御回路部18は、出力スイッチ部17を制御して、演算結果d、データaおよびデータbを取得し、演算結果dをk軸方向に隣接するプロセッシングエレメントPEのk入力端子に出力し、また、データa(詳細には、レジスタR0に記録されていたデータ)を-j軸方向に隣接するプロセッシングエレメントPEのj入力端子に出力する。なお、取得されたデータbに関しては、隣接するプロセッシングエレメントPEに対して出力されない。

【0140】
そして、各プロセッシングエレメントPEの制御回路部18は、入力スイッチ部14を制御して、隣接するプロセッシングエレメントPEよりk入力端子を介して演算結果dを取得し、j入力端子を介してデータa(レジスタR0のデータ)を取得して、演算結果dをレジスタR1に記録させるとともに、データa(レジスタR0のデータ)をレジスタR0に記録する。

【0141】
このようにして、各プロセッシングエレメントPEの制御回路部18は、演算結果dおよびデータaを隣接したプロセッシングエレメントPEに対して出力する処理を、各軸方向に配設されるプロセッシングエレメントPEの配置個数に対応する回数、つまりn回(実施の形態2では2回)だけ繰り返し実行して、k入力端子およびk出力端子の接続によりトーラス状に接続された経路と、j入力端子およびj出力端子の接続によりトーラス状に接続された経路とに沿って、演算処理結果および所定データを一巡させる。この一巡の処理が第一周期目のn回の積和演算処理に該当する。なお、第一周期目のn回の積和演算処理において、出力端子22を介して出力スイッチ部17に入力されたデータbは、隣接するプロセッシングエレメントPEに対して出力されることはない。

【0142】
このn回の処理の繰り返しにより、各プロセッシングエレメントPEのレジスタR1には、k軸方向に配設された全てのプロセッシングエレメントPEにおいて積和演算された演算結果(第一周期目のn回の積和演算処理による演算結果)が記録されることになる。実施の形態2では、n=2であるため、2回だけ上述の処理が行われる。図10および図11に示した「0」および「1」の処理ステップは、上述したこの2回の処理に該当する処理内容を示している。

【0143】
続いて、各プロセッシングエレメントPEの制御回路部18は、セレクタ部15を制御して、レジスタR5に記録されるデータを演算回路部16のa入力端子に出力させ、レジスタR1に記録されるデータを演算回路部16のb入力端子に出力させ、レジスタR2に記録されるデータを演算回路部16のc入力端子に出力させる処理を実行する。この処理において、レジスタR5に記録されるデータは、C(i,k)の初期値であり、レジスタR1に記録されるデータは、k軸方向に配設された全てのプロセッシングエレメントPEにおいて積和演算された演算結果であり、レジスタR2に記録されるデータは、初期値の0である。

【0144】
各プロセッシングエレメントPEの演算回路部16では、データaとして入力されたレジスタR5のデータと、データbとして入力されたレジスタR1のデータと、データcとして入力されたレジスタR2のデータとを用いて、積和演算(d=a×b+cの演算)を実行する。

【0145】
次いで各プロセッシングエレメントPEの制御回路部18は、出力スイッチ部17を制御して、演算結果d、データaおよびデータbを取得し、演算結果dを-i軸方向に隣接するプロセッシングエレメントPEのi入力端子に出力し、また、データb(詳細には、レジスタR1に記録されていたデータ)をk軸方向に隣接するプロセッシングエレメントPEのk入力端子に出力する。なお、取得されたデータaに関しては、隣接するプロセッシングエレメントPEに対して出力されない。

【0146】
そして、各プロセッシングエレメントPEの制御回路部18は、入力スイッチ部14を制御して、隣接するプロセッシングエレメントPEよりi入力端子を介して演算結果dを取得し、k入力端子を介してデータb(レジスタR1のデータ)を取得して、演算結果dをレジスタR2に記録させるとともに、データb(レジスタR1のデータ)をレジスタR1に記録する。

【0147】
このようにして、各プロセッシングエレメントPEの制御回路部18は、演算結果dおよびデータbを隣接したプロセッシングエレメントPEに対して出力する処理を、各軸方向に配設されるプロセッシングエレメントPEの配置個数に対応する回数、つまりn回(実施の形態2では2回)だけ繰り返し実行して、i入力端子およびi出力端子の接続によりトーラス状に接続された経路と、k入力端子およびk出力端子の接続によりトーラス状に接続された経路とに沿って、演算処理結果および所定データを一巡させる。この一巡の処理が第二周期目のn回の積和演算処理に該当する。なお、第二周期目のn回の積和演算処理において、出力端子21を介して出力スイッチ部17に入力されたデータaは、隣接するプロセッシングエレメントPEに対して出力されることはない。

【0148】
このn回の処理の繰り返しにより、各プロセッシングエレメントPEのレジスタR2には、k軸方向に配設された全てのプロセッシングエレメントPEにおいて積和演算された演算結果(第一周期目のn回の積和演算処理による演算結果)であるレジスタR1に基づいて、i軸方向に配設された全てのプロセッシングエレメントPEで積和演算された演算結果(第二周期目のn回の積和演算処理による演算結果)が記録され、レジスタR1には、k軸方向に配設された全てのプロセッシングエレメントPEにおいて積和演算された演算結果が記録されることになる。図10および図11に示した「2」および「3」の処理ステップは、上述したこの2回の処理に該当する処理内容を示している。

【0149】
続いて、各プロセッシングエレメントPEの制御回路部18は、セレクタ部15を制御して、レジスタR6に記録されるデータを演算回路部16のa入力端子に出力させ、レジスタR2に記録されるデータを演算回路部16のb入力端子に出力させ、レジスタR3に記録されるデータを演算回路部16のc入力端子に出力させる処理を実行する。この処理において、レジスタR6に記録されるデータは、C(i,j)の初期値であり、レジスタR2に記録されるデータは、k軸方向に配設された全てのプロセッシングエレメントPEにおいて積和演算された演算結果(第一周期目のn回の積和演算処理による演算結果)に基づいて、i軸方向に配設された全てのプロセッシングエレメントPEで積和演算された演算結果(第二周期目のn回の積和演算処理による演算結果)であり、レジスタR3に記録されるデータは、初期値の0である。

【0150】
各プロセッシングエレメントPEの演算回路部16では、データaとして入力されたレジスタR6のデータと、データbとして入力されたレジスタR2のデータと、データcとして入力されたレジスタR3のデータとを用いて、積和演算(d=a×b+cの演算)を行う。

【0151】
次いで各プロセッシングエレメントPEの制御回路部18は、出力スイッチ部17を制御して、演算結果d、データaおよびデータbとを取得して、演算結果dを-j軸方向に隣接するプロセッシングエレメントPEのj入力端子に出力し、また、データb(詳細には、レジスタR2に記録されていたデータ)を-i軸方向に隣接するプロセッシングエレメントPEのi入力端子に出力する。なお、取得されたデータaに関しては、隣接するプロセッシングエレメントPEに対して出力されない。

【0152】
そして、各プロセッシングエレメントPEの制御回路部18は、入力スイッチ部14を制御して、隣接するプロセッシングエレメントPEよりj入力端子を介して演算結果dを取得し、i入力端子を介してデータb(レジスタR2のデータ)を取得して、演算結果dをレジスタR3に記録させるとともに、データb(レジスタR2のデータ)をレジスタR2に記録する。

【0153】
このようにして、各プロセッシングエレメントPEの制御回路部18は、演算結果dおよびデータbを隣接したプロセッシングエレメントPEに対して出力する処理を、各軸方向に配設されるプロセッシングエレメントPEの配置個数に対応する回数、つまりn回(実施の形態2では2回)だけ繰り返し実行して、j入力端子およびj出力端子の接続によりトーラス状に接続された経路と、i入力端子およびi出力端子の接続によりトーラス状に接続された経路とに沿って、演算処理結果および所定データを一巡させる。この一巡の処理が第三周期目のn回の積和演算処理に該当する。なお、第三周期目のn回の積和演算処理において、出力端子21を介して出力スイッチ部17に入力されたデータaは、隣接するプロセッシングエレメントPEに対して出力されることはない。

【0154】
このn回の処理の繰り返しにより、各プロセッシングエレメントPEのレジスタR3には、k軸方向に配設された全てのプロセッシングエレメントPEにおいて積和演算された演算結果(第一周期目のn回の積和演算処理による演算結果)に基づいて積和演算されたi軸方向に配設される全てのプロセッシングエレメントPEの積和演算結果(第二周期目のn回の積和演算処理による演算結果)を用いて、j軸方向に配設された全てのプロセッシングエレメントPEで演算処理した演算結果(第三周期目のn回の積和演算処理による演算結果)が記録される。これは、すなわち三次元逆離散コサイン変換処理(3D-IDCT処理)の計算結果である。また、レジスタR2には、k軸方向に配設された全てのプロセッシングエレメントPEにおいて積和演算された演算結果(第一周期目のn回の積和演算処理による演算結果)に基づいて、i軸方向に配設された全てのプロセッシングエレメントPEにおいて積和演算された演算結果(第二周期目のn回の積和演算処理による演算結果)が記録されることになる。これは、すなわち、i軸方向およびk軸方向で構成される二次元の離散逆コサイン変換の計算結果である。さらに、レジスタR1には、i軸方向の一次元の離散逆コサイン変換の計算結果が記録されることになる。実施の形態2では、n=2であるため、2回だけ上述の処理が行われる。図10および図11に示した「4」および「5」の処理ステップは、上述したこの2回の処理に該当する処理内容を示している。

【0155】
このようにして実施の形態2に係るアレイプロセッサ1では、隣接するプロセッシングエレメントPEに対して、演算結果および積和演算に用いる所定データを順次出力してそれぞれのプロセッシングエレメントPEにおいて積和演算処理を行い、この隣接するプロセッシングエレメントPEへの演算結果の出力処理を、順次k軸方向、i軸方向、j軸方向へと出力方向を変えて処理を進めることにより、各演算回路部16における積和演算結果をレジスタR3に記録させることができる。従って、従来のアレイプロセッサ1のように、計算途中でデータや係数データの入力順番を調整するための専用回路を設ける必要がなく、回路構成の簡素化を図ることが可能となる。また、演算結果を隣接するプロセッシングエレメントPEに順次出力することによって三次元逆離散コサイン変換処理(三次元逆直交変換処理)を行うことが可能であるため、各次元の計算途中においてプロセッシングエレメントPEの内部に蓄えられるデータおよび係数行列要素を、従来のように複雑な配線構造を用いて何度も交換し合う必要がなく、処理の迅速化および簡素化を図ることが可能となる。

【0156】
このように、実施の形態2に係るアレイプロセッサ1を用いることにより、従来の構成において必須とされていた計算途中におけるデータ同士の入替作業を行うことなくなる。また、複数のプロセッシングエレメントを接続させて演算結果処理を順次行うことにより、三次元逆離散コサイン変換処理(三次元逆直交変換処理)を迅速に実行することができ、さらに回路構成の複雑化を抑制することが可能となる。

【0157】
以上、本発明に係るアレイプロセッサについて、図面を用いて詳細に説明を行ったが、本発明に係るアレイプロセッサは、上述した構成に限定されるものではなく、当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例または修正例に想到しうることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。

【0158】
例えば、実施の形態1および実施の形態2に係るアレイプロセッサ1では、プロセッシングエレメントPEを、i軸方向,j軸方向,k軸方向のそれぞれに対して2個ずつ、合計8個配設した構成を例として用いて説明を行ったが、本発明に係るアレイプロセッサは、各軸方向に対して2個ずつ配設された構造には限定されず、2以上の個数(例えば、n個)ずつ配設した場合であってもよい。このように複数のプロセッシングエレメントを配設した場合であっても、上述した実施の形態1および実施の形態2に示した方法に従って隣接するプロセッシングエレメントPEに演算結果と所定データを出力させて一巡することにより、三次元直交変換処理および三次元逆直交変換処理に関する演算を行うことが可能となる。

【0159】
また、実施の形態1および実施の形態2に係るアレイプロセッサ1では、説明の便宜上、各プロセッシングエレメントをi軸,j軸,k軸のそれぞれに対応付けた座標位置に配設する構成としたが、現実にプロセッシングエレメントPEを配設する場合には、このように物理的な三次元配設(立体的な配置)により構成する必要はなく、前述したプロセッシングエレメントPEに設けられる3個の入力端子と3個の出力端子とがそれぞれ対応するようにして接続されるものであれば、どのように配設されるものであってもよい。例えば、同一平面状に3つの軸を設定することにより、各プロセッシングエレメントを平面的に配設するものであってもよい。

【0160】
また、実施の形態1および実施の形態2では、三次元直交変換処理の一例である三次元離散コサイン変換と三次元逆離散コサイン変換との演算を行うアレイプロセッサについて説明を行ったが、本発明に係るアレイプロセッサは、上述した三次元離散コサイン変換と三次元逆離散コサイン変換とに関する三次元直交変換処理等だけに用いられるものではなく、C(i,k),C(k,j),C(i,j)で示された初期値(DCT係数)を適切な係数に変更することにより、他の三次元直交変換であるウォルシュ・アダマール変換(WHT)や離散フーリエ変換(DFT)等の演算処理に利用することが可能である。

【0161】
さらに、実施の形態1および実施の形態2に示したアレイプロセッサ1では、物理的な専用の演算回路を用いて演算回路部6,16を構成して演算処理を行う場合について説明を行ったが、このよう物理的な回路を用いるのではなく、制御回路部8,18の演算処理機能を利用することによって演算回路部6,16の演算処理に該当する演算を行う構成とし、演算処理を行うための回路を物理的に設けない構成とするものであってもよい。

【0162】
また、実施の形態1および実施の形態2で示したアレイプロセッサ1を用いる場合において、i軸方向,j軸方向およびk軸方向におけるデータの転送方向や、どの軸方向へ最初にデータを出力するかというデータの処理順番などを自由に設定・変更することが可能である。また各プロセッシングエレメントPEに入力されるデータや初期値(DCT係数)を、各プロセッシングエレメントPE(i,j,k)内におけるレジスタR0からレジスタR6のどこに格納するかを自由に設定・変更することが可能である。このように、データの転送方向や処理順番、さらには、データの格納設定などを変更した場合であっても、実施の形態1および実施の形態2に示した内容と同一の処理結果を得ることが可能であり、また同一の結果を得る方法は、実施の形態1および実施の形態2に示した方法の他、幾通りも考えられる。しかし、これらの変更は、当業者であれば、特許請求の範囲に記載された範疇内において、容易に想到しうることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【符号の説明】
【0163】
1 …アレイプロセッサ
4、14 …入力スイッチ部
5、15 …セレクタ部
6、16 …演算回路部
7、17 …出力スイッチ部
8、18 …制御回路部
10、20 …(演算回路部の)出力端子
21、22 …(セレクト部から出力スイッチ部への)出力端子
PE …プロセッシングエレメント
R0~R6 …レジスタ
図面
【図1】
0
【図2】
1
【図3】
2
【図4】
3
【図5】
4
【図6】
5
【図7】
6
【図8】
7
【図9】
8
【図10】
9
【図11】
10