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

半導体記憶装置 Download PDF

Info

Publication number
JP2014029616A
JP2014029616A JP2012170078A JP2012170078A JP2014029616A JP 2014029616 A JP2014029616 A JP 2014029616A JP 2012170078 A JP2012170078 A JP 2012170078A JP 2012170078 A JP2012170078 A JP 2012170078A JP 2014029616 A JP2014029616 A JP 2014029616A
Authority
JP
Japan
Prior art keywords
management information
block
blocks
predetermined number
semiconductor memory
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.)
Granted
Application number
JP2012170078A
Other languages
English (en)
Other versions
JP6118045B2 (ja
Inventor
Mitsuru Tamura
満 田村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
MegaChips Corp
Original Assignee
MegaChips Corp
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 MegaChips Corp filed Critical MegaChips Corp
Priority to JP2012170078A priority Critical patent/JP6118045B2/ja
Publication of JP2014029616A publication Critical patent/JP2014029616A/ja
Application granted granted Critical
Publication of JP6118045B2 publication Critical patent/JP6118045B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

【課題】不良ブロックの存在や強制的な電源遮断等に起因して正常動作が阻害されるという事態を回避しつつ、管理情報を制御対象メモリに格納することが可能な半導体記憶装置を得る。
【解決手段】制御対象メモリが有する全ブロックには、メモリコントローラが制御対象メモリを管理するために必要な管理情報を格納するためのブロックとして限定的に割り当てられた、複数の第1所定数個のブロックから成る第1ブロック群R1と、第1ブロック群R1以外の第2ブロック群R2と、が含まれ、第1ブロック群R1の中からメモリコントローラによって選択された、第1所定数個未満の複数の第2所定数個のブロックの各々に、同一内容の管理情報が格納されている。
【選択図】図2

Description

本発明は、半導体記憶装置に関する。
メモリコントローラと、フラッシュメモリ等のメモリセルアレイとを備えたメモリシステムが実用化されている。NAND型のフラッシュメモリ等においては、製造時に発生する先天性不良ブロックや、出荷後の通常使用によって発生する後天性不良ブロックが、ランダムに存在する。これらの不良ブロックを避けて使用する必要があるため、所定の管理情報によって不良ブロックの位置が管理される。
制御対象メモリであるメモリセルアレイ内に管理情報を格納しようとすると、格納先のブロックが先天性不良ブロックであった場合や、格納時には先天性不良ブロックではなかったがその後に後天性不良ブロックとなった場合に、管理情報の一部又は全部のデータが破壊又は喪失されてしまう可能性がある。また、管理情報を更新するために新たな管理情報を書き込んでいる最中に、ユーザの誤操作等によって強制的に電源が遮断されてしまうと、管理情報の一部又は全部のデータが破壊又は喪失されてしまう可能性がある。管理情報が破壊又は喪失されると、その後はメモリシステムの正常動作が阻害される。
そこで、背景技術に係るメモリシステムでは、制御対象メモリとは別の専用の不揮発性メモリを用意し、当該不揮発性メモリ内に管理情報を格納することによって、管理情報の破壊等が防止されている。他の方法として、メモリコントローラ内の不揮発のメモリ領域に管理情報を格納し、あるいはDIPスイッチの設定によって管理情報をメモリコントローラに与えることで、管理情報の破壊等が防止されている。
なお、下記特許文献1には、コントローラとフラッシュメモリとを備えたメモリシステムが開示されている。不良ブロックのリスト等を含む管理情報は、複数の分割片に分割されて、各分割片がフラッシュメモリ内に個別に保存されている。また、コントローラ内には、DRAM等の揮発性メモリを用いた管理メモリが実装されている。複数の分割片がフラッシュメモリから管理メモリに読み出されることにより、管理メモリ内に管理情報が保存される。
特開2011−59866号公報
上述したように背景技術に係るメモリシステムでは、制御対象メモリとは別の専用の不揮発性メモリ内に管理情報が格納される。従って、制御対象メモリとは別に専用の不揮発性メモリを追加する必要があるため、製造コストが増大するとともに制御が複雑化する。
本発明はかかる問題を解決するために成されたものであり、不良ブロックの存在や強制的な電源遮断等に起因して正常動作が阻害されるという事態を回避しつつ、管理情報を制御対象メモリに格納することが可能な半導体記憶装置を得ることを目的とする。
本発明の第1の態様に係る半導体記憶装置は、それぞれがデータの消去単位である複数のブロックを有する記憶部と、前記記憶部を制御する制御部と、を備え、前記記憶部が有する全ブロックには、前記制御部が前記記憶部を管理するために必要な管理情報を格納するためのブロックとして限定的に割り当てられた、複数の第1所定数個のブロックから成る第1ブロック群と、第1ブロック群以外の第2ブロック群と、が含まれ、第1ブロック群の中から前記制御部によって選択された、第1所定数個未満の複数の第2所定数個のブロックの各々に、同一内容の管理情報が格納されていることを特徴とするものである。
第1の態様に係る半導体記憶装置によれば、第1所定数個のブロックから成る第1ブロック群が、管理情報を格納するためのブロックとして限定的に割り当てられている。そして、第1ブロック群の中から制御部によって選択された、第1所定数個未満の複数の第2所定数個のブロックの各々に、同一内容の管理情報が格納されている。従って、第2所定数個のブロックに格納されている第2所定数個の第1管理情報のうちの一つが破壊又は喪失された場合であっても、制御部は、破壊又は喪失されていない残りの第1管理情報を、記憶部から取得することができる。その結果、不良ブロックの存在や強制的な電源遮断等に起因して正常動作が阻害されるという事態を回避しつつ、管理情報を制御対象メモリに格納することが可能となる。
本発明の第2の態様に係る半導体記憶装置は、第1の態様に係る半導体記憶装置において特に、管理情報は、第1管理情報と、第1管理情報よりも書き換え頻度の高い第2管理情報と、を含み、第1管理情報は第1ブロック群内に格納され、第2管理情報は第2ブロック群内に格納されることを特徴とするものである。
第2の態様に係る半導体記憶装置によれば、管理情報は、第1管理情報と、第1管理情報よりも書き換え頻度の高い第2管理情報とを含む。そして、第1管理情報は第1ブロック群内に格納され、第2管理情報は第2ブロック群内に格納される。書き換え頻度に応じて管理情報を第1管理情報と第2管理情報とに分割し、限定的に割り当てられた第1ブロック群内には、書き換え頻度の低い第1管理情報を格納することにより、第1ブロック群内ではデータの書き換えが頻繁には発生しない。その結果、第1ブロック群内における後天性不良ブロックの発生が抑制されるため、装置の信頼性を向上することが可能となる。
本発明の第3の態様に係る半導体記憶装置は、第2の態様に係る半導体記憶装置において特に、第1管理情報には、第2管理情報を格納しているブロックを示す位置情報が含まれ、第2管理情報には、不良ブロックを示す位置情報が含まれることを特徴とするものである。
第3の態様に係る半導体記憶装置によれば、第1管理情報には、第2管理情報を格納しているブロックを示す位置情報が含まれ、第2管理情報には、不良ブロックを示す位置情報が含まれる。従って、制御部は、第1管理情報を記憶部から読み出すことによって、第2管理情報を格納しているブロックを示す位置情報を取得でき、また、当該位置情報に基づいて第2管理情報を記憶部から読み出すことによって、不良ブロックを示す位置情報を取得することが可能となる。
本発明の第4の態様に係る半導体記憶装置は、第3の態様に係る半導体記憶装置において特に、第1管理情報には、第1ブロック群内の不良ブロックを示す位置情報が含まれ、第2管理情報には、第2ブロック群内の不良ブロックを示す位置情報が含まれることを特徴とするものである。
第4の態様に係る半導体記憶装置によれば、第1管理情報には、第1ブロック群内の不良ブロックを示す位置情報が含まれ、第2管理情報には、第2ブロック群内の不良ブロックを示す位置情報が含まれる。従って、第1ブロック群内で後天性不良ブロックが発生した場合には、第1管理情報のみを更新すればよく、第2管理情報の更新を省略することができる。同様に、第2ブロック群内で後天性不良ブロックが発生した場合には、第2管理情報のみを更新すればよく、第1管理情報の更新を省略することができる。
本発明の第5の態様に係る半導体記憶装置は、第2〜第4のいずれか一つの態様に係る半導体記憶装置において特に、前記制御部は、正常な第1管理情報が格納されている、3個以上かつ第1所定数個以下の第3所定数個の正常ブロックを、第1ブロック群の中から特定し、第3所定数個の正常ブロックに格納されている第3所定数個の第1管理情報の中から、多数決によって1個の妥当な第1管理情報を特定し、当該妥当な第1管理情報に含まれている位置情報に基づいて、第2ブロック群の中から第2管理情報を取得することを特徴とするものである。
第5の態様に係る半導体記憶装置によれば、制御部は、第3所定数個の正常ブロックを、第1ブロック群の中から特定する。そして、特定した第3所定数個の正常ブロックに格納されている第3所定数個の第1管理情報の中から、多数決によって1個の妥当な第1管理情報を特定する。従って、更新が繰り返されることで第1ブロック群内に複数バージョンの第1管理情報が格納されている場合であっても、妥当な第1管理情報を適切に特定することが可能となる。
本発明の第6の態様に係る半導体記憶装置は、第5の態様に係る半導体記憶装置において特に、第2ブロック群の中から選択された複数の第4所定数個のブロックの各々に、同一内容の第2管理情報が格納されており、第1管理情報には、第2管理情報を格納している第4所定数個のブロックを示す位置情報が含まれており、前記制御部は、妥当な第1管理情報に含まれている位置情報に基づいて、第4所定数個のブロックに格納されている第4所定数個の第2管理情報の中から、1個の第2管理情報を取得することを特徴とするものである。
第6の態様に係る半導体記憶装置によれば、第2ブロック群の中から選択された複数の第4所定数個のブロックの各々に、同一内容の第2管理情報が格納されている。そして、制御部は、妥当な第1管理情報に含まれている位置情報に基づいて、第4所定数個のブロックに格納されている第4所定数個の第2管理情報の中から、1個の第2管理情報を取得する。従って、第4所定数個のブロックに格納されている第4所定数個の第2管理情報のうちの一つが破壊又は喪失された場合であっても、制御部は、破壊又は喪失されていない残りの第2管理情報を、記憶部から取得することができる。その結果、不良ブロックの存在や強制的な電源遮断等に起因して正常動作が阻害されるという事態を回避しつつ、管理情報を制御対象メモリに格納することが可能となる。
本発明の第7の態様に係る半導体記憶装置は、第5の態様に係る半導体記憶装置において特に、第2ブロック群の中から選択された複数の第4所定数個のブロックに、バージョンが異なる第4所定数個の第2管理情報が格納されており、第1管理情報には、第2管理情報を格納している第4所定数個のブロックを示す位置情報が含まれており、前記制御部は、妥当な第1管理情報に含まれている位置情報に基づいて、第4所定数個のブロックに格納されている第4所定数個の第2管理情報の中から、1個の第2管理情報を取得することを特徴とするものである。
第7の態様に係る半導体記憶装置によれば、第2ブロック群の中から選択された複数の第4所定数個のブロックに、バージョンが異なる第4所定数個の第2管理情報が格納されている。そして、制御部は、妥当な第1管理情報に含まれている位置情報に基づいて、第4所定数個のブロックに格納されている第4所定数個の第2管理情報の中から、1個の第2管理情報を取得する。従って、第4所定数個のブロックに格納されている第4所定数個の第2管理情報のうちの一つが破壊又は喪失された場合であっても、制御部は、破壊又は喪失されていない残りの第2管理情報を、記憶部から取得することができる。その結果、不良ブロックの存在や強制的な電源遮断等に起因して正常動作が阻害されるという事態を回避しつつ、管理情報を制御対象メモリに格納することが可能となる。
本発明の第8の態様に係る半導体記憶装置は、第5〜第7のいずれか一つの態様に係る半導体記憶装置において特に、前記制御部は、第1ブロック群の中から、先天性不良ブロックを除外することにより、正常ブロックを特定することを特徴とするものである。
第8の態様に係る半導体記憶装置によれば、制御部は、第1ブロック群の中から先天性不良ブロックを除外することにより、正常ブロックを特定する。従って、先天性不良ブロックが正常ブロックとして特定されるという事態を回避できるため、妥当な第1管理情報を適切に特定することが可能となる。
本発明の第9の態様に係る半導体記憶装置は、第5〜第8のいずれか一つの態様に係る半導体記憶装置において特に、前記制御部は、第1ブロック群の中から、所定の無効フラグが付加された無効ブロックを除外することにより、正常ブロックを特定することを特徴とするものである。
第9の態様に係る半導体記憶装置によれば、制御部は、第1ブロック群の中から無効ブロックを除外することにより、正常ブロックを特定する。従って、無効ブロックが正常ブロックとして特定されるという事態を回避できるため、妥当な第1管理情報を適切に特定することが可能となる。
本発明の第10の態様に係る半導体記憶装置は、第5〜第9のいずれか一つの態様に係る半導体記憶装置において特に、前記制御部は、第1ブロック群の中から、格納している第1管理情報にデータの誤りが生じている異常ブロックを除外することにより、正常ブロックを特定することを特徴とするものである。
第10の態様に係る半導体記憶装置によれば、制御部は、第1ブロック群の中から異常ブロックを除外することにより、正常ブロックを特定する。従って、異常ブロックが正常ブロックとして特定されるという事態を回避できるため、妥当な第1管理情報を適切に特定することが可能となる。
本発明の第11の態様に係る半導体記憶装置は、第5〜第10のいずれか一つの態様に係る半導体記憶装置において特に、前記制御部は、第3所定数個の正常ブロックの中から3個の正常ブロックを特定し、当該3個の正常ブロックに格納されている3個の第1管理情報の中から、多数決によって1個の妥当な第1管理情報を特定することを特徴とするものである。
第11の態様に係る半導体記憶装置によれば、第3所定数個の正常ブロックの中から3個の正常ブロックを特定し、当該3個の正常ブロックに格納されている3個の第1管理情報の中から、多数決によって1個の妥当な第1管理情報を特定する。このように、多数決を行う対象を3個の第1管理情報に限定することによって、簡易に多数決を行うことができるため、処理の所要時間を短縮することが可能となる。
本発明の第12の態様に係る半導体記憶装置は、第11の態様に係る半導体記憶装置において特に、前記制御部は、ある1個の正常ブロックに格納されている第1管理情報と、他の任意の2個の正常ブロックに格納されている2個の第1管理情報と、を用いて、多数決を行うことを特徴とするものである。
第12の態様に係る半導体記憶装置によれば、制御部は、ある1個の正常ブロックに格納されている第1管理情報と、他の任意の2個の正常ブロックに格納されている2個の第1管理情報とを用いて、多数決を行う。従って、多数決を行う対象を限定するための追加の情報を第1管理情報に含める必要がないため、処理及び構成を簡略化することが可能となる。
本発明の第13の態様に係る半導体記憶装置は、第11の態様に係る半導体記憶装置において特に、前記制御部は、ある1個の正常ブロックに格納されている第1管理情報と、当該第1管理情報に位置情報が記述されている特定の2個のブロックに格納されている2個の第1管理情報と、を用いて、多数決を行うことを特徴とするものである。
第13の態様に係る半導体記憶装置によれば、制御部は、ある1個の正常ブロックに格納されている第1管理情報と、当該第1管理情報に位置情報が記述されている特定の2個のブロックに格納されている2個の第1管理情報とを用いて、多数決を行う。従って、多数決を行う対象を、更新時に併せて書き込まれた同一内容の第1管理情報に限定できるため、多数決によって妥当な第1管理情報を特定できる可能性を高めることが可能となる。
本発明の第14の態様に係る半導体記憶装置は、第11〜第13のいずれか一つの態様に係る半導体記憶装置において特に、前記制御部は、特定した3個の正常ブロックを対象とする多数決によっては妥当な第1管理情報を特定できない場合には、第3所定数個の正常ブロックの中から他の3個の正常ブロックを特定し、当該他の3個の正常ブロックに格納されている3個の第1管理情報の中から、多数決によって1個の妥当な第1管理情報を特定することを特徴とするものである。
第14の態様に係る半導体記憶装置によれば、制御部は、特定した3個の正常ブロックを対象とする多数決によっては妥当な第1管理情報を特定できない場合には、他の3個の正常ブロックを特定し直して多数決を行う。これにより、妥当な第1管理情報を特定できる可能性を高めることが可能となる。
本発明の第15の態様に係る半導体記憶装置は、第2〜第14のいずれか一つの態様に係る半導体記憶装置において特に、前記制御部は、第1管理情報を更新する必要が生じた場合には、第1ブロック群の中で第2所定数個の空きブロックを確保し、当該第2所定数個の空きブロックの各々に、更新後の第1管理情報をそれぞれ書き込むことを特徴とするものである。
第15の態様に係る半導体記憶装置によれば、制御部は、第1管理情報を更新する必要が生じた場合には、第1ブロック群の中で第2所定数個の空きブロックを確保し、当該第2所定数個の空きブロックの各々に、更新後の第1管理情報をそれぞれ書き込む。これにより、更新後においても、同一内容の第2所定個数の第1管理情報を、第1ブロック群に格納することが可能となる。
本発明の第16の態様に係る半導体記憶装置は、第15の態様に係る半導体記憶装置において特に、前記制御部は、第1管理情報の更新毎に値が異なるバージョン情報を、第1管理情報に含めて書き込むことを特徴とするものである。
第16の態様に係る半導体記憶装置によれば、制御部は、更新毎に値が異なるバージョン情報を、第1管理情報に含めて書き込む。従って、バージョン情報を用いて多数決を行うことができ、その結果、妥当な第1管理情報を適切に特定する精度を向上することが可能となる。
本発明の第17の態様に係る半導体記憶装置は、第16の態様に係る半導体記憶装置において特に、前記制御部は、第1管理情報を空きブロックに書き込む際に当該空きブロックが後天性不良ブロックとなった場合には、当該第1管理情報に含めたバージョン情報の値を、以降の更新時には使用しないことを特徴とするものである。
第17の態様に係る半導体記憶装置によれば、制御部は、第1管理情報を空きブロックに書き込む際に当該空きブロックが後天性不良ブロックとなった場合には、当該第1管理情報に含めたバージョン情報の値を、以降の更新時には使用しない。従って、バージョン情報の値を生成するためのカウンタ値が一周した場合であっても、後天性不良ブロックに格納されている第1管理情報が、多数決によって妥当な第1管理情報として誤って特定されるという事態を回避することが可能となる。
本発明の第18の態様に係る半導体記憶装置は、第15〜第17のいずれか一つの態様に係る半導体記憶装置において特に、前記制御部は、第1管理情報の誤り検出符号を、第1管理情報に含めて書き込むことを特徴とするものである。
第18の態様に係る半導体記憶装置によれば、制御部は、第1管理情報の誤り検出符号を、第1管理情報に含めて書き込む。従って、誤り検出符号を用いて多数決を行うことができ、その結果、妥当な第1管理情報を適切に特定する精度を向上することが可能となる。また、誤り検出符号を用いてデータの誤りが生じているか否かを判定することができ、その結果、第1ブロック群の中から正常ブロックを特定する際に、データの誤りが生じている異常ブロックを除外することが可能となる。
本発明の第19の態様に係る半導体記憶装置は、第15〜第18のいずれか一つの態様に係る半導体記憶装置において特に、前記制御部は、第2所定数個の空きブロックの中の一の空きブロックに書き込む第1管理情報に、第2所定数個の空きブロックの中の他の空きブロックを示す位置情報を含めて書き込むことを特徴とするものである。
第19の態様に係る半導体記憶装置によれば、制御部は、第2所定数個の空きブロックの中の一の空きブロックに書き込む第1管理情報に、第2所定数個の空きブロックの中の他の空きブロックを示す位置情報を含めて書き込む。従って、多数決を行う対象を、更新時に併せて書き込まれた同一内容の第1管理情報に限定できるため、多数決によって妥当な第1管理情報を特定できる可能性を高めることが可能となる。
本発明の第20の態様に係る半導体記憶装置は、第15〜第19のいずれか一つの態様に係る半導体記憶装置において特に、前記制御部は、第1ブロック群の中から、先天性不良ブロックを除外することにより、空きブロックを確保することを特徴とするものである。
第20の態様に係る半導体記憶装置によれば、制御部は、第1ブロック群の中から、先天性不良ブロックを除外することにより、空きブロックを確保する。従って、更新後の第1管理情報を書き込むブロックとして、先天性不良ブロックが選択されるという事態を回避することが可能となる。
本発明の第21の態様に係る半導体記憶装置は、第15〜第20のいずれか一つの態様に係る半導体記憶装置において特に、前記制御部は、第1ブロック群の中から、後天性不良ブロックを除外することにより、空きブロックを確保することを特徴とするものである。
第21の態様に係る半導体記憶装置によれば、制御部は、第1ブロック群の中から、後天性不良ブロックを除外することにより、空きブロックを確保する。従って、更新後の第1管理情報を書き込むブロックとして、後天性不良ブロックが選択されるという事態を回避することが可能となる。
本発明の第22の態様に係る半導体記憶装置は、第15〜第21のいずれか一つの態様に係る半導体記憶装置において特に、前記制御部は、第1ブロック群の中から、更新前の第1管理情報が格納されている第2所定数個のブロックを除外することにより、空きブロックを確保することを特徴とするものである。
第22の態様に係る半導体記憶装置によれば、制御部は、第1ブロック群の中から、更新前の第1管理情報が格納されている第2所定数個のブロックを除外することにより、空きブロックを確保する。従って、第1管理情報の更新処理中にユーザの誤操作等によって強制的に電源が遮断され、それによって更新後の第1管理情報が消去された場合等であっても、更新前の第1管理情報は記憶部内に残されているため、それを用いて再起動を行うことが可能となる。
本発明の第23の態様に係る半導体記憶装置は、第15〜第22のいずれか一つの態様に係る半導体記憶装置において特に、前記制御部は、第2所定数個の空きブロックの中の1個の空きブロックへの第1管理情報の書き込みが完了すると、更新前の第1管理情報が格納されていた第2所定数個のブロックの中の1個のブロックに対して、所定の無効フラグを付加することを特徴とするものである。
第23の態様に係る半導体記憶装置によれば、制御部は、1個の空きブロックへの第1管理情報の書き込みが完了すると、更新前の第1管理情報が格納されていた1個のブロックに対して、所定の無効フラグを付加する。これにより、第1管理情報が格納されているブロックとして、少なくとも第2所定数個のブロックを常に確保することが可能となる。しかも、データを消去するのではなく無効フラグを付加するため、消去に伴うメモリセルへのストレスを回避できる。その結果、第1ブロック群内における後天性不良ブロックの発生が抑制されるため、装置の信頼性を向上することが可能となる。
本発明の第24の態様に係る半導体記憶装置は、第15〜第22のいずれか一つの態様に係る半導体記憶装置において特に、前記制御部は、第2所定数個の空きブロックの中の1個の空きブロックへの第1管理情報の書き込みが完了すると、更新前の第1管理情報が格納されていた第2所定数個のブロックの中の1個のブロックに対して、データの消去を行うことを特徴とするものである。
第24の態様に係る半導体記憶装置によれば、制御部は、第2所定数個の空きブロックの中の1個の空きブロックへの第1管理情報の書き込みが完了すると、更新前の第1管理情報が格納されていた第2所定数個のブロックの中の1個のブロックに対して、データの消去を行う。これにより、第1管理情報が格納されているブロックとして、少なくとも第2所定数個のブロックを常に確保することが可能となる。
本発明の第25の態様に係る半導体記憶装置は、第1〜第24のいずれか一つの態様に係る半導体記憶装置において特に、先天性不良ブロックを除外した第1所定数個のブロックが、第1ブロック群として割り当てられることを特徴とするものである。
第25の態様に係る半導体記憶装置によれば、先天性不良ブロックを除外した第1所定数個のブロックが、第1ブロック群として割り当てられる。従って、第1ブロック群を構成するブロックとして、必ず第1所定数個のブロックを確保できるため、装置の信頼性を向上することが可能となる。
本発明の第26の態様に係る半導体記憶装置は、第2〜第25のいずれか一つの態様に係る半導体記憶装置において特に、前記記憶部とは異なる複数の他の記憶部をさらに備え、第2管理情報は複数の第2管理情報片に分割され、第1管理情報は前記記憶部に格納され、複数の第2管理情報片は前記複数の他の記憶部に格納されることを特徴とするものである。
第26の態様に係る半導体記憶装置によれば、第2管理情報は複数の第2管理情報片に分割される。そして、第1管理情報は記憶部に格納され、複数の第2管理情報片は複数の他の記憶部に格納される。従って、複数の第2管理情報片を複数の他の記憶部から同時に読み出すことができ、その結果、処理の所要時間を短縮することが可能となる。
本発明の第27の態様に係る半導体記憶装置は、それぞれがデータの消去単位である複数のブロックを有する記憶部と、前記記憶部を制御する制御部と、を備え、前記記憶部が有する全ブロックには、前記制御部が前記記憶部を管理するために必要な管理情報を格納するためのブロックとして限定的に割り当てられた、複数の第1所定数個のブロックから成る第1ブロック群と、第1ブロック群以外の第2ブロック群と、が含まれ、管理情報は、第1管理情報と、第1管理情報よりも書き換え頻度の高い第2管理情報と、を含み、第1管理情報は第1ブロック群内に格納され、第2管理情報は第2ブロック群内に格納されることを特徴とするものである。
第27の態様に係る半導体記憶装置によれば、第1所定数個のブロックから成る第1ブロック群が、管理情報を格納するためのブロックとして限定的に割り当てられている。また、管理情報は、第1管理情報と、第1管理情報よりも書き換え頻度の高い第2管理情報とを含む。そして、第1管理情報は第1ブロック群内に格納され、第2管理情報は第2ブロック群内に格納される。このように、書き換え頻度に応じて管理情報を第1管理情報と第2管理情報とに分割し、限定的に割り当てられた第1ブロック群内には、書き換え頻度の低い第1管理情報を格納することにより、第1ブロック群内ではデータの書き換えが頻繁には発生しない。その結果、第1ブロック群内における後天性不良ブロックの発生が抑制されるため、装置の信頼性を向上することが可能となる。
本発明によれば、不良ブロックの存在や強制的な電源遮断等に起因して正常動作が阻害されるという事態を回避しつつ、管理情報を制御対象メモリに格納することが可能な半導体記憶装置を得ることができる。
本発明の実施の形態1に係る半導体記憶装置の構成を簡略化して示す図である。 制御対象メモリのメモリ空間の一部を抜き出して示す図である。 使用が想定されている制御対象メモリの種類を示す図である。 第1ブロック群を示す図である。 ブロック内のページの割り当てを示す図である。 管理情報の取得処理を順に示す図である。 管理情報の取得処理を順に示す図である。 管理情報の取得処理を順に示す図である。 管理情報の取得処理を順に示す図である。 管理情報の取得処理を順に示す図である。 管理情報の取得処理を順に示す図である。 第1管理情報の更新処理を順に示す図である。 第1管理情報の更新処理を順に示す図である。 第1管理情報の更新処理を順に示す図である。 第1管理情報の更新処理を順に示す図である。 第1管理情報の更新処理を順に示す図である。 第1ブロック群の他の例を示す図である。 第1ブロック群の他の例を示す図である。 第1ブロック群を示す図である。 管理情報の取得処理を順に示す図である。 管理情報の取得処理を順に示す図である。 管理情報の取得処理を順に示す図である。 管理情報の取得処理を順に示す図である。 管理情報の取得処理を順に示す図である。 管理情報の取得処理を順に示す図である。 第1管理情報の更新処理を順に示す図である。 第1管理情報の更新処理を順に示す図である。 第1管理情報の更新処理を順に示す図である。 第1管理情報の更新処理を順に示す図である。 第1管理情報の更新処理を順に示す図である。 第1ブロック群の他の例を示す図である。 第1ブロック群の他の例を示す図である。 変形例1に係る半導体記憶装置の構成を簡略化して示す図である。 第2ブロック群の第1の例を示す図である。 第2ブロック群の第2の例を示す図である。
以下、本発明の実施の形態について、図面を用いて詳細に説明する。なお、異なる図面において同一の符号を付した要素は、同一又は相応する要素を示すものとする。
<実施の形態1>
図1は、本発明の実施の形態1に係る半導体記憶装置1の構成を簡略化して示す図である。半導体記憶装置1は、メモリコントローラ2(制御部)と、メモリコントローラ2によって制御される制御対象メモリ3(記憶部)とを備えている。制御対象メモリ3は、不揮発性のメモリであり、例えばNAND型フラッシュメモリによって構成されている。
図2は、制御対象メモリ3のメモリ空間の一部を抜き出して示す図である。メモリ空間は、複数のブロックB1〜BNに分割されている。ブロックは、データの消去の単位である。制御対象メモリ3が有する全ブロックB1〜BNは、第1ブロック群R1と第2ブロック群R2とに分類されている。
第1ブロック群R1は、後述する第1管理情報を格納するためのブロックの集合であり、全ブロックB1〜BNの中から限定された特定の複数個のブロックが、第1ブロック群R1として割り当てられている。本実施の形態の例では、ブロックB1〜B10の合計10個のブロックが、第1ブロック群R1として割り当てられている。
第2ブロック群R2は、第1ブロック群R1以外のブロックの集合である。第2ブロック群R2には、ユーザが使用する任意のデータが格納される。また、第2ブロック群R2には、後述する第2管理情報が格納される。
管理情報は、メモリコントローラ2が制御対象メモリ3を管理するために必要な情報であり、本実施の形態の例において、管理情報は第1管理情報と第2管理情報とに分割されている。
第1管理情報には、第2管理情報を格納しているブロックの所在を示す位置情報が含まれる。位置情報としては、例えばブロックアドレスが用いられる。
また、第1管理情報には、誤り検出符号が含まれる。誤り検出符号は、その第1管理情報にデータの誤りが生じているか否かの判定に使用される。また、誤り検出符号は、妥当な第1管理情報を特定するための多数決(詳細は後述する)に使用される。誤り検出符号としては、チェックサム、CRC(Cyclic Redundancy Check)、又はメッセージダイジェスト等を使用することができる。本実施の形態の例では、誤り検出符号としてCRCが使用される。
また、第1管理情報には、固有のID情報(本明細書において「管理情報ID」と称す)が含まれる。管理情報IDは、第1管理情報のバージョンを示すものであり、第1管理情報が更新される度に管理情報IDの値も更新される。本実施の形態の例では、第1管理情報が更新される度に「1」ずつインクリメントされる整数値が、管理情報IDとして使用される。管理情報IDは、妥当な第1管理情報を特定するための多数決(詳細は後述する)に使用される。
また、第1管理情報には、第1ブロック群R1の中に不良ブロックが存在している場合に、その不良ブロックの所在を示す位置情報が含まれる。不良ブロックには、制御対象メモリ3の製造時に発生する先天性不良ブロックと、出荷後の通常使用によって発生する後天性不良ブロックとが含まれる。
第1管理情報を更新する場合には、第1ブロック群R1のうち、更新前の第1管理情報を格納しているブロックとは異なるブロックに、更新後の第1管理情報が書き込まれる。書き込み中に該当ブロックが後天性不良ブロックとなった場合には、第1ブロック群R1内の別のブロックに、更新後の第1管理情報が書き込まれる。
第2管理情報には、第2ブロック群R2の中に不良ブロックが存在している場合に、その不良ブロックの所在を示す位置情報が含まれる。また、第2管理情報には、汎用領域の場所や制御対象メモリ3へのアクセス速度等の、メモリコントローラ2が制御対象メモリ3を管理するために必要な様々な情報が含まれる。
第2管理情報を更新する場合には、第2ブロック群R2のうち、更新前の第2管理情報を格納しているブロックと同一のブロックに、更新後の第2管理情報が上書きされる。書き込み中に該当ブロックが後天性不良ブロックとなった場合には、第2ブロック群R2内の別の任意のブロック(但し不良ブロックは除く)に、更新後の第2管理情報が書き込まれる。第1管理情報には第2管理情報を格納しているブロックの位置情報が含まれているため、第2管理情報を格納するブロックが変更された場合には、第1管理情報を更新する必要がある。
各管理情報内に含めている情報の性質上、第2管理情報は第1管理情報よりも更新頻度(書き換え頻度)が高いといえる。例えば、第2ブロック群R2の中のユーザデータ領域内で後天性不良ブロックが発生した場合には、第2管理情報は更新する必要があるが、第1管理情報の更新は不要である。第2ブロック群R2のブロック数は第1ブロック群R1のブロック数よりもはるかに大きいため、第2ブロック群R2内で後天性不良ブロックが発生する確率は、第1ブロック群R1内で後天性不良ブロックが発生する確率よりも十分に高い。従って、第1管理情報は更新せずに第2管理情報を更新するという状況は、逆の状況よりも多く発生する。
図3は、使用が想定されている制御対象メモリ3の種類を示す図である。本実施の形態では、ページサイズ、ブロックサイズ、総ブロック数、読み出しサイクル、及び先天性不良フラグの位置が異なる、複数種類(この例では4種類)のメモリの使用が想定されている。なお、各メモリには、メモリの種類を識別するための固有のID情報(本明細書において「メモリID」と称す)が付与されている。メモリIDには、ページサイズ及びブロックサイズの情報が含まれている。
以下、本実施の形態に係る半導体記憶装置1に関して、(1)管理情報の格納例、(2)管理情報の取得処理、(3)管理情報の更新処理を、順に説明する。
(1)管理情報の格納例
本実施の形態に係る半導体記憶装置1では、第1ブロック群R1に属する10個のブロックB1〜B10の中から選択された3個のブロックに、同一内容の第1管理情報が格納される。但し、「10個」及び「3個」の値は一例であり、この値には限定されない。
図4は、第1ブロック群R1を示す図である。この例において、ブロックB1,B5は先天性不良ブロックであり、ブロックB2,B4は無効ブロック(詳細は後述する)である。
ブロックB3,B6〜B9には第1管理情報が格納されている。第1管理情報に付した丸括弧内の数字は、管理情報ID値(左側)及びCRC値(右側)を示している。説明の便宜上、第1管理情報を書き込む際のCRC値は、管理情報ID値と同一の値をとるものとする。データの誤りが生じていない正常ブロックに関しては、CRC値と管理情報ID値とは一致し、一方、後天性不良ブロックになったこと等に起因してデータの誤りが生じている異常ブロックに関しては、CRC値と管理情報ID値とは一致しない。この例において、ブロックB6に格納されている第1管理情報(2,1)に関しては、CRC値と管理情報ID値とが一致していない。従って、ブロックB6は後天性不良ブロックである。
また、図4に示した例では、最新の第1管理情報は第1管理情報(4,4)である。ここで、第1管理情報(4,4)はブロックB8,B9の2個のブロックにしか格納されていないが、その理由は、ブロックB10のデータを消去した後、第1管理情報(4,4)を書き込む前に、ユーザによって電源が強制的に遮断された状況を想定しているためである。従って、ブロックB10は消去済みブロックとなっている。
また、ブロックB3内に表記している「BAD」は、第1管理情報をブロックB3に書き込む際に、ブロックB3が後天性不良ブロックとなったことを表している。但し、ブロックB3に格納されている第1管理情報(1,1)に関しては、管理情報ID値とCRC値とが一致している。そのため、管理情報ID値とCRC値との比較によっては、ブロックB3が後天性不良ブロックであるとは判定できない。
なお、第1管理情報をブロックに書き込む際にそのブロックが後天性不良ブロックとなった場合には、その第1管理情報に付した管理情報ID値をメモリコントローラが保持しておき、それ以降に第1管理情報を更新する際には、その管理情報ID値を使用しないようにしても良い。これにより、サイクリックカウンタを用いて管理情報ID値を生成する場合に、後天性不良ブロックに格納されている古い第1管理情報と、それ以降に更新された新たな第1管理情報とで、管理情報ID値が偶然に一致するという事態が回避される。
図5は、ブロックB1〜B10の各ブロックに関して、ブロック内のページの割り当てを示す図である。1ブロックは複数のページに分割されている。ページは、データの書き込み及び読み出しの単位である。この例では、ページP0は先天性不良フラグが付加されるページであり、ページPNは無効フラグが付加されるページであり、ページPMは第1管理情報が書き込まれるページである。なお、第1管理情報はブロック内の複数のページに格納されていても良い。
あるブロックが先天性不良ブロックである場合には、そのブロックのページP0に先天性不良フラグが付加される。先天性不良フラグが付加されるページは、図3に示したように制御対象メモリ3の種類によって異なる。
あるブロックのデータが無効である場合には、そのブロックのページPNに無効フラグが付加される。無効フラグが付加されるページは、制御対象メモリ3の種類によらず共通である。
(2)管理情報の取得処理
図6〜11は、半導体記憶装置1の起動時にメモリコントローラ2が実行する管理情報の取得処理を順に示す図である。第1ブロック群R1は、図4に示した状態になっているものとする。
まず、メモリコントローラ2は、メモリIDを要求するリードコマンドを制御対象メモリ3に発行することにより、制御対象メモリ3からメモリIDを取得する。メモリIDにはページサイズ及びブロックサイズの情報が含まれているため、メモリIDを取得することにより、制御対象メモリ3内の任意のページへのアクセスが可能となる。
<先天性不良ブロックの探索ステップ>
次に図6を参照して、メモリコントローラ2は、第1ブロック群R1に属する全てのブロックB1〜B10を対象として、先天性不良ブロックを探索する。具体的には、ブロックB1〜B10の各ブロックに関して、先天性不良フラグの格納ページにアクセスすることにより、各ブロックが先天性不良ブロックであるか否かを判定する。
この時点では制御対象メモリ3の種類が判明していないため、先天性不良フラグの格納ページを一意には特定できない。従って、メモリコントローラ2は、使用が想定されている全種類のメモリに関する先天性不良フラグの格納ページに順にアクセスする。図3に示した例では、メモリコントローラ2は、第0ページの第0バイト、第0ページの第2048バイト、第128ページの第0バイト、及び第256ページの第8192バイトに順にアクセスすることにより、いずれかの格納ページに先天性不良フラグが付加されているか否かを判定する。また、その際の制御対象メモリ3へのアクセス速度は、使用が想定されている全種類のメモリを正常に動作させることが可能な最も遅い速度とする。図3に示した例では、4種類のメモリのうち最も遅い50nsの読み出しサイクルでアクセスを行う。
なお、メモリIDとメモリ種類とを関連付けるテーブル情報を予め作成してメモリコントローラ2内に保持しておき、メモリコントローラ2が制御対象メモリ3からメモリIDを取得した後に当該テーブル情報を参照することにより、メモリ種類を特定するように構成してもよい。この場合には、特定したメモリ種類に対応したアクセス速度で、特定したメモリ種類に対応した格納ページにアクセスすることにより、先天性不良フラグが付加されているか否かを判定することができる。
探索の結果、ブロックB1〜B10内に先天性不良ブロックが存在している場合には、メモリコントローラ2は、そのブロックを取得対象ブロックの候補から除外する。図6に示した例では、先天性不良ブロックであるブロックB1,B5が候補から除外される。このステップで除外されずに残ったブロックB2〜B4,B6〜B10を、本明細書において「良ブロック」と称す。
<無効ブロックの探索ステップ>
次に図7を参照して、メモリコントローラ2は、良ブロックB2〜B4,B6〜B10を対象として、無効ブロックを探索する。具体的には、各良ブロックに関して、無効フラグの格納ページ(図5に示したページPN)にアクセスすることにより、各良ブロックが無効ブロックであるか否かを判定する。
上記と同様に、制御対象メモリ3へのアクセス速度は、使用が想定されている全種類のメモリを正常に動作させることが可能な最も遅い速度とする。但し、メモリIDに基づいてメモリ種類を特定できる場合には、特定したメモリ種類に対応した適切なアクセス速度でアクセスすればよい。
探索の結果、良ブロック内に無効ブロックが存在している場合には、メモリコントローラ2は、そのブロックを取得対象ブロックの候補から除外する。図7に示した例では、無効ブロックであるブロックB2,B4が候補から除外される。このステップで除外されずに残ったブロックB3,B6〜B10を、本明細書において「有効ブロック」と称す。
<異常ブロックの探索ステップ>
次に図8を参照して、メモリコントローラ2は、有効ブロックB3,B6〜B10を対象として、データの誤りが生じているブロックを探索する。具体的には、各有効ブロックに関して、第1管理情報の格納ページ(図5に示したページPM)にアクセスして第1管理情報を読み出し、読み出した第1管理情報に対してCRC演算を行う。そして、演算により求めたCRC値と、読み出した第1管理情報内に含まれているCRC値とを比較する。メモリコントローラ2は、両CRC値が一致する場合には、そのブロックはデータの誤りが生じていないブロック(本明細書において「正常ブロック」と称す)であると判定し、一方、両CRC値が一致しない場合には、そのブロックはデータの誤りが生じているブロック(本明細書において「異常ブロック」と称す)であると判定する。
・書き込み又は消去時に後天性不良ブロックとなった
・書き込み又は消去時に電源が強制遮断されたことにより正常に終了されなかった
・消去状態でデータが何も書き込まれていない
等の理由で両CRC値が一致しない場合には、そのブロックは異常ブロックと判定されることとなる。
上記と同様に、制御対象メモリ3へのアクセス速度は、使用が想定されている全種類のメモリを正常に動作させることが可能な最も遅い速度とする。但し、メモリIDに基づいてメモリ種類を特定できる場合には、特定したメモリ種類に対応した適切なアクセス速度でアクセスすればよい。
探索の結果、有効ブロック内に異常ブロックが存在している場合には、メモリコントローラ2は、そのブロックを取得対象ブロックの候補から除外する。図8に示した例では、異常ブロックであるブロックB6,B10が候補から除外される。
<妥当な第1管理情報の特定ステップ>
次に、メモリコントローラ2は、残った正常ブロックの中から4個の正常ブロックを任意に選択する。例えば、ブロックアドレスの小さい順に4個の正常ブロックを選択する。この例では残った正常ブロックがブロックB3,B7〜B9の4個であるため、全ての正常ブロックが選択される。なお、この時点で残った正常ブロックが2個以下である場合は、後述する多数決を行えないため、その制御対象メモリ3は故障であると判定する。また、この時点で残った正常ブロックが3個である場合は、後述する多数決を1回だけ行う。
次に図9を参照して、メモリコントローラ2は、選択した4個の正常ブロックB3,B7〜B9の中から、3個の正常ブロックを任意に選択する。この例では、ブロックアドレスの小さい順に3個の正常ブロックB3,B7,B8を選択する。そして、各正常ブロックB3,B7,B8に格納されている第1管理情報に含まれている管理情報ID値及びCRC値を相互に比較することにより、1回目の多数決を行う。メモリコントローラ2は、3個の第1管理情報のうちの2個以上で管理情報ID値及びCRC値が一致した場合には、その第1管理情報は妥当であると判定する。この例では、3個の第1管理情報の管理情報ID値及びCRC値はそれぞれ(1,1)(3,3)(4,4)であり、相互に一致しないため、妥当な第1管理情報はないと判定される。
次に図10を参照して、メモリコントローラ2は、選択した4個の正常ブロックB3,B7〜B9の中から、他の3個の正常ブロックを任意に選択する。この例では、ブロックアドレスの大きい順に3個の正常ブロックB7〜B9を選択する。そして、各正常ブロックB7〜B9に格納されている第1管理情報に含まれている管理情報ID値及びCRC値を相互に比較することにより、2回目の多数決を行う。この例では、3個の第1管理情報の管理情報ID値及びCRC値はそれぞれ(3,3)(4,4)(4,4)であり、(4,4)が2個以上で一致する。従って、ブロックB8,B9に格納されている第1管理情報が、妥当な第1管理情報であると判定される。
なお、1回目の多数決によって妥当な第1管理情報を特定できた場合には、2回目の多数決は省略される。また、2回目の多数決によっても妥当な第1管理情報を特定できない場合には、その制御対象メモリ3は故障と判定される。但し、正常ブロックが5個以上残っている場合には、4個の正常ブロックの選択をやり直して、再び多数決を行っても良い。
<第2管理情報の取得ステップ>
次に図11を参照して、メモリコントローラ2は、特定した2個以上の妥当な第1管理情報の中から、任意の1個の第1管理情報を確定する。例えば、ブロックB8,B9の中でブロックアドレスの最も小さいブロックB8を選択し、ブロックB8に格納されている第1管理情報(4,4)を、妥当な第1管理情報として確定する。
次に、メモリコントローラ2は、確定した妥当な第1管理情報に含まれている位置情報(第2管理情報を格納しているブロックの所在を示す位置情報)に基づいて、第2ブロック群R2の中から第2管理情報を読み出すことにより、第2管理情報を取得する。
(3)管理情報の更新処理
第2管理情報の格納ブロックが後天性不良ブロックとなった場合等には、第2管理情報の格納ブロックを、第2ブロック群R2内の他のブロックに変更する必要がある。ここで、第1管理情報には第2管理情報の格納ブロックの位置情報が含まれているため、第2管理情報の格納ブロックを変更する場合には、第1管理情報の内容も更新する必要がある。また、第1管理情報には第1ブロック群R1の不良ブロックの位置情報が含まれているため、第1ブロック群R1内で後天性不良ブロックが発生した場合等には、第1管理情報の内容を更新する必要がある。以下、第1管理情報を更新する手順について説明する。
図12〜16は、メモリコントローラ2が実行する第1管理情報の更新処理を順に示す図である。
図12を参照して、現在有効な第1管理情報(つまり更新前の第1管理情報)は、ブロックB8,B9に格納されている第1管理情報(4,4)である。また、起動時に妥当な第1管理情報を特定するための多数決の候補となった第1管理情報は、ブロックB7〜B9に格納されている第1管理情報である。以下、ブロックB7〜B9を「多数決対象ブロック」と称す。
次に図13を参照して、メモリコントローラ2は、第1ブロック群R1の中から、更新後の第1管理情報を格納すべき空きブロックを確保する。具体的には、ブロックB1〜B10の中から、先天性不良ブロック、後天性不良ブロック、及び多数決対象ブロックを除外して、3個の空きブロックを確保する。第1管理情報には第1ブロック群R1内の不良ブロックの位置情報が含まれているため、現在有効な第1管理情報(4,4)を参照することにより、第1ブロック群R1内の先天性不良ブロック及び後天性不良ブロックを特定することができる。この例では、無効ブロックであるブロックB2,B4と、消去済みブロックであるブロックB10とが、空きブロックとして確保される。なお、確保できる空きブロックが2個以下である場合は、その制御対象メモリ3は故障であると判定される。
次に図14を参照して、メモリコントローラ2は、3個の空きブロックの中の任意の1個の空きブロックのデータを消去した後、更新後の第1管理情報(5,5)をそのブロックに書き込む。この例では、ブロックB10のデータが消去された後に、第1管理情報(5,5)がブロックB10に書き込まれる。なお、空きブロックのデータを消去する際、又は第1管理情報(5,5)を書き込む際に、該当ブロックが後天性不良ブロックとなった場合には、メモリコントローラ2は、第1管理情報に含まれている不良ブロックの位置情報を更新するとともに、空きブロックの確保処理からやり直す。
次に図15を参照して、メモリコントローラ2は、3個の多数決対象ブロックの中の任意の1個のブロックに対して、無効フラグを付加する。この例では、ブロックB7に無効フラグが付加される。なお、無効フラグを付加する際に該当ブロックが後天性不良ブロックとなった場合には、メモリコントローラ2は、第1管理情報に含まれている不良ブロックの位置情報を更新するとともに、空きブロックの確保処理からやり直す。
次に図16を参照して、メモリコントローラ2は、3個の空きブロックの中の次の空きブロックB2のデータを消去した後、第1管理情報(5,5)をそのブロックB2に書き込む。その後、3個の多数決対象ブロックの中の次のブロックB8に対して、無効フラグを付加する。次に、メモリコントローラ2は、3個の空きブロックの中の最後の空きブロックB4のデータを消去した後、第1管理情報(5,5)をそのブロックB4に書き込む。その後、3個の多数決対象ブロックの中の最後のブロックB9に対して、無効フラグを付加する。これにより、3個の空きブロックB2,B4,B10に同一内容の第1管理情報(5,5)が格納される。
なお、多数決対象ブロックB7〜B9に無効フラグを付加する代わりに、データの消去を行っても良い。この場合、1個の空きブロックへの第1管理情報の書き込みと、1個の多数決対象ブロックに対するデータの消去とが、交互に3回繰り返されることとなる。
<実施の形態1の具体例1>
図17は、第1ブロック群R1の他の例を示す図である。この例において、ブロックB5,B9は先天性不良ブロックであり、ブロックB1,B2,B10は無効ブロックである。また、ブロックB4,B8は後天性不良ブロックである。但し、ブロックB4,B8に関しては管理情報ID値とCRC値とが一致している。また、ブロックB3,B6,B7には、第1管理情報(6,6)が格納されている。
図17に示した第1ブロック群R1を対象とした管理情報の取得処理について、簡単に説明する。まず、先天性不良ブロックであるブロックB5,B9が除外される。次に、無効ブロックであるブロックB1,B2,B10が除外される。次に、異常ブロックの探索が行われるが、この例では異常ブロックが存在しないため、異常ブロックとしてはどのブロックも除外されない。次に、4個の正常ブロックとしてブロックB3,B4,B6,B7が選択される。
次に、先頭3個の正常ブロックB3,B4,B6を対象とする1回目の多数決が行われ、その結果、ブロックB3,B6に格納されている第1管理情報(6,6)が妥当な第1管理情報として特定される。
次に、ブロックB3,B6のいずれかに格納されている第1管理情報(6,6)に基づいて、第2ブロック群R2の中から第2管理情報が読み出される。
<実施の形態1の具体例2>
図18は、第1ブロック群R1の他の例を示す図である。この例において、ブロックB5,B9は先天性不良ブロックであり、ブロックB1,B2,B10は無効ブロックである。また、ブロックB4,B6は後天性不良ブロックである。但し、ブロックB4,B6に関しては管理情報ID値とCRC値とが一致している。また、ブロックB3,B7,B8には、第1管理情報(7,7)が格納されている。
図18に示した第1ブロック群R1を対象とした管理情報の取得処理について、簡単に説明する。まず、先天性不良ブロックであるブロックB5,B9が除外される。次に、無効ブロックであるブロックB1,B2,B10が除外される。次に、異常ブロックの探索が行われるが、この例では異常ブロックが存在しないため、異常ブロックとしてはどのブロックも除外されない。次に、4個の正常ブロックとしてブロックB3,B4,B6,B7が選択される。
次に、先頭3個の正常ブロックB3,B4,B6を対象とする1回目の多数決が行われるが、多数決が成立しないため、妥当な第1管理情報はないと判定される。
次に、末尾3個の正常ブロックB4,B6,B7を対象とする2回目の多数決が行われるが、多数決が成立しないため、妥当な第1管理情報はないと判定される。その結果、その制御対象メモリ3は故障であると判定される。
<実施の形態2>
以下、本発明の実施の形態2に係る半導体記憶装置1について、上記実施の形態1との相違点を中心に説明する。
上記実施の形態1と同様に、第1管理情報には、第2管理情報の格納ブロックを示す位置情報が含まれる。また、第1管理情報には、管理情報IDが含まれる。また、第1管理情報には、第1ブロック群R1内の不良ブロックを示す位置情報が含まれる。
また、本実施の形態では、上記に加えて、第1管理情報には、自身と同一内容の第1管理情報が格納された他の2個のブロックを示す位置情報(本明細書において「グループアドレス」と称す)が含まれる。
さらに、第1管理情報には、誤り検出符号が含まれる。本実施の形態の例では、グループアドレスを含めた全域のCRC値と、グループアドレスを除いた部分のCRC値とが、第1管理情報内に含められる。グループアドレスを含めた全域のCRC値は、その第1管理情報にデータの誤りが生じているか否かの判定に使用される。また、グループアドレスを除いた部分のCRC値は、妥当な第1管理情報を特定するための多数決に使用される。
以下、本実施の形態に係る半導体記憶装置1に関して、(1)管理情報の格納例、(2)管理情報の取得処理、(3)管理情報の更新処理を、順に説明する。
(1)管理情報の格納例
図19は、第1ブロック群R1を示す図である。この例において、ブロックB1,B5は先天性不良ブロックであり、ブロックB2,B4は無効ブロックであり、ブロックB10は消去済みブロックである。
ブロックB3,B6〜B9には第1管理情報が格納されている。第1管理情報に付した丸括弧内の数字は、管理情報ID値及びCRC値を示している。第1管理情報に付した山括弧内の数字は、グループアドレスを示している。例えば、ブロックB7に第1管理情報(3,3)を書き込む際に、ブロックB2,B4にも同一内容の第1管理情報(3,3)が書き込まれたことを意味している。
(2)管理情報の取得処理
図20〜25は、半導体記憶装置1の起動時にメモリコントローラ2が実行する管理情報の取得処理を順に示す図である。第1ブロック群R1は、図19に示した状態になっているものとする。
まず、メモリコントローラ2は、メモリIDを要求するリードコマンドを制御対象メモリ3に発行することにより、制御対象メモリ3からメモリIDを取得する。
<先天性不良ブロックの探索ステップ>
次に図20を参照して、メモリコントローラ2は、第1ブロック群R1に属する全てのブロックB1〜B10を対象として、先天性不良ブロックを探索する。
探索の結果、ブロックB1〜B10内に先天性不良ブロックが存在している場合には、メモリコントローラ2は、そのブロックを取得対象ブロックの候補から除外する。図20に示した例では、先天性不良ブロックであるブロックB1,B5が候補から除外される。
<無効ブロックの探索ステップ>
次に図21を参照して、メモリコントローラ2は、良ブロックB2〜B4,B6〜B10を対象として、無効ブロックを探索する。
探索の結果、良ブロック内に無効ブロックが存在している場合には、メモリコントローラ2は、そのブロックを取得対象ブロックの候補から除外する。図21に示した例では、無効ブロックであるブロックB2,B4が候補から除外される。
<異常ブロックの探索ステップ>
次に図22を参照して、メモリコントローラ2は、有効ブロックB3,B6〜B10を対象として、データの誤りが生じているブロックを探索する。具体的には、各有効ブロックに関して、第1管理情報の格納ページにアクセスして第1管理情報を読み出し、グループアドレスを含めた第1管理情報の全域に対してCRC演算を行う。そして、演算により求めた全域のCRC値と、読み出した第1管理情報内に含まれている全域のCRC値とを比較する。メモリコントローラ2は、両CRC値が一致する場合には、そのブロックは正常ブロックであると判定し、一方、両CRC値が一致しない場合には、そのブロックは異常ブロックであると判定する。
探索の結果、有効ブロック内に異常ブロックが存在している場合には、メモリコントローラ2は、そのブロックを取得対象ブロックの候補から除外する。図22に示した例では、異常ブロックであるブロックB6,B10が候補から除外される。
<妥当な第1管理情報の特定ステップ>
次に図23を参照して、メモリコントローラ2は、残った正常ブロックB3,B7〜B9の中から1個の正常ブロックを任意に選択する。例えば、ブロックアドレスが最も小さい正常ブロックB3を選択する。そして、正常ブロックB3に格納されている第1管理情報に含まれているグループアドレス<4,6>を参照することにより、ブロックB3,B4,B6を対象とする多数決を行う。具体的には、各ブロックB3,B4,B6に格納されている第1管理情報に含まれている管理情報ID値及びCRC値(グループアドレスを除いた部分のCRC値)を相互に比較することにより、1回目の多数決を行う。この例では、ブロックB4,B6は正常ブロックではなく、多数決の候補から除外されるため、1回目の多数決は成立しない。
次に図24を参照して、メモリコントローラ2は、正常ブロックB3,B7〜B9の中から次の正常ブロックを任意に選択する。例えば、ブロックアドレスが次に小さい正常ブロックB7を選択する。そして、正常ブロックB7に格納されている第1管理情報に含まれているグループアドレス<2,4>を参照することにより、ブロックB2,B4,B7を対象とする多数決を行う。具体的には、各ブロックB2,B4,B7に格納されている第1管理情報に含まれている管理情報ID値及びCRC値(グループアドレスを除いた部分のCRC値)を相互に比較することにより、2回目の多数決を行う。この例では、ブロックB2,B4は正常ブロックではなく、多数決の候補から除外されるため、2回目の多数決は成立しない。
次に図25を参照して、メモリコントローラ2は、正常ブロックB3,B7〜B9の中から次の正常ブロックを任意に選択する。例えば、ブロックアドレスが次に小さい正常ブロックB8を選択する。そして、正常ブロックB8に格納されている第1管理情報に含まれているグループアドレス<9,10>を参照することにより、ブロックB8〜B10を対象とする多数決を行う。具体的には、各ブロックB8〜B10に格納されている第1管理情報に含まれている管理情報ID値及びCRC値(グループアドレスを除いた部分のCRC値)を相互に比較することにより、3回目の多数決を行う。この例では、ブロックB10は正常ブロックではないため多数決の候補から除外されるが、ブロックB8,B9に格納されている2個の第1管理情報の管理情報ID値及びCRC値はいずれも(4,4)であり、2個以上で一致する。従って、ブロックB8,B9に格納されている第1管理情報が、妥当な第1管理情報であると判定される。
なお、全ての正常ブロックB3,B7〜B9を選択しても妥当な第1管理情報を特定できない場合には、その制御対象メモリ3は故障と判定される。
<第2管理情報の取得ステップ>
次に、メモリコントローラ2は、特定した2個以上の妥当な第1管理情報の中から、任意の1個の第1管理情報を確定する。例えば、ブロックB8,B9の中でブロックアドレスの最も小さいブロックB8を選択し、ブロックB8に格納されている第1管理情報(4,4)を、妥当な第1管理情報として確定する。
次に、メモリコントローラ2は、確定した妥当な第1管理情報に含まれている位置情報に基づいて、第2ブロック群R2の中から第2管理情報を読み出すことにより、第2管理情報を取得する。
(3)管理情報の更新処理
図26〜30は、メモリコントローラ2が実行する第1管理情報の更新処理を順に示す図である。
図26を参照して、現在有効な第1管理情報は、ブロックB8,B9に格納されている第1管理情報(4,4)である。また、起動時に妥当な第1管理情報を特定するための多数決の候補となった第1管理情報は、多数決対象ブロックB8〜B10に格納されている第1管理情報である。
次に図27を参照して、メモリコントローラ2は、第1ブロック群R1の中から空きブロックを確保する。具体的には、ブロックB1〜B10の中から、先天性不良ブロック、後天性不良ブロック、及び多数決対象ブロックを除外して、3個の空きブロックを確保する。この例では、ブロックB2,B4,B7が、空きブロックとして確保される。
次に図28を参照して、メモリコントローラ2は、3個の空きブロックの中の任意の1個の空きブロックのデータを消去した後、グループアドレスを含む更新後の第1管理情報をそのブロックに書き込む。この例では、ブロックB2のデータが消去された後に、ブロックB4,B7を示すグループアドレス<4,7>を含む第1管理情報(5,5)<4,7>が、ブロックB2に書き込まれる。
次に図29を参照して、メモリコントローラ2は、3個の多数決対象ブロックの中の任意の1個のブロックに対して、無効フラグを付加する。この例では、ブロックB8に無効フラグが付加される。
次に図30を参照して、メモリコントローラ2は、3個の空きブロックの中の次の空きブロックB4のデータを消去した後、グループアドレス<2,7>を含む第1管理情報(5,5)<2,7>を、そのブロックB4に書き込む。その後、3個の多数決対象ブロックの中の次のブロックB9に対して、無効フラグを付加する。次に、メモリコントローラ2は、3個の空きブロックの中の最後の空きブロックB7のデータを消去した後、グループアドレス<2,4>を含む第1管理情報(5,5)<2,4>を、そのブロックB7に書き込む。その後、3個の多数決対象ブロックの中の最後のブロックB10に対して、無効フラグを付加する。これにより、3個の空きブロックB2,B4,B7に同一内容の第1管理情報(5,5)が格納される。
<実施の形態2の具体例1>
図31は、第1ブロック群R1の他の例を示す図である。この例において、ブロックB5,B9は先天性不良ブロックであり、ブロックB1,B2,B10は無効ブロックである。また、ブロックB4,B8は後天性不良ブロックである。但し、ブロックB4,B8に関しては管理情報ID値とCRC値とが一致している。また、ブロックB3には第1管理情報(6,6)<6,7>が格納されており、ブロックB6には第1管理情報(6,6)<3,7>が格納されており、ブロックB7には第1管理情報(6,6)<3,6>が格納されている。
図31に示した第1ブロック群R1を対象とした管理情報の取得処理について、簡単に説明する。まず、先天性不良ブロックであるブロックB5,B9が除外される。次に、無効ブロックであるブロックB1,B2,B10が除外される。次に、異常ブロックの探索が行われるが、この例では異常ブロックが存在しないため、異常ブロックとしてはどのブロックも除外されない。
次に、先頭の正常ブロックB3が選択され、その正常ブロックB3と、グループアドレス<6,7>で示された正常ブロックB6,B7とを対象とする多数決が行われる。その結果、ブロックB3,B6,B7に格納されている第1管理情報(6,6)が妥当な第1管理情報として特定される。
次に、ブロックB3,B6,B7のいずれかに格納されている第1管理情報(6,6)に基づいて、第2ブロック群R2の中から第2管理情報が読み出される。
<実施の形態2の具体例2>
図32は、第1ブロック群R1の他の例を示す図である。この例において、ブロックB5,B9は先天性不良ブロックであり、ブロックB1,B2,B10は無効ブロックである。また、ブロックB4,B6は後天性不良ブロックである。但し、ブロックB4,B6に関しては管理情報ID値とCRC値とが一致している。また、ブロックB3には第1管理情報(7,7)<7,8>が格納されており、ブロックB7には第1管理情報(7,7)<3,8>が格納されており、ブロックB8には第1管理情報(7,7)<3,7>が格納されている。
図32に示した第1ブロック群R1を対象とした管理情報の取得処理について、簡単に説明する。まず、先天性不良ブロックであるブロックB5,B9が除外される。次に、無効ブロックであるブロックB1,B2,B10が除外される。次に、異常ブロックの探索が行われるが、この例では異常ブロックが存在しないため、異常ブロックとしてはどのブロックも除外されない。
次に、先頭の正常ブロックB3が選択され、その正常ブロックB3と、グループアドレス<7,8>で示された正常ブロックB7,B8とを対象とする多数決が行われる。その結果、ブロックB3,B7,B8に格納されている第1管理情報(7,7)が妥当な第1管理情報として特定される。
次に、ブロックB3,B7,B8のいずれかに格納されている第1管理情報(7,7)に基づいて、第2ブロック群R2の中から第2管理情報が読み出される。
同様のケースである上記実施の形態1の具体例2(図18)では、妥当な第1管理情報を特定できなかった。これに対して図32の例では、グループアドレスに基づく多数決を行うことによって、妥当な第1管理情報の特定に成功している。
<変形例1>
図33は、変形例1に係る半導体記憶装置1の構成を簡略化して示す図である。半導体記憶装置1は、メモリコントローラ2と、メモリコントローラ2によって制御される複数個の制御対象メモリ(図33の例では4個の制御対象メモリ3A〜3D)とを備えている。
このようなシステム構成においては、データサイズが大きい第2管理情報を複数に分割し、各分割片を複数の制御対象メモリに分散して格納しても良い。図33に示した例では、第2管理情報は、3個の第2管理情報片121〜123に分割されている。第1管理情報11は制御対象メモリ3Aに格納され、第2管理情報片121は制御対象メモリ3Bに格納され、第2管理情報片122は制御対象メモリ3Cに格納され、第2管理情報片123は制御対象メモリ3Dに格納される。第1管理情報11には、各第2管理情報片121〜123の所在を示す位置情報が含まれている。第2管理情報を読み出す場合には、第2管理情報片121〜123が制御対象メモリ3B〜3Dから並列に読み出される。
<変形例2>
上記実施の形態1,2では、管理情報を第1管理情報と第2管理情報とに分割する例について述べたが、管理情報を分割せず、第2管理情報の内容を第1管理情報内に含めても良い。管理情報のデータサイズが大きくなるため、第1ブロック群R1として多数のブロックを割り当てる余裕がある場合に有効である。
<変形例3>
上記実施の形態1,2では、管理情報を第1管理情報と第2管理情報との2つに分割する例について述べたが、3つ以上に分割しても良い。例えば3つに分割する場合には、書き換え頻度が低い情報を第1管理情報内に含め、書き換え頻度が中程度の情報を第2管理情報内に含め、書き換え頻度が高い情報を第3管理情報内に含める。第1管理情報は、割り当てられるブロック数が少ない第1ブロック群内に格納し、第2管理情報は、割り当てられるブロック数が多い第2ブロック群内に格納し、第3管理情報は、全ブロックのうち第1ブロック群及び第2ブロック群以外の第3ブロック群内(ブロック数は最も多い)に格納する。
<変形例4>
上記実施の形態1,2では、第1ブロック群R1として割り当てられるブロックは、ブロックB1〜B10に限定されている。従って、ブロックB1〜B10内に先天性不良ブロックが存在している場合には、第1ブロック群R1内で実際に使用できるブロック数は、先天性不良ブロックの数に応じて減少する。そこで、第1ブロック群を割り当てる際に先天性不良ブロックを除外してもよい。例えばブロックB5,B9が先天性不良ブロックである場合には、ブロックB1〜B4,B6〜B8,B10〜B12を第1ブロック群として割り当てる。
<変形例5>
上記実施の形態1,2では、第2ブロック群R2に1個の第2管理情報を格納する例について述べたが、第2ブロック群R2に複数個の第2管理情報を格納しても良い。
図34は、第2ブロック群R2の第1の例を示す図である。この例では、第2ブロック群R2に属する全てのブロックの中から任意に選択された3個のブロックに、同一内容の第2管理情報が格納される。但し、「3個」の値は一例であり、この値には限定されない。
第2管理情報には、不良ブロックの所在を示す位置情報に加えて、管理情報IDが含まれる。管理情報IDは、第2管理情報のバージョンを示すものであり、第2管理情報が更新される度に管理情報IDの値も更新される。この例では、第2管理情報が更新される度に「1」ずつインクリメントされる整数値が、管理情報IDとして使用される。また、第2管理情報には、誤り検出符号が含まれる。この例では、誤り検出符号としてCRCが使用される。
図34に示した例では、第2管理情報はブロックB100,B200,B300に格納されている。第2管理情報に付した丸括弧内の数字は、第2管理情報の管理情報ID値(左側)及びCRC値(右側)を示している。説明の便宜上、第2管理情報を書き込む際のCRC値は、第2管理情報の管理情報ID値と同一の値をとるものとする。データの誤りが生じていない正常ブロックに関しては、CRC値と管理情報ID値とは一致し、一方、後天性不良ブロックになったこと等に起因してデータの誤りが生じている異常ブロックに関しては、CRC値と管理情報ID値とは一致しない。
図34には示さないが、第1管理情報には、第2管理情報を格納している3個のブロックB100,B200,B300の所在を示す3個の位置情報が含まれている。
メモリコントローラ2は、妥当な第1管理情報を確定すると、確定した第1管理情報に含まれている3個の位置情報の中から、任意の1個の位置情報を選択する。例えば、ブロックアドレスが最も小さいブロックB100を示す位置情報を選択する。
次に、メモリコントローラ2は、ブロックB100から第2管理情報を読み出し、読み出した第2管理情報に対してCRC演算を行う。そして、演算により求めたCRC値と、読み出した第2管理情報内に含まれているCRC値とを比較する。メモリコントローラ2は、両CRC値が一致する場合には、ブロックB100は正常ブロックであると判定し、ブロックB100から読み出した第2管理情報を妥当な第2管理情報として取得する。
一方、両CRC値が一致しない場合には、ブロックB100は異常ブロックであると判定し、3個の位置情報の中から次の位置情報を選択する。例えば、ブロックアドレスが次に小さいブロックB200を示す位置情報を選択する。そして、上記と同様に、ブロックB200から第2管理情報を読み出して、ブロックB200が正常ブロックであるか異常ブロックであるかを判定する。
ブロックB200が正常ブロックである場合には、メモリコントローラ2は、ブロックB200から読み出した第2管理情報を妥当な第2管理情報として取得する。一方、ブロックB200が異常ブロックである場合には、メモリコントローラ2は、3個の位置情報の中からブロックB300を示す位置情報を選択する。そして、上記と同様に、ブロックB300から第2管理情報を読み出して、ブロックB300が正常ブロックであるか異常ブロックであるかを判定する。ブロックB300が正常ブロックである場合には、メモリコントローラ2は、ブロックB300から読み出した第2管理情報を妥当な第2管理情報として取得する。一方、ブロックB300が異常ブロックである場合には、メモリコントローラ2は、その制御対象メモリ3は故障であると判定する。
図35は、第2ブロック群R2の第2の例を示す図である。この例では、第2ブロック群R2に属する全てのブロックの中から任意に選択された3個のブロックに、バージョンが異なる3個の第2管理情報が格納される。但し、「3個」の値は一例であり、この値には限定されない。
図35に示した例では、ブロックB100に第2管理情報(3,3)が格納され、ブロックB200に第2管理情報(4,4)が格納され、ブロックB300に第2管理情報(5,5)が格納されている。
メモリコントローラ2は、妥当な第1管理情報を確定すると、確定した第1管理情報に含まれている3個の位置情報に基づいて、ブロックB100,B200,B300から3個の第2管理情報を読み出す。そして、各第2管理情報に含まれている管理情報ID値を比較することにより、最新バージョンの第2管理情報を選択する。この例では、ブロックB300から読み出した第2管理情報(5,5)が、最新バージョンの第2管理情報として選択される。
次に、メモリコントローラ2は、選択した第2管理情報に対してCRC演算を行う。そして、演算により求めたCRC値と、選択した第2管理情報内に含まれているCRC値とを比較する。メモリコントローラ2は、両CRC値が一致する場合には、ブロックB300は正常ブロックであると判定し、ブロックB300から読み出した第2管理情報を妥当な第2管理情報として取得する。
一方、両CRC値が一致しない場合には、ブロックB300は異常ブロックであると判定し、読み出した3個の第2管理情報の中から、次に新しい第2管理情報を選択する。この例では、ブロックB200から読み出した第2管理情報(4,4)が選択される。そして、上記と同様に、ブロックB200が正常ブロックであるか異常ブロックであるかを判定する。
ブロックB200が正常ブロックである場合には、メモリコントローラ2は、ブロックB200から読み出した第2管理情報を妥当な第2管理情報として取得する。一方、ブロックB200が異常ブロックである場合には、メモリコントローラ2は、ブロックB100から読み出した第2管理情報を選択する。そして、上記と同様に、ブロックB100が正常ブロックであるか異常ブロックであるかを判定する。ブロックB100が正常ブロックである場合には、メモリコントローラ2は、ブロックB100から読み出した第2管理情報を妥当な第2管理情報として取得する。一方、ブロックB100が異常ブロックである場合には、メモリコントローラ2は、その制御対象メモリ3は故障であると判定する。
なお、以上の説明では管理情報ID値の比較を行った後にCRC値の比較を行う例について述べたが、これとは逆に、CRC値の比較(異常ブロックの排除)を行った後に管理情報ID値の比較(最新バージョンの選択)を行っても良い。
また、図35に示した例において第2管理情報を更新する場合には、メモリコントローラ2は、正常ブロックのうち最も古い第2管理情報(3,3)が格納されているブロックB100に、最新の第2管理情報(6,6)を上書きする。
<まとめ>
上記実施の形態1,2に係る半導体記憶装置1によれば、10個(第1所定数個)のブロックB1〜B10から成る第1ブロック群R1が、管理情報を格納するためのブロックとして限定的に割り当てられている。そして、第1ブロック群R1の中からメモリコントローラ2によって選択された、第1所定数個未満の3個(第2所定数個)のブロックの各々に、同一内容の管理情報が格納されている。従って、第2所定数個のブロックに格納されている第2所定数個の管理情報のうちの一つが破壊又は喪失された場合であっても、メモリコントローラ2は、破壊又は喪失されていない残りの管理情報を、制御対象メモリ3から取得することができる。その結果、不良ブロックの存在や強制的な電源遮断等に起因して正常動作が阻害されるという事態を回避しつつ、管理情報を制御対象メモリ3に格納することが可能となる。
また、第2管理情報は、通常のユーザデータが格納される第2ブロック群R2内に格納される。第2ブロック群R2に関しては、後天性不良ブロックとなったブロック又はエラーが発生したブロックを代替ブロックに置き換える処理(いわゆる代替処理)、及び、読み出し時にエラーが発生したデータを訂正して訂正後のデータを再書き込みする処理(いわゆるリフレッシュ処理)等の一般的なエラー処理によって、データの信頼性が確保されている。第2管理情報を第2ブロック群R2内に格納することにより、これらのエラー処理によって第2管理情報の信頼性を確保することができる。
さらに、第2所定数個は第1所定数個未満に設定されており、上記実施の形態1,2の例では、第2所定数個は3個、第1所定数個は10個に設定されている。従って、同一内容の3個の第1管理情報を1セットとすると、第1ブロック群R1内には3セットの第1管理情報を格納することができる。しかも、第1管理情報を更新する場合には、更新前の第1管理情報が格納されているブロックとは異なるブロックに、更新後の第1管理情報が書き込まれる。従って、第1ブロック群R1内の特定のブロックにアクセスが集中する事態を回避できる。その結果、第1ブロック群R1内における後天性不良ブロックの発生が抑制されるため、装置の信頼性を向上することが可能となる。
また、上記実施の形態1,2に係る半導体記憶装置1によれば、管理情報は、第1管理情報と、第1管理情報よりも書き換え頻度の高い第2管理情報とに分割されている。そして、第1管理情報は第1ブロック群R1内に格納され、第2管理情報は第2ブロック群R2内に格納される。書き換え頻度に応じて管理情報を第1管理情報と第2管理情報とに分割し、限定的に割り当てられた第1ブロック群R1内には、書き換え頻度の低い第1管理情報を格納することにより、第1ブロック群R1内ではデータの書き換えが頻繁には発生しない。その結果、第1ブロック群R1内における後天性不良ブロックの発生が抑制されるため、装置の信頼性を向上することが可能となる。
また、上記実施の形態1,2に係る半導体記憶装置1によれば、第1管理情報には、第2管理情報を格納しているブロックを示す位置情報が含まれ、第2管理情報には、不良ブロックを示す位置情報が含まれる。従って、メモリコントローラ2は、第1管理情報を制御対象メモリ3から読み出すことによって、第2管理情報を格納しているブロックを示す位置情報を取得でき、また、当該位置情報に基づいて第2管理情報を制御対象メモリ3から読み出すことによって、不良ブロックを示す位置情報を取得することが可能となる。
また、上記実施の形態1,2に係る半導体記憶装置1によれば、第1管理情報には、第1ブロック群R1内の不良ブロックを示す位置情報が含まれ、第2管理情報には、第2ブロック群R2内の不良ブロックを示す位置情報が含まれる。従って、第1ブロック群R1内で後天性不良ブロックが発生した場合には、第1管理情報のみを更新すればよく、第2管理情報の更新を省略することができる。同様に、第2ブロック群R2内で後天性不良ブロックが発生した場合には、第2管理情報のみを更新すればよく、第1管理情報の更新を省略することができる。
また、上記実施の形態1,2に係る半導体記憶装置1によれば、メモリコントローラ2は、3個以上かつ第1ブロック群のブロック数以下(第3所定数個)の正常ブロックを、第1ブロック群R1の中から特定する。そして、特定した第3所定数個の正常ブロックに格納されている第3所定数個の第1管理情報の中から、多数決によって1個の妥当な第1管理情報を特定する。従って、更新が繰り返されることで第1ブロック群R1内に複数バージョンの第1管理情報が格納されている場合であっても、妥当な第1管理情報を適切に特定することが可能となる。
また、上記実施の形態1,2に係る半導体記憶装置1によれば、メモリコントローラ2は、第1ブロック群R1の中から先天性不良ブロックを除外することにより、正常ブロックを特定する。従って、先天性不良ブロックが正常ブロックとして特定されるという事態を回避できるため、妥当な第1管理情報を適切に特定することが可能となる。
また、上記実施の形態1,2に係る半導体記憶装置1によれば、メモリコントローラ2は、第1ブロック群R1の中から無効ブロックを除外することにより、正常ブロックを特定する。従って、無効ブロックが正常ブロックとして特定されるという事態を回避できるため、妥当な第1管理情報を適切に特定することが可能となる。
また、上記実施の形態1,2に係る半導体記憶装置1によれば、メモリコントローラ2は、第1ブロック群R1の中から異常ブロックを除外することにより、正常ブロックを特定する。従って、異常ブロックが正常ブロックとして特定されるという事態を回避できるため、妥当な第1管理情報を適切に特定することが可能となる。
また、上記実施の形態1,2に係る半導体記憶装置1によれば、メモリコントローラ2は、第3所定数個の正常ブロックの中から3個の正常ブロックを特定し、当該3個の正常ブロックに格納されている3個の第1管理情報の中から、多数決によって1個の妥当な第1管理情報を特定する。このように、多数決を行う対象を3個の第1管理情報に限定することによって、簡易に多数決を行うことができるため、処理の所要時間を短縮することが可能となる。
また、上記実施の形態1に係る半導体記憶装置1によれば、メモリコントローラ2は、ある1個の正常ブロックに格納されている第1管理情報と、他の任意の2個の正常ブロックに格納されている2個の第1管理情報とを用いて、多数決を行う。従って、多数決を行う対象を限定するための追加の情報を第1管理情報に含める必要がないため、処理及び構成を簡略化することが可能となる。
また、上記実施の形態2に係る半導体記憶装置1によれば、メモリコントローラ2は、ある1個の正常ブロックに格納されている第1管理情報と、当該第1管理情報に位置情報が記述されている特定の2個のブロックに格納されている2個の第1管理情報とを用いて、多数決を行う。従って、多数決を行う対象を、更新時に併せて書き込まれた同一内容の第1管理情報に限定できるため、多数決によって妥当な第1管理情報を特定できる可能性を高めることが可能となる。
また、上記実施の形態1,2に係る半導体記憶装置1によれば、メモリコントローラ2は、特定した3個の正常ブロックを対象とする多数決によっては妥当な第1管理情報を特定できない場合には、他の3個の正常ブロックを特定し直して多数決を行う。これにより、妥当な第1管理情報を特定できる可能性を高めることが可能となる。
また、上記実施の形態1,2に係る半導体記憶装置1によれば、メモリコントローラ2は、第1管理情報を更新する必要が生じた場合には、第1ブロック群R1の中で第2所定数個の空きブロックを確保し、当該第2所定数個の空きブロックの各々に、更新後の第1管理情報をそれぞれ書き込む。これにより、更新後においても、同一内容の第2所定個数の第1管理情報を、第1ブロック群R1に格納することが可能となる。
また、上記実施の形態1,2に係る半導体記憶装置1によれば、メモリコントローラ2は、更新毎に値が異なるバージョン情報を、第1管理情報に含めて書き込む。従って、バージョン情報を用いて多数決を行うことができ、その結果、妥当な第1管理情報を適切に特定する精度を向上することが可能となる。
また、上記実施の形態1,2に係る半導体記憶装置1によれば、メモリコントローラ2は、第1管理情報を空きブロックに書き込む際に当該空きブロックが後天性不良ブロックとなった場合には、当該第1管理情報に含めたバージョン情報の値を、以降の更新時には使用しない。従って、バージョン情報の値を生成するためのカウンタ値が一周した場合であっても、後天性不良ブロックに格納されている第1管理情報が、多数決によって妥当な第1管理情報として誤って特定されるという事態を回避することが可能となる。
また、上記実施の形態1,2に係る半導体記憶装置1によれば、メモリコントローラ2は、第1管理情報の誤り検出符号を、第1管理情報に含めて書き込む。従って、誤り検出符号を用いて多数決を行うことができ、その結果、妥当な第1管理情報を適切に特定する精度を向上することが可能となる。また、誤り検出符号を用いてデータの誤りが生じているか否かを判定することができ、その結果、第1ブロック群の中から正常ブロックを特定する際に、データの誤りが生じている異常ブロックを除外することが可能となる。
また、上記実施の形態2に係る半導体記憶装置1によれば、メモリコントローラ2は、第2所定数個の空きブロックの中の一の空きブロックに書き込む第1管理情報に、第2所定数個の空きブロックの中の他の空きブロックを示す位置情報(グループアドレス)を含めて書き込む。従って、多数決を行う対象を、更新時に併せて書き込まれた同一内容の第1管理情報に限定できるため、多数決によって妥当な第1管理情報を特定できる可能性を高めることが可能となる。
また、上記実施の形態1,2に係る半導体記憶装置1によれば、メモリコントローラ2は、第1ブロック群R1の中から、先天性不良ブロックを除外することにより、空きブロックを確保する。従って、更新後の第1管理情報を書き込むブロックとして、先天性不良ブロックが選択されるという事態を回避することが可能となる。
また、上記実施の形態1,2に係る半導体記憶装置1によれば、メモリコントローラ2は、第1ブロック群R1の中から、後天性不良ブロックを除外することにより、空きブロックを確保する。従って、更新後の第1管理情報を書き込むブロックとして、後天性不良ブロックが選択されるという事態を回避することが可能となる。
また、上記実施の形態1,2に係る半導体記憶装置1によれば、メモリコントローラ2は、第1ブロック群R1の中から、更新前の第1管理情報が格納されている第2所定数個のブロック(多数決対象ブロック)を除外することにより、空きブロックを確保する。従って、第1管理情報の更新処理中にユーザの誤操作等によって強制的に電源が遮断され、それによって更新後の第1管理情報が消去された場合等であっても、更新前の第1管理情報は制御対象メモリ3内に残されているため、それを用いて再起動を行うことが可能となる。
また、上記実施の形態1,2に係る半導体記憶装置によれば、メモリコントローラ2は、1個の空きブロックへの第1管理情報の書き込みが完了すると、更新前の第1管理情報が格納されていた1個のブロックに対して、所定の無効フラグを付加する。これにより、第1管理情報が格納されているブロックとして、少なくとも第2所定数個のブロックを常に確保することが可能となる。しかも、データを消去するのではなく無効フラグを付加するため、消去に伴うメモリセルへのストレスを回避できる。その結果、第1ブロック群R1内における後天性不良ブロックの発生が抑制されるため、装置の信頼性を向上することが可能となる。
また、上記実施の形態1,2に係る半導体記憶装置1によれば、メモリコントローラ2は、第2所定数個の空きブロックの中の1個の空きブロックへの第1管理情報の書き込みが完了すると、更新前の第1管理情報が格納されていた第2所定数個のブロックの中の1個のブロックに対して、データの消去を行う。これにより、第1管理情報が格納されているブロックとして、少なくとも第2所定数個のブロックを常に確保することが可能となる。
また、上記変形例4に係る半導体記憶装置1によれば、先天性不良ブロックを除外した第1所定数個のブロックが、第1ブロック群R1として割り当てられる。従って、第1ブロック群を構成するブロックとして、必ず第1所定数個のブロックを確保できるため、装置の信頼性を向上することが可能となる。
また、上記変形例1に係る半導体記憶装置1によれば、第2管理情報は複数の第2管理情報片121〜123に分割される。そして、第1管理情報11は制御対象メモリ3Aに格納され、第2管理情報片121〜123は制御対象メモリ3B〜3Dにそれぞれ格納される。従って、複数の第2管理情報片121〜123を制御対象メモリ3B〜3Dから同時に読み出すことができ、その結果、処理の所要時間を短縮することが可能となる。
また、上記変形例5に係る半導体記憶装置1によれば、図34に示したように、第2ブロック群R2の中から選択された3個(第4所定数個)のブロックの各々に、同一内容の第2管理情報が格納されている。そして、メモリコントローラ2は、妥当な第1管理情報に含まれている位置情報に基づいて、第4所定数個のブロックに格納されている第4所定数個の第2管理情報の中から、1個の第2管理情報を取得する。従って、第4所定数個のブロックに格納されている第4所定数個の第2管理情報のうちの一つが破壊又は喪失された場合であっても、メモリコントローラ2は、破壊又は喪失されていない残りの第2管理情報を、制御対象メモリ3から取得することができる。その結果、不良ブロックの存在や強制的な電源遮断等に起因して正常動作が阻害されるという事態を回避しつつ、管理情報を制御対象メモリ3に格納することが可能となる。
また、上記変形例5に係る半導体記憶装置1によれば、図35に示したように、第2ブロック群R2の中から選択された3個(第4所定数個)のブロックに、バージョンが異なる第4所定数個の第2管理情報が格納されている。そして、メモリコントローラ2は、妥当な第1管理情報に含まれている位置情報に基づいて、第4所定数個のブロックに格納されている第4所定数個の第2管理情報の中から、1個の第2管理情報を取得する。従って、第4所定数個のブロックに格納されている第4所定数個の第2管理情報のうちの一つが破壊又は喪失された場合であっても、メモリコントローラ2は、破壊又は喪失されていない残りの第2管理情報を、制御対象メモリ3から取得することができる。その結果、不良ブロックの存在や強制的な電源遮断等に起因して正常動作が阻害されるという事態を回避しつつ、管理情報を制御対象メモリ3に格納することが可能となる。
また、上記実施の形態1,2に係る半導体記憶装置1によれば、第1所定数個のブロックから成る第1ブロック群R1が、管理情報を格納するためのブロックとして限定的に割り当てられている。また、管理情報は、第1管理情報と、第1管理情報よりも書き換え頻度の高い第2管理情報とを含む。そして、第1管理情報は第1ブロック群R1内に格納され、第2管理情報は第2ブロック群R2内に格納される。このように、書き換え頻度に応じて管理情報を第1管理情報と第2管理情報とに分割し、限定的に割り当てられた第1ブロック群R1内には、書き換え頻度の低い第1管理情報を格納することにより、第1ブロック群R1内ではデータの書き換えが頻繁には発生しない。その結果、第1ブロック群R1内における後天性不良ブロックの発生が抑制されるため、装置の信頼性を向上することが可能となる。
1 半導体記憶装置
2 メモリコントローラ
3 制御対象メモリ

Claims (27)

  1. それぞれがデータの消去単位である複数のブロックを有する記憶部と、
    前記記憶部を制御する制御部と、
    を備え、
    前記記憶部が有する全ブロックには、
    前記制御部が前記記憶部を管理するために必要な管理情報を格納するためのブロックとして限定的に割り当てられた、複数の第1所定数個のブロックから成る第1ブロック群と、
    第1ブロック群以外の第2ブロック群と、
    が含まれ、
    第1ブロック群の中から前記制御部によって選択された、第1所定数個未満の複数の第2所定数個のブロックの各々に、同一内容の管理情報が格納されている、半導体記憶装置。
  2. 管理情報は、
    第1管理情報と、
    第1管理情報よりも書き換え頻度の高い第2管理情報と、
    を含み、
    第1管理情報は第1ブロック群内に格納され、
    第2管理情報は第2ブロック群内に格納される、請求項1に記載の半導体記憶装置。
  3. 第1管理情報には、第2管理情報を格納しているブロックを示す位置情報が含まれ、
    第2管理情報には、不良ブロックを示す位置情報が含まれる、請求項2に記載の半導体記憶装置。
  4. 第1管理情報には、第1ブロック群内の不良ブロックを示す位置情報が含まれ、
    第2管理情報には、第2ブロック群内の不良ブロックを示す位置情報が含まれる、請求項3に記載の半導体記憶装置。
  5. 前記制御部は、
    正常な第1管理情報が格納されている、3個以上かつ第1所定数個以下の第3所定数個の正常ブロックを、第1ブロック群の中から特定し、
    第3所定数個の正常ブロックに格納されている第3所定数個の第1管理情報の中から、多数決によって1個の妥当な第1管理情報を特定し、
    当該妥当な第1管理情報に含まれている位置情報に基づいて、第2ブロック群の中から第2管理情報を取得する、請求項2〜4のいずれか一つに記載の半導体記憶装置。
  6. 第2ブロック群の中から選択された複数の第4所定数個のブロックの各々に、同一内容の第2管理情報が格納されており、
    第1管理情報には、第2管理情報を格納している第4所定数個のブロックを示す位置情報が含まれており、
    前記制御部は、妥当な第1管理情報に含まれている位置情報に基づいて、第4所定数個のブロックに格納されている第4所定数個の第2管理情報の中から、1個の第2管理情報を取得する、請求項5に記載の半導体記憶装置。
  7. 第2ブロック群の中から選択された複数の第4所定数個のブロックに、バージョンが異なる第4所定数個の第2管理情報が格納されており、
    第1管理情報には、第2管理情報を格納している第4所定数個のブロックを示す位置情報が含まれており、
    前記制御部は、妥当な第1管理情報に含まれている位置情報に基づいて、第4所定数個のブロックに格納されている第4所定数個の第2管理情報の中から、1個の第2管理情報を取得する、請求項5に記載の半導体記憶装置。
  8. 前記制御部は、第1ブロック群の中から、先天性不良ブロックを除外することにより、正常ブロックを特定する、請求項5〜7のいずれか一つに記載の半導体記憶装置。
  9. 前記制御部は、第1ブロック群の中から、所定の無効フラグが付加された無効ブロックを除外することにより、正常ブロックを特定する、請求項5〜8のいずれか一つに記載の半導体記憶装置。
  10. 前記制御部は、第1ブロック群の中から、格納している第1管理情報にデータの誤りが生じている異常ブロックを除外することにより、正常ブロックを特定する、請求項5〜9のいずれか一つに記載の半導体記憶装置。
  11. 前記制御部は、
    第3所定数個の正常ブロックの中から3個の正常ブロックを特定し、
    当該3個の正常ブロックに格納されている3個の第1管理情報の中から、多数決によって1個の妥当な第1管理情報を特定する、請求項5〜10のいずれか一つに記載の半導体記憶装置。
  12. 前記制御部は、
    ある1個の正常ブロックに格納されている第1管理情報と、
    他の任意の2個の正常ブロックに格納されている2個の第1管理情報と、
    を用いて、多数決を行う、請求項11に記載の半導体記憶装置。
  13. 前記制御部は、
    ある1個の正常ブロックに格納されている第1管理情報と、
    当該第1管理情報に位置情報が記述されている特定の2個のブロックに格納されている2個の第1管理情報と、
    を用いて、多数決を行う、請求項11に記載の半導体記憶装置。
  14. 前記制御部は、特定した3個の正常ブロックを対象とする多数決によっては妥当な第1管理情報を特定できない場合には、
    第3所定数個の正常ブロックの中から他の3個の正常ブロックを特定し、
    当該他の3個の正常ブロックに格納されている3個の第1管理情報の中から、多数決によって1個の妥当な第1管理情報を特定する、請求項11〜13のいずれか一つに記載の半導体記憶装置。
  15. 前記制御部は、第1管理情報を更新する必要が生じた場合には、
    第1ブロック群の中で第2所定数個の空きブロックを確保し、
    当該第2所定数個の空きブロックの各々に、更新後の第1管理情報をそれぞれ書き込む、請求項2〜14のいずれか一つに記載の半導体記憶装置。
  16. 前記制御部は、第1管理情報の更新毎に値が異なるバージョン情報を、第1管理情報に含めて書き込む、請求項15に記載の半導体記憶装置。
  17. 前記制御部は、第1管理情報を空きブロックに書き込む際に当該空きブロックが後天性不良ブロックとなった場合には、当該第1管理情報に含めたバージョン情報の値を、以降の更新時には使用しない、請求項16に記載の半導体記憶装置。
  18. 前記制御部は、第1管理情報の誤り検出符号を、第1管理情報に含めて書き込む、請求項15〜17のいずれか一つに記載の半導体記憶装置。
  19. 前記制御部は、第2所定数個の空きブロックの中の一の空きブロックに書き込む第1管理情報に、第2所定数個の空きブロックの中の他の空きブロックを示す位置情報を含めて書き込む、請求項15〜18のいずれか一つに記載の半導体記憶装置。
  20. 前記制御部は、第1ブロック群の中から、先天性不良ブロックを除外することにより、空きブロックを確保する、請求項15〜19のいずれか一つに記載の半導体記憶装置。
  21. 前記制御部は、第1ブロック群の中から、後天性不良ブロックを除外することにより、空きブロックを確保する、請求項15〜20のいずれか一つに記載の半導体記憶装置。
  22. 前記制御部は、第1ブロック群の中から、更新前の第1管理情報が格納されている第2所定数個のブロックを除外することにより、空きブロックを確保する、請求項15〜21のいずれか一つに記載の半導体記憶装置。
  23. 前記制御部は、第2所定数個の空きブロックの中の1個の空きブロックへの第1管理情報の書き込みが完了すると、更新前の第1管理情報が格納されていた第2所定数個のブロックの中の1個のブロックに対して、所定の無効フラグを付加する、請求項15〜22のいずれか一つに記載の半導体記憶装置。
  24. 前記制御部は、第2所定数個の空きブロックの中の1個の空きブロックへの第1管理情報の書き込みが完了すると、更新前の第1管理情報が格納されていた第2所定数個のブロックの中の1個のブロックに対して、データの消去を行う、請求項15〜22のいずれか一つに記載の半導体記憶装置。
  25. 先天性不良ブロックを除外した第1所定数個のブロックが、第1ブロック群として割り当てられる、請求項1〜24のいずれか一つに記載の半導体記憶装置。
  26. 前記記憶部とは異なる複数の他の記憶部をさらに備え、
    第2管理情報は複数の第2管理情報片に分割され、
    第1管理情報は前記記憶部に格納され、
    複数の第2管理情報片は前記複数の他の記憶部に格納される、請求項2〜25のいずれか一つに記載の半導体記憶装置。
  27. それぞれがデータの消去単位である複数のブロックを有する記憶部と、
    前記記憶部を制御する制御部と、
    を備え、
    前記記憶部が有する全ブロックには、
    前記制御部が前記記憶部を管理するために必要な管理情報を格納するためのブロックとして限定的に割り当てられた、複数の第1所定数個のブロックから成る第1ブロック群と、
    第1ブロック群以外の第2ブロック群と、
    が含まれ、
    管理情報は、
    第1管理情報と、
    第1管理情報よりも書き換え頻度の高い第2管理情報と、
    を含み、
    第1管理情報は第1ブロック群内に格納され、
    第2管理情報は第2ブロック群内に格納される、半導体記憶装置。
JP2012170078A 2012-07-31 2012-07-31 半導体記憶装置 Expired - Fee Related JP6118045B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012170078A JP6118045B2 (ja) 2012-07-31 2012-07-31 半導体記憶装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012170078A JP6118045B2 (ja) 2012-07-31 2012-07-31 半導体記憶装置

Publications (2)

Publication Number Publication Date
JP2014029616A true JP2014029616A (ja) 2014-02-13
JP6118045B2 JP6118045B2 (ja) 2017-04-19

Family

ID=50202139

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012170078A Expired - Fee Related JP6118045B2 (ja) 2012-07-31 2012-07-31 半導体記憶装置

Country Status (1)

Country Link
JP (1) JP6118045B2 (ja)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001084002A (ja) * 1999-09-10 2001-03-30 Aisin Seiki Co Ltd 制御装置
JP2002169729A (ja) * 2000-12-04 2002-06-14 Toshiba Corp 不揮発性メモリユニットのコントローラ、同コントローラを有するメモリシステム及び不揮発性メモリユニットの制御方法
JP2005234957A (ja) * 2004-02-20 2005-09-02 Nec Electronics Corp フラッシュメモリにおけるデータアクセス制御方法、データアクセス制御プログラム
JP2006277395A (ja) * 2005-03-29 2006-10-12 Matsushita Electric Ind Co Ltd 情報処理装置及び情報処理方法
JP2008262614A (ja) * 2007-04-10 2008-10-30 Mega Chips Corp 不揮発性半導体記憶装置
WO2008139689A1 (ja) * 2007-05-10 2008-11-20 Panasonic Corporation メモリコントローラ、半導体記録装置及び書き換え回数通知方法
JP2009521049A (ja) * 2005-12-21 2009-05-28 エヌエックスピー ビー ヴィ ブロック消去可能な記憶場所を有するメモリ
JP2011059866A (ja) * 2009-09-08 2011-03-24 Toshiba Corp コントローラ、及びデータ記憶装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001084002A (ja) * 1999-09-10 2001-03-30 Aisin Seiki Co Ltd 制御装置
JP2002169729A (ja) * 2000-12-04 2002-06-14 Toshiba Corp 不揮発性メモリユニットのコントローラ、同コントローラを有するメモリシステム及び不揮発性メモリユニットの制御方法
JP2005234957A (ja) * 2004-02-20 2005-09-02 Nec Electronics Corp フラッシュメモリにおけるデータアクセス制御方法、データアクセス制御プログラム
JP2006277395A (ja) * 2005-03-29 2006-10-12 Matsushita Electric Ind Co Ltd 情報処理装置及び情報処理方法
JP2009521049A (ja) * 2005-12-21 2009-05-28 エヌエックスピー ビー ヴィ ブロック消去可能な記憶場所を有するメモリ
JP2008262614A (ja) * 2007-04-10 2008-10-30 Mega Chips Corp 不揮発性半導体記憶装置
WO2008139689A1 (ja) * 2007-05-10 2008-11-20 Panasonic Corporation メモリコントローラ、半導体記録装置及び書き換え回数通知方法
JP2011059866A (ja) * 2009-09-08 2011-03-24 Toshiba Corp コントローラ、及びデータ記憶装置

Also Published As

Publication number Publication date
JP6118045B2 (ja) 2017-04-19

Similar Documents

Publication Publication Date Title
US8694855B1 (en) Error correction code technique for improving read stress endurance
US7240178B2 (en) Non-volatile memory and non-volatile memory data rewriting method
US8713381B2 (en) Systems and methods of using dynamic data for wear leveling in solid-state devices
US8266481B2 (en) System and method of wear-leveling in flash storage
US20070083697A1 (en) Flash memory management
CN104750565B (zh) Nand坏块处理方法及nand闪存设备
US8756398B2 (en) Partitioning pages of an electronic memory
US9563553B2 (en) Data storing method and embedded system
TW201617876A (zh) 資料儲存裝置以及快閃記憶體控制方法
JP4301301B2 (ja) 不揮発性半導体記憶装置およびその管理方法
US20110283052A1 (en) Memory controller, flash memory system with memory controller, and method of controlling flash memory
CN110781026A (zh) 嵌入式设备数据存储与修复方法、装置和嵌入式设备
US20180308562A1 (en) Non-volatile memory repair circuit
JP2012248109A (ja) マルチチャネルを有するメモリ装置及び同装置におけるコンパクションのためのリードコマンド群生成方法
JP2008117299A (ja) 記憶媒体制御装置
US6646917B1 (en) Storage device managing nonvolatile memory by converting logical address to physical address of nonvolatile memory
JP2018028830A (ja) 電子制御装置およびその情報記憶方法
JP2009086738A (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP6118045B2 (ja) 半導体記憶装置
JP2012174106A (ja) フラッシュメモリに対してデータの読み出しおよび書き込みを行う制御装置
JP6152999B2 (ja) 半導体記憶装置
JP3646679B2 (ja) 不揮発性メモリのデータ書き換え方法
JP4952741B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP2004145964A (ja) 半導体メモリ、半導体メモリ製造方法、メモリカードおよび半導体メモリ制御方法
US20060117134A1 (en) System and method for prolonging usage lifetime of a non-volatile memory

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150616

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160420

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160526

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160722

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161117

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170110

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170130

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170209

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170309

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170324

R150 Certificate of patent or registration of utility model

Ref document number: 6118045

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

LAPS Cancellation because of no payment of annual fees