(57)【特許請求の範囲】
【請求項１】
仮想的に定義された仮想記憶領域の一部と主記憶装置の実記憶領域とを対応付けることにより、実記憶領域よりも広い仮想記憶領域を実現する仮想記憶制御装置であって、
前記仮想記憶領域のうち前記実記憶領域に非対応の領域が要求された場合に、前記実記憶領域に保持された情報を前記主記憶装置とは異なる二次記憶装置に退避する情報退避部と、
前記要求された非対応の領域と前記退避された情報が保持されていた実記憶領域とを対応付ける記憶領域対応付け部と、
前記実記憶領域に保持された複数の情報のうち前記二次記憶装置に退避する情報を選択する際の優先度に関する情報を取得する退避優先度情報取得部と、
前記取得した優先度に関する情報に基づいて前記二次記憶装置に退避する情報を選択する退避情報選択部とを有し、
前記実記憶領域に保持された情報は、当該実記憶領域において動作する複数のプログラムであり、
前記優先度に関する情報は、予め定められた前記プログラムの前記二次記憶装置の使用有無に関する情報であり、
前記退避情報選択部は、前記二次記憶装置を使用するプログラムを優先して前記二次記憶装置に退避する情報として選択し、
前記情報退避部は、前記二次記憶装置の非稼動状態において前記非対応の領域が要求された場合に、前記二次記憶装置を稼動状態へと遷移させる処理に関する信号を発信し、前記二次記憶装置が稼働状態となった後に、前記退避情報選択部によって選択された前記実記憶領域に保持された情報を前記二次記憶装置に退避することを特徴とする、仮想記憶制御装置。
【請求項２】
前記二次記憶装置を稼動状態へと遷移させる処理に関する信号に応じて、前記二次記憶装置を稼動状態へと遷移させる二次記憶装置状態遷移部を更に有することを特徴とする、請求項１に記載の仮想記憶制御装置。
【請求項３】
前記二次記憶装置状態遷移部は、装置の動作態様に応じて前記二次記憶装置への電源供給を制限する省電力制御部を有し、
前記二次記憶装置の非稼動状態は、前記省電力制御部によって電源供給が制限された状態であることを特徴とする、請求項２に記載の仮想記憶制御装置。
【請求項４】
前記二次記憶装置状態遷移部は、オペレーティング・システムの機能によって実現されることを特徴とする、請求項２または３に記載の仮想記憶制御装置。
【請求項５】
前記二次記憶装置状態遷移部は、アプリケーション・プログラムの機能によって実現されることを特徴とする、請求項２または３に記載の仮想記憶制御装置。
【請求項６】
前記二次記憶装置を制御する二次記憶装置制御部と、
前記二次記憶装置状態遷移部の命令に応じて前記二次記憶装置制御部を動作させる二次記憶装置駆動部とを更に有することを特徴とする、請求項２乃至５いずれか１項に記載の仮想記憶制御装置。
【請求項７】
前記二次記憶装置制御部は、前記二次記憶装置状態遷移部の命令に応じて前記二次記憶装置への電源供給を制御する電源供給制御部を有することを特徴とする、請求項６に記載の仮想記憶制御装置。
【請求項８】
前記二次記憶装置制御部は、前記二次記憶装置状態遷移部の命令に応じて前記二次記憶装置を初期化する二次記憶装置初期化部を有することを特徴とする、請求項６に記載の仮想記憶制御装置。
【請求項９】
前記二次記憶装置を稼動状態から非稼動状態に遷移させる二次記憶装置稼動状態制御部を更に有し、
前記二次記憶装置稼動状態制御部は、前記二次記憶装置を稼動状態から非稼動状態に遷移させるタイミングに関する情報を有し、
前記退避情報選択部は、前記タイミングが所定の期間以内である場合に、前記取得した優先度に関する情報に基づいて前記二次記憶装置に退避する情報を選択することを特徴とする、請求項１乃至８いずれか１項に記載の仮想記憶制御装置。
【請求項１０】
仮想的に定義された仮想記憶領域の一部と主記憶装置の実記憶領域とを対応付けることにより、実記憶領域よりも広い仮想記憶領域を実現する仮想記憶制御装置であって、
前記仮想記憶領域のうち前記実記憶領域に非対応の領域が要求された場合に、前記実記憶領域に保持された情報を前記主記憶装置とは異なる二次記憶装置に退避する情報退避部と、
前記要求された非対応の領域と前記退避された情報が保持されていた実記憶領域とを対応付ける記憶領域対応付け部と、
前記実記憶領域に保持された複数の情報のうち前記二次記憶装置に退避する情報を選択する際の優先度に関する情報を取得する退避優先度情報取得部と、
前記取得した優先度に関する情報に基づいて前記二次記憶装置に退避する情報を選択する退避情報選択部とを有し、
前記実記憶領域に保持された情報は、当該実記憶領域において動作する複数のプログラムであり、
前記優先度に関する情報は、前記プログラムの前記二次記憶装置の使用履歴に関する情報であり、
前記退避情報選択部は、前記二次記憶装置の使用履歴の多いプログラムを優先して前記二次記憶装置に退避する情報として選択し、
前記情報退避部は、前記二次記憶装置の非稼動状態において前記非対応の領域が要求された場合に、前記二次記憶装置を稼動状態へと遷移させる処理に関する信号を発信し、前記二次記憶装置が稼働状態となった後に、前記退避情報選択部によって選択された前記実記憶領域に保持された情報を前記二次記憶装置に退避することを特徴とする、仮想記憶制御装置。
【請求項１１】
仮想的に定義された仮想記憶領域の一部と主記憶装置の実記憶領域とを対応付けることにより、実記憶領域よりも広い仮想記憶領域を実現する仮想記憶制御装置であって、
前記仮想記憶領域のうち前記実記憶領域に非対応の領域が要求された場合に、前記実記憶領域に保持された情報を前記主記憶装置とは異なる二次記憶装置に退避する情報退避部と、
前記要求された非対応の領域と前記退避された情報が保持されていた実記憶領域とを対応付ける記憶領域対応付け部と、
前記実記憶領域に保持された複数の情報のうち前記二次記憶装置に退避する情報を選択する際の優先度に関する情報を取得する退避優先度情報取得部と、
前記取得した優先度に関する情報に基づいて前記二次記憶装置に退避する情報を選択する退避情報選択部とを有し、
前記実記憶領域に保持された情報は、当該実記憶領域において動作する複数のプログラムであり、
前記優先度に関する情報は、前記プログラムの前記二次記憶装置の使用頻度に関する情報であり、
前記退避情報選択部は、前記二次記憶装置の使用頻度の高いプログラムを優先して前記二次記憶装置に退避する情報として選択し、
前記情報退避部は、前記二次記憶装置の非稼動状態において前記非対応の領域が要求された場合に、前記二次記憶装置を稼動状態へと遷移させる処理に関する信号を発信し、前記二次記憶装置が稼働状態となった後に、前記退避情報選択部によって選択された前記実記憶領域に保持された情報を前記二次記憶装置に退避することを特徴とする、仮想記憶制御装置。
【請求項１２】
仮想的に定義された仮想記憶領域の一部と主記憶装置の実記憶領域とを対応付けることにより、実記憶領域よりも広い仮想記憶領域を実現する仮想記憶制御方法であって、
前記二次記憶装置の非稼動状態において前記実記憶領域に非対応の領域が要求された場合に、前記二次記憶装置を稼動状態へと遷移させる処理に関する信号を発信し、
前記実記憶領域に保持された複数の情報である前記実記憶領域において動作する複数のプログラムのうち、前記二次記憶装置に退避する情報を選択する際の優先度に関する情報として、予め定められた前記プログラムの前記二次記憶装置の使用有無に関する情報を取得し、
前記取得した優先度に関する情報に基づき、前記二次記憶装置を使用するプログラムを優先して前記二次記憶装置に退避する情報として選択し、
前記二次記憶装置が稼働状態となった後に、前記選択された前記実記憶領域に保持された情報を前記二次記憶装置に退避し、
前記要求された非対応の領域と前記退避された情報が保持されていた実記憶領域とを対応付けることを特徴とする、仮想記憶制御方法。
【請求項１３】
請求項１２に記載の仮想記憶制御方法を仮想記憶制御装置に実行させることを特徴とする仮想記憶制御プログラム。
【請求項１４】
請求項１３に記載の仮想記憶制御プログラムを仮想記憶制御装置が読み取り可能な形式で記録したことを特徴とする記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想記憶制御装置、仮想記憶制御方法、仮想記憶制御プログラム及び記録媒体に関し、特に主記憶装置から二次記憶装置への情報の退避に関する。
【背景技術】
【０００２】
近年、情報の電子化が推進される傾向にあり、電子化された情報の出力に用いられるプリンタやファクシミリ、書類の電子化に用いるスキャナ等の画像処理装置は欠かせない機器となっている。このような画像処理装置は、撮像機能、画像形成機能及び通信機能等を備えることにより、プリンタ、ファクシミリ、スキャナ、複写機として利用可能な複合機として構成されることが多い。このような画像処理装置においては、上記のプリンタ、ファクシミリ、スキャナ、複写機等の夫々の機能に対応したソフトウェアが、対応するハードウェアを制御することによって夫々の機能が実行される。
【０００３】
このような画像処理装置においては、装置が所定時間使用されなかった場合等に装置の特定部位への電源供給を停止し、省電力化を図ることが行われている。電源供給が停止される部分の例としては、定着ヒータや装置全体のコントローラ等が挙げられる。このような装置の省電力化においては、電源供給を再開するタイミングの判断が重要な技術の１つとなる。電源供給再開の技術として、データの送信又は受信の開始に関する信号に基づいて電源供給を再開する方法が提案されている（例えば特許文献１参照）。特許文献１に開示された技術においては、データの送受信開始に応じて装置の一部への電源供給を再開することにより、余分な回路への電源供給再開を省き、更なる省電力化を実現する。
【０００４】
この他、従来技術に係る電源供給再開の判断要因としては、ＡＤＦ（Ａｕｔｏ  Ｄｏｃｕｍｅｎｔ  Ｆｅｅｄｅｒ）への原稿セット、操作部の操作、電源キーの操作、ＵＳＢポート若しくはＳＤポートへの挿抜、各種Ｉ／Ｆの通信及び装置各部のカバーの開閉が挙げられる。
【特許文献１】特開平７−２２６８１５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
近年、上記のような画像処理装置はＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）やＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等の主記憶装置となるメモリを備え、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）等の制御プログラム及び各種のアプリケーションプログラムにより制御されることが一般的である。このようなシステムにおいては、各種プログラムの作業領域であるメモリの制御技術として、仮想記憶技術が用いられることが多い。仮想記憶技術について、図１６を参照して説明する。図１６においては、上段に仮想記憶領域１０２ｖを示し、下段に物理記憶領域１０２ｐ、即ち実装されているメモリ等の主記憶装置の物理記憶領域を示す。図１６に示すように、仮想記憶方式においては、メモリが有する実際の物理記憶領域１０２ｐよりも大きい仮想記憶領域１０２ｖを定義する。仮想記憶領域１０２ｖと物理記憶領域１０２ｐとの対応付けは仮想記憶方式をコントロールするメモリコントローラが管理する。
【０００６】
ＣＰＵの制御により動作するプログラム３２５〜３２８は、メモリコントローラを介して仮想記憶領域１０２ｖにメモリを要求する。図１６の例においては、仮想記憶領域１０２ｖのうち実斜線で示す部分が、既にいずれかのプログラム３２５〜３２８に割り当てられた使用領域である。また、仮想記憶領域１０２ｖにおいて既に割り当てられている斜線部の記憶領域は、メモリコントローラによって物理記憶領域１０２ｐに斜線で示すようにマッピングされる。ここで、いずれかのプログラム３２５〜３２８が更に破斜線で示す領域を要求した場合を考える。
【０００７】
図に示すように、仮想記憶領域１０２ｖの破斜線で示す記憶領域の要求に対して、残りの実記憶領域１０２ｐでは記憶領域が不足する。即ち、要求された仮想記憶領域１０２ｖの一部は、実記憶領域に対応付けられていない領域であり、実際には使用不可能な領域である。この場合、メモリコントローラは、実記憶領域１０２ｐに保持されている情報をＨＤＤ１０４等の二次記憶装置に退避することにより、実記憶領域に空き領域を作る。この結果空き領域となった実記憶領域、即ち、二次記憶装置に退避された情報が保持されていた実記憶領域が、図１６に示す不足分の仮想記憶領域に新たに対応付けられる。これにより、要求された容量の記憶領域を、要求元のプログラムに割り当てることが可能となる。この動作はスワップアウト処理（スワッピング）と呼ばれる。これにより、メモリコントローラは、物理記憶領域１０２ｐよりも大きい仮想記憶領域１０２ｖを実現する。尚、メモリコントローラが物理記憶領域１０２ｐを管理する方式としては、一般的に記憶領域をページと呼ばれる単位毎の記憶領域に分けて管理するページング方式が用いられる。
【０００８】
ここで、上述した省電力技術により、ＨＤＤ１０４への電源供給が停止している場合にスワッピングが発生すると、スワッピングが完了できず情報が失われるという問題が生じる。例えば、省電力制御によりＨＤＤ１０４への電源供給が停止している間に、外部からデータを受信してスワッピングが発生すると、メモリコントローラは物理記憶領域１０２ｐの一部に格納された情報をＨＤＤ１０４へ退避し、当該記憶領域を空き領域として使用する。しかしながら、ＨＤＤ１０４への電源供給が停止しているため、ＨＤＤ１０４への退避が指示された情報は実際にはＨＤＤ１０４には格納されない。他方、物理記憶領域１０２ｐにおいて退避が指示された情報が格納されていた記憶領域は、データ受信により要求された領域として使用されるため、元の情報は失われてしまうこととなる。
【０００９】
尚、このような課題は、上述した画像処理装置に限らず、仮想記憶技術及び省電力技術を採用する情報処理装置であれば、同様に発生し得る。本発明は、上述した実情を考慮してなされたもので、二次記憶装置の省電力制御期間においても、主記憶装置から二次記憶装置への情報の退避を適正に完了可能とすることを目的とする。
【課題を解決するための手段】
【００１０】
上記の課題を解決するために、請求項１に記載の発明は、仮想的に定義された仮想記憶領域の一部と主記憶装置の実記憶領域とを対応付けることにより、実記憶領域よりも広い仮想記憶領域を実現する仮想記憶制御装置であって、前記仮想記憶領域のうち前記実記憶領域に非対応の領域が要求された場合に、前記実記憶領域に保持された情報を前記主記憶装置とは異なる二次記憶装置に退避する情報退避部と、前記要求された非対応の領域と前記退避された情報が保持されていた実記憶領域とを対応付ける記憶領域対応付け部と、前記実記憶領域に保持された複数の情報のうち前記二次記憶装置に退避する情報を選択する際の優先度に関する情報を取得する退避優先度情報取得部と、前記取得した優先度に関する情報に基づいて前記二次記憶装置に退避する情報を選択する退避情報選択部とを有し、前記実記憶領域に保持された情報は、当該実記憶領域において動作する複数のプログラムであり、前記優先度に関する情報は、予め定められた前記プログラムの前記二次記憶装置の使用有無に関する情報であり、前記退避情報選択部は、前記二次記憶装置を使用するプログラムを優先して前記二次記憶装置に退避する情報として選択し、前記情報退避部は、前記二次記憶装置の非稼動状態において前記非対応の領域が要求された場合に、前記二次記憶装置を稼動状態へと遷移させる処理に関する信号を発信し、前記二次記憶装置が稼働状態となった後に、前記退避情報選択部によって選択された前記実記憶領域に保持された情報を前記二次記憶装置に退避することを特徴とする。
【００１１】
また、請求項２に記載の発明は、請求項１に記載の仮想記憶制御装置において、前記二次記憶装置を稼動状態へと遷移させる処理に関する信号に応じて、前記二次記憶装置を稼動状態へと遷移させる二次記憶装置状態遷移部を更に有することを特徴とする。
【００１２】
また、請求項３に記載の発明は、請求項２に記載の仮想記憶制御装置において、前記二次記憶装置状態遷移部は、装置の動作態様に応じて前記二次記憶装置への電源供給を制限する省電力制御部を有し、前記二次記憶装置の非稼動状態は、前記省電力制御部によって電源供給が制限された状態であることを特徴とする。
【００１３】
また、請求項４に記載の発明は、請求項２または３に記載の仮想記憶制御装置において、前記二次記憶装置状態遷移部は、オペレーティング・システムの機能によって実現されることを特徴とする。
【００１４】
また、請求項５に記載の発明は、請求項２または３に記載の仮想記憶制御装置において、前記二次記憶装置状態遷移部は、アプリケーション・プログラムの機能によって実現されることを特徴とする。
【００１５】
また、請求項６に記載の発明は、請求項２乃至５いずれか１項に記載の仮想記憶制御装置において、前記二次記憶装置を制御する二次記憶装置制御部と、前記二次記憶装置状態遷移部の命令に応じて前記二次記憶装置制御部を動作させる二次記憶装置駆動部とを更に有することを特徴とする。
【００１６】
また、請求項７に記載の発明は、請求項６に記載の仮想記憶制御装置において、前記二次記憶装置制御部は、前記制御手段前記二次記憶装置状態遷移部の命令に応じて前記二次記憶装置への電源供給を制御する電源供給制御部を有することを特徴とする。
【００１７】
また、請求項８に記載の発明は、請求項６に記載の仮想記憶制御装置において、前記二次記憶装置制御部は、前記二次記憶装置状態遷移部の命令に応じて前記二次記憶装置を初期化する二次記憶装置初期化部を有することを特徴とする。
【００１８】
また、請求項９に記載の発明は、請求項１乃至８いずれか１項に記載の仮想記憶制御装置において、前記二次記憶装置を稼動状態から非稼動状態に遷移させる二次記憶装置稼動状態制御部を更に有し、前記二次記憶装置稼動状態制御部は、前記二次記憶装置を稼動状態から非稼動状態に遷移させるタイミングに関する情報を有し、前記退避情報選択部は、前記タイミングが所定の期間以内である場合に、前記取得した優先度に関する情報に基づいて前記二次記憶装置に退避する情報を選択することを特徴とする。
【００１９】
また、請求項１０に記載の発明は、仮想的に定義された仮想記憶領域の一部と主記憶装置の実記憶領域とを対応付けることにより、実記憶領域よりも広い仮想記憶領域を実現する仮想記憶制御装置であって、前記仮想記憶領域のうち前記実記憶領域に非対応の領域が要求された場合に、前記実記憶領域に保持された情報を前記主記憶装置とは異なる二次記憶装置に退避する情報退避部と、前記要求された非対応の領域と前記退避された情報が保持されていた実記憶領域とを対応付ける記憶領域対応付け部と、前記実記憶領域に保持された複数の情報のうち前記二次記憶装置に退避する情報を選択する際の優先度に関する情報を取得する退避優先度情報取得部と、前記取得した優先度に関する情報に基づいて前記二次記憶装置に退避する情報を選択する退避情報選択部とを有し、前記実記憶領域に保持された情報は、当該実記憶領域において動作する複数のプログラムであり、前記優先度に関する情報は、前記プログラムの前記二次記憶装置の使用履歴に関する情報であり、前記退避情報選択部は、前記二次記憶装置の使用履歴の多いプログラムを優先して前記二次記憶装置に退避する情報として選択し、前記情報退避部は、前記二次記憶装置の非稼動状態において前記非対応の領域が要求された場合に、前記二次記憶装置を稼動状態へと遷移させる処理に関する信号を発信し、前記二次記憶装置が稼働状態となった後に、前記退避情報選択部によって選択された前記実記憶領域に保持された情報を前記二次記憶装置に退避することを特徴とする。
【００２０】
また、請求項１１に記載の発明は、仮想的に定義された仮想記憶領域の一部と主記憶装置の実記憶領域とを対応付けることにより、実記憶領域よりも広い仮想記憶領域を実現する仮想記憶制御装置であって、前記仮想記憶領域のうち前記実記憶領域に非対応の領域が要求された場合に、前記実記憶領域に保持された情報を前記主記憶装置とは異なる二次記憶装置に退避する情報退避部と、前記要求された非対応の領域と前記退避された情報が保持されていた実記憶領域とを対応付ける記憶領域対応付け部と、前記実記憶領域に保持された複数の情報のうち前記二次記憶装置に退避する情報を選択する際の優先度に関する情報を取得する退避優先度情報取得部と、前記取得した優先度に関する情報に基づいて前記二次記憶装置に退避する情報を選択する退避情報選択部とを有し、前記実記憶領域に保持された情報は、当該実記憶領域において動作する複数のプログラムであり、前記優先度に関する情報は、前記プログラムの前記二次記憶装置の使用頻度に関する情報であり、前記退避情報選択部は、前記二次記憶装置の使用頻度の高いプログラムを優先して前記二次記憶装置に退避する情報として選択し、前記情報退避部は、前記二次記憶装置の非稼動状態において前記非対応の領域が要求された場合に、前記二次記憶装置を稼動状態へと遷移させる処理に関する信号を発信し、前記二次記憶装置が稼働状態となった後に、前記退避情報選択部によって選択された前記実記憶領域に保持された情報を前記二次記憶装置に退避することを特徴とする。
【００２４】
また、請求項１２に記載の発明は、仮想的に定義された仮想記憶領域の一部と主記憶装置の実記憶領域とを対応付けることにより、実記憶領域よりも広い仮想記憶領域を実現する仮想記憶制御方法であって、前記二次記憶装置の非稼動状態において前記実記憶領域に非対応の領域が要求された場合に、前記二次記憶装置を稼動状態へと遷移させる処理に関する信号を発信し、前記実記憶領域に保持された複数の情報である前記実記憶領域において動作する複数のプログラムのうち、前記二次記憶装置に退避する情報を選択する際の優先度に関する情報として、予め定められた前記プログラムの前記二次記憶装置の使用有無に関する情報を取得し、前記取得した優先度に関する情報に基づき、前記二次記憶装置を使用するプログラムを優先して前記二次記憶装置に退避する情報として選択し、前記二次記憶装置が稼働状態となった後に、前記選択された前記実記憶領域に保持された情報を前記二次記憶装置に退避し、前記要求された非対応の領域と前記退避された情報が保持されていた実記憶領域とを対応付けることを特徴とする。
【００２５】
また、請求項１３に記載の発明は、仮想記憶制御プログラムであって、請求項１２に記載の仮想記憶制御方法を仮想記憶制御装置に実行させることを特徴とする。
【００２６】
また、請求項１４に記載の発明は、記録媒体であって、請求項１３に記載の仮想記憶制御プログラムを仮想記憶制御装置が読み取り可能な形式で記録したことを特徴とする。
【発明の効果】
【００２９】
本発明によれば、仮想記憶制御装置において、二次記憶装置の省電力制御期間であっても、主記憶装置から二次記憶装置への情報の退避を適正に完了することが可能となる。
【発明を実施するための最良の形態】
【００３０】
以下、図面を参照して、本発明の実施形態を詳細に説明する。
以下の説明においては、本発明に係る仮想記憶制御装置の例として、当該仮想記憶制御機能を有する画像処理装置を例として説明する。
【００３１】
実施の形態１．
図１は、本実施例に係る画像処理装置１のハードウェア構成を示すブロック図である。図１に示すように、本実施例に係る画像処理装置１は、コントローラ１００及びエンジン２００を有する。コントローラ１００は、ソフト制御部１００ａとメカ制御部１００ｂとを有する。ソフト制御部１００ａは、主として信号の入出力等のソフトウェア制御を実行する。また、メカ制御部１００ｂは、エンジン２００等の機械的な駆動を制御する。
【００３２】
ソフト制御部１００ａは、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０２、システムコントロールＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）１０３、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１０５、可搬型記録媒体Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）１０７、入出力・省電力制御ＡＳＩＣ１０８、オペレーションパネルＩ／Ｆ１０９、ＨＯＳＴ  Ｉ／Ｆ１１０、ＮＶＲＡＭ（Ｎｏｎ  Ｖｏｌａｔｉｌｅ  ＲＡＭ）１１１、オプションＩ／Ｆ１１２及び電源制御部１１３を有する。メカ制御部１００ｂは、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）１０４及び画像処理部１０６を有する。また、エンジン２００は、エンジンコントローラ２０１、スキャンエンジン２０２及プリントエンジン２０３を有する。
【００３３】
ＲＡＭ１０２は一般的にＤＲＡＭ等の揮発性メモリによって構成されるメインメモリであり、主記憶装置として機能する。ＲＯＭ１０５に格納されたファームウェア等の制御プログラムや、ＮＶＲＡＭ１１１、ＨＤＤ１０４に格納された情報がシステムコントロールＡＳＩＣ１０３を介してＲＡＭ１０２にロードされ、ＣＰＵ１０１の制御に従って動作することにより画像処理装置１の制御部が構成される。即ち、ＣＰＵ１０１は演算部として動作し、システムコントロールＡＳＩＣ１０３は、主にＣＰＵ１０１とＲＡＭ１０２との間の信号伝達を行う。また、システムコントロールＡＳＩＣ１０３は、ＲＡＭ１０２のアドレス管理等を行うＭＭＵ（Ｍｅｍｏｒｙ  Ｍａｎａｇｅｍｅｎｔ  Ｕｎｉｔ）１０３ａを有する。従来技術の図１６において説明した、仮想記憶領域と実記憶領域とのマッピング（対応関係）情報は、ＭＭＵ１０３ａが保持している。ＲＡＭ１０２にロードされて動作するプログラムは、上述したファームウェア等の制御プログラムの他、画像処理プログラムやエンジン２００を制御するアプリケーション等である。
【００３４】
ＨＤＤ１０４は、磁気ディスク記録装置であり、画像処理装置１が画像情報を処理する際の情報スプール先として用いられる。また、ＨＤＤ１０４は、蓄積文書、追加のフォント及び情報送信先の宛先情報等が格納されている。ＲＯＭ１０５は、読み出し専用の記録媒体であり、上述したように、ファームウェア等の制御プログラムが格納される。画像処理ＡＳＩＣ１０６は、ＲＡＭ１０２において動作する画像処理プログラムによって処理された後の画像に更に処理を加えるハードウェアである。また、画像処理ＡＳＩＣ１０６は、ＨＤＤ１０４を制御するＨＤＤコントローラも含む。画像処理ＡＳＩＣ１０６が実行する処理としては、画像の回転処理や割り付け処理等である。画像処理ＡＳＩＣ１０６によって処理された画像データがエンジン２００に入力される。
【００３５】
可搬型記録媒体Ｉ／Ｆ１０７は、可搬型記録媒体をコントローラ１００に接続するインタフェースである。ここで用いられる可搬型記録媒体は、例えば、磁気テープやカセットテープ及びフロッピー（登録商標）ディスク等の磁気記録媒体やＣＤ、ＭＯ、ＭＤ、ＤＶＤ等の光ディスク、ＰＣカード、コンパクトフラッシュ（登録商標）カード、スマートメディア（登録商標）、ＩＣカード、ＳＤカード（登録商標）、メモリースティック（登録商標）、ＵＳＢメモリ等、着脱可能な記録媒体である。
【００３６】
入出力・省電力制御ＡＳＩＣ１０８は、その内部にＣＰＵ１０１とは異なるサブＣＰＵ、ＲＡＭ等のメモリを有し、ＲＯＭや不揮発性メモリ並びにＨＤＤや光学ディスク等の不揮発性記録媒体に格納されたファームウェア等の制御プログラムが、ＲＡＭにロードされ、サブＣＰＵの制御に従って構成されるソフトウェア制御部とＡＳＩＣ１０８内部に含まれる他のハードウェアとが連動することによって機能する。入出力・省電力制御ＡＳＩＣ１０８は、可搬型記録媒体１０７、可搬型記録媒体Ｉ／Ｆ１０７、オペレーションパネルＩ／Ｆ１０９、ＨＯＳＴ  Ｉ／Ｆ１１０、ＮＶＲＡＭ１１１、オプションＩ／Ｆ１１２及び電源制御部１１３とシステムコントロールＡＳＩＣ１０３との間で情報を伝達すると共に、それらの情報伝達状態に基づいて電源制御部１１３を制御して省電力状態を制御する。入出力・省電力制御ＡＳＩＣの機能については後に詳述する。
【００３７】
オペレーションパネルＩ／Ｆ１０９は、ユーザが画像処理装置１を直接操作すると共に画像処理装置１の状態を視覚的に確認する表示部となる操作パネルを接続するインタフェースである。ＨＯＳＴ  Ｉ／Ｆ１１０は、画像処理装置１がＰＣ等のホスト装置と接続するためのインタフェースである。ＨＯＳＴ  Ｉ／Ｆ１１０としては、例えばＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）インタフェースや、イーサネット（登録商標）インタフェース等が用いられる。ＮＶＲＡＭ１１１は、不揮発性のメモリであり、主に画像形成装置１の動作環境や動作履歴に関する情報が格納される。
【００３８】
オプションＩ／Ｆ１１２は、画像処理装置１に他のオプション機器を接続するためのインタフェースである。オプションＩ／Ｆ１１２の運用方法としては、例えば更に一台の画像形成装置を接続し、一の印刷ジョブを複数の画像形成装置で分割して出力する態様や、画像形成後の後処理装置を接続すること等が挙げられる。また、ＦＣＵ（Ｆａｃｓｉｍｉｌｅ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）を接続し、画像処理装置１をファクシミリとして動作させることもできる。電源制御部１１３は、コントローラ１００及びエンジン２００各部に電源を供給している。電源制御部１１３は、で夫々のハードウェア毎に電源供給の有無を切り換えることが可能であり、入出力・省電力制御ＡＳＩＣの制御に基づいて夫々のハードウェアへの電源供給有無を切り換える。
【００３９】
次に、図２を参照して、本実施形態に係るコントローラ１００について更に説明する。図２は、ＲＯＭ１０５に格納されている各種プログラムがＲＡＭ１０２にロードされ、ＣＰＵ１０１の制御によって動作するソフトウェア３００及び当該ソフトウェア３００によって制御されるハードウェアを模式的に示す図である。図２に示すように、本実施形態に係るソフトウェア３００は、カーネル３３０を含むＯＳ３１０とアプリケーション３２０とを有する。
【００４０】
カーネル３３０は、ＯＳ３１０において中核となる部分であり、ＯＳ３１０やアプリケーション３２０とハードウェアとのやり取りを制御する。カーネル３３０は、ＭＭＵ１０３ａにアクセスしてＲＡＭ１０２を制御するメモリ管理ソフトウェア３３１と、ＨＤＤ１０４や電源制御部１１３を制御するデバイスドライバ３３２とを有する。また、デバイスドライバ３３２は、デバイス管理ソフトウェア３３３及び電源管理ソフトウェア３３４を有する。メモリ管理ソフトウェア３３１は、アプリケーション３２０の要求に応じて夫々のアプリケーションにＲＡＭ１０２のメモリ領域を割り当て、またアプリケーション３２０においれ不要となったメモリを開放する。また、メモリ管理ソフトウェア３３１は、従来技術の図１６において説明した仮想記憶方式を実現する。仮想記憶方式におけるメモリ管理ソフトウェア３３１のスワップ処理が本実施形態の特徴の１つである。
【００４１】
デバイス管理ソフトウェア３３３は、ＨＤＤ１０４への情報記録やＨＤＤ１０４からの情報の読み出しを制御する。また、デバイス管理ソフトウェア３３３は、ＲＯＭ１０５可搬型記録媒体Ｉ／Ｆ１０７、ＮＶＲＡＭ１１１等の記録媒体へのアクセスを制御する機能を含む。電源管理ソフトウェア３３４は、電源制御部１１３を管理して夫々のハードウェアへの電源供給を制御する。この他、デバイスドライバ３３２は、図１に示す各ハードウェアを制御する機能を実現するソフトウェアを含む。
【００４２】
アプリケーション３２０は、当該装置の省電力状態を制御する省電力制御プログラム３２１、プリントエンジン２０３を制御してプリントアウトを実行するプリントアプリケーション３２２、スキャナエンジン２０２を制御してスキャンを実行するスキャンアプリケーション３２３及び装置外部との情報の入出力を制御する入出力アプリケーション３２４を有する。ＯＳ３１０は、カーネル３３０の他、省電力制御ライブラリ３１１を有する。省電力制御ライブラリ３１１は、省電力制御プログラム３２１の命令を受け、デバイスドライバ３３２から省電力制御に必要なデバイス管理ソフトウェア３３３及び電源管理ソフトウェア３３４を呼び出す。即ち、省電力制御ライブラリ３１１が、ＨＤＤ１０４等の二次記憶装置を稼動状態から非稼動状態へと遷移させる二次記憶装置稼動状態制御部として機能する。
【００４３】
次に、本実施形態に係る画像処理装置１の省電力状態について説明する。本実施形態に係る画像処理装置１は、電源供給部位の違いにより、複数種類の省電力状態を有する。図３は、本実施形態に係る画像処理装置１の省電力状態の一態様を示す図であり、図１と同様にハードウェア構成を示すブロック図である。図３においては、電源が供給されていないハードウェアのブロックは斜線を付して示されている。図３の状態においては、メカ制御部１００ｂ及びエンジン２００への電源供給が停止しており、これにより消費電力を低減することが可能となる。また、図３の状態においては、ソフト制御部１００ａには電源が供給されているため、省電力状態として消費電力を低減しながら継続してソフトウェアを動作させることが可能となる。
【００４４】
図４は、図３とは異なる省電力状態の態様を示す図である。図４においても、電源が供給されていないハードウェアのブロックは斜線を付して示されている。図４の状態においては、図３の状態において電源が供給されている部位に加えて、メカ制御部１００ｂの画像処理ＡＳＩＣ１０６及びＨＤＤ１０４に電源が供給されている。この場合、図３の状態よりも消費電力が増大するが、図３の状態において可能であったソフトウェア動作に加えて、ＨＤＤ１０４へのアクセスも可能となる。図３及び図４に示す省電力状態への遷移は、省電力制御プログラム３２１によって実行される。
【００４５】
このような画像処理装置１において、本実施形態の特徴は、図３に示す省電力状態において、スワッピングが発生する場合の動作にある。以下、本実施形態に係る画像処理装置１のスワッピング動作について説明する。図５は、本実施形態に係る画像処理装置１のスワッピング動作を示すシーケンス図である。図５の例においては、画像処理装置１の図３に示す省電力状態において外部からアクセスがあり、入出力アプリケーション３２４が新たなメモリ領域を要求した場合の例を示す。図６は、図５に示す夫々の処理を図２に示す機能ブロック上において示した図である。
【００４６】
図５に示すように、画像処理装置１に対して外部からアクセスがあり、入出力アプリケーション３２４が動作のための新たなメモリ領域をメモリ管理ソフトウェア３３１に要求すると（Ｓ５０１）、メモリ管理ソフトウェア３３１は、メモリ確保のためにＭＭＵ１０３ａにアクセスする（Ｓ５０２）。メモリ管理ソフトウェア３３１がＭＭＵ１０３ａにアクセスした結果、図１６に示すように要求したメモリ容量に対してＲＡＭ１０２の空き領域が不足している場合、ＭＭＵ１０３ａにおいてページフォルトが発生し、メモリ管理ソフトウェア３３１はそれを検出する（Ｓ５０３）。ページフォルトが発生した場合の通常動作として、ＭＭＵ１０３ａはスワッピングを実行してＲＡＭ１０２の空き領域を確保する。しかしながら、メモリ管理ソフトウェア３３１は、ＨＤＤ１０４に電源が供給されていない状態においてページフォルトの発生を検出すると、ＭＭＵ１０３ａにスワッピングの実行を待機させる。
【００４７】
メモリ管理ソフトウェア３３１は、ＭＭＵ１０３ａにスワッピング実行を待機させた上で、省電力制御プログラム３２１にウェイクアップ信号を送信する（Ｓ５０４）。このウェイクアップ信号は、非稼動状態であるＨＤＤ１０４を稼動状態へと遷移させるために、メモリ管理ソフトウェア３３１が発信する信号であり、ＨＤＤ１０４を指定する情報が含まれる。メモリ管理ソフトウェア３３１からウェイクアップ信号を受信することにより、休止状態であった省電力制御プログラム３２１は動作を開始する。省電力制御プログラム３２１は、メモリ管理ソフトウェア３３１からのウェイクアップ信号により動作を開始すると、ＨＤＤ１０４の復帰要求を送信する（Ｓ５０５）。省電力制御プログラム３２１が発信した復帰要求は、ＯＳ３１０の省電力制御ライブラリ３１１によって解釈される。省電力制御プログラム３２１が発信する復帰要求により、デバイスドライバ３３２が動作し、ＨＤＤ１０４が稼動状態へと遷移する。即ち、省電力制御プログラム３２１は、二次記憶装置状態遷移部として機能し、デバイスドライバ３３２が二次記憶装置制御部として機能する。
【００４８】
省電力制御ライブラリ３１１は、ＨＤＤ１０４の復帰に際して必要となる電源管理ソフトウェア３３２及びデバイス管理ソフトウェア３３３をデバイスドライバ３３２から呼び出す（Ｓ５０６）。即ち、省電力制御ライブラリ３１１は、二次記憶装置駆動部として機能する。省電力制御ライブラリ３１１によって呼び出された電源管理ソフトウェア３３４は、ＨＤＤ１０４への電源供給を開始し（Ｓ５０７）、省電力制御プログラム３２１に通知する。即ち、電源管理ソフトウェア３３４が、電源供給制御部として機能する。また、デバイス管理ソフトウェア３３３は、ＨＤＤ１０４の初期化処理を行い（Ｓ５０８）、省電力制御プログラム３２１に通知する。即ち、デバイス管理ソフトウェア３３３が、二次記憶装置初期化部として機能する。
【００４９】
ＨＤＤ１０４への電源供給の再開及びＨＤＤ１０４の初期化処理の通知を受けた省電力制御プログラム３２１は、メモリ管理ソフトウェア３３１に対して復帰完了通知を送信する（Ｓ５０９）。省電力制御プログラム３２１は、メモリ管理ソフトウェア３３１に対して復帰完了通知を送信することにより、再び休止状態となる。復帰完了通知を受けたメモリ管理ソフトウェア３３１は、ＭＭＵ１０３ａに待機させていたスワッピングを実行させる（Ｓ５１０）。これにより、図１６において説明したように、メモリ管理ソフトウェア３３１は、入手力アプリケーション３２４から要求されたメモリを確保し（Ｓ５１１）、入出力アプリケーション３２４に通知する。即ち、メモリ管理ソフトウェア３３１が、情報退避部及び記憶領域対応付け部として機能する。このような処理により、画像処理装置１は、ＨＤＤ１０４への電源供給が停止している間のスワップ処理の発生にも対応することが可能となる。
【００５０】
次に、図５の動作におけるメモリ管理ソフトウェア３３１の処理について説明する。図７は、図５の動作におけるメモリ管理ソフトウェア３３１の処理を示すフローチャートである。メモリ管理ソフトウェア３３１は、入出力アプリケーション３２４からメモリ要求を受信すると（Ｓ７０１）、要求されたメモリ領域を確保するためにＭＭＵ１０３ａにアクセスする（Ｓ７０２）。ＭＭＵ１０３ａがメモリ領域の確保を試みた結果、ＲＡＭ１０２の実記憶領域にマッピングされていない仮想記憶領域にアクセスし、ページフォルトが発生すると（Ｓ７０３／ＹＥＳ）、メモリ管理ソフトウェア３３１は、ＨＤＤ１０４に電源が供給されているか否か、即ちＨＤＤ１０４が省電力状態であるか否かを確認する（Ｓ７０４）。他方、ページフォルトが発生しない場合（Ｓ７０３／ＮＯ）、メモリ管理ソフトウェア３３１は、ＭＭＵ１０３ａを介してメモリを確保し（Ｓ７０９）、処理を終了する。
【００５１】
ＨＤＤ１０４が省電力状態である場合（Ｓ７０４／ＹＥＳ）、メモリ管理ソフトウェア３３１は、ＭＭＵ１０３ａにスワップ処理を待機させ（Ｓ７０５）、省電力制御プログラム３２１に対してウェイクアップ信号を送信する（Ｓ７０６）。その後、メモリ管理ソフトウェア３３１は省電力制御プログラム３２１から復帰完了通知を受信するまで待機する（Ｓ７０７／ＮＯ）。復帰が完了した場合（Ｓ７０７／ＹＥＳ）若しくはＨＤＤが省電力状態ではなかった場合（Ｓ７０４／ＮＯ）、ＭＭＵ１０３ａにスワップ処理を実行させる（Ｓ７０８）。スワップ処理により、メモリの確保が可能となり、メモリ管理ソフトウェア３３１は確保したメモリ領域を入出力アプリケーション３２４に通知して（Ｓ７０９）処理を終了する。
【００５２】
以上説明したように、本実施形態に係る画像処理装置１の省電力制御方法においては、ＨＤＤ１０４への電源供給停止時にページフォルトが発生し、ＲＡＭ１０２が保持している情報をＨＤＤ１０４に退避するスワップ処理の必要が生じた場合に、スワップ処理を待機させた状態で先にＨＤＤ１０４への電源供給を再開してＨＤＤ１０４を起動する。これにより、スワップ処理が失敗してＨＤＤ１０４へ退避されるべき情報が失われてしまうことを防ぐことができる。
【００５３】
尚、上記の説明においては、図５において説明したように、入出力アプリケーション３２２がメモリ管理ソフトウェア３３１にメモリ領域を要求する場合を例として説明したが、プリントアプリケーション３２２及びスキャンアプリケーション３２３や、図示しないその他のアプリケーションの場合も同様に適用可能である。また、アプリケーション３２０がメモリ領域を要求する場合に限らず、他のソフトウェアがメモリ領域を要求する場合であっても同様に適用可能である。
【００５４】
また、上記の説明においては、ＲＡＭ１０２が保持している情報の退避先である二次記憶装置としてＨＤＤ１０４を用いる例を説明した。この他、ＮＶＲＡＭ１１１を二次記憶装置として用いても良いし、他の一般的な記憶装置であれば用いることが可能である。ここで、本実施形態においては、二次記憶装置が省電力制御の対象となることが前提であるため、不揮発性の記憶媒体を有する記憶装置を二次記憶装置として用いることが好ましい。また、省電力制御による消費電力の低減効果から、ＨＤＤ１０４のように、機械的に駆動される構成を有する記憶装置を二次記憶装置として用いる場合に、より本発明の効果を得ることができる。
【００５５】
また、上記の説明においては、メモリ管理ソフトウェア３３１がＭＭＵ１０３ａにアクセスし、ＭＭＵ１０３ａにおいてページフォルトが発生したことをメモリ管理ソフトウェア３３１が検出してＨＤＤ１０４のウェイクアップ信号を発信する例を説明した。この他、メモリ管理ソフトウェア３３１が、メモリの空きページ情報を保持している場合、他の態様が可能となる。例えば、メモリ管理ソフトウェア３３１が、保持している空きページ領域以上の領域の要求を受信した場合、ページフォルトが発生することを予想してＨＤＤ１０４のウェイクアップ信号を送信するようにしても良い。この場合、メモリ管理ソフトウェア３３１がＭＭＵ１０３ａにアクセスする前にウェイクアップ信号を送信することができるため、ＨＤＤ１０４の起動完了までに要する時間を短縮することが可能であり、アプリケーション３２０から要求されたメモリの確保を迅速に完了することが可能となる。
【００５６】
実施の形態２．
実施の形態１においては、アプリケーション３２０として省電力制御プログラム３２１が動作し、省電力制御プログラム３２１がメモリ管理ソフトウェア３３１のウェイクアップ信号を受信してＨＤＤ１０４の復帰動作を行う例を説明した。本実施形態においては、省電力制御プログラム３２１に対応する機能をＯＳ３１０が実現する例を説明する。尚、実施の形態１と同様の符号を付す構成については実施の形態１と同一又は相当部を示し、説明を省略する。
【００５７】
本実施形態に係る画像処理装置１のハードウェア構成は、実施の形態１の図１において説明した態様と略同一である。図８に本実施形態に係るソフトウェア３００及び当該ソフトウェア３００によって制御されるハードウェアを模式的に示す。図８に示すように、本実施形態に係るソフトウェア３００は、実施の形態１の図２において説明した態様と同様に、カーネル３３０を含むＯＳ３１０とアプリケーション３２０とを有する。ここで、本実施形態においては、カーネル３３０がＨＤ起動ライブラリ３３５を有する。ＨＤＤ起動ライブラリ３３５は、電源供給が停止された状態や、電源供給が制限された状態等の非稼動状態のＨＤＤ１０４を起動するために必要なデバイス管理ソフトウェア３３３及び電源管理ソフトウェア３３４を呼び出す。
【００５８】
次に、本実施形態に係る画像処理装置１のスワッピング動作について説明する。図９は、本実施形態に係る画像処理装置１のスワッピング動作を示すシーケンス図である。図９の例においても、実施の形態１と同様に、画像処理装置１の図３に示す省電力状態において外部からアクセスがあり、入出力アプリケーション３２４が新たなメモリ領域を要求した場合の例を示す。図１０は、図９に示す夫々の処理を図８に示す機能ブロック上において示した図である。
【００５９】
図９に示すように、画像処理装置１に対して外部からアクセスがあり、入出力アプリケーション３２４が動作のための新たなメモリ領域をメモリ管理ソフトウェア３３１に要求すると（Ｓ９０１）、メモリ管理ソフトウェア３３１は、メモリ確保のためにＭＭＵ１０３ａにアクセスする（Ｓ９０２）。メモリ管理ソフトウェア３３１がＭＭＵ１０３ａにアクセスした結果、図１６に示すように要求したメモリ容量に対してＲＡＭ１０２の空き領域が不足している場合、ＭＭＵ１０３ａにおいてページフォルトが発生し、メモリ管理ソフトウェア３３１はそれを検出する（Ｓ９０３）。ページフォルトが発生した場合の通常動作として、ＭＭＵ１０３ａはスワッピングを実行してＲＡＭ１０２の空き領域を確保する。しかしながら、メモリ管理ソフトウェア３３１は、ＨＤＤ１０４に電源が供給されていない状態においてページフォルトの発生を検出すると、ＭＭＵ１０３ａにスワッピングの実行を待機させる。
【００６０】
メモリ管理ソフトウェア３３１は、ＭＭＵ１０３ａにスワッピング実行を待機させた上で、ＨＤＤ起動ライブラリ３３５にＨＤＤ１０４の復帰要求を送信する（Ｓ９０４）。即ち、本実施形態においては、メモリ管理ソフトウェア３３１が二次記憶装置状態遷移部として機能する。ＨＤＤ起動ライブラリ３３５は、ＨＤＤ１０４の復帰に際して必要となる電源管理ソフトウェア３３２及びデバイス管理ソフトウェア３３３をデバイスドライバ３３２から呼び出す（Ｓ９０５）。即ち、本実施形態においては、ＨＤＤ起動ライブラリ３３５が、二次記憶装置駆動部として機能する。ＨＤＤ起動ライブラリ３３５によって呼び出された電源管理ソフトウェア３３４は、ＨＤＤ１０４への電源供給を開始し（Ｓ９０６）、メモリ管理ソフトウェア３３１に通知する。また、デバイス管理ソフトウェア３３３は、ＨＤＤ１０４の初期化処理を行い（Ｓ９０７）、メモリ管理ソフトウェア３３１に通知する。
【００６１】
ＨＤＤ１０４への電源供給の再開及びＨＤＤ１０４の初期化処理の通知を受けたメモリ管理ソフトウェア３３１は、ＭＭＵ１０３ａに待機させていたスワッピングを実行させる（Ｓ９０８）。これにより、メモリ管理ソフトウェア３３１は、入手力アプリケーション３２４から要求されたメモリを確保し（Ｓ９０９）、入出力アプリケーション３２４に通知する。このような処理により、画像処理装置１は、ＨＤＤ１０４への電源供給が停止している間のスワップ処理の発生にも対応することが可能となる。
【００６２】
図１１は、図９の動作におけるメモリ管理ソフトウェア３３１の処理を示すフローチャートである。メモリ管理ソフトウェア３３１は、入出力アプリケーション３２４からメモリ要求を受信すると（Ｓ１１０１）、要求されたメモリ領域を確保するためにＭＭＵ１０３ａにアクセスする（Ｓ１１０２）。ＭＭＵ１０３ａがメモリ領域の確保を試みた結果、ＲＡＭ１０２の実記憶領域にマッピングされていない仮想記憶領域にアクセスし、ページフォルトが発生すると（Ｓ１１０３／ＹＥＳ）、メモリ管理ソフトウェア３３１は、ＨＤＤ１０４に電源が供給されているか否か、即ちＨＤＤ１０４が省電力状態であるか否かを確認する（Ｓ７０４）。他方、ページフォルトが発生しない場合（Ｓ１１０３／ＮＯ）、メモリ管理ソフトウェア３３１は、ＭＭＵ１０３ａを介してメモリを確保し（Ｓ１１０９）、処理を終了する。
【００６３】
ＨＤＤ１０４が省電力状態である場合（Ｓ１１０４／ＹＥＳ）、メモリ管理ソフトウェア３３１は、ＭＭＵ１０３ａにスワップ処理を待機させ（Ｓ１１０５）、ＨＤＤ起動ライブラリ３３５に対して復帰要求を送信する（Ｓ１１０６）。その後、メモリ管理ソフトウェア３３１はデバイスドライバ３３２から復帰完了通知を受信するまで待機する（Ｓ１１０７／ＮＯ）。復帰が完了した場合（Ｓ１１０７／ＹＥＳ）若しくはＨＤＤが省電力状態ではなかった場合（Ｓ１１０４／ＮＯ）、ＭＭＵ１０３ａにスワップ処理を実行させる（Ｓ１１０８）。スワップ処理により、メモリの確保が可能となり、メモリ管理ソフトウェア３３１は確保したメモリ領域を入出力アプリケーション３２４に通知して（Ｓ１１０９）処理を終了する。
【００６４】
以上説明したように、実施の形態１と同様の効果を、ＯＳ３１０若しくはカーネル３３０の処理だけで得ることが可能となる。これにより、入出力アプリケーション３２４等のアプリケーション３２０は、電源管理について考慮する必要がないため、アプリケーション３２０のＯＳ３１０への依存性を低くすることが可能となる。
【００６５】
実施の形態１においては、ＨＤＤ１０４の稼動／非稼動を制御する省電力制御プログラム３２１を介して、スワップ時のＨＤＤ１０４の臨時起動を制御することにより、本発明の適用をより容易に行うことが可能である。これに対して、本実施形態においては、省電力制御プログラム３２１によって稼動／非稼動制御されているＨＤＤ１０４を臨時に稼動状態へと遷移させる機能をメモリ管理ソフトウェア３３１が有する。これにより、メモリ管理ソフトウェア３３１がページフォルトの発生を検出してからＨＤＤ１０４を起動制御するまでの情報伝達を簡略化し、スワップ処理を迅速に完了することが可能となる。
【００６６】
尚、上記の説明においては、カーネル３３０にＨＤＤ起動ライブラリ３３５を設ける例を説明した。この他、メモリ管理ソフトウェア３３１が省電力制御ライブラリ３１１に復帰要求を送信するようにしてもよい。この場合であっても、スワップ処理に際するＨＤＤ１０４の起動処理がＯＳ３１０の外側に及ぶことはなく、ＯＳ３１０の処理だけで上記と同様の効果を得ることが可能となる。
【００６７】
実施の形態３．
本実施形態においては、ページング方式による仮想記憶制御においてページフォルトが発生した場合の、二次記憶装置への情報の退避処理、即ちスワップアウト処理の優先度に特徴を有する制御方法を説明する。尚、実施の形態１または２と同様の符号を付す構成については実施の形態１または２と同一又は相当部を示し、説明を省略する。ＯＳ３１０はＲＡＭ１０２上で動作するアプリケーション３２０等の各プログラムが、ＣＰＵ１０１のリソースを使用する使用権をスケジューリングする機能を有している。このスケジューリングは、ＲＡＭ１０２上で動作しているプログラムの動作状態に基づいて実行される。他方、ページフォルトが発生した際にＲＡＭ１０２の実記憶領域からＨＤＤ１０４に退避されるのは、ＲＡＭ１０２上で動作する各プログラムである。ページフォルトが発生した際に、ＲＡＭ１０２からＨＤＤ１０４に退避されるプログラムの優先度も、各プログラムの動作状態に基づいて決定されるのが一般的である。
【００６８】
図１２に、ＲＡＭ１０２上で動作するプログラムの動作状態の表を示す。図１２に示すパラメータのうち、“ＣＰＵ時間”、“メモリ保有時間”、“メモリサイズ”といったパラメータは、従来においても取得され、参照されていたパラメータである。本実施形態においては、図１２に示すように更に“ＨＤＤの使用履歴”をパラメータとして取得する。図１２においては、ＨＤＤの使用履歴を“無し”、“多い”、“少ない”の３つの状態で示しているが、これは、各プログラムがＨＤＤ１０４にアクセスした回数や、ＨＤＤ１０４から読み出した情報量若しくはＨＤＤ１０４に書き込んだ情報量等により判断される。
【００６９】
従来のスワップアウト処理の優先度決定方法においては、図１２に示すプログラムＢ、プログラムＣがＨＤＤ１０４に退避される優先度は低い。これは、プログラムＢ、プログラムＣの“ＣＰＵ時間”、“メモリ保有時間”及び“メモリサイズ”等のパラメータから、プログラムＢ、プログラムＣをＨＤＤ１０４に退避しても、開放されるＲＡＭ１０２の実記憶領域が小さいと判断されるからである。他方、プログラムＡがＨＤＤ１０４に退避された場合、開放されるＲＡＭ１０２の実記憶領域が大きいと判断されるため、従来のスワップアウト優先度決定方法においては、プログラムＡは優先的にＨＤＤ１０４に退避される。
【００７０】
ここで、ＨＤＤ１０４が省電力状態である場合を考える。ＨＤＤ１０４が省電力状態である期間は、ＨＤＤ１０４へのアクセスが発生していない期間であると考えられる。従って、図１２に示すプログラムＢ、プログラムＣのように、“ＨＤＤ使用履歴”のパラメータが“多い”、“少ない”等の、ＨＤＤ１０４を使用するプログラムは、ＨＤＤ１０４が省電力状態である期間が動作していないと考えられる。仮に、ＨＤＤ１０４へのアクセスが頻繁に発生するプログラムが動作している状態でＨＤＤ１０４を省電力状態としても、ＨＤＤ１０４へのアクセスが発生した時点でＨＤＤ１０４の省電力状態は解除されるからである。
【００７１】
他方、プログラムＡのように“ＨＤＤ使用履歴”のパラメータが“無し”であるプログラムは、ＨＤＤ１０４が省電力状態であっても動作している可能性が高いと考えられる。このようなプログラムをＨＤＤ１０４に退避した場合、再度当該プログラムを動作させるためには、ＨＤＤ１０４に退避した情報を再度ＲＡＭ１０２に読み出すスワップイン処理が必要となり、システムのパフォーマンスに影響する。また、このようなプログラムをＨＤＤ１０４に退避した後、ＨＤＤ１０４が省電力状態に遷移した場合であっても、当該プログラムが動作するためには、ＨＤＤ１０４からのスワップイン処理が必要であるため、ＨＤＤ１０４の省電力状態を解除する必要があり、ＨＤＤ１０４の省電力制御が非効率なものとなってしまう。
【００７２】
このような課題に対して、本実施形態に係るスワップアウト処理の優先度決定方法においては、図１２に示す“ＨＤＤ使用履歴”のパラメータを参照し、使用履歴の多いプログラムを優先的にＨＤＤ１０４に退避する。これにより、ＨＤＤ１０４が省電力状態となった場合に、動作していないプログラムを優先的にＨＤＤ１０４に退避し、ＨＤＤ１０４が省電力状態であっても動作している可能性の高いプログラムを優先的にＲＡＭ１０２に残すことができる。これにより、ＨＤＤ１０４の省電力状態におけるページフォルトの発生を抑制し、ＨＤＤ１０４の省電力効果及びシステムのパフォーマンスを向上することができる。
【００７３】
本実施形態に係る画像処理装置１のハードウェア構成は、実施の形態１の図１において説明した態様と略同一である。図１３に本実施形態に係るソフトウェア３００及び当該ソフトウェア３００によって制御されるハードウェアを模式的に示す。図１３に示すように、本実施形態に係るソフトウェア３００は、実施の形態１の態様と概ね同一である。ここで、本実施形態に係るＯＳ３１０は、実施の形態１の態様に加えてタスクマネージャ３１２を有する。タスクマネージャ３１２は、メモリ管理ソフトウェア３３１によって管理され、ＲＡＭ１０２上で動作する各プログラムの動作態様を図１２に示すようなテーブルとして管理する。
【００７４】
次に、図１４を参照して、本実施形態に係るスワップアウト処理の優先度決定動作について説明する。図１４は、本実施形態に係るスワップアウト処理の動作を示すフローチャートである。メモリ管理ソフトウェア３３１は、ページフォルトの発生を検出すると（Ｓ１４０１）、ＨＤＤ１０４に電源が供給されているか否か、即ちＨＤＤ１０４が省電力状態であるか否かを確認する（Ｓ１４０２）。ＨＤＤ１０４が省電力状態である場合（Ｓ１４０２／ＹＥＳ）、メモリ管理ソフトウェア３３１は、ＭＭＵ１０３ａにスワップ処理を待機させ（Ｓ１４０３）、省電力制御プログラム３２１に対してウェイクアップ信号を送信する（Ｓ１４０４）。その後、メモリ管理ソフトウェア３３１は省電力制御プログラム３２１から復帰完了通知を受信するまで待機する（Ｓ１４０５／ＮＯ）。
【００７５】
ＨＤＤ１０４の復帰が完了した場合（Ｓ１４０５／ＹＥＳ）、メモリ管理ソフトウェア３３１は、タスクマネージャ３１２を参照し（Ｓ１４０６）、ＲＡＭ１２０にロードされているプログラムの、スワップアウトの優先順位を決定する（Ｓ１４０７）。即ち、メモリ管理ソフトウェア３３１が、退避優先度情報取得部及び退避情報選択部として機能する。このとき、メモリ管理ソフトウェア３３１は、上述したように図１２に示す各パラメータのうち“ＨＤＤ使用履歴”のパラメータを重視し、ＨＤＤ１０４の使用履歴が多いプログラムを優先的にスワップアウト処理の対象とする。スワップアウトの優先順位が決定すると、メモリ管理ソフトウェア３３１は、ＭＭＵ１０３ａにスワップ処理を実行させる（Ｓ１４０８）。スワップ処理により、メモリの確保が可能となり、メモリ管理ソフトウェア３３１は確保したメモリ領域を入出力アプリケーション３２４に通知して（Ｓ１４０９）処理を終了する。
【００７６】
以上説明したように、本実施形態に係るスワップアウト処理の優先度決定方法においては、ＨＤＤ１０４が省電力状態である場合、スワップアウト処理の対象とするプログラムの優先度を、そのプログラムのＨＤＤ１０４の使用履歴に基づいて判断し、ＨＤＤ１０４をより多く使用しているプログラムを優先的にスワップアウトの対象とする。これにより、ＨＤＤ１０４の省電力状態におけるメモリ領域の管理を効率化することができる。また、ＨＤＤ１０４の省電力状態においてスワップイン処理が発生し、ＨＤＤ１０４の省電力効率が低下することを防ぐことが可能となる。
【００７７】
尚、上記の説明においては、図１４において説明したように、ページフォルトの発生に際して、ＨＤＤ１０４が省電力状態である場合に、ＨＤＤ１０４の使用履歴が多いプログラムを優先的にスワップアウトの対象とする例を説明した。しかしながら、ＨＤＤ１０４に電源が供給されている稼動状態であっても、同様の処理を行っても良い。これにより、その後ＨＤＤ１０４が省電力状態となった場合、ＨＤＤ１０４の使用履歴が少ないプログラム、即ち、ＨＤＤ１０４の省電力状態においても動作している可能性の高いプログラムがＲＡＭ１０２に残ることとなる。また、ＨＤＤ１０４の使用履歴が多いプログラム、即ち、ＨＤＤ１０４の省電力状態において動作している可能性の低いプログラムがＨＤＤ１０４に退避されることとなる。これにより、ＨＤＤ１０４の省電力状態における、スワップイン処理の発生を低減することが可能となる。
【００７８】
ＨＤＤ１０４の省電力状態への遷移判断は、例えば、ＨＤＤ１０４へのアクセスが所定期間行われなかったこと等により行われる。この所定期間の判断は、例えば省電力制御プログラム３２１が有するカウンタ機能等により判断される。ここで、メモリ管理ソフトウェア３３１は、ページフォルトの発生に際して、ＨＤＤ１０４を省電力状態へと遷移させるタイミングを判断するカウンタ値を参照し、ＨＤＤ１０４が省電力状態へと遷移するまでの期間が所定の閾値以下である場合に、上記説明したスワップアウトの優先度判断方法を適用するようにしても良い。これにより、ＨＤＤ１０４の省電力状態への遷移タイミングが近い場合には、ＨＤＤ１０４の使用履歴が少ないプログラム、即ち、ＨＤＤ１０４の省電力状態においても動作している可能性の高いプログラムをＲＡＭ１０２に残し、上述した効果を得ることが可能となる。また、ＨＤＤ１０４の省電力状態への遷移タイミングが遠い場合には、通常通りスワップ処理を実行することが可能となる。
【００７９】
また、上記の説明においては、図１４において説明したように、メモリ管理ソフトウェア３３１は、ＨＤＤ１０４の復帰が完了してから、タスクマネージャ３１２を参照する例を説明した。この他、Ｓ１４０３〜Ｓ１４０５の処理とＳ１４０６、Ｓ１４０７の処理とを並行して行っても良いし、Ｓ１４０６、Ｓ１４０７の処理を先に行っても良い。また、図１２に示す情報の管理をメモリ管理ソフトウェア３３１が直接行い、タスクマネージャ３１２を参照するまでもなく、スワップアウトの優先度を判断可能なようにしても良い。
【００８０】
また、上記の説明においては、図１２において説明したように、各プログラムによるＨＤＤ１０４の使用履歴が“多い”、“少ない”及び“無し”等のパラメータに基づいてスワップアウトの優先度を決定する例を説明した。この他、各プログラムがＨＤＤ１０４を使用した回数を数値情報として取得しても良いし、単位時間辺りのＨＤＤ１０４の使用回数、即ち使用頻度を取得するようにしても良い。また、上記の説明においては、仮想記憶制御の方式としてページング方式を用いる例を説明したが、セグメント方式であっても同様に適用可能である。
【００８１】
また、上記の説明においては、図１２において説明したように、ＨＤＤ１０４の使用履歴に基づき、ＨＤＤ１０４の使用履歴が多いプログラムを優先的にスワップアウトの対象とする例を説明した。この他、図１５に示すように、各プログラムがＨＤＤ１０４を使用するか否かの情報をタスクマネージャ３１２が管理し、その情報に基づいてＨＤＤ１０４を使用するプログラムを優先的にスワップアウトの対象とすることも可能である。
【００８２】
また、上記実施の形態１〜３の説明においては、ＨＤＤ１０４が非稼動である状態として、省電力制御プログラム３２１によって電源供給が制限された状態を例として説明した。この他、画像処理装置１の起動時の設定により、ＨＤＤ１０４を起動しない場合等が挙げられる。
【図面の簡単な説明】
【００８３】
【図１】本発明の実施形態に係る画像処理装置のハードウェア構成を示すブロック図である。
【図２】本発明の実施形態に係る画像処理装置のソフトウェア構成を示すブロック図である。
【図３】本発明の実施形態に係る画像処理装置のハードウェア構成を示すブロック図である。
【図４】本発明の実施形態に係る画像処理装置のハードウェア構成を示すブロック図である。
【図５】本発明の実施形態に係る画像処理装置のメモリ要求動作を示すシーケンス図である。
【図６】本発明の実施形態に係る画像処理装置のソフトウェア構成における処理の流れを示すブロック図である。
【図７】本発明の実施形態に係るメモリ管理ソフトウェアの動作を示すフローチャートである。
【図８】本発明の他の実施形態に係る画像処理装置のソフトウェア構成を示すブロック図である。
【図９】本発明の他の実施形態に係る画像処理装置のメモリ要求動作を示すシーケンス図である。
【図１０】本発明の実施形態に係る画像処理装置のソフトウェア構成における処理の流れを示すブロック図である。
【図１１】本発明の実施形態に係るメモリ管理ソフトウェアの動作を示すフローチャートである。
【図１２】本発明の他の実施形態に係るプログラムの動作態様に係る情報を示す表である。
【図１３】本発明の他の実施形態に係る画像処理装置のソフトウェア構成を示すブロック図である。
【図１４】本発明の実施形態に係るメモリ管理ソフトウェアの動作を示すフローチャートである。
【図１５】従来技術に係る仮想記憶制御の態様を示す図である。
【図１６】従来技術に係る仮想記憶技術を説明するための図である。
【符号の説明】
【００８４】
１００    コントローラ
１００ａ    ソフト制御部
１００ｂ    メカ制御部
１０１    ＣＰＵ
１０２    ＲＡＭ
１０３    システムコントロールＡＳＩＣ
１０３ａ    ＭＭＵ
１０４    ＨＤＤ
１０５    ＲＯＭ
１０６    画像処理ＡＳＩＣ
１０７    可搬型記録媒体Ｉ／Ｆ
１０８    入出力・省電力制御ＡＳＩＣ
１０９    オペレーションパネルＩ／Ｆ
１１０    ＨＯＳＴ  Ｉ／Ｆ
１１１    ＮＶＲＡＭ
１１２    オプションＩ／Ｆ
１１３    電源制御部
２００    エンジン
２０１    エンジンコントローラ
２０２    スキャンエンジン
２０３    プリントエンジン
３００    ソフトウェア
３１０    ＯＳ
３１１    省電力制御ライブラリ
３１２    タスクマネージャ
３２０    アプリケーション
３２１    省電力制御プログラム
３２２    プリントアプリケーション
３２３    スキャンアプリケーション
３２４    入手力アプリケーション
３３０    カーネル
３３１    メモリ管理ソフトウェア
３３２    デバイスドライバ
３３３    デバイス管理ソフトウェア
３３４    電源管理ソフトウェア
３３５    ＨＤＤ起動ライブラリ
【図１】
0004958723.tif 000002
【図２】
0004958723.tif 000003
【図３】
0004958723.tif 000004
【図４】
0004958723.tif 000005
【図５】
0004958723.tif 000006
【図６】
0004958723.tif 000007
【図７】
0004958723.tif 000008
【図８】
0004958723.tif 000009
【図９】
0004958723.tif 000010
【図１０】
0004958723.tif 000011
【図１１】
0004958723.tif 000012
【図１２】
0004958723.tif 000013
【図１３】
0004958723.tif 000014
【図１４】
0004958723.tif 000015
【図１５】
0004958723.tif 000016
【図１６】
0004958723.tif 000017