(57)【要約】【課題】不揮発性メモリ用イニシアチブウェアレベリングの方法および装置を提供する。【解決手段】方法の一実施形態は、不揮発性メモリの複数のメモリブロックから成るメモリブロック群のそれぞれについて消去サイクルをカウントすることを含み、各メモリブロックについて消去サイクルをカウントすることは、当該メモリブロックの物理ブロックアドレスの第１カウントをインクリメントすることと、当該メモリブロックが予備メモリブロックでない場合には当該メモリブロックの論理ブロックアドレスの第２カウントをインクリメントすることとを含む。当該方法はさらに、複数のメモリブロックの消去サイクルのカウントに少なくとも部分的に基づいて、不揮発性メモリのメモリブロックが不均一に磨耗しているか否かを判断することを含む。【選択図】図２
2010515127.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリの複数のメモリブロックの各メモリブロックについて消去サイクルをカウントすることと、
前記複数のメモリブロックの前記消去サイクルをカウントすることに少なくとも部分的に基づいて、前記不揮発性メモリのメモリブロックが不均一に磨耗しているか否かを判断することと
を含み、
前記各メモリブロックについて消去サイクルをカウントすることは、
前記各メモリブロックの物理ブロックアドレスについての第１カウントをインクリメントすることと、
前記メモリブロックが予備メモリブロックでなければ、前記各メモリブロックの論理ブロックアドレスについての第２カウントをインクリメントすることと
を含む
不揮発性メモリのウェアレベリングの方法。
【請求項２】
前記不揮発性メモリが不均一に磨耗している場合、
前記不揮発性メモリの磨耗レベルが高い複数のメモリブロックを含む第１メモリブロック群、および、前記不揮発性メモリの磨耗レベルが低い複数のモリブロックを含む第２メモリブロック群を特定し、
前記第１メモリブロック群の１以上のメモリブロックからのデータと、前記第２メモリブロック群の１以上のメモリブロックからのデータとを交換する
請求項１に記載の方法。
【請求項３】
前記複数のメモリブロックのうち第１メモリブロックと第２メモリブロックとの間でデータを交換することは、前記第１メモリブロックから前記第２メモリブロックへと前記論理ブロックアドレスを移すことを含む
請求項２に記載の方法。
【請求項４】
前記第１メモリブロック群の１以上のメモリブロックからのデータと、前記第２メモリブロック群の１以上のメモリブロックからのデータとを交換することは、一連のメモリブロックリクレーム処理を含む
請求項２に記載の方法。
【請求項５】
前記不揮発性メモリのメモリブロックが不均一に磨耗しているか否かを判断することは、各物理ブロックアドレスの前記消去サイクルおよび各論理ブロックアドレスの前記消去サイクルを表す線を直線回帰によって生成することを含む
請求項１に記載の方法。
【請求項６】
前記不揮発性メモリのメモリブロックが不均一に磨耗しているか否かを判断することはさらに、前記生成された線の傾きを傾きしきい値と比較することを含む
請求項５に記載の方法。
【請求項７】
前記生成された線の前記傾きは、前記不揮発性メモリについて消去サイクルが所定数発生した後に前記傾きしきい値と比較される
請求項６に記載の方法。
【請求項８】
前記不揮発性メモリはフラッシュメモリである
請求項１に記載の方法。
【請求項９】
複数のメモリブロックを有するメモリアレイと、
前記メモリアレイに結合され、前記メモリアレイにおけるデータの格納を制御するメモリコントローラと、
前記メモリアレイの前記複数のメモリブロックについて消去動作の回数を記録する１以上のレジスタと
を備え、
前記複数のメモリブロックはそれぞれ、物理ブロックアドレスを持ち、
前記複数のメモリブロックはそれぞれ、論理ブロックアドレスを持つか、または、予備メモリブロックであり、
前記１以上のレジスタは、各物理ブロックアドレスについての消去サイクルカウントおよび各論理ブロックアドレスについての消去サイクルカウントを有する
不揮発性メモリデバイス。
【請求項１０】
前記メモリコントローラは、各物理ブロックアドレスについての消去サイクルの数および各論理ブロックアドレスについての消去サイクルの数を表す線の傾きを決定する
請求項９に記載のデバイス。
【請求項１１】
前記メモリコントローラは、消去サイクルが所定数発生した後で、前記線の前記傾きを決定する
請求項１０に記載のデバイス。
【請求項１２】
前記メモリコントローラは、前記線の前記傾きをしきい値と比較して、前記線の前記傾きは前記しきい値を超える場合に、メモリブロックの交換を実行する
請求項１０に記載のデバイス。
【請求項１３】
前記メモリブロックの交換は、消去カウントが大きい複数のメモリブロックを含む第１メモリブロック群と、消去カウントが小さい複数のメモリブロックを含む第２メモリブロック群との間で、データを交換することを含む
請求項１２に記載のデバイス。
【請求項１４】
前記メモリアレイは、フラッシュメモリアレイを有する
請求項９に記載のデバイス。
【請求項１５】
バスと、
前記バスに結合され、複数のメモリブロックを有するフラッシュメモリデバイスと、
前記バスに結合されているダイナミックランダムアクセスメモリと、
前記バスに結合されているプロセッサと
を備えるコンピュータシステムであって、
前記プロセッサは、前記ダイナミックランダムアクセスメモリと前記フラッシュメモリデバイスとの間でデータを転送し、
前記システムは、前記複数のメモリブロックのそれぞれについて、物理ブロックアドレスおよび論理ブロックアドレスの消去サイクルの数をトラッキングする
コンピュータシステム。
【請求項１６】
前記システムは、前記複数のメモリブロックのそれぞれについて、前記物理ブロックアドレスおよび前記論理ブロックアドレスの前記消去サイクルの数に少なくとも部分的に基づいて、前記フラッシュメモリデバイスが不均一に磨耗しているか否かを判断する
請求項１５に記載のシステム。
【請求項１７】
前記システムは、前記複数のメモリブロックのそれぞれについての前記物理ブロックアドレスおよび前記論理ブロックアドレスの前記消去サイクルの数に関する回帰直線の傾きと傾きしきい値とを比較することによって、前記フラッシュメモリデバイスが不均一に磨耗しているか否かを判断する
請求項１６に記載のシステム。
【請求項１８】
前記システムは、消去サイクルが所定数発生する度に、前記フラッシュメモリデバイスが不均一に磨耗しているか否かを判断する
請求項１６に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、コンピュータメモリに関する。特に、本発明の実施形態は、不揮発性メモリのウェアレベリングに関する。
【背景技術】
【０００２】
コンピュータおよび電子デバイスの動作において、フラッシュメモリおよび同様の不揮発性メモリは、データの保存に関して大きな利点を有しており、低コスト且つ高密度と同時に低電力で処理を実行することができる。このようなメモリは、データの格納を処理に必要な電力を最小限に抑えると共に格納状態を維持する上で電力を必要としない圧縮形式で行うので、多くの用途で用いられるようになっている。
【０００３】
しかし、不揮発性メモリの動作に関しては欠点もある。例えば、フラッシュメモリのようなメモリは、書き込みサイクルの度に劣化していく傾向があるので、寿命が限られている。このため、メモリの所与の部分に対して行われる書き込み動作が、当該メモリの別の部分に対して行われる書き込み動作よりも多い場合、書き込みの数が多い方の部分は、劣化、および最終的には故障がより早期に発生してしまう。
【０００４】
フラッシュメモリ全体の寿命を長くすることを目的として、ウェアレベリング処理を実行するとしてよい。ウェアレベリング処理は、メモリ内でより使用が少ない部分に書き込み動作を割り当てることによって、ストレージデバイス全体にわたって磨耗をより均等に分散させることを目的とする。このようなウェアレベリング処理は、ホストシステムに認識されることなく、メモリコントローラによって実行されるとしてよい。
【０００５】
ウェアレベリング処理は、論理ブロックアドレスをデバイスの固体メモリアレイ内の別の物理ブロックアドレスにリマッピングするアルゴリズムを含むとしてよい。しかし、利用されるアルゴリズムは、メモリ動作の効率およびウェアレベリング処理の効果に大きな影響を及ぼす可能性がある。リマッピング処理のタイミング、リマッピング用に適切な物理領域を特定するやり方等、さまざまな関連事項は、メモリ動作を大きく左右し得る。
【図面の簡単な説明】
【０００６】
本発明の実施形態を添付図面において図示するが、これらは本発明を限定するものではなく例示に過ぎない。添付図面では、同様の参照番号を用いて同様の構成要素を指し示すものとする。
【０００７】
【図１】不揮発性メモリの実施形態を示す図である。
【０００８】
【図２】ウェアレベリング処理の実施形態を示すフローチャートである。
【０００９】
【図３Ａ】ウェアレベリングに先立って不揮発性メモリについて生成される回帰直線を示す図である。
【００１０】
【図３Ｂ】ウェアレベリングの実施形態が実施された後で不揮発性メモリについて生成される回帰直線を示す図である。
【００１１】
【図４】ウェアレベリング処理の実施形態における、メモリブロックリクレーム（ｒｅｃｌａｉｍ）処理の例を示す図である。
【図５】ウェアレベリング処理の実施形態における、メモリブロックリクレーム処理の例を示す図である。
【図６】ウェアレベリング処理の実施形態における、メモリブロックリクレーム処理の例を示す図である。
【図７】ウェアレベリング処理の実施形態における、メモリブロックリクレーム処理の例を示す図である。
【００１２】
【図８】不揮発性メモリデバイスの実施形態を示す図である。
【００１３】
【図９】本発明の実施形態を用いるコンピュータシステムを示す図である。
【発明を実施するための形態】
【００１４】
本発明の一実施形態は、不揮発性メモリ用のイニシアチブウェアレベリングに関する。
【００１５】
本明細書で使用する場合、以下の用語は以下に定義する意味を持つものとする。
【００１６】
「不揮発性メモリ」とは、メモリに電力が供給されない場合でもメモリの内容を保持するメモリを意味する。不揮発性メモリは、フラッシュメモリを含む。
【００１７】
「フラッシュメモリ」とは、電気的に消去および再プログラミングが可能な不揮発性コンピュータメモリを意味する。フラッシュメモリは、「セル」と呼ばれるフローティングゲートトランジスタのアレイに情報を格納する。各セルは、１ビット以上の情報を格納する。「フラッシュメモリ」は、本明細書で使用する場合、フラッシュメモリストレージ用の技術の一部を含むとしてよい。例えば、フラッシュメモリは、ＮＯＲ型およびＮＡＮＤ型のメモリの両方を含むとしてよい。また、フラッシュメモリは、メモリセル毎に格納する情報のビット数が異なる技術、例えば、１ビット１セルフラッシュメモリおよびセル毎に複数ビットを格納するマルチレベルセル構造を含むとしてよい。
【００１８】
「磨耗（Ｗｅａｒ）」は、不揮発性メモリの使用量を意味する。
【００１９】
「ブロック」は、１回の動作で消去され得る、不揮発性メモリアレイの一部分を意味し、複数のセルを含む。消去されたフラッシュメモリブロックの個々のセルはプログラムされ得るが、フラッシュメモリのブロック内のセルはメモリのブロック全体を消去することによってのみ変更され得る。
【００２０】
本発明の一実施形態によると、フラッシュメモリまたはその他の不揮発性メモリの磨耗が不均衡になる問題について、ウェアレベリング処理を用いて対処する。本発明の一実施形態によると、磨耗が最も大きいメモリブロック群からのデータと、磨耗が最も少ないメモリブロック群からのデータとを交換することによって、ウェアレベリングを実施する。一実施形態によると、不揮発性メモリ用のウェアレベリングプロセスは、各物理ブロックアドレスおよび各論理ブロックアドレスについて、メモリブロックに対する消去動作のカウントを維持することを含む。一実施形態によると、ウェアレベリングプロセスは、各メモリブロックの物理ブロック消去カウントと論理ブロック消去カウントとを表す線の傾きがしきい値を超えたと判断されると、所定の間隔でトリガされる。
【００２１】
フラッシュメモリ等の不揮発性メモリは、許可される消去−書込サイクルの数が有限なので動作が制限され、あるブロックのセルにデータを書き込む前に、当該ブロックを消去する必要がある。例えば、市販されているフラッシュ製品の大半は、１００万回のプログラミングサイクルに耐えることが保証されている。このため、オペレーティングシステム等のハードドライブベースのアプリケーションをコンパクトフラッシュ（登録商標）等のフラッシュメモリベースのデバイスに移動させる際には注意が必要である。磨耗が不均衡なことの影響は部分的に、セクタ間で書き込み動作を分散させるべく書き込みをカウントしてブロックを動的にリマッピングする任意のチップファームウェアまたはファイルシステムドライバによって、または、書き込みエラーの場合に備えてセクタを残しておくための書き込み検証およびリマッピングによって相殺され得る。しかし、時間が経過するにつれて、データ動作のバラツキは概して磨耗が不均衡になる原因となる。
【００２２】
不揮発性メモリの動作においては、メモリブロック毎に発生する書き込みサイクル数を監視して分散させるべくウェアレベリング処理またはアルゴリズムを実施することも通常推奨されている。これは、書き込み処理が多く発生するアプリケーションでは特に重要である。ウェアレベリングが実施されないと、メモリブロックの利用率がメモリブロック毎に大きく異なってしまう場合がある。長期間保存されるデータを有するブロックは、頻繁に変更されるデータを有するブロックほど多くの消去−書込サイクルに耐える必要はない。ウェアレベリング処理は、各ブロックについて利用可能な書き込みサイクルを全て概して均一に使用することを保証するべく実行される。ウェアレベリングは一般的に、メモリブロック間でのデータの交換を含んでよい。
【００２３】
本発明の一実施形態によると、ウェアレベリング処理（イニシアチブウェアレベリング（ＩＷＬ）と呼ぶとしてよい）は、不揮発性メモリにおいて実施される。本発明の一実施形態によると、不揮発性メモリのウェアレベリングは、個々のメモリブロックではなく、メモリブロック群の交換を含む。当該実施形態によると、第１のメモリブロック群は不揮発性メモリデバイスのうち最も磨耗が大きいメモリブロックを表し、第２のメモリブロック群は磨耗が最も小さいメモリブロックを表すとしてよい。このようなメモリブロック群に含まれるブロック同士の間で、データを交換するとしてよい。
【００２４】
本発明の一実施形態によると、不揮発性メモリのウェアレベリング処理は、物理アドレスおよび論理アドレスの両方について、メモリブロックに対する消去動作の回数を記録することを含む。一実施形態によると、物理ブロックにおいてリクレーム動作が何回実行されたかをトラッキングするべく物理ブロック消去カウント（ＰＢＥＣ）値を維持することに加えて、論理ブロック毎にデータの変更頻度をトラッキングするための各メモリブロックの論理ブロック指標によって示される論理ブロック消去カウント（ＬＢＥＣ）値を維持する。このような構成として、メモリブロックがリクレームされる度に、対応するＰＢＥＣ値およびＬＢＥＣ値をそれぞれ１だけ大きくする。
【００２５】
一実施形態によると、ＰＢＥＣ値およびＬＢＥＣ値について以下の関係が成り立つ。
１．ＰＢＥＣインクリメント＝ＬＢＥＣインクリメント（メモリブロックがリクレームされると、ＰＢＥＣおよびＬＢＥＣの両方をインクリメントすることになる）
２．デバイスの全ＰＢＥＣの合計≧デバイスの全ＬＢＥＣの合計
３．ファイルシステムが未使用メモリデバイスで開始されると、デバイスの全ＰＢＥＣの合計＝デバイスの全ＬＢＥＣの合計
ファイルシステムが初期化されてシャットダウンされ、メモリのフォーマッティングが行われない場合、ＬＢＥＣ値およびＰＢＥＣ値は互いに等しくなる。ファイルシステムが初期化される前にメモリデバイスがフォーマッティングされれば、ＰＢＥＣ値は保持されるか、フォーマッティングが終了した後で復元されると考えられる。しかし、ブロックデータが消去されるので、ＬＢＥＣ値は消去され得る。この場合ブロックデータはデータがどの程度アクティブかを反映するべく利用されるので、データが削除された後でもＬＢＥＣを保存しておく理由がない。このため、未使用／新規／完全消去のメモリデバイスでは、ＬＢＥＣ合計値＝ＰＢＥＣ合計値となる。デバイスがフォーマッティングされると、ＬＢＥＣが消去され、続いてＰＢＥＣ合計値はＬＢＥＣ合計値よりも大きくなる。
【００２６】
本発明の一実施形態によると、ＰＢＥＣフィールドは、各物理ブロックに対して何回リクレーム動作が発生したかをトラッキングするべく利用される。一実施形態によると、追加のＬＢＥＣフィールドは、論理ブロックによってデータの変更頻度をトラッキングするための論理ブロック指標によって示される。このように、論理データブロックがリクレームされる度に、対応するＬＢＥＣは１だけ大きくなり、関連する物理データブロックのＰＢＥＣも１だけ大きくなる。一実施形態によると、
（１）ＰＢＥＣインクリメント＝ＬＢＥＣインクリメント（ブロックがリクレームされる度にそれぞれ１だけインクリメントされる）
（２）全ＰＢＥＣの合計≧全ＬＢＥＣの合計
（３）ファイルシステムが未使用フラッシュで初期化されると、全ＰＢＥＣの合計＝全ＬＢＥＣの合計
【００２７】
本発明の一実施形態によると、ＩＷＬウェアレベリング処理では少なくとも２つの磨耗ブロック群（ＷＢＧ）が指定される。第１ブロック群は「大ブロック群」と呼ばれる。大ブロック群は、ＰＢＥＣ値およびＬＢＥＣ値が比較的大きく、リクレーム処理は不揮発性メモリの予備ブロックに対して頻繁に発生するので、予備ブロックを含み得る。第２ブロック群は、「小ブロック群」と呼ばれ、ＰＢＥＣ値およびＬＢＥＣ値が比較的小さく、予備ブロックは含まれていない。ＩＷＬ処理では、この２つのブロック群の間で、ＬＢＥＣ値が大きい論理ブロックとＬＢＥＣ値が小さい論理ブロックとをスワップすることを目的とする。このような論理ブロックのスワップは、一連のリクレーム処理に基づいて実現され得る。この手順は、ＷＢＧスワップと呼ばれる。ＷＢＧスワップの目的は、長期間保存される（ＬＢＥＣ値の小さい）データブロックを、磨耗が大きい（ＰＢＥＣ値が大きい）ブロックへとポピュレートして、頻繁に変更される（ＬＢＥＣ値が大きい）データブロックを、磨耗が小さい（ＰＢＥＣ値が小さい）ブロックにポピュレートすることである。このような処理によると、予備ブロックは次のリクレームブロックになる可能性が高く、ＰＢＥＣ値が大きい予備ブロックは反対側のブロック群に移される。
【００２８】
しかし、ウェアレベリング処理は、通常リクレーム動作等の一部の普通のメモリ動作に影響を及ぼし得る。このため、ウェアレベリングを実行する際は、メモリ性能との間でバランスを取る必要が出てくるとしてよい。本発明の一実施形態によると、ウェアレベリングの磨耗の頻度に影響を与える任意の値を設定するとしてよい。実施形態によると、ユーザは消去カウント間隔（ＥＣＭＯＤ）値および傾きしきい値（ＳＬＯＰＥＴＨ）値を設定するとしてよい。これらの値を大きくすると、不揮発性デバイスの寿命をある程度犠牲にする可能性はあるが、性能の低下は低減される。
【００２９】
本発明の一実施形態によると、不揮発性メモリは、メモリの各物理ブロックに対する消去動作の回数およびメモリの各論理ブロックに対する消去回数の回数に、少なくとも部分的に基づいて行われるウェアレベリングを含む。一実施形態によると、回帰直線の傾きがしきい値を超えると、ウェアレベリング処理は開始される。回帰直線は、各ブロックに対する物理消去カウント対各ブロックに対する論理消去カウントに基づいて生成される。
【００３０】
本発明の一実施形態によると、ＩＷＬ処理の開始は、各メモリブロックの物理ブロック消去カウントおよび論理ブロック消去カウントのグラフに適合する線の傾きによってトリガされるとしてもよい。当該線の傾きに基づいて、処理が成功しているか否かを判断する。一実施形態によると、統計的手法を用いて、当該線をエラーカウントデータに適合させるとしてよい。特定の実施形態によると、直線回帰を用いて、ＩＷＬ処理が必要なタイミングを決定し、実行されているＩＷＬ処理がどの程度成功しているのか測定する。直線回帰は、一次方程式を得られたデータに適合させることによって、２つの変数の関係をモデル化することを試みる。回帰直線適合の最も一般的な方法は、最小二乗法である。線形最小二乗法は、切片がａで傾きがｂの直線グラフである、ｆ（ｘ）＝ａ＋ｂｘという式を適用する。線形最小二乗法は、以下に示すように、生データセット（ｌ１，ｐ１），（ｌ２，ｐ２），・・・，（ｌｎ，ｐｎ）のトレンドを記載する。
【数１】
2010515127.tif 000003
【００３１】
不揮発性メモリデバイスの処理において、回帰直線の傾きｂについては３つの場合が考えられる。
（１）ｂ＝０、未使用のフラッシュでシステムが初期化された場合、または、ウェアレベリングが維持されている場合
（２）ｂ＞０、磨耗が平滑化されていない場合
（３）ｂ＜０、ＷＢＧがスワップされて処理が成功している場合
【００３２】
本発明の一実施形態によると、ウェアレベリングは、所定の期間が経過した後でのみ実行されるように限定されるとしてもよい。例えば、ＥＣＭＯＤは、ＩＷＬ処理がトリガされる前に経過する消去カウント間隔である。例えば、ＥＣＭＯＤは１０００サイクル以下であってよい。さらに、ウェアレベリングのトリガは、ＰＢＥＣ−ＬＢＥＣ回帰直線の傾きのしきい値であるＳＬＯＰＥＴＨによって制御される。不揮発性メモリの通常のリクレーム動作は、無効メモリスペースを開放することを目的として、無効データを有する「汚染」メモリブロックをリクレームするべく利用されるとしてよい。ＩＷＬを実装する場合、不揮発性メモリの通常のリクレーム手順は変更されないが、ウェアレベリング処理は、バックグラウンドリクレームタスクの成果に影響を及ぼし得る。ユーザまたは設計者は、メモリの寿命および性能に対する顧客の要望といった問題について、共にウェアレベリングの頻度を決定するＥＣＭＯＤおよびＳＬＯＰＥＴＨといったパラメータを調整することによって対処してよい。例えば顧客は、ＥＣＭＯＤおよびＳＬＯＰＥＴＨを大きくすることによって、ウェアレベリングによる性能の劣化を低減してよい。
【００３３】
ウェアレベリングを実装する場合、処理は概して固体メモリコントローラによって実行され得るので、ホストシステムからは独立している。このように実装する場合、ホストシステムは、論理ブロックアドレスのみに対して読み書きを実行し、基礎となる物理ブロックアドレスは利用しない。このように、ホストは、ウェアレベリングが実行される結果生じるデータの移動は認識しない。しかし、本発明の実施形態は、メモリ制御に関して変形するとしてよく、任意の特定のメモリ制御方法に限定されない。
【００３４】
ファイルシステムが初期化されてシャットダウンされ、且つ、フォーマッティング処理が実行されない場合、ＬＢＥＣのインクリメントとＰＢＥＣのインクリメントとは互いに等しい。しかし、ファイルシステムが初期化される前にフラッシュがフォーマッティングされれば、ＰＢＥＣは保持されるかまたはフォーマッティングが終了した後に復元される。一方、ＬＢＥＣは、ブロックデータが消去されて、対応するＬＢＥＣを保存する必要がないので、全て消去されると考えられる。この結果、未使用、新規または完全消去のフラッシュについては、ＬＢＥＣ合計値＝ＰＢＥＣ合計値となる。フォーマッティングが実行されると、ＬＢＥＣは消去されて、ＰＢＥＣ合計値はＬＢＥＣ合計値よりも大きくなるとしてよい。
【００３５】
上述の例では、ウェアレベリング処理の開始タイミングおよび終了タイミングの決定に用いられるしきい値は１つである。しかし、本発明の実施形態は複数のしきい値を利用するとしてもよい。本発明の一実施形態によると、交換処理が必要な回数を低減するべく、２つのしきい値を利用するとしてもよい。この例では、不揮発性メモリは通常通り使用されており、メモリブロックの物理ブロック消去カウント値および論理ブロック消去カウント値に対する回帰直線適合が次第に大きくなる。磨耗したブロックの交換処理は、メモリブロックに対する回帰直線の傾きが第１しきい値を超えた時に開始されるとしてよい。磨耗したブロック群の交換は、開始されると、回帰直線の傾きが第２しきい値未満となるまで継続して、交換処理を停止するとしてよい。そしてこの処理は、回帰直線の傾きが第１のしきい値を再度超えると磨耗したブロックの交換処理が開始されるという、元の状態に戻る。通常処理に戻ると、非常にアクティブなメモリブロックで消去サイクルがさらに実行されるに従って、回帰直線の傾きは再び次第に大きくなっていく。
【００３６】
図１は、不揮発性メモリの実施形態を示す図である。同図に示すように、不揮発性メモリデバイス１００はメモリブロックアレイ１０５を備える。一例として、メモリブロックアレイ１０５は、物理ブロックアドレスＰＢ１および論理ブロックアドレスＬＢ７を持つ第１のメモリブロック１１０と、物理ブロックアドレスＰＢ４および論理ブロックアドレスＬＢ５を持つ第２のメモリブロック１１５とを有するとしてよい。上述のアドレスは単なる例に過ぎず、物理アドレスまたは論理アドレスは任意のものであってよい。それぞれの動作で、メモリアレイ１０５の各ブロックには複数の消去サイクルおよび書込サイクルが実行され、各サイクルが実行されることによって対応するセルの寿命が短くなっていく。
【００３７】
図示されているように、第１メモリブロック１１０は、消去されて、データセットＡ１２０が１２５で書き込まれており、比較的アクティブでないとしてもよい。逆に、第２メモリブロック１１５は、例えば、データＢ１３０が１３５で変更されて、各書込処理では当該ブロック内のデータを消去する必要があるので、第２ブロック１１５のセルに対して複数の消去および書込動作１４０が実行され、比較的アクティブである。このため、時間が経過すると、第２メモリブロック１１５の磨耗は、第１メモリブロック１１０の磨耗よりかなり大きいと考えられる。
【００３８】
本発明の一実施形態によると、メモリブロックの磨耗を均一化するべくメモリブロックアレイにはウェアレベリングが実行される。本実施形態によると、ウェアレベリングは、物理ブロック書き込みサイクルのカウントおよび論理ブロックの書き込みサイクルのカウントに基づいて実行される。一実施形態によると、ウェアレベリングアルゴリズムは、直線回帰によって物理ブロック書き込みサイクルおよび論理ブロック書き込みサイクルに適合する線の傾きがしきい値に到達すると、開始される。一実施形態によると、当該アルゴリズムによって、最も磨耗が大きいブロック群（第２メモリブロック１１５を含むとしてよい）に含まれるデータと、最も磨耗が小さいブロック群（第１メモリブロック１１０を含むとしてよい）に含まれるデータとを交換する、データリクレームが実現される。別の例を挙げると、最も磨耗が小さいブロック群は、予備メモリブロックを含むとしてよい。予備メモリブロックは、リクレームされる可能性が非常に高い。指定されたメモリブロック群同士の間での交換の後、残りのブロックに対して更に交換処理が実行されるとしてよく、回帰直線の傾きがしきい値を超えることがなくなるまで、処理を継続する。
【００３９】
図２は、ウェアレベリング処理の実施形態を示すフローチャートである。同図に示すように、２０５でバックグラウンドメモリリクレーム処理が実行される。この処理は、通常のメモリリクレームと、ウェアレベリング用のメモリリクレームとを含む。リクレーム処理は、動作が繰り返し継続する「永久ループ」２１０と呼ばれる処理として実行される。このループでは、通常のメモリリクレーム処理は２１５で実行される。
【００４０】
バックグラウンドリクレームタスクの開始から、または、前回のウェアレベリング動作から、２２０でエラーカウント係数（ＥＣＭＯＤ）が追加消去カウント以下となると、ウェアレベリング処理が開始される。物理ブロック消去カウント（ＰＢＥＣ）および論理ブロック消去カウント（ＬＢＥＣ）に対する回帰直線の傾きｂを、しきい値ＳＬＯＰＥＴＨ２２５と比較して評価する。傾きｂがしきい値を超えない限り、ループは継続する。傾きｂがしきい値を超えると、磨耗されたブロック群のスワップが２３０で実行され、最も磨耗が大きいブロック群（ＰＢＥＣ値およびＬＢＥＣ値がより大きいメモリブロックおよび予備メモリブロックを含むメモリブロック群）に含まれるデータと、最も磨耗が小さいブロック群（ＰＢＥＣ値およびＬＢＥＣ値がより小さいメモリブロックを含み、予備メモリブロックを含まないメモリブロック群）に含まれるデータとを交換する。スワップ処理を実行した後、傾きｂをしきい値ＳＬＯＰＥＴＨ２２５と再び比較して、傾きｂがしきい値ＳＬＯＰＥＴＨを超えなくなるまでスワップ処理を継続する。
【００４１】
一実施形態によると、ウェアレベリングに用いられるしきい値について、処理を変更するとしてもよい。例えば、ウェアレベリング処理は、傾きｂが第１しきい値（ＳＬＯＰＥＴＨ１）を超えると開始されて、傾きｂが第２のしきい値（ＳＬＯＰＥＴＨ２）未満となるまで継続するとしてもよく、例えば、ＳＬＯＰＥＴＨ２はＳＬＯＰＥＴＨ１よりも小さいとしてよい。
【００４２】
図３Ａは、ウェアレベリングに先立って不揮発性メモリ用に生成される回帰直線を示す図である。同図では、不揮発性メモリの各ブロックを、仮想的に、物理ブロック消去カウント（ＰＢＥＣ３０５）および論理ブロック消去カウント（ＬＢＥＣ３１０）によって表している。新規のフラッシュメモリの場合、最初の物理ブロック消去カウントおよび論理ブロック消去カウントは、非常に小さいかまたはゼロとなっている。しかし、書き込みサイクルが実行されるにつれて、図３Ａに示すように、メモリブロックがアクティブであるほど、物理ブロック消去カウントおよび論理ブロック消去カウントの両方のカウント値が大きくなっていく。
【００４３】
同図に示すように、時間が経過すると、ＰＢＥＣ値およびＬＢＥＣ値が小さいメモリブロック３１５と、ＰＢＥＣ値およびＬＢＥＣ値が中程度のメモリブロック３２０と、ＰＢＥＣ値およびＬＢＥＣ値が大きいメモリブロック３２５とが出てくるものと思われる。本発明の一実施形態によると、直線回帰を用いてメモリブロック値３３５に対して回帰直線を生成する。図示の便宜上、対称線３３０を示す。対称線３３０の右側のメモリブロックは、対称線３３０の左側のメモリブロックに比べて、磨耗の程度が高い。このため、ウェアレベリングが実行されなければ、デバイスの故障の発生が早まってしまう。
【００４４】
本発明の一実施形態によると、ウェアレベリングの評価は、消去イベントが所定回数実行された後で行われるとしてよい。評価について説明すると、回帰直線３３５の傾きがしきい値よりも大きい場合、ウェアレベリング処理を開始するとしてよく、この結果、磨耗したブロック群３５０が交換される。交換について説明すると、最も磨耗が大きいブロック群３２５のブロックに含まれているデータと、最も磨耗が少ないブロック群３１５のブロックのデータとを交換する。一実施形態によると、このようなスワップは一連のリクレーム処理に基づいて実行される。交換の後、回帰直線が再び生成されて、傾きを再びしきい値と比較する。このような処理は、傾きがしきい値未満となるよう十分に変更されるまで継続される。
【００４５】
図３Ｂは、ウェアレベリングの実施形態が実施された後で不揮発性メモリについて生成される回帰直線を示す図である。同図では、不揮発性メモリの各ブロックを再度、仮想的に、物理ブロック消去カウント（ＰＢＥＣ３５５）および論理ブロック消去カウント（ＬＢＥＣ３６０）を用いて表している。磨耗したブロック群同士の間で交換を実行した結果得られる回帰直線の傾きは３８５に示すように変化している。交換の後では、ＰＢＥＣ値が大きくてＬＢＥＣ値が小さいメモリブロック３６５と、ＰＢＥＣ値およびＬＢＥＣ値が中程度のメモリブロック３７０（これらのメモリブロックは交換されていない可能性が高い）と、ＰＢＥＣ値が小さくてＬＢＥＣ値が高いメモリブロック３７５とが存在することになる。図示の便宜上、対称線３８０をここでも示している。まとめると、対称線３８０の右側にあるメモリブロックは現時点では、磨耗が比較的小さいブロックだが今後磨耗する可能性があるアクティブなデータを含むメモリブロックである。対称線３８０の左側にあるメモリブロックは現時点では、磨耗が比較的大きいブロックであるが、よりアクティブでないデータを有しており、今後の磨耗はより小さくなると考えられる。
【００４６】
図４から図７は、ウェアレベリング処理の実施形態のメモリブロックリクレーム処理の一例を示す図である。図４から図７では、不揮発性メモリの一例が備えるメモリブロックを図示する。図中で、ＰＢｎはｎ番目の物理ブロックを意味し、ＬＢｎはｎ番目の論理ブロックを意味する。同図から分かるように、どのメモリブロックも、物理ブロックアドレスを有し、さらに、論理ブロックアドレスを有しているか、または、予備として指定されている。図示されている例では、メモリデバイスは８つのメモリブロック（ＰＢ０からＰＢ７）を備えている。各図では、各メモリブロックが、物理ブロックアドレス４０５と、論理ブロックアドレス４１０と、論理ブロック消去カウント４１５と、物理ブロック消去カウント４２０とによって指定されている。本発明の一実施形態によると、ＩＷＬ処理が実施されて、適切なメモリブロック群のメモリブロックに含まれているデータ同士を、一連のリクレーム処理に基づいてスワップする。図４から図７はデータスワップの特定の処理を図示しているが、本発明の実施形態は、スワップ処理を実行する際に任意の特定のプロセスに限定されるわけではない。
【００４７】
図４は、不揮発性メモリの一例が備えるブロックを示す。図示の便宜上、磨耗は概してＰＢ０からＰＢ７の順に大きくなっている。しかし実際には、メモリブロックのいずれが磨耗するとしてもよく、必ずしも順序があるわけではない。特定の実施例によると、間隔および傾きのしきい値が設定され、この場合はＥＣＭＯＤ＝１３５でＳＬＯＰＥＴＨ＝０．０９であってよい。これらの値は、この例について具体的に設定される値であるが、必要に応じて変更することができる。
【００４８】
図４において、生データセット（ｌ１，ｐ１），（ｌ２，ｐ２），・・・，（ｌｎ，ｐｎ）のトレンドを算出すると、ＬＢＥＣ合計値＝１３５で、ＰＢＥＣ合計値＝１３５で、ｂ＝０．０９７６５１５である。消去カウントがＥＣＭＯＤに到達しているので、傾きを評価する。この場合、傾きはＳＬＯＰＥＴＨ値の０．０９よりも大きく、メモリの磨耗が著しく不均衡になっていることを示している。このため、ウェアレベリング処理が開始される。
【００４９】
本発明の一実施形態によると、メモリブロックをメモリブロック群に分割する際にはさまざまな方法を用いるとしてよい。図４に簡略化して示した例では、小ブロック群はＰＢ０  ４２５（ＬＢＥＣ＝７およびＰＢＥＣ＝４）およびＰＢ１  ４３０（ＬＢＥＣ＝３およびＰＢＥＣ＝６）を含むとしてよい。これらのブロックは磨耗が小さく、アクティブなデータを含んでいるようには見えないことが分かる。大ブロック群のブロックには、ＰＢ６  ４５５（ＬＢＥＣ＝３０およびＰＢＥＣ＝２８）およびＰＢ７  ４６０（ＰＢＥＣ＝３０の予備ブロック）が含まれるとしてよい。同図では、大ブロック群および小ブロック群は隣接するメモリブロックから構成されているが、図示の便宜上こうなっているに過ぎない。実際には、大ブロック群または小ブロック群はどのメモリブロックを含むとしてもよい。残りのブロック（ＰＢ２  ４３５、ＰＢ３  ４４０、ＰＢ４  ４４５、およびＰＢ５  ４５０）は、中程度ブロック群に分類され、スワップには関係しない。スワップの結果得られる傾きの変化が十分でない場合には、これらの残りのブロックもスワップ処理のために大ブロック群および小ブロック群に入れられるとしてよい。
【００５０】
本発明の一実施形態によると、従来のリクレーム処理を用いる一連の動作に基づいてスワップを実施するとしてよい。例えば、ＰＢ０  ４２５とＰＢ７  ４６０との間でリクレーム（ＰＢ０、ＰＢ７）という処理を用いてスワップが行われると、ＰＢ０からＰＢ７へとデータを複製して、ＰＢ０を消去して、ＰＢ０を予備ブロックとして設定する。図４に示す例では、リクレーム（ＰＢ０、ＰＢ７）は第１スワップモードである。
【００５１】
図５は、リクレーム（ＰＢ０，ＰＢ７）実行後のメモリを示す図である。この例では、ＰＢ０  ５２５は現時点では、予備ブロックで、ＰＢＥＣは４から５へと大きくなっている。ＰＢ７  ５６０は現時点では、ＬＢ６となっており、ＬＢＥＣは７から８へと大きくなっている。（ＰＢ７  ５６０のＰＢＥＣは、予備ブロックなので、３０のままである。このため、既に消去されており、データを書き込む前に消去する必要はない。）この時点で、ＬＢＥＣ合計値＝１３６、ＰＢＥＣ合計値＝１３６、およびｂ＝−０．１１１６１である。
【００５２】
図６は、その後に続いてリクレーム（ＰＢ６，ＰＢ０）という処理が実行された結果のメモリを示す図である。この処理の実行後、ＰＢ６  ６５５は予備ブロックとなり、ＰＢＥＣは２８から２９へと大きくなっている。ＰＢ０  ６２５は、ＬＢ０となり、ＬＢＥＣは３０から３１へと大きくなっている。交換処理のこの時点において、ＬＢＥＣ合計値＝１３７、ＰＢＥＣ合計値＝１３７、ｂ＝−０．２８０８６である。
【００５３】
図７は、一連の処理のうち最後になるリクレーム（ＰＢ６，ＰＢ１）という処理が実行された結果のメモリを示す図である。この最終段階では、ＰＢ０  ６２５はＬＢＥＣ＝３１でＰＢＥＣ＝５であり、ＰＢ１  ７３０は予備ブロック（このため次のリクレームブロックとなる可能性が高い）でＰＢＥＣ＝７となっている。このため、磨耗の程度が最も低いブロック群はこの時点で、よりアクティブなデータを有しており、低い磨耗の程度と高いデータのアクティブ性とを一致させている。さらに、ＰＢ６  ７５５はＬＢＥＣ＝４でＰＢＥＣ＝２９であり、ＰＢ７  ５６０はＬＢＥＣ＝８でＰＢＥＣ＝３０である。磨耗の程度が最も高いブロック群はこの時点で、よりアクティブでないデータを有し、高い磨耗の程度と低いデータのアクティブ性とを一致させている。一連のリクレーム処理の最後の処理の実行後、ＬＢＥＣ合計値＝１３８、ＰＢＥＣ合計値＝１３８、ｂ＝−０．５４２６２となる。このように、ＰＢＥＣ−ＬＢＥＣ回帰直線の傾きはしきい値未満まで低減されている。本発明の実施形態によると、ウェアレベリング処理はここで完了する。この後システムは、ＥＣＭＯＤに等しい数の消去サイクルが経過するのを待って、再び傾きをしきい値と比較してもう一度ウェアレベリングサイクルが必要か否かを判断する。ＰＢＥＣ−ＬＢＥＣ回帰直線の傾きがしきい値未満まで低減していなければ交換処理を継続し、さらにデータを交換して、求められている値未満になるまで傾きを低減する。
【００５４】
図８は、不揮発性メモリデバイスの一実施形態を示す図である。同図に示すように、フラッシュメモリ等の不揮発性メモリデバイス８００は、装置８１５に結合されているとしてもよいし、装置８１５の一部であるとしてもよい。装置は、コンピュータ、携帯情報端末（ＰＤＡ）またはハンドヘルドコンピュータ、デジタルカメラ、デジタルミュージックプレーヤ等の装置を含む、電子メモリを必要とする装置であればどのようなものであってもよい。メモリデバイス８００は、メモリコントローラ８１０に結合されているメモリアレイ８０５を備え、メモリコントローラ８１０はメモリアレイ８０５におけるデータの格納を制御する。メモリアレイ８０５は、複数のメモリセルを含むメモリブロックを複数有する。一例を挙げると、第１メモリブロック８２０および第２メモリブロック８２５を有する。本例では、第１メモリブロック８２０は、物理ブロックＰＢ０であり、論理ブロックＬＢ５である。第２メモリブロック８２５は、物理ブロックＰＢ３であり、論理ブロックＬＢ２である。メモリコントローラ８１０は、例えば、論理ロケーションによって装置８１５がメモリセルをアドレス指定するように、論理メモリロケーションの割り当てを担当するとしてよく、メモリセルの物理ロケーションは認識していない。
【００５５】
本発明の一実施形態によると、メモリコントローラ８１０は、メモリアレイ８０５について消去−書込サイクルのカウントを記録する。カウントは、各物理ブロックおよび各論理ブロックについてのカウントを含む。一実施形態によると、このカウントに基づいて、メモリデバイスのウェアレベリング処理を実施する。一実施形態によると、メモリデバイス８００は、現在の書込−消去サイクルカウントを含むレジストリを１以上備えるとしてよい。図示されているように、メモリデバイス８００は、物理ブロック消去カウント８３０のレジストリと論理ブロック消去カウント８３５のレジストリとを備える。同図に示すように、物理ブロック消去カウント８３０のレジストリは、第１のメモリブロック８２０についてＰＢ０ＥＣ（ＰＢ０の消去カウント）８４０、第２のメモリブロック８２５についてＰＢ３ＥＣ  ８４５、というようにｎ番目の物理ブロックについてＰＢｎＥＣ  ８５０を有する。論理ブロック消去カウント８３５のレジストリは、第１のメモリブロック８２０についてＬＢ２ＥＣ（ＬＢ２の消去カウント）８５５、第２のメモリブロック８２５についてＬＢ５ＥＣ  ８６０、というようにｍ番目の論理ブロックについてＬＢｍＥＣ  ８６５を有する。メモリアレイ８０５は、論理メモリブロックに割り当てられていない予備ブロックを１以上備えるとしてよいので、ｍはｎより小さいとしてよい。
【００５６】
本発明の一実施形態によると、メモリコントローラ８１０はメモリアレイ８０５に含まれるブロックの現在の磨耗の状態を評価する。一実施形態によると、この評価は、ＥＣＭＯＤに等しい数の消去サイクルが経過した後で実施される。本発明の一実施形態によると、メモリコントローラ８１０は、物理ブロック消去カウント８３０のレジストリおよび論理ブロック消去カウント８３５のレジストリに含まれるデータについての回帰直線の傾きを算出する。メモリコントローラ８１０は、回帰直線の傾きがしきい値（ＳＬＯＰＥＴＨ）より大きければ、磨耗が大きいメモリブロック群（ＰＢＥＣ値およびＬＢＥＣ値が大きいメモリブロックであって、予備ブロックを含む）および磨耗が小さいメモリブロック群（ＰＢＥＣ値およびＬＢＥＣ値が小さいメモリブロック）を特定して、特定されたメモリブロック群同士の間でデータを交換して、アクティブなデータを磨耗が小さいメモリブロックに移す。
【００５７】
図９は、本発明の一実施形態を利用するコンピュータシステムを示す図である。本発明に特に関連しない標準的および公知の構成要素は図示していない。本発明の一実施形態によると、コンピュータ９００は、情報を通信するための通信手段であるバス９０５と、情報を処理するべくバス９０５に結合されている２以上のプロセッサ９１０（図中では、第１プロセッサ９１５および第２プロセッサ９２０と示している）である処理手段とを備える。プロセッサ９１０は、１以上の物理プロセッサおよび１以上の論理プロセッサを有するとしてよい。さらに、プロセッサ９１０が有する各プロセッサは、複数のプロセッサコアを含むとしてよい。コンピュータ９００は、図示の便宜上１つのバス９０５を備えるものとして図示されているが、複数の異なるバスを備えるとしてもよく、このようなバスに対する構成要素の接続方法はさまざまであってよい。図９に図示しているバス９０５は、任意の１以上の別個の物理的バス、ポイントツーポイント接続、または、適切なブリッジ、アダプタまたはコントローラによって接続された両者を抽象的に表したものである。このためバス９０５は、例えば、システムバス、周辺機器インターコネクト（ＰＣＩ）バス、ハイパートランスポート（ＨｙｐｅｒＴｒａｎｓｐｏｒｔ）または業界標準アーキテクチャ（ＩＳＡ）バス、スモールコンピュータシステムインターフェース（ＳＣＳＩ）バス、ユニバーサルシリアルバス（ＵＳＢ）、ＩＩＣ（Ｉ２Ｃ）バス、または、「ファイヤワイヤ」と呼ばれることもある米国電気電子学会（ＩＥＥＥ）規格１３９４バス（「高性能シリアルバスの規格」、１３９４−１９９５、ＩＥＥＥ、１９９６年８月３０日出版、およびその付録）を含むとしてよい。
【００５８】
コンピュータ９００はさらに、情報およびプロセッサ９１０によって実行される命令を格納するべく、メインメモリ９２５として、ランダムアクセスメモリ（ＲＡＭ）等のダイナミックストレージデバイスを備える。メインメモリ９２５はさらに、プロセッサ９１０が命令を実行している間、一時的な変数またはその他の中間情報を格納するべく利用されるとしてもよい。ＲＡＭメモリは、メモリコンテンツのリフレッシュが必要なダイナミックランダムアクセスメモリ（ＤＲＡＭ）およびコンテンツをリフレッシュする必要がないがコストが大きくなるスタティックランダムアクセスメモリ（ＳＲＡＭ）を含む。ＤＲＡＭメモリは、信号を制御するべくクロック信号を含むシンクロナスダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）および拡張データアウトダイナミックランダムアクセスメモリ（ＥＤＯ  ＤＲＡＭ）を含むとしてよい。メインメモリは、無線デバイスから受信した信号を格納するべく利用されるとしてよい。コンピュータ９００はさらに、リードオンリーメモリ（ＲＯＭ）９３０および／またはプロセッサ９１０用のスタティック情報および命令を格納するためのその他のスタティックストレージデバイスを備えるとしてよい。
【００５９】
コンピュータ９００のバス９０５にはさらに、情報および命令を格納するべくデータストレージ９３５が結合されるとしてよい。データストレージ９３５は、磁気ディスクまたは光ディスクおよび対応するドライブ、フラッシュメモリまたはその他の不揮発性メモリ、もしくはその他のメモリデバイスを含むとしてよい。このような構成要素は、互いに組み合わせられるとしてもよいし、または、別個の構成要素として構成されるとしてもよく、コンピュータ９００のほかの構成要素の一部分を利用するとしてよい。本発明の一実施形態によると、データストレージ９３５はフラッシュメモリ９３７を有するとしてよい。実施形態によると、フラッシュメモリ９３７は、各メモリブロックの消去−書込サイクルが不均一に実施されるためフラッシュメモリ９３７のメモリブロックが不均一に磨耗すると、それを均一化するべくウェアレベリング処理を実現する。
【００６０】
コンピュータ９００はさらに、バス９０５を介して、エンドユーザに情報を表示するための表示デバイス９４０に結合されるとしてよい。表示デバイス９４０は、例えば、陰極線管（ＣＲＴ）ディスプレイ、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、またはその他の任意のディスプレイ技術である。ある環境においては、表示デバイスは、入力デバイスの少なくとも一部分としても利用されるタッチスクリーンであってよい。ある環境においては、表示デバイス９４０は、音声情報を提供するためのスピーカ等である音声デバイスであってもよいし、そのような音声デバイスを含むとしてもよい。入力デバイス９４５は、プロセッサ９１０に対して情報および／またはコマンド選択を通信するべく、バス９０５に結合されるとしてよい。さまざまな実施例によると、入力デバイス９４５は、キーボード、キーパッド、タッチスクリーンおよびスタイラス、音声作動システム等の入力デバイス、またはこれらの入力デバイスの組み合わせとしてもよい。別の種類のユーザ入力デバイスとしては、１以上のプロセッサ９１０に対して方向情報およびコマンド選択を通信して、表示デバイス９４０上でのカーソルの動きを制御するマウス、トラックボール、またはカーソル方向キー等のカーソル制御デバイス９５０が挙げられる。
【００６１】
通信デバイス９５５がさらにバス９０５に結合されるとしてよい。特定の実施例によっては、通信デバイス９５５は、マザーボード上の送受信機、無線モデム、ネットワークインターフェースカード、ローカルエリアネットワーク（ＬＡＮ）、またはその他のインターフェースデバイスを有するとしてよい。通信デバイス９５５は、無線デバイスからの信号を受信するべく利用されるとしてよい。無線通信用に、通信デバイス９５５は１以上のアンテナ９５８を有するとしてよい。一実施形態によると、通信デバイス９５５はコンピュータ９００を不適切なアクセスから保護するためのファイヤーウォールを有するとしてよい。コンピュータ９００は、インターネット、ローカルエリアネットワーク、またはその他の環境へのリンクを含む通信デバイス９５５を用いて、ローカルエリアネットワーク（ＬＡＮ）９６５等のネットワーク、または、その他のデバイスに接続されるとしてよい。コンピュータ９００はさらに、電力デバイスまたはシステム９６０を備えるとしてよく、電力デバイスまたはシステム９６０は、電源、電池、太陽電池、燃料電池、もしくは電力を供給または生成するその他のシステムまたはデバイスを含むとしてよい。電力デバイスまたはシステム９６０から供給される電力は、必要に応じてコンピュータ９００の構成要素に分配されるとしてよい。
【００６２】
当業者であれば、本開示内容を参照することによって、本発明の範囲内で上述の記載および図面に基づいて他にも多くの変形例を成し得ることに想到するであろう。実際、本発明は上述した詳細な内容に限定されない。本発明の範囲は、補正を含む本願の請求項によって定義される。
【００６３】
上述の記載において、説明を目的として、本発明を完全に理解していただくべく具体的且つ詳細な内容を数多く記載している。しかし、そのような具体的且つ詳細な記載は本発明を実施する際には必須でないことは、当業者には明らかである。また、公知の構造およびデバイスをブロック図で示している。
【００６４】
本発明はさまざまな処理を含み得る。本発明の処理は、ハードウェア素子によって実施されるとしてもよく、または、命令がプログラミングされた汎用または特定用途向けのプロセッサまたは論理回路に当該処理を実行させるべく用いられる機械実行可能命令において実施されるとしてもよい。これに代えて、当該処理は、ハードウェアおよびソフトウェアの組み合わせによって実行されるとしてよい。
【００６５】
本発明の一部は、本発明に係る処理を実行させるべくコンピュータ（またはその他の電子デバイス）をプログラミングするべく利用される命令を格納している機械可読媒体を備えるコンピュータプログラム製品として提供されるとしてよい。機械可読媒体は、これらに限定されないが、フロッピーディスク（登録商標）、光ディスク、コンパクトディスクリードオンリーメモリ（ＣＤ−ＲＯＭ、および光磁気ディスク、リードオンリーメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、消去可能且つプログラミング可能リードオンリーメモリ（ＥＰＲＯＭ）、電気的に消去可能且つプログラミング可能リードオンリーメモリ（ＥＥＰＲＯＭ（登録商標））、磁気カードまたは光カード、フラッシュメモリ、またはその他の種類の電子命令を格納するのに適している媒体／機械可読媒体を含むとしてよい。さらに、本発明は、コンピュータプログラム製品としてダウンロードされるとしてもよく、当該プログラムはリモートコンピュータから要求元コンピュータへと、通信リンク（例えば、モデムまたはネットワーク接続）を介した搬送波またはその他の伝播媒体として実施されるデータ信号によって、転送されるとしてよい。
【００６６】
記載した方法の多くは、最も基本的な形態を説明しているが、本発明の基本的な範囲を逸脱することなく、上述した方法のいずれについても処理の追加または削除が可能であり、上述のメッセージのいずれについても情報の追加または削除が可能である。さらなる変形および変更が可能であることは当業者には明らかである。特定の実施形態は、本発明を限定するためではなく説明するために記載されている。本発明の範囲は、上述した具体例によって決まるのではなく、本願の請求項によってのみ決まる。
【００６７】
また、本明細書で「一実施形態」または「実施形態」という場合、特定の特徴が本発明の実施に含まれることを意味すると考えられたい。同様に、本発明の実施形態例の上述の説明において、本発明の開示を整理すると共にさまざまな発明的側面のうち１以上を理解しやすくすることを目的として、本発明のさまざまな特徴を１つの実施形態、図面または説明にまとめていることがあると考えられたい。しかし、このように開示しているからといって、請求している発明が各請求項に明示的に記載しているよりも多くの特徴を必要としているという意図を反映していると解釈されるべきではない。逆に、本願の請求項から分かるように、発明的側面は、先に開示されている実施形態のうち１つが有するすべての特徴よりも少ない特徴に存在する。このように、請求項はここにおいて本明細書に明確に組み込まれると共に、各請求項はそれ自身が本発明の独立した実施形態となる。
【図１】
2010515127.tif 000004
【図２】
2010515127.tif 000005
【図３Ａ】
2010515127.tif 000006
【図３Ｂ】
2010515127.tif 000007
【図４】
2010515127.tif 000008
【図５】
2010515127.tif 000009
【図６】
2010515127.tif 000010
【図７】
2010515127.tif 000011
【図８】
2010515127.tif 000012
【図９】
2010515127.tif 000013
【国際調査報告】
2010515127.tif 000014
2010515127.tif 000015