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

半導体記憶装置 Download PDF

Info

Publication number
JP6131207B2
JP6131207B2 JP2014051227A JP2014051227A JP6131207B2 JP 6131207 B2 JP6131207 B2 JP 6131207B2 JP 2014051227 A JP2014051227 A JP 2014051227A JP 2014051227 A JP2014051227 A JP 2014051227A JP 6131207 B2 JP6131207 B2 JP 6131207B2
Authority
JP
Japan
Prior art keywords
data
error detection
correction
circuit
error
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.)
Active
Application number
JP2014051227A
Other languages
English (en)
Other versions
JP2015176616A (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 JP2014051227A priority Critical patent/JP6131207B2/ja
Priority to TW103135458A priority patent/TWI537970B/zh
Priority to CN201410621476.7A priority patent/CN104916332B/zh
Priority to KR1020140156192A priority patent/KR101731576B1/ko
Priority to US14/642,391 priority patent/US10068659B2/en
Publication of JP2015176616A publication Critical patent/JP2015176616A/ja
Application granted granted Critical
Publication of JP6131207B2 publication Critical patent/JP6131207B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • G06F11/1052Bypassing or disabling error detection or correction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/222Non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/403Error protection encoding, e.g. using parity or ECC codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction

Description

本発明は、半導体記憶装置の入出力データの誤り検出訂正に関し、特に、NAND型フラッシュメモリの入力データの誤り検出訂正ならびにプログラムに関する。
フラッシュメモリ、DRAM等の半導体メモリでは、集積度が年々増加し、不良または欠陥のない記憶素子を製造することは難しくなっている。このため、メモリチップ上には、製造工程中に発生する記憶素子の物理的な欠陥を見かけ上救済するための冗長スキームが利用される。例えば、ある冗長スキームでは、冗長メモリを設けることで、物理的な欠陥のある記憶素子を救済している。また、半導体メモリには、冗長メモリによる物理的な救済以外に、ソフトエラー対策として誤り検出訂正回路(ECC:Error Checking Correction)が用いられる。
NAND型フラッシュメモリでは、データのプログラムや消去が繰り返されることで、トンネル絶縁膜の劣化により電荷保持特性が悪化したり、トンネル絶縁膜にトラップされた電荷によりしきい値変動が生じ、ビットエラーを引き起こす。特許文献1では、このようなビットエラー対策として、誤り検出訂正回路を搭載している。特に、ブロック選択トランジスタに近いセルでは、リソグラフィによるパターンのバラツキ、拡散層形成時のイオン注入のバラツキによって、ビットエラー率が高くなる傾向にあり、これをより多く救済可能にするためのECCコードを格納している。
また、NAND型フラッシュメモリには、1つのメモリセルに1ビットのデータを格納するものに加えて、1つのメモリセルにマルチビットのデータを格納するものがある。特許文献2は、このようなマルチビットのデータのエラー訂正のスキームを開示している。さらに特許文献3は、入力されたデータにECCパリティを付加してECC符号を生成し、生成されたECC符号を物理ブロックに書込み、物理ブロックより読み出したページデータにエラーがあるときECC符号によってエラーを訂正し、訂正したエラー数が閾値以上の物理ブロックを警告ブロックとしてテーブルに登録し、データ書込み時に警告ブロックの選択の優先順位を下げるフラッシュメモリを開示している。
特開2010−152989号公報 特開2008−165805号公報 特開2010−79486号公報
図1に、従来のECC回路をオンチップで搭載するNAND型フラッシュメモリのプログラム動作例を説明する。外部入出力端子から入力されたプログラムデータは、ページバッファ/センス回路400へロードされる。ロードが終了すると、次に、転送回路410によってページバッファ/センス回路400に保持されたプログラムデータがECC回路420へ転送される。転送回路410は、例えば、双方向のデータ転送が可能な複数の転送用トランジスタを含み、各トランジスタは、ゲートに共通接続された制御信号TGによって駆動される。ECC回路420は、受け取ったデータについてECC演算を行い、そこで生成された誤り訂正符号(エラーコード)を生成する。生成された誤り訂正符号は、ECC回路420によってページバッファ/センス回路400の所定領域に書き戻される。その後、ページバッファ/センス回路400は、入力されたプログラムデータおよび誤り訂正符号を、メモリアレイの選択されたページにプログラムしている。
しかしながら、ページバッファ/センス回路400からECC回路420へのプログラムデータの転送時間は、比較的大きくなり得る。仮に、ページバッファ/センス回路400がセクタ単位でデータを受け取り、ECC回路420がセクタ単位のデータについてECC処理をするならば、ページバッファ/センス回路400のすべてのセクタの転送が終了するまでプログラムデータをプログラムすることができない。また、高集積化に伴い1ページ当たりのビット数が増加すれば、それに比例してデータ転送時間ならびにECC回路の演算に要する時間も増加する。それ故、結果として、プログラムデータをメモリアレイにプログラムするまでに時間がかかってしまう。
本発明は、上記従来の課題を解決するものであり、データの信頼性を維持しつつプログラムの高速化を図ることができる半導体記憶装置を提供する。
本発明に係る半導体記憶装置は、メモリアレイと、前記メモリアレイから読み出したデータを保持し、または前記メモリアレイに書込むデータを保持するデータ保持手段と、入力手段と、データの誤り検出訂正を行う誤り検出訂正手段と、前記入力手段からの入力データを前記データ保持手段および前記誤り検出訂正手段に並列に供給する供給手段と、前記誤り検出訂正手段が前記供給手段からのデータを処理することにより生成された誤り訂正符号を前記データ保持手段に書込む書込み手段とを有する。
好ましくは半導体記憶装置はさらに、前記誤り検出訂正手段により誤り訂正符号が書込みされた後、前記データ保持手段に保持されたデータをメモリアレイにプログラムするプログラム手段を含む。好ましくは前記供給手段は、前記プログラム手段によってプログラムが実行されるとき、前記入力手段に入力されたデータを前記誤り検出訂正手段に供給する。好ましくは前記データ保持手段が複数のセクタに分割されるとき、前記供給手段は、セクタ単位のデータを前記誤り検出訂正手段へ提供し、前記誤り訂正手段は、セクタ単位のデータの誤り検出訂正を行う。好ましくは半導体記憶装置はさらに、前記データ保持手段と前記誤り検出訂正手段との間にデータ転送手段を含み、前記データ転送手段は、読出し動作が行われるとき、前記データ保持手段に保持されたデータを前記誤り検出訂正手段に転送し、プログラム動作が行われるとき、前記保持データ保持手段に保持されたデータを前記誤り検出訂正手段に転送しないように制御される。好ましくは半導体記憶装置はさらに、外部からのコマンドに基づきプログラム動作および読出し動作を制御する制御手段を含み、前記供給手段は、前記制御手段によって制御される。好ましくは前記データ転送手段は、前記制御手段によって制御される。好ましくは前記メモリアレイは、NAND型メモリアレイである。
本発明に係るNAND型フラッシュメモリのプログラム方法は、外部端子から入力されたプログラムデータをページバッファおよび誤り検出訂正回路に並列にロードし、前記誤り検出訂正回路によって生成された誤り訂正符号を前記プログラムデータに関連付けして前記ページバッファに書込み、前記ページバッファに保持されたプログラムデータおよび前記誤り訂正符号をメモリアレイの選択されたページにプログラムする。好ましくはプログラム方法はさらに、外部から入力されたコマンドに基づきプログラム動作か否かを判定し、プログラム動作であることが判定されたとき、外部端子から入力されたプログラムデータを前記誤り訂正回路にロードさせる。
本発明によれば、入力データをデータ保持手段および誤り訂正手段に並列にロードさせ、誤り訂正手段により生成された誤り訂正符号をデータ保持手段に書き込むようにしたので、データ保持手段から誤り訂正手段への実質的なデータ転送が不要となり、プログラム時間の短縮を図ることができる。
従来のNAND型フラッシュメモリの入力データの動作を説明する図である。 本発明の実施例に係るNAND型フラッシュメモリの全体の概略構成を示す図である。 本発明の実施例に係るメモリセルアレイのNANDストリングの構成を示す回路図である。 本発明の実施例に係るフラッシュメモリのプログラム時に各部に印加される電圧の一例を示す図である。 本発明の実施例に係るフラッシュメモリに入力されるデータのフローを説明する図である。 本発明の実施例に係るフラッシュメモリの入出力バッファの一例を示す図である。 本発明の実施例によるレギュラー領域のデータのECC処理を説明する図である。 本発明の実施例によるレギュラー領域のデータのECC処理を説明する図である。 本発明の実施例によるスペア領域のデータのECC処理を説明する図である。 従来のフラッシュメモリのプログラム動作時のECC処理を説明するフローチャートである。 本発明の実施例に係るフラッシュメモリのプログラム動作時のECC処理を説明するフローチャートである。
次に、本発明の実施の形態について図面を参照して詳細に説明する。ここでは、好ましい形態としてNAND型のフラッシュメモリを例示する。なお、図面は、分かり易くするために各部を強調して示してあり、実際のデバイスのスケールとは異なることに留意すべきである。
本発明の実施例に係るフラッシュメモリの典型的な構成を図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とを含んで構成される。
メモリアレイ100は、列方向に配置されたm個のメモリブロックBLK(0)、BLK(1)、・・・、BLK(m-1)を有する。ブロックBLK(0)に近接して、ページバッファ/センス回路160が配置される。このような構成以外にも、ページバッファ/センス回路160は、ブロックの他方の端部、あるいは両側の端部に配置されるものであってもよい。
1つのメモリブロックには、図2に示すように、複数のメモリセルを直列に接続した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に接続される。ワード線選択回路150は、行アドレスAxまたは変換されたアドレスに基づきブロックを選択するとき、ブロックの選択ゲート信号SGS、SGDを介して選択トランジスタTD、TSを選択的に駆動する。図3は、典型的なセルユニットの構成を示しているが、セルユニットは、NANDストリング内に1つまたは複数のダミーセルを包含するものであってもよい。
メモリセルは、典型的に、Pウエル内に形成されたN型の拡散領域であるソース/ドレインと、ソース/ドレイン間のチャンネル上に形成されたトンネル酸化膜と、トンネル酸化膜上に形成されたフローティングゲート(電荷蓄積層)と、フローティングゲート上に誘電体膜を介して形成されたコントロールゲートとを含むMOS構造を有する。フローティングゲートに電荷が蓄積されていないとき、つまりデータ「1」が書込まれているとき、しきい値は負状態にあり、メモリセルは、ノーマリオンである。フローティングゲートに電子が蓄積されたとき、つまりデータ「0」が書込まれているとき、しきい値は正にシフトし、メモリセルは、ノーマリオフである。但し、メモリセルは、1ビット(2値データ)を記憶するSLCタイプでもよいし、多ビットを記憶するMLCタイプであってもよい。
図4は、フラッシュメモリの各動作時に印加されるバイアス電圧の一例を示したテーブルである。読出し動作では、ビット線に或る正の電圧を印加し、選択されたワード線に或る電圧(例えば0V)を印加し、非選択ワード線にパス電圧Vpass(例えば4.5V)を印加し、選択ゲート線SGD、SGSに正の電圧(例えば4.5V)を印加し、ビット線選択トランジスタTD、ソース線選択トランジスタTSをオンし、共通ソース線に0Vを印加する。プログラム(書込み)動作では、選択されたワード線に高電圧のプログラム電圧Vprog(15〜20V)を印加し、非選択のワード線に中間電位(例えば10V)を印加し、ビット線選択トランジスタTDをオンさせ、ソース線選択トランジスタTSをオフさせ、「0」または「1」のデータに応じた電位をビット線GBLに供給する。消去動作では、ブロック内の選択されたワード線に0Vを印加し、Pウエルに高電圧(例えば20V)を印加し、フローティングゲートの電子を基板に引き抜くことで、ブロック単位でデータを消去する。
図5に、本実施例のフラッシュメモリ10の外部入出力端子から入力されるデータの流れを示す。プログラム動作時、入出力バッファ110から提供された入力データDiは、ページバッファ/センス回路160およびECC回路120へ並列にロードされる。
ECC回路120は、入力データDiを演算することにより、入力データDiの誤り検出訂正に必要な誤り訂正符号またはパリティビットを生成する。ECCの演算は、例えば、ハミングコードやリード・ソロモンなどの公知の手法によって行われ、入力されたkビットまたはkバイトの入力データDiをp=k+qに変換する。本明細書では、「q」を、入力データDiの誤り検出訂正に必要な誤り訂正符号またはパリティビットと称する。1つの好ましい例では、ECC回路120は、誤り訂正符号をページバッファ/センス回路160のスペア領域に書込むための書込み回路を包含することができる。但し、この構成は一例であり、これに限定されるものではない。例えば、ECC120とは別個に、誤り訂正符号を書込むための書込み回路が用意されてもよいし、転送回路200がそのような書込み回路を包含することも可能である。
ページバッファ/センス回路160とECC回路120との間には、転送回路200が設けられる。転送回路200は、複数の並列に接続された転送用トランジスタを含み、各転送用トランジスタのゲートには、駆動信号TGが共通に接続される。駆動信号TGは、制御部140によって駆動を制御され、Hレベルの駆動信号TGにより転送用トランジスタが一斉にオンし、ページバッファ/センス回路160とECC回路120との間で双方向のデータ転送が可能になる。本実施例において留意すべき点は、転送回路200が、読出し動作時にページバッファ/センス回路160とECC回路120間の双方向のデータ転送を可能にし、プログラム動作時にページバッファ/センス回路160とECC回路120間の実質的なプログラムデータの転送を行わないことである。
プログラム動作時、入出力バッファ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から切り離される。
ページバッファ/センス回路160およびECC回路120への入力データDiの転送は、実質的に同じタイミングで終了される。データ転送が終了すると、ECC回路120は、ECC演算を行い、そこで生成された誤り訂正符号(パリティビット)をページバッファ/センス回路160の所定領域に書込む。この間、転送回路200によるページバッファ/センス回路160からECC回路120への入力データDiの転送は行われない。
ECC回路120による誤り訂正符号のページバッファ/センス回路160への書込みが終了すると、次に、ページバッファ/センス回路160に保持された入力データDiおよび誤り訂正符号の1ページ分のデータがメモリアレイ100の選択されたページにプログラムされる。
一方、読出動作時、メモリアレイ100の選択されたページから読み出されたデータがページバッファ/センス回路160に転送される。次に、ページバッファ/センス回路160に保持されたデータが転送回路200によってECC回路120へ転送される。ECC回路120は、誤り訂正符号に基づきプログラム不良の有無、または読出し不良の有無を判定し、不良による誤りがあれば、誤り訂正符号を用いてデータを訂正する。ECC処理されたデータは、再び、転送回路200によりページバッファ/センス回路160へ転送され、次いで、入出力バッファ110を介して外部へ出力される。
本実施例では、プログラム動作時に、外部入出力端子から入力されたデータが、ページバッファ/センス回路160とECC回路120に並列にロードされるため、ページバッファ/センス回路160からECC回路120への事実上のデータ転送を省略することができ、これにより、プログラムに要する時間を大幅に短縮することができる。
次に、本実施例のより好ましい態様を図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に並列に入力される。
ページバッファ/センス回路160は、セクタ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つのセクタには、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にロードされる例を示している。
プログラム動作時、入出力バッファ110−0〜110−7は、切替回路114が導通することで、ページバッファ/センス回路160およびECC回路/書込み回路120Aのそれぞれにプログラムデータを出力する。このとき、駆動信号TGはLレベルに駆動され、転送回路200は、レギュラー領域300のプログラムデータを転送しない。
ここに示す例では、ECC回路/書込み回路120Aが誤り訂正符号を書込むための書込み回路を含む。好ましくは、ECC回路は、レギュラー領域300の1つのセクタと等しいバイト数のデータについてECC演算を行うことができる。レギュラー領域300の1つのセクタが256バイトであれば、ECC回路は、256バイトのデータについてECC演算を行い、その誤り訂正符号を生成する。
ECC回路/書込み回路120Aは、生成された誤り訂正符号をスペア領域310の対応するセクタの領域313または314に書込む。図7に示す例では、プログラムデータがレギュラー領域300のセクタ0にロードされるので、誤り訂正符号は、スペア0のセクタ0のパリティを記憶する領域313に書込まれる。図8に示す例では、プログラムデータDiがセクタ7にロードされるので、その誤り訂正符号は、スペア3のセクタ7のパリティを記憶する領域314に書込まれる。
図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についても行われる。
図10に、従来のECC処理フローを示し、図11に、本実施例のECC処理フローを示す。初めに、従来のECC処理動作を説明する。外部コントローラからフラッシュメモリ10に対し、外部制御信号、ならびにコマンドデータ、アドレスデータおよびプログラムデータが供給される。制御部140は、外部制御信号およびコマンドデータに基づきプログラム動作を開始する。
外部入出力端子および入出力バッファ110を介してプログラムデータ(入力データDi)がページバッファ/センス回路160へロードされると(S100)、制御部140の制御下においてプログラムシーケンスが開始される(S102)。ページバッファ/センス回路160に保持されたセクタ0のデータが転送回路200によりECC回路120へ転送される(S104)。次に、ECC回路120においてECC演算が実行され、そこで生成されたパリティビットがページバッファ/センス回路160のスペア領域310に書き込まれる(S108)。
次に、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に入力することが可能である。
レギュラー領域の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)。
一方、本実施例のフラッシュメモリ10では、図11に示すように、プログラムデータがページバッファ/センス回路160とECC回路/書込み回路120Aにロードされる(S200)。ロードが完了すると、プログラムシーケンスが開始される(S202)。
プログラムデータのロードが終了するや否や、ECC回路/書込み回路120AによりECC処理が実行され(S204)、生成されたパリティビットは、ECC回路/書込み回路120Aによってスペア領域310の領域313に書込まれる。仮に、プログラムデータがセクタ0からセクタ7までロードされるならば、セクタ0からセクタ7までのプログラムデータのECC演算が連続的に行われ、かつ生成されたパリティビットがスペア領域310の対応するセクタの領域313または314に書込まれる。
外部入出力端子からのプログラムデータの入力が終了するや否や、スペア領域310のスペア0のECC処理が開始される。スペア領域310のECC処理は、図10に示す従来の手法と変わらないので説明を省略する。
このように本実施例によれば、プログラム動作時に、外部入出力端子から入力されたプログラムデータを、ページバッファ/センス回路160およびECC回路/書込み回路120Aの双方に並列にロードするようにしたので、従来のようにページバッファ/センス回路160からECC回路/書込み回路120Aへプログラムデータを転送する必要がなくなり、それに要する時間を省略することができる。従って、プログラムデータをECC処理する開始時間を早めることができる。結果として、プログラムデータを選択ページにプログラムする時間を短縮させることができる。
本発明の好ましい実施の形態について詳述したが、本発明は、特定の実施形態に限定されるものではなく、特許請求の範囲に記載された発明の要旨の範囲内において、種々の変形・変更が可能である。
10:フラッシュメモリ 100:メモリアレイ
110:入出力バッファ 120:ECC回路
130:アドレスレジスタ 140:制御部
150:ワード線選択回路 160:ページバッファ/センス回路
180:列選択回路 190:内部電圧発生正回路
200:転送回路 300:レギュラー領域
310:スペア領域

