(57)【要約】【課題】動作信頼性を向上出来る半導体記憶装置を提供する。【解決手段】実施形態の半導体記憶装置は、閾値に応じて５ビットデータを保持可能なメモリセルを備える。５ビットデータのうちの第１ビットは、第１乃至第５読み出し電圧により確定され、第２ビットは、第６乃至第１２読み出し電圧をにより確定され、第３ビットは、第１３乃至第１９読み出し電圧により確定され、第４ビットは、第２０乃至第２６読み出し電圧により確定され、第５ビットは、第２７乃至第３１読み出し電圧により確定する。第１乃至第３１読み出し電圧は、互いに異なる電圧である。【選択図】図３
2020155185.tif 000002
【特許請求の範囲】
【請求項１】
閾値に応じて５ビットデータを保持可能なメモリセルと、
前記メモリセルに接続されたワード線と、
前記ワード線に第１乃至第３１読み出し電圧を印加可能なロウデコーダと
を具備し、前記５ビットデータのうちの第１ビットは、第１乃至第６読み出し電圧を用いた読み出し動作により確定され、
前記第１ビットと異なる第２ビットは、第７乃至第１２読み出し電圧を用いた読み出し動作により確定され、
前記第１及び第２ビットと異なる第３ビットは、第１３乃至第１８読み出し電圧を用いた読み出し動作により確定され、
前記第１乃至第３ビットと異なる第４ビットは、第１９乃至第２５読み出し電圧を用いた読み出し動作により確定され、
前記第１乃至第４ビットと異なる第５ビットは、第２６乃至第３１読み出し電圧を用いた読み出し動作により確定され、
前記第１乃至第３１読み出し電圧は、互いに異なる電圧である、半導体記憶装置。
【請求項２】
閾値に応じて５ビットデータを保持可能なメモリセルと、
前記メモリセルに接続されたワード線と、
前記ワード線に第１乃至第３１読み出し電圧を印加可能なロウデコーダと
を具備し、前記５ビットデータのうちの第１ビットは、第１乃至第５読み出し電圧を用いた読み出し動作により確定され、
前記第１ビットと異なる第２ビットは、第６乃至第１２読み出し電圧を用いた読み出し動作により確定され、
前記第１及び第２ビットと異なる第３ビットは、第１３乃至第１９読み出し電圧を用いた読み出し動作により確定され、
前記第１乃至第３ビットと異なる第４ビットは、第２０乃至第２６読み出し電圧を用いた読み出し動作により確定され、
前記第１乃至第４ビットと異なる第５ビットは、第２７乃至第３１読み出し電圧を用いた読み出し動作により確定され、
前記第１乃至第３１読み出し電圧は、互いに異なる電圧である、半導体記憶装置。
【請求項３】
閾値に応じて５ビットデータを保持可能なメモリセルと、
前記メモリセルに接続されたワード線と、
前記ワード線に第１乃至第３１読み出し電圧を印加可能なロウデコーダと
を具備し、前記５ビットデータのうちの第１ビットは、第１乃至第６読み出し電圧を用いた読み出し動作により確定され、
前記第１ビットと異なる第２ビットは、第７乃至第１３読み出し電圧を用いた読み出し動作により確定され、
前記第１及び第２ビットと異なる第３ビットは、第１４乃至第２０読み出し電圧を用いた読み出し動作により確定され、
前記第１乃至第３ビットと異なる第４ビットは、第２１乃至第２７読み出し電圧を用いた読み出し動作により確定され、
前記第１乃至第４ビットと異なる第５ビットは、第２８乃至第３１読み出し電圧を用いた読み出し動作により確定され、
前記第１乃至第３１読み出し電圧は、互いに異なる電圧である、半導体記憶装置。
【請求項４】
前記第１乃至第３１読み出し電圧のうち、最小電圧と最大電圧は、互いに異なるビットを確定するために用いられる、請求項１乃至３いずれか１項記載の半導体記憶装置。
【請求項５】
前記第１乃至第３１読み出し電圧のうち、前記第１読み出し電圧が最小電圧であり、前記第３１読み出し電圧が最大電圧である、請求項１乃至３いずれか１項記載の半導体記憶装置。
【請求項６】
前記第１乃至第３１読み出し電圧のうち、最小電圧と最大電圧は、同一のビットを確定するために用いられる、請求項３記載の半導体記憶装置。
【請求項７】
前記第１乃至第３１読み出し電圧のうち、前記第２８読み出し電圧が最小電圧であり、前記第３１読み出し電圧が最大電圧である、請求項３記載の半導体記憶装置。
【請求項８】
前記ロウデコーダは、前記第１乃至第３１読み出し電圧を、低い電圧から高い電圧の順番で前記ワード線に印加し、
１５番目に印加される読み出し電圧を用いた読み出し動作により、前記第１乃至第５ビットのうちのいずれかのビットが最初に確定される、請求項１記載の半導体記憶装置。
【請求項９】
前記ロウデコーダは、前記第１乃至第３１読み出し電圧を、低い電圧から高い電圧の順番で前記ワード線に印加し、
１４番目に印加される読み出し電圧を用いた読み出し動作により、前記第１乃至第５ビットのうちのいずれかのビットが最初に確定される、請求項２記載の半導体記憶装置。
【請求項１０】
前記ロウデコーダは、前記第１乃至第３１読み出し電圧を、低い電圧から高い電圧の順番で前記ワード線に印加し、
１６番目に印加される読み出し電圧を用いた読み出し動作により、前記第１乃至第５ビットのうちのいずれかのビットが最初に確定される、請求項３記載の半導体記憶装置。
【請求項１１】
前記ロウデコーダは、前記第１乃至第３１読み出し電圧を、低い電圧から高い電圧の順番で前記ワード線に印加し、
１３番目に印加される読み出し電圧を用いた読み出し動作により、前記第１乃至第５ビットのうちのいずれかのビットが最初に確定される、請求項３記載の半導体記憶装置。
【請求項１２】
前記メモリセルから読み出された第１乃至第５ビットを保持可能な保持回路を更に備え、
前記保持回路は、前記第１乃至第５ビットを、確定されたビットから順番に出力する、請求項８乃至１１いずれか１項記載の半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
実施形態は、半導体記憶装置に関する。
【背景技術】
【０００２】
メモリセルが三次元に配列された半導体メモリが知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許第８，２５０，４３７号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
動作信頼性を向上出来る半導体記憶装置を提供する。
【課題を解決するための手段】
【０００５】
本実施形態の半導体記憶装置は、閾値に応じて５ビットデータを保持可能なメモリセルと、メモリセルに接続されたワード線と、ワード線に第１乃至第３１読み出し電圧を印加可能なロウデコーダとを備える。５ビットデータのうちの第１ビットは、第１乃至第６読み出し電圧を用いた読み出し動作により確定される。第１ビットと異なる第２ビットは、第７乃至第１２読み出し電圧を用いた読み出し動作により確定される。第１及び第２ビットと異なる第３ビットは、第１３乃至第１８読み出し電圧を用いた読み出し動作により確定される。第１乃至第３ビットと異なる第４ビットは、第１９乃至第２５読み出し電圧を用いた読み出し動作により確定される。第１乃至第４ビットと異なる第５ビットは、第２６乃至第３１読み出し電圧を用いた読み出し動作により確定される。そして、第１乃至第３１読み出し電圧は、互いに異なる電圧である。
【図面の簡単な説明】
【０００６】
【図１】図１は、第１実施形態に係るメモリシステムのブロック図。
【図２】図２は、第１実施態様に係るメモリセルアレイの回路図。
【図３】図３は、第１実施態様に係るメモリセルの取り得るデータ、閾値分布、及び読み出し電圧を示すダイアグラム。
【図４】図４は、第１実施態様に係る読み出し動作時における各種信号のタイミングチャート。
【図５】図５は、第１実施態様に係る読み出し動作時における各種信号のタイミングチャート。
【図６】図６は、第２実施態様に係るメモリセルの取り得るデータ及び読み出し電圧を示すダイアグラム。
【図７】図７は、第２実施態様に係る読み出し動作時における各種信号のタイミングチャート。
【図８】図８は、第２実施態様に係る読み出し動作時における各種信号のタイミングチャート。
【図９】図９は、第３実施態様に係るメモリセルの取り得るデータ及び読み出し電圧を示すダイアグラム。
【図１０】図１０は、第３実施態様に係る読み出し動作時における各種信号のタイミングチャート。
【図１１】図１１は、第３実施態様に係る読み出し動作時における各種信号のタイミングチャート。
【図１２】図１２は、第４実施態様に係るメモリセルの取り得るデータ及び読み出し電圧を示すダイアグラム。
【図１３】図１３は、第４実施態様に係る読み出し動作時における各種信号のタイミングチャート。
【図１４】図１４は、第４実施態様に係る読み出し動作時における各種信号のタイミングチャート。
【図１５】図１５は、第５実施態様に係る書き込み動作を示すフローチャート。
【図１６】図１６は、第５実施形態に係る書き込み動作において、コントローラの処理を示す概念図。
【図１７】図１７は、第５実施形態に係るデータスクランブル方法を示す概念図。
【図１８】図１８は、第５実施形態に係るデータスクランブル方法を示すフローチャート。
【図１９】図１９は、第５実施形態に係る書き込みコマンドシーケンスの模式図。
【図２０Ａ】図２０Ａは、第５実施態様に係る読み出し動作を示すフローチャート。
【図２０Ｂ】図２０Ｂは、第５実施態様に係る読み出し動作を示すフローチャート。
【図２１】図２１は、第５実施形態に係る読み出しコマンドシーケンスの模式図。
【図２２Ａ】図２２Ａは、第５実施形態に係る読み出し動作時における各種信号のタイミングチャート。
【図２２Ｂ】図２２Ｂは、第５実施形態に係るscrambledデータのデコード方法を示すフローチャート。
【図２３Ａ】図２３Ａは、第５実施形態の第１変形例に係る読み出しコマンドシーケンスの模式図。
【図２３Ｂ】図２３Ｂは、第５実施形態の第１変形例に係る読み出しコマンドシーケンスの模式図。
【図２３Ｃ】図２３Ｃは、第５実施形態の第１変形例に係る読み出しコマンドシーケンスの模式図。
【図２４】図２４は、第５実施形態の第２変形例に係る読み出しコマンドシーケンスの模式図。
【図２５】図２５は、第５実施形態の第２変形例に係る読み出しコマンドシーケンスの模式図。
【図２６】図２６は、第６実施形態に係るデータスクランブル方法を示す概念図。
【図２７】図２７は、第６実施形態に係る書き込みコマンドシーケンスの模式図。
【図２８Ａ】図２８Ａは、第６実施形態に係る読み出しコマンドシーケンスの模式図。
【図２８Ｂ】図２８Ｂは、第６実施形態に係る読み出しコマンドシーケンスの模式図。
【図２８Ｃ】図２８Ｃは、第６実施形態に係る読み出しコマンドシーケンスの模式図。
【図２９Ａ】図２９Ａは、第６実施形態に係る読み出し動作時における各種信号のタイミングチャート。
【図２９Ｂ】図２９Ｂは、第６実施形態に係る読み出し動作時における各種信号のタイミングチャート。
【図２９Ｃ】図２９Ｃは、第６実施形態に係る読み出し動作時における各種信号のタイミングチャート。
【図３０Ａ】図３０Ａは、第６実施形態の変形例に係る読み出しコマンドシーケンスの模式図。
【図３０Ｂ】図３０Ｂは、第６実施形態の変形例に係る読み出しコマンドシーケンスの模式図。
【図３１】図３１は、第７実施形態に係るデータスクランブル方法を示す概念図。
【図３２Ａ】図３２Ａは、第７実施形態に係る読み出しコマンドシーケンスの模式図。
【図３２Ｂ】図３２Ｂは、第７実施形態に係る読み出しコマンドシーケンスの模式図。
【図３３Ａ】図３３Ａは、第７実施形態に係る読み出し動作時における各種信号のタイミングチャート。
【図３３Ｂ】図３３Ｂは、第７実施形態に係る読み出し動作時における各種信号のタイミングチャート。
【図３４Ａ】図３４Ａは、第７実施形態の変形例に係る読み出しコマンドシーケンスの模式図。
【図３４Ｂ】図３４Ｂは、第７実施形態の変形例に係る読み出しコマンドシーケンスの模式図。
【図３５】図３５は、第８実施態様に係るメモリセルの取り得るデータ、閾値分布、及び読み出し電圧を示すダイアグラム。
【図３６Ａ】図３６Ａは、第８実施形態に係るデータスクランブル方法を示す概念図。
【図３６Ｂ】図３６Ｂは、第８実施形態に係るデータスクランブル方法を示すフローチャート。
【図３７】図３７は、第８実施形態に係る読み出し動作時における各種信号のタイミングチャート。
【図３８】図３８は、第９実施形態に係るデータスクランブル方法を示す概念図。
【図３９Ａ】図３９Ａは、第９実施形態に係る読み出し動作時における各種信号のタイミングチャート。
【図３９Ｂ】図３９Ｂは、第９実施形態に係る読み出し動作時における各種信号のタイミングチャート。
【図４０】図４０は、第１０実施形態に係るデータスクランブル方法を示す概念図。
【図４１Ａ】図４１Ａは、第１０実施形態に係る読み出し動作時における各種信号のタイミングチャート。
【図４１Ｂ】図４１Ｂは、第１０実施形態に係る読み出し動作時における各種信号のタイミングチャート。
【図４２】図４２は、第１１実施形態に係るメモリシステムのブロック図。
【図４３】図４３は、第１１実施形態に係る書き込み動作において、コントローラの処理を示す概念図。
【図４４】図４４は、第１１実施形態に係る書き込み動作において、ワード線、ページ、及びチップと、書き込みデータとの関係を示すダイアグラム。
【図４５Ａ】図４５Ａは、第１１実施形態に係る書き込みコマンドシーケンスの模式図。
【図４５Ｂ】図４ＢＡは、第１１実施形態に係る書き込みコマンドシーケンスの模式図。
【図４５Ｃ】図４５Ｃは、第１１実施形態に係る書き込みコマンドシーケンスの模式図。
【図４５Ｄ】図４５Ｄは、第１１実施形態に係る書き込みコマンドシーケンスの模式図。
【図４６Ａ】図４６Ａは、第１１実施形態に係る読み出しコマンドシーケンスの模式図。
【図４６Ｂ】図４６Ｂは、第１１実施形態に係る読み出し動作において、コントローラの処理を示す概念図。
【図４７】図４７は、第１２実施形態に係る書き込み動作において、コントローラの処理を示す概念図。
【図４８】図４８は、第１２実施形態に係る書き込み動作において、ワード線、ページ、及びチップと、書き込みデータとの関係を示すダイアグラム。
【図４９】図４９は、第１２実施形態の変形例に係る書き込み動作において、コントローラの処理を示す概念図。
【図５０】図５０は、第１２実施形態の変形例に係る書き込み動作において、ワード線、ページ、及びチップと、書き込みデータとの関係を示すダイアグラム。
【図５１】図５１は、第１乃至第４実施態様の変形例に係るメモリセルの取り得るデータ、閾値分布、及び読み出し電圧を示すダイアグラム。
【図５２】図５２は、第５乃至第１２実施態様の変形例に係る書き込み動作を示すフローチャート。
【図５３Ａ】図５３Ａは、第５乃至第１２実施態様の変形例に係るセンスアンプユニットの模式図。
【図５３Ｂ】図５３Ｂは、第５乃至第１２実施態様の変形例に係るセンスアンプユニットの模式図。
【図５３Ｃ】図５３Ｃは、第５乃至第１２実施態様の変形例に係るセンスアンプユニットの模式図。
【図５４】図５４は、第５乃至第１２実施態様の変形例に係る読み出し動作を示すフローチャート。
【発明を実施するための形態】
【０００７】
以下、図面を参照して実施形態について説明する。なお、以下の説明において、同一の機能及び構成を有する構成要素については、共通する参照符号を付す。
【０００８】
１．第１実施態様  
第１実施形態に係る半導体記憶装置について説明する。以下では半導体記憶装置として、メモリセルが半導体基板上に二次元に配列され、または半導体基板上方に三次元に配列されたＮＡＮＤ型フラッシュメモリを例に挙げて説明する。
【０００９】
１．１  構成について
１．１．１  メモリシステムの全体構成について
まず、本実施形態に係る半導体記憶装置を含むメモリシステムの大まかな全体構成について、図１を用いて説明する。図１は、本実施形態に係るメモリシステムのブロック図である。
【００１０】
図示するようにメモリシステム１は、ＮＡＮＤ型フラッシュメモリ１００とコントローラ２００を備えている。ＮＡＮＤ型フラッシュメモリ１００とコントローラ２００とは、例えばそれらの組み合わせにより一つの半導体装置を構成しても良く、その例としてはＳＤＴＭカードのようなメモリカードや、ＳＳＤ（solid state drive）等が挙げられる。
【００１１】
ＮＡＮＤ型フラッシュメモリ１００は、複数のメモリセルを備え、データを不揮発に記憶する。コントローラ２００は、ＮＡＮＤバスによってＮＡＮＤ型フラッシュメモリ１００に接続され、ホストバスによってホスト機器３００に接続される。そしてコントローラ２００は、ＮＡＮＤ型フラッシュメモリ１００を制御し、またホスト機器３００から受信した命令に応答して、ＮＡＮＤ型フラッシュメモリ１００にアクセスする。ホスト機器３００は、例えばデジタルカメラやパーソナルコンピュータ等であり、ホストバスは、例えばＳＤＴＭインターフェースに従ったバスである。
【００１２】
ＮＡＮＤバスは、ＮＡＮＤインターフェースに従った信号の送受信を行う。この信号の具体例は、チップイネーブル信号ＣＥｎ、アドレスラッチイネーブル信号ＡＬＥ、コマンドラッチイネーブル信号ＣＬＥ、ライトイネーブル信号ＷＥｎ、リードイネーブル信号ＲＥｎ、レディ・ビジー信号ＲＢｎ、及び入出力信号Ｉ／Ｏである。
【００１３】
信号ＣＥｎは、ＮＡＮＤ型フラッシュメモリ１００を活性化させる信号である。信号ＣＬＥ及びＡＬＥは、ＮＡＮＤ型フラッシュメモリ１００への入力信号Ｉ／Ｏがそれぞれコマンド及びアドレスであることをＮＡＮＤ型フラッシュメモリ１００に通知する信号である。信号ＷＥｎはlowレベルでアサートされ、入力信号Ｉ／ＯをＮＡＮＤ型フラッシュメモリ１００に取り込ませるための信号である。信号ＲＥｎもlowレベルでアサートされ、ＮＡＮＤ型フラッシュメモリ１００から出力信号Ｉ／Ｏを読み出すための信号である。レディ・ビジー信号ＲＢｎは、ＮＡＮＤ型フラッシュメモリ１００がレディ状態（コントローラ２００からの命令を受信出来る状態）であるか、それともビジー状態（コントローラ２００からの命令を受信出来ない状態）であるかを示す信号であり、lowレベルがビジー状態を示す。入出力信号Ｉ／Ｏは、例えば８ビットの信号である。そして入出力信号Ｉ／Ｏは、ＮＡＮＤ型フラッシュメモリ１００とコントローラ２００との間で送受信されるデータの実体であり、コマンド、アドレス、書き込みデータ、及び読み出しデータ等である。
【００１４】
１．１．２  コントローラ２００の構成について
引き続き図１を用いて、コントローラ２００の構成の詳細について説明する。図１に示すようにコントローラ２００は、ホストインターフェース回路２１０、内蔵メモリ（ＲＡＭ）２２０、プロセッサ（ＣＰＵ）２３０、バッファメモリ２４０、及びＮＡＮＤインターフェース回路２５０を備えている。
【００１５】
ホストインターフェース回路２１０は、ホストバスを介してホスト機器３００と接続され、ホスト機器３００から受信した命令及びデータを、それぞれプロセッサ２３０及びバッファメモリ２４０に転送する。またプロセッサ２３０の命令に応答して、バッファメモリ２４０内のデータをホスト機器３００へ転送する。
【００１６】
プロセッサ２３０は、コントローラ２００全体の動作を制御する。例えば、プロセッサ２３０は、ホスト機器３００から書き込み命令を受信した際には、それに応答して、ＮＡＮＤインターフェース回路２５０に対して書き込み命令を発行する。読み出し及び消去の際も同様である。またプロセッサ２３０は、ウェアレベリング等、ＮＡＮＤ型フラッシュメモリ１００を管理するための様々な処理を実行する。
【００１７】
ＮＡＮＤインターフェース回路２５０は、ＮＡＮＤバスを介してＮＡＮＤ型フラッシュメモリ１００と接続され、ＮＡＮＤ型フラッシュメモリ１００との通信を司る。そして、プロセッサ２３０から受信した命令に基づき、信号ＡＬＥ、ＣＬＥ、ＷＥｎ、及びＲＥｎをＮＡＮＤ型フラッシュメモリ１００へ出力する。また書き込み時には、プロセッサ２３０で発行された書き込みコマンド、及びバッファメモリ２４０内の書き込みデータを、入出力信号Ｉ／ＯとしてＮＡＮＤ型フラッシュメモリ１００へ転送する。更に読み出し時には、プロセッサ２３０で発行された読み出しコマンドを、入出力信号Ｉ／ＯとしてＮＡＮＤ型フラッシュメモリ１００へ転送し、更にＮＡＮＤ型フラッシュメモリ１００から読み出されたデータを入出力信号Ｉ／Ｏとして受信し、これをバッファメモリ２４０へ転送する。
【００１８】
バッファメモリ２４０は、書き込みデータや読み出しデータを一時的に保持する。
【００１９】
内蔵メモリ２２０は、例えばＤＲＡＭ等の半導体メモリであり、プロセッサ２３０の作業領域として使用される。そして内蔵メモリ２２０は、ＮＡＮＤ型フラッシュメモリ１００を管理するためのファームウェアや、各種の管理テーブル等を保持する。
【００２０】
１．１．３  ＮＡＮＤ型フラッシュメモリ１００の構成について
１．１．３．１  ＮＡＮＤ型フラッシュメモリ１００の全体構成について
次に、ＮＡＮＤ型フラッシュメモリ１００の構成について説明する。図１に示すようにＮＡＮＤ型フラッシュメモリ１００は、メモリセルアレイ１１０、ロウデコーダ１２０、ドライバ回路１３０、センスアンプ１４０、アドレスレジスタ１５０、コマンドレジスタ１６０、及びシーケンサ１７０を備える。
【００２１】
メモリセルアレイ１１０は、ロウ及びカラムに対応付けられた複数の不揮発性のメモリセルを含む例えば４つのブロックＢＬＫ（ＢＬＫ０〜ＢＬＫ３）を備えている。そしてメモリセルアレイ１１０は、コントローラ２００から与えられたデータを記憶する。
【００２２】
ロウデコーダ１２０は、ブロックＢＬＫ０〜ＢＬＫ３のいずれかを選択し、更に選択したブロックＢＬＫにおけるロウ方向を選択する。
【００２３】
ドライバ回路１３０は、選択されたブロックＢＬＫに対して、ロウデコーダ１２０を介して電圧を供給する。
【００２４】
センスアンプ１４０は、データの読み出し時には、メモリセルアレイ１１０から読み出されたデータをセンスし、このデータＤＡＴをコントローラ２００に出力する。データの書き込み時には、コントローラ２００から受信した書き込みデータＤＡＴを、メモリセルアレイ１１０に転送する。
【００２５】
アドレスレジスタ１５０は、コントローラ２００から受信したアドレスＡＤＤを保持する。コマンドレジスタ１６０は、コントローラ２００から受信したコマンドＣＭＤを保持する。
【００２６】
シーケンサ１７０は、コマンドレジスタ１６０に保持されたコマンドＣＭＤに基づき、ＮＡＮＤ型フラッシュメモリ１００全体の動作を制御する。
【００２７】
１．１．３．２  ブロックＢＬＫの構成について
次に、上記ブロックＢＬＫの構成について、図２を用いて説明する。図２は、ブロックＢＬＫ及びセンスアンプ１４０の回路図である。
【００２８】
図示するようにブロックＢＬＫは、複数のＮＡＮＤストリング１５を含む。ＮＡＮＤストリング１５の各々は、例えば８個のメモリセルトランジスタＭＴ（ＭＴ０〜ＭＴ７）及び選択トランジスタＳＴ１、ＳＴ２を含んでいる。メモリセルトランジスタＭＴは、制御ゲートと電荷蓄積層とを備え、データを不揮発に保持する。そしてメモリセルトランジスタＭＴは、選択トランジスタＳＴ１のソースと選択トランジスタＳＴ２のドレインとの間に直列接続されている。
【００２９】
同一ブロック内の選択トランジスタＳＴ１及びＳＴ２のゲートは、それぞれセレクトゲート線ＳＧＤ及びＳＧＳに共通接続される。同様に、同一ブロック内のメモリセルトランジスタＭＴ０〜ＭＴ７の制御ゲートは、それぞれワード線ＷＬ０〜ＷＬ７に共通接続される。
【００３０】
また、メモリセルアレイ１１０内において同一列にあるＮＡＮＤストリング１５の選択トランジスタＳＴ１のドレインは、ビット線ＢＬ（ＢＬ０〜ＢＬ（Ｌ−１）、（Ｌ−１）は１以上の自然数）に共通接続される。すなわちビット線ＢＬは、複数のブロックＢＬＫ間でＮＡＮＤストリング１５を共通に接続する。更に、複数の選択トランジスタＳＴ２のソースは、ソース線ＳＬに共通に接続されている。
【００３１】
本例では、１つのメモリセルトランジスタＭＴが５ビットデータを保持可能である。この５ビットデータを、下位ビットからそれぞれbottomビット、lowerビット、middleビット、upperビット、及びtopビットと呼ぶことにする。そして、同一のワード線に接続されたメモリセルの保持するbottomビットの集合を「bottomページ」と呼び、lowerビットの集合を「lowerページ」と呼び、middleビットの集合を「middleページ」と呼び、upperビットの集合を「upperページ」と呼び、topビットの集合を「topページ」と呼ぶ。つまり、１本のワード線ＷＬには５ページが割り当てられ、８本のワード線ＷＬを含むブロックＢＬＫは４０ページ分の容量を有することになる。あるいは言い換えるならば、「ページ」とは、同一ワード線に接続されたメモリセルによって形成されるメモリ空間の一部、と定義することも出来る。データの書き込み及び読み出しは、このページ毎に行っても良い（この読み出し方法をpage-by-page readingと呼ぶ）。また、データの消去は、ブロックＢＬＫ単位で行われる。
【００３２】
なお、メモリセルトランジスタが半導体基板の上方に三次元に積層された構成については、例えば、“三次元積層不揮発性半導体メモリ”という２００９年３月１９日に出願された米国特許出願１２／４０７，４０３号に記載されている。また、“三次元積層不揮発性半導体メモリ”という２００９年３月１８日に出願された米国特許出願１２／４０６，５２４号、“不揮発性半導体記憶装置及びその製造方法”という２０１０年３月２５日に出願された米国特許出願１２／６７９，９９１号“半導体メモリ及びその製造方法”という２００９年３月２３日に出願された米国特許出願１２／５３２，０３０号に記載されている。これらの特許出願は、その全体が本願明細書において参照により援用されている。
【００３３】
１．１．３．３  センスアンプ１４０の構成について
次に、センスアンプ１４０の構成について、引き続き図２を用いて説明する。図示するようにセンスアンプ１４０は、ビット線ＢＬ毎に設けられたセンスアンプユニットＳＡＵ（ＳＡＵ０〜ＳＡＵ（Ｌ−１））を備えている。
【００３４】
センスアンプユニットＳＡＵの各々は、センス部ＳＡ、演算部ＯＰ、及び６つのラッチ回路ＡＤＬ、ＢＤＬ、ＣＤＬ、ＤＤＬ、ＥＤＬ、及びＸＤＬを備えている。
【００３５】
センス部ＳＡは、対応するビット線ＢＬに読み出されたデータをセンスし、また書き込みデータに応じてビット線ＢＬに電圧を印加する。すなわちセンス部ＳＡは、ビット線ＢＬを直接的に制御するモジュールである。
【００３６】
ラッチ回路ＡＤＬ、ＢＤＬ、ＣＤＬ、ＤＤＬ、及びＥＤＬは、読み出しデータ及び書き込みデータを一時的に保持する。演算部ＯＰは、ラッチ回路ＡＤＬ、ＢＤＬ、ＣＤＬ、ＤＤＬ、及びＥＤＬに保持されているデータにつき、論理和（ＯＲ）演算、論理積（ＡＮＤ）演算、否定（ＮＯＴ）演算、排他的論理和（ＸＯＲ）演算、排他的否定論理和（ＸＮＯＲ）演算など、種々の演算を行う。
【００３７】
これらのセンス部ＳＡ、ラッチ回路ＡＤＬ、ＢＤＬ、ＣＤＬ、ＤＤＬ、及びＥＤＬ、並びに演算部ＯＰは、互いにデータを送受信可能なようにバスによって接続されている。そしてこのバスは、更にラッチ回路ＸＤＬに接続されている。
【００３８】
センスアンプ１４０におけるデータの外部との入出力は、ラッチ回路ＸＤＬを介して行われる。すなわち、コントローラ２００から受信したデータは、ラッチ回路ＸＤＬを介して、ラッチ回路ＡＤＬ、ＢＤＬ、ＣＤＬ、ＤＤＬ、ＥＤＬ、またはセンス部ＳＡに転送される。またラッチ回路ＡＤＬ、ＢＤＬ、ＣＤＬ、ＤＤＬ、ＥＤＬ、またはセンス部ＳＡのデータは、ラッチ回路ＸＤＬを介してコントローラ２００へ送信される。そしてラッチ回路ＸＤＬは、ＮＡＮＤ型フラッシュメモリ１００のキャッシュメモリとして機能する。従って、ラッチ回路ＡＤＬ、ＢＤＬ、ＣＤＬ、ＤＤＬ、及びＥＤＬが使用中であったとしても、ラッチ回路ＸＤＬが空いていれば、ＮＡＮＤ型フラッシュメモリ１００はレディ状態となることが出来る。
【００３９】
１．１．３．４  メモリセルトランジスタの保持データと閾値電圧について
次に、メモリセルトランジスタＭＴの保持データ、閾値電圧、及び各データの読み出しレベルにつき、図３を用いて説明する。図３は、各メモリセルトランジスタＭＴの取り得るデータ、閾値分布、及び読み出し時に用いる電圧について示したダイアグラムである。
【００４０】
前述のように、メモリセルトランジスタＭＴは閾値電圧に応じて３２個の状態を取ることができる。この３２個の状態を、閾値電圧の低いものから、１６進数表記で“０”状態、“１”状態、“２”状態、…“Ｆ”状態、“１０”状態、“１１”状態、…“１Ｆ”状態と呼ぶことにする。
【００４１】
“０”状態のメモリセルトランジスタＭＴの閾値電圧は、電圧Ｖ１未満であり、データの消去状態に相当する。“１”状態のメモリセルトランジスタＭＴの閾値電圧は、電圧Ｖ１以上であり且つＶ２（＞Ｖ１）未満である。“２”状態のメモリセルトランジスタＭＴの閾値電圧は、電圧Ｖ２以上であり且つＶ３（＞Ｖ２）未満である。“３”状態のメモリセルトランジスタＭＴの閾値電圧は、電圧Ｖ３以上であり且つＶ４（＞Ｖ３）未満である。“４”状態のメモリセルトランジスタＭＴの閾値電圧は、電圧Ｖ４以上であり且つＶ５（＞Ｖ４）未満である。“５”状態のメモリセルトランジスタＭＴの閾値電圧は、電圧Ｖ５以上であり且つＶ６（＞Ｖ５）未満である。“６”状態のメモリセルトランジスタＭＴの閾値電圧は、電圧Ｖ６以上であり且つＶ７（＞Ｖ６）未満である。“７”状態のメモリセルトランジスタＭＴの閾値電圧は、電圧Ｖ７以上であり且つＶ８（＞Ｖ７）未満である。“８”状態のメモリセルトランジスタＭＴの閾値電圧は、電圧Ｖ８以上であり且つＶ９（＞Ｖ８）未満である。“９”状態のメモリセルトランジスタＭＴの閾値電圧は、電圧Ｖ９以上であり且つＶＡ（＞Ｖ９）未満である。“Ａ”状態のメモリセルトランジスタＭＴの閾値電圧は、電圧ＶＡ以上であり且つＶＢ（＞ＶＡ）未満である。“Ｂ”状態のメモリセルトランジスタＭＴの閾値電圧は、電圧ＶＢ以上であり且つＶＣ（＞ＶＢ）未満である。“Ｃ”状態のメモリセルトランジスタＭＴの閾値電圧は、電圧ＶＣ以上であり且つＶＤ（＞ＶＣ）未満である。“Ｄ”状態のメモリセルトランジスタＭＴの閾値電圧は、電圧ＶＤ以上であり且つＶＥ（＞ＶＤ）未満である。“Ｅ”状態のメモリセルトランジスタＭＴの閾値電圧は、電圧ＶＥ以上であり且つＶＦ（＞ＶＥ）未満である。“Ｆ”状態のメモリセルトランジスタＭＴの閾値電圧は、電圧ＶＦ以上であり且つＶ１０未満である。
【００４２】
更に、“１０”状態のメモリセルトランジスタＭＴの閾値電圧は、電圧Ｖ１０以上であり且つＶ１１（＞Ｖ１０）未満である。“１１”状態のメモリセルトランジスタＭＴの閾値電圧は、電圧Ｖ１１以上であり且つＶ１２（＞Ｖ１１）未満である。“１２”状態のメモリセルトランジスタＭＴの閾値電圧は、電圧Ｖ１２以上であり且つＶ１３（＞Ｖ１２）未満である。“１３”状態のメモリセルトランジスタＭＴの閾値電圧は、電圧Ｖ１３以上であり且つＶ１４（＞Ｖ１３）未満である。“１４”状態のメモリセルトランジスタＭＴの閾値電圧は、電圧Ｖ１４以上であり且つＶ１５（＞Ｖ１４）未満である。“１５”状態のメモリセルトランジスタＭＴの閾値電圧は、電圧Ｖ１５以上であり且つＶ１６（＞Ｖ１５）未満である。“１６”状態のメモリセルトランジスタＭＴの閾値電圧は、電圧Ｖ１６以上であり且つＶ１７（＞Ｖ１６）未満である。“１７”状態のメモリセルトランジスタＭＴの閾値電圧は、電圧Ｖ１７以上であり且つＶ１８（＞Ｖ１７）未満である。“１８”状態のメモリセルトランジスタＭＴの閾値電圧は、電圧Ｖ１８以上であり且つＶ１９（＞Ｖ１８）未満である。“１９”状態のメモリセルトランジスタＭＴの閾値電圧は、電圧Ｖ１９以上であり且つＶ１Ａ（＞Ｖ１９）未満である。“１Ａ”状態のメモリセルトランジスタＭＴの閾値電圧は、電圧Ｖ１Ａ以上であり且つＶ１Ｂ（＞Ｖ１Ａ）未満である。“１Ｂ”状態のメモリセルトランジスタＭＴの閾値電圧は、電圧Ｖ１Ｂ以上であり且つＶ１Ｃ（＞Ｖ１Ｂ）未満である。“１Ｃ”状態のメモリセルトランジスタＭＴの閾値電圧は、電圧Ｖ１Ｃ以上であり且つＶ１Ｄ（＞Ｖ１Ｃ）未満である。“１Ｄ”状態のメモリセルトランジスタＭＴの閾値電圧は、電圧Ｖ１Ｄ以上であり且つＶ１Ｅ（＞Ｖ１Ｄ）未満である。“１Ｅ”状態のメモリセルトランジスタＭＴの閾値電圧は、電圧Ｖ１Ｅ以上であり且つＶ１Ｆ（＞Ｖ１Ｅ）未満である。“１Ｆ”状態のメモリセルトランジスタＭＴの閾値電圧は、電圧Ｖ１Ｆ以上であり且つＶＲＥＡＤ未満である。そして、このように分布する３２個の状態のうちで、“１Ｆ”状態が、閾値電圧の最も高い状態である。
【００４３】
また上記閾値分布は、前述のbottomビット、lowerビット、middleビット、upperビット、及びtopビットからなる５ビット（５ページ）データを書き込むことで実現される。すなわち、上記１６進数で表記した３２個の状態と、bottomビット、lowerビット、middleビット、upperビット、及びtopビットとの関係は、次の通りである。
“０”状態：“１１１１１”（“top/upper/middle/lower/bottom”の順で表記）
“１”状態：“１１１１０”
“２”状態：“１１１００”
“３”状態：“１１１０１”
“４”状態：“１１００１”
“５”状態：“１１０００”
“６”状態：“１００００”
“７”状態：“０００００”
“８”状態：“００１００”
“９”状態：“１０１００”
“Ａ”状態：“１０１１０”
“Ｂ”状態：“００１１０”
“Ｃ”状態：“０１１１０”
“Ｄ”状態：“０１１００”
“Ｅ”状態：“０１１０１”
“Ｆ”状態：“０１００１”
“１０”状態：“０１０００”
“１１”状態：“０１０１０”
“１２”状態：“０００１０”
“１３”状態：“１００１０”
“１４”状態：“１１０１０”
“１５”状態：“１１０１１”
“１６”状態：“１００１１”
“１７”状態：“１０００１”
“１８”状態：“１０１０１”
“１９”状態：“００１０１”
“１Ａ”状態：“００００１”
“１Ｂ”状態：“０００１１”
“１Ｃ”状態：“０１０１１”
“１Ｄ”状態：“０１１１１”
“１Ｅ”状態：“００１１１”
“１Ｆ”状態：“１０１１１”
このように、閾値分布において隣り合う２つの状態に対応するデータ間では、５ビットのうちの１ビットのみが変化する。
【００４４】
従って、bottomビットを読み出す際には、bottomビットの値（“０” or “１”）が変化する境界に相当する電圧を用いれば良く、このことはlowerビット、middleビット、upperビット、及びtopビットでも同様である。
【００４５】
すなわち、図３に示すように、bottomページ読み出しは、“０”状態と“１”状態とを区別する電圧Ｖ１、“２”状態と“３”状態とを区別する電圧Ｖ３、“４”状態と“５”状態とを区別する電圧Ｖ５、“Ｄ”状態と“Ｅ”状態とを区別する電圧ＶＥ、“Ｆ”状態と“１０”状態とを区別する電圧Ｖ１０、及び“１４”状態と“１５”状態とを区別する電圧Ｖ１５を読み出し電圧として用いれば良い。電圧Ｖ１、Ｖ３、Ｖ５、ＶＥ、Ｖ１０、及びＶ１５を用いた読み出し動作を、それぞれ読み出し動作１Ｒ、３Ｒ、５Ｒ、ＥＲ、１０Ｒ、及び１５Ｒと呼ぶ。
【００４６】
読み出し動作１Ｒは、メモリセルトランジスタＭＴの閾値電圧が電圧Ｖ１未満か否かを判定する処理である。読み出し動作３Ｒは、メモリセルトランジスタＭＴの閾値電圧が電圧Ｖ３未満か否かを判定する処理である。読み出し動作５Ｒは、メモリセルトランジスタＭＴの閾値電圧が電圧Ｖ５未満か否かを判定する処理である。読み出し動作ＥＲは、メモリセルトランジスタＭＴの閾値電圧が電圧ＶＥ未満か否かを判定する処理である。読み出し動作１０Ｒは、メモリセルトランジスタＭＴの閾値電圧が電圧Ｖ１０未満か否かを判定する処理である。そして読み出し動作１５Ｒは、メモリセルトランジスタＭＴの閾値電圧が電圧Ｖ１５未満か否かを判定する処理である。
【００４７】
Lowerページ読み出しは、“１”状態と“２”状態とを区別する電圧Ｖ２、“９”状態と“Ａ”状態とを区別する電圧ＶＡ、“Ｃ”状態と“Ｄ”状態とを区別する電圧ＶＤ、“１０”状態と“１１”状態とを区別する電圧Ｖ１１、“１６”状態と“１７”状態とを区別する電圧Ｖ１７、及び“１Ａ”状態と“１Ｂ”状態とを区別する電圧Ｖ１Ｂを読み出し電圧として用いれば良い。電圧Ｖ２、ＶＡ、ＶＤ、Ｖ１１、Ｖ１７、及びＶ１Ｂを用いた読み出し動作を、それぞれ読み出し動作２Ｒ、ＡＲ、ＤＲ、１１Ｒ、１７Ｒ、及び１ＢＲと呼ぶ。
【００４８】
読み出し動作２Ｒは、メモリセルトランジスタＭＴの閾値電圧が電圧Ｖ２未満か否かを判定する処理である。読み出し動作ＡＲは、メモリセルトランジスタＭＴの閾値電圧が電圧ＶＡ未満か否かを判定する処理である。読み出し動作ＤＲは、メモリセルトランジスタＭＴの閾値電圧が電圧ＶＤ未満か否かを判定する処理である。読み出し動作１１Ｒは、メモリセルトランジスタＭＴの閾値電圧が電圧Ｖ１１未満か否かを判定する処理である。読み出し動作１７Ｒは、メモリセルトランジスタＭＴの閾値電圧が電圧Ｖ１７未満か否かを判定する処理である。そして読み出し動作１ＢＲは、メモリセルトランジスタＭＴの閾値電圧が電圧Ｖ１Ｂ未満か否かを判定する処理である。
【００４９】
Middleページ読み出しは、“３”データと“４”データとを区別する電圧Ｖ４、“７”状態と“８”状態とを区別する電圧Ｖ８、“Ｅ”状態と“Ｆ”状態とを区別する電圧ＶＦ、“１７”状態と“１８”状態とを区別する電圧Ｖ１８、“１Ｂ”データと“１Ａ”データとを区別する電圧Ｖ１Ａ、及び“１Ｃ”状態と“１Ｄ”状態とを区別する電圧Ｖ１Ｄを読み出し電圧として用いれば良い。電圧Ｖ４、Ｖ８、ＶＦ、Ｖ１８、Ｖ１Ａ、及びＶ１Ｄを用いた読み出し動作を、それぞれ読み出し動作４Ｒ、８Ｒ、ＦＲ、１８Ｒ、１ＡＲ、及び１ＤＲと呼ぶ。
【００５０】
読み出し動作４Ｒは、メモリセルトランジスタＭＴの閾値電圧が電圧Ｖ４未満か否かを判定する処理である。読み出し動作８Ｒは、メモリセルトランジスタＭＴの閾値電圧が電圧Ｖ８未満か否かを判定する処理である。読み出し動作ＦＲは、メモリセルトランジスタＭＴの閾値電圧が電圧ＶＦ未満か否かを判定する処理である。読み出し動作１８Ｒは、メモリセルトランジスタＭＴの閾値電圧が電圧Ｖ１８未満か否かを判定する処理である。読み出し動作１ＡＲは、メモリセルトランジスタＭＴの閾値電圧が電圧Ｖ１Ａ未満か否かを判定する処理である。そして読み出し動作１ＤＲは、メモリセルトランジスタＭＴの閾値電圧が電圧Ｖ１Ｄ未満か否かを判定する処理である。
【００５１】
Upperページ読み出しは、“５”状態と“６”状態とを区別する電圧Ｖ６、“Ｂ”状態と“Ｃ”状態とを区別する電圧ＶＣ、“１１”状態と“１２”状態とを区別する電圧Ｖ１２、“１３”状態と“１４”状態とを区別する電圧Ｖ１４、“１５”状態と“１６”状態とを区別する電圧Ｖ１６、“１Ｂ”状態と“１Ｃ”状態とを区別する電圧Ｖ１Ｃ、及び“１Ｄ”状態と“１Ｅ”状態とを区別する電圧Ｖ１Ｅを読み出し電圧として用いれば良い。電圧Ｖ６、ＶＣ、Ｖ１２、Ｖ１４、Ｖ１６、Ｖ１Ｃ、及びＶ１Ｅを用いた読み出し動作を、それぞれ読み出し動作６Ｒ、ＣＲ、１２Ｒ、１４Ｒ、１６Ｒ、１ＣＲ、及び１ＥＲと呼ぶ。
【００５２】
読み出し動作６Ｒは、メモリセルトランジスタＭＴの閾値電圧が電圧Ｖ６未満か否かを判定する処理である。読み出し動作ＣＲは、メモリセルトランジスタＭＴの閾値電圧が電圧ＶＣ未満か否かを判定する処理である。読み出し動作１２Ｒは、メモリセルトランジスタＭＴの閾値電圧が電圧Ｖ１２未満か否かを判定する処理である。読み出し動作１４Ｒは、メモリセルトランジスタＭＴの閾値電圧が電圧Ｖ１４未満か否かを判定する処理である。読み出し動作１６Ｒは、メモリセルトランジスタＭＴの閾値電圧が電圧Ｖ１６未満か否かを判定する処理である。読み出し動作１ＣＲは、メモリセルトランジスタＭＴの閾値電圧が電圧Ｖ１Ｃ未満か否かを判定する処理である。そして読み出し動作１ＥＲは、メモリセルトランジスタＭＴの閾値電圧が電圧Ｖ１Ｅ未満か否かを判定する処理である。
【００５３】
そしてtopページ読み出しは、“６”状態と“７”状態とを区別する電圧Ｖ７、“８”状態と“９”状態とを区別する電圧Ｖ９、“Ａ”状態と“Ｂ”状態とを区別する電圧ＶＢ、“１２”状態と“１３”状態とを区別する電圧Ｖ１３、“１８”状態と“１９”状態とを区別する電圧Ｖ１９、“１Ｅ”状態と“１Ｆ”状態とを区別する電圧Ｖ１Ｆを読み出し電圧として用いれば良い。電圧Ｖ７、Ｖ９、ＶＢ、Ｖ１３、Ｖ１９、及びＶ１Ｆを用いた読み出し動作を、それぞれ読み出し動作７Ｒ、９Ｒ、ＢＲ、１３Ｒ、１９Ｒ、及び１ＦＲと呼ぶ。
【００５４】
読み出し動作７Ｒは、メモリセルトランジスタＭＴの閾値電圧が電圧Ｖ７未満か否かを判定する処理である。読み出し動作９Ｒは、メモリセルトランジスタＭＴの閾値電圧が電圧Ｖ９未満か否かを判定する処理である。読み出し動作ＢＲは、メモリセルトランジスタＭＴの閾値電圧が電圧ＶＢ未満か否かを判定する処理である。読み出し動作１３Ｒは、メモリセルトランジスタＭＴの閾値電圧が電圧Ｖ１３未満か否かを判定する処理である。読み出し動作１９Ｒは、メモリセルトランジスタＭＴの閾値電圧が電圧Ｖ１９未満か否かを判定する処理である。そして読み出し動作１ＦＲは、メモリセルトランジスタＭＴの閾値電圧が電圧Ｖ１Ｆ以上か否か（つまり保持データが“１Ｆ”か否か）を判定する処理である。
【００５５】
１．２  読み出し動作について
次に、本実施形態に係るＮＡＮＤ型フラッシュメモリ１００における、データの読み出し方法について説明する。
【００５６】
１．２．１  第１の例について
まず、読み出し方法の第１の例について説明する。第１の例は、コントローラ２００がページ毎に読み出しコマンドを発行する例であり、この方法をpage-by-page readingと呼ぶ。図４は、本例に係る読み出し動作時における、入出力信号Ｉ／Ｏ、レディ・ビジー信号ＲＢｎ、及び選択ワード線ＷＬの様子を示すタイミングチャートである。
【００５７】
図示するようにコントローラ２００は、コマンド“０１ｈ”及び“００ｈ”を発行して、これをＮＡＮＤ型フラッシュメモリ１００へ送信する。コマンド“０１ｈ”は、bottomページへアクセスすることをＮＡＮＤ型フラッシュメモリ１００へ宣言するためのコマンドであり、“００ｈ”はこれからアドレスを入力する旨を宣言するためのコマンドである。これらのコマンドは、ＮＡＮＤ型フラッシュメモリ１００の例えばコマンドレジスタ１６０に格納される。
【００５８】
引き続きコントローラ２００は、アクセスすべき領域のアドレスＡＤＤを発行し、更にコマンド“３０ｈ”を発行し、これらをＮＡＮＤ型フラッシュメモリ１００に送信する。アドレスＡＤＤは、例えばアドレスレジスタ１５０に格納され、コマンド“３０ｈ”はコマンドレジスタ１６０に格納される。コマンド“３０ｈ”は、ＮＡＮＤ型フラッシュメモリ１００に対して読み出し動作を実行させるためのコマンドである。なお、図４ではアドレスＡＤＤが１サイクルで送信される場合を示しているが、ＮＡＮＤインターフェースでは例えば５サイクルにわたって送信され、初めの２サイクルがカラムアドレスであり、その後の３サイクルがロウアドレス（ページアドレス）である。なお、アクセス対象ページをコマンド“０１ｈ”等で表現する代わりに、複数サイクルで送信するアドレスＡＤＤの一部にページ情報を含めても良い。
【００５９】
従ってＮＡＮＤ型フラッシュメモリ１００のシーケンサ１７０は、コマンドレジスタ１６０にコマンド“３０ｈ”が保持されたことに応答して、アドレスレジスタ１５０に保持されたページアドレスに相当するbottomページの読み出し動作を開始し、ビジー状態となる。
【００６０】
ＮＡＮＤ型フラッシュメモリ１００では、センスアンプ１４０がビット線ＢＬを所定の電位にプリチャージする。更にロウデコーダ１２０が、コントローラ２００から受信したアドレスに対応するワード線ＷＬを選択する。そして、ドライバ回路１３０が、非選択ワード線ＷＬに電圧ＶＲＥＡＤを印加し、選択ワード線ＷＬに読み出し電圧ＶＣＧＲＶを印加する。この読み出し電圧ＶＣＧＲＶが、図３で説明した読み出しレベルに相当する。図４に示すように、bottomページ読み出しの際には、選択ワード線ＷＬには電圧Ｖ１、Ｖ３、Ｖ５、ＶＥ、Ｖ１０、及びＶ１５が順次印加され、読み出し動作１Ｒ、３Ｒ、５Ｒ、ＥＲ、１０Ｒ、及び１５Ｒが実行される。
【００６１】
例えば、読み出し動作１Ｒで読み出されたデータは、まずラッチ回路ＥＤＬに格納される。引き続き、読み出し動作３Ｒで読み出されたデータは、演算部ＯＰにおいて、ラッチ回路ＥＤＬ内のデータと論理演算され、その結果がラッチ回路ＥＤＬに格納される。更に、読み出し動作５Ｒで読み出されたデータは、演算部ＯＰにおいて、ラッチ回路ＥＤＬ内のデータと論理演算され、その結果がラッチ回路ＥＤＬに格納される。この動作を読み出し動作“ＥＲ”、“１０Ｒ”、及び“１５Ｒ”についても実行され、その結果がbottomページのデータＢ−ＤＡＴとして確定する。その後、ラッチ回路ＥＤＬ内のデータＢ−ＤＡＴが、ラッチ回路ＸＤＬに転送されて、ＮＡＮＤ型フラッシュメモリ１００はレディ状態となる。
【００６２】
ＮＡＮＤ型フラッシュメモリ１００がレディ状態になったことを受けて、コントローラ２００は、信号ＲＥｎをトグルさせる。すると、この信号ＲＥｎに同期して、ラッチ回路ＸＤＬ内のデータＢ−ＤＡＴがコントローラ２００に送信される。
【００６３】
Lowerページを読み出す際には、図４に示すように、コマンド“０１ｈ”の代わりにコマンド“０２ｈ”が発行される。コマンド“０２ｈ”は、lowerページへアクセスすることをＮＡＮＤ型フラッシュメモリ１００に宣言するためのコマンドである。その後の動作はbottomページとほぼ同様である。異なる点は、読み出しレベルとして電圧Ｖ２、ＶＡ、ＶＤ、Ｖ１１、Ｖ１７、及びＶ１Ｂが用いられ、またラッチ回路ＤＤＬが用いられる点である。ＤＤＬに格納されたlowerページのデータＬ−ＤＡＴはＸＤＬへ転送され、その後、コントローラ２００へ送信される。
【００６４】
Middleページデータを読み出す際には、middleページへアクセスすることをＮＡＮＤ型フラッシュメモリ１００に宣言するためのコマンド“０３ｈ”が発行される。その後の動作はbottomページ及びlowerページの場合とほぼ同様である。異なる点は、読み出しレベルとして電圧Ｖ４、Ｖ８、ＶＦ、Ｖ１８、Ｖ１Ａ、及びＶ１Ｄが用いられ、またラッチ回路ＣＤＬが用いられる点である。ＣＤＬに格納されたmiddleページのデータＭ−ＤＡＴはＸＤＬへ転送され、その後、コントローラ２００へ送信される。
【００６５】
Upperページデータを読み出す際には、upperページへアクセスすることをＮＡＮＤ型フラッシュメモリ１００に宣言するためのコマンド“０４ｈ”が発行される。読み出しレベルとして用いられる電圧はＶ６、ＶＣ、Ｖ１２、Ｖ１４、Ｖ１６、Ｖ１Ｃ、及びＶ１Ｅであり、７回の読み出し動作によりデータが確定する。そしてセンスアンプ１４０では、ラッチ回路ＢＤＬがupperページのデータを保持する。ＢＤＬに格納されたupperページのデータＵ−ＤＡＴはＸＤＬへ転送され、その後、コントローラ２００へ送信される。
【００６６】
そして、topページデータを読み出す際には、topページへアクセスすることをＮＡＮＤ型フラッシュメモリ１００に宣言するためのコマンド“０５ｈ”が発行される。読み出しレベルとして用いられる電圧はＶ７、Ｖ９、ＶＢ、Ｖ１３、Ｖ１９、及びＶＦであり、６回の読み出し動作によりデータが確定する。そしてセンスアンプ１４０では、ラッチ回路ＡＤＬがtopページのデータを保持する。ＡＤＬに格納されたtopページのデータＴ−ＤＡＴはＸＤＬへ転送され、その後、コントローラ２００へ送信される。
【００６７】
１．２．２  第２の例について
次に、読み出し方法の第２の例について説明する。第２の例は、page-by-page readingと異なり、１回のコマンド入力で読み出し動作１Ｒから１ＦＲまでを順次行う方法であり、これをsequential readingと呼ぶ。図５は、本例に係る読み出し動作時における、入出力信号Ｉ／Ｏ、レディ・ビジー信号ＲＢｎ、選択ワード線ＷＬ、並びにラッチ回路ＡＤＬ、ＢＤＬ、ＣＤＬ、ＤＤＬ、ＥＤＬ、及びＸＤＬの様子を示すタイミングチャートである。以下では、第１の例と異なる点についてのみ説明する。
【００６８】
図示するように、コントローラ２００は、コマンド”５０ｈ”、“００ｈ”、アドレスＡＤＤ、及びコマンド“３０ｈ”を順次発行する。コマンド“５０ｈ”は、sequential readingを行うためのprefixコマンドである。コマンド“３０ｈ”は、ＮＡＮＤ型フラッシュメモリ１００に対して読み出しの実行を命令するコマンドである。
【００６９】
そして、コマンド“３０ｈ”に応答してＮＡＮＤ型フラッシュメモリ１００はビジー状態となる。第１の例と異なる点は、選択ワード線ＷＬの電圧が、Ｖ１、Ｖ２、Ｖ３、…ＶＦ、Ｖ１０、Ｖ１１、…Ｖ１Ｆと、順次ステップアップされる点である。そして、各電圧が印加されたタイミングで、読み出し動作１Ｒ、２Ｒ、３Ｒ、…ＦＲ、１０Ｒ、１１Ｒ、…１ＦＲが実行される。
【００７０】
読み出し動作１Ｒの読み出し対象はbottomページであるから、このデータはラッチ回路ＥＤＬに格納される。また２Ｒの読み出し対象はlowerページであるから、このデータはＤＤＬに格納される。更に、３Ｒの読み出し対象はbottomページであるから、このデータは、既にＥＤＬに保持されているデータと、演算部ＯＰにより論理演算される。そしてその結果がＥＤＬに保持される。以下、同様である。
【００７１】
すると、読み出し動作１５Ｒが完了した時点で、ラッチ回路ＥＤＬに最終的なbottomページのデータＢ−ＤＡＴが格納され（bottomページは、１Ｒ、３Ｒ、５Ｒ、ＥＲ、１０Ｒ、及び１５Ｒでデータが確定する）、このデータＢ−ＤＡＴはラッチ回路ＸＤＬに転送される。そしてＮＡＮＤ型フラッシュメモリ１００はレディ状態となり、コントローラ２００は信号ＲＥｎをトグルすることでデータＢ−ＤＡＴをＮＡＮＤ型フラッシュメモリ１００から読み出すことが出来る。その後、コントローラ２００は、lowerページを読み出すために、コマンド”３Ｆｈ”を発行する。すると、ＮＡＮＤ型フラッシュメモリ１００はビジー状態となる。
【００７２】
そして読み出し動作１ＢＲが完了すると、ラッチ回路ＤＤＬには最終的なlowerページのデータＬ−ＤＡＴが格納され（lowerページは、２Ｒ、ＡＲ、ＤＲ、１１Ｒ、１７Ｒ、及び１ＢＲでデータが確定する）、このデータＬ−ＤＡＴはラッチ回路ＸＤＬに転送される。従って、コントローラ２００は、この時点でデータＬ−ＤＡＴをＮＡＮＤ型フラッシュメモリ１００から読み出すことが出来る。
【００７３】
その後は同様にして、読み出し動作１ＤＲが完了した時点でmiddleページのデータが確定し、読み出し動作１ＥＲが完了した時点でupperページのデータが確定し、読み出し動作１ＦＲが完了した時点でtopページのデータが確定する。そして、確定したデータがＸＤＬに転送されると、コントローラ２００はデータをＮＡＮＤ型フラッシュメモリ１００から読み出すことが出来る。
【００７４】
１．３  本実施態様に従った効果
本実施態様に従った構成によれば、５ビットデータ（32-level data）を保持可能なＮＡＮＤ型フラッシュメモリにおいて、bottomページ、lowerページ、middleページ、及びtopページのデータをそれぞれ６回の読み出し動作で確定し、upperページのデータを７回の読み出し動作で確定している。このように、４ページが６回の読み出し動作で確定され、１ページが７回の読み出し動作で確定される方法を、以下では「６−６−６−６−７マッピング」と呼ぶ。６−６−６−６−７マッピングによれば、データを確定するための読み出し回数をページ間で平均化出来る。そのため、ページ間におけるデータの信頼性を均一化し、読み出し動作信頼性を向上出来る。
【００７５】
なお本実施態様では、page-by-page readingにおいて、bottomページ、lowerページ、 middleページ、upperページ、及びtopページの順にデータが読み出される場合を例に説明した。しかし、この順番に限らず、ページの読み出し順序を入れ替えても構わない。このことは、第２実施態様以降の説明でも同様である。また、図３で説明したbottomページ、lowerページ、middleページ、upperページ、及びtopページのビット列は、互いに入れ替えても良い。具体的には、例えば図３において、middleページとupperページのビット列とを入れ替えても良い。このことも、第２実施態様以降の説明でも同様である。
【００７６】
２．第２実施態様
次に、第２実施態様に従った半導体記憶装置について説明する。本実施態様は、上記第１実施態様と異なる５−５−７−７−７マッピングに関するものである。以下では、第１実施態様と異なる点についてのみ説明する。
【００７７】
２．１  メモリセルトランジスタの保持データと読み出し電圧との関係について
図６は、本実施態様に従ったメモリセルトランジスタの取り得るデータと読み出し時に用いる電圧について示したダイアグラムであり、第１実施態様で説明した図３に相当する（閾値分布の図示は省略している）。
【００７８】
本実施態様においてメモリセルトランジスタが取り得る“０”〜“１Ｆ”状態と、bottomビット、lowerビット、middleビット、upperビット、及びtopビットとの関係は、次の通りである。
“０”状態：“１１１１１” （“top/upper/middle/lower/bottom”の順で表記）
“１”状態：“１１１１０”
“２”状態：“１１０１０”
“３”状態：“１１０１１”
“４”状態：“１１００１”
“５”状態：“１０００１”
“６”状態：“１００１１”
“７”状態：“０００１１”
“８”状態：“００００１”
“９”状態：“００１０１”
“Ａ”状態：“００１１１”
“Ｂ”状態：“００１１０”
“Ｃ”状態：“０１１１０”
“Ｄ”状態：“０１１１１”
“Ｅ”状態：“０１０１１”
“Ｆ”状態：“０１００１”
“１０”状態：“０１１０１”
“１１”状態：“１１１０１”
“１２”状態：“１０１０１”
“１３”状態：“１０１１１”
“１４”状態：“１０１１０”
“１５”状態：“１００１０”
“１６”状態：“０００１０”
“１７”状態：“０１０１０”
“１８”状態：“０１０００”
“１９”状態：“０１１００”
“１Ａ”状態：“００１００”
“１Ｂ”状態：“１０１００”
“１Ｃ”状態：“１１１００”
“１Ｄ”状態：“１１０００”
“１Ｅ”状態：“１００００”
“１Ｆ”状態：“０００００”
本例に係るマッピングであると、bottomページは電圧Ｖ１、Ｖ３、ＶＢ、ＶＤ、及びＶ１４を用いて読み出される。Lowerページは、電圧Ｖ４、Ｖ６、Ｖ８、ＶＡ、ＶＦ、Ｖ１３、及びＶ１８を用いて読み出される。Middleページは、電圧Ｖ２、Ｖ９、ＶＥ、Ｖ１０、Ｖ１５、Ｖ１９、及びＶ１Ｄを用いて読み出される。Upperページは、電圧Ｖ５、ＶＣ、Ｖ１２、Ｖ１７、Ｖ１Ａ、Ｖ１Ｃ、及びＶ１Ｅを用いて読み出される。そしてtopページは、電圧Ｖ７、Ｖ１１、Ｖ１６、Ｖ１Ｂ、及びＶ１Ｆを用いて読み出される。
【００７９】
２．２  読み出し動作について
次に、本実施形態に係るＮＡＮＤ型フラッシュメモリ１００における、データの読み出し方法について説明する。
【００８０】
＜Page-by-page readingについて＞
まず、page-by-page readingの場合につき、図７を用いて説明する。図７は、本例に係る読み出し動作時における、入出力信号Ｉ／Ｏ、レディ・ビジー信号ＲＢｎ、及び選択ワード線ＷＬの様子を示すタイミングチャートである。
【００８１】
図示するように、bottomページ読み出しでは、選択ワード線ＷＬの電圧がＶ１、Ｖ３、ＶＢ、ＶＤ、及びＶ１４と順次ステップアップされて、読み出し動作１Ｒ、３Ｒ、ＢＲ、ＤＲ、及び１４Ｒが実行される。この５回の読み出し動作により、bottomページのデータＢ−ＤＡＴが確定する。
【００８２】
Lowerページ読み出しでは、選択ワード線ＷＬの電圧がＶ４、Ｖ６、Ｖ８、ＶＡ、ＶＦ、Ｖ１３、及びＶ１８と順次ステップアップされて、読み出し動作４Ｒ、６Ｒ、８Ｒ、ＶＲ、ＦＲ、１３Ｒ、及び１８Ｒが実行される。この７回の読み出し動作により、lowerページのデータＬ−ＤＡＴが確定する。
【００８３】
Middleページ読み出しでは、選択ワード線ＷＬの電圧がＶ２、Ｖ９、ＶＥ、Ｖ１０、Ｖ１５、Ｖ１９、及びＶ１Ｄと順次ステップアップされて、読み出し動作２Ｒ、９Ｒ、ＥＲ、１０Ｒ、１５Ｒ、１９Ｒ、及び１ＤＲが実行される。この７回の読み出し動作により、middleページのデータＭ−ＤＡＴが確定する。
【００８４】
Upperページ読み出しでは、選択ワード線ＷＬの電圧がＶ５、ＶＣ、Ｖ１２、Ｖ１７、Ｖ１Ａ、Ｖ１Ｃ、及びＶ１Ｅと順次ステップアップされて、読み出し動作５Ｒ、ＣＲ、１２Ｒ、１７Ｒ、１ＡＲ、１ＣＲ、及び１ＥＲが実行される。この７回の読み出し動作により、upperページデータＵ−ＤＡＴが確定する。
【００８５】
そしてtopページ読み出しでは、選択ワード線ＷＬの電圧がＶ７、Ｖ１１、Ｖ１６、Ｖ１Ｂ、及びＶ１Ｆと順次ステップアップされて、読み出し動作７Ｒ、１１Ｒ、１６Ｒ、１ＢＲ、及び１ＦＲが実行される。この５回の読み出し動作により、topページのデータＴ−ＤＡＴが確定する。
【００８６】
＜Sequential readingについて＞
次に、sequential readingの場合につき、図８を用いて説明する。図８は、本例に係る読み出し動作時における、入出力信号Ｉ／Ｏ、レディ・ビジー信号ＲＢｎ、選択ワード線ＷＬ、並びにラッチ回路ＡＤＬ、ＢＤＬ、ＣＤＬ、ＤＤＬ、ＥＤＬ、及びＸＤＬの様子を示すタイミングチャートである。
【００８７】
図示するように、第１実施態様で説明した図５と異なる点は、読み出し動作１４Ｒの完了時点でbottomページのデータＢ−ＤＡＴが確定し、読み出し動作１８Ｒの完了時点でlowerページデータＬ−ＤＡＴが確定する点である。
【００８８】
２．３  本実施態様に従った効果
本実施態様によれば、読み出し対象データによってエラーの発生率が異なる場合であっても、ページ間におけるエラーの発生率を均一化でき、読み出し動作信頼性を向上できる。
【００８９】
すなわち、本実施態様によれば、読み出し動作１Ｒと１ＦＲとが、異なるページ読み出し動作で行われる。読み出し動作１Ｒは、消去状態にあるメモリセルトランジスタを確定させる動作である。他方で１ＦＲは、最大の閾値を有するメモリセルトランジスタを確定させる動作である。そして、３２個の閾値分布の中でも、消去状態のメモリセルトランジスタは周囲からのディスターブの影響を受けやすく、閾値が変動し易い。より具体的には、閾値が上昇して“１”状態や“２”状態の閾値に達することがある。つまり、読み出し動作１Ｒは他の読み出し動作に比べてエラー発生率の高い読み出し動作である、と言うことができる。逆に“１Ｆ”状態は閾値が低下しやすく、例えばデータが書き込まれてから時間が経過すると、その閾値が“１Ｆ”状態から“１Ｅ”状態や“１Ｄ”状態に達することがある。従って、読み出し動作１ＦＲもまた、他の読み出し動作に比べてエラー発生率の高い読み出し動作である。
【００９０】
この点、本実施形態によれば、各メモリセルトランジスタが５ビットデータを保持可能なＮＡＮＤ型フラッシュメモリにおいて、bottomページデータ及びtopページデータをそれぞれ５回の読み出し動作で確定し、その他のページデータをそれぞれ７回の読み出し動作で確定している。このような方法を、本明細書では「５−５−７−７−７マッピング」と呼ぶ。
【００９１】
そして本例に係る５−５−７−７−７マッピングによれば、５回の読み出し動作でデータが確定するbottomページとtopページに、読み出し動作１Ｒ及び１ＦＲがそれぞれ割り当てられている。すなわち、エラー発生率の高い読み出し動作１Ｒ及び１ＦＲを割り当てる代わりに、bottomページ及びtopページの読み出し回数（５回）を、他のページ（７回）よりも少なくしている。従って、読み出し動作１Ｒ及び１ＦＲにおけるエラー発生率が高い場合であっても、第１実施形態と同様にページ間でのエラー発生率を均一化でき、読み出し信頼性を向上できる。
【００９２】
３．第３実施態様
次に、第３実施態様に従った半導体記憶装置について説明する。本実施態様は、上記第１、第２実施態様と異なる４−６−７−７−７マッピングに関するものである。以下では、第１、第２実施態様と異なる点についてのみ説明する。
【００９３】
３．１  メモリセルトランジスタの保持データと読み出しレベルとの関係について
図９は、本実施態様に従ったメモリセルトランジスタの取り得るデータと読み出し時に用いる電圧について示したダイアグラムであり、第１実施態様で説明した図３に相当する（閾値分布の図示は省略している）。
【００９４】
本実施態様においてメモリセルトランジスタが取り得る“０”〜“１Ｆ”状態と、bottomビット、lowerビット、middleビット、upperビット、及びtopビットとの関係は、次の通りである。
“０”状態：“１１１１１”（“top/upper/middle/lower/bottom”の順で表記）
“１”状態：“０１１１１”
“２”状態：“０１１１０”
“３”状態：“０１１００”
“４”状態：“０１０００”
“５”状態：“０００００”
“６”状態：“００１００”
“７”状態：“００１０１”
“８”状態：“００１１１”
“９”状態：“００１１０”
“Ａ”状態：“０００１０”
“Ｂ”状態：“０００１１”
“Ｃ”状態：“０１０１１”
“Ｄ”状態：“０１０１０”
“Ｅ”状態：“１１０１０”
“Ｆ”状態：“１１１１０”
“１０”状態：“１１１００”
“１１”状態：“１０１００”
“１２”状態：“１０１１０”
“１３”状態：“１００１０”
“１４”状態：“１００００”
“１５”状態：“１１０００”
“１６”状態：“１１００１”
“１７”状態：“１１０１１”
“１８”状態：“１００１１”
“１９”状態：“１０１１１”
“１Ａ”状態：“１０１０１”
“１Ｂ”状態：“１１１０１”
“１Ｃ”状態：“０１１０１”
“１Ｄ”状態：“０１００１”
“１Ｅ”状態：“００００１”
“１Ｆ”状態：“１０００１”
本例に係るマッピングであると、bottomページは電圧Ｖ２、Ｖ７、Ｖ９、ＶＢ、ＶＤ、及びＶ１６を用いて読み出される。Lowerページは、電圧Ｖ３、Ｖ８、Ｖ１０、Ｖ１２、Ｖ１４、Ｖ１７、及びＶ１Ａを用いて読み出される。Middleページは、電圧Ｖ４、Ｖ６、ＶＡ、ＶＦ、Ｖ１３、Ｖ１９、及びＶ１Ｄを用いて読み出される。またupperページは、電圧Ｖ５、ＶＣ、Ｖ１１、Ｖ１５、Ｖ１８、Ｖ１Ｂ、及びＶ１Ｅを用いて読み出される。そしてtopページは、電圧Ｖ１、ＶＥ、Ｖ１Ｃ、及びＶ１Ｆを用いて読み出される。
【００９５】
３．２  読み出し動作について
次に、本実施形態に係るＮＡＮＤ型フラッシュメモリ１００における、データの読み出し方法について説明する。
【００９６】
＜Page-by-page readingについて＞
まず、page-by-page readingの場合につき、図１０を用いて説明する。図１０は、本例に係る読み出し動作時における、入出力信号Ｉ／Ｏ、レディ・ビジー信号ＲＢｎ、及び選択ワード線ＷＬの様子を示すタイミングチャートである。
【００９７】
図示するように、bottomページ読み出しでは、選択ワード線ＷＬの電圧がＶ２、Ｖ７、Ｖ９、ＶＢ、ＶＤ、及びＶ１６と順次ステップアップされて、読み出し動作２Ｒ、７Ｒ、９Ｒ、ＢＲ、ＤＲ、及び１６Ｒが実行される。この６回の読み出し動作により、bottomページのデータＢ−ＤＡＴが確定する。
【００９８】
Lowerページ読み出しでは、選択ワード線ＷＬの電圧がＶ３、Ｖ８、Ｖ１０、Ｖ１２、Ｖ１４、Ｖ１７、及びＶ１Ａと順次ステップアップされて、読み出し動作３Ｒ、８Ｒ、１０Ｒ、１２Ｒ、１４Ｒ、１７Ｒ、及び１ＡＲが実行される。この７回の読み出し動作により、lowerページのデータが確定する。
【００９９】
Middleページ読み出しでは、選択ワード線ＷＬの電圧がＶ４、Ｖ６、ＶＡ、ＶＦ、Ｖ１３、Ｖ１９、及びＶ１Ｄと順次ステップアップされて、読み出し動作４Ｒ、６Ｒ、ＡＲ、ＦＲ、１３Ｒ、１９Ｒ、及び１ＤＲが実行される。この７回の読み出し動作により、middleページのデータが確定する。
【０１００】
Upperページ読み出しでは、選択ワード線ＷＬの電圧がＶ５、ＶＣ、Ｖ１１、Ｖ１５、Ｖ１８、Ｖ１Ｂ、及びＶ１Ｅと順次ステップアップされて、読み出し動作５Ｒ、ＣＲ、１１Ｒ、１５Ｒ、１８Ｒ、１ＢＲ、及び１ＥＲが実行される。この７回の読み出し動作により、upperページのデータが確定する。
【０１０１】
そしてtopページ読み出しでは、選択ワード線ＷＬの電圧がＶ１、ＶＥ、Ｖ１Ｃ、及びＶ１Ｆと順次ステップアップされて、読み出し動作１Ｒ、ＥＲ、１ＣＲ、及び１ＦＲが実行される。この４回の読み出し動作により、topページのデータが確定する。
【０１０２】
＜Sequential readingについて＞
次に、sequential readingの場合につき、図１１を用いて説明する。図１１は、本例に係る読み出し動作時における、入出力信号Ｉ／Ｏ、レディ・ビジー信号ＲＢｎ、選択ワード線ＷＬ、並びにラッチ回路ＡＤＬ、ＢＤＬ、ＣＤＬ、ＤＤＬ、ＥＤＬ、及びＸＤＬの様子を示すタイミングチャートである。
【０１０３】
図示するように、第１実施態様で説明した図５と異なる点は、読み出し動作１６Ｒの完了時点でbottomページのデータＢ−ＤＡＴが確定し、読み出し動作１ＡＲの完了時点でlowerページのデータＬ−ＤＡＴが確定する点である。
【０１０４】
３．３  本実施態様に従った効果
本実施形態によれば、topページデータを４回の読み出し動作で確定し、bottomページデータを６回の読み出し動作で確定し、その他のページデータをそれぞれ７回の読み出し動作で確定している。このような方法を、本明細書では「４−６−７−７−７マッピング」と呼ぶ。
【０１０５】
そして本例に係る４−６−７−７−７マッピングによれば、４回の読み出し動作でデータが確定するtopページに、読み出し動作１Ｒ及び１ＦＲがそれぞれ割り当てられている。すなわち、エラー発生率の高い読み出し動作１Ｒ及び１ＦＲの両方を割り当てる代わりに、topページの読み出し回数（４回）を、他のページ（６回、７回）よりも大幅に少なくしている。従って、読み出し動作１Ｒ及び１ＦＲにおけるエラー発生率が高い場合であっても、第１実施形態と同様にページ間でのエラー発生率を均一化でき、読み出し信頼性を向上できる。
【０１０６】
４．第４実施態様
次に、第４実施態様に従った半導体記憶装置について説明する。本実施態様は、上記第３実施態様と異なる４−６−７−７−７マッピングに関するものである。以下では、第１及び第３実施態様と異なる点についてのみ説明する。
【０１０７】
４．１  メモリセルトランジスタの保持データと読み出しレベルとの関係について
図１２は、本実施態様に従ったメモリセルトランジスタの取り得るデータと読み出し時に用いる電圧について示したダイアグラムであり、第１実施態様で説明した図３に相当する（閾値分布の図示は省略している）。
【０１０８】
本実施態様においてメモリセルトランジスタが取り得る“０”〜“１Ｆ”状態と、bottomビット、lowerビット、middleビット、upperビット、及びtopビットとの関係は、次の通りである。
“０”状態：“１１１１１”（“top/upper/middle/lower/bottom”の順で表記）
“１”状態：“１１１１０”
“２”状態：“１１１００”
“３”状態：“１１０００”
“４”状態：“１００００”
“５”状態：“０００００”
“６”状態：“０００１０”
“７”状態：“００１１０”
“８”状態：“００１００”
“９”状態：“１０１００”
“Ａ”状態：“１０１１０”
“Ｂ”状態：“１０１１１”
“Ｃ”状態：“１００１１”
“Ｄ”状態：“１００１０”
“Ｅ”状態：“１１０１０”
“Ｆ”状態：“０１０１０”
“１０”状態：“０１０００”
“１１”状態：“０１１００”
“１２”状態：“０１１１０”
“１３”状態：“０１１１１”
“１４”状態：“００１１１”
“１５”状態：“０００１１”
“１６”状態：“０１０１１”
“１７”状態：“１１０１１”
“１８”状態：“１１００１”
“１９”状態：“１１１０１”
“１Ａ”状態：“１０１０１”
“１Ｂ”状態：“００１０１”
“１Ｃ”状態：“０１１０１”
“１Ｄ”状態：“０１００１”
“１Ｅ”状態：“００００１”
“１Ｆ”状態：“１０００１”
本例に係るマッピングであると、bottomページは電圧Ｖ１、ＶＢ、ＶＤ、及びＶ１３を用いて読み出される。Lowerページは、電圧Ｖ２、Ｖ６、Ｖ８、ＶＡ、Ｖ１０、Ｖ１２、及びＶ１８を用いて読み出される。Middleページは、電圧Ｖ３、Ｖ７、ＶＣ、Ｖ１１、Ｖ１５、Ｖ１９、及びＶ１Ｄを用いて読み出される。またupperページは、電圧Ｖ４、ＶＥ、Ｖ１４、Ｖ１６、Ｖ１Ａ、Ｖ１Ｃ、及びＶ１Ｅを用いて読み出される。そしてtopページは、電圧Ｖ５、Ｖ９、ＶＦ、Ｖ１７、Ｖ１Ｂ、及びＶ１Ｆを用いて読み出される。
【０１０９】
４．２  読み出し動作について
次に、本実施形態に係るＮＡＮＤ型フラッシュメモリ１００における、データの読み出し方法について説明する。
【０１１０】
＜Page-by-page readingについて＞
まず、page-by-page readingの場合につき、図１３を用いて説明する。図１３は、本例に係る読み出し動作時における、入出力信号Ｉ／Ｏ、レディ・ビジー信号ＲＢｎ、及び選択ワード線ＷＬの様子を示すタイミングチャートである。
【０１１１】
図示するように、bottomページ読み出しでは、選択ワード線ＷＬの電圧がＶ１、ＶＢ、ＶＤ、及びＶ１３と順次ステップアップされて、読み出し動作１Ｒ、ＢＲ、ＤＲ、及び１３Ｒが実行される。この４回の読み出し動作により、bottomページのデータＢ−ＤＡＴが確定する。
【０１１２】
Lowerページ読み出しでは、選択ワード線ＷＬの電圧がＶ２、Ｖ６、Ｖ８、ＶＡ、Ｖ１０、Ｖ１２、及びＶ１８と順次ステップアップされて、読み出し動作２Ｒ、６Ｒ、８Ｒ、ＡＲ、１０Ｒ、１２Ｒ、及び１８Ｒが実行される。この７回の読み出し動作により、lowerページのデータが確定する。
【０１１３】
Middleページ読み出しでは、選択ワード線ＷＬの電圧がＶ３、Ｖ７、ＶＣ、Ｖ１１、Ｖ１５、Ｖ１９、及びＶ１Ｄと順次ステップアップされて、読み出し動作３Ｒ、７Ｒ、ＣＲ、１１Ｒ、１５Ｒ、１９Ｒ、及び１ＤＲが実行される。この７回の読み出し動作により、middleページのデータが確定する。
【０１１４】
Upperページ読み出しでは、選択ワード線ＷＬの電圧がＶ４、ＶＥ、Ｖ１４、Ｖ１６、Ｖ１Ａ、Ｖ１Ｃ、及びＶ１Ｅと順次ステップアップされて、読み出し動作４Ｒ、ＥＲ、１４Ｒ、１６Ｒ、１ＡＲ、１ＣＲ、及び１ＥＲが実行される。この７回の読み出し動作により、upperページのデータが確定する。
【０１１５】
そしてtopページ読み出しでは、選択ワード線ＷＬの電圧がＶ５、Ｖ９、ＶＦ、Ｖ１７、Ｖ１Ｂ、及びＶ１Ｆと順次ステップアップされて、読み出し動作５Ｒ、９Ｒ、ＦＲ、１７Ｒ、１ＢＲ、及び１ＦＲが実行される。この６回の読み出し動作により、topページのデータが確定する。
【０１１６】
＜Sequential readingについて＞
次に、sequential readingの場合につき、図１４を用いて説明する。図１４は、本例に係る読み出し動作時における、入出力信号Ｉ／Ｏ、レディ・ビジー信号ＲＢｎ、選択ワード線ＷＬ、並びにラッチ回路ＡＤＬ、ＢＤＬ、ＣＤＬ、ＤＤＬ、ＥＤＬ、及びＸＤＬの様子を示すタイミングチャートである。
【０１１７】
図示するように、第１実施態様で説明した図５と異なる点は、読み出し動作１３Ｒの完了時点でbottomページのデータＢ−ＤＡＴが確定する点である。
【０１１８】
４．３  本実施態様に従った効果  
本実施形態に係る４−６−７−７−７マッピングによれば、４回の読み出し動作でデータが確定するbottomページに読み出し動作１Ｒを割り当て、６回の読み出し動作でデータが確定するtopページに読み出し動作１ＦＲを割り当てている。これは、読み出し動作１Ｒにおけるエラー発生率が、読み出し動作１ＦＲにおけるエラー発生率よりも高い場合があり得るからである。これにより、読み出し動作１Ｒにおけるエラー発生率が極端に高い場合であっても、第１実施形態と同様にページ間でのエラー発生率を均一化でき、読み出し信頼性を向上できる。
【０１１９】
更に本実施態様によれば、キャッシュメモリＸＤＬを早くリリースすることが出来る。すなわち、本例に係るマッピングであると、読み出し動作１３Ｒで最初のページデータが確定する（図１２の例であるとbottomページ）。従って、この時点でＮＡＮＤ型フラッシュメモリ１００はデータをコントローラ２００へ送信することが出来、リードレイテンシを小さく出来る
５．第５実施態様
次に、第５実施態様に従った半導体記憶装置について説明する。本実施形態は、上記第１乃至第４実施形態で説明した半導体記憶装置への書き込み動作及び読み出し動作に関するものであり、より具体的にはデータのスクランブル方法に関する。以下では、第１乃至第４実施形態と異なる点についてのみ説明する。
【０１２０】
５．１  データの書き込み動作
図１５は、本実施形態に係るデータの書き込み動作を示すフローチャートである。図示するように、まずホスト機器３００が、ＮＡＮＤ型フラッシュメモリ１００へのデータの書き込み命令を発行し、これを書き込みデータと共にコントローラ２００へ送信する（ステップＳ１０）。
【０１２１】
コントローラ２００は、ホスト機器３００から受信したデータを、例えばバッファメモリ２４０に保持させる。そして例えばプロセッサ２３０は、データをページ単位に分割する（ステップＳ２０）。なお、本ステップにおける「データを分割する」とは、“０”と“１”の集合であるデータを、物理的に複数のビット列に分けることを必ずしも意味せず、単に、ＮＡＮＤ型フラッシュメモリ１００の各ページに割り当てるビット列を決定する、ことであってよい。引き続き、コントローラ２００のＥＣＣ回路２６０は、ページ単位に分割されたデータに基づいてパリティを生成し（ステップＳ２１）、データにパリティを付与することにより、ページデータを生成する（ステップＳ２２）。次に、例えばプロセッサ２３０またはＥＣＣ回路２６０は、１本のワード線ＷＬに割り当てられた５ページ（top/upper/middle/lower/bottomページ）につき、ページ間でビットを入れ替えてデータをスクランブルする（ステップＳ２３）。そしてプロセッサ２３０は書き込みコマンドを発行し、これをスクランブルされたデータと共にＮＡＮＤ型フラッシュメモリ１００へ送信する（ステップＳ２４）。
【０１２２】
書き込みコマンドを受信したＮＡＮＤ型フラッシュメモリ１００は、スクランブルされたデータを、メモリセルアレイ１１０内において指定されたアドレスに書き込む（ステップＳ３０）。この際、ＮＡＮＤ型フラッシュメモリ１００は、full sequence program方式を用いてデータを書き込む。full sequence program方式は、受信した５ページ分のデータを受信し、このデータに基づいてプログラムを行うことにより、メモリセルトランジスタＭＴの閾値を、消去状態から目標とする閾値へ直接に変動させるものである。つまり、full sequence program方式では、目標とする閾値に対応するプログラムベリファイ電圧を用いて書き込み動作が実行される。但し、必ずしもfull sequence program方式に限定されるものではなく、場合によっては2-stage program方式を用いてもよい。2-stage program方式とは、消去状態の閾値から目標とする閾値までの中間レベルの閾値を第１のプログラムベリファイ電圧として用い、1st-stage programではこの第１のプログラムベリファイ電圧を目標でデータを書き込む。その後、2nd-stage programを行うことで、実際の目標となる閾値を第２のプログラムベリファイ電圧として用いてデータを書き込む方式である。
【０１２３】
以上のようにして、データがＮＡＮＤ型フラッシュメモリ１００に書き込まれる。上記動作の具体的につき、図１６乃至図１９を用いて説明する。図１６は、図１５で説明したコントローラの処理の流れを大まかに示す概念図であり、図１７はステップＳ２３におけるデータのスクランブル方法を示す概念図であり、図１８はステップＳ２３のフローチャートであり、図１９はステップＳ２４で発行されるコマンドシーケンスの模式図である。
【０１２４】
まず図１６に示すように、コントローラ２００が、例えば２０ページ分に相当する書き込みデータをホスト機器３００から受信したと仮定する。するとコントローラ２００はステップＳ２０で説明したように、受信したデータをページ単位に分割する。図１６の例であると、分割されたデータをそれぞれデータユニットＤＵ（ＤＵ０〜ＤＵ１９）と呼ぶことにする。１つのデータユニットＤＵのデータサイズは、ページサイズよりも小さい。なぜなら、データユニットにパリティが付与されて１ページ分の書き込みデータが生成されるからである。
【０１２５】
次にステップＳ２１で説明したように、ＥＣＣ回路２６０がデータユニットＤＵ毎にパリティを生成し、これをデータユニットＤＵに付与する。図１６において斜線で示した部分がパリティである。そしてステップＳ２３で説明したように、例えばプロセッサ２３０またはＥＣＣ回路２６０がデータをスクランブルする。例えば図１６において、データユニットＤＵ０〜ＤＵ４がそれぞれワード線ＷＬ０のbottom/lower/middle/upper/topページに対応していたとする。するとプロセッサ２３０またはＥＣＣ回路２６０は、データユニットＤＵ０〜ＤＵ４間でデータをスクランブルする。パリティも同様である。また、データユニットＤＵ５〜ＤＵ９がそれぞれワード線ＷＬ１のbottom/lower/middle/upper/topページに対応していたとする。するとプロセッサ２３０またはＥＣＣ回路２６０は、データユニットＤＵ５〜ＤＵ９間でデータをスクランブルする。データユニットＤＵ１０〜ＤＵ１４、及びデータユニットＤＵ１５〜ＤＵ１９についても同様である。この結果、データユニットＤＵ０〜ＤＵ４及びこれらのパリティがスクランブルされて、ワード線ＷＬ０の各ページに書き込むべきデータＰＧ０〜ＰＧ４が生成される。また、データユニットＤＵ５〜ＤＵ９及びこれらのパリティがスクランブルされて、ワード線ＷＬ１の各ページに書き込むべきデータＰＧ５〜ＰＧ９が生成される。ワード線ＷＬ２に書き込むべきデータＰＧ１０〜ＰＧ１４、及びワード線ＷＬ３に書き込むべきデータＰＧ１５〜ＰＧ１９も同様である。
【０１２６】
上記ステップＳ２３のデータスクランブルの具体例につき、図１７を用いて説明する。図１７の上図はスクランブル前のデータ（データユニットＤＵとパリティ）であり、説明の単純化のために、１ページのサイズが１６ビットである場合を例に示している。そして、図中のbottomページに含まれるビットＢ０、Ｂ１、Ｂ２、…Ｂ１５が、例えば図１６におけるデータユニットＤＵ０とそのパリティに相当する。また、lowerページに含まれるビットＬ０、Ｌ１、Ｌ２、…Ｌ１５がデータユニットＤＵ１とそのパリティに相当し、middleページに含まれるビットＭ０、Ｍ１、Ｍ２、…Ｍ１５がデータユニットＤＵ２とそのパリティに相当し、upperページに含まれるビットＵ０、Ｕ１、Ｕ２、…Ｕ１５がデータユニットＤＵ３とそのパリティに相当し、topページに含まれるビットＴ０、Ｔ１、Ｔ２、…Ｔ１５がデータユニットＤＵ４とそのパリティに相当する。
【０１２７】
図１７の下図は、スクランブル後のデータであり、例えば図中のbottomページがデータＰＧ０に相当し、lowerページがデータＰＧ１に相当し、middleページがデータＰＧ２に相当し、upperページがデータＰＧ３に相当し、topページがデータＰＧ４に相当する。スクランブル後のデータでは、参考のため、スクランブル前のbottomビットにのみ斜線を付している。図示するように、最下位ビット（T0/U0/M0/L0/B0）はそのままであるが、１ビット目のデータ（T1/U1/M1/L1/B1）は、ページ間で１ページ分ずれる。すなわち、bottomビットはtopビットＴ１に置換され、lowerビットはbottomビットＢ１に置換され、middleビットはlowerビットＬ１に置換され、upperビットはmiddleビットＭ１に置換され、topビットはupperビットＵ１に置換される。２ビット目のデータ（T2/U2/M2/L2/B2）は、ページ間で更に１ページ分ずれる。すなわち、bottomビットはupperビットＵ２に置換され、lowerビットはtopビットＴ２に置換され、middleビットはbottomビットＢ２に置換され、upperビットはlowerビットＬ２に置換され、topビットはmiddleビットＭ２に置換される。以下、同様である。
【０１２８】
以上のようにスクランブルされた結果、bottomページ（データＰＧ０）、lowerページ（データＰＧ１）、middleページ（データＰＧ２）、upperページ（データＰＧ３）、及びtopページ（データＰＧ４）は下記のように生成される。  
ＰＧ０：＜B0/T1/U2/M3/L4/B5/T6/U7/M8/L9/B10/T11/U12/M13/L14/B15＞
ＰＧ１：＜L0/B1/T2/U3/M4/L5/B6/T7/U8/M9/L10/B11/T12/U13/M14/L15＞
ＰＧ２：＜M0/L1/B2/T3/U4/M5/L6/B7/T8/U9/M10/L11/B12/T13/U14/M15＞
ＰＧ３：＜U0/M1/L2/B3/T4/U5/M6/L7/B8/T9/U10/M11/L12/B13/T14/U15＞
ＰＧ４：＜T0/U1/M2/L3/B4/T5/U6/M7/L8/B9/T10/U11/M12/L13/B14/T15＞
このように、１本のワード線ＷＬに割り当てられた全ページ（本例では５ページ）間でビットを置換することによりデータをスクランブルする方式を、以下ではfull page scramble方式と呼ぶことにする。
【０１２９】
図１８は、上記スクランブル処理のフローチャートである。図中におけるｉは変数であり、ビット線ＢＬの番号（ＢＬｉ）を示す。例えば図１７の例のように１ページが１６ビットの場合、ｉ＝０〜１５である。
【０１３０】
図示するように、例えばプロセッサ２３０は、書き込みデータの各ビットが対応するビット線ＢＬを確認する。そして５の倍数の番号に対応するビット線ＢＬ、換言すれば、（ｉ＋５）を５で除算した際の余りがゼロの場合（ステップＳ２００、ＹＥＳ）、ページ間でのビットの入れ替えは行われない（ステップＳ２０１）。なお、図１８におけるmod(X, Y)なる表記は、ＸをＹで除算した際の余りの算出式を示す。従って、ＢＬ０、ＢＬ５、ＢＬ１０、及びＢＬ１５に対応するtop/upper/middle/lower/bottomビットは、スクランブル後もtop/upper/middle/lower/bottomビットのままである。
【０１３１】
他方で、mod((i+5), 5)=1の場合（ステップＳ２０２、ＹＥＳ）、すなわち、ＢＬ１、ＢＬ６、及びＢＬ１１に対応するtop/upper/middle/lower/bottomビットはそれぞれ、スクランブル後のデータにおけるbottom/top/upper/middle/lowerビットとされる（ステップＳ２０３）。言い換えれば、スクランブル後のデータにおけるtop/upper/middle/lower/bottomビットは、スクランブル前のデータにおけるupper/middle/lower/bottom/topビットに置換される。
【０１３２】
また、mod((i+5), 5)=2の場合（ステップＳ２０４、ＹＥＳ）、すなわち、ＢＬ２、ＢＬ７、及びＢＬ１２に対応するtop/upper/middle/lower/bottomビットはそれぞれ、スクランブル後のデータにおけるlower/bottom/top/upper/middleビットとされる（ステップＳ２０５）。言い換えれば、スクランブル後のデータにおけるtop/upper/middle/lower/bottomビットは、スクランブル前のデータにおけるmiddle/lower/bottom/top/upperビットに置換される。
【０１３３】
更に、mod((i+5), 5)=3の場合（ステップＳ２０６、ＹＥＳ）、すなわち、ＢＬ３、ＢＬ８、及びＢＬ１３に対応するtop/upper/middle/lower/bottomビットはそれぞれ、スクランブル後のデータにおけるmiddle/lower/bottom/top/upperビットとされる（ステップＳ２０７）。言い換えれば、スクランブル後のデータにおけるtop/upper/middle/lower/bottomビットは、スクランブル前のデータにおけるlower/bottom/top/upper/middleビットに置換される。
【０１３４】
そして、mod((i+5), 5)=4の場合（ステップＳ２０６、ＮＯ）、すなわち、ＢＬ４、ＢＬ９、及びＢＬ１４に対応するtop/upper/middle/lower/bottomビットはそれぞれ、スクランブル後のデータにおけるupper/middle/lower/bottom/topビットとされる（ステップＳ２０８）。言い換えれば、スクランブル後のデータにおけるtop/upper/middle/lower/bottomビットは、スクランブル前のデータにおけるbottom/top/upper/middle/lowerビットに置換される。
【０１３５】
以上のように、top/upper/middle/lower/bottomの５ページ分のデータの各ビットが、ページ間で入れ替えられることにより、scrambledデータが生成される。なお、上記説明では１ビット毎にデータが入れ替えられる場合を例に説明したが、例えば１ビット毎ではなく、カラム単位であってもよい。すなわち、ＮＡＮＤ型フラッシュメモリでは、複数（例えば連続する８本）のビット線ＢＬ（ＢＬ０〜ＢＬ７、ＢＬ８〜ＢＬ１５、…）が、「カラム」という単位で扱われる場合がある。そして、コントローラ２００から送信されるカラムアドレスは、この複数のビット線ＢＬの集合を指定する。このような場合、図１７及び上記説明におけるビットＢ０〜Ｂ１５、Ｌ０〜Ｌ１５、…Ｔ０〜Ｔ１５の各々は、１ビットデータではなく１カラム分のビット列であってもよい。また、スクランブル方法は図２１に示すルールに限らず、複数のページ間でビットの入れ替えが行われれば種々の方法を用いることができる。
【０１３６】
上記のようにしてデータのスクランブルが完了すると、コントローラ２００のプロセッサ２３０は、ステップＳ２４で説明したように、ＮＡＮＤ型フラッシュメモリ１００に対してデータの書き込みコマンドを発行する。図１９は、コントローラ２００からＮＡＮＤ型フラッシュメモリ１００へ送信されるコマンドシーケンスの概念図である。
【０１３７】
図示するようにコントローラ２００は、まずprefixコマンド“Ｘ１ｈ”を発行する。コマンド“Ｘ１ｈ”は、ＮＡＮＤ型フラッシュメモリ１００に対して、full page scramble方式を用いてデータを書き込む旨を宣言するコマンドである。なお、本例ではコントローラ２００がスクランブルを行い、ＮＡＮＤ型フラッシュメモリ１００は通常の読み出し処理を行うので、特に“Ｘ１ｈ”が発行されない場合であってもよい。引き続きコントローラ２００は、第１シーケンスＳＱ１を発行し、ＮＡＮＤ型フラッシュメモリ１００へ転送する。第１シーケンスＳＱ１は、スクランブル後の書き込みデータにおけるbottomページデータを転送するものである。第１シーケンスＳＱ１において、まずコマンド“０１ｈ”が発行される。コマンド“０１ｈ”は、bottomページの指定を意味する。引き続き、コントローラ２００はコマンド“８０ｈ”を発行してアドレス入力を宣言し、例えば５サイクルにわたってアドレスＡＤＤを送信する。このアドレスＡＤＤは、bottomページデータがプログラムされるＢＬＫ及びページを指定する。引き続きコントローラ２００は、スクランブルされた書き込みデータのうちのbottomページデータＤＡＴをＮＡＮＤ型フラッシュメモリ１００へ送信し、最後にコマンド“１Ａｈ”を発行する。コマンド“１Ａｈ”は、ＮＡＮＤ型フラッシュメモリ１００に対してデータをセンスアンプ１４０に取り込ませるためのコマンドである。そしてＮＡＮＤ型フラッシュメモリ１００は一時的にビジー状態となり、この期間にbottomページデータは例えばラッチ回路ＡＤＬに保持される。
【０１３８】
引き続き、ＮＡＮＤ型フラッシュメモリ１００がレディ状態に復帰すると、コントローラ２００は第２シーケンスＳＱ２を発行し、ＮＡＮＤ型フラッシュメモリ１００へ転送する。第２シーケンスＳＱ２は、スクランブル後の書き込みデータにおけるlowerページデータを転送するものである。第２シーケンスＳＱ２が第１シーケンスＳＱ１と異なる点は、以下の点である。すなわち、
・“０１ｈ”の代わりに“０２ｈ”が発行され、lowerページが指定される。  
・データＤＡＴは、scrambledデータにおけるlowerページ。  
・lowerページデータは、例えばラッチ回路ＢＤＬに保持される。
【０１３９】
以下、同様にしてコントローラ２００は第３乃至第５シーケンスＳＱ２〜ＳＱ５を発行し、ＮＡＮＤ型フラッシュメモリ１００へmiddleページデータ、upperページデータ、及びtopページデータを転送する。これらのデータは、それぞれ例えばラッチ回路ＣＤＬ、ＤＤＬ、及びＥＤＬに保持される。そして、第５シーケンスＳＱ５において、コマンド“１Ａｈ”の代わりに“１０ｈ”が発行される。コマンド“１０ｈ”は、ＮＡＮＤ型フラッシュメモリ１００に対してデータのメモリセルアレイ１１０への書き込み動作を命令する。ＮＡＮＤ型フラッシュメモリ１００は、コマンド“１０ｈ”に応答してビジー状態となり、受信した５ページ分のデータを用いてフルシーケンスプログラムを実行する。
【０１４０】
５．２  データの読み出し動作
次に、上記scrambledデータの読み出し方法について説明する。図２０Ａは、本実施形態に係るデータの読み出し動作を示すフローチャートである。図示するように、まずホスト機器３００が、ＮＡＮＤ型フラッシュメモリ１００からのデータの読み出し命令を発行し、これをコントローラ２００へ送信する（ステップＳ１１）。
【０１４１】
コントローラ２００は、ホスト機器３００から受信した命令に応答して、ＮＡＮＤ型フラッシュメモリ１００に書き込まれたデータ（これはscrambledデータである）の読み出しコマンドを発行し、これをＮＡＮＤ型フラッシュメモリ１００へ送信する（ステップＳ２５）。
【０１４２】
受信した読み出しコマンドに応答して、ＮＡＮＤ型フラッシュメモリ１００はメモリセルアレイ１１０からデータを読み出す（ステップＳ３１）。この際、データの読み出しには第１実施形態で説明したsequential readingが用いられる。これにより、センスアンプ１４０のラッチ回路ＸＤＬ、ＡＤＬ、ＢＤＬ、ＣＤＬ、及びＤＤＬにはそれぞれ、scrambledデータのうちのbottomビット（B0/T1/U2/M3/L4/B5/T6/U7/M8/L9/B10/T11/U12/M13/L14/B15）、lowerビット（L0/B1/T2/U3/M4/L5/B6/T7/U8/M9/L10/B11/T12/U13/M14/L15）、middleビット（M0/L1/B2/T3/U4/M5/L6/B7/T8/U9/M10/L11/B12/T13/U14/M15）、upperビット（U0/M1/L2/B3/T4/U5/M6/L7/B8/T9/U10/M11/L12/B13/T14/U15）、及びtopビット（T0/U1/M2/L3/B4/T5/U6/M7/L8/B9/T10/U11/M12/L13/B14/T15）が保持される。このようにしてメモリセルアレイ１１０から読み出されたscrambledデータが、コントローラ２００へ送信され、例えばバッファメモリ２４０に保持される。
【０１４３】
その後、コントローラ２００のプロセッサ２３０またはＥＣＣ回路２６０は、ページ間でビットの入れ替えを行うことにより、scrambledデータをデコードする（ステップＳ２６）。つまり、図１７において、下図のデータを上図のデータに変換する。これにより、データユニットＤＵとそのパリティが復元される。その後ＥＣＣ回路２６０はエラー訂正を行い（ステップＳ２７）、エラー訂正後のデータをホスト機器３００へ送信する（ステップＳ２８）。
【０１４４】
以上のようにして、データがＮＡＮＤ型フラッシュメモリ１００から読み出される。なお図２０Ａでは、コントローラ２００からのステップＳ２５の命令に応答してＮＡＮＤ型フラッシュメモリ１００がsequential readingを実行する場合を例に説明した。しかし、コントローラ２００はページ毎に読み出しコマンドを発行し、ＮＡＮＤ型フラッシュメモリ１００はページ毎にデータをメモリセルアレイ１１０から読み出しても良い。このような例を図２０Ｂに示す。図２０Ｂは、図２０Ａにおいてページ毎にコマンドを発行する場合のメモリシステムの動作のフローチャートであり、ＮＡＮＤ型フラッシュメモリ１００においてbottomページ、lowerページ、middleページ、upperページ、及びtopページの５ページが読み出される場合について示している。
【０１４５】
図示するようにコントローラ２００は、ホスト機器３００からデータの読み出し命令を受信すると、bottomページ、lowerページ、middleページ、upperページ、及びtopページのそれぞれにつき、読み出しコマンドを発行する（ステップＳ２５−１〜Ｓ２５−５）。また、これらのコマンドに応答してＮＡＮＤ型フラッシュメモリ１００は、メモリセルアレイ１１０からbottomページデータ、lowerページデータ、middleページデータ、upperページデータ、及びtopページデータを読み出し、その度に読み出しデータをコントローラ２００へ送信する（ステップＳ３１−１〜Ｓ３１−５）。そして、ステップＳ３１−５の後、コントローラ２００には５ページ分のデータが揃う。よってコントローラ２００は、これらのページ間でビットを入れ替えることでデータをデコードする（ステップＳ２６）。
【０１４６】
このように、コントローラ２００はＮＡＮＤ型フラッシュメモリ１００に対してページ毎にデータを要求してもよい。この場合、ＮＡＮＤ型フラッシュメモリ１００は必要なページだけを読み出せばよく、full sequential readingを実行する必要がない。よって、例えば、後述する第５、第６、第９、第１０実施形態においては、場合によっては図２０Ｂに示す方法を用いることが好ましいかもしれない。但し、以下では図２０Ａの方法を用いてデータを読み出す場合を例に説明する。
【０１４７】
図２１は、ステップＳ２５で発行されるコマンドシーケンスの概念図である。図示するようにコントローラ２００は、まずprefixコマンド“Ｙ１ｈ”を発行する。コマンド“Ｙ１ｈ”は、ＮＡＮＤ型フラッシュメモリ１００に対して、full page scramble方式を用いて書き込まれたデータを読み出す旨を宣言するコマンドである。但し、読み出したscrambledデータをデコードするのはコントローラ２００であり、ＮＡＮＤ型フラッシュメモリ１００は通常のsequential readingを行う。よって、“Ｙ１ｈ”が省略される場合であってもよい。その後は第１実施形態と同様に、コマンド“００ｈ”、アドレスＡＤＤ、及びコマンド“３０ｈ”が発行される。そしてＮＡＮＤ型フラッシュメモリ１００はビジー状態となり、コマンド“Ｙ１ｈ”に応答して、sequential readingを実行する。なお、コマンド“Ｙ１ｈ”に応答したsequential readingは、図３で説明した読み出し動作１Ｒから１ＦＲまでの全てを実行する。よって本読み出し方式を、読み出し動作１Ｒから１ＦＲまでの一部のみを行うsequential readingと区別するために、full sequential readingと呼ぶことにする。本例の場合、scrambledデータのbottomページ（B0/T1/U2/M3/L4/B5/T6/U7/M8/L9/B10/T11/U12/M13/L14/B15）がラッチ回路ＸＤＬに保持され、lowerページ（L0/B1/T2/U3/M4/L5/B6/T7/U8/M9/L10/B11/T12/U13/M14/L15）がラッチ回路ＡＤＬに保持され、middleページ（M0/L1/B2/T3/U4/M5/L6/B7/T8/U9/M10/L11/B12/T13/U14/M15）がラッチ回路ＢＤＬに保持され、upperページ（U0/M1/L2/B3/T4/U5/M6/L7/B8/T9/U10/M11/L12/B13/T14/U15）がラッチ回路ＣＤＬに保持され、topページ（T0/U1/M2/L3/B4/T5/U6/M7/L8/B9/T10/U11/M12/L13/B14/T15）がラッチ回路ＤＤＬに保持される。
【０１４８】
ＮＡＮＤ型フラッシュメモリ１００がレディ状態に復帰すると、コントローラ２００はリードイネーブル信号ＲＥｎをトグルさせる。これにより、ラッチ回路ＸＤＬに保持されている、scrambledデータのうちのbottomページがコントローラ２００へ送信される。
【０１４９】
引き続きコントローラは、コマンド“Ｚ１ｈ”を発行し、これをＮＡＮＤ型フラッシュメモリ１００へ送信する。コマンド“Ｚ１ｈ”は、センスアンプ１４０内においてラッチ回路間でデータを転送するためのコマンドである。すなわち、ラッチ回路ＡＤＬ内のデータがラッチ回路ＸＤＬに転送され、ラッチ回路ＢＤＬ内のデータがラッチ回路ＡＤＬに転送され、ラッチ回路ＣＤＬ内のデータがラッチ回路ＢＤＬに転送され、ラッチ回路ＤＤＬ内のデータがラッチ回路ＣＤＬに転送され、ラッチ回路ＥＤＬ内のデータがラッチ回路ＤＤＬに転送される。そしてコントローラ２００がリードイネーブル信号ＲＥｎをトグルさせると、lowerページデータがコントローラ２００へ送信される。
【０１５０】
その後はコマンド“Ｚ１ｈ”とリードイネーブル信号ＲＥｎとを発行することにより、順次、middleページデータ、upperページデータ、及びtopページデータが順次コントローラ２００へ送信される。
【０１５１】
なお、図２０Ｂの方法を用いる場合には、ステップＳ２５−１〜Ｓ２５−５において、図２１に示す下記のコマンドシーケンスが発行される。
＜Y1h＞＜00h＞＜ADD＞＜30h＞
これにより、アドレスＡＤＤで指定されるページが読み出される。
【０１５２】
図２２Ａは、図２０Ａで説明したステップＳ３１実行時における、選択ワード線ＷＬの電位変化と、センスアンプ１４０内の各ラッチ回路に保持されるデータとを示すタイミングチャートである。なお、データのマッピングは図６の場合である。
【０１５３】
図示するように、ロウデコーダ１２０は選択ワード線ＷＬに対して電圧Ｖ１〜Ｖ１Ｆを順次印加する。これにより、読み出し動作１Ｒ〜１ＦＲが順次実行される。以下では、読み出し動作１Ｒ〜１ＦＲで行われる演算と、センスアンプ１４０内の各ラッチ回路の保持データにつき説明する。なお、図２２Ａ及び下記の説明においては、センス部ＳＡ、ラッチ回路ＡＤＬ、ＢＤＬ、ＣＤＬ、ＤＤＬ、及びＸＤＬに保持されるデータのことを、ＳＡ、ＡＤＬ、ＢＤＬ、ＣＤＬ、ＤＤＬ、及びＸＤＬと表記する。また、“~”は否定演算（＝ＮＯＴ）を示し、“xnor”は排他的否定論理和演算を示し、“｜”は論理和演算（＝ＯＲ）を示す。
・読み出し動作１Ｒ：読み出し結果SAは反転され、XDLに保持される。
XDL=~SA
・読み出し動作２Ｒ：読み出し結果SAは反転され、BDLに保持される。
BDL=~SA
・読み出し動作３Ｒ：読み出し結果SAはXDLの保持データとXNOR演算される。
XDL=SA xnor XDL
・読み出し動作４Ｒ：読み出し結果SAは反転され、ADLに保持される。
ADL=~SA
・読み出し動作５Ｒ：読み出し結果SAは反転され、CDLに保持される。
CDL=~SA
・読み出し動作６Ｒ：読み出し結果SAはADLの保持データとXNOR演算される。
ADL=SA xnor ADL
・読み出し動作７Ｒ：読み出し結果SAは反転され、DDLに保持される。
DDL=~SA
・読み出し動作８Ｒ：読み出し結果SAは反転されADLの保持データとOR演算される。
ADL=~SA｜ADL
・読み出し動作９Ｒ：読み出し結果SAはBDLの保持データとXNOR演算される。
BDL=SA xnor BDL
・読み出し動作ＡＲ：読み出し結果SAはADLの保持データとXNOR演算される。
ADL=SA xnor ADL
・読み出し動作ＢＲ：読み出し結果SAは反転されXDLの保持データとOR演算される。
XDL=~SA｜XDL
・読み出し動作ＣＲ：読み出し結果SAはCDLの保持データとXNOR演算される。
CDL=SA xnor CDL
・読み出し動作ＤＲ：読み出し結果SAはXDLの保持データとXNOR演算される。
XDL=SA xnor XDL
・読み出し動作ＥＲ：読み出し結果SAは反転されBDLの保持データとOR演算される。
BDL=~SA｜BDL
・読み出し動作ＦＲ：読み出し結果SAは反転されADLの保持データとOR演算される。
ADL=~SA｜ADL
・読み出し動作１０Ｒ：読み出し結果SAはBDLの保持データとXNOR演算される。
BDL=SA xnor BDL
・読み出し動作１１Ｒ：読み出し結果SAはDDLの保持データとXNOR演算される。
DDL=SA xnor DDL
・読み出し動作１２Ｒ：読み出し結果SAは反転されCDLの保持データとOR演算される。
ADL=~SA｜CDL
・読み出し動作１３Ｒ：読み出し結果SAはADLの保持データとXNOR演算される。
ADL=SA xnor ADL
・読み出し動作１４Ｒ：読み出し結果SAは反転されXDLの保持データとOR演算される。
XDL=~SA｜XDL
・読み出し動作１５Ｒ：読み出し結果SAは反転されBDLの保持データとOR演算される。
BDL=~SA｜BDL
・読み出し動作１６Ｒ：読み出し結果SAは反転されDDLの保持データとOR演算される。
DDL=~SA｜DDL
・読み出し動作１７Ｒ：読み出し結果SAはCDLの保持データとXNOR演算される。
CDL=SA xnor CDL
・読み出し動作１８Ｒ：読み出し結果SAは反転されADLの保持データとOR演算される。
ADL=~SA｜ADL
・読み出し動作１９Ｒ：読み出し結果SAはBDLの保持データとXNOR演算される。
BDL=SA xnor BDL
・読み出し動作１ＡＲ：読み出し結果SAは反転されCDLの保持データとOR演算される。
CDL=~SA｜CDL
・読み出し動作１ＢＲ：読み出し結果SAはDDLの保持データとXNOR演算される。
DDL=SA xnor DDL
・読み出し動作１ＣＲ：読み出し結果SAはCDLの保持データとXNOR演算される。
CDL=SA xnor CDL
・読み出し動作１ＤＲ：読み出し結果SAは反転されBDLの保持データとOR演算される。
BDL=~SA｜BDL
・読み出し動作１ＥＲ：読み出し結果SAは反転されCDLの保持データとOR演算される。
CDL=~SA｜CDL
・読み出し動作1FＲ：読み出し結果SAは反転されDDLの保持データとXNOR演算される。
DDL=~SA xnor CDL
上記のように、読み出し動作１４Ｒでbottomビット（B0/T1/U2/M3/L4/…B15）が確定してラッチ回路ＸＤＬに格納される。また、読み出し動作１８Ｒでlowerビット（L0/B1/T2/U3/M4/…L15）が確定してラッチ回路ＡＤＬに保持され、読み出し動作１ＤＲでmiddleビット（M0/L1/B2/T3/U4/…M15）が確定してラッチ回路ＢＤＬに保持され、、読み出し動作１ＥＲでupperビット（U0/M1/L2/B3/T4/…U15）が確定してラッチ回路ＣＤＬに保持される。そして、読み出し動作１ＦＲでtopビット（T0/U1/M2/L3/B4/…T15）が確定して、ラッチ回路ＤＤＬに保持される。
【０１５４】
その後、上記ラッチ回路ＸＤＬ、ＡＤＬ、ＢＤＬ、ＣＤＬ、及びＤＤＬ内のscrambledデータがコントローラ２００に読み出される。図２２Ｂは、上記scrambledデータのデコード処理（図２０ＡのステップＳ２５）のフローチャートであり、図１８と逆の処理が行われる。
【０１５５】
図示するように、例えばプロセッサ２３０またはＥＣＣ回路２６０は、書き込みデータの各ビットが対応するビット線ＢＬを確認する。そして５の倍数の番号に対応するビット線ＢＬ、換言すれば、（ｉ＋５）を５で除算した際の余りがゼロの場合（ステップＳ３００、ＹＥＳ）、ページ間でのビットの入れ替えは行われない（ステップＳ３０１）。これはスクランブル時と同様である。従って、ＢＬ０、ＢＬ５、ＢＬ１０、及びＢＬ１５に対応するtop/upper/middle/lower/bottomビットは、スクランブル後もtop/upper/middle/lower/bottomビットのままである。
【０１５６】
他方で、mod((i+5), 5)=1の場合（ステップＳ３０２、ＹＥＳ）、すなわち、ＢＬ１、ＢＬ６、及びＢＬ１１に対応するscrambledデータのtop/upper/middle/lower/bottomビットはそれぞれ、upper/middle/lower/bottom/topビットと入れ替えられる（ステップＳ３０３）。言い換えれば、デコード後のデータにおけるtop/upper/middle/lower/bottomビットは、scrambledデータにおけるbottom/top/upper/middle/lowerビットに置換される。
【０１５７】
また、mod((i+5), 5)=2の場合（ステップＳ３０４、ＹＥＳ）、すなわち、ＢＬ２、ＢＬ７、及びＢＬ１２に対応するscrambledデータのtop/upper/middle/lower/bottomビットはそれぞれ、スクランブル後のデータにおけるmiddle/lower/bottom/top/upperビットと入れ替えられる（ステップＳ３０５）。言い換えれば、デコード後のデータにおけるtop/upper/middle/lower/bottomビットは、scrambledデータにおけるlower/bottom/top/upper/middleビットに置換される。
【０１５８】
更に、mod((i+5), 5)=3の場合（ステップＳ３０６、ＹＥＳ）、すなわち、ＢＬ３、ＢＬ８、及びＢＬ１３に対応するscrambledデータのtop/upper/middle/lower/bottomビットはそれぞれ、lower/bottom/top/upper/middleビットと入れ替えられる（ステップＳ３０７）。言い換えれば、デコード後のデータにおけるtop/upper/middle/lower/bottomビットは、scrambledデータにおけるmiddle/lower/bottom/top/upperビットに置換される。
【０１５９】
そして、mod((i+5), 5)=4の場合（ステップＳ３０６、ＮＯ）、すなわち、ＢＬ４、ＢＬ９、及びＢＬ１４に対応するscrambledデータのtop/upper/middle/lower/bottomビットはそれぞれ、bottom/top/upper/middle/lowerビットと入れ替えられる（ステップＳ３０８）。言い換えれば、デコード後のデータにおけるtop/upper/middle/lower/bottomビットは、scrambledデータにおけるupper/middle/lower/bottom/topビットに置換される。
【０１６０】
以上のように、top/upper/middle/lower/bottomの５ページ分のデータの各ビットが、ページ間で入れ替えられることにより、scrambledデータがデコードされる。なお、上記説明では１ビット毎にデータが入れ替えられる場合を例に説明したが、例えば１ビット毎ではなく、カラム単位であってもよいことは、図１８で説明したとおりである。
【０１６１】
５．３  本実施形態に係る効果  
上記のように、本実施形態によれば、データをスクランブル（ランダマイズ）することにより、“０”データまたは“１”データが特定の領域に集中することを抑制できる。従って、メモリセルアレイ１１０内における電荷分布の偏りを抑制し、その結果、データの読み出し信頼性を向上できる。
【０１６２】
更に本実施形態によれば、複数のページ間においてビットを入れ替えることによりデータをスクランブルする。従って、一般的にデータをスクランブルする際に用いられる乱数や、これを発生する乱数生成回路などが不要となり、簡易な方法によりデータをスクランブルできる。
【０１６３】
なお上記実施形態では、読み出し動作時のコマンドシーケンスとして図２１の例を挙げて説明した。しかし、図２１の例に限定されるものではない。例えば、コマンドシーケンス内において必要なデータ（ラッチ回路）を指定してもよい。このような場合につき、図２３Ａ、図２３Ｂ、及び図２３Ｃのコマンドシーケンスを用いて説明する。
【０１６４】
図２３Ａは、コントローラ２００がscrambledデータのupperページ（U0/M1/L2/B3/T4/…U15）を要求する場合の例を示している。図示するようにコントローラ２００は、コマンド“Ｙ１ｈ”に引き続き、upperページを指定する“０４ｈ”を発行する。するとＮＡＮＤ型フラッシュメモリ１００の例えばシーケンサ１７０は、full sequential readingによりメモリセルアレイ１１０から読み出されたデータのうちupperページデータをラッチ回路ＸＤＬに保持させる。従って、ＮＡＮＤ型フラッシュメモリ１００がレディ状態に復帰した後、コントローラ２００はリードイネーブル信号ＲＥｎをトグルさせることで、upperページデータを読み出すことができる。
【０１６５】
図２３Ｂは、コントローラ２００がscrambledデータのlowerページ（L0/B1/T2/U3/M4/…L15）とupperページ（U0/M1/L2/B3/T4/…U15）とを要求する場合の例を示している。図示するようにコントローラ２００は、コマンド“Ｙ１ｈ”に引き続き、lowerページを指定する“０２ｈ”を発行する。するとＮＡＮＤ型フラッシュメモリ１００の例えばシーケンサ１７０は、full sequential readingによりメモリセルアレイ１１０から読み出されたデータのうちlowerページデータをラッチ回路ＸＤＬに保持させる。これにより、middleページデータはラッチ回路ＡＤＬに保持され、upperページデータはラッチ回路ＢＤＬに保持され、topページデータはラッチ回路ＣＤＬに保持され、bottomページデータはラッチ回路ＤＤＬに保持される。従って、ＮＡＮＤ型フラッシュメモリ１００がレディ状態に復帰した後、コントローラ２００はリードイネーブル信号ＲＥｎをトグルさせることで、lowerページデータを読み出すことができる。またコントローラ２００は、コマンド“Ｚ１ｈ”を発行することでラッチ回路ＢＤＬ内のupperページデータをラッチ回路ＡＤＬに転送し、再度コマンド“Ｚ１ｈ”を発行することでラッチ回路ＡＤＬ内のupperページデータをラッチ回路ＸＤＬに転送する。その後、コントローラ２００はリードイネーブル信号ＲＥｎをトグルさせることで、upperページデータを読み出すことができる。
【０１６６】
図２３Ｃは、コントローラ２００がscrambledデータのtopページ（T0/U1/M2/L3/B4/…T15）とupperページ（U0/M1/L2/B3/T4/…U15）とを要求する場合の例を示している。図示するようにコントローラ２００は、コマンド“Ｙ１ｈ”に引き続き、topページを指定する“０５ｈ”を発行する。するとＮＡＮＤ型フラッシュメモリ１００の例えばシーケンサ１７０は、full sequential readingによりメモリセルアレイ１１０から読み出されたデータのうちtopページデータをラッチ回路ＸＤＬに保持させる。これにより、bottomページデータはラッチ回路ＡＤＬに保持され、lowerページデータはラッチ回路ＢＤＬに保持され、middleページデータはラッチ回路ＣＤＬに保持され、upperページデータはラッチ回路ＤＤＬに保持される。従って、ＮＡＮＤ型フラッシュメモリ１００がレディ状態に復帰した後、コントローラ２００はリードイネーブル信号ＲＥｎをトグルさせることで、topページデータを読み出すことができる。また、コマンド“Ｚ１ｈ”を４回発行することで、ラッチ回路ＤＤＬ内のupperページデータは、ラッチ回路ＣＤＬ、ＢＤＬ、及びＡＤＬを介してラッチ回路ＸＤＬに転送される。そしてコントローラ２００は、リードイネーブル信号ＲＥｎをトグルさせることで、upperページデータを読み出すことができる。
【０１６７】
以上のように、必要なページ、すなわちラッチ回路を指定しつつ、読み出しコマンドシーケンスを発行してもよい。
【０１６８】
コマンドシーケンスの別の例につき、図２４及び図２５を用いて説明する。本例は、２ページ目以降にセンスアンプ１４０から読み出すデータを、図２３Ａ乃至２３Ｃのようにコマンド“Ｚ１ｈ”の発行回数で指定するのではなく、ページを直接指定するコマンドを用いるものである。
【０１６９】
コントローラ２００が１ページのみ読み出す場合、例えばupperページデータを読み出す場合には、図２３Ａの場合と同様である。すなわち、コマンド“Ｙ１ｈ”の次に、upperページを指定するコマンド“０４ｈ”が発行され、その結果、ラッチ回路ＸＤＬにはupperページデータが格納される。
【０１７０】
図２４は、図２３Ｂと同様に、コントローラ２００がscrambledデータのlowerページ（L0/B1/T2/U3/M4/…L15）とupperページ（U0/M1/L2/B3/T4/…U15）とを要求する場合の例を示している。図示するようにコントローラ２００は、コマンド“Ｙ１ｈ”に引き続き、lowerページを指定する“０２ｈ”を発行する。その結果、lowerページデータがラッチ回路ＸＤＬに保持される。また、図２３Ｂの場合と同様に、middleページデータはラッチ回路ＡＤＬに保持され、upperページデータはラッチ回路ＢＤＬに保持され、topページデータはラッチ回路ＣＤＬに保持され、bottomページデータはラッチ回路ＤＤＬに保持される。そしてコントローラ２００はlowerページデータを読み出した後、upperページを指定するコマンド“０４ｈ”を発行し、引き続きコマンド“Ｚ１ｈ”を発行する。このコマンド“０４ｈ”と“Ｚ１ｈ”の組み合わせにより、ラッチ回路ＢＤＬに保持されているupperページデータがラッチ回路ＸＤＬに転送され、コントローラ２００はupperページデータを読み出せるようになる。
【０１７１】
図２５は、図２３Ｃと同様に、コントローラ２００がscrambledデータのtopページ（T0/U1/M2/L3/B4/…T15）とupperページ（U0/M1/L2/B3/T4/…U15）とを要求する場合の例を示している。図示するようにコントローラ２００は、コマンド“Ｙ１ｈ”に引き続き、topページを指定する“０４ｈ”を発行する。その結果、topページデータがラッチ回路ＸＤＬに保持される。また、図２３Ｂの場合と同様に、bottomページデータはラッチ回路ＡＤＬに保持され、lowerページデータはラッチ回路ＢＤＬに保持され、middleページデータはラッチ回路ＣＤＬに保持され、upperページデータはラッチ回路ＤＤＬに保持される。そしてコントローラ２００は、topページデータを読み出した後、upperページを指定するコマンド“０４ｈ”を発行し、引き続きコマンド“Ｚ１ｈ”を発行する。このコマンド“０４ｈ”と“Ｚ１ｈ”の組み合わせにより、ラッチ回路ＤＤＬに保持されているupperページデータがラッチ回路ＸＤＬに転送され、コントローラ２００はupperページデータを読み出せるようになる。
【０１７２】
６．第６実施形態
次に、第６実施態様に従った半導体記憶装置について説明する。本実施形態は、上記第５実施形態とは異なるデータスクランブル方法に関するものであり、以下では第５実施形態と異なる点についてのみ説明する。
【０１７３】
６．１  データの書き込み動作
データの書き込み動作は、第５実施形態で説明した図１５の通りである。第５実施形態と異なる点は、データのスクランブル方法である。スクランブル方法につき、図２６を用いて説明する。図２６は第５実施形態で説明した図１７に相当し、図２６上図がスクランブル前のデータ（データユニットＤＵとパリティ）であり、図２６下図がスクランブル後のデータである。図中では、スクランブル後のデータにおいて、参考のため、スクランブル前のbottomビットとlowerビットに斜線を付している。
【０１７４】
図示するように、本例に係るスクランブル方法は以下の通りである。すなわち、
・bottomページとupperページとがスクランブルされて、scrambledデータのbottomページとupperページとが生成される。この際、bottomビットは１ビットおきにupperビットに置き換えられ、upperビットもまた１ビットおきにbottomビットに置き換えられる。
・middleページのビットは置き換えられない。
・lowerページとtopページとがスクランブルされて、scrambledデータのlowerページとtopページとが生成される。この際、lowerビットは１ビットおきにtopビットに置き換えられ、topビットもまた、１ビットおきにlowerビットに置き換えられる。
【０１７５】
以上のようにスクランブルされた結果、bottomページ（図１６で説明したページデータＰＧ０）、lowerページ（データＰＧ１）、middleページ（データＰＧ２）、upperページ（データＰＧ３）、及びtopページ（データＰＧ４）は下記のように生成される。
ＰＧ０：＜B0/U1/B2/U3/B4/U5/B6/U7/B8/U9/B10/U11/B12/U13/B14/U15＞
ＰＧ１：＜L0/T1/L2/T3/L4/T5/L6/T7/L8/T9/L10/T11/L12/T13/L14/T15＞
ＰＧ２：＜M0/M1/M2/M3/M4/M5/M6/M7/M8/M9/M10/M11/M12/M13/M14/M15＞
ＰＧ３：＜U0/B1/U2/B3/U4/B5/U6/B7/U8/B9/U10/B11/U12/B13/U14/B15＞
ＰＧ４：＜T0/L1/T2/L3/T4/L5/T6/L7/T8/L9/T10/L11/T12/L13/T14/L15＞
このように、１本のワード線ＷＬに割り当てられたページ（本例では５ページ）のうちの一部のページ間でビットを置換することによりデータをスクランブルする方式を、以下ではpartial page scramble方式と呼ぶことにする。また本例に係るpartial page scramble方式は、２ページ間(bottomページ及びupperページ)でスクランブルを行い、１ページ（middleページ）はそのままに、更に残りの２ページ間（lowerページ及びtopページ）間でスクランブルを行っている。このような方式を、「（２＋１＋２）スクランブル」と呼ぶことがある。また、以下ではscrambledデータにおけるbottomページ、lowerページ、middleページ、upperページ、及びtopページを、それぞれscrambled bottomページ、scrambled lowerページ、scrambled middleページ、scrambled upperページ、及びscrambled topページと呼ぶことがある。
【０１７６】
なお、（２＋１＋２）スクランブルにおいて、２ページ間でスクランブルされるページは図２６の場合に限定されない。例えばbottomページとupperページとがスクランブルされ、更にmiddleページとtopページとがスクランブルされる場合でもよいし、特に限定されるものではない。また第５実施形態で説明したとおり、ページ間でのデータの入れ替えはビット単位ではなくカラム単位、または更に別の単位であってもよい。
【０１７７】
図２７は、第５実施形態で説明した図１９に対応し、コントローラ２００からＮＡＮＤ型フラッシュメモリ１００へ送信される書き込みコマンドシーケンスの概念図である。
【０１７８】
図示するようにコントローラ２００は、まずprefixコマンド“Ｘ２ｈ”を発行する。コマンド“Ｘ２ｈ”は、ＮＡＮＤ型フラッシュメモリ１００に対して、partial page scramble方式、特に（２＋１＋２）スクランブル方式を用いてデータを書き込む旨を宣言するコマンドである。もちろん、第５実施形態と同様に、データのスクランブル処理はコントローラ２００が実行するので、“Ｘ２ｈ”の発行を省略する場合であってもよい。その後は図１９と同様に第１乃至第５シーケンスＳＱ１〜ＳＱ５が発行される。もちろん、第１乃至第５シーケンスＳＱ１〜ＳＱ５で送信されるデータは、図２６で説明したスクランブル後のデータである。そしてＮＡＮＤ型フラッシュメモリ１００は、コマンド“１０ｈ”に応答してビジー状態となり、受信した５ページ分のデータを用いてfull sequence programを実行する。
【０１７９】
６．２  データの読み出し動作
次に、上記scrambledデータの読み出し方法について説明する。読み出し方法の大まかな流れは、第５実施形態で説明した図２０Ａと同様であるが、コントローラ２００の発行するprefixコマンドにより、sequential readingの方法が第５実施形態と異なる。
【０１８０】
図２８Ａ、図２８Ｂ、及び図２８ＣはステップＳ２５で発行されるコマンドシーケンスの概念図であり、図２８Ａはscrambled bottomページ（B0/U1/B2/U3/B4/…U15）とscrambled upperページ（U0/B1/U2/B3/U4…B15）を読み出す場合、図２８Ｂはscrambled middleページ（M0/M1/M2/…M15）を読み出す場合、そして図２８Ｃはscrambled lowerページ（L0/T1/L2/T3/L4…T15）とscrambled topページ（T0/L1/T2/L3/T4…L15）を読み出す場合を示している。
【０１８１】
まず図２８Ａの、scrambled bottomページとscrambled upperページを読み出す場合について説明する。図示するようにコントローラ２００は、まずprefixコマンド“Ｙ２ｈ”を発行する。コマンド“Ｙ２ｈ”は、ＮＡＮＤ型フラッシュメモリ１００に対して、（２＋１＋２）スクランブル方式でスクランブルされたデータのうちのbottomページ（B0/U1/B2/U3/B4/…U15）とupperページ（U0/B1/U2/B3/U4…B15）とを読み出す旨を宣言するコマンドである。その後は第５実施形態と同様に、コマンド“００ｈ”、アドレスＡＤＤ、及びコマンド“３０ｈ”が発行される。そしてＮＡＮＤ型フラッシュメモリ１００はビジー状態となり、コマンド“Ｙ２ｈ”に応答して、scrambled bottomページ及びscrambled upperページを読み出すためのsequential readingを実行する。このように、一部のページのみを対象としたsequential readingを、以下ではpartial sequential readingと呼ぶことにする。この結果、scrambled bottomページ（B0/U1/B2/U3/B4/…U15）がラッチ回路ＸＤＬに保持され、scrambled upperページ（U0/B1/U2/B3/U4…B15）がラッチ回路ＡＤＬに保持される。更に、コントローラ２００がコマンド“Ｚ１ｈ”を発行することで、scrambled upperページデータがラッチ回路ＡＤＬからＸＤＬに転送される。
【０１８２】
次に、図２８Ｂのscrambled middleページを読み出す場合について説明する。図示するようにコントローラ２００は、まずprefixコマンド“Ｙ３ｈ”を発行する。コマンド“Ｙ３ｈ”は、ＮＡＮＤ型フラッシュメモリ１００に対して、（２＋１＋２）スクランブル方式でスクランブルされたデータのうちのmiddleページ（M0/M1/M2/…M15）を読み出す旨を宣言するコマンドである。その後は第５実施形態と同様に、コマンド“００ｈ”、アドレスＡＤＤ、及びコマンド“３０ｈ”が発行される。そしてＮＡＮＤ型フラッシュメモリ１００はビジー状態となり、コマンド“Ｙ３ｈ”に応答して、scrambled middleページデータを読み出すためのpartial sequential readingを実行する。この結果、scrambled middleページデータがラッチ回路ＸＤＬに保持される。
【０１８３】
引き続き、図２８Ｃの、scrambled lowerページとscrambled topページデータを読み出す場合について説明する。図示するようにコントローラ２００は、まずprefixコマンド“Ｙ４ｈ”を発行する。コマンド“Ｙ４ｈ”は、ＮＡＮＤ型フラッシュメモリ１００に対して、（２＋１＋２）スクランブル方式でスクランブルされたデータのうちのlowerページ（L0/T1/L2/T3/L4…T15）とtopページ（T0/L1/T2/L3/T4…L15）とを読み出す旨を宣言するコマンドである。その後は第５実施形態と同様に、コマンド“００ｈ”、アドレスＡＤＤ、及びコマンド“３０ｈ”が発行される。そしてＮＡＮＤ型フラッシュメモリ１００はビジー状態となり、コマンド“Ｙ４ｈ”に応答して、scrambled lowerページ及びscrambled topページを読み出すためのpartial sequential readingを実行する。この結果、scrambled lowerページ（L0/T1/L2/T3/L4…T15）がラッチ回路ＸＤＬに保持され、scrambled topページ（T0/L1/T2/L3/T4…L15）がラッチ回路ＡＤＬに保持される。更に、コントローラ２００がコマンド“Ｚ１ｈ”を発行することで、scrambled topページデータがラッチ回路ＡＤＬからＸＤＬに転送される。
【０１８４】
図２９Ａは、図２８Ａに示すコマンドシーケンスが発行された場合の、図２０ＡのステップＳ３１実行時における、選択ワード線ＷＬの電位変化と、センスアンプ１４０内の各ラッチ回路に保持されるデータとを示すタイミングチャートである。
【０１８５】
図示するように、ロウデコーダ１２０は選択ワード線ＷＬに対して電圧Ｖ１、Ｖ３、Ｖ５、ＶＢ、ＶＣ、ＶＤ、Ｖ１２、Ｖ１４、Ｖ１７、Ｖ１Ａ、Ｖ１Ｃ、及びＶ１Ｅを順次印加する。これにより、読み出し動作１Ｒ、３Ｒ、５Ｒ、ＢＲ、ＣＲ、ＤＲ、１２Ｒ、１４Ｒ、１７Ｒ、１ＡＲ、１ＣＲ、及び１ＥＲが順次実行される。以下では、各読み出し動作で行われる演算と、センスアンプ１４０内の各ラッチ回路の保持データにつき説明する。
・読み出し動作１Ｒ：読み出し結果SAは反転され、XDLに保持される。
XDL=~SA
・読み出し動作３Ｒ：読み出し結果SAはXDLの保持データとXNOR演算される。
XDL=SA xnor XDL
・読み出し動作５Ｒ：読み出し結果SAは反転され、ADLに保持される。
ADL=~SA
・読み出し動作ＢＲ：読み出し結果SAは反転されXDLの保持データとOR演算される。
XDL=~SA｜XDL
・読み出し動作ＣＲ：読み出し結果SAはADLの保持データとXNOR演算される。
ADL=SA xnor ADL
・読み出し動作ＤＲ：読み出し結果SAはXDLの保持データとXNOR演算される。
XDL=SA xnor XDL
・読み出し動作１２Ｒ：読み出し結果SAは反転されADLの保持データとOR演算される。
ADL=~SA｜ADL
・読み出し動作１４Ｒ：読み出し結果SAは反転されXDLの保持データとOR演算される。
XDL=~SA｜XDL
・読み出し動作１７Ｒ：読み出し結果SAはADLの保持データとXNOR演算される。
ADL=SA xnor ADL
・読み出し動作１ＡＲ：読み出し結果SAは反転されADLの保持データとOR演算される。
ADL=~SA｜ADL
・読み出し動作１ＣＲ：読み出し結果SAはADLの保持データとXNOR演算される。
ADL=SA xnor ADL
・読み出し動作１ＥＲ：読み出し結果SAは反転されADLの保持データとOR演算される。
ADL=~SA｜ADL
上記のように、スクランブルされたデータのうち、読み出し動作１４Ｒでscrambled bottomページデータが確定し、読み出し動作１ＥＲでscrambled upperページデータが確定する。
【０１８６】
次に、図２８Ｂに示すコマンドシーケンスが発行された場合について、図２９Ｂを用いて説明する。図示するように、ロウデコーダ１２０は選択ワード線ＷＬに対して電圧Ｖ２、Ｖ９、ＶＥ、Ｖ１０、Ｖ１５、Ｖ１９、及びＶ１Ｄを順次印加する。これにより、読み出し動作２Ｒ、９Ｒ、ＥＲ、１０Ｒ、１５Ｒ、１９Ｒ、及び１ＤＲが順次実行される。以下では、各読み出し動作で行われる演算と、センスアンプ１４０内の各ラッチ回路の保持データにつき説明する。
・読み出し動作２Ｒ：XDL=~SA
・読み出し動作９Ｒ：XDL=SA xnor XDL
・読み出し動作ＥＲ：XDL=~SA｜XDL
・読み出し動作１０Ｒ：XDL=SA xnor XDL
・読み出し動作１５Ｒ：XDL=~SA｜XDL
・読み出し動作１９Ｒ：XDL=SA xnor XDL
・読み出し動作１ＤＲ：XDL=~SA｜XDL
上記のようにして、scrambled middleページデータが確定する。
【０１８７】
次に、図２８Ｃに示すコマンドシーケンスが発行された場合につき、図２９Ｃを用いて説明する。図示するように、ロウデコーダ１２０は選択ワード線ＷＬに対して電圧Ｖ４、Ｖ６、Ｖ７、Ｖ８、ＶＡ、ＶＦ、Ｖ１１、Ｖ１３、Ｖ１６、Ｖ１８、Ｖ１Ｂ、及びＶ１Ｆを順次印加する。これにより、読み出し動作４Ｒ、６Ｒ、７Ｒ、８Ｒ、ＡＲ、ＦＲ、１１Ｒ、１３Ｒ、１６Ｒ、１８Ｒ、１ＢＲ、及び１ＦＲが順次実行される。以下では、各読み出し動作で行われる演算と、センスアンプ１４０内の各ラッチ回路の保持データにつき説明する。
・読み出し動作４Ｒ：XDL=~SA
・読み出し動作６Ｒ：XDL=SA xnor XDL
・読み出し動作７Ｒ：ADL=~SA
・読み出し動作８Ｒ：XDL=~SA｜XDL
・読み出し動作ＡＲ：XDL=SA xnor XDL
・読み出し動作ＦＲ：XDL=~SA｜XDL
・読み出し動作１１Ｒ：ADL=SA xnor ADL
・読み出し動作１３Ｒ：XDL=SA xnor XDL
・読み出し動作１６Ｒ：ADL=~SA｜ADL
・読み出し動作１８Ｒ：XDL=~SA｜XDL
・読み出し動作１ＢＲ：ADL=SA xnor ADL
・読み出し動作１ＦＲ：XDL=~SA xnor ADL
上記のように、スクランブルされたデータのうち、読み出し動作１８Ｒでscrambled lowerページデータが確定し、読み出し動作１ＦＲでscrambled topページデータが確定する。
【０１８８】
６．３  本実施形態に係る効果
データのスクランブル方法には、例えば本実施形態で説明した方法を用いることができる。また本実施形態によれば、データを読み出す際にfull sequential readingではなくpartial sequential readingを実行すればよく、データ読み出しにおけるレイテンシ（latency）を小さくできる。
【０１８９】
なお上記実施形態では、読み出し動作時のコマンドシーケンスとして図２８Ａ、図２８Ｂ、及び図２８Ｃの例を挙げて説明した。しかし、第５実施形態で説明した図２３Ａ、図２３Ｂ、及び図２３Ｃの例のように、例えば、コマンドシーケンス内において必要なデータ（ラッチ回路）を指定してもよい。このような場合につき、図３０Ａ及び図３０Ｂのコマンドシーケンスを用いて説明する。
【０１９０】
図３０Ａは、コントローラ２００がscrambled upperページ（U0/B1/U2/B3/U4…B15）を要求する場合の例を示している。図示するようにコントローラ２００は、コマンド“Ｙ２ｈ”に引き続き、upperページを指定する“０４ｈ”を発行する。するとＮＡＮＤ型フラッシュメモリ１００の例えばシーケンサ１７０は、partial sequential readingによりメモリセルアレイ１１０から、scrambled upperページデータ（U0/B1/U2/B3/U4…B15）を読み出し、これをラッチ回路ＸＤＬに保持させる。従って、ＮＡＮＤ型フラッシュメモリ１００がレディ状態に復帰した後、コントローラ２００はリードイネーブル信号ＲＥｎをトグルさせることで、scrambled upperページデータを読み出すことができる。
【０１９１】
図３０Ｂは、コントローラ２００がscrambled bottomページとscrambled upperページとを要求する場合の例を示している。図示するようにコントローラ２００は、コマンド“Ｙ２ｈ”に引き続き、bottomページを指定する“０１ｈ”を発行する。するとＮＡＮＤ型フラッシュメモリ１００の例えばシーケンサ１７０は、partial sequential readingによりメモリセルアレイ１１０から読み出されたデータのうちscrambled bottomページ（B0/U1/B2/U3/B4/…U15）をラッチ回路ＸＤＬに保持させ、scrambled upperページ（U0/B1/U2/B3/U4…B15）をラッチ回路ＡＤＬに保持させる。これによりコントローラ２００はscrambled bottomページデータを読み出すことができ、更にコマンド“Ｚ１ｈ”を発行することでラッチ回路ＡＤＬ内のscrambled upperページデータをラッチ回路ＸＤＬに転送し、読み出すことができる。
【０１９２】
７．第７実施形態
次に、第７実施態様に従った半導体記憶装置について説明する。本実施形態は、上記第５及び第６実施形態とは異なるデータスクランブル方法に関するものであり、以下では第５及び第６実施形態と異なる点についてのみ説明する。
【０１９３】
７．１  データの書き込み動作
データの書き込み動作は、第５実施形態で説明した図１５の通りである。第５実施形態と異なる点は、データのスクランブル方法である。スクランブル方法につき、図３１を用いて説明する。図３１は第５実施形態で説明した図１７に相当し、図３１上図がスクランブル前のデータ（データユニットＤＵとパリティ）であり、図３１下図がスクランブル後のデータである。図中では、スクランブル後のデータにおいて、参考のため、スクランブル前のbottomビットとlowerビットに斜線を付している。
【０１９４】
図示するように、本例に係るスクランブル方法は以下の通りである。すなわち、
・bottomページ、middleページ、及びtopページがスクランブルされて、scrambledデータのbottomページ、middleページ、及びtopページが生成される。この際、bottomビット、middleビット、topビットはそれぞれ、１ビットおきにtopビット、bottomビット、及びmiddleビットに置き換えられ、更にmiddleビット、topビット、及びbottomビットに置き換えられる。
【０１９５】
・lowerページとupperページとがスクランブルされて、scrambledデータのlowerページとtopページとが生成される。この際、lowerビットは１ビットおきにtopビットに置き換えられ、upperビットもまた、１ビットおきにupperビットに置き換えられる。
【０１９６】
以上のようにスクランブルされた結果、bottomページ（図１６で説明したデータＰＧ０）、lowerページ（データＰＧ１）、middleページ（データＰＧ２）、upperページ（データＰＧ３）、及びtopページ（データＰＧ４）は下記のように生成される。
ＰＧ０：＜B0/T1/M2/B3/T4/M5/B6/T7/M8/B9/T10/M11/B12/T13/M14/B15＞
ＰＧ１：＜L0/U1/L2/U3/L4/U5/L6/U7/L8/U9/L10/U11/L12/U13/L14/U15＞
ＰＧ２：＜M0/B1/T2/M3/B4/T5/M6/B7/T8/M9/B10/T11/M12/B13/T14/M15＞
ＰＧ３：＜U0/L1/U2/L3/U4/L5/U6/L7/U8/L9/U10/L11/U12/L13/U14/L15＞
ＰＧ４：＜T0/M1/B2/T3/M4/B5/T6/M7/B8/T9/M10/B11/T12/M13/B14/T15＞
このように、３ページ間(bottomページ、middleページ、及びtopページ)でスクランブルを行い、更に残りの２ページ間（lowerページ及びupperページ）間でスクランブルを行っている。このような方式を、「（３＋２）スクランブル」と呼ぶことがある。
【０１９７】
なお、（３＋２）スクランブルにおいて、３ページ間または２ページ間でスクランブルされるページは図３１の場合に限定されず、可能な限りの組み合わせでビットを入れ替えることができる。また第５実施形態で説明したとおり、ページ間でのデータの入れ替えはビット単位ではなくカラム単位、または更に別の単位であってもよい。
【０１９８】
また、本実施形態に係る書き込みコマンドシーケンスは、第６実施形態で説明した図２７において、prefixコマンドとして、“Ｘ２ｈ”の代わりに“Ｘ３ｈ”を発行する。コマンド“Ｘ３ｈ”は、ＮＡＮＤ型フラッシュメモリ１００に対して、partial page scramble方式、特に（３＋２）スクランブル方式を用いてデータを書き込む旨を宣言するコマンドである。その後は図２７と同様に第１乃至第５シーケンスＳＱ１〜ＳＱ５が発行される。もちろん、第１乃至第５シーケンスＳＱ１〜ＳＱ５で送信されるデータは、図３１で説明したスクランブル後のデータである。また、コントローラ２００がデータをscrambleするので、特に“Ｘ３ｈ”が発行されない場合であってもよい。そしてＮＡＮＤ型フラッシュメモリ１００は、コマンド“１０ｈ”に応答してビジー状態となり、受信した５ページ分のデータを用いてfull sequence programを実行する。
【０１９９】
７．２  データの読み出し動作
次に、上記scrambledデータの読み出し方法について説明する。読み出し方法の大まかな流れは、第５実施形態で説明した図２０Ａ（または図２０Ｂ）と同様であるが、コントローラ２００の発行するprefixコマンドにより、sequential readingの方法が第５実施形態と異なる。
【０２００】
図３２Ａ及び図３２ＢはステップＳ２５で発行されるコマンドシーケンスの概念図であり、図３２Ａはscrambled bottomページ（B0/T1/M2/B3/T4/M5/…B15）、scrambled middleページ（M0/B1/T2/M3/B4/T5/…M15）、及びscrambled topページ（T0/M1/B2/T3/M4/B5/…T15）を読み出す場合、図３２Ｂはscrambled lowerページ（L0/U1/L2/U3/…U15）及びscrambled upperページ（U0/L1/U2/L3/…L15）を読み出す場合を示している。
【０２０１】
まず図３２Ａの、scrambled bottomページデータ、scrambled middleページデータ、及びscrambled topページデータを読み出す場合について説明する。図示するようにコントローラ２００は、まずprefixコマンド“Ｙ５ｈ”を発行する。コマンド“Ｙ５ｈ”は、ＮＡＮＤ型フラッシュメモリ１００に対して、（３＋２）スクランブル方式を用いてスクランブルされたデータのうちの３ページ（bottomページ（B0/T1/M2/B3/T4/M5/…B15）、middleページ（M0/B1/T2/M3/B4/T5/…M15）、及びtopページ（T0/M1/B2/T3/M4/B5/…T15））を読み出す旨を宣言するコマンドである。その後は第５実施形態と同様に、コマンド“００ｈ”、アドレスＡＤＤ、及びコマンド“３０ｈ”が発行される。そしてＮＡＮＤ型フラッシュメモリ１００はビジー状態となり、コマンド“Ｙ５ｈ”に応答して、scrambled bottomページ（B0/T1/M2/…B15）、scrambled middleページ（M0/B1/T2/…M15）、及びscrambled topページ（T0/M1/B2/…T15）を読み出すためのpartial sequential readingを実行する。この結果、のscrambled bottomページ（B0/T1/M2/…B15）がラッチ回路ＸＤＬに保持され、scrambled middleページ（M0/B1/T2/…M15）がラッチ回路ＡＤＬに保持され、scrambled topページ（T0/M1/B2/…T15）がラッチ回路ＢＤＬに保持される。よってコントローラ２００は、scrambled bottomページを読み出した後、コマンド“Ｚ１ｈ”を発行することで、scrambled middleページ及びscrambled topページを順次読み出すことができる。
【０２０２】
次に、図３２Ｂの、scrambled lowerページとscrambled upperページを読み出す場合について説明する。図示するようにコントローラ２００は、まずprefixコマンド“Ｙ６ｈ”を発行する。コマンド“Ｙ６ｈ”は、ＮＡＮＤ型フラッシュメモリ１００に対して、（３＋２）スクランブル方式を用いてスクランブルされたデータのうちの２ページ（lowerページ（L0/U1/L2/U3/…U15）及びupperページ（U0/L1/U2/L3/…L15））を読み出す旨を宣言するコマンドである。その後は第５実施形態と同様に、コマンド“００ｈ”、アドレスＡＤＤ、及びコマンド“３０ｈ”が発行される。そしてＮＡＮＤ型フラッシュメモリ１００はビジー状態となり、コマンド“Ｙ６ｈ”に応答して、scrambled lowerページ及びscrambled upperページを読み出すためのpartial sequential readingを実行する。この結果、scrambled lowerページ（L0/U1/L2/U3/…U15）がラッチ回路ＸＤＬに保持され、scrambled upperページ（U0/L1/U2/L3/…L15）がラッチ回路ＡＤＬに保持される。更に、コントローラ２００がコマンド“Ｚ１ｈ”を発行することで、scrambled upperページデータがラッチ回路ＡＤＬからＸＤＬに転送される。
【０２０３】
図３３Ａは、図３２Ａに示すコマンドシーケンスが発行された場合の、図２０ＡのステップＳ３１実行時における、選択ワード線ＷＬの電位変化と、センスアンプ１４０内の各ラッチ回路に保持されるデータとを示すタイミングチャートである。
【０２０４】
図示するように、ロウデコーダ１２０は選択ワード線ＷＬに対して電圧Ｖ１、Ｖ２、Ｖ３、Ｖ７、Ｖ９、ＶＢ、ＶＤ、ＶＥ、Ｖ１０、Ｖ１１、Ｖ１４、Ｖ１５、Ｖ１６、Ｖ１９、Ｖ１Ｂ、Ｖ１Ｄ、及びＶ１Ｆを順次印加する。これにより、読み出し動作１Ｒ、２Ｒ、３Ｒ、７Ｒ、９Ｒ、ＢＲ、ＤＲ、ＥＲ、１０Ｒ、１１Ｒ、１４Ｒ、１５Ｒ、１６Ｒ、１９Ｒ、１ＢＲ、１ＤＲ、及び１ＦＲが順次実行される。以下では、各読み出し動作で行われる演算と、センスアンプ１４０内の各ラッチ回路の保持データにつき説明する。
・読み出し動作１Ｒ：読み出し結果SAは反転され、XDLに保持される。
XDL=~SA
・読み出し動作２Ｒ：読み出し結果SAは反転され、ADLに保持される。
ADL=~SA
・読み出し動作３Ｒ：読み出し結果SAはXDLの保持データとXNOR演算される。
XDL=SA xnor XDL
・読み出し動作７Ｒ：読み出し結果SAは反転され、BDLに保持される。
BDL=~SA
・読み出し動作９Ｒ：読み出し結果SAはADLの保持データとXNOR演算される。
ADL=SA xnor ADL
・読み出し動作ＢＲ：読み出し結果SAは反転されXDLの保持データとOR演算される。
XDL=~SA｜XDL
・読み出し動作ＤＲ：読み出し結果SAはXDLの保持データとXNOR演算される。
XDL=SA xnor XDL
・読み出し動作ＥＲ：読み出し結果SAは反転されADLの保持データとOR演算される。
ADL=~SA｜ADL
・読み出し動作１０Ｒ：読み出し結果SAはADLの保持データとXNOR演算される。
ADL=SA xnor ADL
・読み出し動作１１Ｒ：読み出し結果SAはBDLの保持データとXNOR演算される。
BDL=SA xnor BDL
・読み出し動作１４Ｒ：読み出し結果SAは反転されXDLの保持データとOR演算される。
XDL=~SA｜XDL
・読み出し動作１５Ｒ：読み出し結果SAは反転されADLの保持データとOR演算される。
ADL=~SA｜ADL
・読み出し動作１６Ｒ：読み出し結果SAは反転されBDLの保持データとOR演算される。
BDL=~SA｜BDL
・読み出し動作１９Ｒ：読み出し結果SAはADLの保持データとXNOR演算される。
ADL=SA xnor ADL
・読み出し動作１ＢＲ：読み出し結果SAはBDLの保持データとXNOR演算される。
BDL=SA xnor BDL
・読み出し動作１ＤＲ：読み出し結果SAは反転されADLの保持データとOR演算される。
ADL=~SA｜ADL
・読み出し動作1FＲ：読み出し結果SAは反転されBDLの保持データとXNOR演算される。
BDL=~SA xnor BDL
上記のように、スクランブルされたデータのうち、読み出し動作１４Ｒでscrambled bottomページが確定し、読み出し動作１ＤＲでscrambled middleページが確定し、読み出し動作１ＦＲでscrambled topページが確定する。
【０２０５】
次に、図３２Ｂに示すコマンドシーケンスが発行された場合につき、図３３Ｂを用いてえ説明する。図示するように、ロウデコーダ１２０は選択ワード線ＷＬに対して電圧Ｖ４、Ｖ５、Ｖ６、Ｖ８、ＶＡ、ＶＣ、ＶＦ、Ｖ１２、Ｖ１３、Ｖ１７、Ｖ１８、Ｖ１Ａ、Ｖ１Ｃ、及びＶ１Ｅを順次印加する。これにより、読み出し動作４Ｒ、５Ｒ、６Ｒ、８Ｒ、ＡＲ、ＣＲ、ＦＲ、１２Ｒ、１３Ｒ、１７Ｒ、１８Ｒ、１ＡＲ、１ＣＲ、及び１ＥＲが順次実行される。以下では、各読み出し動作で行われる演算と、センスアンプ１４０内の各ラッチ回路の保持データにつき説明する。
・読み出し動作４Ｒ：読み出し結果SAは反転され、XDLに保持される。
XDL=~SA
・読み出し動作５Ｒ：読み出し結果SAは反転され、ADLに保持される。
ADL=~SA
・読み出し動作６Ｒ：読み出し結果SAはXDLの保持データとXNOR演算される。
XDL=SA xnor XDL
・読み出し動作８Ｒ：読み出し結果SAはXDLの保持データとOR演算される。
XDL=SA｜XDL
・読み出し動作ＡＲ：読み出し結果SAはXDLの保持データとXNOR演算される。
XDL=SA xnor XDL
・読み出し動作ＣＲ：読み出し結果SAはADLの保持データとXNOR演算される。
ADL=SA xnor ADL
・読み出し動作ＦＲ：読み出し結果SAは反転されXDLの保持データとOR演算される。
XDL=~SA｜XDL
・読み出し動作１２Ｒ：読み出し結果SAは反転されADLの保持データとOR演算される。
ADL=~SA｜ADL
・読み出し動作１３Ｒ：読み出し結果SAはXDLの保持データとXNOR演算される。
ADL=SA xnor XDL
・読み出し動作１７Ｒ：読み出し結果SAはADLの保持データとXNOR演算される。
ADL=SA xnor ADL
・読み出し動作１８Ｒ：読み出し結果SAは反転されXDLの保持データとOR演算される。
XDL=~SA｜XDL
・読み出し動作１ＣＲ：読み出し結果SAはADLの保持データとXNOR演算される。
ADL=~SA xnor ADL
・読み出し動作１ＥＲ：読み出し結果SAは反転されADLの保持データとOR演算される。
ADL=~SA｜ADL
上記のように、スクランブルされたデータのうち、読み出し動作１８Ｒでscrambled lowerページデータが確定し、読み出し動作１ＥＲでscrambled upperページデータが確定する。
【０２０６】
７．３  本実施形態に係る効果
データのスクランブル方法には、例えば本実施形態で説明した方法を用いることができる。
【０２０７】
なお上記実施形態では、読み出し動作時のコマンドシーケンスとして図３２Ａ及び図３２Ｂの例を挙げて説明した。しかし、第５実施形態で説明した図２３Ａ、図２３Ｂ、及び図２３Ｃの例のように、例えば、コマンドシーケンス内において必要なデータ（ラッチ回路）を指定してもよい。このような場合につき、図３４Ａ及び図３４Ｂのコマンドシーケンスを用いて説明する。
【０２０８】
図３４Ａは、コントローラ２００がscrambled upperページ（U0/L1/U2/L3/…L15）を要求する場合の例を示している。図示するようにコントローラ２００は、コマンド“Ｙ６ｈ”に引き続き、upperページを指定する“０４ｈ”を発行する。するとＮＡＮＤ型フラッシュメモリ１００の例えばシーケンサ１７０は、partial sequential readingによりメモリセルアレイ１１０から、scrambled upperページ（L0/U1/L2/…U15）を読み出し、これをラッチ回路ＸＤＬに保持させる。従って、ＮＡＮＤ型フラッシュメモリ１００がレディ状態に復帰した後、コントローラ２００はリードイネーブル信号ＲＥｎをトグルさせることで、scrambled upperページデータを読み出すことができる。
【０２０９】
図３４Ｂは、コントローラ２００がscrambled lowerページ（L0/U1/L2/U3/…U15）とscrambled upperページ（U0/L1/U2/L3/…L15）とを要求する場合の例を示している。図示するようにコントローラ２００は、コマンド“Ｙ６ｈ”に引き続き、lowerページを指定する“０２ｈ”を発行する。するとＮＡＮＤ型フラッシュメモリ１００の例えばシーケンサ１７０は、partial sequential readingによりメモリセルアレイ１１０から読み出されたscrambled lowerページ（L0/U1/L2/U3/…U15）をラッチ回路ＸＤＬに保持させ、scrambled upperページ（U0/L1/U2/L3/…L15）をラッチ回路ＡＤＬに保持させる。これによりコントローラ２００はscrambled lowerページデータを読み出すことができ、更にコマンド“Ｚ１ｈ”を発行することでラッチ回路ＡＤＬ内のscrambled upperページデータをラッチ回路ＸＤＬに転送し、読み出すことができる。
【０２１０】
８．第８実施形態
次に、第８実施態様に従った半導体記憶装置について説明する。本実施形態は、１つのメモリセルが４ビットデータを保持可能な半導体記憶装置に上記第５乃至第７実施形態を適用したものである。以下では第５乃至第７実施形態と異なる点についてのみ説明する。
【０２１１】
８．１  メモリセルトランジスタの保持データと閾値電圧について
まず、本実施形態に係るメモリセルトランジスタＭＴの保持データ、閾値電圧、及び各データの読み出しレベルにつき、図３５を用いて説明する。図３５は、各メモリセルトランジスタＭＴの取り得るデータ、閾値分布、及び読み出し時に用いる電圧について示したダイアグラムである。
【０２１２】
前述のように、メモリセルトランジスタＭＴは閾値電圧に応じて、第１実施形態で説明した“０”状態から“Ｆ”状態までの１６個の状態を取ることができる。この閾値分布は、lowerビット、middleビット、upperビット、及びtopビットからなる４ビット（４ページ）データを書き込むことで実現される。すなわち、上記１６個の状態と、lowerビット、middleビット、upperビット、及びtopビットとの関係は、次の通りである。
“０”状態：“１１１１”（“top/upper/middle/lower”の順で表記）
“１”状態：“１１１０”
“２”状態：“１０１０”
“３”状態：“１０００”
“４”状態：“１００１”
“５”状態：“０００１”
“６”状態：“００００”
“７”状態：“００１０”
“８”状態：“０１１０”
“９”状態：“０１００”
“Ａ”状態：“１１００”
“Ｂ”状態：“１１０１”
“Ｃ”状態：“０１０１”
“Ｄ”状態：“０１１１”
“Ｅ”状態：“００１１”
“Ｆ”状態：“１０１１”
このように本例においても、隣り合う２つの状態に対応するデータ間では、４ビットのうちの１ビットのみが変化する。
【０２１３】
従って図３５に示すように、lowerページ読み出しは、電圧Ｖ１、Ｖ４、Ｖ６、及びＶＢを用いた読み出し動作１Ｒ、４Ｒ、６Ｒ、及びＢＲによって行われる。またmiddleページ読み出しは、電圧Ｖ３、Ｖ７、Ｖ９、及びＶＤを用いた読み出し動作３Ｒ、７Ｒ、９Ｒ、及びＤＲによって行われる。更にupperページ読み出しは、電圧Ｖ２、Ｖ８、及びＶＥを用いた読み出し動作２Ｒ、８Ｒ、及びＥＲによって行われる。そしてupperページ読み出しは、電圧Ｖ５、ＶＡ、ＶＣ、及びＶＦを用いた読み出し動作５Ｒ、ＡＲ、ＣＲ、及びＦＲによって行われる。すなわち、本例は「３−４−４−４マッピング」である。
【０２１４】
８．２  データの書き込み動作
本実施形態に係るデータの書き込み方法は、基本的に図１５で説明した第５実施形態と同様である。第５実施形態と異なる点は下記の点である。
【０２１５】
・データのスクランブル方法について
本例では、図１５のステップＳ２３において、１本のワード線ＷＬに割り当てられた４ページ（top/upper/middle/lowerページ）につき、ページ間でビットを入れ替えてデータがスクランブルされる。従って、図１６の例であると、データユニットＤＵ０〜ＤＵ３及びこれらのパリティがスクランブルされて、ワード線ＷＬ０の各ページに書き込まれるデータＰＧ０〜ＰＧ３が生成される。またデータユニットＤＵ４〜ＤＵ７及びこれらのパリティがスクランブルされて、ワード線ＷＬ１に書き込まれるデータＰＧ４〜ＰＧ７が生成される。更にデータユニットＤＵ８〜ＤＵ１１及びこれらのパリティがスクランブルされて、ワード線ＷＬ２に書き込まれるデータＰＧ８〜ＰＧ１１が生成される。以下、同様である。
【０２１６】
本例に係るスクランブル方法は、第５実施形態で説明したfull page scrambleである。図３６Ａは第５実施形態で説明した図１７に対応しており、図３６Ａ上図はスクランブル前のデータ（データユニットＤＵとパリティ）であり、図３６Ａ下図はスクランブル後のデータ（データユニットＤＵとパリティ）を示している。図３６Ａ下図においても、参考のため、スクランブル前のlowerビットに斜線を付している。
【０２１７】
図３６Ａ上図に示すように、スクランブル前のデータは、図１７上図においてbottomページを省略したものに等しい。
【０２１８】
図３６Ａ下図のスクランブル後のデータにおいては、例えば図中のlowerページがデータＰＧ０に相当し、middleページがデータＰＧ１に相当し、upperページがデータＰＧ２に相当し、topページがデータＰＧ３に相当する。図示するように、最下位ビット（T0/U0/M0/L0）はそのままであるが、１ビット目のデータ（T1/U1/M1/L1）は、ページ間で１ページ分ずれる。すなわち、lowerビットはtopビットＴ１に置換され、middleビットはlowerビットＬ１に置換され、upperビットはmiddleビットＭ１に置換され、topビットはupperビットＵ１に置換される。２ビット目のデータ（T2/U2/M2/L2）は、ページ間で更に１ページ分ずれる。すなわち、lowerビットはupperビットＵ２に置換され、middleビットはlowerビットＬ２に置換され、upperビットはlowerビットＬ２に置換され、topビットはmiddleビットＭ２に置換される。以下、同様である。
【０２１９】
以上のようにスクランブルされた結果、lowerページ（データＰＧ０）、middleページ（データＰＧ１）、upperページ（データＰＧ２）、及びtopページ（データＰＧ３）は下記のように生成される。
ＰＧ０：＜L0/T1/U2/M3/L4/T5/U6/M7/L8/T9/U10/M11/L12/T13/U14/M15＞
ＰＧ１：＜M0/L1/T2/U3/M4/L5/T6/U7/M8/L9/T10/U11/M12/L13/T14/U15＞
ＰＧ２：＜U0/M1/L2/T3/U4/M5/L6/T7/U8/M9/L10/T11/U12/M13/L14/T15＞
ＰＧ３：＜T0/U1/M2/L3/T4/U5/M6/L7/T8/U9/M10/L11/T12/U13/M14/L15＞
このように、１本のワード線ＷＬに割り当てられた全ページ（本例では４ページ）間でビットを置換することによりデータがスクランブルされる。また、以下でも、scrambledデータにおけるlowerページ、middleページ、upperページ、及びtopページを、それぞれscrambled lowerページ、scrambled middleページ、scrambled upperページ、及びscrambled topページと呼ぶことがある。
【０２２０】
図３６Ｂは、上記スクランブル処理のフローチャートであり、第５実施形態で説明した図１８に対応する。図示するように例えばプロセッサ２３０は、書き込みデータの各ビットが対応するビット線ＢＬを確認する。そして４の倍数の番号に対応するビット線ＢＬ、換言すれば、（ｉ＋４）を４で除算した際の余りがゼロの場合（ステップＳ２１０、ＹＥＳ）、ページ間でのビットの入れ替えは行わない（ステップＳ２１１）。従って、ＢＬ０、ＢＬ４、ＢＬ８、及びＢＬ１２に対応するtop/upper/middle/lowerビットは、スクランブル後もtop/upper/middle/lowerビットのままである。
【０２２１】
他方で、mod((i+4), 4)=1の場合（ステップＳ２１２、ＹＥＳ）、すなわち、ＢＬ１、ＢＬ５、ＢＬ９、及びＢＬ１３に対応するtop/upper/middle/lowerビットはそれぞれ、スクランブル後のデータにおけるlower/top/upper/middleビットとされる（ステップＳ２１３）。言い換えれば、スクランブル後のデータにおけるtop/upper/middle/lowerビットは、スクランブル前のデータにおけるupper/middle/lower /topビットに置換される。
【０２２２】
また、mod((i+4), 4)=2の場合（ステップＳ２１４、ＹＥＳ）、すなわち、ＢＬ２、ＢＬ６、ＢＬ１０、及びＢＬ１４に対応するtop/upper/middle/lowerビットはそれぞれ、スクランブル後のデータにおけるmiddle/lower/top/upperビットとされる（ステップＳ２１５）。言い換えれば、スクランブル後のデータにおけるtop/upper/middle/lowerビットは、スクランブル前のデータにおけるmiddle/lower/top/upperビットに置換される。
【０２２３】
そしてmod((i+5), 5)=3の場合（ステップＳ２１４、ＮＯ）、すなわち、ＢＬ３、ＢＬ７、ＢＬ１１、及びＢＬ１５に対応するtop/upper/middle/lowerビットはそれぞれ、スクランブル後のデータにおけるupper/middle/lower/topビットとされる（ステップＳ２１６）。言い換えれば、スクランブル後のデータにおけるtop/upper/middle/lowerビットは、スクランブル前のデータにおけるlower/top/upper/middleビットに置換される。
【０２２４】
以上のように、top/upper/middle/lowerの４ページ分のデータの各ビットが、ページ間で入れ替えられることにより、スクランブルデータが生成される。なお、上記説明では１ビット毎にデータが入れ替えられる場合を例に説明したが、第５実施形態で説明したように、例えば１ビット毎ではなく、カラム単位であってもよい。もちろん、スクランブルのルールは図３６Ｂに限らず、ページ間でビットを入れ替える方法であれば特に限定されない。
【０２２５】
・書き込みコマンドシーケンスについて
本実施形態に係る書き込みコマンドシーケンスは、第５実施形態で説明した図２７とほぼ同様である。但し、第１乃至第５シーケンスＳＱ１〜ＳＱ５では、scrambledデータのうちのlowerページ、middleページ、upperページ、及びtopページが送信される。また、本例でもコントローラ２００がデータをscrambleするので、特に“Ｘ１ｈ”が発行されない場合であってもよい。
【０２２６】
８．３  データの読み出し動作
本実施形態に係るデータの読み出し方法は、基本的に図２０Ａで説明した第５実施形態と同様である。第５実施形態と異なる点は下記の点である。
【０２２７】
・読み出しコマンドシーケンスについて
ステップＳ２５で発行される読み出しコマンドシーケンスは、第５実施形態で説明した図２１と同様である。但し、データの転送順は、最初がlowerページであり、引き続きmiddleページ、upperページ、及びtopページの順である。なお、本例も、読み出したscrambledデータをデコードするのはコントローラ２００であり、ＮＡＮＤ型フラッシュメモリ１００は通常のsequential readingを行う。よって、“Ｙ１ｈ”が省略される場合であってもよい。なお、図２０Ｂの方法を用いる場合には、ステップＳ２５−２〜Ｓ２５−５において、図２１に示す下記のコマンドシーケンスが発行される。
＜Y1h＞＜00h＞＜ADD＞＜30h＞
これにより、アドレスＡＤＤで指定されるページが読み出される。ステップＳ２５−１は省略される。
【０２２８】
・ＮＡＮＤ型フラッシュメモリ１００における読み出し動作について
本例においても、ステップＳ３１においてfull sequential readingが実行される。これにより、センスアンプ１４０のラッチ回路ＸＤＬ、ＡＤＬ、ＢＤＬ、及びＣＤＬにはそれぞれ、scrambledデータのlowerビット、middleビット、upperビット、及びtopビットが保持される。
【０２２９】
図３７は、ステップＳ３１実行時における、選択ワード線ＷＬの電位変化と、センスアンプ１４０内の各ラッチ回路に保持されるデータとを示すタイミングチャートであり、第５実施形態で説明した図２２Ａに対応する。
【０２３０】
図示するように、ロウデコーダ１２０は選択ワード線ＷＬに対して電圧Ｖ１〜ＶＦを順次印加する。これにより、読み出し動作１Ｒ〜ＦＲが順次実行され、下記の演算が実行される。  
・読み出し動作１Ｒ：読み出し結果SAは反転され、XDLに保持される。
XDL=~SA
・読み出し動作２Ｒ：読み出し結果SAは反転され、BDLに保持される。
BDL=~SA
・読み出し動作３Ｒ：読み出し結果SAは反転され、ADLに保持される。
ADL=~SA
・読み出し動作４Ｒ：読み出し結果SAはXDLの保持データとXNOR演算される。
XDL=SA xnor XDL
・読み出し動作５Ｒ：読み出し結果SAは反転され、CDLに保持される。
CDL=~SA
・読み出し動作６Ｒ：読み出し結果SAは反転されXDLの保持データとOR演算される。
XDL=~SA｜XDL
・読み出し動作７Ｒ：読み出し結果SAはADLの保持データとXNOR演算される。
ADL=SA xnor ADL
・読み出し動作８Ｒ：読み出し結果SAはBDLの保持データとXNOR演算される。
BDL=SA xnor BDL
・読み出し動作９Ｒ：読み出し結果SAはADLの保持データとXNOR演算される。
ADL=SA xnor ADL
・読み出し動作ＡＲ：読み出し結果SAはCDLの保持データとXNOR演算される。
CDL=SA xnor CDL
・読み出し動作ＢＲ：読み出し結果SAはXDLの保持データとXNOR演算される。
XDL=SA xnor XDL
・読み出し動作ＣＲ：読み出し結果SAはCDLの保持データとOR演算される。
CDL=SA｜CDL
・読み出し動作ＤＲ：読み出し結果SAはADLの保持データとXNOR演算される。
ADL=SA xnor ADL
・読み出し動作ＥＲ：読み出し結果SAは反転されBDLの保持データとOR演算される。
BDL=~SA｜BDL
・読み出し動作ＦＲ：読み出し結果SAは反転されCDLの保持データとXNOR演算される。
CDL=~SA xnor CDL
上記のように、読み出し動作ＢＲでlowerビット（L0/T1/U2/M3/L4…M15）が確定してラッチ回路ＸＤＬに保持され、読み出し動作ＤＲでmiddleビット（M0/L1/T2/U3/M4…U15）が確定してラッチ回路ＡＤＬに保持され、、読み出し動作ＥＲでupperビット（U0/M1/L2/T3/U4…T15）が確定してラッチ回路ＢＤＬに保持される。そして、読み出し動作ＦＲでtopビット（T0/U1/M2/L3/T4…L15）が確定して、ラッチ回路ＣＤＬに保持される。
【０２３１】
８．４  本実施形態に係る効果
上記のように、第５実施形態で説明したデータのスクランブル方法は、メモリセルトランジスタが４ビットデータを保持する場合にも適用でき、同様の効果を得ることができる。
【０２３２】
また、読み出し時のコマンドシーケンスも、第５実施形態で説明した図２３Ａ、図２３Ｂ、及び図２３Ｃのように読み出し対象ページ（ラッチ回路）を指定してもよい。
【０２３３】
例えばコントローラ２００がscrambled upperページ（U0/M1/L2/T3/U4…T15）を要求する場合には、図２３Ａで説明したコマンドシーケンスを利用できる。この場合、図２３Ａにおいて、コマンド“０４ｈ”の代わりに“０３ｈ”を発行することでupperページを指定する。これにより、ラッチ回路ＸＤＬにはscrambled upperページ（U0/M1/L2/T3/U4…T15）が保持される。
【０２３４】
またコントローラ２００がscrambled lowerページ（L0/T1/U2/M3/L4…M15）とscrambled upperページ（U0/M1/L2/T3/U4…T15）とを要求する場合には、図２３Ｂで説明したコマンドシーケンスを利用できる。この場合、図２３Ｂにおいて、コマンド“０２ｈ”の代わりに“０１ｈ”を発行することでlowerページを指定する。これにより、ラッチ回路ＸＤＬにはscrambled lowerページ（L0/T1/U2/M3/L4…M15）が保持され、ラッチ回路ＢＤＬにはscrambled upperページ（U0/M1/L2/T3/U4…T15）が保持される。よってコントローラ２００は、scrambled lowerページを読み出した後、コマンド“Ｚ１ｈ”を２回発行することでscrambled upperページを読み出すことができる。
【０２３５】
更に、コントローラ２００がscrambled topページデータ（T0/U1/M2/L3/T4…L15）とscrambled upperページ（U0/M1/L2/T3/U4…T15）とを要求する場合には、図２３Ｃで説明したコマンドシーケンスを利用できる。この場合、図２３Ｃにおいて、コマンド“０５ｈ”の代わりに“０４ｈ”を発行することでtopページを指定する。これにより、ラッチ回路ＸＤＬにはscrambled topページ（T0/U1/M2/L3/T4…L15）が保持される。また、ラッチ回路ＡＤＬ、ＢＤＬ、及びＣＤＬにはそれぞれ、scrambled lowerページ（L0/T1/U2/M3/L4…M15）、scrambled middleページ（M0/L1/T2/U3/M4…U15）、及びscrambled upperページ（U0/M1/L2/T3/U4…T15）が保持される。従ってコントローラ２００は、scrambled topページを読み出した後、コマンド“Ｚ１ｈ”を３回発行することでscrambled upperページを読み出すことができる。
【０２３６】
読み出し時のコマンドシーケンスに関しては、第５実施形態で説明した図２４及び図２５のように、２ページ目以降にセンスアンプ１４０から読み出すデータをコマンド“Ｚ１ｈ”の発行回数で指定するのではなく、ページを直接指定してもよい。
【０２３７】
コントローラ２００が１ページのみ読み出す場合、例えばscrambled upperページを読み出す場合には、上記図２３Ａの例を挙げて説明した場合と同様である。すなわち、コマンド“Ｙ１ｈ”の次に、upperページを指定するコマンド“０３ｈ”が発行され、その結果、ラッチ回路ＸＤＬにはscrambled upperページが格納される。
【０２３８】
コントローラ２００がscrambled lowerページ（L0/T1/U2/M3/L4…M15）とscrambled upperページ（U0/M1/L2/T3/U4…T15）とを要求する場合には、図２４で説明したコマンドシーケンスを利用できる。この場合、図２４においてコマンド“０２ｈ”の代わりに“０１ｈ”が発行されてラッチ回路ＸＤＬにscrambled lowerページが保持される。引き続き、コマンド“０４ｈ”の代わりに“０３ｈ”が発行され、引き続き“Ｚ１ｈ”が発行されることで、ラッチ回路ＢＤＬ内のscrambled upperページがラッチ回路ＸＤＬに転送される。
【０２３９】
また、コントローラ２００がscrambled topページとscrambled upperページとを要求する場合には、図２５で説明したコマンドシーケンスを利用できる。この場合、図２５においてコマンド“０５ｈ”の代わりに“０４ｈ”が発行されてラッチ回路ＸＤＬにscrambled topページが保持される。引き続き、コマンド“０４ｈ”の代わりに“０３ｈ”が発行され、引き続き“Ｚ１ｈ”が発行されることで、ラッチ回路ＢＤＬ内のscrambled upperページデータがラッチ回路ＸＤＬに転送される。
【０２４０】
９．第９実施形態  
次に、第９実施態様に従った半導体記憶装置について説明する。本実施形態は、上記第８実施形態とは異なるデータスクランブル方法に関するものであり、以下では第８実施形態と異なる点についてのみ説明する。なお、データのマッピングは第８実施形態において図３５を用いて説明した「３−４−４−４」マッピングである。
【０２４１】
９．１  データの書き込み動作  
データの書き込み動作の大まかな流れは第８実施形態と同様である。第８実施形態と異なる点は、データのスクランブル方法である。
【０２４２】
本例に係るスクランブル方法は、partial page scramble方式を用いた（２＋２）スクランブルである。（２＋２）スクランブルとは、１本のワード線に割り当てられた４ページのなかで、ある２ページ間でビットを入れ替え、更に別の２ページ間でビットを入れ替えることで、データをランダマイズする方式である。図３８は、第８実施形態で説明した図３６Ａに相当し、図３８上図がスクランブル前のデータであり、図３８下図がスクランブル後のデータである。図中では、スクランブル後のデータにおいて、参考のため、スクランブル前のlowerビットとupperビットに斜線を付している。
【０２４３】
図示するように、本例に係るスクランブル方法は以下の通りである。すなわち、
・lowerページとmiddleページとがスクランブルされて、スクランブル後のlowerページとmiddleページとが生成される。この際、lowerビットは１ビットおきにmiddleビットに置き換えられ、middleビットもまた１ビットおきにlowerビットに入れ替えられる。
・upperページとtopページとがスクランブルされて、スクランブル後のupperページとtopページとが生成される。この際、upperビットは１ビットおきにtopビットに置き換えられ、topビットもまた、１ビットおきにupperビットに入れ替えられる。
以上のようにスクランブルされた結果、lowerページ（図１６で説明したデータＰＧ０）、middleページ（データＰＧ１）、upperページ（データＰＧ２）、及びtopページ（データＰＧ３）は下記のように生成される。
ＰＧ０：＜L0/M1/L2/M3/L4/M5/L6/M7/L8/M9/L10/M11/L12/M13/L14/M15＞
ＰＧ１：＜M0/L1/M2/L3/M4/L5/M6/L7/M8/L9/M10/L11/M12/L13/M14/L15＞
ＰＧ２：＜U0/T1/U2/T3/U4/T5/U6/T7/U8/T9/U10/T11/U12/T13/U14/T15＞
ＰＧ３：＜T0/U1/T2/U3/T4/U5/T6/U7/T8/U9/T10/U11/T12/U13/T14/U15＞
もちろん、（２＋２）スクランブルにおいて、２ページ間でスクランブルされるページは図３８の場合に限定されない。例えばmiddleページとupperページとがスクランブルされ、更にlowerページとtopページとがスクランブルされる場合でもよいし、特に限定されるものではない。また第５実施形態で説明したとおり、ページ間でのデータの入れ替えはビット単位ではなくカラム単位、または更に別の単位であってもよい。
【０２４４】
ステップＳ２４で発行される書き込みコマンドシーケンスは第８実施形態で説明した通りであるが、prefixコマンドとして“Ｘ２ｈ”が発行される。本例においてコマンド“Ｘ２ｈ”は、partial page scramble方式を用いた（２＋２）スクランブルであることをＮＡＮＤ型フラッシュメモリ１００に宣言する。そして、図３８下図のようにスクランブルされた４ページ分のデータを用いてfull sequence programが実行される。但し、本例においても、“Ｘ２ｈ”の発行を省略してもよい。
【０２４５】
９．２  データの読み出し動作
次に、上記scrambledデータの読み出し方法について説明する。ステップＳ２５で発行される読み出しコマンドシーケンスは、第６実施形態で説明した図２８Ａ及び図２８Ｃとほぼ同様であるが、prefixコマンドの意味と読み出されるデータとが第６実施形態とは異なる。
【０２４６】
例えば、scrambled lowerページ（L0/M1/L2/…M15）とscrambled middleページ（M0/L1/M2/…L15）を読み出す場合、コントローラ２００は図２８Ａに示すコマンドシーケンスを発行する。但し、prefixコマンド“Ｙ２ｈ”は、partial page scramble方式を用いた（２＋２）スクランブルであり、且つそのうちのscrambled lowerページ（L0/M1/L2/…M15）とscrambled middleページ（M0/L1/M2/…L15）を指定することをＮＡＮＤ型フラッシュメモリ１００に宣言するものである。その後は第６実施形態と同様に、コマンド“００ｈ”、アドレスＡＤＤ、及びコマンド“３０ｈ”が発行される。そしてＮＡＮＤ型フラッシュメモリ１００はビジー状態となり、コマンド“Ｙ２ｈ”に応答して、scrambled lowerページ及びscrambled middleページを読み出すためのpartial sequential readingを実行する。この結果、scrambled lowerページ（L0/M1/L2/…M15）がラッチ回路ＸＤＬに保持され、scrambled middleページ（M0/L1/M2/…L15）がラッチ回路ＡＤＬに保持される。そして、コントローラ２００は、scrambled lowerページを読み出した後、コマンド“Ｚ１ｈ”を発行することでscrambled middleページを読み出すことができる。なお、本例においても“Ｙ１ｈ”が省略されてもよい。
【０２４７】
他方で、scrambled upperページ（U0/T1/U2/…T15）とscrambled topページ（T0/U1/T2/…U15）を読み出す場合、コントローラ２００は図２８Ｃに示すコマンドシーケンスを発行する。但し、prefixコマンド“Ｙ４ｈ”の代わりに“Ｙ３ｈ”が発行される。コマンド“Ｙ３ｈ”は、partial page scramble方式を用いた（２＋２）スクランブルであり、且つそのうちのscrambled upperページ（U0/T1/U2/…T15）とscrambled topページ（T0/U1/T2/…U15）を指定することをＮＡＮＤ型フラッシュメモリ１００に宣言するものである。その後は第６実施形態と同様に、コマンド“００ｈ”、アドレスＡＤＤ、及びコマンド“３０ｈ”が発行される。そしてＮＡＮＤ型フラッシュメモリ１００はビジー状態となり、コマンド“Ｙ３ｈ”に応答して、scrambled upperページ及びscrambled topページを読み出すためのpartial sequential readingを実行する。この結果、scrambled upperページ（U0/T1/U2/…T15）がラッチ回路ＸＤＬに保持され、scrambled topページ（T0/U1/T2/…U15）がラッチ回路ＡＤＬに保持される。そして、コントローラ２００は、upperページを読み出した後、コマンド“Ｚ１ｈ”を発行することでtopページを読み出すことができる。なお、本例においても“Ｙ３ｈ”の発行が省略されてもよい。
【０２４８】
図３９Ａは、上記説明した図２８Ａに示すコマンドシーケンス発行時の、図２０ＡのステップＳ３１実行時における、選択ワード線ＷＬの電位変化と、センスアンプ１４０内の各ラッチ回路に保持されるデータとを示すタイミングチャートである。
【０２４９】
図示するように、ロウデコーダ１２０は選択ワード線ＷＬに対して電圧Ｖ１、Ｖ３、Ｖ４、Ｖ６、Ｖ７、Ｖ９、ＶＢ、及びＶＤを順次印加する。これにより、読み出し動作１Ｒ、３Ｒ、４Ｒ、６Ｒ、７Ｒ、９Ｒ、ＢＲ、及びＤＲが順次実行される。以下では、各読み出し動作で行われる演算と、センスアンプ１４０内の各ラッチ回路の保持データにつき説明する。
・読み出し動作１Ｒ：読み出し結果SAは反転され、XDLに保持される。
XDL=~SA
・読み出し動作３Ｒ：読み出し結果SAは反転され、ADLに保持される。
ADL=~SA
・読み出し動作４Ｒ：読み出し結果SAはXDLの保持データとXNOR演算される。
XDL=SA xnor XDL
・読み出し動作６Ｒ：読み出し結果SAは反転されXDLの保持データとOR演算される。
XDL=~SA｜XDL
・読み出し動作７Ｒ：読み出し結果SAはADLの保持データとXNOR演算される。
ADL=SA xnor ADL
・読み出し動作９Ｒ：読み出し結果SAはADLの保持データとOR演算される。
ADL=~SA｜ADL
・読み出し動作ＢＲ：読み出し結果SAはXDLの保持データとXNOR演算される。
XDL=SA xnor XDL
・読み出し動作ＤＲ：読み出し結果SAはADLの保持データとXNOR演算される。
ADL=SA xnor ADL
上記のように、読み出し動作ＢＲでscrambled lowerビット（L0/M1/L2/…M15）が確定してラッチ回路ＸＤＬに保持され、読み出し動作ＤＲでscrambled middleビット（M0/L1/M2/…L15）が確定してラッチ回路ＡＤＬに保持される。
【０２５０】
図３９Ｂは、上記説明した図２８Ｂに示すコマンドシーケンス発行時の、図２０ＡのステップＳ３１実行時における、選択ワード線ＷＬの電位変化と、センスアンプ１４０内の各ラッチ回路に保持されるデータとを示すタイミングチャートである。
【０２５１】
図示するように、ロウデコーダ１２０は選択ワード線ＷＬに対して電圧Ｖ２、Ｖ５、Ｖ８、ＶＡ、ＶＣ、ＶＥ、及びＶＦを順次印加する。これにより、読み出し動作２Ｒ、５Ｒ、８Ｒ、ＡＲ、ＣＲ、ＥＲ、及びＦＲが順次実行される。以下では、各読み出し動作で行われる演算と、センスアンプ１４０内の各ラッチ回路の保持データにつき説明する。
・読み出し動作２Ｒ：読み出し結果SAは反転され、XDLに保持される。
XDL=~SA
・読み出し動作５Ｒ：読み出し結果SAは反転され、ADLに保持される。
ADL=~SA
・読み出し動作８Ｒ：読み出し結果SAはXDLの保持データとXNOR演算される。
XDL=SA xnor XDL
・読み出し動作ＡＲ：読み出し結果SAはADLの保持データとXNOR演算される。
ADL=SA xnor ADL
・読み出し動作ＣＲ：読み出し結果SAはADLの保持データとOR演算される。
ADL=~SA｜ADL
・読み出し動作ＥＲ：読み出し結果SAは反転されXDLの保持データとOR演算される。
XDL=~SA｜XDL
・読み出し動作ＦＲ：読み出し結果SAは反転されADLの保持データとXNOR演算される。
ADL=SA xnor ADL
上記のように、読み出し動作ＥＲでscrambled upperビット（U0/T1/U2/…T15）が確定してラッチ回路ＸＤＬに保持され、読み出し動作ＦＲでscrambled topビット（T0/U1/T2/…U15）が確定してラッチ回路ＡＤＬに保持される。
【０２５２】
９．３  本実施形態に係る効果
上記のように、第６実施形態で説明したpartial page scramble方式は、メモリセルトランジスタが４ビットデータを保持する場合にも適用でき、同様の効果を得ることができる。
【０２５３】
また、読み出し時のコマンドシーケンスも、第６実施形態で説明した図３０Ａ及び図３０Ｂのように読み出し対象ページ（ラッチ回路）を指定してもよい。
【０２５４】
例えばコントローラ２００がscrambled upperページ（U0/T1/U2/…T15）を要求する場合には、図３０Ａで説明したコマンドシーケンスを利用できる。この場合、図３０Ａにおいて、コマンド“０４ｈ”の代わりに“０３ｈ”を発行することでupperページを指定する。これにより、ラッチ回路ＸＤＬにはscrambled upperページ（U0/T1/U2/…T15）が保持される。なお、prefixコマンドも“Ｙ４ｈ”の代わりに“Ｙ３ｈ”が発行される。
【０２５５】
またコントローラ２００がscrambled lowerページ（L0/M1/L2/…M15）とscrambled middleページ（M0/L1/M2/…L15）とを要求する場合には、図３０Ｂで説明したコマンドシーケンスを利用できる。この場合、図３０Ｂにおいて、コマンド“０１ｈ”を発行することでlowerページを指定する。これにより、ラッチ回路ＸＤＬにはscrambled lowerページ（L0/M1/L2/…M15）が保持され、ラッチ回路ＡＤＬにはscrambled middleページ（M0/L1/M2/…L15）が保持される。よってコントローラ２００は、scrambled lowerページを読み出した後、コマンド“Ｚ１ｈ”を１回発行することでscrambled middleページを読み出すことができる。
【０２５６】
１０．第１０実施形態
次に、第１０実施態様に従った半導体記憶装置について説明する。本実施形態は、上記第８及び第９実施形態とは異なるデータスクランブル方法に関するものであり、以下では第８及び第９実施形態と異なる点についてのみ説明する。なお、データのマッピングは第８実施形態において図３５を用いて説明した「３−４−４−４」マッピングである。
【０２５７】
１０．１  データの書き込み動作
データの書き込み動作の大まかな流れは第８実施形態と同様である。第８実施形態と異なる点は、データのスクランブル方法である。
【０２５８】
本例に係るスクランブル方法は、partial page scramble方式を用いた（１＋３）スクランブルである。（１＋３）スクランブルとは、１本のワード線ＷＬに割り当てられる４ページのうちの３ページ間でビットを入れ替え、残りの１ページはビットの入れ替えを行わないことで、データをランダマイズする方式である。図４０は、第８実施形態で説明した図３６Ａに相当し、図４０上図がスクランブル前のデータであり、図４０下図がスクランブル後のデータである。図中では、スクランブル後のデータにおいて、参考のため、スクランブル前のlowerビットに斜線を付している。
【０２５９】
図示するように、本例に係るスクランブル方法は以下の通りである。すなわち、
・lowerページ、upperページ、及びtopページがスクランブルされて、スクランブル後のlowerページ、upperページ、及びtopページが生成される。この際、lowerビットは２ビットおきにtopビット及びupperビットに置き換えられ、upperビットは２ビットおきにlowerビット及びtopビットに置き換えられ、topビットは２ビットおきにupperビット及びlowerビットに置き換えられる。
・middleページは他のページとはスクランブルされずに、ビットの置き換えは行われない。
以上のようにスクランブルされた結果、lowerページ（図１６で説明したデータＰＧ０）、middleページ（データＰＧ１）、upperページ（データＰＧ２）、及びtopページ（データＰＧ３）は下記のように生成される。
ＰＧ０：＜L0/T1/U2/L3/T4/U5/L6/T7/U8/L9/T10/U11/L12/T13/U14/L15＞
ＰＧ１：＜M0/M1/M2/M3/M4/M5/M6/M7/M8/M9/M10/M11/M12/M13/M14/M15＞
ＰＧ２：＜U0/L1/T2/U3/L4/T5/U6/L7/T8/U9/L10/T11/U12/L13/T14/U15＞
ＰＧ３：＜T0/U1/L2/T3/U4/L5/T6/U7/L8/T9/U10/L11/T12/U13/L14/T15＞
もちろん、（１＋３）スクランブルにおいて、３ページ間でスクランブルされるページは図４０の場合に限定されないし、スクランブルされないページはmiddleページに限らない。例えばmiddleページとupperページとtopページがスクランブルされ、更にlowerページがスクランブルされない場合でもよいし、特に限定されるものではない。また第５実施形態で説明したとおり、ページ間でのデータの入れ替えはビット単位ではなくカラム単位、または更に別の単位であってもよい。なお、以下でも、scrambledデータにおけるlowerページ、middleページ、upperページ、及びtopページを、それぞれscrambled lowerページ、scrambled middleページ、scrambled upperページ、及びscrambled topページと呼ぶことがある。
【０２６０】
ステップＳ２４で発行される書き込みコマンドシーケンスは第８実施形態で説明した通りであるが、prefixコマンドとして“Ｘ３ｈ”が発行される。本例においてコマンド“Ｘ３ｈ”は、partial page scramble方式を用いた（１＋３）スクランブルであることをＮＡＮＤ型フラッシュメモリ１００に宣言する。そして、図４０下図のようにスクランブルされた４ページ分のデータを用いてfull sequence programが実行される。但し、本例においても、“Ｘ３ｈ”の発行が省略されてもよい。
【０２６１】
１０．２  データの読み出し動作
次に、上記scrambledデータの読み出し方法について説明する。ステップＳ２５で発行される読み出しコマンドシーケンスは、第６実施形態で説明した図２８Ｂ及び図２８Ｃとほぼ同様であるが、prefixコマンドの意味と読み出されるデータとが第６実施形態とは異なる。
【０２６２】
例えば、scrambled middleページ（M0/M1/M2/…M15）を読み出す場合、コントローラ２００は図２８Ｂに示すコマンドシーケンスを発行する。但し、prefixコマンドは、“Ｙ３ｈ”の代わりに“Ｙ４ｈ”が発行される。コマンド“Ｙ４ｈ”は、partial page scramble方式を用いた（１＋３）スクランブルであり、且つそのうちの１ページ（本例ではmiddleページ）を指定することをＮＡＮＤ型フラッシュメモリ１００に宣言するものである。その後は第６実施形態と同様に、コマンド“００ｈ”、アドレスＡＤＤ、及びコマンド“３０ｈ”が発行される。そしてＮＡＮＤ型フラッシュメモリ１００はビジー状態となり、コマンド“Ｙ４ｈ”に応答して、scrambled middleページを読み出すためのpartial sequential readingを実行する。この結果、middleページ（M0/M1/M2/…M15）がラッチ回路ＸＤＬに保持される。
【０２６３】
他方で、のscrambled lowerページ（L0/T1/U2/L3/…L15）とscrambled upperページ（U0/L1/T2/U3/…U15）とscrambled topページ（T0/U1/L2/T3/…T15）を読み出す場合、コントローラ２００は図２８Ｃに示すコマンドシーケンスを発行する。但し、prefixコマンド“Ｙ４ｈ”の代わりに“Ｙ５ｈ”が発行される。コマンド“Ｙ５ｈ”は、partial page scramble方式を用いた（１＋３）スクランブルであり、且つそのうちの３ページ（本例ではlowerページ（L0/T1/U2/L3/…L15）、upperページ（U0/L1/T2/U3/…U15）、及びtopページ（T0/U1/L2/T3/…T15））を指定することをＮＡＮＤ型フラッシュメモリ１００に宣言するものである。その後は第６実施形態と同様に、コマンド“００ｈ”、アドレスＡＤＤ、及びコマンド“３０ｈ”が発行される。そしてＮＡＮＤ型フラッシュメモリ１００はビジー状態となり、コマンド“Ｙ５ｈ”に応答して、scrambled lowerページ、scrambled upperページ、及びscrambled topページを読み出すためのpartial sequential readingを実行する。この結果、scrambled lowerページ（L0/T1/U2/L3/…L15）がラッチ回路ＸＤＬに保持され、scrambled upperページ（U0/L1/T2/U3/…U15）がラッチ回路ＡＤＬに保持され、scrambled topページ（T0/U1/L2/T3/…T15）がラッチ回路ＢＤＬに保持される。そして、コントローラ２００は、scrambled lowerページを読み出した後、コマンド“Ｚ１ｈ”を発行することでscrambled lowerページを読み出し、更にコマンド“Ｚ１ｈ”を発行することでscrambled topページを読み出すことができる。もちろん、本例の場合においても“Ｙ４ｈ”及び“Ｙ５ｈ”の発行が省略されてもよい。
【０２６４】
図４１Ａは、上記説明した図２８Ｂに示すコマンドシーケンス発行時の、図２０ＡのステップＳ３１実行時における、選択ワード線ＷＬの電位変化と、センスアンプ１４０内の各ラッチ回路に保持されるデータとを示すタイミングチャートである。
【０２６５】
図示するように、ロウデコーダ１２０は選択ワード線ＷＬに対して電圧Ｖ３、Ｖ７、Ｖ９、及びＶＤを順次印加する。これにより、読み出し動作３Ｒ、７Ｒ、９Ｒ、及びＤＲが順次実行される。以下では、各読み出し動作で行われる演算と、センスアンプ１４０内の各ラッチ回路の保持データにつき説明する。
・読み出し動作３Ｒ：読み出し結果SAは反転され、XDLに保持される。
XDL=~SA
・読み出し動作７Ｒ：読み出し結果SAはXDLの保持データとXNOR演算される。
XDL=SA xnor XDL
・読み出し動作９Ｒ：読み出し結果SAはXDLの保持データとOR演算される。
XDL=SA｜XDL
・読み出し動作ＤＲ：読み出し結果SAはXDLの保持データとXNOR演算される。
XDL=SA xnor XDL
上記の結果、scrambled middleビット（M0/M1/M2/…M15）が確定してラッチ回路ＸＤＬに保持される。
【０２６６】
図４１Ｂは、上記説明した図２８Ｃに示すコマンドシーケンス発行時の、、図２０ＡのステップＳ３１実行時における、選択ワード線ＷＬの電位変化と、センスアンプ１４０内の各ラッチ回路に保持されるデータとを示すタイミングチャートである。
【０２６７】
図示するように、ロウデコーダ１２０は選択ワード線ＷＬに対して電圧Ｖ１、Ｖ２、Ｖ４、Ｖ５、Ｖ６、Ｖ８、ＶＡ、ＶＢ、ＶＣ、ＶＥ、及びＶＦを順次印加する。これにより、読み出し動作１Ｒ、２Ｒ、４Ｒ、５Ｒ、６Ｒ、８Ｒ、ＡＲ、ＢＲ、ＣＲ、ＥＲ、及びＦＲが順次実行される。以下では、各読み出し動作で行われる演算と、センスアンプ１４０内の各ラッチ回路の保持データにつき説明する。
・読み出し動作１Ｒ：読み出し結果SAは反転され、XDLに保持される。
XDL=~SA
・読み出し動作２Ｒ：読み出し結果SAは反転され、ADLに保持される。
BDL=~SA
・読み出し動作４Ｒ：読み出し結果SAはXDLの保持データとXNOR演算される。
XDL=SA xnor XDL
・読み出し動作５Ｒ：読み出し結果SAは反転され、BDLに保持される。
CDL=~SA
・読み出し動作６Ｒ：読み出し結果SAは反転されXDLの保持データとOR演算される。
XDL=~SA｜XDL
・読み出し動作８Ｒ：読み出し結果SAはADLの保持データとXNOR演算される。
ADL=SA xnor ADL
・読み出し動作ＡＲ：読み出し結果SAはBDLの保持データとXNOR演算される。
BDL=SA xnor BDL
・読み出し動作ＢＲ：読み出し結果SAはXDLの保持データとXNOR演算される。
XDL=SA xnor XDL
・読み出し動作ＣＲ：読み出し結果SAはBDLの保持データとOR演算される。
BDL=SA｜BDL
・読み出し動作ＥＲ：読み出し結果SAは反転されADLの保持データとOR演算される。
ADL=~SA｜ADL
・読み出し動作ＦＲ：読み出し結果SAは反転されBDLの保持データとXNOR演算される。
BDL=~SA xnor BDL
上記のように、読み出し動作ＢＲでscrambled lowerビット（L0/T1/U2/L3/…L15）が確定してラッチ回路ＸＤＬに保持され、読み出し動作ＥＲでscrambled upperビット（U0/L1/T2/U3/…U15）が確定してラッチ回路ＡＤＬに保持され、読み出し動作ＦＲでscrambled topビット（T0/U1/L2/T3/…T15）が確定してラッチ回路ＢＤＬに保持される。
【０２６８】
１０．３  本実施形態に係る効果
データのスクランブル方法には、例えば本実施形態で説明した方法を用いることができる。
【０２６９】
また、読み出し時のコマンドシーケンスも、第６実施形態で説明した図３０Ａ及び図３０Ｂのように読み出し対象ページ（ラッチ回路）を指定してもよい。
【０２７０】
例えばコントローラ２００がscrambled upperページ（U0/L1/T2/U3/…U15）を要求する場合には、図３０Ａで説明したコマンドシーケンスを利用できる。この場合、図３０Ａにおいて、prefixコマンド“Ｙ５ｈ”を発行して、（１＋３）ページのうちの３ページを選択し、コマンド“０３ｈ”を発行することでupperページを指定する。これにより、ラッチ回路ＸＤＬにはscrambled upperページ（U0/L1/T2/U3/…U15）が保持される。
【０２７１】
またコントローラ２００がscrambled lowerページ（L0/T1/U2/L3/…L15）とscrambled upperページ（U0/L1/T2/U3/…U15）とを要求する場合には、図３０Ｂで説明したコマンドシーケンスを利用できる。この場合、図３０Ｂにおいて、prefixコマンド“Ｙ５ｈ”を発行して（１＋３）ページのうちの３ページを選択し、コマンド“０１ｈ”を発行することでlowerページを指定する。これにより、ラッチ回路ＸＤＬにはscrambled lowerページ（L0/T1/U2/L3/…L15）が保持され、ラッチ回路ＡＤＬにはscrambled upperページ（U0/L1/T2/U3/…U15）が保持される。よってコントローラ２００は、scrambled lowerページを読み出した後、コマンド“Ｚ１ｈ”を１回発行することでscrambled upperページを読み出すことができる。
【０２７２】
１１．第１１実施形態
次に、第１１実施態様に従った半導体記憶装置について説明する。本実施形態は、複数のメモリチップを備えたメモリシステムにおいて、ページ間だけでなくメモリチップ間でデータをスクランブルする方法に関する。以下では、第１乃至第１０実施形態と異なる点についてのみ説明する。
【０２７３】
１１．１  メモリシステムの構成について
図４２は、本実施形態に係るメモリシステム１のブロック図である。図示するように、本実施形態に係るメモリシステム１は、第１実施形態で説明した図１の構成において、複数（図４２の例では４個）のＮＡＮＤ型フラッシュメモリ１００（１００−０〜１００−４）を備えたものである。これらのＮＡＮＤ型フラッシュメモリ１００は互いに異なる半導体チップ上に形成され、それぞれメモリチップＣＰ（ＣＰ０〜ＣＰ３）と呼ぶことがある。そして、チップイネーブル信号ＣＥｎ及びレディ・ビジー信号ＲＥｎはメモリチップＣＰ毎に用意される。他方で、信号Ｉ／Ｏは、共通の信号線を用いてコントローラ２００とメモリチップＣＰ０〜ＣＰ３間を伝送される。また、メモリチップＣＰは、並列して動作可能であり、例えば時間的に同時にデータの書き込み動作や読み出し動作などを実行することができる。
【０２７４】
なお本実施形態では、ＮＡＮＤ型フラッシュメモリ１００−０〜１００−４のメモリセルトランジスタが、第８乃至第１０実施形態で説明したように、４ビットのデータを保持可能な場合について説明する。
【０２７５】
１１．２  データの書き込み動作
データの書き込み動作の大まかな流れは第５実施形態で説明した図１５とほぼ同様であり、図１５のステップＳ２３におけるスクランブル処理は第８乃至第１０実施形態で説明したとおりである。本実施形態が第５乃至第１０実施形態と異なる点は、図１５のステップＳ２４において、互いにビットを組み替えることによりスクランブルされて生成された４ページのデータが、それぞれ異なるメモリチップＣＰに転送される点である。この様子を図４３に示す。図４３は、図１５で説明したコントローラの処理の流れを大まかに示す概念図であり、第１実施形態で説明した図１６を本実施形態に適用したものである。
【０２７６】
本例であると、メモリセルトランジスタが４ビットのデータを保持する。従って図４３では説明の簡単化のため、コントローラ２００が、１６ページ分に相当するデータをホスト機器３００から受信された場合を示している。図示するように、第５実施形態の図１６で説明したように、コントローラ２００はホスト機器３００から受信したデータを、データユニットＤＵ（ＤＵ０〜ＤＵ１６）に分割する。そしてＥＣＣ回路２６０がデータユニットＤＵ毎にパリティを生成し、これをデータユニットＤＵに付与する。その後、プロセッサ２３０が、第８乃至第１０実施形態で説明したいずれかの方式によりデータをスクランブルする。例えば図４３において、データユニットＤＵ０〜ＤＵ３がＮＡＮＤ型フラッシュメモリ１００−０のそれぞれワード線ＷＬ０のlower/middle/upper/topページに対応していたとする。するとプロセッサ２３０は、データユニットＤＵ０〜ＤＵ３間でデータをスクランブルする。また、データユニットＤＵ４〜ＤＵ７がＮＡＮＤ型フラッシュメモリ１００−０のそれぞれワード線ＷＬ１のlower/middle/upper/topページに対応していたとする。するとプロセッサは、データユニットＤＵ４〜ＤＵ７間でデータをスクランブルする。データユニットＤＵ８〜ＤＵ１１、及びデータユニットＤＵ１２〜ＤＵ１５についても同様である。
【０２７７】
以上の結果、データユニットＤＵ０〜ＤＵ３及びこれらのパリティがスクランブルされて、データＰＧ０〜ＰＧ３が生成される。また、データユニットＤＵ４〜ＤＵ７及びこれらのパリティがスクランブルされて、データＰＧ４〜ＰＧ７が生成される。データＰＧ８〜ＰＧ１１及びデータＰＧ１２〜ＰＧ１５も同様である。
【０２７８】
そして、データＰＧ０、ＰＧ４、ＰＧ８、及びＰＧ１２がメモリチップＣＰ０に送信され、それぞれがワード線ＷＬ０のlowerページ、middleページ、upperページ、及びtopページに書き込まれる。また、データＰＧ１、ＰＧ５、ＰＧ９、及びＰＧ１３がメモリチップＣＰ１に送信され、それぞれがワード線ＷＬ０のmiddleページ、upperページ、topページ、及びlowerページに書き込まれる。更に、ページデータＰＧ２、ＰＧ６、ＰＧ１０、及びＰＧ１４がメモリチップＣＰ２に送信され、それぞれがワード線ＷＬ０のupperページ、topページ、lowerページ、及びmiddleページに書き込まれる。そして、ページデータＰＧ３、ＰＧ７、ＰＧ１１、及びＰＧ１５がメモリチップＣＰ３に送信され、それぞれがワード線ＷＬ０のtopページ、lowerページ、middleページ、及びupperページに書き込まれる。
【０２７９】
上記のような、各メモリチップＣＰのワード線ＷＬの各ページ（top/upper/middle/lower）と、それに書き込まれるデータＰＧとの関係を図４４に示す。図示するように、ＮＡＮＤ型フラッシュメモリ１００−０のワード線ＷＬｉ（ｉは整数であり、本例ではｉ＝０）には、データＰＧ０、ＰＧ４、ＰＧ８、及びＰＧ１２が、それぞれlowerページ、middleページ、upperページ、及びtopページに書き込まれる。また、ＮＡＮＤ型フラッシュメモリ１００−１のワード線ＷＬｉには、データＰＧ１３、ＰＧ１、ＰＧ５、及びＰＧ９が、それぞれlowerページ、middleページ、upperページ、及びtopページに書き込まれる。また、ＮＡＮＤ型フラッシュメモリ１００−２のワード線ＷＬｉには、データＰＧ１０、ＰＧ１４、ＰＧ２、及びＰＧ６が、それぞれlowerページ、middleページ、upperページ、及びtopページに書き込まれる。そして、ＮＡＮＤ型フラッシュメモリ１００−３のワード線ＷＬｉには、データＰＧ７、ＰＧ１１、ＰＧ１５、及びＰＧ３が、それぞれlowerページ、middleページ、upperページ、及びtopページに書き込まれる。
【０２８０】
更に、ＮＡＮＤ型フラッシュメモリ１００−０のワード線ＷＬ（ｉ＋１）には、データＰＧ１６、ＰＧ２０、ＰＧ２４、及びＰＧ２８が、それぞれlowerページ、middleページ、upperページ、及びtopページに書き込まれる。また、ＮＡＮＤ型フラッシュメモリ１００−１のワード線ＷＬ（ｉ＋１）には、データＰＧ２９、ＰＧ１７、ＰＧ２１、及びＰＧ２５が、それぞれlowerページ、middleページ、upperページ、及びtopページに書き込まれる。また、ＮＡＮＤ型フラッシュメモリ１００−２のワード線ＷＬ（ｉ＋１）には、データＰＧ２６、ＰＧ３０、ＰＧ１８、及びＰＧ２２が、それぞれlowerページ、middleページ、upperページ、及びtopページに書き込まれる。そして、ＮＡＮＤ型フラッシュメモリ１００−３のワード線ＷＬ（ｉ＋１）には、データＰＧ２３、ＰＧ２７、ＰＧ３１、及びＰＧ１９が、それぞれlowerページ、middleページ、upperページ、及びtopページに書き込まれる。データＰＧ３２以降も同様である。
【０２８１】
次に、書き込みコマンドシーケンスにつき、図４５Ａ乃至図４５Ｄを用いて説明する。図４５Ａ乃至図４５Ｄは、メモリチップＣＰ０乃至ＣＰ３に送信される信号Ｉ／Ｏと、レディ状態であるかビジー状態であるかを示すタイミングチャートであり、図４５乃至図４５Ｄは時間的に連続しており、紙面の都合上、４つの図に分けて記載したものである。
【０２８２】
まず図４５Ａに示すように、コントローラ２００はメモリチップＣＰ０に対して書き込みデータを転送する。コマンドシーケンスは、図１９で説明したとおりである。まず、lowerページを指定するコマンド“０１ｈ”と共にデータＰＧ０が送信され、次にmiddleページを指定するコマンド“０２ｈ”と共にデータＰＧ４が送信され、次にupperページを指定するコマンド“０３ｈ”と共にデータＰＧ８が送信され、最後にtopページを指定するコマンド“０４ｈ”と共にデータＰＧ１２が送信される。そして、コマンド“１０ｈ”が発行されることにより、ＮＡＮＤ型フラッシュメモリ１００−０はページデータＰＧ０、ＰＧ４、ＰＧ８、及びＰＧ１２を用いてfull sequence programを開始し、レディ状態からビジー状態に遷移する。
【０２８３】
引き続き、図４５Ｂに示すようにコントローラ２００は、メモリチップＣＰ１に対して書き込みデータを転送する。すなわち、まずコマンド“０１ｈ”と共にページデータＰＧ１３が送信され、次にコマンド“０２ｈ”と共にページデータＰＧ１が送信され、次にコマンド“０３ｈ”と共にデータＰＧ５が送信され、最後にコマンド“０４ｈ”と共にページデータＰＧ９が送信される。そして、コマンド“１０ｈ”が発行されることにより、ＮＡＮＤ型フラッシュメモリ１００−１はデータＰＧ１３、ＰＧ１、ＰＧ５、及びＰＧ９を用いてfull sequence programを開始し、レディ状態からビジー状態に遷移する。
【０２８４】
更に、図４５Ｃに示すようにコントローラ２００は、メモリチップＣＰ２に対して書き込みデータを転送する。すなわち、まずコマンド“０１ｈ”と共にデータＰＧ１０が送信され、次にコマンド“０２ｈ”と共にデータＰＧ１４が送信され、次にコマンド“０３ｈ”と共にデータＰＧ２が送信され、最後にコマンド“０４ｈ”と共にデータＰＧ６が送信される。そして、コマンド“１０ｈ”が発行されることにより、ＮＡＮＤ型フラッシュメモリ１００−２はデータＰＧ１０、ＰＧ１４、ＰＧ２、及びＰＧ６を用いてfull sequence programを開始し、レディ状態からビジー状態に遷移する。
【０２８５】
その後、図４５Ｄに示すようにコントローラ２００は、メモリチップＣＰ３に対して書き込みデータを転送する。すなわち、まずコマンド“０１ｈ”と共にデータＰＧ７が送信され、次にコマンド“０２ｈ”と共にページデータＰＧ１１が送信され、次にコマンド“０３ｈ”と共にデータＰＧ１５が送信され、最後にコマンド“０４ｈ”と共にデータＰＧ３が送信される。そして、コマンド“１０ｈ”が発行されることにより、ＮＡＮＤ型フラッシュメモリ１００−３はデータＰＧ７、ＰＧ１１、ＰＧ１５、及びＰＧ３を用いてfull sequence programを開始し、レディ状態からビジー状態に遷移する。
【０２８６】
１１．３  データの読み出し動作
データの書き込み動作の大まかな流れは第５実施形態で説明した図２０Ａとほぼ同様であるが、以下の点で異なる。すなわち、本例の場合、読み出し対象となるデータユニットＤＵを構成するための４ページ分のデータＰＧは、それぞれ異なるメモリチップＣＰ０〜ＣＰ３に書き込まれている。従ってコントローラ２００は、各メモリチップＣＰに対して、必要なデータＰＧを読み出すよう、読み出しコマンドを発行する。この読み出しコマンドに応答して各ＮＡＮＤ型フラッシュメモリ１００では、page-by-page readingにより、必要なページデータＰＧを読み出す。もちろん、full sequential readingを行い、必要なデータのみをセンスアンプ１４０のラッチ回路に保持させてもよいが、本例の場合にはＮＡＮＤ型フラッシュメモリ１００毎に１ページ分のデータが読み出せればよいので、page-by-page readingを用いることができる。
【０２８７】
上記のようにして読み出された４ページ分のデータＰＧは、４つのデータユニットＤＵ及びこれらのパリティがスクランブルされて生成されたものである。従ってコントローラ２００は例えばプロセッサ２３０またはＥＣＣ回路２６０は、スクランブル処理とは逆のビット操作を行い、４ページ分のデータＰＧをデコードする。その後は、ステップＳ２７及びＳ２８が実行され、エラー訂正されたデータユニットがホスト機器３００に送信される。
【０２８８】
図４６Ａは、メモリチップＣＰ０乃至ＣＰ３に送信される信号Ｉ／Ｏと、レディ状態であるかビジー状態であるかを示すタイミングチャートであり、一例として図４３及び図４４のケースにおいてデータユニットＤＵ０を読み出す場合の読み出しコマンドシーケンスを示している。
【０２８９】
図示するようにコントローラ２００は、まずメモリチップＣＰ０に対して読み出しコマンドを発行する。本コマンドシーケンスでは、まずコマンド“０１ｈ”によりlowerページが指定される。すると、ＮＡＮＤ型フラッシュメモリ１００−０では、lowerページのみを読み出す。すなわち、図３５で説明したように、読み出し動作１Ｒ、４Ｒ、６Ｒ、及びＢＲを実行する。この結果、データＰＧ０がラッチ回路ＸＤＬに読み出される。
【０２９０】
引き続きコントローラ２００は、メモリチップＣＰ１に対して読み出しコマンドを発行する。本コマンドシーケンスでは、コマンド“０２ｈ”によりmiddleページが指定される。すると、ＮＡＮＤ型フラッシュメモリ１００−１では、middleページのみを読み出す。すなわち、読み出し動作３Ｒ、７Ｒ、９Ｒ、及びＤＲを実行する。この結果、データＰＧ１がラッチ回路ＸＤＬに読み出される。
【０２９１】
更にコントローラ２００は、メモリチップＣＰ２に対して読み出しコマンドを発行する。本コマンドシーケンスでは、コマンド“０３ｈ”によりupperページが指定される。すると、ＮＡＮＤ型フラッシュメモリ１００−２では、upperページのみを読み出す。すなわち、読み出し動作２Ｒ、８Ｒ、及びＥＲを実行する。この結果、データＰＧ２がラッチ回路ＸＤＬに読み出される。
【０２９２】
そしてコントローラ２００は、メモリチップＣＰ３に対して読み出しコマンドを発行する。本コマンドシーケンスでは、コマンド“０４ｈ”によりtopページが指定される。すると、ＮＡＮＤ型フラッシュメモリ１００−３では、topページのみを読み出す。すなわち、読み出し動作５Ｒ、ＡＲ、ＣＲ、及びＦＲを実行する。この結果、データＰＧ３がラッチ回路ＸＤＬに読み出される。
【０２９３】
引き続き、コントローラ２００はリードイネーブル信号ＲＥｎをトグルすることにより、ＮＡＮＤ型フラッシュメモリ１００−０〜１００−３からそれぞれデータＰＧ０〜ＰＧ３を読み出す。
【０２９４】
その後コントローラ２００の例えばプロセッサ２３０またはＥＣＣ回路２６０は、図４６Ｂに示すように、データＰＧ０〜ＰＧ３から必要なビット（またはカラム）を取り出してデータユニットＤＵ０及びそのパリティを生成する。例えば、図３６Ａに示すfull page scramble方式が採用されていた際には、コントローラ２００は、データＰＧ０からビットＬ０、Ｌ４、Ｌ８、及びＬ１２を取り出し、データＰＧ１からビットＬ１、Ｌ５、Ｌ９、及びＬ１３を取り出し、データＰＧ３からビットＬ２、Ｌ６、Ｌ１０、及びＬ１４を取り出し、データＰＧ４からビットＬ３、Ｌ７、Ｌ１１、及びＬ１５を取り出す。これにより、ビットＬ０〜Ｌ１５からなるデータユニットＤＵ０及びそのパリティが生成される。
【０２９５】
そしてＥＣＣ回路２６０がパリティを用いてエラーの検出及び訂正を行い、エラー訂正されたデータユニットＤＵ０がホスト機器３００へ送信される。
【０２９６】
１１．４  本実施形態に係る効果
上記のように、複数のメモリチップＣＰを備えたメモリシステムにおいては、ページ間だけでなく、メモリチップ間でデータをスクランブルしてもよい。これにより、メモリチップ間でデータがランダマイズされ、特定のメモリチップに“０”データや“１”データが集中することを抑制できる。
【０２９７】
１２．第１２実施形態  
次に、第１２実施態様に従った半導体記憶装置について説明する。本実施形態は、上記第１１実施形態において、メモリセルトランジスタＭＴが５ビットデータを保持する場合に関するものである。以下では第１乃至第１１実施形態と異なる点についてのみ説明する。
【０２９８】
１２．１  メモリシステムの構成について
本例に係るメモリシステム１は、第１１実施形態で説明した図４２の構成において、５個のＮＡＮＤ型フラッシュメモリ１００（１００−０〜１００−４）を備えたものである。これらはまた、それぞれメモリチップＣＰ（ＣＰ０〜ＣＰ４）と呼ぶことがある。そして、チップイネーブル信号ＣＥｎ及びレディ・ビジー信号ＲＥｎはメモリチップＣＰ毎に用意される。他方で、信号Ｉ／Ｏは、共通の信号線を用いてコントローラ２００とメモリチップＣＰ０〜ＣＰ４間を伝送される。また、メモリチップＣＰは、並列して動作可能であり、例えば時間的に同時にデータの書き込み動作や読み出し動作などを実行することができる。
【０２９９】
ＮＡＮＤ型フラッシュメモリ１００−０〜１００−４のメモリセルトランジスタは、第１乃至第７実施形態で説明したように、５ビットのデータを保持可能な場合について説明する。
【０３００】
１２．２  データの書き込み動作
図４７は、図１５で説明したコントローラの処理の流れを大まかに示す概念図であり、第６実施形態で説明した図４３に対応する。
【０３０１】
図示するように、コントローラ２００はホスト機器３００から受信したデータを、データユニットＤＵ（ＤＵ０〜ＤＵ２４）に分割する。そしてＥＣＣ回路２６０がデータユニットＤＵ毎にパリティを生成し、これをデータユニットＤＵに付与する。その後、プロセッサ２３０が、第５乃至第７実施形態で説明したいずれかの方式によりデータをスクランブルする。例えば図４７において、データユニットＤＵ０〜ＤＵ４がＮＡＮＤ型フラッシュメモリ１００−０のそれぞれワード線ＷＬ０のbottom/lower/middle/upper/topページに対応していたとする。するとプロセッサ２３０またはＥＣＣ回路２６０は、データユニットＤＵ０〜ＤＵ４間でデータをスクランブルする。この結果、データユニットＤＵ０〜ＤＵ４及びこれらのパリティがスクランブルされて、データＰＧ０〜ＰＧ４が生成される。また、データユニットＤＵ５〜ＤＵ９及びこれらのパリティがスクランブルされて、データＰＧ５〜ＰＧ９が生成される。以下、同様である。
【０３０２】
そして、データＰＧ０、ＰＧ５、ＰＧ１０、ＰＧ１５、及びＰＧ２０がメモリチップＣＰ０に送信され、それぞれがワード線ＷＬ０のbottomページ、lowerページ、middleページ、upperページ、及びtopページに書き込まれる。また、データＰＧ１、ＰＧ６、ＰＧ１１、ＰＧ１６、及びＰＧ２１がメモリチップＣＰ１に送信され、それぞれがワード線ＷＬ０のlowerページ、middleページ、upperページ、topページ、及びbottomページに書き込まれる。このような各メモリチップＣＰのワード線ＷＬの各ページ（top/upper/middle/lower/bottom）と、それに書き込まれるデータＰＧとの関係を図４８に示す。
【０３０３】
図示するように、ＮＡＮＤ型フラッシュメモリ１００−０のワード線ＷＬｉには、データＰＧ０、ＰＧ５、ＰＧ１０、ＰＧ１５、及びＰＧ２０が、それぞれbottomページ、lowerページ、middleページ、upperページ、及びtopページに書き込まれる。また、ＮＡＮＤ型フラッシュメモリ１００−１のワード線ＷＬｉには、データＰＧ２１、ＰＧ１、ＰＧ６、ＰＧ１１、及びＰＧ１６が、それぞれbottomページ、lowerページ、middleページ、upperページ、及びtopページに書き込まれる。更に、ＮＡＮＤ型フラッシュメモリ１００−２のワード線ＷＬｉには、データＰＧ１７、ＰＧ２２、ＰＧ２、ＰＧ７、及びＰＧ１７が、それぞれbottomページ、lowerページ、middleページ、upperページ、及びtopページに書き込まれる。更に、ＮＡＮＤ型フラッシュメモリ１００−３のワード線ＷＬｉには、データＰＧ１３、ＰＧ１８、ＰＧ２３、ＰＧ３、及びＰＧ８が、それぞれbottomページ、lowerページ、middleページ、upperページ、及びtopページに書き込まれる。そして、ＮＡＮＤ型フラッシュメモリ１００−４のワード線ＷＬｉには、データＰＧ９、ＰＧ１４、ＰＧ１９、ＰＧ２４、及びＰＧ４が、それぞれbottomページ、lowerページ、middleページ、upperページ、及びtopページに書き込まれる。
【０３０４】
また、ＮＡＮＤ型フラッシュメモリ１００−０のワード線ＷＬ（ｉ＋１）には、データＰＧ２５、ＰＧ３０、ＰＧ３５、ＰＧ４０、及びＰＧ４５が、それぞれbottomページ、lowerページ、middleページ、upperページ、及びtopページに書き込まれる。また、ＮＡＮＤ型フラッシュメモリ１００−１のワード線ＷＬ（ｉ＋１）には、データＰＧ４６、ＰＧ２６、ＰＧ３１、ＰＧ３６、及びＰＧ４１が、それぞれbottomページ、lowerページ、middleページ、upperページ、及びtopページに書き込まれる。更に、ＮＡＮＤ型フラッシュメモリ１００−２のワード線ＷＬ（ｉ＋１）には、データＰＧ４２、ＰＧ４７、ＰＧ２７、ＰＧ３２、及びＰＧ３７が、それぞれbottomページ、lowerページ、middleページ、upperページ、及びtopページに書き込まれる。更に、ＮＡＮＤ型フラッシュメモリ１００−３のワード線ＷＬ（ｉ＋１）には、データＰＧ３８、ＰＧ４３、ＰＧ４８、ＰＧ２８、及びＰＧ３３が、それぞれbottomページ、lowerページ、middleページ、upperページ、及びtopページに書き込まれる。そして、ＮＡＮＤ型フラッシュメモリ１００−４のワード線ＷＬ（ｉ＋１）には、データＰＧ３４、ＰＧ３９、ＰＧ４４、ＰＧ４９、及びＰＧ２９が、それぞれbottomページ、lowerページ、middleページ、upperページ、及びtopページに書き込まれる。
【０３０５】
書き込みコマンドシーケンスについては、第１１実施形態で説明した図４５Ａ乃至図４５Ｄにおいて、更にメモリチップＣＰ４にも書き込みコマンドを発行すればよい。
【０３０６】
１２．３  データの読み出し動作
データの読み出し動作の大まかな流れは第１１実施形態とほぼ同様である。すなわち、例えばデータユニットＤＵ０を読み出す際には、まずメモリチップＣＰ０に対して読み出しコマンドを発行する。本コマンドシーケンスでは、まずコマンド“０１ｈ”によりbottomページが指定される。すると、ＮＡＮＤ型フラッシュメモリ１００−０では、lowerページのみを読み出す。例えばすなわち、図６で説明したデータマッピングが採用されている場合には、読み出し動作１Ｒ、３Ｒ、ＢＲ、ＤＲ、及び１４Ｒを実行する。この結果、ページデータＰＧ０がラッチ回路ＸＤＬに読み出される。
【０３０７】
引き続きコントローラ２００は、メモリチップＣＰ１に対して読み出しコマンドを発行する。本コマンドシーケンスでは、コマンド“０２ｈ”によりlowerページが指定される。すると、ＮＡＮＤ型フラッシュメモリ１００−１では、lowerページのみを読み出す。すなわち、読み出し動作４Ｒ、６Ｒ、８Ｒ、ＡＲ、ＦＲ、１３Ｒ、及び１８Ｒを実行する。この結果、データＰＧ１がラッチ回路ＸＤＬに読み出される。
【０３０８】
更にコントローラ２００は、メモリチップＣＰ２に対して読み出しコマンドを発行する。本コマンドシーケンスでは、コマンド“０３ｈ”によりmiddleページが指定される。すると、ＮＡＮＤ型フラッシュメモリ１００−２では、middleページのみを読み出す。すなわち、読み出し動作２Ｒ、ＣＲ、１２Ｒ、１７Ｒ、１ＡＲ、１ＣＲ、及び１ＥＲを実行する。この結果、データＰＧ２がラッチ回路ＸＤＬに読み出される。
【０３０９】
更にコントローラ２００は、メモリチップＣＰ３に対して読み出しコマンドを発行する。本コマンドシーケンスでは、コマンド“０４ｈ”によりupperページが指定される。すると、ＮＡＮＤ型フラッシュメモリ１００−３では、upperページのみを読み出す。すなわち、読み出し動作５Ｒ、ＣＲ、１２Ｒ、１７Ｒ、１ＡＲ、１ＣＲ、及び１ＥＲを実行する。この結果、データＰＧ３がラッチ回路ＸＤＬに読み出される。
【０３１０】
そしてコントローラ２００は、メモリチップＣＰ４に対して読み出しコマンドを発行する。本コマンドシーケンスでは、コマンド“０５ｈ”によりtopページが指定される。すると、ＮＡＮＤ型フラッシュメモリ１００−４では、topページのみを読み出す。すなわち、読み出し動作７Ｒ、１１Ｒ、１６Ｒ、１ＢＲ、及び１ＦＲを実行する。この結果、データＰＧ４がラッチ回路ＸＤＬに読み出される。
【０３１１】
その後は、図４６Ｂに示すようにページデータＰＧ０〜ＰＧ４に基づいてデータユニットＤＵ０及びそのパリティが生成される。そしてＥＣＣ回路２６０がパリティを用いてエラーの検出及び訂正を行い、エラー訂正されたデータユニットＤＵ０がホスト機器３００へ送信される。
【０３１２】
１２．４  本実施形態に係る効果
上記のように、第１１実施形態は、メモリセルトランジスタＭＴが５ビットデータを保持する場合にも適用できる。
【０３１３】
なお、上記実施形態ではメモリセルトランジスタＭＴが５ビットデータを保持し、また５個のメモリチップＣＰが用意されている場合を例に説明した。従って、５つのデータユニットＤＵをスクランブルすることによって得られた５ページ分のデータは、それぞれ異なるメモリチップＣＰに書き込まれる。しかし、メモリセルトランジスタＭＴの保持可能なビット数よりもメモリチップＣＰの数が少ない場合には、スクランブルにより得られた複数ページ分のデータのうちのいくつかは、同一のメモリチップＣＰに書き込まれる。これは、第１１実施形態で説明した、メモリセルトランジスタＭＴが４ビットデータを保持する場合でも同様である。
【０３１４】
図４９は上記実施形態で説明した図４７に対応し、メモリセルトランジスタＭＴが５ビットデータを保持し、メモリシステム１が４個のメモリチップＣＰしか有していない場合を示している。図示するように本例の場合、データユニットＤＵ０〜ＤＵ４をスクランブルして得られたページデータＰＧ０〜ＰＧ４のうち、ページデータＰＧ０とＰＧ４とが同一のメモリチップＣＰ０に書き込まれる。また、ページデータＰＧ５とページデータＰＧ９も同一のメモリチップＣＰ０に書き込まれる。この様子をまとめた表が図５０であり、上記実施形態で説明した図４８に対応する。
【０３１５】
図示するように、５つのデータユニットＤＵを互いにスクランブルすることによって得られた５ページ分のページデータのうち、ワード線ＷＬｉに書き切れないページデータは、チップＣＰ０〜ＣＰ３のワード線（ｉ＋１）に書き込まれる。すなわち、ページデータＰＧ０〜ＰＧ４のうち、ＰＧ０〜ＰＧ３はチップＣＰ０〜ＣＰ３のワード線ＷＬ０のbottomページ、lowerページ、middleページ、及びupperページに書き込まれ、ＰＧ４はチップＣＰ０のワード線ＷＬ（ｉ＋１）のbottomページに書き込まれる。あるいは、ページデータＰＧ４は、チップＣＰ０のワード線ｉのtopページに書き込まれる場合であってもよい。
【０３１６】
更に、ページデータＰＧ５〜ＰＧ９のうち、ＰＧ５〜ＰＧ８はチップＣＰ０〜ＣＰ３のワード線ＷＬ０のlowerページ、middleページ、upperページ、及びtopページに書き込まれ、ＰＧ９はチップＣＰ０のワード線ＷＬ（ｉ＋１）のlowerページに書き込まれる。また、ページデータＰＧ１０〜ＰＧ１４のうち、ＰＧ１０〜ＰＧ１３はチップＣＰ０〜ＣＰ３のワード線ＷＬ０のmiddleページ、upperページ、topページ、及びbottomページに書き込まれ、ＰＧ１４はチップＣＰ０のワード線ＷＬ（ｉ＋１）のmiddleページに書き込まれる。以下、同様である。
【０３１７】
１３．変形例等
上記のように、本実施態様に従った半導体記憶装置は、閾値に応じて５ビットデータを保持可能なメモリセルと、メモリセルに接続されたワード線と、ワード線に第１乃至第３１読み出し電圧を印加可能なロウデコーダとを具備する。５ビットデータのうちの第１ビット(bottom in FIG3)は、第１乃至第６読み出し電圧(V1,V3,V5,VE,V10,V15 in FIG3)を用いた読み出し動作(1R,3R,5R,ER,10R,15R in FIG3)により確定される。第１ビットと異なる第２ビット(lower in FIG3)は、第７乃至第１２読み出し電圧(V2,VA,VD,V11,V17,V1B in FIG3)を用いた読み出し動作(2R,AR,DR,11R,17R,1BR in FIG3)により確定される。第１及び第２ビットと異なる第３ビット(middle in FIG3)は、第１３乃至第１８読み出し電圧(V4,V8,VF,V18,V1A,V1D in FIG3)を用いた読み出し動作(4R,8R,FR,18R,1AR,1DR in FIG3)により確定される。第１乃至第３ビットと異なる第４ビット(upper in FIG3)は、第１９乃至第２５読み出し電圧(V6,VC,V12,V14,V16,V1C,V1E in FIG3)を用いた読み出し動作(6R,CR,12R,14R,16R,1CR,1ER in FIG3)により確定される。第１乃至第４ビットと異なる第５ビット(top in FIG3)は、第２６乃至第３１読み出し電圧(V7,V9,VB,V13,V19,V1F in FIG3)を用いた読み出し動作(7R,9R,BR,13R,19R,1FR in FIG3)により確定される。そして、第１乃至第３１読み出し電圧は、互いに異なる電圧である。
【０３１８】
あるいは、５ビットデータのうちの第１ビット(bottom in FIG6)は、第１乃至第５読み出し電圧(V1,V3,VB,VD,V14 in FIG6)を用いた読み出し動作(1R,3R,BR,DR,14R in FIG6)により確定される。第１ビットと異なる第２ビット(lower in FIG6)は、第６乃至第１２読み出し電圧(V4,V6,V8,VA,VF,V13,V18 in FIG6)を用いた読み出し動作(4R,6R,8R,AR,FR,13R,18R in FIG6)により確定される。第１及び第２ビットと異なる第３ビット(middle in FIG6)は、第１３乃至第１９読み出し電圧(V2,V9,VE,V10,V15,V19,V1D in FIG6)を用いた読み出し動作(2R,9R,ER,10R,15R,19R,1DR in FIG6)により確定される。第１乃至第３ビットと異なる第４ビット(upper in FIG6)は、第２０乃至第２６読み出し電圧(V5,VC,V12,V17,V1A,V1C,V1E in FIG6)を用いた読み出し動作(5R,CR,12R,17R,1AR,1CR,1ER in FIG6)により確定される。第１乃至第４ビットと異なる第５ビット(top in FIG6)は、第２７乃至第３１読み出し電圧(V7,V11,V16,V1B,V1F in FIG6)を用いた読み出し動作(7R,11R,16R,1BR,1FR in FIG6)により確定されてもよい。
【０３１９】
更には、５ビットデータのうちの第１ビット(bottom in FIG9)は、第１乃至第６読み出し電圧(V2,V7,V9,VB,VD,V16 in FIG9)を用いた読み出し動作(2R,7R,9R,BR,DR,16R in FIG9)により確定される。第１ビットと異なる第２ビット(lower in FIG9)は、第７乃至第１３読み出し電圧(V3,V8,V10,V12,V14,V17,V1A in FIG9)を用いた読み出し動作(3R,8R,10R,12R,14R,17R,1AR in FIG9)により確定される。第１及び第２ビットと異なる第３ビット(middle in FIG9)は、第１４乃至第２０読み出し電圧(V4,V6,VA,VF,V13,V19,V1D in FIG9)を用いた読み出し動作(4R,6R,AR,FR,13R,19R,1DR in FIG9)により確定される。第１乃至第３ビットと異なる第４ビット(upper in FIG9)は、第２１乃至第２７読み出し電圧(V5,VC,V11,V15,V18,V1B,V1E in FIG9)を用いた読み出し動作(5R,CR,11R,15R,18R,1BR,1ER in FIG9)により確定される。そして、第１乃至第４ビットと異なる第５ビット(top in FIG9)は、第２８乃至第３１読み出し電圧(V1,VE,V1C,V1F in FIG9)を用いた読み出し動作(1R,ER,1CR,1FR in FIG9)により確定されてもよい。
【０３２０】
本構成によれば、５ビットデータ（32-level data）を保持可能なＮＡＮＤ型フラッシュメモリにおいて、各ビットを確定するための読み出し時におけるエラー発生率を低減出来、読み出し動作信頼性を向上出来る。
【０３２１】
なお、上記実施態様は種々に変形可能である。例えば第２、第４実施態様と同様に、第５乃至第１３実施態様で説明したマッピングのミラーパターンを用いても良い。また上記実施態様と同様の考え方が、５ビットデータ（32-level data）以上を保持可能なＮＡＮＤ型フラッシュメモリに適用可能であり、またＮＡＮＤ型フラッシュメモリに限らず、メモリセルが多ビットデータを保持可能な半導体メモリ全般に適用出来る。
【０３２２】
また、メモリセルトランジスタＭＴが取り得る“０”〜“１Ｆ”データと、bottomビット、lowerビット、middleビット、upperビット、及びtopビットとの関係は、上記実施態様に限定されるものではない。６−６−６−６−７マッピング、５−５−７−７−７マッピング、及び４−６−７−７−７マッピングであれば良く、その際に、隣接する閾値レベル間において変化するビット数が１ビットであれば良い。例えば５−５−７−７−７マッピングであれば、図６の例に限らず図５１に示す場合であってもよい。図５１において、メモリセルトランジスタが取り得る“０”〜“１Ｆ”状態と、bottomビット、lowerビット、middleビット、upperビット、及びtopビットとの関係は、次の通りである。
“０”状態：“１１１１１” （“top/upper/middle/lower/bottom”の順で表記）
“１”状態：“１１１１０”
“２”状態：“１１１００”
“３”状態：“１１１０１”
“４”状態：“１１００１”
“５”状態：“１１０００”
“６”状態：“１１０１０”
“７”状態：“１１０１１”
“８”状態：“１００１１”
“９”状態：“０００１１”
“Ａ”状態：“０１０１１”
“Ｂ”状態：“０１１１１”
“Ｃ”状態：“００１１１”
“Ｄ”状態：“１０１１１”
“Ｅ”状態：“１０１０１”
“Ｆ”状態：“００１０１”
“１０”状態：“０１１０１”
“１１”状態：“０１００１”
“１２”状態：“００００１”
“１３”状態：“１０００１”
“１４”状態：“１００００”
“１５”状態：“１０１００”
“１６”状態：“００１００”
“１７”状態：“０１１００”
“１８”状態：“０１０００”
“１９”状態：“０１０１０”
“１Ａ”状態：“０１１１０”
“１Ｂ”状態：“００１１０”
“１Ｃ”状態：“１０１１０”
“１Ｄ”状態：“１００１０”
“１Ｅ”状態：“０００１０”
“１Ｆ”状態：“０００００”
本例に係るマッピングであると、bottomページは読み出し動作１Ｒ、３Ｒ、５Ｒ、７Ｒ、及び１４Ｒによって読み出される。またlowerページは、読み出し動作２Ｒ、６Ｒ、ＥＲ、１９Ｒ、及び１ＦＲによって読み出される。更にmiddleページは、読み出し動作４Ｒ、ＢＲ、１１Ｒ、１５Ｒ、１８Ｒ、１ＡＲ、及び１ＤＲによって読み出される。更にupperページは、読み出し動作８Ｒ、ＡＲ、ＣＲ、１０Ｒ、１２Ｒ、１７Ｒ、及び１ＢＲによって読み出される。そしてtopページは、読み出し動作９Ｒ、ＤＲ、ＦＲ、１３Ｒ、１６Ｒ、１ＣＲ、及び１ＥＲによって読み出される。
【０３２３】
上記において、種々のマッピングの例を説明したが、読み出し信頼性及び／またはレイテンシの向上に着目した場合、本明細書内において具体例を挙げたマッピングを用いることが望ましい。
【０３２４】
上記は、第８実施形態で説明した、メモリセルトランジスタＭＴが４ビットデータを保持する場合であっても同様である。メモリセルトランジスタが４ビットデータを保持する際のマッピングについては、例えば“半導体メモリデバイス”という２０１５年７月９日に出願された米国特許仮出願６２／１９０，５８６号、及びこの本出願である２０１５年１２月９日に出願された米国特許出願１４／９６３，４８２号に記載されている。これらの特許出願は、その全体が本願明細書において参照により援用されている。
【０３２５】
更に、上記第５乃至第１２実施形態では、ページ間のスクランブル処理をコントローラ２００が行う場合を例に説明した。しかし、ＮＡＮＤ型フラッシュメモリ１００が行ってもよい。この場合のメモリシステム１の動作のフローチャートを図５２に示す。図示するように、第５実施形態で説明した図１５において、コントローラ２００はデータのスクランブルを行わずに、ページデータの書き込みコマンドを発行する（ステップＳ１２０）。発行されるコマンドシーケンスは、例えば図１９と同様であるが、prefixコマンドは、ＮＡＮＤ型フラッシュメモリ１００に対してデータのスクランブルを命令する。
【０３２６】
するとＮＡＮＤ型フラッシュメモリ１００では、例えばセンスアンプ１４０がデータをページ間でスクランブルする（ステップＳ１３０）。そして、５ページ分のスクランブルされたデータが揃うと、full sequence programが実行される（ステップＳ３０）。
【０３２７】
ステップＳ１３０におけるスクランブル方法の一例につき、図５３Ａ乃至５３Ｃを用いて説明する。図５３Ａ乃至５３Ｃは、ビット線ＢＬ０〜ＢＬ９に対応するセンスアンプユニットＳＡＵの各ラッチ回路に保持されるデータを示す模式図である。
【０３２８】
図示するように、まずステップＳ１２０により、コントローラ２００からbottomページデータが送信され、このデータ（B0/B1/B2/…B9）はまずラッチ回路ＸＤＬに保持される。そして、スクランブルされない場合には、bottomページデータは全ビットが例えばラッチ回路ＡＤＬに転送されるが、本例の場合には、図５３Ａに示すように、ビットＢ１及びＢ６はラッチ回路ＢＤＬに転送され、ビットＢ２及びＢ７はラッチ回路ＣＤＬに転送され、ビットＢ３及びＢ８はラッチ回路ＤＤＬに転送され、ビットＢ４及びＢ９はラッチ回路ＥＤＬに転送される。
【０３２９】
引き続き、コントローラ２００からlowerページデータが送信され、このデータ（L0/L1/L2/…L9）はまずラッチ回路ＸＤＬに保持される。そして、スクランブルされない場合には、lowerページデータは全ビットが例えばラッチ回路ＢＤＬに転送されるが、本例の場合には、図５３Ｂに示すように、ビットＬ１及びＬ６はラッチ回路ＣＤＬに転送され、ビットＬ２及びＬ７はラッチ回路ＤＤＬに転送され、ビットＬ３及びＬ８はラッチ回路ＥＤＬに転送され、ビットＬ４及びＬ９はラッチ回路ＡＤＬに転送される。
【０３３０】
以下、middleページデータ及びupperページデータも同様であり、最後にtopページデータがラッチ回路ＸＤＬに保持される。そして図５３Ｃに示すように、ビットＴ１及びＴ６はラッチ回路ＡＤＬに転送され、ビットＴ２及びＴ７はラッチ回路ＢＤＬに転送され、ビットＴ３及びＴ８はラッチ回路ＣＤＬに転送され、ビットＴ４及びＴ９はラッチ回路ＤＤＬに転送される。
【０３３１】
以上の結果、ラッチ回路ＡＤＬ、ＢＤＬ、ＣＤＬ、ＤＤＬ、及びＥＤＬには、図１７下図で示したscrambledデータが保持されることになる。もちろん、コントローラ２００から受信したbottomページデータ、lowerページデータ、middleページデータ、upperページデータ、及びtopページデータを一時的にラッチ回路ＡＤＬ、ＢＤＬ、ＣＤＬ、ＤＤＬ、及びＥＤＬに転送し、その後、データを入れ替えてもよく、スクランブルの具体的手法については適宜選択できる。
【０３３２】
また、上記第５乃至第１２実施形態において、scrambledデータのデコードをＮＡＮＤ型フラッシュメモリ１００が行ってもよい。この場合のメモリシステム１の動作のフローチャートを図５４に示す。図示するように、第５実施形態で説明した図２０Ａにおいて、コントローラ２００はデータのスクランブルされたデータではなく、通常のデータの読み出しコマンドを発行する（ステップＳ１２１）。発行されるコマンドシーケンスは、例えば図２１と同様であるが、prefixコマンド“Ｙ１ｈ”は、ＮＡＮＤ型フラッシュメモリ１００に対してscrambledデータのデコードを命令する。
【０３３３】
するとＮＡＮＤ型フラッシュメモリ１００では、メモリセルアレイ１１０からセンスアンプ１４０にデータが読み出される。そして、例えばセンスアンプ１４０がラッチ回路ＡＤＬ、ＢＤＬ、ＣＤＬ、ＤＤＬ、及びＥＤＬ間でビットを入れ替えることで、読み出された例えば５ページ分のscrambledデータをデコードする（ステップＳ１３１）。本方法の一例は、上記説明した図５３Ａ乃至５３Ｂの逆の動作である。例えば図５３Ｃに示すように、、メモリセルアレイ１１０から読み出されたscrambledデータのうち、bottomページがラッチ回路ＡＤＬに保持され、lowerページがＢＤＬに保持され、middleページがＣＤＬに保持され、upperページがＤＤＬに保持され、topページがＥＤＬに保持されたとする。そして、コントローラ２００からは、topページデータ（デコード後のtopページデータ）が要求されたと仮定する。するとセンスアンプ１４０は、ビット線ＢＬ０に対応するセンスアンプユニットＳＡＵにおいてはラッチ回路ＥＤＬ内のビットＴ０をＸＤＬに転送し、ビット線ＢＬ１に対応するセンスアンプユニットＳＡＵにおいてはラッチ回路ＡＤＬ内のビットＴ１をＸＤＬに転送し、ビット線ＢＬ２に対応するセンスアンプユニットＳＡＵにおいてはラッチ回路ＢＤＬ内のビットＴ２をＸＤＬに転送し、ビット線ＢＬ３に対応するセンスアンプユニットＳＡＵにおいてはラッチ回路ＣＤＬ内のビットＴ３をＸＤＬに転送する。以下同様である。その結果、図５３Ｃに示すようにラッチ回路ＸＤＬには、デコードされたtopページデータ（T0/T1/T2/T3/T4…）が保持される。そしてＮＡＮＤ型フラッシュメモリ１００は、このデコードされたページデータをコントローラ２００へ送信する。その後、コントローラ２００においてエラー訂正が行われる（ステップＳ２７）。
【０３３４】
なお、図５２では第５実施形態で説明した図２０Ａの場合を応用した例について説明したが、もちろん図２０Ｂのように、コントローラ２００はページ毎に読み出しコマンドを発行してもよい。この場合には、第５実施形態で説明したように、ＮＡＮＤ型フラッシュメモリ１００は、要求されたページにつき、メモリセルアレイ１１０からデータをセンスアンプ１４０に読み出し、読み出したビットを前述のようにラッチ回路間で入れ替えることで、scrambledデータをデコードする。
【０３３５】
更に、上記第１１及び第１２実施形態では、まずページ間でデータがスクランブルされ、更にメモリチップ間でデータがスクランブルされる例について説明した。すなわち、データが二重にスクランブルされる場合について説明した。しかし、ページ間でのスクランブルを行わない場合であってもよい。すなわち、例えば図４３において、ＤＵ０〜ＤＵ１５及びそれらのパリティを、ページ間でスクランブルすることなくそのままページデータＰＧ０〜ＰＧ１５として、メモリチップＣＰ０〜ＣＰ３に送信する場合であってもよい。このことは図４７でも同様である。
【０３３６】
更に、上記第５乃至第１２実施形態ではメモリセルトランジスタが４ビットまたは５ビットデータを保持する場合を例に説明したが、例えば３ビットデータを保持する場合であってもよく、この場合にはfull page scrambleまたは（１＋２）スクランブル方式を適用できる。（１＋２）スクランブルとは、１本のワード線ＷＬに割り当てられた３ページのうちの２ページ間でビットの入れ替えを行い、残りの１ページに関してはビットの入れ替えを行わず、これにより３ページ分のデータをランダマイズする方式である。また、６ビット以上のデータを保持する場合であってもよい。また上記実施形態では、半導体記憶装置として二次元または三次元のＮＡＮＤ型フラッシュメモリを例に挙げて説明したが、メモリセルが複数ビットを保持可能な記憶装置であれば広く適用できる。
【０３３７】
なお、本発明に関する各実施形態において、
（１）例えばメモリセルトランジスタＭＴが２ビットデータを保持可能であって、その閾値電圧が低いものから順に“Ｅｒ”、“Ａ”、“Ｂ”、“Ｃ”状態であって、“Ｅｒ”状態が消去状態であった場合に、“Ａ”状態の読み出し動作に選択されたワード線に印加される電圧は、例えば0V〜0.55Vの間である。これに限定されることなく、0.1V〜0.24V, 0.21V〜0.31V, 0.31V〜0.4V, 0.4V〜0.5V, 0.5V〜0.55Vいずれかの間にしてもよい。  
“Ｂ”状態の読み出し動作に選択されたワード線に印加される電圧は、例えば1.5V〜2.3Vの間である。これに限定されることなく、1.65V〜1.8V, 1.8V〜1.95V, 1.95V〜2.1V, 2.1V〜2.3Vいずれかの間にしてもよい。
“Ｃ”状態の読み出し動作に選択されたワード線に印加される電圧は、例えば3.0V〜4.0Vの間である。これに限定されることなく、3.0V〜3.2V, 3.2V〜3.4V, 3.4V〜3.5V, 3.5V〜3.6V, 3.6V〜4.0Vいずれかの間にしてもよい。
読み出し動作の時間（tR）としては、例えば25μs〜38μs, 38μs〜70μs, 70μs〜80μsの間にしてもよい。
（２）書き込み動作は、プログラム動作とベリファイ動作を含む。プログラム動作時に選択されたワード線に最初に印加される電圧は、例えば13.7V〜14.3Vの間である。これに限定されることなく、例えば13.7V〜14.0V, 14.0V〜14.6Vいずれかの間としてもよい。
奇数番目のワード線を書き込む際の、選択されたワード線に最初に印加される電圧と、偶数番目のワード線を書き込む際の、選択されたワード線に最初に印加される電圧を変えてもよい。  
プログラム動作をＩＳＰＰ方式（Incremental Step Pulse Program）としたとき、ステップアップの電圧として、例えば0.5V程度が挙げられる。
非選択のワード線に印加される電圧としては、例えば6.0V〜7.3Vの間としてもよい。この場合に限定されることなく、例えば7.3V〜8.4Vの間としてもよく、6.0V以下としてもよい。  
非選択のワード線が奇数番目のワード線であるか、偶数番目のワード線であるかで、印加するパス電圧を変えてもよい。
書き込み動作の時間（tProg）としては、例えば1700μs〜1800μs, 1800μs〜1900μs, 1900μs〜2000μsの間にしてもよい。
（３）消去動作では、
半導体基板上部に形成され、かつ、上記メモリセルが上方に配置されたウェルに最初に印加する電圧は、例えば12V〜13.6Vの間である。この場合に限定されることなく、例えば13.6V〜14.8V, 14.8V〜19.0V, 19.0〜19.8V, 19.8V〜21Vの間であってもよい。
消去動作の時間（tErase）としては、例えば3000μs〜4000μs, 4000μs〜5000μs, 4000μs〜9000μsの間にしてもよい。
（４）メモリセルの構造は、
半導体基板（シリコン基板）上に膜厚が４〜１０ｎｍのトンネル絶縁膜を介して配置された電荷蓄積層を有している。この電荷蓄積層は膜厚が２〜３ｎｍのＳｉＮ、またはＳｉＯＮなどの絶縁膜と膜厚が３〜８ｎｍのポリシリコンとの積層構造にすることができる。また、ポリシリコンにはＲｕなどの金属が添加されていても良い。電荷蓄積層の上には絶縁膜を有している。この絶縁膜は、例えば、膜厚が３〜１０ｎｍの下層Ｈｉｇｈ−ｋ膜と膜厚が３〜１０ｎｍの上層Ｈｉｇｈ−ｋ膜に挟まれた膜厚が４〜１０ｎｍのシリコン酸化膜を有している。Ｈｉｇｈ−ｋ膜はＨｆＯなどが挙げられる。また、シリコン酸化膜の膜厚はＨｉｇｈ−ｋ膜の膜厚よりも厚くすることができる。絶縁膜上には膜厚が３〜１０ｎｍの仕事関数調整用の材料を介して膜厚が３０ｎｍ〜７０ｎｍの制御電極が形成されている。ここで仕事関数調整用の材料はＴａＯなどの金属酸化膜、ＴａＮなどの金属窒化膜である。制御電極にはＷなどを用いることができる。
また、メモリセル間にはエアギャップを形成することができる。
【０３３８】
更に、上記実施形態では半導体記憶装置としてＮＡＮＤ型フラッシュメモリを例に説明したが、ＮＡＮＤ型フラッシュメモリに限らず、その他の半導体メモリ全般に適用出来、更には半導体メモリ以外の種々の記憶装置に適用出来る。
【０３３９】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【０３４０】
１…メモリシステム、１００…ＮＡＮＤ型フラッシュメモリ、１１０…メモリセルアレイ、１２０…ロウデコーダ、１３０…ドライバ回路、１４０…センスアンプ、１５０、１６０…レジスタ、１７０…シーケンサ、２００…コントローラ、２１０、２５０…インターフェース、２２０、２４０…メモリ、２３０…プロセッサ、２６０…ＥＣＣ回路、３００…ホスト機器
【図１】
2020155185.tif 000003
【図２】
2020155185.tif 000004
【図３】
2020155185.tif 000005
【図４】
2020155185.tif 000006
【図５】
2020155185.tif 000007
【図６】
2020155185.tif 000008
【図７】
2020155185.tif 000009
【図８】
2020155185.tif 000010
【図９】
2020155185.tif 000011
【図１０】
2020155185.tif 000012
【図１１】
2020155185.tif 000013
【図１２】
2020155185.tif 000014
【図１３】
2020155185.tif 000015
【図１４】
2020155185.tif 000016
【図１５】
2020155185.tif 000017
【図１６】
2020155185.tif 000018
【図１７】
2020155185.tif 000019
【図１８】
2020155185.tif 000020
【図１９】
2020155185.tif 000021
【図２０Ａ】
2020155185.tif 000022
【図２０Ｂ】
2020155185.tif 000023
【図２１】
2020155185.tif 000024
【図２２Ａ】
2020155185.tif 000025
【図２２Ｂ】
2020155185.tif 000026
【図２３Ａ】
2020155185.tif 000027
【図２３Ｂ】
2020155185.tif 000028
【図２３Ｃ】
2020155185.tif 000029
【図２４】
2020155185.tif 000030
【図２５】
2020155185.tif 000031
【図２６】
2020155185.tif 000032
【図２７】
2020155185.tif 000033
【図２８Ａ】
2020155185.tif 000034
【図２８Ｂ】
2020155185.tif 000035
【図２８Ｃ】
2020155185.tif 000036
【図２９Ａ】
2020155185.tif 000037
【図２９Ｂ】
2020155185.tif 000038
【図２９Ｃ】
2020155185.tif 000039
【図３０Ａ】
2020155185.tif 000040
【図３０Ｂ】
2020155185.tif 000041
【図３１】
2020155185.tif 000042
【図３２Ａ】
2020155185.tif 000043
【図３２Ｂ】
2020155185.tif 000044
【図３３Ａ】
2020155185.tif 000045
【図３３Ｂ】
2020155185.tif 000046
【図３４Ａ】
2020155185.tif 000047
【図３４Ｂ】
2020155185.tif 000048
【図３５】
2020155185.tif 000049
【図３６Ａ】
2020155185.tif 000050
【図３６Ｂ】
2020155185.tif 000051
【図３７】
2020155185.tif 000052
【図３８】
2020155185.tif 000053
【図３９Ａ】
2020155185.tif 000054
【図３９Ｂ】
2020155185.tif 000055
【図４０】
2020155185.tif 000056
【図４１Ａ】
2020155185.tif 000057
【図４１Ｂ】
2020155185.tif 000058
【図４２】
2020155185.tif 000059
【図４３】
2020155185.tif 000060
【図４４】
2020155185.tif 000061
【図４５Ａ】
2020155185.tif 000062
【図４５Ｂ】
2020155185.tif 000063
【図４５Ｃ】
2020155185.tif 000064
【図４５Ｄ】
2020155185.tif 000065
【図４６Ａ】
2020155185.tif 000066
【図４６Ｂ】
2020155185.tif 000067
【図４７】
2020155185.tif 000068
【図４８】
2020155185.tif 000069
【図４９】
2020155185.tif 000070
【図５０】
2020155185.tif 000071
【図５１】
2020155185.tif 000072
【図５２】
2020155185.tif 000073
【図５３Ａ】
2020155185.tif 000074
【図５３Ｂ】
2020155185.tif 000075
【図５３Ｃ】
2020155185.tif 000076
【図５４】
2020155185.tif 000077