JP2008046874A - データ転送装置及び方法 - Google Patents
データ転送装置及び方法 Download PDFInfo
- Publication number
- JP2008046874A JP2008046874A JP2006222045A JP2006222045A JP2008046874A JP 2008046874 A JP2008046874 A JP 2008046874A JP 2006222045 A JP2006222045 A JP 2006222045A JP 2006222045 A JP2006222045 A JP 2006222045A JP 2008046874 A JP2008046874 A JP 2008046874A
- Authority
- JP
- Japan
- Prior art keywords
- transfer
- data
- request signal
- transfer request
- source device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Bus Control (AREA)
Abstract
【課題】予め転送回数が決まっていないデータ転送を効率よく行うためのデータ転送装置を提供することを課題とする。
【解決手段】データのリードが行われる転送元装置と、データのライトが行われる転送先装置と、ダイレクトメモリアクセスにより前記転送元装置からデータをリードしてそのデータを前記転送先装置へライトするダイレクトメモリアクセスコントローラとを有し、前記ダイレクトメモリアクセスコントローラは、転送要求信号がアクティブになると1回目のデータ転送を行い(S401,S402)、その後、前記転送要求信号にかかわらず前記転送元装置からデータをリードし(S403)、その後に、前記転送要求信号がアクティブであれば前記リードしたデータを前記転送先装置にライトし(S405)、前記転送要求信号がインアクティブであればデータ転送を終了するデータ転送装置が提供される。
【選択図】図4
【解決手段】データのリードが行われる転送元装置と、データのライトが行われる転送先装置と、ダイレクトメモリアクセスにより前記転送元装置からデータをリードしてそのデータを前記転送先装置へライトするダイレクトメモリアクセスコントローラとを有し、前記ダイレクトメモリアクセスコントローラは、転送要求信号がアクティブになると1回目のデータ転送を行い(S401,S402)、その後、前記転送要求信号にかかわらず前記転送元装置からデータをリードし(S403)、その後に、前記転送要求信号がアクティブであれば前記リードしたデータを前記転送先装置にライトし(S405)、前記転送要求信号がインアクティブであればデータ転送を終了するデータ転送装置が提供される。
【選択図】図4
Description
本発明は、データ転送装置及び方法に関し、特にダイレクトメモリアクセスによりデータ転送を行うデータ転送装置及び方法に関する。
データ転送を制御するダイレクトメモリアクセスコントローラ(DMAC)は、内部にレジスタを有し、転送元アドレス、転送先アドレス、転送サイズ、転送回数等を設定することができる。そして、転送要求元より転送要求を受けると、自らバス権を取得して上述したレジスタの設定に従い、データ転送を独立に制御する機能を持つ。DMACを用いる利点として、CPUを介さずに各記憶装置間のデータ転送ができるため、CPUの付加を軽減できるとともに、高速なデータ転送が可能となることがあげられる(例えば、特許文献1参照。)。
DMACのデータ転送方式としては、転送元アクセス及び転送先アクセスの2サイクルで行う方式がある。まず、転送元よりデータのリード処理を行い、続いてそのデータを転送先にライトすることにより、一連のデータ転送を実現する。この際、転送要求元とDMACの間では、転送要求信号と、要求を受け付けたことを通知するアクノリッジ信号とのハンドシェイクで転送に係るやり取りがされる。
転送モードとしては、転送要求以前に転送回数が決まっているモードと、転送回数が決まっておらず、転送要求毎に転送回数が異なり転送要求しただけの回数転送するモードがある。後者の場合、転送要求毎に転送回数が変わるため、転送要求がアクティブなレベルの期間だけ転送を行うという方式がとられている。この場合は、DMACがどこまで転送を続けてよいか分からないため、転送要求元と随時、転送要求信号とアクノリッジ信号のやり取りをする必要がある。
図5及び図6は、予め転送回数が決まっていないデータ転送の処理を示す図である。図5はデータ転送のタイミングチャートであり、図6はDMACの処理を示すフローチャートである。図5には、バスクロックCLK、転送要求信号REQ、アドレスバスADR及びアクノリッジ信号ACKを示す。アドレスバスADRは、転送元装置へのリードアクセスS及び転送先装置へのライトアクセスDを示す。DMACは、バスクロックCLKに同期して、処理を行う。
時刻t1では、転送要求元装置はDMACに供給する転送要求信号REQをアクティブ(ハイレベル)にする。すると、DMACは、図6の処理を開始する。ステップS601では、時刻t2においてDMACは転送元装置へリードアクセスをする。次に、ステップS602では、時刻t3においてDMACはそのリードしたデータを転送先装置へライトするためライトアクセスすると共に、アクティブのアクノリッジ信号ACKを転送要求元装置に出力する。アクノリッジ信号ACKは、転送要求信号REQを受け付けたことをデータ転送毎に通知する信号である。次に、時刻t4では、転送要求元装置は、転送要求信号REQに対するアクノリッジ信号ACKを検出した後、引き続きデータ転送する場合は転送要求信号REQをアクティブに保ち、データ転送を終了する場合は転送要求信号REQをインアクティブ(ローレベル)に保つ。例えば、時刻t4では、転送要求元装置は、転送要求信号REQをアクティブにする。時刻t4〜t5の1サイクルは、データ転送が行われないデータ転送待ちサイクルである。
次に、ステップS603では、時刻t5においてDMACは転送要求信号REQがアクティブであるか又はインアクティブであるかをチェックする。アクティブであればステップS604へ進み、インアクティブであればデータ転送を終了する。ステップS604では、時刻t5においてDMACは転送元装置へリードアクセスをする。次に、ステップS605では、時刻t6においてDMACはそのリードしたデータを転送先装置にライトするためライトアクセスすると共に、アクティブのアクノリッジ信号ACKを転送要求元装置に出力する。次に、時刻t7では、転送要求元装置は、転送要求信号REQに対するアクノリッジ信号ACKを検出した後、引き続きデータ転送する場合は転送要求信号REQをアクティブに保ち、データ転送を終了する場合は転送要求信号REQをインアクティブにする。例えば、時刻t7では、転送要求元装置は、転送要求信号REQをインアクティブにする。その後、ステップS603に戻り、同様の処理を繰り返す。時刻t7〜t8の1サイクルは、データ転送が行われないデータ転送待ちサイクルである。ステップS603では、時刻t8においてDMACは転送要求信号REQがアクティブであるか又はインアクティブであるかをチェックする。時刻t8では、転送要求信号REQがインアクティブであるので、DMACはデータ転送を終了する。
転送要求元装置は、DMACからのアクノリッジ信号ACKにより、転送要求信号REQが受け付けられたことを確認するため、アクノリッジ信号ACKを検出する時刻t4までは転送要求信号REQをアクティブに保つ必要がある。この間、DMACは、転送元アクセス(時刻t2)及び転送先アクセス(時刻t3)の一連の転送を行う。この際、新たな転送要求信号REQの検出は行わない。 転送要求元装置は、転送要求信号REQに対するアクノリッジ信号ACKを検出した後、引き続きデータ転送する場合は転送要求信号REQをアクティブに保ち(時刻t4〜t5)、データ転送を終了する場合はインアクティブにする(時刻t7〜t8)。このサイクルでは、DMACは、次の転送を行う要求信号REQであるかどうかの判断がつかないため転送要求信号REQの検出は行わない。よって、引き続きデータ転送を行う際も、この転送待ちサイクル(時刻t4〜t5及びt7〜t8)ではデータ転送ができないという問題がある。
本発明の目的は、予め転送回数が決まっていないデータ転送を効率よく、かつ過不足なく行うためのデータ転送装置及び方法を提供することである。
本発明の一観点によれば、データのリードが行われる転送元装置と、データのライトが行われる転送先装置と、ダイレクトメモリアクセスにより前記転送元装置からデータをリードしてそのデータを前記転送先装置へライトするダイレクトメモリアクセスコントローラとを有し、前記ダイレクトメモリアクセスコントローラは、転送要求信号がアクティブになると1回目のデータ転送を行い、その後、前記転送要求信号にかかわらず前記転送元装置からデータをリードし、その後に、前記転送要求信号がアクティブであれば前記リードしたデータを前記転送先装置にライトし、前記転送要求信号がインアクティブであればデータ転送を終了することを特徴とするデータ転送装置が提供される。
転送要求信号にかかわらずに転送元装置からデータをリードすることにより、転送待ちサイクルをなくすことができ、高速かつ効率的にデータ転送を行うことができる。
図1は、本発明の実施形態によるデータ転送装置の構成例を示す図である。データバスDT、アドレスバスADR及び制御信号バスCTLには、ダイレクトメモリアクセスコントローラ(DMAC)101、周辺入出力(I/O)装置102及びメモリ(記憶装置)103が接続されている。DMAC101は、転送先ライト制御部111及び転送設定レジスタ112を有し、ダイレクトメモリアクセスにより周辺I/O装置102及びメモリ103間のデータ転送を行う。DMAC101が周辺I/O装置102からメモリ103へデータ転送するときには、周辺I/O装置102が転送元装置になり、メモリ103が転送先装置になる。逆に、DMAC101がメモリ103から周辺I/O装置102へデータ転送するときには、メモリ103が転送元装置になり、周辺I/O装置102が転送先装置になる。転送先ライト制御部111は、転送先装置へのライト処理を制御する。転送設定レジスタ112は、転送元アドレス、転送先アドレス及び転送サイズ等を設定することができる。なお、転送回数は、転送要求信号REQにより指示される。周辺I/O装置102は、データバッファ121を有し、例えば転送要求元装置である。データバッファ121は、データを記憶可能である。転送要求元装置102は、DMAC101に対し、転送元装置103及び転送先装置102間のデータ転送を要求するための転送要求信号REQを出力し、アクノリッジ信号ACKを入力する。予め転送回数(転送データ数)が決まっていない場合、転送要求元装置102は、DMAC101に対して、転送要求信号REQのレベルによって通知するため、転送したい回数(データ数)だけ転送要求信号REQをアクティブに保つ。また、転送要求元装置102は、DMAC101が出力するアクノリッジ信号ACKによって転送した回数(データ数)をカウントする。DMAC101は、転送要求元装置102よりアクティブの転送要求信号REQを受けると、自らバス権を取得して転送設定レジスタ112の設定に従い、データ転送を独立に制御する。DMAC101は、CPUを介さずに、周辺I/O装置102及びメモリ103間のデータ転送ができ、CPUの付加を軽減できると共に、高速なデータ転送が可能である。
図2は、DMAC101内の転送先ライト制御部111の構成例を示す回路図である。転送先ライト制御部111は、論理積(AND)回路201を有する。論理積回路201は、ライトイネーブル信号WE及び転送要求信号REQの論理積信号をライト信号WRとして出力する。ライト信号WRは、ライトイネーブル信号WEがイネーブル状態(ハイレベル)及び転送要求信号REQがアクティブ(ハイレベル)のときのみハイレベルとなる。ライト信号WRは、制御信号バスCTLに送出される。
図3は本実施形態によるデータ転送のタイミングチャートであり、図4は本実施形態によるDMAC101の処理を示すフローチャートである。図3には、バスクロックCLK、転送要求信号REQ、アドレスバスADR及びアクノリッジ信号ACKを示す。アドレスバスADRは、転送元装置へのリードアクセスS及び転送先装置へのライトアクセスDを示す。DMAC101は、バスクロックCLKに同期して、処理を行う。以下、転送要求元装置は周辺I/O装置102、転送元装置はメモリ103、転送先装置は周辺I/O装置102である場合を例に説明する。
時刻t1では、転送要求元装置102はDMAC101に供給する転送要求信号REQをアクティブ(ハイレベル)にする。DMAC101は、転送要求元装置102からの転送要求信号REQがアクティブであることを検出すると、図4のデータ転送処理を開始する。ステップS401では、時刻t2においてDMAC101は転送元装置103へリードアクセスをする。次に、ステップS402では、時刻t3においてDMAC101はそのリードしたデータを転送先装置102へライトするためライトアクセスすると共に、アクティブのアクノリッジ信号ACKを転送要求元装置102に出力する。アクノリッジ信号ACKは、転送要求信号REQを受け付けたことをデータ転送毎に通知する信号である。
次に、ステップS403では、時刻t4においてDMAC101は転送要求信号REQにかかわらず転送元装置103へ次のデータのリードアクセスをする。ステップS403のリードアクセス(時刻t4)は、その前のステップS402のライトアクセス(時刻t3)の次のクロックタイミングで行われる。これにより、図5の時刻t4〜t5のデータ転送待ちサイクルをなくし、高速かつ効率的なデータ転送を行うことができる。
また、時刻t4では、転送要求元装置102は、転送要求信号REQに対するアクノリッジ信号ACKを検出した後、引き続きデータ転送する場合は転送要求信号REQをアクティブに保ち、データ転送を終了する場合は転送要求信号REQをインアクティブ(ローレベル)にする。例えば、時刻t4では、転送要求元装置102は、転送要求信号REQをアクティブに保つ。
次に、ステップS404では、時刻t5においてDMAC101は転送要求信号REQがアクティブであるか又はインアクティブであるかをチェックする。アクティブであればステップS405へ進み、インアクティブであればデータ転送を終了する。ステップS405では、時刻t5においてDMAC101はステップS403でリードしたデータを転送先装置102へライトするためライトアクセスすると共に、アクティブのアクノリッジ信号ACKを転送要求元装置102に出力する。その後、ステップS403に戻り、同様の処理を繰り返す。
時刻t6では、転送要求元装置102は、転送要求信号REQに対するアクノリッジ信号ACKを検出した後、引き続きデータ転送する場合は転送要求信号REQをアクティブに保ち、データ転送を終了する場合は転送要求信号REQをインアクティブにする。例えば、時刻t6では、転送要求元装置102は、転送要求信号REQをインアクティブにする。
ステップS403では、時刻t6においてDMAC101は転送要求信号REQにかかわらず転送元装置103へ次のデータのリードアクセスをする。ステップS403のリードアクセス(時刻t6)は、その前のステップS405のライトアクセス(時刻t5)の次のクロックタイミングで行われる。これにより、図5の時刻t7〜t8のデータ転送待ちサイクルをなくし、高速かつ効率的なデータ転送を行うことができる。
次に、ステップS404では、時刻t7においてDMAC101は転送要求信号REQがアクティブであるか又はインアクティブであるかをチェックする。時刻t7では、転送要求信号REQはインアクティブであるので、DMAC101はデータ転送を終了する。
以上のように、本実施形態によれば、DMAC101は、転送要求信号REQのアクティブにより1回目のリードアクセス(ステップS401)及びライトアクセス(ステップS402)を行った後は、転送要求信号REQによらず自動で転送元装置103へリードアクセス(ステップS403)を行う。転送先ライト制御部111は、転送要求信号REQのレベルにより転送先装置102へのライトアクセス(ステップS405)を行うか否かの判断をする。DMAC101は、一連の処理として、転送元装置103からのリード処理に続き、転送先ライト処理を行う。転送先ライト処理は、転送先ライト制御部111で転送要求信号REQを用いてライトイネーブル信号WEをマスクすることにより、バスCTLに出力するライト信号WRの制御を行っている。
DMAC101は、転送要求信号REQのアクティブを検出すると、最初の転送動作を開始し、転送元装置103へのアクセス(ステップS401)及び転送先装置102へのアクセス(ステップS402)の順にデータ転送を行う。続いて行われる転送元装置103へのリードアクセス(ステップS403)は、転送要求信号REQのレベルにかかわらず行い、その後にステップS404で転送要求信号REQのレベルを判断して、転送先装置102へのライトアクセス(ステップS405)を行うか否か制御する。これにより、予め転送回数が決まっていない転送においても、図5の転送待ちのサイクル(時刻t4〜t5及びt7〜t8)をなくし、転送要求信号REQに応じた回数だけデータを過不足なく転送できる。
本実施形態のデータ転送装置は、データのリードが行われる転送元装置103と、データのライトが行われる転送先装置102と、ダイレクトメモリアクセスにより転送元装置103からデータをリードしてそのデータを転送先装置102へライトするDMAC101とを有する。DMAC101は、転送要求信号REQがアクティブになると1回目のデータ転送301(図3)を行い(ステップS401及びS402)、その後、転送要求信号REQにかかわらず転送元装置103へリードアクセスする(ステップS403)。その後、DMAC101は、ステップS404において、転送要求信号REQがアクティブであれば前記リードしたデータを転送先装置102にライトするためライトアクセスし(ステップS405)、転送要求信号REQがインアクティブであればデータ転送を終了する。
DMAC101において、2回目以降のデータ転送302(図3)では、転送元装置103へのリードアクセス(時刻t4及びt6)は、その前の転送先装置102へのライトアクセス(時刻t3及びt5)の次のクロックタイミングで行われる。
転送要求信号REQにかかわらずに転送元装置103からデータをリードすることにより、転送待ちサイクルをなくすことができ、高速かつ効率的にデータ転送を行うことができる。
なお、転送元装置103及び転送先装置102は、共に周辺I/O装置であってもよい。また、転送要求元装置は、転送元装置及び転送先装置のうちのいずれでもよい。
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
101 DMAC
102 周辺I/O装置
103 メモリ
111 転送先ライト制御部
112 転送設定レジスタ
121 データバッファ
201 論理積回路
REQ 転送要求信号
ACK アクノリッジ信号
DT データバス
ADR アドレスバス
CTL 制御信号バス
102 周辺I/O装置
103 メモリ
111 転送先ライト制御部
112 転送設定レジスタ
121 データバッファ
201 論理積回路
REQ 転送要求信号
ACK アクノリッジ信号
DT データバス
ADR アドレスバス
CTL 制御信号バス
Claims (5)
- データのリードが行われる転送元装置と、
データのライトが行われる転送先装置と、
ダイレクトメモリアクセスにより前記転送元装置からデータをリードしてそのデータを前記転送先装置へライトするダイレクトメモリアクセスコントローラとを有し、
前記ダイレクトメモリアクセスコントローラは、転送要求信号がアクティブになると1回目のデータ転送を行い、その後、前記転送要求信号にかかわらず前記転送元装置からデータをリードし、その後に、前記転送要求信号がアクティブであれば前記リードしたデータを前記転送先装置にライトし、前記転送要求信号がインアクティブであればデータ転送を終了することを特徴とするデータ転送装置。 - 前記転送要求信号は、前記転送元装置又は前記転送先装置から前記ダイレクトメモリアクセスコントローラに出力されることを特徴とする請求項1記載のデータ転送装置。
- 前記転送元装置及び前記転送先装置のうち前記転送要求信号を出力する装置は入出力装置であることを特徴とする請求項1又は2記載のデータ転送装置。
- 前記ダイレクトメモリアクセスコントローラにおいて、2回目以降のデータ転送では、前記転送元装置からのデータリードは、その前の前記転送先装置へのデータライトの次のクロックタイミングで行われることを特徴とする請求項1乃至3のいずれか1項に記載のデータ転送装置。
- ダイレクトメモリアクセスにより転送元装置からデータをリードしてそのデータを転送先装置へライトするダイレクトメモリアクセスコントローラのデータ転送方法であって、
転送要求信号がアクティブになると1回目のデータ転送を行うデータ転送ステップと、
前記データ転送ステップの後、前記転送要求信号にかかわらず前記転送元装置からデータをリードするデータリードステップと、
前記データリードステップの後、前記転送要求信号がアクティブであれば前記リードしたデータを前記転送先装置にライトし、前記転送要求信号がインアクティブであればデータ転送を終了するデータライトステップと
を有することを特徴とするデータ転送方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006222045A JP2008046874A (ja) | 2006-08-16 | 2006-08-16 | データ転送装置及び方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006222045A JP2008046874A (ja) | 2006-08-16 | 2006-08-16 | データ転送装置及び方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008046874A true JP2008046874A (ja) | 2008-02-28 |
Family
ID=39180564
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006222045A Withdrawn JP2008046874A (ja) | 2006-08-16 | 2006-08-16 | データ転送装置及び方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008046874A (ja) |
-
2006
- 2006-08-16 JP JP2006222045A patent/JP2008046874A/ja not_active Withdrawn
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2003058271A (ja) | 半導体装置及びクロック制御方法 | |
JP2008009817A (ja) | 半導体装置及びデータ転送方法 | |
JP2006293927A (ja) | ダイレクトメモリアクセス制御装置及びダイレクトメモリアクセス制御装置を含むシステムlsi | |
JPWO2006046482A1 (ja) | マルチプロセッサシステム、同期制御装置及び同期制御方法 | |
JP2007048022A (ja) | 非同期バスインタフェース及びその処理方法 | |
JP2005275538A (ja) | ダイレクトメモリアクセス制御装置および方法 | |
JP2001282704A (ja) | データ処理装置及びデータ処理方法とデータ処理システム | |
JP2008046874A (ja) | データ転送装置及び方法 | |
KR100606163B1 (ko) | 디렉트 메모리 엑세스 장치, 디렉트 메모리 엑세스 장치를통한 데이터를 송수신하는 시스템 및 방법 | |
JP4633334B2 (ja) | 情報処理装置およびメモリアクセス調停方法 | |
JP2007052685A (ja) | マイクロコントローラ | |
JP2009003633A (ja) | 情報処理装置 | |
JP2006323817A (ja) | データバスの利用における効率を向上させる方法及び装置 | |
JPH08202677A (ja) | マイクロコントローラ | |
JP4472402B2 (ja) | バス装置 | |
JP2010140440A (ja) | バス調停装置 | |
JP2000276435A (ja) | データ転送装置及びデータ転送方法 | |
JP4603054B2 (ja) | スケーラブルバス構造 | |
JP2006331248A (ja) | データ転送装置 | |
JP2006345011A (ja) | 通信装置 | |
JP2002373145A (ja) | ダイレクトメモリアクセス装置 | |
JP2008102609A (ja) | バス・ブリッジ | |
JP2005032019A (ja) | Ambaにおけるバス調停システム | |
JP2007334600A (ja) | 半導体集積回路装置 | |
JP2018088096A (ja) | 制御装置およびその制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Effective date: 20080731 Free format text: JAPANESE INTERMEDIATE CODE: A712 |
|
A621 | Written request for application examination |
Effective date: 20090402 Free format text: JAPANESE INTERMEDIATE CODE: A621 |
|
A761 | Written withdrawal of application |
Effective date: 20101126 Free format text: JAPANESE INTERMEDIATE CODE: A761 |