(57)【要約】【課題】予備の記憶領域の大きさを抑制しつつ、不良ブロックが多く発生した場合でも動作の継続が可能な半導体記憶装置を得る。【解決手段】半導体記憶装置を、記憶手段１と、アドレス管理手段２と、代替ブロック形成手段３と、制御手段４とを備える構成とする。記憶手段１は、所定の記憶容量ごとの複数のブロックに分割された記憶領域にデータを保存する。アドレス管理手段２は、異常が発生した不良ブロックを複数の領域に分割して正常な領域のアドレスを管理する。代替ブロック形成手段３は、不良ブロックの正常な領域を所定の記憶容量を満たすように組み合わせて、１つのブロックとみなして扱う第２の代替ブロックを形成する。制御手段４は、所定の条件を満たしたときに、第２の代替ブロックを形成するブロックの正常な領域にデータを書き込む。【選択図】      図１
2015118664.tif 000002
【特許請求の範囲】
【請求項１】
所定の記憶容量ごとの複数のブロックに分割された記憶領域にデータを保存する記憶手段と、
前記ブロックのうち、異常が発生した不良ブロックを複数の領域に分割して正常な領域のアドレスを管理するアドレス管理手段と、
前記不良ブロックの正常な領域のアドレスを前記所定の記憶容量を満たすように組み合わせて、１つのブロックとみなして扱う第２の代替ブロックを形成する代替ブロック形成手段と、
所定の条件を満たしたときに、前記第２の代替ブロックを形成するブロックの正常な領域にデータを書き込む制御手段と
を備えることを特徴とする半導体記憶装置。
【請求項２】
前記記憶手段は、前記複数のブロックのうち所定の数または割合のブロックを、予備のブロックである第１の代替ブロックとして備え、
前記制御手段は、前記第１の代替ブロック以外のブロックが書き込み先として使用できないときに、前記第１の代替ブロックまたは前記第２の代替ブロックの少なくとも一方にデータを書き込むことを特徴とする請求項１に記載の半導体記憶装置。
【請求項３】
前記ブロックの異常を検知する異常検知手段をさらに備え、
前記異常検知手段が書き込み先のブロックの異常を検知した場合に、前記制御手段は、前記第１の代替ブロックまたは前記第２の代替ブロックの少なくとも一方にデータを書き込むことを特徴とする請求項２に記載の半導体記憶装置。
【請求項４】
前記代替ブロック形成手段は、前記異常検知手段が異常を検知したときに、前記制御手段が前記記憶領域へのデータの書き込みを行う前に前記第２の代替ブロックを形成することを特徴とする請求項３に記載の半導体記憶装置。
【請求項５】
前記所定の条件は、前記第１の代替ブロックのうち未使用のブロックが所定の数以下であること特徴とする請求項２から４いずれかに記載の半導体記憶装置。
【請求項６】
所定の記憶容量ごとの複数のブロックに分割された記憶領域の前記ブロックのうち、異常が発生した不良ブロックを複数の領域に分割して正常な領域のアドレスを管理し、
前記不良ブロックの正常な領域のアドレスを前記所定の記憶容量を満たすように組み合わせて、１つのブロックとみなして扱う第２の代替ブロックを形成し、
所定の条件を満たしたときに、前記第２の代替ブロックを形成するブロックの正常な領域にデータを書き込むことを特徴とする半導体記憶装置の制御方法。
【請求項７】
前記複数のブロックのうち所定の数または割合のブロックを、予備のブロックである第１の代替ブロックとし、
前記第１の代替ブロック以外のブロックが書き込み先として使用できないときに、前記第１の代替ブロックまたは前記第２の代替ブロックの少なくとも一方にデータを書き込むことを特徴とする請求項６に記載の半導体記憶装置の制御方法。
【請求項８】
前記ブロックの異常を検知し、
書き込み先のブロックの異常を検知した場合に、前記第１の代替ブロックまたは前記第２の代替ブロックの少なくとも一方にデータを書き込むことを特徴とする請求項７記載の半導体記憶装置の制御方法。
【請求項９】
前記異常を検知したときに、前記記憶領域へのデータの書き込みを行う前に、前記第２の代替ブロックを形成することを特徴とする請求項８に記載の半導体記憶装置の制御方法。
【請求項１０】
前記所定の条件は、前記第１の代替ブロックのうち未使用のブロックが所定の数以下であることを特徴とする請求項７から９いずれかに記載の半導体記憶装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体記憶装置に関するものであり、特にフラッシュメモリを用いた半導体記憶装置の動作不良を抑制する技術に関するものである。
【背景技術】
【０００２】
情報端末装置などの電子装置の小型化や高性能化に伴い、不揮発性の半導体記憶素子を用いた半導体記憶装置が電子装置のデータの記憶用として広く使われるようになっている。大容量のデータの記憶用としては磁気ディスク等が主流であったが、素子形成技術の発達により半導体記憶装置においても大容量化が可能となっている。不揮発性の半導体記憶素子を用いた大容量の半導体記憶装置は、ＳＳＤ（Solid State Drive）とも呼ばれる。半導体記憶素子は、機械的な駆動部を持たないので、半導体記憶装置は磁気ディスク等に比べて高速でのデータの読み書きが可能であり、また、電力消費量を抑制することができる。
【０００３】
大容量の半導体記憶装置の記憶素子としては、ＮＡＮＤ型フラッシュメモリが用いられることが多い。フラッシュメモリは、繰り返しデータの書き込みや読み出しを行うことができるが、動作原理上、繰り返しの動作により記憶素子を形成している絶縁膜の劣化が生じる。絶縁膜の劣化が進んだ記憶素子が増えるとエラー訂正機能等で補えなくなるため、動作不良が発生することがある。そのため、フラッシュメモリを用いた半導体記憶装置は、継続的な使用による不良の発生に対応するための予備の記憶領域を備えていることがある。ＮＡＮＤ型のフラッシュメモリでは、書き込まれたデータの消去はブロックと呼ばれる一定数の素子で形成された領域単位で行われる。そのため、ＮＡＮＤ型フラッシュメモリでは、不良の発生した不良ブロックに対応する予備の記憶領域も代替ブロックとしてブロック単位で備えられている。しかし、記憶領域全体での記憶容量は限りがあるため、予備の記憶領域である代替ブロックを多く備えると、通常、用いることのできる記憶容量が減少する。よって、代替ブロックのための予備の記憶領域の大きさはできるだけ抑制されることが望ましい。一方で、代替ブロックが全て使用状態となると半導体記憶装置が使用不可となる恐れがある。使用不可となる状態を避けるために、フラッシュメモリを用いる半導体記憶装置においては、代替ブロックの不足を抑制するための技術が盛んに検討されている。代替ブロックの不足を抑制するための技術としては、例えば、特許文献１のような技術が開示されている。
【０００４】
特許文献１は、フラッシュメモリにおいて代替ブロックの使用数を抑制し、代替ブロックの不足を防止する技術に関するものである。特許文献１では、データの読み出し時のエラーの発生数が所定の数を超えたブロックが不良ブロックとして判定されている。不良ブロックであるかを判定するためのエラー発生数は、代替ブロックの残りの数によって変更される。特許文献１では、代替ブロックの残りの数が設定値よりも少なくなったとき、不良ブロックであるかの判定に用いるエラー発生数を大きく設定することにより、代替ブロックを利用する数を抑制する。その結果、代替ブロックの急激な減少を抑制して、急にフラッシュメモリが使用不可になる状態を防ぐことが出来るとしている。
【０００５】
特許文献２は、フラッシュメモリにおいて通常のブロックを代替ブロックに変更することにより、代替ブロックの数を確保する技術に関するものである。特許文献２では、不良と判断されたブロックを再度、テストして不良が一時的なものであるか恒久的なものであるかの判断が行われる。恒久的な不良であると判断されたとき、代替ブロックの残り数が所定の数以下である場合には、通常ブロックが代替ブロックに変更される。特許文献２では、通常のブロックを代替ブロックに変換し、一定数以上の代替ブロックを確保することによりフラッシュメモリが動作できなくなる状態を避けることが可能になるとしている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１０−６１５０７号公報
【特許文献２】特開２００５−２８４７００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１の技術は次のような点で十分ではない。特許文献１では、ブロックを不良と判定するためのエラー発生数の閾値が、代替ブロックの残り数に応じて変更されている。特許文献１では、不良と判定する条件を緩和することによりエラー発生数が多いブロックも正常なブロックとして扱い、予備の記憶領域である代替ブロックの数の減少を抑制している。そのため、正常なブロックとして扱われているブロックにおいても、書き込みや読み出しの際にエラーが多く発生する可能性がある。また、エラー発生数が条件を緩和した閾値も超えるブロックが多発した際には、代替ブロックを使用することになるため代替ブロックの減少を抑制することはできない。そのため、条件を緩和した閾値を超えるエラーが多発した際にも対応するために、十分な数の代替ブロックを備える必要がある。よって、特許文献１では代替ブロックのための予備の記憶領域を十分に確保する必要があり、特許文献１の技術は予備の記憶領域を抑制しつつ使用不可となる状態を避けるための技術としては十分ではない。
【０００８】
また、特許文献２の技術では、予備の記憶領域である代替ブロックの残り数が所定の数以下である場合に、通常の記憶領域のブロックが代替ブロックに変更されている。そのため、代替ブロックの残り数が所定の数以下になった場合に、予備の記憶領域を確保するために通常の記憶領域の記憶容量が減少する恐れがある。よって、特許文献２の技術では半導体記憶装置の通常の記憶容量を維持したまま、代替ブロックの減少を抑制することができない。半導体記憶装置は当初、設定されている記憶容量のまま利用できることが望ましい。そのため、特許文献２はフラッシュメモリを用いる半導体記憶装置に用いるための技術としては十分ではない。
【０００９】
本発明は、予備の記憶領域の大きさを抑制しつつ、不良ブロックが多く発生した場合でも動作の継続が可能な半導体記憶装置を得ることを目的としている。
【課題を解決するための手段】
【００１０】
上記の課題を解決するため、本発明の半導体記憶装置は記憶手段と、アドレス管理手段と、代替ブロック形成手段と、制御手段とを備える。記憶手段は、所定の記憶容量ごとの複数のブロックに分割された記憶領域にデータを保存する。アドレス管理手段は、ブロックのうち、異常が発生した不良ブロックを複数の領域に分割して正常な領域のアドレスを管理する。代替ブロック形成手段は、不良ブロックの正常な領域を前記所定の記憶容量を満たすように組わせて、１つのブロックとみなして扱う第２の代替ブロックを形成する。制御手段は、所定の条件を満たしたときに、第２の代替ブロックを形成するブロックの正常な領域を連続した領域にデータを書き込む。
【００１１】
本発明の半導体記憶装置の制御方法は、所定の記憶容量ごとの複数のブロックに分割された記憶領域のブロックのうち、異常が発生した不良ブロックを複数の領域に分割して正常な領域のアドレスを管理する。本発明の半導体記憶装置の制御方法は、不良ブロックの正常な領域を所定の記憶容量を満たすように組み合わせて、１つのブロックとみなして扱う第２の代替ブロックを形成する。また、本発明の半導体記憶装置の制御方法は、所定の条件を満たしたときに、第２の代替ブロックを形成するブロックの正常な領域にデータを書き込む。
【発明の効果】
【００１２】
本発明によると、予備の記憶領域の大きさを抑制しつつ、不良ブロックが多く発生した場合でも動作の継続が可能となる。
【図面の簡単な説明】
【００１３】
【図１】本発明の第１の実施形態の構成の概要を示す図である。
【図２】本発明の第２の実施形態の構成の概要を示す図である。
【図３】本発明の第２の実施形態の説明のためのアドレスの割り当ての例を示した図である。
【図４】本発明の第２の実施形態における、異常発生個所の例を示した図である。
【図５】本発明の第２の実施形態における、データテーブルの例を示した図である。
【図６】本発明の第２の実施形態における、データテーブルの例を示した図である。
【図７】本発明の第２の実施形態における、動作フローの概要を示した図である。
【図８】本発明の第２の実施形態における、動作フローの概要を示した図である。
【図９】本発明の第２の実施形態における、動作フローの概要を示した図である。
【図１０】本発明の第３の実施形態における、動作フローの概要を示した図である。
【発明を実施するための形態】
【００１４】
本発明の第１の実施形態について図を参照して詳細に説明する。図１は本実施形態の半導体記憶装置の構成の概要を示したものである。本実施形態の半導体記憶装置は、記憶手段１と、アドレス管理手段２と、代替ブロック形成手段３と、制御手段４とを備える。
【００１５】
記憶手段１は、所定の記憶容量ごとの複数のブロックに分割された記憶領域にデータを保存する。アドレス管理手段２は、ブロックのうち、異常が発生した不良ブロックを複数の領域に分割して正常な領域のアドレスを管理する。代替ブロック形成手段３は、不良ブロックの正常な領域を所定の記憶容量を満たすように組み合わせて、１つのブロックとみなして扱う第２の代替ブロックを形成する。また、制御手段４は、所定の条件を満たしたときに、第２の代替ブロックを形成するブロックの正常な領域にデータを書き込む。
【００１６】
本実施形態の半導体記憶装置は、異常が発生した不良ブロックを複数の領域に分割し、正常な領域を所定の記憶容量となるように組み合わせて、仮想的なブロックである第２の代替ブロックを形成している。第２の代替ブロックを不良ブロックの代わりに用いることにより、代替として用いるブロックに連続した領域からなる通常のブロックを割り当てなくても動作を継続することができる。その結果、本実施形態の半導体記憶装置では、予備の記憶領域の大きさを抑制しつつ、不良ブロックが多く発生した場合でも動作の継続が可能となる。
【００１７】
本発明の第２の実施形態について図を参照して詳細に説明する。図２は本実施形態の半導体記憶装置の構成の概要を示したものである。本実施形態の半導体記憶装置の記憶素子はＮＡＮＤ型フラッシュメモリとして形成されている。ＮＡＮＤ型フラッシュメモリを用いた半導体記憶装置の記憶領域は、所定の記憶容量ごとの複数の領域に分割されていて、分割された１つの領域をブロックと呼ぶ。本実施形態の半導体記憶装置は、ブロックの一部に異常が発生した際に、異常が発生したブロックである不良ブロックを分割して、不良ブロックのうち異常が発生してない領域を記憶領域として用いる。また、本実施形態の半導体記憶装置において、不良ブロックを分割して記憶領域として用いる際には、複数の不良ブロックの正常な領域が組み合わされて用いられる。本実施形態の半導体記憶装置は、複数の不良の正常な領域を組み合わせて、正常なブロック１つと同じ記憶容量のブロックを仮想的に作ることによって、不良ブロックを記憶領域に用いる。
【００１８】
本実施形態の半導体記憶装置は、図２に示す通り、メモリ部１０と、制御部２１と、バッファメモリ部２２と、不良ブロック管理部２３と、２次代替領域管理部２４とを備えている。本実施形態の半導体記憶装置には、制御信号の入出力を行うためのコントロールバスが接続されている。また、本実施形態の半導体記憶装置には、外部とのデータの入出力を行うためのデータバスが接続されている。コントロールバスは、制御部２１に接続されている。また、データバスを介して入出力されるデータはバッファメモリ部２２に一時保存される。
【００１９】
メモリ部１０は、複数のブロックに分割されている。メモリ部１０の各ブロックは、通常記憶領域１１の通常ブロックと予備記憶領域１２の代替ブロックとに分けられている。通常ブロックは、データの書き込みおよび読み出しに使用されるブロックである。代替ブロックは、異常が発生して使用できない通常ブロックが生じた際に、通常ブロックの代わりに使用されるブロックである。本実施形態では、ブロックを構成している素子に異常が発生して使用できないブロックを不良ブロックと呼ぶ。メモリ部１０の全ブロックのうち、所定の数または割合のブロックが予備記憶領域１２の代替ブロックとして設定されている。
【００２０】
各ブロックは、所定の数のページで構成されている。各ページは制御用の配線を共有している所定の数のメモリセルの組み合わせにより構成されている。メモリセルは、１ビットの情報を蓄積する単位である。ＮＡＮＤ型フラッシュメモリにおいて、メモリセルに蓄積されているデータの消去はブロック単位で行われる。また、データの書き込みおよび読み出しは、ページ単位で行われる。
【００２１】
制御部２１は、メモリ部１０のデータの書き込み、読み出しおよび消去に関する制御全般を行う機能を有する。制御部２１は、外部から送られてくる書き込み要求に従って、メモリ部１０の書き込み先に指定されたアドレスのブロックにデータの書き込みを行う。書き込みを行うデータはデータバスを介して、バッファメモリ部２２に入力されて一時保存される。また、制御部２１は読み出し要求に従って、読み出し元に指定されたメモリ部１０のブロックからデータの読み出しを行う。制御部２１は、読み出したデータをバッファメモリ部２２に一時保存し、データバスを介して出力する。
【００２２】
制御部２１は、アドレス変換機能を備える構成とすることもできる。アドレス変換機能を備える構成とした場合には、制御部２１は、書き込み先として指定されたアドレスを、所定のアルゴリズムに基づいて空いている通常ブロックのアドレスへと変換する。所定のアルゴリズムは、ブロックごとの使用回数に偏りが生じることを防ぐため、ブロックごとの使用回数が平準化するように設定されている。制御部２１は、変換前のアドレスと変換後のアドレスを関連付けてアドレス変換テーブルに保存する。アドレスの変換を行った場合は、制御部２１は、変換後のアドレスを指定されたアドレスとみなして各処理を行う。変換前のアドレスからの読み出しを指定された場合には、制御部２１は、アドレス変換テーブルに基づいて変換後のアドレスからデータを読み出して、読み出したデータの出力を行う。以上に説明したブロックごとの使用回数を平準化する技術は、ウェアレベリングとも呼ばれる。
【００２３】
バッファメモリ部２２は、入力されたデータを一時的に保存する機能を有する。バッファメモリ部２２に外部からデータバスを介して入力されて保存されたデータは、制御部２１からの指示に基づいてメモリ部１０へと送られる。また、バッファメモリ部２２は、メモリ部１０から呼び出されたデータを外部に送る際に、データを一時的に保存するためにも用いられる。バッファメモリ部２２は、制御部２１からの指示に基づいて一時保存したデータをデータバスを介して外部に出力する。
【００２４】
不良ブロック管理部２３は、不良ブロックのアドレスと、不良ブロックの代わりに使用される代替ブロックのアドレスを管理する機能を有する。また、不良ブロック管理部２３は、代替ブロックとしての２次代替ブロックの使用の有無を保存する機能を有する。２次代替ブロックは、不良ブロックの正常な領域を組み合わせて形成したものである。不良ブロック管理部２３は、不良ブロックのアドレスと不良ブロックの代わりに使用される代替ブロックのアドレスを関連付けて保存するデータテーブルを備えている。本実施形態では、不良ブロックと代替ブロックが関連付けられて保存されたデータデーブルを、不良ブロック管理テーブルと呼ぶ。
【００２５】
２次代替領域管理部２４は、不良ブロックを分割した際に、分割したブロックの領域のうち使用できる領域のアドレスを管理する機能を有する。２次代替領域管理部２４は、複数の不良ブロックの使用できる領域を組み合わせて管理する。例えば、不良ブロックを２分割する場合には、２次代替領域管理部２４は、２つの不良ブロックの各々の使用できる領域を組み合わせて管理する。２次代替領域管理部２４は、組み合われた不良ブロックのうち使用する領域の先頭アドレスを関連づけて保存するデータテーブルを備えている。本実施形態では、使用する領域の先頭アドレスを関連づけて保存するデータテーブルを２次代替領域管理テーブルと呼ぶ。また、本実施形態では、複数のブロックの使用できる領域を組み合わせて形成する仮想的なブロックを２次代替ブロックと呼ぶ。また、本実施形態では、２次代替ブロックに用いられている領域を２次代替領域と呼ぶ。
【００２６】
本実施形態における不良ブロック管理テーブルおよび２次代替領域管理テーブルについて説明する。本実施形態のメモリ部１０の各ブロックは、図３に示すようにアドレスが割り当てられているとする。図３は、本実施形態の説明のために各ブロックに割り当てられたアドレスを模式的に示したものである。図３におけるアドレスの表記は、説明を簡略化するためにアルファベットと数字で代替して簡易的に示したものである。例えば、図３に示す予備記憶領域１２で「Ｓ１」および「Ｓ２」のアドレスから構成されるブロックは、ブロックの先頭のアドレスが「Ｓ１」、ブロックを２分割した場合の後側の領域の先頭のアドレスが「Ｓ２」であることを示している。図４は、図３に示したようにアドレスを割り当てた場合において、いくつかのブロックで異常発生した例を示したものである。図４では、アドレス「Ｍ３」で始まるブロックの前側の領域と、アドレス「Ａ９」で始まるブロックの後側の領域において書き込み等が出来ないページが発生した例を示している。図４の例では、アドレス「Ｍ３」および「Ａ９」で始まるブロックが不良ブロックとなる。また、図４の例では、アドレス「Ｍ３」で始まるブロックのうち。後側のアドレス「Ｍ４」で始まる領域が使用可能であるとする。図４の例では、アドレス「Ａ９」で始まるブロックのうち、前側のアドレス「Ａ９」で始まる領域が使用可能で、後側のアドレス「Ａ１０」で始まる領域が使用不可であるとする。
【００２７】
本実施形態の半導体記憶装置の不良ブロック管理テーブルについて説明する。図５は、本実施形態の不良ブロック管理テーブルの例を示したものである。図５の不良ブロック管理テーブルの「不良ブロックアドレス」の項目は、異常が発生して不良ブロックとして扱われているブロックの先頭アドレスが登録されている。図５の例では、図４で示したアドレス「Ｍ３」および「Ａ９」で始まるブロックの他に、アドレス「Ｎ５」で始まるブロックも不良ブロックとして扱われている例を示している。図５の「代替ブロックアドレス」は、不良ブロックの代わりにデータの保存先として用いられる代替ブロックの先頭のアドレスを示している。図５では、アドレス「Ｍ３」、「Ａ９」のブロックの代替として、予備記憶領域１２のアドレス「Ｓ１」、「Ｓ３」のブロックが割り当てられている例を示している。図５の「２次代替ブロック使用有無」の項目は、代替ブロックとして２次代替ブロックを使用しているかについて登録されている。図５では、代替ブロックとして２次代替ブロックを使用している場合は「１」、使用していない場合は「０」として登録されている。２次代替ブロックを使用している場合は、不良ブロック管理テーブルの「代替ブロックアドレス」に登録されているアドレスが、２次代替ブロックの先頭アドレスとして用いられる。
【００２８】
次に２次代替領域管理テーブルについて説明する。図６は本実施形態の２次代替領域管理テーブルの例を示したものである。図６の「２次代替ブロック先頭アドレス」は、２次代替ブロックとして用いるブロックのうち、前側の領域として用いる記憶領域の先頭アドレスを示したものである。「２次代替ブロック先頭アドレス」は、不良ブロック管理テーブルの「代替ブロックアドレス」としても登録されている。「２次代替ブロック副アドレス」は、２次代替ブロックとして用いるブロックのうち、後側の領域として用いる記憶領域の先頭アドレスを示したものである。図６の例では、アドレス「Ｍ３」および「Ｍ８」で始まる記憶領域が、仮想的に１つのブロックを形成しているものとして扱われる。図６のアドレス「Ｈ２」は、組み合わせて用いる後側の記憶領域が未登録の状態を示している。図６の例では、アドレス「Ｈ２」で始まる記憶領域は、組み合わせて用いる記憶領域が未登録のため２次代替ブロックとしては使用できない状態である。
【００２９】
本実施形態の半導体記憶装置において、データの書き込みが行われる際の動作について説明する。図７は本実施形態の半導体記憶装置においてデータの書き込みが行われる際のフローの概要を示したものである。始めに、半導体記憶装置に、外部から書き込みの要求、書き込み先のアドレスおよび書き込むデータが送られてくる（ステップ１０１）。半導体記憶装置にデータバスを介して送られてきたデータは、バッファメモリ部２２に入力される。バッファメモリ部２２にデータが入力されると、バッファメモリ部２２は、入力されたデータを保存する（ステップ１０２）。
【００３０】
制御部２１は、不良ブロック管理部２３の不良ブロック管理テーブルを確認して、データの書き込み先として指定されたアドレスが不良ブロック管理テーブルに含まれていないかを確認する（ステップ１０３）。データの書き込み先のアドレスが不良ブロック管理テーブルに含まれている場合は、制御部２１は２次代替ブロックの使用の有無を確認する。２次代替領域を使用している場合には、制御部２１は２次代替領域管理テーブルを確認する。制御部２１は、２次代替領域管理テーブルにおいて、不良ブロック管理テーブルに登録されているアドレスと組み合わされて登録されているアドレスの領域と合わせてデータの書き込み先として決定する。書き込み先のアドレスが不良ブロック管理テーブルには登録されているが、２次代替領域を使用していない場合には、制御部２１は、代替ブロックのアドレスを書き込み先として決定する。また、データの書き込み先のアドレスが不良ブロック管理テーブルに含まれていない場合は、制御部２１は、書き込み先のアドレスとアドレスの一致する通常記憶領域１１のブロックを書き込み先として決定する（ステップ１０４）。
【００３１】
制御部２１は、データの書き込み先を決定すると、書き込み先のブロックが正常なブロックか不良ブロックかを確認する。書き込み先のブロックが正常であるかの確認は、例えば、ページごとに共有しているソース線に電圧を印加して、正常に電圧が印加できるかにより行われる。また、書き込み先のブロックに以前のデータが残っている場合には、制御部２１は書き込み動作を行う前に書き込み先のブロックに保存されているデータを一括で消去する。書き込み先が２次代替ブロックの場合は、ブロック単位で消去が行われるので異常が発生した領域と判断されて使用していない領域に対しても消去の処理が加えられる。
【００３２】
書き込み先のブロックが正常なブロックの場合には(ステップ１０５でＮｏ)、制御部２１は、バッファメモリ部２２に保存されているデータを書き込み先として決定したブロックに保存する（ステップ１１３）。書き込み先のブロックに異常が発生して不良ブロックである場合には（ステップ１０５でＹｅｓ）、制御部２１は、異常が発生したブロックである不良ブロックのアドレスを不良ブロック管理テーブルに追加して保存する（ステップ１０６）。
【００３３】
制御部２１は、不良ブロックのアドレスを不良ブロック管理テーブルに追加すると、使用している代替ブロックの数が所定の数以下であるかを判断する。使用している代替ブロックの数が所定の数以下の場合は（ステップ１０７でＹｅｓ）、制御部２１は、バッファメモリ部２２に保存している不良ブロックに書き込む予定だったデータを、予備記憶領域１２の代替ブロックに書き込むと判断する。代替ブロックに書き込むと判断すると、制御部２１は、空いている代替ブロックから書き込み先の代替ブロックのアドレスを決定する(ステップ１１１)。書き込み先の代替ブロックのアドレスを決定すると、制御部２１は決定した代替ブロックのアドレスを、異常の発生した不良ブロックのアドレスに関連付けて、不良ブロック管理テーブルに保存する（ステップ１１２）。使用する代替ブロックの情報等を不良ブロック管理テーブルに保存すると、制御部２１はバッファメモリ部２２に保存されているデータを選択した代替ブロックに書き込む（ステップ１１３）。
【００３４】
使用している代替ブロックの数が所定の数より多い場合は（ステップ１０７でＮｏ）、制御部２１はデータの書き込み先として２次代替ブロックの使用が可能かを判断する。制御部２１は２次代替領域管理テーブルを確認して、使用できる２次代替ブロックがあるかにより２次代替ブロックの使用が可能かを判断する（ステップ１０８）。使用可能な２次代替ブロックが無い場合は(ステップ１０９でＮｏ)、制御部２１は、空いている代替ブロックから書き込み先の代替ブロックのアドレスを決定する(ステップ１１１)。書き込み先の代替ブロックのアドレスを決定すると、制御部２１は決定した代替ブロックのアドレスを、異常の発生した不良ブロックのアドレスに関連付けて、不良ブロック管理テーブルに保存する（ステップ１１２）。使用する代替ブロックの情報等を不良ブロック管理テーブルに保存すると、制御部２１はバッファメモリ部２２に保存されているデータを選択した代替ブロックに書き込む（ステップ１１３）。
【００３５】
使用可能な２次代替ブロックがある場合は(ステップ１０９でＹｅｓ)、制御部２１は２次代替領域管理テーブルからデータの書き込みに使用する２次代替ブロックを決定する（ステップ１１０）。制御部２１は、２次代替領域管理テーブルに登録されている２つのアドレスの組み合わせから、２次代替ブロックとして未使用の１つの組を選び、使用する２次代替ブロックとして決定する。制御部２１は、使用する２次代替ブロックを決定する際に、不良ブロック管理テーブルを参照して２次代替ブロックとしての使用の有無を判断する。使用する２次代替ブロックを決定すると、制御部２１は、不良ブロック管理テーブルに、２次代替ブロックの先頭アドレスを不良ブロックのアドレスに関連関連付けて保存する。また、制御部２１は、不良ブロック管理テーブルに２次代替ブロックを使用していることを示す情報を保存する。データの書き込みに使用する２次代替ブロックを決定すると、制御部２１は選択した２次代替ブロックに、バッファメモリ部２２に保存されているデータの書き込みを行う（ステップ１１３）。制御部２１は、組み合わされた２つのブロックのうち片方のブロックにデータの書き込み行った後に、バッファメモリ部２２に保存されている残りのデータのもう一方のブロックへの書き込みように制御を行う。以上で、本実施形態の半導体記憶装置におけるメモリ部１０へのデータの書き込み動作は完了する。
【００３６】
次に、本実施形態の半導体記憶装置において、保存されているデータの読み出しを行う際の動作について説明する。図８は、本実施形態の半導体記憶装置に保存されているデータの読み出しを行う際の動作フローの概要を示したものである。
【００３７】
外部から読み出し元のアドレスとともに、保存されているデータの読み出し要求が送られてきて制御部２１に入力されたとする（ステップ１２１）。制御部２１は、データの読み出し要求を受け取ると、読み出し元となるアドレスが代替アドレスかを確認するために、不良ブロック管理テーブルを確認する（ステップ１２２）。
【００３８】
読み出し元となるアドレスが代替ブロックでない場合には（ステップ１２３でＮｏ）、制御部２１は読み出し元として指定されたブロックのデータの読み出しを行う(ステップ１２４)。制御部２１は、アドレスに対応するメモリ部１０のブロックから順次バッファメモリ部２２にデータを読み出す。メモリ部１０から読み出されたデータはバッファメモリ部２２に保存される。
【００３９】
制御部２１はデータの読み出しを行う際にデータの読み出しエラーが発生したメモリセルの数を計測する（ステップ１２５）。本実施形態では制御部２１は、１つのブロックを２分割して、分割してできた領域１つごとにエラーの発生数を計測する。制御部２１は１ブロックのデータの読み出しを終えると、分割してできた領域ごとにエラーの発生したメモリセル数が所定の数未満であるかを判断する。エラーの発生したメモリセルの数が２つの領域とも所定の数未満の場合は（ステップ１２６でＹｅｓ）、制御部２１はデータの読み出しを行ったブロックが正常であると判断する。制御部２１は、データの読み出しを行ったブロックが正常なブロックであると判断すると、バッファメモリ部２２に保存されているデータをデータバスを介して出力する。バッファメモリ部２２のデータを出力すると、データの読み出しの動作は完了となる。さらに、読み出すデータの要求がある場合には、ステップ１２１からの動作が繰り返し行われる。
【００４０】
データを読み出した際のエラーが、いずれか一方の領域または両方の領域において所定の数以上である場合（ステップ１２６でＮｏ）、制御部２１はデータを読み出したブロックが不良ブロックであると判断する。制御部２１は、データを読み出したブロックが不良ブロックであると判断すると、そのブロックのアドレスを不良ブロックとして保存する（ステップ１２８）。制御部２１は不良ブロックの情報を保存する際に、不良ブロックのうち正常な領域の先頭アドレスも保存する。データを読み出したブロックが不良ブロックであると判断すると、制御部２１は不良ブロックと判断したデータを他のブロックに移行する(ステップ１２９)。制御部２１は、データの読み込みや書き込み要求がないときに不良ブロックのデータの移し替えを行う。データの移し替えを行う際は、制御部２１は図７のステップ１０７からの動作を行うように制御することにより、他のブロックへのデータの書き込みを行う。
【００４１】
読み出し元となるアドレスが代替ブロックの場合には（ステップ１２３でＹｅｓ）、制御部２１は、読み出し元となるアドレスが２次代替ブロックのものであるかを確認する。制御部２１は、不良ブロック管理テーブルを確認して読み出し元となるアドレスが２次代替ブロックのものであるかを判断する。読み出し元のアドレスが２次代替ブロックのものでない場合は（ステップ１３０でＮｏ）、制御部２１は読み出し元のアドレスと対応する代替ブロックのアドレスを確認する。制御部２１は、代替ブロックのアドレスを確認すると、アドレスに対応するメモリ部１０のメモリセルから順次バッファメモリ部２２にデータを読み出し、ステップ１２４からの動作を行う。
【００４２】
読み出し元のアドレスが２次代替ブロックのものでない場合は（ステップ１３０でＹｅｓ）、制御部２１は２次代替領域管理テーブルを参照して読み出し元となる２次代替ブロックのアドレスを確認する。制御部２１は、２次代替ブロックのアドレスを確認すると２次代替ブロックからデータの読み出しを行う（ステップ１３３）。制御部２１は２次代替ブロックとして組み合わせて用いられているブロックのうち先頭ブロック側のアドレスから順次データを読み出してバッファメモリ部２２に保存する。制御部２１は、次に、もう一方のブロックのデータを読み出して、連続したデータとなるようにバッファメモリ部２２に保存する。２次代替ブロックからデータを読み出してバッファメモリ部２２に保存する際には、制御部２１はエラーの発生数を計測しステップ１２５からの動作を行う。
【００４３】
次に、異常が発生している不良ブロックのうち正常な領域を組み合わせて、仮想的なブロックを２次代替ブロックとして形成して登録する際の動作について説明する。図９は、本実施形態の半導体記憶装置において、異常が発生しているブロックの正常な部分を２次代替ブロックとして登録する際のフローの概要を示したものである。
【００４４】
書き込みや読み込みの動作を行っていないときに、制御部２１が不良ブロックが発生し、分割した場合に正常な領域があることを検知したとする（ステップ２０１）。制御部２１は、異常が発生したブロックを２分割した場合の、異常がない側、すなわち正常な側の領域の先頭アドレスの情報を抽出する。次に、制御部２１は、既に登録されているアドレスのうち、他のアドレスと組み合わされてないアドレスが登録されているかを判断するために２次代替領域管理テーブルを確認する（ステップ２０２）。
【００４５】
他と組み合わされていないアドレスが存在しない場合には（ステップ２０３でＮｏ）、制御部２１は新たなアドレスを他のアドレスと組み合わせずに２次代替ブロック管理テーブルに登録する。他のアドレスと組み合わせない場合は、制御部２１は新たに登録するアドレスを２次代替ブロックの先頭アドレスとして登録する（ステップ２０４）。他のアドレスと組み合わせずに登録されたアドレスは、新たに不良ブロックは生じたときに、新たに生じた不良ブロックの使用可能な側のアドレスと組み合わされる。他と組み合わされていないアドレスが登録されている場合には（ステップ２０３でＹｅｓ）、制御部２１は新たなアドレスと既に登録されているアドレスを組み合わせて登録する（ステップ２０５）。制御部２１は、２次代替ブロックの先頭アドレスとして既に登録されているアドレスに、新たなアドレスを関連付けて登録する。
【００４６】
本実施形態の半導体記憶装置は、不良ブロックを２つに分割して正常な領域どうしを組み合わせて２次代替ブロックとして２次代替領域管理テーブルで管理している。代替ブロックが所定の数以下となったときに不良ブロックが生じると、制御部は、２次代替ブロックの使用の可否を判断して使用可能な場合は、２次代替ブロックを使用するように制御を行っている。また、２次代替ブロックを使用する際には、制御部は、複数のブロックにまたがった領域を連続した１つの領域とみなしてデータの書き込みおよび読み出しを行っている。このように、不良ブロックのうち、正常な領域を組み合わせた２次代替ブロックを用いることにより、連続した領域からなる通常の代替ブロックを使用する数を少なくすることができる。そのため、代替ブロックを形成するための予備の記憶領域の大きさを抑制することが可能となる。また、代替ブロックの数が減少しても、２次代替ブロック使用することにより動作の継続が可能となり得る。以上より、本実施形態の半導体記憶装置では、予備の記憶領域の大きさを抑制しつつ、不良ブロックが多く発生した場合でも動作の継続が可能となる。
【００４７】
本発明の第３の実施形態について詳細に説明する。第２の実施形態では半導体記憶装置は、データの書き込みや読み込みを行っていないときに２次代替ブロックの形成に関する動作を行った。本実施形態では、データの書き込み動作の中でも、２次代替ブロックを形成して記録領域として用いる。
【００４８】
本実施形態の半導体記憶装置の構成は第２の実施形態と同様である。以下では、本実施形態の半導体記憶装置におけるデータの書き込み動作について説明する。また、本実施形態の半導体記憶装置と構成が同じであるため、第２の実施形態の半導体記憶装置の構成に関する図２も参照して説明する。
【００４９】
図１０は本実施形態の半導体記憶装置においてデータの書き込みが行われる際のフローの概要を示したものである。始めに、半導体記憶装置に、外部から書き込みの要求、書き込み先のアドレスおよび書き込むデータが送られてくる（ステップ１４１）。半導体記憶装置に送られてきたデータは、バッファメモリ部２２に入力される。バッファメモリ部２２にデータが入力されると、バッファメモリ部２２は、入力されたデータを保存する（ステップ１４２）。
【００５０】
制御部２１は、不良ブロック管理部２３の不良ブロック管理テーブルを参照して、データの書き込み先として指定されたアドレスが不良ブロック管理テーブルに含まれていないかを確認する（ステップ１４３）。データの書き込み先のアドレスが不良ブロック管理テーブルに含まれている場合は、制御部２１は、２次代替ブロックの使用の有無を確認する。２次代替ブロックを使用している情報が登録されている場合は、制御部２１は２次代替領域管理テーブルを確認して該当する２次代替ブロックのアドレスをデータの書き込み先として決定する。書き込み先のアドレスが不良ブロック管理テーブルには登録されているが、２次代替ブロックを使用している情報が登録されていない場合は、制御部２１は、代替ブロックのアドレスを書き込み先として決定する。また、データの書き込み先のアドレスが不良ブロック管理テーブルに含まれていない場合は、制御部２１は、書き込み先のアドレスとアドレスが一致する通常記憶領域１１のブロックを書き込み先として決定する（ステップ１４４）。
【００５１】
制御部２１は、データの書き込み先を決定すると、書き込み先のブロックが正常なブロックか不良ブロックかを確認する。書き込み先のブロックの確認は第２の実施形態のデータの書き込み時と同様に行うことができる。書き込み先のブロックが正常なブロックの場合には(ステップ１４５でＮｏ)、制御部２１は、バッファメモリ部２２に保存されているデータを書き込み先として決定したブロックに保存する（ステップ１４６）。書き込み先のブロックが正常であるかの確認は、例えば、ページごとに共有しているソース線に電圧を印加して、正常に電圧が印加できるかにより行われる。また、書き込み先のブロックに以前のデータが残っている場合には、制御部２１は書き込み動作を行う前に書き込み先のブロックに保存されているデータを一括で消去する。
【００５２】
書き込み先のブロックに異常が発生している場合には（ステップ１４５でＹｅｓ）、制御部２１は、異常が発生したブロックである不良ブロックのアドレスを不良ブロック管理テーブルに追加して保存する（ステップ１４７）。制御部２１は、不良ブロックのアドレスを保存すると、不良ブロックを２つに分割し、正常な領域のアドレスを２次代替領域管理テーブルに登録する（ステップ１４８）。正常な領域が無い場合は、２次代替領域管理テーブルへ登録する動作は行われない。既に２次代替ブロックを使用している場合は、正常な側のみ再度、登録して異常が発生している側は削除する。
【００５３】
制御部２１は、正常な領域を２次代替領域管理テーブルに登録すると、使用している代替ブロックの数が所定の数以下であるかを判断する。使用している代替ブロックの数が所定の数以下の場合は（ステップ１４９でＹｅｓ）、制御部２１は、バッファメモリ部２２に保存しているデータを、予備記憶領域１２の代替ブロックに書き込むと判断する。代替ブロックに書き込むと判断すると、制御部２１は、空いている代替ブロックから書き込み先の代替ブロックのアドレスを決定する(ステップ１５０)。書き込み先の代替ブロックのアドレスを決定すると、制御部２１は決定した代替ブロックのアドレスを、異常の発生した不良ブロックのアドレスに関連付けて、不良ブロック管理テーブルに保存する（ステップ１５１）。使用する代替ブロックの情報等を不良ブロック管理テーブルに保存すると、制御部２１はバッファメモリ部２２に保存されているデータを書き込み先として決定した代替ブロックに書き込む（ステップ１４６）。
【００５４】
使用している代替ブロックの数が所定の数より多い場合は（ステップ１４９でＮｏ）、制御部２１はデータの書き込み先として２次代替ブロックの使用が可能かを判断するために２次代替領域管理テーブルを確認する（ステップ１５２）。制御部２１は２次代替領域管理テーブルを確認して２次代替ブロックの使用が可能かを判断する。使用可能な２次代替ブロックが無い場合は(ステップ１５３でＮｏ)、制御部２１は、空いている代替ブロックから書き込み先の代替ブロックのアドレスを決定する(ステップ１５０)。書き込み先の代替ブロックのアドレスを決定すると、制御部２１は決定した代替ブロックのアドレスに、異常の発生した不良ブロックのアドレスに関連付けて、不良ブロック管理テーブルに保存する（ステップ１５１）。使用する代替ブロックの情報等を不良ブロック管理テーブルに保存すると、制御部２１はバッファメモリ部２２に保存されているデータを書き込み先として決定した代替ブロックに書き込む（ステップ１４６）。
【００５５】
使用可能な２次代替ブロックがある場合は(ステップ１５３でＹｅｓ)、制御部２１は２次代替領域管理テーブルからデータの書き込みに使用する２次代替ブロックを決定する。２次代替ブロックを決定すると、制御部２１は、２次代替ブロックの先頭側のブロックのアドレスを、データの書き込み要求で指定されていたアドレスと組み合わせて不良ブロック管理テーブルに保存する（ステップ１５４）。また、制御部２１は、不良ブロック管理テーブルに２次代替ブロックを使用していることを示す情報を保存する。データの書き込みに使用する２次代替ブロックを決定して保存すると、制御部２１は選択した２次代替ブロックに、バッファメモリ部２２のデータの書き込みを行う（ステップ１４６）。制御部２１は、組み合わされた２つのブロックのうち片方のブロックにデータの書き込みを行った後に、バッファメモリ部２２に保存されている残りのデータのもう一方のブロックへの書き込むように制御を行う。以上で、本実施形態の半導体記憶装置におけるメモリ部１０へのデータの書き込み動作は完了する。
【００５６】
本実施形態の半導体記憶装置において、データの読み出しを行う際の動作フローは第２の実施形態と同様である。また、本実施形態の半導体記憶装置において、データの書き込みおよび読み取りをしていないときに、２次代替ブロックを形成する際の動作フローも第２の実施形態と同様である。
【００５７】
本実施形態の半導体記憶装置では、データの書き込み時にブロックの異常を検知すると、制御部は、書き込みのフローの中で２次代替ブロックを形成し、所定の条件を満たしたときに２次代替ブロックへデータを書き込むように制御している。本実施形態では、書き込みとして使用予定であったブロックの正常領域も２次代替ブロックとして使用することが可能となるため、使用可能な２次代替ブロックが存在する可能性が高くなる。そのため、不良ブロックが発生した際に、通常の代替ブロックを使用する数を抑制することができる機会が第２の実施形態よりも増加し得る。そのため、本実施形態の半導体記憶装置では、代替ブロックの使用の数をより効果的に抑制することができるので、代替ブロックの不足による動作の停止をより避けることが可能になる。
【００５８】
第２の実施形態および第３の実施形態では、未使用の代替ブロックの残りが所定の数以下のときに２次代替ブロックを使用したが、未使用の代替ブロックの残りの数によらずに２次代替ブロックを使用する構成とすることもできる。未使用の代替ブロックの残り数によらずに２次代替ブロックを使用する場合は、書き込み先のブロックに異常が発生した際に、制御部は使用できる２次代替ブロックの有無を確認する。使用できる２次代替ブロックがある場合は、制御部は２次代替ブロックにデータの書き込み等を行う。未使用の代替ブロックの残り数によらずに２次代替ブロックを使用することにより、代替ブロックの数の減少を抑制することができる。その結果、代替ブロックの不足による動作の停止をより避けることができる。
【００５９】
第２の実施形態および第３の実施形態では、不良ブロックを２つの領域に分割したが３つ以上の複数の領域に分割することもできる。３つ以上の領域に分割する場合は、２次代替領域管理テーブルで、ブロックを分割した数に対応する数のアドレスの管理が行われる。また、３つ以上の領域に分割する場合は、１つの不良ブロックから複数の正常な領域が２次代替領域管理テーブルに登録されることもある。ＮＡＮＤ型フラッシュメモリでは、データの消去をブロック単位で行うため、１つの不良ブロックの複数の正常な領域を用いる場合は、１つの不良ブロック内の各領域は同じ２次代替ブロックに含まれるようにする必要がある。
【００６０】
第２の実施形態および第３の実施形態では、１つの不良ブロックを複数に分割した際に、分割してできる各々の領域の記憶容量が同じ大きさになるように、不良ブロックの分割が行われている。また、２次代替ブロックを形成する際に、１ブロック分と同じ記憶容量となるように不良ブロックの正常な領域が組み合わされている。このような構成に代えて、不良ブロックを分割せずに、不良ブロックを組み合わせて２次代替ブロックを構成とすることもできる。不良ブロックを分割しないで組み合わせる場合は、各不良ブロックの正常な領域の記憶容量の合計が、１つのブロック分の記憶容量を満たすように不良ブロックが組み合わされて２次代替ブロックが形成される。このような構成とすることにより、異常の発生した領域が大きい不良ブロックと小さい不良ブロックの組み合わせによる２次代替ブロックを形成することができる。また、異常の発生した領域が大きく、正常な領域が小さい不良ブロックを複数、組み合わせて１ブロック分の記憶容量を確保することも可能となる。不良ブロックを分割しない場合は、２次代替ブロックの形成やデータの書き込み等の制御が複雑になり得るが、異常の発生した領域が大きい不良ブロックも有効に活用して２次代替ブロックを形成することができる。その結果、代替ブロックの減少を抑制することができる。
【００６１】
第３の実施形態において、データの書き込み時に異常を検知した際には、書き込み動作の中で組み合わせを行った２次代替ブロックもデータの書き込み先の候補として用いられる。このような構成に代えて、バッファメモリ部に保存されたデータ量を検出し、不良ブロックを分割した際の正常な領域の容量以下であった場合には、不良ブロックの正常な領域を一時的なデータの書き込み先として用いる構成とすることもできる。このような構成とすることにより、不良ブロックの正常な領域を一時的な書き込み先として使用した場合には、書き込みの動作を行っていないときに、２次代替ブロックを形成して不良ブロックへの割り当てが行われる。代替ブロックが設定された後は、一時的に保存されたデータは設定された代替ブロックへ移行される。このように、データの量により不良ブロックの正常な領域を一時的に使用して代替ブロックを設定する処理を保留することにより、書き込み時の処理速度の低下を抑制することができる。
【産業上の利用可能性】
【００６２】
本発明は、半導体記憶装置の記憶領域を管理する技術として利用することができ、特にＮＡＮＤ型フラッシュメモリを用いた半導体記憶装置に利用することができる。
【符号の説明】
【００６３】
１    記憶手段
２    アドレス管理手段
３    代替ブロック形成手段
４    制御手段
１０    メモリ部
１１    通常記憶領域
１２    予備記憶領域
２１    制御部
２２    バッファメモリ部
２３    不良ブロック管理部
２４    ２次代替領域管理部
１０１−１１３    データの書き込みのステップ
１２１−１３３    データの読み出しのステップ
１４１−１５４    データの書き込みのステップ
２０１−２０４    ２次代替ブロックの形成のステップ
【図１】
2015118664.tif 000003
【図２】
2015118664.tif 000004
【図３】
2015118664.tif 000005
【図４】
2015118664.tif 000006
【図５】
2015118664.tif 000007
【図６】
2015118664.tif 000008
【図７】
2015118664.tif 000009
【図８】
2015118664.tif 000010
【図９】
2015118664.tif 000011
【図１０】
2015118664.tif 000012