(57)【要約】【課題】予め転送回数が決まっていないデータ転送を効率よく行うためのデータ転送装置を提供することを課題とする。【解決手段】データのリードが行われる転送元装置と、データのライトが行われる転送先装置と、ダイレクトメモリアクセスにより前記転送元装置からデータをリードしてそのデータを前記転送先装置へライトするダイレクトメモリアクセスコントローラとを有し、前記ダイレクトメモリアクセスコントローラは、転送要求信号がアクティブになると１回目のデータ転送を行い（Ｓ４０１，Ｓ４０２）、その後、前記転送要求信号にかかわらず前記転送元装置からデータをリードし（Ｓ４０３）、その後に、前記転送要求信号がアクティブであれば前記リードしたデータを前記転送先装置にライトし（Ｓ４０５）、前記転送要求信号がインアクティブであればデータ転送を終了するデータ転送装置が提供される。【選択図】図４
2008046874.tif 000002
【特許請求の範囲】
【請求項１】
データのリードが行われる転送元装置と、
データのライトが行われる転送先装置と、
ダイレクトメモリアクセスにより前記転送元装置からデータをリードしてそのデータを前記転送先装置へライトするダイレクトメモリアクセスコントローラとを有し、
前記ダイレクトメモリアクセスコントローラは、転送要求信号がアクティブになると１回目のデータ転送を行い、その後、前記転送要求信号にかかわらず前記転送元装置からデータをリードし、その後に、前記転送要求信号がアクティブであれば前記リードしたデータを前記転送先装置にライトし、前記転送要求信号がインアクティブであればデータ転送を終了することを特徴とするデータ転送装置。
【請求項２】
前記転送要求信号は、前記転送元装置又は前記転送先装置から前記ダイレクトメモリアクセスコントローラに出力されることを特徴とする請求項１記載のデータ転送装置。
【請求項３】
前記転送元装置及び前記転送先装置のうち前記転送要求信号を出力する装置は入出力装置であることを特徴とする請求項１又は２記載のデータ転送装置。
【請求項４】
前記ダイレクトメモリアクセスコントローラにおいて、２回目以降のデータ転送では、前記転送元装置からのデータリードは、その前の前記転送先装置へのデータライトの次のクロックタイミングで行われることを特徴とする請求項１乃至３のいずれか１項に記載のデータ転送装置。
【請求項５】
ダイレクトメモリアクセスにより転送元装置からデータをリードしてそのデータを転送先装置へライトするダイレクトメモリアクセスコントローラのデータ転送方法であって、
転送要求信号がアクティブになると１回目のデータ転送を行うデータ転送ステップと、
前記データ転送ステップの後、前記転送要求信号にかかわらず前記転送元装置からデータをリードするデータリードステップと、
前記データリードステップの後、前記転送要求信号がアクティブであれば前記リードしたデータを前記転送先装置にライトし、前記転送要求信号がインアクティブであればデータ転送を終了するデータライトステップと
を有することを特徴とするデータ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ転送装置及び方法に関し、特にダイレクトメモリアクセスによりデータ転送を行うデータ転送装置及び方法に関する。
【背景技術】
【０００２】
データ転送を制御するダイレクトメモリアクセスコントローラ（ＤＭＡＣ）は、内部にレジスタを有し、転送元アドレス、転送先アドレス、転送サイズ、転送回数等を設定することができる。そして、転送要求元より転送要求を受けると、自らバス権を取得して上述したレジスタの設定に従い、データ転送を独立に制御する機能を持つ。ＤＭＡＣを用いる利点として、ＣＰＵを介さずに各記憶装置間のデータ転送ができるため、ＣＰＵの付加を軽減できるとともに、高速なデータ転送が可能となることがあげられる(例えば、特許文献１参照。)。
【０００３】
ＤＭＡＣのデータ転送方式としては、転送元アクセス及び転送先アクセスの２サイクルで行う方式がある。まず、転送元よりデータのリード処理を行い、続いてそのデータを転送先にライトすることにより、一連のデータ転送を実現する。この際、転送要求元とＤＭＡＣの間では、転送要求信号と、要求を受け付けたことを通知するアクノリッジ信号とのハンドシェイクで転送に係るやり取りがされる。
【０００４】
転送モードとしては、転送要求以前に転送回数が決まっているモードと、転送回数が決まっておらず、転送要求毎に転送回数が異なり転送要求しただけの回数転送するモードがある。後者の場合、転送要求毎に転送回数が変わるため、転送要求がアクティブなレベルの期間だけ転送を行うという方式がとられている。この場合は、ＤＭＡＣがどこまで転送を続けてよいか分からないため、転送要求元と随時、転送要求信号とアクノリッジ信号のやり取りをする必要がある。
【０００５】
図５及び図６は、予め転送回数が決まっていないデータ転送の処理を示す図である。図５はデータ転送のタイミングチャートであり、図６はＤＭＡＣの処理を示すフローチャートである。図５には、バスクロックＣＬＫ、転送要求信号ＲＥＱ、アドレスバスＡＤＲ及びアクノリッジ信号ＡＣＫを示す。アドレスバスＡＤＲは、転送元装置へのリードアクセスＳ及び転送先装置へのライトアクセスＤを示す。ＤＭＡＣは、バスクロックＣＬＫに同期して、処理を行う。
【０００６】
時刻ｔ１では、転送要求元装置はＤＭＡＣに供給する転送要求信号ＲＥＱをアクティブ（ハイレベル）にする。すると、ＤＭＡＣは、図６の処理を開始する。ステップＳ６０１では、時刻ｔ２においてＤＭＡＣは転送元装置へリードアクセスをする。次に、ステップＳ６０２では、時刻ｔ３においてＤＭＡＣはそのリードしたデータを転送先装置へライトするためライトアクセスすると共に、アクティブのアクノリッジ信号ＡＣＫを転送要求元装置に出力する。アクノリッジ信号ＡＣＫは、転送要求信号ＲＥＱを受け付けたことをデータ転送毎に通知する信号である。次に、時刻ｔ４では、転送要求元装置は、転送要求信号ＲＥＱに対するアクノリッジ信号ＡＣＫを検出した後、引き続きデータ転送する場合は転送要求信号ＲＥＱをアクティブに保ち、データ転送を終了する場合は転送要求信号ＲＥＱをインアクティブ（ローレベル）に保つ。例えば、時刻ｔ４では、転送要求元装置は、転送要求信号ＲＥＱをアクティブにする。時刻ｔ４〜ｔ５の１サイクルは、データ転送が行われないデータ転送待ちサイクルである。
【０００７】
次に、ステップＳ６０３では、時刻ｔ５においてＤＭＡＣは転送要求信号ＲＥＱがアクティブであるか又はインアクティブであるかをチェックする。アクティブであればステップＳ６０４へ進み、インアクティブであればデータ転送を終了する。ステップＳ６０４では、時刻ｔ５においてＤＭＡＣは転送元装置へリードアクセスをする。次に、ステップＳ６０５では、時刻ｔ６においてＤＭＡＣはそのリードしたデータを転送先装置にライトするためライトアクセスすると共に、アクティブのアクノリッジ信号ＡＣＫを転送要求元装置に出力する。次に、時刻ｔ７では、転送要求元装置は、転送要求信号ＲＥＱに対するアクノリッジ信号ＡＣＫを検出した後、引き続きデータ転送する場合は転送要求信号ＲＥＱをアクティブに保ち、データ転送を終了する場合は転送要求信号ＲＥＱをインアクティブにする。例えば、時刻ｔ７では、転送要求元装置は、転送要求信号ＲＥＱをインアクティブにする。その後、ステップＳ６０３に戻り、同様の処理を繰り返す。時刻ｔ７〜ｔ８の１サイクルは、データ転送が行われないデータ転送待ちサイクルである。ステップＳ６０３では、時刻ｔ８においてＤＭＡＣは転送要求信号ＲＥＱがアクティブであるか又はインアクティブであるかをチェックする。時刻ｔ８では、転送要求信号ＲＥＱがインアクティブであるので、ＤＭＡＣはデータ転送を終了する。
【０００８】
【特許文献１】特開平０４−１７８８６１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
転送要求元装置は、ＤＭＡＣからのアクノリッジ信号ＡＣＫにより、転送要求信号ＲＥＱが受け付けられたことを確認するため、アクノリッジ信号ＡＣＫを検出する時刻ｔ４までは転送要求信号ＲＥＱをアクティブに保つ必要がある。この間、ＤＭＡＣは、転送元アクセス（時刻ｔ２）及び転送先アクセス（時刻ｔ３）の一連の転送を行う。この際、新たな転送要求信号ＲＥＱの検出は行わない。 転送要求元装置は、転送要求信号ＲＥＱに対するアクノリッジ信号ＡＣＫを検出した後、引き続きデータ転送する場合は転送要求信号ＲＥＱをアクティブに保ち（時刻ｔ４〜ｔ５）、データ転送を終了する場合はインアクティブにする（時刻ｔ７〜ｔ８）。このサイクルでは、ＤＭＡＣは、次の転送を行う要求信号ＲＥＱであるかどうかの判断がつかないため転送要求信号ＲＥＱの検出は行わない。よって、引き続きデータ転送を行う際も、この転送待ちサイクル（時刻ｔ４〜ｔ５及びｔ７〜ｔ８）ではデータ転送ができないという問題がある。
【００１０】
本発明の目的は、予め転送回数が決まっていないデータ転送を効率よく、かつ過不足なく行うためのデータ転送装置及び方法を提供することである。
【課題を解決するための手段】
【００１１】
本発明の一観点によれば、データのリードが行われる転送元装置と、データのライトが行われる転送先装置と、ダイレクトメモリアクセスにより前記転送元装置からデータをリードしてそのデータを前記転送先装置へライトするダイレクトメモリアクセスコントローラとを有し、前記ダイレクトメモリアクセスコントローラは、転送要求信号がアクティブになると１回目のデータ転送を行い、その後、前記転送要求信号にかかわらず前記転送元装置からデータをリードし、その後に、前記転送要求信号がアクティブであれば前記リードしたデータを前記転送先装置にライトし、前記転送要求信号がインアクティブであればデータ転送を終了することを特徴とするデータ転送装置が提供される。
【発明の効果】
【００１２】
転送要求信号にかかわらずに転送元装置からデータをリードすることにより、転送待ちサイクルをなくすことができ、高速かつ効率的にデータ転送を行うことができる。
【発明を実施するための最良の形態】
【００１３】
図１は、本発明の実施形態によるデータ転送装置の構成例を示す図である。データバスＤＴ、アドレスバスＡＤＲ及び制御信号バスＣＴＬには、ダイレクトメモリアクセスコントローラ（ＤＭＡＣ）１０１、周辺入出力（Ｉ／Ｏ）装置１０２及びメモリ（記憶装置）１０３が接続されている。ＤＭＡＣ１０１は、転送先ライト制御部１１１及び転送設定レジスタ１１２を有し、ダイレクトメモリアクセスにより周辺Ｉ／Ｏ装置１０２及びメモリ１０３間のデータ転送を行う。ＤＭＡＣ１０１が周辺Ｉ／Ｏ装置１０２からメモリ１０３へデータ転送するときには、周辺Ｉ／Ｏ装置１０２が転送元装置になり、メモリ１０３が転送先装置になる。逆に、ＤＭＡＣ１０１がメモリ１０３から周辺Ｉ／Ｏ装置１０２へデータ転送するときには、メモリ１０３が転送元装置になり、周辺Ｉ／Ｏ装置１０２が転送先装置になる。転送先ライト制御部１１１は、転送先装置へのライト処理を制御する。転送設定レジスタ１１２は、転送元アドレス、転送先アドレス及び転送サイズ等を設定することができる。なお、転送回数は、転送要求信号ＲＥＱにより指示される。周辺Ｉ／Ｏ装置１０２は、データバッファ１２１を有し、例えば転送要求元装置である。データバッファ１２１は、データを記憶可能である。転送要求元装置１０２は、ＤＭＡＣ１０１に対し、転送元装置１０３及び転送先装置１０２間のデータ転送を要求するための転送要求信号ＲＥＱを出力し、アクノリッジ信号ＡＣＫを入力する。予め転送回数（転送データ数）が決まっていない場合、転送要求元装置１０２は、ＤＭＡＣ１０１に対して、転送要求信号ＲＥＱのレベルによって通知するため、転送したい回数（データ数）だけ転送要求信号ＲＥＱをアクティブに保つ。また、転送要求元装置１０２は、ＤＭＡＣ１０１が出力するアクノリッジ信号ＡＣＫによって転送した回数（データ数）をカウントする。ＤＭＡＣ１０１は、転送要求元装置１０２よりアクティブの転送要求信号ＲＥＱを受けると、自らバス権を取得して転送設定レジスタ１１２の設定に従い、データ転送を独立に制御する。ＤＭＡＣ１０１は、ＣＰＵを介さずに、周辺Ｉ／Ｏ装置１０２及びメモリ１０３間のデータ転送ができ、ＣＰＵの付加を軽減できると共に、高速なデータ転送が可能である。
【００１４】
図２は、ＤＭＡＣ１０１内の転送先ライト制御部１１１の構成例を示す回路図である。転送先ライト制御部１１１は、論理積（ＡＮＤ）回路２０１を有する。論理積回路２０１は、ライトイネーブル信号ＷＥ及び転送要求信号ＲＥＱの論理積信号をライト信号ＷＲとして出力する。ライト信号ＷＲは、ライトイネーブル信号ＷＥがイネーブル状態（ハイレベル）及び転送要求信号ＲＥＱがアクティブ（ハイレベル）のときのみハイレベルとなる。ライト信号ＷＲは、制御信号バスＣＴＬに送出される。
【００１５】
図３は本実施形態によるデータ転送のタイミングチャートであり、図４は本実施形態によるＤＭＡＣ１０１の処理を示すフローチャートである。図３には、バスクロックＣＬＫ、転送要求信号ＲＥＱ、アドレスバスＡＤＲ及びアクノリッジ信号ＡＣＫを示す。アドレスバスＡＤＲは、転送元装置へのリードアクセスＳ及び転送先装置へのライトアクセスＤを示す。ＤＭＡＣ１０１は、バスクロックＣＬＫに同期して、処理を行う。以下、転送要求元装置は周辺Ｉ／Ｏ装置１０２、転送元装置はメモリ１０３、転送先装置は周辺Ｉ／Ｏ装置１０２である場合を例に説明する。
【００１６】
時刻ｔ１では、転送要求元装置１０２はＤＭＡＣ１０１に供給する転送要求信号ＲＥＱをアクティブ（ハイレベル）にする。ＤＭＡＣ１０１は、転送要求元装置１０２からの転送要求信号ＲＥＱがアクティブであることを検出すると、図４のデータ転送処理を開始する。ステップＳ４０１では、時刻ｔ２においてＤＭＡＣ１０１は転送元装置１０３へリードアクセスをする。次に、ステップＳ４０２では、時刻ｔ３においてＤＭＡＣ１０１はそのリードしたデータを転送先装置１０２へライトするためライトアクセスすると共に、アクティブのアクノリッジ信号ＡＣＫを転送要求元装置１０２に出力する。アクノリッジ信号ＡＣＫは、転送要求信号ＲＥＱを受け付けたことをデータ転送毎に通知する信号である。
【００１７】
次に、ステップＳ４０３では、時刻ｔ４においてＤＭＡＣ１０１は転送要求信号ＲＥＱにかかわらず転送元装置１０３へ次のデータのリードアクセスをする。ステップＳ４０３のリードアクセス（時刻ｔ４）は、その前のステップＳ４０２のライトアクセス（時刻ｔ３）の次のクロックタイミングで行われる。これにより、図５の時刻ｔ４〜ｔ５のデータ転送待ちサイクルをなくし、高速かつ効率的なデータ転送を行うことができる。
【００１８】
また、時刻ｔ４では、転送要求元装置１０２は、転送要求信号ＲＥＱに対するアクノリッジ信号ＡＣＫを検出した後、引き続きデータ転送する場合は転送要求信号ＲＥＱをアクティブに保ち、データ転送を終了する場合は転送要求信号ＲＥＱをインアクティブ（ローレベル）にする。例えば、時刻ｔ４では、転送要求元装置１０２は、転送要求信号ＲＥＱをアクティブに保つ。
【００１９】
次に、ステップＳ４０４では、時刻ｔ５においてＤＭＡＣ１０１は転送要求信号ＲＥＱがアクティブであるか又はインアクティブであるかをチェックする。アクティブであればステップＳ４０５へ進み、インアクティブであればデータ転送を終了する。ステップＳ４０５では、時刻ｔ５においてＤＭＡＣ１０１はステップＳ４０３でリードしたデータを転送先装置１０２へライトするためライトアクセスすると共に、アクティブのアクノリッジ信号ＡＣＫを転送要求元装置１０２に出力する。その後、ステップＳ４０３に戻り、同様の処理を繰り返す。
【００２０】
時刻ｔ６では、転送要求元装置１０２は、転送要求信号ＲＥＱに対するアクノリッジ信号ＡＣＫを検出した後、引き続きデータ転送する場合は転送要求信号ＲＥＱをアクティブに保ち、データ転送を終了する場合は転送要求信号ＲＥＱをインアクティブにする。例えば、時刻ｔ６では、転送要求元装置１０２は、転送要求信号ＲＥＱをインアクティブにする。
【００２１】
ステップＳ４０３では、時刻ｔ６においてＤＭＡＣ１０１は転送要求信号ＲＥＱにかかわらず転送元装置１０３へ次のデータのリードアクセスをする。ステップＳ４０３のリードアクセス（時刻ｔ６）は、その前のステップＳ４０５のライトアクセス（時刻ｔ５）の次のクロックタイミングで行われる。これにより、図５の時刻ｔ７〜ｔ８のデータ転送待ちサイクルをなくし、高速かつ効率的なデータ転送を行うことができる。
【００２２】
次に、ステップＳ４０４では、時刻ｔ７においてＤＭＡＣ１０１は転送要求信号ＲＥＱがアクティブであるか又はインアクティブであるかをチェックする。時刻ｔ７では、転送要求信号ＲＥＱはインアクティブであるので、ＤＭＡＣ１０１はデータ転送を終了する。
【００２３】
以上のように、本実施形態によれば、ＤＭＡＣ１０１は、転送要求信号ＲＥＱのアクティブにより１回目のリードアクセス（ステップＳ４０１）及びライトアクセス（ステップＳ４０２）を行った後は、転送要求信号ＲＥＱによらず自動で転送元装置１０３へリードアクセス（ステップＳ４０３）を行う。転送先ライト制御部１１１は、転送要求信号ＲＥＱのレベルにより転送先装置１０２へのライトアクセス（ステップＳ４０５）を行うか否かの判断をする。ＤＭＡＣ１０１は、一連の処理として、転送元装置１０３からのリード処理に続き、転送先ライト処理を行う。転送先ライト処理は、転送先ライト制御部１１１で転送要求信号ＲＥＱを用いてライトイネーブル信号ＷＥをマスクすることにより、バスＣＴＬに出力するライト信号ＷＲの制御を行っている。
【００２４】
ＤＭＡＣ１０１は、転送要求信号ＲＥＱのアクティブを検出すると、最初の転送動作を開始し、転送元装置１０３へのアクセス（ステップＳ４０１）及び転送先装置１０２へのアクセス（ステップＳ４０２）の順にデータ転送を行う。続いて行われる転送元装置１０３へのリードアクセス（ステップＳ４０３）は、転送要求信号ＲＥＱのレベルにかかわらず行い、その後にステップＳ４０４で転送要求信号ＲＥＱのレベルを判断して、転送先装置１０２へのライトアクセス（ステップＳ４０５）を行うか否か制御する。これにより、予め転送回数が決まっていない転送においても、図５の転送待ちのサイクル（時刻ｔ４〜ｔ５及びｔ７〜ｔ８）をなくし、転送要求信号ＲＥＱに応じた回数だけデータを過不足なく転送できる。
【００２５】
本実施形態のデータ転送装置は、データのリードが行われる転送元装置１０３と、データのライトが行われる転送先装置１０２と、ダイレクトメモリアクセスにより転送元装置１０３からデータをリードしてそのデータを転送先装置１０２へライトするＤＭＡＣ１０１とを有する。ＤＭＡＣ１０１は、転送要求信号ＲＥＱがアクティブになると１回目のデータ転送３０１（図３）を行い（ステップＳ４０１及びＳ４０２）、その後、転送要求信号ＲＥＱにかかわらず転送元装置１０３へリードアクセスする（ステップＳ４０３）。その後、ＤＭＡＣ１０１は、ステップＳ４０４において、転送要求信号ＲＥＱがアクティブであれば前記リードしたデータを転送先装置１０２にライトするためライトアクセスし（ステップＳ４０５）、転送要求信号ＲＥＱがインアクティブであればデータ転送を終了する。
【００２６】
ＤＭＡＣ１０１において、２回目以降のデータ転送３０２（図３）では、転送元装置１０３へのリードアクセス（時刻ｔ４及びｔ６）は、その前の転送先装置１０２へのライトアクセス（時刻ｔ３及びｔ５）の次のクロックタイミングで行われる。
【００２７】
転送要求信号ＲＥＱにかかわらずに転送元装置１０３からデータをリードすることにより、転送待ちサイクルをなくすことができ、高速かつ効率的にデータ転送を行うことができる。
【００２８】
なお、転送元装置１０３及び転送先装置１０２は、共に周辺Ｉ／Ｏ装置であってもよい。また、転送要求元装置は、転送元装置及び転送先装置のうちのいずれでもよい。
【００２９】
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【図面の簡単な説明】
【００３０】
【図１】本発明の実施形態によるデータ転送装置の構成例を示す図である。
【図２】ＤＭＡＣ内の転送先ライト制御部の構成例を示す回路図である。
【図３】本実施形態によるデータ転送のタイミングチャートである。
【図４】本実施形態によるＤＭＡＣの処理を示すフローチャートである。
【図５】データ転送のタイミングチャートである。
【図６】ＤＭＡＣの処理を示すフローチャートである。
【符号の説明】
【００３１】
１０１  ＤＭＡＣ
１０２  周辺Ｉ／Ｏ装置
１０３  メモリ
１１１  転送先ライト制御部
１１２  転送設定レジスタ
１２１  データバッファ
２０１  論理積回路
ＲＥＱ  転送要求信号
ＡＣＫ  アクノリッジ信号
ＤＴ  データバス
ＡＤＲ  アドレスバス
ＣＴＬ  制御信号バス
【図１】
2008046874.tif 000003
【図２】
2008046874.tif 000004
【図３】
2008046874.tif 000005
【図４】
2008046874.tif 000006
【図５】
2008046874.tif 000007
【図６】
2008046874.tif 000008