(57)【要約】【課題】複数の記憶領域から構成され記憶領域単位でデータが読み書きされる記憶媒体におけるデータの更新中に電力供給が停止したことによるデータの不整合の発生を軽減すること。【解決手段】複数の記憶領域から構成される記憶媒体に対して記憶領域単位でデータの読み書きを制御する記憶媒体制御装置であって、記憶媒体に格納されているデータを更新するデータ更新部を含み、データ更新部は、データを記憶領域から読み出すための情報であるデータ管理情報に基づいて、記憶領域からデータを読み出して更新し、更新後のデータを、更新前のデータが格納されている記憶領域とは別の記憶領域に格納し、更新後のデータを別の記憶領域に格納した後に、データ管理情報を、別の記憶領域から更新後のデータを読み出すためのデータ管理情報に更新することを特徴とする。【選択図】図１０
2017027203.tif 000002
【特許請求の範囲】
【請求項１】
複数の記憶領域から構成される記憶媒体に対して前記記憶領域単位でデータの読み書きを制御する記憶媒体制御装置であって、
前記記憶媒体に格納されている前記データを更新するデータ更新部
を含み、
前記データ更新部は、
前記データを前記記憶領域から読み出すための情報であるデータ管理情報に基づいて、前記記憶領域から前記データを読み出して更新し、
更新後の前記データを、更新前の前記データが格納されている前記記憶領域とは別の前記記憶領域に格納し、
前記更新後のデータを前記別の記憶領域に格納した後に、前記データ管理情報を、前記別の記憶領域から前記更新後のデータを読み出すためのデータ管理情報に更新する
ことを特徴とする記憶媒体制御装置。
【請求項２】
１つの前記記憶領域は、１つのデータファイルを格納し、
前記データ更新部は、前記記憶領域に格納された前記１つのデータファイルを１つのデータとして更新する
ことを特徴とする請求項１に記載の記憶媒体制御装置。
【請求項３】
１つの前記記憶領域は、複数の論理的な領域にさらに分割され、
１つの前記論理的な領域は、１つのデータファイルを格納し、
前記データ更新部は、前記記憶領域を構成する前記複数の論理的な領域それぞれに格納されるすべてのデータファイルを１つのデータとして更新する
ことを特徴とする請求項１に記載の記憶媒体制御装置。
【請求項４】
前記データ管理情報は、前記記憶媒体においてデータファイルとして１つ格納される
ことを特徴とする請求項１〜３のいずれか１項に記載の記憶媒体制御装置。
【請求項５】
前記データの認証処理を実行するタイミングを示す認証処理タイミング情報を設定する認証処理設定部と、
設定された前記認証処理タイミング情報に基づいて、前記データの認証処理を実行する認証処理部と
を含むことを特徴とする請求項１〜４のいずれか１項に記載の記憶媒体制御装置。
【請求項６】
前記認証処理部は、前記データに対して設定された前記認証処理タイミング情報が前記記憶媒体を利用可能な状態にする認識処理のタイミングを示す場合、前記認識処理の際に、前記データの認証処理を実行する
ことを特徴とする請求項５に記載の記憶媒体制御装置。
【請求項７】
前記認証処理部は、前記データに対して設定された前記認証処理タイミング情報が前記データにアクセスするタイミングを示す場合、前記データにアクセスする際に、前記データの認証処理を実行する
ことを特徴とする請求項５に記載の記憶媒体制御装置。
【請求項８】
複数の記憶領域から構成される記憶媒体に対して前記記憶領域単位でデータの読み書きを制御する記憶媒体制御プログラムであって、
前記データを前記記憶領域から読み出すための情報であるデータ管理情報に基づいて、前記記憶領域から前記データを読み出して更新するステップと、
更新後の前記データを、更新前の前記データが格納されている前記記憶領域とは別の前記記憶領域に格納するステップと、
前記更新後のデータを前記別の記憶領域に格納した後に、前記データ管理情報を、前記別の記憶領域から前記更新後のデータを読み出すためのデータ管理情報に更新するステップと
を情報処理装置に実行させることを特徴とする記憶媒体制御プログラム。
【請求項９】
複数の記憶領域から構成される記憶媒体に対して前記記憶領域単位でデータの読み書きを制御する記憶媒体制御方法であって、
前記データを前記記憶領域から読み出すための情報であるデータ管理情報に基づいて、前記記憶領域から前記データを読み出して更新し、
更新後の前記データを、更新前の前記データが格納されている前記記憶領域とは別の前記記憶領域に格納し、
前記更新後のデータを前記別の記憶領域に格納した後に、前記データ管理情報を、前記別の記憶領域から前記更新後のデータを読み出すためのデータ管理情報に更新する
ことを特徴とする記憶媒体制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶媒体制御装置、記憶媒体制御プログラム及び記憶媒体制御方法に関する。
【背景技術】
【０００２】
近年、ＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ：複合機）として構成される画像処理装置やタブレット端末等の様々な情報処理装置に、ＮＡＮＤ型フラッシュメモリが搭載されている場合が多い。
【０００３】
このようなＮＡＮＤ型フラッシュメモリにおいて読み書きされるファイルのデータを管理するための方式（以降、「ファイルシステム」とする）として、ウェアレベリングに対応した処理の軽い簡易なファイルシステムが提案されている（例えば、特許文献１を参照）。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ＮＡＮＤ型フラッシュメモリにおいて読み書きされるデータを更新中に、停電等により電力供給が停止すると、データの更新が不完全な状態になったり、データが破損したりする等、データの不整合が発生する場合がある。特許文献１に開示されたファイルシステムは、ＮＡＮＤ型フラッシュメモリにおいて読み書きされるデータの更新中に電力供給が停止することによるデータの不整合の発生回避には対応していない。
【０００５】
なお、このような課題は、ＮＡＮＤ型フラッシュメモリだけでなく、複数の記憶領域から構成され記憶領域単位でデータが読み書きされる他の記憶媒体においても同様に生じ得る。
【０００６】
本発明は、このような課題を解決するためになされたものであり、複数の記憶領域から構成され記憶領域単位でデータが読み書きされる記憶媒体におけるデータの更新中に電力供給が停止したことによるデータの不整合の発生を軽減することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明の一態様は、複数の記憶領域から構成される記憶媒体に対して前記記憶領域単位でデータの読み書きを制御する記憶媒体制御装置であって、前記記憶媒体に格納されている前記データを更新するデータ更新部を含み、前記データ更新部は、前記データを前記記憶領域から読み出すための情報であるデータ管理情報に基づいて、前記記憶領域から前記データを読み出して更新し、更新後の前記データを、更新前の前記データが格納されている前記記憶領域とは別の前記記憶領域に格納し、前記更新後のデータを前記別の記憶領域に格納した後に、前記データ管理情報を、前記別の記憶領域から前記更新後のデータを読み出すためのデータ管理情報に更新することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、複数の記憶領域から構成され記憶領域単位でデータが読み書きされる記憶媒体におけるデータの更新中に電力供給が停止したことによるデータの不整合の発生を軽減することができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施形態に係る画像処理装置のハードウェア構成を例示するブロック図である。
【図２】本発明の実施形態に係る画像処理装置の機能構成を例示するブロック図である。
【図３】本発明の実施形態に係るＮＡＮＤの構成を例示する概念図である。
【図４】本発明の実施形態に係るＮＡＮＤのファイルシステムを例示する図である。
【図５】本発明の実施形態に係るパーティション情報の内容を例示する図である。
【図６】本発明の実施形態に係るファイルメタデータに含まれる情報の内容を例示する図である。
【図７】本発明の実施形態に係る主制御部のＮＡＮＤの制御に関する機能構成を例示するブロック図である。
【図８】本発明の実施形態に係るデータ更新部によるデータの更新態様を例示する図である。
【図９】本発明の実施形態に係るデータ更新部によるデータの更新態様を例示する図である。
【図１０】本発明の実施形態に係るデータ更新部によるデータの更新態様を例示する図である。
【図１１】本発明の実施形態に係るデータ更新部によるデータの更新態様を例示する図である。
【図１２】本発明の実施形態に係るデータ更新部によるデータの更新態様を例示する図である。
【図１３】本発明の実施形態に係るデータ更新部によるデータの更新態様を例示する図である。
【図１４】本発明の実施形態に係るデータ更新部によるデータの更新態様を例示する図である。
【図１５】本発明の実施形態に係るデータ削除部によるデータ削除処理の動作を例示するフローチャートである。
【図１６】本発明の実施形態に係る認証処理部による認証処理の動作を例示するフローチャートである。
【図１７】本発明の実施形態に係る認証処理部による認証処理の動作を例示するフローチャートである。
【発明を実施するための形態】
【００１０】
以下、図面を参照して、本発明の実施形態を詳細に説明する。本実施形態においては、撮像機能、画像形成機能及び通信機能等を備えることにより、プリンタ、ファクシミリ、スキャナ、複写機として利用可能なＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ：複合機）としての画像処理装置を例として説明する。
【００１１】
図１は、本実施形態に係る画像処理装置１のハードウェア構成を説明する。図１に示すように、本実施形態に係る画像処理装置１は、一般的なサーバやＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）等と同様の構成を含む。
【００１２】
すなわち、本実施形態に係る画像処理装置１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）３０、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）４０、Ｉ／Ｆ５０及びＮＡＮＤ９０がバス８０を介して接続された構成である。また、Ｉ／Ｆ５０にはＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）６０及び操作部７０が接続されている。この他、画像処理装置１の場合、画像形成出力やスキャンを実行する専用デバイスが含まれる。
【００１３】
ＣＰＵ１０は演算手段であり、画像処理装置１全体の動作を制御する。ＲＡＭ２０は、情報の高速な読み書きが可能な揮発性の記憶媒体であり、ＣＰＵ１０が情報を処理する際の作業領域として用いられる。ＲＯＭ３０は、読み出し専用の不揮発性記憶媒体であり、ファームウェア等のプログラムが格納されている。
【００１４】
ＨＤＤ４０は、情報の読み書きが可能な不揮発性の記憶媒体であり、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）や各種の制御プログラム、アプリケーション・プログラム等が格納される。なお、ＨＤＤの他、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の半導体記憶装置を用いても良い。
【００１５】
ＮＡＮＤ９０は、ＮＡＮＤ型フラッシュメモリであり、ＲＡＭ２０やＨＤＤ４０よりも情報の高速な読み書きが可能な不揮発性の記憶媒体である。なお、本実施形態に係る要旨の１つは、ＮＡＮＤ９０に対するデータの読み書き制御にある。詳細は後述する。
【００１６】
Ｉ／Ｆ５０は、バス８０と各種のハードウェアやネットワーク等を接続し制御する。ＬＣＤ６０は、使用者が画像処理装置１の状態を確認するための視覚的ユーザインタフェースである。操作部７０は、キーボード、マウス、各種のハードボタン、タッチパネル等、使用者が画像処理装置１に情報を入力するためのユーザインタフェースである。
【００１７】
このようなハードウェア構成において、ＲＯＭ３０やＨＤＤ４０若しくは図示しない光学ディスク等の記憶媒体に格納されたプログラムがＲＡＭ２０に読み出され、ＣＰＵ１０がそれらのプログラムに従って演算を行うことによりソフトウェア制御部が構成される。このようにして構成されたソフトウェア制御部と、ハードウェアとの組み合わせによって、本実施形態に係る画像処理装置１の機能を実現する機能ブロックが構成される。
【００１８】
次に、本実施形態に係る画像処理装置１の機能について説明する。図２は、本実施形態に係る画像処理装置１の機能構成を例示するブロック図である。図２に示すように、本実施形態に係る画像処理装置１は、コントローラ１００、ＡＤＦ（Ａｕｔｏ  Ｄｏｃｕｍｅｎｎｔ  Ｆｅｅｄｅｒ：原稿自動搬送装置）１１０、スキャナユニット１１１、排紙トレイ１１２、ディスプレイパネル１１３、給紙テーブル１１４、プリントエンジン１１５、排紙トレイ１１６及びネットワークＩ／Ｆ１１７を有する。
【００１９】
また、コントローラ１００は、主制御部１３０、エンジン制御部１０１、ネットワーク制御部１０２、画像処理部１０３及び操作表示制御部１０４を有する。図２に示すように、本実施形態に係る画像処理装置１は、スキャナユニット１１１、プリントエンジン１１５を有する複合機として構成されている。なお、図２においては、電気的接続を実線の矢印で示しており、用紙の流れを破線の矢印で示している。
【００２０】
ディスプレイパネル１１３は、画像処理装置１の状態を視覚的に表示する出力インタフェースであると共に、タッチパネルとしてユーザが画像処理装置１を直接操作し若しくは画像処理装置１に対して情報を入力する際の入力インタフェース（操作部）でもある。ネットワークＩ／Ｆ１１７は、画像処理装置１がネットワークを介して他の機器と通信するためのインタフェースである。ネットワークインタフェースＩ／Ｆ１１７には、Ｅｔｈｅｒｎｅｔ（登録商標）、ＵＳＢ、Ｂｌｕｅｔｏｏｔｈ（登録商標）、Ｗｉ−Ｆｉ（Ｗｉｒｅｌｅｓｓ  Ｆｉｄｅｌｉｔｙ）等のインタフェースが用いられる。
【００２１】
コントローラ１００は、ソフトウェアとハードウェアとの組み合わせによって構成される。具体的には、ＲＯＭ３０やＨＤＤ４０等の不揮発性記憶媒体に格納されたファームウェア等の制御プログラムがＲＡＭ２０にロードされる。そして、それらのプログラムに従ってＣＰＵ１０が演算を行うことにより構成されるソフトウェア制御部と集積回路などのハードウェアとによってコントローラ１００が構成される。コントローラ１００は、画像処理装置１全体を制御する制御部として機能する。
【００２２】
主制御部１３０は、コントローラ１００に含まれる各部を制御する役割を担い、コントローラ１００の各部に命令を与える。エンジン制御部１０１は、プリントエンジン１１５やスキャナユニット１１１等を制御若しくは駆動する駆動手段としての役割を担う。ネットワーク制御部１０２は、ネットワークＩ／Ｆ１１７を介して画像処理装置１に接続された情報処理装置等から入力される信号や命令を主制御部１３０に入力する。
【００２３】
また、主制御部１３０は、ネットワーク制御部１０２を制御し、ネットワークＩ／Ｆ１１７を介して他の装置にアクセスする。また、本実施形態においては、ＮＡＮＤ９０に対するデータの読み書き制御が主制御部１３０により行われる場合を例として説明する。この場合、主制御部１３０は、記憶媒体に対する情報の読み書きを制御する記憶媒体制御装置として機能し、主制御部１３０の制御プログラムは、記憶媒体制御プログラムとして機能する。記憶媒体制御装置として機能する主制御部１３０の機能構成の詳細は後述する。
【００２４】
画像処理部１０３は、主制御部１３０の制御に従い、印刷出力すべき画像情報に基づいて描画情報を生成する。この描画情報とは、画像形成部であるプリントエンジン１１５が画像形成動作において形成すべき画像を描画するための情報である。また、画像処理部１０３は、スキャナユニット１１１から入力される撮像データを処理し、画像データを生成する。この画像データとは、スキャナ動作の結果物として画像処理装置１に格納され若しくはネットワークＩ／Ｆ１１７を介して他の機器に送信される情報である。操作表示制御部１０４は、ディスプレイパネル１１３に情報表示を行い若しくはディスプレイパネル１１３を介して入力された情報を主制御部１３０に通知する。
【００２５】
画像処理装置１がプリンタとして動作する場合は、まず、ネットワーク制御部１０２が、ネットワークＩ／Ｆ１１７を介してＰＣ等の他の装置から印刷ジョブを受信する。ネットワーク制御部１０２は、受信した印刷ジョブを主制御部１３０に転送する。主制御部１３０は、印刷ジョブを受信すると、画像処理部１０３を制御して印刷ジョブに含まれる文書情報若しくは画像情報に基づいて描画情報を生成する。
【００２６】
画像処理部１０３によって描画情報が生成されると、エンジン制御部１０１は、生成された描画情報に基づき、給紙テーブル１１４から搬送される記録媒体である用紙に対して画像形成を実行する。なお、記録媒体としては、上述した用紙の他、フィルム、プラスチック等のシート状の材料で、画像形成出力の対象物となるものであれば採用可能である。プリントエンジン１１５の具体的態様としては、インクジェット方式による画像形成機構や電子写真方式による画像形成機構等を用いることが可能である。プリントエンジン１１５によって画像形成が施された文書は排紙トレイ１１６に排紙される。
【００２７】
画像処理装置１がスキャナ、すなわち画像読取装置として動作する場合は、スキャン実行指示に応じて、操作表示制御部１０４若しくはネットワーク制御部１０２が主制御部１３０にスキャン実行信号を転送する。スキャン実行指示は、ユーザによるディスプレイパネル１１３の操作若しくはネットワークＩ／Ｆ１１７を介して外部の機器から入力される。主制御部１３０は、受信したスキャン実行信号に基づき、エンジン制御部１０１を制御する。
【００２８】
エンジン制御部１０１は、ＡＤＦ１１０を駆動し、ＡＤＦ１１０にセットされた撮像対象原稿をスキャナユニット１１１に搬送する。また、エンジン制御部１０１は、スキャナユニット１１１を駆動し、ＡＤＦ１１０から搬送される原稿を撮像する。また、ＡＤＦ１１０に原稿がセットされておらず、スキャナユニット１１１に直接原稿がセットされた場合、スキャナユニット１１１は、エンジン制御部１０１の制御に従い、セットされた原稿を撮像する。即ち、スキャナユニット１１１が撮像部として動作する。
【００２９】
撮像動作においては、スキャナユニット１１１に含まれるＣＣＤ等の撮像素子が原稿を光学的に走査し、光学情報に基づいた撮像情報が生成される。エンジン制御部１０１は、スキャナユニット１１１が生成した撮像情報を画像処理部１０３に転送する。
【００３０】
画像処理部１０３は、主制御部１３０の制御に従い、エンジン制御部１０１から受信した撮像情報に基づき画像情報を生成する。画像処理部１０３が生成した画像情報はＨＤＤ４０等の画像処理装置１に装着された記憶媒体に保存される。画像処理部１０３によって生成された画像情報は、ユーザの指示に応じてそのままＨＤＤ４０等に格納され若しくはネットワークＩ／Ｆ１１７を介して、ネットワーク制御部１０２により外部の装置に送信される。
【００３１】
また、画像処理装置１が複写機として動作する場合は、エンジン制御部１０１がスキャナユニット１１１から受信した撮像情報若しくは画像処理部１０３が生成した画像情報に基づき、画像処理部１０３が描画情報を生成する。その描画情報に基づいてプリンタ動作の場合と同様に、エンジン制御部１０１がプリントエンジン１１５を駆動する。
【００３２】
次に、本実施形態に係るＮＡＮＤ９０の構成の詳細を説明する。図３は、本実施形態に係るＮＡＮＤ９０の構成を例示する概念図である。図３に示すように、本実施形態に係るＮＡＮＤ９０は、複数のブロックから構成され、各ブロックは、データが読み書きされる複数の記憶領域（以降、「ページ」とする）から構成される。さらに、各ページは、論理的に分割された領域である複数のサブページ（例えば、２のべき乗の数のサブページ）から構成される。
【００３３】
本実施形態においては、１つのサブページに１つのファイルが格納される。また、ＮＡＮＤ９０に対するデータの書込み制御は、ページ単位で行われ、論理的な分割領域であるサブページ単位で行われることはない。
【００３４】
図４は、本実施形態に係るＮＡＮＤ９０のファイルシステムを例示する図である。図４に示すように、本実施形態に係るＮＡＮＤ９０の各ページは、スーパーブロック、パーティションブロック、ファイルデータブロック及びファイルデータブロックに格納されているファイルのメタデータを格納するファイルメタデータブロックに分類される。
【００３５】
スーパーブロックは、ファイルシステム全体を管理するための各種情報を格納するページである。パーティションブロックは、各ページ及び各サブページ（以降、総じて「パーティション」とする）に関する各種情報を管理するための情報を格納するページである。図５は、パーティションブロックに格納される各種情報（以降、「パーティション情報」とする）の内容を例示する図である。図５に示すように、パーティション情報は、“全体ページ数”、“作成日時”、“ファイルメタデータ管理情報”、“サブページ空き領域”及び“アクセス権”等を含む。
【００３６】
“全体ページ数”は、ＮＡＮＤ９０を構成するパーティション全体のページ数を示し、“作成日時”は、パーティションの作成日時を示す。“ファイルメタデータ管理情報”は、後述するファイルメタデータを使用しているか否かを識別する情報である。具体的には、例えば、“ファイルメタデータ管理情報”は、ファイルメタデータを格納する各サブページのページ番号を格納する固定長の格納領域である。格納領域に格納される各ページ番号は、未使用であることを示す番号（例えば、“０ｘｆｆｆｆｆｆｆｆ”）及び使用されているサブページのページ番号（例えば、サブページのアドレス）のいずれかである。
【００３７】
“サブページ空き領域”は、各サブページが空き領域であるか否かを示す情報（以降、「空き領域情報」とする）である。例えば、空き領域情報は、空き領域である場合「１」を示し、空き領域ではない場合「０」を示す１ビットの値である。“アクセス権”は、パーティションに対するアクセス情報（読み出しのみ、読み書き可能等）である。
【００３８】
ファイルデータブロックは、ファイルを格納するページである。ファイルの数に応じて、複数のページがファイルデータブロックとなり、各ファイルデータブロックには、ファイルデータブロックの番号が付与される。例えば、図４に示すように「１」が付与されたファイルデータブロックは「ファイル（１）」と表すものとする。
【００３９】
ファイルメタデータブロックは、ファイルデータブロックに格納されているファイルそれぞれのメタデータを格納するページである。なお、ファイルメタデータブロックは、ファイルデータブロックの番号に対応する。例えば、図４に示した「ファイル（１）」のファイルデータブロックに格納されている各ファイルのメタデータを格納するファイルメタデータブロックは「ファイルメタデータ（１）」と表すものとする。
【００４０】
図６は、ファイルメタデータに含まれる情報の内容を例示する図である。図６に示すように、ファイルメタデータは、“ファイル名”、“ファイルサイズ”、“作成日時”、“アクセス権”“ファイル位置情報”及び“認証処理タイミング情報”等の情報を含む。“ファイル名”は、ファイルの名前を示し、“ファイルサイズ”はファイルのサイズを示し、“作成日時”は、ファイルが作成された日時を示し、“アクセス権”は、ファイルに対するアクセス情報（読み出しのみ、読み書き可能等）を示す。
【００４１】
“ファイル位置情報”は、ファイルが格納されているサブページの位置（例えば、サブページのアドレスを示すページ番号）を示す。“認証処理タイミング情報”は、ファイルが改ざんされていないかをチェックする処理（以降、「認証処理」とする）を実行するタイミングを示す情報である。認証処理に関する詳細は後述する。
【００４２】
すなわち、主制御部１３０がＮＡＮＤ９０に格納されているデータを読み出す際には、まず、パーティションブロックに格納されているパーティション情報からファイルメタデータが格納されている位置情報を取得する。そして、主制御部１３０は、取得した位置に格納されているファイルメタデータに含まれるファイルの位置情報を取得して、取得した位置情報が示すアドレスにアクセスして格納されているファイルを読み出す。すなわち、パーティション情報は、データを記憶媒体から読み出すためのデータ管理情報である。
【００４３】
次に、本実施形態に係る主制御部１３０の機能のうちＮＡＮＤ９０に対するデータの読み書き制御に関する機能を説明する。図７は、本実施形態に係る主制御部１３０の機能のうちＮＡＮＤ９０に対するデータの読み書き制御に関する機能構成を例示するブロック図である。図７に示すように、本実施形態に係る主制御部１３０は、データ更新部１３１、データ削除部１３２、認証処理設定部１３３及び認証処理部１３４から構成される。
【００４４】
データ更新部１３１は、ＮＡＮＤ９０に格納されているデータを更新する。図８から図１４は、データ更新部１３１によるデータの更新態様を例示する図である。なお、図８から図１４においては、ファイルデータを「データ」と記載する。
【００４５】
例えば、データ（１）及びデータ（２）のブロックに格納されているファイルを更新する場合、データ更新部１３１は、まず、図８に示すように、データ（１）及びデータ（２）のブロックに格納されているデータを読み出して、ＲＡＭ２０に格納する。そして、データ更新部１３１は、図９に示すように、ＲＡＭ２０に格納したデータ（１）及びデータ（２）のブロックに格納されている更新対象のファイルを更新する。ファイル更新後のデータ（１）及びデータ（２）をそれぞれデータ（１´）及びデータ（２´）とする。
【００４６】
ファイルを更新したデータ更新部１３１は、ＲＡＭ２０に格納されている更新後のデータ（１´）及びデータ（２´）のブロックに格納されているデータをＮＡＮＤ９０に書き出す。この際、更新後のデータブロックは、図１０に示すように、更新前のデータブロックとは別のページ（記憶領域）に格納される。図１０に示した状態では、更新されたファイルのメタデータに含まれる“ファイル位置情報”が更新前のファイルを格納するサブページの位置を示しているので、データ（１´）及びデータ（２´）のブロックのデータは、参照不可の状態である。
【００４７】
次に、データ更新部１３１は、図１１に示すように、更新されたデータブロックに対応するファイルメタデータ（ここでは、ファイルメタデータ（１）を例とする）を読み出して、ＲＡＭ２０に格納する。そして、データ更新部１３１は、図１１に示すように、ＲＡＭ２０に格納したファイルメタデータを更新する。これにより、ファイルメタデータに含まれる図６に示した“ファイル位置情報”が更新前のデータ（１）のブロックのサブページのアドレスから更新後のデータ（１´）のブロックのサブページのアドレスに変更される。
【００４８】
ファイルメタデータを更新したデータ更新部１３１は、ＲＡＭ２０に格納されている更新後のファイルメタデータ（１´）をＮＡＮＤ９０に書き出す。この際、更新後のファイルメタデータは、図１２に示すように、更新前のファイルメタデータとは別のページに格納される。図１２に示した状態では、パーティション情報に含まれる“ファイルメタデータ管理情報”が更新前のファイルメタデータを格納するサブページの位置を示しているので、ファイルメタデータ（１´）は参照不可の状態である。
【００４９】
次に、データ更新部１３１は、図１３に示すように、パーティションブロックに格納されているパーティション情報を読み出して、ＲＡＭ２０に格納する。そして、データ更新部１３１は、図１３に示すように、ＲＡＭ２０に格納したパーティション情報を更新する。これにより、パーティション情報に含まれる図５に示した“ファイルメタデータ管理情報”及び“サブページ空き領域”等が更新される。
【００５０】
パーティション情報を更新したデータ更新部１３１は、図１４に示すように、変更前のパーティション情報を、ＲＡＭ２０に格納されている変更後のパーティション情報で上書きする。これにより初めて、更新後のファイルが参照可能な状態になる一方で、更新前のファイルが参照不可の状態になる。
【００５１】
このような構成により、例えば、データ更新部１３１による図８又は図９に示した処理を行っている際に、電力供給が停止しても、ＮＡＮＤ９０に格納されているデータの状態には変更がない。また、例えば、データ更新部１３１による図１０に示した処理を行っている際に、電力供給が停止しても、ＮＡＮＤ９０に変更後のデータが格納されているが、参照不可の状態であるので、アクセスされるデータには変更がない。
【００５２】
また、例えば、データ更新部１３１による図１１に示した処理を行っている際に、電力供給が停止しても、ＮＡＮＤ９０に格納されているファイルメタデータの状態には変更がないので、アクセスされるデータにも変更がない。また、例えば、データ更新部１３１による図１２に示した処理を行っている際に、電力供給が停止しても、ＮＡＮＤ９０に変更後のファイルメタデータが格納されているが、参照不可の状態であるので、アクセスされるファイルメタデータには変更がない。
【００５３】
また、例えば、データ更新部１３１による図１３に示した処理を行っている際に、電力供給が停止しても、ＮＡＮＤ９０に格納されているパーティション情報には変更がないので、アクセスされるファイルメタデータにも変更がない。すなわち、アクセスされるファイルにも変更がない。
【００５４】
図７の説明に戻る。データ削除部１３２は、参照されていないデータを削除する。上述した図１３に示した処理において、パーティション情報に含まれる図５に示した“ファイルメタデータ管理情報”及び“サブページ空き領域”が更新される。これにより、“ファイルメタデータ管理情報”において更新前のファイルメタデータを格納するサブページ番号が未使用であることを示す番号に更新される。
【００５５】
また、“サブページ空き領域”においてファイルメタデータを格納するサブページの空き領域情報が「１」に更新される。なお、サブページやページが空きであるとは、サブページやページにデータが格納されていない場合の他、更新前のファイルのように更新後不要になったファイルが格納されている場合も含む。
【００５６】
図１５は、データ削除部１３２によるデータ削除処理の動作を例示するフローチャートである。図１５に示すように、データ削除部１３２は、パーティション情報の“サブページ空き領域情報”を参照し（Ｓ１５０１）、空き領域であるサブページが存在するブロックがすべて空きページであるか否かを判定する（Ｓ１５０２）。
【００５７】
すべて空きページである場合（Ｓ１５０２／ＹＥＳ）、データ削除部１３２は、ブロックのデータを削除する（Ｓ１５０３）。一方、すべて空きページではない場合（Ｓ１５０２／ＮＯ）、処理を終了する。
【００５８】
認証処理設定部１３３は、図６に示したファイルメタデータの“認証処理タイミング情報”を設定する。“認証処理タイミング情報”は、例えば、「マウント時」、「アクセス時」及び「非認証」のいずれかである。“認証処理タイミング情報”の「マウント時」は、ＮＡＮＤ９０のファイルシステムがマウントされた、すなわちＮＡＮＤ９０を利用可能な状態にする認識処理の際にファイルの認証処理が行われることを示す。また、“認証処理タイミング情報”の「アクセス時」は、画像処理装置１の電源がＯＮになって最初にファイルにアクセスされた際にファイルの認証処理が行われることを示す。また、“認証処理タイミング情報”の「非認証」は、ファイルの認証処理を行わないことを示す。
【００５９】
認証処理設定部１３３は、例えば、ユーザから入力された設定情報に基づいて、“認証処理タイミング情報”を設定する。その他、認証処理設定部１３３は、ファイルの種類や拡張子等に基づいて、“認証処理タイミング情報”を設定してもよい。
【００６０】
認証処理部１３４は、認証処理設定部１３３により設定された“認証処理タイミング情報”に基づいて、各ファイルの認証処理を行う。認証処理は、例えば、ファイルのハッシュ値を用いた改ざん検知処理である。使用する認証処理関数等の認証処理に必要な情報は、画像処理装置１のＴＰＭ（Ｔｒｕｓｔｅｄ  Ｐｌａｔｆｏｒｍ  Ｍｏｄｕｌｅ）ドライバの初期化時に予め登録されているものとする。
【００６１】
図１６は、画像処理装置１の電源がＯＮされた際の認証処理部１３４による認証処理の動作を例示するフローチャートである。図１６に示すように、認証処理部１３４は、ＮＡＮＤ９０に格納されているファイルに対するファイルメタデータの“認証処理タイミング情報”を参照し（Ｓ１６０１）、「マウント時」を示すか否かを判定する（Ｓ１６０２）。“認証処理タイミング情報”が「マウント時」を示す場合、認証処理部１３４は、ファイルの認証処理を実行する（Ｓ１６０３）。
【００６２】
ファイルの認証処理を実行した認証処理部１３４は、ＮＡＮＤ９０に格納されているすべてのファイルに対して処理が完了したか否かを判定する（Ｓ１６０４）。認証処理部１３４は、すべてのファイルに対して処理が完了した場合（Ｓ１６０４／ＹＥＳ）、処理を終了する。
【００６３】
一方、すべてのファイルに対して処理が完了していない場合（Ｓ１６０４／ＮＯ）、認証処理部１３４は、次のファイルに対するファイルメタデータの“認証処理タイミング情報”を参照して（Ｓ１６０１）、以降の処理を繰り返す。一方、“認証処理タイミング情報”が「マウント時」ではない場合（Ｓ１６０２／ＮＯ）、そのファイルに対する認証処理を行うことなく、Ｓ１６０４の処理に進む。
【００６４】
すなわち、図１６に示した処理により、画像処理装置１の電源がＯＮされた際には、“認証処理タイミング情報”が「マウント時」のファイルのみに対して認証処理が行われる。
【００６５】
図１７は、ファイルにアクセスする際の認証処理部１３４による認証処理の動作を例示するフローチャートである。図１７に示すように、認証処理部１３４は、ＮＡＮＤ９０にアクセス対象のファイルに対するファイルメタデータの“認証処理タイミング情報”を参照し（Ｓ１７０１）、「アクセス時」を示すか否かを判定する（Ｓ１６０２）。
【００６６】
“認証処理タイミング情報”が「アクセス時」を示す場合（Ｓ１７０２／ＹＥＳ）、認証処理部１３４は、ファイルが未認証であるか否かを判定する（Ｓ１７０３）。ファイルが未認証であるか否かは、例えば、ファイルメタデータに含まれる“認証済フラグ”が「ＯＮ」であるか否かにより判定される。
【００６７】
ファイルが未認証である場合（Ｓ１７０３／ＹＥＳ）、認証処理部１３４は、ファイルの認証処理を実行する（Ｓ１７０４）。一方、“認証処理タイミング情報”が「アクセス時」ではない場合（Ｓ１７０２／ＮＯ）又はファイルが認証済である場合（Ｓ１７０３／ＮＯ）、認証処理部１３４は、認証処理を行うことなく処理を終了する。ファイル認証処理を実行した認証処理部１３４は、認証処理を実行したファイルの認証済フラグをＯＮにする（Ｓ１７０５）。
【００６８】
以上説明したように、本実施形態に係る画像処理装置１は、ＮＡＮＤ９０に格納されているデータを更新する際に、更新後のデータを更新前のデータとは別のページに格納し、その後、更新後のデータが読み出し可能になるようパーティション情報を更新する。これにより、ＮＡＮＤ９０におけるデータの更新中に電力供給が停止したことによるデータの不整合の発生を軽減することが可能になる。
【００６９】
また、本実施形態に係る画像処理装置１は、ファイルごとに設定された認証処理のタイミングに応じて、ファイルの認証処理を行う。これにより、ファイルシステムのマウント時には、認証処理タイミング情報がマウント時に設定されているファイルにのみ認証処理を行うので、マウント時にすべてのファイルに認証処理を行う場合に比べて、システムの起動時間短縮することが可能になる。また、ファイルシステムにおいてファイルの認証処理をサポートしているので、ファイルの認証処理が失敗した際にも詳細なエラーハンドリングを行うことが可能である。しかしながら、このような認証処理の構成は必須ではなく、このような構成がない場合であっても、ＮＡＮＤ９０におけるデータの更新中に電力供給が停止したことによるデータの不整合の発生を軽減することが可能になる。
【００７０】
なお、上記実施形態においては、ＮＡＮＤ９０における各ページに論理的な領域である複数のサブページが構成され、１つのサブページに１つのファイル（データファイル）が格納される場合を例として説明した。その他、１つのページに１つのファイル（データファイル）が格納されてもよい。この場合、１つのサブページに１つのファイルが格納される場合に比べて、各ページの記憶領域に無駄が多くなる。しかしながら、１つのファイルを更新する際に、同じページに含まれる他のファイルの存在を意識した処理を行う必要がないので、１つのサブページに１つのファイルが格納される場合に比べて、画像処理装置１における処理負担を軽減することが可能になる。
【００７１】
また、上記実施形態において、パーティション情報のサイズは、ＮＡＮＤ９０に格納されるファイルやファイルメタデータの数が増えるほど大きくなる。そのため、ファイルやファイルメタデータの数によっては、パーティションブロックが複数設けられる場合がある。パーティションブロックが複数設けられ、パーティション情報が複数の場合、あるパーティション情報が上書きされた後、他のパーティション情報が上書きされる前に、電力供給が停止すると、データの不整合が発生する場合がある。
【００７２】
そこで、ＮＡＮＤ９０に設けるパーティションブロックの数を１つに制約するようにしてもよい。すなわち、パーティション情報であるデータ管理情報が、記憶媒体であるＮＡＮＤ９０においてデータファイルとして１つ格納される。この場合、１つのパーティションブロックにパーティション情報が格納されるようファイル及びファイルメタデータの数を制約する必要がある。しかしながら、このような構成の場合、複数のパーティション情報がすべて上書きされる前に、電力供給が停止することによりデータの不整合が発生することを防止することができる。したがって、このような構成によれば、ＮＡＮＤ９０におけるデータの更新中に電力供給が停止したことによるデータの不整合の発生をさらに軽減することが可能になる。
【００７３】
また、本実施形態においては、ＮＡＮＤ９０のファームウェアにウェアレベリング機能が搭載されていない。ウェアレベリング機能を非搭載とすることで、ＮＡＮＤ９０のメンテナンス性の低下やファームウェア側とＮＡＮＤ９０を制御するソフト側とで責務の二重化が起こることを防止することができる。
【００７４】
なお、本実施形態においては、ＮＡＮＤ９０に格納されているデータの更新を例として説明した。ＨＤＤ等の他の記憶媒体に比べて容量が比較的小さいＮＡＮＤ９０の場合、データ更新に失敗してデータの不整合が発生した場合に更新前のデータを復旧するためのログデータを格納することは容量を圧迫する原因になる。本実施形態によれば、ＮＡＮＤ９０のような比較的容量の小さい記憶媒体であっても、ログデータを格納する場合よりも容量を圧迫することなく、データの更新中に電力供給が停止することによるデータの不整合の発生を軽減することができる。しかしながら、本実施形態は、ＮＡＮＤ９０に限らず、複数の記憶領域から構成され記憶領域単位でデータが読み書きされる記憶媒体に対しても同様に適用可能である。
【００７５】
また、本実施形態においては、画像処理装置１を例として説明した。しかしながら、本実施形態は、画像処理装置１に限らず、ＮＡＮＤ９０等の記憶媒体を備える様々な情報処理装置に対しても同様に適用可能である。情報処理装置には、組込みシステムや一般的なＰＣ等があるが、組込みシステムはコストダウン等の観点から一般的なＰＣ等に比べて、バッテリー等の停電等により電力供給が停止した場合のバックアップを備えていることが少ない。本実施形態によれば、バッテリー等を備えていない組込みシステムにおいても、記憶媒体におけるデータの更新中に電力供給が停止したことによるデータの不整合の発生を軽減することが可能になる。
【符号の説明】
【００７６】
１  画像処理装置
１０  ＣＰＵ
２０  ＲＡＭ
３０  ＲＯＭ
４０  ＨＤＤ
５０  Ｉ／Ｆ
６０  ＬＣＤ
７０  操作部
８０  バス
９０  ＮＡＮＤ
１００  コントローラ
１０１  エンジン制御部
１０２  ネットワーク制御部
１０３  画像処理部
１０４  操作表示制御部
１１０  ＡＤＦ
１１１  スキャナユニット
１１２  排紙トレイ
１１３  ディスプレイパネル
１１４  給紙テーブル
１１５  プリントエンジン
１１６  排紙トレイ
１１７  ネットワークＩ／Ｆ
１３０  主制御部
１３１  データ更新部
１３２  データ削除部
１３３  認証処理設定部
１３４  認証処理部
【先行技術文献】
【特許文献】
【００７７】
【特許文献１】特開２００８−５９２４１号公報
【図１】
2017027203.tif 000003
【図２】
2017027203.tif 000004
【図３】
2017027203.tif 000005
【図４】
2017027203.tif 000006
【図５】
2017027203.tif 000007
【図６】
2017027203.tif 000008
【図７】
2017027203.tif 000009
【図８】
2017027203.tif 000010
【図９】
2017027203.tif 000011
【図１０】
2017027203.tif 000012
【図１１】
2017027203.tif 000013
【図１２】
2017027203.tif 000014
【図１３】
2017027203.tif 000015
【図１４】
2017027203.tif 000016
【図１５】
2017027203.tif 000017
【図１６】
2017027203.tif 000018
【図１７】
2017027203.tif 000019