説明

電子機器および記憶方法

【課題】 低コストのフラッシュメモリの使用によるコスト低減を可能にし、更には、処理の高速化や、フラッシュメモリの寿命延長を図ることもできる電子機器を提供すること。
【解決手段】n個のデータブロックのマップ番号を書き換え候補番号に設定して、該書き換え候補番号をマップ番号として持つ記憶ブロックがフラッシュメモリ上に複数存在するか否かを判定する候補ブロック判定処理を実施し、候補ブロック判定処理で、書き換え候補番号に一致するマップ番号の記憶ブロックがフラッシュメモリ上に複数存在すると判定された時には、該当する複数個の記憶ブロックの内から、更新日時が最も古い記憶ブロックを書き込みブロックに決定して、該記憶ブロックにRAM上の該当データブロックを書き込む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、アプリケーションによる処理に必要な運用データを読み書き可能なフラッシュメモリと、このフラッシュメモリへの前記運用データの読み書きを管理するメモリドライバと、前記メモリドライバを介して前記運用データにアクセスしてアプリケーションを実行する制御部とを備える電子機器および記憶方法に関する。
【背景技術】
【0002】
これまで、アプリケーションによる処理に必要な運用データを保存するフラッシュメモリに対して、効率よくデータの書き込みを行うことができる電子機器として、前記フラッシュメモリは、セクタ単位毎にデータをアクセスする複数のデータユニットと、該データユニットに記憶されているデータのエントリ情報を記憶するデータ管理ユニットとを備えた構成とし、さらに、メモリドライバを介して前記フラッシュメモリにアクセスする制御部は、前記フラッシュメモリ上のデータユニットのいずれかにデータを書き込む場合に、前記データ管理ユニットに記憶されているエントリ情報を参照して得られる各データユニットの空きサイズに基づいて、該データを書き込むデータユニットを選択してデータの書き込みを行うようにしたものが提案されている(例えば、特許文献1参照)。
【0003】
また、フラッシュメモリを使用する電子機器では、データのリード・ライト回数が特定のセクタ等に偏ってデバイス寿命の低下を招くことが無いように、データのリード・ライト回数を全セクタに均等化するウエアレベリングが必要になる。
【0004】
そこで、上記特許文献1では、前記フラッシュメモリ内には予めスペアユニットを設定しておき、前記制御部は、前記データ管理ユニットと前記データユニットとのそれぞれの消去回数のうち最大消去回数と最小消去回数を求め、最大消去回数と最小消去回数との差が所定のしきい値を超えている場合に、最小消去回数のデータユニットまたはデータ管理ユニットの有効セクタ等を前記スペアユニットにコピーし、コピー元のデータユニット内またはデータ管理ユニット内を消去して、新たなスペアユニットとするウエアレベリングを実行することを提案している。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2005−275722号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
ところが、上記特許文献1に示されたフラッシュメモリの運用法は、同一アドレスにビット‘0’を上書き可能な機能を備えた高機能なフラッシュメモリでないと実現できない。換言すれば、同一アドレスにビット‘0’を上書きできない低コストのフラッシュメモリを搭載する電子機器では、特許文献1のような運用ができず、高機能なフラッシュメモリに変更しなければならないために、コストアップを招くという問題が生じた。
【0007】
また、ウエアレベリングの実行のために、制御部は、フラッシュメモリ上の全てのデータユニット及びデータ管理ユニットにおけるデータ消去回数を記録し、更に、最大消去回数と最小消去回数との差が所定のしきい値を超えるか否かを評価する演算処理が頻繁に必要となり、ウエアレベリングのために制御部への負担が大きくなって、処理の遅延が生じる虞もあった。
【0008】
また、一般的に、RAM(ランダム・アクセス・メモリ)と比較してフラッシュメモリは動作速度が遅いため、アプリケーションの実行時に、その都度、フラッシュメモリ上の運用データにアクセスする運用法では、処理の高速化が難しいという問題が生じると同時
に、フラッシュメモリへのアクセス頻度の増加によりフラッシュメモリの寿命が低下するという問題も生じた。
【0009】
そこで、本発明の目的は上記課題を解消することに係り、同一アドレスにビット‘0’を上書きできない低コストのフラッシュメモリを搭載する電子機器であっても、フラッシュメモリに対して効率よくデータの書き込みを行うことができ、低コストのフラッシュメモリの使用によるコスト低減を図ることができ、更には、制御部に負担をかけずにフラッシュメモリへのウエアレベリングを実行でき、かつ、アプリケーション実行に伴うフラッシュメモリへのアクセス頻度を下げて、処理の高速化や、フラッシュメモリの寿命延長を図ることもできる電子機器を提供することである。
【課題を解決するための手段】
【0010】
本発明に係る電子機器は、運用データを読み書き可能な記憶手段であるフラッシュメモリ及びRAMと、これらの各記憶手段への前記運用データの読み書きを管理するメモリドライバと、前記メモリドライバを介して前記記憶手段の運用データにアクセスし、前記運用データを、データサイズが前記フラッシュメモリ上でのデータの読み書きの最小単位となる記憶ブロックサイズ以下となるn個のデータブロックに分割し、分割した各データブロックに、マップ番号を割り付け、RAM上の更新されたデータブロックを前記フラッシュメモリに書き込む制御部と、備え、前記制御部は、前記n個のデータブロックのマップ番号を書き換え候補番号に設定して、該書き換え候補番号をマップ番号として持つ記憶ブロックがフラッシュメモリ上に複数存在するか否かを判定する候補ブロック判定処理を実施し、前記候補ブロック判定処理で、書き換え候補番号に一致するマップ番号の記憶ブロックが前記フラッシュメモリ上に複数存在すると判定された時には、該当する複数個の記憶ブロックの内から、更新日時が最も古い記憶ブロックを書き込みブロックに決定して、該記憶ブロックにRAM上の該当データブロックを書き込むことを特徴とする。
【0011】
本発明に係るデータの記憶方法は、運用データを読み書き可能な記憶手段であるフラッシュメモリ及びRAMと、これらの各記憶手段への前記運用データの読み書きを管理するメモリドライバと、前記メモリドライバを介して前記記憶手段の運用データにアクセスし、RAM上の更新された後記データブロックを前記フラッシュメモリに書き込む制御部と、を備える電子機器におけるデータの記憶方法であって、前記運用データを、データサイズが前記フラッシュメモリ上でのデータの読み書きの最小単位となる記憶ブロックサイズ以下となるn個のデータブロックに分割するステップと、分割した各データブロックに、マップ番号を割り付けるステップと、前記n個のデータブロックのマップ番号を書き換え候補番号に設定して、該書き換え候補番号をマップ番号として持つ記憶ブロックがフラッシュメモリ上に複数存在するか否かを判定する候補ブロック判定処理を実施するステップと、前記候補ブロック判定処理で、書き換え候補番号に一致するマップ番号の記憶ブロックが前記フラッシュメモリ上に複数存在すると判定された時には、該当する複数個の記憶ブロックの内から、更新日時が最も古い記憶ブロックを書き込みブロックに決定して、該記憶ブロックにRAM上の該当データブロックを書き込むステップと、を備えるデータの記憶方法。
【発明の効果】
【0012】
本発明に係る電子機器では、フラッシュメモリへのデータの書き込みは、フラッシュメモリを構成している記憶ブロック単位で単純にデータの消去・書き込みを行うだけで良いため、同一アドレスにビット‘0’を上書きできない低コストのフラッシュメモリを搭載する電子機器であっても、フラッシュメモリに対して効率よくデータの書き込みを行うことができ、低コストのフラッシュメモリの使用によるコスト低減を図ることができる。
【図面の簡単な説明】
【0013】
【図1】本発明に係る電子機器の一実施の形態の概略構成を示すブロック図である。
【図2】図1に示した電子機器に搭載されるフラッシュメモリの構成説明図である。
【図3】図2に示したフラッシュメモリの各記憶ブロックへのデータ書き込み方法を示すフローチャートである。
【図4】図3に示したデータ書き込み方法でフラッシュメモリ上の各記憶ブロックのデータが更新される態様の説明図である。
【発明を実施するための形態】
【0014】
以下、本発明に係る電子機器の好適な実施の形態について、図面を参照して詳細に説明する。
【0015】
図1は本発明に係る電子機器の一実施の形態の概略構成を示すブロック図、図2は図1に示した電子機器に搭載されるフラッシュメモリの構成説明図、図3は図2に示したフラッシュメモリの各記憶ブロックへのデータ書き込み方法を示すフローチャート、図4は図3に示したデータ書き込み方法でフラッシュメモリ上の各記憶ブロックのデータが更新される態様の説明図である。
【0016】
この一実施の形態の電子機器1は、メールの送受信機能やメモ機能などを有した多機能型の携帯電話機であって、図1に示すように、通話やその他のアプリケーションによる処理に必要な運用データ3(図2参照)を読み書き可能な記憶手段であるフラッシュメモリ5及びRAM(ランダム・アクセス・メモリ)6と、アプリケーションプログラムやその他の固定データを記憶したROM(リード・オンリー・メモリ)7と、記憶手段5,6への運用データ3の読み書きやROM7からのデータの読み出しを管理するメモリドライバ9と、メモリドライバ9を介して各記憶手段5,6の運用データ3にアクセスしてアプリケーションを実行する制御部11と、この制御部11と各記憶手段5〜7との間のデータ通路、あるいは制御部11と後述の無線部19との間のデータ通路となるデータバス12と、アプリケーションの処理状況等を表示する液晶ディスプレイによる表示部13と、運用データ3の入力やアプリケーションへの処理命令を入力するための各種の入力キーを備えたキー操作部15と、音声の入出力を行うマイク/スピーカ17と、アプリケーションの処理に応じてデータを無線通信により送受信する無線部19と、を備えた構成とされている。
【0017】
本実施の形態の場合、運用データ3は、図4(a)に示すように、電話による通話処理時の音量やネゴシエーションなどに対する設定値を規定の順序で書き込んだデータ列である設定値データ21と、電話による通話処理に必要な電話帳データを書き込んだ電話帳データ23と、メール機能を使ったSMS(ショートメッセージサービス)用の設定データを書き込んだデータ列であるSMSデータ25とから構成されている。
【0018】
この運用データ3において、設定値データ21のデータサイズは3kバイト、電話帳データ23のデータサイズは7kバイト、SMSデータ25のデータサイズは6kバイトであり、運用データ3を連続するデータ列で表示するなら、16kバイトサイズのデータマップで表示される。
【0019】
本実施の形態では、フラッシュメモリ5には、データの読み書きの最小単位となるブロックサイズが8kバイトの記憶ブロックを複数備えた構成のものが使用されている。
【0020】
本実施の形態では、運用データ3は、データサイズがフラッシュメモリ5のブロックサイズ以下となる設定値データ21,電話帳データ23,SMSデータ25の3個のデータブロック(データマップ)に分割して、データブロック単位で取り扱う。また、分割した各データブロックの先頭には、マップ番号Mi及びフラッシュ更新カウンタ値Fiの2つのフラグ値を割り付けてデータブロック相互を識別可能に構成する。
【0021】
フラッシュメモリ5は、図2に示すように、運用データ3の分割数3に相応する3個の
記憶ブロック31,32,33に、スペア用の2個の記憶ブロック34,35を追加した、合計5個の記憶ブロック31,32,33,34,35を有するものを使用している。
【0022】
各記憶ブロック31,32,33,34,35は、前述したようにデータサイズが8kバイトの記憶ブロックで、図2は、運用データ3を構成する3個のデータブロック21,23,25が、3個の記憶ブロックに書き込まれた状態を示している。
【0023】
各ブロックデータ21,23,25に付与するマップ番号Mi及びフラッシュ更新カウンタ値Fiの2つのフラグ値は、それぞれ8バイトで表示されるデータで、フラッシュメモリ5の8kバイトの記憶ブロックに書き込む際には、8kバイトの記憶ブロックの先頭の16バイトに書き込まれる。従って、運用データ3の分割された各データ21,23,25は、フラッシュメモリ5の8kバイトの記憶ブロックに書き込まれる時には、記憶ブロック先頭から16バイトオフセットした位置から書き込まれる。
【0024】
マップ番号Miは、分割されたデータ種を示すもので、本実施の形態の場合は、運用データ3を3つのデータに分割したことから、設定値データ21のマップ番号Miは1(=0001h)に、電話帳データ23のマップ番号Miは2(=0002h)に、SMSデータ25のマップ番号Miは3(=0003h)に設定される。
【0025】
フラッシュ更新カウンタ値Fiは、8バイトを使った計数値で、0001hから始まり、データが更新されるたびにカウンタ値を1インクリメントした値になり、FFFFhまで到達すると、次は、初期値である0001hに戻される。
【0026】
本実施の形態の電子機器1では、機器の電源投入時には、フラッシュメモリ5から各データブロック21,23,25の最新データをRAM6に読み込み、以後のアプリケーション処理時の運用データ3の読み書きはRAM6上に展開されている各データブロック21,23,25に対して実行する。
【0027】
データブロック21,23,25を読み込むRAM6には、各データブロック毎に、アプリケーションからのアクセスによるデータ更新の有無を識別可能にするRAM更新カウンタが準備される。RAM更新カウンタは、フラッシュメモリ5の各記憶ブロックに付けるフラッシュ更新カウンタ値Fiと同様に例えば8バイトを使った計数値で示し、電源投入でフラッシュメモリ5からRAM6にコピーされた各設定値データ21,23,25の初期状態では、いずれもRAM更新カウンタ値は、0000hから始まる。そして、各データブロック毎に、1バイトの書き込みが発生する都度、カウンタ値を1インクリメントした値になり、FFFFhまで到達すると、次は、初期値である0000hに戻される。
【0028】
一方、電子機器1において、電源投入された後は、例えば電源オフ時、又は電池の消尽時、又は電話モードの待機状態時に、RAM6上の更新されたデータブロックをフラッシュメモリ5に書き込む。
【0029】
RAM6上の更新されたデータブロックは、RAM更新カウンタ値が0000h以外の値となっていることで判別され、ひとつのデータブロックを書き込むときで、RAM更新カウンタ値が0000h以外のものが複数存在していた場合には、RAM更新カウンタ値が最大のものがフラッシュメモリ5に書き込まれる。フラッシュメモリ5への書き込みが終了したデータブロックは、RAM更新カウンタ値が0000hに戻される。
【0030】
本実施の形態の電子機器1では、RAM6上の更新されたデータブロックをフラッシュメモリ5に書き込む処理は、図3に示す手順で実行される。
【0031】
即ち、電源オフ時、又は電池の消尽時、又は電話モードの待機状態時などのデータ更新するタイミングが訪れると、制御部11がメモリドライバ9に更新するデータブロックのマップ番号を通知する(ステップS101)。これにより、一連の、データ更新処理が開始される。
【0032】
更新するデータブロックのマップ番号が通知されたメモリドライバ9は、まず、フラッシュメモリ5上のデータが記録されている全ての記憶ブロックのマップ番号Miとフラッシュ更新カウンタ値Fiを取得する(ステップS111)。次に、取得した記憶ブロックの情報から、マップ番号Mi及びフラッシュ更新カウンタ値Fiが記録されていないスペア用の記憶ブロック(未使用状態の記憶ブロック)が残存しているか否かを判定する(ステップS112)。
【0033】
例えば、フラッシュメモリ5上で記憶ブロック使用状況が図4(a)の状態にあって、ステップS112の判定処理で未使用状態の記憶ブロックが有ると判定された時には、ステップS113に移行して、その未使用記憶ブロックの一つを、更新データを書き込む記憶ブロックに決定する。
【0034】
上記ステップS111〜S113までの流れは、RAM6上の更新されたデータブロックをフラッシュメモリ5に書き込むデータ更新の際には、フラッシュメモリ5上の未使用の記憶ブロックを優先して、書き込みブロックに選定することを意味している。
【0035】
ステップS113により書き込みブロックが決定されたら、ステップS121に移行する。
【0036】
一方、フラッシュメモリ5上でブロック使用状況が図4(b)の状態にあって、ステップS112の判定処理で未使用状態の記憶ブロックが無いと判定された時には、ステップS114に進む。
【0037】
このステップS114では、運用データ3を分割した3個のデータブロック21,23,25をマップ番号順に並べた時に更新すべきデータブロックの次の順位に位置するデータブロックのマップ番号を書き換え候補番号に設定する。
【0038】
このステップS114のおける処理を具体例で説明する。
【0039】
図4(b)に示すフラッシュメモリ5の使用状況で、ステップS101で通知された更新データのマップ番号が1であったとする。
【0040】
本実施の形態の場合、マップ番号は、1,2,3の3種類で、ステップS101で通知された更新データはマップ番号1が付与されている設定値データ21であり、更新すべきデータブロック21の次の順位に位置するデータブロック22のマップ番号は2である。
【0041】
そこで、ステップS114では、書き換え候補番号として‘2’が設定される。
【0042】
換言すると、運用データ3を分割した複数個のデータブロックに、連続番号でマップ番号が付与される場合は、ステップS101で通知されたマップ番号値に+1した番号が、ステップS114で設定する書き換え候補番号となる。
【0043】
ステップS114において書き換え候補番号が設定されたら、ステップS115に移行して、その書き換え候補番号をマップ番号として持つ記憶ブロックがフラッシュメモリ5上に複数存在するか否かを判定する候補ブロック判定処理を実施する。
【0044】
具体例で説明すると、次のようになる。
【0045】
図4(b)に示すフラッシュメモリ5の使用状況で、ステップS101で通知された更新データのマップ番号が‘1’で、ステップS114では書き換え候補番号として‘2’が設定された場合で説明する。
【0046】
図4(b)に示したフラッシュメモリ5の使用状況で、書き換え候補番号の‘2’をマップ番号として持つ記憶ブロックは、フラッシュメモリ5上の記憶ブロック32,34,35の3つである。従って、この場合は、ステップS115では、‘該当する複数の記憶ブロックが有る’と判定することになる。
【0047】
もう一つ、別の例を挙げて、説明する。
【0048】
図4(b)に示すフラッシュメモリ5の使用状況で、ステップS101で通知された更
新データのマップ番号が‘2’で、ステップS114では書き換え候補番号として‘3’が設定された場合で説明する。
【0049】
図4(b)に示したフラッシュメモリ5の使用状況で、書き換え候補番号の‘3’をマップ番号として持つ記憶ブロックは、フラッシュメモリ5上の記憶ブロック33の1つだけである。従って、この場合は、ステップS115では、‘該当する複数の記憶ブロックが無い’と判定することになる。
【0050】
ステップS115で‘該当する複数の記憶ブロックが無い’と判定したときには、次のステップS116に進んで、それまでの書き換え候補番号に+1して、書き換え候補番号を次の順位のマップ番号1に更新して、ステップS115に戻る。
【0051】
書き換え候補番号は、1,2,3の3つのマップ番号値の並び順を順に移行するため、それまでの書き換え候補番号が3の場合、更新すると、1に戻る。
【0052】
ステップS116で書き換え候補番号が‘1’に更新されて、ステップS115に戻ると、図4(b)に示したフラッシュメモリ5の使用状況で、書き換え候補番号の‘1’をマップ番号として持つ記憶ブロックは、フラッシュメモリ5上の記憶ブロック31の1つだけである。従って、この場合も、ステップS115では、‘該当する複数の記憶ブロックが無い’と判定し、ステップS116に移行する。ステップS116では、書き換え候補番号が‘2’に更新されて、ステップS115に戻ると、図4(b)に示したフラッシュメモリ5の使用状況で、書き換え候補番号の‘2’をマップ番号として持つ記憶ブロックは、フラッシュメモリ5上の記憶ブロック32,34,35の3つである。従って、この場合は、ステップS115では‘該当する複数の記憶ブロックが有る’と判定して、次のステップS117に進む。
【0053】
即ち、本実施の形態の処理では、ステップS115の候補ブロック判定処理で該当する複数個の記憶ブロックが存在しないと判定された時には、書き換え候補番号にマップ番号が一致する複数個の記憶ブロックが存在すると判定されるまで、書き換え候補番号を次の順位のマップ番号に更新するステップS116と、候補ブロック判定処理を実施するステップS115とが繰り返されることになる。
【0054】
ステップS117では、該当する同一マップ番号の複数個の記憶ブロックの内、更新日時が最も古い記憶ブロックを書き込みブロックに決定する。
【0055】
具体的には、書き換え候補番号が2で、ステップS115において記憶ブロック32,34,35の3つが該当記憶ブロックであると判定されて、ステップS117に進んだ場合、これらの3つの記憶ブロックの内、フラッシュ更新カウンタ値Fiの一番小さい記憶ブロック32を、更新データを書き込むブロックに決定して、次のステップS118に進む。
【0056】
ステップS118ではステップS117で決定された記憶ブロックに対してデータの消去を行い、次のステップS121では、図4(c)の記憶ブロック32あるいは図4(d)の記憶ブロック32に示すように、該当するフラッシュメモリ5の記憶ブロックに対して、ステップS101で通知されたRAM6上のデータブロックをコピーする。
【0057】
次いで、フラッシュメモリ5上に存在する同一マップ番号の記憶ブロックの中で最新の記憶ブロックとなるように、フラッシュ更新カウンタ値Fiを更新し(ステップS123)、マップ番号Miを書き込み(ステップS124)、必要が有れば、後処理を実施して(ステップS125)、一連の処理が終了する。
【0058】
ステップS125で実施する後処理とは、フラッシュメモリ5へのデータ更新で、データを更新した記憶ブロックのフラッシュ更新カウンタ値Fiが初期値に更新される場合は、更新した記憶ブロックと同一のマップ番号を持つ他の記憶ブロックのデータを消去する処理である。
【0059】
以上に説明した一実施の形態の電子機器1では、フラッシュメモリ5へのデータの書き込みは、フラッシュメモリ5を構成している記憶ブロック単位で単純にデータの消去・書き込みを行うだけで良いため、同一アドレスにビット‘0’を上書きできない低コストのフラッシュメモリを搭載する電子機器1であっても、フラッシュメモリ5に対して効率よくデータの書き込みを行うことができ、低コストのフラッシュメモリ5の使用によるコスト低減を図ることができる。
【0060】
また、通常、アプリケーション実行時における運用データ3へのアクセスは、機器の電源投入時にフラッシュメモリ5からRAM6にコピーされた運用データ3に対して行うため、アプリケーション実行に伴うフラッシュメモリ5へのアクセス頻度を下げて、処理の高速化や、フラッシュメモリ5の寿命延長を図ることもできる。
【0061】
また、本実施の形態の電子機器1では、フラッシュメモリ5として、運用データ3を構成する3つのデータ記憶ブロック21,23,25に相応する3個の記憶ブロック31,32,33に、スペア用の2個の記憶ブロック34,35を追加した、合計5個の記憶ブロックを有するものを使用しており、RAM6上の更新されたデータブロックをフラッシュメモリ5に書き込むデータ更新の際には、図3のステップS111〜S113にも示したように、未使用の記憶ブロックを優先して、書き込みブロックに選定する。
【0062】
そのため、フラッシュメモリ5の各記憶ブロック31〜35へのデータのリード・ライト回数が、スペア用の記憶ブロックの存在比率に相応して緩和され、スペア用の記憶ブロックへのデータの読み書き分が、フラッシュメモリ5の各記憶ブロックへのデータのリード・ライト回数を均等化するウエアレベリングとしての効力を発揮するため、フラッシュメモリ5の寿命延長を図ることができる。
【0063】
また、本実施の形態の電子機器1では、RAM6上の更新されたデータブロックをフラッシュメモリ5に書き込むデータ更新の際に、フラッシュメモリ5上に未使用の記憶ブロックが存在していない時には、図3のステップS114〜S116にも示したように、3個のデータブロック21,23,25をマップ番号順に並べた時に更新すべきデータブロックの次の順位に位置するデータブロックのマップ番号を書き換え候補番号に設定して、該書き換え候補番号をマップ番号として持つ記憶ブロックがフラッシュメモリ5上に複数存在するか否かを判定する候補ブロック判定処理を実施し、もしも、その候補ブロック判定処理で該当する複数個の記憶ブロックが存在しないと判定された時には、書き換え候補番号にマップ番号が一致する複数個の記憶ブロックが存在すると判定されるまで、書き換え候補番号を次の順位のマップ番号に更新して同様の判定処理を繰り返す。
【0064】
そして、図3のステップS117〜S121に示すように、候補ブロック判定処理で、書き換え候補番号に一致するマップ番号の記憶ブロックが複数存在すると判定された時には、該当する複数個の記憶ブロックの内、更新日時が最も古い記憶ブロックを書き込みブロックに決定して、その記憶ブロックにRAM6上で該当データブロックを書き込む。
【0065】
そのため、データ更新されるフラッシュメモリ5上の記憶ブロックは、更新すべきデータブロックのマップ番号と異なるマップ番号を持ち、且つ、前回の更新時がより古いものが優先されることになり、フラッシュメモリ5の各記憶ブロックへのデータのリード・ライト回数を均等化するウエアレベリングを効率良く実施することが可能になり、フラッシュメモリ5の寿命延長を図ることができる。
【0066】
また、データ更新するフラッシュメモリ5上の記憶ブロックの決定処理は、更新すべきデータブロックのマップ番号をインクリメントして生成される書き換え候補番号に一致するマップ番号の記憶ブロックが複数存在するか否かを調べ、存在している場合にその複数個の記憶ブロックの中からデータ更新日時が一番古い記憶ブロックを選択するもので、記
憶ブロックの決定のための制御処理(演算処理)としては、マップ番号の照合と、フラッシュ更新カウンタ値の比較だけで良く、簡単に実現できる。従って、制御部11に負担をかけずにフラッシュメモリ5へのウエアレベリングを実行でき、処理の高速化や、フラッシュメモリ5の寿命延長を図ることができる。
【0067】
また、本実施の形態の電子機器1では、図3にステップS125に示すように、一連の処理の最後に後処理が設定されていて、フラッシュメモリ5へのデータ更新で、データを更新した記憶ブロックのフラッシュ更新カウンタ値が初期値に更新される場合は、更新した記憶ブロックと同一のマップ番号を持つ他の記憶ブロックのデータを消去する。
【0068】
例えば、フラッシュメモリ5上の記憶ブロックに書き込まれるフラッシュ更新カウンタ値が、0001h〜FFFFhまでの変数で、前回のカウンタ値がFFFFhであった場合に、次の更新時のカウンタ値は初期値である0001hに戻すが、カウンタ値0001hを書き込んだ時には、同じマップ番号で、それ以外のカウンタ値が書き込まれている全ての記憶ブロックは、データを消去して、スペア用の記憶ブロック扱いにする。これにより、フラッシュ更新カウンタ値の大小と、更新時の新旧との相関が崩れることを防止でき、フラッシュメモリ5へのデータの読み書きの信頼性を向上させることができる。
【0069】
なお、本発明に係る電子機器は、上記実施の形態に示した携帯電話機に限らない。本発明は、例えば、モバイルパソコン、ノート型パソコン、デジタルカメラなどを始めとして、アプリケーションによる処理に必要な運用データを読み書き可能な記憶手段としてフラッシュメモリを具備した構成をなす各種の電子機器に応用可能である。
【0070】
また、アプリケーションによる処理に必要な運用データの分割数は、上記実施の形態に限定するものではなく、運用データのデータサイズや、フラッシュメモリのブロックサイズなどから適宜に設計変更することができる。
【0071】
また、フラッシュメモリに装備するブロックサイズや記憶ブロック数、スペア用の記憶ブロックの数量等も、運用データの分割数や分割された各データブロックのデータサイズに応じて、適宜に設計変更することが可能である。
【符号の説明】
【0072】
1 電子機器
3 運用データ
5 フラッシュメモリ(記憶手段)
6 RAM(ランダム・アクセス・メモリ)(記憶手段)
7 ROM(リード・オンリー・メモリ)
9 メモリドライバ
11 制御部
12 データバス
13 表示部
15 キー操作部
17 マイク/スピーカ
19 無線部
21,23,25 データブロック
31〜35 記憶ブロック
Mi マップ番号(フラグ値)
Fi フラッシュ更新カウンタ値(フラグ値)

