JP5937244B2 - 消去カウンタを処理するための方法および装置 - Google Patents

消去カウンタを処理するための方法および装置 Download PDF

Info

Publication number
JP5937244B2
JP5937244B2 JP2015029004A JP2015029004A JP5937244B2 JP 5937244 B2 JP5937244 B2 JP 5937244B2 JP 2015029004 A JP2015029004 A JP 2015029004A JP 2015029004 A JP2015029004 A JP 2015029004A JP 5937244 B2 JP5937244 B2 JP 5937244B2
Authority
JP
Japan
Prior art keywords
counter
erase
memory
address information
selection code
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.)
Active
Application number
JP2015029004A
Other languages
English (en)
Other versions
JP2015165393A (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.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
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 Infineon Technologies AG filed Critical Infineon Technologies AG
Publication of JP2015165393A publication Critical patent/JP2015165393A/ja
Application granted granted Critical
Publication of JP5937244B2 publication Critical patent/JP5937244B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/107Programming all cells in an array, sector or block to the same state prior to flash erasing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C14/00Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down
    • G11C14/0054Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down in which the volatile element is a SRAM cell
    • G11C14/009Digital stores characterised by arrangements of cells having volatile and non-volatile storage properties for back-up when the power is down in which the volatile element is a SRAM cell and the nonvolatile element is a resistive RAM element, i.e. programmable resistors, e.g. formed of phase change or chalcogenide material
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/24Memory cell safety or protection circuits, e.g. arrangements for preventing inadvertent reading or writing; Status cells; Test cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • G11C16/3495Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically

Description

本発明の実施形態は、データの不正操作の監視を可能にする消去カウンタの処理に関する。
第1の実施形態は、消去カウンタ・フィールドを含む消去カウンタを処理するための方法に関し、この方法は、
−未使用の消去カウンタ・フィールドを決定するステップと、
−未使用のカウンタ・フィールドに選択コードおよびアドレス情報を書き込むステップと
を含み、
−選択コードとアドレス情報を結合して、メモリの少なくとも1つの物理アドレスを決定する。
第2の実施形態は、装置に関し、同装置は、
−いくつかの消去カウンタ・フィールドを含む消去カウンタと、
未使用のカウンタ・フィールドを決定するステップ、
この未使用のカウンタ・フィールドに選択コードおよびアドレス情報を書き込むステップによって消去カウンタを処理するように構成され、
選択コードとアドレス情報を結合して、メモリの少なくとも1つの物理アドレスを決定する
−処理ユニットと
を備える。
第3の実施形態は、消去カウンタ・フィールドを含む消去カウンタを処理するための装置に関し、この装置は、
−未使用の消去カウンタ・フィールドを決定する手段と、
−未使用のカウンタ・フィールドに選択コードおよびアドレス情報を書き込む手段と
を備え、
−選択コードとアドレス情報を結合して、メモリの少なくとも1つの物理アドレスを決定する。
第4の実施形態は、デジタル処理装置のメモリに直接ロード可能なコンピュータ・プログラム製品に関し、同プログラム製品は、本明細書に記載の方法の各ステップを実行するソフトウェア・コード部分を含む。
図面を参照しながら、各実施形態を示して説明する。図面は、基本原理を説明するためのものなので、基本原理を理解するのに必要な事項を説明する。図面は縮尺通りではない。図面において、同じ参照符号は同様の機能を表している。
複数の消去カウンタ・フィールドを含む消去カウンタ記憶領域の具体例を示す。 消去カウンタ・フィールドの具体的な構造を示すとともに、消去カウンタ・フィールドが物理的なメモリ構造(たとえばフラッシュ・メモリ)上でどのように表現されるかを示す。 32個の物理セクタ(0〜31の番号が振られた)を含む具体的なテーブルを示す。各物理セクタが物理セクタ・アドレスを有していて、論理アドレスによって複数のセクタを統合することができる(たとえば統合した(たとえば並列な)消去操作のために結合される)ようになっている。 メモリの複数の部分(たとえば、セクタまたはページ)を消去する場合であっても、1回の消去操作で実行することができるルーチンを示す具体的な流れ図である。
不揮発性メモリ(NVM)は、様々なソフトウェア・アプリケーションによってプログラムすることができ、また消去することができる。メモリは、一群のビットを一括して消去し、またはプログラムするように構成してもよい。たとえば、メモリのセクタを消去してもよく、またはメモリのページをプログラムしてもよい。たとえば、ページは、複数のビットを含んでもよく、セクタは、複数のページを含んでもよい。
本明細書において提示された例により、単一セクタまたは一群のセクタ上で、消去サイクルが何回、実行されたか決定することが可能になる。メモリが改ざんされたかどうか、具体的には許可されていない変更をメモリが受けたかどうか判定するのに、この情報が有用になることがある。
本明細書で述べるセクタは、消去できるメモリの一部分の例であり、このセクタは、少なくとも1個のビット、具体的にはいくつかのビットまたはいくつかのページを含むことに留意されたい。ここで述べるメモリとは、具体的にはメモリ・デバイスでもよい。
たとえば、NAND/NORフラッシュ、RRAM、MRAM、FeRAMなど、永続的かつ再プログラム可能なメモリを有する任意のデバイスにおいて、消去カウンタの考え方を使用してもよい。他のセクションが消去された、かつ/または書き換えられたかどうか監視するために、消去カウンタとして取っておかれる一定のセクタを有するハード・ドライブにも、この考え方が適用できることがある。
使用事例は、再プログラム可能なファームウェアの場合に関してもよい。例示的な状況としては、携帯電話、洗濯機、(たとえば自動車分野での)エンジン制御モジュール、組立てラインでの製造ロボット、DVDプレーヤ、ゲーム機、FPGAデバイスなどがある。
したがって本明細書に記載の例は、具体的には、データの不正操作を監視するための不揮発性消去カウンタを実現する。
このメモリ領域は、具体的には不揮発性である。メモリ領域は、アプリケーション・ソフトウェアに対しては読出し専用になるように構成してもよい(すなわち、装置上で走っているアプリケーションは、このメモリ領域を望むように修正することができない)。
したがって、消去カウンタを使用して、ソフトウェアの不正操作を検出し、実証することができる。たとえば、公式のソフトウェア・リリースの第9版は、8回の消去操作に関連している可能性があり、この消去操作は消去カウンタで示さなければならない。消去カウンタによって示された消去サイクルの数がそれより大きいと、許可されていないソフトウェアの不正操作が行われた形跡になる可能性がある。
したがって、セキュリティ用途に、または改ざんの証拠を提供するために、提示された解決策を使用してもよい。
たとえば、あるセクタが消去されようとしているとき、消去カウンタをインクリメントしてもよい。消去カウンタの修正は、アプリケーション・ソフトウェアによる不正操作の可能性をなしにして、行えることが好ましい。任意の消去操作に対して消去カウンタがインクリメントされるのを回避できないようにして、消去カウンタの修正は外部のプログラミング・インターフェースから封印できることが好ましい。
有利には、消去カウンタは、顧客が削除できないように実装してよく、特に、製品、具体的にはメモリ・デバイスが顧客に向けて出荷する前にだけ削除できるよう消去カウンタを構成してよい。
メモリ(デバイス)の内容の改ざんは、消去カウンタの値(このような値は、メモリ・デバイスの内部および/またはメモリ・デバイスの外部に格納できる)を格納し、その値を消去カウンタの実際の値と比較することによって検出することができる。消去カウンタの値は、メモリ・デバイスの出荷後、および/またはソフトウェアの許可された変更(たとえば公式アップデート)の後に格納できる。
消去カウンタは消去不可であってよい。たとえば、消去カウンタは、消去することができないメモリ領域、またはこのメモリ領域を簡単に消去できないように構成することができるメモリ領域に記憶してもよい。メモリの論理部分毎に、たとえば少なくとも1つの論理セクタ毎に、1つの消去カウンタが存在してもよい。消去カウンタを更新するために、消去カウンタを読み取り、インクリメントし、そのメモリ領域に書き込んでもよい。このような更新をセクタ毎に実行してもよい。
書込み操作は、読取り操作よりも著しく時間がかかることがある。したがって、必要となる書込み操作が非常に長いので、複数のセクタを消去するには時間がかかる。他の操作を実行するための割込みを可能にする特別なコマンドを用いて、消去手順を中止しなければならないこともある。このような他の操作は、消去操作の中止時間が短いことを必要とするが、その書込み操作が非常に長いことから、これを満足させることは難しい。
一例によれば、選択コードを使用して、メモリの少なくとも1つの部分、たとえばセクタまたはページを選択してもよい。選択コードによって選択された、この少なくとも1つの部分を消去してもよい。このメモリの少なくとも1つの部分は、具体的にはメモリのいくつかの部分を含んでもよい。メモリのいくつかの部分のうち、少なくともあるものについては、消去を並列に実行してもよい。
検索ループを介して後続の書込み操作で更新される消去カウンタを実現してもよい。
消去カウンタは、消去カウンタ記憶領域に記憶してもよく、この消去カウンタ記憶領域はいくつかの消去カウンタ・フィールドを含む。消去カウンタ・フィールドのそれぞれは、
−アドレス情報と、
−選択コードと
を含む。
選択コードは、消去カウンタ・フィールドに書き込んでもよい。
図1には、いくつかの消去カウンタ・フィールド102〜105を含む消去カウンタ記憶領域101の例示的な図が示してある。この消去カウンタ記憶領域101は、ランダム・アクセス・メモリ(たとえば、フラッシュRAMまたはNVM)の一部でもよい。第1のカウンタ・フィールド102を割り当てることによって、消去カウンタ記憶領域101が使用され、それに続く消去サイクルで、次のカウンタ・フィールド103などが使用される。利点として、単一のカウンタ・フィールド102〜105は、たとえばセクタなど、いくつかのメモリ部分に加えられる消去操作と関連づけることができる。
図2には、消去カウンタ・フィールド102〜105のうちの1つの具体的な構造、および、たとえばフラッシュ・メモリなどのメモリにこの消去カウンタ・フィールド102〜105をどのように記憶してよいのかが示してある。
消去カウンタ・フィールド203は、選択コード201およびアドレス情報202を含む。図2に示す例によれば、消去カウンタ・フィールド203は以下の値を有する。
−4〜0の範囲のビットを含む選択コード201の値は「00011」である。
−7〜0の範囲のビットを含むアドレス情報202の値は「00010100」である。
ビットのライン204は、物理的なフラッシュ・メモリに消去カウンタ・フィールドをどのように記憶するかの一例を示す。この例では、それぞれの単一ビットが、3個の物理ビットによって符号化されて、冗長性をもたらす(すなわち、消去カウンタ・フィールド203のビット「0」が「000」として符号化され、消去カウンタ・フィールド203のビット「1」が「111」として符号化される)。各ビットのうちの1ビットが(たとえば、物理的な欠陥によって)正しい値を示さない場合、3ビット全てに基づく多数決を実行することで、依然として正しいビット「0」または「1」になる。さらなる誤り訂正符号が利用可能でない場合には、これが有用になることがあり、かつ/またはこのさらなる誤り訂正符号が、任意選択および無効になる。消去カウンタ・フィールド203の単一ビットを符号化するのに、3ビット以外の複数のビットを使用してもよいことに留意されたい。
図3には、それぞれが物理セクタ・アドレス301を有する、(0〜31の番号が振られた)32個の物理セクタを含む具体的なテーブルが示してある。さらに、たとえば結合された(たとえば並列な)消去操作のために、いくつかのセクタを統合することを可能にする論理セクタ302が設けられる。
(やはり前述の通り)選択コードおよびアドレス情報を用いて、このように統合することができる。この例では、セクタ・アドレスが、アドレス情報によって提供される8ビットから構成され、複数のセクタ・アドレスが、選択コードの5ビットを用いて識別される。
選択コードは、最小有効ビット(LSB)においてアドレス情報と整合させてもよく、また選択コードを使用して、消去されるセクタを決定してもよい。たとえば、アドレス情報の位置に対応する選択コードのビットが「0」である場合、アドレス情報のビットは変更されないままであり、アドレス情報の位置に対応する選択コードのビットが「1」である場合、アドレス情報のビットは「0」か「1」のいずれでもよい。したがって、選択コードを使用して、単一の物理アドレス、またはアドレス情報に基づく多数の物理アドレスを選択することができる。
例1:論理セクタ5の消去
アドレス情報および選択コードが以下のように決定される。
アドレス情報:00000101
選択コード: 00000
ビット単位のOR演算の結果、消去される以下のセクタ・アドレスが得られる。
消去されるセクタ:00000101
例2:論理セクタ16の消去
アドレス情報および選択コードが以下のように決定される。
アドレス情報:00011000
選択コード: 00011
ビット単位のOR演算の結果、消去される以下のセクタ・アドレスが得られる。
消去されるセクタ:00011000
00011001
00011010
00011011
したがって、このアドレス情報および選択コードは、物理セクタ24〜27の消去操作に対応づけることができる。
例3:論理セクタ14および15の消去
アドレス情報および選択コードが以下のように決定される。
アドレス情報:00010100
選択コード: 00011
ビット単位のOR演算の結果、消去される以下のセクタ・アドレスが得られる。
消去されるセクタ:00010100
00010101
00010110
00010111
したがって、このアドレス情報および選択コードは、物理セクタ20〜23の消去操作に対応づけることができる。
例3もまた、図2での消去カウンタ・フィールド203の例示的な割当てであり、セクタ・アドレス301がアドレス情報202に対応する。
メモリの複数の部分(たとえば、メモリのセクタまたはページ)が消去される場合でも、消去カウンタ記憶領域への書込み操作が必要になるのは一回だけであることが、提示した解決策の利点である。この解決策は非常に柔軟性があり、物理的なメモリ構造を論理的にアドレス指定するための多数の組合せが可能になる。
図4には、メモリの複数の部分(たとえば、セクタまたはページ)が消去される場合でも、1度の消去操作毎に1度実行すればよいルーチンを示す、例示的な流れ図が示してある。
ステップ401で、カウンタxが初期化される(たとえば、0に設定される)。ステップ402で、消去カウンタ記憶領域内のx番目の消去カウンタ・フィールド(「消去カウンタ・フィールド番号x」または「消去カウンタ・フィールド#x」とも呼ばれる)が読み取られる。ステップ403で、この消去カウンタ・フィールド番号xが既に使用されているかどうか検査され、「0」以外の値を示す場合は、使用されていると判断できる。この場合、ステップ404へと続いて、カウンタxをインクリメントする。ステップ405で、消去カウンタ記憶領域の最後に達したかどうか検査される。達している場合、この手順はステップ405で終了する。場合によっては、消去カウンタ記憶領域のオーバフローを示す誤りまたは情報を出してもよい。消去カウンタ記憶領域の最後に達していない場合、ステップ402に分岐し、消去カウンタ・フィールド番号xが読み取られる。
消去カウンタ・フィールド番号xが既に使用されていないことがステップ403で分かると、ステップ407へと続いて、ここで、利用可能な消去カウンタ・フィールドが消去カウンタ記憶領域内で見つかったことを示す。後続のステップ408で、見つかった消去カウンタ・フィールドに選択コードおよびアドレス情報が書き込まれる。次に、この手順はステップ406で終了する。
場合によっては、選択コードおよびアドレス情報に基づく実際の消去操作は、続いて実行することができ、または予めステップ408に移って実行することができる。
ステップ401〜405は、探索ルーチン409とみなせる。この探索ルーチン409は、たとえば2分探索アルゴリズムを用いて速めることができる。
図4に示した解決策には、消去カウンタ記憶領域の更新が、(消去カウンタ・フィールドを対象とする読取り操作を含む)高速探索ルーチン409と、消去カウンタ記憶領域への単一の書込み操作408とに分割されるという利点がある。これにより、消去カウンタ記憶領域において高速更新ルーチンが可能になる。
また、提示された各例では高度の柔軟性が実現可能になるが、なぜならば、1つの選択コードを用いて、メモリの単一または複数の部分(たとえば、セクタもしくはページ)をアドレス指定できるからである。したがって、この選択コードを使用して、これらの部分のいくつかを消去することができる。消去操作がトリガされた後、具体的には消去操作が実行された後に、選択コードおよびアドレス情報が消去カウンタ記憶領域に記憶されることが好ましい。
本明細書で提案された例は、具体的には、以下の解決策のうちの少なくとも1つに基づいてもよい。具体的には、以下の特徴の組合せを利用して、所望の結果を達成することもできる。この方法の特徴は、装置、機器、またはシステムの任意の特徴と組み合わせてもよく、またその逆でもよい。
消去カウンタ・フィールドを含む消去カウンタを処理するための方法であって、
−未使用の消去カウンタ・フィールドを決定するステップと、
−この未使用のカウンタ・フィールドに選択コードおよびアドレス情報を書き込むステップと
を含み、
−この選択コードとアドレス情報を結合して、メモリの少なくとも1つの物理アドレスを決定する方法を提案する。
この未使用の消去カウンタ・フィールドは、探索操作によって決定してもよい。
有利には、単一の選択コードを使用して、メモリの1つまたはいくつかの物理アドレスを決定することができる。したがって、消去操作は、メモリのいくつかの部分、たとえばセクタを対象にしてもよく、これを消去カウンタの単一の更新によって反映することができる。
消去カウンタの例示的な実装形態は、サーモメータ・コード(すなわち単進符号)を使用する。たとえば、各消去カウンタ・フィールドを使用して、消去カウンタの単一ピースすなわちインクリメントを示し、この点でサーモメータ・コードの単一ビットに対応してもよい。
サーモメータ・コードとも呼ばれる単進符号は、自然数kを表すエントロピー符号化であり、k個の1の後にゼロが続き(自然数が非負整数と理解される場合)、またはk−1個の1の後にゼロが続く(自然数が厳密に正整数と理解される場合)。たとえば、数字5は111110または11110と表される。表現法によっては、k個またはk−1個のゼロと、それに続く1を使用する。これらの1およびゼロは、一般性を失うことなく交換可能である。単進符号は、接頭符号と自己同期符号の両方である(たとえば、http://en.wikipedia.org/wiki/Thermometer_code参照)。
消去カウンタは、メモリの消去カウンタ領域に記憶してもよいことに留意されたい。
カウンタ・フィールドは、このカウンタ・フィールドを次から次へと設定して、消去カウンタのカウントが増加することを表すように、昇順で配置してもよいことにも留意されたい。したがって、カウンタ・フィールドを使用して、消去カウンタの空きを首尾よく埋めてもよく、単一のカウンタ・フィールドの設定は、このような消去カウンタのインクリメントでもよい。消去カウンタは、設定できるだけで、リセットできないことが好ましい。これにより、メモリの一部分、たとえばメモリのセクタもしくはページに加えられた、消去サイクルまたは消去操作の数を決定することが可能になる。
消去カウンタをインクリメントすることは、1つずつの増加、または2つ以上の値ずつの増加を含むことにさらに留意されたい。
有利には、この解決策により、メモリの前記部分上、すなわちメモリの単一セクタまたは一群のセクタ上で、消去サイクルがいくつ実行されたか決定することが可能になる。この情報を使用して、メモリが改ざんされたかどうか、具体的には許可されていない変更をメモリが受けたかどうか判定することができる。
ハード・ドライブまたはハード・ドライブの一部分(たとえばセクタ)での消去サイクルは、本明細書に記載の消去カウンタを用いてカウントできることにさらに留意されたい。
一実施形態では、メモリの物理アドレスは、メモリのセクタまたはページを対象とする。
一実施形態では、メモリの少なくとも1つのセクタまたは少なくとも1つのページが消去操作を受ける。
一実施形態では、この消去操作は、消去カウンタの前記処理の前、もしくは消去カウンタの前記処理の後に、トリガまたは実行される。
一実施形態では、選択コードとアドレス情報を結合して、メモリのいくつかの物理アドレスを決定する。
一実施形態では、選択コードは、アドレス情報内の1つまたはいくつかの物理アドレスを決定する。
選択コードは、具体的には、アドレス情報と結合して、(このアドレス情報が提供する範囲内で)、単一の選択コードを用いてメモリのいくつかの物理アドレスを決定することができるマスクを実現してもよい。
一実施形態では、この方法はさらに、
−選択コードを、最小有効ビットにおいてアドレス情報と整合させるステップと、
−選択コードとアドレス情報を結合することにより、消去操作を受ける少なくとも1つの物理アドレスを決定するステップと
を含み、
−選択コードの第1の値は、アドレス情報の対応するビットが変更されないままであることを示し、または
−選択コードの第2の値は、アドレス情報の対応するビットが「0」または「1」でもよいことを示す。
一実施形態では、第1の値は「0」であり、第2の値は「1」である。
一実施形態では、未使用の消去カウンタ・フィールドを決定するステップは、消去カウンタに設けられた消去カウンタ記憶領域内の未使用の消去カウンタ・フィールドについての探索操作を実行するステップを含む。
一実施形態では、未使用の消去カウンタ・フィールドに選択コードおよびアドレス情報を書き込むことによって、消去カウンタがインクリメントされる。
消去カウンタは、所定の数の消去カウンタ・フィールドを有してもよく、これは最初は全て空でもよい。消去カウンタは、第1の空いている消去カウンタ・フィールドにデータを書き込むことによって設定することができる。消去カウンタは、次の空いている消去カウンタ・フィールドにデータを書き込むことによってインクリメントされる。消去カウンタ・フィールドを引き続き使用して、消去カウンタのカウントを増大させてもよい。その代わりとして、所定の方式に従って消去カウンタ・フィールドを使用して、消去カウンタの空きを埋めてもよい。有利には、応用ソフトウェアによって消去カウンタをリセットすることはできない。
一実施形態では、消去カウンタは、メモリ、具体的には不揮発性メモリの一部分に対応しており、このメモリの前記部分に加えられる消去操作が、消去カウンタのインクリメントをトリガする。
一実施形態では、消去カウンタは、不揮発性メモリの一部であり、この消去カウンタのメモリは、アプリケーション・ソフトウェアにアクセス可能ではなく、それへの読取り専用である。
一実施形態では、消去カウンタは、不揮発性の消去カウンタである。
一実施形態では、消去カウンタ・フィールドの各論理ビットがいくつかの物理ビットを含み、対応する論理ビットについて、このいくつかの物理ビットに基づいて多数決がなされる。
この多数決は、単一の論理ビットを表すのに使用されるいくつかの物理ビットの冗長度をどのように利用するかの一例である。しかし、それなりに他の操作を加えてもよい。冗長性を有する符号、または誤り検出符号および/もしくは誤り訂正符号を使用して、論理ビットが正しいかどうか判定することも可能である。
具体的には、冗長性を与えるために、選択コードおよび/またはアドレス情報の少なくともいくつかの(または全ての)ビットを、少なくとも2つの物理ビットにそれぞれマッピングしてもよい。
一実施形態では、この方法はさらに、
−消去カウンタを読み取り、それをレジスタに記憶するステップと、
−未使用の消去カウンタ・フィールドを探索するステップと、
−この未使用の消去カウンタ・フィールドに選択コードおよびアドレス情報を書き込むステップと、
−レジスタを消去カウンタに書き戻すステップと
を含む。
一実施形態では、この方法は、
−レジスタを消去カウンタに書き戻すステップが成功しなかった場合に、警告またはエラーを示すステップを含む。
一実施形態では、この方法は、
−未使用の消去カウンタ・フィールドが見つからなかった場合に、オーバフロー指示を出すステップを含む。
一実施形態では、このオーバフロー指示を使用して消去カウンタを拡張する。
また、
−いくつかの消去カウンタ・フィールドを含む消去カウンタと、
−未使用のカウンタ・フィールドを決定するステップ、
−この未使用のカウンタ・フィールドに選択コードおよびアドレス情報を書き込むステップによって消去カウンタを処理するように構成され、
−この選択コードとアドレス情報を結合して、メモリの少なくとも1つの物理アドレスを決定する
−処理ユニットと
を備える装置が提供される。
前記処理ユニットは、同じチップもしくはダイ上のメモリとともに、またはメモリの外部に設けてもよい、任意の処理装置でよい。この処理ユニットは、ハードウェア、ソフトウェア、および/またはファームウェアの一部分を含んでもよい。処理ユニットは、いくつかの構成要素間で分散するように配置してもよく、または単一のハードウェアでもよい。
この方法に関して説明する特徴は、本明細書において述べる装置に適用可能でもよいことに留意されたい。これは、具体的には処理ユニットに適用され、このユニットは、この方法を考慮して述べる各ステップを実行してもよい。
一実施形態では、装置はさらにメモリ部分を備え、この処理ユニットは、メモリ部分で実行される消去手順に基づいて消去カウンタを処理するように構成される。
メモリ部分は、(不揮発性)メモリのセクタまたはページでもよい。メモリ部分は、単一の消去ステップで消去することができる。消去カウンタは、メモリ部分をも含むメモリの物理部分でもよい。その代わりとして、消去カウンタは、別々のメモリ・デバイスに配置してもよい。消去カウンタは、単進符号、たとえばサーモメータ・コードに従って符号化されるカウンタでもよい。
一実施形態では、この処理ユニットは、
−消去カウンタを読み取り、それをレジスタに記憶し、
−未使用の消去カウンタ・フィールドを探索し、
−この未使用の消去カウンタ・フィールドに選択コードおよびアドレス情報を書き込み、
−レジスタを消去カウンタに書き戻すように構成される。
一実施形態では、この装置はシングル・チップまたはダイに実装される。
この装置は、具体的には(単一の)チップ、またはいくつかのチップを含む装置でもよい。チップは、集積回路、ダイ、および/または半導体デバイスを含んでもよい。
一実施形態では、メモリ部分は、不揮発性メモリの一部である。
一実施形態では、メモリ部分は、以下の
−浮遊ゲート・セル、
−PCRAM、
−RRAM、
−MRAM、
−MONOSデバイス、
−ナノ結晶セル、
−FeRAM、
−ハード・ドライブ、
−不揮発性記憶装置
のうちの少なくとも1つを含む。
一実施形態では、消去カウンタは、アプリケーション・ソフトウェアにアクセスできないように、またはアプリケーション・ソフトウェアに対して読取り専用であるように構成される。
消去カウンタ・フィールドを含む消去カウンタを処理するための装置であって、
−未使用の消去カウンタ・フィールドを決定する手段と、
−この未使用のカウンタ・フィールドに選択コードおよびアドレス情報を書き込む手段と
を備え、
−この選択コードとアドレス情報を結合して、メモリの少なくとも1つの物理アドレスを決定する装置が提案される。
本明細書に記載の方法の各ステップを実行するためのソフトウェア・コード部分を含め、デジタル処理装置のメモリに直接ロード可能なコンピュータ・プログラム製品が提案される。
1つまたは複数の例では、本明細書に記載の各機能は、少なくとも部分的には、具体的なハードウェア構成部品またはプロセッサなどのハードウェアで実装してもよい。より一般には、これらの技法は、ハードウェア、プロセッサ、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装してもよい。ソフトウェアで実装する場合、各機能は、1つもしくは複数の命令もしくはコードとして、コンピュータ読取り可能な媒体に記憶し、またはこれを介して伝送し、ハードウェア・ベースの処理ユニットによって実行してもよい。コンピュータ読取り可能な媒体には、コンピュータ読取り可能な記憶媒体が含まれてもよく、これは、データ記憶媒体などの有形の媒体、または、たとえば通信プロトコルに従って、ある場所から別の場所にコンピュータ・プログラムの伝送を容易にする任意の媒体を含む通信媒体に対応する。このようにして、コンピュータ読取り可能な媒体は一般に、(1)非持続的な有形のコンピュータ読取り可能な記憶媒体、または(2)信号波もしくは搬送波などの通信媒体に対応してもよい。データ記憶媒体は、本開示で説明する各技法を実装するために、1つもしくは複数のコンピュータ、または、1つもしくは複数のプロセッサがアクセスして、命令、コード、および/またはデータ構造を取得することができる利用可能な任意の媒体でもよい。コンピュータ・プログラム製品には、コンピュータ読取り可能な媒体が含まれ得る。
一例として、限定するものではないが、このようなコンピュータ読取り可能な記憶媒体は、RAM、ROM、EEPROM、CD−ROM、または他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶装置、フレッシュ・メモリ、または、命令もしくはデータ構造の形式での所望のプログラム・コードを記憶するのに使用でき、コンピュータからアクセスできる他の任意の媒体を含むことができる。また、正しくは、任意の接続が、コンピュータ読取り可能な媒体、すなわちコンピュータ読取り可能な伝送媒体と呼ばれる。たとえば、ウェブサイト、サーバ、または他の遠隔ソースから、同軸ケーブル、光ファイバ・ケーブル、より対線、デジタル加入者線(DSL)、または赤外線、無線、およびマイクロ波などの無線技術を使用して命令が伝送される場合、これら同軸ケーブル、光ファイバ・ケーブル、より対線、DSL、または赤外線、無線、およびマイクロ波などの無線技術が、媒体の定義に含まれる。しかし、コンピュータ読取り可能な記憶媒体およびデータ記憶媒体には、接続部、搬送波、信号、または他の伝送媒体を含まないが、その代わりに、非過渡的な有形の記憶媒体を対象とすることを理解されたい。本明細書では、ディスク(diskおよびdisc)には、コンパクト・ディスク(CD)、レーザ・ディスク、光ディスク、デジタル多用途ディスク(DVD)、フロッピー・ディスク、およびブルーレイ・ディスクが含まれ、ここで、ディスク(disk)は通常、データを磁気的に複製し、ディスク(disc)は、レーザを用いてデータを光学的に複製する。上記の組合せも、コンピュータ読取り可能な媒体の範囲に含まれるべきである。
命令は、1つまたは複数の中央処理装置(CPU)、デジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ロジック・アレイ(FPGA)、または他の等価な集積論理回路もしくは個別論理回路など、1つまたは複数のプロセッサで実行してもよい。したがって、本明細書では、用語「プロセッサ」は、前述の構造のうち任意のもの、または本明細書に記載の技法を実装するのに適した他の任意の構造を指してもよい。さらに、ある意味では、本明細書に記載の機能は、符号化および復号化するように構成された、専用のハードウェアおよび/もしくはソフトウェア・モジュールで提供してもよく、または組み合わされたコーデックに組み込んでもよい。また、各技法は、1つまたは複数の回路または論理素子に、完全に実装することもできる。
本開示の各技法は、無線ハンドセット、集積回路(IC)、もしくは1組のIC(たとえばチップセット)を含め、多種多様なデバイスまたは装置に実装してもよい。開示された技法を実行するように構成された装置の機能的な態様を強調するために、様々な構成部品、モジュール、またはユニットを本開示で説明しているが、様々なハードウェア・ユニットによる実現を必ずしも必要としていない。むしろ、前述の通り、様々なユニットは、単一のハードウェア内に組み合わせてもよく、または、適切なソフトウェアおよび/もしくはファームウェアとともに、前述の1つもしくは複数のプロセッサを含む一群の相互作用するハードウェア・ユニットによって実現してもよい。
本発明の様々な例示的な実施形態を開示してきたが、本発明の精神および範囲から逸脱することなく、本発明の利点のいくつかを実現することになる様々な変更および修正を加えることができることが当業者には明白になろう。それらの機能を実行する他の構成要素を適切に代用してもよいことが、当業者には自明になろう。具体的な図を参照しながら説明した特徴は、明瞭に述べられてこなかった場合でも、他の図の特徴と組み合わせてもよいと言わなければならない。さらに、本発明の方法は、適切なプロセッサ命令を使用して全てのソフトウェア実装形態で実現してもよく、またはハードウェア論理回路とソフトウェア論理回路の組合せを利用して、そうした結果を実現するハイブリッドの実装形態で実現してもよい。本発明の考え方に対するこのような修正形態は、添付特許請求の範囲によって包含されるものである。
101 消去カウンタ記憶領域
102 消去カウンタ・フィールド
103 消去カウンタ・フィールド
104 消去カウンタ・フィールド
105 消去カウンタ・フィールド
201 選択コード
202 アドレス情報
203 消去カウンタ・フィールド
204 ライン
301 物理セクタ・アドレス
302 論理セクタ
401 ステップ
402 ステップ
403 ステップ
404 ステップ
405 ステップ
406 ステップ
407 ステップ
408 ステップ
409 探索ルーチン

Claims (23)

  1. 消去カウンタ・フィールドを含む消去カウンタを処理するための方法であって、
    −未使用の消去カウンタ・フィールドを決定するステップと、
    −未使用の消去カウンタ・フィールドに選択コードおよびアドレス情報を書き込むステップと
    を含み、
    −選択コードと前記アドレス情報を結合して、メモリの少なくとも1つの物理アドレスを決定する、方法。
  2. メモリの物理アドレスが、メモリのセクタまたはページを対象とする、請求項1に記載の方法。
  3. メモリの少なくとも1つのセクタまたは少なくとも1つのページが消去操作を受ける、請求項2に記載の方法。
  4. 消去操作が、消去カウンタの処理の前、または後に、トリガまたは実行される、請求項3に記載の方法。
  5. 選択コードとアドレス情報を結合して、メモリのいくつかの物理アドレスを決定する、請求項1に記載の方法。
  6. 選択コードが、アドレス情報内の1つまたはいくつかの物理アドレスを決定する、請求項1に記載の方法。
  7. −選択コードを、最小有効ビットにおいてアドレス情報と整合させるステップと、
    −選択コードとアドレス情報を結合することにより、消去操作を受ける少なくとも1つの物理アドレスを決定するステップと
    をさらに含み、
    −選択コードの第1の値は、アドレス情報の対応するビットが変更されないままであることを示し、または
    −選択コードの第2の値は、アドレス情報の対応するビットが「0」または「1」であることを示す、請求項1に記載の方法。
  8. 選択コードの第1の値が「0」であり、第2の値が「1」である、請求項7に記載の方法。
  9. 未使用の消去カウンタ・フィールドを決定するステップが、消去カウンタに設けられた消去カウンタ記憶領域内の未使用の消去カウンタ・フィールドについての探索操作を実行するステップを含む、請求項1に記載の方法。
  10. 未使用の消去カウンタ・フィールドに選択コードおよびアドレス情報を書き込むことによって、消去カウンタがインクリメントされる、請求項1に記載の方法。
  11. 消去カウンタが、メモリ、具体的には不揮発性メモリの一部分に対応しており、メモリの部分に加えられる消去操作が、消去カウンタのインクリメントをトリガする、請求項1に記載の方法。
  12. 消去カウンタが、不揮発性メモリの一部であり、消去カウンタのメモリが、アプリケーション・ソフトウェアからアクセス可能でないか、または読取り専用である、請求項1に記載の方法。
  13. 消去カウンタ・フィールドの各論理ビットがいくつかの物理ビットを含み、対応する論理ビットについて、前記いくつかの物理ビットに基づいて多数決がなされる、請求項1に記載の方法。
  14. 請求項1に記載の方法であって、
    −消去カウンタを読み取り、それをレジスタに記憶するステップと、
    −未使用の消去カウンタ・フィールドを探索するステップと、
    −未使用の消去カウンタ・フィールドに選択コードおよびアドレス情報を書き込むステップと、
    −レジスタを消去カウンタに書き戻すステップと
    をさらに含む、方法。
  15. −レジスタを消去カウンタに書き戻すステップが成功しなかった場合に、警告またはエラーを示すステップ
    を含む、請求項14に記載の方法。
  16. −いくつかの消去カウンタ・フィールドを含む消去カウンタと、
    −未使用の消去カウンタ・フィールドを決定するステップ、
    −未使用の消去カウンタ・フィールドに選択コードおよびアドレス情報を書き込むステップによって消去カウンタを処理するように構成され、
    −選択コードとアドレス情報を結合して、メモリの少なくとも1つの物理アドレスを決定する
    −処理ユニットと
    を備える装置。
  17. さらにメモリ部分を備え、処理ユニットが、メモリ部分で実行される消去手順に基づいて消去カウンタを処理するように構成される、請求項16に記載の装置。
  18. 処理ユニットが、
    −消去カウンタを読み取り、それをレジスタに記憶し、
    −未使用の消去カウンタ・フィールドを探索し、
    −未使用の消去カウンタ・フィールドに選択コードおよびアドレス情報を書き込み、
    −レジスタを消去カウンタに書き戻すように構成される、請求項16に記載の装置。
  19. 装置が、シングル・チップまたはダイに実装される、請求項16に記載の装置。
  20. メモリ部分が、不揮発性メモリの一部である、請求項16に記載の装置。
  21. 前記メモリ部分が、以下の
    −浮遊ゲート・セル、
    −PCRAM、
    −RRAM、
    −MRAM、
    −MONOSデバイス、
    −ナノ結晶セル、
    −FeRAM、
    −ハード・ドライブ、
    −不揮発性記憶装置
    のうちの少なくとも1つを含む、請求項16に記載の装置。
  22. 消去カウンタ・フィールドを含む消去カウンタを処理するための装置であって、
    −未使用の消去カウンタ・フィールドを決定する手段と、
    −前記未使用の消去カウンタ・フィールドに選択コードおよびアドレス情報を書き込む手段と、
    −選択コードとアドレス情報を結合して、メモリの少なくとも1つの物理アドレスを決定する手段とを備える装置。
  23. 消去カウンタ・フィールドを含む消去カウンタを処理するためのプログラムであって、コンピュータを、
    未使用の消去カウンタ・フィールドを決定する手段、
    未使用の消去カウンタ・フィールドに選択コードおよびアドレス情報を書き込む手段、および
    選択コードとアドレス情報を結合して、メモリの少なくとも1つの物理アドレスを決定する手段として機能させるプログラム。
JP2015029004A 2014-02-26 2015-02-17 消去カウンタを処理するための方法および装置 Active JP5937244B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/190,265 US9466377B2 (en) 2014-02-26 2014-02-26 Method and device for processing an erase counter
US14/190,265 2014-02-26

Publications (2)

Publication Number Publication Date
JP2015165393A JP2015165393A (ja) 2015-09-17
JP5937244B2 true JP5937244B2 (ja) 2016-06-22

Family

ID=53782645

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015029004A Active JP5937244B2 (ja) 2014-02-26 2015-02-17 消去カウンタを処理するための方法および装置

Country Status (3)

Country Link
US (1) US9466377B2 (ja)
JP (1) JP5937244B2 (ja)
DE (1) DE102015102774A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150169438A1 (en) * 2013-12-18 2015-06-18 Infineon Technologies Ag Method and device for incrementing an erase counter
US10908824B2 (en) 2018-11-08 2021-02-02 Winbond Electronics Corp. Flash memory storage device and method thereof
US11310033B2 (en) * 2019-06-05 2022-04-19 Blackberry Limited System and method for operating pseudorandom generators
US20230297283A1 (en) * 2022-03-21 2023-09-21 Everspin Technologies, Inc. Persistent xspi stt-mram with optional erase operation

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5388267A (en) * 1991-05-29 1995-02-07 Dell Usa, L.P. Method and apparatus for updating and restoring system BIOS functions while maintaining BIOS integrity
US5485595A (en) 1993-03-26 1996-01-16 Cirrus Logic, Inc. Flash memory mass storage architecture incorporating wear leveling technique without using cam cells
US5612911A (en) * 1995-05-18 1997-03-18 Intel Corporation Circuit and method for correction of a linear address during 16-bit addressing
US5933847A (en) 1995-09-28 1999-08-03 Canon Kabushiki Kaisha Selecting erase method based on type of power supply for flash EEPROM
US6000006A (en) 1997-08-25 1999-12-07 Bit Microsystems, Inc. Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage
US7096313B1 (en) 2002-10-28 2006-08-22 Sandisk Corporation Tracking the least frequently erased blocks in non-volatile memory systems
WO2006085326A2 (en) * 2005-02-10 2006-08-17 Siano Mobile Silicon Ltd. System and method for mitigating memory requirements
KR20110060493A (ko) * 2009-11-30 2011-06-08 삼성전자주식회사 메모리 장치의 소거 카운트 관리 방법 및 장치
US9021421B1 (en) * 2012-05-07 2015-04-28 Google Inc. Read and write barriers for flexible and efficient garbage collection
KR101990972B1 (ko) * 2012-10-04 2019-06-19 삼성전자 주식회사 메모리 시스템에서의 순환 중복 검사 동작 수행 방법 및 이를 이용한 메모리 컨트롤러
US9153331B2 (en) * 2013-03-13 2015-10-06 Sandisk Technologies Inc. Tracking cell erase counts of non-volatile memory

Also Published As

Publication number Publication date
DE102015102774A1 (de) 2015-08-27
JP2015165393A (ja) 2015-09-17
US20150243359A1 (en) 2015-08-27
US9466377B2 (en) 2016-10-11

Similar Documents

Publication Publication Date Title
US10535410B2 (en) Hybrid read disturb count management
JP5937244B2 (ja) 消去カウンタを処理するための方法および装置
KR102564774B1 (ko) 메모리 시스템 혹은 데이터 처리 시스템의 동작을 진단하는 장치 혹은 진단을 통해 신뢰성을 확보하는 방법
US9734008B2 (en) Error vector readout from a memory device
US9985656B2 (en) Generating ECC values for byte-write capable registers
US9690517B2 (en) Dual-mode error-correction code/write-once memory codec
US11287990B2 (en) Solid state storage device with quick boot from NAND media
JP6080180B2 (ja) 不揮発性メモリでのマーカプログラミング
US20170060678A1 (en) Partial ecc handling for a byte-write capable register
US9733870B2 (en) Error vector readout from a memory device
JP5869649B2 (ja) データ処理のための方法、機器、および装置
US10025652B2 (en) Error location pointers for non volatile memory
CN112416298A (zh) 闪速存储器的基于原始读取的物理不可克隆功能
JP5932951B2 (ja) 消去カウンタをインクリメントするための方法および装置
JP7116376B2 (ja) 不良ビットを管理するメモリ・デバイス、メモリ・システム、および、その実装方法
US11334431B2 (en) System and method for data protection in solid-state drives
US11853601B2 (en) Nonvolatile memory device supporting protection mode and memory system including the same
US11200925B2 (en) Read only memory (ROM)-emulated memory (REM) profile mode of memory device
KR20170096079A (ko) 반도체장치 및 반도체시스템
CN115248748A (zh) 执行元数据管理的存储装置及操作该存储装置的方法
CN116069547A (zh) 恢复存储器系统中的数据的设备和方法
TW201530553A (zh) 用於記憶體之錯誤校正碼方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160120

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160209

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160324

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160412

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160511

R150 Certificate of patent or registration of utility model

Ref document number: 5937244

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250