JP6293846B2 - 半導体記憶装置 - Google Patents

半導体記憶装置 Download PDF

Info

Publication number
JP6293846B2
JP6293846B2 JP2016214999A JP2016214999A JP6293846B2 JP 6293846 B2 JP6293846 B2 JP 6293846B2 JP 2016214999 A JP2016214999 A JP 2016214999A JP 2016214999 A JP2016214999 A JP 2016214999A JP 6293846 B2 JP6293846 B2 JP 6293846B2
Authority
JP
Japan
Prior art keywords
program
programmed
data
bits
selected page
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2016214999A
Other languages
English (en)
Other versions
JP2017111849A (ja
Inventor
一貴 山内
一貴 山内
Original Assignee
ウィンボンド エレクトロニクス コーポレーション
ウィンボンド エレクトロニクス コーポレーション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ウィンボンド エレクトロニクス コーポレーション, ウィンボンド エレクトロニクス コーポレーション filed Critical ウィンボンド エレクトロニクス コーポレーション
Priority to JP2016214999A priority Critical patent/JP6293846B2/ja
Publication of JP2017111849A publication Critical patent/JP2017111849A/ja
Application granted granted Critical
Publication of JP6293846B2 publication Critical patent/JP6293846B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Read Only Memory (AREA)

Description

本発明は、半導体記憶装置、特にNAND型フラッシュメモリのプログラム方法に関する。
NAND型フラッシュメモリでは、データのプログラムや消去が繰り返されることで、トンネル絶縁膜の劣化により電荷保持特性が悪化したり、トンネル絶縁膜にトラップされた電荷によりしきい値変動が生じ、ビットエラーを引き起こす。特許文献1は、このようなビットエラー対策として、誤り検出訂正回路(ECC:Error Checking Correction)を搭載している。また、特許文献2は、1つのメモリセルにマルチビットのデータを格納するNAND型フラッシュメモリにおいて、マルチビットのデータのエラー訂正スキームを開示している。さらに特許文献3は、訂正したエラー数がしきい値以上の物理ブロックを警告ブロックとしてテーブルに登録し、データ書込み時に警告ブロックの選択の優先順位を下げるフラッシュメモリを開示している。
特開2010−152989号公報 特開2008−165805号公報 特開2010−79486号公報
図1に、ECC回路をオンチップで搭載するNAND型フラッシュメモリの要部を示す。外部入出力端子から入力されたプログラムデータは、ページバッファ/センス回路10へロードされ、ロードされたプログラムデータが転送回路20を介してECC回路30へ転送される。転送回路20は、双方向のデータ転送が可能な複数のトランジスタを含み、各トランジスタは、ゲートに共通接続された制御信号TGによって駆動される。ECC回路30は、転送されたプログラムデータの演算を行い、誤り検出・訂正のための誤り訂正符号を生成し、誤り訂正符号をページバッファ/センス回路10の所定領域に書き戻す。次に、ページバッファ/センス回路10に保持されたプログラムデータおよび誤り訂正符号がメモリアレイの選択ページにプログラムされる。
図2は、従来のプログラム動作のフローである。選択ページのワード線にはプログラムパルスが印加され、ビット線にはプログラムデータに応じた電圧が設定され、選択ページにプログラムパルスが印加される(S10)。次に、選択ページのプログラムベリファイが行われ(S20)、選択ページの全てのメモリセルのプログラムが合格したか否かが判定される(S30)。全てのメモリセルのプログラムが合格と判定された場合には、プログラムが終了される。プログラムが不合格のメモリセルがある場合には、プログラムパルスの印加回数がNMAXに到達したか否かが判定される(S40)。ここで、NMAXとは、プログラムに許容される最大時間またはプログラムに許容される最大のプログラムパルスの印加回数を意味する。NMAXに到達した場合には、プログラム失敗のステータスが外部のコントローラに通知されるとともに、当該ブロックがバッドブロックとして管理される。一方、NMAXに到達していなければ、ISPP(Incremental Step Program Pulse)に従い、前回のプログラムパルスよりもΔVだけ大きなステップ電圧を有するプログラムパルスが生成されS50)、このプログラムパルスが選択ページに印加される。
外部のコントローラ等に搭載されたECC機能を利用しないか、あるいはECCを搭載していないフラッシュメモリでは、プログラムベリファイの合格は、全ビットの合格が前提である。これに対し、外部のコントローラ等に搭載されたECC機能を利用するか、あるいはECCがオンチップ搭載されたフラッシュメモリでは、ベリファイにおいて一部の不合格ビット(「0」プログラムが不合格のメモリセル)があったとしても、これをECCで救済することで疑似合格とすることが可能である。例えば、ECCによってmビットの誤り検出・訂正が可能であれば、理論上、最大でmビットの不合格ビットを救済することができる。ECCによって救済できる最大のビット数をNcc、ベリファイにおいて疑似合格とすることができる最大の不合格ビット数をNp、実際の不合格のビット数をNfとするとき、Npは、Ncc≧Npとなるように設定され、好ましくはNcc>Npに設定される。Np≧Nfのとき、選択ページは、不合格ビットを含んでいるけれども、不合格ビットがECCにより救済可能であるため、ベリファイは疑似合格と判定される。そして、選択ページの読出しが行われるとき、選択ページに含まれる不合格ビットが誤りとして検出され、このデータが訂正される。
疑似合格の判定をすることで、プログラム失敗やバッドブロックを減らし、歩留まりを向上させ、さらにプログラムパルスの印加回数を抑制することで、プログラムディスターブを減らすことができる。
しかしながら、疑似合格を用いた従来のプログラム方法には次のような課題がある。例えば、kビットまでの不合格ビットが疑似合格とされるとき(Np=k)、プログラムパルスの印加回数がNMAXに到達する前であれば、ベリファイ時に、実際の不合格ビット数Nfが疑似合格とすることができる最大の不合格ビット数Npよりも小さくなった時点で自動的にプログラムが終了される。言い換えれば、プログラムパルスの印加回数がNMAXよりも十分に小さく、印加できる回数にまだ余裕があったとしても、Nf≦Npになれば疑似合格と判定され、プログラムが終了してしまう。しかし、プログラムが不合格とされたメモリセルの中には、次のプログラムパルスの印加によって合格し得るものも存在し、本来であれば、このようなメモリセルは、不合格ビットと判定されるのではなく、合格ビットと判定されることが望ましい。疑似合格で不合格ビット数が多くなれば、ECCの他での機能が大きく制限されてしまう。
本発明は、このような従来の課題を解決するものであり、プログラム不良の歩留まりを改善しつつ不合格メモリセルの救済を行うことができる半導体記憶装置を提供することを目的とする。
本発明に係るNAND型フラッシュメモリのプログラム方法は、選択ページにプログラムパルスを印加するステップと、選択ページのプログラムの合否を判定するステップと、不合格であると判定されたとき、プログラムパルスの印加回数がプログラムの許容最大値よりも小さい最適値に到達していない場合には、選択ページにさらにプログラムパルスを印加し、プログラムパルスの印加回数が前記最適値に到達している場合には、選択ページが予め決められた不合格ビット数であれば疑似合格と判定するステップとを有する。
好ましくはプログラム方法はさらに、選択ページが予め決められた不合格ビット数よりも多い場合には、プログラムパルスの印加回数が前記許容最大値に到達しているか否かを判定し、前記許容最大値に到達していない場合には、選択ページにさらにプログラムパルスを印加し、前記許容最大値に到達している場合には、プログラム失敗としてプログラムを終了するステップを含む。好ましくは前記許容最大値は、選択ページのプログラムに許容されるプログラムパルスの最大印加回数である。好ましくは前記予め決められた不合格ビット数は、誤り検出・訂正によって救済可能なビット数以下である。好ましくは前記最適値は、外部のコントローラによって設定可能である。好ましくはプログラム方法はさらに、プログラムすべきデータの誤り訂正符号を生成するステップと、前記選択ページには、プログラムデータと前記誤り訂正符号とがプログラムされる。
本発明に係るNAND型フラッシュメモリのプログラム方法は、プログラムすべきデータを受け取るステップと、当該プログラムすべきデータによりプログラムされるビット数が、誤り検出・訂正手段により救済可能な救済ビット数以下であるか否を判定するステップと、前記誤り検出・訂正手段により前記プログラムすべきデータの誤り訂正符号を生成するステップと、前記プログラムすべきデータによりプログラムされるビット数が前記救済ビット数以下であると判定されたとき、選択ページのレギュラー領域にプログラムをすることなく、スペア領域に前記誤り訂正符号をプログラムすることで選択ページへのプログラムを終了するステップとを有する。
好ましくはプログラム方法はさらに、前記プログラムすべきデータによりプログラムされるビット数が救済ビット数よりも多いと判定されたとき、選択ページのレギュラー領域にプログラムすべきデータをプログラムするステップを有する。
本発明に係る半導体記憶装置は、メモリアレイと、プログラムすべきデータの誤り訂正符号を生成する誤り検出・訂正手段と、前記プログラムすべきデータおよび前記誤り訂正符号を前記メモリアレイの選択ページにプログラムするプログラム手段とを含み、前記プログラム手段は、選択ページにプログラムパルスを印加し、選択ページのプログラムが不合格であると判定したとき、プログラムパルスの印加回数がプログラムの許容最大値よりも小さい最適値に到達していない場合には、選択ページにさらにプログラムパルスを印加し、プログラムパルスの印加回数が前記最適値に到達している場合には、選択ページが予め決められた不合格ビット数であれば疑似合格と判定する処理を実行する。
本発明に係る半導体装置は、メモリアレイと、プログラムすべきデータの誤り訂正符号を生成する誤り検出・訂正手段と、プログラムすべきデータおよび前記誤り訂正符号を前記メモリアレイの選択ページにプログラムするプログラム手段とを含み、前記プログラム手段は、プログラムすべきデータによりプログラムされるビット数が前記誤り検出・訂正手段により救済可能な救済ビット数以下であるとき、選択ページのレギュラー領域にプログラムをすることなくスペア領域に前記誤り訂正符号をプログラムすることで選択ページのプログラムを終了する。好ましくは半導体記憶装置は、前記メモリアレイの選択ページのデータを読み出す手段を含み、前記誤り検出・訂正手段は、読み出された誤り訂正符号に基づき読み出されたデータの誤り検出・訂正を行う。
本発明によれば、プログラムのベリファイにおいて不合格と判定されたとき、プログラムパルスの印加回数が許容最大値よりも小さい最適値に到達していない場合にはさらにプログラムパルスを印加し、プログラムパルスの印加回数が最適値に到達している場合には、選択ページが予め決められた不合格ビット数であれば疑似合格と判定する処理を実行するようにしたので、少なくともプログラムパルスが最適値に到達するまでは、全ビットの合否判定が保証される。これにより、本来であれば合格できるメモリセルを不合格判定から救済することができる。
従来のフラッシュメモリのECC動作を説明する図である。 従来のフラッシュメモリのプログラム動作を説明するフローチャートである。 本発明の実施例に係るNAND型フラッシュメモリの全体の概略構成を示す図である。 本発明の実施例に係るメモリセルアレイのNANDストリングの構成を示す回路図である。 本発明の実施例に係るフラッシュメモリのプログラム時に各部に印加される電圧の一例を示す図である。 本発明の第1の実施例に係るフラッシュメモリのプログラム動作を説明するフローチャートである。 本発明の第1の実施例によるプログラム動作時のレギュラー領域のECC処理を説明する図である。 本発明の第1の実施例によるプログラム動作時のスペア領域のECC処理を説明する図である。 本発明の第1の実施例による読出し動作時を説明するフローチャートである。 本発明の第2の実施例に係るフラッシュメモリのプログラム動作を説明するフローチャートである。 本発明の第3の実施例に係るフラッシュメモリのプログラム動作を説明するフローチャートである。
次に、本発明の実施の形態について図面を参照して詳細に説明する。ここでは、好ましい形態としてNAND型のフラッシュメモリを例示する。なお、図面は、分かり易くするために各部を強調して示してあり、実際のデバイスのスケールとは異なることに留意すべきである。
本発明の実施例に係るフラッシュメモリの典型的な構成を図3に示す。但し、ここに示すフラッシュメモリの構成は例示であり、本発明は、必ずしもこのような構成に限定されるものではない。本実施例のフラッシュメモリ100は、複数のメモリセルが行列状に配列されたメモリアレイ110と、外部入出力端子I/Oに接続され入出力データを保持する入出力バッファ120と、メモリアレイ110にプログラムするデータやそこから読み出されたデータの誤り検出・訂正を行うECC回路130と、入出力バッファ120からのアドレスデータを受け取るアドレスレジスタ140と、入出力バッファ120からのコマンドデータや外部からの制御信号を受け取り、各部を制御する制御部150と、アドレスレジスタ140から行アドレス情報Axを受け取り、行アドレス情報Axをデコードし、デコード結果に基づきブロックの選択およびワード線の選択等を行うワード線選択回路160と、ワード線選択回路160によって選択されたページから読み出されたデータを保持したり、選択されたページへの書込みデータを保持するページバッファ/センス回路170と、アドレスレジスタ140から列アドレス情報Ayを受け取り、列アドレス情報Ayをデコードし、当該デコード結果に基づきページバッファ/センス回路170内のデータの選択等を行う列選択回路180と、データの読出し、プログラムおよび消去等のために必要な種々の電圧(書込み電圧Vpgm、パス電圧Vpass、読出しパス電圧Vread、消去電圧Versなど)を生成する内部電圧発生回路190とを含んで構成される。
メモリアレイ110は、列方向に配置されたm個のメモリブロックBLK(0)、BLK(1)、・・・、BLK(m-1)を有する。ブロックBLK(0)に近接して、ページバッファ/センス回路170が配置される。このような構成以外にも、ページバッファ/センス回路170は、ブロックの他方の端部、あるいは両側の端部に配置されるものであってもよい。
1つのメモリブロックには、図4に示すように、複数のメモリセルを直列に接続したNANDストリングユニットNUが複数形成され、1つのメモリブロック内にn+1個のストリングユニットNUが行方向に配列されている。セルユニットNUは、直列に接続された複数のメモリセルMCi(i=0、1、・・・、31)と、一方の端部であるメモリセルMC31のドレイン側に接続された選択トランジスタTDと、他方の端部であるメモリセルMC0のソース側に接続された選択トランジスタTSとを含み、選択トランジスタTDのドレインは、対応する1つのビット線GBLに接続され、選択トランジスタTSのソースは、共通のソース線SLに接続される。
メモリセルMCiのコントロールゲートは、ワード線WLiに接続され、選択トランジスタTD、TSのゲートは、ワード線WLと並行する選択ゲート線SGD、SGSに接続される。ワード線選択回路160は、行アドレスAxまたは変換されたアドレスに基づきブロックを選択するとき、ブロックの選択ゲート信号SGS、SGDを介して選択トランジスタTD、TSを選択的に駆動する。図4は、典型的なセルユニットの構成を示しているが、セルユニットは、NANDストリング内に1つまたは複数のダミーセルを包含するものであってもよい。
メモリセルは、典型的に、Pウエル内に形成されたN型の拡散領域であるソース/ドレインと、ソース/ドレイン間のチャンネル上に形成されたトンネル酸化膜と、トンネル酸化膜上に形成されたフローティングゲート(電荷蓄積層)と、フローティングゲート上に誘電体膜を介して形成されたコントロールゲートとを含むMOS構造を有する。フローティングゲートに電荷が蓄積されていないとき、つまりデータ「1」が書込まれているとき、しきい値は負状態にあり、メモリセルは、ノーマリオンである。フローティングゲートに電子が蓄積されたとき、つまりデータ「0」が書込まれているとき、しきい値は正にシフトし、メモリセルは、ノーマリオフである。但し、メモリセルは、1ビット(2値データ)を記憶するSLCタイプでもよいし、多ビットを記憶するMLCタイプであってもよい。
図5は、フラッシュメモリの各動作時に印加されるバイアス電圧の一例を示したテーブルである。読出し動作では、ビット線に或る正の電圧を印加し、選択されたワード線に或る電圧(例えば0V)を印加し、非選択ワード線にパス電圧Vpass(例えば4.5V)を印加し、選択ゲート線SGD、SGSに正の電圧(例えば4.5V)を印加し、ビット線選択トランジスタTD、ソース線選択トランジスタTSをオンし、共通ソース線に0Vを印加する。プログラム(書込み)動作では、選択されたワード線に高電圧のプログラム電圧Vprog(15〜20V)を印加し、非選択のワード線に中間電位(例えば10V)を印加し、ビット線選択トランジスタTDをオンさせ、ソース線選択トランジスタTSをオフさせ、「0」または「1」のデータに応じた電位をビット線GBLに供給する。消去動作では、ブロック内の選択されたワード線に0Vを印加し、Pウエルに高電圧(例えば20V)を印加し、フローティングゲートの電子を基板に引き抜くことで、ブロック単位でデータを消去する。
プログラム動作時に入出力バッファ120を介して入力データDiがページバッファ/センス回路170にロードされると、ECC回路130は、ページバッファ/センス回路170から転送された入力データDiを演算し、入力データDiの誤り検出訂正に必要な誤り訂正符号またはパリティビットを生成する。ECCの演算は、例えば、ハミングコードやリード・ソロモンなどの公知の手法によって行われ、入力されたkビットまたはkバイトの入力データDiをp=k+qに変換する。本明細書では、「q」を、入力データDiの誤り検出訂正に必要な誤り訂正符号またはパリティビットと称する。1つの好ましい例では、ECC回路130は、誤り訂正符号をページバッファ/センス回路170のスペア領域にセットする。こうして、ページバッファ/センス回路170にセットされた入力データDiと誤り訂正符号がメモリアレイ110の選択ページにプログラムされる。
読出し動作時にメモリアレイ110の選択ページから読み出されたデータがページバッファ/センス回路170に保持されると、ECC回路130は、ページバッファ/センス回路170から転送された誤り訂正符号に基づき読出しデータの誤りの検出、訂正を行い、誤りが検出された場合には訂正したデータをページバッファ/センス回路170にセットする。そして、ページバッファ/センス回路170の保持されたデータが入出力バッファ120を介して出力される。
次に、本発明の第1の実施例に係るプログラム動作を図6のフローを参照して説明する。制御部150は、入出力バッファ120を介してプログラムコマンドを受け取ると、プログラムのためのシーケンスを開始する。入出力バッファ120を介して入力データDiがページバッファ/センス回路170にロードされ、次いで、ECC回路130により入力データDiのECC処理が行われる(S100)。
図7に、ECC処理の一例を示す。フラッシュメモリ100が×8の外部入出力端子を有するとき、外部入出力端子P0〜P7から各I/Oバッファ120−1〜120−7を介してページバッファ/センス回路170にデータがロードされる。ページバッファ/センス回路170は、例えば、セクタ0〜セクタ7の8つのセクタに分割されたレギュラー領域300と、スペア0、スペア1、スペア2、スペア3の4つのセクタに分割されたスペア領域310とを有する。
レギュラー領域300の1つのセクタは、例えば、256バイトから構成され、この場合、レギュラー領域300の8つのセクタは、全体で約2Kバイトのプログラムデータを保持することができる。スペア領域310の1つのセクタは、例えば16バイトから構成され、この場合、4つのセクタ(スペア0〜スペア3)は全体で64バイトのデータを保持することができる。スペア領域310の1つのセクタは、例えば、不良メモリセルを含むバッドブロックを識別する情報を記憶する領域311、ユーザーデータに関する情報を記憶する領域312、レギュラー領域300の2つセクタについての誤り訂正符号(パリティビット)を記憶する領域313、314、スペア領域310がECC演算されたときの誤り訂正符号(パリティビット)を記憶する領域315を有する。スペア領域310のスペア0の領域313、314は、レギュラー領域300のセクタ0、セクタ1の誤り訂正符号(パリティビット)をそれぞれ記憶し、スペア領域310のスペア1の領域313、314は、レギュラー領域300のセクタ2、セクタ3の誤り訂正符号(パリティビット)を記憶する。同様に、スペア領域310のスペア2は、レギュラー領域300のセクタ4、セクタ5のパリティビットを記憶し、スペア領域310のスペア3は、レギュラー領域300のセクタ6、セクタ7のパリティビットを記憶する。
レギュラー領域300の1つのセクタには、入出力バッファ120−0〜120−7が割り当てられ、つまり、1つの外部入出力端子には256ビットが割り当てられる(256bit×8=1セクタ)。列選択回路180は、プログラム動作時に受け取った列アドレス情報Ayをデコードし、当該デコード結果に基づき、外部入出力端子P−0〜P7に入力されたデータがロードされるセクタを選択する。図7は、外部入出力端子P−0〜P−7で受け取られたデータが列アドレス情報Ayに従いセクタ0にロードされる例を示している。
ここに示す例では、ECC回路130が誤り訂正符号を書込むための書込み回路を含む。好ましくは、ECC回路130は、レギュラー領域300の1つのセクタと等しいバイト数のデータについてECC演算を行うことができる。レギュラー領域300の1つのセクタが256バイトであれば、ECC回路は、256バイトのデータについてECC演算を行い、4ビットの誤りを訂正する誤り訂正符号を生成する。
ECC回路130は、生成された誤り訂正符号をスペア領域310の対応するセクタの領域313または314に書込む。図7に示す例では、プログラムデータがレギュラー領域300のセクタ0にロードされるので、誤り訂正符号は、スペア0のセクタ0のパリティを記憶する領域313に書込まれる。
図8に、スペア領域310のデータのECC処理を例示する。レギュラー領域300の各セクタについてECC処理が終了すると、次に、スペア領域310の各セクタについてECC処理が行われる。スペア領域310の1つセクタ内に含まれるどのデータのECC処理を行うかは任意であるが、本例では、領域312ないし領域314のデータについてECC処理を行うものとする。それ故、スペア0の領域312ないし領域314のデータがECC回路130に転送され、ECC処理によって生成された誤り訂正符号が、ECC回路130によってスペア0の領域315に書込まれる。同様の処理が、他のスペア1ないしスペア3についても行われる。
再び図6を参照し、ECC処理が終了すると(S100)、メモリアレイ110へのプログラムが開始される。ワード線選択回路160によりメモリアレイ110のワード線が選択され、ビット線には、ページバッファ/センス回路170によって保持されたデータに応じた電圧が供給され、選択ページにプログラムパルスが印加される(S110)。次に、プルグラムベリファイが行われ(S120)、データ「0」がプログラムされたメモリセルのしきい値が一定値以上になっているか否かがチェックされる。ベリファイの結果、選択ページの全ビットが合格であれば、プログラムが終了される。一方、全ビットが合格していない場合には、制御部150は、プログラムパルスの印加回数が最適回数Nopに到達したか否かを判定する(S130)。
ここで、最適回数Nopとは、プログラムにおいて許容されるプログラムパルスの最大の印加回数または最大のプログラム時間であるNMAXよりも小さい値であり、好ましくは、メモリセルをプログラム不合格と判定する場合に最小限印加されるべきプログラムパルスの回数である。例えば、プログラムに許容される最大時間が700μsであり、1回のプログラムパルスの印加に要する時間が50μsとした場合、NMAX=700μs、またはNMAX=14回である。最適回数Nopは、典型的なメモリセルがプログラム合格されるときのプログラムパルスの印加回数に基づき決定することができる。例えば、統計的な手法によりプログラム合格されるメモリセルに印加されたプログラムパルスの平均回数Navが算出されたとき、最適回数Nopは、Nop=Navに設定することができる。この最適回数Nopは、例えば、外部のコントローラから受信したコマンド等によってよって設定することが可能であり、設定された値は、制御部150のレジスタ等に保持される。
制御部150は、プログラムパルスの印加回数が最適回数Nopに到達していない場合には(S140)、ISPPに従い、前回よりもΔVだけ大きなプログラムパルスを選択ページに印加させる(S150)。一方、プログラムパルスの印加回数が最適回数Nopに到達した場合には(S140)、制御部150は、選択ページが疑似合格であるか否かを判定するステップを行う(S160)。疑似合格とされる最大の不合格ビット数Npは、上記したように、ECCによって救済できる最大のビット数Ncc以下であり、ベリファイ時の不合格ビット数、すなわち選択ページに実際に生じている不合格ビット数Nfが疑似合格の最大の不合格ビット数Np以下であれば(Nf≦Np)、疑似合格と判定される(S160)。疑似合格と判定されるとプログラム動作が終了し、選択ページには、「0」不良の不合格ビットがそのまま記憶されたことになる。
一方、疑似合格していないと判定されたとき(S160)、制御部150は、プログラムパルスの印加回数がNMAXに到達したか否かを判定し(S170)、到達していなければ、ISPPに従いさらにプログラムパルスが選択ページに印加される(S150、S110)。プログラムパルスの印加回数がNMAXに到達した場合には、プログラム失敗のステータスを外部のコントローラに通知し、当該選択ページを含むブロックがバッドブロックとして管理される。この場合、スペア領域の領域311にバッドブロックである識別情報が記憶される。
次に、疑似合格によりプログラムされたページからデータを読出すときの動作を図9のフローを参照して説明する。先ず、メモリアレイ110のページが選択され、当該選択ページのデータがページバッファ/センス回路170に読み出される(S200)。次に、ページバッファ/センス回路170のスペア領域に保持されたデータがECC回路130に転送される(S210)。例えば、セクタ0の誤り検出・訂正が行われるとき、図7に示すスペア0のデータがECC回路130に転送される。ECC回路130は、始めに領域315に保持されている誤り訂正符号(パリティ)に基づき領域313、314に保持されているデータの誤り検出・訂正を行う。
次に、ページバッファセンス回路170のレギュラー領域のデータがECC回路130に転送される(S220)。例えば、図7に示すセクタ0のデータがECC回路130に転送される。ECC回路130は、スペア0の領域313に格納されている誤り訂正符号に基づきセクタ0のデータの誤り検出を行う(S230)。もし、セクタ0に疑似合格のときの不合格ビットが含まれているならば、当該不合格ビットは誤りとして検出されることになる。ECC回路130は、誤りが検出された場合には、これを正しいデータに訂正し、訂正したデータをページバッファ/センス回路170にセットする(S240)。このような処理がセクタ単位で行われる(S250)。
このように本実施例によれば、プログラムパルスの印加回数が最適回数Nopに到達したときに疑似合格するか否かを判定するようにしたので、最適回数Nopまで疑似合格が行われず、その間、選択ページの全ビット合格の判定が保証される。これにより、従来では不合格と判定されたメモリセルが合格として救済される可能性が高くなり、ECC処理により他の処理で救済されるビット数のマージンを確保することができ、同時にプログラム成功の歩留まりを向上させることができる。
次に、本発明の第2の実施例のプログラム動作を図10のフローを参照して説明する。第2の実施例は、図2のフローに新たにステップS300、S310、S320を追加したものである。制御部150は、プログラム動作時に、入力されたプログラムデータに基づき疑似合格か否かを判定する(S300)。ここで、選択ページのプログラムは、すべて消去された状態のメモリセル(データがすべて「1」)に行われるものとする。制御部150は、1つのセクタのプログラムデータに含まれるデータ「0」のビット数が、疑似合格が可能な最大の不合格ビット数Np以下である場合には、疑似合格と判定し、そうでない場合には、図2のフローと同様の処理が実行される。
疑似合格と判定された場合には、ページバッファ/センス回路170に保持されたプログラムデータがECC回路130に転送され、そこでECC処理が実施される(S310)。ECC回路130は、演算により生成した誤り訂正符号をページバッファ/センス回路のスペア領域に書込む。次に、ページバッファ/センス回路170に保持された誤り訂正符号が選択ページのスペア領域にプログラムされる。このとき、選択ページのレギュラー領域のメモリセルは全てデータ「1」を保持しており、選択ページのレギュラー領域のビット線にはプログラム禁止の電圧が供給される。誤り訂正符号がスペア領域にプログラムされると、プログラム動作が終了される。レギュラー領域がすべてプログラム禁止のため、隣接するビット線間のカップリングの影響等がなくなり、プログラムされるビット線が存在するような通常のプログラムと比較して、プログラムディスターブ特性が改善される。
疑似合格とされたページの読出しは、第1の実施例のときと同様に行われる。すなわち、選択ページから読み出されたデータがページバッファ/センス回路170に保持される。レギュラー領域のデータは全て「1」であり、プログラムデータは不合格ビット数Np以下のデータ「0」を有する。ECC回路130は、ページバッファ/センス回路170のスペア領域のデータを受け取り、そこに含まれる誤り訂正符号に基づき、レギュラー領域の全「1」データから誤りビット、すなわちデータ「0」をプログラムすべきビットを検出し、データ「1」をデータ「0」に訂正し、これをページバッファ/センス回路170にセットする。
このように第2の実施例によれば、プログラムすべきデータがECC回路130によって救済可能なビット数以下である場合には、通常のプログラムシーケンスとは異なり、プログラムデータをレギュラー領域にプログラムすることなく、誤り訂正符号のみをスペア領域にプログラムすることで、レギュラー領域におけるプログラムディスターブ特性が改善され、同時にプログラム時間を短縮することができる。なお、図10のステップS320においてスペア領域に誤り訂正符号をプログラムするとき、通常のプログラムと同様にベリファイステップも実行され、この場合、図10の破線Kで示すようにISPPによるプログラムルーチンを実行することも可能である。
次に、本発明の第3の実施例について説明する。第3の実施例は、第1の実施例と第2の実施例とを組合せたものであり、その動作フローを図11に示す。図11のフローは、図6のフローに、第2の実施例のステップS300、S310、S320を追加したものであり、その動作は、第1の実施例および第2の実施例のときと同様であるため説明を省略する。図11のステップS320において、スペア領域に誤り訂正符号をプログラムするとき、図10の場合と同様にISPPによるプログラムシーケンスを行うことも可能であり、この場合、誤り訂正符号全ての合格が望まれるため、最適回数Nopは、疑似合格されないときの最適回数Nopよりも大きく設定し、全ビット合格と判定される可能性を高くし、ステップS160における疑似合格がされ難くすることも可能である。
なお、NAND型のフラッシュメモリは、ページ単位でプログラムが行われるが、入力されるプログラムデータのサイズは、必ずしも1ページ、すなわち図7に示すレギュラー領域300の8つのセクタのサイズに等しいことを要しない。例えば、プログラムデータのサイズは、1つのセクタのサイズであることができる。通常、プログラムディスターブの観点から、同一ページに連続してプログラムすることが許される回数(NOP(Number of Program))には制限があり、そのNOPに応じて1つのページデータを分割してプログラムすることが可能である。NOPが4であるとき、1つのページデータは、例えば、2セクタ、1セクタ、3セクタ、2セクタに分けてフラッシュメモリ10に入力することが可能である。
本発明の好ましい実施の形態について詳述したが、本発明は、特定の実施形態に限定されるものではなく、特許請求の範囲に記載された発明の要旨の範囲内において、種々の変形・変更が可能である。
100:フラッシュメモリ 110:メモリアレイ
120:入出力バッファ 130:ECC回路
140:アドレスレジスタ 150:制御部
160:ワード線選択回路 170:ページバッファ/センス回路
180:列選択回路 190:内部電圧発生正回路
300:レギュラー領域 310:スペア領域

