(57)【要約】      （修正有）【課題】抵抗変化素子を用いて構成されて、効率的なデータ書き換えを可能とした不揮発性メモリ装置とその書き込み方法を提供する。【解決手段】不揮発性メモリ装置は、電気的に書き換え可能な抵抗値をデータとして不揮発に記憶するメモリセルを有するメモリセルアレイと、前記メモリセルアレイの書き込みデータを保持するための第１のキャッシュ回路と、前記メモリセルアレイの前記書き込みデータを書き込むべき領域の既書き込みデータを読み出して保持する第２のキャッシュ回路と、前記第１のキャッシュ回路にロードされた前記書き込みデータと前記第２のキャッシュ回路に読み出された前記既書き込みデータを比較して不一致を判定する判定回路と、を備えた。【選択図】図５
2011060388.tif 000002
【特許請求の範囲】
【請求項１】
電気的に書き換え可能な抵抗値をデータとして不揮発に記憶するメモリセルを有するメモリセルアレイと、
前記メモリセルアレイの書き込みデータを保持するための第１のキャッシュ回路と、
前記メモリセルアレイの前記書き込みデータを書き込むべき領域の既書き込みデータを読み出して保持する第２のキャッシュ回路と、
前記第１のキャッシュ回路にロードされた前記書き込みデータと前記第２のキャッシュ回路に読み出された前記既書き込みデータを比較して不一致を判定する判定回路と、
を備えたことを特徴とする不揮発性メモリ装置。
【請求項２】
前記判定回路による不一致ビットをカウントし、そのカウント値を保持すると共に、前記カウント値を許容値と比較してその比較結果を出力するフェイルビットカウント回路を更に備えた
ことを特徴とする請求項１記載の不揮発性メモリ装置。
【請求項３】
前記判定回路は、同時書込みされる１ページの書き込みデータ内の第１データ状態と第２データ状態についてそれぞれ、前記既書き込みデータの対応するビットとの間で不一致があるか否かの判定を行なうものであり、
前記フェイルビットカウント回路は、第１データ状態及び第２データ状態について不一致ビットをカウントするカウンタと、その不一致ビット数が所定の許容値を超えているか否かを判定するためのコンパレータと、第１データ状態、第２データ状態及び全データ状態に対して予め定められた異なる許容値の一つを選択し、それを参照値として前記コンパレータに与えるセレクタ回路とを有し、
前記フェイルビットカウント回路の比較結果に基づいて書き込み制御が行なわれる
ことを特徴とする請求項２記載の不揮発性メモリ装置。
【請求項４】
抵抗変化型メモリセルを用いたメモリセルアレイを有する不揮発性メモリ装置の書き込み方法であって、
同時書込みされる１ページの書き込みデータを第１のキャッシュ回路にロードし、
前記書き込みデータに対応する既書き込みデータを前記メモリセルアレイから第２のキャッシュ回路に読み出して保持し、
前記書き込みデータ内の第１データ状態と第２データ状態について、前記既書き込みデータの対応ビットとの間で不一致ビット数をカウントし、
第１データ状態、第２データ状態及び全データ状態の不一致ビット数のいずれかが許容値を超えているか否かの判定を行ない、
その判定結果に基づいて前記メモリセルアレイへの書き込み制御を行なう
ことを特徴とする不揮発性メモリ装置の書き込み方法。
【請求項５】
前記メモリセルアレイへの書き込み制御は、第１データ状態の不一致ビット数及び第２データ状態の不一致ビット数を勘案して、第１，第２データ状態のいずれか一方のみの書き込みを行なうか、いずれの書き込みも行なわないか、或いは双方の書き込みを行なうか、の判定を伴う
ことを特徴とする請求項４記載の不揮発性メモリ装置の書き込み方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、電気的書き換え可能なメモリセルとして抵抗変化素子を用いて、その抵抗値をデータとして記憶する不揮発性メモリ装置に関する。
【背景技術】
【０００２】
不揮発性メモリ装置の大容量化を実現するために、三次元的に積層された素子の抵抗変化を記憶する方法が注目されている。例えば、抵抗変化素子（可変抵抗素子）としてカルコゲナイド素子を使用した相変化メモリ（Ｐｈａｓｅ  Ｃｈａｎｇｅ  ＲＡＭ；ＰＣＲＡＭ）、遷移金属酸化物を使用した抵抗変化メモリ（Ｒｅｓｉｓｔａｎｃｅ  ＲＡＭ；ＲｅＲＡＭ）などが代表例である。
【０００３】
メモリ素子を高密度かつ低コストで製造するために、互いに直交する列選択線と行選択線の交点にメモリセルのみを配置することが望ましい。さらに、より高密度化、大容量化を実現するためには、メモリセルを三次元的に配置することが望ましい。三次元的にメモリセルを配置する公知例としては、特許文献１や特許文献２などがある。
【０００４】
メモリセルの動作制御を容易にするためには、可変抵抗素子に直列に配置したダイオード素子を付加し、トランジスタを用いない形態が望ましい。この場合、抵抗値変化をさせるセット及びリセット動作に、異なる時間と電圧(電流)でかつ単一方向のパルスを用いる所謂ユニポーラ動作が採用される。
【０００５】
また一般に不揮発性半導体記憶装置は、ページを単位として書込みが行われ、書込み動作の一連動作のなかには書き込みデータと実際のセルデータの照合(ベリファイリード、単にベリファイとも言う)動作が行われる。さらに、最近の微細化と、不揮発性半導体記憶装置を装置外部より制御する制御装置の高機能化により、書込み性能を維持しつつ、ページ内でエラー訂正可能な数以下の不良ビットを許容する技術が用いられている。
【０００６】
即ち不揮発性半導体記憶装置内には不良ビット数を計数する回路、および予め決められた許容数と比較する回路を搭載することは公知である（例えば、特許文献３）。
【０００７】
しかし、抵抗変化素子を用いた不揮発性メモリ装置，ＲｅＲＡＭにおいては、浮遊ゲートの電荷蓄積量によるしきい値をデータとして記憶する不揮発性メモリ装置（例えばＮＡＮＤ型フラッシュメモリ）と異なり、書込み単位と消去単位を同一にすることが可能である。また、ＮＡＮＤ型フラッシュメモリとは異なり、データ書込みに先立って当該ページを含むブロックを消去する必要がなく、直接書換えも可能である。
【０００８】
このような書き込み方式の相違から、抵抗変化素子を用いた不揮発性メモリ装置においては、従来のＮＡＮＤ型フラッシュメモリで知られている不良ビットカウント方式はそのまま採用できない。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特表２００５−５２２０４５号公報
【特許文献２】特表２００６−５１４３９３号公報
【特許文献３】特開２００８−４１７８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
この発明は、抵抗変化素子を用いて構成されて、効率的なデータ書き換えを可能とした不揮発性メモリ装置とその書き込み方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
この発明の一態様による不揮発性メモリ装置は、
電気的に書き換え可能な抵抗値をデータとして不揮発に記憶するメモリセルを有するメモリセルアレイと、
前記メモリセルアレイの書き込みデータを保持するための第１のキャッシュ回路と、
前記メモリセルアレイの前記書き込みデータを書き込むべき領域の既書き込みデータを読み出して保持する第２のキャッシュ回路と、
前記第１のキャッシュ回路にロードされた前記書き込みデータと前記第２のキャッシュ回路に読み出された前記既書き込みデータを比較して不一致を判定する判定回路と、
を備えたことを特徴とする。
【００１２】
この発明の他の態様による不揮発性メモリ装置の書き込み方法は、抵抗変化型メモリセルを用いたメモリセルアレイを有する不揮発性メモリ装置の書き込み方法であって、
同時書込みされる１ページの書き込みデータを第１のキャッシュ回路にロードし、
前記書き込みデータに対応する既書き込みデータを前記メモリセルアレイから第２のキャッシュ回路に読み出して保持し、
前記書き込みデータ内の第１データ状態と第２データ状態について、前記既書き込みデータの対応ビットとの間で不一致ビット数をカウントし、
第１データ状態、第２データ状態及び全データ状態の不一致ビット数のいずれかが許容値を超えているか否かの判定を行ない、
その判定結果に基づいて前記メモリセルアレイへの書き込み制御を行なう
ことを特徴とする。
【発明の効果】
【００１３】
この発明によれば、抵抗変化素子を用いて構成されて、効率的なデータ書き換えを可能とした不揮発性メモリ装置とその書き込み方法を提供することができる。
【図面の簡単な説明】
【００１４】
【図１】一実施形態にかかわる不揮発性メモリ装置の内部構成例を示すブロック図である。
【図２】図１に示すコア部の三次元構成例を示す図である。
【図３】抵抗変化素子およびダイオード素子からなるメモリセルの配置構成例を示す図である。
【図４】メモリセルに与える書込み(セット) 消去(リセット)および読み出しの電圧と時間の大小関係を示す図である。
【図５】ダイレクトプログラムの内部動作フローチャートである。
【図６】ページレジスタの内部構成例を示す図である。
【図７】ページレジスタを構成する第１のキャッシュの内部構成を説明する図である。
【図８】ページレジスタを構成する第２のキャッシュの内部構成を説明する図である。
【図９】第２のキャッシュ内部に配置された論理回路の入力対出力を説明する図である。
【図１０】フェイルビットカウント回路とそれに接続される選択回路の内部構成を説明する図である。
【図１１】内部動作のタイミングと信号論理状態を説明する図（その１）である。
【図１２】内部動作のタイミングと信号論理状態を説明する図（その２）である。
【図１３】内部動作のタイミングと信号論理状態を説明する図（その３）である。
【図１４】不一致ビット数計数結果を説明するための図である。
【図１５】ステータス読み出しの結果を示す図である。
【図１６】ＲｅＲＡＭチップとコントローラを搭載したメモリカードの構成例を示す図である。
【発明を実施するための形態】
【００１５】
以下、図面を参照して、この発明の実施の形態を説明する。
【００１６】
図１は、この発明の実施形態による可変抵抗素子（抵抗変化素子）を用いた不揮発性メモリ装置、ＲｅＲＡＭの機能ブロック構成を示している。装置外部に設けられたコントロールピン情報（チップイネーブル／ＣＥｘ，書き込みイネーブル／ＷＥｘ，読み出しイネーブル／ＲＥｘ，コマンドラッチイネーブルＣＬＥｘ，アドレスラッチイネーブルＡＬＥｘ，書き込みプロテクト／ＷＰｘ）は、入力バッファ１０１に入力され、ＩＯピンのデータの入出力、コマンド、アドレス、データの識別や書き込み保護等の状態を認識する。
【００１７】
ＩＯピンＩＯｘ＜７：０＞は双方向バスで構成され、入力信号は入力バッファ１０２に入力され、出力信号は出力バッファ１０６ａから出力される。この制御は入力バッファ１０１からの信号により制御される。
【００１８】
入力されたデータは、コントロールピンの状態によって、コマンドはコマンドデコーダ１０３に、アドレスはアドレスバッファ１０４に、データはデータバッファ１０５にそれぞれ振り分けられる。アドレスバッファ１０４は、書込みや読み出し、あるいは消去に必要なカラムアドレスＣＯＬＡＤＤ、ロウアドレスＲＯＷＡＤＤ等を一時保持し、装置内部の必要箇所に必要なアドレス信号を伝達する。ここでは、シーケンスコントロール回路１０７、アレイ制御回路１０８及びページレジスタ制御回路１１０にそれぞれ必要なアドレスが伝達される。
【００１９】
コマンドデータはコマンドデコーダ１０３が解釈し、必要があればシーケンスコントロール回路１０７を起動する。データバッファ１０５は入力された書き込みデータを一時保持制御し、ページレジスタ１１２へ送付する。データバッフア１０５は、データ出力時には自身のデータ出力を停止して、内部双方向データバスＭＤＩＯ[7:0]のデータ衝突を回避する。
【００２０】
出力バッファ１０６ａは、メモリセルのデータ読み出しその他後述するメモリセルの内部状態や書込み結果情報等を出力する役割を持つ。読み出し動作以外のときは、ＩＯピンのドライブを停止する役割をもつ。
【００２１】
出力バッファ１０６ｂは、本メモリ装置がビジー状態であることを装置外部に通知するための出力制御回路である。即ち出力バッファ１０６ｂは、次のコマンドを受け取ることができるレディ状態であるときは、信号ＲＢｘを活性状態にし、次のコマンドを受け取ることのできないビジー状態であるときは信号ＲＢｘを非活性状態にする。
【００２２】
シーケンスコントロール回路１０７は、本メモリ装置の読み出し、書き込み、消去等の動作の全てを制御する。その制御にはメモリセルアレイに必要なバイアス印加を指示する信号や、前記アドレスレジスタの値の変更動作等も含む。
【００２３】
シーケンスコントロール回路１０７の指示により、アレイ制御回路１０８、チャージポンプ制御回路１０９、およびページレジスタ制御回路１１０が起動される。アレイ制御回路１０８は、メモリコア１００のセルアレイに対して必要なバイアスを印加し、セルアレイの下部配置されるセンスアンプの起動やレジスタ回路の動作を制御する。その出力信号にはセンスアンプ活性化信号ＳＡＥやロウデコーダに伝達すべきロウアドレス信号ＲＯＷＡＤＤ等を含む。
【００２４】
ページレジスタ制御回路１１０は、ページレジスタ１１２の動作を制御する。ページレジスタ１１２内には、一括して書き込む単位(ページ)を一組として少なくとも２組のレジスタ群を実装する。本実施形態で必要とするページレジスタ構成については、後述する。
【００２５】
フェイルビットカウント回路１１１は、ページレジスタ１１２が出力するフェイルビットを計数、保持し、必要に応じてシーケンス制御回路１０７が出力する許容フェイルビット数との比較を行う。その詳細は後述するが、ここでいうフェイルビットとは、書き込みデータを、その書き込むべき領域の既書き込みデータと照合した結果求められた“不一致ビット”をいい、許容フェイルビット数とは予め定められた“許容不一致ビット数”をいう。許容不一致ビット数は、以下単に“許容値”という場合がある。
【００２６】
フェイルビットカウント回路１１１での比較結果は、用途に応じてシーケンス制御回路１０７に通知され、あるいは出力バッファ１０６ａを介して外部に伝達される。
【００２７】
図２は、メモリコア１００を構成するメモリセルアレイ１１を示す。メモリセルアレイ１１は、センスアンプやデータラッチ、デコーダ等の周辺回路が形成される半導体基板１０上に形成される。
【００２８】
ここでは、メモリセルアレイ１１が４つのセルアレイ層ＭＡ０−ＭＡ４により構成される例を示している。各セルアレイ層の列選択線（ワード線ＷＬ）と行選択線（ビット線ＢＬ）の交点にメモリセルＭＣが配置される。
【００２９】
ワード線ＷＬとビット線ＢＬの一端部には、これらを基板１０に引き出すためのワード線引き出し領域１２及びビット線引き出し領域１３が設けられる。これらの配線引き出し領域では、例えばビアコンタクトの埋め込みにより、ワード線ＷＬ及びビット線ＢＬが、基板１０上に所定パターンで配列されたワード線コンタクトノードＷＬＣ及びビット線コンタクトノードＢＬＣに接続される。
【００３０】
通常メモリセルアレイ１１は、図２の単位をバンクとして、複数バンク配置して構成されることが多い。従って、図には示さないが、基板１０上にはワード線およびビット線のバンク内デコーダを含む各種論理回路が配置される場合もある。
【００３１】
図３は、一つのセルアレイ層の等価回路を示している。ワード線ＷＬｉ（ｉ＝０，１，２，…）とビット線ＢＬｊ（ｊ＝０，１，２，…）の各交差部にメモリセルＭＣｉｊが配置される。メモリセルＭＣｉｊは、抵抗変化素子ＶＲとダイオードＳＤとから構成される。この例では、ビット線ＢＬｊにダイオードＳＤのアノードが接続され、ワード線ＷＬｉに、ダイオードＳＤのカソード側に一端が接続された抵抗変化素子ＶＲの他端が接続されている。
【００３２】
このメモリセル配置構成は、本例に限られない。例えば、ワード線とビット線の接続関係を逆転させてもよいし、ダイオードと可変抵抗素子の接続関係を逆転させて、ビット線とダイオードのアノード間に可変抵抗素子を接続してもよい。もちろん、ダイオードに代わって、スイッチトランジスタを別途配置してもよい。
【００３３】
図４は、本実施形態のメモリセルアレイの抵抗値を変化させるためのセット(Program)およびリセット(Erase)動作、および読み出し(Read)動作のパルス波形を模式的に示したものである。
【００３４】
単一極性で、時間と電圧の異なるパルスを用いることでセットからリセット、リセットからセット状態へ抵抗値を変化させることのできるユニポーラ型メモリセルアレイにおいては、適切な時間と電圧を選択することによって、一つのコマンドシーケンス中にて二つの動作を同時に実行することが可能となる。この動作をここでは、“ダイレクトプログラム”と呼ぶ。
【００３５】
即ち従来のＮＡＮＤ型フラッシュメモリでは、該当ページ（を含むブロック）のセルデータを、消去コマンドを発行して消去し、消去完了を待って新たに書き込みコマンドを書込みデータとともに与える、という二つのシーケンス制御を必要とした。これに対してこの実施形態では、書込みコマンドと書込みデータを与える一つの書き込みシーケンス内で必要なセルの消去をも行なうという、ダイレクトプログラム動作を実現している。
【００３６】
なお図４において、セット時間ｔｓｅｔとリセット時間ｔｒｅｓｅｔの間には、ｔｓｅｔ＜ｔｒｅｓｅｔなる関係があり、セット電圧Ｖｓｅｔとリセット電圧Ｖｒｅｓｅｔの間には、
Ｖｓｅｔ＞Ｖｒｅｓｅｔなる関係があるものとする。また、読み出し電圧Ｖｒｅａｄは、リセット電圧Ｖｓｅｔ及びリセット電圧Ｖｒｅｓｅｔに比べて十分小さく、Ｖｒｅａｄ<<Ｖｒｅｓｅｔ及びＶｒｅａｄ<<Ｖｓｅｔなる関係があるものとする。
【００３７】
但し、以下の説明では便宜上、セット動作とリセット動作に代わって、“０”書き込み動作と“１”書き込み動作を用いるものとする。ここでは、“０”，“１”データがセット、リセット状態のいずれに対応するかは問わない。
【００３８】
即ちメモリセルの二つの抵抗値状態の一方、第１データ状態を“０”データ、他方の第２データ状態を“１”データとして、“０”データ書き込み（“１”データ状態のセルを“０”データ状態へ遷移させる動作）を簡単に“０”書き込み、或いは書き込み“０”と呼び、“１”データ書き込み（“０”データ状態のセルを“１”データ状態へ遷移させる動作）を簡単に“１”書き込み、或いは書き込み“１”と呼ぶ。
【００３９】
図５は本実施形態のＲｅＲＡＭの書き込み動作フローを示す。
【００４０】
ステップＳ１では、書き込みコマンドとアドレスに引き続いて、書き込みデータをＲｅＲＡＭに与える。書き込みデータは最大1ページ(例えば２ｋＢｙｔｅ)分を与えるものとする。書き込みデータを与えた後は、書き込み開始コマンドを発行する。
【００４１】
ステップＳ２では、図示せぬが当該ページデータの書き込み必要なレジスタを初期化する。この初期化には、書き込み結果情報を保持するステータス情報レジスタ、フェイルビットカウント回路の計数結果情報等を消去する動作を含む。
【００４２】
ダイレクトプログラム動作においては、あらかじめメモリセルに書き込まれているデータを知った上で必要なセルにセットパルスを、必要なセルにリセットパルスを与え、データを書き換える必要のないセルにはパルスを印加しない、という選択制御を行なう。そのため、ステップＳ３では、書き込むべき領域の既書込みデータを読み出す動作を実行する。
【００４３】
具体的には、メモリセルアレイの選択ページに図４に示す読み出しパルスを印加し、センスアンプを動作させ、読み出し結果をページレジスタ回路１１２に転送して保持する。
【００４４】
ステップＳ４では、書込みデータと読み出しデータ（既書き込みデータ）との照合を行う第１の照合動作（“０”照合動作）を行なう。続くステップＳ５では同様の第２の照合動作（“１”照合動作”）を行なう。具体的に、“０”照合とは、“０”書き込みデータと対応既書き込みデータとを比較照合するものである。“１”照合動作とは、“１”書込みデータと対応既書き込みデータとを比較照合するものである。
【００４５】
以上のステップＳ４及びＳ５の照合動作の結果、当該ページのデータは書換えの必要がない、即ち既書込みデータと上書きするデータが同一であるか、或いは許容できるビット数（許容値）以下の相違しかない場合は、照合判定ステップＳ６をパスして、ステップＳ７の“完全照合動作”に移動する。
【００４６】
完全照合動作(ステップＳ７)は、書込みデータと既書込みデータが完全に一致する、すなわち1ビットたりともデータ状態に相違がないことを判定するための動作である。ＲｅＲＡＭに接続される制御回路は、通常想定されるエラー訂正回路を具備しているが、エラーがないデータが得られれば無用な訂正回路動作にかかる処理時間と動作電流を削減できる。したがって、ＲｅＲＡＭが完全照合の結果がパスであるか否かを判定する必要がある。
【００４７】
完全照合動作の結果の不一致ビットの有無判定（ステップＳ８）を行ない、不一致（フェイル）がない場合はそのまま終了する。完全一致でない場合は、完全一致ではない旨のステータス情報をステップＳ９にてセットした上で終了する。
【００４８】
ステップＳ６でデータの書換えが必要であると判断された場合は、実際に“１”書き込み動作(ステップＳ１０)、引き続いて“０”書き込み動作(ステップＳ１１)に遷移する。これら“１”書き込み及び“０”書き込みのステップ順序は問わないし、同時並行的に実行してもかまわない。
【００４９】
これらの書き込み後、書き込みベリファイ読み出しを行う（ステップＳ１２）。そして、“１”書き込みについての“１”照合動作（ステップＳ１３）と、“０”書き込みについての“０”照合動作（ステップＳ１４）を行なう。
【００５０】
なお“１”書き込み動作の後すぐに“１”照合動作を行ない、その後に“０”書き込み動作と“０”照合動作を連続させる手順も可能である。
【００５１】
書込み動作に引き続いた照合動作およびそれらに引き続く条件判定（ステップＳ１５）は、前述の書込みに先立って行われる動作と同一である。具体的な回路処理については後述する。
【００５２】
“１”照合と“０”照合がPassしたか否かを判定する条件判定ステップＳ１５において、ＹＥＳと判定された場合は、書き込み前の動作と同様に、完全照合動作（ステップＳ１６）、フェイルの有無判定（ステップＳ１７）、フェイルがある場合のステータス情報セット動作（ステップＳ１８）が行なわれる。
【００５３】
条件判定ステップＳ１５において、ＮＯと判定された場合は、書込み最大数を超過しているか否かの判定ステップＳ１９に遷移する。ここでは図示せぬが、公知の技術を用いて書込み最大時間や書込みパルス最大印加回数等で再書き込み動作に入ることを制限する場合がある。書き込み最大数超過と判定されると、書き込みデータが許容値を超えた不一致ビット数を持つことになり、当該ページの書込みが正しく行われなかったことを、フェイル情報をステータスレジスタに書き込む動作を行い(ステップＳ２０)、動作フローを終了する。
【００５４】
なお以上の動作フローでは、便宜的に異なる動作として分離して示したものも、実際には同時並行的に行われる場合がある。例えば、“０”書き込み動作と“１”書き込みの動作は同時並行的に開始してもよい。さらに、“０”照合動作や“１”照合動作、あるいは完全照合動作も、その一部または全部を同時並行的に行っても良い。さらには一つのコマンドによる動作という本実施形態の本質を逸脱しなければ、フローの順序を入れ替えることも可能である。
【００５５】
一般にＲｅＲＡＭにおいては、そのデータ書換えには電流を必要とし、その際の発熱による書換えビット数の制約が発生する場合がある。この場合は、全ビットの書換えが完了した後に照合動作を行うのではなく、当該ページを複数に分割した単位の書込みを行った後に、当該単位の照合動作を行う一連の動作を分割した全ての単位に対して同じ動作を繰り返すことが望ましい。この場合は、本フローを一部変更もしくは同時並行的に行うことも可能である。
【００５６】
図６は、本実施形態を実現する必要最低限のページレジスタ回路１１２の構成を示している。ここでは、1ページが２ｋＢｙｔｅからなるものとし、１ページ分のキャッシュ“Ｃａｃｈｅ１”を持つ第１のキャッシュ回路１１２ａと、同じく１ページ分のキャッシュ“Ｃａｃｈｅ２”を持つ第２のキャッシュ回路１１２ｂとを有する。動作の必要に応じて、２ページ分より多いキャッシュを具備してもよい。
【００５７】
第１のキャッシュ回路１１２ａは、書き込み時、１ページの書き込みデータを保持する。第２のキャッシュ回路１１２ｂは、書き込み時、第１のキャッシュ回路１１２ａにロードされる書き込みデータに対応するアドレスの１ページの既書き込みデータを読み出して保持すると共に、書き込みデータと読み出しデータの各対応ビットデータ間で不一致があるか否かの比較照合を行なう論理判定機能を有する。
【００５８】
第１のキャッシュ回路１１２ａ（Ｃａｃｈｅ１）は、２ｋＢｙｔｅのうちの１Ｂｙｔｅのアドレスを指示するカラムアドレス信号ＣＯＬＡＤＤ、出力バッファからＣａｃｈｅ１方向へ書込みデータの転送を許可する信号ＴＲＩＯto１、Ｃａｃｈｅ１からＣａｃｈｅ２方向へのデータ転送を許可する信号ＴＲ１to２ＯＵＴ、逆にＣａｃｈｅ２からＣａｃｈｅ１方向へのデータ転送を許可する信号ＴＲ２to１、Ｃａｃｈｅ１から出力バッファ方向へデータ転送を許可する信号ＴＲ１toＩＯ等により制御される。
【００５９】
各ＢｙｔｅごとにＣａｃｈｅ１とＣａｃｈｅ２間のデータを転送するバスＣＢＵＳ0[7:0]〜ＣＢＵＳ2047[7:0]が設けられている。必要に応じて、Ｃａｃｈｅ１とＣａｃｈｅ２間のデータ転送バスは複数のバイトアドレスで共有する形態であっても良い。
【００６０】
第２のキャッシュ回路１１２ｂ（Ｃａｃｈｅ２）は、同様にカラムアドレス信号ＣＯＬＡＤＤ、Ｃａｃｈｅ１からＣａｃｈｅ２方向へのデータ転送を許可する信号ＴＲ１to２ＩＮ、Ｃａｃｈｅ２からＣａｃｈｅ１方向へのデータ転送を許可する信号ＴＲ２to１、Ｃａｃｈｅ２からセンスアンプ方向へ転送を許可する信号ＴＲ２toＣＯＲＥ、センスアンプ等からキャッシュＣａｃｈｅ２方向へ転送を許可する信号ＴＲＣＯＲＥto２、データの比較をするための許可信号ＣＯＭＰ<2:0>、前記比較結果をフェイルビットカウント回路１１１へのデータ転送を許可する許可信号ＢＩＴＣＯＵＮＴが入力される。
【００６１】
Ｃａｃｈｅ１とＣａｃｈｅ２間のデータを転送する前述のバスＣＢＵＳ0[7:0]〜ＣＢＵＳ2047[7:0]に加えて、Ｃａｃｈｅ２には更に、センスアンプ等間をデータ転送するバスＣＯＲＥＢＵＳ0[7:0]〜ＣＯＲＥＢＵＳ2047[7:0]および比較結果を転送するバスＮｆａｉｌが接続される。
【００６２】
本実施形態ではセンスアンプ等とＣａｃｈｅ２間の接続バスはＢｙｔｅを単位としているが、必要に応じて複数のバイトアドレスで共有する形態であっても良い。また比較結果の不一致ビット数を転送するバスＮｆａｉｌは全バイト共有の形態を例示したが、データ転送にかかる時間等を考慮して、必要に応じて分割して構成しても良い。
【００６３】
図７は第１群のキャッシュ， Ｃａｃｈｅ１の内部構成の代表例である。
【００６４】
データラッチ７３のノードが、データ保持ノードＣＡＣＨＥ１[7:0]である。図1および図６には示していないが、データの保持を指示する信号ＬＡＴによりデータラッチ７３が制御される。データ保持ノードにデータバスＭＤＩＯ[7:0]を接続するトランスファゲート７４が接続され、これにはトランスファゲート７４をバスに接続する信号として、カラムアドレスＣＯＬＡＤＤと転送信号ＴＲＳ１のＯＲ論理信号が与えられる。
【００６５】
カラムアドレス信号ＣＯＬＡＤＤは、入力および出力バッファを介してＩＯピンからバイト単位でデータを入力する場合、具体的には書込みデータを与える場合に活性化され、信号ＴＲＳ１はＣａｃｈｅ１からＣａｃｈｅ２に一括してデータ転送する場合等に活性化される。
【００６６】
入力バッファ、出力バッファに接続される側にはバスアービタ７１が構成され、信号ＴＲＩＯto１，ＴＲ１toＩＯの２信号で転送方向が決定される。Ｃａｃｈｅ２側にも同様にバスアービタ７２が接続され、信号ＴＲ１to２ＯＵＴおよびＴＲ２to１によりその転送方向が決定される。
【００６７】
これら２つのバスアービタ７１，７２は、もちろんデータが衝突しないように制御される。
【００６８】
図８は第２群のキャッシュ，Ｃａｃｈｅ２の内部構成の代表例である。
【００６９】
データラッチ８３のノードがデータ保持ノードＣＡＣＨＥ２[7:0]として設定され、データノードをデータバスに接続するための転送ゲート８４と、２つのバスアービタ８１，８２を備えることは、Ｃａｃｈｅ１と同様である。接続される信号もほぼ同様である。
【００７０】
Ｃａｃｈｅ２にはさらに、Ｃａｃｈｅ１の出力データとセンスアンプ等が出力する読み出し結果(ベリファイ結果)を用いて論理演算を行う回路部分、および比較結果を出力する部分が付加される。データ判定の論理演算を行う回路部分には、ＥＸＯＲ回路８５が設けられる。
【００７１】
ＥＸＯＲの判定結果であるＯＲゲートＧ１の出力は、ＣＯＭＰ[0]により活性化されるインバータ回路８６により内部ノードに接続され、最終的にはデータ保持ノードＣＡＣＨＥ2[7:0]に格納、保持される。或いは後述するインバータ回路８９を介してバスＮＦに出力することもできる。また、Ｃａｃｈｅ１のデータの反転データとセンスアンプ等が出力する読み出し結果(ベリファイ結果)のＡＮＤ演算の結果を出力するＡＮＤゲートＧ２の出力部には、ＣＯＭＰ[1]により活性化されるインバータ回路８７が接続され、Ｃａｃｈｅ１のデータとセンスアンプ等が出力する読み出し結果(ベリファイ結果)の反転のＡＮＤ演算結果を出力するＡＮＤゲートＧ３の出力部には、ＣＯＭＰ[2]により活性化されるインバータ回路８８が付加されている。
【００７２】
これらのＡＮＤ演算結果もＥＸＯＲの判定結果と同様、データ保持ノードＣＡＣＨＥ2[7:0]に格納、保持することもできる。
【００７３】
比較結果を出力する部分には、カラムアドレスＣＯＬＡＤＤと信号ＢＩＴＣＯＵＮＴにより活性化されるインバータ回路８９が配置されている。これにより、出力バスＮｆａｉｌには、データ保持ノードＣＡＣＨＥ2[7:0]に保持されたデータを出力することもできるし、論理演算を行う回路部分からの出力を接続することもできる。
【００７４】
図８のＥＸＯＲ回路８５は、図９に示すような論理演算を行う。ノードＣＡＣＨＥ１が“０”（すなわち“０”書込み）で、セルの読み出し結果（すなわちベリファイ読み出し結果）が“１”の場合、ＣＯＭＰ[0]＝ＣＯＭＰ[1]＝１，ＣＯＭＰ[2]＝０で“０”書込み不一致として認識する。
【００７５】
ノードＣＡＣＨＥ１が“１”（すなわち“１”書込み）で、セルの読み出し結果（すなわちベリファイ読み出し結果）が“０”の場合、ＣＯＭＰ[0]＝ＣＯＭＰ[2]＝１，ＣＯＭＰ[1]＝０で“１”書込み不一致として認識する。
【００７６】
ノードＣＡＣＨＥ１が“１”（すなわち“１”書込み）で、セルの読み出し結果（すなわちベリファイ読み出し結果）が“１”の場合、ＣＯＭＰ[0]＝ＣＯＭＰ[1]＝ＣＯＭＰ[2]＝０で“１”書込み完了、若しくは書き込み不要と認識する。
【００７７】
ノードＣＡＣＨＥ１が“０”（すなわち“０”書込み）で、セルの読み出し結果（すなわちベリファイ読み出し結果）が“０”の場合、ＣＯＭＰ[0]＝ＣＯＭＰ[1]＝ＣＯＭＰ[2]＝０で“０”書込み完了、若しくは書き込み不要と認識する。
【００７８】
つまり、ＣＯＭＰ[0]による演算結果はＥＸＯＲ演算であり、“０”または“１”のデータの書込み不一致で、インバータ８６が不一致信号＝１を出力する。ＣＯＭＰ[1]は“０”書込み不一致の場合、“１”であり、インバータ８７が不一致信号＝１を出力する。ＣＯＭＰ[2]は“１”書込み不一致の場合、“１”であり、インバータ８８が不一致信号を出力する。
【００７９】
この不一致信号はビット毎に比較結果として出力され、その不一致ビット信号はバスＮｆａｉｌを介してフェイルビットカウント回路に送られる。ここでは前述のようにバイトを単位としてカラムアドレスごとにシリアルに転送される例を示しているが、２Ｂｙｔｅ以上を並列に転送する構成であってもよい。またフェイルビットカウント回路が複数存在する構成であってもよい。
【００８０】
図１０は、フェイルビットカウント回路１１１の内部構成を示す。フェイルビットカウント回路１１１は、不一致ビットをカウントする公知のカウント回路９１と、そのカウント結果がバスＣｒｅｓｕｌｔを介して送られる保持回路９２と、コンパレータ９３とを有する。
【００８１】
保持回路９２には、カウント結果の累積を指示する信号ＡｃｃｕｍＣＬＫ、カウント結果の初期化を行うリセット信号Ｒｅｓｅｔが入力される。コンパレータ回路９３は、前記カウント結果の累積値Ａｒｅｓｕｌｔを、バスＮＦを送られる所定の許容値を比較する公知の比較回路である。
【００８２】
コンパレータ回路９３からの出力は、前記の演算結果ＣＯＭＰ[2:0]に対応して、ＥＸＯＲによる不一致ビット数を所定の許容値と比較した結果を示す信号HITLIMITALL、“０”書込み不一致ビット数を所定の許容値と比較した結果を示す信号HITLIMIT0、“１”書込み不一致ビット数を所定の許容不一致ビット数と比較した結果を示す信号HITLIMIT1の３つの異なる信号を出力する。さらに、後述するステータスリードコマンドの際に必要なステータス情報Ｓｔａｔｕｓを出力する場合もある。
【００８３】
本実施形態におけるフェイルビットカウント回路１１１の特徴的な構成は、シーケンス制御回路１０７内に設けられた所定の許容値を作成するセレクタ回路９４の構成とその制御である。即ちセレクタ回路９４は、前記ＥＸＯＲによる総不一致ビット数の参照値となる許容値FailAllLimit、“０”書込み不一致ビット数の参照値となる許容値Fail0Limit、“１”書込み不一致ビット数の参照値となる許容値Fail1Limitのいずれかを選択してバスＮＦに出力する。コンパレータ９３におけるこれらの許容値FaiAllLimit, Fail0Limit及びFail1Limitとの比較の結果として、前述の比較結果HITLIMITALL, HITLIMIT及び HITLIMIT1が得られる。
【００８４】
図１１から図１３に、本実施形態の書き込み制御信号のタイミング波形図を示す。図５に示すフローチャートに即してタイミング波形図を構成している。
【００８５】
ステップＳ１に相当する書込みデータロードにおいては、書込みアドレス入力を許可するコマンドとともに書込みアドレスを入力する。アドレスに引き続いて書き込みデータを例えばバイト単位で与える。このとき、入力バッファからＣａｃｈｅ１へデータ転送を許可する信号ＴＲＩＯto１が活性化され、これとともに各データに対応してカラムアドレス信号ＣＯＬＡＤＤで特定されたＣａｃｈｅ１にのみデータが取り込まれる。
【００８６】
書込みデータを入力した後は書込み実行コマンドとともにレディビジーピンＲＢｘが変化して書込みが開始されたことを記憶装置外部に通知する。
【００８７】
ステップＳ２に相当するステータス情報クリアでは、内部信号ＲＥＳＥＴが活性化される。この内部リセット信号ＲＥＳＥＴは、図１０の保持回路９２に入力される信号が代表的であるが、その他図示せぬステータス情報レジスタの初期化をも行う。
【００８８】
続いて図１２を参照して、引き続いて行われる既書込みデータリード(ステップＳ３)では、センスアンプ等からＣａｃｈｅ２へのデータ転送を許可する信号ＴＲＣＯＲＥto２が活性化される。
【００８９】
なおこの読み出し動作は必ずしもページを単位として一括で行われる必要はなく、数バイトを単位として複数回分割して行っても良い。その場合読み出し結果はＣａｃｈｅ２に順次格納される。
【００９０】
引き続いて行われる“０”照合動作(ステップＳ４)では、Ｃａｃｈｅ１に格納された書込みデータをＣａｃｈｅ２に転送格納することなく論理演算を行うため、信号ＴＲ１to２ＯＵＴを活性化させてバスＣＢＵＳ0[7:0]〜ＣＢＵＳ2047[7:0]に出力する。一方、先のＣａｃｈｅ２に格納された読み出し結果をバスＣＯＲＥＢＵＳ0[7:0]〜ＣＯＲＥＢＵＳ2047[7:0]に出力するため、信号ＴＲ２toＣＯＲＥを活性化する。
【００９１】
“０”照合動作では、ＣＯＭＰ[1]＝１により“０”書込み不一致情報のみの比較が行われ、その結果がカラムアドレスＣＯＬＡＤＤにしたがって順次バスＮｆａｉｌに出力される。このとき、シーケンス制御回路はあわせて“０”書込み不一致の許容不一致ビット数Fail0Limitの情報をバスＮＦに出力する。ＮＦと不一致ビットカウント値は順次判定され、ここでは不一致ビット数が許容値以下であったことを示す信号HITLIMIT0が不活性の状態で終了する。
【００９２】
次の“１”照合動作(ステップＳ５)では、ＣＯＭＰ[2]＝１により“１”書込みビットのみの比較が行われ、同様にバスＮｆａｉｌに出力される。バスＮＦには“１”書き込みの許容値信号Fail1Limitが出力されている。この場合も不一致ビット数が許容値以下であるので、信号HITLIMIT1は不活性のままである。
【００９３】
もちろんこのまま終了してもなんら問題ないが、データのより完全性を判定するため、“０”照合動作及び“１”照合動作に加えて、完全照合動作が行われる(ステップＳ７)。この場合は“０”書込み不一致ビット、“１”書込み不一致ビットの双方を計数するため、ＣＯＭＰ[0]＝１により、ＥＸＯＲによるトータル不一致ビットが計数される。図１２の例では、ここでも完全にデータが一致していることを示しており、“１”書込みも“０”書込みも全て一致していることを示している。
【００９４】
図１３は“０”，“１”照合動作のうち、一方が許容値を超えていることを検知し、追加書込みが行われる例をしめしている。具体的には、“１”照合動作において、“１”書込み不一致ビットが計数途中で許容値を超過し、信号HITLIMIT1が活性化される状態を示している。
【００９５】
要するに、“０”書込み不一致ビットは存在しないが、“１”書込み不一致ビットが存在し、“１”書込み動作が追加で必要であることを示している。よって次の動作として、“１”書込み（書き込み“１”）が行なわれる。“０”書込みは追加書込みが不要であるので、以降の書込みは省略することができる。この判断はシーケンス制御回路が行う。
【００９６】
本例ではあらかじめＣａｃｈｅ２に格納された読み出しデータとＣａｃｈｅ１のデータを比較する例について詳述したが、前述の当該ページを複数に分割した単位で書込みを行った後に、当該単位の照合動作を行う一連の動作を分割した全ての単位に対して繰り返し行う場合は、前記分割した単位ごとに比較し、順次累積する形態であってもかまわない。この場合は、Ｃａｃｈｅ２からセンスアンプ等へデータ転送を許可するＴＲ２toＣＯＲＥ信号を活性化せず、バスＣＯＲＥＢＵＳ0[7:0]〜ＣＯＲＥＢＵＳ2047[7:0]のデータを直接比較回路に引き込んでも良い。
【００９７】
また、比較結果は次の書込みに供する等の目的に応じてＣａｃｈｅ２に格納しても良い。
【００９８】
図１４は実施形態を簡略化して、ページが８ビットで構成されているものとして、そのデータを例にして不一致数を計数した例を示す。Ｃａｃｈｅ１の書き込みデータとベリファイ読み出しデータの比較について、“０”書込み不一致ビットの判定結果（ＣＯＭ[1]）は４ビット、“１”書込み不一致ビットの判定結果（ＣＯＭＰ[2]）は１ビット、ページ全体としての総不一致ビット数の判定結果（ＣＯＭＰ[0]）は５ビットと判定されている。
【００９９】
本実施形態のような抵抗変化型メモリセルを用いたメモリ装置においては、物理現象や時間的経過が異なる“１”書込みと“０”書込みが渾然一体となって行われる。そして例えば４ビットの不一致までを許容するとした場合、図１４の例では５ビットの不一致が検出されたため、追加書込みが必要と判定される。
【０１００】
この場合、もし“１”，“０”書込みデータ共に不一致があるとすれば、双方を行ないたい。しかし、例えば“１”書込みは時間的に短く、“０”書込みにかかる時間が長い場合でかつ“１”書込みの効率が“０”書込みのそれに比べてよい場合などは、“１”書込みのみを追加で行なうようにすることが好ましい。これにより、ページ全体としての不一致ビット数を減らすことができ、またシステム全体としての性能を向上させることができる。
【０１０１】
勿論、“１”書き込みデータの不一致ビット数と“０”書き込みデータの不一致ビット数が共に大きく、全体の許容値を満たすためには“１”，“０”書き込みを共に行なう場合も生じる。また、“１”書き込み不一致ビット数と“０”書き込み不一致ビット数がそれぞれの許容値より少ない場合には、いずれの書き込みも行なわないという選択が可能である。
【０１０２】
このように本実施形態にあっては、ページ全体での不一致ビット計数に加えて、それとは異なる許容値にて“０”書込み不一致ビットとさらに別の許容値にて“１”書込み不一致ビットを計数する手段を具備することで、システム全体としての汎用性を向上させることが可能である。
【０１０３】
さらに、この実施形態では、“１”書込みデータ不一致ビット数、“０”書込みデータ不一致ビット数および両者の加算結果を、書込み終了後にメモリ外部に出力することが可能となるように構成する。具体的には、図１において、フェイルビットカウント回路１１１から出力バッファ１０６ａへステータス信号ＳＴＡＴＵＳとして出力し、ＩＯピンへの出力を可能とする。計数結果を通知せずとも、許容値を超過したか否かの情報のみを出力するようにしてもよい。
【０１０４】
この情報を用いてＲｅＲＡＭを制御する制御装置(例えば、図１６に示すコントローラ２０２)が、そのデータ状態に最適なエラー訂正アルゴリズムを選択することが可能となる。これは不揮発性メモリ装置を用いたシステム全体としての汎用性向上に寄与する。
【０１０５】
図１５は本実施形態で実現できる、書込みステータス情報出力コマンドによる情報書式例である。８ビットの情報として取得できると仮定した場合、“１”→“０”書込み不良と“０”→“１”書込み不良と、これらの両者を合わせた書き込み不良の情報を、それぞれのビットから情報として取り出せるように構成する。
【０１０６】
また、書き込みデータと既書き込みデータとの間の不一致ビット数をそれぞれの書込みデータに応じた許容値と比較するように構成されている。不一致が全くない、許容値以下の不一致がある、許容値を超えた不一致がある、の３つの状態を、“１”データと“０”データ及びその合算データについてそれぞれ表現するため、少なくとも各２ビット計６ビットの情報として出力する。これにより、例えば図１６に示すようなメモリデバイス構成において、ＲｅＲＡＭチップ２０１を制御するコントローラ２０２がその書込み結果に応じて最適なエラー訂正アルゴリズムを選択するための情報を提供できる。
【０１０７】
また、２ビットの情報だけではなく、それぞれの不良数を出力したい場合はその情報量を所望のビット数だけ確保するような書式を実装すればよい。
【０１０８】
三次元的に積層された素子の抵抗変化をもって記憶する不揮発性メモリ装置においては、メモリセルアレイを配置した平面を投影した領域のＳｉ基板上に前記キャッシュ群を配置することがある。この場合は、複雑な制御を行えない等の回路配置制約があったが、本発明の実施形態によれば最小限の回路の追加に留めた上で、不揮発性メモリ装置の汎用性向上に寄与することができる。
【０１０９】
上記実施形態で説明したＲｅＲＡＭ内の書き込み制御機能の一部は、外部メモリコントローラに搭載することができる。
【０１１０】
例えば図１６は、ＲｅＲＡＭチップ２０１とメモリコントローラ２０２とを搭載したメモリカード２００の例を示している。コントローラ２０２は、メモリインタフェース２１０、ホストインタフェース２１１、ＭＰＵ２１２、バッファＲＡＭ、ハードウェアシーケンサ２１４等を有する。メモリインタフェース２１０が例えば読み出しデータのエラー検出と訂正を行なうＥＣＣ回路２１５を含む。
【０１１１】
上記実施形態において、例えば図１０で説明したフェイルビットカウント回路や、ページレジスタ１１２内のデータ不一致判定を行なう論理回路部分等の機能を、ＲｅＲＡＭチップ２０１内のコントローラではなく、外部メモリコントローラ２０２内に設けることもできる。逆に、メモリコントローラ２０２が持つＥＣＣ回路２１５をＲｅＲＡＭチップ内のものとして構成することもできる。
【０１１２】
以上、本発明を実施形態に沿って説明したが、この発明は実施形態に限定されるものではなく、発明の要旨を逸脱しない範囲でその実施方法を変更することが可能である。
【符号の説明】
【０１１３】
１０…半導体基板、１１…積層セルアレイ、１２…ビット線引き出し領域、１３…ワード線引き出し領域、７１，７２，８１，８２…バスアービタ、７３，８３…データラッチ、７４，８４…転送ゲート、８５…ＸＯＲ回路、８６−８９…入力データ、９１…カウンタ、９２…アキュムレータ、９３…コンパレータ、９４…セレクタ、１００…メモリコア、１０１，１０２…入力バッフア、１０３…コマンドバッファ、１０４…アドレスバッファ、１０５…データバッファ、１０６ａ，１０６ｂ…出力バッファ、１０７…シーケンス制御回路、１０８…アレイ制御回路、１０９…ポンプ制御回路、１１０…ページレジスタ制御回路、１１１…フェイルビットカウント回路、１１２…ページレジスタ、１１２ａ…第１のキャッシュ回路、１１２ｂ…第２のキャッシュ回路、２００…メモリカード、２０１…ＲｅＲＡＭチップ、２０２…メモリコントローラ、２１０…メモリインタフェース、２１１…ホストインタフェース、２１２…ＭＰＵ、２１３…バッフアＲＡＭ、２１４…ハードウェアシーケンサ、２１５…ＥＣＣ回路。
【図１】
2011060388.tif 000003
【図２】
2011060388.tif 000004
【図３】
2011060388.tif 000005
【図４】
2011060388.tif 000006
【図５】
2011060388.tif 000007
【図６】
2011060388.tif 000008
【図７】
2011060388.tif 000009
【図８】
2011060388.tif 000010
【図９】
2011060388.tif 000011
【図１０】
2011060388.tif 000012
【図１１】
2011060388.tif 000013
【図１２】
2011060388.tif 000014
【図１３】
2011060388.tif 000015
【図１４】
2011060388.tif 000016
【図１５】
2011060388.tif 000017
【図１６】
2011060388.tif 000018