(57)【要約】【課題】  ＤＭＡデータ転送のために搭載されたバッファの中で使用しないバッファ領域へのクロック信号を供給しているので、無駄な電力消費が発生している。【解決手段】  画像処理装置と記憶装置との間のデータ転送を制御する転送制御手段と、複数の記憶領域を有する記憶手段と、転送制御手段によって転送される転送データを、記憶手段の複数の記憶領域の少なくとも一つの記憶領域に記憶させる記憶制御手段と、記憶領域にクロック信号の供給を制御する制御手段とを有する情報転送装置であって、転送制御手段は、転送される転送データのサイズに基づいて、転送データを記憶するのに必要な記憶領域を示す信号を生成して制御手段と記憶制御手段とに出力する処理手段を有し、制御手段は前記信号に基づいて転送データを記憶するのに必要ない記憶領域へクロック信号を供給しないように制御することによって、省電力化が実現する。【選択図】  図１
2017215659.tif 000002
【特許請求の範囲】
【請求項１】
画像処理装置と記憶装置との間のデータ転送を制御する少なくとも一つの転送制御手段と、
複数の記憶領域を有する記憶手段と、
前記記憶部を制御し、前記転送制御部によって転送される転送データを、前記記憶部の複数の記憶領域の少なくとも一つの記憶領域に記憶させる記憶制御手段と、
前記複数の記憶領域のそれぞれにクロック信号を供給し、あるいはクロック信号を供給しないように制御する制御手段と、
を有する情報転送装置であって、
前記転送制御手段は、前記転送制御手段によって転送される転送データのサイズに基づいて、前記複数の記憶領域のうち、前記転送データを記憶するのに必要な記憶領域を示す信号を生成して、前記制御手段と前記記憶制御手段とのそれぞれに出力する処理手段を有し、
前記制御手段は、前記信号に基づいて、前記転送データを記憶するのに必要な記憶領域へクロック信号を供給し、前記転送データを記憶するのに必要ない記憶領域へクロック信号を供給しないように制御し、
前記記憶制御手段は、クロック信号の供給された前記記憶領域に、前記転送制御手段によって転送される転送データを記憶させることを特徴とする情報転送装置。
【請求項２】
前記転送制御手段は、前記転送制御手段によって転送される前記転送データのサイズに関連する情報を保持する保持手段をさらに有し、
前記処理手段は、前記保持手段によって保持された前記情報に基づいて、前記転送データのサイズを取得することを特徴とする請求項１に記載の情報転送装置。
【請求項３】
前記保持手段は、前記転送データのサイズに関連する前記情報として、前記データ転送の転送要求の発行数を保持する第一レジスタと、前記転送データのサイズに関連する前記情報として、前記データ転送の最大転送長を保持する第二レジスタとを有することを特徴とする請求項２に記載の情報転送装置。
【請求項４】
前記保持手段は、前記記憶装置に格納されているディスクリプタを前記記憶装置から読み込む読み込み手段をさらに有し、
前記読み込み手段は、前記ディスクリプタから、転送データのライン長、ライン数、ブロック数を読み込み、
前記処理手段は、読み込まれた前記転送データのライン長、ライン数、ブロック数に基づいて、転送データのサイズを取得することを特徴とする請求項３に記載の情報転送装置。
【請求項５】
前記保持手段は、閾値を保持する第三レジスタをさらに有し、
前記転送制御手段は、前記転送データのサイズと前記閾値との比較結果に基づいて、前記転送要求の発行数を決定し、
前記第一レジスタは、決定された前記転送要求の発行数を保持することを特徴とする請求項４に記載の情報転送装置。
【請求項６】
前記転送制御手段によって転送される転送データのサイズは、前記画像処理装置の処理内容によって異なることを特徴とする請求項１乃至５の何れか１項に記載の情報転送装置。
【請求項７】
前記制御手段は、さらに、前記複数の記憶領域のそれぞれに電力を供給し、又は前記電力の供給を停止するように制御し、
前記転送データを記憶する記憶領域を示す前記信号に基づいて、前記転送データを記憶する記憶領域へ電力を供給し、前記転送データを記憶しない記憶領域への電力供給を停止することを特徴とする請求項１乃至６の何れか１項に記載の情報転送装置。
【請求項８】
前記記憶制御手段は、前記転送データを記憶する記憶領域を示す前記信号に基づいて、前記転送データを記憶しない記憶領域へのアクセスを禁止することを特徴とする請求項１乃至７の何れか１項に記載の情報転送装置。
【請求項９】
前記複数の記憶領域を有する前記記憶手段は、複数の記憶領域を有するＳＲＡＭであることを特徴とする請求項１乃至８の何れか１項に記載の情報転送装置。
【請求項１０】
前記転送制御手段は、ＤＭＡコントローラであることを特徴とする請求項１乃至９の何れか１項に記載の情報転送装置。
【請求項１１】
画像処理装置と記憶装置との間のデータ転送を制御する少なくとも一つの転送制御手段と、
複数の記憶領域を有する記憶手段と、
前記記憶手段を制御し、前記転送制御手段によって転送される転送データを、前記記憶手段の複数の記憶領域の少なくとも一つの記憶領域に記憶させる記憶制御手段と、
前記複数の記憶領域のそれぞれにクロック信号を供給し、あるいはクロック信号を供給しないように制御する制御手段と、
を有する情報転送装置の情報転送方法であって、
前記転送制御手段によって転送される転送データのサイズに基づいて、前記複数の記憶領域のうち、前記転送データを記憶するのに必要な記憶領域を示す信号を生成して、前記制御手段と前記記憶制御手段とのそれぞれに出力する処理工程と、
前記制御手段は、前記信号に基づいて、前記転送データを記憶するのに必要な記憶領域へクロック信号を供給し、前記転送データを記憶するのに必要ない記憶領域へクロック信号を供給しないように制御する工程と、
前記記憶制御手段は、クロック信号の供給された前記記憶領域に、前記転送制御手段によって転送される転送データを記憶させる工程と、
を有することを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報転送装置において、データ転送に使用するバッファの省電力化に関する。
【背景技術】
【０００２】
中央演算装置（ＣＰＵ）を介さずに、メモリ装置や周辺機器等と直接データ転送を行う、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）転送と呼ばれるデータ転送方式が存在している。そして、近年の半導体集積回路には、ＤＭＡ転送を行うＤＭＡコントローラ（以下ＤＭＡＣとする）と呼ばれるモジュールが多数使用されるようになった。
【０００３】
ＤＭＡＣの使用方法として、メモリ装置や周辺機器等に対するリードデータのＤＭＡ転送と、メモリ装置や周辺機器等に対するライトデータのＤＭＡ転送がある。例えば、メモリ装置や周辺機器等に対してリードデータのＤＭＡ転送を行い、そのデータをバッファ（例えば、ＳＲＡＭ（スタティックランダムアクセスメモリ）やレジスタ）に貯めた後、加工する（例えば、画像処理）、といった処理ブロックが存在する。あるいは、加工したデータを、一旦バッファに貯めて、そのデータをメモリ装置や周辺機器等に対してライトデータのＤＭＡ転送を行う、といった処理ブロックが存在する。
【０００４】
一方で、近年の半導体集積回路では高解像度の画像データを取り扱うようになり、集積度が向上している。それに伴い、ＤＭＡＣやＣＰＵを代表としたデータ転送要求を発行するマスタモジュールの数が飛躍的に増加し、各マスタモジュールがデータ転送要求を発行してからデータ転送を完了するまでのレイテンシが大きくなってしまっている。したがって、ＤＭＡＣにおいては、バスの帯域などの要求性能を満足するために、ＤＭＡ転送に使用するバッファの搭載量を増加させ、一度により多くのデータを転送するようにしている。しかし、バッファの搭載量の増加に伴い、その消費電力が大きくなってしまっているため、消費電力の削減が求められるようになってきた。
【０００５】
ＤＭＡ転送に使用しないＤＭＡＣおよびそのバッファに対して、クロック信号の供給を停止し、あるいは、電力供給を遮断する技術により省電力化が図られている。特許文献１では、ＤＭＡＣおよびそのバッファを複数準備し、データ転送要求の調停により使用しないＤＭＡＣおよびそのバッファへのクロック信号の供給を停止し、省電力化を図る技術が紹介されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００４−１１８２３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述したように、ＤＭＡ転送においてＤＭＡＣが使用するバッファの搭載量は、バスの帯域などの要求性能に依存し、通常は、様々なユースケースの中で、要求性能が一番高いユースケースに合わせて決定する。しかしながら、ユースケースによっては要求性能が異なるため、必ずしも搭載されたバッファの全体を使用することが必要とは限らない。特許文献１に提示されている方法では、データ転送に使用しないＤＭＡＣおよびその全てのバッファへのクロック信号の供給を停止し、データ転送に使用するＤＭＡＣおよび搭載されたバッファの全てに対してクロック信号を供給している。そのため、特許文献１に提示されている方法では、データ転送のために搭載されたバッファの一部の領域がデータ転送に使用されていなくても、そのバッファの使用されない領域では無駄な電力消費が発生している。
【０００８】
本発明は上記の課題に鑑みてなされたものであり、データ転送のために搭載されたバッファの中で、ＤＭＡＣがデータ転送に使用しないバッファ領域へのクロック信号の供給を停止する情報転送装置を提供することを目的とする。また、その情報転送装置の情報転送方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上述の課題を解決するために、本発明に係る情報転送装置は、以下の構成を備える。すなわち、画像処理装置と記憶装置との間のデータ転送を制御する少なくとも一つの転送制御手段と、複数の記憶領域を有する記憶手段と、前記記憶手段を制御し、前記転送制御手段によって転送される転送データを、前記記憶手段の複数の記憶領域の少なくとも一つの記憶領域に記憶させる記憶制御手段と、前記複数の記憶領域のそれぞれにクロック信号を供給し、あるいはクロック信号を供給しないように制御する制御手段と、を有する情報転送装置であって、前記転送制御手段は、前記転送制御手段によって転送される転送データのサイズに基づいて、前記複数の記憶領域のうち、前記転送データを記憶するのに必要な記憶領域を示す信号を生成して、前記制御手段と前記記憶制御手段とのそれぞれに出力する処理手段を有し、前記制御手段は、前記信号に基づいて、前記転送データを記憶するのに必要な記憶領域へクロック信号を供給し、前記転送データを記憶するのに必要ない記憶領域へクロック信号を供給しないように制御し、前記記憶制御手段は、クロック信号の供給された前記記憶領域に、前記転送制御手段によって転送される転送データを記憶させることを特徴とする。
【発明の効果】
【００１０】
本発明の情報転送装置によれば、データ転送のために搭載されたバッファの中で、ＤＭＡ転送に使用しないバッファ領域へのクロック信号の供給を停止することで、使用しないバッファ領域の省電力化を実現することができる。
【図面の簡単な説明】
【００１１】
【図１】第１の実施形態における情報転送装置の基本構成を示すブロック図である。
【図２】第１の実施形態における情報転送装置の一例を示すブロック図である。
【図３】（ａ）第１の実施形態におけるＤＭＡＣの処理を説明するフローチャートである。（ｂ）第１の実施形態における制御部の処理を説明するフローチャートである。
【図４】第１の実施形態における情報転送装置の処理の一例を示すタイミングチャートである。
【図５】第２の実施形態における情報転送装置の実施形態の一例を示すブロック図である。
【図６】第２の実施形態におけるＤＭＡＣの処理を説明するフローチャートである。
【図７】第２の実施形態における情報転送装置の処理の一例を示すタイミングチャートである。
【発明を実施するための形態】
【００１２】
以下に、本発明にかかる実施形態の情報転送装置を、図面を参照して詳細に説明する。なお、以下の実施形態は例示であり、本発明の範囲を限定するものではない。
【００１３】
図１のブロック図に本実施形態の情報転送装置１００の構成例を示す。情報転送装置１００は、ＤＭＡ転送を司るＤＭＡＣ１０１およびＤＭＡの転送データを一時的に保持する複数のバッファ領域１０４−１〜１０４−４で構成するバッファ１０４および各バッファ領域へのアクセスを制御する記憶制御部１０２を有する。また、情報転送装置１００は、バッファ１０４の４つのバッファ領域１０４−１〜１０４−４へのクロック信号供給および電力供給を管理する制御部１０３を有する。また、ＤＭＡＣ１０１は、設定されたＤＭＡ転送情報を保持する保持部１０７およびＤＭＡ転送情報デコード部１０８を有する。バッファ１０４は、本実施形態の情報転送装置の記憶部である。ＤＭＡＣ１０１は、本実施形態の情報転送装置のデータ転送を制御する転送制御部である。ＤＭＡ転送情報デコード部１０８は、ＤＭＡ転送情報に基づいて通知信号を生成し、生成した通知信号を制御部１０３と記憶制御部１０２とにそれぞれ出力する処理部である。
【００１４】
なお、本実施形態では、記憶装置であるＤＲＡＭ（ダイナミックランダムアクセスメモリ）１０６と画像処理装置１０９との間のデータ転送を行う情報転送装置１００は複数存在してもよい。以下、情報転送装置１００の内部の処理について説明する。
【００１５】
ＤＭＡＣ１０１は、ＤＲＡＭ１０６からメモリコントローラ（ＭＥＭＣ）１０５を経由して読み出したデータをバッファ１０４に格納するＲｅａｄデータのＤＭＡ転送を行う。あるいは、バッファ１０４からデータを読み出し、ＭＥＭＣ１０５を経由してＤＲＡＭ１０６にデータを格納するＷｒｉｔｅデータのＤＭＡ転送を行う。
【００１６】
画像処理装置１０９は、情報転送装置１００のバッファ１０４からのデータの読み出し、あるいは、バッファ１０４へのデータの書き込みを行う。記憶制御部１０２は、バッファ１０４の使用箇所のポインタを制御し、ＤＭＡＣ１０１および画像処理装置１０９が使用しないバッファ領域にアクセスしないように制御する。即ち、記憶制御部１０２が使用しないバッファ領域へのアクセスを禁止する。ＤＭＡ転送情報の保持部１０７は、ＤＭＡ転送に使用する情報を保持するレジスタである。
【００１７】
また、ＤＭＡ転送情報デコード部１０８は、ＤＭＡ転送情報保持部１０７にＤＭＡ転送に関する設定情報が保持され、ＤＭＡ転送に関する設定情報に基づいて、バッファ１０４の使用領域を算出する。なお、ＤＭＡ転送に関する設定情報は、転送データのサイズに関連する情報である。ＤＭＡ転送に関する設定情報について、後に説明する。
【００１８】
ＤＭＡ転送情報デコード部１０８は、使用するバッファ１０４の記憶領域を通知する信号を制御部１０３に出力する。さらに、ＤＭＡ転送情報デコード部１０８は、ＤＭＡ転送で使用しないバッファ１０４の非使用領域への書き込みあるいは読み出しを行わないように、バッファ１０４の使用箇所を指すポインタの上限値通知信号を記憶制御部１０２に出力する。なお、ＤＭＡ転送情報デコード部１０８は、ポインタの上限値通知信号の替わりに、使用するバッファ１０４の記憶領域又は使用しないバッファ１０４の記憶領域を通知する信号を記憶制御部１０２に出力してもよい。
【００１９】
また、ＤＭＡＣ１０１は、ＤＭＡ転送が完了した後、画像処理装置１０９とバッファ１０４間のデータ転送が完了していることを確認して、ポインタを初期値に戻す初期化信号を記憶制御部１０２に出力する。
【００２０】
制御部１０３は、ＤＭＡ転送情報デコード部１０８より受領するバッファ１０４の使用領域を通知する信号に基づいて、バッファ１０４のバッファ領域１０４−１〜１０４−４のそれぞれへクロック信号の供給、あるいは、電力の供給を制御する。バッファ１０４としては、ＳＲＡＭ又はレジスタで構成することができるが、以下、バッファ１０４として、ＳＲＡＭを使用した場合の構成例を説明する。なお、レジスタを使用した場合についても同様な制御で実施できるため、その説明は省略する。
【００２１】
［第１の実施形態］
図２のブロック図に本実施形態のバッファ１０４はＳＲＡＭで構成する一例を示す。図２は、図１の情報転送装置１００において、バッファとしてＳＲＡＭを使用した場合の構成例である。情報転送装置２００は、ＤＭＡ転送を司るＤＭＡＣ２０１およびＤＭＡの転送データを一時的に保持する複数の記憶領域２０４−１〜２０４−４で構成するＳＲＡＭ２０４および各記憶領域へのアクセスを制御する記憶制御部２０２を有する。また、情報転送装置２００は、ＳＲＡＭ２０４の４つの記憶領域２０４−１〜２０４−４のそれぞれへのクロック信号供給および電力供給を制御する制御部２０３を有する。なお、本実施形態の記憶領域の数は４つである、記憶領域の数は４つに限らない。
【００２２】
また、ＤＭＡＣ２０１は、設定されたＤＭＡ転送情報を保持する保持部２０７およびＤＭＡ転送情報デコード部２０８を有する。ＳＲＡＭで構成するバッファ２０４は、本実施形態の情報転送装置の記憶部である。ＤＭＡＣ２０１は、本実施形態の情報転送装置のデータ転送を制御する転送制御部である。ＤＭＡ転送情報デコード部２０８は図１のＤＭＡ転送情報デコード部１０８と同様に、ＤＭＡ転送情報に基づいて通知信号を生成し、生成した通知信号を制御部１０３と記憶制御部１０２とにそれぞれ出力する処理部である。
【００２３】
情報転送装置２００は、情報転送装置１００を基本とした構成であるため、以下、情報転送装置１００で説明していない部分について説明する。
【００２４】
本実施形態は、保持部２０７は、図１の保持部１０７と同様にＤＭＡ転送情報を保持する。保持部２０７は、設定されたＤＭＡ転送要求の発行数（許容先行発行数ともいう）を保持するレジスタ２１０およびＤＭＡ転送の最大転送長を保持するレジスタ２１１およびＤＭＡ転送開始レジスタ２１２を含む。なお、本実施形態では、ＤＭＡ転送要求の許容先行発行数は、ＤＭＡＣ２０１が処理できる転送要求の発行数を制限する値である。また、本実施形態では、ＤＭＡ転送の最大転送長は、レジスタで設定するできるものとして、レジスタは設定されたＤＭＡ転送の最大転送長を保持する。
【００２５】
また、ＤＭＡ転送情報デコード部２０８は、ＤＭＡ転送要求の許容先行発行数およびＤＭＡ転送の最大転送長の値およびＤＭＡ転送に使用するバスのバス幅の情報に基づいて、転送データのサイズを算出して取得する。また、ＤＭＡ転送情報デコード部２０８は、ＳＲＡＭ２０４の使用アドレスの上限値を算出し、算出したＳＲＡＭ２０４の使用アドレスの上限値に基づいて通知信号を生成する。ＤＭＡ転送情報デコード部２０８は、生成した通知信号を制御部２０３と記憶制御部２０２とのそれぞれに出力する。
【００２６】
次に、ＳＲＡＭ２０４の搭載量とデータ転送におけるＳＲＡＭ２０４の使用量の決定方法について説明する。本実施形態のユースケースでは、画像処理装置２０９における処理内容によって、ＤＭＡ転送に対する要求性能が異なることを想定する。ＤＭＡ転送の要求性能が高い場合、図示しないＣＰＵは、ＤＭＡ転送要求の発行数や最大転送長を高い値に設定し、ＤＭＡ転送の要求性能が低い場合、図示しないＣＰＵは、ＤＭＡ転送要求の発行数や最大転送長を低い値に設定する。情報転送装置２００において、ＤＭＡ転送に使用するバスのバス幅を８ｂｙｔｅとし、ＤＭＡ転送要求の発行数を４、最大転送長を２５６と設定すると、要求性能が一番高いユースケースを満足すると仮定する。このユースケースに合わせてＳＲＡＭ２０４の搭載量を決定すると、ＳＲＡＭ２０４の搭載量は、８×４×２５６＝８１９２ｂｙｔｅとなる。ここで、別のユースケースにおいて、ＤＭＡ転送要求の発行数を２、最大転送長を１２８に設定しても要求性能を満足する場合、ＳＲＡＭ２０４の使用量は、８×２×１２８＝２０４８ｂｙｔｅとなり、全ＳＲＡＭ２０４の搭載量に対して、四分の一で済む。
【００２７】
本実施形態のユースケースで想定する画像処理装置２０９においける処理内容は、例えば、画像処理装置２０９はＭＥＭＣ２０５を経由して読み出した動画の画像データから特定物体を検知した際に、特定物体を追尾又は認識する処理がある。この処理を行うために、所定時間内に大量な画像データを連続して転送することが必要であり、ＤＭＡ転送に対する要求性能が高い。この場合は、図示しないＣＰＵがＤＭＡ転送要求の発行数を４、最大転送長を２５６に設定し、バッファの使用量が多くなるので、ＳＲＡＭ２０４の全ての記憶領域を使用する。
【００２８】
一方、画像処理装置２０９はＭＥＭＣ２０５を経由して読み出した動画の画像データから特定物体を検知しなかった際に、特定物体を追尾又は認識する処理を行わず、大量な画像データを連続して転送する必要はなく、ＤＭＡ転送に対する要求性能が低い。この場合は、図示しないＣＰＵがＤＭＡ転送要求の発行数を２に、最大転送長を１２８に設定し、バッファの使用量が少なくてもよい。即ち、画像処理装置２０９における処理内容によって、ＤＭＡ転送の転送データのサイズが異なる。
【００２９】
本実施形態では、ＳＲＡＭ２０４を一定の大きさの記憶領域に分割して搭載することで、使用しないＳＲＡＭ２０４の記憶領域へのクロック信号の供給を停止し、あるいは、電力供給を遮断することで省電力化を図ることができる。本実施形態では、ＳＲＡＭ２０４の記憶領域を４つの記憶領域に分けて搭載する。記憶領域の制御方法について、図３（ａ）に示すＤＭＡＣ２０１の制御フローチャートおよび図３（ｂ）に示す制御部２０３の制御フローチャート、図４に示す情報転送装置２００のリードデータのＤＭＡ転送のタイミングチャート４００を用いて説明する。なお、図４のタイミングチャート４００は、後述する説明の理解を容易にするための一例を示すものであり、また、全ての信号やレジスタ値を示しているわけではない。
【００３０】
まず、ＤＭＡＣ２０１での処理について説明する。図３（ａ）のステップＳ１１でＣＰＵがＤＭＡ転送情報保持部２０７内のレジスタ２１０にＤＭＡ転送要求の発行数を値２に設定し、レジスタ２１１にＤＭＡ転送の最大転送長を値１２８に設定する。これらの設定値が、本実施形態のユースケースで想定する画像処理装置２０９においける処理内容に応じて、ＣＰＵによって設定されて、図４のタイミングチャート４００上の時刻Ｔ１に反映されるとする。
【００３１】
次に、ステップＳ１２でＤＭＡ転送情報デコード部２０８が、ＤＭＡ転送情報保持部２０７内に保持されたＤＭＡ転送要求の発行数と最大転送長の値とＤＭＡ転送に使用するバスのバス幅の情報とに基づいて、連続して転送可能なデータサイズを算出する。なお、連続して転送可能なデータサイズとは、転送要求の発行数と最大転送長とバス幅の乗算により得られるデータサイズで、連続して転送できるデータ量である。
【００３２】
次に、ステップＳ１３でＤＭＡ転送情報デコード部２０８が算出することによって取得した転送データのデータサイズに基づいて、ＳＲＡＭ２０４の使用アドレスの上限値を算出する。その後、ステップＳ１４で、ＤＭＡ転送情報デコード部２０８がＳＲＡＭ２０４の使用する記憶領域（アドレス領域）を通知する通知信号を生成し、制御部２０３に出力する。また、ＤＭＡ転送で使用しないＳＲＡＭ２０４の記憶領域への書き込みを行わないように、ＤＭＡ転送情報デコード部２０８がＳＲＡＭ２０４の書き込み先のアドレスを指すポインタの上限値を通知する通知信号を生成し、記憶制御部２０２に出力する。なお、ＳＲＡＭ２０４の書き込み先のアドレスを指すポインタの上限値を通知する通知信号は、ＳＲＡＭ２０４の使用する記憶領域を通知する通知信号の一例として生成される。これらの通知信号の設定および出力が時刻Ｔ２に反映される。なお、ポインタ上限値通知信号は、ＳＲＡＭ２０４と画像処理装置２０９の間のデータ転送でのアドレス管理にも使用される。また、使用アドレス領域通知信号およびポインタの上限値通知信号のビット数は、ＳＲＡＭ２０４の搭載量に依存する。
【００３３】
次に、ステップＳ１５でＣＰＵがＤＭＡ転送情報保持部２０７内のＤＭＡ転送開始レジスタ２１２にＤＭＡ転送を開始させる命令コードを設定し、ＤＭＡ転送を開始する。ＤＭＡ転送開始レジスタ２１２の設定およびＤＭＡ転送の開始を時刻Ｔ３に行うとする。なお、使用するＳＲＡＭ２０４に電力およびクロック信号が供給されている状態であれば、ＤＭＡ転送開始タイミングはいつでも問題ない。
【００３４】
その後、ステップＳ１６でＤＭＡＣ２０１は、ＤＭＡ転送が終了し、かつ、画像処理装置２０９とＳＲＡＭ２０４間の転送が完了したかどうかを判定する。タイミングチャート４００に示す時刻Ｔ１４１のように、ＤＭＡ転送の途中で、ＳＲＡＭ２０４のアドレスを指すポインタがポインタ上限値通知信号の値を超えた場合は、記憶制御部２０２はこれを検知する。そして、ＳＲＡＭ２０４の書き込みアドレスを指すポインタをラップアラウンドする。本実施形態では、ＳＲＡＭ２０４のアドレスが使用アドレスの上限値０ｘ０７ＦＦを超えたため、ラップアラウンドして０ｘ００００に戻る。その後、タイミングチャート４００に示す時刻Ｔ８０５のように、ＤＭＡＣ２０１は、ＤＭＡ転送が終了し、かつ、画像処理部装置２０９とＳＲＡＭ２０４間の転送が完了したと判定すると、ＤＭＡＣ２０１にＤＭＡ＿ＥＮＤ信号がアサートされる。また、ＤＭＡＣ２０１は、時刻Ｔ８０７で画像処理装置から転送完了通知信号を受領し、ＳＲＡＭ２０４と画像処理装置２０９の間の転送完了を検知する。
【００３５】
そして、ステップＳ１７に遷移する。ステップＳ１７では、ＳＲＡＭ２０４と画像処理装置２０９の間の転送完了を検知した次のサイクルの時刻Ｔ８０８で、ＤＭＡＣ２０１がポインタ初期化信号を発行する。その次のサイクルの時刻Ｔ８０９でＳＲＡＭ２０４の書き込み先のアドレスを指すポインタおよび読み出し元のアドレスを指すポインタが初期値に戻り、終了となる。
【００３６】
次に、制御部２０３での処理について説明する。図３（ｂ）のステップＳ２１において、制御部２０３は、ＤＭＡＣ２０１のＤＭＡ転送情報デコード部２０８から出力された使用するＳＲＡＭ２０４の記憶領域の通知信号を受信する。使用する記憶領域の通知信号の初期値の一例は０ｘＦである。通知信号の初期値の各ビットが４つのＳＲＡＭ２０４の記憶領域２０４−１〜２０４−４のイネーブルビットであり、４つのＳＲＡＭ２０４の記憶領域２０４−１〜２０４−４が全てイネーブル状態であることを示す。ステップＳ２２でＤＭＡＣ２０１のＤＭＡ転送情報デコード部２０８から発行されたＳＲＡＭ２０４の使用する記憶領域の通知信号の値が変更されたかどうか判定することによって使用する記憶領域が変更されたかを判定する。もし、値がそのままであれば、ステップＳ２１に遷移し、初期状態のＳＲＡＭ２０４の記憶領域２０４−１〜２０４−４へクロック信号の供給状態を継続する。なお、初期状態のＳＲＡＭ２０４では、全ての記憶領域２０４−１〜２０４−４にクロック信号が供給される場合があるが、これに限らず、一部の記憶領域あるいは全ての記憶領域にクロック信号が供給されていない場合もあり得る。
【００３７】
本実施形態では、図４のタイミングチャート４００に示す時刻Ｔ２に、制御部２０３が値の変化した使用する記憶領域（アドレス領域）の通知信号を受領し、ステップＳ２３に遷移する。ステップＳ２３では、制御部２０３が受領した使用する記憶領域の通知信号に基づいて、ＳＲＡＭ２０４の記憶領域２０４−１〜２０４−４の中で使用しない記憶領域があるかを判定する。受領した使用する記憶領域の通知信号の示す値が０ｘ１であるため、０ｘ００００〜０ｘ０７ＦＦまでのアドレスが示すＳＲＡＭ２０４の記憶領域２０４−１に該当しないＳＲＡＭ２０４の記憶領域２０４−２〜２０４−４は使用しない記憶領域であると判断する。
【００３８】
次にステップＳ２４で、使用するＳＲＡＭ２０４の記憶領域２０４−１にのみクロック信号の供給状態を保つ。使用しないＳＲＡＭ２０４の記憶領域２０４−２〜２０４−４へのクロック供給を停止する。図４のタイミングチャート４００において、ＳＲＡＭ０１＿ＣＬＫ、ＳＲＡＭ０２＿ＣＬＫ、ＳＲＡＭ０３＿ＣＬＫ、ＳＲＡＭ０４＿ＣＬＫはそれぞれ記憶領域２０４−１、記憶領域２０４−２、記憶領域２０４−３、記憶領域２０４−４へのクロック信号を示す。時刻Ｔ３に使用しない記憶領域２０４−２〜２０４−４に該当するＳＲＡＭ０２＿ＣＬＫ、ＳＲＡＭ０３＿ＣＬＫ、ＳＲＡＭ０４＿ＣＬＫの供給を停止する。
【００３９】
一方、ステップＳ２３で、ＳＲＡＭ２０４の記憶領域２０４−１〜２０４−４の中で使用しない記憶領域はないと判定した場合、ステップＳ２５に遷移し、ＳＲＡＭ２０４のすべての記憶領域２０４−１〜２０４−４にクロック信号を供給する。
【００４０】
図４に、ＳＲＡＭ２０４の１つだけの記憶領域２０４−１を使用し、他の３つのＳＲＡＭ２０４の記憶領域２０４−２〜２０４−４へのクロック信号を停止し、省電力状態に移行する例を示した。なお、データ転送への要求性能に応じて、ＳＲＡＭ２０４の２つあるいは３つの記憶領域を使用し、他のＳＲＡＭ２０４の記憶領域へのクロック信号を停止することも可能である。また、同様な制御を行った後、所定の手続きを踏んで、使用しないＳＲＡＭ２０４の記憶領域への電力供給を遮断することもできる。
【００４１】
［第２の実施形態］
図５のブロック図にディスクリプタを使用した本実施形態の一例を示す。ディスクリプタとは、ＤＭＡ転送に関する情報を一定のフォーマットでＤＲＡＭ５０６等の記憶装置に保持するものである。情報転送装置５００は、ＤＭＡ転送を司るＤＭＡＣ５０１およびＤＭＡの転送データを一時的に保持する複数の記憶領域５０４−１〜５０４−４で構成するＳＲＡＭ５０４および各記憶領域へのアクセスを制御する記憶制御部５０２を有する。また、情報転送装置５００は、ＳＲＡＭ５０４の４つの記憶領域５０４−１〜５０４−４のそれぞれへのクロック信号供給および電力供給を管理する制御部５０３を有する。
【００４２】
ＤＭＡＣ５０１は、ＤＭＡ転送情報保持部５０７およびＤＭＡ転送情報デコード部５０８およびディスクリプタ読み込み部５１０を有する。情報転送装置５００は、情報転送装置１００を基本とした構成であるため、以下、情報転送装置５００が情報転送装置１００と異なる部分について説明する。
【００４３】
ＤＭＡ転送情報保持部５０７は、設定された閾値を保持するレジスタ５１１、ディスクリプタ読み込み開始レジスタ５１２、ＤＭＡ転送要求の発行数を保持するレジスタ５１３およびＤＭＡ転送の最大転送長保持レジスタ５１４を含む。なお、本実施形態では、閾値を保持するレジスタ５１１には、ＤＭＡ転送の転送データサイズの閾値の設定値が保持されている。
【００４４】
ディスクリプタ読み込み部５１０は、ＤＲＡＭ５０６に格納されているディスクリプタの情報（例えば、ライン長、ライン数、ブロック数の情報）を読み込む。ＤＭＡ転送情報デコード部５０８は、ディスクリプタ制御部５１０の読み込んだＤＭＡ転送のライン長、ライン数、ブロック数等の転送に関する情報に基づいて、ＤＭＡの転送データサイズを算出する。
【００４５】
ＤＭＡＣ５０１は、算出した転送データサイズとレジスタ５１１の保持している閾値とを比較して、ＤＭＡ転送要求の発行数を決定する。ＤＭＡ転送情報保持部５０７のレジスタ５１３は決定された発行数を保持する。ＤＭＡ転送情報デコード部５０８は、決定された転送要求の発行数およびＤＭＡ転送の最大転送長を保持するレジスタ５１４の値に基づいて算出された転送データサイズから、ＳＲＡＭ５０４の使用アドレスの上限値を算出する。第１の実施形態と同様に、ＤＭＡ転送情報デコード部５０８は、算出したＳＲＡＭ２０４の使用アドレスの上限値に基づいて通知信号を生成し、制御部５０３と記憶制御５０２とのそれぞれに生成された通知信号を出力する処理部である。
【００４６】
また、ＤＭＡＣ５０１は、ディスクリプタに記載されたサイズ分の転送データを、転送要求の発行数を保持するレジスタ５１３および最大転送長を保持するレジスタ５１４の値に基づいて、ＤＭＡ転送する。
【００４７】
次に、ＳＲＡＭ５０４の使用量の決定方法について説明する。情報転送装置５００において、ＳＲＡＭ５０４の搭載量は第１の実施形態と同様に８１９２ｂｙｔｅであり、ＳＲＡＭ５０４の記憶領域は４等分して搭載されているとする。第１の実施形態と同様なユースケースにおいて、閾値を保持するレジスタ５１１にＤＭＡの転送データサイズの閾値として０ｘ２００００が設定されているとする。実際に、ディスクリプタのライン長、ライン数、ブロック数の情報に基づいて算出されるＤＭＡの転送データサイズと閾値との比較結果として、閾値０ｘ２００００を超えるか超えないかによって、ＳＲＡＭ５０４の使用量を決定する。
【００４８】
例えば、一定期間内に全てのデータを転送して処理しなければならず、全ての転送データを一回で転送しなければならない場合、その転送データの量が閾値を超えているので、全ＳＲＡＭ５０４の記憶領域を使用して早く処理を完了する必要がある。逆に、全ての転送データを二回で転送してもよい場合、転送データの半分のデータの量が閾値を超えていないので、ＳＲＡＭ５０４の記憶領域の使用量を半分にして、データを２回に分けて転送することができる。データを２回に分けて転送する場合において、例えば、ライン長８、ライン数１０００、ブロック数１、使用するバスのバス幅が８ｂｙｔｅのＤＭＡ転送を行う。この時、一回のＤＭＡの転送データサイズは、８×１０００×１×８＝６４０００ｂｙｔｅ＝０ｘＦＡ００となり、閾値０ｘ２００００を下回る。したがって、ＤＭＡＣ５０１は、転送要求の発行数を半分にしてＤＭＡ転送を２回に分けて行い、ＳＲＡＭ５０４の記憶領域の使用量は、全ＳＲＡＭ５０４の搭載量（全記憶領域）に対して、半分で済むということである。この際に、使用しないＳＲＡＭ５０４の記憶領域へのクロック信号供給を停止し、あるいは、電力供給を遮断することで省電力化を図ることができる。その制御方法について、図６に示す情報転送装置５００のフローチャートおよび図７に示す情報転送装置５００のライトデータのＤＭＡ転送のタイミングチャート７００を用いて説明する。なお、図７のタイミングチャート７００は、後述する説明の理解を容易にするための一例を示すものであり、また、全ての信号やレジスタ値を示しているわけではない。
【００４９】
まず、ＤＭＡＣ５０１での処理について説明する。図６のステップＳ３１で、ＣＰＵがディスクリプタを準備する。ディスクリプタが準備できている場合、ステップＳ３２に遷移する。ステップＳ３２では、ＣＰＵがユースケースに応じた閾値をＤＭＡ転送情報設定部５０７内の閾値設定レジスタ５１１に設定する。この時刻を図７のタイミングチャート７００における時刻Ｔ１とする。
【００５０】
次に、ステップＳ３３で、ＣＰＵがＤＭＡ転送情報保持部５０７内のディスクリプタ読み込み開始レジスタ５１２にディスクリプタ読み込みを開始させる命令コードを設定する。この設定を時刻Ｔ２に行うとする。その後、ステップＳ３４でディスクリプタ制御部５１０が、ディスクリプタのライン長とライン数とブロック数等の情報を読み込む。この時刻をＴ４とする。次に、ステップＳ３５でＤＭＡ転送情報デコード部５０８がディスクリプタ制御部５１０の読み込んだライン長とライン数とブロック数の情報に基づいて、ＤＭＡの転送データサイズを算出する。
【００５１】
本実施形態では、一回のＤＭＡ転送の転送データサイズは、８×１０００×１×８＝６４０００ｂｙｔｅ＝０ｘＦＡ００である。ステップＳ３６では、ＤＭＡ転送情報デコード部５０８が算出したＤＭＡの転送データサイズと閾値保持レジスタ５１１に保持された値とを比較し、その結果に基づいて、ステップＳ３７でＤＭＡ転送要求の発行数を決定する。なお、本ユースケースは、一回のＤＭＡ転送の転送データサイズが閾値を超えていない場合は、ＳＲＡＭ５０４の記憶領域の使用量を全記憶領域の半分にして、データ転送の処理をしても問題ないユースケースである。
【００５２】
したがって、最大転送長は固定したまま、ＤＭＡ転送要求の発行数を半分に設定し、設定した値をＤＭＡ転送要求の発行数保持レジスタ５１３に反映する。この時刻をタイミングチャート７００の時刻Ｔ５とする。なお、本実施形態では、理解を容易にするために、最大転送長を固定したまま、発行数を半分に設定しているが、ＳＲＡＭ５０４の記憶領域の使用量に応じて、最大転送長も同時に変更してもよい。
【００５３】
ステップＳ３８では、ＤＭＡ転送情報デコード部５０８が、ＳＲＡＭ５０４の使用アドレスの上限値を算出する。本ユースケースでは、ＳＲＡＭ５０４の記憶領域の使用量は、全ＳＲＡＭ５０４搭載量の半分なので、アドレスの上限値は０ｘ０ＦＦＦである。その後、ステップＳ３９で、ＤＭＡ転送情報デコード部５０８が使用アドレス領域通知信号を更新し、制御部５０３に出力する。また、ＤＭＡ転送に使用しないＳＲＡＭ５０４の記憶領域からの読み出しを行わないように、ＤＭＡＣ５０１がＳＲＡＭ５０４の読み出し元のアドレスを指すポインタの上限値通知信号を更新し、記憶制御部５０２に出力する。これらの設定が時刻Ｔ６に反映される。また、これらの信号のビット数はＳＲＡＭ５０４の搭載量に依存する。その後、ステップＳ４０で、ディスクリプタ制御部５１０が読み込んだディスクリプタの情報に基づいて、ＤＭＡ転送が開始される。なお、使用するＳＲＡＭ５０４の記憶領域に電力およびクロック信号が供給されている状態であれば、ＤＭＡ転送開始タイミングはいつでも問題ない。
【００５４】
その後、ステップＳ４１でＤＭＡＣ５０１は、ＤＭＡ転送が終了し、かつ、画像処理装置５０９とＳＲＡＭ５０４間の転送が完了したかどうかを判定する。まず、タイミングチャート７００の時刻Ｔ１４４９８に、ＤＭＡＣ５０１は、転送完了通知信号を受領し、画像処理装置５０９とＳＲＡＭ５０４間の転送が完了したことを検知する。次に、時刻Ｔ１４５００に、ＤＭＡＣ５０１にＤＭＡ＿ＥＮＤ信号がアサートされると、ＤＭＡＣ５０１がＤＭＡ転送が終了したことを検知する。そして、ステップＳ４２に遷移する。ステップＳ４２では、ＤＭＡ＿ＥＮＤ信号がＤＭＡＣ５０１にアサートされた次のサイクルの時刻Ｔ１４５０１で、ＤＭＡＣ５０１がポインタ初期化信号を発行する。その次のサイクルの時刻Ｔ１４５０２でＳＲＡＭ５０４の読み出し元のアドレスを指すポインタおよび書き込み先のアドレスを指すポインタが初期値に戻り、終了となる。
【００５５】
制御部５０３での処理は第１の実施形態の制御部２０３と同様であるので、その説明を省略する。
【００５６】
また、ディスクリプタを使用しない場合、ＤＭＡ転送情報設定部５０７内に、ライン長を保持するレジスタ、ライン数を保持するレジスタ、ブロック数を保持するレジスタ等の転送に関する情報を保持するレジスタを設けてもよい。それらのレジスタに保持された値を使用することで、ディスクリプタを使用した場合と同様な制御で、ＳＲＡＭ５０４の省電力化が実現できる。
【００５７】
［その他の実施形態］
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置における１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００５８】
１００  情報転送装置
１０１  ＤＭＡＣ
１０２  記憶制御部
１０３  制御部
１０４  バッファ
１０５  ＭＥＭＣ
１０６  ＤＲＡＭ
１０７  ＤＭＡ転送情報保持部
１０８  ＤＭＡ転送情報デコード部
１０９  画像処理装置
【図１】
2017215659.tif 000003
【図２】
2017215659.tif 000004
【図３】
2017215659.tif 000005
【図４】
2017215659.tif 000006
【図５】
2017215659.tif 000007
【図６】
2017215659.tif 000008
【図７】
2017215659.tif 000009