JP5376551B2 - フラッシュメモリシステム、電子機器、および携帯端末装置 - Google Patents

フラッシュメモリシステム、電子機器、および携帯端末装置 Download PDF

Info

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
Application number
JP2006150741A
Other languages
English (en)
Other versions
JP2007323212A (ja
Inventor
幸男 上野
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 JP2006150741A priority Critical patent/JP5376551B2/ja
Publication of JP2007323212A publication Critical patent/JP2007323212A/ja
Application granted granted Critical
Publication of JP5376551B2 publication Critical patent/JP5376551B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

Description

本発明は、フラッシュメモリシステム、電子機器、およびそれを備えた携帯端末装置に関するものである。
従来からセクタ管理情報とブロック管理情報とに基づいてブロック単位でのデータの書き込み及びセクタ単位でのデータの一括消去を含むアクセス制御を行い、セクタ消去回数に基づいてデータの書き込み対象のセクタを選択するフラッシュメモリ制御方法が知られている。
これは、セクタ消去回数の最も少ないセクタを選択してデータ書き込みを行うものである(たとえば、特許文献1参照)。
しかしながら、特許文献1に示す制御方法にあっては、書き込みをするとき、必ずしもセクタ消去回数が少ないセクタが空き容量の多いセクタとは限らないため、このセクタに空きが少ないにもかかわらず書き込みを実行し、容量が足りない場合、他の領域を見ることなしにこのセクタをガーベッジコレクションしなければならない。
このため、このガーベッジコレクションを実行することにより処理速度が遅くなるという問題がある。特に、特許文献1に示す制御方法は、書き込み時にガーベッジコレクションを実行する可能性が高いため、データ書き込みの処理時間が長くなるという問題がある。
このような問題を解消するためのデータ管理システムとして、フラッシュメモリシステム(FMS)が提案されている(たとえば特許文献2参照)。
FMSにおいては、一つのブロック(ユニット)サイズを単位として、データユニット(複数個)、データ管理ユニット、そしてスペアユニットを割り当て、アプリケーション側がデバイスを意識しないで、データを保存したり読み出したりすることを可能とするシステムである。
特開2000−330850号公報 特開2005−275722号公報
ところで、FMSは全データ管理容量が64kバイト程度のコンパクトなものに対応するシステムとして構築されていた。
しかし、全容量が、1Mバイトを超えると当然でデータ量も多くなり、管理すべきデータエントリ(各セクタデータの保存情報)数も多くなる。
したがって、フラッシュメモリ上のどこに、すなわち、どの物理アドレスに所望のデータが存在するかを検索するのに時間がかかってしまうという不利益がある。
また、何らかの残しておきたいデータが存在していたとしても、フォーマットする場合は全てのデータが一斉に消去され初期化されてしまう。
本発明の目的は、効率よくデータの書き込みを行うことができることはもとより、データエントリ数が多くなっても、アクセス時間の増大を抑止できるフラッシュメモリシステムおよびそれを備えた電子機器を提供する。
本発明の第1の観点は、指定された論理アドレスを物理アドレスに変換してアクセスを行うフラッシュメモリシステムであって、複数のドライブ部に分割可能なメモリ部と、前記メモリ部の分割された複数のドライブ部へのアクセス制御する制御手段とを有し、前記メモリ部には、第1種のデータと当該第1種のデータに比べて更新が頻繁に行われない第2種のデータとが別々のドライブに格納されている。
本発明の第2の観点は、指定された論理アドレスを物理アドレスに変換してアクセスを行うフラッシュメモリシステムを有する電子機器であって、前記フラッシュメモリシステムは、複数のドライブ部に分割可能なメモリ部と、前記メモリ部の分割された複数のドライブ部へのアクセス制御する制御手段とを有し、前記メモリ部には、第1種のデータと当該第1種のデータに比べて更新が頻繁に行われない第2種のデータとが別々のドライブに格納されている。
本発明の第3の観点は、無線通信機能を有する携帯端末装置であって、当該端末装置の動作を統括して制御を行う制御部と、前記制御部からの要求を受け付け、指定された論理アドレスを物理アドレスに変換してアクセスを行うフラッシュメモリシステムとを有し、前記フラッシュメモリシステムは、複数のドライブ部に分割可能なメモリ部と、前記メモリ部の分割された複数のドライブ部へのアクセス制御する制御手段と、を有し、前記メモリ部には、第1種のデータと当該第1種のデータに比べて更新が頻繁に行われない第2種のデータとが別々のドライブに格納されている。
本発明によれば、効率よくデータの書き込みを行うことができることはもとより、データエントリ数が多くなっても、アクセス時間の増大を抑止できる利点がある。
以下、本発明の一実施形態による電子機器を図面に関連付けて説明する。
本実施形態においては、電子機器の一例として、携帯電話等の携帯端末装置を例にして説明する。
本実施形態においては、基本となるフラッシュメモリシステム(FMS)において、アプリケーション側はフラッシュメモリ上のセクタ配置を意識しないで単純に0からの連続番地を指定するだけで、フラッシュメモリに対して書き込み、読み出しできる。このような番地を論理アドレスと呼び、アプリケーション側から論理アドレスを指定されると、本フラッシュメモリドライバ(システム)は物理的な番地に変換し、書き込み読み出しを実行する。
連続アドレスを有するようなメモリ管理を行う種々のシステムが本フラッシュメモリの対象となる。
そして、本実施形態においては、フラッシュメモリシステム(FMS)を2ドライブ化して分離することで、各ドライブに機能別の異なったデータを格納することが可能となる。さらに、各ドライブの容量に大小の区別を付け、容量の小さいドライブに対してはデータの高速アクセスを実現させている。
以下に、携帯端末装置の構成、それの採用されるFMS(フラッシュメモリシステム)の構成、および本実施形態の特徴的なFMSの構成を、図面に関連付けて順を追って説明する。
図1は本実施形態に係るフラッシュメモリドライバを含む携帯端末装置の構成例を示すブロック図である。
本携帯端末装置10は、図1に示すように、無線部11、制御部12、メモリ部13、キー操作部14、表示部15、音声処理部16、フラッシュメモリドライバ17、およびフラッシュメモリ18を有する。
無線部11は、図示しない基地局との間で通信回線を確立して無線通信を行う。
制御部12は、携帯端末装置10の動作を統括して制御を行う。
メモリ部13は、ユーザ特有の情報やデータを一時的に記憶するRAM、携帯端末装置10を動作させるためのプログラム等が予め記憶されたROMを含んで構成されている。
キー操作部14は、ユーザのキー操作を検出し、制御部12にキー情報を送る。キー操作部14は、ダイヤルキーやファンクションキー等から構成される。
表示部15は、液晶表示デバイス等のディスプレイに表示するデータ等を制御部12から受け、画面に表示する。
音声処理部16は、通話音声を集音するマイクロフォン(マイク)と通話音声を発音させるスピーカを含んで構成されている。
フラッシュメモリドライバ17は、アプリケーションの制御も含めた制御部12からの要求を受け付け、フラッシュメモリ18に対してアクセスする。
ここで、図2を関連付けして、図1に示すフラッシュメモリ18における記憶領域の構成を説明する。
図2は、本実施形態に係るフラッシュメモリ18の記憶領域の構成例を示す図である。
本実施形態のフラッシュメモリ18内は、図2に示すように、ブロック消去単位毎にユニットUTに分かれている。ここでは、例として8ユニットUTの構成とし、各ユニットUTは64kバイトの容量とする。
8ユニットのうち、1ユニットがデータ管理ユニットDCUT、6ユニット分がデータユニットDUTと、残りの1ユニットがスペアユニットSPUTとして形成されている。
データユニットDUTはデータDTを格納するユニットであり、各データユニットDCUには512バイトに区切られたセクタSCTを有する。このセクタがデータとしての書き込み単位となる。
データ管理ユニットDCUTは、データユニットDUTを管理するユニットであり、16バイト単位として各セクタデータの保存情報であるエントリ(ETRY)情報を有する。また、各ユニットの先頭1セクタ分にユニットヘッダUHを設けてある。
このユニットヘッダUHには、ユニット識別マーク、ブロックイレーズカウンタを設ける。
ユニット識別マークは、そのユニットがデータ管理ユニットDCUTかスペアユニットSPUTか、あるいはデータユニットDUTかを識別するために使用する。所定のブロックがその時点での用途により、このマークはその都度書き換えられる。フォーマット時には、データ管理ユニットDCUTは先頭ブロック、スペアユニットは末尾ブロックに割り当てられる。
ブロックイレーズカウンタは、そのブロックが消去された回数を記録しておくものであり、フォーマット時は00hにする。
各ユニットヘッダUHには、00hからFFhの値が格納され、制御によりFFhの次には00hに戻る。
スペアユニットSPUTは、ガーベッジコレクションやウエアレベリングの実行の際に使用するユニットである。ガーベッジコレクションとウエアレベリングについては後述する。
データ管理ユニットDCUTのエントリ情報には、512バイトセクタの先頭アドレス、ユニット番号(データ格納のブロック番号)、セクタ番号、有効/無効の判別部、無効エントリのダーティ(dirty)/クリーン(clean)判別部を有する。
有効/無効の判別部は、ユーザの操作に基づいて、データ削除されたときに00hに書き込みを行う。
データは無効であるが、この時点では無効エントリのdirty/cleanの判別部がまだdirtyである。すなわち、フラッシュメモリシステム上、管理された無効セクタを示す。
dirty/cleanの判別部は、ガーベッジコレクションされたときに00hに書き込みを行う。すなわち、データは無効であり、かつ、cleanである。
データ管理上、完全に削除された状態になる。
エントリの更新は、新エントリを空き領域に書き込み、旧エントリを無効にすることにより行う。
エントリ情報を含むデータ管理ユニットDCUTをガーベッジコレクションするときは、dirtyのエントリはスペアユニットSPUTにコピーするが、cleanのエントリのユニットは既にガーベッジコレクション済みであるためcleanのエントリはコピーしない。
ここで、ガーベッジコレクションおよびウエアレベリングについて説明する。
ガーベッジコレクションとは、データを削除/編集等することによりデータユニットDUTに無効セクタが生じ、それを除いて有効セクタのみをスペアユニットSPUTにコピーして、コピー元のユニットはブロックイレーズして、このイレーズしたユニットが次のスペアユニットSPUTとすることである。
コピーすると同時に、新エントリ情報を書き込んで旧エントリ情報を無効化することにより、データ管理ユニットDCUTのエントリ情報も更新する。
ガーベッジコレクションの対象ユニットは、最も無効セクタの多いユニットである。
また、ガーベッジコレクションの起動条件は、書き込み時(書き込み前)にどのユニットも空きがないと判断したとき、あるいは、書き込み終了時/待機時に無効セクタ数が所定の閾値を超えたときである。
データ管理ユニットDCUTもガーベッジコレクションの対象になり、起動条件は、無効エン卜リのdirty/clean判別部のclean部が閾値以上になったと判定したときである。
動作は、エントリ上の有効/無効セクタをスペアユニットSPUTヘコピーし、clean部はコピーしない。そして、不要となった元のエントリのブロックを消去し、次のスペアユニットSPUTとする。
次に、ウエアレベリングについて説明する。
ウエアレベリングは、消去回数が制限されるフラッシュメモリ18において、全てのブロックを平均的に使用するように管理することで、特定のブロックのみを繰り返し消去して先に寿命が尽きてしまうようなことがないように、メモリ全体を有効に活用するものである。
ウエアレベリングの起動については、各ブロックイレーズカウンタをチェックし、ウエアレベリング起動の閾値以上になっていたら、そのカウンタ値が最小であるブロックを選定する。
そして、このブロックの全データをスペアユニットSPUTにコピーすると同時に、新エントリ情報を書き込み、旧エントリ情報を無効化して、最後に、コピー元をブロック消去し、次のスペアユニットSPUTとする。各ブロックイレーズカウンタの値(最小と最大)が、ウエアレベリング起動の閾値以上に差が開くまでウエアレベリングを実行しない。
書き込み終了時/待機時に起動する、ガーベッジコレクションまたはウエアレベリングには、優先順位を設け、第一はデータ管理ユニットDCUTのガーベッジコレクション、第二はデータユニットDUTのガーベッジコレクション、第三はウエアレベリングとする。一回の起動では、優先順位に従っていずれか一つを実行する。
次に、図3に関連付けて、図1に示すフラッシュメモリドライバ17の構成を説明する。
図3は、本実施形態に係るフラッシュメモリドライバの構成例を示すブロック図である。
本フラッシュメモリドライバ17は、アプリケーションインタフェース(I/F)部171、キャッシュ制御部172、シーケンス制御部173、ユニットヘッダアクセス部174、エントリアクセス部175、セクタデータアクセス部176、エントリ検索部177、およびデバイスI/F部178を有する。
アプリケーションI/F部171は、アプリケーション側からの書き込み/読み出し要求等を受け付け、要求を振り分けて、キャッシュ制御部172、またはシーケンス制御部173に送る。
キャッシュ制御部172は、たとえばセクタサイズと同サイズのキャッシュメモリを有し、後述する制御動作を行う。
シーケンス制御部173は、フラッシュメモリ18に対して実行したい操作、すなわち、アプリケーション側からの要求操作を順に手順を踏んでアクセス部を実行制御する。
ユニットヘッダアクセス部174は、ユニットヘッダをアクセスするためのもので、ユニット識別マーク、ブロックイレーズカウンタを書き込み/読み出しする。実際のアクセスは、デバイスI/F部178を通して行われる。
エントリアクセス部175は、ユニット番号、セクタ番号、有効/無効の判別部等を書き込み/読み出しする。実際のアクセスは、デバイスI/F部178を通して行われる。
セクタデータアクセス部176は、バイトセクタのデータを書き込み/読み出しする。実際のアクセスは、デバイスI/F部178を通して行われる。
エントリ検索部177は、データ管理ユニットを検索して無効セクタ数が最大のユニットを取得したり、dirty/clean判別部におけるcleanの数を取得する。
デバイスI/F部178は、直接フラッシュメモリ18に対して書き込み/読み出し等を実行する。
次に、キャッシュ制御部172の動作を説明する。
アプリケーション側からサイズ指定でデータ書き込み要求があった場合、キャッシュ制御部172は、指定アドレスを含むセクタをフラッシュメモリ18からキャッシュメモリヘリード(読み出し)する。このとき、キャッシュ制御部172は、指定アドレスを基にユニット番号、セクタ番号を求めてデータをリードする。
そして、このデータをキャッシュメモリに指定サイズ分、上書きし、キャッシュ保持中フラグをONにする。キャッシュメモリのサイズ超過分のデータがあれば、後で別のセクタにライトする。
続いて、キャッシュメモリのデータをフラッシュメモリ18へライト(書き込み)し、ライト後、キャッシュ保持中フラグをOFFにする。
さらに、書き込み要求を受ける場合、同一セクタであれば、データをキャッシュに上書きする。
別セクタアドレスであれば、現在のキャッシュ内容をフラッシュメモリ18へライトし、キャッシュ保持中フラグOFFにする。
そして、指定アドレスを含むセクタをフラッシュメモリ18からキャッシュへリードする。データをキャッシュに上書きし、キャッシュ保持中フラグONにする。
このように、比較的サイズの小さなデータおよび1バイトデータを高い頻度で書き換える場合、データ管理ユニットDCUTやデータユニットDUTに無効エントリ/セクタが多く発生するという負担が大きいものになってしまうが、キャッシュ制御部172を設けることによりこのことは解決される。
そして、アプリケーション側は最終データの書き込み要求を行った後、キャッシュデータのフラッシュ要求を行う必要がある。これによりキャッシュメモリに最後に残ったデータをフラッシュメモリ18に書き込むことができる。
キャッシュ制御部172がフラッシュ要求を受け取ったら、キャッシュ保持中フラグONのときだけフラッシュメモリ18にライトする。
また、リード要求があれば、基本的にはフラッシュメモリ18から直接データリードする。但し、キャッシュメモリにあるデータがまだフラッシュメモリ18にライトされていない時に、リード要求があればキャッシュメモリ内のデータを読み出す。
次に、フォーマット処理について説明する。
フォーマット処理は、フラッシュメモリ18を読み書きできる状態に初期化することであり、すなわち各ユニットにユニットヘッダUHを付加する処理のことである。
アプリケーションからの要求をアプリケーションI/F部171が受信し、シーケンス制御部173へ渡す。
これを受けてシーケンス制御部173は、デバイスI/F部178を介して各ユニットをイレーズする。
次いで、シーケンス制御部173は、ユニットヘッダを生成する。このフォーマット処理後は、ユニットヘッダを除いて全てFFhとなる。
次に、書き込み処理について説明する。
書き込み処理は、1セクタ分のデータの書き込みを行う処理であり、複数セクタの書き込みの場合はこの処理を繰り返し行うことになる。
まず、書き込み要求を受けると、エントリ検索部177がデータ管理ユニットDCUTのエントリ情報を検索し、ライトするための空き領域のあるユニット番号を決定する。このとき、エントリ検索部177は空きの最も多いユニットを選択する。具体的には、データ管理ユニットDCUTのエントリ情報を先頭から末尾まで検索し、エントリアドレスが書かれていないFFFFhが末尾となる。
dirty/clean判別部がcleanでないもの、すなわちエントリとして意味をなすものを抽出することで有効、無効セクタのユニット毎の総数を取得する。有効/無効セクタ数が最小のユニットが空きの最も多いユニットとなる。
続いて、そのユニットの空きセクタ番号を取得し、フラッシュメモリ18上の物理アドレスを決定する。
そして、データ管理ユニットDCUTに対してエントリアクセス部175を介してエントリ情報を書き込み、セクタデータアクセス部176を介して1セクタデータを書き込む。
もし、旧エントリが存在すれば、エントリアクセス部175によりこの旧エントリを無効化する。あるエントリの最初の書き込みでは、それが新規になるので対応する旧エントリは存在しない。
次に、読み出し処理について説明する。
読み出し処理は、キャッシュメモリ内に読み出し対象のセクタデータがあれば、それを読み出すだけでよい。キャッシュメモリ内に対象のセクタデータがないとき、エントリ検索部177によりエントリデータを読み出す。
そして、アプリケーション側からの指定アドレスデータが格納されているユニット番号、セクタ番号を取得し、物理アドレスを決定する。
このアドレスのデータをデバイスI/F部178を介して読み出す。
以上が本実施形態に係るフラッシュメモリシステム(FMS)の基本的な機能である。
本実施形態においては、以上のFMSを2ドライブ部(FMS1/FMS2)構成に分けるものとする。
それにより、データ管理ユニットやスペアユニットも各ドライブ部に設ける。
ポイントとして、アプリケーション側からはドライブ部を意識せずに使用できるようにする。FMSドライバインタフェースにおいて、FMS1/FMS2の区別をアドレスにより判定し、各々のFMSに対応するパラメータ設定(FMSベースアドレスやトータルブロック数の設定)を行う。
扱うデータとしてたとえば、電話帳データや楽曲データがある。電話帳データは、ユーザが頻繁に書き換え更新するデータである。メールや履歴データも頻繁に更新される。一方、楽曲データは、一度書き込まれると電話帳ほどは更新されないデータである。
このような場合、電話帳関係をFMS1に格納し、楽曲関係をFMS2に格納する。
楽曲関係は電話帳関係と比較してデータ量が多く、FMSで必要とするユニット数も多い。データ量が多いと検索に時間がかかりアクセスに不利となる。
そこで、電話帳データアクセスに影響を与えないように、これらデータを別々のドライブに格納することで、特に、電話帳などアクセスの速い状態を保持できる。
また、楽曲だけを消さずに残し、電話帳関係だけ消すときにもこの場合、FMS1だけをフォーマットすることで容易に実現可能となる。
先にFMS1/FMS2の区別をアドレスにより判足すると記述したが、アドレス判定について、たとえばアクセスするアドレスが
000000h〜OFFFFFhのとき、FMS1、
100000h〜FFFFFFhのとき、FMS2、
として扱う。
FMS1/FMS2として2ドライブ部化する具体例を以下に示す。
特許文献2では、6つのデータユニットと、1つのデータ管理ユニット及び1つのスペアユニットから構成され、各ユニットは8kバイトの容量を有しているものとして説明している。
すなわち、
(6+1+1)×8kバイト=64kバイト
が全FMS容量であった。
一方、容量拡張して全FMS容量がIMバイトを超える場合、相対的に各ユニットの容量も大きくなり(たとえば、ユニット当り64kバイト)、管理すべきデータ量も増大する。
たとえば、総ユニット数を22として上の式に当てはめれば、
(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、FMS2の区別をアドレスにより判定することである。そして、判定後、各ドライブに応じたパラメータ類の設定を行う。
図4は、本実施形態のアドレス判定処理に伴う動作を説明するためのフローチャートである。
まず、要求により書き込み、あるいは読み出し処理が発生すると(ST1)、その対象アドレスをチェックし、FMS1で扱うアドレスかFMS2で扱うアドレスかの判定を行う(ST2)。
FMS1で扱うアドレスであった場合、FMS1ベースアドレスの設定として、デバイスの物理アドレス上での開始アドレスを設定する(ST3)。
次に、FMS1のトータルブロック数の設定を行う(ST4)。
ここでいうブロックはユニットと同義であり、データユニット、データ管理ユニット、そして、スペアユニットを合わせた全てのユニットを設定する。
次に、FMS1のデータ管理ユニット番号を設定する(ST5)。
データ管理ユニットは物理的に固定のユニットが存在するわけではなく、書き込みを繰り返すことによりガーベッジコレクションが発生し、その後は物理的にアドレスの異なる別のユニットにデータ管理ユニットが割り当てられる。
ここでは、現時点でのデータ管理ユニット番号を設定する。
次に、FMS1のガーベッジコレクション・ウエアレベリング起動閾値の設定を行う(ST6)。無効データの数がある一定数を超えたらガーベッジコレクションを実行するが、その値を閾値として設定する。
データユニット用とデータ管理ユニット用として各々、閾値が存在する。
また、前述のウエアレベリングを実行するための閾値もここで設定する。
以上の設定を全て完了した後に、フラッシュメモリに対して書き込みあるいは読み出しを実行する(ST7)。
ステップST2において、FMS2を扱うアドレスであると判定すると、FMS2として、FMS1と同様の設定を行う。
すなわち、FMS2で扱うアドレスであった場合、FMS2ベースアドレスの設定として、デバイスの物理アドレス上での開始アドレスを設定する(ST8)。
次に、FMS2のトータルブロック数の設定を行う(ST9)。
ここでいうブロックはユニットと同義であり、データユニット、データ管理ユニット、そして、スペアユニットを合わせた全てのユニットを設定する。
次に、FMS2のデータ管理ユニット番号を設定する(ST10)。
FMS1の場合と同様、データ管理ユニットは物理的に固定のユニットが存在するわけではなく、書き込みを繰り返すことによりガーベッジコレクションが発生し、その後は物理的にアドレスの異なる別のユニットにデータ管理ユニットが割り当てられる。
ここでは、現時点でのデータ管理ユニット番号を設定する。
次に、FMS2のガーベッジコレクション・ウエアレベリング起動閾値の設定を行う(ST11)。FMS1の場合と同様、無効データの数がある一定数を超えたらガーベッジコレクションを実行するが、その値を閾値として設定する。
データユニット用とデータ管理ユニット用として各々、閾値が存在する。
また、前述のウエアレベリングを実行するための閾値もここで設定する。
以上の設定を全て完了した後に、フラッシュメモリに対して書き込みあるいは読み出しを実行する(ST12)。
なお、読み出し時は、ステップST6、ST11におけるガーベッジコレクション、ウエアレベリング起動閾値の設定を省略しても良い。
読み出し時は、ガーベッジコレクションやウエアレベリングが発生しないためである。
以上説明したように、本実施形態によれば、一般的にフォーマットすると、全てのデータが消失するため、機能別に残したいデータがある場合は対処が困難であった。たとえば楽曲だけを消さずに残し、電話帳関係だけ消すときにも、一方のFMS1だけフォーマットすることで容易に実現可能となる。
FMSにおいてデータエントリ数が多くなるとアクセス時間がかかり、高速化することが課題となっていたが2ドライブ化することにより、データアクセスを高速化できる利点がある。
また、従来の制御方法のように書き込み時において各ユニットのイレーズ回数で判断せずに、ユニットの空きサイズで書き込み対象のユニットを決定するようにしたため、このユニットに対しては必ず書き込みが可能であり、書き込む直前にガーベッジコレクションが実行されることがないようにすることができる。
また、1バイト毎の連続書き込み要求に対しては、キャッシュメモリを設けることによりセクタの更新を操り返すことはなく、ガーベッジコレクションの増加を防ぐことが可能となる。キャッシュメモリを設けることにより、高速化することができるとともに、効率の悪いフラッシュメモリ18への書き込みを避けることができる。
すなわち、キャッシュメモリに存在するセクタデータがアプリケーションからの書き込み要求のデータアドレスを含んでいる場合は、キャッシュメモリに上書きするだけで、その都度フラッシュメモリ18に書き込みを行わずに済む。
1バイトデータの書き込みの度に512バイトセクタデータをフラッシュメモリ18に書き込むと無効セクタが増大することになるが、それが避けられる利点は大きい。また、ガーベッジコレクションの対象ユニットを使用頻度が最低のユニットとするのではなく、無効セクタ数が最大のユニットとすることにより、最も効率のよいガーベッジコレクションを実現することができる。
さらに、待機時にガーベッジコレクションまたはウエアレベリングを実行することにより、ユーザが意識しないときにフラッシュメモリ18内のガーベッジ量を少なくし、また、偏ったブロックイレーズを避けることが可能となる。
また、ファイル位置を管理するためのテーブルであるFAT(ファイル・アロケーション・テーブル)を使わないことによりシンプルなシステムを提供でき、FATを使用しないのでFAT破壊等で復旧が困難となる事態が避けることができるとともに、ファイルの概念を持たないため、システム構成を簡略化することが可能となる。
また、アプリケーション側は、フラッシュメモリ18上のセクタ配置を意識しないで単純に0からの連続アドレスを指定するだけで、フラッシュメモリ18に対する書き込み/読み出しを行うことができる。このように、アプリケーション側から論理アドレスを指定されると、フラッシュメモリドライバ17は目標の物理アドレスに変換し、書き込み/読み出しを実行することができる。これは、連続アドレスを有するメモリ管理を実施するあらゆる電子機器に適用することができ、例えば移動通信を使用した携帯電話機や移動通信機能を有した携帯情報端末(PDA)などに適用可能である。
また、図1における処理部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによりフラッシュメモリ18制御処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
本実施形態に係るフラッシュメモリドライバを含む携帯端末装置の構成例を示すブロック図である。 本実施形態に係るフラッシュメモリの記憶領域の構成例を示す図である。 本実施形態に係るフラッシュメモリドライバの構成例を示すブロック図である。 本実施形態の動作を説明するためのフローチャートである。
符号の説明
10・・・携帯端末装置、11・・・無線部、12・・・制御部、13・・・メモリ部、14・・・キー操作部、15・・・表示部、16・・・音声処理部、17・・・フラッシュメモリドライバ、18・・・フラッシュメモリ、171・・・アプリケーションI/F部、172・・・キャッシュ制御部、173・・・シーケンス制御部、174・・・ユニットヘッダアクセス部、175・・・エントリアクセス部、176・・・セクタデータアクセス部、177・・・エントリ検索部、178・・・デバイスI/F部

Claims (3)

  1. 指定された論理アドレスを物理アドレスに変換してアクセスを行うフラッシュメモリシステムであって、
    相互に独立してアクセスとフォーマットが可能な複数のドライブ部に分割可能なメモリ部と、
    前記メモリ部の分割された複数のドライブ部へのアクセスを上記論理アドレスにより判定して制御する制御手段とを有し、
    前記メモリ部には、第1種のデータと当該第1種のデータに比べて更新の頻度が少ない第2種のデータとが別々のドライブに格納され、
    前記第1種のデータが格納されているドライブ部は、前記第2種のデータが格納されているドライブ部に比べて低容量とする
    ことを特徴とするフラッシュメモリシステム。
  2. 指定された論理アドレスを物理アドレスに変換してアクセスを行うフラッシュメモリシステムを有する電子機器であって、
    前記フラッシュメモリシステムは、
    相互に独立してアクセスとフォーマットが可能な複数のドライブ部に分割可能なメモリ部と、
    前記メモリ部の分割された複数のドライブ部へのアクセスを上記論理アドレスにより判定して制御する制御手段とを有し、
    前記メモリ部には、第1種のデータと当該第1種のデータに比べて更新の頻度が少ない第2種のデータとが別々のドライブに格納され、
    前記第1種のデータが格納されているドライブ部は、前記第2種のデータが格納されているドライブ部に比べて低容量とする
    ことを特徴とする電子機器。
  3. 無線通信機能を有する携帯端末装置であって、
    当該端末装置の動作を統括して制御を行う制御部と、
    前記制御部からの要求を受け付け、指定された論理アドレスを物理アドレスに変換してアクセスを行うフラッシュメモリシステムとを有し、
    前記フラッシュメモリシステムは、
    相互に独立してアクセスとフォーマットが可能な複数のドライブ部に分割可能なメモリ部と、
    前記メモリ部の分割された複数のドライブ部へのアクセスを上記論理アドレスにより判定して制御する制御手段と、を有し、
    前記メモリ部には、第1種のデータと当該第1種のデータに比べて更新の頻度が少ない第2種のデータとが別々のドライブに格納され、
    前記第1種のデータが格納されているドライブ部は、前記第2種のデータが格納されているドライブ部に比べて低容量とする
    ことを特徴とする携帯端末装置。
JP2006150741A 2006-05-30 2006-05-30 フラッシュメモリシステム、電子機器、および携帯端末装置 Expired - Fee Related JP5376551B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 メモリコントローラ及びフラッシュメモリシステム

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