JP6215439B2 - メモリシステムおよび制御方法 - Google Patents

メモリシステムおよび制御方法 Download PDF

Info

Publication number
JP6215439B2
JP6215439B2 JP2016243742A JP2016243742A JP6215439B2 JP 6215439 B2 JP6215439 B2 JP 6215439B2 JP 2016243742 A JP2016243742 A JP 2016243742A JP 2016243742 A JP2016243742 A JP 2016243742A JP 6215439 B2 JP6215439 B2 JP 6215439B2
Authority
JP
Japan
Prior art keywords
data
storage unit
defect information
defect
read
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016243742A
Other languages
English (en)
Other versions
JP2017054548A (ja
Inventor
揚平 長谷川
揚平 長谷川
滋博 浅野
滋博 浅野
徳正 原
徳正 原
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.)
Kioxia Corp
Original Assignee
Toshiba Memory 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 Toshiba Memory Corp filed Critical Toshiba Memory Corp
Priority to JP2016243742A priority Critical patent/JP6215439B2/ja
Publication of JP2017054548A publication Critical patent/JP2017054548A/ja
Application granted granted Critical
Publication of JP6215439B2 publication Critical patent/JP6215439B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明の実施形態は、メモリシステムおよび制御方法に関する。
例えばNANDフラッシュメモリなどの不揮発性記憶媒体では、誤り(エラー)が多いなどの理由により記憶単位となるブロックが記憶領域として利用できなくなることがある。このような利用不能となるブロックはバッドブロックまたは不良ブロックなどと呼ばれ、データの記憶対象となるブロック(フリーブロック)から除外するように制御される。
従来技術としては、製造時の検査工程でエラーが発見されたブロック(バッドブロック)の位置などを示す情報を不良情報テーブル (バッドブロック統計情報)として記録し、利用可能なフリーブロックとして扱わない方式が知られている。不良情報テーブルは不揮発記憶媒体に記録され、システム起動時に揮発性記憶媒体(例えばRAMなど)に展開されて使用される。
特開2012−198869号公報
不良情報テーブルの管理単位は不揮発性記憶媒体の記憶単位(例えばブロック単位)であり、起動時に揮発性記憶媒体にすべて展開して使用される想定である。しかし、より不良率の高い記憶媒体の場合は、ビット単位などのより細かい粒度で不良回避制御などが必要となるが、この場合は不良情報テーブルのサイズが大きくなるので、一度にDRAMなどの揮発性記憶媒体上に展開することができない。そのため、データの書き込み/読み出しのたびに、不揮発性記憶媒体に記録された不良情報テーブルを参照する必要があり、不揮発記憶媒体からの不良情報テーブルの読み出し時間がオーバヘッドとなる。
本発明が解決しようとする課題は、性能を劣化させることなく不良回避制御を実現可能なメモリシステムおよび制御方法を提供することである。
実施形態のメモリシステムは、互いに独立にデータの書き込み、または、読み出しが可能な複数の不揮発性記憶部と、コントローラとを備える。各不揮発性記憶部は、データを記憶するデータ記憶部と、当該不揮発性記憶部とは異なる他の不揮発性記憶部が有するデータ記憶部の不良に関する情報を示す不良情報を記憶する不良情報記憶部と、を有する。
第1実施形態のメモリシステムの構成例を示す図。 第1実施形態の不良情報の一例を示す図。 第1実施形態のデータ記憶部の構成例を示す図。 第1実施形態の書き込み制御の一例を示すフロー図。 第1実施形態の書き込みデータの再構築の例を示す図。 第1実施形態の読み出し制御の一例を示す図。 第2実施形態のメモリシステムの構成例を示す図。 第3実施形態のメモリシステムの構成例を示す図。 第4実施形態のメモリシステムの構成例を示す図。 第4実施形態の変形例のメモリシステムの構成例を示す図。 第5実施形態のメモリシステムの構成例を示す図。 第6実施形態のメモリシステムの構成例を示す図。 第7実施形態のメモリシステムの構成例を示す図。
以下、添付図面を参照しながら、本発明に係るメモリシステムおよび制御方法の実施形態を詳細に説明する。
(第1実施形態)
図1は、第1実施形態のメモリシステム1の構成例を示す図である。図1に示すように、メモリシステム1は、第1の不揮発性メモリ10と、第2の不揮発性メモリ11と、コントローラ12とを備える。第1の不揮発性メモリ10とコントローラ12とは互いに接続され、第2の不揮発性メモリ11とコントローラ12とは互いに接続され、第1の不揮発性メモリ10と第2の不揮発性メモリ11は、互いに異なるメモリであり、互いに独立に(並列に)データの書き込みまたは読み出しが行われる。この例では、第1の不揮発性メモリ10および第2の不揮発性メモリ11の各々は、請求項の「不揮発性記憶部」に対応していると考えることができる。説明の便宜上、ここでは、メモリシステム1が有する不揮発性記憶部の数は2つである場合を例に挙げて説明するが、これに限らず、例えばメモリシステム1が有する不揮発性記憶部の数は3以上であってもよい。
第1の不揮発性メモリ10は、1以上のデータ記憶部100と、1以上の不良情報記憶部101とを備える。データ記憶部100は、第1の不揮発性メモリ10の記憶単位(例えばブロックやページなど)ごとに定義され、第1の不揮発性メモリ10内に存在するデータ記憶部100の数は、第1の不揮発性メモリ10の記憶可能なデータ容量によって決まる。同様に、第2の不揮発性メモリ11は、1以上のデータ記憶部110と、1以上の不良情報記憶部111とを備える。説明の便宜上、ここでは、第1の不揮発性メモリ10は、1つのデータ記憶部100と、1つの不良情報記憶部101とを備え、第2の不揮発性メモリ11は、1つのデータ記憶部110と、1つの不良情報記憶部111とを備える場合を例に挙げて説明するが、これに限られるものではない。なお、第1の不揮発性メモリ10、および、第2の不揮発性メモリ11は、例えばNANDフラッシュメモリで構成され得るが、これに限られるものではない。
なお、以下の説明では、第1の不揮発性メモリ10と第2の不揮発性メモリ11とを区別する必要が無い場合は、単に「不揮発性メモリ」と称し、データ記憶部100とデータ記憶部110とを区別する必要が無い場合は、単に「データ記憶部」と称し、不良情報記憶部101と不良情報記憶部111とを区別する必要が無い場合は、単に「不良情報記憶部」と称する。
図1に示すように、第1の不揮発性メモリ10が有するデータ記憶部100は、データを記憶する通常データ記憶領域100Aと、通常データ記憶領域100Aの不良位置を回避してデータを書き込むための冗長データ記憶領域100Bとを有する。通常データ記憶領域100Aは、第1の不揮発性メモリ10への記憶対象のデータに加え、システム管理情報やエラー訂正用の符号などを記憶することができる。冗長データ記憶領域100Bは、通常データ記憶領域100Aの不良位置に記憶されるべきデータの格納先として利用することもできる。また、第1の不揮発性メモリ10が有する不良情報記憶部101は、第2の不揮発性メモリ11が有するデータ記憶部110の不良に関する情報を示す不良情報を記憶する。
同様に、第2の不揮発性メモリ11が有するデータ記憶部110は、データを記憶する通常データ記憶領域110Aと、通常データ記憶領域110Aの不良位置を回避してデータを書き込むための冗長データ記憶領域110Bとを有する。また、第2の不揮発性メモリ11が有する不良情報記憶部111は、第1の不揮発性メモリ10が有するデータ記憶部100の不良に関する情報を示す不良情報を記憶する。
なお、以下の説明では、通常データ記憶領域100Aと通常データ記憶領域110Aとを区別する必要が無い場合は、単に「通常データ記憶領域」と称し、冗長データ記憶領域100Bと冗長データ記憶領域110Bとを区別する必要が無い場合は、単に「冗長データ記憶領域」と称する。
本実施形態では、第1の不揮発性メモリ10が有するデータ記憶部100に対応する不良情報記憶部111は、第1の不揮発性メモリ10とは独立に(並列に)アクセス可能な第2の不揮発性メモリ11に設けられる一方、第2の不揮発性メモリ11が有するデータ記憶部110に対応する不良情報記憶部101は、第2の不揮発性メモリ11とは独立にアクセス可能な第1の不揮発性メモリ10に設けられる。このような配置方式を採用することで、データ記憶部と、当該データ記憶部に対応する不良情報記憶部とに対して並列にアクセスすることが可能になり、データの読み出し時間と不良情報の読み出し時間とをオーバラップさせることができる。
ここで、上記不良情報としては、データの記憶媒体上の物理的な不良位置が特定できる情報(例えば不揮発性メモリの領域を特定可能なアドレス)などが想定される。また、不良情報としては、必ずしも不良位置を特定する情報や、不良の物理的な要因を特定する情報である必要はなく、不良位置に対する書き込み/読み出しを回避するために定義された制御情報であればよい。不良情報のフォーマットは、不良回避アルゴリズムで定義されるものであり、ここでは特にフォーマットを限定しない。不良回避アルゴリズムとは、通常データ記憶領域の不良位置を回避してデータの読み出しおよび書き込みを行う制御を規定するものであり、後述のコントローラ12で実現される。
以下、不良情報の例を説明する。不良情報の最も単純な例は、データ記憶部100および110の各々における領域の所定単位(例えばビット等)ごとに、その単位領域が不良であるか否かを示す不良情報マップ(ビットマップ)を作成することである。この例によれば、データを記憶する位置から容易に不良情報の位置を特定できるという利点がある。ただし、例えばビットごとに不良情報マップを用意した場合、記憶データと同量の不良情報マップが必要となるので、不良情報の情報量が大きくなるという問題がある。
そこで、さらに情報量を削減した不良情報の例を図2に示す。図2では、所定の記憶単位ごとに、不良位置間の距離(n0〜n3)を不良情報として表現する方式を示している。図2(A)の例では、記憶単位の先頭から数えてn0ビット目に最初の不良が存在し、そのn0ビット目から数えてさらにn1ビット目に次の不良が存在することを示している(n2,n3も同様)。この例では、図2(B)に示すように、不良情報を記憶するテーブルの第1行目に「n0」が格納され、第2行目に「n1」が格納され、第3行目に「n2」が格納され、第4行目に「n3」が格納され、第5行目以降には「0」が格納される。これは、記憶単位の先頭から数えてn0ビット目に最初の不良が存在し、そのn0ビット目から数えてさらにn1ビット目に次の不良が存在し、そのn1ビット目から数えてさらにn2ビット目に次の不良が存在し、そのn2ビット目から数えてさらにn3ビット目に次の不良が存在し、それ以降は不良が存在しないことを表している。なお、不良情報n0〜n3を表現するためには、記憶単位内のアドレス表現ができる情報量を用意すれば良く、単純な不良情報マップに比べて情報量を削減することができる。また、情報が格納されるテーブルの深さは救済可能な不良数を示しており、不良率や目標とする信頼性に応じて構成を変えても良い。
次に、データ記憶部(100、110)の構成について説明する。図3は、データ記憶部の構成例を示す図である。図3(A)の例では、あるまとまった単位のデータ(例えば4KB)に対して、エラー訂正用の符号(ECC)を付加し、それを4つまとめて通常データ記憶領域に記憶している。上述の不良情報から特定される不良位置に対する書き込み対象のデータについては、冗長データ記憶領域に記憶され、読み出し時に不良位置から読み出されたデータと置換される。一方、図3(b)の例では、通常データ記憶領域の不良位置をスキップし、全体をシフトしながらデータを記憶する。そして、通常データ記憶領域の範囲を越えたデータが冗長データ記憶領域に記憶されていく。
図1に戻り、コントローラ12の構成について説明する。図1に示すように、コントローラ12は、書き込み制御部121と、読み出し制御部122と、不良情報解析部123とを備える。
書き込み制御部121は、不図示のホスト装置から、データの書き込み要求を受け付けた場合は、データの書き込み対象となるデータ記憶部(この例では100または110)を決定する。例えば書き込み要求は、書き込みの実行を要求するコマンドと、書き込みを要求するデータと、プログラム上の仮想空間アドレスのうち、その書き込みを要求するデータが割り当てられる場所を示す論理アドレスとを含んで構成される。上記論理アドレスは、不図示のホスト装置によって指定される。例えばデータの書き込み方式として追記方式を採用することもできる。この追記方式では、ブロック単位でデータの消去を行い、消去済みのブロックに対してページ単位で書き込みを行うことになる。この追記方式では、書き込みが要求されたデータが書き込まれるブロックは、当該データに割り当てられた論理アドレスとは無関係に決定され、ページの昇順で書き込みが行われる。
書き込み制御部121は、データの書き込み対象となるデータ記憶部の位置を示す物理アドレス(データ記憶部の位置を示す位置情報の一例)を、不良情報解析部123へ通知する。そして、書き込み制御部121は、不良情報解析部123で特定された不良位置に対するデータの書き込みを回避してデータ記憶部に対するデータの書き込みを制御する。不良情報解析部123による不良位置の特定方法については後述する。
読み出し制御部122は、不図示のホスト装置から、データの読み出し要求を受け付けた場合は、データの読み出しが要求されたデータ記憶部(この例では100または110)に格納されたデータを読み出す制御を行う。例えば読み出し要求は、読み出しの実行を要求するコマンドと、プログラム上の仮想空間アドレスのうち、読み出しを要求するデータが割り当てられる場所を示す論理アドレスとを含んで構成される。上記論理アドレスは、ホスト装置によって指定される。読み出し制御部122は、ホスト装置から、データの読み出し要求を受け付けた場合、不図示の論物変換テーブルを参照して、読み出し要求に含まれる論理アドレスに対応付けられた物理アドレス(データ記憶部の位置を示す位置情報の一例)を特定する。読み出し制御部122は、特定した物理アドレスを、不良情報解析部123へ通知するとともに、特定した物理アドレスにより特定されるデータ記憶部に格納されたデータを読み出す制御を行う。そして、読み出し制御部122は、不良情報解析部123で特定された不良位置に基づいて、データ記憶部から読み出したデータを修正する制御を行う。具体的な内容については後述する。
不良情報解析部123は、読み出し制御部122によるデータの読み出し対象となるデータ記憶部(100または110)に対応する不良情報記憶部(101または111)から不良情報を読み出し、読み出した不良情報を解析して不良位置を特定する。また、不良情報解析部123は、データの書き込み対象として決定されたデータ記憶部に対応する不良情報記憶部から不良情報を読み出し、読み出した不良情報を解析して不良位置を特定する。
本実施形態では、不良情報解析部123は、データの書き込みまたは読み出しの対象となるデータ記憶部の位置を示す位置情報(以下の説明では、「第1位置情報」と称する場合がある)に関する線形式から、当該データ記憶部に対応する不良情報記憶部の位置を示す位置情報(以下の説明では、「第2位置情報」と称する場合がある)を特定する。例えば、第1の不揮発性メモリ10が有するデータ記憶部100の位置情報をMとしたとき、対応する不良情報記憶部111の位置情報Nは、計算式N=Offset−M×αなどで求めても良い(この例では、Offsetおよびαは定数とする)。
次に、書き込み制御部121による制御(以下の説明では、「書き込み制御」と称する場合がある)を具体的に説明する。以下の説明では、書き込み対象のデータを「書き込みデータ」と称する場合がある。図4は、書き込み制御の一例を示すフロー図である。図4に示すように、データ記憶部100に対するデータの書き込みを行う場合、まず書き込み制御部121は、データの書き込み対象となるデータ記憶部100の位置を示す物理アドレスを、書き込み情報として不良情報解析部123に通知する(ステップS1)。書き込み情報が通知された不良情報解析部123は、データの書き込み対象となるデータ記憶部100に対応する不良情報記憶部111を特定する(ステップS2)。次に、不良情報解析部123は、不良情報記憶部111に対して不良情報の読み出し要求を行い、不良情報を読み出す(ステップS3,ステップS4)。
次に、不良情報解析部123は、読み出した不良情報を解析する(ステップS5)。そして、不良情報解析部123は、データの書き込み対象となるデータ記憶部100の通常データ記憶領域100Aの不良位置を特定し、特定した不良位置を、書き込み制御部121に通知する。次に、書き込み制御部121は、不良情報解析部123から受け取った不良位置をもとに、通常データ記憶領域100Aの不良位置に対する書き込みを回避して、冗長データ記憶領域100Bを使って書き込みを行うように書き込みデータを再構築する(ステップS6)。そして、書き込み制御部121は、データ記憶部100に対して、再構築した書き込みデータの書き込みを指示する。この指示を受けたデータ記憶部100は、受け取った書き込みデータの書き込みを行う(ステップS7)。
書き込みデータの再構築の例を図5に示す。図5では、通常データ記憶領域に2箇所(2bit)の不良がある場合における書き込みデータの再構築例を示している。図5(A)は、図3(A)に示したデータ記憶部の構成例に対応する書き込みデータの再構築例を示し、図5(B)は、図3(B)に示したデータ記憶部の構成例に対応する書き込みデータの再構築例を示す。
図5(A)では、通常データ記憶領域の不良位置に対する書き込みデータは、同一のデータ記憶部の冗長データ記憶領域に順に書き込むように書き込みデータを再構築する。不良位置に対しては例えば「1」を書き込むなど、不揮発記憶メモリの仕様などで予め決められたデータを固定的に書き込むことができる。一方、図5(B)では、通常データ記憶領域の不良位置に対する書き込みにおいては、1bit右側にシフトして隣の位置に書き込みを行う。このように、不良位置を右シフトにより避けて書き込みを行い、通常データ記憶領域から溢れたデータを冗長データ記憶領域に書き込むものとする。図5の例では、(A)(B)ともに2ビットの冗長データ記憶領域を使用しているが、実現コストの少ない方法を採用すれば良い。
次に、読み出し制御部122による制御(以下の説明では、「読み出し制御」と称する場合がある)を具体的に説明する。以下の説明では、読み出し対象のデータを「読み出しデータ」と称する場合がある。図6は、読み出し制御の一例を示すフロー図である。図6の例では、データ記憶部100に格納されたデータの読み出しを行う場合を想定している。まず、読み出し制御部122は、ホスト装置からデータの読み出し要求を受け付けた場合、不図示の論物変換テーブルを参照して、読み出し要求に含まれる論理アドレスに対応付けられた物理アドレスを特定し、特定した物理アドレスを、読み出し情報として不良情報解析部123に通知する(ステップS10)。また、読み出し制御部122は、ステップS10で特定した物理アドレスにより特定されるデータ記憶部100に対して、データの読み出しを要求する(ステップS11)。この要求を受けたデータ記憶部100は、通常データ記憶領域100Aに格納されたデータを読み出し(ステップS12)、読み出したデータを読み出し制御部122へ通知する。
一方、読み出し制御部122からの読み出し情報の通知を受けた不良情報解析部123は、データの読み出し対象となるデータ記憶部100に対応する不良情報記憶部111を特定する(ステップS13)。次に、不良情報解析部123は、不良情報記憶部111に対して不良情報の読み出し要求を行い、不良情報を読み出す(ステップS14,ステップS15)。次に、不良情報解析部123は、読み出した不良情報を解析する(ステップS16)。そして、不良情報解析部123は、データの読み出し対象となるデータ記憶部100の通常データ記憶領域100Aの不良位置を特定し、特定した不良位置を、読み出し制御部122に通知する。読み出し制御部122は、不良情報解析部123から受け取った不良位置に基づいて、データ記憶部100から受け取ったデータ(読み出したデータ)を修正する制御を行う(ステップS17)。
図5に示した書き込みデータの再構築の例では、読み出したデータの修正処理は、書き込みデータの再構築の逆を辿ることで実現可能である。例えば図5(A)の例では、不良位置に対する書き込みデータは、冗長データ記憶領域に記憶されているので、不良位置から読み出したデータは、冗長データ記憶領域から読み出したデータで置換(修正の一例)することができる。通常データ記憶領域における不良位置に記憶されたデータと、冗長データ記憶領域に記憶されたデータとの対応関係を示す情報は、例えば不図示のメモリ(例えば第1の不揮発性メモリ10や第2の不揮発性メモリ11であってもよいし、それ以外のメモリであってもよい)に格納しておくことができる。一方、図5(B)の例では、不良位置に対する読み出しデータは、1bit左シフトして右隣りのデータで置換することができる。
以上に説明したように、本実施形態では、第1の不揮発性メモリ10が有するデータ記憶部100に対応する不良情報記憶部111は、第1の不揮発性メモリ10とは独立に(並列に)アクセス可能な第2の不揮発性メモリ11に設けられる一方、第2の不揮発性メモリ11が有するデータ記憶部110に対応する不良情報記憶部101は、第2の不揮発性メモリ11とは独立にアクセス可能な第1の不揮発性メモリ10に設けられる。このような配置方式を採用することで、データ記憶部と、当該データ記憶部に対応する不良情報記憶部とに対して並列にアクセスすることが可能になり、データの読み出し時間と不良情報の読み出し時間とをオーバラップさせることができる。これにより、性能を劣化させることなく不良回避制御を実現することが可能になるという有利な効果を達成することができる。
以上においては、メモリシステム1が有する不揮発性記憶部の数は2つである場合を例に挙げて説明したが、これに限らず、例えばメモリシステム1が有する不揮発性記憶部の数は3以上であってもよい。例えばメモリシステム1が、第1の不揮発性メモリ10および第2の不揮発性メモリ11に加えて、第3の不揮発性メモリ(請求項の「不揮発性記憶部」に対応)を有する場合、第1の不揮発性メモリ10が有するデータ記憶部100に対応する不良情報記憶部111は、上述の第1実施形態のように第2の不揮発性メモリ11に配置されてもよいし、上述の第1実施形態とは異なり、第3の不揮発性メモリに配置されてもよい。要するに、メモリシステム1が有する各不揮発性記憶部は、データ記憶部と、当該不揮発性記憶部とは異なる他の不揮発性記憶部が有するデータ記憶部の不良情報を記憶する不良情報記憶部とを備える形態であればよい。
(第2実施形態)
次に、第2実施形態について説明する。上述の第1実施形態と共通する部分については適宜に説明を省略する。図7は、第2実施形態のメモリシステム150の構成例を示す図である。第2実施形態のメモリシステム150は、第1の不揮発性メモリ10および第2の不揮発性メモリ11の代わりに、不揮発性メモリ160を有する。不揮発性メモリ160は、互いに独立にアクセス可能な第1の不揮発性メモリプレーン161および第2の不揮発性メモリプレーン162を有する。
第1の不揮発性メモリプレーン161は、第1実施形態における第1の不揮発性メモリ10に対応し、データ記憶部100と不良情報記憶部101とを有する。第2の不揮発性メモリプレーン162は、第1実施形態における第2の不揮発性メモリ11に対応し、データ記憶部110と不良情報記憶部111とを有する。
上述の第1実施形態と同様に、第1の不揮発性メモリプレーン161が有するデータ記憶部100に対応する不良情報記憶部111は、第2の不揮発性メモリプレーン162に配置され、第2の不揮発性メモリプレーン162が有するデータ記憶部110に対応する不良情報記憶部101は、第1の不揮発性メモリプレーン161に配置される。このような配置方式を採用することで、データ記憶部と、当該データ記憶部に対応する不良情報記憶部とに対して並列にアクセスすることが可能になり、データの読み出し時間と不良情報の読み出し時間とをオーバラップさせることができる。
(第3実施形態)
次に、第3実施形態について説明する。第3実施形態では、不良情報解析部は、データ記憶部の位置を示す位置情報(第1位置情報)と、当該データ記憶部の不良情報を記憶する不良情報記憶部の位置を示す位置情報(第2位置情報)とが対応付けられた対応関係情報を参照して、データの書き込みまたは読み出しの対象となるデータ記憶部の位置を示す第1位置情報に対応する第2位置情報を特定する。以下、具体的に説明する。なお、上述の第1実施形態と共通する部分については適宜に説明を省略する。
図8は、第3実施形態のメモリシステム170の構成例を示す図である。図8に示すように、メモリシステム170は、第1の不揮発性メモリ10と、第2の不揮発性メモリ11と、コントローラ12と、揮発性メモリ13とを有する。
揮発性メモリ13は、データ記憶部の位置を示す第1位置情報と、不良情報記憶部の位置を示す第2位置情報とが対応付けられた位置情報テーブル180を記憶する。この例では、位置情報テーブル180は、請求項の「対応関係情報」に対応していると考えることができる。図8の例では、位置情報テーブル180において、データ記憶部100の位置を示す第1位置情報D1に対して、データ記憶部100に対応する不良情報記憶部111の位置を示す第2位置情報F1が対応付けられている。また、データ記憶部110の位置を示す第1位置情報D2に対して、データ記憶部110に対応する不良情報記憶部101の位置を示す第2位置情報F2が対応付けられているという具合である。
不良情報解析部123は、データの書き込み/読み出しの対象となるデータ記憶部の位置を示す位置情報(第1位置情報)をインデックスとして位置情報テーブル180を参照し、対応する不良情報記憶部の位置を示す第2位置情報を特定する。以上の構成を採用することにより、例えば不良情報記憶部の位置を動的に変更するなどの制御が可能となる。
なお、揮発性メモリ13の配置位置については、不良情報解析部123が参照可能な位置であればよく、図8のようにコントローラ12の外部に配置してもよいし、コントローラ12の内部に配置してもよい。また、揮発性メモリ13の実現手段についても特に制限せず、DRAMやSRAMなどで構成して構わない。
(第4実施形態)
次に、第4実施形態について説明する。第4実施形態では、不良情報を保持する(キャッシュする)不良情報キャッシュをさらに備え、不良情報解析部は、データの書き込みまたは読み出しの対象となるデータ記憶部の不良情報が不良情報キャッシュに記憶されている場合は、不良情報キャッシュから当該不良情報を読み出す。以下、具体的に説明する。なお、上述の第1実施形態と共通する部分については適宜に説明を省略する。
図9は、第4実施形態のメモリシステム190の構成例を示す図である。図9に示すように、メモリシステム190は、第1の不揮発性メモリ10と、第2の不揮発性メモリ11と、コントローラ12と、揮発性メモリ14とを有する。
揮発性メモリ14は、不良情報をキャッシュするための不良情報キャッシュ131を有し、必要に応じて不良情報記憶部101、111に記憶されている不良情報をキャッシュする。ここで、不良情報キャッシュ131のキャッシュアルゴリズムの実現方法については特に限定しない。例えば、一度にキャッシュする不良情報の数や、キャッシュした不良情報を追い出す制御の方法などについては限定しない。
図9の例では、不良情報キャッシュ131は、不良情報記憶部の位置を示す位置情報(例えばアドレス)ごとに、当該位置情報により特定される不良情報記憶部に格納された不良情報を対応付けて保持している。不良情報解析部123は、データの書き込みまたは読み出しの対象となるデータ記憶部の不良情報を記憶する不良情報記憶部の位置を示す位置情報に対応付けられた不良情報が不良情報キャッシュ131に存在する場合は、不良情報キャッシュ131から当該不良情報を読み出すことができるので、不揮発性メモリにアクセスすることなく不良情報を読み出すことができる。
ここで、不良情報を読み出して不良情報キャッシュ131に記憶するための制御手段については特に限定しない。不良情報キャッシュ131がキャッシュミス時に自律的に不良情報記憶部から不良情報を読み出しても構わないし、不良情報解析部123がキャッシュミス時に不良情報記憶部から不良情報を読み出して不良情報キャッシュ131に記憶してもよい(不良情報解析部123がキャッシュヒット・ミスを制御するかどうかは規定しない)。
このような構成とすることで、頻繁に利用される不良情報(すなわち時間的局所性の高い不良情報)や、次に参照される可能性の高い不良情報(すなわち空間的局所性の高い不良情報)を揮発性メモリ14にキャッシュすることができ、不揮発性メモリ(10や11)から不良情報を読み出すよりも高速に不良情報の読み出しを行うことができる。
図10は、第4実施形態のメモリシステム190の変形例を示した図である。図10の例では、コントローラ12は、揮発性メモリ124を有する。本変形例では、不良情報をキャッシュする不良情報キャッシュを階層化し、揮発性メモリ124が不良情報一次キャッシュ125を備え、揮発性メモリ14が不良情報二次キャッシュ132を備えている。
不良情報解析部123は、まず、不良情報一次キャッシュ125でキャッシュヒットした場合は不良情報一次キャッシュ125から不良情報を読み出す。不良情報一次キャッシュ125でキャッシュミスした場合は、不良情報二次キャッシュ132を参照し、不良情報二次キャッシュ132でキャッシュヒットした場合は、不良情報二次キャッシュ132から不良情報を読み出す。不良情報二次キャッシュ132でキャッシュミスした場合は、不揮発性メモリから不良情報を読み出す。なお、ここでも、不良情報を読み出して不良情報キャッシュに記憶するための制御手段については特に限定しない。
(第5実施形態)
次に、第5実施形態について説明する。第5実施形態では、外部装置が、不揮発性メモリ(10、11)に対する不良情報の書き込みを行う。以下、具体的に説明する。なお、上述の第1実施形態と共通する部分については適宜に説明を省略する。
図11に示すように、メモリシステム1は、外部装置2と接続される。そして、外部装置2は、第1の不揮発性メモリ10および第2の不揮発性メモリ11の各々に対して不良情報を書き込むことができる。例えば、製造時の検査工程において、不揮発性メモリの不良を検査し、検査結果から作成した初期不良情報を、外部装置2から不良情報記憶部に書き込むこともできる。
外部装置2は、不良情報を不良情報記憶部に書き込む機能を有するものであればよく、ディスクストレージや不揮発性メモリデバイスなどの記憶装置と書き込み行うドライバなどの組み合わせであってもよいし、不良情報を集中的に管理するデータベースサーバからネットワーク経由でダウンロードする形態でも構わない。
(第6実施形態)
次に、第6実施形態について説明する。第6実施形態では、データ記憶部の不良位置が新たに検出された場合、不良情報記憶部に記憶される不良情報が更新される。以下、具体的に説明する。なお、上述の第1実施形態と共通する部分については適宜に説明を省略する。
図12は、第6実施形態のメモリシステム200の構成例を示す図である。図12に示すように、コントローラ12は、不良情報管理部126を有する。不良情報管理部126は、不良検出部126Aと、不良情報生成部126Bと、不良情報更新部126Cとを有する。不良情報管理部126は、装置の製造後に発生した不良を検出し、不良情報記憶部(101、111)に記憶される不良情報を更新する役割を担っている。説明の便宜上、ここでは、書き込み制御部121や読み出し制御部122の図示を省略している。
不良検出部126Aは、データ記憶部の不良位置を検出する。より具体的には、不良検出部126Aは、データ記憶部の製造後に新たに発生した不良を検出するが、不良の検出手段は特に限定しない。例えば、不良の要因となり得るエラーを不揮発性メモリで発見することが可能であれば、発見したエラーの情報を読み出しデータに付加して不良検出部126Aに渡し、そのエラーを元に不良を検出してもよい。また、読み出しデータに対してエラー訂正不能などのエラーを不良検出部126Aで検出し、不良として検出しても良い。
不良情報生成部126Bは、データ記憶部に対応する不良情報記憶部から読み出した不良情報(つまり、現時点で不良情報記憶部に記憶されている不良情報)と、不良検出部126Aで検出された不良位置を示す検出不良情報とから、不良情報記憶部に格納すべき不良情報を生成し直す。不良情報更新部126Cは、不良情報生成部126Bで生成された不良情報を、対応する不良情報記憶部に書き戻す。
(第7実施形態)
次に、第7実施形態について説明する。第7実施形態では、コントローラは、データ記憶部の誤り訂正を行うデータ保護部と、不良情報記憶部の誤り訂正を行う不良情報保護部と、を備え、不良情報保護部の誤り訂正能力は、前記データ保護部の誤り訂正能力よりも高い。以下、具体的に説明する。なお、上述の第1実施形態と共通する部分については適宜に説明を省略する。
図13は、第7実施形態のメモリシステム210の構成例を示す図である。図13に示すように、コントローラ12は、上述の書き込み制御部121、読み出し制御部122、および、不良情報解析部123に加えて、不良情報管理部126と、データ保護部127と、不良情報保護部128とを有する。不良情報管理部126の機能は、上述の第6実施形態で説明した内容と同じであるが、例えば不良情報管理部126が設けられない形態であってもよい。
データ保護部127は、データ記憶部の誤り訂正を行う役割を担っており、ECCエンコーダ127Aと、ECCデコーダ127Bとを備える。不良情報保護部128は、不良情報記憶部の誤り訂正を行う役割を担っており、ECCエンコーダ128Aと、ECCデコーダ128Bとを備える。
ECCエンコーダ127Aと、ECCデコーダ127Bとが提供するエラー訂正方式については、メモリシステム1の必要なエラー訂正機能を備えていればよく、具体的なエラー訂正方式の形態については特に制限を設けない。ECCエンコーダ128Aは、データ記憶部に記憶するデータに対してエラー訂正符号を生成し、不揮発性メモリに記憶する。エラー訂正符号は対応するデータと同じデータ記憶部に記憶することが自然であるが、エラー訂正符号を記憶する場所については特に制限を設けない。よって、データを記憶するデータ記憶部とは別のデータ記憶部に記憶しても良いし、エラー訂正符号を専用に格納する記憶部を設けてもよい。また、対応するデータを記憶するデータ記憶部を有する不揮発性メモリとは別の不揮発性メモリに、エラー訂正符号を記憶してもよい。
ECCエンコーダ128AとECCデコーダ128Bとが提供するエラー訂正方式については、ECCエンコーダ127Aと、ECCデコーダ127Bとが提供するエラー訂正方式の訂正能力よりも強力な方式を採用することが望ましい。このような構成とすることで、不良情報記憶部のエラーによる誤動作を確実に防止できる。
なお、例えば上述の第5実施形態のように、外部装置が、不良情報記憶部に記憶する不良情報に対してエラー訂正符号を生成して書き込みを行う形態においては、上述のECCエンコーダ128Aは不要となる。なお、データの読み出し時間と不良情報の読み出し時間とをオーバラップさせるためには、ECCデコーダ128Bと、ECCデコーダ127Bとを個別に(独立に)設けておく必要がある。
以上、本発明の実施形態を説明したが、上述の各実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。なお、上述の各実施形態および変形例は任意に組み合わせることもできる。
1 メモリシステム
10 第1の不揮発性メモリ
11 第2の不揮発性メモリ
12 コントローラ
13 揮発性メモリ
14 揮発性メモリ
100 データ記憶部
101 不良情報記憶部
110 データ記憶部
111 不良情報記憶部
121 書き込み制御部
122 読み出し制御部
123 不良情報解析部

