JP2016018473A - 半導体記憶装置、メモリコントローラ、及びメモリコントローラの制御方法 - Google Patents
半導体記憶装置、メモリコントローラ、及びメモリコントローラの制御方法 Download PDFInfo
- Publication number
- JP2016018473A JP2016018473A JP2014142206A JP2014142206A JP2016018473A JP 2016018473 A JP2016018473 A JP 2016018473A JP 2014142206 A JP2014142206 A JP 2014142206A JP 2014142206 A JP2014142206 A JP 2014142206A JP 2016018473 A JP2016018473 A JP 2016018473A
- Authority
- JP
- Japan
- Prior art keywords
- error correction
- semiconductor memory
- error
- data
- address management
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1048—Adding 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0411—Online error correction
Abstract
【課題】不揮発性半導体メモリのデータの信頼性を向上させる。
【解決手段】実施形態によれば、半導体記憶装置は、不揮発性半導体メモリと、メモリコントローラとを含む。メモリコントローラは、不揮発性半導体メモリに対して、複数の書き込みデータと複数の書き込みデータのアドレス情報を含む第1のアドレス管理情報とを書き込み、不揮発性半導体メモリから読み出された複数の書き込みデータのいずれかにエラーが発生した場合に、複数の書き込みデータと第1のアドレス管理情報とを含むエラー訂正グループに対するエラー訂正処理を実行する。メモリコントローラは、処理対象のエラー訂正グループ内で読み出しエラーを検出した場合に、処理対象のエラー訂正グループ内の書き込みデータのアドレス情報と読み出しエラーの発生しているエラー位置情報とを含む第2のアドレス管理情報を生成し、処理対象のエラー訂正グループの書き込み先のうちの消去状態の領域に、無効データと前記第2のアドレス管理情報とを書き込む。
【選択図】図1
【解決手段】実施形態によれば、半導体記憶装置は、不揮発性半導体メモリと、メモリコントローラとを含む。メモリコントローラは、不揮発性半導体メモリに対して、複数の書き込みデータと複数の書き込みデータのアドレス情報を含む第1のアドレス管理情報とを書き込み、不揮発性半導体メモリから読み出された複数の書き込みデータのいずれかにエラーが発生した場合に、複数の書き込みデータと第1のアドレス管理情報とを含むエラー訂正グループに対するエラー訂正処理を実行する。メモリコントローラは、処理対象のエラー訂正グループ内で読み出しエラーを検出した場合に、処理対象のエラー訂正グループ内の書き込みデータのアドレス情報と読み出しエラーの発生しているエラー位置情報とを含む第2のアドレス管理情報を生成し、処理対象のエラー訂正グループの書き込み先のうちの消去状態の領域に、無効データと前記第2のアドレス管理情報とを書き込む。
【選択図】図1
Description
実施形態は、半導体記憶装置、メモリコントローラ、及びメモリコントローラの制御方法に関する。
不揮発性半導体メモリの一例に、NAND型フラッシュメモリがある。NAND型フラッシュメモリに書き込まれたデータの信頼性を高めるために、ホスト装置から受けたデータに基づくエラー訂正コードを生成し、データと生成されたエラー訂正コードとを書き込む技術が用いられる。
一般的には、データの書き込みと同時に、エラー訂正コードがNAND型フラッシュメモリに書き込まれる。
同時に書き込み可能なデータ量の少ない半導体記憶装置においては、書き込まれるデータに対するエラー訂正コードの占める割合をエラー発生確率に適合するように制限するために、データの書き込みタイミングと、エラー訂正コードの書き込みタイミングとを分離する場合がある。例えば、一定量のデータが書き込まれた後で、この一定量のデータに対応するエラー訂正コードが書き込まれる。
実施形態は、不揮発性半導体メモリに書き込まれたデータの信頼性を向上させることが可能な半導体記憶装置、メモリコントローラ、及びメモリコントローラの制御方法を提供する。
実施形態によれば、半導体記憶装置は、不揮発性半導体メモリと、メモリコントローラとを含む。メモリコントローラは、不揮発性半導体メモリに対して、複数の書き込みデータと複数の書き込みデータのアドレス情報を含む第1のアドレス管理情報とを書き込み、不揮発性半導体メモリから読み出された複数の書き込みデータのいずれかにエラーが発生した場合に、複数の書き込みデータと第1のアドレス管理情報とを含むエラー訂正グループに対するエラー訂正処理を実行する。メモリコントローラは、処理対象のエラー訂正グループ内で読み出しエラーを検出した場合に、処理対象のエラー訂正グループ内の書き込みデータのアドレス情報と読み出しエラーの発生しているエラー位置情報とを含む第2のアドレス管理情報を生成し、処理対象のエラー訂正グループの書き込み先のうちの消去状態の領域に、無効データと第2のアドレス管理情報とを書き込む。
以下、図面を参照して、発明の実施形態について説明する。なお、以下の説明において、略又は実質的に同一の構成要素及び機能については、同一符号を付し、必要に応じて説明を行う。
[第1の実施形態]
本実施形態の半導体記憶装置は、当該半導体記憶装置の不正な電源遮断が発生し、次に半導体記憶装置が起動された場合に、不揮発性半導体メモリに書き込まれているデータを読み出す。次に、半導体記憶装置は、消去(Erase)状態の領域に無効(Invalid)データを書き込み、アドレス管理情報と、読み出されたデータに対するエラー訂正コードとを生成し、不揮発性半導体メモリに書き込む。
本実施形態の半導体記憶装置は、当該半導体記憶装置の不正な電源遮断が発生し、次に半導体記憶装置が起動された場合に、不揮発性半導体メモリに書き込まれているデータを読み出す。次に、半導体記憶装置は、消去(Erase)状態の領域に無効(Invalid)データを書き込み、アドレス管理情報と、読み出されたデータに対するエラー訂正コードとを生成し、不揮発性半導体メモリに書き込む。
本実施形態において、不正な電源遮断後の起動時に生成されるアドレス管理情報は、例えばページの位置(ページの番号、ページのアドレスでもよい)と、そのページに記憶されたデータのLBA(Logical Block Addressing)とを関連付けたアドレス情報と、書き込み中に不正な電源遮断が発生したためにエラーとなった位置(ページ)を示すエラー位置情報とを含む。
本実施形態では、不揮発性半導体メモリに対して読み出しエラーが発生した場合の処理について説明する。以下においては、具体的な例として、不揮発性半導体メモリに対する書き込み中に不正な電源遮断が発生し、その後の読み出しにおいて読み出しエラーが発生した場合を一例として説明する。しかしながら、他の理由により不揮発性半導体メモリに対して読み出しエラーが発生した場合、例えば、書き込みは正常であったが読み出しにおいてエラーが発生した場合、であっても、同様に本実施形態は適用可能である。
図1は、本実施形態に係る半導体記憶装置の構成の一例を示すブロック図である。
半導体記憶装置1は、不揮発性半導体メモリ2、メモリコントローラ3、不揮発性メモリ14を備える。本実施形態では、不揮発性半導体メモリ2と不揮発性メモリ14とが分離した構成を例示している。しかしながら、不揮発性半導体メモリ2と不揮発性メモリ14とは一体でもよい。
不揮発性半導体メモリ2は、例えば、NAND型フラッシュメモリとする。しかしながら、不揮発性半導体メモリ2は、例えば、NOR型フラッシュメモリ、MRAM(Magnetoresistive Random Access Memory:磁気抵抗メモリ)、PRAM(Phase change Random Access Memory:相変化メモリ)、ReRAM(Resistive Random Access Memory:抵抗変化型メモリ)、又は、FeRAM(Ferroelectric Random Access Memory)などのメモリでもよい。
本実施形態において、書き込みデータは、ページサイズで、不揮発性半導体メモリ2のページに対して書き込まれる。本実施形態において、ページサイズのデータを、ページデータと呼ぶ。ページデータは、そのページデータに対応する例えばLBAなどのようなアドレス情報を含む。
不揮発性半導体メモリ2におけるデータの消去は、ブロックごとに行われる。ブロックは、複数のページを含む。
本実施形態において、不揮発性半導体メモリ2に書き込まれた書き込みデータを読み出した際にエラーが発生した場合には、この読み出しエラーの発生した書き込みデータを含むエラー訂正グループに対してエラー訂正処理が実行される。
ここで、エラー訂正グループは、複数の書き込みデータと、この複数の書き込みデータのアドレス情報に基づくアドレス管理情報と、を含む。
例えば、エラー訂正ブループは複数のページデータセットを含む。複数のページデータセットのそれぞれは、不揮発性半導体メモリ2に対して並列に書き込まれた2以上のページデータを含む。
より具体的な例として、本実施形態において、エラー訂正グループは、複数のページデータの書き込みが並列に実行される複数のブロックを含むブロックセットとする。
メモリコントローラ3は、ホスト装置5からデータを受け、不揮発性半導体メモリ2に対してデータの書き込みを行う。また、メモリコントローラ3は、ホスト装置5からの読み出し命令に応じて、不揮発性半導体メモリ2からデータを読み出し、読み出されたデータをホスト装置5へ送る。
メモリコントローラ3は、インタフェース部4、ページデータ制御部5、アドレス制御部6、エラー訂正制御部7、ログ制御部8、無効データ書き込み部9、を備える。メモリコントローラ3の各構成要素は、ファームウェアを実行することで実現されてもよい。
インタフェース部4は、メモリコントローラ3の他の構成要素から受けた各種のデータ(例えば、ページデータ、アドレス管理情報、エラー訂正コード、無効データなど)を受け、例えばDRAM(Dynamic Random Access Memory)などのような揮発性メモリ10に記憶し、揮発性メモリ10に記憶されている各種のデータを、不揮発性半導体メモリ2に書き込む。
また、インタフェース部4は、不揮発性半導体メモリ2から各種のデータを読み出し、揮発性メモリ10に記憶し、揮発性メモリ10に記憶されている各種のデータを、メモリコントローラ3の他の構成要素に送る。
本実施形態において、インタフェース部4は揮発性メモリ10を含む構成としている。しかしながら、インタフェース部4と揮発性メモリ10とは、分離されている構成としてもよい。
ページデータ制御部5は、不揮発性半導体メモリ2に対するページデータの書き込みを制御する。本実施形態では、ページデータ制御部5は、不揮発性半導体メモリ2に対して、インタフェース部4経由で、2つのブロックに対して並列に2つのページデータを書き込む。しかしながら、ページデータ制御部5は、3以上のブロックに対して並列に3以上のページデータを書き込むとしてもよい。
具体的には、まず、ページデータ制御部5は、インタフェース部4経由で、ブロックB0のページP0及びブロックB1のページP0に、それぞれページデータD0,0及びページデータD1,0を書き込む。
次に、ページデータ制御部5は、インタフェース部4経由で、ブロックB0のページP1及びブロックB1のページP1に、それぞれページデータD0,1及びページデータD1,1を書き込む。
以下、同様に、ページデータ制御部5は、インタフェース部4経由で、順次、ブロックB0のページP2〜PN-1にページデータD0,2〜D0,N-1を書き込み、このページデータD0,2〜D0,N-1のそれぞれと並列に、ブロックB1のページP2〜PN-1にページデータD1,2〜D1,N-1を書き込む。
アドレス制御部6は、所定数のページデータD0,0〜D0,N-1,D1,0〜D1,N-1が不揮発性半導体メモリ2に書き込まれた場合に、書き込まれたページデータD0,0〜D0,N-1,D1,0〜D1,N-1に対応するアドレス管理情報A0,Nを生成する。そして、アドレス制御部6は、インタフェース部4経由で、不揮発性半導体メモリ2のブロックB0のページPNに、アドレス管理情報A0,Nを書き込む。
アドレス管理情報は、2回以上の並列な書き込みごとに生成される。本実施形態においては、一例として、並列に書き込みが実行される複数のブロックを含むブロックセットごとに、アドレス管理情報が生成される場合を説明する。
エラー訂正制御部7は、所定数のページデータD0,0〜D0,N-1,D1,0〜D1,N-1が不揮発性半導体メモリ2に書き込まれた場合に、書き込まれたページデータD0,0〜D0,N-1,D1,0〜D1,N-1に対応するエラー訂正コードE1,Nを生成し、不揮発性半導体メモリ2のブロックB1のページPNに、エラー訂正コードE1,Nを書き込む。
半導体記憶装置1が正常に動作する場合には、ページデータ制御部5、アドレス制御部6、エラー訂正制御部7によるブロックB0,B1に対する書き込み処理と同様の処理が、例えばブロックB2,B3などのような他の複数のブロックに対しても実行される。
ログ制御部8は、ブロックに対する書き込みの履歴を含むログデータ(例えばジャーナル)11を生成し、不揮発性メモリ14に書き込む。
ここで、ブロックB3のページPKの書き込み中に、半導体記憶装置1に不正な電源遮断が発生し、その後に半導体記憶装置1の電源投入が行われたとする。
ログ制御部8は、不揮発性メモリ14に記憶されているログデータ11を読み出す。そして、ログ制御部8は、どのブロックに対する書き込み中に、不正な電源遮断が発生したかを決定し、書き込みエラーの発生したブロックB2,B3をページデータ制御部5、アドレス制御部6、エラー訂正制御部7、無効データ書き込み部9、へ通知する。
ページデータ制御部5は、書き込みエラーの発生したブロックB2,B3におけるページP0〜PN-1から、ページデータD2,0〜D2,K,D3,0〜D3,K-1を読み出す。
アドレス制御部6は、不揮発性半導体メモリ2の書き込みエラーの発生したブロックB2,B3から読み出されたページデータD2,0〜D2,K,D3,0〜D3,K-1に対応するアドレス情報L2,0〜L2,K,L3,0〜L3,K-1と、書き込みエラーの発生した位置を示すエラー位置情報とを含むアドレス管理情報A2,Nを生成する。
本実施形態において、ページデータD0,0〜D0,N-1,D1,0〜D1,N-1,D2,0〜D2,K,D3,0〜D3,K-1は、それぞれ、そのページデータD0,0〜D0,N-1,D1,0〜D1,N-1,D2,0〜D2,K,D3,0〜D3,K-1に対応する例えばLBAなどのようなアドレス情報L0,0〜L0,N-1,L1,0〜L1,N-1,L2,0〜L2,K,L3,0〜L3,K-1を含む。エラーの発生したブロックB2,B3に対応するアドレス管理情報A2,Nの生成には、ページデータD2,0〜D2,K,D3,0〜D3,K-1に含まれているアドレス情報L2,0〜L2,K,L3,0〜L3,K-1が用いられる。
エラー訂正制御部7は、不揮発性半導体メモリ2の書き込みエラーの発生したブロックB2,B3から読み出されたページデータD2,0〜D2,K,D3,0〜D3,K-1と、消去状態のページに書き込まれる無効データI2,K+1〜I2,N-1,I3,K+1〜I3,N-1と、アドレス管理情報A2,Nとに基づくエラー訂正コードE3,Nを生成する。
本実施形態においては、エラー訂正コードE3,Nが、ページデータD2,0〜D2,K,D3,0〜D3,K-1、無効データI2,K+1〜I2,N-1,I3,K+1〜I3,N-1、アドレス管理情報A2,Nに基づいて生成される場合を例として説明する。しかしながら、エラー訂正コードE3,Nは、例えば、読み出し可能なページデータD2,0〜D2,K,D3,0〜D3,K-1とアドレス管理情報A2,Nとに基づいて生成されてもよく、読み出し可能なページデータD2,0〜D2,K,D3,0〜D3,K-1と無効データI2,K+1〜I2,N-1,I3,K+1〜I3,N-1とに基づいて生成されてもよく、ページデータD2,0〜D2,K,D3,0〜D3,K-1のみに基づいて生成されてもよい。
無効データ書き込み部9は、ログ制御部8によって書き込みエラーが検出された場合に、インタフェース部4経由で、エラー(未書き込みのページデータ)が発生した初期化対象ブロックB3のページPKより後に書き込みが実行されるブロックB2,B3のうちの消去状態のページPK+1〜PN-1に、無効データI2,K+1〜I2,N-1,I3,K+1〜I3,N-1を書き込む。
アドレス制御部6は、不揮発性半導体メモリ2のブロックB2のページPNに、アドレス情報A2,Nを書き込む。
エラー訂正制御部7は、不揮発性半導体メモリ2のブロックB3のページPNに、エラー訂正コードE3,Nを書き込む。
さらに、エラー訂正制御部7は、書き込みエラーの発生した初期化対象ブロックB2,B3内のページデータD2,0〜D2,K,D3,0〜D3,K-1のいずれかの読み出しエラーが検出された場合に、アドレス管理情報A2,Nのエラー位置情報が示すブロックB3のページPKをエラー訂正処理の対象から除外し、エラー訂正コードE3,Nに基づいて、ページデータD2,0〜D2,K,D3,0〜D3,K-1に対するエラー訂正処理を実行する。
以下で、比較例の半導体記憶装置と本実施形態に係る半導体記憶装置1とを対比して説明する。
ページデータの書き込みタイミングとエラー訂正コードの書き込みタイミングとが分離される書き込みを実行中に不正な電源遮断が発生し、次に電源が投入された場合、最後のエラー訂正コードの書き込み後から不正な電源遮断までの間に書き込まれたページデータに対応するエラー訂正コードは、不揮発性半導体メモリ2に記憶されていない。このため、最後のエラー訂正コードの書き込み後から不正な電源遮断までの間に書き込まれたページデータの信頼性は低下する。
不揮発性半導体メモリ2の微細化によって記憶できるデータの密度が上がるほど、不揮発性半導体メモリ2に書き込まれたページデータの信頼性は低下する傾向にある。不揮発性半導体メモリ2の信頼性を維持する方法として、不揮発性半導体メモリ2に対する書き込み量を制限する方法、不揮発性半導体メモリ2の使用を制限する方法などがある。具体的には、消去されている領域を未書き込みの状態で長時間放置しないことで、不揮発性半導体メモリ2のデータの信頼性の低下を防止する方法がある。また、消去状態の領域(例えばページ)に対する再消去を行うことを防止するために、不正な電源遮断によって書き込み中のブロックに未書き込みのページが存在する場合に、この書き込み中のブロックにおける未書き込みのページに対する書き込みを完了させ、不揮発性半導体メモリ2のデータの信頼性の低下を防止する方法がある。
さらに、不正な電源遮断が発生した時点で書き込み中であったブロックは、書き込み中のページでデータがエラーとなり、継続使用ができない場合がある。そのため、不正な電源遮断が発生した時点で書き込み中であったブロックに対しては、残りのページに対して無効データを書き込み、書き込みを完了させる。
まず、比較例の半導体記憶装置について、図2乃至図4を用いて説明する。
図2は、比較例の半導体記憶装置に係る不揮発性半導体メモリに対するページデータの並列書き込みの一例を示す図である。
比較例の半導体記憶装置は、不揮発性半導体メモリ2における2つのブロックB0,B1におけるページP0〜PN-1に対して、並列にページデータD0,0〜D0,N-1,D1,0〜D1,N-1を書き込む。比較例の半導体記憶装置は、一定量のページデータD0,0〜D0,N-1,D1,0〜D1,N-1を不揮発性半導体メモリ2に書き込むと、各ページデータD0,0〜D0,N-1,D1,0〜D1,N-1のアドレス情報を示すアドレス管理情報A0,Nと、各ページデータD0,0〜D0,N-1,D1,0〜D1,N-1及びアドレス管理情報A0,Nを訂正するためのエラー訂正コードE1,Nとを、不揮発性半導体メモリ2に書き込む。この図2では、上記図1と同様に、並列に書き込まれる複数のブロックごとに、この複数のブロックに対応するアドレス管理情報とエラー訂正コードとが書き込まれる場合を例示している。
図3は、比較例の半導体記憶装置において書き込み中に不正な電源遮断が発生した場合の不揮発性半導体メモリ2の状態の一例を示す図である。
比較例の半導体記憶装置は、不揮発性半導体メモリ2の2つのブロックB2,B3におけるページP0〜PK-1に対して、並列にページデータD2,0〜D2,K-1,D3,0〜D3,K-1
を書き込む。
を書き込む。
ここで、図3では、ブロックB2,B3のページPKに対するページデータD2,K,D3,Kの書き込み中に、不正な電源遮断が発生した状態を示している。この場合、ブロックB2,B3における書き込みが行われていないページPK+1〜PNは、消去状態となっている。この図3の状態においては、アドレス管理情報及びエラー訂正コードはブロックB2,B3に対して書き込まれていない。したがって、すでにブロックB2,B3に対して書き込まれたページデータD2,0〜D2,K-1,D3,0〜D3,K-1は、他のブロックに書き込まれたページデータと比較してエラー訂正能力が低くなる。
図4は、比較例の半導体記憶装置において不正な電源遮断後に再度電源が投入された時点での不揮発性半導体メモリ2の状態の一例を示す図である。
書き込み中に不正な電源遮断の発生したブロックB3のページPKに対しては、正常な読み出しが行われず、ブロックB3のページPKの読み出しがエラーとなる場合がある。また、書き込み中に不正な電源遮断が発生すると、ブロックB2,B3の消去状態のページPK+1〜PNに対する書き込みの信頼性が低下する場合がある。
このため、比較例の半導体記憶装置は、ブロックB2,B3を継続利用せず、ブロックB2,B3における消去状態の残りのページPK+1〜PNに無効データを書き込み、ブロックB2,B3の使用を中止する。
これに対して、本実施形態に係る半導体記憶装置1を、図5乃至図6を用いて説明する。
図5は、本実施形態に係る半導体記憶装置1において不正な電源遮断が発生し、再度電源が投入され、初期化処理が実行された時点での不揮発性半導体メモリ2の状態の一例を示す図である。
本実施形態に係る初期化処理は、ログ制御部8、ページデータ制御部5、アドレス制御部6、エラー訂正制御部7、無効データ書き込み部9により実行される。
電源投入時に実行される初期化処理では、書き込み中の不正な電源遮断によって未書き込みのページPK+1〜PNが発生したブロックB2,B3が検出され、このブロックB2,B3に対してページデータD2,0〜D2,K,D3,0〜D3,K-1の読み出しが実行される。
初期化処理では、読み出されたページデータD2,0〜D2,K,D3,0〜D3,K-1のアドレス情報L2,0〜L2,K,L3,0〜L3,K-1とエラー位置情報とに基づいてアドレス管理情報A2,Nが生成される。
初期化処理では、読み出されたページデータD2,0〜D2,K,D3,0〜D3,K-1、ブロックB2,B3の消去状態のページPK+1〜PN-1に書き込まれる無効データI2,K+1〜I2,N-1,I3,K+1〜I3,N-1、アドレス管理情報A2,Nに対応するエラー訂正コードE3,Nが生成される。
そして、初期化処理では、ブロックB2,B3の消去状態のページPK+1〜PNに対して、無効データI2,K+1〜I2,N-1,I3,K+1〜I3,N-1と、アドレス管理情報A2,Nと、エラー訂正コードE3,Nとが書き込まれる。
図6は、本実施形態に係るアドレス管理情報A2,Nの内容の一例を示す図である。
アドレス管理情報A2,Nは、書き込み途中で不正な電源遮断の発生したブロックB2,B3において、正常に書き込まれたページデータD2,0〜D2,K,D3,0〜D3,K-1のアドレス情報(例えばLBA)L2,0〜L2,K,L3,0〜L3,K-1と書き込まれたページP0〜PK-1との関係を示す情報、エラーの発生したブロックB3のページPKの位置を示すエラー位置情報ER、無効データI2,K+1〜I2,N-1,I3,K+1〜I3,N-1の書き込まれたページPK+1〜PN-1を特定する無効特定情報X2,K+1〜X2,N-1,X3,K+1〜X3,N-1、書き込み中に不正な電源遮断の発生したブロックB2,B3に対応するアドレス管理情報A2,Nの識別情報12、書き込み中に不正な電源遮断の発生したブロックB2,B3に対応するエラー訂正コードE3,Nの識別情報13、を含む。
アドレス管理情報A2,Nは、例えば、インタフェース部4の揮発性メモリ10に記憶され、その後、ブロックB2のページPNに書き込まれる。
エラー訂正コードE3,Nとしては、並列に書き込みが実行される複数のブロックB2,B3の組において、書き込みエラーの発生したブロックB3のページPKを除く他のページに対する排他的論理和(XOR)の値が用いられる。
ある比較例の方法では、複数のブロックに対する並列な書き込みが1回実行されるごとに、並列に書き込まれたページデータの組に対するXORデータが演算され、このXORデータがエラー訂正コードとして不揮発性半導体メモリ2に書き込まれる。
この比較例の方法では、エラー訂正コードに基づくエラー訂正処理は、並列に書き込みが実行されるページデータの組のみにしか利用できない。
これに対して、本実施形態では、複数のブロックに対する並列な書き込みが複数回実行された後に、アドレス管理情報とエラー訂正コードとの生成及び書き込みが実行される。本実施形態では、ブロックB2,B3のページP0〜PNから予めエラーの発生したブロックB3のページPKが除外され、エラーの発生していないブロックB2のページP0〜PN、ブロックB3のページP0〜PK-1,PK+1〜PN-1に対するXORデータの演算が実行され、エラー訂正コードE3,Nが生成され、ブロックB3のページPNへ書き込まれる。
このように、本実施形態においては、エラーが判明したブロックB3のページPKが、エラー訂正処理の対象から除外される。そして、エラーの発生していないブロックB2のページP0〜PN-1、ブロックB3のページP0〜PK-1,PK+1〜PN-1におけるエラーは、生成されたエラー訂正コードE3,Nに基づいて訂正することができる。
この結果、本実施形態では、不揮発性半導体メモリ2に書き込まれたデータの信頼性を向上させることができる。
図7は、本実施形態に係る半導体記憶装置1の初期化処理の一例を示すフローチャートである。
ブロック101において、ログ制御部8は、ログデータ11を読み出す。
ブロック102において、ログ制御部8は、読み出されたログデータ11に基づいて、書き込み中に不正な電源遮断が発生した初期化対象ブロックが存在するか否か判断する。初期化対象ブロックが存在しない場合、処理は終了する。
ブロック102で初期化対象ブロックが存在すると判断された場合、ブロック103において、ページデータ制御部5は、初期化対象ブロックに対する読み出しを行う。
ブロック104において、アドレス制御部6は、初期化対象ブロックから読み出されたページデータに対応するアドレス情報と、書き込みでエラーの発生したエラー位置情報とを含むアドレス管理情報を生成する。
ブロック105において、エラー訂正制御部7は、初期化対象ブロックのうちのエラーページを除くページに対応するエラー訂正コードを生成する。
ブロック106において、無効データ書き込み部9、アドレス制御部6、エラー訂正制御部7は、それぞれ、初期化対象ブロックのうちの消去状態のページに対して、無効データ、アドレス管理情報、エラー訂正コードを書き込む。
図8は、本実施形態に係る半導体記憶装置1の初期化対象ブロックに対するエラー訂正処理の一例を示すフローチャートである。
ブロック201において、エラー訂正制御部7は、初期化対象ブロック内のいずれかのページデータの読み出しにおいて読み出しエラーが発生したか判断する。
読み出しエラーが発生していない場合には、処理は終了する。
ブロック201で読み出しエラーが発生した場合、ブロック202において、アドレス制御部6は、初期化対象ブロックからアドレス管理情報を読み出す。
ブロック203において、エラー訂正制御部7は、アドレス管理情報のエラー位置情報によって示されるエラーページをエラー訂正処理の対象から除外する。
ブロック204において、ページデータ制御部5は、初期化対象ブロックからエラー訂正処理の対象のページデータ及び無効データを読み出し、エラー訂正制御部7は、初期化対象ブロックからエラー訂正コードを読み出す。
ブロック205において、エラー訂正制御部7は、初期化対象ブロックから読み出されたページデータ、無効データ、アドレス管理情報、エラー訂正コードに基づいて、エラー訂正処理を実行する。
以上説明した本実施形態に係る半導体記憶装置1は、書き込み中に不正な電源遮断が発生した後の起動処理において、書き込み中に不正な電源遮断が発生した初期化対象ブロックB2,B3を検出する。半導体記憶装置1は、初期化対象ブロックB2,B3の各ページデータD2,0〜D2,K,D3,0〜D3,K-1を読み出し、読み出されたページデータD2,0〜D2,K,D3,0〜D3,K-1のアドレス情報L2,0〜L2,K,L3,0〜L3,K-1と、エラーの発生したページの位置を示すエラー位置情報とを含むアドレス管理情報A2,Nを生成する。半導体記憶装置1は、不揮発性半導体メモリ2のデータの信頼性を確保するために、起動時に初期化対象ブロックB2,B3の消去状態のページPK+1〜PNに対して、無効データI2,K+1〜I2,N-1,I3,K+1〜I3,N-1と、アドレス管理情報A2,Nと、エラー訂正コードE3,Nとを書き込む。
これにより、書き込み中に不正な電源遮断が発生した初期化対象ブロックB2,B3に対して、未書き込みのページPK+1〜PNに対する書き込みが完了され、不揮発性半導体メモリ2のデータの信頼性を確保することができる。本実施形態においては、不揮発性半導体メモリ2における消去されてから書き込みが行われるまでの時間を短くすることができる。
本実施形態において、不揮発性半導体メモリ2に対するアドレス管理情報A2,Nとエラー訂正コードE3,Nとの書き込みは、初期化対象ブロックB2,B3が無効データI2,K+1〜I2,N-1,I3,K+1〜I3,N-1を含むことを考慮して実行される。例えば、アドレス管理情報A2,Nとエラー訂正コードE3,Nとは、無効データI2,K+1〜I2,N-1,I3,K+1〜I3,N-1を避けるなどの制御にしたがって不揮発性半導体メモリ2に書き込まれる。アドレス管理情報A2,Nとエラー訂正コードE3,Nとは、互いに関連付けられる。例えば、エラー訂正コードE3,Nは、初期化対象ブロックB2,B3に対して、不正な電源遮断時に書き込み中であったためにエラーの発生しているブロックB3のページPKを除く他のページに対するエラー訂正処理に用いられる。
本実施形態に係る半導体記憶装置1は、不揮発性半導体メモリ2に対してエラー訂正コードE3,Nが書き込まれた後に初期化対象ブロックB2,B3内のいずれかのページデータに対する新たな読み出しエラーを検出した場合に、初期化対象ブロックB2,B3のアドレス管理情報A2,Nとエラー訂正コードE3,Nとを読み出す。半導体記憶装置1は、読み出されたアドレス管理情報A2,Nのエラー位置情報に基づいて、不正な電源遮断を原因とする読み出しエラーの発生した初期化対象ブロックB3のページPKをエラー訂正処理の対象から除外する。そして、半導体記憶装置1は、エラー訂正コードE3,Nに基づくエラー訂正処理によって、上記の新たな読み出しエラーの発生したページデータを訂正する。
これにより、不揮発性半導体メモリ2のデータの信頼性を向上させることができる。
本実施形態では、ページデータの並列書き込みの回数が、エラー訂正コードの書き込みより多ければ、エラー訂正コードの書き込み頻度は適宜変更されてもよい。
例えば、偶数ページ用エラー訂正コードと奇数ページ用エラー訂正コードとを用意するなどのように、本実施形態よりもエラー訂正コードの種別を増やしてもよい。
[第2の実施形態]
本実施形態においては、上記第1の実施形態に係る半導体記憶装置を含む記憶装置について説明する。
本実施形態においては、上記第1の実施形態に係る半導体記憶装置を含む記憶装置について説明する。
図9は、本実施形態に係る半導体記憶装置を備える記憶装置を例示するブロック図である。
記憶装置15は、ハイブリッド型ハードディスクドライブ(HDD)である。しかしながら、記憶装置15は、例えばSSD(Solid State Drive)などでもよい。
記憶装置15は、ホスト装置5の制御に従って、不揮発性半導体メモリ2と、磁気記憶媒体であるディスク16とに、大容量のデータを記憶する。
記憶装置15は、ハードディスクコントローラ(HDC)17と、バッファメモリ21と、ヘッドIC(Integrated Circuit)19と、ディスク16と、ヘッド20とを備える。
HDC17は、記憶装置15とホスト装置5との間のインタフェースを制御し、不揮発性半導体メモリ2及びディスク16に対するデータ書き込み及びデータ読み出し等を制御する。
バッファメモリ21は、HDC17の制御に従い、記憶装置15とホスト装置5との間のデータ転送のための書き込みデータまたは読み出しデータを一時的に記憶する。バッファメモリ21としては、例えばDRAMなどが用いられる。
メモリコントローラ3は、HDC17の制御に従い、不揮発性半導体メモリ2を制御する。
ヘッドIC19は、HDC17の制御に従い、ヘッド20を制御するヘッドアンプ集積回路である。
ヘッド20は、ヘッドIC19の制御に従って、ディスク16上を移動し、ディスク16に記憶されたデータを読み出し、ディスク16にデータを書き込む。
本実施形態においては、記憶装置15に半導体記憶装置1を備えることにより、記憶装置15に記憶されるデータの信頼性を向上させることができる。
ハイブリッド型の記憶装置15では、不揮発性半導体メモリ2に対して一度に書き込むことができるページデータの量が少なくても、エラー訂正を実行することができ、不揮発性半導体メモリ2のデータの信頼性を上げることができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1…半導体記憶装置、2…不揮発性半導体メモリ、3…メモリコントローラ、4…インタフェース部、5…ページデータ制御部、6…アドレス制御部、7…エラー訂正制御部、8…ログ制御部、9…無効データ書き込み部、10…揮発性メモリ、11…ログデータ、12,13…識別情報、14…不揮発性メモリ、15…記憶装置、B0〜B3…ブロック、P0〜PN…ページ、D0,0〜D0,N-1,D1,0〜D1,N-1,D2,0〜D2,K,D3,0〜D3,K-1…ページデータ、A0,N,A2,N…アドレス管理情報、E1,N,E3,N…エラー訂正コード、I2,K+1〜I2,N-1,I3,K+1〜I3,N-1…無効データ、L0,0〜L0,N-1,L1,0〜L1,N-1,L2,0〜L2,K,L3,0〜L3,K-1…アドレス情報
Claims (6)
- 不揮発性半導体メモリと、
前記不揮発性半導体メモリに対して、複数の書き込みデータと前記複数の書き込みデータのアドレス情報を含む第1のアドレス管理情報とを書き込み、前記不揮発性半導体メモリから読み出された前記複数の書き込みデータのいずれかにエラーが発生した場合に、前記複数の書き込みデータと前記第1のアドレス管理情報とを含むエラー訂正グループに対するエラー訂正処理を実行するメモリコントローラと、
を具備し、
前記メモリコントローラは、
処理対象のエラー訂正グループ内で読み出しエラーを検出した場合に、前記処理対象のエラー訂正グループ内の書き込みデータのアドレス情報と前記読み出しエラーの発生しているエラー位置情報とを含む第2のアドレス管理情報を生成し、前記処理対象のエラー訂正グループの書き込み先のうちの消去状態の領域に、無効データと前記第2のアドレス管理情報とを書き込む、
半導体記憶装置。 - 前記メモリコントローラは、
前記処理対象のエラー訂正グループ内で前記読み出しエラーを検出した場合に、前記処理対象のエラー訂正グループに対応するエラー訂正コードを生成し、前記処理対象のエラー訂正グループの書き込み先のうちの前記消去状態の領域に、前記無効データと前記第2のアドレス管理情報と前記エラー訂正コードとを書き込む、
請求項1の半導体記憶装置。 - 前記メモリコントローラは、
前記不揮発性半導体メモリに対して前記エラー訂正コードが書き込まれた後に、前記処理対象のエラー訂正グループ内の前記書き込みデータに対する新たな読み出しエラーを検出した場合に、前記第2のアドレス管理情報と前記エラー訂正コードとを読み出し、前記エラー位置情報の示す領域を前記エラー訂正処理の対象から除外し、前記エラー訂正コードに基づいて前記処理対象のエラー訂正グループ内の前記書き込みデータに対するエラー訂正処理を実行する、
請求項2の半導体記憶装置。 - 前記書き込みデータは、前記不揮発性半導体メモリのページに書き込まれるページデータであり、
前記エラー訂正ブループは複数のページデータセットを含み、前記複数のページデータセットのそれぞれは前記不揮発性半導体メモリに対して並列に書き込まれた2以上のページデータを含み、
前記読み出しエラーは、前記不揮発性半導体メモリに対する書き込み中に発生した不正な電源遮断に基づくエラーである、
請求項1乃至請求項3のいずれか1項に記載の半導体記憶装置。 - 不揮発性半導体メモリに対するデータの書き込み及び読み出しを実行するインタフェース部と、
前記不揮発性半導体メモリに対して、前記インタフェース部を介して、複数の書き込みデータと前記複数の書き込みデータのアドレス情報を含む第1のアドレス管理情報とを書き込み、前記不揮発性半導体メモリから読み出された前記複数の書き込みデータのいずれかにエラーが発生した場合に、前記複数の書き込みデータと前記第1のアドレス管理情報とを含むエラー訂正グループに対するエラー訂正処理を実行する制御部と、
を具備し、
前記制御部は、
処理対象のエラー訂正グループ内で読み出しエラーを検出した場合に、前記処理対象のエラー訂正グループ内の書き込みデータのアドレス情報と前記読み出しエラーの発生しているエラー位置情報とを含む第2のアドレス管理情報を生成し、前記処理対象のエラー訂正グループの書き込み先のうちの消去状態の領域に、無効データと前記第2のアドレス管理情報とを書き込む、
メモリコントローラ。 - 不揮発性半導体メモリに対するデータの書き込み及び読み出しを制御するメモリコントローラの制御方法であって、
前記不揮発性半導体メモリに対して、複数の書き込みデータと前記複数の書き込みデータのアドレス情報を含む第1のアドレス管理情報とを書き込み、
前記不揮発性半導体メモリから読み出された前記複数の書き込みデータのいずれかにエラーが発生した場合に、前記複数の書き込みデータと前記第1のアドレス管理情報とを含むエラー訂正グループに対するエラー訂正処理を実行し、
処理対象のエラー訂正グループ内で読み出しエラーを検出した場合に、前記処理対象のエラー訂正グループ内の書き込みデータのアドレス情報と前記読み出しエラーの発生しているエラー位置情報とを含む第2のアドレス管理情報を生成し、
前記処理対象のエラー訂正グループの書き込み先のうちの消去状態の領域に、無効データと前記第2のアドレス管理情報とを書き込む、
制御方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014142206A JP2016018473A (ja) | 2014-07-10 | 2014-07-10 | 半導体記憶装置、メモリコントローラ、及びメモリコントローラの制御方法 |
US14/480,028 US20160011937A1 (en) | 2014-07-10 | 2014-09-08 | Semiconductor memory device, memory controller, and control method of memory controller |
CN201410682830.7A CN105320468A (zh) | 2014-07-10 | 2014-11-17 | 半导体存储器件、存储控制器以及存储控制器的控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014142206A JP2016018473A (ja) | 2014-07-10 | 2014-07-10 | 半導体記憶装置、メモリコントローラ、及びメモリコントローラの制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2016018473A true JP2016018473A (ja) | 2016-02-01 |
Family
ID=55067665
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014142206A Pending JP2016018473A (ja) | 2014-07-10 | 2014-07-10 | 半導体記憶装置、メモリコントローラ、及びメモリコントローラの制御方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20160011937A1 (ja) |
JP (1) | JP2016018473A (ja) |
CN (1) | CN105320468A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10553276B2 (en) | 2017-08-29 | 2020-02-04 | Toshiba Memory Corporation | Semiconductor memory device |
CN111679792A (zh) * | 2020-06-04 | 2020-09-18 | 四川九州电子科技股份有限公司 | 一种嵌入式设备NandFlash I/O数据监测系统及方法 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10218387B2 (en) * | 2017-05-08 | 2019-02-26 | Silicon Laboratories Inc. | ECC memory controller supporting secure and non-secure regions |
US10360104B2 (en) | 2017-05-08 | 2019-07-23 | Silicon Laboratories Inc. | ECC memory controller to detect dangling pointers |
JP7214381B2 (ja) * | 2018-06-28 | 2023-01-30 | キヤノン株式会社 | 画像形成装置、画像形成装置の制御方法及びプログラム |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100389867B1 (ko) * | 2001-06-04 | 2003-07-04 | 삼성전자주식회사 | 플래시 메모리 관리방법 |
JP4257834B2 (ja) * | 2003-05-06 | 2009-04-22 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 磁気ディスク装置、ファイル管理システム及びその方法 |
JP4842563B2 (ja) * | 2005-05-16 | 2011-12-21 | パナソニック株式会社 | メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びデータ書き込み方法 |
JP4866107B2 (ja) * | 2006-03-08 | 2012-02-01 | パナソニック株式会社 | 不揮発性記憶装置及びその書き込み判定方法 |
JP2010097600A (ja) * | 2008-09-22 | 2010-04-30 | Panasonic Corp | 半導体記録装置 |
TWI421870B (zh) * | 2009-10-30 | 2014-01-01 | Phison Electronics Corp | 用於快閃記憶體的資料寫入方法及其控制器與儲存系統 |
CN103092717B (zh) * | 2013-01-18 | 2016-03-02 | 深圳市硅格半导体有限公司 | 闪存的数据处理方法及装置 |
-
2014
- 2014-07-10 JP JP2014142206A patent/JP2016018473A/ja active Pending
- 2014-09-08 US US14/480,028 patent/US20160011937A1/en not_active Abandoned
- 2014-11-17 CN CN201410682830.7A patent/CN105320468A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10553276B2 (en) | 2017-08-29 | 2020-02-04 | Toshiba Memory Corporation | Semiconductor memory device |
CN111679792A (zh) * | 2020-06-04 | 2020-09-18 | 四川九州电子科技股份有限公司 | 一种嵌入式设备NandFlash I/O数据监测系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105320468A (zh) | 2016-02-10 |
US20160011937A1 (en) | 2016-01-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8732553B2 (en) | Memory system and control method thereof | |
JP5492679B2 (ja) | 記憶装置およびメモリコントローラ | |
US9563249B2 (en) | Data storage device and power-interruption detection method | |
TWI566252B (zh) | 非揮發性記憶體裝置進行耗損管理之方法 | |
US9804921B2 (en) | Nonvolatile memory apparatus and control method of nonvolatile memory apparatus | |
US10635527B2 (en) | Method for processing data stored in a memory device and a data storage device utilizing the same | |
JP2016018473A (ja) | 半導体記憶装置、メモリコントローラ、及びメモリコントローラの制御方法 | |
US20180157428A1 (en) | Data protection of flash storage devices during power loss | |
US9547566B2 (en) | Storage control apparatus, storage apparatus, information processing system, and storage control method therefor | |
US11042310B2 (en) | Reading of start-up information from different memory regions of a memory system | |
JP2010079856A (ja) | 記憶装置およびメモリ制御方法 | |
US10340025B2 (en) | Data-storage device and block-releasing method | |
US9043675B2 (en) | Storage device | |
JP2007310916A (ja) | メモリカード | |
JP2010086009A (ja) | 記憶装置およびメモリ制御方法 | |
KR101627322B1 (ko) | 비-휘발성 버퍼를 이용한 데이터 저장 장치 및 방법 | |
JP2007305105A (ja) | メモリコントローラ | |
JP2013125303A (ja) | 半導体メモリ制御装置及び制御方法 | |
JP2008310896A (ja) | 不揮発性記憶装置、不揮発性記憶システムおよび不揮発性記憶装置の制御方法 | |
TWI550627B (zh) | 儲存裝置及其操作方法 | |
US20150339198A1 (en) | Semiconductor memory device including nonvolatile semiconductor memory, control method of memory controller, and memory controller | |
US9417954B2 (en) | Data storage device and method for operating the same | |
US9104596B2 (en) | Memory system | |
CN110134322B (zh) | 运用dram的储存装置及其相关数据处理方法 | |
US10019186B2 (en) | Data maintenance method for error control and data storage device using the same |