(57)【特許請求の範囲】
【請求項１】
いくつかのマーカユニットを含む消去カウンタをインクリメントするための方法であって、
−直前のマーカユニットが設定された場合にはマーカユニットを設定するステップと、
−前記直前のマーカユニットが設定されなかった場合には前記マーカユニットを設定しないステップと
を含む、方法。
【請求項２】
前記消去カウンタが、メモリ、特に不揮発性メモリの一部分に関連しており、前記メモリの前記部分に加えられる消去操作が、前記消去カウンタのインクリメントをトリガする、請求項１に記載の方法。
【請求項３】
前記消去カウンタが、不揮発性メモリの一部であり、前記消去カウンタの前記メモリが、アプリケーション・ソフトウェアに対してアクセス可能でないか、読取り専用である、請求項１に記載の方法。
【請求項４】
前記消去カウンタが、不揮発性消去カウンタである、請求項１に記載の方法。
【請求項５】
各マーカユニットがいくつかのビットを含み、前記マーカユニットが、前記直前のマーカユニットで設定されたビットの多数決に基づいて設定される、請求項１に記載の方法。
【請求項６】
各マーカユニットの幅は少なくとも２ビットであり、前記マーカユニットが、前記直前のマーカユニットの前記ビットを利用する操作に基づいて設定される、請求項１に記載の方法。
【請求項７】
前記操作が多数決である、請求項６に記載の方法。
【請求項８】
メモリの一部分、特に不揮発性メモリのセクタまたはページの実際の消去の前に、前記マーカユニットを設定するステップを含む、請求項１に記載の方法。
【請求項９】
各マーカユニットが、単進符号またはサーモメータコードの単一のカウント値に対応する、請求項１に記載の方法。
【請求項１０】
前記マーカユニットが、前記マーカユニットの全てのビットを同じ値に設定することによって設定される、請求項１に記載の方法。
【請求項１１】
マーカユニットが、前記マーカユニットの全てのビットを同じ値に設定することによっては設定されず、この値が、前記マーカユニットを設定するのに使用される値とは異なる、請求項１に記載の方法。
【請求項１２】
−前記消去カウンタを読み取り、それをレジスタに格納するステップと、
−各マーカユニットを書込みバッファに書き込むステップであって、各マーカユニットが、前記それぞれの直前のマーカユニットの前記ビットを利用する操作に基づいて、設定されるか、設定されないステップと、
−前記書込みバッファを前記消去カウンタに書き込むステップと
を含む、請求項１に記載の方法。
【請求項１３】
前記操作が多数決であり、前記レジスタに読み込まれた前記マーカユニットのそれぞれについて、このような多数決が利用可能である、請求項１２に記載の方法。
【請求項１４】
前記レジスタ内の最も高いマーカユニットが設定される場合に、オーバフロー表示を出すステップを含む、請求項１２に記載の方法。
【請求項１５】
前記オーバフロー表示を使用して、前記消去カウンタを拡張する、請求項１４に記載の方法。
【請求項１６】
−いくつかのマーカユニットを含む消去カウンタと、
−メモリ部分と、
−処理ユニットであって、
−直前のマーカユニットが設定された場合にはマーカユニットを設定するステップ、および
−前記直前のマーカユニットが設定されなかった場合にはマーカユニットを設定しないステップ
によって、前記メモリ部分において実行される消去手順に基づいて前記消去カウンタをインクリメントするように構成された処理ユニットと
を備える、装置。
【請求項１７】
前記装置が、シングルチップまたはダイに実装される、請求項１６に記載の装置。
【請求項１８】
前記メモリ部分が、不揮発性メモリの一部である、請求項１６に記載の装置。
【請求項１９】
前記メモリ部分が、
−浮遊ゲート・セル、
−ＰＣＲＡＭ、
−ＲＲＡＭ（登録商標）、
−ＭＲＡＭ、
−ＭＯＮＯＳデバイス、
−ナノ結晶セル、
−ＦｅＲＡＭ、
−ハードドライブ、
−不揮発性記憶装置
のうちの少なくとも１つを含む、請求項１６に記載の装置。
【請求項２０】
前記消去カウンタが、アプリケーション・ソフトウェアに対してアクセスできないように、または前記アプリケーション・ソフトウェアに対して読取り専用であるように構成される、請求項１６に記載の装置。
【請求項２１】
前記処理ユニットが、
−前記消去カウンタを読み取り、それをレジスタに格納し、
−各マーカユニットを書込みバッファに書き込み、各マーカユニットが、前記それぞれの直前のマーカユニットのビットを利用する操作に基づいて、設定されるか、設定されず、
−前記書込みバッファを前記消去カウンタに書き込むように構成される、請求項１６に記載の装置。
【請求項２２】
前記操作が多数決であり、前記レジスタに読み込まれた前記マーカユニットのそれぞれについて、このような多数決が利用可能である、請求項２１に記載の装置。
【請求項２３】
いくつかのマーカユニットを含む消去カウンタをインクリメントするための装置であって、
−直前のマーカユニットが設定された場合にはマーカユニットを設定するための手段と、
−前記直前のマーカユニットが設定されなかった場合には前記マーカユニットを設定しないための手段と
を備える、装置。
【発明の詳細な説明】
【背景技術】
【０００１】
本発明の実施形態は、データの不正操作の監視を可能にする消去カウンタの処理に関する。
【発明の概要】
【課題を解決するための手段】
【０００２】
第１の実施形態は、いくつかのマーカユニットを含む消去カウンタをインクリメントするための方法であって、
−直前のマーカユニットが設定された場合にはマーカユニットを設定するステップと、
−直前のマーカユニットが設定されなかった場合にはマーカユニットを設定しないステップと
を含む、方法に関する。
【０００３】
第２の実施形態は、
−いくつかのマーカユニットを含む消去カウンタと、
−メモリ部分と、
−処理ユニットであって、
−直前のマーカユニットが設定された場合にはマーカユニットを設定するステップ、および
−直前のマーカユニットが設定されなかった場合にはマーカユニットを設定しないステップ
によって、メモリ部分において実行される消去手順に基づいて消去カウンタをインクリメントするように構成された処理ユニットと
を備える、装置に関する。
【０００４】
第３の実施形態は、いくつかのマーカユニットを含む消去カウンタをインクリメントするための装置であって、
−直前のマーカユニットが設定された場合にはマーカユニットを設定するための手段と、
−直前のマーカユニットが設定されなかった場合にはマーカユニットを設定しないための手段と
を備える、装置に関する。
【０００５】
図面を参照しながら、各実施形態を示して説明する。各図面は、基本原理を示す働きをするので、この基本原理を理解するのに必要な態様だけを示す。各図面は、縮尺通りではない。各図面において、同じ参照文字は同様の機能を表す。
【図面の簡単な説明】
【０００６】
【図１】たとえば、フラッシュ・ランダム・アクセス・メモリ（フラッシュＲＡＭ）など、いくつかのマーカユニットを含むメモリデバイス内のカウンタフィールドを示す。
【図２】消去カウンタを利用する消去手順の、例示的な実行のステップを含む流れ図を示す。
【図３】ループなしの消去カウンタを利用する代替実施形態を示す。
【図４】消去カウンタを利用する調和のとれた消去手順の、例示的な実行のステップを含む流れ図を示す。
【発明を実施するための形態】
【０００７】
不揮発性メモリ（ＮＶＭ）は、様々なソフトウェア・アプリケーションによってプログラムすることができ、また消去することができる。メモリは、一群のビットを一緒に消去し、またはそれをプログラムするように構成してもよい。たとえば、メモリのセクタを消去してもよく、またはメモリのページをプログラムしてもよい。たとえば、ページはいくつかのビットを含んでもよく、セクタはいくつかのページを含んでもよい。
【０００８】
本明細書において提示された例により、単一セクタまたは一群のセクタ上で、消去サイクルがいくつ実行されたか決定することが可能になる。メモリが改ざんされたかどうか、特に許可されていない変更をメモリが受けたかどうか判定するのに、この情報が有用になることがある。
【０００９】
本明細書で述べるセクタは、消去できるメモリの一部分の例であり、このセクタは、少なくとも１つのビット、特にいくつかのビットまたはいくつかのページを含むことに留意されたい。ここで述べるメモリとは、特にメモリデバイスでもよい。
【００１０】
たとえば、ＮＡＮＤ／ＮＯＲフラッシュ、ＲＲＡＭ、ＭＲＡＭ、ＦｅＲＡＭなど、永続的かつ再プログラム可能なメモリを有する任意のデバイスにおいて、消去カウンタの考え方を使用してもよい。他のセクションが消去された、かつ／または書き換えられたかどうか監視するために、消去カウンタとして取っておかれる一定のセクタを有するハードドライブにも、この考え方が適用できることがある。
【００１１】
使用事例は、再プログラム可能なファームウェアの場合の状況に関してもよい。例示的な状況としては、携帯電話、洗濯機、（たとえば自動車分野での）エンジン制御モジュール、組立てラインでの製造ロボット、ＤＶＤプレーヤ、ゲーム機、ＦＰＧＡデバイスなどがある。
【００１２】
したがって本明細書に記載の例は、特に、データの不正操作を監視するための不揮発性消去カウンタを実現する。
【００１３】
各セクタ用の消去カウンタを備えるメモリ領域が提案されている。このメモリ領域は、特に不揮発性である。メモリ領域は、アプリケーション・ソフトウェアに対しては読出し専用になるように構成してもよい（すなわち、装置上で走っているアプリケーションは、このメモリ領域を望むように修正することができない）。
【００１４】
したがって、消去カウンタを使用して、ソフトウェアの不正操作を検出し、証明することができる。たとえば、公式のソフトウェア・リリースの第９版は、８回の消去操作に関連している可能性があり、この消去操作は消去カウンタが示さなければならない。消去カウンタによって示された消去サイクルの数がそれより大きいと、許可されていないソフトウェアの不正操作が行われた形跡になる可能性がある。
【００１５】
したがって、セキュリティ用途に、または改ざんの証拠を提供するために、提示される解決策を使用してもよい。
【００１６】
たとえば、あるセクタが消去されようとしているとき、消去カウンタをインクリメントしてもよい。消去カウンタの修正は、好ましくは、アプリケーション・ソフトウェアによって不正操作される恐れなしに実現することができる。任意の消去操作によって消去カウンタがインクリメントされるのを回避できるよう、消去カウンタの修正は外部のプログラミング・インターフェースからカプセル化できることが好ましい。
【００１７】
有利には、消去カウンタは、顧客が削除できないように実装してもよく、特に、製品、特にメモリデバイスが顧客に向けて出荷する前だけに削除できるよう消去カウンタを構成してもよい。
【００１８】
メモリ（デバイス）の内容の改ざんは、消去カウンタの値（このような値は、メモリデバイスの内部および／またはメモリデバイスの外部に格納してもよい）を格納し、その値を消去カウンタの実際の値を比較することによって検出することができる。消去カウンタの値は、メモリデバイスの出荷後、および／またはソフトウェアの許可された変更（たとえば公式アップデート）の後に格納してもよい。
【００１９】
消去カウンタの例示的な実装形態は、少なくとも１つのビット、特にいくつかのビットのマーカユニットを有するサーモメータコードを使用する。たとえば、各マーカユニットは、３つのビットまたは４つのビットを含んでもよく、それによってビットエラーから保護できるようになる。
【００２０】
サーモメータコードとも呼ばれる単進符号化は、自然数ｋを表すエントロピー符号化であり、ｋ個の１の後にゼロが続き（自然数が非負整数と理解される場合）、またはｋ−１個の１の後にゼロが続く（自然数が厳密に正整数と理解される場合）。たとえば、数字５は１１１１１０または１１１１０と表される。表現法によっては、ｋ個またはｋ−１個のゼロと、それに続く１を使用する。これらの１およびゼロは、一般性を失うことなく交換可能である。単進符号化は、接頭符号と自己同期符号の両方である（たとえば、ｈｔｔｐ：／／ｅｎ．ｗｉｋｉｐｅｄｉａ．ｏｒｇ／ｗｉｋｉ／Ｔｈｅｒｍｏｍｅｔｅｒ＿ｃｏｄｅ参照）。
【００２１】
図１には、たとえば、フラッシュ・ランダム・アクセス・メモリ（フラッシュＲＡＭ）などマーカユニット１０２およびマーカユニット１０３を備えるメモリデバイスにおいて、幅がｂになるカウンタフィールド１０１が示してある。各マーカユニット１０２、１０３は、ｎビット幅であり、たとえば誤り訂正符号（ＥＣＣ）による対応範囲の不足を補う。したがって、マーカユニット内の単一のビットエラーは、多数決で補償することができる。ｎ＝４ビットのうち少なくとも３ビットが「１」の場合、マーカユニットは有効（および設定済）と考えられ、そうでない場合、有効なマーカユニットを見つけることができない。もちろん、（４以外の）様々な値のｎを使用することができ、それに応じて多数決が調整される。
【００２２】
カウンタフィールド１０１内のマーカユニットの最大数は、ｉｎｔ（ｂ／ｎ）であり、すなわち、除算ｂ／ｎの整数値である。たとえば、カウンタフィールド１０１の幅ｂが２２になり、マーカユニットの幅が４になる場合、カウンタフィールド１０１内に収まるマーカユニットの（最大）値は、ｉｎｔ（２２／４）＝５になる。
【００２３】
図１に示した例では、マーカユニット１０２および１０３は両方とも書き込まれ、これは、消去カウンタの値「２」に対応する。したがって、ビット０から開始して、第１のｎ＝４ビットが「１」に設定されて、第１のマーカユニットが設定され、次いで、消去カウンタの値が２にインクリメントされる場合、次のｎ＝４ビットが「１」に設定され、以下同様である。各インクリメントでは、別のｎ＝４ビットが「１」に設定され、カウンタフィールド１０１内の残りの「０」が減少する。したがって、消去カウンタのカウントが増加すると、カウンタフィールドが連続して一杯になる。
【００２４】
しかし、図１の例では、マーカユニット１０３内の単一のビット１０４が、「１」の代わりに「０」を示しており、これは、メモリセルが不良なのか、それとも書込み操作に障害があるのかが原因となることがある。ビット１０４でのこのようなエラーは、多数決に基づいて、すなわち大多数のセルが「１」になっていることをマーカユニット１０３が示しているという事実に基づいて補償することができる。したがって、マーカユニット１０３は、前記多数決に基づいて書き込まれていると考えられる。
【００２５】
図２には、消去カウンタを利用する消去手順の、例示的な実行のステップを含む流れ図が示してある。
【００２６】
ステップ２０１で、カウンタフィールドがレジスタに読み込まれる。
【００２７】
ステップ２０２で、既に書き込まれたｎビット長のマーカユニットに対応してもしなくてもよい第１のｎビットを求めて、ビット０から開始して、前記レジスタ内で検索が実行される。
【００２８】
ステップ２０３で、有効なマーカユニットに対応してもよいｎビットが見つかる。
【００２９】
ステップ２０４で、これらｎビットにおいて「１」が大多数かどうか検査される。
【００３０】
これが真である場合、マーカユニットの最後がまだ見つかっておらず（これがステップ２０５で決定される）、（ステップ２０６で）位置カウンタがｎビットだけインクリメントされる。次のステップ２０７で、レジスタの最後に達したかどうか検査される（位置カウンタが最大カウントに達するか、またはそれを超える場合）。そうでない場合、この手順はステップ２０３を継続する。しかし、ステップ２０７の状態が真の場合、この手順はステップ２０８で終了する。
【００３１】
ステップ２０４で検査された状態が真でない場合、すなわち、ｎビットにおいて「１」が大多数ではない場合、ステップ２０９に分岐して、マーカユニットの最後が見つかったことを決定する。次に、ステップ２１０で、値が「１」のｎビットがレジスタに配置され、ステップ２１１で、このレジスタがカウンタフィールドに書き戻される。ステップ２１１に続いて、ステップ２０８でこの手順が終了する。
【００３２】
したがって、各単一セクタがカウンタフィールドを有してもよく、このカウンタフィールド内で、大多数の書込みセル（すなわち、大多数の「１」）および少数の消去セル（すなわち、少数の「０」）を示す（有効な）マーカユニットが検索される。しかし、実装形態に応じて、大多数ではない比較機能を使用することができる。たとえば、少なくとも１つ、または少なくとも２つの書込みセルを使用して、（有効な）マーカユニットを決定することができる。誤り訂正符号が利用可能である場合、これが特に有益である。
【００３３】
このようなマーカユニットが決定される場合、消去カウンタを増加させるために、次のｎ個のセルが書き込まれる。
【００３４】
選択肢として、書込みセルを検査することができる。（たとえば、外部の不正操作などにより）書込み操作が成功しなかった場合、選択されたセクタが消去されることはなく、エラーを表示してもよい。
【００３５】
有利には、消去カウンタを読み取ることができ、したがって、どの程度の頻度でセクタが消去されたかを決定することができる。この数を、消去された有効な手順の数と比較して、メモリが不正操作されたかどうか見つけ出すことができる。
【００３６】
例示的な実施形態：ループなしの消去カウンタ
図３には、ループなしの消去カウンタを利用する代替実施形態が示してある。図４には、消去カウンタを利用する調和のとれた消去手順の、例示的な実行のステップを含む流れ図が示してある。
【００３７】
カウンタフィールドが、レジスタＲｅｇ３０１に読み込まれる（ステップ４０１参照）。レジスタＲｅｇ３０１は、（消去カウンタを増加させるよう既に設定された）２つのマーカユニット３０２および３０３を例示的に示し、これらのマーカユニットは、例示的な幅ｎ＝３ビットを有する。図３に示す例では、マーカユニット３０２は、ビット３０４に（「１」の代わりに「０」を示す）単一のエラーを有し、多数決に基づいてこのエラーを補償することができる。すなわち、マーカユニット３０２の残りの２ビットが「１」になるからである。
【００３８】
初めに、書込みバッファＷＢｕｆ３０６の第１のｎ＝３ビットが「１」に設定される。
【００３９】
この手順の繰返し処理においては、後続のマーカユニットが書込みバッファおよびカウンタフィールドに書き込まれ、消去カウンタが増加したことを示す。
【００４０】
マーカユニットのｎビットについては、多数決が実行されて（図３に「Ｍａｊ１」で示す）、このマーカユニットが既に設定された（使用された）かどうか判定する。この場合には、次のマーカユニットが、書込みバッファ３０６で「１」に設定される。すなわち、次のマーカユニットのｎビットが「１」に設定される。どんなループも必要とすることなく、これがレジスタ３０１全体で行われる（ステップ４０２参照）。
【００４１】
実行される操作は以下の式に対応する。
ＷＢｕｆ＜ｎ−１：０＞＝１
ＷＢｕｆ＜ｎ＊（ｍ＋２）−１：ｎ＊（ｍ＋１）＞＝Ｍａｊ１（Ｒｅｇ＜ｎ＊（ｍ＋１）−１：ｎ＊ｍ）＞
ただし、ｍ＝０〜ｉｎｔ（ｂ／ｎ）
ここで、
ＷＢｕｆ＜ａ：ｂ＞は、書込みバッファ３０６のビットａ〜ｂを示す。
ｎは、マーカユニットのビット幅を示す。
ｂは、カウンタフィールドのビット幅を示す。
ｉｎｔ（ｂ／ｎ）は、カウンタフィールドに適合するマークアップ・ユニットの数である。
Ｍａｊ１は、大多数１の論理、すなわち、ｎビットのグループの大多数が「１」に等しいかどうか判定する論理を示し、大多数の状態が満たされる場合、「１」になるｎビットが、書込みバッファの次のｎビットに書き込まれる。
【００４２】
次いで、書込みバッファ３０６が、カウンタフィールドに書き戻される（ステップ４０３参照）。次のステップ４０４で、手順が終了してもよい。
【００４３】
したがって、図３に示した例に基づいて、第１の２つのマーカユニット３０２および３０３が既に設定されている。したがって、後続の消去操作において、以前のマーカ３０３についての多数決に基づいて、次のマーカ３０５が設定されることになる。
【００４４】
したがって、後続の消去操作の結果として、書込みバッファ（ＷＢｕｆ）３０６がカウンタフィールドに書き戻される。
【００４５】
この例には、ループが必要とされないという利点がある。代わりに、レジスタＲｅｇ３０１は、それぞれの一連のｎビット、すなわち各潜在的なマーカユニットにおける多数決に基づいて処理され、それにより、次のｎビットが「１」に設定されるか、または設定されないことになる。その結果は、書込みバッファ（ＷＢｕｆ）３０６に格納された後に、カウンタフィールドに書き込まれる。
【００４６】
一連の「１」について、最後に使用されたマーカユニットを決定するための検索操作が必要とされないことも利点である。
【００４７】
さらなる利点として、（たとえば、時が経つにつれて劣化する影響によって）大多数の「１」を示さない、カウンタフィールド内の不良ビットは、消去カウンタのインクリメントに影響を及ぼさない。
【００４８】
また、カウンタフィールドまたはレジスタＲｅｇ３０１の最後のマーカユニット３０８に基づくオーバフロー信号３０７を使用して、消去カウンタが一杯であることを示すか、または消去カウンタを拡張することができる。
【００４９】
本明細書で提案された例は、特に、以下の解決策のうちの少なくとも１つに基づいてもよい。特に、以下の特徴の組合せを利用して、所望の結果を達成することもできる。この方法の特徴は、装置、機器、もしくはシステムの任意の特徴と組み合わせてもよく、またその逆でもよい。
【００５０】
いくつかのマーカユニットを含む消去カウンタをインクリメントするための方法であって、
−直前のマーカユニットが設定された場合にはマーカユニットを設定するステップと、
−直前のマーカユニットが設定されなかった場合にはマーカユニットを設定しないステップと
を含む方法が提供される。
【００５１】
マーカユニットは、このマーカユニットを次から次へと設定して、消去カウンタのカウントが増加することを表すように、昇順で配置してもよいことに留意されたい。したがって、マーカユニットを使用して、消去カウンタを首尾よく満たしてもよく、単一マーカの設定は、このような消去カウンタのインクリメントでもよい。消去カウンタは、設定できるだけで、リセットできないことが好ましい。これにより、メモリの一部分、たとえばメモリのセクタもしくはページに加えられた、消去サイクルまたは消去操作の数を決定することが可能になる。
【００５２】
消去カウンタをインクリメントすることは、１つずつの増加、または２つ以上の値ずつの増加を含むことにさらに留意されたい。
【００５３】
有利には、この解決策により、メモリの前記部分上、すなわちメモリの単一セクタまたは一群のセクタ上で、消去サイクルがいくつ実行されたか決定することが可能になる。この情報を使用して、メモリが改ざんされたかどうか、特に許可されていない変更をメモリが受けたかどうか判定することができる。
【００５４】
ハードドライブまたはハードドライブの一部分（たとえばセクタ）での消去サイクルは、本明細書に記載の消去カウンタを用いてカウントできることにさらに留意されたい。
【００５５】
一実施形態では、消去カウンタは、メモリ、特に不揮発性メモリの一部分に関連しており、このメモリの前記部分に加えられる消去操作が、消去カウンタのインクリメントをトリガする。
【００５６】
一実施形態では、消去カウンタは、不揮発性メモリの一部であり、この消去カウンタのメモリは、アプリケーション・ソフトウェアに対してアクセス可能ではなく、それへの読取り専用である。
【００５７】
一実施形態では、消去カウンタは、不揮発性の消去カウンタである。
【００５８】
一実施形態では、各マーカユニットはいくつかのビットを含み、このマーカユニットは、直前のマーカユニットで設定されたビットの多数決に基づいて設定される。
【００５９】
直前のマーカユニットは、実際のマーカユニットの前に設定されたマーカユニット、たとえば単進符号での直接の先行要素である。
【００６０】
一実施形態では、各マーカユニットの幅は少なくとも２ビットであり、マーカユニットは、直前のマーカユニットのビットを利用する操作に基づいて設定される。
【００６１】
一実施形態では、この操作は多数決である。
【００６２】
多数決は、マーカユニットの冗長性をどのように利用するかの一例である。しかし、それなりに他の操作を加えてもよい。冗長性を有する符号もしくは誤り検出符号、および／または誤り訂正符号を使用して、マーカユニットが正しかったかどうか判定することも可能である。
【００６３】
一実施形態では、この方法は、
−メモリの一部分、特に不揮発性メモリのセクタまたはページの実際の消去の前に、マーカユニットを設定するステップ
を含む。
【００６４】
一実施形態では、各マーカユニットは、単進符号またはサーモメータコードの単一のカウント値に対応する。
【００６５】
単進符号は、単一ビットを利用して、カウント値を増加させる。しかし、マーカユニットは、好ましくは同じ値に設定されてカウンタの値の増加を示す、いくつかのビットを含んでもよい。
【００６６】
一実施形態では、マーカユニットは、このマーカユニットの全てのビットを同じ値に設定することによって設定される。
【００６７】
一実施形態では、マーカユニットは、このマーカユニットの全てのビットを同じ値に設定することによっては設定されず、この値は、マーカユニットを設定するのに使用される値とは異なる。
【００６８】
マーカユニットが、たとえば４ビットを使用する場合、このマーカユニットを設定することにより、そのビットの全てを「１」に設定することになり、その結果、マーカユニットは「１１１１」になる。一方で、マーカユニットを「設定しない」ことにより、そのビットの全てを「０」に設定することになるか、またはそれらのビットを値「０」のまま変わらない状態にしておくことになる。
【００６９】
一実施形態では、この方法は、
−消去カウンタを読み取り、それをレジスタに格納するステップと、
−設定されたレジスタ内で最後のマーカユニットを検索するステップと、
−最後のマーカユニットに続くマーカユニットを設定するステップと、
−レジスタを消去カウンタに書き戻すステップと
を含む。
【００７０】
一実施形態では、この方法は、
−レジスタを消去カウンタに書き戻すステップが成功しなかった場合に、エラーを示すステップ
を含む。
【００７１】
一実施形態では、この方法は、
−消去カウンタを読み取り、それをレジスタに格納するステップと、
−各マーカユニットを書込みバッファに書き込むステップであって、各マーカユニットが、それぞれの直前のマーカユニットのビットを利用する操作に基づいて、設定されるか、設定されないステップと、
−書込みバッファを消去カウンタに書き込むステップと
を含む。
【００７２】
一実施形態では、この操作は多数決であり、レジスタに読み込まれたマーカユニットのそれぞれについて、このような多数決が利用可能である。
【００７３】
たとえば、レジスタに格納された各マーカユニットのビットに結合された、多数決ハードウェアを設けてもよい。したがって、時間のかかるループを必要とすることなく、各後続マーカユニットについて、書込みバッファを直接書き込むことができる。
【００７４】
一実施形態では、この方法は、
−レジスタ内の最も高いマーカユニットが設定される場合に、オーバフロー表示を送出するステップ
を含む。
【００７５】
一実施形態では、このオーバフロー表示を使用して消去カウンタを拡張する。
【００７６】
また、
−いくつかのマーカユニットを含む消去カウンタと、
−メモリ部分と、
−処理ユニットであって、
−直前のマーカユニットが設定された場合にはマーカユニットを設定するステップ、および
−直前のマーカユニットが設定されなかった場合にはマーカユニットを設定しないステップ
によって、メモリ部分において実行される消去手順に基づいて消去カウンタをインクリメントするように構成された処理ユニットと
を備える、装置が提供される。
【００７７】
前記処理ユニットは、同じチップもしくはダイ上のメモリとともに、またはメモリの外部に設けてもよい、任意の処理装置でよい。この処理ユニットは、ハードウェア、ソフトウェア、および／またはファームウェアの一部分を含んでもよい。処理ユニットは、いくつかの構成要素間で分散するように配置してもよく、または単一のハードウェアでもよい。メモリ部分は、（不揮発性）メモリのセクタまたはページでもよい。メモリ部分は、単一の消去ステップで消去することができる。消去カウンタは、メモリ部分をも含むメモリの物理部分でもよい。代わりとして、消去カウンタは、別々のメモリデバイスに配置してもよい。消去カウンタは、単進符号、たとえばサーモメータコードに従って符号化されるカウンタでもよい。
【００７８】
この装置は、特に（単一の）チップ、またはいくつかのチップを含む装置でもよい。チップは、集積回路、ダイ、および／または半導体デバイスを含んでもよい。
【００７９】
一実施形態では、この装置はシングルチップまたはダイに実装される。
【００８０】
一実施形態では、メモリ部分は、不揮発性メモリの一部である。
【００８１】
一実施形態では、メモリ部分は、
−浮遊ゲート・セル、
−ＰＣＲＡＭ、
−ＲＲＡＭ、
−ＭＲＡＭ、
−ＭＯＮＯＳデバイス、
−ナノ結晶セル、
−ＦｅＲＡＭ、
−ハードドライブ、
−不揮発性記憶装置
のうちの少なくとも１つを含む。
【００８２】
一実施形態では、消去カウンタは、アプリケーション・ソフトウェアに対してアクセスできないように、またはアプリケーション・ソフトウェアに対して読取り専用であるように構成される。
【００８３】
一実施形態では、この処理ユニットは、
−消去カウンタを読み取り、それをレジスタに格納し、
−設定されたレジスタ内で最後のマーカユニットを検索し、
−最後のマーカユニットに続くマーカユニットを設定し、
−レジスタを消去カウンタに書き戻すように構成される。
【００８４】
一実施形態では、この処理ユニットは、レジスタを消去カウンタに書き戻すステップが成功しなかった場合に、エラーを示すように構成される。
【００８５】
一実施形態では、この処理ユニットは、
−消去カウンタを読み取り、それをレジスタに格納し、
−各マーカユニットを書込みバッファに書き込み、各マーカユニットが、それぞれの直前のマーカユニットのビットを利用する操作に基づいて、設定されるか、設定されず、
−書込みバッファを消去カウンタに書き込むように構成される。
【００８６】
一実施形態では、この操作は多数決であり、レジスタに読み込まれたマーカユニットのそれぞれについて、このような多数決が利用可能である。
【００８７】
さらに、いくつかのマーカユニットを含む消去カウンタをインクリメントするための装置であって、
−直前のマーカユニットが設定された場合にはマーカユニットを設定するための手段と、
−直前のマーカユニットが設定されなかった場合にはマーカユニットを設定しないための手段と
を備える、装置が提案される。
【００８８】
本発明の様々な例示的な実施形態を開示してきたが、本発明の精神および範囲から逸脱することなく、本発明の利点のいくつかを実現することになる様々な変更および修正を加えることができることが当業者には明白になろう。それらの機能を実行する他の構成要素を適切に代用してもよいことが、当業者には自明になろう。具体的な図を参照しながら説明した特徴は、明瞭に述べられてこなかった場合でも、他の図の特徴と組み合わせてもよいと言わなければならない。さらに、本発明の方法は、適切なプロセッサ命令を使用して全てのソフトウェア実装形態で実現してもよく、またはハードウェア論理回路とソフトウェア論理回路の組合せを利用して、そうした結果を実現するハイブリッドの実装形態で実現してもよい。本発明の考え方に対するこのような修正形態は、添付特許請求の範囲によって包含されるものである。
【符号の説明】
【００８９】
１０１  カウンタフィールド
１０２  マーカユニット
１０３  マーカユニット
１０４  単一のビット
２０１  ステップ
２０２  ステップ
２０３  ステップ
２０４  ステップ
２０５  ステップ
２０６  ステップ
２０７  ステップ
２０８  ステップ
２０９  ステップ
２１０  ステップ
２１１  ステップ
３０１  レジスタ
３０２  マーカユニット
３０３  マーカユニット
３０４  ビット
３０５  マーカ
３０６  書込みバッファ
３０７  オーバフロー信号
３０８  マーカユニット
４０１  ステップ
４０２  ステップ
４０３  ステップ
４０４  ステップ
【図１】
0005932951.tif 000002
【図２】
0005932951.tif 000003
【図３】
0005932951.tif 000004
【図４】
0005932951.tif 000005