Claims (6)

  1. メモリアレイと、
    前記メモリアレイから読み出したデータを保持し、または前記メモリアレイに書込むデータを保持するデータ保持手段と、
    入力手段と、
    データの誤り検出訂正を行う誤り検出訂正手段と、
    前記入力手段からの入力データを前記データ保持手段および前記誤り検出訂正手段に並列に供給する供給手段と、
    前記誤り検出訂正手段が前記供給手段からのデータを処理することにより生成された誤り訂正符号を前記データ保持手段に書込む書込み手段と、
    前記データ保持手段と前記誤り検出訂正手段との間で双方向のデータ転送を可能にする並列に接続された複数の転送用トランジスタを含むデータ転送手段と、
    外部からのコマンドに基づきプログラム動作および読出し動作を制御する制御手段とを有し、
    前記供給手段は、前記入力手段と前記誤り検出訂正手段との間に並列に接続された複数の供給用トランジスタを含み、
    前記制御手段は、前記入力手段から入力データが入力されるとき、前記転送用トランジスタの各ゲートに共通に接続される第1のゲート信号を介して前記転送用トランジスタを非導通にさせ、かつ前記供給用トランジスタの各ゲートに共通に接続される第2のゲート信号を介して前記供給用トランジスタを導通させ、読出し動作が行われるとき、前記第1のゲート信号を介して前記転送用トランジスタを導通させ、かつ前記第2のゲート信号を介して前記供給用トランジスタをオフさせ、
    前記データ保持手段は、前記メモリアレイから読み出したデータまたは前記メモリアレイに書込むデータを保持するレギュラー領域と、前記レギュラー領域に保持されるデータの誤り訂正符号を保持するスペア領域とを含み、前記書込み手段は、プログラム動作が行われるとき、前記スペア領域に前記誤り訂正符号を書込み、
    さらに前記データ転送手段は、前記誤り訂正符号が書込まれたスペア領域のデータを前記誤り検出訂正手段に転送し、前記書込み手段は、前記スペア領域のデータの誤り訂正符号を前記スペア領域に書込む、半導体記憶装置。
  2. 半導体記憶装置はさらに、前記書込み手段により誤り訂正符号が書込みされた後、前記データ保持手段に保持されたデータをメモリアレイにプログラムするプログラム手段を含む、請求項1に記載の半導体記憶装置。
  3. 前記データ保持手段が複数のセクタに分割されるとき、前記供給手段は、前記供給用トランジスタを介してセクタ単位のデータを前記誤り検出訂正手段へ提供し、前記誤り検出訂正手段は、セクタ単位のデータの誤り検出訂正を行う、請求項1または2に記載の半導体記憶装置。
  4. 前記書込み手段は、前記セクタ単位の誤り訂正符号を、前記セクタに割り当てられた前記データ保持手段のスペア領域に書込む、請求項1に記載の半導体記憶装置。
  5. 前記メモリアレイは、NAND型メモリアレイである、請求項1ないしいずれか1つに記載の半導体記憶装置。
  6. NAND型フラッシュメモリの誤り検出訂正方法であって、
    外部から入力されたコマンドに基づきプログラム動作か読出し動作かを判定するステップと、
    プログラム動作のコマンドであると判定されたとき、外部端子から入力された複数のセクタのプログラムデータをページバッファおよび誤り検出訂正回路に並列にロードし、かつ前記ページバッファと前記誤り検出訂正回路との間の転送回路を非導通にして前記ページバッファから前記誤り検出訂正回路へプログラムデータが転送されないようにするステップと、
    前記誤り検出訂正回路は、ページバッファの1つのセクタと等しいバイト数のデータの誤り訂正符号を生成することが可能であり、前記誤り検出訂正回路は、セクタ単位でプログラムデータ誤り訂正符号を生成し、前記誤り検出訂正回路によって生成された誤り訂正符号を前記ページバッファの誤り検出訂正されたセクタの対応するスペア領域に書込む第1の書込みステップと、
    前記スペア領域のデータを前記転送回路を介して前記誤り検出訂正回路に転送し、前記誤り検出訂正回路は、転送された前記スペア領域のデータの誤り訂正符号を生成し、前記スペア領域のデータの誤り訂正符号を前記スペア領域に書込む第2の書込みステップと、
    全てのセクタのプログラムデータの誤り訂正符号の生成が終了するまで上記第1の書込みステップおよび第2の書込みステップを行い、全てのセクタのプログラムデータの誤り訂正符号の生成が終了した後、前記ページバッファに保持されたプログラムデータおよび前記誤り訂正符号をメモリアレイの選択されたページにプログラムするステップと、
    読出し動作のコマンドであると判定されたとき、メモリアレイの選択されたページから読み出されたデータを前記ページバッファへ転送し、前記転送回路を導通させて前記ページバッファから前記誤り検出訂正回路へ各セクタの読出しデータおよび前記スペア領域の誤り訂正符号の転送を可能にし、かつ前記誤り検出訂正回路によって誤り検出訂正されたデータが前記転送回路を介して前記ページバッファへ転送されることを可能にし、全てのセクタの誤り訂正が終了した後、前記ページバッファに保持された読出しデータを前記外部端子を介して出力させるステップと、を有する誤り検出訂正方法。
