JP2008165446A - 電子機器 - Google Patents

電子機器 Download PDF

Info

Publication number
JP2008165446A
JP2008165446A JP2006353494A JP2006353494A JP2008165446A JP 2008165446 A JP2008165446 A JP 2008165446A JP 2006353494 A JP2006353494 A JP 2006353494A JP 2006353494 A JP2006353494 A JP 2006353494A JP 2008165446 A JP2008165446 A JP 2008165446A
Authority
JP
Japan
Prior art keywords
data
flash memory
block
storage
ram
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
JP2006353494A
Other languages
English (en)
Inventor
Yukio Ueno
幸男 上野
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.)
Kyocera Corp
Original Assignee
Kyocera Corp
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 Kyocera Corp filed Critical Kyocera Corp
Priority to JP2006353494A priority Critical patent/JP2008165446A/ja
Publication of JP2008165446A publication Critical patent/JP2008165446A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Abstract

【課題】 低コストのフラッシュメモリの使用によるコスト低減を可能にし、更には、処理の高速化や、フラッシュメモリの寿命延長を図ることもできる電子機器を提供すること。
【解決手段】 アプリケーション処理で使う運用データ3は、データサイズがフラッシュメモリ5上の記憶ブロックサイズ以下となるn個のデータブロックに分割して、各設定値データ21,23,25の先頭に、マップ番号及びフラッシュ更新カウンタ値Fiを割り付けた構成にし、電源投入時には、フラッシュメモリ5の運用データ3をRAM6にコピーして、以後の運用データ3へのアクセスはRAM6上の各設定値データ21,23,25に対して行い、RAM6上の更新されたデータブロックを適時フラッシュメモリ5に書き込むこむことで、フラッシュメモリ5へのアクセス頻度を低減する。
【選択図】図1

Description

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

Claims (4)

  1. アプリケーションによる処理に必要な運用データを読み書き可能な記憶手段であるフラッシュメモリ及びRAMと、これらの各記憶手段への前記運用データの読み書きを管理するメモリドライバと、前記メモリドライバを介して前記記憶手段の運用データにアクセスしてアプリケーションを実行する制御部とを備える電子機器であって、
    前記制御部は、前記運用データを、データサイズが前記フラッシュメモリ上でのデータの読み書きの最小単位となる記憶ブロックサイズ以下となるn個のデータブロックに分割し、分割した各データブロックの先頭に、マップ番号及びフラッシュ更新カウンタ値の2つのフラグ値を割り付け、
    機器の電源投入時に、前記フラッシュメモリから各データブロックの最新データを前記RAMにコピーし、以後のアプリケーション処理時の運用データの読み書きは前記RAM上の各データブロックに対して実行し、以後の電源オフ時又は電池の消尽時、又は待機状態時に、前記RAM上の更新されたデータブロックを前記フラッシュメモリに書き込むことを特徴とする電子機器。
  2. 前記フラッシュメモリとしてn個の記憶ブロックに、m個の記憶ブロックを追加した、合計(n+m)個の記憶ブロックを有するものを使用し、
    前記制御部は、前記RAM上の更新されたデータブロックを前記フラッシュメモリに書き込むデータ更新の際には、未使用の記憶ブロックを優先して、書き込みブロックに選定することを特徴とする請求項1に記載の電子機器。
  3. 前記制御部は、前記RAM上の更新されたデータブロックを前記フラッシュメモリに書き込むデータ更新の際に、前記フラッシュメモリ上に未使用の記憶ブロックが存在していない時には、
    前記n個のデータブロックをマップ番号順に並べた時に更新すべきデータブロックの次の順位に位置するデータブロックのマップ番号を書き換え候補番号に設定して、該書き換え候補番号をマップ番号として持つ記憶ブロックがフラッシュメモリ上に複数存在するか否かを判定する候補ブロック判定処理を実施し、
    該候補ブロック判定処理で該当する複数個の記憶ブロックが存在しないと判定された時には、書き換え候補番号にマップ番号が一致する複数個の記憶ブロックが存在すると判定されるまで、書き換え候補番号を次の順位のマップ番号に更新して同様の判定処理を繰り返し、
    前記候補ブロック判定処理で、書き換え候補番号に一致するマップ番号の記憶ブロックが複数存在すると判定された時には、該当する複数個の記憶ブロックの内、更新日時が最も古い記憶ブロックを書き込みブロックに決定して、該記憶ブロックにRAM上で該当データブロックを書き込むことを特徴とする請求項2に記載の電子機器。
  4. 前記フラッシュメモリへのデータ更新で、データを更新した記憶ブロックのフラッシュ更新カウンタ値が初期値に更新される場合は、更新した記憶ブロックと同一のマップ番号を持つ他の記憶ブロックはデータを消去することを特徴とする請求項1乃至3のいずれかに記載の電子機器。
