(57)【要約】【課題】ブロック消去前のデータ引っ越し操作を必要としない書き込み制御が行われるようにした不揮発性メモリシステムを提供する。【解決手段】不揮発性メモリシステムは、データ記憶領域がブロックを消去単位として複数ブロックにより構成される不揮発性メモリと、前記不揮発性メモリの読み出し及び書き込みを制御するメモリコントローラと備え、前記不揮発性メモリは、データユニットがあるブロックの先頭アドレスからブロック容量の整数倍の記憶領域となるように書き込み制御される。【選択図】図４
2008112285.tif 000002
【特許請求の範囲】
【請求項１】
データ記憶領域がブロックを消去単位として複数ブロックにより構成される不揮発性メモリと、前記不揮発性メモリの読み出し及び書き込みを制御するメモリコントローラと備え、
前記不揮発性メモリは、データユニットがあるブロックの先頭アドレスからブロック容量の整数倍の記憶領域となるように書き込み制御される
ことを特徴とする不揮発性メモリシステム。
【請求項２】
前記データユニットの記憶領域として、実データが書き込まれた後のブロックの残り領域は、ダミーデータが書かれるか或いはアクセス禁止領域として設定される
ことを特徴とする請求項１記載の不揮発性メモリシステム。
【請求項３】
前記ダミーデータの書き込み或いはアクセス禁止領域の設定は、実データの書き込み終了後、前記不揮発性メモリシステムを使用するホストデバイスの指示により実行される
ことを特徴とする請求項２記載の不揮発性メモリシステム。
【請求項４】
前記ダミーデータの書き込み或いはアクセス禁止領域の設定は、実データの書き込み終了後、前記メモリコントローラにより自動的に実行される
ことを特徴とする請求項２記載の不揮発性メモリシステム。
【請求項５】
読み出し／書き込みのアクセス領域は、データ転送単位をセクタとして、コマンドと共にセクタカウント値と論理的セクタアドレス初期値を入力することにより設定される
ことを特徴とする請求項１記載の不揮発性メモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、不揮発性メモリとその読み出し／書き込みを制御するコントローラを備えた不揮発性メモリシステムに関する。
【背景技術】
【０００２】
電気的書き換え可能な不揮発性半導体メモリ（ＥＥＰＲＯＭ）の一つとして、ＮＡＮＤ型フラッシュメモリが知られている。ＮＡＮＤ型フラッシュメモリは、単位セル面積がＮＯＲ型に比べて小さく、大容量化が容易である。また、セル単位での読み出し／書き込み速度はＮＯＲ型に比べると遅いが、セルアレイとページバッファとの間で同時に読み出し／書き込みが行われるセル範囲（物理的ページ長）を大きくすることで、実質的に高速の読み出し／書き込みが可能である。
【０００３】
この様な特長を活かして、ＮＡＮＤ型フラッシュメモリは、ファイルメモリやメモリカードをはじめとする各種記録メディアとして使用されている。
【０００４】
ＮＡＮＤ型フラッシュメモリは、ワード線方向に並ぶ複数のＮＡＮＤセルユニット（ＮＡＮＤストリング）の集合として定義されるブロックをデータ消去単位とする。あるブロックのデータを書き換えたい場合には、そのブロックのデータを一括消去した後に、書き込みを行うことが必要である。
【０００５】
ところで書き換えたいデータファイル領域の先頭アドレスが、あるブロックの途中にあり、そのブロックには、消去すべきでない他のファイルデータが書かれている場合がある。このようなブロックを一括消去するには、消去しては困る他のファイルデータを、空いているスペアブロックに待避させるコピー書き込み動作が必要となる（例えば、特許文献１参照）。
【０００６】
しかし、この様なデータ引っ越しのコピー書き込み動作は、ページ単位でデータを読み出して他のブロックの書き込むという動作の繰り返しを必要とし、データ処理時間が長くなる。これは、ＮＡＮＤ型フラッシュメモリを使用するホストシステムのパフォーマンスを低下させる。
【特許文献１】特開２００６−０４０２６４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
この発明は、ブロック消去前のデータ引っ越し操作を必要としない書き込み制御が行われるようにした不揮発性メモリシステムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
この発明の一態様による不揮発性メモリシステムは、データ記憶領域がブロックを消去単位として複数ブロックにより構成される不揮発性メモリと、前記不揮発性メモリの読み出し及び書き込みを制御するメモリコントローラと備え、
前記不揮発性メモリは、データユニットがあるブロックの先頭アドレスからブロック容量の整数倍の記憶領域となるように書き込み制御される。
【発明の効果】
【０００９】
この発明によると、ブロック消去前のデータ引っ越し操作を必要としない書き込み制御が行われるようにした不揮発性メモリシステムを提供することができる。
【発明を実施するための最良の形態】
【００１０】
以下、図面を参照して、この発明の実施の形態を説明する。
【００１１】
図１は、実施の形態による不揮発性メモリシステム２０の構成を示す。このメモリシステム２０は、ＮＡＮＤ型フラッシュメモリチップ２１とその読み出し／書き込みを制御するメモリコントローラ２２によりモジュール（例えばメモリカード）を構成する。
【００１２】
フラッシュメモリチップ２１は、複数のメモリチップの場合もある。図１では二つのメモリチップｃｈｉｐ１，ｃｈｉｐ２を示しているが、その場合も一つのメモリコントローラ２２で制御される。ここで搭載される全てのフラッシュメモリは、論理アドレスにより一つの論理メモリとしてコントロールされる。
【００１３】
即ちホストデバイスは、フラッシュメモリをそのチップ内の物理ブロックアドレス（Ｐｈｙｓｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓ：ＰＢＡ）ベースによるアクセスではなく、論理ブロックアドレスＬＢＡ（Ｌｏｇｉｃ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓ：ＬＢＡ）によるアクセスを行う。従って以下、このメモリシステム２０をＬＢＡ−ＮＡＮＤメモリという。
【００１４】
メモリコントローラ２２は、フラッシュメモリチップ２１との間でデータ転送を行うためのＮＡＮＤフラッシュインタフェース２３、ホストデバイスとの間でデータ転送を行うためのホストインタフェース２５、読み出し／書き込みデータ等を一時保持するバッファＲＡＭ２６、データ転送制御を行うＭＰＵ２４、ＮＡＮＤ型フラッシュメモリ２１内のファームウェア（ＦＷ）の読み出し／書き込みのシーケンス制御等に用いられるハードウェアシーケンサ２７を有する１チップコントローラである。
【００１５】
メモリコントローラ２２にとって必要なファームウェア（ＦＷ）は、電源投入後自動的に実行される初期化動作（パワーオン・イニシャルセットアップ動作）において、フラッシュメモリ２１から自動的に読み出されて、データレジスタ（バッファＲＡＭ）２６に転送される。この読み出し制御は、ハードウェアシーケンサ２７により行われる。
【００１６】
なおメモリチップ２１とコントローラチップ２２とが別チップであることは、このＬＢＡ−ＮＡＮＤメモリシステムにとって本質的ではない。図２は、図１のＬＢＡ−ＮＡＮＤメモリ２０を、メモリチップ２１とコントローラ２２のロジックコントロールを渾然一体として見た機能ブロック構成を示している。また図３はそのメモリコア部のセルアレイ構成を示している。
【００１７】
メモリセルアレイ１は、図３に示すように、複数の電気的書き換え可能な複数の不揮発性メモリセル（図の例では３２個のメモリセル）Ｍ０−Ｍ３１が直列接続されたＮＡＮＤセルユニット（ＮＡＮＤストリング）ＮＵを配列して構成される。
【００１８】
ＮＡＮＤセルユニットＮＵの一端は、選択ゲートトランジスタＳ１を介してビット線ＢＬｏ，ＢＬｅに、他端は選択ゲートトランジスタＳ２を介して共通ソース線ＣＥＬＳＲＣに接続される。メモリセルＭ０−Ｍ３１の制御ゲートはそれぞれワード線ＷＬ０−ＷＬ３１に接続され、選択ゲートトランジスタＳ１，Ｓ２のゲートは選択ゲート線ＳＧＤ，ＳＧＳに接続される。
【００１９】
ワード線方向に配列されるＮＡＮＤセルユニットの集合が、データ消去の最小単位となるブロックを構成し、図示のようにビット線の方向に複数のブロックＢＬＫ０−ＢＬＫｎ−１が配置される。
【００２０】
ビット線ＢＬｅ，ＢＬｏの一端側に、セルデータの読み出し及び書き込みに供させるセンスアンプ回路３が配置され、ワード線の一端側にワード線及び選択ゲート線の選択駆動を行うロウデコーダ２が配置される。図では、隣接する偶数番ビット線ＢＬｅと奇数番ビット線ＢＬｏがビット線選択回路により選択的にセンスアンプ回路３の各センスアンプＳＡに接続される場合を示している。
【００２１】
コマンド、アドレス及びデータは、入力制御回路１３を介して入力され、チップイネーブル信号／ＣＥ、書き込みイネーブル信号／ＷＥ、読み出しイネーブル信号／ＲＥその他の外部制御信号は、論理回路１４に入力され、タイミング制御に用いられる。コマンドは、コマンドレジスタ８でデコードされる。
【００２２】
制御回路６は、データの転送制御及び書き込み／消去／読み出しのシーケンス制御を行う。ステータスレジスタ１１は、Ｒｅａｄｙ／Ｂｕｓｙ端子にＬＢＡ−ＮＡＮＤメモリ２０のＲｅａｄｙ／Ｂｕｓｙ状態を出力する。これとは別に、メモリ２０の状態（Ｐａｓｓ／Ｆａｉｌ，Ｒｅａｄｙ／Ｂｕｓｙ等）をＩ／Ｏポートを介してホストに知らせるステータスレジスタ１２が用意されている。
【００２３】
アドレスは、アドレスレジスタ５を介して、ロウデコーダ（プリロウデコーダ２ａとメインロウデコーダ２ｂ）２やカラムデコーダ４に転送される。書き込みデータは、Ｉ／Ｏ制御回路７を介し、コントロール回路６を介してセンスアンプ回路３（センスアンプ３ａとデータレジスタ３ｂ）にロードされ、読み出しデータはコントロール回路６及び／Ｏ制御回路７を介して、外部に出力される。
【００２４】
各動作モードに応じて必要とされる高電圧を発生するために、高電圧発生回路１０が設けられている。高電圧発生回路１０は、制御回路６から与えられる指令に基づいて所定の高電圧を発生する。
【００２５】
この様なＬＢＡ−ＮＡＮＤフラッシュメモリシステムにおいて、この実施の形態では、書かれるデータユニットの記憶領域が常に、あるブロックの先頭アドレスから始まってブロックサイズＤの整数倍になるように制御される。この点を次に具体的に説明する。
【００２６】
図４は、この実施の形態によるフラッシュメモリのデータ書き込み状況を示している。ファイルデータＡは、例えばフラッシュメモリのブロックＢＬＫ０の先頭アドレスからブロックＢＬＫｉ−１の途中までに実データＡ１が書かれる。ブロックＢＬＫｉ−１の残りの領域（端数ページ）にはダミーデータＡ２が埋め込まれる。
【００２７】
これにより、次のファイルデータＢは、ブロックＢＬＫｉの先頭アドレスから書き込まれ、例えばブロックＢＬＫｊの途中まで実データＢ１が書かれる。ブロックＢＬＫｊの残りの領域はやはりダミーデータＢ２で埋められる。
【００２８】
この様にして、各データユニットが常にブロックの先頭アドレスから書き込み開始され、実データに付加されるダミーデータを含めてブロック容量の整数倍の領域を占有させる。この様な書き込み制御を行えば、一つのブロックに異なるファイルが共存することはなくなる。従って不要なファイルデータを消去する場合に、消去したくない他のファイルデータを待避させるためのコピー書き込み動作を必要とせず、一括ブロック消去ができるので、ホストデバイスの高速性能を損なうことがない。
【００２９】
なお、１つのデータユニット内の実データが、後述するようにセクタアドレス初期値，セクタカウント数を用いた１つの書き込みシーケンスにより書き込まれるデータである。
【００３０】
ダミーデータＡ２，Ｂ２の領域は、格別のダミーデータ書き込みをせずに、例えば空き状態のまま書き込み禁止領域として設定することも有効である。また、ダミーデータ書き込み或いは書き込み禁止領域の設定は、ホストデバイスの指示により行うようにしてもよいし、或いはフラッシュメモリシステム２０内のメモリコントローラ２２がホストから送られた実データの書き込み終了後に引き続き自動的に実行するようにしてもよい。
【００３１】
この実施の形態のＬＢＡ−ＮＡＮＤメモリは、データ読み出し／書き込みの転送単位は、セクタ（例えば５１２Ｂｙｔｅ）であり、データ転送フォーマットは、例えばＳＳＦＤＣ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｆｌｏｐｐｙ  Ｄｉｓｋ  Ｃａｒｄ）フォーマットとする。セクタカウントを使用することで、１回のコマンドで複数セクタの連続的なデータ読み出し／書き込みができる。
【００３２】
例えば、Ｎセクタのデータを書き込む場合、ホストは、書き込みコマンドに続いて、セクタカウント数即ち、第１セクタカウント値（１Ｂｙｔｅ）と第２セクタカウント値（１Ｂｙｔｅ）、続いて論理的セクタアドレス初期値（３Ｂｙｔｅ）を入力し、さらにＮセクタの書き込みデータを入力して、書き込み開始コマンドを入力する。これにより、メモリコントローラにより、Ｎセクタのデータの連続的な書き込みが行われる。
【００３３】
この書き込み方式では、ホストはフラッシュメモリの物理アドレスを管理していない。従って、前述のようにデータファイルを常にフラッシュメモリのブロックの先頭アドレスから書き込むためには、ホストはフラッシュメモリの空き領域のブロック先頭アドレスを取得する操作を必要とする。
【００３４】
図５は、この実施の形態でのメモリコントローラ２２による書き込みシーケンスの概要を示している。通常の書き込みシーケンスに先立って、ホストからの指示により書き込み開始アドレスをサーチする前処理を行う（ステップＳ１）。例えば、この書き込み開始アドレス取得のためのホストのコマンドシーケンスは、図６のように、通常読み出し時の場合と同様に、ＣＭＤ（１Ｂｙｔｅ）／第１セクタカウント（１Ｂｙｔｅ）／第２セクタカウント（１Ｂｙｔｅ）／セクタアドレス（３Ｂｙｔｅ）／ＣＭＤ（１Ｂｙｔｅ）という基本的なコマンド構造を踏襲する。
【００３５】
即ち書き込みコマンドＣＭＤ１につづいて、通常第１及び第２のセクタカウント値が入力されるべき処に、特殊コマンドＣＭＤ２（１Ｂｙｔｅ）及びダミーデータ（１Ｂｙｔｅ）を入力し、書き込みセクタアドレス（３Ｂｙｔｅ）を入力した後、実行コマンドＣＭＤ３（１Ｂｙｔｅ）を入力する。
【００３６】
以上の特殊コマンドＣＭＤ２と実行コマンドＣＭＤ３を受けて、ＬＢＡ−ＮＡＮＤメモリのコントローラ２２は、入力された論理的セクタアドレス（初期値）対応の物理的な書き込み開始アドレスを検知する。ホストは確認のため、入力したセクタアドレス対応のこの書き込み開始アドレスを「アドレス返り値」として取得する。
【００３７】
図６には、書き込み開始アドレス取得コマンドの２つの具体例ＥＸ．１及びＥＸ．２を例示した。
【００３８】
この書き込み開始アドレス取得の前処理に続いて、ホストは、図７に示すように、付随コマンドとして、書き込みデータユニットの終了アドレスをメモリに通知するコマンドを実行する。メモリコントローラ２２はこれを受信して（ステップＳ２）、データ書き込みを行う（ステップＳ３）。
【００３９】
このときホストによる特殊書き込みコマンドシーケンスは、例えば図８のようになる。前処理コマンドの実行で既にフラッシュメモリは、書き込み開始アドレスを知っているので、改めてセクタアドレスを指定した書き込みコマンドを発行する必要はない。即ち、特殊書き込み用コマンド＜８２ｈ＞に続いて、第１セクタカウント（Ｌ側のセクタカウント）ＳＣ−Ｌと第２セクタカウント（Ｈ側のセクタカウント）ＳＣ−Ｈを入力し、セクタアドレスは既に送られているので、代わりにダミーデータを入力し、以下書き込みデータを順次入力する。必要な量の書き込みデータを入力した後、書き込み開始コマンド＜１０ｈ＞を送ることにより、ＬＢＡ−ＮＡＮＤメモリは、指定された論理的セクタアドレスに合う、ブロックの先頭アドレスからのＮセクタの書き込みを行う。
【００４０】
なお図７では、書き込みデータ転送前に終了アドレス通知を行う場合を示しているが、図８ではこの終了アドレス通知を書き込みデータ転送に引き続いて行う例を示している。
【００４１】
書き込み後、通知されている終了アドレスがブロックの末尾アドレスであるか否かを判断し（ステップＳ４）、ＹＥＳであれば、そのまま書き込みシーケンスを終了し、ＮＯの場合には書き込み領域の最終ブロックの残り領域（端数ページ）にダミーデータを書き込む（ステップＳ５）。
【００４２】
具体的にホストは、ステップＳ４のＮＯの判断を受けて、端数ページ相当のデータ量を算出し、それにより決まるセクタカウントとセクタアドレス（終了アドレス＋１）及びダミーデータを入力して、通常のセクタ書き込みと同様にダミーデータ書き込みを行う。具体的にメモリコントローラ２は、通知されている終了アドレス＋１対応の物理アドレスを書き込み開始アドレスとして、ブロックの端数ページにダミーデータ書き込みを行う（ステップＳ５）。
【００４３】
これにより、ＬＢＡ−ＮＡＮＤメモリは、次の空き領域が常にブロックの先頭アドレスになる。
【００４４】
なお端数ページの領域は、前述のように格別のダミーデータ書き込みをせずに、空き状態のまま書き込み禁止領域として設定してもよいし、ダミーデータ書き込み或いは書き込み禁止領域の設定は、ホストデバイスの指示によらず、フラッシュメモリシステム２０内のメモリコントローラ２２が自動的に実行するようにしてもよい。
【００４５】
上記実施の形態では、図４に示したように、ブロックの先頭アドレスから実データＡ１，Ｂ１を書き込み、ブロックの端数ページにダミーデータＡ２，Ｂ２を書き込むようにした。これに対して、図９に示すように、ブロックの先頭にダミーデータＡ２，Ｂ２を書き込み、これらに続いて実データＡ１，Ｂ１を書き込むことにより、それぞれのファイルデータＡ，ＢがブロックサイズＤの整数倍の領域を占めるようにすることもできる。
【００４６】
この図９の方式を実現するためには、例えばホストが、ブロックサイズＤを知りかつ、書き込むべき実データがブロックを占有すべき状態と、端数ページを埋めるべきダミーデータ量とを予め算出予測する。その上で、先の実施の形態と同様、基本的に図８の書き込みコマンドシーケンスでブロックの先頭アドレスからの書き込みを行う。この場合、図８の書き込みデータとして、ダミーデータと実データがこの順に転送されるようにすればよい。ブロックの先頭アドレスを取得する前処理を必要とすることは、先の実施の形態と同様である。図７或いは図８の終了アドレス通知は不要となる。
【図面の簡単な説明】
【００４７】
【図１】実施の形態による不揮発性メモリシステムの構成を示す図である。
【図２】同システムの機能ブロック構成を示す図である。
【図３】同システムのメモリセルアレイ構成を示す図である。
【図４】同システムのデータ書き込み状況を示す図である。
【図５】同システムの書き込みシーケンスを示す図である。
【図６】書き込みの前処理の書き込み開始アドレス取得コマンドシーケンスを示す図である。
【図７】書き込み終了アドレス通知コマンドシーケンスを示す図である。
【図８】特殊書き込みコマンドシーケンスを示す図である。
【図９】他の実施の形態によるデータ書き込み状態を示す図である。
【符号の説明】
【００４８】
２０…不揮発性メモリシステム、２１…フラッシュメモリ、２２…メモリコントローラ、２３，２５…インタフェース、２４…ＭＰＵ、２６…バッファＲＡＭ、２７…ハードウェアシーケンサ。
【図１】
2008112285.tif 000003
【図２】
2008112285.tif 000004
【図３】
2008112285.tif 000005
【図４】
2008112285.tif 000006
【図５】
2008112285.tif 000007
【図６】
2008112285.tif 000008
【図７】
2008112285.tif 000009
【図８】
2008112285.tif 000010
【図９】
2008112285.tif 000011