JP2011150454A - 移動体端末 - Google Patents
移動体端末 Download PDFInfo
- Publication number
- JP2011150454A JP2011150454A JP2010009782A JP2010009782A JP2011150454A JP 2011150454 A JP2011150454 A JP 2011150454A JP 2010009782 A JP2010009782 A JP 2010009782A JP 2010009782 A JP2010009782 A JP 2010009782A JP 2011150454 A JP2011150454 A JP 2011150454A
- Authority
- JP
- Japan
- Prior art keywords
- data
- block
- protection target
- write
- target data
- 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.)
- Withdrawn
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
【課題】移動体端末の記憶媒体中の全領域をウエアレベリング対象にすると、メモリデバイスの寿命を伸ばせる。しかし、信頼性が要求されるデータと信頼性が要求されないデータが同じ度合で保護されるため、信頼性が要求されるデータの信頼性が確保できない。
【解決手段】移動体端末におけるデータを、保護対象データと保護対象でないデータに分類し、ブロックの消去回数と保護対象データ、保護対象でないデータの種別に応じてウエアレベリング対象範囲を変更する。また、保護対象データを持ち、かつ、消耗度が高いブロックをウエアレベリング対象から除外する。
【選択図】図1
【解決手段】移動体端末におけるデータを、保護対象データと保護対象でないデータに分類し、ブロックの消去回数と保護対象データ、保護対象でないデータの種別に応じてウエアレベリング対象範囲を変更する。また、保護対象データを持ち、かつ、消耗度が高いブロックをウエアレベリング対象から除外する。
【選択図】図1
Description
本発明は、移動体端末のフラッシュ記憶媒体に用いられる消耗平準化(ウエアレベリング)技術に関するものである。
近年、携帯電話機、PDA(Personal Digital Assistant)等の移動体端末に、データを記憶させるための記憶装置として、フラッシュ記憶媒体メモリが用いられている。フラッシュ記憶媒体は、いくつかの連続した領域に分けられていて、それぞれ領域ごとに個別に消去可能である。このような領域は、当技術分野でユニット、ブロックまたはセクタなど様々な呼び方で呼ばれているが、本明細書ではブロックと呼ぶことにする。
各ブロックにデータを書き込む際には、データを書き込む前に、既にブロックに書き込まれているデータを消去する必要がある。ところが、フラッシュ記憶媒体の各ブロックには、記憶媒体の物理特性により消去回数の制限があり、消去回数が制限回数を超えるとそのブロックは壊れてしまうという不具合を生じる。また、各ブロックの消去回数の増加に伴い、各ブロックに書き込んだデータを正しく読み出すためには、より短時間でデータの読み出しをする必要があるという不具合を生じる。
従来、消耗平準化(ウエアレベリング)技術として、ブロックのデータを消去する処理が行われ、書き込み可能なブロックが再生成される不揮発性メモリにあって、消去回数の少ないブロックにある有効データの内の単位データ分を、消去回数の多いブロックにコピーし、上記消去回数の少ないブロックにあるコピーされた上記単位データ分を無効データ化する操作を繰り返すように構成したものが知られている。この構成によれば、上記消去回数の多いブロックに有効データがコピーされ、上記消去回数の多いブロックを消去され難くすると共に、上記消去回数の少ないブロックにある有効データがコピーされて無効データ化されていくことで、上記消去回数の少ないブロックを消去し易くすることができる(特許文献1参照)。
また、他の消耗平準化(ウエアレベリング)技術として、フラッシュデータ・マネジャーにより、所与の多数回書き込みまたは消去動作が行われる度に1回ずつ、最終的に全ブロックが選択されるまで順次選択する仕方で周期的に媒体のブロックを選択し、選択されたブロックデータを別の自由ブロックへ移動して、選択されたブロックを消去するように構成したものが知られている。この方法によれば、システムリソースの使用を最小限に抑えつつ消耗平準化(ウエアレベリング)が実現されるべく、静的領域を実際には静的のままにしておらず、同領域内の静的データを実際に他の物理的位置に移動するアルゴリズムを提供することにより可能となる(特許文献2参照)。
しかしながら、特許文献1記載の発明では、フラッシュ記憶媒体中の全く変わらないデータ、または、ほとんど変わらないデータを含む領域(静的領域)のみに対して消耗平準化(ウエアレベリング)を行なっている。携帯端末などのフラッシュ記憶媒体が組み込まれた装置において、フラッシュ記憶媒体の静的領域は、全体の記憶領域に対して、約半分の割合を占めている。そのため、特許文献1記載の発明では、消耗平準化(ウエアレベリング)対象となる範囲は少なく、ブロックの平均消去回数が多くなり、フラッシュ記憶媒体の寿命が伸びないという問題があった。
また、特許文献2記載の発明では、メモリ全領域に対して同等の消耗平準化(ウエアレベリング)を行うため、フラッシュ記憶媒体の寿命が伸ばせるが、信頼性が要求されるデータ(静的データ)と信頼性が要求されないデータ(動的データ)が同じ度合で保護されるため、信頼性が要求されるデータの信頼性が確保できないという問題があった。
本発明は、係る点に鑑みてなされたものであり、移動体端末における信頼性が要求されるデータを検出し、この検出結果に基づきデータの消耗平準化処理(ウエアレベリング処理)を行うことにより、フラッシュ記憶媒体の寿命を延ばしつつ、信頼性が要求されるデータを保護できる移動体端末を提供することを目的とする。
前記従来の課題を解決するため、本発明の移動体端末は、記憶媒体と、前記記憶媒体に保存するデータが保護すべきデータか否かを検出する保護対象データ検出手段と、前記保護対象データ検出手段により検出されたデータを保護対象データにすべきか否かを決定する保護対象データ決定手段と、前記保護対象データ決定手段により保護対象データと決定されたデータを記憶する保護対象データ記憶手段と、前記記憶媒体の消耗度を平準化するための書き込みブロックを決定する書き込みブロック決定手段と、前記記憶媒体における各ブロックの消去回数を記憶するブロック消去回数記憶手段と、前記記憶媒体におけるブロックの平均消去回数が所定値を超えると、保護対象データと保護対象でないデータに対して、異なるウエアレベリング対象範囲を決定するウエアレベリング対象範囲決定手段と、データ書き込みを要求するアプリケーションI/Fと、前記アプリケーションI/Fからの書き込み要求するデータに対して、前記保護対象データ記憶手段から保護対象データか否かを判定し、前記ウエアレベリング対象範囲決定手段が決定したウエアレベリング対象範囲への書き込みを決定し、前記ブロック決定手段に入力するデータ書き込み制御手段と、前記記憶媒体のブロックを消去し、書き込みデータを前記記憶媒体に書き込むブロック消去・書き込み手段と、を備えた構成を有する。
この構成により、保護対象データか否かを検出することができ、保護対象データに対しては、高い優先度で消耗平準化(ウエアレベリング)を行うことで、記憶媒体の寿命を伸ばしつつ、移動体端末にとって大切なデータを保護することができる。
以上のように、本発明の移動体端末によれば、信頼性が要求されるデータに対しては、他のデータに比較して高い信頼性が確保でき、記憶媒体の寿命を伸ばしつつ、移動体端末にとって大切なデータを保護することができる。
以下に、本発明の実施の形態について、図面を参照しながら説明する。
(実施の形態1)
図1は、本発明の実施の形態1における移動体端末のデータ書き込みに関連するブロックの概略構成を示す図である。ここでは、移動体端末におけるデータの書き込みに関連するブロックの動作について詳述し、データの書き込みに関連しない移動体端末中のブロックについての説明は省略する。
図1は、本発明の実施の形態1における移動体端末のデータ書き込みに関連するブロックの概略構成を示す図である。ここでは、移動体端末におけるデータの書き込みに関連するブロックの動作について詳述し、データの書き込みに関連しない移動体端末中のブロックについての説明は省略する。
図1に示したとおり、移動体端末におけるデータ書き込みに関連するブロックは、概略、メモリアクセス部100、データ書き込み要求I/F121、記憶媒体131から構成される。
メモリアクセス部100は、保護対象データ検出部101、保護対象データ決定部102、保護対象データ記憶部103、ウエアレベリング対象範囲決定部104、データ書き込み制御部105、書き込みブロック決定部111、ブロック消去・書き込み部112、ブロック消去回数記憶部113から構成されている。
記憶媒体131は、移動体端末で用いるデータを記憶する。記憶するデータとしては、例えば、プログラムコード、ユーザが撮った写真のデータ、ユーザが送受信したメールに関するデータ、等である。
データ書き込み要求I/F121は、移動体端末で動作しているアプリケーションなどから記憶媒体131に書き込みが要求されるデータの書き込み要求を、メモリアクセス部100に入力する。
保護対象データ検出部101は、記憶するデータが保護対象データか否かを検出する。例えば、ユーザが設定機能により保護したいデータとして設定した、メール、写真などのデータを、保護対象データとして検出する。
保護対象データ決定部102は、保護対象データ検出部101で検出されたデータが「保護対象データ」の場合、「保護対象データ」として維持すべきか、「保護対象でないデータ」に変更すべきかを決定する。保護対象データ検出部101で検出された保護すべきデータ量が多い場合、これらのデータを適切に保護できない。従って、検出された保護すべきデータの量が記憶媒体131の容量の定められた値(例えば、5割)以上になると、保護対象データ検出部101で新しく検出されたデータを保護対象でないデータとする。
保護対象データ記憶部103は、保護対象データ決定部102で判定された保護対象データの記憶媒体131中のアドレスを管理し、この管理情報を記憶媒体131に保管する。
ウエアレベリング対象範囲決定部104は、異なる優先度を持つ書き込みデータに対して、異なるウエアレベリング対象範囲を決定する。例えば、記憶媒体131にあるブロック全体の平均消去回数より消去回数が小さいブロックを保護対象データのウエアレベリング対象範囲とし、残りのブロックは保護対象でないデータのウエアレベリング対象範囲とする。
データ書き込み制御部105は、書き込み要求I/F121から書き込み要求を受け、保護対象データ記憶部103を参照し、書き込み要求データが保護対象データか否かを判断する。そして、ウエアレベリング対象範囲決定部104を参照し、書き込みデータに対するウエアレベリング対象範囲を決定し、これらの情報を書き込みブロック決定部111に入力する。
書き込みブロック決定部111は、ブロック消去回数記憶部213を参照し、データ書き込み制御部105に入力されたウエアレベリング対象範囲の中から、消耗度が低い1つのブロックを書き込みブロックとして決定する。例えば、最も消去回数が小さいブロックを「書き込みブロック」として決定する。このようにすれば、記憶媒体中の各ブロックの消去回数を平準化することができ、その結果、全ブロックの消耗を平準化することができる。
ブロック消去・書き込み部112は、書き込みブロック決定部111により決められた「書き込みブロック」にデータを書き込む。「書き込みブロック」に書き込みがされていない領域が充分ある場合、すぐにデータ書き込みを行う。一方、「書き込みブロック」に空き領域が足りない場合(移動処理が必要な場合)、書き込みブロックにおけるデータを他のブロックに移動し、この書き込みブロックを消去してからデータの書き込みを行う。
ブロック消去回数記憶部113は、記憶媒体131における各ブロックの消去回数を記憶する。ブロック消去・書き込み部112で消去処理が発生した場合、消去ブロックの消去回数を更新する。
図2は、本発明の実施の形態1における移動体端末のデータ書き込み動作を説明するフローチャートである。
まず、データ書き込み制御部105は、書き込み要求I/F121からデータ書き込み要求の有無を判定する(S101)。
データ書き込み制御部105は、書き込み要求I/F121からデータ書き込み要求が発生していない場合(S101、No)、処理を終了する。
一方、書き込み要求I/F121からデータ書き込み要求が発生した場合(S101、Yes)、ブロック消去回数記憶部113を参照し、記憶媒体131における全ブロックの平均消去回数を計算し、平均消去回数が閾値αを超えているか否かを判定する(S102)。
全ブロックの平均消去回数が閾値α以下の場合(S102、No)、データ書き込み制御部105は、記憶媒体の全領域をウエアレベリング対象範囲とする(S105)。
全ブロックの平均消去回数が閾値α以上の場合(S102、Yes)、データ書き込み制御部105は、保護対象データ記憶部103を参照する(S103)。
書き込みデータが「保護対象データ」でないの場合(S104、No)、データ書き込み制御部105は、平均消去回数より大きい消去回数を持つブロックをウエアレベリング対象範囲とする(S106)。
書き込みデータが「保護対象データ」である場合(S104、Yes)、平均消去回数より小さい消去回数を持つブロックをウエアレベリング対象範囲とする(S107)。
書き込みブロック決定部111は、データ書き込み制御部105が決定した書き込みデータのウエアレベリング対象範囲を受け、このウエアレベリング対象範囲から1つの書き込み先ブロックを決定する(S108)。
ブロック消去・書き込み部112は、決定された書き込み先ブロックの移動処理が必要か否かを判断する(S109)。
選択されたブロックに書き込みがされていない領域が充分ある場合(S109、No)、ブロック消去・書き込み部112は、書き込みデータを書き込みブロック決定部111により決定されたブロックにデータの書き込みを行い(S110)、終了する。
一方、選択されたブロックに書き込みがされていない領域が足りない場合(S109、Yes)、このブロックの消去を行う必要がある。このとき、ブロック消去・書き込み部112は、「選択されたブロック中のデータを他のブロックに移動してから、このブロックを消去する」という「移動処理」を行う(S111)。
次に、ブロック消去・書き込み部112は、「S111」で行った「移動処理」の後、データをブロックに書き込み(S110)、データ書き込み処理を終了する。
(実施の形態2)
図3は、本発明の実施の形態2における移動体端末のデータ書き込みに関連するブロックの概略構成を示すブロック図である。ここでは、移動体端末におけるデータの書き込みに関連するブロックの動作について詳述し、データの書き込みに関連しない移動体端末中のブロックについての説明は省略する。
図3は、本発明の実施の形態2における移動体端末のデータ書き込みに関連するブロックの概略構成を示すブロック図である。ここでは、移動体端末におけるデータの書き込みに関連するブロックの動作について詳述し、データの書き込みに関連しない移動体端末中のブロックについての説明は省略する。
図3に示したとおり、移動体端末における、データ書き込みに関連するブロックは、概略、メモリアクセス部200、データ書き込み要求I/F221、記憶媒体231から構成される。
メモリアクセス部200は、保護対象データ検出部201、保護対象データ決定部202、保護対象データ変更部214、保護対象データ記憶部203、ウエアレベリング対象範囲決定部204、データ書き込み制御部205、書き込みブロック決定部211、ブロック消去・書き込み部212、ブロック消去回数記憶部213から構成されている。
記憶媒体231は、移動体端末で用いるデータを記憶する。記憶するデータとしては、例えば、プログラムコード、ユーザが撮った写真のデータ、ユーザが送受信したメールに関するデータ、等である。
データ書き込み要求I/F221は、移動体端末で動作しているアプリケーションなどから記憶媒体231に書き込みが要求される、データの書き込み要求を、メモリアクセス部200に入力する。
保護対象データ検出部201は、記憶するデータが保護対象データか否かを検出し、保護対象データである場合、このデータを保護対象データ決定部202に入力する。例えば、ユーザが設定機能により保護したいデータとして設定した、メール、写真などのデータを、保護対象データとして検出する。また、所定の期間毎に、移動体端末においてアクセス回数が多いデータ、あるいは、総起動時間が長いアプリケーションのプログラムコードのデータがあるか否かを検出する。このようなデータがあった場合は、保護対象データとして検出する。
保護対象データ決定部202は、保護対象データ検出部201で検出されたデータが「保護対象データ」の場合、「保護対象データ」として維持すべきか、「保護対象でないデータ」に変更すべきかを決定する。保護対象データ検出部201で検出された保護すべきデータ量が多い場合、これらのデータを適切に保護できない。従って、検出された保護すべきデータの量が記憶媒体231の容量の定められた値(例えば、全体の記憶容量の5割)以上になると、保護対象データ検出部201で新しく検出されたデータを保護対象でないデータとする。
保護対象データ変更部214は、既に保護対象データ決定部202で「保護対象データ」として決定されたが、保護対象データ検出部201で「保護対象でないデータ」として検出されたデータである場合は、「保護対象データ」として決定されたデータを「保護対象でないデータ」に変更する。
保護対象データ記憶部203は、保護対象データ決定部202で判定された保護対象データの記憶媒体231中のアドレスを管理し、この管理情報を記憶媒体231に保管する。
ウエアレベリング対象範囲決定部204は、異なる優先度を持つ書き込みデータに対して、異なるウエアレベリング対象範囲を決定する。例えば、記憶媒体231にあるブロック全体の平均消去回数より消去回数が小さいブロックを保護対象データのウエアレベリング対象範囲とし、残りのブロックは保護対象でないデータのウエアレベリング対象範囲とする。
データ書き込み制御部205は、書き込み要求I/F221から書き込み要求を受け、保護対象データ記憶部203を参照し、書き込み要求データが保護対象データか否かを判断する。そして、ウエアレベリング対象範囲決定部204を参照し、書き込みデータに対するウエアレベリング対象範囲を決定し、これらの情報を書き込みブロック決定部211に入力する。
データ書き込み制御部205は、書き込み要求I/F221から書き込み要求を受け、保護対象データ記憶部203を参照し、書き込み要求データが保護対象データか否かを判断する。そして、ウエアレベリング対象範囲決定部204を参照し、書き込みデータに対するウエアレベリング対象範囲を決定し、これらの情報を書き込みブロック決定部211に入力する。
書き込みブロック決定部211は、ブロック消去回数記憶部213を参照し、データ書き込み制御部205に渡されたウエアレベリング対象範囲の中から、消耗度が低い1つのブロックを書き込みブロックとして決定する。例えば、最も消去回数が小さいブロックを「書き込みブロック」として決定する。このようにすれば、記憶媒体中の各ブロックの消去回数を平準化することができ、その結果、全ブロックの消耗を平準化することができる。
ブロック消去・書き込み部212は、書き込みブロック決定部211により決められた「書き込みブロック」にデータを書き込む。「書き込みブロック」に書き込みがされていない領域が充分ある場合、すぐにデータの書き込みを行う。一方、「書き込みブロック」に空き領域が足りない場合(移動処理が必要な場合)、書き込みブロックにおけるデータを他のブロックに移動し、この書き込みブロックを消去してからデータの書き込みを行う。
ブロック消去回数記憶部213は、記憶媒体231における各ブロックの消去回数を記憶する。ブロック消去・書き込み部212で消去処理が発生した場合、消去ブロックの消去回数を更新する。
図4は、本発明の実施の形態2における保護対象データ検出部、及び保護対象データ変更部の動作を説明するフローチャートである。
まず、移動体端末において、アプリケーションが起動される(S221、Yes)とアプリケーション起動回数の記録を更新する(S222)。
保護対象データ検出部201は、常にアプリケーションの起動回数を観測し、所定の期間毎に(S223、Yes)、アプリケーション起動回数の記録を確認する。
所定の期間経過したか否かを判断し(S223)、所定の期間経過した場合には(S223、Yes)、保護対象データ検出部201は、起動回数が多いアプリケーションを保護対象データ決定部202に入力し、これらのアプリケーションのプログラムコードデータを保護対象データとして扱う(S224)。
次に、保護対象データ変更部214は、保護対象データ記憶部203で管理している保護対象データリストに存在しているが、「S222」でカウントされた起動回数が少ないアプリケーションのプログラムコードデータを保護対象データリストから除外する(S225)。
次に、保護対象データ検出部201は、全てのアプリケーション起動回数の記憶をリセットし(S226)、常に各アプリケーションの起動状況を監視する「S221」に戻る。
上記の「アプリケーションの起動回数」を「アプリケーションの総起動時間」にすることもできる。
図5は、本発明の実施の形態2におけるデータ書き込み動作を説明するフローチャートである。S201〜S211の各ステップで行う動作は、実施の形態1で説明したS101〜S111の各ステップで行う動作と同じであるため、ここでは、説明を省略する。 (実施の形態3)
図6は、本発明の実施の形態3における移動体端末のデータ書き込みに関連するブロックの概略構成を示すブロック図である。ここでは、移動体端末におけるデータの書き込みに関連するブロックの動作について詳述し、データの書き込みに関連しない移動体端末中のブロックについての説明は省略する。
図6は、本発明の実施の形態3における移動体端末のデータ書き込みに関連するブロックの概略構成を示すブロック図である。ここでは、移動体端末におけるデータの書き込みに関連するブロックの動作について詳述し、データの書き込みに関連しない移動体端末中のブロックについての説明は省略する。
図6に示したとおり、移動体端末におけるデータ書き込みに関連するブロックは、概略、メモリアクセス部300、データ書き込み要求I/F321、記憶媒体331から構成される。
メモリアクセス部300は、保護対象データ検出部301、保護対象データ決定部302、保護対象データ記憶部303、ウエアレベリング対象範囲決定部304、データ書き込み制御部305、ウエアレベリング対象範囲除外部306、書き込みブロック決定部311、ブロック消去・書き込み部312、ブロック消去回数記憶部313から構成されている。
記憶媒体331は、移動体端末で用いるデータを記憶する。記憶するデータとしては、例えば、プログラムコード、ユーザが撮った写真のデータ、ユーザが送受信したメールに関するデータ、等である。
データ書き込み要求I/F321は、移動体端末で動作しているアプリケーションなどから記憶媒体331に書き込みが要求されるデータの書き込み要求を、メモリアクセス部300に入力する。
保護対象データ検出部301は、記憶するデータが保護対象データか否かを検出する。例えば、ユーザが設定機能により保護したいデータとして設定した、メール、写真などのデータを、保護対象データとして検出する。
保護対象データ決定部302は、保護対象データ検出部301で検出されたデータが「保護対象データ」の場合、「保護対象データ」として維持すべきか、「保護対象でないデータ」に変更すべきかを決定する。保護対象データ検出部301で検出された保護すべきデータ量が多い場合、これらのデータを適切に保護できない。従って、検出された保護すべきデータの量が記憶媒体331の容量の定められた値(例えば、5割)以上になると、保護対象データ検出部301で新しく検出されたデータを保護対象でないデータとする。
保護対象データ記憶部303は、保護対象データ決定部302で判定された保護対象データの記憶媒体331中のアドレスを管理し、この管理情報を記憶媒体331に保管する。
ウエアレベリング対象範囲決定部304は、異なる優先度を持つ書き込みデータに対して、異なるウエアレベリング対象範囲を決定する。例えば、記憶媒体331にあるブロック全体の平均消去回数より消去回数が小さいブロックを保護対象データのウエアレベリング対象範囲とし、残りのブロックは保護対象でないデータのウエアレベリング対象範囲とする。
データ書き込み制御部305は、書き込み要求I/F321から書き込み要求を受け、保護対象データ記憶部303を参照し、書き込み要求データが保護対象データか否かを判断する。そして、ウエアレベリング対象範囲決定部304を参照し、書き込みデータに対するウエアレベリング対象範囲を決定し、これらの情報を書き込みブロック決定部311に入力する。
書き込みブロック決定部311は、ブロック消去回数記憶部313を参照し、データ書き込み制御部305に渡されたウエアレベリング対象範囲の中から、消耗度が低い1つのブロックを書き込みブロックとして決定する。例えば、最も消去回数が小さいブロックを「書き込みブロック」として決定する。このようにすれば、記憶媒体中の各ブロックの消去回数を平準化することができ、その結果、全ブロックの消耗を平準化することができる。
ブロック消去・書き込み部312は、書き込みブロック決定部311により決められた「書き込みブロック」にデータを書き込む。「書き込みブロック」に書き込みがされていない領域が充分ある場合、すぐにデータ書き込みを行う。一方、「書き込みブロック」に空き領域が足りない場合(移動処理が必要な場合)、書き込みブロックにおけるデータを他のブロックに移動し、この書き込みブロックを消去してからデータの書き込みを行う。
ブロック消去回数記憶部313は、記憶媒体331における各ブロックの消去回数を記憶する。ブロック消去・書き込み部312で消去処理が発生した場合、消去ブロックの消去回数を更新する。
ウエアレベリング対象範囲除外部306は、書き込みブロック決定部311により決定され、ブロック消去回数記憶部313に記載された、書き込みブロックの消去回数を参照する。この消去回数が所定値を越え、かつ、このブロックに保護対象データを含む場合、選択されたブロックをウエアレベリング対象範囲から除外する。こうすることにより、今後、このブロックが書込みブロック決定部により移動先ブロックとして選択されない。
図7は、本発明の実施の形態3における移動体端末のデータ書き込み動作を説明するフローチャートである。
まず、データ書き込み制御部305は、書き込み要求I/F321からデータ書き込み要求の有無を判定する(S301)。
データ書き込み制御部305は、書き込み要求I/F321からデータ書き込み要求が発生していない場合(S301、No)、処理を終了する。
一方、書き込み要求I/F321からデータ書き込み要求が発生した場合(S301、Yes)、ブロック消去回数記憶部313を参照し、記憶媒体331における全ブロックの平均消去回数を計算し、平均消去回数が閾値αを超えているか否かを判定する(S302)。
全ブロックの平均消去回数が閾値α以下の場合(S302、No)、データ書き込み制御部305は、記憶媒体の全領域をウエアレベリング対象範囲とする(S305)。
全ブロックの平均消去回数が閾値α以上の場合(S302、Yes)、データ書き込み制御部305は、保護対象データ記憶部303を参照する(S303)。
書き込みデータが「保護対象データ」でないの場合(S304、No)、データ書き込み制御部305は、平均消去回数より大きい消去回数を持つブロックをウエアレベリング対象範囲とする(S306)。
書き込みデータが「保護対象データ」である場合(S304、Yes)、平均消去回数より小さい消去回数を持つブロックをウエアレベリング対象範囲とする(S307)。
書き込みブロック決定部311は、データ書き込み制御部305が決定した書き込みデータのウエアレベリング対象範囲を受け、このウエアレベリング対象範囲から1つの書き込み先ブロックを決定する(S308)。
ブロック消去・書き込み部312は、決定された書き込み先ブロックの移動処理が必要か否かを判断する(S309)。
選択されたブロックに書き込みがされていない領域が充分ある場合(S309、No)、ブロック消去・書き込み部312は、書き込みデータを書き込みブロック決定部311により決定されたブロックにデータの書き込みを行い(S314)、終了する。
一方、選択されたブロックに書き込みがされていない領域が足りない場合(S309、Yes)、このブロックの消去を行う必要がある。このとき、ウエアレベリング対象範囲除外部306は、保護対象データ記憶部303を参照し、このブロックに保護対象データを含むか否かを判断する(S310)。
書き込みブロックに保護対象データを含まない場合(S310、No)、ブロック消去・書き込み部312は、「選択されたブロック中のデータを他のブロックに移動してから、このブロックを消去する」という「移動処理」を行う(S315)。
次に、ブロック消去・書き込み部312は、「S315」で行った「移動処理」の後、データをブロックに書き込み(S314)、データ書き込み処理を終了する。
書き込みブロックに保護対象データを含む場合(S310、Yes)、ウエアレベリング対象範囲除外部306は、ブロック消去回数記憶部313を参照し、このブロックの消去回数が閾値βを越えたか否かを判断する(S311)。
消去回数が閾値β以上の場合(S311、Yes)、この書き込みブロックをウエアレベリング対象範囲から除外し(S312)、ウエアレベリング対象範囲を更新する(S313)。
次に、書き込みブロック決定部311は、再びウエアレベリング対象範囲から書き込みブロックを決定し(S308)、前述の「S309」、「S314」へと進み、処理を終了する。
一方、S311で書き込みブロックの消去回数が所定値β以下の場合(S311、No)、ブロック消去・書き込み部312は、書き込みブロックの「移動処理」を行い(S315)、前述の「S314」へ進み、終了する。
(実施の形態4)
図8は、本発明の実施の形態4における移動体端末のデータ書き込みに関連するブロックの概略構成を示すブロック図である。ここでは、移動体端末におけるデータの書き込みに関連するブロックの動作について詳述し、データの書き込みに関連しない移動体端末中のブロックについての説明は省略する。
(実施の形態4)
図8は、本発明の実施の形態4における移動体端末のデータ書き込みに関連するブロックの概略構成を示すブロック図である。ここでは、移動体端末におけるデータの書き込みに関連するブロックの動作について詳述し、データの書き込みに関連しない移動体端末中のブロックについての説明は省略する。
図8に示したとおり、移動体端末における、データ書き込みに関連するブロックは、概略、メモリアクセス部400、データ書き込み要求I/F421、記憶媒体431から構成される。
メモリアクセス部400は、保護対象データ検出部401、保護対象データ決定部402、保護対象データ変更部414、保護対象データ記憶部403、ウエアレベリング対象範囲決定部404、データ書き込み制御部405、ウエアレベリング対象範囲除外部406、書き込みブロック決定部411、ブロック消去・書き込み部412、ブロック消去回数記憶部413から構成されている。
記憶媒体431は、移動体端末で用いるデータを記憶する。記憶するデータとしては、例えば、プログラムコード、ユーザが撮った写真のデータ、ユーザが送受信したメールに関するデータ、等である。
データ書き込み要求I/F421は、移動体端末で動作しているアプリケーションなどから記憶媒体431に書き込みが要求される、データの書き込み要求を、メモリアクセス部400に入力する。
保護対象データ検出部401は、記憶するデータが保護対象データか否かを検出し、保護対象データである場合、このデータを保護対象データ決定部402に入力する。例えば、ユーザが設定機能により保護したいデータとして設定した、メール、写真などのデータを、保護対象データとして検出する。また、所定の期間毎に、移動体端末においてアクセス回数が多いデータ、あるいは、総起動時間が長いアプリケーションのプログラムコードのデータがあるか否かを検出する。このようなデータがあった場合は、保護対象データとして検出する。
保護対象データ決定部402は、保護対象データ検出部401で検出されたデータが「保護対象データ」の場合、「保護対象データ」として維持すべきか、「保護対象でないデータ」に変更すべきかを決定する。保護対象データ検出部401で検出された保護すべきデータ量が多い場合、これらのデータを適切に保護できない。従って、検出された保護すべきデータの量が記憶媒体431の容量の定められた値(例えば、全体の記憶容量の5割)以上になると、保護対象データ検出部401で新しく検出されたデータを保護対象でないデータとする。
保護対象データ変更部414は、既に保護対象データ決定部402で「保護対象データ」として決定されたが、保護対象データ検出部401で「保護対象でないデータ」として検出されたデータである場合は、「保護対象データ」として決定されたデータを「保護対象でないデータ」に変更する。
保護対象データ変更部414は、既に保護対象データ決定部402で「保護対象データ」として決定されたが、保護対象データ検出部401で「保護対象でないデータ」として検出されたデータである場合は、「保護対象データ」として決定されたデータを「保護対象でないデータ」に変更する。
保護対象データ記憶部403は、保護対象データ決定部402で判定された保護対象データの記憶媒体431中のアドレスを管理し、この管理情報を記憶媒体431に保管する。
ウエアレベリング対象範囲決定部404は、異なる優先度を持つ書き込みデータに対して、異なるウエアレベリング対象範囲を割り当てる。例えば、記憶媒体431にあるブロック全体の平均消去回数より消去回数が小さいブロックを保護対象データのウエアレベリング対象範囲とし、残りのブロックは保護対象でないデータのウエアレベリング対象範囲とする。
データ書き込み制御部405は、書き込み要求I/F421から書き込み要求を受け、保護対象データ記憶部403を参照し、書き込み要求データが保護対象データか否かを判断する。そして、ウエアレベリング対象範囲決定部404を参照し、書き込みデータに対するウエアレベリング対象範囲を決定し、これらの情報を書き込みブロック決定部411に入力する。
データ書き込み制御部405は、書き込み要求I/F421から書き込み要求を受け、保護対象データ記憶部403を参照し、書き込み要求データが保護対象データか否かを判断する。そして、ウエアレベリング対象範囲決定部404を参照し、書き込みデータに対するウエアレベリング対象範囲を決定し、これらの情報を書き込みブロック決定部411に入力する。
書き込みブロック決定部411は、ブロック消去回数記憶部413を参照し、データ書き込み制御部405に入力されたウエアレベリング対象範囲の中から、消耗度が低い1つのブロックを書き込みブロックとして決定する。例えば、最も消去回数が小さいブロックを「書き込みブロック」として決定する。このようにすれば、記憶媒体中の各ブロックの消去回数を平準化することができ、その結果、全ブロックの消耗を平準化することができる。
ブロック消去・書き込み部412は、書き込みブロック決定部411により決められた「書き込みブロック」にデータを書き込む。「書き込みブロック」に書き込みがされていない領域が充分ある場合、すぐにデータ書き込みを行う。一方、「書き込みブロック」に空き領域が足りない場合(移動処理が必要な場合)、書き込みブロックにおけるデータを他のブロックに移動し、この書き込みブロックを消去してからデータの書き込みを行う。
ブロック消去回数記憶部413は、記憶媒体431における各ブロックの消去回数を記憶する。ブロック消去・書き込み部412で消去処理が発生した場合、消去ブロックの消去回数を更新する。
ウエアレベリング対象範囲除外部406は、書き込みブロック決定部411により決定され、ブロック消去回数記憶部413に記載された、書き込みブロックの消去回数を参照する。この消去回数が所定値を越え、かつ、このブロックに保護対象データを含む場合、選択されたブロックをウエアレベリング対象範囲から除外する。こうすることにより、今後、このブロックが書込みブロック決定部により移動先ブロックとして選択されない。
図9は、本発明の実施の形態4における保護対象データ検出部、及び保護対象データ変更部の動作を説明するフローチャートである。
まず、移動体端末において、アプリケーションが起動される(S421、Yes)とアプリケーション起動回数の記録を更新する(S422)。
保護対象データ検出部401は、常にアプリケーションの起動回数を観測し、所定の期間毎に(S423、Yes)、アプリケーション起動回数の記録を確認する。
所定の期間経過したか否かを判断し(S423)、所定の期間経過した場合には(S423、Yes)、保護対象データ検出部401は、起動回数が多いアプリケーションを保護対象データ決定部402に入力し、これらのアプリケーションのプログラムコードデータを保護対象データとして扱う(S424)。
次に、保護対象データ変更部414は、保護対象データ記憶部403で管理している保護対象データリストに存在しているが、「S422」でカウントされた起動回数が少ないアプリケーションのプログラムコードデータを保護対象データリストから除外する(S425)。
次に、保護対象データ変更部414は、保護対象データ記憶部403で管理している保護対象データリストに存在しているが、「S422」でカウントされた起動回数が少ないアプリケーションのプログラムコードデータを保護対象データリストから除外する(S425)。
次に、保護対象データ検出部401は、全てのアプリケーション起動回数の記憶をリセットし(S426)、常に各アプリケーションの起動状況を監視する「S421」に戻る。
上記の「アプリケーションの起動回数」を「アプリケーションの総起動時間」にすることもできる。
図10は、本発明の実施の形態4におけるデータ書き込み動作を説明するフローチャートである。S401〜S415の各ステップで行う動作は、実施の形態3で説明したS301〜S315の各ステップで行う動作と同じであるため、ここでは、説明を省略する。
本発明は、移動体端末の記憶媒体に記憶したデータに優先度をつけて、消耗平準化(ウエアレベリング)を実行することにより、記憶媒体の寿命を延ばしつつ、信頼性が要求されるデータが保護されるため、移動体端末の記憶媒体への適用が可能である。
101、201、301、401 保護対象データ検出部
102、202、302、402 保護対象データ決定部
103、203、303、403 保護対象データ記憶部
104、204、304、304 ウエアレベリング対象範囲決定部
105、205、305、405 データ書き込み制御部
306、406 ウエアレベリング対象範囲除外部
111、211、311、411 書き込みブロック決定部
112、212、312、412 ブロック消去・書き込み部
113、213、313、413 ブロック消去回数記憶部
214、414 保護対象データ変更部
121、221、321、421 書き込み要求I/F
131、231、331、431 記憶媒体
102、202、302、402 保護対象データ決定部
103、203、303、403 保護対象データ記憶部
104、204、304、304 ウエアレベリング対象範囲決定部
105、205、305、405 データ書き込み制御部
306、406 ウエアレベリング対象範囲除外部
111、211、311、411 書き込みブロック決定部
112、212、312、412 ブロック消去・書き込み部
113、213、313、413 ブロック消去回数記憶部
214、414 保護対象データ変更部
121、221、321、421 書き込み要求I/F
131、231、331、431 記憶媒体
Claims (8)
- 記憶媒体と、
前記記憶媒体に保存するデータが保護すべきデータか否かを検出する保護対象データ検出手段と、
前記保護対象データ検出手段により検出されたデータを保護対象データにすべきか否かを決定する保護対象データ決定手段と、
前記保護対象データ決定手段により保護対象データと決定されたデータを記憶する保護対象データ記憶手段と、
前記記憶媒体の消耗度を平準化するための書き込みブロックを決定する書き込みブロック決定手段と、
前記記憶媒体における各ブロックの消去回数を記憶するブロック消去回数記憶手段と、
前記記憶媒体におけるブロックの平均消去回数が所定値を超えると、保護対象データと保護対象でないデータに対して、異なるウエアレベリング対象範囲を決定するウエアレベリング対象範囲決定手段と、
データ書き込みを要求するアプリケーションI/Fと、
前記アプリケーションI/Fからの書き込み要求するデータに対して、前記保護対象データ記憶手段から保護対象データか否かを判定し、前記ウエアレベリング対象範囲決定手段が決定したウエアレベリング対象範囲への書き込みを決定し、前記ブロック決定手段に入力するデータ書き込み制御手段と、
前記記憶媒体のブロックを消去し、書き込みデータを前記記憶媒体に書き込むブロック消去・書き込み手段と、
を備えた移動体端末。 - さらに前記保護対象データ決定手段により決定された保護対象データを保護対象でないデータに変更する保護対象データ変更手段と、を備えた請求項1記載の移動体端末。
- さらに保護対象データを含む、かつブロック消去回数が所定値を超える、前記書き込みブロック決定手段により決定された書き込みブロックをウエアレベリング対象範囲から除外する平準化ブロック除外手段と、を備えた請求項1記載の移動体端末。
- さらに保護対象データを含む、かつブロック消去回数が所定値を超える、前記書き込みブロック決定手段により決定された書き込みブロックをウエアレベリング対象範囲から除外する平準化ブロック除外手段と、を備えた請求項2記載の移動体端末。
- 前記保護対象データ検出手段は、ユーザが設定機能により設定した保護対象データを検出することを特徴とする請求項1ないし請求項4のいずれかに記載の移動体端末。
- 前記保護対象データ検出手段は、移動体端末においてアクセス回数が多いデータ、または起動回数が多いアプリケーションのプログラムコードを保護対象データとして検出することを特徴とする請求項1ないし請求項4のいずれかに記載の移動体端末。
- 前記保護対象データ決定手段は、前記保護対象データ検出手段により検出されたデータから、保護可能なデータ量に基づき、保護対象データを決定することを特徴とする請求項5または請求項6記載の移動体端末。
- 前記ウエアレベリング対象範囲決定手段は、平均消去回数より大きい消去回数を持つブロックを保護対象でないデータのウエアレベリング対象範囲にし、平均消去回数より小さい消去回数を持つブロックを保護対象データのウエアレベリング対象範囲にすることを特徴とする請求項1ないし請求項7のいずれかに記載の移動体端末。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010009782A JP2011150454A (ja) | 2010-01-20 | 2010-01-20 | 移動体端末 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010009782A JP2011150454A (ja) | 2010-01-20 | 2010-01-20 | 移動体端末 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011150454A true JP2011150454A (ja) | 2011-08-04 |
Family
ID=44537385
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010009782A Withdrawn JP2011150454A (ja) | 2010-01-20 | 2010-01-20 | 移動体端末 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2011150454A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014524609A (ja) * | 2011-08-03 | 2014-09-22 | マイクロン テクノロジー, インク. | メモリデバイスのためのウェアレベリング |
-
2010
- 2010-01-20 JP JP2010009782A patent/JP2011150454A/ja not_active Withdrawn
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014524609A (ja) * | 2011-08-03 | 2014-09-22 | マイクロン テクノロジー, インク. | メモリデバイスのためのウェアレベリング |
US9104547B2 (en) | 2011-08-03 | 2015-08-11 | Micron Technology, Inc. | Wear leveling for a memory device |
US9710376B2 (en) | 2011-08-03 | 2017-07-18 | Micron Technology, Inc. | Wear leveling for a memory device |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10031698B2 (en) | Method of wear leveling for data storage device | |
JP4790007B2 (ja) | 相対的な等級を用いて、フラッシュメモリ内の損耗平準化を達成するための方法 | |
KR100974954B1 (ko) | 플래시 메모리를 이용한 저장장치에서의 읽기 웨어 레벨링방법 | |
US8103820B2 (en) | Wear leveling method and controller using the same | |
KR101894625B1 (ko) | 데이터 저장 시스템들에 대한 우선순위 기반 가비지 수집 | |
US7962807B2 (en) | Semiconductor storage apparatus managing system, semiconductor storage apparatus, host apparatus, program and method of managing semiconductor storage apparatus | |
CN110047546B (zh) | 存储器系统中的擦除管理 | |
JP5368993B2 (ja) | メモリコントローラ、不揮発性記憶モジュール、及び不揮発性記憶システム | |
JP2008139927A (ja) | メモリシステム | |
JP2012203443A (ja) | メモリシステムおよびメモリシステムの制御方法 | |
JP2011203916A (ja) | メモリコントローラ、および半導体記憶装置 | |
TW201227739A (en) | Method for performing block management, and associated memory device and controller thereof | |
KR20080085574A (ko) | 비휘발성 메모리의 가비지 컬렉션을 위한 장치 및 방법 | |
CN113220600A (zh) | 存储器系统及其操作方法 | |
KR20210051873A (ko) | 컨트롤러 및 메모리 시스템 | |
CN110750466A (zh) | 提高闪存擦写寿命的方法和装置 | |
JP2008276832A (ja) | 半導体記憶装置およびその駆動方法 | |
JP5858081B2 (ja) | メモリコントローラ、メモリシステム及びメモリ制御方法 | |
JP2011150454A (ja) | 移動体端末 | |
US11256432B2 (en) | Memory controller and memory system | |
JP5452735B2 (ja) | メモリコントローラ及びメモリアクセス方法 | |
KR20180076276A (ko) | 플래시 메모리의 가비지 콜렉션 방법 및 이를 이용하는 저장 장치 | |
JP4558054B2 (ja) | メモリシステム | |
JP2011022963A (ja) | 情報処理装置および情報処理方法 | |
Iliadis | Performance of the greedy garbage-collection scheme in flash-based solid-state drives |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20120329 |