(57)【要約】【課題】電源がオンに移行したとき、ハードウエアの構成に対応して初期設定ができる情報処理装置等を提供する。【解決手段】電源ユニットから電力が供給されて、情報処理装置の電源がオンになると、ハードウエアリセット（ＨＷリセット）が行われる（ステップ１０１）。次いで、ハードウエア（ＨＷ）による初期設定が行われる（ステップ１０２）。そして、初期設定プログラムによる初期設定が行われる（ステップ１０３）。その後、スマートリセットが行われる（ステップ１０４）。そして、ＯＳ、デバイスドライバ、アプリケーションプログラムなどが起動される（ステップ１０５）。そして、情報処理装置が動作状態になる。【選択図】図３
2013069054.tif 000002
【特許請求の範囲】
【請求項１】
プログラムを実行する実行手段と、
前記実行手段の実行に用いられるデータを保持するレジスタと、
初期状態に設定するプログラムが保持する、電源を供給しなくても記憶している情報を保持することが可能な不揮発性メモリと、
前記実行手段が前記初期状態に設定するプログラムを実行する前に、前記レジスタのデータを全て消去する第１のリセットを行う第１のリセット手段と、
前記実行手段が前記初期状態に設定するプログラムを実行した後に、前記レジスタのデータのうち、当該初期状態に設定するプログラムにより設定されたデータを消去することなく他のデータを消去する第２のリセットを行う第２のリセット手段と
を備える情報処理装置。
【請求項２】
前記情報処理装置は、少なくとも１つの予め定められた機能を実現する機能ユニットを備え、
前記実行手段は、前記初期状態に設定するプログラムの実行において、
前記機能ユニットの構成および接続された機器を検知する手順と、
前記検知によって検知された前記機能ユニットの構成および前記接続された機器に対応して、前記初期状態に設定するプログラムを実行した後において、前記実行手段の実行に必要なデータを前記レジスタに設定する手順とを実行する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記レジスタは、電源を供給しないと記憶している情報を保持することができない揮発性であって、
前記不揮発性メモリは、前記レジスタのデータを退避する退避領域を有し、
電源がオフになる直前に、前記レジスタのデータのうち、少なくとも、前記実行手段が電源がオフになる直前から継続して実行するために必要なデータを、前記不揮発性メモリの前記退避領域に退避する退避手段をさらに備える
ことを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記退避手段は、
前記退避領域に退避したデータの正当性が確認できる符号を設定する手順と
前記不揮発性メモリに前記符号を書き込む手順と
を実行することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記実行手段は、
前記不揮発性メモリの前記退避領域に退避されたデータを前記レジスタに復元することにより、前記情報処理装置を、電源をオフにした直前の状態に復帰できるか否かを判断する手順と、
前記判断により、前記情報処理装置を、電源をオフにした直前の状態に復帰できる場合に、前記退避領域のデータを前記レジスタに復元する手順と
をさらに実行することを特徴とする請求項３または４に記載の情報処理装置。
【請求項６】
前記不揮発性メモリが、ＭＲＡＭ、ＦｅＲＡＭ、ＰＲＡＭ、ＲｅＲＡＭのいずれかであることを特徴とする請求項１ないし５のいずれか１項に記載の情報処理装置。
【請求項７】
プログラムを実行する実行手段と、当該実行手段の実行に用いられるデータを保持するレジスタと、初期状態に設定するプログラムが保持された、電源を供給しなくても記憶している情報を保持することが可能な不揮発性メモリと、当該実行手段が当該初期状態に設定するプログラムを実行する前に、当該レジスタのデータを全て消去する第１のリセットを行う第１のリセット手段と、当該実行手段が当該初期状態に設定するプログラムを実行した後に、当該レジスタのデータのうち、当該初期状態に設定するプログラムにより設定されたデータを消去することなく他のデータを消去する第２のリセットを行う第２のリセット手段とを備えるコンピュータに、
予め定められた機能を実現する機能ユニットの構成および接続された機器を検知する機能と、
前記検知の結果に基づいて、レジスタにデータを設定する機能と
を実現させるためのプログラム。
【請求項８】
電源を供給しなくても記憶している情報を保持することが可能な不揮発性メモリに設けられ、レジスタのデータが退避された退避領域のデータを、前記レジスタに復元することにより、電源をオフにした直前の状態に復帰できるか否かを判断する機能と、
前記判断により電源をオフにした直前の状態に復帰できる場合に、前記退避領域のデータを前記レジスタに復元する機能と
をさらに実現させることを特徴とする請求項７に記載のプログラム。
【請求項９】
画像を記録材に形成する画像形成部と、
前記画像形成部の動作を制御するプログラムを実行する実行手段と、当該実行手段の実行に用いられるデータを保持するレジスタと、初期状態に設定するプログラムが保持された、電源を供給しなくても記憶している情報を保持することが可能な不揮発性メモリと、当該実行手段が当該初期状態に設定するプログラムを実行する前に、当該レジスタのデータを全て消去する第１のリセットを行う第１のリセット手段と、当該実行手段が当該初期状態に設定するプログラムを実行した後に、当該レジスタのデータのうち、当該初期状態に設定するプログラムにより設定されたデータを消去することなく他のデータを消去する第２のリセットを行う第２のリセット手段とを備え、当該画像形成部の動作を制御する制御部と
を備えた画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、プログラムおよび画像形成装置に関する。
【背景技術】
【０００２】
情報処理装置では、電力が投入される（電源がオンになる）と、ハードウエアの初期化が行なわれ、次にオペレーションシステム（ＯＳ）、アプリケーションプログラムがメインメモリにロードされる（書き込まれる）。そして、ハードウエアの動作に必要なレジスタ値が設定され、ＯＳが起動され、次いでアプリケーションプログラムが起動される。
【０００３】
特許文献１には、シングルチップマイコンの内蔵ＲＯＭ内に各レジスタの初期設定値を記憶する領域を設け、リセット解除または専用命令の実行によってマイクロプログラムの初期化ルーチンを起動して、上記ＲＯＭ内の初期値を順次対応するレジスタに転送させるようにしたレジスタの初期設定方式が記載されている。
特許文献２には、自装置を設定するためのコンフィグレーションデータおよび動作させるためのプログラムデータを、汎用メモリインターフェースを介して、不揮発性のメモリのコンフィグレーション領域およびデータ領域からそれぞれ読み出すロジック装置であって、リセット解除されると、上記データ領域をアクセスするアドレスであって上記汎用メモリインターフェースを介して上記メモリに転送されるプログラムアドレスを生成し、上記データ領域から読み出されて上記汎用メモリインターフェースを介して転送された上記プログラムデータによって動作するロジックコア部を備えたロジック装置が記載されている。
特許文献３には、所定のハードウェアの機能を決定するフィールド・プログラマブル・ゲートアレイのコンフィグレーション・データを前記ハードウェア内のフィールド・プログラマブル・ゲートアレイ内のコンフィグレーション用メモリにダウンロードする機能を有するデータ処理装置において、所望のデータ処理を実行する際に、前記データ処理に応じて、必要なコンフィグレーション・データのみを前記フィールド・プログラマブル・ゲートアレイ内のコンフィグレーション用メモリにダウンロードするダウンロード手段を有するデータ処理装置が記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平２−５１１５号公報
【特許文献２】特開２００６−１５５００４号公報
【特許文献３】特開２０００−８９９６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、電源がオンに移行したとき、ハードウエアの構成に対応した初期設定が安定にできる情報処理装置等を提供することを目的とする。
【課題を解決するための手段】
【０００６】
請求項１に記載の発明は、プログラムを実行する実行手段と、前記実行手段の実行に用いられるデータを保持するレジスタと、初期状態に設定するプログラムが保持する、電源を供給しなくても記憶している情報を保持することが可能な不揮発性メモリと、前記実行手段が前記初期状態に設定するプログラムを実行する前に、前記レジスタのデータを全て消去する第１のリセットを行う第１のリセット手段と、前記実行手段が前記初期状態に設定するプログラムを実行した後に、前記レジスタのデータのうち、当該初期状態に設定するプログラムにより設定されたデータを消去することなく他のデータを消去する第２のリセットを行う第２のリセット手段とを備える情報処理装置である。
請求項２に記載の発明は、前記情報処理装置は、少なくとも１つの予め定められた機能を実現する機能ユニットを備え、前記実行手段は、前記初期状態に設定するプログラムの実行において、前記機能ユニットの構成および接続された機器を検知する手順と、前記検知によって検知された前記機能ユニットの構成および前記接続された機器に対応して、前記初期状態に設定するプログラムを実行した後において、前記実行手段の実行に必要なデータを前記レジスタに設定する手順とを実行することを特徴とする請求項１に記載の情報処理装置である。
請求項３に記載の発明は、前記レジスタは、電源を供給しないと記憶している情報を保持することができない揮発性であって、前記不揮発性メモリは、前記レジスタのデータを退避する退避領域を有し、電源がオフになる直前に、前記レジスタのデータのうち、少なくとも、前記実行手段が電源がオフになる直前から継続して実行するために必要なデータを、前記不揮発性メモリの前記退避領域に退避する退避手段をさらに備えることを特徴とする請求項１または２に記載の情報処理装置である。
請求項４に記載の発明は、前記退避手段は、前記退避領域に退避したデータの正当性が確認できる符号を設定する手順と前記不揮発性メモリに前記符号を書き込む手順とを実行することを特徴とする請求項３に記載の情報処理装置である。
請求項５に記載の発明は、前記実行手段は、前記不揮発性メモリの前記退避領域に退避されたデータを前記レジスタに復元することにより、前記情報処理装置を、電源をオフにした直前の状態に復帰できるか否かを判断する手順と、前記判断により、前記情報処理装置を、電源をオフにした直前の状態に復帰できる場合に、前記退避領域のデータを前記レジスタに復元する手順とをさらに実行することを特徴とする請求項３または４に記載の情報処理装置である。
請求項６に記載の発明は、前記不揮発性メモリが、ＭＲＡＭ、ＦｅＲＡＭ、ＰＲＡＭ、ＲｅＲＡＭのいずれかであることを特徴とする請求項１ないし５のいずれか１項に記載の情報処理装置である。
請求項７に記載の発明は、プログラムを実行する実行手段と、当該実行手段の実行に用いられるデータを保持するレジスタと、初期状態に設定するプログラムが保持された、電源を供給しなくても記憶している情報を保持することが可能な不揮発性メモリと、当該実行手段が当該初期状態に設定するプログラムを実行する前に、当該レジスタのデータを全て消去する第１のリセットを行う第１のリセット手段と、当該実行手段が当該初期状態に設定するプログラムを実行した後に、当該レジスタのデータのうち、当該初期状態に設定するプログラムにより設定されたデータを消去することなく他のデータを消去する第２のリセットを行う第２のリセット手段とを備えるコンピュータに、予め定められた機能を実現する機能ユニットの構成および接続された機器を検知する機能と、前記検知の結果に基づいて、レジスタにデータを設定する機能とを実現させるためのプログラムである。
請求項８に記載の発明は、電源を供給しなくても記憶している情報を保持することが可能な不揮発性メモリに設けられ、レジスタのデータが退避された退避領域のデータを、前記レジスタに復元することにより、電源をオフにした直前の状態に復帰できるか否かを判断する機能と、前記判断により電源をオフにした直前の状態に復帰できる場合に、前記退避領域のデータを前記レジスタに復元する機能とをさらに実現させることを特徴とする請求項７に記載のプログラムである。
請求項９に記載の発明は、画像を記録材に形成する画像形成部と、前記画像形成部の動作を制御するプログラムを実行する実行手段と、当該実行手段の実行に用いられるデータを保持するレジスタと、初期状態に設定するプログラムが保持された、電源を供給しなくても記憶している情報を保持することが可能な不揮発性メモリと、当該実行手段が当該初期状態に設定するプログラムを実行する前に、当該レジスタのデータを全て消去する第１のリセットを行う第１のリセット手段と、当該実行手段が当該初期状態に設定するプログラムを実行した後に、当該レジスタのデータのうち、当該初期状態に設定するプログラムにより設定されたデータを消去することなく他のデータを消去する第２のリセットを行う第２のリセット手段とを備え、当該画像形成部の動作を制御する制御部とを備えた画像形成装置である。
【発明の効果】
【０００７】
請求項１の発明によれば、第２のリセット手段を備えない場合に比べ、ハードウエアの構成に対応した初期設定がより安定にできる。
請求項２の発明によれば、本構成を備えない場合に比べ、ハードウエアの構成の変更により容易に対応できる。
請求項３の発明によれば、本構成を備えない場合に比べ、電源をオフにした直前の状態への復帰ができる。
請求項４の発明によれば、本構成を備えない場合に比べ、電源をオフにした直前の状態への復帰がより確実にできる。
請求項５の発明によれば、本構成を備えない場合に比べ、電源をオフにした直前の状態への復帰ができる。
請求項６の発明によれば、本構成を備えない場合に比べ、情報処理装置の動作速度がより速くなる。
請求項７の発明によれば、本構成を備えない場合に比べ、ハードウエアの構成に対応した初期設定がより容易にできる。
請求項８の発明によれば、本構成を備えない場合に比べ、電源をオフにした直前の状態へ復帰ができる。
請求項９の発明によれば、プログラムにより初期設定をしない場合に比べ、ハードウエアの構成の変更に対応した初期設定ができる。
【図面の簡単な説明】
【０００８】
【図１】本実施の形態が適用される情報処理装置の全体構成の一例を示した図である。
【図２】レジスタの構成およびレジスタのデータが書き込まれる退避領域の構成の一例を説明する図である。
【図３】初回に電源をオンにした場合に、情報処理装置が動作状態になるまでを説明するフローチャートである。
【図４】本実施の形態を用いない情報処理装置において、電源をオンにしたときから動作開始になるまでのフローチャートである。
【図５】情報処理装置の電源がオフになるまでを説明するフローチャートである。
【図６】２回目以降に電源がオンにした場合に、情報処理装置が動作状態になるまでを説明するフローチャートである。
【図７】ステップ５０２をさらに詳細なステップに分けて示したフローチャートである。
【図８】画像形成装置の構成の一例を示す図である。
【図９】画像形成装置と通信回線に接続された機器との関係を説明した図である。
【図１０】画像形成装置の通常モードと節電モードとを比較する図である。
【発明を実施するための形態】
【０００９】
情報処理装置では、初期設定に必要なデータがＲＯＭに格納され、電源オンにおいて、ＲＯＭからこれらのデータが読み込まれ、初期化が行われる。
しかし、情報処理装置のハードウエアの構成が変更されると、ＲＯＭに書き込まれたデータも変更せざるを得ない。そこで、情報処理装置においては、ハードウエアが変更された場合であっても、変更されたハードウエアの構成に対応した初期設定が安定にできることが求められていた。
以下、添付図面を参照して、本発明の実施の形態について詳細に説明する。
【００１０】
＜情報処理装置１＞
図１は本実施の形態が適用される情報処理装置１の全体構成の一例を示した図である。
情報処理装置１は、実行手段の一例としての中央処理ユニット（以下ではＣＰＵと表記する。）１０、初期設定プログラムを保持する第１不揮発性メモリ３１、オペレーションシステム（以下ではＯＳと表記する。）、アプリケーションプログラムなどのプログラムを保持する第２不揮発性メモリ３２、そしてデータなどを一時的に保持するＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）として使用される第３不揮発性メモリ３３、後述するデータ／アドレスバス４１および外部バス４２に接続されるバスブリッジ４０、ユーザから情報処理装置１を制御するための信号などが入力されるＵＩＩＦ（ユーザインプットインターフェース）５０、インターネットや電話網などの通信回線に接続される通信ＩＦ（通信インターフェース）６０、外部機器と接続されるＩＯＩＦ（入出力インターフェース）７０、シリアル通信が行われるＳＢＩＦ（シリアルバスインターフェース）８０、電源ユニット９０を備えている。
【００１１】
さらに、情報処理装置１は、データ／アドレスバス４１、外部バス４２を備えている。
ここでは、第１不揮発性メモリ３１、第２不揮発性メモリ３２、第３不揮発性メモリ３３は、読み書き可能な不揮発性記憶素子から構成されている。
【００１２】
なお、不揮発性記憶素子は、情報（“１”／“０”）を保持する機能（記憶機能）を有する記憶素子をいう。不揮発性素子とは、電源を供給する場合に加え、電源を供給しなくても、情報（“１”／“０”）を保持（記憶）する機能（記憶機能）を有している。つまり、情報（“１”／“０”）を記憶し続ける。一方、揮発性素子とは、電源を供給する場合には情報（“１”／“０”）を保持（記憶）する機能（記憶機能）を有するが、電源を供給しない場合には記憶機能が失われる。つまり、情報の保持ができなくなる。
不揮発性記憶素子については、後に詳述する。
【００１３】
第１不揮発性メモリ３１が保持する初期設定プログラムは、情報処理装置１を初期状態に設定する（初期化する）ためのプログラムであって、後述するように情報処理装置１の電源がオンになると、起動されて、情報処理装置１を初期化する。
第２不揮発性メモリ３２が保持するプログラムは、ＯＳ、ＵＩＩＦ５０、通信ＩＦ６０、ＩＯＩＦ７０、ＳＢＩＦ８０およびこれらの入出力インターフェースに接続された機器の動作を制御するデバイスドライバ、情報処理装置１が実行する処理のためのアプリケーションプログラムである。
これらのプログラムの動作については、後述する。
【００１４】
上述したように、第１不揮発性メモリ３１には初期設定プログラムが、第２不揮発性メモリ３２には、ＯＳ、デバイスドライバ、アプリケーションプログラムなどのプログラムが保持されている。これらのプログラムは、展開されて実行可能な状態で保持されていてもよく、第３不揮発性メモリ３３に展開してから実行されてもよい。ここでは、第１不揮発性メモリ３１に初期設定プログラムが展開されて保持され、第２不揮発性メモリ３２にプログラムが展開されて保持されているとして説明する。
【００１５】
次に、ＣＰＵ１０の構成を説明する。
ＣＰＵ１０は、論理演算及び算術演算を行うＡＬＵ（Ａｒｉｔｈｍｅｔｉｃ  Ｌｏｇｉｃａｌ  Ｕｎｉｔ：論理算術演算ユニット）１１、浮動小数点演算を行うＦＰＵ（Ｆｌｏａｔｉｎｇ  Ｐｏｉｎｔ  Ｕｎｉｔ：浮動小数点演算ユニット）１２、割り込み処理を行う割込ユニット１３（Ｉｎｔｅｒｒｕｐｔ  Ｕｎｉｔ）を備えている。さらに、ＣＰＵ１０は、これらの演算および処理を実行するにあたってデータ、アドレス（番地）、各種のフラグなどを保持（記憶）するレジスタ１４を備えている。ここでは、レジスタ１４が保持する“データ、アドレス、各種のフラグなど”をまとめて“データ”と表記する。
【００１６】
また、ＣＰＵ１０は、データ、アドレスなどの読み出し（ロード）および保持（ストア）を制御するロード／ストアユニット（Ｌ／Ｓユニット）１５、命令を復号（デコード）する命令ユニット１６を備えている。
さらに、ＣＰＵ１０は、データ、アドレスなどをキャッシュするデータキャッシュ１８、命令をキャッシュする命令キャッシュ１９、バスブリッジ４０と接続されるバスＩＦ（バスインターフェース）２０を備えている。
【００１７】
そして、ＣＰＵ１０は、上述のＡＬＵ１１、ＦＰＵ１２、割込ユニット１３、レジスタ１４、Ｌ／Ｓユニット１５、命令ユニット１６、データキャッシュ１８、命令キャッシュ１９、バスＩＦ２０を制御する制御ユニット２１を備えている。
そしてまた、ＣＰＵ１０は、ＡＬＵ１１、ＦＰＵ１２、割込ユニット１３、レジスタ１４、Ｌ／Ｓユニット１５、命令ユニット１６、制御ユニット２１に接続され、これらの間で、データ、アドレス、命令などを入出力するための内部バス２２を備えている。
ここでは、ＡＬＵ１１、ＦＰＵ１２、割込ユニット１３、Ｌ／Ｓユニット１５、命令ユニット１６、制御ユニット２１などは、予め定められた機能を実行する機能ユニットの一例である。
【００１８】
ここでは、ＣＰＵ１０を構成するＡＬＵ１１、ＦＰＵ１２、割込ユニット１３、レジスタ１４、Ｌ／Ｓユニット１５、命令ユニット１６、データキャッシュ１８、命令キャッシュ１９、バスＩＦ２０、制御ユニット２１、内部バス２２は、例えばシリコンで構成された一個の半導体チップとして構成されているとする。なお、これらのユニットのうちのいくつかまたはこれらのユニットの一部などが他の半導体チップなどで構成され、ＣＰＵ１０の外部に置かれてもよい。
また、ＣＰＵ１０は、第１不揮発性メモリ３１、第２不揮発性メモリ３２、第３不揮発性メモリ３３の全部または一部を含んで構成されていてもよい。
【００１９】
本実施の形態におけるＣＰＵ１０では、レジスタ１４、データキャッシュ１８、命令キャッシュ１９などは、電力の供給がある場合には情報（“１”／“０”）を保持する記憶機能を有しているが、電力の供給がなくなった場合には、情報を保持できなくなる。すなわち、揮発性であるとする。
同様に、ＡＬＵ１１、ＦＰＵ１２は、内部に演算レジスタを有し、電力の供給がある場合には情報（“１”／“０”）を保持する記憶機能を有しているが、電力の供給がなくなった場合には記憶機能が失われ、情報を保持できなくなる。さらに、割込ユニット１３、命令ユニット１６、バスＩＦ２０、制御ユニット２１なども、それぞれ内部にレジスタを有し、電力の供給がある場合には情報（“１”／“０”）を保持する記憶機能を有しているが、電力の供給がなくなった場合には記憶機能が失われ、情報を保持できなくなる。バスブリッジ４０、ＵＩＩＦ５０、通信ＩＦ６０、ＩＯＩＦ７０、ＳＢＩＦ８０についても同様である。
【００２０】
次に、情報処理装置１における接続関係を説明する。
ＣＰＵ１０のバスＩＦ２０は、データ、アドレス（番地）、命令などが双方向に送受信可能なように、バスブリッジ４０に接続されている。
そして、バスブリッジ４０には、データ／アドレスバス４１および外部バス４２が接続されている。そして、データ／アドレスバス４１には、第１不揮発性メモリ３１、第２不揮発性メモリ３２、第３不揮発性メモリ３３が接続されている。
【００２１】
データ／アドレスバス４１は、アドレスバスとデータバスとを備えている。
アドレスバスは、ＣＰＵ１０が第１不揮発性メモリ３１、第２不揮発性メモリ３２または第３不揮発性メモリ３３のアドレスを指定（アクセス）する信号を送信するための信号線である。例えば、アドレスが３２ビット幅である場合には、アドレスバスは３２本の信号線から構成されている。
また、データバスは、アドレスで指定された第１不揮発性メモリ３１、第２不揮発性メモリ３２または第３不揮発性メモリ３３の領域からデータや命令を読み出すため、データや命令を信号として送信する信号線である。また、アドレスで指定された第１不揮発性メモリ３１、第２不揮発性メモリ３２または第３不揮発性メモリ３３の領域にデータなどを書き込むために、データなどを信号として送信する信号線でもある。すなわち、第１不揮発性メモリ３１、第２不揮発性メモリ３２または第３不揮発性メモリ３３のアドレスが指定されると、そのアドレスからデータまたは命令を読み出したり、データを書き込んだりできる。
例えばデータまたは命令が３２ビット幅の場合には、データバスは３２本の信号線から構成されている。
ここでは、データ／アドレスバス４１は、データバスとアドレスバスとが分けられて構成されているとしたが、データバスおよびアドレスバスのそれぞれの一部または全部が共用されるように構成されていてもよい。
【００２２】
また、第１不揮発性メモリ３１、第２不揮発性メモリ３２、第３不揮発性メモリ３３は、一連のアドレスで読み書き可能であってもよい。
なお、図１に示したように、第１不揮発性メモリ３１、第２不揮発性メモリ３２、第３不揮発性メモリ３３がデータ／アドレスバス４１に並列に接続されている場合は、第１不揮発性メモリ３１、第２不揮発性メモリ３２、第３不揮発性メモリ３３のアドレスが重ならないように配置されている。このとき、第１不揮発性メモリ３１、第２不揮発性メモリ３２、第３不揮発性メモリ３３は、アドレスが連続するように配置されてもよく、第１不揮発性メモリ３１、第２不揮発性メモリ３２、第３不揮発性メモリ３３の間で、アドレスが飛んで配置されてもよい。また、第１不揮発性メモリ３１、第２不揮発性メモリ３２、第３不揮発性メモリ３３のアドレスの順序は問わない。
このように、第１不揮発性メモリ３１、第２不揮発性メモリ３２、第３不揮発性メモリ３３は、ＣＰＵ１０がアクセス可能な空間（アドレス空間）（例えばアドレスが３２ビットの場合は４Ｇの空間）に配置されている。そして、アドレスで指定された領域から予め設定されたビット幅（例えばビット幅が３２ビットの場合は４バイト）のデータまたは命令がビット並列で送受信される。
【００２３】
図１では、第１不揮発性メモリ３１、第２不揮発性メモリ３２、第３不揮発性メモリ３３を分けて示したが、１つの不揮発性メモリ３０として構成されていてもよい。以下では、第１不揮発性メモリ３１、第２不揮発性メモリ３２、第３不揮発性メモリ３３をそれぞれ区別しないときは、不揮発性メモリ３０と表記する。
【００２４】
外部バス４２には、ＵＩＩＦ５０、通信ＩＦ６０、ＩＯＩＦ７０、ＳＢＩＦ８０が接続されデータや命令などが送受信可能に接続されている。
そして、外部バス４２は、データ／アドレスバス４１と同様に、データや命令などを送受信するビット幅に対応した数の信号線から構成されている。
【００２５】
電源ユニット９０は、ＣＰＵ１０、第１不揮発性メモリ３１、第２不揮発性メモリ３２、第３不揮発性メモリ３３、バスブリッジ４０、ＵＩＩＦ５０、通信ＩＦ６０、ＩＯＩＦ７０、ＳＢＩＦ８０のそれぞれに電力を供給するように接続されている。なお、図１においては、電源ユニット９０から電力を供給する配線（ライン）の表記を省略する。
【００２６】
次に、ＣＰＵ１０の内部の接続関係を説明する。
ＣＰＵ１０の内部バス２２には、ＡＬＵ１１、ＦＰＵ１２、割込ユニット１３、レジスタ１４、Ｌ／Ｓユニット１５、命令ユニット１６、制御ユニット２１が並列に接続されている。そして、ＡＬＵ１１、ＦＰＵ１２、割込ユニット１３、レジスタ１４、Ｌ／Ｓユニット１５、命令ユニット１６、制御ユニット２１と内部バス２２との間で、データ、アドレスなどが双方向に送受信できるようになっている。
内部バス２２は、データ、アドレスなどが送受信されるビット幅、例えば３２ビットである場合にはビット幅に対応した３２本の信号線から構成されている。
【００２７】
データキャッシュ１８は、データが双方向に送受信できるようにＬ／Ｓユニット１５に接続されている。さらに、データキャッシュ１８は、第１不揮発性メモリ３１、第２不揮発性メモリ３２または第３不揮発性メモリ３３とデータが双方向に送受信できるように、バスＩＦ２０に接続されている。
命令キャッシュ１９は命令を命令ユニット１６に送信できるように接続されている。また、命令キャッシュ１９は第１不揮発性メモリ３１、第２不揮発性メモリ３２または第３不揮発性メモリ３３から命令を受信できるようにバスＩＦ２０に接続されている。
【００２８】
前述したように、第１不揮発性メモリ３１、第２不揮発性メモリ３２、第３不揮発性メモリ３３は、読み書き可能な不揮発性記憶素子により構成され、電力の供給がある場合に加え、電力の供給がない場合においても、情報（“１”／“０”）を保持する（保持し続ける）記憶機能を有している。
一方、揮発性記憶素子は、電力の供給がある場合に記憶機能を有しているが、電力の供給がない場合には記憶機能を失う。
以下、揮発性記憶素子と比較しながら、不揮発性記憶素子を説明する。
【００２９】
揮発性記憶素子の例としては、静電容量（キャパシタ）に蓄えられた電荷の有無により情報（“１”／“０”）を保持し、ＤＲＡＭ（ｄｙｎａｍｉｃ  ＲＡＭ）に用いられるメモリセルがある。また、フリップフロップ（ＦＦ）によるラッチ効果によって、情報（“１”／“０”）を保持し、ＳＲＡＭ（ｓｔａｔｉｃ  ＲＡＭ）に用いられるメモリセルがある。
ＤＲＡＭおよびＳＲＡＭは、半導体チップ上に、それぞれに対応するメモリセルがマトリクス状に配置されて構成されている。そして、セル間に格子状に設けられた配線とその配線に接続されて形成された駆動回路とにより、任意のセルにアクセスでき、情報（“１”／“０”）を読み書きできる。このため、これらはＲＡＭ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）と呼ばれている。
ＤＲＡＭに用いられるメモリセルは、ＳＲＡＭに用いられるメモリセルに比べて占有する面積が小さく、高集積化に向く。よって、大容量であることが求められるメインメモリとして用いられる。ただし、ＤＲＡＭでは、時間の経過とともにメモリセルの静電容量に蓄積された電荷の量が減衰する。このため、保持した情報（“１”／“０”）が時間の経過によって失われないよう、予め定められた時間間隔で、電荷の量を元に戻すリフレッシュが行われる。
ＳＲＡＭに用いられるメモリセルは、フリップフロップ（ＦＦ）によるラッチ効果により、情報（“１”／“０”）が保持される。ＳＲＡＭに用いられるメモリセルは、ＤＲＡＭに用いられるメモリセルに比べて占有する面積が大きい。しかし、ＳＲＡＭは、ＤＲＡＭに比べて高速に読み書きができるので、レジスタ１４、データキャッシュ１８、命令キャッシュ１９などに用いられる。
【００３０】
一方、不揮発性記憶素子には、磁極の向きにより情報（“１”／“０”）を保持する磁性を利用したメモリセルを円板上に配列したＨＤＤ（ハードディスクドライブ）がある。ＨＤＤは、大容量であるが機械的機構によって、メモリセルから情報（“１”／“０”）を読み書きするため、情報（“１”／“０”）の読み書き速度（アクセス速度）が遅い。
また、不揮発性記憶素子には、ＭＯＳトランジスタのゲート電極（フローティングゲート）に蓄積した電荷の有無により情報（“１”／“０”）を保持するメモリセルがある。このようなメモリセルを用いたメモリには、フラッシュメモリ、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）などがある。
フラッシュメモリおよびＥＥＰＲＯＭは、電気的に状態（“１”／“０”）の読み書きができるが、前述のＳＲＡＭ、ＤＲＡＭに比べて読み書き速度が、特に書き込み速度が遅い。そして、フラッシュメモリ、ＥＥＰＲＯＭには、書き換え回数に制限がある。
【００３１】
この他、不揮発性記憶素子を用いたメモリには、磁気メモリ（ｍａｇｎｅｔｏｒｅｓｉｓｔｉｖｅ  ＲＡＭ：ＭＲＡＭと表示する。）、強誘電体メモリ（ｆｅｒｒｏｅｌｅｃｔｒｉｃ  ＲＡＭ：ＦｅＲＡＭと表記する。）、相変化メモリ（ｐｈａｓｅ  ｃｈａｎｇｅ  ＲＡＭ：ＰＲＡＭと表記する。）、抵抗メモリ（ｒｅｓｉｓｔａｎｃｅ  ＲＡＭ：ＲｅＲＡＭと表記する。）などがある。
ＭＲＡＭに用いられるメモリセルは、２枚の磁性積層膜をトンネル磁気抵抗膜で挟み、重ねた磁性積層膜の磁化のなす相対角度によりトンネル磁気抵抗膜の抵抗が変化する磁気抵抗（ｍａｇｎｅｔｏｒｅｓｉｓｔｉｖｅ：ＭＲ）効果を用いて情報（“１”／“０”）を保持する。ＦｅＲＡＭに用いられるメモリセルは、ＰＺＴ（Ｐｂ（Ｚｒ、Ｔｉ）Ｏ３）などの強誘電体の分極を用いて情報（“１”／“０”）を保持する。ＰＲＡＭに用いられるメモリセルは、カルコゲナイドの相変化にともなう抵抗変化により情報（“１”／“０”）を保持する。ＲｅＲＡＭに用いられるメモリセルは、電圧の印可による電気抵抗の大きな変化（ＣＥＲ（ｃｏｌｏｓｓａｌ  ｅｌｅｃｔｒｏ−ｒｅｓｉｓｔａｎｃｅ）効果）を利用し、抵抗変化により情報（“１”／“０”）を保持する。
【００３２】
これらのメモリ（ＭＲＡＭ、ＦｅＲＡＭ、ＰＲＡＭ、ＲｅＲＡＭ）は、ＤＲＡＭ、ＳＲＡＭと同様に半導体基板上にメモリセルをマトリクス状に高密度に配置でき、一体形成された駆動回路により高速な読み書きができる。さらに、書き換え回数の制限が原理的にない、または書き換え可能な回数が極めて大きい（以下では、書き換え回数の制限が小さいと表記する）。
このため、これらのメモリ（ＭＲＡＭ、ＦｅＲＡＭ、ＰＲＡＭ、ＲｅＲＡＭ）は、ＳＲＡＭ、ＤＲＡＭと同様に第１不揮発性メモリ３１、第２不揮発性メモリ３２、第３不揮発性メモリ３３、データキャッシュ１８、命令キャッシュ１９などに適用しやすい。
【００３３】
本実施の形態では、第１不揮発性メモリ３１、第２不揮発性メモリ３２、第３不揮発性メモリ３３を、一例としてＭＲＡＭで構成されているとして説明する。なお、ＭＲＡＭ以外のＦｅＲＡＭ、ＰＲＡＭ、ＲｅＲＡＭで構成してもよいし、アクセス速度や書き換え回数に制約を受けない場合には、ＨＤＤ、フラッシュメモリ、ＥＥＰＲＯＭなどであってもよい。
一方、ＣＰＵ１０におけるレジスタ１４、データキャッシュ１８、命令キャッシュ１９などはＳＲＡＭで構成されているとして説明する。
【００３４】
＜レジスタ１４および退避領域３３−１〜３３−３８＞
次に、レジスタ１４の構成について説明する。
図２は、レジスタ１４の構成およびレジスタ１４のデータが書き込まれる退避領域（後述する退避領域３３−１〜３３−３８）の構成の一例を説明する図である。図２（ａ）は、レジスタ１４の構成を示し、図２（ｂ）は第３不揮発性メモリ３３に設けられたレジスタ１４のデータが書き込まれる退避領域３３−１〜３３−３８の構成を示している。
【００３５】
まず、レジスタ１４の構成を説明する。
レジスタ１４は、一例として３６個のレジスタ１４−１〜１４−３６を備えている。それぞれのレジスタ１４−１〜１４−３６は、それぞれアドレス（不図示）を有し、そのアドレスにより区別される。
レジスタ１４−１〜１４−３０は、用途が固定されていない汎用レジスタ（Ｒ１〜Ｒ３０と表記する。）である。例えば、ＡＬＵ１１の演算のためのデータ、アドレス、不揮発性メモリ３０上に設けられたスタックのアドレス（スタックポインタなど）を保持するために用いられる。なお、スタックは一時的にデータを保持する領域である。
【００３６】
レジスタ１４−３１は、ＦＰＵ１２の演算結果を保持する浮動小数点レジスタ（ＦＰＲと表記する。）である。
レジスタ１４−３２は、コンディションレジスタ（ステータスレジスタ）（ＣＲと表記する。）であって、ＣＰＵ１０のコンディション（ステータス）を保持する。コンディション（ステータス）としては、ＡＬＵ１１における演算においてオーバーフローが生じたときに設定されるオーバーフローフラグ、キャリーが発生したときに設定されるキャリーフラグ、負の値となったときに設定されるネガティブフラグなどがある。
レジスタ１４−３３は、リンクレジスタ（ＬＲと表記する。）であって、サブルーチンコールで分岐した場合の戻りアドレスを保持する。
レジスタ１４−３４は、コントロールレジスタ（ＣＴＲと表記する。）であって、コンディションレジスタの各種フラグをリセット（解除）したり、ＣＰＵ１０の動作速度を落として低消費電力状態にしたりするなど、ＣＰＵ１０を特殊な状態にすることを指示する。
レジスタ１４−３５は、コンフィギュレーションレジスタ（ＣＦＧと表記する。）であって、情報処理装置１の機能ユニットの構成および入出力インターフェースに接続された機器などについての情報を保持する。例えば、情報処理装置１が、ＡＬＵ１１、ＦＰＵ１２、割込ユニット１３などの機能ユニット、ＵＩＩＦ５０、通信ＩＦ６０、ＩＯＩＦ７０、ＳＢＩＦ８０などの入出力インターフェースに接続された機器に関する情報を保持する。
そして、レジスタ１４−３６は、プログラムカウンタ（ＰＣと表記する。）であって、次に実行される命令を格納する不揮発性メモリ３０のアドレスを保持する。
【００３７】
次に、レジスタ１４のデータを退避する退避領域３３−１〜３３−３８について説明する。
退避領域３３−１〜３３−３８は、第３不揮発性メモリ３３の一部に設けられている。
退避領域３３−１〜３３−３６は、それぞれがレジスタ１４のレジスタ１４−１〜１４−３６に対応し、レジスタ１４−１〜１４−３６のデータの退避に用いられる。
そして、退避領域３３−３７は、レジスタ１４のデータを退避したことを示すフラッグ（ＳＦ）である。
さらに、退避領域３３−３８は、退避領域３３−１〜３３〜３６に退避したデータのパリティ、チェックサムまたは誤り訂正符号（ＥＣＣ）などデータの正当性を確認できるエラー検出符号（ＥＤＣと表記する。）を書き込む領域である。退避領域３３−１〜３３−３６からデータを読み出す際に、新たに計算された符号（ＥＤＣ）と対比して、エラーが発生していないことを確認する。
なお、退避領域３３−１〜３３−３８は、第３不揮発性メモリ３３において、電源をオフにする直前の状態から継続して情報処理装置１を動作させる場合に必要とされる、データ、スタックなどが保持された領域を避けて設けられることが好ましい。
また、退避領域３３−１〜３３−３８は、第１不揮発性メモリ３１または第２不揮発性メモリ３２のいずれかに設けてもよい。第１不揮発性メモリ３１に設ける場合は、初期設定プログラムが書き込まれた領域、第２不揮発性メモリ３２に設ける場合は、プログラムが書き込まれた領域を避けて設けられることが好ましい。
【００３８】
＜情報処理装置１の動作＞
次に、情報処理装置１の動作を説明する。
本実施の形態における情報処理装置１は、前述したように第１不揮発性メモリ３１に保持された初期設定プログラムを有している。そして、実行される処理がそれぞれ異なる複数のリセットを有している。
ここでは、初回に電源をオンにする場合、電源をオフにする場合、二回目以降に電源をオンにする場合を説明する。
【００３９】
［初回に電源をオンにする場合］
まず、初回に電源をオンにする場合を説明する。
図３は、初回に電源をオンにした場合に、情報処理装置１が動作状態になるまでを説明するフローチャートである。
電源ユニット９０から電力が供給されて、情報処理装置１の電源がオンになると、第１のリセット手段の一例としての制御ユニット２１により、第１のリセットの一例としてのハードウエアリセット（ＨＷリセット）が行われる（ステップ１０１）。次いで、ハードウエア（ＨＷ）による初期設定が行われる（ステップ１０２）。そして、初期設定プログラムによる初期設定が行われる（ステップ１０３）。その後、第２のリセット手段の一例としての制御ユニット２１により、第２のリセットの一例としてのスマートリセットが行われる（ステップ１０４）。そして、ＯＳ、デバイスドライバ、アプリケーションプログラムなどが起動される（ステップ１０５）。そして、情報処理装置１が動作状態になる。
以下では、これらを詳細に説明する。
【００４０】
（ＨＷリセット（ステップ１０１））
情報処理装置１の電源がオンになると、ＨＷリセットが行われる。
ＨＷリセットにおいて、ＣＰＵ１０のレジスタ１４のデータ（レジスタ値）が全て消去（クリア）される。例えば、“０”に設定される。
そして、ＣＰＵ１０のＡＬＵ１１、ＦＰＵ１２の内部の演算レジスタ、割込ユニット１３、Ｌ／Ｓユニット１５、命令ユニット１６、バスＩＦ２０、制御ユニット２１などの内部に設けられたレジスタもクリアされる。同様に、データキャッシュ１８、命令キャッシュ１９もクリアされる。さらに、バスブリッジ４０、ＵＩＩＦ５０、通信ＩＦ６０、ＩＯＩＦ７０、ＳＢＩＦ８０についても同様である。このように、ＣＰＵ１０のＡＬＵ１１、ＦＰＵ１２の内部に設けられた演算レジスタなどをクリアすることを情報処理装置１の回路の初期化と表記する。
【００４１】
（ＨＷによる初期設定（ステップ１０２））
ＨＷリセットが解除されると、ＣＰＵ１０の動作モードの設定、初期設定プログラムを読み出す（ブートする）不揮発性メモリの指定（第１不揮発性メモリ３１と指定）など、初期設定プログラムの起動に必要な設定が行われる。
そして、レジスタ１４のレジスタ１４−３６（ＰＣ）のデータ（レジスタ値）が、第１不揮発性メモリ３１に保持された初期設定プログラムの開始アドレスに設定される。
これらは、図示しないシリアルＥＥＰＲＯＭ（ＳＥＥＰＲＯＭ）または外付けスイッチ（ディップスイッチなど）により設定される。
【００４２】
（初期設定プログラムによる初期設定（ステップ１０３））
次に、制御ユニット２１により、レジスタ１４内のレジスタ１４−３６（ＰＣ）に設定された初期設定プログラムの開始アドレスが呼び出される。そして、開始アドレスがＬ／Ｓユニット１５、データキャッシュ１８、バスＩＦ２０、バスブリッジ４０、データ／アドレスバス４１を経由して、第１不揮発性メモリ３１に送信される。すると、第１不揮発性メモリ３１の指定されたアドレスから、初期設定プログラムの最初の命令が読み出される。その命令は、データ／アドレスバス４１、バスブリッジ４０、バスＩＦ２０、命令キャッシュ１９を経由して、命令ユニット１６に送信される。そして、命令ユニット１６によってデコードされる。そして、制御ユニット２１により実行される。
アドレスが順次設定され、第１不揮発性メモリ３１からの命令の読み出しと制御ユニット２１での実行とが繰り返し行われる。このようにして、初期設定プログラムが実行される。
このとき、演算が必要な場合は、ＡＬＵ１１、ＦＰＵ１２などにデータやアドレスが送信され、演算が実施される。
【００４３】
初期設定プログラムは、始めに情報処理装置１の機能ユニットの構成および入出力インターフェースに接続された機器を検知する。すなわち、情報処理装置１のＡＬＵ１１、ＦＰＵ１２、割込ユニット１３などの機能ユニットの構成、ＵＩＩＦ５０、通信ＩＦ６０、ＩＯＩＦ７０、ＳＢＩＦ８０などの入出力インターフェースに接続された機器からの信号をチェックすることで検知し、レジスタ１４−３５（ＣＦＧ）に情報（“１”／“０”）として書き込む。なお、レジスタ１４−３５（ＣＦＧ）には、機能ユニット、接続された機器のそれぞれに対応する情報（“１”／“０”）を書き込む領域が設けられている。
次に、レジスタ１４−３５（ＣＦＧ）の内容に基づいて、レジスタ１４のレジスタ１４−１〜１４−３０に、スマートリセットが解除されたときの情報処理装置１の動作に必要なデータ（レジスタ値）を設定する。
本実施の形態では、初期設定をプログラム（初期設定プログラム）で行うので、条件判断や分岐ができる。よって、情報処理装置１の機能ユニットの構成や入出力インターフェースに接続された機器に違いがあっても、レジスタ１４に必要なデータを設定することができる。すなわち、機能ユニットの構成が異なる情報処理装置１であっても、また接続される機器が異なる情報処理装置１であっても、一つの初期設定プログラムで初期設定ができる。
なお、初期設定プログラムは、情報処理装置１において想定される機能ユニット構成の違いに対応して必要なデータをレジスタ１４に設定できるとともに、入出力インターフェースに接続されうる機器に必要なデータ（レジスタ値）がレジスタ１４に設定できるようにプログラムされている。
【００４４】
そして、次に説明するスマートリセットが解除されたときに動作させるプログラムが格納された先頭番地をレジスタ１４−３６（ＰＣ）に設定する。ここでは、スマートリセット解除後にＯＳを起動するとし、レジスタ１４−３６（ＰＣ）にＯＳを起動するアドレスをデータ（ＰＣ値）として書き込む。
【００４５】
（スマートリセット（ステップ１０４））
初期設定プログラムの動作により、レジスタ１４の、例えばレジスタ１４−３１（ＦＰＲ）、１４−３２（ＣＲ）、１４−３３（ＬＲ）、１４−３４（ＣＴＲ）には、残す必要のないデータ（レジスタ値）が保持されている。また、レジスタ１４−１〜１４−３０においても、スマートリセット解除後における情報処理装置１の動作に不要なデータ（レジスタ値）が保持されている。
そこで、スマートリセットでは、これらの残す必要のないデータ（レジスタ値）をクリアする。
なお、初期設定プログラムにより、情報処理装置１の動作に必要なデータ（レジスタ値）が設定されたレジスタ（レジスタ１４−１〜１４−３０のうち）、情報処理装置１の機能ユニットの構成や接続された機器に関する情報が設定されたレジスタ１４−３５（ＣＦＧ）およびスマートリセット解除後に動作するプログラムの開始番地（ＰＣ値）が設定されたレジスタ１４−３６（ＰＣ）はクリアすることなく、設定されたデータ（レジスタ値）を保持する。
このようにすることで、次のプログラムの起動において、レジスタ１４のデータ（レジスタ値）を再設定する必要がない。また、レジスタ１４に不適切なデータ（レジスタ値）が残ったことによる誤動作の発生を抑制する。
【００４６】
（プログラムの起動（ステップ１０５））
スマートリセットが解除されると、ＣＰＵ１０は、レジスタ１４−３６（ＰＣ）に設定されたプログラムの開始番地から命令を読み出し、ＯＳを起動する。
ＯＳの起動後に、ＵＩＩＦ５０、通信ＩＦ６０、ＩＯＩＦ７０、ＳＢＩＦ８０などおよびこれらに接続された機器を制御するデバイスドライバが起動される。
そして、デバイスドライバが起動され、アプリケーションプログラムが起動される。
アプリケーションプログラムが起動されることにより、情報処理装置１は動作状態に移行する。
【００４７】
比較のため、本実施の形態を用いない場合、すなわち初期設定プログラムを用いないで初期設定する場合を説明する。本実施の形態を用いない場合の情報処理装置１では、不揮発性メモリ３０の代わりに、ＤＲＡＭなどの揮発性メモリが設けられているとする。
そして、ＯＳ、デバイスドライバ、アプリケーションプログラムなどは、ＩＯＩＦ７０に接続されたＨＤＤに保存されているとする。
【００４８】
図４は、本実施の形態を用いない情報処理装置１において、電源をオンにしたときから動作状態になるまでのフローチャートである。
電源ユニット９０により情報処理装置１の電源がオンになると、ＨＷリセットが行われる（ステップ２０１）。次いで、ハードウエア（ＨＷ）による初期設定が行われる（ステップ２０２）。その後、プログラムが起動される（ステップ２０３）。
以下では、電源をオンにした場合に情報処理装置１が動作状態になるまでを、本実施の形態と比較して説明する。
【００４９】
（ＨＷリセット（ステップ２０１））
電源がオンになると、自動的にＨＷリセットが行われる。ＨＷリセットは、本実施の形態におけるステップ１０１と同様である。よって、説明を省略する。
【００５０】
（ＨＷによる初期設定（ステップ２０２））
ＨＷリセットが解除されると、ＣＰＵ１０の動作モードの設定、初期設定プログラムを読み出す（ブートする）記憶装置の指定（ＨＤＤと指定）など、プログラムの起動に必要な設定が行われる。また、情報処理装置１の機能ユニットの構成および接続された機器の情報を保持するレジスタ１４−３５（ＣＦＧ）のレジスタ値が設定される。
これらは、図示しないシリアルＥＥＰＲＯＭ（ＳＥＥＰＲＯＭ）または外付けスイッチ（ディップスイッチなど）により設定される。
【００５１】
（プログラムの起動（ステップ２０３））
次に、ＨＤＤからＯＳが読み出され、本実施の形態における不揮発性メモリ３０の代わりに設けられた揮発性メモリにロード（展開）されて、起動される。そして、デバイスドライバが起動される。その後、アプリケーションプログラムが揮発性メモリにロード（展開）されて、起動される。
アプリケーションプログラムが起動されることにより、情報処理装置１は動作状態に移行する。
【００５２】
以上説明したように、本実施の形態を用いない場合には、情報処理装置１は、電源がオンになるのが初回であっても、２回目以降であっても、同じ初期設定が行われる。
また、情報処理装置１の機能ユニットの構成が異なっても、接続された機器が異なっても、同じ初期設定となる。
したがって、初期設定を変更するには、シリアルＥＥＰＲＯＭ（ＳＥＥＰＲＯＭ）または外付けスイッチ（ディップスイッチなど）の設定を変更することが必要となり、情報処理装置１の機能ユニットの構成の変更や接続される機器の変更に柔軟に対応することができない。
すなわち、本実施の形態では、初期設定プログラムを用いて初期設定を行うので、条件判断や分岐ができ、情報処理装置１の機能ユニットの構成の変更または／および接続される機器の変更に柔軟に対応できる。
【００５３】
［電源をオフにする場合］
次に、情報処理装置１の電源をオフにする場合を説明する。
図５は、情報処理装置１の電源がオフになるまでを説明するフローチャートである。
情報処理装置１の電源がオフになるのは、電源ユニット９０のボタンを押すこと（オフボタンを押すまたはオンボタンを再度押すなど）により、“電源オフの指示”が出された場合、または情報処理装置１が予め定められた待機状態（スタンバイ）になるための条件を満たし、待機状態に移行するために“電源オフの指示”を自らが出した場合などがある。そこで、図５では、“電源オフの指示”から始める。
“電源オフの指示”が出ると、退避手段の一例としての制御ユニット２１は、レジスタ１４のレジスタ１４−１〜１４−３６に保持されたデータ（レジスタ値）を、第３不揮発性メモリ３３の退避領域３３−１〜３３−３６に退避する。退避するとは、レジスタ１４のレジスタ１４−１〜１４−３６のそれぞれのデータ（レジスタ値）を、第３不揮発性メモリ３３の退避領域３３−１〜３３−３６にそれぞれコピーすることをいう。
同時に、データ（レジスタ値）を退避したことを示すフラッグ（ＳＦ）を退避領域３３−３７に書き込む（例えば“１”とする。）。さらに、退避領域３３−１〜３３〜３６に退避したデータ（レジスタ値）のパリティ、チェックサムまたは誤り訂正符号（ＥＣＣ）など、退避領域３３−１〜３３−３６からデータを読み出す時に、データにエラーが発生していないこと（正当性）を確認するためのエラー検出符号（ＥＤＣ）を、退避領域３３−３８に書き込む（ステップ３０１）。
【００５４】
この後、電源ユニット９０からの電力の供給を停止して、情報処理装置１を電源オフにする。
なお、電源ユニット９０は、待機状態から復帰するための“復帰の指示”を受信するための給電制御回路９０ａ（後述する図８、図１０参照）を備え、給電制御回路９０ａはオンの状態のままに保持されるようになっていてもよい。
【００５５】
［２回目以降に電源がオンにする場合］
図６は、２回目以降に電源がオンにした場合に、情報処理装置１が動作状態になるまでを説明するフローチャートである。
電源ユニット９０から電力が供給されて、情報処理装置１を２回目以降に電源をオンにすると、ＨＷリセットが行われる（ステップ４０１）。次いで、ＨＷによる初期設定が行われる（ステップ４０２）。そして、初期設定プログラムによる初期設定が行われる（ステップ４０３）。その後、スマートリセットが行われる（ステップ４０４）。そして、プログラムの起動が行われる（ステップ４０５）。この後に、情報処理装置１は動作状態になる。
なお、初期設定プログラムによる初期設定（ステップ４０３）は後述するように、複数のステップに分かれている（ステップ５０１〜５０３）。
以下では、図３に示した、初回に電源をオンにした場合と異なる部分を説明し、同様な部分の説明を省略する。
【００５６】
（ＨＷリセット（ステップ４０１））
２回目以降に電源をオンにした場合であっても、ＨＷリセットは、初回に電源をオンにする場合のＨＷリセット（図３のステップ１０１参照）と同様である。よって、説明を省略する。
【００５７】
（ＨＷによる初期設定（ステップ４０２））
２回目以降に電源をオンにする場合であっても、ＨＷにより初期設定は、初回に電源をオンにする場合のＨＷによる初期設定（図３のステップ１０２参照）と同様である。よって、説明を省略する。
【００５８】
（初期設定プログラムによる初期設定（ステップ４０３））
初期設定プログラムが起動されると、まず情報処理装置１の機能ユニットの構成および入出力インターフェースを介して接続された機器を検知する。すなわち、情報処理装置１のＡＬＵ１１、ＦＰＵ１２、割込ユニット１３などの機能ユニット、ＵＩＩＦ５０、通信ＩＦ６０、ＩＯＩＦ７０、ＳＢＩＦ８０などの入出力インターフェースに接続された機器からの信号をチェックすることで検知し、レジスタ１４−３５（ＣＦＧ）にデータ（情報（“１”／“０”））を設定する（書き込む）（ステップ５０１）。
【００５９】
次に、初期設定プログラムは、第３不揮発性メモリ３３の退避領域３３−１〜３３−３６に退避したデータをレジスタ１４に復元することで、情報処理装置１を電源がオフになる直前の状態に復帰できるか否かを判断する（ステップ５０２）。
このステップ５０２は、少なくとも３つのステップ（後述する図７に示すステップ６０１、６０２、６０３）を備えている。
【００６０】
図７は、ステップ５０２をさらに詳細なステップに分けて示したフローチャートである。図７では、ステップ５０１を開始としている。
まず、退避領域３３−３７（ＳＦ）の値（“１”／“０”）を調べる（ステップ６０１）。そして、“０”である場合には“Ｎｏ”と判断する。すなわち、レジスタ１４のデータ（レジスタ値）が退避されていないので、電源をオフにした直前の状態に復帰させることができない。
【００６１】
一方、退避領域３３−３７（ＳＦ）の値が“１”である場合（“Ｙｅｓ”の場合）には、レジスタ１４−３５（ＣＦＧ）のデータ（レジスタ値）と、第３不揮発性メモリ３３の退避領域３３−３５（ＳＣＦＧ）のデータとを比較する（ステップ６０２）。これらの値が一致しない場合は“Ｎｏ”と判断する。すなわち、情報処理装置１の機能ユニットの構成や接続されている機器に変更があるので、電源をオフにした直前の状態に復帰させることができない。
【００６２】
レジスタ１４−３５（ＣＦＧ）のデータ（レジスタ値）と退避領域３３−３５（ＳＣＦＧ）に書き込まれたデータとが一致する場合（“Ｙｅｓ”の場合）は、情報処理装置１の機能ユニットの構成や接続されている機器に変更がないことになる。
よって、次に、電源をオフにする直前に退避領域３３−３８に書き込んだエラー検出符号（ＥＤＣ）を計算する方法を用いて、退避領域３３−１〜３３−３６に書き込まれたデータからエラー検出符号（ＥＤＣ）を再度計算する。そして、再度計算されたエラー検出符号（ＥＤＣ）と退避領域３３−３８に書き込まれたデータ（エラー検出符号（ＥＤＣ））とを比較する（ステップ６０３）。これらが一致しない場合は“Ｎｏ”と判断する。すなわち、レジスタ１４のデータ（レジスタ値）を退避した時点以降において、退避領域３３−１〜３３−３６または退避領域３３−３７（ＥＤＣ）に書き込まれたデータが変化したことになる。よって、退避領域３３−１〜３３−３６のデータが正常か判断できず、電源をオフにした直前の状態に復帰させることができない。
これらが一致する場合は、“Ｙｅｓ”と判定する。
【００６３】
このように、図６のステップ５０２では、３つの判断（ステップ６０１、６０２、６０３）を介して、電源をオフにした直前の状態に情報処理装置１を復帰できるか否かが判定される。
【００６４】
図６に戻って、“Ｙｅｓ”の場合を説明する。レジスタ１４のレジスタ１４−１〜１４〜３０において、情報処理装置１の動作に必要なレジスタの値を、退避領域３３−１〜３３−３０から書き戻す（復元する）。また、レジスタ１４−３６（ＰＣ）の値を、退避領域３３−３６から書き戻す（復元する）（復元機能）（ステップ５０３）。
【００６５】
（スマートリセット（ステップ４０４））
初回に電源がオンになった場合のスマートリセット（図３のステップ１０４参照）と同様に、スマートリセットが行われる。よって、図６では、スマートリセットの内容の記載を省略した。
（プログラムの起動（ステップ４０５））
本実施の形態では、不揮発性メモリ３０（第１不揮発性メモリ３１、第２不揮発性メモリ３２、第３不揮発性メモリ３３）を備えているので、電源をオフにした直前の状態が維持されている。
よって、レジスタ１４のデータ（レジスタ値）を、電源をオフにした直前の状態に戻すことで、情報処理装置１は電源をオフにした直前の状態に戻る。よって、復元したレジスタ１４−３６（ＰＣ）で指定された不揮発性メモリ３０のアドレスから命令を読み出すことで、電源をオフにした直前の状態から引き続いて処理が行われる。
このようにすることで、情報処理装置１の立ち上げに要する時間を短縮するとともに、電源オフの直前の状態から引き続いて処理を行える。
【００６６】
一方、“Ｎｏ”の場合には、初回に電源をオンにした場合と同様に、初期設定プログラムが、情報処理装置１の動作に必要なデータ（レジスタ値）をレジスタ１４に設定し、スマートリセットが解除された後に実行されるプログラムの開始アドレスをレジスタ１４−３６（ＰＣ）のデータ（ＰＣ値）として設定する（ステップ５０４）。
【００６７】
（スマートリセット（ステップ４０６））
初回に電源をオンにした場合のスマートリセット（図３のステップ１０４参照）と同様に、スマートリセットが行われる。よって、詳細な説明を省略する。
（プログラムの起動（ステップ４０７））
初回に電源をオンになった場合のプログラムの起動（図３のステップ１０５参照）と同様に、プログラムの起動が行われる。よって、詳細な説明を省略する。
【００６８】
以上説明したように、本実施の形態の情報処理装置１では、初期設定をハードウエア（ＨＷによる初期設定）とソフトウエア（初期設定プログラムによる初期設定）とで行っている。このようにすることで、電源オン時の情報処理装置１の機能ユニットの構成や接続されている機器に対応して、レジスタ１４のデータを設定することで、初期化できる。よって、初期設定プログラムを変更することなく、情報処理装置１の機能ユニットの構成の変更または／および接続された機器の変更に柔軟に対応することができる。
また、レジスタ１４のデータを、電源をオフにした直前の値に戻すことで、情報処理装置１は、電源をオフにした直前の状態から引き続いて処理が行える。
さらに、電源をオンにした時の情報処理装置１の機能ユニットの構成や接続された機器に対応して、レジスタ１４のデータを設定することで、情報処理装置１の初期設定に要する時間が短くなる。
【００６９】
また、ＲＡＭとして使用する第３不揮発性メモリ３３をＤＲＡＭなどの揮発性メモリで構成してもよい。このときは、退避領域３３−１〜３３−３８および電源をオフにした直前の状態から復帰させるために必要なデータなどを記憶する領域を、第１不揮発性メモリ３１または第２不揮発性メモリ３２に設ければよい。
【００７０】
また、上記では、不揮発性メモリ３０は、ＭＲＡＭとして説明したが、ＤＲＡＭなどの揮発性メメリで構成し、常時オン状態に維持したり、バッテリーなどでバックアップしたりしてもよい。
【００７１】
＜画像形成装置１００＞
次に、上記の情報処理装置１を、画像形成装置１００の制御部として構成する場合を説明する。
図８は、画像形成装置１００の構成の一例を示す図である。
画像形成装置１００は、図１に示した情報処理装置１に、ボタンなどユーザが信号を送信するためのＵＩ（ユーザインターフェース）１２０、プリンタなどの画像形成部１３０、スキャナなどの画像読取部１４０、通信回線２００（後述する図９参照）とデータなどの送受信を行う送受信部１５０を備えた構成となっている。
ここでは、ＵＩ１２０は情報処理装置１のＵＩＩＦ５０に、画像形成部１３０は情報処理装置１のＩＯＩＦ７０に、画像読取部１４０はＳＢＩＦ８０に、そして送受信部１５０は、通信ＩＦ６０にそれぞれ接続されているとして説明する。
【００７２】
図９は、画像形成装置１００と通信回線２００に接続された機器との関係を説明した図である。
画像形成装置１００は、送受信部１５０を介して、インターネット、電話網などの通信回線２００に接続されている。そして、通信回線２００には、コンピュータ（ＣＯＭ）３００、ファクシミリ装置４００、サーバ５００などが接続されている。
【００７３】
画像形成装置１００の基本的な動作を説明する。
画像形成装置１００は、画像読取部１４０から読み取った画像を、画像形成部１３０により用紙などの記録材に印刷する。
なお、画像形成部１３０は、ＬＥＤなどにより感光体ドラムに潜像を書き込み、潜像をトナーで現像して記録材に転写する方式でもよく、インクジェットなどで記録材に画像を形成する方式でもよい。画像読取部１４０は、受光素子アレイをスキャンさせる方式であってもよく、ＣＣＤなどの撮像素子で画像を読み取る方式でもよい。
【００７４】
また、画像形成装置１００は、通信回線２００を介してコンピュータ（ＣＯＭ）３００またはファクシミリ装置４００から送信された画像などのデータを画像形成部１３０により記録材に印刷する。
一方、画像形成装置１００は、画像読取部１４０が読み取った画像などのデータを、送受信部１５０から通信回線２００を介して画像形成装置１００の外部に置かれたコンピュータ（ＣＯＭ）３００および／またはファクシミリ装置４００に送信する。
さらに、画像形成装置１００は、通信回線２００を介してサーバ５００から、サーバ５００に保管された初期設定プログラムやプログラム（ＯＳ、デバイスドライバ、アプリケーションプログラム）などを情報処理装置１の第１不揮発性メモリ３１、第２不揮発性メモリ３２に書き込んでもよい。
【００７５】
このような画像形成装置１００は、使用されないときは通電されていない状態（電源がオフの状態）にあることが好ましい。そして、使用しようとするときに電源がオンになって、速やかに動作可能になることが望ましい。
画像形成装置１００には、すべての機能が動作可能な状態（オン状態）である通常モードと、一部の機能が動作可能な状態（オン状態）で、他のほとんどの機能が停止した状態（オフ状態）である節電モードとが設けられる。節電モードの画像形成装置１００は、通信回線２００を介してファクシミリを受信したとき、またはユーザから使用を開始する信号（復帰信号）を受信したときなどに通常モードに復帰する。
【００７６】
節電モードを、図８を参照して説明する。
節電モードにおいて、節電の効果を高めるためには、制御部である情報処理装置１のＣＰＵ１０、不揮発性メモリ３０、バスブリッジ４０もオフ状態になっていることが好ましい。さらに、電源ユニット９０もオフ状態になっていることが好ましい。すなわち、節電モードでは、ＵＩ１２０、送受信部１５０、後述する情報処理装置１の電源ユニット９０の給電制御回路９０ａのみがオン状態になっていて、情報処理装置１のＣＰＵ１０、不揮発性メモリ３０、バスブリッジ４０、電源ユニット９０の給電制御回路９０ａをのぞいた部分、および画像形成部１３０、画像読取部１４０がオフ状態になっている。
そして、ＵＩ１２０および送受信部１５０のそれぞれから情報処理装置１の電源ユニット９０の給電制御回路９０ａに信号が送られるように信号線が設けられている。
電源ユニット９０に設けられた給電制御回路９０ａは、ＵＩ１２０または送受信部１５０からの信号を受信して、電源ユニット９０をオンにして、オフ状態であった情報処理装置１のＣＰＵ１０、不揮発性メモリ３０、バスブリッジ４０、および画像形成部１３０、画像読取部１４０に電力の供給を開始する。
すなわち、節電モードにあっても、ＵＩ１２０、送受信部１５０および情報処理装置１の電源ユニット９０の給電制御回路９０ａには、不図示の電源から電力が供給されている。
なお、情報処理装置１の電源ユニット９０が画像形成部１３０、画像読取部１４０に電力を供給するとしたが、給電制御回路９０ａと同様な給電制御回路を備え、ＵＩ１２０または送受信部１５０からの信号により、画像形成部１３０および画像読取部１４０に電力の供給を開始するようにしてもよい。
【００７７】
図１０は、画像形成装置１００の通常モードと節電モードとを比較する図である。図１０（ａ）は通常モード、図１０（ｂ）は節電モードを示している。オン状態にある部分を実線で囲むとともに網点を付して示している。一方、オフ状態にある部分を破線で囲って示している。
図１０（ａ）に示す通常モードでは、情報処理装置１、ＵＩ１２０、画像形成部１３０、画像読取部１４０、送受信部１５０がすべてオン状態にある。一方、図１０（ｂ）に示す節電モードでは、ＵＩ１２０、送受信部１５０、情報処理装置１の電源ユニット９０の給電制御回路９０ａがオン状態にあって、画像形成部１３０、画像読取部１４０、電源ユニット９０の給電制御回路９０ａを除く情報処理装置１がオフ状態（休止状態）になっている。
【００７８】
節電モードにあるときに、画像読取部１４０がスキャナである場合、ユーザが画像形成装置１００を使用するためスキャナの上蓋を持ち上げるとする。スキャナの上蓋はＵＩ１２０の一つであるので、ユーザがスキャナの上蓋を持ち上げることにより、ＵＩ１２０から、画像形成装置１００を起動することを指示する信号（復帰信号）が情報処理装置１の電源ユニット９０の給電制御回路９０ａに送られる。これにより、電源ユニット９０がオンになる。そして、情報処理装置１の２回目以降の電源オンで説明したように、不揮発性メモリ３０に保持されたレジスタ値を、レジスタ１４に書き戻すことで、画像形成装置１００の制御部である情報処理装置１は、電源オフになる直前（節電モードに入る前）の状態に復帰する。
画像形成部１３０、画像読取部１４０にも電源ユニット９０から電力が供給され、それぞれ動作状態になる。
これにより、画像形成装置１００は、節電モードに入る直前の状態に戻る。
【００７９】
前述したように、不揮発性メモリ３０に退避されたレジスタ値がレジスタ１４に速やかに書き戻されるとともに、ＯＳおよびアプリケーションプログラムが不揮発性メモリ３０（第２不揮発性メモリ３２）に保持されているため、画像形成装置１００は、節電モードから通常モードへ速やかに復帰する。
【００８０】
同様に、節電モードにあるときに、通信回線２００を介してファクシミリ装置４００からデータを受信すると、送受信部１５０が検知して、画像形成装置１００を起動することを指示する信号が情報処理装置１の電源ユニット９０の給電制御回路９０ａに送られる。そして、上述した場合と同様に、画像形成装置１００の制御部である情報処理装置１は、電源ユニット９０がオフになる直前（節電モードに入る前）の状態に復帰する。
そして、画像形成部１３０、画像読取部１４０にも電源ユニット９０から電力が供給され、それぞれが動作状態になる。
これにより、画像形成装置１００は、節電モードに入る直前の状態に戻る。
【００８１】
画像形成装置１００は、節電モードから通常モードへの復帰によって、節電モードに移行する直前の状態から継続して処理が行える。
【００８２】
なお、画像形成装置１００の制御部である情報処理装置１が不揮発性メモリ３０を備えず、ＤＲＡＭなどによる揮発性メモリを備える場合には、通常モードから節電モードに移行するときに、レジスタ１４のデータ（レジスタ値）をオン状態に維持またはバッテリーバックアップした揮発性メモリに退避し、節電モードから通常モードに移行するとき、揮発性メモリに退避したデータをレジスタ１４に書き戻すことが考えられる。しかし、この方式では、揮発性メモリをオン状態に維持またはバッテリーバックアップするために電力の供給が必要である。
【００８３】
以上では、画像形成装置１００を節電モードから通常モードに移行する場合について説明した。
ＵＩ１２０、送受信部１５０、電源ユニット９０の給電制御回路９０ａを含めてすべてがオフ状態の停止モードから、通常モードに移行する場合についても同様である。すなわち、不揮発性メモリ３０に保持されたレジスタ値をレジスタ１４に書き戻すことで、画像形成装置１００は停止モードから通常モードへと速やかに復帰する。
【符号の説明】
【００８４】
１…情報処理装置、１０…ＣＰＵ、１１…ＡＬＵ、１２…ＦＰＵ、１３…割込ユニット、１４、１４−１〜１４−３６…レジスタ、１５…Ｌ／Ｓユニット、１６…命令ユニット、１８…データキャッシュ、１９…命令キャッシュ、２１…制御ユニット、２２…内部バス、２３…転送バス、３０…不揮発性メモリ、３１…第１不揮発性メモリ、３２…第２不揮発性メモリ、３３…第３不揮発性メモリ、３３−１〜３３−３８…退避領域、４１…データ／アドレスバス、４２…外部バス、５０…ＵＩＩＦ、６０…通信ＩＦ、７０…ＩＯＩＦ、８０…ＳＢＩＦ、９０…電源ユニット、９０ａ…給電制御回路、１００…画像形成装置、１２０…ＵＩ、１３０…画像形成部、１４０…画像読取部、１５０…送受信部、２００…通信回線、３００…コンピュータ（ＣＯＭ）、４００…ファクシミリ装置、５００…サーバ
【図１】
2013069054.tif 000003
【図２】
2013069054.tif 000004
【図３】
2013069054.tif 000005
【図４】
2013069054.tif 000006
【図５】
2013069054.tif 000007
【図６】
2013069054.tif 000008
【図７】
2013069054.tif 000009
【図８】
2013069054.tif 000010
【図９】
2013069054.tif 000011
【図１０】
2013069054.tif 000012