"単一命令多重データ方式で制御される複数の処理要素を含む処理要素アレイと、前記処理要素の各々の内部に備えられるメモリ要素であって、前記処理要素の全ての前記メモリ要素へのデータアクセスが並列に実行されるメモリ要素と、単一命令多重データ方式で前記処理要素アレイを制御する制御プロセッサと、全ての前記処理要素を互いに接続し、かつ前記制御プロセッサに接続するバスシステムと、前記処理要素アレイの前記メモリ要素とデータを交換する単一メモリであって、リード転送に対するデータ送信装置として、かつライト転送に対するデータ受信装置として動作する単一メモリとを備えるデータ転送装置であって、前記制御プロセッサが、各々が各処理要素に対する対象領域ROI領域転送パラメータセットの一時的な格納装置である複数のレジスタを有するレジスタセット部であって、前記転送パラメータセットが少なくとも前記単一メモリ内のROI開始アドレスと、ROIの幅と、ROIの高さとを含む、レジスタセット部と、最初に1を加えることによって転送されるデータの各ROI内の位置を横方向及び縦方向にシフトし、次に前記縦及び横の位置に加えて、前記ROIの開始アドレスと前記単一メモリのメモリ領域の幅である共通の距離とを使用して、前記単一メモリ内の前記位置のアドレスを計算する要求アドレス計算機とを備える、データ転送装置。前記縦位置がデータ転送カウント数を前記ROIの幅で除算する整数除算によって計算され、前記横位置が前記データ転送カウント数を前記ROIの幅で除算するモジュラ演算によって計算される、請求項1に記載のデータ転送装置。前記単一メモリ内の前記位置の前記アドレスをreq_addsingle_memory、前記単一メモリ内の前記ROIの前記開始アドレスをstart_addsingle_memory、前記ROI内の前記データの前記縦位置をver_pos、前記ROI内の前記データの前記横位置をhor_pos、前記共通の距離をdistとしたとき、前記単一メモリ内の前記位置の前記アドレスが下記の式req_addsingle_memory=start_addsingle_memoryver_pos×disthor_posを使用して計算される、請求項1又は2に記載のデータ転送装置。前記制御プロセッサが転送ゲート部をさらに備え、前記転送ゲート部が、前記データ転送カウント数がROIの大きさを超えていない場合のみ、メモリアクセス要求を前記単一メモリへ通過させる、請求項1から3のいずれかに記載のデータ転送装置。前記処理要素アレイからの前記ROI領域の大きさが同じである、請求項1から4のいずれかに記載のデータ転送装置。前記処理要素アレイからの前記ROI領域の大きさが異なる、請求項1から4のいずれかに記載のデータ転送装置。前記バスシステムがパイプライン式のリングバスである、請求項1から6のいずれかに記載のデータ転送装置。前記単一メモリが外部メモリである、請求項1から7のいずれかに記載のデータ転送装置。自身のメモリ要素を有する複数の処理要素を含む処理要素アレイと単一メモリとの間で並列処理によってデータを転送するためのデータ転送方法であって、少なくとも前記単一メモリ内のROI開始アドレスと、ROIの幅と、ROIの高さとを含む、各処理要素に対する対象領域ROI領域転送パラメータセットの各々を格納することと、1を加えることによって各ROI内のデータの位置を横方向及び縦方向にシフトすることによって、転送されるデータの前記ROI内の位置を計算することと、前記縦及び横の位置に加えて、前記ROIの開始アドレスと前記単一メモリのメモリ領域の幅である共通の距離とを使用することによって、前記単一メモリ内の前記位置のアドレスを計算することとを含むデータ転送方法。ROIデータ領域に定義された各PEに対する独立のデータ転送は非特許文献1に記載された方法によって機能するが、このデータ転送は、各PEに対するデータが他の全てのPEに対する書き込み動作をマスクしながら別々に転送されなければならないので、長い処理時間がかかる。この要素単位でのデータ転送のための時間的なオーバヘッドはSIMD方式を、例えば、歩行者又は白線検出アルゴリズムの検証作業等を含む多くの作業に対して実現不可能なものにしている。非特許文献1に記載の技術を使用した場合、必要なROIデータであるBK1-BK6に加え、不必要で冗長なデータをも転送しなければならず、データ転送時間を必要以上に、大幅に長くするとともにデータ格納装置の内部に大きな領域が必要となる。本発明の目的は、内部メモリアレイと単一メモリとの間で複数のROI領域を同時並行的に転送するにあたって低実施コストでかつ高速にデータ転送できるようにすることにあり、このとき、各PEが、転送される領域に対してパラメータセットを他のPEとは独立に特定することができるようにする。本発明のもう1つの目的であるデータ転送に対する処理時間の短縮は、データ転送命令の開始時に各ROI領域のパラメータセットを割り当てられたPEから制御プロセッサに転送し、このパラメータセットを制御プロセッサに格納することによって達成される。そして、制御プロセッサ内部で、単一メモリへの複数の要求が各PE及び各ROI領域の各要素に対して自律的に生成される。読み出し転送の場合、これらの要求は、各PEに対して各ROI領域の第1要素が最初に単一メモリから要求され、その後に各ROI領域の後続の要素が要求されるように生成される。単一メモリから各ROI領域からの第1要素が制御プロセッサで受信され、制御プロセッサからバスシステムを介して内部メモリアレイに転送された後、全ての要素は内部メモリアレイに並列に格納される。そして、各PEに対して各ROI領域の第2要素が単一メモリから要求される。各ROI領域の全ての要素がそれらの割り当てられたPEに転送されると、転送は終了する。書き込み転送の場合、これらの要求は、各PEの内部の各ROI領域の第1要素が最初に内部メモリアレイから並列に読み出され、バスシステムのレジスタに転送されるように生成される。そして、データ要素は制御プロセッサにシフトされ、そこにおいて各要素に対して対応する単一メモリのアドレスが計算され、単一メモリに対してデータ転送が要求される。単一メモリに全ての第1要素が送られた後、各ROI領域からの第2要素が内部メモリアレイから読み出される。付随する図面を参照しながら、本発明の実施形態を説明する。実施形態1実施形態1として、単一メモリからメモリアレイへのROIデータの転送を説明する。この状況は、例えば、白線や顔領域に対する、いくつかの可能性のある候補が検出された後に検証が必要な場合に起こる。図1は本発明の実施形態1のSIMDプロセッサの構造を示している。SIMDプロセッサは、各々がそれ自身の内部メモリ302を有するPE301のアレイ304を有する。以下、PEアレイ304の内部メモリを内部メモリアレイと呼ぶ。また、複数のPEがPEのグループ303にグループ分けされている。本実施形態においては、4つのPEが1つのグループにグループ化されている。データはバスシステム305を介して内部メモリアレイと単一メモリ308との間で転送され、データ転送は制御プロセッサCP307によって制御される。制御プロセッサCP307はSIMDの並行性を利用するダイレクトメモリーアクセスコントローラとして機能する。ラインバッファ306は、2つのラインバッファの間でPEのグループ303か制御プロセッサ307のどちらかとバス305とが接続されるようにバスシステム305上に配置される。制御プロセッサ307はレジスタセット309と、要求アドレス計算機310と、転送ゲート部311と、バスシフトコントローラ312とを有する。図2はレジスタセット309をより詳細に示している。レジスタセット309は多数のレジスタR0~RN-1を有する。1つのPEに対して1つのレジスタがある。すなわち、レジスタR0はPE0のパラメータセットを保持し、レジスタR1はPE1のパラメータセットを保持し、レジスタRN-1はPEN-1のパラメータセットを保持する。各レジスタR0~RN-1はPE間で互いに異なる転送パラメータだけを保持する。これらのパラメータは、1.単一メモリにおけるROI開始アドレス:start_addsingle_memory2.ROIの幅:roi_width3.ROIの高さ:roi_heightである。転送動作中にアクセスされるアドレスは要求アドレス計算機310で生成される。図3は要求アドレス計算機310をより詳細に示している。要求アドレス計算機310は転送カウンタ601と、アドレス部602と、分割部603と、モジュラ演算部604と、アドレス計算部605とを有する。転送カウンタ601はアドレス部602を使用して1ずつ増やされる転送の回数trans_cntをカウントする。分割部603は、trans_cntをroi_widthで除算する整数除算を実行し、それの商はアドレス計算部605に出力される。図4に示されているように、前記商はデータのROI内の縦位置ver_posを表している。ver_pos=trans_cntdivroi_wモジュラ演算部604は、trans_cntをroi_widthで除算するモジュラ演算を実行し、それの余りはアドレス計算部605に出力される。図4に示されているように、前記余りはデータのROI内の横位置hor_posを表している。hor_pos=trans_cntmodroi_wここで、ver_pos及びhor_posは転送されるデータのROI内の位置を決定する。アドレス計算部605は単一メモリ内の要求アドレスreq_addsingle_memoryを計算する。前記ver_pos及びhor_posに加え、開始アドレスstart_add及び共通距離distもまたアドレス計算部605に与えられる。ここで、開始アドレスstart_addは単一メモリ308内のROIの開始アドレスであり、共通距離は単一メモリのメモリ領域の幅である。したがって、アドレス計算部605は以下の式を計算する。req_addsingle_memory=start_addsingle_memoryver_pos×disthor_pos図4を参照すると、上記式の意味が明確に理解できる。図5は転送ゲート部311を詳細に示している。転送ゲート部311は乗算部701と、比較器702と、スイッチ703とを有する。乗算部701はPExのroi_widthとPExのroi_heightとを乗算して、PExのROIの大きさroi_sizeを求める。前記roi_sizeは比較器702に出力される。前記roi_sizeに加え、trans_cntが転送カウンタ601から比較器702に与えられる。比較器702はtrans_cntを前記roi_sizeと比較する。比較結果はスイッチ703に出力される。このスイッチはON/OFFの2つの状態を有するスイッチであり、比較器による結果に応じて要求アドレスreq_addsingle_memoryを単一メモリ308に転送する。trans_cntがroi_sizeより小さい場合、すなわち、trans_cnt<roi_sizeの場合、スイッチ703はreq_addsingle_memoryを単一メモリ308へ通過させる。一方、trans_cntがroi_sizeに達した、又はroi_sizeを超えた場合、すなわち、trans_cnt≧roi_sizeの場合、スイッチ703はreq_addsingle_memoryを単一メモリ308へ通過させない。換言すると、データ転送の回数がROI領域の大きさに達する又は、ROIの大きさを超えるまでは、必要な要求アドレスが単一メモリ308に与えられる。しかしながら、不必要な要求アドレスは単一メモリ308に与えられない。バスシフトコントローラ312はバスのシフトを制御する。バスシフトコントローラ312は転送された要素の数をカウントする内部カウンタを有する。本実施形態において、バスシフトコントローラ312はモジュラ4計算Xモード4を計算し、バスはモジュラ計算の結果に応じて1つシフトされる。本実施形態においては、4つのPEがグループ化されており、1つのラインバッファが4つの要素を保持することができる。例えば、1つの要素が4バイトの場合、バスライン305及びラインバッファLBは16バイトの容量を有する。したがって、バスシステムは4要素毎にシフトされなければならない。リード方向のデータ転送動作次に、フローチャートを参照しながら、データ転送動作を説明する。まず、図6A及び6Bを参照して、リード方向のデータ転送動作を説明する。図6A及び6Bは単一メモリ308から内部メモリアレイへのリード方向のデータ転送に対するフローチャートを示している。図7に示されているように、事前の分析によっていくつかの領域が可能性のある候補として検出されているとする。図7において、ROI0,ROI1,....ROIx,...は可能性のある候補であり、より正確に分析されなければならない。したがって、これらの領域はそれぞれ、内部メモリに転送されなければならない。また、事前の分析においていくつかの領域が可能性のある候補として検出されている場合、各ROI領域に対するパラメータセットが特定され、各PEはそれら自身の割り当てられたROI領域に対するROIパラメータセットをそれぞれ保持する。各PEはそれら自身の内部メモリ302にROIパラメータセットを格納してもよい。ST101において、まず、内部メモリアレイから全てのROI領域に対するROIパラメータセットが並列に読み出され、バスシステム305のラインバッファLBに格納される。そして、ST102において、パラメータセットは制御プロセッサ307にシフトされ、図2に示されているように、レジスタセット部309内に格納される。全てのパラメータセットがレジスタセット部309内に格納された後ST103:YES、ROI転送カウンタ601は0に初期化されるtrans_cnt=0ST104。また、バスシフトコントローラ312の内部カウンタも0に初期化されるST105。次に、PExに対して、転送されるデータの要求アドレスが要求アドレス計算機によって計算されるST106。xはPE又はROIのインデックス番号であり、0から開始される。また、xはループ毎にカウントアップされる。要求アドレス計算については、図3及び図4を参照して既に上述したとおりである。ここでは、式についてだけ再記載する。req_addsingle_memory=start_addsingle_memoryver_pos×disthor_posver_pos=trans_cntdivroi_widthhor_pos=trans_cntmodroi_widthPExに対するreq_addsingle_memoryが計算された後、このPExに対して計算されたreq_addsingle_memoryは転送ゲート部311を介して単一メモリ308に転送される。しかしながら、上述したように、必要な要求アドレスが単一メモリ308に与えられるのに対し、不必要な要求アドレスは単一メモリ308に転送されない。したがって、要求アドレスを単一メモリに転送する前にST108、trans_cntがroi_sizeより小さいかどうかを決定するST106。単一メモリ308がreq_addsingle_memoryを受信すると、単一メモリ308はreq_addsingle_memoryに対応するデータ要素を送り返すST109。そして、CP307はデータ要素をラインバッファ306に出力するST110。上述したように、バスシステムは4データ毎にシフトされなければならないST111,ST112。次に、ST113において、xがPEインデックスの最後の番号に達したかが決定される。すなわち、各PEPE0-PEN-1からの1つの要素に対してアドレス計算ST106及び必要なデータ要素のラインバッファへの出力が実行されたかが決定される。xをカウントアップしたST114ときにxが最後の番号に達していない場合、処理はアドレス計算ST106に戻り、ST106~ST113の処理を繰り返す。すなわち、次のPEに対するアドレス計算が行われST106、要求されたデータがラインバッファに出力される。一方、ST113においてxが最後の番号に達した場合、全てのPEに対するデータがラインバッファに出力されている。例えば、trans_cnt=0の場合、各ROIに対する開始アドレスに対応する全ての第1データがラインバッファに出力される。したがって、各PEはラインバッファから割り当てられたデータ要素を取得し、それらをPE自身の内部メモリに格納するST115。この処理は図8を参照することによって理解されるだろう。全ての第1データがラインバッファに格納されると、各PEはラインバッファから割り当てられたデータ要素を取得する。ST106~ST115は、全てのROIの全ての要素が送信されるまでST116、trans_cntをカウントアップしながらST117繰り返される。図4への参照とともに上述したように、trans_cntを1つカウントアップしたときに、ROI内における要求アドレスの位置が1つシフトされることは容易に理解されるだろう。したがって、ST105~ST117を繰り返すことにより、全てのROIの全ての要素を単一メモリからバスシステムに出力することができ、各PEは割り当てられたROIデータを逐次的に取得することができる。さらに、転送ゲート部は各PEx又はROIxに対してtrans_cntがroi_sizeより小さいかどうかを決定するので、不必要なデータは単一メモリに送信されない。したがって、SIMDプロセッサシステムにおける複数のROIの並行データ転送を高速かつ効果的に実行することができる。実施形態2次に、本発明の実施形態2を説明する。この実施形態2として、ライト方向のデータ転送動作を説明する。実施形態1で説明されたシステム構成をこの実施形態2にも適用することができる。図9A及び9Bは内部メモリアレイから単一メモリ308へのライト方向のデータ転送に対するフローチャートを示している。図10は実施形態2のデータ転送動作を概略的に示している。ST201~ST204はST101~ST104と同一である。ST205において、内部メモリから各ROI領域に対する第1データ要素が読み出され、バスシステムのラインバッファに格納される。この工程において、全てのPEは1つの要素データをラインバッファに出力する。内部バスシフトコントローラ312が0に初期化されると、上述したように、バスシステムは4データ毎にシフトされなければならないST207,ST208。ST209において、PExに対して、要求アドレス計算機によって書き込むべきデータの要求アドレスが計算されるST209。このアーキテクチャは実施形態1のST106と同一である。さらに、trans_cntがroi_sizeより小さいかどうかに応じてST210、req_address及びPExから転送されたデータがライト要求とともに単一メモリに送信されるST211。それに続いて、単一メモリはPExから送信されたデータ要素を要求されたアドレスに格納するST212。xがカウントアップされるとST214、処理はバスシフトコントロールST207,ST208及びアドレス計算ST209に戻り、ST207~ST213の処理を繰り返す。ST213において、各PEPE0-PEN-1からの1つの要素に対してアドレス計算ST209及びデータ要素の要求されたアドレスへの格納が実行されたかが決定される。xが最後の番号に達すると、ST205~ST215は、全てのROIの全ての要素が単一メモリに書き戻されるまで、trans_cntをカウントアップしながらST216繰り返される。最終的に、全てのROIデータが単一メモリに書き戻される。ROIの大きさがROI毎に異なるにも関わらず、アドレス計算ST209によって、CPは単一メモリ内に書き戻されるべきデータを特定することができる。さらに、転送ゲート部は各PEx又はROIxに対してtrans_cntがroi_sizeより小さいかどうかを決定するので、不必要なライト要求は単一メモリに送信されない。したがって、SIMDプロセッサシステムにおける複数の対象領域の並行データ転送を高速かつ効果的に実行することができる。変形実施形態1変形された実施形態として、要求アドレス計算機310の代替的なアーキテクチャを説明する。図11は変形例のアドレス計算機1200を示している。このアドレス計算機1200は比較器1202と、2つのスイッチ1203、1204と、レジスタセット201と、加算部1205とを有する。レジスタセット201は多数のレジスタ、及び各PExに対して備えられた2つのレジスタを有する。レジスタは転送されるデータの現在の横位置hor_pos及び現在の縦位置ver_posを一時的に保持することができる。初期状態において、PExのhor_pos及びver_posは0に設定される。各PExに対して、比較器1202はレジスタセット1201からの現在の横位置hor_posをPExの横幅-1と比較する。比較器1202は比較結果をスイッチ1204及びスイッチ1203に出力する。PExのhor_pos及びver_posはスイッチ1204の2つの入力端子にそれぞれ入力され、スイッチ1204はPExのhor_pos及びver_posのどちらかを出力値として選択する。詳細には、現在のPExのhor_posがPExの横幅-1に等しくない場合、スイッチ1204は現在のPExのhor_posを出力値として選択する。スイッチ1204からの出力値は加算部1205に入力され、スイッチ1204からの出力値は1つ増やされる。それに続いて、加算の結果はレジスタセット1201のレジスタに書き戻される。換言すると、各工程が進むとともに、PExのhor_posの値は1つ増やされる。これは、ROI内のデータの位置が横方向に1つシフトされることを意味する。一方、現在のPExのhor_posがPExの横幅-1に等しい場合、比較器1202は結果をスイッチ1203に出力する。このスイッチ1203は横位置hor_posの値をリセットする機能を有する。詳細には、PExのhor_posの値は0にリセットされ、値0がレジスタセット1201のレジスタに書き戻される。さらに、比較結果はスイッチ1205にも出力される。現在のPExのhor_posがPExの横幅-1に等しい場合、このスイッチは縦位置ver_posを出力値として選択し、その値は加算部1205において1つ増やされる。加算の結果はレジスタセット1201のレジスタに書き戻される。換言すると、ROI内のデータの位置がROIxの横方向の端に達すると、データ位置は次の行の先頭にシフトされる。これによって、データ位置を順序正しくシフトすることができる。したがって、ver_pos及びhor_posから計算されるreq_addsingle_memoryを単一メモリのアドレス空間内で順序正しくシフトすることができる。変形実施形態2本発明は上述の実施形態に限定されない。図12は例としてのアーキテクチャを有するSIMDプロセッサ300が動作可能な、可能なシステム設計を示している。システム内の他の構成要素は中央処理装置CPU401と単一メモリ308であってもよく、それらは全て接続を介してバスシステム404に接続されている。当業者には、請求の範囲によって規定される本発明の範囲や意図から外れずに、形式や詳細に対する多様な変更が可能であることが理解されるだろう。ROIの大きさは互いに異なってもよいし、互いに等しくてもよい。上述の実施形態においては、PEが4つ毎にグループ化されているので、バスのシフト動作はモジュラ4計算の結果によって制御されている。しかしながら、バスのシフトは1つのグループ内のPEの数に応じて適切に制御されるべきである。"