Claims (7)

  1. NAND型フラッシュメモリのプログラム方法であって、
    プログラムすべきデータを受け取るステップと、
    当該プログラムすべきデータによりプログラムされるビット数が、誤り検出・訂正手段により救済可能な救済ビット数以下であるか否を判定するステップと、
    前記誤り検出・訂正手段により前記プログラムすべきデータの誤り訂正符号を生成するステップと、
    前記プログラムすべきデータによりプログラムされるビット数が前記救済ビット数以下であると判定されたとき、選択ページのレギュラー領域にプログラムをすることなく、スペア領域に前記誤り訂正符号をプログラムすることで選択ページへのプログラムを終了するステップと、
    を有するプログラム方法。
  2. プログラム方法はさらに、前記プログラムすべきデータによりプログラムされるビット数が救済ビット数よりも多いと判定されたとき、選択ページのレギュラー領域にプログラムすべきデータをプログラムするステップを有する、請求項に記載のプログラム方法。
  3. NAND型フラッシュメモリのプログラム方法であって、
    プログラムすべきデータを受け取るステップと、
    当該プログラムすべきデータによりプログラムされるビット数が、誤り検出・訂正手段により救済可能な救済ビット数以下であるか否を判定するステップと、
    前記誤り検出・訂正手段により前記プログラムすべきデータの誤り訂正符号を生成するステップと、
    前記プログラムすべきデータによりプログラムされるビット数が前記救済ビット数以下であると判定されたとき、選択ページのレギュラー領域にプログラムをすることなく、スペア領域に前記誤り訂正符号をプログラムすることで選択ページへのプログラムを終了するステップと、
    前記プログラムすべきデータによりプログラムされるビット数が救済ビット数よりも多いと判定されたとき、選択ページのレギュラー領域にプログラムすべきデータをプログラムするステップとを有し、
    前記プログラムするステップはさらに、
    選択ページにプログラムパルスを印加するステップと、
    選択ページのプログラムの合否を判定するステップと、
    不合格であると判定されたとき、プログラムパルスの印加回数がプログラムの許容最大値よりも小さい最適値に到達していない場合には、選択ページにさらにプログラムパルスを印加し、プログラムパルスの印加回数が前記最適値に到達している場合には、選択ページが予め決められた不合格ビット数であれば疑似合格と判定するステップとを有する、プログラム方法。
  4. メモリアレイと、
    プログラムすべきデータの誤り訂正符号を生成する誤り検出・訂正手段と、
    プログラムすべきデータおよび前記誤り訂正符号を前記メモリアレイの選択ページにプログラムするプログラム手段とを含み、
    前記プログラム手段は、
    プログラムすべきデータによりプログラムされるビット数が前記誤り検出・訂正手段により救済可能な救済ビット数以下であるとき、選択ページのレギュラー領域にプログラムをすることなくスペア領域に前記誤り訂正符号をプログラムすることで選択ページのプログラムを終了する、半導体記憶装置。
  5. 前記プログラム手段はさらに、前記プログラムすべきデータによりプログラムされるビット数が救済ビット数より多いとき、選択ページのレギュラー領域にプログラムすべきデータをプログラムする、請求項4に記載の半導体記憶装置。
  6. 前記プログラム手段はさらに、選択ページにプログラムパルスを印加し、選択ページのプログラムが不合格であると判定したとき、プログラムパルスの印加回数がプログラムの許容最大値よりも小さい最適値に到達していない場合には、選択ページにさらにプログラムパルスを印加し、プログラムパルスの印加回数が前記最適値に到達している場合には、選択ページが予め決められた不合格ビット数であれば疑似合格と判定する処理を実行する、請求項5に記載の半導体記憶装置。
  7. 半導体記憶装置は、前記メモリアレイの選択ページのデータを読み出す手段を含み、
    前記誤り検出・訂正手段は、読み出された誤り訂正符号に基づき読み出されたデータの誤り検出・訂正を行う、請求項4ないし6いずれか1つに記載の半導体記憶装置。
