(58)【調査した分野】(Int.Cl.,DB名)
前記メモリーチェック制御部は、(a)前記所定イベントが検出されるたびに、前記揮発性メモリーを分割した複数のブロックから1つのブロックを順番に選択し、(b)選択した前記ブロックについての前記メモリーチェックを行うことを特徴とする請求項1記載の画像形成装置。
【発明を実施するための形態】
【0011】
以下、図に基づいて本発明の実施の形態を説明する。
【0012】
図1は、本発明の実施の形態に係る画像形成装置の構成を示すブロック図である。
図1に示す画像形成装置は、プリンター、複写機、ファクシミリ機、複合機などであり、表示装置1、入力装置2、不揮発性メモリー3、揮発性メモリー4、コントローラー5、ソケット6、および画像形成部21を備える。
【0013】
表示装置1は、ユーザーに対して各種メッセージを表示する液晶ディスプレイなどといった装置である。入力装置2は、ユーザー操作を受け付けるタッチパネル、ハードキーなどといった装置である。画像形成部21は、画像を印刷する印刷装置、原稿から画像を光学的に読み取る画像読取部などを備える。不揮発性メモリー3は、コントローラー5により実行される所定動作を記述したプログラムや所定動作に必要なデータなどを記憶しているフラッシュメモリーなどである。
【0014】
揮発性メモリー4は、不揮発性メモリー3からロードされた上述のプログラムが展開されるRAM(Random Access Memory)などである。
【0015】
コントローラー5は、CPU(Central Processing Unit)などのプロセッサーや専用ハードウェアを備え、揮発性メモリー4に展開されたプログラムをプロセッサーで実行し、そのプロセッサーや専用ハードウェアを使用して、メモリー制御部11、システム制御部12、メモリーチェック制御部13、およびスリープ制御部14として動作し、それらの処理部によって所定動作を実行する。また、コントローラー5は、画像形成部21を制御して、印刷、画像読取などを実行する。
【0016】
メモリー制御部11は、揮発性メモリー4(およびソケット6に接続された追加メモリーモジュール)に対するデータのリードライトを実行する。システム制御部12は、メモリー制御部11を使用して、揮発性メモリー4(およびソケット6に接続された追加メモリーモジュール)に対するデータのリードライトを実行する。
【0017】
システム制御部12は、揮発性メモリー4に展開されたプログラムに従って所定動作(各種ジョブの受付、画像処理、印刷装置、画像読取装置などの内部装置の制御など)を実行する。その際、システム制御部12は、所定動作に必要な記憶領域を揮発性メモリー4において確保し、その記憶領域をワークメモリーなどとして使用して所定動作を実行する。システム制御部12は、オペレーティングシステムを含んでいてもよい。
【0018】
メモリーチェック制御部13は、揮発性メモリー4のメモリーチェックを行う。具体的には、メモリーチェック制御部13は、システム制御部12の起動処理後、所定イベントが検出されたときに、メモリーチェックを行う。そのメモリーチェックにおいてエラーが検出された場合、システム制御部12は、そのメモリーチェックにおいてエラーが検出された領域をエラー領域として切り離し、切り離されたエラー領域以外の領域を使用して、上述の所定動作を継続する。
【0019】
この「所定イベント」は、スリープモード移行条件の成立、ジョブ受付が所定時間ないことなどである。
【0020】
なお、メモリーチェック制御部13は、専用ハードウェアであり、メモリー制御部11とは別に揮発性メモリー4などにアクセスする。
【0021】
また、メモリーチェックでは、メモリーチェック制御部13は、(a)メモリーチェックの対象領域に対して特定値(例えば、すべて0、すべて1、ランダム値など)のデータを書き込み、(b)その対象領域からデータを読み出し、(c)読み出した値と特定値とを比較し、比較結果に基づいて、エラーの有無を特定する。
【0022】
この実施の形態では、システム制御部12は、メモリーチェック制御部13によりエラー領域が切り離された場合において、揮発性メモリー4における使用可能領域(つまり、エラー領域ではなく、かつデータが書き込まれていない領域)のサイズが所定の閾値以上ではないときには、使用可能領域の減少をユーザーに通知し、追加メモリーモジュールの追加なしで上述の所定動作を継続するか、追加メモリーモジュールの追加後、上述の所定動作を継続するか、をユーザーに選択させる。
【0023】
例えば、システム制御部12は、使用可能領域の減少をユーザーに通知する場合、その旨を示すメッセージを表示装置1に表示させるとともに、追加メモリーモジュールの追加なしで上述の所定動作を継続するか、追加メモリーモジュールの追加後、上述の所定動作を継続するか、を選択させるためのソフトキーを表示装置1に表示させ、それらのソフトキーのいずれかに対するユーザー操作を入力装置2で検出する。
【0024】
また、この実施の形態では、ここで、追加メモリーモジュールの追加後、上述の所定動作を継続することが選択された場合、追加メモリーモジュールが追加されると、メモリーチェック制御部13は、少なくとも追加メモリーモジュールのメモリーチェック(例えばエラー領域以外の全領域)を行い、システム制御部12は、上述のプログラムのための領域として、エラー領域以外の領域の再割当を行う。
【0025】
さらに、この実施の形態では、メモリーチェック制御部13は、(a)上述の所定イベントが検出されるたびに、揮発性メモリー4(つまり、揮発性メモリー4の全記憶領域)を分割した複数のブロックから1つのブロックを順番に選択し、(b)選択したブロックについてのメモリーチェックを行う。したがって、所定イベントが所定回数実行されることで、オペレーティングシステムの使用領域を含むすべてのブロック(つまり、揮発性メモリー4の全記憶領域)のメモリーチェックが実行される。
【0026】
なお、メモリーチェック制御部13は、ブロックを選択するとき、前回のメモリーチェックからの経過時間が最も長いブロックを選択する。
【0027】
システム制御部12は、コマンドをメモリーチェック制御部13に対して発行してメモリーチェックを開始させ、メモリーチェックが完了すると、メモリーチェック制御部13は、システム制御部12に対する割込を発生させて、メモリーチェックの完了を通知する。
【0028】
さらに、スリープ制御部14は、上述の「所定イベント」としてのスリープモード移行条件の成立を検出するとともに、システム制御部12からの指令に従ってスリープモード移行処理(電源モードの切り替えなど)を行う。
【0029】
また、ソケット6は、追加メモリーモジュール(例えば、RAMを備えるDIMM(Dual Inline Memory Module))を着脱可能なソケットである。ソケット6に装着された追加メモリーモジュールは、揮発性メモリー4とともに、一連の記憶領域として使用される。つまり、追加メモリーモジュールが装着されることで、記憶領域が拡張される。
【0030】
次に、上記画像形成装置の動作について説明する。
図2は、
図1に示す画像形成装置の動作について説明するフローチャートである。
【0031】
例えば、スリープモード移行条件の成立が検出されると、メモリーチェック制御部13は、揮発性メモリー4の複数のブロックから1つのブロックを選択し(ステップS1)、選択したブロックに書き込まれているデータを退避するための記憶領域(退避用メモリー領域)を確保し(ステップS2)、そのデータを退避用メモリー領域へコピーする(ステップS3)。なお、退避用メモリー領域は、データの書き込まれていない未使用領域である。その後、メモリーチェック制御部13は、選択したブロックのメモリーチェックを行う(ステップS4)。
【0032】
そして、メモリーチェック制御部13は、選択したブロックのメモリーチェックでエラーが検出されたか否かを判定する(ステップS5)。
【0033】
選択したブロックのメモリーチェックでエラーが検出されなかった場合、メモリーチェック制御部13は、退避したデータを、そのブロックへ書き戻す(ステップS6)。
【0034】
その後、システム制御部12は、電源モードを通常モードまたはレディモードからスリープモードへ切り換える(ステップS7)。
【0035】
一方、選択したブロックのメモリーチェックでエラーが検出された場合、システム制御部12は、エラー領域を切り離し(ステップS8)、揮発性メモリー4における現時点の使用可能領域のサイズを特定し(ステップS9)、使用可能領域のサイズが所定の閾値以上であるか否かを判定する(ステップS10)。なお、エラー領域の切り離しは、エラー領域へのアクセスを禁止することである。
【0036】
使用可能領域のサイズが所定の閾値以上である場合、システム制御部12は、エラー領域の代替領域を使用可能領域から確保して、エラー領域から代替領域へのメモリー割当の変更を行う(ステップS11)。なお、このとき、エラー領域からデータを退避した場合には、そのデータを代替領域へ書き戻してもよいし、アドレス設定を変更して、データを退避した領域をエラー領域の代わりに使用してもよい。
【0037】
その後、システム制御部12は、電源モードを通常モードまたはレディモードからスリープモードへ切り換える(ステップS7)。
【0038】
他方、ステップS10において、使用可能領域のサイズが所定の閾値以上ではない場合、システム制御部12は、使用可能領域の減少をユーザーへ通知し(ステップS12)、ユーザー選択処理を実行する(ステップS13)。
【0039】
図3は、
図2におけるユーザー選択処理(ステップS13)の詳細について説明するフローチャートである。
【0040】
ユーザー選択処理では、まず、システム制御部12は、追加メモリーモジュールの追加をユーザーが選択したか否かを、入力装置2に対するユーザー操作に基づいて特定する(ステップS21)。
【0041】
追加メモリーモジュールの追加が選択された場合、システム制御部12は、当該画像形成装置の電源をオフする(ステップS22)。
【0042】
ユーザーは、電源オフの後、ソケット6に追加メモリーモジュールを装着し、電源オン操作を行う。
【0043】
電源オン操作に従って、システム制御部12は、起動し(ステップS23)、揮発性メモリー4および追加メモリーモジュールの全記憶領域のメモリーチェックを行う(ステップS24)。
【0044】
システム制御部12は、そのメモリーチェックにおいてエラーを検出したか否かを判定する(ステップS25)。エラーを検出した場合、システム制御部12は、エラーを検出した領域(エラーを検出した箇所を含む最小単位の領域)を切り離す(ステップS26)。
【0045】
そして、システム制御部12は、揮発性メモリー4における現時点の使用可能領域のサイズを特定し(ステップS27)、使用可能領域のサイズが所定の閾値以上であるか否かを判定する(ステップS28)。
【0046】
使用可能領域のサイズが所定の閾値以上である場合、システム制御部12は、エラー領域の代替領域を使用可能領域から確保して、エラー領域から代替領域へのメモリー割当の変更を行う(ステップS29)。なお、このとき、エラー領域からデータを退避した場合には、そのデータを代替領域へ書き戻してもよいし、データを退避した領域をエラー領域の代わりに使用してもよい。
【0047】
一方、ステップS28において、使用可能領域のサイズが所定の閾値以上ではない場合、システム制御部12は、使用可能領域の減少をユーザーへ通知し(ステップS30)、ステップS21に戻る。
【0048】
他方、ステップS21において、追加メモリーモジュールの追加をユーザーが選択しなかった場合、システム制御部12は、エラー領域を使用しないようにメモリー割当を変更し(ステップS31)、現時点での使用可能領域を使用して、上述の所定動作を継続する。
【0049】
したがって、追加メモリーモジュールを追加する場合には、引き続き、所定動作が実行可能であるが、追加メモリーモジュールを追加しない場合には、現時点の使用可能領域では記憶領域が足りない特定の処理(画像処理など)については、その実行が禁止されたり、特定の処理の処理時間が長くなったりする。
【0050】
このようにして、ユーザー選択処理(ステップS13)が実行される。ユーザー選択処理(ステップS13)が完了すると、電源モードがレディモードとされる。なお、追加メモリーモジュールを追加しない場合には、ユーザー選択処理完了後、電源モードをスリープモードとされるようにしてもよい。
【0051】
以上のように、上記実施の形態によれば、システム制御部12は、揮発性メモリー4に展開されたプログラムに従って所定動作を実行する。メモリーチェック制御部13は、揮発性メモリー4のメモリーチェックを行う。そして、メモリーチェック制御部13は、システム制御部12の起動処理後、所定イベントが検出されたときに、メモリーチェックを行い、システム制御部12は、(a)メモリーチェックにおいてエラーが検出された領域をエラー領域として切り離し、(b)切り離されたエラー領域以外の領域を使用して、所定動作を継続する。
【0052】
これにより、起動処理後に揮発性メモリーの一部が故障した場合にも、画像形成装置の正常な動作の継続が可能となる。
【0053】
なお、上述の実施の形態に対する様々な変更および修正については、当業者には明らかである。そのような変更および修正は、その主題の趣旨および範囲から離れることなく、かつ、意図された利点を弱めることなく行われてもよい。つまり、そのような変更および修正が請求の範囲に含まれることを意図している。
【0054】
例えば、上記実施の形態において、上述のブロックのサイズについては、固定としてもよいし、上述の使用可能領域のサイズに応じて決定してもよい。