特許第5940704号(P5940704)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ウィンボンド エレクトロニクス コーポレーションの特許一覧

<>
  • 特許5940704-半導体記憶装置 図000002
  • 特許5940704-半導体記憶装置 図000003
  • 特許5940704-半導体記憶装置 図000004
  • 特許5940704-半導体記憶装置 図000005
  • 特許5940704-半導体記憶装置 図000006
  • 特許5940704-半導体記憶装置 図000007
  • 特許5940704-半導体記憶装置 図000008
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】5940704
(24)【登録日】2016年5月27日
(45)【発行日】2016年6月29日
(54)【発明の名称】半導体記憶装置
(51)【国際特許分類】
   G11C 16/02 20060101AFI20160616BHJP
   G11C 16/04 20060101ALI20160616BHJP
   G06F 12/16 20060101ALI20160616BHJP
【FI】
   G11C17/00 611D
   G11C17/00 611G
   G11C17/00 622E
   G06F12/16 310A
【請求項の数】10
【全頁数】13
(21)【出願番号】特願2015-64388(P2015-64388)
(22)【出願日】2015年3月26日
【審査請求日】2015年3月26日
(73)【特許権者】
【識別番号】511062254
【氏名又は名称】ウィンボンド エレクトロニクス コーポレーション
(74)【代理人】
【識別番号】100098497
【弁理士】
【氏名又は名称】片寄 恭三
(72)【発明者】
【氏名】須藤 直昭
【審査官】 塚田 肇
(56)【参考文献】
【文献】 特開2012−133835(JP,A)
【文献】 特開2012−195047(JP,A)
【文献】 特開2010−277584(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G11C 16/02
G06F 12/16
G11C 16/04
(57)【特許請求の範囲】
【請求項1】
メモリアレイと、
前記メモリアレイから読み出したデータを保持し、または前記メモリアレイにプログラムするデータを保持する保持手段と、
データを入力する入力手段と、
前記入力手段からのデータが第1の特定のビット列または第2の特定のビット列である場合には、前記入力手段からのデータを前記保持手段へ提供し、前記入力手段からのデータが第1の特定のビット列および第2の特定のビット列のいずれでもない場合には、前記入力手段からのデータをスクランブルし、スクランブルしたデータを前記保持手段へ提供する符号化手段とを含み、
前記第1の特定のビット列は、前記メモリアレイを消去したときのデータに等しいものであり、第2の特定のビット列は、前記第1のスクランブル手段によりスクランブルされた場合に前記第1の特定のビット列になるものである、半導体記憶装置。
【請求項2】
半導体記憶装置はさらにデータを出力する出力手段と、
前記保持手段からのデータが前記第1の特定のビット列または前記第2の特定のビット列である場合には、前記保持手段からのデータを前記出力手段へ提供し、前記保持手段からのデータが前記第1の特定のビット列および第2の特定のビット列のいずれでもない場合には、前記保持手段からのデータをデスクランブルし、デスクランブルしたデータを前記出力手段へ提供する復号化手段とを含む、請求項1に記載の半導体記憶装置。
【請求項3】
前記符号化手段は、前記入力手段からのデータを受け取り、当該データに前記第1の特定のビット列が含まれるか否かを検出する第1の検出器と、前記入力手段からのデータを受け取り、当該データをスクランブルするスクランブル回路と、前記スクランブル回路によりスクランブルされたデータを受け取り、当該データに前記第2の特定のビット列が含まれるか否かを検出する第2の検出器と、前記第1の検出器および前記第2の検出器の検出結果に基づき前記入力手段からのデータまたは前記スクランブル回路によりスクランブルされたデータを選択部を含む、請求項1に記載の半導体記憶装置。
【請求項4】
前記復号化手段は、前記保持手段からのデータを受け取り、当該データに前記第1の特定のビット列が含まれているか否かを検出する第1の検出器と、前記保持手段からのデータを受け取り、当該データをデスクランブルするデスクランブル回路と、前記デスクランブル回路によりデスクランブルされたデータを受け取り、当該データに前記第2の特定のビット列が含まれるか否かを検出する第2の検出器と、前記第1の検出器および前記第2の検出器の検出結果に基づき、前記保持手段からのデータまたは前記デスクランブル回路によりデスクランブルされたデータを選択する選択部を含む、請求項2に記載の半導体記憶装置。
【請求項5】
前記第1の特定のビット列は、論理1からなるビット列である、請求項1ないし4いずれか1つに記載の半導体記憶装置。
【請求項6】
NAND型のメモリアレイを有する半導体記憶装置のデータ処理方法であって、
外部からプログラムすべきデータを入力するステップと、
前記入力されたデータが第1の特定のビット列または第2の特定のビット列である場合には、前記入力されたデータを前記メモリアレイへ提供し、前記入力されたデータが第1の特定のビット列および第2の特定のビット列のいずれでもない場合には、前記入力されたデータをスクランブルし、スクランブルしたデータを前記メモリアレイへ提供する符号化ステップとを含み、
前記第1の特定のビット列は、前記メモリアレイを消去したときのデータに等しいものであり、第2の特定のビット列は、前記スクランブルされた場合に前記第1の特定のビット列になるものである、データ処理方法。
【請求項7】
データ処理方法はさらに、
前記メモリアレイからデータを読み出すステップと、
読み出されたデータが前記第1の特定のビット列または前記第2の特定のビット列である場合には、前記読み出されたデータを出力手段へ提供し、前記読み出されたデータが前記第1の特定のビット列および第2の特定のビット列のいずれでもない場合には、前記読み出されたデータをデスクランブルし、デスクランブルしたデータを前記出力手段へ提供する復号化ステップとを含む、請求項6に記載のデータ処理方法。
【請求項8】
前記符号化ステップは、前記入力されたデータに前記第1の特定のビット列が含まれるか否かを検出する第1の検出ステップと、前記入力されたデータをスクランブルするスクランブルステップと、スクランブルステップによりスクランブルされたデータに前記第2の特定のビット列が含まれるか否かを検出する第2の検出ステップと、前記第1の検出ステップおよび前記第2の検出ステップの検出結果に基づき前記入力されたデータまたは前記スクランブルされたデータを選択する選択ステップ部を含む、請求項6に記載のデータ処理方法。
【請求項9】
前記復号化ステップは、前記メモリアレイから読み出されたデータに前記第1の特定のビット列が含まれているか否かを検出する第1の検出ステップと、前記読み出されたデータをデスクランブルするデスクランブルステップと、前記デスクランブルされたデータに前記第2の特定のビット列が含まれるか否かを検出する第2の検出ステップと、前記第1の検出ステップおよび前記第2の検出ステップの検出結果に基づき、前記読み出されたデータまたは前記デスクランブルされたデータを選択する選択ステップを含む、請求項7に記載のデータ処理方法。
【請求項10】
前記特定のビット列は、論理1からなるビット列である、請求項6ないし9いずれか1つに記載のデータ処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、NAND型フラッシュメモリ等の半導体記憶装置に関し、特にNAND型フラッシュメモリにおけるデータのスクランブル方法に関する。
【背景技術】
【0002】
NAND型フラッシュメモリは、複数のブロックから構成されたメモリアレイを有し、1つのブロックには、複数のメモリセルが直列に接続されたNANDストリングが形成される。典型的にデータの読出しやプログラムは、ページ単位で行われ、データの消去はブロック単位で行われる。
【0003】
特許文献1は、NAND型フラッシュメモリの動作信頼性を向上させるデータの書込み方法を開示している。この書込み方法は、ワード線のアドレスに基づきスクランブル方式を選択し、選択したスクランブル方式に従い書込むべきデータをスクランブルし、スクランブルされたデータを対応するページに書込むものである。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2008−198299号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
NAND型フラッシュメモリのメモリセルは、フローティングゲート(電荷蓄積層)とコントロールゲートとを備えたN型のMOS構造から構成される。フローティングゲートに電子が蓄積されると、メモリセルのしきい値が正方向にシフトし、この状態は、データ「0」である。他方、フローティングゲートから電子が放出されると、しきい値が負方向にシフトし、この状態は、データ「1」である。ブロックが一括消去されたとき、当該ブロック内のすべてのメモリセルは、データ「1」である。
【0006】
このようなフラッシュメモリにおいて、プログラム(書込み)や消去が繰り返されたとき、データに依存した信頼性の悪化が生じ得る。例えば、プログラムするとき、データ「0」の割合がデータ「1」よりも圧倒的に多いような場合、またはそれと反対にデータ「1」の割合がデータ「0」よりも圧倒的に多いような場合である。メモリセルの微細化、高集積化により、メモリセル間の距離が短くなり、隣接するメモリセルが容量的に結合され、相互に干渉し得る状況にある。1つのメモリセルを取り囲む周辺のメモリセルが全てデータ「0」であれば、中心のメモリセルには、周辺のメモリセルの電荷が影響して全てデータ「1」の場合に比べしきい値が高くなる。さらに、データ「0」またはデータ「1」の偏在は、データを読み出すときのソースライン電圧の浮き電圧の相違によりセンスアンプの特性にも悪影響を及ぼしかねない。
【0007】
それ故、信頼性の観点からすると、データ「0」とデータ「1」の割合はおおよそ0.5であることが望ましい。これを実現する1つの方法に、データスクランブルスキームがある。つまり、プログラムすべきデータを、乱数を用いてスクランブルし、スクランブルしたデータをメモリアレイにプログラムする。スクランブルは、例えば、プログラムするアドレスをシーズに用いてアドレス毎に乱数を変えることが可能であり、これにより、メモリアレイの行方向および列方向において、データ「0」とデータ「1」をランダムに配置させることができる。また、読出し動作では、メモリアレイから読み出されたデータをスクランブルしたときの乱数によりデスクランブルすることで、スクランブルされたデータは元のデータに変換される。
【0008】
NAND型フラッシュメモリでは、データを消去した後のメモリセルは、データ「1」であり、消去後の読出し動作では、例えば、「FFh」のデータが出力されなければならない。このため、データスクランブルをNAND型フラッシュメモリに用いた場合には、消去後のデータがすべて「1」となるように、デスクランブルを禁止する必要がある。他方、確率的には非常に小さいが、データスクランブルによりプログラムされたデータがすべて「1」となることがある。このようなデータを読出す場合には、デスクランブルする必要がある。このような制約から、NAND型フラッシュメモリでは、メモリアレイの冗長領域等に、当該ページが消去された状態のものか、またはプログラムされた状態のものかを判定するためのフラグビットを設けている。フラグビットは、当該ページを含むブロックが消去されたとき、データ「1」であり、当該ページがプログラムされたとき、データ「0」に変更される。
【0009】
図1(A)は、プログラム動作時のフロー、図1(B)は、読出し動作時のフローである。先ず、プログラム動作では、外部のコントローラからプログラムコマンドが受け取られ(S10)、次いで、アドレスおよびプログラムすべきデータが受け取られる(S12)。受け取られたデータは、スクランブルされ(S14)、さらに選択されたページがプログラムされたことを示すようにフラグがデータ「1」から「0」に変更される(S16)。次に、スクランブルされたデータおよびフラグが選択されたページにプログラムされる(S18)。
【0010】
読出し動作では、外部のコントローラから読出しコマンドおよびアドレスが入力されると(S20)、メモリアレイの選択されたページからデータが読出され(S22)、次に、フラグの判定が行われる(S24)。フラグが「0」であれば、仮にすべてのデータが「1」であるにせよ、そのデータはプログラムされたデータであるから、読み出されたデータがデスクランブルされ(S26)、元のデータに変換されて出力される(S28)。一方、フラグが「1」であれば、読み出したデータは消去後のデータであるから、デスクランブル処理をすることなくそのままデータを出力する(S28)。
【0011】
このように従来のNAND型フラッシュメモリでは、データスクランブルスキームを実現するためには、消去されたデータかプログラムされたデータかを判別するためのフラグビットを格納するための記憶容量が必要となり、さらにはデータの読出し時にフラグビットを判定するために時間が余分にかかってしまうという課題がある。
【0012】
本発明は、このような従来の課題を解決し、消去後のデータがプログラムされたデータかを識別する識別情報を付加することなくデータスクランブルを行い、かつ信頼性を向上させる半導体記憶装置を提供することを目的とする。
【課題を解決するための手段】
【0013】
本発明の半導体記憶装置は、メモリアレイと、前記メモリアレイから読み出したデータを保持し、または前記メモリアレイにプログラムするデータを保持する保持手段と、データを入力する入力手段と、前記入力手段からのデータが第1の特定のビット列または第2の特定のビット列である場合には、前記入力手段からのデータを前記保持手段へ提供し、前記入力手段からのデータが第1の特定のビット列および第2の特定のビット列のいずれでもない場合には、前記入力手段からのデータをスクランブルし、スクランブルしたデータを前記保持手段へ提供する符号化手段とを含み、前記第1の特定のビット列は、前記メモリアレイを消去したときのデータに等しいものであり、第2の特定のビット列は、前記第1のスクランブル手段によりスクランブルされた場合に前記第1の特定のビット列になるものである。
【0014】
好ましくは半導体記憶装置はさらにデータを出力する出力手段と、前記保持手段からのデータが前記第1の特定のビット列または前記第2の特定のビット列である場合には、前記保持手段からのデータを前記出力手段へ提供し、前記保持手段からのデータが前記第1の特定のビット列および第2の特定のビット列のいずれでもない場合には、前記保持手段からのデータをデスクランブルし、デスクランブルしたデータを前記出力手段へ提供する復号化手段とを含む。好ましくは前記符号化手段は、前記入力手段からのデータを受け取り、当該データに前記第1の特定のビット列が含まれるか否かを検出する第1の検出器と、前記入力手段からのデータを受け取り、当該データをスクランブルするスクランブル回路と、前記スクランブル回路によりスクランブルされたデータを受け取り、当該データに前記第2の特定のビット列が含まれるか否かを検出する第2の検出器と、前記第1の検出器および前記第2の検出器の検出結果に基づき前記入力手段からのデータまたは前記スクランブル回路によりスクランブルされたデータを選択部を含む。好ましくは前記復号化手段は、前記保持手段からのデータを受け取り、当該データに前記第1の特定のビット列が含まれているか否かを検出する第1の検出器と、前記保持手段からのデータを受け取り、当該データをデスクランブルするデスクランブル回路と、前記デスクランブル回路によりデスクランブルされたデータを受け取り、当該データに前記第2の特定のビット列が含まれるか否かを検出する第2の検出器と、前記第1の検出器および前記第2の検出器の検出結果に基づき、前記保持手段からのデータまたは前記デスクランブル回路によりデスクランブルされたデータを選択する選択部を含む。例えば、前記第1の特定のビット列は、論理1からなるビット列である。
【0015】
本発明のデータ処理方法は、NAND型のメモリアレイを有する半導体記憶装置のものであって、外部からプログラムすべきデータを入力するステップと、前記入力されたデータが第1の特定のビット列または第2の特定のビット列である場合には、前記入力されたデータを前記メモリアレイへ提供し、前記入力されたデータが第1の特定のビット列および第2の特定のビット列のいずれでもない場合には、前記入力されたデータをスクランブルし、スクランブルしたデータを前記メモリアレイへ提供する符号化ステップとを含み、前記第1の特定のビット列は、前記メモリアレイを消去したときのデータに等しいものであり、第2の特定のビット列は、前記スクランブルされた場合に前記第1の特定のビット列になるものである。
【0016】
好ましくはデータ処理方法はさらに、前記メモリアレイからデータを読み出すステップと、読み出されたデータが前記第1の特定のビット列または前記第2の特定のビット列である場合には、前記読み出されたデータを出力手段へ提供し、前記読み出されたデータが前記第1の特定のビット列および第2の特定のビット列のいずれでもない場合には、前記読み出されたデータをデスクランブルし、デスクランブルしたデータを前記出力手段へ提供する復号化ステップとを含む。好ましくは前記符号化ステップは、前記入力されたデータに前記第1の特定のビット列が含まれるか否かを検出する第1の検出ステップと、前記入力されたデータをスクランブルするスクランブルステップと、スクランブルステップによりスクランブルされたデータに前記第2の特定のビット列が含まれるか否かを検出する第2の検出ステップと、前記第1の検出ステップおよび前記第2の検出ステップの検出結果に基づき前記入力されたデータまたは前記スクランブルされたデータを選択する選択ステップ部を含む。好ましくは前記復号化ステップは、前記メモリアレイから読み出されたデータに前記第1の特定のビット列が含まれているか否かを検出する第1の検出ステップと、前記読み出されたデータをデスクランブルするデスクランブルステップと、前記デスクランブルされたデータに前記第2の特定のビット列が含まれるか否かを検出する第2の検出ステップと、前記第1の検出ステップおよび前記第2の検出ステップの検出結果に基づき、前記読み出されたデータまたは前記デスクランブルされたデータを選択する選択ステップを含む。例えば前記特定のビット列は、論理1からなるビット列である。
【発明の効果】
【0017】
本発明によれば、メモリアレイを消去したときと等しい第1の特定のビット列、およびスクランブルしたときに第1の特定のビット列となる第2の特定のビット列のいずれかに該当する場合には、入力されたデータをスクランブルせずにメモリアレイにプログラムし、メモリアレイから読出されたデータが第1の特定のビット列または第2の特定のビット列に該当する場合には、読み出されたデータをデスクランブルせずに出力するようにしたので、消去したときのデータかプログラムされたデータかを識別するためのフラグ等の識別情報を付加する必要がなくなる。このため、メモリアレイの記憶容量を他の資源に有効に活用することができ、かつデータスクランブルを実施したときのデータの読出し時間を短縮することができる。
【図面の簡単な説明】
【0018】
図1】データスクランブルを行うNAND型フラッシュメモリの動作フローであり、図1(A)は、プログラム動作時のフロー、図1(B)は、読出し動作時のフローである。
図2】本発明の実施例に係るNAND型フラッシュメモリの全体の概略構成を示す図である。
図3】本発明の実施例に係るメモリセルアレイのNANDストリングの構成を示す回路図である。
図4】本発明の実施例に係るフラッシュメモリのプログラム時に各部に印加される電圧の一例を示す図である。
図5】本発明の実施例によるスクランブル部の内部構成を示す図である。
図6図6(A)は、書込みエンコーダのスクランブルの判定基準、図6(B)は、読出しデコーダのデスクランブルの判定基準を示す。
図7図7(A)は、本実施例の書込みエンコーダの内部構成を示し、図7(B)は、本実施例による読出しデコーダの内部構成を示す。
【発明を実施するための形態】
【0019】
以下、本発明の実施の形態について図面を参照して詳細に説明する。なお、図面は、分かり易くするために各部を強調して示してあり、実際のデバイスのスケールとは同一ではないことに留意すべきである。
【0020】
本発明の実施例に係るフラッシュメモリの典型的な構成を図2に示す。但し、ここに示すフラッシュメモリの構成は例示であり、本発明は、必ずしもこのような構成に限定されるものではない。本実施例のフラッシュメモリ10は、複数のメモリセルが行列状に配列されたメモリアレイ100と、外部入出力端子I/Oに接続され入出力データを保持する入出力バッファ110と、メモリアレイ100にプログラムするデータのスクランブルやそこから読み出されたデータのデスクランブルを行うスクランブル部120と、入出力バッファ110からのアドレスデータを受け取るアドレスレジスタ130と、入出力バッファ110からのコマンドデータや外部からの制御信号を受け取り、各部を制御する制御部140と、アドレスレジスタ130から行アドレス情報Axを受け取り、行アドレス情報Axをデコードし、デコード結果に基づきブロックの選択およびワード線の選択等を行うワード線選択回路150と、ワード線選択回路150によって選択されたページから読み出されたデータを保持したり、選択されたページへの書込みデータを保持するページバッファ/センス回路160と、アドレスレジスタ130から列アドレス情報Ayを受け取り、列アドレス情報Ayをデコードし、当該デコード結果に基づきページバッファ/センス回路160内のデータの選択等を行う列選択回路170と、データの読出し、プログラムおよび消去等のために必要な種々の電圧(書込み電圧Vpgm、パス電圧Vpass、読出しパス電圧Vread、消去電圧Versなど)を生成する内部電圧発生回路180とを含んで構成される。
【0021】
メモリアレイ100は、列方向に配置されたm個のメモリブロックBLK(0)、BLK(1)、・・・、BLK(m-1)を有する。ブロックBLK(0)に近接して、ページバッファ/センス回路160が配置される。このような構成以外にも、ページバッファ/センス回路160は、ブロックの他方の端部、あるいは両側の端部に配置されるものであってもよい。
【0022】
1つのメモリブロックには、図3に示すように、複数のメモリセルを直列に接続したNANDストリングユニットNUが複数形成され、1つのメモリブロック内にn+1個のストリングユニットNUが行方向に配列されている。セルユニットNUは、直列に接続された複数のメモリセルMCi(i=0、1、・・・、31)と、一方の端部であるメモリセルMC31のドレイン側に接続された選択トランジスタTDと、他方の端部であるメモリセルMC0のソース側に接続された選択トランジスタTSとを含み、選択トランジスタTDのドレインは、対応する1つのビット線GBLに接続され、選択トランジスタTSのソースは、共通のソース線SLに接続される。
【0023】
メモリセルMCiのコントロールゲートは、ワード線WLiに接続され、選択トランジスタTD、TSのゲートは、ワード線WLと並行する選択ゲート線SGD、SGSに接続される。ワード線選択回路150は、行アドレスAxまたは変換されたアドレスに基づきブロックを選択するとき、ブロックの選択ゲート信号SGS、SGDを介して選択トランジスタTD、TSを選択的に駆動する。図3は、典型的なセルユニットの構成を示しているが、セルユニットは、NANDストリング内に1つまたは複数のダミーセルを包含するものであってもよい。
【0024】
メモリセルは、典型的に、Pウエル内に形成されたN型の拡散領域であるソース/ドレインと、ソース/ドレイン間のチャンネル上に形成されたトンネル酸化膜と、トンネル酸化膜上に形成されたフローティングゲート(電荷蓄積層)と、フローティングゲート上に誘電体膜を介して形成されたコントロールゲートとを含むMOS構造を有する。フローティングゲートに電荷が蓄積されていないとき、つまりデータ「1」が書込まれているとき、しきい値は負状態にあり、メモリセルは、ノーマリオンである。フローティングゲートに電子が蓄積されたとき、つまりデータ「0」が書込まれているとき、しきい値は正にシフトし、メモリセルは、ノーマリオフである。但し、メモリセルは、1ビット(2値データ)を記憶するSLCタイプでもよいし、多ビットを記憶するMLCタイプであってもよい。
【0025】
図4は、フラッシュメモリの各動作時に印加されるバイアス電圧の一例を示したテーブルである。読出し動作では、ビット線に或る正の電圧を印加し、選択されたワード線に或る電圧(例えば0V)を印加し、非選択ワード線にパス電圧Vpass(例えば4.5V)を印加し、選択ゲート線SGD、SGSに正の電圧(例えば4.5V)を印加し、ビット線選択トランジスタTD、ソース線選択トランジスタTSをオンし、共通ソース線に0Vを印加する。プログラム(書込み)動作では、選択されたワード線に高電圧のプログラム電圧Vprog(15〜20V)を印加し、非選択のワード線に中間電位(例えば10V)を印加し、ビット線選択トランジスタTDをオンさせ、ソース線選択トランジスタTSをオフさせ、「0」または「1」のデータに応じた電位をビット線GBLに供給する。消去動作では、ブロック内の選択されたワード線に0Vを印加し、Pウエルに高電圧(例えば20V)を印加し、フローティングゲートの電子を基板に引き抜くことで、ブロック単位でデータを消去する。
【0026】
次に、本実施例のデータスクランブル処理の詳細について説明する。スクランブル部120は、図5に示すように、入出力バッファ110とページバッファ160との間に配置され、プログラム動作時、書込みエンコーダ200が入出力バッファ110から入力されたデータをスクランブルし、スクランブルされたデータをページバッファ160へ提供し、読出し動作時、読出しデコーダ220がページバッファ160から読み出されたデータをデスクランブルし、デスクランブルされたデータを入出力バッファ110へ提供する。通常、スクランブル処理は、入力されたデータに対してアドレスなどから生成した乱数シードとXOR演算を行う。この場合、スクランブル処理されたデータに対して同一の乱数シードとのXOR演算を再度行うことにより、元の入力データ、すなわちデスクランブルされたデータを得ることができる。このため、スクランブル処理を行う書込みエンコーダ200と、デスクランブル処理を行う読み出しデコーダ220は、同一の回路から構成され、それぞれスクランブル処理およびデスクランブル処理をすることが可能である。
【0027】
NAND型フラッシュメモリにおいてデータのスクランブルを実施する場合、消去後の読出しでは、データ「1」が出力されなければならない。従って、消去後のデータを読み出すとき、データのスクランブルは禁止される。他方、スクランブルされたデータがすべて「1」であるデータがプログラムされたとき、このデータは、消去後のデータと違って、スクランブルされた状態でメモリセルアレイに格納されており、読み出し時にはデスクランブルされなければならないため、消去後のデータと区別されなければならない。従来は、両者のデータを区別するためにフラグビットを用意したが、本実施例では、フラグビットを用いず、プログラムされるデータまたは読み出されるデータの構成に基づきスクランブルを制御する。
【0028】
書込みエンコーダ200は、上記したように、入出力バッファ110から入力されたプログラムすべきデータのスクランブルを行い、読出しデコーダ220は、ページバッファ160に保持された読出しデータのデスクランブルを行う。図6(A)は、書込みエンコーダ200のスクランブルの判定基準を示している。先ず、入出力バッファ110からの入力データがすべて「1」であるとき(ここでは、便宜上、FFhとする)、入力データ「FFh」のスクランブルを行わず、入力データ「FFh」がそのままメモリアレイにプログラムされる。入力データが「XXh」である場合にも、入力データ「XXh」のスクランブルを行わず、入力データ「XXh」がそのままメモリアレイにプログラムされる。ここで、「XXh」は、スクランブルされたときに「FFh」になるデータである。入力データが、「FFh」および「XXh」のいずれでもないとき(これを、総称として「YYh」で表している)、入力データ「YYh」をスクランブルし、スクランブルされたデータ「ZZh」がメモリアレイにプログラムされる。
【0029】
図6(B)は、読出しデコーダ220のデスクランブルの判定基準を示している。ページバッファ160に読み出されたデータが「FFh」のとき、デスクランブルは行わず、そのまま「FFh」が入出力バッファ110へ出力される。読み出されたデータが「XXh」の場合にも、デスクランブルすることなく、そのまま「XXh」が入出力バッファ110へ出力される。読み出されたデータが「YYh」であるとき、読み出されたデータ「YYh」をデスクランブルし、デスクランブルされたデータ「ZZh」が入出力バッファ110へ出力される。
【0030】
図7(A)は、書込みエンコーダ200の構成例を示し、図7(B)は、読出しデコーダ220の構成例を示す。書込みエンコーダ200は、入力データを受け取り、当該入力データが「FFh」に該当するか否かを検出する第1の検出器202と、入力データを受け取り、当該入力データをスクランブルするスクランブル回路204と、スクランブル回路204から出力されたスクランブルされたデータを受け取り、当該スクランブルされたデータが「FFh」に該当するか否かを検出する第2の検出器206と、第1の検出器202および第2の検出器206の検出結果を受け取り、その論理和を出力するオア回路208と、入出力バッファ110からの入力データおよびスクランブル回路204から出力されるデータを受け取り、オア回路208の出力に基づきいずれかのデータを選択するマルチプレクサ210とを有する。マルチプレクサ210は、オア回路208の出力がHレベルのとき、すなわち、第1の検出器202または第2の検出器206のいずれかにより「FFh」が検出されたとき、入力バッファ110からの入力データを選択し、選択したデータをページバッファ160へ出力し、オア回路208の出力がLレベルのとき、スクランブル回路204によりスクランブルされたデータを選択し、選択したデータをページバッファ160へ出力する。
【0031】
読出しデコーダ220は、書込みエンコーダ200と同様の処理を行う。すなわち、読出しデコーダ220は、ページバッファ160からの読出しデータを受け取り、当該読出しデータが「FFh」に該当するか否かを検出する第1の検出器222と、読出しデータを受け取り、当該読出しデータをデスクランブルするデスクランブル回路224と、デスクランブル回路224から出力されたデスクランブルされたデータを受け取り、当該デスクランブルされたデータが「FFh」に該当するか否かを検出する第2の検出器226と、第1の検出器222および第2の検出器226の検出結果を受け取り、その論理和を出力するオア回路228と、ページバッファ160の読出しデータおよびデスクランブル回路224から出力されるデータを受け取り、オア回路228の出力に基づきいずれかのデータを選択するマルチプレクサ230とを有する。マルチプレクサ230は、オア回路228の出力がHレベルのとき、すなわち、第1の検出器222または第2の検出器226のいずれかにより「FFh」が検出されたとき、読出しデータを選択し、選択したデータを入出力バッファ110へ出力し、オア回路228の出力がLレベルのとき、デスクランブル回路224によりデスクランブルされたデータを選択し、選択したデータを入出力バッファ110へ出力する。
【0032】
本実施例では、プログラムすべきデータが「FFh」であるとき、「FFh」は、スクランブルされずにメモリアレイにプログラムされる。この場合、プログラムすべきデータ「FFh」は、メモリアレイ内において消去後のデータと同じになるが、読出しデータが「FFh」である場合には、「FFh」がそのまま出力されるので、消去後のデータおよび「FFh」のプログラムすべきデータの読出しには何ら問題が生じない。
【0033】
また、プログラムすべきデータが「XXh」であるとき、「XXh」は、スクランブルされずにメモリアレイにプログラムされる。つまり、メモリアレイには、消去後のデータと同じ構成のデータがプログラムされないので、消去後のデータから区別される。例えば、あるブロックが消去されたとき、そのブロック内の各ページのメモリセルはすべてデータ「1」である。消去されたブロック内のある選択されたページに、プログラムデータ「XXh」がプログラムされるとき、「XXh」がそのまま選択されたページにプログラムされることになる。もし、「XXh」がスクランブルされた場合には、「FFh」がプログラムされることになり、そうすると、プログラムすべきデータ「FFh」をプログラムしたときのデータと区別がつかなくなる。
【0034】
このように本実施例では、データが「FFh」、「XXh」の場合にスクランブルをスキップすることで、従来のようにページ毎にフラグビットを書込み必要がなくなり、かつデータの読み出し時にはフラグを判定する必要がなくなるため、メモリアレイの記憶容量を他の資源に有効に利用することができ、データの読出し速度を向上させることができる。また、本実施例では、「FFh」、「XXh」のデータについてスクランブルを実施しないことになるが、これらのデータの発生頻度は非常に少なく、全体の信頼性に及ぼす影響は限定的である。
【0035】
次に、本発明の他の実施例について説明する。NAND型フラッシュメモリでは、同一ページにn回(nは、2以上の自然数)連続してデータをプログラムする機能(以下、便宜上、パーシャルページプログラムという)を実行することが可能である。メモリセルの高集積化が進むと、1ページのサイズも増加し、プログラムするデータ量が1ページのサイズに満たない場合がある。仮に、同一ページに1回しかデータをプログラムすることができないとなると、各ページの利用効率が低下し、その反面、1ページにプログラム可能な複数のデータがあるときに、それらのデータを複数のページにプログラムしなければならないのであれば、プログラムに要する時間が大幅に増加してしまう。他方、同一ページにn回連続してプログラムするということは、そのページにn回の高いプログラム電圧が印加されることになるため、プログラムの回数には制限がある。例えば、n=4であれば、同一ページに、4回連続してデータをプログラムすることができる。
【0036】
パーシャルページプログラムは、例えば、外部のコントローラからプログラムコマンドを受け取った後に、行アドレスAxおよび列アドレスAy1を受け取り、次に、パーシャルデータD1を受け取り、行アドレスAxによって選択されたページの列アドレスAy1を先頭にパーシャルデータD1をプログラムし、次に、列アドレスAy2およびパーシャルデータD2を受け取り、同一ページの列アドレスAy2を先頭にパーシャルデータD2をプログラムし、このような処理がn回繰り返され、結果的に、1つのページには、n個のパーシャルデータD1、D2、…、Dnがプログラムされる。
【0037】
このようなパーシャルページプログラムを実行可能なNAND型フラッシュメモリにおいて、データスクランブルスキームを採用した場合には、ページ内のパーシャルデータがプログラムされたものか、あるいは消去されたものであるかを判定しなければならない。パーシャルページプログラムによりプログラムされるパーシャスデータのサイズは、固定ではなく可変するため、パーシャルデータの境界が判明しなければ、データスクランブルを適切に実行することができない。
【0038】
本実施例に係るスクランブル部120を用いた場合には、パーシャルページプログラムが実行された場合でも、パーシャルデータの境界を判別することなく、適切にデータスクランブルを実施することができる。
【0039】
上記実施例では、入出力バッファ110とページバッファ160との間にスクランブル120を配置する例を示したが、スクランブル部120は、例えば、ページバッファ160内に設けられる構成であってもよい。
【0040】
以上のように本発明の好ましい実施の形態について詳述したが、本発明は、特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【0041】
10:フラッシュメモリ 100:メモリアレイ
110:入出力バッファ 120:スクランブル部
130:アドレスレジスタ 140:制御部
150:ワード線選択回路 160:ページバッファ/センス回路
170:列選択回路 180:内部電圧発生正回路
200:書込みエンコーダ 202:第1の検出器
204:スクランブル回路 206:第2の検出器
208:オア回路 210:マルチプレクサ
220:読出しデコーダ 222:第1の検出器
224:スクランブル回路 226:第2の検出器
228:オア回路 230:マルチプレクサ
【要約】
【課題】 消去後のデータがプログラムされたデータかを識別する識別情報を付加することなくデータスクランブルを行い、かつ信頼性を向上させる半導体記憶装置を提供する。
【解決手段】 本発明のフラッシュメモリは、入出力バッファ110とページバッファ160との間にデータのスクランブルを行うスクランブル部120を含む。スクランブル部120は、書込みエンコーダ200と読出しデコーダ220を含み、書込みエンコーダ200は、入力データが一定のビット列に該当する場合には、その入力データのスクランブルをスキップし、読出しデコーダ220は、ページバッファ160の読出しデータが一定のビット列に該当する場合には、その読出しデータのデスクランブルをスキップする。
【選択図】 図5
図1
図2
図3
図4
図5
図6
図7