(57)【要約】【課題】  簡単な構成で記憶部を効率的に利用することができるようにする。【解決手段】  受信データが第１範囲のデータサイズである場合に第１ディスクリプタリスト３６から読み出した小さい記憶容量の格納先アドレスに受信データをＤＭＡ転送して格納し、受信データが第１範囲のデータサイズよりもデータサイズの大きい第２範囲のデータサイズである場合に第２ディスクリプタリスト３８から読み出した大きい記憶容量の格納先アドレスに受信データをＤＭＡ転送して格納する。【選択図】      図１
2005222469.tif 000002
【特許請求の範囲】
【請求項１】
外部装置から受信した受信データをデータ記憶部にＤＭＡ転送するＤＭＡ転送制御システムであって、受信データを格納するデータ記憶部と、このデータ記憶部における第１範囲のデータサイズの受信データの格納先アドレスを指定する第１ディスクリプタ情報及び前記第１範囲のデータサイズよりもデータサイズの大きい第２範囲のデータサイズの受信データの格納先アドレスを指定する第２ディスクリプタ情報を記憶するディスクリプタ情報記憶部と、受信データが第１範囲のデータサイズであるか第２範囲のデータサイズであるかを判別するデータサイズ判別部と、受信データが第１範囲のデータサイズである場合に前記ディスクリプタ情報記憶部の第１ディスクリプタ情報から読み出した第１範囲のデータサイズの格納先アドレスに受信データをＤＭＡ転送して格納すると共に、受信データが第２範囲のデータサイズである場合に前記ディスクリプタ情報記憶部の第２ディスクリプタ情報から読み出した第２範囲のデータサイズの格納先アドレスに受信データをＤＭＡ転送して格納するＤＭＡコントローラとを備えたことを特徴とするＤＭＡ転送制御システム。
【請求項２】
前記ＤＭＡコントローラは、ディスクリプタ情報格納バッファと、前記ディスクリプタ情報記憶部の第１,第２ディスクリプタ情報から次の受信データの格納先アドレスを読み出すと共に、この読み出した格納先アドレスを前記ディスクリプタ情報格納バッファに格納するアドレス読出部と、前記ディスクリプタ情報格納バッファに格納されている格納先アドレスのうち、受信データが第１範囲のデータサイズである場合に第１ディスクリプタ情報から読み出した格納先アドレスを選択すると共に、受信データが第２範囲のデータサイズである場合に第２ディスクリプタ情報から読み出した格納先アドレスを選択するアドレス選択部と、このアドレス選択部により選択された格納先アドレスに前記受信データをＤＭＡ転送して格納するデータ転送部とを備えたものであることを特徴とする請求項１記載のＤＭＡ転送制御システム。
【請求項３】
履歴バッファと、受信データが格納された格納先アドレスが第１，第２ディスクリプタ情報のうち何れのディスクリプタ情報から読み出されたものかを特定するための履歴情報を前記履歴バッファに書き込む履歴情報書込部とを備えたことを特徴とする請求項１又は２記載のＤＭＡ転送制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、受信データを格納するデータ記憶部を備えたネットワークプリンタなどの各種装置に適用されるＤＭＡ転送制御システムに関する。
【背景技術】
【０００２】
例えば、ネットワークプリンタは、外部ＰＣ（Personal Computer）から送信されてきた受信データである印刷データを記憶部（メモリ）に一時的に格納する一方、印刷動作に対応して印刷データを記憶部から順次読み出し、記録紙に対する印刷動作を実行する。この場合、外部ＰＣから送信されてきた印刷データは、ネットワークプリンタに備わるＤＭＡコントローラによるＤＭＡ（Direct Memory Access）転送方式によりデータ記憶部のディスクリプタで指定された格納先アドレスの記憶領域に格納される。
【０００３】
このＤＭＡ転送方式では、ネットワークプリンタの記憶部は、各記憶領域が受信データの規格範囲内における最大のデータサイズに合わせた同一の記憶容量となるように設定されており、受信データのデータサイズに関係なく予め設定された記憶領域の格納先アドレスを順次指定する。
【０００４】
このため、受信データのデータサイズは通常では設定されている最大サイズよりも小さいことから、各記憶領域には必然的に未使用の領域が発生し、データ記憶部を効率的に利用することができないという不都合があった。
【０００５】
このため、受信データのデータサイズ（受信データ長）に応じて記憶部（バッファ）のアドレス長を変化させる方法が提案されている（例えば、特許文献１参照）。これによれば、記憶部を効率的に利用することができないという上記従来の不都合を解決することができる。
【特許文献１】特開平５-１５８８６５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記特許文献１において提案されている方法によれば、記憶部を効率的に利用することが可能とはなるが、あらかじめソフトウエアが指定したアドレスを書き換えてしまうことになるため、意図しない記憶領域に変更されてしまう危険性があることや、受信データのデータサイズに応じてアドレスを書き換えるには構成が複雑になるという別の課題が生じる。
【０００７】
本発明は、このような事情に鑑みてなされたもので、簡単な構成で記憶部を効率的に利用することができるＤＭＡ転送制御システムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、請求項１の発明は、外部装置から受信した受信データをデータ記憶部にＤＭＡ転送するＤＭＡ転送制御システムであって、受信データを格納するデータ記憶部と、このデータ記憶部における第１範囲のデータサイズの受信データの格納先アドレスを指定する第１ディスクリプタ情報及び前記第１範囲のデータサイズよりもデータサイズの大きい第２範囲のデータサイズの受信データの格納先アドレスを指定する第２ディスクリプタ情報を記憶するディスクリプタ情報記憶部と、受信データが第１範囲のデータサイズであるか第２範囲のデータサイズであるかを判別するデータサイズ判別部と、受信データが第１範囲のデータサイズである場合に前記ディスクリプタ情報記憶部の第１ディスクリプタ情報から読み出した第１範囲のデータサイズの格納先アドレスに受信データをＤＭＡ転送して格納すると共に、受信データが第２範囲のデータサイズである場合に前記ディスクリプタ情報記憶部の第２ディスクリプタ情報から読み出した第２範囲のデータサイズの格納先アドレスに受信データをＤＭＡ転送して格納するＤＭＡコントローラとを備えたことを特徴としている。
【０００９】
また、請求項２の発明は、請求項１に係るものにおいて、前記ＤＭＡコントローラが、ディスクリプタ情報格納バッファと、前記ディスクリプタ情報記憶部の第１,第２ディスクリプタ情報から次の受信データの格納先アドレスを読み出すと共に、この読み出した格納先アドレスを前記ディスクリプタ情報格納バッファに格納するアドレス読出部と、前記ディスクリプタ情報格納バッファに格納されている格納先アドレスのうち、受信データが第１範囲のデータサイズである場合に第１ディスクリプタ情報から読み出した格納先アドレスを選択すると共に、受信データが第２範囲のデータサイズである場合に第２ディスクリプタ情報から読み出した格納先アドレスを選択するアドレス選択部と、このアドレス選択部により選択された格納先アドレスに前記受信データをＤＭＡ転送して格納するデータ転送部とを備えたものであることを特徴としている。
【００１０】
また、請求項３の発明は、請求項１又は２に係るものにおいて、履歴バッファと、受信データが格納された格納先アドレスが第１，第２ディスクリプタ情報のうち何れのディスクリプタ情報から読み出されたものかを特定するための履歴情報を前記履歴バッファに書き込む履歴情報書込部とを備えたことを特徴としている。
【発明の効果】
【００１１】
請求項１の発明によれば、受信データが第１範囲のデータサイズである場合には第１ディスクリプタ情報から読み出した第１範囲のデータサイズの格納先アドレスに受信データがＤＭＡ転送されて格納され、受信データが第１範囲のデータサイズよりも大きいデータサイズである第２範囲のデータサイズである場合には第２ディスクリプタ情報から読み出した第２範囲のデータサイズの格納先アドレスに受信データがＤＭＡ転送されて格納される。このように、請求項１の発明では、受信データの第１,第２範囲のデータサイズに対応した大きさの格納先アドレスが予め設定されており、受信データをその第１,第２範囲のデータサイズに対応した大きさの格納先アドレスに格納するようにしているため、各格納先アドレスに生じる未使用の領域が削減されることになる結果、簡単な構成で記憶部を効率的に利用することができる。
【００１２】
請求項２の発明によれば、第１,第２ディスクリプタ情報から次の受信データの各格納先アドレスが読み出されてディスクリプタ情報格納バッファに格納されており、受信データが第１範囲のデータサイズである場合に第１ディスクリプタ情報から読み出した格納先アドレスが選択されると共に、受信データが第２範囲のデータサイズである場合に第２ディスクリプタ情報から読み出した格納先アドレスが選択され、この選択された格納先アドレスに受信データがＤＭＡ転送されて格納される。このように、請求項２の発明では、次の受信データの格納先アドレスを第１,第２ディスクリプタ情報から予め読み出しておき、この読み出しておいた格納先アドレスのうちから受信データの第１,第２範囲のデータサイズに対応した格納先アドレスを選択するようにしているため、受信データを受信した後のＤＭＡ転送動作を迅速に実行することができる。
【００１３】
請求項３の発明によれば、受信データの格納された格納先アドレスが第１，第２ディスクリプタ情報のうち、何れのディスクリプタ情報から読み出されたものかを特定する履歴情報が履歴バッファに書き込まれる。このように、請求項３の発明では、履歴情報が履歴バッファに書き込まれるため、受信データが何れの記憶領域に格納されているかを履歴情報に基づいて容易に確認することができる。
【発明を実施するための最良の形態】
【００１４】
図１は、本発明の一実施形態に係るＤＭＡ転送制御システムが適用されるネットワークプリンタの制御構成を示すブロック図である。この図において、ネットワークプリンタ１０は、イーサネット（Ethernet）（登録商標）１２を介して外部ＰＣ（Personal Computer）１４が接続されたもので、外部ＰＣ１４から受信したデータ（受信データ）を格納する記憶部（メモリ）１６、受信データに対して所定の画像処理を施すことで印刷データを得る画像処理部１８、画像処理の施された印刷データを記録紙に対して記録する記録部２０、全体の動作を制御する本体制御部を構成するＣＰＵ（Central Processing Unit）２２、及び、受信データを記憶部１６にＤＭＡ（Direct Memory Access）転送するイーサネットコントローラ２４を備え、各構成部材がバスライン２６により接続されて構成されている。
【００１５】
記憶部１６は、受信データを格納するデータ記憶部２８と、データ記憶部２８における受信データの格納先アドレスを指定するためのディスクリプタ情報を格納するディスクリプタ情報記憶部３０とを設定するための記憶領域を備えたものである。
【００１６】
データ記憶部２８は、所定値未満（例えば、１２８バイト未満）である第１範囲のデータサイズの受信データが格納可能な小さい記憶容量を有する複数の記憶領域を構成する第１記憶領域３２と、所定値以上（例えば、１２８バイト以上）で最大規格値以下である第２範囲のデータサイズの受信データが格納可能な大きい記憶容量を有する複数の記憶領域を構成する第２記憶領域３４とを設定するための記憶領域を備えている。
【００１７】
ディスクリプタ情報記憶部３０は、第１記憶領域３２の各格納先アドレスを１つの記憶領域単位で記述したディスクリプタをリスト化した第１ディスクリプタリスト（第１ディスクリプタ情報）３６と、第２記憶領域３４の各格納先アドレスを１つの記憶領域単位で記述したディスクリプタをリスト化した第２ディスクリプタリスト（第２ディスクリプタ情報）３８とを設定するための記憶領域を備えている。
【００１８】
画像処理部１８は、受信データに対してγ変換、色空間変換などの種々の画像処理を施すことで記録紙に印刷するための印刷データを得るものである。記録部２０は、例えば、感光体ドラム、現像装置、定着装置などから構成されたものである。
【００１９】
イーサネットコントローラ２４は、外部ＰＣ１４から送信されてきたデータ（受信データ）を記憶部１６にＤＭＡ転送するための制御を行うＤＭＡコントローラ４２と、外部ＰＣ１４からの受信データを一時的に格納する受信データ格納バッファ４４と、受信データが格納された格納先アドレスが第１，第２ディスクリプタリスト３６，３８のうち、何れのディスクリプタリストから読み出されたものか（すなわち、受信データが何れの記憶領域に格納されたか）を特定するための履歴情報を書き込む履歴バッファ４６と、受信データ格納バッファ４４に格納された受信データのデータサイズが第１範囲のデータサイズであるか、第１範囲のデータサイズよりもデータサイズの大きい第２範囲のデータサイズであるかをデータ量などに基づいて判別するデータサイズ判別部４８とを備えている。
【００２０】
ＤＭＡコントローラ４２は、記憶部１６に設定される第１ディスクリプタリスト３６から読み出した第１記憶領域３２における次の受信データの格納先アドレス、及び、第２ディスクリプタリスト３８から読み出した第２記憶領域３４における次の受信データの格納先アドレスを格納するディスクリプタ情報格納バッファ５４と、第１ディスクリプタリスト３６及び第２ディスクリプタリスト３８から次の受信データの格納先アドレスを順次読み出すと共に、その読み出した２つの格納先アドレスをディスクリプタ情報格納バッファ５４に格納するアドレス読出部５６とを備えている。
【００２１】
また、ＤＭＡコントローラ４２は、ディスクリプタ情報格納バッファ５４に格納されている２つの格納先アドレスのうち、受信データの第１,第２範囲のデータサイズに対応した格納先アドレスを選択するアドレス選択部５８と、受信データをアドレス選択部５８により選択された格納先アドレス（すなわち、データ記憶部２８の第１記憶領域３２及び第２記憶領域３４のうち、受信データのデータサイズに対応する記憶領域）にＤＭＡ転送して格納するデータ転送部６０と、アドレス選択部５８により選択された格納先アドレスが第１ディスクリプタリスト３６及び第２ディスクリプタリスト３８の何れのディスクリプタリストから読み出されたかを特定するための履歴情報を受信データと対応付けて履歴バッファ４６に書き込む履歴情報書込部６２とを備えている。
【００２２】
図２は、受信データをデータ記憶部３２に格納するにあたって、第１，第２ディスクリプタリスト３６，３８のうちの何れのディスクリプタリストから格納先アドレスが読み出されたかを履歴バッファ４６に書き込む場合の書込み例を示す図である。本実施形態のように、２つのディスクリプタリストを用いている場合では、例えば、「有効ビット“１”＋ディスクリプタリスト番号」のように２ビットで履歴を記録することができ、後に続くディスクリプタリストを順次連続して記録するようにすればよい。このように、履歴バッファ４６に用いたディスクリプタリスト番号を書き込んでおくことで、受信データが何れの記憶領域に記憶されているかを容易に確認することができる。
【００２３】
図３は、イーサネットコントローラ２４の動作を説明するためのフローチャートである。まず、受信許可が与えられて外部ＰＣ１４から送信されるデータが受信可能な状態になると、アドレス読出部５６により第１ディスクリプタリスト３６及び第２ディスクリプタリスト３８の読み出しが実行される（ステップＳ１）。これにより、第１ディスクリプタリスト３６から次の受信データが第１範囲のデータサイズである場合の格納先アドレスが読み出されると共に、第２ディスクリプタリスト３８から次の受信データが第２範囲のデータサイズである場合の格納先アドレスが読み出される。
【００２４】
次いで、読み出された２つの格納先アドレスがアドレス読出部５６によりディスクリプタ情報格納バッファ５４に転送されて保存される（ステップＳ３）。その後、外部ＰＣ１４から送信されてきたデータが受信されると、その受信データが受信データ格納バッファ４４に格納される（ステップＳ５）。
【００２５】
次いで、受信データ格納バッファ４４に格納されている受信データが第１範囲のデータサイズ（例えば、１２８バイト未満）か否かがデータサイズ判別部４８により判別される（ステップＳ７）。この判別が肯定されると、ディスクリプタ情報格納バッファ５４に格納されている２つの格納先アドレスのうち、データ記憶部２８の第１記憶領域３２を指定する第１ディスクリプタリスト３６から読み出した格納先アドレスがアドレス選択部５８により選択される（ステップＳ９）。
【００２６】
受信データのデータサイズが第２範囲のデータサイズ（例えば、１２８バイト以上）であるため、ステップＳ７での判別が否定されると、ディスクリプタ情報格納バッファ５４に格納されている２つの格納先アドレスのうち、データ記憶部２８の第２記憶領域３４を指定する第２ディスクリプタリスト３８から読み出した格納先アドレスがアドレス選択部５８により選択される（ステップＳ１１）。
【００２７】
なお、格納先アドレスがアドレス選択部５８により選択されると、その格納先アドレスはディスクリプタ情報格納バッファ５４から消去され、ディスクリプタ情報格納バッファ５４には選択されなかった格納先アドレスだけが格納された状態となっている。
【００２８】
次いで、受信データ格納バッファ４４に格納されている受信データが、データ転送部６０によりアドレス選択部５８で選択された格納先アドレスにＤＭＡ転送されて格納される（ステップＳ１３）。すなわち、受信データは、データサイズが第１範囲のデータサイズである閾値未満の場合には、データ記憶部２８における記憶容量の小さい第１記憶領域３２の格納先アドレスにＤＭＡ転送されて格納され、データサイズが第２範囲のデータサイズである閾値以上の場合には、データ記憶部２８の記憶容量の大きい第２記憶領域３４の格納先アドレスにＤＭＡ転送されて格納される。
【００２９】
次いで、データ転送部６２による受信データのＤＭＡ転送が終了したか否かがＤＭＡコントローラ２４で判別され（ステップＳ１５）、この判別が肯定されると受信データが何れの記憶領域に格納されたかを確認可能とするため、第１ディスクリプタリスト３６及び第２ディスクリプタリスト３８のうち、選択された格納先アドレスが読み出された方のディスクリプタリスト番号が履歴情報として履歴情報書込部６２により履歴バッファ４６に書き込まれる（ステップＳ１７）。
【００３０】
そして、受信データのＤＭＡ転送が終了すると、その旨を通知するための割込通知信号がＤＭＡコントローラ２４から本体制御部側に送信され（ステップＳ１９）、その後にステップＳ１に移行して以降の各ステップが繰り返し実行される。ステップＳ１５における判別が否定されたときは、判別が肯定されるまで待機する。
【００３１】
なお、ステップＳ１９からステップＳ１に移行したとき、ディスクリプタ情報格納バッファ５４には選択されなかった格納先アドレスが格納された状態となっているため、ステップＳ９あるいはステップＳ１１で選択されて消去された格納先アドレスが読み出された第１ディスクリプタリスト３６あるいは第２ディスクリプタリスト３８からのみ次の受信データの格納先アドレスが読み出される。
【００３２】
本発明は、上記実施形態のように、受信データが第１範囲のデータサイズである場合には第１ディスクリプタリスト３６から読み出した第１範囲のデータサイズの記憶領域である格納先アドレスに受信データがＤＭＡ転送されて格納され、受信データが第１データサイズよりもデータサイズの大きい第２範囲のデータサイズである場合には第２ディスクリプタリスト３８から読み出した第２範囲のデータサイズの記憶領域である格納先アドレスに受信データがＤＭＡ転送されて格納される。すなわち、受信データの第１,第２範囲のデータサイズに対応した大きさの格納先アドレスが予め設定されており、受信データをその第１,第２範囲のデータサイズに対応した大きさの格納先アドレスに格納するようにしているため、各格納先アドレスにおける未使用の領域が削減されることになる結果、簡単な構成で記憶部１６を効率的に利用することができる。
【００３３】
また、外部ＰＣ１４からデータサイズの小さい複数のデータが連続して送信されてくるような場合でも、それに対応した小さい記憶容量の格納先アドレスを必要数だけ設定しておくことで、記憶部１６の全体の記憶容量を格別増大させることなく受信可能とすることができる。さらに、受信データのデータサイズに対応するディスクリプタリストを選択するだけで、従来例のように格納先アドレスを書き換える必要がないことから、ＤＭＡ転送制御システムの構成を簡素化することができる。
【００３４】
なお、本発明は、上記実施形態のものに限定されるものではなく、以下に述べるような種々の変形態様を必要に応じて採用することができる。
【００３５】
（１）上記実施形態では、記憶部１６のデータ記憶部２８は、第１範囲のデータサイズの受信データに対応する第１記憶領域３２及び第１範囲のデータサイズよりもデータサイズの大きい第２範囲のデータサイズの受信データに対応する第２記憶領域３４の２種類の記憶容量を有するように設定され、これに対応して第１ディスクリプタリスト３６及び第２ディスクリプタリスト３８が設定されるようにしているが、これに限るものではない。例えば、受信データのデータサイズを３種類以上の範囲に区分する場合には、その区分数に対応させて３種類以上の記憶容量の記憶領域を有するように設定すると共に、その記憶領域に対応させて３種類以上のディスクリプタリストを設定するようにすればよい。
【００３６】
要は、少なくとも、受信データのデータサイズが第１範囲のデータサイズ及び第１範囲のデータサイズよりもデータサイズの大きい第２範囲のデータサイズに区分され、これに対応して第１記憶領域３２及び第２記憶領域３４の２種類の記憶領域を有するように設定されると共に、この記憶領域に対応させて第１ディスクリプタリスト３６及び第２ディスクリプタリスト３８が設定されるようになっておればよい。そして、受信データが少なくとも第１範囲のデータサイズであるか第２範囲のデータサイズであるかを判別し、第１範囲のデータサイズである場合は第１ディスクリプタリスト３６から格納先アドレスを読み出してＤＭＡ転送すると共に、第２範囲のデータサイズである場合は第２ディスクリプタリスト３８から格納先アドレスを読み出してＤＭＡ転送するようになっておればよい。
【００３７】
（２）上記実施形態では、本発明に係るＤＭＡ転送制御システムをネットワークプリンタに適用した例を示したが、これに限るものではない。例えば、複写機、コンピュータ、デジタル復号機などの種々の装置に適用することができる。要は、受信データを記憶部に対してＤＭＡ転送するものであれば適用可能である。したがって、受信データも上記実施形態のような印刷データとするものに限るものではない。
【００３８】
（３）上記実施形態では、履歴バッファ４６をイーサネットコントローラ２４に設けるようにしているが、これに限るものではない。例えば、履歴バッファ４６を記憶部１６に設定し、履歴情報書込部６２により履歴情報を書き込むようにしてもよい。また、履歴情報書込部６２をＤＭＡコントローラ２４の外部に設けることもできる。
【図面の簡単な説明】
【００３９】
【図１】本発明の一実施形態に係るＤＭＡ転送制御システムが適用されるネットワークプリンタの制御構成を示すブロック図である。
【図２】ディスクリプタリストの履歴情報を履歴バッファに書き込む場合の書込み例を示す図である。
【図３】イーサネットコントローラの動作を説明するためのフローチャートである。
【符号の説明】
【００４０】
１０  ネットワークプリンタ
１２  イーサネット
１４  外部ＰＣ（外部装置）
１６  記憶部
２４  イーサネットコントローラ
２８  データ記憶部
３０  ディスクリプタ情報記憶部
３２  第１記憶領域
３４  第２記憶領域
３６  第１ディスクリプタリスト（第１ディスクリプタ情報）
３８  第２ディスクリプタリスト（第２ディスクリプタ情報）
４２  ＤＭＡコントローラ
４４  受信データ格納バッファ
４６  履歴バッファ
４８  データサイズ判別部
５４  ディスクリプタ情報格納バッファ
５６  アドレス読出部
５８  アドレス選択部
６０  データ転送部
６２  履歴情報書込部
【図１】
2005222469.tif 000003
【図２】
2005222469.tif 000004
【図３】
2005222469.tif 000005