JP5376551B2 - フラッシュメモリシステム、電子機器、および携帯端末装置 - Google Patents
フラッシュメモリシステム、電子機器、および携帯端末装置 Download PDFInfo
- Publication number
- JP5376551B2 JP5376551B2 JP2006150741A JP2006150741A JP5376551B2 JP 5376551 B2 JP5376551 B2 JP 5376551B2 JP 2006150741 A JP2006150741 A JP 2006150741A JP 2006150741 A JP2006150741 A JP 2006150741A JP 5376551 B2 JP5376551 B2 JP 5376551B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- unit
- flash memory
- type
- address
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Description
これは、セクタ消去回数の最も少ないセクタを選択してデータ書き込みを行うものである(たとえば、特許文献1参照)。
このため、このガーベッジコレクションを実行することにより処理速度が遅くなるという問題がある。特に、特許文献1に示す制御方法は、書き込み時にガーベッジコレクションを実行する可能性が高いため、データ書き込みの処理時間が長くなるという問題がある。
したがって、フラッシュメモリ上のどこに、すなわち、どの物理アドレスに所望のデータが存在するかを検索するのに時間がかかってしまうという不利益がある。
また、何らかの残しておきたいデータが存在していたとしても、フォーマットする場合は全てのデータが一斉に消去され初期化されてしまう。
連続アドレスを有するようなメモリ管理を行う種々のシステムが本フラッシュメモリの対象となる。
以下に、携帯端末装置の構成、それの採用されるFMS(フラッシュメモリシステム)の構成、および本実施形態の特徴的なFMSの構成を、図面に関連付けて順を追って説明する。
制御部12は、携帯端末装置10の動作を統括して制御を行う。
表示部15は、液晶表示デバイス等のディスプレイに表示するデータ等を制御部12から受け、画面に表示する。
図2は、本実施形態に係るフラッシュメモリ18の記憶領域の構成例を示す図である。
8ユニットのうち、1ユニットがデータ管理ユニットDCUT、6ユニット分がデータユニットDUTと、残りの1ユニットがスペアユニットSPUTとして形成されている。
データユニットDUTはデータDTを格納するユニットであり、各データユニットDCUには512バイトに区切られたセクタSCTを有する。このセクタがデータとしての書き込み単位となる。
このユニットヘッダUHには、ユニット識別マーク、ブロックイレーズカウンタを設ける。
ユニット識別マークは、そのユニットがデータ管理ユニットDCUTかスペアユニットSPUTか、あるいはデータユニットDUTかを識別するために使用する。所定のブロックがその時点での用途により、このマークはその都度書き換えられる。フォーマット時には、データ管理ユニットDCUTは先頭ブロック、スペアユニットは末尾ブロックに割り当てられる。
ブロックイレーズカウンタは、そのブロックが消去された回数を記録しておくものであり、フォーマット時は00hにする。
各ユニットヘッダUHには、00hからFFhの値が格納され、制御によりFFhの次には00hに戻る。
有効/無効の判別部は、ユーザの操作に基づいて、データ削除されたときに00hに書き込みを行う。
データは無効であるが、この時点では無効エントリのdirty/cleanの判別部がまだdirtyである。すなわち、フラッシュメモリシステム上、管理された無効セクタを示す。
dirty/cleanの判別部は、ガーベッジコレクションされたときに00hに書き込みを行う。すなわち、データは無効であり、かつ、cleanである。
データ管理上、完全に削除された状態になる。
エントリの更新は、新エントリを空き領域に書き込み、旧エントリを無効にすることにより行う。
コピーすると同時に、新エントリ情報を書き込んで旧エントリ情報を無効化することにより、データ管理ユニットDCUTのエントリ情報も更新する。
ガーベッジコレクションの対象ユニットは、最も無効セクタの多いユニットである。
また、ガーベッジコレクションの起動条件は、書き込み時(書き込み前)にどのユニットも空きがないと判断したとき、あるいは、書き込み終了時/待機時に無効セクタ数が所定の閾値を超えたときである。
データ管理ユニットDCUTもガーベッジコレクションの対象になり、起動条件は、無効エン卜リのdirty/clean判別部のclean部が閾値以上になったと判定したときである。
動作は、エントリ上の有効/無効セクタをスペアユニットSPUTヘコピーし、clean部はコピーしない。そして、不要となった元のエントリのブロックを消去し、次のスペアユニットSPUTとする。
ウエアレベリングは、消去回数が制限されるフラッシュメモリ18において、全てのブロックを平均的に使用するように管理することで、特定のブロックのみを繰り返し消去して先に寿命が尽きてしまうようなことがないように、メモリ全体を有効に活用するものである。
ウエアレベリングの起動については、各ブロックイレーズカウンタをチェックし、ウエアレベリング起動の閾値以上になっていたら、そのカウンタ値が最小であるブロックを選定する。
そして、このブロックの全データをスペアユニットSPUTにコピーすると同時に、新エントリ情報を書き込み、旧エントリ情報を無効化して、最後に、コピー元をブロック消去し、次のスペアユニットSPUTとする。各ブロックイレーズカウンタの値(最小と最大)が、ウエアレベリング起動の閾値以上に差が開くまでウエアレベリングを実行しない。
図3は、本実施形態に係るフラッシュメモリドライバの構成例を示すブロック図である。
アプリケーション側からサイズ指定でデータ書き込み要求があった場合、キャッシュ制御部172は、指定アドレスを含むセクタをフラッシュメモリ18からキャッシュメモリヘリード(読み出し)する。このとき、キャッシュ制御部172は、指定アドレスを基にユニット番号、セクタ番号を求めてデータをリードする。
そして、このデータをキャッシュメモリに指定サイズ分、上書きし、キャッシュ保持中フラグをONにする。キャッシュメモリのサイズ超過分のデータがあれば、後で別のセクタにライトする。
続いて、キャッシュメモリのデータをフラッシュメモリ18へライト(書き込み)し、ライト後、キャッシュ保持中フラグをOFFにする。
別セクタアドレスであれば、現在のキャッシュ内容をフラッシュメモリ18へライトし、キャッシュ保持中フラグOFFにする。
そして、指定アドレスを含むセクタをフラッシュメモリ18からキャッシュへリードする。データをキャッシュに上書きし、キャッシュ保持中フラグONにする。
キャッシュ制御部172がフラッシュ要求を受け取ったら、キャッシュ保持中フラグONのときだけフラッシュメモリ18にライトする。
アプリケーションからの要求をアプリケーションI/F部171が受信し、シーケンス制御部173へ渡す。
これを受けてシーケンス制御部173は、デバイスI/F部178を介して各ユニットをイレーズする。
次いで、シーケンス制御部173は、ユニットヘッダを生成する。このフォーマット処理後は、ユニットヘッダを除いて全てFFhとなる。
まず、書き込み要求を受けると、エントリ検索部177がデータ管理ユニットDCUTのエントリ情報を検索し、ライトするための空き領域のあるユニット番号を決定する。このとき、エントリ検索部177は空きの最も多いユニットを選択する。具体的には、データ管理ユニットDCUTのエントリ情報を先頭から末尾まで検索し、エントリアドレスが書かれていないFFFFhが末尾となる。
dirty/clean判別部がcleanでないもの、すなわちエントリとして意味をなすものを抽出することで有効、無効セクタのユニット毎の総数を取得する。有効/無効セクタ数が最小のユニットが空きの最も多いユニットとなる。
続いて、そのユニットの空きセクタ番号を取得し、フラッシュメモリ18上の物理アドレスを決定する。
そして、データ管理ユニットDCUTに対してエントリアクセス部175を介してエントリ情報を書き込み、セクタデータアクセス部176を介して1セクタデータを書き込む。
もし、旧エントリが存在すれば、エントリアクセス部175によりこの旧エントリを無効化する。あるエントリの最初の書き込みでは、それが新規になるので対応する旧エントリは存在しない。
そして、アプリケーション側からの指定アドレスデータが格納されているユニット番号、セクタ番号を取得し、物理アドレスを決定する。
このアドレスのデータをデバイスI/F部178を介して読み出す。
それにより、データ管理ユニットやスペアユニットも各ドライブ部に設ける。
ポイントとして、アプリケーション側からはドライブ部を意識せずに使用できるようにする。FMSドライバインタフェースにおいて、FMS1/FMS2の区別をアドレスにより判定し、各々のFMSに対応するパラメータ設定(FMSベースアドレスやトータルブロック数の設定)を行う。
このような場合、電話帳関係をFMS1に格納し、楽曲関係をFMS2に格納する。
楽曲関係は電話帳関係と比較してデータ量が多く、FMSで必要とするユニット数も多い。データ量が多いと検索に時間がかかりアクセスに不利となる。
そこで、電話帳データアクセスに影響を与えないように、これらデータを別々のドライブに格納することで、特に、電話帳などアクセスの速い状態を保持できる。
また、楽曲だけを消さずに残し、電話帳関係だけ消すときにもこの場合、FMS1だけをフォーマットすることで容易に実現可能となる。
000000h〜OFFFFFhのとき、FMS1、
100000h〜FFFFFFhのとき、FMS2、
として扱う。
特許文献2では、6つのデータユニットと、1つのデータ管理ユニット及び1つのスペアユニットから構成され、各ユニットは8kバイトの容量を有しているものとして説明している。
(6+1+1)×8kバイト=64kバイト
が全FMS容量であった。
(20+1+1)×64kバイト=約1.38Mバイト
となる。
そこで、ユニット数22を2ドライブ部に分割し、たとえば、5ユニットと17ユニットとする。上の式に当てはめれば、
各ドライブは、
FMS1:
(3+1+1)×64kバイト=約320kバイト、
FMS2:
(15+1+1)×64kバイト=約1.06Mバイト
となる。
FMS1は、コンパクトなドライブを保持でき、高速動作が可能となる。
ここでいうブロックはユニットと同義であり、データユニット、データ管理ユニット、そして、スペアユニットを合わせた全てのユニットを設定する。
データ管理ユニットは物理的に固定のユニットが存在するわけではなく、書き込みを繰り返すことによりガーベッジコレクションが発生し、その後は物理的にアドレスの異なる別のユニットにデータ管理ユニットが割り当てられる。
ここでは、現時点でのデータ管理ユニット番号を設定する。
データユニット用とデータ管理ユニット用として各々、閾値が存在する。
また、前述のウエアレベリングを実行するための閾値もここで設定する。
ここでいうブロックはユニットと同義であり、データユニット、データ管理ユニット、そして、スペアユニットを合わせた全てのユニットを設定する。
FMS1の場合と同様、データ管理ユニットは物理的に固定のユニットが存在するわけではなく、書き込みを繰り返すことによりガーベッジコレクションが発生し、その後は物理的にアドレスの異なる別のユニットにデータ管理ユニットが割り当てられる。
ここでは、現時点でのデータ管理ユニット番号を設定する。
データユニット用とデータ管理ユニット用として各々、閾値が存在する。
また、前述のウエアレベリングを実行するための閾値もここで設定する。
読み出し時は、ガーベッジコレクションやウエアレベリングが発生しないためである。
FMSにおいてデータエントリ数が多くなるとアクセス時間がかかり、高速化することが課題となっていたが2ドライブ化することにより、データアクセスを高速化できる利点がある。
すなわち、キャッシュメモリに存在するセクタデータがアプリケーションからの書き込み要求のデータアドレスを含んでいる場合は、キャッシュメモリに上書きするだけで、その都度フラッシュメモリ18に書き込みを行わずに済む。
1バイトデータの書き込みの度に512バイトセクタデータをフラッシュメモリ18に書き込むと無効セクタが増大することになるが、それが避けられる利点は大きい。また、ガーベッジコレクションの対象ユニットを使用頻度が最低のユニットとするのではなく、無効セクタ数が最大のユニットとすることにより、最も効率のよいガーベッジコレクションを実現することができる。
さらに、待機時にガーベッジコレクションまたはウエアレベリングを実行することにより、ユーザが意識しないときにフラッシュメモリ18内のガーベッジ量を少なくし、また、偏ったブロックイレーズを避けることが可能となる。
また、ファイル位置を管理するためのテーブルであるFAT(ファイル・アロケーション・テーブル)を使わないことによりシンプルなシステムを提供でき、FATを使用しないのでFAT破壊等で復旧が困難となる事態が避けることができるとともに、ファイルの概念を持たないため、システム構成を簡略化することが可能となる。
Claims (3)
- 指定された論理アドレスを物理アドレスに変換してアクセスを行うフラッシュメモリシステムであって、
相互に独立してアクセスとフォーマットが可能な複数のドライブ部に分割可能なメモリ部と、
前記メモリ部の分割された複数のドライブ部へのアクセスを上記論理アドレスにより判定して制御する制御手段とを有し、
前記メモリ部には、第1種のデータと当該第1種のデータに比べて更新の頻度が少ない第2種のデータとが別々のドライブ部に格納され、
前記第1種のデータが格納されているドライブ部は、前記第2種のデータが格納されているドライブ部に比べて低容量とする
ことを特徴とするフラッシュメモリシステム。 - 指定された論理アドレスを物理アドレスに変換してアクセスを行うフラッシュメモリシステムを有する電子機器であって、
前記フラッシュメモリシステムは、
相互に独立してアクセスとフォーマットが可能な複数のドライブ部に分割可能なメモリ部と、
前記メモリ部の分割された複数のドライブ部へのアクセスを上記論理アドレスにより判定して制御する制御手段とを有し、
前記メモリ部には、第1種のデータと当該第1種のデータに比べて更新の頻度が少ない第2種のデータとが別々のドライブ部に格納され、
前記第1種のデータが格納されているドライブ部は、前記第2種のデータが格納されているドライブ部に比べて低容量とする
ことを特徴とする電子機器。 - 無線通信機能を有する携帯端末装置であって、
当該端末装置の動作を統括して制御を行う制御部と、
前記制御部からの要求を受け付け、指定された論理アドレスを物理アドレスに変換してアクセスを行うフラッシュメモリシステムとを有し、
前記フラッシュメモリシステムは、
相互に独立してアクセスとフォーマットが可能な複数のドライブ部に分割可能なメモリ部と、
前記メモリ部の分割された複数のドライブ部へのアクセスを上記論理アドレスにより判定して制御する制御手段と、を有し、
前記メモリ部には、第1種のデータと当該第1種のデータに比べて更新の頻度が少ない第2種のデータとが別々のドライブ部に格納され、
前記第1種のデータが格納されているドライブ部は、前記第2種のデータが格納されているドライブ部に比べて低容量とする
ことを特徴とする携帯端末装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006150741A JP5376551B2 (ja) | 2006-05-30 | 2006-05-30 | フラッシュメモリシステム、電子機器、および携帯端末装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006150741A JP5376551B2 (ja) | 2006-05-30 | 2006-05-30 | フラッシュメモリシステム、電子機器、および携帯端末装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007323212A JP2007323212A (ja) | 2007-12-13 |
JP5376551B2 true JP5376551B2 (ja) | 2013-12-25 |
Family
ID=38855986
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006150741A Expired - Fee Related JP5376551B2 (ja) | 2006-05-30 | 2006-05-30 | フラッシュメモリシステム、電子機器、および携帯端末装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5376551B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8341372B2 (en) * | 2010-04-29 | 2012-12-25 | Freescale Semiconductor, Inc. | Emulated electrically erasable (EEE) memory and method of operation |
US9811462B2 (en) * | 2015-04-30 | 2017-11-07 | Toshiba Memory Corporation | Memory system executing garbage collection |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005092677A (ja) * | 2003-09-19 | 2005-04-07 | Matsushita Electric Ind Co Ltd | メモリ装置 |
JP4485231B2 (ja) * | 2004-03-24 | 2010-06-16 | 京セラ株式会社 | 電子機器 |
JP2005293177A (ja) * | 2004-03-31 | 2005-10-20 | Tdk Corp | メモリコントローラ及びフラッシュメモリシステム |
-
2006
- 2006-05-30 JP JP2006150741A patent/JP5376551B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2007323212A (ja) | 2007-12-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8838875B2 (en) | Systems, methods and computer program products for operating a data processing system in which a file delete command is sent to an external storage device for invalidating data thereon | |
EP1782176B1 (en) | Systems, methods, computer readable medium and apparatus for memory management using nvram | |
TWI306263B (ja) | ||
US9747298B2 (en) | Inline garbage collection for log-structured file systems | |
US7515500B2 (en) | Memory device performance enhancement through pre-erase mechanism | |
US8412909B2 (en) | Defining and changing spare space and user space in a storage apparatus | |
US9274944B2 (en) | Wear leveling | |
JP2011530133A (ja) | キャッシュコンテンツの記憶管理 | |
JP3827682B2 (ja) | フラッシュメモリ、そのためのマッピング制御装置及び方法 | |
US10048884B2 (en) | Method for erasing data entity in memory module | |
JP2011128998A (ja) | 半導体記憶装置 | |
JP2006285669A (ja) | ホスト機器 | |
CN110554999A (zh) | 基于日志式文件系统和闪存设备的冷热属性识别和分离方法、装置以及相关产品 | |
JP5874525B2 (ja) | 制御装置、記憶装置、記憶制御方法 | |
JP4551328B2 (ja) | 情報記録媒体におけるデータ領域管理方法、及びデータ領域管理方法を用いた情報処理装置 | |
WO2024183403A1 (zh) | 数据缓存方法、装置、设备和非易失性可读存储介质 | |
CN116860170A (zh) | 一种数据处理方法、装置、设备、介质及固态硬盘 | |
JP5376551B2 (ja) | フラッシュメモリシステム、電子機器、および携帯端末装置 | |
JP4485231B2 (ja) | 電子機器 | |
JP2006126919A (ja) | フラッシュメモリのデータ管理装置およびフラッシュメモリの制御方法 | |
JP2013232144A (ja) | 制御装置、記憶装置、記憶制御方法 | |
EP4187363B1 (en) | Storage controller, storage control method, solid state disk and storage system | |
CN116368472A (zh) | 数据处理方法及相关设备 | |
CN112783420A (zh) | 数据删除与垃圾回收方法、设备、系统及存储介质 | |
JP2008134777A (ja) | ファイル割当テーブルのキャッシュ方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090216 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20111025 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111226 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20120417 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120712 |
|
A911 | Transfer of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20120719 |
|
A912 | Removal of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20120810 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130726 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130919 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5376551 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |