(57)【特許請求の範囲】
【請求項１】
一定周期毎に受信データの個数を算出する算出手段と、
前記受信データの個数が増加するほど前記受信データを廃棄するか否かの判断に使用される閾値が減少するテーブル情報を備え、前記算出手段による算出値及び前記テーブル情報に応じて、前記閾値を決定する決定手段と
を備えることを特徴とする通信制御装置。
【請求項２】
前記一定周期の長さを変更する変更手段を備えることを特徴とする請求項１の通信制御装置。
【請求項３】
前記受信データを廃棄する廃棄手段を更に備え、
前記算出手段及び前記決定手段は、前記受信データの転送経路上において前記廃棄手段の上流側に設けられていることを特徴とする請求項１又は２に記載の通信制御装置。
【請求項４】
前記テーブル情報を複数備え、
少なくとも一つのテーブル情報は、前記算出値の増加量に対する閾値の減少量の割合が一定であり、他の一つのテーブル情報は、前記算出値の増加量に対する閾値の減少量の割合が変動することを特徴とする請求項１乃至３のいずれか１項に記載の通信制御装置。
【請求項５】
前記決定手段は、前回の一定周期で使用された閾値に基づいて、前記複数のテーブル情報の中から使用すべきテーブル情報を選択し、前回の一定周期で算出された算出値及び当該選択されたテーブル情報に応じて、閾値を決定することを特徴とする請求項４に記載の通信制御装置。
【請求項６】
前記請求項１乃至５のいずれか１項に記載の通信制御装置を備えることを特徴とする画像形成装置。
【請求項７】
通信制御装置を、
一定周期毎に受信データの個数を算出する算出手段、及び
前記受信データの個数が増加するほど前記受信データを廃棄するか否かの判断に使用される閾値が減少するテーブル情報を備え、前記算出手段による算出値及び前記テーブル情報に応じて、前記閾値を決定する決定手段と
して機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信制御装置、画像形成装置、及びプログラムに関する。
【背景技術】
【０００２】
従来より、ＣＰＵがパケットの受信によるＣＰＵへの割込回数が閾値を超えると判断した場合に、ＣＰＵが、予め決められた時間が経過するまで、受信パケットを廃棄するようにＮＩＣ（Network Interface Card）を制御するコンピュータシステムが知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−３４７８９４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の目的は、受信データ数に応じて、受信データを処理するＣＰＵにかかる負荷を動的に調整することができる通信制御装置、画像形成装置、及びプログラムを提供することにある。
【課題を解決するための手段】
【０００５】
上記目的を達成するため、請求項１の通信制御装置は、一定周期毎に受信データの個数を算出する算出手段と、前記受信データの個数が増加するほど前記受信データを廃棄するか否かの判断に使用される閾値が減少するテーブル情報を備え、前記算出手段による算出値及び前記テーブル情報に応じて、前記閾値を決定する決定手段とを備えることを特徴とする。
【０００６】
請求項２の通信制御装置は、請求項１の通信制御装置において、前記一定周期の長さを変更する変更手段を備えることを特徴とする。
【０００７】
請求項３の通信制御装置は、請求項１又は２に記載の通信制御装置において、前記受信データを廃棄する廃棄手段を更に備え、前記算出手段及び前記決定手段は、前記受信データの転送経路上において前記廃棄手段の上流側に設けられていることを特徴とする。
【０００８】
請求項４の通信制御装置は、請求項１乃至３のいずれか１項に記載の通信制御装置において、前記テーブル情報を複数備え、少なくとも一つのテーブル情報は、前記算出値の増加量に対する閾値の減少量の割合が一定であり、他の一つのテーブル情報は、前記算出値の増加量に対する閾値の減少量の割合が変動することを特徴とする。
【０００９】
請求項５の通信制御装置は、請求項４に記載の通信制御装置において、前記決定手段は、前回の一定周期で使用された閾値に基づいて、前記複数のテーブル情報の中から使用すべきテーブル情報を選択し、前回の一定周期で算出された算出値及び当該選択されたテーブル情報に応じて、閾値を決定することを特徴とする。
【００１０】
請求項６の画像形成装置は、前記請求項１乃至５のいずれか１項に記載の通信制御装置を備えることを特徴とする。
【００１１】
請求項７のプログラムは、通信制御装置を、一定周期毎に受信データの個数を算出する算出手段、及び前記受信データの個数が増加するほど前記受信データを廃棄するか否かの判断に使用される閾値が減少するテーブル情報を備え、前記算出手段による算出値及び前記テーブル情報に応じて、前記閾値を決定する決定手段として機能させることを特徴とする。
【発明の効果】
【００１２】
請求項１の発明によれば、受信データ数に応じて、受信データを処理するＣＰＵにかかる負荷を動的に調整することができる。
【００１３】
請求項２の発明によれば、一定周期の長さを変更することで、閾値を調整することができ、受信データを処理するＣＰＵにかかる負荷を動的に調整することができる。
【００１４】
請求項３の発明によれば、受信データの廃棄期間中も、受信データ数に応じて、受信データを処理するＣＰＵにかかる負荷を動的に調整することができる。
【００１５】
請求項４の発明によれば、多様な閾値の変更パターンを提供することができる。
【００１６】
請求項５の発明によれば、前回の一定周期で使用された閾値及び前回の一定周期で算出された算出値を考慮して閾値を決定することができる。
【００１７】
請求項６の発明によれば、受信データ数に応じて、受信データを処理するＣＰＵにかかる負荷を動的に調整することができる。
【００１８】
請求項７の発明によれば、受信データ数に応じて、受信データを処理するＣＰＵにかかる負荷を動的に調整することができる。
【図面の簡単な説明】
【００１９】
【図１】本実施の形態に係る画像形成装置の構成を示すブロック図である。
【図２】図１の通信制御部７の構成を示すブロック図である。
【図３】図２の受信部１１の構成を示すブロック図である。
【図４】（Ａ）〜（Ｄ）は、閾値ＬＵＴの例を示す図である。
【図５】サンプリング時間と閾値との関係を示す図である。
【図６】（Ａ）はサンプリング時間が長い場合の合計パケット数及び閾値の関係を示す図であり、（Ｂ）は、サンプリング時間が短い場合の合計パケット数及び閾値の関係を示す図である。
【図７】ＬＵＴ入力制御部２６で実行される処理を示すフローチャートである。
【図８】比較部３０で実行される処理を示すフローチャートである。
【発明を実施するための形態】
【００２０】
以下、本発明の実施の形態について、図面を参照して説明する。
【００２１】
図１は、本実施の形態に係る画像形成装置の構成を示すブロック図である。
【００２２】
図１の画像形成装置１は、例えば、複合機（ＭＦＰ(Multi Function Peripheral)である。画像形成装置１は、装置全体の動作を制御するＣＰＵ２、各種のプログラムやデータを記憶するメインメモリ３、バス５及びバス６をブリッジするバスブリッジ４、ネットワーク１０を介して他の装置（不図示）と通信する通信制御部７、画像を記録媒体上に形成する画像形成部８、及びユーザインタフェース（ＵＩ）９を備えている。
【００２３】
バス５及びバス６は、PCI（Peripheral Component Interconnect）バス又はPCI Expressバスで構成されている。ＣＰＵ２は、バスブリッジ４及びバス５を介してメインメモリ３及びＵＩ９と通信し、バスブリッジ４及びバス６を介して通信制御部７及び画像形成部８と通信する。通信制御部７は、通信制御装置としてのネットワークインタフェースカードである。画像形成部８は、ドラム、転写ベルト、現像器及び定着器等（不図示）を備えている。ＵＩ９は、例えば、タッチパネル式の表示装置であり、出力部数や出力方法等の設定や表示に使用される。また、ＵＩ９は、後述するサンプリングタイマのサンプリング間隔の設定に使用される。
【００２４】
図２は、図１の通信制御部７の構成を示すブロック図である。図２では、通信制御部７のパケットを受信する構成を示す。
【００２５】
通信制御部７は、受信部１１、フィルタ部１２（廃棄手段）、セレクタ１３及びＤＭＡ（Direct Memory Access）部１４を備えている。受信部１１は、ネットワーク１０からパケットを受信する。尚、受信部１１が受信するデータは、パケット形式のデータに限定されるものではない。フィルタ部１２は、受信部１１から出力された特定の受信パケットを廃棄する。廃棄される特定の受信パケットは、例えば、ブロードキャストパケット（自分宛のARP(Address Resolution Protocol)パケットを除く）である。尚、特定の受信パケットは、フィルタ部１２で受信した全パケットでもよい。また、以下の説明では、受信パケットは、ブロードキャストパケット（自分宛のARP(Address Resolution Protocol)パケットを除く）を指すものとする。セレクタ１３は、受信部１１からの選択信号に応じて、セレクタ１３と受信部１１との間の第１経路、又はセレクタ１３とフィルタ部１２との間の第２経路のいずれか一方を選択する。ＤＭＡ部１４は、受信パケットをメインメモリ３に出力すると共に、受信パケットのメインメモリ３への出力が終了したときに割込信号をＣＰＵ２へ出力する。ＣＰＵ２は割込信号を受信し、メインメモリ３に格納された受信パケットに所定の処理（例えば、受信パケットを展開し、画像データやテキストデータを取り出す処理）を実行する。また、通信制御部７は、受信パケットの転送経路（即ち、受信パケットがネットワーク１０からメインメモリ３へ転送される経路）上においてＣＰＵ２の上流側に設けられている。受信部１１は、受信パケットの転送経路上においてフィルタ部１２の上流側に設けられている。
【００２６】
受信部１１がネットワーク１０からパケットを受信すると、受信部１１が、パケットの受信数が閾値以上であるか否かを判別する。パケットの受信数が閾値以上である場合には、受信部１１は、第２経路を選択する選択信号をセレクタ１３に出力する。これにより、受信パケットはフィルタ部１２で廃棄され、ＤＭＡ部１４に出力されない。一方、パケットの受信数が閾値を超えない場合には、受信部１１は、第１経路を選択する選択信号をセレクタ１３に出力する。これにより、受信パケットは、セレクタ１３を介してＤＭＡ部１４に出力される。
【００２７】
図３は、図２の受信部１１の構成を示すブロック図である。
【００２８】
受信部１１は、水晶発振器２１、レジスタ２２、パルス発生回路２３、パケットカウンタ２４、サンプリングタイマ２５（算出手段、変更手段）、ルックアップテーブル（ＬＵＴ）入力制御部２６（決定手段）、閾値ＬＵＴ２７、保持部２８、ＦＩＦＯ（First-In First-Out）部２９及び比較部３０を備えている。水晶発振器２１は、クロックをパルス発生回路２３に出力する。レジスタ２２は、単位時間の設定情報をパルス発生回路２３に出力する。単位時間は、あるパルスの出力から次のパルスの出力までの期間である。単位時間の設定情報は、単位時間あたりのクロック数を示す。また、単位時間の設定情報は、画像形成装置１の初期化時に、ＣＰＵ２によりレジスタ２２に設定される。
【００２９】
パルス発生回路２３は、水晶発振器２１から出力されるクロックとレジスタ２２から出力される単位時間の設定情報とに基づいて、パルスを生成し、パケットカウンタ２４に出力する。パケットカウンタ２４は、パルス発生回路２３から出力されるパルス及びネットワーク１０からパケットを受信し、単位時間あたりのパケット数をカウントする。パケットカウンタ２４は、単位時間あたりのパケット数の値をサンプリングタイマ２５に出力する。
【００３０】
サンプリングタイマ２５は、パケットカウンタ２４から出力された、単位時間あたりのパケット数の値に、ＣＰＵ２から取得するサンプリング間隔を乗算することで、サンプリング時間の合計パケット数を算出する。サンプリングタイマ２５は、サンプリング時間の合計パケット数をＬＵＴ入力制御部２６及びＦＩＦＯ部２９に出力する。
【００３１】
サンプリング時間は、単位時間＊サンプリング間隔である。サンプリング時間の最小値は、単位時間である（サンプリング間隔＝１）。サンプリングタイマ２５は、単位時間あたりのパケット数の値を受信する度に単位時間の経過が分かる。サンプリング間隔は、画像形成装置１の初期化時に、ＣＰＵ２から取得する。また、ＣＰＵ２に設定されているサンプリング間隔の値は、ＵＩ９からの指示により変更可能である。つまり、サンプリングタイマ２５は、ＵＩ９からの指示によりサンプリング時間を変更する。
【００３２】
ＦＩＦＯ部２９は、サンプリング時間の合計パケット数を保持し、次のサンプリング時間の開始タイミングで比較部３０に出力する。
【００３３】
ＬＵＴ入力制御部２６は、閾値ＬＵＴ２７及び保持部２８を備えている。ＬＵＴ入力制御部２６は、サンプリング時間の合計パケット数を入力し、閾値ＬＵＴ２７に基づいて閾値を決定する。保持部２８は、サンプリング時間の合計パケット数及び決定されて閾値を保持し、保持された閾値を次のサンプリング時間の開始タイミングで出力する。
【００３４】
具体的には、ＬＵＴ入力制御部２６は、閾値を決定する２つ方法を有する。第１の方法では、ＬＵＴ入力制御部２６は、前回のサンプリング時間の合計パケット数及び閾値ＬＵＴ２７に基づいて閾値を決定する。第２の方法では、ＬＵＴ入力制御部２６は、前回のサンプリング時間の合計パケット数、前回のサンプリング時間の閾値及び閾値ＬＵＴ２７に基づいて閾値を決定する。第１の方法及び第２の方法のいずれを選択するかは、ＵＩ９で設定する。尚、閾値は、比較部３０が合計パケット数と比較するために使用する値である。換言すると、閾値は、フィルタ部１２の動作の有効又は無効を決定するための値、又は受信パケットを廃棄するか否かの判断に使用される値である。
【００３５】
比較部３０は、ＦＩＦＯ部２９から受信するサンプリング時間の合計パケット数をＬＵＴ入力制御部２６（保持部２８）から受信する閾値と比較する。比較の結果、サンプリング時間の合計パケット数が閾値以上である場合には、比較部３０は、フィルタ部１２の動作を有効にするトリガ信号「１」をフィルタ部１２に出力し、第２経路を選択する選択信号をセレクタ１３に出力する。これにより、受信パケットはフィルタ部１２で廃棄される。一方、サンプリング時間の合計パケット数が閾値を超えない場合には、比較部３０は、フィルタ部１２の動作を無効にするトリガ信号「０」をフィルタ部１２に出力し、第１経路を選択する選択信号をセレクタ１３に出力する。これにより、受信パケットはフィルタ部１２で廃棄されない。
【００３６】
図４（Ａ）は、ＬＵＴ入力制御部２６が前回のサンプリング時間の合計パケット数に基づいて閾値を決定する際に使用する閾値ＬＵＴの例を示す図である。図４（Ｂ），（Ｃ）は、ＬＵＴ入力制御部２６が前回のサンプリング時間の合計パケット数及び前回のサンプリング時間の閾値に基づいて閾値を決定する際に使用する２つの閾値ＬＵＴの例を示す図である。
【００３７】
図４（Ａ）〜（Ｃ）に示すように、閾値ＬＵＴ２７は、基本的に、サンプリング時間の合計パケット数が多いほど、閾値を下げる。また、閾値の上限値及び下限値並びに閾値ＬＵＴ上の直線の傾きは、ＣＰＵ２の処理能力によって変わる。
【００３８】
前回のサンプリング時間の合計パケット数に基づいて閾値が決定される場合は、ＬＵＴ入力制御部２６は、各サンプリング時間毎に、前回のサンプリング時間の合計パケット数及び図４（Ａ）の閾値ＬＵＴに基づいて閾値を決定する。
【００３９】
一方、前回のサンプリング時間の合計パケット数及び前回のサンプリング時間の閾値に基づいて閾値が決定される場合は、ＬＵＴ入力制御部２６は、各サンプリング時間毎に、前回のサンプリング時間の合計パケット数と前回のサンプリング時間の閾値との差分の絶対値に基づいて、使用すべき閾値ＬＵＴを図４（Ｂ）、（Ｃ）の閾値ＬＵＴの中から選択する。又は、ＬＵＴ入力制御部２６は、各サンプリング時間毎に、前回のサンプリング時間の閾値に基づいて、使用すべき閾値ＬＵＴを図４（Ｂ）、（Ｃ）の閾値ＬＵＴの中から選択する。その後、ＬＵＴ入力制御部２６は、各サンプリング時間毎に、前回のサンプリング時間の合計パケット数及び選択された閾値ＬＵＴに基づいて閾値を決定する。
【００４０】
例えば、図４（Ｂ）の閾値ＬＵＴは、前回のサンプリング時間の合計パケット数と前回のサンプリング時間の閾値との差分の絶対値が第１所定値（例えば１０００）以上である場合に使用されるものとし、図４（Ｃ）の閾値ＬＵＴは、前回のサンプリング時間の合計パケット数と前回のサンプリング時間の閾値との差分の絶対値が第１所定値（例えば１０００）未満である場合に使用されるものとする。
【００４１】
ＬＵＴ入力制御部２６は、前回のサンプリング時間の合計パケット数と前回のサンプリング時間の閾値との差分の絶対値が第１所定値（例えば１０００）以上であれば、図４（Ｂ）の閾値ＬＵＴを選択し、各サンプリング時間毎に、前回のサンプリング時間の合計パケット数及び図４（Ｂ）の閾値ＬＵＴに基づいて閾値を決定する。また、閾値ＬＵＴ部２７は、前回のサンプリング時間の合計パケット数と前回のサンプリング時間の閾値との差分の絶対値が第１所定値（例えば１０００）未満であれば、図４（Ｃ）の閾値ＬＵＴを選択し、各サンプリング時間毎に、図４（Ｃ）の閾値ＬＵＴ及び前回のサンプリング時間の合計パケット数に基づいて閾値を決定する。尚、上記第１所定値は、ＵＩ９により適宜変更可能である。
【００４２】
また、例えば、図４（Ｂ）の閾値ＬＵＴは、前回のサンプリング時間の閾値が第２所定値（例えば２０００）以上である場合に使用されるものとし、図４（Ｃ）の閾値ＬＵＴは、前回のサンプリング時間の閾値が第２所定値（例えば２０００）未満である場合に使用されるものとする。
【００４３】
ＬＵＴ入力制御部２６は、前回のサンプリング時間の閾値が第２所定値（例えば２０００）以上であれば、図４（Ｂ）の閾値ＬＵＴを選択し、各サンプリング時間毎に、前回のサンプリング時間の合計パケット数及び図４（Ｂ）の閾値ＬＵＴに基づいて閾値を決定する。また、閾値ＬＵＴ部２７は、前回のサンプリング時間の閾値が第２所定値（例えば２０００）未満であれば、図４（Ｃ）の閾値ＬＵＴを選択し、各サンプリング時間毎に、図４（Ｃ）の閾値ＬＵＴ及び前回のサンプリング時間の合計パケット数に基づいて閾値を決定する。尚、上記第２所定値は、ＵＩ９により適宜変更可能である。
【００４４】
閾値ＬＵＴの個数は、ＬＵＴ入力制御部２６の記憶容量に応じて決定される。ＬＵＴ入力制御部２６は１つの閾値ＬＵＴを備えてもよいし、複数の閾値ＬＵＴを備えてもよい。閾値ＬＵＴの個数が多いほど、閾値の変更パターンは増加する。
【００４５】
図４（Ａ）の閾値ＬＵＴでは、サンプリング時間の合計パケット数の任意の地点Ａからサンプリング時間の合計パケット数が１００増加する（地点Ｂ）と、閾値が１００減少するように、サンプリング時間の合計パケット数の増加量に対する閾値の減少量の割合は、固定（一定）である。また、図４（Ｂ）、（Ｃ）の閾値ＬＵＴでも同様に、サンプリング時間の合計パケット数の増加量に対する閾値の減少量の割合は、固定（一定）である。図４（Ａ）〜（Ｃ）の閾値ＬＵＴは、例えば、図４（Ｄ）、（Ｅ）のような閾値ＬＵＴでもよい。図４（Ｄ）、（Ｅ）の場合、サンプリング時間の合計パケット数の増加量に対する閾値の減少量の割合が変動する。図４（Ｄ）では、第１区間ｘにおけるサンプリング時間の合計パケット数＞第２区間ｙにおけるサンプリング時間の合計パケット数の関係が成立する場合に、第１区間ｘにおけるサンプリング時間の合計パケット数の増加量に対する閾値の減少量の割合は、第２区間ｙにおけるサンプリング時間の合計パケット数の増加量に対する閾値の減少量の割合よりも大きい。一方、図４（Ｄ）では、第１区間ｘにおけるサンプリング時間の合計パケット数＞第２区間ｙにおけるサンプリング時間の合計パケット数の関係が成立する場合に、第１区間ｘにおけるサンプリング時間の合計パケット数の増加量に対する閾値の減少量の割合は、第２区間ｙにおけるサンプリング時間の合計パケット数の増加量に対する閾値の減少量の割合よりも小さい。
【００４６】
ＬＵＴ入力制御部２６が図４（Ａ）〜（Ｃ）の閾値ＬＵＴに加えて、図４（Ｄ）、（Ｅ）の少なくとも一方を備える場合、多様な閾値の変更パターンが提供される。つまり、ＣＰＵ２にかかる負荷を調整する複数の方法が提供される。
【００４７】
図５は、サンプリング時間と閾値との関係を示す図である。
【００４８】
閾値が前回のサンプリング時間の合計パケット数に基づいて決定される場合は、具体的には、閾値はＬＵＴ入力制御部２６によって下記のように決定される。
【００４９】
サンプリング時間が「１」の場合、時間ｎ−１の閾値Ａは、時間ｎ−２の合計パケット数α及び図４（Ａ）の閾値ＬＵＴに基づいて決定される。時間ｎの閾値Ｂは、時間ｎ−１の合計パケット数β及び図４（Ａ）の閾値ＬＵＴに基づいて決定される。一方、サンプリング時間が「２」の場合、時間ｎの閾値Ｃは、時間ｎ−２の合計パケット数α及び図４（Ａ）の閾値ＬＵＴに基づいて決定される。
【００５０】
閾値が、前回のサンプリング時間の合計パケット数及び前回のサンプリング時間の閾値に基づいて決定される場合は、具体的には、閾値はＬＵＴ入力制御部２６によって下記のように決定される。
【００５１】
サンプリング時間が「１」の場合、時間ｎ−１の閾値Ａは、時間ｎ−２の合計パケット数αと閾値Ｚとの差分の絶対値、又は時間ｎ−２の合計パケット数αに応じて、図４（Ｂ）又は図４（Ｃ）のいずれかの閾値ＬＵＴが選択された後に、選択された閾値ＬＵＴと時間ｎ−２の合計パケット数αに基づいて決定される。時間ｎの閾値Ｂは、時間ｎ−１の合計パケット数βと閾値Ａとの差分の絶対値、又は時間ｎ−１の合計パケット数βに応じて、図４（Ｂ）又は図４（Ｃ）のいずれかの閾値ＬＵＴが選択された後に、選択された閾値ＬＵＴと時間ｎ−１の合計パケット数βに基づいて決定される。一方、サンプリング時間が「１」の場合、時間ｎ−１の閾値Ｃは、時間ｎ−２の合計パケット数αと閾値Ｚとの差分の絶対値、又は時間ｎ−２の合計パケット数αに応じて、図４（Ｂ）又は図４（Ｃ）のいずれかの閾値ＬＵＴが選択された後に、選択された閾値ＬＵＴと時間ｎ−２の合計パケット数αに基づいて決定される。
【００５２】
図５において、サンプリング時間が「１」の場合、閾値Ｚは、サンプリング時間が２つ進むことによって、閾値Ｂになる。これに対して、サンプリング時間が「２」の場合、閾値Ｚは、サンプリング時間が２つ進むことによって、閾値Ｃになる。このように、サンプリング時間の長さを変えるによって、閾値は調整可能である。
【００５３】
また、サンプリング時間が「１」の場合、時間ｎの合計パケット数γは時間ｎの閾値Ｂ以上なので、受信パケットはフィルタ部１２で廃棄される。一方、サンプリング時間が「２」の場合、時間ｎの合計パケット数γは時間ｎの閾値Ｃ未満なので、受信パケットはフィルタ部１２で廃棄されない。このように、サンプリング時間の長さを変えることによって、受信パケットの廃棄量は調整可能であり、ＣＰＵ２にかかる負荷も調整される。
【００５４】
図６（Ａ）は、サンプリング時間が長い場合の合計パケット数及び閾値の関係を示す図であり、図６（Ｂ）は、サンプリング時間が短い場合の合計パケット数及び閾値の関係を示す図である。
【００５５】
図６（Ａ）、（Ｂ）では、合計パケット数を太線で示し、閾値を一点鎖線で示し、サンプリング時間を点線で示している。また、比較部３０の更新タイミングを黒点で示す。ＦＩＦＯ部２９がサンプリング時間の合計パケット数を、１サンプリング時間分遅らせて、比較部３０に出力するので、比較部３０の更新タイミングは、合計パケット数のグラフから１サンプリング時間分遅くなっている。
【００５６】
本実施の形態では、ＬＵＴ入力制御部２６が、図４（Ａ）〜（Ｃ）のいずれかの閾値ＬＵＴとサンプリング時間の合計パケット数に基づいて、各サンプリング時間毎に、閾値を変更するので、合計パケット数が図６（Ａ）、（Ｂ）の太線のように変化する場合、閾値は、図６（Ａ）、（Ｂ）に示す一点鎖線のように変化する。即ち、合計パケット数が増加する場合、ＬＵＴ入力制御部２６が閾値を下げることで、受信パケットは廃棄され、ＣＰＵ２にかかる負荷を軽減する。逆に、合計パケット数が減少する場合、ＬＵＴ入力制御部２６が閾値を上げることで、ＣＰＵ２の負荷が重くない範囲でＣＰＵ２がパケット処理できるようにする。従って、受信パケット数に応じて、受信パケットを処理するＣＰＵ２にかかる負荷が動的に調整される。
【００５７】
図７は、ＬＵＴ入力制御部２６で実行される処理を示すフローチャートである。
【００５８】
まず、ＬＵＴ入力制御部２６は、閾値を決定する設定が前回のサンプリング時間の閾値を使用する設定であるか否かを判別する（ステップＳ１）。閾値を決定する設定は、ＬＵＴ入力制御部２６に含まれており、ＵＩ９によって変更可能である。
【００５９】
ステップＳ１でＹＥＳの場合には、ＬＵＴ入力制御部２６は、前回のサンプリング時間の合計パケット数及び前回のサンプリング時間の閾値に応じて、使用すべき閾値ＬＵＴを選択する（ステップＳ２）。上述したように、例えば、前回のサンプリング時間の合計パケット数と前回のサンプリング時間の閾値との差分の絶対値が第１所定値（例えば１０００）以上であれば、ＬＵＴ入力制御部２６は、図４（Ｂ）の閾値ＬＵＴを選択し、前回のサンプリング時間の合計パケット数と前回のサンプリング時間の閾値との差分の絶対値が第１所定値（例えば１０００）未満であれば、ＬＵＴ入力制御部２６は、図４（Ｃ）の閾値ＬＵＴを選択する。また、前回のサンプリング時間の閾値が第２所定値（例えば２０００）以上であれば、ＬＵＴ入力制御部２６は、図４（Ｂ）の閾値ＬＵＴを選択し、前回のサンプリング時間の閾値が第２所定値（例えば２０００）未満であれば、ＬＵＴ入力制御部２６は、図４（Ｃ）の閾値ＬＵＴを選択する。
【００６０】
ＬＵＴ入力制御部２６は、選択された閾値ＬＵＴ及び前回のサンプリング時間の合計パケット数に基づいて閾値を決定する（ステップＳ３）。ＬＵＴ入力制御部２６内の保持部２８が、次のサンプリング時間まで閾値及び今回のサンプリング時間の合計パケット数を保持し、次のサンプリング時間の開始タイミングで閾値を比較部３０に出力する（ステップＳ４）。その後、ステップＳ１に戻る。
【００６１】
ステップＳ１でＮＯの場合には、ＬＵＴ入力制御部２６は、予め決められた閾値ＬＵＴ（例えば、図４（Ａ）の閾値ＬＵＴ）及び前回のサンプリング時間の合計パケット数に基づいて閾値を決定し（ステップＳ５）、ステップＳ４に進む。
【００６２】
図８は、比較部３０で実行される処理を示すフローチャートである。
【００６３】
比較部３０は、ＦＩＦＯ部２９から合計パケット数を、ＬＵＴ入力制御部２６内の保持部２８から閾値を取得し（ステップＳ１１）、合計パケット数が閾値以上であるか否かを判別する（ステップＳ１２）。
【００６４】
ステップＳ１２でＹＥＳの場合には、比較部３０は、フィルタ部１２の動作を有効にするトリガ信号「１」をフィルタ部１２に出力し、第２経路を選択する選択信号をセレクタ１３に出力し（ステップＳ１３）、本処理を終了する。一方、ステップＳ１２でＮＯの場合には、比較部３０は、フィルタ部１２の動作を無効にするトリガ信号「０」をフィルタ部１２に出力し、第１経路を選択する選択信号をセレクタ１３に出力し（ステップＳ１４）、本処理を終了する。フィルタ部１２がトリガ信号「１」を受信したときのみフィルタ部１２の動作が有効になる場合は、ステップＳ１４で比較部３０は、フィルタ部１２に何も出力しなくてもよい。
【００６５】
以上説明したように、本実施の形態によれば、通信制御部７が、一定周期（サンプリング時間）毎に合計パケット数を算出するサンプリングタイマ２５と、受信パケットの個数が増加するほど受信パケットを廃棄するか否かの判断に使用される閾値が減少するテーブル情報を備え、サンプリングタイマ２５による算出値及びテーブル情報に応じて、閾値を決定するＬＵＴ入力制御部２６とを備えている。よって、受信パケットの個数に応じて、受信パケットを廃棄するか否かの判断に使用される閾値が変更され、受信データを処理するＣＰＵ２にかかる負荷が動的に調整される。また、従来、受信パケットの個数に相当する割込信号のカウント処理や受信パケットの廃棄判断処理に使用されていたＣＰＵのリソースは、他の処理に割り当てることが可能である。さらに、従来、突発的に又は局所的にパケット数が増加し、受信パケット数が閾値以上である場合、予め決められた期間、フィルタが有効になるため、必要以上に受信パケットが廃棄されることがあった。これに対して、本実施の形態では、サンプリング時間毎に閾値が決定される、即ち、サンプリング時間毎に閾値が変動可能なので、必要以上に受信パケットが廃棄されることが回避される。
【００６６】
また、サンプリングタイマ２５は、ＵＩ９から指示によって、サンプリング時間の長さを変更する。サンプリング時間の長さを変更することによって閾値は調整され、受信データを処理するＣＰＵ２にかかる負荷も動的に調整される。
【００６７】
通信制御装置（即ち通信制御部７）の機能を実現するためのソフトウェアのプログラムが記録されている記録媒体を、通信制御装置に供給し、受信部１１１が記憶媒体に格納されたプログラムを読み出し実行することによっても、上記実施の形態と同様の効果を奏する。プログラムを供給するための記憶媒体としては、例えば、ＣＤ−ＲＯＭ、ＤＶＤ、又はＳＤカードなどがある。
【００６８】
また、通信制御装置が、通信制御装置の機能を実現するためのソフトウェアのプログラムを実行することによっても、上記実施の形態と同様の効果を奏する。
【符号の説明】
【００６９】
１  複合機
２  ＣＰＵ
３  メインメモリ
７  通信制御部
１１  受信部
１２  フィルタ部
１３  セレクタ
１４  ＤＭＡ（Direct Memory Access）部
２１  水晶発振器
２２  レジスタ
２３  パルス発生回路
２４  パケットカウンタ
２５  サンプリングタイマ
２６  ＬＵＴ入力制御部
２７  閾値ＬＵＴ
２８  保持部
２９  ＦＩＦＯ部
３０  比較部
【図１】
0005423516.tif 000002
【図２】
0005423516.tif 000003
【図３】
0005423516.tif 000004
【図４】
0005423516.tif 000005
【図５】
0005423516.tif 000006
【図６】
0005423516.tif 000007
【図７】
0005423516.tif 000008
【図８】
0005423516.tif 000009