Claims (12)

  1. 互いに独立にデータの書き込み、または、読み出しが可能な複数の不揮発性記憶部と、
    前記不揮発性記憶部に対する前記データの書き込み、または、前記データの読み出しを制御するコントローラと、を備え、
    各前記不揮発性記憶部は、
    前記データを記憶するデータ記憶部と、
    当該不揮発性記憶部とは異なる他の前記不揮発性記憶部が有する前記データ記憶部の不良に関する情報を示す不良情報を記憶する不良情報記憶部と、を有する、
    メモリシステム。
  2. 前記コントローラは、
    前記データの読み出し要求を受け付けた場合は、前記データの読み出しの対象となる前記データ記憶部に格納された前記データを読み出す制御を行う読み出し制御部と、
    前記データの読み出し対象となる前記データ記憶部に対応する前記不良情報記憶部から前記不良情報を読み出し、読み出した前記不良情報を解析して不良位置を特定する不良情報解析部と、を備え、
    前記読み出し制御部は、前記不良情報解析部により特定された不良位置に基づいて、読み出した前記データを修正する制御を行う、
    請求項1に記載のメモリシステム。
  3. 前記コントローラは、
    前記データの書き込み要求を受け付けた場合は、前記データの書き込みの対象となる前記データ記憶部を決定する書き込み制御部をさらに備え、
    前記不良情報解析部は、前記データの書き込み対象となる前記データ記憶部に対応する前記不良情報記憶部から前記不良情報を読み出し、読み出した前記不良情報を解析して不良位置を特定し、
    前記書き込み制御部は、前記不良情報解析部で特定された不良位置に対する前記データの書き込みを回避して前記データ記憶部に対する前記データの書き込みを制御する、
    請求項2に記載のメモリシステム。
  4. 前記不良情報解析部は、前記データの書き込みまたは読み出しの対象となる前記データ記憶部の位置を示す第1位置情報に関する線形式から、前記データの書き込みまたは読み出しの対象となる前記データ記憶部に対応する前記不良情報記憶部の位置を示す第2位置情報を特定する、
    請求項3に記載のメモリシステム。
  5. 前記不良情報解析部は、前記データ記憶部の位置を示す第1位置情報と、前記不良情報記憶部の位置を示す第2位置情報とが対応付けられた対応関係情報を参照して、前記データの書き込みまたは読み出しの対象となる前記データ記憶部の位置を示す前記第1位置情報に対応付けられた前記第2位置情報を特定する、
    請求項3に記載のメモリシステム。
  6. 前記不良情報を保持する不良情報キャッシュをさらに備え、
    前記不良情報解析部は、前記データの書き込みまたは読み出しの対象となる前記データ記憶部の前記不良情報が前記不良情報キャッシュに存在する場合は、前記不良情報キャッシュから当該不良情報を読み出す、
    請求項3に記載のメモリシステム。
  7. 前記データ記憶部の不良位置を検出する不良検出部と、
    前記データ記憶部に対応する前記不良情報記憶部から読み出した前記不良情報と、前記不良検出部により検出された不良位置とから、前記不良情報記憶部に格納すべき前記不良情報を生成し直す不良情報生成部と、
    前記不良情報生成部により生成された前記不良情報を前記不良情報記憶部に書き戻す不良情報更新部と、をさらに備える、
    請求項1に記載のメモリシステム。
  8. 前記コントローラは、
    前記データ記憶部の誤り訂正を行うデータ保護部と、
    前記不良情報記憶部の誤り訂正を行う不良情報保護部と、を備え、
    前記不良情報保護部の誤り訂正能力は、前記データ保護部の誤り訂正能力よりも高い、
    請求項1に記載のメモリシステム。
  9. 前記データ記憶部は、前記データを記憶する通常データ記憶領域と、前記通常データ記憶領域の不良位置を回避して前記データを書き込むための冗長データ記憶領域とを含む、
    請求項1乃至8のいずれか1項に記載のメモリシステム。
  10. 互いに独立にデータの書き込み、または、読み出しが可能な複数の不揮発性メモリと、
    前記不揮発性メモリに対する前記データの書き込み、または、前記データの読み出しを制御するコントローラと、を備え、
    各前記不揮発性メモリは、
    前記データを記憶するデータ記憶部と、
    当該不揮発性メモリとは異なる他の前記不揮発性メモリが有する前記データ記憶部の不良に関する情報を示す不良情報を記憶する不良情報記憶部と、を有する、
    メモリシステム。
  11. 互いに独立にデータの書き込み、または、読み出しが可能な複数の不揮発性メモリプレーンを含む不揮発性メモリと、
    前記不揮発性メモリに対する前記データの書き込み、または、前記データの読み出しを制御するコントローラと、を備え、
    各前記不揮発性メモリプレーンは、
    前記データを記憶するデータ記憶部と、
    当該不揮発性メモリプレーンとは異なる他の前記不揮発性メモリプレーンが有する前記データ記憶部の不良に関する情報を示す不良情報を記憶する不良情報記憶部と、を有する、
    メモリシステム。
  12. データを記憶するデータ記憶部と、前記データ記憶部の不良に関する情報を示す不良情報を記憶する不良情報記憶部と、をそれぞれが有するとともに、互いに独立にデータの書き込み、または、読み出しが可能な複数の不揮発性記憶部と、
    前記不揮発性記憶部に対する前記データの書き込み、または、前記データの読み出しを制御するコントローラと、を備えるメモリシステムの制御方法であって、
    前記データの読み出し要求を受け付けた場合は、前記データの読み出しの対象となる前記データ記憶部に格納された前記データを読み出す制御を行う読み出し制御ステップと、
    前記データの読み出し対象となる前記不揮発性記憶部の前記データ記憶部に対応する、他の前記不揮発性記憶部が有する前記不良情報記憶部から、前記不良情報を読み出し、読み出した前記不良情報を解析して不良位置を特定する不良情報解析ステップと、
    前記不良情報解析ステップで特定した不良位置に基づいて、前記読み出し制御ステップで読み出した前記データを修正する制御を行う修正制御ステップと、を含む、
    制御方法。
