(57)【要約】【課題】不揮発性メモリの寿命を適切に延長し、また、処理に必要なデータを迅速に取得することのできる技術を提供する。【解決手段】フラッシュロム１０は、セクタに、所定のデータ群を構成する複数の構成データについての所定の時点におけるベースデータを記憶しており、ＣＰＵ７が、複数の構成データのいずれかに対応する差分データの書き込みを受け付けた場合に、ミラー領域１３における対応する構成データを差分データに更新し、差分データをセクタの空き領域に書き込めるか否かを判断し、書込めると判断した場合には、セクタの空き領域に差分データを書込む。これにより、差分データの書き込み毎にセクタを消去する必要がなく、また、ミラー領域１３から迅速に最新のデータを取得することができる。【選択図】図１
2009217293.tif 000002
【特許請求の範囲】
【請求項１】
記憶領域が複数の部分領域に分割され、前記部分領域単位で再書込み可能に記憶内容が消去される不揮発性メモリに対するデータの読出し及び書込みを制御する不揮発性メモリ制御装置であって、
前記不揮発性メモリは、前記部分領域に、所定のデータ群を構成する複数の構成データについての所定の時点におけるベースデータを記憶しており、
前記データ群を構成する全ての構成データの最新のデータを記憶する最新データ記憶手段と、
前記複数の構成データのいずれかに対応する更新データの書込みを受け付けた場合に、前記最新データ記憶手段における対応する構成データを前記更新データに更新する更新手段と、
前記更新データを前記部分領域の空き領域に書き込めるか否かを判断する書込み判断手段と、
前記書込めると判断した場合には、前記部分領域の前記空き領域に前記更新データを書込む書込み制御手段と
を有する不揮発性メモリ制御装置。
【請求項２】
前記書込み制御手段は、前記書込めないと判断した場合には、前記更新手段により更新された前記最新データ記憶手段に記憶された前記データ群を構成する全ての構成データの最新のデータを前記部分領域と異なる部分領域にベースデータとして書き込む
請求項１に記載の不揮発性メモリ制御装置。
【請求項３】
前記部分領域には、前記データ群を構成する少なくとも１つの前記構成データに対応する更新データが格納されており、
前記データ群を構成する全ての構成データに対応する最新のデータの前記部分領域における格納先アドレスを記憶するためのアドレス管理テーブルと、
前記部分領域から前記データ群を構成する前記構成データに対応する最新のデータの格納先アドレスを取得し、前記アドレス管理テーブルに格納する最新アドレス取得手段と、
前記アドレス管理テーブルに格納された前記格納先アドレスに基づいて、前記部分領域から前記構成データに対応する最新のデータを読出して前記最新データ記憶手段に格納する最新データ読出し手段と
を有する請求項１又は請求項２に記載の不揮発性メモリ制御装置。
【請求項４】
請求項１乃至請求項３のいずれか一項に記載の不揮発性メモリ制御装置を有するプリンタ。
【請求項５】
記憶領域が複数の部分領域に分割され、前記部分領域単位で再書込み可能に消去される不揮発性メモリに対するデータの読出し及び書込みを制御する不揮発性メモリ制御装置による不揮発性メモリ制御方法であって、
前記不揮発性メモリは、前記部分領域に、所定のデータ群を構成する複数の構成データについての所定の時点におけるベースデータを記憶しており、
前記不揮発性メモリ制御装置は、前記データ群を構成する全ての構成データの最新のデータを記憶する最新データ記憶手段を有し、
前記不揮発性メモリ制御装置の更新手段が、前記複数の構成データのいずれかに対応する更新データの書き込みを受け付けた場合に、前記最新データ記憶手段における対応する構成データを前記更新データに更新する更新ステップと
前記不揮発性メモリ制御装置の書込み判断手段が、前記更新データを前記部分領域の空き領域に書込めるか否かを判断する書込み判断ステップと、
前記不揮発性メモリ制御装置の書込み制御手段が、前記書込めると判断した場合には、前記部分領域の前記空き領域に前記更新データを書込む第１書込み制御ステップと、
前記不揮発性メモリ制御装置の書込み制御手段が、前記書込めないと判断した場合には、前記更新手段により更新された前記最新データ記憶手段に記憶された前記データ群を構成する全ての構成データの最新のデータを前記部分領域と異なる部分領域に前記ベースデータとして書き込む第２書込み制御ステップと
を有する不揮発性メモリ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶領域が複数の部分領域に分割され、部分領域単位で再書込み可能に記憶内容が消去される不揮発性メモリに対するデータの読出し及び書込みを制御する不揮発性メモリ制御装置等に関する。
【背景技術】
【０００２】
従来、ＦＡＸ機能を持ったプリンタにおいては、例えば、電話帳データにおける設定値や、ジョブの進捗のデータをプリンタの電源が切れた際にも保持するために、例えば、ＦｌａｓｈＲＯＭ（フラッシュロム）等の不揮発性メモリに記憶させることが行われている。
【０００３】
不揮発性メモリは、その特性上、消去時はセクタ単位での消去しか行えないため、更新データの保存用の領域としては、通常２セクタ以上準備されている。このような不揮発性メモリにおいては、一方のセクタを消去して書き換えている間において、他方のセクタ内のデータがバックアップデータとなる。
【０００４】
例えば、２つのセクタを有する不揮発性メモリを備えたプリンタにおいては、不揮発性メモリの１セクタ内に、複数の値からなる全データ群を丸ごと書き込んでおき、いずれかの値が変更された場合には、変更された値を含む全データ群を他のセクタに書き込むようにしている。
【０００５】
この場合には、値が変更された場合には、他のセクタに書き込むようにしており、他のセクタを消去する必要があり、迅速に書込みが行えないという問題が生じていた。
【０００６】
これに対して、フラッシュ・メモリにおけるデータの更新書込みを高速に行う技術が知られている（例えば、特許文献１参照）。
【０００７】
【特許文献１】特開平５−２３３４２６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
また、上記のように、不揮発性メモリの１セクタ内に、複数の値からなる全データ群を丸ごと書き込んでおき、いずれかの値が変更された場合には、変更された値を含む全データ群を他のセクタに書き込むようにしているため、いずれの値が変更された場合には、いずれかのセクタを消去する必要があり、消去回数に限界がある不揮発性メモリに対しては、寿命を短くするという問題がある。
【０００９】
一方、プリンタ等においては、最新のデータ群を用いて迅速に処理を行うことが要請される。
【００１０】
本発明は、上記課題に鑑みなされたものであり、その目的は、不揮発性メモリの寿命を適切に延長することを目的とする。また、処理に必要なデータを迅速に取得することのできる技術を提供することにある。
【課題を解決するための手段】
【００１１】
上記目的達成のため、本発明の一実施形態に係る不揮発性メモリ制御装置は、記憶領域が複数の部分領域に分割され、部分領域単位で再書込み可能に記憶内容が消去される不揮発性メモリに対するデータの読出し及び書込みを制御する不揮発性メモリ制御装置であって、不揮発性メモリは、部分領域に、所定のデータ群を構成する複数の構成データについての所定の時点におけるベースデータを記憶しており、データ群を構成する全ての構成データの最新のデータを記憶する最新データ記憶手段と、複数の構成データのいずれかに対応する更新データの書込みを受け付けた場合に、最新データ記憶手段における対応する構成データを前記更新データに更新する更新手段と、更新データを部分領域の空き領域に書込めるか否かを判断する書込み判断手段と、書込めると判断した場合には、部分領域の空き領域に更新データを書込む書込み制御手段とを有する。係る不揮発性メモリ制御装置によると、データ群の最新のデータを最新データ記憶手段から迅速に取得することができる。また、最新のデータを適切に不揮発性メモリに格納することができる。
【００１２】
上記不揮発性メモリ制御装置において、書込み制御手段は、書込めないと判断した場合には、更新手段により更新された最新データ記憶手段に記憶されたデータ群を構成する全ての構成データの最新のデータを部分領域と異なる部分領域にベースデータとして書込むようにしてもよい。係る不揮発性メモリ制御装置によると、迅速にデータ群のデータを不揮発性メモリの異なる部分領域に書込むことができる。
【００１３】
また、上記不揮発性メモリ制御装置において、部分領域には、データ群を構成する少なくとも１つの前記構成データに対応する更新データが格納されており、データ群を構成する全ての構成データに対応する最新のデータの部分領域における格納先アドレスを記憶するためのアドレス管理テーブルと、部分領域からデータ群を構成する構成データに対応する最新のデータの格納先アドレスを取得し、アドレス管理テーブルに格納する最新アドレス取得手段と、アドレス管理テーブルに格納された格納先アドレスに基づいて、構成データに対応する最新のデータを部分領域から読出して最新データ記憶手段に格納する最新データ読出し手段とを有するようにしてもよい。係る不揮発性メモリ制御装置によると、不揮発性メモリからデータ群の最新データを最新データ記憶手段に格納することができ、必要な最新データを最新データ記憶手段から迅速に取得することができるようになる。
【００１４】
また、プリンタにおいて、上記した不揮発性メモリ制御装置を有するようにしてもよい。係るプリンタによると、データ群の最新のデータを最新データ記憶手段から迅速に取得することができる。また、最新のデータを適切に不揮発性メモリに格納することができる。
【００１５】
また、上記目的達成のため、本発明の一実施形態に係る不揮発性メモリ制御方法は、不揮発性メモリ制御装置による不揮発性メモリ制御方法であって、不揮発性メモリは、部分領域に、所定のデータ群を構成する複数の構成データについての所定の時点におけるベースデータを記憶しており、不揮発性メモリ制御装置は、データ群を構成する全ての構成データの最新のデータを記憶する最新データ記憶手段を有し、不揮発性メモリ制御装置の更新手段が、複数の構成データのいずれかに対応する更新データの書込みを受け付けた場合に、最新データ記憶手段における対応する構成データを更新データに更新する更新ステップと、不揮発性メモリ制御装置の書込み判断手段が、更新データを部分領域の空き領域に書き込めるか否かを判断する書込み判断ステップと、不揮発性メモリ制御装置の書込み制御手段が、書込めると判断した場合には、部分領域の空き領域に前記更新データを書込む第１書込み制御ステップと、不揮発性メモリ制御装置の書込み制御手段が、書込めないと判断した場合には、更新手段により更新された最新データ記憶手段に記憶されたデータ群を構成する全ての構成データの最新のデータを部分領域と異なる部分領域にベースデータを書込む第２書込み制御ステップとを有する。
【００１６】
係る不揮発性メモリ制御方法によると、データ群の最新のデータを最新データ記憶手段から迅速に取得することができる。また、最新のデータを適切に不揮発性メモリに格納することができる。
【発明を実施するための最良の形態】
【００１７】
本発明の実施形態について、図面を参照して説明する。なお、以下に説明する実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１８】
まず、本発明の一実施形態に係る不揮発性メモリ制御装置を有するプリンタを説明する。
【００１９】
図１は、本発明の一実施形態に係るプリンタの構成図である。
【００２０】
プリンタ１は、不揮発性メモリ制御装置２と、所定の画像形成媒体（例えば、用紙）に画像を形成するプリント機能部３と、公衆回線を介して原稿から読み取った画像を送信するファクシミリ機能部（ＦＡＸ機能部）４とを有する。不揮発性メモリ制御装置２は、ＲＯＭ（Read Only Memory）５と、ＲＡＭ（Random Access Memory）６と、ＣＰＵ（Central Processing Unit）７と、リーダ・ライタ８と、フラッシュロム（ＦｌａｓｈＲＯＭ：不揮発性メモリ）１０とを有する。プリント機能部３と、ＦＡＸ機能部４と、ＲＯＭ５と、ＲＡＭ６と、ＣＰＵ７と、リーダ・ライタ８とは、バス９を介して接続されている。
【００２１】
フラッシュロム１０は、プリンタ１の電源が入っていない場合でも記憶しておく必要がある各種データを記憶することができるようになっており、記憶領域が複数（例えば、２つ）のセクタ（部分領域）に分割され、セクタを単位として記録内容が消去（イレース）されて再書き込みが可能となる。なお、本実施形態のフラッシュロム１０は、イレースされると、全ての記憶領域が０ｘＦＦで埋められる。すなわち、記憶領域の全てのビットに”１”が立っている状態となる。なお、ビットを”０”から”１”には、イレースする必要があるが、”１”を”０”に変更する場合には、イレースする必要はない。本実施形態では、フラッシュロム１０は、プリンタ１におけるＦＡＸ番号等の各種設定を記憶する。
【００２２】
図２は、本発明の一実施形態に係るフラッシュロムの記憶領域を説明する図である。
【００２３】
フラッシュロム１０は、セクタ１４Ａ、１４Ｂを有している。セクタ１４Ａは、セクタヘッド情報１５と、プリンタ１において格納しておくべき複数のデータ（構成データ）から成るデータ群についての所定の時点における最新の全てのデータ（ベースデータ）１８を格納するためのベース領域１６と、前記所定の時点以降において、データ群のいずれかのデータについての差分データ（更新データ）１９を格納するための差分領域１７とを有する。
【００２４】
同図においては、データ群は、データ（１）（同図では（１）と表示）、データ（２）、データ（３）及びデータ（４）によって構成されている。また、同図においては、差分領域１７においては、データ（１）の差分データを、データ（１）’、データ（２）の差分データをデータ（２）’、データ（２）’’のように表示している。
【００２５】
図３は、本発明の一実施形態に係るフラッシュロムにおけるフォーマットを説明する図である。図３Ａは、セクタヘッド情報フォーマットを示し、図３Ｂは、データフォーマットを示している。
【００２６】
セクタヘッド情報１５は、セクタ状態フィールド１５ａと、セクタ書込み番号フィールド１５ｂと、セクタ消去回数フィールド１５ｃとを有する。セクタ状態フィールド１５ａには、セクタの状態を示す値が格納される。例えば、セクタ状態フィールド１５ａには、セクタが消去済み状態である場合には、０ｘ７ＦＦＦ（０ｘは、１６進数を示す）が格納される。この値は、セクタの消去が正常に終了した場合に、ＣＰＵ７の制御により直ちに格納される。また、セクタが使用中状態であれば、０ｘ３ＦＦＦが格納される。この値は、セクタの消去後にベース領域の書込みが完了した時点でＣＰＵ７により、０ｘ７ＦＦＦから０ｘ３ＦＦＦに変更されて設定される。なお、この変更は、１つのビット”１”を”０”に変更するものであるので、イレースせずに実現できる。また、消去待ち状態であれば、０ｘ１ＦＦＦが格納される。この値は、他のセクタへ記憶しているデータを移行した後に、ＣＰＵ７により、０ｘ３ＦＦＦから０ｘ１ＦＦＦに変更されて設定される。なお、この変更は、１つのビット”１”を”０”に変更するものであるので、イレースせずに実現できる。なお、本実施形態のフラッシュロム１０は、消去されると全ての記憶領域が０ｘＦＦで埋められるので、消去直後においては、０ｘＦＦＦＦとなるが、この状態については、意味を持たないものとして取扱われる。
【００２７】
セクタ書込み番号フィールド１５ｂには、書込み対象とするセクタが切り替えられる毎にインクリメントされる数値が格納される。この数値が大きいほうが、最新の書込み対象のセクタを示しており、セクタ状態の値から、いずれのセクタが書き込む対象であるか判別できない場合等に使用される。セクタ消去回数フィールド１５ｃには、対応するセクタが消去された回数が格納される。
【００２８】
ベースデータ１８と、差分データ１９とは、同様なフォーマットのデータブロックとなっており、データ長フィールド１８ａと、データ種類フィールド１８ｂと、データＩＤフィールド１８ｃと、実データフィールド１８ｄと、終端データフィールド１８ｅとを有する。データ長フィールド１８ａには、データ長が格納される。具体的には、データ長として、実データ長＋８バイトの値が格納される。データ種類フィールド１８ｂには、ベースデータであるか、差分データであるかを示す情報が格納される。データＩＤフィールド１８ｃには、データを識別するデータ番号が格納される。本実施形態では、データ（１）又はデータ（１）に対応する差分データであれば、（１）が格納される。実データフィールド１８ｄには、実データが格納される。終端データフィールド１８ｅには、終端を示すデータ（終端データ）が格納される。
【００２９】
図１の説明に戻り、リーダ・ライタ８は、ＣＰＵ７による制御に基づいて、フラッシュロム１０へのデータの書込み、フラッシュロム１０からのデータの読込み、フラッシュロム１０の記憶内容の消去（イレース）等を実行する。
【００３０】
ＲＯＭ５は、ブートプログラム等のプログラムや、変更されることのないデータを記憶する。本実施形態では、ＲＯＭ５は、属性テーブル１１（図４参照）を記憶する。
【００３１】
ＲＡＭ６は、プログラムやデータを記憶する領域として、或いは、ＣＰＵ７による処理に使用しているデータを格納する作業領域として利用される。本実施形態では、ＲＡＭ６は、アドレス管理テーブル１２（図４参照）と、ミラー領域１３（最新データ記憶手段：図４参照）と、書込み対象となるフラッシュロム１０のセクタ名と、次のデータを書き込むアドレス（ＮＥＸＴアドレス）と、セクタの最後のアドレス（ＥＮＤアドレス）とを記憶する。
【００３２】
図４は、本発明の一実施形態に係る各種テーブル等を説明する図である。
【００３３】
属性テーブル１１は、データＩＤフィールド１１ａと、データ種類フィールド１１ｂと、データサイズフィールド１１ｃと、オフセットフィールド１１ｄとを有する。データＩＤフィールド１１ａには、フラッシュロム１０に格納される複数のデータ（データ群）のそれぞれを識別可能なデータＩＤ（データ名）を格納する。同図では、例えば、（１）〜（４）の４つのデータがあることがわかる。データ種類フィールド１１ｂには、対応するデータがどのような種類であるかを格納する。差分データが存在する可能性のある場合には、"差分"と格納される。データサイズフィールド１１ｃには、対応するデータのサイズが格納される。オフセットフィールド１１ｄには、対応するデータのセクタ１４のベース領域１６の先頭からのオフセットが格納される。
【００３４】
アドレス管理テーブル１２は、データＩＤフィールド１２ａと、格納先アドレスフィールド１２ｂとを格納する。データＩＤフィールド１２ａには、データ群に属する全てのデータのデータ名が格納される。格納先アドレスフィールド１２ｂには、対応するデータが格納されている位置を特定する格納先アドレスが格納される。ミラー領域１３は、データ群に属する複数のデータの最新の実データを格納する最新実データフィールド１３ａを有する。
【００３５】
図１の説明に戻り、ＣＰＵ７は、各部３、４、５、６、８の動作を制御する。また、ＣＰＵ７は、ＲＯＭ５に格納されているプログラムをＲＡＭ６に読出して実行することにより、更新手段、書込み判断手段、書込み制御手段、最新アドレス取得手段、及び最新データ読出し手段を構成する。
【００３６】
具体的には、ＣＰＵ７は、複数の構成データのいずれかに対応する差分データの書込みを受け付けた場合に、ミラー領域１３の対応する構成データを受け付けた差分データに更新する。また、ＣＰＵ７は、差分データを現在書込み対象のセクタの空き領域に書込めるか否かを判断する。また、ＣＰＵ７は、対象のセクタ１４に差分データを書込めると判断した場合には、セクタ１４の差分領域１７の空き領域に受け付けた差分データを書込み、また、書込めないと判断した場合には、ミラー領域１３の全ての構成データの最新の実データをベースデータとして他のセクタに書き込む。また、ＣＰＵ７は、セクタからデータ群を構成する構成データに対応する最新のデータの格納先アドレスを取得し、アドレス管理テーブル１２に格納し、差分領域のすべての差分データについて処理をした後に、アドレス管理テーブル１２に格納された格納先アドレスに基づいて、セクタ１４から構成データに対応する最新のデータを読出してミラー領域１３に格納する。また、ＣＰＵ７は、例えば、所定の時間毎に、リーダ・ライタ８によりセクタ１４のセクタヘッド情報１５を読出させ、セクタ１４が消去待ち状態か否かを判定し、消去待ち状態である場合には、対応するセクタ１４の消去をリーダ・ライタ８に実行させる。
【００３７】
次に、本発明の一実施形態に係るプリンタの処理について説明する。図５は、本発明の一実施形態に係る書込み処理のフローチャートである。
【００３８】
ＣＰＵ７は、プリンタ１において図示しない入力装置によるユーザの操作に応じて、所定のデータの書込み要求が発生したか否かを判定し（ステップＳ１）、発生していない場合には、書込み要求が発生するまでウェイトする。なお、書込み要求には、書込み対象のセクタと、当該データのデータ名と、格納する実データとが含まれている。書込み要求が発生した場合（ステップＳ１：ＹＥＳ）には、ＣＰＵ７は、書込み対象のデータを用いて図３Ｂに示す書込みデータブロックを作成する（ステップＳ２）。
【００３９】
次いで、ＣＰＵ７は、書込みデータを現在書込み対象としているセクタ１４に格納可能か否かを判定する（ステップＳ３）。格納可能か否かは、ＲＡＭ６のＮＥＸＴアドレスから、書込みデータのデータ長のデータを格納してもＥＮＤアドレスまでに納まるか否かにより判定できる。この結果、格納可能であると判定した場合には、ＣＰＵ７は、書込みデータによりミラー領域１３の対応するデータを更新し（ステップＳ４）、更に、リーダ・ライタ８により、フラッシュロム１０に書込みデータのデータブロックを差分領域１７に追加して保存させる（ステップＳ５）。
【００４０】
一方、格納可能でないと判定した場合には、ＣＰＵ７は、リーダ・ライタ８により次の他のセクタのセクタヘッド情報１５を取得して、セクタ１４の状態を確認する（ステップＳ６）。次いで、ＣＰＵ７は、次のセクタ１４が消去済み状態であるか否かを判定し（ステップＳ７）、セクタ１４が消去済み状態でないと判定した場合には、リーダ・ライタ８によりセクタ１４の記憶内容を消去させる（ステップＳ８）。
【００４１】
消去済み状態であると判定された場合（ステップＳ７：ＹＥＳ）、又はステップＳ８においてセクタ１４の記録内容が消去された場合には、ＣＰＵ７は、書込みデータによりミラー領域１３の対応するデータを更新し（ステップＳ９）、更に、ミラー領域１３の全てのデータに対応するデータブロックを作成し、リーダ・ライタ８により、フラッシュロム１０の次のセクタ（消去済み又は消去されたセクタ）のベース領域１６にこれら全てのデータに対応するデータブロックを格納させ（ステップＳ１０）、当該セクタ１４のセクタヘッド情報１５のセクタ状態フィールド１５ａのセクタ状態を消去済み状態から使用中状態へと変更する（ステップＳ１１）。
【００４２】
ステップＳ５又はステップＳ１１が終了した後に、ＣＰＵ７は、ＲＡＭ６のＮＥＸＴアドレスを次回の更新データの格納先となるアドレスに更新し（ステップＳ１２）、処理を終了する。
【００４３】
図６は、本発明の一実施形態に係る読出し処理のフローチャートである。
【００４４】
読出し処理は、基本的には、プリンタ１を起動した際に実行される。まず、ＣＰＵ７は、リーダ・ライタ８により、フラッシュロム１０のセクタヘッド情報１５を読出させ、セクタヘッド情報１５に基づいて、読出し対象のセクタを決定する（ステップＳ２１）。本実施形態では、書込み中の状態であるセクタ１４を読出し対象のセクタと決定する。
【００４５】
次いで、ＣＰＵ７は、読出し対象のセクタ１４のベース領域１６の先頭に必要なベースデータが格納されているか否かを判定し（ステップＳ２２）、ベースデータが格納されていない場合には、エラー処理を実行して処理を終了する（ステップＳ２３）。一方、先頭にベースデータが格納されている場合には、ＣＰＵ７は、各ベースデータのアドレスをアドレス管理テーブル１２に格納する（ステップＳ２４）。
【００４６】
次いで、ＣＰＵ７は、リーダ・ライタ８により、差分領域１７の次の差分データの実データ部分以外のデータを読み込ませ（ステップＳ２５）、次のデータがないか否かを判定する（ステップＳ２６）。ここで、データがないことは、本実施形態では、データの次の記憶領域が０ｘＦＦであることにより把握することができる。ステップＳ２５では、実データ部分については、読み出さないので読み出し時間を比較的短時間に抑えることができる。
【００４７】
この結果、データがある場合には、ＣＰＵ７は、データが差分データであるか否かを判定し（ステップＳ２７）、差分データでない場合には、エラー処理を実行して処理を終了する（ステップＳ２８）。
【００４８】
一方、差分データである場合には、ＣＰＵ７は、更に、データサイズ、データ番号、終端データに基づいてデータのチェックを行い（ステップＳ２９）、差分データに対するチェックがＯＫであるか否かを判定し（ステップＳ３０）、チェックがＯＫでない場合には、エラー処理を実行して処理を終了する（ステップＳ３１）。
【００４９】
一方、チェックがＯＫである場合には、ＣＰＵ７は、アドレス管理テーブル１２の対応するデータの格納先アドレスに当該差分データの格納先アドレスを保存し（ステップＳ３２）、ステップＳ２５に戻る。
【００５０】
一方、次のデータがないと判定した場合には、ＣＰＵ７は、アドレス管理テーブル１２から各データの最新の格納先アドレスを取得し（ステップＳ３３）、リーダ・ライタ８により、対応するアドレスの実データをフラッシュロム１０から取得させ、当該データをミラー領域１３に格納する（ステップＳ３４）。
【００５１】
図７は、本発明の一実施形態に係る読出し処理の具体例を説明する図である。図７Ａは、図２に示すように差分データ１９が格納されている場合における読出し処理時のアドレス管理テーブル１２の状態を時系列に示す図であり、図７Ｂは、読出し処理後のミラー領域１３の状態を示す図である。
【００５２】
ステップＳ２４において、図７Ａの時刻Ｔ１に示すように、アドレス管理テーブル１２は、ベース領域１６の各ベースデータ１８のアドレスが格納される。ここで、同図においては、各データの格納先アドレスを、データ（１）であれば、アドレス（１）と、データ（２）であれば、アドレス（２）と示すこととする。また、同図においては、その時点に更新された部分について網掛けで示すこととする。
【００５３】
次いで、ステップＳ２５を実行することにより、各差分データが逐次読み込まれていき、ステップＳ３２において、読み込まれた差分データの格納先アドレスがアドレス管理テーブル１２に格納されることとなる。
【００５４】
例えば、差分データ（２）’の実データ部分が読み出されると、図７Ａの時刻Ｔ２に示すように、データ名が（２）のデータの最新の格納先アドレスが、データ（２）’の格納先であるアドレス（２）’に更新される。そして、時刻Ｔ３においては、アドレス（２）’がアドレス（２）’’に更新され、時刻Ｔ４においては、アドレス（３）がアドレス（３）’に更新され、同様にしてアドレス管理テーブル１２の更新が行われる。そして、全ての差分データについて上記処理を行われると、時刻Ｔ１０に示すように、データ名（１）、（２）、（３）、（４）の最新格納先アドレスとして、アドレス（１）’、アドレス（２）’’’、アドレス（３）’’、アドレス（４）’’’が格納されることとなる。
【００５５】
このようにアドレス管理テーブル１２が格納された後に、ステップＳ３６においては、アドレス管理テーブル１２に格納された各データの格納先アドレスから実データが取得され、ミラー領域１３には、図７Ｂに示すように、実データ（１）’、実データ（２）’’’、実データ（３）’’、実データ（４）’’’が格納されることとなる。
【００５６】
上記した読出し処理によると、複数の差分データがある場合に、差分データの実データを逐次読出さずに、アドレス管理テーブル１２に最新の差分データの格納先アドレスを格納していくようにし、全ての差分データについての格納先アドレスを格納した後に、アドレス管理テーブル１２に基づいて実データを取得するようにしているので、差分データのそれぞれについて実データを読み出す処理を行う必要がなく、迅速に最新のデータをミラー領域１３に格納することができる。
【００５７】
次に、本実施形態に係るプリンタの変形例を説明する。
【００５８】
変形例に係るプリンタは、上記実施形態では、差分データの書込み要求が発生する毎に、フラッシュロム１０に差分データを書込むようにしていたものを、差分データの書き込み要求毎ではなく、所定のタイミング（例えば、定期的）でその時点の最新の差分データをフラッシュロム１０に書込むようにしたものである。なお、上記実施形態の図面を参照して、異なる部分を中心に説明することとする。
【００５９】
本変形例に係るプリンタ１は、ＲＡＭ６に書込みチェックテーブル２１を更に格納する。
【００６０】
図８は、本発明の変形例に係る書込みチェックテーブルを説明する図である。
【００６１】
書込みチェックテーブル２１は、データＩＤフィールド２１ａと、更新チェックフラグフィールド２１ｂとを有する。データＩＤフィールド２１ａには、データ群に属する全てのデータのデータ名が格納される。更新チェックフラグフィールド２１ｂには、対応するデータが更新されているか否かを示すフラグ（チェックフラグ）が格納される。本実施例では、更新されていない場合には、ＦＡＬＳＥが設定され、更新されている場合には、ＴＲＵＥが設定される。
【００６２】
変形例に係るプリンタ１においては、ＣＰＵ７が、書込み要求があると、書込み要求対象の差分データをミラー領域１３に格納するとともに、書込みチェックテーブル２１の対応するデータのチェックフラグを更新されたことを意味するＴＲＵＥに設定する。そして、所定のタイミングが来た時点で、ＣＰＵ７が書込みチェックテーブル２１にＴＲＵＥが設定されているか否かを判定し、ＴＲＵＥが設定されている場合には、対応する差分データをフラッシュロム１０に格納する処理（図５のステップＳ２以降のステップＳ４、Ｓ９を除く処理）を実行する。
【００６３】
この変形例によると、差分データの書込み毎にフラッシュロム１０に書込みを行わないので、フラッシュロム１０の記憶領域の使用頻度を低減し、セクタの消去回数を低減することができる。このため、フラッシュロム１０の寿命を長くすることができる。また、処理中におけるフラッシュロム１０への書込みの頻度を低減することができるので、処理の負荷を低減することができる。
【００６４】
以上、本発明を実施形態に基づいて説明したが、本発明は上述した実施の形態に限られず、他の様々な態様に適用可能である。
【００６５】
例えば、上記実施形態では、不揮発性メモリ制御装置をプリンタに備えた例を示していたが、本発明はこれに限られず、例えば、デジタルカメラ等の他の装置に備えるようにしてもよく、要は、不揮発性メモリへのアクセスを行う装置に備えることができる。
【図面の簡単な説明】
【００６６】
【図１】本発明の一実施形態に係るプリンタの構成図である。
【図２】本発明の一実施形態に係るフラッシュロムの記憶領域を説明する図である。
【図３】本発明の一実施形態に係るフラッシュロムにおけるフォーマットを説明する図である。
【図４】本発明の一実施形態に係る各種テーブル等を説明する図である。
【図５】本発明の一実施形態に係る書込み処理のフローチャートである。
【図６】本発明の一実施形態に係る読出し処理のフローチャートである。
【図７】本発明の一実施形態に係る読出し処理の具体例を説明する図である。
【図８】本発明の変形例に係る書込みチェックテーブルを説明する図である。
【符号の説明】
【００６７】
１  プリンタ、２  不揮発性メモリ制御装置、３  プリンタ機能部、４  ＦＡＸ機能部、５  ＲＯＭ、６  ＲＡＭ、７  ＣＰＵ、８  リーダ・ライタ、９  バス、１０  ＦｌｕｓｈＲＯＭ、１１  属性テーブル、１２  アドレス管理テーブル、１３  ミラー領域。
【図１】
2009217293.tif 000003
【図２】
2009217293.tif 000004
【図３】
2009217293.tif 000005
【図４】
2009217293.tif 000006
【図５】
2009217293.tif 000007
【図６】
2009217293.tif 000008
【図７】
2009217293.tif 000009
【図８】
2009217293.tif 000010