(57)【要約】【課題】  データの信頼性を維持しつつプログラム時間の短縮を図ることができる半導体記憶装置を提供する。【解決手段】  本発明のフラッシュメモリは、メモリアレイ１００と、ページバッファ／センス回路１６０と、外部入出力端子に接続された入出力バッファ１１０と、データの誤り検出訂正を行うＥＣＣ回路１２０とを有する。プログラム動作時、入出力バッファ１１０は、ページバッファ／センス回路１６０およびＥＣＣ回路１２０に並列にプログラムデータをロードさせ、ＥＣＣ回路１２０は、ＥＣＣ演算により生成されたパリティビットをページバッファ／センス回路１６０のスペア領域に書込む。ＥＣＣ処理の終了後、ページバッファ／センス回路１６０に保持されたデータが選択されたページにプログラムされる。【選択図】  図５
2015176616.tif 000002
【特許請求の範囲】
【請求項１】
メモリアレイと、
前記メモリアレイから読み出したデータを保持し、または前記メモリアレイに書込むデータを保持するデータ保持手段と、
入力手段と、
データの誤り検出訂正を行う誤り検出訂正手段と、
前記入力手段からの入力データを前記データ保持手段および前記誤り検出訂正手段に並列に供給する供給手段と、
前記誤り検出訂正手段が前記供給手段からのデータを処理することにより生成された誤り訂正符号を前記データ保持手段に書込む書込み手段と、
を有する半導体記憶装置。
【請求項２】
半導体記憶装置はさらに、前記誤り検出訂正手段により誤り訂正符号が書込みされた後、前記データ保持手段に保持されたデータをメモリアレイにプログラムするプログラム手段を含む、請求項１に記載の半導体記憶装置。
【請求項３】
前記供給手段は、前記プログラム手段によってプログラムが実行されるとき、前記入力手段に入力されたデータを前記誤り検出訂正手段に供給する、請求項１または２に記載の半導体記憶装置。
【請求項４】
前記データ保持手段が複数のセクタに分割されるとき、前記供給手段は、セクタ単位のデータを前記誤り検出訂正手段へ提供し、前記誤り訂正手段は、セクタ単位のデータの誤り検出訂正を行う、請求項１ないし３いずれか１つに記載の半導体記憶装置。
【請求項５】
半導体記憶装置はさらに、前記データ保持手段と前記誤り検出訂正手段との間にデータ転送手段を含み、前記データ転送手段は、読出し動作が行われるとき、前記データ保持手段に保持されたデータを前記誤り検出訂正手段に転送し、プログラム動作が行われるとき、前記保持データ保持手段に保持されたデータを前記誤り検出訂正手段に転送しないように制御される、請求項１ないし４いずれか１つに記載の半導体記憶装置。
【請求項６】
半導体記憶装置はさらに、外部からのコマンドに基づきプログラム動作および読出し動作を制御する制御手段を含み、前記供給手段は、前記制御手段によって制御される、請求項１ないし５いずれか１つに記載の半導体記憶装置。
【請求項７】
前記データ転送手段は、前記制御手段によって制御される、請求項５または６に記載の半導体記憶装置。
【請求項８】
前記メモリアレイは、ＮＡＮＤ型メモリアレイである、請求項１ないし７いずれか１つに記載の半導体記憶装置。
【請求項９】
ＮＡＮＤ型フラッシュメモリのプログラム方法であって、
外部端子から入力されたプログラムデータをページバッファおよび誤り検出訂正回路に並列にロードし、
前記誤り検出訂正回路によって生成された誤り訂正符号を前記プログラムデータに関連付けして前記ページバッファに書込み、
前記ページバッファに保持されたプログラムデータおよび前記誤り訂正符号をメモリアレイの選択されたページにプログラムする、プログラム方法。
【請求項１０】
プログラム方法はさらに、外部から入力されたコマンドに基づきプログラム動作か否かを判定し、
プログラム動作であることが判定されたとき、外部端子から入力されたプログラムデータを前記誤り訂正回路にロードさせる、請求項９に記載のプログラム方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体記憶装置の入出力データの誤り検出訂正に関し、特に、ＮＡＮＤ型フラッシュメモリの入力データの誤り検出訂正ならびにプログラムに関する。
【背景技術】
【０００２】
フラッシュメモリ、ＤＲＡＭ等の半導体メモリでは、集積度が年々増加し、不良または欠陥のない記憶素子を製造することは難しくなっている。このため、メモリチップ上には、製造工程中に発生する記憶素子の物理的な欠陥を見かけ上救済するための冗長スキームが利用される。例えば、ある冗長スキームでは、冗長メモリを設けることで、物理的な欠陥のある記憶素子を救済している。また、半導体メモリには、冗長メモリによる物理的な救済以外に、ソフトエラー対策として誤り検出訂正回路（ＥＣＣ：Error Checking Correction）が用いられる。
【０００３】
ＮＡＮＤ型フラッシュメモリでは、データのプログラムや消去が繰り返されることで、トンネル絶縁膜の劣化により電荷保持特性が悪化したり、トンネル絶縁膜にトラップされた電荷によりしきい値変動が生じ、ビットエラーを引き起こす。特許文献１では、このようなビットエラー対策として、誤り検出訂正回路を搭載している。特に、ブロック選択トランジスタに近いセルでは、リソグラフィによるパターンのバラツキ、拡散層形成時のイオン注入のバラツキによって、ビットエラー率が高くなる傾向にあり、これをより多く救済可能にするためのＥＣＣコードを格納している。
【０００４】
また、ＮＡＮＤ型フラッシュメモリには、１つのメモリセルに１ビットのデータを格納するものに加えて、１つのメモリセルにマルチビットのデータを格納するものがある。特許文献２は、このようなマルチビットのデータのエラー訂正のスキームを開示している。さらに特許文献３は、入力されたデータにＥＣＣパリティを付加してＥＣＣ符号を生成し、生成されたＥＣＣ符号を物理ブロックに書込み、物理ブロックより読み出したページデータにエラーがあるときＥＣＣ符号によってエラーを訂正し、訂正したエラー数が閾値以上の物理ブロックを警告ブロックとしてテーブルに登録し、データ書込み時に警告ブロックの選択の優先順位を下げるフラッシュメモリを開示している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−１５２９８９号公報
【特許文献２】特開２００８−１６５８０５号公報
【特許文献３】特開２０１０−７９４８６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
図１に、従来のＥＣＣ回路をオンチップで搭載するＮＡＮＤ型フラッシュメモリのプログラム動作例を説明する。外部入出力端子から入力されたプログラムデータは、ページバッファ／センス回路４００へロードされる。ロードが終了すると、次に、転送回路４１０によってページバッファ／センス回路４００に保持されたプログラムデータがＥＣＣ回路４２０へ転送される。転送回路４１０は、例えば、双方向のデータ転送が可能な複数の転送用トランジスタを含み、各トランジスタは、ゲートに共通接続された制御信号ＴＧによって駆動される。ＥＣＣ回路４２０は、受け取ったデータについてＥＣＣ演算を行い、そこで生成された誤り訂正符号（エラーコード）を生成する。生成された誤り訂正符号は、ＥＣＣ回路４２０によってページバッファ／センス回路４００の所定領域に書き戻される。その後、ページバッファ／センス回路４００は、入力されたプログラムデータおよび誤り訂正符号を、メモリアレイの選択されたページにプログラムしている。
【０００７】
しかしながら、ページバッファ／センス回路４００からＥＣＣ回路４２０へのプログラムデータの転送時間は、比較的大きくなり得る。仮に、ページバッファ／センス回路４００がセクタ単位でデータを受け取り、ＥＣＣ回路４２０がセクタ単位のデータについてＥＣＣ処理をするならば、ページバッファ／センス回路４００のすべてのセクタの転送が終了するまでプログラムデータをプログラムすることができない。また、高集積化に伴い１ページ当たりのビット数が増加すれば、それに比例してデータ転送時間ならびにＥＣＣ回路の演算に要する時間も増加する。それ故、結果として、プログラムデータをメモリアレイにプログラムするまでに時間がかかってしまう。
【０００８】
本発明は、上記従来の課題を解決するものであり、データの信頼性を維持しつつプログラムの高速化を図ることができる半導体記憶装置を提供する。
【課題を解決するための手段】
【０００９】
本発明に係る半導体記憶装置は、メモリアレイと、前記メモリアレイから読み出したデータを保持し、または前記メモリアレイに書込むデータを保持するデータ保持手段と、入力手段と、データの誤り検出訂正を行う誤り検出訂正手段と、前記入力手段からの入力データを前記データ保持手段および前記誤り検出訂正手段に並列に供給する供給手段と、前記誤り検出訂正手段が前記供給手段からのデータを処理することにより生成された誤り訂正符号を前記データ保持手段に書込む書込み手段とを有する。
【００１０】
好ましくは半導体記憶装置はさらに、前記誤り検出訂正手段により誤り訂正符号が書込みされた後、前記データ保持手段に保持されたデータをメモリアレイにプログラムするプログラム手段を含む。好ましくは前記供給手段は、前記プログラム手段によってプログラムが実行されるとき、前記入力手段に入力されたデータを前記誤り検出訂正手段に供給する。好ましくは前記データ保持手段が複数のセクタに分割されるとき、前記供給手段は、セクタ単位のデータを前記誤り検出訂正手段へ提供し、前記誤り訂正手段は、セクタ単位のデータの誤り検出訂正を行う。好ましくは半導体記憶装置はさらに、前記データ保持手段と前記誤り検出訂正手段との間にデータ転送手段を含み、前記データ転送手段は、読出し動作が行われるとき、前記データ保持手段に保持されたデータを前記誤り検出訂正手段に転送し、プログラム動作が行われるとき、前記保持データ保持手段に保持されたデータを前記誤り検出訂正手段に転送しないように制御される。好ましくは半導体記憶装置はさらに、外部からのコマンドに基づきプログラム動作および読出し動作を制御する制御手段を含み、前記供給手段は、前記制御手段によって制御される。好ましくは前記データ転送手段は、前記制御手段によって制御される。好ましくは前記メモリアレイは、ＮＡＮＤ型メモリアレイである。
【００１１】
本発明に係るＮＡＮＤ型フラッシュメモリのプログラム方法は、外部端子から入力されたプログラムデータをページバッファおよび誤り検出訂正回路に並列にロードし、前記誤り検出訂正回路によって生成された誤り訂正符号を前記プログラムデータに関連付けして前記ページバッファに書込み、前記ページバッファに保持されたプログラムデータおよび前記誤り訂正符号をメモリアレイの選択されたページにプログラムする。好ましくはプログラム方法はさらに、外部から入力されたコマンドに基づきプログラム動作か否かを判定し、プログラム動作であることが判定されたとき、外部端子から入力されたプログラムデータを前記誤り訂正回路にロードさせる。
【発明の効果】
【００１２】
本発明によれば、入力データをデータ保持手段および誤り訂正手段に並列にロードさせ、誤り訂正手段により生成された誤り訂正符号をデータ保持手段に書き込むようにしたので、データ保持手段から誤り訂正手段への実質的なデータ転送が不要となり、プログラム時間の短縮を図ることができる。
【図面の簡単な説明】
【００１３】
【図１】従来のＮＡＮＤ型フラッシュメモリの入力データの動作を説明する図である。
【図２】本発明の実施例に係るＮＡＮＤ型フラッシュメモリの全体の概略構成を示す図である。
【図３】本発明の実施例に係るメモリセルアレイのＮＡＮＤストリングの構成を示す回路図である。
【図４】本発明の実施例に係るフラッシュメモリのプログラム時に各部に印加される電圧の一例を示す図である。
【図５】本発明の実施例に係るフラッシュメモリに入力されるデータのフローを説明する図である。
【図６】本発明の実施例に係るフラッシュメモリの入出力バッファの一例を示す図である。
【図７】本発明の実施例によるレギュラー領域のデータのＥＣＣ処理を説明する図である。
【図８】本発明の実施例によるレギュラー領域のデータのＥＣＣ処理を説明する図である。
【図９】本発明の実施例によるスペア領域のデータのＥＣＣ処理を説明する図である。
【図１０】従来のフラッシュメモリのプログラム動作時のＥＣＣ処理を説明するフローチャートである。
【図１１】本発明の実施例に係るフラッシュメモリのプログラム動作時のＥＣＣ処理を説明するフローチャートである。
【発明を実施するための形態】
【００１４】
次に、本発明の実施の形態について図面を参照して詳細に説明する。ここでは、好ましい形態としてＮＡＮＤ型のフラッシュメモリを例示する。なお、図面は、分かり易くするために各部を強調して示してあり、実際のデバイスのスケールとは異なることに留意すべきである。
【実施例】
【００１５】
本発明の実施例に係るフラッシュメモリの典型的な構成を図２に示す。但し、ここに示すフラッシュメモリの構成は例示であり、本発明は、必ずしもこのような構成に限定されるものではない。本実施例のフラッシュメモリ１０は、複数のメモリセルが行列状に配列されたメモリアレイ１００と、外部入出力端子Ｉ／Ｏに接続され入出力データを保持する入出力バッファ１１０と、メモリアレイ１００にプログラムするデータやそこから読み出されたデータの誤り検出・訂正を行うＥＣＣ回路１２０と、入出力バッファ１１０からのアドレスデータを受け取るアドレスレジスタ１３０と、入出力バッファ１１０からのコマンドデータや外部からの制御信号を受け取り、各部を制御する制御部１４０と、アドレスレジスタ１３０から行アドレス情報Ａｘを受け取り、行アドレス情報Ａｘをデコードし、デコード結果に基づきブロックの選択およびワード線の選択等を行うワード線選択回路１５０と、ワード線選択回路１５０によって選択されたページから読み出されたデータを保持したり、選択されたページへの書込みデータを保持するページバッファ／センス回路１６０と、アドレスレジスタ１３０から列アドレス情報Ａｙを受け取り、列アドレス情報Ａｙをデコードし、当該デコード結果に基づきページバッファ／センス回路１６０内のデータの選択等を行う列選択回路１７０と、データの読出し、プログラムおよび消去等のために必要な種々の電圧（書込み電圧Vpgm、パス電圧Vpass、読出しパス電圧Vread、消去電圧Versなど）を生成する内部電圧発生回路１８０とを含んで構成される。
【００１６】
メモリアレイ１００は、列方向に配置されたｍ個のメモリブロックBLK(0)、BLK(1)、・・・、BLK(m-1)を有する。ブロックBLK(0)に近接して、ページバッファ／センス回路１６０が配置される。このような構成以外にも、ページバッファ／センス回路１６０は、ブロックの他方の端部、あるいは両側の端部に配置されるものであってもよい。
【００１７】
１つのメモリブロックには、図２に示すように、複数のメモリセルを直列に接続したＮＡＮＤストリングユニットＮＵが複数形成され、１つのメモリブロック内にｎ＋１個のストリングユニットＮＵが行方向に配列されている。セルユニットＮＵは、直列に接続された複数のメモリセルMCi(i=０、１、・・・、３１)と、一方の端部であるメモリセルMC31のドレイン側に接続された選択トランジスタTDと、他方の端部であるメモリセルMC0のソース側に接続された選択トランジスタTSとを含み、選択トランジスタTDのドレインは、対応する１つのビット線GBLに接続され、選択トランジスタTSのソースは、共通のソース線SLに接続される。
【００１８】
メモリセルMCiのコントロールゲートは、ワード線WLiに接続され、選択トランジスタTD、TSのゲートは、ワード線WLと並行する選択ゲート線SGD、SGSに接続される。ワード線選択回路１５０は、行アドレスＡｘまたは変換されたアドレスに基づきブロックを選択するとき、ブロックの選択ゲート信号SGS、SGDを介して選択トランジスタTD、TSを選択的に駆動する。図３は、典型的なセルユニットの構成を示しているが、セルユニットは、ＮＡＮＤストリング内に１つまたは複数のダミーセルを包含するものであってもよい。
【００１９】
メモリセルは、典型的に、Ｐウエル内に形成されたＮ型の拡散領域であるソース／ドレインと、ソース／ドレイン間のチャンネル上に形成されたトンネル酸化膜と、トンネル酸化膜上に形成されたフローティングゲート（電荷蓄積層）と、フローティングゲート上に誘電体膜を介して形成されたコントロールゲートとを含むＭＯＳ構造を有する。フローティングゲートに電荷が蓄積されていないとき、つまりデータ「１」が書込まれているとき、しきい値は負状態にあり、メモリセルは、ノーマリオンである。フローティングゲートに電子が蓄積されたとき、つまりデータ「０」が書込まれているとき、しきい値は正にシフトし、メモリセルは、ノーマリオフである。但し、メモリセルは、１ビット（２値データ）を記憶するＳＬＣタイプでもよいし、多ビットを記憶するＭＬＣタイプであってもよい。
【００２０】
図４は、フラッシュメモリの各動作時に印加されるバイアス電圧の一例を示したテーブルである。読出し動作では、ビット線に或る正の電圧を印加し、選択されたワード線に或る電圧（例えば０Ｖ）を印加し、非選択ワード線にパス電圧Vpass（例えば４．５Ｖ）を印加し、選択ゲート線SGD、SGSに正の電圧（例えば４．５Ｖ）を印加し、ビット線選択トランジスタTD、ソース線選択トランジスタTSをオンし、共通ソース線に０Ｖを印加する。プログラム（書込み）動作では、選択されたワード線に高電圧のプログラム電圧Vprog（１５〜２０Ｖ）を印加し、非選択のワード線に中間電位（例えば１０Ｖ）を印加し、ビット線選択トランジスタTDをオンさせ、ソース線選択トランジスタTSをオフさせ、「０」または「１」のデータに応じた電位をビット線GBLに供給する。消去動作では、ブロック内の選択されたワード線に０Ｖを印加し、Ｐウエルに高電圧（例えば２０Ｖ）を印加し、フローティングゲートの電子を基板に引き抜くことで、ブロック単位でデータを消去する。
【００２１】
図５に、本実施例のフラッシュメモリ１０の外部入出力端子から入力されるデータの流れを示す。プログラム動作時、入出力バッファ１１０から提供された入力データＤｉは、ページバッファ／センス回路１６０およびＥＣＣ回路１２０へ並列にロードされる。
【００２２】
ＥＣＣ回路１２０は、入力データＤｉを演算することにより、入力データＤｉの誤り検出訂正に必要な誤り訂正符号またはパリティビットを生成する。ＥＣＣの演算は、例えば、ハミングコードやリード・ソロモンなどの公知の手法によって行われ、入力されたｋビットまたはｋバイトの入力データＤｉをｐ＝ｋ＋ｑに変換する。本明細書では、「ｑ」を、入力データＤｉの誤り検出訂正に必要な誤り訂正符号またはパリティビットと称する。１つの好ましい例では、ＥＣＣ回路１２０は、誤り訂正符号をページバッファ／センス回路１６０のスペア領域に書込むための書込み回路を包含することができる。但し、この構成は一例であり、これに限定されるものではない。例えば、ＥＣＣ１２０とは別個に、誤り訂正符号を書込むための書込み回路が用意されてもよいし、転送回路２００がそのような書込み回路を包含することも可能である。
【００２３】
ページバッファ／センス回路１６０とＥＣＣ回路１２０との間には、転送回路２００が設けられる。転送回路２００は、複数の並列に接続された転送用トランジスタを含み、各転送用トランジスタのゲートには、駆動信号ＴＧが共通に接続される。駆動信号ＴＧは、制御部１４０によって駆動を制御され、Ｈレベルの駆動信号ＴＧにより転送用トランジスタが一斉にオンし、ページバッファ／センス回路１６０とＥＣＣ回路１２０との間で双方向のデータ転送が可能になる。本実施例において留意すべき点は、転送回路２００が、読出し動作時にページバッファ／センス回路１６０とＥＣＣ回路１２０間の双方向のデータ転送を可能にし、プログラム動作時にページバッファ／センス回路１６０とＥＣＣ回路１２０間の実質的なプログラムデータの転送を行わないことである。
【００２４】
プログラム動作時、入出力バッファ１１０からの入力データＤｉは、ページバッファ／センス回路１６０およびＥＣＣ回路１２０のそれぞれに供給される。図６は、入出力バッファ１１０の部分的な内部構成の一例を示している。入出力バッファ１１０は、複数の出力バッファ１１２と、複数の出力バッファ１１２の出力にそれぞれ接続された切替回路１１４とを含む。切替回路１１４は、複数のトランジスタを含み、トランジスタの一端が出力バッファ１１２に接続され、その他端がＥＣＣ回路に接続され、そのゲートに切替信号ＳＷが接続される。切替信号ＳＷは、制御部１４０によって駆動を制御される。すなわち、外部から入力されたプログラムコマンドが制御部１４０によって解読されるとき、切替信号がＨレベルに駆動され、トランジスタが一斉にオンされ、出力バッファ１１２からの入力データＤｉがＥＣＣ回路１２０へ供給される。プログラム動作時以外は、切替信号ＳＷはＬレベルに駆動され、出力バッファ１１２は、ＥＣＣ回路１２０から切り離される。
【００２５】
ページバッファ／センス回路１６０およびＥＣＣ回路１２０への入力データＤｉの転送は、実質的に同じタイミングで終了される。データ転送が終了すると、ＥＣＣ回路１２０は、ＥＣＣ演算を行い、そこで生成された誤り訂正符号（パリティビット）をページバッファ／センス回路１６０の所定領域に書込む。この間、転送回路２００によるページバッファ／センス回路１６０からＥＣＣ回路１２０への入力データＤｉの転送は行われない。
【００２６】
ＥＣＣ回路１２０による誤り訂正符号のページバッファ／センス回路１６０への書込みが終了すると、次に、ページバッファ／センス回路１６０に保持された入力データＤｉおよび誤り訂正符号の１ページ分のデータがメモリアレイ１００の選択されたページにプログラムされる。
【００２７】
一方、読出動作時、メモリアレイ１００の選択されたページから読み出されたデータがページバッファ／センス回路１６０に転送される。次に、ページバッファ／センス回路１６０に保持されたデータが転送回路２００によってＥＣＣ回路１２０へ転送される。ＥＣＣ回路１２０は、誤り訂正符号に基づきプログラム不良の有無、または読出し不良の有無を判定し、不良による誤りがあれば、誤り訂正符号を用いてデータを訂正する。ＥＣＣ処理されたデータは、再び、転送回路２００によりページバッファ／センス回路１６０へ転送され、次いで、入出力バッファ１１０を介して外部へ出力される。
【００２８】
本実施例では、プログラム動作時に、外部入出力端子から入力されたデータが、ページバッファ／センス回路１６０とＥＣＣ回路１２０に並列にロードされるため、ページバッファ／センス回路１６０からＥＣＣ回路１２０への事実上のデータ転送を省略することができ、これにより、プログラムに要する時間を大幅に短縮することができる。
【００２９】
次に、本実施例のより好ましい態様を図７ないし図１１を用いて説明する。フラッシュメモリ１０の外部入出力端子は、×１、×４、×８などの構成が可能であるが、ここでは、フラッシュメモリ１０が、×８の外部入出力端子を有するときのプログラム動作時の入力データの処理を説明する。図７に示すように、外部入出力端子Ｐ０〜Ｐ７は、Ｉ／Ｏバッファ１１０−１〜１１０−７にそれぞれ接続される。プログラム動作時、外部入出力端子Ｐ０〜Ｐ７に入力されたデータは、Ｉ／Ｏバッファ１１０−０〜１１０−７に並列に入力される。
【００３０】
ページバッファ／センス回路１６０は、セクタ０〜セクタ７の８つのセクタに分割されたレギュラー領域３００と、スペア０、スペア１、スペア２、スペア３の４つのセクタに分割されたスペア領域３１０とを有する。
【００３１】
レギュラー領域３００の１つのセクタは、例えば、２５６バイトから構成され、この場合、レギュラー領域３００の８つのセクタは、全体で約２Ｋバイトのプログラムデータを保持することができる。スペア領域３１０の１つのセクタは、例えば１６バイトから構成され、この場合、４つのセクタ（スペア０〜スペア３）は全体で６４バイトのデータを保持することができる。スペア領域３１０の１つのセクタは、例えば、不良メモリ素子を含むバッドブロックを識別する情報を記憶する領域３１１、ユーザーデータに関する情報を記憶する領域３１２、レギュラー領域３００の２つセクタについての誤り訂正符号（パリティビット）を記憶する領域３１３、３１４、スペア領域３１０がＥＣＣ演算されたときの誤り訂正符号（パリティビット）を記憶する領域３１５を有する。スペア領域３１０のスペア０の領域３１３、３１４は、レギュラー領域３００のセクタ０、セクタ１の誤り訂正符号（パリティビット）をそれぞれ記憶し、スペア領域３１０のスペア１の領域３１３、３１４は、レギュラー領域３００のセクタ２、セクタ３の誤り訂正符号（パリティビット）を記憶する。同様に、スペア領域３１０のスペア２は、レギュラー領域３００のセクタ４、セクタ５のパリティビットを記憶し、スペア領域３１０のスペア３は、レギュラー領域３００のセクタ６、セクタ７のパリティビットを記憶する。
【００３２】
レギュラー領域３００の１つのセクタには、８つの外部入出力端子Ｐ−０〜Ｐ７、すなわち入出力バッファ１１０−０〜１１０−７が割り当てられる。つまり、１つの外部入出力端子には２５６ビットが割り当てられる（２５６bit×８＝１セクタ）。図２に示す列選択回路１７０は、プログラム動作時に受け取った列アドレス情報Ａｙをデコードし、当該デコード結果に基づき、外部入出力端子Ｐ−０〜Ｐ７に入力されたデータがロードされるセクタを選択する。図７は、外部入出力端子Ｐ−０〜Ｐ−７で受け取られたデータが列アドレス情報Ａｙに従いセクタ０にロードされる例を示し、図８は、外部入出力端子Ｐ−０〜Ｐ−７で受け取られたデータが列アドレス情報Ａｙに従いセクタ７にロードされる例を示している。
【００３３】
プログラム動作時、入出力バッファ１１０−０〜１１０−７は、切替回路１１４が導通することで、ページバッファ／センス回路１６０およびＥＣＣ回路／書込み回路１２０Ａのそれぞれにプログラムデータを出力する。このとき、駆動信号ＴＧはＬレベルに駆動され、転送回路２００は、レギュラー領域３００のプログラムデータを転送しない。
【００３４】
ここに示す例では、ＥＣＣ回路／書込み回路１２０Ａが誤り訂正符号を書込むための書込み回路を含む。好ましくは、ＥＣＣ回路は、レギュラー領域３００の１つのセクタと等しいバイト数のデータについてＥＣＣ演算を行うことができる。レギュラー領域３００の１つのセクタが２５６バイトであれば、ＥＣＣ回路は、２５６バイトのデータについてＥＣＣ演算を行い、その誤り訂正符号を生成する。
【００３５】
ＥＣＣ回路／書込み回路１２０Ａは、生成された誤り訂正符号をスペア領域３１０の対応するセクタの領域３１３または３１４に書込む。図７に示す例では、プログラムデータがレギュラー領域３００のセクタ０にロードされるので、誤り訂正符号は、スペア０のセクタ０のパリティを記憶する領域３１３に書込まれる。図８に示す例では、プログラムデータＤｉがセクタ７にロードされるので、その誤り訂正符号は、スペア３のセクタ７のパリティを記憶する領域３１４に書込まれる。
【００３６】
図９に、スペア領域３１０のデータのＥＣＣ処理を例示する。レギュラー領域３００の各セクタについてＥＣＣ処理が終了すると、次に、スペア領域３１０の各セクタについてＥＣＣ処理が行われる。スペア領域３１０の１つセクタ内に含まれるどのデータのＥＣＣ処理を行うかは任意であるが、本例では、領域３１２ないし領域３１４のデータについてＥＣＣ処理を行うものとする。それ故、転送回路２００は、スペア０の領域３１２ないし領域３１４のデータを、ＥＣＣ回路／書込み回路１２０Ａに転送する。そして、ＥＣＣ処理によって生成された誤り訂正符号は、ＥＣＣ回路／書込み回路１２０Ａによってスペア０の領域３１５に書込まれる。同様の処理が、他のスペア１ないしスペア３についても行われる。
【００３７】
図１０に、従来のＥＣＣ処理フローを示し、図１１に、本実施例のＥＣＣ処理フローを示す。初めに、従来のＥＣＣ処理動作を説明する。外部コントローラからフラッシュメモリ１０に対し、外部制御信号、ならびにコマンドデータ、アドレスデータおよびプログラムデータが供給される。制御部１４０は、外部制御信号およびコマンドデータに基づきプログラム動作を開始する。
【００３８】
外部入出力端子および入出力バッファ１１０を介してプログラムデータ（入力データＤｉ）がページバッファ／センス回路１６０へロードされると（Ｓ１００）、制御部１４０の制御下においてプログラムシーケンスが開始される（Ｓ１０２）。ページバッファ／センス回路１６０に保持されたセクタ０のデータが転送回路２００によりＥＣＣ回路１２０へ転送される（Ｓ１０４）。次に、ＥＣＣ回路１２０においてＥＣＣ演算が実行され、そこで生成されたパリティビットがページバッファ／センス回路１６０のスペア領域３１０に書き込まれる（Ｓ１０８）。
【００３９】
次に、ＥＣＣが未処理のセクタがあるか否かが制御部１４によって判定される（Ｓ１１０）。こうして、ページバッファ／センス回路１６０のすべてのセクタのデータがＥＣＣ処理され、セクタ毎のパリティビットがスペア領域３１０の対応するセクタの領域３１３、３１４に書き込まれる。なお、ＮＡＮＤ型のフラッシュメモリは、ページ単位でプログラムが行われるが、入力されるプログラムデータのサイズは、必ずしも１ページ、すなわち図７に示すレギュラー領域３００の８つのセクタのサイズに等しいことを要しない。例えば、プログラムデータのサイズは、１つのセクタのサイズであることができる。通常、プログラムディスターブの観点から、同一ページに連続してプログラムすることが許される回数（ＮＯＰ（Number of Program））には制限があり、そのＮＯＰに応じて１つのページデータを分割してプログラムすることが可能である。ＮＯＰが４であるとき、１つのページデータは、例えば、２セクタ、１セクタ、３セクタ、２セクタに分けてフラッシュメモリ１０に入力することが可能である。
【００４０】
レギュラー領域のＥＣＣ処理が終了すると、次に、スペア領域のＥＣＣ処理が実行される。図９に示すように、スペア領域３１０のスペア０のデータが転送回路２００によってＥＣＣ回路／書込み回路１２０Ａへ転送される（Ｓ１１２）。そこでＥＣＣ処理が実行された後（Ｓ１１４）、生成されたパリティビットが書込み回路によってスペア０の領域３１５に書込まれる（Ｓ１１６）。ＥＣＣが未処理のセクタがあるか否かが判定され（Ｓ１１８）、そのようなセクタがあればステップＳ１１２からＳ１１６が繰り返される。こうして、スペア領域３１０のすべてのセクタのＥＣＣ処理が実行される。ページバッファ／センス回路１６０のレギュラー領域３００およびスペア領域３１０に保持されたすべてのデータのＥＣＣ処理が終了すると、ページバッファ／センス回路１６０に保持されたデータがメモリアレイの選択されたページにプログラムされる（Ｓ１２０）。
【００４１】
一方、本実施例のフラッシュメモリ１０では、図１１に示すように、プログラムデータがページバッファ／センス回路１６０とＥＣＣ回路／書込み回路１２０Ａにロードされる（Ｓ２００）。ロードが完了すると、プログラムシーケンスが開始される（Ｓ２０２）。
【００４２】
プログラムデータのロードが終了するや否や、ＥＣＣ回路／書込み回路１２０ＡによりＥＣＣ処理が実行され（Ｓ２０４）、生成されたパリティビットは、ＥＣＣ回路／書込み回路１２０Ａによってスペア領域３１０の領域３１３に書込まれる。仮に、プログラムデータがセクタ０からセクタ７までロードされるならば、セクタ０からセクタ７までのプログラムデータのＥＣＣ演算が連続的に行われ、かつ生成されたパリティビットがスペア領域３１０の対応するセクタの領域３１３または３１４に書込まれる。
【００４３】
外部入出力端子からのプログラムデータの入力が終了するや否や、スペア領域３１０のスペア０のＥＣＣ処理が開始される。スペア領域３１０のＥＣＣ処理は、図１０に示す従来の手法と変わらないので説明を省略する。
【００４４】
このように本実施例によれば、プログラム動作時に、外部入出力端子から入力されたプログラムデータを、ページバッファ／センス回路１６０およびＥＣＣ回路／書込み回路１２０Ａの双方に並列にロードするようにしたので、従来のようにページバッファ／センス回路１６０からＥＣＣ回路／書込み回路１２０Ａへプログラムデータを転送する必要がなくなり、それに要する時間を省略することができる。従って、プログラムデータをＥＣＣ処理する開始時間を早めることができる。結果として、プログラムデータを選択ページにプログラムする時間を短縮させることができる。
【００４５】
本発明の好ましい実施の形態について詳述したが、本発明は、特定の実施形態に限定されるものではなく、特許請求の範囲に記載された発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００４６】
１０：フラッシュメモリ                  １００：メモリアレイ
１１０：入出力バッファ                  １２０：ＥＣＣ回路
１３０：アドレスレジスタ                １４０：制御部
１５０：ワード線選択回路                １６０：ページバッファ／センス回路
１８０：列選択回路                      １９０：内部電圧発生正回路
２００：転送回路                        ３００：レギュラー領域
３１０：スペア領域
【図１】
2015176616.tif 000003
【図２】
2015176616.tif 000004
【図３】
2015176616.tif 000005
【図４】
2015176616.tif 000006
【図５】
2015176616.tif 000007
【図６】
2015176616.tif 000008
【図７】
2015176616.tif 000009
【図８】
2015176616.tif 000010
【図９】
2015176616.tif 000011
【図１０】
2015176616.tif 000012
【図１１】
2015176616.tif 000013
【手続補正書】
【提出日】平成27年6月25日(2015.6.25)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
メモリアレイと、
前記メモリアレイから読み出したデータを保持し、または前記メモリアレイに書込むデータを保持するデータ保持手段と、
入力手段と、
データの誤り検出訂正を行う誤り検出訂正手段と、
前記入力手段からの入力データを前記データ保持手段および前記誤り検出訂正手段に並列に供給する供給手段と、
前記誤り検出訂正手段が前記供給手段からのデータを処理することにより生成された誤り訂正符号を前記データ保持手段に書込む書込み手段と、
前記データ保持手段と前記誤り検出訂正手段との間で双方向のデータ転送を可能にする並列に接続された複数の転送用トランジスタを含むデータ転送手段と、
外部からのコマンドに基づきプログラム動作および読出し動作を制御する制御手段とを有し、
前記供給手段は、入力データを前記誤り訂正手段に選択的に供給可能にするため、前記入力手段と前記誤り訂正手段との間に並列に接続された複数の供給用トランジスタを含み、
前記制御手段は、プログラム動作が行われるとき、前記転送用トランジスタの各ゲートに共通に接続される第１のゲート信号を介して前記転送用トランジスタを非導通にさせ、かつ前記供給用トランジスタの各ゲートに供給に接続される第２のゲート信号を介して前記供給用トランジスタを導通させ、読出し動作が行われるとき、前記第１のゲート信号を介して前記転送用トランジスタを導通させ、かつ前記第２のゲート信号を介して前記供給用トランジスタをオフさせる、半導体記憶装置。
【請求項２】
半導体記憶装置はさらに、前記書込み手段により誤り訂正符号が書込みされた後、前記データ保持手段に保持されたデータをメモリアレイにプログラムするプログラム手段を含む、請求項１に記載の半導体記憶装置。
【請求項３】
前記データ保持手段は、前記メモリアレイから読み出したデータまたは前記メモリアレイに書込むデータを保持するレギュラー領域と、前記レギュラー領域に保持されるデータの誤り訂正符号を保持するスペア領域とを含み、前記書込み手段は、プログラム動作が行われるとき、前記スペア領域に前記誤り訂正符号を書込む、請求項１または２に記載の半導体記憶装置。
【請求項４】
前記データ保持手段が複数のセクタに分割されるとき、前記供給手段は、前記供給用トランジスタを介してセクタ単位のデータを前記誤り検出訂正手段へ提供し、前記誤り訂正手段は、セクタ単位のデータの誤り検出訂正を行う、請求項１ないし３いずれか１つに記載の半導体記憶装置。
【請求項５】
前記書込み手段は、前記セクタ単位の誤り訂正符号を、前記セクタに割り当てられた前記データ保持手段のスペア領域に書込む、請求項４に記載の半導体記憶装置。
【請求項６】
前記メモリアレイは、ＮＡＮＤ型メモリアレイである、請求項１ないし５いずれか１つに記載の半導体記憶装置。
【請求項７】
ＮＡＮＤ型フラッシュメモリの誤り検出訂正方法であって、
外部端子から入力された複数のセクタのプログラムデータをページバッファおよび誤り検出訂正回路に並列にロードするステップと、
前記誤り検出訂正回路は、ページバッファの１つのセクタと等しいバイト数のデータの誤り検出訂正を行うことが可能であり、前記誤り検出訂正回路は、セクタ単位でプログラムテータの誤り検出訂正を行い、前記誤り検出訂正回路によって生成された誤り訂正符号を前記ページバッファの誤り検出訂正されたセクタの対応するスペア領域に書込む第１の書込みステップと、
前記スペア領域のデータを前記誤り検出訂正回路に転送し、前記誤り検出訂正回路は、転送された前記スペア領域のデータの誤り検出訂正を行い、前記スペア領域のデータの誤り訂正符号を前記スペア領域に書込む第２の書込みステップと、
全てのセクタのプログラムデータの誤り検出訂正が終了するまで上記第１の書込みステップおよび第２の書込みステップを行い、全てのセクタのプログラムデータの誤り検出訂正が終了した後、前記ページバッファに保持されたプログラムデータおよび前記誤り訂正符号をメモリアレイの選択されたページにプログラムするステップとを有する、誤り検出訂正方法。
【請求項８】
誤り検出訂正方法はさらに、外部から入力されたコマンドに基づきプログラム動作か読出し動作かを判定するステップを有し、
プログラム動作であると判定されたとき、外部端子から入力されたプログラムデータを前記ページバッファおよび前記誤り訂正回路に並列にロードさせ、かつ前記ページバッファと前記誤り検出訂正回路との間の転送回路を非導通にして前記ページバッファから前記誤り検出訂正回路へプログラムデータが転送されないようにし、
読出し動作であると判定されたとき、メモリアレイの選択されたページから読み出されたデータを前記ページバッファへ転送し、前記転送回路を導通させて前記ページバッファから前記誤り検出訂正回路へ各セクタの読出しデータおよび前記スペア領域の誤り訂正符号の転送を可能にし、かつ前記誤り検出訂正回路によって誤り検出訂正されたデータが前記転送回路を介して前記ページバッファへ転送されることを可能にし、全てのセクタの誤り訂正が終了した後、前記ページバッファに保持された読出しデータを前記外部端子を介して出力させる、請求項７に記載の誤り検出訂正方法。