(57)【要約】  【課題】  バスの混み具合に応じて上記割込信号をＣＰＵへ出力することにより，ＣＰＵの処理開始時期の遅延を防止し，且つ，信頼性の高いＤＭＡ転送を実現すること。  【解決手段】  上記ＤＭＡ転送装置によってデータの転送元から最終データが読み出された後に，上記ＤＭＡ転送装置によって上記最終データをデータの転送先に書き込むための書込信号が上記バスに出力され，上記バスから出力された上記書込信号に対する書込応答信号を上記ＤＭＡ転送装置が受信した後に，上記データの転送先からの所定の応答信号を上記バスを介して上記ＤＭＡ転送装置が受信したことを条件に，上記バスの占有を開放する割込信号が上記ＣＰＵに出力されるため，データが転送元から転送先へ完全に書き込まれた時点でＣＰＵに割込信号が出力される。【選択図】図１
2005128931.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵを介することなく占有したバスを介して一連のデータを転送するＤＭＡ転送方式に基づいてデータの転送を実行するＤＭＡ転送装置において，
上記ＤＭＡ転送装置によってデータの転送元から最終データが読み出された後に，上記ＤＭＡ転送装置によって上記最終データをデータの転送先に書き込むための書込信号が上記バスに出力され，上記バスから出力された上記書込信号に対する書込応答信号を上記ＤＭＡ転送装置が受信した後に，上記データの転送先からの所定の応答信号を上記バスを介して上記ＤＭＡ転送装置が受信したことを条件に，上記バスの占有を開放する割込信号を上記ＣＰＵに出力することを特徴とするＤＭＡ転送装置。
【請求項２】
上記所定の応答信号が，上記書込信号を上記ＤＭＡ転送装置が受信した後に，上記ＤＭＡ転送装置から上記データの転送先に送信された応答要求信号に応じて上記データの転送先から出力された信号である請求項１に記載のＤＭＡ転送装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，ＣＰＵを介することなく占有したバスを介して一連のデータを転送するＤＭＡ転送方式に基づいてデータの転送を実行するＤＭＡ転送装置に関するものである。
【背景技術】
【０００２】
所定の入出力装置とメモリ或いはＨＤＤ等の記憶媒体との間で高速にデータの転送を行う手法の一つに，ＤＭＡ転送方式（Direct Memory Access 転送方式）がある。このＤＭＡ転送方式に基づくデータ転送（以下，「ＤＭＡ転送」という。）を行うためには，ＤＭＡ転送を実行するＤＭＡ転送装置（Direct Memory Access Controller，以下「ＤＭＡＣ」と称す。）という新たなハードウェアを必要とするものの，ＣＰＵ等の中央演算処理装置により干渉されずに，上記入出力装置と記憶媒体との間でバス等を介して直接的にデータ転送が行われるため，転送効率が非常に良く，また，ＣＰＵがＤＭＡ転送に関与しないため，ＣＰＵの処理負担が軽減され，システム全体の処理速度の高速化を図ることができる。そのため，近年，上記ＤＭＡ転送方式によるデータ転送が広く利用されている。
このようなＤＭＡ転送を行う場合，従来は以下の問題があった。即ち，従来のＤＭＡＣは，データが転送元からバスに読み出され，その後，バスに対して転送先へデータを転送させる転送要求の書き込みが完了した時点で上記ＣＰＵに割込信号（バスの占有を開放することを示す信号）を出力していたため，データの転送先に全データが完全に書き込まれていないにもかかわらず，ＣＰＵによる処理が開始され，このＣＰＵが転送未完了のデータを処理することにより装置の誤動作が生じるという問題があった。しかしながら，かかる問題は，特許文献１に記載された割込信号発生回路を上記ＤＭＡＣに設けることにより解決され得る。この割込信号発生回路は，ＤＭＡ転送が実行された場合に，（イ）転送先のメモリの容量が“空”であること，（ロ）データ転送が終了したこと，（ハ）上記ＤＭＡ制御回路による上記メモリへの書込信号が一定時間存在しないこと，の３つの条件を満たすがどうかを判断し，かかる３条件を満たすと判断された場合に，ＣＰＵに対して割込信号を出力するよう構成されている。これにより，データの転送が完全に終了した後に上記割込信号がＣＰＵに対して出力されるため，信頼性の高い転送処理を実現することが可能となる。尚，上記（ハ）の条件は，タイマを用いて予め設定された時間内に上記書込信号があるか否かにより判断される。
【特許文献１】特開平０５−２８０９３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら，データの転送処理にかかる時間は，バスの混雑具合（混み具合）によって変動する（一定ではない）ため，上記特許文献１の上記混雑具合を十分に勘案して上記タイマの設定時間を定める必要がある。通常，上記タイマ設定時間は，上記データ伝送媒体が最も混雑した状態を想定して設定されるが，上記割込信号発生回路では，上記バスが混雑しておらず，スムーズにデータの転送が完了した場合であっても，上記タイマ設定時間が経過するまでＣＰＵへ割込信号が出力されないため，ＣＰＵによる処理の開始時期が遅延するという問題がある。
また，近年，回路集積技術の進歩により，上記ＤＭＡＣがメモリコントローラや外部Ｉ／Ｆ等とともにＡＳＩＣ（Application Specific Integrated Circuit：特定用途向けＩＣ）等のＩＣに組み込まれて利用される傾向にある。このようなＡＳＩＣ内の内部バスは非常に複雑な構造をしているため，転送データが上記内部バス内で長時間滞留されやすく，上記ＡＳＩＣ内におけるデータの転送時間が従来に増して長くなるため，上記タイマ設定時間が超過し，転送未完了の状態でＣＰＵが処理を開始するおそれがある。また，上記タイマ設定時間を更に長い時間に設定すれば，上記割込信号のＣＰＵへの出力タイミングが更に遅延し，ＣＰＵの処理開始時期が更に遅延するという問題がある。
従って，本発明は上記事情に鑑みてなされたものであり，その目的とするところは，バスの混み具合に応じて上記割込信号をＣＰＵへ出力することにより，ＣＰＵの処理開始時期の遅延を防止し，且つ，信頼性の高いＤＭＡ転送を実現することができるＤＭＡ転送装置を提供することにある。
【課題を解決するための手段】
【０００４】
上記目的を達成するために本発明は，ＣＰＵを介することなく占有したバスを介して一連のデータを転送するＤＭＡ転送方式に基づいてデータの転送を実行するＤＭＡ転送装置において，上記ＤＭＡ転送装置によってデータの転送元から最終データが読み出された後に，上記ＤＭＡ転送装置によって上記最終データをデータの転送先に書き込むための書込信号が上記バスに出力され，上記バスから出力された上記書込信号に対する書込応答信号を上記ＤＭＡ転送装置が受信した後に，上記データの転送先からの所定の応答信号を上記バスを介して上記ＤＭＡ転送装置が受信したことを条件に，上記バスの占有を開放する割込信号を上記ＣＰＵに出力することを特徴とするＤＭＡ転送装置として構成されるものである。
これにより，データが転送元から転送先へ完全に書き込まれた時点でＣＰＵに割込信号が出力されるので，装置の誤動作が生じず，信頼性の高いＤＭＡ転送を実現することが可能となる。また，例えば，データが短時間で転送された場合は，その転送後すぐにＣＰＵへ割込信号が出力され，ＣＰＵの処理が早期に開始されるため，ＣＰＵの処理開始時期が遅延するという問題も解消される。
この場合，上記所定の応答信号が，上記書込信号を上記ＤＭＡ転送装置が受信した後に，上記ＤＭＡ転送装置から上記データの転送先に送信された応答要求信号に応じて上記データの転送先から出力された信号であることが望ましい。
【発明の効果】
【０００５】
以上説明したように，本発明によれば，上記ＤＭＡ転送装置によってデータの転送元から最終データが読み出された後に，上記ＤＭＡ転送装置によって上記最終データをデータの転送先に書き込むための書込信号が上記バスに出力され，上記バスから出力された上記書込信号に対する書込応答信号を上記ＤＭＡ転送装置が受信した後に，上記データの転送先からの所定の応答信号を上記バスを介して上記ＤＭＡ転送装置が受信したことを条件に，上記バスの占有を開放する割込信号を上記ＣＰＵに出力されるので，装置の誤動作が生じず，信頼性の高いＤＭＡ転送を実現することが可能となる。また，例えば，データが短時間で転送された場合は，その転送後すぐにＣＰＵへ割込信号が出力され，ＣＰＵの処理が早期に開始されるため，ＣＰＵの処理開始時期が遅延するという問題も解消され得る。
【発明を実施するための最良の形態】
【０００６】
以下添付図面を参照しながら，本発明の実施の形態について説明し，本発明の理解に供する。尚，以下の実施の形態は，本発明を具体化した一例であって，本発明の技術的範囲を限定する性格のものではない。
ここに，図１は本発明の実施の形態に係るＤＭＡ転送装置が搭載されたＡＳＩＣの内部の概略構成を示すブロック図，図２はＤＭＡ転送装置及びメモリコントローラと内部バスとのインターフェースを示すブロック図，図３は内部バスの構造を示す図，図４はＤＭＡ転送装置等において入出力される信号のタイミングチャートである。
【０００７】
ここで，図１のブロック図を用いて，本発明の実施の形態に係るＤＭＡ転送装置が搭載されたＡＳＩＣ１の内部構成の概略について説明する。
図１に示されるように，ＡＳＩＣ１は，ＤＭＡＣ２（ＤＭＡ転送装置）と，ＣＰＵ３と，メモリコントローラ４と，外部インターフェース６（以下，「Ｉ／Ｆ」略す。）とが内部バス８に接続されて構成されている。また，上記メモリコントローラ４はメモリ５と，上記Ｉ／Ｆ６は情報処理装置７とそれぞれデータ通信可能に接続さている。尚，本実施形態例の説明では，上記ＤＭＡＣ２がＡＳＩＣ１に搭載された例について説明するが，これに限定されることはなく，例えば，上記ＤＭＡＣ２が独立した装置として機能するものであってもよい。
上記ＤＭＡＣ２は，ＣＰＵ３を介することなく占有したバスを介して一連のデータを転送するＤＭＡ転送方式に基づいてデータの転送を制御・実行する装置である。このＤＭＡＣ２により実行されるＤＭＡ転送については後段において説明する。
上記ＣＰＵ３は，上記ＡＳＩＣ１内の各装置或いはＡＳＩＣ１の外部に接続された装置等を統括制御する中央演算処理装置の一例である。このＣＰＵ３は上記ＡＳＩＣに搭載されたものでなくてもよく，上記ＡＳＩＣ１と外部接続されたものであってもよい。
上記メモリコントローラ４は，ＤＭＡＣ２やＣＰＵ３等からのアクセスに応じて，メモリ５に対するデータの書き込み／読み出しを制御するものである。このメモリコントローラ４に接続された上記メモリ５は，フラッシュメモリやスタティックＲＡＭ等の半導体メモリからなるものである。尚，上記メモリ５は半導体メモリに限られず，ＨＤＤ，ＣＤ−Ｒ／ＲＷ等の記憶媒体であってもかまわない。また，本実施形態例では，上記ＤＭＡＣ２により上記メモリ５との間で実行されるデータ転送は，上記メモリコントローラ４を介して行われるものとして説明するが，上記メモリコントローラ４を介さずに直接的にメモリ５にアクセスしてデータ転送を行う実施形態例であってもかまわない。また，上記メモリ５が上記ＡＳＩＣ１に搭載されたものであってもよい。
上記Ｉ／Ｆ６は，情報処理装置７とＡＳＩＣ１とを接続してデータ通信を可能とするインターフェースであり，例えば，ＵＳＢ規格（USB2.0，USB-OTG等）やＩＥＥＥ規格（IEEE1284，IEEE1394等）に準拠したインターフェースが該当する。尚，上記ＤＭＡＣ２により上記情報処理装置７との間で実行されるデータの転送は，上記Ｉ／Ｆ６を介して行われる。
【０００８】
次に，図３を用いて上記内部バス８について説明する。上記内部バス８は，転送されたデータを一時的に保管するＦＩＦＯメモリ４２（以下，「ＦＩＦＯ」と称す。）や，圧縮されたデータ等を解凍するデコーダ４３，データを転送している間に内部バス８に接続されたＤＭＡＣ２やＣＰＵ３等から出力される後述の送信要求信号や受信要求信号等を受け付け，それらの要求に対して後述の送信応答信号や受信応答信号を出力する調停器４１（或いは調停回路）等を備えている。この調停器４１は，上記ＤＭＡＣ２やＣＰＵ３等からの要求或いは信号を受信した順番に内部バスの使用を認めるものである。また，この内部バス８の上記ＦＩＦＯ４２には，上記ＤＭＡＣ２だけでなく，ＣＰＵ３や他の制御装置により転送或いは送受信された転送データや信号が蓄えられることもあるため，ＤＭＡＣ２により上記内部バス８にデータが読み出されたとしても，すぐにデータが転送先に転送されるとは限らない。
【０００９】
ここで，上記ＤＭＡＣ２により実行されるＤＭＡ転送について説明する。ＤＭＡＣ２が，例えば，上記Ｉ／Ｆ６からのＤＭＡ転送要求を受信すると，ＤＭＡＣ２は該ＤＭＡ転送要求に含まれる転送データに関する情報（データサイズ，転送先アドレス，転送元アドレス等）を上記ＤＭＡＣ２内の不図示の情報メモリに記憶するとともに，ＣＰＵ３に対して内部バス８の開放を要求するためのＤＭＡ転送要求信号（dmareq，図４の（ｂ））を送信する。その後，ＣＰＵ３から出力された内部バス８を開放したこと示すＤＭＡ転送応答信号（dmaack，図４の（ａ））を受信すると，ＤＭＡＣ２は内部バス８を占有してＤＭＡ転送を開始する。
【００１０】
続いて，図２のブロック図及び図４のタイミングチャートを用いて，上記情報処理装置７から送り出されて上記Ｉ／Ｆ６に到達したデータが内部バス８に読み出される動作（Ｒｅａｄ動作）について説明する。尚，図２のTXVldは送信要求信号，TXAckは上記送信応答信号，TXD（TXD1，TXD2，TXD3）は送信データ，RXVldは受信要求信号，RXAckは受信応答信号を示す。また，図２にはメモリコントローラ４と内部バス８とのインターフェースを示しているが，Ｉ／Ｆ６と内部バス８とのインターフェースも同じよう構成されている。
上記ＤＭＡ転送応答信号が受信され，ＤＭＡＣ２により内部バス８が占有されると，上記ＤＭＡＣ２により，上記内部バス８の調停器４１に対して上記Ｉ／Ｆ６のデータを読み出すためにRXVld（ｃ１）が発行（アサート）され，これと同時にTXD1を内部バス８に送信する。このTXD1は，上記Ｉ／Ｆ６からデータを読み出すために必要な情報，即ち，データの読み出し元（転送元）であるＩ／Ｆ６のアドレス情報，転送データのデータサイズ等の情報が含まれたデータである。また，TXD1には，上記ＤＭＡＣ自身のアドレス情報も含まれている。その後，ＤＭＡＣ２は，上記Ｉ／Ｆ６から後述するRXAck（ｈ）が発行されるまで待機する。このように上記ＤＭＡＣ２自身のアドレス情報を上記TXD1に含めることにより，後に述べるRXAck（ｈ）が上記Ｉ／Ｆ６から上記ＤＭＡＣ２に返信される。
上記調停器４１により上記RXVld（ｃ１）及び上記TXD1が受け取られると，上記調停器４１は，TXD1内の転送元アドレスやデータサイズ等の情報を参照して，Ｉ／Ｆ６に対してRXVld（ｇ）を発行し，上記Ｉ／Ｆ６から転送するデータの読み出しを行う。上記調停器４１による上記TXD1内のデータサイズのデータの読み出しが終了すると，上記Ｉ／Ｆ６は上記TXD1内の上記ＤＭＡＣ２のアドレス情報を参照して，上記ＤＭＡＣ２に対してRXAck（ｈ）を発行する。上記ＤＭＡＣ２は，このRXAck（ｈ）を受けとることにより，上記Ｉ／Ｆ６からの読み出し動作を完了する。
【００１１】
次に，図２のブロック図及び図４のタイミングチャートを用いて，上記情報処理装置７から送り出されて上記Ｉ／Ｆ６に到達したが内部バス８に読み出されたデータをメモリコントローラ４に書き込む動作（Ｗｒｉｔｅ動作）について説明する。
上記RXAck（ｈ）を受けとることにより読み出し動作が完了すると，続いてＤＭＡＣ２により書き込み動作が行われる。まず，上記ＤＭＡＣ２により，上記内部バス８の調停器４１に対して，読み出されたデータをメモリコントローラ４に書き込むためにTXVld（ｅ）が発行（アサート）され，これと同時にTXD2を内部バス８に送信する。このTXD2は，内部バス８内のデータをメモリコントローラ２に書き込むために必要な情報，即ち，データの書き込み先（転送先）であるメモリコントローラ４のアドレス情報，転送データのデータサイズ等の情報が含まれたデータである。上記TXVld（ｅ）が発行され，上記TXD2が上記調停器４１による受け取られると，調停器４１は実際に全データがメモリコントローラ４に書き込まれたか否かに関わらず，上記ＤＭＡＣ２に対してTXAck（ｆ）を発行する。
上記調停器４１により上記TXVld（ｅ）及び上記TXD2が受け取られると，上記調停器４１は，TXD2内の転送先アドレスやデータサイズ等の情報を参照して，メモリコントローラ４に対してTXVld（ｋ）を発行する。これにより，上記メモリコントローラ４は内部バス８内のデータを受け取り，データの受信が完了すると上記内部バスに対してTXAck（ｌ）が発行される。上記調停器４１はこのTXAck（ｌ）を受けとることにより，上記メモリコントローラ４へのデータの書き込み動作が完了する。尚，転送されたデータは，最終的に上記メモリコントローラ４によりメモリ５に書き込まれる。
【００１２】
従来は，上記ＤＭＡＣ２が上記TXAck（ｆ）を受け取ることによりデータの転送が完了したとみなして，或いは，上記TXAck（ｆ）の受信後所定時間経過した後にデータの転送が完了したとみなして上記ＣＰＵ３に対して割込信号を送信していた。しかし，本発明の実施形態に係るＤＭＡＣ２は，該ＤＭＡＣ２によって上記Ｉ／Ｆ６（データの転送元）から最終データが読み出された後に，上記ＤＭＡＣ２によって上記最終データを上記メモリコントローラ４（データの転送先）に書き込むためのTXVld（ｅ）（書込信号）が上記内部バス８に出力され，この内部バス８から出力されたTXAck（ｆ）（上記書込信号に対する書込応答信号）を上記ＤＭＡＣ２が受信した後に，上記ＤＭＡＣ２から上記メモリコントローラ４（データの転送先）に送信されたRXVld（ｃ２）（応答要求信号）に応じて上記データの転送先から出力されたRXAck（j）（応答信号）を上記内部バス８を介して該ＤＭＡＣ２が受信したことを条件に，上記内部バス８の占有を開放する割込信号が上記ＣＰＵ３に出力されるため，データが上記Ｉ／Ｆ６から上記メモリコントローラ４に完全に書き込まれた（転送された）時点でＣＰＵ３に割込信号が出力される。
具体的には，まず，上記ＤＭＡＣ２は上記TXAck（ｆ）を受信したことをデータ転送の完了とみなさずに，このTXAck（ｆ）を受信した直後に上記メモリコントローラ４に対して上述の読み出し動作を行う。即ち，上記ＤＭＡＣ２は，上記調停器４１に対して上記メモリコントローラ４内のデータを読み出すためにRXVld（ｃ２）を発行し，これと同時にTXD3（メモリコントローラ４のアドレス情報，データサイズ，上記ＤＭＡＣ２自身のアドレス情報等のデータ）を内部バス８に送信し，その後，上記メモリコントローラ４からRXAck（ｊ）が発行され，これを受信するまで待機する。本実施形態に係るＤＭＡＣ２は，従来とは異なり，このRXAck（ｊ）を受信することにより，データの転送が完了したとみなして，受信後に上記ＣＰＵ３に対して割込信号を送信するものである。尚，上述したように，上記調停器４１は，上記ＤＭＡＣ２やＣＰＵ３等からの要求或いは信号を受信した順番に内部バス８の使用を認めるものであるため，上記調停器４１に対するデータ転送の要求後になされた上記応答要求信号に対する応答信号が上記ＤＭＡＣ２により確認されれば，先に行われたデータ転送が既に完了しているとみなすことができる。
このように，上記メモリコントローラ４から上記ＤＭＡＣ２に出力された上記応答信号の受信を条件に上記ＣＰＵ３に対して上記割込信号を出力することにより，ＣＰＵによる誤動作や誤処理が生じず，信頼性の高いＤＭＡ転送を実現することが可能となり，また，ＣＰＵの処理開始時期が遅延するという問題も解消され得る。
【産業上の利用可能性】
【００１３】
本ＤＭＡ転送装置は，画像処理装置，画像形成装置において画像データの転送装置として利用可能である。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施の形態にＤＭＡ転送装置が搭載されたＡＳＩＣの内部の概略構成を示すブロック図。
【図２】ＤＭＡ転送装置及びメモリコントローラと内部バスとのインターフェースを示すブロック図。
【図３】内部バスの構造を示す図。
【図４】ＤＭＡ転送装置等において入出力される信号のタイミングチャート。
【符号の説明】
【００１５】
１…ＡＳＩＣ
２…ＤＭＡ転送装置（ＤＭＡＣ）
３…ＣＰＵ
４…メモリコントローラ
５…メモリ
６…外部インターフェース
７…情報処理装置
８…内部バス
４１…調停器
４２…ＦＩＦＯメモリ
４３…デコーダ
【図１】
2005128931.tif 000003
【図２】
2005128931.tif 000004
【図３】
2005128931.tif 000005
【図４】
2005128931.tif 000006