説明

情報処理装置、プログラムおよび画像形成装置

【課題】電源がオンに移行したとき、ハードウエアの構成に対応して初期設定ができる情報処理装置等を提供する。
【解決手段】電源ユニットから電力が供給されて、情報処理装置の電源がオンになると、ハードウエアリセット(HWリセット)が行われる(ステップ101)。次いで、ハードウエア(HW)による初期設定が行われる(ステップ102)。そして、初期設定プログラムによる初期設定が行われる(ステップ103)。その後、スマートリセットが行われる(ステップ104)。そして、OS、デバイスドライバ、アプリケーションプログラムなどが起動される(ステップ105)。そして、情報処理装置が動作状態になる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、プログラムおよび画像形成装置に関する。
【背景技術】
【0002】
情報処理装置では、電力が投入される(電源がオンになる)と、ハードウエアの初期化が行なわれ、次にオペレーションシステム(OS)、アプリケーションプログラムがメインメモリにロードされる(書き込まれる)。そして、ハードウエアの動作に必要なレジスタ値が設定され、OSが起動され、次いでアプリケーションプログラムが起動される。
【0003】
特許文献1には、シングルチップマイコンの内蔵ROM内に各レジスタの初期設定値を記憶する領域を設け、リセット解除または専用命令の実行によってマイクロプログラムの初期化ルーチンを起動して、上記ROM内の初期値を順次対応するレジスタに転送させるようにしたレジスタの初期設定方式が記載されている。
特許文献2には、自装置を設定するためのコンフィグレーションデータおよび動作させるためのプログラムデータを、汎用メモリインターフェースを介して、不揮発性のメモリのコンフィグレーション領域およびデータ領域からそれぞれ読み出すロジック装置であって、リセット解除されると、上記データ領域をアクセスするアドレスであって上記汎用メモリインターフェースを介して上記メモリに転送されるプログラムアドレスを生成し、上記データ領域から読み出されて上記汎用メモリインターフェースを介して転送された上記プログラムデータによって動作するロジックコア部を備えたロジック装置が記載されている。
特許文献3には、所定のハードウェアの機能を決定するフィールド・プログラマブル・ゲートアレイのコンフィグレーション・データを前記ハードウェア内のフィールド・プログラマブル・ゲートアレイ内のコンフィグレーション用メモリにダウンロードする機能を有するデータ処理装置において、所望のデータ処理を実行する際に、前記データ処理に応じて、必要なコンフィグレーション・データのみを前記フィールド・プログラマブル・ゲートアレイ内のコンフィグレーション用メモリにダウンロードするダウンロード手段を有するデータ処理装置が記載されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平2−5115号公報
【特許文献2】特開2006−155004号公報
【特許文献3】特開2000−89963号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明は、電源がオンに移行したとき、ハードウエアの構成に対応した初期設定が安定にできる情報処理装置等を提供することを目的とする。
【課題を解決するための手段】
【0006】
請求項1に記載の発明は、プログラムを実行する実行手段と、前記実行手段の実行に用いられるデータを保持するレジスタと、初期状態に設定するプログラムが保持する、電源を供給しなくても記憶している情報を保持することが可能な不揮発性メモリと、前記実行手段が前記初期状態に設定するプログラムを実行する前に、前記レジスタのデータを全て消去する第1のリセットを行う第1のリセット手段と、前記実行手段が前記初期状態に設定するプログラムを実行した後に、前記レジスタのデータのうち、当該初期状態に設定するプログラムにより設定されたデータを消去することなく他のデータを消去する第2のリセットを行う第2のリセット手段とを備える情報処理装置である。
請求項2に記載の発明は、前記情報処理装置は、少なくとも1つの予め定められた機能を実現する機能ユニットを備え、前記実行手段は、前記初期状態に設定するプログラムの実行において、前記機能ユニットの構成および接続された機器を検知する手順と、前記検知によって検知された前記機能ユニットの構成および前記接続された機器に対応して、前記初期状態に設定するプログラムを実行した後において、前記実行手段の実行に必要なデータを前記レジスタに設定する手順とを実行することを特徴とする請求項1に記載の情報処理装置である。
請求項3に記載の発明は、前記レジスタは、電源を供給しないと記憶している情報を保持することができない揮発性であって、前記不揮発性メモリは、前記レジスタのデータを退避する退避領域を有し、電源がオフになる直前に、前記レジスタのデータのうち、少なくとも、前記実行手段が電源がオフになる直前から継続して実行するために必要なデータを、前記不揮発性メモリの前記退避領域に退避する退避手段をさらに備えることを特徴とする請求項1または2に記載の情報処理装置である。
請求項4に記載の発明は、前記退避手段は、前記退避領域に退避したデータの正当性が確認できる符号を設定する手順と前記不揮発性メモリに前記符号を書き込む手順とを実行することを特徴とする請求項3に記載の情報処理装置である。
請求項5に記載の発明は、前記実行手段は、前記不揮発性メモリの前記退避領域に退避されたデータを前記レジスタに復元することにより、前記情報処理装置を、電源をオフにした直前の状態に復帰できるか否かを判断する手順と、前記判断により、前記情報処理装置を、電源をオフにした直前の状態に復帰できる場合に、前記退避領域のデータを前記レジスタに復元する手順とをさらに実行することを特徴とする請求項3または4に記載の情報処理装置である。
請求項6に記載の発明は、前記不揮発性メモリが、MRAM、FeRAM、PRAM、ReRAMのいずれかであることを特徴とする請求項1ないし5のいずれか1項に記載の情報処理装置である。
請求項7に記載の発明は、プログラムを実行する実行手段と、当該実行手段の実行に用いられるデータを保持するレジスタと、初期状態に設定するプログラムが保持された、電源を供給しなくても記憶している情報を保持することが可能な不揮発性メモリと、当該実行手段が当該初期状態に設定するプログラムを実行する前に、当該レジスタのデータを全て消去する第1のリセットを行う第1のリセット手段と、当該実行手段が当該初期状態に設定するプログラムを実行した後に、当該レジスタのデータのうち、当該初期状態に設定するプログラムにより設定されたデータを消去することなく他のデータを消去する第2のリセットを行う第2のリセット手段とを備えるコンピュータに、予め定められた機能を実現する機能ユニットの構成および接続された機器を検知する機能と、前記検知の結果に基づいて、レジスタにデータを設定する機能とを実現させるためのプログラムである。
請求項8に記載の発明は、電源を供給しなくても記憶している情報を保持することが可能な不揮発性メモリに設けられ、レジスタのデータが退避された退避領域のデータを、前記レジスタに復元することにより、電源をオフにした直前の状態に復帰できるか否かを判断する機能と、前記判断により電源をオフにした直前の状態に復帰できる場合に、前記退避領域のデータを前記レジスタに復元する機能とをさらに実現させることを特徴とする請求項7に記載のプログラムである。
請求項9に記載の発明は、画像を記録材に形成する画像形成部と、前記画像形成部の動作を制御するプログラムを実行する実行手段と、当該実行手段の実行に用いられるデータを保持するレジスタと、初期状態に設定するプログラムが保持された、電源を供給しなくても記憶している情報を保持することが可能な不揮発性メモリと、当該実行手段が当該初期状態に設定するプログラムを実行する前に、当該レジスタのデータを全て消去する第1のリセットを行う第1のリセット手段と、当該実行手段が当該初期状態に設定するプログラムを実行した後に、当該レジスタのデータのうち、当該初期状態に設定するプログラムにより設定されたデータを消去することなく他のデータを消去する第2のリセットを行う第2のリセット手段とを備え、当該画像形成部の動作を制御する制御部とを備えた画像形成装置である。
【発明の効果】
【0007】
請求項1の発明によれば、第2のリセット手段を備えない場合に比べ、ハードウエアの構成に対応した初期設定がより安定にできる。
請求項2の発明によれば、本構成を備えない場合に比べ、ハードウエアの構成の変更により容易に対応できる。
請求項3の発明によれば、本構成を備えない場合に比べ、電源をオフにした直前の状態への復帰ができる。
請求項4の発明によれば、本構成を備えない場合に比べ、電源をオフにした直前の状態への復帰がより確実にできる。
請求項5の発明によれば、本構成を備えない場合に比べ、電源をオフにした直前の状態への復帰ができる。
請求項6の発明によれば、本構成を備えない場合に比べ、情報処理装置の動作速度がより速くなる。
請求項7の発明によれば、本構成を備えない場合に比べ、ハードウエアの構成に対応した初期設定がより容易にできる。
請求項8の発明によれば、本構成を備えない場合に比べ、電源をオフにした直前の状態へ復帰ができる。
請求項9の発明によれば、プログラムにより初期設定をしない場合に比べ、ハードウエアの構成の変更に対応した初期設定ができる。
【図面の簡単な説明】
【0008】
【図1】本実施の形態が適用される情報処理装置の全体構成の一例を示した図である。
【図2】レジスタの構成およびレジスタのデータが書き込まれる退避領域の構成の一例を説明する図である。
【図3】初回に電源をオンにした場合に、情報処理装置が動作状態になるまでを説明するフローチャートである。
【図4】本実施の形態を用いない情報処理装置において、電源をオンにしたときから動作開始になるまでのフローチャートである。
【図5】情報処理装置の電源がオフになるまでを説明するフローチャートである。
【図6】2回目以降に電源がオンにした場合に、情報処理装置が動作状態になるまでを説明するフローチャートである。
【図7】ステップ502をさらに詳細なステップに分けて示したフローチャートである。
【図8】画像形成装置の構成の一例を示す図である。
【図9】画像形成装置と通信回線に接続された機器との関係を説明した図である。
【図10】画像形成装置の通常モードと節電モードとを比較する図である。
【発明を実施するための形態】
【0009】
情報処理装置では、初期設定に必要なデータがROMに格納され、電源オンにおいて、ROMからこれらのデータが読み込まれ、初期化が行われる。
しかし、情報処理装置のハードウエアの構成が変更されると、ROMに書き込まれたデータも変更せざるを得ない。そこで、情報処理装置においては、ハードウエアが変更された場合であっても、変更されたハードウエアの構成に対応した初期設定が安定にできることが求められていた。
以下、添付図面を参照して、本発明の実施の形態について詳細に説明する。
【0010】
<情報処理装置1>
図1は本実施の形態が適用される情報処理装置1の全体構成の一例を示した図である。
情報処理装置1は、実行手段の一例としての中央処理ユニット(以下ではCPUと表記する。)10、初期設定プログラムを保持する第1不揮発性メモリ31、オペレーションシステム(以下ではOSと表記する。)、アプリケーションプログラムなどのプログラムを保持する第2不揮発性メモリ32、そしてデータなどを一時的に保持するRAM(Random Access Memory)として使用される第3不揮発性メモリ33、後述するデータ/アドレスバス41および外部バス42に接続されるバスブリッジ40、ユーザから情報処理装置1を制御するための信号などが入力されるUIIF(ユーザインプットインターフェース)50、インターネットや電話網などの通信回線に接続される通信IF(通信インターフェース)60、外部機器と接続されるIOIF(入出力インターフェース)70、シリアル通信が行われるSBIF(シリアルバスインターフェース)80、電源ユニット90を備えている。
【0011】
さらに、情報処理装置1は、データ/アドレスバス41、外部バス42を備えている。
ここでは、第1不揮発性メモリ31、第2不揮発性メモリ32、第3不揮発性メモリ33は、読み書き可能な不揮発性記憶素子から構成されている。
【0012】
なお、不揮発性記憶素子は、情報(“1”/“0”)を保持する機能(記憶機能)を有する記憶素子をいう。不揮発性素子とは、電源を供給する場合に加え、電源を供給しなくても、情報(“1”/“0”)を保持(記憶)する機能(記憶機能)を有している。つまり、情報(“1”/“0”)を記憶し続ける。一方、揮発性素子とは、電源を供給する場合には情報(“1”/“0”)を保持(記憶)する機能(記憶機能)を有するが、電源を供給しない場合には記憶機能が失われる。つまり、情報の保持ができなくなる。
不揮発性記憶素子については、後に詳述する。
【0013】
第1不揮発性メモリ31が保持する初期設定プログラムは、情報処理装置1を初期状態に設定する(初期化する)ためのプログラムであって、後述するように情報処理装置1の電源がオンになると、起動されて、情報処理装置1を初期化する。
第2不揮発性メモリ32が保持するプログラムは、OS、UIIF50、通信IF60、IOIF70、SBIF80およびこれらの入出力インターフェースに接続された機器の動作を制御するデバイスドライバ、情報処理装置1が実行する処理のためのアプリケーションプログラムである。
これらのプログラムの動作については、後述する。
【0014】
上述したように、第1不揮発性メモリ31には初期設定プログラムが、第2不揮発性メモリ32には、OS、デバイスドライバ、アプリケーションプログラムなどのプログラムが保持されている。これらのプログラムは、展開されて実行可能な状態で保持されていてもよく、第3不揮発性メモリ33に展開してから実行されてもよい。ここでは、第1不揮発性メモリ31に初期設定プログラムが展開されて保持され、第2不揮発性メモリ32にプログラムが展開されて保持されているとして説明する。
【0015】
次に、CPU10の構成を説明する。
CPU10は、論理演算及び算術演算を行うALU(Arithmetic Logical Unit:論理算術演算ユニット)11、浮動小数点演算を行うFPU(Floating Point Unit:浮動小数点演算ユニット)12、割り込み処理を行う割込ユニット13(Interrupt Unit)を備えている。さらに、CPU10は、これらの演算および処理を実行するにあたってデータ、アドレス(番地)、各種のフラグなどを保持(記憶)するレジスタ14を備えている。ここでは、レジスタ14が保持する“データ、アドレス、各種のフラグなど”をまとめて“データ”と表記する。
【0016】
また、CPU10は、データ、アドレスなどの読み出し(ロード)および保持(ストア)を制御するロード/ストアユニット(L/Sユニット)15、命令を復号(デコード)する命令ユニット16を備えている。
さらに、CPU10は、データ、アドレスなどをキャッシュするデータキャッシュ18、命令をキャッシュする命令キャッシュ19、バスブリッジ40と接続されるバスIF(バスインターフェース)20を備えている。
【0017】
そして、CPU10は、上述のALU11、FPU12、割込ユニット13、レジスタ14、L/Sユニット15、命令ユニット16、データキャッシュ18、命令キャッシュ19、バスIF20を制御する制御ユニット21を備えている。
そしてまた、CPU10は、ALU11、FPU12、割込ユニット13、レジスタ14、L/Sユニット15、命令ユニット16、制御ユニット21に接続され、これらの間で、データ、アドレス、命令などを入出力するための内部バス22を備えている。
ここでは、ALU11、FPU12、割込ユニット13、L/Sユニット15、命令ユニット16、制御ユニット21などは、予め定められた機能を実行する機能ユニットの一例である。
【0018】
ここでは、CPU10を構成するALU11、FPU12、割込ユニット13、レジスタ14、L/Sユニット15、命令ユニット16、データキャッシュ18、命令キャッシュ19、バスIF20、制御ユニット21、内部バス22は、例えばシリコンで構成された一個の半導体チップとして構成されているとする。なお、これらのユニットのうちのいくつかまたはこれらのユニットの一部などが他の半導体チップなどで構成され、CPU10の外部に置かれてもよい。
また、CPU10は、第1不揮発性メモリ31、第2不揮発性メモリ32、第3不揮発性メモリ33の全部または一部を含んで構成されていてもよい。
【0019】
本実施の形態におけるCPU10では、レジスタ14、データキャッシュ18、命令キャッシュ19などは、電力の供給がある場合には情報(“1”/“0”)を保持する記憶機能を有しているが、電力の供給がなくなった場合には、情報を保持できなくなる。すなわち、揮発性であるとする。
同様に、ALU11、FPU12は、内部に演算レジスタを有し、電力の供給がある場合には情報(“1”/“0”)を保持する記憶機能を有しているが、電力の供給がなくなった場合には記憶機能が失われ、情報を保持できなくなる。さらに、割込ユニット13、命令ユニット16、バスIF20、制御ユニット21なども、それぞれ内部にレジスタを有し、電力の供給がある場合には情報(“1”/“0”)を保持する記憶機能を有しているが、電力の供給がなくなった場合には記憶機能が失われ、情報を保持できなくなる。バスブリッジ40、UIIF50、通信IF60、IOIF70、SBIF80についても同様である。
【0020】
次に、情報処理装置1における接続関係を説明する。
CPU10のバスIF20は、データ、アドレス(番地)、命令などが双方向に送受信可能なように、バスブリッジ40に接続されている。
そして、バスブリッジ40には、データ/アドレスバス41および外部バス42が接続されている。そして、データ/アドレスバス41には、第1不揮発性メモリ31、第2不揮発性メモリ32、第3不揮発性メモリ33が接続されている。
【0021】
データ/アドレスバス41は、アドレスバスとデータバスとを備えている。
アドレスバスは、CPU10が第1不揮発性メモリ31、第2不揮発性メモリ32または第3不揮発性メモリ33のアドレスを指定(アクセス)する信号を送信するための信号線である。例えば、アドレスが32ビット幅である場合には、アドレスバスは32本の信号線から構成されている。
また、データバスは、アドレスで指定された第1不揮発性メモリ31、第2不揮発性メモリ32または第3不揮発性メモリ33の領域からデータや命令を読み出すため、データや命令を信号として送信する信号線である。また、アドレスで指定された第1不揮発性メモリ31、第2不揮発性メモリ32または第3不揮発性メモリ33の領域にデータなどを書き込むために、データなどを信号として送信する信号線でもある。すなわち、第1不揮発性メモリ31、第2不揮発性メモリ32または第3不揮発性メモリ33のアドレスが指定されると、そのアドレスからデータまたは命令を読み出したり、データを書き込んだりできる。
例えばデータまたは命令が32ビット幅の場合には、データバスは32本の信号線から構成されている。
ここでは、データ/アドレスバス41は、データバスとアドレスバスとが分けられて構成されているとしたが、データバスおよびアドレスバスのそれぞれの一部または全部が共用されるように構成されていてもよい。
【0022】
また、第1不揮発性メモリ31、第2不揮発性メモリ32、第3不揮発性メモリ33は、一連のアドレスで読み書き可能であってもよい。
なお、図1に示したように、第1不揮発性メモリ31、第2不揮発性メモリ32、第3不揮発性メモリ33がデータ/アドレスバス41に並列に接続されている場合は、第1不揮発性メモリ31、第2不揮発性メモリ32、第3不揮発性メモリ33のアドレスが重ならないように配置されている。このとき、第1不揮発性メモリ31、第2不揮発性メモリ32、第3不揮発性メモリ33は、アドレスが連続するように配置されてもよく、第1不揮発性メモリ31、第2不揮発性メモリ32、第3不揮発性メモリ33の間で、アドレスが飛んで配置されてもよい。また、第1不揮発性メモリ31、第2不揮発性メモリ32、第3不揮発性メモリ33のアドレスの順序は問わない。
このように、第1不揮発性メモリ31、第2不揮発性メモリ32、第3不揮発性メモリ33は、CPU10がアクセス可能な空間(アドレス空間)(例えばアドレスが32ビットの場合は4Gの空間)に配置されている。そして、アドレスで指定された領域から予め設定されたビット幅(例えばビット幅が32ビットの場合は4バイト)のデータまたは命令がビット並列で送受信される。
【0023】
図1では、第1不揮発性メモリ31、第2不揮発性メモリ32、第3不揮発性メモリ33を分けて示したが、1つの不揮発性メモリ30として構成されていてもよい。以下では、第1不揮発性メモリ31、第2不揮発性メモリ32、第3不揮発性メモリ33をそれぞれ区別しないときは、不揮発性メモリ30と表記する。
【0024】
外部バス42には、UIIF50、通信IF60、IOIF70、SBIF80が接続されデータや命令などが送受信可能に接続されている。
そして、外部バス42は、データ/アドレスバス41と同様に、データや命令などを送受信するビット幅に対応した数の信号線から構成されている。
【0025】
電源ユニット90は、CPU10、第1不揮発性メモリ31、第2不揮発性メモリ32、第3不揮発性メモリ33、バスブリッジ40、UIIF50、通信IF60、IOIF70、SBIF80のそれぞれに電力を供給するように接続されている。なお、図1においては、電源ユニット90から電力を供給する配線(ライン)の表記を省略する。
【0026】
次に、CPU10の内部の接続関係を説明する。
CPU10の内部バス22には、ALU11、FPU12、割込ユニット13、レジスタ14、L/Sユニット15、命令ユニット16、制御ユニット21が並列に接続されている。そして、ALU11、FPU12、割込ユニット13、レジスタ14、L/Sユニット15、命令ユニット16、制御ユニット21と内部バス22との間で、データ、アドレスなどが双方向に送受信できるようになっている。
内部バス22は、データ、アドレスなどが送受信されるビット幅、例えば32ビットである場合にはビット幅に対応した32本の信号線から構成されている。
【0027】
データキャッシュ18は、データが双方向に送受信できるようにL/Sユニット15に接続されている。さらに、データキャッシュ18は、第1不揮発性メモリ31、第2不揮発性メモリ32または第3不揮発性メモリ33とデータが双方向に送受信できるように、バスIF20に接続されている。
命令キャッシュ19は命令を命令ユニット16に送信できるように接続されている。また、命令キャッシュ19は第1不揮発性メモリ31、第2不揮発性メモリ32または第3不揮発性メモリ33から命令を受信できるようにバスIF20に接続されている。
【0028】
前述したように、第1不揮発性メモリ31、第2不揮発性メモリ32、第3不揮発性メモリ33は、読み書き可能な不揮発性記憶素子により構成され、電力の供給がある場合に加え、電力の供給がない場合においても、情報(“1”/“0”)を保持する(保持し続ける)記憶機能を有している。
一方、揮発性記憶素子は、電力の供給がある場合に記憶機能を有しているが、電力の供給がない場合には記憶機能を失う。
以下、揮発性記憶素子と比較しながら、不揮発性記憶素子を説明する。
【0029】
揮発性記憶素子の例としては、静電容量(キャパシタ)に蓄えられた電荷の有無により情報(“1”/“0”)を保持し、DRAM(dynamic RAM)に用いられるメモリセルがある。また、フリップフロップ(FF)によるラッチ効果によって、情報(“1”/“0”)を保持し、SRAM(static RAM)に用いられるメモリセルがある。
DRAMおよびSRAMは、半導体チップ上に、それぞれに対応するメモリセルがマトリクス状に配置されて構成されている。そして、セル間に格子状に設けられた配線とその配線に接続されて形成された駆動回路とにより、任意のセルにアクセスでき、情報(“1”/“0”)を読み書きできる。このため、これらはRAM(random access memory)と呼ばれている。
DRAMに用いられるメモリセルは、SRAMに用いられるメモリセルに比べて占有する面積が小さく、高集積化に向く。よって、大容量であることが求められるメインメモリとして用いられる。ただし、DRAMでは、時間の経過とともにメモリセルの静電容量に蓄積された電荷の量が減衰する。このため、保持した情報(“1”/“0”)が時間の経過によって失われないよう、予め定められた時間間隔で、電荷の量を元に戻すリフレッシュが行われる。
SRAMに用いられるメモリセルは、フリップフロップ(FF)によるラッチ効果により、情報(“1”/“0”)が保持される。SRAMに用いられるメモリセルは、DRAMに用いられるメモリセルに比べて占有する面積が大きい。しかし、SRAMは、DRAMに比べて高速に読み書きができるので、レジスタ14、データキャッシュ18、命令キャッシュ19などに用いられる。
【0030】
一方、不揮発性記憶素子には、磁極の向きにより情報(“1”/“0”)を保持する磁性を利用したメモリセルを円板上に配列したHDD(ハードディスクドライブ)がある。HDDは、大容量であるが機械的機構によって、メモリセルから情報(“1”/“0”)を読み書きするため、情報(“1”/“0”)の読み書き速度(アクセス速度)が遅い。
また、不揮発性記憶素子には、MOSトランジスタのゲート電極(フローティングゲート)に蓄積した電荷の有無により情報(“1”/“0”)を保持するメモリセルがある。このようなメモリセルを用いたメモリには、フラッシュメモリ、EEPROM(Electrically Erasable Programmable ROM)などがある。
フラッシュメモリおよびEEPROMは、電気的に状態(“1”/“0”)の読み書きができるが、前述のSRAM、DRAMに比べて読み書き速度が、特に書き込み速度が遅い。そして、フラッシュメモリ、EEPROMには、書き換え回数に制限がある。
【0031】
この他、不揮発性記憶素子を用いたメモリには、磁気メモリ(magnetoresistive RAM:MRAMと表示する。)、強誘電体メモリ(ferroelectric RAM:FeRAMと表記する。)、相変化メモリ(phase change RAM:PRAMと表記する。)、抵抗メモリ(resistance RAM:ReRAMと表記する。)などがある。
MRAMに用いられるメモリセルは、2枚の磁性積層膜をトンネル磁気抵抗膜で挟み、重ねた磁性積層膜の磁化のなす相対角度によりトンネル磁気抵抗膜の抵抗が変化する磁気抵抗(magnetoresistive:MR)効果を用いて情報(“1”/“0”)を保持する。FeRAMに用いられるメモリセルは、PZT(Pb(Zr、Ti)O)などの強誘電体の分極を用いて情報(“1”/“0”)を保持する。PRAMに用いられるメモリセルは、カルコゲナイドの相変化にともなう抵抗変化により情報(“1”/“0”)を保持する。ReRAMに用いられるメモリセルは、電圧の印可による電気抵抗の大きな変化(CER(colossal electro−resistance)効果)を利用し、抵抗変化により情報(“1”/“0”)を保持する。
【0032】
これらのメモリ(MRAM、FeRAM、PRAM、ReRAM)は、DRAM、SRAMと同様に半導体基板上にメモリセルをマトリクス状に高密度に配置でき、一体形成された駆動回路により高速な読み書きができる。さらに、書き換え回数の制限が原理的にない、または書き換え可能な回数が極めて大きい(以下では、書き換え回数の制限が小さいと表記する)。
このため、これらのメモリ(MRAM、FeRAM、PRAM、ReRAM)は、SRAM、DRAMと同様に第1不揮発性メモリ31、第2不揮発性メモリ32、第3不揮発性メモリ33、データキャッシュ18、命令キャッシュ19などに適用しやすい。
【0033】
本実施の形態では、第1不揮発性メモリ31、第2不揮発性メモリ32、第3不揮発性メモリ33を、一例としてMRAMで構成されているとして説明する。なお、MRAM以外のFeRAM、PRAM、ReRAMで構成してもよいし、アクセス速度や書き換え回数に制約を受けない場合には、HDD、フラッシュメモリ、EEPROMなどであってもよい。
一方、CPU10におけるレジスタ14、データキャッシュ18、命令キャッシュ19などはSRAMで構成されているとして説明する。
【0034】
<レジスタ14および退避領域33−1〜33−38>
次に、レジスタ14の構成について説明する。
図2は、レジスタ14の構成およびレジスタ14のデータが書き込まれる退避領域(後述する退避領域33−1〜33−38)の構成の一例を説明する図である。図2(a)は、レジスタ14の構成を示し、図2(b)は第3不揮発性メモリ33に設けられたレジスタ14のデータが書き込まれる退避領域33−1〜33−38の構成を示している。
【0035】
まず、レジスタ14の構成を説明する。
レジスタ14は、一例として36個のレジスタ14−1〜14−36を備えている。それぞれのレジスタ14−1〜14−36は、それぞれアドレス(不図示)を有し、そのアドレスにより区別される。
レジスタ14−1〜14−30は、用途が固定されていない汎用レジスタ(R1〜R30と表記する。)である。例えば、ALU11の演算のためのデータ、アドレス、不揮発性メモリ30上に設けられたスタックのアドレス(スタックポインタなど)を保持するために用いられる。なお、スタックは一時的にデータを保持する領域である。
【0036】
レジスタ14−31は、FPU12の演算結果を保持する浮動小数点レジスタ(FPRと表記する。)である。
レジスタ14−32は、コンディションレジスタ(ステータスレジスタ)(CRと表記する。)であって、CPU10のコンディション(ステータス)を保持する。コンディション(ステータス)としては、ALU11における演算においてオーバーフローが生じたときに設定されるオーバーフローフラグ、キャリーが発生したときに設定されるキャリーフラグ、負の値となったときに設定されるネガティブフラグなどがある。
レジスタ14−33は、リンクレジスタ(LRと表記する。)であって、サブルーチンコールで分岐した場合の戻りアドレスを保持する。
レジスタ14−34は、コントロールレジスタ(CTRと表記する。)であって、コンディションレジスタの各種フラグをリセット(解除)したり、CPU10の動作速度を落として低消費電力状態にしたりするなど、CPU10を特殊な状態にすることを指示する。
レジスタ14−35は、コンフィギュレーションレジスタ(CFGと表記する。)であって、情報処理装置1の機能ユニットの構成および入出力インターフェースに接続された機器などについての情報を保持する。例えば、情報処理装置1が、ALU11、FPU12、割込ユニット13などの機能ユニット、UIIF50、通信IF60、IOIF70、SBIF80などの入出力インターフェースに接続された機器に関する情報を保持する。
そして、レジスタ14−36は、プログラムカウンタ(PCと表記する。)であって、次に実行される命令を格納する不揮発性メモリ30のアドレスを保持する。
【0037】
次に、レジスタ14のデータを退避する退避領域33−1〜33−38について説明する。
退避領域33−1〜33−38は、第3不揮発性メモリ33の一部に設けられている。
退避領域33−1〜33−36は、それぞれがレジスタ14のレジスタ14−1〜14−36に対応し、レジスタ14−1〜14−36のデータの退避に用いられる。
そして、退避領域33−37は、レジスタ14のデータを退避したことを示すフラッグ(SF)である。
さらに、退避領域33−38は、退避領域33−1〜33〜36に退避したデータのパリティ、チェックサムまたは誤り訂正符号(ECC)などデータの正当性を確認できるエラー検出符号(EDCと表記する。)を書き込む領域である。退避領域33−1〜33−36からデータを読み出す際に、新たに計算された符号(EDC)と対比して、エラーが発生していないことを確認する。
なお、退避領域33−1〜33−38は、第3不揮発性メモリ33において、電源をオフにする直前の状態から継続して情報処理装置1を動作させる場合に必要とされる、データ、スタックなどが保持された領域を避けて設けられることが好ましい。
また、退避領域33−1〜33−38は、第1不揮発性メモリ31または第2不揮発性メモリ32のいずれかに設けてもよい。第1不揮発性メモリ31に設ける場合は、初期設定プログラムが書き込まれた領域、第2不揮発性メモリ32に設ける場合は、プログラムが書き込まれた領域を避けて設けられることが好ましい。
【0038】
<情報処理装置1の動作>
次に、情報処理装置1の動作を説明する。
本実施の形態における情報処理装置1は、前述したように第1不揮発性メモリ31に保持された初期設定プログラムを有している。そして、実行される処理がそれぞれ異なる複数のリセットを有している。
ここでは、初回に電源をオンにする場合、電源をオフにする場合、二回目以降に電源をオンにする場合を説明する。
【0039】
[初回に電源をオンにする場合]
まず、初回に電源をオンにする場合を説明する。
図3は、初回に電源をオンにした場合に、情報処理装置1が動作状態になるまでを説明するフローチャートである。
電源ユニット90から電力が供給されて、情報処理装置1の電源がオンになると、第1のリセット手段の一例としての制御ユニット21により、第1のリセットの一例としてのハードウエアリセット(HWリセット)が行われる(ステップ101)。次いで、ハードウエア(HW)による初期設定が行われる(ステップ102)。そして、初期設定プログラムによる初期設定が行われる(ステップ103)。その後、第2のリセット手段の一例としての制御ユニット21により、第2のリセットの一例としてのスマートリセットが行われる(ステップ104)。そして、OS、デバイスドライバ、アプリケーションプログラムなどが起動される(ステップ105)。そして、情報処理装置1が動作状態になる。
以下では、これらを詳細に説明する。
【0040】
(HWリセット(ステップ101))
情報処理装置1の電源がオンになると、HWリセットが行われる。
HWリセットにおいて、CPU10のレジスタ14のデータ(レジスタ値)が全て消去(クリア)される。例えば、“0”に設定される。
そして、CPU10のALU11、FPU12の内部の演算レジスタ、割込ユニット13、L/Sユニット15、命令ユニット16、バスIF20、制御ユニット21などの内部に設けられたレジスタもクリアされる。同様に、データキャッシュ18、命令キャッシュ19もクリアされる。さらに、バスブリッジ40、UIIF50、通信IF60、IOIF70、SBIF80についても同様である。このように、CPU10のALU11、FPU12の内部に設けられた演算レジスタなどをクリアすることを情報処理装置1の回路の初期化と表記する。
【0041】
(HWによる初期設定(ステップ102))
HWリセットが解除されると、CPU10の動作モードの設定、初期設定プログラムを読み出す(ブートする)不揮発性メモリの指定(第1不揮発性メモリ31と指定)など、初期設定プログラムの起動に必要な設定が行われる。
そして、レジスタ14のレジスタ14−36(PC)のデータ(レジスタ値)が、第1不揮発性メモリ31に保持された初期設定プログラムの開始アドレスに設定される。
これらは、図示しないシリアルEEPROM(SEEPROM)または外付けスイッチ(ディップスイッチなど)により設定される。
【0042】
(初期設定プログラムによる初期設定(ステップ103))
次に、制御ユニット21により、レジスタ14内のレジスタ14−36(PC)に設定された初期設定プログラムの開始アドレスが呼び出される。そして、開始アドレスがL/Sユニット15、データキャッシュ18、バスIF20、バスブリッジ40、データ/アドレスバス41を経由して、第1不揮発性メモリ31に送信される。すると、第1不揮発性メモリ31の指定されたアドレスから、初期設定プログラムの最初の命令が読み出される。その命令は、データ/アドレスバス41、バスブリッジ40、バスIF20、命令キャッシュ19を経由して、命令ユニット16に送信される。そして、命令ユニット16によってデコードされる。そして、制御ユニット21により実行される。
アドレスが順次設定され、第1不揮発性メモリ31からの命令の読み出しと制御ユニット21での実行とが繰り返し行われる。このようにして、初期設定プログラムが実行される。
このとき、演算が必要な場合は、ALU11、FPU12などにデータやアドレスが送信され、演算が実施される。
【0043】
初期設定プログラムは、始めに情報処理装置1の機能ユニットの構成および入出力インターフェースに接続された機器を検知する。すなわち、情報処理装置1のALU11、FPU12、割込ユニット13などの機能ユニットの構成、UIIF50、通信IF60、IOIF70、SBIF80などの入出力インターフェースに接続された機器からの信号をチェックすることで検知し、レジスタ14−35(CFG)に情報(“1”/“0”)として書き込む。なお、レジスタ14−35(CFG)には、機能ユニット、接続された機器のそれぞれに対応する情報(“1”/“0”)を書き込む領域が設けられている。
次に、レジスタ14−35(CFG)の内容に基づいて、レジスタ14のレジスタ14−1〜14−30に、スマートリセットが解除されたときの情報処理装置1の動作に必要なデータ(レジスタ値)を設定する。
本実施の形態では、初期設定をプログラム(初期設定プログラム)で行うので、条件判断や分岐ができる。よって、情報処理装置1の機能ユニットの構成や入出力インターフェースに接続された機器に違いがあっても、レジスタ14に必要なデータを設定することができる。すなわち、機能ユニットの構成が異なる情報処理装置1であっても、また接続される機器が異なる情報処理装置1であっても、一つの初期設定プログラムで初期設定ができる。
なお、初期設定プログラムは、情報処理装置1において想定される機能ユニット構成の違いに対応して必要なデータをレジスタ14に設定できるとともに、入出力インターフェースに接続されうる機器に必要なデータ(レジスタ値)がレジスタ14に設定できるようにプログラムされている。
【0044】
そして、次に説明するスマートリセットが解除されたときに動作させるプログラムが格納された先頭番地をレジスタ14−36(PC)に設定する。ここでは、スマートリセット解除後にOSを起動するとし、レジスタ14−36(PC)にOSを起動するアドレスをデータ(PC値)として書き込む。
【0045】
(スマートリセット(ステップ104))
初期設定プログラムの動作により、レジスタ14の、例えばレジスタ14−31(FPR)、14−32(CR)、14−33(LR)、14−34(CTR)には、残す必要のないデータ(レジスタ値)が保持されている。また、レジスタ14−1〜14−30においても、スマートリセット解除後における情報処理装置1の動作に不要なデータ(レジスタ値)が保持されている。
そこで、スマートリセットでは、これらの残す必要のないデータ(レジスタ値)をクリアする。
なお、初期設定プログラムにより、情報処理装置1の動作に必要なデータ(レジスタ値)が設定されたレジスタ(レジスタ14−1〜14−30のうち)、情報処理装置1の機能ユニットの構成や接続された機器に関する情報が設定されたレジスタ14−35(CFG)およびスマートリセット解除後に動作するプログラムの開始番地(PC値)が設定されたレジスタ14−36(PC)はクリアすることなく、設定されたデータ(レジスタ値)を保持する。
このようにすることで、次のプログラムの起動において、レジスタ14のデータ(レジスタ値)を再設定する必要がない。また、レジスタ14に不適切なデータ(レジスタ値)が残ったことによる誤動作の発生を抑制する。
【0046】
(プログラムの起動(ステップ105))
スマートリセットが解除されると、CPU10は、レジスタ14−36(PC)に設定されたプログラムの開始番地から命令を読み出し、OSを起動する。
OSの起動後に、UIIF50、通信IF60、IOIF70、SBIF80などおよびこれらに接続された機器を制御するデバイスドライバが起動される。
そして、デバイスドライバが起動され、アプリケーションプログラムが起動される。
アプリケーションプログラムが起動されることにより、情報処理装置1は動作状態に移行する。
【0047】
比較のため、本実施の形態を用いない場合、すなわち初期設定プログラムを用いないで初期設定する場合を説明する。本実施の形態を用いない場合の情報処理装置1では、不揮発性メモリ30の代わりに、DRAMなどの揮発性メモリが設けられているとする。
そして、OS、デバイスドライバ、アプリケーションプログラムなどは、IOIF70に接続されたHDDに保存されているとする。
【0048】
図4は、本実施の形態を用いない情報処理装置1において、電源をオンにしたときから動作状態になるまでのフローチャートである。
電源ユニット90により情報処理装置1の電源がオンになると、HWリセットが行われる(ステップ201)。次いで、ハードウエア(HW)による初期設定が行われる(ステップ202)。その後、プログラムが起動される(ステップ203)。
以下では、電源をオンにした場合に情報処理装置1が動作状態になるまでを、本実施の形態と比較して説明する。
【0049】
(HWリセット(ステップ201))
電源がオンになると、自動的にHWリセットが行われる。HWリセットは、本実施の形態におけるステップ101と同様である。よって、説明を省略する。
【0050】
(HWによる初期設定(ステップ202))
HWリセットが解除されると、CPU10の動作モードの設定、初期設定プログラムを読み出す(ブートする)記憶装置の指定(HDDと指定)など、プログラムの起動に必要な設定が行われる。また、情報処理装置1の機能ユニットの構成および接続された機器の情報を保持するレジスタ14−35(CFG)のレジスタ値が設定される。
これらは、図示しないシリアルEEPROM(SEEPROM)または外付けスイッチ(ディップスイッチなど)により設定される。
【0051】
(プログラムの起動(ステップ203))
次に、HDDからOSが読み出され、本実施の形態における不揮発性メモリ30の代わりに設けられた揮発性メモリにロード(展開)されて、起動される。そして、デバイスドライバが起動される。その後、アプリケーションプログラムが揮発性メモリにロード(展開)されて、起動される。
アプリケーションプログラムが起動されることにより、情報処理装置1は動作状態に移行する。
【0052】
以上説明したように、本実施の形態を用いない場合には、情報処理装置1は、電源がオンになるのが初回であっても、2回目以降であっても、同じ初期設定が行われる。
また、情報処理装置1の機能ユニットの構成が異なっても、接続された機器が異なっても、同じ初期設定となる。
したがって、初期設定を変更するには、シリアルEEPROM(SEEPROM)または外付けスイッチ(ディップスイッチなど)の設定を変更することが必要となり、情報処理装置1の機能ユニットの構成の変更や接続される機器の変更に柔軟に対応することができない。
すなわち、本実施の形態では、初期設定プログラムを用いて初期設定を行うので、条件判断や分岐ができ、情報処理装置1の機能ユニットの構成の変更または/および接続される機器の変更に柔軟に対応できる。
【0053】
[電源をオフにする場合]
次に、情報処理装置1の電源をオフにする場合を説明する。
図5は、情報処理装置1の電源がオフになるまでを説明するフローチャートである。
情報処理装置1の電源がオフになるのは、電源ユニット90のボタンを押すこと(オフボタンを押すまたはオンボタンを再度押すなど)により、“電源オフの指示”が出された場合、または情報処理装置1が予め定められた待機状態(スタンバイ)になるための条件を満たし、待機状態に移行するために“電源オフの指示”を自らが出した場合などがある。そこで、図5では、“電源オフの指示”から始める。
“電源オフの指示”が出ると、退避手段の一例としての制御ユニット21は、レジスタ14のレジスタ14−1〜14−36に保持されたデータ(レジスタ値)を、第3不揮発性メモリ33の退避領域33−1〜33−36に退避する。退避するとは、レジスタ14のレジスタ14−1〜14−36のそれぞれのデータ(レジスタ値)を、第3不揮発性メモリ33の退避領域33−1〜33−36にそれぞれコピーすることをいう。
同時に、データ(レジスタ値)を退避したことを示すフラッグ(SF)を退避領域33−37に書き込む(例えば“1”とする。)。さらに、退避領域33−1〜33〜36に退避したデータ(レジスタ値)のパリティ、チェックサムまたは誤り訂正符号(ECC)など、退避領域33−1〜33−36からデータを読み出す時に、データにエラーが発生していないこと(正当性)を確認するためのエラー検出符号(EDC)を、退避領域33−38に書き込む(ステップ301)。
【0054】
この後、電源ユニット90からの電力の供給を停止して、情報処理装置1を電源オフにする。
なお、電源ユニット90は、待機状態から復帰するための“復帰の指示”を受信するための給電制御回路90a(後述する図8、図10参照)を備え、給電制御回路90aはオンの状態のままに保持されるようになっていてもよい。
【0055】
[2回目以降に電源がオンにする場合]
図6は、2回目以降に電源がオンにした場合に、情報処理装置1が動作状態になるまでを説明するフローチャートである。
電源ユニット90から電力が供給されて、情報処理装置1を2回目以降に電源をオンにすると、HWリセットが行われる(ステップ401)。次いで、HWによる初期設定が行われる(ステップ402)。そして、初期設定プログラムによる初期設定が行われる(ステップ403)。その後、スマートリセットが行われる(ステップ404)。そして、プログラムの起動が行われる(ステップ405)。この後に、情報処理装置1は動作状態になる。
なお、初期設定プログラムによる初期設定(ステップ403)は後述するように、複数のステップに分かれている(ステップ501〜503)。
以下では、図3に示した、初回に電源をオンにした場合と異なる部分を説明し、同様な部分の説明を省略する。
【0056】
(HWリセット(ステップ401))
2回目以降に電源をオンにした場合であっても、HWリセットは、初回に電源をオンにする場合のHWリセット(図3のステップ101参照)と同様である。よって、説明を省略する。
【0057】
(HWによる初期設定(ステップ402))
2回目以降に電源をオンにする場合であっても、HWにより初期設定は、初回に電源をオンにする場合のHWによる初期設定(図3のステップ102参照)と同様である。よって、説明を省略する。
【0058】
(初期設定プログラムによる初期設定(ステップ403))
初期設定プログラムが起動されると、まず情報処理装置1の機能ユニットの構成および入出力インターフェースを介して接続された機器を検知する。すなわち、情報処理装置1のALU11、FPU12、割込ユニット13などの機能ユニット、UIIF50、通信IF60、IOIF70、SBIF80などの入出力インターフェースに接続された機器からの信号をチェックすることで検知し、レジスタ14−35(CFG)にデータ(情報(“1”/“0”))を設定する(書き込む)(ステップ501)。
【0059】
次に、初期設定プログラムは、第3不揮発性メモリ33の退避領域33−1〜33−36に退避したデータをレジスタ14に復元することで、情報処理装置1を電源がオフになる直前の状態に復帰できるか否かを判断する(ステップ502)。
このステップ502は、少なくとも3つのステップ(後述する図7に示すステップ601、602、603)を備えている。
【0060】
図7は、ステップ502をさらに詳細なステップに分けて示したフローチャートである。図7では、ステップ501を開始としている。
まず、退避領域33−37(SF)の値(“1”/“0”)を調べる(ステップ601)。そして、“0”である場合には“No”と判断する。すなわち、レジスタ14のデータ(レジスタ値)が退避されていないので、電源をオフにした直前の状態に復帰させることができない。
【0061】
一方、退避領域33−37(SF)の値が“1”である場合(“Yes”の場合)には、レジスタ14−35(CFG)のデータ(レジスタ値)と、第3不揮発性メモリ33の退避領域33−35(SCFG)のデータとを比較する(ステップ602)。これらの値が一致しない場合は“No”と判断する。すなわち、情報処理装置1の機能ユニットの構成や接続されている機器に変更があるので、電源をオフにした直前の状態に復帰させることができない。
【0062】
レジスタ14−35(CFG)のデータ(レジスタ値)と退避領域33−35(SCFG)に書き込まれたデータとが一致する場合(“Yes”の場合)は、情報処理装置1の機能ユニットの構成や接続されている機器に変更がないことになる。
よって、次に、電源をオフにする直前に退避領域33−38に書き込んだエラー検出符号(EDC)を計算する方法を用いて、退避領域33−1〜33−36に書き込まれたデータからエラー検出符号(EDC)を再度計算する。そして、再度計算されたエラー検出符号(EDC)と退避領域33−38に書き込まれたデータ(エラー検出符号(EDC))とを比較する(ステップ603)。これらが一致しない場合は“No”と判断する。すなわち、レジスタ14のデータ(レジスタ値)を退避した時点以降において、退避領域33−1〜33−36または退避領域33−37(EDC)に書き込まれたデータが変化したことになる。よって、退避領域33−1〜33−36のデータが正常か判断できず、電源をオフにした直前の状態に復帰させることができない。
これらが一致する場合は、“Yes”と判定する。
【0063】
このように、図6のステップ502では、3つの判断(ステップ601、602、603)を介して、電源をオフにした直前の状態に情報処理装置1を復帰できるか否かが判定される。
【0064】
図6に戻って、“Yes”の場合を説明する。レジスタ14のレジスタ14−1〜14〜30において、情報処理装置1の動作に必要なレジスタの値を、退避領域33−1〜33−30から書き戻す(復元する)。また、レジスタ14−36(PC)の値を、退避領域33−36から書き戻す(復元する)(復元機能)(ステップ503)。
【0065】
(スマートリセット(ステップ404))
初回に電源がオンになった場合のスマートリセット(図3のステップ104参照)と同様に、スマートリセットが行われる。よって、図6では、スマートリセットの内容の記載を省略した。
(プログラムの起動(ステップ405))
本実施の形態では、不揮発性メモリ30(第1不揮発性メモリ31、第2不揮発性メモリ32、第3不揮発性メモリ33)を備えているので、電源をオフにした直前の状態が維持されている。
よって、レジスタ14のデータ(レジスタ値)を、電源をオフにした直前の状態に戻すことで、情報処理装置1は電源をオフにした直前の状態に戻る。よって、復元したレジスタ14−36(PC)で指定された不揮発性メモリ30のアドレスから命令を読み出すことで、電源をオフにした直前の状態から引き続いて処理が行われる。
このようにすることで、情報処理装置1の立ち上げに要する時間を短縮するとともに、電源オフの直前の状態から引き続いて処理を行える。
【0066】
一方、“No”の場合には、初回に電源をオンにした場合と同様に、初期設定プログラムが、情報処理装置1の動作に必要なデータ(レジスタ値)をレジスタ14に設定し、スマートリセットが解除された後に実行されるプログラムの開始アドレスをレジスタ14−36(PC)のデータ(PC値)として設定する(ステップ504)。
【0067】
(スマートリセット(ステップ406))
初回に電源をオンにした場合のスマートリセット(図3のステップ104参照)と同様に、スマートリセットが行われる。よって、詳細な説明を省略する。
(プログラムの起動(ステップ407))
初回に電源をオンになった場合のプログラムの起動(図3のステップ105参照)と同様に、プログラムの起動が行われる。よって、詳細な説明を省略する。
【0068】
以上説明したように、本実施の形態の情報処理装置1では、初期設定をハードウエア(HWによる初期設定)とソフトウエア(初期設定プログラムによる初期設定)とで行っている。このようにすることで、電源オン時の情報処理装置1の機能ユニットの構成や接続されている機器に対応して、レジスタ14のデータを設定することで、初期化できる。よって、初期設定プログラムを変更することなく、情報処理装置1の機能ユニットの構成の変更または/および接続された機器の変更に柔軟に対応することができる。
また、レジスタ14のデータを、電源をオフにした直前の値に戻すことで、情報処理装置1は、電源をオフにした直前の状態から引き続いて処理が行える。
さらに、電源をオンにした時の情報処理装置1の機能ユニットの構成や接続された機器に対応して、レジスタ14のデータを設定することで、情報処理装置1の初期設定に要する時間が短くなる。
【0069】
また、RAMとして使用する第3不揮発性メモリ33をDRAMなどの揮発性メモリで構成してもよい。このときは、退避領域33−1〜33−38および電源をオフにした直前の状態から復帰させるために必要なデータなどを記憶する領域を、第1不揮発性メモリ31または第2不揮発性メモリ32に設ければよい。
【0070】
また、上記では、不揮発性メモリ30は、MRAMとして説明したが、DRAMなどの揮発性メメリで構成し、常時オン状態に維持したり、バッテリーなどでバックアップしたりしてもよい。
【0071】
<画像形成装置100>
次に、上記の情報処理装置1を、画像形成装置100の制御部として構成する場合を説明する。
図8は、画像形成装置100の構成の一例を示す図である。
画像形成装置100は、図1に示した情報処理装置1に、ボタンなどユーザが信号を送信するためのUI(ユーザインターフェース)120、プリンタなどの画像形成部130、スキャナなどの画像読取部140、通信回線200(後述する図9参照)とデータなどの送受信を行う送受信部150を備えた構成となっている。
ここでは、UI120は情報処理装置1のUIIF50に、画像形成部130は情報処理装置1のIOIF70に、画像読取部140はSBIF80に、そして送受信部150は、通信IF60にそれぞれ接続されているとして説明する。
【0072】
図9は、画像形成装置100と通信回線200に接続された機器との関係を説明した図である。
画像形成装置100は、送受信部150を介して、インターネット、電話網などの通信回線200に接続されている。そして、通信回線200には、コンピュータ(COM)300、ファクシミリ装置400、サーバ500などが接続されている。
【0073】
画像形成装置100の基本的な動作を説明する。
画像形成装置100は、画像読取部140から読み取った画像を、画像形成部130により用紙などの記録材に印刷する。
なお、画像形成部130は、LEDなどにより感光体ドラムに潜像を書き込み、潜像をトナーで現像して記録材に転写する方式でもよく、インクジェットなどで記録材に画像を形成する方式でもよい。画像読取部140は、受光素子アレイをスキャンさせる方式であってもよく、CCDなどの撮像素子で画像を読み取る方式でもよい。
【0074】
また、画像形成装置100は、通信回線200を介してコンピュータ(COM)300またはファクシミリ装置400から送信された画像などのデータを画像形成部130により記録材に印刷する。
一方、画像形成装置100は、画像読取部140が読み取った画像などのデータを、送受信部150から通信回線200を介して画像形成装置100の外部に置かれたコンピュータ(COM)300および/またはファクシミリ装置400に送信する。
さらに、画像形成装置100は、通信回線200を介してサーバ500から、サーバ500に保管された初期設定プログラムやプログラム(OS、デバイスドライバ、アプリケーションプログラム)などを情報処理装置1の第1不揮発性メモリ31、第2不揮発性メモリ32に書き込んでもよい。
【0075】
このような画像形成装置100は、使用されないときは通電されていない状態(電源がオフの状態)にあることが好ましい。そして、使用しようとするときに電源がオンになって、速やかに動作可能になることが望ましい。
画像形成装置100には、すべての機能が動作可能な状態(オン状態)である通常モードと、一部の機能が動作可能な状態(オン状態)で、他のほとんどの機能が停止した状態(オフ状態)である節電モードとが設けられる。節電モードの画像形成装置100は、通信回線200を介してファクシミリを受信したとき、またはユーザから使用を開始する信号(復帰信号)を受信したときなどに通常モードに復帰する。
【0076】
節電モードを、図8を参照して説明する。
節電モードにおいて、節電の効果を高めるためには、制御部である情報処理装置1のCPU10、不揮発性メモリ30、バスブリッジ40もオフ状態になっていることが好ましい。さらに、電源ユニット90もオフ状態になっていることが好ましい。すなわち、節電モードでは、UI120、送受信部150、後述する情報処理装置1の電源ユニット90の給電制御回路90aのみがオン状態になっていて、情報処理装置1のCPU10、不揮発性メモリ30、バスブリッジ40、電源ユニット90の給電制御回路90aをのぞいた部分、および画像形成部130、画像読取部140がオフ状態になっている。
そして、UI120および送受信部150のそれぞれから情報処理装置1の電源ユニット90の給電制御回路90aに信号が送られるように信号線が設けられている。
電源ユニット90に設けられた給電制御回路90aは、UI120または送受信部150からの信号を受信して、電源ユニット90をオンにして、オフ状態であった情報処理装置1のCPU10、不揮発性メモリ30、バスブリッジ40、および画像形成部130、画像読取部140に電力の供給を開始する。
すなわち、節電モードにあっても、UI120、送受信部150および情報処理装置1の電源ユニット90の給電制御回路90aには、不図示の電源から電力が供給されている。
なお、情報処理装置1の電源ユニット90が画像形成部130、画像読取部140に電力を供給するとしたが、給電制御回路90aと同様な給電制御回路を備え、UI120または送受信部150からの信号により、画像形成部130および画像読取部140に電力の供給を開始するようにしてもよい。
【0077】
図10は、画像形成装置100の通常モードと節電モードとを比較する図である。図10(a)は通常モード、図10(b)は節電モードを示している。オン状態にある部分を実線で囲むとともに網点を付して示している。一方、オフ状態にある部分を破線で囲って示している。
図10(a)に示す通常モードでは、情報処理装置1、UI120、画像形成部130、画像読取部140、送受信部150がすべてオン状態にある。一方、図10(b)に示す節電モードでは、UI120、送受信部150、情報処理装置1の電源ユニット90の給電制御回路90aがオン状態にあって、画像形成部130、画像読取部140、電源ユニット90の給電制御回路90aを除く情報処理装置1がオフ状態(休止状態)になっている。
【0078】
節電モードにあるときに、画像読取部140がスキャナである場合、ユーザが画像形成装置100を使用するためスキャナの上蓋を持ち上げるとする。スキャナの上蓋はUI120の一つであるので、ユーザがスキャナの上蓋を持ち上げることにより、UI120から、画像形成装置100を起動することを指示する信号(復帰信号)が情報処理装置1の電源ユニット90の給電制御回路90aに送られる。これにより、電源ユニット90がオンになる。そして、情報処理装置1の2回目以降の電源オンで説明したように、不揮発性メモリ30に保持されたレジスタ値を、レジスタ14に書き戻すことで、画像形成装置100の制御部である情報処理装置1は、電源オフになる直前(節電モードに入る前)の状態に復帰する。
画像形成部130、画像読取部140にも電源ユニット90から電力が供給され、それぞれ動作状態になる。
これにより、画像形成装置100は、節電モードに入る直前の状態に戻る。
【0079】
前述したように、不揮発性メモリ30に退避されたレジスタ値がレジスタ14に速やかに書き戻されるとともに、OSおよびアプリケーションプログラムが不揮発性メモリ30(第2不揮発性メモリ32)に保持されているため、画像形成装置100は、節電モードから通常モードへ速やかに復帰する。
【0080】
同様に、節電モードにあるときに、通信回線200を介してファクシミリ装置400からデータを受信すると、送受信部150が検知して、画像形成装置100を起動することを指示する信号が情報処理装置1の電源ユニット90の給電制御回路90aに送られる。そして、上述した場合と同様に、画像形成装置100の制御部である情報処理装置1は、電源ユニット90がオフになる直前(節電モードに入る前)の状態に復帰する。
そして、画像形成部130、画像読取部140にも電源ユニット90から電力が供給され、それぞれが動作状態になる。
これにより、画像形成装置100は、節電モードに入る直前の状態に戻る。
【0081】
画像形成装置100は、節電モードから通常モードへの復帰によって、節電モードに移行する直前の状態から継続して処理が行える。
【0082】
なお、画像形成装置100の制御部である情報処理装置1が不揮発性メモリ30を備えず、DRAMなどによる揮発性メモリを備える場合には、通常モードから節電モードに移行するときに、レジスタ14のデータ(レジスタ値)をオン状態に維持またはバッテリーバックアップした揮発性メモリに退避し、節電モードから通常モードに移行するとき、揮発性メモリに退避したデータをレジスタ14に書き戻すことが考えられる。しかし、この方式では、揮発性メモリをオン状態に維持またはバッテリーバックアップするために電力の供給が必要である。
【0083】
以上では、画像形成装置100を節電モードから通常モードに移行する場合について説明した。
UI120、送受信部150、電源ユニット90の給電制御回路90aを含めてすべてがオフ状態の停止モードから、通常モードに移行する場合についても同様である。すなわち、不揮発性メモリ30に保持されたレジスタ値をレジスタ14に書き戻すことで、画像形成装置100は停止モードから通常モードへと速やかに復帰する。
【符号の説明】
【0084】
1…情報処理装置、10…CPU、11…ALU、12…FPU、13…割込ユニット、14、14−1〜14−36…レジスタ、15…L/Sユニット、16…命令ユニット、18…データキャッシュ、19…命令キャッシュ、21…制御ユニット、22…内部バス、23…転送バス、30…不揮発性メモリ、31…第1不揮発性メモリ、32…第2不揮発性メモリ、33…第3不揮発性メモリ、33−1〜33−38…退避領域、41…データ/アドレスバス、42…外部バス、50…UIIF、60…通信IF、70…IOIF、80…SBIF、90…電源ユニット、90a…給電制御回路、100…画像形成装置、120…UI、130…画像形成部、140…画像読取部、150…送受信部、200…通信回線、300…コンピュータ(COM)、400…ファクシミリ装置、500…サーバ

