JP2020171002A - 情報処理装置及びその制御方法 - Google Patents

情報処理装置及びその制御方法 Download PDF

Info

Publication number
JP2020171002A
JP2020171002A JP2019073077A JP2019073077A JP2020171002A JP 2020171002 A JP2020171002 A JP 2020171002A JP 2019073077 A JP2019073077 A JP 2019073077A JP 2019073077 A JP2019073077 A JP 2019073077A JP 2020171002 A JP2020171002 A JP 2020171002A
Authority
JP
Japan
Prior art keywords
memory device
program
management information
information processing
abnormality
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.)
Pending
Application number
JP2019073077A
Other languages
English (en)
Inventor
壮三 山崎
Sozo Yamazaki
壮三 山崎
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2019073077A priority Critical patent/JP2020171002A/ja
Priority to US16/837,331 priority patent/US11467898B2/en
Publication of JP2020171002A publication Critical patent/JP2020171002A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0733Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a data processing system embedded in an image processing device, e.g. printer, facsimile, scanner
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2284Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing by power-on test, e.g. power-on self test [POST]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)
  • Retry When Errors Occur (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)
  • Facsimiles In General (AREA)

Abstract

【課題】情報処理装置が正常に起動できない不具合に適切に対処できるようにする。【解決手段】画像形成装置(情報処理装置)のCPUは、画像形成装置の電源がオンになると、メモリデバイス113に格納されているプログラムの実行により画像形成装置を起動する(S510)。CPUは、画像形成装置の起動中に再起動が行われたと判定すると(S506)、画像形成装置の再起動後にメモリデバイス113で管理情報の異常が検出されたか否かに基づいて、画像形成装置の起動が途中で停止する不具合を解消するための処理としてそれぞれ異なる処理を実行する(S519〜S523)。【選択図】図5

Description

