(57)【要約】      （修正有）【課題】データ転送開始時に設定されたデータ転送を中断するデータ量を転送した後に、データ転送を中断することなくデータ転送を継続可能なデータ転送装置を提供する。【解決手段】データを転送するデータ転送装置は、第１データ量計数部３１と、第１記憶部３４と、制御部４０とを有する。第１データ量計数部３１は転送されたデータの量である第１転送データ量を計数し、第１記憶部３４は、第１しきい値を記憶する。制御部４０は、第１転送データ量が第１しきい値に達していない場合にデータ転送を許可し、第１転送データ量が第１しきい値に達した場合にデータ転送を中断する。制御部４０は、データ転送中に第１しきい値を書き換える。【選択図】図２
2015184788.tif 000002
【特許請求の範囲】
【請求項１】
データを転送するデータ転送装置であって、
転送されたデータの量である第１転送データ量を計数する第１データ量計数部と、
第１しきい値を記憶する第１記憶部と、
前記第１転送データ量が前記第１しきい値に達していない場合にデータ転送を許可し、前記第１転送データ量が前記第１しきい値に達した場合にデータ転送を中断する制御部と、を有し、
前記制御部は、データ転送中に前記第１しきい値を書き換えることができるように構成されている、ことを特徴とするデータ転送装置。
【請求項２】
前記第１転送データ量は、演算装置が処理したデータが記憶される記憶装置から処理モジュールに転送されたデータの量である、請求項１に記載のデータ転送装置。
【請求項３】
第２しきい値を記憶する第２記憶部を更に有し、
前記制御部は、前記第１転送データ量が前記第２しきい値に達した場合に、転送されたデータが記憶されていた前記記憶装置のメモリ領域へのアクセスを許可する第１許可通知を前記演算装置に出力し、
前記制御部は、データ転送中に前記第２しきい値を書き換えることができる、請求項２に記載のデータ転送装置。
【請求項４】
前記処理モジュールから前記記憶装置に転送されたデータ量である第２転送データ量を計数する第２データ量計数部と、
第３しきい値を記憶する第３記憶部と、を更に有し、
前記制御部は、前記第２転送データ量が前記第３しきい値に達した場合に、前記記憶装置に転送されたデータへのアクセスを許可する第２許可通知を前記演算装置に出力し、
前記制御部は、データ転送中に前記第３しきい値を書き換えることができる、請求項２又は３に記載のデータ転送装置。
【請求項５】
第４しきい値を記憶する第４記憶部を更に有し、
前記制御部は、前記第２転送データ量が前記第４しきい値に達していない場合にデータ転送を許可し、前記第２転送データ量が前記第４しきい値に達した場合にデータ転送を中断し、
前記制御部は、データ転送を中断しているときに前記第４しきい値を書き換えることができる、請求項４に記載のデータ転送装置。
【請求項６】
記憶装置と、
前記記憶装置に記憶されたデータを処理する演算装置と、
前記記憶装置に記憶されたデータを転送するデータ転送装置と、
前記データ転送装置が転送したデータを処理する処理モジュールと、を有し、
前記データ転送装置は、
転送されたデータの量である第１転送データ量を計数する第１データ量計数部と、
第１しきい値を記憶する第１記憶部と、
前記第１転送データ量が前記第１しきい値に達していない場合にデータ転送を許可し、前記第１転送データ量が前記第１しきい値に達した場合にデータ転送を中断する制御部と、を有し、
前記制御部は、データ転送中に前記第１しきい値を書き換えることができるように構成されている、
ことを特徴とするデータ転送システム。
【請求項７】
転送可能なデータ量である第１しきい値を記憶し、
転送されたデータの量である第１転送データ量を計数し、
前記第１しきい値をデータ転送中に書き換え、
前記第１転送データ量が前記第１しきい値に達していない場合にデータ転送を許可し、前記第１転送データ量が前記第１しきい値に達した場合にデータ転送を中断する、
ことを有することを特徴とするデータ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ転送装置、データ転送システム及びその方法に関する。
【背景技術】
【０００２】
ＤＭＡ(Direct Memory Access)転送は、ＣＰＵ（Central Processing Unit、中央処理装置）を経由せずデバイス間でデータを転送する技術であり、メモリ、周辺機器等のデバイス間で直接データを転送する場合に広く使用されている。
【０００３】
一般的なＤＭＡ転送では、転送元および転送先のアドレスや転送データサイズをレジスタ等に設定し、その後ＣＰＵ等が転送開始を制御することにより転送が開始される。ＤＭＡ転送中には、ＣＰＵによる転送制御を必要としないため、ＣＰＵを経由する場合に比べて高速に転送を行うことが可能であり、ＣＰＵの負担を低減できる。
【０００４】
特許文献１には、ＣＰＵによるデータ処理とＤＭＡデータ転送とを並列的に実行するシステムに使用されるＤＭＡ転送装置が記載されている。特許文献１に記載されるＤＭＡ転送装置では、データ転送開始時のレジスタに設定されたデータ量をカウンタにロードし、カウンタにロードされたデータ量は、ＤＭＡ転送されるデータ量に応じてデクリメントされる。そして、カウンタの値が「０」になると、ＤＭＡ転送装置は、データ転送を中断する。特許文献１に記載されるＤＭＡ転送装置では、データ転送を中断するデータ量をデータ転送開始時にＣＰＵによるデータ処理に応じて設定することにより、ＤＭＡデータ転送は、ＣＰＵによるデータ処理と並列的に実行される。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−１１９７１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に記載されるＤＭＡ転送装置では、データ転送を中断するデータ量はデータ転送開始時に設定され、データ転送中に変更することができない。したがって、特許文献１に記載されるＤＭＡ転送装置では、設定されたデータ量を転送する毎にデータ転送が中断され、ＣＰＵはデータ転送が中断される毎にデータ転送を再開するための処理を実行するため、ＣＰＵの処理が煩雑になるという問題があった。
【０００７】
そこで、本発明は、データ転送開始時に設定された、データ転送を中断するデータ量を転送した後に、データ転送を中断することなくデータ転送を継続可能なデータ転送装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明に係るデータ転送装置は、転送されたデータの量である第１転送データ量を計数する第１データ量計数部と、第１しきい値を記憶する第１記憶部と、第１転送データ量が第１しきい値に達していない場合にデータ転送を許可し、第１転送データ量が第１しきい値に達した場合にデータ転送を中断する制御部と、を有し、制御部はデータ転送中に第１しきい値を書き換えることができるように構成されている、ことを特徴とする。
【０００９】
また、本発明に係るデータ転送システムは、記憶装置と、記憶装置に記憶されたデータを処理する演算装置と、記憶装置に記憶されたデータを転送するデータ転送装置と、データ転送装置が転送したデータを処理する処理モジュールと、を有し、データ転送装置は、転送されたデータの量である第１転送データ量を計数する第１データ量計数部と、第１しきい値を記憶する第１記憶部と、第１転送データ量が第１しきい値に達していない場合にデータ転送を許可し、第１転送データ量が第１しきい値に達した場合にデータ転送を中断する制御部を有し、制御部はデータ転送中に第１しきい値を書き換えることができるように構成されている、ことを特徴とする。
【００１０】
また、本発明に係るデータ転送方法は、転送可能なデータ量である第１しきい値を記憶し、転送されたデータの量である第１転送データ量を計数し、第１しきい値をデータ転送中に書き換え、第１転送データ量が第１しきい値に達していない場合にデータ転送を許可し、第１転送データ量が第１しきい値に達した場合にデータ転送を中断することを有する、ことを特徴とする。
【発明の効果】
【００１１】
本発明に係るデータ転送装置では、データ転送開始時に設定された第１しきい値をデータ転送中に書き換えることができるので、データ転送開始時に設定された第１しきい値に等しいデータ量を転送した後に、データ転送を中断することなくデータ転送を継続することができる。
【図面の簡単な説明】
【００１２】
【図１】データ転送システムの回路ブロック図である。
【図２】図１に示すメモリ読出し部の内部回路ブロック図である。
【図３】図１に示すメモリ書込み部の内部回路ブロック図である。
【図４】第１動作例の処理フローを示すフローチャートである。
【図５】第１動作例におけるデータ転送及びしきい値の変化を示す図である。
【図６】第１動作例においてＣＰＵがＤＭＡコントローラに第１しきい値を出力する状態を示す図である。
【図７】第１動作例においてＤＭＡコントローラがＣＰＵに第１許可通知及び第２しきい値を出力する状態を示す図である。
【図８】第２動作例の処理フローを示すフローチャートである。
【図９】第２動作例におけるデータ転送及びしきい値の変化を示す図である。
【図１０】第２動作例においてＣＰＵがＤＭＡコントローラに第２許可通知及び第３しきい値を出力する状態を示す図である。
【図１１】第３動作例におけるデータ転送及びしきい値の変化を示す図である。
【図１２】第３動作例においてＣＰＵがＤＭＡコントローラに第４しきい値を出力する状態を示す図である。
【発明を実施するための形態】
【００１３】
以下図面を参照して、データ転送装置、データ転送システム及びその方法について説明する。但し、本発明の技術的範囲はそれらの実施の形態に限定されず、特許請求の範囲に記載された発明との均等物に及ぶ点に留意されたい。
【００１４】
〔データ転送システムに含まれる装置の構成及び機能について〕
図１は、データ転送システムの回路ブロック図である。
【００１５】
データ転送システム１は、ＣＰＵ１０と、メモリ１１と、メモリコントローラ１２と、Ｉ／Ｏコントローラ１３と、ＤＭＡコントローラ１４と、画像処理モジュール１５と、システムバス１６とを有する。ＤＭＡコントローラ１４は、メモリ読出し部１４１と、メモリ書込み部１４２とを有する。
【００１６】
ＣＰＵ１０は、メモリ１１に記憶されるコンピュータプログラムに基づいて、データ転送システム１を制御する。また、ＣＰＵ１０は、メモリ１１に記憶される画像データを読み出して、読み出した画像データの画像処理を実行し、画像処理を実行した画像データをメモリ１１に書き込む処理を実行する。
【００１７】
メモリ１１は、ＣＰＵ１０が実行するコンピュータプログラムが記憶されると共に、ＣＰＵ１０及び画像処理モジュールにより画像処理される画像データが記憶される。メモリコントローラ１２は、ＣＰＵ１０及びＤＭＡコントローラ１４の指示に基づいて、メモリ１１に記憶された画像データを読み出すと共に、メモリ１１に画像データを書き込む。
【００１８】
メモリ１１は、第１メモリ領域１１１と、第２メモリ領域１１２と、第３メモリ領域１１３と、を含む。第２メモリ領域１１２は、第１サブメモリ領域１１２１と、第１サブメモリ領域１１２１と同一のデータ量を記憶可能な第２サブメモリ領域１１２２とを有する。第１メモリ領域１１１は、ＣＰＵ１０がアクセス可能な領域であり、ＣＰＵ１０で画像処理される前の画像データ、又はＣＰＵ１０で画像処理された後の画像データを記憶する。第２メモリ領域は、ＣＰＵ１０及びＤＭＡコントローラ１４の双方がアクセス可能な領域であり、ＣＰＵ１０又は画像処理モジュール１５で画像処理された中間データを記憶する。第３メモリ領域は、ＤＭＡコントローラ１４がアクセス可能な領域であり、画像処理モジュール１５で画像処理される前の画像データ又は画像処理モジュール１５で画像処理された後の画像データを記憶する。
【００１９】
Ｉ／Ｏコントローラ１３は、データ転送システム１の外部に配置される装置とデータ転送システム１に配置される装置とのインタフェース回路である。
【００２０】
ＤＭＡコントローラ１４は、メモリ１１に記憶されたデータを画像処理モジュール１５に転送すると共に、画像処理モジュール１５で画像処理されたデータをメモリ１１に転送するデータ転送装置である。
【００２１】
図２は、メモリ読出し部１４１の内部回路ブロック図である。
【００２２】
メモリ読出し部１４１は、第１入力バッファ２１と、第１データバッファ２２と、第１出力バッファ２３とを有する。メモリ読出し部１４１は、第１加算器３０と、第１転送量カウンタ３１と、第１総転送量レジスタ３２と、第１終了比較器３３と、第１中断転送量レジスタ３４と、第１中断比較器３５と、第１許可転送量レジスタ３６と、第１許可比較器３７とを更に有する。メモリ読出し部１４１は、メモリ読出し制御部４０を更に有する。
【００２３】
第１入力バッファ２１は、システムバス１６に接続され、メモリ１１に記憶されたデータが入力される。第１データバッファ２２は、ＦＩＦＯ（First-In First-Out）であり、メモリ読出し制御部４０から転送指示が入力されている間、第１入力バッファ２１から入力されたデータを第１出力バッファ２３に順次出力する。第１出力バッファ２３は、第１データバッファ２２から順次出力されたデータを画像処理モジュール１５に出力する。
【００２４】
第１加算器３０は、第１転送量カウンタ３１から入力された第１転送データ量と、メモリ読出し制御部４０から入力された転送量とを加算して、加算値を第１転送量カウンタ３１に出力する。第１転送量カウンタ３１は、メモリ読出し制御部４０からロード指示が入力されたとき、第１加算器３０から入力された加算値を記憶し、記憶した加算値を第１転送データ量として出力する。第１転送データ量は、ＤＭＡ転送が開始されてから現在までに、メモリ１１から画像処理モジュール１５にＤＭＡ転送されたデータの量を示す。
【００２５】
第１総転送量レジスタ３２は、ＣＰＵ１０から入力された第１総転送データ量を記憶し、記憶した第１総転送データ量を第１終了比較器３３に出力する。第１総転送データ量は、メモリ１１から画像処理モジュール１５にＤＭＡ転送されるデータの総データ量である。第１終了比較器３３は、第１総転送量レジスタ３２から入力された第１総転送データ量と、第１転送量カウンタ３１から入力された第１転送データ量とを比較する。第１終了比較器３３は、第１転送データ量が第１総転送データ量と等しくなったときに、メモリ１１から画像処理モジュール１５へのＤＭＡ転送の終了を指示する第１終了判定をメモリ読出し制御部４０に出力する。
【００２６】
第１中断転送量レジスタ３４は、ＣＰＵ１０から入力された第１しきい値を記憶し、記憶した第１しきい値を第１中断比較器３５に出力する。第１しきい値は、ＤＭＡ転送が中断されるデータ量である。第１中断比較器３５は、第１中断転送量レジスタ３４から入力された第１しきい値と、第１転送量カウンタ３１から入力された第１転送データ量とを比較する。第１中断比較器３５は、第１転送データ量が第１しきい値と等しくなったときに、メモリ１１から画像処理モジュール１５へのＤＭＡ転送の中断を指示する第１中断判定をメモリ読出し制御部４０に出力する。第１中断比較器３５は、第１転送データ量が第１しきい値より大きいときは、第１中断判定を出力し続ける。第１中断転送量レジスタ３４に記憶される第１しきい値が第１転送データ量より大きな値に書き換えられて、第１転送データ量が第１しきい値より小さくなったとき、第１中断比較器３５は、第１中断判定の出力を停止する。
【００２７】
第１許可転送量レジスタ３６は、ＣＰＵ１０から入力された第２しきい値を記憶し、記憶した第２しきい値を第１許可比較器３７に出力する。第２しきい値は、ＣＰＵ１０にメモリ１１へのアクセスの許可を通知するデータ量である。第１許可比較器３７は、第１許可転送量レジスタ３６から入力された第２しきい値と、第１転送量カウンタ３１から入力された第１転送データ量とを比較する。第１許可比較器３７は、第１転送データ量が第２しきい値と等しくなったときに、ＤＭＡ転送されたデータが記憶されていたメモリ１１のメモリ領域へのＣＰＵ１０のアクセスを許可する第１許可判定をメモリ読出し制御部４０に出力する。第１許可比較器３７は、第１転送データ量が第２しきい値より大きいときは、第１許可判定を出力し続ける。第１許可転送量レジスタ３６に記憶される第２しきい値が第１転送データ量より大きな値に書き換えられて、第１転送データ量が第２しきい値より小さくなったとき、第１許可比較器３７は、第１許可判定の出力を停止する。
【００２８】
メモリ読出し制御部４０は、ＣＰＵ１０から入力された第１転送指示、第１総転送データ量、第１しきい値及び第２しきい値に基づいて、メモリ１１から画像処理モジュール１５へのＤＭＡ転送を制御する。メモリ読出し制御部４０は、ＣＰＵ１０から第１転送指示が入力されると、ＤＭＡ転送を開始し、第１終了比較器３３から第１終了判定が入力されると、ＤＭＡ転送を終了して第１終了通知をＣＰＵ１０に出力する。メモリ読出し制御部４０は、第１中断比較器３５から第１中断判定が入力されている間、ＤＭＡ転送を中断する。メモリ読出し制御部４０は、第１許可比較器３７から第１許可判定が入力されると、第１許可通知をＣＰＵ１０に出力する。メモリ読出し制御部４０は、ＤＭＡ転送終了後に、第１総転送量レジスタ３２、第１中断転送量レジスタ３４及び第１許可転送量レジスタ３６の値を「０」に書き換えると、第１終了設定通知をＣＰＵ１０に出力する。
【００２９】
図３は、メモリ書込み部１４２の内部回路ブロック図である。
【００３０】
メモリ書込み部１４２は、第２入力バッファ５１と、第２データバッファ５２と、第２出力バッファ５３とを有する。メモリ書込み部１４２は、第２加算器６０と、第２転送量カウンタ６１と、第２総転送量レジスタ６２と、第２終了比較器６３と、第２中断転送量レジスタ６４と、第２中断比較器６５と、第２許可転送量レジスタ６６と、第２許可比較器６７とを更に有する。メモリ書込み部１４２は、メモリ書込み制御部７０を更に有する。第１総転送データ量は、画像処理モジュール１５からメモリ１１にＤＭＡ転送されるデータの総データ量である。第３しきい値は、ＣＰＵ１０にメモリ１１へのアクセスの許可を通知するデータ量である。第４しきい値は、画像処理モジュール１５からメモリ１１へのＤＭＡ転送が中断されるデータ量である。メモリ書込み部１４２に含まれる構成素子のそれぞれは、図２を参照して説明したメモリ読出し部１４１に含まれる構成素子と対応する構成及び機能を有するので、ここでは詳細な説明を省略する。
【００３１】
〔データ転送システム１の動作について〕
データ転送システム１では、ＣＰＵ１０は、メモリ１１に記憶された画像データを読み出し、読み出した画像データを画像処理し、画像処理した画像データをメモリ１１に書き込む。ＤＭＡコントローラ１４は、メモリ１１に記憶された画像データを読み出して画像処理モジュール１５にＤＭＡ転送すると共に、画像処理モジュール１５が画像処理したデータをメモリ１１にＤＭＡ転送して書き込む。画像処理モジュール１５は、ＤＭＡコントローラ１４がＤＭＡ転送した画像データを画像処理する。
【００３２】
データ転送システム１では、ＣＰＵ１０が画像処理してメモリ１１に書き込んだデータをＤＭＡコントローラ１４がＤＭＡ転送してもよいし、ＤＭＡコントローラ１４がＤＭＡ転送してメモリ１１に書き込んだデータをＣＰＵ１０が画像処理してもよい。
【００３３】
以下、ＣＰＵ１０の画像処理と、ＤＭＡコントローラ１４のＤＭＡ転送との動作関係を示す第１〜第３動作例について順に説明する。第１〜第３動作例のそれぞれは、１枚の画像に含まれるデータ量が互いに等しい４つの画像ブロックである第１画像ブロック〜第４画像ブロックを画像処理する動作を示す。
【００３４】
図４〜７を参照して説明される第１動作例は、ＣＰＵ１０が画像処理して第２メモリ領域１１２に書き込んだデータを、ＤＭＡコントローラ１４が画像処理モジュール１５にＤＭＡ転送する動作例である。図８〜１０を参照して説明される第２動作例、及び図８及び１１〜１２を参照して説明される第３動作例のそれぞれは、ＤＭＡコントローラ１４が画像処理モジュール１５から第２メモリ領域１１２にＤＭＡ転送したデータをＣＰＵ１０が画像処理する動作例である。第２動作例及び第３動作例は、ＤＭＡコントローラ１４によるＤＭＡ転送とＣＰＵ１０による画像処理との処理の順番は同一であるが、ＤＭＡコントローラ１４がＤＭＡ転送する時間とＣＰＵ１０が画像処理する時間との何れの時間が長いかが相違する。第２動作例では、ＤＭＡコントローラ１４がＤＭＡ転送する時間は、ＣＰＵ１０が画像処理する時間よりも長くなる。一方、第３動作例では、ＤＭＡコントローラ１４がＤＭＡ転送する時間は、ＣＰＵ１０が画像処理する時間よりも短くなる。
【００３５】
〔データ転送システム１による第１動作例について〕
図４は第１動作例の処理フローを示すフローチャートであり、図５は第１動作例におけるデータ転送及びしきい値の変化を示す図である。
【００３６】
第１動作例では、ＣＰＵ１０は、メモリ１１の第１メモリ領域１１１に記憶された第１画像ブロック〜第４画像ブロックを順次読み出して第１画像処理を実行し、メモリ１１の第２メモリ領域１１２に書き込む。並行して、画像処理モジュール１５は、メモリ１１の第２メモリ領域１１２に書き込まれた画像ブロックをＤＭＡ転送によって読み出して第２画像処理を実行し、メモリ１１の第３メモリ領域１１３にＤＭＡ転送して書き込む。
【００３７】
第１動作例では、ＣＰＵ１０が第１画像ブロック〜第４画像ブロックのそれぞれに対して第１画像処理を実行する時間は、ＤＭＡコントローラ１４が第１画像ブロック〜第４画像ブロックのそれぞれをメモリ１１から画像処理モジュール１５にＤＭＡ転送する時間より短い。
【００３８】
まず、ＣＰＵ１０は、第１転送指示と共に、第１総転送データ量、第１しきい値〜第２しきい値をＤＭＡコントローラ１４に出力する（Ｓ１０１）。第１総転送データ量は、第１画像ブロック〜第４画像ブロックの合計のデータ量である。この時点で出力される、第１しきい値は「０」であり、第２しきい値は第１画像ブロックのデータ量である。
【００３９】
次いで、ＣＰＵ１０は、第１画像ブロックの第１画像処理を実行する（Ｓ１０２）。ＣＰＵ１０は、メモリ１１の第１メモリ領域１１１から第１画像ブロックを読み出し、第１画像ブロックの第１画像処理を実行し、第１画像処理を実行した第１画像ブロックをメモリ１１の第２メモリ領域１１２の第１サブメモリ領域１１２１に書き込む。
【００４０】
ＤＭＡコントローラ１４は、ＣＰＵ１０から入力された第１総転送データ量及び第１しきい値〜第２しきい値を書き込む等の初期設定をする（Ｓ１１１）。次いで、ＤＭＡコントローラ１４は、値が「０」の第１しきい値が入力されたと判定し（Ｓ１１２）、第１しきい値を「０」に書き換え（Ｓ１１３）、転送データ量は第１しきい値以上であるか否かを判定する（Ｓ１１４）。ここでは、第１しきい値は「０」であるので、ＤＭＡコントローラ１４は、第１しきい値は転送データ量よりも小さいと判定して、ＤＭＡ転送を中断する（Ｓ１１５）。
【００４１】
次いで、ＤＭＡコントローラ１４は、転送データ量は第２しきい値以上であるか否かについて判定する（Ｓ１１９）。ここでは、転送データ量が「０」であるのに対し、第２しきい値は第１画像ブロックのデータ量であるので、ＤＭＡコントローラ１４は、転送データ量は第２しきい値より小さいと判定する。次いで、ＤＭＡコントローラ１４は、値が第１画像ブロックのデータ量の第２しきい値が入力されたと判定し（Ｓ１２１）。次いで、ＤＭＡコントローラ１４は、全ブロックの処理が終了していないと判定して（Ｓ１２３）、処理はＳ１１２に戻る。以降、第１しきい値が入力されるまで、ＤＭＡコントローラ１４は、ＤＭＡ転送を開始せずに、Ｓ１１２〜Ｓ１２３の処理を繰り返して、ＤＭＡ転送を待機する。
【００４２】
図５で矢印Ｐ１で示される時点において、ＣＰＵ１０は第１画像ブロックの第１画像処理を開始し、ＤＭＡコントローラ１４はＤＭＡ転送を開始せずに待機する。また、第１しきい値として「０」が書き込まれ、第２しきい値として第１画像ブロックのデータ量が書き込まれる。
【００４３】
次いで、ＣＰＵ１０は、第１画像ブロックの第１画像処理が終了したか否かを判定し（Ｓ１０３）、第１画像ブロックの第１画像処理が終了すると、第１しきい値として第１画像ブロックのデータ量をＤＭＡコントローラ１４に出力する（Ｓ１０４）。
【００４４】
ＤＭＡコントローラ１４は、新しい第１しきい値として第１画像ブロックのデータ量が入力され（Ｓ１１２）、第１しきい値を「０」から第１画像ブロックのデータ量に書き換えて（Ｓ１１３）、転送データ量は第１しきい値以上であるか否かを判定する（Ｓ１１４）。ここでは、転送データ量は「０」であるのに対し、第１しきい値は第１画像ブロックのデータ量であるので、ＤＭＡコントローラ１４は、転送データ量が第１しきい値より小さいと判定する。次いで、ＤＭＡコントローラ１４は、ＤＭＡ転送中断中であると判定して（Ｓ１１６）、第１画像ブロックのＤＭＡ転送を再開（開始）する（Ｓ１１７）。以降、第１画像ブロックのＤＭＡ転送が終了するまで、ＤＭＡコントローラ１４は、Ｓ１１２〜Ｓ１２３の処理を繰り返しながら、第１画像ブロックをＤＭＡ転送する。
【００４５】
次いで、ＣＰＵ１０は、第２メモリ領域１１２に空きがあるか否かを判定する（Ｓ１０５）。ここでは、第２サブメモリ領域１１２２に記憶されたデータはないので、ＣＰＵ１０は第２メモリ領域１１２に空きがあると判定して、処理はＳ１０２に戻る。
【００４６】
次いで、ＣＰＵ１０は、第２画像ブロックの第１画像処理を実行する（Ｓ１０２）。ＣＰＵ１０は、メモリ１１の第１メモリ領域１１１から第２画像ブロックを読み出し、第２画像ブロックの第１画像処理を実行し、第１画像処理を実行した第２画像ブロックをメモリ１１の第２メモリ領域１１２の第２サブメモリ領域１１２２に書き込む。
【００４７】
図５で矢印Ｐ２で示される時点において、ＣＰＵ１０は、第１画像ブロックの第１画像処理に続いて第２画像ブロックの第１画像処理を開始し、ＤＡＭコントローラ１４は第１画像ブロックのＤＭＡ転送を開始する。また、第１しきい値として第１画像ブロックのデータ量が書き込まれる。
【００４８】
次いで、ＣＰＵ１０は、第２画像ブロックの第１画像処理が終了すると（Ｓ１０３）、第１しきい値として第１画像ブロック〜第２画像ブロックの合計のデータ量をＤＭＡコントローラ１４に出力する（Ｓ１０４）。
【００４９】
次いで、ＣＰＵ１０は、第２メモリ領域１１２に空きがあるか否かを判定する（Ｓ１０５）。ここでは、第１サブメモリ領域１１２１に第１画像ブロックが記憶され且つ第２サブメモリ領域１１２２に第１画像ブロックが記憶されているので、ＣＰＵ１０は第２メモリ領域１１２に空きがないと判定して処理はＳ１０６に進む。
【００５０】
第２メモリ領域１１２に空きがない場合、ＣＰＵ１０は、ＤＭＡコントローラ１４による第２画像ブロックのＤＭＡ転送が終了して第１許可通知が入力されるまで待機する（Ｓ１０６）。ＣＰＵ１０が第１許可通知が入力されるまで待機することにより、ＤＭＡコントローラ１４によりＤＭＡ転送されている第１画像ブロックが記憶されているサブメモリ領域にＣＰＵ１０がアクセスすることを防止する。
【００５１】
ＤＭＡコントローラ１４は、新しい第１しきい値として第１画像ブロック〜第２画像ブロックの合計のデータ量が入力され（Ｓ１１２）、第１しきい値を第１画像ブロックのデータ量から第１画像ブロック〜第２画像ブロックの合計のデータ量に書き換えて（Ｓ１１３）、転送データ量は第１しきい値以上であるか否かを判定する（Ｓ１１４）。ここでは、第１画像ブロックをＤＭＡ転送中であるのに対し、第１しきい値は第１画像ブロック〜第２画像ブロックの合計のデータ量であるので、ＤＭＡコントローラ１４は、転送データ量は第１しきい値より小さいと判定する。
【００５２】
次いで、ＤＭＡコントローラ１４は、ＤＭＡ転送中断中でないと判定して（Ｓ１１６）、第１画像ブロックのＤＭＡ転送を継続する（Ｓ１１８）。以降、第１画像ブロックのＤＭＡ転送が終了するまで、ＤＭＡコントローラ１４は、Ｓ１１２〜Ｓ１２３の処理を繰り返しながら、第１画像ブロックをＤＭＡ転送する。
【００５３】
図５で矢印Ｐ３で示される時点において、ＣＰＵ１０は、第２画像ブロックの第１画像処理が終了した後、第１画像処理を中断し、第１しきい値として第１画像ブロック〜第２画像ブロックの合計のデータ量が書き込まれる。
【００５４】
ＤＭＡコントローラ１４は、第１画像ブロックのＤＭＡ転送を終了して転送データ量が第１画像ブロックのデータ量になると、新しい第１しきい値は入力されておらず（Ｓ１１２）、第１しきい値の書き換えは発生していないので、従前の第１しきい値を利用して、転送データ量は第１しきい値以上であるか否かを判定する（Ｓ１１４）。ここでは、転送データ量は第１画像ブロックのデータ量であるのに対し、第１しきい値は第１画像ブロック〜第２画像ブロックの合計のデータ量であるので、ＤＭＡコントローラ１４は、転送データ量は第１しきい値より小さいと判定する。次いで、ＤＭＡコントローラ１４は、ＤＭＡ転送中断中でないと判定して（Ｓ１１６）、第１画像ブロックのＤＭＡ転送を継続する（Ｓ１１８）。すなわち、第１しきいをデータ転送中に変更していくので、ＤＭＡ転送は中断することなく継続することが可能となっている。
【００５５】
次いで、ＤＭＡコントローラ１４は、この時点で第２しきい値は第１画像ブロックのデータ量と等しいことから、第２しきい値が転送データ量以上であると判定し（Ｓ１１９）、第１許可通知をＣＰＵ１０に出力する（Ｓ１２０）。
【００５６】
ＣＰＵ１０は、第１許可通知が入力され（Ｓ１０６）、第２しきい値として第１画像ブロック〜第２画像ブロックの合計のデータ量をＤＭＡコントローラ１４に出力する（Ｓ１０７）。
【００５７】
次いで、ＤＭＡコントローラ１４は、第１画像ブロック〜第２画像ブロックの合計のデータ量の第２しきい値が入力され（Ｓ１２１)、第２しきい値を第１画像ブロック〜第２画像ブロックの合計のデータ量に書き換える（Ｓ１２２）。次いで、ＤＭＡコントローラ１４は、ＤＭＡ転送は終了していないと判定する（Ｓ１２３）。以降、第２画像ブロックのＤＭＡ転送が終了するまで、ＤＭＡコントローラ１４は、Ｓ１１２〜Ｓ１２３の処理を繰り返しながら、第２画像ブロックをＤＭＡ転送する。
【００５８】
図５で矢印Ｐ４で示される時点において、ＣＰＵ１０は第３画像ブロックの第１画像処理を開始し、ＤＭＡコントローラ１４は第１画像ブロックに続いて第２画像ブロックをＤＭＡ転送する。また、第２しきい値として第１画像ブロック〜第２画像ブロックの合計のデータ量が書き込まれる。
【００５９】
次いで、ＣＰＵ１０は、第３画像ブロックの第１画像処理が終了すると（Ｓ１０３）、ＣＰＵ１０は、第１しきい値として第１画像ブロック〜第３画像ブロックの合計のデータ量をＤＭＡコントローラ１４に出力する（Ｓ１０４）。次いで、ＣＰＵ１０は、第２画像ブロック及び第３画像ブロックが記憶されるので、第２メモリ領域１１２に空きがないと判定し（Ｓ１０５）、次の第１許可通知が入力されるまで待機する（Ｓ１０６）。ＣＰＵ１０が第１許可通知が入力されるまで待機することにより、ＤＭＡコントローラ１４によりＤＭＡ転送されている第２画像ブロックが記憶されているサブメモリ領域にＣＰＵ１０がアクセスすることを防止する。
【００６０】
図５で矢印Ｐ５で示される時点において、ＣＰＵ１０は、第３画像ブロックの第１画像処理が終了した後、第１画像処理を中断する。また、第１しきい値として第１画像ブロック〜第３画像ブロックの合計のデータ量が書き込まれる。
【００６１】
ＤＭＡコントローラ１４は、第２画像ブロックのＤＭＡ転送を終了して転送データ量が第１画像ブロック〜第２画像ブロックの合計のデータ量になると、新しい第１しきい値は入力されておらず（Ｓ１１２）、第１しきい値の書き換えは発生していないので、従前の第１しきい値を利用して、転送データ量は第１しきい値以上であるか否かを判定する（Ｓ１１４）。ここでは、転送データ量は第１画像ブロック〜第２画像ブロックの合計のデータ量であるのに対し、第１しきい値は第１画像ブロック〜第３画像ブロックの合計のデータ量であるので、ＤＭＡコントローラ１４は、転送データ量は第１しきい値より小さいと判定する。次いで、ＤＭＡコントローラ１４は、ＤＭＡ転送中断中でないと判定して（Ｓ１１６）、第１画像ブロックのＤＭＡ転送を継続する（Ｓ１１８）。すなわち、第１しきいをデータ転送中に変更していくので、ＤＭＡ転送は中断することなく継続することが可能となっていいる。
【００６２】
次いで、ＤＭＡコントローラ１４は、転送データ量が第２しきい値以上であると判定し（Ｓ１１９）、第１許可通知をＣＰＵ１０に出力する（Ｓ１２０）。
【００６３】
ＣＰＵ１０は、第１許可通知が入力され（Ｓ１０６）、この時点で第２しきい値は第１画像ブロック〜第２画像ブロックのデータ量と等しいことから、第２しきい値として第１画像ブロック〜第３画像ブロックの合計のデータ量をＤＭＡコントローラ１４に出力する（Ｓ１０７）。
【００６４】
次いで、ＤＭＡコントローラ１４は、第１画像ブロック〜第３画像ブロックの合計のデータ量の第２しきい値が入力され（Ｓ１２１)、第２しきい値を第１画像ブロック〜第３画像ブロックの合計のデータ量に書き換える（Ｓ１２２）。次いで、ＤＭＡコントローラ１４は、ＤＭＡ転送は終了していないと判定する（Ｓ１２３）。以降、第３画像ブロックのＤＭＡ転送が終了するまで、ＤＭＡコントローラ１４は、Ｓ１１２〜Ｓ１２３の処理を繰り返しながら、第３画像ブロックをＤＭＡ転送する。
【００６５】
図５で矢印Ｐ６で示される時点において、ＣＰＵ１０は第４画像ブロックの第１画像処理を開始し、ＤＭＡコントローラ１４は第２画像ブロックに続いて第３画像ブロックをＤＭＡ転送する。また、第２しきい値として第１画像ブロック〜第３画像ブロックの合計のデータ量が書き込まれる。
【００６６】
次いで、ＣＰＵ１０は、第４画像ブロックの第１画像処理が終了すると（Ｓ１０３）、第１しきい値として第１画像ブロック〜第４画像ブロックの合計のデータ量をＤＭＡコントローラ１４に出力する（Ｓ１０４）。次いで、ＣＰＵ１０は、第３画像ブロック及び第４画像ブロックが記憶されるので、第２メモリ領域１１２に空きがないと判定して、第１許可通知が入力されるまで待機する（Ｓ１０６）。
【００６７】
図５で矢印Ｐ７で示される時点において、ＣＰＵ１０は、第４画像ブロックまでの第１画像処理を終了する。また、第１しきい値として第１画像ブロック〜第４画像ブロックの合計のデータ量が書き込まれる。
【００６８】
ＤＭＡコントローラ１４は、第３画像ブロックのＤＭＡ転送を終了して転送データ量が第３画像ブロックのデータ量になると、新しい第１しきい値は入力されておらず（Ｓ１１２）、転送データ量は矢印Ｐ７の時点で入力された第１しきい値以上であるか否かを判定する（Ｓ１１４）。ここでは、転送データ量は第１画像ブロック〜第３画像ブロックの合計のデータ量であるのに対し、第１しきい値は第１画像ブロック〜第４画像ブロックの合計のデータ量であるので、ＤＭＡコントローラ１４は、転送データ量は第１しきい値より小さいと判定する。次いで、ＤＭＡコントローラ１４は、ＤＭＡ転送中断中でないと判定して（Ｓ１１６）、第１画像ブロックのＤＭＡ転送を継続する（Ｓ１１８）。
【００６９】
次いで、ＤＭＡコントローラ１４は、転送データ量が第２しきい値以上であると判定し（Ｓ１１９）、第１許可通知をＣＰＵ１０に出力する（Ｓ１２０）。
【００７０】
ＣＰＵ１０は、第１許可通知が入力され（Ｓ１０６）、第２しきい値として第１画像ブロック〜第４画像ブロックの合計のデータ量をＤＭＡコントローラ１４に出力する（Ｓ１０７）。
【００７１】
ＤＭＡコントローラ１４は、第１画像ブロック〜第４画像ブロックの合計のデータ量の第２しきい値が入力され（Ｓ１２１)、第２しきい値を第１画像ブロック〜第４画像ブロックの合計のデータ量に書き換える（Ｓ１２２）。
【００７２】
次いで、ＣＰＵ１０は、第１画像ブロック〜第４画像ブロックの全てのブロックの第１画像処理を終了したと判定し（Ｓ１０８）、第１終了通知が入力されるまで待機する（Ｓ１０９）。
【００７３】
図５で矢印Ｐ８で示される時点において、ＤＭＡコントローラ１４は第３画像ブロックに続いて第４画像ブロックをＤＭＡ転送する。また、第２しきい値として第１画像ブロック〜第４画像ブロックの合計のデータ量が書き込まれる。
【００７４】
ＤＭＡコントローラ１４は、第４画像ブロックのＤＭＡ転送を終了すると、ＤＭＡ転送は終了したと判定し（Ｓ１２３）、第１終了通知をＣＰＵ１０に出力し（Ｓ１２４）、ＤＭＡ転送を終了する。
【００７５】
ＣＰＵ１０は、第１終了通知が入力され（Ｓ１０９）、第１しきい値及び第２しきい値として「０」をＤＭＡコントローラ１４に出力する（Ｓ１１０）。
【００７６】
ＤＭＡコントローラ１４は、値が「０」の第１しきい値及び第２しきい値が入力されると、第１しきい値及び第２しきい値として「０」を書き込む。
【００７７】
図５で矢印Ｐ９で示される時点において、第１しきい値及び第２しきい値のそれぞれとして「０」が書き込まれ、ＣＰＵ１による第１画像処理と、ＤＭＡコントローラ１４によるＤＭＡ転送が完了する。
【００７８】
図６は、図５で矢印Ｐ３で示される時点のデータ転送システム１の状態を示す図である。
【００７９】
ＣＰＵ１０から新しい第１しきい値が入力されると、ＤＭＡコントローラ１４は、ＤＭＡ転送中に第１しきい値を書き換える。より具体的には、ＤＭＡコントローラ１４は、第１画像ブロックをＤＭＡ転送中に、第１しきい値として第１画像ブロック〜第２画像ブロックの合計のデータ量が入力されると、第１画像ブロック〜第２画像ブロックの合計のデータ量に第１しきい値を書き換える。ＤＭＡコントローラ１４が第１しきい値を第１画像ブロック〜第２画像ブロックの合計のデータ量に書き換えることにより、第１画像ブロックのＤＭＡ転送と第２画像ブロックのＤＭＡ転送とを中断することなく継続して実行することができる。同様に、ＤＭＡコントローラ１４は、画像ブロックをＤＭＡ転送中に、図５で矢印Ｐ５及び７で示される時点で、第１しきい値を書き換えることにより、第１画像ブロック〜第４画像ブロックのＤＭＡ転送を中断することなく継続して実行することができる。
【００８０】
図７は、図５で矢印Ｐ４で示される時点のデータ転送システム１の状態を示す図である。
【００８１】
ＤＭＡコントローラ１４は、画像ブロックのＤＭＡ転送が終了すると、第２メモリ領域１１２へのＣＰＵ１０のアクセスを許可する第１許可通知をＣＰＵ１０に出力する。次いで、ＣＰＵ１０から第２しきい値が入力されると、ＤＭＡコントローラ１４は、ＤＭＡ転送中に第２しきい値を書き換える。より具体的には、ＤＭＡコントローラ１４は、第２画像ブロックをＤＭＡ転送中に、第２しきい値として第１画像ブロック〜第２画像ブロックの合計のデータ量が入力されると、第２しきい値を第１画像ブロック〜第２画像ブロックの合計のデータ量に書き換える。ＤＭＡコントローラ１４が第２しきい値を第１画像ブロック〜第２画像ブロックの合計のデータ量に書き換えることにより、ＤＭＡコントローラ１４は、第２画像ブロックのＤＭＡ転送終了後に第１許可通知を出力することができる。同様に、ＤＭＡコントローラ１４は、第３画像ブロックのＤＭＡ転送終了後に第１許可通知を出力することができる。ＤＭＡ転送中に書き換えた第２しきい値に基づいて第１許可通知をＣＰＵ１０に出力することにより、ＤＭＡコントローラ１４は、ＤＭＡ転送中の画像ブロックが記憶されたサブメモリ領域にＣＰＵ１０が誤ってデータを書き込むことを防止することができる。
【００８２】
〔データ転送システム１による第２動作例について〕
図８は第２動作例並びに図１１及び１２を参照して説明される第３動作例の処理フローを示すフローチャートであり、図９は第２動作例におけるデータ転送及びしきい値の変化を示す図である。
【００８３】
第２動作例では、画像処理モジュール１５は、データ量が等しい第１画像ブロック〜第４画像ブロックを順次ＤＭＡ転送によりメモリ１１の第３メモリ領域１１３から読み出して第３画像処理を実行し、メモリ１１の第２メモリ領域１１２にＤＭＡ転送して書き込む。並行して、ＣＰＵ１０は、メモリ１１の第２メモリ領域１１２に書き込まれた画像ブロックを読み出して、読み出した画像ブロックの第４画像処理を実行し、メモリ１１の第１メモリ領域１１１に書き込む。
【００８４】
第２動作例では、ＣＰＵ１０が第１画像ブロック〜第４画像ブロックのそれぞれの第４画像処理を実行する時間は、ＤＭＡコントローラ１４が第１画像ブロック〜第４画像ブロックのそれぞれを画像処理モジュール１５からメモリ１１にＤＭＡ転送する時間より短い。
【００８５】
まず、ＣＰＵ１０は、第２転送指示と共に、第２総転送データ量、第３しきい値〜第４しきい値をＤＭＡコントローラ１４に出力する（Ｓ２０１）。第２総転送データ量は、第１画像ブロック〜第４画像ブロックの合計のデータ量である。第３しきい値は第１画像ブロックのデータ量であり、第４しきい値は第１画像ブロック〜第２画像ブロックの合計のデータ量である。
【００８６】
ＣＰＵ１０は、第２許可通知が入力されるまで、第４画像処理を開始せずに待機する（Ｓ２０２）。第２許可通知が入力されるまでＣＰＵ１０が待機することにより、ＤＭＡコントローラ１４がＤＭＡ転送中の第１画像ブロックにＣＰＵ１０がアクセスすることを防止する。
【００８７】
ＤＭＡコントローラ１４は、第２総転送データ量及び第３しきい値〜第４しきい値を書き込む等の初期設定をする（Ｓ２１１）。ＤＭＡ転送のための初期設定が終了すると、ＤＭＡコントローラ１４は、画像処理モジュール１５からメモリ１１の第２メモリ領域１１２への第１画像ブロックのＤＭＡ転送を開始する。
【００８８】
図９で矢印Ｑ１で示される時点において、ＣＰＵ１０は第１画像ブロックの第４画像処理を開始せずに待機し、ＤＭＡコントローラ１４はＤＭＡ転送を開始する。また、第４しきい値として第１画像ブロック〜第２画像ブロックの合計のデータ量が書き込まれ、第３しきい値として第１画像ブロックのデータ量が書き込まれる。
【００８９】
ＤＭＡコントローラ１４は、第１画像ブロックのＤＭＡ転送が終了するまで、Ｓ２１２〜Ｓ２２３の処理を繰り返しながら、第１画像ブロックをＤＭＡ転送する。
【００９０】
ＤＭＡコントローラ１４は、第１画像ブロックのＤＭＡ転送を終了して転送データ量が第１画像ブロックのデータ量になると、転送データ量が第３しきい値以上であると判定し（Ｓ２１２）、第２許可通知をＣＰＵ１０に出力する（Ｓ２１３）。
【００９１】
次いで、ＤＭＡコントローラ１４は、第１動作例のＳ１１４〜Ｓ１１８の処理と同様に、Ｓ２１８〜２２２の処理でＤＭＡ転送を継続すると判定し、第１画像ブロックのＤＭＡ転送に続いて第２画像ブロックをＤＭＡ転送する。
【００９２】
ＤＭＡコントローラ１４は、第１画像ブロック〜第２画像ブロックの合計のデータ量の第３しきい値が入力され（Ｓ２１４)、第３しきい値を第１画像ブロック〜第２画像ブロックの合計のデータ量に書き換える（Ｓ２１５）。
【００９３】
図９で矢印Ｑ２で示される時点において、ＣＰＵ１０は第１画像ブロックの第４画像処理を開始し、ＤＭＡコントローラ１４は第１画像ブロックに続いて第２画像ブロックをＤＭＡ転送する。また、第３しきい値として第１画像ブロック〜第２画像ブロックの合計のデータ量が書き込まれる。
【００９４】
次いで、ＣＰＵ１０は、第１画像ブロックの第４画像処理を終了すると（Ｓ２０５）、第４しきい値として第１画像ブロック〜第３画像ブロックの合計のデータ量をＤＭＡコントローラ１４に出力する（Ｓ２０６）。
【００９５】
ＤＭＡコントローラ１４は、第１画像ブロック〜第３画像ブロックの合計のデータ量の第４しきい値が入力され（Ｓ２１６)、第４しきい値を第１画像ブロック〜第３画像ブロックの合計のデータ量に書き換える（Ｓ２１７）。
【００９６】
次いで、ＣＰＵ１０は、全ブロックの処理が終了していないと判定し（Ｓ２０７）、第２許可通知が入力されるまで待機する（Ｓ２０２）。第２許可通知が入力されるまでＣＰＵ１０が待機することにより、ＤＭＡコントローラ１４がＤＭＡ転送中の第２画像ブロックにＣＰＵ１０がアクセスすることを防止する。
【００９７】
図９で矢印Ｑ３で示される時点において、ＣＰＵ１０は、第１画像ブロックの第４画像処理を終了した後、第４画像処理を中断し、第４しきい値として第１画像ブロック〜第３画像ブロックの合計のデータ量が書き込まれる。
【００９８】
次いで、ＤＭＡコントローラ１４は、第２画像ブロックのＤＭＡ転送を終了して転送データ量が第１画像ブロック〜第２画像ブロックの合計のデータ量になると、転送データ量が第３しきい値以上であると判定し（Ｓ２１２）、第２許可通知をＣＰＵ１０に出力する（Ｓ２１３）。
【００９９】
次いで、ＤＭＡコントローラ１４は、第１動作例のＳ１１４〜Ｓ１１８の処理と同様に、Ｓ２１８〜２２２の処理でＤＭＡ転送を継続すると判定し、第２画像ブロックのＤＭＡ転送に続いて第３画像ブロックをＤＭＡ転送する。
【０１００】
ＣＰＵ１０は、第２許可通知が入力され（Ｓ２０２）、第３しきい値として第１画像ブロック〜第３画像ブロックの合計のデータ量をＤＭＡコントローラ１４に出力する（Ｓ２０３）。次いで、ＣＰＵ１０は、第２画像ブロックの第４画像処理を開始する（Ｓ２０４）。
【０１０１】
ＤＭＡコントローラ１４は、第１画像ブロック〜第３画像ブロックの合計のデータ量の第３しきい値が入力され（Ｓ２１４)、第３しきい値を第１画像ブロック〜第３画像ブロックの合計のデータ量に書き換える（Ｓ２１５）。
【０１０２】
図９で矢印Ｑ４で示される時点において、ＣＰＵ１０は第２画像ブロックの第４画像処理を開始し、ＤＭＡコントローラ１４は第２画像ブロックに続いて第３画像ブロックをＤＭＡ転送する。また、第３しきい値として第１画像ブロック〜第３画像ブロックの合計のデータ量が書き込まれる。
【０１０３】
次いで、ＣＰＵ１０は、第２画像ブロックの第４画像処理を終了すると（Ｓ２０５）、第４しきい値として第１画像ブロック〜第４画像ブロックの合計のデータ量をＤＭＡコントローラ１４に出力する（Ｓ２０６）。
【０１０４】
ＤＭＡコントローラ１４は、第１画像ブロック〜第４画像ブロックの合計のデータ量の第４しきい値が入力され（Ｓ２１６)、第４しきい値を第１画像ブロック〜第４画像ブロックの合計のデータ量に書き換える（Ｓ２１７）。
【０１０５】
次いで、ＣＰＵ１０は、全ブロックの処理が終了していないと判定し（Ｓ２０７）、第２許可通知が入力されるまで、第４処理を中断して待機する（Ｓ２０２）。第２許可通知が入力されるまでＣＰＵ１０が待機することにより、ＤＭＡコントローラ１４がＤＭＡ転送中の第３画像ブロックにＣＰＵ１０がアクセスすることを防止する。
【０１０６】
図９で矢印Ｑ５で示される時点において、ＣＰＵ１０は、第２画像ブロックの第４画像処理を終了した後、第４画像処理を中断し、第４しきい値として第１画像ブロック〜第３画像ブロックの合計のデータ量が書き込まれる。
【０１０７】
次いで、ＤＭＡコントローラ１４は、第３画像ブロックのＤＭＡ転送を終了して転送データ量が第１画像ブロック〜第３画像ブロックの合計のデータ量になると、転送データ量が第３しきい値以上であると判定し（Ｓ２１２）、第２許可通知をＣＰＵ１０に出力する（Ｓ２１３）。
【０１０８】
次いで、ＤＭＡコントローラ１４は、第１動作例のＳ１１４〜Ｓ１１８の処理と同様に、Ｓ２１８〜２２２の処理でＤＭＡ転送を継続すると判定し、第３画像ブロックのＤＭＡ転送に続いて第４画像ブロックをＤＭＡ転送する。
【０１０９】
ＣＰＵ１０は、第２許可通知が入力され（Ｓ２０２）、第３しきい値として第１画像ブロック〜第４画像ブロックの合計のデータ量をＤＭＡコントローラ１４に出力する（Ｓ２０３）。次いで、ＣＰＵ１０は、第３画像ブロックの第４画像処理を開始する（Ｓ２０５）。
【０１１０】
ＤＭＡコントローラ１４は、第１画像ブロック〜第４画像ブロックの合計のデータ量の第３しきい値が入力され（Ｓ２１４)、第３しきい値を第１画像ブロック〜第４画像ブロックの合計のデータ量に書き換える（Ｓ２１５）。
【０１１１】
図９で矢印Ｑ６で示される時点において、ＣＰＵ１０は第３画像ブロックの第４画像処理を開始し、ＤＭＡコントローラ１４は第３画像ブロックに続いて第４画像ブロックをＤＭＡ転送する。また、第３しきい値として第１画像ブロック〜第４画像ブロックの合計のデータ量が書き込まれる。
【０１１２】
次いで、ＣＰＵ１０は、第３画像ブロックの第４画像処理が終了すると（Ｓ２０５）、第４しきい値として第１画像ブロック〜第４画像ブロックの合計のデータ量をＤＭＡコントローラ１４に出力する（Ｓ２０６）。次いで、ＣＰＵ１０は、全ブロックの処理が終了していないと判定し（Ｓ２０７）、第２許可通知が入力されるまで、第４処理を中断して待機する（Ｓ２０２）。
【０１１３】
ＤＭＡコントローラ１４は、第１画像ブロック〜第３画像ブロックの合計のデータ量の第４しきい値が入力され（Ｓ２１６)、第４しきい値を第１画像ブロック〜第３画像ブロックの合計のデータ量に書き換える（Ｓ２１７）。
【０１１４】
図９で矢印Ｑ７で示される時点において、ＣＰＵ１０は、第３画像ブロックの第４画像処理を終了した後、第４画像処理を中断し、第４しきい値として第１画像ブロック〜第４画像ブロックの合計のデータ量が書き込まれる。
【０１１５】
次いで、ＤＭＡコントローラ１４は、第４画像ブロックのＤＭＡ転送を終了して転送データ量が第１画像ブロック〜第４画像ブロックの合計のデータ量になると、転送データ量は第３しきい値以上であると判定し（Ｓ２１２）、第２許可通知をＣＰＵ１０に出力する（Ｓ２１３）。
【０１１６】
ＣＰＵ１０は、第２許可通知が入力され（Ｓ２０２）、第３しきい値として第１画像ブロック〜第４画像ブロックの合計のデータ量をＤＭＡコントローラ１４に出力する（Ｓ２０３）。次いで、ＣＰＵ１０は、第４画像ブロックの第４画像処理を開始する（Ｓ２０５）。
【０１１７】
ＤＭＡコントローラ１４は、第１画像ブロック〜第４画像ブロックの合計のデータ量の第３しきい値が入力され（Ｓ２１４)、第３しきい値を第１画像ブロック〜第４画像ブロックの合計のデータ量に書き換える（Ｓ２１５）。次いで、第４しきい値は入力さていないと判定し（Ｓ２１６）、転送データ量は第４しきい値以上であると判定し（Ｓ２１８）、ＤＭＡ転送を中断する（Ｓ２１９）。次いで、ＤＭＡコントローラ１４は、ＤＭＡ転送は終了したと判定し（Ｓ２２３）、第２終了通知をＣＰＵ１０に出力し（Ｓ２２４）、ＤＭＡ転送を終了する。
【０１１８】
図９で矢印Ｑ８で示される時点において、ＤＭＡコントローラ１４は、第４画像ブロックのＤＭＡ転送を終了し、ＣＰＵ１０に第２終了通知を出力する。
【０１１９】
次いで、ＣＰＵ１０は、第４画像ブロックの第４画像処理を終了すると（Ｓ２０５）、第４しきい値として第１画像ブロック〜第４画像ブロックの合計のデータ量をＤＭＡコントローラ１４に出力し（Ｓ２０６）、全ブロックの第４画像処理が終了したと判定する（Ｓ２０７）。次いで、ＣＰＵ１０は、第２終了通知が入力されていると判定し（Ｓ２０８）、第３しきい値及び第４しきい値として「０」をＤＭＡコントローラ１４に出力する（Ｓ２０９）。
【０１２０】
ＤＭＡコントローラ１４は、値が「０」の第３しきい値及び第４しきい値が入力されると、第３しきい値及び第４しきい値として「０」を書き込む。
【０１２１】
図９で矢印Ｑ９で示される時点において、ＣＰＵ１０は第４画像ブロックの第４画像処理を終了する。また、第３しきい値及び第４しきい値のそれぞれとして「０」が書き込まれ、ＣＰＵ１０による第４画像処理と、ＤＭＡコントローラ１４によるＤＭＡ転送が完了する。
【０１２２】
図１０は、図８で矢印Ｑ４で示される時点のデータ転送システム１の状態を示す図である。
【０１２３】
ＤＭＡコントローラ１４は、画像ブロックのＤＭＡ転送が終了すると、第２メモリ領域１１２へのＣＰＵ１０のアクセスを許可する第２許可通知をＣＰＵ１０に出力する。次いで、ＣＰＵ１０から第３しきい値が入力されると、ＤＭＡコントローラ１４は、ＤＭＡ転送中に第３しきい値を書き換える。ＤＭＡ転送中に書き換えた第３しきい値に基づいて第２許可通知をＣＰＵ１０に出力することにより、ＤＭＡコントローラ１４は、ＤＭＡ転送が終了していない画像ブロックをサブメモリ領域からＣＰＵ１０が誤って読み出すことを防止することができる。
【０１２４】
〔データ転送システム１による第３動作例について〕
図１１は第３動作例におけるデータ転送及びしきい値の変化を示す図である。第３動作例の処理フローは、第２動作例と同様に、図８に示すフローチャートのようになる。
【０１２５】
第３動作例では、第２動作例と同様に、画像処理モジュール１５は、第１画像ブロック〜第４画像ブロックの第３画像処理を順次実行し、ＣＰＵ１０は、第３画像処理が実行された画像ブロックを読み出して、読み出した画像ブロックの第４画像処理を実行し、メモリ１１の第１メモリ領域１１１に書き込む。
【０１２６】
第３動作例では、ＣＰＵ１０が第１画像ブロック〜第４画像ブロックのそれぞれの第４画像処理を実行する時間は、ＤＭＡコントローラ１４が第１画像ブロック〜第４画像ブロックのそれぞれを画像処理モジュール１５からメモリ１１にＤＭＡ転送する時間より長い。
【０１２７】
図１１で矢印Ｒ１及びＲ２で示される時点までのＣＰＵ１０及びＤＭＡコントローラ１４の動作、並びに第３しきい値〜第４しきい値の値は、図９で矢印Ｑ１及びＱ２で示される時点までの第２実施例の処理と同様である。
【０１２８】
図１１で矢印Ｒ２で示される時点に次いで、ＤＭＡコントローラ１４は、第２画像ブロックのＤＭＡ転送を終了して転送データ量が第１画像ブロック〜第２画像ブロックの合計のデータ量になると、転送データ量が第３しきい値以上であると判定し（Ｓ２１２）、第２許可通知をＣＰＵ１０に出力する（Ｓ２１３）。ここでは、ＣＰＵ１０は、第１画像ブロックの第４画像処理中であり（Ｓ２０５）、第２許可通知の入力判定はしない。
【０１２９】
ここでは、ＤＭＡコントローラ１４は、新しい第３しきい値は入力されておらず（Ｓ２１１４）、第４しきい値は入力されておらず（Ｓ２１６）、第４しきい値の書き換えは発生していないので、従前の第１しきい値を使用して、転送データ量が第４しきい値以上であるか否かを判定する（Ｓ２１８）。ここでは、転送データ量は第１画像ブロック〜第２画像ブロックの合計のデータ量であるので、ＤＭＡコントローラ１４は、転送データ量は第４しきい値以上であると判定する。次いで、ＤＭＡコントローラ１４は、ＤＭＡ転送を中断する（Ｓ２１９）。ＤＭＡコントローラ１４がＤＭＡ転送を中断することにより、ＣＰＵ１０により第４画像処理が実行されている第１画像ブロックが記憶されているサブメモリ領域にＤＭＡコントローラが第３画像データを書き込むことを防止する。
【０１３０】
図１１で矢印Ｒ３で示される時点において、ＤＭＡコントローラ１４は第２画像ブロックのＤＭＡ転送が終了した後、ＤＭＡ転送を中断する。
【０１３１】
次いで、ＣＰＵ１０は、第１画像ブロックの第４画像処理を終了すると（Ｓ２０５）、第４しきい値として第１画像ブロック〜第３画像ブロックの合計のデータ量をＤＭＡコントローラ１４に出力する（Ｓ２０６）。
【０１３２】
ＤＭＡコントローラ１４は、第１画像ブロック〜第３画像ブロックの合計のデータ量の第４しきい値が入力され（Ｓ２１６)、第４しきい値を第１画像ブロック〜第３画像ブロックの合計のデータ量に書き換える（Ｓ２１７）。次いで、転送データ量が第４しきい値以上であるか否かを判定する（Ｓ２１８）。ここでは、転送データ量は第１画像ブロック〜第２画像ブロックの合計のデータ量のに対し、第４しきい値は第１画像ブロック〜第３画像ブロックの合計のデータ量であるので、ＤＭＡコントローラ１４は、転送データ量は第４しきい値より小さいと判定する。次いで、ＤＭＡ転送は中断中であると判定して（Ｓ２２０）、ＤＭＡ転送を再開する（Ｓ２２１）。
【０１３３】
次いで、ＣＰＵ１０は、全ブロックの処理が終了していないと判定し（Ｓ２０８）、第２許可通知が入力されていると判定して、ＣＰＵ１０は第３しきい値として第１画像ブロック〜第３画像ブロックの合計のデータ量をＤＭＡコントローラ１４に出力する（Ｓ２０３）。次いで、ＣＰＵ１０は、第２画像ブロックの第４画像処理を開始する（Ｓ２０４）。
【０１３４】
図１１で矢印Ｒ４で示される時点において、ＣＰＵ１０は第１画像ブロックに続いて第２画像の第４画像処理を実行し、ＤＭＡコントローラ１４は第３画像ブロックのＤＭＡ転送を開始する。また、第３しきい値及び第４しきい値として第１画像ブロック〜第３画像ブロックの合計のデータ量が書き込まれる。
【０１３５】
次いで、ＤＭＡコントローラ１４は、第３画像ブロックのＤＭＡ転送を終了して転送データ量が第１画像ブロック〜第３画像ブロックの合計のデータ量になると、転送データ量が第３しきい値以上であると判定し（Ｓ２１２）、第２許可通知をＣＰＵ１０に出力する（Ｓ２１３）。ここでは、ＣＰＵ１０は、第２画像ブロックの第４画像処理中であり（Ｓ２０５）、第２許可通知の入力判定はしない。
【０１３６】
ここでは、ＤＭＡコントローラ１４は、新しい第３しきい値は入力されておらず（Ｓ２１１４）、第４しきい値は入力されていない（Ｓ２１６）。次いで、ＤＭＡコントローラ１４は、矢印Ｒ３の時点の処理と同様に、転送データ量が第４しきい値以上であると判定して（Ｓ２１８）、ＤＭＡ転送を中断する（Ｓ２１９）。ＤＭＡコントローラ１４がＤＭＡ転送を中断することにより、ＣＰＵ１０により第４画像処理が実行されている第２画像ブロックが記憶されているサブメモリ領域にＤＭＡコントローラが第４画像データを書き込むことを防止する。
【０１３７】
図１１で矢印Ｒ５で示される時点において、ＤＭＡコントローラ１４は第３画像ブロックのＤＭＡ転送が終了した後、ＤＭＡ転送を中断する。
【０１３８】
次いで、ＣＰＵ１０は、第２画像ブロックの第４画像処理を終了すると（Ｓ２０５）、第４しきい値として第１画像ブロック〜第４画像ブロックの合計のデータ量をＤＭＡコントローラ１４に出力する（Ｓ２０６）。
【０１３９】
ＤＭＡコントローラ１４は、第１画像ブロック〜第４画像ブロックの合計のデータ量の第４しきい値が入力され（Ｓ２１６)、第４しきい値を第１画像ブロック〜第４画像ブロックの合計のデータ量に書き換える（Ｓ２１７）。次いで、ＤＭＡコントローラ１４は、矢印Ｒ４の時点の処理と同様に、転送データ量は第４しきい値よりも小さいと判定し（Ｓ２１８）、ＤＭＡ転送は中断中であると判定して（Ｓ２２０）、ＤＭＡ転送を再開する（Ｓ２２１）。
【０１４０】
図１１で矢印Ｒ６で示される時点において、ＣＰＵ１０は第２画像ブロックに続いて第３画像の第４画像処理を実行し、ＤＭＡコントローラ１４は第４画像ブロックのＤＭＡ転送を開始する。また、第３しきい値及び第４しきい値として第１画像ブロック〜第４画像ブロックの合計のデータ量が書き込まれる。
【０１４１】
次いで、ＤＭＡコントローラ１４は、第４画像ブロックのＤＭＡ転送を終了して転送データ量が第１画像ブロック〜第４画像ブロックの合計のデータ量になると、転送データ量が第３しきい値以上であると判定し（Ｓ２１２）、第２許可通知をＣＰＵ１０に出力する（Ｓ２１３）。ここでは、ＣＰＵ１０は、第３画像ブロックの第４画像処理中であり（Ｓ２０５）、第２許可通知の入力判定はしない。
【０１４２】
ここでは、ＤＭＡコントローラ１４は、新しい第３しきい値は入力されておらず（Ｓ２１１４）、第４しきい値は入力されていない（Ｓ２１６）。次いで、ＤＭＡコントローラ１４は、矢印Ｒ３の時点の処理と同様に、転送データ量が第４しきい値以上であると判定して（Ｓ２１８）、ＤＭＡ転送を中断する（Ｓ２１９）。次いで、ＤＭＡ転送は終了したと判定し（Ｓ２２３）、第２終了通知をＣＰＵ１０に出力し（Ｓ２２４）、ＤＭＡ転送を終了する。
【０１４３】
図１１で矢印Ｒ７で示される時点において、ＤＭＡコントローラ１４は、第４画像ブロックのＤＭＡ転送を終了し、ＣＰＵ１０に第２終了通知を出力する。
【０１４４】
次いで、ＣＰＵ１０は、第３画像ブロックの第４画像処理を終了すると（Ｓ２０５）、第４しきい値として第１画像ブロック〜第４画像ブロックの合計のデータ量をＤＭＡコントローラ１４に出力する（Ｓ２０６）。次いで、Ｓ２０７の処理の後に、第２許可通知が入力されていると判定し（Ｓ２０２）、第３しきい値として第１画像ブロック〜第４画像ブロックの合計のデータ量を出力し（Ｓ２０３）、第４画像ブロックの第４画像処理を開始する（Ｓ２０４）。
【０１４５】
図１１で矢印Ｒ８で示される時点において、ＣＰＵ１０は第３画像ブロックに続いて第４画像の第４画像処理を実行する。
【０１４６】
次いで、ＣＰＵ１０は、第４画像ブロックの第４画像処理を終了すると（Ｓ２０５）、第４しきい値として第１画像ブロック〜第４画像ブロックの合計のデータ量をＤＭＡコントローラ１４に出力し（Ｓ２０６）、全ブロックの第４画像処理が終了したと判定する（Ｓ２０７）。次いで、ＣＰＵ１０は、第２終了通知が入力されていると判定し（Ｓ２０８）、第３しきい値及び第４しきい値として「０」をＤＭＡコントローラ１４に出力する（Ｓ２０９）。
【０１４７】
ＤＭＡコントローラ１４は、値が「０」の第３しきい値及び第４しきい値が入力されると、第３しきい値及び第４しきい値として「０」を書き込む。
【０１４８】
図１１で矢印Ｒ９で示される時点において、ＣＰＵ１０は第４画像ブロックの第４画像処理を終了する。また、第３しきい値及び第４しきい値のそれぞれとして「０」が書き込まれ、ＣＰＵ１０による第４画像処理と、ＤＭＡコントローラ１４によるＤＭＡ転送が完了する。
【０１４９】
図１２は、図１１で矢印Ｒ４で示される時点のデータ転送システム１の状態を示す図である。
【０１５０】
ＤＭＡコントローラ１４は、ＣＰＵ１０から第４しきい値が入力されて、第４しきい値を書き換えるまで、ＤＭＡ転送を中断する。より具体的には、ＤＭＡコントローラ１４は、第２画像ブロックのＤＭＡ転送が終了した後、ＣＰＵ１０が第２画像ブロックの第４画像処理を終了して、ＣＰＵ１０から入力された第４しきい値に書き換えるまでＤＭＡ転送を中断する。第３動作例は、ＤＭＡコントローラ１４は、書き込まれた第４しきい値に応じてＤＭＡ転送を中断し、ＣＰＵ１０から入力された第４しきい値に書き換えることによりＤＭＡ転送を再開する。ＤＭＡコントローラ１４は、画像ブロックの第４画像処理が終了するまでＤＭＡ転送を中断するので、ＣＰＵ１０が第４画像処理している画像ブロックが記憶されているサブメモリ領域に画像ブロックをＤＭＡ転送するおそれはない。そして、ＤＭＡコントローラ１４は、ＤＭＡ転送を中断しているときに、次にＤＭＡ転送する画像ブロックまでのデータ量に第４しきい値を書き換えることにより、ＤＭＡ転送を再開するので、ＣＰＵ１０の第４画像処理と効率よく並行にＤＭＡ転送することができる。
【０１５１】
データ転送システム１では、ＤＭＡコントローラ１４は、転送したデータ量を計数し、計数したデータ量が所定のデータ量に達した場合に、データ転送の中断又はＣＰＵ１０によるメモリ１１へのアクセスを許可する。ＤＭＡコントローラ１４が計数したデータ量に応じてデータ転送の中断又はＣＰＵ１０によるメモリ１１へのアクセスを許可することができるので、データ転送システム１では、ＤＭＡコントローラ１４とＣＰＵ１０との並行したメモリアクセスが可能になる。
【０１５２】
データ転送システム１では、ＤＭＡコントローラ１４は、メモリ読出し制御部４０及びメモリ書込み制御部７０の２つの制御部を有するが、メモリ読出し制御部４０及びメモリ書込み制御部７０の双方の機能を有する単一の制御部を有する構成としてもよい。
【０１５３】
また、処理形態に応じて、第１中断転送量レジスタ３４、第１許可転送量レジスタ３６、第２中断転送量レジスタ６４又は第２許可転送量レジスタ６６の何れかを省略してもよい。
【０１５４】
また、データ転送システム１では、第１しきい値、第２しきい値、第３しきい値及び第４しきい値のそれぞれは、画像ブロックのデータ量に応じて設定されるが、これらのしきい値は所望の値に設定できる。例えば、第１しきい値又は第２しきい値の何れか一方を画像ブロックのデータ量の整数倍になるように設定し、他方を画像ブロックのデータ量の整数倍からずれた値に設定してもよい。また、第３しきい値又は第３しきい値の何れか一方を画像ブロックのデータ量の整数倍になるように設定し、他方を画像ブロックのデータ量の整数倍からずれた値に設定してもよい。第３動作例において、第４しきい値を画像ブロックのデータ量の整数倍に設定し、第３しきい値を画像ブロックのデータ量の整数倍の値より大きい値に設定することができる。ＣＰＵ１０の第４画像処理がメディアンフィルタ処理である場合、第１画像ブロックの第２画像ブロック近傍のデータをメディアンフィルタ処理するときに、第２画像ブロックのデータが使用されることがある。第３しきい値を画像ブロックのデータ量の整数倍の値より大きい値に設定することにより、第１画像ブロックのデータをメディアンフィルタ処理するために使用するデータをＤＭＡ転送した後に、ＣＰＵ１０の処理を実行することができる。
【符号の説明】
【０１５５】
１    データ転送システム
１０    ＣＰＵ（演算装置）
１１    メモリ（記憶装置）
１２    メモリコントローラ
１３    Ｉ／Ｏコントローラ
１４    ＤＭＡコントローラ（データ転送装置）
１５    画像処理モジュール（処理モジュール）
３１    第１転送量カウンタ（第１データ量計数部）
３４    第１中断転送量レジスタ（第１記憶部）
３６    第１許可転送量レジスタ（第２記憶部）
４０    メモリ読出し制御部（制御部）
６１    第２転送量カウンタ（第２データ量計数部）
６４    第２中断転送量レジスタ（第４記憶部）
６６    第２許可転送量レジスタ（第３記憶部）
７０    メモリ書込み制御部（制御部）
【図１】
2015184788.tif 000003
【図２】
2015184788.tif 000004
【図３】
2015184788.tif 000005
【図４】
2015184788.tif 000006
【図５】
2015184788.tif 000007
【図６】
2015184788.tif 000008
【図７】
2015184788.tif 000009
【図８】
2015184788.tif 000010
【図９】
2015184788.tif 000011
【図１０】
2015184788.tif 000012
【図１１】
2015184788.tif 000013
【図１２】
2015184788.tif 000014