JP7447668B2 - 電子機器および電子機器の制御方法 - Google Patents

電子機器および電子機器の制御方法 Download PDF

Info

Publication number
JP7447668B2
JP7447668B2 JP2020082212A JP2020082212A JP7447668B2 JP 7447668 B2 JP7447668 B2 JP 7447668B2 JP 2020082212 A JP2020082212 A JP 2020082212A JP 2020082212 A JP2020082212 A JP 2020082212A JP 7447668 B2 JP7447668 B2 JP 7447668B2
Authority
JP
Japan
Prior art keywords
memory
error
program
processor
storage area
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2020082212A
Other languages
English (en)
Other versions
JP2021177301A (ja
Inventor
勇樹 茂木
雄二 松田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2020082212A priority Critical patent/JP7447668B2/ja
Publication of JP2021177301A publication Critical patent/JP2021177301A/ja
Application granted granted Critical
Publication of JP7447668B2 publication Critical patent/JP7447668B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Test And Diagnosis Of Digital Computers (AREA)
  • Memory System (AREA)
  • Stored Programmes (AREA)
  • Facsimiles In General (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)
  • Record Information Processing For Printing (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Hardware Redundancy (AREA)

Description

本発明は、電子機器および電子機器の制御方法に関する。
近年、複合機をはじめとする画像形成装置等の電子機器は、コピー機能、プリント機能、スキャナ機能、ファクシミリ機能などの基本機能を応用した様々なアプリケーションを搭載している。この種の複数の機能を快適かつ同時に処理するために、画像形成装置には、DDR-SDRAM(Double Data Rate-Synchronous Dynamic Random Access Memory)等の高速で大容量のメモリが搭載されるようになってきている。
例えば、画像形成装置は、システム起動時に、メモリチェック用データのDDR-SDRAMへの書き込みと、書き込んだメモリチェック用データのDDR-SDRAMからの読み出しを実行することで、メモリチェックを行う。この際、実際の動作に即したメモリチェックを行うために、ライトアクセスとリードアクセスとの全組み合わせを所定のアクセス間隔で発生させる(例えば、特許文献1参照)。
画像処理装置等の電子機器に搭載されるメモリは、高速、大容量のために動作周波数が高くなり、動作電圧が低くなる傾向にある。これにより、例えば、外乱ノイズに対する耐性が低下すると、メモリ内でデータのビット値またはアドレスのビット値が反転するなどのエラーが発生するおそれがある。エラーによりメモリの動作不良が発生すると、電子機器の正常な動作に支障をきたすおそれがある。例えば、メモリの一部の領域で動作不良が発生した場合、フェイルソフトにより電子機器の動作を継続させることが好ましい。
開示の技術は、上記の課題に鑑みてなされたものであり、電子機器で使用するメモリのエラーを検出した場合にも、電子機器を継続して動作可能にすることを目的とする。
上記技術的課題を解決するため、本発明の一形態の電子機器は、複数の記憶領域を有するメモリと、前記メモリに保持されたプログラムを実行するともに、前記メモリのテストを実行するプロセッサと、前記テストで前記メモリのエラーが検出された場合、エラーが検出された記憶領域を避けて前記メモリにアクセスするアクセス仕様を決定し、前記メモリのエラーの発生により、前記プログラムを展開する前記メモリの記憶領域が不足する場合、前記メモリにおける使用可能な記憶領域に展開可能で、機能が制限されたプログラムの前記プロセッサによる実行を決定し、前記プロセッサに再起動を指示する仕様改変部と、を有し、再起動された前記プロセッサは、前記仕様改変部が決定したアクセス仕様に基づいて、エラーが検出された記憶領域を避けて前記メモリに展開された前記プログラムを実行し、前記仕様改変部が前記機能が制限されたプログラムの前記プロセッサによる実行を決定した場合、前記機能が制限されたプログラムを実行することを特徴とする。
電子機器で使用するメモリのエラーを検出した場合にも、電子機器を継続して動作可能にすることができる。
本発明の第1の実施形態に係る画像形成装置の例を示すブロック図である。 図1のメインCPUによるメインメモリのテストの一例を示すフロー図である。 図1のサブCPUによるファームウェアの改変内容を決定する動作の一例を示すフロー図である。 図1のメインCPUの再起動時の動作の一例を示すフロー図である。 図3の処理によりメインメモリの使用領域を縮退する一例を示す説明図である。 アドレス領域を縮退する場合のメインメモリの使用可能率の一例を示す説明図である。
以下、図面を参照して実施の形態の説明を行う。なお、各図面において、同一構成部分には同一符号を付し、重複した説明を省略する場合がある。また、信号を示す符号を、端子または信号線を示す符号としても使用する。
図1は、本発明の第1実施形態に係る画像形成装置の一例を示すブロック図である。例えば、図1に示す画像形成装置100は、複写機能、プリンタ機能、スキャナ機能およびファクシミリ機能等を有するデジタル複合機である。なお、画像形成装置100は、スキャナ、プリンタまたはファクシミリ等の単一の機能を有する画像形成装置でもよく、プロジェクターまたは電子黒板等の各種OA(Office Automation)機器でもよい。画像形成装置およびOA機器は、電子機器の一例である。
画像形成装置100は、メインCPU10、仕様改変部20、メインメモリ50、外部デバイス60、メインストレージ70、画像処理機構80および表示部90を有する。メインCPU10は、CPUコア12、メモリコントローラ14およびDMAC16を有する。仕様改変部20は、改変内容決定部32を含むサブCPU30と不揮発メモリ40とを有する。
メインCPU10は、画像形成装置100の全体の動作を制御し、画像処理機構80にスキャナ動作、プリンタ動作およびコピー動作等を実行させる。また、メインCPU10は、省エネルギーモード時に、電力の供給が停止され、動作を停止する。すなわち、メインCPU10は、画像形成装置100の動作中に起動と停止とを繰り返す。サブCPU30は、画像形成装置100の動作中に常に動作する。なお、省エネルギーモード中、メインメモリ50への電力の供給も停止される。メインCPU10は、プロセッサの一例である。
サブCPU30は、画像形成装置100に供給される電源を制御するとともに、メインCPU10の省エネルギーモードへの移行と省エネルギーモードからの復帰を制御する。サブCPU30は、省エネルギーモード中、メインCPU10に代わって、画像形成装置100の動作を制御する。例えば、省エネルギーモードは、図示しない操作部の操作が所定時間以上行われないときに移行される。サブCPU30は、不揮発メモリ40または図示しない他のメモリに格納された制御プログラムを実行することで動作する。
例えば、サブCPU30は、制御プログラムを実行することにより、改変内容決定部32として機能する。改変内容決定部32は、後述するように、メインCPU10が実行するメインメモリ50の動作チェックの結果に基づいて、メインメモリ50の読み書きに使用するデータ端子とアドレス領域とを決定する。そして、改変内容決定部32は、決定した内容に従ってファームウェアの少なくとも一部を改変することを決定する。
なお、ファームウェアの改変は、ファームウェアの実行内容の変更だけでなく、機能が異なるの複数のファームウェアから、メインメモリ50の使用領域に合わせて適切なファームウェアを選択する動作を含む。また、メインメモリ50の動作に不具合があるが、ファームウェアを改変せずに画像形成装置100の動作を継続可能な場合、改変内容決定部32は、通常時に使用するファームウェアの使用を継続することを決定してもよい。
例えば、不揮発メモリ40は、フラッシュメモリまたはEEPROM(Electrically Erasable Programmable Read Only Memory)である。なお、不揮発メモリ40は、サブCPU30に内蔵されてもよい。この場合、仕様改変部20は、1チップマイコンにより実現されてもよい。また、サブCPU30によりメインストレージ70がアクセス可能な場合、不揮発メモリ40を設けることなく、不揮発メモリ40に記憶すべき情報をメインストレージ70に記憶してもよい。
改変内容決定部32は、決定した改変内容を、メインCPU10に通知するとともに、不揮発メモリ40またはメインストレージ70等の不揮発性の記憶部に格納する。改変内容を不揮発性の記憶部に格納することにより、改変内容決定部32が決定した改変内容は、例えば、画像形成装置100の電源が遮断された後にも保持され、画像形成装置100の電源の再投入後に読み出すことができる。
CPUコア12は、電源オン(起動時)に、例えば、メインストレージ70に格納されたファームウェアをメインメモリ50に展開し、メインメモリ50上に展開されて保持されたファームウェアを実行する。ファームウェアは、OS(Operating System)および画像形成装置100の機能を実現するプログラムを含む。CPUコア12は、メモリコントローラ14を介してメインメモリ50にアクセスする。また、CPUコア12は、メモリコントローラ14を介してDMCA16を制御し、メインCPU10に接続される外部デバイス60に対して、データを入出力する。
例えば、メインメモリ50は、DDR-SDRAM(Double Data Rate -Synchronous Dynamic Random Access Memory)であり、複数の記憶領域を有している。この実施形態では、データバス幅が16ビットで記憶容量が16Gb(ギガビット)の8つのDDR4-SDRAMが2ランクに割り当てられる。この例では、1ランクは、データバス幅が64ビットで記憶容量が8GB(ギガバイト)であり、メインメモリ50の総記憶容量は、16GBである。
例えば、外部デバイス60は、画像データの画像処理を実施するASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)等である。なお、メインCPU10からの要求に基づいて画像処理等を実行した外部デバイス60は、画像処理により生成した画像データを、DMAC16を介してメインメモリ50等に転送する。外部デバイス60が画像処理を実行する画像データを受けてから、画像処理後の画像データをメインメモリ50に転送するまでの時間は、元の画像データの大きさおよび外部デバイス60の処理性能により異なる。
例えば、メインストレージ70は、データを不揮発に記憶するHDD(Hard Disk Drive)またはSSD(Solid State Drive)等であり、記憶容量は、メインメモリ50の記憶容量に比べて十分に大きい。メインストレージ70には、CPUコア12が実行する各種ファームウェア(プログラム)が格納されている。
画像処理機構80は、図示しないプリンタユニット、スキャナユニット、現像ユニット、用紙の搬送ユニットおよびエンジン制御ユニット等を有する。例えば、表示部90は、図示しない操作部と一体化された液晶表示装置等の表示パネルを含み、ユーザにより視認可能な位置に配置される。表示部90は、CPUコア12またはサブCPU30からの指示に基づいて、メッセージ等を表示する。
図2は、図1のメインCPU10によるメインメモリ50のテストの一例を示すフロー図である。図2は、電子機器の制御方法の一例を示す。メインメモリ50のテストは、CPUコア12がメインメモリ50に記憶されたメモリテストプログラムを実行することで実現される。
例えば、メモリテストは、画像形成装置100の起動時に実行される。なお、メモリテストは、ユーザの操作に基づくコピー動作、スキャン動作またはプリント動作等が実行されていない非動作時間が所定時間に到達した場合に実行されてもよい。また、メモリテストは、省エネルギーモードになったとき、または、省エネルギーモードになってから所定時間が経過したときに実行されてもよい。さらに、メモリテストは、夜中の0時など、予め設定された時刻が来たときに実行されてもよい。
ユーザが操作する可能性が低いタイミングでメモリテストを実行することで、コピー操作等がメモリテストにより開始できない可能性を低くすることができ、ユーザは、メモリテストを意識せずに画像形成装置100を使用することができる。なお、CPUコア12は、メモリテストの実行中、表示部90にメモリテスト中であることを表示してもよい。
まず、ステップS102において、CPUコア12は、外部デバイス60にDMAC16を使用したDMA転送の停止を指示する。これにより、メモリテスト中に外部デバイス60がメインメモリ50にデータをライトすることを抑止することができ、メモリテストが正常に実行されないことを抑止することができる。
次に、ステップS104において、CPUコア12は、メインメモリ50に保持されているデータを、メモリコントローラ14を介してリードし、リードしたデータをメインストレージ70にコピーする。すなわち、CPUコア12は、メインメモリ50内のデータをメインストレージ70に待避することで、メモリテストによるデータの消失を抑止する。
次に、ステップS106において、CPUコア12は、メモリコントローラ14を介してメインメモリ50にテストデータをライトする。次に、ステップS108において、CPUコア12は、メモリテストを実行する指定領域内の記憶領域にテストデータのライトが完了した場合、処理をステップS110に移行する。CPUコア12は、指定領域内の記憶領域へのテストデータのライトが完了していない場合、ステップS106を再度実行する。
ステップS110において、CPUコア12は、指定領域内にライトしたテストデータを、メモリコントローラ14を介してリードし、期待値(すなわち、ライトしたテストデータ)と比較する。なお、メインメモリ50を複数の指定領域に分割してメモリテストを実行する場合、CPUコア12は、ステップS106~S110を指定領域の数だけ繰り返し実行する。
次に、ステップS112において、CPUコア12は、ステップS110でリードしたテストデータの少なくともいずれかが期待値と一致しない場合、エラーがあると判定する。CPUコア12は、エラーを判定した場合、ステップS114を実行し、メモリテストによるエラーを検出しなかった場合、ステップS120を実行する。
ここで、メインメモリ50内部のデータ線のオープン不良またはショート不良を検出しやすくするために、例えば、メインメモリ50にライトするテストデータは、隣接するデータ端子DQの論理値が互いに相違させることが好ましい。この種のテストデータとして、"0xAAAA"または"0x5555"がある。ここで、符号"0x"は、その後に続く数値が16進数であることを示す。
また、メインメモリ50内でデータの信号値を増幅するアンプの充放電量を大きくし、電源ノイズの影響を大きくするため、"0xFFFF"と"0x0000"のテストデータを交互にライトしてもよい。さらに、アドレスと同じ値のデータを各アドレスにライトした後、全アドレスからデータをリードして期待値と比較することで、メインメモリ50内部のアドレス線のオープン不良またはショート不良を検出しやすくすることができる。
ステップS114において、CPUコア12は、サブCPU30にエラー情報を通知する。CPUコア12からサブCPU30へのエラー情報の通知は、不揮発メモリ40またはメインストレージ70等の記憶部を介して行われてもよい。ここで、エラー情報は、例えば、ステップS110において、リードしたテストデータが期待値と異なる場合のテストデータ、期待値、および、テストデータの格納先のアドレスとを含む。
なお、エラー情報は、リードエラーが発生したリードデータのビット番号と、テストデータの格納先のアドレスとを含んでもよい。ここで、リードエラーとは、リードしたテストデータと期待値とが異なることである。この場合、リードエラーが発生したデータ端子のビット番号は、DQ0~DQ3というように、ビット番号の範囲で示されてもよい。同様に、リードエラーが発生したアドレスは、アドレスの範囲で示されてもよい。
次に、ステップS116において、CPUコア12は、メインストレージ70にエラー履歴を格納する。エラー履歴は、エラー情報そのものでもよく、エラー情報に基づいて生成されるメインメモリ50のアドレスの縮退内容またはデータの縮退内容を示す情報でもよい。すなわち、CPUコア12は、メインメモリ50で発生したエラーの解析の一部を実行してもよい。
アドレスの縮退とは、エラーの発生後に使用するメインメモリ50のアドレス領域を、通常使用するアドレス領域に比べて小さくすることである。データの縮退とは、エラーの発生後にメインメモリ50へのリードおよびライトに使用するデータ端子の数を、通常使用するデータ端子の数に比べて少なくすることである。メインストレージ70にエラー履歴を格納することで、メインCPU10は、エラー履歴をいつでも確認することができ、サブCPU30は、メインCPU10を介してエラー履歴をいつでも確認することができる。
次に、ステップS118において、CPUコア12は、メインメモリ50にエラーが発生したため、メインメモリ50の交換が必要である旨のメッセージ(エラー情報)を、表示部90に表示し、図2に示す処理を終了する。これにより、画像形成装置100が動作しているときに、部品の交換または修理をユーザに促すことができ、画像形成装置100のダウンタイムを低減することができる。
ステップS120において、CPUコア12は、ステップS104でコピーしたデータをメインストレージ70からメインメモリ50に戻す。次に、ステップS122において、CPUコア12は、外部デバイス60にDMAC16を使用したDMA転送の許可を指示し、図2に示す処理を終了する。
なお、メモリテストを実行するメインメモリ50の記憶領域を複数のブロックに分割し、分割したブロック毎にメモリテストを実行する場合、CPUコア12は、メインストレージ70へのデータの待避をブロック毎に実行してもよい。この場合、ステップS106~S110は、ブロック毎に実行され、ブロックのメモリテスト毎に、ステップS104の待避とステップS120の復元とが実行される。また、メモリテストを画像形成装置100の起動時に実行する場合、メインメモリ50にデータが記憶されていないため、ステップS104、S120を省略することができる。
図3は、図1のサブCPU30によるファームウェアの改変内容を決定する動作の一例を示すフロー図である。図3は、電子機器の制御方法の一例を示す。図3に示す動作フローは、サブCPU30が、メインCPU10からのエラー情報の通知(図2のステップS114)を受信したことに基づいて開始される。
まず、ステップS202において、サブCPU30は、メインCPU10から受信したエラー情報に含まれるメインメモリ50で発生したエラーの内容を解析する。例えば、サブCPU30は、受信したエラー情報に基づいて、メインメモリ50において、リードエラーの発生により使用できないデータ端子または使用できないアドレス領域を判定する。
そして、サブCPU30は、エラーの解析結果に基づいて、リードエラーが発生した記憶領域を避けてメインメモリ50にアクセスするための縮退方法(アクセス仕様)を決定する。縮退方法は1つに限らず、複数存在する場合もある。縮退方法については、図5で説明する。なお、図2のステップS116で説明したように、エラー内容の解析の一部は、CPUコア12により実行されてもよい。
例えば、64ビットのデータ中、メインメモリ50からリードしたデータと期待値とが異なるビットが1、2ビットの場合、データ線不良であると推測できる。例えば、64ビットのデータDQ63-DQ0の期待値が"0x1234 5678 9ABC DEF0"であり、リードデータが"0x3234 5678 9ABC DEF0"であるとする。この場合、上位(先頭)から3ビット目のデータDQ61が不良であることが分かる。
一方で、不良のデータ線のビット番号に一貫性がない場合、アドレス線で不良が発生している可能性がある。この場合、図2のステップS112で説明したように、アドレスと同じ値のデータを各アドレスにライトした後、全アドレスからデータをリードして期待値と比較することで、アドレス線の不良を検出することが可能である。
次に、ステップS204において、サブCPU30は、ステップS202での解析結果に基づいて、メインメモリ50のアドレス領域を縮退する場合、ステップS206を実行し、アドレス領域を縮退しない場合、ステップS210を実行する。ここで、アドレス領域の縮退とは、メインメモリ50に割り当てられた通常使用するアドレス領域より狭いアドレス領域を使用して、メインメモリ50にアクセスすることを示す。これにより、メインCPU10は、アドレスエラーまたはデータエラーが発生した領域を避けて、メインメモリ50にアクセスすることができ、ファームウェア等の各種プログラムを正常に実行することができる。
ステップS206において、サブCPU30は、ステップS202での解析結果に基づいて、メインメモリ50のアクセスで使用するアドレス領域、または、使用を禁止するアドレス領域を決定する。例えば、メインメモリ50に割り当てられたアドレス領域のうち、下位側のアドレス領域のいずれかにアドレスエラーがある場合、サブCPU30は、上位側(通常使用するアドレス領域の半分)のアドレス領域の使用を決定する。
次に、ステップS208において、サブCPU30は、使用するファームウェアを決定する。例えば、サブCPU30は、64ビット版の通常のファームウェアの使用を決定する。なお、ステップS206で上位側(通常使用するアドレス領域の半分)のアドレス領域の使用を決定することで、メインメモリ50で使用可能な記憶領域が半減し、通常のファームウェアが使用できない場合がある。
この場合、サブCPU30は、縮退するアドレス範囲に対応する記憶領域に収納可能な、機能が制限されたファームウェアの使用を決定する。また、メインメモリ50のアドレス領域の一部が使用できない場合、サブCPU30は、ファームウェアで使用するメインメモリ50のアドレスを割り当てるレジスタを変更することで、アドレス領域を変更することでファームウェアの改変を決定してもよい。
ステップS210において、サブCPU30は、ステップS202での解析結果に基づいて、メインメモリ50のデータバス幅を縮退する場合、ステップS212を実行し、データバス幅を縮退しない場合、ステップS216を実行する。ここで、データバス幅の縮退とは、通常使用するデータバス幅(例えば、64ビット)より少ないデータバス幅(例えば、32ビット)で、メインメモリ50に対してデータを入出力することを示す。これにより、メインCPU10は、データエラーが発生したデータ端子を使用することなく、メインメモリ50にアクセスすることができ、ファームウェア等の各種プログラムを正常に実行することができる。
ステップS212において、サブCPU30は、ステップS202での解析結果に基づいて、メインメモリ50のアクセスで使用するデータ端子DQ、または、メインメモリ50のアクセスで使用を禁止するデータ端子DQを決定する。例えば、64ビットのデータ端子DQ63-DQ0のうち、上位側のビットのいずれかにエラーがある場合、サブCPU30は、下位の32ビットのデータ端子DQ31-DQ0の使用を決定する。
次に、ステップS214において、サブCPU30は、使用するファームウェアを決定する。例えば、ステップS212で下位の32ビットのデータ端子DQ31-DQ0の使用を決定した場合、サブCPU30は、機能が制限された32ビット版のファームウェアの使用を決定する。
ステップS208、S214により、アドレスまたはデータが縮退された状態で使用可能なファームウェアを決定することで、メインメモリ50にエラーが発生した場合にも、画像形成装置100の動作を継続することができる。これにより、画像形成装置100のダウンタイムを低減することができ、画像形成装置100の信頼性を向上することができる。
なお、メインCPU10が複数のアプリケーションプログラムを実行する場合、サブCPU30は、使用頻度が低いアプリケーションプログラムの機能を制限する決定をしてもよい。例えば、アプリケーションプログラムの使用頻度は、CPUコア12により監視され、CPUコア12からサブCPU30に通知される。あるいは、CPUコア12は、監視されるアプリケーションプログラムの使用頻度の情報を、不揮発メモリ40等のサブCPU30によりリード可能な記憶部に格納する。
使用頻度が低いアプリケーションプログラムの機能を制限することで、アプリケーションプログラムで使用するメインメモリ50の記憶領域を削減することができる。この結果、メインメモリ50にエラーが発生した場合にも、フェイルソフトにより画像形成装置100の動作を継続することが可能になり、画像形成装置100のダウンタイムを低減することができる。
一方、メインメモリ50のエラーの発生により、画像形成装置100を正常に動作させることができない場合、ステップS216が実行される。ステップS216では、サブCPU30は、例えば、表示部90に、メインメモリ50の故障により画像形成装置100の修理が必要である旨のメッセージ(エラー情報)を表示し、図3に示す処理を終了する。
ステップS218において、サブCPU30は、ステップS202~S214で決定した縮退内容をメインCPU10に通知する。なお、サブCPU30からメインCPU10への縮退内容の通知は、メインCPU10が再起動時の初期化シーケンスでアクセス可能なレジスタを介して行われてもよい。また、再起動時に、メインCPU10がアドレス領域を設定するために参照するレジスタの設定値をサブCPU30により書き換えることで、縮退内容をメインCPU10に通知してもよい。
なお、ステップS208またはS214で決定したファームウェアに応じて、使用するアドレス領域と使用するデータ端子DQとが自動的に定まる場合がある。この場合、サブCPU30は、例えば、使用するファームウェアの番号を示すビット値を、専用線を介してメインCPU10に継続的に出力してもよい。メインCPU10は、再起動時に専用線の論理レベルに対応するファームウェアをメインストレージ70からメインメモリ50に展開して実行する。
次に、ステップS220において、サブCPU30は、メインCPU10に再起動を指示し、図3に示す処理を終了する。メインメモリ50に不良がある状態では、画像形成装置100が正しく動作しないおそれがある。しかしながら、この実施形態では、メインCPU10は、メインメモリ50の不良箇所を避けて展開されたファームウェアを実行することができる。このため、メインメモリ50に不良がある場合にも、画像形成装置100は、正常に動作することができる。
図4は、図1のメインCPU10の再起動時の動作の一例を示すフロー図である。図4は、電子機器の制御方法の一例を示す。
まず、ステップS302において、メインCPU10のCPUコア12は、サブCPU30からメインメモリ50のエラーの通知を受けた場合、ステップS304を実行し、メインメモリ50のエラーの通知を受けていない場合、ステップS312を実行する。
ステップS304において、CPUコア12は、エラーの通知に基づいて、使用するデータ端子を設定する。例えば、CPUコア12は、使用するデータ端子を示す情報を設定レジスタに設定し、使用するデータ端子を示す情報をメモリコントローラ14に通知する。
次に、ステップS306において、CPUコア12は、エラーの通知に基づいて、使用するアドレス領域を設定する。例えば、CPUコア12は、メインメモリ50のアクセスで使用するアドレス範囲を示す情報を設定レジスタに設定し、アドレス範囲を示す情報をメモリコントローラ14に通知する。
次に、ステップS308において、CPUコア12は、ステップS304、S306で設定した内容に基づいて、使用するファームウェアを選択する。そして、CPUコア12は、選択したファームウェアをメインストレージ70からメインメモリ50上にリードして展開する。ステップS302~S308は、再起動時にOSを実行する前にCPUコア12が実行するBIOS(Basic Input Output System)等の基本プログラムにより実行されてもよい。
なお、図3のステップS218で、サブCPU30が、使用するファームウェアの番号を示すビット値を、専用線を介してメインCPU10に出力する場合、ステップS304、S306の処理は、サブCPU30から受信するビット値に応じて実行される。
次に、ステップS310において、CPUコア12は、ステップS304、S306で設定したメインメモリ50の使用環境を用いて、ステップS308で選択したファームウェアの実行を開始し、図4に示す処理を終了する。
一方、メインメモリ50のエラーの通知を受けていない場合、ステップS312において、CPUコア12は、メインメモリ50の通常の使用環境(縮退しないフル環境)で、通常のファームウェアの実行を開始し、図4に示す処理を終了する。
図5は、図3の処理によりメインメモリの使用領域を縮退する一例を示す説明図である。図5では、説明を分かりやすくするために、メインメモリ50のデータバス幅が、上位のデータDQU[7:0]と下位のデータDQL[7:0]との16ビットであるとして説明する。また、メインメモリ50は、8つのメモリMEM(MEM0~MEM7)を含んで構成されるとして説明する。
例えば、各メモリMEMは、所定のアドレス範囲を有し、データバス幅が16ビットのSDRAMチップであり、アドレスの下位側から順にメモリMEM0、MEM1、...、MEM7が割り当てられている。各メモリMEMは、アドレスの上位3ビットにより識別される。アドレスの最上位ビットに"0"が割り当てられた4つのメモリMEM0~MEM3は、チップセレクトCS0により選択される。アドレスの最上位ビットに"1"が割り当てられた4つのメモリMEM4~MEM7は、チップセレクトCS1により選択される。
図5に示す例では、図2に示したメモリテストにより、メモリMEM1のデータDQU[4]のビット化け不良("1"固定不良)が検出されたとする。図5は、図2のステップS106において、各メモリMEMの全てのアドレス領域に、テストデータ"0xAAAA"を書き込み後、ステップS110でテストデータをリードする。そして、メインCPU10は、メモリMEM1の割り当てアドレスの少なくとも1つのデータ端子DQU[4]から期待値"0"(すなわち、テストデータ)と異なる"1"をリードすることで、エラーを検出する。
なお、図5では、説明を分かりやすくするために、各メモリMEMの全てのアドレス領域にテストデータ"0xAAAA"を書き込む例を示すが、テストデータは"0xAAAA"に限定されない。テストデータの論理値が常に固定されてビット化けを誘発しにくくなることを抑止するためには、例えば、テストデータは、メインCPU10が生成する疑似ランダムビット列を用いることが好ましい。
メインCPU10は、エラーが発生したアドレスとデータ端子の番号とを、エラー情報としてサブCPU30に通知する。ここで、メインCPU10は、メモリMEM1のDQU[4]でリードエラーが発生したことをエラー情報としてサブCPU30に通知してもよい。また、メモリMEM1の上位データDQUでリードエラーが発生したことをエラー情報としてサブCPU30に通知してもよい。あるいは、メインCPU10は、チップセレクトCS0に割り当てられるアドレス範囲の上位DQUでリードエラーが発生したことをエラー情報としてサブCPU30に通知してもよい。
サブCPU30は、図3のステップS202において、メインCPU10から受信したエラー情報に基づいて、メインメモリ50においてリードエラーが発生した記憶領域を避けてアクセスするための縮退方法(アクセス仕様)を決定する。図5に示す例では、サブCPU30は、縮退例1と縮退例2のいずれかを実施することを決定する。
縮退例1によるアクセス仕様は、エラーが検出されたメインメモリ50の記憶領域に割り当てられたアドレス領域を避けてメインメモリ50にアクセスするアドレス改変仕様である。縮退例1では、チップセレクトCS0側の記憶領域は使用されず、チップセレクトCS1側の記憶領域のみが使用される(アドレス領域の縮退)。
縮退例2によるアクセス仕様は、エラーが検出されたメインメモリ50の記憶領域にデータDQを入出力するデータ端子DQを避けてメインメモリ50にアクセスするデータ改変仕様である。縮退例2では、データDQUは使用されず、データDQLのみが使用され、データバス幅が半減される。縮退例1および縮退例2とも、アクセスに使用されるメインメモリ50の記憶領域は、縮退前の通常に比べて半減される。
なお、サブCPU30は、メモリMEM0、MEM1が割り当てられたアドレス領域の使用を禁止し、メインメモリ50の記憶領域の4分の3(75%)を使用可能にしてもよい。また、サブCPU30は、メモリMEM1が割り当てられたアドレス領域のみの使用を禁止し、メインメモリ50の記憶領域の8分の7(87.5%)を使用可能にしてもよい。さらに、サブCPU30は、DQU[4]のみを使用禁止にしてもよい。これらの縮退により、メインメモリ50で使用できない記憶領域を最小限にすることができる。
アドレス領域を縮退する場合、サブCPU30は、図3のステップS206において、メインメモリ50のアクセスで使用するアドレス領域を決定し、決定したアドレス領域をメインCPU10に通知する。メインCPU10は、サブCPU30が決定したアドレス領域に従って、再起動時に、ファームウェアで使用するアドレス領域を設定する。
データバス幅を縮退する場合、サブCPU30は、図3のステップS212において、メインメモリ50のアクセスで使用するデータ端子DQを決定し、決定したデータ端子DQをメインCPU10に通知する。メインCPU10は、サブCPU30が決定したデータ端子DQに従って、再起動時に、ファームウェアで使用するデータ端子DQを設定する。
図6は、アドレス領域を縮退する場合のメインメモリ50の使用可能率の一例を示す説明図である。図6に示す例では、メインメモリ50にエラーがない通常状態において、メインCPU10によりメインメモリ50の記憶容量の約40%が利用され、外部デバイス60によりメインメモリ50の記憶容量の約30%が利用されるとする。
例えば、図5のメモリMEM1の故障の発生により、メモリMEM0、MEM1が割り当てられたアドレス領域の使用を禁止する場合(MEM2~MEM7が使用可能)、メインメモリ50の使用可能率は75%になる。この場合、メインメモリ50の空き容量が少なくなるものの、メインCPU10と外部デバイス60は、制限を受けることなく、通常状態と同様にメインメモリ50を使用することができる。
一方、図5のメモリMEM1、MEM2の故障の発生により、メモリMEM0~MEM3が割り当てられたアドレス領域の使用を禁止する場合(MEM4~MEM7が使用可能)、メインメモリ50の使用可能率は50%になる。この場合、例えば、メインCPU10と外部デバイス60とによるメインメモリ50の記憶容量の使用率を、それぞれ25%未満に制限する必要がある。
メインCPU10と外部デバイス60とによるメインメモリ50の使用率を下げるため、メインCPU10および外部デバイス60とで機能を制限する必要がある。例えば、仕様改変部20は、メインメモリ50のエラーの発生により、プログラムを展開するメインメモリ50の記憶領域が不足する場合、使用可能な記憶領域に展開可能で、機能が制限されたプログラムのCPUコア12による実行を決定する。
メインCPU10が実行する機能が制限されたプログラムにより、例えば、コピー、スキャンおよびプリントの速度が低下される。例えば、通常状態で1分間に60枚を処理可能な能力に対して、1分間に30枚の処理に制限される。処理速度の制限は、処理する画像の処理時間を増加させることで行われる。また、外部デバイス60の機能の制限は、メインCPU10から外部デバイス60に投入する処理量を削減することで実施される。
メインCPU10の機能と外部デバイス60の機能とは、例えば、ファームウェアの改変により制限される。ここで、ファームウェアの改変は、例えば、1分間の処理枚数を設定するレジスタの初期値を"60"から"30"に設定し、外部デバイス60に投入する処理の最大量を設定するレジスタの初期値を変更するなどのパラメータの変更により行われてもよい。あるいは、ファームウェアの改変は、1分間の処理枚数が60枚と30枚とに設定された2つのファームウェアのいずれかを選択することで行われてもよい。
また、メインCPU10および外部デバイス60による機能の制限は、処理する画像の解像度を低下させることで行われてもよく、処理するカラー画像をモノクロ画像に置換させることで行われてもよい。このように、コピー、スキャンおよびプリント等の個別の機能をそれぞれ制限することで、ファームウェアで使用するメインメモリ50の記憶領域を削減することができる。この結果、メインメモリ50にエラーが発生した場合にも、フェイルソフトにより画像形成装置100の動作を継続することが可能になり、画像形成装置100のダウンタイムを低減することができる。
なお、メインメモリ50の故障により、画像形成装置100の機能が制限される場合、メインCPU10は、例えば、メインメモリ50の故障により機能を制限しているため修理対応を促すメッセージを表示部90に表示する。この際、メインCPU10は、ネットワークを介してサービス拠点に、メインメモリ50の故障の発生を通知してもよい。
以上、この実施形態では、メインメモリ50にエラーが発生した場合に、アドレスが縮退された状態で使用可能なファームウェアを決定することができる。また、データが縮退された状態で使用可能なファームウェアを決定することができる。これにより、メインCPU10の再起動後に、画像形成装置100の動作を継続することができ、ユーザの利便性を高めることができる。エラーが発生したメインメモリ50を含む回路基板等の修理または交換が完了するまでの間、画像処理装置を継続して使用することができるため、画像処理装置のダウンタイムを低減することができる。
メインメモリ50の一部にエラーが発生し、アクセス仕様が変更されるときに、エラー情報を表示部に表示することで、画像形成装置100の動作中に部品の交換または修理をユーザに促すことができる。さらに、コピー、スキャンおよびプリント等の個別の機能をそれぞれ制限し、あるいは、使用頻度が低いアプリケーションプログラムの機能を制限することで、ファームウェアで使用するメインメモリ50の記憶領域を削減することができる。
この結果、メインメモリ50にエラーが発生した場合にも、フェイルソフトにより画像形成装置100の動作を継続することが可能になり、画像形成装置100のダウンタイムを低減することができる。すなわち、画像形成装置100の信頼性を向上することができる。
ユーザが操作する可能性が低いタイミングでメモリテストを実行することで、コピー操作等がメモリテストにより開始できない可能性を低くすることができ、ユーザは、メモリテストを意識せずに画像形成装置100を使用することができる。
以上、各実施形態に基づき本発明の説明を行ってきたが、上記実施形態に示した要件に本発明が限定されるものではない。これらの点に関しては、本発明の主旨をそこなわない範囲で変更することができ、その応用形態に応じて適切に定めることができる。
10 メインCPU
12 CPUコア
14 メモリコントローラ
16 DMAC
20 仕様改変部
30 サブCPU
32 改変内容決定部
40 不揮発メモリ
50 メインメモリ
60 外部デバイス
70 メインストレージ
80 画像処理機構
90 表示部
100 画像形成装置
CS(CS0、CS1) チップセレクト
DQ(DQU、DQL) データ
MEM(MEM0~MEM7) メモリ
特開2013-218620号公報

Claims (9)

  1. 複数の記憶領域を有するメモリと、
    前記メモリに保持されたプログラムを実行するともに、前記メモリのテストを実行するプロセッサと、
    前記テストで前記メモリのエラーが検出された場合、エラーが検出された記憶領域を避けて前記メモリにアクセスするアクセス仕様を決定し、前記メモリのエラーの発生により、前記プログラムを展開する前記メモリの記憶領域が不足する場合、前記メモリにおける使用可能な記憶領域に展開可能で、機能が制限されたプログラムの前記プロセッサによる実行を決定し、前記プロセッサに再起動を指示する仕様改変部と、を有し、
    再起動された前記プロセッサは、前記仕様改変部により決定されたアクセス仕様に基づいて、エラーが検出された記憶領域を避けて前記メモリに展開された前記プログラムを実行し、前記仕様改変部が前記機能が制限されたプログラムの前記プロセッサによる実行を決定した場合、前記機能が制限されたプログラムを実行すること
    を特徴とする電子機器。
  2. 画像のコピー、スキャンおよびプリントの少なくともいずれかを実行する画像処理機構を有し、
    前記プロセッサは、前記プログラムの実行により前記画像処理機構を制御して画像処理を実行し、
    前記仕様改変部は、前記メモリのエラーが発生した場合、前記画像処理機構の機能を制限したプログラムの前記プロセッサによる実行を決定すること
    を特徴とする請求項1に記載の電子機器。
  3. 前記プロセッサは、機能が制限されたプログラムの実行により、前記画像処理機構に、処理する画像の解像度を低下させ、処理するカラー画像をモノクロ画像に置換させ、または、処理する画像の処理時間を増加させること、
    を特徴とする請求項2に記載の電子機器。
  4. 前記プロセッサは、機能が異なる複数の前記プログラムを実行し、複数の前記プログラムの使用頻度を監視し、
    前記仕様改変部は、前記メモリの記憶領域が不足する場合、使用頻度の低いプログラムの機能を制限すること
    を特徴とする請求項1ないし請求項3のいずれか1項に記載の電子機器。
  5. 前記アクセス仕様は、エラーが検出された記憶領域に割り当てられたアドレス領域を避けて前記メモリにアクセスするアドレス改変仕様であること
    を特徴とする請求項1ないし請求項4のいずれか1項に記載の電子機器。
  6. 前記アクセス仕様は、エラーが検出された記憶領域にデータを入出力するデータ端子を避けて前記メモリにアクセスするデータ改変仕様であること
    を特徴とする請求項1ないし請求項5のいずれか1項に記載の電子機器。
  7. 前記プロセッサまたは前記仕様改変部は、前記メモリのエラーが発生し、前記メモリのアクセス仕様が変更される場合、ユーザが視認可能な表示部に、エラーの発生を示すエラー情報を表示すること
    を特徴とする請求項1ないし請求項6のいずれか1項に記載の電子機器。
  8. 前記プロセッサは、ユーザの操作に基づく動作が実行されていない非動作時間が所定時間に到達した場合に前記メモリのテストを実行すること
    を特徴とする請求項1ないし請求項7のいずれか1項に記載の電子機器。
  9. 複数の記憶領域を有するメモリと、前記メモリに保持されたプログラムを実行するプロセッサと、を有する電子機器の制御方法であって、
    前記メモリのテストを実行し、
    前記テストで前記メモリのエラーが検出された場合、エラーが検出された記憶領域を避けて前記メモリにアクセスするアクセス仕様を決定し、
    前記メモリのエラーの発生により、前記プログラムを展開する前記メモリの記憶領域が不足する場合、前記メモリにおける使用可能な記憶領域に展開可能で、機能が制限されたプログラムの前記プロセッサによる実行を決定し、
    前記プロセッサに再起動を指示し、
    再起動された前記プロセッサは、決定されたアクセス仕様に基づいて、エラーが検出された記憶領域を避けて前記メモリに展開された前記プログラムを実行し、前記機能が制限されたプログラムの前記プロセッサによる実行を決定した場合、前記機能が制限されたプログラムを実行すること
    を特徴とする電子機器の制御方法。
JP2020082212A 2020-05-07 2020-05-07 電子機器および電子機器の制御方法 Active JP7447668B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2020082212A JP7447668B2 (ja) 2020-05-07 2020-05-07 電子機器および電子機器の制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020082212A JP7447668B2 (ja) 2020-05-07 2020-05-07 電子機器および電子機器の制御方法

Publications (2)

Publication Number Publication Date
JP2021177301A JP2021177301A (ja) 2021-11-11
JP7447668B2 true JP7447668B2 (ja) 2024-03-12

Family

ID=78409488

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020082212A Active JP7447668B2 (ja) 2020-05-07 2020-05-07 電子機器および電子機器の制御方法

Country Status (1)

Country Link
JP (1) JP7447668B2 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009015525A (ja) 2007-07-03 2009-01-22 Toshiba Tec Corp データ処理装置及びその制御方法
WO2013080288A1 (ja) 2011-11-28 2013-06-06 富士通株式会社 メモリ縮退方法及び情報処理装置
JP2020030536A (ja) 2018-08-21 2020-02-27 株式会社デンソー 電子制御装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009015525A (ja) 2007-07-03 2009-01-22 Toshiba Tec Corp データ処理装置及びその制御方法
WO2013080288A1 (ja) 2011-11-28 2013-06-06 富士通株式会社 メモリ縮退方法及び情報処理装置
JP2020030536A (ja) 2018-08-21 2020-02-27 株式会社デンソー 電子制御装置

Also Published As

Publication number Publication date
JP2021177301A (ja) 2021-11-11

Similar Documents

Publication Publication Date Title
US6449735B1 (en) Method and apparatus for providing improved diagnostic functions in a computer system
US20200310821A1 (en) Information processing apparatus, control method therefor, and storage medium
JP2000035866A (ja) 電子機器
US11099935B2 (en) Error handling associated with boot program alteration
JP7447668B2 (ja) 電子機器および電子機器の制御方法
JP2007140920A (ja) 画像形成装置
JP2015044307A (ja) 画像形成装置
JP2008158991A (ja) Nand型フラッシュメモリの制御システム
US11095778B2 (en) Storing and outputting log for failure analysis in image forming apparatus equipped with SATA system, control method therefor, and storage medium
JP2010026961A (ja) 制御装置、制御方法、及びプログラム
US11435949B2 (en) Information processing apparatus and method for calculating a data size estimated to be written to a storage based on a write data size
US11209761B2 (en) Image forming apparatus, method for controlling image forming apparatus, and storage medium having controller which executes repair processing on the storage medium
JP2011194639A (ja) 画像形成装置、及び画像形成装置の制御方法
JP7135403B2 (ja) ダンプ処理装置及び画像形成装置
JP2012103999A (ja) メモリエラーによるシステム停止を軽減するためのメモリ制御方法
JP4292977B2 (ja) メモリ試験機能付きコントローラ及びコンピュータ
TWI434174B (zh) 電腦系統及記憶體用途設定程式
US11630586B2 (en) Information processing apparatus and method for controlling the same
US7941705B2 (en) Computer system to use memory having defective memory cell and control method thereof
JP5530823B2 (ja) メモリチェック方法および画像処理装置
JP2020086516A (ja) 情報処理装置、情報処理装置の制御方法、及び、プログラム
JP2012098962A (ja) メモリチェック方法および画像処理装置
JP4800701B2 (ja) コンピュータシステム
JP2021179730A (ja) 情報処理装置、その制御方法、およびプログラム
JP6171505B2 (ja) 情報処理装置およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230227

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20231109

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20231121

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240119

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240130

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240212

R151 Written notification of patent or utility model registration

Ref document number: 7447668

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151