本発明は、不揮発性メモリデバイスを備える情報処理装置及びその制御方法に関するものである。
従来から、サービスマンによる装置の復旧処理に関連して、装置がエラーの発生を検出した場合に、エラー通知を行うことでサービスマンの業務負担を軽減する技術が知られている。また、不揮発性メモリデバイスに書き込まれているプログラムを実行することによって起動する装置について、装置が正常に起動できない場合に、装置の再起動又はプログラムの再ダウンロードを行う技術が知られている(例えば、特許文献1)。
特開2012−174061号公報
上述のように装置が起動できなくなる不具合の原因としては、不揮発性メモリデバイスに書き込まれたプログラムが破壊されている場合もあれば、デバイス内部の回路が物理的に破損している場合もある。プログラムが破壊されている場合には、プログラムを再度ダウンロードすることによって、不具合を解消できる。しかし、デバイスが物理的に破損している場合には、プログラムを再度ダウンロードしても不具合を解消できず、デバイスの交換が必要となる。そのため、物理的に破損している不揮発性メモリデバイスに対してプログラムのダウンロードを実施してしまうと、ダウンロードに要する時間が無駄になる。
本発明は、上述の課題に鑑みてなされたものである。本発明は、情報処理装置が正常に起動できない不具合に適切に対処できるようにする技術を提供することを目的とする。
本発明の一態様に係る情報処理装置は、前記情報処理装置を起動するためのプログラムが格納された不揮発性のメモリデバイスであって、前記メモリデバイスの起動時に、前記メモリデバイスに格納されたデータについての論理アドレスと物理アドレスとの対応関係を示す管理情報の異常を検出すると、当該管理情報の修復処理を行う機能を有する、前記メモリデバイスと、前記プログラムに基づく前記情報処理装置の起動が途中で停止すると、前記情報処理装置を再起動する再起動手段と、前記再起動手段による再起動後に前記メモリデバイスで前記管理情報の異常が検出されたか否かに基づいて、前記情報処理装置の起動が途中で停止する不具合を解消するための処理としてそれぞれ異なる処理を実行する処理手段と、を備えることを特徴とする。
本発明の他の一態様に係る情報処理装置は、前記情報処理装置を起動するためのプログラムが格納された不揮発性のメモリデバイスであって、前記メモリデバイスに格納されたデータについての論理アドレスと物理アドレスとの対応関係を示す管理情報の異常を検出すると、当該管理情報の修復処理を行う機能を有する、前記メモリデバイスと、前記プログラムに基づく前記情報処理装置の起動が途中で停止すると前記メモリデバイスが前記機能を実行するようにし、かつ、当該停止に基づく当該機能の実行において前記管理情報の異常が検出されていないと、外部装置からの前記プログラムのダウンロードを促すか、外部装置から前記プログラムをダウンロードする処理手段と、を備えることを特徴とする。
本発明によれば、情報処理装置が正常に起動できない不具合に適切に対処することが可能になる。
画像形成装置のハードウェア構成例を示すブロック図。 メモリデバイスの管理情報の例を示す図。 NANDフラッシュメモリのメモリブロックの構成の例を示す図 管理情報の異常を検出する処理の手順を示すフローチャート。 起動制御の不具合の原因を判定する処理の手順を示すフローチャート。 画像形成装置の起動制御の流れを示すシーケンス図。 画像形成装置の起動制御の流れを示すシーケンス図。 画像形成装置のUIに表示される操作画面の例を示す図。 実施形態の概要を示すフローチャート。
以下、添付図面を参照して実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものでない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一又は同様の構成に同一の参照番号を付し、重複した説明は省略する。
[第1実施形態]
第1実施形態では、情報処理装置の起動制御が途中で停止する不具合の原因を、起動制御の実行中に行われた再起動後に不揮発性メモリデバイスの管理情報の異常が検出されたか否かに基づいて判定する例について説明する。また、情報処理装置において、起動制御が途中で停止する不具合の原因の判定結果に応じた処理を行う例について説明する。
まず、図9を参照して、本実施形態に係る情報処理装置において不揮発性メモリデバイスに格納されているプログラムに基づく起動制御が途中で停止する不具合が生じる場合の、当該不具合の原因を判定するための処理の概要について説明する。図9において、破線のブロックは、情報処理装置に搭載された不揮発性メモリデバイスに内蔵されたコントローラによる処理を示す。実線のブロックは、不揮発性メモリデバイスが搭載された情報処理装置を制御するCPUによる処理を示す。二重線のブロックは、その他のデバイスによる処理を示す。
CPUは、装置の電源投入時に、不揮発性メモリデバイスに格納されたプログラムを実行することで、装置の起動制御を開始する。装置の電源が投入されると(S901)、不揮発性メモリデバイス(コントローラ)は、内部に保持している管理情報の異常の有無を確認し(S902)、異常を検出した場合には管理情報の修復処理を実行する(S903)。この修復処理の結果、管理情報の異常が解消されなければ、不揮発性メモリデバイスの物理的な破損が発生したと判定され、管理情報の異常が解消されれば、不揮発性メモリデバイスに格納されているプログラムの破壊が発生したと判定される。本実施形態では、この判定をCPUにより実行可能にする。
修復処理の実行が完了した時点では、CPUは、装置の起動制御を途中で停止している状態であるため、上述の判定を行うことができない。このため、CPUによる判定を可能にするために、装置の再起動が行われる(S904)。装置が再起動すると、CPU及び不揮発性メモリデバイス(コントローラ)によって以下の処理が行われる。
不揮発性メモリデバイスは、管理情報の異常を検出すると(S905)、CPUによる判定を可能にするために、異常検出フラグを「検出」に設定する。CPUは、不揮発性メモリデバイスから読み出した異常検出フラグが、管理情報の異常の検出を示す場合、当該メモリデバイスの物理的な破損が発生したと判定し、当該メモリデバイスの交換を指示する(S907)。
一方、不揮発性メモリデバイスは、管理情報の異常を検出しなければ(S908)、CPUによる判定を可能にするために、異常検出フラグを「不検出」に設定する。CPUは、不揮発性メモリデバイスから読み出した異常検出フラグが、管理情報の異常の不検出を示す場合、当該メモリデバイスに格納されているプログラムの破壊が発生したと判定し、プログラムのダウンロードを指示する(S910)。
このようにして、本実施形態の情報処理装置は、装置の起動制御が途中で停止した原因を判定し、その判定結果に応じた処理を行う。以下では、図1乃至図8を参照して、本実施形態について詳細に説明する。
<画像形成装置>
図1は、本実施形態に係る画像形成装置100の構成例を示すブロック図である。本実施形態では、画像形成装置100が不揮発性メモリデバイスの制御装置である例について説明する。図1のメモリデバイス113は、画像形成装置100において使用される不揮発性メモリデバイスであり、SATA I/Fを備えるSATA FLASHデバイスを想定している。なお、不揮発性メモリデバイスは、SATA FLASHデバイスデバイスに限らず、例えば、SSD、USB FLASHデバイス、eMMC(embedded Multi Media Card)、UFS(Universal Flash Storage)等のメモリデバイスであってもよい。
画像形成装置100は、メインSoC(システムオンチップ)101、RAM106、ROM107、UI(ユーザインタフェース)108、プリンタ109、スキャナ110、外部I/F(インタフェース)111、メモリデバイス113、タイマ124、及びリセット回路125を備える。
メインSoC101は、集積回路部品であり、CPU102、画像処理部103、及びホストメモリI/F104を含んでいる。また、図1には図示されていないが、メインSoC101は、RAM106、ROM107、UI108等のデバイスに対する制御インタフェース、及びそれらを接続するシステムバスも含んでいる。
CPU102は、画像形成装置100全体を制御するための中央処理装置である。画像処理部103は、スキャナ110から読み込んだ入力画像データに対して、補正、加工、編集等の画像処理を行う。また、画像処理部103は、プリンタ109へ出力する出力画像データに対して、色変換、フィルタ処理、解像度変換等の画像処理を行う。
ホストメモリI/F104は、不図示のDMAC(Direct Memory Access Controller)及びPHYユニット105を含むメモリインタフェースである。PHYユニット105は、SATA通信における物理層の処理を行うユニットであり、論理信号を送受信する。CPU102がホストメモリI/F104を制御することで、SATA I/F112を介して、メモリデバイス113とRAM106との間のデータの入出力を行うことが可能である。SATA I/F112は、SATA規格のインタフェースであり、ホストであるCPU102と、デバイスであるメモリデバイス113のコントローラ116とを通信可能に接続している。
RAM106は、CPU102が動作するためのシステムワークメモリであり、CPU102の演算データや各種プログラムが格納される。RAM106に格納されるプログラムは、ROM107又はメモリデバイス113に予め格納されているものであり、画像形成装置100の電源投入時に、CPU102によってRAM106に展開される。また、RAM106は、スキャン又はプリントの実行時に画像処理部103によって画像処理が施された画像データを保持する画像メモリとしても利用される。ROM107は、ブートROMであり、画像形成装置100のブートプログラムが格納されている。
UI108は、ユーザが情報を認識及び入力できるように、液晶ディスプレイ、タッチパネル及びハードキー等で構成される。プリンタ109は、画像データに基づいてシートに画像を印刷するプリンタエンジンである。スキャナ110は、シート原稿の画像をCCD又はCISセンサ等の読取センサで読み取って(スキャンして)画像データを生成する。外部I/F111は、電話回線網、有線LAN、又は無線LAN等の通信ネットワークに対するインタフェース、及びUSBデバイス等の外部デバイスに対するインタフェースである。CPU102は、外部I/F111を介して外部装置との間でデータ通信を行う。
リセット回路125は、CPU102に対してリセット信号を出力する回路である。CPU102は、画像形成装置100の電源投入時に、メインSoC101への電力供給が開始された後、リセット回路125から出力されるリセット信号がローレベルの間、リセット状態を継続する。CPU102のリセット状態の解除は、リセット回路125への電力供給が開始されてから所定の時間(例えば100ms)の経過後に、リセット回路125から出力されるリセット信号がローレベルからハイレベルに切り替わることによって実行される。また、リセット回路125からのローレベルのリセット信号の出力は、リセット回路125への電力供給が停止されて供給電圧が所定レベルを下回った場合(例えば、供給電圧が3.3Vから2.9Vに低下した場合)に行われる。あるいは、リセット回路125からのローレベルのリセット信号の出力は、タイマ124から出力されるリセット駆動信号の受信に応じて行われる。
タイマ124は、メモリデバイス113に格納されたプログラムを用いてCPU102によって実行される画像形成装置100の起動制御が停止したことを検出した場合に、リブート制御を行う機能を有する。本実施形態では、タイマ124は、起動制御の停止を検出すると、リセット回路125にリセット駆動信号を出力することによって、リブート制御を行う。
具体的には、CPU102は、メモリデバイス113に格納されているプログラムを用いて画像形成装置100の起動制御を開始する前に、タイマ124へ供給するイネーブル信号をオンにすることで、タイマ124によるタイマカウントが開始される。その後、所定時間の経過前(タイマ124によるカウント満了の前)に、プログラムの起動制御が終了した場合、CPU102は、タイマ124へ供給するイネーブル信号をオフにすることで、タイマ124によるタイマカウントを停止できる。
ここで、メモリデバイス113から読み出されたプログラムの不具合に起因して、CPU102による起動制御が停止すると、CPU102は、所定時間の経過前にタイマ124によるタイマカウントを停止できなくなる。その結果、タイマ124は、カウント満了に至る。タイマ124は、カウント満了に至ると、リセット駆動信号をリセット回路125へ出力する。これにより、リブート制御が開始される。リブート制御では、ROM107に格納されているブートプログラムがCPU102によって再び実行される。これにより、画像形成装置100の電源投入時に実行される起動制御と同じ起動制御が開始される。なお、メモリデバイス113から読み出されたプログラムの不具合は、メモリデバイス113に予め格納されていたプログラム自体の破壊に起因する場合と、メモリデバイス113の物理的な破損に起因する場合とがある。
タイマ124は、CPU102が起動制御を途中で停止した場合に、リブート制御を行う機能を有していればよい。例えば、タイマ124は、ウォッチドックタイマのように、所定の期間ごとにCPU102からタイマカウントのクリアが行われるタイマであってもよく、CPU102からのタイマカウントのクリアが行われない時点でリセット回路125にリセット駆動信号を出力してリセット回路125を駆動してもよい。
CPU102は、タイマ124へ供給するイネーブル信号をオンにする前に、メモリデバイス113に格納されるユーザデータ123に含まれる起動制御中フラグを、起動制御の実行中であることを示す値(本例では「1」)に設定する。また、CPU102は、タイマ124へ供給するイネーブル信号をオフにした後に、起動制御中フラグをクリアする。具体的には、CPU102は、起動制御中フラグを、起動制御の実行中ではないことを示す値(本例では「0」)に設定する。
CPU102は、ブートプログラムの実行時に、メモリデバイス113に格納されているユーザデータ123から起動制御中フラグを読み出すことができる。その際、CPU102は、読み出した起動制御中フラグが「0」に設定されている場合には、前回の起動制御が正常に終了したと判定する。また、CPU102は、読み出した起動制御中フラグが「1」に設定されている場合には、前回の起動制御が正常に終了せずに(即ち、途中で停止し)、タイマ124によるリブート制御が行われたと判定する。
<メモリデバイス(SATA FLASHデバイス)>
図1に示されるように、メモリデバイス113は、デバイスメモリI/F114、コントローラ116、ROM117、RAM118、及びNANDフラッシュメモリ120を備える。
デバイスメモリI/F114は、コントローラ116による制御下で、メインSoC101とコントローラ116との間のデータの入出力を行うインタフェースである。デバイスメモリI/F114に内蔵されるPHYユニット115は、PHYユニット105と同様のSATA通信における物理層の処理を行うユニットである。コントローラ116は、デバイスメモリI/F114を介してメインSoC101のCPU102から受信したコマンドを解釈し、解釈したコマンドに従った動作を行うメモリ制御モジュールである。
ROM117は、デバイスメーカーによって設定される、メモリデバイス113のファームウェアを格納した不揮発性の記憶領域である。RAM118は、コントローラ116によってNANDフラッシュメモリ120に対するデータの書き込み又は読み出しが行われる際に一時的にデータが格納されるキャッシュメモリである。また、RAM118は、最新の管理情報119を格納する役割を有する。
NANDフラッシュメモリ120は、コントローラ116によって制御される。NANDフラッシュメモリ120には、SMART(Self-Monitoring, Analysis and Reporting Technology)情報121、管理情報122、及びユーザデータ123が格納される。ユーザデータ123には、CPU102が画像形成装置100を起動するためのプログラム、及び設定データ等のデータが含まれる。
SMART情報121は、コントローラ116によるメモリデバイス113の故障状態の判定に用いられるデータである。SMART情報121には、NANDフラッシュメモリ120の不良ブロック数や消去カウント数等の、故障状態の判定に使用可能な項目のデータが記録される。後述する異常検出フラグもSMART情報121に記録される。CPU102は、SMART情報121に記録された各項目のデータを、NANDフラッシュメモリ120から読み出すことができる。
管理情報122は、NANDフラッシュメモリ120上の物理アドレスと、CPU102が指定する論理アドレスとを対応付けるアドレス変換テーブルを含む。図2は、管理情報122に含まれるアドレス変換テーブルの例を示している。アドレス変換テーブルは、例えば、NANDフラッシュメモリ120のメモリブロック単位で構成されている。管理情報122は、メモリデバイス113への電源投入時に、NANDフラッシュメモリ120からRAM118に展開される。コントローラ116は、RAM118に展開された管理情報122に基づいて、CPU102が指定する論理アドレスを、対応する物理アドレスに変換する。更に、コントローラ116は、当該物理アドレスを用いて、NANDフラッシュメモリ120に対するデータの書き込み及び読み出しを行う。
NANDフラッシュメモリ120は、構造上、データの更新時に、既にデータが書き込まれて有効となっている物理アドレスの領域に対してデータの上書きが行えない。そのため、データの更新時には、書き込みが行われていない新たな物理アドレスの領域又は消去済みの物理アドレスの領域に対し、データの書き込みが行われる。更に、図2に示されるように、RAM118に保持されている管理情報119の論理アドレスに対応付けられた物理アドレスが、データの書き込みが行われた領域に対する物理アドレスに変更される。したがって、図2に示されるように、ある論理アドレスに対応するデータが存在する物理アドレスは、固定ではなく、データの更新のたびにNANDフラッシュメモリ120のアドレス空間内で変更されることになる。
図2では、論理アドレス1及び3のデータが更新され、それぞれのデータに対応する物理アドレスが変更となったことを示している。このように、NANDフラッシュメモリ120へのデータの書き込みに伴い、RAM118に保持されている管理情報119が更新される。
上述のように、RAM118には最新の管理情報119が保持される。一方、NANDフラッシュメモリ120に格納されている管理情報122は、必ずしも最新の管理情報(即ち、RAM118に格納されている管理情報119)に更新されているとは限らない。即ち、NANDフラッシュメモリ120に、最新ではない管理情報が格納されている状況が生じる。この場合、RAM118に保持されている管理情報119と、NANDフラッシュメモリ120に格納されている管理情報122とに不一致が生じている。
図3は、NANDフラッシュメモリ120のメモリブロックの構成例を示す図である。各メモリブロックは、複数のページに分割される。図3には、各ページの物理アドレスと、各ページに格納されるデータとが示されている。1ページは528バイトで構成され、そのうち512バイトがデータ部として使用され、残りの16倍とが冗長部として使用される。各ページのデータ部にはユーザデータが書き込まれる。冗長部にはエラー訂正符号や管理情報等が書き込まれる。冗長部に書き込まれる管理情報には、ユーザデータが書き込まれている領域の物理アドレスに対応した論理アドレスが含まれる。
図3では、図2に示されるように論理アドレス1及び3についてデータの更新が行われた場合の、NANDフラッシュメモリ120のメモリブロックの状態の変化が示されている。データの更新により、更新後のデータ6及びデータ7が、物理アドレス5及び6の領域(ページ)に書き込まれ、当該領域の冗長部に論理アドレス1及び3が書き込まれている。
<管理情報の異常の発生例>
次に、画像形成装置100の異常な電源断に起因して、上述の管理情報119,122の異常が生じる例について説明する。なお、本実施形態では、上述の管理情報119,122は、メモリデバイス113に格納されたデータについての論理アドレスと物理アドレスとの対応関係を示す管理情報の一例である。
まず、画像形成装置100において正常な電源断が行われる場合のメモリデバイス113の動作について説明する。正常な電源断が行われる際には、コントローラ116は、RAM118の管理情報119をNANDフラッシュメモリ120に書き込むことで、NANDフラッシュメモリ120に格納されている管理情報122を最新の管理情報に更新する。この場合、管理情報119と管理情報122との間に不一致は生じない。次回のメモリデバイス113への電源投入時には、コントローラ116は、NANDフラッシュメモリ120に格納されている最新の管理情報を、RAM118に展開できる。
次に、画像形成装置100の電源の瞬断又は停電等に起因して、上述の正常な電源断が行われず、異常な電源断が発生した場合のメモリデバイス113の動作について説明する。異常な電源断が発生した場合には、RAM118の管理情報119がNANDフラッシュメモリ120に書き込まれないまま、メモリデバイス113への電力供給が停止する。このような異常な電源断の発生前に、NANDフラッシュメモリ120へのデータの書き込みが行われることで管理情報119と管理情報122との間に不一致が生じていた場合、管理情報122が最新の管理情報に更新されずに電力供給が停止されることになる。その結果、NANDフラッシュメモリ120に格納されている管理情報122は、異常が生じた状態となる。具体的には、管理情報122に含まれるアドレス変換テーブル(即ち、NANDフラッシュメモリ120に格納されているデータについての物理アドレスと論理アドレスとの対応関係)に異常が生じる。
メモリデバイス113への次回の電源投入時には、NANDフラッシュメモリ120から、データ更新前の管理情報122(即ち、アドレス変換テーブルに異常がある管理情報)が、管理情報119としてRAM118に展開される。この状態では、コントローラ116は、CPU102によって指定された論理アドレスを、管理情報119に基づいて正しい物理アドレスに変換することができない。このため、CPU102は、電源断の前にNANDフラッシュメモリ120に書き込んだデータを読み出すことができない。
上述のような状況が生じるのを避けるために、コントローラ116は、電源投入時にRAM118に展開した管理情報119と、NANDフラッシュメモリ120に書き込まれたデータとを比較し、管理情報119に異常があるか否かを判定する。コントローラ116は、管理情報119の内容が、NANDフラッシュメモリ120のデータと対応しているか否かを判定し、対応していない場合には管理情報119に異常があると判定する。
例えば、コントローラ116は、管理情報119に含まれるアドレス変換テーブル内の各論理アドレスと、各論理アドレスに対応付けられた物理アドレスの領域(ページ)の冗長部に書き込まれている論理アドレスとが一致するか否かを判定する。一致しない論理アドレスが存在する場合(即ち、アドレス変換テーブルにおける論理アドレスと物理アドレスとの対応関係に異常がある場合)、CPU102は、管理情報119に異常があると判定する。状術のような異常な電源断が発生した場合、アドレス変換テーブルにおける論理アドレスと物理アドレスとの対応関係に異常が生じることがある。
コントローラ116は、RAM118に保持している管理情報119の異常を検出すると、当該管理情報の修復を試みる。管理情報119の修復処理は、例えば、アドレス変換テーブルにおいて異常がある論理アドレスに対して、正しい物理アドレスを割り当てる処理ある。ただし、管理情報の異常を解消可能な処理であれば、他の修復処理が使用されてもよい。
本実施形態では、コントローラ116は、管理情報119の修復処理を実行した場合には、メモリデバイス113のSMART情報121に含まれる、管理情報の異常の有無を示す異常検出フラグを、異常ありを示す値(本例では「1」)に設定する。本実施形態では、異常検出フラグは、管理情報119の異常を検出したか否かを示す検出情報の一例である。メモリデバイス113は、当該メモリデバイスの起動時に、管理情報119の異常を検出したか否かを示す検出情報として、異常検出フラグを保存する。異常検出フラグは、メモリデバイスの内部に格納されているSMART情報121に記録される。CPU102は、メモリデバイス113に保存されている(SMART情報121に記録されている)異常検出フラグを参照することで、画像形成装置100の再起動後に管理情報119の異常が検出されたか否かを判定する。
<管理情報の異常検出処理>
図4は、本実施形態に係る、コントローラ116によって実行される、管理情報の異常を検出する処理の手順を示すフローチャートである。なお、図4の各ステップの処理は、ROM117に格納された(又はROM117からRAM118に展開された)プログラムをコントローラ116が実行することによって実現される。
まずS401においてメモリデバイス113の電源がオンになると、コントローラ116は、S402で、NANDフラッシュメモリ120の管理情報122を、管理情報119としてRAM118に展開する。次にS403で、コントローラ116は、RAM118に読み出した管理情報119と、NANDフラッシュメモリ120に格納されているデータとを比較して、管理情報119に異常があるか否かを判定する。コントローラ116は、管理情報に異常がある(即ち、異常を検出した)場合にはS404へ処理を進め、異常がない場合にはS406へ処理を進める。
S404で、コントローラ116は、SMART情報121に含まれる、管理情報の異常の有無を示す異常検出フラグを、異常あり(異常を検出)を示す値(本例では「1」)に設定する。更にS405で、コントローラ116は、RAM118の管理情報119の修復処理を行うことで、管理情報119の修復を試みる。一方、S406で、コントローラ116は、SMART情報121に含まれる、管理情報の異常の有無を示す異常検出フラグに、異常なし(異常を不検出)を示す値(本例では「0」)を設定する。
S405又はS406の処理の後、コントローラ116は、S407で、CPU102からのアクセスを受けて、SATA I/F112の通信を開始し、処理を終了する。なお、コントローラ116は、S401〜S406の処理が完了するまでは、CPU102からのアクセスを受けてもSATA I/F112の通信を開始しないものとする。
このようにして、メモリデバイス113への電力供給の開始時(即ち、メモリデバイス113の起動時)に、メモリデバイス113においてコントローラ116によって管理情報の異常の検出及び修復処理が行われる。なお、上述の管理情報の異常の検出及び修復処理は一例にすぎず、管理情報の異常を検出し、管理情報の修復が可能であれば任意の方法を適用できる。
<起動制御の停止時の処理>
次に、画像形成装置100においてメモリデバイス113に格納されているプログラム(起動プログラム)を用いてCPU102によって実行される起動制御が途中する例について説明する。まず、メモリデバイス113が物理的に破損した場合について説明する。例えば、メモリデバイス113を構成するNANDフラッシュメモリ120又はRAM118等に物理的な破損が発生した場合、NANDフラッシュメモリ120から読み出されたデータ、又はRAM118に格納されたデータに異常が生じることがある。
例えば、破損が生じた箇所が、NANDフラッシュメモリ120又はRAM118に格納された管理情報に係わる箇所であった場合、メモリデバイス113の電源投入時にコントローラ116によって管理情報119の異常が検出される。コントローラ116は、管理情報119の異常の検出に応じて、SMART情報121の異常検出フラグを「1」に設定し、RAM118に保持している管理情報119の修復処理を開始する。
しかし、メモリデバイス113が物理的に破損した場合、コントローラ116は、管理情報119を修復することはできない。この場合、コントローラ116は、CPU102からのアクセスを受けても、NANDフラッシュメモリ120から所望のデータを読み出すことができない。その結果、CPU102による画像形成装置100の起動制御が停止する。このように、管理情報の異常の検出に応じて上述の修復処理が実行されたにもかかわらず、管理情報が修復されなかった場合には、メモリデバイス113に物理的な破損が生じたと判定できる。
次に、CPU102が、メモリデバイス113が物理的に破損しているか否かを判定する手順について説明する。
上述のようにメモリデバイス113が物理的に破損している場合、画像形成装置100の電源投入時に、メモリデバイス113に保存されているプログラムに基づく起動制御が停止する。この場合に、メモリデバイス113の内部においては、コントローラ116が、管理情報119の異常の検出に応じて、SMART情報121の異常検出フラグを「1」に設定し、管理情報119の修復処理を開始するが、管理情報を修復することはできない。
一方、上述のように、CPU102は、画像形成装置100の起動制御を開始する前に、タイマ124にタイマカウントを開始させる。しかし、CPU102は、起動制御を途中で停止した場合には、タイマ124によるタイマカウントを停止できない。その結果、タイマ124がカウント満了に至り、リブート制御が実行される。リブートが行われた後、CPU102は、画像形成装置100の起動制御において、メモリデバイス113に格納されているユーザデータ123に含まれる起動制御中フラグを読み出す。
CPU102は、読み出した起動制御中フラグが、起動制御の実行中であることを示す値(本例では「1」)に設定されている場合、通常の起動制御を続けずに、メモリデバイス113に格納されているSMART情報121から異常検出フラグを読み出す。ここで、メモリデバイス113に物理的な破損が生じていなければ、リブートが行われる前にコントローラ116によって実行された修復処理により、管理情報が修復されている。しかし、メモリデバイス113に物理的な破損が生じていると、管理情報を修復できず、異常検出フラグは管理情報に異常があることを示す値に設定される。このため、CPU102は、管理情報に異常があることを示す値に設定された異常検出フラグを読み出す結果となる。
このように、CPU102は、起動制御中フラグに基づいて、電源投入時の起動制御の実行中にリブートが行われたことを判定し、異常検出フラグに基づいて、管理情報119に異常があることを判定する。CPU102は、これらの判定結果に基づいて、メモリデバイス113に物理的な破損が生じていることを特定できる。
メモリデバイス113が物理的に破損した場合、メモリデバイス113を交換することでしか、メモリデバイス113の破損に起因して画像形成装置100が起動できなくなる不具合を解消することはできない。本実施形態の画像形成装置100は、メモリデバイス113を交換可能な構成を有している。例えば、メモリデバイス113は、交換可能な基板で構成されており、不図示のコネクタを介して、メインSoC101が実装されている基板と接続されていてもよい。
上述のように、メモリデバイス113に物理的に破損した場合、CPU102による画像形成装置100の起動制御が途中で停止する。このような起動制御の停止は、メモリデバイス113が物理的に破損した場合だけでなく、メモリデバイス113に格納されているユーザデータ123に含まれるプログラム(起動プログラム)の破壊に起因して生じる場合もある。
上述のようなプログラムの破壊は、例えば、画像形成装置100のソフトウェアのバージョンアップを目的として外部デバイス(外部装置)からプログラムのダウンロードを行っている途中で、画像形成装置100の異常な電源断が発生した場合に生じる。このような異常な電源断に起因してプログラムのダウンロードが途中で中断すると、メモリデバイス113に書き込まれたプログラムが不完全であるために、CPU102が正常に起動制御を行えなくなる。
このように、メモリデバイス113において、プログラムの破壊が生じても、物理的な破損が生じても、メモリデバイス113に格納されているプログラムに基づく起動制御が停止する現象が生じる。以下では、プログラムの破壊とメモリデバイス113の物理的な破損との違いについて更に説明する。
メモリデバイス113が物理的に破損した場合には、メモリデバイス113の電源投入時に管理情報の異常が検出されるが、この管理情報の異常は上述の修復処理によって修復することはできない。一方、プログラムの破壊が生じた場合には、メモリデバイス113の電源投入時に管理情報の異常が検出されても、この管理情報の異常は修復処理によって修復可能である。これは、管理情報の異常が、プログラムのダウンロードに伴う、NANDフラッシュメモリ120内のデータの更新中に、画像形成装置100の異常な電源断が発生したことに起因するためである。この場合には、上述のように所定の修復処理により管理情報を修復可能である。
ただし、管理情報の修復が完了すると、それ以降の電源投入時に管理情報の異常が検出されることはなくなるものの、メモリデバイス113に格納されているプログラムの破壊は解消されていない。このため、CPU102は、そのようなプログラムを用いて画像形成装置100を正常に起動させることができず、起動制御が途中で停止することになる。
そこで、本実施形態では、CPU102は、上述の起動制御中フラグに基づいて、電源投入時の起動制御の実行中にリブートが行われたことを判定した場合に、異常検出フラグに基づいて、管理情報119の異常が検出されたか否かを判定する。CPU102は、管理情報119の異常が検出されなかった(即ち、修復処理により管理情報119の異常が解消された)場合には、起動制御を正常に行えない原因として、メモリデバイス113に格納されているプログラムが破壊されていることを特定する。
上述のように、メモリデバイス113に格納されているプログラムの破壊が生じた場合には、外部デバイスから画像形成装置100にプログラムを再度ダウンロードすることによって、破壊されているプログラムの修復が可能である。この場合、メモリデバイス113を交換する必要がない。
<起動制御の不具合の判定処理>
図5は、本実施形態に係る、CPU102によって実行される、起動制御の不具合の原因を判定する処理の手順を示すフローチャートである。なお、図5の各ステップの処理は、ROM107若しくはメモリデバイス113に格納された(又は、ROM107若しくはメモリデバイス113からRAM106に展開された)プログラムをCPU102が実行することによって実現される。
なお、本実施形態では、前述したメモリデバイス113に関連する不具合の判定以外に、ROM107のブートプログラム、又はメモリデバイス113のプログラムに基づくエラーの判定も行われる。本実施形態では、このようなエラーについてはそれぞれ個別のエラー通知が行われる。ROM107のブートプログラムに基づいて判定可能なエラーは、例えば、メモリデバイス113又はUI108のエラー(即ち、ブートプログラムにより制御を開始したがデバイスと通信できないエラー)である。メモリデバイス113のプログラムにより判定可能なエラーは、例えば、プリンタ109、スキャナ110、又は外部I/F111等のデバイスのエラー(即ち、当該プログラムにより制御を開始したがデバイスと通信できないエラー)である。上記の各プログラムに基づくエラーの判定を行うことができずに起動制御が停止した場合、CPU102は、メモリデバイス113に関連する不具合が発生したと判定する。
まずS501において画像形成装置100の電源がオンになると、リセット回路125から出力されるセット信号が、所定時間の経過後にローレベルからハイレベルに切り替わり、CPU102のリセット状態が解除される。
リセット状態の解除に応じて、S502で、CPU102は、ROM107に格納されているブートプログラムの実行(BIOSブート)を開始する。次にS503で、CPU102は、メモリデバイス113とのSATA I/F112の通信を開始する。S504で、CPU102は、メモリデバイス113との通信が可能であるか否かを判定し、メモリデバイス113との通信ができない場合には(S504で「NO」)、処理をS515へ進める。S515で、CPU102は、メモリデバイス113との通信エラーが発生した判定し、エラー通知を行い、処理を終了する。なお、エラー通知は、例えば、UI108による表示又はLEDの点灯等の方法により行われる。
一方、CPU102は、メモリデバイス113との通信ができる場合には(S504で「YES」)、S505へ処理を進め、メモリデバイス113から起動制御中フラグを読み出す。CPU102は、起動制御中フラグが「1」に設定されているか否かを判定し、起動制御中フラグが「0」に設定されている場合には(S506で「NO」)、S507へ処理を進める。一方、CPU102は、起動制御中フラグが「1」に設定されている場合には(S506で「YES」)、S518へ処理を進める。
S507で、CPU102は、メモリデバイス113に格納されている起動制御中フラグを、起動制御の実行中であることを示す「1」に設定する。次にS508で、タイマ124へ供給するイネーブル信号をオンに設定することで、タイマ124にタイマカウントを開始させる。なお、タイマ124によるタイマカウントは、リセット回路125によりCPU102がリセット状態にされる際にクリアされている。
その後、CPU102は、S509で、メモリデバイス113に格納されているプログラム(起動プログラム)をRAM106に展開し、S510で、当該プログラムの実行を開始することで、画像形成装置100の起動制御を開始する。この起動制御において、CPU102は、プリンタ109、スキャナ110、及び外部I/F111等の初期化処理を行う。
CPU102は、起動制御の実行中に何らかのエラー(通信エラー等)を検出した場合(S511で「YES」)、S516へ処理を進める。S516で、CPU102は、タイマ124へ供給するイネーブル信号をオフに設定することで、タイマ124によるタイマカウントを停止させる。更にS517で、CPU102は、検出したエラーの内容を、UI108を用いて通知した後、処理を終了する。
一方、CPU102は、起動制御の実行中にエラーを検出しなかった場合(S511で「NO」)、S512へ処理を進める。CPU102は、メモリデバイス113から読み出したプログラムに基づく起動制御が完了すると(S512で「YES」)、S513へ処理を進める。S513で、CPU102は、タイマ124へ供給するイネーブル信号をオフに設定することで、タイマ124によるタイマカウントを停止させる。更にS514で、CPU102は、メモリデバイス113に格納されている起動制御中フラグを、起動制御の実行中ではないことを示す「0」に設定し、処理を終了する(画像形成装置100の起動を完了する)。
また、S506からS518へ処理を進めた場合(起動制御中フラグが「1」に設定されている場合)、S518で、CPU102は、メモリデバイス113に格納されているSMART情報121から異常検出フラグを読み出す。S519で、CPU102は、読み出した異常検出フラグが「1」に設定されているか否かを判定する。CPU102は、異常検出フラグが「1」に設定されている場合には(S519で「YES」)、S520へ処理を進め、異常検出フラグが「0」に設定されている場合には(S519で「NO」)、S522へ処理を進める。
S520で、CPU102は、メモリデバイス113の物理的な破損が発生したと判定する。更にS521で、CPU102は、UI108を用いて、メモリデバイス113の交換の促す通知を行い、処理を終了する。一方、S522で、CPU102は、メモリデバイス113に格納されているプログラムの破壊が発生したと判定する。更にS523で、CPU102は、UI108を用いて、プログラムのダウンロードを促す通知を行い、処理を終了する。このようにして、CPU102は、画像形成装置100の再起動後にメモリデバイス113で管理情報119の異常が検出されたか否かに基づいて、画像形成装置100の起動が途中で停止する不具合を解消するための処理としてそれぞれ異なる処理を実行する。
本実施形態では、CPU102は、プログラムのダウンロードを促す通知を行った場合、ユーザの指示に従って外部デバイスからプログラムのダウンロードを行う。更に、CPU102は、ダウンロードしたプログラムをメモリデバイス113(NANDフラッシュメモリ120)に格納する。
このように、上述の手順によれば、CPU102は、起動制御中フラグに基づいて、画像形成装置100の電源投入時の起動制御の実行中にリブートが行われたことを判定する。また、CPU102は、異常検出フラグに基づいて、起動制御の不具合の原因を判定する。
なお、S523の通知に従ってプログラムのダウンロードが完了すると、起動制御中フラグは「0」に設定される(クリアされる)ものとする。また、S521の通知に従った交換後のメモリデバイス113には、後述するダウンロード専用プログラム以外のプログラムは予め格納されていないか、プログラムが格納されていても、起動制御中フラグの格納先の領域はクリアされているものとする。また、本実施形態では、起動制御中フラグはメモリデバイス113に格納されているが、ROM107又はHDD(図示せず)等の、他の不揮発性メモリデバイスに格納されてもよい。
<起動制御の流れ(正常時)>
図6は、本実施形態に係る、画像形成装置100の起動制御の流れを示すシーケンス図であり、起動制御が正常に終了する場合の、CPU102、タイマ124及びリセット回路125による処理を示している。なお、CPU102による処理については、図5に示される処理のうち、タイマ124及びリセット回路125と関連する処理のみを示している。
画像形成装置100の電源がオンになると(S601)、リセット回路125からローレベルのリセット信号が出力される(S602)。これにより、タイマ124及びCPU102はリセット状態となる(S603)。その後、所定時間が経過すると、リセット回路125から出力されるリセット信号がローレベルからハイレベルに切り替わる(S604)。これにより、タイマ124及びCPU102のリセット状態が解除される(S605)。
リセット状態が解除されると、CPU102は、ROM107に格納されているブートプログラムの実行を開始する(S606)。更に、CPU102は、メモリデバイス113から起動制御中フラグを読み出して、起動制御の実行中ではないこと(起動制御中フラグ=0)を確認した後(S607)、メモリデバイス113に格納されている起動制御中フラグを「1」に設定する(S608)。
その後、CPU102は、タイマ124へ供給するイネーブル信号をオンに設定する(S609)。これにより、タイマ124がタイマカウントを開始する(S610)。更に、CPU102は、メモリデバイス113からRAM106に展開したプログラム(起動プログラム)に基づいて、画像形成装置100の起動制御を開始する(S611)。プログラムの起動制御が正常に終了すると(S612)、CPU102は、タイマ124へ供給するイネーブル信号をオフに設定する(S613)。これにより、タイマ124はタイマカウントを停止する(S614)。最終的に、CPU102は、メモリデバイス113に格納されている起動制御中フラグを「0」に設定(クリア)することで(S615)、画像形成装置100の起動を完了する(S616)。
<起動制御の流れ(異常時)>
図7は、本実施形態に係る、画像形成装置100の起動制御の流れを示すシーケンス図であり、起動制御が途中で停止する場合の、CPU102、タイマ124及びリセット回路125による処理を示している。なお、CPU102による処理については、図5に示される処理のうち、タイマ124及びリセット回路125と関連する処理のみを示している。
S701〜S711の処理は、図6のS601〜S611の処理と同様であるため、それらの説明を省略する。本例では、CPU102は、メモリデバイス113からRAM106に展開したプログラム(起動プログラム)に基づいて、画像形成装置100の起動制御を開始した後(S711)、メモリデバイス113に関連する原因により起動制御を途中で停止する。この場合、タイマ124によるタイマカウントはCPU102によって停止されない。このため、タイマ124は、所定のカウント値に至るまでタイマカウントを続けることでカウント満了に至ると(S713)、マニュアルリセット信号をリセット回路125へ出力する(S714)。
リセット回路125は、マニュアルリセット信号を受信すると、ローレベルのリセット信号を出力する(S715)。これにより、S715〜S719においてS702〜S706と同様の処理が行われることで、画像形成装置100のリブートが行われる。CPU102は、ROM107に格納されているブートプログラムの実行を開始し(S719)、メモリデバイス113から起動制御中フラグを読み出す。このとき、起動制御中フラグは、起動制御の実行中を示す「1」に設定されている。CPU102は、起動制御中フラグが「1」に設定されていることを確認した場合、画像形成装置100の電源投入時の起動制御の実行中にリブートが行われたと判定し、S518〜S523の処理を実行する。これにより、CPU102は、画像形成装置100の起動制御の不具合(メモリデバイス113に関連する不具合)の原因を判定する。
このように、本実施形態の画像形成装置100では、CPU102による起動制御が停止した際に、タイマ124及びリセット回路125を利用したリブートが行われる。CPU102は、このようにして画像形成装置100の電源投入時の起動制御の実行中にリブートが行われたことを、起動制御中フラグに基づいて判定する。更に、CPU102は、起動制御の実行中にリブートが行われたと判定すると、異常検出フラグに基づいて、起動制御の不具合の原因を判定する。
<ダウンロードモード>
本実施形態では、CPU102は、プログラムの破壊が生じたと判定した場合、上述の図5のS523にように、プログラムのダウンロードをサービスマン又はユーザに対して促してもよい。例えば、CPU102は、図8に示されるような操作画面をUI108に表示して、ダウンロードモードへの移行のための指示を行うように促す。ダウンロードモードとは、メモリデバイス113に格納されているユーザデータ123に、画像形成装置100の起動プログラムとは別に予め含まれている、ダウンロード専用プログラムを実行する動作モードである。なお、このような操作画面の表示に限らず、LEDの点灯等の、他の通知方法が用いられてもよい。
ダウンロードモードへの移行指示は、例えば、サービスマン又はユーザによる特定の操作により行われてもよい。例えば、サービスマン又はユーザが、UI108のタッチパネル上の所定の箇所をタッチしながら又は所定のハードキーを押しながら、画像形成装置100の電源スイッチを操作することで、ダウンロードモードへの移行指示が行われてもよい。この場合、画像形成装置100の電源は、一度オフにされる必要がある。このようなダウンロードモードへの移行指示のための操作方法については、サービスマン又はユーザが予め把握していてもよいし、図8に示されるような操作画面にそのような操作方法が表示されてもよい。
CPU102は、画像形成装置100への電源投入時に、ROM107に格納されているブートプログラムの実行により、上述のようなダウンロードモードへの移行指示を検出する。移行指示を検出すると、CPU102は、メモリデバイス113からダウンロード専用プログラムをRAM118に展開して実行する。ダウンロード専用プログラムは、プログラムのダウンロードによって更新されるプログラムではなく、メモリデバイス113に予め書き込まれるプログラムである。これは、上述のようにソフトウェアのバージョンアップの実行中に画像形成装置100の異常な電源断が発生しても、ダウンロード専用プログラムがその影響を受けないようにするためである。これにより、異常な電源断が発生しても、ダウンロード専用プログラムが破壊されることはなく、上述の特定の操作によりCPU102に実行させることが可能になる。
CPU102は、ダウンロード専用プログラムを実行(起動)すると、外部I/F111を介してプログラムのダウンロードを行う。プログラムのダウンロード元となる外部デバイスは、例えば、外部I/F111にUSB接続により接続されたUSBメモリ、HDD又はSSD等の不揮発記憶装置、及び有線LAN又は無線LANを介して通信可能なサーバ装置のいずれであってもよい。また、CPU102は、ダウンロード専用プログラムの実行により、ダウンロード元の外部デバイスをサービスマン又はユーザが選択可能な操作画面をUI108に表示し、サービスマン又はユーザからの選択を受け付けてもよい。
以上説明したように、本実施形態の画像形成装置100は、画像形成装置100を起動するためのプログラムが格納された不揮発性のメモリデバイス113を備える。メモリデバイス113は、当該メモリデバイスの起動時に、当該メモリデバイスに格納されたデータについての論理アドレスと物理アドレスとの対応関係を示す管理情報(アドレス変換テーブル)の異常を検出すると、当該管理情報の修復処理を行う機能を有する。CPU102は、画像形成装置100の電源がオンになると、メモリデバイス113に格納されているプログラムの実行により画像形成装置100を起動する。タイマ124及びリセット回路125は、メモリデバイス113に格納されているプログラムに基づく画像形成装置100の起動が途中で停止すると、画像形成装置を再起動する。CPU102は、画像形成装置100の再起動後にメモリデバイス113で管理情報の異常が検出されたか否かに基づいて、画像形成装置100の起動が途中で停止する不具合を解消するための処理としてそれぞれ異なる処理を実行する。
具体的には、CPU102は、画像形成装置100の再起動後にメモリデバイス113で管理情報の異常が検出された場合には、不具合の原因として当該メモリデバイスの物理的な破損が発生したと判定する。その判定結果に従って、CPU102は、当該メモリデバイスの交換を促す通知を行う。一方、CPU102は、画像形成装置100の再起動後にメモリデバイス113で管理情報の異常が検出されていない場合には、不具合の原因として当該メモリデバイスに格納されているプログラムの破壊が発生したと判定する。その判定結果に従って、CPU102は、外部装置からのプログラムのダウンロードを促す通知を行う。このようにして、画像形成装置100の起動が途中で停止する不具合の原因に応じて、適切な通知をサービスマン又はユーザに促すことができるため、不具合に対する適切な対処が可能になる。したがって、本実施形態によれば、メモリデバイス113に格納されているプログラムに基づいて画像形成装置100が正常に起動できない不具合に適切に対処することが可能になる。これにより、画像形成装置100の早期の復旧が可能になる。
本実施形態は種々の変更が可能である。例えば、CPU102は、メモリデバイス113に格納されているプログラムに基づく画像形成装置100の起動が途中で停止すると、管理情報の修復を行う修復機能を実行するよう、メモリデバイス113を制御してもよい。更に、CPU102は、このような起動の停止に基づく修復機能の実行において管理情報の異常がメモリデバイス113によって検出されていなければ、外部装置からのプログラムのダウンロードを促すか、外部装置からプログラムをダウンロードしてもよい。この場合に、メモリデバイス113は、起動時に修復機能を実行するように構成され、CPU102は、プログラムに基づく画像形成装置100の起動が途中で停止すると、少なくともメモリデバイス113を再起動させるように構成される。このような処理によれば、メモリデバイス113に格納されているプログラムに基づいて画像形成装置100が正常に起動できない不具合に適切に対処することが可能になる。これにより、画像形成装置100の早期の復旧が可能になる。
[第2実施形態]
第1実施形態では、メモリデバイス113に格納されているプログラムの破壊が発生したとの判定に従って、プログラムのダウンロードをサービスマン又はユーザに促す通知を行う例について説明した。この場合、プログラムのダウンロードは、サービスマン又はユーザは、画像形成装置100の電源をオフにした後に、特定の操作を行うことで画像形成装置100をダウンロードモードで動作させる必要がある。
そこで、第2実施形態では、このような特定の操作を必要とせずに、画像形成装置100がプログラムのダウンロードを自動的に行う例について説明する。なお、説明の簡略化のため、第1実施形態と共通する部分については説明を省略する。
本実施形態では、図5に示される手順において、CPU102は、異常検出フラグが「0」に設定されている場合には(S519で「NO」)、S523で、ダウンロード専用プログラムをメモリデバイス113からRAM106へ展開する。更に、CPU102は、展開したプログラムを実行することで、外部I/F111を介して外部デバイスからプログラムのダウンロードを行い、処理を終了する。なお、CPU102は、S523で、プログラムのダウンロードが行われることを通知する操作画面をUI108に表示してもよい。
このように、本実施形態では、CPU102は、メモリデバイス113に格納されているプログラムの破壊が発生したと判定した場合に、外部デバイスからのプログラムのダウンロードを自動的に行う。これにより、サービスマン又はユーザによる特定の操作を必要とせずに、メモリデバイス113に格納されているプログラムの破壊に起因して画像形成装置100の起動制御が停止する不具合を解消することが可能になる。
[第3の実施形態]
第1及び第2実施形態では、メモリデバイス113に格納されているプログラムの破壊が発生したとの判定に従って、外部デバイスからプログラムのダウンロードを行う例について説明した。この場合に、プログラムのダウンロードが行われたとしてもメモリデバイス113に関連する不具合を解消できなければ、再び起動制御が停止してリブートが行われ、プログラムのダウンロードが繰り返されることが想定される。
そこで、第3実施形態では、メモリデバイス113に関連する不具合を解消できない場合に、外部デバイスからのプログラムのダウンロードが繰り返されることを防止する例について説明する。なお、説明の簡略化のため、第1実施形態と共通する部分については説明を省略する。
メモリデバイス113においてRAM118に保持されている管理情報119には、第1実施形態で説明したアドレス変換テーブル以外の情報も含まれる。管理情報119に含まれる情報は、メモリデバイス113のメーカー又は種類に依存して異なる。例えば、各メモリブロックにおいて有効なページ数を示す有効ページカウントが、管理情報119に含まれる。有効ページカウントについては、メモリデバイス113への電源投入時に、アドレス変換テーブルとは異なり異常の検出が行われず、異常が生じても修復が不可能である。しかし、有効ページカウントに異常が生じた場合には、画像形成装置100の起動制御が停止する原因となりうる。
RAM118の記憶領域のうち、管理情報119に含まれる有効ページカウントが格納される領域に物理的な破損が発生した場合、起動制御は停止するが管理情報の異常は検出されない(S519で「NO」)。その結果、CPU102は、メモリデバイス113内のRAM118に物理的な破損が発生しているにもかかわらず、メモリデバイス113に格納されているプログラムに破壊が発生していると判定してしまう。
そこで、本実施形態では、CPU102は、管理情報の異常がないと判定し、プログラムのダウンロードを実行した場合に(S519〜S523)、プログラムのダウンロードを実行済みであることを示す情報を保存する。この情報は、NANDフラッシュメモリ120又はROM107に保存される。
その後、CPU102は、再び、管理情報の異常がないと判定した場合には(S519で「NO」)、保存されている情報に基づいて、プログラムのダウンロードを実行済みであるか否かを判定する。CPU102は、プログラムをダウンロード済みである場合には、プログラムのダウンロードによっては解消できない不具合が生じている(即ち、メモリデバイス113が物理的に破損している)と判定する。CPU102は、その判定結果に従って、S521と同様、UI108を用いて、メモリデバイス113の交換の促す通知を行い、処理を終了する。
このように、CPU102は、外部デバイスからプログラムのダウンロードを行った場合に、当該プログラムをダウンロード済みであることを示す情報を保存する。これにより、CPU102は、画像形成装置100の再起動が再び行われた場合にプログラムのダウンロードを繰り返し行わないようにする。
本実施形態によれば、プログラムのダウンロードによりメモリデバイス113に関連する不具合を解消できない場合に、メモリデバイス113が物理的に破損していると判定し、その判定結果に従った処理を行う。これにより、外部デバイスからのプログラムのダウンロードが繰り返されることを防止することが可能になる。
[その他の実施形態]
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
発明は上述の実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。したがって、発明の範囲を公にするために請求項を添付する。
100:画像形成装置、101:メインSoC、102:CPU、103:画像処理部、104:ホストメモリI/F、112:SATA I/F、113:メモリデバイス、120:NANDフラッシュメモリ、124:タイマ、125:リセット回路

