(57)【要約】      （修正有）【課題】厳密なタイミング制約を有するシステムに特に適している不揮発性メモリ用のティアリング防止保護システムを提供する。【解決手段】第１のメモリブロック（５）および第２のメモリブロック（７）を備えた不揮発性メモリユニット（３）用のティアリング防止保護システム（１）であって、第１のメモリブロック（５）および第２のメモリブロック（７）は、ユーザデータと、ユーザデータに基づいて取得した誤り検出コードと、を備えたデータセットを記憶し、第１の読取モードに従ってデータセットに含まれるデータ要素の論理状態を判定するために、第１の読取モードで読み取られる。それぞれのメモリブロックにおけるユーザデータは、誤り検出コードが所定の第１の値に等しいのであれば、第１の読取モードに従って、正しいと考慮される。【選択図】図１
2020077405.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリユニット（３）のティアリング防止保護システム（１）であって、第１のメモリブロック（５）および第２のメモリブロック（７）を備え、前記第１および第２のメモリブロック（５，７）は、ユーザデータと、前記ユーザデータに基づいて取得された誤り検出コードとを備えたデータセットを記憶することを目的とされ、前記第１および第２のメモリブロック（５，７）は、第１の読取モードに従って、前記データセットに含まれるデータ要素の論理状態を判定するための第１のルールセットを定義する前記第１の読取モードで読み取られるように構成され、それぞれのメモリブロックにおける前記ユーザデータは、誤り検出コードが所定の第１の値に等しいのであれば、前記第１の読取モードに従って、正しいと考慮され、前記第１のルールセットは、第１のメモリ読取閾値（１３）を備え、
前記システムは、前記第１および第２のメモリブロック（５，７）がさらに、第２の読取モードに従って、前記データセットに含まれる前記データ要素の前記論理状態を判定するための第２のルールセットを定義する前記第２の読取モードで読み取られるように構成され、前記第２のルールセットは、第２のメモリ読取閾値（１５）を備え、前記システム（１）の処理ユニット（９）は、前記第１および第２の両方のメモリブロック（５，７）を読み取るように構成され、前記処理ユニット（９）では、誤り検出コードが所定の前記第１の値に等しく、前記第２の読取モードで読み取られた前記ユーザデータが、前記第１の読取モードで読み取られた前記ユーザデータと同一であると判定された場合、前記第２の読取モードに従って、それぞれのメモリブロックにおける前記ユーザデータが正しいと考慮され、前記データセットはさらに、どのメモリブロック（５，７）が最後に更新されたのかを示すカウンタデータを備え、前記誤り検出コードはさらに、前記カウンタデータに基づいて取得され、前記ユーザデータの正確性は、前記第１および第２のメモリブロック（５，７）のうちのいずれが、前記システム（１）のメモリ書込ユニット（１１）によって次に更新されるべきであるかを判定するために使用されるように構成されたことを特徴とする、ティアリング防止保護システム（１）。
【請求項２】
データ要素にリンクされた所定のプロパティが、前記第１の読取閾値（１３）以上であれば、前記データ要素は、前記第１の読取モードに従って第１の論理状態を有し、前記所定のプロパティが、前記第１の読取閾値を下回るのであれば、前記データ要素は、前記第１の読取モードに従って、第２の、異なる論理状態を有し、前記所定のプロパティが、前記第２の読取閾値（１５）以上であれば、前記データ要素は、前記第２の読取モードに従って第１の論理状態を有し、前記所定のプロパティが、前記第２の読取閾値（１５）を下回るのであれば、前記データ要素は、前記第２の読取モードに従って第２の論理状態を有する、請求項１に記載のティアリング防止保護システム（１）。
【請求項３】
前記所定のプロパティは、メモリセルレベルから導出可能である、請求項２に記載のティアリング防止保護システム（１）。
【請求項４】
第３の読取モードに従って、前記データセットに含まれる前記データ要素の論理状態を判定するために、前記第１および第２のメモリブロック（５，７）はさらに、前記第１および第２のルールセットとは異なる第３のルールセットを定義する前記第３の読取モードで読み取られるように構成され、誤り検出コードが、所定の前記第１の値に等しく、前記第３の読取モードで読み取られた前記ユーザデータが、前記第１の読取モードにおいて読み取られた前記ユーザデータと同一であると判定された場合、前記それぞれのメモリブロックにおける前記ユーザデータは、前記第３の読取モードに従って、正しいと考慮される、請求項１に記載のティアリング防止保護システム（１）。
【請求項５】
所定の前記第１の値は、前のメモリ書込操作中に、それぞれの前記メモリブロック（５，７）に記憶された前記誤り検出コードと等しい、請求項１から請求項４のいずれかに記載のティアリング防止保護システム（１）。
【請求項６】
前記第１および第２の読取モードに従う前記ユーザデータの正確性のためのさらなる条件は、前記カウンタデータが、所定のカウンタ値を有することである、請求項１に記載のティアリング防止保護システム（１）。
【請求項７】
請求項１から請求項６のいずれかに記載の前記ティアリング防止保護システム（１）を備えた、集積回路カード。
【請求項８】
−  前記第１のメモリブロック（５）における前記データセットが、前記第１の読取モードに従って、正しいと判定され、前記第１のメモリブロック（５）における前記データセットが、前記第２の読取モードに従って、正しいと判定され、
−  前記第２のメモリブロック（７）における前記データセットが、前記第１の読取モードに従って、正しいと判定され、前記第２のメモリブロック（７）における前記データセットが、前記第２の読取モードに従って、正しいと判定された場合、
前記データセットはさらに、どのメモリブロック（５，７）が、最後に更新されたのかを示すカウンタデータを備え、前記誤り検出コードはさらに、前記カウンタデータに基づいて取得され、有効なメモリブロックは、最後に更新されたメモリブロックであることを判定し、前記更新された第１のメモリブロックを、別のデータのセットを用いて更新する、請求項１から請求項６のいずれかに記載のティアリング防止保護システム（１）を操作する方法。
【請求項９】
−  前記第１のメモリブロック（５）における前記データセットが、前記第１の読取モードに従って、正しいと判定され、前記第１のメモリブロック（５）における前記データセットが、前記第２の読取モードに従って、正しいと判定され、
−  前記第２のメモリブロック（７）における前記データセットが、前記第１の読取モードに従って、正しいと判定され、前記第２のメモリブロック（７）における前記データセットが、前記第２の読取モードに従って、正しくないと判定された場合、
前記第１のメモリブロックが有効であると判定し、前記第２のメモリブロック（７）を、別のデータのセットを用いて更新する、請求項１から請求項６のいずれかに記載のティアリング防止保護システム（１）を操作する方法。
【請求項１０】
−  前記第１のメモリブロック（５）における前記データセットが、前記第１の読取モードに従って、正しいと判定され、
−  前記第２のメモリブロック（７）における前記データセットが、前記第１の読取モードに従って、正しくないと判定された場合、
前記第１のメモリブロック（５）が有効であると判定し、前記第２のメモリブロック（７）を、別のデータのセットを用いて更新する、請求項１から請求項６のいずれかに記載のティアリング防止保護システム（１）を操作する方法。
【請求項１１】
−  前記第１のメモリブロック（５）における前記データセットが、前記第１の読取モードに従って、正しいと判定され、前記第１のメモリブロック（５）における前記データセットが、前記第２の読取モードに従って、正しくないと判定され、
−  前記第２のメモリブロック（７）における前記データセットが、前記第１の読取モードに従って、正しいと判定され、前記第２のメモリブロック（７）における前記データセットが、前記第２の読取モードに従って、正しくないと判定された場合、
前記データセットはさらに、どのメモリブロック（５，７）が最後に更新されたメモリブロックであるかを示すカウンタデータを備え、前記誤り検出コードはさらに、前記カウンタデータに基づいて取得され、有効なメモリブロックは、最初に更新されたメモリブロックであると判定し、前記最後に更新されたメモリブロックを、別のデータのセットを用いて更新する、請求項１から請求項６のいずれかに記載のティアリング防止保護システム（１）を操作する方法。
【請求項１２】
−  前記第１のメモリブロック（５）における前記データセットが、前記第１の読取モードに従って、正しくないと判定され、
−  前記第２のメモリブロック（７）における前記データセットが、前記第１の読取モードに従って、正しくないと判定された場合、
前記第１および第２のメモリブロック（５，７）が有効ではないと判定する、請求項１から請求項６のいずれかに記載のティアリング防止保護システム（１）を操作する方法。
【請求項１３】
前記第１および第２のメモリブロック（５，７）へのさらなる書込操作を阻止することをさらに備えた、請求項１２に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、たとえば集積回路（ＩＣ）カード用の不揮発性メモリ（ＮＶＭ）用のティアリング防止保護システムに関する。より具体的には、提案されたシステムは、メモリブロック更新を非常に短時間で実行する必要がある、タイミング制約のあるシステムに特に適している。本発明はまた、提案されたティアリング防止システムを操作する方法に関する。
【背景技術】
【０００２】
無線周波数識別（ＲＦＩＤ）カードなどのＩＣカードをカードリーダからティアリングするなどして、電源供給が簡単に中断されるシステムでは、書込操作は、書込操作の途中で中断され、ＩＣ内に書き込まれたデータが破損されることがあり得る。データをバックアップする他のシステムがない場合は、ＩＣ内にティアリング防止保護システムを実装することがしばしば必要である。このようなシステムは、書込操作中の電源ティアリングイベントの場合に、システムが、古いデータを維持すること、または新たなデータが正しく書き込まれること、のいずれかを保証する必要がある。
【０００３】
スマートカードまたは他のＩＣカードの最先端のティアリング防止システムは、次に説明するいくつかの原則に基づいている。１つの一般的なシステムは、フラグを用いたツーロケーションシステムである。このソリューションによれば、ＩＣは２つの異なるロケーションのいずれかにデータを書き込み、システムは、別のフラグを使用して、どのデータが有効か、つまり最後にデータの更新が正しく行われたのはどこかを示す。新たな書込操作中に、ＩＣは、無効なデータを有するロケーションを選択し（有効なデータを有するロケーションを維持し）、そのロケーションを更新する。この操作が完了すると、システムは、更新されたばかりのロケーションを指すようにフラグを更新する。データ更新中のティアリングの場合、古いデータは変更されず、フラグは、これら古いデータを指し示す。フラグ更新中のティアリングの場合、フラグが破損している可能性があり、フラグは、新たなデータまたは古いデータを指し示す。しかし、フラグを更新する前に、新たなデータの書込操作は、正しく終了されている。これは、データが正しく、破損していないことを保証する。しかしながら、このシステムの欠点は、１つはデータ用、もう１つはフラグ用である、少なくとも２つの独立した書込操作が必要であることである。しかしながら、多くの時間制約システムでは、この種のソリューションは実際には実行できない。
【０００４】
既知のティアリング防止システムの別の例は、誤り検出コード（ＥＤＣ）を備えたＮワードローリングバッファである。データは、Ｎ個のロケーション（Ｎは、正の整数）に記憶され、すべてのロケーションは、オーダ番号（Ｎｂ）およびＥＤＣを含む。ＥＤＣは、記憶されたデータから計算され、誤り訂正チェックは、データが正しい場合は合格とし、データがＥＤＣに対応しない場合は不合格とするものとする。データが更新されると、新たなデータはＮｂ＋１で書き込まれ、誤り検出スキームは、新たなデータに基づいて実行される。起動中、ＩＣは、ＥＤＣを使用して、すべてのロケーションと、データの正確性とをチェックする。有効なＥＤＣ、および、最も高いＮｂを有するデータを、有効なデータとする。このシステムの欠点は、Ｎ＝２の場合、２つの連続したティアリングイベントが発生すると、データが失われることである。システムのロバスト性を高めるには、Ｎを大幅に大きくするべきであり、これは、メモリスペース、つまりチップ領域を必要とする。いずれにせよ、この種のシステムは、（Ｎ−１）回のティアリングイベントに対してのみロバストである。
【０００５】
既知のティアリング防止システムのさらに別の例は、誤り訂正コード（ＥＣＣ）および復元機能を備えたシステムである。このシステムでは、ＩＣは、データ誤り訂正コードを書き込む。ＥＣＣは、書き込まれたデータに一貫性があるか否かを検証し、これらを訂正することもできる。書込操作が中断されると、次回の電源投入時に、ＩＣは、データの完全性を検証する。データが正しくないことが検出された場合、つまりＥＣＣスキームが失敗した場合、システムは、ＥＣＣに基づいて正しい状態を復元し、起動中に、書込操作を使用して、メモリ状態を訂正する。このシステムには、復元段階中に別のティアリングイベントが発生すると、データが完全に失われるという欠点がある。さらに、ＥＣＣは、限られた数の誤りビットしか訂正できない。さらなるビットが変更されると、システムは故障する。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、既存のティアリング防止システムの上記欠点の少なくともいくつかを克服することである。より具体的には、本発明は、ＮＶＭ用のティアリング防止システムを提供することを目的とする。これは、厳密なタイミング制約を有するシステムに特に適している。
【課題を解決するための手段】
【０００７】
本発明の第１の態様によれば、請求項１に記載の不揮発性メモリ用のティアリング防止保護システムが提供される。
【０００８】
提案されたソリューションは、提案されたシステムでは、メモリブロックを更新するために１回の書込操作しか必要とされないという利点を有する。たとえば、フラグを更新する必要はない。その結果、提案されたシステムは、タイミングが重要で、１回の書込操作のみのための時間があるシステムに便利である。提案されたシステムは、有効なメモリ値をそのまま維持できるため、無限回数のティアリング試行に対してもロバストである。さらに、本システムは、２つのメモリブロックしか必要としないため、面積効率に優れている。
【０００９】
本発明の第２の態様によれば、ティアリング防止保護システムを備えた集積回路カードが提供される。
【００１０】
本発明の第３の態様によれば、ティアリング防止システムを操作する方法が提供される。
【００１１】
本発明の他の態様は、添付の従属請求項に記載されている。
【００１２】
本発明の他の特徴および利点は、添付の図面を参照して、非限定的な例示的実施形態の以下の説明から明らかになるであろう。
【図面の簡単な説明】
【００１３】
【図１】図１は、本発明の例示的な実施形態によるティアリングシステムを示す簡略化されたブロック図である。
【図２】図２は、図１のティアリング防止システムで使用され得るいくつかのメモリ読取レベルを示す図である。
【発明を実施するための形態】
【００１４】
次に、添付の図面を参照して、本発明の実施形態を詳細に説明する。本発明は、ＲＦＩＤ  ＩＣカードなどのＲＦスマートカードのティアリング防止システムの文脈で説明される。しかしながら、本発明の教示は、この環境または用途に限定されない。異なる図面に現れる同一または対応する機能的および構造的要素には、同じ参照番号が割り当てられる。本明細書で使用される場合、「および／または」は、「および／または」によって結合されたリスト内の項目のいずれか１つまたは複数を意味する。例として、「ｘおよび／またはｙ」は、３要素セット｛（ｘ），（ｙ），（ｘ，ｙ）｝の任意の要素を意味する。言い換えれば、「ｘおよび／またはｙ」は、「ｘおよびｙの一方または両方」を意味する。別の例として、「ｘ，ｙ，および／またはｚ」は、７要素セット｛（ｘ），（ｙ），（ｚ），（ｘ，ｙ），（ｘ，ｚ），（ｙ，ｚ），（ｘ，ｙ，ｚ）｝の任意の要素を意味する。言い換えれば、「ｘ，ｙ，および／またはｚ」は、「ｘ，ｙ，およびｚのうちの１つまたは複数」を意味する。さらに、「備える」という用語は、本明細書では無制限の用語として使用される。これは、オブジェクトが、リストされたすべての要素を含むことを意味するが、追加の、名前のない要素を含むこともできる。したがって、「備える」という用語は、「含む」、「収納する」、または「包含する」という広い意味で解釈される。
【００１５】
提案されているティアリング防止システムは、たとえば次の制限があるＮＶＭシステム用に設計されている。
１）使用されるプロトコルおよびＮＶＭタイミングスキームは、重要なデータの更新中に１つの更新操作のみが許可される。たとえば、システムは、個別のフラグを使用できない。
２）メモリ領域の制限は、２つのメモリロケーションのみを許可する。これらの制限は、Ｎワードのローリングバッファの使用を許可しない。
３）現在、ロバスト性は、単一のティアリングイベントに限定されている。
【００１６】
次に詳細に説明するように、本発明は、最後のメモリ書込操作のロバスト性を検証する新たなソリューションを提案する。図１は、本発明の教示を理解するのに有用であり得る、提案されたティアリング防止システム１のいくつかの要素を概略的に示す。図１は、ＮＶＭユニットまたは要素３、または単にメモリユニットを示している。これらは、書き込まれたデータのロバスト性、つまりデータが書き込まれた強さまたは弱さを検証できる。メモリユニット３は、第１のメモリブロックまたはバッファ５と、第２のメモリブロックまたはバッファ７とを備え、これらは、この例では、独立したメモリブロックであり、独自のメモリアドレスまたはロケーションを有する。これらのメモリブロックは、不揮発性メモリであり、これは、システムの電源が切られた後でも、記憶されたデータや情報を取得できるメモリの一種である。ＮＶＭの例には、読取専用メモリ、フラッシュメモリ、ＥＥＰＲＯＭメモリ、強誘電体ランダムアクセスメモリ（ＦＲＡＭ）、磁気ランダムアクセスメモリ（ＭＲＡＭ）、抵抗性ランダムアクセスメモリ（ＲＲＡＭ）、多くの種類の磁気コンピュータストレージデバイス（たとえば、ハードディスクドライブ、ソリッドステートドライブ、フロッピーディスク、および磁気テープなどを含む）、および光ディスクを含む。
【００１７】
図１には、第１および第２のメモリブロック５，７の両方を読み取るように構成された処理ユニット９も示されている。メモリブロックは、異なるメモリ読取モードを使用して有利に読み取ることができ、どのデータが正しく、したがって有効であり、どのデータが破損されているのかを区別することが可能である。メモリ書込ユニット１１とともに、処理ユニットは、有効なデータが常に維持されることを保証する。メモリ書込ユニット１１は、２つの独立したメモリブロック５，７（またはメモリロケーション）にデータを選択的に記憶するために書込操作中に使用されるように構成されたシステムを備える。この例では、各メモリブロックは次のデータ、
・ユーザデータ、
・どのワードが最後に書き込まれたか、またはどのメモリブロックが最後に更新されたかを示す、ティアリング防止（ＡＴ）カウンタとも呼ばれるカウンタ、および
・この例ではユーザデータおよびカウンタを備えた所定のデータセットに対して計算されたＥＤＣを備えている。言い換えれば、この例では、ＥＤＣは、ユーザデータおよびカウンタに対して計算される。
【００１８】
本例では、メモリブロック５，７内のデータのロバスト性は、３つの異なるまたは独立したメモリ読取モードまたは操作、すなわち、通常読取（ＮＲ）モードと呼ばれる第１の読取モード、書込マージン読取（ＷＭＲ）モードと呼ばれる第２の読取モード、および、消去マージン読取（ＥＭＲ）モードと呼ばれる第３の読取モードを使用して確認または検証されるように構成される。これらのモードの関係が図２に例示され、この例では、縦軸すなわちｙ軸は、１つのデータ要素、つまりビット、を記憶するために使用される所定のメモリセルの電荷レベル（または、その代わりに、電圧レベル）を表す。しかしながら、代わりに、読取モードは、充電レベルまたは充電値以外のパラメータを使用して定義され得る。
【００１９】
次に説明するように、メモリにデータが、どれだけ強くまたはどれだけ弱く、書き込まれた、または消去されたのかを判定するために、異なる読取モードが使用される。ＮＲモードは、デフォルトの読取モードであると考慮され得る。ＮＲモードは、ＮＲモードに従ってデータビットの論理状態またはレベルを判定するための第１のルールセットを定義する。この例では、第１のルールセットは、通常読取レベル１３と呼ばれる第１のしきい値１３を備えている。図２に示すように、通常読取レベル１３は、それぞれのメモリセルの最大可能充電レベルＣｍａｘの（ほぼ）半分に相当する。したがって、この例の通常読取レベルは、実質的にＣｍａｘ／２に等しい。より一般的には、通常読取レベル１３は、（充電レベルが使用されると仮定すると）最大充電レベルの４０％から６０％の間であり得る。したがって、通常読取レベル１３以上のメモリセル電荷値から導出されるビットは、この例ではビット値１に対応する第１の論理状態を有すると判定されるが、通常読取レベル１３を下回るメモリセル電荷値から導出されるビットは、第２の論理状態、つまり、この例ではビット値０を有すると判定される。所定のメモリセルの電荷値は、経時的に変化し得ることが留意されるべきである。その結果、メモリセルの電荷値は、最初は通常読取レベル１３をわずかに上回っているが、時間が経過すると、通常読取レベルを下回り得る。これは、そのメモリセルに対応するビットも、ある状態から別の状態に、つまりこの例では、１から０に値を変えることを意味する。
【００２０】
ＷＭＲモードは、ＷＭＲモードに従ってデータビットの論理状態を判定するための第２のルールセットを定義する。この例では、第２のルールセットは、書込マージン読取レベル１５と呼ばれる第２のしきい値１５を備えている。図２に示すように、書込マージン読取レベル１５は、通常読取レベル１３よりも高く設定されている。この特定の例では、書込マージン読取レベルの充電レベルは、可能な最大充電レベルの約４分の３である。言い換えれば、書込マージンの実際のレベル１５は、実質的に（３／４）Ｃｍａｘに等しい。より一般的には、書込マージンの実際のレベル１５は、Ｃｍａｘの６５％から８５％の間であり得る。書込マージン読取レベルは、以前に消去されたセルが、ロバストな方式で書き込まれたか否かを判定するために使用される。したがって、ＷＭＲモードによれば、書込マージン読取レベル１５以上のメモリセル電荷値から導出されるビットは、この例ではビット値１に対応する第１の論理状態を有すると判定される一方、書込マージン読取レベルを下回るメモリセル充電値から導出されるビットは、第２の論理状態、つまり、この例ではビット値０を有すると判定される。したがって、ＷＭＲモードで判定されたように、（この例では）値１を有するいずれの論理状態も、強く書き込まれたと考慮され得るので、所定の保持時間中、強く書き込まれたビットは、その電荷レベルを、ＮＲレベルを下回るように変更し、ＮＲモードで読み取られた値を変更する可能性は低い。
【００２１】
ＥＭＲモードは、ＥＭＲモードに従ってデータビットの論理状態を判定するための第３のルールセットを定義する。この例では、第３のルールセットは、消去マージン読取レベル１７と呼ばれる第３のしきい値１７を備えている。図２にさらに示すように、消去マージン読取レベル１７は、通常読取レベル１３よりも低く設定されている。この特定の例では、消去マージン読取レベルの充電レベルは、可能な最大充電レベルの約４分の１である。言い換えれば、消去マージン読取レベル１７は、実質的に（１／４）Ｃｍａｘに等しい。より一般的には、消去マージンの実際のレベルは、Ｃｍａｘの１５％から３５％の間であり得る。消去マージン読取レベル１７は、消去されたセルが、ロバストな方式で消去されたか否かを判定するために使用される。したがって、ＥＭＲモードによれば、消去マージン読取レベル１７以上のメモリセル電荷値から導出されたビットは、この例ではビット値１に対応する第１の論理状態を有すると判定される一方、消去マージン読取レベル１７未満のメモリセル電荷値から導出されたビットは、第２の論理状態、つまり、この例ではビット値０を有すると判定される。したがって、ＥＭＲモードで判定されたように、（この例では）値０を有するいずれの論理状態も、強く消去されたと考慮され得るので、所定の保持時間中、強く消去されたビットは、その電荷レベルを、ＮＲレベルを上回るように変更し、ＮＲモードで読み取られた値を変更する可能性は低い。
【００２２】
３つのしきい値、すなわち、通常読取レベル１３、書込マージン読取レベル１５、および消去マージン読取レベル１７は、図２に示すように４つのデータ強度ゾーンを定義する。書込マージン読取レベル１５の上のゾーンは、強く書き込まれたデータゾーンであり、書込マージン読取レベル１５と通常読取レベル１３との間のゾーンは、弱く書き込まれたデータゾーンであり、通常読取レベル１３と消去マージン読取レベル１７との間のゾーンは、弱く消去されたデータゾーンであり、消去マージン読取レベル１７の下のゾーンは、強く消去されたデータゾーンである。
【００２３】
上記を考慮して、ＥＭＲモードおよび／またはＷＭＲモードでデータが正しく読み取られた場合、通常の読取データが正しく読み取られ、指定された保持時間中、正しく維持されることが保証される。さらに、データがＮＲモードで正しく読み取られ、ＥＭＲモードでは正しく読み取られなかった場合、データは弱く消去されたが、データがＮＲモードで正しく読み取られ、ＷＭＲモードでは正しく読み取られなかった場合、そのデータは弱く書き込まれたと判定され得る。
【００２４】
提案されたアルゴリズムは、単に、ＮＲモードと、他の２つの読取モードの一方とが使用されている場合でも、ティアリング防止保護として正しく機能する。２つの読取モードのみを使用する場合の唯一の制限は、ＮＶＭの寿命に関する。この時点で、データ破損はさらに、メモリが使い果たされているという事実により、正しく書き込まれた場合でもデータがランダムに変化する可能性があり得る。このような場合、製品の寿命に達しているか、または、メモリへの書込サイクルの数を制限するために、カウンタが追加される可能性があるため、リスクは単純に許容され得る。しかしながら、独自のルールセットを定義する１つまたは複数のさらなる読取モードが追加された場合、本発明の教示が等しく適合することに留意されたい。
【００２５】
次に、データの正確性ルールが説明される。本実施形態では、通常の読取モードを使用して読み取られたメモリブロック内のデータは、以下であれば正しいと考慮されると定義される。
１．ＥＤＣが正しい、つまりｆ（ＡＴ、ユーザデータ）に等しく、最後に更新されたときに、それぞれのメモリに保存されており、ＡＴカウンタは、有効な値を有している。
【００２６】
消去マージン読取モードまたは書込マージン読取モードを使用して読み取られたメモリブロック内のデータは、以下であれば正しいと見なされると定義される。
１．ＥＤＣが正しい、つまりｆ（ＡＴ、ユーザデータ）に等しい。
２．ＡＴカウンタが有効な値を有する。
３．このモードで読み取られたデータは、通常読取を使用して読み取られたデータと同等である。
【００２７】
この場合、２つのメモリブロックがあるため、ＡＴカウンタは４つの可能な値を定義する２ビットで構成される。したがって、これら値のうちの１つの値は、無効な状態を示し、残りの３つの値は、有効な状態を示す。しかしながら、カウンタの他の実装も可能である。
【００２８】
次に、どのメモリブロックが有効であるのかを判定するために、ティアリング防止アルゴリズムルールが定義される。ティアリング防止アルゴリズムの目的のために、マージン読取（ＭＲ）は次のように定義される。
・ＥＭＲモードとＷＭＲモードとの両方の実装では、ＭＲ＝ＥＭＲおよびＷＭＲであり、
・ＷＭＲのみの実装では、ＭＲ＝ＷＭＲであり、
・ＥＭＲのみの実装では、ＭＲ＝ＥＭＲである。
【００２９】
以下のルールの説明を簡単にするために、以下がさらに定義される。
・ブロックＸは、ブロック１またはブロック２であり得る。
・ブロックＹは、これらブロックのうちの他方である。
【００３０】
言い換えれば、ブロックＸがブロック１である場合、ブロックＹはブロック２であり、ブロックＸがブロック２である場合、ブロックＹはブロック１である。
【００３１】
提案されたアルゴリズムは、以下のルールを有する。
１．ブロックＸ  ＮＲが正しく、ブロック１  ＭＲが正しく、ブロックＹ  ＮＲが正しく、ブロック２  ＭＲが正しい場合、有効なブロックは、ＡＴカウンタが、新たなブロック、つまり最後に更新されたブロックを示すブロックである。このシナリオでは、ティアリングは発生しない。
２．ブロックＸ  ＮＲが正しく、ブロックＸ  ＭＲが正しく、ブロックＹ  ＮＲが正しく、ブロックＹ  ＭＲが正しくない場合、ブロックＸは有効である。このシナリオでは、メモリ更新操作中にブロックＹが破損されたと判定され得る。
３．ブロックＸ  ＮＲが正しく、ブロックＹ  ＮＲが正しくない場合、ブロックＸは有効である。このシナリオでは、ＭＲモードを使用せずに、ブロックＹが破損されていると判定され得る。
４．ブロックＸ  ＮＲが正しく、ブロックＸ  ＭＲが正しくなく、ブロックＹ  ＮＲが正しく、ブロックＹ  ＭＲが正しくない場合、有効なブロックは、ＡＴカウンタが、より古いことを示すブロックである。この状況では、どのブロックが強く、弱く書き込まれているのかを正確に言うことはできない。しかし、提案されたシステムのおかげで、新たなブロックの更新を開始したために、より古いブロックは、過去に少なくとも１回は正しいＭＲを有していたことが分かる。しかし、これは初めて確認されたので、新たなものに対しては言えない。したがって、より古いブロックのマージンレベルは高く、ＭＲに近く、単に経時的に悪化した。
５．ブロックＸ  ＮＲが正しくなく、ブロックＹ  ＮＲが正しくない場合、メモリブロックが寿命に達していると判定され得る。この場合、ＮＶＭアクションは実行されず、寿命が別のシステムに報告される。さらに、これらのメモリへの書込が阻止され得る。
【００３２】
上述のように有効なメモリブロックが判定されると、処理ユニット９は、メモリ書込ユニット１１に、判定結果について通知し得る。したがって、メモリ書込ユニット１１は、処理ユニット９からのフィードバックに基づいて、新たな情報またはデータを用いて、無効なメモリブロックを更新し得る。したがって、メモリ更新ルールは次のとおりである。
１．有効なブロックは保持され、変更されない。
２．無効なブロックは、新たな値または新たな値のセットを用いて更新される。
【００３３】
本発明は、図面および前述の説明において詳細に図示および説明されたが、そのような図示および説明は、例示的または典型的であり、限定的ではないと考慮されるべきであり、本発明は、開示された実施形態に限定されない。他の実施形態および変形例が理解され、図面、開示および請求項の範囲の検討に基づいて、特許請求された発明を実行する際に、当業者によって達成され得る。たとえば、提案されたシステムに１つ以上のさらなるメモリブロックを追加することが可能である。
【００３４】
請求項において、「備える」という用語は、他の要素またはステップを除外せず、「ａ」または「ａｎ」である不定冠詞は、複数を除外しない。異なる特徴が相互に異なる従属請求項に記載されているという単なる事実は、これらの特徴の組合せが有利に使用できないことを示していない。請求項中のいずれの参照符号も、本発明の範囲を限定するものとして解釈されるべきではない。
【符号の説明】
【００３５】
１  ティアリング防止システム
３  メモリユニット
５  第１のメモリブロック
７  第２のメモリブロック
９  処理ユニット
１１  メモリ書込ユニット
１３  通常読取レベル
１５  書込マージン読取レベル
１７  消去マージン読取レベル
【図１】
2020077405.tif 000003
【図２】
2020077405.tif 000004
【外国語明細書】
2020077405000001.pdf