【特許請求の範囲】
【請求項1】
プログラムを実行する実行手段と、
前記実行手段の実行に用いられるデータを保持するレジスタと、
初期状態に設定するプログラムが保持する、電源を供給しなくても記憶している情報を保持することが可能な不揮発性メモリと、
前記実行手段が前記初期状態に設定するプログラムを実行する前に、前記レジスタのデータを全て消去する第1のリセットを行う第1のリセット手段と、
前記実行手段が前記初期状態に設定するプログラムを実行した後に、前記レジスタのデータのうち、当該初期状態に設定するプログラムにより設定されたデータを消去することなく他のデータを消去する第2のリセットを行う第2のリセット手段と
を備える情報処理装置。
【請求項2】
前記情報処理装置は、少なくとも1つの予め定められた機能を実現する機能ユニットを備え、
前記実行手段は、前記初期状態に設定するプログラムの実行において、
前記機能ユニットの構成および接続された機器を検知する手順と、
前記検知によって検知された前記機能ユニットの構成および前記接続された機器に対応して、前記初期状態に設定するプログラムを実行した後において、前記実行手段の実行に必要なデータを前記レジスタに設定する手順とを実行する
ことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記レジスタは、電源を供給しないと記憶している情報を保持することができない揮発性であって、
前記不揮発性メモリは、前記レジスタのデータを退避する退避領域を有し、
電源がオフになる直前に、前記レジスタのデータのうち、少なくとも、前記実行手段が電源がオフになる直前から継続して実行するために必要なデータを、前記不揮発性メモリの前記退避領域に退避する退避手段をさらに備える
ことを特徴とする請求項1または2に記載の情報処理装置。
【請求項4】
前記退避手段は、
前記退避領域に退避したデータの正当性が確認できる符号を設定する手順と
前記不揮発性メモリに前記符号を書き込む手順と
を実行することを特徴とする請求項3に記載の情報処理装置。
【請求項5】
前記実行手段は、
前記不揮発性メモリの前記退避領域に退避されたデータを前記レジスタに復元することにより、前記情報処理装置を、電源をオフにした直前の状態に復帰できるか否かを判断する手順と、
前記判断により、前記情報処理装置を、電源をオフにした直前の状態に復帰できる場合に、前記退避領域のデータを前記レジスタに復元する手順と
をさらに実行することを特徴とする請求項3または4に記載の情報処理装置。
【請求項6】
前記不揮発性メモリが、MRAM、FeRAM、PRAM、ReRAMのいずれかであることを特徴とする請求項1ないし5のいずれか1項に記載の情報処理装置。
【請求項7】
プログラムを実行する実行手段と、当該実行手段の実行に用いられるデータを保持するレジスタと、初期状態に設定するプログラムが保持された、電源を供給しなくても記憶している情報を保持することが可能な不揮発性メモリと、当該実行手段が当該初期状態に設定するプログラムを実行する前に、当該レジスタのデータを全て消去する第1のリセットを行う第1のリセット手段と、当該実行手段が当該初期状態に設定するプログラムを実行した後に、当該レジスタのデータのうち、当該初期状態に設定するプログラムにより設定されたデータを消去することなく他のデータを消去する第2のリセットを行う第2のリセット手段とを備えるコンピュータに、
予め定められた機能を実現する機能ユニットの構成および接続された機器を検知する機能と、
前記検知の結果に基づいて、レジスタにデータを設定する機能と
を実現させるためのプログラム。
【請求項8】
電源を供給しなくても記憶している情報を保持することが可能な不揮発性メモリに設けられ、レジスタのデータが退避された退避領域のデータを、前記レジスタに復元することにより、電源をオフにした直前の状態に復帰できるか否かを判断する機能と、
前記判断により電源をオフにした直前の状態に復帰できる場合に、前記退避領域のデータを前記レジスタに復元する機能と
をさらに実現させることを特徴とする請求項7に記載のプログラム。
【請求項9】
画像を記録材に形成する画像形成部と、
前記画像形成部の動作を制御するプログラムを実行する実行手段と、当該実行手段の実行に用いられるデータを保持するレジスタと、初期状態に設定するプログラムが保持された、電源を供給しなくても記憶している情報を保持することが可能な不揮発性メモリと、当該実行手段が当該初期状態に設定するプログラムを実行する前に、当該レジスタのデータを全て消去する第1のリセットを行う第1のリセット手段と、当該実行手段が当該初期状態に設定するプログラムを実行した後に、当該レジスタのデータのうち、当該初期状態に設定するプログラムにより設定されたデータを消去することなく他のデータを消去する第2のリセットを行う第2のリセット手段とを備え、当該画像形成部の動作を制御する制御部と
を備えた画像形成装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2013−69054(P2013−69054A)
【公開日】平成25年4月18日(2013.4.18)
【国際特許分類】
【出願番号】特願2011−206160(P2011−206160)
【出願日】平成23年9月21日(2011.9.21)
【出願人】(000005496)富士ゼロックス株式会社 (21,908)
【Fターム(参考)】