Claims (15)

  1. 情報処理装置であって、
    前記情報処理装置を起動するためのプログラムが格納された不揮発性のメモリデバイスであって、前記メモリデバイスの起動時に、前記メモリデバイスに格納されたデータについての論理アドレスと物理アドレスとの対応関係を示す管理情報の異常を検出すると、当該管理情報の修復処理を行う機能を有する、前記メモリデバイスと、
    前記プログラムに基づく前記情報処理装置の起動が途中で停止すると、前記情報処理装置を再起動する再起動手段と、
    前記再起動手段による再起動後に前記メモリデバイスで前記管理情報の異常が検出されたか否かに基づいて、前記情報処理装置の起動が途中で停止する不具合を解消するための処理としてそれぞれ異なる処理を実行する処理手段と、
    を備えることを特徴とする情報処理装置。
  2. 前記メモリデバイスは、前記メモリデバイスの起動時に、前記管理情報の異常を検出したか否かを示す検出情報を保存し、
    前記処理手段は、前記メモリデバイスに保存されている前記検出情報を参照することで、前記再起動後に前記管理情報の異常が検出されたか否かを判定する
    ことを特徴とする請求項1に記載の情報処理装置。
  3. 前記メモリデバイスは、前記管理情報の異常を検出したか否かを示す検出情報を、前記メモリデバイスの内部に格納されているSMART情報に記録し、
    前記処理手段は、前記SMART情報に記録されている前記検出情報を参照することで、前記再起動後に前記管理情報の異常が検出されたか否かを判定する
    ことを特徴とする請求項1又は2に記載の情報処理装置。
  4. 前記処理手段は、
    前記再起動後に前記メモリデバイスで前記管理情報の異常が検出された場合には、前記メモリデバイスの交換を促す通知を行い、
    前記再起動後に前記メモリデバイスで前記管理情報の異常が検出されていない場合には、外部装置からの前記プログラムのダウンロードを促す通知を行う
    ことを特徴とする請求項1から3のいずれか1項に記載の情報処理装置。
  5. 前記処理手段は、前記情報処理装置の再起動後に前記管理情報の異常が検出されたか否かに基づいて、前記不具合の原因を判定し、当該判定の結果に応じた処理を実行する
    ことを特徴とする請求項1から4のいずれか1項に記載の情報処理装置。
  6. 前記処理手段は、
    前記再起動後に前記管理情報の異常が検出された場合には、前記不具合の原因として前記メモリデバイスの物理的な破損が発生したと判定し、
    前記再起動後に前記管理情報の異常が検出されていない場合には、前記不具合の原因として前記メモリデバイスに格納されているプログラムの破壊が発生したと判定する
    ことを特徴とする請求項5に記載の情報処理装置。
  7. 前記処理手段は、
    前記メモリデバイスの物理的な破損が発生したと判定した場合には、前記メモリデバイスの交換を促す通知を行い、
    前記メモリデバイスに格納されているプログラムの破壊が発生したと判定した場合には、外部装置からの前記プログラムのダウンロードを促す通知を行う
    ことを特徴とする請求項6に記載の情報処理装置。
  8. 前記処理手段は、前記メモリデバイスに格納されているプログラムの破壊が発生したと判定すると、ユーザの指示に従って前記外部装置から前記プログラムのダウンロードを行い、ダウンロードした前記プログラムを前記メモリデバイスに格納する
    ことを特徴とする請求項7に記載の情報処理装置。
  9. 前記処理手段は、前記メモリデバイスに格納されているプログラムの破壊が発生したと判定すると、外部装置からの前記プログラムのダウンロードを自動的に開始し、ダウンロードした前記プログラムを前記メモリデバイスに格納する
    ことを特徴とする請求項6又は7に記載の情報処理装置。
  10. 前記処理手段は、前記外部装置から前記プログラムのダウンロードを行った場合に、前記プログラムをダウンロード済みであることを示す情報を保存することで、前記再起動手段による前記再起動が再び行われた場合に前記プログラムのダウンロードを繰り返し行わないようにする
    ことを特徴とする請求項7から9のいずれか1項に記載の情報処理装置。
  11. 前記処理手段は、前記外部装置から前記プログラムのダウンロードを行った後に、前記再起動手段による前記再起動が再び行われた場合には、前記再起動後に前記管理情報の異常が検出されていなくても前記メモリデバイスの物理的な破損が発生したと判定する
    ことを特徴とする請求項10に記載の情報処理装置。
  12. 前記処理手段は、前記メモリデバイスに格納されている前記プログラムの実行により前記情報処理装置を起動し、
    前記再起動手段は、前記プログラムに基づく前記情報処理装置の起動が開始されてから、前記情報処理装置の起動が完了することなく所定時間が経過すると、前記情報処理装置を再起動する
    ことを特徴とする請求項1から11のいずれか1項に記載の情報処理装置。
  13. 情報処理装置であって、
    前記情報処理装置を起動するためのプログラムが格納された不揮発性のメモリデバイスであって、前記メモリデバイスに格納されたデータについての論理アドレスと物理アドレスとの対応関係を示す管理情報の異常を検出すると、当該管理情報の修復処理を行う機能を有する、前記メモリデバイスと、
    前記プログラムに基づく前記情報処理装置の起動が途中で停止すると前記メモリデバイスが前記機能を実行するようにし、かつ、当該停止に基づく当該機能の実行において前記管理情報の異常が検出されていないと、外部装置からの前記プログラムのダウンロードを促すか、外部装置から前記プログラムをダウンロードする処理手段と、
    を備えることを特徴とする情報処理装置。
  14. 前記メモリデバイスは、前記メモリデバイスの起動時に前記機能を実行し、
    前記処理手段は、前記プログラムに基づく前記情報処理装置の起動が途中で停止すると、少なくとも前記メモリデバイスを再起動させる
    ことを特徴とする請求項13に記載の情報処理装置。
  15. 情報処理装置を起動するためのプログラムが格納された不揮発性のメモリデバイスであって、前記メモリデバイスの起動時に、前記メモリデバイスに格納されたデータについての論理アドレスと物理アドレスとの対応関係を示す管理情報の異常を検出すると、当該管理情報の修復処理を行う機能を有する、前記メモリデバイスを備える情報処理装置の制御方法であって、
    前記プログラムに基づく前記情報処理装置の起動が途中で停止すると、前記情報処理装置を再起動する再起動工程と、
    前記再起動工程における再起動後に前記メモリデバイスで前記管理情報の異常が検出されたか否かに基づいて、前記情報処理装置の起動が途中で停止する不具合を解消するための処理としてそれぞれ異なる処理を実行する処理工程と、
    を含むことを特徴とする情報処理装置の制御方法。