JP2016243742A 2016-12-15 2016-12-15 メモリシステムおよび制御方法 Active JP6215439B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016243742A JP6215439B2 (ja) 2016-12-15 2016-12-15 メモリシステムおよび制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016243742A JP6215439B2 (ja) 2016-12-15 2016-12-15 メモリシステムおよび制御方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2013169880A Division JP2015038796A (ja) 2013-08-19 2013-08-19 メモリシステムおよび制御方法

Publications (2)

Publication Number Publication Date
JP2017054548A JP2017054548A (ja) 2017-03-16
JP6215439B2 true JP6215439B2 (ja) 2017-10-18

Family

ID=58316934

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016243742A Active JP6215439B2 (ja) 2016-12-15 2016-12-15 メモリシステムおよび制御方法

Country Status (1)

Country Link
JP (1) JP6215439B2 (ja)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002150789A (ja) * 2000-11-09 2002-05-24 Hitachi Ltd 不揮発性半導体記憶装置
JP2003085994A (ja) * 2001-09-13 2003-03-20 Hitachi Ltd 半導体集積回路装置
JP2003123500A (ja) * 2001-10-12 2003-04-25 Mitsubishi Electric Corp 半導体装置
JP2006185535A (ja) * 2004-12-28 2006-07-13 Nec Electronics Corp 半導体記憶装置
EP2002447B1 (en) * 2006-03-24 2014-02-26 SanDisk Technologies Inc. Non-volatile memory and method with redundancy data buffered in remote buffer circuits

