(57)【特許請求の範囲】
【請求項１】
画像形成装置であって、
プロセッサーおよびシステムメモリーを含むリソースを用いて、ホストＯＳおよび少なくとも１つのゲストＯＳを含む複数のＯＳの同時実行を制御するハイパーバイザーと、
前記ホストＯＳ上で実行され、前記画像形成装置の主たる制御を司る制御ファームウェアと、
前記ハイパーバイザーと同一レベルで動作する協調モジュールと、
前記システムメモリーのうち前記ホストＯＳおよび前記ホストＯＳと同時実行されるゲストＯＳが利用していない空きメモリー空間を管理する空きメモリー管理モジュールとを備え、
前記リソースは、前記制御ファームウェアにより管理される画像処理用に適合された画像メモリーを含み、
前記協調モジュールは、
前記制御ファームウェアと連携して前記画像メモリーのうち利用可能なメモリー空間を取得する取得手段と、
処理すべきジョブの内容と、当該ジョブに必要な１つ以上のゲストＯＳで動作するプログラムを関連付ける関連付け手段と、
ジョブの開始前に当該ジョブに関連付けられたプログラムの実行に必要なゲストＯＳを前記画像メモリーのうち利用可能なメモリー空間に読出し、関連付けられたプログラムを実行させる実行手段と、
前記ホストＯＳおよび新たに実行されたゲストＯＳの他のゲストＯＳが利用していないと判断されたシステムメモリーの内容を画像メモリーに退避することで、新たに実行されたゲストＯＳのシステムメモリーとして利用可能にする退避手段とを含む、画像形成装置。
【請求項２】
前記協調モジュールは、
メモリー空間の種別を区分して、単位メモリーごとに利用しているＯＳを特定可能なＩＤを含むリストを管理する管理手段と、
新たに実行されたゲストＯＳに必要なシステムメモリーが利用可能になるまでブロック単位で並列にメモリー転送を実施し、ゲストＯＳに対してメモリー空間を割り当てる割り当て手段と、
メモリー転送の完了後にゲストＯＳへの切り替えを行なう切り替え手段とを含む、請求項１に記載の画像形成装置。
【請求項３】
前記協調モジュールは、
前記ホストＯＳへ切り替える場合に、
先に実行されたゲストＯＳおよび当該ゲストＯＳで動作するプログラムが利用するシステムメモリーを一時凍結する処理と、
前記割り当て手段により先に転送された内容とシステムメモリーの内容を順次入れ替える処理と、
入れ替え完了後に前記ホストＯＳへ切り替える処理とを、連続動作させる連続動作実行手段を含む、請求項２に記載の画像形成装置。
【請求項４】
前記協調モジュールは、
読出し済みのゲストＯＳがジョブ実行により破壊されたことを検知する検知手段と、
次ジョブ開始前に、検知された破壊されたゲストＯＳを再度読出す読出し手段とを備える、請求項１〜３のいずれか１項に記載の画像形成装置。
【請求項５】
前記退避手段は、メインメモリー内のシステムメモリーからメインメモリー内の画像メモリーに前記システムメモリーの内容を退避するとともに、メインメモリー内の画像メモリーに空きがなければ、システムメモリーの内容を画像処理のためのサブメモリー内の画像メモリーに退避する、請求項１〜４のいずれか１項に記載の画像形成装置。
【請求項６】
前記協調モジュールは、画像メモリーの種別に応じてジョブおよびジョブ情報に基づき、画像メモリーを利用しているジョブとゲストＯＳへの切り替えの起因となったジョブとの間で優先度を設定し、当該設定した優先度に基づいてジョブの実行を制御する、請求項１〜５のいずれか１項に記載の画像形成装置。
【請求項７】
前記協調モジュールは、前記ホストＯＳおよび前記ゲストＯＳについて、連続するメモリー空間を優先して前記画像メモリーに退避する、請求項１〜６のいずれか１項に記載の画像形成装置。
【請求項８】
前記協調モジュールは、ゲストＯＳを外部システムへマイグレーションしたときに退避したデータ内容を移動管理する機能をさらに含む、請求項１〜７のいずれか１項に記載の画像形成装置。
【請求項９】
前記ゲストＯＳ上の情報を表示する表示手段をさらに備える、請求項１〜８のいずれか１項に記載の画像形成装置。
【請求項１０】
前記協調モジュールは、前記ゲストＯＳ上のユーザー管理情報を必要に応じて退避前に前記制御ファームウェアと共有する共有手段をさらに含む、請求項１〜９のいずれか１項に記載の画像形成装置。
【請求項１１】
前記リソースは、画像処理ＡＳＩＣをさらに含み、
前記協調モジュールは、前記画像処理ＡＳＩＣと協調動作する、請求項１〜１０のいずれか１項に記載の画像形成装置。
【請求項１２】
前記画像処理用に適合された画像メモリーは、メインメモリーにおけるシステムメモリーと異なる領域および前記画像処理ＡＳＩＣにより管理されるサブメモリーが有する領域、の少なくとも一方を含む、請求項１１に記載の画像形成装置。
【請求項１３】
前記画像メモリーは、ディスク媒体以外の記憶装置である、請求項１〜１２のいずれか１項に記載の画像形成装置。
【請求項１４】
前記画像メモリーは、ＲＡＭである、請求項１３に記載の画像形成装置。
【請求項１５】
前記リソースは、二次記憶装置をさらに含み、
前記協調モジュールは、前記ゲストＯＳへ切り替えた後に、前記ゲストＯＳから前記ホストＯＳではなく他のゲストＯＳに切り替える場合に、前記ホストＯＳに関するファイルメモリーのデータを二次記憶装置へ順次並列転送する処理、先に実行されたゲストＯＳおよび当該ゲストＯＳで動作するプログラムが利用するシステムメモリーを一時凍結する処理、前記二次記憶装置へ転送されたファイルメモリーに対して一時凍結したシステムメモリーを順次並列転送する処理と、他のゲストＯＳが必要とするシステムメモリーになるまで先のゲストＯＳが転送完了したシステムメモリーから順次確保する処理と、他のゲストＯＳが動作可能なシステムメモリーが確保されたことで切り替えする処理とを連続動作させる連続動作手段をさらに備える、請求項２に記載の画像形成装置。
【請求項１６】
画像形成装置で実行されるプログラムであって、前記プログラムは、
プロセッサーおよびシステムメモリーを含むリソースを用いて、ホストＯＳおよび少なくとも１つのゲストＯＳを含む複数のＯＳの同時実行を制御するハイパーバイザーを実現するプログラムと、
前記ホストＯＳ上で実行され、前記画像形成装置の主たる制御を司る制御ファームウェアと、
前記ハイパーバイザーと同一レベルで動作する協調モジュールを実現するプログラムと、
前記システムメモリーのうち前記ホストＯＳおよび前記ホストＯＳと同時実行されるゲストＯＳが利用していない空きメモリー空間を管理する空きメモリー管理モジュールを実現するプログラムとを備え、
前記リソースは、前記制御ファームウェアにより管理される画像処理用に適合された画像メモリーを含み、
前記協調モジュールは、
前記制御ファームウェアと連携して前記画像メモリーのうち利用可能なメモリー空間を取得する取得機能と、
処理すべきジョブの内容と、当該ジョブに必要な１つ以上のゲストＯＳで動作するプログラムを関連付ける関連付け機能と、
ジョブの開始前に当該ジョブに関連付けられたプログラムの実行に必要なゲストＯＳを前記画像メモリーのうち利用可能なメモリー空間に読出し、関連付けられたプログラムを実行させる実行機能と、
前記ホストＯＳおよび新たに実行されたゲストＯＳの他のゲストＯＳが利用していないと判断されたシステムメモリーの内容を画像メモリーに退避することで、新たに実行されたゲストＯＳのシステムメモリーとして利用可能にする退避機能とを含む、画像形成装置で実行されるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のＯＳを切り替え実行可能な画像形成装置およびそのような画像形成装置で実行されるプログラムに関する。
【背景技術】
【０００２】
近年の情報通信技術の進歩に伴って、コンピューターの仮想化技術が様々な分野に応用されつつある。このような仮想化技術においては、例えば、ハイパーバイザーを利用して、主となるＯＳ（Operating System）（以下では、「ホストＯＳ」とも称する。）に加えて、１または複数の異なるＯＳ（以下では、「ゲストＯＳ」とも称する。）を、共通のハードウェア上で同時実行させることが可能である。
【０００３】
例えば、特開２００１−２５６０６６号公報（特許文献１）は、単一システム内に共存させた複数のオペレーティングシステムを高速に切り替えて使用できる環境を開示する。
【０００４】
また、「IBM PowerVM Virtualization Active Memory Sharing」（非特許文献１）は、複数の論理メモリパーティション（ＬＰＡＲ：Logical PARtition）を一つの共通物理メモリー空間としてまとめ、論理メモリパーティション割り当て先としてマルチＯＳ間で共有利用するシステムを開示する。
【０００５】
一般的に、ホストＯＳに加えて、１または複数のゲストＯＳが同時実行される場合には、実行されるＯＳ（特に、ゲストＯＳ）の数に比例して、より大きなメモリー空間が必要となる。そのため、多くの仮想化技術においては、ゲストＯＳの実行によってハードウェア的に用意されているシステムメモリーの上限を超える場合に、オーバーコミットメントを許容する仕組みが備えられている。例えば、特開２０１４−１５７４７６号公報（特許文献２）は、仮想マシン間で共有する物理リソースの不足を検出する構成を開示する。
【０００６】
オーバーコミットメントを許容する仕組みの具体例としては、ハードディスクなどの二次記憶装置にメモリー空間として利用されるメモリー領域を確保し、その確保したメモリー領域にシステムメモリーに格納されていた内容を一時的に退避する処理が含まれる。
【０００７】
しかしながら、ハードディスクなどの二次記憶装置は、ＤＲＡＭ（Dynamic Random Access Memory）などのシステムメモリーに比較して応答性が劣るため、例えば、ホストＯＳからゲストＯＳへ切り替えの実行に大きな時間を要する。このような課題は、有限のリソースにおいては解決が難しい。十分に大きなリソースを用意すれば、このような課題が発生する可能性を低減することはできる。
【０００８】
画像形成装置においても、コスト制約上、利用可能なリソースをそれほど大きくすることができない。特に、最新のコンピューティング環境のように処理性能が高いハードウェアではなく、コストメリットのあるハードウェアが採用されることが一般的である。このようなコスト制約の下、画像形成装置では、ジョブをより優先して処理できるようにメモリー構成が設計される。
【０００９】
例えば、特開２０１４−２３８６６５（特許文献３）は、ハードウェア資源を用いて画像形成に係わる処理が装置制御ファームウェアにより行なわれる第１ＯＳ、および、第１ＯＳとは別であって第１ＯＳ上の第２ＯＳ、がそれぞれ動作可能に構成されている画像形成装置を開示する。装置制御ファームウェアは、該装置制御ファームウェアでの処理に伴って予め定められた特定の状態が検出された場合に、第２ＯＳを起動するよう制御するとともに、当該第２ＯＳに対するログイン処理を実行するよう制御する。この画像形成装置では、第１ＯＳユーザー名を第２ＯＳユーザー名として用いてログイン手順を簡略化することで、第２ＯＳログイン手順を高速化している。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００１−２５６０６６号公報
【特許文献２】特開２０１４−１５７４７６号公報
【特許文献３】特開２０１４−２３８６６５号公報
【非特許文献】
【００１１】
【非特許文献１】"IBM PowerVM Virtualization Active Memory Sharing", Second Edition (June 2011), IBM International Technical Support Organization, June 2011
【発明の概要】
【発明が解決しようとする課題】
【００１２】
特許文献３に開示された画像形成装置において、画像処理などのジョブが発生した場合に、メモリーなどのリソースが枯渇するときには、本体制御の第１ＯＳへリソースを明け渡す必要があり、この必要性に伴って、第２ＯＳのリソース解放のためのログアウト処理が必要になる。このログアウト処理に要する時間によって、画像処理の実行開始が遅れる可能性がある。
【００１３】
従来の画像形成装置においては、ジョブの優先処理と複数のＯＳを高速に切り替えて実行することとを両立させるメモリーの利用形態が考慮されていない。そのため、例えば、ゲストＯＳ上のアプリケーションで認証が必要なジョブを実行する際に、システムメモリーにリソース不足が発生すると、システムメモリーの内容を退避する処理に要する時間が生じ、ホストＯＳからゲストＯＳに切り替えて実行する際に遅延が生じる。その結果、ジョブの処理に対するユーザビリティの劣化、および、生産性の低下といった課題が生じ得る。
【００１４】
画像形成装置においては、ジョブの処理に影響を与えないゲストＯＳの機能を利用する作業であれば許容できるが、ジョブの処理に連携したゲストＯＳ機能を利用する場合には、ホストＯＳからゲストＯＳへの高速な切り替えが必要である。
【００１５】
本願発明者らは、ジョブの処理を優先的に実行しつつ、複数のＯＳを高速に切り替えて実行しなければならないという新規な課題を見出した。しかしながら、このような新規な課題は、単に、従来のハイパーバイザーなどを画像形成装置に適用するだけでは、解決することができない。
【００１６】
そのため、画像形成装置において、ジョブを優先的に処理しつつ、複数のＯＳを同時実行させるための新規な構成が要望されている。
【課題を解決するための手段】
【００１７】
本発明のある局面に従う画像形成装置は、プロセッサーおよびシステムメモリーを含むリソースを用いて、ホストＯＳおよび少なくとも１つのゲストＯＳを含む複数のＯＳの同時実行を制御するハイパーバイザーと、ホストＯＳ上で実行され、画像形成装置の主たる制御を司る制御ファームウェアと、ハイパーバイザーと同一レベルで動作する協調モジュールと、システムメモリーのうちホストＯＳおよびホストＯＳと同時実行されるゲストＯＳが利用していない空きメモリー空間を管理する空きメモリー管理モジュールとを含む。リソースは、制御ファームウェアにより管理される画像処理用に適合された画像メモリーを含む。協調モジュールは、制御ファームウェアと連携して画像メモリーのうち利用可能なメモリー空間を取得する取得手段と、処理すべきジョブの内容と、当該ジョブに必要な１つ以上のゲストＯＳで動作するプログラムを関連付ける関連付け手段と、ジョブの開始前に必要なゲストＯＳを画像メモリーのうち利用可能なメモリー空間に読出し、関連付けられたプログラムを実行させる実行手段と、ホストＯＳおよび他のゲストＯＳが利用していないと判断されたシステムメモリーの内容を画像メモリーに退避することで、新たに実行されたゲストＯＳのシステムメモリーとして利用可能にする退避手段とを含む。
【００１８】
好ましくは、協調モジュールは、メモリー空間の種別に区分して、単位メモリーごとに利用しているＯＳを特定可能なＩＤを含むリストを管理する管理手段と、必要なシステムメモリーが利用可能になるまでブロック単位で並列にメモリー転送を実施し、ゲストＯＳに対してメモリー空間を割り当てる割り当て手段と、メモリー転送の完了後にゲストＯＳへの切り替えを行なう切り替え手段とを含む。
【００１９】
好ましくは、協調モジュールは、ホストＯＳへ切り替える場合に、先に実行されたゲストＯＳおよび当該ゲストＯＳで動作するプログラムが利用するシステムメモリーを一時凍結する処理と、先に転送されたメモリーを順次入れ替える処理と、入れ替え完了後にホストＯＳへ切り替える処理とを、連続動作させる連続動作実行手段を含む。
【００２０】
好ましくは、協調モジュールは、読出し済みのゲストＯＳがジョブ実行により破壊されたことを検知する検知手段と、ジョブ開始前に検知された破壊されたゲストＯＳを再度読出す読出し手段とを含む。
【００２１】
好ましくは、退避手段は、メインメモリー内のシステムメモリーからメインメモリー内の画像メモリーにシステムメモリーの内容を退避するとともに、メインメモリー内の画像メモリーに空きがなければ、システムメモリーから画像処理のためのサブメモリー内の画像メモリーに退避する。
【００２２】
好ましくは、協調モジュールは、画像メモリーの種別に応じてジョブおよびジョブ情報に基づき優先度を設定し、当該設定した優先度に基づいてジョブの実行を制御する。
【００２３】
好ましくは、協調モジュールは、ホストＯＳおよびゲストＯＳについて、連続するメモリー空間を優先して画像メモリーに退避する。
【００２４】
好ましくは、協調モジュールは、ゲストＯＳを外部システムへマイグレーションしたときに退避したデータ内容を移動管理する機能をさらに含む。
【００２５】
好ましくは、画像形成装置は、ゲストＯＳ上の情報を表示する表示手段をさらに含む。
好ましくは、協調モジュールは、ゲストＯＳ上のユーザー管理情報を必要に応じて退避前に制御ファームウェアと共有する共有手段をさらに含む。
【００２６】
好ましくは、リソースは、画像処理ＡＳＩＣをさらに含む。協調モジュールは、画像処理ＡＳＩＣと協調動作する。
【００２７】
好ましくは、画像処理用に適合された画像メモリーは、メインメモリーにおけるシステムメモリーと異なる領域および画像処理ＡＳＩＣにより管理されるサブメモリーが有する領域、の少なくとも一方を含む。
【００２８】
好ましくは、画像メモリーは、ディスク媒体以外の記憶装置である。
好ましくは、画像メモリーは、ＲＡＭである。
【００２９】
好ましくは、リソースは、二次記憶装置をさらに含む。協調モジュールは、ゲストＯＳへ切り替えた後に、ゲストＯＳからホストＯＳではなく他のゲストＯＳに切り替える場合に、ホストＯＳに関するファイルメモリーのデータを二次記憶装置へ順次並列転送する処理、先に実行されたゲストＯＳおよび当該ゲストＯＳで動作するプログラムが利用するシステムメモリーを一時凍結する処理、二次記憶装置へ転送されたファイルメモリーに対して一時凍結したシステムメモリーを順次並列転送する処理と、他のゲストＯＳが必要とするシステムメモリーになるまで先のゲストＯＳが転送完了したシステムメモリーから順次確保する処理と、他のゲストＯＳが動作可能なシステムメモリーが確保されたことで切り替えする処理とを連続動作させる連続動作手段をさらに含む。
【００３０】
本発明のある局面に従う画像形成装置で実行されるプログラムであって、プログラムは、プロセッサーおよびシステムメモリーを含むリソースを用いて、ホストＯＳおよび少なくとも１つのゲストＯＳを含む複数のＯＳの同時実行を制御するハイパーバイザーを実現するプログラムと、ホストＯＳ上で実行され、画像形成装置の主たる制御を司る制御ファームウェアと、ハイパーバイザーと同一レベルで動作する協調モジュールを実現するプログラムと、システムメモリーのうちホストＯＳおよびホストＯＳと同時実行されるゲストＯＳが利用していない空きメモリー空間を管理する空きメモリー管理モジュールを実現するプログラムとを含む。リソースは、制御ファームウェアにより管理される画像処理用に適合された画像メモリーを含む。協調モジュールは、制御ファームウェアと連携して画像メモリーのうち利用可能なメモリー空間を取得する取得機能と、処理すべきジョブの内容と、当該ジョブに必要な１つ以上のゲストＯＳで動作するプログラムを関連付ける関連付け機能と、ジョブの開始前に必要なゲストＯＳを画像メモリーのうち利用可能なメモリー空間に読出し、関連付けられたプログラムを実行させる実行機能と、ホストＯＳおよび他のゲストＯＳが利用していないと判断されたシステムメモリーの内容を画像メモリーに退避することで、新たに実行されたゲストＯＳのシステムメモリーとして利用可能にする退避機能とを含む。
【発明の効果】
【００３１】
本開示によれば、ジョブを優先的に処理しつつ、複数のＯＳを同時実行させるための新規な画像形成装置を実現できる。
【図面の簡単な説明】
【００３２】
【図１】本実施の形態に従う画像形成装置の全体構成を示す概略断面図である。
【図２】本実施の形態に従う画像形成装置の制御部のハードウェア構成を示すブロック図である。
【図３】本実施の形態に従う画像形成装置の制御部でのプログラムの実行状態の一例を示す模式図である。
【図４】本実施の形態に従う画像形成装置の制御部による処理例１での処理手順を示すシーケンス図である。
【図５】本実施の形態に従う画像形成装置の制御部の初期処理の手順を示すフローチャートである。
【図６】本実施の形態に従う画像形成装置の制御部でのプログラムの別の実行状態の一例を示す模式図である。
【図７】本実施の形態に従う画像形成装置の制御部におけるブロック分割された画像メモリーの利用形態を説明するための模式図である。
【図８】本実施の形態に従う画像形成装置の制御部におけるブロック分割された画像メモリーの管理方法を説明するための模式図である。
【図９】本実施の形態に従う画像形成装置の制御部における複数のメモリー間でのデータ管理の一例を示す模式図である。
【図１０】本実施の形態に従う画像形成装置の制御部におけるメモリー空間の利用形態の一例を示す図である。
【図１１】本実施の形態に従う画像形成装置の制御部による処理例２でのメモリー確保に係る処理手順を示すフローチャートである。
【図１２】本実施の形態に従う画像形成装置の制御部でのメモリー領域のマネージメント処理の手順を示すフローチャートである。
【発明を実施するための形態】
【００３３】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
【００３４】
＜Ａ．課題および解決手段の概要＞
まず、本発明の実施の形態に従う画像形成装置で採用する解決手段の概要について、関連技術における課題とともに説明する。
【００３５】
上述したように、従来のハイパーバイザーなどを画像形成装置に適用した仮想化環境では、システムメモリーなどのリソースが枯渇した際には、それらがジョブの処理に必要であるか否かにかかわらず、ゲストＯＳの起動もしくは実行、ならびに、ゲストＯＳ上でのアプリケーションの起動もしくは実行が完了するまでに遅延時間が発生し得る。
【００３６】
すなわち、上述したように、ゲストＯＳへの切り替え時に、システムメモリーの内容を退避する処理が発生することによる時間遅延が課題であり、このような課題は、従来の画像形成装置と従来のハイパーバイザーとを単に組み合わせただけでは解決できない。
【００３７】
本願発明者らは、鋭意検討の結果、これらの課題を解決する手段として、画像形成装置において、システムメモリーとは別に設けられるシステムメモリーを仮想化環境の実現に利用するという新規な着想に至った。すなわち、画像形成装置固有のメモリー構成の設計として、ＯＳを含む各種プログラムを実行するために利用されるシステムメモリーに加えて、ジョブを処理するために利用される画像メモリーが用意される。画像メモリーに対しては、比較的大きなメモリー空間がジョブの処理専用に割り当てられる。画像メモリーは、アクセス速度などを考慮して、ディスク媒体以外の記憶装置として実装されることが好ましい。典型的には、記画像メモリーは、ＤＲＡＭなどのＲＡＭ（Random Access Memory）が採用される。
【００３８】
一方で、画像メモリーは、ホストＯＳ上で実行される制御ファームウェアが操作および管理するメモリー空間であり、ゲストＯＳおよびハイパーバイザーがこれらのメモリー空間に勝手にアクセスすると、ジョブの処理が破たんする恐れもある。一般的には、メモリー種別、例えば、システムメモリー、サブメモリー（ＩＯアクセス）、入出力バッファなどの処理に応じて最適化されたメモリーなどに応じて、利用形態は異なる。しかしながら、従来のハイパーバイザーは、ゲストＯＳが利用するメモリー空間の競合管理が主たる処理であり、個々のＯＳが利用する専用のメモリー空間（画像メモリー）の内容を把握することはできない。また、従来のハイパーバイザーは、個々のＯＳが利用する専用のメモリー空間に対する詳細なメモリー制御を行なうこともできない。
【００３９】
ここで、ホストＯＳ上で実行される制御ファームウェアと連携することで、画像メモリーへのアクセス状態および画像メモリー中のデータの格納状態などを取得し、詳細なメモリー制御を実現することも考えられる。しかしながら、ハイパーバイザーが制御ファームウェアと連携するために、制御ファームウェアを稼働させるホストＯＳへの余分な切り替えが発生すること、および、画像メモリーについての複数の制御主体間での排他制御などの余分な負荷が発生することは好ましくない。
【００４０】
本実施の形態に従う画像形成装置では、ジョブの処理に利用される画像メモリーを、ゲストＯＳを実行するために必要な一時退避メモリー（スワップメモリー）として利用することで、複数のＯＳを高速に切り替え実行することで、ホストＯＳでの処理が必要なジョブであっても、可能な限り遅延時間を発生させることなく、優先的な処理を可能にする。また、本実施の形態に従う画像形成装置は、このようなシステムメモリーおよび画像メモリーのそれぞれのメモリー空間を効率的に利用可能な制御方法を採用する。
【００４１】
＜Ｂ．画像形成装置の全体構成＞
次に、本実施の形態に従う画像形成装置１の全体構成について説明する。
【００４２】
図１は、本実施の形態に従う画像形成装置１の全体構成を示す概略断面図である。図１を参照して、画像形成装置１は、自動原稿送り装置２と、イメージスキャナー３と、プリントエンジン４と、給紙部５と、制御部１００とを含む。
【００４３】
自動原稿送り装置２は、原稿の連続的なスキャンを行なうためのものであり、原稿給紙台２１と、送出ローラー２２と、レジストローラー２３と、搬送ドラム２４と、排紙台２５とを含む。スキャン対象の原稿は、原稿給紙台２１上にセットされ、送出ローラー２２の作動により一枚ずつ送り出される。そして、この送り出された原稿は、レジストローラー２３により一旦停止されて先端が整えられた後に、搬送ドラム２４へ搬送される。さらに、この原稿は、搬送ドラム２４のドラム面と一体に回転し、その過程において後述するイメージスキャナー３により画像面がスキャンされる。その後、原稿は、搬送ドラム２４のドラム面を略半周した位置においてドラム面から分離されて排紙台２５へ排出される。
【００４４】
イメージスキャナー３は、撮像デバイス３３と、原稿台３５とを含む。撮像デバイス３３は、被写体である原稿に対する相対位置を時間的に変化させて、原稿の画像を読み取って画像データを生成する。この画像データを含むデータがジョブとして処理される。撮像デバイス３３は、主要な構成要素として、原稿に対して光を照射する光源と、光源から照射された光が原稿で反射して生じる画像を取得するイメージセンサーと、イメージセンサーから画像信号を出力するためのＡＤ（Analog to Digital：アナログデジタル）変換器と、イメージセンサーの前段に配置された結像光学系とを含む。イメージセンサーとしては、典型的には、ＣＣＤ（Coupled Charged Device）イメージセンサーや、密着イメージセンサー（Contact Image Sensor）が用いられる。なお、スキャン対象の原稿は、原稿台３５にセットされることもできる。また、原稿の表面側および裏面側にそれぞれ撮像デバイスを配置することで、両面同時スキャンを実現してもよい。
【００４５】
プリントエンジン４は、一例として、電子写真方式の画像形成プロセスが実行される。具体的には、フルカラーのプリント出力が可能である。具体的には、プリントエンジン４は、それぞれイエロー（Ｙ）、マゼンタ（Ｍ）、シアン（Ｃ）、ブラック（Ｋ）の各色のトナー像を生成するイメージング（作像）ユニット４４Ｙ，４４Ｍ，４４Ｃ，４４Ｋを含む。イメージングユニット４４Ｙ，４４Ｍ，４４Ｃ，４４Ｋは、プリントエンジン４内に張架されて駆動される転写ベルト２７に沿って、その順序に配置される。
【００４６】
イメージングユニット４４Ｙ，４４Ｍ，４４Ｃ，４４Ｋは、それぞれ画像書込部４３Ｙ，４３Ｍ，４３Ｃ，４３Ｋと、感光体ドラム４１Ｙ，４１Ｍ，４１Ｃ，４１Ｋとを含む。画像書込部４３Ｙ，４３Ｍ，４３Ｃ，４３Ｋの各々は、対象のプリントデータに含まれる各色イメージに応じたレーザ光を発するレーザダイオードと、このレーザ光を偏向して対応の感光体ドラム４１Ｙ，４１Ｍ，４１Ｃ，４１Ｋの表面を主走査方向に露光させるポリゴンミラーとを含んでいる。
【００４７】
感光体ドラム４１Ｙ，４１Ｍ，４１Ｃ，４１Ｋの表面には、上述のような画像書込部４３Ｙ，４３Ｍ，４３Ｃ，４３Ｋによる露光によって静電潜像が形成され、この静電潜像がそれぞれ対応するトナーユニット４４１Ｙ，４４１Ｍ，４４１Ｃ，４４１Ｋから供給されるトナー粒子によってトナー像として現像される。
【００４８】
感光体ドラム４１Ｙ，４１Ｍ，４１Ｃ，４１Ｋの表面に現像された各色のトナー像は、転写ベルト２７に順次転送される。さらに、この転写ベルト２７上に重ねられたトナー像は、給紙部５からタイミングを合わせて供給される記録紙にさらに転写される。
【００４９】
この記録紙上に転写されたトナー像は、下流部に配置された定着部において定着された後、トレイ５７に排出される。
【００５０】
上述の感光体ドラム４１Ｙ，４１Ｍ，４１Ｃ，４１Ｋにおける動作と並行して、記録紙を収容する給紙部５の給紙カセットにそれぞれ対応する送出ローラー５２，５３，５４および手差給紙部２６のうち、画像形成に用いられるべき記録紙に対応する部位が作動して記録紙を供給する。この供給された記録紙は、搬送ローラー５５および５６ならびにタイミングローラー５１によって搬送され、感光体ドラム４１上に形成されたトナー像に同期するように、感光体ドラム４１に給紙される。
【００５１】
転写器４５は、感光体ドラム４１に反対極性の電圧を印加することで、感光体ドラム４１上に形成されたトナー像を記録紙に転写する。そして、除電器４６は、トナー像が転写された記録紙を除電することで、記録紙を感光体ドラム４１から分離させる。その後、トナー像が転写された記録紙は定着装置４７へ搬送される。なお、転写器４５としては、図１に示すような転写ベルトを用いた転写方式に代えて、転写チャージャーまたは転写ローラーを用いた転写方式を採用してもよい。あるいは、感光体ドラム４１から記録紙へトナー像を直接転写する直接転写方式に代えて、感光体ドラム４１と記録紙との間に、転写ローラー、転写ベルトといった中間転写体を配置して、２段階以上のプロセスによって転写を行なうようにしてもよい。
【００５２】
定着装置４７は、加熱ローラー４７１と加圧ローラー４７２とを含む。加熱ローラー４７１は、記録紙を加熱することで、その上に転写されたトナーを溶融するとともに、加熱ローラー４７１と加圧ローラー４７２との間の圧縮力により、溶融したトナーが記録紙上に定着される。そして、記録紙はトレイ５７に排出される。なお、定着装置４７としては、図１に示すような定着ベルトを用いた定着方式に代えて、定着ローラー等用いた定着方式、もしくは非接触の定着方式を採用してもよい。
【００５３】
一方、記録紙が分離された感光体ドラム４１では、その残留電位が除去された後、クリーニング部によって残留トナーが除去および清掃される。そして、次の画像形成処理が実行される。クリーニング部は、一例として、クリーニングブレード、クリーニングブラシ、クリーニングローラー、またはこれらの組み合わせにより、残留トナーを除去および清掃する。あるいは、感光体ドラム４１Ｙ，４１Ｍ，４１Ｃ，４１Ｋを用いて残留トナーを回収するクリーナーレス方式を採用してもよい。
【００５４】
ＩＤＣセンサー４９は、感光体ドラム４１上に形成されるトナー像の濃度を検知する。このＩＤＣセンサー４９は、代表的に反射型フォトセンサからなる光強度センサーであり、感光体ドラム４１の表面からの反射光強度を検知する。
【００５５】
制御部１００は、画像形成装置１における全体の制御を司る。本実施の形態に従う画像形成装置１の制御部１００には、複数のＯＳの同時起動（または、並列起動）を可能にする仮想化環境が実現される。複数のＯＳとしては、最低限実行されるホストＯＳと、要求などに応じて適宜実行されるゲストＯＳとがある。すなわち、ホストＯＳは、退避されない。
【００５６】
仮想化環境を実現するための処理の詳細については、後述する。
＜Ｃ．画像形成装置１の制御部１００のハードウェア構成＞
次に、本実施の形態に従う画像形成装置１の制御部１００のハードウェア構成について説明する。図２は、本実施の形態に従う画像形成装置１の制御部１００のハードウェア構成を示すブロック図である。
【００５７】
図２を参照して、制御部１００は、画像形成装置１の全体を制御する演算処理主体であり、１または複数の演算部を有する。具体的には、制御部１００は、主たる構成要素として、ＣＰＵ（Central Processing Unit）またはＭＰＵ（Micro Processing Unit）などからなるプロセッサー１０２と、ＤＲＡＭなどからなるメインメモリー１１０と、画像処理ＡＳＩＣ（Application Specific Integrated Circuit）１３０，１４０と、画像形成装置１の各コンポーネントと信号またはデータを遣り取りするインターフェイス回路１０５，１０６，１０７，１０８と、二次記憶装置の一例であるＨＤＤ（Hard Disk Drive）１５０とを含む。これらの構成要素は、内部バス１０４を介して、互いにデータ通信可能に構成される。
【００５８】
メインメモリー１１０の物理メモリー空間は、システムメモリー１１２と、画像メモリー１１４とに区分されて、それぞれに応じた用途で使用される。システムメモリー１１２は、プロセッサー１０２でプログラムを実行するための各種データを格納するためのワークメモリとして用いられる。画像メモリー１１４は、画像データに対する編集・加工・表示などの処理過程で一時的に作成される画像データのバッファリングに用いられる。例えば、複数の画像データを合成する際の画像バッファ、あるいは、操作パネルなどに画像データの全部または一部をプレビュー表示する際の画像バッファなどとして用いられる。
【００５９】
メインメモリー１１０と内部バス１０４との間には、メモリー制御ＩＣ（Integrated Circuit）１１８が配置されており、プロセッサー１０２などからの要求に応答して、メインメモリー１１０へのデータ書込み、または、メインメモリー１１０からのデータ読出しを行なう。なお、メモリー制御ＩＣ１１８には、圧縮／伸張ＩＣ１２０が接続されており、メインメモリー１１０に書込まれる画像データをブロック単位で圧縮するとともに、メインメモリー１１０から読出される画像データを伸長する。このような圧縮伸長管理によって、メモリー空間の効率的な利用および処理の高速化を実現する。
【００６０】
一例として、図２には、原稿の両面を一度にスキャンできる構成を例示する。すなわち、制御部１００は、原稿の表面側に配置された撮像デバイス（表面側撮像デバイス）が原稿をスキャンすることで読み取られた画像データを処理する画像処理ＡＳＩＣ１３０と、原稿の裏面側に配置された撮像デバイス（裏面側撮像デバイス）が原稿をスキャンすることで読み取られた画像データを処理する画像処理ＡＳＩＣ１４０とを含む。このような構成を採用することで、スキャンニーズの高まりに対して、両面同時スキャンによる生産性改善を実現できる。
【００６１】
なお、画像処理ＡＳＩＣ１３０および１４０に代えて、プロセッサー１０２が画像処理を実行するようにしてもよいが、ジョブをより高速に処理するためには、ＡＳＩＣなどの回路ロジックを採用することが好ましい。
【００６２】
画像処理ＡＳＩＣ１３０は、表面側撮像デバイスからの画像データをサブメモリー１３４に格納する。画像処理ＡＳＩＣ１３０とサブメモリー１３４との間には、メモリー制御ＩＣ１３２が配置されており、サブメモリー１３４へのデータ書込み、および、サブメモリー１３４からのデータ読出しを仲介する。サブメモリー１３４の物理メモリー空間は、表面側撮像デバイスからの画像データを格納するための表面入力画像データバッファ１３６と、画像メモリー１３８とに区分されて、それぞれに応じた用途で使用される。画像メモリー１３８は、画像データに対する編集・加工・表示などの処理過程で一時的に作成される画像データのバッファリングに用いられる。例えば、表面側撮像デバイスからの画像データ（生データ）を指定された画像形式に変換する際の画像バッファ、ＦＡＸを送信する際の画像バッファ、または、外部ネットワークあるいは外部機器へ画像データを出力する際の画像バッファなどとして用いられる。
【００６３】
同様に、画像処理ＡＳＩＣ１４０は、裏面側撮像デバイスからの画像データをサブメモリー１４４に格納する。画像処理ＡＳＩＣ１４０とサブメモリー１４４との間には、メモリー制御ＩＣ１４２が配置されており、サブメモリー１４４へのデータ書込み、および、サブメモリー１４４からのデータ読出しを仲介する。サブメモリー１４４の物理メモリー空間は、裏面側撮像デバイスからの画像データを格納するための裏面入力画像データバッファ１４６と、画像メモリー１４８とに区分されて、それぞれに応じた用途で使用される。
【００６４】
ＨＤＤ１５０には、各種プログラムが不揮発的に格納されている。具体的には、ＨＤＤ１５０は、ハイパーバイザー１５２と、ホストＯＳ１５４と、１または複数のゲストＯＳ１５６と、１または複数のアプリケーション１５８と、制御ファームウェア１６０とを格納している。これらのプログラムは、ＤＶＤ−ＲＯＭ（Digital Versatile Disk Read Only Memory）などの光学記録媒体、磁気記録媒体、半導体記録媒体、光磁気記憶媒体などの非過渡的（non-transitory）なコンピューター読取可能な記録媒体を媒介としてインストールされてもよい。あるいは、有線通信回線または無線通信回線を介して図示しないサーバー装置などから必要なプログラムがダウンロードされて、制御部１００にインストールされてもよい。これらの各プログラムの詳細および実行タイミングなどについては、後述する。
【００６５】
内部バス１０４には、インターフェイス回路１０５，１０６，１０７，１０８が接続されている。
【００６６】
インターフェイス回路１０５は、ＦＡＸを送受信するＦＡＸ通信部、および／または、ネットワークを介して他の装置との間でデータを遣り取りするネットワーク通信と接続される。プロセッサー１０２からの指令などを受けて、通信部から外部装置への送信処理、および、通信部での外部装置からのデータの受信処理などを仲介する。なお、ゲストＯＳ１５６が提供する機能を外部端末で利用する機能を実装してもよい。
【００６７】
インターフェイス回路１０６は、操作パネルに各種情報を表示する処理、および、操作パネルに対するユーザー操作を受け付ける処理などを仲介する。操作パネルは、ユーザーによるタッチ操作を受け付ける表示操作部であり、典型的には、表示部であるＬＣＤ（Liquid Crystal Display：液晶表示部）と、タッチ操作を受け付けるタッチパネルとを含む。なお、表示部には、ホストＯＳ１５４およびゲストＯＳ１５６の動作状況を可視化する機能を実装してもよい。例えば、表示部上に、空きメモリー空間の量およびプロセッサーの利用時間などをグラフまたは数値で表示するようにしてもよい。すなわち、画像形成装置１は、ゲストＯＳ１５６上の情報を表示する表示部を有していてもよい。
【００６８】
インターフェイス回路１０７は、各種の認証デバイスとのデータの遣り取りを仲介する。認証デバイスとしては、ＩＣカードリーダー、指紋読み取り装置、近距離無線通信デバイスなどを含む。
【００６９】
インターフェイス回路１０８は、プロセッサー１０２とプリントエンジン４との間のデータの遣り取りを仲介する。
【００７０】
図２に示す制御部１００においては、メインメモリー１１０内の画像メモリー１１４と、サブメモリー１３４内の画像メモリー１３８と、サブメモリー１４４内の画像メモリー１４８との、３つの画像メモリーが用意されている。
【００７１】
画像メモリーは、画像形成装置１の本体での画像処理において利用するメモリーである。このような画像メモリーは、画像形成装置１において必須の構成である。図２に示すように、画像メモリーは、メインメモリー１１０上に専用の画像処理領域として確保されてもよいし、画像処理ＡＳＩＣ１３０，１４０ごとに設けられるローカルメモリー（サブメモリー１３４，１４４）上に専用の画像処理領域として確保されてもよい。上述したように、表面用の画像処理ＡＳＩＣ１３０に加えて、裏面の画像処理ＡＳＩＣ１４０にもローカルメモリー（サブメモリー１４４）を配置し、このローカルメモリー上に画像メモリーを設けることで、高速スキャンを実現する。
【００７２】
このように、画像形成装置１のメモリー構成の設計としては、それぞれの目的に応じて専用の領域が確保されることも多い。
【００７３】
また、プリント処理（画像形成装置）において、例えば、画像形成装置１を外部のプリントサーバーと接続する場合にも、図２に示すような画像処理ＡＳＩＣおよびサブメモリー（画像メモリー）を追加することもある。このように、画像形成装置１の機能を拡張する場合にも、より多くの画像メモリーが追加されることもあり、これらの画像メモリーが同時に利用されることでマルチ動作を実現している。
【００７４】
＜Ｄ．画像形成装置１の制御部１００での仮想化環境＞
次に、本実施の形態に従う画像形成装置１の制御部１００での仮想化環境について説明する。図３は、本実施の形態に従う画像形成装置１の制御部１００でのプログラムの実行状態の一例を示す模式図である。
【００７５】
図３には、ホストＯＳ１５４に加えて、３つのゲストＯＳ１５６（ゲストＯＳ１〜ＯＳ３）が同時実行されている状態を示す。図３を参照して、これらの複数のＯＳは、共通のハードウェアリソース（すなわち、プロセッサー１０２およびシステムメモリー１１２）を用いて実行される。図３には、プロセッサー１０２がシステムメモリー１１２にハイパーバイザー１５２を展開して実行することで、複数のＯＳが同時実行されている状態を示す。すなわち、それぞれのＯＳを動作させるためのデータを格納するメモリー空間は、システムメモリー１１２内に用意される。システムメモリー１１２のメモリー空間の利用制御（メモリー領域の割り当てなど）は、ハイパーバイザー１５２によって管理される。
【００７６】
ハイパーバイザー１５２は、プロセッサー１０２およびシステムメモリー１１２を含むリソースを用いて、ホストＯＳ１５４および少なくとも１つのゲストＯＳ１５６を含む複数のＯＳの同時実行を制御する。ハイパーバイザー１５２は、各ＯＳの実行に必要な仮想化されたプロセッサーリソースの割り当て処理、割り込み処理、メモリー制御、デバイスドライバーの提供などを行なう。このような処理を提供することで、複数のゲストＯＳ１５６の切り替え実行を可能にする。ハイパーバイザー１５２は、画像形成装置１および画像形成装置１に接続されたデバイスをゲストＯＳ１５６が利用するための適切な初期化を行なう機能を有している。このような機能によって、ゲストＯＳ１５６に切り替えられた直後であっても、ホストＯＳ１５４と同様の処理を実行することができる。
【００７７】
なお、ハイパーバイザー１５２の機能として、メモリー空間のマネージメントに加えて、電力のマネージメントを行なってもよい。例えば、ハイパーバイザー１５２は、画像形成装置１が省電力モードのときに、ゲストＯＳ１５６の動作を制限する機能を実装してもよい。
【００７８】
ホストＯＳ１５４は、制御部１００において常時実行されているＯＳである。ホストＯＳ１５４上では、制御ファームウェア１６０が実行される。ホストＯＳ１５４としては、Ｌｉｎｕｘ（登録商標）などの仮想メモリー機構をもつＯＳが用いられる。但し、ホストＯＳ１５４としては、汎用的なＯＳではなく、後述するような、協調モジュール１７０による介入制御を受け付けるように、画像形成装置１に独自の機能が拡張されている。
【００７９】
制御ファームウェア１６０は、ホストＯＳ１５４上で実行され、画像形成装置１の主たる制御を司る。より具体的には、制御ファームウェア１６０は、画像形成装置１の主たる処理（本体動作）の制御、画像メモリーを扱う画像処理ＡＳＩＣ１３０，１４０の制御を主体としたジョブの処理、各種のデバイス制御などを担当する。
【００８０】
ゲストＯＳ１５６は、仮想メモリー機能をもつＯＳであれば、ホストＯＳ１５４と同一種類のＯＳであってもよいし、異なる種類のＯＳであってもよい。例えば、ゲストＯＳ１５６としては、ＬｉｎｕｘおよびＷｉｎｄｏｗｓ（登録商標）などを用いることができる。
【００８１】
ゲストＯＳ１５６上では、各種のアプリケーション１５８が実行される。例えば、アプリケーション１５８としては、ユーザー認証を行なうアプリケーションを含み得る。さらに、ゲストＯＳ１５６上に画像形成装置１のユーザーごとのデスクトップ環境を実現し、ジョブ内容を管理する機能を実装してもよい。なお、ゲストＯＳ１５６に任意のプログラムを提供するアプリストアーに類似した機構を採用してもよい。
【００８２】
さらに、ハイパーバイザー１５２の機能の一部、または、ハイパーバイザー１５２と連携する独立した機能として、協調モジュール１７０および空きメモリー管理モジュール１７２が実行される。
【００８３】
協調モジュール１７０は、ハイパーバイザー１５２と同一レベルで動作し、制御ファームウェア１６０とハイパーバイザー１５２との間を仲介し、同時実行中のゲストＯＳ１５６との間でメモリー空間を協調して利用する。「同一レベル」とは、実行の優先度などが同じレベルで実行される状態を意味する。本実施の形態においては、協調モジュール１７０は、処理対象のジョブの動作を考慮して、画像メモリーを効率的に利用することで、ゲストＯＳ１５６の切り替えに対して先行読出し、および、メモリーの内容の退避などを実行する。なお、協調モジュール１７０は、いずれかのゲストＯＳ１５６上のユーザー管理情報を必要に応じて退避前に制御ファームウェア１６０と共有する機能を有していてもよい。
【００８４】
空きメモリー管理モジュール１７２は、システムメモリー１１２のうちホストＯＳ１５４およびホストＯＳ１５４と同時実行されるゲストＯＳ１５６が利用していない空きメモリー空間を管理する。すなわち、空きメモリー管理モジュール１７２は、ハイパーバイザー１５２が管理する物理メモリー空間で利用されていない空きメモリー空間を管理する。このとき、空きメモリー管理モジュール１７２は、協調モジュール１７０と連携動作することで、画像メモリー空間を含めた空きメモリー空間を管理する。協調モジュール１７０を管理するためのＡＰＩ（Application Programming Interface)を実装することで、モジュール間の連携性を高めるようにしてもよい。
【００８５】
さらに、退避メモリー管理モジュール１７４をさらに実行させるようにしてもよい。退避メモリー管理モジュール１７４は、システムメモリーまたは画像メモリーの格納されているデータのうちゲストＯＳ以外のデータを二次記憶装置の一例であるＨＤＤ１５０内の一時退避メモリー（スワップメモリー）に退避する処理を実施する。あるいは、退避メモリー管理モジュール１７４は、その逆に、一時退避メモリー（スワップメモリー）に退避したデータを、システムメモリーまたは画像メモリーに戻す処理も実施する。
【００８６】
なお、ホストＯＳ１５４およびゲストＯＳ１５６について、連続するメモリー空間を優先して画像メモリーに退避することが好ましい。
【００８７】
あるゲストＯＳ１５６上のプログラムを他のゲストＯＳ１５６上で実行させるように、マイグレーション処理を適切に行なう機能を実装してもよい。この場合には、あるゲストＯＳ１５６に何らかの不具合が生じても、別のゲストＯＳ１５６がアプリケーションの処理を継続できる。すなわち、協調モジュール１７０は、ゲストＯＳ１５６を外部システムへマイグレーションしたときに退避したデータ内容を移動管理する機能をさらに含む。
【００８８】
さらに、画像形成装置１を管理するサーバー型または常駐型のプログラムが、ゲストＯＳ１５６の構成を管理し、複数の画像形成装置１および画像形成装置群の全体として、最適な構成になるように実行するゲストＯＳ１５６および各ゲストＯＳ１５６上で実行するアプリケーションを選択するようにしてもよい。
【００８９】
ところで、図２に示すように、画像形成装置１の制御部１００には、複数の画像メモリーが用意されている場合が多い。一方で、画像形成装置１において、プリント動作（画像形成動作）のみが連続する場合、または、原稿の片面のみをスキャンする場合などのように、一度にすべての画像メモリーが利用されていない状態も多くある。
【００９０】
また、一般的には、画像メモリーは、ブロック単位で圧縮伸長管理されている。さらに、画像メモリーを単位分割して共用利用することで、複数タスクが物理メモリーを効率よく利用できるような構成も採用されている。
【００９１】
一方で、本実施の形態に従う画像形成装置１のように、複数のゲストＯＳを搭載して多機能化されることもあるが、ゲストＯＳのメモリー消費量が大きくなる場合がある。また、複数のゲストＯＳを稼動させるマルチＯＳの実現が要求されているが、一般的な仮想環境の実現の場合と同様の課題がある。そのため、画像形成装置の限られたリソース内で、複数のＯＳの切り替えについての応答性能に低下させず、マルチＯＳを実現することは容易ではない。
【００９２】
例えば、上述の特許文献１は、単一システム内に共存させた複数のオペレーティングシステムを高速に切り替えて使用できる環境を開示する。この特許文献１に記載の発明では、システムメモリー上にＯＳ管理外の独立したメモリー空間を事前に確保し、ゲストＯＳの動作コンテキストの保存に利用する。但し、このような構成を採用したとしても、独立したメモリー空間をシステムメモリー上に確保することの制限があり、また、メモリー空間が不足した場合には二次記憶装置を併用せざるを得ず、遅延が生じるため、複数のＯＳを高速に切り替え実行することが難しい場合もある。
【００９３】
また、上述の特許文献３は、第１ＯＳユーザー名を第２ＯＳユーザー名として用いてログイン手順を簡略化することで、第２ＯＳログイン手順を高速化している。しかしながら、画像処理ジョブが発生しメモリーなどリソースが枯渇する場合において、本体制御の第１ＯＳへリソースを明け渡すために第２ＯＳのリソース解放のためのログアウト処理時間が発生し、画像処理実行開始が遅れ得る。特に、リソース確認詳細が開示されておらず画像メモリーについて言及がないため、リソース不足時のフロー手順から第２ＯＳの終了によりリソース解放すると終了手順に大きく時間を取られる。その結果、第１ＯＳジョブ実行開始への遅延が大きくなりジョブ生産性への影響が大きい。
【００９４】
そこで、本実施の形態に従う画像形成装置１は、ジョブの処理に影響を与えないように、システムメモリーに加えて、画像メモリーのメモリー空間を効率的に利用することで、複数ＯＳを高速に切り替えて実行する環境を実現する。
【００９５】
＜Ｅ．画像形成装置１でのジョブの処理例１＞
次に、本実施の形態に従う画像形成装置１でのジョブの処理例１について説明する。処理例１としては、単一のジョブとして親展ＦＡＸを処理する際に、ゲストＯＳ１５６にて認証処理が必要になった場合のホストＯＳ１５４およびゲストＯＳ１５６に対するメモリー空間の割り当て処理について説明する。ここで、親展ＦＡＸとは、登録番号またはパスワードなどによる認証を介して、特定の相手に限ってＦＡＸを遣り取りする機能である。
【００９６】
画像形成装置１の本体動作の状態が、ジョブ開始前、スキャン動作、親展モードでのＦＡＸ受信（プリント出力時に認証が必要）、コピープリントのような順番で連続した例の場合には、下表に示すように、協調モジュール１７０による２つのゲストＯＳ１５６の先行読出しが実行される。
【００９７】
図４は、本実施の形態に従う画像形成装置１の制御部１００による処理例１での処理手順を示すシーケンス図である。図４には、シングルジョブの例のシーケンス図を示す。なお、図４には、読出されたゲストＯＳ２が破壊された場合の処理も含む。
【００９８】
図４を参照して、制御ファームウェア１６０およびハイパーバイザー１５２の起動が完了した後、本体動作を司る制御ファームウェア１６０がハイパーバイザー１５２に対して、ジョブ開始前であることを通知する（シーケンスＳＱ１００：「１．ジョブ開始前」）。この通知に応答して、ハイパーバイザー１５２がゲストＯＳ１およびＯＳ２を読出す（シーケンスＳＱ１０２：「２．ゲストＯＳ読出し」）。すなわち、必要なゲストＯＳの起動が指示される。
【００９９】
図４に示す例では、ゲストＯＳ１が起動されると（シーケンスＳＱ１０４）、ゲストＯＳ１は、出力メモリーのＦＡＸ送信に割り当てられている領域にあるデータを読出す（シーケンスＳＱ１０６：「３．読出し」）。ゲストＯＳ１では、認証アプリケーションが実行されるものとする。
【０１００】
また、ゲストＯＳ２が起動されると（シーケンスＳＱ１０８）、ゲストＯＳ２は、出力メモリーのスキャン出力に割り当てられている領域にあるデータを読出す（シーケンスＳＱ１１０：「４．読出し」）。ゲストＯＳ２では、画像変換アプリケーションが実行されるものとする。
【０１０１】
制御ファームウェア１６０がジョブ開始前の認証処理を実行するにあたって、既に読出し済みのゲストＯＳ１へ切り替え、ゲストＯＳ１に対して、ゲストＯＳ１で実行される認証アプリケーションでの認証処理を指示する（シーケンスＳＱ１１２：「５．認証実施」）。
【０１０２】
また、制御ファームウェア１６０が画像変換を伴うスキャン動作を実行するにあたって、スキャンによって取得された画像データを入力メモリーのスキャン入力に割り当てられている領域に画像データを書込む（シーケンスＳＱ１１４：「６．スキャン」）。すると、書込まれた画像データは入力メモリーの画像変換に割り当てられている領域に書込まれる（シーケンスＳＱ１１６：「６．１．画像変換」）。
【０１０３】
さらに、制御ファームウェア１６０は、既に読出し済みのゲストＯＳ２へ切り替え、ゲストＯＳ２に対して、ゲストＯＳ２で実行される画像変換アプリケーションでの画像変換処理を指示する（シーケンスＳＱ１１８：「７．画像変換」）。ゲストＯＳ２は、画像変換処理によって得られた画像データ（変換結果）を入力メモリーのアプリ入力に割り当てられている領域に画像データを書込む（シーケンスＳＱ１２０：「８．変換出力」）。さらに、書込まれた画像データは出力メモリーのスキャン出力に割り当てられている領域に書込まれる（シーケンスＳＱ１２２：「９．アプリ出力」）。
【０１０４】
ここで、ゲストＯＳ２での処理後に、出力メモリーのスキャン出力に割り当てられている領域が別処理に占有されて、ゲストＯＳ２が利用可能なメモリー領域を確保できなくなると、ゲストＯＳ２での画像変換処理が失敗し得る。すなわち、ゲストＯＳ２が破壊され得る。
【０１０５】
例えば、制御ファームウェア１６０が画像変換を伴うスキャン動作を続けて実行すると、スキャンによって取得された画像データを入力メモリーのスキャン入力に割り当てられている領域に画像データを書込む（シーケンスＳＱ１２４：「１０．スキャン」）。すると、書込まれた画像データは入力メモリーの画像変換に割り当てられている領域に書込まれる（シーケンスＳＱ１２６：「１１．画像変換」）。さらに、制御ファームウェア１６０は、ゲストＯＳ２で実行される画像変換アプリケーションでの画像変換処理を指示する（シーケンスＳＱ１２８：「１１．１．画像変換」）。ここで、例えば、連続して親展ＦＡＸを受信しているとすると、画像変換処理によって得られた画像データ（変換結果）を出力メモリーのスキャン出力に割り当てられている領域に書込むことができなくなり、ゲストＯＳ２での画像変換処理は失敗し得る。すなわち、ゲストＯＳ２での読出しができないため、次のジョブである画像変換を伴うスキャン動作に高速で応答することができず、失敗したと判定され得る。
【０１０６】
すると、制御ファームウェア１６０は、ゲストＯＳ２での失敗をハイパーバイザー１５２にエラー報告する（シーケンスＳＱ１３０：「１２．ゲストＯＳエラー」）。一方で、制御ファームウェア１６０は、それに続くジョブを処理する。この親展ＦＡＸのジョブ完了後に、ゲストＯＳ２が読出された時点で、先の画像変換を伴うスキャン動作を再開することも可能である。
【０１０７】
図４に示す例では、制御ファームウェア１６０は、受信したＦＡＸの画像データを入力メモリーのＦＡＸ受信に割り当てられている領域に画像データを書込む（シーケンスＳＱ１３２：「１３．親展ＦＡＸ」）。そして、書込まれた画像データは、スキャン印刷の処理の後、出力メモリーのエンジン出力に割り当てられている領域に書込まれる（シーケンスＳＱ１４０：「１６．プリント出力」）。
【０１０８】
さらに、制御ファームウェア１６０は、スキャンによって取得された画像データを入力メモリーのスキャン入力に割り当てられている領域に画像データを書込む（シーケンスＳＱ１３４：「１４．スキャン」）。すると、書込まれた画像データは出力メモリーのエンジン出力に割り当てられている領域に書込まれる（シーケンスＳＱ１３６：「１４．１．プリント出力」）。
【０１０９】
その後、制御ファームウェア１６０は、既に読出し済みのゲストＯＳ１へ切り替え、ゲストＯＳ１に対して、ゲストＯＳ１で実行される認証アプリケーションでの認証処理を指示する（シーケンスＳＱ１３８：「１５．認証実施」）。
【０１１０】
これらの先のジョブについての処理が終了した後、制御ファームウェア１６０がハイパーバイザー１５２に対して、ジョブ開始前であることを通知する（シーケンスＳＱ１４２：「１７．ジョブ開始前」）。この通知に応答して、ハイパーバイザー１５２がゲストＯＳ２を読出す（シーケンスＳＱ１４４：「１８．ゲストＯＳ読出し」）。すなわち、必要なゲストＯＳ２の起動が指示される。
【０１１１】
ゲストＯＳ２が起動されると（シーケンスＳＱ１４６）、ゲストＯＳ２は、出力メモリーのスキャン出力に割り当てられている領域にあるデータを読出す（シーケンスＳＱ１４８：「１９．読出し」）。
【０１１２】
ゲストＯＳ２での認証処理の実行後、先のジョブである画像変換が完了し、ゲストＯＳ２に対して、画像変換が成功したことが通知される（シーケンスＳＱ１５０：「１１．２：画像変換：成功」）。
【０１１３】
さらに、ゲストＯＳ２は、状態変化を示す情報を出力し（シーケンスＳＱ１５２：「２０：変化出力」）、その情報は、出力メモリーのスキャン出力に割り当てられている領域に書込まれる（シーケンスＳＱ１４４：「２０．１：アプリ出力」）。
【０１１４】
図４に示すように、先に親展ＦＡＸを受信した後にさらに親展ＦＡＸを受信すると、読出し済みのゲストＯＳ１へ切り替えて認証アプリケーションを利用することで、当該後続の受信ＦＡＸについても滞りなくプリント出力が実施できる。そのため、全体としてのジョブ終了が早くなり、ゲストＯＳ２の読出しまでに要する時間が短縮され、読出し制御のない場合に比べて、連続ジョブの生産性も向上できる。
【０１１５】
上述したシーケンス図に対応させた、画像形成装置１がシングルジョブを処理する際に利用されるリソースを示す対応表を示す。表中において、「○」はジョブが利用するメモリーを示す。
【０１１６】
【表１】
0006398963.tif 000002
【０１１７】
上表では、説明上の便宜上、処理を簡略化して画像メモリーを固定的に利用することを前提としている。但し、後述するように、画像メモリーを分割して管理することで、ＯＳの優先度などに応じて、各画像メモリーに分散された混在のメモリー利用が可能となる。例えば、上述の非特許文献１によれば、一定長の固定領域確保に比べて、複数のＯＳ状態に依存して、より多くの空きメモリーが期待できるため、ゲストＯＳ数を増加できるという利点がある。
【０１１８】
なお、複数の認証デバイスを用いる場合には、例えば、以下の表に示すようにそれぞれ異なるゲストＯＳ１５６にその処理を実行させるようにしてもよい。
【０１１９】
【表２】
0006398963.tif 000003
【０１２０】
図５は、本実施の形態に従う画像形成装置１の制御部１００の初期処理の手順を示すフローチャートである。図５に示す各ステップは、主として、画像形成装置１の制御部１００のプロセッサー１０２が図示しない各種プログラムを指定された順序で実行することで実現される。
【０１２１】
図５を参照して、プロセッサー１０２は、システムが起動（ブート）されると（ステップＳ１００）、ハイパーバイザー１５２および協調モジュール１７０を起動する（ステップＳ１０２）。さらに、プロセッサー１０２は、制御ファームウェア１６０を起動する（ステップＳ１０４）。
【０１２２】
必要なプログラムの起動が開始されると、プロセッサー１０２（協調モジュール１７０）は、システムメモリーのうち利用可能なメモリー空間を取得する（ステップＳ１０６）とともに、制御ファームウェア１６０と連携して画像メモリーのうち利用可能なメモリー空間を取得する（ステップＳ１０８）。
【０１２３】
続いて、プロセッサー１０２（協調モジュール１７０）は、処理すべきジョブの内容と、当該ジョブに必要な１つ以上のゲストＯＳで動作するプログラムを関連付ける（ステップＳ１１０）。例えば、上述したような親展ＦＡＸについては、ゲストＯＳ上で実行される認証アプリケーションが必要であるといった情報が登録される。
【０１２４】
続いて、プロセッサー１０２（協調モジュール１７０）は、処理すべきジョブの開始前に、ステップＳ１１０において、当該処理すべきジョブにいずれかのプログラムが必要であることが登録されていれば、ジョブの開始前に必要なゲストＯＳを画像メモリーのうち利用可能なメモリー空間に読出し、関連付けられたプログラムを実行させる（ステップＳ１１２）。
【０１２５】
プロセッサー１０２（協調モジュール１７０）は、システムメモリー１１２、画像メモリー、ＨＤＤ１５０のスワップ領域との間で、データ退避が必要であるか否かを判断する（ステップＳ１１４）。データ退避が必要であると判断されると（ステップＳ１１４においてＹＥＳの場合）、プロセッサー１０２（協調モジュール１７０）は、ホストＯＳ１５４および他のゲストＯＳ１５６が利用していないと判断されたシステムメモリー１１２の内容を画像メモリーに退避する（ステップＳ１１６）。これにより、新たに実行されたゲストＯＳのシステムメモリーとして利用可能にする。
【０１２６】
その後、プロセッサー１０２は、ジョブの受付けを開始する（ステップＳ１１８）。その後、ジョブが入力されると、入力されたジョブに応じた処理が実行される。なお、ホストＯＳ１５４上の要求だけでなく、ゲストＯＳ１５６上の要求を本体ジョブとして受け付けるようにしてもよい。
【０１２７】
以上のとおり、例えば、ジョブの処理と並行して、認証処理が必要な場合には、ハイパーバイザー１５２がゲストＯＳ１５６を先行読出しすることで、より高速なジョブの処理を実現できる。
【０１２８】
＜Ｆ．画像形成装置１でのジョブの処理例２＞
次に、画像メモリー特有のデータ構造を利用したメモリーマネージメントについて説明する。特に、ブロック分割された画像メモリーの利用に適した処理について説明する。
【０１２９】
図６は、本実施の形態に従う画像形成装置１の制御部１００でのプログラムの別の実行状態の一例を示す模式図である。図６を参照して、制御部１００のハードウェアを利用してハイパーバイザー１５２が実行され、ハイパーバイザー１５２の管理下で、ホストＯＳ１５４および複数のゲストＯＳ１５６が実行されている例を示す。
【０１３０】
制御部１００のハードウェアとしては、メモリー制御ＩＣ１１８および圧縮／伸張ＩＣ１２０（図２）により提供される、ＭＭＵ（メモリー管理部：Memory Management Unit）およびＩＣの機能と、プロセッサー１０２と、メインメモリー１１０とを含む。さらに、制御部１００のハードウェアとしては、サブメモリー１３４，１４４に加えて、認証デバイス１９２と、ＮＩＣ（Network Interface Card）デバイス１９４と、各種の記憶デバイス１９６を含む。
【０１３１】
ハイパーバイザー１５２は、仮想的なメモリー管理部（ＶＭＭＵ）１５２１と、圧縮／伸張ＩＣ（ＶＩＣ）１５２２と、仮想的な演算リソース（ＶＣＰＵ）１５２３とを複数のＯＳが利用可能な状態で提供する。ホストＯＳ１５４上では、プリントアプリケーション１６０１と、スキャンアプリケーション１６０２と、ＦＡＸアプリケーション１６０３と、ＢＯＸアプリケーション１６０４とが実行される。また、ゲストＯＳ１〜ＯＳ３上では、認証アプリケーション１５８１，１５８２，１５８３がそれぞれ実行されるものとする。ハイパーバイザー１５２は、スタブ１５８４，１５８５，１５８６を用いてそれぞれゲストＯＳおよびアプリケーションの実行を管理する。
【０１３２】
画像メモリーは、ブロック単位で圧縮伸長管理されている。さらに、画像メモリーを単位分割して共用利用することで、複数タスクが物理メモリーを効率よく利用できるような構成が採用されているとする。
【０１３３】
ホストＯＳ１５４およびゲストＯＳ１５６についても、仮想メモリー機構を用いて一定のページ単位でメモリー空間を管理している。なお、以下の説明では、仮想メモリー機構をもたないＯＳについては考慮していない。
【０１３４】
しかしながら、画像メモリーで管理されるブロック単位と、仮想メモリー機構を用いて管理されるページ単位とは、単位サイズが同一とは限らない。また、管理対象の画像メモリーがメインメモリー１１０に設けられる場合と、サブメモリー１３４，１４４に設けられる場合とでは、その取扱いも同一にはできない。
【０１３５】
そこで、画像形成装置１での管理単位および制御を前提として、ホストＯＳ１５４およびゲストＯＳ１５６、ならびに、ハイパーバイザー１５２でのメモリー共有化機構が必要になる。
【０１３６】
本実施の形態に従う画像形成装置１には、画像処理ＡＳＩＣ１３０，１４０が組み込まれている。但し、プリント制御に利用される画像メモリーは、プロセッサー１０２と共有するメインメモリー１００内の画像メモリー１１４、ならびに、画像処理ＡＳＩＣ１３０，１４０に関連付けられる専用のサブメモリー１３４，１４４内の画像メモリー１３８，１４８の２種類から構成される。このように、画像メモリーを利用するジョブに応じた利用形態となるため、メモリー領域の確保をジョブ動作に応じて上述のような単位サイズで実施する。
【０１３７】
図７は、本実施の形態に従う画像形成装置１の制御部１００におけるブロック分割された画像メモリーの利用形態を説明するための模式図である。図７を参照して、物理的な画像メモリーは、画像ブロック単位で圧縮伸長管理される。そして、一定サイズの単位メモリーは、ツリー構造で管理される。より具体的には、単位メモリーの各々は、リンクトリストを用いたツリー状のデータ構造を用いて管理され、各単位メモリーの種別およびアドレスが拡張アドレス・データ構造に格納されている。
【０１３８】
図７に示すような構成において、協調モジュール１７０は、画像処理ＡＳＩＣと協調動作するように構成されることが好ましい。このような構成は、ホストＯＳ１５４およびゲストＯＳ１５６ならびにハイパーバイザー１５２の仮想メモリー機構との親和性は高い。一方で、このような構成は、ジョブ制御に依存した従来の画像処理を前提に構成されているため、他の目的、特にＯＳが扱えるメモリー空間としての利用については考慮されていない。
【０１３９】
そこで、本実施の形態に従う画像形成装置１では、画像形成の管理単位に対して、ホストＯＳ１５４およびゲストＯＳ１５６ならびにハイパーバイザー１５２でのページ単位構造を割り当て、通常のメモリー空間として管理することで、ゲストＯＳ１５６でも画像メモリーを利用することを可能にする。
【０１４０】
すなわち、仮想メモリーとしては、一定サイズのページメモリーがツリー構造で管理され、いずれのゲストＯＳも利用可能になっている。画像メモリーは、画像メモリーの種別（すなわち、メインメモリー１１０内に設けられた場合と、サブメモリー１３４，１４４に設けられた場合）により、メモリー応答性能が異なる。そのため、単純なメモリー空間として利用すると、メモリー応答性能を考慮せずアクセスされるので、全体としての性能が劣化する可能性がある。
【０１４１】
そこで、本実施の形態に従う画像形成装置１では、本体ＯＳ（ホストＯＳ１５４およびゲストＯＳ１５６とハイパーバイザー１５２との間に、協調モジュール１７０を介在させ、画像メモリーの種別に応じて、通常のメモリー空間、および、ストレージメモリー空間のいずれかとして選択的に割り当てる。
【０１４２】
例えば、ストレージメモリー空間は、ページ退避可能性が高く（Swappableに）設定され、ジョブ動作に応じてスワップされるよう、協調モジュール１７０によってメモリー管理が調停される。また、一旦ページ化した場合、再度ストレージメモリー空間へレストアされるのではなく、通常スワップと同様に扱うことで、高速なメモリー復帰が可能になる。
【０１４３】
図７には、ハイパーバイザー１５２と連携する協調モジュール１７０が、メインメモリー１１０をページ退避可能性が低いと（Residentialに）設定し、サブメモリー１３４，１４４をページ退避可能性が高いと（Swappableに）設定してもよい。また、サブメモリー１３４，１４４上の退避メモリーはＨＤＤ１５０のスワップ領域にスワップアウトされてもよい。
【０１４４】
これらのメモリー管理には、ゲストＯＳ１５６を特定するＩＤをメモリー空間に配置されるデータに付与することで、読出し済みのゲストＯＳ１５６がジョブ実行により破壊されたことを協調モジュール１７０が把握する機能においても利用できるようにしてもよい。すなわち、協調モジュール１７０は、読出し済みのゲストＯＳ１５６がジョブ実行により破壊されたことを検知し、ジョブ開始前に検知された破壊されたゲストＯＳ１５６を再度読出す。
【０１４５】
図８は、本実施の形態に従う画像形成装置１の制御部１００におけるブロック分割された画像メモリーの管理方法を説明するための模式図である。図８を参照して、あるメモリー空間内の画像ブロック単位（例えば、４ｋＢｙｔｅ）の各々に対して、属性情報を含むテーブル（カラム）が関連付けられる。
【０１４６】
このテーブルには、複数の属性情報が格納される。図８に示す例では、ブロック番号、アドレス、メモリーＩＤ、ＯＳＩＤ、ＪＯＢ情報、Ｃ、Ｕなどである。
【０１４７】
ブロック番号は、メモリー空間上の領域を特定する情報である。アドレスは、メモリー空間上の対応するブロックのアドレスである。メモリーＩＤは、システムメモリー１１２上に設けられる画像メモリーであるのか、サブメモリー１３４，１４４上に設けられる画像メモリーであるのかを示す。ＯＳＩＤは、対応するＯＳのＩＤを示す。ＪＯＢ情報は、ゲストＯＳに対応する認証ＪＯＢであるか否かを示す。Ｃは、対応ブロックが参照された回数を示し、Ｕは、対応ブロックが更新されたか否かを示す。
【０１４８】
このように、協調モジュール１７０は、メモリー空間の種別に区分して、単位メモリーごとに利用しているＯＳを特定可能なＩＤを含むリストを管理する機能を有している。このようなブロック単位ごとの情報に基づいて、スワップアウトまたは書き戻しなどが制御される。
【０１４９】
図９は、本実施の形態に従う画像形成装置１の制御部１００における複数のメモリー間でのデータ管理の一例を示す模式図である。図９を参照して、ハイパーバイザーは、要求などに応じて、ＨＤＤ１５０からゲストＯＳを、メインメモリー１１０内のシステムメモリー１１２上に読み出して起動する（（１）起動）。その後、状況に応じて、メインメモリー１１０内の画像メモリー１１４に退避する（（２）退避）。なお、メインメモリー１１０内の画像メモリー１１４に十分な空きメモリー空間が存在しなければ、いずれかの画像処理ＡＳＩＣに関連付けられるサブメモリー１３４，１４４内の画像メモリー１３８，１４８に読み出された内容が退避されることもある。
【０１５０】
その後、画像処理ＡＳＩＣによる処理要求などに応じて、サブメモリー１３４，１４４に、十分な空きメモリー空間を確保するために、退避しているデータをＨＤＤ１５０にページアウトする。
【０１５１】
図９に示すように、本実施の形態に従う画像形成装置１においては、ＨＤＤ１５０、メインメモリー１１０（含：システムメモリー１１２、画像メモリー１１４）、および、画像処理ＡＳＩＣに関連付けられたサブメモリー１３４，１４４（画像メモリー１３８，１４８）の三者あるいは四者の間で、メモリーの使用要求および空きメモリー空間の量などに応じて、データの退避処理、ページアウト処理などが最適化された状態で実施される。
【０１５２】
図１０は、本実施の形態に従う画像形成装置１の制御部１００におけるメモリー空間の利用形態の一例を示す図である。図１０を参照して、例えば、システムメモリー１１２にホストＯＳならびにゲストＯＳ１およびゲストＯＳ２の実行に必要なデータが保存されている状態で、ゲストＯＳ３の起動が指令されたとする（（１）要求発生）。すると、協調モジュール１７０は、例えば、その実行が一時的に中止されるゲストＯＳ１に割り当てていたメモリー領域をサブメモリー１３４に退避（スワップアウト）する。
【０１５３】
このとき、システムメモリー１１２からサブメモリー１３４へのデータ転送は、システムメモリーを中継して、そのバッファ容量（例えば、４ｋＢ）の単位（すなわち、ブロック単位）でパラレル伝送することもできる。
【０１５４】
その後、サブＯＳ３の実行の必要性がなくなると、システムメモリー１１２の内容がＨＤＤ１５０にスワップアウトされ、サブメモリー１３４からシステムメモリー１１２へ書き戻される。
【０１５５】
このように、協調モジュール１７０は、必要なシステムメモリー１１２が利用可能になるまでブロック単位で並列にメモリー転送を実施し、ゲストＯＳ１５６に対してメモリー空間を割り当てる。そして、協調モジュール１７０は、メモリー転送の完了後にゲストＯＳ１５６への切り替えを行なう。さらにその後、協調モジュール１７０は、ホストＯＳ１５４へ切り替える場合に、先に実行されたゲストＯＳおよび当該ゲストＯＳ１５６で動作するプログラムが利用するシステムメモリーを一時凍結する処理、先に転送されたメモリーを順次入れ替える処理と、入れ替え完了後にホストＯＳへ切り替える処理とを連続動作させる。
【０１５６】
また、協調モジュール１７０は、ゲストＯＳ１５６を切り替えた後に、ゲストＯＳ１５６からホストＯＳ１５４ではなく他のゲストＯＳ１５６に切り替える場合に、ホストＯＳ１５４に関するファイルメモリーのデータをＨＤＤ１５０（二次記憶装置）へ順次並列転送する処理、先に実行されたゲストＯＳ１５６および当該ゲストＯＳ１５６で動作するプログラムが利用するシステムメモリーを一時凍結する処理、ＨＤＤ１５０へ転送されたファイルメモリーに対して一時凍結したシステムメモリーを順次並列転送する処理と、他のゲストＯＳが必要とするシステムメモリーになるまで先のゲストＯＳが転送完了したシステムメモリーから順次確保する処理と、他のゲストＯＳが動作可能なシステムメモリーが確保されたことで切り替えする処理とを連続動作させる。
【０１５７】
図１１は、本実施の形態に従う画像形成装置１の制御部１００による処理例２でのメモリー確保に係る処理手順を示すフローチャートである。図１１に示す各ステップは、主として、画像形成装置１の制御部１００のプロセッサー１０２が協調モジュール１７０のプログラムを実行することで実現される。
【０１５８】
図１１を参照して、プロセッサー１０２（協調モジュール１７０）は、メモリー空間の種別に区分して、単位メモリーごとに利用しているＯＳを特定可能なＩＤを含むリストを更新する（ステップＳ２００）。ホストＯＳからゲストＯＳへの切り替えが要求されたか否かを判断する（ステップＳ２０２）。
【０１５９】
ホストＯＳからゲストＯＳへの切り替えが要求されると（ステップＳ２０２においてＹＥＳの場合）、プロセッサー１０２（協調モジュール１７０）は、必要なシステムメモリーが利用可能になるまで、ブロック単位で並列にメモリー転送を実施する（ステップＳ２０４）。これにより、切り替えが要求されたゲストＯＳに対して必要なメモリー空間を割り当てることができる。メモリー転送の完了後に、プロセッサー１０２（協調モジュール１７０）は、ホストＯＳからゲストＯＳへの切り替えを行なう（ステップＳ２０６）。
【０１６０】
その後、プロセッサー１０２（協調モジュール１７０）は、ゲストＯＳから別のゲストＯＳへの切り替えが要求されたか否かを判断する（ステップＳ２０８）。
【０１６１】
ゲストＯＳから別のゲストＯＳへの切り替えが要求されると（ステップＳ２０８においてＹＥＳの場合）、すなわち、ゲストＯＳへ切り替えた後に、ゲストＯＳからホストＯＳではなく他のゲストＯＳに切り替える場合に、まず、プロセッサー１０２（協調モジュール１７０）は、ホストＯＳに関するファイルメモリーのデータをＨＤＤ１５０（二次記憶装置）へ順次並列転送する（ステップＳ２１０）。続いて、プロセッサー１０２（協調モジュール１７０）は、先に実行されたゲストＯＳおよび当該ゲストＯＳで動作するプログラムが利用するシステムメモリーを一時凍結する（ステップＳ２１２）。さらに、プロセッサー１０２（協調モジュール１７０）は、ＨＤＤ１５０（二次記憶装置）へ転送されたファイルメモリーに対して一時凍結したシステムメモリーを順次並列転送し（ステップＳ２１４）、他のゲストＯＳが必要とするシステムメモリーになるまで先のゲストＯＳが転送完了したシステムメモリーから順次確保する（ステップＳ２１６）。最終的に、プロセッサー１０２（協調モジュール１７０）は、他のゲストＯＳが動作可能なシステムメモリーが確保されたことで、ゲストＯＳから指定された別のゲストＯＳへ切り替える（ステップＳ２１８）。そして、処理はステップＳ２２０へ進む。
【０１６２】
ホストＯＳからゲストＯＳへの切り替えが要求されていなければ（ステップＳ２０２においてＮＯの場合）、あるいは、ゲストＯＳから別のゲストＯＳへの切り替えが要求されていなければ（ステップＳ２０８においてＮＯの場合）、あるいは、ステップＳ２１８の実行後、ゲストＯＳからホストＯＳへの切り替えが要求されたか否かを判断する（ステップＳ２２０）。
【０１６３】
ゲストＯＳからホストＯＳへの切り替えが要求されると（ステップＳ２２０においてＹＥＳの場合）、プロセッサー１０２（協調モジュール１７０）は、先に実行されたゲストＯＳおよび当該ゲストＯＳで動作するプログラムが利用するシステムメモリーを一時凍結する（ステップＳ２２２）。そして、プロセッサー１０２（協調モジュール１７０）は、先に転送されたメモリーを順次入れ替える（ステップＳ２２４）。メモリーの入れ替え完了後に、プロセッサー１０２（協調モジュール１７０）は、ゲストＯＳからホストＯＳへ切り替える（ステップＳ２２６）。そして、処理はステップＳ２００へ戻る。
【０１６４】
ゲストＯＳからホストＯＳへの切り替えが要求されていなければ（ステップＳ２２０においてＮＯの場合）、ステップＳ２００以下の処理が繰り返される。
【０１６５】
＜Ｇ．画像メモリー領域の確保＞
上述の図４に示すシーケンス図においては、ゲストＯＳへの切り替えが発生したときに、先に処理されているジョブによって、利用可能なメモリー領域を確保できなければ、ゲストＯＳでの処理が失敗し得る。すなわち、ゲストＯＳでの処理と先に入力されたジョブの処理とのうち、先に入力されたジョブの処理が優先される設計となっているが、これを逆にしてもよい。すなわち、ゲストＯＳへの切り替えが発生したときに、ジョブ利用によって利用可能な画像メモリーがない場合にジョブを停止させ画像メモリーを確保するようにしてもよい。
【０１６６】
さらに、先に画像メモリーを利用しているジョブと、当該ゲストＯＳへの切り替えの起因となったジョブとの間で、優先度を評価し、先行のジョブまたはゲストＯＳへの切り替えのいずれを優先させるかを判断するようにしてもよい。
【０１６７】
このように、協調モジュール１７０は、画像メモリーの種別に応じてジョブおよびジョブ情報に基づき優先度を設定し、当該設定した優先度に基づいてジョブの実行を制御する。
【０１６８】
＜Ｈ．メモリー領域の取得可否の判断＞
上述したように、本実施の形態に従う画像形成装置１は、システムメモリー１１２に加えて、画像メモリーを用いて、複数のＯＳ（ホストＯＳ１５４ならびに１または複数のゲストＯＳ１５６）を、共通のハードウェア上で同時実行させる。
【０１６９】
そのため、複数のメモリー空間全体を考慮して、メモリー領域のマネージメントを行なうことが好ましい。具体的には、協調モジュール１７０は、ホストＯＳ１５４上で実行される制御ファームウェア１６０、ハイパーバイザー１５２、空きメモリー管理モジュール１７２（および、退避メモリー管理モジュール１７４）と情報交換し、登録された空きメモリー量および退避メモリー量を適宜更新することで、各種アプリケーション（認証アプリケーションなどを含む）の動作に必要なメモリー領域を取得できるか否かを判断するようにしてもよい。
【０１７０】
さらに、協調モジュール１７０は、何らかの処理の開始または終了を都度記録する更新履歴を保持しておき、メモリー使用量または空きメモリー量の増減傾向に基づいて、格納している内容の配置場所を都度変更してもよい。例えば、空きメモリー量（画像メモリー）に減少傾向がみられる場合に、退避している内容を先行的にページアウト（スワップアウト）、すなわちＨＤＤ１５０に書き戻すようにしてもよい。
【０１７１】
図１２は、本実施の形態に従う画像形成装置１の制御部１００でのメモリー領域のマネージメント処理の手順を示すフローチャートである。図１２に示す各ステップは、主として、画像形成装置１の制御部１００のプロセッサー１０２が協調モジュール１７０のプログラムを実行することで実現される。
【０１７２】
図１２を参照して、プロセッサー１０２は、メモリー領域の要求（ページフォルト）が発生したか否かを判断する（ステップＳ３００）。メモリー領域の要求が発生していなければ（ステップＳ３００においてＮＯの場合）には、ステップＳ３００の処理が繰り返される。
【０１７３】
メモリー領域の要求が発生していれば（ステップＳ３００においてＹＥＳの場合）には、プロセッサー１０２は、空きメモリー管理モジュール１７２へ空きメモリー量を問い合わせる（ステップＳ３０２）。そして、プロセッサー１０２は、過去の空きメモリー量の実績と、問い合わせに対して応答された空メモリー量とから、空きメモリー量の変化量を算出する（ステップＳ３０４）。
【０１７４】
さらに、プロセッサー１０２は、算出した空きメモリー量の変化量が減少傾向を示しているか否かを判断する（ステップＳ３０６）。算出した空きメモリー量の変化量が減少傾向を示していなければ（ステップＳ３０６においてＮＯの場合）、ステップＳ３００以下の処理が繰り返される。
【０１７５】
算出した空きメモリー量の変化量が減少傾向を示していれば（ステップＳ３０６においてＹＥＳの場合）、プロセッサー１０２は、退避メモリー管理モジュール１７４へ退避メモリー量を問い合わせる（ステップＳ３０８）。そして、プロセッサー１０２は、対象となる退避メモリーを特定し、特定した退避メモリーをページアウトする（ステップＳ３１０）。
【０１７６】
最後に、プロセッサー１０２は、退避メモリー管理モジュール１７４が管理する退避メモリー量を更新し（ステップＳ３１２）、ステップＳ３００以下の処理を繰り返す。
【０１７７】
このようなトータルでのメモリー領域の管理を行なうことで、オーバーコミットメントの発生頻度などを低減できる。また、制限のあるメモリーリソースの利用効率を向上させることができる。
【０１７８】
＜Ｉ．付記＞
本発明は、別の局面として、さらに以下のように表現することができる。
【０１７９】
本発明の別の局面に従う画像形成装置は、画像形成動作に必要な制御を行なう制御ファームウェアおよびホストＯＳと、複数のゲストＯＳを切り替えて使用するハイパーバイザーと、制御ファームウェアを含むホストＯＳとハイパーバイザーの動作に必要なシステムメモリーと、制御ファームウェアにより管理される画像処理に専用に用いる画像メモリーと、空きシステムメモリーならびに制御ファームウェアおよびホストＯＳが利用するシステムメモリーについて退避可否を判断するモジュールと、制御ファームウェアおよびホストＯＳが利用していないシステムメモリーについて退避可否を判断するモジュールと、制御ファームウェアおよびホストＯＳで実行される画像メモリー管理と連携することで利用可能な画像メモリーを把握するモジュールとが、ハイパーバイザーと同一レベルで動作される協調モジュール内に実装されている。ここで、画像メモリー上にブロック単位でのメモリー管理を実施するファイルメモリーが実装されていることが好ましい。画像形成装置は、協調モジュールにおいてジョブ内容とゲストＯＳで動作するプログラムとを関連付けて登録するモジュール（例えば、認証プログラムなどゲストＯＳで動作するプログラムとジョブとの関連性が把握できる機能）と、ジョブの開始前に１つ以上のゲストＯＳを空き画像メモリーに読出すモジュールと、ジョブの動作前にジョブ内容とゲストＯＳとの関連付けにて判断した協調モジュールの指示により、ハイパーバイザーにより読出したゲストＯＳを稼動させるモジュールと、制御ファームウェアおよびホストＯＳや他ゲストＯＳが利用していないと判断されたシステムメモリー、および、稼働したゲストＯＳが必要とするメモリーを入れ替えてゲストＯＳのシステムメモリーとして利用可能にするモジュールと、を協調モジュールで連携動作させる。
【０１８０】
ジョブの開始前に１つ以上のゲストＯＳを空き画像メモリーに読出すモジュールは、ジョブリストが追加されるごとに利用可能メモリーリストの空き画像メモリーを優先度およびＩＤによりソートし利用可否を判断するようにしてもよい。また、読出すモジュールは、既に読み込んだゲストＯＳに対して優先度が低い場合に高い優先度へ移動してもよい。また、読出すモジュールは、必要に応じて、メモリーリストに含まれる制御ファームウェアおよびホストＯＳが利用するメモリーを一時凍結してもよい。
【０１８１】
上記画像形成装置は、各画像メモリーの種別に応じて実行されるジョブおよびジョブ情報に基づいて優先度を設定するモジュールと、利用している各ゲストＯＳを特定可能なＩＤを設定することが可能な利用可能空きメモリーリストを管理するモジュールにより連携し、（転送に必要な最小限のメモリーを２セット以上有するメモリー転送機能によって）上述したメモリー量となるシステムメモリーが得られるまでファイルメモリブロック単位に合わせてメモリー転送を順次並列実施するモジュールとにより得られるシステムメモリーに対して読出されたゲストＯＳを実行するメモリー空間として割り当てメモリー転送を行なうモジュールと、メモリー転送完了後にゲストＯＳへ切り替えるモジュールと、次にホストＯＳへ切り替える場合にゲストＯＳおよび動作プログラムが利用するシステムメモリーを一時凍結するモジュールと、上述のメモリー転送モジュールによって先に転送したメモリーと順次入れ替え並列転送するモジュールと、順次転送するなかで保存された元のメモリアドレスに割り当てするモジュールと、入れ替え転送完了後にホストＯＳへ切り替えるモジュールとが、連続動作することを可能とするモジュールと、上述した読出し済みのゲストＯＳがジョブの実行により破壊されたことを協調モジュールが把握するモジュールと、ジョブ開始前に上記読出し手段で破壊されたゲストＯＳを上述した手順に従って再度読出し実施すること。
【０１８２】
上記画像形成装置は、切り替えが発生したときに、ジョブ利用によって利用可能な画像メモリーがない場合にジョブを停止させ画像メモリーを確保する。
【０１８３】
上記画像形成装置は、ゲストＯＳへ切り替えた後に、ゲストＯＳからホストＯＳではなく他のゲストＯＳに切り替えるモジュールと、ファイルメモリーのホストＯＳに関するデータを二次記憶装置へ順次並列転送するもモジュールと、ゲストＯＳおよび動作プログラムが利用するメモリーを一時凍結するモジュールと、二次記憶装置へ順次転送されたファイルメモリーに対して一時凍結したメモリーを順次並列転送するモジュールと、他のゲストＯＳが必要とするシステムメモリーになるまで先のゲストＯＳが転送完了したシステムメモリーから順次確保する手段と、他のゲストＯＳが動作可能なシステムメモリーが確保されたことで切り替えする手段とを、連続動作することを可能にするモジュールを含む。
【０１８４】
上記画像形成装置は、ホストＯＳ・ゲストＯＳともに連続するメモリー空間を優先して画像メモリーに退避する。
【０１８５】
上記画像形成装置は、画像形成装置の本体以外のシステムへのゲストＯＳマイグレーション時に退避した画像メモリーを適切に移動管理する。
【０１８６】
上記画像形成装置は、画像ホストＯＳは退避しないことを有する。すなわち、本体動作を優先する。
【０１８７】
上記画像形成装置は、ゲストＯＳ上のプログラムを他のゲストＯＳへマイグレーションを適切に行なう。
【０１８８】
上記画像形成装置は、画像形成装置および画像形成装置に接続されたデバイスをゲストＯＳが利用するための適切な初期化を行なう。
【０１８９】
上記画像形成装置は、画像形成装置を管理するサーバー型または常駐型のプログラムがゲストＯＳ構成を管理し、複数の画像形成装置および画像形成装置群で最適な構成になるように判断する。例えば、ビデオ通信プログラムや中間サーバーを必要とする認証プログラムなどが挙げられる。
【０１９０】
上記画像形成装置は、ゲストＯＳ上にユーザーごとのデスクトップ環境をもち、ジョブ内容を管理するモジュールを有していてもよい。
【０１９１】
上記画像形成装置は、ゲストＯＳ上にプログラムを提供するアプリストアーモジュールを有していてもよい。
【０１９２】
上記画像形成装置は、ゲストＯＳ上の情報（例えば、メモリー、稼働状況、ユーザー、対応ジョブ、対応ファイル、動作している画像形成装置およびサーバーなど）を操作部に表示するモジュールを有していてもよい。
【０１９３】
上記画像形成装置は、ゲストＯＳ上の要求をジョブとして受け付けるモジュールを有していてもよい。
【０１９４】
上記画像形成装置は、ゲストＯＳ上のユーザー管理情報を必要に応じて退避前に画像形成装置と共有するモジュールを有していてもよい。このような構成を採用することで、退避時に必要な情報が失われることを防止できる。
【０１９５】
上記画像形成装置は、ホストＯＳおよびゲストＯＳの動作状況を可視化する（例えば、ＡＲ（Augmented Reality））モジュールを有していてもよい。
【０１９６】
上記画像形成装置は、ゲストＯＳが提供する機能を外部端末で利用するモジュールを有していてもよい。
【０１９７】
上記画像形成装置は、画像処理ＡＳＩＣと協調動作するハードウェア協調モジュールモジュールを有していてもよい。
【０１９８】
上記画像形成装置は、協調モジュールを管理するためのＡＰＩモジュール（例えば、メモリー管理機能、優先度、シーケンス制御パラメーターなどを外部から変更可能にするＡＰＩ）を有していてもよい。
【０１９９】
上記画像形成装置は、省電力時にゲストＯＳ動作を制限するモジュールを有していてもよい。
【０２００】
＜Ｊ．まとめ＞
本実施の形態に従う画像形成装置は、ハイパーバイザーに加えて、画像形成装置１での本体ジョブ動作による画像メモリーを把握する協調モジュールを追加するとともに、ジョブ開始前にゲストＯＳを画像メモリーに先行的に読出すことで、ゲストＯＳの切り替え時の時間遅延を削減できる、それによって、全体の本体ジョブ動作時間を延ばすことなくゲストＯＳで新たな処理を実施できる。
【０２０１】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０２０２】
１  画像形成装置、２  自動原稿送り装置、３  イメージスキャナー、４  プリントエンジン、５  給紙部、２１  原稿給紙台、２２，５２，５３，５４  送出ローラー、２３  レジストローラー、２４  搬送ドラム、２５  排紙台、２６  手差給紙部、２７  転写ベルト、３３  撮像デバイス、３５  原稿台、４１Ｃ，４１Ｋ，４１Ｍ，４１Ｙ  感光体ドラム、４３Ｃ，４３Ｋ，４３Ｍ，４３Ｙ  画像書込部、４４Ｃ，４４Ｋ，４４Ｍ，４４Ｙ  イメージングユニット、４４１Ｃ，４４１Ｋ，４４１Ｍ，４４１Ｙ  トナーユニット、４５  転写器、４６  除電器、４７  定着装置、４７１  加熱ローラー、４７２  加圧ローラー、４９  ＩＤＣセンサー、５１  タイミングローラー、５５  搬送ローラー、５７  トレイ、１００  制御部、１０２  プロセッサー、１０４  内部バス、１０５，１０６，１０７，１０８  インターフェイス回路、１１０  メインメモリー、１１２  システムメモリー、１１４，１３８，１４８  画像メモリー、１１８，１３２，１４２  メモリー制御ＩＣ、１２０  圧縮／伸張ＩＣ、１３０，１４０  画像処理ＡＳＩＣ、１３４，１４４  サブメモリー、１３６  表面入力画像データバッファ、１４６  裏面入力画像データバッファ、１５０  ＨＤＤ、１５２  ハイパーバイザー、１５４  ホストＯＳ、１５６  ゲストＯＳ、１５８  アプリケーション、１５８１，１５８２，１５８３  認証アプリケーション、１５８４，１５８５，１５８６  スタブ、１６０  制御ファームウェア、１６０１  プリントアプリケーション、１６０２  スキャンアプリケーション、１６０３  ＦＡＸアプリケーション、１６０４  ＢＯＸアプリケーション、１７０  協調モジュール、１７２  空きメモリー管理モジュール、１７４  退避メモリー管理モジュール、１９２  認証デバイス、１９４  デバイス、１９６  記憶デバイス。
【図１】
0006398963.tif 000004
【図２】
0006398963.tif 000005
【図３】
0006398963.tif 000006
【図４】
0006398963.tif 000007
【図５】
0006398963.tif 000008
【図６】
0006398963.tif 000009
【図７】
0006398963.tif 000010
【図８】
0006398963.tif 000011
【図９】
0006398963.tif 000012
【図１０】
0006398963.tif 000013
【図１１】
0006398963.tif 000014
【図１２】
0006398963.tif 000015