(57)【要約】【課題】総転送量を複数に分けた一時転送量単位の複数のＤＭＡ転送を、一時転送量の転送が終了する毎にＣＰＵから転送再開の指示を受けることなく自律的に再開させて並列動作させることのできるＤＭＡ転送装置を提供する。【解決手段】関連付け設定部１５は、ＤＭＡ１〜４を、前段のＤＭＡの転送先メモリ領域を後段のＤＭＡの転送元メモリ領域とする前段後段の関係に関連付け、連動制御部１６は、前段のＤＭＡの転送済みデータ量と後段のＤＭＡの転送済みデータ量を比較し、前段のＤＭＡの転送済みデータ量が後段のＤＭＡの転送済みデータ量に所定の一時転送量を加算した値以上の場合に、後段のＤＭＡ転送部に、一時転送量の転送完了で一時停止するＤＭＡ転送を開始させる起動処理を、後段のＤＭＡの転送済みデータ量が所定の総転送量に達するまで繰り返し行う。【選択図】図１
2017156971.tif 000002
【特許請求の範囲】
【請求項１】
複数のＤＭＡ転送部と、
前記ＤＭＡ転送部を、前段のＤＭＡ転送部の転送先メモリ領域を後段のＤＭＡ転送部の転送元メモリ領域とする前段後段の関係に関連付ける関連付け設定部と、
前段のＤＭＡ転送部の転送済みデータ量と後段のＤＭＡ転送部の転送済みデータ量を比較し、前段のＤＭＡ転送部の転送済みデータ量が後段のＤＭＡ転送部の転送済みデータ量に所定の一時転送量を加算した値以上の場合に、後段のＤＭＡ転送部に、前記一時転送量の転送完了で一時停止するＤＭＡ転送を開始させる起動処理を、後段のＤＭＡ転送部の転送済みデータ量が所定の総転送量に達するまで繰り返し行う連動制御部と、
を有する
ことを特徴とするＤＭＡ転送装置。
【請求項２】
前記連動制御部は、
前記関連付け設定部によって、第３ＤＭＡ転送部が、第１ＤＭＡ転送部の転送先メモリ領域を第１転送元メモリ領域とし、第２ＤＭＡ転送部の転送先メモリ領域を第２転送元メモリ領域とし、前記第１転送元メモリ領域と前記第２転送元メモリ領域の双方からデータを読み出して転送先に転送するように、前記第１ＤＭＡ転送部と前記第２ＤＭＡ転送部に関連付けられた場合に、
前記第１ＤＭＡ転送部の転送済みデータ量と前記第３ＤＭＡ転送部の転送済みデータ量との比較、および前記第２ＤＭＡ転送部の転送済みデータ量と前記第３ＤＭＡ転送部の転送済みデータ量との比較を行い、前記第１ＤＭＡ転送部の転送済みデータ量および前記第２ＤＭＡ転送部の転送済みデータ量が共に前記第３ＤＭＡ転送部の転送済みデータ量に所定の一時転送量を加算した値以上の場合に、前記第３ＤＭＡ転送部に、前記一時転送量の転送完了で一時停止するＤＭＡ転送を開始させる起動処理を、前記第３ＤＭＡ転送部の転送済みデータ量が所定の総転送量に達するまで繰り返し行う
ことを特徴とする請求項１に記載のＤＭＡ転送装置。
【請求項３】
前記関連付け設定部は、前段のＤＭＡ転送部に設定された転送先メモリ領域に基づいて、後段のＤＭＡ転送部の転送元メモリ領域を自動設定する
ことを特徴とする請求項１または２に記載のＤＭＡ転送装置。
【請求項４】
前記関連付け設定部は、前段のＤＭＡ転送部に設定された一時転送量に基づいて、後段のＤＭＡ転送部の一時転送量を自動設定する
ことを特徴とする請求項１乃至３のいずれか１つに記載のＤＭＡ転送装置。
【請求項５】
前記関連付け設定部は、前段のＤＭＡ転送部に設定された総転送量に基づいて、後段のＤＭＡ転送部の総転送量を自動設定する
ことを特徴とする請求項１乃至４のいずれか１つに記載のＤＭＡ転送装置。
【請求項６】
前記関連付け設定部は、前段のＤＭＡ転送部の設定値に所定の演算を施して後段のＤＭＡ転送部の設定値を再計算する
ことを特徴とする請求項１乃至５のいずれか１つに記載のＤＭＡ転送装置。
【請求項７】
少なくとも、最も後段のＤＭＡ転送部の転送済みデータ量がそのＤＭＡ転送部の総転送量に達したとき、外部に信号を出力する信号出力部を、さらに有する
ことを特徴とする請求項１乃至６のいずれか１つに記載のＤＭＡ転送装置。
【請求項８】
前記信号出力部は、一時転送量の転送毎に外部に信号を出力し得る機能、もしくは、転送済みデータ量が設定された任意の転送量に達したときに外部に信号を出力し得る機能、を有する
ことを特徴とする請求項７に記載のＤＭＡ転送装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のＤＭＡ転送を連携させることのできるＤＭＡ転送装置に関する。
【背景技術】
【０００２】
画像処理装置等においては、入力装置から入力バッファへデータを転送するＤＭＡ（Direct Memory Access）転送、入力バッファから画像処理用のメモリ領域へデータを転送するＤＭＡ転送、画像処理後のデータをページメモリに転送するＤＭＡ転送、ページメモリから出力装置へデータを転送するＤＭＡ転送など複数のＤＭＡ転送が連鎖的に行われる。
【０００３】
通常、ＤＭＡ（Direct Memory Access）コントローラにＤＭＡ転送を実行させる場合、ＣＰＵはＤＭＡコントローラに対して、転送元アドレス、転送先アドレス、総転送量などを設定して、ＤＭＡ転送を起動する。ＤＭＡコントローラは、ＤＭＡ転送の実行が完了すると、ＣＰＵに対して転送終了を通知する割り込み信号を出力し、ＣＰＵはこの割り込み信号によってＤＭＡ転送の完了を認識して次の処理を実行する。
【０００４】
たとえば、図１７に示すように、第１ＤＭＡコントローラ（ＤＭＡ１）〜第４ＤＭＡコントローラ（ＤＭＡ４）を設定してシーケンシャルなＤＭＡ転送を通常の方法で行わせると、次のような動作になる。
【０００５】
（動作例）
・ＣＰＵが第１ＤＭＡコントローラ(ＤＭＡ１)を起動すると、第１ＤＭＡコントローラによって外部入力データが転送先へＤＭＡ転送され、転送終了時に割り込み１が発生する。
【０００６】
・割り込み１を起点にＣＰＵが第２ＤＭＡコントローラ（ＤＭＡ２）を起動し、転送元から転送先へＤＭＡ転送が実行され、転送終了時に割り込み２が発生する。
【０００７】
・割り込み２を起点にＣＰＵが第３ＤＭＡコントローラ（ＤＭＡ３）を起動し、転送元から転送先へＤＭＡ転送が実行され、転送終了時に割り込み３が発生する。
【０００８】
・割り込み３を起点にＣＰＵが第４ＤＭＡコントローラ（ＤＭＡ４）を起動し、転送元から外部へデータが出力され、転送終了時に割り込み４が発生する。
【０００９】
上記の例では、１ページの画像を処理する際に、前段のＤＭＡ転送が１ページ分の転送を完了してから次段のＤＭＡ転送が起動されるので、各ＤＭＡ転送が並行動作できず、転送を含む各処理に時間がかかってしまう。
【００１０】
また、上記のＤＭＡ転送方法では、１ページの画像を処理するために、各ＤＭＡコントローラの転送元／転送先のメモリ領域として、１ページ分の画像データを格納可能な容量が必要になる。近年の画像処理装置においては、画像の高解像度化に伴って、画像処理データ量が増大しており、必要なメモリ容量がより一層増大する傾向にある。
【００１１】
そこで、処理すべきデータを小容量のデータに分割して順次ＤＭＡ転送を行い、データ転送と転送済みデータ処理を並列動作させる事で、必要なメモリ容量の削減とスループットの向上を図る技術がある。しかし、総転送量を複数回に分割してＤＭＡ転送すると、分割された各ＤＭＡ転送が終了する毎にＣＰＵに対して割り込みが発生し、該割り込みに応じてＣＰＵが転送元アドレスや転送先アドレスの再設定およびＤＭＡ転送の再起動を行う必要があるため、ＣＰＵの処理能力が消費されてしまう。
【００１２】
この問題に対応するために、下記特許文献１には、ＤＭＡコントローラに、ＤＭＡ転送すべき総転送量と、総転送量より小さい一時転送量を設定しておき、一時転送量のＤＭＡ転送の繰り返しをＣＰＵからの簡易な指示で実施可能にしたＤＭＡコントローラが開示されている。
【００１３】
この技術を用いた第１ＤＭＡコントローラ〜第４ＤＭＡコントローラを、図１８に示すように設定した場合、その動作は次のようになる。なお、第１ＤＭＡコントローラと第４ＤＭＡコントローラの設定は、図１７に示した通常のＤＭＡ設定と同様とする。また、第２ＤＭＡコントローラと第３ＤＭＡコントローラには、総転送量よりも小さい一時転送量を設定し、一時転送量のＤＭＡ転送が終了する毎と、総転送量の転送が終了したときに割り込みが発生する。
【００１４】
（動作例）
・ＣＰＵが第１ＤＭＡコントローラ（ＤＭＡ１）を起動し、全てのデータの転送終了時に割り込み１が発生する。
【００１５】
・割り込み１を起点にＣＰＵは第２ＤＭＡコントローラ（ＤＭＡ２）を起動する。第２ＤＭＡコントローラは一時転送量のＤＭＡ転送を実行し、該一時転送量のＤＭＡ転送が終了した時、転送を停止して、割り込み２−１を発生させる。
【００１６】
・割り込み２−１を起点にＣＰＵは第３ＤＭＡコントローラ（ＤＭＡ３）を起動する。第３ＤＭＡコントローラは、一時転送量のＤＭＡ転送を実行し、該一時転送量のＤＭＡ転送が終了した時、転送を停止して、割り込み３−１を発生させる。
【００１７】
・また割り込み２−１を起点にＣＰＵは第２ＤＭＡコントローラを再開させる。第２ＤＭＡコントローラは一時転送量のＤＭＡ転送を実行し、該転送が終了した時、転送を停止して、割り込み２−２を発生させる。
【００１８】
・同様に割り込み３−１を起点にＣＰＵは第３ＤＭＡコントローラを再開させる。第３ＤＭＡコントローラは一時転送量のＤＭＡ転送を実行し、該転送が終了した時、転送を停止して、割り込み３−２を発生させる。
【００１９】
これらを繰り返し、第２ＤＭＡコントローラによる最後の一時転送量のＤＭＡ転送が完了した時、総転送量の転送終了を示す割り込み２−ｎが発生する。
【００２０】
・割り込み２−ｎを起点に、ＣＰＵは第３ＤＭＡコントローラに最後の一時転送量のＤＭＡ転送を再開させ、転送が完了した時に、総転送量の転送終了を示す割り込み３−ｎが発生する。
【００２１】
・総転送量の転送終了を示す割り込み３−ｎを起点にＣＰＵが第４ＤＭＡコントローラを起動し、全てのデータ転送終了時に、割り込み４が発生する。
【００２２】
このように、第２ＤＭＡコントローラと第３ＤＭＡコントローラが並行に動作するので、必要なメモリ容量の削減とスループットの向上を図ることができる。
【先行技術文献】
【特許文献】
【００２３】
【特許文献１】特開２００６−１１９７１１号公報
【発明の概要】
【発明が解決しようとする課題】
【００２４】
特許文献１に開示の技術では、一時転送量のＤＭＡ転送が完了する毎に発生する割り込みに対してＣＰＵが成すべき処理の量は、アドレス等の再設定をする必要が無い分、軽減されている。しかし、割り込み発生毎に、ＣＰＵがＤＭＡ転送の再開処理を行う必要があるので、ＣＰＵの負荷は依然として大きい。
【００２５】
本発明は、上記の問題を解決しようとするものであり、総転送量を複数に分けた一時転送量単位の複数のＤＭＡ転送を、一時転送量の転送が終了する毎にＣＰＵから転送再開の指示を受けることなく自律的に再開させて並列動作させることのできるＤＭＡ転送装置を提供することを目的としている。
【課題を解決するための手段】
【００２６】
かかる目的を達成するための本発明の要旨とするところは、次の各項の発明に存する。
【００２７】
［１］複数のＤＭＡ転送部と、
前記ＤＭＡ転送部を、前段のＤＭＡ転送部の転送先メモリ領域を後段のＤＭＡ転送部の転送元メモリ領域とする前段後段の関係に関連付ける関連付け設定部と、
前段のＤＭＡ転送部の転送済みデータ量と後段のＤＭＡ転送部の転送済みデータ量を比較し、前段のＤＭＡ転送部の転送済みデータ量が後段のＤＭＡ転送部の転送済みデータ量に所定の一時転送量を加算した値以上の場合に、後段のＤＭＡ転送部に、前記一時転送量の転送完了で一時停止するＤＭＡ転送を開始させる起動処理を、後段のＤＭＡ転送部の転送済みデータ量が所定の総転送量に達するまで繰り返し行う連動制御部と、
を有する
ことを特徴とするＤＭＡ転送装置。
【００２８】
上記発明では、後段のＤＭＡ転送部は、一時転送量毎のＤＭＡ転送を繰り返し行うことで総転送量のＤＭＡ転送を行う。そして、後段のＤＭＡ転送部による一時転送量毎のＤＭＡ転送の再開は、連携制御部が、前段のＤＭＡ転送部の転送済みデータ量 ≧ 後段のＤＭＡ転送部の転送済みデータ量＋一時転送量 となったときに後段のＤＭＡ転送部を起動することで行われる。
【００２９】
［２］前記連動制御部は、
前記関連付け設定部によって、第３ＤＭＡ転送部が、第１ＤＭＡ転送部の転送先メモリ領域を第１転送元メモリ領域とし、第２ＤＭＡ転送部の転送先メモリ領域を第２転送元メモリ領域とし、前記第１転送元メモリ領域と前記第２転送元メモリ領域の双方からデータを読み出して転送先に転送するように、前記第１ＤＭＡ転送部と前記第２ＤＭＡ転送部に関連付けられた場合に、
前記第１ＤＭＡ転送部の転送済みデータ量と前記第３ＤＭＡ転送部の転送済みデータ量との比較、および前記第２ＤＭＡ転送部の転送済みデータ量と前記第３ＤＭＡ転送部の転送済みデータ量との比較を行い、前記第１ＤＭＡ転送部の転送済みデータ量および前記第２ＤＭＡ転送部の転送済みデータ量が共に前記第３ＤＭＡ転送部の転送済みデータ量に所定の一時転送量を加算した値以上の場合に、前記第３ＤＭＡ転送部に、前記一時転送量の転送完了で一時停止するＤＭＡ転送を開始させる起動処理を、前記第３ＤＭＡ転送部の転送済みデータ量が所定の総転送量に達するまで繰り返し行う
ことを特徴とする［１］に記載のＤＭＡ転送装置。
【００３０】
上記発明では、第３ＤＭＡ転送部は、第１ＤＭＡ転送部の転送先メモリ領域を第１転送元メモリ領域とし、第２ＤＭＡ転送部の転送先メモリ領域を第２転送元メモリ領域とし、第１転送元メモリ領域と第２転送元メモリ領域の双方からデータを読み出して転送先に転送するように、第１ＤＭＡ転送部と第２ＤＭＡ転送部に関連付けられる。この場合、連携制御部は、第１ＤＭＡ転送部の転送済みデータ量と第２ＤＭＡ転送部の転送済みデータ量の双方が、第３ＤＭＡ転送部の転送済みデータ量＋一時転送量、以上になった場合に、第３ＤＭＡ転送部による、一時転送量単位のＤＭＡ転送を再開させる。
【００３１】
［３］前記関連付け設定部は、前段のＤＭＡ転送部に設定された転送先メモリ領域に基づいて、後段のＤＭＡ転送部の転送元メモリ領域を自動設定する
ことを特徴とする［１］または［２］に記載のＤＭＡ転送装置。
【００３２】
上記発明では、関連付け設定部は、たとえば、前段のＤＭＡ転送部の転送先メモリ領域を後段のＤＭＡ転送部の転送元メモリ領域とする、あるいは、前段のＤＭＡ転送部の転送先メモリ領域に所定の計算を施して得た結果を後段のＤＭＡ転送部の転送元メモリ領域に設定する。
【００３３】
［４］前記関連付け設定部は、前段のＤＭＡ転送部に設定された一時転送量に基づいて、後段のＤＭＡ転送部の一時転送量を自動設定する
ことを特徴とする［１］乃至［３］のいずれか１つに記載のＤＭＡ転送装置。
【００３４】
上記発明では、関連付け設定部は、たとえば、前段のＤＭＡ転送部の一時転送量を後段のＤＭＡ転送部の一時転送量に設定する、あるいは、前段のＤＭＡ転送部の一時転送量に所定の計算を施して得た結果を後段のＤＭＡ転送部の一時転送量に設定する。
【００３５】
［５］前記関連付け設定部は、前段のＤＭＡ転送部に設定された総転送量に基づいて、後段のＤＭＡ転送部の総転送量を自動設定する
ことを特徴とする［１］乃至［４］のいずれか１つに記載のＤＭＡ転送装置。
【００３６】
上記発明では、関連付け設定部は、たとえば、前段のＤＭＡ転送部の総転送量を後段のＤＭＡ転送部の総転送量に設定する、あるいは、前段のＤＭＡ転送部の総転送量に所定の計算を施して得た結果を後段のＤＭＡ転送部の総転送量に設定する。
【００３７】
［６］前記関連付け設定部は、前段のＤＭＡ転送部の設定値に所定の演算を施して後段のＤＭＡ転送部の設定値を再計算する
ことを特徴とする［１］乃至［５］のいずれか１つに記載のＤＭＡ転送装置。
【００３８】
［７］少なくとも、最も後段のＤＭＡ転送部の転送済みデータ量がそのＤＭＡ転送部の総転送量に達したとき、外部に信号を出力する信号出力部を、さらに有する
ことを特徴とする［１］乃至［６］のいずれか１つに記載のＤＭＡ転送装置。
【００３９】
上記発明では、最も後段のＤＭＡ転送部が総転送量の転送を完了したときに信号が出力される。この信号は、ＣＰＵへの割り込み信号などに使用される。
【００４０】
［８］前記信号出力部は、一時転送量の転送毎に外部に信号を出力し得る機能、もしくは、転送済みデータ量が設定された任意の転送量に達したときに外部に信号を出力し得る機能、を有する
ことを特徴とする［７］に記載のＤＭＡ転送装置。
【００４１】
上記発明では、一時転送量のＤＭＡ転送毎に外部に信号（割り込み信号）を出力したり、転送済みデータ量が任意の転送量に達したときに外部に信号を出力したりすることができる。
【発明の効果】
【００４２】
本発明に係るＤＭＡ転送装置によれば、総転送量を複数に分けた一時転送量単位の複数のＤＭＡ転送を、一時転送量の転送が終了する毎にＣＰＵから転送再開の指示を受けることなく自律的に並列動作させることができる。これにより、ＣＰＵの負担を軽減しながら、転送元や転送先のメモリ容量の削減、スループットの向上を図ることができる。
【図面の簡単な説明】
【００４３】
【図１】本発明の実施の形態に係る画像処理システムの主要部の概略構成を示す図である。
【図２】第１動作例においてＣＰＵがＤＭＡ転送装置に対して設定した設定内容を示す図である。
【図３】第１動作例におけるＤＭＡ転送の連携を示す図である。
【図４】第１動作例においてＣＰＵが行う処理を示す流れ図である。
【図５】第１動作例において、ＤＭＡ１およびＤＭＡ１に対して関連付け設定部、連動制御部が行う処理を示す流れ図である。
【図６】第１動作例において、ＤＭＡ２およびＤＭＡ２に対して関連付け設定部、連動制御部が行う処理を示す流れ図である。
【図７】第１動作例において、ＤＭＡ３およびＤＭＡ３に対して関連付け設定部、連動制御部が行う処理を示す流れ図である。
【図８】第１動作例において、ＤＭＡ４およびＤＭＡ４に対して関連付け設定部、連動制御部が行う処理を示す流れ図である。
【図９】第２動作例においてＣＰＵがＤＭＡ転送装置に対して設定した設定内容を示す図である。
【図１０】第２動作例におけるＤＭＡ転送の連携を示す図である。
【図１１】第２動作例においてＣＰＵが行う処理を示す流れ図である。
【図１２】第２動作例において、ＤＭＡ１およびＤＭＡ１に対して関連付け設定部、連動制御部が行う処理を示す流れ図である。
【図１３】第２動作例において、ＤＭＡ２およびＤＭＡ２に対して関連付け設定部、連動制御部が行う処理を示す流れ図である。
【図１４】第２動作例において、ＤＭＡ３およびＤＭＡ３に対して関連付け設定部、連動制御部が行う処理を示す流れ図である。
【図１５】第２動作例において、ＤＭＡ４およびＤＭＡ４に対して関連付け設定部、連動制御部が行う処理を示す流れ図である。
【図１６】第３動作例においてＣＰＵがＤＭＡ転送装置に対して設定した設定内容を示す図である。
【図１７】ＤＭＡ１〜ＤＭＡ４にシーケンシャルなＤＭＡ転送を実行させる場合における従来の設定例を示す図である。
【図１８】処理すべきデータを小容量のデータに分割して順次ＤＭＡ転送を行わせる場合の従来の設定例を示す図である。
【発明を実施するための形態】
【００４４】
以下、図面に基づき本発明の実施の形態を説明する。
【００４５】
図１は、本発明の実施の形態に係る画像処理システム５の主要部の構成を示している。画像処理システム５は、システムバス６にＣＰＵ７と、メモリ８と、本発明に係るＤＭＡ転送装置１０を接続して構成される。
【００４６】
ＤＭＡ転送装置１０は、データのＤＭＡ転送を実行する第１ＤＭＡコントローラ１１、第２ＤＭＡコントローラ１２、第３ＤＭＡコントローラ１３、第４ＤＭＡコントローラ１４と、これらを関連付ける関連付け設定部１５と、関連付け設定部１５によって関連付けされたＤＭＡコントローラを連動させる制御を行う連動制御部１６を備えている。なお、第１ＤＭＡコントローラ１１をＤＭＡ１、第２ＤＭＡコントローラ１２をＤＭＡ２、第３ＤＭＡコントローラ１３をＤＭＡ３、第４ＤＭＡコントローラ１４をＤＭＡ４と記すものとする。
【００４７】
ここでは、第１ＤＭＡコントローラ１１は外部から入力されるデータをメモリ８に転送し、第２ＤＭＡコントローラ１２、第３ＤＭＡコントローラ１３はそれぞれメモリ８内の一の領域から別の領域にデータを転送し、第４ＤＭＡコントローラ１４はメモリ８から外部にデータを転送するものとする。
【００４８】
ＤＭＡ転送装置１０は、各ＤＭＡコントローラ１１〜１４による転送の終了時等に信号を出力し、該信号は割り込み信号としてＣＰＵ７に入力される。
【００４９】
各ＤＭＡコントローラ１１〜１４はそれぞれ、設定された総転送量のデータ転送を、総転送量より少ない一時転送量の複数回のＤＭＡ転送に分けて実行することができる。
【００５０】
関連付け設定部１５は、複数のＤＭＡコントローラ１１〜１４を、前段のＤＭＡコントローラの転送先メモリ領域を後段のＤＭＡコントローラの転送元メモリ領域とする前段後段の関係に関連付ける。
【００５１】
連動制御部１６は、前段後段として関連付けされたＤＭＡコントローラのうちの前段のＤＭＡコントローラの転送済みデータ量と後段のＤＭＡコントローラの転送済みデータ量を比較し、前段のＤＭＡコントローラの転送済みデータ量が後段のＤＭＡコントローラの転送済みデータ量に一時転送量を加算した値以上になったとき、後段のＤＭＡコントローラに、一時転送量の転送完了で一時停止するＤＭＡ転送を開始させる起動処理（再開処理）を、後段のＤＭＡコントローラの転送済みデータ量が総転送量に達するまで繰り返し行う等の制御を行う。上記の比較は、後段のＤＭＡコントローラが、次のＤＭＡ転送の開始待ち状態のときにだけ行うようにしてもよい。
【００５２】
ＣＰＵ７は、ＤＭＡ転送装置１０に対して、転送元、転送先、総転送量、一時転送量などの設定のほか、複数のＤＭＡコントローラ１１〜１４を前段後段の関係に関連付けるための関連付け情報の設定等を行う。また、各ＤＭＡコントローラ１１〜１４によるＤＭＡ転送を起動(初回の起動)する処理を行う。
【００５３】
各ＤＭＡコントローラ１１〜１４は、総転送量、一時転送量、転送元情報、転送先情報、割り込み設定などの設定を受けるためのレジスタを備えている。また、各ＤＭＡコントローラ１１〜１４は、データを転送する毎に自動的にカウントアップされる転送済みデータ量を計数するためのカウンタを備えている。
【００５４】
関連付け設定部１５は、関連付け情報に基づいてレジスタの値をコピーする機能や前段として関連付けされているＤＭＡコントローラの設定値から後段のＤＭＡコントローラの設定値を演算する演算部などを備えている。
【００５５】
連動制御部１６は、後段のＤＭＡコントローラの転送済みデータ量に一時転送量を加算する加算器、該加算器の加算結果と前段のＤＭＡコントローラの転送済みデータ量とを比較する比較器、および、制御の流れを管理するシーケンサなどを備えて構成される。
【００５６】
次に、ＤＭＡ転送装置１０の各種動作例を説明する。
【００５７】
＜第１動作例＞
図２は、第１動作例において、ＣＰＵ７がＤＭＡ転送装置１０に対して設定した設定内容を示している。第１ＤＭＡコントローラ１１（ＤＭＡ１）に対しては、総転送量として「0x10000000」、一時転送量として「0x10000000」、転送元情報として「外部入力」、転送先情報として「Address:0x00000000」、割り込み設定として「転送終了」がそれぞれ設定されている。
【００５８】
第２ＤＭＡコントローラ１２（ＤＭＡ２）に対しては、総転送量として「ＤＭＡ１に関連付け」、一時転送量として「0x00010000」、転送元情報として「ＤＭＡ１転送先」、転送先情報として「Address:0x10000000」、割り込み設定として「転送終了」がそれぞれ設定されている。
【００５９】
この設定では、転送元情報として「ＤＭＡ１転送先」が設定されているので、関連付け設定部１５により、ＤＭＡ１が前段に、ＤＭＡ２がその後段に関連付けされ、ＤＭＡ１の転送先がＤＭＡ２の転送元にされる。また、総転送量に「ＤＭＡ１に関連付け」が設定されているので、関連付け設定部１５により、ＤＭＡ２の総転送量は、ＤＭＡ１の総転送量を参照してこれと同じ値に設定される。
【００６０】
第３ＤＭＡコントローラ１３（ＤＭＡ３）に対しては、総転送量として「ＤＭＡ２に関連付け」、一時転送量として「ＤＭＡ２に関連付け」、転送元情報として「ＤＭＡ２転送先」、転送先情報として「Address:0x20000000」、割り込み設定として「転送終了」がそれぞれ設定されている。
【００６１】
この設定では、転送元情報に「ＤＭＡ２転送先」が設定されているので、関連付け設定部１５により、ＤＭＡ２が前段に、ＤＭＡ３がその後段に関連付けされ、ＤＭＡ２の転送先がＤＭＡ３の転送元にされる。また、総転送量に「ＤＭＡ２に関連付け」が設定されているので、関連付け設定部１５により、ＤＭＡ３の総転送量はＤＭＡ２の総転送量と同じ値に設定される。一時転送量には「ＤＭＡ２に関連付け」が設定されているので、関連付け設定部１５により、ＤＭＡ３の一時転送量は、ＤＭＡ２の一時転送量と同じ値に設定される。
【００６２】
第４ＤＭＡコントローラ１４（ＤＭＡ４）に対しては、総転送量として「ＤＭＡ３に関連付け」、一時転送量として「0x10000000」、転送元情報として「ＤＭＡ３転送先」、転送先情報として「外部出力」、割り込み設定として「転送終了」がそれぞれ設定されている。
【００６３】
この設定では、転送元情報に「ＤＭＡ３転送先」が設定されているので、関連付け設定部１５により、ＤＭＡ３が前段に、ＤＭＡ４がその後段に関連付けされ、ＤＭＡ３の転送先がＤＭＡ４の転送元にされる。また、総転送量に「ＤＭＡ３に関連付け」が設定されているので、関連付け設定部１５により、ＤＭＡ４の総転送量は、ＤＭＡ３の総転送量を参照してこれと同じ値に設定される。
【００６４】
以上の設定により、ＤＭＡ転送装置１０は次のように動作する（図３参照）。
【００６５】
まず、ＣＰＵ７によりＤＭＡ１〜ＤＭＡ４が起動されると、関連付け設定部１５は、起動されたＤＭＡコントローラについて関連付けを行う。その後、以下の動作を行う。
【００６６】
（１）起動されたＤＭＡ１は、外部から入力したデータをメモリ８のアドレス0x00000000を先頭とする第１領域に転送する(図３：Ｐ１)。
詳細には、
・ＤＭＡ１は、総転送量と一時転送量の設定値が等しいので、総転送量のデータを１回のＤＭＡ転送で実行する。
・全てのデータ転送が終了したとき、ＤＭＡ１は、ＣＰＵ７に対して割り込み信号を出力する。
【００６７】
（２）ＤＭＡ１に関連付けられたＤＭＡ２は、連動制御部１６に制御されて、ＤＭＡ１の転送先（Address:0x00000000を先頭とする第１領域）から転送先（Address:0x10000000を先頭する第２領域）への一時転送量（0x00010000）単位のＤＭＡ転送を繰り返し行って、ＤＭＡ１と同じ総転送量（0x10000000）のデータをＤＭＡ転送する。
【００６８】
詳細には、
・連動制御部１６は、ＤＭＡ１の転送済みデータ量がＤＭＡ２の転送済みデータ量＋一時転送量以上になる事を起点に、ＤＭＡ２の一時転送量単位の初回のＤＭＡ転送を起動する（図３：Ｐ２）。
・一時転送量のＤＭＡ転送が終了した時、ＤＭＡ２は一時停止する。
・連動制御部１６は、ＤＭＡ１の転送済みデータ量がＤＭＡ２の転送済みデータ量＋一時転送量以上になる事を起点に、次のＤＭＡ２の一時転送量単位のＤＭＡ転送を再開（起動）させる(図３：Ｐ３)。
・上記一時停止と再開が繰り返し行われ、総転送量のＤＭＡ転送が完了したとき、ＤＭＡ２は、割り込み信号をＣＰＵ７に出力して処理を終了する。
【００６９】
（３）ＤＭＡ３は、連動制御部１６に制御されて、ＤＭＡ２の転送先（Address:0x10000000を先頭とする第２領域）から転送先（Address:0x20000000を先頭する第３領域）に、一時転送量（0x00010000）単位のＤＭＡ転送を繰り返し行って、ＤＭＡ１と同じ総転送量（0x10000000）のデータをＤＭＡ転送する。
【００７０】
詳細には、
・連動制御部１６は、ＤＭＡ２の転送済みデータ量がＤＭＡ３の転送済みデータ量＋一時転送量以上になる事を起点に、ＤＭＡ３の一時転送量単位の初回のＤＭＡ転送を起動する(図３：Ｐ４)。
・一時転送量のＤＭＡ転送が終了した時、ＤＭＡ３は一時停止する。
・連動制御部１６は、ＤＭＡ２の転送済みデータ量がＤＭＡ３の転送済みデータ量＋一時転送量以上になる事を起点に、次のＤＭＡ３の一時転送量単位のＤＭＡ転送を再開(起動)させる。
・上記一時停止と再開が繰り返し行われ、ＤＭＡ３による総転送量のＤＭＡ転送（一時転送量単位の最後のＤＭＡ転送(図３：Ｐ５)）が完了したとき、ＤＭＡ３は、割り込み信号をＣＰＵ７に出力して処理を終了する。
【００７１】
（４）ＤＭＡ４は、ＤＭＡ３の転送先（Address:0x20000000を先頭とする第３領域）から、外部へデータを転送する。
【００７２】
詳細には、
・連動制御部１６は、ＤＭＡ３の転送済みデータ量がＤＭＡ４の転送済みデータ量＋一時転送量以上になる事を起点に、ＤＭＡ４の転送を開始させる。ＤＭＡ４では、総転送量と一時転送量の設定値が等しいので、総転送量のデータ転送が１回のＤＭＡ転送で実行される。
・ＤＭＡ４は総転送量のＤＭＡ転送が完了したとき、割り込み信号をＣＰＵ７に出力して処理を終了する。
【００７３】
以上の動作では、ＤＭＡ１〜ＤＭＡ４が並行動作すると共に、ＤＭＡ２とＤＭＡ３による一時転送量単位のＤＭＡ転送については、転送終了毎にＣＰＵ７に対して割り込みが発生しないので、ＣＰＵ７の処理負担が軽減されてスループットが向上する。
【００７４】
ＣＰＵ７は、ＤＭＡ１〜ＤＭＡ４のそれぞれから総転送量の転送が終了した時に割り込みを受けるので、ＤＭＡ１〜ＤＭＡ４のそれぞれが正常にデータ転送を完了したことを認識することができる。
【００７５】
以下、上記の動作を流れ図に基づいて説明する。
【００７６】
図４は、ＤＭＡ転送装置１０にデータ転送を行わせるためにＣＰＵ７が行う処理の流れを示している。ＣＰＵ７は、ＤＭＡ１〜ＤＭＡ４のそれぞれに対して図２に示す内容を設定する（ステップＳ１０１）。その後、ＤＭＡ１〜ＤＭＡ４をそれぞれ起動する（ステップＳ１０２）。
【００７７】
外部からのデータ入力が開始すると（ステップＳ１０３）、前述したようにＤＭＡ１〜ＤＭＡ４によるデータ転送が行われる。ＣＰＵ７は、ＤＭＡ１〜ＤＭＡ４からの割り込み信号により、これらＤＭＡ１〜ＤＭＡ４のすべてでＤＭＡ転送が終了したことを確認すると（ステップＳ１０４；Ｙｅｓ）、本処理を終了する。
【００７８】
図５は、ＤＭＡ１およびＤＭＡ１に対して関連付け設定部１５、連動制御部１６が行う処理を示す流れ図である。ＤＭＡ１がＣＰＵ７から設定を受け（ステップＳ２０１）、起動の指示を受けると、関連付け設定部１５はＤＭＡ１を後段とする関連付けが設定されているかを調べ、設定されている場合、関連付けを行う（ステップＳ２０２）。図２の設定の場合、ＤＭＡ１を後段とする関連付けはない。
【００７９】
その後、ＤＭＡ１は、外部からデータの入力が開始すると（ステップＳ２０３）、ＤＭＡ転送を開始する（ステップＳ２０４）。ＤＭＡ１は、ＤＭＡ１の転送済みデータ量がＤＭＡ１の総転送量に達したら（ステップＳ２０５；Ｙｅｓ）、ＤＭＡ転送を終了させ、転送終了を示す割り込み信号をＣＰＵ７に対して出力して（ステップＳ２０６）、本処理を終了する。
【００８０】
図６は、ＤＭＡ２およびＤＭＡ２に対して関連付け設定部１５、連動制御部１６が行う処理を示す流れ図である。ＤＭＡ２がＣＰＵ７から設定を受け(ステップＳ３０１)、起動の指示を受けると、関連付け設定部１５はＤＭＡ２を後段とする関連付けが設定されているかを調べ、設定されている場合、関連付けを行う（ステップＳ３０２）。図２の設定の場合、ＤＭＡ２をＤＭＡ１の後段に関連付ける。その後、ＤＭＡ２は、連動制御部１６から転送開始の指示を待つ。
【００８１】
連動制御部１６は、ＤＭＡ１の転送済みデータ量が、ＤＭＡ２の転送済みデータ量＋一時転送量以上になったら（ステップＳ３０３；Ｙｅｓ）、ＤＭＡ２に一時転送量のＤＭＡ転送の開始を指示し、ＤＭＡ２は該指示を受けて一時転送量のＤＭＡ転送を実行する（ステップＳ３０４）。ＤＭＡ２は、一時転送量のＤＭＡ転送が完了したら一時停止する。
【００８２】
連動制御部１６は、ＤＭＡ２の転送済みデータ量とＤＭＡ２の総転送量を比較し、ＤＭＡ２の転送済みデータ量がＤＭＡ２の総転送量未満の場合は(ステップＳ３０５；Ｎｏ)、ステップS３０３に戻って処理を継続する。すなわち、ＤＭＡ１の転送済みデータ量が、ＤＭＡ２の転送済みデータ量＋一時転送量以上になったら、ＤＭＡ２に一時転送量のＤＭＡ転送の開始を再び指示し、ＤＭＡ２による一時転送量のＤＭＡ転送を起動してＤＭＡ転送を再開させる。
【００８３】
ＤＭＡ２の転送済みデータ量がＤＭＡ２の総転送量に達したら（ステップＳ３０５；Ｙｅｓ)、連動制御部１６はＤＭＡ２に対する連動制御を終了し、ＤＭＡ２は、転送終了を示す割り込み信号をＣＰＵ７に対して出力して（ステップＳ３０６）、本処理を終了する。
【００８４】
図７は、ＤＭＡ３およびＤＭＡ３に対して関連付け設定部１５、連動制御部１６が行う処理を示す流れ図である。ＤＭＡ３がＣＰＵ７から設定を受け(ステップＳ４０１)、起動の指示を受けると、関連付け設定部１５はＤＭＡ３を後段とする関連付けが設定されているかを調べ、設定されている場合、関連付けを行う（ステップＳ４０２）。図２の設定の場合ＤＭＡ３をＤＭＡ２の後段に関連付ける。その後、ＤＭＡ３は、連動制御部１６から転送開始の指示を待つ。
【００８５】
連動制御部１６は、ＤＭＡ２の転送済みデータ量が、ＤＭＡ３の転送済みデータ量＋一時転送量以上になったら(ステップＳ４０３；Ｙｅｓ)、ＤＭＡ３に一時転送量のＤＭＡ転送の開始を指示し、ＤＭＡ３は該指示を受けて一時転送量のＤＭＡ転送を実行する（ステップＳ４０４）。ＤＭＡ３は、一時転送量のＤＭＡ転送が完了したら一時停止する。
【００８６】
連動制御部１６は、ＤＭＡ３の転送済みデータ量とＤＭＡ３の総転送量を比較し、ＤＭＡ３の転送済みデータ量がＤＭＡ３の総転送量未満の場合は(ステップＳ４０５；Ｎｏ)、ステップＳ４０３に戻って処理を継続する。すなわち、ＤＭＡ２の転送済みデータ量が、ＤＭＡ３の転送済みデータ量＋一時転送量以上になったら、ＤＭＡ３に一時転送量のＤＭＡ転送の開始を再び指示し、ＤＭＡ３による一時転送量のＤＭＡ転送を起動してＤＭＡ転送を再開させる。
【００８７】
ＤＭＡ３の転送済みデータ量がＤＭＡ３の総転送量に達したら（ステップＳ４０５；Ｙｅｓ)、連動制御部１６はＤＭＡ３に対する連動制御を終了し、ＤＭＡ３は、転送終了を示す割り込み信号をＣＰＵ７に対して出力して（ステップＳ４０６）、本処理を終了する。
【００８８】
図８は、ＤＭＡ４およびＤＭＡ４に対して関連付け設定部１５、連動制御部１６が行う処理を示す流れ図である。ＤＭＡ４がＣＰＵ７から設定を受け(ステップＳ５０１)、起動の指示を受けると、関連付け設定部１５はＤＭＡ４を後段とする関連付けが設定されているかを調べ、設定されている場合、関連付けを行う（ステップＳ５０２）。図２の設定の場合ＤＭＡ４をＤＭＡ３の後段に関連付ける。その後、ＤＭＡ４は、連動制御部１６から転送開始の指示を待つ。
【００８９】
連動制御部１６は、ＤＭＡ３の転送済みデータ量が、ＤＭＡ４の転送済みデータ量＋一時転送量以上になったら（ステップＳ５０３；Ｙｅｓ）、ＤＭＡ４に一時転送量のＤＭＡ転送の開始を指示し、ＤＭＡ４は該指示を受けて一時転送量のＤＭＡ転送を実行する（ステップＳ５０４）。ＤＭＡ４は、一時転送量のＤＭＡ転送が完了したら一時停止する。
【００９０】
連動制御部１６は、ＤＭＡ４の転送済みデータ量とＤＭＡ４の総転送量を比較し、ＤＭＡ４の転送済みデータ量がＤＭＡ４の総転送量未満の場合は(ステップＳ５０４；Ｎｏ)、ステップＳ５０３に戻って処理を継続する。すなわち、ＤＭＡ３の転送済みデータ量が、ＤＭＡ４の転送済みデータ量＋一時転送量以上になったら、ＤＭＡ４に一時転送量のＤＭＡ転送の開始を再び指示し、ＤＭＡ４による一時転送量のＤＭＡ転送を起動してＤＭＡ転送を再開させる。なお、図２の設定では、ＤＭＡ４は、一時転送量＝総転送量なので、１回のＤＭＡ転送で、総転送量のデータ転送が実行される。
【００９１】
ＤＭＡ４の転送済みデータ量がＤＭＡ４の総転送量に達したら（ステップＳ５０５；Ｙｅｓ)、連動制御部１６はＤＭＡ４に対する連動制御を終了し、ＤＭＡ４は、転送終了を示す割り込み信号をＣＰＵ７に対して出力して（ステップＳ５０６）、本処理を終了する。
【００９２】
＜第２動作例＞
図９は、第２動作例において、ＣＰＵ７がＤＭＡ転送装置１０に対して設定した設定内容を示している。図１０は、図９の設定が成された場合のＤＭＡ転送の様子を示している。
【００９３】
第２動作例では、ＤＭＡ１は、外部から入力されるデータを２つの転送先（第１領域、第２領域）に転送し、ＤＭＡ２は第１領域のデータを第３領域に転送し、ＤＭＡ３は第２領域のデータを第４領域に転送する。ＤＭＡ４は、第３領域と第４領域からデータをそれぞれ読み出し、これらに所定の演算（たとえば、論理和演算や論理積演算）を施した結果を第５領域に転送する。図９の設定は、たとえば、第３領域の画像と第４領域の画像を重ね合わせた画像を第５領域に作成するといった場合に適用される。以下、具体的に説明する。
【００９４】
第２動作例では、ＤＭＡ１に対して、総転送量として「0x10000000」、一時転送量として「0x10000000」、転送元情報として「外部入力」、転送先情報として「Address:0x00000000」と「Address: 0x10000000」の２箇所が、割り込み設定として「転送終了」がそれぞれ設定されている。
【００９５】
第２ＤＭＡコントローラ１２（ＤＭＡ２）に対しては、総転送量として「ＤＭＡ１に関連付け」、一時転送量として「0x00010000」、転送元情報として「ＤＭＡ１転送先１」、転送先情報として「Address:0x20000000」、割り込み設定として「転送終了」がそれぞれ設定されている。
【００９６】
この設定では、転送元情報として「ＤＭＡ１転送先１」が設定されているので、関連付け設定部１５により、ＤＭＡ１が前段に、ＤＭＡ２がその後段に関連付けされ、ＤＭＡ１の転送先１がＤＭＡ２の転送元にされる。また、総転送量に「ＤＭＡ１に関連付け」が設定されているので、関連付け設定部１５により、ＤＭＡ２の総転送量は、ＤＭＡ１の総転送量を参照してこれと同じ値に設定される。
【００９７】
第３ＤＭＡコントローラ１３（ＤＭＡ３）に対しては、総転送量として「ＤＭＡ１に関連付け」、一時転送量として「0x00020000」、転送元情報として「ＤＭＡ１転送先２」、転送先情報として「Address:0x30000000」、割り込み設定として「転送終了」がそれぞれ設定されている。
【００９８】
この設定では、転送元情報に「ＤＭＡ１転送先２」が設定されているので、関連付け設定部１５により、ＤＭＡ１が前段に、ＤＭＡ３がその後段に関連付けされ、ＤＭＡ１の転送先２がＤＭＡ３の転送元にされる。また、総転送量に「ＤＭＡ１に関連付け」が設定されているので、関連付け設定部１５により、ＤＭＡ３の総転送量はＤＭＡ１の総転送量と同じ値に設定される。
【００９９】
第４ＤＭＡコントローラ１４（ＤＭＡ４）に対しては、総転送量として「ＤＭＡ２、３に関連付け」、一時転送量として「ＤＭＡ３に関連付け」、転送元情報として「ＤＭＡ２、３転送先」、転送先情報として「0x40000000」、割り込み設定として「転送終了」がそれぞれ設定されている。
【０１００】
この設定では、転送元情報に「ＤＭＡ２、３転送先」が設定されているので、関連付け設定部１５により、ＤＭＡ２とＤＭＡ３の２つが前段に、ＤＭＡ４がそれらの後段に関連付けされ、ＤＭＡ２の転送先とＤＭＡ３の転送先がそれぞれＤＭＡ４の２つの転送元にされる。また、総転送量に「ＤＭＡ２、３に関連付け」が設定されているので、関連付け設定部１５により、ＤＭＡ４の総転送量は、ＤＭＡ２の総転送量とＤＭＡ３の総転送量の和の２分の１に設定される。ＤＭＡ４の一時転送量に「ＤＭＡ３に関連付け」が設定されているので、関連付け設定部１５により、ＤＭＡ４の一時転送量は、ＤＭＡ３の一時転送量と同じ値に設定される。
【０１０１】
以上の設定により、ＤＭＡ転送装置１０は次のように動作する（図１０参照）。
【０１０２】
まず、関連付け設定部１５は、ＣＰＵ７によりＤＭＡ１〜ＤＭＡ４が起動されると、起動されたＤＭＡコントローラについて、そのＤＭＡコントローラを後段とした関連付けを行う。その後以下のように動作する。
【０１０３】
（１）起動されたＤＭＡ１は、外部から入力したデータをメモリ８のアドレス0x00000000を先頭とする第１領域とアドレス0x10000000を先頭とする第２領域の２箇所にそれぞれ転送する(図１０：Ｐ１１)。
詳細には、
・ＤＭＡ１では、総転送量と一時転送量の設定値が等しいので、転送先１と転送先２のそれぞれに総転送量のデータが１回のＤＭＡ転送で実行される。
・全てのデータ転送が終了したとき、ＤＭＡ１は、ＣＰＵ７に対して割り込み信号を出力する。
【０１０４】
（２）ＤＭＡ１に関連付けられたＤＭＡ２は、連動制御部１６に制御されて、ＤＭＡ１の転送先１（Address:0x00000000を先頭とする第１領域）から、転送先（Address:0x20000000を先頭とする第３領域）への一時転送量（0x00010000）単位のＤＭＡ転送を繰り返し行って、ＤＭＡ１と同じ総転送量（0x10000000）のＤＭＡ転送を実行する。
【０１０５】
詳細には、
・連動制御部１６は、ＤＭＡ１の転送済みデータ量がＤＭＡ２の転送済みデータ量＋一時転送量以上になる事を起点に、ＤＭＡ２の初回のＤＭＡ転送を起動する（図１０：Ｐ１２）。
・一時転送量のＤＭＡ転送が終了した時、ＤＭＡ２は一時停止する。
・連動制御部１６は、ＤＭＡ１の転送済みデータ量がＤＭＡ２の転送済みデータ量＋一時転送量以上になる事を起点に、次のＤＭＡ２の一時転送量単位のＤＭＡ転送を再開（起動）させる(図１０：Ｐ１３)。
・上記一時停止と再開が繰り返し行われ、ＤＭＡ２による総転送量のＤＭＡ転送が完了したとき、ＤＭＡ２は、割り込み信号をＣＰＵ７に出力して処理を終了する。
【０１０６】
（３）ＤＭＡ３は、連動制御部１６に制御されて、ＤＭＡ１の転送先２（Address:0x10000000を先頭とする第２領域）から、転送先（Address:0x30000000を先頭する第４領域）に、一時転送量（0x00020000）単位のＤＭＡ転送を繰り返し行って、ＤＭＡ１と同じ総転送量（0x10000000）のＤＭＡ転送を実行する。
【０１０７】
詳細には、
・連動制御部１６は、ＤＭＡ１の転送済みデータ量がＤＭＡ３の転送済みデータ量＋一時転送量以上になる事を起点に、ＤＭＡ３の初回のＤＭＡ転送を起動する(図１０：Ｐ１４)。
・一時転送量のＤＭＡ転送が終了した時、ＤＭＡ３は一時停止する。
・連動制御部１６は、ＤＭＡ１の転送済みデータ量がＤＭＡ３の転送済みデータ量＋一時転送量以上になる事を起点に、次のＤＭＡ３の一時転送量単位のＤＭＡ転送を再開(起動)させる(図１０：Ｐ１５)。
・上記一時停止と再開が繰り返し行われ、ＤＭＡ３による総転送量のＤＭＡ転送が完了したとき、ＤＭＡ３は、割り込み信号をＣＰＵ７に出力して処理を終了する。
【０１０８】
（４）ＤＭＡ４は、ＤＭＡ２の転送先（Address:0x20000000を先頭とする第３領域）とＤＭＡ３の転送先（Address:0x30000000を先頭とする第４領域）からそれぞれデータを読み出し（Ｐ１６ａ、Ｐ１６ｂ）、これらに所定の演算を施した結果をＤＭＡ４の転送先（Address:0x40000000を先頭とする第５領域）へＤＭＡ転送する（Ｐ１６ｃ）。
【０１０９】
詳細には、
・連動制御部１６は、ＤＭＡ２の転送済みデータ量とＤＭＡ３の転送済みデータ量が共に、ＤＭＡ４の転送済みデータ量＋一時転送量以上になる事を起点に、ＤＭＡ４の転送を開始させる。
【０１１０】
・一時転送量のＤＭＡ転送が終了した時、ＤＭＡ４は一時停止する。
・連動制御部１６は、ＤＭＡ２の転送済みデータ量とＤＭＡ３の転送済みデータ量が共に、ＤＭＡ４の転送済みデータ量＋一時転送量以上になる事を起点に、ＤＭＡ４の転送を再開(起動)させる。
・上記一時停止と再開が繰り返し行われ、ＤＭＡ４による総転送量のＤＭＡ転送（一時転送量単位の最後のＤＭＡ転送(図１０：Ｐ１７ａ、Ｐ１７ｂ、Ｐ１７ｃ)）が完了したとき、ＤＭＡ４は、割り込み信号をＣＰＵ７に出力して処理を終了する。
【０１１１】
以上の動作では、ＤＭＡ１〜ＤＭＡ４が並行動作すると共に、ＤＭＡ２、ＤＭＡ３、ＤＭＡ４による一時転送量単位のＤＭＡ転送については、転送終了毎にＣＰＵ７に対して割り込みが発生しないので、ＣＰＵ７の処理負担が軽減されてスループットが向上する。
【０１１２】
ＣＰＵ７は、ＤＭＡ１〜ＤＭＡ４のそれぞれから総転送量の転送が終了した時に割り込みを受けるので、ＤＭＡ１〜ＤＭＡ４のそれぞれが正常にデータ転送を完了したことを認識することができる。
【０１１３】
以下、上記の動作を流れ図に基づいて説明する。
【０１１４】
図１１は、ＤＭＡ転送装置１０にデータ転送を行わせるためにＣＰＵ７が行う処理の流れを示している。ＣＰＵ７は、ＤＭＡ１〜ＤＭＡ４のそれぞれに対して図９に示す内容を設定する（ステップＳ１２１）。その後、ＤＭＡ１〜ＤＭＡ４をそれぞれ起動する（ステップＳ１２２）。
【０１１５】
外部からのデータ入力が開始すると（ステップＳ１２３）、前述したようにＤＭＡ１〜ＤＭＡ４によるデータ転送が行われる。ＣＰＵ７は、ＤＭＡ１〜ＤＭＡ４からの割り込み信号により、これらＤＭＡ１〜ＤＭＡ４のすべてでＤＭＡ転送が終了したことを確認すると（ステップＳ１２４；Ｙｅｓ）、本処理を終了する。
【０１１６】
図１２は、ＤＭＡ１およびＤＭＡ１に対して関連付け設定部１５、連動制御部１６が行う処理を示す流れ図である。ＤＭＡ１がＣＰＵ７から設定を受け（ステップＳ２２１）、起動の指示を受けると、関連付け設定部１５はＤＭＡ１を後段とする関連付けが設定されているかを調べ、設定されている場合、関連付けを行う（ステップＳ２２２）。図９の設定の場合、ＤＭＡ１を後段とする関連付けはない。
【０１１７】
その後、ＤＭＡ１は、外部からデータの入力が開始すると（ステップＳ２２３）、転送元から転送先１および転送先２へのＤＭＡ転送を開始する（ステップＳ２２４）。ＤＭＡ１は、転送先１への転送済みデータ量が総転送量に達し、かつ転送先２への転送済みデータ量が総転送量に達したら（ステップＳ２２５；Ｙｅｓ）、ＤＭＡ転送を終了させ、転送終了を示す割り込み信号をＣＰＵ７に対して出力して（ステップＳ２２６）、本処理を終了する。
【０１１８】
図１３は、ＤＭＡ２およびＤＭＡ２に対して関連付け設定部１５、連動制御部１６が行う処理を示す流れ図である。ＤＭＡ２がＣＰＵ７から設定を受け(ステップＳ３２１)、起動の指示を受けると、関連付け設定部１５はＤＭＡ２を後段とする関連付けが設定されているかを調べ、設定されている場合、関連付けを行う（ステップＳ３２２）。図９の設定の場合、ＤＭＡ２をＤＭＡ１の後段に関連付け、ＤＭＡ２の転送元をＤＭＡ1の転送先１に設定する。その後、ＤＭＡ２は、連動制御部１６から転送開始の指示を待つ。
【０１１９】
連動制御部１６は、ＤＭＡ１の転送先１への転送済みデータ量が、ＤＭＡ２の転送済みデータ量＋一時転送量以上になったら（ステップＳ３２３；Ｙｅｓ）、ＤＭＡ２に一時転送量のＤＭＡ転送の開始を指示し、ＤＭＡ２は該指示を受けて、一時転送量のＤＭＡ転送を実行する（ステップＳ３２４）。ＤＭＡ２は、一時転送量のＤＭＡ転送が完了したら転送を一時停止する。
【０１２０】
連動制御部１６は、ＤＭＡ２の転送済みデータ量とＤＭＡ２の総転送量を比較し、ＤＭＡ２の転送済みデータ量がＤＭＡ２の総転送量未満の場合は(ステップＳ３２５；Ｎｏ)、ステップＳ３２３に戻って処理を継続する。すなわち、ＤＭＡ１の転送先１への転送済みデータ量が、ＤＭＡ２の転送済みデータ量＋一時転送量以上になったら、ＤＭＡ２に一時転送量のＤＭＡ転送の開始を再び指示し、ＤＭＡ２による一時転送量のＤＭＡ転送を起動してＤＭＡ転送を再開させる。
【０１２１】
ＤＭＡ２の転送済みデータ量がＤＭＡ２の総転送量に達したら（ステップＳ３２５；Ｙｅｓ)、連動制御部１６はＤＭＡ２に対する連動制御を終了し、ＤＭＡ２は、転送終了を示す割り込み信号をＣＰＵ７に対して出力して（ステップＳ３２６）、本処理を終了する。
【０１２２】
図１４は、ＤＭＡ３およびＤＭＡ３に対して関連付け設定部１５、連動制御部１６が行う処理を示す流れ図である。ＤＭＡ３がＣＰＵ７から設定を受け(ステップＳ４２１)、起動の指示を受けると、関連付け設定部１５はＤＭＡ３を後段とする関連付けが設定されているかを調べ、設定されている場合、関連付けを行う（ステップＳ４２２）。図９の設定の場合、ＤＭＡ３をＤＭＡ１の後段に関連付ける。また、ＤＭＡ１の転送先２をＤＭＡ３の転送元に設定する。その後、ＤＭＡ３は、連動制御部１６から転送開始の指示を待つ。
【０１２３】
連動制御部１６は、ＤＭＡ１の転送先２への転送済みデータ量が、ＤＭＡ３の転送済みデータ量＋一時転送量以上になったら(ステップＳ４２３；Ｙｅｓ)、ＤＭＡ３に一時転送量のＤＭＡ転送の開始を指示し、ＤＭＡ３は該指示を受けて一時転送量のＤＭＡ転送を実行する（ステップＳ４２４）。ＤＭＡ３は、一時転送量のＤＭＡ転送が完了したら一時停止する。
【０１２４】
連動制御部１６は、ＤＭＡ３の転送済みデータ量とＤＭＡ３の総転送量を比較し、ＤＭＡ３の転送済みデータ量がＤＭＡ３の総転送量未満の場合は(ステップＳ４２５；Ｎｏ)、ステップＳ４２３に戻って処理を継続する。すなわち、ＤＭＡ１の転送先２への転送済みデータ量が、ＤＭＡ３の転送済みデータ量＋一時転送量以上になったら、ＤＭＡ３に一時転送量のＤＭＡ転送の開始を再び指示し、ＤＭＡ３による一時転送量のＤＭＡ転送を起動してＤＭＡ転送を再開させる。
【０１２５】
ＤＭＡ３の転送済みデータ量がＤＭＡ３の総転送量に達したら（ステップＳ４２５；Ｙｅｓ)、連動制御部１６はＤＭＡ３に対する連動制御を終了し、ＤＭＡ３は、転送終了を示す割り込み信号をＣＰＵ７に対して出力して（ステップＳ４２６）、本処理を終了する。
【０１２６】
図１５は、ＤＭＡ４およびＤＭＡ４に対して関連付け設定部１５、連動制御部１６が行う処理を示す流れ図である。ＤＭＡ４がＣＰＵ７から設定を受け(ステップＳ５２１)、起動の指示を受けると、関連付け設定部１５はＤＭＡ４を後段とする関連付けが設定されているかを調べ、設定されている場合、関連付けを行う（ステップＳ５２２）。図９の設定の場合ＤＭＡ４をＤＭＡ２およびＤＭＡ３の後段に関連付ける。また、ＤＭＡ２の転送先とＤＭＡ３の転送先の２箇所をＤＭＡ４の転送元に設定する。その後、ＤＭＡ４は、連動制御部１６から転送開始の指示を待つ。
【０１２７】
連動制御部１６は、ＤＭＡ２の転送済みデータ量とＤＭＡ３の転送済みデータ量が共に、ＤＭＡ４の転送済みデータ量＋一時転送量以上になったら（ステップＳ５２３；Ｙｅｓ）、ＤＭＡ４に一時転送量のＤＭＡ転送の開始を指示し、ＤＭＡ４は該指示を受けて一時転送量のＤＭＡ転送を実行する（ステップＳ５２４）。ＤＭＡ４は、一時転送量のＤＭＡ転送が完了したら一時停止する。
【０１２８】
連動制御部１６は、ＤＭＡ４の転送済みデータ量とＤＭＡ４の総転送量を比較し、ＤＭＡ４の転送済みデータ量がＤＭＡ４の総転送量未満の場合は(ステップＳ５２５；Ｎｏ)、ステップＳ５２３に戻って処理を継続する。すなわち、ＤＭＡ２の転送済みデータ量とＤＭＡ３の転送済みデータ量が共に、ＤＭＡ４の転送済みデータ量＋一時転送量以上になったら、ＤＭＡ４に一時転送量のＤＭＡ転送の開始を再び指示し、ＤＭＡ４による一時転送量のＤＭＡ転送を起動してＤＭＡ転送を再開させる。
【０１２９】
ＤＭＡ４の転送済みデータ量がＤＭＡ４の総転送量に達したら（ステップＳ５２５；Ｙｅｓ)、連動制御部１６はＤＭＡ４に対する連動制御を終了し、ＤＭＡ４は、転送終了を示す割り込み信号をＣＰＵ７に対して出力して（ステップＳ５２６）、本処理を終了する。
【０１３０】
＜第３動作例＞
第３動作例では、第２動作例と同様にＤＭＡ４をＤＭＡ２とＤＭＡ３に関連付けている。第２動作例との相違点は、ＤＭＡ４の総転送量や一時転送量は、ＤＭＡ２、ＤＭＡ３の総転送量や一時転送量から再計算される点である。
【０１３１】
図１６に示す例では、ＤＭＡ４の総転送量は「ＤＭＡ２、３に関連付け、１／２に再計算」と設定されているので、関連付け設定部１５は、（ＤＭＡ２の総転送量＋ＤＭＡ３の総転送量）÷２  の計算を行ってＤＭＡ４の総転送量を設定する。
【０１３２】
同様に、ＤＭＡ４の一時転送量は、「ＤＭＡ３に関連付け、１／４に再計算」と設定されているので、関連付け設定部１５は、ＤＭＡ３の一時転送量÷４  の計算を行ってＤＭＡ４の一時転送量を設定する。
【０１３３】
再計算の内容は図１６に例示したものに限定されず、各種の計算式に基づく計算を行って設定することができる。また、関連付けされた前段のＤＭＡの設定に対してオフセットを付加するといった計算を行ってもよい。
【０１３４】
＜その他の例１＞
関連付けされた前段のＤＭＡの転送先アドレスから、後段のＤＭＡの転送元アドレスを再計算してもよい。たとえば、画像回転の処理を施す設定が成されている場合、（前段のＤＭＡの転送先アドレス＋総転送量）を後段のＤＭＡの転送元アドレスとし、このアドレスから逆方向に画像データを読み出すような処理を行ってもよい。
【０１３５】
＜その他の例２＞
関連付けにより取得されるＤＭＡの転送済みデータ量に対して、後段のＤＭＡの一時転送量のＤＭＡ転送が自動で開始するデータ量を再計算してもよい。たとえば、転送元に一時転送量の半分のデータが揃った時点で転送を開始しても、転送元のデータ不足が生じないような場合には、前段のＤＭＡの転送済みデータ量が、後段のＤＭＡの転送済みデータ量＋一時転送量の半分  以上になったことを起点に後段のＤＭＡ転送を開始するように関連付け設定部１５が自動設定してもよい。
【０１３６】
＜その他の例３＞
割り込み設定は、総転送量の転送終了時のほか、一時転送量のＤＭＡ転送の終了毎、あるいは任意の転送済みデータ量において割り込みを発生可能に構成されてもよい。任意の状況でＤＭＡ転送装置１０がＣＰＵ７に対して割り込みを発生可能にすることで、ＣＰＵ７がＤＭＡ転送装置１０の状況をポーリングする場合に比べて、ＤＭＡ中断、ＤＭＡ設定の変更、転送状況のモニタ、ＣＰＵ７の他の処理との連携動作等を、行い易くなる。
【０１３７】
以上のように、ＤＭＡ転送装置１０では、関連付けされた複数のＤＭＡコントローラ（ＤＭＡ１〜ＤＭＡ４）を、連動制御部１６の制御により連携動作させることができるので、総転送量のＤＭＡ転送を、総転送量より少ない一時転送量単位の複数のＤＭＡ転送に分け、複数のＤＭＡ転送を並行動作させる場合に、一時転送量のＤＭＡ転送毎にＣＰＵ７に対して割り込みを掛けてＣＰＵ７の補助を受けることなく、自律的に複数のＤＭＡの動作を連携させることができる。これにより、ＣＰＵ７の処理負担を軽減し、オーバーヘッドなく高いスループットでデータ処理を行うことができる。
【０１３８】
また、関連付けに関する簡単な指定をＣＰＵ７から行うだけで、関連付け設定部１５が転送元のアドレスや総転送量、一時転送量などを、前段のＤＭＡの設定内容等から自動的に設定するので、初期設定に関するＣＰＵ７の処理負担も軽減される。
【０１３９】
以上、本発明の実施の形態を図面によって説明してきたが、具体的な構成は実施の形態に示したものに限られるものではなく、本発明の要旨を逸脱しない範囲における変更や追加があっても本発明に含まれる。
【０１４０】
実施の形態では、ＤＭＡ転送装置１０がＤＭＡ１〜ＤＭＡ４を有する構成を例示したが、ＤＭＡコントローラの数はこれに限定されず、任意の複数でよい。
【０１４１】
また、実施の形態では関連付け設定部１５が前段のＤＭＡの設定等から後段のＤＭＡの転送元のアドレスや総転送量、一時転送量などを自動的に設定する例を示したが、これらの設定はＣＰＵ７が行うように構成されてもよい。そして、どのＤＭＡとどのＤＭＡを前段後段の関係に関連付けるかの指定をＣＰＵ７が別途行うようにしてもよい。
【０１４２】
実施の形態では、前段のＤＭＡの転送済みデータ量が、後段のＤＭＡの転送済みデータ量＋一時転送量を超えた場合に、後段のＤＭＡが一時転送量のＤＭＡ転送を再開する例を示したが、これと実質的に同様な動作を他の方法で行って前段のＤＭＡと後段のＤＭＡを連携させてもよい。たとえば、前段のＤＭＡが後段のＤＭＡの一時転送量に相当するデータを転送し終えた時点でそれを後段のＤＭＡに通知して後段のＤＭＡを再開させるといった構成でもよい。
【０１４３】
実施の形態では、ＤＭＡ１〜ＤＭＡ４のそれぞれが総転送量のＤＭＡ転送の終了時に割り込みをＣＰＵ７に対して出力する構成を示したが、これに加えてＤＭＡ１〜ＤＭＡ４の全ての転送が完了したときにも割り込みを出力する、あるいは、ＤＭＡ１〜ＤＭＡ４の全ての転送が完了したときのみＣＰＵ７に割り込みを出力する構成でもかまわない。
【符号の説明】
【０１４４】
５…画像処理システム
６…システムバス
７…ＣＰＵ
８…メモリ
１０…ＤＭＡ転送装置
１１…第１ＤＭＡコントローラ（ＤＭＡ１）
１２…第２ＤＭＡコントローラ（ＤＭＡ２）
１３…第３ＤＭＡコントローラ（ＤＭＡ３）
１４…第４ＤＭＡコントローラ（ＤＭＡ４）
１５…関連付け設定部
１６…連動制御部
【図１】
2017156971.tif 000003
【図２】
2017156971.tif 000004
【図３】
2017156971.tif 000005
【図４】
2017156971.tif 000006
【図５】
2017156971.tif 000007
【図６】
2017156971.tif 000008
【図７】
2017156971.tif 000009
【図８】
2017156971.tif 000010
【図９】
2017156971.tif 000011
【図１０】
2017156971.tif 000012
【図１１】
2017156971.tif 000013
【図１２】
2017156971.tif 000014
【図１３】
2017156971.tif 000015
【図１４】
2017156971.tif 000016
【図１５】
2017156971.tif 000017
【図１６】
2017156971.tif 000018
【図１７】
2017156971.tif 000019
【図１８】
2017156971.tif 000020