(57)【要約】【課題】自装置が備える演算装置を外部装置と共有可能にした画像処理装置を提供する。【解決手段】  ＭＦＰ１００は、メインＣＰＵ１１と、メインＣＰＵ１１により制御されるＧＰＵ３１と、を備え、メインＣＰＵ１１は、ＧＰＵ３１を制御していない間にサーバー側ＣＰＵ２０１にＧＰＵ３１を制御させ、サーバー側ＣＰＵ２０１がＧＰＵ３１を制御している間はＧＰＵ３１を制御しない。【選択図】        図２
2019087919.tif 000002
【特許請求の範囲】
【請求項１】
第１演算装置と、
前記第１演算装置により制御される第２演算装置と、を備え、
前記第１演算装置は、前記第２演算装置を制御していない間に外部装置に前記第２演算装置を制御させ、前記外部装置が前記第２演算装置を制御している間は前記第２演算装置を制御しない、画像処理装置。
【請求項２】
前記第１演算装置は、前記第２演算装置を制御していない場合に前記外部装置に前記第２演算装置の制御を許可する、請求項１に記載の画像処理装置。
【請求項３】
前記第１演算装置は、前記外部装置に前記第２演算装置の制御を許可した後は、前記外部装置が前記第２演算装置を制御していないことを条件に、前記第２演算装置を制御する、請求項２に記載の画像処理装置。
【請求項４】
前記第１演算装置は、前記第２演算装置を制御する事象の発生時に前記外部装置が前記第２演算装置を制御している場合、前記外部装置に中止を指示した後に前記外部装置が前記第２演算装置の制御を終了することに応じて、前記第２演算装置を制御する、請求項１〜３のいずれかに記載の画像処理装置。
【請求項５】
前記外部装置は、前記第１演算装置により中止が指示される場合、中止が指示された時点まで前記第２演算装置が前記外部装置による制御に従って実行した処理の結果を取得する取得手段と、
前記第２演算装置に実行させることが予定されていた処理を、前記第２演算装置に代わって実行する処理実行手段と、を備える、請求項４に記載の画像処理装置。
【請求項６】
前記第１演算装置および前記第２演算装置それぞれを、通常モードと前記通常モードより消費電力の小さい省電力モードとのいずれかに切り換える切換手段を、さらに備え、
前記切換手段は、前記第１演算装置および前記第２演算装置を前記省電力モードに切り換えている状態で、前記外部装置から前記第２演算装置の制御が要求される場合、前記第２演算装置を前記外部装置による制御が可能な状態にするために、前記第１演算装置を省電力モードに維持したまま前記第２演算装置を前記通常モードに切り換える、請求項１〜５のいずれかに記載の画像処理装置。
【請求項７】
前記切換手段は、前記外部装置による前記第２演算装置の制御が終了することに応じて、前記第２演算装置を省電力モードに切り換える、請求項６に記載の画像処理装置。
【請求項８】
前記第１演算装置と前記第２演算装置とを接続する制御線に、前記外部装置が備える第３演算装置が接続される、請求項１〜７のいずれかに記載の画像処理装置。
【請求項９】
第１演算装置と、
前記第１演算装置により制御される第２演算装置と、を備えた画像処理装置で実行される切換方法であって、
前記第２演算装置を制御していない間に外部装置に前記第２演算装置を制御させるステップと、
前記外部装置が前記第２演算装置を制御している間は前記第２演算装置を制御しないステップと、を前記第１演算装置に実行させる、制御切換方法。
【請求項１０】
第１演算装置と、
前記第１演算装置により制御される第２演算装置と、を備えた画像処理装置で実行される切換プログラムであって、
前記第２演算装置を制御していない間に外部装置に前記第２演算装置を制御させるステップと、
前記外部装置が前記第２演算装置を制御している間は前記第２演算装置を制御しないステップと、を前記第１演算装置に実行させる、制御切換プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、画像処理装置、制御切換方法および制御切換プログラムに関し、特に、複数の演算装置を備えた画像処理装置、その画像処理装置で実行される制御切換方法および制御切換プログラムに関する。
【背景技術】
【０００２】
複合機（ＭＦＰ）で代表される画像処理装置は、その全体を制御する中央演算装置（ＣＰＵ）に加えて、画像処理に優れたＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を備えている場合がある。ＣＰＵは、異なる複数の演算を連続して実行する処理に優れているのに対して、ＧＰＵは、行列演算など、複数の同一の演算を並列で実行する処理に優れている。画像データは、複数の画素値を二次元に配列したデータであるため、画像データをＧＰＵで処理する方が、ＣＰＵで処理するよりも処理速度が速くなる場合がある。
【０００３】
近年、ＭＦＰとサーバーとを１つの筐体に配置して、サーバー機能を有するＭＦＰが登場している。この場合、サーバーにより実行される処理のうちには、ＭＦＰが備えるＧＰＵが実行する方が、サーバーが実行するよりも処理速度が速くなる処理が存在する場合がある。
【０００４】
特開２００７−３２０１３８号公報には、ネットワークを介して印刷処理を要求するクライアント装置が接続される画像形成装置において、機能ごとに待機状態のときに消費電力を低減させるための省電力状態と、稼動可能な状態である通常状態を持ち、電力状態間を遷移させる制御手段を備え、当該制御手段は、全機能が低電力状態になっている場合に、前記クライアント装置から処理要求が入力されたとき、要求されたデータ処理に必要な機能のみ通常状態に復帰させることを特徴とする画像形成装置が記載されている。
【０００５】
しかしながら、特開２００７−３２０１３８号公報に記載の画像形成装置においても、画像形成装置が備えるＣＰＵが、クライアント装置からの要求によって必要な機能を実行しなければならず、画像形成装置を制御するＣＰＵの負荷が増加するといった問題がある。
【特許文献１】特開２００７−３２０１３８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
この発明は上述した問題点を解決するためになされたもので、この発明の目的の一つは、自装置が備える演算装置を外部装置と共有することが可能な画像処理装置を提供することである。
【０００７】
この発明の他の目的は、自装置が備える演算装置を外部装置と共有することが可能な制御切換方法を提供することである。
【０００８】
この発明のさらに他の目的は、自装置が備える演算装置を外部装置と共有することが可能な制御切換プログラムを提供することである。
【課題を解決するための手段】
【０００９】
上述した目的を達成するためにこの発明のある局面によれば、画像処理装置は、第１演算装置と、第１演算装置により制御される第２演算装置と、を備え、第１演算装置は、第２演算装置を制御していない間に外部装置に第２演算装置を制御させ、外部装置が第２演算装置を制御している間は第２演算装置を制御しない。
【００１０】
この局面に従えば、第２演算装置を制御していない間に外部装置に第２演算装置を制御させ、外部装置が第２演算装置を制御している間は第２演算装置を制御しないので、第２演算装置を第１演算装置と外部装置とのいずれか一方が制御する状態にする。このため、自装置と外部装置とが１つの演算装置を時分割で制御することができる。その結果、自装置が備える演算装置を外部装置と共有することが可能な画像処理装置を提供することができる。
【００１１】
好ましくは、第１演算装置は、第２演算装置を制御していない場合に外部装置に第２演算装置の制御を許可する。
【００１２】
この局面に従えば、第２演算装置を制御していない場合に外部装置に第２演算装置の制御を許可するので、外部装置に第２演算装置を制御させることができる。
【００１３】
好ましくは、第１演算装置は、外部装置に第２演算装置の制御を許可した後は、外部装置が第２演算装置を制御していないことを条件に、第２演算装置を制御する。
【００１４】
この局面に従えば、外部装置に第２演算装置の制御を許可した後は、外部装置が第２演算装置を制御していないことを条件に、第２演算装置を制御するので、外部装置が第２演算装置を制御している間に、第２演算装置を制御しないようにすることができる。このため、第１演算装置と外部装置とが同時に第２演算装置を制御しないようにすることができる。
【００１５】
好ましくは、第１演算装置は、第２演算装置を制御する事象の発生時に外部装置が第２演算装置を制御している場合、外部装置に中止を指示した後に外部装置が第２演算装置の制御を終了することに応じて、第２演算装置を制御する。
【００１６】
この局面に従えば、第２演算装置を制御する事象の発生時に外部装置が第２演算装置を制御している場合、外部装置に中止を指示するので、外部装置は第２演算装置の制御を終了させることができる。そして、外部装置が第２演算装置の制御を終了することに応じて、第２演算装置を制御するので、外部装置よりも優先して第２演算装置を制御することができる。
【００１７】
好ましくは、外部装置は、第１演算装置により中止が指示される場合、中止が指示された時点まで第２演算装置が外部装置による制御に従って実行した処理の結果を取得する取得手段と、第２演算装置に実行させることが予定されていた処理を、第２演算装置に代わって実行する処理実行手段と、を備える。
【００１８】
この局面に従えば、外部装置は、第１演算装置により中止が指示された時点まで第２演算装置が外部装置による制御に従って実行した処理の結果を取得し、第２演算装置に実行させることを予定していた処理を、第２演算装置に代わって実行するので、第２演算装置が実行した処理を有効に利用しつつ、第２演算装置に実行させることを予定していた処理のすべてを実行することができる。
【００１９】
好ましくは、第１演算装置および第２演算装置それぞれを、通常モードと通常モードより消費電力の小さい省電力モードとのいずれかに切り換える切換手段を、さらに備え、切換手段は、第１演算装置および第２演算装置を省電力モードに切り換えている状態で、外部装置から第２演算装置の制御が要求される場合、第２演算装置を外部装置による制御が可能な状態にするために、第１演算装置を省電力モードに維持したまま第２演算装置を通常モードに切り換える。
【００２０】
この局面に従えば、第１演算装置および第２演算装置を省電力モードに切り換えている状態で、外部装置から第２演算装置の制御が要求される場合、第１演算装置を省電力モードに維持したまま第２演算装置を通常モードに切り換えるので、第１演算装置により電力が消費されない状態で、外部装置が第２演算装置を制御可能にすることができる。このため、消費電力をできるだけ低くすることができる。
【００２１】
好ましくは、切換手段は、外部装置による第２演算装置の制御が終了することに応じて、第２演算装置を省電力モードに切り換える。
【００２２】
この局面に従えば、外部装置による第２演算装置の制御が終了することに応じて、第２演算装置が省電力モードに切り換わるので、消費電力をできるだけ低くすることができる。
【００２３】
好ましくは、第１演算装置と第２演算装置とを接続する制御線に、外部装置が備える第３演算装置が接続される。
【００２４】
この局面に従えば、第１演算装置と第２演算装置とを接続する制御線に、外部装置が備える第３演算装置が接続されるので、第２演算装置は、制御される装置によって制御線を切り換える必要がなく、構成を簡略にすることができる。
【００２５】
この発明の他の局面によれば、制御切換方法は、第１演算装置と、第１演算装置により制御される第２演算装置と、を備えた画像処理装置で実行される制御切換方法であって、第２演算装置を制御していない間に外部装置に第２演算装置を制御させるステップと、外部装置が第２演算装置を制御している間は第２演算装置を制御しないステップと、を第１演算装置に実行させる。
【００２６】
この局面に従えば、自装置が備える演算装置を外部装置と共有することが可能な制御切換方法を提供することができる。
【００２７】
この発明のさらに他の局面によれば、制御切換プログラムは、第１演算装置と、第１演算装置により制御される第２演算装置と、を備えた画像処理装置で実行される切換プログラムであって、第２演算装置を制御していない間に外部装置に第２演算装置を制御させるステップと、外部装置が第２演算装置を制御している間は第２演算装置を制御しないステップと、を第１演算装置に実行させる。
【００２８】
この局面に従えば、自装置が備える演算装置を外部装置と共有することが可能な制御切換プログラムを提供することができる。
【図面の簡単な説明】
【００２９】
【図１】本発明の実施の形態の１つにおける複合装置の外観を示す斜視図である。
【図２】複合装置のハードウェア構成の一例を示すブロック図である。
【図３】メインＣＰＵ、サブＣＰＵおよびＧＰＵへの電源供給を説明するための図である。
【図４】本実施の形態におけるＭＦＰが備えるメインＣＰＵおよびサブＣＰＵが有する機能の一例を示すブロック図である。
【図５】本実施の形態におけるサーバーが備えるＣＰＵが有する機能の一例を示すブロック図である。
【図６】メイン切換処理の流れの一例を示すフローチャートである。
【図７】サブ切換処理の流れの一例を示すフローチャートである。
【図８】ＧＰＵ制御処理の流れの一例を示すフローチャートである。
【発明を実施するための形態】
【００３０】
以下、本発明の実施の形態について図面を参照して説明する。以下の説明では同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがってそれらについての詳細な説明は繰返さない。
【００３１】
図１は、本発明の実施の形態の１つにおける複合装置の外観を示す斜視図である。図１を参照して、複合装置１は、ＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）１００と、ＭＦＰ１００の下方に配置されたサーバー２００と、ＭＦＰ１００の側面に配置された操作パネル３００とを含む。以下、複合装置１において、操作パネル３００が配置される面を正面という。
【００３２】
ＭＦＰ１００は、自動原稿搬送装置１２０と、原稿読取部１３０と、画像形成部１４０と、給紙部１５０と、を含む。自動原稿搬送装置１２０は、原稿トレイ上にセットされた複数枚の原稿を１枚ずつ自動的に原稿読取部１３０の原稿読み取り位置まで搬送し、原稿読取部１３０により原稿に形成された画像が読み取られた原稿を原稿排紙トレイに排出する。
【００３３】
原稿読取部１３０は、その上面に原稿を読み取るための矩形状の読取面を有する。読取面は、例えばプラテンガラスにより形成される。自動原稿搬送装置１２０は、読取面の１つの辺に平行な軸を中心に回転可能にＭＦＰ１００の本体に接続され、開閉可能である。自動原稿搬送装置１２０の下方に、原稿読取部１３０が配置されており、自動原稿搬送装置１２０が回転して開いた状態で、原稿読取部１３０の読取面が露出する。このため、ユーザーは、原稿読取部１３０の読取面に原稿を載置可能である。
【００３４】
原稿読取部１３０は、光を照射する光源と、光を受光する光電変換素子とを含み、読取面に載置された原稿に形成されている画像を走査する。読取領域に原稿が載置されている場合、光源から照射された光は原稿で反射し、反射した光が光電変換素子で結像する。光電変換素子は、原稿で反射した光を受光すると、受光した光を電気信号に変換した画像データを生成する。
【００３５】
給紙部１５０は、用紙を収容するための２つの給紙トレイを含む。給紙部１５０は、２つの給紙トレイのいずれかに収容された用紙を画像形成部１４０に搬送する。画像形成部１４０は、周知の電子写真方式により画像を形成するものであって、画像データに基づいて、給紙部１５０により搬送される用紙に画像を形成し、画像を形成した用紙を排紙トレイに排出する。
【００３６】
図２は、複合装置のハードウェア構成の一例を示すブロック図である。図２を参照して、複合装置１は、ＭＦＰ１００と、サーバー２００と、を含む。ＭＦＰ１００とサーバー２００とは、ＰＣＩＥｘｐｒｅｓｓバス３で接続される。
【００３７】
サーバー２００は、サーバー２００の全体を制御するためのサーバー側ＣＰＵ２０１と、サーバー側ＣＰＵ２０１が実行するためのプログラムを記憶するＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０２と、サーバー側ＣＰＵ２０１の作業領域として使用されるＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０３と、データを不揮発的に記憶するハードディスクドライブ（ＨＤＤ）２０４と、サーバー側ＣＰＵ２０１をＰＣＩＥｘｐｒｅｓｓバス３に接続する第１バスＩ／Ｆ２０６と、外部記憶装置２０５と、ネットワークに接続される通信Ｉ／Ｆ２０７と、操作パネル３００と、を含む。サーバー側ＣＰＵ２０１、ＲＯＭ２０２、ＲＡＭ２０３、ＨＤＤ２０４、第１バスＩ／Ｆ２０６、外部記憶装置２０５、通信Ｉ／Ｆ２０７および操作パネル３００はバス２２１に接続される。
【００３８】
ＲＯＭ２０２は、サーバー側ＣＰＵ２０１が実行するプログラム、またはそのプログラムを実行するために必要なデータを記憶する。ＲＡＭ２０３は、サーバー側ＣＰＵ２０１がプログラムを実行する際の作業領域として用いられる。
【００３９】
第１バスＩ／Ｆ２０６は、バス２２１をＰＣＩＥｘｐｒｅｓｓバス３を介してＭＦＰ１００が有するバス４３に接続するためのインターフェースである。第１バスＩ／Ｆ２０６は、ＰＣＩＥｘｐｒｅｓｓ規格に従ったプロトコルで、ＰＣＩＥｘｐｒｅｓｓバス３に接続されたＭＦＰ１００と通信する。
【００４０】
通信Ｉ／Ｆ２０７は、サーバー側ＣＰＵ２０１をネットワークに接続するための通信インターフェースである。これにより、サーバー側ＣＰＵ２０１は、通信Ｉ／Ｆ２０７を制御して、ネットワークに接続されたコンピューターと通信が可能になる。また、ネットワークがインターネットに接続される場合には、サーバー側ＣＰＵ２０１は、インターネットに接続されたコンピューターと通信が可能になる。
【００４１】
ＨＤＤ２０４は、大容量記憶装置であり、サーバー側ＣＰＵ２０１により制御される。サーバー側ＣＰＵ２０１は、ＨＤＤ２０４に記憶されたデータを読出し可能であり、また、ＨＤＤ２０４にデータを書き込み可能である。
【００４２】
外部記憶装置２０５は、サーバー側ＣＰＵ２０１により制御され、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ）−ＲＯＭ２０６、または半導体メモリが装着される。サーバー側ＣＰＵ２０１は、外部記憶装置２０５を制御して、ＣＤ−ＲＯＭ２０６または半導体メモリに記憶されたデータの読出し、または、ＣＤ−ＲＯＭ２０６または半導体メモリにデータを書き込みが可能である。
【００４３】
操作パネル３００は、表示部３０１と、操作部３０３と、を含む。表示部３０１は、例えば、液晶表示装置（ＬＣＤ）であり、ユーザーに対する指示メニューや取得した画像データに関する情報等を表示する。なお、ＬＣＤに代えて、画像を表示する装置であれば、例えば、有機ＥＬ（ｅｌｅｃｔｒｏｌｕｍｉｎｅｓｃｅｎｃｅ）ディスプレイを用いることができる。操作部３０３は、ユーザーによる入力される操作を受け付けるためのユーザーインターフェースである。操作部３０３は、例えば、タッチパネルと、ハードキー部とを含む。タッチパネルは、表示部３０１の上面または下面に重畳して設けられ、表示部３０１の表示面中でユーザーにより指示される位置を検出する。ハードキー部は、複数のハードキーを含む。ハードキーは、例えば接点スイッチである。
【００４４】
ＭＦＰ１００は、メインＣＰＵ１１と、第１ＲＡＭ１３と、第１ＲＯＭ１５と、サブＣＰＵ２１と、第２ＲＡＭ２３と、第２ＲＯＭ２５と、ＧＰＵ３１と、第２バスＩ／Ｆ４１と、自動原稿搬送装置１２０と、原稿読取部１３０と、画像形成部１４０と、給紙部１５０と、ファクシミリ部１６０と、を含む。メインＣＰＵ１１は、第１ＲＡＭ１３、第１ＲＯＭ１５、サブＣＰＵ２１、第２ＲＡＭ２３、第２ＲＯＭ２５、ＧＰＵ３１、第２バスＩ／Ｆ４１、自動原稿搬送装置１２０、原稿読取部１３０、画像形成部１４０、給紙部１５０およびファクシミリ部１６０と、バス４３を介して接続され、ＭＦＰ１００の全体を制御する。
【００４５】
第１ＲＯＭ１５は、メインＣＰＵ１１が実行するプログラム、またはそのプログラムを実行するために必要なデータを記憶する。第１ＲＡＭ１３は、メインＣＰＵ１１がプログラムを実行する際の作業領域として用いられる。また、第１ＲＡＭ１３は、原稿読取部１３０から連続的に送られてくる画像データを一時的に記憶する。
【００４６】
サブＣＰＵ２１は、メインＣＰＵ１１が駆動していない間に、メインＣＰＵ１１に代わってメインＣＰＵ１１が実行する処理の一部を実行する。第２ＲＯＭ２５は、サブＣＰＵ２１が実行するプログラム、またはそのプログラムを実行するために必要なデータを記憶する。第２ＲＡＭ２３は、サブＣＰＵ２１がプログラムを実行する際の作業領域として用いられる。
【００４７】
ＧＰＵ３１は、メインＣＰＵ１１により制御され、メインＣＰＵ１１の指令に従って処理を実行する。例えば、ＧＰＵ３１は、メインＣＰＵ１１からプログラムの実行が指示される場合、指示されたプログラムを実行する。
【００４８】
ファクシミリ部１６０は、公衆交換電話網（ＰＳＴＮ）に接続され、ＰＳＴＮにファクシミリデータを送信する、またはＰＳＴＮからファクシミリデータを受信する。ファクシミリ部１６０は、受信したファクシミリデータを画像形成部１４０でプリント可能なプリントデータに変換して、画像形成部１４０に出力する。これにより、画像形成部１４０は、ファクシミリ部１６０により受信されたファクシミリデータの画像を用紙に形成する。また、ファクシミリ部１６０は、原稿読取部１３０が原稿を読み取って出力する画像データをファクシミリデータに変換して、ＰＳＴＮに接続されたファクシミリ装置に送信する。
【００４９】
第２バスＩ／Ｆ４１は、バス４３をＰＣＩＥｘｐｒｅｓｓバス３に接続されたサーバー２００が有するバス２２１に接続するためのインターフェースである。
【００５０】
メインＣＰＵ１１は、第２バスＩ／Ｆ４１を制御することにより、ＰＣＩＥｘｐｒｅｓｓバス３を介して、通信Ｉ／Ｆ２０７を制御する。これにより、メインＣＰＵ１１は、通信Ｉ／Ｆ２０７を制御して、ネットワークに接続されたコンピューターと通信が可能になる。また、ネットワークがインターネットに接続される場合には、メインＣＰＵ１１は、インターネットに接続されたコンピューターと通信が可能になる。また、メインＣＰＵ１１は、第２バスＩ／Ｆ４１を制御することにより、ＰＣＩＥｘｐｒｅｓｓバス３を介して、操作パネル３００を制御する。これにより、メインＣＰＵ１１は、操作画面を表示部３０１に表示し、ユーザーが操作部３０３に入力する操作を受け付ける。さらに、メインＣＰＵ１１は、第２バスＩ／Ｆ４１を制御することにより、ＰＣＩＥｘｐｒｅｓｓバス３を介して、ＨＤＤ２０４および外部記憶装置２０５を制御することが可能となる。このため、メインＣＰＵ１１は、ＨＤＤ２０４または外部記憶装置２０５に装着されたＣＤ−ＲＯＭ２０６に記憶されたデータを読出し可能であり、また、それらにデータを書き込み可能である。
【００５１】
メインＣＰＵ１１は、外部記憶装置２０５に装着されたＣＤ−ＲＯＭ２０６に記録されたプログラムを第１ＲＡＭ１３にロードして実行する。なお、サーバー側ＣＰＵ２０１またはメインＣＰＵ１１が実行するプログラムを記憶する媒体としては、ＣＤ−ＲＯＭ２０６に限られず、光ディスク（ＭＯ（Ｍａｇｎｅｔｉｃ  Ｏｐｔｉｃａｌ  Ｄｉｓｃ）／ＭＤ（Ｍｉｎｉ  Ｄｉｓｃ）／ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ））、ＩＣカード、光カード、マスクＲＯＭ、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）などの半導体メモリであってもよい。
【００５２】
また、メインＣＰＵ１１は、ＨＤＤ２０４に記憶されたプログラムを第１ＲＡＭ１３にロードして実行するようにしてもよい。また、サーバー側ＣＰＵ２０１は、ＨＤＤ２０４に記憶されたプログラムをＲＡＭ２０３にロードして実行するようにしてもよい。この場合、ネットワークで接続された他のコンピューターが、ＨＤＤ２０４に記憶されたプログラムを書換える、または、新たなプログラムを追加して書き込むようにしてもよい。さらに、メインＣＰＵ１１またはサーバー側ＣＰＵ２０１が、ネットワークまたはインターネットに接続された他のコンピューターからプログラムをダウンロードして、そのプログラムをＨＤＤ２０４に記憶するようにしてもよい。ここでいうプログラムは、メインＣＰＵ１１またはサーバー側ＣＰＵ２０１が直接実行可能なプログラムだけでなく、ソースプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
【００５３】
サーバー２００が備えるサーバー側ＣＰＵ２０１は、第１バスＩ／Ｆ２０６を制御することにより、ＰＣＩＥｘｐｒｅｓｓバス３を介して、ＧＰＵ３１を制御する。この場合、ＧＰＵ３１は、サーバー側ＣＰＵ２０１により制御され、サーバー側ＣＰＵ２０１の指令に従って処理を実行する。例えば、ＧＰＵ３１は、サーバー側ＣＰＵ２０１からプログラムの実行が指示される場合、指示されたプログラムを実行する。
【００５４】
図３は、メインＣＰＵ、サブＣＰＵおよびＧＰＵへの電源供給を説明するための図である。図３を参照して、メインＣＰＵ１１は、第１電源回路１７および第１キャパシタ１９と接続され、サブＣＰＵ２１は第２電源回路２７と接続され、ＧＰＵ３１は第３電源回路３７と接続されている。
【００５５】
第１電源回路１７は、メインＣＰＵ１１またはサブＣＰＵ２１によって制御され、メインＣＰＵ１１、第１ＲＡＭ１３および第１キャパシタ１９に電力を供給する。メインＣＰＵ１１および第１ＲＡＭ１３は、第１電源回路１７から電力が供給されなくなっても、第１キャパシタ１９に蓄積された電力によって所定時間駆動することができる。
【００５６】
第２電源回路２７は、サブＣＰＵ２１および第２ＲＡＭ２３に電力を供給する。第３電源回路３７は、メインＣＰＵ１１またはサブＣＰＵ２１によって制御され、ＧＰＵ３１および第１ＲＡＭ１３に電力を供給する。
【００５７】
ＭＦＰ１００は、通常モードと、通常モードより消費電力の小さいスリープモードとのいずれかに動作モードを切り換える。通常モードにおいては、メインＣＰＵ１１、サブＣＰＵ２１およびＧＰＵ３１が駆動する。メインＣＰＵ１１およびＧＰＵ３１の消費電力は、サブＣＰＵ２１の消費電力より大きい。また、メインＣＰＵ１１が駆動していない場合は、自動原稿搬送装置１２０、原稿読取部１３０、画像形成部１４０、および給紙部１５０は停止し、電力を消費しない。また、ファクシミリ部１６０は、スリープモードの場合は、通常モードの場合よりも消費電力を低くした状態で駆動する。このため、ファクシミリ部１６０は、スリープモードの場合でも外部からデータを受信することが可能である。
【００５８】
スリープモードにおいては、サブＣＰＵ２１が駆動するが、メインＣＰＵ１１は停止する。ＧＰＵ３１は、スリープモードにおいて、停止する場合と駆動する場合とがある。具体的には、ＧＰＵ３１は、スリープモードにおいて、サーバー側ＣＰＵ２０１により制御される場合に駆動し、サーバー側ＣＰＵ２０１により制御されない場合に停止する。
【００５９】
メインＣＰＵ１１は、スリープモードへの移行条件であるスリープ条件が成立すると、第１電源回路１７にメインＣＰＵ１１および第１ＲＡＭ１３への電力の供給を停止させる。また、メインＣＰＵ１１は、スリープ条件が成立する場合、第３電源回路３７にＧＰＵ３１への電力の供給を停止させる場合と、停止させることなく、第３電源回路３７にＣＰＵ３１および第１ＲＡＭ１３に電力の供給を継続させる場合とがある。スリープ条件は、例えば、所定時間以上継続してユーザーによる操作が入力されない場合、または、所定時間以上継続してジョブを受信しない場合である。
【００６０】
サブＣＰＵ２１は、メインＣＰＵ１１によって決定されたプログラムを第２ＲＡＭ２３にロードして実行する。サブＣＰＵ２１は、スリープ解除条件が成立すると、第１電源回路１７にメインＣＰＵ１１および第１ＲＡＭ１３に電力を供給させ、第３電源回路３７にＧＰＵ３１に電力を供給させ、メインＣＰＵ１１を起動する。スリープ解除条件は、ファクシミリ部１６０がファクシミリデータを受信する場合、通信Ｉ／Ｆ２０７がプリントデータを受信する場合、または、サブＣＰＵ２１がスリープ解除信号を検出する場合に、成立する条件である。
【００６１】
スリープ解除信号は、サブＣＰＵ２１が検出する信号であり、例えば、接点スイッチの開閉を検出するための信号である。接点スイッチは、自動原稿搬送装置１２０、原稿読取部１３０、画像形成部１４０、給紙部１５０それぞれが備える接点スイッチの他、操作部３０３が備える複数のハードキーを含む。自動原稿搬送装置１２０が備える接点スイッチは、例えば、セットされる原稿を検出するための接点スイッチを含む。原稿読取部１３０が備える接点スイッチは、読み取り部分を覆う蓋の開閉を検出するための接点スイッチを含む。画像形成部１４０が備える接点スイッチは、画像形成部１４０を外部に露出するためにＭＦＰ１００に設けられた扉の開閉を検出するための接点スイッチを含む。給紙部１５０が備える接点スイッチは、用紙を収納するトレイの開閉を検出するための接点スイッチ、用紙の搬送経路に詰まった用紙を除去可能なように、用紙の搬送経路を外部に露出するための扉の開閉を検出するための接点スイッチを含む。なお、接点スイッチは、これらに限定されるものではなく、ユーザーによる操作を検出するためのスイッチであればよい。
【００６２】
サブＣＰＵ２１は、スリープモードにおいて、サーバー側ＣＰＵ２０１からＧＰＵ３１の制御を要求される場合、第３電源回路３７にＧＰＵ３１および第１ＲＡＭ１３に電力を供給させる。この場合、サブＣＰＵ２１は、第１電源回路１７にメインＣＰＵ１１に電力を供給させないので、メインＣＰＵ１１で電力が消費されないようにすることができる。サブＣＰＵ２１は、スリープモードにおいて、第３電源回路３７にＧＰＵ３１および第１ＲＡＭ１３に電力を供給させている状態で、サーバー側ＣＰＵ２０１によるＧＰＵ３１の制御が終了すると、第３電源回路３７にＧＰＵ３１および第１ＲＡＭ１３への電力の供給を停止させる。
【００６３】
図４は、本実施の形態におけるＭＦＰが備えるメインＣＰＵおよびサブＣＰＵが有する機能の一例を示すブロック図である。図４に示すメインＣＰＵ１１およびサブＣＰＵ２１の機能は、メインＣＰＵ１１が制御切換プログラムの一部であるメイン切換プログラムを実行することによりメインＣＰＵ１１に形成される機能であり、サブＣＰＵ２１が制御切換プログラムの他の一部であるサブ切換プログラムを実行することによりサブＣＰＵ２１に形成される機能である。図４を参照して、メインＣＰＵ１１は、権限管理部５１と、モード切換部５３と、権限情報通知部５７と、ジョブ実行部５９と、ＧＰＵ制御部６１と、を含む。サブＣＰＵ２１は、サブ権限管理部７１と、サブモード切換部７３と、サブ起動部７５と、サブ権限情報通知部７７と、を含む。
【００６４】
ジョブ実行部５９は、ジョブを実行する。ジョブは、ユーザーにより入力される操作に従って定まるジョブと、外部から受信されるジョブを含む。ジョブは、例えば、原稿読取部１３０を制御して原稿を読み取る処理、ファクシミリ部１６０を制御してファクシミリデータを送信する処理、ファクシミリ部１６０を制御してファクシミリデータを受信する処理、画像形成部１４０および給紙部１５０を制御してプリントデータの画像を形成する処理、および画像データを処理対象とした画像処理の１以上の組み合わせを定める。画像処理は、解像度を変換する処理、２以上の画像データを合成する処理、画像データのフォーマットを変換する処理、データを暗号化した符号化データに変換する処理、暗号化データを復号する処理を含む。なお、ジョブ実行部５９が実行するジョブで定められる処理は、これらに限定されるものではなく、ジョブ実行部５９は、他の処理を定めたジョブを実行するようにしてもよい。ジョブ実行部５９は、ジョブで定められる処理のうち、画像処理については、ＧＰＵ３１に処理させるために、ＧＰＵ制御部６１に処理を依頼する。
【００６５】
ＧＰＵ制御部６１は、ジョブ実行部５９から依頼を受けると、ＧＰＵ３１を制御して、ＧＰＵ３１に画像処理を実行させる。ＧＰＵ制御部６１は、複数種類の画像処理それぞれに対応し、ＧＰＵ３１に実行させるための複数のプログラムを予め記憶している。ＧＰＵ制御部６１は、ジョブ実行部５９から依頼を受けた画像処理に対応するプログラムを特定し、ＧＰＵ３１に特定されたプログラムを実行させ、ＧＰＵ３１にジョブ実行部５９から依頼された画像データを画像処理させる。ＧＰＵ３１は、画像処理が終了すると、処理結果を第１ＲＡＭ１３に記憶するとともに、画像処理が終了したことを通知する。ＧＰＵ制御部６１は、ＧＰＵ３１から画像処理が終了したことの通知を受けると、第１ＲＡＭ１３中で処理結果が記憶された領域を示す領域情報をジョブ実行部５９に出力する。ジョブ実行部５９は、領域情報に記憶された処理結果を用いて、ジョブで定められた残りの処理を実行する。
【００６６】
権限管理部５１は、ＧＰＵ３１を制御するための権限を示す制御権を管理する。権限管理部５１は、制御権をサーバー２００に付与している間は制御権なしの状態に設定し、制御権をサーバー２００に付与していない間は制御権ありの状態に設定する。権限管理部５１は、制御権の状態を示す権限情報をモード切換部５３および権限情報通知部５７に出力する。
【００６７】
権限管理部５１は、制御権ありの状態で、サーバー側ＣＰＵ２０１から制御権が要求される場合、ＧＰＵ制御部６１がＧＰＵ３１を制御していない場合に、サーバー側ＣＰＵ２０１に制御権を付与し、制御権無しの状態に設定する。具体的には、権限管理部５１は、制御権ありの状態で、サーバー側ＣＰＵ２０１から制御権が要求される場合、ＧＰＵ制御部６１がＧＰＵ３１を制御していなければ、サーバー側ＣＰＵ２０１に制御権を付与し、制御権なしの状態に設定するが、ＧＰＵ制御部６１がＧＰＵ３１を制御していれば、サーバー側ＣＰＵ２０１に制御権を付与することなくサーバー側ＣＰＵ２０１にＮＧ信号を出力し、制御権ありの状態を維持する。
【００６８】
また、権限管理部５１は、制御権なしの状態で、ＧＰＵ制御部６１がＧＰＵ３１の制御を開始する場合、ＧＰＵ制御部６１がＧＰＵ３１の制御を開始する前に、サーバー側ＣＰＵ２０１にＧＰＵ３１の制御の中止を指示し、サーバー側ＣＰＵ２０１がＧＰＵ３１の制御を中止すると、制御権をありの状態に設定する。具体的には、権限管理部５１は、制御権なしの状態で、ＧＰＵ制御部６１から制御権の有無の問合せを受けると、サーバー側ＣＰＵ２０１に中止指示を送信し、サーバー側ＣＰＵ２０１から制御権を返還することを示す返還通知を受信すると、制御権ありの状態に設定し、制御権ありの状態であることをＧＰＵ制御部６１に回答する。
【００６９】
ＧＰＵ制御部６１は、ジョブ実行部５９から依頼を受ける場合、ＧＰＵ３１の制御権が存在することを条件に、ＧＰＵ３１を制御する。具体的には、ＧＰＵ制御部６１は、ジョブ実行部５９から依頼を受ける場合、権限管理部５１に制御権の有無を確認し、権限管理部５１により制御権ありの状態に設定されていることの通知を受けることに応じてＧＰＵ３１を制御するが、権限管理部５１により制御権なしの状態に設定されている場合は、権限管理部５１により制御権ありの状態に設定されるまで待機し、権限管理部５１により制御権ありの状態に設定されることの通知を受けることに応じて、ＧＰＵ３１を制御する。
【００７０】
モード切換部５３は、動作モードが通常モードの状態で、スリープ条件が成立すると動作モードをスリープモードに切り換える。スリープ条件は、例えば、所定時間以上継続してユーザーによる操作が入力されない場合、または、所定時間以上継続してジョブを受信しない場合である。モード切換部５３は、スリープ条件が成立することに応じて、サブＣＰＵ２１に動作モードを出力するとともに、第１電源回路１７を制御して、メインＣＰＵ１１および第１ＲＡＭ１３への電力の供給を遮断させる。また、モード切換部５３は、権限管理部５１により制御権ありの状態に設定されている場合、第３電源回路３７を制御して、ＧＰＵ３１への電力の供給を遮断させるが、権限管理部５１により制御権なしの状態に設定されている場合、第３電源回路３７を制御して、ＧＰＵ３１への電力の供給を遮断させることなくＧＰＵ３１への電力の供給を継続させる。
【００７１】
権限情報通知部５７は、権限管理部５１において管理されている制御権の状態を示す権限情報を、サブＣＰＵ２１に通知する。権限情報は、ＧＰＵ３１の制御権を、メインＣＰＵ１１が有しているか否かを示す情報である。
【００７２】
サブモード切換部７３は、モード切換部５３から動作モードが入力される。サブモード切換部７３は、サブ権限管理部７１に動作モードを通知する。サブモード切換部７３は、動作モードがスリープモードの状態で、スリープ解除条件が成立すると動作モードを通常モードに切り換える。スリープ解除条件は、ファクシミリ部１６０がファクシミリデータを受信する場合、通信Ｉ／Ｆ２０７がプリントデータを受信する場合、または、スリープ解除信号を検出する場合に、成立する条件である。サブモード切換部７３は、スリープ解除条件が成立することに応じて、サブ起動部７５に起動指示を出力する。
【００７３】
サブ権限管理部７１は、サブモード切換部から動作モードが入力される。サブ権限管理部７１は、動作モードがスリープモードの間、ＧＰＵ３１を制御するための権限として制御権を管理する。サブ権限管理部７１は、制御権をサーバー２００に付与している間は制御権なしの状態に設定し、制御権をサーバー２００に付与していない間は制御権ありの状態に設定する。
【００７４】
サブ権限管理部７１は、メインＣＰＵ１１から権限情報が入力される。サブ権限管理部７１は、権限情報が、ＧＰＵ３１の制御権をメインＣＰＵ１１が有していることを示すならば、制御権ありの状態に設定し、権限情報がＧＰＵ３１の制御権をメインＣＰＵ１１が有していないことを示すならば、制御権なしの状態に設定する。
【００７５】
また、サブ権限管理部７１は、制御権ありの状態で、サーバー側ＣＰＵ２０１から制御権が要求される場合、サーバー側ＣＰＵ２０１に制御権を付与し、制御権なしの状態に設定し、第３電源回路３７を制御して、ＧＰＵ３１および第１ＲＡＭ１３に電力を供給させる。また、サブ権限管理部７１は、制御権なしの状態で、サーバー側ＣＰＵ２０１から制御権を返還する返還通知を受信すると、制御権ありの状態に設定し、第３電源回路３７を制御して、ＧＰＵ３１および第１ＲＡＭ１３への電力の供給を遮断させる。
【００７６】
サブ起動部７５は、モード切換部７３から起動指示が入力されることに応じて、第１電源回路１７を制御してメインＣＰＵ１１および第１ＲＡＭ１３に電力を供給させ、メインＣＰＵ１１を起動する。また、サブ起動部７５は、権限情報通知部５７に通知指示を出力する。さらに、サブ起動部７５は、第３電源回路３７がＧＰＵ３１に電力を供給していない場合には、第３電源回路３７を制御して第３電源回路３７に電力を供給させる。
【００７７】
サブ権限情報通知部７７は、通知指示が入力されることに応じて、サブ権限管理部７１において管理されている制御権の状態を示す権限情報を、メインＣＰＵ１１に通知する。権限情報は、ＧＰＵ３１の制御権を、メインＣＰＵ１１が有しているか否かを示す情報である。
【００７８】
メインＣＰＵ１１は、サブＣＰＵ２１により動作モードがスリープモードから通常モードに切り換えられる場合、サブＣＰＵ２１により起動される。この場合、権限管理部５１は、サブＣＰＵ２１から権限情報が入力される。権限管理部５１は、権限情報が、ＧＰＵ３１の制御権をメインＣＰＵ１１が有していることを示すならば、制御権ありの状態に設定し、権限情報がＧＰＵ３１の制御権をメインＣＰＵ１１が有していないことを示すならば、制御権なしの状態に設定する。
【００７９】
図５は、本実施の形態におけるサーバーが備えるＣＰＵが有する機能の一例を示すブロック図である。図５に示す機能は、サーバー２００が備えるサーバー側ＣＰＵ２０１がＧＰＵ制御プログラムを実行することによりサーバー側ＣＰＵ２０１に形成される機能である。図５を参照して、サーバー２００が備えるＣＰＵ２０１は、処理実行部２５１と、制御権要求部２５３と、制御権受付部２５５と、中止指示受付部２５７と、返還部２５９と、サーバーＧＰＵ制御部２６１と、処理結果取得部２６３と、を含む。
【００８０】
処理実行部２５１は、サーバー側ＣＰＵ２０１が、アプリケーションプログラムを実行するタスクである。ここでの、アプリケーションプログラムは、サーバー側ＣＰＵ２０１が実行する複数の処理を定めた第１のプログラムと、複数の処理の一部をＧＰＵ３１に実行させる第２のプログラムとを含む。第２のプログラムは、ＳＰＭＤ（Ｓｉｎｇｌｅ  Ｐｒｏｇｒａｍ  Ｍｕｌｔｉｐｌｅ  Ｄａｔａ）プログラムミングに基づき記述されたプログラムである。例えば、アプリケーションプログラムが、処理Ａと、処理Ｂと、処理Ｃとを定める場合であって、処理Ｂが複数の同一の演算が必要な処理の場合に、処理Ａと処理Ｂと処理Ｃとを定めた第１のプログラムと、処理ＢについてＧＰＵ３１で実行可能な第２のプログラムと、を含む。以下、処理Ｂのように、サーバー側ＣＰＵ２０１で実行するよりもＧＰＵ３１で実行する方が処理速度の速くなる処理をＧＰＵ制御可能処理という。処理実行部２５１は、アプリケーションプログラムを実行中に、ＧＰＵ制御可能処理である処理Ｂを実行する前の段階で、制御権要求部２５３に要求指示を出力する。
【００８１】
制御権要求部２５３は、処理実行部２５１から要求指示が入力されることに応じて、メインＣＰＵ１１およびサブＣＰＵ２１に制御権を要求する。制御権の要求は、動作モードが通常モードでメインＣＰＵ１１が起動している場合にはメインＣＰＵ１１により受け付けられ、動作モードがスリープモードでメインＣＰＵ１１が起動していない場合にはサブＣＰＵ２１により受け付けられる。メインＣＰＵ１１により制御権の要求が受け付けられる場合、上述したようにメインＣＰＵ１１により制御権が付与される場合と、制御権が付与されずにＮＧ信号を受信する場合とがある。サブＣＰＵ２１により制御権の要求が受け付けられる場合、上述したようにサブＣＰＵ２１により制御権が付与される。制御権受付部２５５は、メインＣＰＵ１１およびサブＣＰＵ２１のいずれかにより制御権が付与される場合には、処理実行部２５１に制御権が付与されたことを通知し、メインＣＰＵ１１により制御権が付与されずにＮＧ信号を受信する場合には、処理実行部２５１に制御権が付与されなかったことを通知する。
【００８２】
処理実行部２５１は、制御権が付与されない場合は、ＧＰＵ３１を制御することなく、第１のプログラムを継続して実行する。処理実行部２５１は、制御権が付与されている場合は、第１のプログラムで定められた処理に代えて、サーバーＧＰＵ制御部２６１に実行指示を出力する。サーバーＧＰＵ制御部２６１は、実行指示が入力されることに応じて、ＧＰＵ３１を制御して、ＧＰＵ制御化可能処理を実行させる。具体的には、サーバーＧＰＵ制御部２６１は、第１ＲＡＭ１３に処理対象のデータを記憶するとともに、ＧＰＵ３１にＧＰＵ制御可能処理を定めた第２のプログラムを実行させる。
【００８３】
ＧＰＵ３１は、ＧＰＵ制御可能処理を終了すると、第１ＲＡＭ１３に処理結果を記憶するので、サーバーＧＰＵ制御部２６１は、第１ＲＡＭ１３に記憶された処理結果を読み出して、処理結果を処理実行部２５１に出力する。処理実行部２５１は、サーバーＧＰＵ制御部２６１から処理結果が入力されることに応じて、返還部２５９に返還指示を出力するとともに、ＧＰＵ制御可能処理に続く後の処理を実行し、ＧＰＵ３１により実行された処理結果に、後の処理を実行した結果を追加する。
【００８４】
サーバーＧＰＵ制御部２６１が、ＧＰＵ３１にＧＰＵ制御化可能処理を実行させている最中に、メインＣＰＵ１１が中止指示を出力する場合がある。中止指示受付部２５７は、メインＣＰＵ１１が出力する中止指示を受け付ける場合、処理実行部２５１にＧＰＵ制御化可能処理の中止を指示する。処理実行部２５１は、ＧＰＵ制御化可能処理の中止が指示されると、サーバーＧＰＵ制御部２６１に中止を指示する。サーバーＧＰＵ制御部２６１は、中止が指示されると、ＧＰＵ３１の制御を中止して、処理結果取得部２６３に処理結果の取得を指示するとともに処理実行部２５１にＧＰＵ制御可能処理を中止したことを通知する。処理実行部２５１は、ＧＰＵ制御可能処理を中止したことが通知されると、返還部２５９に変換指示を出力する。
【００８５】
返還部２５９は、返還指示が入力されることに応じて、返還通知をメインＣＰＵ１１またはサブＣＰＵ２１に出力する。
【００８６】
ＧＰＵ３１は、サーバー側ＣＰＵ２０１により制御が中止される前までにサーバー側ＣＰＵ２０１により制御されて実行した処理の結果を第１ＲＡＭ１３に記憶している。この時点で、第１ＲＡＭ１３に記憶された処理結果は、ＧＰＵ制御化可能処理を途中まで実行した結果である。処理結果取得部２６３は、第１ＲＡＭ１３に記憶された処理結果を読み出して、処理実行部２５１に出力する。処理実行部２５１は、処理結果取得部２６３から入力される処理結果を用いて、ＧＰＵ制御可能処理を中止した処理に続く後の処理を実行する。
【００８７】
図６は、メイン切換処理の流れの一例を示すフローチャートである。メイン切換処理は、メインＣＰＵ１１が制御切換プログラムの一部であるメイン切換プログラムを実行することによりメインＣＰＵ１１により実行される処理である。図６を参照して、メインＣＰＵ１１は、権限情報を受け付けたか否かを判断する（ステップＳ０１）。メインＣＰＵ１１がサブＣＰＵ２１により起動される場合に、サブＣＰＵ２１から権限情報が入力されるので、その権限情報を受け付けたか否かを判断する。メインＣＰＵ１１がサブＣＰＵ２１により起動されることなく、例えば、ＭＦＰ１００に電源が投入される場合には、権限情報を受け付けない。権限情報を受け付けたならば処理をステップＳ０２に進めるが、そうでなければ処理をステップＳ０３に進める。
【００８８】
ステップＳ０２においては、権限情報が制御権ありを示すか否かを判断する。制限情報が制御権ありを示すならば処理をステップＳ０３に進め、そうでなければ処理をステップＳ０４に進める。ステップＳ０３においては、制御権ありの状態に設定し、処理をステップＳ０５に進める。ステップＳ０４においては、制御権なしの状態に設定し、処理をステップＳ０５に進める。
【００８９】
ステップＳ０５においては、ＧＰＵ３１を制御する処理が発生したか否かを判断する。ＧＰＵ３１を制御する処理が発生したならば処理をステップＳ０６に進めるが、そうでなければ処理をステップＳ１１に進める。ステップＳ０６においては、制御権ありの状態か否かを判断する。制御権ありの状態ならば処理をステップＳ１０に進めるが、そうでなければ処理をステップＳ０７に進める。ステップＳ１０においては、ＧＰＵ３１を制御し、処理をステップＳ１１に進める。ＧＰＵ３１にプログラムを実行させ、プログラムにより定まる処理を実行させる。
【００９０】
一方、処理がステップＳ０７に進む場合は、制御権なしの場合である。ステップＳ０４が実行される場合、または、後述するステップＳ１４においてサーバー側ＣＰＵ２０１に制御権を付与している場合である。この場合には、サーバー側ＣＰＵ２０１がＧＰＵ３１を制御している場合である。ステップＳ０７においては、中止指示をサーバー側ＣＰＵ２０１に出力し、処理をステップＳ０８に進める。ステップＳ０８においては、サーバー側ＣＰＵ２０１から制御権が返還されるまで待機状態となり（ステップＳ０８でＮＯ）、サーバー側ＣＰＵ２０１から制御権が返還されると（ステップＳ０８でＹＥＳ）、処理をステップＳ０９に進める。ステップＳ０９においては、制御権ありの状態に設定し、処理をステップＳ１０に進める。ステップＳ１０においては、ＧＰＵ３１を制御し、処理をステップＳ１１に進める。ＧＰＵ３１にプログラムを実行させ、プログラムにより定まる処理を実行させる。
【００９１】
ステップＳ１１においては、サーバー側ＣＰＵ２０１から制御権が要求されたか否かを判断する。サーバー側ＣＰＵ２０１から制御権が要求されたならば処理をステップＳ１２に進めるが、そうでなければ処理をステップＳ１６に進める。ステップＳ１２においては、ＧＰＵ３１を制御中か否かを判断する。ＧＰＵ３１を制御中ならば処理をステップＳ１３に進めるが、そうでなければ処理をステップＳ１４に進める。ステップＳ１３においては、サーバー側ＣＰＵ２０１に制御権を付与できないことを示すＮＧ信号を出力し、処理をステップＳ１６に進める。
【００９２】
一方、ステップＳ１４においては、サーバー側ＣＰＵ２０１に制御権を付与し、処理をステップＳ１５に進める。ステップＳ１５においては、制御権なしの状態に設定し、処理をステップＳ１６に進める。
【００９３】
ステップＳ１６においては、スリープ条件が成立したか否かを判断する。スリープ条件が成立したならば処理をステップＳ１７に進めるが、そうでなければ処理をステップＳ０５に戻す。ステップＳ１７においては、制御権ありの状態か否かを判断する。制御権ありの状態ならば処理をステップＳ１８に進めるが、そうでなければ処理をステップＳ１９に進める。ステップＳ１８においては、第１電源および第３電源をＯＦＦにし、処理をステップＳ２０に進める。具体的には、第１電源回路１７を制御してメインＣＰＵ１１および第１ＲＡＭ１３に供給されていた電力を遮断させ、第３電源回路３７を制御してＧＰＵ３１に供給されていた電力を遮断させる。ステップＳ１９においては、第１電源をＯＦＦにし、処理をステップＳ２０に進める。具体的には、第１電源回路１７を制御してメインＣＰＵ１１に供給されていた電力を遮断させる。制御権なしの状態の場合、サーバー側ＣＰＵ２０１がＧＰＵ３１を制御するので、第３電源回路３７からＧＰＵ３１および第１ＲＡＭへの電力の供給を継続させる。
【００９４】
ステップＳ２０においては、制御権の状態を示す制限情報をサブＣＰＵ２１に通知し、処理を終了する。
【００９５】
図７は、サブ切換処理の流れの一例を示すフローチャートである。サブ切換処理は、サブＣＰＵ２１が制御切換プログラムの一部であるサブ切換プログラムを実行することによりサブＣＰＵ２１により実行される処理である。図７を参照して、サブＣＰＵ２１は、権限情報を受け付け（ステップＳ３１）、処理をステップＳ３２に進める。サブＣＰＵ２１がメインＣＰＵ１１により起動される場合に、メインＣＰＵ１１から権限情報が入力されるので、その権限情報を受け付ける。
【００９６】
ステップＳ３２においては、権限情報が制御権ありを示すか否かを判断する。制限情報が制御権ありを示すならば処理をステップＳ３３に進め、そうでなければ処理をステップＳ３４に進める。ステップＳ３３においては、制御権ありの状態に設定し、処理をステップＳ３５に進める。ステップＳ３４においては、制御権なしの状態に設定し、処理をステップＳ３５に進める。ステップＳ３５においては、制御権ありの状態か否かを判断する。制御権ありの状態ならば処理をステップＳ３６に進めるが、そうでなければ処理をステップＳ４１に進める。
【００９７】
ステップＳ３６においては、サーバー側ＣＰＵ２０１から制御権が要求されたか否かを判断する。サーバー側ＣＰＵ２０１から制御権が要求されたならば処理をステップＳ３７に進めるが、そうでなければ処理をステップＳ４４に進める。ステップＳ３７においては、サーバー側ＣＰＵ２０１に制御権を付与し、処理をステップＳ３８に進める。ステップＳ３８においては、制御権なしの状態に設定し、処理をステップＳ３９に進める。ステップＳ３９においては、第３電源をＯＮにし、処理をステップＳ４０に進める。具体的には、第３電源回路３７を制御して、ＧＰＵ３１および第１ＲＡＭ１３に電力を供給させる。ステップＳ４０においては、ＧＰＵ３１を起動し、処理をステップＳ４４に進める。これにより、サーバー側ＣＰＵ２０１がＧＰＵ３１を制御可能な状態となる。
【００９８】
一方、処理がステップＳ４１に進む場合は、制御権なしの場合であり、サーバー側ＣＰＵ２０１に制御権を付与している場合である。ステップＳ４１においては、サーバー側ＣＰＵ２０１から制御権が返還されたか否かを判断する。サーバー側ＣＰＵ２０１から制御権が返還されたならば処理をステップＳ４２に進めるが、そうでなければ処理をステップＳ４４に進める。ステップＳ４２においては、制御権ありの状態に設定し、処理をステップＳ４３に進める。ステップＳ４３においては、第３電源をＯＦＦにし、処理をステップＳ４４に進める。具体的には、第３電源回路３７を制御して、ＧＰＵ３１および第１ＲＡＭ１３に供給していた電力を遮断させる。
【００９９】
ステップＳ４４においては、スリープ解除条件が成立したか否かを判断する。スリープ解除条件が成立したならば処理をステップＳ４５に進めるが、そうでなければ処理をステップＳ３５に戻す。
【０１００】
ステップＳ４５においては、制御権ありの状態か否かを判断する。制御権ありの状態ならば処理をステップＳ４６に進めるが、そうでなければ処理をステップＳ４７に進める。ステップＳ４６においては、第１電源および第３電源をＯＮにし、処理をステップＳ４８に進める。具体的には、第１電源回路１７を制御してメインＣＰＵ１１および第１ＲＡＭ１３に電力を供給させ、第３電源回路３７を制御してＧＰＵ３１に電力を供給される。ステップＳ４７においては、第１電源をＯＮにし、処理をステップＳ４８に進める。具体的には、第１電源回路１７を制御してメインＣＰＵ１１に電力を供給させる。制御権なしの状態の場合、サーバー側ＣＰＵ２０１がＧＰＵ３１を制御しているので、第３電源回路３７からＧＰＵ３１および第１ＲＡＭへの電力の供給を継続させる。
【０１０１】
そして、メインＣＰＵ１１を起動し（ステップＳ４８）、処理をステップＳ４９に進める。ステップＳ４９においては、メインＣＰＵ１１に制御権の状態を示す制限情報を通知し、処理を終了する。
【０１０２】
図８は、ＧＰＵ制御処理の流れの一例を示すフローチャートである。ＧＰＵ制御処理は、サーバー２００が備えるサーバー側ＣＰＵ２０１がＧＰＵ制御プログラムを実行することによりサーバー側ＣＰＵ２０１により実行される処理である。図８を参照して、サーバー側ＣＰＵ２０１は、ＧＰＵ制御可能処理が発生したか否かを判断する（ステップＳ５１）。ＧＰＵ制御可能処理が発生するまで待機状態となり（ステップＳ５１でＮＯ）、ＧＰＵ制御可能処理が発生したならば（ステップＳ５１でＹＥＳ）、処理をステップＳ５２に進める。
【０１０３】
ステップＳ５２においては、メインＣＰＵ１１またはサブＣＰＵ２１に制御権を要求する。動作モードが通常モードでメインＣＰＵ１１が起動している場合はメインＣＰＵ１１に制御権を要求し、動作モードがスリープモードでメインＣＰＵ１１が起動していない場合はサブＣＰＵ２１に制御権を要求する。そして、制御権を付与されたか否かを判断する（ステップＳ５３）。制御権を付与されたならば処理をステップＳ５４に進めるが、そうでなければ処理をステップＳ６２に進める。ステップＳ６２においては、サーバー側ＣＰＵ２０１がＧＰＵ制御可能処理を実行し、処理をステップＳ５１に戻す。
【０１０４】
ステップＳ５４においては、ＧＰＵを制御して、ＧＰＵ制御可能処理を実行させ、処理をステップＳ５５に進める。ステップＳ５５においては、ＧＰＵ３１によるＧＰＵ制御可能処理が終了したか否かを判断する。ＧＰＵ３１によるＧＰＵ制御可能処理が終了したならば処理をステップＳ５６に進めるが、そうでなければ処理をステップＳ５７に進める。ステップＳ５６においては、メインＣＰＵ１１またはサブＣＰＵ２１に制御権を返還し、処理をステップＳ５１に戻す。動作モードが通常モードでメインＣＰＵ１１が起動している場合はメインＣＰＵ１１に制御権を返還し、動作モードがスリープモードでメインＣＰＵ１１が起動していない場合はサブＣＰＵ２１に制御権を変換する。
【０１０５】
ステップＳ５７においては、メインＣＰＵ１１から中止指示を受け付けたか否かを判断する。メインＣＰＵ１１から中止指示を受け付けたならば処理をステップＳ５８に進めるが、そうでなければ処理をステップＳ５４に戻す。ステップＳ５８においては、ＧＰＵ３１の制御を中止し、処理をステップＳ５９に進める。ステップＳ５９においては、メインＣＰＵ１１に制御権を返還し、処理をステップＳ６０に進める。ステップＳ６０においては、ＧＰＵ３１がＧＰＵ制御可能処理を実行した処理結果を取得する。ここで取得される処理結果は、ＧＰＵ３１がサーバー側ＣＰＵ２０１による制御が中止される前までに、サーバー側ＣＰＵ２０１により制御されてＧＰＵ３１が実行した結果を示す。そして、サーバー側ＣＰＵ２０１が、ＧＰＵ制御可能処理のうちでＧＰＵ３１によって未だ実行されていない残りの処理を実行し（ステップＳ６１）、処理をステップＳ５１に戻す。
【０１０６】
なお、本実施の形態におけるＭＦＰ１００においては、メインＣＰＵ１１とサブＣＰＵ２１とを設け、スリープモードの場合にメインＣＰＵ１１を停止させてサブＣＰＵ２１が起動するようにしたが、サブＣＰＵ２１を用いることなくメインＣＰＵ１１のみを用いるようにしてもよい。この場合、メインＣＰＵ１１は、スリープモードの場合に、一部のプログラムのみを実行し、消費電力が通常モードよりも低い状態となる。この場合、図４に示した機能において、モード切換部５３がサブモード切換部７３の機能をさらに有し、権限管理部５１がサブ権限管理部７１の機能をさらに有するようにすればよい。また、メインＣＰＵ１１の機能として権限情報通知部５７は不要である。
【０１０７】
また、本実施の形態におけるＭＦＰ１００においては、動作モードが通常モードの場合に、メインＣＰＵ１１とサブＣＰＵ２１とが起動するようにしたが、通常モードの場合にメインＣＰＵ１１が起動し、サブＣＰＵ２１が停止するようにしてもよい。通常モードの場合にサブＣＰＵ２１で電力が消費されないので、消費電力をさらに低下することができる。
【０１０８】
以上説明したように、本実施の形態におけるＭＦＰ１００は、メインＣＰＵ１１と、ＧＰＵ３１と、を備え、メインＣＰＵ１１は、ＧＰＵ３１を制御していない間にサーバー２００が備えるサーバー側ＣＰＵ２０１にＧＰＵ３１を制御させ、サーバー側ＣＰＵ２０１がＧＰＵ３１を制御している間はＧＰＵ３１を制御しないようにして、ＧＰＵ３１をメインＣＰＵ１１とサーバー側ＣＰＵ２０１とのいずれか一方が制御する状態にする。このため、ＭＦＰ１００とサーバー２００とが１つのＧＰＵ３１を時分割で制御することができる。したがって、ＭＦＰ１００が備えるＧＰＵ３１をサーバー２００と共有することが可能となる。
【０１０９】
また、メインＣＰＵ１１は、ＧＰＵ３１を制御していない場合にサーバー側ＣＰＵ２０１にＧＰＵ３１の制御を許可する。このため、サーバー２００にＧＰＵ３１を制御させることができる。
【０１１０】
また、メインＣＰＵ１１は、サーバー側ＣＰＵ２０１にＧＰＵ３１の制御を許可した後は、サーバー側ＣＰＵ２０１がＧＰＵ３１を制御していないことを条件に、ＧＰＵ３１を制御するので、サーバー側ＣＰＵ２０１がＧＰＵ３１を制御している間に、ＧＰＵ３１を制御しないようにすることができる。このため、メインＣＰＵ１１とサーバー側ＣＰＵ２０１とが同時にＧＰＵ３１を同時に制御しないようにすることができる。
【０１１１】
また、メインＣＰＵ１１は、ＧＰＵ３１を制御する事象であるＧＰＵ制御可能処理の発生時にサーバー側ＣＰＵ２０１がＧＰＵ３１を制御している場合、サーバー側ＣＰＵ２０１に中止を指示するので、サーバー側ＣＰＵ２０１はＧＰＵ３１の制御を終了させることができる。そして、メインＣＰＵ１１は、サーバー側ＣＰＵ２０１がＧＰＵ３１の制御を終了することに応じて、ＧＰＵ３１を制御するので、サーバー側ＣＰＵ２０１よりも優先してＧＰＵ３１を制御することができる。
【０１１２】
また、サーバー側ＣＰＵ２０１は、メインＣＰＵ１１により中止が指示される場合、中止が指示された時点までＧＰＵ３１がサーバー側ＣＰＵ２０１による制御に従って実行した処理の結果を取得し、ＧＰＵ３１に実行させることを予定していた処理を、ＧＰＵ３１に代わって実行するので、ＧＰＵ３１が実行した処理を有効に利用しつつ、ＧＰＵ３１に実行させることを予定していた処理のすべてを実行することができる。
【０１１３】
また、メインＣＰＵ１１およびＧＰＵ３１を省電力モードに切り換えている状態で、サーバー側ＣＰＵ２０１からＧＰＵ３１の制御が要求される場合、メインＣＰＵ１１を省電力モードに維持したままＧＰＵ３１を通常モードに切り換えるので、メインＣＰＵにより電力が消費されない状態で、サーバー側ＣＰＵ２０１がＧＰＵ３１を制御可能にすることができる。このため、消費電力をできるだけ低くすることができる。
【０１１４】
また、サブＣＰＵ２１は、スリープモードにおいて、サーバー側ＣＰＵ２０１によるＧＰＵ３１の制御が終了することに応じて、ＧＰＵ３１に供給される電力を遮断するので、消費電力をできるだけ低くすることができる。
【０１１５】
また、メインＣＰＵ１１とＧＰＵ３１とを接続するバス２２１に、第１バスＩ／Ｆ２０６および第２バスＩ／Ｆ４１を介してサーバー側ＣＰＵ２０１が接続されるので、ＧＰＵ３１が制御される装置によってバス２２１を切り換える必要がなく、構成を簡略にすることができる。
【０１１６】
なお、本実施の形態においては、画像処理装置の一例としてＭＦＰ１００を示したが、図６および図７に示した制御切換処理をＭＦＰ１００に実行させる制御切換方法、および図６に示したメイン切換処理をメインＣＰＵ１１に実行させ、図７に示したサブ切換処理をサブＣＰＵ２１に実行させる制御切換プログラムとして発明を捉えることができるのは言うまでもない。
【０１１７】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１１８】
１  複合装置、３  ＰＣＩＥｘｐｒｅｓｓバス、１１  メインＣＰＵ、１３  第１ＲＡＭ、１５  第１ＲＯＭ、１７  第１電源回路、１９  第１キャパシタ、２１  サブＣＰＵ、２３  第２ＲＡＭ、２５  第２ＲＯＭ、２７  第２電源回路、３１  ＧＰＵ、３７  第３電源回路、４１  第２バスＩ／Ｆ、４３  バス、１２０  自動原稿搬送装置、１３０  原稿読取部、１４０  画像形成部、１５０  給紙部、１６０  ファクシミリ部、２００  サーバー、２０１  サーバー側ＣＰＵ、２０２  ＲＯＭ、２０３  ＲＡＭ、２０４  ＨＤＤ、２０５  外部記憶装置、２０６  第１バスＩ／Ｆ、２０７  通信Ｉ／Ｆ、２２１  バス、３００  操作パネル、３０１  表示部、３０３  操作部、５１  権限管理部、５３  モード切換部、５７  権限情報通知部、５９  ジョブ実行部、６１  ＧＰＵ制御部、７１  サブ権限管理部、７３  サブモード切換部、７５  サブ起動部、７７  サブ権限情報通知部、２５１  処理実行部、２５３  制御権要求部、２５５  制御権受付部、２５７  中止指示受付部、２５９  返還部、２６１  サーバーＧＰＵ制御部、２６３  処理結果取得部。
【図１】
2019087919.tif 000003
【図２】
2019087919.tif 000004
【図３】
2019087919.tif 000005
【図４】
2019087919.tif 000006
【図５】
2019087919.tif 000007
【図６】
2019087919.tif 000008
【図７】
2019087919.tif 000009
【図８】
2019087919.tif 000010