添付図面に例を示す本開示の好適な実施形態を詳細に参照する。どの図面であろうとも、図面及び説明で同一参照符号を使用して同一又は類似部分に言及する。
図1Aにつき説明すると、図1Aは本発明実施形態における抵抗メモリのデータ書込み方法を示すフローチャートである。図1AのステップS110で、書込みデータを受け取って反転書込みデータを生成し、ここで反転書込みデータは書込みデータに対して反転されている。次にステップS120で、複数個の選択されたメモリセルにおける現在データを読み出す。ここで選択されたメモリセルは、書込み動作における書込みアドレスに従って取得される。とくに、選択されたメモリセルは
書込み動作によってデータが書き込まれるメモリセルである。さらに、現在データは、元々選択されたメモリセル内に記憶されていたデータである。
ステップS130で、現在データを書込みデータ及び反転書込みデータと比較して、最終データを生成する。書込みデータが2値で01010000である場合、反転書込みデータは10101111である。選択されたメモリセルにおける現在データが2値で10100000である場合、ステップS130において書込みデータを現在データとビット毎に比較し、また反転書込みデータを現在データとビット毎に比較することによって、比較結果に従って最終データを生成することができる。
本発明遂行のうち最終データ生成の遂行詳細は、2つのモード、すなわち、変更レスモード及びリセットレスモードに分割することができる。優先度選択フラグの論理値に従って、どちらのモードを採用すべきかを決定することができる。ここで変更レスモードは、優先度選択フラグが第1論理値(例えば、0)であるとき、相応的に採用することができ、またリセットレスモードは優先度選択フラグが第2論理値(例えば、1)であるとき、相応的に採用することができる。この実施形態において、優先度選択フラグのプリセット値は0である。しかし、本発明はこれに限定されない。本発明は異なるモード(例えば、セットレスモード)にも適用可能である、又は3つより多いフラグ値及び他の異なるモードを有することもできる。
変更レスモードにおいては、書込みデータ及び現在データにおけるビット間の相違を表している第1数値を計算し、また反転書込みデータ及び現在データにおけるビット間の相違を表している第2数値を計算することによって、第1数値及び第2数値のサイズに従う最終データを生成するよう、最小相違を有する書込みデータ又は反転書込みデータを選択することができる。
リセットレスモードにおいては、現在データを書込みデータ及び反転書込みデータに変更するときリセットするのに必要なビット数を決定することができ、最終データを生成するよう、書込みデータ又は反転書込みデータのうちより少ないビット数を有する方を選択することができる。
さらに、最終データは、一般データ、優先度選択フラグ及びデータ反転フラグを含む。最終データは、書込みデータ及び反転書込みデータとすることができ、データ反転フラグは、一般データが書込みデータか又は反転書込みデータかを示すよう構成される。ここで、一般データが書込みデータであるとき、データ反転フラグは第1論理値(例えば、0)とすることができ、一般データが反転書込みデータであるとき、データ反転フラグは第2論理値(例えば、1)とすることができる。
ステップS140においては、選択されたメモリセルにおける1つ又はそれ以上の第1部分に対してリセット手順が実施され、この1つ又はそれ以上の第1部分は、最終データに従って、選択されたメモリセル内でデータ1(例えば、論理1)に変更するのが必要な部分である。ステップS150においては、選択されたメモリセルにおける1つ又はそれ以上の第2部分に対してセット手順が実施され、この1つ又はそれ以上の第2部分は、最終データに従って、選択されたメモリセル内でデータ0(例えば、論理0)に変更するのが必要な部分である。この実施形態において、書込みデータ(例えば、01010000に等しい)に従って、最終データを生成するよう選択される場合、選択されたメモリセルにおける書込みデータの第2番目及び第4番目のビット(第1ビットとしての最高ビット)に対応するメモリセルの部分(第1部分)に対してリセット手順を実施することができ、また選択されたメモリセルにおける書込みデータの第1番目及び第3番目のビット(第1ビットとしての最高ビット)に対応するメモリセルの部分(第2部分)に対してセット手順を実施することができる。本発明において、リセット手順(S140)及びセット手順(S150)を実施する順番は特別限定されない。他の実施形態において、リセット手順はセット手順を実施した後に実施することができる。
セット操作が抵抗メモリで実施された後に、導電性フィラメントの接続表面及び抵抗メモリの電極層に若干量の酸素イオンが付着する場合があるため、抵抗メモリのセット電流が増加しないことがあり得る。本発明のセット手順において、セット操作が失敗したことが検証された後にはリカバー操作を実施することができる。酸素イオンを押し出して、抵抗メモリセルのセット電流を効果的に増大させることができるようこのリカバー操作を使用する。しかし、リカバー操作を実施した後に、抵抗メモリの電流を検出することによって抵抗メモリのセット電流が依然として増加できない又は減少さえもしていることが分かった場合、抵抗メモリは劣化の兆候を示し始めている可能性が高い。
以下の内容は、セット手順の遂行詳細を示す概略図である図1Bに言及するものである。本発明のセット手順(S150)において、選択されたメモリセルにおける劣化状態に従って優先度選択フラグをセットするステップS151〜S153を随意的に設けることができる。とくに、ステップS151において、非反転セット電圧を選択されたメモリセルの1つ又はそれ以上の第2部分に供給し、そこでのセット操作を実施する。選択されたメモリセルにおける1つ又はそれ以上の第2部分でのセット操作が失敗したとき、セット操作が失敗したメモリセルに対してリカバー操作を実施するよう反転セット電圧を供給するステップS152を実施し、次にこのメモリセルを検証して検証結果を取得する。検証結果がセット失敗である場合、すなわち、選択されたメモリセルが劣化を示していると表示する場合、ステップS153における検証結果に従って、優先度選択フラグを更新する(例えば、1に変更する)。
他の実施形態において、優先度選択フラグはユーザーが直接セットすることもできる。
図2Aは、本発明実施形態における抵抗メモリのデータ書込み方法を示すフローチャートである。図2Aが示すデータ書込み方法において、抵抗メモリ装置は、直接書込みモード又はフラッシュメモリ互換モードで操作することができる。ここで、選択されたメモリセルによって記憶された現在データOdataは、一般データ、データ反転フラグDFB及び優先度選択フラグPSBを含む。データ反転フラグDFBは一般データが反転データか否かを示すのに使用される。データ反転フラグDFBが第1論理値(例えば、0)であるとき、一般データは通常データであり、逆にデータ反転フラグDFBが第2論理値(例えば、1)であるとき一般データは反転データである。この実施形態において、データ反転フラグDFBのプリセット値0である。優先度選択フラグPSBを使用して、データ書込み動作がアドレスに対応するメモリセルで実施されるとき使用するのに必要なデータ比較モードを示す。設計上の要件に従って、多重データ比較モードに対応するよう、ユーザーは優先度選択フラグPSBを複数の論理値にセットすることができる。この実施形態において、優先度選択フラグPSBは2つの論理値(0及び1)を有し、優先度選択フラグPSBのプリセット値は0である。
図2Aにつき説明すると、先ず、ステップS210で、書込みコマンド又はプログラミングコマンドを受け取り、またアドレス及び書込みデータUdataを受け取る。上述のアドレスは、データ書込み動作が実施される選択されたメモリセルのアドレスを示す。
次に、ステップS230で、選択されたメモリセルに記憶された現在データOdataをロードし、また書込みデータUdataに従って、一時データTdata及び反転一時データ/Tdataを生成する。ここで、一時データTdata ={Udata, 0}(0はデータ反転フラグDFB)であり、反転一時データ/Tdata ={/Udata, 1}(1はデータ反転フラグDFB);及び反転書込みデータ/Udata は書込みデータUdataに対して反転したものである。
ステップS231で、現在データOdataにおける優先度選択フラグPSBの状態を決定する。優先度選択フラグPSBが第1論理値(例えば、0)を有する場合、ステップS232を実施する。そうではなく、優先度選択フラグPSBが第2論理値(例えば、1)を有する場合、ステップS233を実施する。
ステップS232で、現在データOdataにおける一般データを一時データTdataにおける書込みデータUdata及び反転一時データ/Tdataにおける反転書込みデータ/Udataと比較し、また変更レスビットモードにより最終データFdataを生成するよう一時データTdata及び反転一時データ/Tdataのうち一方を選択する。次に、優先度選択フラグPSB(=0)を最終データFdataに追加し、またこの後最終データFdataを選択されたメモリセルに書き込む。
ステップS233で、現在データOdataにおける一般データを一時データTdataにおける書込みデータUdata及び反転一時データ/Tdataにおける反転書込みデータ/Udataと比較し、またリセットレスビットモードにより最終データFdataを生成するよう一時データTdata及び反転一時データ/Tdataのうち一方を選択する。次に、優先度選択フラグPSB(=1)を最終データFdataに追加し、またこの後最終データFdataを選択されたメモリセルに書き込む。
注目すべきことに、本発明実施形態において、ステップS232及びS233を実施するとき、ECC動作は最終データFdataに対して実施することができ、また最終データFdataは対応して生成されたエラー訂正コードを含む。
図2Bは、本発明の他の実施形態における抵抗メモリのデータ書込み方法を示すフローチャートである。図2Bが示すデータ書込み方法においては、抵抗メモリ装置は、直接書込みモードで操作することができる。ここで、図2Bが示すデータ書込み方法は、図2Aの方法とほぼ類似しており、また図2Bにおける選択されたメモリセルによって記憶された現在データOdataにはさらに特別データフラグSFが含まれており、特別データを決定するステップS220及び高速書込みを行うステップS240〜S241をさらに含むという大きな相違点がある。特別データフラグSFが第1論理値(例えば、0)である場合、現在データOdataが読み出されるときには、データは、一般データ及びデータ反転フラグDFBに従って読み出す必要がある。そうではなく、特別データフラグSFが第2論理値(例えば、1)である場合、現在データOdataが読み出されるときには、現在データOdataは、特別データ(例えば、#FF)として直接読み出すことができ、一般データ及びデータ反転フラグDFBは無視される。
図2Bにつき説明すると、先ず、ステップS210で、書込みコマンドを受け取り、またアドレス及び書込みデータUdataを受け取る。上述のアドレスは、データ書込み動作が実施される選択されたメモリセルのアドレスを示す。
次に、ステップS220が実施されて、書込みデータUdataが特別データ(例えば、16進数で#FF)に等しいか否かを決定する。上述の決定結果がいいえである場合、ステップS230〜S231及びS232′〜S233′が実施される。ここで、ステップS230〜S231は図2Aの実施形態におけるのと同一であり、ここでは説明を繰り返さない。ステップS232′〜S233′は図2Aの実施形態に類似するが、この実施形態のステップS232′〜S233′においては、さらに特別データフラグSF=0が最終データに追加され、またこの後最終データが選択されたメモリセル内に書き込まれる点で相違する。
ステップS220に戻って説明すると、上述の決定結果がはいである場合、書込みデータUdataが特別データに等しいため、現在データOdataにおけるすべてのデータ及び最終データFdataは特別データフラグSFを除いて無視される(X)。その代わり、現在データ内の特別データフラグSFを第2論理値(1)に変更する必要があるか否かを決定するよう高速書込みを行うためのステップS240〜S241を実施するだけが必要となる。換言すれば、現在データOdataを読み出すとき、一般データ及びデータ反転フラグDFBを無視することができ、また現在データOdataを特別データとして直接読み出すことができる。とくに、ステップS240で、特別データフラグSFの状態が現在データ内で1であるか否かが決定される。はいである場合、現在データOdataを変更する必要はなく、データ書込みプロセスは直接終了する。いいえである場合、ステップS241が実施され、現在データOdata内の特別データフラグSFを1に変更するだけで、現在データOdata内の他の部分を変更することはない。
図2Cは、本発明の他の実施形態における抵抗メモリのデータ書込み方法を示すフローチャートである。図2Cに示すデータ書込み方法においては、抵抗メモリ装置は、直接書込みモードで操作することができる。ここで、図2Cが示すデータ書込み方法は、図2Bの方法とほぼ類似しており、また図2Cにおける特別データを決定するためのステップがステップS221〜S222を含み、高速書込みのためのステップがステップS250〜S251及びS260〜S261を含むという大きな相違点がある。図2Bの実施形態と同様に、特別データフラグSFが第1論理値(例えば、0)である場合、現在データOdataが読み出されるときには、データは、一般データ及びデータ反転フラグDFBに従って読み出す必要がある。しかし、この実施形態においては、特別データフラグSFが第2論理値(例えば、1)でありかつデータ反転フラグDFBが第1論理値(0)である場合、現在データOdataは、第1特別データ(例えば、16進法で#00)として直接読み出すことができ、一般データは無視され、他方で、特別データフラグSFが第2論理値(1)でありかつデータ反転フラグDFBが第2論理値(1)である場合、現在データOdataは、第2特別データ(例えば、16進法で#FF)として直接読み出すことができ、一般データは無視される。
図2Cにつき説明すると、先ず、ステップS210で、書込みコマンドを受け取り、またアドレス及び書込みデータUdataを受け取る。上述のアドレスは、データ書込み動作が実施される選択されたメモリセルのアドレスを示す。
次に、ステップS220が実施されて、書込みデータUdataが第1特別データ(例えば、16進数で#00)に等しいか否かを決定する。上述の決定結果がはいである場合、高速書込みを行うためのステップS250〜S251が実施される。ステップS250で、現在データOdata内の特別データフラグSFが1であるか否か、及びデータ反転フラグDFBが0であるか否かが決定される。はいである場合、現在データOdataを変更する必要はなく、またデータ書込みプロセスは直接終了する。いいえである場合、ステップS251が実施され、現在データOdata内の特別データフラグSFを1に更新し、またデータ反転フラグDFBを0に更新し、現在データOdata内の他の部分を変更することなく、データ書込みプロセスを終了する。
ステップS221に戻って説明すると、書込みデータUdataが第1特別データに等しくない場合、ステップS221がさらに実施され、書込みデータUdataが第2特別データ(例えば、16進法で#FF)に等しいか否かが決定される。上述の決定結果がはいである場合、高速書込みを行うステップS260〜261が実施される。上述の決定結果がいいえである場合、ステップS230〜S231及びS232′〜S233′が実施される。ここで、ステップS230〜S231及びS232′〜S233′は図2Bの実施形態におけるのと同一であり、ここでは説明を繰り返さない。
ステップS260で、特別データフラグSFが1であるか否か、及びデータ反転フラグDFBが1であるか否かが決定される。はいである場合、現在データOdataを変更する必要はなく、データ書込みプロセスを直接終了する。いいえである場合、ステップS261を実施し、現在データOdata内の特別データフラグSFを1に更新し、またデータ反転フラグDFBを1に更新し、現在データOdata内の他の部分は変更せず、またデータ書込みプロセスを終了する。
図3につき説明すると、図3は本発明の他の実施形態における抵抗メモリのデータ書込み方法を示すフローチャートである。図3に示すデータ書込み方法においては、抵抗メモリ装置はフラッシュメモリ互換モードで操作することができる。この実施形態において、抵抗メモリは、フラッシュメモリの消去コマンドに従って、データ書込み動作を実施することができる。ここで、図3における選択されたメモリセルによって記憶された現在データOdataはさらに、特別データフラグSFを含む。ここで、特別データフラグSFが第1論理値(例えば、0)である場合、現在データOdataを読み出すとき、現在データOdata内の一般データを16進法の#FFに置換する必要はない。ここで、特別データフラグSFが第2論理値(例えば、1)である場合、現在データOdataを読み出すとき、現在データOdata内の一般データを16進法の#FFに置換する必要がある。
先ず、ステップS310で、消去コマンド及びアドレスを受け取り、またアドレスは、データ消去動作を実施すべき選択されたメモリセルのアドレスを示す(すなわち、この動作実施は、16進法の#FFをすべての選択されたメモリセル内に書き込むことにより行う)。ステップS320で、現在データOdata内の特別データフラグSFが1であるか否かを決定する。はいである場合、現在データOdataを変更する必要はなく、データ書込みプロセスを直接終了する。いいえである場合、ステップS330が実施され、現在データOdata内の特別データフラグSFを1に更新するだけで、現在データOdata内の他の部分は変更することなく、データ書込みプロセスを終了する。
複数の実用例を提示し、以下にさらに本発明実施形態におけるデータ書込み方法を説明する。図4A〜図4Dは、図2Aによるデータ書込み方法の遂行詳細を示す概略図である。図4E〜図4Fは、図2Bによるデータ書込み方法の遂行詳細を示す概略図である。図4G〜図4Hは、図2Cによるデータ書込み方法の遂行詳細を示す概略図である。ここで、図4A〜図4Hにおけるデータは16進法のデータで例示する。
図4A〜図4Dにつき説明すると、図4Aにおいて現在データOdataは#F9であり、書込みデータUdataは#00であり、書込みデータUdataにより生成される一時データTdata及び反転一時データ/Tdataはそれぞれ#00及び#FFである。現在データOdataから読み出される優先度選択フラグPSBが0であるとき、現在データOdataを一時データTdata及び反転一時データ/Tdataとビット毎に変更レスビットモード(モードI)で比較することによって、抵抗メモリは以下の結果を得ることができる。現在データOdata及び一時データTdataの間で、0から1に変更されるのは0ビット、1から0に変更されるのは6ビットが存在し、変更したビット総数は6である。現在データOdata及び反転一時データ/Tdataの間で、0から1に変更されるのは2ビット、1から0に変更されるのは0ビットが存在し、また変更したビット総数は2である。したがって、変更レス原理に基づくと、反転一時データ/Tdataが選択され、データ反転フラグDFB=1及び優先度選択フラグPSB=0が追加されて最終データを生成することができる。
現在データOdataから読み出される優先度選択フラグPSBが1であるとき、現在データOdataを一時データTdata及び反転一時データ/Tdataとビット毎にリセットレスビットモード(モードII)で比較することによって、抵抗メモリは以下の結果を得ることができる。現在データOdata及び一時データTdataの間で、リセットする(0から1に変更する)必要があるのは0ビットである。現在データOdata及び反転一時データ/Tdataの間で、リセットする(0から1に変更する)必要があるのは2ビットである。したがって、リセットレス原理に基づくと、一時データTdataが選択され、データ反転フラグDFB=0及び優先度選択フラグPSB=1が追加されて最終データを生成することができる。
図4Bにおいて現在データOdataは#F9であり、書込みデータUdataは#FFであり、書込みデータUdataにより生成される一時データTdata及び反転一時データ/Tdataはそれぞれ#FF及び#00である。現在データOdataから読み出される優先度選択フラグPSBが0であるとき、現在データOdataを一時データTdata及び反転一時データ/Tdataとビット毎に変更レスビットモード(モードI)で比較することによって、抵抗メモリは以下の結果を得ることができる。現在データOdata及び一時データTdataの間で、0から1に変更されるのは2ビット、1から0に変更されるのは0ビットが存在し、また変更したビット総数は2である。現在データOdata及び反転一時データ/Tdataの間で、0から1に変更されるのは0ビット、1から0に変更されるのは6ビットが存在し、また変更したビット総数は6である。したがって、変更レス原理に基づくと、一時データTdataが選択され、データ反転フラグDFB=0及び優先度選択フラグPSB=0が追加されて最終データを生成することができる。
現在データOdataから読み出される優先度選択フラグPSBが1であるとき、現在データOdataを一時データTdata及び反転一時データ/Tdataとビット毎にリセットレスビットモード(モードII)で比較することによって、抵抗メモリは以下の結果を得ることができる。現在データOdata及び一時データTdataの間で、リセットする(0から1に変更する)必要があるのは2ビットである。現在データOdata及び反転一時データ/Tdataの間で、リセットする(0から1に変更する)必要があるのは0ビットである。したがって、リセットレス原理に基づくと、反転一時データ/Tdataが選択され、データ反転フラグDFB=1及び優先度選択フラグPSB=1が追加されて最終データを生成することができる。
図4Cにおいて現在データOdataは#F9であり、書込みデータUdataは#03であり、書込みデータUdataにより生成される一時データTdata及び反転一時データ/Tdataはそれぞれ#03及び#FCである。現在データOdataから読み出される優先度選択フラグPSBが0であるとき、現在データOdataを一時データTdata及び反転一時データ/Tdataとビット毎に変更レスビットモード(モードI)で比較することによって、抵抗メモリは以下の結果を得ることができる。現在データOdata及び一時データTdataの間で、0から1に変更されるのは1ビット、1から0に変更されるのは5ビットが存在し、また変更したビット総数は6である。現在データOdata及び反転一時データ/Tdataの間で、0から1に変更されるのは1ビット、1から0に変更されるのは1ビットが存在し、また変更したビット総数は2である。したがって、変更レス原理に基づくと、反転一時データ/Tdataが選択され、データ反転フラグDFB=1及び優先度選択フラグPSB=0が追加されて最終データを生成することができる。
現在データOdataから読み出される優先度選択フラグPSBが1であるとき、現在データOdataを一時データTdata及び反転一時データ/Tdataとビット毎にリセットレスビットモード(モードII)で比較することによって、抵抗メモリは以下の結果を得ることができる。現在データOdata及び一時データTdataの間で、リセットする(0から1に変更する)必要があるのは1ビットである。現在データOdata及び反転一時データ/Tdataの間で、リセットする(0から1に変更する)必要があるのは1ビットである。リセットすべきビット数が同一である場合、現在データOdata及び一時データTdataの間で1から0に変更されるビット数(この場合、5)を、さらに、現在データOdata及び反転一時データ/Tdataの間で1から0に変更されるビット数(この場合、1)と比較することができる。したがって、反転一時データ/Tdataが選択され、データ反転フラグDFB=1及び優先度選択フラグPSB=1が追加されて最終データを生成することができる。
図4Dにおいて現在データOdataは#F9であり、書込みデータUdataは#AAであり、書込みデータUdataにより生成される一時データTdata及び反転一時データ/Tdataはそれぞれ#AA及び#55である。現在データOdataから読み出される優先度選択フラグPSBが0であるとき、現在データOdataを一時データTdata及び反転一時データ/Tdataとビット毎に変更レスビットモード(モードI)で比較することによって、抵抗メモリは以下の結果を得ることができる。現在データOdata及び一時データTdataの間で、0から1に変更されるのは1ビット、1から0に変更されるのは3ビットが存在し、また変更したビット総数は4である。現在データOdata及び反転一時データ/Tdataの間で、0から1に変更されるのは1ビット、1から0に変更されるのは3ビットが存在し、また変更したビット総数は4である。したがって、変更レス原理に基づくと、反転一時データ/Tdata又は一時データTdataのいずれかが選択され、それに対応するデータ反転フラグDFB=1又は0及び優先度選択フラグPSB=0が追加されて最終データを生成することができる。
現在データOdataから読み出される優先度選択フラグPSBが1であるとき、現在データOdataを一時データTdata及び反転一時データ/Tdataとビット毎にリセットレスビットモード(モードII)で比較することによって、抵抗メモリは以下の結果を得ることができる。現在データOdata及び一時データTdataの間で、リセットする(0から1に変更する)必要があるのは1ビットである。現在データOdata及び反転一時データ/Tdataの間で、リセットする(0から1に変更する)必要があるのは1ビットである。さらに、現在データOdata及び一時データTdataの間で1から0に変更されるビット数及び現在データOdata及び反転一時データ/Tdataの間で1から0に変更されるビット数は、双方ともに3である。したがって、一時データTdata又は反転一時データ/Tdataのいずれかが選択され、それに対応するデータ反転フラグDFB=0又は1及び優先度選択フラグPSB=1が追加されて最終データを生成することができる。
図2Bの実施形態で説明したような図4E及び図4Fにつき説明すると、選択されたメモリセルが記憶する現在データOdataはさらに特別データフラグSFを含み、また高速書込みを行うステップS240〜S241がさらに含まれている。したがって、書込みデータUdataが特別データと同一であるか否かが先ず決定される。図4Eの実施形態において、例えば、特別データは#00であり、書込みデータUdataは#00である。この場合、書込みデータUdataは特別データと同一であるため、現在データOdata及び最終データFdata内のすべてのデータは特別データフラグSFを除いて無視(X)することができる。その代わり、現在データ内の特別データフラグSFは第2論理値(1)に変更する必要があるか否かを決定することのみが必要となる。換言すれば、現在データOdataが読み出されるとき、現在データOdataは特別データ(#00)として直接読み出され、一般データ及びデータ反転フラグDFBは無視される。この実施形態において、現在データOdata内の特別データフラグSFが第2論理値(1)である場合、データ書込みプロセスは直接終了することができる。現在データOdata内の特別データフラグSFが第2論理値でない場合、最終データFdataは、単に特別データフラグSFを第2論理値(1)に更新することによって生成することができる。
図4Fの実施形態は図4Eの実施形態に類似するが、この実施形態においては、特別データが#FFであり、書込みデータUdataも#FFである。同様に、書込みデータUdataは特別データと同一であるため、現在データ内の特別データフラグSFは第2論理値(1)に変更する必要があるか否かを決定することのみが必要となる。
図2Cの実施形態で説明したような図4G及び図4Hにつき説明すると、選択されたメモリセルが記憶する現在データOdataはさらに特別データフラグSFを含み、また高速書込みを行うステップS220〜S221及びステップS250〜S251及びステップS260〜S261及びがさらに含まれている。したがって、書込みデータUdataが第1特別データ(例えば、#00)又は第2特別データ(例えば、#FF)と同一であるか否かが先ず決定される。
図4Gの実施形態において、書込みデータUdataは#00である。この場合、書込みデータUdataは第1特別データと同一であるため、現在データOdata及び最終データFdata内のすべてのデータは特別データフラグSF及びデータ反転フラグDFBを除いて無視(X)することができる。その代わり、現在データ内の特別データフラグSFは第2論理値(1)に更新する必要があるか否か、及びデータ反転フラグDFBは第1論理値(0)に更新する必要があるか否かを決定することのみが必要となる。換言すれば、現在データOdataが読み出されるとき、現在データOdataは第1特別データとして直接読み出され、一般データは無視される。この実施形態において、現在データOdata内の特別データフラグSFが第2論理値であり、データ反転フラグDFBが第1論理値である場合、データ書込みプロセスは直接終了することができる。現在データOdata内の特別データフラグSFが第2論理値でない、又はデータ反転フラグDFBが第1論理値でない場合、最終データFdataは、単に特別データフラグSFを第2論理値に更新し、またデータ反転フラグDFBを第1論理値に更新することによって生成することができる。
図4Hの実施形態において、書込みデータUdataは#FFである。この場合、書込みデータUdataは第2特別データと同一であるため、現在データOdata及び最終データFdata内のすべてのデータは特別データフラグSF及びデータ反転フラグDFBを除いて無視(X)することができる。その代わり、現在データ内の特別データフラグSFは第2論理値(1)に更新する必要があるか否か、及びデータ反転フラグDFBは第2論理値(1)に更新する必要があるか否かを決定することのみが必要となる。
図5A〜5Cは、本発明の異なる実施形態によるデータ読出し方法を示すフローチャートである。図2Aの実施形態による選択されたメモリセルに対する書き込み後に、書込みデータは図5Aの方法に従って読み出すことができる。図2Bの実施形態による選択されたメモリセルに対する書き込み後に、書込みデータは図5Bの方法に従って読み出すことができる。図2Cの実施形態による選択されたメモリセルに対する書き込み後に、書込みデータは図5Cの方法に従って読み出すことができる。
図5Aにつき説明すると、先ずステップS510において、読出しコマンドを受け取り、またアドレスを受け取る。次に、選択されたメモリセル内の現在データOdataを読み出し(ステップS520)、またその現在データ内のデータ反転フラグDFBのデータを決定する(ステップS540)。ここで、データ反転フラグDFBが第1論理値(0)であるとき、ステップS541を実施する。そうでなく、データ反転フラグDFBが第2論理値(1)であるとき、ステップS542を実施する。
ステップS541で、読出しデータは、現在データOdata内の一般データに対して反転動作を実施しないことによって、直接生成する。他方、ステップS542では、読出しデータは、現在データOdata内の一般データに対して反転動作を実施することによって、生成する。注目すべきこととして、現在データOdataがエラー訂正コードを含む実施形態においては、読出しデータをステップS541又はステップS542によって生成する前に、ECC操作をエラー訂正コードに従って実施して、エラー訂正読出しデータを生成する。
図5Bの実施形態は図5Aの実施形態に類似するが、この実施形態においては現在データOdataが特別データフラグSFを含む点で相違する。したがって、この実施形態において、現在データOdataが特別データか否かを決定するためのステップS530〜S531がステップS540の前に含まれる。説明を簡潔にするため、ステップS530〜S531のみ記載し、残りのステップについてはここで繰り返さない。
図5Bにつき説明すると、ステップS530で現在データOdata内の特別データフラグSFのデータを決定する。ここで特別データフラグSFが第1論理値(0)を有するとき、ステップS540を実施する。そうでなく、特別データフラグSFが第2論理値(1)を有するとき、ステップS531を実施する。ステップS531においては、特別データフラグSFが第2論理値(1)を有しているため、読出しデータを直接特別データに等しくすることができ(例えば、読出しデータを16進法の#FFに等しくすることによって)、読出し動作を終了する。
図5Cにつき説明すると、図5Bと比べると、ステップS530で特別データフラグSFを第2論理値(1)として決定するとき、ステップS551がさらに実施されて、データ反転フラグDFBのデータを決定する。ステップS551でデータ反転フラグDFBが第1論理値(0)として決定されるとき、ステップS552が実施され、読出しデータを第1特別データ(例えば、16進法で#FF)に等しくする。他方、ステップS551でデータ反転フラグDFBが第2論理値(1)として決定されるとき、ステップS553が実施され、読出しデータを第2特別データ(例えば、16進法で#00)に等しくする。
図6につき説明すると、図6は本発明実施形態における抵抗メモリの概略図を示す。抵抗メモリは、メモリセルアレイ610、コントローラ620、データ変更回路630、読出しデータ生成器640、データラッチ650、入力/出力バッファ660、セット/リセット電圧発生器670、論理回路680、アドレスラッチ681、Yデコーダ682、Xデコーダ683、及びYゲート回路611を備える。入力/出力バッファ660は、書込みデータUdataを受け取る又は読出しデータRDOUTを出力するよう構成される。入力/出力バッファ660は、読出しデータ生成器640、コントローラ620、及びデータラッチ650に接続する。読出しデータ生成器640は、データラッチ650によって読み出されたデータを受け取ることができ、またデータ反転フラグDFBに従って受け取ったデータを反転することによって読出しデータRDOUTを生成するか否かを決定することができる。読出しデータRDOUTは、コントローラ620に伝送されるべき現在データOdataとして供することができる。さらに、書込みデータUdataをコントローラ620に伝送することができる。特別データフラグSFが含まれている実施形態において、読出しデータ生成器は、特別データフラグに従って、特別データを読出しデータRDOUTとして直接使用するか否かを決定することもできる。
コントローラ620は優先度選択フラグ設定回路621を有する。この優先度選択フラグ設定回路621は、優先度選択フラグPSBの状態を設定(セット)するよう構成する。コントローラ620は、データ反転フラグDFB及び特別データフラグSFの状態を設定し、また優先度選択フラグPSB、データ反転フラグDFB及び特別データフラグSFの状態をデータ変更回路630に伝送するのにも使用することができる。
データ変更回路630は、優先度選択フラグPSB、データ反転フラグDFB及び特別データフラグSFの状態に従って、最終データを生成することができ、またYゲート回路611を介してメモリセルアレイ610における選択されたメモリセル内に最終データを書き込むことができる。
他方、アドレスラッチ681はアドレスADDを受け取り、またアクセス動作のためメモリセルアレイ610における選択されるメモリセルを選択するよう、Yデコーダ682及びXデコーダ683によりアドレスADDに対してデコーダ動作を実施する。論理回路680は、イネーブル信号ENを受け取り、またこのイネーブル信号ENに従って、抵抗メモリ600の内部動作を有効にする。
この実施形態において、メモリセルは、固定数に従ってグループ分けすることができる。例えば、1バイトのグループ、2バイトのグループ又は1ワードのグループを特別な限定なく設定することができる。さらに、メモリセルの各グループは、1つのデータ反転フラグDFB及び1つの優先度選択フラグPSBに対応することができる。他の実施形態において、メモリセルの各グループは、少なくとも1つの特別データフラグSFに対応することができる。さらに他の実施形態においては、メモリセルの各グループにおけるデータはデータ訂正コードを含むことができる。
抵抗メモリ600は、さらに、エラー訂正回路(図示せず)を備えることができ、このエラー訂正回路を使用してデータ訂正コードを計算することができる、又はエラー訂正回路を備える実施形態においては、受け取ったデータ訂正コードに従って読出しデータに対して訂正動作を実施することができる。
注目すべきことには、セット/リセット電圧発生器670をコントローラ620及びアドレスラッチ681に接続する。抵抗メモリがデータ書込み動作を実施するプロセスにあることをコントローラ620が決定した後、リセット手順を実施するとき、セット/リセット電圧発生器670は、優先度選択フラグPSBに従ってリセット電圧を調整して、抵抗メモリ600に対してリセット操作を実施するのに使用することができる第1電圧V1又は第2電圧V2を有するリセットパルス信号を供給することができる。これに関連する動作の詳細は図10の実施形態でさらに説明する。
リセット電圧を調整するためのセット/リセット電圧発生器670の動作、コントローラ620が実施する優先度選択フラグPSB、データ反転フラグDFB及び特別データフラグSFを設定する動作並びに最終書込みデータを生成する動作は、何らの特別な限定もなく、同時又は別個に実施することができる。
図7につき説明すると、図7は、本発明実施形態における抵抗メモリの比較動作を実施する回路の概略図である。比較回路700は、コントローラに配置され、またXORゲートXOR1、NORゲートNOR1及びNOR2、並びに符号変換器IV1及びIV2を含むことができる。XORゲートXOR1及び符号変換器IV1は、現在データOdata内の一般データAdataを、一時データTdata内の書込みデータUdata及び反転一時データ/Tdata内の反転書込みデータ/Udataとビット毎に比較する動作を実施し、また書込みデータUdata及び反転書込みデータ/Udataに対する一般データAdataの変更ビットカウントCC及び反転信号CCBを生成するよう構成する。NORゲートNOR2は、書込みデータUdata及び一般データAdataに対してNOR論理操作を実施し、またNORゲートNOR1は、書込みデータUdataの反転及び一般データAdataに対してNOR論理操作を実施し、それぞれリセットビットカウントCR及びその反転信号CRBを生成する。
図8A〜8Bは、それぞれ本発明の異なる実施形態におけるデータ変更回路を示す概略図である。図8Aにつき説明すると、データ変更回路630はセレクタAOIに接続する。セレクタAOIは、優先度選択フラグPSBに従って出力すべき、変更レスビットモード信号CLC及びリセットレスビットモード信号CLRのうち一方を選択する。データ変更回路630はXORゲートXOR2を有する。XORゲートXOR2は、書込みデータUdata及びセレクタAOIの出力信号を受け取り、またセレクタAOIの出力信号に従って、書込みデータUdataに対するXOR(排他的or)操作を実施することによって最終データFdataを生成するか否かを決定する。
図8Bにつき説明すると、図8Aの実施形態と比較して、データ変更回路630は、現在データOdataが特別データフラグSFを含む実施形態においてトランジスタM1を有する。トランジスタM1は特別データフラグSFによって制御される。特別データフラグSFが論理値1に等しいとき、トランジスタM1は遮断され、最終データFdataを生成しない(すなわち、現在データOdata内の一般データAdataを変更しない)。他方、特別データフラグSFが論理値0に等しいとき、トランジスタM1はオン状態になり、またXORゲートXOR2の出力が最終データFdataになり得る。
図9A〜9Bは、それぞれ本発明実施形態における読出しデータ生成器の概略図である。図9Aにつき説明すると、読出しデータ生成器640はXORゲートXOR3を有する。このXORゲートXOR3はデータラッチ650からデータDFLを受け取る。XORゲートXOR3はさらにデータ反転フラグDFBを受け取り、またデータ反転フラグDFBに従って、読出しデータRDOUTとしてデータDFLを反転して出力すべきか否かを決定する。
図9Bにつき説明すると、図9Aの実施形態に比較して、読出しデータ生成器640は、さらに、現在データOdataが特別データフラグSFを含む実施形態において、特別データ生成回路641を有する。特別データ生成回路641はXORゲートXOR3の出力信号を受け取り、また特別データフラグSFに従って、データDFLに基づいて読出しデータRDOUTを生成するか否かを決定する。特別データが16進法の#FFである実施例では、この実施形態の特別データ生成回路641はORゲートOR1を有することができる。このORゲートOR1は、XORゲートXOR3の出力信号を受け取り、また特別データフラグSFに従って、データDFLに基づいて読出しデータRDOUTを生成するか否かを決定する。特別データフラグSFが1に等しいとき、読出しデータ生成器640は、1に等しい読出しデータRDOUTを強制的に生成する。他方、特別データフラグSFが0に等しいとき、読出しデータ生成器640は、データDFLに等しい読出しデータRDOUTを生成する(データ反転フラグDFBが0に等しいとき)、又はデータDFLに反転された読出しデータRDOUTを生成する(データ反転フラグDFBが1に等しいとき)。この実施形態における回路は例として16進法の#FFによって例示したが、本発明はこれに限定されない。異なる特別データに基づいて、当業者であれば、特別データフラグSFに従って特別データを生成する所望の回路を設計することができるであろう。
図10につき説明すると、図10は本発明実施形態におけるデータ書込み方法を示す概略図である。図10は、リセットプロセスRSETP及びセットプロセスSETPを含む。図10のフローチャートによれば、ステップS1001で、書込みコマンドを受け取り、また書込みアドレス及び書込みデータを受け取る。ステップS1002で、書込みアドレスにおける現在データ及びリセット電圧修正フラグFlagがメモリセルアレイから読み出される。実施形態において、リセット電圧修正フラグFlagの初期値は0にセットされる。他の実施形態において、優先度選択フラグPSBはリセット電圧修正フラグFlagとして使用することができる。
次に、ステップS1003で、現在データを書込みデータと比較して、書込みアドレスに対応する各メモリセルに対してセット操作又はリセット操作を実施する必要があるか否かを決定する。或る実施形態においては、現在データは、ステップS1003で、さらに、書込みデータ及び反転書込みデータとそれぞれ比較して、書込みアドレスに対応する各メモリセルに対してセット操作又はリセット操作を実施する必要があるか否かは、優先度選択フラグPSBに従って、決定することができる。
次に、比較結果に基づいてデータ1に変更する必要があるメモリセルに対してリセットプロセスRSETPを実施する。先ず、ステップS1004で、リセット電圧修正フラグFlagが0であるか否かを決定する。リセット電圧修正フラグFlagが0である場合、リセット電圧を現在電圧値のサイズに応じて設定する(ステップS1006)。そうではなく、リセット電圧修正フラグFlagが0でない場合、リセット電圧を現在電圧値のサイズはより低い電圧に更新する(ステップS1005)。
次に、ステップS1007で、比較結果に従って、データ1に変更する必要があるメモリセルの第2部分にリセット電圧を印加し、1回又は複数回リセット操作を実施し、またこの後、リセット済みメモリセルのすべてのリセットが成功しているか否かを検証する。この実施形態において、メモリセルのリセットが成功しているか否かは、リセット済みメモリセルの電流Icellがプリセット閾値Ivfy1未満であるか否かに関して検証することによって、検証することができる。ステップS1008において、メモリセルのリセット済み第2部分が検証に合格しているか否かを決定する。上述の決定結果がはいである場合、方法はセットプロセスSETPに進む。そうではなく、上述の決定結果がいいえである場合、方法はステップS1009を実施して、メモリセルの第2部分すべてが検証に合格するまで、又は所定リセット手順が終了するときに検証不合格として決定されるメモリセルが依然として存在するまで、検証に不合格であるメモリセルに対して所定リセット手順を継続する。
リセットプロセスRSETPが終了した後、比較結果に従って、データを0に変更する必要があるメモリセルの第1部分に対してセットプロセスSETPを実施する。ステップS1010で、比較結果に従って、データを0に変更する必要があるメモリセルの第1部分に対してセット電圧を印加し、セット操作を実施し、またすべてのセット済みメモリセルのセットが成功しているか否かを検証する。メモリセルのセットが成功しているか否かは、セット済みメモリセルの電流Icellがプリセット閾値Ivfy2より大きいか否かに関して検証することによって、検証することができる。或る実施形態においては、プリセット閾値Ivfy2は25μA、30μA、35μA、又は任意の適当な値にすることができる。
次に、ステップS1011で、すべてのセット済みメモリセルが検証に合格しているか否かを決定する。上述の決定結果がはいである場合、データ書込みプロセスは終了する。そうではなく、上述の決定結果がいいえである場合、ステップS1012を実施する。
ステップS1012で、検証に不合格であるメモリセルに対してリカバー操作を実施し、またその後に、検証に不合格であるすべてのメモリセルがセットに成功しているか否かを再び決定する。とくに、リカバー操作は、検証に不合格であるメモリセルに対して反転セット電圧(SIRP)を印加することによって実施することができる。この実施形態において、反転セット電圧は、セット電圧の位相とは逆位相の電圧であり、その電圧サイズの絶対値はリセット電圧の絶対値の約1/3〜3/4である。
次に、ステップS1013で、すべてのリカバー済みメモリセルが検証に合格するか否かを決定する。上述の決定結果がはいのとき、データ書込みプロセスは終了する。そうではなく、上述の決定結果がいいえのとき、ステップS1014を実施する。
ステップS1014で、リセット電圧修正フラグFlagを1に更新し、また所定セット手順を、メモリセルのすべての第1部分が合格するまで、又は所定セット手順が終了するときに検証不合格として決定されるメモリセルが依然として存在するまで、リカバー操作に不合格であるメモリセルに対して所定セット手順を継続する(ステップS1015)。
留意されたいのは、この実施形態において、リセットプロセスRSETPを実施した後に、セットプロセスSETPを実施することである。しかし、本発明はこれに限定するものではない。本発明が提供するデータ書込み方法においては、リセットプロセスRSETPは、セットプロセスSETPを実施した後に実施することもできる。
要約すれば、本発明実施形態による抵抗メモリのデータ書込み方法によれば、データ書込みプロセスで実際に書き込まれるメモリセルの数を減少するよう、優先度選択フラグを用いて書込みデータの書込み様式を指示することによって、電力消費を低減することができ、またメモリセルのサイクル動作の耐久性を改善することができる。
当業者であれば、本発明の範囲又は精神から逸脱することなく本発明の構造に対して様々な変更及び改変できることは明らかであろう。上述のことを考慮して、本発明は、特許請求の範囲及びその均等物の範囲内に納まる本発明の変更及び改変をカバーすることを意図するものである。