(57)【要約】【課題】並列演算器が効率的に演算処理を行なうことが可能なデータ処理装置を提供すること。【解決手段】並列演算モジュールは、複数のＰＥ１３と、複数のＰＥ１３に対応して設けられ、複数のＰＥ１３が演算を行なう際に用いられるデータを記憶するＡバンク１４およびＢバンク１５と、複数のＰＥ１３に対応して設けられ、外部メモリとの間でデータ転送が行なわれるＩＯバンク１６とを含む。選択回路１７は、Ｂバンク１５とＩＯバンク１６とのいずれかを選択的に複数のＰＥ１３に接続する。選択回路１８は、外部メモリと複数のＰＥ１３とのいずれかを選択的にＩＯバンク１６に接続する。したがって、複数のＰＥ１３に演算処理を行なわせるのと並行して、外部メモリからＩＯバンク１６にデータ転送を行なわせることができ、ＰＥ１３が効率的に演算処理を行なうことが可能となる。【選択図】図６
2011141823.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと並列演算モジュールとがシステムバスによって接続され、前記プロセッサからの要求に応じて前記並列演算モジュールが演算を行なうデータ処理装置であって、
前記並列演算モジュールは、複数の演算手段と、
前記複数の演算手段に対応して設けられ、前記複数の演算手段が演算を行なう際に用いられるデータを記憶する第１のバンクおよび第２のバンクと、
前記複数の演算手段に対応して設けられ、前記システムバスを介して外部メモリとの間でデータ転送が行なわれる第３のバンクと、
前記第２のバンクと前記第３のバンクとのいずれかを選択的に前記複数の演算手段に接続する第１の選択手段と、
前記外部メモリと前記複数の演算手段とのいずれかを選択的に前記第３のバンクに接続する第２の選択手段とを含む、データ処理装置。
【請求項２】
前記データ処理装置はさらに、前記第１の選択手段および前記第２の選択手段を切り替えて、前記複数の演算手段に前記第２のバンクを接続させて前記複数の演算手段に演算処理を行なわせるのと並行して、前記第３のバンクに前記外部メモリを接続させてデータ転送を行なわせた後、前記第２の選択手段を切り替えて前記複数の演算手段に前記第３のバンクを接続させて該第３のバンクに記憶される演算対象のデータを前記第１のバンクまたは前記第２のバンクにデータコピーさせる制御手段を含む、請求項１記載のデータ処理装置。
【請求項３】
前記制御手段は、前記第３のバンクにライン状に配置された演算対象のデータを、前記第１のバンクまたは前記第２のバンクに２次元に配置されるようにデータコピーを行なう、請求項２記載のデータ処理装置。
【請求項４】
前記制御手段は、前記第３のバンクにライン状に配置された演算対象のデータの中の不要なデータを除いて、前記第１のバンクまたは前記第２のバンクに２次元に配置されるようにデータコピーを行なう、請求項３記載のデータ処理装置。
【請求項５】
前記並列演算モジュールの演算バスは、前記システムバスのバス幅よりも大きなバス幅を有しており、
前記外部メモリから前記第３のバンクへのデータ転送よりも高速に、前記第３のバンクから前記第１のバンクまたは前記第２のバンクへのデータコピーを行なうことができる、請求項１〜４のいずれかに記載のデータ処理装置。
【請求項６】
前記第３のバンクの容量は、前記第１のバンクおよび前記第２のバンクの容量よりも小さい、請求項１〜５のいずれかに記載のデータ処理装置。
【請求項７】
前記データ処理装置はさらに、外部とのデータ入出力を行なう入出力部を有し、
前記外部メモリは、前記入出力部に入力されたデータを記憶し、前記プロセッサからの要求に応じて前記入力されたデータを前記第３のバンクに転送する、請求項１記載のデータ処理装置。
【請求項８】
複数の演算手段と、
前記複数の演算手段に対応して設けられ、前記複数の演算手段が演算を行なう際に用いられるデータを記憶する第１のバンクおよび第２のバンクと、
前記複数の演算手段に対応して設けられ、外部との間でデータ転送が行なわれる第３のバンクと、
前記第２のバンクと前記第３のバンクとのいずれかを選択的に前記複数の演算手段に接続する第１の選択手段と、
前記外部メモリと前記複数の演算手段とのいずれかを選択的に前記第３のバンクに接続する第２の選択手段とを含む、並列演算装置。
【請求項９】
前記並列演算装置はさらに、前記第１の選択手段および前記第２の選択手段を切り替えて、前記複数の演算手段に前記第２のバンクを接続させて前記複数の演算手段に演算処理を行なわせるのと並行して、前記第３のバンクに前記外部メモリを接続させてデータ転送を行なわせた後、前記第２の選択手段を切り替えて前記複数の演算手段に前記第３のバンクを接続させて該第３のバンクに記憶される演算対象のデータを前記第１のバンクまたは前記第２のバンクにデータコピーさせる制御手段を含む、請求項８記載の並列演算装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、信号処理アプリケーションなどを高速に処理する技術に関し、特に、単一命令複数データ流（ＳＩＭＤ：Single Instruction Multiple Data stream）の演算方式を用いて大量のデータを高速に処理するデータ処理装置および並列演算装置に関する。
【背景技術】
【０００２】
近年、デジタル民生機器の普及に伴い、音声や画像といった大量のデータを高速に処理するデジタル信号処理の重要性が高まってきている。このようなデジタル信号処理においては、一般に専用の半導体装置としてＤＳＰ（Digital Signal Processor）が用いられることが多い。しかしながら、信号処理アプリケーション、特に画像処理アプリケーションにおいては、処理対象のデータ量が非常に大きいため、ＤＳＰでも処理能力が十分ではない。
【０００３】
これに対して、複数の演算器を並列に動作させることによって高い信号処理性能を実現する並列プロセッサ技術の開発が進んでいる。このような専用プロセッサをＣＰＵ（Central Processing Unit）に付随するアクセラレータとして用いれば、組み込み機器に搭載されるＬＳＩのように低消費電力、低コストが要求される場合においても高い信号処理性能を実現することができる。これに関連する技術として、下記の特許文献１〜２に開示された発明がある。
【０００４】
特許文献１は、ＳＩＭＤ演算を効率的に行うことができる半導体集積回路を提供することを目的とする。半導体集積回路は、複数個のデータを並列演算可能なＳＩＭＤ演算部と、ＳＩＭＤ演算部に接続可能なデータバッファと、データバッファとの間のデータ転送制御を行うデータ転送制御部とを有する。データ転送制御部は、データバッファから読み出された複数個のデータに対するＳＩＭＤ演算部による演算動作に並行してデータバッファに次の演算に用いるデータを転送制御可能とされる。ＳＩＭＤ演算部による演算動作に並行してデータバッファには以降の演算に用いるデータが転送されるから、ＳＩＭＤ演算部はデータバッファへの演算データの内部転送動作によって演算動作が中断されず、間段なく演算動作を行うことができ、ＳＩＭＤ演算を効率的に行うことができる。
【０００５】
特許文献２は、比較的長い時間を要する外部メモリへのアクセスが頻繁に行われる場合、ＳＩＭＤ型演算は、外部メモリのアクセスによる時間ロスにより十分に性能が上がらないといった問題点を解決することを目的とする。ＳＩＭＤ型演算部と外部メモリとの間に、２面の内蔵メモリを設ける。命令制御器により、一方の内蔵メモリがＳＩＭＤ型演算部に接続されて演算が実行される間、他方の内蔵メモリは、データ転送制御器を介して外部メモリに接続され、次の演算で必要となるパックデータを外部メモリから読み出したり、あるいは、既にＳＩＭＤ型演算部で実行された演算結果であるパックデータを外部メモリに書き込んだりするように動作させる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００２−３５８２８８号公報
【特許文献２】特開平１１−３１２０８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述のような複数の演算器を並列に動作させる専用プロセッサ、たとえばＳＩＭＤ方式の並列プロセッサを用いて画像処理を行なう場合、後述のように並列プロセッサ内部の演算器アレイ（ＰＥ：Processor Element）は、ＰＥに接続されるデータバッファにアクセスしながら演算処理を行なう。そのため、外部メモリからデータバッファへのデータ転送と、ＰＥによるデータバッファへのアクセスとが効率的に行なわれる必要があり、そのような機構が必要となる。
【０００８】
また、画像データの中から２次元の画像データを切り出して演算処理を行なう場合には、ＰＥに接続されるデータバッファに切り出した画像データを効率的に配置するための機構が必要となる。
【０００９】
本発明は、上記問題点を解決するためになされたものであり、その目的は、並列演算器が効率的に演算処理を行なうことが可能なデータ処理装置および並列演算装置を提供することである。
【課題を解決するための手段】
【００１０】
本発明の一実施例によれば、ＣＰＵと並列演算モジュールとがシステムバスによって接続され、ＣＰＵからの要求に応じて並列演算モジュールが演算を行なうデータ処理装置が提供される。並列演算モジュールは、複数の並列演算器と、複数の並列演算器に対応して設けられ、複数の並列演算器が演算を行なう際に用いられるデータを記憶するＡバンクおよびＢバンクと、複数の並列演算器に対応して設けられ、外部メモリとの間でデータ転送が行なわれるＩＯバンクと、ＢバンクとＩＯバンクとのいずれかを選択的に複数の並列演算器に接続する第１の選択回路と、外部メモリと複数の並列演算器とのいずれかを選択的にＩＯバンクに接続する第２の選択回路とを含む。
【発明の効果】
【００１１】
この実施例によれば、第２の選択回路が、外部メモリと複数の並列演算器とのいずれかを選択的にＩＯバンクに接続するので、複数の並列演算器に演算処理を行なわせるのと並行して、外部メモリからＩＯバンクにデータ転送を行なわせることができ、並列演算器が効率的に演算処理を行なうことが可能となる。
【図面の簡単な説明】
【００１２】
【図１】ＳＩＭＤ方式の並列演算モジュールを用いたデータ処理装置の一例を示す図である。
【図２】図１に示すデータ処理装置を用いた汎用的な画像処理の一例を示す図である。
【図３】図１に示すデータ処理装置を用いた画像処理のデータフローの一例を示す図である。
【図４】並列演算モジュール１００のデータバッファ１１４および１１５のアドレス割り付けの一例を示す図である。
【図５】並列演算モジュール１００内部でＰＥ１１３、データバッファ１１４および１１５が演算制御回路１１２から制御信号を受けて、どのように並列演算を行なうかを説明するための図である。
【図６】本発明の実施の形態におけるデータ処理装置の並列演算モジュールの構成例を示す図である。
【図７】図６に示す並列演算モジュール内部において演算動作とデータ入出力動作とが並列に行なわれる場合を説明するための図である。
【図８】バンク間コピーの動作を説明するための図である。
【図９】図７に示す並列動作および図８に示すバンク間コピーを用いた本発明の実施の形態における並列演算モジュールの動作シーケンスを説明するための図である。
【図１０】本発明の実施の形態におけるデータ処理装置によって１ライン分の画像データを処理したときの処理時間を説明するための図である。
【図１１】バンク間コピーを用いたＲＯＩ（Region Of Interest）データの再構成を説明するための図である。
【図１２】図１に示すデータ処理装置によるＲＯＩ処理の一例を示す図である。
【図１３】特徴点とその周辺領域とを切り出してデータバッファ１１４または１１５に配置するところを示す図である。
【図１４】バンク間コピーによるデータアラインメントを説明するための図である。
【図１５】バンク間コピーによる効率的なデータアラインメントを説明するための図である。
【図１６】本発明の実施の形態の変形例におけるデータ処理装置の並列演算モジュールの構成例を示す図である。
【図１７】本発明におけるデータ処理装置の適用システム例である。
【発明を実施するための形態】
【００１３】
図１は、ＳＩＭＤ方式の並列演算モジュールを用いたデータ処理装置の一例を示す図である。このデータ処理装置は、並列演算モジュール１００と、ＣＰＵ１０１と、ＤＭＡ（Direct Memory Access）コントローラ１０２と、メモリインタフェース１０３と、外部メモリ１０４とを含み、これらがシステムバス１０５を介して接続される。
【００１４】
外部メモリ１０４は、ＣＰＵ１０１によって実行されるプログラムや、プログラムの実行の際に参照されるデータなどを記憶する。また、外部メモリ１０４は、画像データなどの並列演算モジュール１００によって演算されるデータを記憶する。図１において、外部メモリ１０４は外付けのメモリとして記載しているが、データ処理装置内部に搭載するようにしても良い。
【００１５】
メモリインタフェース１０３は、ＣＰＵ１０１およびＤＭＡコントローラ１０２からのアクセス要求に応じて外部メモリ１０４に対する命令コードのフェッチおよびデータの読出し／書込みを制御する。
【００１６】
ＣＰＵ１０１は、図示しない内蔵メモリまたはメモリインタフェース１０３を介して外部メモリ１０４から命令コードをフェッチして実行することにより、データ処理装置全体の制御を行なう。
【００１７】
ＤＭＡコントローラ１０２は、ＣＰＵ１０１からのＤＭＡ転送要求に応じてデータ処理装置内のＤＭＡ転送を制御する。たとえば、ＤＭＡコントローラ１０２は、外部メモリ１０４と並列演算モジュール１００内のデータバッファ１１４または１１５との間のＤＭＡ転送を実行する。
【００１８】
並列演算モジュール１００は、入出力制御回路１１１と、演算制御回路１１２と、エントリ数に対応した個数のＰＥ１１３と、ＰＥ１１３のそれぞれに対応して設けられるＳＲＡＭ（以下、データバッファと呼ぶ。）１１４および１１５とを含む。
【００１９】
データバッファ１１４および１１５は、ＰＥ１１３の処理対象データ、たとえば画像データをサンプリングされたデータの配列として一時的に記憶する。ＰＥ１１３のそれぞれは、データレジスタ１１４および１１５に記憶された配列データの各要素に対して演算を行なうことにより並列処理を実現する。このＰＥ１１３はエントリ数に対応して設けられており、実現する並列度に応じて性能を最適化することができる。ここで、演算器アレイはＳＩＭＤ方式で演算を行なっており、全てのＰＥ１１３は同じ動作をするものとする。なお、ＰＥ１１３、データレジスタ１１４および１１５の動作の詳細は後述する。
【００２０】
入出力制御回路１１１は、システムバス１０５を介してデータの入出力を制御する。入出力制御回路１１１は、システムバス１０５を介して信号処理要求を受けると、その信号処理要求を演算制御回路１１２に出力する。また、入出力制御回路１１１は、演算制御回路１１２の制御によって信号処理結果を受けると、その信号処理結果をシステムバス１０５を介して出力する。
【００２１】
演算制御回路１１２は、入出力制御回路１１１から信号処理要求を受けると、図示しない内蔵の命令メモリに格納されたマイクロコードに対応してＰＥ１１３、データバッファ１１４および１１５に制御信号を出力しながら演算を順次ＰＥ１１３に行なわせ、信号処理要求に対応した信号処理を行なわせる。そして、演算制御回路１１２は、データバッファ１１４および１１５に記憶される信号処理結果を入出力制御回路１１１に出力させる。
【００２２】
図２は、図１に示すデータ処理装置を用いた汎用的な画像処理の一例を示す図である。図２においては、汎用的な画像処理として、たとえばフィルタ処理のような入力画像の全ての画素に対して同一の局所演算処理を並列に施す場合を示している。このフィルタ処理は、画像データ中のエッジを浮かび出させるための処理、画像をぼやけさせるための処理などである。
【００２３】
図２は、画素Ｂｎに対してフィルタ処理を施すときの処理を示しており、画素Ｂｎの周辺画素の画素値を用いて処理を行なう。周辺の画素Ａｎ−１、Ｃｎ−１、Ａｎ＋１およびＣｎ＋１の画素値を加算して係数Ｐ０を乗算する。また、画素Ｂｎ−１、Ａｎ、Ｂｎ＋１およびＣｎの画素値を加算して係数Ｐ１を乗算する。また、画素Ｂｎの画素値に係数Ｐ２を乗算する。そして、これらの値を加算することによって、フィルタ処理後の画素値Ｂｎ  ｏｕｔを得る。
【００２４】
図３は、図１に示すデータ処理装置を用いた画像処理のデータフローの一例を示す図である。このような画像処理においては、外部メモリ１０４に入力画像データが格納されており、この画像データが１列単位で並列演算モジュール１００のデータバッファ１１４または１１５にＤＭＡ転送される。
【００２５】
データバッファ１１４および１１５には入力データ領域、中間データ領域および出力データ領域が設けられており、ＰＥ１１３は入力データ領域に格納された１列単位の画像データに対して並列に演算処理を実行する。ＰＥ１１３は、演算処理中に中間データの保存が必要な場合には、データバッファ１１４または１１５の中間データ領域に中間データを保存しながら処理を行なう。演算結果はデータバッファ１１４または１１５の出力データ領域に格納され、ＤＭＡ転送によって外部メモリ１０４に出力画像データとして転送される。
【００２６】
図３に示すような外部メモリ１０４とデータバッファ１１４または１１５との間のＤＭＡ転送時や、並列演算モジュール１００内における演算時には、並列演算モジュール１００内部のデータバッファ１１４および１１５のアドレスを指定する必要がある。
【００２７】
図４は、並列演算モジュール１００のデータバッファ１１４および１１５のアドレス割り付けの一例を示す図である。ＰＥ１１３のそれぞれに対して、左側に５１２ビット（ビットアドレス５１２〜１０２３）分のデータバッファ１１４が接続され、右側に５１２ビット（ビットアドレス０〜５１１）分のデータバッファ１１５が接続されている。なお、ＰＥと１０２４ビットのデータバッファとを１単位として、「エントリ」と呼ぶことにする。したがって、図４においては、１０２４エントリ（エントリアドレス０〜１０２３）分のアドレス空間が示されていることになる。
【００２８】
このように、ビットアドレスとエントリアドレスとを組み合わせることによって、ＤＭＡ転送時や演算時に対象データを指し示すことができる。
【００２９】
図５は、並列演算モジュール１００内部でＰＥ１１３、データバッファ１１４および１１５が演算制御回路１１２から制御信号を受けて、どのように並列演算を行なうかを説明するための図である。ＰＥ１１３は、ビットアドレスで指定されたデータバッファ１１４および１１５内の斜線を施した演算対象データを用いて演算を行ない、演算結果をビットアドレスで指定されたデータバッファ１１５内の斜線を施した領域に格納する。このとき、ＳＩＭＤ演算により全てのエントリが同時動作するため、エントリアドレスを指定する必要はない。
【００３０】
以上説明した並列演算器を用いた画像処理技術に関し、本発明の実施の形態におけるデータ処理装置について以下に詳細に説明する。
【００３１】
図６は、本発明の実施の形態におけるデータ処理装置の並列演算モジュールの構成例を示す図である。この並列演算モジュールは、入出力制御回路１１と、演算制御回路１２と、エントリ数に対応する個数のＰＥ１３と、データバッファ１４〜１６と、選択回路１７および１８とを含む。なお、データ処理装置の全体的な構成は、図１に示すデータ処理装置の構成と同様である。
【００３２】
データバッファ１４〜１６は、それぞれ独立したバンク化された構成を有している。データバッファ１４にはビットアドレス５１２〜１０２３が割り当てられており、この領域をＡバンク（第１のバンク）と呼ぶ。データバッファ１５にはビットアドレス２５６〜５１１が割り当てられており、この領域をＢバンク（第２のバンク）と呼ぶ。また、データバッファ１６にはビットアドレス０〜２５５が割り当てられており、この領域をＩＯバンク（第３のバンク）と呼ぶ。
【００３３】
図１の構成と比較すると、例えば、データバッファ１１４の領域がＡバンク１４、データバッファ１１５の領域がＢバンク１５とＣバンク１６とにそれぞれ相当する。
【００３４】
ＰＥ１３のそれぞれは、データレジスタ１４〜１６に記憶された画像データの各要素に対して演算を行なうことにより並列処理を実現する。このＰＥ１３はエントリ数に対応して設けられており、実現する並列度に応じて性能を最適化することができる。
【００３５】
入出力制御回路１１は、システムバス１０５を介してデータの入出力を制御する。入出力制御回路１１は、システムバス１０５を介して信号処理要求を受けると、その信号処理要求を演算制御回路１２に出力する。また、入出力制御回路１１は、演算制御回路１２の制御によって信号処理結果を受けると、その信号処理結果をシステムバス１０５を介して出力する。
【００３６】
演算制御回路１２は、入出力制御回路１１から信号処理要求を受けると、図示しない内蔵の命令メモリに格納されたマイクロコードに対応してＰＥ１３、データバッファ１４〜１６および選択回路１７〜１８に制御信号を出力しながら演算を順次ＰＥ１３に行なわせ、信号処理要求に対応した信号処理を行なわせる。このとき、並行してデータ入出力の制御も行なう。
【００３７】
選択回路１７（第１の選択手段）は、演算制御回路１２から出力される制御信号によってデータの経路を変更することができる。選択回路１７は、Ｂバンク１５との接続を選択することにより、ＰＥ１３はＢバンク１５に記憶されるデータを参照したり、演算後のデータをＢバンク１５に格納したりすることができる。また、選択回路１７は、選択回路１８を介してＩＯバンク１６との接続を選択することにより、ＰＥ１３はＩＯバンク１６に記憶されるデータを参照したり、演算後のデータをＩＯバンク１６に格納したりすることができる。
【００３８】
選択回路１８（第２の選択手段）は、演算制御回路１２から出力される制御信号によってデータの経路を変更することができる。選択回路１８は、入出力制御回路１１との接続を選択することにより、入出力制御回路１１を介して外部メモリ１０４とＩＯバンク１６との間のデータ転送を行なうことができる。また、選択回路１８は、選択回路１７を介してＰＥ１３との接続を選択することにより、ＰＥ１３はＩＯバンク１６に記憶されるデータを参照したり、演算後のデータをＩＯバンク１６に格納したりすることができる。
【００３９】
図７は、図６に示す並列演算モジュール内部において演算動作とデータ入出力動作とが並列に行なわれる場合を説明するための図である。選択回路１７は、Ｂバンク１５との接続を選択しており、ＰＥ１３はＡバンク１４およびＢバンク１５からデータを読み出して演算を行ない、演算結果をＡバンク１４またはＢバンク１５に書き込む。
【００４０】
選択回路１８は、入出力制御回路１１との接続を選択しており、入出力制御回路１１を介して外部メモリ１０４とＩＯバンク１６との間でデータ入出力が行なわれる。このように、Ａバンク１４およびＢバンク１５を用いた演算動作中に、ＩＯバンク１６を用いたデータ転送が並列に行なえる。
【００４１】
図８は、バンク間コピーの動作を説明するための図である。選択回路１７および１８は、ＰＥ１３とＩＯバンク１６との接続を選択しており、ＰＥ１３は、次の演算を行なうためにＩＯバンク１６に記憶されるデータをＡバンク１４またはＢバンク１５にコピーする。
【００４２】
図８に示すようにＰＥ１３がデータコピーを行なうことにより、外部メモリ１０４からＩＯバンク１６に転送されたデータをＡバンク１４またはＢバンク１５に転送したり、Ａバンク１４またはＢバンク１５に記憶された演算処理後のデータをＩＯバンク１６に転送したりすることができる。
【００４３】
図９は、図７に示す並列動作および図８に示すバンク間コピーを用いた本発明の実施の形態における並列演算モジュールの動作シーケンスを説明するための図である。まず、Ｔ１において、演算制御回路１２は、選択回路１８を切り替えて入出力制御回路１１とＩＯバンク１６とを接続させ、外部メモリ１０４からＩＯバンク１６への演算に必要なデータのＤＭＡ転送が行なわれる。
【００４４】
演算制御回路１２は、ＰＥ１３による演算とＤＭＡ転送との両方の停止を確認すると、Ｔ２において、選択回路１７および１８を切り替えてＰＥ１３とＩＯバンク１６とを接続させ、ＰＥ１３を制御してＩＯバンク１６からＡバンク１４またはＢバンク１５へのバンク間コピーを行なう。
【００４５】
Ｔ３において、演算制御回路１２は、選択回路１７を切り替えてＰＥ１３とＢバンク１５とを接続させ、ＰＥ１３を制御してＡバンク１４およびＢバンク１５を用いた演算処理を行わせる。これと並行して、演算制御回路１２は、選択回路１８を切り替えて入出力制御回路１１とＩＯバンク１６とを接続させ、外部メモリ１０４からＩＯバンク１６への次の演算に必要なデータのＤＭＡ転送が行なわれる。
【００４６】
演算制御回路１２は、ＰＥ１３による演算とＤＭＡ転送との両方の停止を確認すると、Ｔ４において、選択回路１７および１８を切り替えてＰＥ１３とＩＯバンク１６とを接続させ、ＰＥ１３を制御してＡバンク１４またはＢバンク１５からＩＯバンク１６への演算結果のバンク間コピーを行なう。
【００４７】
Ｔ５において、演算制御回路１２は、既にＩＯバンク１６にＤＭＡ転送されている演算対象のデータをＡバンク１４またはＢバンク１５にバンク間コピーを行なう。
【００４８】
Ｔ６において、演算制御回路１２は、選択回路１７を切り替えてＰＥ１３とＢバンク１５とを接続させ、ＰＥ１３を制御してＡバンク１４およびＢバンク１５を用いた演算処理を行わせる。これと並行して、演算制御回路１２は、選択回路１８を切り替えて入出力制御回路１１とＩＯバンク１６とを接続させ、ＩＯバンク１６から外部メモリ１０４への演算結果のＤＭＡ転送、および外部メモリ１０４からＩＯバンク１６への次の演算に必要なデータのＤＭＡ転送が行なわれる。
【００４９】
演算制御回路１２は、ＰＥ１３による演算とＤＭＡ転送との両方の停止を確認すると、Ｔ７において、選択回路１７および１８を切り替えてＰＥ１３とＩＯバンク１６とを接続させ、ＰＥ１３を制御してＡバンク１４またはＢバンク１５からＩＯバンク１６への演算結果のバンク間コピーを行なう。
【００５０】
Ｔ８において、演算制御回路１２は、既にＩＯバンク１６にＤＭＡ転送されている演算対象のデータをＡバンク１４またはＢバンク１５にバンク間コピーを行なう。
【００５１】
Ｔ９において、演算制御回路１２は、選択回路１７を切り替えてＰＥ１３とＢバンク１５とを接続させ、ＰＥ１３を制御してＡバンク１４およびＢバンク１５を用いた演算処理を行わせる。これと並行して、演算制御回路１２は、選択回路１８を切り替えて入出力制御回路１１とＩＯバンク１６とを接続させ、ＩＯバンク１６から外部メモリ１０４への演算結果のＤＭＡ転送、および外部メモリ１０４からＩＯバンク１６への次の演算に必要なデータのＤＭＡ転送が行なわれる。
【００５２】
上述のＴ４〜Ｔ９の動作が必要回数分だけ繰り返され、画像データに対する演算処理が行われる。
【００５３】
このように並列演算モジュールを動作させた場合、ＩＯバンク１６とＡバンク１４またはＢバンク１５との間のバンク間コピーは演算制御回路１２の制御によってＰＥ１３により行なわれることになる。すなわち、Ｔ２，Ｔ４，Ｔ５，Ｔ７およびＴ８に示す動作は演算プログラムによって行なわれる。このデータコピーの実行にはあるサイクル数だけ必要となる。
【００５４】
しかし、例えば、演算器（ＰＥ１３）の個数を非常に多い超並列構成とすることで大量のデータを一括処理して大容量の画像データの高速処理を実現する場合には、バンク間の演算バス幅がシステムバスなどのバンド幅よりも非常に広いため、Ａバンク１４およびＢバンク１５を用いた演算処理のサイクル数に比べると無視できるほどの小さいサイクル数でＩＯバンクからＡバンク１４あるいはＢバンク１５へデータコピーを行なうことができる。このように、演算器（ＰＥ１３）の個数が非常に多い超並列構成では本発明による高速化の効果が非常に大きいといえる。
【００５５】
図１０は、本発明の実施の形態におけるデータ処理装置によって１ライン分の画像データを処理したときの処理時間を説明するための図である。図１０に示すように、ｎライン目の処理において、外部メモリ１０４からのデータ転送動作と外部メモリ１０４へのデータ転送動作とが直列的に行なわれ、これと並行して並列演算器（ＰＥ１３）における演算動作が行なわれる。したがって、ｎライン目の処理に要する時間は、外部メモリ１０４からのデータ転送時間ｔＷＲと外部メモリ１０４へのデータ転送時間ｔＲＤとの合計、または並列演算器における演算時間ｔＥＸとなり、高速化を図れることが分かる。なお、並列演算器における演算時間には、バンク間コピーに要する時間が含まれる。
【００５６】
図１１は、バンク間コピーを用いたＲＯＩ（Region Of Interest）データの再構成を説明するための図である。図１２は、ＲＯＩ処理の一例を示す図である。図１２においては、処理画像内の特徴点とその周辺領域とを、たとえば６４×６４画素で切り出し、これら画素データに対して演算を行なうことにより、特徴量を６４次元ベクトルとして出力する。このとき、切り出した画像データを並列演算モジュール内のデータバッファ１１４または１１５に転送すると、データバッファにはライン状に配置されてしまう。
【００５７】
図１３は、特徴点とその周辺領域とを切り出してデータバッファ１１４または１１５に配置するところを示す図である。図１３（ａ）は、外部メモリ１０４に記憶される入力画像の特徴点とその周辺領域とを示している。
【００５８】
図１３（ｂ）は、ＤＭＡ転送によって特徴点とその周辺領域の画素を切り出してデータバッファ１１４または１１５に転送したところを示している。図１３（ｂ）に示すように、画像データがデータバッファ１１４または１１５にライン状に配置されてしまう。
【００５９】
図１３（ｃ）は、切り出した画像データをデータバッファ１１４または１１５に２次元に配置したところを示している。図１３（ｃ）に示すように、データバッファ１１４または１１５に画像データが２次元に配置される機構が必要とされる。
【００６０】
図１３を用いて説明したように、外部メモリ１０４とＩＯバンク１６との間でＤＭＡ転送を行なうと、特徴点とその周辺領域とがＩＯバンク１６にライン状に配置されてしまう。演算制御回路１２はＰＥ１３を制御して、ＩＯバンク１６にライン状に配置された画像データを、Ａバンク１４に２次元に配置されるようにデータコピーを行わせる。
【００６１】
たとえば、切り出した画像データが６４×６４画素の場合には、特定の６４個のＰＥ１３によって演算処理を行える。したがって、他のＰＥ１３は他の特徴点とその周辺領域とを切り出した画像データの演算処理を並列に行なうことができる。
【００６２】
図１４は、バンク間コピーによるデータアラインメントを説明するための図である。ＤＭＡ転送可能なサイズ、すなわちシステムバスのバス幅が６４ビットの場合、６４ビット単位でしかＤＭＡ転送ができない。そのため、任意のサイズでの画像データのＤＭＡ転送ができない。
【００６３】
図１４に示すように、転送したいＲＯＩ領域のサイズが６４ビット未満の場合には、網掛けで示す不要な画像データを含んだ形でＤＭＡ転送が行なわれ、ＩＯバンク１６にライン状に配置される。演算制御回路１２はＰＥ１３を制御して、ＩＯバンク１６にライン状に配置された画像データの中からＲＯＩ領域に対応する画像データのみを、Ａバンク１４またはＢバンク１５に２次元に配置されるようにデータコピーを行わせる。
【００６４】
このように、２次元状にデータをＡバンク１４（または、Ｂバンク１５）に配置することができれば、並列演算器内でも画像を２次元形状を維持したまま演算することができ、隣接ピクセル間の処理を高速に行なえるなどの利点がある。図１４のようなデータ配置状態で並列演算を行なうことも可能であるが、並列演算器を最大限に利用するためにはＡバンク１４で示されるデータバッファのうちデータが配置されていない残りの領域も利用した方が演算の効率を高めることができる。
【００６５】
図１５は、バンク間コピーによる効率的なデータアラインメントを説明するための図である。具体的には、図１５に示すような複数のＲＯＩ領域をＩ／Ｏバンク１６に転送しておき、Ａバンク１４にコピーを行なう際に、２次元的な整列を行ないながらコピーを行なえば、並列度を生かしながら効率の高い演算を行なうことができる。
【００６６】
以上説明したように、本実施の形態におけるデータ処理装置によれば、ＩＯバンク１６のみを外部メモリ１０４との間でデータ転送可能とし、ＰＥ１３がＡバンク１４およびＢバンク１５を用いて演算処理を行なうのと並行して、ＩＯバンク１６と外部メモリ１０４との間でデータ転送を行なうようにした。したがって、並列演算器を用いた画像処理の高速化を図ることが可能となった。
【００６７】
またさらに、ＩＯバンク１６とＡバンク１４およびＢバンク１５との間のデータ転送を、ＰＥ１３を用いて行なうため、バンク間におけるデータ転送についても高速で処理することが可能となった。
【００６８】
また、ＩＯバンク１６に転送された画像データをＡバンク１４またはＢバンク１５にバンク間コピーを行なった後、Ａバンク１４およびＢバンク１５を用いた演算処理を行なうようにしたので、任意のサイズのＲＯＩデータをデータバッファに２次元で配置することができ、並列演算器が効率的に画像処理を行なうことが可能となった。
【００６９】
また、ＤＭＡ転送の制限によって不要な画像データがＩＯバンク１６に配置された場合でも、ＰＥ１３を用いたバンク間コピーによってＲＯＩデータのみをＡバンク１４またはＢバンク１５に配置することができ、並列演算器が効率的に画像処理を行なうことが可能となった。
【００７０】
（変形例）
図１６は、本発明の実施の形態の変形例におけるデータ処理装置の並列演算モジュールの構成例を示す図である。なお以下で、図８に示すデータ処理装置と同じ構成部分には同一の符号を付し、その詳細な説明は繰り返さない。
【００７１】
この並列演算モジュールは、入出力制御回路１１と、演算制御回路１２と、エントリ数に対応する個数のＰＥ１３と、データバッファ１４〜１５および１６２と、選択回路１７および１８とを含む。なお、データ処理装置の全体的な構成は、図１に示すデータ処理装置の構成と同様である。
【００７２】
画像処理においては、例えば隣接するフレームの差分を演算するなど、近い範囲に存在する画像データや一旦処理されたデータを以後の演算において再利用することが多く、演算ごとにすべての画像データを外部メモリ１０４からデータ転送する必要はない。複数の演算処理で用いるデータは複数の演算処理の間、Ａバンク１４やＢバンク１５においてデータを保持する。
【００７３】
そのため、差分を演算する処理のような場合には、演算処理間のデータ転送は新たに必要となる画像データや演算結果の転送に限られ、データ転送に用いるＩＯバンク１６２はＡバンク１４、Ｂバンク１５に比べて小さな容量で実現できる。
【００７４】
以上説明したように、本実施の形態の変形例におけるデータ処理装置によれば、ＩＯバンク１６２をＡバンク１４、Ｂバンク１５に比べて小さな容量で実現することが可能となり、チップ面積の小さなデータ処理装置を提供することが可能となった。
【００７５】
（適用例）
図１７は、本発明におけるデータ処理装置の適用システム例である。なお以下で、図１に示すデータ処理装置と同じ構成部分には同一の符号を付し、その詳細な説明は繰り返さない。
【００７６】
ストリーム処理部２００は、ＭＰＥＧ（Moving Picture Experts Group）などの画像コーデックの１処理であるストリーム処理を行う。映像処理部２０１は、ストリーム処理部２００と連携して画像コーデックの符号化や復号化を行う。音声処理部２０２は、音声コーデックの符号化や復号化を行う。
【００７７】
ＰＣＩインタフェース２０３は、システムバス１０５と標準バスであるＰＣＩバス２０４とを接続する。ＰＣＩバス２０４には、ハードディスクなどの各種ＰＣＩデバイス２０５が接続される。
【００７８】
表示制御部２０６は、表示デバイスであるディスプレイ２０７に接続され、ディスプレイ２０７上の画像表示を制御する。
【００７９】
ＤＭＡコントローラ１０２には、ＤＭＡバス１０５を介して、各種ＩＯデバイスが接続される。ＩＯデバイスには、カメラなどの映像入出力を行う映像入出力部２０９、ストリームを入出力するストリーム入出力部２１０、音声の入出力を行う音声入出力部２１１などがある。
【００８０】
本発明の並列演算モジュールは、例えばストリーム処理部２００に配置されて画像処理を行う。このようなシステムは、映像や音声の入出力を有し、映像や音声処理を行うシステムであり、例えば携帯電話やカメラなどがある。
【００８１】
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【００８２】
１１，１１１  入出力制御回路、１２，１１２  演算制御回路、１３，１１３  ＰＥ、１４〜１６，１６２，１１４，１１５  データバッファ、１７，１８  選択回路、１００  並列演算モジュール、１０１  ＣＰＵ、１０２  ＤＭＡコントローラ、１０３  メモリインタフェース、１０４  外部メモリ、１０５  システムバス。
【図１】
2011141823.tif 000003
【図２】
2011141823.tif 000004
【図３】
2011141823.tif 000005
【図４】
2011141823.tif 000006
【図５】
2011141823.tif 000007
【図６】
2011141823.tif 000008
【図７】
2011141823.tif 000009
【図８】
2011141823.tif 000010
【図９】
2011141823.tif 000011
【図１０】
2011141823.tif 000012
【図１１】
2011141823.tif 000013
【図１２】
2011141823.tif 000014
【図１３】
2011141823.tif 000015
【図１４】
2011141823.tif 000016
【図１５】
2011141823.tif 000017
【図１６】
2011141823.tif 000018
【図１７】
2011141823.tif 000019