(57)【要約】【課題】  ディスクリプタ転送に非対応なＤＭＡコントローラを用いながらも、ＣＰＵの介在を少なくし、メモリに分散して格納されたデータの転送を効率良く行うことを可能にする。【解決手段】  ＤＭＡコントローラの外部に位置するディスクリプタ制御部は、ＤＭＡ転送に係る複数の転送情報をＣＰＵから受信した場合に、当該複数の転送情報を記憶保持するレジスタと、ＣＰＵからＤＭＡ転送の開始要求を受信したことに応じて、レジスタから転送情報を読み出しては、ＤＭＡコントローラに設定して転送を開始させることを繰り返すことで、複数の転送情報に基づくＤＭＡ転送を実行させる制御部と、当該制御部による制御に従って、ＤＭＡコントローラで発生した割り込み信号のＣＰＵへの伝達を制御する割り込み制御部とを有する。【選択図】  図１
2016181052.tif 000002
【特許請求の範囲】
【請求項１】
データ転送装置であって、
前記データ転送装置の制御を司るＣＰＵと、
メモリと、
外部から転送情報を受信し、当該転送情報に従って前記メモリに対するデータのＤＭＡ転送を行うＤＭＡコントローラと、
前記ＣＰＵの制御下にあって、前記ＤＭＡコントローラを外部から制御するディスクリプタ制御部とを有し、
前記ディスクリプタ制御部は、
ＤＭＡ転送に係る複数の転送情報を前記ＣＰＵから受信した場合に、当該複数の転送情報を記憶保持するレジスタと、
前記ＣＰＵからＤＭＡ転送の開始要求を受信したことに応じて、前記レジスタから転送情報を読み出しては、前記ＤＭＡコントローラに設定して転送を開始させることを繰り返すことで、前記複数の転送情報に基づくＤＭＡ転送を実行させる制御部と、
当該制御部による制御に従って、前記ＤＭＡコントローラで発生した割り込み信号の前記ＣＰＵへの伝達を制御する割り込み制御部とを有する
ことを特徴とするデータ転送装置。
【請求項２】
前記ディスクリプタ制御部は、
前記複数の転送情報における最初に実行することになる転送情報は、前記レジスタに記憶保持することなく、前記ＤＭＡコントローラに設定する
ことを特徴とする請求項１に記載のデータ転送装置。
【請求項３】
前記割り込み制御部は、
前記複数の転送情報における最後の転送情報によるＤＭＡ転送を除き、それぞれのＤＭＡ転送を開始した後に前記ＤＭＡコントローラが発生した、正常完了を示す割り込み信号を前記ＣＰＵに出力しないように制御し、
前記複数の転送情報における最後の転送情報によるＤＭＡ転送では、当該ＤＭＡ転送を開始した後に前記ＤＭＡコントローラが発生した割り込み信号を前記ＣＰＵに割り込み信号を供給する
ことを特徴とする請求項１又は２に記載のデータ転送装置。
【請求項４】
前記ディスクリプタ制御部は、更に、
前記ＤＭＡコントローラによる転送先の記憶媒体のＢＵＳＹ信号から、ＢＵＳＹ期間を検出する検出手段と、
該検出手段が検出したＢＵＳＹ期間が閾値以上か否かを判定する判定手段とを有し、
前記割り込み制御部は、前記ＢＵＳＹ期間が前記閾値以上の場合に当該ディスクリプタ制御部と停止させるために、前記閾値以上であることを示すための割り込み信号を前記ＣＰＵに供給することを特徴とする請求項１乃至３のいずれか１項に記載のデータ転送装置。
【請求項５】
前記転送情報は、前記メモリにおける複数の記憶領域に分散して記憶された、転送対象のデータの、各記憶領域の先頭のアドレスとサイズに関する情報を含むことを特徴とする請求項１に記載のデータ転送装置。
【請求項６】
ＣＰＵの制御下にあって、ＤＭＡコントローラを外部から制御する制御装置であって、
ＤＭＡ転送に係る複数の転送情報を前記ＣＰＵから受信した場合に、当該複数の転送情報を記憶保持するレジスタと、
前記ＣＰＵからＤＭＡ転送の開始要求を受信したことに応じて、前記レジスタから転送情報を読み出しては、前記ＤＭＡコントローラに設定して転送を開始させることを繰り返すことで、前記複数の転送情報に基づくＤＭＡ転送を実行させる制御部と、
当該制御部による制御に従って、前記ＤＭＡコントローラで発生した割り込み信号の前記ＣＰＵへの伝達を制御する割り込み制御部と
を有することを特徴とするＤＭＡコントローラ用の制御装置。
【請求項７】
ＣＰＵの制御下にあって、ＤＭＡコントローラを外部から制御すると共に、ＤＭＡ転送に係る複数の転送情報を前記ＣＰＵから受信した場合に、当該複数の転送情報を記憶保持するレジスタを有する制御装置の制御方法であって、
前記ＣＰＵからＤＭＡ転送の開始要求を受信したことに応じて、前記レジスタから転送情報を読み出しては、前記ＤＭＡコントローラに設定して転送を開始させることを繰り返すことで、前記複数の転送情報に基づくＤＭＡ転送を実行させる制御工程と、
当該制御工程による制御に従って、前記ＤＭＡコントローラで発生した割り込み信号の前記ＣＰＵへの伝達を制御する割り込み制御工程と
を有することを特徴とするＤＭＡコントローラ用の制御装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＤＭＡコントローラを備えるデータ転送装置、並びに、ＤＭＡコントローラを外部から制御する制御装置及びその制御方法に関するものである。
【背景技術】
【０００２】
Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ（以下、ＤＭＡ）転送は、システム内のＣＰＵを介さずに、例えば第１のメモリと第２のメモリ間で高速にデータを転送する方法として周知の技術である。ＤＭＡ転送を制御する機能ブロックとしてＤＭＡコントローラが幅広く使用されている。特にメモリと近年の高速なインターフェースを有する記録媒体間のデータ転送においては必須の転送方法である。
【０００３】
さらにデータ転送中のＣＰＵの介在を削減可能な転送方式として、ＣＰＵが転送データのアドレス情報やデータサイズ情報を事前にメモリ上に配置しておき、ＤＭＡコントローラが、メモリ上に配置された前記転送データのアドレス情報やデータサイズ情報を順次読み出しながらＤＭＡ転送を繰り返すデータ転送方法（以下、ディスクリプタ転送）も広く用いられている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１１−４５２２７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、過去の設計資産の流用などにより、前述したディスクリプタ転送に非対応なＤＭＡコントローラを用いる場合も想定される。このような、ディスクリプタ転送に非対応なＤＭＡコントローラを用いる場合の問題点は、メモリに分散して記憶されているデータを、別のメモリやＩ／Ｏに向けて転送する場合の転送効率低下である。
【０００６】
即ち、ＤＲＡＭにおける連続した一つの領域に記憶されたデータを転送する場合は、ＣＰＵは転送されるデータの記憶領域の先頭アドレスとサイズを１回だけＤＭＡコントローラに送信すればよい。そして、転送完了に応じてＤＭＡコントローラからは割り込みが１回だけ発行される。
【０００７】
一方、ＤＲＡＭの複数の記憶領域に分散して記憶されたデータを転送する際、ＣＰＵは、分散して記憶されたデータ毎に、各記憶領域の先頭アドレスとサイズとをＤＭＡコントローラに指示する必要がある。更に、１回の転送完了の度にＤＭＡコントローラからの割り込みを受け付ける必要がある。そのため、ＣＰＵに対して頻繁に割り込みが出力されることになり、転送効率が悪いという問題がある。
【０００８】
本発明は係る問題に鑑みなされたものであり、ディスクリプタ転送に非対応なＤＭＡコントローラを用いながらも、ＣＰＵの介在を少なくし、メモリに分散して格納されたデータの転送を効率良く行うことを可能にする技術を提供しようとするものである。
【課題を解決するための手段】
【０００９】
この課題を解決するため、例えば本発明のデータ転送装置は以下の構成を備える。すなわち、
データ転送装置の制御を司るＣＰＵと、
メモリと、
外部から転送情報を受信し、当該転送情報に従って前記メモリに対するデータのＤＭＡ転送を行うＤＭＡコントローラと、
前記ＣＰＵの制御下にあって、前記ＤＭＡコントローラを外部から制御するディスクリプタ制御部とを有し、
前記ディスクリプタ制御部は、
ＤＭＡ転送に係る複数の転送情報を前記ＣＰＵから受信した場合に、当該複数の転送情報を記憶保持するレジスタと、
前記ＣＰＵからＤＭＡ転送の開始要求を受信したことに応じて、前記レジスタから転送情報を読み出しては、前記ＤＭＡコントローラに設定して転送を開始させることを繰り返すことで、前記複数の転送情報に基づくＤＭＡ転送を実行させる制御部と、
当該制御部による制御に従って、前記ＤＭＡコントローラで発生した割り込み信号の前記ＣＰＵへの伝達を制御する割り込み制御部とを有する。
【発明の効果】
【００１０】
本発明によれば、ディスクリプタ転送に非対応なＤＭＡコントローラを用いながらも、ＣＰＵの介在を少なくし、メモリに分散して格納されたデータの転送を効率良く行うことが可能になる。
【図面の簡単な説明】
【００１１】
【図１】第１の実施形態におけるデータ転送装置のブロック図
【図２】第１の実施形態におけるデータ転送シーケンス図
【図３】第２の実施形態におけるデータ転送装置のブロック図
【図４】第２の実施形態におけるディスクリプタ制御部のＯＮ/ＯＦＦ制御フローチャート。
【図５】ＤＲＡＭ上のデータ配置図。
【発明を実施するための形態】
【００１２】
以下添付図面に従って本発明に係る実施形態を詳細に説明する。
【００１３】
［第１の実施形態］
図１は、第１の実施形態に係るデータ転送装置１００のブロック構成図である。なお、図１では、説明に必要な機能ブロックを抜粋してあるが、例えば、デジタルカメラに搭載されるものと考えると分かりやすい。このデータ転送装置１００は、装置全体の制御を司るＣＰＵ１０１を有し、制御信号およびデータ信号の伝送路であるＣＰＵバス１０２上に接続された各種構成要素を制御する。また、このデータ転送装置１００は、メモリバス１０５を介してＤＲＡＭ１０６をアクセスするＤＭＡコントローラ１０３、並びに、メモリカード１０７（たとえばＳＤカード等）をアクセスするホストコントローラ１０４、更にはディスクリプタ制御部１０８を有する。ＤＭＡコントローラ１０３は、ディスクリプタ転送に非対応である。そして、このＤＭＡコントローラ１０３は、ＣＰＵ１０１の制御信号やデータ信号のインターフェース部、メモリバス１０５とのインターフェース部、またホストコントローラ１０４とのインターフェース部を有し、さらにＣＰＵ１０１への割り込み信号の出力する機能を有する。ホストコントローラ１０４は、記録媒体となるメモリカード１０７を制御するものであり、具体的にはメモリカード１０７へのコマンド発行やデータ転送を制御する。
【００１４】
ディスクリプタ制御部１０８は、ＤＭＡコントローラ１０３にとって外部に位置するものであり、ＤＭＡコントローラ１０３を外部から制御することでディスクリプタ転送を実現する。このため、ディスクリプタ制御部１０８は、その制御を司る制御部１０９、ＣＰＵ１０１から要求されたデータを記憶保持するための内部レジスタ１１０を有する。また、ディスクリプタ制御部１０８は、ＣＰＵ１０１の制御と制御部１０９の制御を切り替えるセレクタを有する。更に、ディスクリプタ制御部１０８は、制御部１０９の制御下にて、ＤＭＡコントローラ１０３からの割り込み信号を受信し、必要に応じてマスク処理する割り込み制御部１１２を有する。具体的には、制御部１０９は、割り込み制御部１１２に対して、後述条件を満たす場合を除き、ＤＭＡコントローラ１０３から供給された割り込み信号をマスク（遮断）し、ＣＰＵ１０１には供給されないように設定する。
【００１５】
上記構成における、ＤＲＡＭ１０６に分散して格納されたデータを、メモリカード１０７に転送（書き込む）する際の、ＣＰＵ１０１、ＤＭＡコントローラ１０３、ディスクリプタ制御部１０８のシーケンスを、図２を用いて説明する。図５は、ＤＲＡＭ１０６に分散して配置された、転送対象のデータを示している。図５に示すように、ここでは、データ１、データ２、データ３がそれぞれＤＲＡＭ１０６の離れた領域に分散して記憶されている。ＣＰＵ１０１は、１回の転送情報により、データ１、データ２、データ３それぞれの転送を指定する。ＣＰＵ１０１が出力する転送情報は、図５に示すように、分散して記憶された各記憶領域の、先頭のアドレス及び、データサイズの情報を含む。
【００１６】
まず、ステップ２０１にて、ＣＰＵ１０１はＤＭＡコントローラ１０３へ、データ転送方向、１回目のＤＭＡ転送設定をＤＭＡコントローラ１０３の内部レジスタに設定する。ここでデータ転送方向とは、図１に示すＤＲＡＭ１０６からメモリカード１０７へのデータ転送方向と、メモリカード１０７からＤＲＡＭ１０６へのデータ転送方向のいずれかを設定するものである。実施形態では、上記のように、ＤＲＡＭ１０６からメモリカード１０７への転送方向が指定されるものとする。また、ＤＭＡ転送設定とは、ＤＲＡＭ１０６から読み出すデータのデータサイズおよびＤＲＡＭ１０６上の開始アドレスを示す。
【００１７】
次に、ステップ２０２にて、ＣＰＵ１０１からディスクリプタ制御部１０８へ、残りのＤＭＡ転送情報、具体的には２回目からＮ回目のＤＭＡ転送情報を、ディスクリプタ制御部１０８内の内部レジスタ１１０へ設定する。次に、ステップ２０３にて、ＣＰＵ１０１は、ディスクリプタ制御部１０８に対し、ＤＭＡコントローラ１０３から出力される割り込み信号のマスク設定を行う。また、ＣＰＵ１０１は、ＤＭＡコントローラ１０３へのＣＰＵ制御信号をディスクリプタ制御部１０８からの制御へ切り替えるようにセレクタ１１１を切り替える設定を行う。そして、ＣＰＵ１０１は、転送開始指示を示す信号（転送開始要求信号）をディスクリプタ制御部１０８へ設定する。
【００１８】
ディスクリプタ制御部１０８は、ＣＰＵ１０１から、この転送開始指示を受け取ると、その転送開始指示をＤＭＡコントローラ１０３に転送する（ステップ２０４）。ＤＭＡコントローラ１０３は、ステップ２０１にて、既に１回目のＤＭＡ転送に係る設定を受けている。従って、ＤＭＡコントローラ１０３は、ディスクリプタ制御部１０８からＤＭＡ転送開始指示を受け取ると、１回目のＤＭＡ転送対象のＤＲＡＭ１０６内のデータを読み出し、ホストコントローラ１０４を介してメモリカード１０７へデータの転送処理を行う（ステップ２０５）。ＤＭＡコントローラ１０３が１回目の転送処理を終えると、割り込み信号を出力する。実施形態における割り込み信号は、図１からもわかるように、ＣＰＵ１０１ではなく、ディスクリプタ制御部１０８に供給される（ステップ２０６）。この段階で、ディスクリプタ制御部１０８の割り込み制御部１１２は、制御部１０９より割り込み信号をマスクする（伝達しない）ように設定されている。従って、ＣＰＵ１０１には割り込み信号が供給されない。その代わり、制御部１０９は、ＤＭＡコントローラ１０３から割り込み信号の発生要因を示す情報（以下、要因情報）を読み出す（ステップ２０７）。読み出した要因情報が、転送正常完了を示す場合には、ディスクリプタ制御部１０８は、ＤＭＡコントローラ１０３に対して割り込みクリア信号を供給する（ステップ２０９）。
【００１９】
また、読み出した割り込み信号の要因情報が転送正常完了以外の、何らかのエラーを示しているとする。この場合、制御部１０９は割り込み制御部１１２を制御し、割り込み信号をＣＰＵ１０１へ出力する（ステップ２０８）。また、制御部１０９はセレクタ１１１を制御し、ＣＰＵ１０１を選択するように設定する。割り込みを受けたＣＰＵ１０１は、その割り込み信号の要因情報をＤＭＡ１０３に向けて要求することになるが、その要求はセレクタ１１１を介してＤＭＡコントローラ１０３に供給されるので、ＣＰＵ１０１はその割り込みが転送失敗を要因とすることを知ることになる。その転送失敗したと判定したＣＰＵ１０１は、本データ転送装置全体の転送を停止する等のエラー処理を行うが、そのエラー処理は実施形態の主眼ではないので、説明は省略する。
【００２０】
さて、ここでは、１回目の転送が正常に完了したとして説明を続ける。ディスクリプタ制御部１０８は、内部レジスタ１１０に格納されている２回目のＤＭＡ転送のディスクリプタ転送情報をＤＭＡコントローラ１０３へ設定し、さらに転送開始を指示する（ステップ２１０）。これを受けて、ＤＭＡコントローラ１０３は２回目のＤＭＡ転送、すなわち、ＤＲＡＭ１０３も格納されたデータのメモリカード１０７への転送を行う（ステップ２１１）。２回目のＤＭＡ転送が完了するとＤＭＡコントローラ１０３は割り込み信号を出力する（ステップ２１２）。これを受けて、ディスクリプタ制御部１０８はＤＭＡコントローラ１０３から、割り込み信号の要因情報を読み出す(ステップ２１３）。ここで、読み出した割り込み信号の要因が、正常に転送が完了した信号が得られると、ディスクリプタ制御部１０８は、ＤＭＡコントローラ１０３の割り込み信号をクリアする（ステップ２１５）。
【００２１】
また、ステップ２１３で読み出した割り込み信号の要因が何らかのエラーを示す要因であった場合は、制御部１０９は割り込み制御部１１２を制御し、割り込み信号をＣＰＵ１０１へ出力する（ステップ２１４）。また、制御部１０９はセレクタ１１１を制御し、ＣＰＵ１０１を選択するように設定する。これ以降のエラー処理は既に説明したのと同じであるので、これ以上の説明は省略する。
【００２２】
同様にステップ２１６、２１７、２１８では、最後であるＮ回目のＤＭＡ転送を実行させる。これまでの説明から、ＤＭＡコントローラ１０３は、Ｎ回目のＤＭＡ転送が正常終了した場合、及び、何らかのエラーが発生した場合共に、割り込み信号を発生する。ディスクリプタ制御部１０８は、最後のＤＭＡ転送を行った後に、ＤＭＡコントローラ１０３が発生する割り込み信号については無条件にＣＰＵ１０１に出力すると共に、制御部１０９はセレクタ１１１を制御し、ＣＰＵ１０１を選択するように設定する（ステップ２１９）。ＣＰＵ１０１は、割り込み信号を受け、その割り込み信号の要因情報をＤＭＡコントローラ１０３から読み出す（ステップ２２０）。その割り込みが正常であれば、ＣＰＵ１０１は、ＤＭＡコントローラ１０３の割り込み信号をクリアすることになる（ステップ２２１）。
【００２３】
上記のように、ＤＲＡＭ１０６に分散した複数のデータのＤＭＡ転送をメモリカード１０７にＤＭＡ転送を行わせる要求をディスクリプタ制御部１０８に設定した後にＣＰＵ１０１に供給される割り込み信号は実質１回となり、その割り込み信号の要因はエラーか、全データのＤＭＡ転送が正常に終了したかのいずれかとなる。従って分散したデータをその都度、ＤＭＡ転送する場合と比較し、ＣＰＵ１０１が介在する処理時間のネックを解消し、転送効率の向上させることが可能になる。
【００２４】
なお、上記実施形態では、ステップ２０１にて、ＣＰＵ１０１は、１回目（最初）のＤＭＡ転送情報はＤＭＡコントローラ１０３にダイレクトに設定するものとした。しかし、ＣＰＵ１０１は、１回目からＮ回目まで全てを内部レジスタ１１０に設定し、その後にＤＭＡ転送を開始をディスクリプタ制御部１０８に設定し、ＤＭＡ転送を行わせても構わない。ただし、全分散データに係るＤＭＡ転送情報を内部レジスタ１１０に設定するということは、分散していない１かたまりのデータのＤＭＡ転送する場合にも内部レジスタ１１０に設定しなければならないことを意味する。つまり、１回のＤＭＡ転送で済む場合であっても、最終的にＤＭＡコントローラ１０３にＤＭＡ転送開始の要求が届くまでには、より多いステップを必要とする。それ故、最初のＤＭＡ転送情報に限ってＤＭＡコントローラ１０３にダイレクトに設定することが望ましい。なぜなら、１回のＤＭＡ転送で済む処理（非分散データのＤＭＡ転送処理）の場合、ディスクリプタ制御部１０８にとっては、ステップ２０２の処理が無くなり、ステップ２０３，２０４を行うだけで、ＤＭＡ転送を開始できることとなる。つまり、非分散データのＤＭＡ転送における効率低下が問題になることはない。
【００２５】
［第２の実施形態］
図３は、本第２の実施形態に係るデータ転送装置の構成を示すブロック図である。ここでは、上記第１の実施形態における図１のブロック図との差異のみについて説明する。
【００２６】
図３のホストコントローラ３０１は、データ転送中のメモリカード１０７から受信するＢＵＳＹ信号の出力期間の検出機能を有する。さらにホストコントローラ３０１はＢＵＳＹ期間の検出信号の値を出力するインターフェースを有する。同様にＤＭＡコントローラ３０２は、ＢＵＳＹ期間の検出信号の値を入力するインターフェースを有し、ホストコントローラ３０１より受信したＢＵＳＹ期間の検出信号の値をＤＭＡコントローラ３０２の内部レジスタに格納する。また、ＤＭＡコントローラ３０２は、ＤＭＡコントローラ３０２の内部のレジスタに格納された値をＣＰＵ制御用のインターフェースからの読み出し要求によって出力することが可能な構成とする。ここでＢＵＳＹ期間とは、メモリカードが、内部処理のために次のデータを受け付けられないこと、すなわち、ビジーであることをホストコントローラへ通知する信号とする。
【００２７】
ディスクリプタ制御部３０３内の制御部１０９は、ＤＭＡコントローラ３０２からＢＵＳＹ期間情報を読み出す。次に、ＢＵＳＹ期間比較部３０４にて、内部レジスタ１１０内の閾値と、ＤＭＡコントローラ３０２から読み出したＢＵＳＹ期間情報との比較を行い、その比較結果に応じて、割り込み制御部３０５への割り込み信号を生成し、ＣＰＵ１０１へ割り込み信号を出力する。以下、上記処理の詳細を図４を用いてより詳細に説明する。
【００２８】
ステップＳ４０１にて、ディスクリプタ制御部３０３は、第１の実施形態で説明した転送方向設定と、転送サイズおよび開始アドレスを示す１回目のＤＭＡ転送設定をＤＭＡコントローラ３０２へ設定する。ディスクリプタ制御部３０３は、ステップＳ４０２にて、ステップＳ４０１で設定したＤＭＡ転送設定に基づき１回目のＤＭＡ転送を開始させ、ステップＳ４０３にてその転送完了を待つ。次にステップＳ４０４にて、ディスクリプタ制御部３０３は、全分散データのＤＭＡ転送が完了したか否かを判定する。非分散データのＤＭＡ転送の場合（１回のみのＤＭＡ転送）には、ここで転送完了となり、本フローチャートを終了する。分散データの複数回のＤＭＡ転送を指示する場合は、次にステップＳ４０５に処理を進める。このステップＳ４０５にて、ディスクリプタ制御部３０３は、ＤＭＡコントローラ３０２からＢＵＳＹ期間情報を読み出す。そして、ディスクリプタ制御部３０３は、ステップＳＳ４０６にて、上記ステップＳ４０５にて読み出したＢＵＳＹ期間情報と、あらかじめ内部レジスタ１１０に設定した閾値との比較を行う。この閾値は、ここで説明するディスクリプタ制御を用いない場合にＤＭＡ転送毎にＣＰＵが処理すべき設定期間を設定しておくものとする。ＢＵＳＹ期間が閾値以上の場合、次にステップＳ４０８にて、ディスクリプタ制御部３０３は、ＣＰＵ１０１へ割り込み信号を通知することで、ＢＵＳＹ期間が閾値以上であることをＣＰＵ１０１へ通知する。
【００２９】
この結果、ＣＰＵ１０１は例えば転送を終了させることになる。ここで、ＢＵＳＹ期間が閾値以上である場合は、メモリカード１０７のＢＵＳＹ期間が長く、本ディスクリプタ制御部３０３による転送効率向上が期待できないことを示している。消費電力の観点より、本ディスクリプタ制御部３０３の動作を停止させて、ＣＰＵ１０１よりディスクリプタ制御部を用いないデータ転送方法によって、再度転送を開始することとなる。ただし、ディスクリプタ制御部３０３の動作を停止させる前に、ＣＰＵ１０１は、ＤＭＡコントローラ３０２への制御が可能な状態にセレクタ１１１を制御する。さらに割り込み制御部３０５にて、ＤＭＡコントローラ３０２の割り込み信号をＣＰＵ１０１へ通知可能な状態とする。上述した設定とした上で、ＣＰＵ１０１は、ディスクリプタ制御３０３へのクロック供給を停止することで、ディスクリプタ制御部３０３の動作を停止させる。上記事前設定により、ディスクリプタ制御回路３０３を停止させた場合も、ＣＰＵ１０１からのＤＭＡコントローラ３０２の制御、およびＤＭＡコントローラ３０２からの割り込み信号をＣＰＵ１０１へ通知可能な構成を維持することが可能となる。
【００３０】
一方、ステップＳ４０６にて、ディスクリプタ制御部３０３が、ＢＵＳＹ期間が閾値未満と判定した場合は、ステップＳ４０７にて次のＤＭＡ転送設定を実施し、ステップＳＳ４０９にて転送開始し、ステップＳ４０９にて転送完了を待って再度ステップＳ４０４へ処理を戻し、上記処理を繰り返す。
【００３１】
上述したように、ディスクリプタ制御部３０３を動作させることによる転送効率向上を図るデータ転送方法と、メモリカードのＢＵＳＹ期間により転送効率向上が期待できない場合は、消費電力観点よりディスクリプタ制御３０３を動作させないデータ転送方法を選択することを可能とし、転送効率と消費電力観点で適切なデータ転送方法を実現する。
【００３２】
なお、上記第１、第２の実施形態では、ＤＭＡコントローラのＤＭＡ転送としてメモリ（ＤＲＡＭ）を転送元、Ｉ／Ｏデバイス（メモリカード等の記憶媒体）を転送先として説明したが、メモリ−メモリ間のＤＭＡ転送でも構わないので、上記実施形態に限定されるものではない。また、上記実施形態からもわかるように、実施形態における特徴部分はディスクリプタ制御部にあるので、ディスクリプタ制御部と等価とするＤＭＡコントローラ用のディスクリプタ制御装置とその制御方法も本発明の範疇に入るのは明らかである。
【符号の説明】
【００３３】
１００…データ転送装置、１０１…ＣＰＵ、１０２…ＣＰＵバス、１０３…ＤＭＡコントローラ、１０４…ホストコントローラ、１０５…メモリバス、１０６…ＤＲＡＭ，１０７…メモリカード、１０８、３０３…ディスクリプタ制御部、１０９…制御部、１１０…内部レジスタ、１１１…セレクタ、１１２、３０５…割り込み制御部、３０４…ＢＵＳＹ機関比較部
【図１】
2016181052.tif 000003
【図２】
2016181052.tif 000004
【図３】
2016181052.tif 000005
【図４】
2016181052.tif 000006
【図５】
2016181052.tif 000007