JP2016214999A 2016-11-02 2016-11-02 半導体記憶装置 Expired - Fee Related JP6293846B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016214999A JP6293846B2 (ja) 2016-11-02 2016-11-02 半導体記憶装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016214999A JP6293846B2 (ja) 2016-11-02 2016-11-02 半導体記憶装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2015246083A Division JP6115740B1 (ja) 2015-12-17 2015-12-17 半導体記憶装置

Publications (2)

Publication Number Publication Date
JP2017111849A JP2017111849A (ja) 2017-06-22
JP6293846B2 true JP6293846B2 (ja) 2018-03-14

Family

ID=59080922

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016214999A Expired - Fee Related JP6293846B2 (ja) 2016-11-02 2016-11-02 半導体記憶装置

Country Status (1)

Country Link
JP (1) JP6293846B2 (ja)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4261461B2 (ja) * 2004-11-05 2009-04-30 株式会社東芝 半導体集積回路装置、及びそれを用いた不揮発性メモリシステム
KR101022882B1 (ko) * 2009-06-12 2011-03-16 주식회사 하이닉스반도체 불휘발성 메모리 장치의 동작 방법
JP6131207B2 (ja) * 2014-03-14 2017-05-17 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置

Also Published As

Publication number Publication date
JP2017111849A (ja) 2017-06-22

