(57)【要約】      （修正有）【課題】より高性能のメモリ装置を制御する制御システムを提供する。【解決手段】メモリ装置を制御する制御システムは、第１セルトランジスタを有するメモリ装置と、コントローラとを含む。コントローラは、第１セルトランジスタへの書き込みの時のメモリ装置の温度と関連付けられた第１温度の情報を保持し、メモリ装置の第２温度を知得し、複数の調整値のうちから第１温度および第２温度の組合せに基づく１つの調整値を決定し、決定された調整値と第１値とに基づく値を第１パラメータのために使用して第１セルトランジスタのデータを読み出すことをメモリ装置に指示する、ように構成されている。【選択図】図１０
2018163715.tif 000002
【特許請求の範囲】
【請求項１】
第１セルトランジスタを有するメモリ装置と、
前記第１セルトランジスタへの書き込みの時の前記メモリ装置の温度と関連付けられた第１温度の情報を保持し、
前記メモリ装置の第２温度を知得し、
複数の調整値のうちから前記第１温度および前記第２温度の組合せに基づく１つの調整値を決定し、
前記決定された調整値と第１値とに基づく値を第１パラメータのために使用して前記第１セルトランジスタのデータを読み出すことを前記メモリ装置に指示する、
ように構成されたコントローラと、
を備える制御システム。
【請求項２】
前記複数の調整値は、相違するｍ個（ｍは自然数）の書き込み温度と、相違するｎ個（ｎは自然数）の読み出し温度と、ｍ×ｎ個の組合せのそれぞれのためのｍ×ｎ個の調整値を含み、
前記コントローラは、
前記第１温度に基づいて前記ｍ個の書き込み温度のうちの１つを選択し、前記第２温度に基づいて前記ｎ個の読み出し温度のうちの１つを選択し、
前記選択された書き込み温度および前記選択された読み出し温度の組合せから特定される１つの調整値を選択する、
ように構成されている、請求項１の制御システム。
【請求項３】
前記コントローラは、
第１コマンドを前記メモリ装置に送信して、前記第１温度の情報を前記メモリ装置から取得し、
前記第１コマンドを前記メモリ装置に送信して、前記第２温度の情報を前記メモリ装置から取得する、
ように構成されている、請求項１の制御システム。
【請求項４】
前記メモリ装置は、前記第１セルトランジスタを含んだ第１ブロックを備え、
前記第１温度は、前記第１ブロックへの書き込みの時の前記メモリ装置の温度であり、
前記第２温度は、前記第１ブロックからの読み出しの時の前記メモリ装置の温度である、
請求項１の制御システム。
【請求項５】
前記第１パラメータは、前記第１セルトランジスタからの読み出しの間に、前記第１セルトランジスタと接続された第１ワード線に印加される電圧である、
請求項１の制御システム。
【請求項６】
前記１つの調整値は、前記第１温度、前記第２温度、および前記第１セルトランジスタの消去の時の前記メモリ装置の温度と関連付けられた第３温度の組合せに基づく、
請求項１の制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
実施形態は、概してメモリ装置を制御する制御システムに関する。
【背景技術】
【０００２】
不揮発性のメモリ装置と、およびこのメモリを制御するメモリコントローラを含んだメモリシステムが知られている。メモリシステムの性能の向上のために、メモリコントローラによるメモリ装置のより良い制御が求められる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−１１３８１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
より高性能な、メモリ装置の制御システムを提供しようとするものである。
【課題を解決するための手段】
【０００５】
一実施形態による制御システムは、第１セルトランジスタを有するメモリ装置と、前記第１セルトランジスタへの書き込みの時の前記メモリ装置の温度と関連付けられた第１温度の情報を保持し、前記メモリ装置の第２温度を知得し、複数の調整値のうちから前記第１温度および前記第２温度の組合せに基づく１つの調整値を決定し、前記決定された調整値と第１値とに基づく値を第１パラメータのために使用して前記第１セルトランジスタのデータを読み出すことを前記メモリ装置に指示する、ように構成されたコントローラと、を備える。
【図面の簡単な説明】
【０００６】
【図１】第１実施形態のメモリシステムの機能ブロックを示す。
【図２】第１実施形態のメモリシステムの機能ブロックの別の例を示す。
【図３】第１実施形態のメモリセルアレイの一部の要素および接続の例を示す。
【図４】第１実施形態のブロックの構造の例を示す。
【図５】第１実施形態のメモリ装置でのデータの保持の例を示す。
【図６】第１実施形態に係る実体的データと誤り訂正データの大きさの比の例を示す。
【図７】第１実施形態のメモリシステムの動作のフローの一部を示す。
【図８】第１実施形態のメモリシステムの動作のフローの別の一部を示す。
【図９】第１実施形態のメモリシステムの動作のフローのさらに別の一部を示す。
【図１０】第１実施形態に係る温度組合せテーブルを示す。
【図１１】第１実施形態に係る書き込み温度および読み出し温度と調整値との関係を示す。
【図１２】第１実施形態に係る書き込み温度および読み出し温度の差と調整値との関係を示す。
【図１３】第１実施形態に係る書き込み温度テーブルを示す。
【図１４】第１実施形態に係る温度データの取得のために送受信される信号ＤＱの第１例を示す。
【図１５】第１実施形態に係る温度データの取得のために送受信される信号ＤＱの第２例を示す。
【図１６】第１実施形態に係る調整値の使用の指示および読み出しのために送受信される信号ＤＱを示す。
【図１７】第１実施形態での選択ワード線に読み出しの間に印加される電圧を示す。
【図１８】第２実施形態に係る温度組合せテーブルを示す。
【図１９】第２実施形態に係る消去・書き込み温度テーブルを示す。
【図２０】第２実施形態のメモリシステムの動作のフローの一部を示す。
【図２１】第２実施形態のメモリシステムの動作のフローの別の一部を示す。
【図２２】第２実施形態のメモリシステムの動作のフローのさらに別の一部を示す。
【図２３】第３実施形態に係る書き込み温度・パラメータ調整値テーブルを示す。
【図２４】第３実施形態のメモリシステムの動作のフローの一部を示す。
【図２５】第３実施形態のメモリシステムの動作のフローの別の一部を示す。
【図２６】第４実施形態に係る消去温度・パラメータ調整値テーブルを示す。
【図２７】第４実施形態のメモリシステムの動作のフローの一部を示す。
【図２８】第４実施形態のメモリシステムの動作のフローの別の一部を示す。
【図２９】第５実施形態の情報処理システムの機能ブロックを示す。
【図３０】第５実施形態の情報処理システムの動作のフローの一部を示す。
【図３１】第５実施形態の情報処理システムの動作のフローの別の一部を示す。
【図３２】第５実施形態の情報処理システムの動作のフローのさらに別の一部を示す。
【図３３】第６実施形態での選択ワード線に印加される電圧の一部を示す。
【図３４】第６実施形態に係る書き込みのために送信される信号ＤＱを示す。
【図３５】第６実施形態での選択ワード線に印加される電圧を示す。
【図３６】第６実施形態でのワード線アドレスと調整値との対応を示す。
【図３７】第６実施形態のメモリシステムの動作のフローを示す。
【図３８】第６実施形態での閾値電圧分布を参考用の閾値電圧分布とともに示す。
【発明を実施するための形態】
【０００７】
以下に実施形態が図面を参照して記述される。以下の記述において、略同一の機能および構成を有する構成要素は同一符号を付され、繰り返しの説明は省略される場合がある。ある実施形態についての記述はすべて、明示的にまたは自明に排除されない限り、別の実施形態の記述としても当てはまる。各機能ブロックは、ハードウェア、コンピュータソフトウェアのいずれかまたは両者を組合せたものとして実現されることが可能である。また、各機能ブロックが、以下の例のように区別されていることは必須ではない。例えば、一部の機能が例示の機能ブロックとは別の機能ブロックによって実行されてもよい。また、実施形態の方法のフローにおけるいずれのステップも、例示の順序に限定されず、そうでないと示されない限り、例示の順序とは異なる順序でおよび（または）別のステップと並行して起こることが可能である。
【０００８】
明細書および特許請求の範囲において、「接続」とは、直接的な接続および導電性の要素を介在した接続を含む。
【０００９】
（第１実施形態）
＜１．１．構成（構造）＞
＜１．１．１．メモリシステム＞
図１は、第１実施形態のメモリシステム１の機能ブロックを示す。図１に示されるように、メモリシステム１は、ホスト装置２のためのストレージとして機能し、ホスト装置２と通信し、ホスト装置２の指示に基づいて、ホスト装置２からのデータを保持し、また、データをホスト装置２に読み出す。
【００１０】
ホスト装置２は、例えばサーバコンピュータまたはパーソナルコンピュータであり、情報処理を実行し、メモリシステム１を用いてデータを記憶する。ホスト装置２は、メモリシステム１により提供される記憶空間を複数の論理領域へと分割し、各論理領域に論理アドレスを付する。そして、論理アドレスを使用して、メモリシステム１の記憶空間を管理する。ホスト装置２は、書き込み対象のデータがある論理領域に保持されるものと決定すると、書き込み対象データに対して決定された論理アドレスを割り当てる。そして、ホスト装置２は、論理アドレスにより特定される論理領域への書き込み対象データの書き込みをメモリ装置１００に指示する。また、ホスト装置２は、論理アドレスによって、メモリシステム１中の読み出し対象のデータを特定する。
【００１１】
メモリシステム１は、例えばＳＤＴＭカードのようなメモリカードや、ＳＳＤ（solid state device）である。メモリシステム１は、複数のメモリ装置１００、およびメモリコントローラ２００を含む。メモリ装置１００およびメモリコントローラ２００は、別々のパッケージに（例えば樹脂によって）封止されたチップであってもよいし、１つのチップであってもよい。
【００１２】
メモリ装置１００は、同じ要素および接続を有する。以下、１つのメモリ装置１００が代表として記述される。記述される代表的なメモリ装置１００についての記述が、他のメモリ装置１００にも当てはまる。メモリ装置１００は、不揮発にデータを記憶し、例えばＮＡＮＤ型フラッシュメモリである。
【００１３】
メモリコントローラ２００は、ホスト装置２から命令を受け取り、また、メモリ装置１００を制御する。メモリ装置１００の制御は、ホスト装置２から受け取られた命令とは無関係のものと、ホスト装置２から受け取られた命令に基づくものを含む。例えば、メモリコントローラ２００は、ホスト装置２から書き込みを指示されたデータをメモリ装置１００に書き込み、ホスト装置２から読み出しを指示されたデータをメモリ装置１００から読み出してホスト装置２に送信する。
【００１４】
また、メモリコントローラ２００は、メモリ装置１００を管理する。管理は、アドレスのマッピングの管理、およびメモリ装置１００の状態の管理を含む。アドレスのマッピングは、論理アドレスと物理アドレスのマッピングである。物理アドレスはメモリ装置１００により提供される記憶領域を特定する情報である。具体的には、メモリコントローラ２００は、書き込みを指示されると、書き込みを指示されたデータの書き込み先の論理アドレスと、当該データが書き込まれたメモリ装置１００中の記憶領域の物理アドレスをアドレス変換テーブルにより管理する。メモリコントローラ２００は、ある論理アドレスの記憶領域からのデータの読み出しを指示されると、アドレス変換テーブルを参照して、当該論理アドレスと関連付けられた物理アドレスを知得し、知得された物理アドレスの記憶領域からデータを読み出す。メモリ装置１００の状態の管理は、メモリ装置１００の不良な記憶領域（後述のブロックＢＬＫ）の管理、ウェアレベリング、ガベージコレクション、およびリフレッシュを含む。
【００１５】
＜１．１．２．メモリコントローラ＞
メモリコントローラ２００は、ホストインターフェイス２１、全体制御部２２、ＲＡＭ（random access memory）２３、メモリインターフェイス２４、ＥＣＣ回路２５、ＲＯＭ（read only memory）２６を含む。メモリコントローラ２００は、例えば、ハードウェアとしてＣＰＵ（central processing unit）等のプロセッサを含み、ＲＯＭ２６に保持されかつＲＡＭ２３上にロードされたファームウェア（プログラム）がプロセッサによって実行されることによって、ホストインターフェイス２１、全体制御部２２、メモリインターフェイス２４、およびＥＣＣ回路２５の各々の機能の一部または全部を実行する。ホストインターフェイス２１、全体制御部２２、ＲＡＭ２３、メモリインターフェイス２４、およびＥＣＣ回路２５は、バスにより相互に接続されている。
【００１６】
ホストインターフェイス２１０は、メモリコントローラ２００とホスト装置２とがある通信規格に則って通信可能に接続されるのに必要なハードウェア要素および（または）ソフトウェアを含む。すなわち、ホストインターフェイス２１は、ホスト装置２とのバスによる物理的接続のためのハードウェア（例えばコネクタおよび（または）ピン）を含み、バスを介してホスト装置２と接続される。また、ホストインターフェイス２１は、ホストインターフェイス２１が則る通信規格に従ってメモリコントローラ２００とホスト装置２が通信することを可能にする種々の処理を実行する。ホストインターフェイス２１および（または）ホストインターフェイス２１が則る通信規格の例は、ＡＴＡ（Advanced Technology Attachment）、ＳＡＴＡ（Serial ATA）、ＳＡＳ（Serial Attached Small computer system interface）、およびＰＣＩｅ（Peripheral Component Interconnect Express）を含む。
【００１７】
ＲＡＭ２３は、データを一時的に保持し、バッファとしての機能を有する。データは、ホストから受け取られたデータ、ホストに送信されるデータ、メモリ装置１００に書き込まれるデータ（書き込みデータ）、メモリ装置１００から読み出されたデータ（読み出しデータ）、メモリ装置１００の状態を示し且つメモリ装置１００の制御のために全体制御部２２によって参照される種々の管理データ（アドレス変換テーブルを含む）、およびファームウェアを含む。また、ＲＡＭ２３は、複数のメモリ装置温度情報２３１を含む。各メモリ装置温度情報２３１は、対応する１つ以上のメモリ装置１００に関する温度情報を含む。メモリ装置温度情報２３１については、後に詳述される。
【００１８】
メモリインターフェイス２４は、ＮＡＮＤバスによって、メモリ装置１００と物理的に接続されており、ＮＡＮＤインターフェイスに従った信号の送受信を行う。ＮＡＮＤバスは、ＮＡＮＤインターフェイスに従った信号を伝送する。ＮＡＮＤインターフェイスに従った信号は、例えば種々の制御信号および入出力信号ＤＱおよびレディー・ビジー信号ＲＹ／ＢＹｎを含む。信号ＤＱ（ＤＱ０〜ＤＱ７）は、例えば８ビットの幅を有し、コマンド（ＣＭＤ）、書き込みデータおよび読み出しデータ（ＤＡＴ）、アドレス信号（ＡＤＤ）、各種の管理データを含む。レディー・ビジー信号ＲＹ／ＢＹｎは、メモリ装置１００ごとに独立しており、例えばハイレベルおよびローレベルによって、対応するレディー・ビジー信号ＲＹ／ＢＹｎを送信するメモリ装置１００がそれぞれレディー状態およびビジー状態であることを示す。メモリ装置１００は、レディー状態においてメモリコントローラ２００からの命令を受け付け、ビジー状態においてメモリコントローラ２００からの命令を受け付けない。
【００１９】
ＥＣＣ回路２５は、ある実体的データの誤りを訂正するための誤り訂正データを生成する。実体的データは、ホストから書き込みを指示されたデータおよび管理データを含む。誤り訂正データは、既知の任意の方法で生成されることが可能であり、例えばパリティデータを含む。実体的データと、対応する誤り訂正データの組は、書き込みデータとして、メモリ装置１００に書き込まれる。誤り訂正データの生成のための技術および誤り訂正データの大きさによって、対応する実体的データの訂正可能な誤りの数が定まる。一般に、誤り訂正データがより大きいと、より多くの誤りの訂正が可能であり、すなわち大きな誤り訂正能力がより高い。ＥＣＣ回路２５は、複数の誤り訂正能力から１つを選択し、選択された誤り訂正能力のための誤り訂正データを生成できる。
【００２０】
また、ＥＣＣ回路２５は、メモリ装置１００からの読み出しデータに対して演算を行って、読み出しデータに含まれる正しい（誤りを訂正された）データ（例えばホスト読み出しデータまたは管理データ等）を取得することを試みる。ＥＣＣ回路２５は、読み出しデータが、読み出しデータに含まれる誤り訂正データに基づいて定まる誤り訂正能力以下の誤りを含んでいれば、読み出しデータから正しい実体的データを取得できる。
【００２１】
全体制御部２２は、例えば、プロセッサおよびＲＡＭ２３の機能の一部により実現される。全体制御部２２は、ホストインターフェイス２１、ＲＡＭ２３、メモリインターフェイス２４、およびＥＣＣ回路２５を制御する。全体制御部２２は、書き込みおよび読み出しの際に、ＲＡＭ２３およびメモリインターフェイス２４を制御しつつ、上記のアドレスマッピング管理および（または）メモリ装置１００の状態の管理を行う。
【００２２】
＜１．１．３．メモリ装置＞
メモリ装置１００は、メモリセルアレイ１１、シーケンサ（制御回路）１２、電位生成回路１３、ドライバ１４、ロウデコーダ１５、センスアンプ１６、および温度センサ１７等の要素を含む。
【００２３】
メモリセルアレイ１１は複数のブロック（メモリブロック）ＢＬＫ（ＢＬＫ０、ＢＬＫ１、…）を含む。ブロックＢＬＫは、メモリセルアレイ１１のある物理的な単位であり、各ブロックＢＬＫ中のデータは一括して消去される。各ブロックＢＬＫは、複数のセルトランジスタを含む。セルトランジスタは、メモリコントローラ２００からの書き込みデータを不揮発に保持する。
【００２４】
電位生成回路１３は、種々の電位（電圧）を生成する。生成された電位は、ドライバ１４およびセンスアンプ１６等の要素に供給される。ドライバ１４は、アドレス信号ＡＤＤを受け取り、電位生成回路１３からの電位のうちアドレス信号ＡＤＤに基づいていくつかの電位を選択し、選択された電位をロウデコーダ１５に供給する。
【００２５】
ロウデコーダ１５は、アドレス信号ＡＤＤを受け取り、アドレス信号ＡＤＤに基づいて、１つのブロックＢＬＫを選択し、選択されたブロックＢＬＫにドライバ１４からの電位を転送する。
【００２６】
センスアンプ１６は、セルトランジスタＭＴの状態をセンスし、センスされた状態に基づいて読み出しデータを生成し、また、書き込みデータをセルトランジスタＭＴに転送する。
【００２７】
温度センサ１７は、メモリ装置１００の温度をある時間間隔ごとに計測し、シーケンサ１２の指示に応答して、計測された温度を示す温度情報ＭＮＤをシーケンサ１２に供給する。
【００２８】
シーケンサ１２は、コマンドＣＭＤに基づいて、電位生成回路１３、ドライバ１４、およびセンスアンプ１６等の要素を制御する。シーケンサ１２は、レジスタ１２１およびタイマ１２２を含む。レジスタ１２１は、複数の記憶領域を含む。各記憶領域は、一意のアドレスにより特定されることが可能であり、１または複数ビットの情報を記憶することが可能である。レジスタ１２１は、各記憶領域において種々のデータを保持する。保持されるデータは、温度情報ＭＮＤを含む。
【００２９】
温度センサ１７は、図２に示されるように、メモリ装置１００中に代えて、メモリシステム１の別の場所に設けられてもよい。この場合、メモリコントローラ２００は、温度センサ１７に指示を出して、温度センサ１７から後述の温度データを取得する。
【００３０】
＜１．１．３．１．セルアレイ＞
図３は、第１実施形態のメモリセルアレイ１１の一部の要素および接続の例を示し、ブロックＢＬＫ０の要素および接続、ならびに関連する要素を示す。複数の（例えば全ての）ブロックＢＬＫは、みな図３に示される要素および接続を含む。
【００３１】
各ブロックＢＬＫは複数の（例えば４つの）ストリングユニットＳＵ（ＳＵ０〜ＳＵ３）を含む。
【００３２】
ｍ（ｍは自然数）本のビット線ＢＬ０〜ＢＬｍ−１の各々は、各ブロックＢＬＫにおいて、４つのストリングユニットＳＵ０〜ＳＵ３の各々からの１つのストリングＳＴＲと接続されている。
【００３３】
各ストリングＳＴＲは、１つの選択ゲートトランジスタＳＴ、複数（例えば８個）のセルトランジスタＭＴ、および１つの選択ゲートトランジスタＤＴ（ＤＴ０〜ＤＴ３）を含む。選択ゲートトランジスタＳＴ、セルトランジスタＭＴ、および選択ゲートトランジスタＤＴは、この順で、ソース線ＣＥＬＳＲＣと１つのビット線ＢＬとの間に直列に接続されている。セルトランジスタＭＴは、制御ゲート電極（ワード線ＷＬ）、および周囲から絶縁された電荷蓄積層を含み、電荷蓄積層中の電荷の量に基づいてデータを不揮発に保持することができる。セルトランジスタＭＴは、書き込みにより電荷蓄積層に電子を注入され、消去のために電荷蓄積層から電子を引き抜かれる。
【００３４】
相違する複数のビット線ＢＬとそれぞれ接続された複数のストリングＳＴＲは１つのストリングユニットＳＵを構成する。各ストリングユニットＳＵにおいて、セルトランジスタＭＴ０〜ＭＴ７の制御ゲート電極は、ワード線ＷＬ０〜ＷＬ７とそれぞれ接続されている。さらに、各ブロックＢＬＫにおいて、相違するストリングユニットＳＵ中の同じアドレスのワード線ＷＬも相互に接続されている。１つのストリングユニットＳＵ中でワード線ＷＬを共有するセルトランジスタＭＴの組は、セルユニットＣＵと称される。１つのセルユニットＣＵのセルトランジスタＭＴは、一括してデータを書き込まれ、また一括してデータを読み出される。１つのセルユニットＣＵの記憶空間は、１つまたは複数のページを含む。
【００３５】
選択ゲートトランジスタＤＴ０〜ＤＴ３はストリングユニットＳＵ０〜ＳＵ３にそれぞれ属する。各α（αは０または３以下の自然数）について、ストリングユニットＳＵαの複数のストリングＳＴＲの各々の選択ゲートトランジスタＤＴαのゲートは選択ゲート線ＳＧＤＬαに接続されている。選択ゲートトランジスタＳＴのゲートは、選択ゲート線ＳＧＳＬに接続されている。
【００３６】
各ブロックＢＬＫが１つのストリングユニットＳＵを含んでいてもよい。
【００３７】
ブロックＢＬＫは、任意の物理的構造を有することが可能である。すなわち、アドレスの相違するワード線ＷＬがシリコン基板の同一平面上に並ぶいわゆる二次元型の構造が使用されてもよいし、図４に示されるように、アドレスの相違する平面形状のワード線ＷＬがシリコン基板に垂直方向に積層される、いわゆる三次元の構造が使用されてもよい。
【００３８】
図４は、１つのブロックの構造の例を示し、各ブロックＢＬＫは図４に示される構造を有することが可能である。図４に示されるように、ストリングユニットＳＵはシリコン基板ＳＩ上に設けられている。シリコン基板ＳＩは、ｘｙ面に沿って広がり、ｐ型のウェルｐｗを含む。ウェルｐｗは、例えば、シリコン基板ＳＩ全体にイオン注入を行うことで、シリコン基板ＳＩの内部に形成される。各ストリングユニットＳＵは、ｘ軸に沿って並ぶ複数のストリングＳＴＲを含む。各ストリングＳＴＲは、半導体の柱（ピラー）ＰＬを含む。柱ＰＬは、ｚ軸に沿って延び、下端においてウェルｐｗと接し、トランジスタＭＴ、ＤＴ、およびＳＴのチャネルが形成されるチャネル領域およびボディとして機能する。柱ＰＬの上端は、導電性のプラグＣＰＰを介して導電体ＣＴと接続されている。導電体ＣＴはｙ軸に沿って延び、１つのビット線ＢＬとして機能し、ｘ軸上で別の座標に位置する導電体ＣＴと間隔を有する。柱ＰＬの側面はトンネル絶縁体（層）ＩＴにより覆われている。トンネル絶縁体ＩＴは、ウェルｐｗ上にも位置する。トンネル絶縁体ＩＴの側面は、電荷蓄積層ＣＡにより覆われている。電荷蓄積層ＣＡは、絶縁性または導電性であり、側面をブロック絶縁体（層）ＩＢにより覆われている。
【００３９】
各ストリングユニットＳＵにおいて、ウェルｐｗの上方に、１つの導電体ＣＳ、複数（例えば８つ）の導電体ＣＷ、および複数（例えば３つ）の導電体ＣＤが設けられている。複数の導電体ＣＳが設けられていてもよい。導電体ＣＳ、ＣＷ、およびＣＤは、この順で間隔を有してｚ軸に沿って並び、ｘ軸に沿って延び、ブロック絶縁体ＩＢと接している。導電体ＣＳは、また、ウェルｐｗとともにトンネル絶縁体ＩＴを挟む。導電体ＣＳ、ＣＷ、およびＣＤは、それぞれ、選択ゲート線ＳＧＳＬ、ワード線ＷＬ０〜ＷＬ７、および選択ゲート線ＳＧＤＬとして機能する。各ストリングユニットＳＵにおいて、導電体ＣＳ、ＣＷ、およびＣＤは、このストリングユニットＳＵ中の全ての柱ＰＬの側面上のブロック絶縁体ＩＢと内部において接している。
【００４０】
柱ＰＬ、トンネル絶縁体ＩＴ、電荷蓄積層ＣＡ、およびブロック絶縁体ＩＢのうちの導電体ＣＳ、ＣＷ、およびＣＤと交わる部分は、それぞれ選択ゲートトランジスタＳＴ、セルトランジスタＭＴ、および選択ゲートトランジスタＤＴとして機能する。柱ＰＬを共有しかつｚ軸に沿って並ぶトランジスタＳＴ、ＭＴ、およびＤＴは、１つのストリングＳＴＲを構成する。
【００４１】
ウェルｐｗ内には、ｐ＋型不純物の拡散層Ｄｐが設けられている。拡散層Ｄｐは、導電性のプラグＣＰＷを介して、導電体ＣＣＷと接続されている。プラグＣＰＷは、ｘｚ面に沿って広がる。
【００４２】
ウェルｐｗ内には、ｎ＋型不純物の拡散層Ｄｎがさらに設けられている。拡散層Ｄｎは、導電性のプラグＣＰＳを介して、導電体ＣＣＳと接続されている。導電体ＣＣＷは、ソース線ＣＥＬＳＲＣとして機能する。
【００４３】
シリコン基板ＳＩ上で、導電体ＣＳ、ＣＷ、ＣＤ、ＣＣＳ、およびＣＣＷ、ならびにプラグＣＰＳおよびＣＰＷが設けられていない領域は、絶縁体ＩＩＬ１を設けられている。
【００４４】
＜１．１．３．２．セルトランジスタ＞
メモリ装置１００は、１つのセルトランジスタＭＴにおいて１ビット以上のデータを保持することができる。図５は、書き込みの結果、１セルトランジスタＭＴ当たり２ビットのデータを保持するセルトランジスタＭＴの閾値電圧の分布を示す。各セルトランジスタＭＴの閾値電圧は、保持される２ビットデータに応じた値を有する。各セルトランジスタＭＴは、４つの閾値電圧のうちのいずれかを有し得る。
【００４５】
ある同じ２ビットデータを保持する複数のセルトランジスタＭＴであっても、互いに相違する閾値電圧を有し得る。このため、ある同じデータを保持する複数のセルトランジスタＭＴの閾値電圧は１つの分布を形成する。４つの閾値電圧のうち、最も低い分布から順に４つの分布のそれぞれに属するセルトランジスタＭＴは、それぞれ、Ｅｒレベル、Ａレベル、Ｂレベル、およびＣレベルにある。Ｅｒレベル、Ａレベル、Ｂレベル、およびＣレベルは、例えば、それぞれ“１１”データ、“０１”データ、“００”データ、および“１０”データを保持する状態として扱われる。Ｅｒレベルは、消去状態に相当する。一般に、データは、消去状態のセルトランジスタＭＴに書き込まれる。
【００４６】
Ａレベル、Ｂレベル、およびＣレベルのセルトランジスタの閾値電圧は、それぞれＥｒ、Ａレベル、およびＢレベルのセルトランジスタの閾値電圧より高い。読み出し電圧ＶＡ未満の閾値電圧を有するセルトランジスタＭＴはＥｒレベルにあると判断される。読み出し電圧ＶＡ以上読み出し電圧ＶＢ未満の閾値電圧を有するセルトランジスタＭＴはＡレベルにあると判断される。読み出し電圧ＶＢ以上読み出し電圧ＶＣ未満の閾値電圧を有するセルトランジスタＭＴはＢレベルにあると判断される。読み出し電圧ＶＣ以上の閾値電圧を有するセルトランジスタＭＴはＣレベルにあると判断される。読み出し電圧ＶＡ、ＶＢ、およびＶＣの各々は、読み出し電圧Ｖｃｇｒと称される場合がある。電圧Ｖｒｅａｄは、非読み出し対象のセルトランジスタＭＴの制御ゲート電極に印加され、いずれのセルトランジスタＭＴの閾値電圧よりも高い。
【００４７】
１セルトランジスタＭＴ当たり複数ビットのデータの保持の場合、１つのセルユニットＣＵのセルトランジスタＭＴの２ビットのうちの同じ方のビットの組は、１つのページを構成する。具体的には、上位ビットの組はアッパーページを構成し、下位ビットの組はロワーページを構成する。
【００４８】
書き込みの完了の確認（ベリファイ）のために、ベリファイ電圧ＡＶ、ＢＶ、およびＣＶが使用される。ベリファイは、書き込まれるセルトランジスタＭＴの書き込みが完了したかの確認を指す。Ａレベル、Ｂレベル、およびＣレベルへと書き込まれるセルトランジスタ（選択セルトランジスタ）ＭＴがそれぞれベリファイ電圧ＡＶ、ＢＶ、およびＣＶ以上の大きさの閾値電圧を有していれば、当該レベルへと書き込まれるセルトランジスタＭＴへの書き込みが完了したと判断される。ベリファイ電圧ＢＶおよびＣＶは、それぞれベリファイ電圧ＡＶおよびＢＶより高い。ベリファイ電圧ＡＶ、ＢＶ、およびＣＶの各々は、ベリファイ電圧Ｖｖｆと称される場合がある。
【００４９】
３ビット以上のデータも、ここまで記述された原理の拡張により１つのセルトランジスタＭＴよって保持されることが可能である。また、１セルトランジスタＭＴ当たり１ビットのデータが保持される場合は、図５のいずれか２つのレベルが使用される。
【００５０】
＜１．２．動作＞
メモリシステム１の動作に先立ち、ＥＣＣ回路２５による誤り訂正データの生成について記述される。
【００５１】
＜１．２．１．ＥＣＣ回路の動作＞
図６は、第１実施形態に係る実体的データと誤り訂正データの大きさの比の例を示す。ＥＣＣ回路２５は、上記のように、ある実体的データのための誤り訂正データの大きさを変えることによって、当該実体的データの訂正可能なビットの数を変えることができる。
【００５２】
図６に示されるように、ＥＣＣ回路２５は、受け取った実体的データを、ある大きさの部分（フレームと称される）へと分割し、フレームおよび対応する誤り訂正データの組を出力する。フレームおよび対応する誤り訂正データの組はクラスタと称される。クラスタの大きさは固定であり、例えば、メモリ装置１００の１ページの大きさが均等の大きさに分割された複数部分（例えば４つ）の１つと同じサイズである。一方、誤り訂正データの大きさは、対応するフレームのために求められる誤り訂正能力に基づいて可変である。よって、フレームの大きさは誤り訂正能力により可変である。したがって、ＥＣＣ回路２５は、書き込まれる実体的データを、クラスタの大きさから、ＥＣＣ回路２５に現在設定されている誤り訂正能力を実現する誤り訂正データの大きさを減じた大きさの複数のフレームへと分割する。そして、ＥＣＣ回路２５は、このようなフレームを使用して、対応する誤り訂正データを生成する。この結果、誤り訂正能力に基づいた大きさの誤り訂正データおよびフレームの組はクラスタと同じ大きさを有する。
【００５３】
図６の上段は、最も低い誤り訂正能力を実現する方法で誤り訂正データが生成された場合を示す。図６の中段は、中程度の誤り訂正能力を実現する方法で誤り訂正データが生成された場合を示す。図６の下段は、最も高い誤り訂正能力を実現する方法で誤り訂正データが生成された場合を示す。求められる誤り訂正能力が高いほど、必要な誤り訂正データは大きくなるので、その分、フレームが小さい。よって、より高い誤り訂正能力の誤り訂正データが使用される場合、対応するフレームはより小さい。
【００５４】
＜１．２．２．メモリシステムの動作＞
図７〜図９は、第１実施形態のメモリシステム１の動作のフローを示す。図７〜図９は、フローが必要以上に複雑となることを避けるために、ある１つのメモリ装置（選択メモリ装置）１００のあるブロックＢＬＫｘ（ｘは０または自然数）に関連する処理を中心に示す。
【００５５】
図７に示されるように、メモリシステム１は、例えば電源の供給を受け初めて起動すると、起動処理を行う（ステップＳ１）。起動処理は、メモリシステム１が、データの書き込みおよび読み出しが可能な状態になるまでに必要な処理を指す。起動処理は、種々のテーブルをメモリコントローラ２００において構築することを含む。具体的には、ステップＳ１は、サブステップＳＳ１１およびＳＳ１２を含む。
【００５６】
テーブルの構築に必要なデータが各メモリ装置１００中の１または複数のブロックＢＬＫにおいて保持されており、メモリコントローラ２００は、これらのブロックＢＬＫから必要なデータを読み出す（サブステップＳＳ１１）。サブステップＳＳ１２において、メモリコントローラ２００は、読み出されたデータから、ＲＡＭ２３上でメモリ装置１００ごとにテーブルを構築する。構築されるテーブルは、図１０に示される温度組合せテーブル、および図１３に示される書き込み温度テーブル、およびアドレス変換テーブルを含む。各メモリ装置１００用の温度組合せテーブルおよび書き込み温度テーブルは、当該メモリ装置１００用のメモリ装置温度情報２３１に含まれる。１つの温度組合せテーブルが、複数のメモリ装置１００で共通に使用されてもよい。
【００５７】
図１０は、ある１つのメモリ装置（例えば選択メモリ装置）１００用の温度組合せテーブルを示す。図１０に示されるように、複数の温度組合せテーブルが存在する。本実施形態の各温度組合せテーブルは、メモリ装置１００からの読み出しの間に使用される複数のパラメータのうちの１つについての情報を示す。温度組合せテーブルが用意される対象のパラメータの例は、前述した電圧Ｖｒｅａｄ、および読み出し電圧Ｖｃｇｒを含むが、これらに限定されない。
【００５８】
各温度組合せテーブルは複数の値を有し、各値は二次元の行列状に関連付けられている。一方の軸（縦軸）は、選択メモリ装置１００への書き込みの時の温度センサ１７での測定温度（書き込み温度）に関する。他方の軸（横軸）は、選択メモリ装置１００からの読み出しの時の温度センサ１７での測定温度（読み出し温度）に関する。
【００５９】
相違する行は相違する書き込み温度と関連付けられており、各行は関連付けられた書き込み温度についての複数の値を示す。各行での書き込み温度は、下隣りの行での温度と、ある大きさだけ離れている。例えば上下で隣り合う書き込み温度の差は１０℃であり、ＴＷ０〜ＴＷ８は例えばそれぞれ０、１０、２０、３０、４０、５０、６０、７０、および８０℃である。この例とは別の書き込み温度および差が使用されてもよい。
【００６０】
同様に、相違する列は相違する読み出し温度と関連付けられており、各列は関連付けられた読み出し温度についての複数の値を示す。各列での読み出し温度は、右隣りの列での読み出し温度と、ある大きさだけ離れている。読み出し温度の組は、書き込み温度の組と同じであってもよいし、異なっていてもよい。例えば左右で隣り合う温度の差は書き込みと同じく１０℃であり、ＴＲ０〜ＴＲ８は例えばそれぞれ０、１０、２０、３０、４０、５０、６０、７０、および８０℃である。この例とは別の読み出し温度および差が使用されてもよい。
【００６１】
各行と各列の交差する箇所は、１つの調整値ΔＡ（ΔＡ０、ΔＡ１、ΔＡ２、…、ΔＡ８８）を有する。ある表における値は、この表と関連付けられているパラメータのデフォルト値からの調整値（オフセット値）を示す。デフォルト値は、メモリ装置１００の初期状態（値の調整がなされていない状態）で使用される値を指す。各調整値ΔＡは、当該調整値ΔＡの行の書き込み温度で書き込まれかつ当該調整値ΔＡの読み出し温度で読み出される場合の調整値を示す。各調整値ΔＡは、対応する書き込み温度での選択メモリ装置１００の特性と、対応する読み出し温度での選択メモリ装置１００の特性とに基づいて定められている。すなわち、各調整値は、対応する書き込み温度および読み出し温度のときに当該調整値とデフォルト値の和が対応するパラメータのために使用されると、温度に関して最適化された読み出しを可能にするように定められている。
【００６２】
各調整値ΔＡは、正、負、またはゼロである。また、各調整値ΔＡは、別の調整値ΔＡと同じであってもよいし、異なっていてもよい。
【００６３】
調整値ΔＡは、ここまで記述されたような離散的な複数の書き込み温度および離散的な読み出し温度に対して用意されるのに代えて、関数により決定されてもよい。図１１は、第１実施形態の書き込み温度と調整値ΔＡとの関係の例を示す。図１１に示されるように、離散的な複数の読み出し温度（例として、０℃、５０℃、８０℃が示されている）の各々についての書き込み温度と調整値ΔＡとの対応が、例えば線形関数により定められている。例えば、相違する読み出し温度のための関数は、相違する特性（例えば傾き）を有する。そして、メモリコントローラ２００は、例えば５０℃での読み出しの場合、５０℃の読み出し用の関数が参照され、対応する書き込み温度での調整値ΔＡを割り出すことが可能である。読み出し温度０℃、５０℃、および８０℃のための関数に代えてまたは加えて、別の読み出し温度のための関数が用意されてもよい。さらに、離散的な複数の書き込み温度（例えば０℃、５０℃、８０℃）の各々についての読み出し温度と調整値ΔＡとの対応が、関数により定められていてもよい。この場合、書き込み温度に対応する関数が参照され、対応する読み出し温度での調整値ΔＡが割り出される。なお、これらの関数は、製造工程内において同一のものが設定されてもよいし、１または複数のメモリ装置１ごと、あるいは１または複数のブロックＢＬＫごとに固有の関数として設定されてもかまわない。
【００６４】
また、調整値ΔＡは、書き込み温度と読み出し温度との差（書き込み温度−読み出し温度）に基づくことが可能であり、図１２に示されるように、書き込み温度と読み出し温度の差（書き込み・読み出し温度差）と調整値ΔＡとの対応が関数に基づいていてもよい。
【００６５】
さらに、ある１つのパラメータ（例えば電圧Ｖｃｇｒ）のために、複数の温度組合せテーブルが用意されても良い。この場合、相違する温度組合せテーブルは、別のパラメータの値に基づいて選択される。具体的には、例えば、ブロックごとの消去回数が計数され、かつ（または）あるブロックＢＬＫのいずれかのセルユニットＣＵからの読み出しの回数がブロックごとに計数される。そして、ある範囲の消去回数および（または）ある範囲の読み出し回数ごとに、電圧Ｖｃｇｒ用の温度組合せテーブルが用意される。そして、読み出しの際、対象のブロックＢＬＫの消去回数および（または）読み出し回数が参照され、参照された消去回数および（または）読み出し回数に対応する温度組合せテーブルから、調整ΔＡが選択される。
【００６６】
図１３は、ある１つのメモリ装置（例えば選択メモリ装置）１００用の書き込み温度テーブルを示す。図１３に示されるように、書き込み温度テーブルは、各ブロックＢＬＫのアドレスと、当該ブロックＢＬＫ中のセルユニットＣＵへの書き込みのときに計測された温度情報から得たブロックＢＬＫの書き込み温度との対応を示す。メモリシステム１は、多くの場合、複数のセルユニットＣＵに連続してデータを書き込まれ、典型例として、１つのブロックＢＬＫ中のセルユニットＣＵに連続してデータを書き込まれる。このような書き込みは選択メモリ装置１００によって短い期間において完了し、よって、１つのブロックＢＬＫ中のセルユニットＣＵへの書き込みの間、温度センサ１７での温度は実質的に一定である。このため、図１３に示されるように、各ブロックＢＬＫのアドレスと、当該ブロックＢＬＫへの書き込みの時の１つの温度が関連付けられる。より具体的には、あるブロックＢＬＫについての書き込み温度は、当該ブロックＢＬＫのいずれかのセルユニットＣＵへの書き込みのときの書き込み温度と関連付けられる。書き込み温度テーブルでの書き込み温度は、温度組合せテーブルで使用される離散的な複数の書き込み温度と同じ複数の温度の組の１つである。
【００６７】
本実施形態ではブロックＢＬＫごとに書き込み温度が管理される例を示しているが、書き込み温度は任意の単位で管理されることが可能である。例えば複数のブロックＢＬＫごとに、あるいは１または複数のセルユニットＣＵごとに管理されることが可能である。さらに、複数のメモリ装置１００中に１または複数のブロックＢＬＫごとに管理されてもよい。
【００６８】
メモリコントローラ２００は、メモリシステム１が電源を供給されてオンしている間、消去済みのブロックＢＬＫへの書き込みが発生する度に、当該ブロックＢＬＫに対応する書き込み温度を知得し、知得された書き込み温度で書き込み温度テーブルを更新する。この点については後に詳述される。また、メモリコントローラ２００は、メモリシステム１が電源供給を停止されてオフされるときに、オフされるときの書き込み温度テーブルを構築するのに必要なデータを、メモリ装置１００に書き込む。この点についても、書き込み温度テーブル構築に必要なデータの詳細も含めて後に詳述される。
【００６９】
図７に戻る。ステップＳ１に続いて、メモリシステム１は、種々の処理を行う（ステップＳ２）。種々の処理は、例えば、読み出し、および（または）ブロックＢＬＫｘ以外のブロックＢＬＫへの書き込みを含む。
【００７０】
ステップＳ３において、全体制御部２２は、メモリインターフェイス２４を制御して、１ページのサイズの書き込みデータの書き込みをメモリ装置１００に指示する。当該指示は、ホスト装置２からの書き込みの指示に基づいてまたはガベージコレクションにおいて送信される場合もあるし、メモリコントローラ２００が管理データをメモリ装置１００に書き込むためにホスト装置２からの指示なく送信される場合もある。書き込みのために、全体制御部２２は、メモリ装置１００に書き込まれるべき実体的データを、求められる誤り訂正能力に基づいて定まる大きさのフレームへと分割する。求められる訂正能力は実体的データの性質または実体的データが書き込まれるセルユニットＣＵの信頼度に基づき得る。全体制御部２２は、次いで、ＥＣＣ回路２５を制御して各フレームのための誤り訂正データを生成し、各フレームおよび誤り訂正データを含む書き込みデータを用意する。
【００７１】
書き込みの指示は、例えば、ページを指定する信号、書き込みコマンド、アドレス信号、書き込み実行コマンドを含む。アドレス信号は、書き込みデータの書き込み先である、ブロックＢＬＫｘ中のセルユニットＣＵのアドレスを指定し、ページを指定する信号は書き込み先のページを指定する。実際には、１セルトランジスタＭＴ当たり２ビットの書き込みの場合、２ページについての書き込み指示が送信される。
【００７２】
選択メモリ装置１００が書き込み指示を受け取ると、シーケンサ１２は、電位生成回路１３、ドライバ１４、ロウデコーダ１５、およびセンスアンプ１６を制御して、選択セルユニットＣＵに書き込みデータを書き込む（ステップＳ４）。
【００７３】
メモリコントローラ２００は、書き込みが完了すると、ステップＳ３での指示に続いて指示される処理が、ブロックＢＬＫｘへの書き込みであるかを判断する（ステップＳ５)。ステップＳ３に続く処理がブロックＢＬＫｘへの書き込みでない場合（ステップＳ５のＮｏ分岐）メモリコントローラ２００は、温度データの送信をメモリ装置１００に指示する（ステップＳ６）。温度データの送信を指示されると、シーケンサ１２は、温度センサ１７から温度情報ＭＮＤを取得する（ステップＳ７）。次いで、シーケンサ１２は、取得された温度情報ＭＮＤに含まれる温度を示すデータ（温度データ）をメモリコントローラ２００に送信する（ステップＳ８）。送信される温度データは、ブロックＢＬＫｘについての書き込みの時の書き込み温度を含んだ温度データ（書き込み温度データ）である。
【００７４】
メモリコントローラ２００は、書き込み温度データを受け取ると、書き込み温度テーブルを更新する（ステップＳ９）。すなわち、メモリコントローラ２００は、書き込み温度データに示される書き込み温度を、書き込み温度テーブル中のブロックＢＬＫｘのための書き込み温度として保持する。ステップＳ９はステップＳ１０に継続する。
【００７５】
ステップＳ５においてメモリコントローラ２００が、ステップＳ３に続く処理がブロックＢＬＫｘへの書き込みであると判断する場合（ステップＳ５のＹｅｓ分岐）、フローはステップＳ６、Ｓ７、Ｓ８、およびＳ９を経ずにステップＳ１０に移行する。
【００７６】
ステップＳ１０において、メモリシステム１は、ステップＳ２と同じく種々の処理を行う。種々の処理は、例えば、ブロックＢＬＫｘ中の別のセルユニットＣＵへの書き込みを含む。ステップＳ１０の処理がブロックＢＬＫｘとは別の新たなブロックＢＬＫへの書き込みを含む場合、メモリコントローラ２００は、新たなブロックＢＬＫへの書き込みの度に、ステップＳ６〜Ｓ９と同様の処理を行って、書き込み温度テーブル中の当該新たなブロックＢＬＫについて書き込み温度を更新する。
【００７７】
ステップＳ１０に続いて、メモリコントローラ２００は、選択メモリ装置１００のブロックＢＬＫｘ中のあるセルユニットＣＵｙ（ｙは０または自然数）のページからデータを読み出すことを決定する（ステップＳ１１）。読み出しの決定は、ホスト装置２からの読み出しの指示に基づいてまたはガベージコレクションにおいて送信される場合もあるし、ホスト装置２からの指示に基づかずにメモリコントローラ２００が管理データを選択メモリ装置１００から読み出すとの決定に基づく場合もある。メモリコントローラ２００は、何らかの読み出しが必要となると、読み出されるデータが保持されているページおよびそのページの記憶空間を提供するセルユニットＣＵを特定する。ステップＳ１１では、特定の結果、メモリコントローラ２００は、セルユニットＣＵｙからの読み出しが必要と判断する。なお、１セルトランジスタ当たり１ビットの記憶の場合は、ページの特定は、セルユニットＣＵの特定と同じである。
【００７８】
ステップＳ１２において、メモリコントローラ２００は、温度データが最も近い過去に読み出された時から基準時間経過したかを判断する（ステップＳ１２）。基準時間経過した場合（ステップＳ１２のＹｅｓ分岐）、現在の温度に基づく最新の温度データが必要である。その目的で、メモリコントローラ２００は、温度データ送信コマンドを選択メモリ装置１００に送信する（ステップＳ１３）。
【００７９】
シーケンサ１２は、温度データ送信コマンドを受け取ると、温度センサ１７から温度情報ＭＮＤを取得する（ステップＳ１４）。次いで、シーケンサ１２は、取得された温度情報ＭＮＤに含まれる温度を示すデータをメモリコントローラ２００に送信する（ステップＳ１６）。送信される温度データは、ブロックＢＬＫｘについての読み出しの時の読み出し温度を含んだ温度データ（読み出し温度データ）である。ステップＳ１６はステップＳ１７に継続する。
【００８０】
最も近い過去に温度データが読み出された時から基準時間経過していない場合（ステップＳ１２のＮｏ分岐）、最も近い過去に取得された温度データが読み出し温度データとして使用されることが可能である。このことに基づいて、フローはステップＳ１７に移行する。例えばステップＳ１０における種々の処理のうちの最後の処理において温度データが取得されている場合、最も近い過去に温度データが読み出しされた時から基準時間経過していない。
【００８１】
ステップＳ１７において、メモリコントローラ２００は、セルユニットＣＵｙからの読み出しの直前の処理がブロックＢＬＫｘ中のセルユニットＣＵからの読み出しであるかを判断する。ブロックＢＬＫｘからの読み出しでない場合（ステップＳ１７のＮｏ分岐）、メモリコントローラ２００は書き込み温度テーブルを参照して、ブロックＢＬＫｘの書き込み温度を知得する（ステップＳ１８）。ステップＳ１８はステップＳ１９に継続する。一方、ブロックＢＬＫｘからの読み出しである場合（ステップＳ１７のＹｅｓ分岐）、フローはステップＳ１８を経ずにステップＳ１９に移行する。ステップＳ１７およびＳ１８の組は、ステップＳ１２〜Ｓ１６の組に先行してもよい。
【００８２】
ステップＳ１９において、メモリコントローラ２００は、温度組合せテーブルを参照し、ブロックＢＬＫｘの読み出し温度および書き込み温度から特定される調整値ΔＡを知得する。使用される温度組合せテーブルは、メモリコントローラ２００が補正を望むパラメータについてのものである。複数のパラメータが補正される場合、各パラメータ用の温度組合せテーブルが参照されて、各パラメータ用の調整値ΔＡが特定される。図１１または図１２を参照して記述されたような関数が使用される場合、メモリコントローラ２００は、ブロックＢＬＫｘの読み出し温度および書き込み温度と関数から特定される調整値ΔＡを知得する。
【００８３】
メモリコントローラ２００は、特定された調整値ΔＡの使用を選択メモリ装置１００に指示する（ステップＳ２１）。すなわち、メモリコントローラ２００は、調整の対象のパラメータと、当該パラメータのデフォルトの値に付加される調整値ΔＡと、を指定するコマンドをメモリ装置１００に送信する。
【００８４】
メモリコントローラ２００は、ブロックＢＬＫｘのセルユニットＣＵｙのページからの読み出しの指示を選択メモリ装置１００に送信する（ステップＳ２２）。指示は、例えば読み出しコマンド、ブロックＢＬＫｘのセルユニットＣＵｙを指定するアドレス信号、ページを指定する信号、および読み出しの実行コマンドを含む。ステップＳ２１での調整値Δの適用は後続する指示に対してのみ有効であり、本例ではステップＳ２２の読み出し指示に対してのみ有効である。
【００８５】
選択メモリ装置１００が読み出し指示を受け取ると、シーケンサ１２は、セルユニットＣＵｙの読み出し対象ページのデータを読み出す（ステップＳ２３）。読み出しにおいて、シーケンサ１２は、適用を指定された調整値ΔＡと、当該調整値ΔＡの対象のパラメータのデフォルト値との和を使用する。このため、ある同じセルユニットＣＵからの読み出しであっても、読み出しに使用されるあるパラメータの値は、読み出し温度、およびこのセルユニットＣＵが含まれるブロックＢＬＫの書き込み温度の組合せに基づいて変化する。読み出されたデータは、選択メモリ装置１００から送信され、メモリコントローラ２００によって受け取られる（ステップＳ２４）。その後、メモリシステム１は、ステップＳ２と同じく、種々の処理を行う（ステップＳ２６）。
【００８６】
ステップＳ２６の後、メモリシステム１がオフするための終了処理が開始しない限り（ステップＳ２７のＮｏ分岐）、フローはステップＳ２に戻る。終了処理は、メモリシステム１がオフするための処理を指し、終了処理は例えばホスト装置２からのメモリシステム１への電源供給停止の開始の通知により開始する。終了処理が開始すると（ステップＳ２７のＹｅｓ分岐）、メモリシステム１は終了処理を行う（ステップＳ２８）。終了処理は、温度組合せテーブルおよび書き込み温度テーブルを含むテーブルを構築するのに必要なデータを、対応する各メモリ装置１００に書き込むこと（サブステップＳＳ２８１）を含む。温度組合せテーブルおよび書き込み温度テーブルを構築するのに必要なデータは、メモリシステム１がホスト装置２から電源供給を受けている間で、終了処理の開始前に定期的に各メモリ装置１００に書き込まれてもよい。
【００８７】
次に、図１４を参照して、温度データの送信の指示と温度データの送信（例えば図７のステップＳ６およびＳ７）のために、メモリコントローラ２００と選択メモリ装置１００との間で送受信される信号ＤＱについて記述される。図１４は、第１実施形態に係る温度データの取得のためにメモリコントローラ２００と選択メモリ装置１００との間で送受信される信号ＤＱを時間に沿って示す。図１４に示されるように、メモリコントローラ２００は、温度データ読み出しコマンドＡＡｈを送信する。シーケンサ１２は、温度データ送信コマンドを受け取ると、温度センサ１７から温度情報ＭＮＤを取得する。シーケンサ１２は、温度情報ＭＮＤの取得の間、ローレベルのレディー・ビジー信号ＲＹ／ＢＹｎを送信する。シーケンサ１２は、取得された温度情報ＭＮＤに含まれる温度の情報を温度データＤ０としてメモリコントローラ２００に送信する。
【００８８】
温度データの読み出しは、図１２のような信号の送信によって行われることも可能である。図１５に示されるように、メモリコントローラ２００は、データ温度の読み出しのためにレジスタ読み出し指示を送信する。レジスタ読み出し指示は、レジスタ読み出しコマンドＢＢｈおよびアドレスＡＤＲを含む。レジスタ読み出しコマンドＢＢｈは、レジスタ１２１のデータの読み出しを指示する。アドレスＡＤＲは、レジスタ１２１中の読み出し対象の領域を指定する。温度データの読み出しのために、メモリコントローラ２００は、アドレスＡＤＲによって温度情報ＭＮＤを保持している領域を指定する。シーケンサ１２は、レジスタ読み出しコマンドＢＢｈおよびアドレスＡＤＲを受け取ると、レジスタ１２１中のアドレスＡＤＲによって指定された領域に保持されているデータ温度情報ＭＮＤを取得する。シーケンサ１２は、温度情報ＭＮＤの取得の間、ローレベルのレディー・ビジー信号ＲＹ／ＢＹｎを送信する。シーケンサ１２は、取得された温度情報ＭＮＤに含まれる温度情報を温度データＤ０としてメモリコントローラ２００に送信する。
【００８９】
次に、図１６を参照して、メモリ装置１００に対する調整値の使用の指示および読み出し（例えば図９のステップＳ２１およびＳ２２）のために、メモリコントローラ２００と選択メモリ装置１００との間で送受信される信号ＤＱについて記述される。図１６は、第１実施形態において、調整値の使用の指示および読み出しのためにメモリコントローラ２００と選択メモリ装置１００との間で送受信される信号ＤＱを時間に沿って示す。図１６は、いずれかの読み出し電圧Ｖｃｇｒが調整される場合の信号の例を示す。
【００９０】
図１６に示されるように、調整値の使用を指示するために、メモリコントローラ２００は、調整値の使用を指示するコマンドＣＣｈを送信する。次いで、メモリコントローラ２００は、調整の対象が読み出し電圧ＶＡ、ＶＢ、およびＶＣのいずれであるかを指定し（ＬＶ）、次いで、調整値ΔＤＡＣを示す信号を送信する。調整値ΔＤＡＣは、読み出し対象のセルユニットＣＵが含まれるブロックＢＬＫについての書き込み電圧および読み出し電圧から特定された調整値Δをディジタル値で指定する。調整値ΔＤＡＣは、ロワーページからの読み出しのように１つのページからの読み出しに複数の読み出し電圧ＶＡおよびＶＣを用いた読み出しが必要である場合、読み出し電圧ＶＡおよびＶＣに共通に使用される。または、相違する読み出し電圧Ｖｃｇｒのために相違する調整値の組が設けられている場合、すなわち、相違する温度組合せテーブルが用意されている場合、コマンドＣＣｈ、対象レベルを指定する信号ＬＶ、および調整値ΔＤＡＣの組が、各読み出し電圧Ｖｃｇｒのために送信される。
【００９１】
最後の調整値ΔＤＡＣの送信に続けて、メモリコントローラ２００は、読み出し指示を送信する。読み出し指示は、コマンドＤＤｈ、読み出しコマンド００ｈ、読み出し対象のセルユニットＣＵのアドレス信号ＡＤＤ、読み出し実行コマンド３０ｈを含む。コマンドＤＤｈは、アドレス信号ＡＤＤにより特定されるセルユニットＣＵの記憶空間による複数のページのうち、読み出し対象のページを指定する。アドレス信号ＡＤＤは、セルユニットＣＵを特定する。読み出し実行コマンド３０ｈが受け取られると、選択メモリ装置１００は、ローレベルのレディー・ビジー信号ＲＹ／ＢＹｎを送信し、次いで、メモリ装置１００は指定されたデータＤ０〜Ｄｐ（ｐは自然数）をメモリコントローラ２００に送信する。
【００９２】
次に、図１７を参照して、読み出し対象のページからのデータの読み出し（ステップＳ２３）がさらに記述される。図１７は、第１実施形態においてセルユニットＣＵｙと接続された選択ワード線ＷＬｙに読み出しの間に印加される電圧を時間に沿って示す。図１７は、ロワーページからの読み出しとアッパーページからの読み出しの両方を示す。実際には、ステップＳ２３において、セルユニットＣＵｙのロワーページおよびアッパーページのうち、ステップＳ１１で読み出し対象と決定された方の読み出しが起こる。
【００９３】
図１７において、調整値ΔＡは、読み出し電圧ＶＡの調整値を特定するための温度組合せテーブルの中の、ブロックＢＬＫｘについての書き込み温度および読み出し温度の組から特定された具体的な値を指す。調整値ΔＢおよびΔＣも同様に、それぞれ、読み出し電圧ＶＢおよびＶＣの調整値を特定するための温度組合せテーブルの中の具体的な値を指す。
【００９４】
または、読み出し電圧ＶＡ、ＶＢ、およびＶＣに対して、１つの共通の温度組合せテーブルが用意されて、書き込み温度および読み出し温度の各組合せについての共通の値が適用されてもよい。すなわち、書き込み温度および読み出し温度の各組合せについてΔＡ、ΔＢ、およびΔＣは等しい。
【００９５】
図１７は、調整値ΔＡ、ΔＢ、およびΔＣの各々が正、負、およびゼロの場合を示す。
【００９６】
図１７に示されるように、ロワーページからの読み出しの場合、シーケンサ１２は、デフォルト値の読み出し電圧ＶＡに代えて、デフォルト値の読み出し電圧ＶＡと調整値ΔＡとの和をワード線ＷＬｘに印加する。調整値ΔＡがゼロの場合、シーケンサ１２はデフォルト値の電圧ＶＡをワード線ＷＬｙに印加する。
【００９７】
シーケンサ１２は、さらに、デフォルト値の読み出し電圧ＶＣに代えて、デフォルト値の読み出し電圧ＶＣと指定された調整値ΔＣとの和をワード線ＷＬｙに印加する。調整値ΔＣがゼロの場合、シーケンサ１２はデフォルトの電圧ＶＣをワード線ＷＬｙに印加する。
【００９８】
アッパーページからの読み出しの場合、シーケンサ１２は、デフォルト値の読み出し電圧ＶＢに代えて、デフォルト値の読み出し電圧ＶＢと指定された調整値ΔＢとの和をワード線ＷＬｙに印加する。調整値ΔＢがゼロの場合、シーケンサ１２はデフォルトの電圧ＶＢをワード線ＷＬｙに印加する。
【００９９】
＜１．３．利点＞
第１実施形態によれば、メモリコントローラ２００はメモリ装置１００をより適切に制御できる。詳細は、以下の通りである。
【０１００】
一般に、半導体の特性は半導体の温度に依存し、よって、半導体を使用したメモリ装置の特性もメモリ装置の温度に依存する。このため、相違する温度において、あるパラメータについての最適の値は相違する。しかしながら、実際には、メモリ装置は、各パラメータについて、ある特定の温度での最適な値が、相違する温度に対して使用される。よって、最適化の照準の温度と異なる温度では、メモリ装置は最適な動作を行えない場合がある。メモリ装置は、あるパラメータのために最適でない値を使用して動作すると、最適な値を使用した場合と異なる結果をもたらし得る。このことは、メモリ装置が、最適化の照準の温度以外の温度で動作すると、データの誤書き込みおよび（または）誤読み出しを引き起こし得ることに繋がる。メモリ装置が使用される温度の範囲が狭ければ、データの誤書き込みおよび（または）誤読み出しの程度は小さい。
【０１０１】
ところが、メモリシステム１のようなメモリ装置を含んだメモリシステムは、広い温度範囲で使用される場合がある。このことは、メモリ装置が最適化の照準の温度と大きく異なる温度で動作し得ることを意味し、このような動作は頻繁に誤書き込みおよび（または）誤読み出しを引き起こし得る。
【０１０２】
またメモリ装置の読み出しの特性は、書き込みにも影響し得る。例えば、ある温度での書き込みのとき、ベリファイ電圧（ＡＶ、ＢＶ、またはＣＶ）を若干下回るセルトランジスタＭＴにプログラム電圧を印加した結果、書き込みの時の温度によっては当該セルトランジスタＭＴの閾値電圧が過剰に上昇し得る。このように読み出し特性は書き込みの時の温度にも影響されるため、たとえ読み出しの時のメモリ装置の温度に基づいて読み出しが行われても、最適化が不十分な可能性がある。すなわち、ある第１温度において調整された値を使用して行われたあるデータの読み出しは、第２温度で当該データが書き込まれていた場合は最適であっても、第３温度で当該データが書き込まれていた場合は最適でない可能性がある。
【０１０３】
第１実施形態によれば、メモリコントローラ２００は、温度組合せテーブルを保持し、ブロックＢＬＫｘについての書き込み温度および読み出し温度の組合せから１つの調整値（ΔＡ）を特定し、調整値と対応するパラメータのデフォルトの値との和の使用をメモリ装置１００に指示する。各調整値は、対応する書き込み温度および読み出し温度のときに当該調整値とデフォルト値の和が対応するパラメータのために使用されると、温度に関して最適化された読み出しを可能にするように定められている。このように、各調整値は、読み出し対象のデータが読み出される時の温度と、当該読み出しデータが書き込まれた時の温度の両方に基づく。よって、温度についてより最適化された形でデータが読み出されることが可能である。このことは、メモリシステム１の温度に基づく性能のばらつきを、ある固定値の温度で最適化された値のパラメータを使用するメモリシステムより低減できる。
【０１０４】
メモリシステム１の温度に基づく性能のばらつきの低減は、メモリシステム１の寿命を延ばすことができる。詳細は以下の通りである。上記のように、一般に、メモリ装置の種々のパラメータの値は、ある固定の温度に対して最適化されている。このため、書き込み温度または読み出し温度がパラメータの最適値の照準の温度と異なると、読み出しデータが多くの誤りを含むことになる。加えて、読み出し温度が書き書き込み温度とかけ離れていると、読み出しデータのエラーレートはさらに上昇する。メモリコントローラ２００は、このようなエラーレートが高い状態を検出すると、読み出しデータを保持していたセルユニットＣＵの劣化が進んでいると判断する。そして、メモリコントローラ２００は、劣化が進んだと判断されたセルユニットＣＵにそのデータの消去後に別のデータを書き込む際、より多くの誤りを訂正できる誤り訂正データを使用する。例えばあるページに図６の上段の大きさの誤り訂正データを使用して書き込まれていたのに対し、図６の中段または下段の大きさの誤り訂正データを使用した書き込みに切り替える。この結果、フレームが縮小し、メモリ装置１００によって保持されることが可能なデータの容量が低下する。
【０１０５】
縮小したフレームが増えると、メモリコントローラ２００とメモリ装置１００は、必要なデータの読み出しまたは書き込みのためにメモリ装置１００へのデータの書き込みまたは読み出しの回数が増加する。このことは、メモリシステム１を劣化させ、寿命を短くする。
【０１０６】
第１実施形態によれば、上記のように、温度についてより最適化された形でデータが読み出されることが可能であり、このことは、読み出しデータのエラーレートの減少を抑制し、ひいてはフレームの縮小を抑制する。この結果、メモリ装置１００でのデータの読み出しまたは書き込みの回数の増加が抑制され、ひいては、メモリシステム１の寿命が延伸されることが可能である。同様の理由により、メモリシステム１の出荷前の試験において、メモリシステム１が劣化を起こしやすいと誤って判断されることが回避され、よって、メモリシステム１の歩留りが向上する。
【０１０７】
＜１．４．変形等＞
書き込みの間および読み出しの間に、ある条件が満たれた場合に書き込み温度データおよび読み出し温度データが取得される例が記述された。代わりに、メモリコントローラ２００は、選択メモリ装置１００から定期的に温度データを取得してもよい。例えば、メモリコントローラ２００は、データの読み出しの際に、最後に取得された温度データを、当該読み出しのための読み出し温度データとして扱う。書き込みおよび消去についても同様である。書き込みおよび消去については、当該書き込みまたは消去の指示の後の最初の温度データが使用されてもよい。
【０１０８】
パラメータのデフォルト値に対して調整値を組合せる形態を説明したが、第１実施形態では、固定のパラメータを動的に変化させて調整をすることができれば良い。例えば、高温書き込みかつ低温読み出し、または低温書き込みかつ高温読み出しの特性に応じて生成されたパラメータ等、新規の特殊パラメータが生成および使用されることが可能である。この場合、調整値とデフォルト値の和を算出されず、生成された、あるいは選ばれた特殊パラメータがそのまま使用される。
【０１０９】
また、パラメータの調整以外の方法で温度変化に伴う不具合への対応策として、例えば優先度の高いデータが、メモリセルアレイ１１中のデータ保護の観点から比較的信頼性の高い領域に書き込まれることが知られている。このような書き込みが第１実施形態と組合せられてもよい。データ保護の観点から比較的信頼性の高い領域は、ＳＬＣブロック（１セルトランジスタＭＴ当たり１ビットのデータを保持するように使用されるブロック）ＢＬＫ、１つのワードラインおきに書くブロックＢＬＫ、強い誤り訂正機能で保護される領域を含む。
【０１１０】
強い誤り訂正機能で保護される所定の領域の例は、図６の下段で示された最も高い誤り訂正能力を実現する方法のように、誤り訂正データの占める割合が高い状況下での同ページ内のユーザデータ領域や、一部をパリティ保存に使用した状況でのユーザデータ領域を含む。
【０１１１】
更に、パラメータの調整以外の方法で温度変化に伴う不具合への他の対応策として、当該温度変化に比較的大きな交差が生じた際、アクセス対象となっているブロックＢＬＫに対してリフレッシュ処理を実施することも有効である。例えば書き込み時の温度を参照し、読み出し時の温度差が所定閾値以上となった場合にリフレッシュを行う形態や、設定値の上限を上回る高温での書き込み、または設定値の下限を下回る低温での書き込みが行われた際、それぞれの温度が時間経過に伴って設定値範囲内（例えば室温）に戻った際にリフレッシュ処理を実施することも有効である。
【０１１２】
例えば、リフレッシュ処理の一例として、メモリシステム1全体として上記条件下でガベージコレクションの優先度を動的に変更させたり、ホスト２からの読み出し要求をカウントしておき、カウント値がある閾値まで到達したら一旦リード処理を中断させて、リフレッシュが行われることが可能である。このようなリフレッシュが第１実施形態に組合せられてもよい。
【０１１３】
また、温度組合せテーブルは、ファームウェアに組み込まれることが可能である。この場合、温度組合せテーブルは、メモリシステム１のオフの度にメモリ装置１に書き込まれることを要しない。
【０１１４】
（第２実施形態）
第２実施形態は、第１実施形態に類似し、書き込み温度に加えてまたは書き込み温度に代えて、消去の時の温度（消去温度）が使用される。
【０１１５】
以下の記述は、書き込み温度に加えて消去温度が使用される例に関する。書き込み温度に代えて消去温度が使用される例については、第１実施形態の書き込み温度が消去温度で置換されたのみであり、よって、記述は省略される。
【０１１６】
＜２．１．構成＞
第２実施形態のメモリシステム１、メモリコントローラ２００、およびメモリ装置１００は、第１実施形態のものと同じ要素および接続を有する。一方、第２実施形態では、メモリコントローラ２００およびメモリ装置１００は、以下に記述される動作を行えるように構成されている。
【０１１７】
＜２．２．動作＞
メモリコントローラ２００は、メモリシステム１がオンしている間、各メモリ装置１００用に図１８および図１９に示されるテーブルを保持する。図１８は、第２実施形態に係る温度組合せテーブルの組を示し、１つのパラメータのための複数の温度組合せテーブルを示す。メモリコントローラ２００は、その他の各パラメータのための図１８と同様の温度組合せテーブルの組を複数保持する。図１８のテーブルの対象のパラメータの例は、第１実施形態と同じく、読み出し電圧ＶｃｇｒおよびＶｒｅａｄを含むが、これらに限定されない。図１９は第２実施形態に係る消去・書き込み温度テーブルを示す。温度組合せテーブルおよび消去・書き込み温度テーブルは、第１実施形態と同じく、例えば、メモリシステム１がオフする前に、対応する記憶装置１００に書き込まれる。
【０１１８】
図１８の各温度組合せテーブルは、相違する複数の消去温度についての、読み出し温度と書き込み温度の各組合せに基づく調整値Δ（ΔＢ０、ΔＢ１、…）を示す。すなわち、ある温度組合せテーブルは、対応する１つのメモリ装置１００がデータの消去の時に温度ＴＥ０であった場合の調整値を示す。同様に、相違する複数の消去温度ＴＥ０〜ＴＥ８のためのそれぞれの温度組合せテーブルが用意される。消去温度ＴＥ０〜ＴＥ８は、例えば１０℃ずつ相違し、例えばそれぞれ０、１０、２０、３０、４０、５０、６０、７０、および８０℃である。この例とは別の消去温度および差が使用されてもよい。各温度組合せテーブルの構造自体は、第１実施形態の１つのパラメータについての温度組合せテーブルの構造と同じである。ただし、調整値Δの組は、２つの温度組合せテーブルに亘って相違する場合もあれば同じ場合もある。１つの温度組合せテーブルの組が、複数の記憶装置１００に対して共通に使用されてもよい。
【０１１９】
図１９に示されるように、消去・書き込み温度テーブルは、複数のブロックの各々についてのエントリを有する。各エントリは、第１実施形態と同様の書き込み温度に加えて、消去温度を含む。あるブロックＢＬＫについての消去温度ＴＥ０、ＴＥ１、ＴＥ２、ＴＥ３、ＴＥ４、ＴＥ５、ＴＥ６、ＴＥ７、またはＴＥ８は、当該ブロックＢＬＫの消去の時の温度センサ１７での測定温度である。消去・書き込み温度テーブルで保持される消去温度および書き込み温度は、温度組合せテーブルで使用される離散的な複数の温度と同じ複数の温度の組の１つである。
【０１２０】
次に、図２０〜図２２を参照して、第２実施形態のメモリシステム１の動作が記述される。図２０〜図２２は、第２実施形態のメモリシステム１の動作のフローを示す。図２０〜図２２は、フローが必要以上に複雑となることを避けるために、第１実施形態（図７〜図９と同じく、ブロックＢＬＫｘに関連する処理を中心に示す。
【０１２１】
ステップＳ１で構築されるテーブルは、温度組合せテーブル、および消去・書き込み温度テーブルを含む。
【０１２２】
ステップＳ３１において、全体制御部２２は、メモリインターフェイス２４を制御して、ブロックＢＬＫｘのデータの消去を選択メモリ装置１００に指示する。当該消去は、例えばホスト装置２からの指示に基づく。または、消去は、ホスト装置２からの指示に基づかずに全体制御部２２による決定に基づく。例えば、全体制御部２２は、ホスト装置２からの指示とは無関係に、ガベージコレクションおよびリフレッシュを含む実体的データの移動のために、メモリ装置１００中のあるブロックＢＬＫ中のデータを別のブロックＢＬＫへとコピーし、コピー元のデータを消去することを決定する。消去の指示は、例えば、消去コマンドおよび消去対象ブロックを指定するアドレス信号を含む。
【０１２３】
選択メモリ装置１００が、消去コマンドおよびアドレス信号を受け取ると、シーケンサ１２は、電位生成回路１３、ドライバ１４、ロウデコーダ１５、およびセンスアンプ１６を制御して、ブロックＢＬＫｘのデータを消去する（ステップＳ３２）。
【０１２４】
消去が完了すると、メモリコントローラ２００は、温度データの送信を選択メモリ装置１００に指示する（ステップＳ３３）。温度データの送信を指示されると、シーケンサ１２は、温度センサ１７から温度情報ＭＮＤを取得する（ステップＳ３４）。次いで、シーケンサ１２は、取得された温度情報ＭＮＤに含まれる温度を示すデータをメモリコントローラ２００に送信する（ステップＳ３５）。送信される温度データは、ブロックＢＬＫｘについての消去の時の消去温度を含んだ消去温度データと称される。
【０１２５】
メモリコントローラ２００は、消去温度データを受け取ると、消去・書き込み温度テーブルを更新する（ステップＳ３６）。すなわち、メモリコントローラ２００は、消去温度データに示される消去温度を、消去・書き込み温度テーブル中のブロックＢＬＫｘのための消去温度として保持する。次いで、メモリシステム１は種々の処理を行う（ステップＳ３７）。
【０１２６】
ステップＳ３７の後、ステップＳ９がステップＳ４１によって置換されることを除いて、メモリコントローラ２００は第１実施形態（図７〜図９）のステップＳ３、Ｓ４、Ｓ５、Ｓ６、Ｓ７、Ｓ８、Ｓ９、Ｓ１１、Ｓ１２、Ｓ１３、Ｓ１４、Ｓ１５、Ｓ１６、およびＳ１７と同じ処理を行う。ステップＳ４１において、メモリコントローラ２００は、ステップＳ８で知得した書き込み温度データで、消去・書き込み温度テーブルを更新する。すなわち、メモリコントローラ２００は、消去温度データに示される消去温度を、消去・書き込み温度テーブル中のブロックＢＬＫｘのための消去温度として保持する。
【０１２７】
ステップＳ１７において、メモリコントローラ２００がセルユニットＣＵｘからの読み出しの直前の処理がブロックＢＬＫｘ中のセルユニットＣＵからの読み出しでないと判断する場合（Ｎｏ分岐）、フローはステップＳ４２に移行する。ステップＳ４２において、メモリコントローラ２００は消去・書き込み温度テーブルを参照して、ブロックＢＬＫｘの消去温度および書き込み温度を知得する。ステップＳ４２はステップＳ４３に継続する。
【０１２８】
一方、ブロックＢＬＫｘからの読み出しである場合（ステップＳ１７のＹｅｓ分岐）、フローはステップＳ４２を経ずにステップＳ４３に移行する。ステップＳ１７およびＳ４２の組は、ステップＳ１２〜Ｓ１６の組に先行してもよい。
【０１２９】
ステップＳ４３において、メモリコントローラ２００は、温度組合せテーブルを参照し、ブロックＢＬＫｘの読み出し温度、消去温度、ならびに書き込み温度から特定される調整値Δを知得する。使用される温度組合せテーブルは、メモリコントローラ２００が補正を望むパラメータについてのものである。複数のパラメータが補正される場合、各パラメータ用の温度組合せテーブルが参照されて、各パラメータ用の調整値Δが特定される。
【０１３０】
ステップＳ４３の後、１点を除いて、メモリコントローラ２００は、第１実施形態（図７〜図９）のステップＳ２１、Ｓ２２、Ｓ２３、Ｓ２４、Ｓ２６、およびＳ２８と同じ処理を行う。異なる１点は、ステップＳ２７のＮｏ分岐がステップＳ２に継続することである。
【０１３１】
＜２．３．利点＞
第２実施形態によれば、メモリコントローラ２００は、第１実施形態と同じく、各パラメータについての温度組合せテーブルを保持し、書き込み温度および読み出し温度の組合せから特定された調整値（Δ）と対応するパラメータのデフォルトの値との和の使用をメモリ装置１００に指示する。このため、第１実施形態と同じ利点を得られる。
【０１３２】
さらに、第２実施形態によれば、メモリコントローラ２００は、１つのパラメータについて、複数の相違する消去温度の各々についての温度組合せテーブルを保持する。そして、メモリコントローラ２００は、ブロックＢＬＫｘについての消去温度、書き込み温度、および読み出し温度の組合わせから１つの調整値を特定し、調整値と対応するパラメータのデフォルトの値との和の使用をメモリ装置１００に指示する。このため、温度について第１実施形態よりもさらに最適化された形でデータが読み出されることが可能である。ひいては、第１実施形態において記述されたのと同じ原理により、第２実施形態のメモリシステム１の寿命は第１実施形態での寿命よりさらに長く、第２実施形態のメモリシステム１の歩留りは第１実施形態での歩留まりよりさらに高い。
【０１３３】
（第３実施形態）
第３実施形態は、書き込みの最適化に関する。
【０１３４】
＜３．１．構成＞
第３実施形態のメモリシステム１、メモリコントローラ２００、およびメモリ装置１００は、第１実施形態のものと同じ要素および接続を有する。一方、第３実施形態では、メモリコントローラ２００およびメモリ装置１００は、以下に記述される動作を行えるように構成されている。
【０１３５】
＜３．２．動作＞
メモリコントローラ２００は、メモリシステム１がオンしている間、図２３に示されるテーブルを保持する。図２３は、第３実施形態のメモリコントローラ２００によって構築される書き込み温度・パラメータ調整値テーブルを示す。図２３に示されるように、書き込み温度・パラメータ調整値テーブルの各行は、１つの書き込み温度についての調整値ΔＣ（ΔＣ１０、ΔＣ１１、…）を示す。各行での書き込み温度は、下隣りの行での温度と、ある大きさだけ離れている。書き込み温度ＴＷ０〜ＴＷ８は、例えばそれぞれ０、１０、２０、３０、４０、５０、６０、７０、および８０℃である。各列は、書き込みの間に使用される１つのパラメータについての情報を示す。パラメータの例は、開始プログラム電圧Ｖｐｇｍｉ、差ΔＶｐｇｍ、電圧Ｖｐａｓｓ、ベリファイ電圧Ｖｖｆ、およびプログラム電圧印加時間Ｔを含み、しかしこれらに限定されない。開始プログラム電圧Ｖｐｇｍｉ、書き込みの間の複数のプログラムループのうちの最初のプログラムループにおいて選択ワード線ＷＬに印加される電圧である。差ΔＶｐｇｍは、書き込みの間の複数のプログラムループにおいて選択ワード線ＷＬにそれぞれ印加される複数の電圧のうちの、第ｐ（ｐは自然数）プログラムループでの電圧と第ｐ＋１プログラムループでの電圧の差である。電圧Ｖｐａｓｓは、書き込みの間に選択ワード線ＷＬ以外のワード線（非選択ワード線）ＷＬに印加される。プログラム電圧印加時間Ｔは、各プログラムループにおいて、選択ワード線ＷＬにプログラム電圧Ｖｐｇｍが印加される時間である。
【０１３６】
次に、図２４および図２５を参照して、第３実施形態のメモリシステム１の動作が記述される。図２４および図２５は、第３実施形態のメモリシステムの動作のフローを示す。図２４および図２５は、フローが必要以上に複雑となることを避けるために、図７〜図９と同じく、ブロックＢＬＫｘに関連する処理を中心に示す。
【０１３７】
ステップＳ１で構築されるテーブルは、書き込み温度・パラメータ調整値テーブルを含む。ステップＳ２に続いて、メモリコントローラ２００は、ブロックＢＬＫｘ中のセルユニットＣＵｙへデータを書き込むことを決定する（ステップＳ５１）。書き込みの決定は、例えばホスト装置２からの書き込みの指示に基づき、または、ホスト装置２からの指示に基づかず、メモリコントローラ２００が管理データをメモリ装置１００に書き込むとの決定に基づく。
【０１３８】
次いで、メモリコントローラ２００は、ステップＳ１２を行う。基準時間経過した場合（ステップＳ１２のＹｅｓ分岐）、現在の温度データを取得するために、メモリコントローラ２００は、ステップＳ６、Ｓ７、およびＳ８を行う。ステップＳ８はステップＳ５２に継続する。基準時間経過していない場合（ステップＳ１２のＮｏ分岐）も、フローはステップＳ５２に継続する。
【０１３９】
ステップＳ５２において、メモリコントローラ２００は、書き込み温度・パラメータ調整値テーブルを参照し、知得された書き込み温度から特定される１または複数の調整値ΔＣを知得する。次いで、メモリコントローラ２００は、特定された調整値ΔＣの使用をメモリ装置１００に指示する（ステップＳ２１）。次いで、ステップＳ５３において、メモリコントローラ２００は、選択メモリ装置１００に書き込みを指示する。指示のために、書き込みコマンド、セルユニットＣＵｙ、を特定するアドレスを示す情報、ページを特定する情報、および書き込みデータが送信される。選択メモリ装置１００は、指示を受けると、指示された処理を実行する（ステップＳ４）。
【０１４０】
ステップＳ４に続いて、ステップＳ２７およびＳ２８が行われる。終了処理が開始しない限り（ステップＳ２７のＮｏ分岐）、フローはステップＳ２に戻る。
【０１４１】
＜３．３．利点＞
第３実施形態によれば、メモリコントローラ２００は、書き込み温度・パラメータ調整値テーブルを保持し、書き込み温度を知得し、知得された書き込み温度に基づいて選択された調整値（ΔＣ）および対応するパラメータのデフォルト値の和の使用をメモリ装置１００に指示する。第１実施形態において記述されたように、書き込みの時の温度はメモリ装置１００の書き込み性能に影響する。よって、温度についてより最適化された形でデータが書き込まれることが可能である。このことは、メモリシステム１の温度に基づく性能のばらつきを、ある固定値の温度で最適化された値のパラメータを使用するメモリシステムより低減できる。また、書き込みの時の温度に基づいて最適化された電圧による書き込みがなさることにより、セルユニットＣＵへの不適切な電圧印加に伴うセルユニットＣＵのデータ信頼性劣化を軽減し、メモリシステム１の寿命を改善できる。
【０１４２】
（第４実施形態）
第４実施形態は、消去の最適化に関する。
【０１４３】
＜４．１．構成＞
第４実施形態のメモリシステム１、メモリコントローラ２００、およびメモリ装置１００は、第１実施形態のものと同じ要素および接続を有する。一方、第４実施形態では、メモリコントローラ２００およびメモリ装置１００は、以下に記述される動作を行えるように構成されている。
【０１４４】
＜４．２．動作＞
メモリコントローラ２００は、メモリシステム１がオンしている間、図２６に示されるテーブルを保持する。図２６は、第４実施形態のメモリコントローラ２００によって構築される消去温度・パラメータ調整値テーブルを示す。図２６に示されるように、消去温度・パラメータ調整値テーブルの各行は、１つの消去温度についての調整値ΔＤ（ΔＤ１０、ΔＤ１１、…）を示す。各行での消去温度は、下隣りの行での温度と、ある大きさだけ離れている。消去温度ＴＥ０〜ＴＥ８は、例えばそれぞれ０、１０、２０、３０、４０、５０、６０、７０、および８０℃である。各列は、消去の間に使用される１つのパラメータについての情報を示す。パラメータの例は、消去ベリファイ電圧Ｖｅｖｆを含み、しかしこれに限定されない。消去ベリファイ電圧Ｖｅｖｆは、消去の完了の確認のために消去対象のブロックＢＬＫ中のワード線ＷＬに印加される。すなわち、消去対象のブロックＢＬＫの全ワード線ＷＬに０Ｖが印加され、かつ、セルトランジスタＭＴの基板（ピラーＰＬ）にＶｅｒａ（例えば２０Ｖ）が印加されることで消去が行われ、消去動作の後、セルトランジスタＭＴの状態をセンスするために印加される。
【０１４５】
次に、図２７および図２８を参照して、第４実施形態のメモリシステム１の動作が記述される。図２７および図２８は、第４実施形態のメモリシステムの動作のフローを示す。図２７および図２８は、フローが必要以上に複雑となることを避けるために、図７〜図９と同じく、ブロックＢＬＫｘに関連する処理を中心に示す。
【０１４６】
ステップＳ１で構築されるテーブルは、消去温度・パラメータ調整値テーブルを含む。ステップＳ２に続いて、メモリコントローラ２００は、ブロックＢＬＫｘ中のデータの消去を決定する（ステップＳ１１１）。消去の決定は、例えばホスト装置２からの書き込みの指示に基づく。
【０１４７】
次いで、メモリコントローラ２００は、ステップＳ１２を行う。基準時間経過した場合（ステップＳ１２のＹｅｓ分岐）、現在の温度データを取得するために、メモリコントローラ２００は、ステップＳ３３、Ｓ３４、およびＳ３５を行う。ステップＳ３５はステップＳ１１２に継続する。基準時間経過していない場合（ステップＳ１２のＮｏ分岐）も、フローはステップＳ１１２に継続する。
【０１４８】
ステップＳ１１２において、メモリコントローラ２００は、消去温度・パラメータ調整値テーブルを参照し、知得された消去温度から特定される調整値ΔＤを知得する。次いで、メモリコントローラ２００は、特定された調整値ΔＤの使用をメモリ装置１００に指示する（ステップＳ２１）。次いで、ステップＳ１１３において、メモリコントローラ２００は、選択メモリ装置１００に消去を指示する。指示のために、消去コマンド、ブロックＢＬＫｘを特定するアドレスを示す情報が送信される。
【０１４９】
選択メモリ装置１００は、指示を受けると、ブロックＢＬＫｘのデータを消去する（ステップＳ１１４）。消去は、データ消去のための電圧の印加、および消去ベリファイを含む。消去において、シーケンサ１２は、適用を指定された調整値ΔＤと、当該調整値ΔＤの対象のパラメータのデフォルト値との和を使用する。
【０１５０】
ステップＳ１１４に続いて、ステップＳ２７およびＳ２８が行われる。終了処理が開始しない限り（ステップＳ２７のＮｏ分岐）、フローはステップＳ２に戻る。
【０１５１】
＜４．３．利点＞
第４実施形態によれば、メモリコントローラ２００は、消去温度・パラメータ調整値テーブルを保持し、消去温度を知得し、知得された消去温度に基づいて選択された調整値（ΔＤ）および対応するパラメータのデフォルト値の和の使用をメモリ装置１００に指示する。書き込みおよび読み出しと同様に、消去の時の温度はメモリ装置１００の消去の性能に影響する。特に、消去ベリファイは相違する電圧を使用するものの読み出しと同じであり、よって消去ベリファイは消去ベリファイの時の温度に影響される。このため、消去温度に基づく消去によって温度についてより最適化された形でデータが消去されることが可能である。このことは、メモリシステム１の温度に基づく性能のばらつきを、ある固定値の温度で最適化された値のパラメータを使用するメモリシステムより低減できる。
【０１５２】
（第５実施形態）
第５実施形態では、第１〜３実施形態のメモリコントローラによる動作がホスト装置２により行われる。
【０１５３】
＜５．１．構成＞
図２９は、第５実施形態の情報処理システム４の機能ブロックを示す。図２９に示されるように、情報処理システム４は、ホスト装置２および１または複数のメモリシステム１を含む。図２９は１つのメモリシステム１の例を示し、以下の記述は１つのメモリシステム１の例に関する。
【０１５４】
ホスト装置２は、ＣＰＵ４１、ＲＡＭ４２、およびコントローラ４３を含む。ＲＡＭ４２は、情報処理システム４が電源を供給されてオンしている間、種々のプログラム（ファームウェア）および種々のデータを保持する。保持されるプログラムの例は、オペレーティングシステム（ＯＳ）、ファイルシステム、アプリケーションソフトウェアレイヤ等を格納している。また、ＲＡＭ４２は、メモリ装置温度情報２３１を含む。上記のようにメモリ装置温度情報２３１は、温度組合せテーブルおよび書き込み温度テーブルを含む。
【０１５５】
ＣＰＵ４１は、ＲＡＭ４２上のプログラムを実行することにより、種々の処理を行う。ＣＰＵ４１はまた、ＰＣＩｅ等の通信規格に則ったバスを介してコントローラ４３に接続されている。ＣＰＵ４１は、ＰＣＩｅに則ってコントローラ４３と通信し、ＰＣＩｅに則ってコントローラ４３を制御する。
【０１５６】
コントローラ４３はまた、ＡＴＡ、ＳＡＴＡ、およびＳＡＳ等の通信規格に則ったバスを介して各メモリシステム１と接続されている。コントローラ４３は、ＣＰＵが則るインターフェイスと、メモリシステム１がその外部との通信のために則るインターフェイスが相違する場合に、２つのインターフェイスの一方に則った信号を他方に則った信号に変換する。
【０１５７】
ホスト装置２は、さらに、ネットワークと接続されるための要素を含んでいてもよい。
【０１５８】
ホスト装置２は、第１実施形態と同様に、メモリシステム１にデータを書き込んだり、メモリシステム１からデータを読み出したり、メモリシステム１中のデータを消去したりすることをメモリシステム１に指示できる。これらのデータの書き込み、データの読み出し、およびデータの読み出しは、ホスト装置２により実行を決定されたコンパクションおよび（または）リフレッシュの一部であり得る。さらに、ホスト装置２は、データの書き込み、読み出し、および消去以外の指示をメモリシステム１に送信することができる。そのような指示は、例えば、メモリ装置１００の状態を示す信号の出力、ホスト装置２によって開始および管理されるガベージコレクション、種々の条件を指定した上でのデータの書き込み、読み出し、および消去を含む。これらの処理のメモリシステム１への指示の実行は、ＯＳ、アプリケーションソフトウェアレイヤ、ファイルシステムにより決定される。
【０１５９】
メモリシステム１は、第１実施形態のものと同じ要素および接続を有する。
【０１６０】
＜５．２．動作＞
図３０〜図３２は、第５実施形態の情報処理システム４の動作のフローを示し、第５実施形態が第１実施形態に適用された例を示す。図３０〜図３２は、フローが必要以上に複雑となることを避けるために、ある論理アドレス群ＬＢｘに関連する処理を中心に示す。論理アドレス群ＬＢは、１つの論理アドレス、または連続するある個数の論理アドレスの組である。図３０〜図３２のフローは、図７〜図９のフローに類似する。主な相違点は、図７〜図９のフローではメモリコントローラ２００によって行われるいくつかのステップがホスト装置２による指示に基づくことである。
【０１６１】
図３０に示されるように、情報処理システム４は、起動すると、起動処理を行う（ステップＳ６１）。起動処理は、情報処理システム４が、メモリシステム１中のデータを使用した情報処理が可能な状態になるまでに必要な処理を指す。起動処理は、ホスト装置２（具体的にはＲＡＭ４２上のプログラム）およびメモリコントローラ４００による、情報処理システムの動作に必要な種々の管理テーブルの構築を含む。具体的には、ステップＳ６１は、サブステップＳＳ６１１およびＳＳ６１２を含む。サブステップＳＳ６１１およびＳＳ６１２はサブステップＳＳ１１およびＳＳ１２にそれぞれ類似する。
【０１６２】
サブステップＳＳ６１１において、ホスト装置２は、温度組合せテーブルおよび書き込み温度テーブルの構築に必要なデータを指定して、これらのデータの読み出しをメモリシステム１に指示する。メモリシステム１は、指示を受け取ると、指示されたデータをホスト装置２に送信する。また、サブステップＳ６１１において、メモリコントローラ２００は、メモリコントローラ２００にとって必要なテーブルの構築に必要なデータを各メモリ装置１００から読み出す。
【０１６３】
サブステップＳＳ６１２において、ホスト装置２は受け取られたデータから温度組合せテーブルおよび書き込み温度テーブルを構築し、メモリコントローラ２００は受け取られたデータからテーブルを構築する。温度組合せテーブルおよび書き込み温度テーブルは、第１実施形態のものと同じである。ただし、書き込み温度テーブルは、第１実施形態でのブロックＢＬＫごとの書き込み温度の情報に代えて、論理アドレス群ＬＢごとの書き込み温度の情報を示す。
【０１６４】
ステップＳ６２において、情報処理システム４は種々の処理を行う。種々の処理は、例えば、読み出し、および（または）論理アドレス群ＬＢｘ以外の論理アドレス群ＬＢ中の論理アドレスを付されたデータ書き込みを含む。ステップＳ６３において、ホスト装置２は、論理アドレス群ＬＢｘ中の論理アドレスＬＡｙを付されたデータの書き込みをメモリシステム１に指示する。ステップＳ６４において、メモリシステム１は、指示された書き込みを行う。書き込みにおいて、メモリコントローラ２００は、論理アドレスＬＡｙを付されたデータを書き込むブロックＢＬＫを決定し、論理アドレスＬＡｙと決定されたブロックＢＬＫとの関連付けをアドレス変換テーブルに反映させる。
【０１６５】
ステップＳ６５において、ホスト装置２はステップＳ６３での指示に続いて指示される処理が、論理アドレス群ＬＢｘ中の論理アドレスを付されたデータの書き込みであるかを判断する。ステップＳ６３に続く処理が論理アドレス群ＬＢｘ中の論理アドレスを付されたデータの書き込みでない場合（ステップＳ６５のＮｏ分岐）、ホスト装置２は、温度データの送信をメモリシステム１に指示する（ステップＳ６６）。温度データの送信の指示のために、ホスト装置２は、温度データ読み出しコマンドをメモリシステム１に送信する。メモリコントローラ２００は、ホスト装置２からの温度データ読み出しコマンドを受け取ると、ステップＳ６４で指示された書き込みの対象の選択メモリ装置１００に、温度データの読み出しを指示する。ステップＳ６７において、シーケンサ１２はステップＳ７と同じ動作を行って温度データを取得し、これを書き込み温度データとしてメモリコントローラ２００に送信する。ステップＳ６８において、メモリコントローラ２００は、書き込み温度データを、ホスト装置２に送信する。
【０１６６】
ステップＳ６９において、ホスト装置２は、書き込み温度データを受け取ると、書き込み温度テーブルを更新する。ステップＳ６９はステップＳ７０に継続する。
【０１６７】
ステップＳ６３に続く処理が論理アドレス群ＬＢｘ中の論理アドレスを付されたデータ書き込みである場合（ステップＳ６５のＹｅｓ分岐）、フローはステップＳ６６、Ｓ６７、Ｓ６８、およびＳ６９を経ずにステップＳ７０に移行する。
【０１６８】
ステップＳ７０において、情報処理システム４は、ステップＳ６２と同じく種々の処理を行う。フローが、ステップＳ６５のＹｅｓ分岐からステップＳ７０に到達した場合は、ステップＳ７０での処理は、論理アドレス群ＬＢｘ中の論理アドレスを付されたデータの書き込みである。
【０１６９】
ステップ７１において、ホスト装置２は、任意の処理・判断に基づいて、論理アドレス群ＬＢｘ中のある論理アドレスＬＡｙを付されたデータを読み出すことを決定する（ステップＳ７１）。ステップＳ７２において、ホスト装置２は、温度データが最も近い過去に読み出された時から基準時間経過したかを判断する。基準時間経過した場合（ステップＳ７２のＹｅｓ分岐）、ホスト装置２は、温度データ読み出しコマンドをメモリシステム１に送信する（ステップＳ７３）。
【０１７０】
ステップＳ７４において、シーケンサ１２はステップＳ１４と同じ動作を行って温度データを取得し、これを読み出し温度データとしてメモリコントローラ２００に送信する。ステップＳ７６において、メモリコントローラ２００は、読み出し温度データをホスト装置２に送信する。
【０１７１】
最も近い過去に温度データが読み出された時から基準時間経過していない場合（ステップＳ７２のＮｏ分岐）、ホスト装置２は最も近い過去に取得された温度データを使用することを決定して、フローはステップＳ７７に移行する。
【０１７２】
ステップＳ７７において、ホスト装置２は、論理アドレスＬＡｙを付されたデータの読み出しの直前の処理が論理アドレス群ＬＢｘの中の論理アドレスＬＡのデータの読み出しであるかを判断する。論理アドレス群ＬＢｘ中の論理アドレスＬＡのデータの読み出しでない場合（ステップＳ７７のＮｏ分岐）、ホスト装置２は書き込み温度テーブルを参照して、論理アドレス群ＬＢｘの書き込み温度を知得する（ステップＳ７８）。ステップＳ７８はステップＳ７９に継続する。一方、論理アドレス群ＬＢｘ中の論理アドレスＬＡのデータの読み出しである場合（ステップＳ７７のＹｅｓ分岐）、フローはステップＳ７８を経ずにステップＳ７９に移行する。ステップＳ７９において、ホスト装置２は、温度組合せテーブルを参照し、論理アドレス群ＬＢｘの読み出し温度および書き込み温度から特定される調整値ΔＡを知得する。
【０１７３】
ステップＳ９１において、ホスト装置２は、特定された調整値ΔＡと調整の対象のパラメータのデフォルト値との和の使用をメモリシステム１に指示する。ステップＳ９２において、ホスト装置２は、論理アドレス群ＬＢｘ中の論理アドレスＬＡｙのデータの読み出しをメモリシステム１に指示する。
【０１７４】
ステップＳ９３において、メモリシステム１は、指示されたデータを読み出す。すなわち、シーケンサ１２は、アドレス変換テーブルを参照して、メモリ装置１００中の読み出し対象のデータを保持するセルユニットＣＵおよびページを特定し、特定されたページからデータを読み出し、読み出し対象のデータをホスト装置２に送信する。読み出しのとき、シーケンサ１２は、適用を指定された調整値ΔＡと、当該調整値ΔＡの対象のパラメータのデフォルト値との和を使用する。ステップＳ９４において、ホスト装置２は、読み出しデータを受け取る。その後、メモリシステム１は、ステップＳ６２と同じく、種々の処理を行う（ステップＳ９６）。
【０１７５】
情報処理システム４がオフするための終了処理が開始しない限り（ステップＳ９７のＮｏ分岐）、フローはステップＳ６２に戻る。終了処理は、情報処理システム１がオフするための処理を指し、終了処理は例えばホスト装置２からのメモリシステム１への電源供給停止の開始の通知により開始する。終了処理が開始すると（ステップＳ９７のＹｅｓ分岐）、情報処理システム４は終了処理を行う（ステップＳ９８）。終了処理は、温度組合せテーブルおよび書き込み温度テーブルを含む管理テーブルを構築するのに必要なデータを、対応するメモリ装置１００に書き込むこと（サブステップＳＳ９８１）を含む。温度組合せテーブルおよび最新の書き込み温度テーブルを構築するのに必要なデータは、メモリシステム１がホスト装置２から電源供給を受けている間で、終了処理の開始前に定期的に各メモリ装置１００に書き込まれてもよい。温度組合せテーブルは、第１実施形態の変形例と同じく、ファームウェアに組み込まれることが可能である。この場合、温度組合せテーブルは、情報処理システム１のオフの度にメモリ装置１に書き込まれることを要しない。
【０１７６】
第５実施形態が第２実施形態に適用された形態は第２実施形態の図２０〜図２２のフローに類似し、相違点として、上記の図３０〜図３２のフローに関する記述が適用される。主な相違点は、図２０〜図２２のフローにおいてメモリコントローラ２００によって行われるいくつかのステップがホスト装置２による指示に基づくことである。図１９に示される消去・書き込み温度テーブルは、ホスト装置２により保持される。また、論理アドレス群ＬＢｘを付されたデータの消去は例えば情報処理システム１のユーザの処理に従ってホスト装置２により決定され、ホスト装置２はメモリシステム１に消去を指示する。メモリシステム１は、指示された消去を、アドレス変換テーブル等の管理データを更新しつつ、実行する。また、ホスト装置２は、温度データの送信をメモリシステム１に指示する。指示が受け取られると、メモリコントローラ２００は、温度データの送信をメモリ装置１００に指示し、消去温度データをメモリ装置１００から受け取り、消去温度データをホスト装置４に送信する。ホスト装置２は温度組合せテーブルを更新する。
【０１７７】
読み出しの時、ホスト装置２は、読み出し温度データの送信をメモリシステム１に指示する。メモリコントローラ２００は、指示を受け取ると、温度データの送信をメモリ装置１００に指示し、温度データをメモリ装置１００から受け取り、温度データをホスト装置２に送信する。次いで、ホスト装置２は、温度組合せテーブルを参照して、読み出し温度、および読み出しデータの消去温度ならびに書き込み温度から、対応する調整値ΔＢを知得する。続いて、ホスト装置２は、調整値ΔＢを使用して対応する論理アドレス群ＬＢ中の論理アドレスＬＡｙのデータを読み出することをメモリシステム１に指示する。
【０１７８】
また、第５実施形態が第３実施形態に適用された形態は第５実施形態の図２４〜図２５のフローに類似し、相違点として、上記の図３０〜図３２のフローに関する記述が適用される。主な相違点は、図２４〜図２５のフローにおいてメモリコントローラ２００によって行われるいくつかのステップがホスト装置２による指示に基づくことである。図２３に示される温度テーブルは、ホスト装置２により保持される。ホスト装置２は、ある論理アドレス群ＬＢ中の論理アドレスＬＡｙへの書き込みを決定すると、書き込み温度データの送信をメモリシステム１に指示する。メモリコントローラ２００は、指示を受け取ると、温度データの送信をメモリ装置１００に指示し、温度データをメモリ装置１００から受け取り、温度データを読み出し温度データとしてホスト装置２に送信する。次いで、ホスト装置２は、温度テーブルを参照して、書き込み温度データから、対応する調整値ΔＣを知得する。続いて、ホスト装置２は、調整値ΔＣを使用してデータを書き込むことをメモリシステム１に指示する。
【０１７９】
＜５．３．利点＞
第５実施形態によれば、ホスト装置２によって、第１〜第３実施形態と同じく、温度についてより最適化されたデータの読み出しおよび（または）書き込みが行われる。温度について最適化されたデータの読み出しおよび（または）書き込みがホスト装置２の主導により行われても、第１〜第３実施形態と同じ利点が得られる。
【０１８０】
（第６実施形態）
第６実施形態は、第３実施形態に適用され、書き込みの時のベリファイ電圧の調整に関する。
【０１８１】
＜６．１．構成＞
第６実施形態のメモリシステム１、メモリコントローラ２００、およびメモリ装置１００は、第１実施形態のものと同じ要素および接続を有する。一方、第６実施形態では、メモリコントローラ２００およびメモリ装置１００は、以下に記述される動作を行えるように構成されている。第６実施形態では、選択ワード線ＷＬの位置に基づいて、ベリファイ電圧等が調整される。
【０１８２】
＜６．２．動作＞
図３３は、第６実施形態の選択メモリ装置１００への書き込みの間に選択ワード線ＷＬに印加される電圧の一部を時間に沿って示す。図３３に示されるように、書き込みは複数のプログラムループを含む。各プログラムループは、プログラム、およびその他のステージ（ベリファイのステージ、書き込み未完了セルトランジスタＭＴの計数のステージ等）を含む。各プログラムにおいて選択ワード線ＷＬに電圧が印加される。第ｐプログラムループのプログラムにおいて選択ワード線ＷＬに印加される電圧は、第ｐ−１プログラムループのプログラムにおいて選択ワード線ＷＬに印加される電圧より、差ΔＶｐｇｍＬ高い。差ΔＶｐｇｍＬは、デフォルト値の差ΔＶｐｇｍより高い。デフォルトの差ΔＶｐｇｍは、メモリ装置１００の初期状態（値が変更されていない状態）で使用される値である。
【０１８３】
差ΔＶｐｇｍＬの使用は、メモリコントローラ２００により指示される。差ΔＶｐｇｍＬの使用は、例えば書き込み指示に先行する調整コマンドにより指示される。調整コマンドは、差ΔＶｐｇｍの値（または差ΔＶｐｇｍと差ΔＶｐｇｍＬとの差）を指定してもよい。例えば、メモリコントローラ２００は、メモリ装置１００への大半の書き込みにおいて、差ΔＶｐｇｍＬの使用を指示する。例えば、メモリコントローラ２００は、メモリ装置１００への全ての書き込みにおいて差ΔＶｐｇｍＬの使用を指示してもよい。以下の記述は、いずれの書き込みも差ΔＶｐｇｍＬが使用される例に基づく。
【０１８４】
図３４は、第６実施形態において、書き込みのためにメモリコントローラ２００から選択メモリ装置１００に送信される信号を時間に沿って示す。図３４に示されるように、メモリコントローラ２００は、調整値使用指示を送信する。調整値使用指示は、コマンドＺＺｈ、および調整値ΔＤＡＣ２を示す信号を含む。コマンドＺＺｈは、後続の書き込み指示での書き込みにおいて、ベリファイ電圧について、デフォルトの値と異なる値を使用することを指示する。コマンドＺＺｈにより使用を指示されるベリファイ電圧の値については後述される。調整値ΔＤＡＣ２は、デフォルト値に対する調整値（後述の調整値ΔＶｖｆ）を示す。
【０１８５】
調整値ΔＤＡＣ２を示す信号に続いて、メモリコントローラ２００は、書き込み指示を送信する。書き込み指示は、コマンドＸβｈ（βは１または２）、コマンド８０ｈ、アドレス信号ＡＤＤ、書き込みデータＤ０〜Ｄｒ（ｒは自然数）、およびコマンドγδｈ（γδはＹＹまたは１０）を含む。コマンドＸβｈは、書き込み対象のページを指定し、書き込み対象のページに基づいて相違する。例えばロワーページおよびアッパーページへの書き込みを示すために、それぞれコマンドＸ１ｈおよびＸ２ｈが送信される。また、１セルトランジスタ当たり１ビットの記憶の場合、コマンドＸβｈは送信されない。
【０１８６】
コマンドγδｈは、書き込みの保留または実行を指示する。２ページのデータは、書き込み対象のセルユニットＣＵに一括して書き込まれる。このため、２ページのデータが選択メモリ装置１００に送信されていなければ、書き込みの保留を指示するために、コマンドγδｈの位置で、コマンドＹＹｈが送信される。一方、２ページのデータがメモリ装置１００に送信されていれば、書き込みの実行を指示するために、コマンドγδｈの位置でコマンド１０ｈが送信される。
【０１８７】
次に、図３５および図３６を参照して、調整値使用指示に後続する書き込みが記述される。図３５は、第６実施形態での調整値使用指示に後続する書き込み指示による書き込みを示し、このような書き込みでの選択ワード線ＷＬに印加される電圧を時間に沿って示す。図３５に示されるように、各プログラムループは、上記のプログラムのステージ、および後続するベリファイのステージおよび計数のステージを含む。
【０１８８】
ベリファイステージは、ベリファイが行われるプログラムループ番号に応じて、Ａレベル、Ｂレベル、およびＣレベルの１つまたは複数についてのベリファイを含む。例えば、プログラムループ番号が小さい間は、Ｃレベルまで閾値電圧が上昇するセルトランジスタＭＴは無いため、ＡレベルおよびＢレベルについてのベリファイが行われる。一方、プログラムループ番号が大きい間は、Ａレベルへと書き込まれるセルトランジスタＭＴはみなベリファイをパスしているため、Ａレベルについてのベリファイは行われない。
【０１８９】
Ａレベル、Ｂレベル、およびＣレベルのためのベリファイの間、選択ワード線ＷＬに、それぞれベリファイ電圧ＡＶＳ、ＢＶＳ、およびＣＶＳが印加される。ベリファイ電圧ＡＶＳ、ＢＶＳ、およびＣＶＳは、それぞれデフォルトのベリファイ電圧ＡＶ、ＢＶ、ＣＶより小さい。ベリファイ電圧ＡＶＳとベリファイ電圧ＡＶとの差、ベリファイ電圧ＢＶＳとベリファイ電圧ＢＶとの差、およびベリファイ電圧ＣＶＳとベリファイ電圧ＣＶとの差は、いずれも調整値ΔＶｖｆである。調整コマンドＺＺｈは、ベリファイ電圧Ｖｖｆのデフォルトの値から調整値ΔＶｖｆを減じた値をベリファイで使用することを指示する。
【０１９０】
ベリファイ電圧ＡＶＳとベリファイ電圧ＡＶとの差、ベリファイ電圧ＢＶＳとベリファイ電圧ＢＶとの差、およびベリファイ電圧ＣＶＳとベリファイ電圧ＣＶとの差は、相互に異なっていてもよい。以下の例は、相違するレベルのために同じ差ΔＶｖｆが使用される例に基づく。
【０１９１】
調整値ΔＶｖｆは、選択ワード線ＷＬの物理的な位置に依存して変動する。すなわち、相違する選択ワード線ＷＬのために、値の相違するΔＶｖｆが使用される。図３６は、第６実施形態での各ワード線ＷＬのアドレスと、対応する調整値ΔＶｖｆとを示す。図３６は、１ストリングＳＴＲが１６のワード線ＷＬを含む例を示す。以下、ワード線ＷＬ０〜ＷＬ１５にそれぞれ対応する調整値ΔＶｖｆ０〜ΔＶｖｆ１５との呼称が使用される。ワード線ＷＬ０はワード線ＷＬ０〜ＷＬ１５のうちで第１端部に位置し、選択ゲート線ＳＧＳＬに最も近いワード線ＷＬである。ワード線ＷＬ１５はワード線ＷＬ０〜ＷＬ１５のうちで第２端部に位置し、選択ゲート線ＳＧＤＬに最も近いワード線ＷＬである。ワード線ＷＬε＋１（εは１〜１４の自然数）は、ワード線ＷＬεのｚ軸に関して上方（ウェルｐｗからより遠い方）に位置する。ワード線ＷＬ０〜ＷＬ１５の組の中で、第１端部（ワード線ＷＬ０）と第２端部（ワード線ＷＬ１５）との間に位置し、第１端部（ワード線ＷＬ０）からの距離と、第２端部（ワード線ＷＬ１５）からの距離との差が最も小さい箇所に位置するのが中央のワード線ＷＬである。本実施例では、ワード線ＷＬ７およびワード線ＷＬ８の各々が中央に位置する。ただし、「中央」との名称は、本明細書において説明の便宜上付されたものであり、中央のワード線ＷＬと第１端部（ワード線ＷＬ０）との距離、および中央のワード線ＷＬと第２端部（ワード線ＷＬ１５）との距離とは等しく設けられる必要はない。
【０１９２】
図３６に示されるように、ワード線ＷＬ０およびＷＬ１５（両端のワード線ＷＬ）のための調整値ΔＶｖｆ０およびＶｖｆ１５は、調整値ΔＶｖｆ０〜ΔＶｖｆ１５のうちで最大である。一方、中央のワード線ＷＬ７およびＷＬ８のための調整値ΔＶｖｆ７およびＶｖｆ８は、ΔＶｖｆ０〜ΔＶｖｆ１５のうちで最小であり、例えばゼロである。そして、調整値ΔＶｖｆ０、Ｖｖｆ１、Ｖｖｆ２、Ｖｖｆ３、Ｖｖｆ４、Ｖｖｆ５、Ｖｖｆ６、およびＶｖｆ７は、この順でより低い値を有する。同じく、調整値ΔＶｖｆ１５、Ｖｖｆ１４、Ｖｖｆ１３、Ｖｖｆ１２、Ｖｖｆ１１、Ｖｖｆ１０、Ｖｖｆ９、およびＶｖｆ８は、この順でより低い値を有する。
【０１９３】
１ストリングＳＴＲがより多いまたはより少ないワード線ＷＬを含む場合も同じである。すなわち、両端のワード線ＷＬのための調整値ΔＶｖｆが最大の値を有し、中央のワード線ＷＬのための調整値ΔＶｖｆが最小の値を有し、より端に近いワード線ＷＬのための調整値ΔＶｖｆはより大きい。同じ傾向が、ベリファイ電圧ＡＶのための調整値ΔＶｖｆの組、ベリファイ電圧ＢＶのための調整値ΔＶｖｆの組、およびベリファイ電圧ＣＶのための調整値ΔＶｖｆの組が相違する値を有する場合にも当てはまる。すなわち、調整値ΔＶｖｆの各組においてより端に近いワード線ＷＬがより大きい調整値ΔＶｖｆを有し、相違する組での同じワード線ＷＬｙのそれぞれのための調整値ΔＶｖｆｙは同じまたは相違する値を有する。
【０１９４】
図３７は、第６実施形態のメモリシステムの動作のフローを示す。ステップＳ１０１において、メモリコントローラ２００は、選択メモリ装置１００に差ΔＶｐｇｍＬの使用を指示する。ステップＳ１０２において、メモリコントローラ２００は、選択メモリ装置１００に調整値ΔＶｖｆｙを使用した書き込みを指示する。ステップＳ１０３において、選択メモリ装置１００は、差ΔＶｐｇｍＬを使用してプログラムを行い、調整値ΔＶｖｆｙを使用してベリファイを行う。
【０１９５】
第６実施形態は、第５実施形態と組合せられてもよい。すなわち、差ΔＶｐｇｍＬの使用および調整値ΔＶｖｆの付加されたベリファイ電圧Ｖｖｆの使用がホスト装置２により決定される。そして、ホスト装置２は決定された書き込みをメモリシステム１に指示する。メモリコントローラ２００は、指示された書き込みをメモリ装置１００に対して行う。
【０１９６】
＜６．３．利点＞
第６実施形態によれば、メモリシステム１の書き込みの高速化と、書き込みの最適化による読み出しエラーの低減の両方が実現されることが可能である。詳細は以下の通りである。
【０１９７】
書き込み後のセルトランジスタＭＴの閾値電圧の各レベルについての分布の形状（幅）は、より狭いことが望ましい。各分布がより狭ければ、隣り合う分布の重なりがより抑制され、誤読み出しが抑制されるからである。書き込み後の分布幅をより小さくするためには、差ΔＶｐｇｍの大きさはより小さい方が望ましい。大きな値の差ΔＶｐｇｍを伴う１回のプログラム電圧Ｖｐｇｍの印加により、閾値電圧が大きく上昇するからである。例えば、あと１回のプログラム電圧Ｖｐｇｍの印加でベリファイ電圧Ｖｖｆを超える閾値電圧を有するセルトランジスタＭＴは、大きな値の差ΔＶｐｇｍを付加されたプログラム電圧Ｖｐｇｍの印加により、過剰に大きな閾値電圧を有する状態に至る。一方で、差ΔＶｐｇｍの値がより小さいと、書き込みの時間がより長い。このトレードオフを考慮して、差ΔＶｐｇｍのデフォルトの値が決定されている。
【０１９８】
しかしながら、デフォルト値の差ΔＶｐｇｍの使用では、メモリシステム１に要求される性能を満たせない場合がある。すなわち、メモリ装置１００は、性能が向上し続けているもののメモリシステム１に要求される性能は非常に高く、メモリ装置１００の性能向上のみでは、メモリシステム１に要求される性能を満たすことができない場合がある。この課題に対処するために、メモリコントローラ２００によるメモリ装置１００の制御を通じて、メモリシステム１の動作の速度が上げられる場合がある。具体的には、図３３を参照して記述されたように、メモリコントローラ２００は、差ΔＶｐｇｍＬの使用をメモリ装置１００に指示して、メモリ装置１００での書き込みの速度を上げている。こうすることによってメモリシステム１の書き込み速度が向上されることが可能である。
【０１９９】
一方で、上記のように、差ΔＶｐｇｍの値がより大きいと、書き込み後の分布の幅は広く、ひいては、読み出しエラーもより高い。分布の幅が広くなる程度は、ワード線ＷＬの位置に依存する。具体的には、書き込み対象のセルトランジスタＭＴの周囲により多くの別のセルトランジスタＭＴが有ると、書き込み対象のセルトランジスタＭＴは、より多くの影響を受けて、書き込まれ難い。このため、ストリングＳＴＲのより端に位置するワード線ＷＬと接続されたセルトランジスタＭＴはより書き込まれ易く、端のワード線ＷＬと接続されたセルトランジスタＭＴは特に書き込まれ易い。
【０２００】
書き込まれ易さの違いにより、全てのセルトランジスタＭＴが共通のベリファイ電圧Ｖｖｆを使用して書き込まれると、より書き込まれ易いセルユニットＣＵは、ある同じレベルへと書き込まれたとしても、書き込まれ易いセルトランジスタＭＴよりも高い閾値電圧を有し得る。このことが、図３８の上段に示される。図３８の上段は、閾値電圧の１つの分布を示しており、端のワード線ＷＬと接続されたセルトランジスタＭＴについての関係（実線）と、中央のワード線ＷＬと接続されたセルトランジスタＭＴについての関係（破線）を示す。図３８の上段に示されるように、端のワード線ＷＬについてのより大きな（分布の右側の方の）閾値電圧は、中央のワード線ＷＬのものより大きな閾値電圧を有する。この結果、分布の平均的な形状は幅広くなり、ひいては、読み出しエラーの増加に繋がる。よって、推定されたより良い読み出し電圧Ｖｃｇｒが使用されても、読み出しエラーは十分に改善されない。より良い読み出し電圧Ｖｃｇｒの推定は、分布の平均的な形状に依存するからである。
【０２０１】
第６実施形態によれば、ストリングＳＴＲにおいてより端に近いワード線ＷＬに印加されるベリファイ電圧Ｖｖｆの値はより大きい。このため、端のワード線ＷＬについての大きな（例えば分布の右側の方の）閾値電圧は、他のワード線ＷＬのものにより近い閾値電圧を有する。同様に、中央以外のワード線ＷＬについても、大きな閾値電圧は、中央のワード線ＷＬについてのものに近づく。この結果、分布の平均的形状の幅は狭くなり、読み出しエラーが減少する。しかも、これは、差ΔＶｐｇｍＬの使用によるメモリシステム１の書き込みの高速化と両立する。読み出しエラーが低減すると、第１実施形態に記述されたのと同じ原理により、メモリシステム１の寿命および歩留まりが上昇する。
【０２０２】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【０２０３】
１…メモリシステム、２…ホスト装置、１００…メモリ装置、２００…メモリコントローラ、１１…メモリセルアレイ、１２…シーケンサ、１３…電位生成回路、１４…ドライバ、１５…ロウデコーダ、１６…センスアンプ、１７…温度センサ、２１…ホストインターフェイス、２２…全体制御部、２３…ＲＡＭ、２４…メモリインターフェイス、２５…ＥＣＣ回路、２６…ＲＯＭ。
【図１】
2018163715.tif 000003
【図２】
2018163715.tif 000004
【図３】
2018163715.tif 000005
【図４】
2018163715.tif 000006
【図５】
2018163715.tif 000007
【図６】
2018163715.tif 000008
【図７】
2018163715.tif 000009
【図８】
2018163715.tif 000010
【図９】
2018163715.tif 000011
【図１０】
2018163715.tif 000012
【図１１】
2018163715.tif 000013
【図１２】
2018163715.tif 000014
【図１３】
2018163715.tif 000015
【図１４】
2018163715.tif 000016
【図１５】
2018163715.tif 000017
【図１６】
2018163715.tif 000018
【図１７】
2018163715.tif 000019
【図１８】
2018163715.tif 000020
【図１９】
2018163715.tif 000021
【図２０】
2018163715.tif 000022
【図２１】
2018163715.tif 000023
【図２２】
2018163715.tif 000024
【図２３】
2018163715.tif 000025
【図２４】
2018163715.tif 000026
【図２５】
2018163715.tif 000027
【図２６】
2018163715.tif 000028
【図２７】
2018163715.tif 000029
【図２８】
2018163715.tif 000030
【図２９】
2018163715.tif 000031
【図３０】
2018163715.tif 000032
【図３１】
2018163715.tif 000033
【図３２】
2018163715.tif 000034
【図３３】
2018163715.tif 000035
【図３４】
2018163715.tif 000036
【図３５】
2018163715.tif 000037
【図３６】
2018163715.tif 000038
【図３７】
2018163715.tif 000039
【図３８】
2018163715.tif 000040