(57)【要約】【課題】１回のＤＭＡ転送の起動により複数回のＤＭＡ転送を実行し、かつＣＰＵのポーリングによらずに、複数回のＤＭＡ転送の終了をＣＰＵに通知すること。【解決手段】データを記憶するＲＡＭ２と、ＲＡＭ２にアクセスしてＤＭＡ転送をおこなうＤＭＡコントローラ１と、ＤＭＡコントローラ１に内蔵され、ＤＭＡコントローラ１による１回のＤＭＡ転送の対象となるデータの先頭アドレスおよびデータ長をそれぞれ格納する複数のレジスタよりなる起動レジスタ群１１と、起動レジスタ群１１にアクセスして前記先頭アドレスおよび前記データ長を保存するとともに、ＤＭＡ転送の起動を決定するＣＰＵ３と、ＤＭＡコントローラ１に内蔵され、複数回のＤＭＡ転送の終了後に、ＣＰＵ３に対して割り込みを発生する割り込み発生部１２と、を具備する。【選択図】      図１
2004287654.tif 000002
【特許請求の範囲】
【請求項１】
データを記憶するメインメモリと、
前記メインメモリにアクセスしてＤＭＡ転送をおこなうＤＭＡ制御手段と、
前記ＤＭＡ制御手段に内蔵され、前記ＤＭＡ制御手段による１回のＤＭＡ転送の対象となるデータを特定する情報をそれぞれ格納する複数のレジスタよりなる起動レジスタ群と、
前記起動レジスタ群にアクセスしてＤＭＡ転送の対象となるデータを特定する情報を保存するとともに、ＤＭＡ転送の起動を決定するＣＰＵと、
前記ＤＭＡ制御手段に内蔵され、複数回のＤＭＡ転送の終了後に、前記ＣＰＵに対して割り込みを発生する割り込み発生手段と、
を具備することを特徴とするＤＭＡ転送装置。
【請求項２】
データを記憶するメインメモリと、
前記メインメモリにアクセスしてＤＭＡ転送をおこなうＤＭＡ制御手段と、
前記ＤＭＡ制御手段に内蔵され、前記ＤＭＡ制御手段による１回のＤＭＡ転送の対象となるデータを特定する情報をそれぞれ格納する複数のレジスタよりなる起動レジスタ群と、
前記起動レジスタ群にアクセスしてＤＭＡ転送の対象となるデータを特定する情報を保存するとともに、複数回のＤＭＡ転送の起動を決定するＣＰＵと、
前記ＤＭＡ制御手段に内蔵され、１回のＤＭＡ転送が終了するごとに、前記ＣＰＵに対して割り込みを発生する割り込み発生手段と、
を具備することを特徴とするＤＭＡ転送装置。
【請求項３】
前記起動レジスタ群はＦＩＦＯ形式のレジスタ群であることを特徴とする請求項１または２に記載のＤＭＡ転送装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＤＭＡ転送装置に関し、特に表示部、印刷部および撮像部などのハードウェア資源を有し、画像情報のデジタル処理をおこなうデジタル複写機、スキャナ、プリンタまたはファクシミリなどのサービスに必要となる共通的な画像処理、転送装置におけるＤＭＡ転送装置に関する。
【０００２】
【従来の技術】
従来のＤＭＡ転送装置では、複数回のＤＭＡ（ダイレクトメモリアクセス）転送をおこなう場合、ＤＭＡコントローラは、１回のＤＭＡ転送が終わるごとにフラグを立てて、ＤＭＡ転送の終了をＣＰＵに知らせ、ＣＰＵからの再度のＤＭＡ起動を待機していた。ＣＰＵは、ＤＭＡコントローラにＤＭＡ転送の起動命令を発行した後、前記フラグを見にいくことにより、１回のＤＭＡ転送の終了を知り、再びＤＭＡコントローラにＤＭＡ転送の起動命令を発行していた。
【０００３】
しかし、上述したようなＤＭＡ転送方式では、ＣＰＵはフラグレジスタをポーリングし、ループ処理などにより常時前記フラグを読み出す必要がある。そのため、ＣＰＵがその他の処理に割り当てることができる時間が短くなり、ＣＰＵの処理効率が悪くなってしまう。また、１回のＤＭＡ転送ごとにＣＰＵからの起動を待つため、複数回分のＤＭＡ転送の速度は遅くなってしまう。
【０００４】
そこで、複数回のＤＭＡ転送時に、その複数回分のＤＭＡ転送に必要な先頭アドレスとデータ長の情報を、複数のレジスタに設定しておき、１回のＤＭＡ起動命令に基づいて複数回のＤＭＡ転送を実行するようにしたＤＭＡコントローラが公知である（特許文献１参照。）。この特許文献１に開示されたＤＭＡコントローラによれば、ＣＰＵの負担を軽減し、より速いＤＭＡ転送を実現することができる。
【０００５】
【特許文献１】
特開平１１−１３４２８６号公報
【０００６】
【発明が解決しようとする課題】
しかしながら、前記特許文献１に開示された技術では、ＣＰＵに複数回のＤＭＡ転送の終了を知らせる手段としてフラグを用いているため、ＣＰＵはフラグレジスタに対してポーリングをおこなう必要があり、ＣＰＵの負担が十分に軽減されているとはいえないという問題点があった。
【０００７】
本発明は、上記問題点を解決するためになされたもので、１回のＤＭＡ転送の起動により複数回のＤＭＡ転送を実行し、かつＣＰＵのポーリングによらずに、複数回のＤＭＡ転送の終了をＣＰＵに通知するＤＭＡ転送装置を提供することを目的とする。
【０００８】
【課題を解決するための手段】
上述した課題を解決し、目的を達成するため、請求項１に記載の発明にかかるＤＭＡ転送装置は、データを記憶するメインメモリと、前記メインメモリにアクセスしてＤＭＡ転送をおこなうＤＭＡ制御手段と、前記ＤＭＡ制御手段に内蔵され、前記ＤＭＡ制御手段による１回のＤＭＡ転送の対象となるデータを特定する情報をそれぞれ格納する複数のレジスタよりなる起動レジスタ群と、前記起動レジスタ群にアクセスしてＤＭＡ転送の対象となるデータを特定する情報を保存するとともに、ＤＭＡ転送の起動を決定するＣＰＵと、前記ＤＭＡ制御手段に内蔵され、複数回のＤＭＡ転送の終了後に、前記ＣＰＵに対して割り込みを発生する割り込み発生手段と、を具備することを特徴とする。
【０００９】
この請求項１に記載の発明によれば、ＣＰＵが起動レジスタ群の複数のレジスタに、複数回のＤＭＡ転送をおこなうために必要な、ＤＭＡ転送の対象となるデータを特定する情報をそれぞれ格納し、ＤＭＡ転送の起動を決定すると、一度の起動で、複数のブロックのＤＭＡ転送が連続しておこなわれる。また、複数回のＤＭＡ転送が終了すると、ＣＰＵに対して割り込みが発生する。
【００１０】
また、請求項２に記載の発明にかかるＤＭＡ転送装置は、データを記憶するメインメモリと、前記メインメモリにアクセスしてＤＭＡ転送をおこなうＤＭＡ制御手段と、前記ＤＭＡ制御手段に内蔵され、前記ＤＭＡ制御手段による１回のＤＭＡ転送の対象となるデータを特定する情報をそれぞれ格納する複数のレジスタよりなる起動レジスタ群と、前記起動レジスタ群にアクセスしてＤＭＡ転送の対象となるデータを特定する情報を保存するとともに、複数回のＤＭＡ転送の起動を決定するＣＰＵと、前記ＤＭＡ制御手段に内蔵され、１回のＤＭＡ転送が終了するごとに、前記ＣＰＵに対して割り込みを発生する割り込み発生手段と、を具備することを特徴とする。
【００１１】
この請求項２に記載の発明によれば、ＣＰＵが起動レジスタ群の複数のレジスタに、複数回のＤＭＡ転送をおこなうために必要な、ＤＭＡ転送の対象となるデータを特定する情報をそれぞれ格納し、ＤＭＡ転送の起動を決定すると、一度の起動で、複数のブロックのＤＭＡ転送が連続しておこなわれる。また、１回のＤＭＡ転送が終了するごとに、ＣＰＵに対して割り込みが発生する。
【００１２】
また、請求項３に記載の発明にかかるＤＭＡ転送装置は、請求項１または２に記載の発明において、前記起動レジスタ群はＦＩＦＯ形式のレジスタ群であることを特徴とする。
【００１３】
この請求項３に記載の発明によれば、ＦＩＦＯ形式の起動レジスタ群に、ＤＭＡ転送の対象となるデータを特定する情報が格納されると、自動的にＤＭＡ転送が開始される。そして、その実行中のＤＭＡ動作が完全に終了する前に、起動レジスタ群に、新たにＤＭＡ転送の対象となるデータを特定する情報が格納されると、実行中のＤＭＡ動作を完全に終了させることなく、引き続きつぎのＤＭＡ起動がおこなわれる。
【００１４】
【発明の実施の形態】
以下に添付図面を参照しながら、本発明にかかるＤＭＡ転送装置の好適な実施の形態を詳細に説明する。
【００１５】
図１は、本発明にかかるＤＭＡ転送装置の構成の一例を示すブロック図である。図１において、符号１は、ＤＭＡ制御手段としての機能を有するＤＭＡコントローラである。符号２は、メインメモリとなるＲＡＭ（ランダム・アクセス・メモリ）である。符号３はＣＰＵ（中央処理装置）であり、符号４は、ＣＰＵ３で実行されるプログラムを格納したＲＯＭ（リード・オンリー・メモリ）である。符号５はメモリコントローラであり、符号６はＩ／Ｏデバイス（入出力装置）である。
【００１６】
ＤＭＡコントローラ１、ＣＰＵ３、ＲＯＭ４およびメモリコントローラ５は、第１のバス７を介して互いに接続されている。ＲＡＭ２は、第２のバス８を介してメモリコントローラ５に接続されている。Ｉ／Ｏデバイス６は、第３のバス９を介してＤＭＡコントローラ１に接続されている。
【００１７】
ＲＡＭ２とＩ／Ｏデバイス６との間のデータの授受は、ＤＭＡコントローラ１により制御される。すなわち、ＤＭＡコントローラ１は、メモリコントローラ５を介してＲＡＭ２からデータを読み出し、そのデータをＩ／Ｏデバイス６へＤＭＡ転送する。また、ＤＭＡコントローラ１は、Ｉ／Ｏデバイス６から供給されたデータを、メモリコントローラ５を介してＲＡＭ２へＤＭＡ転送し、そのデータをＲＡＭ２に書き込む。
【００１８】
また、ＤＭＡコントローラ１は、起動レジスタ群１１と、割り込み発生手段としての機能を有する割り込み発生部１２を備えている。図２は、起動レジスタ群１１とＲＡＭ２との対応関係を模式的に示すブロック図である。図２に示すように、起動レジスタ群１１は、第１の先頭アドレスレジスタ１３および第１のデータ長レジスタ１４よりなる第１ブロックのレジスタ、第２の先頭アドレスレジスタ１５および第２のデータ長レジスタ１６よりなる第２ブロックのレジスタ、第３の先頭アドレスレジスタ１７および第３のデータ長レジスタ１８よりなる第３ブロックのレジスタ、・・・を備えている。
【００１９】
第１の先頭アドレスレジスタ１３には、ＲＡＭ２の第１のデータバッファ２１の先頭アドレスが指定される。第１のデータ長レジスタ１４には、第１のデータバッファ２１から読み出されるデータの長さが指定される。第２の先頭アドレスレジスタ１５および第２のデータ長レジスタ１６には、それぞれＲＡＭ２の第２のデータバッファ２２の先頭アドレスおよびデータ長が指定される。第３の先頭アドレスレジスタ１７および第３のデータ長レジスタ１８には、それぞれＲＡＭ２の第３のデータバッファ２３の先頭アドレスおよびデータ長が指定される。以下、図示省略するが、同様である。
【００２０】
つぎに、ＤＭＡコントローラ１により実行されるＤＭＡ転送処理の実施例１を、図３を参照しながら説明する。実施例１では、割り込み発生部１２は、複数回のＤＭＡ転送の終了後に、ＣＰＵ３に対して割り込みを発生する機能を備えている。なお、以下の説明では、Ｎを２以上の整数とする。
【００２１】
ＤＭＡ転送処理が開始されると、まず、ＣＰＵ３により、起動レジスタ群１１内のＮ個のブロックのレジスタに、それぞれＲＡＭ２のＮ個のデータバッファ２１，２２，２３，・・・に対応する先頭アドレスとデータ長が設定される（ステップＳ３１）。ついで、ＣＰＵ３からＤＭＡ転送開始の命令が発行される。
【００２２】
ＤＭＡコントローラ１は、ＤＭＡ転送開始命令を受け取ると（ステップＳ３２）、第１の先頭アドレスレジスタ１３と第１のデータ長レジスタ１４の格納値に基づいて、第１のデータバッファ２１から所望の長さのデータを読み出し、そのデータをＩ／Ｏデバイス６へＤＭＡ転送する。つづいて、ＤＭＡコントローラ１は、第２の先頭アドレスレジスタ１５と第２のデータ長レジスタ１６の格納値に基づいて、第２のデータバッファ２２から所望の長さのデータを読み出し、そのデータをＩ／Ｏデバイス６へＤＭＡ転送する。
【００２３】
このようにして、ＤＭＡコントローラ１は、ＲＡＭ２のＮ個のデータバッファ２１，２２，２３，・・・のデータをＩ／Ｏデバイス６へＤＭＡ転送する（ステップＳ３３）。Ｎ回のＤＭＡ転送が完了すると、ＤＭＡコントローラ１は、ＣＰＵ３に対して割り込みを発生して転送終了を通知し（ステップＳ３４）、ＤＭＡ転送処理を終了する。
【００２４】
つぎに、ＤＭＡコントローラ１により実行されるＤＭＡ転送処理の実施例２を、図４を参照しながら説明する。実施例２では、割り込み発生部１２は、ＤＭＡ転送が１回終了するごとに、ＣＰＵ３に対して割り込みを発生する機能を備えている。
【００２５】
ＤＭＡ転送処理が開始されると、まず、ＣＰＵ３により、起動レジスタ群１１内のＮ個のブロックのレジスタに、それぞれＲＡＭ２のＮ個のデータバッファ２１，２２，２３，・・・に対応する先頭アドレスとデータ長が設定される（ステップＳ４１）。ついで、ＣＰＵ３からＤＭＡ転送開始の命令が発行される。
【００２６】
ＤＭＡコントローラ１は、ＤＭＡ転送開始命令を受け取ると（ステップＳ４２）、第１の先頭アドレスレジスタ１３と第１のデータ長レジスタ１４の格納値に基づいて、第１のデータバッファ２１から所望の長さのデータを読み出し、そのデータをＩ／Ｏデバイス６へＤＭＡ転送する（ステップＳ４３）。そして、ＤＭＡコントローラ１は、Ｎ個のブロック転送が完了するまで（ステップＳ４４：ＮＯ）、ＣＰＵ３に対して割り込みを発生して、１回のＤＭＡ転送が終了したことを通知する（ステップＳ４６）。
【００２７】
ついで、ＤＭＡコントローラ１は、第２の先頭アドレスレジスタ１５と第２のデータ長レジスタ１６の格納値に基づいて、第２のデータバッファ２２から所望の長さのデータを読み出し、そのデータをＩ／Ｏデバイス６へＤＭＡ転送する（ステップＳ４３）。そして、ＤＭＡコントローラ１は、Ｎ個のブロック転送が完了するまで（ステップＳ４４：ＮＯ）、ＣＰＵ３に対して割り込みを発生する（ステップＳ４６）。
【００２８】
このように、ＤＭＡコントローラ１は、１回のＤＭＡ転送と割り込みの発生を繰り返す。そして、ＤＭＡコントローラ１は、Ｎ回目のＤＭＡ転送の完了後（ステップＳ４４：ＹＥＳ）、ＣＰＵ３に対して割り込みを発生して転送終了を通知し（ステップＳ４５）、ＤＭＡ転送処理を終了する。
【００２９】
このようにすると、ＣＰＵ３は、現在ＤＭＡ転送されているデータが何番目のレジスタに設定されているデータバッファのデータであるのかということを認識することができる。
【００３０】
つぎに、ＤＭＡコントローラ１により実行されるＤＭＡ転送処理の実施例３を、図５を参照しながら説明する。実施例３では、起動レジスタ群１１はＦＩＦＯ（ファーストイン・ファーストアウト）形式のレジスタにより構成されている。なお、以下の説明では、ＬおよびＭをＮよりも小さい整数とする。
【００３１】
ＤＭＡ転送処理が開始され、ＣＰＵ３により、起動レジスタ群１１内のＮ個のブロックのレジスタのうち１個に、ＲＡＭ２の１個のデータバッファ２１に対応する先頭アドレスとデータ長が設定されると、ＤＭＡコントローラ１は、ＤＭＡ転送を開始する（ステップＳ５１）。このとき、起動レジスタ群１１内のＮ−１個のブロックのレジスタが空いているので、つづけてＮ−１個のデータバッファ２２，２３，・・・に対応する先頭アドレスとデータ長の設定が可能である。
【００３２】
Ｎ−１個のブロックのレジスタに先頭アドレスとデータ長が設定され、ＤＭＡコントローラ１が、Ｍ個のデータバッファ２２，２３，・・・のデータをＩ／Ｏデバイス６へＤＭＡ転送したときに（ステップＳ５２）、新たにＬ個のデータをＩ／Ｏデバイス６へ転送する必要が生じたとする（ステップＳ５３：ＹＥＳ）。
【００３３】
この場合、ＣＰＵ３は、実行中のＤＭＡ転送が終了するのを待たずに、起動レジスタ群１１内の空いているブロックのレジスタに、Ｌ個分の先頭アドレスとデータ長を追加する（ステップＳ５６）。そして、ＤＭＡコントローラ１は、ＤＭＡ転送をつづけておこなう（ステップＳ５３）。Ｎ＋Ｌ回のＤＭＡ転送が完了すると（ステップＳ５３：ＮＯ，ステップＳ５４）、ＤＭＡコントローラ１は、ＣＰＵ３に対して割り込みを発生して転送終了を通知し（ステップＳ５５）、ＤＭＡ転送処理を終了する。
【００３４】
このようにすると、ＤＭＡの連続起動を自動的におこなうことができ、かつＤＭＡ動作を完全に終了させることなく、つぎの連続のＤＭＡ起動をおこなうことができる。
【００３５】
上述した実施の形態によれば、ＣＰＵ３が、起動レジスタ群１１に複数組みの先頭アドレスおよびデータ長を設定し、ＤＭＡ転送の起動を決定すると、一度の起動で、複数回のＤＭＡ転送が連続しておこなわれる。したがって、ＤＭＡ転送中のＣＰＵ３の負担を軽減することができるとともに、より速いＤＭＡ転送を実現することができる。また、複数回のＤＭＡ転送が終了すると、ＣＰＵ３に対して割り込みが発生するので、フラグレジスタに対するＣＰＵのポーリングが不要となり、ＣＰＵ３の負担をさらに軽減することができる。
【００３６】
以上において本発明は、上述した実施の形態に限らず、種々変更可能である。たとえば、実施例２と実施例３を組み合わせて、ＤＭＡの連続起動を自動的におこなうとともに、１回のＤＭＡ転送が終了するごとに、ＣＰＵ３に対して割り込みが発生する構成としてもよい。
【００３７】
【発明の効果】
以上説明したように、請求項１に記載の発明によれば、１回のＤＭＡ転送の起動により複数回のＤＭＡ転送を連続して実行し、かつ複数回のＤＭＡ転送の終了を割り込み発生によってＣＰＵに通知できるという効果を奏する。
【００３８】
また、請求項２に記載の発明によれば、１回のＤＭＡ転送の起動により複数回のＤＭＡ転送を連続して実行し、かつ１回のＤＭＡ転送の終了を割り込み発生によってＣＰＵに通知できるという効果を奏する。
【００３９】
また、請求項３に記載の発明によれば、請求項１または２に記載の発明において、ＤＭＡの連続起動を自動的におこなうことができるという効果を奏する。
【図面の簡単な説明】
【図１】本発明にかかるＤＭＡ転送装置の構成の一例を示すブロック図である。
【図２】本発明にかかるＤＭＡ転送装置の起動レジスタ群とメインメモリとの対応関係を模式的に示すブロック図である。
【図３】本発明にかかるＤＭＡ転送装置により実行されるＤＭＡ転送処理の実施例１を示すフローチャートである。
【図４】本発明にかかるＤＭＡ転送装置により実行されるＤＭＡ転送処理の実施例２を示すフローチャートである。
【図５】本発明にかかるＤＭＡ転送装置により実行されるＤＭＡ転送処理の実施例３を示すフローチャートである。
【符号の説明】
１  ＤＭＡ制御手段（ＤＭＡコントローラ）
２  メインメモリ（ＲＡＭ）
３  ＣＰＵ
１１  起動レジスタ群
１２  割り込み発生手段（割り込み発生部）
【図１】
2004287654.tif 000003
【図２】
2004287654.tif 000004
【図３】
2004287654.tif 000005
【図４】
2004287654.tif 000006
【図５】
2004287654.tif 000007