Also Published As

Publication number Publication date
JP2017054548A (ja) 2017-03-16

Similar Documents

Publication Publication Date Title
CN112433956B (zh) 逻辑到物理表高速缓存中基于顺序写入的分区
JP5087347B2 (ja) 半導体記憶装置及び半導体記憶装置の制御方法
US9026764B2 (en) Memory system performing wear leveling based on deletion request
TWI459199B (zh) 半導體記憶體控制裝置
US9003099B2 (en) Disc device provided with primary and secondary caches
US10990528B2 (en) Methods and systems for managing physical information of memory units in a memory device
US8510502B2 (en) Data writing method, and memory controller and memory storage apparatus using the same
US9323661B2 (en) Memory system and control method thereof
US8051339B2 (en) Data preserving method and data accessing method for non-volatile memory
US8832356B2 (en) Apparatus and method for flash memory address translation
US9189313B2 (en) Memory system having NAND-type flash memory and memory controller with shift read controller and threshold voltage comparison module
US20140297921A1 (en) Method of Partitioning Physical Block and Memory System Thereof
US8838937B1 (en) Methods, systems and computer readable medium for writing and reading data
KR20120086239A (ko) 메모리 시스템 및 그 동작 방법
US20150103593A1 (en) Method of Writing Data in Non-Volatile Memory and Non-Volatile Storage Device Using the Same
US20100318760A1 (en) Memory controller, nonvolatile storage device, and nonvolatile storage system
US10929303B2 (en) Data storage device utilizing virtual blocks to improve performance and data storage method thereof
US9569355B2 (en) Memory system and control method
TWI398768B (zh) 快閃式記憶體及操作一快閃式記憶體之方法
JP2007334413A (ja) 記憶装置
JP6215439B2 (ja) メモリシステムおよび制御方法
JP5541194B2 (ja) フラッシュメモリに対してデータの読み出しおよび書き込みを行う制御装置
US10802936B2 (en) Memory location remapping and wear-levelling
US20150199236A1 (en) Multi-level disk failure protection
CN112486416B (zh) 数据处理方法、装置、存储介质及处理器

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161215

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20170605

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170814

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: 20170822

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170920

R150 Certificate of patent or registration of utility model

Ref document number: 6215439

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350