(57)【要約】【課題】アクセス時ごとに要求される信頼性を満たしつつ、その範囲内で実現できる最高の性能を出すことを可能とする不揮発性半導体記憶装置およびメモリシステムを提供する。【解決手段】コントローラ３は、一方の入出力部（フラッシュ制御部）３１が不揮発性メモリユニット２に接続され、他方の入出力部３２がホストインタフェースを介してホスト装置４に接続されている。コントローラ３は、アクセスの信頼性と性能との複数通りのトレードオフ事項の中から所望のトレードオフ事項を選択し、選択したトレードオフ事項に応じたアクセス制御を行う。コントローラ３は、選択できるトレードオフ事項として、たとえばデータの書き込み時の管理情報格納頻度を採用し、選択した管理情報格納頻度に応じたアクセス制御を行う。【選択図】図１
2007249469.tif 000002
【特許請求の範囲】
【請求項１】
電気的に書き換え可能な不揮発性メモリと、
上記不揮発性メモリのアクセスに関する情報に基づいて当該不揮発性メモリのアクセスを制御するコントローラと、を有し、
上記コントローラは、アクセスの信頼性と性能との複数通りのトレードオフ事項の中から所望のトレードオフ事項を選択し、選択したトレードオフ事項に応じたアクセス制御を行う
不揮発性半導体記憶装置。
【請求項２】
上記コントローラは、選択できる上記トレードオフ事項として、データの書き込み時の管理情報格納頻度を採用し、選択した管理情報格納頻度に応じたアクセス制御を行う
請求項１記載の不揮発性半導体記憶装置。
【請求項３】
上記コントローラは、選択できるトレードオフ事項として、データの読み出し時にエラー訂正処理を活用する度合いを採用し、選択したエラー訂正の度合いに応じたアクセス制御を行う
請求項１記載の不揮発性半導体記憶装置。
【請求項４】
上記アクセスに関する情報は、ホスト側で発行されるデータの書き込みまたは読み出しのコマンドと当該コマンドに付加されたフラグ情報を含み、当該フラグ情報は複数のトレードオフ事項に対応して設定されており、
上記コントローラは、上記フラグ情報に基づいてアクセス制御を行う
請求項１記載の不揮発性半導体記憶装置。
【請求項５】
上記アクセスに関する情報は、ホスト側で発行されるデータの書き込みまたは読み出しのコマンドより前に発行される別コマンドと当該別コマンドに付加されたフラグ情報を含み、当該フラグ情報は複数のトレードオフ事項に対応して設定されており、
上記コントローラは、上記フラグ情報に基づいてアクセス制御を行う
請求項１記載の不揮発性半導体記憶装置。
【請求項６】
上記アクセスに関する情報は、データと当該データに付加されたフラグ情報を含み、当該フラグ情報は複数のトレードオフ事項に対応して設定されており、
上記コントローラは、上記フラグ情報に基づいてアクセス制御を行う
請求項１記載の不揮発性半導体記憶装置。
【請求項７】
上記コントローラは、データ形式を解析し、解析結果に応じて所定のトレードオフ事項を選択し、選択したトレードオフ事項に応じてアクセス制御を行う
請求項１記載の不揮発性半導体記憶装置。
【請求項８】
電気的に書き換え可能な不揮発性メモリと、
上記不揮発性メモリのアクセスに関する情報に基づいて当該不揮発性メモリのアクセスを制御するコントローラと、
上記コントローラに所定のコマンドを発行して上記不揮発性メモリのアクセスを行うホスト装置と、を有し、
上記コントローラは、アクセスの信頼性と性能との複数通りのトレードオフ事項の中から所望のトレードオフ事項を選択し、選択したトレードオフ事項に応じたアクセス制御を行う
メモリシステム。
【請求項９】
上記コントローラは、選択できる上記トレードオフ事項として、データの書き込み時の管理情報格納頻度を採用し、選択した管理情報格納頻度に応じたアクセス制御を行う
請求項８記載のメモリシステム。
【請求項１０】
上記コントローラは、選択できるトレードオフ事項として、データの読み出し時にエラー訂正処理を活用する度合いを採用し、選択したエラー訂正の度合いに応じたアクセス制御を行う
請求項８記載のメモリシステム。
【請求項１１】
上記アクセスに関する情報は、上記ホスト装置で発行されるデータの書き込みまたは読み出しのコマンドと当該コマンドに付加されたフラグ情報を含み、当該フラグ情報は複数のトレードオフ事項に対応して設定されており、
上記コントローラは、上記フラグ情報に基づいてアクセス制御を行う
請求項８記載のメモリシステム。
【請求項１２】
上記アクセスに関する情報は、上記ホスト装置で発行されるデータの書き込みまたは読み出しのコマンドより前に発行される別コマンドと当該別コマンドに付加されたフラグ情報を含み、当該フラグ情報は複数のトレードオフ事項に対応して設定されており、
上記コントローラは、上記フラグ情報に基づいてアクセス制御を行う
請求項８記載のメモリシステム。
【請求項１３】
上記アクセスに関する情報は、データと当該データに付加されたフラグ情報を含み、当該フラグ情報は複数のトレードオフ事項に対応して設定されており、
上記コントローラは、上記フラグ情報に基づいてアクセス制御を行う
請求項８記載のメモリシステム。
【請求項１４】
上記コントローラは、データ形式を解析し、解析結果に応じて所定のトレードオフ事項を選択し、選択したトレードオフ事項に応じてアクセス制御を行う
請求項８記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フラッシュメモリ等の不揮発性半導体記憶装置およびメモリシステムに関するものである。
【背景技術】
【０００２】
管理情報をユーザデータとは別に不揮発性メモリ上に格納するストレージシステムにおいて、管理情報の格納頻度は電源遮断等に対するシステムの信頼性に影響を与える。
一方で、管理情報の格納はライト（書き込みという場合もある）時の処理においてオーバーヘッドとなるため、ライト時の性能にも影響を与える。
つまり、システムの信頼性とライト時の性能はトレードオフの関係にあるといえる。
【０００３】
通常、一つの不揮発性メモリストレージシステムにおいては、そのシステムで採用する管理方法によって常に同じ方法で管理情報の格納が行われる。そのシステムでは常に、ある信頼性を満たすために制限された性能で書き込みを行うことになる。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、信頼性と性能のトレードオフを固定とすることで問題が生じることがある。信頼性重視とした手法を採った場合には、電源が確保されている場合など安全な状況においても無駄に手厚く管理情報を格納することになり、本来発揮できるはずの性能を発揮することができない。
一方、性能重視の手法を採った場合には、ある特定の状況では電源遮断の可能性があるといったことに対応できず、要求される信頼性を満たせないということにもなり得る。
【０００５】
ところで、不揮発性メモリストレージシステムにおいて、不揮発性メモリの不良からのユーザデータのリカバリのためにエラー訂正（ＥＣＣ）機能が用いられる。
あるデータのまとまりに対して１ビットあるいは複数ビットの誤りを訂正可能とするために、データのライト時に特別なコードが付加され、リード（読み出しという場合もある）時にそのコードをチェックすることによって読み出したデータが正しいかどうかのチェックおよび誤りがあった場合の訂正を行う。
【０００６】
しかし、ＥＣＣの処理、特に読み出したデータに誤りがあったときの訂正については多くの時間を要し、パフォーマンス低下の要因となることがある。
通常、一つの不揮発性メモリストレージシステムにおいては、ユーザデータに対するＥＣＣ処理は常に同じ方法が使用され、使用する不揮発性メモリに応じて十分な訂正能力を持つＥＣＣを常に使用することになる。
しかし、ユーザデータの中にはビットレベルの信頼性より読み書きのスピードを重視するものもあり、そのようなデータを扱う際にはパフォーマンスの低下を避けるためにＥＣＣ処理を行わない方が望ましいという場合もある。
【０００７】
本発明は、アクセス時ごとに要求される信頼性を満たしつつ、その範囲内で実現できる最高の性能を出すことを可能とする不揮発性半導体記憶装置およびメモリシステムを提供することにある。
【課題を解決するための手段】
【０００８】
本発明の第１の観点の不揮発性半導体記憶装置は、電気的に書き換え可能な不揮発性メモリと、上記不揮発性メモリのアクセスに関する情報に基づいて当該不揮発性メモリのアクセスを制御するコントローラと、を有し、上記コントローラは、上記アクセスに関する情報に基づいて、アクセスの信頼性と性能との複数通りのトレードオフ事項の中から所望のトレードオフ事項を選択し、選択したトレードオフ事項に応じたアクセス制御を行う。
【０００９】
好適には、上記コントローラは、選択できる上記トレードオフ事項として、データの書き込み時の管理情報格納頻度を採用し、選択した管理情報格納頻度に応じたアクセス制御を行う。
【００１０】
好適には、上記コントローラは、選択できるトレードオフ事項として、データの読み出し時にエラー訂正処理を活用する度合いを採用し、選択したエラー訂正の度合いに応じたアクセス制御を行う。
【００１１】
好適には、上記アクセスに関する情報は、ホスト側で発行されるデータの書き込みまたは読み出しのコマンドと当該コマンドに付加されたフラグ情報を含み、当該フラグ情報は複数のトレードオフ事項に対応して設定されており、上記コントローラは、上記フラグ情報に基づいてアクセス制御を行う。
【００１２】
好適には、上記アクセスに関する情報は、ホスト側で発行されるデータの書き込みまたは読み出しのコマンドより前に発行される別コマンドと当該別コマンドに付加されたフラグ情報を含み、当該フラグ情報は複数のトレードオフ事項に対応して設定されており、上記コントローラは、上記フラグ情報に基づいてアクセス制御を行う。
【００１３】
好適には、上記アクセスに関する情報は、データと当該データに付加されたフラグ情報を含み、当該フラグ情報は複数のトレードオフ事項に対応して設定されており、上記コントローラは、上記フラグ情報に基づいてアクセス制御を行う。
【００１４】
好適には、上記コントローラは、データ形式を解析し、解析結果に応じて所定のトレードオフ事項を選択し、選択したトレードオフ事項に応じてアクセス制御を行う。
【００１５】
本発明の第２の観点のメモリシステムは、電気的に書き換え可能な不揮発性メモリと、上記不揮発性メモリのアクセスに関する情報に基づいて当該不揮発性メモリのアクセスを制御するコントローラと、上記コントローラに所定のコマンドを発行して上記不揮発性メモリのアクセスを行うホスト装置と、を有し、上記コントローラは、上記アクセスに関する情報に基づいて、アクセスの信頼性と性能との複数通りのトレードオフ事項の中から所望のトレードオフ事項を選択し、選択したトレードオフ事項に応じたアクセス制御を行う。
【発明の効果】
【００１６】
本発明によれば、アクセス時ごとに要求される信頼性を満たしつつ、その範囲内で実現できる最高の性能を出すことが可能となるという利点がある。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の実施形態を図面に関連付けて説明する。
【００１８】
図１は、本発明の第１の実施形態に係る不揮発性半導体記憶装置を採用したメモリシステムの構成例を示す図である。
【００１９】
本システム１は、一つ以上（本実施形態では一つ）の不揮発性メモリユニット２、コントローラ３、およびホスト装置としてのＣＰＵを含むホスト装置４により形成されている。
【００２０】
不揮発性メモリユニット２は、一つ以上の不揮発性メモリバンク２１を有する。図１の例では、不揮発性メモリユニット２は、４つのメモリバンク２１−０〜２１−３を有している。
不揮発性メモリユニット２は、たとえばＮＡＮＤ型フラッシュメモリにより構成されている。
【００２１】
コントローラ３は、一方の入出力部（フラッシュ制御部）３１が不揮発性メモリユニット２に接続され、他方の入出力部３２がホストインタフェースを介してホスト装置４に接続されている。
コントローラ３は、アクセスの信頼性と性能との複数通りのトレードオフ事項の中から所望のトレードオフ事項を選択し、選択したトレードオフ事項に応じたアクセス制御を行う。
図１の例において、コントローラ３は、選択できるトレードオフ事項として、データの書き込み時の管理情報格納頻度を採用し、選択した管理情報格納頻度に応じたアクセス制御を行う。
コントローラ３は、揮発性のＲＡＭ３３を内蔵しており、管理情報ＭＮＧＩＮＦまたはその一部をＲＡＭ３３上に持つ。
【００２２】
図２は、管理情報の不揮発性メモリ上の構成およびＲＡＭ上の管理情報との関係の例を示す図である。
【００２３】
管理情報ＭＮＧＩＮＦとは、たとえば論理アドレスから物理アドレスに変換するための論物変換テーブルや不揮発性メモリのブロック/ページの使用状況、コマンドの現在の実行状況などステータス情報等であり、不揮発性メモリバンク21（-0〜3）の１ページにまとめられるものとする。
ＲＡＭ３３上の管理情報を不揮発性メモリの管理情報ブロック２１１，２１２（ＢＬＫ−Ａ、ＢＬＫ−Ｂ）に書き込むことによって、その時点でのデータの管理状況が電源を切っても保証されることになる。
【００２４】
運用形態の例としては、管理情報ＭＮＧＩＮＦは、たとえば不揮発性メモリバンク２１−０上で２ブロックを占有し、運用される。
管理情報ＭＮＧＩＮＦは、それまで最新の管理情報があったブロックの、次のページに追記する形で書き込まれる。そのブロックの最終ページまで埋まった場合には、もう一方のブロックを消去して先頭から書き込んでいく。これにより、最新の管理情報は、途中のページまで書き込まれた管理情報ブロックの、書き込みがある最終ページを探すことによって得ることができる。
【００２５】
次に、本実施形態におけるユーザデータと管理情報の格納の様子を図３〜図６に関連付けて説明する。
【００２６】
図３は、本実施形態におけるユーザデータと管理情報の格納の様子の第１例を示す図である。
図３は、最も頻繁に管理情報の格納を行う場合のユーザデータと管理情報の格納の様子を示している。
ホストからライトコマンド受信した後、ユーザデータのライト処理を不揮発性メモリバンク２２の最小書き込み単位であるページごとのライト処理に分割し、その前後で必ず管理情報の格納が入るように構成する。
具体的には、管理情報ライトとページライトが繰り返される。
これにより、ページごとに不揮発性メモリ上の管理情報が更新され、いつ電源が落とされてもほぼ正確な管理情報を得ることができる。
【００２７】
図４は、本実施形態におけるユーザデータと管理情報の格納の様子の第２例を示す図である。
この第２例においては、ユーザデータのあるまとまり、ここではブロックのライトごとに管理情報を格納する。
ホストからライトコマンド受信した後、管理情報を書き込み、以後、ブロックライトと管理情報ライトが繰り返される。
この場合、途中で電源を落とされると管理情報は書き込み途中のブロックについて不正確な情報を持つことになるが、ユーザデータのライトをブロックごとにまとめて行うことができるため、ページごとに管理情報を格納する場合に比べてライト性能は向上する。
【００２８】
図５は、本実施形態におけるユーザデータと管理情報の格納の様子の第３例を示す図である。
この第３例においては、ライトコマンドの開始時と終了時にのみ管理情報を格納する。
この場合、ライトコマンドの実行中に電源が落とされると、管理情報はそのライトコマンドで書き込まれたブロックについて不正確な情報を持つことになるが、コマンドの完了時には正確な情報を持つことになる。この方法では、ブロックごとに管理情報を格納する場合に比べてさらにライト性能を向上することができる。
【００２９】
図６は、本実施形態におけるユーザデータと管理情報の格納の様子の第４例を示す図である。
この第４例においては、ライトコマンドの実行中には管理情報を格納しない。
この方法では、システム終了時やいくつかのライトコマンドにつき一回など、別の要因をトリガとして管理情報を格納する必要がある。
ライトコマンドが完了した後でも不揮発性メモリ上の管理情報が不正確な場合があるので、電源を切断する前にしかるべき処理を施す必要があるが、管理情報の格納によってユーザデータの格納が邪魔されないために、ライト性能はこれまで挙げた中では最高になる。
【００３０】
図７、図８、図９、および図１０は、図３、図４、図５、および図６においてＲＡＭ３３上の管理情報の更新タイミングおよび、不揮発性メモリ上に書き込まれたデータとＲＡＭ上の管理情報の不整合状態、ＲＡＭ上の管理情報と不揮発性メモリ上の管理情報の不整合状態を示したものである。
データを不揮発性メモリに書き込んでからＲＡＭ上の管理情報を更新するまでが、図中に白抜き矢印で示した不揮発性メモリ上に書き込まれたデータとＲＡＭ上の管理情報に不整合がある期間となる。
ＲＡＭ上の管理情報を更新してからその管理情報を不揮発性メモリ上に書き込むまでが、図中に黒矢印で示したＲＡＭ上の管理情報と不揮発性メモリ上の管理情報に不整合がある期間となる。
不揮発性メモリに書き込まれたデータとＲＡＭ上の管理情報、ＲＡＭ上の管理情報と不揮発性メモリ上の管理情報の双方が整合の取れた状態であれば、電源遮断が起こっても問題のない状態と言える。
また、不整合が発生している状態で電源遮断が起こった場合には、一番最近に不整合がなくなった時点以降に書き込まれたデータは保証されないことになる。
【００３１】
図１１は、トレードオフ事項の選択をコマンド内のパラメータによって行う場合の、ライトコマンドの例を示す図である。
【００３２】
ホスト装置４から送られる情報１００Ｗは、図１１に示すように、コマンド部１１０Ｗとデータ部１２０Ｗに大きく分けられる。
コマンド部１１０Ｗにはライトであることを示すコマンドコード１１１Ｗ、管理情報書き込み頻度のレベルを表すフラグ（flag）フィールド１１２Ｗ、データを書き込む先の先頭位置を論理アドレスで指定する開始ＬＢＡ１１３Ｗ、書き込むデータのサイズを指定するＬＢＡ数１１４Ｗといった要素を含む。
データ部１２０Ｗには、実際に不揮発性メモリ上にユーザデータとして書き込むデータが入る。
【００３３】
ライト時、コマンドコード１１１Ｗはライトであることを示す。
フラグフィールド１１２Ｗは、たとえば２ビットにより形成され、ライトコマンド時、フラグが「００」の場合、ページごとに管理情報を格納することを示す（図３の処理に対応）。
フラグが「０１」の場合、ブロックごとに管理情報を格納することを示す（図４の処理に対応）。
フラグが「１０」の場合、コマンドの先頭と最後に管理情報を格納することを示す（図５の処理に対応）。
フラグが「１１」の場合、コマンド中は管理情報を格納しないことを示す。
また、開始ＬＢＡ１１３Ｗは、書き込みを行う開始位置の論理アドレスを示す。ＬＢＡ数１１４Ｗは、書き込みを行う範囲を示す。
データ部１２０Ｗの書き込みを行うデータＤＴは、コマンド部１１０ＷのＬＢＡ数１１４Ｗに応じた長さとなる
【００３４】
図１２は、ホスト装置がライトコマンドを発行する際に、電源の安定状況および必要とされる信頼性に応じて異なる管理情報格納方法を選択する処理を説明するためのフローチャートである。
ここで用いるコマンド名は図１１のコマンド名“WRITE”に加えてflagビットを後ろにつけた形とする。
コマンド終了後も含めて安定した電源の供給が確保されている場合には、コマンドごとに管理情報を格納する必要はないので管理情報格納なしのライトコマンド“WRITE(11)”を発行する（ＳＴ１０１，ＳＴ１０２，ＳＴ１０３）。
コマンド終了後は不明であるがコマンドが完了するまでは電源が確保されている場合には、コマンド前後での管理情報格納を行うライトコマンド“WRITE(10)”を発行する（ＳＴ１０１，ＳＴ１０４，ＳＴ１０５，ＳＴ１０６）。
コマンド実行中でも電源遮断の可能性がある場合で、性能低下に関わらずできるだけ高い信頼性が要求される場合はページごとに管理情報格納を行うライトコマンド“WRITE(00)”を発行する（ＳＴ１０１，ＳＴ１０４，ＳＴ１０７，ＳＴ１０８，ＳＴ１０９）。
コマンド実行中でも電源遮断の可能性があるが性能も要求される場合は、ブロックごとに管理情報格納を行うライトコマンド“WRITE(01)”を発行する（ＳＴ１０１，ＳＴ１０４，ＳＴ１０７、ＳＴ１１０，ＳＴ１１１）。
【００３５】
図１３は、本発明の第２の実施形態に係る不揮発性半導体記憶装置を採用したメモリシステムの構成例を示す図である。
【００３６】
本第２の実施形態のシステム１Ａが第１の実施形態のシステム１と異なる点は、コントローラ３ＡがＲＡＭの代わりに、バッファ３４とＥＣＣ回路３５とを有し、リード時はバッファ３４に読み込んだデータに対してＥＣＣ回路３５によるエラー判定およびエラー訂正を行ってからデータをホスト装置４に出力するようにしたことにある。
【００３７】
図１４は、リード時に必要な処理とその時間について、信頼性とのトレードオフについて説明するための図である。
エラーのないデータを得るためには、不揮発性メモリからのデータリードに加えてＥＣＣのリード、ＥＣＣによるエラー有無の判定を行い、エラーがあった場合にはＥＣＣによるエラー訂正を行う必要がある。
リードデータについてエラーの有無がわかればよいという場合には、データリードに加えてＥＣＣのリードとＥＣＣによるエラー有無の判定まで行えば、エラーがあるかもしれないデータとそのデータに対するエラーの有無を得ることができる。
リードデータについて、エラーが混入していても良く、エラーの有無がわからなくてもよいという場合には、データリードのみ行えばよい。この場合はＥＣＣ回路３５自体を動かす必要がないため、コントローラの消費電力を削減できるという利点もある。
【００３８】
図1５は、トレードオフ事項の選択をコマンド内のパラメータで行う場合のリードコマンドの例を示す図である。
図１６（Ａ），（Ｂ），（Ｃ）は、各パラメータでリードコマンドが発行された場合にデバイスからホストへ送出するデータの例を示す。
【００３９】
図１５のホストから送られる情報１００Ｒはコマンド部１１０Ｒのみである。
コマンド部１１０Ｒは、リードであることを示すコマンドコード１１１Ｒ、エラー訂正/エラーチェックの処理レベルを示すフラグ（flag）フィールド１１２Ｒ、データを読み出す先頭位置を論理アドレスで指定する開始ＬＢＡ１１３Ｒ、読み出すデータのサイズを指定するＬＢＡ数１１４Ｒといった要素を含む。
【００４０】
リード時、コマンドコード１１１Ｒはリードであることを示す。
フラグフィールド１１２Ｒは、たとえば２ビットにより形成され、リードコマンド時、フラグが「００」の場合、ＥＣＣ処理を行わずデータのみを出力することを示す。
フラグが「０１」の場合、データに加えてエラーの有無を出力することを示す。
フラグが「１０」の場合、必要に応じてエラー訂正を行うことを示す。
本例では、フラグ「１１」は未使用である。
また、開始ＬＢＡ１１３Ｒは、読み出しを行う開始位置の論理アドレスを示す。ＬＢＡ数１１４Ｒは、読み出しを行う範囲を示す。
【００４１】
ライトコマンドのデータ部に対応するリードコマンドのデータ部１２０Ｒは、図１６（Ａ）〜（Ｃ）に示されるように、デバイスからホスト装置４へ送出されるデータになる。
図１６（Ａ）はflag=00でＥＣＣに関する処理を行わない場合の読み出しデータであり、エラーを含むかもしれないデータだけがホスト装置４に送られる。
図１６（Ｂ）はflag=01でエラー有無の判定まで行った場合の読み出しデータであり、エラーを含むかもしれないデータと、そのデータにエラーが含まれるかどうかの情報がホスト装置４に送られる。
図１６（Ｃ）はflag=10でエラー訂正まで行った場合の読み出しデータであり、エラー訂正を行ってエラーがなくなったデータがホスト装置４に送られる。
【００４２】
図１７は、デバイス（コントローラ）からホスト装置に出力されるデータを生成するためのデータパスの構成例を示す図である。
コントローラ３Ａは、バッファ３４、ＥＣＣ（エラー訂正回路）３５、エラー判定回路３６、結合回路３７、マルチプレクサ３８，３９を有している。
【００４３】
バッファ３４には、不揮発性メモリユニット２から読み出されたデータが保持される。この読み出しデータにはＥＣＣ情報が付加されている。
ＥＣＣ回路３５は、バッファ３４に保持されたデータおよびＥＣＣ情報に基づいてエラーがある場合にエラー訂正処理を行う。
エラー判定回路３６は、バッファ３４に保持された生データおよびＥＣＣ情報に基づいて、読み出しデータにエラーがあるか否かを判定する。
結合回路３７は、バッファ３４に保持された生データにエラー判定回路３６の判定結果であるエラー有無情報を付加する。
マルチプレクサ３８は、エラー判定回路３６の判定結果に応じて生データまたはＥＣＣ回路３５の処理データのいずれかを選択して、マルチプレクサ３９に出力する。マルチプレクサ３８は、エラーがない場合にはエラー無しの生データを選択し、エラーが有る場合にはエラー訂正後のエラー無しデータを選択する。
マルチプレクサ３９はリード情報１００Ｒに含まれるフラグ情報に応じて、バッファ３４に保持された生データ、結合回路３７によりエラー有無情報が付加された生データ、またはマルチプレクサ３８によるエラー無しデータを選択してホスト側に出力する。
【００４４】
図１６（Ａ）に示すように、不揮発性メモリから読み出したそのままのデータをホストに出力すれば良い場合(flag=00)は、図１７に示すように、不揮発性メモリからデータ部を読み出したらそれをそのままホスト装置４に出力すれば良い。
図１６（Ｂ）に示すように、エラーの有無を表す情報が必要な場合(flag=01)は、図１７に示すように、不揮発性メモリからデータとＥＣＣを両方読み出し、それらをエラー判定回路３６に入力してエラー有無の情報を得て、元のデータと結合したものをホスト装置４に出力する。
図１６（Ｃ）に示すように、エラー無しのデータが必要な場合(flag=10)は、図１７に示すように、不揮発性メモリから読み出したデータとＥＣＣをＥＣＣ回路３５に入力してエラー訂正処理を行うが、エラー訂正処理より早く終了するエラー判定処理によってエラーのないことがわかりエラー訂正処理の必要がない場合には不揮発性メモリから読み出したデータをそのまま出力するようにする。エラー判定処理によってエラーのあることがわかりエラー訂正処理が必要になった場合にはＥＣＣ回路３５の出力をホスト装置４に出力する。
【００４５】
図１８は、ホスト装置がリードコマンドを発行する際に、必要とされるデータの信頼性に応じて異なるリード方法を選択する処理を説明するためのフローチャートである。
ここで用いるコマンド名は図１５のコマンド名“READ”に加えてflagビットを後ろにつけた形とする。
【００４６】
リードしたデータにエラーの無いことが要求される場合には、エラー訂正まで行うコマンド“READ(10)”を発行する（ＳＴ１２１，ＳＴ１２２，ＳＴ１２３）。
リードしたデータにエラーが含まれていても構わないが、エラーの有無はわかる必要があるという場合には、エラー判定まで行うコマンド“READ(01)”を発行する（ＳＴ１２１，ＳＴ１２４，ＳＴ１２５，ＳＴ１２６）。
リードしたデータにエラーが含まれていても良く、エラーの有無がわからなくても構わないという場合には、データリードのみのコマンド“READ(00)”を発行する（ＳＴ１２１，ＳＴ１２４，ＳＴ１２７，ＳＴ１２８）。
また、ライト時も同様にエラーチェックの必要ないデータであればＥＣＣを付加せずに書き込むこととすれば、ＥＣＣ計算時間の短縮やＥＣＣ回路を動かさずに済むことによる消費電力抑制が可能となる。
【００４７】
以下に、上述したトレードオフ事項の各選択方法に対応したコントローラ３，３Ａのより具体的な構成について説明する。
【００４８】
図１９は、本実施形態に係るフラグによってトレードオフ事項の選択を行うコントローラの構成例を示す図である。
【００４９】
図１９のコントローラ３Ｂは、大きくフラッシュ制御部３１１とホストインタフェース（IF）部３２１の２つに分かれ、フラッシュ制御部３１１に入力するフラグ（flag）によって複数のトレードオフ事項の選択を行う。
ホストインタフェース部３２１とフラッシュ制御部３１１の間には他にホスト装置４から発行されたコマンドＣＭＤを伝える信号線３１２と、ホスト装置４との間でデータＤＡＴＡを転送するための信号線３１３がある。
ホスト装置４とホストＩＦ部３２１との間はコマンドＣＭＤとデータＤＡＴＡを束ねたホストインタフェース３２２で接続される。コマンドＣＭＤとデータＤＡＴＡは多重化されていても別の信号線になっていても構わない。
【００５０】
重複した部分もあるが、図２０、図２１、図２２に関連付けてコントローラ３Ｂに対するフラグの指定方法の例を示す。
【００５１】
図２０は、ホストが発行するリードやライトのコマンドにフラグを埋め込むことでトレードオフ事項の選択を行う様子を示す図である。
【００５２】
この例は、図１１や図１５に関連付けて説明したように、ホスト装置４から送られたコマンドＣＭＤの一部を用いることで、ホスト装置４がコマンドごとに最適なレベルを指定することが可能となる。
【００５３】
図２１は、あらかじめホストが発行した別コマンドによってフラグを設定しておき、後続のリードやライトのコマンドではその設定されたフラグを用いてトレードオフ事項の選択を行う様子を示す図である。
【００５４】
図２１の例では、別コマンドとしてモードセレクトコマンドを発行し、それに付加された選択フラグをホストインタフェース部３２１のたとえばレジスタに保持しておき、後続のリードやライトコマンドを受けたときに、保持していたフラグ情報に応じてトレードオフ事項の選択を行う。
この選択方法によれば、既存のシステムに適用する場合に、通常使用していたリードやライトのコマンドを変えずに拡張することが可能という利点がある。また、後続のコマンドでは何度も同じ設定をする必要がないという利点がある。
【００５５】
図２２は、リードやライトの対象となるデータの中のフラグでトレードオフ事項の選択を行う様子を示す図である。
【００５６】
この例では、リード時には、読み出したデータの中のフラグを用いるため、データ自身に基づいてコントローラ３Ｂがトレードオフ事項の選択を行う形となる。ライト時でも、ホストがその都度トレードオフ事項の選択に関与する必要がなくなる。
なお、フラグについては、この不揮発性メモリシステムでのトレードオフ事項の選択のために埋め込まれたフラグだけでなく、ネットワークパケット内のQoSフラグ等、他の指標も使用可能である。
【００５７】
図２３は、トレードオフ事項の選択にデータを用いる場合の別の例として、データの形式をコントローラが解析してその形式に応じたフラグを自動選択する様子を示す図である。
【００５８】
この例では、ＦＡＴ情報やシステムファイル、ＭＰＥＧ形式の動画ファイルなど、データの形式によって要求される信頼性やスピードなどのパラメータが異なるので、コントローラ３Ｂがデータ形式を判別して自動的に最適な方法を選択できるように構成されている。
すなわち、ホスト装置４の取り扱うデータには、システムファイルやＦＡＴ情報など信頼性を特に重視するものから、動画データなど多少のビット誤りがあっても気づかなかったりデータ内部にあるエラー訂正機能によって訂正されてしまう一方で、転送速度を重視するものまでさまざまなものがあるが、それらの多くはデータの形式によって判別することが可能である。
したがって、本例においては、データの形式をコントローラ３Ｂ内部のフラッシュ制御部３１１やホストインタフェース部３２１で判別し、その形式に応じた方法を用いることで、そのデータに最適なリード/ライトの手段を取ることが可能となる。
【００５９】
図２３の例においては、ファイル形式を解析し、形式に応じたフラグを発行している。
たとえばファイル形式がＦＡＴでリード時のフラグは「１０」、ライト時のフラグは「００」に設定する。ＭＰＥＧの場合、リード時のフラグは「００」、ライト時のフラグは「１０」に設定する。ＤＢの場合、リード時のフラグは「１０」、ライト時のフラグは「０１」に設定する。ＲＡＷの場合、リード時のフラグは「１０」、ライト時のフラグは「１１」に設定する。
【００６０】
本実施形態によれば、不揮発性メモリを用いたメモリシステムにおいて、性能/信頼性のトレードオフを使用者側が任意に、あるいはデータの種類に応じて適切に選択することが可能になる。
これにより、必要な信頼性を維持しつつ読み書きの性能を向上させることが可能になる。
また、不要な回路を止めることにより消費電力との間でもトレードオフを使用者側で選択可能となり、適切なトレードオフを選択することで消費電力も削減することが可能となる。
換言すれば、パラメータをライト時やリード時にホスト等から制御することで、その時ごとに要求される信頼性を満たしつつ、その範囲内で実現できる最高の性能を出すことが可能となる。
また、本実施形態によれば、信頼性と性能のトレードオフだけでなく、たとえばライト中にコマンドが強制終了するなどして同じ論理アドレスを持つブロックが複数できた場合に、古い方と新しい方のどちらをリードコマンドで読み出すかといった、新しいもの／完全に書き込まれたものの選択を行うことも可能となる利点がある。
【図面の簡単な説明】
【００６１】
【図１】本発明の第１の実施形態に係る不揮発性半導体記憶装置を採用したメモリシステムの構成例を示す図である。
【図２】管理情報の不揮発性メモリ上の構成およびＲＡＭ上の管理情報との関係の例を示す図である。
【図３】本実施形態におけるユーザデータと管理情報の格納の様子の第１例を示す図である。
【図４】本実施形態におけるユーザデータと管理情報の格納の様子の第２例を示す図である。
【図５】本実施形態におけるユーザデータと管理情報の格納の様子の第３例を示す図である。
【図６】本実施形態におけるユーザデータと管理情報の格納の様子の第４例を示す図である。
【図７】図３においてＲＡＭ上の管理情報の更新タイミングおよび、不揮発性メモリ上に書き込まれたデータとＲＡＭ上の管理情報の不整合状態、ＲＡＭ上の管理情報と不揮発性メモリ上の管理情報の不整合状態を示す図である。
【図８】図４においてＲＡＭ上の管理情報の更新タイミングおよび、不揮発性メモリ上に書き込まれたデータとＲＡＭ上の管理情報の不整合状態、ＲＡＭ上の管理情報と不揮発性メモリ上の管理情報の不整合状態を示す図である。
【図９】図５おいてＲＡＭ上の管理情報の更新タイミングおよび、不揮発性メモリ上に書き込まれたデータとＲＡＭ上の管理情報の不整合状態、ＲＡＭ上の管理情報と不揮発性メモリ上の管理情報の不整合状態を示す図である。
【図１０】図６おいてＲＡＭ上の管理情報の更新タイミングおよび、不揮発性メモリ上に書き込まれたデータとＲＡＭ上の管理情報の不整合状態、ＲＡＭ上の管理情報と不揮発性メモリ上の管理情報の不整合状態を示す図である。
【図１１】トレードオフ事項の選択をコマンド内のパラメータによって行う場合の、ライトコマンドの例を示す図である。
【図１２】ホスト装置がライトコマンドを発行する際に、電源の安定状況および必要とされる信頼性に応じて異なる管理情報格納方法を選択する処理を説明するためのフローチャートである。
【図１３】本発明の第２の実施形態に係る不揮発性半導体記憶装置を採用したメモリシステムの構成例を示す図である。
【図１４】リード時に必要な処理とその時間について、信頼性とのトレードオフについて説明するための図である。
【図１５】トレードオフ事項の選択をコマンド内のパラメータで行う場合のリードコマンドの例を示す図である。
【図１６】各パラメータでリードコマンドが発行された場合にデバイスからホストへ送出するデータの例を示す図である。
【図１７】デバイス（コントローラ）からホスト装置に出力されるデータを生成するためのデータパスの構成例を示す図である。
【図１８】ホスト装置がリードコマンドを発行する際に、必要とされるデータの信頼性に応じて異なるリード方法を選択する処理を説明するためのフローチャートである。
【図１９】本実施形態に係るフラグによってトレードオフ事項の選択を行うコントローラの構成例を示す図である。
【図２０】ホストが発行するリードやライトのコマンドにフラグを埋め込むことでトレードオフ事項の選択を行う様子を示す図である。
【図２１】あらかじめホストが発行した別コマンドによってフラグを設定しておき、後続のリードやライトのコマンドではその設定されたフラグを用いてトレードオフ事項の選択を行う様子を示す図である。
【図２２】リードやライトの対象となるデータの中のフラグでトレードオフ事項の選択を行う様子を示す図である。
【図２３】トレードオフ事項の選択にデータを用いる場合の別の例として、データの形式をコントローラが解析してその形式に応じたフラグを自動選択する様子を示す図である。
【符号の説明】
【００６２】
１，１Ａ・・・メモリシステム、２・・・不揮発性メモリユニット、２１−０〜２１−３・・・バンク、３，３Ａ，３Ｂ・・・コントローラ、３１１・・・フラッシュ制御部、３２１・・・ホストインタフェース部、４・・・ホスト装置。
【図１】
2007249469.tif 000003
【図２】
2007249469.tif 000004
【図３】
2007249469.tif 000005
【図４】
2007249469.tif 000006
【図５】
2007249469.tif 000007
【図６】
2007249469.tif 000008
【図７】
2007249469.tif 000009
【図８】
2007249469.tif 000010
【図９】
2007249469.tif 000011
【図１０】
2007249469.tif 000012
【図１１】
2007249469.tif 000013
【図１２】
2007249469.tif 000014
【図１３】
2007249469.tif 000015
【図１４】
2007249469.tif 000016
【図１５】
2007249469.tif 000017
【図１６】
2007249469.tif 000018
【図１７】
2007249469.tif 000019
【図１８】
2007249469.tif 000020
【図１９】
2007249469.tif 000021
【図２０】
2007249469.tif 000022
【図２１】
2007249469.tif 000023
【図２２】
2007249469.tif 000024
【図２３】
2007249469.tif 000025