(57)【要約】【課題】制御手段におけるソフトウェア的な処理負荷を軽減するためのハードウェア的な実行手段を設けた場合に、制御手段の処理負荷が逆に増加してしまうような事態を防ぐ。【解決手段】ステップ数算出部５１は、受信されたパケットデータに対してチェックサム算出処理を実行するためのステップ数を算出する。比較器５２は、算出されたステップ数が、予め設定された閾値以上の場合には、受信されたパケットデータに対するチェックサム算出処理をオフロードエンジンにおいてハードウェア的に実行すると判定し、算出されたステップ数が、予め設定された閾値より小さい場合には、受信されたパケットデータに対するチェックサム算出処理をＣＰＵにおいてソフトウェア的に実行すると判定する。【選択図】図５
2011228938.tif 000002
【特許請求の範囲】
【請求項１】
外部から送信されてきたデータを受信する受信手段と、
前記受信手段により受信されたデータに対する処理を制御する制御手段と、
前記制御手段が行うべき処理のうちの一部の特定の処理を前記制御手段に代わって実行する実行手段と、
前記受信手段により受信されたデータに対して前記特定の処理を実行するための負荷量を算出する算出手段と、
前記算出手段により算出された負荷量に基づいて、前記受信手段により受信されたデータに対する前記特定の処理を前記制御手段において実行するのか、前記実行手段において実行するのかを判定する判定手段と、
を備えた通信装置。
【請求項２】
前記判定手段は、前記算出手段により算出された負荷量が予め設定された閾値以上の場合には、前記受信手段により受信されたデータに対する前記特定の処理を前記実行手段において実行すると判定し、前記算出手段により算出された負荷量が前記閾値より小さい場合には、前記受信手段により受信されたデータに対する前記特定の処理を前記制御手段において実行すると判定する請求項１記載の通信装置。
【請求項３】
前記実行手段により前記制御手段に代わって実行される特定の処理が、受信されたデータに対するチェックサム算出処理である請求項１または２記載の通信装置。
【請求項４】
前記算出手段が算出する負荷量が、前記特定の処理を実行するための処理ステップ数であり、前記閾値は、前記制御手段において割込み処理を実行した際に必要となる処理ステップ数に基づいて設定される請求項１から３のいずれか１項記載の通信装置。
【請求項５】
外部から送信されてきたデータを受信する受信手段と、
前記受信手段により受信されたデータに対する処理を制御する制御手段と、
前記制御手段が行うべき処理のうちの一部の特定の処理を前記制御手段に代わって実行する実行手段と、
前記受信手段により受信されたデータに対して前記特定の処理を実行するための負荷量を算出する算出手段と、
前記算出手段により算出された負荷量に基づいて、前記受信手段により受信されたデータに対する前記特定の処理を前記制御手段において実行するのか、前記実行手段において実行するのかを判定する判定手段と、
前記制御手段により処理された後のデータに基づいて画像を出力する出力手段と、
を備えた画像形成装置。
【請求項６】
外部から送信されてきたデータを受信する受信するステップと、
受信されたデータに対して行うべき処理のうちの一部の特定の処理を実行するための負荷量を算出するステップと、
算出された前記負荷量に基づいて、受信されたデータに対する前記特定の処理を、受信されたデータに対する処理を制御する制御手段において実行するのか、前記制御手段が行うべき前記特定の処理を前記制御手段に代わって実行する実行手段において実行するのかを判定するステップとをコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置、画像形成装置およびプログラムに関する。
【背景技術】
【０００２】
特許文献１には、同時に実行される複数のアプリケーション通信について、ＴＯＥ（TCP/IP offload Engine）を備えるハードウェア通信部によるハードウェア通信またはソフトウェア通信手段によるソフトウェア通信への割り当て処理を、各アプリケーション通信にかかる基準情報に基づいて実行する通信装置が開示されている。
【０００３】
特許文献２には、送信データの送信要求が、ＴＯＥでプロトコル処理可能な所定のプロトコルを用いた送信であるか否かを判断し、所定のプロトコルを用いた送信であると判断された場合に、その送信データをＴＯＥに対して受け渡す通信制御装置が開示されている。
【０００４】
特許文献３、４には、受信データのＴＣＰプロトコル解析処理をソフトウェアにより行うのかハードウェアにより行うのかを、各ネットワークデバイスの通信量に基づいて判断する通信制御装置が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−３１２０９４号公報
【特許文献２】特開２００９−０５３７７０号公報
【特許文献３】特開２００９−０５５１３３号公報
【特許文献４】特開２００９−０５５１３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、制御手段におけるソフトウェア的な処理負荷を軽減するためのハードウェア的な実行手段を設けた場合に、制御手段の処理負荷が逆に増加してしまうような事態を防ぐことが可能な通信装置、画像形成装置およびプログラムを提供することである。
【課題を解決するための手段】
【０００７】
［通信装置］
請求項１に係る本発明は、外部から送信されてきたデータを受信する受信手段と、
前記受信手段により受信されたデータに対する処理を制御する制御手段と、
前記制御手段が行うべき処理のうちの一部の特定の処理を前記制御手段に代わって実行する実行手段と、
前記受信手段により受信されたデータに対して前記特定の処理を実行するための負荷量を算出する算出手段と、
前記算出手段により算出された負荷量に基づいて、前記受信手段により受信されたデータに対する前記特定の処理を前記制御手段において実行するのか、前記実行手段において実行するのかを判定する判定手段とを備えた通信装置である。
【０００８】
請求項２に係る本発明は、前記判定手段が、前記算出手段により算出された負荷量が予め設定された閾値以上の場合には、前記受信手段により受信されたデータに対する前記特定の処理を前記実行手段において実行すると判定し、前記算出手段により算出された負荷量が前記閾値より小さい場合には、前記受信手段により受信されたデータに対する前記特定の処理を前記制御手段において実行すると判定する請求項１記載の通信装置である。
【０００９】
請求項３に係る本発明は、前記実行手段により前記制御手段に代わって実行される特定の処理が、受信されたデータに対するチェックサム算出処理である請求項１または２記載の通信装置である。
【００１０】
請求項４に係る本発明は、前記算出手段が算出する負荷量が、前記特定の処理を実行するための処理ステップ数であり、前記閾値は、前記制御手段において割込み処理を実行した際に必要となる処理ステップ数に基づいて設定される請求項１から３のいずれか１項記載の通信装置である。
【００１１】
［画像形成装置］
請求項５に係る本発明は、外部から送信されてきたデータを受信する受信手段と、
前記受信手段により受信されたデータに対する処理を制御する制御手段と、
前記制御手段が行うべき処理のうちの一部の特定の処理を前記制御手段に代わって実行する実行手段と、
前記受信手段により受信されたデータに対して前記特定の処理を実行するための負荷量を算出する算出手段と、
前記算出手段により算出された負荷量に基づいて、前記受信手段により受信されたデータに対する前記特定の処理を前記制御手段において実行するのか、前記実行手段において実行するのかを判定する判定手段と、
前記制御手段により処理された後のデータに基づいて画像を出力する出力手段とを備えた画像形成装置である。
【００１２】
［プログラム］
請求項６に係る本発明は、外部から送信されてきたデータを受信する受信するステップと、
受信されたデータに対して行うべき処理のうちの一部の特定の処理を実行するための負荷量を算出するステップと、
算出された前記負荷量に基づいて、受信されたデータに対する前記特定の処理を、受信されたデータに対する処理を制御する制御手段において実行するのか、前記制御手段が行うべき前記特定の処理を前記制御手段に代わって実行する実行手段において実行するのかを判定するステップとをコンピュータに実行させるためのプログラムである。
【発明の効果】
【００１３】
請求項１に係る本発明によれば、制御手段におけるソフトウェア的な処理負荷を軽減するためのハードウェア的な実行手段を設けた場合に、制御手段の処理負荷が逆に増加してしまうような事態を防ぐことが可能な通信装置を提供することができるという効果が得られる。
【００１４】
請求項２に係る本発明によれば、制御手段におけるソフトウェア的な処理負荷を軽減するためのハードウェア的な実行手段を設けた場合に、制御手段の処理負荷が逆に増加してしまうような事態を防ぐことが可能な通信装置を提供することができるという効果が得られる。
【００１５】
請求項３に係る本発明によれば、制御手段におけるチェックサム算出処理のソフトウェア的な処理負荷を軽減するためのハードウェア的な実行手段を設けた場合に、制御手段の処理負荷が逆に増加してしまうような事態を防ぐことが可能な通信装置を提供することができるという効果が得られる。
【００１６】
請求項４に係る本発明によれば、制御手段におけるソフトウェア的な処理負荷を軽減するためのハードウェア的な実行手段を設けた場合に、制御手段の処理ステップ数が逆に増加してしまうような事態を防ぐことが可能な通信装置を提供することができるという効果が得られる。
【００１７】
請求項５に係る本発明によれば、制御手段におけるソフトウェア的な処理負荷を軽減するためのハードウェア的な実行手段を設けた場合に、制御手段の処理負荷が逆に増加してしまうような事態を防ぐことが可能な画像形成装置を提供することができるという効果が得られる。
【００１８】
請求項６に係る本発明によれば、制御手段におけるソフトウェア的な処理負荷を軽減するためのハードウェア的な実行手段を設けた場合に、制御手段の処理負荷が逆に増加してしまうような事態を防ぐことが可能なプログラムを提供することができるという効果が得られる。
【図面の簡単な説明】
【００１９】
【図１】本発明の一実施形態の画像形成システムのシステム構成を示す図である。
【図２】本発明の一実施形態における画像形成装置１０のハードウェア構成を示すブロック図である。
【図３】本発明の一実施形態における画像形成装置１０の機能構成を示すブロック図である。
【図４】図３中の通信制御部３１の詳細な構成を説明するための図である。
【図５】図４に示した切替制御部４３の構成を説明するための図である。
【図６】受信したパケットデータのチェックサム算出のために必要なプログラムのステップ数を計算する具体的を説明するための図である。
【図７】ＣＰＵ３２の割込み処理時に必要なステップ数を算出する具体的を説明するための図である。
【図８】本発明の一実施形態の画像形成装置１０において受信されたパケットデータのチェックサム算出を行う際の処理の流れを図８のフローチャートを参照して説明する。
【発明を実施するための形態】
【００２０】
次に、本発明の実施の形態について図面を参照して詳細に説明する。図１は本発明の一実施形態の画像形成システムの構成を示すブロック図である。
【００２１】
本発明の一実施形態の画像形成システムは、図１に示されるように、ネットワーク３０により相互に接続された画像形成装置１０、端末装置２０およびサーバ２１により構成される。端末装置２０は、印刷データを生成して、ネットワーク３０経由にて生成した印刷データを画像形成装置１０に対してサーバ２１を経由して、または直接送信する。画像形成装置１０は、端末装置２０やサーバ２１から送信された印刷データを受け付けて、この印刷データに応じた画像を用紙上に出力する。なお、画像形成装置１０は、印刷（プリント）機能、スキャン機能、複写（コピー）機能、ファクシミリ機能等の複数の機能を有するいわゆる複合機と呼ばれる装置である。
【００２２】
次に、本実施形態の画像形成システムにおける画像形成装置１０のハードウェア構成を図２に示す。
【００２３】
画像形成装置１０は、図２に示されるように、ＣＰＵ１１、メモリ１２、ハードディスクドライブ（ＨＤＤ）等の記憶装置１３、ネットワーク３０を介して外部の装置等との間でデータの送信及び受信を行う通信インタフェース（ＩＦ）１４、タッチパネル又は液晶ディスプレイ並びにキーボードを含むユーザインタフェース（ＵＩ）装置１５、スキャナ１６、プリントエンジン１７を有する。これらの構成要素は、制御バス１８を介して互いに接続されている。
【００２４】
ＣＰＵ１１は、メモリ１２または記憶装置１３に格納された制御プログラムに基づいて所定の処理を実行して、画像形成装置１０の動作を制御する。なお、本実施形態では、ＣＰＵ１１は、メモリ１２または記憶装置１３内に格納された制御プログラムを読み出して実行するものとして説明したが、当該プログラムをＣＤ−ＲＯＭ等の記憶媒体に格納してＣＰＵ１１に提供することも可能である。
【００２５】
図３は、上記の制御プログラムが実行されることにより実現される画像形成装置１０の機能構成を示すブロック図である。
【００２６】
本実施形態の画像形成装置１０は、図３に示されるように、通信制御部３１と、ＣＰＵ３２と、バスブリッジ３３と、メインメモリ３４と、画像処理部３５と、画像処理用メモリ３６と、画像出力部３７とを備えている。また、通信制御部３１は、パケット受信部４１と、オフロードエンジン４２とを備えている。
【００２７】
ＣＰＵ３２は、通信制御部４２のパケット受信部４１により受信されたパケットデータに対する処理を制御する制御手段として機能する。バスブリッジ３３は、メインメモリ３４等が接続されたバスラインと、画像処理部３５および通信制御部３１等が接続されたバスラインとの間でデータの橋渡しを行う。
【００２８】
メインメモリ３４は、ＣＰＵ３２が各種制御を行う際のデータを格納するためのメモリである。画像処理部３５は、端末装置２０やサーバ２１から出力を指示された画像データに対して色変換、階調補正等の各種画像処理を行なう。画像処理用メモリ３６は、画像処理部３５による画像処理が行われる際に使用されるメモリである。
【００２９】
画像出力部３７は、ＣＰＵ３２からの指示に基づいて画像処理部３５において画像処理された後の画像データに基づいて印刷用紙上に画像を出力する。
【００３０】
パケット受信部４１は、ネットワーク３０を介して外部から送信されてきた画像データ等をパケットデータとして受信する。
【００３１】
オフロードエンジン４２は、ＣＰＵ３２が行うべきＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol)処理のうちの一部の処理であるチェックサム算出処理をＣＰＵ３２に代わってハードウェア的に実行することにより、ＣＰＵ３２の処理負荷を軽減するものである。ここで、チェックサムとは、誤り検出符号の一種であり、例えば、パケットデータを複数のワード単位で加算することにより得られる総和である。
【００３２】
なお、本実施形態におけるオフロードエンジン４２は、ＣＰＵ３２が行うべき処理のうちチェックサム算出処理のみを代わりに実行するものとして説明するが、ＣＰＵ３２が行うべき処理のうちの一部の特定の処理を代行するものであれば良い。
【００３３】
次に、図３に示した通信制御部３１の詳細な構成について図４を参照して説明する。
通信制御部３１は、図４に示されるように、パケット受信部４１とオフロードエンジン４２に加えて、切替制御部４３と、切替器４４をさらに備えている。
【００３４】
切替制御部４３は、パケット受信部４１により受信されたパケットデータのパケットサイズ情報に基づいて、受信されたパケットデータのチェックサム処理をオフロードエンジン４２においてハードウェア的に実行すべきなのか、ＣＰＵ３２においてソフトウェア的に実行すべきなのかを判定して、切替信号を出力することにより切替器４４を制御する。
【００３５】
具体的には、切替制御部４３は、パケット受信部４１により受信されたパケットデータのチェックサム算出処理をソフトウェア的に処理すべきである場合には、切替信号をソフトウェア処理側に設定するとともに、ソフトウェアによるチェックサム算出処理の開始をＣＰＵ３２に対して指示するための開始指示を出力する。また、切替制御部４３は、パケット受信部４１により受信されたパケットデータのチェックサム算出処理をハードウェア的に処理すべきである場合には、切替信号をハードウェア処理側に設定する。
【００３６】
オフロードエンジン４２は、パケット受信部４１により受信されたパケットデータのチェックサム算出処理をハードウェア的に実行し、そのチェックサム算出処理が終了すると、終了通知を出力する。そして、ＣＰＵ３２は、終了通知によりチェックサム算出処理が終了したことを知ると、そのチェックサム算出結果を読み取るような構成となっている。
【００３７】
切替器４４は、切替制御部４３から出力された切替信号に基づいて、切替制御部４３からの開始信号、またはオフロードエンジン４２からの終了通知のいずれかをＣＰＵ３２に出力する。具体的には、切替信号がソフトウェア処理側に設定されている場合には、切替制御部４３からの開始指示をＣＰＵ３２に出力し、切替信号がハードウェア処理側に設定されている場合には、オフロードエンジン４２からの終了通知をＣＰＵ３２に出力する。
【００３８】
次に、図４に示した切替制御部４３の構成について図５を参照して説明する。
切替制御部４３は、図５に示されるように、ステップ数算出部５１と、比較器５２と、開始指示出力部５３とを備えている。
【００３９】
ステップ数算出部５１は、パケット受信部４１により受信されたパケットデータに対してチェックサム算出処理を実行するための負荷量を算出する。ここで負荷量とは、具体的には、チェックサム算出のために必要なプログラムのステップ数である。
【００４０】
ここで、受信したパケットデータのチェックサム算出のために必要なプログラムのステップ数を計算する具体的を図６を参照して説明する。
【００４１】
このチェックサム算出処理のために必要なステップ数は、チェックサムを算出しようとするパケットデータのデータサイズと、ＣＰＵ３２の処理ビット数により算出することができる。
【００４２】
例えば、図６に示された例では、パケットデータのデータサイズが３２バイトであり、ＣＰＵ３２の処理ビット数が４バイト（３２ビット）である場合が示されている。
【００４３】
この図６に示された例では、３２バイトのパケットデータを４バイト毎に読み出す（リードする）ためのステップ数として８（３２／４）ステップが必要となる。また、読み出した４バイトのデータを順次排他的論理和演算（ＸＯＲ）して行くためのステップ数として７（８−１）ステップが必要となる。つまり、この図６に示された例では、ＣＰＵ３２においてチェックサム算出処理のために必要なステップ数は１５ステップであると算出される。
【００４４】
このように、チェックサム算出処理のために必要なステップ数Ａは、下記の式により算出することができる。
ステップ数Ａ＝パケットサイズ／処理ビット数×２−１
【００４５】
そのため、例えば、パケットデータのデータサイズが１０００バイトのように大きい場合には、ステップ数Ａ＝１０００／４×２−１＝４９９ステップとなる。
【００４６】
比較器（判定部）５２は、ステップ数算出部５１により算出されたステップ数に基づいて、パケット受信部４１により受信されたパケットデータに対するチェックサム算出処理をＣＰＵ３２において実行するのか、オフロードエンジン４２において実行するのかを判定する。具体的には、比較器５２は、ステップ数算出部５１により算出されたステップ数が、予め設定された閾値以上の場合には、パケット受信部４１により受信されたパケットデータに対するチェックサム算出処理をオフロードエンジン４２において実行すると判定する。そして、比較器５２は、ステップ数算出部５１により算出されたステップ数が、予め設定された閾値より小さい場合には、パケット受信部４１により受信されたパケットデータに対するチェックサム算出処理をＣＰＵ３２においてソフトウェア的に実行すると判定する。なお、比較器５２における比較結果は、切替信号として切替器４４に出力される。
【００４７】
ここで、この閾値は、ＣＰＵ３２において割込み処理を実行した際に必要となるステップ数に基づいて設定される。図７を参照して、ＣＰＵ３２の割込み処理時に必要なステップ数を算出する具体的を図７を参照して説明する。
【００４８】
ＣＰＵ３２では、オフロードエンジン４２からチェックサム算出処理が終了した旨の終了通知による割込みが発生すると、現在実行中の処理を一時中断して、チェックサム算出結果を取り出す処理を実行する必要がある。そして、ＣＰＵ３２では、現在実行中の処理を一時中断する際には、現在実行中の処理に関するデータを一時メインメモリ３４に退避する必要がある。具体的には、ＣＰＵ３２では、内部に有するレジスタ５１のデータをメインメモリ３４に書込む処理が必要となる。
【００４９】
ここで、ＣＰＵ３２内部のレジスタ５１の数が２０ある場合を例として説明する。この場合、ＣＰＵ３２は、レジスタ５１内のデータを読み出す処理（リード処理）と、読み出したデータをメインメモリ３４に書き込む処理（ライト処理）を、それぞれ２０回実行する必要がある。そして、最後にオフロードエンジン４２のレジスタからチェックサム算出結果を読み出す処理（リード処理）を行う。
【００５０】
よって、ＣＰＵ３２においてチェックサム算出結果を取得するための割込み通知が発生すると、２０×２＋１＝４１ステップの負荷がかかることになる。そのため、以下において、ＣＰＵ３２において割込み処理を実行した際に必要となるステップ数である４１ステップを、比較器５２における閾値として設定したものとして説明を行なう。
【００５１】
開始指示出力部５３は、比較器５２においてパケット受信部４１により受信されたパケットデータに対するチェックサム算出処理をＣＰＵ３２においてソフトウェア的に実行すると判定された場合、ＣＰＵ３２に対して受信されたパケットデータに対するチェックサム算出処理の開始を指示するための開始指示を出力する。
【００５２】
次に、本実施形態の画像形成装置１０において受信されたパケットデータのチェックサム算出処理の流れを図８のフローチャートを参照して説明する。
【００５３】
先ず、ネットワーク３０を介して入力されたパケットデータをパケット受信部４１が受信すると（ステップＳ１０１）、切替制御部４３では、そのパケットデータのパケットサイズ情報が取得される（ステップＳ１０２）。
【００５４】
すると、切替制御部４３内のステップ数算出部５１は、ＣＰＵ３２の処理ビット数、取得されたパケットサイズ情報から、受信されたパケットデータのチェックサム算出処理に必要となるステップ数が算出される（ステップＳ１０３）。具体的には、ステップ数算出部５１は、上記でも説明した下記の式によりステップ数Ａを算出する。
ステップ数Ａ＝パケットサイズ／処理ビット数×２−１
【００５５】
すると、比較器５３では、ステップ数算出部５１により算出されたステップ数Ａと、予め設定された閾値（ここでは４１ステップ）との比較が行われる（ステップＳ１０４）。
【００５６】
ステップＳ１０４において、ステップ数算出部５１により算出されたステップ数Ａが４１ステップ以上の場合には、チェックサム算出処理はオフロードエンジン４２において実行すべきであると判定され、切替信号はハードウェア処理側に設定される（ステップＳ１０５）。
【００５７】
そして、オフロードエンジン４２において、パケットデータのチェックサム算出処理が終了すると（ステップＳ１０６）、オフロードエンジン４２からチェックサム算出処理の終了通知が出力され、切替器４４を介してＣＰＵ３２に転送される（ステップＳ１０７）。
【００５８】
この終了通知を受信したＣＰＵ３２では、オフロードエンジン４２のレジスタ内の所定の場所に格納されているチェックサム算出結果を読み出し、読み出したチェックサム算出結果に基づいてパケットデータの各種処理を実行する。
【００５９】
ステップＳ１０４において、ステップ数算出部５１により算出されたステップ数Ａが４１ステップより小さい場合には、チェックサム算出処理はＣＰＵ３２において実行すべきであると判定され、切替信号はソフトウェア処理側に設定される（ステップＳ１０８）。
【００６０】
そして、切替制御部４３内の開始指示出力部５３は、ＣＰＵ３２に対してソフトウェア的なチェックサム算出処理の開始を指示する開始指示を出力する（ステップＳ１０９）。この開始指示は、切替器４４を介してＣＰＵ３２に転送され、ＣＰＵ３２では、受信したパケットデータに対するチェックサム算出処理をソフトウェアにより実行する。
【００６１】
[変形例]
上記実施形態では、画像形成装置１０における通信機能に対して本発明を適用した場合を用いて説明したが、本発明はこれに限定されるものではなく、画像形成機能を備えていない通信装置に対しても同様に本発明を適用することができるものである。
【符号の説明】
【００６２】
１０    画像形成装置
１１    ＣＰＵ
１２    メモリ
１３    記憶装置
１４    通信インタフェース（ＩＦ）
１５    ユーザインタフェース（ＵＩ）装置
１６    スキャナ
１７    プリントエンジン
１８    制御バス
２０    端末装置
３０    ネットワーク
３１    通信制御部
３２    ＣＰＵ
３３    バスブリッジ
３４    メインメモリ
３５    画像処理部
３６    画像処理用メモリ
３７    画像出力部
４１    パケット受信部
４２    オフロードエンジン
４３    切替制御部
４４    切替器
５１    ステップ数算出部
５２    比較器（判定部）
５３    開始指示出力部
【図１】
2011228938.tif 000003
【図２】
2011228938.tif 000004
【図３】
2011228938.tif 000005
【図４】
2011228938.tif 000006
【図５】
2011228938.tif 000007
【図６】
2011228938.tif 000008
【図７】
2011228938.tif 000009
【図８】
2011228938.tif 000010