【特許請求の範囲】
【請求項1】
運用データを読み書き可能な記憶手段であるフラッシュメモリ及びRAMと、これらの各記憶手段への前記運用データの読み書きを管理するメモリドライバと、前記メモリドライバを介して前記記憶手段の運用データにアクセスし、前記運用データを、データサイズが前記フラッシュメモリ上でのデータの読み書きの最小単位となる記憶ブロックサイズ以下となるn個のデータブロックに分割し、分割した各データブロックに、マップ番号を割り付け、RAM上の更新されたデータブロックを前記フラッシュメモリに書き込む制御部と、備え、
前記制御部は、
前記n個のデータブロックのマップ番号を書き換え候補番号に設定して、該書き換え候補番号をマップ番号として持つ記憶ブロックがフラッシュメモリ上に複数存在するか否かを判定する候補ブロック判定処理を実施し、
前記候補ブロック判定処理で、書き換え候補番号に一致するマップ番号の記憶ブロックが前記フラッシュメモリ上に複数存在すると判定された時には、該当する複数個の記憶ブロックの内から、更新日時が最も古い記憶ブロックを書き込みブロックに決定して、該記憶ブロックにRAM上の該当データブロックを書き込む
ことを特徴とする電子機器。
【請求項2】
運用データを読み書き可能な記憶手段であるフラッシュメモリ及びRAMと、これらの各記憶手段への前記運用データの読み書きを管理するメモリドライバと、前記メモリドライバを介して前記記憶手段の運用データにアクセスし、RAM上の更新された後記データブロックを前記フラッシュメモリに書き込む制御部と、を備える電子機器におけるデータの記憶方法であって、
前記運用データを、データサイズが前記フラッシュメモリ上でのデータの読み書きの最小単位となる記憶ブロックサイズ以下となるn個のデータブロックに分割するステップと、
分割した各データブロックに、マップ番号を割り付けるステップと、
前記n個のデータブロックのマップ番号を書き換え候補番号に設定して、該書き換え候補番号をマップ番号として持つ記憶ブロックがフラッシュメモリ上に複数存在するか否かを判定する候補ブロック判定処理を実施するステップと、
前記候補ブロック判定処理で、書き換え候補番号に一致するマップ番号の記憶ブロックが前記フラッシュメモリ上に複数存在すると判定された時には、該当する複数個の記憶ブロックの内から、更新日時が最も古い記憶ブロックを書き込みブロックに決定して、該記憶ブロックにRAM上の該当データブロックを書き込むステップと、
を備えるデータの記憶方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2012−146340(P2012−146340A)
【公開日】平成24年8月2日(2012.8.2)
【国際特許分類】
【出願番号】特願2012−106234(P2012−106234)
【出願日】平成24年5月7日(2012.5.7)
【分割の表示】特願2006−353494(P2006−353494)の分割
【原出願日】平成18年12月27日(2006.12.27)
【出願人】(000006633)京セラ株式会社 (13,660)
【Fターム(参考)】