JP2019073077A 2019-04-05 2019-04-05 情報処理装置及びその制御方法 Pending JP2020171002A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019073077A JP2020171002A (ja) 2019-04-05 2019-04-05 情報処理装置及びその制御方法
US16/837,331 US11467898B2 (en) 2019-04-05 2020-04-01 Information processing apparatus and method of controlling the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019073077A JP2020171002A (ja) 2019-04-05 2019-04-05 情報処理装置及びその制御方法

Publications (1)

Publication Number Publication Date
JP2020171002A true JP2020171002A (ja) 2020-10-15

Family

ID=72663450

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019073077A Pending JP2020171002A (ja) 2019-04-05 2019-04-05 情報処理装置及びその制御方法

Country Status (2)

Country Link
US (1) US11467898B2 (ja)
JP (1) JP2020171002A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI776653B (zh) * 2021-08-24 2022-09-01 緯穎科技服務股份有限公司 用於控制儲存裝置的控制系統以及控制方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7734945B1 (en) * 2005-04-29 2010-06-08 Microsoft Corporation Automated recovery of unbootable systems
JP4586750B2 (ja) * 2006-03-10 2010-11-24 日本電気株式会社 コンピュータシステムおよび起動監視方法
JP4962060B2 (ja) * 2007-03-14 2012-06-27 富士通セミコンダクター株式会社 パリティエラー復旧回路
JP4475598B2 (ja) * 2007-06-26 2010-06-09 株式会社日立製作所 ストレージシステム及びストレージシステムの制御方法
JP2012174061A (ja) 2011-02-22 2012-09-10 Canon Electronics Inc 情報処理装置、情報処理方法、スキャナ装置、スキャナ装置の制御方法
US9563497B2 (en) * 2012-12-19 2017-02-07 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Correcting a failure associated with a current firmware image
JP5949540B2 (ja) * 2012-12-27 2016-07-06 富士通株式会社 情報処理装置、及び記憶情報解析方法
US20140258699A1 (en) * 2013-03-07 2014-09-11 Aspeed Technology Inc. Boot fault tolerant device and method thereof
US9690640B2 (en) * 2013-09-26 2017-06-27 Intel Corporation Recovery from multiple data errors
KR20150055946A (ko) * 2013-11-14 2015-05-22 삼성전자주식회사 메모리 장치의 복구 방법 및 메모리 장치를 구비하는 시스템의 부팅 방법
JP2015114750A (ja) * 2013-12-10 2015-06-22 富士通株式会社 調査用プログラム,情報処理装置及び情報処理方法
CN105700965A (zh) * 2014-11-26 2016-06-22 英业达科技有限公司 系统错误排除方法
US9507711B1 (en) * 2015-05-22 2016-11-29 Sandisk Technologies Llc Hierarchical FTL mapping optimized for workload
US9798625B2 (en) * 2015-06-23 2017-10-24 Dell Products, L.P. Agentless and/or pre-boot support, and field replaceable unit (FRU) isolation
US10223217B2 (en) * 2015-11-24 2019-03-05 Ricoh Company, Ltd. Information processing device, method for booting information processing device, and non-transitory recording medium
US10496509B2 (en) * 2017-02-27 2019-12-03 Dell Products L.P. Systems and methods for event tracking and health assessment of battery-powered information handling systems