JP2014051227A 2014-03-14 2014-03-14 半導体記憶装置 Active JP6131207B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2014051227A JP6131207B2 (ja) 2014-03-14 2014-03-14 半導体記憶装置
TW103135458A TWI537970B (zh) 2014-03-14 2014-10-14 半導體記憶裝置及nand型快閃記憶體的程式化方法
CN201410621476.7A CN104916332B (zh) 2014-03-14 2014-11-06 半导体存储装置及nand型快闪存储器的程序化方法
KR1020140156192A KR101731576B1 (ko) 2014-03-14 2014-11-11 반도체 기억장치 및 nand 플래시 메모리의 프로그램 방법
US14/642,391 US10068659B2 (en) 2014-03-14 2015-03-09 Semiconductor memory device and programming method of NAND flash memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014051227A JP6131207B2 (ja) 2014-03-14 2014-03-14 半導体記憶装置

Publications (2)

Publication Number Publication Date
JP2015176616A JP2015176616A (ja) 2015-10-05
JP6131207B2 true JP6131207B2 (ja) 2017-05-17

Family

ID=54069004

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014051227A Active JP6131207B2 (ja) 2014-03-14 2014-03-14 半導体記憶装置

Country Status (5)

Country Link
US (1) US10068659B2 (ja)
JP (1) JP6131207B2 (ja)
KR (1) KR101731576B1 (ja)
CN (1) CN104916332B (ja)
TW (1) TWI537970B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7335701B2 (ja) 2016-06-24 2023-08-30 エルメス セリエ ベルトバックルおよびこのようなバックルを含むベルト

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6115740B1 (ja) * 2015-12-17 2017-04-19 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置
JP2017157257A (ja) 2016-03-01 2017-09-07 東芝メモリ株式会社 半導体記憶装置及びメモリシステム
JP6258399B2 (ja) * 2016-05-16 2018-01-10 ウィンボンド エレクトロニクス コーポレーション 半導体装置
JP6164712B1 (ja) * 2016-08-18 2017-07-19 ウィンボンド エレクトロニクス コーポレーション フラッシュメモリ
JP6293846B2 (ja) * 2016-11-02 2018-03-14 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置
CN109213436B (zh) * 2017-06-30 2021-08-24 慧荣科技股份有限公司 降低快闪储存介面中传收数据错误方法及装置
US20210306006A1 (en) * 2019-09-23 2021-09-30 SK Hynix Inc. Processing-in-memory (pim) devices
JP7018089B2 (ja) * 2020-04-02 2022-02-09 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置および読出し方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4890287A (en) * 1988-03-09 1989-12-26 Magnetic Peripherals Inc. On-the-fly error correction
KR940004820B1 (ko) 1991-12-30 1994-06-01 포항종합제철 주식회사 스테인레스강 정련로 슬래그의 분화방지방법
JP2003076605A (ja) * 2001-08-31 2003-03-14 Mitsubishi Electric Corp ブロック消去型不揮発メモリを搭載した半導体記憶装置とそのデータの書込み・読出し方法
JP4113225B2 (ja) * 2006-04-28 2008-07-09 株式会社東芝 半導体装置
KR100845529B1 (ko) 2007-01-03 2008-07-10 삼성전자주식회사 플래시 메모리 장치의 이씨씨 제어기 및 그것을 포함한메모리 시스템
US7861139B2 (en) * 2007-01-26 2010-12-28 Micron Technology, Inc. Programming management data for NAND memories
US20090070655A1 (en) * 2007-09-11 2009-03-12 Silicon Motion, Inc. Method for Generating an ECC Code for a Memory Device
JP2010009141A (ja) * 2008-06-24 2010-01-14 Toshiba Corp データ転送方法
JP2010079486A (ja) 2008-09-25 2010-04-08 Panasonic Corp 半導体記録装置
JP2010146654A (ja) * 2008-12-19 2010-07-01 Toshiba Corp メモリ装置
US8595593B2 (en) * 2008-12-24 2013-11-26 Hynix Semiconductor Inc. Nonvolatile memory device having a copy back operation and method of operating the same
JP2010152989A (ja) 2008-12-25 2010-07-08 Toshiba Corp 不揮発性半導体記憶装置
JP4793741B2 (ja) 2009-07-24 2011-10-12 エヌイーシーコンピュータテクノ株式会社 誤り訂正回路、誤り訂正方法
JP2013522779A (ja) 2010-03-22 2013-06-13 モサイド・テクノロジーズ・インコーポレーテッド 誤り訂正を有する複合半導体メモリデバイス
JP2012133843A (ja) * 2010-12-21 2012-07-12 Toshiba Corp 半導体記憶装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7335701B2 (ja) 2016-06-24 2023-08-30 エルメス セリエ ベルトバックルおよびこのようなバックルを含むベルト