Similar Documents

Publication Publication Date Title
KR101368375B1 (ko) 소거된 섹터 검출 메커니즘
US7508704B2 (en) Non-volatile semiconductor storage system
US7751238B2 (en) Memory system protected from errors due to read disturbance and reading method thereof
CN107045889B (zh) 半导体存储装置、其擦除方法及编程方法
US8069382B2 (en) Memory cell programming
US8154924B2 (en) Nonvolatile memory device and read method
US10395753B2 (en) Semiconductor memory device and programming method thereof
JP6131207B2 (ja) 半導体記憶装置
JP2007520801A (ja) 書き込み/消去失敗検出機構を有するフラッシュ記憶システム
JP6115740B1 (ja) 半導体記憶装置
JP2008027511A (ja) 半導体記憶装置およびその制御方法
JP6088675B1 (ja) 半導体記憶装置
CN107305786B (zh) 非易失性半导体存储装置
KR101651573B1 (ko) 반도체 기억장치 및 그 프로그래밍 방법
JP6293846B2 (ja) 半導体記憶装置
JP6371423B2 (ja) 半導体記憶装置
JP5710815B1 (ja) 半導体記憶装置
TWI521530B (zh) 半導體記憶裝置及其編程方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171122

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171205

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180115

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180213

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180214

R150 Certificate of patent or registration of utility model

Ref document number: 6293846

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250