(57)【要約】【課題】外部メモリへのアクセスに関するエラーの要因となったファイルに関する情報を、提供する。【解決手段】更新部６０Ｂは、不揮発性の第１の記憶部２４に対して書込または削除を行うたびに、揮発性の第２の記憶部３１に記憶された、ファイルのファイル名と書込回数を含むファイル情報とを対応付けた管理情報５０における、書込削除対象の前記ファイルの書込回数を更新する。記憶制御部６０Ｃは、管理情報５０を第１の記憶部２４に記憶する。出力制御部６０Ｄは、第１の記憶部２４へのアクセスに関するエラーが発生した場合、管理情報５０に基づいて、エラーに関するファイルを示すエラー情報を出力する。【選択図】図６
2019128834.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性の第１の記憶部に対して書込または削除を行うたびに、揮発性の第２の記憶部に記憶された、ファイルのファイル名と書込回数を含むファイル情報とを対応付けた管理情報における、書込削除対象の前記ファイルの前記書込回数を更新する更新部と、
前記管理情報を前記第１の記憶部に記憶する記憶制御部と、
前記第１の記憶部へのアクセスに関するエラーが発生した場合、前記管理情報に基づいて、前記エラーに関する前記ファイルを示すエラー情報を出力する出力制御部と、
を備える、情報処理装置。
【請求項２】
前記出力制御部は、
前記エラーが前記第１の記憶部に記憶された前記ファイルのファイルオープンエラーである場合、前記第２の記憶部に記憶された前記管理情報に基づいた前記エラー情報を出力する、
請求項１に記載の情報処理装置。
【請求項３】
前記出力制御部は、
前記管理情報における、ファイルオープン対象の前記ファイルの前記ファイル名および該ファイル名に対応する前記ファイル情報を、前記エラー情報として出力する、
請求項２に記載の情報処理装置。
【請求項４】
前記出力制御部は、
前記エラーが前記第１の記憶部のマウントエラーである場合、前記第１の記憶部に記憶された前記管理情報に基づいた前記エラー情報を出力する、
請求項１〜請求項３の何れか１項に記載の情報処理装置。
【請求項５】
前記出力制御部は、
前記エラーが前記マウントエラーである場合、前記管理情報における所定条件を満たす前記ファイル情報を、前記エラー情報として出力する、
請求項４に記載の情報処理装置。
【請求項６】
前記出力制御部は、
前記エラーが前記マウントエラーである場合、前記管理情報に付与されたマジックナンバーを前記第１の記憶部から検索することによって、前記第１の記憶部に記憶された前記管理情報を特定し、該管理情報における前記所定条件を満たす前記ファイル情報を、前記エラー情報として出力する、
請求項５に記載の情報処理装置。
【請求項７】
前記ファイル情報は、対応する前記ファイル名のファイルの作成日、該ファイルの最終更新日、該ファイルが削除済か否かを示す削除フラグ、の少なくとも１つと、前記書込回数と、を含む、請求項１〜請求項６の何れか１項に記載の情報処理装置。
【請求項８】
前記記憶制御部は、
情報処理装置の動作終了時、または、省電力モードへの移行時に、前記管理情報を前記第１の記憶部に記憶する、
請求項１〜請求項７の何れか１項に記載の情報処理装置。
【請求項９】
不揮発性の第１の記憶部に対して書込または削除を行うたびに、揮発性の第２の記憶部に記憶された、ファイルのファイル名と書込回数を含むファイル情報とを対応付けた管理情報における、書込削除対象の前記ファイルの前記書込回数を更新するステップと、
前記管理情報を前記第１の記憶部に記憶するステップと、
前記第１の記憶部へのアクセスに関するエラーが発生した場合、前記管理情報に基づいて、前記エラーに関する前記ファイルを示すエラー情報を出力するステップと、
を含む情報処理方法。
【請求項１０】
不揮発性の第１の記憶部に対して書込または削除を行うたびに、揮発性の第２の記憶部に記憶された、ファイルのファイル名と書込回数を含むファイル情報とを対応付けた管理情報における、書込削除対象の前記ファイルの前記書込回数を更新するステップと、
前記管理情報を前記第１の記憶部に記憶するステップと、
前記第１の記憶部へのアクセスに関するエラーが発生した場合、前記管理情報に基づいて、前記エラーに関する前記ファイルを示すエラー情報を出力するステップと、
をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、およびプログラムに関する。
【背景技術】
【０００２】
外部メモリとして用いられるＮＡＮＤ型フラッシュメモリは、物理的な制約として、ブロックごとに書き換え回数に一定の制限がある。これを超えた場合、書き込まれたデータが正常に読めなくなるデータ化けや正常に書込みができない状態となる。そこで、このような状態を防ぐための技術が開示されている。
【０００３】
例えば、特許文献１には、フラッシュメモリに対する積算書込量を管理することで、フラッシュメモリの寿命を判定する技術が開示されている。また、特許文献２には、データ保存に関連するファイル管理情報を不揮発性ランダムアクセスメモリに保持し、正常動作終了時に該ファイル管理情報をフラッシュメモリに記憶することで、フラッシュメモリの書換え頻度を抑制する技術が開示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来技術では、書込んだデータ量や書込回数を特定することは可能であるが、外部メモリへのアクセスに関するエラーが、外部メモリの何れのファイルを要因とするものかを特定することは困難であった。すなわち、従来では、外部メモリへのアクセスに関するエラーの要因となったファイルに関する情報を、提供することは困難であった。
【０００５】
本発明は、上記に鑑みてなされたものであって、外部メモリへのアクセスに関するエラーの要因となったファイルに関する情報を、提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決するために、情報処理装置は、不揮発性の第１の記憶部に対して書込または削除を行うたびに、揮発性の第２の記憶部に記憶された、ファイルのファイル名と書込回数を含むファイル情報とを対応付けた管理情報における、書込削除対象の前記ファイルの前記書込回数を更新する更新部と、前記管理情報を前記第１の記憶部に記憶する記憶制御部と、前記第１の記憶部へのアクセスに関するエラーが発生した場合、前記管理情報に基づいて、前記エラーに関する前記ファイルを示すエラー情報を出力する出力制御部と、を備える。
【発明の効果】
【０００７】
本発明によれば、外部メモリへのアクセスに関するエラーの要因となったファイルに関する情報を、提供することができる。
【図面の簡単な説明】
【０００８】
【図１】図１は、画像形成装置のハードウェア構成例を示すブロック図である。
【図２】図２は、フラッシュメモリの内部構成の一例の説明図である。
【図３】図３は、ＦＡＴファイルシステムの一例の説明図である。
【図４】図４は、ＦＡＴ内のクラスタ識別子の一例の説明図である。
【図５】図５は、第１の記憶部へのアクセスに関するソフトウェアの一例の説明図である。
【図６】図６は、画像形成装置の機能的構成の一例を示す模式図である。
【図７】図７は、管理情報のデータ構成の一例を示す模式図である。
【図８】図８は、情報処理の手順の一例を示すフローチャートである。
【図９】図９は、初期化処理の手順の一例を示すフローチャートである。
【図１０】図１０は、書込処理の手順の一例を示すフローチャートである。
【図１１】図１１は、削除処理の手順の一例を示すフローチャートである。
【図１２】図１２は、エラー処理の手順の一例を示すフローチャートである。
【図１３】図１３は、解析処理の手順の一例を示すフローチャートである。
【図１４】図１４は、終了処理の手順の一例を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下に添付図面を参照しながら、本実施の形態に係る情報処理装置、情報処理方法、およびプログラムの具体的な実施の形態について詳しく説明する。以下で示す実施の形態は、本実施の形態に係る情報処理装置、情報処理方法、およびプログラムを、画像形成装置（「機器」の一態様）の一機能として実現した例である。ただし、本発明はこの例に限らず、画像形成装置以外の機器の機能として、あるいは機器から独立した装置として実現することも可能である。
【００１０】
図１は、本実施の形態の画像形成装置１０のハードウェア構成例を示すブロック図である。本実施の形態の画像形成装置１０は、コントローラ１２と、出力部１４と、エンジン２２と、第１の記憶部２４と、とを備える。出力部１４、エンジン２２、および第１の記憶部２４と、コントローラ１２と、はデータや信号を授受可能に接続されている。
【００１１】
コントローラ１２は、画像形成装置１０の動作を制御する制御装置である。コントローラ１２は、例えば、制御基板上に、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３２、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３０、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）３４、ＳＳＤ３６、ＮＶＲＡＭ（Ｎｏｎ−Ｖｏｌａｔｉｌｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３８、ＵＳＢポート４０およびＳＤカードスロット４２などの各種電子部品を実装した構成である。
【００１２】
ＣＰＵ３２は、画像形成装置１０の動作を制御するための各種プログラムを実行する演算装置である。ＤＲＡＭ３０は、例えばＣＰＵ３２がプログラムの実行時にワークエリアとして利用するメモリである。ＡＳＩＣ３４は、各種の画像処理を実行したり各種の入出力インタフェース機能を実現したりする集積回路である。ＳＳＤ３６は、例えばシステム起動用のプログラムを格納する。ＮＶＲＡＭ３８は、画像形成装置１０の電源がオフしても記憶しておく必要のある各種データを記憶する、書き換え制限のない不揮発性メモリである。
【００１３】
ＤＲＡＭ３０およびＮＶＲＡＭ３８は、第２の記憶部３１の一例である。第２の記憶部３１は、揮発性のメモリである。すなわち、第２の記憶部３１は、画像形成装置１０に実装された、書き換え制限のない揮発性メモリである。
【００１４】
なお、以下では、ＤＲＡＭ３０およびＮＶＲＡＭ３８を総称して説明する場合には、単に、第２の記憶部３１と称して説明する。
【００１５】
ＵＳＢポート４０は、ＵＳＢメモリ２６をコントローラ１２に接続するためのインタフェースである。ＳＤカードスロット４２は、ＳＤカード２８をコントローラ１２に接続するためのインタフェースである。
【００１６】
ＵＳＢメモリ２６およびＳＤカード２８は、画像形成装置１０に対して外付けで接続されるフラッシュメモリである。ＵＳＢメモリ２６およびＳＤカード２８は、第１の記憶部２４の一例である。第１の記憶部２４は、不揮発性のメモリであり、コントローラ１２に対して外付けで接続される外部メモリの一例である。
【００１７】
なお、本実施の形態では、ＵＳＢメモリ２６およびＳＤカード２８を総称して説明する場合には、単に、第１の記憶部２４と称して説明する。
【００１８】
出力部１４は、各種情報を出力する。出力部１４は、例えば、情報の表示機能、情報を示す音声の出力機能、および外部装置への通信機能の少なくとも１つを有する。本実施の形態では、出力部１４は、オペレーションパネル１６と、スピーカ１８と、通信部２０と、を含む。
【００１９】
オペレーションパネル１６は、各種の情報を表示する機能と、ユーザによる各種の入力操作を受け付ける機能と、を有する。スピーカ１８は、情報を示す音声を出力する。通信部２０は、ネットワーク等を介して外部装置と情報を通信する。
【００２０】
エンジン２２は、コントローラ１２による制御のもとで原稿の読み取りを行うスキャナエンジンや、コントローラ１２による制御のもとで記録媒体などに画像形成を行うプロッタエンジンなどを含む。
【００２１】
本実施の形態の画像形成装置１０は、フラッシュメモリである第１の記憶部２４へのアクセスに関するエラーを、管理する（詳細後述）。
【００２２】
図２は、フラッシュメモリの内部構成の一例の説明図である。フラッシュメモリの記憶領域は、複数のブロック（図２ではＢｌｏｃｋ０からＢｌｏｃｋ１０２３）に分かれている。各ブロックは、複数のページ（図２ではｐａｇｅ０からｐａｇｅ６３）から構成されている。フラッシュメモリに対するデータの書込みはページ単位で行われ、データの消去はブロック単位で行われる。また、データの上書きを行うことはできず、データが書込まれたブロックに新たなデータを書込む場合には、そのブロックのデータを一旦消去してからでないと新たなデータの書込みができない。
【００２３】
このため、フラッシュメモリには、書込を制御する制御用の構成部が必要となる。このような構成部は、書込対象のデータ（ファイル）をページ単位にまとめて書込み、書込みのためのブロック消去およびデータの移動、等の制御を行う。第１の記憶部２４への書込回数は、書込対象のデータの性質に依存することから書込量と書込回数は一致しないが、書込量の約２〜３倍程度となることが多い。このため、第１の記憶部２４への書込回数は、第１の記憶部２４へのアクセスに関するエラー解析のパラメータとして、実用に耐えうるものであるといえる。
【００２４】
なお、ＵＳＢメモリ２６やＳＤカード２８などの第１の記憶部２４で用いられるファイルシステムは、例えば、ＦＡＴ（Ｆｉｌｅ  Ａｌｌｏｃａｔｉｏｎ  Ｔａｂｌｅ）ファイルシステムである。ＦＡＴファイルシステムは、データをクラスタ単位で管理し、そのマッピング情報をＦＡＴと呼ばれる管理テーブルに記録する方式である。
【００２５】
図３は、ＦＡＴファイルシステムの説明図である。ＦＡＴファイルシステムにおけるデータの最小書込み単位は、セクタと称される。冒頭のセクタには、マスタ・ブート・レコードと呼ばれる情報が格納される。マスタ・ブート・レコードには、パーティション分割の情報（パーティション・エントリ・テーブル）などを含むディスク（本例ではＵＳＢメモリ２６やＳＤカード２８などの第１の記憶部２４）全体の情報が格納されている。マスタ・ブート・レコードには、通常利用での書込は行われない。パーティションとは、ディスクを分割して使用する場合の分割の単位を示す。
【００２６】
冒頭のセクタの次のセクタから１９個目のセクタまでは空き領域とされ、２０個目のセクタからパーティションが始まる。パーティションの先頭セクタはブートセクタであり、ここにＢＩＯＳパラメータ・ブロックなどが含まれる。ＢＩＯＳパラメータ・ブロックには、パーティションのセクタ数や１つのクラスタを構成するセクタ数、１つのＦＡＴのセクタ数など、パーティションの内部構成の情報が格納される。ＢＩＯＳパラメータ・ブロックには、通常利用での書込は行われない。クラスタは、複数のセクタの集合であり、ファイルは、クラスタ単位で書き込まれる。
【００２７】
ＢＩＯＳパラメータ・ブロックを含むブートセクタ以降に、パーティションにおいて通常利用されるデータ領域が設けられる。このデータ領域には、ＦＡＴ１およびＦＡＴ２の２つのＦＡＴと、ルート・ディレクトリ・エントリと、実際にユーザデータ（ファイル）の書き込まれるユーザデータ領域と、が設けられる。
【００２８】
ＦＡＴには、各クラスタとその利用状況が格納される。具体的には、ＦＡＴは、ユーザデータ領域における各クラスタの状態や次にどのクラスタに繋がるかといった情報を１次元の配列で格納するテーブルである。
【００２９】
図４は、ＦＡＴ内のクラスタ識別子を説明する図である。図中のＦＡＴ１２、ＦＡＴ１６、およびＦＡＴ３２は、クラスタ識別子の使用ビット数に基づくＦＡＴの分類を示している。ＦＡＴには、ユーザが利用可能なクラスタ（未使用クラスタおよび有効なユーザデータ・クラスタ）とユーザが利用できない予約クラスタ、クラスタの破損を示す不良クラスタ、クラスタ間の繋ぎの最後を示す最終クラスタが用意され、それぞれ図４に示すクラスタ識別子で識別される。
【００３０】
図３に戻り説明を続ける。ルート・ディレクトリ・エントリは、ファイルに関するディレクトリ情報を格納する領域である。ディレクトリ情報には、例えば、ファイル作成日時、データの先頭位置（ファイルの開始クラスタ）などが含まれる。
【００３１】
ＦＡＴファイルシステムは、以上の構成によりユーザデータを管理する。このため、あるファイルに更新を行う場合、次の（１）から（７）に示すような手順を踏むことになる。
（１）ルート・ディレクトリ・エントリからディレクトリ情報を削除
（２）ＦＡＴ１からクラスタ削除
（３）ＦＡＴ２からクラスタ削除
（４）ユーザデータ領域にファイル書込み
（５）ＦＡＴ２にクラスタ追加
（６）ＦＡＴ１にクラスタ追加
（７）ルート・ディレクトリ・エントリにディレクトリ情報を追加
【００３２】
以上の手順から分かるように、ＦＡＴファイルシステムでデータを管理する構成では、実際にデータ（ファイル）が書き込まれるユーザデータ領域より、ＦＡＴやルート・ディレクトリ・エントリなどの管理情報側の更新頻度が高い。
【００３３】
ＵＳＢメモリ２６やＳＤカード２８などの第１の記憶部２４に対する実際のデータ書込み時には、例えば、上述のコントローラ１２の動作によって実際のアドレスはばらつくように制御される。
【００３４】
しかし、その方式にも様々なアルゴリズムがあり、実際にデータ（ファイル）の書込み制御がどのように行われるかユーザ側で把握することは難しい。また、例えば、空きブロックとの交換動作を主として行う場合もあるため、実際にデータが書き込まれる位置が偏る可能性もある。
【００３５】
このため、ＦＡＴファイルシステムにおいても、書込回数は、第１の記憶部２４へのアクセスに関するエラー解析のパラメータとして、有用であるといえる。
【００３６】
なお、第１の記憶部２４に対するファイルの書込みや読出しは、ＯＳ（オペレーションシステム）上で動作するソフトウェアであるデバイスドライバにより行われる。
【００３７】
図５は、第１の記憶部２４へのアクセスに関するソフトウェアの一例の説明図である。本実施の形態の画像形成装置１０では、コントローラ１２が、ＯＳ１２Ａ上で、ＳＤカード２８などの第１の記憶部２４に対応するデバイスドライバ１２Ｄを動作させる。デバイスドライバ１２Ｄは、第１の記憶部２４（ここではＳＤカード２８）用のデバイスドライバである。ファイルシステムドライバ１２Ｃは、上位のアプリケーションからファイルアクセスするためのドライバである。すなわち、ファイルシステムドライバ１２Ｃによって、上位のアプリケーションからデバイスドライバ１２Ｄを介して、ＳＤカード２８等の第１の記憶部２４に対して、ファイルアクセス（ファイルの書込み、読出し、または削除）が行われる。
【００３８】
ここで、上述したように、第１の記憶部２４への書込回数は、第１の記憶部２４へのアクセスに関するエラー解析のパラメータとして有用であるといえる。しかし、従来では、書込回数の管理がファイルごとになされておらず、第１の記憶部２４へのアクセスに関するエラーが、外部メモリの何れのファイルを要因とするものかを特定することは困難であった。すなわち、従来では、外部メモリへのアクセスに関するエラーの要因となったファイルに関する情報を、提供することは困難であった。
【００３９】
そこで、本実施の形態の画像形成装置１０では、以下の構成とすることで、第１の記憶部２４へのアクセスに関するエラーの要因となったファイルに関する情報を、提供する。
【００４０】
図６は、本実施の形態の画像形成装置１０の機能的構成の一例を示す模式図である。画像形成装置１０は、主制御部６０を備える。主制御部６０は、コントローラ１２（図１参照）によって実現する。
【００４１】
主制御部６０であるコントローラ１２には、上述したように、出力部１４、エンジン２２、および第１の記憶部２４が電気的に接続されている。
【００４２】
本実施の形態では、第２の記憶部３１には、管理情報５０が記憶されている。管理情報５０は、後述する主制御部６０の処理によって、更新される（詳細後述）。第２の記憶部３１に記憶された管理情報５０は、後述する主制御部６０の処理によって、第１の記憶部２４へ記憶（コピー）される。
【００４３】
図７は、管理情報５０のデータ構成の一例を示す模式図である。管理情報５０は、ファイル名と、ファイル情報と、を対応づけたものである。管理情報５０のデータ形式は、例えば、テーブルやデータベースであるが、これらに限定されない。
【００４４】
ファイル名は、ファイルの名称である。ファイル名は、例えば、ファイルの格納場所を含む情報で表される。図７には、ディレクトリ情報を含むファイルパスを、ファイル名として用いた場合を示した。
【００４５】
ファイル情報は、少なくとも書込回数を含む。書込回数は、対応するファイル名のファイルの、第１の記憶部２４への書込または削除の回数を示す。第１の記憶部２４へのファイルの書込には、第１の記憶部２４への新たなファイルの書込、および、第１の記憶部２４に記憶されているファイルの変更（書換、更新、追記、を含む）が含まれる。
【００４６】
なお、ファイル情報は、対応するファイル名のファイルの作成日、該ファイルの最終更新日、該ファイルが削除済か否かを示す削除フラグ、の少なくとも１つと、書込回数と、を含むものであってもよい。
【００４７】
また、ファイル情報は、画像形成装置１０の省電力モードへの移行回数や、画像形成装置１０の動作終了回数を含んでいてもよい。
【００４８】
画像形成装置１０の動作終了時とは、例えば、画像形成装置１０のシャットダウン時である。省電力モードとは、画像形成装置１０で動作する機能を最小限にして電力消費を抑制する機能である。画像形成装置１０は、所定の条件を満たしたときに、通常の電力モードから省電力モードへ移行する。通常の電力モードとは、省電力モードが解除された状態を示す。
【００４９】
図７には、ファイル情報が、書込回数、削除フラグ、作成日、および最終更新日を含む場合を、一例として示した。
【００５０】
なお、管理情報５０の先頭には、マジックナンバーを予め付与してもよい。本実施の形態では、管理情報５０の先頭に、マジックナンバーを予め付与した形態を説明する。マジックナンバーには、予め定めた特定の文字列を用いればよい。
【００５１】
図６に戻り説明を続ける。主制御部６０は、書込処理部６０Ａと、更新部６０Ｂと、記憶制御部６０Ｃと、出力制御部６０Ｄと、解析部６０Ｅと、を備える。
【００５２】
書込処理部６０Ａ、更新部６０Ｂ、記憶制御部６０Ｃ、出力制御部６０Ｄ、および解析部６０Ｅの一部または全ては、例えば、ＣＰＵ３２などのプロセッサ回路にプログラムを実行させること、すなわち、ソフトウェアにより実現してもよいし、ＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）などの専用の処理回路を用いてハードウェアにより実現してもよいし、ソフトウェアおよびハードウェアを併用して実現してもよい。処理回路は、物理的に１つであってもよいし、複数であってもよい。
【００５３】
例えば、書込処理部６０Ａ、更新部６０Ｂ、記憶制御部６０Ｃ、出力制御部６０Ｄ、および解析部６０Ｅの一部または全ては、例えば、コントローラ１２のＣＰＵ３２が、情報処理方法の実行手順をプログラムコードとして記述した所定のプログラムを実行することにより、実現される。
【００５４】
書込処理部６０Ａは、第１の記憶部２４に対する書込または削除に関する処理を実行する。すなわち、書込処理部６０Ａは、上述したファイルシステムドライバ１２Ｃに相当する機能を有する（図５参照）。書込処理部６０Ａは、ＳＤカード２８等の第１の記憶部２４に対して、ファイルの書込、読出し、または削除を行う。
【００５５】
更新部６０Ｂは、第１の記憶部２４に対して書込または削除を行うたびに、第２の記憶部３１に記憶された管理情報５０における、書込削除対象のファイルの書込回数を更新する。
【００５６】
詳細には、更新部６０Ｂは、書込処理部６０Ａによってファイルが第１の記憶部２４へ書込まれると、第２の記憶部３１に記憶されている管理情報５０における、該ファイルのファイル名に対応する書込回数を、“１”カウントアップする。
【００５７】
このとき、書込処理部６０Ａによってファイルが新たに作成された場合には、更新部６０Ｂは、管理情報５０における該ファイル名に対応する作成日を、該ファイルを新たに作成した日に更新する。なお、作成日は、日・時・分・秒など、より詳細なタイミングを示すものであることが好ましい。
【００５８】
また、書込処理部６０Ａによって、第１の記憶部２４に記憶されているファイルが更新された場合には、更新部６０Ｂは、管理情報５０における該ファイル名に対応する最終更新日を、該ファイルを更新した最新の日に更新する。なお、最終更新日は、日・時・分・秒など、より詳細なタイミングを示すものであることが好ましい。
【００５９】
また、更新部６０Ｂは、書込処理部６０Ａによって、第１の記憶部２４に記憶されているファイルが削除されると、第２の記憶部３１に記憶されている管理情報５０における、該ファイルのファイル名に対応する書込回数を、“１”カウントアップする。
【００６０】
そして、更新部６０Ｂは、第２の記憶部３１に記憶されている管理情報５０における、削除したファイルのファイル名に対応する最終更新日を、該削除したタイミングに更新する。また、更新部６０Ｂは、第２の記憶部３１に記憶されている管理情報５０における、該ファイルのファイル名に対応する削除フラグとして、削除済を示す“Ｙｅｓ”を書込む。なお、初期状態では、削除フラグは、削除未を示す“Ｎｏ”であるものとして説明する。
【００６１】
このようにして、更新部６０Ｂは、第２の記憶部３１に対して書込または削除を行うたびに、第２の記憶部３１に記憶された管理情報５０における、書込削除対象のファイルの書込回数を更新する。
【００６２】
次に、記憶制御部６０Ｃについて説明する。記憶制御部６０Ｃは、第２の記憶部３１に記憶された管理情報５０を、第１の記憶部２４へ記憶する。記憶制御部６０Ｃは、所定のタイミングで、第２の記憶部３１に記憶された管理情報５０に示される情報を、ＳＤカード２８にコピーする。この処理によって、第２の記憶部３１に記憶されていた管理情報５０が、第１の記憶部２４に記憶される。言い換えると、第１の記憶部２４の管理情報５０が、第２の記憶部３１に記憶されていた管理情報５０によって更新される。
【００６３】
なお、記憶制御部６０Ｃは、所定のタイミングごとに、第２の記憶部３１に記憶された管理情報５０を、第１の記憶部２４へ記憶すればよい。
【００６４】
例えば、記憶制御部６０Ｃは、画像形成装置１０の動作終了時、または、画像形成装置１０の省電力モードへの移行時に、第２の記憶部３１の管理情報５０を、第１の記憶部２４に記憶する。
【００６５】
出力制御部６０Ｄは、第１の記憶部２４へのアクセスに関するエラーが発生した場合、管理情報５０に基づいて、エラー情報を出力する。
【００６６】
第１の記憶部２４へのアクセスに関するエラーとは、主制御部６０が第１の記憶部２４へアクセスするとき、またはアクセスしたとき、に発生するエラーを示す。第１の記憶部２４へのアクセスに関するエラーは、第１の記憶部２４のマウントエラーや、第１の記憶部２４に記憶されたファイルのファイルオープンエラーなどである。
【００６７】
ファイルオープンエラーは、アプリケーションによる指示により、デバイスドライバ１２Ｄが特定のファイルを利用しようとして、第１の記憶部２４における特定のファイルをオープンしようとしたときに、発生するエラーである。
【００６８】
マウントエラーは、画像形成装置１０への電源供給が開始されたとき（電源ＯＮ時）などに、デバイスドライバ１２Ｄが第１の記憶部２４へのマウントを実施した際に、ファイルシステムの破損を検知した場合などに発生するエラーである。
【００６９】
エラー情報は、上記エラーに関するファイルを示す情報である。
【００７０】
出力制御部６０Ｄは、エラー情報を、出力部１４へ出力する。例えば、出力制御部６０Ｄは、オペレーションパネル１６へエラー情報を出力する。この場合、オペレーションパネル１６には、エラー情報が表示される。また、例えば、出力制御部６０Ｄは、スピーカ１８へエラー情報を出力する。この場合、スピーカ１８は、エラー情報を示す音声を出力する。また、例えば、出力制御部６０Ｄは、通信部２０へエラー情報を出力する。この場合、通信部２０は、ネットワーク等を介して外部装置へ、エラー情報を送信する。
【００７１】
なお、第１の記憶部２４へのアクセスに関するエラーが、第１の記憶部２４に記憶されたファイルのファイルオープンエラーである場合、出力制御部６０Ｄは、第２の記憶部３１に記憶された管理情報５０に基づいたエラー情報を出力する。
【００７２】
詳細には、ファイルオープンエラーである場合、出力制御部６０Ｄは、第２の記憶部３１に記憶された管理情報５０における、ファイルオープン対象のファイルのファイル名および該ファイル名に対応するファイル情報を、エラー情報として出力する。
【００７３】
一方、第１の記憶部２４へのアクセスに関するエラーが、第１の記憶部２４のマウントエラーである場合、出力制御部６０Ｄは、第１の記憶部２４に記憶された管理情報５０に基づいた、エラー情報を出力する。
【００７４】
詳細には、第１の記憶部２４のマウントエラーである場合、出力制御部６０Ｄは、第１の記憶部２４に記憶された管理情報５０における、所定条件を満たすファイル情報および該ファイル情報に対応するファイル名を、エラー情報として出力する。
【００７５】
所定条件を満たすファイル情報は、例えば、第１の記憶部２４に記憶された管理情報５０における、最新の最終更新日を含むファイル情報、閾値以上の書込回数を含むファイル情報、書込回数が上位Ｎ個（Ｎは１以上の整数）のファイル情報、などである。なお、所定条件は、予め定めればよい。また、所定条件は、ユーザによるオペレーションパネル１６の操作指示などによって、適宜変更可能としてもよい。
【００７６】
なお、第１の記憶部２４のマウントエラーである場合、第１の記憶部２４から管理情報５０を検索することが困難な場合がある。このため、この場合、出力制御部６０Ｄは、管理情報５０に付与されたマジックナンバーを第１の記憶部２４から検索することで、第１の記憶部２４に記憶された管理情報５０を特定すればよい。そして、出力制御部６０Ｄは、特定した管理情報５０における、上記所定条件を満たすファイル情報を、エラー情報として出力すればよい。
【００７７】
なお、出力制御部６０Ｄは、第１の記憶部２４へのアクセスに関するエラーが発生した場合、第１の記憶部２４を書込不可モードに設定してもよい。この設定により、第１の記憶部２４への書込を禁止することができる。なお、書込不可モードの設定は、例えば、第１の記憶部２４に設けられた物理的なスイッチを切替えることで実現してもよいし、予め定めた所定のフラグを切替えることで実現してもよい。また、第１の記憶部２４に対応するデバイスドライバ１２Ｄの設定を書込不可モードとすることで、第１の記憶部２４に対する書込みを禁止するように制御してもよい。
【００７８】
次に、解析部６０Ｅについて説明する。解析部６０Ｅは、出力制御部６０Ｄが出力したエラー情報を解析し、第１の記憶部２４へのアクセスに関するエラーの要因となったファイルアクセスの問題を特定する。
【００７９】
解析部６０Ｅは、出力制御部６０Ｄが出力したエラー情報から、最後にアクセスされたファイルのファイル名を特定する。そして、解析部６０Ｅは、特定したファイル名のファイルに対するアクセスについての問題を特定する。例えば、解析部６０Ｅは、特定したファイルへのアクセスの際に、過剰な書込や、電源遮断時に書込のためのアクセスが行われたか、などの問題を特定する。
【００８０】
なお、この解析によってファイルアクセスの問題が特定出来なかった場合には、解析部６０Ｅは、出力制御部６０Ｄが出力したエラー情報を読取ることで、書込回数が閾値以上のファイルを特定する。そして、解析部６０Ｅは、特定したファイルに対するアクセスについて、ファイルアクセスの問題を特定する。
【００８１】
例えば、解析部６０Ｅは、特定したファイルへのアクセスの際に、過剰な書込や、電源遮断時に書込のためのアクセスが行われたか、などを特定する。この処理によって、解析部６０Ｅは、エラーの要因となったファイルアクセスの問題を特定する。また、書込回数が閾値以上のファイルが１つであった場合には、該ファイルのファイル名に対応する書込回数などのファイル情報から、異常な回数の書込みをしていないか、などを特定する。
【００８２】
ここで、従来では、ＳＤカード２８のデータ破損時の解析には、困難を極めていた。特に、ＳＤカード２８におけるファイルシステムが破損した場合、マウントエラーによってマウントが不可能である。このため、従来では、ＳＤカード２８にどのようなファイルが記憶されているのか、また、ＳＤカード２８がどのような状態にあるのか、ＳＤカード２８に最後にアクセスされたのはいつなのか、などを手作業で解析する必要があった。
【００８３】
また、従来では、書込回数の多いファイルなどの情報が不明であることから、破損した可能性のあるファイルを特定することができず、それ以上の解析は困難であった。また、従来では、単純なファイル内でのデータ破損の場合、ファイル自体へのアクセスは可能であるが、ファイルに対応する書込回数などの情報が無く、エラーの要因となったファイルアクセスの問題を特定することは困難であった。
【００８４】
一方、本実施の形態では、解析部６０Ｅは、出力制御部６０Ｄから出力されるエラー情報を用いて、解析を行う。エラー情報は、上述したように、管理情報５０に基づいて出力された情報であり、エラーに関するファイルを示す情報である。
【００８５】
このため、本実施の形態では、解析部６０Ｅは、出力制御部６０Ｄが出力したエラー情報を用いることで、第１の記憶部２４へのアクセスに関するエラーの要因となったファイルに関する情報を、容易に特定することができる。
【００８６】
次に、本実施の形態の画像形成装置１０が実行する、情報処理の手順の一例を説明する。
【００８７】
なお、以下の手順の説明では、第１の記憶部２４としてＳＤカード２８を用い、第２の記憶部３１としてＤＲＡＭ３０を用いた場合を、一例として説明する。
【００８８】
図８は、本実施の形態の画像形成装置１０が実行する、情報処理の手順の一例を示すフローチャートである。
【００８９】
まず、主制御部６０は、ＳＤカード２８がＳＤカードスロット４２に挿入されたか否かを判断する（ステップＳ１００）。ＳＤカード２８が未挿入の状態から挿入された状態へと移行した場合、肯定判断し（ステップＳ１００：Ｙｅｓ）、ステップＳ１０２へ進む。ステップＳ１０２では、主制御部６０は、初期化処理を実行する（ステップＳ１０２）（詳細後述）。そして、本ルーチンを終了する。
【００９０】
ＳＤカード２８が挿入済である場合には、否定判断し（ステップＳ１００：Ｎｏ）、ステップＳ１０４へ進む。
【００９１】
ステップＳ１０４では、書込処理部６０Ａが、ファイルを第１の記憶部２４へ書込むか否かを判断する（ステップＳ１０４）。例えば、書込処理部６０Ａは、アプリケーションからファイルの書込指示を受付けたか否かを判別することで、ステップＳ１０４の判断を行う。ステップＳ１０４で肯定判断すると（ステップＳ１０４：Ｙｅｓ）、ステップＳ１０６へ進む。ステップＳ１０６では、主制御部６０が書込処理を実行する（ステップＳ１０６）（詳細後述）。そして、本ルーチンを終了する。
【００９２】
ステップＳ１０４で否定判断すると（ステップＳ１０４：Ｎｏ）、ステップＳ１０８へ進む。ステップＳ１０８では、書込処理部６０Ａが、第１の記憶部２４へ記憶されたファイルの何れかを削除するか否かを判断する（ステップＳ１０８）。例えば、書込処理部６０Ａは、アプリケーションからファイルの削除指示を受信したか否かを受付けたか否かを判別することで、ステップＳ１０８の判断を行う。
【００９３】
ステップＳ１０８で肯定判断すると（ステップＳ１０８：Ｙｅｓ）、ステップＳ１１０へ進む。ステップＳ１１０では、主制御部６０が、削除処理を実行する（ステップＳ１１０）（詳細後述）。そして、本ルーチンを終了する。
【００９４】
ステップＳ１０８で否定判断すると（ステップＳ１０８：Ｎｏ）、ステップＳ１１２へ進む。
【００９５】
ステップＳ１１２では、書込処理部６０Ａが、ＳＤカード２８へのアクセスに関するエラーが発生したか否かを判断する（ステップＳ１１２）。ステップＳ１１２で肯定判断すると（ステップＳ１１２：Ｙｅｓ）、ステップＳ１１４へ進む。ステップＳ１１４では、主制御部６０がエラー処理を実行する（ステップＳ１１４）（詳細後述）。そして、本ルーチンを終了する。
【００９６】
ステップＳ１１２で否定判断すると（ステップＳ１１２：Ｎｏ）、ステップＳ１１６へ進む。ステップＳ１１６では、主制御部６０が、画像形成装置１０の動作終了または省電力モードへの移行を判断する（ステップＳ１１６）。例えば、主制御部６０は、画像形成装置１０の動作終了指示または省電力モードへの移行指示を受付けたか否かを判別することで、ステップＳ１１６の判断を行う。画像形成装置１０の動作終了指示や省電力モードへの移行指示は、アプリケーションまたはユーザによるオペレーションパネル１６の操作指示によって、主制御部６０へ通知されるものとすればよい。
【００９７】
ステップＳ１１６で肯定判断すると（ステップＳ１１６：Ｙｅｓ）、ステップＳ１１８へ進む。ステップＳ１１８では、主制御部６０は、後述する終了処理を実行する（ステップＳ１１８）（詳細後述）。そして、本ルーチンを終了する。また、ステップＳ１１６で否定判断した場合（ステップＳ１１６：Ｎｏ）、本ルーチンを終了する。
【００９８】
次に、主制御部６０が実行する初期化処理（図８のステップＳ１０２）の手順を説明する。図９は、初期化処理の手順の一例を示すフローチャートである。
【００９９】
書込処理部６０Ａは、ＳＤカード２８がＳＤカードスロット４２に挿入されると、管理情報５０がＳＤカード２８内にあるか否かを判断する（ステップＳ２００）。ＳＤカード２８内に管理情報５０が有る場合（ステップＳ２００：Ｙｅｓ）、後述するステップＳ２０４へ進む。
【０１００】
ＳＤカード２８内に管理情報５０が無い場合（ステップＳ２００：Ｎｏ）、ステップＳ２０２へ進む。ステップＳ２０２では、書込処理部６０Ａが、新規に管理情報５０を生成する（ステップＳ２０２）。ステップＳ２０２では、書込処理部６０Ａは、ＳＤカード２８内のファイルをすべて検索し、ファイルのファイル名を登録することで、新たな管理情報５０を生成する。このとき、書込処理部６０Ａは、該管理情報５０に、マジックナンバーを付与する。そして、ステップＳ２０４へ進む。
【０１０１】
ステップＳ２０４では、書込処理部６０Ａは、ステップＳ２００でＳＤカード２８から読取った管理情報５０、または、ステップＳ２０２で新たに作成した管理情報５０を、ＤＲＡＭ３０に記憶する（ステップＳ２０４）。そして、本ルーチンを終了する。
【０１０２】
次に、主制御部６０が実行する書込処理（図８のステップＳ１０６）の手順を説明する。図１０は、書込処理の手順の一例を示すフローチャートである。
【０１０３】
ファイルの書込指示を受付けると、書込処理部６０Ａは、ＳＤカード２８が書込不可モードであるか否かを判断する（ステップＳ３００）。ＳＤカード２８が書込不可モードである場合（ステップＳ３００：Ｙｅｓ）、本ルーチンを終了する。一方、ＳＤカード２８が書込不可モードではない場合（ステップＳ３００：Ｎｏ）、ステップＳ３０２へ進む。
【０１０４】
ステップＳ３０２では、書込処理部６０Ａが、書込指示されたファイルを第１の記憶部２４へ書込む（ステップＳ３０２）。
【０１０５】
次に、更新部６０Ｂは、ＤＲＡＭ３０に記憶されている管理情報５０における、該ファイルのファイル名に対応する書込回数を、“１”カウントアップする（ステップＳ３０４）。
【０１０６】
なお、新規のファイルをＳＤカード２８へ書込む場合には、管理情報５０に、該ファイルのファイル名が未登録である。このため、この場合、更新部６０Ｂは、ＤＲＡＭ３０における管理情報５０に、新たなファイル名を追加登録した上で、該ファイル名に対応する書込回数を“１”カウントアップし、対応する作成日を更新すればよい。
【０１０７】
一方、既にＳＤカード２８へ記憶済のファイルの更新や変更により該ファイルの書込みを行う場合には、管理情報５０に、該ファイルのファイル名が登録済である。このため、この場合、更新部６０Ｂは、ＤＲＡＭ３０における管理情報５０から、書込対象のファイルのファイル名を検索し、検索したファイル名に対応する書込回数をカウントアップすればよい。また、このとき、更新部６０Ｂは、該管理情報５０における該ファイル名に対応する最終更新日を更新すればよい。
【０１０８】
次に、更新部６０Ｂは、ＤＲＡＭ３０に記憶されている管理情報５０における、該ファイル名に対応する最終更新日を、該ファイルを更新した最新の日に更新する（ステップＳ３０６）。そして、本ルーチンを終了する。
【０１０９】
次に、主制御部６０が実行する削除処理（図８のステップＳ１１０）の手順を説明する。図１１は、削除処理の手順の一例を示すフローチャートである。
【０１１０】
ファイルの削除指示を受付けると、書込処理部６０Ａは、ＳＤカード２８が書込不可モードであるか否かを判断する（ステップＳ４００）。ＳＤカード２８が書込不可モードである場合（ステップＳ４００：Ｙｅｓ）、本ルーチンを終了する。一方、ＳＤカード２８が書込不可モードではない場合（ステップＳ４００：Ｎｏ）、ステップＳ４０２へ進む。
【０１１１】
ステップＳ４０２では、書込処理部６０Ａが、削除指示されたファイルを第１の記憶部２４から削除する（ステップＳ４０２）。
【０１１２】
次に、更新部６０Ｂは、ＤＲＡＭ３０に記憶されている管理情報５０における、該ファイルのファイル名に対応する書込回数を、“１”カウントアップする（ステップＳ４０４）。
【０１１３】
次に、更新部６０Ｂは、ＤＲＡＭ３０に記憶されている管理情報５０における、該ファイル名に対応する最終更新日を、該ファイルを更新した最新の日に更新する（ステップＳ４０６）。また、更新部６０Ｂは、ＤＲＡＭ３０に記憶されている管理情報５０における、該ファイル名に対応する削除フラグとして、削除済を示す“Ｙｅｓ”を書込む（ステップＳ４０８）。そして、本ルーチンを終了する。
【０１１４】
次に、主制御部６０が実行するエラー処理（図８のステップＳ１１４）の手順を説明する。図１２は、エラー処理の手順の一例を示すフローチャートである。
【０１１５】
まず、出力制御部６０Ｄは、第１の記憶部２４へのアクセスに関するエラーが、ファイルオープンエラーであるか否かを判断する（ステップＳ５００）。ファイルオープンエラーの場合（ステップＳ５００：Ｙｅｓ）、ステップＳ５０２へ進む。
【０１１６】
ステップＳ５０２では、出力制御部６０Ｄは、ファイルオープン対象のファイルのファイル名および該ファイル名に対応するファイル情報を、ＤＲＡＭ３０に記憶された管理情報５０から読取る（ステップＳ５０２）。すなわち、出力制御部６０Ｄは、ＳＤカード２８における、ファイルオープンに失敗したファイルのファイル情報を、ＤＲＡＭ３０の管理情報５０から読取る。
【０１１７】
そして、出力制御部６０Ｄは、ファイル名および該ファイル名に対応するステップＳ５０２で読取ったファイル情報を、エラー情報として出力部１４へ出力する（ステップＳ５０４）。
【０１１８】
このため、出力部１４は、ファイルオープンに失敗したファイルの、ファイル名や、書込回数、ファイルの作成日、ファイルの最終更新日、および削除フラグなどを含むファイル情報を、エラー情報として出力することができる。
【０１１９】
なお、上述したように、ファイル情報は、画像形成装置１０の省エネルギーモードへの移行回数や、画像形成装置１０の動作終了（すなわちシャットダウン）回数を含んでいてもよい。この場合、更新部６０Ｂは、画像形成装置１０が省電力モードへ移行するごとに、管理情報５０における移行回数を“１”カウントアップすればよい。また、更新部６０Ｂは、画像形成装置１０がシャットダウンするときに、管理情報５０における動作終了回数を“１”カウントアップすればよい。
【０１２０】
この場合、出力部１４は、省電力モードへの移行回数や、画像形成装置１０の動作終了回数を更に含むファイル情報を、出力部１４へ出力することができる。
【０１２１】
そして、主制御部６０は、解析処理を実行し（ステップＳ５１６）（詳細後述）、本ルーチンを終了する。
【０１２２】
一方、第１の記憶部２４へのアクセスに関するエラーが、ファイルオープンエラーではない場合（ステップＳ５００：Ｎｏ）、ステップＳ５０６へ進む。ステップＳ５０６では、出力制御部６０Ｄが、マウントエラーであるか否かを判断する（ステップＳ５０６）。
【０１２３】
ステップＳ５０６で否定判断すると（ステップＳ５０６：Ｎｏ）、本ルーチンを終了する。一方、ステップＳ５０６で肯定判断すると（ステップＳ５０６：Ｙｅｓ）、ステップＳ５０８へ進む。
【０１２４】
ステップＳ５０８では、出力制御部６０Ｄは、管理情報５０に付与されているマジックナンバーを用いて、ＳＤカード２８から管理情報５０を読取る（ステップＳ５０８）。
【０１２５】
ここで、マウントエラーは、デバイスドライバ１２Ｄが第１の記憶部２４へのマウントを実施した際に発生するため、出力制御部６０Ｄは、ＳＤカード２８から管理情報５０を検索することが出来ない。このため、出力制御部６０Ｄは、管理情報５０の先頭に付与されているマジックナンバーを元に、ＳＤカード２８全体についてアドレスレベルでの検索を行うことで、管理情報５０を特定し、読み取る。
【０１２６】
次に、出力制御部６０Ｄは、ステップＳ５０８でＳＤカード２８から読取った管理情報５０における、最新の最終更新日を含むファイル情報および対応するファイル名を読取る（ステップＳ５１０）。
【０１２７】
また、出力制御部６０Ｄは、ステップＳ５０８でＳＤカード２８から読取った管理情報５０における、書込回数が上位Ｎ個（Ｎは１以上の整数）のファイル情報と対応するファイル名を読取る（ステップＳ５１２）。例えば、出力制御部６０Ｄは、書込回数が上位３個のファイル情報と、該ファイル情報に対応するファイル名を読取る。
【０１２８】
次に、出力制御部６０Ｄは、ステップＳ５１０およびステップＳ５１２で読取った、ファイル名およびファイル名に対応するファイル情報を、エラー情報として出力部１４へ出力する（ステップＳ５１４）。
【０１２９】
このため、マウントエラーが発生した場合、出力部１４は、管理情報５０における所定条件を満たすファイル情報と、該ファイル情報に対応するファイル名と、をエラー情報として出力することができる。
【０１３０】
そして、主制御部６０は、解析処理を実行し（ステップＳ５１６）（詳細後述）、本ルーチンを終了する。
【０１３１】
次に、解析処理（図１２のステップＳ５１６）の手順を説明する。図１３は、解析処理の手順の一例を示すフローチャートである。
【０１３２】
まず、解析部６０Ｅは、出力制御部６０Ｄが出力したエラー情報から、最後にアクセスされたファイルを特定する（ステップＳ７００）。次に、解析部６０Ｅは、ステップＳ７００で特定したファイルに対するアクセスについて、ファイルアクセスの問題を特定する（ステップＳ７０２）。
【０１３３】
例えば、解析部６０Ｅは、出力制御部６０Ｄが出力したエラー情報から、最後にアクセスされたファイルのファイル名を特定する。そして、解析部６０Ｅは、特定したファイル名のファイルに対するアクセスについての問題を特定する。例えば、解析部６０Ｅは、特定したファイルへのアクセスの際に、過剰な書込や、電源遮断時に書込のためのアクセスが行われたか、などの問題を特定する。
【０１３４】
次に、解析部６０Ｅは、ステップＳ７０２の処理によってファイルアクセスの問題を特定出来たか否かを判断する（ステップＳ７０４）。特定出来た場合（ステップＳ７０４：Ｙｅｓ）、後述するステップＳ７１０へ進む。特定出来なかった場合（ステップＳ７０４：Ｎｏ）、ステップＳ７０６へ進む。
【０１３５】
ステップＳ７０６では、解析部６０Ｅは、出力制御部６０Ｄが出力したエラー情報を読取ることで、書込回数が閾値以上のファイルを特定する（ステップＳ７０６）。そして、解析部６０Ｅは、ステップＳ７０６で特定したファイルに対するアクセスについて、ファイルアクセスの問題を特定する（ステップＳ７０８）。
【０１３６】
例えば、解析部６０Ｅは、特定したファイルへのアクセスの際に、過剰な書込や、電源遮断時に書込のためのアクセスが行われたか、などを特定する。この処理によって、解析部６０Ｅは、エラーの要因となったファイルアクセスの問題を特定する。また、書込回数が閾値以上のファイルが１つであった場合には、該ファイルのファイル名に対応する書込回数などのファイル情報から、異常な回数の書込みをしていないか、などを特定する。
【０１３７】
そして、ステップＳ７１０へ進む。ステップＳ７１０では、解析部６０Ｅは、ステップＳ７０２またはステップＳ７０６の特定結果を、出力制御部６０Ｄを介して出力部１４から出力する（ステップＳ７１０）。そして、本ルーチンを終了する。
【０１３８】
次に、主制御部６０が実行する終了処理（図８のステップＳ１１８）の手順を説明する。図１４は、終了処理の手順の一例を示すフローチャートである。
【０１３９】
主制御部６０の記憶制御部６０Ｃは、画像形成装置１０の動作終了または省電力モードへの移行を判別すると、ＳＤカード２８のアンマウント処理を開始する（ステップＳ６００）。このとき、記憶制御部６０Ｃは、ＤＲＡＭ３０の管理情報５０を、ＳＤカード２８へ記憶する（ステップＳ６０２）。
【０１４０】
上述したように、更新部６０Ｂは、ＳＤカード２８に対して書込を行う度に、ＤＲＡＭ３０に記憶された管理情報５０を更新する。このため、タイミングによっては、ＤＲＡＭ３０に記憶された管理情報５０に含まれる情報の一部が、ＳＤカード２８に記憶されているＤＲＡＭ３０に含まれていない場合がある。そこで、更新部６０Ｂは、ＤＲＡＭ３０に記憶されている管理情報５０に含まれる情報（ファイル名、ファイル情報）を、ＳＤカード２８の管理情報５０にコピーすることで、データの同期を行う。この処理によって、ＳＤカード２８の管理情報５０が、最新の状態に更新される。そして、本ルーチンを終了する。
【０１４１】
以上説明したように、本実施の形態の画像形成装置１０（情報処理装置）は、更新部６０Ｂと、記憶制御部６０Ｃと、出力制御部６０Ｄと、を備える。更新部６０Ｂは、不揮発性の第１の記憶部２４に対して書込または削除を行うたびに、揮発性の第２の記憶部３１に記憶された、ファイルのファイル名と書込回数を含むファイル情報とを対応付けた管理情報５０における、書込削除対象の前記ファイルの書込回数を更新する。記憶制御部６０Ｃは、管理情報５０を第１の記憶部２４に記憶する。出力制御部６０Ｄは、第１の記憶部２４へのアクセスに関するエラーが発生した場合、管理情報５０に基づいて、エラーに関するファイルを示すエラー情報を出力する。
【０１４２】
このように、本実施の形態の画像形成装置１０は、第１の記憶部２４に対して書込または削除を行うたびに、管理情報５０における、書込削除対象のファイルごとに、書込回数を更新する。そして、出力制御部６０Ｄは、管理情報５０に基づいて、エラーに関するファイルを示すエラー情報を出力する。
【０１４３】
従って、本実施の形態の画像形成装置１０は、第１の記憶部２４（外部メモリ）へのアクセスに関するエラーの要因となったファイルに関する情報を、提供することができる。
【０１４４】
また、出力制御部６０Ｄは、エラーが第１の記憶部２４に記憶されたファイルのファイルオープンエラーである場合、第２の記憶部３１に記憶された管理情報５０に基づいたエラー情報を出力する。
【０１４５】
また、出力制御部６０Ｄは、管理情報５０における、ファイルオープン対象のファイルのファイル名および該ファイル名に対応するファイル情報を、エラー情報として出力する。
【０１４６】
出力制御部６０Ｄは、エラーが第１の記憶部２４のマウントエラーである場合、第１の記憶部２４に記憶された管理情報５０に基づいたエラー情報を出力する。
【０１４７】
出力制御部６０Ｄは、エラーがマウントエラーである場合、管理情報５０における所定条件を満たすファイル情報を、エラー情報として出力する。
【０１４８】
出力制御部６０Ｄは、エラーがマウントエラーである場合、管理情報５０に付与されたマジックナンバーを第１の記憶部２４から検索することによって、第１の記憶部２４に記憶された管理情報５０を特定し、該管理情報５０における所定条件を満たすファイル情報を、エラー情報として出力する。
【０１４９】
ファイル情報は、対応するファイル名のファイルの作成日、該ファイルの最終更新日、該ファイルが削除済か否かを示す削除フラグ、の少なくとも１つと、前記書込回数と、を含む。
【０１５０】
記憶制御部６０Ｃは、画像形成装置１０（情報処理装置）の動作終了時、または、省電力モードへの移行時に、前記管理情報を前記第１の記憶部に記憶する。
【０１５１】
また、本実施の形態の情報処理方法は、不揮発性の第１の記憶部２４に対して書込または削除を行うたびに、揮発性の第２の記憶部３１に記憶された、ファイルのファイル名と書込回数を含むファイル情報とを対応付けた管理情報５０における、書込削除対象のファイルの書込回数を更新するステップと、管理情報５０を第１の記憶部２４に記憶するステップと、第１の記憶部２４へのアクセスに関するエラーが発生した場合、管理情報５０に基づいて、エラーに関するファイルを示すエラー情報を出力するステップと、を含む。
【０１５２】
また、本実施の形態のプログラムは、不揮発性の第１の記憶部２４に対して書込または削除を行うたびに、揮発性の第２の記憶部３１に記憶された、ファイルのファイル名と書込回数を含むファイル情報とを対応付けた管理情報５０における、書込削除対象のファイルの書込回数を更新するステップと、管理情報５０を第１の記憶部２４に記憶するステップと、第１の記憶部２４へのアクセスに関するエラーが発生した場合、管理情報５０に基づいて、エラーに関するファイルを示すエラー情報を出力するステップと、をコンピュータに実行させるためのプログラムである。
【０１５３】
なお、上述した実施の形態における、画像形成装置１０（情報処理装置）で実行する上記処理を実行するためのプログラムは、インストール可能な形式または実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）メモリ等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよいし、インターネット等のネットワーク経由で提供または配布するように構成してもよい。また、各種プログラムを、ＲＯＭ等に予め組み込んで提供するように構成してもよい。
【０１５４】
また、上述した実施の形態における、画像形成装置１０（情報処理装置）の各々で実行されるプログラムは、上記各機能部を含むモジュール構成となっており、実際のハードウェアとしては、例えば、ＣＰＵ３２（プロセッサ回路）がＲＯＭまたはＨＤＤからプログラムを読出して実行することにより、上述した各機能部がＲＡＭ（ＤＲＡＭ３０、ＮＶＲＡＭ３８）上にロードされ、上述した各機能部がＲＡＭ上に生成されるようになっている。なお、画像形成装置１０は、上述した各機能部の一部または全部を、ＡＳＩＣ３４やＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）などの専用のハードウェアを用いて実現することも可能である。
【０１５５】
なお、上記には、実施の形態を説明したが、上記実施の形態は、例として提示したものであり、発明の範囲を限定することは意図していない。上記新規な実施の形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。上記実施の形態および変形例は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１５６】
１０  画像形成装置
１４  出力部
２４  第１の記憶部
２６  ＵＳＢメモリ
２８  ＳＤカード
３０  ＤＲＡＭ
３１  第２の記憶部
３８  ＮＶＲＡＭ
６０Ｂ  更新部
６０Ｃ  記憶制御部
６０Ｄ  出力制御部
【先行技術文献】
【特許文献】
【０１５７】
【特許文献１】特開２０１７−１４２７７６号公報
【特許文献２】特開２０１３−２３５３５８号公報
【図１】
2019128834.tif 000003
【図２】
2019128834.tif 000004
【図３】
2019128834.tif 000005
【図４】
2019128834.tif 000006
【図５】
2019128834.tif 000007
【図６】
2019128834.tif 000008
【図７】
2019128834.tif 000009
【図８】
2019128834.tif 000010
【図９】
2019128834.tif 000011
【図１０】
2019128834.tif 000012
【図１１】
2019128834.tif 000013
【図１２】
2019128834.tif 000014
【図１３】
2019128834.tif 000015
【図１４】
2019128834.tif 000016