(57)【要約】【課題】ＣＰＵのパケット処理が受信速度を下回り、メモリ上に構成される受信バッファが枯渇しそうになったときに、ハードウェアにより受信バッファのオーバフローを防止する。【解決手段】ＭＡＣ１４０を含むネットワークインターフェース部６００と、受信バッファをパケット単位で用意・管理するＣＰＵ４００とのインターフェイス部１６０と、メモリ５００に接続されたメモリコントローラ部１７０とを備え、ネットワークインターフェース部６００は、ソフトウェアがメモリ５００上に用意した受信パケットバッファの数と、実際の受信パケット数と、ソフトウェアが処理した受信パケットの数とを記録するレジスタを有し、受信したパケット数からソフトウェアが処理したパケット数を差し引き、その値がソフトウェアが前記メモリ上に用意した受信バッファの総数のあらかじめ設定された上限値を超えた場合に、自動でフロー制御を行い、受信バッファがオーバフローすることを防止する。【選択図】図１
2006014211.tif 000002
【特許請求の範囲】
【請求項１】
ＭＡＣを含むネットワークインターフェース部と、受信バッファをパケット単位で用意・管理するＣＰＵとのインターフェイス部と、メモリに接続されたメモリコントローラ部とを備え、
前記ネットワークインターフェース部は、ソフトウェアがメモリ上に用意した受信パケットバッファの数と、実際の受信パケット数と、ソフトウェアが処理した受信パケットの数とを記録するレジスタを有し、受信したパケット数からソフトウェアが処理したパケット数を差し引き、その値がソフトウェアが前記メモリ上に用意した受信バッファの総数のあらかじめ設定された上限値を超えた場合に、自動でフロー制御を行い、受信バッファがオーバフローすることを防止することを特徴とするネットワーク制御装置。
【請求項２】
ＭＡＣを含むネットワークインターフェース部と、受信バッファを一括で用意しパケット単位で管理するＣＰＵとのインターフェイス部と、メモリに接続されたメモリコントローラ部とを備え、
前記ネットワークインターフェース部は、ソフトウェアがメモリ上に用意した受信パケットバッファの数と、実際の受信パケット数と、ソフトウェアが処理した受信パケットの数と、を記録するレジスタを有し、受信したパケットの総バイト数からソフトウェアが処理したバイト数を差し引き、その値がソフトウェアが前記メモリ上に用意した受信バッファの総バイト数のあらかじめ設定された上限値を超えた場合に、自動でフロー制御を行い、受信バッファがオーバフローすることを防止することを特徴とするネットワーク制御装置。
【請求項３】
前記ネットワークインターフェイス部がＭＡＣに加え、物理層デバイスと、ＤＭＡコントローラを含むことを特徴とする請求項１または２記載のネットワーク制御装置。
【請求項４】
前記ネットワークインターフェイス部のＭＡＣ、ＤＭＡコントローラ、前記インターフェイス部、及びメモリコントローラ部とが、ＡＳＩＣによって構成されていることを特徴とする請求項１ないし３のいずれか１項に記載のネットワーク制御装置。
【請求項５】
前記ＡＳＩＣが、接続された共通資源であるメモリ及び／又は大容量記憶装置間のメモリアービタを含むことを特徴とする請求項４記載のネットワーク制御装置。、
【請求項６】
複数のアプリケーション機能を有し、各アプリケーション機能が少なくともメモリを共有資源として利用し、クライアントコンピュータからの動作指令によって作動する請求項１ないし５のいずれか１項に記載のネットワーク制御装置を備えていることを特徴とする画像処理装置。
【請求項７】
請求項６記載の画像処理装置を備えていることを特徴とする画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プリンタ、コピー、およびＭＦＰ（マルチファンクションペリフェラル）等のネットワークインターフェースのフロー制御動作を自動的に行うネットワーク制御装置、このネットワーク制御装置を備えた画像処理装置、及び画像形成装置に関する。
【背景技術】
【０００２】
ネットワークインターフェースにおける受信パケットの処理は、１パケット受信する度にＣＰＵに対して割り込み発生させて実行していることが多かった。しかしながら最近のネットワークの高速化においては、割り込み処理をパケット毎に発生させることによる処理時間のオーバヘッドが大きくなり、受信するパケットの量に対しＣＰＵが処理するパケットの量が追いつかなくなる可能性が高くなってきた。
【０００３】
このため、１パケット毎に処理をするのではなく、ある程度まとまった数のパケットを受信するか、一定時間経過経過することによってパケットの処理を起動する方法が行われ始めている。これにより割り込み処理発生回数を減らすことができ、総処理時間の短縮が可能となっている。また受信バッファサイズを大きくすることも行われており、処理の集中による効率化で対応する動きがある。
【０００４】
他方、この種の技術として特許文献１ないし３に記載された発明が公知である。このうち、特許文献１には、システムの処理能力を大幅に改善することができる通信装置を提供することを目的として、受信したパケット及び受信情報が蓄積されるローカルメモリと、ローカルメモリに蓄積された受信情報に基づきパケット受信結果の判定及び資源開放等の受信時処理、ローカルメモリの蓄積量を検出すると共に検出した蓄積量が設定条件に達したか否かの判定、蓄積量が設定条件に達した場合にホストＣＰＵへパケット受信通知を発行するローカルＣＰＵとを備え、パケット当たりの処理時間の短縮化を図り、システムの処理能力を改善した通信装置が記載されている。
【０００５】
また、特許文献２には、ＩＥＥＥ１３９４シリアルバスを介してのデータ転送において、容易にフロー制御を実現し、また、量子化誤差を低減することを目的として、ＦＩＦＯは、デコーダからのデータを一旦保持し、所定の送信タイミングで出力するが、このとき、カウンタが、ＦＩＦＯからＩＥＥＥバス上へ送信されるパケット数をカウントし、レジスタの送信指示に従って、データ転送量を増加するときには、空パケットの転送時にデータパケットを送信し、データ転送量を減少させるときには、データパケットの送信タイミングで空パケットを送信するようにし、データ量監視部は、フロー制御に伴ってＦＩＦＯがオーバフローになったり、空になったりしないように、データ入力制御部を介してデコーダへデータ要求・停止を行うようにしたデータ転送装置が記載されている。
【０００６】
さらに、特許文献３には、構成を簡略化することができるパケットバッファを提供することを目的とし、バッファ制御部は入力データ同期クロック、入力パケット同期信号、入力パケットストローブ信号に基づいてバッファメモリにバッファライト信号を供給し、入力パケットデータを格納し、パケット長カウンタは入力パケットデータのパケット長を求め、パケット長バッファメモリに順次供給し、バッファ制御部は出力データ同期クロック、出力パケット同期信号に基づいてパケット長バッファメモリからパケット長を順次読み出し、このパケット長分のバッファリード信号をバッファメモリに供給して、出力パケットデータの読み出しを制御するパケットバッファが記載されている。
【特許文献１】特開２００１−０７７８４７公報
【特許文献２】特開２００２−３５４０５１公報
【特許文献３】特開平９−２４７２１３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、処理能力が高いＣＰＵであればともかく、処理能力の低いＣＰＵの場合は、これらの対策であってもパケット処理が間に合うとは限らない。処理能力の高いＣＰＵはそれだけコストも高くなり、受信バッファサイズを増やすこととあわせて、低価格化が進むプリンタやＭＦＰ（マルチファンクションペリフェラル）にとって決して万全な対策にはならない。しかも、ＣＰＵはパケット処理だけではなく、画像描画や他のインターフェース処理なども併せて行っている場合が多い。
【０００８】
また、他の処理が平行して起動された状態ではネットワークのパケット処理の速度も低下し、先の対策を実施していたとしても受信バッファのオーバフローを起こす可能性がある。オーバフローを起こしてしまうと、本来受信すべきであったパケットをロストしてしまうことになり、パケットの再送処理が必要となってしまう。これでは、必要以上に通信時間がかかることを意味する。
【０００９】
また、特許文献１ないし３記載の技術においてはパケット当たりの処理時間の短縮化を図るための技術が開示されているが、いずれもソフトウェアを使用した構成のため、処理時間を短くしようとすると、その分、処理能力の高いＣＰＵを使用せざるを得ず、コストが高くならざるを得ない。
【００１０】
本発明は、このような技術的背景に鑑みてなされたもので、ＣＰＵのパケット処理が受信速度を下回り、メモリ上に構成される受信バッファが枯渇しそうになったときに、ハードウェアにより受信バッファのオーバフローを防止することを目的とする。
【課題を解決するための手段】
【００１１】
前記目的を達成するため、第１の手段に係るネットワーク制御装置は、ＭＡＣを含むネットワークインターフェース部と、受信バッファをパケット単位で用意・管理するＣＰＵとのインターフェイス部と、メモリに接続されたメモリコントローラ部とを備え、前記ネットワークインターフェース部は、ソフトウェアがメモリ上に用意した受信パケットバッファの数と、実際の受信パケット数と、ソフトウェアが処理した受信パケットの数とを記録するレジスタを有し、受信したパケット数からソフトウェアが処理したパケット数を差し引き、その値がソフトウェアが前記メモリ上に用意した受信バッファの総数のあらかじめ設定された上限値を超えた場合に、自動でフロー制御を行い、受信バッファがオーバフローすることを防止することを特徴とする。
【００１２】
第２の手段に係るネットワーク制御装置は、ＭＡＣを含むネットワークインターフェース部と、受信バッファを一括で用意しパケット単位で管理するＣＰＵとのインターフェイス部と、メモリに接続されたメモリコントローラ部とを備え、前記ネットワークインターフェース部は、ソフトウェアがメモリ上に用意した受信パケットバッファの数と、実際の受信パケット数と、ソフトウェアが処理した受信パケットの数と、を記録するレジスタを有し、受信したパケットの総バイト数からソフトウェアが処理したバイト数を差し引き、その値がソフトウェアが前記メモリ上に用意した受信バッファの総バイト数のあらかじめ設定された上限値を超えた場合に、自動でフロー制御を行い、受信バッファがオーバフローすることを防止することを特徴とする。
【００１３】
第３の手段は、第１または第２の手段において、前記ネットワークインターフェイス部がＭＡＣに加え、物理層デバイスと、ＤＭＡコントローラを含むことを特徴とする。
【００１４】
第４の手段は、第１ないし第３の手段に係るネットワーク制御装置において、前記ネットワークインターフェイス部のＭＡＣ、ＤＭＡコントローラ、前記インターフェイス部、及びメモリコントローラ部とが、ＡＳＩＣによって構成されていることを特徴とする。
【００１５】
第５の手段は第４の手段において、前記ＡＳＩＣが、接続された共通資源であるメモリ及び／又は大容量記憶装置間のメモリアービタを含むことを特徴とする。
【００１６】
第６の手段は、複数のアプリケーション機能を有し、各アプリケーション機能が少なくともメモリを共有資源として利用し、クライアントコンピュータからの動作指令によって作動する第１ないし第５の手段に係るネットワーク制御装置を画像処理装置が備えていることを特徴とする。
【００１７】
第７の手段は、第６の手段に係る画像処理装置を画像形成装置が備えていることを特徴とする。
【発明の効果】
【００１８】
本発明によれば、メモリ上に構成される受信バッファが枯渇しそうになったときに、ハードウェアがそれを検知して受信バッファのオーバフローを防止すること
【発明を実施するための最良の形態】
【００１９】
以下、本発明の実施形態を図面を参照して説明する。
【００２０】
＜第１の実施形態＞
図１は、本発明の第１の実施形態に係るハードウェア構成としてのＡＳＩＣの構成の一例を示すブロック図である。
【００２１】
このＡＳＩＣ１００はネットワークインターフェイスを含むネットワーク制御装置としての機能を備えたもので、メモリ・アービタ１１０に対してハードディスク装置（ＨＤＤ）、物理層デバイス３００、ＣＰＵ４００およびメモリ５００が接続されている。ＡＳＩＣ１００は、ＨＤＤ２００と接続するためのＨＤＤインターフェイス１２０、ＵＳＢ端子が接続されるＵＳＢインターフェイス１３０、物理層デバイス３００と接続ｓれるＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ）１４０、ＳＤカードが接続されるＳＤカードインターフェイス１５０、ＣＰＵ４００が接続されるＣＰＵインターフェイス１６０、メモリ５００が接続されるメモリコントローラ１７０、プリンタエンジンと接続されるプリンタエンジンインターフェイス１８０及びＩＥＥＥ１２８４端子が接続されるＩＥＥＥ１２８４インターフェイス１９０を備え、さらに、ＨＤＤインターフェイス１２０、ＵＳＢインターフェイス１３０、ＭＡＣ１４０及びＳＤカードインターフェイス１５０とメモリアービタ１１０との間にはそれぞれＤＭＡコントローラ１２１，１３１，１４１，１５１が設けられている。この実施形態では、ネットワークインターフェイスは物理層デバイス３００、ＭＡＣ１４０及びＤＭＡコントローラ１４１から構成されている。
【００２２】
そして、ソフトウェア（ＣＰＵ４００）は、ＡＳＩＣ１００のメモリコントローラ１７０に接続されたメモリ５００上に、受信パケットを格納するバッファを設定する。そのバッファのサイズには上限があるが、バッファの総メモリサイズだけではなく、格納できるパケットの数にも上限を設けている。
【００２３】
物理層デバイス３００からＭＡＣで受信されたパケットは、ＤＭＡコントローラ１４１によりメモリ５００に転送される。ＭＡＣ１４０部には、メモリ５００へ転送したパケットの総数を記録するレジスタＡと、ソフトウェアが一定時間毎に処理したパケットの数を書き込むレジスタＢ、レジスタＢに書き込まれた値を累積していくレジスタＣがある。レジスタＣは、ソフトウェアがそれまでに処理したパケットの総数を示す。
【００２４】
図２は本実施形態の動作を説明するための図である。同図において、受信したパケット総数をＳＰ、ソフトウェアが処理したパケット総数をＤＰ、メモリ５００上に設定された受信パケットバッファ内のパケット数をＢＰで示している。この図から分かるように受信したパケット総数ＤＰが大きくなり、ソフトウェアの処理が追いつかず、受信パケットバッファ内のパケット数が、一定水準を超えた時点（図示Ａ点）で、ネットワークインターフェイスがフロー制御を自動実行する。そして、ソフトウェアの処理が受信したパケット総数ＳＰに追いついて、受信パケットバッファ内のパケット数ＢＰが所定値より小さくなり、受信パケットバッファの空き領域が一定水準より大きくなった時点（図示Ｂ点）で受信再開のフロー制御を自動実行する。
【００２５】
図３はこのときのフロー制御の制御手順を示すフローチャートである。  
ＭＡＣ１４０に設けられたレジスタＡは、時間と共に一定ではないが増えていく。レジスタＣも一定時間毎に増えていくことになる。ネットワークインターフェイスは前記レジスタＡとレジスタＣの値の差Ｘを監視し（ステップＳ１）、ＣＰＵ４００の処理が受信速度に追いつかなくなると、Ｘ＝レジスタＡ−レジスタＣの値が大きくなっていく。この値Ｘが受信パケットバッファ数ＴH（ＴHは、オーバフロー防止のためのバッファ内のパケットデータの上限値）を越えると、メモリ上に用意した受信パケットバッファがオーバフローをおこすので、前記値ＸとＴHを比較し、前記値ＸがＴHを超える（ステップＳ２−Ｙｅｓ）と、オーバフロー防止のフロー制御を実行し（ステップＳ３）、受信パケットの流入を抑える。ソフトウェアは処理を継続するので、この状態では（レジスタＡ−レジスタＣ）の値Ｘは小さくなっていく。そして、受信パケットバッファに十分な空き領域が確保できた時点で、すなわち、Ｘ＜ＴL（ＴLは受信再開を許可できるバッファ内のパケット数の上限値）となった時点で（ステップＳ４−Ｙｅｓ）、ハードウェアが自動でフロー制御を行い、受信パケットの流入を許可する（ステップＳ５）。ＣＰＵ４００は、受信バッファをパケット単位で用意・管理する。
【００２６】
なお、レジスタＡ、Ｂ、Ｃの値は、パケット数でなくバイト数であってもよい。その際、ＣＰＵ４００は受信バッファを一括で用意しパケット単位で管理するようにする。
【００２７】
図４は本発明の実施形態に係るネットワークシステムのシステム構成の一例を示す図である。  
このシステムは、イーサネット（登録商標）にケーブルを介して２台のＰＣとＭＦＰ及びプリンタが接続され、無線ＬＡＮを介してされに、１台のノードＰＣと、プリンタが接続されている。前記ＡＳＩＣ１００はＭＦＰおよびプリンタに搭載され、効率的にＰＣからのデータを受け入れて出力できるように構成される。
【００２８】
ＭＦＰはMulti Function Peripheralと称され、デジタルデータを記録シート上に可視画像として印刷する機能を有する画像形成装置で、コピー機能、プリンタ機能、ファクシミリ機能などの複数の機能を備えている。このうちプリンタ機能では、ＰＣから送られてくる画像データはプリンタドライバによって画像処理が施されているので、転送されてきた画像データをそのまま出力する。
【００２９】
一方、コピー機能は、原稿を読み取ったＲＧＢの画像データを印字用のＹＭＣＫの画像データに変換する必要があるので、そのためのγ補正やＭＴＦ処理などの公知の画像処理が施される。また、ファクシミリ機能では、送信されてきた画像データを印字出力する際に、プリンタγ補正やディザ処理などの画像処理が施される。
【００３０】
したがって、スキャナから転送されてきた画像を処理する場合には、前記ＡＳＩＣ１００は画像処理装置に設けられる。また、コピー機能を有する画像形成装置では、スキャナを備えているので、画像処理装置を含んだ構成となっている。
【００３１】
＜第２の実施形態＞
図５は、ネットワークインターフェース６００が拡張用ＰＣＩバス７００に接続された場合のＡＳＩＣの構成の第２の実施形態を示す図である。なお、第１の実施形態と同等な各部には同一の参照符号を付し、重複する説明は適宜省略する。
【００３２】
同図において、ＡＳＩＣ１（１００）のメモリコントローラ１７０に接続されたメモリ５００上に、ソフトウェアは受信パケットを格納するバッファを設定する。そのバッファのサイズには上限があるが、バッファの総メモリサイズだけではなく、格納できるパケットの数にも上限を設けている。
【００３３】
ＡＳＩＣ２（１１１）に内蔵されているＭＡＣ１１１−１で受信されたパケットは、ＤＭＡコントローラ１１１−２により、ＰＣＩバス７００、ＰＣＩインターフェイス１１０−２及びＤＭＡコンピュータ１１０−１経由でメモリ５００に転送される。ＭＡＣ１１１−１部には、メモリ５００へ転送したパケットの総数を記録するレジスタＡと、ソフトウェアが一定時間毎に処理したパケットの数を書き込むレジスタＢ、レジスタＢに書き込まれた値を累積していくレジスタＣがある。その他、特に説明しない各部は前述の第１の実施形態と同様に構成され、同等に機能する。
【００３４】
以上のように、上記第１及び第２の実施形態によれば、ＭＡＣ部１４０，１１１−１でフロー制御パケットを生成・送信し、通信動作を一時停止させ、受信バッファのオーバフローを防止することができる。
【００３５】
フロー制御により、処理能力の低いＣＰＵであっても、パケットのロストを防ぎ、不要なパケット再送時間の発生を防ぐことが可能になる。
【００３６】
ＣＰＵ４００がパケット処理を行い受信バッファに余裕が生まれたら、ＭＡＣ部１４０，１１１−１は再度フロー制御パケットにより、通信を再開する。これにより、必要以上に通信停止状態が続くことも防ぐことができる。
【００３７】
ＣＰＵ４００の処理能力を気にせず、メモリ５００上に用意された受信バッファのオーバフローを予防することができ、不要なパケット再送処理発生を防ぐことができる。
【００３８】
さらに、高性能なＣＰＵ、大容量メモリを採用しにくい低価格層のプリンタやＭＦＰでも、安心して高速なネットワーク環境へ接続することが可能となる。
【図面の簡単な説明】
【００３９】
【図１】本発明の第１の実施形態に係るハードウェア構成としてのＡＳＩＣの構成の一例を示すブロック図である。
【図２】第１の実施形態の動作を説明するための図である。
【図３】第１の実施形態のフロー制御の制御手順を示すフローチャートである。
【図４】第１の実施形態に係るネットワークシステムのシステム構成の一例を示す図である。
【図５】第２の実施形態に係るハードウェア構成としてのＡＳＩＣの構成の一例を示すブロック図である。
【符号の説明】
【００４０】
１００  ＡＳＩＣ，ＡＳＩＣ１
１１０  メモリアービタ
１１１  ＡＳＩＣ２
１１１−１，１４０  ＭＡＣ
１１１−２，１４１  ＤＭＡコントローラ
３００  物理層デバイス
４００  ＣＰＵ
５００  メモリ
６００  ネットワークインターフェイス
【図１】
2006014211.tif 000003
【図２】
2006014211.tif 000004
【図３】
2006014211.tif 000005
【図４】
2006014211.tif 000006
【図５】
2006014211.tif 000007