(57)【要約】【課題】エラー検知・訂正の効率を向上させた不揮発性半導体記憶装置を提供する。【解決手段】不揮発性半導体記憶装置は、複数の第１及び第２の配線、並びにこれら第１及び第２の配線によって選択される複数ビットのデータを不揮発に記憶するメモリセルからなるメモリセルアレイと、複数の単位データからなる前記複数のメモリセルに対する書き込みデータを送信するデータバスと、前記データバスから入力される単位データを直接的に受信し、この単位データを保持する複数のデータラッチからなるカラム選択手段と、前記データラッチの活性／非活性を制御する制御手段とを備える。前記制御手段は、プログラム動作時、前記カラム制御手段に入力される単位データ毎に、この単位データを格納する所定の前記メモリセルに対応する前記データラッチを活性化させることを特徴とする。【選択図】図５
2011044200.tif 000002
【特許請求の範囲】
【請求項１】
複数の第１及び第２の配線、並びにこれら第１及び第２の配線によって選択される複数ビットのデータを不揮発に記憶するメモリセルからなるメモリセルアレイと、
複数の単位データからなる前記複数のメモリセルに対する書き込みデータを送信するデータバスと、
前記データバスから入力される単位データを直接的に受信し、この単位データを保持する複数のデータラッチからなるカラム選択手段と、
前記データラッチの活性／非活性を制御する制御手段と
を備え、
前記制御手段は、プログラム動作時、前記カラム制御手段に入力される単位データ毎に、この単位データを格納する所定の前記メモリセルに対応する前記データラッチを活性化させる
ことを特徴とする不揮発性半導体記憶装置。
【請求項２】
前記書き込みデータは、情報データと、前記情報データに基づいて生成される冗長データを組にしたＥＣＣフレームを複数含み、
前記ＥＣＣフレームは、複数の前記単位データからなり、
所定の前記ＥＣＣフレームに属するデータは、所定の前記第１の配線によって選択される複数のメモリセルの第１のビットで構成される第１の物理ページ、及び前記第１のビットと異なる第２のビットで構成される第２の物理ページに分散して格納される
ことを特徴とする請求項１記載の不揮発性半導体記憶装置。
【請求項３】
所定の前記ＥＣＣフレームの冗長データは、前記第１の物理ページに格納され、
他の前記ＥＣＣフレームの冗長データは、前記第２の物理ページに格納される
ことを特徴とする請求項１又は２記載の不揮発性半導体記憶装置。
【請求項４】
前記メモリセルは、フローティングゲートを有するトランジスタである
ことを特徴とする請求項１乃至３の何れか１項に記載の不揮発性半導体記憶装置。
【請求項５】
前記メモリセルは、電気的ストレスによって抵抗値が変化する抵抗変化素子、及びこの抵抗変化素子に直列接続された非オーミック素子からなる
ことを特徴とする請求項１乃至３の何れか１項に記載の不揮発性半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性半導体記憶装置に関し、特に、１つのメモリセルにつき複数ビットの情報を格納する不揮発性半導体記憶装置に関する。
【背景技術】
【０００２】
近年、不揮発性メモリでは、大容量化を実現するために１つのメモリセルに複数の閾値状態を持たせて複数ビットの情報を格納する多値化技術が標準的になってきた（例えば、特許文献１）。
【０００３】
しかし、この多値化技術によって、データを表現するために使用される閾値分布の差が小さくなる。このため、メモリセルの不良や過剰な書き込み電圧の印加などの要因でメモリセルの閾値分布が所望の位置とは別の位置に誤って書き込まれ、これによって誤読み出しが発生し易くなっている。
【０００４】
この問題に対し、データの信頼性の向上を図るべくＥＣＣ（Error Correcting Code）によるエラー検知・訂正機能を持たせた不揮発性メモリがある。このような不揮発性メモリの場合、ホストから与えられたデータに基づいてＥＣＣの冗長データの生成と、ＥＣＣフレームの構成が必要となる。その結果、システム処理の負担が増え、システム性能を十分に引き出せない点が問題となる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００１−９３２８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明は、エラー検知・訂正の効率を向上させた不揮発性半導体記憶装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一態様に係る不揮発性半導体記憶装置は、複数の第１及び第２の配線、並びにこれら第１及び第２の配線によって選択される複数ビットのデータを不揮発に記憶するメモリセルからなるメモリセルアレイと、複数の単位データからなる前記複数のメモリセルに対する書き込みデータを送信するデータバスと、前記データバスから入力される単位データを直接的に受信し、この単位データを保持する複数のデータラッチからなるカラム選択手段と、前記データラッチの活性／非活性を制御する制御手段とを備える。前記制御手段は、プログラム動作時、前記カラム制御手段に入力される単位データ毎に、この単位データを格納する所定の前記メモリセルに対応する前記データラッチを活性化させることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、エラー検知・訂正の効率を向上させた不揮発性半導体記憶装置を提供することができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の第１の実施形態に係る不揮発性メモリの機能ブロック構成を示す図である。
【図２】同不揮発性メモリのメモリセルアレイの構成を示す図である。
【図３】同不揮発性メモリにおける８値記憶時の閾値分布と各閾値分布のビット割付パターンとを示す図である。
【図４】図３に示すビット割付パターンに基づくプログラム動作を説明する図である。
【図５】本不揮発性メモリのセンスアンプ／データラッチ部の構成を示す図である。
【図６】同不揮発性メモリにおける論理ページ及び物理ページのデータフォーマットの関係を示す図である。
【図７】図６に示すデータフォーマットを実現する制御フローを示す図である。
【図８】図７に示す制御フローのステップ毎のデータラッチの状態を示す図である。
【図９】本発明の第２の実施形態に係る不揮発性メモリにおける論理ページ及び物理ページのデータフォーマットの関係を示す図である。
【図１０】同実施形態における図７に示す制御フローのステップ毎のデータラッチの状態を示す図である。
【図１１】本発明の第３の実施形態に係る不揮発性メモリのメモリセルアレイの構成を示す図である。
【図１２】同不揮発性メモリにおける８値記憶時の閾値分布と各閾値分布のビット割付パターンとを示す図である。
【図１３】第１の比較例に係る不揮発性メモリの論理ページ及び物理ページのデータフォーマットの関係を示す図である。
【図１４】第２の比較例に係る不揮発性メモリの論理ページ及び物理ページのデータフォーマットの関係を示す図である。
【図１５】図１４に示すデータフォーマットを実現する制御フローを示す図である。
【図１６】図１５に示す制御フローのステップ毎のデータラッチの状態を示す図である。
【図１７】第３の比較例に係る不揮発性メモリの論理ページ及び物理ページのデータフォーマットの関係を示す図である。
【発明を実施するための形態】
【００１０】
以下、図面を参照しながら、本発明に係る不揮発性半導体記憶装置の実施の形態について詳細に説明する。
【００１１】
［第１の実施形態］
本発明の第１の実施形態に係る不揮発性メモリは、ＮＡＮＤ型フラッシュメモリとなっている。
【００１２】
図１は、このＮＡＮＤ型フラッシュメモリの機能ブロック構成であり、図２はそのメモリセルアレイ１１０の構成を示している。メモリセルアレイ１１０は、図２に示すように、ＮＡＮＤセルユニット（ＮＡＮＤストリング）ＮＵを配列して構成される。
【００１３】
各ＮＡＮＤセルユニットＮＵは、直列接続された複数の（図の例では３２個の）メモリセルＭＣ０〜ＭＣ３１を有する。ＮＡＮＤセルユニットＮＵの一端は選択ゲートトランジスタＳ１を介して第１の配線であるビット線ＢＬｅ（又はＢＬｏ）に接続され、他端は選択ゲートトランジスタＳ２を介してセルソース線ＣＥＬＳＲＣに接続される。
【００１４】
メモリセルＭＣ０〜ＭＣ３１の制御ゲートはそれぞれ異なる第２の配線であるワード線ＷＬ０〜ＷＬ３１に接続され、選択ゲートトランジスタＳ１、Ｓ２のゲートはそれぞれ選択ゲート線ＳＧＤ、ＳＧＳに接続される。
【００１５】
ビット線ＢＬの一端にはカラム制御手段の一部であるセンスアンプ／データラッチ部１２０が配置される。図２の例では、隣接する偶数番ビット線ＢＬｅと奇数番ビット線ＢＬｏとが１つのセンスアンプＳＡを共有し、選択回路１４０ａによって選択的にセンスアンプＳＡに接続される。この場合、１つのワード線ＷＬと全偶数番ビット線ＢＬｅ（或いは全奇数番ビット線ＢＬｏ）によって選択されるメモリセルＭＣの集合が、同時書き込み／読み出し時のデータアクセス単位である「ページ」を構成する。
【００１６】
なお、以下の説明において、「ページ」とは、このデータアクセス単位としての「ページ」として用いる他、１つのメモリセルＭＣに多値データを記憶する場合における記憶データの階層、すなわちプログラムの段階を示す場合にも用いる。この場合の「ページ」をを「物理ページ」、あるいは、Ｌ（Lower）ページ、Ｍ（Middle）ページ、Ｕ（Upper）ページ等と呼ぶこともある。また、外部から入力される情報データであり、１つの以下に説明するＥＣＣフレームの対象となる所定サイズの情報データを示す場合にも用い、この場合の「ページ」を「論理ページ」、あるいは、１ｓｔページ、２ｎｄページ、３ｒｄページ等と呼ぶこともある。
【００１７】
ワード線ＷＬ方向に配列されるＮＡＮＤセルユニットＮＵの集合は、データ消去の基本単位となるブロックを構成して、ビット線ＢＬの方向に複数のブロックＢＬＫ（ＢＬＫ０、ＢＬＫ１、・・・、ＢＬＫｎ−１）が配列される。ワード線ＷＬ及び選択ゲート線ＳＧＤ、ＳＧＳを選択駆動するためにロウデコーダ１３０が配置されている。
【００１８】
読み出し時、センスアンプ／データラッチ部１２０に読み出される１ページの読み出しデータは、カラム制御手段の一部であるカラムデコーダ１４０によってカラム単位で選択されてデータバス１７０及びＩ／Ｏバッファ１５０を介して外部に出力される。
【００１９】
書き込み時、Ｉ／Ｏポートから入力される書き込みデータは、Ｉ／Ｏバッファ１５０及びデータバス１７０を介してセンスアンプ／データラッチ部１２０にロードされる。この書き込みデータが物理ページにして３ページ分ロードされた後、メモリセルＭＣに対するプログラムが実行される。
【００２０】
外部から入力されるアドレスは、アドレスレジスタ１６０を介して、ロウデコーダ１３０及びカラムデコーダ１４０に転送される。外部から入力されるコマンドは、制御手段である状態制御回路１８０においてデコードされる。
【００２１】
状態制御回路１８０は、このコマンド及び外部タイミング制御信号（チップイネーブル信号ＣＥｎ、書き込みイネーブル信号ＷＥｎ、読み出しイネーブル信号ＲＥｎ、アドレスラッチイネーブル信号ＡＬＥ、コマンドラッチイネーブル信号ＣＬＥ等）に従って、書き込み及び消去のシーケンス制御や読み出し制御を行う。
【００２２】
本不揮発性メモリは、動作モードに応じて必要な電圧を生成するための内部電圧発生回路２１０を備える。この内部電圧発生回路２１０は、状態制御回路１８０によって制御される。また、ＲＯＭヒューズ領域１１０ａとパワーオン検出回路２２０とを備える。ＲＯＭヒューズ領域１１０ａは、プログラム電圧初期値の他、ウェハテストにより得られる各種の電圧、タイミングの調整データ（初期設定データ）を記憶する領域となる。これらの調整データは、パワーオン検出回路２２０によって検知される電源投入のタイミングで、パラメータレジスタ２００にセットされ、以後の各動作制御に利用される。
【００２３】
図４は、本実施形態に係る不揮発性メモリにおける８値（３ビット）記憶時の閾値分布と各閾値分布のビット割付パターンとを示す図である。
【００２４】
図３に示すように、閾値分布は、閾値電圧が最も低い閾値レベルＥＲ（メモリセルＭＣの消去状態）から、閾値電圧が最も高い閾値レベルＧまで、８つの閾値レベルに分かれている。これら閾値レベルＥＲ、Ａ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、Ｇは、それぞれ、２進数のデータ“１１１”、“０１１”、“００１”、“１０１”、“１００”、“０００”、“０１０”、“１１０”に対応している。なお、このメモリセルＭＣに保持される３ビットのデータは、上位ビットからそれぞれ、Ｕ（UPPER）ページ、Ｍ（MIDDLE）ページ、Ｌ（LOWER）ページをそれぞれ構成するビットに対応している。
【００２５】
続いて、メモリセルＭＣのプログラム動作について説明する。
【００２６】
図４は、図３に示すビット割り付けに基づくプログラム動作時の閾値分布の変化を示す図である。
【００２７】
図示のように、プログラム動作は、Ｌページ、Ｍページ、Ｕページの順に行われる。
【００２８】
Ｌページのプログラムは、消去状態の閾値レベルＨのメモリセルＭＣに対して、書き込みデータ“０”、“１”を与える。書き込みデータが“０”の場合、閾値電圧を閾値レベルＩまで上昇させ、書き込みデータが“１”の場合、閾値電圧を維持させる。書き込みデータ“０”の閾値レベルＩを決めるのは、その分布下限値に設定されたベリファイ電圧Ｖｉである。これによって、Ｌページの“０”、“１”がプログラムされる。
【００２９】
Ｍページのプログラムは、消去状態の閾値レベルＨ（＝Ｊ）のメモリセルＭＣに対する選択的な“０”のプログラム（閾値レベルＫへのプログラム）と、閾値レベルＩに対する選択的な“０”のプログラム（閾値レベルＬへのプログラム）及び“１”のプログラム（閾値レベルＭへのプログラム）とからなる。ここで注意すべきは、図４の場合、“０”が閾値電圧を変動させる書き込みデータで、“１”が非書き込みデータであるとは限らないという点である。この例のように、データが“１”の場合にも、閾値を大きく移動させるプログラムを行う場合がある。この３種類のＭページのプログラムは、プログラム電圧印加動作は同時であるが、ベリファイ動作が異なる条件で行われる。即ち、ベリファイ電圧Ｖｋ、Ｖｌ、Ｖｍを用いて閾値レベルＫ、Ｌ、Ｍを確認するベリファイ動作が異なるタイミングでなされる。
【００３０】
Ｕページのプログラムは、閾値レベルＪのメモリセルＭＣに対する選択的な“０”のプログラム（閾値レベルＡへのプログラム）、閾値レベルＫのメモリセルＭＣに対する選択的な“０”のプログラム（閾値レベルＢへのプログラム）或いは“１”のプログラム（閾値レベルＣへのプログラム）、閾値レベルＬのメモリセルＭＣに対する選択的な“１”のプログラム（閾値レベルＤへのプログラム）或いは“０”のプログラム（閾値レベルＥへのプログラム）、閾値レベルＭのメモリセルＭＣに対する選択的な“０”のプログラム（閾値レベルＦへのプログラム）或いは“１”のプログラム（閾値レベルＧへのプログラム）として行われる。このＵページのプログラムも、プログラム電圧印加動作は同時であり、ベリファイ電圧が異なる条件、即ちベリファイ電圧Ｖａ〜Ｖｇを用いたベリファイ動作が行われる。
【００３１】
以上のように、１つのメモリセルＭＣに複数ビットを記憶させる場合、各閾値分布が狭小になるため、各メモリセルＭＣのプログラム特性によっては正しい閾値分布とならない可能性もある。そのため、データ読み出し時にＥＣＣによるエラー検知・訂正を行う。この場合、ＮＡＮＤ型フラッシュメモリには、ホストから入力される情報データの他、ＥＣＣの冗長データを保持するための領域を持つ必要がある。これに伴い、データのアクセスは、１ページ分（例えば、８ＫＢ）のデータと、この冗長データとからなるＥＣＣフレーム毎に行うことになる。
【００３２】
続いて、外部から入力される情報データが、メモリセルアレイ１１０上にどのようなフォーマットで記憶されるかについて説明する。
【００３３】
本実施形態の場合について説明する前に、いくつかの比較例について説明する。
【００３４】
図１３は、第１の比較例に係るＮＡＮＤ型フラッシュメモリにおける論理ページ及び物理ページのデータフォーマットの関係を示す図である。
【００３５】
ホストから入力される情報データは、所定のサイズからなる論理ページ毎に取り扱われる。図１３の場合、論理ページは、データＡからなる１ｓｔページ、データＢからなる２ｎｄページ、データＣからなる３ｒｄページの３つのページがあり、それぞれサイズは８ＫＢとなっている。
【００３６】
物理ページは、１つのワード線ＷＬに接続された所定数のメモリセルＭＣからなるＵページ、Ｍページ、Ｌページの３つのページがあり、それぞれのページは、複数の区画ＳＣに分けられている。この区画ＳＣの数は任意であるが、ここでは説明の便宜上、それぞれのページは、９つの区画ＳＣ０〜ＳＣ８に分けられているものとする。また、以下の説明において、Ｕページ、Ｍページ、及びＬページのそれぞれの区画ＳＣｉ（ｉ＝０〜８）を＜Ｕｉ＞、＜Ｍｉ＞、及び＜Ｌｉ＞と表現する。
【００３７】
本比較例の場合、論理ページ毎に、本来のデータとなる情報データと、この情報データに基づいて算出されたＥＣＣの冗長データとによって構成されるＥＣＣフレームが生成される。具体的には、１ｓｔページの場合、８ＫＢのデータＡから８つの情報データＡ０〜Ａ７と、データＡから算出された冗長データＡ８とによって構成さえるＥＣＣフレーム＜１＞が生成される。同様に、２ｎｄページから、情報データＢ０〜Ｂ７と、冗長データＢ８とによって構成されるＥＣＣフレーム＜２＞、３ｒｄページから、データＣ０〜Ｃ７と、冗長データＣ８とによって構成されるＥＣＣフレーム＜３＞がそれぞれ生成される。ここで、データ転送の単位であるＡ０〜Ｃ８等を「単位データ」と呼ぶ。
【００３８】
この生成されたＥＣＣフレーム＜１＞、＜２＞、及び＜３＞は、それぞれ、Ｌページ、Ｍページ、及びＵページにそのまま格納される。より具体的には、例えば、ＥＣＣフレーム＜１＞のデータＡ０〜Ａ８は、区画＜Ｌ０〜Ｌ８＞に格納される。
【００３９】
図１４は、第２の比較例における論理ページ及び物理ページのデータフォーマットの関係を示す図である。
【００４０】
図１４の場合、論理ページ毎にＥＣＣフレームが生成される点に関しては、第１の比較例と同様であるが、ＥＣＣフレームがＵページ、Ｍページ、及びＬページに分散して格納される点が異なる。具体的には、ＥＣＣフレーム＜１＞、＜２＞、及び＜３＞がそれぞれ区画＜Ｌ０〜Ｌ２、Ｍ０〜Ｍ２、Ｕ０〜Ｕ２＞、＜Ｌ３〜Ｌ５、Ｍ３〜Ｍ５、Ｕ３〜Ｕ５＞、及び＜Ｌ６〜Ｌ８、Ｍ６〜Ｍ８、Ｕ６〜Ｕ８＞に格納される。
【００４１】
ここで、図３から、データの誤書き込みは、閾値レベルＡ及びＢ間、閾値レベルＢ及びＣ間等、隣接する閾値レベル間で生じやすい一方、離れた閾値レベル間、例えば閾値レベルＥＲ及びＤ間等の場合、誤書き込みが生ずることは稀である。このことから、図３に示すビット割付の場合、Ｕページの誤書き込みが他のページの誤書き込みに比べて生じやすいことが分かる。また、１つのメモリセルＭＣだけを考えた場合、Ｕページ、Ｍページ、及びＬページのうち、２以上の論理ページのデータに誤りが生じることは稀であるが、例えば、メモリセルＭＣのＵページのみに誤りがあるだけでも、このようなメモリセルＭＣが複数ある場合、Ｕページ全体では、複数の誤書き込みデータが存在することになる。このことから、図１３に示す第１の比較例のように、ＥＣＣフレームを１つの論理ページにそのまま格納するよりも、図１４に示す第２の比較例のように、Ｕページ、Ｍページ、及びＬページに分散して格納する方が、ＥＣＣのエラー検知・訂正の可能性を向上させることができる。
【００４２】
続いて、図１４に示すデータフォーマットを実現する方法について説明する。
【００４３】
図１５は、図１４に示すデータフォーマットを実現する制御フローであり、図１６は、この制御フローにおけるデータラッチの状態を示す図である。ここで、図１５の制御フローは、一般的なセンスアンプ／データラッチ部を想定したものである。具体的には、センスアンプ／データラッチ部は、Ｕページ、Ｍページ、及びＬページに対する書き込みデータをそれぞれ保持する３つのデータラッチＤＬＵ、ＤＬＭ、及びＤＬＬを備える。このうち、データラッチＤＬＵのみデータバス１７０から書き込みデータを受信することができ、その他のデータラッチＤＬＭ及びＤＬＵには、データラッチＤＬＵを介して書き込みデータが転送される仕組みとなっている。
【００４４】
まず、ステップＳ５０１において、システム上あるいはコントローラチップのキャッシュメモリ上で、１ｓｔページのデータＡのＥＣＣ符号化を行う。これにより情報データＡ０〜Ａ７、及び冗長データＡ８が生成される。
【００４５】
続いて、ステップＳ５０２において、システム上あるいはコントローラチップのキャッシュメモリ上で、２ｎｄページのデータＢのＥＣＣ符号化を行う。これにより情報データＢ０〜Ｂ７、及び冗長データＢ８が生成される。
【００４６】
続いて、ステップＳ５０３において、システム上あるいはコントローラチップのキャッシュメモリ上で、３ｒｄページのデータＣのＥＣＣ符号化を行う。これにより情報データＣ０〜Ｃ７、及び冗長データＣ８が生成される。
【００４７】
続いて、ステップＳ５０４において、システム上あるいはコントローラチップのキャッシュメモリ上で、ステップＳ５０１〜Ｓ５０３で生成された情報データ及び冗長データを、図１４に示すデータフォーマットに適合するように並び替える。これにより、データＡ０〜Ａ２、Ｂ０〜Ｂ２、及びＣ０〜Ｃ２からなるＬページのデータ、データＡ３〜Ａ５、Ｂ３〜Ｂ５、及びＣ３〜Ｃ５からなるＭページのデータ、データＡ６〜Ａ８、Ｂ６〜Ｂ８、及びＣ６〜Ｃ８からなるＵページのデータがそれぞれ用意される。
【００４８】
続いて、ステップＳ５０５において、ステップＳ５０４によって並び替えられたデータのうちＬページに格納されるデータＡ０〜Ａ２、Ｂ０〜Ｂ２、Ｃ０〜Ｃ２が、センスアンプ／データラッチ部に転送され、データラッチＤＬＵに保持される。この時のデータラッチＤＬＵ、ＤＬＭ、及びＤＬＬの状態を図１６（ａ）に示す。その後、ステップＳ５０６において、データラッチＤＬＵに格納されたＬページのデータがデータラッチＤＬＬに転送される。この時のデータラッチＤＬＵ、ＤＬＭ、及びＤＬＬの状態を図１６（ｂ）に示す。
【００４９】
続いて、ステップＳ５０７において、ステップＳ５０４によって並び替えられたデータのうちＭページに格納されるデータＡ３〜Ａ５、Ｂ３〜Ｂ５、Ｃ３〜Ｃ５が、センスアンプ／データラッチ部に転送され、データラッチＤＬＵに保持される。この時のデータラッチＤＬＵ、ＤＬＭ、及びＤＬＬの状態を図１６（ｃ）に示す。その後、ステップＳ５０８において、データラッチＤＬＵに格納されたＭページのデータがデータラッチＤＬＭに転送される。この時のデータラッチＤＬＵ、ＤＬＭ、及びＤＬＬの状態を図１６（ｄ）に示す。
【００５０】
続いて、ステップＳ５０９において、ステップＳ５０４によって並び替えられたデータのうちＵページに格納されるデータＡ６〜Ａ８、Ｂ６〜Ｂ８、Ｃ６〜Ｃ８が、センスアンプ／データラッチ部に転送され、データラッチＤＬＵに保持される。この時のデータラッチＤＬＵ、ＤＬＭ、及びＤＬＬの状態を図１６（ｅ）に示す。
【００５１】
最後に。ステップＳ５１０において、データラッチＤＬＵ、ＤＬＭ、及びＤＬＬに保持されているデータがそれぞれ、Ｕページ、Ｍページ、及びＬページにプログラムされる。
【００５２】
以上により、図１４に示すデータフォーマットを実現することができる。
【００５３】
なお、第２の比較例の場合、ＥＣＣの冗長データＡ８、Ｂ８、及びＣ８を全てＵページに格納しているが、冗長データは、いずれの物理ページにおいても良い。例えば、図１７に示す第３の比較例の場合、データＡの冗長データＡ８、データＢの冗長データＢ５、及びデータＣの冗長データＣ２を、それぞれ区画＜Ｕ２＞、＜Ｍ５＞、及び＜Ｌ８＞に格納している。このようなデータフォーマットであっても、システム上あるいはコントローラチップのキャッシュメモリ上での並び替えシーケンスが変更されるだけで、図１５に示す制御フローによって実現することができる。
【００５４】
以上、第２及び第３の比較例の場合、ＥＣＣフレームが物理ページであるＵページ、Ｍページ、Ｌページに分散されているため、高効率で信頼性の高いＥＣＣエラー検知・訂正が可能となる。
【００５５】
しかし、図１５に示す制御フローによれば、システム上あるいはコントローラのキャッシュメモリ上でのデータ並び替え処理を要するため、システムの負荷が増大し、システム全体の処理能力が十分に得られない点が問題となる。
【００５６】
そこで、本実施形態では、このようなシステム上でのデータ並び替え処理を省くことで、システム全体の処理能力の向上を図る。
【００５７】
図５は、本発明の第１の実施形態に係るセンスアンプ／データラッチ部１２０の構成を示す図である。このセンスアンプ／データラッチ部１２０は、１バイト単位でのデータ入出力をするＩ／Ｏインタフェースに対応させたものである。
【００５８】
センスアンプ／データラッチ部１２０は、メモリセルアレイ１１０のビット線ＢＬの一端に設けられた８個のセンスアンプ１２１ａ〜１２１ｈと、外部とメモリセルアレイ１１０とのデータ転送や、その際に必要な演算を行う演算器１２４と、データラッチ１２５（ＤＬＵ）、１２６（ＤＬＭ）、及び１２７（ＤＬＬ）とを備える。複数のセンスアンプ１２１と演算器１２４との間のデータ送受信は、センスアンプバスＳＡＢＵＳを介して行われる。センスアンプ１２１ａ〜１２１ｈとセンスアンプバスＳＡＢＵＳとの間には、それぞれカラム選択信号ＣＯＬ０〜ＣＯＬ７で制御されるスイッチ素子１２２ａ〜１２２ｈが設けられている。一方、演算器１２４とセンスアンプバスＳＡＢＵＳとの間には、第２スイッチ信号ＳＷ２で制御されるスイッチ素子１２３が設けられている。また、演算器１２４、データラッチ１２５〜１２７、及びデータバスＤＱＢＵＳ（１７０）間のデータ送受信は、ローカルバスＬＢＵＳを介して行われる。３つのデータラッチ１２５〜１２７とローカルバスＬＢＵＳとは、スイッチ素子１２８によって接続される。データバスＤＱＢＵＳとローカルバスＬＢＵＳとの間には、第１スイッチ信号ＳＷ１で制御されるスイッチ素子が設けられている。
【００５９】
データラッチ１２５は、１バイト分、つまり８個のビットラッチ回路１２５ａ〜１２５ｈ（１２５ｃ〜１２５ｈは図示せず）を備える。ビットラッチ回路１２５ａは、２個のインバータＩＶ１２１及びＩＶ１２２の入出力を相互接続したフリップフロップ回路と、このフリップフロップ回路及びローカルデータバスＬＢＵＳを接続するスイッチ素子であるトランスファゲートＴＲ１２１とを備える。また、データラッチ１２５を活性化させるデータラッチ信号ＤＬＵＬＡＴと、ビットラッチ回路１２５ａを活性化させるビット選択信号ＴＩＥＲ０とを入力とするＡＮＤゲートＧ１２１を備える。ビットラッチ回路１２５ａは、このＡＮＤゲートＧ１２１の出力によって制御される。つまり、データラッチ信号ＤＬＵＬＡＴが活性化され、かつ、ビット選択信号ＴＩＥＲ０が活性化された場合にだけ、ラッチ回路１２５ａが活性化され、ローカルデータバスＬＢＵＳに接続されることになる。
【００６０】
データラッチ１２５の他のビットラッチ回路１２５ｂ〜１２５ｈも同様の構成となっている。また、データラッチ１２６及び１２７は、データラッチ１２５と同様の構成となっている。
【００６１】
演算器１２４には、複雑な処理が要求されるため、サイズが大きくなる。そのため、図５の場合、１つの演算器１２４を複数のカラム（ビット線ＢＬ）で共有する構成となっている。この場合、センスアンプ１２１と演算器１２４との間の８ビットのデータ転送の際には、カラム選択信号ＣＯＬ０〜ＣＯＬ７をシーケンシャルに活性化させ、時分割で行う必要がある。なお、チップ面積等の問題がない場合、演算器１２４を複数設けても良い。この場合、センスアンプ１２１と演算器とのデータ転送時間を短縮することができる。
【００６２】
次に、このセンスアンプ／データラッチ部１２０を備える本実施形態におけるＥＣＣフレームのプログラム動作について説明する。ここでは、図６に示す論理ページ及び物理ページにおけるデータフォーマットを例に説明する。
【００６３】
このデータフォーマットも、論理ページ毎にＥＣＣフレームを構成する点、ＥＣＣフレームをＵページ、Ｍページ、及びＬページに分散して格納させる点については、第２及び第３の比較例と同様である。但し、各ＥＣＣフレーム内の物理ページにおけるデータの配置が異なる。具体的には、ＥＣＣフレーム＜１＞は、情報データＡ０〜Ａ７、及び冗長データＡ８によって構成され、各データＡ０、Ａ１、・・・、Ａ８は、区画＜Ｌ０、Ｍ０、Ｕ０、Ｌ１、Ｍ１、Ｕ１、Ｌ２、Ｍ２、Ｕ２＞に格納される。ＥＣＣフレーム＜２＞は、情報データＢ０〜Ｂ７、及び冗長データＢ８によって構成され、各データＢ０、・・・、Ｂ８は、区画＜Ｌ３、Ｍ３、Ｕ３、Ｌ４、Ｍ４、Ｕ４、Ｌ５、Ｍ５、Ｕ５＞に格納される。ＥＣＣフレーム＜３＞は、情報データＣ０〜Ｃ７、及び冗長データＣ８によって構成され、各データＣ０、・・・、Ｃ８は、区画＜Ｌ６、Ｍ６、Ｕ６、Ｌ７、Ｍ７、Ｕ７、Ｌ８、Ｍ８、Ｕ８＞に格納される。
【００６４】
上述した図５に示すセンスアンプ／データラッチ部１２０を用いた場合、図６に示すデータフォーマットは、図７に示す制御フローによって実現することができる。図８は、図７に示す制御フローにおけるデータラッチＤＬＵ、ＤＬＭ、及びＤＬＬの状態を示す図である。
【００６５】
最初に、ステップＳ１０１において、１ｓｔページのデータＡがセンスアンプ／データラッチ部１２０に情報データＡ０〜Ａ７として入力される。一方、ステップＳ１０２において、システム上あるいはコントローラチップのキャッシュメモリ上で冗長データＡ８が生成され、この冗長データＡ８が情報データＡ７に続けて入力される。これを受けたセンスアンプ／データラッチ部１２０では、データＡ０、Ａ１、Ａ２、・・・、Ａ６、Ａ７、Ａ８の入力に合わせて与えられるデータラッチ信号ＤＬＵＬＡＴ、ＤＬＭＬＡＴ、及びＤＬＬＬＡＴによって、データラッチＤＬＵ、ＤＬＭ、ＤＬＬ、・・・、ＤＬＵ、ＤＬＭ、ＤＬＬの順に活性化される。ステップＳ１０１及びＳ１０２後のデータラッチＤＬＵ、ＤＬＭ、及びＤＬＬの状態をそれぞれ図８（ａ）及び（ｂ）に示す。
【００６６】
続いて、ステップＳ１０３において、２ｓｔページのデータＢがセンスアンプ／データラッチ部１２０に情報データＢ０〜Ｂ７として入力される。一方、ステップＳ１０４において、システム上あるいはコントローラチップのキャッシュメモリ上で冗長データＢ８が生成され、この冗長データＢ８が情報データＢ７に続けて入力される。これを受けたセンスアンプ／データラッチ部１２０では、データＢ０、Ｂ１、Ｂ２、・・・、Ｂ６、Ｂ７、Ｂ８の入力に合わせて与えられるデータラッチ信号ＤＬＵＬＡＴ、ＤＬＭＬＡＴ、及びＤＬＬＬＡＴによって、データラッチＤＬＵ、ＤＬＭ、ＤＬＬ、・・・、ＤＬＵ、ＤＬＭ、ＤＬＬの順に活性化される。ステップＳ１０４後のデータラッチＤＬＬ、ＤＬＭ、及びＤＬＬの状態を図８（ｃ）に示す。
【００６７】
続いて、ステップＳ１０５において、３ｒｄページのデータＣがセンスアンプ／データラッチ部１２０に情報データＣ０〜Ｃ７として入力される。一方、ステップＳ１０６において、システム上あるいはコントローラチップのキャッシュメモリ上で冗長データＣ８が生成され、この冗長データＣ８が情報データＣ７に続けて入力される。これを受けたセンスアンプ／データラッチ部１２０では、データＣ０、Ｃ１、Ｃ２、・・・、Ｃ６、Ｃ７、Ｃ８の入力に合わせて与えられるデータラッチ信号ＤＬＵＬＡＴ、ＤＬＭＬＡＴ、及びＤＬＬＬＡＴによって、データラッチＤＬＵ、ＤＬＭ、ＤＬＬ、・・・、ＤＬＵ、ＤＬＭ、ＤＬＬの順に活性化される。ステップＳ１０６後のデータラッチＤＬＬ、ＤＬＭ、及びＤＬＬの状態を図８（ｄ）に示す。
【００６８】
続いて、ステップＳ１０７において、メモリセルアレイ１１０に対するプログラムコマンドが実行され、最後に、ステップＳ１０８において、このプログラムが完了するまで待つ。
【００６９】
本実施形態の場合、プログラム動作時に生じるシステム上あるいはコントローラチップのキャッシュメモリ上でのデータ並び替え処理が不要で、書き込みデータを直接ＮＡＮＤ型フラッシュメモリに入力することができる。この点から、第２及び第３の比較例と同等のＥＣＣによるエラー検知・訂正の性能を持つことができると同時に、第２及び第３の比較例に比べ、システム処理が軽減され、システム性能の向上させた不揮発性メモリを提供することができる。
【００７０】
［第２の実施形態］
図９は、本発明の第２の実施形態に係る不揮発性メモリにおける論理ページ及び物理ページのデータフォーマットの関係を示す図である。
【００７１】
図９の場合、図６に示すデータフォーマットと同様、３つのＥＣＣフレーム＜１＞〜＜３＞がある。
【００７２】
ＥＣＣフレーム＜１＞は、１ｓｔページの８ＫＢのデータＡから生成された情報データＡ０〜Ａ７、及び冗長データＡ８によって構成される。これらデータＡ０、・・・、Ａ８は、区画＜Ｌ０、Ｌ１、Ｌ２、Ｍ０、Ｍ１、Ｍ２、Ｕ０、Ｕ１、Ｕ２＞に格納されている。ＥＣＣフレーム＜２＞は、２ｎｄページの８ＫＢのデータＢから生成された情報データＢ０〜Ｂ７、及び冗長データＢ８によって構成される。これらデータＢ０、・・・、Ｂ８は、区画＜Ｌ３、Ｌ４、Ｌ５、Ｍ３、Ｍ４、Ｍ５、Ｕ３、Ｕ４、Ｕ５＞に格納されている。ＥＣＣフレーム＜３＞は、３ｒｄページの８ＫＢのデータＣから生成された情報データＣ０〜Ｃ７、及び冗長データＣ８によって構成される。これらデータＣ０、・・・、Ｃ８は、区画＜Ｌ６、Ｌ７、Ｌ８、Ｍ６、Ｍ７、Ｍ８、Ｕ６、Ｕ７、Ｕ８＞に格納されている。
【００７３】
図９に示すデータフォーマットを実現する制御フローは、図７と同様であるため省略する。図１０は、この制御フローのステップ毎のデータラッチＤＬＵ、ＤＬＭ、及びＤＬＬの状態を示す図である。
【００７４】
最初に、ステップＳ１０１において、１ｓｔページのデータＡがセンスアンプ／データラッチ部１２０に情報データＡ０〜Ａ７として入力されると共に、ステップＳ１０２において、データＡから冗長データＡ８が生成された上で、この冗長データＡ８も情報データＡ７に続けて入力される。これを受けたセンスアンプ／データラッチ部１２０では、データＡ０〜Ａ２、Ａ３〜Ａ５、Ａ６〜Ａ８の入力に合わせて与えられるデータラッチ信号ＤＬＵＬＡＴ、ＤＬＭＬＡＴ、及びＤＬＬＬＡＴによって、データラッチＤＬＬ、ＤＬＭ、ＤＬＵの順に活性化される。ステップＳ１０１及びＳ１０２後のデータラッチＤＬＵ、ＤＬＭ、及びＤＬＵの状態をそれぞれ図８（ａ）及び（ｂ）に示す。
【００７５】
続いて、ステップＳ１０３において、２ｎｄページのデータＢがセンスアンプ／データラッチ部１２０に情報データＢ０〜Ｂ７として入力されると共に、ステップＳ１０４において、データＢから冗長データＢ８が生成された上で、この冗長データＢ８も情報データＢ７に続けて入力される。これを受けたセンスアンプ／データラッチ部１２０では、データＢ０〜Ｂ２、Ｂ３〜Ｂ５、Ｂ６〜Ｂ８の入力に合わせて与えられるデータラッチ信号ＤＬＵＬＡＴ、ＤＬＭＬＡＴ、及びＤＬＬＬＡＴによって、データラッチＤＬＬ、ＤＬＭ、ＤＬＵの順に活性化される。ステップＳ１０４後のデータラッチＤＬＵ、ＤＬＭ、及びＤＬＬの状態を図８（ｃ）に示す。
【００７６】
続いて、ステップＳ１０５において、３ｒｄページのデータＣがセンスアンプ／データラッチ部１２０に情報データＣ０〜Ｃ７として入力されると共に、ステップＳ１０５において、データＣから冗長データＣ８が生成された上で、この冗長データＣ８も情報データＣ７に続けて入力される。これを受けたセンスアンプ／データラッチ部１２０では、データＣ０〜Ｃ２、Ｃ３〜Ｃ５、Ｃ６〜Ｃ８の入力に合わせて与えられるデータラッチ信号ＤＬＵＬＡＴ、ＤＬＭＬＡＴ、及びＤＬＬＬＡＴによって、データラッチＤＬＬ、ＤＬＭ、ＤＬＬの順に活性化される。ステップＳ１０６後のデータラッチＤＬＵ、ＤＬＭ、及びＤＬＬの状態を図８（ｄ）に示す。
【００７７】
続いて、ステップＳ１０７において、メモリセルアレイ１１０に対するプログラムコマンドが実行され、最後に、ステップＳ１０８において、このプログラムが完了するまで待つ。
【００７８】
第１の実施形態の場合、１区画毎にデータラッチＤＬＬ、ＤＬＭ、ＤＬＵの順で、アクセスされていたが、本実施形態の場合、３区画毎にデータラッチＤＬＬ、ＤＬＭ、ＤＬＵの順でアクセスされている。このようなアクセス順序であっても、データラッチ信号ＤＬＵＬＡＴ、ＤＬＭＬＡＴ、及びＤＬＬＬＡＴと、ビット選択信号ＴＩＥＲ０〜ＴＩＥＲ７の活性化タイミングを変更するだけで、図７の制御フローによって図９に示すデータフォーマットを実現することができる。
【００７９】
なお、本実施形態と同様に、データラッチ信号ＤＬＵＬＡＴ、ＤＬＭＬＡＴ、及びＤＬＬＬＡＴと、ビット選択信号ＴＩＥＲ０〜ＴＩＥＲ７の活性化タイミングを変更するだけで、第１及び第２の比較例に係るデータフォーマットをはじめ、あらゆるデータフォーマットを効率的に実現することができる。
【００８０】
［第３の実施形態］
本発明の第３の実施形態は、可変抵抗素子を用いた不揮発性メモリについての実施形態となる。
【００８１】
図１１は、本実施形態に係る不揮発性メモリの一部を示す図である。
【００８２】
本実施形態の不揮発性メモリは、複数の第１の配線であるワード線ＷＬ、これら複数のワード線ＷＬに交差する複数の第２の配線であるビット線ＢＬ、これらワード線ＷＬ及びビット線ＢＬの各交差部に接続された複数のメモリセルＭＣからなるメモリセルアレイ３１０を備える。また、ワード線ＷＬの一端にワード線ＷＬを選択するロウデコーダ３３０と、ビット線ＢＬの一端にビット線ＢＬを選択するカラム制御手段であるカラムデコーダ３４０とを備える。このカラムデコーダ３４０は、第１の実施形態に係るＮＡＮＤ型フラッシュメモリのセンスアンプ／データラッチ部１２０及びカラムデコーダ１４０と同様の機能を有し、センスアンプＳＡとデータラッチＤＬについても図５に示す回路構成と同様となる。
【００８３】
メモリセルＭＣは、電気的ストレスを与えることで抵抗値が変化する可変抵抗素子と、非オーミック素子であるダイオードとの直列接続からなる。本実施形態の場合、この可変抵抗素子の抵抗状態の閾値分布に複数ビットのデータを割り付けることで、多値データを記憶することができる。
【００８４】
図１２は、可変抵抗素子としてＲｅＲＡＭを使用した場合であり、３ビットのデータを記憶する場合の抵抗状態の閾値分布とビット割付の関係を示す一例である。ＲｅＲＡＭの場合、電気的安定状態にある高抵抗状態を消去状態とし、この消去状態の閾値レベルＥＲから、最も低抵抗状態にある閾値レベルＧに対し、それぞれ、２進数のデータ“１１１”、“０１１”、“００１”、“１０１”、“１００”、“０００”、“０１０”、“１１０”が割り付けられている。
【００８５】
以上のような構成の不揮発性メモリの場合であっても、同一のワード線ＷＬに接続されたメモリセルＭＣの記憶データの階層をＬページ、Ｍページ、Ｕページとし、ホストから与えられるデータを論理ページとすると、論理ページ及び物理ページのデータフォーマットは第１の実施形態と同様に取り扱うことができる。そのため、本不揮発性メモリにおいても、第１の実施形態と同様の制御フローによって、効率的なＥＣＣフレームの取り扱いを行うことができる。
【００８６】
以上から、本実施形態の場合であっても、第１の実施形態と同様の効果を得ることができる。
【００８７】
［その他］
以上、発明の実施の形態を説明したが、本発明はこれらに限定されるものではなく、発明の趣旨を逸脱しない範囲内において、種々の変更、追加等が可能である。
【００８８】
上記実施形態は、いずれも１つのメモリセルに３ビットデータを保持する場合について説明したが、２ビットデータ、あるいは４ビット以上のデータであっても、カラム毎のデータラッチの数をビット数と同数だけ用意するだけで、上記実施形態と同様の効果を得ることができる。
【符号の説明】
【００８９】
１１０、３１０・・・メモリセルアレイ、１１０ａ・・・ＲＯＭヒューズ領域、１２０・・・センスアンプ／データラッチ部、１２１・・・センスアンプ、１２２、１２３、１２８・・・スイッチ素子、１２４・・・演算器、１２５、１２６、１２７・・・データラッチ、１２５ａ、１２５ｂ・・・ビットラッチ回路、１３０、３３０・・・ロウデコータ、１４０、３４０・・・カラムデコーダ、１４０ａ・・・選択回路、１５０・・・Ｉ／Ｏバッファ、１６０・・・アドレスレジスタ、１７０・・・データバス、１８０・・・状態制御回路、２００・・・パラメータレジスタ、２１０・・・内部電圧発生回路、２２０・・・パワーオン検出回路。
【図１】
2011044200.tif 000003
【図２】
2011044200.tif 000004
【図３】
2011044200.tif 000005
【図４】
2011044200.tif 000006
【図５】
2011044200.tif 000007
【図６】
2011044200.tif 000008
【図７】
2011044200.tif 000009
【図８】
2011044200.tif 000010
【図９】
2011044200.tif 000011
【図１０】
2011044200.tif 000012
【図１１】
2011044200.tif 000013
【図１２】
2011044200.tif 000014
【図１３】
2011044200.tif 000015
【図１４】
2011044200.tif 000016
【図１５】
2011044200.tif 000017
【図１６】
2011044200.tif 000018
【図１７】
2011044200.tif 000019