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

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

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

<>
  • 特許6131207-半導体記憶装置 図000002
  • 特許6131207-半導体記憶装置 図000003
  • 特許6131207-半導体記憶装置 図000004
  • 特許6131207-半導体記憶装置 図000005
  • 特許6131207-半導体記憶装置 図000006
  • 特許6131207-半導体記憶装置 図000007
  • 特許6131207-半導体記憶装置 図000008
  • 特許6131207-半導体記憶装置 図000009
  • 特許6131207-半導体記憶装置 図000010
  • 特許6131207-半導体記憶装置 図000011
  • 特許6131207-半導体記憶装置 図000012
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6131207
(24)【登録日】2017年4月21日
(45)【発行日】2017年5月17日
(54)【発明の名称】半導体記憶装置
(51)【国際特許分類】
   G11C 16/06 20060101AFI20170508BHJP
   G11C 16/04 20060101ALI20170508BHJP
   G11C 29/42 20060101ALI20170508BHJP
【FI】
   G11C17/00 639C
   G11C17/00 622E
   G11C29/00 631D
【請求項の数】6
【全頁数】13
(21)【出願番号】特願2014-51227(P2014-51227)
(22)【出願日】2014年3月14日
(65)【公開番号】特開2015-176616(P2015-176616A)
(43)【公開日】2015年10月5日
【審査請求日】2014年3月14日
【審判番号】不服2016-1565(P2016-1565/J1)
【審判請求日】2016年2月3日
(73)【特許権者】
【識別番号】511062254
【氏名又は名称】ウィンボンド エレクトロニクス コーポレーション
(74)【代理人】
【識別番号】100098497
【弁理士】
【氏名又は名称】片寄 恭三
(72)【発明者】
【氏名】山内 一貴
【合議体】
【審判長】 辻本 泰隆
【審判官】 須田 勝巳
【審判官】 石井 茂和
(56)【参考文献】
【文献】 特開2006−209969(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G11C 16/00
G11C 29/00
G06F 12/16
G06F 11/10
(57)【特許請求の範囲】
【請求項1】
メモリアレイと、
前記メモリアレイから読み出したデータを保持し、または前記メモリアレイに書込むデータを保持するデータ保持手段と、
入力手段と、
データの誤り検出訂正を行う誤り検出訂正手段と、
前記入力手段からの入力データを前記データ保持手段および前記誤り検出訂正手段に並列に供給する供給手段と、
前記誤り検出訂正手段が前記供給手段からのデータを処理することにより生成された誤り訂正符号を前記データ保持手段に書込む書込み手段と、
前記データ保持手段と前記誤り検出訂正手段との間で双方向のデータ転送を可能にする並列に接続された複数の転送用トランジスタを含むデータ転送手段と、
外部からのコマンドに基づきプログラム動作および読出し動作を制御する制御手段とを有し、
前記供給手段は、前記入力手段と前記誤り検出訂正手段との間に並列に接続された複数の供給用トランジスタを含み、
前記制御手段は、前記入力手段から入力データが入力されるとき、前記転送用トランジスタの各ゲートに共通に接続される第1のゲート信号を介して前記転送用トランジスタを非導通にさせ、かつ前記供給用トランジスタの各ゲートに共通に接続される第2のゲート信号を介して前記供給用トランジスタを導通させ、読出し動作が行われるとき、前記第1のゲート信号を介して前記転送用トランジスタを導通させ、かつ前記第2のゲート信号を介して前記供給用トランジスタをオフさせ、
前記データ保持手段は、前記メモリアレイから読み出したデータまたは前記メモリアレイに書込むデータを保持するレギュラー領域と、前記レギュラー領域に保持されるデータの誤り訂正符号を保持するスペア領域とを含み、前記書込み手段は、プログラム動作が行われるとき、前記スペア領域に前記誤り訂正符号を書込み、
さらに前記データ転送手段は、前記誤り訂正符号が書込まれたスペア領域のデータを前記誤り検出訂正手段に転送し、前記書込み手段は、前記スペア領域のデータの誤り訂正符号を前記スペア領域に書込む、半導体記憶装置。
【請求項2】
半導体記憶装置はさらに、前記書込み手段により誤り訂正符号が書込みされた後、前記データ保持手段に保持されたデータをメモリアレイにプログラムするプログラム手段を含む、請求項1に記載の半導体記憶装置。
【請求項3】
前記データ保持手段が複数のセクタに分割されるとき、前記供給手段は、前記供給用トランジスタを介してセクタ単位のデータを前記誤り検出訂正手段へ提供し、前記誤り検出訂正手段は、セクタ単位のデータの誤り検出訂正を行う、請求項1または2に記載の半導体記憶装置。
【請求項4】
前記書込み手段は、前記セクタ単位の誤り訂正符号を、前記セクタに割り当てられた前記データ保持手段のスペア領域に書込む、請求項1に記載の半導体記憶装置。
【請求項5】
前記メモリアレイは、NAND型メモリアレイである、請求項1ないしいずれか1つに記載の半導体記憶装置。
【請求項6】
NAND型フラッシュメモリの誤り検出訂正方法であって、
外部から入力されたコマンドに基づきプログラム動作か読出し動作かを判定するステップと、
プログラム動作のコマンドであると判定されたとき、外部端子から入力された複数のセクタのプログラムデータをページバッファおよび誤り検出訂正回路に並列にロードし、かつ前記ページバッファと前記誤り検出訂正回路との間の転送回路を非導通にして前記ページバッファから前記誤り検出訂正回路へプログラムデータが転送されないようにするステップと、
前記誤り検出訂正回路は、ページバッファの1つのセクタと等しいバイト数のデータの誤り訂正符号を生成することが可能であり、前記誤り検出訂正回路は、セクタ単位でプログラムデータ誤り訂正符号を生成し、前記誤り検出訂正回路によって生成された誤り訂正符号を前記ページバッファの誤り検出訂正されたセクタの対応するスペア領域に書込む第1の書込みステップと、
前記スペア領域のデータを前記転送回路を介して前記誤り検出訂正回路に転送し、前記誤り検出訂正回路は、転送された前記スペア領域のデータの誤り訂正符号を生成し、前記スペア領域のデータの誤り訂正符号を前記スペア領域に書込む第2の書込みステップと、
全てのセクタのプログラムデータの誤り訂正符号の生成が終了するまで上記第1の書込みステップおよび第2の書込みステップを行い、全てのセクタのプログラムデータの誤り訂正符号の生成が終了した後、前記ページバッファに保持されたプログラムデータおよび前記誤り訂正符号をメモリアレイの選択されたページにプログラムするステップと、
読出し動作のコマンドであると判定されたとき、メモリアレイの選択されたページから読み出されたデータを前記ページバッファへ転送し、前記転送回路を導通させて前記ページバッファから前記誤り検出訂正回路へ各セクタの読出しデータおよび前記スペア領域の誤り訂正符号の転送を可能にし、かつ前記誤り検出訂正回路によって誤り検出訂正されたデータが前記転送回路を介して前記ページバッファへ転送されることを可能にし、全てのセクタの誤り訂正が終了した後、前記ページバッファに保持された読出しデータを前記外部端子を介して出力させるステップと、を有する誤り検出訂正方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、半導体記憶装置の入出力データの誤り検出訂正に関し、特に、NAND型フラッシュメモリの入力データの誤り検出訂正ならびにプログラムに関する。
【背景技術】
【0002】
フラッシュメモリ、DRAM等の半導体メモリでは、集積度が年々増加し、不良または欠陥のない記憶素子を製造することは難しくなっている。このため、メモリチップ上には、製造工程中に発生する記憶素子の物理的な欠陥を見かけ上救済するための冗長スキームが利用される。例えば、ある冗長スキームでは、冗長メモリを設けることで、物理的な欠陥のある記憶素子を救済している。また、半導体メモリには、冗長メモリによる物理的な救済以外に、ソフトエラー対策として誤り検出訂正回路(ECC:Error Checking Correction)が用いられる。
【0003】
NAND型フラッシュメモリでは、データのプログラムや消去が繰り返されることで、トンネル絶縁膜の劣化により電荷保持特性が悪化したり、トンネル絶縁膜にトラップされた電荷によりしきい値変動が生じ、ビットエラーを引き起こす。特許文献1では、このようなビットエラー対策として、誤り検出訂正回路を搭載している。特に、ブロック選択トランジスタに近いセルでは、リソグラフィによるパターンのバラツキ、拡散層形成時のイオン注入のバラツキによって、ビットエラー率が高くなる傾向にあり、これをより多く救済可能にするためのECCコードを格納している。
【0004】
また、NAND型フラッシュメモリには、1つのメモリセルに1ビットのデータを格納するものに加えて、1つのメモリセルにマルチビットのデータを格納するものがある。特許文献2は、このようなマルチビットのデータのエラー訂正のスキームを開示している。さらに特許文献3は、入力されたデータにECCパリティを付加してECC符号を生成し、生成されたECC符号を物理ブロックに書込み、物理ブロックより読み出したページデータにエラーがあるときECC符号によってエラーを訂正し、訂正したエラー数が閾値以上の物理ブロックを警告ブロックとしてテーブルに登録し、データ書込み時に警告ブロックの選択の優先順位を下げるフラッシュメモリを開示している。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2010−152989号公報
【特許文献2】特開2008−165805号公報
【特許文献3】特開2010−79486号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
図1に、従来のECC回路をオンチップで搭載するNAND型フラッシュメモリのプログラム動作例を説明する。外部入出力端子から入力されたプログラムデータは、ページバッファ/センス回路400へロードされる。ロードが終了すると、次に、転送回路410によってページバッファ/センス回路400に保持されたプログラムデータがECC回路420へ転送される。転送回路410は、例えば、双方向のデータ転送が可能な複数の転送用トランジスタを含み、各トランジスタは、ゲートに共通接続された制御信号TGによって駆動される。ECC回路420は、受け取ったデータについてECC演算を行い、そこで生成された誤り訂正符号(エラーコード)を生成する。生成された誤り訂正符号は、ECC回路420によってページバッファ/センス回路400の所定領域に書き戻される。その後、ページバッファ/センス回路400は、入力されたプログラムデータおよび誤り訂正符号を、メモリアレイの選択されたページにプログラムしている。
【0007】
しかしながら、ページバッファ/センス回路400からECC回路420へのプログラムデータの転送時間は、比較的大きくなり得る。仮に、ページバッファ/センス回路400がセクタ単位でデータを受け取り、ECC回路420がセクタ単位のデータについてECC処理をするならば、ページバッファ/センス回路400のすべてのセクタの転送が終了するまでプログラムデータをプログラムすることができない。また、高集積化に伴い1ページ当たりのビット数が増加すれば、それに比例してデータ転送時間ならびにECC回路の演算に要する時間も増加する。それ故、結果として、プログラムデータをメモリアレイにプログラムするまでに時間がかかってしまう。
【0008】
本発明は、上記従来の課題を解決するものであり、データの信頼性を維持しつつプログラムの高速化を図ることができる半導体記憶装置を提供する。
【課題を解決するための手段】
【0009】
本発明に係る半導体記憶装置は、メモリアレイと、前記メモリアレイから読み出したデータを保持し、または前記メモリアレイに書込むデータを保持するデータ保持手段と、入力手段と、データの誤り検出訂正を行う誤り検出訂正手段と、前記入力手段からの入力データを前記データ保持手段および前記誤り検出訂正手段に並列に供給する供給手段と、前記誤り検出訂正手段が前記供給手段からのデータを処理することにより生成された誤り訂正符号を前記データ保持手段に書込む書込み手段とを有する。
【0010】
好ましくは半導体記憶装置はさらに、前記誤り検出訂正手段により誤り訂正符号が書込みされた後、前記データ保持手段に保持されたデータをメモリアレイにプログラムするプログラム手段を含む。好ましくは前記供給手段は、前記プログラム手段によってプログラムが実行されるとき、前記入力手段に入力されたデータを前記誤り検出訂正手段に供給する。好ましくは前記データ保持手段が複数のセクタに分割されるとき、前記供給手段は、セクタ単位のデータを前記誤り検出訂正手段へ提供し、前記誤り訂正手段は、セクタ単位のデータの誤り検出訂正を行う。好ましくは半導体記憶装置はさらに、前記データ保持手段と前記誤り検出訂正手段との間にデータ転送手段を含み、前記データ転送手段は、読出し動作が行われるとき、前記データ保持手段に保持されたデータを前記誤り検出訂正手段に転送し、プログラム動作が行われるとき、前記保持データ保持手段に保持されたデータを前記誤り検出訂正手段に転送しないように制御される。好ましくは半導体記憶装置はさらに、外部からのコマンドに基づきプログラム動作および読出し動作を制御する制御手段を含み、前記供給手段は、前記制御手段によって制御される。好ましくは前記データ転送手段は、前記制御手段によって制御される。好ましくは前記メモリアレイは、NAND型メモリアレイである。
【0011】
本発明に係るNAND型フラッシュメモリのプログラム方法は、外部端子から入力されたプログラムデータをページバッファおよび誤り検出訂正回路に並列にロードし、前記誤り検出訂正回路によって生成された誤り訂正符号を前記プログラムデータに関連付けして前記ページバッファに書込み、前記ページバッファに保持されたプログラムデータおよび前記誤り訂正符号をメモリアレイの選択されたページにプログラムする。好ましくはプログラム方法はさらに、外部から入力されたコマンドに基づきプログラム動作か否かを判定し、プログラム動作であることが判定されたとき、外部端子から入力されたプログラムデータを前記誤り訂正回路にロードさせる。
【発明の効果】
【0012】
本発明によれば、入力データをデータ保持手段および誤り訂正手段に並列にロードさせ、誤り訂正手段により生成された誤り訂正符号をデータ保持手段に書き込むようにしたので、データ保持手段から誤り訂正手段への実質的なデータ転送が不要となり、プログラム時間の短縮を図ることができる。
【図面の簡単な説明】
【0013】
図1】従来のNAND型フラッシュメモリの入力データの動作を説明する図である。
図2】本発明の実施例に係るNAND型フラッシュメモリの全体の概略構成を示す図である。
図3】本発明の実施例に係るメモリセルアレイのNANDストリングの構成を示す回路図である。
図4】本発明の実施例に係るフラッシュメモリのプログラム時に各部に印加される電圧の一例を示す図である。
図5】本発明の実施例に係るフラッシュメモリに入力されるデータのフローを説明する図である。
図6】本発明の実施例に係るフラッシュメモリの入出力バッファの一例を示す図である。
図7】本発明の実施例によるレギュラー領域のデータのECC処理を説明する図である。
図8】本発明の実施例によるレギュラー領域のデータのECC処理を説明する図である。
図9】本発明の実施例によるスペア領域のデータのECC処理を説明する図である。
図10】従来のフラッシュメモリのプログラム動作時のECC処理を説明するフローチャートである。
図11】本発明の実施例に係るフラッシュメモリのプログラム動作時のECC処理を説明するフローチャートである。
【発明を実施するための形態】
【0014】
次に、本発明の実施の形態について図面を参照して詳細に説明する。ここでは、好ましい形態としてNAND型のフラッシュメモリを例示する。なお、図面は、分かり易くするために各部を強調して示してあり、実際のデバイスのスケールとは異なることに留意すべきである。
【実施例】
【0015】
本発明の実施例に係るフラッシュメモリの典型的な構成を図2に示す。但し、ここに示すフラッシュメモリの構成は例示であり、本発明は、必ずしもこのような構成に限定されるものではない。本実施例のフラッシュメモリ10は、複数のメモリセルが行列状に配列されたメモリアレイ100と、外部入出力端子I/Oに接続され入出力データを保持する入出力バッファ110と、メモリアレイ100にプログラムするデータやそこから読み出されたデータの誤り検出・訂正を行うECC回路120と、入出力バッファ110からのアドレスデータを受け取るアドレスレジスタ130と、入出力バッファ110からのコマンドデータや外部からの制御信号を受け取り、各部を制御する制御部140と、アドレスレジスタ130から行アドレス情報Axを受け取り、行アドレス情報Axをデコードし、デコード結果に基づきブロックの選択およびワード線の選択等を行うワード線選択回路150と、ワード線選択回路150によって選択されたページから読み出されたデータを保持したり、選択されたページへの書込みデータを保持するページバッファ/センス回路160と、アドレスレジスタ130から列アドレス情報Ayを受け取り、列アドレス情報Ayをデコードし、当該デコード結果に基づきページバッファ/センス回路160内のデータの選択等を行う列選択回路170と、データの読出し、プログラムおよび消去等のために必要な種々の電圧(書込み電圧Vpgm、パス電圧Vpass、読出しパス電圧Vread、消去電圧Versなど)を生成する内部電圧発生回路180とを含んで構成される。
【0016】
メモリアレイ100は、列方向に配置されたm個のメモリブロックBLK(0)、BLK(1)、・・・、BLK(m-1)を有する。ブロックBLK(0)に近接して、ページバッファ/センス回路160が配置される。このような構成以外にも、ページバッファ/センス回路160は、ブロックの他方の端部、あるいは両側の端部に配置されるものであってもよい。
【0017】
1つのメモリブロックには、図2に示すように、複数のメモリセルを直列に接続したNANDストリングユニットNUが複数形成され、1つのメモリブロック内にn+1個のストリングユニットNUが行方向に配列されている。セルユニットNUは、直列に接続された複数のメモリセルMCi(i=0、1、・・・、31)と、一方の端部であるメモリセルMC31のドレイン側に接続された選択トランジスタTDと、他方の端部であるメモリセルMC0のソース側に接続された選択トランジスタTSとを含み、選択トランジスタTDのドレインは、対応する1つのビット線GBLに接続され、選択トランジスタTSのソースは、共通のソース線SLに接続される。
【0018】
メモリセルMCiのコントロールゲートは、ワード線WLiに接続され、選択トランジスタTD、TSのゲートは、ワード線WLと並行する選択ゲート線SGD、SGSに接続される。ワード線選択回路150は、行アドレスAxまたは変換されたアドレスに基づきブロックを選択するとき、ブロックの選択ゲート信号SGS、SGDを介して選択トランジスタTD、TSを選択的に駆動する。図3は、典型的なセルユニットの構成を示しているが、セルユニットは、NANDストリング内に1つまたは複数のダミーセルを包含するものであってもよい。
【0019】
メモリセルは、典型的に、Pウエル内に形成されたN型の拡散領域であるソース/ドレインと、ソース/ドレイン間のチャンネル上に形成されたトンネル酸化膜と、トンネル酸化膜上に形成されたフローティングゲート(電荷蓄積層)と、フローティングゲート上に誘電体膜を介して形成されたコントロールゲートとを含むMOS構造を有する。フローティングゲートに電荷が蓄積されていないとき、つまりデータ「1」が書込まれているとき、しきい値は負状態にあり、メモリセルは、ノーマリオンである。フローティングゲートに電子が蓄積されたとき、つまりデータ「0」が書込まれているとき、しきい値は正にシフトし、メモリセルは、ノーマリオフである。但し、メモリセルは、1ビット(2値データ)を記憶するSLCタイプでもよいし、多ビットを記憶するMLCタイプであってもよい。
【0020】
図4は、フラッシュメモリの各動作時に印加されるバイアス電圧の一例を示したテーブルである。読出し動作では、ビット線に或る正の電圧を印加し、選択されたワード線に或る電圧(例えば0V)を印加し、非選択ワード線にパス電圧Vpass(例えば4.5V)を印加し、選択ゲート線SGD、SGSに正の電圧(例えば4.5V)を印加し、ビット線選択トランジスタTD、ソース線選択トランジスタTSをオンし、共通ソース線に0Vを印加する。プログラム(書込み)動作では、選択されたワード線に高電圧のプログラム電圧Vprog(15〜20V)を印加し、非選択のワード線に中間電位(例えば10V)を印加し、ビット線選択トランジスタTDをオンさせ、ソース線選択トランジスタTSをオフさせ、「0」または「1」のデータに応じた電位をビット線GBLに供給する。消去動作では、ブロック内の選択されたワード線に0Vを印加し、Pウエルに高電圧(例えば20V)を印加し、フローティングゲートの電子を基板に引き抜くことで、ブロック単位でデータを消去する。
【0021】
図5に、本実施例のフラッシュメモリ10の外部入出力端子から入力されるデータの流れを示す。プログラム動作時、入出力バッファ110から提供された入力データDiは、ページバッファ/センス回路160およびECC回路120へ並列にロードされる。
【0022】
ECC回路120は、入力データDiを演算することにより、入力データDiの誤り検出訂正に必要な誤り訂正符号またはパリティビットを生成する。ECCの演算は、例えば、ハミングコードやリード・ソロモンなどの公知の手法によって行われ、入力されたkビットまたはkバイトの入力データDiをp=k+qに変換する。本明細書では、「q」を、入力データDiの誤り検出訂正に必要な誤り訂正符号またはパリティビットと称する。1つの好ましい例では、ECC回路120は、誤り訂正符号をページバッファ/センス回路160のスペア領域に書込むための書込み回路を包含することができる。但し、この構成は一例であり、これに限定されるものではない。例えば、ECC120とは別個に、誤り訂正符号を書込むための書込み回路が用意されてもよいし、転送回路200がそのような書込み回路を包含することも可能である。
【0023】
ページバッファ/センス回路160とECC回路120との間には、転送回路200が設けられる。転送回路200は、複数の並列に接続された転送用トランジスタを含み、各転送用トランジスタのゲートには、駆動信号TGが共通に接続される。駆動信号TGは、制御部140によって駆動を制御され、Hレベルの駆動信号TGにより転送用トランジスタが一斉にオンし、ページバッファ/センス回路160とECC回路120との間で双方向のデータ転送が可能になる。本実施例において留意すべき点は、転送回路200が、読出し動作時にページバッファ/センス回路160とECC回路120間の双方向のデータ転送を可能にし、プログラム動作時にページバッファ/センス回路160とECC回路120間の実質的なプログラムデータの転送を行わないことである。
【0024】
プログラム動作時、入出力バッファ110からの入力データDiは、ページバッファ/センス回路160およびECC回路120のそれぞれに供給される。図6は、入出力バッファ110の部分的な内部構成の一例を示している。入出力バッファ110は、複数の出力バッファ112と、複数の出力バッファ112の出力にそれぞれ接続された切替回路114とを含む。切替回路114は、複数のトランジスタを含み、トランジスタの一端が出力バッファ112に接続され、その他端がECC回路に接続され、そのゲートに切替信号SWが接続される。切替信号SWは、制御部140によって駆動を制御される。すなわち、外部から入力されたプログラムコマンドが制御部140によって解読されるとき、切替信号がHレベルに駆動され、トランジスタが一斉にオンされ、出力バッファ112からの入力データDiがECC回路120へ供給される。プログラム動作時以外は、切替信号SWはLレベルに駆動され、出力バッファ112は、ECC回路120から切り離される。
【0025】
ページバッファ/センス回路160およびECC回路120への入力データDiの転送は、実質的に同じタイミングで終了される。データ転送が終了すると、ECC回路120は、ECC演算を行い、そこで生成された誤り訂正符号(パリティビット)をページバッファ/センス回路160の所定領域に書込む。この間、転送回路200によるページバッファ/センス回路160からECC回路120への入力データDiの転送は行われない。
【0026】
ECC回路120による誤り訂正符号のページバッファ/センス回路160への書込みが終了すると、次に、ページバッファ/センス回路160に保持された入力データDiおよび誤り訂正符号の1ページ分のデータがメモリアレイ100の選択されたページにプログラムされる。
【0027】
一方、読出動作時、メモリアレイ100の選択されたページから読み出されたデータがページバッファ/センス回路160に転送される。次に、ページバッファ/センス回路160に保持されたデータが転送回路200によってECC回路120へ転送される。ECC回路120は、誤り訂正符号に基づきプログラム不良の有無、または読出し不良の有無を判定し、不良による誤りがあれば、誤り訂正符号を用いてデータを訂正する。ECC処理されたデータは、再び、転送回路200によりページバッファ/センス回路160へ転送され、次いで、入出力バッファ110を介して外部へ出力される。
【0028】
本実施例では、プログラム動作時に、外部入出力端子から入力されたデータが、ページバッファ/センス回路160とECC回路120に並列にロードされるため、ページバッファ/センス回路160からECC回路120への事実上のデータ転送を省略することができ、これにより、プログラムに要する時間を大幅に短縮することができる。
【0029】
次に、本実施例のより好ましい態様を図7ないし図11を用いて説明する。フラッシュメモリ10の外部入出力端子は、×1、×4、×8などの構成が可能であるが、ここでは、フラッシュメモリ10が、×8の外部入出力端子を有するときのプログラム動作時の入力データの処理を説明する。図7に示すように、外部入出力端子P0〜P7は、I/Oバッファ110−1〜110−7にそれぞれ接続される。プログラム動作時、外部入出力端子P0〜P7に入力されたデータは、I/Oバッファ110−0〜110−7に並列に入力される。
【0030】
ページバッファ/センス回路160は、セクタ0〜セクタ7の8つのセクタに分割されたレギュラー領域300と、スペア0、スペア1、スペア2、スペア3の4つのセクタに分割されたスペア領域310とを有する。
【0031】
レギュラー領域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のパリティビットを記憶する。
【0032】
レギュラー領域300の1つのセクタには、8つの外部入出力端子P−0〜P7、すなわち入出力バッファ110−0〜110−7が割り当てられる。つまり、1つの外部入出力端子には256ビットが割り当てられる(256bit×8=1セクタ)。図2に示す列選択回路170は、プログラム動作時に受け取った列アドレス情報Ayをデコードし、当該デコード結果に基づき、外部入出力端子P−0〜P7に入力されたデータがロードされるセクタを選択する。図7は、外部入出力端子P−0〜P−7で受け取られたデータが列アドレス情報Ayに従いセクタ0にロードされる例を示し、図8は、外部入出力端子P−0〜P−7で受け取られたデータが列アドレス情報Ayに従いセクタ7にロードされる例を示している。
【0033】
プログラム動作時、入出力バッファ110−0〜110−7は、切替回路114が導通することで、ページバッファ/センス回路160およびECC回路/書込み回路120Aのそれぞれにプログラムデータを出力する。このとき、駆動信号TGはLレベルに駆動され、転送回路200は、レギュラー領域300のプログラムデータを転送しない。
【0034】
ここに示す例では、ECC回路/書込み回路120Aが誤り訂正符号を書込むための書込み回路を含む。好ましくは、ECC回路は、レギュラー領域300の1つのセクタと等しいバイト数のデータについてECC演算を行うことができる。レギュラー領域300の1つのセクタが256バイトであれば、ECC回路は、256バイトのデータについてECC演算を行い、その誤り訂正符号を生成する。
【0035】
ECC回路/書込み回路120Aは、生成された誤り訂正符号をスペア領域310の対応するセクタの領域313または314に書込む。図7に示す例では、プログラムデータがレギュラー領域300のセクタ0にロードされるので、誤り訂正符号は、スペア0のセクタ0のパリティを記憶する領域313に書込まれる。図8に示す例では、プログラムデータDiがセクタ7にロードされるので、その誤り訂正符号は、スペア3のセクタ7のパリティを記憶する領域314に書込まれる。
【0036】
図9に、スペア領域310のデータのECC処理を例示する。レギュラー領域300の各セクタについてECC処理が終了すると、次に、スペア領域310の各セクタについてECC処理が行われる。スペア領域310の1つセクタ内に含まれるどのデータのECC処理を行うかは任意であるが、本例では、領域312ないし領域314のデータについてECC処理を行うものとする。それ故、転送回路200は、スペア0の領域312ないし領域314のデータを、ECC回路/書込み回路120Aに転送する。そして、ECC処理によって生成された誤り訂正符号は、ECC回路/書込み回路120Aによってスペア0の領域315に書込まれる。同様の処理が、他のスペア1ないしスペア3についても行われる。
【0037】
図10に、従来のECC処理フローを示し、図11に、本実施例のECC処理フローを示す。初めに、従来のECC処理動作を説明する。外部コントローラからフラッシュメモリ10に対し、外部制御信号、ならびにコマンドデータ、アドレスデータおよびプログラムデータが供給される。制御部140は、外部制御信号およびコマンドデータに基づきプログラム動作を開始する。
【0038】
外部入出力端子および入出力バッファ110を介してプログラムデータ(入力データDi)がページバッファ/センス回路160へロードされると(S100)、制御部140の制御下においてプログラムシーケンスが開始される(S102)。ページバッファ/センス回路160に保持されたセクタ0のデータが転送回路200によりECC回路120へ転送される(S104)。次に、ECC回路120においてECC演算が実行され、そこで生成されたパリティビットがページバッファ/センス回路160のスペア領域310に書き込まれる(S108)。
【0039】
次に、ECCが未処理のセクタがあるか否かが制御部14によって判定される(S110)。こうして、ページバッファ/センス回路160のすべてのセクタのデータがECC処理され、セクタ毎のパリティビットがスペア領域310の対応するセクタの領域313、314に書き込まれる。なお、NAND型のフラッシュメモリは、ページ単位でプログラムが行われるが、入力されるプログラムデータのサイズは、必ずしも1ページ、すなわち図7に示すレギュラー領域300の8つのセクタのサイズに等しいことを要しない。例えば、プログラムデータのサイズは、1つのセクタのサイズであることができる。通常、プログラムディスターブの観点から、同一ページに連続してプログラムすることが許される回数(NOP(Number of Program))には制限があり、そのNOPに応じて1つのページデータを分割してプログラムすることが可能である。NOPが4であるとき、1つのページデータは、例えば、2セクタ、1セクタ、3セクタ、2セクタに分けてフラッシュメモリ10に入力することが可能である。
【0040】
レギュラー領域のECC処理が終了すると、次に、スペア領域のECC処理が実行される。図9に示すように、スペア領域310のスペア0のデータが転送回路200によってECC回路/書込み回路120Aへ転送される(S112)。そこでECC処理が実行された後(S114)、生成されたパリティビットが書込み回路によってスペア0の領域315に書込まれる(S116)。ECCが未処理のセクタがあるか否かが判定され(S118)、そのようなセクタがあればステップS112からS116が繰り返される。こうして、スペア領域310のすべてのセクタのECC処理が実行される。ページバッファ/センス回路160のレギュラー領域300およびスペア領域310に保持されたすべてのデータのECC処理が終了すると、ページバッファ/センス回路160に保持されたデータがメモリアレイの選択されたページにプログラムされる(S120)。
【0041】
一方、本実施例のフラッシュメモリ10では、図11に示すように、プログラムデータがページバッファ/センス回路160とECC回路/書込み回路120Aにロードされる(S200)。ロードが完了すると、プログラムシーケンスが開始される(S202)。
【0042】
プログラムデータのロードが終了するや否や、ECC回路/書込み回路120AによりECC処理が実行され(S204)、生成されたパリティビットは、ECC回路/書込み回路120Aによってスペア領域310の領域313に書込まれる。仮に、プログラムデータがセクタ0からセクタ7までロードされるならば、セクタ0からセクタ7までのプログラムデータのECC演算が連続的に行われ、かつ生成されたパリティビットがスペア領域310の対応するセクタの領域313または314に書込まれる。
【0043】
外部入出力端子からのプログラムデータの入力が終了するや否や、スペア領域310のスペア0のECC処理が開始される。スペア領域310のECC処理は、図10に示す従来の手法と変わらないので説明を省略する。
【0044】
このように本実施例によれば、プログラム動作時に、外部入出力端子から入力されたプログラムデータを、ページバッファ/センス回路160およびECC回路/書込み回路120Aの双方に並列にロードするようにしたので、従来のようにページバッファ/センス回路160からECC回路/書込み回路120Aへプログラムデータを転送する必要がなくなり、それに要する時間を省略することができる。従って、プログラムデータをECC処理する開始時間を早めることができる。結果として、プログラムデータを選択ページにプログラムする時間を短縮させることができる。
【0045】
本発明の好ましい実施の形態について詳述したが、本発明は、特定の実施形態に限定されるものではなく、特許請求の範囲に記載された発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【0046】
10:フラッシュメモリ 100:メモリアレイ
110:入出力バッファ 120:ECC回路
130:アドレスレジスタ 140:制御部
150:ワード線選択回路 160:ページバッファ/センス回路
180:列選択回路 190:内部電圧発生正回路
200:転送回路 300:レギュラー領域
310:スペア領域
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11