JP2008165446A - 電子機器 - Google Patents
電子機器 Download PDFInfo
- 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
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では、前記フラッシュメモリ内には予めスペアユニットを設定しておき、前記制御部は、前記データ管理ユニットと前記データユニットとのそれぞれの消去回数のうち最大消去回数と最小消去回数を求め、最大消去回数と最小消去回数との差が所定のしきい値を超えている場合に、最小消去回数のデータユニットまたはデータ管理ユニットの有効セクタ等を前記スペアユニットにコピーし、コピー元のデータユニット内またはデータ管理ユニット内を消去して、新たなスペアユニットとするウエアレベリングを実行することを提案している。
前記制御部は、前記運用データを、データサイズが前記フラッシュメモリ上でのデータの読み書きの最小単位となる記憶ブロックサイズ以下となるn個のデータブロックに分割し、分割した各データブロックの先頭に、マップ番号及びフラッシュ更新カウンタ値の2つのフラグ値を割り付け、
機器の電源投入時に、前記フラッシュメモリから各データブロックの最新データを前記RAMにコピーし、以後のアプリケーション処理時の運用データの読み書きは前記RAM上の各データブロックに対して実行し、以後の電源オフ時又は電池の消尽時、又は待機状態時に、前記RAM上の更新されたデータブロックを前記フラッシュメモリに書き込むことを特徴とする電子機器により達成される。
前記制御部は、前記RAM上の更新されたデータブロックを前記フラッシュメモリに書き込むデータ更新の際には、未使用の記憶ブロックを優先して、書き込みブロックに選定する構成とすると良い。
前記n個のデータブロックをマップ番号順に並べた時に更新すべきデータブロックの次の順位に位置するデータブロックのマップ番号を書き換え候補番号に設定して、該書き換え候補番号をマップ番号として持つ記憶ブロックがフラッシュメモリ上に複数存在するか否かを判定する候補ブロック判定処理を実施し、
もしも、その候補ブロック判定処理で該当する複数個の記憶ブロックが存在しないと判定された時には、書き換え候補番号にマップ番号が一致する複数個の記憶ブロックが存在すると判定されるまで、書き換え候補番号を次の順位のマップ番号に更新して同様の判定処理を繰り返し、
前記候補ブロック判定処理で、書き換え候補番号に一致するマップ番号の記憶ブロックが複数存在すると判定された時には、該当する複数個の記憶ブロックの内、更新日時が最も古い記憶ブロックを書き込みブロックに決定して、その記憶ブロックにRAM上で該当データブロックを書き込む構成とすると良い。
このような構成にすると、例えば、フラッシュメモリ上の記憶ブロックに書き込まれるフラッシュ更新カウンタ値が、0001h〜FFFFhまでの変数で、前回のカウンタ値がFFFFhであった場合に、次の更新時のカウンタ値は初期値である0001hに戻すが、カウンタ値0001hを書き込んだ時には、同じマップ番号で、それ以外のカウンタ値が書き込まれている全ての記憶ブロックは、データを消去して、スペア用の記憶ブロック扱いにする。これにより、フラッシュ更新カウンタ値の大小と、更新時の新旧との相関が崩れることを防止でき、フラッシュメモリへのデータの読み書きの信頼性を向上させることができる。
図1は本発明に係る電子機器の一実施の形態の概略構成を示すブロック図、図2は図1に示した電子機器に搭載されるフラッシュメモリの構成説明図、図3は図2に示したフラッシュメモリの各記憶ブロックへのデータ書き込み方法を示すフローチャート、図4は図3に示したデータ書き込み方法でフラッシュメモリ上の各記憶ブロックのデータが更新される態様の説明図である。
この運用データ3において、設定値データ21のデータサイズは3kバイト、電話帳データ23のデータサイズは7kバイト、SMSデータ25のデータサイズは6kバイトであり、運用データ3を連続するデータ列で表示するなら、16kバイトサイズのデータマップで表示される。
本実施の形態では、運用データ3は、データサイズがフラッシュメモリ5のブロックサイズ以下となる設定値データ21,電話帳データ23,SMSデータ25の3個のデータブロック(データマップ)に分割して、データブロック単位で取り扱う。また、分割した各データブロックの先頭には、マップ番号Mi及びフラッシュ更新カウンタ値Fiの2つのフラグ値を割り付けてデータブロック相互を識別可能に構成する。
各記憶ブロック31,32,33,34,35は、前述したようにデータサイズが8kバイトの記憶ブロックで、図2は、運用データ3を構成する3個のデータブロック21,23,25が、3個の記憶ブロックに書き込まれた状態を示している。
フラッシュ更新カウンタ値Fiは、8バイトを使った計数値で、0001hから始まり、データが更新されるたびにカウンタ値を1インクリメントした値になり、FFFFhまで到達すると、次は、初期値である0001hに戻される。
RAM6上の更新されたデータブロックは、RAM更新カウンタ値が0000h以外の値となっていることで判別され、ひとつのデータブロックを書き込むときで、RAM更新カウンタ値が0000h以外のものが複数存在していた場合には、RAM更新カウンタ値が最大のものがフラッシュメモリ5に書き込まれる。フラッシュメモリ5への書き込みが終了したデータブロックは、RAM更新カウンタ値が0000hに戻される。
即ち、電源オフ時、又は電池の消尽時、又は電話モードの待機状態時などのデータ更新するタイミングが訪れると、制御部11がメモリドライバ9に更新するデータブロックのマップ番号を通知する(ステップS101)。これにより、一連の、データ更新処理が開始される。
上記ステップS111〜S113までの流れは、RAM6上の更新されたデータブロックをフラッシュメモリ5に書き込むデータ更新の際には、フラッシュメモリ5上の未使用の記憶ブロックを優先して、書き込みブロックに選定することを意味している。
ステップS113により書き込みブロックが決定されたら、ステップS121に移行する。
このステップS114では、運用データ3を分割した3個のデータブロック21,23,25をマップ番号順に並べた時に更新すべきデータブロックの次の順位に位置するデータブロックのマップ番号を書き換え候補番号に設定する。
図4(b)に示すフラッシュメモリ5の使用状況で、ステップS101で通知された更新データのマップ番号が1であったとする。
本実施の形態の場合、マップ番号は、1,2,3の3種類で、ステップS101で通知された更新データはマップ番号1が付与されている設定値データ21であり、更新すべきデータブロック21の次の順位に位置するデータブロック22のマップ番号は2である。
そこで、ステップS114では、書き換え候補番号として‘2’が設定される。
換言すると、運用データ3を分割した複数個のデータブロックに、連続番号でマップ番号が付与される場合は、ステップS101で通知されたマップ番号値に+1した番号が、ステップS114で設定する書き換え候補番号となる。
具体例で説明すると、次のようになる。
図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に戻る。
具体的には、書き換え候補番号が2で、ステップS115において記憶ブロック32,34,35の3つが該当記憶ブロックであると判定されて、ステップS117に進んだ場合、これらの3つの記憶ブロックの内、フラッシュ更新カウンタ値Fiの一番小さい記憶ブロック32を、更新データを書き込むブロックに決定して、次のステップS118に進む。
次いで、フラッシュメモリ5上に存在する同一マップ番号の記憶ブロックの中で最新の記憶ブロックとなるように、フラッシュ更新カウンタ値Fiを更新し(ステップS123)、マップ番号Miを書き込み(ステップS124)、必要が有れば、後処理を実施して(ステップS125)、一連の処理が終了する。
そのため、フラッシュメモリ5の各記憶ブロック31〜35へのデータのリード・ライト回数が、スペア用の記憶ブロックの存在比率に相応して緩和され、スペア用の記憶ブロックへのデータの読み書き分が、フラッシュメモリ5の各記憶ブロックへのデータのリード・ライト回数を均等化するウエアレベリングとしての効力を発揮するため、フラッシュメモリ5の寿命延長を図ることができる。
そして、図3のステップS117〜S121に示すように、候補ブロック判定処理で、書き換え候補番号に一致するマップ番号の記憶ブロックが複数存在すると判定された時には、該当する複数個の記憶ブロックの内、更新日時が最も古い記憶ブロックを書き込みブロックに決定して、その記憶ブロックにRAM6上で該当データブロックを書き込む。
例えば、フラッシュメモリ5上の記憶ブロックに書き込まれるフラッシュ更新カウンタ値が、0001h〜FFFFhまでの変数で、前回のカウンタ値がFFFFhであった場合に、次の更新時のカウンタ値は初期値である0001hに戻すが、カウンタ値0001hを書き込んだ時には、同じマップ番号で、それ以外のカウンタ値が書き込まれている全ての記憶ブロックは、データを消去して、スペア用の記憶ブロック扱いにする。これにより、フラッシュ更新カウンタ値の大小と、更新時の新旧との相関が崩れることを防止でき、フラッシュメモリ5へのデータの読み書きの信頼性を向上させることができる。
3 運用データ
5 フラッシュメモリ(記憶手段)
6 RAM(ランダム・アクセス・メモリ)(記憶手段)
7 ROM(リード・オンリー・メモリ)
9 メモリドライバ
11 制御部
12 データバス
13 表示部
15 キー操作部
17 マイク/スピーカ
19 無線部
21,23,25 データブロック
31〜35 記憶ブロック
Mi マップ番号(フラグ値)
Fi フラッシュ更新カウンタ値(フラグ値)
Claims (4)
- アプリケーションによる処理に必要な運用データを読み書き可能な記憶手段であるフラッシュメモリ及びRAMと、これらの各記憶手段への前記運用データの読み書きを管理するメモリドライバと、前記メモリドライバを介して前記記憶手段の運用データにアクセスしてアプリケーションを実行する制御部とを備える電子機器であって、
前記制御部は、前記運用データを、データサイズが前記フラッシュメモリ上でのデータの読み書きの最小単位となる記憶ブロックサイズ以下となるn個のデータブロックに分割し、分割した各データブロックの先頭に、マップ番号及びフラッシュ更新カウンタ値の2つのフラグ値を割り付け、
機器の電源投入時に、前記フラッシュメモリから各データブロックの最新データを前記RAMにコピーし、以後のアプリケーション処理時の運用データの読み書きは前記RAM上の各データブロックに対して実行し、以後の電源オフ時又は電池の消尽時、又は待機状態時に、前記RAM上の更新されたデータブロックを前記フラッシュメモリに書き込むことを特徴とする電子機器。 - 前記フラッシュメモリとしてn個の記憶ブロックに、m個の記憶ブロックを追加した、合計(n+m)個の記憶ブロックを有するものを使用し、
前記制御部は、前記RAM上の更新されたデータブロックを前記フラッシュメモリに書き込むデータ更新の際には、未使用の記憶ブロックを優先して、書き込みブロックに選定することを特徴とする請求項1に記載の電子機器。 - 前記制御部は、前記RAM上の更新されたデータブロックを前記フラッシュメモリに書き込むデータ更新の際に、前記フラッシュメモリ上に未使用の記憶ブロックが存在していない時には、
前記n個のデータブロックをマップ番号順に並べた時に更新すべきデータブロックの次の順位に位置するデータブロックのマップ番号を書き換え候補番号に設定して、該書き換え候補番号をマップ番号として持つ記憶ブロックがフラッシュメモリ上に複数存在するか否かを判定する候補ブロック判定処理を実施し、
該候補ブロック判定処理で該当する複数個の記憶ブロックが存在しないと判定された時には、書き換え候補番号にマップ番号が一致する複数個の記憶ブロックが存在すると判定されるまで、書き換え候補番号を次の順位のマップ番号に更新して同様の判定処理を繰り返し、
前記候補ブロック判定処理で、書き換え候補番号に一致するマップ番号の記憶ブロックが複数存在すると判定された時には、該当する複数個の記憶ブロックの内、更新日時が最も古い記憶ブロックを書き込みブロックに決定して、該記憶ブロックにRAM上で該当データブロックを書き込むことを特徴とする請求項2に記載の電子機器。 - 前記フラッシュメモリへのデータ更新で、データを更新した記憶ブロックのフラッシュ更新カウンタ値が初期値に更新される場合は、更新した記憶ブロックと同一のマップ番号を持つ他の記憶ブロックはデータを消去することを特徴とする請求項1乃至3のいずれかに記載の電子機器。
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)
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 | 半導体装置 |
-
2006
- 2006-12-27 JP JP2006353494A patent/JP2008165446A/ja active Pending
Patent Citations (4)
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 |