JP2009223941A - 不揮発性記憶装置および不揮発性記憶装置の制御方法 - Google Patents
不揮発性記憶装置および不揮発性記憶装置の制御方法 Download PDFInfo
- Publication number
- JP2009223941A JP2009223941A JP2008066346A JP2008066346A JP2009223941A JP 2009223941 A JP2009223941 A JP 2009223941A JP 2008066346 A JP2008066346 A JP 2008066346A JP 2008066346 A JP2008066346 A JP 2008066346A JP 2009223941 A JP2009223941 A JP 2009223941A
- Authority
- JP
- Japan
- Prior art keywords
- ecc
- memory cell
- correction
- data
- program
- 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.)
- Pending
Links
Images
Landscapes
- Read Only Memory (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
Abstract
【課題】外部アクセス速度を高速化すると共に信頼性が高い不揮発性記憶装置および不揮発性記憶装置の制御方法を提供すること。
【解決手段】
不揮発性メモリ1は、少なくとも1つの書込み対象メモリセルへのプログラム情報PDの書込みに先立って、書込み対象メモリセルに関連する複数のメモリセルに保持されるデータに対してECCチェックを行うECC検出回路19を備える。また、書込み対象メモリセルへのプログラム情報PDの書込みと同時期に、ECC検出回路19により訂正が必要と判断された訂正対象メモリセルへ訂正情報CDを書き込むプログラム情報修正/ECCデータ作成回路12を備える。
【選択図】図1
【解決手段】
不揮発性メモリ1は、少なくとも1つの書込み対象メモリセルへのプログラム情報PDの書込みに先立って、書込み対象メモリセルに関連する複数のメモリセルに保持されるデータに対してECCチェックを行うECC検出回路19を備える。また、書込み対象メモリセルへのプログラム情報PDの書込みと同時期に、ECC検出回路19により訂正が必要と判断された訂正対象メモリセルへ訂正情報CDを書き込むプログラム情報修正/ECCデータ作成回路12を備える。
【選択図】図1
Description
本発明は不揮発性記憶装置および不揮発性記憶装置の制御方法に関し、特に、外部アクセス速度を高速化すると共に信頼性が高い不揮発性記憶装置および不揮発性記憶装置の制御方法を提供することが可能な技術に関するものである。
従来、ECC処理は、外部リードアクセスの動作中に行われていた。そしてECC処理が行われた結果のデータ情報がI/O端子へ出力されていた。
また従来、ECC処理はメモリデバイスの起動時またはアイドル時に行われていた。そしてエラーデータを、ECC処理結果に応じて訂正されたデータに書き直していた。
尚、上記の関連技術として特許文献1ないし4が開示されている。
特開2003−297099号公報
特開2003−248631号公報
特開2003−140982号公報
特開2001−14226号公報
しかし外部リードアクセス時にECC処理を含めると、外部アクセス速度が低下するため問題である。
また、メモリ起動時またはアイドル時にECC処理を含めると、 プログラム動作やイ
レース動作に時間の掛かる不揮発性メモリでは、書き直す時間が大きく、ビジー期間が長くなるため問題である。更に、メモリデバイス外と非同期で実行されるバックグラウンドでのECC処理には、メモリデバイス外部からのアクセスとのアービタ処理が必須であり、外部アクセスが遅れる懸念がある。
レース動作に時間の掛かる不揮発性メモリでは、書き直す時間が大きく、ビジー期間が長くなるため問題である。更に、メモリデバイス外と非同期で実行されるバックグラウンドでのECC処理には、メモリデバイス外部からのアクセスとのアービタ処理が必須であり、外部アクセスが遅れる懸念がある。
本発明は前記背景技術に鑑みなされたものであり、外部アクセス速度を高速化すると共に信頼性が高い不揮発性記憶装置および不揮発性記憶装置の制御方法を提供することが可能な不揮発性記憶装置および不揮発性記憶装置の制御方法を提供することを目的とする。
前記目的を達成するためになされた本発明に係る不揮発性記憶装置の制御方法は、少なくとも1つの書込み対象メモリセルへの書込みデータの書込みに先立って、書込み対象メモリセルに関連する複数のメモリセルに保持されるデータに対してECCチェックを行うステップと、書込み対象メモリセルへの書込みデータの書込みと同時期に、ECCチェックにより訂正が必要と判断された訂正対象メモリセルへ訂正データを書き込むステップとを備えることを特徴とする。
また本発明に係る不揮発性記憶装置は、少なくとも1つの書込み対象メモリセルへの書込みデータの書込みに先立って、書込み対象メモリセルに関連する複数のメモリセルに保持されるデータに対してECCチェックを行うECC処理回路と、書込み対象メモリセルへの書込みデータの書込みと同時期に、ECC処理回路により訂正が必要と判断された訂正対象メモリセルへ訂正データを書き込む書き込み制御回路とを備えることを特徴とする。
本発明に係る不揮発性記憶装置の制御方法および不揮発性記憶装置では、少なくとも1つの書込み対象メモリセルを有する。書込みデータは、ユーザが不揮発性記憶装置の書込み対象メモリセルに書き込むデータである。そして書込み対象メモリセルに関連して、複数のメモリセルが存在する。複数のメモリセルの例としては、書込み対象メモリセルと同一ワード線上のメモリセルや、書込み対象メモリセルが含まれるセクタまたはバンクを構成するメモリセルなどが挙げられる。ECCチェックが行われることで、誤ったデータが保持されている訂正対象メモリセルが判明する。そして訂正データを書き込むステップまたは書き込み制御回路により、正しいデータである訂正データが訂正対象メモリセルへ書き込まれる。このとき訂正データの書込みは、書込み対象メモリセルへの書込みデータの書込みと同時期に行われる。
動作を説明する。ECCチェックを行うステップまたはECC処理回路では、書込みデータの書込みに先立ってECCチェックが行われる。ここでECCチェックを行うためには、まずECCチェック対象の領域のデータを読み出す必要がある。ここでデータ読出し動作時間がデータ書込み動作時間に対して無視できる程度に小さい場合には、ECCチェックに必要な時間も小さくすることができる。よって書込みデータの書込みに先立ってECCチェックを行うことによって、実質的なデータ書込み時間はロスしない。書き込むステップまたは書き込み制御回路では、書込み対象メモリセルへの書込みデータの書込みと同時期に、訂正対象メモリセルへの訂正データの書込みが行われる。すなわち、書込みデータの書込みと共に、メモリセルに保持されたデータ自身の訂正も併せて行われる。
従来の不揮発性記憶装置においては、起動時またはアイドル時、それ以前に書き込まれたデータ自身を訂正するため、訂正データを書き込むための専用の時間が必要となる。よってビジー期間が発生していた。更に、メモリデバイス外と非同期で実行されるバックグラウンドでのECC処理には、メモリデバイス外部からのアクセスとのアービタ処理が必須
であり、外部アクセスが遅れる懸念がある。しかし本発明に係る不揮発性記憶装置の制御方法および不揮発性記憶装置では、外部からのプログラム対象の書込みデータを書込み対象メモリセルへ書き込む際に必ず必要とされる書込み時間に隠れて、訂正データを訂正対象メモリセルへ書き込むため、起動時またはアイドル時に訂正データを書き込むための専用の時間を別途取る必要がない。よって起動時またはアイドル時にビジー期間を作らないため、外部アクセス速度を高速化できる。
であり、外部アクセスが遅れる懸念がある。しかし本発明に係る不揮発性記憶装置の制御方法および不揮発性記憶装置では、外部からのプログラム対象の書込みデータを書込み対象メモリセルへ書き込む際に必ず必要とされる書込み時間に隠れて、訂正データを訂正対象メモリセルへ書き込むため、起動時またはアイドル時に訂正データを書き込むための専用の時間を別途取る必要がない。よって起動時またはアイドル時にビジー期間を作らないため、外部アクセス速度を高速化できる。
また従来の不揮発性記憶装置においては、読出し時のたびに読み出したデータにECC処理を行った上で出力するため、外部アクセス速度が低下していた。しかし本発明に係る不揮発性記憶装置の制御方法および不揮発性記憶装置では、書き込まれたデータ自身を訂正するので、読出し時のたびに読み出したデータにECC処理を行う必要がない。よって外部アクセス速度を高速化できる。そして、それ以前に書き込まれたデータ自身が訂正されるため、リテンション不良(特に不揮発性メモリセルの隣接メモリセルをアクセスすることによる注目メモリセルのディスターブ等による記憶情報の劣化)の影響を排除することができる。よって不揮発性記憶装置の信頼性を高めることができる。
本発明によれば、外部アクセス速度を高速化すると共に信頼性が高い不揮発性記憶装置および不揮発性記憶装置の制御方法を提供することができる。
本発明の第1実施形態に係る不揮発性メモリ1を図1に示す。不揮発性メモリ1は、メモリセル部5、Yゲート4、I/Oバッファ11、プログラム情報修正/ECCデータ作成回路12、コマンドレジスタ/ステートコントロール部13、プログラム電圧生成部14、イレース電圧生成部15、アドレスバッファ16、X/Yデコーダ17、リード回路18、ECC検出回路19、ECC訂正情報格納部20を備える。
コマンドレジスタ/ステートコントロール部13には、不揮発性記憶装置外部から不図示の外部コントロールピンを介して、各種のコマンドCMDが入力される。またコマンドレジスタ/ステートコントロール部13から出力される電圧制御信号VS1はプログラム電圧生成部14へ入力され、電圧制御信号VS2はイレース電圧生成部15へ入力される。またコマンドレジスタ/ステートコントロール部13から出力される信号PGMpulseまたは信号ERpulse、信号MODE、信号DLBは、プログラム情報修正/ECCデータ作成回路12へ入力され、信号FLAG_RST、信号ECC_LOAD_pulseはECC訂正情報格納部20へ入力され、信号WL_pulseおよび信号Col_pulseは、アドレスバッファ16に入力される。またプログラム電圧生成部14から出力されるプログラム用電圧VPROGは、プログラム情報修正/ECCデータ作成回路12へ入力され、プログラム時のワード線用電圧VGはX/Yデコーダ17へ入力される。またイレース電圧生成部15から出力されるイレース用電圧VERは、X/Yデコーダ17へ入力される。
アドレスバッファ16には、不図示の外部アドレスピンを介して、プログラムアドレスPGM_Addが入力される。プログラムアドレスPGM_Addは、バンクアドレスBA_Add、ワード線アドレスWL_Add、コラムアドレスCol_Addを含む。アドレスバッファ16からはプログラムアドレスPGM_AddおよびPGM_Addのワード線アドレスまたはコラムアドレスをインクリメントしたアドレスCONTが出力され、プログラム情報修正/ECCデータ作成回路12に入力される。X/Yデコーダ17からメモリセル部5へは、ワード線への供給電圧である電圧VWLが入力される。また、X/Yデコーダ17からYゲート4へは、コラムデコータスイッチを選択活性化するためのゲート電圧である電圧VCDが入力される。
I/Oバッファ11には、不図示の外部DQピンを介して、プログラム情報PDが入力される。なおI/Oバッファ11は、例えばDQピンから16ビットパラレル入出力の場合には、I/O数分だけ備えられる。
メモリセル部5は、メモリセルアレイ2およびECCメモリセルアレイ3を備える。メモリセルおよびECCメモリセルを選択して活性化するワード線WL(0)ないしWL(k)が、メモリセルアレイ2およびECCメモリセルアレイ3を貫いて備えられる。つまり、メモリセルおよびECCメモリセルは、一つのワード線で共通接続される。ここでワード線WL(i)に接続される複数のメモリセルを、ワード線メモリセル群MG(i)と定義する。またワード線WL(i)に接続される複数のECCメモリセルを、ワード線ECCメモリセル群EG(i)と定義する。ワード線メモリセル群MG(i)にはデータMD(i)が保持される。またワード線ECCメモリセル群EG(i)には、データMD(i)についてのECCコードEC(i)が保持される。またメモリセルおよびECCメモリセルのデータを入出力できる複数のビットラインが連結される。
リード回路18にはデータMDおよびECCコードECが入力・保持される。リード回路18から出力されるデータMD、ECCコードEC、信号DAV、ベリファイ結果信号MATCHが出力される。ECC検出回路19へはデータMD、ECCコードEC、信号DAVが入力される。またI/Oバッファ11へはデータMDが入力され、プログラム情報修正/ECCデータ作成回路12へはデータMDおよび信号DAVが入力され、コマンドレジスタ/ステートコントロール部13へはベリファイ結果信号MATCHが入力される。ECC検出回路19では、訂正情報CDを生成し、ECC訂正情報格納部20へ出力する。また、ECC検出信号ECC_Detをコマンドレジスタ/ステートコントロール部13へ出力する。ECC訂正情報格納部20は、訂正アドレスECC_Add、訂正信号ECCIN、信号ECCD、フラグ情報ECC_Flagを出力する。訂正アドレスECC_Addおよび訂正信号ECCINはプログラム情報修正/ECCデータ作成回路12へ入力される。信号ECCDはプログラム情報修正/ECCデータ作成回路12およびコマンドレジスタ/ステートコントロール部13へ入力される。フラグ情報ECC_Flagは、コマンドレジスタ/ステートコントロール部13へ入力され、コマンドレジスタ/ステートコントロール部13から出力される信号STATUSとして不図示のDQピンまたは専用ピンを介して、不図示の外部のメモリコントローラへ入力される。プログラム情報修正/ECCデータ作成回路12から出力される信号ECC_COMP、信号CPRGMAdd_MATCHは、コマンドレジスタ/ステートコントロール部13へ入力され、データDATABおよびデータECCDATABはYゲート4へ入力される。
図2に、プログラム情報修正およびプログラム情報修正/ECCデータ作成回路12の内部回路を示す。プログラム情報修正/ECCデータ作成回路12は、プログラム情報修正回路31、ECCデータ生成回路32、ECCコード用プログラム/イレース制御回路33、データ用プログラム/イレース制御回路34、第1プログラムバッファ41、訂正アドレス検出回路42、第2プログラムバッファ43を備える。なお、プログラム情報修正回路31は、DQピンが16ビットパラレル入出力の場合は、I/O数分だけ備える。またデータ用プログラム/イレース制御回路34は1ワード線のメモリセル数分、ECCコード用プログラム/イレース制御回路33はECCメモリセル数分だけ備える。
プログラム情報修正回路31は、インバータINV1およびINV2、アンド回路AD1ないしAD3、オア回路OR1を備える。第1プログラムバッファ41には、データMD、プログラム情報BPDが入力される。訂正アドレス検出回路42には、プログラムアドレスPGM_Add、訂正アドレスECC_Add、訂正信号ECCINが入力される。第1プログラムバッファ41から出力されるプログラム情報PBOUT1はアンド回路AD1およびAD2に入力される。訂正アドレス検出回路42から出力される一致信号PGMAdd_MATCHは、アンド回路AD1に入力されると共に、インバータINV1を介してアンド回路AD2およびAD3へ入力される。訂正アドレス検出回路42から出力される一致信号CPGMAdd_MATCHは、コマンドレジスタ/ステートコントロール部13へ入力される。訂正アドレス検出回路42から出力される訂正信号ECCINOは、アンド回路AD2に入力されると共に、インバータINV2を介してアンド回路AD3へ入力される。またアンド回路AD3には信号ECCDが入力される。アンド回路AD1ないしAD3の出力はオア回路OR1へ入力される。オア回路OR1からは修正処理されたプログラム情報COMPDが出力され、第2プログラムバッファ43へ入力される。第2プログラムバッファ43からは再構成プログラム情報RPDおよびデータPBOUT2が出力される。ECCデータ生成回路32には再構成プログラム情報RPDが入力される。ECCデータ生成回路32から出力される再構成プログラム情報RPDに対する再構成ECCコードRECは第2プログラムバッファ43へ、ECC_COMPはコマンドレジスタ/ステートコントロール部13へ入力される。
ECCコード用プログラム/イレース制御回路33およびデータ用プログラム/イレース制御回路34には、データPBOUT2、信号PGMpulseまたは信号E Rpul
se、信号MODE、信号DAV、信号DLB、プログラム用電圧VPROGがそれぞれ入力される。そしてECCコード用プログラム/イレース制御回路33からはデータECCDATABが出力され、データ用プログラム/イレース制御回路34からはデータDATABが出力される。
se、信号MODE、信号DAV、信号DLB、プログラム用電圧VPROGがそれぞれ入力される。そしてECCコード用プログラム/イレース制御回路33からはデータECCDATABが出力され、データ用プログラム/イレース制御回路34からはデータDATABが出力される。
図2において、アンド回路AD1は、外部からのプログラム対象アドレスのときは、ECC処理結果に関わらず外部からのプログラムデータを訂正せずに出力する動作をする回路である。またアンド回路AD2は、外部からのプログラム対象アドレス以外で訂正がないプログラムデータを出力する動作をする回路である。またアンド回路AD3は、プログラムモードとイレースモードとの切り替えを行う回路である。アンド回路AD3は、プログラムモード(メモリセルを「1⇒0」に訂正)のときにはローレベルを出力し、イレースモード(メモリセルを「0⇒1」に訂正)のときにはハイレベルを出力する。
また図3に、データ用プログラム/イレース制御回路34の内部回路を示す。データ用プログラム/イレース制御回路34は、データ入力部54、ライトアンプラッチ55、ベリファイ部56、モード切替部57、セレクタ58、レベルシフタ51、アンド回路53を備える。ベリファイ部56のPチャネルトランジスタQ1およびQ2には、信号DAVがインバータINV3を介して相補的に入力される。モード切替部57のPチャネルトランジスタQ3およびQ4には、信号MODEがインバータINV4を介して相補的に入力される。データ入力部54にはデータPBOUT2および信号DLBが入力される。ライトアンプラッチ55のノードCには、電源電圧VCCがトランジスタQ2およびQ4を介して接続されると共に、データ入力部54の出力端子が接続される。またライトアンプラッチ55のノードBには、電源電圧VCCがトランジスタQ1およびQ3を介して接続される。セレクタ58は、入力される信号MODEに応じて、ノードAまたはノードBの一方を択一に選択する。アンド回路53の一方の入力端子にはセレクタ58の出力端子が接続され、他方の入力端子には信号PGMpulseまたは信号ERpulseが入力される。アンド回路53からはプログラム信号PGが出力される。レベルシフタ51にはプログラム信号PGおよびプログラム用電圧VPROGが入力され、データDATABが出力される。なおECCコード用プログラム/イレース制御回路33の構成は、データ用プログラム/イレース制御回路34と同様であるため、詳細な説明は省略する。
第1実施形態の第1実施例に係る不揮発性メモリ1の動作を説明する。第1実施例は、プログラム方向(データ1からデータ0)の訂正のみを行う場合の回路である。第1実施例が適用される不揮発性メモリ1としては、例えばフラッシュメモリが挙げられる。また第1実施例では、1ワード線あたり単数ビット訂正する場合を説明する。
図4および図5を用いて、不揮発性メモリ1の動作を説明する。外部の不図示のメモリコントローラから、コマンドレジスタ/ステートコントロール部13にプログラムする旨のコマンドCMDが入力される。これによりプログラム動作を行う旨の指示がされることで、図5に示すフローが開始される。また、アドレスバッファ16にプログラム対象のメモリセルのアドレスを示すプログラムアドレスPGM_Addが入力され、I/Oバッファ11にプログラムされるプログラム情報PDが入力される。
本実施形態では、説明を簡易にするためにDQピンからの入出力数を1、すなわちI/O数を1として以後を説明する。例として図4(a)に示すように、プログラムアドレスPGM_Addとして、バンクアドレスBA_Add=0、ワード線アドレスWL_Add=i、コラムアドレスCol_Add=0が入力され、プログラム情報PD(i)=0が入力される場合を説明する。
図5のS1およびS2に示すように、プログラム動作に先立って、ECCチェックが行われる。ECCチェックでは、まずS1において、入力されたプログラムアドレスPGM_Addより、プログラム対象となるワード線のメモリセルおよびそのECCメモリセルのリードを行う。具体的には、リードに際しX/Yデコーダ17は、外部から入力されたプログラムアドレスPGM_Addのワード線アドレス(X−アドレス)に応答して、複数ワード線のうち一つをリード対象として選択する。そして選択されたワード線には、読み出し電圧が供給される。そしてリード回路18において、プログラム対象であるワード線WLに接続されるメモリセルからデータMDがリードされると共に、同一ワード線WLに接続されるECCメモリセルからECCコードECが同様にリードされ、リード回路18内の不図示のレジスタに保持される。
本実施形態では、図4(b)に示すように、ワード線WL(i)が選択されるので、ワード線WL(i)のコラムアドレスCol_Add=0ないしmに保持されているデータMD(i)がリードされる。またワード線WL(i)のワード線ECCメモリセル群EG(i)に保持されている、ECCコードEC(i)がリードされる。
なお、このリード動作にかかる時間は、プログラム動作時間(マイクロ秒)に比して無視できる程度(ナノ秒)に小さい。よってプログラム動作に先立ってリード動作を挿入しても、不揮発性メモリ1の動作速度に与える影響は無視できる程度に小さなものである。
次にS2において、ECC検出回路19において、ECCメモリセルから読出したECCコードEC(i)を用いて、メモリセルから読み出したデータMD(i)に対してECCチェックを行う。なおECCチェックは、一般的なECCチェック方法により行えばよいため、ここでは説明を省略する。ここでECC検出回路19はECCチェックによりエラーを検出した場合、エラーを検出したことを示す信号であるECC検出信号ECC_Detをコマンドレジスタ/ステートコントロール部13へ出力する。
図4(c)に本実施形態でのECCチェック結果を示す。ECCコードEC(i)を用いて、ECCチェックデータECD(i)が生成される(図4、矢印A6)。図4(c)では、コラムアドレスCol_Add=mのメモリセルにおいて、メモリセルのリテンション不良等に起因して、フローティングゲート/ナイトライド等の情報トラップ領域に蓄積された電荷が放出されることにより、本来“0”だったデータが“1”に変わってしまっていることがECCチェックにより判明する。
ECCチェックでエラーが検出されない場合(S3:No)は、プログラム情報PD(i)によりECCコードEC(i)が変わるため、S5へ進み、後述するようにプログラム情報PDの再構成を行い、プログラム処理を行う。一方、ECCチェックでエラーが検出された場合(S3:Yes)は、S4へ進み、訂正情報CD(ワード線アドレス、訂正データ等)をECC訂正情報格納部20に格納する。ここで訂正情報CDは、図6に示すように、訂正アドレスECC_Add訂正内容CC、フラグ情報ECC_Flagを備えている。また訂正アドレスECC_Addは、訂正が必要なメモリセルを特定するためのアドレスであり、訂正バンクアドレスC_BA_Add、訂正ワード線アドレスC_WL_Add、訂正コラムアドレスC_Col_Addを備える。訂正内容CCは、データをイレース側(1)またはプログラム側(0)のどちらに訂正するかの指示内容を含んでいる。なお、本実施形態では、1コラムアドレスに対し一つのI/Oで構成される場合の説明のため、訂正内容CCは、訂正コラムアドレスC_Col_Addに対し一つのI/Oに対しての訂正内容である。一つのコラムアドレスに対し複数I/Oで構成される場合は、訂正対象のI/Oを除いた訂正対象外のI/Oは、メモリセルから読み出したデータM
D(i)を訂正コラムアドレスC_Col_Addの訂正内容CCに格納する。またフラグ情報ECC_Flagは、不揮発性メモリ1の外部にある不図示のメモリコントローラに対して、ECC訂正処理の有無を示すビットである。フラグ情報ECC_Flagは、ECCチェックによりエラーが検出された時点で“1”にセットされ、コマンドレジスタ/ステートコントロール部13へ入力し、訂正が完了した後にコマンドレジスタ/ステートコントロール部13から出力される信号FLAG_RSTにより“0”へリセットされる。
D(i)を訂正コラムアドレスC_Col_Addの訂正内容CCに格納する。またフラグ情報ECC_Flagは、不揮発性メモリ1の外部にある不図示のメモリコントローラに対して、ECC訂正処理の有無を示すビットである。フラグ情報ECC_Flagは、ECCチェックによりエラーが検出された時点で“1”にセットされ、コマンドレジスタ/ステートコントロール部13へ入力し、訂正が完了した後にコマンドレジスタ/ステートコントロール部13から出力される信号FLAG_RSTにより“0”へリセットされる。
本実施形態では、コラムアドレスCol_Add=mのメモリセルにおいてECCエラーが検出された場合を説示しているため、S3からS4へ進む。そして訂正情報CDがECC訂正情報格納部20へ格納される。ここで訂正情報CDの内容は、訂正バンクアドレスC_BA_Add=バンク0、訂正ワード線アドレスC_WL_Add=i、訂正コラムアドレスC_Col_Add=m、訂正内容CCはデータをプログラム側へ訂正する旨の情報、またフラグ情報ECC_Flag=1である。
外部の不図示のメモリコントローラは、フラグ情報ECC_Flag=1が入力されることで、不揮発性メモリ1がECCチェック動作中(訂正PGM終了までを含む)であることを認識する。これによりメモリコントローラは、ECCチェックが終了するまで電源を落とさないように不揮発性メモリ1への供給電源をコントロールすることが可能となる。なお不揮発性メモリ1からメモリコントローラへのフラグ情報ECC_Flagの伝達は、コマンドレジスタ/ステートコントロール部13へ入力し、および不図示のDQピンおよび専用ピンを介して、出力される信号STATUSにて行われる。コマンドレジスタ/ステートコントロール部13内のフラグ情報レジスタへフラグ情報ECC_Flagを格納し、メモリコントローラが必要に応じてそのフラグ情報レジスタを参照するようにしても良い。
次にS5において、プログラム情報PDの再構成が行われる。プログラム情報PDの再構成は、外部からのプログラム情報PDに、訂正情報CDを組み込む動作である。S5では、プログラム情報修正/ECCデータ作成回路12において、ECC訂正情報格納部20に格納された訂正情報CDに基づき、プログラム情報PDの再構成が行われる。また、プログラム情報PDによりECCコードECが変更となるため、プログラム情報PDの再構成は必要になる。
S5で行われるプログラム情報の再構成の詳細について、図2ないし図7を用いて説明する。プログラム情報の再構成に先立ち、外部からのプログラム対象アドレスのプログラム情報PDが、I/Oバッファ11に格納されている。本実施形態では、プログラム情報PD(i)=0が、I/Oバッファ11に入力および保持されている。ここでプログラム情報PDは、例えば16ビット入出力の場合には16ビット並列にI/Oバッファ11に入力されてもよい。なお本実施形態では説明の簡略のため、1ビット入出力の場合を説明する。
図7のS12において、プログラム対象となる一つのワード線のメモリセルおよびECCメモリセルの読み出しを行う。本実施形態では、リード回路18において、プログラム対象であるワード線アドレスWL_add=iのワード線に接続されるメモリセルからデータMD(i)およびECCコードEC(i)がリードされ、ECC検出回路19内の不図示のレジスタに保持される。ただし、図5のS1にて既にプログラム対象となる一つのワード線のメモリセルおよびECCメモリセルの読み出されたデータMD(i)およびEC
CコードEC(i)が、リード回路18において図7のS12までラッチされている場合は、図7のS12を省略することができる。ただしこの条件は、後述に示す第2実施形態のように自バンクの全ワード線のECC処理を行った後、全ワード線の訂正書き込み処理を行う場合の事例においては、S12時のS1におけるリード回路18にラッチされるデータMD(i)およびECCコード(i)は、プログラム対象のデータMDおよびECCコードECと一致しないため除く。
CコードEC(i)が、リード回路18において図7のS12までラッチされている場合は、図7のS12を省略することができる。ただしこの条件は、後述に示す第2実施形態のように自バンクの全ワード線のECC処理を行った後、全ワード線の訂正書き込み処理を行う場合の事例においては、S12時のS1におけるリード回路18にラッチされるデータMD(i)およびECCコード(i)は、プログラム対象のデータMDおよびECCコードECと一致しないため除く。
S13において、I/Oバッファ11に格納されたプログラム対象アドレスのプログラム情報PDを、第1プログラムバッファ41に格納する。本実施形態では、プログラム情報PD(i)=0が第1プログラムバッファ41に格納される(図4、矢印A1)。
S14において、先程読み出したデータMD(i)からプログラム情報PD(i)を除く読み出しデータを、第1プログラムバッファ41へ格納する。本実施形態では、コラムアドレスCol_Add=0のデータを除く、コラムアドレスCol_Add=1ないしmのデータが、第1プログラムバッファ41へ格納される(図4、矢印A2)。これにより、図4(d)に示すように、プログラム対象ワード線の訂正前のプログラム内容を表す、訂正前プログラム情報PPD(i)が生成される。
S15において、まず優先的に、第1プログラムバッファ41から第2プログラムバッファ43へ、外部からのプログラムデータであるプログラム情報PD(i)を移す動作が行われる。これはプログラム情報PD(i)に対しては、訂正は行われないためである。なお当該移送動作は、プログラム情報修正回路31において1ビットずつ行われる。ただし、入出力が複数I/Oの場合は、コラムアドレスCol_Addごとに複数I/O並列に1ビットずつ当該移送動作が行われる。本実施形態では、プログラム情報PD(i)(コラムアドレスCol_Add=0)が、第1プログラムバッファ41から第2プログラムバッファ43へ入力される(図4、矢印A3)。
ここでプログラム情報PD(i)を移送する動作を、図2および図8を用いて詳細に説明する。図8は、一致信号PGMAdd_MATCH、訂正信号ECCINO、信号ECCDの値と、オア回路OR1の出力信号COMPDとの相関を示す真理値表である。
訂正アドレス検出回路42は、プログラムアドレスPGM_Addを用いることにより、プログラム情報PD(i)を移送する期間中において、ハイレベルの一致信号PGMAdd_MATCHを出力する。よってアンド回路AD1は、外部からのプログラムデータを訂正せずに出力する。またアンド回路AD2、AD3の出力はローレベルで固定される。。ECC訂正情報格納部から入力される訂正アドレスECC_AddとプログラムアドレスPGM_Addが一致した場合においても、外部からのプログラム情報PD(i)に対し訂正を行う必要がないため、ハイレベルの一致信号PGMAdd_MATCHおよびハイレベルのECCINOを出力する。すると図8(1)の真理値表に示すように、オア回路OR1の出力である出力信号COMPDは、プログラム情報PDによって決まることになる。すなわち、プログラム情報PD(i)が、第1プログラムバッファ41から第2プログラムバッファ43へ訂正されることなく移送される。
S16ないしS20において、外部からのプログラム対象外アドレスの訂正を行う。プログラム対象アドレスのプログラムデータであるPD(i)の第2プログラムバッファ43への移送が完了した後、S16へ進む。S16では、アドレスバッファ16内に配置されている不図示のコラムアドレスカウンタが、コマンドレジスタ/ステートコントロール部13から入力される信号Col_pulseにより、一つインクリメントされる。本実施形態では、コラムアドレスCol_Add=0のデータを格納することで、プログラム対象アドレスのプログラムデータの全てが格納される。よって「コラムアドレスカウンタ」がコラムアドレスCol_Add=1とされることで、S16が開始される。このとき、プログラム対象アドレス外のデータを移送する期間であるため、訂正アドレス検出回路42は、ローレベルの一致信号PGMAdd_MATCHを出力する。
S17において、訂正アドレス検出回路42にて、アドレスバッファ16にてPGM_Addのコラムアドレスが一つインクリメントされたアドレスCONTと、訂正アドレスECC_Addに含まれる訂正コラムアドレスC_Col_Addとが一致するか否かが検出される。これにより、訂正が必要なメモリセルであるか否かが判定される。ただし、訂正が必要なメモリセルであるか否かは、訂正コラムアドレスC_Col_Addだけでなく、訂正バンクアドレスC_BA_Add、訂正ワード線アドレスC_WL_Addも含めて検出する。なお、訂正メモリセルが一致した場合は、訂正アドレス検出回路42が、コマンドレジスタ/ステートコントロール部13へハイレベルの信号CPGMAdd_MATCHを出力する。コマンドレジスタ/ステートコントロール部13は、ハイレベルのCPGMAdd_MATCHが入力されると、ECC訂正情報格納部20に格納されている訂正情報CDが格納されている不図示のレジスタのアドレスを一つインクリメントする信号である信号ECC_LOAD_pulseをハイレベルとして、ECC訂正情報格納部20へ入力する。本説明においては、一つのワード線あたり単数ビット訂正する場合のため、ECC訂正情報格納部20にハイレベルの信号ECC_LOAD_pulseが入力されても訂正情報CDが1つしか格納されていないため、上記動作を行わないが、一つのワード線あたり複数ビットの訂正が可能な場合は、ハイレベルの信号ECC_LOAD_pulseが入力されると、ECC訂正情報格納部20に格納されている訂正情報CDが格納されている不図示のレジスタのアドレスを一つインクリメントし、訂正アドレス検出回路42へ入力するものとする。
一致が検出されない(S17:No)と、訂正がないと認識され、S18へ進む。S18において、訂正アドレス検出回路42は、訂正がない旨を示すハイレベルの訂正信号ECCINOを出力する。ローレベルの一致信号PGMAdd_MATCHにより、アンド回路AD1の出力はローレベル固定となる。ハイレベルの訂正信号ECCINOにより、アンド回路AD3の出力はローレベル固定となる。そしてアンド回路AD2の出力は、プログラム情報PDによって決まる。すると図8(2)の真理値表に示すように、オア回路OR1の出力である出力信号COMPDは、プログラム情報PDによって決まる。すなわち、コラムアドレスCol_Add=1のデータ(訂正なし)が第1プログラムバッファ41から第2プログラムバッファ43へ訂正されることなく移送される。そしてS20へ進む。
一方、S17において一致が検出される(S17:Yes)と、訂正があると認識され、S19へ進む。S19において、訂正アドレス検出回路42は、訂正がある旨を示すローレベルの訂正信号ECCINOを出力する。ローレベルの一致信号PGMAdd_MATCHにより、アンド回路AD1の出力はローレベル固定となる。ローレベルの訂正信号ECCINOにより、アンド回路AD2の出力はローレベル固定となる。また本説明においてはプログラム時を説明しているので、信号ECCDはローレベルであり、アンド回路AD3の出力はローレベル固定となる。すると図8(3)の真理値表に示すように、オア回路OR1の出力信号COMPDは、ローレベルとされる。すなわち、訂正信号ECCINOが”L”のときは訂正があると見做し、読出しデータの内容に関わらず、出力信号COMPDをプログラムビットを示す”0”とする。そしてS20へ進む。
S20において、訂正の有無を確認したメモリセルが、最終コラムアドレスのメモリセルであるか否かが判断される。そしてプログラム対象のワード線内の全メモリセルについてチェックが終了していないと判断される場合(S20:No)にはS16へ戻り、全メモリセルについてチェックが終了していると判断される場合(S20:Yes)にはフローを終了する。これにより、S16ないしS19が、外部からのプログラム対象外の全てのデータについてチェックが行われるまで繰り返される。よってプログラム対象の一つのワード線内の全メモリセルについて、チェックと訂正が行われる。なお、後述の第1実施形態の第3実施例や第2実施形態のように、自バンクまたは他バンク内の全ワード線においてECC処理を実行させる場合においては、コラムアドレスだけでなくワード線アドレスのインクリメントが必要となる。一つのワード線のECC処理またはその訂正プログラム処理が終了するたび、コマンドレジスタ/ステートコントロール部13から入力されるWL_pulseによりワード線アドレスを一つインクリメントし、インクリメントしたワード線の全コラムアドレスに対し、訂正の有無のチェックを行う。以下、全ワード線についてのチェックが終了するまで繰り返す必要がある。
本実施形態では、コラムアドレスCol_Add=1から(m−1)のメモリセルについては、訂正アドレスECC_Addと一致検出がされない。よってデータを訂正せずに、第2プログラムバッファ43に格納する(図4、矢印A4)。しかしコラムアドレスCol_Add=mのメモリセルについては一致検出がされるため、データを”1”から”0”へ訂正した上で、第2プログラムバッファ43へ格納する(図4、矢印A5)。
これにより、プログラム情報の再構成が終了する。そして図4(e)に示すように、再構成プログラム情報RPD(i)が、第2プログラムバッファ43に保持される。
またECCデータ生成回路32には、第2プログラムバッファ43から再構成プログラム情報RPD(i)が入力される。ECCデータ生成回路32は、再構成プログラム情報RPDに基づいて再構成ECCコードREC(i)を生成する(図4、矢印A7)。生成された再構成ECCコードRECは、第2プログラムバッファ43へ格納される。以上により、S5におけるプログラム情報の再構成が終了する。
図5のS7ないしS9において、外部からのプログラム対象のワード線上のメモリセルおよびECCメモリセルに対し、再構成プログラム情報RPD(i)および再構成ECCコードREC(i)の書込みが行われる。書込み動作は、プログラムルーチンまたは/およびイレースルーチンによって行われる。プログラムルーチンとイレースルーチンとの切り替えは、コマンドレジスタ/ステートコントロール部13から出力される信号MODEによって行われる。信号MODEがローレベルでプログラムルーチンが選択され、信号MODEがハイレベルでイレースルーチンが選択される。第1実施例では、プログラムルーチンのみが用いられる場合を説明しているため、信号MODEがローレベルとされる。ローレベルの信号MODEに応じて、図3において、モード切替部57のトランジスタQ4は導通状態、Q3が非導通状態とされる。またセレクタ58はノードBを選択する。信号MODEは、ECC訂正情報格納部20から出力される再構成プログラム情報RPD(i)における訂正するメモリセルのデータ訂正方向を示す信号ECCDおよびプログラム情報修正/ECCデータ作成回路12から出力される再構成ECCコードREC(i)の遷移方向を示すECC_COMPにより生成される。
まず、再構成プログラム情報RPDのメモリセルへのプログラムを説明する。当該プログラムは、データ用プログラム/イレース制御回路34によって行われる。例として、コラムアドレスCol_Add=2のメモリセルへのプログラム動作を説明する。
S7において、データ用プログラム/イレース制御回路34において、プログラムベリファイにより、書込み対象のメモリセルがすでにプログラムされているか否かを確認する。
具体的には、図3において、信号DLBがハイレベルの期間に1ビット分のデータPBOUT2がデータ入力部54に入力される。データPBOUT2は、信号DLBの立下りでライトアンプラッチ55にラッチされる。データPBOUTは、プログラムする時(データ0)はローレベル、プログラムしない時(データ1)はハイレベルである。よってノードCはプログラムする時(データ0)はローレベルとされ、プログラムしない時(データ1)はハイレベルとされる。またノードBには、ノードCの反転データがラッチされる。今回の例では、プログラムするデータであるコラムアドレスCol_Add=2のデータPBOUT(データ0)がラッチされるため、ノードCはローレベル、ノードBはハイレベルとされる。
S8において、プログラムベリファイをもとにプログラム実行の有無を確認する。アクセス先のメモリセルのデータが既にプログラム状態(データ0)の場合には、信号DAVはローレベルとされ、トランジスタQ2が導通するため、ノードBはローレベル、ノードCはハイレベルにリセットされ、プログラム不可とされる。そしてプログラムベリファイにパスした場合(S8:Yes)であるとして、そのメモリセルへのプログラムをせずに終了する。これにより、すでにプログラムされたメモリセルに対して、更にプログラムストレスが与えられることが防止される。
一方、S8において、アクセス先のメモリセルのデータがイレース状態(データ1)の場合には、信号DAVはハイレベルとされ、トランジスタQ1が導通するため、ノードBはハイレベル、ノードCはローレベルとされ、プログラム可能とされる。そしてプログラムベリファイにパスしなかった場合(S8:No)であるとして、S9へ進む。ここでは、コラムアドレスCol_Add=2のメモリセルは、書込み前にはイレース状態のため、信号DAVはハイレベルとなり、プログラム可能とされるため、S9へ進む。
S9において、プログラムベリファイにパスしなかったコラムアドレスCol_Add=2のメモリセルに対し、プログラムが行われる。
プログラム動作時には、図3において、コマンドレジスタ/ステートコントロール部13からアンド回路53へ入力される信号PGMpulseによって、プログラムのストレス期間が定められる。アンド回路53からハイレベルのプログラム信号PGが入力されると、レベルシフタ51は、プログラム用電圧VPROGをプログラム時の高電位として有する書込みデータDATABを出力する。またワード線WL(i)へ電圧VWLが印加され、Yゲート4に電圧VCDが印加される。そして書込みデータDATABを、Yゲート4内のコラムデコーダスイッチを介してコラムアドレスCol_Add=2のビット線へ転送する。プログラム用電圧VPROGは、ビット線を経由して、メモリセルのドレインへ与えられる。また電圧VCDによりデータDATABの電圧降下が防止される。これにより、メモリセルへのプログラムが行われる。
S9が終了するとS7へ進み、再度プログラムベリファイを行う。プログラム対象の全てのメモリセルおよびECCメモリセルが、プログラムベリファイをパスしない場合には、S9へ進むことで(S8:No)、S7ないしS9が繰り返される。
一方、処理が終了している場合(S8:Yes)にはS10へ進み、プログラム処理を実行したワード線のフラグ情報ECC_Flagが“1”であるか確認する。S10およびS11において、フラグ情報ECC_Flagのリセットルーチンが行われる。確認する方法としては、S3におけるECCチェックのエラーが検出されたこと示す信号であるECC検出信号ECC_Detや、S5におけるプログラム情報の再構成において訂正メモリセル判定時に訂正アドレス検出回路42から出力されるCPGMAdd_MATCH等により確認することができる。プログラム処理を実行したWLのフラグ情報ECC_Flagが“0”である場合(S10:No)にはフローを終了する。一方、プログラム処理を実行したワード線のフラグ情報ECC_Flagが“1”である場合(S10:Yes)は、S11へ進み、ECC訂正情報格納部20に格納される訂正対象WLのフラグ情報ECC_Flagを“0”にリセットしてフローを終了する。ECC訂正情報格納部20から出力されるフラグ情報ECC_Flagを“0”にリセットすることで、コマンドレジスタ/ステートコントロール部13から出力される信号STATUSを介して、メモリコントローラにECCチェックが終了したことが報知される。よってメモリコントローラは不揮発性メモリ1への供給電源を落とすことが可能となる。
次に、再構成ECCコードRECのECCメモリセルへのプログラム動作を説明する。当該プログラムは、ECCコード用プログラム/イレース制御回路33によって行われる。なおプログラムの具体的態様は、データ用プログラム/イレース制御回路34における態様と同様であるため、詳細な説明は省略する。
ここで再構成された再構成ECCコードRECは、ECCメモリセルに以前に保持されているECCコードECとは全く異なるコードとなる。よって再構成ECCコードRECをECCメモリセルに上書きする場合には、例えば、同一ワード線上にECCコードを保持するための第1領域と第2領域とフラグ領域とを備えるとしてもよい。このとき通常のプログラム動作では第1領域にECCコードが書込まれる。そしてECC訂正が行われると、第2領域にECCコードを追記すると共に、第2領域を使用する旨をフラグ領域に保持する。また例えば、後述するようにプログラムルーチンとイレースルーチンとの両方を用いることによっても、再構成ECCコードRECをECCメモリセルに上書きすることが可能となる。
なおプログラム動作は、第1実施形態では、ビットラインごとにライトアンプを備え、一斉に一つのワード線の全ビットラインに対しプログラムが行われる形態として説明しているが、ビットライン数よりも少ないライトアンプを時分割的に用いてプログラムを行う形態としてもよい。これらの動作は、プログラム対象となるワード線のメモリセルおよびECCメモリセルに対し、同時に行われる。また、後述の第1実施形態の第2実施例のイレース動作、第2実施形態、第3実施形態、第4実施形態においても同様である。
第1実施形態の第2実施例に係る不揮発性メモリ1の動作を説明する。第2実施例は、イレース方向(データ0からデータ1)へ訂正する場合の回路である。そして「1ビット単位」でイレースすることができる回路である。第2実施例が適用される不揮発性メモリ1としては、例えばRRAM(Resistance Random Access Memory)、PRAM(Phase
Change Random Access Memory)等が挙げられる。
Change Random Access Memory)等が挙げられる。
図9を用いて、第2実施例に係る不揮発性メモリ1の動作を説明する。S61において、プログラム情報PDの再構成が行われる。なおS61は、第1実施例の図5のS1ないしS5と同様であるため、詳細な説明は省略する。なお再構成プログラム情報RPDは一つのワード線分があればよい。
S67ないしS69において、プログラムルーチンが行われる。当該プログラムルーチンは第1実施例の図5のS7ないしS9と同様であるため、詳細な説明は省略する。
S71において、プログラムルーチンからイレースルーチンへモードの切り替えが必要か否かが、判断される。切り替えの必要がない場合には(S71:No)、S75へ進む。一方、切り替えの必要がある場合には(S71:Yes)、モードの切り替えが行われる。プログラムからイレースへのモードの切り替えは、コマンドレジスタ/ステートコントロール部13から出力される信号MODEがローレベルからハイレベルへ遷移することで行われる。具体的には、コマンドレジスタ/ステートコントロール部13は、ECC訂正情報格納部20から出力される再構成プログラム情報RPD(i)において訂正するメモリセルが、イレース方向の訂正を行う旨のハイレベルの信号ECCDが入力される。それと共に、再構成ECCコードREC(i)のイレース方向の遷移を示す旨のローレベルの出力信号ECC_COMPが入力されると、ハイレベルの信号MODEを出力する。よってハイレベルの信号MODEに応じて、図3において、モード切替部57のトランジスタQ4は非導通状態、Q3が導通状態とされる。またセレクタ58はノードAを選択する。
S72ないしS74において、イレースルーチンが行われる。S72において、データ用プログラム/イレース制御回路34において、イレースベリファイにより、書込み対象のメモリセルがすでにイレースされているか否かを確認する。
具体的には、図3においてノードCは、イレースする時(データ1)はハイレベルとされ、イレースしない時(データ0)はローレベルとされる。またノードBには、ノードCの反転データがラッチされる。
S73において、イレースベリファイをもとにイレース実行の有無を確認する。アクセス先のメモリセルのデータが既にイレース状態(データ1)の場合には、信号DAVはハイレベルとされ、トランジスタQ1が導通するため、ノードBはハイレベル、ノードCはローレベルにリセットされ、イレース不可とされる。そしてイレースベリファイにパスした場合(S73:Yes)であるとして、そのメモリセルへのイレースをせずに終了する。これにより、すでにイレースされたメモリセルに更にイレースストレスが与えられることが防止される。
一方、S73において、アクセス先のメモリセルのデータがプログラム状態(データ0)の場合には、信号DAVはローレベルとされ、トランジスタQ1が非導通となるため、ノードBはローレベル、ノードCはハイレベルとされ、イレース可能とされる。そしてイレースベリファイにパスしなかった場合(S73:No)であるとして、S74へ進む。
S74において、イレースベリファイにパスしなかったメモリセルに対し、イレースが行われる。
S74が終了するとS72へ進み、再度イレースベリファイを行う。イレース対象の全てのメモリセルおよびECCメモリセルが、イレースベリファイをパスしない場合は、S74へ進むことで(S73:No)、S72ないしS74が繰り返される。
一方、処理が終了している場合(S73:Yes)にはS75へ進み、プログラム処理を実行したワード線のフラグ情報ECC_Flagが“1”であるか確認する。S75およびS76において、フラグ情報ECC_Flagのリセットルーチンが行われる。当該フラグ情報ECC_Flagリセットルーチンは、第1実施例の図5のS10およびS11と同様であるため、詳細な説明は省略する。ECC訂正情報格納部20から出力されるフラグ情報ECC_Flagを“0”にリセットすることで、コマンドレジスタ/ステートコントロール部13から出力される信号STATUSを介して、メモリコントローラにECCチェックが終了したことが報知される。
このように、第2実施例の基本動作としては、S67ないしS69においてプログラム動作を先に行った後に、S72ないしS74においてイレース動作を行う。これにより外部からのプログラム対象のワード線に対して優先的にプログラム動作を行うことが可能となる。なお、イレース動作を先に行った後にプログラム動作を行っても、本発明の効果が得られることは言うまでもない。
以上より第2実施例に係る不揮発性メモリ1では、1ビット単位でイレースが可能であることから、外部から上書きデータとして入力されるプログラム情報PDにイレースデータ(データ1)が含まれている場合にも対応することが可能となる。よってプログラム情報PDの自由度を高めることができる。ただし、この場合はコマンドレジスタ/ステートコントロール部13から出力される信号MODEは、ECC訂正情報格納部20から出力される再構成プログラム情報RPD(i)における訂正するメモリセルのデータ訂正方向を示す信号ECCDおよびプログラム情報修正/ECCデータ作成回路12から出力される再構成ECCコードREC(i)の遷移方向を示すECC_COMPだけでなく、プログラム情報PDの内容を含めた上でのプログラムルーチンとイレースルーチンの切り替えが必要となる。なお、上書きを可能とする場合は、プログラム情報修正回路31は上書きを想定していない回路のため、論理変更が必要となる。(ただし、外部から入力される上書きデータが、前回プログラムしたPGMデータの内容を保持している場合は除く。)
第1実施形態の第3実施例に係る不揮発性メモリ1の動作を説明する。第3実施例は、プログラム方向(データ1からデータ0)の訂正に加え、イレース方向(データ0からデータ1)へ訂正する場合の回路である。そして「セクタ単位」でイレースすることができる回路である。
図10および図11を用いて、第3実施例に係る不揮発性メモリ1の動作を説明する。S81において、プログラム情報PDの再構成が行われる。なおS81は、第1実施例の図5のS1ないしS5と同様であるため、詳細な説明は省略する。なお第3実施例ではセクタ単位でイレースするため、セクタ内の全ワード線分の再構成プログラム情報RPDを作成・保持する必要がある。よって、第1プログラムバッファ41および第2プログラムバッファ43は、セクタ内の全ワード線分のデータを保持できるレジスタ容量を有している。
S87ないしS89において、イレースルーチンが行われる。これにより、セクタ内の全メモリセルおよびECCメモリセルがイレースされる。具体的な動作は第2実施例の図9のS72ないしS74と同様であるため、詳細な説明は省略する。
S91において、イレースルーチンからプログラムルーチンへモードの切り替えが行われる。
S92ないしS94、S97およびS98において、プログラムルーチンが行われる。セクタ単位でイレースされているため、セクタ内の全ワード線に対してプログラムが必要となる。S92において、書込み対象のメモリセルがすでにプログラムされているか否かを確認する。S93において、プログラムベリファイにパスしたか否かが判断される。プログラムベリファイにパスした場合(S93:Yes)にはS95へ進む。プログラムベリファイにパスしなかった場合(S93:No)にはS94へ進む。
処理が終了していない場合(S93:No)には、S94でプログラムを実行した上で、S92へ戻り、再度プログラムベリファイを行う。プログラム対象の全てのメモリセルおよびECCメモリセルが、プログラムベリファイをパスしない場合は、S94へ進むことで(S93:No)、S93ないしS94が繰り返される。
一方、処理が終了した場合(S93:Yes)には、S95へ進み、プログラム処理を実行したWLのフラグ情報ECC_Flagが“1”であるか確認する。S95およびS96において、フラグ情報ECC_Flagのリセットルーチンが行われる。当該フラグ情報ECC_Flagリセットルーチンは、第1実施例の図5のS10およびS11と同様であるため、詳細な説明は省略する。ECC訂正情報格納部20から出力されるフラグ情報ECC_Flagを“0”にリセットすることで、コマンドレジスタ/ステートコントロール部13から出力される信号STATUSを介して、メモリコントローラにECCチェックが終了したことが報知される。S97においてセクタ内の全てのワード線について処理が終了したか否かが判断され、処理が終了していない場合(S97:No)には、S98でワード線アドレスが一つインクリメントされた上でS92へ戻る。一方、処理が終了した場合(S97:Yes)にはフローを終了する。
このように、第3実施例の基本動作としては、S87ないしS89においてイレース動作を先に行った後に、S92ないしS94、S97およびS98においてプログラム動作を行う。このときプログラム動作にかかる時間とイレース動作にかかる時間とが略同等であれば、第2実施例と同様の効果を得ることが可能となる。プログラム時間とイレース時間とが同等であるメモリとしては、例えばプログラムとイレースとをFN−トンネリングで行う原理のメモリ、RRAM、PRAM等が挙げられる。
これにより第3実施例に係る不揮発性メモリ1では、セクタ単位でイレースが可能であることから、外部から上書きデータとして入力されるプログラム情報PDにイレースデータ(データ1)が含まれている場合にも対応することが可能となる。よってプログラム情報PDの自由度を高めることができる。
以上より得られる、第1実施形態の第1実施例ないし第3実施例に係る不揮発性メモリ1の効果を説明する。従来の不揮発性メモリにおいては、起動時またはアイドル時に書き込まれたデータ自身を訂正するため、訂正結果を書き込むための専用の時間が必要となる。よってビジー期間が発生していた。しかし第1実施形態に係る不揮発性メモリ1では、外部からのプログラム対象のデータを書き込む際に必ず必要とされる書込み時間に隠れて、訂正データの書込みをするため、訂正を書き込むための専用の時間が排除できる。よってビジー期間を作らないため、外部アクセス速度を高速化できる。
また従来の不揮発性メモリにおいては、読出し時のたびに読み出したデータにECC処理を掛けた上で外部端子へ出力するため、外部アクセスが低下していた。しかし第1実施形態に係る不揮発性メモリ1では、書き込まれたデータ自身を訂正するので、読出し時のたびに読み出したデータにECC処理を掛ける必要がない。読出しアクセスに含まれるECC処理が排除できる。よって外部アクセス速度を高速化できる。そして、書き込まれたデータ自身が訂正されるため、リテンション不良等の影響を排除することができる。よって不揮発性メモリ1の信頼性を高めることができる。
本発明の第2実施形態を説明する。第2実施形態は、自バンクのワード線への外部プログラムの時、その自バンク内のすべてのワード線に関わるメモリセルのECC処理と訂正書き込み処理を組み込む形態である。以下、第1実施形態に係る不揮発性メモリ1(図1)の図面を用いて説明する。第2実施形態においても、第1実施形態同様、1ワード線あたり単数ビット訂正する場合を説明する。
外部の不図示のメモリコントローラから、バンクBK0に対してプログラム動作を行う旨の指示がされることで、図12および図13に示すフローが開始される。本実施形態では、例として、外部からのプログラム対象として、バンクアドレスBA_Add=0、ワード線アドレスWL_Add=i、コラムアドレスCol_Add=0が選択された場合を説明する。
ECCチェックでは、まずS121において、入力されたプログラムアドレスPGM_Addより、バンクBK0内のワード線WL(i)のメモリセルおよびECCメモリセルのリードを行う。
次にS122において、ECC検出回路19において、ECCメモリセルから読出したECCコードEC(i)を用いて、メモリセルから読み出したデータMD(i)に対してECCチェックを行う。なおECCチェックは、一般的なECCチェック方法により行えばよいため、ここでは説明を省略する。第2実施形態においても第1実施形態同様に、ECC検出回路19はECCチェックによりエラーを検出した場合、エラーを検出したことを示す信号であるECC検出信号ECC_Detをコマンドレジスタ/ステートコントロール部13へ出力する。
ECCチェックでエラーが検出されない場合(S123:No)は、S125へ進む。一方、ECCチェックでエラーが検出された場合(S123:Yes)は、S124へ進み、訂正情報CD(WL、訂正データ等)をECC訂正情報格納部20に格納する。
ここで訂正情報CDは、図14に示すように、バンクBK0内のk+1本のワード線の各々に対応して、k+1本分が備えられる不図示のレジスタが必要となる。尚、単数ビット訂正の場合は、k+1本分のレジスタ容量でよいが、複数ビット訂正可能な場合は、1ワード線あたりの訂正ビット数×(k+1)分のレジスタ容量が必要となる。
S125において、バンクBK0内の全てのワード線について処理が終了したか否かが判断される。処理が終了している場合(S125:Yes)には、S131へ進む。一方、処理が終了していない場合(S125:No)には、S126へ進み、ワード線アドレスが一つインクリメントされた上でS127へ進む。そしてS127において外部からのプログラム対象外のワード線上のメモリセルおよびECCメモリセルのリードが行われた上で、S122へ戻る。
以下、全てのワード線についてS122ないしS127が繰り返されることで、バンクBK0内の全てのワード線上のメモリセルおよびECCメモリセルについて読出しおよびECCチェックを行うことができる。そして、バンクBK0内の全てのワード線に関する訂正情報CDを、ECC訂正情報格納部20に保持することができる。
なお、このリード動作にかかる時間は、プログラム動作に比して無視できる程度に小さい。よってプログラム動作に先立ってバンクBK0内の全てのワード線についてのリード動作を挿入しても、不揮発性メモリ1の動作速度に与える影響は無視できる程度に小さなものである。
次にS131において、1ワード線についてのプログラム情報PDの再構成が行われる。なお再構成の方法は第1実施形態と同様であるため、ここでは詳細な説明は省略する。
S132ないしS134において、プログラムルーチンが行われる。当該プログラムルーチンは第1実施例の図5のS7ないしS9と同様であるため、詳細な説明は省略する。一方、処理が終了した場合(S133:Yes)には、S135へ進み、プログラム処理を実行したワード線のフラグ情報ECC_Flagが“1”であるかを確認する。S135およびS136において、フラグ情報ECC_Flagのリセットルーチンが行われる。当該フラグ情報ECC_Flagリセットルーチンは、第1実施例の図5のS10およびS11と同様であるため、詳細な説明は省略する。ECC訂正情報格納部20に格納されている訂正情報CDのフラグ情報ECC_Flagを全て“0”にリセットすることで、コマンドレジスタ/ステートコントロール部13から出力される信号STATUSを介して、メモリコントローラにECCチェックが終了したことが報知される。なお、プログラムルーチンの最初のプログラムは、外部からのプログラム対象アドレスを優先し、外部からのプログラム対象アドレスからプログラム動作を行うものとする。メモリデバイス外部付加的要因によって、プログラム環境が変化しても、顧客の指定したプログラム対象アドレスが先に書き込まれることで信頼性が保証される。
S137において、バンクBK0内の全てのワード線についてプログラムが終了したか否かが判断される。全てのワード線についてプログラムが終了している場合(S137:Yes)には、フローを終了する。一方、全てのワード線についてプログラムが終了していない場合(S137:No)には、S183へ進み、ワード線アドレスを1インクリメントしてS139に進み、ECC訂正情報格納部20に格納された訂正アドレスECC_Addに格納される訂正ワード線アドレスC_WL_Addと比較し、訂正対象WLの有無の確認を行う。一致する場合(S138:Yes)はS131へ戻り、訂正対象WLの訂正プログラム処理を行う。一致しない場合(S138:No)は、S137へ戻り、ワード線アドレスを1インクリメントしてS138に進み、再度確認を行い、バンク内の全てのワード線について訂正プログラムが終了するまで、S131ないしS134およびS138、139を繰り返す。
以上より図12および図13のフローでは、外部からのプログラム対象として選択されたワード線以外の全てのワード線について、まとめて、ECCチェックおよびプログラムが行われる。すなわち、(1)全ワード線のリードを行った後に、(2)外部からのプログラム対象の1ワード線に対しプログラムが行われ、(3)最後に外部からのプログラム対象外の複数ワード線にプログラムが行われる。なお、本フローにおいては、外部からのプログラム対象アドレスのプログラムを行った後、訂正対象WLの検出を行い、一致した場合のみプログラム動作を行うことでプログラムルーチンの処理時間を短縮している。プログラムルーチンの処理時間に余裕がある場合は、本フローのように訂正対象WLの検出を行わず、全ワード線ごとにプログラム動作を行ってもよい。
なお、第2実施形態の動作は図12および図13に示す動作に限られない。図15のフローに示す動作でもよいことは言うまでもない。S140において、外部からのプログラム対象の一つのワード線に対して、リードおよび訂正データのプログラムが行われる。なお詳細なフローは、第1実施形態の図5におけるS1ないしS10と同様であるため、詳細な説明は省略する。
次にS141へ進み、バンクBK0内の複数のワード線のうちから、外部からのプログラム対象外の一つのワード線のメモリセルおよびECCメモリセルが、リードされる。
次にS142においてECCチェックが行われる。なおこのとき、読み出したデータを保持するレジスタは、一つのワード線分で足りる。
ECCチェックでエラーが検出された場合(S143:Yes)は、S144へ進み、修正プログラム処理を行った上で、S146へ進む。一方、ECCチェックでエラーが検出されない場合(S143:No)は、S145へ進む。S144の修正プログラムは、第1実施形態の図5におけるS4ないしS11と同様であるため、詳細な説明は省略する。
S145では、バンクBK0内の全てのワード線について処理が終了したか否かが判断される。処理が終了している場合(S145:Yes)には、フローを終了する。一方、処理が終了していない場合(S145:No)には、S146へ進む。S146では、ワード線アドレスが、一つインクリメントされた上でS141へ戻る。
以上より、図15のフローでは、外部からのプログラム対象として選択された一つのワード線以外のワード線について、1本ずつ、ECCチェックおよびプログラムが行われる。すなわち、(1)外部からのプログラム対象の一つのワード線に対してリードおよび訂正データのプログラムを行った後に、(2)外部からのプログラム対象外の複数ワード線のリードを行い、(3)最後に外部からのプログラム対象外の複数ワード線にプログラムが行われる。これにより、一つのワード線ごとにECC検証およびデータ訂正を行うため、ECC訂正情報格納部20のレジスタの容量を大幅に削減することが可能となる。
以上より得られる、第2実施形態に係る不揮発性メモリ1の効果を説明する。従来の不揮発性メモリにおいては、アイドル時に不揮発性メモリがメモリコントローラからのコントロールを受けずに自発的にデータ訂正を行う場合、不揮発性メモリはその訂正期間中はビジーとなる。しかしメモリコントローラのシステムでは不揮発性メモリがビジー状態であることを知ることができない。そしてビジー状態の期間中にメモリコントローラから不揮発性メモリへアクセスコマンドが発行されると、メモリシステムはハングする。しかし第2実施形態に係る不揮発性メモリ1では、外部からのアクセス要求に応じて行われるプログラム期間に付加する形で、アクセス対象外のワード線上のデータもECC処理するものである。すわなち、メモリコントローラからの指令に応じて訂正を行うため、メモリコントローラのシステムは不揮発性メモリがビジー状態であることを認識することができる。よってメモリコントローラは、訂正が終了するまでは不揮発性メモリに対して新たなアクセスコマンドを発行することを待つことができる。これにより、メモリシステムのハングを防止する事が可能となる。
また外部からのアクセス対象のワード線については、外部からのプログラム対象のデータを書き込む際に必ず必要とされる書込み時間に隠れて、訂正データの書込みをするため、外部アクセス速度を高速化することができる。
本発明の第3実施形態を説明する。第3実施形態は、自バンクの外部プログラム対象ワード線へのプログラムの際、外部プログラム対象ワード線(外部プログラムアドレス)と同一アドレスである他バンクに存在するワード線(バンクアドレスが異なる前記外部プログラムアドレスと同一なアドレス)に対して、メモリセルのECC処理と訂正書き込み処理を組み込む形態である。ここで外部プログラム対象ワード線を有するバンクを自バンク、外部プログラム対象ワード線を有さないバンクを他バンクと定義している。なお不揮発性メモリの構成は第1実施形態と同様であるため、詳細な説明は省略する。
図16および図17を用いて、第3実施形態に係る不揮発性メモリの動作を説明する。本実施形態では、例として図16(a)に示すように、プログラムアドレスPGM_Addとして、バンクアドレスBA_Add=0、ワード線アドレスWL_Add=i、コラムアドレスCol_Add0が入力され、プログラム情報PD=0が入力される場合を説明する。外部の不図示のメモリコントローラから、バンクBK0に対してプログラム動作を行う旨の指示がされることで、図17に示すフローが開始される。
図17のS151において、プログラムベリファイにより、書込み対象のメモリセルがすでにプログラムされているか否かを確認する。プログラムベリファイは、自バンク(バンクBK0)の、選択ワード線(ワード線WL(i))上のメモリセルに対して行われる。S152において、プログラムベリファイにパスしなかった場合(S152:No)にはS153へ進む。S153において、プログラムベリファイにパスしなかったメモリセルに対し、再度プログラムが行われる。S153が終了するとS151へ戻り、再度プログラムベリファイを行う。プログラム対象の全てのメモリセルおよびECCメモリセルがプログラムベリファイをパスしない場合は、S153へ進むことで(S152:No)、S151ないしS153が繰り返される。一方、処理が終了している場合(S152:Yes)にはS157へ進む。本実施形態では、バンクBK0のデータMD(i)に、プログラム情報PD(i)が上書きされる(図16、矢印A11)。
またS151ないしS153の動作と並行して、S155において、自バンクの外部プログラム対象ワード線と同一ワード線アドレスを有して他バンクに存在するワード線に対して、メモリセルのECCチェックが行われる。このとき、不揮発性メモリで一般的な技術であるSO(simultaneous Operation)機能が利用される。これにより、バンクBK1のワード線WL(i)についての、データMD(i)、ECCコードEC(i)を取得し、ECCコードEC(i)よりECCチェックでECCチェックデータECD(i)を生成する。本実施形態では、データMD(i)とECCチェックデータECD(i)との比較により、バンクBK1のデータMD(i)のコラムアドレスCol_Add=2のメモリセルにおいて、本来0であるデータが1に変化してしまっていることが判明する(図16、矢印A12)。
S156において、ECC修正が必要か否かが、判断される。修正が必要でないと判断(S156:No)される場合には、フローを終了する。一方、修正が必要であると判断(S156:Yes)されると、S157へ進む。
S157では、訂正データがプログラムされる。このとき、プログラム用のプログラム電圧生成部14が、バンクBK0とBK1とで共通に1つしかない(共有する)場合には、S153でのプログラム完了を待って、S157でのプログラムが行われる。なお、バンクBK0とBK1とが各々にプログラム電圧生成部14を備える場合には、S153とS157とを、メモリ技術で一般的なバンク同時アクセス技術を応用して同時に行うことができる。本実施形態では、バンクBK1のデータMD(i)のコラムアドレスCol_Add=2のメモリセルにおいて、データ1がデータ0へ修正される(図16、矢印A13)。S157の修正プログラムの実行は、第1実施形態の図5におけるS4ないしS11と同様であるため、詳細な説明は省略する。
以上より第3実施形態では、SO機能やバンク同時アクセス技術を用いることでバンクごとにプログラム処理やECC処理を並行処理することができる。よって自バンクでのプログラム期間中に、他バンクにおいてECC処理を実行させることができるため、他バンクの外部リードアクセス時にECC処理を組み込まなくても良い設計ができる。これにより、アクセスの高速化を図ることができる。尚、メモリコントローラが自バンクのアクセス中に他バンクのビジーを好まない場合には、後述のモードレジスタ等の設定値の変更によって、その都度、他バンクのECC処理を非活性にすることができる。
なお第3実施形態の動作は、バンク毎に並列処理制御する場合に限られない。SO機能を使用しない場合などバンク毎に並列処理しない場合には、バンク間でシリアル処理を行うことも可能であることは言うまでもない。シリアル処理の例としては、自バンクでのプログラム処理が終了次第、他バンクの処理へ移行し、他バンクでのECCチェックおよび訂正プログラム処理を行うことが挙げられる。
これにより、自バンクでの外部プログラム対象のワード線アドレス(WL)情報を、他バンクでも利用できる効果が得られる。具体的には、アドレスバッファをバンク間で共有できるため、回路規模の縮小化を図ることが可能となる。
本発明の第4実施形態を説明する。第4実施形態は、自バンクの外部プログラム対象ワード線へのプログラムの際、他バンク内のすべてのワード線に関わるメモリセルのECC処理と訂正書き込み処理を組み込む形態である。ここで外部プログラム対象ワード線を有するバンクを自バンク、外部プログラム対象ワード線を有さないバンクを他バンクと定義している。なお不揮発性メモリの構成は第1実施形態と同様であるため、詳細な説明は省略する。
外部の不図示のメモリコントローラから、バンクBK0に対してプログラム動作を行う旨の指示がされることで、図18に示すフローが開始される。
図18のS161ないしS163において、自バンクの外部プログラム対象ワード線へのプログラムが行われる。なおこれらのフローは、第3実施例(図17)のS151ないしS153と同様であるため、詳細な説明は省略する。
またS161ないしS163の動作と並行して、S165において、他バンクに存在する全ワード線に対して、メモリセルのECCチェックが行われる。このとき、SO機能が利用される。
S166においてECCチェックが行われる。そしてS167において、ECC修正が必要か否かが、判断される。修正が必要であると判断(S167:Yes)されると、S170へ進む。一方、修正が必要でないと判断(S167:No)される場合には、S168へ進む。
S168において、他バンク内の全てのワード線についてECCチェックが終了したか否かが判断される。全てのワード線についてプログラムが終了している場合(S168:Yes)には、フローを終了する。一方、全てのワード線についてプログラムが終了していない場合(S168:No)には、S169へ進み、ワード線アドレスを1インクリメントした上でS165へ戻る。これにより、他バンク内の全ワード線についてECCチェックが行われる。
S170では、訂正データがプログラムされる。このとき、プログラム用のプログラム電圧生成部14がバンク自バンクと他バンクとで共通に1つしかない(共有する)場合には、S163でのプログラム完了を待って、S170でのプログラムが行われる。なお、自バンクと他バンクとが各々にプログラム電圧生成部14を備える場合には、S163とS170とを、メモリ技術で一般的なバンク同時アクセス技術を応用して同時に行うことができる。S170の修正プログラムの実行は、第1実施形態の図5におけるS4ないしS11と同様であるため、詳細な説明は省略する。
以上より第4実施形態では、自バンクでのプログラム期間中に、他バンク内の全ワード線においてECC処理を実行させることができるため、他バンクの外部リードアクセス時にECC処理を組み込まなくてもよい設計ができる。これにより、アクセスの高速化を図ることができる。
またメモリコントローラからの指令に応じて他バンクの全ワード線についてECC処理訂正を行うため、メモリコントローラのシステムは不揮発性メモリがビジー状態であることを認識することができる。よってメモリコントローラは、訂正が終了するまでは不揮発性メモリに対して新たなアクセスコマンドを発行することを待つことができるため、メモリシステムのハングを防止する事が可能となる。尚、メモリコントローラが自バンクのアクセス中に他バンクのビジーを好まない場合には、後述のモードレジスタ等の設定値の変更によって、その都度、他バンクのECC処理を非活性にすることができる。
尚、本発明は前記実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内で種々の改良、変形が可能であることは言うまでもない。この発明が適用できる不揮発性記憶装置は、不揮発性メモリセルの構造/原理、メモリセルアレイの構成などに限定されることなく利用できる。図19に示す不揮発性メモリ1aのように、拡張モード設定レジスタ21を備える形態としてもよい。拡張モード設定レジスタ21には、コマンドCMDおよびプログラムアドレスPGM_Addが入力され、ECC活性信号ECC_ENが出力される。ユーザは、外部からのプログラム対象のデータを書き込む際にECCチェックを行うか否かの設定を拡張モード設定レジスタ21に保持することができる。当該設定は、コマンドCMDおよびプログラムアドレスPGM_Addを用いて設定される。ECCチェックを行う場合には、ハイレベルのECC活性信号ECC_ENがコマンドレジスタ/ステートコントロール部13に入力され、コマンドレジスタ/ステートコントロール部13はECCチェックを行うように不揮発性メモリ1aをコントロールする。一方、ECCチェックを行わない場合には、ローレベルのECC活性信号ECC_ENがコマンドレジスタ/ステートコントロール部13に入力され、コマンドレジスタ/ステートコントロール部13はECCチェックを行わないように不揮発性メモリ1aをコントロールする。これにより、ユーザはECC処理の活性/非活性を、その都度選択することが可能となる。
なお本実施形態の訂正情報CDでは、図6に示すように、一つのワード線あたり単数ビット訂正する場合を例示した。しかしこの形態に限られない。一つのワード線あたり複数ビット訂正する形態も可能であることは言うまでもない。図20に、一つのワード線内のjビット分のメモリセルについて訂正することが可能な場合の訂正情報CDaを示す。訂正情報CDaは、一つのコラムアドレスあたり1ビットずつ訂正が検出されることを想定し、訂正コラムアドレスC_Col_Add、訂正内容CC、フラグ情報ECC_flagをそれぞれ訂正するビット数(j個)備える。そしてECC訂正情報格納部20は、j個のフラグ情報ECC_flagのオア(OR)出力をメモリコントローラへ出力する。よって、ECC訂正情報格納部20は、全ての訂正内容がプログラムされるまでメモリコントローラへハイレベルの信号を出力し続ける。これにより、一つのワード線あたりjビット数分のデータを訂正することが可能となる。
なお、プログラム情報PDは書込みデータの一例、訂正情報CDは訂正データの一例、ECC検出回路19はECC処理回路の一例、プログラム情報修正/ECCデータ作成回路12は書き込み制御回路の一例、ECC訂正情報格納部20は訂正情報格納部の一例、第1実施形態における不揮発性メモリの回路図1は第1実施形態を含む不揮発性メモリ1の一例、拡張モード設定レジスタ21を備える不揮発性メモリの回路図1aは拡張モード設定レジスタ21を備える不揮発性メモリの一例、データ用プログラム/イレース制御回路34の内部回路図はデータ用プログラム/イレース制御回路34の内部回路図の一例、再構成プログラム情報RPDは再構築書込みデータのそれぞれ一例である。
1 不揮発性メモリ
2 メモリセルアレイ
3 ECCメモリセルアレイ
12 プログラム情報修正/ECCデータ作成回路
13 ステートコントロール部
19 ECC検出回路
20 ECC訂正情報格納部
PD プログラム情報
CD 訂正情報
MD データ
RPD 再構成プログラム情報
2 メモリセルアレイ
3 ECCメモリセルアレイ
12 プログラム情報修正/ECCデータ作成回路
13 ステートコントロール部
19 ECC検出回路
20 ECC訂正情報格納部
PD プログラム情報
CD 訂正情報
MD データ
RPD 再構成プログラム情報
Claims (14)
- 少なくとも1つの書込み対象メモリセルへの書込みデータの書込みに先立って、前記書込み対象メモリセルに関連する複数のメモリセルに保持されるデータに対してECCチェックを行うステップと、
前記書込み対象メモリセルへの前記書込みデータの書込みと同時期に、前記ECCチェックにより訂正が必要と判断された訂正対象メモリセルへ訂正データを書き込むステップと
を備えることを特徴とする不揮発性記憶装置の制御方法。 - 前記書き込むステップは、
前記訂正対象メモリセルと前記書込み対象メモリセルとが一致する場合には、前記訂正データの書込みを行わない
ことを特徴とする請求項1に記載の不揮発性記憶装置の制御方法。 - 前記訂正対象メモリセルへの前記訂正データの書込みは、プログラム動作または/およびイレース動作である
ことを特徴とする請求項1に記載の不揮発性記憶装置の制御方法。 - 前記書込み対象メモリセルは1本のワード線に含まれ、
前記書込み対象メモリセルに関連する複数のメモリセルは、前記1本のワード線と同一ワード線に含まれる
ことを特徴とする請求項1に記載の不揮発性記憶装置の制御方法。 - 前記書込み対象メモリセルは1本のワード線に含まれ、
前記書込み対象メモリセルに関連する複数のメモリセルは、前記1本のワード線を含むセクタ領域/バンク領域に含まれるメモリセルである
ことを特徴とする請求項1に記載の不揮発性記憶装置の制御方法。 - 前記書込み対象メモリセルに関連する複数のメモリセルは、
前記書込み対象メモリセルが含まれる自セクタ/バンク領域以外の他セクタ/バンク領域に含まれるメモリセルである
ことを特徴とする請求項1に記載の不揮発性記憶装置の制御方法。 - 前記書込み対象メモリセルは1本のワード線に含まれ、
前記書込み対象メモリセルに関連する複数のメモリセルは、前記自セクタ/バンク領域の前記1本のワード線と関連する前記他セクタ/バンク領域内のワード線と同一ワード線に含まれる
ことを特徴とする請求項6に記載の不揮発性記憶装置の制御方法。 - 前記ECCチェックを行うステップは、
前記書込み対象メモリセルを含むワード線、または前記書込み対象メモリセルを含むセクタ領域、または前記書込み対象メモリセルを含むバンク領域をリードアクセスするステップと、
前記リードアクセスにより得られたデータにECC処理を行うステップと
前記リードアクセスにより得られたデータのうちから前記書込みデータおよび前記訂正データを置換したデータに対して、前記ECC処理を再度行うステップと
を備えることを特徴とする請求項1に記載の不揮発性記憶装置の制御方法。 - 前記ECCチェックを行うステップは、モードレジスタ設定値に従って活性/非活性される
ことを特徴とする請求項8に記載の不揮発性記憶装置の制御方法。 - 少なくとも1つの書込み対象メモリセルへの書込みデータの書込みに先立って、前記書込み対象メモリセルに関連する複数のメモリセルに保持されるデータに対してECCチェックを行うECC処理回路と、
前記書込み対象メモリセルへの前記書込みデータの書込みと同時期に、前記ECC処理回路により訂正が必要と判断された訂正対象メモリセルへ訂正データを書き込む書き込み制御回路と
を備えることを特徴とする不揮発性記憶装置。 - 前記ECC処理回路は、
ECC処理の結果得られるECC訂正アドレスを格納し、前記書き込み制御回路へ出力する訂正情報格納部を備える
ことを特徴とする請求項10に記載の不揮発性記憶装置。 - 前記書き込み制御回路は、
前記訂正対象メモリセルと前記書込み対象メモリセルとが一致する場合には、前記訂正データの書込みを行わない
ことを特徴とする請求項10に記載の不揮発性記憶装置。 - 前記書き込み制御回路は、
入力される前記訂正対象メモリセルのアドレスと、入力される前記書込み対象メモリセルのアドレスとの一致を検出するアドレス一致検出回路を備える
ことを特徴とする請求項10に記載の不揮発性記憶装置。 - 前記書き込み制御回路は、前記書込みデータから前記訂正データを置換した再構築書込みデータを生成し、
前記ECC処理回路は、前記再構築書込みデータに対してECCチェックを行う
ことを特徴とする請求項10に記載の不揮発性記憶装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008066346A JP2009223941A (ja) | 2008-03-14 | 2008-03-14 | 不揮発性記憶装置および不揮発性記憶装置の制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008066346A JP2009223941A (ja) | 2008-03-14 | 2008-03-14 | 不揮発性記憶装置および不揮発性記憶装置の制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009223941A true JP2009223941A (ja) | 2009-10-01 |
Family
ID=41240565
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008066346A Pending JP2009223941A (ja) | 2008-03-14 | 2008-03-14 | 不揮発性記憶装置および不揮発性記憶装置の制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009223941A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011134406A (ja) * | 2009-12-25 | 2011-07-07 | Samsung Electronics Co Ltd | 不揮発性半導体記憶装置 |
JP2017062774A (ja) * | 2015-08-12 | 2017-03-30 | インフィネオン テクノロジーズ アーゲーInfineon Technologies Ag | メモリデバイス、および記憶されているビットシーケンスを訂正するための方法 |
-
2008
- 2008-03-14 JP JP2008066346A patent/JP2009223941A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011134406A (ja) * | 2009-12-25 | 2011-07-07 | Samsung Electronics Co Ltd | 不揮発性半導体記憶装置 |
JP2017062774A (ja) * | 2015-08-12 | 2017-03-30 | インフィネオン テクノロジーズ アーゲーInfineon Technologies Ag | メモリデバイス、および記憶されているビットシーケンスを訂正するための方法 |
US10109372B2 (en) | 2015-08-12 | 2018-10-23 | Infineon Technologies Ag | Memory device and method for correcting a stored bit sequence |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7768828B2 (en) | Flash memory device capable of storing multi-bit data and single-bit data | |
KR101541812B1 (ko) | 비휘발성 메모리 장치 | |
US7561466B2 (en) | Non-volatile memory copy back | |
JP6258399B2 (ja) | 半導体装置 | |
US7433219B2 (en) | Method and apparatus for address allotting and verification in a semiconductor device | |
US11133068B2 (en) | Memory device, memory controller, memory system and method for operating memory system | |
JP2010040144A (ja) | 不揮発性半導体記憶システム | |
TW201140595A (en) | Non-volatile memory and method with atomic program sequence and write abort detection | |
US7944747B2 (en) | Flash memory device and method for programming flash memory device having leakage bit lines | |
JP2010003348A (ja) | 半導体記憶装置及び誤り訂正方法 | |
US11409470B2 (en) | Memory system, memory controller, and method of operating memory system | |
JP2004095001A (ja) | 不揮発性半導体記憶装置、不揮発性半導体記憶装置組込システムおよび不良ブロック検出方法 | |
CN114253465A (zh) | 存储器系统及其操作方法 | |
JP2006302342A (ja) | 不揮発性半導体メモリ装置とメモリシステム | |
CN114242152A (zh) | 存储器系统及其操作方法 | |
US8310869B2 (en) | Nonvolatile memory device, system, and programming method | |
JP2009223941A (ja) | 不揮発性記憶装置および不揮発性記憶装置の制御方法 | |
JP5270598B2 (ja) | 不揮発性記憶装置 | |
JP2004030849A (ja) | データの一部書き換え機能を有する半導体不揮発性メモリ | |
CN114201110B (zh) | 存储器系统及其操作方法 | |
US20230376211A1 (en) | Controller for controlling one-time programmable memory, system, and operation method thereof | |
US11500771B2 (en) | Memory system, memory controller, and method of operating memory system | |
CN108877861B (zh) | 存储器系统及其操作方法 | |
JP2008103076A (ja) | データの一部書き換え機能を有する半導体不揮発性メモリ | |
JPH065094A (ja) | 不揮発性半導体記憶装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090707 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20091201 |