【実施例】
【0020】
図7は、本発明の実施例に係る抵抗変化型メモリの概略構成を示すブロック図である。本実施例の抵抗変化型メモリ100は、行列状に配列された複数のセルユニット(可変抵抗素子のメモリセルとアクセス用のトランジスタ)が配置されたメモリアレイ110と、コントローラ120と、列アドレスに従い入力データまたは出力データを選択するデータ選択部130と、外部端子からの入力データDINを保持するデータ入力部140と、外部端子へ出力する出力データDOUTを保持するデータ出力部150とを備えている。
【0021】
コントローラ120は、外部からのコマンドおよびアドレス等に基づきメモリセルを選択し、選択したメモリセルのセット、リセットを行う。好ましい態様では、コントローラ120は、フラッシュメモリの仕様と互換性を有し、つまり、フラッシュメモリで用いられる各種コマンド(消去コマンド、プログラムコマンド、読出しコマンド)に対応する動作を可能にする。例えば、抵抗変化型メモリ100は、コマンドデータを受け取る外部端子、アドレスデータを受け取る外部端子、およびデータを受け取る外部端子を備えることができ、コントローラ120は、外部端子から受け取ったコマンド、アドレス、データに基づきフラッシュメモリと互換性のある消去動作、プログラム動作および読出し動作を可能にする。あるいは、抵抗変化型メモリ100は、コマンドデータ、アドレスデータおよび入力データを共通の外部端子から受け取ってもよく、その場合、コントローラ120は、外部制御信号またはクロック信号により外部端子から入力されるコマンドデータ、アドレスデータまたはデータを識別する。
【0022】
コントローラ120は、フラッシュメモリと互換性のある仕様で消去動作をするとき、メモリアレイ110をブロック単位で管理し、ブロック単位での消去を可能にする。ブロックは、消去の単位であり、任意のワード数に規定することができる。メモリアレイ110は、
図7に示すように、データを格納するためのメイン領域110Aと、メイン領域110Aの状態を判別するためのフラグデータを格納するフラグ領域110Bとを含む。コントローラ120は、消去動作を行うとき、入力されたブロックアドレスに基づきメモリアレイの中から消去すべきブロックを選択し、選択ブロックの消去を行う。詳細は、後述するが、コントローラ120は、選択されたブロック内のメイン領域110Aに記憶されたデータを書き換えることなく、選択ブロックが消去されたものであることを示すフラグデータをフラグ領域110Bにセットする。例えば、
図7に示すように、1つのブロックが128ワードを含み、1つのワードが32ビットのメイン領域と1ビットのEFフラグとを含み、ブロック[n]が選択されると、ブロック[n]に含まれる128ワードの128ビットの全てのEFフラグが「1」にセットされる。
【0023】
コントローラ120は、フラッシュメモリと互換性のある仕様でプログラム動作をするとき、メモリアレイ110をワード単位で管理し、ワード単位でプログラムを可能にする。ワードは、プログラムまたは読出しの単位であり、任意のビット数に規定することができる。コントローラ120は、入力されたアドレスに基づきメモリアレイ110の中からワードを選択し、選択されたワードに入力データDINをプログラムする。コントローラ120は、選択されたワードにプログラムをしたとき、プログラムされた状態を示すため、EFフラグを「0」にセットする。
【0024】
また、コントローラ110は、フラッシュメモリと互換性のある仕様で読出し動作をするとき、メモリアレイ110をワード単位で管理し、ワード単位での読出しを可能にする。コントローラ120は、入力されたアドレスに基づきメモリアレイ110の中からワードを選択し、選択されたワードのフラグ領域110Bに設定されたEFフラグの状態に応じて、選択されたワードに記憶されたデータ、あるいは選択されたワードに記憶されたデータとは無関係に消去を表すデータを出力する。
【0025】
次に、本発明の第1の実施例の動作の詳細について説明する。
図8は、本実施例の消去動作を示すフローである。コントローラ120は、外部から消去コマンドおよび消去すべきブロックのアドレスを受け取ると(S100)、メモリアレイ110から消去すべきブロック[n]を選択する(S102)。コントローラ120は、選択ブロック[n]のメイン領域110Aのデータを「1」に書き換えることなく、選択ブロック[n]の全ワードのEFフラグ[n,*]に「1」を設定し(S104)、これで消去動作を終了する。ここで、データ「1」は、消去を表し、[*]は、ブロック[n]の全てを意味する。
図7を例にとれば、選択ブロック[n]を消去する場合には、選択ブロック[n]の全ワードの128ビットのEFフラグが「1」に設定される。
図11(A)は、具体例である。消去対象の選択ブロック[n]のm番目のワード[n,m]が「00000002h」であるとき、このデータは全く変更されることなく、フラグ領域110BのEFフラグが「1」に設定される。選択ブロック[n]内の他のワードも同様にEFフラグが「1」に設定される。
【0026】
図9は、本実施例のプログラム動作を説明するフローである。コントローラ120は、外部からプログラムコマンドおよびアドレスを受け取り(S120)、外部からプログラムすべき入力データDINを入力部50にロードする(S122)。次に、コントローラ120は、行アドレスに基づきメモリアレイ110からブロック[n]の中からm番目のワード[n,m]を選択し、選択ワード[n,m]のメイン領域110Aに入力データDINをプログラムし(S124)、さらに選択ワード[n,m]のEFフラグを「0」に設定する(S126)。EFフラグ「0」は、選択ワード[n,m]が消去されたものではなく、プログラムされたものであることを示す。
図11(B)に具体例を示す。入力データDINが「FFFFFFFEh」であり、選択ワード[n,m]に記憶されたデータが「00000002h」であるとき、選択ワード[n,m]には入力データDINがプログラムされ、EFフラグが「0」に設定される。
【0027】
図10は、本実施例の読出し動作を説明するフローである。コントローラ120は、外部から読出しコマンドおよびアドレスを受け取ると(S130)、行アドレスに基づきブロック[n]のm番目のワード「n,m」を選択し、選択ワード[n,m]のEFフラグが「1」であるか否かを参照する(S132)。EFフラグが「1」である場合には、コントローラ120は、選択ワード[n.m]のデータの如何にかかわらず、読出しデータDOUTの全てを、消去を表す「1」にして出力させる(S134)。一方、EFフラグが「0」である場合には、コントローラ120は、選択ワード[n,m]に記憶されたデータを読出し、これをデータDOUTとして出力させる(S136)。
図11(C)、(D)に具体例を示す。読出しケース1(C)では、EFフラグが「1」であるため、読出しデータDOUTとして、「FFFFFFFFh」が出力される。読出しケース2(D)では、EFフラグが「0」であるため、読出しデータDOUTとして、選択ワード[n,m]に記憶されたデータ「00000002h」が出力される。
【0028】
このように本実施例によれば、メモリアレイ110の選択ブロックを消去するときに、選択ブロック内の全ワードをデータ「1」に書き換えない。このため、データ「1」を記憶している可変抵抗素子子に、再度、データ「1」を書き込む(リセットする)必要がなり、可変抵抗素子のエンデュライン特性が悪化するのを防止することができる。
【0029】
次に、本発明の第2の実施例について説明する。
図12は、第2の実施例に係る抵抗変化型メモリ110Aの構成を示す図である。第2の実施例では、メモリアレイ110のフラグ領域110Bが更なるRFフラグを備えている。RFフラグは、プログラムするときに、選択ワードに入力データの正転データをプログラムしたが、入力データの反転データをプログラムしたかを判別するフラグである。
【0030】
図13は、第2の実施例の消去動作を示すフローである。第2の実施例では、コントローラ120は、選択ブロック[n]のEFフラグ[n,*]とRF[n,m]のそれぞれに「1」を設定し(S204)、それ以外の動作は、第1の実施例のときと同様である。
図16(A)に、具体例を示す。選択ブロック[n]のm番目のワード[n,m]が「00000002h」であるとき、このデータは変更されることなく、EFフラグおよびRFフラグに「1」が設定される。選択ブロック[n]の他のワードも同様である。
【0031】
図14は、本実施例のプログラム動作を説明するフローである。コントローラ120は、外部からプログラムコマンドおよびアドレスを受け取り(S220)、外部からの入力データDINを入力部50にロードする(S222)。次に、コントローラ120は、行アドレスに基づきメモリアレイ110の選択されたブロック[n]の中からm番目のワード[n,m]を選択し、選択ワード[n,m]に記憶されたデータと入力データDINとのEXORを行い、その演算結果をレジスタや可変スイッチ等に保持する(S224)。入力データDINと一致するビットは「0」、不一致のビットは「1」になる。次に、コントローラ120は、EXORの演算結果を参照し、データ「1」をカウントしその数が50%以上であるか否かを判定する(S226)。データ「1」の数は、選択ワードに記憶されたデータと入力データDINとの不一致のビット数を表す。カウントされたデータ「1」が50%以上である場合には、選択ワード[n,m]に入力データDINがプログラムされ、EFフラグが「0」、RFフラグが「1」に設定される(S226)。ここで留意すべきは、選択ワード[n,m]において、不一致のビットを反転することでプログラムが行われる。他方、カウントされたデータ「1」が50%未満である場合には、選択ワード[n,m]に、入力データDINの反転データがプログラムされ、EFフラグが「0」に、RFフラグが「0」に設定される(S228)。この場合にも、選択ワード[n,m]において、不一致のビットのみが反転される。これで、プログラム動作が終了する。
【0032】
図16(B)、(C)に具体例を示す。プログラムケース1(B)において、入力データDINが「FFFFFFFEh」であり、選択ワード[n,m]に記憶されたデータが「FFFFFFFDh」であるとき、EXORの演算結果におけるデータ「1」のカウント数は「2」である。つまり、データ「1」の数は、50%未満である。それ故、選択ワード[n,m]には、入力データDINがプログラムされるが、EXORの不一致を表す「1」に対応する選択ワード[n,m]の下位2ビットのデータのみが反転される。また、RFフラグは、正転データのプログラムを示すために、「1」が設定される。
【0033】
プログラムケース2(C)において、入力データDINが「FFFFFFFEh」であり、選択ワード[n,m]に記憶されたデータが「00000002h」であるとき、EXORの演算結果におけるデータ「1」のカウント数は「30」である。不一致のデータ数が50%以上であるため、選択ワード[n,m]には、入力データDINの反転データがプログラムされる。この場合、反転データが用いられるため、EXORの一致を表す「0」に対応する選択ワード[n,m]のビットのデータのみが反転される。また、RFフラグは、入力データDINの反転データのプログラムを示すために、「0」が設定される。
【0034】
図15は、本実施例の読出し動作を説明するフローである。コントローラ120は、外部から読出しコマンドおよびアドレスを受け取ると(S230)、行アドレスに基づきブロック[n]のm番目のワード[n,m]を選択し、選択ワード[n,m]のEFフラグが「1」であるか否かを判定する(S232)。EFフラグが「1」である場合には、コントローラ120は、選択ワード[n,m]のデータの如何にかかわらず、読出しデータDOUTの全て「1」にして出力させる(S234)。一方、EFフラグが「0」である場合には、コントローラ120は、RFフラグが「1」であるか否かを判定する(S240)。RFフラグが「1」である場合には、コントローラ120は、選択ワード[n,m]に記憶されたデータを読出しデータDOUTとして出力させ(S242)、RFフラグが「0」である場合にいは、コントローラ120は、選択ワード[n,m]に記憶されたデータを反転したデータを読出しデータDOUTとして出力させる(S244)。
【0035】
図17(A)、(B)、(C)に具体例を示す。読出しケース1(A)では、EFフラグが「1」であるため、選択ワード[n,m]に記憶されているデータ「00000002h」とは無関係に、読出しデータDOUTとして「FFFFFFFFh」が出力される。読出しケース2(B)では、EFフラグが「0」、RFフラグが「1」である。このため、選択ワード[n,m]に記憶されたデータ「FFFFFFFE2h」が読出しデータDOUTとして出力される。読出しケース3(C)では、EFフラグが「0」、RFフラグが「0」である。これは、入力データDINの反転データが選択ワード[n.m]にプログラムされたことになっているため、選択ワード[n,m]に記憶されたデータの反転データが読出しデータDOUTとして出力される。
【0036】
第2の実施例によれば、プログラムするときに、入力データとワードに記憶されているデータとの不一致または一致の割合に基づき入力データの正転データまたは反転データをプログラムするようにしたので、選択ワードの可変抵抗素子の書き換え回数を第1の実施例のときよりも少なくすることができる。
【0037】
上記実施例は、抵抗型変化メモリがNOR型フラッシュメモリと互換性のある仕様で動作する例を示したが、抵抗型変化メモリがNAND型フラッシュメモリと互換性のある仕様で動作するものであってもよい。さらに上記実施例は、ランダムアクセスが可能であり、不揮発性メモリ素子のデータが「0」から「1」、または「1」から「0」にダイレクトに書き換えが可能である半導体記憶装置として抵抗変化型メモリを例示したが、不揮発性メモリ素子は、抵抗可変型に限らず他の強誘電体や磁気などによりデータを記憶するものであってもよい。
【0038】
本発明の好ましい実施の形態について詳述したが、本発明は、特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。