Also Published As

Publication number Publication date
KR20150107575A (ko) 2015-09-23
US10068659B2 (en) 2018-09-04
KR101731576B1 (ko) 2017-04-28
US20150261605A1 (en) 2015-09-17
CN104916332B (zh) 2018-10-30
CN104916332A (zh) 2015-09-16
TWI537970B (zh) 2016-06-11
JP2015176616A (ja) 2015-10-05
TW201535399A (zh) 2015-09-16

Similar Documents

Publication Publication Date Title
JP6131207B2 (ja) 半導体記憶装置
KR101368375B1 (ko) 소거된 섹터 검출 메커니즘
US7406649B2 (en) Semiconductor memory device and signal processing system
US10395753B2 (en) Semiconductor memory device and programming method thereof
JP6258399B2 (ja) 半導体装置
US8891304B2 (en) Nonvolatile semiconductor memory device and memory system
JP5657079B1 (ja) 半導体記憶装置
JP2008027511A (ja) 半導体記憶装置およびその制御方法
JP6178909B1 (ja) 不揮発性半導体記憶装置
JP6164712B1 (ja) フラッシュメモリ
JP6115740B1 (ja) 半導体記憶装置
US20160012916A1 (en) Semiconductor memory device and memory system
JP2010152989A (ja) 不揮発性半導体記憶装置
JP2009080884A (ja) 不揮発性半導体記憶装置
KR101651573B1 (ko) 반도체 기억장치 및 그 프로그래밍 방법
JP5710815B1 (ja) 半導体記憶装置
JP6293846B2 (ja) 半導体記憶装置
TWI521530B (zh) 半導體記憶裝置及其編程方法
JP2012133854A (ja) 半導体記憶装置
JP2013025827A (ja) 半導体記憶装置

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20151117

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160203

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20160217

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20160311

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161207

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170417

R150 Certificate of patent or registration of utility model

Ref document number: 6131207

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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