JP2006353494A 2006-12-27 2006-12-27 電子機器 Pending JP2008165446A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006353494A JP2008165446A (ja) 2006-12-27 2006-12-27 電子機器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006353494A JP2008165446A (ja) 2006-12-27 2006-12-27 電子機器

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2012106234A Division JP2012146340A (ja) 2012-05-07 2012-05-07 電子機器および記憶方法

Publications (1)

Publication Number Publication Date
JP2008165446A true JP2008165446A (ja) 2008-07-17

Family

ID=39694871

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006353494A Pending JP2008165446A (ja) 2006-12-27 2006-12-27 電子機器

Country Status (1)

Country Link
JP (1) JP2008165446A (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001101087A (ja) * 1999-09-29 2001-04-13 Sharp Corp メモリ及びメモリ制御方法
JP2002366432A (ja) * 2001-06-05 2002-12-20 Kyocera Corp 携帯通信端末
JP2006018594A (ja) * 2004-07-01 2006-01-19 Mitsubishi Electric Corp 情報処理装置
JP2006127152A (ja) * 2004-10-28 2006-05-18 Fujitsu Ltd 半導体装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001101087A (ja) * 1999-09-29 2001-04-13 Sharp Corp メモリ及びメモリ制御方法
JP2002366432A (ja) * 2001-06-05 2002-12-20 Kyocera Corp 携帯通信端末
JP2006018594A (ja) * 2004-07-01 2006-01-19 Mitsubishi Electric Corp 情報処理装置
JP2006127152A (ja) * 2004-10-28 2006-05-18 Fujitsu Ltd 半導体装置

Similar Documents

Publication Publication Date Title
KR100393619B1 (ko) 휴대 단말기의 메모리 장치 및 그 제어방법
US20060069849A1 (en) Methods and apparatus to update information in a memory
US20120278532A1 (en) Dynamically configurable embedded flash memory for electronic devices
US20200233610A1 (en) Data storage device and method for accessing logical-to-physical mapping table thereof
US20150261683A1 (en) Cache memory control in electronic device
JP2004258946A (ja) メモリカード
US8615624B2 (en) Methods, apparatuses, and computer program products for enhancing memory erase functionality
JP4966422B1 (ja) 情報処理装置及びデータ保護方法
KR20030073824A (ko) 범용 직렬 버스를 이용한 시스템의 펌웨어 업그레이드방법 및 장치
WO2024055612A1 (zh) 闪存存储器的数据存储方法、装置、终端设备及存储介质
JP2004326165A (ja) メモリ制御装置およびメモリ制御方法
CN112965661A (zh) 数据存储方法、装置、设备及存储介质
JP2006344177A (ja) データ消去装置及びデータ消去プログラム
JP2010122771A5 (ja)
JP2012221025A (ja) フラッシュメモリ保持データのバックアップ通知システム、その方法およびプログラム
US7681009B2 (en) Dynamically updateable and moveable memory zones
JP2008165446A (ja) 電子機器
JP2012146340A (ja) 電子機器および記憶方法
CN112035378A (zh) 一种数据快速写入flash闪存的方法及系统
JP2010256944A (ja) Nand型フラッシュメモリ保守装置及びnand型フラッシュメモリ保守プログラム及びnand型フラッシュメモリ保守方法
JP4485231B2 (ja) 電子機器
JP5158883B2 (ja) ファームウェア更新方法及びファームウェア更新装置
JP2004296014A (ja) 不揮発性メモリの消去回数平準化方法
JP5410083B2 (ja) 不揮発性メモリドライバ及びこれを備えた電子機器並びに不揮発性メモリ駆動方法
JP2005174468A (ja) フラッシュメモリのアクセス制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091015

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120229

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120306

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120427

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20120427

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120703

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120928

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20121005

A912 Removal of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20121109