(57)【特許請求の範囲】
【請求項１】
異なる特性のメモリ領域を必要とする複数種類のデータを記憶可能なメモリセルからなる複数のメモリブロックを有し、前記複数のメモリブロックの一部を、異なる特性のメモリ領域を必要とする複数種類のデータを記憶可能なメモリセルからなる複数のフリーブロックとするメモリ部と、
前記各メモリブロックを消去単位として前記メモリ部を管理し、前記メモリ部の論理アドレスを、前記フリーブロック以外のメモリブロックを特定する物理アドレスに変換する機能を有し、前記フリーブロック以外のメモリブロックの書き換えに際して外部から入力された前記論理アドレスから前記データの種類を判断し当該メモリブロックと前記フリーブロックとを置き換える処理を実行するメモリコントローラと、
を備え、
前記メモリコントローラは、前記判断の結果に基づいて、前記メモリ部の各フリーブロック以外のメモリブロックが、書き換え後も書き換え前と同一の種類のデータを記憶するためのフリーブロックとなり、前記フリーブロックが、書き換え後も書き換え前と同一の種類のデータを記憶するフリーブロック以外のメモリブロックとなるように前記メモリ部に記憶するデータの種類を管理する
ことを特徴とする半導体記憶装置。
【請求項２】
異なる特性のメモリ領域を必要とする複数種類の書き込み、読み出し方式でデータを記憶可能なメモリセルからなる複数のメモリブロックを有し、前記複数のメモリブロックの一部を、異なる特性のメモリ領域を必要とする複数種類の書き込み、読み出し方式でデータを記憶可能なメモリセルからなる複数のフリーブロックとするメモリ部と、
前記各メモリブロックを消去単位として前記メモリ部を管理し、前記メモリ部の論理アドレスを、前記フリーブロック以外のメモリブロックを特定する物理アドレスに変換する機能を有し、前記フリーブロック以外のメモリブロックの書き換えに際して外部から入力された前記論理アドレスから前記データの書き込み、読み出し方式の種類を判断し当該メモリブロックと前記フリーブロックとを置き換える処理を実行するメモリコントローラと、
を備え、
前記メモリコントローラは、前記判断の結果に基づいて、前記メモリ部の各フリーブロック以外のメモリブロックが、書き換え後も書き換え前と同一の種類の書き込み、読み出し方式でデータを記憶するためのフリーブロックとなり、前記フリーブロックが、書き換え後も書き換え前と同一の書き込み、読み出し方式で記憶するフリーブロック以外のメモリブロックとなるように前記メモリ部に記憶するデータの種類を管理する
ことを特徴とする半導体記憶装置。
【請求項３】
前記メモリコントローラは、前記メモリ部の論理アドレスとこの論理アドレスに対応する前記メモリブロックの物理アドレスとの対応関係を規定した論理／物理アドレス変換テーブルを構築し、この論理／物理アドレス変換テーブルを参照して前記メモリ部に記憶するデータの種類を管理する
ことを特徴とする請求項１または２に記載の半導体記憶装置。
【請求項４】
前記メモリコントローラは、前記メモリ部のメモリ領域と各メモリ領域に割り付けるメモリブロックとの対応関係を設定し、この対応関係に基づいて前記メモリ部に記憶するデータの種類を管理する
ことを特徴とする請求項３に記載の半導体記憶装置。
【請求項５】
前記メモリコントローラは、前記フリーブロックをフリーブロックテーブルに登録し、前記メモリ部の既書き込みメモリブロックの書き換えが発生したときには、前記メモリ領域とメモリ領域に割り付けるメモリブロックとの対応関係に基づいて、当該書き換えが発生したメモリブロックと同一のメモリ領域に含まれるフリーブロックを前記書き換えが発生したブロックと置き換える
ことを特徴とする請求項４に記載の半導体記憶装置。
【請求項６】
前記メモリコントローラは、前記フリーブロックを各メモリ領域毎に設けられたフリーブロックテーブルに登録し、前記メモリ部の既書き込みメモリブロックの書き換えが発生したときには、当該書き換えが発生したメモリブロックに記憶されたデータと同じ種類のフリーブロックテーブルからフリーブロックを払い出して前記書き換えが発生したメモリブロックと置き換える
ことを特徴とする請求項４に記載の半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを記憶するメモリ部と、その読み出し／書き込み制御を行うメモリコントローラとを備えた半導体記憶装置に関する。
【背景技術】
【０００２】
電気的書き換え可能な不揮発性半導体メモリ（ＥＥＰＲＯＭ）の一つとして、ＮＡＮＤ型フラッシュメモリが知られている。ＮＡＮＤ型フラッシュメモリは、単位セル面積がＮＯＲ型に比べて小さく、大容量化が容易である。また、セル単位での読み出し／書き込み速度は、ＮＯＲ型に比べると遅いが、セルアレイとページバッファとの間で同時に読み出し／書き込みが行われるセル範囲（物理的ページ長）を大きくすることで、実質的に高速の読み出し／書き込みが可能である。
【０００３】
このような特徴を活かして、ＮＡＮＤ型フラッシュメモリは、ファイルメモリやメモリカードをはじめとする各種記録メディアとして使用されている。
【０００４】
メモリカード等においては、不揮発性メモリとメモリコントローラとをパッケージして、ホストから供給されるコマンドと論理アドレスにより、不揮発性メモリの読み出し／書き込みを制御することが行われる。例えば、ホストから論理アドレスとセクタ数を与えることにより、複数セクタのデータ読み出しを行うことも提案されている（特許文献１参照）。
【０００５】
一方、ＮＡＮＤ型フラッシュメモリでは、１２８ＫＢ、２５６ＫＢといったメモリブロック単位でデータの消去が行われる。このため、既に書き込まれているメモリセルに書き換え命令が発生した場合、或いはメモリブロックの一部のデータを消去する場合、一旦、そのメモリセルが含まれるメモリブロックの他のメモリセルのデータを他のメモリブロックにコピーしたのち、メモリブロック全体を消去して再書き込み又は追加書き込み等をしなければならない。
【０００６】
このため、従来は、初期化時に全メモリブロックのうち任意にユーザブロック及びシステムブロックに割り付けたメモリブロックを除いた残りをフリーブロックとして登録し、ユーザブロックに対する追加書き込みや部分消去が発生した場合、登録されたフリーブロックから新たな書き込みブロックの払い出しを行ってコピー及び追加書き込み等を行い、その書き込みブロックを当該ユーザブロックと置き換え、不要となったユーザブロックは、フリーブロックとして再登録するようにしている。フリーブロックとして再登録されたメモリブロックは、一括消去されて次の使用のために待機状態となる。
【０００７】
このような書き込み制御では、各メモリセルが同一の信頼性を要求されている場合には問題がないが、例えば多値データ記憶領域及び２値データ記憶領域のように、要求レベルが異なる複数の記憶領域を有する場合、複数の記憶領域で使用ブロックの混在が生じ、ＮＡＮＤセルの信頼性が低下するという問題があった。
【特許文献１】特開２００６−１５５３３５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明は、要求レベルが異なる複数の記憶領域に対処する信頼性の高い半導体記憶装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の一つの態様において、半導体記憶装置は、異なる特性のメモリ領域を必要とする複数種類のデータを記憶可能なメモリセルからなる複数のメモリブロックを有するメモリ部と、前記各メモリブロックを消去単位として前記メモリ部を管理し、前記メモリ部の論理アドレスを、前記メモリブロックを特定する物理アドレスに変換する機能を有し、前記メモリブロックの書き換えに際して当該メモリブロックと予め登録されたフリーブロックとを置き換える処理を実行するメモリコントローラとを備え、前記メモリコントローラは、前記メモリ部の各メモリブロック及びフリーブロックを、書き換え後も書き換え前と同一の種類のデータを記憶するようにメモリ部に記憶するデータの種類を管理することを特徴とする。
【００１０】
本発明の他の態様において、半導体記憶装置は、異なる特性のメモリ領域を必要とする複数種類の書き込み、読み出し方式でデータを記憶可能なメモリセルからなる複数のメモリブロックを有するメモリ部と、前記各メモリブロックを消去単位として前記メモリ部を管理し、前記メモリ部の論理アドレスを、前記メモリブロックを特定する物理アドレスに変換する機能を有し、前記メモリブロックの書き換えに際して当該メモリブロックと予め登録されたフリーブロックとを置き換える処理を実行するメモリコントローラと、を備え、前記メモリコントローラは、前記メモリ部の各メモリブロック及びフリーブロックを、書き換え後も書き換え前と同一の書き込み、読み出し方式で記憶するように前記メモリ部に記憶するデータの種類を管理することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、要求レベルが異なる複数の記憶領域に対処する信頼性の高い半導体記憶装置を提供することができる。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照しながら、本発明に係る半導体記憶装置の実施の形態について詳細に説明する。
【００１３】
[半導体メモリの構成]
図１は、本実施の形態に係る半導体メモリを示すブロック図である。
【００１４】
この実施の形態の半導体メモリは、例えば一つあるいは複数個のＮＡＮＤフラッシュメモリ２１と、その読み出し／書き込みを制御するメモリコントローラ２２とにより一体にパッケージ化されたメモリモジュールを構成する。搭載される全てのフラッシュメモリ２１は、一つのメモリコントローラ２２で論理メモリとしてコントロールされるので、以下これを論理ブロックアドレス（Ｌｏｇｉｃ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓ）ＮＡＮＤフラッシュメモリ（以下、ＬＢＡ−ＮＡＮＤメモリと略称する）という。
【００１５】
ＬＢＡ−ＮＡＮＤメモリ２０に搭載されるＮＡＮＤフラッシュメモリ２１は、１または複数のメモリチップから構成されている。図１ではＮ個のメモリチップｃｈｉｐ１、・・・ｃｈｉｐＮを示しているが、その場合も一つのメモリコントローラ２２で制御される。最大搭載メモリチップ数は、レギュレータの電流能力や他のファクタとの関係で決まる。
【００１６】
メモリコントローラ２２は、フラッシュメモリ２１との間でデータ転送を行うためのＮＡＮＤフラッシュインタフェース２３、ホストデバイスとの間でデータ転送を行うためのホストインタフェース２５、読み出し／書き込みデータ等を一時保持するバッファＲＡＭ２６、データ転送制御を行うＭＰＵ２４、ＮＡＮＤフラッシュメモリ２１内のファームウエア（ＦＷ）の読み出し／書き込みのシーケンス制御等に用いられるハードウエアシーケンサ２７を有する１チップコントローラである。
【００１７】
尚、ＮＡＮＤフラッシュメモリ２１とメモリコントローラ２２とが１チップであるか別チップであるかは、このＬＢＡ−ＮＡＮＤメモリ２０にとって本質的ではない。
【００１８】
図２は、図１のＮＡＮＤフラッシュメモリ２１のメモリコア部のセルアレイ構成を示している。
【００１９】
メモリセルアレイ１は、複数の電気的書き換え可能な不揮発性メモリセル（図の例では３２個のメモリセル）Ｍ０−Ｍ３１が直列接続されたＮＡＮＤセルユニット（ＮＡＮＤストリング）ＮＵを配列して構成される。
【００２０】
ＮＡＮＤセルユニットＮＵの一端は、選択ゲートトランジスタＳ１を介してビット線ＢＬｏ、ＢＬｅに、他端は選択ゲートトランジスタＳ２を介して共通ソース線ＣＥＬＳＲＣに接続される。メモリセルＭ０−Ｍ３１の制御ゲートはそれぞれワード線ＷＬ０−ＷＬ３１に接続され、選択ゲートトランジスタＳ１、Ｓ２のゲートは選択ゲート線ＳＧＤ、ＳＧＳに接続される。
【００２１】
ワード線方向に配列されるＮＡＮＤセルユニットの集合が、データ消去の最小単位となるメモリブロックを構成し、図示のようにビット線の方向に複数のメモリブロックＢＬＫ０−ＢＬＫｎ−１が配置される。
【００２２】
ビット線ＢＬｅ，ＢＬｏの一端側に、セルデータの読み出し及び書き込みに供されるセンスアンプ回路３が配置され、ワード線の一端側にワード線及び選択ゲート線の選択駆動を行うロウデコーダ２が配置される。図２では、隣接する偶数番ビット線ＢＬｅと奇数番ビット線ＢＬｏがビット線選択回路により選択的にセンスアンプ回路３の各センスアンプＳＡに接続される場合を示している。
【００２３】
以上のように構成されるＬＢＡ−ＮＡＮＤメモリ２０において、コマンド、アドレス（論理アドレス）及びデータ、並びにチップ・イネーブル信号／ＣＥ、書き込みイネーブル信号／ＷＥ、読み出しイネーブル信号／ＲＥ、レディ／ビジー信号ＲＹ／ＢＹ等の外部制御信号は、ホストＩ／Ｆ２５に入力される。ホストＩ／Ｆ２５では、コマンドや制御信号を、ＭＰＵ２４及びハードウエアシーケンサ２７に振り分けると共に、アドレス及びデータをバッファＲＡＭ２６に格納する。
【００２４】
外部から入力された論理アドレスは、ＮＡＮＤフラッシュＩ／Ｆ２３で、ＮＡＮＤフラッシュメモリ２１の物理アドレスに変換される。また、各種制御信号に基づくハードウエアシーケンサ２７の制御の下、データの転送制御及び書き込み／消去／読み出しのシーケンス制御が実行される。変換された物理アドレスは、ＮＡＮＤフラッシュメモリ２１内のアドレスレジスタを介してロウデコーダ２やカラムデコーダ（図示せず）に転送される。書き込みデータは、Ｉ／Ｏ制御回路等を介してセンスアンプ回路３にロードされ、読み出しデータはＩ／Ｏ制御回路等を介して、外部に出力される。
【００２５】
［メモリ領域］
図３は、この実施の形態のＬＢＡ−ＮＡＮＤメモリのメモリ領域の詳細を示す図である。
【００２６】
本実施形態のＬＢＡ−ＮＡＮＤメモリ２０は、コマンドによりアクセスの切り換えが可能な複数のデータ領域（論理ブロックアクセス領域）を持つ。具体的にこの実施の形態では、用途とデータの信頼性により分けられる２つ又は３つのデータ記憶領域がある。
【００２７】
図３（ａ）に示すスタンダードオペレーションモードでは、それぞれが特性の異なる情報を記憶する２つのデータ記憶領域を有する。１つはＳＬＣ（Single Level Cell）を用いた２値データ記憶領域ＳＤＡ（SLC Data Area）であり、もう一つはＭＬＣ（Multi Level Cell）を用いた多値データ記憶領域ＭＤＡ（MLC Data Area）である。２値データ記憶領域ＳＤＡは、ファイルシステム又はネットワーク通信のログデータ等を記憶するのに適し、多値データ記憶領域ＭＤＡは、音楽、画像、各種アプリケーション等を記憶するのに適している。
【００２８】
図３（ｂ）に示すオプショナルパワーオンモードでは、上記特性の異なる情報を記憶する２つのデータ記憶領域ＳＤＡ，ＭＤＡに加えて、ブートコードを記憶するブートコードブロックがメモリ領域の先頭に設けられる。
【００２９】
これら２つのモードにおいて、２値データ記憶領域ＳＤＡと多値データ記憶領域ＭＤＡの境界は、コマンドの指示によって任意に変更可能となっている。例えば、ＭＬＣ（４値）をＳＬＣ（２値）としても使用可能なメモリセルアレイを用い、メモリ領域全てをＭＬＣとして使用した場合の記憶容量が４ＧＢであるメモリにおいて、図４に示すように、２値データ記憶領域ＳＤＡの記憶容量を、０ＭＢ，５０ＭＢ，５００ＭＢ及び１ＧＢにそれぞれ設定した場合、多値データ記憶領域ＭＤＡの記憶容量は、それぞれ４ＧＢ，３．９ＧＢ，３ＧＢ及び２ＧＢになる。
【００３０】
［メモリブロック管理の第１の実施の形態］
次に、本発明の第１の実施の形態に係る半導体記憶装置のメモリブロックの管理について図面を参照しながら詳細に説明する。
【００３１】
図５は、メモリ部である２プレーン構成のＮＡＮＤフラッシュメモリ２１のメモリブロック構成を示す図である。メモリチップ０〜Ｎは、それぞれプレーン０，１を通してブロック番号０ｘ００００〜０ｘ０７ＦＦ（但し、“０ｘ”は１６進数であることを示す。）が物理アドレスとして付された複数のメモリブロックを有している。メモリコントローラ２２は、前述したＳＤＡ，ＭＤＡの境界設定コマンドに基づいて、初期化処理時に、例えばブロック番号０ｘ００００〜０ｘ００ＦＦ及びブロック番号０ｘ４００〜０ｘ４ＦＦのメモリブロックからなるメモリ領域をＳＤＡとして割り付け、ブロック番号０ｘ０１００〜０ｘ０３ＦＦ及びブロック番号０ｘ５００〜０ｘ７ＦＦのメモリブロックからなるメモリ領域をＭＤＡとして割り付ける。
【００３２】
具体的には、図６に示すように、論理アドレス空間５０をＳＤＡ領域５１とＭＤＡ領域５２とに分割し、論理／物理アドレス変換テーブル（以下、「Ｌ／Ｐテーブル」と略記する。）６０を作成する。このＬ／Ｐテーブル６０は、論理アドレス空間の論理アドレスとＮＡＮＤフラッシュメモリの物理アドレスとを対応付けるものである。この例では、ＳＤＡ領域５１には論理アドレス“０ｘ００００”から“０ｘ２７ＦＦ”が割り当てられ、ＭＤＡ領域５２には論理アドレス“０ｘ２８００”から“０ｘ３ＦＦＦ”が連続して割り当てられている。そして、各論理アドレスと対応する物理アドレスがＬ／Ｐテーブル６０に登録されている。なお、図６では、説明を簡単にするために、ＳＤＡ領域５１とＭＤＡ領域５２とで論理アドレスと物理アドレスとが１対１の関係となっているが、実際には、例えばＳＤＡ領域５１のひとつの論理アドレスで特定される１つのメモリブロックに１２８ＫＢが割り当てられるとすると、ＭＤＡ（例えば４値）領域５２の１つの論理アドレスで特定される１つのメモリブロックにはその倍の２５６ＫＢが記憶されるので、ＭＤＡ領域５２では、１つのメモリブロックに対するアドレス範囲が、ＳＤＡ領域５１のそれに対して２倍に設定される必要がある。より処理を簡単にするためには、例えば、図７に示すように、Ｌ／Ｐテーブル６０自体は、全てがＭＤＡ領域５２であるとして登録し、ＳＤＡ領域５１がアクセスされたときに、その論理アドレスを２倍に換算してＬ／Ｐテーブル６０を参照するか、又は、図示はしないが、Ｌ／Ｐテーブル６０をＳＤＡ領域５１換算で登録して、ＭＤＡ領域５２がアクセスされたときにアドレスを１／２にしてＬ／Ｐテーブル６０を参照すれば良い。
【００３３】
ＳＤＡ領域５１とＭＤＡ領域５２の分割は２つに限定されない。例えば、ＭＤＡが４値、８値、１６値等のＭＬＣを含む場合にはそれに応じた数のＭＤＡ領域に分割されてもよい。これらの論理アドレス空間５０は、前述したように、コマンドにより、任意に決定することができる。
【００３４】
Ｌ／Ｐテーブル６０に登録されたメモリブロックは、消去の単位となっている。ＮＡＮＤ型フラッシュメモリでは、データの書き換えを行う場合、又はメモリブロックの一部のデータを書き替える場合、一旦メモリブロック全体を消去して再度書き込む必要があるため、同じブロック中の書き替えないデータについてはブロック消去前に一旦他のメモリブロックにコピーをしておく必要がある。
【００３５】
このような処理を簡略化するため、メモリコントローラ２２は、初期化動作時に、上述したＬ／Ｐテーブル６０と同時に、図８に示すような、一部のメモリブロックをフリーブロックとして登録したフリーブロックテーブル（以下、「ＦＢテーブル」と呼ぶ。）６１を作成する。このＦＢテーブル６１に登録されるフリーブロックは、Ｌ／Ｐテーブル６０からは除外される。
【００３６】
ところで、一般に、ＳＬＣのライト／イレース限度は数十万回であるのに対して、ＭＬＣのライト／イレース限度は数万回と言われている。これは、ＭＬＣの場合、１つのメモリセルへの書き込み動作に、複数回のしきい値移動のための電圧印加を行う必要があり、しかも印加電圧もＳＬＣより高めであるからである。したがって、ＳＬＣとして使用したブロックをＭＬＣとして使用したり、逆にＭＬＣとして使用したメモリブロックをＳＬＣとして使用したりすることを繰り返すと、セルの性能が劣化し、メモリ全体の信頼性を確保することが困難となる。特に、ＭＬＣとして使用したブロックをＳＬＣとして使用すると、ＳＬＣで保証するライト／イレース回数を確保することができなくなる。
【００３７】
そこで、上記のようなブロックのセル用途の混在を防止することにより、メモリ全体の信頼性を向上させる。
【００３８】
本発明の第１の実施形態では、メモリコントローラ２２が、図５に示すように、ＳＤＡ領域とＭＤＡ領域にそれぞれ割り付けるブロックの範囲を決定したら、各領域からそれぞれ数％ずつのメモリブロックを選択し、これをフリーブロックとして登録する。そして、論理アドレスからアクセスすべき領域がＳＤＡ領域であるかＭＤＡ領域であるかを判断し、フリーブロックの選択も、メモリブロック番号からいずれの領域に含まれるフリーブロックであるかを判断して、各領域に応じたフリーブロックを選択するようにする。これにより、ＳＤＡ領域に含まれるメモリブロック及びフリーブロックは、ＳＤＡ領域のみで使用され、ＭＤＡ領域に含まれるメモリブロック及びフリーブロックは、ＭＤＡ領域のみで使用されることとなり、セル用途の混在の問題が解消される。この結果として、メモリ全体の信頼性が向上する。
【００３９】
以下、上述した第１の実施形態に係るブロック管理の方法について、図面を参照しながら詳細に説明する。
【００４０】
図８は、本発明の第１の実施形態に係るＬＢＡ−ＮＡＮＤメモリのメモリブロック管理を概略的に示したものである。
【００４１】
まず、メモリコントローラ２２は、外部からのコマンドにより、論理アドレス空間５０をＭＤＡ領域５２とＳＤＡ領域５１に分割する。
【００４２】
次に、メモリコントローラ２２は、初期化時に、図５に示すように、チップ０〜Ｎのメモリ構成を決定し、各メモリブロックが何れの領域で使用されるものかを決定する。同時に、メモリコントローラ２２は、Ｌ／Ｐテーブル６０及びＦＢテーブル６１を作成する。
【００４３】
ＮＡＮＤフラッシュメモリ２１へのデータ書き込みに際しては、Ｌ／Ｐテーブル６０が参照される。例えば、ＳＤＡ領域５１の論理アドレス“０ｘ０００２”に２値データを書き込む場合には、Ｌ／Ｐテーブル６０を参照して、対応するブロックアドレス“チップ０，ブロック番号０ｘ０００２”（以下、「チップ」及び「ブロック番号」の表記は省略する。）のメモリブロックに２値データが書き込まれる。同様に、ＭＤＡ領域５２の論理アドレス“０ｘ２８０１”に多値データを書き込む場合には、Ｌ／Ｐテーブル６０を参照して、対応するブロックアドレス“０，０ｘ０１０１”のメモリブロックに多値データが書き込まれる。Ｌ／Ｐテーブル６０に登録されているメモリブロックに対する最初の書き込みについては、以上のような動作を繰り返す。
【００４４】
これに対し、既にデータが書き込まれているメモリブロックに対する追加書き込み、部分消去等の書き換えコマンドが外部から入力されたときには、書き換えの対象となるメモリブロックがフリーブロックと置き換えられる。
【００４５】
例えば、ＳＤＡ領域５１のデータ書き込み済みの論理アドレス“０ｘ０００２”にライトが発生した場合、メモリコントローラ２２は、ＦＢテーブル６１から使用するべき新しいブロックを参照する。その際、メモリコントローラ２２は、ライトすべきデータが２値データであることをコマンドから判断し、ブロックアドレスが図５に示したＳＤＡ領域に含まれるメモリブロックであることを確認し、ＳＤＡ領域に含まれるフリーブロック、例えばブロックアドレス“０，０ｘ００３０”のフリーブロックを選択する。そして、ブロックアドレス“０，０ｘ００３０”のフリーブロックをＦＢテーブル６１から払い出し、Ｌ／Ｐテーブル６０のライトが発生した“０，０ｘ０００２”のメモリブロックと入れ替える。具体的には、“０，０ｘ０００２”のメモリブロックの内容を読み出し、その一部のライトが発生した部分を置き換えて“０，０ｘ００３０”のフリーブロックに書き込む。そして、“０，０ｘ０００２”のメモリブロックの内容をイレースし、このイレースしたメモリブロックをＬ／Ｐテーブル６０から削除してＦＢテーブル６１のキューの最後部に加えると共に、新たにデータを書き込んだ“０，０ｘ００３０”のフリーブロックをＬ／Ｐテーブル６０の論理アドレス“０ｘ０００２”と関連付ける。ＦＢテーブル６１では、キューの順位がひとつだけ繰り上がる。
【００４６】
同様に、ＭＤＡ領域５２のデータ書き込み済みの論理アドレス“０ｘ２８０１”にライトが発生した場合、ＦＢテーブル６１から使用するべき新しいブロックを参照する。その際、メモリコントローラ２２は、ライトすべきデータが多値データであることをコマンドから判断し、ブロックアドレスが図５に示したＭＤＡ領域に含まれるメモリブロックであることを確認し、ＭＤＡ領域に含まれるフリーブロック、例えばブロックアドレス“Ｎ，０ｘ０３ＦＥ”のフリーブロックを選択する。そして、ブロックアドレス“Ｎ，０ｘ０３ＦＥ”をＦＢテーブル６１から払い出し、Ｌ／Ｐテーブル６０のライトが発生した“０，０ｘ０１０１”のメモリブロックと入れ替える。具体的には、“０，０ｘ０１０１”のメモリブロックの内容を読み出し、その一部のライトが発生した部分を置き換えて“Ｎ，０ｘ０３ＦＥ”のフリーブロックに書き込む。そして、“０，０ｘ０１０１”のメモリブロックの内容をイレースし、このイレースしたメモリブロックをＬ／Ｐテーブル６０から削除してＦＢテーブル６１のキューの最後部に加えると共に、新たにデータを書き込んだ“Ｎ，０ｘ０３ＦＥ”のフリーブロックをＬ／Ｐテーブル６０の論理アドレス“０ｘ０１０１”と関連付ける。ＦＢテーブル６１では、キューの順位がひとつだけ繰り上がる。
【００４７】
以上の動作を、ブロックの書き換え時に毎回実行する。
【００４８】
上述した第１の実施形態によれば、チップ内の全てのブロックアドレスをＳＤＡ領域又はＭＤＡ領域に割り付けて、フリーブロックのブロックアドレスから、そのフリーブロックを２値データ記憶用として使用するか、多値データ記憶用として使用するかを管理しているので、１つのブロックが２値データと多値データとで混在して使用されるのを防止することが可能となる。その結果として、半導体記憶装置の信頼性を向上させることができる。
【００４９】
［メモリブロック管理の第２の実施の形態］
続いて、本発明の第２の実施の形態に係る半導体記憶装置のメモリブロックの管理について図面を参照しながら詳細に説明する。
【００５０】
図９は、本発明の第２の実施形態に係るＬＢＡ−ＮＡＮＤメモリのメモリブロック管理を概略的に示したものである。第２の実施形態は、ＮＡＮＤフラッシュメモリのチップ内のブロックアドレスによらず、２値データ記憶用フリーブロックテーブル（以下、「ＳＤＡ用ＦＢテーブル」と呼ぶ。）７０及び多値データ記憶用フリーブロックテーブル（以下、「ＭＤＡ用ＦＢテーブル」と呼ぶ。）７１を独立に構築する点で上記した第１の実施形態と異なっている。第２の実施形態によっても、ブロックのセル用途の混在を防止することが可能であり、半導体メモリの信頼性を向上させることができる。図９において、図８に示す第１の実施形態と同一要素については同一符号で示し、その説明を省略する。
【００５１】
第２の実施形態では、初期化時に、Ｌ／Ｐテーブル６０と同時に、ＳＤＡ用ＦＢテーブル７０及びＭＤＡ用ＦＢテーブル７１が独立に構築される。これらＦＢテーブル７０，７１に登録されるフリーブロックとして、全メモリブロックの数％がＬ／Ｐテーブル６０に登録されずに割り当てられる。なお、これらＳＤＡ用ＦＢテーブル７０及びＭＤＡ用Ｆｂテーブル７１に登録されるフリーブロックは、図５に示したメモリブロックの区分けに従う必要は無い。以下、ＭＤＡ用ＦＢテーブル７１が１つの場合を代表例として説明するが、これに限定されず、例えば、４値、８値、１６値等に応じたＭＤＡ用ＦＢテーブルを複数個設けることも可能である。
【００５２】
ＳＤＡ用ＦＢテーブル７０は、未使用の２値データ記憶用ブロックを参照するためのテーブルである。ＳＤＡ用ＦＢテーブル７０には、ＳＤＡ用のフリーブロックアドレスがエントリーされている。ＳＤＡ用ＦＢテーブル７０に一度エントリーされたブロックは、その後、ＳＤＡ領域５１のメモリブロックと置換されるので、多値データ記憶用のブロックとして使用されることがない。
【００５３】
ＭＤＡ用ＦＢテーブル７１は、未使用の多値データ記録用ブロックを参照するためのテーブルである。ＭＤＡ用ＦＢテーブル７１には、ＭＤＡ用のフリーブロックアドレスがエントリーされている。ＭＤＡ用ＦＢテーブル７１に一度エントリーされたブロックは、その後、多値データ記憶用のブロックとして使用され、２値データ記録用のブロックとして使用されることがない。
【００５４】
続いて、第２の実施形態に係るＬＢＡ−ＮＡＮＤメモリのブロック管理の方法について詳細に説明する。
【００５５】
まず、メモリコントローラ２２は、外部からのコマンドにより、論理アドレス空間５０をＭＤＡ領域５２とＳＤＡ領域５１に分割し、例えば論理アドレス“０ｘ００００”から“０ｘ２７ＦＦ”をＳＤＡ領域５１に割り当て、論理アドレス“０ｘ２８００”から“０ｘ３ＦＦＦ”をＭＤＡ領域５２に割り当てる。論理アドレスの割り当て方法は、これに限定されない。
【００５６】
次に、メモリコントローラ２２は、第１の実施形態と同様に初期化時にＬ／Ｐテーブル６０を構築し、Ｌ／Ｐテーブル６０を参照してＳＤＡ領域５１とＭＤＡ領域５２の論理アドレスを物理アドレスに変換する。それによって、外部デバイスによるＮＡＮＤフラッシュメモリ２１の各セルへのアクセスが可能となる。
【００５７】
ＮＡＮＤフラッシュメモリ２１の各セルには、２値または多値データのいずれかが書き込まれる。例えば、ＳＤＡ領域５１の論理アドレス“０ｘ０００２”に対応するブロックアドレス“０，０ｘ０００２”には、２値データが書き込まれる。同様に、ＭＤＡ領域５２の論理アドレス“０ｘ２８０１”に対応するブロックアドレス“０，０ｘ０１０１”には、多値データが書き込まれる。Ｌ／Ｐテーブル６０に登録されているメモリブロックに対する最初の書き込みについては、以上のような動作を繰り返す。
【００５８】
これに対し、既にデータが書き込まれているメモリブロックに対する追加書き込み、部分消去等の書き換えコマンドが外部から入力されたときには、書き換えの対象となるメモリブロックがフリーブロックと置き換えられる。
【００５９】
例えば、ＳＤＡ領域５１のデータ書き込み済みの論理アドレス“０ｘ００２”にライトが発生した場合、メモリコントローラ２２は、ライトすべきデータが２値データであることをコマンドから判断し、ＳＤＡ用ＦＢテーブル７０から使用すべき新しいブロックを参照し、例えばブロックアドレス“０，０ｘ００３０”のフリーブロックを選択する。そして、選択したブロックアドレス“０，０ｘ００３０”のフリーブロックをＳＤＡ用ＦＢテーブル７０から払い出し、Ｌ／Ｐテーブル６０のライトが発生した“０，０ｘ０００２”のメモリブロックと入れ替える。その後、ブロックアドレス“０，０ｘ０００２”のメモリブロックをＬ／Ｐテーブル６０から削除してＳＤＡ用ＦＢテーブル７０のキューの最後部に加えると共に、新たにデータを書き込んだ“０，０ｘ００３０”のフリーブロックをＬ／Ｐテーブル６０の論理アドレス“０ｘ０００２”と関連付ける。ＳＤＡ用ＦＢテーブル７０では、フリーブロックアドレスのキューの順位がひとつだけ繰り上がる。
同様に、ＭＤＡ領域５２のデータ書き込み済みの論理アドレス“０ｘ２８０１”にライトが発生した場合、メモリコントローラ２２は、ライトすべきデータが多値データであることをコマンドから判断し、ＭＤＡ用ＦＢテーブル７１から使用すべき新しいブロックを参照し、例えばブロックアドレス“０，０ｘ０２１２”のフリーブロックを選択する。そして、選択したブロックアドレス“０，０ｘ０２１２”のフリーブロックをＭＤＡ用ＦＢテーブル７１から払い出し、Ｌ／Ｐテーブル６０のライトが発生した“０，０ｘ０１０１”のメモリブロックと入れ替える。その後、ブロックアドレス“０，０ｘ０１０１”のメモリブロックをＬ／Ｐテーブル６０から削除してＭＤＡ用ＦＢテーブル７１のキューの最後部に加えると共に、新たにデータを書き込んだ“０，０ｘ０２１２”のフリーブロックをＬ／Ｐテーブル６０の論理アドレス“０ｘ２８０１”と関連付ける。ＭＤＡ用ＦＢテーブル７１では、フリーブロックアドレスのキューの順位がひとつだけ繰り上がる。
【００６０】
以上の動作を、２値データのライト時に毎回実行する。
【００６１】
第２の実施形態によれば、２値用のＦＢテーブルと多値用のＦＢテーブルとを独立に構築し、ライト時にいずれのテーブルを参照したかを確認することにより、ブロックのセル用途の混在を防止することが可能となる。結果として、半導体記憶装置の信頼性を向上させることができる。
【００６２】
なお、上記した第１及び第２の実施形態に係るブロック管理は、ＮＡＮＤフラッシュメモリ２１の外部のメモリコントローラ２２の制御として説明したが、ＮＡＮＤフラッシュメモリ２１の内部の図示しないメモリコントローラの制御（ファームウエア）により実行することもできる。
【００６３】
図１０は、外部から与えられる２値データ記憶領域ＳＤＡのセットアップのタイミングチャートである。
【００６４】
ここで、ＣＬＥはコマンド・ラッチ・イネーブル、ＣＥはチップ・イネーブル、ＷＥはライト・イネーブル、ＡＬＥはアドレス・ラッチ・イネーブル、ＲＥはリード・イネーブル、ＲＹ／ＢＹはＲｅａｄｙ／Ｂｕｓｙの各制御信号を示している。コマンド入力のタイミングで、リードＳＤＡコマンド“００ｈ”を読み込み、続いてアドレス・ラッチの５サイクルで、セットＳＤＡコマンド“Ａ５ｈ”及びアロケーション・ユニット１ｓｔ，２ｎｄ，３ｒｄ，４ｔｈを順次入力する。アロケーション・ユニットは、例えば図１１に示すように、２値データ記憶領域ＳＤＡの境界位置を指定する。これにより、メモリコントローラ２２に、ＳＤＡとＭＤＡとの境界エリアが設定されるので、以後の論理アドレスと物理アドレスの変換処理は、設定された境界エリアに基づいて実行される。
【００６５】
なお、本発明は上述した実施形態に限定されるものではない。例えば、上記実施形態では、ＬＢＡ−ＮＡＮＤ型のメモリを例として説明しているが、ＮＡＮＤ型フラッシュメモリ単体における内部のメモリ管理として本発明を適用可能であることは言うまでもない。
【００６６】
また、本発明が適用されるメモリは、フラッシュメモリとしてＮＡＮＤ型を使用したものに限定されず、ＮＯＲ型他の形式のメモリを用いた場合にも同様のメモリ管理を行う場合に適用可能である。
【図面の簡単な説明】
【００６７】
【図１】この発明の一実施の形態によるＬＢＡ−ＮＡＮＤメモリシステム構成を示す図である。
【図２】同ＬＢＡ−ＮＡＮＤメモリのメモリセルアレイ構成を示す図である。
【図３】同ＬＢＡ−ＮＡＮＤメモリのデータ記憶領域を示す図である。
【図４】同ＬＢＡ−ＮＡＮＤメモリの各種データ記憶量の例を示す図である。
【図５】同ＬＢＡ−ＮＡＮＤメモリのメモリブロック構成と各領域への割り付けの一例を示す図である。
【図６】論理アドレス空間とＮＡＮＤブロックアドレスとの関係を概念的に示す図である。
【図７】論理アドレス空間とＮＡＮＤブロックアドレスとの関係の他の例を概念的に示す図である。
【図８】第１の実施形態に係るＬＢＡ−ＮＡＮＤメモリのブロック管理を概略的に示した図である。
【図９】第２の実施形態に係るＬＢＡ−ＮＡＮＤメモリのブロック管理を概略的に示した図である。
【図１０】同ＬＢＡ−ＮＡＮＤメモリの２値データ記憶領域ＳＤＡのセットアップ手順を示すタイミングチャートである。
【図１１】同ＬＢＡ−ＮＡＮＤメモリのデータ記憶領域設定例を示す図である。
【符号の説明】
【００６８】
１…メモリセルアレイ、２…ロウデコーダ、３…センスアンプ回路、２０…ＬＢＡ−ＮＡＮＤメモリ、２１…ＮＡＮＤフラッシュメモリ、２２…メモリコントローラ、２３…ＮＡＮＤフラッシュインタフェース、２４…ＭＰＵ、２５…ホストインタフェース、２６…バッファＲＡＭ、２７…ハードウエアシーケンサ。
【図１】
0004746598.tif 000002
【図２】
0004746598.tif 000003
【図３】
0004746598.tif 000004
【図４】
0004746598.tif 000005
【図５】
0004746598.tif 000006
【図６】
0004746598.tif 000007
【図７】
0004746598.tif 000008
【図８】
0004746598.tif 000009
【図９】
0004746598.tif 000010
【図１０】
0004746598.tif 000011
【図１１】
0004746598.tif 000012