(57)【要約】【課題】  使用者が、ストレージの交換などを行った際に誤って電源断保証回路が無い側に保護したいデータを記憶するストレージを配置してしまった場合、停電等の電源断時に保護したいデータが失われるおそれがある。【解決手段】  検知手段が電源電圧の低下を検知した際に第１の系に接続されたストレージの動作を維持する保証回路と、を有し、制御手段は、第１の系に接続されたストレージが装置の起動に必要なデータを記憶しないストレージであり且つ第２の系に接続されたストレージが装置の起動に必要なデータを記憶するストレージである場合に、第２の系に接続されたストレージから第１の系に接続されたストレージへ少なくとも前記装置の起動に必要なデータをコピーさせることを特徴とする。【選択図】  図５
2020149495.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも第１の系に接続されたストレージおよび第２の系に接続されたストレージを制御するストレージ制御手段と、装置に電源を供給する電源供給手段と、前記第１の系に接続されたストレージおよび前記第２の系に接続されたストレージへの電源の供給を制御する電源制御手段と、を有する情報処理装置であって、
前記第１の系に接続されたストレージと前記第２の系に接続されたストレージの間でデータをコピーさせる制御手段と、
電源電圧の低下を検知する検知手段と、
前記第１の系に配され、前記検知手段が電源電圧の低下を検知した際に前記第１の系に接続されたストレージの動作を維持する保証回路と、を有し、
制御手段は、
前記第１の系に接続されたストレージが前記装置の起動に必要なデータを記憶しないストレージであり且つ前記第２の系に接続されたストレージが前記装置の起動に必要なデータを記憶するストレージである場合に、前記第２の系に接続されたストレージから前記第１の系に接続されたストレージへ少なくとも前記装置の起動に必要なデータをコピーさせることを特徴とする情報処理装置。
【請求項２】
前記制御手段は、前記第２の系に接続されたストレージから前記第１の系に接続されたストレージへコピーさせた前記装置の起動に必要なデータを用いて、前記情報処理装置の一部の機能を動作することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記電源制御手段は、前記装置の起動に必要なデータをコピーした後で前記第２の系に接続されたストレージへの電源の供給を停止することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
ユーザに情報を通知する通知手段をさらに有し、
前記通知手段は、前記情報処理装置の一部の機能が動作可能である旨をユーザに通知することを特徴とする請求項２または３に記載の情報処理装置。
【請求項５】
前記第１の系に接続されたストレージと前記第２の系に接続されたストレージが前記装置の起動に必要なデータを記憶しないストレージである場合、前記情報処理装置を起動できない旨を前記通知手段が通知することを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記装置の起動に必要なデータは、ファーム及びアプリケーションのデータであることを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
前記第１の系に接続されたストレージが前記装置の起動に必要なデータを記憶しないストレージであり且つ前記第２の系に接続されたストレージが前記装置の起動に必要なデータを記憶するストレージである場合に、前記第２の系に接続されたストレージから前記第１の系に接続されたストレージへさらに設定値に関するデータをコピーすることを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記制御手段は、
前記第１の系に接続されたストレージが前記装置の起動に必要なデータを記憶しないストレージであり且つ前記第２の系に接続されたストレージが前記装置の起動に必要なデータを記憶するストレージである場合に、前記第２の系に接続されたストレージに記憶された全てのデータを前記第１の系に接続されたストレージにコピーさせることを特徴とする請求項１または２に記載の情報処理装置。
【請求項９】
前記制御手段は、
前記第１の系に接続されたストレージに記憶された全てのデータを前記第２の系に接続されたストレージにコピーさせることを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
ユーザに情報を通知する通知手段をさらに有し、
前記通知手段は、前記第１の系に接続されたストレージに記憶されたデータと前記第２の系に接続されたストレージに記憶されたデータとを入れ替えた旨を通知することを特徴とする請求項８または９に記載の情報処理装置。
【請求項１１】
ストレージのシリアル番号とストレージが接続する系を記憶する記憶手段と、
前記第１の系及び前記第２の系に接続されたストレージを特定する特定手段と、を更に有し、
前記特定手段は、前記情報処理装置の前回の起動において前記第１の系に接続されていたストレージのシリアル番号と、前記情報処理装置の今回の起動において前記第１の系に接続されているストレージのシリアル番号を比較し、シリアル番号が異なることで前記第１の系に接続されているストレージが前記装置の起動に必要なデータを記憶しているストレージではないと特定することを特徴とする請求項１乃至１０のいずれか１項に記載の情報処理装置。
【請求項１２】
前記特定手段は、前記情報処理装置の前回の起動において前記第１の系に接続されていたストレージのシリアル番号と、前記情報処理装置の今回の起動において前記第２の系に接続されているストレージのシリアル番号を比較し、シリアル番号が同じ場合に前記第２の系に接続されているストレージが前記装置の起動に必要なデータを記憶するストレージであると特定することを特徴とする請求項１１に記載の情報処理装置。
【請求項１３】
前記特定手段は、前記情報処理装置の前回の起動において前記第２の系に接続されていたストレージのシリアル番号と、前記情報処理装置の今回の起動において前記第１の系に接続されているストレージのシリアル番号を比較し、シリアル番号が同じ場合に前記第１の系に接続されているストレージが前記装置の起動に必要なデータを記憶していないストレージであると特定することを特徴とする請求項１１または１２に記載の情報処理装置。
【請求項１４】
前記情報処理装置の前回の起動において前記第２の系に接続されていたストレージは、コピー動作に関するデータを記憶したストレージであることを特徴とする請求項１３に記載の情報処理装置。
【請求項１５】
前記第２の系には、前記保証回路が配されないことを特徴とする請求項１乃至１４のいずれか１項に記載の情報処理装置。
【請求項１６】
前記保証回路は、前記検知手段が電源電圧の低下を検知することによって前記第１の系に接続されたストレージと前記電源供給手段の接続を遮断する回路を有することを特徴とする請求項１乃至１５のいずれか１項に記載の情報処理装置。
【請求項１７】
前記保証回路は、電荷を保持するキャパシタを有することを特徴とする請求項１乃至１６のいずれか１項に記載の情報処理装置。
【請求項１８】
前記第１の系に接続されたストレージおよび前記第２の系に接続されたストレージは、ＳＳＤであることを特徴とする請求項１乃至１７のいずれか１項に記載の情報処理装置。
【請求項１９】
前記第１の系に接続されたストレージは、揮発性の記憶部と不揮発性の記憶部を有し、
前記検知手段が電源電圧の低下を検知することに基づいて、前記揮発性の記憶部に記憶されたデータを前記不揮発性の記憶部に記憶させることを特徴とする請求項１乃至１８のいずれか１項に記載の情報処理装置。
【請求項２０】
少なくとも第１の系に接続されたストレージおよび第２の系に接続されたストレージを制御するストレージ制御手段と、装置に電源を供給する電源供給手段と、前記第１の系に接続されたストレージおよび前記第２の系に接続されたストレージの電源の供給を制御する電源制御手段と、前記第１の系に接続されたストレージと前記第２の系に接続されたストレージの間でデータをコピーさせる制御手段と、電源電圧の低下を検知する検知手段と、
前記第１の系に配され、前記検知手段が電源電圧の低下を検知した際に前記第１の系に接続されたストレージの動作を維持する保証回路と、を有する情報処理装置の制御方法であって、
前記第１の系に接続されたストレージが前記装置の起動に必要なデータを記憶しないストレージであり且つ前記第２の系に接続されたストレージが前記装置の起動に必要なデータを記憶するストレージである場合に、前記第２の系に接続されたストレージから前記第１の系に接続されたストレージへ少なくとも前記装置の起動に必要なデータをコピーさせることを特徴とする情報処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置および情報処理装置の制御方法に関する。
【背景技術】
【０００２】
ＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｒｉｎｔｅｒ）等の情報処理装置は、装置のプログラムやユーザが保存した設定データや画像データを保存するため、ＨＤＤやＳＳＤ等の記憶装置を備えている。
【０００３】
これらの記憶装置は、装置内部に専用コントローラと揮発性のキャッシュメモリ、不揮発性の記録メディアを持ち、専用コントローラが不定期にキャッシュメモリ内のデータを記録メディアに書き込んでいる（キャッシュフラッシュ動作）。
【０００４】
これらの記憶装置に対してデータを書き込む際に瞬断や停電が発生した場合、不揮発性メモリのキャッシュ内にデータが残っていて、キャッシュフラッシュ動作が完了する前に電源がＯＦＦされてしまうとデータを失うことになる。
【０００５】
そこで、停電等の電源断時にストレージ内部で不定期に行われているキャッシュフラッシュ動作が失敗してデータが失われないように、キャッシュフラッシュが完了するまでの電源供給を保証する電源断保証回路を搭載する構成が知られている。例えば、先行文献１では、停電等が発生し、かつキャッシュメモリ内にデータがある場合、外部記憶装置の電源ラインを電池等のバックアップ電源に切り替え、キャッシュフラッシュ動作の時間の電源を確保する方法が提案されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００４−２７２３０９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
このような、２つ以上のストレージから構成される情報処理装置において、電源断保証回路をすべてのストレージ用の電源に設けると回路規模とコストが増大してしまう。
【０００８】
一方で、片方のストレージには保護したいデータを保存し、もう片方のストレージには保護の必要のないデータを保存するようにデータの配置を行うことで、電源断保証回路を片方のストレージのみに配する構成で済ますことが可能になる。
【０００９】
しかしながら、このような構成において、ストレージの交換などを行った際に誤って電源断保証回路が無い側に保護したいデータを記憶するストレージを配置してしまった場合、停電等の電源断時に保護したいデータが失われるおそれがある。特に保護したいデータが情報処理装置の起動に必要なプログラム等であった場合に、情報処理装置の起動ができない状態になってしまうおそれがある。
【００１０】
本発明の目的は、回路規模と回路コストの削減と、ストレージの入れ替えが発生した場合における保護したいデータの消失の抑制を両立させることである。
【課題を解決するための手段】
【００１１】
本発明は、少なくとも第１の系に接続されたストレージおよび第２の系に接続されたストレージを制御するストレージ制御手段と、装置に電源を供給する電源供給手段と、前記第１の系に接続されたストレージおよび前記第２の系に接続されたストレージへの電源の供給を制御する電源制御手段と、を有する情報処理装置であって、前記第１の系に接続されたストレージと前記第２の系に接続されたストレージの間でデータをコピーさせる制御手段と、電源電圧の低下を検知する検知手段と、前記第１の系に配され、前記検知手段が電源電圧の低下を検知した際に前記第１の系に接続されたストレージの動作を維持する保証回路と、を有し、制御手段は、前記第１の系に接続されたストレージが前記装置の起動に必要なデータを記憶しないストレージであり且つ前記第２の系に接続されたストレージが前記装置の起動に必要なデータを記憶するストレージである場合に、前記第２の系に接続されたストレージから前記第１の系に接続されたストレージへ少なくとも前記装置の起動に必要なデータをコピーさせることを特徴とする。
【発明の効果】
【００１２】
本発明によれば、回路規模と回路コストの削減と、ストレージの入れ替えが発生した場合における保護したいデータの消失の抑制を両立させることが可能である。
【図面の簡単な説明】
【００１３】
【図１】情報処理装置のブロック図
【図２】ＩＯコントローラ２００とストレージ３００の内部ブロック図
【図３】ＩＯコントローラ２００がＲＯＭ２０２に持つＬＢＡ変換テーブル
【図４】電源供給部から供給される電源ラインを示したブロック図
【図５】前回起動時からストレージが入れ替わった場合の動作を説明するフローチャート
【図６】前回起動時からストレージが入れ替わった場合のパーティション構成を示した図
【図７】前回起動時からストレージが入れ替わった場合の動作を説明するフローチャート
【図８】前回起動時からストレージが入れ替わった場合のパーティション構成を示した図
【発明を実施するための形態】
【００１４】
（実施例１）
図１に、本実施例の情報処理装置全体のブロック図を示す。図１では、情報処理装置を一例として、ＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｒｉｎｔｅｒ）のシステム構成で説明する。ただし、この構成に限定するものではなく、複数の記憶装置を備えた構成の情報処理装置であれば適応可能である。
【００１５】
本発明の情報処理装置は、装置全体を制御するメインコントローラ１００と、データを保管するストレージ３００・３１０と、原稿をスキャンするスキャナ１０６と、原稿を印刷するプリンタ１０８と、操作部１０９によって構成されている。
【００１６】
次に、メインコントローラ１００の詳細構成を説明する。メインコントローラ１００は、ＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３、Ｎｅｔｗｏｒｋ制御部１０４、スキャン画像処理部１０５、プリンタ画像処理部１０７、電源制御部１１０、電源供給部１１１、ＩＯコントローラ２００により構成されている。
【００１７】
ＣＰＵ１０１は、情報処理装置のシステム全体を制御するコントローラであり、システム制御、演算処理、ＯＳやアプリケーションを実行する。具体的には、ＲＯＭ１０２から読み出したプログラムをＲＡＭ１０３に展開してＣＰＵ１０１が実行する。
【００１８】
ＲＯＭ１０２は、ＣＰＵ１０１で実行されるプログラムおよび設定情報を格納している。なお、ＲＯＭ１０２は、フラッシュＲＯＭであってもよい。
【００１９】
ＲＡＭ１０３は、ＣＰＵ１０１で実行する制御プログラムを格納したり、一時的なワークエリアとして使用されたりする。
【００２０】
Ｎｅｔｗｏｒｋ制御部１０４は、ネットワークＩ／Ｆであり、情報処理装置内で画像処理を施した画像データをＬＡＮ１１２（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）経由で外部情報機器（不図示）に送信する。また、Ｎｅｔｗｏｒｋ制御部１０４は同様に、外部情報処理装置から画像データを受信する。
【００２１】
スキャン画像処理部１０５は、スキャナ１０６から受信した画像データに画像処理を施す。処理された画像データは、ＩＯコントローラ２００を経由して、ストレージ３００・３１０のいずれかに保存される。
【００２２】
スキャナ１０６は、画像入力デバイスであり、原稿となる紙上の画像を照射し、ＣＣＤラインセンサ（不図示）を走査する事でラスター・イメージデータ（画像データ）として電気信号に変換する。生成した画像データは。スキャン画像処理部１０５に送信される。
【００２３】
プリンタ画像処理部１０７は、受信した画像データに画像処理を施す。処理された画像データはプリンタ１０８へ送信される。なお、処理された画像データは、一時的にストレージ３００またはストレージ３１０に格納される。そして、格納された該画像データはストレージから読み出されてプリンタ１０８に送信される。
【００２４】
プリンタ１０８は、画像出力デバイスであり、処理された画像データを用紙上に画像として印刷する。
【００２５】
操作部１０９は、表示機能と操作機能を兼ね揃えたタッチパネル等のデバイスであり、入力された画像データを表示する役割とシステム使用者が入力した情報をＣＰＵ１０１に伝える役割を持つ。
【００２６】
電源制御部１１０は、ＣＰＵ１０１からの指示により、情報処理装置内の各部への電源のＯＮ／ＯＦＦの制御やシーケンス制御を行なっている。
【００２７】
電源供給部１１１は、電源制御部１１０からの指示により、外部電源（不図示）からの電力供給を基に、各部へ供給する１つ以上の低圧電源を生成・供給を行なう。
【００２８】
ＩＯコントローラ２００は、ストレージ３００、３１０とデータの送受信の制御を行う。本実施例ではＳＡＴＡ（Ｓｅｒｉａｌ  Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ）インターフェース規格に準拠して接続機器を制御するコントローラとして説明を行なう。しかし、これに限定するものではなく、ＰＣＩｅ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｅｘｐｒｅｓｓ）などの他のインターフェースを用いて接続されていてもよい。
【００２９】
ＬＡＮ１１２は、Ｌｏｃａｌ  Ａｒｉａ  Ｎｅｔｗｏｒｋであり、情報処理装置と外部情報機器（不図示）との通信を行う為のネットワーク網である。
【００３０】
なお、ストレージ３００およびストレージ３１０は、不揮発性の記憶装置である。以下、例としてストレージ３００とストレージ３１０にフラッシュメモリ（例えばＳＳＤ）を用いる構成とするが、磁気デバイスと磁気デバイス、磁気デバイスとフラッシュメモリでもよい。
【００３１】
図２に、ＩＯコントローラ２００とストレージ３００の詳細構成図を示す。
【００３２】
ＩＯコントローラ２００はＩＯ−ＣＰＵ２０１、ＲＯＭ２０２、ＲＡＭ２０３、ストレージＩ／Ｆ部２０４・２０５・２０６から構成され、それぞれ通信バスで接続されている。
【００３３】
ＩＯコントローラ２００は、ＣＰＵ１０１と、ストレージ３００及びストレージ３１０との間の通信ブリッジとして機能する。
【００３４】
ＩＯ−ＣＰＵ２０１は、ＩＯコントローラ２００のシステム制御、演算処理、ＡＴＡコマンド処理を行なう。具体的にはＲＯＭ２０２から読み出したプログラムをＲＡＭ２０３に展開してＣＰＵ１０１が実行する。
【００３５】
ＲＯＭ２０２は、ＩＯ−ＣＰＵ２０１の制御プログラムや各種モードの設定値のデータ、接続された配下のストレージの情報を格納する。ＲＯＭ２０２は、フラッシュＲＯＭであり、書き換え可能である。
【００３６】
ＲＡＭ２０３は、ＩＯ−ＣＰＵ２０１で実行する制御プログラムを格納したり、一時的なワークエリアとして使用されたりする。
【００３７】
ストレージＩ／Ｆ部２０４は、メインコントローラ１００に接続されていて、ＳＡＴＡ規格に準拠して、メインコントローラ１００内のＣＰＵ１０１と通信する。
【００３８】
ストレージＩ／Ｆ部２０５は、ストレージ３００に接続され、ＳＡＴＡ規格に準拠して、ストレージ３００と通信を行なう。
【００３９】
ストレージＩ／Ｆ部２０６は、ストレージ３１０に接続され、ＳＡＴＡ規格に準拠して、ストレージ３１０と通信を行なう。
【００４０】
ＩＯ−ＣＰＵ２０１は、ストレージＩ／Ｆ部２０４を通じてＣＰＵ１０１から来たＡＴＡコマンドの受信処理を行なう。さらにＩＯ−ＣＰＵ２０１は、ストレージＩ／Ｆ部２０５や２０６を通じてストレージ３００・３１０にＡＴＡコマンドへの送信処理を行う。
【００４１】
逆にＩＯ−ＣＰＵ２０１は、ストレージＩ／Ｆ部２０５や２０６を通じてストレージ３００や３１０から来たＡＴＡコマンドの受信処理を行う。さらにＩＯ−ＣＰＵ２０１は、ストレージＩ／Ｆ部２０４を通じてＣＰＵ１０１へのＡＴＡコマンドの送信処理を行う。
【００４２】
ストレージ３００は、ストレージ制御部３０１とキャッシュメモリ３０２と記録メディア３０３で構成され、それぞれ通信バスで接続されている。
【００４３】
ストレージ制御部３０１は、ストレージ３００全体を制御しており、ＩＯコントローラ２００との通信を担う。
【００４４】
キャッシュメモリ３０２は、ストレージ制御部３０１がＩＯコントローラ２００から受信したデータを一時的に保持するための揮発性の記憶部である。
【００４５】
記録メディア３０３は、不揮発性の記憶部であり、例としては、磁気ディスクやＮＡＮＤ型のＦＬＡＳＨ  ＭＥＭＯＲＹなどである。
【００４６】
記録メディア３０３が磁気ディスクの場合には、ストレージ３００はＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）と呼ばれ、記録メディア３０３がＮＡＮＤ型のＦＬＡＳＨ  ＭＥＭＯＲＹの場合には、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）と呼ばれる。
【００４７】
ストレージ制御部３０１は、キャッシュメモリ３０２内データを不揮発性の記録メディア３０３に不定期に書き込む。この動作がキャッシュフラッシュであり、キャッシュフラッシュはＩＯコントローラ２００とは独立して動作する。
【００４８】
なお、ストレージ３１０の構成は、ストレージ３００の構成と同様であるため説明は省略する。
【００４９】
さらに、ＩＯ−ＣＰＵ２０１の動作を詳細に説明する。
【００５０】
ＩＯ−ＣＰＵ２０１は配下のストレージ３００及びストレージ３１０からストレージ情報を取得し、ＲＯＭ２０２に保存し管理する。ＩＯ−ＣＰＵ２０１が取得するストレージ３００・３１０の情報の一例としてはＳ．Ｍ．Ａ．Ｒ．Ｔ．（Ｓｅｌｆ−Ｍｏｎｉｔｏｒｉｎｇ  Ａｎａｌｙｓｉｓ  ａｎｄ  Ｒｅｐｏｒｔｉｎｇ  Ｔｅｃｈｎｏｌｏｇｙ）の情報がある。
【００５１】
またＩＯ−ＣＰＵ２０１は、ＣＰＵ１０１からの書き込みコマンドの宛先ＬＢＡからストレージ３００かストレージ３１０のどちらに書き込みコマンドを送信するかの判断を行なう。
【００５２】
ＩＯ−ＣＰＵ２０１は、図３に例として示すアドレス変換テーブルをＲＯＭ２０２から読み出して参照する。アドレス変換テーブルは、メインＣＰＵから受信したＬＢＡ（論理アドレス）と、コマンド送信先のストレージおよび送信先ストレージＬＢＡ（物理アドレス）を対応付けて記憶している。さらに、ストレージ３００として用いたストレージのシリアル番号、ストレージ３１０として用いたストレージのシリアル番号を記憶している。アドレス変換テーブルは、書き換え可能である。
【００５３】
ＩＯ−ＣＰＵ２０１は、このテーブルに則ってストレージ３００かストレージ３１０のどちらに書き込みコマンドを送信するかの判断を行なう。例えば、ＣＰＵ１０１からＬＢＡ（Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓｉｎｇ）の０ｘＡＡＡＡから０ｘＢＢＢＢへの書き込みコマンドが送信されてきた場合、ストレージ３００のＬＢＡ（０ｘＸＸＸＸから０ｘＹＹＹＹ）にアドレス変換し、ストレージ３００へ書き込みコマンドを送信する。
【００５４】
図４に情報処理装置の各部への電源供給や、その電源供給指示がどのように行われるかの概略を示したブロック図である。図内においては、実線矢印は通信ラインを、破線矢印は電源ラインを意図している。
【００５５】
情報処理装置の電源シーケンスは電源制御部１１０によって制御されており、ＣＰＵ１０１と接続し、ＣＰＵ１０１の指示に従って動作する。
【００５６】
電源供給部１１１は、電源制御線４０１によって電源制御部１１０に接続し、電源制御部１１０の指示に従って外部電源４０２から供給された電力を基に複数の低圧電源を生成する。
【００５７】
電源供給部１１１から各デバイスに対して、電源ライン４０３、電源ライン４０４、電源ライン４０５、電源ライン４０７を通じて電圧が供給される。
【００５８】
電源断保証回路４１０は、電源ライン４０８を介してストレージ３００へ電圧を供給、又は電圧を維持する。なお、以下の説明において、ＩＯコントローラ２００のストレージの接続の系において、電源断保証回路４１０による電圧保証がある系に接続されたストレージをストレージ３００とする。電源断保証回路４１０による電圧保証がない系に接続されたストレージをストレージ３１０とする。
【００５９】
次に電源断保証回路４１０がどのようにストレージ３００への電圧供給または電圧維持を行なうかの例を説明する。
【００６０】
通常動作時、電源断保証回路４１０は電源供給部１１１から供給される電源ライン４０７をそのままストレージ３００へ供給する。
【００６１】
停電などによって外部電源４０２が瞬間的にでも停止してしまった場合、まず、電源制御部１１０は、外部電源４０２の電圧低下を検知し、電源供給部１１１に電源制御線４０１を通じて通知する。さらに、電源制御部１１０は電源断保証回路４１０へ電源断が発生した旨を通知し、ＣＰＵ１０１へ電源断が発生した旨を通知する。なお、ここでは電源制御部１１０が、電源電圧の低下を検知する電源監視部を含む構成を示したが、電源制御部１１０とは別に電源電圧を監視する電源電圧監視部を配してもよい。その場合には、電源電圧監視部が、外部電源４０２の低下を検知すると電源制御部１１０に通知する。
【００６２】
ＣＰＵ１０１は、電源制御部１１０から電源断が発生したと通知がＩＯコントローラ２００を介してストレージにキャッシュフラッシュ動作を開始させるための指示を出す。
【００６３】
電源断保証回路４１０は、電源制御部１１０から電源断が発生したと通知がきたら停電時用の電源供給（不図示）へ切り替え、電源ライン４０８を介してストレージ３００へ電源供給する。
【００６４】
ここでいう停電時用の電源供給の方法とは、キャパシタや電池等に充電していた電源へ切り替えて電源断時のキャッシュフラッシュ完了までの電源を供給する方法でもよい。さらにストレージ３００のための電源ライン４０８と他の部分への電源ラインをスイッチで切り離す（遮断する）ことにより、ストレージ３００に残りの電力（電荷）を使用させることでキャッシュフラッシュ完了まで可能な限り電源を維持する方法でもよい。すなわち、電源断が発生した時からライトフラッシュ動作が完了するまでの電力供給を保証させる方法であれば、これらの方法に限定するものではない。
【００６５】
これらの方法によって、ＩＯコントローラ２００が配下のストレージ３００に対して書き込み指示を実行した後で電源断が発生しても、ストレージ３００は、キャッシュフラッシュ動作を完了することが可能となる。
【００６６】
図５は、本実施例において情報処理装置が起動した際に、ＣＰＵ１０１が行なう動作を説明するためのフローチャートである。
【００６７】
Ｓ５０１にて、ＣＰＵ１０１は、ストレージ３００として接続されているストレージとストレージ３１０として接続されているストレージのデバイスの型名とシリアルＮｏを問い合わせるコマンドをＩＯコントローラ２００に送信する。言い換えると、電圧保証のある系に接続されているストレージと、電圧保証のない系に接続されているストレージのデバイスの型名とシリアルＮｏを問い合わせるコマンドをＩＯコントローラ２００に送信する。
【００６８】
Ｓ５０２にて、ＣＰＵ１０１は、ＲＯＭ１０２に保存されている前回起動した際に接続されていたストレージデバイス情報から、今回接続されているストレージ３００、ストレージ３１０の少なくとも一方が変更されたか否かを判断する。
【００６９】
ストレージが前回起動時から変更されている場合（Ｓ５０２でＹｅｓ）、処理をＳ５０３に進める。ストレージが前回起動時から変更されていない場合（Ｓ５０２でＮｏ）、起動処理を終了する。
【００７０】
Ｓ５０３にて、ＣＰＵ１０１は、ＩＯコントローラ２００へＲＯＭ２０２に保存されている前回起動時の書き込み・読み出し時のＬＢＡの変換テーブル情報を問い合わせる。
【００７１】
Ｓ５０４にて、ＣＰＵ１０１はＲＯＭ１０２に保存されている前回起動時のストレージのシリアルＮｏに対応し設定されていたパーティションテーブルを取得する。なお、通常、パーティションテーブルは各々のストレージ内のパーティションテーブル専用の領域（不図示）に保存されるように標準規格で定められている。このＲＯＭ１０２に保存されているパーティションテーブルは、このような通常のストレージ内のパーティションテーブル情報と、そのストレージのシリアルＮｏを紐付けた形でＲＯＭ１０２に保存している。
【００７２】
Ｓ５１１にて、ＣＰＵ１０１は、Ｓ５０１、Ｓ５０３、Ｓ５０４で取得したストレージの情報と、ＬＢＡの変換テーブルとを比較する。それによってパーティションテーブルから、保護対象のデータが存在するストレージが、ストレージ３００として接続されているかを判断する。具体的には、前回の起動で、ストレージ３００として接続されていたストレージがストレージ３００の側に（電圧保証のある系に）接続されているか否かをストレージのシリアル番号から判断する。
【００７３】
保護対象のデータが存在するストレージがストレージ３００として接続されている場合（Ｓ５１１でＹＥＳ）には、フローを終了する。一方、保護対象のデータが存在するストレージがストレージ３００として接続されていない場合（Ｓ５１１でＮＯ）には、Ｓ５０５に処理を進める。
【００７４】
Ｓ５０５にて、ＣＰＵ１０１は、Ｓ５０１、Ｓ５０３、Ｓ５０４で取得したストレージの情報とＬＢＡの変換テーブルとパーティションテーブルから、保護対象のデータが存在するストレージがストレージ３１０として接続されているかを判断する。具体的には、前回の起動でストレージ３００として接続されていたストレージが、ストレージ３１０の側（電圧保証がない系）に接続されているか否かをストレージのシリアル番号から判断する。
【００７５】
保護対象のデータが存在するストレージが、ストレージ３１０として接続されていると判断した場合（Ｓ５０５でＹｅｓ）、Ｓ５０６へ処理を進める。保護対象のデータが存在するストレージが、ストレージ３１０として接続されていないと判断した場合（Ｓ５０５でＮｏ）、処理をＳ５１０へ進める。
【００７６】
なお、図４の説明したように電源断保証回路４１０がストレージ３００の側に存在することが前提である。電源断保証回路４１０がストレージ３１０の側に存在する場合、ステップＳ５０５は、「保護対象のデータが存在するストレージがストレージ３００側に接続されているか？」となる。
【００７７】
Ｓ５０６にて、ＣＰＵ１０１は、少なくともデータの一部をストレージ３１０からストレージ３００にコピーする。ここでコピーするデータとは、具体的には、少なくともファームやアプリケーションのデータである。ファームやアプリケーションのデータはＭＦＰの一部動作に必要なデータであり、最低限ユーザにエラー状態等を表示させるのに必要なデータであるため、ストレージ３００にコピーを残す。
【００７８】
また、さらにユーザがＭＦＰのプリントやスキャン等の一部の機能のみが使える縮退モードで動作するための、設定値のデータ等もコピーして、ＭＦＰの一部を動作させることも可能である。そのため、ここでコピーするデータは、これらに限定するものではない。
【００７９】
Ｓ５０７にて、ＣＰＵ１０１は、ストレージ３１０を安全にシャットダウンさせる。具体的には、ＣＰＵ１０１はシステムからストレージ３１０との接続を切断（アンマウント）を行ない、ストレージ３１０への読み書き処理やキャッシュフラッシュ動作が発生しない状態にする。その後ＣＰＵ１０１は、電源制御部１１０を制御しストレージ３１０用の電源をＯＦＦする。
【００８０】
Ｓ５０８にて、ＣＰＵ１０１はストレージ３００のみで縮退動作を開始し、ＵＩ（操作部１０９）に、縮退動作中である旨と、ストレージ３００と３１０が入れ替わって接続されているので正しく接続し直すように促すメッセージを表示する。
【００８１】
Ｓ５０９にて、ＣＰＵ１０１はＩＯコントローラ２００のＲＯＭ２０２へＬＢＡの変換テーブルを保存するように指示を行なう。さらにＣＰＵ１０１はＲＯＭ１０２に今回のストレージの型名・シリアルＮｏに対応し設定されたパーティションとＬＢＡの対応テーブルを保存し、処理を終了する。
【００８２】
なお、Ｓ５０５のＹｅｓの処理フローを経て終了すると、ＭＦＰは一部の機能のみが使用可能な縮退動作状態となる。その状態は上述したようにＳ５０６でコピーした内容によってどこまでの機能が使えるかが変わってくる。
【００８３】
Ｓ５１０にて、ＣＰＵ１０１は、操作部１０９に保護対象のデータが保存されているストレージが接続されていないので正常に起動できない旨のメッセージを表示し、処理を終了する。
【００８４】
次に図６を用いて前回起動時からストレージが入れ替わらない場合のパーティション構造、ストレージが入れ変わった場合のパーティション構造および本願を適用後のパーティション構造の一例を説明する。
【００８５】
図６（Ａ）は前回起動時に正常に起動している状態でのストレージ３００とストレージ３１０のデータパーティション構成の一例である。ストレージ３００には、シリアル番号ＡＡＡのストレージ（以下、ストレージＡＡＡ）、ストレージ３１０にはシリアル番号ＢＢＢのストレージ（ストレージＢＢＢ）が接続されている。ストレージＡＡＡとストレージＢＢＢは、同じ容量でも異なる容量でもよい。
【００８６】
ストレージ３００であるストレージＡＡＡにはファーム／アプリ領域、設定値保存領域、ユーザデータ領域のパーティションが割り当てられている。ファーム／アプリ領域は情報処理装置のシステムが動作するのに必要なファーム／アプリの動作やデータ展開に使用する領域であり、情報処理装置の動作に必要な領域である。設定値保存領域はユーザが情報処理装置へ設定を行なった機器設定値等が保存される領域である。ユーザデータ領域はユーザＢＯＸへ保存した原稿画像データ等が保存される領域である。
【００８７】
一方でストレージ３１０であるストレージＢＢＢにはＴｅｍｐ画像領域が割り当てられている。Ｔｅｍｐ画像領域は情報処理装置がコピー動作やプリント動作やスキャン動作する際に、一時的に保存される画像の領域である。また、Ｔｅｍｐ画像領域は情報処理装置のコピー動作やプリント動作やスキャン動作を高速動作させたい場合には高速な読み書きが必要な画像領域である。
【００８８】
つまり、起動に必要なファーム／アプリ領域や設定値保存領域を有するストレージＡＡＡは、電源断保証回路４１０の側に接続されている。そのため、万が一ストレージＡＡＡへの書き込み中に停電による電源断が発生してしまった場合でも、キャッシュフラッシュするのに必要な時間分の電力の供給が保障されるので、キャッシュフラッシュが失敗してデータが失われないよう保護される。一方、電源断保証回路４１０がない側に接続されているストレージＢＢＢは、電源断が発生した場合にキャッシュフラッシュが失敗してデータが失われる可能性がある。
【００８９】
図６（Ｂ）は、情報処理装置の次の起動時に２つのストレージが入れ替えられて接続されていた場合のストレージＡＡＡとストレージＢＢＢのパーティションの構成の一例である。ここでは、ストレージが入れ替わる例を示すが、もともと電源断保証回路がある側に接続されていたストレージが、電源断保証回路が無い側に接続されればよい。つまり、電源断保証回路がある側にストレージＡＡＡではないストレージが接続された場合であればよい。
【００９０】
図６（Ｂ）において、電源断保証回路４１０がある側にはストレージＢＢＢが接続されている。つまり、ストレージ３００としてストレージＢＢＢが用いられる。そのため、ストレージ３００には、Ｔｅｍｐ画像領域が割り当てられている。
【００９１】
電源断保証回路４１０が無い側にはストレージＡＡＡが接続されている。つまり、ストレージ３１０としてストレージＡＡＡが用いられる。そのため、ストレージ３１０には、ファーム／アプリ領域、設定値保存領域、ユーザデータ領域のパーティションが割り当てられている。
【００９２】
この状態では電源断保証回路４１０が無い側にファーム／アプリ領域、設定値保存領域、ユーザデータ領域のパーティションを有するストレージＡＡＡが割り当てられている。そのため、もしストレージ３１０への書き込み中に停電による電源断が発生してしまった場合、キャッシュフラッシュが間に合わないとデータを失う可能性がある状態になっている。
【００９３】
そこで本実施例の構成では、データの一部を、ストレージ３１０であるストレージＡＡＡからストレージ３００であるストレージＢＢＢへコピーを行なう。その構成を図６（Ｃ）に示す。
【００９４】
図６（Ｃ）において、ストレージ３１０であるストレージＡＡＡからファーム／アプリ領域と設定値保存領域をストレージ３００であるストレージＢＢＢに新たなパーティションとしてコピーしている。そしてストレージＢＢＢの残りの領域をＴｅｍｐ画像領域として再構成している。このようにパーティションごとコピーを行なった場合、ストレージ３００のパーティション構成が変更になるので、その内容はストレージ３００内に保存される標準のパーティションテーブルも変更されることはいうまでもない。
【００９５】
なお、図６（Ｂ）（Ｃ）に示したようにストレージが起動前と起動後で入れ替えられた場合に、Ｓ５０８でＵＩ（操作部１０９）に表示された正しく接続しなおす旨のメッセージを見て、ユーザが入れ替えられたストレージを元の状態に戻すとする。（図６（Ａ）に戻す）
この場合、接続し直されたストレージ３００（ストレージＡＡＡ）のファーム／アプリ領域・設定値領域のデータを使用し、ＭＦＰを起動することになる。さらに、接続し直された元のストレージ３１０（ストレージＢＢＢ）には元々Ｔｅｍｐ領域のみが保存されていた状態であったが、ファーム／アプリ領域・設定値領域が保存されていることになる。さらに、コピー元のストレージＡＡＡのファーム／アプリ領域・設定値領域のデータから更新があった場合には、その内容をコピー元のストレージＡＡＡのファーム／アプリ領域・設定値領域へ保存を行なってもよい。
【００９６】
これにより、図６（Ｃ）の入れ替えられた状態から、ストレージを元の状態、すなわち図６（Ａ）の状態に接続し直されることで、通常通り情報処理装置を動作可能である。
【００９７】
以上述べたように、本実施例によれば、回路規模と回路コストの削減と、ストレージの入れ替えが発生した場合における保護したいデータの消失の抑制を両立させることである。
【００９８】
（実施例２）
次に実施例２について図７及び図８を用いて説明する。実施例１では、保護対象のデータが存在するストレージがストレージ３１０として接続されている場合に、電源断保証回路４１０を介して電源が供給されるストレージ３００へ一部の重要なデータのみをコピーしている。しかし実施例２では、保護対象のデータが存在するストレージがストレージ３１０として接続されている場合に、電源断保証回路４１０を介して電源が供給されるストレージ３００にすべてのデータをコピーする。そして、ストレージ３１０のパーティションを再構成することでストレージ３００とストレージ３１０のデータの中身を入れ替える。
【００９９】
なお、図１〜図４に記載の箇所は実施例１と同様であるため、ここでは説明を省略する。また、実施例１と同様の構成には同様の番号を付し、説明を省略する。
【０１００】
図７は、情報処理装置が起動した際に、ＣＰＵ１０１が行なう動作を説明するためのフローチャートである。図５と図７の違いはＳ５０６〜Ｓ５０８での処理の違いだけであり、そのほかのステップでは同じフローであるため、説明を省略する。
【０１０１】
Ｓ７０６にてＣＰＵ１０１はストレージ３１０のすべてのデータをストレージ３００へコピーを行なう。
【０１０２】
ストレージ３１０のすべてのデータをストレージ３００へコピーし終わったら、Ｓ７０７にて、ＣＰＵ１０１はストレージ３１０のパーティションをＴｅｍｐ画像領域として再構成する。Ｓ７０６とＳ７０７を行なうことにより、ストレージ３００とストレージ３１０の中身のデータの入れ替えることになる。
【０１０３】
Ｓ７０８にて、ＣＰＵ１０１は前回起動時と比してストレージ３００とストレージ３１０が入れ替えられたためパーティションの入れ替えを行なってシステムを修復した旨を操作部１０９に表示する。
【０１０４】
つまり図７にて、Ｓ５０５のＹｅｓの処理フローを経て終了すると、ＭＦＰは全ての機能が使用可能な、正常な状態に修復されたことになる。
【０１０５】
次に図８を用いて、前回起動時からストレージが入れ替わらない場合のパーティション構造、ストレージが入れ変わった場合のパーティション構造および本実施例を適用後のパーティション構造の一例を説明する。
【０１０６】
図８（Ａ）は前回起動時に正常に起動している状態でのストレージ３００とストレージ３１０のデータパーティション構成の一例であり、図６（Ａ）と同様であるため説明は省略する。
【０１０７】
図８（Ｂ）は今回の起動時に２つのストレージが入れ替えられて接続されてしまった状態のストレージ３００とストレージ３１０のパーティションの構成の一例であり、図８（Ｂ）と同様であるため説明は省略する。
【０１０８】
図８（Ｃ）はＣＰＵ１０１が、Ｓ７０６でストレージ３１０のデータの全てを、ストレージ３００へコピーを行なった状態の一例である。ここでは、ストレージ全体のコピーを行なっており、全てのパーティションごとコピーを行なっているので、ストレージ３００内の標準のパーティションテーブルも変更されることになるのはいうまでもない。
【０１０９】
図８（Ｄ）はＣＰＵ１０１がＳ７０７でストレージ３１０をＴｅｍｐ画像領域としてパーティションを再構成した状態の一例である。
【０１１０】
この状態では、図８（Ａ）からストレージ自体は入れ替わっているが、データの中身は図８（Ａ）と同じ状態に戻っており、重要なデータが保存されているストレージを電源断保証回路４１０から電源供給される状態になっている。
【０１１１】
以上述べたように、本実施例によれば、回路規模と回路コストの削減と、ストレージの入れ替えが発生した場合における保護したいデータの消失の抑制を両立させることである。さらに本実施例によれば、ストレージ自体が入れ替えられてしまっても、データの中身は入れ替えられる前の元々の状態に戻っている。そのため、ストレージを再度入れ替えずにそのまま情報処理装置の動作を継続することが可能となる。
【０１１２】
（その他の実施形態）
以上、本発明の様々な例と実施形態を示して説明したが、本発明の趣旨と範囲は、本明細書内の特定の説明に限定されるものではない。
【０１１３】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【０１１４】
１０１  メインＣＰＵ
１１０  電源制御部
１１１  電源供給部
２００  ＩＯ
３００  ストレージ
３１０  ストレージ
４１０  電源断保証回路
【図１】
2020149495.tif 000003
【図２】
2020149495.tif 000004
【図３】
2020149495.tif 000005
【図４】
2020149495.tif 000006
【図５】
2020149495.tif 000007
【図６】
2020149495.tif 000008
【図７】
2020149495.tif 000009
【図８】
2020149495.tif 000010