(57)【要約】【課題】  ＣＰＵの負担を増大させることなく、メモリがすぐにフルの状態になることを防止する。【解決手段】  ＤＭＡＣ２は、ディスクリプタによって制御され、当該ディスクリプタには、インターバルデータが含まれている。また、ＤＭＡＣ２は、遮断回路２１を備え、インターバルデータが示す時間分、外部ＰＣ２０からのＤＭＡリクエスト信号Ｓ１を遮断し、転送禁止期間を形成する。そのため、転送禁止期間において、外部ＰＣ２０からＤＭＡＣ２に対して出力されたＤＭＡリクエスト信号Ｓ１は、転送禁止期間終了後にＤＭＡ転送実行部２２に導かれる。【選択図】      図１
2005100247.tif 000002
【特許請求の範囲】
【請求項１】
ＤＭＡコントローラを制御するための種々のデータを含む制御情報に応じてＤＭＡ転送を実行するＤＭＡコントローラであって、
前記制御情報は、ＤＭＡ転送を禁止する期間を定める禁止期間データを含み、
周辺機器からのＤＭＡリクエスト信号を受信してＤＭＡ転送を開始するＤＭＡ転送実行手段と、
前記禁止期間データが示す期間中、前記ＤＭＡ転送実行手段に対する前記ＤＭＡリクエスト信号を遮断する遮断手段とを備えることを特徴とするＤＭＡコントローラ。
【請求項２】
前記禁止期間データは、ＤＭＡ転送先のメモリの空き容量に応じて、変更可能であることを特徴とする請求項１記載のＤＭＡコントローラ。
【請求項３】
前記遮断手段は、周辺機器からのＤＭＡリクエスト信号を前記ＤＭＡ転送実行手段に導く導通期間と、前記転送禁止期間とを周期的に切替えることを特徴とする請求項１又は２記載のＤＭＡコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークプリンタ等の装置に用いられるＤＭＡコントローラに関するものである。
【背景技術】
【０００２】
ネットワークプリンタは、外部ＰＣ（personal computer）から送信された印刷データを、一旦、メモリに格納し、メモリから印刷データを順次読み出して印刷を実行していく。この場合、ＰＣからの印刷データは、ネットワークプリンタが備えるＤＭＡコントローラの制御の下、ＤＭＡ（direct memory access）転送によりメモリに格納されていく。
【０００３】
メモリの容量には限界があるため、一度に多量の印刷データを受信した場合、メモリは、すぐにフルの状態に陥ってしまう。メモリがフルの状態になると、ネットワークプリンタは、ＰＣからの印刷データを受信することができない。そして、かかる状態が一定期間続くと、ＰＣは、ネットワークプリンタに異常が発生したと認識し、自ら印刷データの送信を中止する（タイムアウトする）のが一般的である。かかるタイムアウトを防止するために、従来のネットワークプリンタでは、例えば、メモリの空き容量が残り少なくなったとき、転送方式を、ＤＭＡ転送からＣＰＵが直接データの転送制御を行うＰＩＯ(programmed I/O)転送に切替え、ソフトウェアタイマを用いてＰＣからの印刷データの受信速度を低下させ、メモリがすぐにメモリフルの状態にならないようにしていた。
【特許文献１】特開平１１−５３１３１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、ＰＩＯ転送に切替え、ソフトウェアタイマを用いて受信速度を調節した場合、ＤＭＡコントローラに代わってＣＰＵが直接、印刷データの転送を制御しなければならず、その分、ＣＰＵの負担が増大してしまい、ネットワークプリンタ全体のパフォーマンスが低下するという問題がある。
【０００５】
また、メモリには、印刷データ以外のＣＰＵが処理すべきデータが格納されるのが一般的であることから、空きメモリが少ないということは、それだけ、ＣＰＵは処理すべきデータが多いことを示しており、かかる状況において、ＰＩＯ転送に切替えてしまうと、ＣＰＵへの負担はさらに増大し、ネットワークプリンタのさらなるパフォーマンスの低下を招来してしまう。
【０００６】
本発明は、上記課題を解決するためになされたものであり、ＣＰＵの負担を増大させることなく、メモリがすぐにフルの状態になることを防止することができるＤＭＡコントローラを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明に係るＤＭＡコントローラは、ＤＭＡコントローラを制御するための種々のデータを含む制御情報に応じてＤＭＡ転送を実行するＤＭＡコントローラであって、前記制御情報は、ＤＭＡ転送を禁止する期間を定める禁止期間データを含み、周辺機器からのＤＭＡリクエスト信号を受信してＤＭＡ転送を開始するＤＭＡ転送実行手段と、前記禁止期間データが示す期間中、前記ＤＭＡ転送実行手段に対する前記ＤＭＡリクエスト信号を遮断する遮断手段とを備えることを特徴とする。
【０００８】
また、前記禁止期間データは、ＤＭＡ転送先のメモリの空き容量に応じて、変更可能であることが好ましい。
【０００９】
また、前記遮断手段は、周辺機器からのＤＭＡリクエスト信号を前記ＤＭＡ転送実行手段に導く導通期間と、前記転送禁止期間とを周期的に切替えることが好ましい。
【発明の効果】
【００１０】
請求項１記載の発明によれば、制御情報には、転送禁止期間データが含まれており、この転送禁止期間データが示す時間中、ＤＭＡ転送の実行が禁止されるため、メモリがすぐに、フルの状態になることを防止することができる。
【００１１】
請求項２記載の発明によれば、メモリの空き容量に応じて、ＤＭＡ転送開始の遅延時間を変更することができるため、メモリがすぐにフルの状態になることを防止しつつ、高速なＤＭＡ転送を実現することができる。
【００１２】
請求項３記載の発明によれば、導通期間と転送禁止期間とが周期的に実行され、転送禁止期間は転送禁止期間データにより設定されるため、転送禁止期間データの値に応じて、導通期間と転送禁止期間との比率が決定され、ＤＭＡの転送速度を調節することができる。
【発明を実施するための最良の形態】
【００１３】
図１は、本発明に係るＤＭＡコントローラをネットワークプリンタに適用したときの、ネットワークプリンタ１０の電気的な構成と、ネットワークプリンタ１０に対し通信回線を介して接続された外部ＰＣ２０とを示すブロック図である。ネットワークプリンタ１０は、ＣＰＵ１、ＤＭＡコントローラ（ＤＭＡＣ）２、ＲＡＭ（ランダムアクセスメモリ）３、ＲＯＭ（リードオンリーメモリ）４、通信インターフェイス（通信Ｉ／Ｆ）５、記録部６及び画像処理部７等を備えている。バスライン８は、アドレスバス、データバス、コントロールバスを備え、ＣＰＵ１〜画像処理部７は、それぞれ、バスライン８を介して種々のデータが相互に送受信可能に接続されている。なお、バスライン８において、アドレスバス及びデータバスは、物理的に１本のバスを時分割的に使用することで実現してもよい。
【００１４】
ＲＡＭ３は、ＣＰＵ１の作業領域として用いられ、ＣＰＵ１の制御の下、外部ＰＣ２０から送信された印刷データ、画像処理部７によって処理された印刷画像及びＤＭＡＣ２を制御するためのディスクリプタ（制御情報）等を記憶する。図２は、ディスクリプタのデータ構造を示した図である。ディスクリプタは、ＤＭＡ転送において、転送対象データが格納されているアドレスを示す転送元アドレスＤ１と、転送対象データが転送される転送先のアドレスを示す転送先アドレスＤ２と、本ディスクリプタによって転送されるデータのサイズを示すサイズデータＤ３と、ＤＭＡＣ２が次に参照すべきディスクリプタが格納されているＲＡＭ３のアドレスを示すネクストディスクリプタアドレスＤ４と、次のディスクリプタを参照すべきか否かを示す制御データＤ５とを備えている。
【００１５】
さらに、ディスクリプタは、ＤＭＡ転送が不可能な期間である転送禁止期間を示すインターバルデータ（禁止期間データ）Ｄ７を備えている。このインターバルデータＤ７は、ＲＡＭ３の空き容量に応じて、ＣＰＵ１によって随時書き換えられる。その他、ディスクリプタは、格納すべきデータが定義されている定義領域Ｄ６及び格納すべきデータが定義されていない未定義領域Ｄ８及びＤ９を含んでいる。なお、図２に示すディスクリプタのデータ構造は、本発明に用いられるディスクリプタの一例であり、他のデータを含ませる、あるいは、いずれか１又は複数のデータを省略してもよく、特に、定義領域Ｄ６及び未定義領域Ｄ８及びＤ９は、省略可能である。また、本実施形態では、転送元アドレスＤ１〜ネクストディスクリプタアドレスＤ４及びインターバルデータＤ７〜未定義領域Ｄ９の各データは各々３２ビットとしているが、本発明は、これに限定されず、１６ビット、６４ビット等、他のビット数としても良い。さらに、制御データＤ５及び定義領域Ｄ６のデータの合計ビット数を、３２ビットとしているが、これに限定されず、他のデータと同様のビット数としてもよい。さらに、転送元アドレスＤ１〜未定義領域Ｄ９に示す各データは、それぞれ異なるビット数であってもよい。なお、ＲＡＭ３は、図２に示すようなディスクリプタを複数記憶しており、ネクストディスクリプタアドレスＤ４によってリンクされている。
【００１６】
ＲＯＭ４は、ネットワークプリンタ１０を統括制御する制御プログラムを記憶しており、ＣＰＵ１は、この制御プログラムを実行することで、ネットワークプリンタ１０全体を制御する。制御プログラムには、ＲＡＭ３を管理するためのメモリ管理プログラムが含まれており、ＣＰＵ１は、このプログラムを実行することにより、ＲＡＭ３の空き容量を知ることができる。
【００１７】
通信Ｉ／Ｆ５は、例えば、ＣＳＭＡ／ＣＤ方式に対応するＬＡＮボードであり、１０ＢＡＳＥ／Ｔ等のＬＡＮケーブルが接続可能なポートを備え、外部ＰＣ２０から出力される印刷データ等の種々のデータ受信するとともに、外部ＰＣ２０に対して種々のデータを出力する。
【００１８】
記録部６は、感光体ドラム、記録紙を搬送する搬送機構、現像装置、中間転写体ローラ及び定着装置等を含み、画像処理部７によって処理された印刷画像を、例えばインク又はトナーを用いて記録紙に形成する。画像処理部７は、印刷データから印刷画像を作成するとともに、作成した印刷画像に対し、例えばγ変換、色空間変換及び圧縮処理等の種々の画像処理を施す。
【００１９】
ＤＭＡＣ２は、周辺機器からＤＭＡ転送実行部２２に対して送信されるＤＭＡリクエスト信号Ｓ１を遮断する遮断回路２１と、周辺機器からの転送対象データをＲＡＭ３にＤＭＡ転送するＤＭＡ転送実行部２２とを備えている。遮断回路２１は、ＤＭＡリクエスト信号Ｓ１を遮断する期間（転送禁止期間）をカウントする遮断カウンタ２１１と、ＤＭＡリクエスト信号Ｓ１を導通する期間（導通期間）をカウントする導通カウンタ２１２と、ＤＭＡリクエスト信号Ｓ１の遮断及び導通を行なうスイッチ２１３等を含む。
【００２０】
ＤＭＡ転送実行部２２は、ディスクリプタを格納するレジスタ２２１と、ＤＭＡ転送されるデータの転送データ量をカウントするデータカウンタ２２２等を含み、ＤＭＡＣ２を統括制御する。
【００２１】
次に、図３に示すフローチャートにしたがって、外部ＰＣ２０からの印刷データをＤＭＡデータ転送する場合のＤＭＡＣ２の動作について説明する。この動作を開始するにあたり、レジスタ２２１に予めデフォルトのディスクリプタが格納されているとする。
【００２２】
まず、ＤＭＡ転送実行部２２により、当該ディスクリプタに記載されたインターバルデータＤ７が遮断カウンタ２１１にセットされる（ステップＳ１）。
【００２３】
次いで、スイッチ２１３がＯＦＦとされ（ステップＳ２）、遮断カウンタ２１１のカウンタ値が０であるか否かが判定され（ステップＳ３）、遮断カウンタ２１１が０でない場合（ステップＳ３でＮＯ）、カウンタ値が１減算されて更新される（ステップＳ４）。この期間（転送禁止期間）において、外部ＰＣ２０からＤＭＡ転送実行部２２に対して出力されるＤＭＡリクエスト信号Ｓ１は遮断される。
【００２４】
次いで、転送禁止期間が終了すると、スイッチ２１３がＯＮとされ（ステップＳ５）、導通カウンタ２１２のカウント動作が開始される（ステップＳ６）。次いで、導通カウンタ２１２のカウンタ値が０であるか否かが判定され（ステップＳ７）、カウンタ値が０でない場合（ステップＳ７でＮＯ）、カウンタ値が１減算されて更新される（ステップＳ８）。この期間（導通期間）において、ＤＭＡ転送実行部２２に対して出力されたＤＭＡリクエスト信号Ｓ１は、ＤＭＡ転送実行部２２に導かれる。なお、導通カウンタ２１２には、導通期間を決定するためのカウンタ値が予めセットされているものとする。
【００２５】
一方、導通カウンタ２１２のカウンタ値が０の場合（ステップＳ７でＹＥＳ）、ステップＳ１に戻り、再度、インターバルデータＤ７が遮断カウンタ２１１にセットされ、ステップＳ２以降の処理が実行される。
【００２６】
図４は、外部ＰＣ２０からのＤＭＡリクエスト信号Ｓ１と、遮断回路２１が出力するＤＭＡリクエスト信号Ｓ１との関係を示すタイミングチャートである。上段の波形は、外部ＰＣ２０からのＤＭＡリクエスト信号Ｓ１を示し、下段の波形は、遮断回路２１が出力するＤＭＡリクエスト信号Ｓ１を示している。上段に示す波形がハイレベルの場合、外部ＰＣ２０からＤＭＡリクエスト信号Ｓ１が出力されており、ローレベルの場合、外部ＰＣ２０からＤＭＡリクエスト信号Ｓ１が出力されていない。また、下段に示す波形がハイレベルの場合が導通期間であり、ローレベルの場合が転送禁止期間である。
【００２７】
図４に示すように遮断回路２１は、転送禁止期間と導通期間を交互に繰り返し実行する。これにより、インターバルデータＤ７の値に基づいて、ＤＭＡ転送の転送速度が調節される。つまり、インターバルデータＤ７の値が大きい場合は、導通期間に対する転送禁止期間の比率が大きくなるため、ＤＭＡの転送速度は低くなる。一方、インターバルデータＤ７の値が小さい場合は、導通期間に対する転送禁止期間の比率が小さくなるため、ＤＭＡの転送速度は高くなる。
【００２８】
次に、図５に示すフローチャートにしたがって、周辺機器からＤＭＡリクエスト信号Ｓ１が出力されたときの、ＤＭＡＣ２の処理を説明する。まず、ＤＭＡリクエスト信号Ｓ１が導通期間に受信された場合（ステップＳ１１でＹＥＳ）、遮断回路２１によってＤＭＡリクエスト信号Ｓ１がＤＭＡ転送実行部２２に出力される（ステップＳ１２）。そして、ＤＭＡ転送実行部２２により、１ワード分（例えば３２ビット）の印刷データが（転送対象データ）転送先アドレスＤ２が示すＲＡＭ３のアドレスに転送され（ステップＳ１３）、データカウンタ２２２のカウンタ値が１減算されてカウントダウンされる（ステップＳ１４）。
【００２９】
次いで、ＤＭＡ転送実行部２２により、データカウンタ２２２のカウンタ値が０か否か判定され（ステップＳ１５）、カウンタ値が０でない場合（ステップＳ１５でＮＯ）、さらに、印刷データの全ての転送が完了したか否か判定され（ステップＳ１６）、全ての転送が完了していない場合（ステップＳ１６でＮＯ）、ステップＳ１１に戻り、ステップＳ１２以降の処理が実行される。ステップＳ１６において、印刷データの全ての転送が完了したと判定された場合（ステップＳ１６でＹＥＳ）、処理が終了される。
【００３０】
ステップＳ１５においてＹＥＳと判定され、かつ、制御データＤ５が、次のディスクリプタを参照することを示している場合（ステップＳ１７でＹＥＳ）、ネクストディスクリプタアドレスＤ４が示すアドレスに格納されたディスクリプタが読み込まれる（ステップＳ１８）。この時、ＣＰＵ１により、次に読み込まれるディスクリプタのインターバルデータの設定処理が行なわれ（ステップＳ１９）、読み込まれたディスクリプタにしたがって、ステップＳ１１以降の処理が実行される。なお、Ｓ１９の処理については、後述する。
【００３１】
一方、ステップＳ１７でＮＯと判定された場合、すなわち、制御データＤ５が、次のディスクリプタを参照することを示していない場合、データカウンタ２２２に、再度、インターバルデータＤ６がセットされ（ステップＳ２０）、ステップＳ１１に戻る。
【００３２】
なお、全ての印刷データの転送が完了する前に転送禁止期間に切り替わった場合（ステップＳ１６でＮＯかつＳ１１でＮＯ）、再度、導通期間となるまで、ＤＭＡ転送が中断される。
【００３３】
次に図６に示すフローチャートにしたがって、ＣＰＵ１によって実行されるインターバルデータＤ６の設定処理（ステップＳ１９のサブルーチン）を説明する。まず、ＲＡＭ３の空き容量が調べられ（ステップＳ３１）、ＲＡＭ３の空き容量に応じて、インターバルデータＤ７の値が更新される（ステップＳ３２）。この場合、ＲＡＭ３の空き容量が大きい場合は、転送速度が高くなるように、インターバルデータＤ７として小さな値が設定され、ＲＡＭ３の空き容量が小さい場合は、転送速度が低くなるように、インターバルデータＤ７として大きな値が設定される。
【００３４】
以上説明したように、ネットワークプリンタ１０が備えるＤＭＡＣ２によれば、インターバルデータＤ７が示す期間中、ＤＭＡ転送実行部２２に対するＤＭＡリクエスト信号Ｓ１を遮断する遮断回路２１を備えているため、ＲＡＭ３がすぐにメモリフルの状態になることを防止することができる。
【００３５】
なお、本発明は、以下の形態を採用してもよい。
【００３６】
（１）上記実施形態では、本発明にかかるＤＭＡコントローラをネットワークプリンタに適用した例を示したが、これに限定されず、複写機、通常のコンピュータ、デジタル復号機等に適用してもよい。要するに、ＣＰＵ、メモリ及び周辺機器（ハードディスク等）を備える装置であって、ＤＭＡ転送を行なう装置に対して、本発明にかかるＤＭＡコントローラを適用することができる。
【００３７】
（２）上記実施形態では、ＤＭＡ転送されるデータを外部ＰＣ２０からの印刷データとしたが、これに限定されず、ネットワークプリンタ１０が備える周辺装置（ハードディスク等）から出力されるデータをＤＭＡ転送されるデータとしても良い。
【００３８】
（３）上記実施形態では、導通期間と転送禁止期間とを交互に繰り返して、転送速度の調節を行なったが、これに限定されず、１つのディスクリプタにつき、導通期間と転送禁止期間とを１サイクル分実行するだけでもよい。
【００３９】
（４）上記実施形態では、導通カウンタ２１２により、導通期間をカウントしたが、これに限定されず、遮断カウンタ２１１により導通期間をカウントしてもよい。この場合、導通期間の開始時に、転送実行部２２が導通期間を定めるためのデータを遮断カウンタ２１１にセットすればよい。また、この導通期間を定めるためのデータをディスクリプタに含ませ、ＲＡＭ３の空き容量に応じて、ＣＰＵ１が当該データを更新可能にしてもよい。これにより、導通カウンタ２１２が不要となり、ＤＭＡＣ２の小型化及び低コスト化を図ることができる。
【００４０】
（５）上記実施形態では、遮断カウンタ２１１、導通カウンタ２１２及びデータカウンタ２２２は、カウント値をカウントダウンしたが、これに限定されず、カウント値をカウントアップしてもよい。
【００４１】
（６）上記実施形態では、遮断回路２１は、ＤＭＡＣ２内に含まれるものとしたが、ＤＭＡＣ２の外部に接続してもよい。
【図面の簡単な説明】
【００４２】
【図１】本発明に係るＤＭＡコントローラをネットワークプリンタに適用したときの、ネットワークプリンタの電気的な構成と、ネットワークプリンタに対し通信回線を介して接続された外部ＰＣとを示すブロック図である。
【図２】ディスクリプタのデータ構造を示した図である。
【図３】ＤＭＡＣの動作を示すフローチャートである。
【図４】ＤＭＡリクエスト信号を示したタイミングチャートである。
【図５】ＤＭＡリクエスト信号を受信したときのＤＭＡＣの動作を示すフローチャートである。
【図６】インターバルデータの更新処理を示すフローチャートである。
【符号の説明】
【００４３】
１０  ネットワークプリンタ
２０  外部ＰＣ
１  ＣＰＵ
２  ＤＭＡＣ（ＤＭＡコントローラ）
２１  遮断回路
２２  ＤＭＡ転送実行部
２１１  遮断カウンタ
２１２  導通カウンタ
２１３  スイッチ
２２１  レジスタ
２２２  カウンタ
３  ＲＡＭ
４  ＲＯＭ
５  通信Ｉ／Ｆ
【図１】
2005100247.tif 000003
【図２】
2005100247.tif 000004
【図３】
2005100247.tif 000005
【図４】
2005100247.tif 000006
【図５】
2005100247.tif 000007
【図６】
2005100247.tif 000008