(57)【要約】【課題】動作性能を向上出来る半導体記憶装置を提供する。【解決手段】一実施形態の半導体記憶装置は、第１メモリセルと、第１メモリセルに対応付けられた第１ラッチ回路及び第２ラッチ回路とを具備する。第１ラッチ回路と第２ラッチ回路とのいずれかを指定する第１アドレスと、第１メモリセルの保持するデータの読み出し命令とを外部から受信した際に、第１メモリセルからデータが読み出され、該読み出されたデータは第１アドレスに対応する第１ラッチ回路と第２ラッチ回路とのいずれかに保持される。【選択図】図１３
2019053798.tif 000002
【特許請求の範囲】
【請求項１】
データを保持可能な第１メモリセルと、
前記第１メモリセルに対応付けられた第１ラッチ回路及び第２ラッチ回路と
を具備し、
前記第１ラッチ回路と前記第２ラッチ回路とのいずれかを指定する第１アドレスと、前記第１メモリセルの保持するデータの読み出し命令とを外部から受信した際に、
前記第１メモリセルからデータが読み出され、該読み出されたデータは前記第１アドレスに対応する前記第１ラッチ回路と前記第２ラッチ回路とのいずれかに保持される、半導体記憶装置。
【請求項２】
前記受信した第１アドレスを保持する第１レジスタを更に備え、
前記第１メモリセルから読み出されたデータは、前記第１レジスタに保持された前記第１アドレスに応じたラッチ回路に格納される、請求項１記載の半導体記憶装置。
【請求項３】
前記第１メモリセルから読み出されたデータに対して、前記第１アドレスによって指定されるラッチ回路にそれまで保持されていたデータとの演算が行われ、該演算結果が、前記第１アドレスによって指定されるラッチ回路に保持される、請求項１または２記載の半導体記憶装置。
【請求項４】
前記演算の内容は、前記第１メモリセルからデータを読み出す前に指定されている、請求項３記載の半導体記憶装置。
【請求項５】
前記半導体記憶装置は、前記演算の内容を指定する第１演算情報を前記外部から受信し、
前記受信した第１演算情報に従って、前記演算が行われる、請求項３または４記載の半導体記憶装置。
【請求項６】
前記半導体記憶装置は、読み出し回数に相当する第１回数情報を前記外部から受信し、
前記読み出し命令を受信した後、前記第１メモリセルから前記受信した第１回数情報に相当する回数だけデータが繰り返し読み出される、請求項１乃至５いずれか１項記載の半導体記憶装置。
【請求項７】
前記半導体記憶装置は、読み出し電圧に関する第１電圧情報を外部から更に受信し、
前記読み出し命令を受信した後、前記第１メモリセルから前記受信した第１回数情報に相当する回数、データが繰り返し読み出され、
前記第１メモリセルから読み出しが繰り返される度に、前記第１電圧情報に従って読み出し電圧が変化される、請求項６記載の半導体記憶装置。
【請求項８】
前記半導体記憶装置は、読み出し電圧に関する第１電圧情報を外部から更に受信し、
前記読み出し命令を受信した後、前記第１メモリセルから複数回にわたってデータが繰り返し読み出され、
前記第１メモリセルから読み出しが繰り返される度に、前記第１電圧情報に従って読み出し電圧が変化される、請求項１乃至５いずれか１項記載の半導体記憶装置。
【請求項９】
前記第１メモリセルは、その閾値電圧に応じて複数ビットのデータを保持可能であり、
前記複数ビットのうちの第１ビットは、第１閾値範囲と第２閾値範囲との間の電圧を読み出しレベルに用いた第１読み出し動作と、第３閾値範囲と第４閾値範囲との間の電圧を読み出しレベルに用いた第２読み出し動作とに少なくとも基づいて決定され、
前記半導体記憶装置は、前記第１読み出し動作及び前記第２読み出し動作につき、前記第１アドレスと前記第１回数情報とを受信し、更に前記読み出し命令を受信した際に、前記第１読み出し動作と前記第２読み出し動作とを実行し、
前記第１アドレスが、前記第１読み出し動作において前記繰り返し読み出されるデータの格納先を前記第１ラッチ回路に指定し、前記第２読み出し動作において前記繰り返し読み出されるデータの格納先を前記第２ラッチ回路に指定することにより、前記第１ラッチ回路には、軟判定動作に用いられる第１ソフトビットデータが生成され、前記第２ラッチ回路には第２ソフトビットデータが生成される、請求項６または７記載の半導体記憶装置。
【請求項１０】
前記半導体記憶装置は、前記第１アドレスを含む第１コマンドシーケンスと、前記読み出し命令を含む第２コマンドシーケンスとを前記外部から順次受信し、
前記第１コマンドシーケンスで指定された情報に従って、データを保持させるべきラッチ回路が決定される、請求項１乃至４いずれか１項記載の半導体記憶装置。
【請求項１１】
前記半導体記憶装置は、前記第１アドレス及び前記第１演算情報を含む第１コマンドシーケンスと、前記読み出し命令を含む第２コマンドシーケンスとを順次受信し、
前記第１コマンドシーケンスで指定された情報に従って、データを保持させるべきラッチ回路と、前記演算の内容が決定される、請求項５記載の半導体記憶装置。
【請求項１２】
前記半導体記憶装置は、読み出し回数に相当する第１回数情報を前記外部から受信し、
前記半導体記憶装置は、前記第１アドレス、前記第１演算情報、及び前記第１回数情報を含む第１コマンドシーケンスと、前記読み出し命令を含む第２コマンドシーケンスとを順次受信し、
前記第１コマンドシーケンスで指定された情報に従って、データを保持させるべきラッチ回路、前記演算の内容、及び読み出しの繰り返し回数が決定される、請求項５記載の半導体記憶装置。
【請求項１３】
前記半導体記憶装置は、前記第１アドレス、前記第１演算情報、及び読み出し電圧に関する第１電圧情報を含む第１信号セットを複数回受信し、
前記第１信号セットが受信された回数、前記第１メモリセルからのデータの読み出し動作が繰り返され、
前記繰り返される読み出し動作において、データを保持させるべきラッチ回路、前記演算の内容、及び読み出し電圧は、対応する前記第１信号セットで指定された情報に従って決定される、請求項５記載の半導体記憶装置。
【請求項１４】
前記第１メモリセルは、その閾値電圧に応じて複数ビットのデータを保持可能であり、
前記複数ビットのうちの第１ビットは、第１閾値範囲と第２閾値範囲との間の電圧を読み出しレベルに用いた第１読み出し動作と、第３閾値範囲と第４閾値範囲との間の電圧を読み出しレベルに用いた第２読み出し動作とに少なくとも基づいて決定され、
前記半導体記憶装置は、前記第１読み出し動作につき前記第１信号セットを複数回受信し、前記第２読み出し動作につき前記第１信号セットを複数回受信し、
前記第１アドレスが、前記第１読み出し動作において前記繰り返し読み出されるデータの格納先を前記第１ラッチ回路に指定し、前記第２読み出し動作において前記繰り返し読み出されるデータの格納先を前記第２ラッチ回路に指定することにより、前記第１ラッチ回路及び前記第２ラッチ回路にはそれぞれ、軟判定動作に用いられる第１ソフトビットデータ及び第２ソフトビットデータが生成される、請求項１３記載の半導体記憶装置。
【請求項１５】
データを保持可能な第１メモリセルと、
前記第１メモリセルに対応付けられた第１ラッチ回路と
を具備し、
演算内容を指定する第１演算情報と、前記第１メモリセルの保持するデータの読み出し命令とを外部から受信した際に、
前記第１メモリセルからデータが読み出され、該読み出されたデータにつき、前記第１演算情報に基づく演算が実行され、該演算結果が前記第１ラッチ回路に保持される、半導体記憶装置。
【請求項１６】
前記受信した第１演算情報を保持する第１レジスタを更に備え、
前記第１メモリセルから読み出されたデータは、前記第１レジスタに保持された前記第１演算情報の内容に従って演算される、請求項１５記載の半導体記憶装置。
【請求項１７】
データを保持可能な第１メモリセルを具備し、
読み出し回数に相当する第１回数情報と、読み出し電圧に関する第１電圧情報と、前記第１メモリセルの保持するデータの読み出し命令とを外部から受信した際に、
前記第１メモリセルからのデータの読み出しを前記第１回数情報に基づく回数繰り返し、
前記繰り返しの度に、前記第１電圧情報に基づいて読み出し電圧を変化させる、半導体記憶装置。
【請求項１８】
前記第１メモリセルに対応付けられた第１ラッチ回路を更に備え、
前記繰り返し読み出されたデータのうち、
第１データが得られた際には、前記第１データに対する演算結果が前記第１ラッチ回路に保持され、
第２データが得られた際には、前記第１ラッチ回路内のデータは、前記第１データに対する演算結果と前記第２データとの演算結果に更新される、請求項１７記載の半導体記憶装置。
【請求項１９】
前記第１メモリセルから読み出されたデータは、軟判定動作のためのソフトビットデータの生成のために用いられる、請求項１５乃至１８いずれか１項記載の半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
実施形態は、半導体記憶装置に関する。
【背景技術】
【０００２】
メモリセルが三次元に配列された半導体メモリが知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許第８，２５０，４３７号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
動作性能を向上出来る半導体記憶装置を提供する。
【課題を解決するための手段】
【０００５】
本実施形態の半導体記憶装置は、データを保持可能な第１メモリセルと、第１メモリセルに対応付けられた第１ラッチ回路及び第２ラッチ回路とを具備する。第１ラッチ回路と第２ラッチ回路とのいずれかを指定する第１アドレスと、第１メモリセルの保持するデータの読み出し命令とを外部から受信した際に、第１メモリセルからデータが読み出され、該読み出されたデータは第１アドレスに対応する第１ラッチ回路と第２ラッチ回路とのいずれかに保持される。
【図面の簡単な説明】
【０００６】
【図１】図１は、第１実施形態に係るメモリシステムのブロック図。
【図２】図２は、第１実施形態に係るブロックの回路図。
【図３】図３は、第１実施形態に係るブロックの断面図。
【図４】図４は、第１実施形態に係るメモリセルアレイ及びセンスアンプの回路図。
【図５】図５は、第１実施形態に係るメモリセルの閾値分布を示すグラフと、ページと読み出し動作との関係を示す概念図。
【図６】図６は、第１実施形態に係る読み出し動作のフローチャート。
【図７】図７は、メモリセルの閾値分布を示すグラフ。
【図８】図８は、第１実施形態に係るメモリセルの閾値分布と、lowerページに関するハードビット及びソフトビットとの関係を示す概念図。
【図９】図９は、第１実施形態に係るソフトビットリード時におけるコマンドシーケンス。
【図１０】図１０は、第１実施形態に係るソフトビットリード時におけるコマンドシーケンス。
【図１１】図１１は、第１実施形態に係る種々のレジスタの概念図。
【図１２】図１２は、第１実施形態に係るソフトビットリード時におけるワード線電圧の時間変化を示すタイミングチャート。
【図１３】図１３は、第１実施形態に係るソフトビットリード時におけるワード線電圧とラッチ回路内のデータの時間変化を示す模式図。
【図１４】図１４は、第１実施形態に係るソフトビットリード時におけるワード線電圧とラッチ回路内のデータの時間変化を示す模式図。
【図１５】図１５は、第１実施形態に係るソフトビットリード時におけるワード線電圧とラッチ回路内のデータの時間変化を示す模式図。
【図１６】図１６は、第１実施形態に係るソフトビットリード時におけるワード線電圧とラッチ回路内のデータの時間変化を示す模式図。
【図１７】図１７は、第２実施形態に係るソフトビットリード時におけるコマンドシーケンス。
【図１８】図１８は、第２実施形態に係るソフトビットリード時におけるワード線電圧の時間変化を示すタイミングチャート。
【図１９】図１９は、第３実施形態に係るソフトビットリード時におけるコマンドシーケンス。
【図２０】図２０は、第４実施形態に係るソフトビットリード時におけるコマンドシーケンス。
【図２１】図２１は、第５実施形態に係るソフトビットリード時におけるコマンドシーケンス。
【図２２】図２２は、第５実施形態に係るソフトビットリード時におけるコマンドシーケンス。
【図２３】図２３は、第５実施形態に係るソフトビットリード時におけるコマンドシーケンス。
【図２４】図２４は、第５実施形態に係るソフトビットリード時におけるコマンドシーケンス。
【図２５】図２５は、第５実施形態に係るソフトビットリード時におけるコマンドシーケンス。
【図２６】図２６は、第６実施形態に係るソフトビットリード時におけるコマンドシーケンス。
【図２７】図２７は、第１乃至第６実施形態の第１変形例に係るソフトビットリード時におけるワード線電圧の時間変化を示すタイミングチャート。
【図２８】図２８は、第１乃至第６実施形態の第１変形例に係るソフトビットリード時におけるワード線電圧の時間変化を示すタイミングチャート。
【図２９】図２９は、第１乃至第６実施形態の第２変形例に係るソフトビットリード時におけるワード線電圧の時間変化を示すタイミングチャート。
【図３０】図３０は、第１乃至第６実施形態の第２変形例に係るソフトビットリード時におけるワード線電圧の時間変化を示すタイミングチャート。
【図３１】図３１は、第１乃至第６実施形態の第３変形例に係るソフトビットリード時におけるワード線電圧の時間変化を示すタイミングチャート。
【発明を実施するための形態】
【０００７】
以下、図面を参照して実施形態について説明する。なお、以下の説明において、同一の機能及び構成を有する構成要素については、共通する参照符号を付す。
【０００８】
１．第１実施形態  
第１実施形態に係る半導体記憶装置について説明する。以下では、半導体記憶装置としてＮＡＮＤ型フラッシュメモリを備えたメモリシステムを例に挙げて説明する。
【０００９】
１．１  構成について  
１．１．１  メモリシステムの全体構成について  
まず、本実施形態に係るメモリシステムの大まかな全体構成について、図１を用いて説明する。
【００１０】
図示するようにメモリシステム１は、ＮＡＮＤ型フラッシュメモリ１００とコントローラ２００とを備えている。ＮＡＮＤ型フラッシュメモリ１００とコントローラ２００とは、例えばそれらの組み合わせにより一つの半導体装置を構成しても良く、その例としてはＳＤＴＭカードのようなメモリカードや、ＳＳＤ（solid state drive）等が挙げられる。また、コントローラ２００は例えばＳｏＣ（system on chip）等であっても良い。
【００１１】
ＮＡＮＤ型フラッシュメモリ１００は複数のメモリセルを備え、データを不揮発に記憶する。コントローラ２００は、ＮＡＮＤバスによってＮＡＮＤ型フラッシュメモリ１００に接続され、ホストバスによってホスト機器３００に接続される。そしてコントローラ２００は、ＮＡＮＤ型フラッシュメモリ１００を制御し、またホスト機器３００から受信した命令に応答して、ＮＡＮＤ型フラッシュメモリ１００にアクセスする。ホスト機器３００は、例えばデジタルカメラやパーソナルコンピュータ等であり、ホストバスは、例えばＳＤＴＭインターフェースに従ったバスである。ＮＡＮＤバスは、ＮＡＮＤインターフェースに従った信号の送受信を行う。
【００１２】
１．１．２  コントローラ２００の構成について  
引き続き図１を用いて、コントローラ２００の構成の詳細について説明する。図１に示すようにコントローラ２００は、ホストインターフェース回路２１０、内蔵メモリ（ＲＡＭ）２２０、プロセッサ（ＣＰＵ）２３０、バッファメモリ２４０、ＮＡＮＤインターフェース回路２５０、及びＥＣＣ（Error Checking and Correcting）回路２６０を備えている。
【００１３】
ホストインターフェース回路２１０は、ホストバスを介してホスト機器３００と接続され、ホスト機器３００から受信した命令及びデータを、それぞれプロセッサ２３０及びバッファメモリ２４０に転送する。またプロセッサ２３０の命令に応答して、バッファメモリ２４０内のデータをホスト機器３００へ転送する。
【００１４】
プロセッサ２３０は、コントローラ２００全体の動作を制御する。例えばプロセッサ２３０は、ホスト機器３００から書き込み命令を受信した際には、それに応答して、ＮＡＮＤインターフェース回路２５０に対して書き込み命令を発行する。読み出し及び消去の際も同様である。またプロセッサ２３０は、ウェアレベリング等、ＮＡＮＤ型フラッシュメモリ１００を管理するための様々な処理を実行する。なお、以下で説明するコントローラ２００の動作はファームウェア（ＣＰＵ）で実現されても良いし、またはハードウェアで実現されても良い。
【００１５】
ＮＡＮＤインターフェース回路２５０は、ＮＡＮＤバスを介してＮＡＮＤ型フラッシュメモリ１００と接続され、ＮＡＮＤ型フラッシュメモリ１００との通信を司る。そしてＮＡＮＤインターフェース回路２５０は、プロセッサ２３０から受信した命令に基づき、種々の信号をＮＡＮＤ型フラッシュメモリ１００へ送信し、またＮＡＮＤ型フラッシュメモリ１００から受信する。
【００１６】
バッファメモリ２４０は、書き込みデータや読み出しデータを一時的に保持する。
【００１７】
内蔵メモリ２２０は、例えばＤＲＡＭやＳＲＡＭ等の半導体メモリであり、プロセッサ２３０の作業領域として使用される。そして内蔵メモリ２２０は、ＮＡＮＤ型フラッシュメモリ１００を管理するためのファームウェアや、各種の管理テーブル等を保持する。
【００１８】
ＥＣＣ回路２６０は、ＮＡＮＤ型フラッシュメモリ１００に記憶されるデータに関する誤り検出及び誤り訂正処理を行う。すなわちＥＣＣ回路２６０は、データの書き込み時には誤り訂正符号を生成して、これを書き込みデータに付与し、データの読み出し時にはこれを復号する。
【００１９】
１．１．３  ＮＡＮＤ型フラッシュメモリ１００の構成について  
１．１．３．１  ＮＡＮＤ型フラッシュメモリ１００の全体構成について  
次に、ＮＡＮＤ型フラッシュメモリ１００の構成について説明する。図１に示すようにＮＡＮＤ型フラッシュメモリ１００は、メモリセルアレイ１１０、ロウデコーダ１２０、ドライバ回路１３０、カラム制御回路１４０、レジスタ群１５０、及びシーケンサ１６０を備える。
【００２０】
メモリセルアレイ１１０は、ロウ及びカラムに対応付けられた複数の不揮発性のメモリセルを含む複数のブロックＢＬＫを備えている。図１では一例として４つのブロックＢＬＫ０〜ＢＬＫ３が図示されている。そしてメモリセルアレイ１１０は、コントローラ２００から与えられたデータを記憶する。
【００２１】
ロウデコーダ１２０は、ブロックＢＬＫ０〜ＢＬＫ３のいずれかを選択し、更に選択したブロックＢＬＫにおけるロウ方向を選択する。
【００２２】
ドライバ回路１３０は、選択されたブロックＢＬＫに対して、ロウデコーダ１２０を介して電圧を供給する。
【００２３】
カラム制御回路１４０は、データの読み出し時には、メモリセルアレイ１１０から読み出されたデータをセンスし、必要な演算を行う。そして、このデータＤＡＴをコントローラ２００に出力する。データの書き込み時には、コントローラ２００から受信した書き込みデータＤＡＴを、メモリセルアレイ１１０に転送する。
【００２４】
レジスタ群１５０は、例えば５つのレジスタ１５１〜１５５を含む。アドレスレジスタ１５１は、コントローラ２００から受信したアドレスＡＤＤを保持する。コマンドレジスタ１５２は、コントローラ２００から受信したコマンドＣＭＤを保持する。ラッチ指定レジスタ１５３は、コントローラ２００から受信したラッチ指定情報ＬＴＣを保持する。ラッチ指定情報ＬＴＣは、メモリセルアレイ１１０から読み出したデータを、カラム制御回路１４０に含まれるいずれのラッチ回路に保持させるかを指定する情報であり、その詳細は後述する。電圧指定レジスタ１５４は、コントローラ２００から受信したシフト情報ＳＦＴを保持する。シフト情報ＳＦＴは、ワード線に印加する読み出し電圧をシフトさせながらメモリセルアレイ１１０からデータを繰り返し読み出す際のシフト量を指定する情報であり、その詳細は後述する。回数指定レジスタ１５５は、コントローラ２００から受信した回数情報Ｎreadを保持する。回数情報Ｎreadは、ワード線に印加する読み出し電圧をシフトさせながらメモリセルアレイ１１０から繰り返しデータを読み出す際の繰り返し回数を指定する情報であり、その詳細は後述する。
【００２５】
シーケンサ１６０は、レジスタ群１５０に保持された種々の情報に基づき、ＮＡＮＤ型フラッシュメモリ１００全体の動作を制御する。
【００２６】
１．１．３．２  ブロックＢＬＫの構成について  
次に、上記ブロックＢＬＫの構成について図２を用いて説明する。図示するように、ブロックＢＬＫは例えば４つのストリングユニットＳＵ（ＳＵ０〜ＳＵ３）を含む。また各々のストリングユニットＳＵは、複数のＮＡＮＤストリング１０を含む。
【００２７】
ＮＡＮＤストリング１０の各々は、例えば８個のメモリセルトランジスタＭＴ（ＭＴ０〜ＭＴ７）及び選択トランジスタＳＴ１、ＳＴ２を含んでいる。メモリセルトランジスタＭＴは、制御ゲートと電荷蓄積層とを備え、データを不揮発に保持する。そしてメモリセルトランジスタＭＴは、選択トランジスタＳＴ１のソースと選択トランジスタＳＴ２のドレインとの間に直列接続されている。
【００２８】
ストリングユニットＳＵ０〜ＳＵ３の各々における選択トランジスタＳＴ１のゲートは、それぞれセレクトゲート線ＳＧＤ０〜ＳＧＤ３に接続される。これに対してストリングユニットＳＵ０〜ＳＵ３の各々における選択トランジスタＳＴ２のゲートは、例えばセレクトゲート線ＳＧＳに共通接続される。もちろん、ストリングユニット毎に異なるセレクトゲート線ＳＧＳ０〜ＳＧＳ３に接続されても良い。また、同一のブロックＢＬＫ内にあるメモリセルトランジスタＭＴ０〜ＭＴ７の制御ゲートは、それぞれワード線ＷＬ０〜ＷＬ７に共通接続される。
【００２９】
また、メモリセルアレイ１１０内において同一列にあるＮＡＮＤストリング１０の選択トランジスタＳＴ１のドレインは、ビット線ＢＬ（ＢＬ０〜ＢＬ（Ｌ−１）、但し（Ｌ−１）は２以上の自然数）に共通接続される。すなわちビット線ＢＬは、複数のブロックＢＬＫ間でＮＡＮＤストリング１０を共通に接続する。更に、複数の選択トランジスタＳＴ２のソースは、ソース線ＳＬに共通に接続されている。
【００３０】
つまりストリングユニットＳＵは、異なるビット線ＢＬに接続され、且つ同一のセレクトゲート線ＳＧＤに接続されたＮＡＮＤストリング１０を複数含む。またブロックＢＬＫは、ワード線ＷＬを共通にする複数のストリングユニットＳＵを複数含む。そしてメモリセルアレイ１１０は、ビット線ＢＬを共通にする複数のブロックＢＬＫを複数含む。
【００３１】
図３は、ブロックＢＬＫの一部領域の断面図である。図示するように、ｐ型ウェル領域２０上に、複数のＮＡＮＤストリング１０が形成されている。すなわち、ウェル領域２０上には、セレクトゲート線ＳＧＳとして機能する例えば４層の配線層２７、ワード線ＷＬ０〜ＷＬ７として機能する８層の配線層２３、及びセレクトゲート線ＳＧＤとして機能する例えば４層の配線層２５が、順次積層されている。積層された配線層間には、図示せぬ絶縁膜が形成されている。
【００３２】
そして、これらの配線層２５、２３、２７を貫通してウェル領域２０に達するピラー状の導電体３１が形成されている。導電体３１の側面には、ゲート絶縁膜３０、電荷蓄積層（絶縁膜）２９、及びブロック絶縁膜２８が順次形成され、これらによってメモリセルトランジスタＭＴ、並びに選択トランジスタＳＴ１及びＳＴ２が形成されている。導電体３１は、ＮＡＮＤストリング１０の電流経路として機能し、各トランジスタのチャネルが形成される領域となる。そして導電体３１の上端は、ビット線ＢＬとして機能する金属配線層３２に接続される。
【００３３】
ウェル領域２０の表面領域内には、ｎ＋型不純物拡散層３３が形成されている。拡散層３３上にはコンタクトプラグ３５が形成され、コンタクトプラグ３５は、ソース線ＳＬとして機能する金属配線層３６に接続される。更に、ウェル領域２０の表面領域内には、ｐ＋型不純物拡散層３４が形成されている。拡散層３４上にはコンタクトプラグ３７が形成され、コンタクトプラグ３７は、ウェル配線ＣＰＷＥＬＬとして機能する金属配線層３８に接続される。ウェル配線ＣＰＷＥＬＬは、ウェル領域２０を介して導電体３１に電位を印加するための配線である。
【００３４】
以上の構成が、図３を記載した紙面の奥行き方向に複数配列されており、奥行き方向に並ぶ複数のＮＡＮＤストリング１０の集合によってストリングユニットＳＵが形成される。
【００３５】
本例では、１つのメモリセルトランジスタＭＴが例えば４ビットデータを保持可能である。この４ビットデータを、下位ビットからそれぞれlowerビット、upperビット、higherビット、及びtopビットと呼ぶことにする。そして、同一のストリングユニットＳＵにおいて同一のワード線ＷＬに接続されたメモリセルの保持するlowerビットの集合をlowerページと呼び、upperビットの集合をupperページ、higherビットの集合をhigherページ、及びtopビットの集合をtopページと呼ぶ。つまり、１本のワード線ＷＬには４ページが割り当てられ、８本のワード線ＷＬを含むストリングユニットＳＵは３２ページ分の容量を有し、１ブロックＢＬＫは４つのストリングユニットＳＵを有するので、１２８ページ分の容量を有することになる。あるいは言い換えるならば、「ページ」とは、同一ワード線に接続されたメモリセルによって形成されるメモリ空間の一部、と定義することも出来る。データの書き込み及び読み出しは、このページ毎に行われる。
【００３６】
なおデータの消去は、ブロックＢＬＫ単位、またはブロックＢＬＫよりも小さい単位で行うことが出来る。消去方法に関しては、例えば“NONVOLATILE SEMICONDUCTOR MEMORY DEVICE”という2011年9月18日に出願された米国特許出願13/235,389号に記載されている。また、“NON-VOLATILE SEMICONDUCTOR STORAGE DEVICE”という2010年1月27日に出願された米国特許出願12/694,690号に記載されている。更に、“NONVOLATILE SEMICONDUCTOR MEMORY DEVICE AND DATA ERASE METHOD THEREOF”という2012年5月30日に出願された米国特許出願13/483,610号に記載されている。これらの特許出願は、その全体が本願明細書において参照により援用されている。
【００３７】
更に、メモリセルアレイ１１０の構成についてはその他の構成であっても良い。すなわちメモリセルアレイ１１０の構成については、例えば、“THREE DIMENSIONAL STACKED NONVOLATILE SEMICONDUCTOR MEMORY”という2009年3月19日に出願された米国特許出願12/407,403号に記載されている。また、“THREE DIMENSIONAL STACKED NONVOLATILE SEMICONDUCTOR MEMORY”という2009年3月18日に出願された米国特許出願12/406,524号、“NON-VOLATILE SEMICONDUCTOR STORAGE DEVICE AND METHOD OF MANUFACTURING THE SAME”という2010年3月25日に出願された米国特許出願12/679,991号、及び“SEMICONDUCTOR MEMORY AND METHOD FOR MANUFACTURING SAME”という2009年3月23日に出願された米国特許出願12/532,030号に記載されている。これらの特許出願は、その全体が本願明細書において参照により援用されている。
【００３８】
１．１．３．３  カラム制御回路１４０の構成について  
次に、カラム制御回路１４０の構成について図４を用いて説明する。図４は、本実施形態に係るカラム制御回路１４０とストリングユニットＳＵ０の回路図である。
【００３９】
図示するようにカラム制御回路１４０は、ビット線ＢＬ毎に設けられたセンスユニットＳＡＵ（ＳＡＵ０〜ＳＡＵ（Ｌ−１））を備えている。
【００４０】
センスユニットＳＡＵの各々は、センスアンプＳＡ、演算部ＯＰ、並びにラッチ回路ＡＤＬ、ＢＤＬ、ＣＤＬ、ＤＤＬ、及びＸＤＬを備えている。
【００４１】
センスアンプＳＡは、対応するビット線ＢＬに読み出されたデータをセンスし、また書き込みデータに応じてビット線ＢＬに電圧を印加する。すなわちセンスアンプＳＡは、ビット線ＢＬを直接的に制御するモジュールである。そしてセンスアンプＳＡには、読み出し時には例えばシーケンサ１７０によってストローブ信号ＳＴＢが与えられる。センスアンプＳＡは、信号ＳＴＢがアサートされるタイミングで読み出しデータを確定させる（本例では、メモリセルがオンした場合にはデータ“０”、オフした場合にはデータ“１”と定義する）。そして、内部に有するラッチ回路（図４には図示せず）にこのデータを保持し、更にラッチ回路ＡＤＬ、ＢＤＬ、ＣＤＬ、ＤＤＬ、及びＸＤＬのいずれかに転送する。
【００４２】
ラッチ回路ＡＤＬ、ＢＤＬ、ＣＤＬ、ＤＤＬ、及びＸＤＬは、読み出しデータ及び書き込みデータを一時的に保持する。演算部ＯＰは、センスアンプＳＡ、並びにラッチ回路ＡＤＬ、ＢＤＬ、ＣＤＬ、ＤＤＬ、及びＸＤＬに保持されているデータにつき、否定（ＮＯＴ）演算、論理和（ＯＲ）演算、論理積（ＡＮＤ）演算、排他的論理和（ＸＯＲ）演算、否定排他的論理和（ＸＮＯＲ）演算など、種々の論理演算を行う。
【００４３】
これらのセンスアンプＳＡ、ラッチ回路ＡＤＬ、ＢＤＬ、ＣＤＬ、ＤＤＬ、及びＸＤＬ、並びに演算部ＯＰは、互いにデータを送受信可能なようにバスによって接続されている。そしてこのバスは、更にラッチ回路ＸＤＬに接続されている。
【００４４】
カラム制御回路１４０におけるデータの入出力は、ラッチ回路ＸＤＬを介して行われる。すなわち、コントローラ２００から受信したデータは、ラッチ回路ＸＤＬを介して、ラッチ回路ＡＤＬ、ＢＤＬ、ＣＤＬ、及びＤＤＬ、またはセンスアンプＳＡに転送される。またラッチ回路ＡＤＬ、ＢＤＬ、ＣＤＬ、及びＤＤＬ、またはセンスアンプＳＡのデータは、ラッチ回路ＸＤＬを介してコントローラ２００へ送信される。そしてラッチ回路ＸＤＬは、ＮＡＮＤ型フラッシュメモリ１００のキャッシュメモリとして機能する。従って、ラッチ回路ＡＤＬ、ＢＤＬ、ＣＤＬ、及びＤＤＬが使用中であったとしても、ラッチ回路ＸＤＬが空いていれば、ＮＡＮＤ型フラッシュメモリ１００はレディ状態となることが出来る。
【００４５】
１．１．３．４  メモリセルトランジスタの保持データと閾値電圧について
次に、メモリセルトランジスタＭＴの保持データ、閾値電圧、及び各データの読み出しレベルにつき、図５を用いて説明する。図５は、各メモリセルトランジスタＭＴの取り得るデータ、閾値分布、及び読み出し時に用いる電圧について示したダイアグラムである。
【００４６】
前述のように、メモリセルトランジスタＭＴは閾値電圧に応じて４ビットのデータを保持出来る。この４ビットで表現されるデータを、閾値電圧の低いものから順に“Ｅｒ”データ、“Ａ”データ、“Ｂ”データ、“Ｃ”データ、…“Ｏ”データと呼ぶことにする。
【００４７】
“Ａ”データを保持するメモリセルトランジスタＭＴの閾値電圧は、電圧ＶＡ未満であり、データの消去状態に相当する。“Ｂ”データを保持するメモリセルトランジスタＭＴの閾値電圧は、電圧ＶＡ以上であり且つＶＢ（＞ＶＡ）未満である。“Ｂ”データを保持するメモリセルトランジスタＭＴの閾値電圧は、電圧ＶＢ以上であり且つＶＣ（＞ＶＢ）未満である。“Ｃ”データを保持するメモリセルトランジスタＭＴの閾値電圧は、電圧ＶＣ以上であり且つＶＤ（＞ＶＣ）未満である。“Ｄ”データを保持するメモリセルトランジスタＭＴの閾値電圧は、電圧ＶＤ以上であり且つＶＥ（＞ＶＤ）未満である。“Ｅ”データを保持するメモリセルトランジスタＭＴの閾値電圧は、電圧ＶＥ以上であり且つＶＦ（＞ＶＥ）未満である。“Ｆ”データを保持するメモリセルトランジスタＭＴの閾値電圧は、電圧ＶＦ以上であり且つＶＧ（＞ＶＦ）未満である。“Ｇ”データを保持するメモリセルトランジスタＭＴの閾値電圧は、電圧ＶＧ以上であり且つＶＨ（＞ＶＧ）未満である。“Ｈ”データを保持するメモリセルトランジスタＭＴの閾値電圧は、電圧ＶＨ以上であり且つＶＩ（＞ＶＨ）未満である。“Ｉ”データを保持するメモリセルトランジスタＭＴの閾値電圧は、電圧ＶＩ以上であり且つＶＪ（＞ＶＩ）未満である。“Ｊ”データを保持するメモリセルトランジスタＭＴの閾値電圧は、電圧ＶＪ以上であり且つＶＫ（＞ＶＪ）未満である。“Ｋ”データを保持するメモリセルトランジスタＭＴの閾値電圧は、電圧ＶＫ以上であり且つＶＬ（＞ＶＫ）未満である。“Ｌ”データを保持するメモリセルトランジスタＭＴの閾値電圧は、電圧ＶＬ以上であり且つＶＭ（＞ＶＬ）未満である。“Ｍ”データを保持するメモリセルトランジスタＭＴの閾値電圧は、電圧ＶＭ以上であり且つＶＮ（＞ＶＭ）未満である。“Ｎ”データを保持するメモリセルトランジスタＭＴの閾値電圧は、電圧ＶＮ以上であり且つＶＯ（＞ＶＮ）未満である。“Ｏ”データを保持するメモリセルトランジスタＭＴの閾値電圧は、電圧ＶＯ以上であり且つＶＲＥＡＤ未満である。そして、４ビットデータのうちで“Ｏ”データが、閾値電圧の最も高いデータに相当する。
【００４８】
上記閾値分布は、前述のLowerビット、Upperビット、Higherビット、及びTopビットからなる４ビット（４ページ）データを書き込むことで実現される。すなわち、上記１０進数で表記した各データと、Lowerビット、Upperビット、Higherビット、及びTopビットとの関係は、次の通りである。
“Ｅｒ”データ：“１１１１”（“Top/Higher/Upper/Lower”の順で表記）
“Ａ”データ：“１１１０”
“Ｂ”データ：“１０１０”
“Ｃ”データ：“１０００”
“Ｄ”データ：“１００１”
“Ｅ”データ：“０００１”
“Ｆ”データ：“００００”
“Ｇ”データ：“００１０”
“Ｈ”データ：“０１１０”
“Ｉ”データ：“０１００”
“Ｊ”データ：“１１００”
“Ｋ”データ：“１１０１”
“Ｌ”データ：“０１０１”
“Ｍ”データ：“０１１１”
“Ｎ”データ：“００１１”
“Ｏ”データ：“１０１１”
このように、隣接する閾値レベルに相当するデータ間では、４ビットのうちの１ビットのみが変化する。
【００４９】
従って、Lowerビットを読み出す際には、Lowerビットの値（“０” or “１”）が変化する境界に相当する電圧を用いれば良く、このことはUpperビット、Higherビット、及びTopビットでも同様である。
【００５０】
すなわち、図５に示すように、Lowerページ読み出しは、“Ｅｒ”データと“Ａ”データとを区別する電圧ＶＡ、“Ｃ”データと“Ｄ”データとを区別する電圧ＶＤ、“Ｅ”データと“Ｆ”データとを区別する電圧ＶＦ、及び“Ｊ”データと“Ｋ”データとを区別する電圧ＶＫを読み出しレベルとして用いれば良い。電圧ＶＡ、ＶＤ、ＶＦ、及びＶＫを用いた読み出し動作を、それぞれ読み出し動作ＡＲ、ＤＲ、ＦＲ、及びＫＲと呼ぶ。
【００５１】
読み出し動作ＡＲは、メモリセルトランジスタＭＴの閾値電圧が電圧ＶＡ未満か否か（つまり保持データが“Ｅｒ”か否か）を判定する処理である。読み出し動作ＤＲは、メモリセルトランジスタＭＴの閾値電圧が電圧ＶＤ未満か否かを判定する処理である。読み出し動作ＦＲは、メモリセルトランジスタＭＴの閾値電圧が電圧ＶＦ未満か否かを判定する処理である。そして読み出し動作ＫＲは、メモリセルトランジスタＭＴの閾値電圧が電圧ＶＫ未満か否かを判定する処理である。
【００５２】
Upperページ読み出しは、“Ｂ”データと“Ｃ”データとを区別する電圧ＶＣ、“Ｆ”データと“Ｇ”データとを区別する電圧ＶＧ、“Ｈ”データと“Ｉ”データとを区別する電圧ＶＩ、及び“Ｌ”データと“Ｍ”データとの間の電圧ＶＭを読み出しレベルとして用いれば良い。電圧ＶＣ、ＶＧ、ＶＩ、及びＶＭを用いた読み出し動作を、それぞれ読み出し動作ＣＲ、ＧＲ、ＩＲ、及びＭＲと呼ぶ。
【００５３】
読み出し動作ＣＲは、メモリセルトランジスタＭＴの閾値電圧が電圧ＶＣ未満か否かを判定する処理である。読み出し動作ＧＲは、メモリセルトランジスタＭＴの閾値電圧が電圧ＶＧ未満か否かを判定する処理である。読み出し動作ＩＲは、メモリセルトランジスタＭＴの閾値電圧が電圧ＶＩ未満か否かを判定する処理である。そして読み出し動作ＭＲは、メモリセルトランジスタＭＴの閾値電圧が電圧ＶＭ未満か否かを判定する処理である。
【００５４】
またHigherページ読み出しは、“Ａ”データと“Ｂ”データとを区別する電圧ＶＢ、“Ｇ”データと“Ｈ”データとを区別する電圧ＶＨ、及び“Ｍ”データと“Ｎ”データとを区別する電圧ＶＮを読み出しレベルとして用いれば良い。電圧ＶＢ、ＶＨ、及びＶＮを用いた読み出し動作を、それぞれ読み出し動作ＢＲ、ＨＲ、及びＮＲと呼ぶ。
【００５５】
読み出し動作ＢＲは、メモリセルトランジスタＭＴの閾値電圧が電圧ＶＢ未満か否かを判定する処理である。読み出し動作ＨＲは、メモリセルトランジスタＭＴの閾値電圧が電圧ＶＨ未満か否かを判定する処理である。読み出し動作ＮＲは、メモリセルトランジスタＭＴの閾値電圧が電圧ＶＮ未満か否かを判定する処理である。
【００５６】
そしてTopページ読み出しは、“Ｄ”データと“Ｅ”データとを区別する電圧ＶＥ、“Ｉ”データと“Ｊ”データとを区別する電圧ＶＪ、“Ｋ”データと“Ｌ”データとを区別する電圧ＶＬ、及び“Ｎ”データと“Ｏ”データとを区別する電圧ＶＯを読み出しレベルとして用いれば良い。電圧ＶＥ、ＶＪ、ＶＬ、及びＶＯを用いた読み出し動作を、それぞれ読み出し動作ＥＲ、ＪＲ、ＬＲ、及びＯＲと呼ぶ。
【００５７】
読み出し動作ＥＲは、メモリセルトランジスタＭＴの閾値電圧が電圧ＶＥ未満か否かを判定する処理である。読み出し動作ＪＲは、メモリセルトランジスタＭＴの閾値電圧が電圧ＶＪ未満か否かを判定する処理である。読み出し動作ＬＲは、メモリセルトランジスタＭＴの閾値電圧が電圧ＶＬ未満か否かを判定する処理である。そして読み出し動作ＯＲは、メモリセルトランジスタＭＴの閾値電圧が電圧ＶＯ未満か否か（つまり保持データが“Ｏ”か否か）を判定する処理である。
【００５８】
１．２  読み出し動作について  
次に、本実施形態に係るデータの読み出し動作について説明する。図６は読み出し動作のフローチャートである。なお図６において、ＮＡＮＤ型フラッシュメモリ１００の動作は例えばシーケンサ１６０の制御によって実行され、コントローラ２００の動作は例えばプロセッサ２３０の制御によって実行される。
【００５９】
図示するように、本実施形態に係る読み出し動作は、大まかには３つのステップを含む。すなわち、  
・第１ステップ：ノーマルリード  
・第２ステップ：Ｖthトラッキングによる最適読み出し電圧探索とシフトリード  
・第３ステップ：ソフトビットリードと軟判定  
以下では、lowerページ読み出し時に着目し、特にソフトビットリードにつき詳細に説明する。
【００６０】
１．２．１  第１ステップ  
第１ステップについて説明する。まず、コントローラ２００のプロセッサ２３０は、ホスト機器３００からのデータ要求に応答してノーマルリードコマンドを発行し、これをＮＡＮＤ型フラッシュメモリ１００に送信する（ステップＳ１０１、Ｓ１２１）。
【００６１】
ノーマルリードコマンドは、ＮＡＮＤ型フラッシュメモリ１００の例えばコマンドレジスタ１５２に格納される。これに応答してシーケンサ１６０は、ノーマルリードを実行する（ステップＳ１５１）。すなわちシーケンサ１７０は、図５で説明した読み出し動作ＡＲ、ＤＲ、ＦＲ、及びＫＲを実行する。各読み出し動作ＡＲ、ＤＲ、ＦＲ、及びＫＲでは、選択ワード線ＷＬｉ（ｉは０以上の整数）にデフォルトの読み出し電圧ＶＡ、ＶＤ、ＶＦ、及びＶＦが印加され、非選択ワード線ＷＬに電圧ＶＲＥＡＤが印加される。電圧ＶＲＥＡＤは、保持データに関わらずメモリセルトランジスタＭＴをオンさせる電圧である。そして、信号ＳＴＢがアサートされることで、各読み出し動作ＡＲ、ＤＲ、ＦＲ、及びＫＲにおいて、ビット線ＢＬに読み出されたデータがセンスアンプＳＡに取り込まれる。
【００６２】
ステップＳ１５１で読み出されたデータは、ＮＡＮＤインターフェースを介してコントローラ２００の例えばバッファメモリ２４０に保持される。そしてＥＣＣ回路２６０が、読み出されたデータにおけるエラーの有無をチェックし、エラーがあった場合には訂正（ハードビットデコード）を試みる（ステップＳ１２２）。エラー訂正可能な場合には（ステップＳ１２３、ＹＥＳ）、コントローラ２００は、訂正されたデータをホスト機器３００へ出力する（ステップＳ１３２）。これにより、ステップＳ１０１で要求されたデータがホスト機器３００に入力される（ステップＳ１０２）。
【００６３】
他方で、エラー数が多く訂正出来ない場合には（ステップＳ１２３、ＮＯ）、読み出し動作は第２ステップに進む。
【００６４】
１．２．２  第２ステップ  
第２ステップでは、各読み出し動作ＡＲ、ＤＲ、ＦＲ、及びＫＲにおける読み出し電圧の最適値が推定され、推定された電圧を用いて再度の読み出しが行われる。最適値の推定には種々の方法が適用可能であるが、本例ではトラッキングリードを用いて閾値分布の交点を最適値とみなす場合を例に説明する。
【００６５】
すなわち、図５に示した閾値分布は互いに分離されており、電圧ＶＡ〜ＶＯによって区別することが可能である。これは理想的な閾値分布である。しかし、データを書き込んだ後に時間が経過すると、種々の要因によって閾値分布の幅が拡がり、場合によっては隣接する閾値分布が重なってしまうことがある。この様子を図７に示す。図７では“Ｅｒ”〜“Ｃ”レベルのみを図示しているが、“Ｄ”レベル以上であっても同様である。特に“Ｅｒ”レベルのように低い閾値分布は、その上裾が高電圧側へシフトしやすく、“Ｏ”レベルのような高い閾値分布は、その下裾が低電圧側へシフトしやすい。
【００６６】
上記のように、閾値分布の分布幅が拡大し、隣接する閾値分布同士が重なると、lowerページに関するデフォルトの読み出し電圧ＶＡ、ＶＤ、ＶＦ、及びＶＫは必ずしも最適な読み出し電圧ではない場合があり得る。この場合、読み出し電圧ＶＡ、ＶＤ、ＶＦ、及びＶＫを用いてデータを読み出した場合には、エラーが多すぎてハードビットデコードではエラーを訂正しきれない場合があり得る。
【００６７】
そこで第２ステップでは、“Ｅｒ”レベルと“Ａ”レベル、“Ｃ”レベルと”Ｄ”レベル、“Ｅ”レベルと“Ｆ”レベル、及び“Ｊ”レベルと“Ｋ”レベルの閾値分布の交点を探索し、これを新たな最適読み出し電圧ＶＡ’、ＶＤ’、ＶＦ’、及びＶＫ’とする。なお、本ステップにおける「最適値」及び「最適読み出し電圧」とは、「データを訂正（ハードビットデコード）可能な読み出し電圧」の意味であり、必ずしもエラー数が最小となる文字通りの最適値を意味するものではない。
【００６８】
具体的には、コントローラ２００のプロセッサ２３０はトラッキングリードコマンドを発行し（ステップＳ１２４）、これをＮＡＮＤ型フラッシュメモリ１００に送信する。トラッキングリードコマンドは、ＮＡＮＤ型フラッシュメモリ１００の例えばコマンドレジスタ１５２に格納される。これに応答してシーケンサ１６０は、Ｖthトラッキングリードを実行する（ステップＳ１５２）。
【００６９】
Ｖthトラッキングリードは、例えば読み出し電圧ＶＡの周囲のある範囲内で読み出し電圧の値を変化させながらデータを読み出すことで、オンセル数をカウントするものである。各読み出し電圧におけるオンセル数は、コントローラ２００の例えばＲＡＭ２２０に保持される。そしてプロセッサ２３０は、読み出し動作ＡＲについての最適読み出し電圧を推定する（ステップＳ１２５）。例えば読み出し電圧としてＶＡ１〜ＶＡｎ（ｎは２以上の自然数）が使用されたとすると、ＶＡｊ（ｊは２以上の自然数）におけるオンセル数と、ＶＡ（ｊ−１）におけるオンセル数との差分を算出し、差分が最小となる電圧が、“Ｅｒ”レベルと“Ａ”レベルの閾値分布の交点、すなわち読み出し動作ＡＲの最適読み出し電圧ＶＡ’とみなす。他の読み出し動作ＤＲ、ＦＲ、及びＫＲの最適読み出し電圧ＶＤ’、ＶＦ’、及びＶＫ’については、読み出し動作ＡＲと同様にＶthトラッキングリードによって交点を求めても良いし、またはＶthトラッキングリードを行わずに、既に得られた最適読み出し電圧ＶＡ’から推定しても良い。
【００７０】
そしてコントローラ２００のＣＰＵ２３０はシフトリードコマンドを発行し（ステップＳ１２６）、電圧シフト量と共にこれをＮＡＮＤ型フラッシュメモリ１００に送信する。電圧シフト量は、デフォルトの読み出し電圧ＶＡ、ＶＤ、ＶＦ、及びＶＫと、ステップＳ１２５で推定された最適読み出し電圧ＶＡ’、ＶＤ’、ＶＦ’、及びＶＫ’との差分を示す。もちろん、差分ではなく、最適読み出し電圧ＶＡ’、ＶＤ’、ＶＦ’、及びＶＫ’の値そのものがＮＡＮＤ型フラッシュメモリ１００に送信されても良い。シフトリードコマンドは、ＮＡＮＤ型フラッシュメモリ１００の例えばコマンドレジスタ１５２に格納される。また電圧シフト量が電圧指定レジスタ１５４に格納される。これに応答してシーケンサ１６０は、ステップＳ１２５で得られた電圧ＶＡ’、ＶＤ’、ＶＦ’、及びＶＫ’を用いてシフトリードを実行する（ステップ１５３）。シフトリードは、読み出し電圧をシフトさせる以外はノーマルリードと同様である。
【００７１】
ステップＳ１５３で読み出されたデータは、ＮＡＮＤインターフェースを介してコントローラ２００の例えばバッファメモリ２４０に保持される。そしてＥＣＣ回路２６０が、読み出されたデータにおけるエラーの有無をチェックし、エラーがあった場合には訂正（ハードビットデコード）を試みる（ステップＳ１２７）。エラー訂正可能な場合には（ステップＳ１２８、ＹＥＳ）、コントローラ２００は、訂正されたデータをホスト機器３００へ出力する（ステップＳ１３２）。他方で、訂正出来ない場合には（ステップＳ１２８、ＮＯ）、読み出し動作は第３ステップに進む。
【００７２】
１．２．３  第３ステップ  
第３ステップでは、ソフトビットリードによりソフトビットが生成され、このソフトビットに基づいてエラー訂正（ソフトビットデコード）が行われる。第３ステップにつき、以下、詳細に説明する。
【００７３】
１．２．３．１  ソフトビットデータについて  
まず、本実施形態に係るソフトビットデータにつき、図８を用いて説明する。図８は、本実施形態に係るメモリセルの閾値分布と、それに対応したlowerページに関するハードビットデータ及びソフトビットデータとを示している。
【００７４】
図示するように、lowerページのハードビットデータは、前述の通り４回の読み出し動作ＡＲ、ＤＲ、ＦＲ、及びＫＲで確定され、各読み出し動作ＡＲ、ＤＲ、ＦＲ、及びＫＲで使用される読み出し電圧は下記の通りである。  
・読み出し動作ＡＲ：電圧ＶＡ’
・読み出し動作ＤＲ：電圧ＶＤ’
・読み出し動作ＦＲ：電圧ＶＦ’
・読み出し動作ＫＲ：電圧ＶＫ’
他方で、本実施形態に係るソフトビットデータは４ビット（ＳＢ１〜ＳＢ４）であり、上記４つの電圧ＶＡ’、電圧ＶＤ’、電圧ＶＦ’、及び電圧ＶＫ’をシフトさせた電圧を用いて読み出されたデータによって生成される。
【００７５】
ソフトビットＳＢ１は、下記の通り１１回の読み出し動作で確定される。但し、下記における電圧Δは読み出し電圧の単位シフト量である。  
・読み出し動作（ＡＲ−３ΔＲ）：電圧（ＶＡ’−３Δ）  
・読み出し動作（ＡＲ−ΔＲ）：電圧（ＶＡ’−Δ）  
・読み出し動作（ＡＲ＋ΔＲ）：電圧（ＶＡ’＋Δ）  
・読み出し動作（ＡＲ＋３ΔＲ）：電圧（ＶＡ’＋３Δ）  
・読み出し動作（ＤＲ＋ΔＲ）：電圧（ＶＤ’＋Δ）  
・読み出し動作（ＤＲ＋３ΔＲ）：電圧（ＶＤ’＋３Δ）  
・読み出し動作（ＦＲ−ΔＲ）：電圧（ＶＦ’−Δ）  
・読み出し動作（ＦＲ＋３ΔＲ）：電圧（ＶＦ’＋３Δ）  
・読み出し動作（ＫＲ−ΔＲ）：電圧（ＶＫ’−Δ）  
・読み出し動作（ＫＲ＋ΔＲ）：電圧（ＶＫ’＋Δ）  
・読み出し動作（ＫＲ＋３ΔＲ）：電圧（ＶＫ’＋３Δ）  
ソフトビットＳＢ２は、下記の通り６回の読み出し動作で確定される。  
・読み出し動作（ＡＲ−２ΔＲ）：電圧（ＶＡ’−２Δ）  
・読み出し動作（ＡＲ＋２ΔＲ）：電圧（ＶＡ’＋２Δ）  
・読み出し動作（ＤＲ＋２ΔＲ）：電圧（ＶＤ’＋２Δ）  
・読み出し動作（ＦＲ−２ΔＲ）：電圧（ＶＦ’−２Δ）  
・読み出し動作（ＦＲ＋２ΔＲ）：電圧（ＶＦ’＋２Δ）  
・読み出し動作（ＫＲ＋２ΔＲ）：電圧（ＶＫ’＋２Δ）  
ソフトビットＳＢ３は、下記の通り２回の読み出し動作で確定される。  
・読み出し動作（ＤＲ−２ΔＲ）：電圧（ＶＤ’−２Δ）  
・読み出し動作（ＫＲ−２ΔＲ）：電圧（ＶＫ’−２Δ）  
ソフトビットＳＢ４は、下記の通り５回の読み出し動作で確定される。  
・読み出し動作（ＤＲ−３ΔＲ）：電圧（ＶＤ’−３Δ）  
・読み出し動作（ＤＲ−ΔＲ）：電圧（ＶＤ’−Δ）  
・読み出し動作（ＦＲ−３ΔＲ）：電圧（ＶＦ’−３Δ）  
・読み出し動作（ＦＲ＋ΔＲ）：電圧（ＶＦ’＋Δ）  
・読み出し動作（ＫＲ−３ΔＲ）：電圧（ＶＫ’−３Δ）  
以上のように、全２４回の読み出し動作を繰り返すことで、４ビットのソフトビットデータＳＢ１〜ＳＢ４が得られる。第３ステップでは、これらのソフトビットＳＢ１〜ＳＢ４とハードビットデータＨＢ１とを用いて軟判定が行われ、データが復号（ソフトビットデコード）される。
【００７６】
１．２．３．２  第３ステップの大まかな流れについて  
始めに、第３ステップの大まかな流れについて説明する。図６に示すように、第２ステップでハードビットデコードに失敗すると（ステップＳ１２８、ＮＯ）、コントローラ２００のＣＰＵ２３０はソフトビットリードコマンドを発行し（ステップＳ１２９）、これをＮＡＮＤ型フラッシュメモリ１００に送信する。ステップＳ１２９で発行されるソフトビットリードコマンドは、まず始めに種々の読み出し条件をＮＡＮＤ型フラッシュメモリ１００に設定する。
【００７７】
その後、メモリセルからデータを読み出させ、指定のラッチ回路に保持させる。これを、図８で説明したlowerページの場合には、先に説明した２４回、繰り返させる。そして、先に設定された読み出し条件により、カラム制御回路１４０内のラッチ回路には最終的にハードビットＨＢ及びソフトビットＳＢ１〜ＳＢ４が保持される。
【００７８】
そして、コントローラ２００は、カラム制御回路１４０からハードビットＨＢ及びソフトビットＳＢ１〜ＳＢ４を読み出し、例えばバッファメモリ２４０に保持させる。そしてＥＣＣ回路２６０が、読み出されたハードビットＨＢ及びソフトビットＳＢ１〜ＳＢ４を用いた軟判定を行い、エラー訂正（ソフトビットデコード）を試みる（ステップＳ１３０）。エラー訂正可能な場合には（ステップＳ１３１、ＹＥＳ）、コントローラ２００は、訂正されたデータをホスト機器３００へ出力する（ステップＳ１３２、Ｓ１０２）。他方で、訂正出来ない場合には（ステップＳ１３１、ＮＯ）、プロセッサ２３０はホスト機器３００に対し、読み出し動作に失敗したことを通知し（ステップＳ１３３）、ホスト機器３００はエラー処理を行う（ステップＳ１０３）。
【００７９】
１．２．３．２  コマンドシーケンスと動作の詳細について  
次に、上記ステップＳ１２９及びＳ１５４におけるコマンドシーケンスとＮＡＮＤ型フラッシュメモリ１００の動作の詳細について説明する。
【００８０】
図９及び図１０は、ステップＳ１２９においてコントローラ２００からＮＡＮＤ型フラッシュメモリ１００へ送信される、lowerページについてのソフトビットリードのためのコマンドシーケンスの一例である。本例に係るコマンドシーケンスは、大まかには下記の３つのシーケンスを含む。すなわち、  
・第１シーケンス：読み出し条件の設定（図９の９サイクル×４回）  
・第２シーケンス：メモリセルからのデータの読み出しとラッチへの格納・演算（図１０の最初の８サイクル）  
・第３シーケンス：ラッチからのＨＢ及びＳＢ１〜ＳＢ４の読み出し（図１０の７サイクル＋８サイクル×４回）。
【００８１】
＜第１シーケンスについて＞  
まず、第１シーケンスについて図９を用いて説明する。第１シーケンスでは、読み出し動作ＡＲ、ＤＲ、ＦＲ、及びＫＲについての読み出し条件がＮＡＮＤ型フラッシュメモリ１００に設定される。
【００８２】
図示するように、各読み出し動作についての読み出し条件は、９サイクルにわたってコントローラ２００から与えられる信号セットによって設定される。最初に送信される第１の信号セットは読み出し動作ＡＲに関し、次に送信される第２の信号セットは読み出し動作ＤＲに関し、次に送信される第３の信号セットは読み出し動作ＦＲに関し、最後に送信される第４の信号セットは読み出し動作ＫＲに関する。
【００８３】
各信号セットにおける９サイクルの信号のうちの１サイクル目は、コマンド“ＸＸｈ”である。コマンド“ＸＸｈ”は、これから読み出し条件を設定する旨の宣言と共に、カラム制御回路１４０のラッチ回路で行われる演算を指定する。図８で説明したソフトビットの演算方法の場合、各ラッチ回路ＡＤＬ、ＢＤＬ、ＣＤＬ、ＤＤＬ、及びＸＤＬに最初にデータが格納される際、読み出しデータが反転される（メモリセルがオンした場合を“０”データと仮定すると、“１”データがラッチ回路に格納される）。２回目以降は、当該読み出しデータと、対応するラッチ回路にそれまで保持されていたデータとの排他的論理和（ＸＯＲ）演算が行われる。
【００８４】
２サイクル目の信号は、読み出しレベルと読み出し回数とを指定する。図９に示す第１の信号セットでは“Ａ／７”と表記されているが、“Ａ”は読み出し動作ＡＲを意味し、“７”は７回のシフトリードを意味する。第２の信号セットにおける“Ｄ／７”は、読み出し動作ＤＲと７回のシフトリードを指定し、第３の信号セットにおける“Ｆ／７”は、読み出し動作ＦＲと７回のシフトリードを指定し、第４の信号セットにおける“Ｋ／７”は、読み出し動作ＫＲと７回のシフトリードを指定する。
【００８５】
３〜９サイクルの信号は、２サイクル目の信号で指定された回数のシフトリードの各々における読み出しデータを格納するラッチ回路と、シフトリード時に使用される読み出し電圧のシフト量とを指定する。図９に示す第１の信号セットの３サイクル目では“２／ＳＦＴ１”と表記されているが、スラッシュ（“／”）の前者はラッチ回路を指定し、“２”はラッチ回路ＡＤＬを示し、“１”はＸＤＬを指定し、“３”はＢＤＬを指定し、“４”はＣＤＬを指定し、“５”はＤＤＬを指定する。またスラッシュの後者はシフト量を指定し、“ＳＦＴ１”は“−３Δ”を指定し、“ＳＦＴ２”は“−２Δ”を指定し、“ＳＦＴ３”は“−Δ”を指定し、“ＳＦＴ４”は“０”を指定し、“ＳＦＴ５”は“＋１Δ”を指定し、“ＳＦＴ６”は“＋２Δ”を指定し、“ＳＦＴ７”は“＋３Δ”を指定する。
【００８６】
以上の情報は、ＮＡＮＤ型フラッシュメモリ１００のレジスタ群１５０などに保持される。図１１は、第１シーケンスを受信した後のコマンドレジスタ１５２、ラッチ指定レジスタ１５３、電圧指定レジスタ１５４、回数指定レジスタ１５５、及びシーケンサまたはカラム制御回路１４０の様子を示す概念図である。
【００８７】
図示するように、指定された読み出し動作ＡＲ、ＤＲ、ＦＲ、ＫＲは例えばコマンドレジスタ１５２に保持され、各読み出し動作における読み出し回数（７回）は回数指定レジスタ１５５に保持される。また、この７回の読み出し時における電圧のシフト量（±３Δ、±２Δ、±Δ、及びゼロ）は電圧指定レジスタ１５４に保持される。
【００８８】
なお、読み出し動作ＡＲにおける７回のデータ読み出しを、読み出し電圧の低いものから順に読み出し動作ＡＲ１〜ＡＲ７と呼ぶ。また、ＡＲ１〜ＡＲ７をそれぞれ、（ＡＲ−３ΔＲ）、（ＡＲ−２ΔＲ）、（ＡＲ−ΔＲ）、ＡＲ、（ＡＲ＋ΔＲ）、（ＡＲ＋２ΔＲ）、及び（ＡＲ＋３ΔＲ）と呼ぶことがある。これは、読み出し動作ＤＲ、ＦＲ、及びＫＲについても同様である。
【００８９】
更に読み出し動作ＡＲ１〜ＡＲ７、ＤＲ１〜ＤＲ７、ＦＲ１〜ＦＲ７、及びＫＲ１〜ＫＲ７のそれぞれにおいて読み出されたデータの格納先となるラッチ回路が、ラッチ指定レジスタ１５３に保持される。そして、データをラッチ回路に保持させる際に実行される演算の内容が、シーケンサ１６０またはラッチ回路（または演算部ＯＰ）に保持される。この情報は、別途設けられたレジスタに保持されても良い。
【００９０】
＜第２シーケンスについて＞  
次に第２シーケンスについて図１０を用いて説明する。図１０は、図９に続いて送受信される信号を示している。第２シーケンスは、第１シーケンスで設定された条件に基づいて実際にメモリセルからデータを読み出すよう、ＮＡＮＤ型フラッシュメモリ１００に命令する。
【００９１】
図示するように第２シーケンスは、通常の読み出しシーケンス（００ｈ−ＡＤＤ×５−３０ｈ）の前にprefixコマンド“ＹＹｈ”を付加したものである。コマンド“ＹＹｈ”は、第１シーケンスで設定された条件に基づくソフトビットリードの実行と、lowerページについてのソフトビットＳＢ１〜ＳＢ４の生成を命令する。引き続き、コマンド“００ｈ”によってアドレス入力が宣言され、５サイクルにわたってアドレスＡＤＤが入力される。このアドレスＡＤＤによって、読み出し対象となるブロックＢＬＫとページが指定される。そして、コマンド“３０ｈ”が入力されることでシーケンサ１６０はメモリセルからのデータの読み出しを開始し、ＮＡＮＤ型フラッシュメモリ１００はビジー状態となる。
【００９２】
図１２は、ＮＡＮＤ型フラッシュメモリ１００の読み出し動作時において、選択ワード線ＷＬに印加される電圧と、カラム制御回路１４０に与えられるストローブ信号ＳＴＢのタイミングチャートである。
【００９３】
図示するように本例であると、読み出し動作ＡＲ、ＤＲ、ＦＲ、ＫＲが連続して行われ、それぞれにおいてデータが７回ストローブされる。すなわち、時刻ｔ０〜ｔ１の期間に読み出し動作ＡＲが行われ、選択ワード線ＷＬの電圧は、図６のステップＳ１２５で推定された電圧ＶＡ’に対して−３Δに相当する電圧から＋３Δに相当する電圧まで順次ステップアップされて、データが読み出される（ＡＲ１〜ＡＲ７）。
【００９４】
また、時刻ｔ１〜ｔ２の期間に読み出し動作ＤＲが行われ、選択ワード線ＷＬの電圧は、図６のステップＳ１２５で推定された電圧ＶＤ’に対して−３Δに相当する電圧から＋３Δに相当する電圧まで順次ステップアップされて、データが読み出される（ＤＲ１〜ＤＲ７）。
【００９５】
更に、時刻ｔ２〜ｔ３の期間に読み出し動作ＦＲが行われ、選択ワード線ＷＬの電圧は、図６のステップＳ１２５で推定された電圧ＶＦ’に対して−３Δに相当する電圧から＋３Δに相当する電圧まで順次ステップアップされて、データが読み出される（ＦＲ１〜ＦＲ７）。
【００９６】
そして、時刻ｔ３〜ｔ４の期間に読み出し動作ＫＲが行われ、選択ワード線ＷＬの電圧は、図６のステップＳ１２５で推定された電圧ＶＫ’に対して−３Δに相当する電圧から＋３Δに相当する電圧まで順次ステップアップされて、データが読み出される（ＫＲ１〜ＫＲ７）。
【００９７】
上記読み出し動作ＡＲ、ＤＲ、ＦＲ、及びＫＲにつき、カラム制御回路１４０のラッチ回路に着目して、更に詳細に説明する。まずシーケンサ１６０は、例えばコマンドレジスタ１５２内の情報に基づき、読み出し動作ＡＲ、ＤＲ、ＦＲ、及びＫＲを実行すべきことを認識する。また、回数指定レジスタ１５５内の情報と電圧指定レジスタ内の情報とに基づき、各読み出し動作ＡＲ、ＤＲ、ＦＲ、及びＫＲにおいて、ワード線ＷＬに印加する電圧を−３Δから＋３Δまでシフトさせながら７回にわたってデータを読み出すことを認識する。更に、ラッチ指定レジスタ内の情報に基づき、各読み出し動作ＡＲ、ＤＲ、ＦＲ、及びＫＲにおいて７回ずつ読み出されたデータの格納先となるラッチ回路を認識すると共に、その際に必要な演算内容を把握する。
【００９８】
上記の情報に基づき、シーケンサ１６０はまず読み出し動作ＡＲを開始する。図１３は、読み出し動作ＡＲ実行時における選択ワード線ＷＬの電圧と、ラッチ回路ＸＤＬ、ＡＤＬ、ＢＤＬ、ＣＤＬ、及びＤＤＬの様子を示す模式図である。前述の通り本例では、ロウデコーダ１２０は選択ワード線ＷＬに印加する電圧を、電圧ＶＡ’に対して−３Δに相当する電圧から＋３Δに相当する電圧まで順次ステップアップさせる。これらの電圧を、（ＶＡ’−３Δ）、（ＶＡ’−２Δ）、（ＶＡ’−Δ）、ＶＡ’、（ＶＡ’＋Δ）、（ＶＡ’＋２Δ）、及び（ＶＡ’＋３Δ）と表記し、これらの電圧を用いて行われる読み出し動作がＡＲ１〜ＡＲ７である。これは読み出し動作ＤＲ、ＦＲ、及びＫＲについても同様である。
【００９９】
まず読み出し動作ＡＲ１で読み出されたデータは、ラッチ指定レジスタ１５３内の情報に従って、ラッチ回路ＡＤＬに格納される。この際、読み出しデータは反転されてＡＤＬに格納される。これを“~ＳＡ”と表記し、“~”は反転を意味する。本例では、オンセルから読み出されるデータを“０”と定義する。従って、読み出し電圧（ＶＡ’−３Δ）によりオン状態となったメモリセルからは“０”データが読み出され、ＡＤＬにはその反転データである“１”データが格納される。他方で、オフ状態のメモリセルからは“１”データが読み出され、ＡＤＬには“０”データが格納される。この時点で、ラッチ回路ＸＤＬ、ＢＤＬ、ＣＤＬ、ＤＤＬは空（リセット状態）である。
【０１００】
引き続き、選択ワード線ＷＬに電圧（ＶＡ’−２Δ）が印加されて、読み出し動作ＡＲ２が行われる。ＡＲ２で読み出されたデータは、反転されてラッチ回路ＢＤＬに格納される。ラッチ回路ＡＤＬには、ＡＲ１で読み出されたデータの反転データが保持されたままである。
【０１０１】
次に、選択ワード線ＷＬに電圧（ＶＡ’−Δ）が印加されて、読み出し動作ＡＲ３が行われる。ＡＲ３で読み出されたデータは、それまでラッチ回路ＡＤＬに格納されていたデータとＸＯＲ演算され、その演算結果がラッチ回路ＡＤＬに上書きされる。このＸＯＲ演算は、例えば演算部ＯＰが行っても良い。
【０１０２】
次に、選択ワード線ＷＬに電圧ＶＡ’が印加されて、読み出し動作ＡＲ４が行われる。ＡＲ４で読み出されたデータは、反転されてラッチ回路ＸＤＬに格納される。すなわちＡＲ４はハードビットリードに相当する。
【０１０３】
次に、選択ワード線ＷＬに電圧（ＶＡ’＋Δ）が印加されて、読み出し動作ＡＲ５が行われる。ＡＲ５で読み出されたデータは、それまでラッチ回路ＡＤＬに格納されていたデータとＸＯＲ演算され、その演算結果がラッチ回路ＡＤＬに上書きされる。
【０１０４】
次に、選択ワード線ＷＬに電圧（ＶＡ’＋２Δ）が印加されて、読み出し動作ＡＲ６が行われる。ＡＲ６で読み出されたデータは、それまでラッチ回路ＢＤＬに格納されていたデータとＸＯＲ演算され、その演算結果がラッチ回路ＢＤＬに上書きされる。
【０１０５】
最後に、選択ワード線ＷＬに電圧（ＶＡ’＋３Δ）が印加されて、読み出し動作ＡＲ７が行われる。ＡＲ７で読み出されたデータは、それまでラッチ回路ＡＤＬに格納されていたデータとＸＯＲ演算され、その演算結果がラッチ回路ＡＤＬに上書きされる。
【０１０６】
以上で読み出し動作ＡＲが完了する。その結果、カラム制御回路１４０のラッチ回路には下記のデータが格納される。  
・ＸＤＬ＝~ＡＲ４  
・ＡＤＬ＝~ＡＲ１ xor ＡＲ３ xor ＡＲ５ xor ＡＲ７  
・ＢＤＬ＝~ＡＲ２ xor ＡＲ６  
・ＣＤＬ＝空  
・ＤＤＬ＝空。
【０１０７】
次にシーケンサ１６０は、読み出し動作ＤＲを開始する。図１４は、読み出し動作ＤＲ実行時における選択ワード線ＷＬの電圧と、ラッチ回路ＸＤＬ、ＡＤＬ、ＢＤＬ、ＣＤＬ、及びＤＤＬの様子を示す模式図である。
【０１０８】
まず、選択ワード線ＷＬに電圧（ＶＤ’−３Δ）が印加されて、読み出し動作ＤＲ１が行われる。ＤＲ１で読み出されたデータは、反転されてラッチ回路ＤＤＬに格納される。引き続き、選択ワード線ＷＬに電圧（ＶＤ’−２Δ）が印加されて、読み出し動作ＤＲ２が行われる。ＤＲ２で読み出されたデータは、反転されてラッチ回路ＣＤＬに格納される。次に、選択ワード線ＷＬに電圧（ＶＤ’−Δ）が印加されて、読み出し動作ＤＲ３が行われる。ＤＲ３で読み出されたデータは、それまでラッチ回路ＤＤＬに格納されていたデータとＸＯＲ演算され、その演算結果がラッチ回路ＤＤＬに上書きされる。次に、選択ワード線ＷＬに電圧ＶＤ’が印加されて、読み出し動作ＤＲ４が行われる。ＤＲ４はハードビットリードに相当する。ＤＲ４で読み出されたデータは、それまでラッチ回路ＸＤＬに格納されていたデータとＸＯＲ演算され、その演算結果がラッチ回路ＸＤＬに上書きされる。次に、選択ワード線ＷＬに電圧（ＶＤ’＋Δ）が印加されて、読み出し動作ＤＲ５が行われる。ＤＲ５で読み出されたデータは、それまでラッチ回路ＡＤＬに格納されていたデータとＸＯＲ演算され、その演算結果がラッチ回路ＡＤＬに上書きされる。次に、選択ワード線ＷＬに電圧（ＶＤ’＋２Δ）が印加されて、読み出し動作ＤＲ６が行われる。ＤＲ６で読み出されたデータは、それまでラッチ回路ＢＤＬに格納されていたデータとＸＯＲ演算され、その演算結果がラッチ回路ＢＤＬに上書きされる。最後に、選択ワード線ＷＬに電圧（ＶＤ’＋３Δ）が印加されて、読み出し動作ＤＲ７が行われる。ＤＲ７で読み出されたデータは、それまでラッチ回路ＡＤＬに格納されていたデータとＸＯＲ演算され、その演算結果がラッチ回路ＡＤＬに上書きされる。
【０１０９】
以上で読み出し動作ＤＲが完了する。その結果、カラム制御回路１４０のラッチ回路には下記のデータが格納される。  
・ＸＤＬ＝~ＡＲ４ xor ＤＲ４  
・ＡＤＬ＝~ＡＲ１ xor ＡＲ３ xor ＡＲ５ xor ＡＲ７ xor ＤＲ５ xor ＤＲ７  
・ＢＤＬ＝~ＡＲ２ xor ＡＲ６ xor ＤＲ６  
・ＣＤＬ＝~ＤＲ２  
・ＤＤＬ＝~ＤＲ１ xor ＤＲ３。
【０１１０】
次にシーケンサ１６０は、読み出し動作ＦＲを開始する。図１５は、読み出し動作ＦＲ実行時における選択ワード線ＷＬの電圧と、ラッチ回路ＸＤＬ、ＡＤＬ、ＢＤＬ、ＣＤＬ、及びＤＤＬの様子を示す模式図である。
【０１１１】
読み出し動作ＦＲも上記した読み出し動作ＡＲやＤＲと同様であるので詳細な説明は省略するが、読み出し動作ＡＲ１〜ＡＲ７で読み出されたデータは、それぞれラッチ回路ＤＤＬ、ＢＤＬ、ＡＤＬ、ＸＤＬ、ＤＤＬ、ＢＤＬ、及びＡＤＬ内のデータと順次ＸＯＲ演算され、上書きされる。その結果、カラム制御回路１４０のラッチ回路には下記のデータが格納される。  
・ＸＤＬ＝~ＡＲ４ xor ＤＲ４ xor ＦＲ４  
・ＡＤＬ＝~ＡＲ１ xor ＡＲ３ xor ＡＲ５ xor ＡＲ７ xor ＤＲ５ xor ＤＲ７ xor ＦＲ３ xor ＦＲ７  
・ＢＤＬ＝~ＡＲ２ xor ＡＲ６ xor ＤＲ６ xor ＦＲ２ xor ＦＲ６  
・ＣＤＬ＝~ＤＲ２  
・ＤＤＬ＝~ＤＲ１ xor ＤＲ３ xor ＦＲ１ xor ＦＲ５。
【０１１２】
次にシーケンサ１６０は、読み出し動作ＫＲを開始する。図１６は、読み出し動作ＫＲ実行時における選択ワード線ＷＬの電圧と、ラッチ回路ＸＤＬ、ＡＤＬ、ＢＤＬ、ＣＤＬ、及びＤＤＬの様子を示す模式図である。
【０１１３】
読み出し動作ＫＲについても詳細な説明は省略するが、読み出し動作ＫＲ１〜ＫＲ７で読み出されたデータは、それぞれラッチ回路ＤＤＬ、ＣＤＬ、ＡＤＬ、ＸＤＬ、ＡＤＬ、ＢＤＬ、及びＡＤＬ内のデータと順次ＸＯＲ演算され、上書きされる。その結果、カラム制御回路１４０のラッチ回路には下記のデータが格納される。  
・ＸＤＬ＝~ＡＲ４ xor ＤＲ４ xor ＦＲ４ xor ＫＲ４  
・ＡＤＬ＝~ＡＲ１ xor ＡＲ３ xor ＡＲ５ xor ＡＲ７ xor ＤＲ５ xor ＤＲ７ xor ＦＲ３ xor ＦＲ７ xor ＫＲ３ xor ＫＲ５ xor ＫＲ７  
・ＢＤＬ＝~ＡＲ２ xor ＡＲ６ xor ＤＲ６ xor ＦＲ２ xor ＦＲ６ xor ＫＲ６  
・ＣＤＬ＝~ＤＲ２ xor ＫＲ２  
・ＤＤＬ＝~ＤＲ１ xor ＤＲ３ xor ＦＲ１ xor ＦＲ５ xor ＫＲ１。
【０１１４】
そして、ラッチ回路ＸＤＬに最終的に保持されるデータがハードビットＨＢであり、ラッチ回路ＡＤＬに最終的に保持されるデータがソフトビットＳＢ１であり、ラッチ回路ＢＤＬに最終的に保持されるデータがソフトビットＳＢ２であり、ラッチ回路ＣＤＬに最終的に保持されるデータがソフトビットＳＢ３であり、ラッチ回路ＤＤＬに最終的に保持されるデータがソフトビットＳＢ４である。ハードビットＨＢ及びソフトビットＳＢ１〜ＳＢ４はそれぞれ、図１６に示すように、読み出し動作ＫＲ４、ＫＲ７、ＫＲ６、ＫＲ２、及びＫＲ１が完了した時点で完成する。
【０１１５】
＜第３シーケンスについて＞  
次に第３シーケンスについて説明する。第３シーケンスでは、図１６で得られたハードビットＨＢ及びソフトビットＳＢ１〜ＳＢ４がＮＡＮＤ型フラッシュメモリ１００からコントローラ２００に読み出される。
【０１１６】
図１０に示すように第３シーケンスでは、レジスタリードコマンド（“０５ｈ”−“ＡＤＤ”−“Ｅ０ｈ”）を利用してラッチ回路からデータがコントローラ２００に読み出される。この際、ハードビットＨＢはすでにラッチ回路ＸＤＬに保持されているので、通常のレジスタリードコマンドを発行することで、ハードビットＨＢをコントローラ２００へ転送出来る。
【０１１７】
これに対してソフトビットＳＢ１〜ＳＢ４はラッチ回路ＡＤＬ、ＢＤＬ、ＣＤＬ、及びＤＤＬに保持されている。従ってコントローラ２００は、例えばprefixコマンド“ＺＺｈ”を発行することにより、ラッチ回路ＡＤＬ、ＢＤＬ、ＣＤＬ、及びＤＤＬ内のデータをＸＤＬに転送する。その後、通常のレジスタリードコマンドを発行することで、ＸＤＬ内のソフトビットＳＢ１〜ＳＢ４のいずれかをコントローラ２００へ転送出来る。
【０１１８】
１．３  本実施形態に係る効果  
本実施形態に係る構成によれば、動作性能を向上出来る半導体記憶装置を提供出来る。本効果につき、以下説明する。
【０１１９】
本実施形態であると、例えば図９及び図１０で説明したように、データを読み出す際にコントローラ２００は、実際のデータの読み出し命令（第２シーケンス）を発行する前に、種々の読み出し条件の設定命令（第１シーケンス）を発行している。本例において指定された読み出し条件は下記である。
【０１２０】
・ラッチ回路での演算内容  
・読み出しレベル  
・読み出し繰り返し回数  
・データを保持するラッチ回路  
・読み出し電圧のシフト量  
これらの条件をＮＡＮＤ型フラッシュメモリ１００に設定した後、コントローラ２００はメモリセルからのデータの読み出し命令を発行する。そしてＮＡＮＤ型フラッシュメモリ１００は、設定された条件に従ってデータの読み出しや演算を行う。その結果として本例の場合、第２シーケンスに基づくデータの読み出しの結果として、カラム制御回路１４０の各ラッチ回路にはハードビットＨＢ及びソフトビットＳＢ１〜ＳＢ４が得られる。すなわち本例によれば、読み出し条件を変える度に第２シーケンスの読み出し命令を発行する必要が不要である。従って、コントローラ２００にとってのＮＡＮＤ型フラッシュメモリ１００の使い勝手が向上する。また、メモリセルからの読み出し命令を何度も発行する必要が無いため、動作速度の向上にも寄与する。
【０１２１】
そして動作速度の向上に関しては、本例で説明したようなソフトビットＳＢ算出において顕著である。例えば図８で説明したようにソフトビットＳＢを算出する場合、読み出し電圧の対称性は崩れるが、コントローラ２００は容易にＮＡＮＤ型フラッシュメモリ１００を制御し、ソフトビットＳＢの算出速度を向上出来る。
【０１２２】
読み出し電圧の対称性とは、例えば下記のようなことを意味する。図５で説明したようなコーディングにおいて、lowerページのソフトビットＳＢを求める際に、（−２Δ）がシフト値として用いられる場合を仮定する。すると、ソフトビットリードは、（ＡＲ−２ΔＲ）、（ＡＲ＋２ΔＲ）、（ＤＲ−２ΔＲ）、（ＤＲ＋２ΔＲ）、（ＦＲ−２ΔＲ）、（ＦＲ＋２ΔＲ）、（ＫＲ−２ΔＲ）、及び（ＫＲ＋２ΔＲ）を含む。このように、各読み出しレベルにつき、電圧をプラス方向とマイナス方向に同じ量だけシフトさせることが対称性である。
【０１２３】
本例によれば、図８に示すように、ソフトビットＳＢ１を求める際には、ソフトビットリードは（ＡＲ−３Δ）、（ＡＲ−Δ）、（ＡＲ＋Δ）、（ＡＲ＋３Δ）、（ＤＲ＋Δ）、（ＤＲ＋３Δ）、（ＦＲ−Δ）、（ＦＲ＋３Δ）、（ＫＲ−Δ）、（ＫＲ＋Δ）、及び（ＫＲ＋３Δ）を含む。このように対称性を崩すことによって、ソフトビットＳＢのビット数を削減出来る。本実施形態によれば、このように対称性が崩れる場合であっても、予め、ソフトビットＳＢを算出するのに必要な読み出し動作をコントローラ２００が知っていれば、図９で説明した第１シーケンスでその一部または全てをＮＡＮＤ型フラッシュメモリ１００に設定出来る。これにより、唯一度だけ第２シーケンスを発行するのみで、図１３乃至図１６で説明したようにソフトビットＳＢ１〜ＳＢ４及びハードビットＨＢを算出し、予め指定しておいたラッチ回路に保持させることが出来る。
【０１２４】
なお、本実施形態ではlowerページのソフトビットを求める場合を例に説明した。しかし、upperページ、higherページ、及びtopページに関しても適用可能なのは言うまでもない。このことは、これより述べる実施形態についても同様である。
【０１２５】
２．第２実施形態  
次に、第２実施形態に係る半導体記憶装置について説明する。上記第１実施形態では、ソフトビットＳＢ１〜ＳＢ３及びハードビットＨＢの全てをまとめて算出する場合を例に説明した。しかし本実施形態は、いずれかのソフトビットＳＢのみを算出する場合に関するものである。以下では、第１実施形態と異なる点についてのみ説明する。
【０１２６】
２．１  データの読み出し動作について  
本実施形態に係る読み出し動作の大まかな流れは、第１実施形態で説明した図６と同様である。第１実施形態と異なる点は、図６のステップＳ１２９及びＳ１５４において、いずれかのソフトビットＳＢのみが読み出される点である。
【０１２７】
図１７は、ステップＳ１２９及びＳ１５４においてコントローラ２００とＮＡＮＤ型フラッシュメモリ１００との間で送受信されるコマンドシーケンスであり、第１実施形態で説明した図９及び図１０に対応する。図１７では、ソフトビットＳＢ１を読み出す例を示している。
【０１２８】
図示するように、本例においても、第１実施形態と同様に、コントローラ１００からＮＡＮＤ型フラッシュメモリ１００に対して第１乃至第３シーケンスが送信される。第１実施形態と異なる点は、ソフトビットＳＢ１に関係する条件のみがＮＡＮＤ型フラッシュメモリにセットされ、この際にラッチ回路の指定が無い点、及びこれに従いＮＡＮＤ型フラッシュメモリ１００ではソフトビットＳＢ１に関係するデータのみが読み出される点である。すなわちソフトビットＳＢ１は、読み出し動作ＡＲ、ＤＲ、ＦＲ、及びＫＲにつき、下記の条件で読み出されたデータを用いて算出される。  
・ＡＲ：−３Δ、−Δ、＋Δ、＋３Δ、読み出し回数＝４回  
・ＤＲ：＋Δ、＋３Δ、読み出し回数＝２回  
・ＦＲ：−Δ、＋３Δ、読み出し回数＝２回  
・ＫＲ：−Δ、＋Δ、＋３Δ、読み出し回数＝３回  
なお、ラッチ回路に関する指定が無いため、メモリセルから読み出されたデータはＸＤＬに格納される。
【０１２９】
従って図１７に示すように、上記の条件が第１シーケンスによりＮＡＮＤ型フラッシュメモリ１００に設定される。
【０１３０】
次に、第２シーケンスが発行される。第２シーケンスにおけるprefixコマンド“ＹＹｈ”は、lowerページについてのソフトビットＳＢ１の生成を命令する。第２シーケンスを受信することで、ＮＡＮＤ型フラッシュメモリ１００はビジー状態となり、メモリセルからデータが読み出される。
【０１３１】
図１８は、ＮＡＮＤ型フラッシュメモリ１００の読み出し動作時において、選択ワード線ＷＬに印加される電圧と、カラム制御回路１４０に与えられるストローブ信号ＳＴＢのタイミングチャートである。
【０１３２】
図示するように本例であると、時刻ｔ０〜ｔ１の期間に読み出し動作ＡＲが行われ、選択ワード線ＷＬの電圧は、電圧ＶＡ’に対して−３Δ、−Δ、＋Δ、及び＋３Δに相当する電圧に順次ステップアップされて、データが読み出される（ＡＲ１、ＡＲ３、ＡＲ５、ＡＲ７）。読み出し動作ＡＲ１、ＡＲ３、ＡＲ５、及びＡＲ７実行時にラッチ回路ＸＤＬに保持されるデータは、第１実施形態で説明した図１３におけるラッチ回路ＡＤＬと同様である。
【０１３３】
引き続き、時刻ｔ１〜ｔ２の期間に読み出し動作ＤＲが行われ、選択ワード線ＷＬの電圧は、電圧ＶＤ’に対して＋Δ及び＋３Δに相当する電圧に順次ステップアップされて、データが読み出される（ＤＲ５、ＤＲ７）。読み出し動作ＤＲ５及びＡＲ７実行時にラッチ回路ＸＤＬに保持されるデータは、第１実施形態で説明した図１４におけるラッチ回路ＡＤＬと同様である。
【０１３４】
更に、時刻ｔ２〜ｔ３の期間に読み出し動作ＦＲが行われ、選択ワード線ＷＬの電圧は、電圧ＶＦ’に対して−Δ及び＋３Δに相当する電圧に順次ステップアップされて、データが読み出される（ＦＲ３、ＦＲ７）。読み出し動作ＦＲ３及びＦＲ７実行時にラッチ回路ＸＤＬに保持されるデータは、第１実施形態で説明した図１５におけるラッチ回路ＡＤＬと同様である。
【０１３５】
そして、時刻ｔ３〜ｔ４の期間に読み出し動作ＫＲが行われ、選択ワード線ＷＬの電圧は、電圧ＶＫ’に対して−Δ、＋Δ、及び＋３Δに相当する電圧に順次ステップアップされて、データが読み出される（ＫＲ３、ＫＲ５、ＫＲ７）。読み出し動作ＫＲ３、ＫＲ５、及びＫＲ７実行時にラッチ回路ＸＤＬに保持されるデータは、第１実施形態で説明した図１６におけるラッチ回路ＡＤＬと同様である。
【０１３６】
以上の結果、ラッチ回路ＸＤＬにはソフトビットＳＢ１が保持される。時刻ｔ０〜ｔ４の期間、他のラッチ回路ＡＤＬ、ＢＤＬ、ＣＤＬ、及びＤＤＬは使用されない。
【０１３７】
次に、第３シーケンスが発行される。第３シーケンスでは、図１７に示すように、コントローラ２００は通常のレジスタリードコマンドを発行する。これにより、ラッチ回路ＸＤＬに保持されていたソフトビットＳＢ１がコントローラ２００に転送される。
【０１３８】
２．２  本実施形態に係る効果  
本実施形態によれば、必要なデータのみを選択し、そのデータを得るために必要な条件のみを設定する。これにより、不要なデータの読み出しや演算を省略し、効率的で高速なデータの読み出しが可能となる。
【０１３９】
なお、本実施形態ではソフトビットＳＢ１を読み出す場合を例に説明したが、ハードビットＨＢや、その他のソフトビットＳＢ２〜ＳＢ４の少なくともいずれかを読み出す場合であっても良い。
【０１４０】
３．第３実施形態  
次に、第３実施形態に係る半導体記憶装置について説明する。本実施形態は、上記第１実施形態において、ソフトビットＳＢを生成するための演算方法と、使用するラッチ回路が予めＮＡＮＤ型フラッシュメモリ１００に設定されている場合に関する。以下では、第１実施形態と異なる点についてのみ説明する。
【０１４１】
３．１  データの読み出し動作について  
本実施形態に係る読み出し動作の大まかな流れは、第１実施形態で説明した図６と同様である。第１実施形態と異なる点は、図６のステップＳ１２９における第１シーケンスで設定される条件である。
【０１４２】
図１９は、ステップＳ１２９における第１シーケンスを示すコマンドシーケンスであり、第１実施形態で説明した図９に対応する。図１９では、ソフトビットＳＢ１を読み出す例を示している。先に説明したように本実施形態では、ソフトビットＳＢの算出をＮＡＮＤ型フラッシュメモリ１００が主体的になって行う。従って、ＮＡＮＤ型フラッシュメモリ１００の例えばシーケンサ１６０は、図８で説明したソフトビットＳＢと読み出しデータとの関係（すなわち、各ソフトビットを得るのに必要なソフトビットリード回数と演算方法）を把握しており、またソフトビット算出の際にはＸＤＬをハードビットＨＢ算出用として用い、ＡＤＬ、ＢＤＬ、ＣＤＬ、及びＤＤＬをソフトビットＳＢ１〜ＳＢ４算出用として用いることが予め定められている。従ってコントローラ２００は、読み出しレベルと読み出し電圧のシフト量とをＮＡＮＤ型フラッシュメモリ１００に設定すれば良い。
【０１４３】
図１９の第１信号セットに着目すると、第１サイクル目では第１実施形態で説明した図９と同様にコマンド“ＸＸｈ”が送信される。しかし本実施形態に係るコマンド“ＸＸｈ”は、条件指定の宣言の旨を意味すれば十分であり、演算内容の指定までは不要である。
【０１４４】
また第２サイクル目では第１実施形態と同様に読み出しレベルが指定される。しかし、読み出し回数の指定は不要である。
【０１４５】
そして第３〜第９サイクル目ではシフト量が指定されるが、ラッチ回路の指定は不要である。なお、本実施形態、並びに後述する第４乃至第６実施形態において、シフト量は例えば“ＳＦＴ＿ａ１”のように表記される。本表記におけるsuffixの“ａ”はＡＲ用のシフト量であることを意味し、“１”は複数サイクルにわたって入力されるシフト量の１サイクル目であることを示す。従って、第１及び第２実施形態における表記“ＳＦＴ１〜ＳＦＴ７”電圧シフト量の絶対値を示していたが、第３乃至第６実施形態における表記“ＳＦＴ＿ａ１”は変数に過ぎない。
【０１４６】
以上のようにして読み出し動作ＡＲについてのシフト量ＳＦＴ＿ａ１〜ＳＦＴ＿ａ７が指定されると、引き続き第２乃至第４信号セットにおいて、読み出し動作ＤＲについてのシフト量ＳＦＴ＿ｄ１〜ＳＦＴ＿ｄ７、読み出し動作ＦＲについてのシフト量ＳＦＴ＿ｆ１〜ＳＦＴ＿ｆ７、及び読み出し動作ＫＲについてのシフト量ＳＦＴ＿ｋ１〜ＳＦＴ＿ｋ７が指定される。
【０１４７】
その後の動作は、第１実施形態で説明した第２シーケンス以降と同様であり、図１０のシーケンスが発行され、図１２乃至図１６で説明した動作が実行される。
【０１４８】
３．２  本実施形態に係る効果  
本実施形態によれば、ソフトビットＳＢに関する情報を予めＮＡＮＤ型フラッシュメモリ１００に持たせておくことにより、読み出しの度にコントローラ２００がＮＡＮＤ型フラッシュメモリ１００に設定すべき条件を少なく出来る。そのため、コントローラ２００の負荷を低減出来る。
【０１４９】
なお、図１０に示す第２シーケンスにおいて、コマンド“ＹＹｈ”と“００ｈ”との間に、コマンド“０１ｈ”を発行しても良い。コマンド“０１ｈ”はlowerページを意味する。従って、upperページ、higherページ、及びtopページを読み出す際には、“０１ｈ”の代わりにそれぞれ“０２ｈ”、“０３ｈ”、及び“０４ｈ”が発行される。これは下記の第４実施形態以降についても同様である。
【０１５０】
４．第４実施形態  
次に、第４実施形態に係る半導体記憶装置について説明する。本実施形態は、上記第２実施形態において、ソフトビットＳＢを生成するための演算方法と、使用するラッチ回路が予めＮＡＮＤ型フラッシュメモリ１００に設定されている場合に関する。すなわち、上記説明した第３実施形態を第２実施形態に適用したものに相当する。以下では、第３実施形態と異なる点についてのみ説明する。
【０１５１】
４．１  データの読み出し動作について  
本実施形態に係る読み出し動作の大まかな流れは、第１実施形態で説明した図６と同様である。第１実施形態と異なる点は、図６のステップＳ１２９における第１シーケンスで設定される条件である。
【０１５２】
図２０は、ステップＳ１２９における第１シーケンスを示すコマンドシーケンスであり、第３実施形態で説明した図１９に対応する。図２０は、図１９と同様にソフトビットＳＢ１を読み出す例を示している。
【０１５３】
図２０の第１信号セットに着目すると、第１サイクル目ではコマンド“ＸＸｈ”が送信される。しかし本実施形態に係るコマンド“ＸＸｈ”も、第３実施形態と同様に演算内容の指定は不要である。また第２サイクル目では第１実施形態と同様に読み出しレベルと共に読み出し回数が指定される。そして第３〜第６サイクル目ではシフト量が指定されるが、ラッチ回路の指定は不要である。
【０１５４】
以上の６サイクルの信号により、第１乃至第４信号セットが形成される。すると、第２信号セットでは、読み出し回数は２回であるので、シフト量の指定も２回で済む。従って、残りの２サイクルの信号は、ＮＡＮＤ型フラッシュメモリ１００において無視される。第３信号セット及び第４信号セットについても同様である。
【０１５５】
なお、本実施形態における各信号セットのサイクル数は６であるが、これは一例に過ぎず、場合によっては５サイクルや７サイクルなどであっても良い。但し、１つの信号セットにより、必要な全てのシフト量を指定できるサイクル数であることが好ましい。つまり本例の場合では、読み出し動作ＡＲ、ＤＲ、ＦＲ、及びＫＲのうちで、最も読み出し回数が多いのはＡＲであり、その回数は４回である。従って、シフト量指定のために４サイクルを確保する必要があり、その結果として１つの信号セットは６サイクルとされる。従って、例えば最大となる読み出し回数が５回であれば、１つの信号セットは７サイクルとされるのが好ましい。
【０１５６】
その後の動作は、第２実施形態で説明した第２シーケンス以降と同様であり、図１７で説明した第２及び第３シーケンスが発行される。そして選択ワード線ＷＬには図１８で説明した電圧が印加され、第２実施形態と同様の読み出し動作が実行される。
【０１５７】
４．２  本実施形態に係る効果  
本実施形態によれば、第２実施形態及び第３実施形態で述べた効果が得られる。
【０１５８】
５．第５実施形態  
次に、第５実施形態に係る半導体記憶装置について説明する。本実施形態は、上記第１実施形態と同様に各種条件をコントローラ２００によってＮＡＮＤ型フラッシュメモリ１００に設定する場合であるが、設定の自由度をより高めたものである。以下では、第１実施形態と異なる点についてのみ説明する。
【０１５９】
５．１  条件指定単位セットについて  
本実施形態では、メモリセルからの１回のデータの読み出し毎に、コマンド“ＸＸｈ”を発行して読み出し条件を設定する。このコマンドシーケンスを、以下では条件指定単位セットと呼ぶ。従って、例えば読み出し動作ＡＲ１〜ＡＲ７を実行する際には、７つの条件指定単位セットが発行され、これが第１実施形態で説明した第１信号セットに相当する。
【０１６０】
図２１は、条件指定単位セットのシーケンスを示す。図示するように条件指定単位セットは、例えば４サイクルにわたってコントローラ２００から与えられる信号セットである。１サイクル目はコマンド“ＸＸｈ”であり、第３及び第４実施形態と同様に、読み出し条件の設定を宣言する。２サイクル目の信号は、第１実施形態と同様に読み出しレベルを指定する。３サイクル目の信号ＣＡＬは、演算内容を指定すると共に、演算結果の転送先を指定する。例えば図２１の例であると、センスアンプＳＡに読み出されたデータを反転させ、その結果をラッチ回路ＡＤＬに格納する旨が指定される。そして最後の４サイクル目の信号はシフト量を指定する。
【０１６１】
上記条件指定単位セットがコントローラ２００からＮＡＮＤ型フラッシュメモリ１００に送信されると、各情報がレジスタ群１５０やシーケンサ１６０、カラム制御回路１４０などに設定され、ＮＡＮＤ型フラッシュメモリ１００はビジー状態となる。
【０１６２】
次に、本実施形態に係る第１シーケンスにつき、図２２乃至図２５を用いて説明する。図２２乃至図２５は第１シーケンスを示し、図２２乃至図２５に示すコマンドシーケンスが順次コントローラ２００からＮＡＮＤ型フラッシュメモリ１００へ転送される。
【０１６３】
まず図２２に示すように、図２１で説明した条件指定単位セットが７回、発行される。これらはそれぞれ読み出し動作ＡＲ１〜ＡＲ７の読み出し条件を指定する。すなわち、この７回の条件指定単位セットの発行が、第１実施形態で説明した図９の第１信号セットに相当する。
【０１６４】
次に図２３に示すように、再び条件指定単位セットが７回、発行される。これらはそれぞれ読み出し動作ＤＲ１〜ＤＲ７の読み出し条件を指定する。すなわち、この７回の条件指定単位セットの発行が図９の第２信号セットに相当する。その後は図２４及び図２５に示すように、条件指定単位セットが７回ずつ発行されて、読み出し動作ＦＲ１〜ＦＲ７及びＫＲ１〜ＫＲ７の読み出し条件が指定される。
【０１６５】
以上のように、コントローラ２００は条件指定単位セットを（７×４）＝２８回、発行することで、読み出し動作ＡＲ１〜ＡＲ７、ＤＲ１〜ＤＲ７、ＦＲ１〜ＦＲ７、及びＫＲ１〜ＫＲ７の条件を設定する。
【０１６６】
その後の動作は、第１実施形態で説明した第２シーケンス以降と同様であり、図１０のシーケンスが発行され、図１２乃至図１６で説明した動作が実行される。
【０１６７】
５．２  本実施形態に係る効果  
本実施形態によれば、コントローラ２００は、ある読み出しレベルについてのソフトビットリード毎ではなく、ソフトビットリードに含まれる複数回の読み出し動作のそれぞれ毎に独立して読み出し条件を設定できる。従って、ＮＡＮＤ型フラッシュメモリ１００の読み出し動作の制御についての、コントローラ２００の自由度を向上できる。
【０１６８】
６．第６実施形態  
次に、第６実施形態に係る半導体記憶装置について説明する。本実施形態は、上記第２実施形態を、第５実施形態で説明した条件指定単位セットを用いて実現するものである。以下では、第２実施形態と異なる点についてのみ説明する。
【０１６９】
６．１  データの読み出し動作について  
本実施形態が第２実施形態と異なる点は、図１７の第１シーケンスが図２６に示すシーケンスに置き換わる点である。
【０１７０】
すなわち、図１７の例であると、４回の読み出し動作ＡＲ１、ＡＲ３、ＡＲ５、及びＡＲ７の読み出し条件が第１信号セットによってまとめて送信される。また、２回の読み出し動作ＤＲ５及びＤＲ７の読み出し条件が第２信号セットによってまとめて送信される。更に、２回の読み出し動作ＦＲ３及びＦＲ７の読み出し条件が第３信号セットによってまとめて送信される。そして、３回の読み出し動作ＫＲ３、ＫＲ５、及びＫＲ７の読み出し条件が第３信号セットによってまとめて送信される。
【０１７１】
これに対して本実施形態によれば、図２６に示すように、ソフトビットＳＢ１を得るために必要な１１回の読み出し動作毎に条件指定単位セットが発行される。そして、この１１個の条件指定単位セットはそれぞれ、ＡＲ１、ＡＲ３、ＡＲ５、ＡＲ７、ＤＲ５、ＤＲ７、ＦＲ３、ＦＲ７、ＫＲ３、ＫＲ５、及びＫＲ７の読み出し条件を設定する。
【０１７２】
その後の動作は、第２実施形態で説明した第２シーケンス以降と同様であり、図１７で説明した第２及び第３シーケンスが発行される。そして選択ワード線ＷＬには図１８で説明した電圧が印加され、第２実施形態と同様の読み出し動作が実行される。
【０１７３】
６．２  本実施形態に係る効果  
本実施形態によれば、第２実施形態及び第５実施形態で述べた効果が得られる。
【０１７４】
７．変形例など  
以上のように、上記実施形態に係る半導体記憶装置は、データを保持可能な第１メモリセルと、第１メモリセルに対応付けられた第１ラッチ回路(ADL)及び第２ラッチ回路(BDL)とを具備する。そして、第１ラッチ回路と前記第２ラッチ回路とのいずれかを指定する第１アドレス(latch指定 in 図9)と、第１メモリセルの保持するデータの読み出し命令(tracking read in 図10)とを外部から受信した際に、第１メモリセルからデータが読み出され、該読み出されたデータは第１アドレスに対応する第１ラッチ回路と第２ラッチ回路とのいずれかに保持される(図13)。
【０１７５】
また、演算内容を指定する第１演算情報(演算の指定XXh in 図9)と、第１メモリセルの保持するデータの読み出し命令(tracking read in 図10)とを外部から受信した際に、第１メモリセルからデータが読み出され、該読み出されたデータにつき、第１演算情報に基づく演算が実行され、該演算結果が前記第１ラッチ回路に保持される(図13)。
【０１７６】
更に、読み出し回数に相当する第１回数情報(回数情報 in 図9)と、読み出し電圧に関する第１電圧情報(SFT1-SFT7 in 図9)と、第１メモリセルの保持するデータの読み出し命令令(tracking read in 図10)とを外部から受信した際に、第１メモリセルからのデータの読み出しを前記第１回数情報に基づく回数繰り返し(AR1-AR7 in 図13)、繰り返しの度に、第１電圧情報に基づいて読み出し電圧(-3Δ〜+3Δ in 図13)を変化させる(図13)。
【０１７７】
本構成によれば、メモリセルからデータを読み出す前に、コントローラ２００は各種の読み出し条件をＮＡＮＤ型フラッシュメモリ１００に設定できる。その一例は、読み出しデータを格納すべきラッチ回路、読み出しレベル、読み出しデータに対して行う演算の内容、読み出し回数、及び電圧シフト量などである。これにより、例えば複雑なソフトビットを算出する際にも、必要なデータを同じラッチ回路に集め、必要な演算を実行させることにより、容易に且つ高速にソフトビットが得られる。このように、半導体記憶装置、コントローラ、及びこれらを含むメモリシステムの性能を向上できる。
【０１７８】
なお、上記説明した実施形態は一例に過ぎず、種々の変形が可能である。上記実施形態では、各メモリセルが４ビットデータを保持し、図８のようにしてソフトビットＳＢが得られる場合を例に説明した。しかし、メモリセルが３ビット以下、または５ビット以上のデータを保持する場合であっても良いし、またソフトビットと読み出しデータとの関係は図８に限られるものではない。
【０１７９】
また、上記実施形態ではソフトビットを取得する場合を例に説明したが、例えば図６のステップＳ１５２で説明したトラッキングリードに適用しても良い。前述の通り、本ステップでは読み出し電圧をシフトさせつつオンセル数をカウントし、その差分が最小となる読み出し電圧を、閾値分布の交点とみなす。この差分の算出にＸＮＯＲ演算を用いても良い。すなわち、ステップＳ１５２では、例えば１つのラッチ回路ＸＤＬが指定され、演算内容としては、最初の読み出しデータについては反転、それ以降は読み出しデータと、それまでＸＤＬに保持されていたデータとのＸＮＯＲ演算を指定し、読み出し回数と、シフト量を指定する。すると、オフセルに対応するＸＤＬは“０”を保持し続け、ある電圧でメモリセルがオンすると、ＸＤＬの保持データは“１”に反転する。そしてＮＡＮＤ型フラッシュメモリ１００は、“０”から“１”に反転したビットのみをコントローラ２００に送信する。あるいは、“０”から“１”に反転したビット数をカウントし、その結果をコントローラ２００に送信しても良い。本方法によれば、読み出しの度に毎回１ページ分のデータをコントローラ２００に送信する必要がなく、またコントローラ２００において差分を計算する必要もない。よって、コントローラ２００の負荷を軽減し、且つ動作を高速化できる。
【０１８０】
また上記実施形態では、図１２及び図１８に示すように、異なる読み出しレベルについての複数の読み出し動作が連続して行われる場合を例に説明した。すなわち、読み出し動作ＡＲ、ＤＲ、ＦＲ、ＫＲは連続して行われ、選択ワード線ＷＬの電圧は読み出し動作ＫＲが終了するまで上昇し続けた。
【０１８１】
しかし、異なる読み出しレベルについての読み出し動作間では、一旦、ワード線ＷＬの電圧をリセット（例えば０Ｖ）しても良い。このような例を図２７及び図２８に示す。本例の場合、非選択ワード線に印加される電圧ＶＲＥＡＤも同様にリセットされる。またこの場合、読み出し動作ＡＲ、ＤＲ、ＦＲ、及びＫＲのそれぞれを実行する際に、図１０で説明した第２シーケンスが発行されても良い。但し、第１シーケンスは、全ての読み出し動作の実行前に発行される。または、読み出し動作は通常のシフトリードを用いても良い。このような例を図２９及び図３０に示す。図示するように、例えば最初にlowerページについてのハードビットリード（第１実施形態で説明したＡＲ４、ＤＲ４、ＦＲ４、及びＫＲ４に相当）が実行される。次に、選択ワード線ＷＬの電圧が（−Δ）だけシフトされて、データが読み出される（第１実施形態で説明したＡＲ３、ＤＲ３、ＦＲ３、及びＫＲ３に相当）。引き続き、選択ワード線ＷＬの電圧が（＋Δ）だけシフトされてデータが読み出され、以降、（−２Δ）、（＋２Δ）、（−３Δ）、（＋３Δ）の順にシフトされつつ、データが読み出される。
【０１８２】
なお、電圧のシフト順は上記に限らず、種々の順序で印加されても良い。例えば、  
・ＨＢ→（−２Δ）→（＋２Δ）→（−３Δ）→（＋３Δ）→（−Δ）→（＋Δ）  
・（−３Δ）→（−２Δ）→（−Δ）→ＨＢ→（＋Δ）→（＋２Δ）→（＋３Δ）  
などの順を用いることができる。なお、“ＨＢ”なる表記は、ハードビットリードを示す。
【０１８３】
更に、選択ワード線に印加される電圧は、時間と共に連続的に上昇する場合であっても良い。この例を図３１に示す。図示するようにワード線に印加される電圧は、上記実施形態で説明したステップ状ではなく、連続的に上昇する。そして、電圧値が適切な値に到達した時点で信号ＳＴＢがアサートされて、データがセンスアンプＳＡにより確定される。なお「時間と共に連続的」とは、例えば細かくステップアップされる場合も含み、一例としては、信号ＳＴＢがアサートされている期間内に２回のステップアップを含むような場合も含む。
【０１８４】
更に、単位シフト量Δは、例えば読み出し電圧毎に異なっていても良い。また、コントローラ２００によって設定可能な条件は、上記実施形態で説明した例に限らず、適宜選択できる。もちろん、上記実施形態で説明した条件のうち、少なくともいずれか１つだけを設定する場合であっても良いし、コントローラ２００にとって必要な条件をＮＡＮＤ型フラッシュメモリ１００に自由に設定できる。
【０１８５】
なお、本発明に関する各実施形態において、  
（１）例えばメモリセルが２ビットデータ（”Ｅｒ”、”Ａ”、”Ｂ”、及び”Ｃ”）を保持する場合、Aレベルの読み出し動作に選択されたワード線に印加される電圧は、例えば0V〜0.55Vの間である。これに限定されることなく、0.1V〜0.24V, 0.21V〜0.31V, 0.31V〜0.4V, 0.4V〜0.5V, 0.5V〜0.55Vいずれかの間にしてもよい。  
Bレベルの読み出し動作に選択されたワード線に印加される電圧は、例えば1.5V〜2.3Vの間である。これに限定されることなく、1.65V〜1.8V, 1.8V〜1.95V, 1.95V〜2.1V, 2.1V〜2.3Vいずれかの間にしてもよい。  
Cレベルの読み出し動作に選択されたワード線に印加される電圧は、例えば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の間にしてもよい。  
（４）メモリセルの構造は、  
半導体基板（シリコン基板）上に膜厚が４〜１０ｎｍのトンネル絶縁膜を介して配置された電荷蓄積層を有している。この電荷蓄積層は膜厚が２〜３ｎｍのＳｉＮ、またはＳｉＯＮなどの絶縁膜と膜厚が３〜８ｎｍのポリシリコンとの積層構造にすることができる。また、ポリシリコンにはＲｕなどの金属が添加されていても良い。電荷蓄積層の上には絶縁膜を有している。この絶縁膜は、例えば、膜厚が３〜１０ｎｍの下層Ｈｉｇｈ−ｋ膜と膜厚が３〜１０ｎｍの上層Ｈｉｇｈ−ｋ膜に挟まれた膜厚が４〜１０ｎｍのシリコン酸化膜を有している。Ｈｉｇｈ−ｋ膜はＨｆＯなどが挙げられる。また、シリコン酸化膜の膜厚はＨｉｇｈ−ｋ膜の膜厚よりも厚くすることができる。絶縁膜上には膜厚が３〜１０ｎｍの仕事関数調整用の材料を介して膜厚が３０ｎｍ〜７０ｎｍの制御電極が形成されている。ここで仕事関数調整用の材料はＴａＯなどの金属酸化膜、ＴａＮなどの金属窒化膜である。制御電極にはＷなどを用いることができる。  
また、メモリセル間にはエアギャップを形成することができる。
【０１８６】
更に、上記実施形態では半導体記憶装置としてＮＡＮＤ型フラッシュメモリを例に説明したが、ＮＡＮＤ型フラッシュメモリに限らず、その他の半導体メモリ全般に適用出来、更には半導体メモリ以外の種々の記憶装置に適用出来る。また、上記実施形態で説明したフローチャートは、その処理の順番を可能な限り入れ替えることが出来る。
【０１８７】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【０１８８】
１…メモリシステム、１００…ＮＡＮＤ型フラッシュメモリ、１１０…メモリセルアレイ、１２０…ロウデコーダ、１３０…ドライバ回路、１４０…カラム制御回路、１５０…レジスタ群、１５１〜１５５…レジスタ、１６０…シーケンサ、２００…コントローラ、２１０、２５０…インターフェース回路、２２０、２４０…メモリ、２３０…プロセッサ、２６０…ＥＣＣ回路、３００…ホスト機器
【図１】
2019053798.tif 000003
【図２】
2019053798.tif 000004
【図３】
2019053798.tif 000005
【図４】
2019053798.tif 000006
【図５】
2019053798.tif 000007
【図６】
2019053798.tif 000008
【図７】
2019053798.tif 000009
【図８】
2019053798.tif 000010
【図９】
2019053798.tif 000011
【図１０】
2019053798.tif 000012
【図１１】
2019053798.tif 000013
【図１２】
2019053798.tif 000014
【図１３】
2019053798.tif 000015
【図１４】
2019053798.tif 000016
【図１５】
2019053798.tif 000017
【図１６】
2019053798.tif 000018
【図１７】
2019053798.tif 000019
【図１８】
2019053798.tif 000020
【図１９】
2019053798.tif 000021
【図２０】
2019053798.tif 000022
【図２１】
2019053798.tif 000023
【図２２】
2019053798.tif 000024
【図２３】
2019053798.tif 000025
【図２４】
2019053798.tif 000026
【図２５】
2019053798.tif 000027
【図２６】
2019053798.tif 000028
【図２７】
2019053798.tif 000029
【図２８】
2019053798.tif 000030
【図２９】
2019053798.tif 000031
【図３０】
2019053798.tif 000032
【図３１】
2019053798.tif 000033