"N個N:2以上の整数のプロセッサ要素を有し、各前記プロセッサ要素が、容量が単位サイズSであり、該プロセッサ要素と外部メモリとの間で転送されるデータを一時的に格納するバッファを有するSIMDSiNgleINstructioNMultipleDataプロセッサに設けられたメモリコントローラであって、前記外部メモリにおけるN個のアドレスAii=1~Nを設定可能なアドレス記憶部と、第1のパラメータOSVと、第2のパラメータWと、第3のパラメータLとを設定可能なパラメータ記憶部と、前記外部メモリと、前記N個のプロセッサ要素のバッファとの間でデータ転送を行うデータ転送部とを有し、前記データ転送部は、前記データ転送の指示に応じて、第1の処理を前記パラメータ記憶部に記憶された前記第3のパラメータLに合致する回数分繰り返し、前記第1の処理は、第2の処理をすると共に第3の処理を行うことを式1に示すM回繰り返した後に、前記第2の処理をすると共に第4の処理を行う処理であり、前記第2の処理は、前記外部メモリから前記N個のプロセッサ要素のバッファへのデータ転送の際に、1アドレスが1プロセッサ要素に対応するように、前記アドレス記憶部に記憶されている各アドレスから夫々単位サイズS分のデータを読み出して、対応するプロセッサ要素のバッファに格納する処理であり、前記N個のプロセッサ要素のバッファから前記外部メモリへのデータ転送の際に、1アドレスが1プロセッサ要素に対応するように、夫々の前記プロセッサ要素のバッファに格納されたデータを読み出して、前記アドレス記憶部に記憶されているN個のアドレスのうちの、対応するアドレスに書き込む処理であり、前記第3の処理は、前記アドレス記憶部に記憶されている各アドレスAiを式2に従って増分させる処理であり、前記第4の処理は、前記アドレス記憶部に記憶されている各アドレスAiを式3に従って増分させる処理であることを特徴とするメモリコントローラ。M=W/S-11但し,W:パラメータ記憶部に記憶された第2のパラメータS:単位サイズAi=AiS2但し,Ai:i個目のアドレスS:単位サイズAi=AiOSV3但し,Ai:i個目のアドレスOSV:パラメータ記憶部に記憶された第1のパラメータ前記パラメータ記憶部は、第4のパラメータTをさらに設定可能であり、前記第1の処理は、第2の処理をすると共に第3の処理を行うことを式4に示すM1回繰り返した後に、前記第2の処理をすると共に前記第4の処理を行う処理であり、前記第2の処理は、第5の処理をT回繰り返す処理であり、前記第5の処理は、前記外部メモリから前記N個のプロセッサ要素のバッファへのデータ転送の際に、1アドレスが隣接するT個のプロセッサ要素に対応するように、前記アドレス記憶部に記憶されているN個のアドレスのうちのN/T個のアドレスであって、かつ、回毎に異なる前記N/T個のアドレスから夫々単位サイズSのT倍分のデータを読み出して、対応するT個のプロセッサ要素のバッファに夫々格納する処理であり、前記N個のプロセッサ要素のバッファから前記外部メモリへのデータ転送の際に、各前記プロセッサ要素のバッファに格納されたデータを読み出すと共に、1アドレスが隣接するT個のプロセッサ要素に対応するように、隣接するT個のプロセッサ要素からなるグループ毎に、該グループ内のT個のプロセッサ要素のバッファから読み出したデータを、前記アドレス記憶部に記憶されているN個のアドレスのうちのN/T個のアドレスであって、かつ、回毎に異なる前記N/T個のアドレスのうちの、前記グループに対応する1つに書き込む処理であり、前記第3の処理は、前記アドレス記憶部に記憶されている各アドレスAiを式5に従って増分させる処理であることを特徴とするメモリコントローラ。M1=[W/T×S]-14但し,W:パラメータ記憶部に記憶された第2のパラメータS:単位サイズT:パラメータ記憶部に記憶された第4のパラメータAi=AiS×T5但し,Ai:i個目のアドレスS:単位サイズT:パラメータ記憶部に記憶された第4のパラメータ前記データ転送部は、前記外部メモリから前記N個のプロセッサ要素のバッファへのデータ転送の際に、前記N個のプロセッサ要素のバッファの全てがフルになる度に割込みを発生させ、前記N個のプロセッサ要素のバッファから前記外部メモリへのデータ転送の際に、前記N個のプロセッサ要素のバッファの全てが空になる度に割込みを発生させることを特徴とする請求項1または2に記載のメモリコントローラ。コントロールプロセッサと、前記コントロールプロセッサにより制御されるN個N:2以上の整数のプロセッサ要素と、メモリコントローラとを備えるSIMDSiNgleINstructioNMultipleDataプロセッサであって、各前記プロセッサ要素は、容量が単位サイズSであり、該プロセッサ要素と外部メモリとの間で転送されるデータを一時的に格納するバッファを有し、前記メモリコントローラは、前記コントロールプロセッサにより、前記外部メモリにおけるN個のアドレスAii=1~Nを設定可能なアドレス記憶部と、前記コントロールプロセッサにより、第1のパラメータOSVと、第2のパラメータWと、第3のパラメータLとを設定可能なパラメータ記憶部と、前記コントロールプロセッサからのデータ転送の指示に応じて、前記外部メモリと、前記N個のプロセッサ要素のバッファとの間でデータ転送を行うデータ転送部とを有し、前記データ転送部は、前記データ転送に際して、第1の処理を前記パラメータ記憶部に記憶された前記第3のパラメータLに合致する回数分繰り返し、前記第1の処理は、第2の処理をすると共に第3の処理を行うことを式6に示すM回繰り返した後に、前記第2の処理をすると共に第4の処理を行う処理であり、前記第2の処理は、前記外部メモリから前記N個のプロセッサ要素のバッファへのデータ転送の際に、1アドレスが1プロセッサ要素に対応するように、前記アドレス記憶部に記憶されている各アドレスから夫々単位サイズS分のデータを読み出して、対応するプロセッサ要素のバッファに格納する処理であり、前記N個のプロセッサ要素のバッファから前記外部メモリへのデータ転送の際に、1アドレスが1プロセッサ要素に対応するように、夫々の前記プロセッサ要素のバッファに格納されたデータを読み出して、前記アドレス記憶部に記憶されているN個のアドレスのうちの、対応するアドレスに書き込む処理であり、前記第3の処理は、前記アドレス記憶部に記憶されている各アドレスAiを式7に従って増分させる処理であり、前記第4の処理は、前記アドレス記憶部に記憶されている各アドレスAiを式8に従って増分させる処理であり、M=W/S-16但し,W:パラメータ記憶部に記憶された第2のパラメータS:単位サイズAi=AiS7但し,Ai:i個目のアドレスS:単位サイズAi=AiOSV8但し,Ai:i個目のアドレスOSV:パラメータ記憶部に記憶された第1のパラメータ前記コントロールプロセッサは、前記メモリコントローラによる前記外部メモリから前記N個のプロセッサ要素のバッファへのデータ転送の際に、前記N個のプロセッサ要素のバッファの全てがフルになる度に、各前記プロセッサ要素にライト命令をし、前記DMAコントローラによる前記N個のプロセッサ要素のバッファから前記外部メモリへのデータ転送の際に、前記N個のプロセッサ要素のバッファの全てが空になる度に、各前記プロセッサ要素にリード命令をすることを特徴とするSIMDプロセッサ。前記コントロールプロセッサは、前記N個のアドレスAii=1~Nとして、複数の単位サイズSのデータが2次元に配列してなる2次元データを記憶した前記外部メモリにおける、前記2次元データに含まれるN個の矩形領域の先頭アドレスを前記アドレス記憶部に設定し、前記2次元データの同一行における先端と末尾の単位サイズSのデータのアドレスの差分と、前記矩形領域の行方向のサイズと、前記矩形領域の行数とを、夫々前記第1のパラメータOSVと、第2のパラメータWと、第3のパラメータLとして前記パラメータ設定部に設定することを特徴とする請求項4に記載のSIMDプロセッサ。前記コントロールプロセッサは、前記N個の矩形領域が異なる行方向のサイズを有するときに、各前記行方向のサイズのうちの最大値を前記第2のパラメータWとして設定し、前記N個の矩形領域が異なる行数を有するときに、各前記行数のうちの最大値を前記第3のパラメータLとして設定することを特徴とする請求項5に記載のSIMDプロセッサ。前記2次元データは、画像データであり、前記単位サイズSのデータは、1画素のデータであることを特徴とする請求項5または6に記載のSIMDプロセッサ。前記パラメータ記憶部は、前記コントロールプロセッサにより第4のパラメータTをさらに設定可能であり、前記コントロールプロセッサは、Nの約数を前記第4のパラメータTとして前記パラメータ記憶部に設定し、前記メモリコントローラにおける前記データ転送部は、前記第1の処理として、第2の処理をすると共に第3の処理を行うことを式9に示すM1回繰り返した後に、前記第2の処理をすると共に前記第4の処理を行い、前記第2の処理として、第5の処理をT回繰り返し、前記第5の処理は、前記外部メモリから前記N個のプロセッサ要素のバッファへのデータ転送の際に、1アドレスが隣接するT個のプロセッサ要素に対応するように、前記アドレス記憶部に記憶されているN個のアドレスのうちのN/T個のアドレスであって、かつ、回毎に異なる前記N/T個のアドレスから夫々単位サイズSのT倍分のデータを読み出して、対応するT個のプロセッサ要素のバッファに夫々格納する処理であり、前記N個のプロセッサ要素のバッファから前記外部メモリへのデータ転送の際に、各前記プロセッサ要素のバッファに格納されたデータを読み出すと共に、1アドレスが隣接するT個のプロセッサ要素に対応するように、隣接するT個のプロセッサ要素からなるグループ毎に、該グループ内のT個のプロセッサ要素のバッファから読み出したデータを、前記アドレス記憶部に記憶されているN個のアドレスのうちのN/T個のアドレスであって、かつ、回毎に異なる前記N/T個のアドレスのうちの、前記グループに対応する1つに書き込む処理であり、前記第3の処理は、前記アドレス記憶部に記憶されている各アドレスAiを式10に従って増分させる処理であり、M1=[W/T×S]-19但し,W:パラメータ記憶部に記憶された第2のパラメータS:単位サイズT:パラメータ記憶部に記憶された第4のパラメータAi=AiS×T10但し,Ai:i個目のアドレスS:単位サイズT:パラメータ記憶部に記憶された第4のパラメータ前記コントロールプロセッサは、前記N個のプロセッサ要素のバッファから前記外部メモリへのデータ転送の際には該データ転送の指示の前に、前記外部メモリから前記N個のプロセッサ要素のバッファへのデータ転送の際には該データ転送の指示に応じて前記DMAコントローラが該データ転送を完了した後に、前記N個のプロセッサ要素に対してデータ交換の命令をし、前記N個のプロセッサ要素は、前記データ交換の命令に応じて、隣接するプロセッサ要素同士間で、ローカルメモリ上のデータを交換することを特徴とする請求項4から7のいずれか1項に記載のSIMDプロセッサ。前記DMAコントローラは、前記外部メモリから前記N個のプロセッサ要素のバッファへのデータ転送の際に、前記N個のプロセッサ要素のバッファの全てがフルになる度に割込みを発生させ、前記N個のプロセッサ要素のバッファから前記外部メモリへのデータ転送の際に、前記N個のプロセッサ要素のバッファの全てが空になる度に割込みを発生させ、前記コントロールプロセッサは、前記割込みに応じて、前記N個のプロセッサ要素にリード命令またはライト命令をすることを特徴とする請求項4から8のいずれか1項に記載のコントロールプロセッサ。2次元データにおける複数の領域のデータに対して同一の処理を施す場合を考える。例えば、図13に示す画像Pに対して所定の対象物例えば顔の検出を行い、検出した複数の領域図中矩形領域BK1~BK6に対して同一の処理を施す場合がある。勿論、各矩形領域内には、複数の画素が含まれる。図13において、各矩形領域内において、斜線により塗り潰された小さい枠は、該矩形領域の1番目の画素通常、左上端の画素を示し、黒く塗りつぶされた小さい枠は、該矩形領域の2番目の画素を示す。この場合、1矩形領域が1PEに対応するように、これらの複数の矩形領域のデータを、SIMDプロセッサの複数のPEのローカルメモリに夫々書き込んでおき、各PEに上記同一の処理を行わせるようにすれば、効率が良い。ここで、非特許文献1の手法を適用して、画像Pを格納した外部メモリからSIMDプロセッサ10の夫々のPEのローカルメモリ44に矩形領域BK1~BK6のデータを書き込むまでの処理を考える。この場合、下記のような流れが考えられる。まず、CP20は、矩形領域BK1の1番目の画素の先頭アドレスを読出アドレスとしてDMAコントローラに対して設定する。DMAコントローラは、設定された読出アドレスのデータ矩形領域BK1の1番目の画素を外部メモリから読み出してPE1のバッファ42に格納する。この画素は、最終的にPE6のローカルメモリ44に書込むべき画素である。ここで、非特許文献1の手法の流れでは、DMAコントローラが次に読み出すべき画素は、PE5のローカルメモリ44に書き込むべき画素、すなわち矩形領域BK2の1番目の画素である。しかし、DMAコントローラは、読出アドレスを1つ増分して読出しを行うと、次に読み出したデータは、矩形領域BK1の2番目の画素である。そのため、DMAコントローラは、続けて読み出すべき画素を読み出すことができない。そのため、再びCP20により読出アドレスここでは、矩形領域BK2の1番目の画素のアドレスになるをDMAコントローラに設定し、DMAコントローラは、設定された読出アドレスのデータを外部メモリから読み出してPE1のバッファ42に格納する。この画素は、最終的にPE5のローカルメモリ44に書込むべき画素である。同時に、シフトにより、先にPE1のバッファ42に格納されたデータ矩形領域BK1の1番目の画素は、PE2のバッファ42に格納される。これでは、1つの画素の読出しとバッファ42への格納は、必ずCP20による読出アドレスの設定が必要になり、DMAコントローラの効果を発揮することができず、SIMDプロセッサ10の効率向上を図ることができない。また、各PEのバッファ42により1つのシフトレジスタを形成する構成ではなく、各バッファ42は、別々に書き込むことができる構成とした場合にも、同様である。非特許文献1の手法を適用しない場合には、SIMDプロセッサ10の効率がより低下する。この場合の流れの例を説明する。なお、各PEのバッファ42は、別々に書き込むことができるとする。まず、CP20は、矩形領域BK1の1番目の画素を外部メモリから読み出してPE6のバッファ42に格納する。そして、PE1~PE5を動作させないマスクフラグ付きのライト命令を出す。これにより、PE6のMEMCTL46は、ライト動作を実行し、バッファ42から矩形領域BK1の1番目の画素をローカルメモリ44に書き込む。同様の処理が、CP20と、PE6のMEMCTL46とにより、矩形領域BK1の画素数分回繰り返され、最後に、矩形領域BK1の全ての画素は、PE6のローカルメモリ44に書き込まれる。そして、CP20と、PE5のMEMCTL46とにより、同様の処理が矩形領域BK2の画素数分回繰り返され、最後に、矩形領域BK2の全ての画素は、PE5のローカルメモリ44に書き込まれる。矩形領域BK3~BK6のデータも、同様の処理によりPE4~PE1のローカルメモリ44に書き込まれる。上述の流れから分かるように、この場合、1つの矩形領域につき、CP20によるバッファ42へのデータの格納と、PEによるライト動作が、該領域内の画素数分回繰り返される。この間、CP20は、PEアレイ30に対して命令を放送することができず、PEアレイ30での演算処理が停止してしまうという問題がある。また、ローカルメモリ44へのデータの書込みは、矩形領域を1個ずつ行われるので、当該PEのローカルメモリ44へのアクセスが高い頻度で発生する。そのため、仮に、別の手段でPEアレイ30に対し命令を放送できるようにしたとしても、該PEのローカルメモリ44がデータ転送によって占有されてしまうため、PEアレイ30での演算処理がやはり停止してしまう。本発明は、上記事情に鑑みてなされたものであり、2次元データにおける複数の矩形領域のデータを、1矩形領域が1プロセッサ要素に対応するように、SIMDプロセッサの複数のプロセッサ要素と外部との間で交換する際に、SIMDプロセッサの効率低下を抑制するメモリアクセス制御技術を提供する。本発明の1つの態様は、SIMDプロセッサに設けられたDMAコントローラである。該SIMDプロセッサは、N個N:2以上の整数のプロセッサ要素を有し、各前記プロセッサ要素が、容量が単位サイズSであり、該プロセッサ要素と外部メモリとの間で転送されるデータを一時的に格納するバッファを有する。前記メモリコントローラは、アドレス記憶部と、パラメータ記憶部と、データ転送部とを備える。前記アドレス記憶部は、前記外部メモリにおけるN個のアドレスAii=1~Nを設定可能である。前記パラメータ設定部は、第1のパラメータOSVと、第2のパラメータWと、第3のパラメータLとを設定可能である。前記データ転送部は、前記外部メモリと、前記N個のプロセッサ要素のバッファとの間でデータ転送を行うものであり、前記データ転送の指示に応じて、第1の処理を前記パラメータ記憶部に記憶された前記第3のパラメータLに合致する回数分繰り返す。前記第1の処理は、前記第2の処理をすると共に第3の処理を行うことを式1に示すM回繰り返した後に、前記第2の処理をすると共に第4の処理を行う処理である。M=W/S-11但し,W:パラメータ記憶部に記憶された第2のパラメータS:単位サイズ前記第2の処理は、前記外部メモリから前記N個のプロセッサ要素のバッファへのデータ転送の際に、1アドレスが1プロセッサ要素に対応するように、前記アドレス記憶部に記憶されている各アドレスから夫々単位サイズS分のデータを読み出して、対応するプロセッサ要素のバッファに格納する処理である。また、前記第2の処理は、前記N個のプロセッサ要素のバッファから前記外部メモリへのデータ転送の際に、1アドレスが1プロセッサ要素に対応するように、夫々の前記プロセッサ要素のバッファに格納されたデータを読み出して、前記アドレス記憶部に記憶されているN個のアドレスのうちの、対応するアドレスに書き込む処理である。前記第3の処理は、前記アドレス記憶部に記憶されている各アドレスAiを式2に従って増分させる処理である。Ai=AiS2但し,Ai:i個目のアドレスS:単位サイズ前記第4の処理は、前記アドレス記憶部に記憶されている各アドレスAiを式3に従って増分させる処理である。Ai=AiOSV3但し,Ai:i個目のアドレスOSV:パラメータ記憶部に記憶された第1のパラメータ本発明の別の態様は、SIMDプロセッサである。該SIMDプロセッサは、コントロールプロセッサと、前記コントロールプロセッサにより制御されるN個N:2以上の整数のプロセッサ要素と、上記態様のメモリコントローラとを備える。各前記プロセッサ要素は、容量が単位サイズSであり、該プロセッサ要素と外部メモリとの間で転送されるデータを一時的に格納するバッファを有する。前記コントロールプロセッサは、前記メモリコントローラによる前記外部メモリから前記N個のプロセッサ要素のバッファへのデータ転送の際に、前記N個のプロセッサ要素のバッファの全てがフルになる度に、各前記プロセッサ要素にライト命令をする。また、前記コントロールプロセッサは、前記DMAコントローラによる前記N個のプロセッサ要素のバッファから前記外部メモリへのデータ転送の際に、前記N個のプロセッサ要素のバッファの全てが空になる度に、各前記プロセッサ要素にリード命令をする。なお、上記態様のメモリコントローラやコントロールプロセッサを方法や装置、システムなどに置換えて表示したものや、これらの方法をコンピュータに実行せしめるプログラムなども、本発明の態様としては有効である。本発明にかかるメモリアクセス制御技術によれば、例えば、2次元データにおける複数の矩形領域のデータを、1矩形領域が1プロセッサ要素に対応するように、SIMDプロセッサの複数のプロセッサ要素と外部との間で交換する際に、SIMDプロセッサの効率低下を抑制することができる。以下、図面を参照して本発明の実施の形態について説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、様々な処理を行う機能ブロックとして図面に記載される各要素は、ハードウェアとソフトウェアプログラムの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、ハードウェアとソフトウェアのいずれかに限定されるものではない。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。また、上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体non-transitorycomputerreadablemediumを用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体tangiblestoragemediumを含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ、光磁気記録媒体例えば光磁気ディスク、CD-ROMReadOnlyMemoryCD-R、CD-R/W、半導体メモリ例えば、マスクROM、PROMProgrammableROM、EPROMErasablePROM、フラッシュROM、RAMRandomAccessMemoryを含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体transitorycomputerreadablemediumによってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。<第1の実施の形態>図1は、本発明の第1の実施の形態にかかるSIMDプロセッサ100を示す。SIMDプロセッサ100は、PEアレイ110、制御ユニット120を備える。PEアレイ110は、N個N:2以上の整数であり、ここでは例として、N=6のプロセッサ要素PE1~6を有する。各PEは、同一の構成を有するため、ここで、PE1を代表にする。PE1は、外部メモリとの間で交換されるデータを一時的に格納するバッファ112と、ローカルメモリ114を備える。バッファ112の容量は、所定の単位サイズSである。なお、この種のPEに通常備えられる演算部などの機能ブロックの図示は、省略する。PE1は、制御ユニット120における後述するコントロールプロセッサCP130により制御される。外部メモリとのデータ交換に際して、PE1は、CP130からのリード命令に応じて、該当するデータをローカルメモリ114から読み出してバッファ112に格納し、また、CP130からのライト命令に応じて、バッファ112に格納されたデータを読み出して、ローカルメモリ114の該当する番地に書き込む。制御ユニット120は、CP130と、メモリコントローラ140を備える。CP130は、PEアレイ110と、メモリコントローラ140の制御を行う。メモリコントローラ140は、データ転送の指示以下、単に転送指示というをCP130から受けると、PEアレイ110の各PEと、外部メモリとの間で交換されるデータのDMA転送を行う。図2を参照してメモリコントローラ140を詳細に説明する。図2に示すように、メモリコントローラ140は、アドレス記憶部142、パラメータ記憶部144、データ転送部146を備える。アドレス記憶部142は、CP130により、外部メモリにおけるN個ここでは6個のアドレスAii=1~6を設定可能である。また、アドレス記憶部142内に記憶された各アドレスAiは、データ転送部146により変更可能である。パラメータ記憶部144は、CP130により、第1のパラメータOSVと、第2のパラメータWと、第3のパラメータLとを設定可能である。データ転送部146は、CP130からの転送指示に応じて、外部メモリと、PE1~PE6のバッファ112の間でデータ転送を行う。該データ転送に際して、データ転送部146は、アドレス記憶部142とパラメータ記憶部144の内容に基づいて、第1の処理を、パラメータ記憶部144に記憶された第3のパラメータLに合致する回数分繰り返す。第1の処理は、第2の処理をすると共に第3の処理を行うことを式6に示すM回繰り返した後に、第2の処理をすると共に第4の処理を行う処理である。M=W/S-16但し,W:パラメータ記憶部144に記憶された第2のパラメータS:単位サイズ外部メモリからPEアレイ110具体的には、PEアレイ110の各PEのバッファ112へのデータ転送の際に、第2の処理は、外部メモリから、1アドレスが1PEに対応するように、アドレス記憶部142に記憶されている各アドレスから夫々単位サイズS分のデータを読み出して、対応するPEのバッファ112に格納する処理である。PEアレイ110から外部メモリへのデータ転送の際に、第2の処理は、1アドレスが1プロセッサ要素に対応するように、夫々のPEのバッファ112に格納されたデータを読み出して、アドレス記憶部142に記憶されている6個のアドレスのうちの、対応するアドレスに書き込む処理である。第3の処理は、アドレス記憶部142に記憶されている各アドレスAiを式7に従って増分させる処理である。Ai=AiS7但し,Ai:アドレス記憶部142に記憶されたi個目のアドレスS:単位サイズ第4の処理は、アドレス記憶部142に記憶されている各アドレスAiを式8に従って増分させる処理である。Ai=AiOSV8但し,Ai:アドレス記憶部142に記憶されたi個目のアドレスOSV:パラメータ記憶部144に記憶された第1のパラメータCP130は、外部メモリからPEアレイ110へのデータ転送の際に、PE1~PE6のバッファ112の全てがフルになる度に、PE1~PE6にライト命令をする。また、CP130は、PEアレイ110から外部メモリへのデータ転送の際に、PE1~PE6のバッファ112の全てが空になる度に、PE1~PE6にリード命令をする。本実施の形態のSIMDプロセッサ100は、例えば、複数の単位サイズSのデータが2次元に配列してなる2次元データにおける複数の矩形領域のデータを、1矩形領域が1PEに対応するように、該SIMDプロセッサ100に含まれる複数のPEと外部メモリとの間で交換する際に、SIMDプロセッサの効率低下を抑制することができる。図13に示す画像Pを2次元データの具体例として、画像Pにおける6個の矩形領域矩形領域BK1~BK6のデータを、外部メモリから、PEアレイ110におけるPE1~PE6のローカルメモリ114へ夫々書き込む処理の流れを説明する。まず、CP130は、メモリコントローラ140のアドレス記憶部142とパラメータ記憶部144に対して設定を行う。アドレス記憶部142に対して、CP130は、各矩形領域の外部メモリにおける先頭アドレスを設定する。これにより、アドレス記憶部142は、アドレスAii=1~6として、矩形領域BKii=1~6の先頭アドレスが設定される。パラメータ記憶部144に対して、CP130は、画像Pの同一行における先端と末尾の画素のアドレスの差分を第1のパラメータOSVとして設定し、矩形領域の行方向のサイズを第2のパラメータWとして設定し、矩形領域内に含まれるデータ画素の行数を第3のパラメータLとして設定する。なお、CP130は、矩形領域BK1~BK6の行方向のサイズが同一である場合には、該同一のサイズを第2のパラメータWに設定し、矩形領域BK1~BK6の行方向のサイズが異なる場合には、これらのサイズのうちの最大値を第2のパラメータWに設定する。例えば、図13に示す6個の矩形領域の場合、BK5の行方向のサイズが第2のパラメータWに設定される。また、CP130は、矩形領域BK1~BK6の行数が同一である場合には、該行数を第3のパラメータLに設定し、矩形領域BK1~BK6の行数が異なる場合には、これらの行数のうちの各前記行数のうちの最大値を第3のパラメータLに設定する。例えば、図13に示す6個の矩形領域の場合、矩形領域BK2の行数が第3のパラメータLに設定される。CP130は、アドレス記憶部142とパラメータ記憶部144を設定すると、データ転送部146に転送指示をする。メモリコントローラ140は、CP130から転送指示を受けると、外部メモリからデータを読み出してPE1~PE6のバッファ112に格納する。図3と図4を参照して説明する。なお、図3と図4において、各PEのバッファ112とローカルメモリ114内の小さい枠は、画素を示し、画素を示す枠内の数字は、該画素が属する矩形領域の番号である。例えば、図3の最上部において、PE6のバッファ112には、矩形領域BK1の1番目の画素が格納されていることを示す。図3に示すように、メモリコントローラ140のデータ転送部146は、CP130から転送指示を受けた後の1サイクル目図中サイクル1において、外部メモリから、アドレス記憶部142に記憶されたアドレスA1に格納された1画素分のデータを読み出してPE6のバッファ112に格納する。これにより、矩形領域BK1の1番目の画素がPE6のバッファ112に転送される。そして、サイクル2において、データ転送部146は、外部メモリから、アドレス記憶部142に記憶されたアドレスA2に格納された1画素分のデータを読み出してPE5のバッファ112に格納する。これにより、矩形領域BK2の1番目の画素がPE5のバッファ112に転送される。データ転送部146は、その後、外部メモリから、アドレス記憶部142に記憶された当該アドレスAii=3~6に格納された1画素分のデータを読み出して該アドレスAii=3~6に対応するPEii=4~1のバッファ112に格納する処理を繰り返す。その結果、サイクル6において、矩形領域BK6の1番目の画素がPE1のバッファ112に転送される。サイクル1~6までの処理は、1回目の前述した第2の処理に該当する。データ転送部146は、ここで、第3の処理として、アドレス記憶部142に記憶されている各アドレスAii=1~6を式7に従って増分させる。分かりやすいように、式7を再度示す。Ai=AiS7但し,Ai:アドレス記憶部142に記憶されたi個目のアドレスS:単位サイズ式7における単位サイズSは、ここで、1画素のサイズに該当する。そのため、増分後の各アドレスAii=1~6は、夫々の矩形領域の2番目の画素のアドレスになる。また、各PEのバッファ112の全てがフルになったため、データ転送部146は、割込みを発生させる。この割込みに応じて、CP130は、PE1~PE6の演算処理に割り込み、ライト命令を出す。各PEは、CP130からのライト命令に応じて、バッファ112に格納されているデータをローカルメモリ114に書き込む。図示のように、サイクル7において、各矩形領域BK1~BK6の1番目の画素が、対応するPEPE6~PE1のローカルメモリ114に夫々書き込まれる。そして、データ転送部146は、第2の処理をすると共に第3の処理を行うことを繰り返す。図4に示すように、サイクル8において、矩形領域BK1の2番目の画素がPE6のバッファ112に転送され、サイクル9において、矩形領域BK2の2番目の画素がPE5のバッファ112に転送される。同様の処理が続き、サイクル13において、矩形領域BK6の2番目の画素がPE1のバッファ112に転送される。サイクル8~13までの処理は、2回目の第2の処理に該当する。ここで、データ転送部146は、割込みを発生させると共に、2回目の第3の処理として、第3アドレス記憶部142に記憶されている各アドレスAii=1~6を式6に従って増分させる。これにより、アドレス記憶部142に記憶されている各アドレスAii=1~6は、夫々の矩形領域の3番目の画素の先頭アドレスになる。また、図示のように、サイクル14において、各矩形領域BK1~BK6の2番目の画素が、対応するPEPE6~PE1のローカルメモリ114に夫々書き込まれている。データ転送部146は、その後、第2の処理をすると共に第3の処理を行うことを式6に示すM回繰り返す。分かりやすいように、式6を再度示す。M=W/S-16但し,W:パラメータ記憶部144に記憶された第2のパラメータS:単位サイズ第2のパラメータWが矩形領域の行方向の最大サイズであり、単位サイズSが1画素のサイズであるため、式6に示すMは、矩形領域の行方向の最多画素数から1を引いた値になる。すなわち、第2の処理をすると共に第3の処理を行うことをM回繰り返した後、アドレス記憶部142に格納された各アドレスAiは、当該矩形領域について、当該行の転送すべき画素のうちの、最後の画素のアドレスになる。データ転送部146は、第2の処理をすると共に第3の処理を行うことをM回繰り返した後に、第2の処理をすると共に、第4の処理として、アドレス記憶部142に記憶されている各アドレスAiを式8に従って増分させる。分かりやすいように、式8を再度示す。Ai=AiOSV8但し,Ai:アドレス記憶部142に記憶されたi個目のアドレスOSV:パラメータ記憶部144に記憶された第1のパラメータ前述したように、第1のパラメータOSVは、画像Pの同一行における先端と末尾の画素のアドレスの差分であるため、第4の処理により、アドレス記憶部142に格納された各アドレスAiは、各矩形領域の次の行の1番目の画素のアドレスになる。なお、1回目の第2の処理から、1回目の第4の処理の完了までの処理は、前述した第1の処理に該当する。データ転送部146は、この第1の処理を、データ転送部146に記憶された第3のパラメータL回繰り返す。第3のパラメータLは、矩形領域の最大行数であるため、第1の処理がL回繰り返され、加えて、各PEのバッファ112がフルになる度にパラメータ記憶部144への書込みが行われた結果、各矩形領域BK1~BK6のデータは、対応するPEPE6~PE1のローカルメモリ114に転送される。図3と図4を参照して、外部メモリからPEアレイ110にデータを転送する場合を説明した。PEアレイ110から外部メモリにデータ転送する場合には、CP130が、PEアレイ110にリード命令を出した後にメモリコントローラ140に転送指示を出す点と、その後、各PEのバッファ112の全てが空になる度に、PEアレイ110にリード命令をする点と、第2の処理のデータ転送方向が上述したのと逆になる点とを除き、外部メモリからPEアレイ110にデータを転送する場合と同様であるため、ここで詳細な説明を省略する。このように、本第1の実施の形態のSIMDプロセッサ100によれば、CP130が1回の転送指示を出せば、メモリコントローラ140は、夫々の矩形領域のデータを、外部メモリと、該矩形領域に対応するPEのバッファ112との間で転送する。メモリコントローラ140による転送の間、CP130は、PEアレイ110に対して命令を出すことができ、PEアレイ110の各PEも、演算処理を停止することが無い。従って、2次元データにおける複数の矩形領域のデータを、1矩形領域が1プロセッサ要素に対応するように、SIMDプロセッサの複数のプロセッサ要素と外部との間で交換する際にも、SIMDプロセッサの効率低下を抑制することができる。本実施の形態のSIMDプロセッサ100において、PEアレイ110の各PEのバッファ112は、互いに独立した機能ブロックとして示されているが、これらのバッファは、例えば、同一のバッファの異なる領域であってもよい。さらに、SIMDプロセッサ100では、各バッファ112は、別々にデータを書き込まれる構成となっているが、例えば、これらのバッファ112が1つのシフトレジスタを形成する構成であってもよい。これについて、第2の実施の形態を用いて説明する。<第2の実施の形態>図5は、本発明の第2の実施の形態にかかるSIMDプロセッサ200を示す。該SIMDプロセッサ200は、PEアレイ110の代わりにPEアレイ210が設けられている点を除き、図1に示すSIMDプロセッサ100と同様の構成を有する。また、PEアレイ210は、各PEのバッファ112の代わりにシフトレジスタ220が設けられた点を除き、SIMDプロセッサ100におけるPEアレイ110と同様の構成を有する。そのため、SIMDプロセッサ200について、SIMDプロセッサ100と異なる点についてのみ詳細に説明する。SIMDプロセッサ200による処理の例についても、SIMDプロセッサ100を説明する際と同様に、図13に示す画像Pの各矩形領域のデータをPEアレイ210の各PEに夫々転送することを用いる。シフトレジスタ220は、PEアレイ210に含まれるPE数ここでは6と同数段を有する。シフトレジスタ220の各段1段目221~6段目226は、単位サイズSここでは画像Pの1画素のサイズを有する。シフトレジスタ220の入力端1段目221にデータが入力される度に、出力端6段目226に向かってシフトが行われる。また、シフトレジスタ220の各段1段目221~6段目226は、各PEPE1~PE6に夫々対応し、各PEは、自身に対応する段に対してデータの読出しと書込みができる。図13に示す画像Pにおける6個の矩形領域矩形領域BK1~BK6のデータを、外部メモリから、PEアレイ210におけるPE1~PE6のローカルメモリ114へ夫々書き込むために、まず、CP130は、メモリコントローラ140のアドレス記憶部142とパラメータ記憶部144に対して設定を行う。設定後、CP130は、メモリコントローラ140に転送指示をする。メモリコントローラ140は、CP130から転送指示を受けると、外部メモリからデータを読み出してSIMDプロセッサ200に順次入力する。図6と図7を参照して説明する。図6に示すように、メモリコントローラ140のデータ転送部146は、CP130から転送指示を受けた後の1サイクル目図中サイクル1において、外部メモリから、アドレス記憶部142に記憶されたアドレスA1に格納された1画素分のデータを読み出してシフトレジスタ220に入力する。これにより、矩形領域BK1の1番目の画素がシフトレジスタ220の1段目221に格納される。そして、サイクル2において、データ転送部146は、外部メモリから、アドレス記憶部142に記憶されたアドレスA2に格納された1画素分のデータを読み出してシフトレジスタ220に入力する。これにより、矩形領域BK2の1番目の画素がシフトレジスタ220の1段目221に格納され、矩形領域BK1の1番目の画素がシフトにより2段目222に格納される。サイクル1~6までの処理、すなわち1回目の第2の処理が完了した際に、矩形領域BK1~BK6の各1番目の画素は、シフトレジスタ220の6段目226~1段目221に夫々格納される。また、アドレス記憶部142内の各アドレスAiは、1画素サイズ分増分される。サイクル7において、各PEは、CP130からのライト命令に応じて、シフトレジスタ220の、自身に対応する段に格納されているデータをローカルメモリ114に書き込む。これにより、各矩形領域BK1~BK6の1番目の画素が、対応するPEPE6~PE1のローカルメモリ114に夫々書き込まれる。次に、図7に示すように、サイクル8において、矩形領域BK1の2番目の画素は、シフトレジスタ220の1段目221に入力され、1段目221に格納される。そして、サイクル9において、矩形領域BK2の2番目の画素がシフトレジスタ220の1段目221に入力され、1段目221に格納される。同時に、矩形領域BK1の2番目の画素がシフトにより2段目222に格納される。同様の処理が続き、サイクル13において、矩形領域BK6の2番目の画素がシフトレジスタ220の1段目221に入力され、1段目221に格納される。同時に、シフトにより、矩形領域BK5~矩形領域BK1の2番目の画素は、6段目226~2段目222に夫々格納される。また、アドレス記憶部142内の各アドレスAiは、1画素サイズ分増分される。そして、サイクル14において、各PEは、CP130からのライト命令に応じて、シフトレジスタ220の、自身に対応する段に格納されているデータをローカルメモリ114に書き込む。これにより、各矩形領域BK1~BK6の2番目の画素が、対応するPEPE6~PE1のローカルメモリ114に夫々書き込まれる。図示のように、サイクル14において、各矩形領域BK1~BK6の2番目の画素が、対応するPEPE6~PE1のローカルメモリ114に夫々書き込まれている。以降の処理は、データ転送部146が、外部メモリから読み出したデータをシフトレジスタ220の1段目221に入力する点を除き、SIMDプロセッサ100による相対応の処理と同様であるので、ここで詳細な説明を省略する。なお、PEアレイ210から外部メモリへデータ転送をする場合にも、SIMDプロセッサ100におけるメモリコントローラ140が各バッファ112からデータを読み出す動作を、SIMDプロセッサ200におけるメモリコントローラ140が、シフトレジスタ220をシフトアウトさせると共に、6段目226からシフトアウトされたデータを受け取る動作に置き換えれば、SIMDプロセッサ200とSIMDプロセッサ100の動作が同様である。本実施の形態のSIMDプロセッサ200も、SIMDプロセッサ100と同様の効果を発揮することができる。<第3の実施の形態>図8は、本発明の第3の実施の形態にかかるSIMDプロセッサ300を示す。SIMDプロセッサ300は、PEアレイ110と、制御ユニット320を備え、PEアレイ110は、図1に示すSIMDプロセッサ100のPEアレイ110と同一のものであり、制御ユニット320は、CP330とメモリコントローラ340を備える。図9は、メモリコントローラ340を示す。メモリコントローラ340は、アドレス記憶部142、パラメータ記憶部344、データ転送部346を備える。アドレス記憶部142は、SIMDプロセッサ100におけるメモリコントローラ140のアドレス記憶部142と同様のものである。パラメータ記憶部344は、第1のパラメータOSV、第2のパラメータW、第3のパラメータLに加え、さらに、CP330により第4のパラメータTを設定可能である。CP330は、外部メモリとPEアレイ110のデータ転送に際して、アドレス記憶部142とパラメータ記憶部344に対して設定を行う。なお、CP330は、PEアレイ110に含まれるPEの数Nの約数を第4のパラメータTとしてパラメータ記憶部344に設定する。ここでは、Nが6であるため、CP330は、第4のパラメータTとして、1、2、3のいずれかを設定可能である。データ転送部346は、CP330からの転送指示に応じて、外部メモリと、PE1~PE6のバッファ112の間でデータ転送を行う。該データ転送に際して、データ転送部346は、アドレス記憶部142とパラメータ記憶部344の内容に基づいて、第1の処理を、パラメータ記憶部344に記憶された第3のパラメータLに合致する回数分繰り返す。SIMDプロセッサ100とSIMDプロセッサ200を説明する際に、第1の処理は、第2の処理をすると共に第3の処理を行うことを式6に示すM回繰り返した後に、第2の処理をすると共に第4の処理を行う処理であると説明した。本第3の実施の形態にかかるSIMDプロセッサ300では、第1の処理は、第2の処理をすると共に第3の処理を行うことを、式9に示すM1回繰り返した後に、第2の処理をすると共に第4の処理を行う処理である。M1=[W/T×S]-19但し,W:パラメータ記憶部344に記憶された第2のパラメータS:単位サイズT:パラメータ記憶部344に記憶された第4のパラメータまた、第2の処理と第3の処理は、SIMDプロセッサ100のときに説明した第2の処理と第3の処理と夫々異なる。なお、第4の処理については、SIMDプロセッサ100のときに説明した第4の処理と同様である。まず、第2の処理を説明する。本実施の形態のSIMDプロセッサ300において、第2の処理は、第5の処理をT回繰り返す処理である。外部メモリからPEアレイ110へのデータ転送の際に、第5の処理は、1アドレスが隣接するT個のPEに対応するように、アドレス記憶部142に記憶されているNここでは6個のアドレスのうちのN/T個のアドレスであって、かつ、回毎に異なるN/T個のアドレスから夫々単位サイズSのT倍分のデータを読み出して、対応するT個のPEのバッファ112に夫々格納する処理である。また、PEアレイ110から外部メモリへのデータ転送の際に、第5の処理は、各PEのバッファ112に格納されたデータ単位サイズSのデータを読み出すと共に、1アドレスが隣接するT個のPEに対応するように、隣接するT個のPEからなるグループ毎に、該グループ内のT個のPEのバッファ112から読み出したデータを、アドレス記憶部142に記憶されているN個のアドレスのうちのN/T個のアドレスであって、かつ、回毎に異なるN/T個のアドレスのうちの、上記グループに対応する1つのアドレスに書き込む処理である。本実施の形態のSIMDプロセッサ300において、第3の処理は、アドレス記憶部142に記憶されている各アドレスAiを式10に従って増分させる処理である。Ai=AiS×T10但し,Ai:i個目のアドレスS:単位サイズT:パラメータ記憶部344に記憶された第4のパラメータすなわち、SIMDプロセッサ300では、第3の処理によるアドレスAiの1回の増分量は、SIMDプロセッサ100のときの第3の処理によるアドレスAiの1回の増分量のT倍である。なお、前述したように、本実施の形態のSIMDプロセッサ300における第4の処理は、SIMDプロセッサ100のときに説明した第4の処理と同一である。CP330については、外部メモリからPEアレイ110へのデータ転送の際に、PE1~PE6のバッファ112の全てがフルになる度に、PE1~PE6にライト命令をし、PEアレイ110から外部メモリへのデータ転送の際に、PE1~PE6のバッファ112の全てが空になる度に、PE1~PE6にリード命令をする点において、SIMDプロセッサ100のCP130と同様である。SIMDプロセッサ300は、さらに、PEアレイ110から外部メモリへのデータ転送の際にはメモリコントローラ340に対してデータ転送の指示をする前に、外部メモリからPEアレイ110へのデータ転送の際には該データ転送の完了後に、PEアレイ110に対してデータ交換の命令をする。このデータ交換は、ローカルメモリ間のデータ交換を意味する。PEアレイ110の各PEは、該データ交換の命令に応じて、隣接するPE同士で、ローカルメモリ上のデータを交換する。ここで、図13に示す画像Pにおける6個の矩形領域矩形領域BK1~BK6のデータを、外部メモリから、PEアレイ110におけるPE1~PE6のローカルメモリ114へ夫々書き込む処理を例にして、SIMDプロセッサ300の処理の流れを説明する。まず、CP330は、メモリコントローラ340のアドレス記憶部142とパラメータ記憶部344に対して設定を行う。アドレス記憶部142に対する設定は、SIMDプロセッサ100におけるCP130が行ったものと同様である。また、パラメータ記憶部344に対する設定のうちの第1のパラメータOSV、第2のパラメータW、第3のパラメータLについても、SIMDプロセッサ100におけるCP130が行ったものと同様である。CP330は、パラメータ記憶部344に対して、第4のパラメータTとして、PEアレイ110に含まれるPE数の約数、例えば2を設定する。CP330は、アドレス記憶部142とパラメータ記憶部344を設定すると、データ転送部346に転送指示をする。メモリコントローラ340は、CP330から転送指示を受けると、外部メモリからデータを読み出してPE1~PE6のバッファ112に格納する。図10と図11を参照して説明する。図10に示すように、データ転送部346は、CP330から転送指示を受けた後の1サイクル目図中サイクル1において、外部メモリから、アドレス記憶部142に記憶されたアドレスA1に格納されたT画素ここでは2画素分のデータを読み出してPE6とPE5のバッファ112に夫々格納する。これにより、矩形領域BK1の1番目の画素がPE6のバッファ112に転送され、矩形領域BK1の2番目の画素がPE5のバッファ112に転送される。そして、サイクル2において、データ転送部346は、外部メモリから、アドレス記憶部142に記憶されたアドレスA2に格納されたT画素分のデータを読み出してPE4とPE3のバッファ112に夫々格納する。これにより、矩形領域BK2の1番目の画素がPE4のバッファ112に転送され、矩形領域BK2の2番目の画素がPE3のバッファ112に転送される。次に、サイクル3において、データ転送部346は、外部メモリから、アドレス記憶部142に記憶されたアドレスA3に格納されたT画素分のデータを読み出してPE2とPE1のバッファ112に夫々格納する。これにより、矩形領域BK3の1番目の画素がPE2のバッファ112に転送され、矩形領域BK3の2番目の画素がPE1のバッファ112に転送される。サイクル1~3までの処理は、1回目の前述した第5の処理に該当する。ここで、PE1~PE6のバッファ112の全てがフルになったため、データ転送部346は、割込みを発生させる。この割込みに応じて、CP330は、PE1~PE6の演算処理に割り込み、ライト命令を出す。各PEは、CP330からのライト命令に応じて、バッファ112に格納されているデータをローカルメモリ114に書き込む。図示のように、サイクル4において、矩形領域BK1~BK3の1番目の画素は、PE6、PE4、PE2のローカルメモリ114に夫々書き込まれ、矩形領域BK1~BK3の2番目の画素は、PE5、PE3、PE1のローカルメモリ114に夫々書き込まれる。次に、データ転送部346は、2回目の第5の処理として、図11に示すサイクル5~7の処理を行う。図示のように、サイクル5において、矩形領域BK4の1番目の画素がPE6のバッファ112に転送され、矩形領域BK4の2番目の画素がPE5のバッファ112に転送される。そして、サイクル6において、矩形領域BK5の1番目の画素がPE4のバッファ112に転送され、矩形領域BK5の2番目の画素がPE3のバッファ112に転送される。次いで、サイクル7において、矩形領域BK6の1番目の画素がPE2のバッファ112に転送され、矩形領域BK6の2番目の画素がPE1のバッファ112に転送される。第5の処理がT回2回繰り返したため、データ転送部346は、ここで、第3の処理として、アドレス記憶部142に記憶されている各アドレスAiを式10に従って増分させる。分かりやすいように、式10を再度示す。Ai=AiS×T10但し,Ai:i個目のアドレスS:単位サイズT:パラメータ記憶部344に記憶された第4のパラメータ式10における単位サイズSは、1画素のサイズに該当し、第4のパラメータTは、2に設定されている。そのため、増分後の各アドレスAii=1~6は、矩形領域BK1~BK6の3番目の画素のアドレスになる。また、PE1~PE6のバッファ112の全てがフルになったため、データ転送部346は、再度割込みを発生させる。この割込みに応じて、CP330は、PE1~PE6の演算処理に割り込み、ライト命令を出す。これにより、図11に示すように、サイクル8において、矩形領域BK4~BK6の1番目の画素は、PE6、PE4、PE2のローカルメモリ114に夫々書き込まれ、矩形領域BK4~BK6の2番目の画素は、PE5、PE3、PE1のローカルメモリ114に夫々書き込まれる。その後、上述した処理がM1回繰り返される。なお、M1は、前述した式9に示すM1である。そのため、上述した処理がM1回繰り返された後、夫々の矩形領域の該行について、まだ外部メモリからPEアレイ110に転送されていない画素は、末尾のT個ここでは2個であり、アドレス記憶部142に格納されているアドレスAii=1~6は、当該矩形領域について、末尾の2つの画素のうちの先頭の画素のアドレスになっている。ここで、データ転送部346は、第2の処理を行うと共に、第4の処理として、アドレス記憶部142に格納されている各アドレスAii=1~6に対して、第1のパラメータOSV分増分させる。これにより、アドレス記憶部142に格納された各アドレスAiは、対応する矩形領域の次の行の先頭アドレスになる。矩形領域BK1~BK6の以降の各行に対して、上記と同様の処理が繰り返される。最後に、矩形領域BK1~BK3について、行方向において奇数番1番目、3番目などの画素はPE6、PE4、PE2のローカルメモリ114に夫々格納され、偶数番の画素はPE5、PE3、PE1のローカルメモリ114に夫々格納される。また、矩形領域BK4~BK6についても同様に、行方向において奇数番1番目、3番目などの画素はPE6、PE4、PE2のローカルメモリ114に夫々格納され、偶数番の画素はPE5、PE3、PE1のローカルメモリ114に夫々格納される。これにて外部メモリからPEアレイ110へのデータ転送が完了するが、同一の矩形領域の全ての画素が同一のPEのローカルメモリ114に格納されるようにするために、CP330は、PEアレイ110に対してデータ交換の命令をする。PEアレイ110の各PEは、該命令に応じて、隣接するPE同士間でローカルメモリのデータを交換する。例えば、PE5とPE6間で、PE5のローカルメモリ114に書き込まれた矩形領域BK1の2番目の画素と、PE6のローカルメモリ114に書き込まれた矩形領域BK4の1番目の画素との交換により、矩形領域BK1の2番目の画素は、矩形領域BK1の1番目の画素と同様に、PE6のローカルメモリ114に格納されることになる。このような交換は、PEアレイ110の各隣接するPE同士間で行われた結果、図11に示すように、矩形領域BK1~BK6のデータは、対応するPEPE6~PE1のローカルメモリ114に夫々格納される。上記において、第4のパラメータTが2に設定された場合を説明した。第4のパラメータTが1に設定された場合には、SIMDプロセッサ300は、SIMDプロセッサ100と同様の動作をする。本実施の形態のSIMDプロセッサ300は、第4のパラメータTが1に設定されている場合には、SIMDプロセッサ100と同様の効果を得ることができる。第4のパラメータTが2以上に設定された場合には、上記効果に加え、外部メモリとPEアレイ110間のデータ転送をより高速にできる。これは、データ転送部346は、1つの矩形領域について、外部メモリに対する1度の読出でアドレスが連続するT画素分のデータを読み出してPEアレイ110のバッファ112に転送するためである。一般的に知られているように、外部メモリへのアクセスは、通常、連続したアドレスに存在するデータを同時にアクセスした方が効率良い。なお、この場合、データ転送部346によるデータ転送の後に、同一の矩形領域のデータが同一のPEのローカルメモリに格納されるようにする処理が必要であるものの、この処理は、隣接するPE同士間でデータ交換をするだけで実現できるので、高速に行うことができる。従って、この処理に伴うオーバーヘッドが小さい。以上、実施の形態をもとに本発明を説明した。実施の形態は例示であり、本発明の主旨から逸脱しない限り、上述した各実施の形態に対してさまざまな変更、増減、組合せを行ってもよい。これらの変更、増減、組合せが行われた変形例も本発明の範囲にあることは、当業者に理解されるところである。例えば、上述した各実施の形態において、第2のパラメータWとして、矩形領域の行方向のサイズを設定しているが、他の値、例えば、矩形領域の行方向の画素数を設定するようにしてもよい。また、上述した各実施の形態の動作について、画像の場合を例にしたが、本発明にかかる技術は、画像以外の2次元データの処理にも適用することができる。"