Also Published As

Publication number Publication date
US20200319955A1 (en) 2020-10-08
US11467898B2 (en) 2022-10-11

Similar Documents

Publication Publication Date Title
JP5431111B2 (ja) 情報処理装置及びシステム設定方法
US7750676B2 (en) Embedded system and control method therefor
JP4456653B2 (ja) 情報処理システムおよび該システムの起動/リカバリ方法
JP2008200943A (ja) 画像形成装置
JP6613723B2 (ja) 電子機器
JP2016009339A (ja) 画像処理装置、その制御方法およびプログラム
US9772905B2 (en) Updating control firmware of information processing apparatus, method of controlling the same, and storage medium
JP2020171002A (ja) 情報処理装置及びその制御方法
JP2007293802A (ja) ディスクアレイ装置、ディスクアレイ装置の制御方法及びディスクアレイ装置の制御プログラム。
JP2023068538A (ja) 情報処理装置及びその制御方法、並びにプログラム
JP2000039993A (ja) ファームウエアの入れ替え装置及び入れ替え方法
JP7246869B2 (ja) 画像形成装置、画像形成装置の制御方法及びプログラム
JP2010198314A (ja) 情報管理装置
JP5360311B2 (ja) ディスクアレイ装置
JP5860381B2 (ja) 情報処理装置および情報処理装置用プログラム
JP2012113382A (ja) 画像形成装置
JP7263067B2 (ja) 情報処理装置および情報処理装置の制御方法
CN114026506B (zh) 可编程显示器及数据管理方法
JP2019008423A (ja) 情報処理装置、画像処理装置、情報処理装置の制御方法
JP2008018666A (ja) プリンタ
JP2017097398A (ja) 検査装置、検査方法、検査プログラム及び検査プログラムを格納した記録媒体
JP2008172491A (ja) ファクシミリ
JP5447112B2 (ja) 画像形成装置
JP2005078336A (ja) 画像形成装置と画像形成装置のプログラム書換方法
JP2022108624A (ja) 情報処理装置、その制御方法、及びプログラム

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20210103

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210113