(57)【要約】【課題】省電力制御を行うサブシステムを有する画像処理装置の制御システムでＵＳＢをサポート可能とし、更に省電力時、通電停止されるメインシステムで用いるＵＳＢデバイスドライバとサブシステムで通電が維持されるＵＳＢデバイスとの間に生じ得るデバイス状態の不整合を修復する。【解決手段】サブシステムは、画像などのデータ入出力に用いるネットワーク、ＵＳＢ等のＩ／Ｆを通じて、常時、外部装置との応答・発信が可能であり、省電力移行条件を満たす場合にメインシステムの電源をオフし、又省電力時ＵＳＢからのデータ入力を１復帰条件とし省電力からの復帰制御を行う。メインシステムの省電力機構をサポートするＡＣＰＩドライバは省電力移行直前のデバイスの状態を記録し、復帰時に復帰フックルーチンを行い、推定状態遷移列を生成することにより、デバイスの実際の状態との不整合を修復し、正常な動作を確保する。【選択図】図２８
2007068156.tif 000002
【特許請求の範囲】
【請求項１】
画像入力、入力画像の出力用データへの処理、画像出力の各手段を制御するメイン制御システムと、前記メイン制御システムへの電源供給を制御することにより、省電力モードへの移行動作、省電力モードからの復帰動作を行うとともに、データの入出力に用いるネットワーク及びＵＳＢに常時、応答・発信を可能とするサブ制御システムとを有する画像処理装置であって、
前記メイン制御システムが有するＵＳＢデバイスドライバの状態を保持する保持手段と、
前記ＵＳＢデバイスドライバの状態を遷移させる遷移手段と、
前記ＵＳＢの状態を取得する取得手段と
を有し、前記保持手段は、省電力モードへの移行前に、前記ＵＳＢデバイスドライバの状態を保持し、かつ、前記遷移手段は、省電力モードからの復帰後に前記取得手段が取得した前記ＵＳＢの状態と、前記保持手段により保持された前記ＵＳＢデバイスドライバの状態とが異なる場合には、保持された前記ＵＳＢデバイスドライバの状態と、取得された前記ＵＳＢの状態とを比較して前記ＵＳＢデバイスドライバの状態を遷移させるための推定状態遷移列を決定し、前記推定状態遷移列に従って前記ＵＳＢデバイスドライバの状態を遷移させることにより復帰動作を行うことを特徴とする画像処理装置。
【請求項２】
前記遷移手段は、取得された前記ＵＳＢの状態が保持された前記ＵＳＢデバイスドライバの状態より通信可能状態に近い場合には、保持された前記ＵＳＢデバイスドライバの状態から、取得された前記ＵＳＢの状態に向けて状態遷移するように推定状態遷移列を決定することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記遷移手段は、保持された前記ＵＳＢデバイスドライバの状態が取得された前記ＵＳＢの状態より通信可能状態に近い場合には、初期状態から、取得された前記ＵＳＢの状態に向けて状態遷移するように推定状態遷移列を決定することを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記画像処理装置は、省電力モード時に前記ＵＳＢのデータ転送用ＤＭＡを停止させ、省電力モードから復帰する際に、前記状態遷移を行った後の前記ＵＳＢデバイスドライバの状態に応じて前記データ転送用ＤＭＡを開始することを特徴とする請求項１乃至３のいずれか一項に記載の画像処理装置。
【請求項５】
前記サブ制御システムは、前記メイン制御システムの省電力モードからの復帰動作を前記ＵＳＢにおけるデータ入力の検知を条件に行うことを特徴とする請求項１乃至４のいずれか一項に記載の画像処理装置。
【請求項６】
前記サブ制御システムは、前記メイン制御システムの省電力モードからの復帰動作を前記ＵＳＢの活線挿抜の検知を条件に行うことを特徴とする請求項１乃至４のいずれか一項に記載の画像処理装置。
【請求項７】
画像入力、入力画像の出力用データへの処理、画像出力の各手段を制御するメイン制御システムと、前記メイン制御システムへの電源供給を制御することにより、省電力モードへの移行動作、省電力モードからの復帰動作を行うとともに、データの入出力に用いるネットワーク及びＵＳＢに常時、応答・発信を可能とするサブ制御システムとを有する画像処理装置の制御方法であって、
前記メイン制御システムが有するＵＳＢデバイスドライバの状態を保持する保持手順と、
前記ＵＳＢデバイスドライバの状態を遷移させる遷移手順と、
前記ＵＳＢの状態を取得する取得手順と
を有し、前記保持手順は、省電力モードへの移行前に、前記ＵＳＢデバイスドライバの状態を保持し、かつ、前記遷移手順は、省電力モードからの復帰後に前記取得手順により取得された前記ＵＳＢの状態と、前記保持手順により保持された前記ＵＳＢデバイスドライバの状態とが異なる場合には、保持された前記ＵＳＢデバイスドライバの状態と、取得された前記ＵＳＢの状態とを比較して前記ＵＳＢデバイスドライバの状態を遷移させるための推定状態遷移列を決定し、前記推定状態遷移列に従って前記ＵＳＢデバイスドライバの状態を遷移させることにより復帰動作を行うことを特徴とする画像処理装置の制御方法。
【請求項８】
前記遷移手順は、取得された前記ＵＳＢの状態が保持された前記ＵＳＢデバイスドライバの状態より通信可能状態に近い場合には、保持された前記ＵＳＢデバイスドライバの状態から、取得された前記ＵＳＢの状態に向けて状態遷移するように推定状態遷移列を決定することを特徴とする請求項７に記載の画像処理装置の制御方法。
【請求項９】
前記遷移手順は、保持された前記ＵＳＢデバイスドライバの状態が取得された前記ＵＳＢの状態より通信可能状態に近い場合には、初期状態から、取得された前記ＵＳＢの状態に向けて状態遷移するように推定状態遷移列を決定することを特徴とする請求項７に記載の画像処理装置の制御方法。
【請求項１０】
省電力モード時に前記ＵＳＢのデータ転送用ＤＭＡを停止させ、省電力モードから復帰する際に、前記遷移手順により前記状態遷移を行った後の前記ＵＳＢデバイスドライバの状態に応じて前記データ転送用ＤＭＡを開始することを特徴とする請求項７乃至９のいずれか一項に記載の画像処理装置の制御方法。
【請求項１１】
前記メイン制御システムの省電力モードからの復帰動作を前記ＵＳＢにおけるデータ入力の検知を条件に行うことを特徴とする請求項７乃至１０のいずれか一項に記載の画像処理装置の制御方法。
【請求項１２】
前記メイン制御システムの省電力モードからの復帰動作を前記ＵＳＢの活線挿抜の検知を条件に行うことを特徴とする請求項７乃至１０のいずれか一項に記載の画像処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像入力手段と入力画像データを画像出力用データ（プリント出力用又は外部装置への出力用データ）に処理する手段を有する画像処理装置（例えば、ネットワークに接続可能なプリンタ装置やファクシミリ装置、複写・ＦＡＸ・プリンタ・スキャナ等の機能を有する複合機）に関する。より詳細には、省電力消費状態で装置を待機させる省電力モードを有する上記画像処理装置に関する。
【背景技術】
【０００２】
入力画像データのプリント出力を行う機能をベースに画像処理を行う装置として、複写・ＦＡＸ・プリンタ・スキャナ等の機能を複合して有するＭＦＰ（複合機）が広く使用されている。ＭＦＰは、ネットワークに接続され、自身が備えるスキャナを通して入力された紙文書の画像データのほか、通信Ｉ／Ｆ（インターフェース）を介して外部装置から様々な画像（文書）が入力され、これらの入力画像は、画像出力用データに処理された後、プロッタでプリント出力されたり、接続された外部利用装置へ出力される。
【０００３】
上記のような画像処理装置は、従来から、装置のアイドル状態を検知して、省電力消費状態で装置を待機させ、所定の復帰条件の発生により通常使用状態に復帰させる、省電力モードを有する。
【０００４】
こうした省電力機能を実現する制御システムとして、省電力モードで動作するサブシステムを備えたものがある（例えば、特許文献１参照）。このサブシステムは、通常使用時に装置全体を制御するメインシステムの電源を管理し、省電力モードの動作を担う。即ち、省電力状態では、メインシステムのＣＰＵ電源をオフし、ネットワーク応答や機器の監視をサブシステムで行い、省電力状態から復帰する際に再びメインシステムを復帰させる方法により、ＣＰＵの電力が大きいシステムでは大きな電力の削減を可能とする。なお、特許文献１では、サブシステムを構成するプログラマブルシーケンサ内蔵ＡＳＩＣが、省電力モードへの移行と省電力モードからの復帰シーケンス（例えば、操作パネルのスイッチを押すこととか、機器のカバーを開けるとかをトリガとして復帰させる）をコントロールしている。
【特許文献１】特開２００２−２６８４７１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１には、ネットワークＩ／Ｆ経由で送信されてくる信号の受信を省電力モードからの復帰条件にした例が示されている。ただ、特許文献１は、この例に留まり、近年、この種の画像処理装置（ＭＦＰ）の装備として考慮の対象とされている、周辺デバイスを接続するための汎用のＩ／ＦであるＵＳＢ（Universal Serial Bus）について、記述されていない。
【０００６】
従って、ＵＳＢデバイス（ＵＳＢによって接続される外付けの装置）を使用する場合に、装着されたＵＳＢデバイス（省電力モード時にも電源ＯＮ）と、メインシステム（省電力モード時に電源ＯＦＦ）側で処理に必要になるＵＳＢデバイスドライバとの間に、省電力モード時の動作によって生じうる不整合を修復する技術についても、従来では未解決である。なお、上記不整合は、省電力モード中にデバイスの挿抜によって、デバイス自体の変化やデバイスの状態変化が生じるとき、省電力モード中に電源ＯＦＦとなっているメインシステムが、この変化を認識できないために起きる。
【０００７】
そこで、本発明は、上記の課題に鑑みてなされたものであり、省電力制御を行うサブシステムを有する画像処理装置において、ＵＳＢのサポートを可能とし、さらにＵＳＢに対応可能な上記画像処理装置において、省電力モード時の動作によって、ＵＳＢデバイスとメインシステムで用いるＵＳＢデバイスドライバとの間に生じ得る不整合を修復できるようにすることを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決するために、本発明の画像処理装置は、画像入力、入力画像の出力用データへの処理、画像出力の各手段を制御するメイン制御システムと、前記メイン制御システムへの電源供給を制御することにより、省電力モードへの移行動作、省電力モードからの復帰動作を行うとともに、データの入出力に用いるネットワーク及びＵＳＢに常時、応答・発信を可能とするサブ制御システムとを有する画像処理装置であって、前記メイン制御システムが有するＵＳＢデバイスドライバの状態を保持する保持手段と、前記ＵＳＢデバイスドライバの状態を遷移させる遷移手段と、前記ＵＳＢの状態を取得する取得手段とを有し、前記保持手段が、省電力モードへの移行前に、前記ＵＳＢデバイスドライバの状態を保持し、かつ、前記遷移手段が、省電力モードからの復帰後に前記取得手段が取得した前記ＵＳＢの状態と、前記保持手段により保持された前記ＵＳＢデバイスドライバの状態とが異なる場合には、保持された前記ＵＳＢデバイスドライバの状態と、取得された前記ＵＳＢの状態とを比較して前記ＵＳＢデバイスドライバの状態を遷移させるための推定状態遷移列を決定し、前記推定状態遷移列に従って前記ＵＳＢデバイスドライバの状態を遷移させることにより復帰動作を行うことを特徴とする。
【０００９】
上記の画像処理装置は、前記遷移手段が、取得された前記ＵＳＢの状態が保持された前記ＵＳＢデバイスドライバの状態より通信可能状態に近い場合には、保持された前記ＵＳＢデバイスドライバの状態から、取得された前記ＵＳＢの状態に向けて状態遷移するように推定状態遷移列を決定する構成にすることができる。
【００１０】
上記の画像処理装置は、前記遷移手段が、保持された前記ＵＳＢデバイスドライバの状態が取得された前記ＵＳＢの状態より通信可能状態に近い場合には、初期状態から、取得された前記ＵＳＢの状態に向けて状態遷移するように推定状態遷移列を決定する構成にすることができる。
【００１１】
上記の画像処理装置は、省電力モード時に前記ＵＳＢのデータ転送用ＤＭＡを停止させ、省電力モードから復帰する際に、前記状態遷移を行った後の前記ＵＳＢデバイスドライバの状態に応じて前記データ転送用ＤＭＡを開始するように構成することができる。
【００１２】
上記の画像処理装置は、前記サブ制御システムが、前記メイン制御システムの省電力モードからの復帰動作を前記ＵＳＢにおけるデータ入力の検知を条件に行うように構成することができる。
【００１３】
上記の画像処理装置は、前記サブ制御システムが、前記メイン制御システムの省電力モードからの復帰動作を前記ＵＳＢの活線挿抜の検知を条件に行うように構成することができる。
【００１４】
また、上述した課題を解決するために、本発明の画像処理装置の制御方法は、画像入力、入力画像の出力用データへの処理、画像出力の各手段を制御するメイン制御システムと、前記メイン制御システムへの電源供給を制御することにより、省電力モードへの移行動作、省電力モードからの復帰動作を行うとともに、データの入出力に用いるネットワーク及びＵＳＢに常時、応答・発信を可能とするサブ制御システムとを有する画像処理装置の制御方法であって、前記メイン制御システムが有するＵＳＢデバイスドライバの状態を保持する保持手順と、前記ＵＳＢデバイスドライバの状態を遷移させる遷移手順と、前記ＵＳＢの状態を取得する取得手順とを有し、前記保持手順が、省電力モードへの移行前に、前記ＵＳＢデバイスドライバの状態を保持し、かつ、前記遷移手順が、省電力モードからの復帰後に前記取得手順により取得された前記ＵＳＢの状態と、前記保持手順により保持された前記ＵＳＢデバイスドライバの状態とが異なる場合には、保持された前記ＵＳＢデバイスドライバの状態と、取得された前記ＵＳＢの状態とを比較して前記ＵＳＢデバイスドライバの状態を遷移させるための推定状態遷移列を決定し、前記推定状態遷移列に従って前記ＵＳＢデバイスドライバの状態を遷移させることにより復帰動作を行うことを特徴とする。
【００１５】
上記の画像処理装置の制御方法は、前記遷移手順が、取得された前記ＵＳＢの状態が保持された前記ＵＳＢデバイスドライバの状態より通信可能状態に近い場合には、保持された前記ＵＳＢデバイスドライバの状態から、取得された前記ＵＳＢの状態に向けて状態遷移するように推定状態遷移列を決定する構成にすることができる。
【００１６】
上記の画像処理装置の制御方法は、前記遷移手順が、保持された前記ＵＳＢデバイスドライバの状態が取得された前記ＵＳＢの状態より通信可能状態に近い場合には、初期状態から、取得された前記ＵＳＢの状態に向けて状態遷移するように推定状態遷移列を決定する構成にすることができる。
【００１７】
上記の画像処理装置の制御方法は、省電力モード時に前記ＵＳＢのデータ転送用ＤＭＡを停止させ、省電力モードから復帰する際に、前記遷移手順により前記状態遷移を行った後の前記ＵＳＢデバイスドライバの状態に応じて前記データ転送用ＤＭＡを開始するように構成することができる。
【００１８】
上記の画像処理装置の制御方法は、前記メイン制御システムの省電力モードからの復帰動作を前記ＵＳＢにおけるデータ入力の検知を条件に行うように構成することができる。
【００１９】
上記の画像処理装置の制御方法は、前記メイン制御システムの省電力モードからの復帰動作を前記ＵＳＢの活線挿抜の検知を条件に行うように構成することができる。
【発明の効果】
【００２０】
本発明の画像処理装置及びその制御方法によれば、メイン制御システムの省電力モードからの復帰動作をＵＳＢにおけるデータ入力の検知、又はＵＳＢの活線挿抜の検知を条件に行うようにしたことにより、ＵＳＢデバイスを接続した画像処理装置において、ＵＳＢドライバの状態の不整合を発生することなく、省電力モードへ移行させたメイン制御システムをこれらの復帰条件により復帰させることが可能になり、画像処理装置のパフォーマンスの向上を図ることが可能となる。
【００２１】
また、省電力モード時の動作によって、ＵＳＢに接続されたデバイスとメイン制御システムで用いるデバイスのドライバとの間に生じ得る状態の不整合を修復することにより、省電力モードからの復帰時の動作に不具合が起きることがなく、適正な動作を保証することが可能になる。
【発明を実施するための最良の形態】
【００２２】
以下、本発明の実施の形態について図面を用いて説明する。
【００２３】
なお、本実施形態は、本発明の画像処理装置を、複写・ＦＡＸ（ファクシミリ）・プリンタ・スキャナ等の機能を複合して有するＭＦＰ（複合）機に適用した例を示す。
【００２４】
まず、本実施形態のＭＦＰ機における制御システムの基本構成を説明する。この制御システムは、ＭＦＰ機が有する複合された画像処理機能のほか、省電力機能（省電力モードへの移行、省電力モードからの復帰動作を行う）を実現するための構成を備える。このために、コントローラは、省電力モードの動作を司るサブ制御システムをメイン制御システムに組み込んだシステム構成とする。メイン制御システムは、画像入力（自身が備えるスキャナや接続された外部装置からの入力）、入力画像の出力用データへの処理、画像出力の各手段を制御し、サブ制御システムは、メイン制御システムへの電源供給を制御する。また、サブ制御システムは、画像などのデータ入出力に用いるネットワーク、ＵＳＢ等のＩ／Ｆを通じて、常時、外部装置との応答／発信を可能とし、省電力モードからの復帰条件の一つをＵＳＢからのデータ入力とする復帰動作の制御を行う。
【００２５】
図１は、本実施形態に係る制御システムの基本構成（ハードウェア）のブロック図を示す。図１の制御システムにおけるブロックは、以下の構成要素（構成部）を示す。
【００２６】
5401：コントローラ（コントローラボード）
5402：拡張スロット用ボード（MOTHERボードともいう。この例では、スロットのみを有する）
5403：エンジン（スキャナ、プリンタ等のエンジンであり、図３では、5267として示す）
5404：ＣＰＵ（Central Processing Unit。図３では、5201として示す）
5405：ＡＳＩＣ１（ＣＰＵ5404の制御下でメイン制御システムのApplication Specific Integrated Circuitとして働く。図３では、5202として示す）
5406：ＭＥＭ（画像用バッファ、プログラム、ワークエリア用として使用されるメモリ）
5407：ＨＤＤ（Hard Disk Drive。画像、管理情報、フォント、プログラムなどを格納する記憶装置で、転送速度を上げるために2台並列で接続することも可能である）
5408：ＳＤ（Secure Digital。ブート可能とし、ここでは、プログラムを格納する）
5409：ＬＯＧＩＣ（ＰＣＩ(Peripheral Component Interconnect)信号からローカルバス信号を作り出すロジック）
5410：ＲＯＭ０（ブート可能なRead Only Memoryで、ここでは、プログラムを格納する）
5411：ＲＯＭ１（ブート可能なRead Only Memoryで、ここでは、プログラムを格納する）
5412：ＮＶＲＡＭ（Nonvolatile Random Access Memory。ここでは、システムの設定などを保存する）
5413：ＳＬＯＴ１（オプションPCIスロット1）
5414：ＳＬＯＴ２（オプションPCIスロット2）
5415：ＳＬＯＴ３（オプションPCIスロット3）
5416：操作部（ＣＰＵとプログラムを内蔵する独立したユニットで、画面表示とＵＩ(User Interface)を受け持つ）
5417：ＡＳＩＣ２（ＡＳＩＣ１(5405)とＰＣＩで接続され、サブ制御システムを構成するＡＳＩＣとして働く。図３では、(5264)として示す）
5418：ＳＬＯＴ２（エンジン側ＰＣＩのオプションスロット2）
5419：ＳＯＬＴ３（エンジン側ＰＣＩのオプションスロット1）
5420：ネットワークＩ／Ｆ（ホストＰＣ等と接続するためのネットワークのＩ／Ｆ）
5421：ＵＳＢ２.0（ホストＰＣと接続するためのＵＳＢ2.0Ｉ／Ｆ）
次に、図１によってハードウェアの基本構成を示した制御システムの動作を説明する。ここでは、（１）初期化、（２）省電力モードへの移行、および（３）省電力モードからの復帰の各動作に分け、より詳細なシステム内部の構成例を示しながら、各動作を説明する。
（１）初期化
電源が投入されるとエンジン(5403)は、ＣＰＵ(5404)により、各機能が初期化され、コントローラ(5401)の初期化が終わって、処理要求コマンドを受信するまで待機状態になる。この初期化のフローが、装置を通常の使用可能な状態とする際に行われる。
【００２７】
コントローラ(5401)の初期化は、次の手順による。電源が投入されると、先ず、ＡＳＩＣ２(5417)にリセット信号が入力される。この入力を受けるＡＳＩＣ２(5417)は、いくつかに分割された電源系統に順番をつけて、電源が入るように電源ユニット（図示せず）に、信号を送る。
【００２８】
この結果、それぞれの電源系統から発生したリセット信号が必要なデバイスに分配される。ＣＰＵ(5404)では、リセット信号がアサートされ、ネゲートされると、リセットベクターの命令をフェッチしようとし、ＡＳＩＣ１(5405)にフェッチ信号を送る。ＡＳＩＣ１(5405)は、このフェッチ信号を受け取るとアドレスをデコードして、初期化プログラムの格納されているＲＯＭ０(5410)のCS信号をアサートし、ＣＰＵ(5404)が要求したアドレスの内容（命令コードあるいはデータ）を読み出して、ＣＰＵ(5404)へ渡す。
【００２９】
ＣＰＵ(5404)はＡＳＩＣ１(5405)に命令の読み出しを繰り返し要求し、ＡＳＩＣ１(5405)は、そのアドレスに応じてＲＯＭ0(5410)の命令コード或いはデータをＣＰＵ(5404)へ渡す。このようにしてＣＰＵ(5405)は、プログラムを実行することができる。
【００３０】
ＡＳＩＣ１(5405)には、ＲＯＭ０(5410)の代わりにＳＤ(5408)から、直接コード/データを読み出すことができる仕組みが内蔵されており、ＳＤカードには、ＲＯＭ0(5410)に格納されるプログラムと同様のフォーマットでプログラムが格納されている。一般にＳＤカードは、セクタ番号で管理されるが、ＣＰＵ(5405)からのフェッチ要求アドレスをセクタ番号とセクタ内のオフセットアドレスに変換することで、まるでＲＯＭから読み出すようにアクセスが可能である。
【００３１】
読み出された初期化プログラムによって、ＣＰＵ(5404)の初期化、ＡＳＩＣ１(5405)に接続されるメモリ(5406)とＡＳＩＣ２(5417)の初期化、ＡＳＩＣ１(5405)から出ている2種類のＰＣＩバスの初期化、エンジン(5403)の初期化、操作部（5416)の初期化、ＨＤＤ(5407)の初期化、ネットワークＩ／Ｆの初期化、また、必要に応じて、ＳＬＯＴ群(5418、5419、5413、5414、5415)の初期化を行い、その後アプリケーションを起動する。
【００３２】
ＡＳＩＣ１(5404)のＲＯＭ０(5410)のアクセス時間は、データバス幅に依存するが、ＡＳＩＣ１(5405)の外部端子数を少なく抑えるために、16bitや8bitなどのようにＣＰＵ(5404)のデータバス幅よりも少ないbit数で構成されることが多い。また、場合によってはbit数が4bit、1bitなどのようなシリアルデバイス、たとえば、ＳＥＥＰＲＯＭ、ＳＤカード(5408)、メモリスティックのようなデバイスを使用した場合には、特に遅くなる。さらに、専用の端子を削減するためにＰＣＩバスの端子と共有し、外部ＬＯＧＩＣ(5409)を介して、ＰＣＩの信号と接続し、ＰＣＩバスへのアクセスと排他しながら、ＲＯＭ０(5410)やＲＯＭ１(5411)、ＮＶＲＡＭ(5412)などのアクセスを行うように構成することができる。
【００３３】
本例の構成では、ホストＩ／Ｆと電源制御および省電力モードからの復帰などはASIC2(5417)で行い、ＡＳＩＣ１(5405)は、ＣＰＵ(5405)、ＭＥＭ(5406)、ＨＤＤ(5407)、ＳＤ(5408)、ＰＣＩバス2本の制御を行う。
【００３４】
ＡＳＩＣ１(5405)の2本ＰＣＩバスのオプション構成は、REQ／GNTのセットをどちらにも割り振ることが可能であり、システム構成の自由度を大きくしている。2本あるうちの片方のＰＣＩバスは、エンジン(5403)と接続するための専用であり、もう一方はＡＳＩＣ２(5417)と接続するための専用である。ＡＳＩＣ２(5417)が接続されるＰＣＩバスは66MHzで動作することが可能であり、ホストＩ／Ｆを接続するために特化している。オプション用のスロット1、２、３(5413、5414、5415)は、66MHｚ動作時にエンジン専用のＰＣＩバスへ接続するように構成される。同様に割り込み信号もエンジン(5403)用とＡＳＩＣ２(5417)用を1本固定し、他に3本をどちらのＰＣＩバスへも振り分けることができる。
・ＣＰＵの初期化
ＣＰＵ（MIPS系）(5404)は、ブートコンフィグ（Configuration）データを各ＡＳＩＣから読み取り、リセット解除後、命令のフェッチを開始し、コールドリセットか？それ以外によるリセット例外かどうかの判定、各ＡＳＩＣにおけるローカルバスのアクセスタイミングの初期化、ＣＰＵ内のキャッシュの初期化、ＴＬＢの初期化、例外ベクターの設定、コプロセッサの初期化を行う。
・メモリの初期化
標準で実装されるメモリ（以下、標準メモリと呼ぶ）のタイミングにかかわるパラメータを決定する前に、オプションのメモリが存在するかを確認し、もし、存在すれば、オプションメモリの情報を格納してあるＳＥＥＰＲＯＭをアクセスして、そのメモリの容量、速度、構成を読み出し、標準メモリとタイミングを比較し、遅いほうのタイミングを使用して、ＡＳＩＣ１(5405)に設定を行い、ＭＥＭ(5406)の初期化を行う。その後、割り込みベクターの設定、データ領域への初期値の設定などを行う。
・ＰＣＩバスの初期化
各ＡＳＩＣの内部レジスタのコンフィグ用レジスタを使用して、ＰＣＩバスに存在する全デバイスのサーチを行う。デバイスのタイプを判断して、バスブリッジがあれば、その先のバスのデバイスをサーチする。
【００３５】
全てのデバイスの列挙が完了したら、ＰＣＩのアドレス空間にマッピングを行う。ＡＳＩＣ管理下のメモリの先頭アドレスを0x0000.0000としてマッピングを行い、(必ずしも0x0000.0000にしなくてもよい）その他のデバイスは、ＡＳＩＣのレジスタ空間に用意されたＰＣＩメモリ空間アクセスウインドウあるいはＰＣＩI／O空間アクセスウインドウ内にマッピングする。
【００３６】
マッピングが完了したら、それぞれのデバイスのコマンドレジスタのバスマスタイネーブル、メモリイネーブル、I／Oイネーブルビットに1を設定して、デバイスを動作可能な状態にする。
【００３７】
ＡＳＩＣ１(5405)には、2本のＰＣＩバスが存在するので両方のＰＣＩバスを同様に初期化する。
・エンジン(5403)の初期化
エンジン(5403)とコントローラ(5401)の通信は、エンジン側ＰＣＩデバイスが持つ送信バッファ／受信バッファを介して行う。
・操作部(5416)の初期化
操作部(5416)とＡＳＩＣ２(5417)は、操作部Ｉ／Ｆを介して接続され、送信と受信は全二重で行われる。予め決められているパケットサイズで、パケット通信を行い、操作部にシステムが初期化中であることを表示させる。
・ＨＤＤ(5407)の初期化
ＨＤＤ(5407)が接続されているかどうかの確認を行い、ＨＤＤ(5407)が接続されている場合には、ＨＤＤ(5407)の情報を読み出し、後で利用するために管理情報をメモリに格納する。
【００３８】
コントローラ(5401)のメイン制御システムに搭載されるソフトウエアの構成を図２に示す。図２のソフトウエア構成におけるブロックは、以下の構成要素（構成部）を示す。
【００３９】
5001：PRINT-APL（プリントアプリケーション）
5002：COPY-APL（コピーアプリケーション）
5003：FAX-APL（ＦＡＸアプリケーション）
5004：SCAN-APL（スキャナアプリケーション）
5005：NETWORK-APL（ネットワークアプリケーション）
5006：サービス-API（サービス層5007〜5012のアプリケーションプログラミングインターフェース）
5007：ECS（エンジンコントロールサービス）
5008：MCS（ メモリコントロールサービス）
5009：OCS（オペレーションパネルコントロールサービス）
5010：SCS（システムコントロールサービス）
5011：NCS（ネットワークコントロールサービス）
5012：FCS（ＦＡＸコントロールサービス）
5013：SRM（システムリソースマネジャー）
5014：汎用ＯＳ（この例ではUNIX（登録商標）ライクなＯＳを搭載）
5015：エンジンコマンドＩ／Ｆ（エンジンと通信するためのプログラミングインターフェース）
5016：エンジンハードウェア（エンジン本体）
5017：コントローラハードウェア（コントローラのハードウェアリソース）
上記のように、ＣＰＵ(5404)や各ＡＳＩＣに依存する部分はデバイスドライバ層で吸収する（後記図２０の汎用ＯＳ層の構成、参照）ことで、異なるＣＰＵや異なるＡＳＩＣでも移植が容易になるように構成されている。
【００４０】
図３は、図１のコントローラ(5401)におけるＡＳＩＣ１の内部構成のブロック図を示す。図３のＡＳＩＣ１における各ブロックは、以下の構成要素（構成部）を示す。
【００４１】
5201：ＣＰＵ（図１では、5404として示す）
5202：ＡＳＩＣ１（図１では、5405として示す） 
5203：ＣＰＵＩ／Ｆ（ＣＰＵ(5201)とＡＳＩＣ１(5202)を接続するモジュール）
5204：ＩＲＥＧ（内部レジスタ）
5205：arbiter（メモリアービタ）
5206：PCI66_CONFIG（PCI66(5212)のCONFIG空間）
5207：PCI66_INITIATER（PCI66(5212)のイニシエータアクセスモジュール）
5208：ＬＢＣ（ローカルバスコントローラ）
5209：PCI66_DIRECT（PCI66(5212)のダイレクトアクセスパス）
5210：PCI66_SEL（ローカルバスとPCI66(5212)のセレクタ）
5211：PCI66_Target（PCI66(5212)のターゲット）
5212：PCI66（PCI66部）
5213：PCI66_arbiter（ＰＣＩアービタ）
5215：DATA_DMAC（ＨＤＤ(5407)のデータDMAC(Direct Memory Access Controller)）
5216：CMD_DMAC（ＨＤＤ(5407)のコマンドDMAC）
5217：CD1_DMAC1（圧縮伸長器１の画像側(画像入出力用)DMAC）
5218：CD1（圧縮伸長器１）
5219：HDC（ＨＤＤコントローラ(RAID対応：2台)）
5220：PCI-CONFIG（ＰＣＩのCONFIG空間）
5221：PCI-INITIATER（ＰＣＩのイニシエータアクセスモジュール）
5222：ＰＣＩ（ＰＣＩ部(64bit対応)）
5224：SEL（圧縮伸長器セレクタ）
5225：CD2（圧縮伸長器２）
5226：CD2-DMAC1（圧縮伸長器２の画像側(画像入出力用)DMAC）
5227：CD1-DMAC2（圧縮伸長器１の符号側(符号入出力用)DMAC）
5228：CD2-DMAC2（圧縮伸長器２の符号側(符号入出力用)DMAC）
5229：FIFO（First-In First-Out、ビデオ１出力用FIFO）
5230：SFT（ビデオ１画像シフタ）
5231：OR（ビデオ １画像合成器）
5232：FIFO（ビデオ１合成フレーム出力用FIFO）
5234：DMAC（ビデオ１出力用DMAC）
5235：DMAC（ビデオ１合成フレーム出力用DMAC）
5236：DEC（ビデオ１用伸長器）
5237：DMAC（ビデオ１用伸長器符号入力用DMAC）
5238：DMAC（ビデオ１用伸長器画像出力用DMAC）
5239：VOUT1（ビデオ１モジュール）
5240：VOUT2（ビデオ２モジュール）
5241：VOUT3（ビデオ３モジュール）
5242：VOUT4（ビデオ４モジュール）
5243：FIFO（分離信号出力用FIFO）
5244：SFT（分離信号シフタ）
5245：DMAC（分離信号出力用DMAC）
5246：FIFO（画像入力用FIFO）
5247：DMAC（画像入力用DMAC）
5248：DIRECT（ＰＣＩダイレクトアクセスパス）
5249：PCI_Target（ＰＣＩターゲットモジュール）
5250：PCI_Arbiter（ＰＣＩアービタ）
5251：RAMC（RAMメモリコントローラ）
5252：DMAC（クリア用DMAC）
5253：CLR（クリア用モジュール）
5254：DMAC（回転器２用ライトDMAC）
5255：ROT2（回転器２）
5256：DMAC（回転器２用リードDMAC）
5257：DMAC（回転器１用ライトDMAC）
5258：ROT１（回転器１）
5259：DMAC（回転器１用リードDMAC）
5260：DMAC（合成用ライトDMAC）
5261：OR（合成モジュール）
5262：DMAC（合成用リード1DMAC）
5263：DMAC（合成用リード2DMAC）
5264：ＡＳＩＣ２（I／O用ＡＳＩＣ。図１では、5417として示す）
5265：SLOT1（PCI66用オプションスロット）
5266：SLOT１（ＰＣＩ用オプションスロット）
5267：ＥＮＧＩＮＥ（スキャナ／プロッタエンジン）
5268：DATA_DMAC（ＳＤ用データDMAC）
5269：CMD_DMAC（ＳＤ用コマンドDMAC）
5270：DMAC（ＳＤ−I／O用データDMAC）
5271：SD（ＳＤコントロールモジュール）
また、図４は、ＡＳＩＣ１（図１では、5405として示す）のメモリマップを示す。図４に示すテーブルには、左欄から順に、「アドレス」、「サイズ」（大分類に対応）、「大分類」（メモリ空間の種類で分類）、「サイズ」（細分割サイズ）、「詳細」（大分類の詳細）の形式でメモリマップを示す。
【００４２】
図５は、図１のコントローラ(5401)におけるＡＳＩＣ２の内部構成のブロック図を示す。図５のＡＳＩＣ1における各ブロックは、以下の構成要素（構成部）を示す。
【００４３】
5264：ＡＳＩＣ２（I／O用ＡＳＩＣ。図１では、5417として示す）
5351：ＰＣＩ（ＰＣＩバス制御部で、ここを通じてＡＳＩＣ１(5202)と接続される）
5352：PCI_Arbiter（ＰＣＩアービタ）
5353：DMAC（ＳＤ用DMAC）
5354：DMAC（ＵＳＢ用DMAC）
5355：DMAC（ＭＡＣ用DMAC）
5356：DMAC（ＯＰＣＭ用DMAC）
5357：ＳＤ（ＳＤ用制御部）
5358：ＵＳＢ（ＵＳＢ制御部）
5359：ＭＡＣ（メモリ制御部）
5360：ＯＰＣＭ（コピー操作部Ｉ／Ｆ制御部）
5361：ＩＲＥＧ（内部レジスタ）
5362：Debug_Serial、OPCP（プリンタ操作部Ｉ／Ｆ）、ＧＩＯ（汎用ＩＯポート）、SPI（SPI制御レジスタ）、I2C（I2C制御レジスタ）、ＰＭ（パワーマネジメント部）、INTC（割り込み制御部）、WatchDogの各制御部
5363、5371、5372、5373：Arbiter（内部バスアービタ）
5364：System_i/f（ＣＰＵ(5370)により構成する制御システムのＩ／Ｆ）
5370：ＣＰＵ（ＡＳＩＣ２(5264)全体を制御するプロセッサ）
5374：Shared_RAM_i/f（Shared_Ram(5377)に対するＩ／Ｆ）
5375：RAMC（System_RAM(5378)の制御部）
5376：LBC（外付けSystem_MEMの制御部）
5377：Shared_Ram（ＡＳＩＣ２内のShared_RAM）
5378：System_RAM（ＡＳＩＣ２内のSystem_RAM）
5380：System_ROM（ＡＳＩＣ２外のSystem_ROM）
5381：System_RAM（オプションで用いる、ＡＳＩＣ２外のSystem_RAM）
図５の実施形態に示すサブ制御システム（I／O用ＡＳＩＣ）を構成するＡＳＩＣ２(5264)は、ＣＰＵ(5370)を有する。つまり、ＣＰＵを搭載することにより、制御システムに柔軟性を持たせ、省電力モード時の電源制御等を司るサブ制御システムに適合する機能の実現を容易にする。
【００４４】
他方、同様のサブ制御システムを全てハードウェア構成として実施することも可能である。図６は、サブ制御システムを構成するI／O用ＡＳＩＣをハードウェア構成とした実施例を示す。なお、図６におけるＡＳＩＣ２(5264)は、図１の制御システムにおけるＡＳＩＣ２(5417)に当たる。
【００４５】
ＣＰＵを持たない図６に示す構成でも、I／O用ＡＳＩＣとしての機能は、図５に示したＣＰＵを搭載したものと同様であり、実施は可能である。ただ、ＣＰＵを持たない構成例（図６）によると、回路規模が増大すること、システムの柔軟性にかける、などの側面があるので、ここでは、この構成例については図に示すに留め、後記する省電力モード時の電源制御等のサブ制御システムに係る実施形態では、図５に示すＣＰＵを持つ構成例に基づいて詳述する。
（２）省電力モードへの移行
各種デバイスの初期化が完了すると、汎用ＯＳ(5014)は、システムのコンフィグ情報にもとづいてアプリケーションを起動する。なお、オプションとしてのＦＡＸユニットが存在しない場合は、ＦＡＸアプリケーション(5003)は起動しない。
【００４６】
アプリケーションが起動すると、操作部(5416)には、デフォルトでコピーアプリケーションの操作画面が表示され、ユーザの指示待ちになる。初期操作画面は、ユーザの設定により、どのアプリケーションの画面にも変更が可能である。
【００４７】
この後、操作部からのユーザの処理要求の指示に従い、各種のアプリケーションを利用して通常の処理が行われる。通常処理の動作モードにおいて、所定の移行条件を満たす場合、省電力モードへと移行する。その後、所定の復帰条件に従い再び通常処理の動作モードに復帰する。
【００４８】
図７は、この間の状態遷移を示す図である。以下、図７の状態遷移図をもとに動作を説明する。なお、同図はコピー機能を利用する場合を例にしている。
【００４９】
図７において、主電源オン(6801)後は、コントローラ(5401)は、上記のようにＣＰＵ(5404)の初期化、ＡＳＩＣ１(5405)、ＡＳＩＣ２(5417)の初期化を含む初期化プロセスを経て、エンジンレディ状態となる。
【００５０】
エンジン(5403)は、ＣＰＵ(5404)、各ＡＳＩＣの初期化を含む初期化プロセスを経て、コントローラ(5401)と通信して、定着部（不図示）がウォームアップ中(6802)であることを知らせる。この時、エンジン(5403)は、定着部が一定温度になるまでは、通常よりも電力を多めに使って、できるだけ高速に立ち上げようとする。
【００５１】
定着が目標温度になると、制御を変更して、通常の電力を使って、定着の温度を一定に保つ。このエンジンレディ状態になると、ユーザの指示を受けて、コピー動作(6803)を開始する。コピー動作中(6804)は一定の電力を消費する。
【００５２】
コピー完了(6805)と同時に、コピー可能な状態(6806)で待機する。この状態で、ユーザがある一定時間(6807)、本ＭＦＰ機をアクセスしなければ、省電力用の監視タイマのタイムアウト(6808)が発生し、ＭＦＰ機は省電力モード(6809)に移行する。
【００５３】
省電力モード(6809)では、復帰条件を監視する機能を持つ部分を除いては、電源を切って、消費電力を低く抑える。
【００５４】
ユーザが、コピーをとるために省電力モードからの復帰キー、あるいはＡＤＦ（自動原稿送り装置）への原稿の挿入、あるいは、ＡＤＦのリフト（圧板読取のためにＡＤＦを除ける）、あるいはネットワークからの復帰指示によって、復帰トリガー(6810)がかかり、復帰動作(6811)を開始する。
【００５５】
復帰動作中(6811)は、定着の温度を上げるために、通常よりも電力を多めに使って、できるだけ高速に立ち上げようとする。
【００５６】
復帰時、ＣＰＵ(5404)は、ＡＳＩＣの初期化を含む初期化プロセスを経て、エンジンレディ待ちとなる。
【００５７】
エンジン(5403)は、ＣＰＵ(5404)、各ＡＳＩＣの初期化を含む初期化プロセスを経て、コントローラ(5401)と通信して、定着部（不図示）がウォームアップされ復帰中(6811)であることを知らせる。この時、エンジン(5403)は、定着部が一定温度になるまでは、通常よりも電力を多めに使って、できるだけ高速に立ち上げようとする。
【００５８】
定着が目標温度になると、制御を変更して、通常の電力を使って、定着の温度を一定に保つ。このエンジンレディ状態になると、ユーザの指示を受けて、コピー動作を開始する(6812)。コピー動作中(6813)は一定の電力を消費する。
【００５９】
コピー完了(6814)と同時に、コピー可能な状態(6815)で待機し、ユーザがある一定時間、画像処理装置をアクセスしなければ、省電力用の監視タイマのタイムアウト(6816)が発生し、画像処理装置は省電力モード(6817)に遷移する。
【００６０】
上記した動作モードの遷移において、主電源オン(6801)から通常処理状態への立ち上げ時、及び省電力モードから通常処理状態への復帰時に、コントローラ(5401)の初期化プロセスを行うが、この時に行う初期化処理について、更に説明を加える。
【００６１】
コントローラ(5401)の汎用ＯＳ(5014)を含む各種アプリケーションの立ち上げ時間は、プログラムＲＯＭ（本例では、ＲＯＭ０(5010)、ＲＯＭ１(5411)等が用いられる）のアクセスタイムに依存する。
【００６２】
ＲＯＭへのアクセスによってプログラムの立ち上げるためには、圧縮していない状態でプログラムを格納する必要があり、データ量は圧縮したときに比べて数倍になるため、コストが高くなる欠点がある。
【００６３】
主電源オンからの立ち上げ時、省電力モードからの復帰時のいずれも、短い時間で立ち上げることが望ましいが、様々な制約があるので、実際には、省電力モードからの復帰時間の方をより短くするような条件設定をしなくてはならない。
【００６４】
プログラムＲＯＭは、ＡＳＩＣ１(5405)に接続されており、ＡＳＩＣの端子を減らすために、ＲＯＭにアクセスのためのデータバス幅は、ＣＰＵ(5404)のデータバス幅よりも、少なく設計している。
【００６５】
通常は主電源オンでＲＯＭから、命令を実行し、途中から命令をＲＡＭ（本例では、ＭＥＭ(5406)が用いられる）上にコピーし、ＲＡＭの容量がゆるせば、全てのＲＯＭのプログラムをＲＡＭ上にコピーし、ＲＡＭの容量が少ない場合は、どうしても高速に実行しなくてはならない部分をＲＡＭにコピーして実行するような方法をとる。
【００６６】
このため、ブート時にはＲＯＭのコードをＲＡＭにコピーする時間が余分にかかる。
【００６７】
上記した動作条件でプログラムＲＯＭをアクセスし、プログラムのブートを行う場合、即ち、ＲＡＭに展開しない場合のブート処理手順の例を図９に示す。
【００６８】
図９に示すように、例示したブート手順は、電源オンからＯＳのカーネルのブートにより終了する。その間に、モニタの初期化（ステップＳ１０１）、自己診断の初期化（ステップＳ１０２）、ＣＰＵテスト（ステップＳ１０３）、ＡＳＩＣ、ＭＥＭテスト（ステップＳ１０４）、エンジン、割り込みテスト（ステップＳ１０５）、操作部の初期化（ステップＳ１０６）、ＫＥＹ情報取得（ステップＳ１０７）、診断終了処理（ステップＳ１０８）、ＰＣＩコンフィグ（ステップＳ１０９）、ＯＳカーネルブート（ステップＳ１１１）の各プログラムのブートを行う。
【００６９】
図１０は、図９に示した、ＲＡＭに展開しない場合のブート処理手順を行ったときの各ステップの処理に要した時間の配分を示す。同図は、横軸を時間（ms）軸として、0msの“モニタの初期化”で始まり、“ＯＳカーネルブート”で終了する各ブート処理の所要時間を示している。
【００７０】
なお、ブート手順はＯＳカーネルのブートまで説明しているが、ＭＦＰがコピー可能となり、プリンタがプリント可能となるために、カーネルブート後、ドライバのロードやアプリケーションのロードが必要である。
【００７１】
上記のＲＡＭに展開しない場合のブート処理手順に対し、ＲＯＭに圧縮したプログラムを格納し、ブート時にＲＡＭに展開する場合のブート処理手順の例を図１１に示す。
【００７２】
図１１に示すブート処理手順は、図９に示した手順におけると変わらないが、ＰＣＩコンフィグ（ステップＳ１０９）とＯＳカーネルブート（ステップＳ１１１）との間に、カーネルの伸長・ＲＡＭへの展開（ステップＳ１１０）の処理手順が付加される。これ以外の手順は、基本的に図９に示した処理と変わりがない。
【００７３】
従って、データ圧縮された形でＲＯＭに格納されたプログラムに対し、伸長・ＲＡＭへの展開を必要とする分、ブートに要する時間が掛かる。
【００７４】
図１２は、図１１に示した、ＲＡＭに展開した場合のブート処理手順を行ったときの各ステップの処理に要した時間の配分を示す。図１２に示すように、カーネルの伸長に要した時間分だけ、ＲＡＭに展開しない場合（図１０、参照）に比べ長く掛かっている。カーネルの部分をＲＯＭからＲＡＭへ伸長する時間は、通常、1秒〜4秒ほどかかる。また、ドライバのロードやアプリケーションのロードも同様に、ＲＡＭへ展開すれば、さらに時間が掛かることになる。
【００７５】
このため、電源投入時のブートは、ＲＡＭに展開する方式による場合でも、省電力モードへの移行の際に、ＲＡＭ上に展開されたコードを保存したまま、モード移行を行うようにする（Suspend to RAMとよばれる）ことで、省電力モードから復帰する場合に、ＲＡＭに保存されているコードを実行することで、展開時間を省くことができ、システムが短時間で立ち上がり、コピーやプリンタ機能を持つＭＦＰとして「コピー可能」、「プリント可能」状態になるまでを早くすることが可能になる。
（３）省電力モードからの復帰
電源制御等を司るサブ制御システムとしてのＡＳＩＣ２(5417)が、省電力モードからの復帰の制御を行う。
【００７６】
図８は、省電力モードにおいて電源がＯＦＦされた制御システムの状態を示す図である。図８に示すように、省電力モード時には、図８中の網掛け表示で示す部分の電源、即ち、省電力モードにおいても、アクティブ（通電状態）にしておく、電源の制御部及び外部入力（例えば、ユーザの入力操作や外部装置を接続する各種Ｉ／Ｆ経由の入力等）に対する応答・監視部を除いて、他の部分の電源をＯＦＦ状態とする。従って、サブ制御システムとしてのＡＳＩＣ２(5417)（図５、参照）が担う制御機能に必要な手段として、電源の制御部及び外部入力に対する応答・監視部を省電力モードにおいても、アクティブな状態に保つ。
【００７７】
図５に示したＡＳＩＣ２(5264)（図１では、ＡＳＩＣ２(5417)として示す）は、内部にＣＰＵ(5370)を有し、ソフトウエアによって制御される（以下、このソフトウエアシステムを「サブシステム」と記す）。
【００７８】
サブシステムはｉＴｒｏｎ等の組み込みＯＳ上のタスクとして実現される。各タスクは、メッセージによって通信し、通信ドライバを介してメインシステムと通信しながら制御を行う。
【００７９】
図１３は、本実施形態に係るサブシステムの内部構成のブロック図を示す。
【００８０】
図１３のソフトウエア構成におけるブロックは、以下の構成要素（構成部）を示す。
【００８１】
1301：サブマネージャ
1302：モニタシェルタスク
1304：ＰＭ（パワーマネジメント）タスク
1305：ＳＷ＿ｉＦｉｌｔｅｒ（ネットワーク）タスク
1306：通信ドライバ
1307：ＵＳＢ応答タスク
1308：パネルタスク
1309：エラー割り込みタスク
1310：ＧＩＯ（汎用ＩＯポート）タスク
1311：Watchdogタスク
1312：タイマタスク
1313：パフォーマンスモニタタスク
1314：ＰＭ（パワーマネジメント）HISR（高レベル割り込みサービスルーチン）
1315：ｉＦｉｌｔｅｒ（ネットワーク）HISR
1316：通信HISR
1317：ＵＳＢ_HISR
1318：パネル HISR
1319：エラー割り込みHISR
1320：ＧＩＯ（汎用ＩＯポート）HISR
なお、上記のＰＭ、ｉＦｉｌｔｅｒ、通信、ＵＳＢ、パネル、エラー割り込み、ＧＩＯの各HISR（高レベル割り込みサービスルーチン）は、それぞれ対応するタスクのハードウェアを制御するルーチンである。
【００８２】
以下、上記の構成を有するサブシステム（図１３）が行う省電力モードの動作例について説明する。
【００８３】
ＭＦＰ機全体のパワーオンでサブシステムを起動したあと、各タスクは初期化される。サブシステムは、省電力モード時にも、通電状態にされているために、継続して動作する。省電力モード時に、各タスクは、対応するＡＳＩＣの部分（外部周辺機器を含む）を監視し、監視結果が復帰条件を満たす場合にＰＭ（パワーマネジメント）の制御を通じて、ＭＦＰ機を省電力状態から復帰させることができる。
【００８４】
例えば、ＧＩＯは、汎用ＩＯポートを示すが、ハードウェア的に、省電力状態にある操作部のキー検知や、ＭＦＰ機のスキャナにおける圧板検知等のセンス信号を受取るように構成されているものとする。これらのラインの変化をＧＩＯタスク(1310)は、省電力状態時に、検知し、状態の遷移を監視する。
【００８５】
図１４は、ＧＩＯタスク(1310)の状態遷移表を示す。図１４に示す表は、左欄に上から下に向かう時間の推移に沿って生じる「イベント」を、上欄に左から右に向かう時間の推移に沿ってその時の「状態」を記し、また、マトリクスの交わる部分にタスクのメッセージの送信などの「動作」を記している。つまり、状態遷移表は、タスクがサブシステムで生じるイベントを各部からのメッセージ（本例では主としてサブマネージャタスク(1301)からのメッセージ）によって知ることで状態遷移を起こし、状態遷移に伴いメッセージ送信等の動作を行うことを示す。
【００８６】
図１４において、ＧＩＯタスク(1310)は、主としてサブマネージャタスク(1301)からのメッセージによって、省電力モードへ移行した後、省電力状態にあるときに、復帰要因となるＧＩＯポートからの割り込みを検出したとき、サブマネージャタスク(1301)に対して復帰要因検出メッセージを送信する。
【００８７】
この省電力モードからの復帰要因の検出は、ＧＩＯタスク(1310)だけでなく、ＵＳＢ応答タスク(1307)、パネルタスク(1308)、タイマタスク(1312)、ＳＷ＿ｉＦｉｌｔｅｒ（ネットワーク）タスク(1305)、エラー割り込みタスク(1309)等を監視する各タスクによっても行われる。なお、ＵＳＢ応答タスク(1307)については、図２０を用いて後述する。
【００８８】
図１５は、サブマネージャタスク(1301)の状態遷移表を示す。
【００８９】
サブマネージャタスク(1301)は、サブシステムを統括するタスクであり、図１５の状態遷移表には、サブシステム全体の状態遷移が示されている。
【００９０】
図１５に示すように、サブシステム起動後、メイン制御システムで画像入出力処理が行われる通常の動作モードを経て省電力モードへ移行する。その後、サブシステムの制御により省電力モードの動作中にある“状態4”において、ＧＩＯタスク(1310)から送信されてくる、省電力モードからの復帰要因検出メッセージ（図１４に関する上記説明、参照）を受取ることにより、サブマネージャタスク(1301)は、サブシステムを “状態5”のメイン復帰中に移行させるべく、各タスクに “メイン復帰準備要求”のメッセージを送信する。この後、“状態5”でメイン復帰実行要求メッセージを送出するが、この時点でＰＭ（パワーマネジメント）タスク(1304)によりＡＳＩＣ２(5264)（図１では、ＡＳＩＣ２(5417)として示す）のパワーマネジメント部を操作してメイン制御システムであるＡＳＩＣ１(5202)（図１では、ＡＳＩＣ１(5405)として示す）の復帰を行う。
【００９１】
図１６は、ＰＭ（パワーマネジメント）タスク(1304)の状態遷移表を示す。
【００９２】
ＰＭ（パワーマネジメント）タスク(1304)は、メイン復帰実行要求をうけたときにパワーマネジメント部のレジスタ（図５のＰＭ(5362)、ＩＲＥＧ(5361)）を操作して省電力復帰シーケンスをつくりだすことである。なお、本実施形態では、省電力モードに移行するシーケンスはメインから要求をうけたハードウェアが行う。
【００９３】
図１６において、サブシステムの制御により省電力モードの動作中にある“状態4”において、サブマネージャタスク(1301)から送信されてくる、メイン復帰準備要求メッセージを受取り、その後“状態5”において、再び送信されてくる、メイン復帰実行要求メッセージ（図１５に関する上記説明、参照）を受取ることにより、ＰＭ（パワーマネジメント）タスク(1304)は、メイン制御システムの復帰処理行う。
【００９４】
上記では、省電力モードからの復帰動作に注目し、サブシステムの動作を関連するタスクの状態遷移により説明した。そこで、以下には、メイン制御システムとサブシステムとを関連付け、全体として、省電力モードの移行／復帰処理のシーケンスをまとめる。
【００９５】
図１７は、移行シーケンスの例を示し、図１８は、復帰シーケンスの例を示す。
【００９６】
図１７、図１８は、いずれも省電力モード時に電源が制御されるメインシステムと、省電力モードの移行／復帰動作を制御するサブシステムのサブマネージャと、同サブシステムの各タスクの各部間で行われるメッセージの送受、及び各部内で行われる処理のシーケンスを示す。図１７の移行シーケンスではＰ１〜Ｐ１５とし、図１８の復帰シーケンスではＰ２１〜Ｐ３６として付した番号の順に従って、シーケンスを実行する。
【００９７】
なお、図１７、図１８において、各部間で行われるメッセージの送受は、上記したサブマネージャの状態遷移表（図１５）及びＧＩＯタスクの状態遷移表（図１４）やＰＭ（パワーマネジメント）タスクの状態遷移表（図１６）に示される動作に対応する。
【００９８】
また、各部内で行われる処理として、図１７の移行シーケンスでは、サブマネージャからの要求に応えて各タスクが行う“移行準備処理”（Ｐ６）と“移行実行処理”（Ｐ１５）、メイン制御システムがサブマネージャに移行実行を要求する前に行う“移行処理”（Ｐ１０）及びサブマネージャが行うタイマによる管理処理（Ｐ５、Ｐ８、Ｐ１１、Ｐ１３）が含まれる。図１８の復帰シーケンスでは、各タスクの“復帰要因検出”（Ｐ２１）、サブマネージャからの要求に応えて各タスクが行う“メイン復帰準備処理”（Ｐ２５）と“メイン復帰処理”（Ｐ３０）、ＰＭタスクからの指示に応じてメイン制御システムが行う“メイン起動処理”（Ｐ３２）及びサブマネージャが行うタイマによる管理処理（Ｐ２４、Ｐ２７、Ｐ２９、Ｐ３４）が含まれる。
【００９９】
上記のシーケンスは、ＧＩＯタスクによる復帰要因検出によりＰＭ（パワーマネジメント）タスクを動作させ、省電力モードからの復帰を行うものであった。
【０１００】
ＧＩＯタスクによると同様に、各ハードウェアを検知するタスクを用意することにより、それぞれの復帰要因に対応した処理が可能となる。ここでは、パネルタスクによっても、復帰要因の検知を行う。
【０１０１】
図１９は、パネルタスク(1308)の状態遷移表を示す。
【０１０２】
本実施形態に示す例では、パネルタスクは、操作部(5416)のパネルのコントローラデバイスに対してコマンドを送出し、ポーリングを行うことでキー情報を取得する。省電力状態のときには、キースキャンタイマによりポーリングを行う。
【０１０３】
図１９において、パネルタスク(1308)は、サブマネージャタスク(1301)からのメッセージによって、省電力モードへ移行した後、“省電力復帰監視中”の状態にあるときに、復帰操作部(5416)のパネルのコントローラデバイスから要因となるキーＯＮの割り込みを検出したとき、サブマネージャタスク(1301)に対して復帰要因検出メッセージを送信する。
【０１０４】
また、本実施形態においては、従来から行われてこなかったが、ＵＳＢデバイス（ＵＳＢによって接続される周辺デバイス）からのデータ入力によって、省電力モードからの復帰をサポートできるようにする。
【０１０５】
このために、ＵＳＢ応答タスク(1307)は、省電力モードからの復帰要因としてのＵＳＢデバイスのデータ入力の検出を行う。
【０１０６】
図２０は、復帰要因の検出を可能としたＵＳＢ応答タスク(1307)の状態遷移表を示す。
【０１０７】
図２０において、ＵＳＢ応答タスク(1307)は、メイン制御システムが稼動（通常モードの画像の入出力処理実行）した後、“状態3”の省電力移行中に、省電力移行実行要求を受信すると、“状態4”の省電力モードに入る。このときに同時に、ＵＳＢ応答タスク内で復帰要因検出を開始する。省電力モード中の“状態4”において、復帰要因としてのＵＳＢデバイスからのデータ入力を検出したとき、ＵＳＢ応答タスク(1307)は、サブマネージャタスク(1301)に対して復帰要因検出メッセージを送信する。
【０１０８】
ＵＳＢ応答タスク(1307)からの復帰要因検出メッセージを受信したサブマネージャタスク(1301)は、上記した他の復帰要因検出時と同様に、ＰＭ（パワーマネジメント）タスク(1304)に指示して、メイン制御システムの復帰処理を行う。
【０１０９】
サブシステム（ＡＳＩＣ２(5264)、図１では、ＡＳＩＣ２(5417)として示す）の制御下のＵＳＢは、汎用のＩ／Ｆとして外付けの周辺機器を接続し、プラグアンドプレイに対応した動作を可能とする。従って、省電力時にもＵＳＢをアクティブ（通電状態）に維持すると、ユーザは、特別な操作を要することなく、随時ＵＳＢデバイスを利用してデータ入出力を行うことができる。また、ユーザは、プラグアンドプレイで自由に各種のＵＳＢデバイスを使用できる。
【０１１０】
上記のサブシステムは、メイン制御システムの省電力モードからの復帰動作をＵＳＢにおけるデータ入力の検知を条件に行う構成とした例である。同様にして、本発明のサブシステム（ＡＳＩＣ２(5264)は、メイン制御システムの省電力モードからの復帰動作をＵＳＢの活線挿抜の検知を条件に行う構成にすることもできる。即ち、省電力モード中の“状態4”において、復帰要因としてのＵＳＢデバイスの活線挿抜（ＵＳＢケーブルの挿入又は引き抜き）を検出したとき、ＵＳＢ応答タスク(1307)は、サブマネージャタスク(1301)に対して復帰要因検出メッセージを送信する。ＵＳＢ応答タスク(1307)からの復帰要因検出メッセージを受信したサブマネージャタスク(1301)は、他の復帰要因検出時と同様に、ＰＭ（パワーマネジメント）タスク(1304)に指示して、メイン制御システムの復帰処理を行う。
【０１１１】
本発明のＭＦＰは、このようなＵＳＢの利用をサポートするための仕組みをメイン制御システムにソフトウェア構成で装備する。
【０１１２】
図２１は、コントローラ(5410)の汎用ＯＳ層の構成を示す。なお、汎用ＯＳ層は、先に示したコントローラ(5410)のソフトウェア構成（図２）の要素である。
【０１１３】
図２１のソフトウエア構成におけるブロックは、以下の構成要素（構成部）を示す。
【０１１４】
2001：プロセスＩ／Ｆ
2002：仮想記憶メモリ管理
2003：プロセス管理
2004：ネットワークプロトコルスタック
2005：ファイルシステム（機内で生成される画像ファイル等の記憶部を管理する）
2006：各種ドライバ（エンジンのドライバを含む）
2007：ＡＣＰＩ（Advanced Configuration Power Interface）ドライバ（ハードウェアの省電力機構をサポート）
2008：ネットワークドライバ
2009：ＵＳＢドライバ
図２１に示すＯＳ層は、ハードウェア資源を管理し、上位層のＩ／Ｆを提供する。ＡＣＰＩドライバ(2007)は、ＣＰＵ(5404)等のハードウェアの省電力機構をサポートするためのドライバである。このドライバの操作により、ハードウェアの省電力状態を制御する。ここでは、IBM-AT互換アーキテクチャで実現されているACPIと同等の機能を搭載することにより実施可能である。なお、ＵＳＢドライバ(2009)と関連する動作については、後記で詳述する。
【０１１５】
ＵＳＢドライバ(2009)は、ＵＳＢのハードウェアを管理し、プロセスＩ／Ｆ(2001)を介してプロセス層に対して機能を提供する。
【０１１６】
ネットワークドライバ(2008)は、ネットワークハードウェアを駆動し、ネットワークプロトコルスタック(2004)に対して、ハードウェアに依存しないネットワーク通信機能を提供する。
【０１１７】
メイン制御システムは、ハードウェア資源を管理するＯＳ層として、図２１に示すような構成を備えることにより、メイン制御システムにおけるＣＰＵ(5404)等の電源をＯＦＦとする省電力動作をサポート可能とする。
【０１１８】
即ち、省電力状態になるとハードウェア的にはＲＡＭ上のデータは保存されたままＣＰＵ(5404)がＯＦＦ状態になり、復帰時にはＡＣＰＩドライバ(2007)から制御がもどったように動作する。
【０１１９】
ただし、サブシステム（ＡＳＩＣ２(5264)、図１では、ＡＳＩＣ２(5417)として示す）は、常時、アクティブ（通電状態）に維持されているので、サブシステムの制御下にあるハードウェアの状態は、実際には、省電力中に発生するデバイスの挿抜等により、変化してしまう、といったことが起こり得る。
【０１２０】
また、デバイスによっては、省電力に移行する際に、事前の処理を行ってから、省電力状態に移行することを必要とする場合がある。ＵＳＢドライバの場合、ＵＳＢの状態がconfigured状態であるときに、バルクイン／アウト等のエンドポイントに関してデータの送受信が可能となる。しかし、省電力状態では、データを受信したくはないため、通常動作状態でのＤＭＡをストップしておき、省電力モード中にバルクアウトポートに受信データがきた場合、ハードウェアでNAK応答をかえすようにしておき、省電力状態から復帰した後、データ受信処理を行うようにする、といった仕組みを持つ。こうした仕組みがある場合、従来、メイン制御システム（ＵＳＢドライバ）は、ＵＳＢデバイスの状態の変化を認識できない。
【０１２１】
上記のように、ＵＳＢドライバが、省電力モード中に生じるＵＳＢデバイスの状態変化を認識できないために、省電力モードからの復帰後、移行直前にメイン制御システム（ＵＳＢドライバ）側で処理に用い、移行時に保持した状態遷移を示すデータと、省電力時に変化したＵＳＢデバイスの状態との間に不整合が生じ、動作に不具合が生じる可能性がある。
【０１２２】
そこで、本実施形態のＵＳＢドライバは、ＵＳＢの状態を省電力移行時に記録しておき、省電力モードからの復帰後、実際にロードされているＵＳＢデバイスのハードウェアの状態を移行時に記録した状態と比較し、不整合があれば修復処理を行うことにより、状態遷移を一致させる。こうすることにより、省電力中にＵＳＢで接続されたデバイス（例えばホストPC等）の電源ＯＦＦ／ＯＮ 、或いはＵＳＢケーブルの活線挿抜が行われた場合にも、復帰後、状態を整合させ、正常な動作を続行可能とする。
【０１２３】
図２２は、ＵＳＢデバイスの状態遷移を示す。ここでは、ＵＭＬ（unified modeling language）等で使用されているＨａｒｅｌの状態遷移図の記法を用いている。この記法では入れ子の状態の記述を許す。
【０１２４】
図２２の遷移図におけるブロックは、以下の要素を示す。
【０１２５】
2101：Not Attached（未接続状態）
2102：Attached（接続状態）
2103：Powered（通電状態）
2104：Default（デフォルト状態）
2105：Address（アドレス状態）
2106：Configured（設定状態）
2108：Suspended（中止状態）
以上は、状態を示す。また、以下は、操作を示す。
【０１２６】
2111：Connect（接続）
2112：Disconnect（接続解除）
2121：Hub Configure（ハブの設定）
2122：Hub Reset or Hub Deconfigure（ハブリセット又はハブの設定解除）
2131：Reset（リセット）
2132：Address Assign（アドレス割当て）
2133：Deconfigure（設定解除）
2134：Configure（設定）
2141：Suspend（中止）
2142：Resume（復帰）
一般的に、ＵＳＢファンクション側のデバイスチップでは、状態遷移自体の管理は、ハードウェアロジックで実現しているものが一般的である。従って、ＵＳＢデバイスドライバは、その状態を監視あるいは割り込みを受けることで変化を知ることができる。
【０１２７】
図２２に示す状態遷移で動作するＵＳＢデバイスが、省電力移行直前にConfigured(2106)であったとして、省電力からの復帰後、Powered(2103)であるとすると、直接の状態遷移はないため、省電力中に抜き挿し等でAttached(2102)或いはNot Attached(2101)まで状態がもどってPowered(2103)に移行したと考えられる。なお、この場合には、何回も抜き挿し等の遷移をくりかえしていた可能性もあり、また、こうした動作は、ＵＳＢに関する活線挿抜等を省電力モードからの復帰要因としない、という前提が存在するときに起き得る。
【０１２８】
ＵＳＢドライバの構造に依存するが、実際の遷移がどのようであったにせよ、ＵＳＢドライバの状態を最短の遷移を行ったと仮定し、この仮定に従って動作させても、ＵＳＢドライバの状態に矛盾は生じないように作成しておけば、最短の遷移で状態を戻すことでＵＳＢドライバの状態と実際のＵＳＢデバイスの状態を整合することができる。ここに、ＵＳＢデバイスの状態を表す情報として、下記のようにシリアル番号を対応して付しておくとする。
・Not Attached＝０
・Attached＝１
・Powered＝２
・Default＝３
・Address＝４
・Configured＝５
なお、Suspended(2108)の状態は、ハードウェアのみが感知し、ソフトウエア的には移行復帰に関与しないものとして無視する。
【０１２９】
このとき、移行直前の状態をｘ、復帰後の状態がｙであるとする。ｘ＜ｙのときは、ｘから始まってｙまでの状態遷移を考えればよい。ｙ＜ｘであって、ｙが０又は１のときは直接０又は１への状態遷移を考えればよい。ｙが２以上のときは、１に移行してｙまであがる状態遷移を考えればよい。この状態遷移を推定状態遷移と呼ぶことにし、状態の遷移のシーケンスを推定状態遷移列と呼ぶことにする。
【０１３０】
このように考えることができる理由について、以下に説明する。移行直前状態ｘがどのような状態であったにしろ、復帰後状態ｙが０であるときは、実際にどんな遷移であったとしても、結果的にはＵＳＢの接続は切られてしまった状態（Not Attached＝０)であると考えてよい。これは、図２２の状態遷移図のDisconnectによって任意状態からNot Attachedに移行できることから、いかなる状態からもNot Attached＝０に移行可能なようにＵＳＢドライバは作製されているからである。
【０１３１】
同様に、ｘに関係なくｙがConnect直後の状態(Attached＝１)であったなら、どんな状態であったにしろ、ハブリセット（Hub Reset）等がかかった状態であると考えてよい。これも図２２の状態遷移図のハブリセット又はハブの設定解除（Hub Reset or Hub Deconfigure）により直接Attached＝１に移行したか、いったんNot Attached＝０に移行してからAttached＝１に移行したかのどちらかになるが、後者の遷移の場合でも直接Attached＝１に移行したと推定しても、ＵＳＢドライバの状態は整合できる。両者の違いを無視して、直接Attachedに移行したと推定することでＵＳＢドライバの状態を整合させる。
【０１３２】
ｙが２以上の場合、図２２の状態遷移図からわかるとおり、ｘ＞ｙのとき、番号付けにより、番号の大きい状態から小さい状態への遷移はDeconfigureを除いて、存在しない。Deconfigureを特別扱いしてConfigured＝５からAddress＝４のときのみ直接遷移を考えてもよいが、コーディングの容易さ、および、実際のＵＳＢの動作としてDeconfigureの遷移は一般的ではないため、ｙ＞＝２、ｘ＞ｙのときはいったん全てAttached＝１に移行してｙの状態まで遷移したと推定して、ＵＳＢドライバの状態を整合させる。
【０１３３】
ＵＳＢドライバの状態と、実際のＵＳＢデバイスの状態に起きる不整合を修復するために、上記した条件によって推定状態遷移列を生成する。なお、ＵＳＢデバイスは、上記の状態Configured＝５のときに、通信可能状態となり、このとき、ＵＳＢデバイスは、本発明に係るＭＦＰとの間でデータの入出力を行うことが可能である。
【０１３４】
図２３は、推定状態遷移列の生成処理のフロー図を示す。
【０１３５】
図２３のフロー図において、まず最初に、ｘ＝ｙであるか否かを判定する（ステップＳ２０１）。
【０１３６】
ここで、ｘ＝ｙであれば、状態遷移が生じてない場合であるから、空の推定状態遷移列｛  ｝を生成結果とし（ステップＳ２０２）、処理を終了する。
【０１３７】
他方、ｘ＝ｙでなければ、状態遷移が生じている場合である。この場合、Configured＝５からAttached＝１或いはNot Attached＝０に戻るという遷移が生じているか否かにより処理を分岐させる。まず、ｘ＜ｙであるか否かを判定する（ステップＳ２０３）。
【０１３８】
ここで、ｘ＜ｙであれば（ステップＳ２０３でＹＥＳ）、単純にｘから１づつ増加してｙまでの推定状態遷移列｛ｘ＋１，・・・，ｙ｝を生成結果とし（ステップＳ２０４）、処理を終了する。これは、一度、Attached＝１或いはNot Attached＝０に戻る遷移があったか否かにかかわらず、復帰後の状態が省電力前の状態より先に進んでいるため、現在の状態から復帰後の状態へ遷移していけばよいからである。
【０１３９】
また、ｘ＞ｙであれば（ステップＳ２０３でＮＯ）、Configured＝５からAttached＝１或いはNot Attached＝０に戻る遷移が生じている場合である。この場合、復帰後の状態ｙがAttached＝１或いはNot Attached＝０であるか否かにより処理を分岐させる。まず、ｙ＝０或いはｙ＝１であるか否かを判定する（ステップＳ２０５）。
【０１４０】
ここで、ｙ＝０又はｙ＝１であれば、すぐにｙに行く推定状態遷移列｛ｙ｝を生成結果とし（ステップＳ２０６）、処理を終了する。
【０１４１】
一方、ｙ＝０又はｙ＝１でなければ、すぐに１に移行してからｙまで行く推定状態遷移列｛１，…，ｙ｝を生成結果とし（ステップＳ２０７）、処理を終了する。
【０１４２】
たとえば、移行直前の状態がconfigured＝５で、復帰後の状態がdefault＝３になっていたら、上記の条件より、一旦、attached＝１に移行したあとの状態遷移となり、推定状態遷移列は｛１，２，３｝となる。
【０１４３】
上記のようにして生成した推定状態遷移列に従って、ＵＳＢドライバの状態と、実際のＵＳＢデバイスの状態に起きる不整合を修復する。
【０１４４】
省電力状態を制御するＡＣＰＩドライバ(2007)の操作により、省電力過程でおきる上記した不整合の修復処理を行う。
【０１４５】
ＡＣＰＩドライバ(2007)は、移行・復帰処理の一環として、上記した修復処理を行う。移行・復帰処理は、移行・復帰時に不整合の修復に必要な処理フローを実行するが、そのほかに、移行、復帰それぞれの処理に用いる移行フックルーチン、復帰フックルーチンを登録する処理を行う。
【０１４６】
図２４は、移行・復帰処理のフローを示す。また、図２５は、移行フックリストへの移行フックルーチンを登録する処理フローを示し、図２６は、復帰フックリストへの復帰フックルーチンを登録する処理フローを示す。
【０１４７】
ＡＣＰＩドライバ(2007)は、図２４のフローに示すように、省電力モードへの移行に先だって、移行フックリストに登録された移行フックルーチンの中から、該当するデバイスの移行処理のルーチンを呼び出す（ステップＳ３０１）
移行フックリストへの登録処理は、図２５に示す処理フローにしたがって、各デバイスドライバ（本例のＵＳＢドライバ(2009)を含む）等で初期化時に実装したものを登録する.登録処理は、移行フックのリンクリストの最後にフックエントリすることにより、移行フックリストに追加する（ステップＳ４０１）。
【０１４８】
次いで、上記の様にして移行フックリストに登録しておいた中から呼び出した移行フックルーチンを用いて、省電力（ＳＴＲ）移行処理を行う（ステップＳ３０２）。
【０１４９】
図２７は、ＵＳＢドライバ(2009)で登録する移行フックルーチンを示す。
【０１５０】
省電力モード移行前にConfiguredである場合、データ受信可能で、省電力モード中にデータパケットがホストから来る可能性がある。データ受信可能であるときに、図６のＵＳＢのＤＭＡを停止しておくと、ＵＳＢ制御部はデータパケットを受信したときＵＳＢバス上でＮＡＫ応答をおこない、データを受信しない状態となる。データ受信状態を検知すると、省電力モードからの復帰要因であるので復帰処理をおこなう。復帰後、データ受信を再開するためにＤＭＡを開始する必要がある。
【０１５１】
省電力（ＳＴＲ）移行処理（ステップＳ３０２）では、ＵＳＢ移行フックルーチン（図２７）によって、移行直前のＵＳＢデバイスの状態（図２２の状態遷移図、参照）を記録する（ステップＳ６０１）。その後、サブシステムを介して送信されてくるＵＳＢデバイスからのデータを受信しないように、ＤＭＡを停止し（ステップＳ６０２）、移行フックルーチンを抜ける。
【０１５２】
省電力モードからの復帰の際には、省電力（ＳＴＲ）復帰処理を行う（ステップＳ３０３）。このとき、復帰処理に必要となる、該当するデバイスの復帰処理のルーチンを復帰フックリストに登録された復帰フックルーチンの中から呼び出す（ステップＳ３０４）。
【０１５３】
復帰フックリストへの登録処理は、図２６に示す処理フローにしたがって、各デバイスドライバ（本例のＵＳＢドライバ(2009)を含む）等で初期化時に実装したものを登録する.登録処理は、復帰フックのリンクリストの最後にフックエントリすることにより、復帰フックリストに追加する（ステップＳ５０１）。
【０１５４】
また、図２８は、ＵＳＢドライバ(2009)で登録する復帰フックルーチンを示す。
【０１５５】
省電力（ＳＴＲ）復帰処理では、ＵＳＢ復帰フックルーチン（図２８）によって、先の省電力（ＳＴＲ）移行処理で記録した移行直前のＵＳＢデバイスの状態（図２２の状態遷移図、参照）と現在のＵＳＢデバイスの状態をもとに、推定状態遷移列を求める（ステップＳ７０１）。ここで求める推定状態遷移列は、上記した推定状態遷移列の生成処理（図２３参照）による。
【０１５６】
次いで、前のステップで求めた推定状態遷移列にしたがって、ＵＳＢドライバ(2009)のデバイスの状態を遷移させて状態情報を現在のＵＳＢデバイスの状態に整合させる（ステップＳ７０２）。その後、状態に応じて、サブシステムを介して送信されてくるＵＳＢデバイスからのデータを受信するように、ＤＭＡを開始し（ステップＳ７０３）、復帰フックルーチンを抜け、ＡＣＰＩドライバ(2007)による移行・復帰処理を終了する。
【０１５７】
上記の省電力モードの動作によって、ＵＳＢに接続されたデバイスとメイン制御システムで用いるデバイスのドライバとの間に生じ得るデバイス状態の不整合を修復することにより、省電力モードからの復帰時の動作に不具合が起きることがなく、適正な動作を保証することが可能になる。
【図面の簡単な説明】
【０１５８】
【図１】本発明の実施形態に係る画像処理装置のコントローラのハードウェア構成を示すブロック図である。
【図２】図１のコントローラのメイン制御システムに搭載されるソフトウエア構成を示す図である。
【図３】図１のコントローラにおけるＡＳＩＣ１の内部構成を示すブロック図である。
【図４】図１のコントローラにおけるＡＳＩＣ１のメモリマップを示す図である。
【図５】図１のコントローラにおけるＡＳＩＣ２の内部構成を示すブロック図である。
【図６】ＡＳＩＣ２の他の例における内部構成を示すブロック図である。
【図７】主電源オンから省電力へと移行し、その後、省電力から再び通常処理の動作に復帰する間の電力の状態遷移を示す図である。
【図８】省電力モードにおいて電源がＯＦＦされた制御システムの状態を示す図である。
【図９】ＲＡＭに展開しない場合のプログラムのブート処理手順を説明するためのフロー図である。
【図１０】図９のブート処理手順を行ったときの各処理ステップに要した時間の配分を示す図である。
【図１１】ＲＡＭに展開する場合のプログラムのブート処理手順を説明するためのフロー図である。
【図１２】図１１のブート処理手順を行ったときの各処理ステップに要した時間の配分を示す図である。
【図１３】図１のコントローラのサブシステム（ＡＳＩＣ２）に搭載されるソフトウエアの構成を示す図である。
【図１４】図１３のサブシステムにおけるＧＩＯタスクの状態遷移表を示す図である。
【図１５】図１３のサブシステムにおけるSubマネージャの状態遷移表を示す図である。
【図１６】図１３のサブシステムにおけるＰＭタスクの状態遷移表を示す図である。
【図１７】図１のコントローラによる省電力への移行シーケンスの例を示す図である。
【図１８】図１のコントローラによる省電力からの復帰シーケンスの例を示す図である。
【図１９】図１３のサブシステムにおけるパネルタスクの状態遷移表を示す図である。
【図２０】図１３のサブシステムにおけるＵＳＢタスクの状態遷移表を示す図である。
【図２１】コントローラ（図１）のメイン制御システムにおける汎用ＯＳ層の構成を示す図である。
【図２２】サブシステム（ＡＳＩＣ２）を介して接続されるＵＳＢデバイスの状態遷移を示す図である。
【図２３】デバイスの推定状態遷移列を生成する処理を説明するためのフロー図である。
【図２４】ＡＣＰＩドライバが行う省電力移行・復帰処理を説明するためのフロー図である。
【図２５】移行フックリストへの移行フックルーチンを登録する処理を説明するためのフロー図である。
【図２６】復帰フックリストへの復帰フックルーチンを登録する処理を説明するためのフロー図である。
【図２７】ＵＳＢドライバで登録する省電力状態への移行フックルーチンを説明するためのフロー図である。
【図２８】ＵＳＢドライバで登録する省電力状態からの復帰フックルーチンを説明するためのフロー図である。
【符号の説明】
【０１５９】
5401  コントローラ
5403、5267  エンジン
5404、5201  ＣＰＵ
5405、5202  ＡＳＩＣ１
5406  ＭＥＭ
5407  ＨＤＤ
5408  ＳＤ
5410  ＲＯＭ０
5411  ＲＯＭ１
5412  ＮＶＲＡＭ
5416  操作部
5417、5264  ＡＳＩＣ２
5420  ネットワークＩ／Ｆ
5421  ＵＳＢ２．０Ｉ／Ｆ
5014  汎用ＯＳ
5370  ＣＰＵ
1301  サブマネージャ
1304  ＰＭタスク
1305  ＳＷ＿ｉＦｉｌｔｅｒタスク
1306  通信ドライバ
1307  ＵＳＢ応答タスク
1308  パネルタスク
1309  エラー割り込みタスク
1310  ＧＩＯタスク
1312  タイマタスク
2001  プロセスＩ／Ｆ
2007  ＡＣＰＩドライバ
2008  ネットワークドライバ
2009  ＵＳＢドライバ
【図１】
2007068156.tif 000003
【図２】
2007068156.tif 000004
【図３】
2007068156.tif 000005
【図４】
2007068156.tif 000006
【図５】
2007068156.tif 000007
【図６】
2007068156.tif 000008
【図７】
2007068156.tif 000009
【図８】
2007068156.tif 000010
【図９】
2007068156.tif 000011
【図１０】
2007068156.tif 000012
【図１１】
2007068156.tif 000013
【図１２】
2007068156.tif 000014
【図１３】
2007068156.tif 000015
【図１４】
2007068156.tif 000016
【図１５】
2007068156.tif 000017
【図１６】
2007068156.tif 000018
【図１７】
2007068156.tif 000019
【図１８】
2007068156.tif 000020
【図１９】
2007068156.tif 000021
【図２０】
2007068156.tif 000022
【図２１】
2007068156.tif 000023
【図２２】
2007068156.tif 000024
【図２３】
2007068156.tif 000025
【図２４】
2007068156.tif 000026
【図２５】
2007068156.tif 000027
【図２６】
2007068156.tif 000028
【図２７】
2007068156.tif 000029
【図２８】
2007068156.tif 000030