(57)【要約】【課題】  より高性能のメモリ装置を制御するメモリシステムを提供する。【解決手段】  一実施形態によるメモリシステムは、データを記憶可能な複数の記憶素子を有するメモリ装置と、メモリ装置の温度を計測する温度センサと、コントローラとを含む。コントローラは、温度センサから取得した現在の温度である第１温度と、記憶素子へデータが書き込みされた時に取得した温度である第２温度と、の差分が、既定の温度差を超えるとき、記憶素子に書き込まれているデータを再書き込みし、再書き込みの電圧を、前記差分と記憶素子へデータが書き込みされた時の電圧とに基づいて決定する、ことをメモリ装置に指示するように構成されている。【選択図】      図１
2020077443.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）を含む。
【００１７】
ＲＡＭ２３は、データを一時的に記憶し、バッファとしての機能を有する。データは、ホスト装置２から受け取られたデータ、ホスト装置２に送信されるデータ、メモリ装置１００に書き込まれるデータ（書き込みデータ）、メモリ装置１００から読み出されたデータ（読み出しデータ）、メモリ装置１００の状態を示し且つメモリ装置１００の制御のために全体制御部２２によって参照される種々の管理データ（アドレス変換テーブルを含む）、及びファームウェアを含む。また、ＲＡＭ２３は、複数のメモリ装置温度情報２３１を含む。各メモリ装置温度情報２３１は、対応する１つ以上のメモリ装置１００に関する温度情報を含む。メモリ装置温度情報２３１については、後に詳述される。
【００１８】
メモリインターフェイス２４は、ＮＡＮＤバスによって、メモリ装置１００と物理的に接続されており、ＮＡＮＤインターフェイスに従った信号の送受信を行う。ＮＡＮＤバスは、ＮＡＮＤインターフェイスに従った信号を伝送する。ＮＡＮＤインターフェイスに従った信号は、例えば種々の制御信号及び入出力信号ＤＱ及びレディー・ビジー信号を含む。入出力信号ＤＱ（ＤＱ０〜ＤＱ７）は、例えば８ビットの幅を有し、コマンド（ＣＭＤ）、書き込みデータ及び読み出しデータ（ＤＡＴＡ）、アドレス信号（ＡＤＤ）、各種の管理データを含む。レディー・ビジー信号は、メモリ装置１００ごとに独立しており、例えばハイレベル及びローレベルによって、対応するレディー・ビジー信号を送信するメモリ装置１００がそれぞれレディー状態及びビジー状態であることを示す。メモリ装置１００は、レディー状態においてメモリコントローラ２００からの命令を受け付け、ビジー状態においてメモリコントローラ２００からの命令を受け付けない。
【００１９】
ＥＣＣ回路２５は、ある実体的データの誤りを訂正するための誤り訂正データを生成する。実体的データは、ホストから書き込みを指示されたデータ及び管理データを含む。誤り訂正データは、既知の任意の方法で生成されることが可能であり、例えばパリティデータを含む。実体的データと、対応する誤り訂正データの組は、書き込みデータとして、メモリ装置１００に書き込まれる。誤り訂正データの生成のための技術及び誤り訂正データの大きさによって、対応する実体的データの訂正可能な誤りの数が定まる。一般に、誤り訂正データがより大きいと、より多くの誤りの訂正が可能であり、すなわち大きな誤り訂正能力がより高い。ＥＣＣ回路２５は、複数の誤り訂正能力から１つを選択し、選択された誤り訂正能力のための誤り訂正データを生成できる。
【００２０】
また、ＥＣＣ回路２５は、メモリ装置１００からの読み出しデータに対して演算を行って、読み出しデータに含まれる正しい（誤りを訂正された）データ（例えばホスト読み出しデータまたは管理データ等）を取得することを試みる。ＥＣＣ回路２５は、読み出しデータが、読み出しデータに含まれる誤り訂正データに基づいて定まる誤り訂正能力以下の誤りを含んでいれば、読み出しデータから正しい実体的データを取得できる。
【００２１】
全体制御部２２は、例えば、プロセッサ及びＲＡＭ２３の機能の一部により実現される。全体制御部２２は、ホストインターフェイス２１、ＲＡＭ２３、メモリインターフェイス２４、及びＥＣＣ回路２５を制御する。全体制御部２２は、書き込み及び読み出しの際に、ＲＡＭ２３及びメモリインターフェイス２４を制御しつつ、上記のアドレスマッピング管理及び（または）メモリ装置１００の状態の管理を行う。
【００２２】
＜１．１．３．メモリ装置＞
各メモリ装置１００は、メモリセルアレイ１１、シーケンサ（制御回路）１２、電位生成回路１３、ドライバ１４、ロウデコーダ１５、センスアンプ１６、及び温度センサ１７等の要素を含む。
【００２３】
メモリセルアレイ１１は、複数のブロック（メモリブロック）ＢＬＫ（ＢＬＫ０、ＢＬＫ１、…）を含む。各ブロックＢＬＫは、メモリセルアレイ１１のある物理的な単位であり、各ブロックＢＬＫ中のデータは一括して消去される。各ブロックＢＬＫは、複数のセルトランジスタを含む。セルトランジスタは、メモリコントローラ２００からの書き込みデータを不揮発に記憶する。
【００２４】
電位生成回路１３は、種々の電位差（電圧）を生成する。生成された電位は、ドライバ１４及びセンスアンプ１６等の要素に供給される。ドライバ１４は、メモリコントローラ２００からのアドレス信号ＡＤＤを受け取り、電位生成回路１３からの電位のうちアドレス信号ＡＤＤに基づいていくつかの電位を選択し、選択された電位をロウデコーダ１５に供給する。
【００２５】
ロウデコーダ１５は、メモリコントローラ２００からのアドレス信号ＡＤＤを受け取り、アドレス信号ＡＤＤに基づいて、１つのブロックＢＬＫを選択し、選択されたブロックＢＬＫにドライバ１４からの電位を転送する。
【００２６】
センスアンプ１６は、セルトランジスタの状態をセンスし、センスされた状態に基づいて読み出しデータを生成し、また、書き込みデータをセルトランジスタに転送する。
【００２７】
温度センサ１７は、メモリ装置１００の温度を計測する。温度センサ１７は、例えば、ある時間間隔ごとにメモリ装置１００の温度を計測する。温度センサ１７は、シーケンサ１２の指示に応答して、計測された温度を示す温度情報ＭＮＤをシーケンサ１２に送信する。
【００２８】
シーケンサ１２は、メモリコントローラ２００からのコマンドＣＭＤに基づいて、電位生成回路１３、ドライバ１４、及びセンスアンプ１６等の要素を制御する。シーケンサ１２は、レジスタ１２１を含む。レジスタ１２１は、複数の記憶領域を含む。各記憶領域は、一意のアドレスにより特定されることが可能であり、１または複数ビットの情報を記憶することが可能である。レジスタ１２１は、各記憶領域において種々のデータを記憶する。記憶されるデータは、温度情報ＭＮＤを含む。
【００２９】
図２は、第１実施形態のメモリシステム１の別の機能ブロック図である。温度センサ１７は、図２に示されるように、メモリシステム１の別の場所に設けられてもよい。この場合、メモリコントローラ２００は、この別の場所に設けられた温度センサ１７へ指示を送り、その温度センサ１７から後述の温度データを取得する。
【００３０】
＜１．１．３．１．セルアレイ＞
図３は、第１実施形態のブロックＢＬＫ０の回路図である。図３は、メモリセルアレイ１１のブロックＢＬＫ０の要素及び接続、ならびに関連する要素を示す。ブロックＢＬＫ０以外の他のブロックＢＬＫは、図３に示されるブロックＢＬＫ０と同様の要素及び接続を含む。
【００３１】
ブロックＢＬＫ０は複数の（例えば４つの）ストリングユニットＳＵ（ＳＵ０〜ＳＵ３）を含む。
【００３２】
ブロックＢＬＫ０において、ｍ（ｍは自然数）本のビット線ＢＬ０〜ＢＬｍ−１の各々は、４つのストリングユニットＳＵ０〜ＳＵ３の各々の１つのストリングＳＴＲと、それぞれ接続されている。
【００３３】
各ストリングＳＴＲは、１つの選択ゲートトランジスタＳＴ、複数（例えば８個）のセルトランジスタＭＴ（ＭＴ０〜ＭＴ７）、及び１つの選択ゲートトランジスタＤＴ（ＤＴ０〜ＤＴ３）を含む。選択ゲートトランジスタＳＴ、セルトランジスタＭＴ、及び選択ゲートトランジスタＤＴは、この順で、ソース線ＣＥＬＳＲＣと１つのビット線ＢＬとの間に直列に接続されている。セルトランジスタＭＴは、制御ゲート電極（ワード線ＷＬ）、及び周囲から絶縁された電荷蓄積層を含み、電荷蓄積層中の電荷の量に基づいてデータを不揮発に記憶することができる。セルトランジスタＭＴは、書き込みにより電荷蓄積層に電子を注入され、消去のために電荷蓄積層から電子を引き抜かれる。
【００３４】
複数のビット線ＢＬとそれぞれ接続された複数のストリングＳＴＲは複数のストリングユニットＳＵ（ＳＵ０、ＳＵ１、ＳＵ２、ＳＵ３）を構成する。各ストリングユニットＳＵは、１本のビット線ＢＬ毎に１つずつ、そのビット線ＢＬと接続されたストリングＳＴＲを含む。各ストリングユニットＳＵにおいて、セルトランジスタＭＴ０〜ＭＴ７の制御ゲート電極は、ワード線ＷＬ０〜ＷＬ７とそれぞれ接続されている。さらに、相違するストリングユニットＳＵ中の同じアドレスのワード線ＷＬも相互に接続されている。１つのストリングユニットＳＵ中でワード線ＷＬを共有するセルトランジスタＭＴの組は、セルユニットＣＵと称される。１つのセルユニットＣＵのセルトランジスタＭＴは、一括してデータを書き込まれ、また一括してデータを読み出される。１つのセルユニットＣＵの記憶空間は、１つまたは複数のページを含む。
【００３５】
選択ゲートトランジスタＤＴ０〜ＤＴ３はストリングユニットＳＵ０〜ＳＵ３にそれぞれ属する。各α（αは０または３以下の自然数）について、ストリングユニットＳＵαの複数のストリングＳＴＲの各々の選択ゲートトランジスタＤＴαのゲートは選択ゲート線ＳＧＤＬαに接続されている。選択ゲートトランジスタＳＴのゲートは、選択ゲート線ＳＧＳＬに接続されている。
【００３６】
ブロックＢＬＫは、任意の物理的構造を有することが可能である。すなわち、アドレスの相違するワード線ＷＬが同一平面上に並ぶいわゆる二次元型の構造が使用されてもよいし、アドレスの相違する平面形状のワード線ＷＬが垂直方向に積層される、いわゆる三次元の構造が使用されてもよい。
【００３７】
図４は、ブロックＢＬＫの物理的構造の一例を示す模式図である。図４の上方向をｚ軸方向、図４の右方向をｙ軸方向、図４の紙面に垂直に手前方向をｘ軸方向とする。各ブロックＢＬＫは図４に示される構造を有することが可能である。図４に示す例では、ストリングユニットＳＵはシリコン基板ＳＩ上に設けられている。シリコン基板ＳＩは、ｘｙ面に沿って広がり、ｐ型のウェルｐｗを含む。ウェルｐｗは、例えば、シリコン基板ＳＩ全体にイオン注入を行うことで、シリコン基板ＳＩの内部に形成される。各ストリングユニットＳＵは、ｘ軸に沿って並ぶ複数のストリングＳＴＲを含む。各ストリングＳＴＲは、半導体の柱（ピラー）ＰＬを含む。柱ＰＬは、ｚ軸に沿って延び、下端においてウェルｐｗと接し、トランジスタＭＴ、ＤＴ、及びＳＴのチャネルが形成されるチャネル領域及びボディとして機能する。柱ＰＬの上端は、導電性のプラグＣＰＰを介して導電体ＣＴと接続されている。導電体ＣＴはｙ軸に沿って延び、１つのビット線ＢＬとして機能し、ｘ軸上で別の座標に位置する導電体ＣＴと間隔を有する。柱ＰＬの側面はトンネル絶縁体（層）ＩＴにより覆われている。トンネル絶縁体ＩＴは、ウェルｐｗ上にも位置する。トンネル絶縁体ＩＴの側面は、電荷蓄積層ＣＡにより覆われている。電荷蓄積層ＣＡは、絶縁性または導電性であり、側面をブロック絶縁体（層）ＩＢにより覆われている。
【００３８】
各ストリングユニットＳＵにおいて、ウェルｐｗの上方に、１つの導電体ＣＳ、複数（例えば８つ）の導電体ＣＷ、及び複数（例えば３つ）の導電体ＣＤが設けられている。複数の導電体ＣＳが設けられていてもよい。導電体ＣＳ、ＣＷ、及びＣＤは、この順で間隔を有してｚ軸に沿って並び、ｘ軸に沿って延び、ブロック絶縁体ＩＢと接している。導電体ＣＳは、また、ウェルｐｗとともにトンネル絶縁体ＩＴを挟む。導電体ＣＳ、ＣＷ、及びＣＤは、それぞれ、選択ゲート線ＳＧＳＬ、ワード線ＷＬ０〜ＷＬ７、及び選択ゲート線ＳＧＤＬとして機能する。各ストリングユニットＳＵにおいて、導電体ＣＳ、ＣＷ、及びＣＤは、このストリングユニットＳＵ中の全ての柱ＰＬの側面上のブロック絶縁体ＩＢと内部において接している。
【００３９】
柱ＰＬ、トンネル絶縁体ＩＴ、電荷蓄積層ＣＡ、及びブロック絶縁体ＩＢのうちの導電体ＣＳ、ＣＷ、及びＣＤと交わる部分は、それぞれ選択ゲートトランジスタＳＴ、セルトランジスタＭＴ、及び選択ゲートトランジスタＤＴとして機能する。柱ＰＬを共有しかつｚ軸に沿って並ぶトランジスタＳＴ、ＭＴ、及びＤＴは、１つのストリングＳＴＲを構成する。
【００４０】
ウェルｐｗ内には、ｐ＋型不純物の拡散層Ｄｐが設けられている。拡散層Ｄｐは、導電性のプラグＣＰＷを介して、導電体ＣＣＷと接続されている。プラグＣＰＷは、ｘｚ面に沿って広がる。
【００４１】
ウェルｐｗ内には、ｎ＋型不純物の拡散層Ｄｎがさらに設けられている。拡散層Ｄｎは、導電性のプラグＣＰＳを介して、導電体ＣＣＳと接続されている。導電体ＣＣＳは、ソース線ＣＥＬＳＲＣとして機能する。
【００４２】
シリコン基板ＳＩ上で、導電体ＣＳ、ＣＷ、ＣＤ、ＣＣＳ、及びＣＣＷ、ならびにプラグＣＰＳ及びＣＰＷが設けられていない領域は、絶縁体ＩＩＬ１を設けられている。
【００４３】
＜１．１．３．２．セルトランジスタ＞
メモリ装置１００は、１つのセルトランジスタＭＴにおいて１ビット以上のデータを記憶することができる。書き込みの結果として１セルトランジスタ当たり１ビットのデータを記憶するものはシングルレベルセル（ＳＬＣ）と呼ぶ。これに対して、１セルトランジスタ当たり２ビットのデータを記憶するマルチレベルセル（ＭＬＣ）、１セルトランジスタ当たり３ビットのデータを記憶するトリプルレベルセル（ＴＬＣ）、１セルトランジスタ当たり４ビットのデータを記憶するクアッドレベルセル（ＱＬＣ）もある。１セルトランジスタ当たりのビット数が増加するに従って、データ容量が大きい記憶素子であると言える。また、ＳＬＣは、ＭＬＣ・ＴＬＣ・ＱＬＣと比較して、データの読み書き時にエラーが発生する確率が低く、温度変化による特性変化が少ないので、精度と耐久性に優れた記憶素子と言える。
【００４４】
図５は、第１実施形態のメモリ装置でのデータの記憶の例を示す模式図である。図５は、１セルトランジスタ当たり２ビットのデータを記憶する複数のセルトランジスタＭＴの閾値電圧の分布を示す。図５には、４つの分布が示されている。縦軸はセルトランジスタＭＴの数であり、横軸は電位（グランドとの電位差、Ｖ）である。閾値電圧は、セルトランジスタＭＴが導通するために必要とする電圧であり、蓄積された電荷に応じて変動する。
【００４５】
制御ゲート電極に対して一定の電圧を印加された複数のセルトランジスタＭＴの閾値電圧の分布は正規分布を形成する。図５の４つの分布のそれぞれに属するセルトランジスタＭＴの状態を、４つの分布のうち左側から順に、それぞれ、Ｅｒ状態、Ａ状態、Ｂ状態、及びＣ状態と呼ぶ。Ｅｒ状態、Ａ状態、Ｂ状態、及びＣ状態は、例えば、それぞれ“１１”データ、“０１”データ、“００”データ、及び“１０”データを記憶する状態として扱われる。Ｅｒ状態は、消去状態とも呼ばれる。データは、Ｅｒ状態のセルトランジスタＭＴに書き込まれる。そして、この書き込みの結果、セルトランジスタＭＴは、Ｅｒ状態からＡ状態、Ｂ状態、またはＣ状態へ遷移する。
【００４６】
読み出し電圧ＶＡ（＝０Ｖ）未満の領域に閾値電圧を有するセルトランジスタＭＴは、Ｅｒ状態にあると判断される。読み出し電圧ＶＡ以上ＶＢ未満の領域に閾値電圧を有するセルトランジスタＭＴは、Ａ状態にあると判断される。読み出し電圧ＶＢ以上ＶＣ未満の領域閾値電圧を有するセルトランジスタＭＴは、Ｂ状態にあると判断される。読み出し電圧ＶＣ以上の領域に閾値電圧を有するセルトランジスタＭＴは、Ｃ状態にあると判断される。セルトランジスタＭＴは、閾値電圧以上の大きさの読み出し電圧をその制御ゲート電極に印加されることで導通する。Ｖｒｅａｄは、非読み出し対象のセルトランジスタＭＴの制御ゲート電極に印加される。Ｖｒｅａｄの値は、最も電子を充填されたセルトランジスタＭＴをも導通させる値に設定する。
【００４７】
１セルトランジスタ当たり２ビットのデータを記憶する場合、１つのセルユニットＣＵ内の複数のセルトランジスタＭＴそれぞれの２ビット（上位ビット、下位ビット）のうち、同じ方のビットの組は、１つのページを構成する。具体的には、上位ビットの組はアッパーページを構成し、下位ビットの組はロワーページを構成する。
【００４８】
セルトランジスタＭＴへの書き込みの完了を確認する（ベリファイ）ために、ベリファイ電圧ＡＶ、ＢＶ、またはＣＶが使用される。ベリファイ電圧ＡＶ、ＢＶ、及びＣＶは、ベリファイ電圧と総称される場合がある。
【００４９】
３ビット以上のデータも、ここまでに記述された技術の拡張により１つのセルトランジスタＭＴよって記憶されることが可能である。また、１セルトランジスタ当たり１ビットのデータが記憶されるＳＬＣの場合は、図５のＥｒ状態と、Ａ状態、Ｂ状態、及びＣ状態のうちいずれか１つの状態と、のみが使用される。
【００５０】
＜１．２．動作＞
メモリシステム１の動作に先立ち、ＥＣＣ回路２５による誤り訂正データの生成について記述する。
【００５１】
＜１．２．１．ＥＣＣ回路の動作＞
ＥＣＣ回路２５は、ホスト装置２から書き込みを指示されたデータ及び管理データを含む実体的データに対し、誤り訂正データの大きさを変えることによって、当該実体的データの訂正可能なビットの数を変えることができる。
【００５２】
ＥＣＣ回路２５は、受け取った実体的データを、ある大きさの部分（フレームと称される）へと分割し、フレーム及び対応する誤り訂正データの組を出力する。フレーム及び対応する誤り訂正データの組は、クラスタと称される。
【００５３】
図６は、第１実施形態のデータのデータ構造を説明するための模式図である。クラスタの大きさは、固定であり、例えば、図６に示すように、メモリ装置１００の１ページの大きさが均等の大きさに分割された複数部分（例えば４つ）の１つと同じサイズである。一方、誤り訂正データの大きさは、対応するフレームのために求められる誤り訂正能力に基づいて可変である。よって、１つのクラスタに占めるフレームの大きさは、図６中に双方向矢印で示すように、誤り訂正能力により可変である。
【００５４】
したがって、ＥＣＣ回路２５は、書き込まれる実体的データを、クラスタの大きさから、ＥＣＣ回路２５に現在設定されている誤り訂正能力を実現する誤り訂正データの大きさを減じた大きさの複数のフレームへと分割する。そして、ＥＣＣ回路２５は、このようなフレームを使用して、対応する誤り訂正データを生成する。この結果、誤り訂正能力に基づいた大きさの誤り訂正データ及びフレームの組はクラスタと同じ大きさを有する。求められる誤り訂正能力が高いほど、必要な誤り訂正データは大きくなるので、その分、フレームが小さい。よって、より高い誤り訂正能力の誤り訂正データが使用される場合、対応するフレームはより小さい。
【００５５】
以下、メモリ装置１００において、フレームにおける実体的データが書き込まれるセルトランジスタＭＴを含む領域をデータ領域、誤り訂正データが書き込まれるセルトランジスタＭＴを含む領域を冗長部、とそれぞれ称する。
【００５６】
ＥＣＣ回路２５は、基本的には、このようにクラスタに占めるデータ領域と冗長部を決定するが、本実施形態では、詳細は後述するように、冗長部に、誤り訂正データに加えて、書き込み時温度情報も記録する。そのため、ＥＣＣ回路２５は、書き込まれる実体的データを複数のフレームへと分割する際、ＥＣＣ回路２５に現在設定されている誤り訂正能力を実現する誤り訂正データの大きさに加えて、書き込み時温度情報の大きさも考慮する。書き込み時温度情報は、例えば、予め任意の温度によって決定した低温範囲か高温範囲かを示すだけであれば１ビットでよく、摂氏や華氏などの数値で記録するならば複数ビットの大きさが必要となる。本実施形態では、温度を数値で記録するものとして説明する。
【００５７】
＜１．２．２．メモリシステムの動作＞
図７は、第１実施形態のメモリシステム１の動作の一例を示すフロー図である。図７に示す例では、メモリシステム１は、例えば電源の供給を受け起動すると、起動処理を行う（ステップＳ１）。起動処理は、メモリシステム１が、データの書き込み及び読み出しが可能な状態になるまでに必要な処理を指す。起動処理は、種々のテーブルをメモリコントローラ２００において構築することを含む。本実施形態では、起動処理として書き込み時温度テーブルをメモリコントローラ２００において構築する。
【００５８】
テーブルの構築に必要なデータは、各メモリ装置１００中のメモリセルアレイ１１の１または複数のブロックＢＬＫにおいて記憶されている。メモリコントローラ２００は、全てのメモリ装置１００のこれらのブロックＢＬＫから、必要なデータを読み出し、それら読み出されたデータから、ＲＡＭ２３上でメモリ装置１００ごとにテーブルを構築する。構築されるテーブルは、アドレス変換テーブル、及び図８に示される書き込み時温度テーブルを含む。各メモリ装置１００用の書き込み時温度テーブルは、ＲＡＭ２３上の当該メモリ装置１００用のメモリ装置温度情報２３１に含まれる。
【００５９】
図８は、第１実施形態における書き込み時温度テーブルのデータ構造を説明するための表である。図８に示されるように、書き込み時温度テーブルは、各ページのアドレスと、当該ページのセルユニットＣＵへの書き込みのときに温度センサ１７で計測された温度情報から得たページの書き込み時温度と、の対応を示す。
【００６０】
全体制御部２２は、セルユニットＣＵへの書き込みが発生する度に、温度センサ１７で計測された温度情報を、当該セルユニットＣＵのページに対応する書き込み時温度として取得し、書き込み時温度テーブルを更新する。この点については後に詳述する。
【００６１】
図７に戻る。ステップＳ１に続いて、メモリシステム１は、種々の処理を行う。すなわち、メモリコントローラ２００の全体制御部２２は、メモリシステム１が電源を供給されてオンしている間、メモリ装置１００へデータを書き込むか否か（ステップＳ２）、メモリ装置１００からデータを読み出すか否か（ステップＳ３）、メモリ装置１００に書き込まれているデータを消去するか否か（ステップＳ４）、温度取得タイミングで有るか否か（ステップＳ５）、の判断を繰り返す。
【００６２】
ステップＳ２において、全体制御部２２は、メモリ装置１００へデータを書き込むと判断した場合、データ書き込み処理を実施する（ステップＳ６）。メモリ装置１００へデータを書き込むとの判断は、ホスト装置２からの書き込みの指示に基づいてまたはガベージコレクションにおいて判断される場合もあるし、メモリコントローラ２００が管理データをメモリ装置１００に書き込むためにホスト装置２からの指示なく送信される場合もある。
【００６３】
図９は、第１実施形態のデータ書き込み処理の詳細を示すフロー図である。全体制御部２２は、書き込み対象のメモリ装置１００を選択し、メモリインターフェイス２４を制御して、選択したメモリ装置１００に、１ページのサイズの書き込みデータの書き込みを指示する（ステップＳ６１）。書き込みのために、全体制御部２２は、メモリ装置１００に書き込まれるべき実体的データを、求められる誤り訂正能力と書き込み時温度情報の形態とに基づいて定まる大きさのフレームへと分割する。求められる訂正能力は実体的データの性質または実体的データが書き込まれるセルユニットＣＵの信頼度に基づき得る。全体制御部２２は、次いで、ＥＣＣ回路２５を制御して各フレームのための誤り訂正データを生成し、各フレーム及び誤り訂正データを含む書き込みデータを用意する。
【００６４】
書き込みの指示は、例えば、ページを指定する信号、書き込みコマンド、アドレス信号、書き込み実行コマンドを含む。アドレス信号は、書き込みデータの書き込み先である、ブロックＢＬＫｘ中のセルユニットＣＵのアドレスを指定し、ページを指定する信号は書き込み先のページを指定する。実際には、１セルトランジスタＭＴ当たり２ビットの書き込みの場合、２ページについての書き込み指示が送信される。
【００６５】
選択したメモリ装置１００においては、書き込み指示を受け取ると、シーケンサ１２は、温度センサ１７から、温度情報ＭＮＤを取得し、レジスタ１２１に格納する（ステップＳ６２）。温度情報ＭＮＤは、温度を示すデータ（温度データ）を含む。次いで、シーケンサ１２は、電位生成回路１３、ドライバ１４、ロウデコーダ１５、及びセンスアンプ１６を制御して、選択セルユニットＣＵに、書き込みデータを書き込むと共に、取得された温度データを書き込み時温度情報として書き込む（ステップＳ６３）。ここで、書き込みデータの内の実体的データであるフレームのデータは、データ領域に書き込まれる。書き込みデータの内の誤り訂正データと、書き込み時温度情報とは、冗長部に書き込まれる。
【００６６】
１ページのサイズの書き込みが終了したならば、シーケンサ１２は、冗長部に記録した書き込み時温度情報を、ページアドレス情報と共に、高信頼性領域に書き込む（ステップＳ６４）。この高信頼性領域に書き込まれたページアドレス情報と書き込み時温度情報が、上記ステップＳ１において図８に示されたような書き込み時温度テーブルの構築に利用される。換言すると、高信頼性領域は、書き込み時温度テーブルの各エントリの情報を記録しておくものであり、このステップＳ６４において、その１つのエントリが書き込まれる。
【００６７】
この高信頼性領域とは、温度変化に対するデータ読み出しの信頼性が、書き込みデータを書き込むデータ領域よりも高い領域を指す。例えば、高信頼性領域は、ＳＬＣブロック（１セルトランジスタ当たり１ビットのデータを記憶するように使用されるブロック）、１つのワードラインおきに書くブロック、または、強い誤り訂正機能で保護される領域、などを含む。
【００６８】
また、シーケンサ１２は、この高信頼性領域に書き込んだ書き込み時温度情報である温度データとページアドレス情報とをメモリコントローラ２００に送信する。メモリコントローラ２００では、この送信されてきた情報に基づいて、全体制御部２２は、ＲＡＭ２３上の当該メモリ装置１００用のメモリ装置温度情報２３１に含まれる書き込み時温度テーブルの内容を更新する（ステップＳ６５）。
【００６９】
また、ステップＳ３において、メモリコントローラ２００の全体制御部２２は、メモリ装置１００からデータを読み出すと判断した場合、データ読み出し処理を実施する（ステップＳ７）。メモリ装置１００からデータを読み出すとの判断は、ホスト装置２からの読み出しの指示に基づいてまたはガベージコレクションにおいて判断される場合もあるし、ホスト装置２からの指示に基づかずにメモリコントローラ２００が管理データをメモリ装置１００から読み出すとの決定に基づく場合もある。
【００７０】
データ読み出し処理Ｓ７において、メモリコントローラ２００の全体制御部２２は、何らかの読み出しが必要となると、読み出されるデータが記憶されているページ及びそのページの記憶空間を提供するメモリ装置１００のブロックＢＬＫｘ中のセルユニットＣＵを特定する。なお、１セルトランジスタ当たり１ビットの記憶の場合は、ページの特定は、セルユニットＣＵの特定と同じである。そして、全体制御部２２は、メモリインターフェイス２４を制御して、その特定したメモリ装置１００のセルユニットＣＵｙのページからの読み出しの指示を、特定したメモリ装置１００に送信する。指示は、例えば読み出しコマンド、ブロックＢＬＫｘのセルユニットＣＵｙを指定するアドレス信号、ページを指定する信号、及び読み出しの実行コマンドを含む。特定したメモリ装置１００が読み出し指示を受け取ると、シーケンサ１２は、セルユニットＣＵｙの読み出し対象ページのデータを読み出す。読み出されたデータは、特定したメモリ装置１００から送信され、メモリコントローラ２００によって受け取られる。
【００７１】
また、ステップＳ４において、メモリコントローラ２００の全体制御部２２は、メモリ装置１００からデータ消去すると判断した場合、データ消去処理を実施する（ステップＳ８）。メモリ装置１００からデータ消去するとの判断は、例えばホスト装置２からの指示に基づく。または、ホスト装置２からの指示に基づかずに全体制御部２２による決定に基づく。例えば、全体制御部２２は、ホスト装置２からの指示とは無関係に、ガベージコレクション及びリフレッシュを含む実体的データの移動のために、メモリ装置１００中のあるブロックＢＬＫ中のデータを別のブロックＢＬＫへとコピーし、コピー元のデータを消去することを決定する。
【００７２】
図１０は、第１実施形態のデータ消去処理の詳細を示すフロー図である。データ消去処理において、メモリコントローラ２００の全体制御部２２は、消去対象のメモリ装置１００を選択し、メモリインターフェイス２４を制御して、ブロックＢＬＫｘのデータの消去を選択したメモリ装置１００に指示する（ステップＳ８１）。消去の指示は、例えば、消去コマンド及び消去対象ブロックを指定するアドレス信号を含む。
【００７３】
選択したメモリ装置１００においては、消去コマンド及びアドレス信号を受け取ると、シーケンサ１２は、電位生成回路１３、ドライバ１４、ロウデコーダ１５、及びセンスアンプ１６を制御して、ブロックＢＬＫｘのデータを消去する（ステップＳ８２）。さらに、シーケンサ１２は、高信頼性領域に書き込まれている対象ブロックに対応するページアドレス情報及び書き込み時温度情報を消去する（ステップＳ８３）。
【００７４】
また、メモリコントローラ２００の全体制御部２２は、選択したメモリ装置１００に消去を指示したブロックＢＬＫｘに対応するＲＡＭ２３上の当該メモリ装置１００用のメモリ装置温度情報２３１に含まれる書き込み時温度テーブルの内容を更新する（ステップＳ８４）。
【００７５】
なお、ステップＳ８３の動作とステップＳ８４の動作とは、順番が逆であってもよいし、並行して実施してもよい。あるいは、ステップＳ８４の動作は、選択したメモリ装置１００での消去が完了したことを確認した上で、実施するようにしてもよい。
【００７６】
また、ステップＳ５において、メモリコントローラ２００の全体制御部２２は、温度取得タイミングになったと判断した場合、ＮＡＮＤ温度取得処理を実施する（ステップＳ９）。温度取得タイミングは、例えば、１秒、１０秒、１分、など、メモリシステム１が必要とする能力や、設計、使用環境など様々な条件に応じて任意に規定された、一定時間おきのタイミングである。また、温度取得タイミングは、例えば、メモリシステム１全体またはメモリ装置１００ごとのアクセス回数など、他の指標に基づくことも可能である。但し、一つのメモリ装置１００にアクセスが集中した場合と、複数のメモリ装置１００にアクセスが分散された場合とでは、メモリ装置１００の温度変化が異なる。よって、温度取得タイミングは時間に基づくことが望ましい。温度取得タイミングは、予めＲＯＭ２６などに記憶設定されている。
【００７７】
図１１は、第１実施形態のＮＡＮＤ温度取得処理の詳細を示すフロー図である。全体制御部２２は、温度取得対象のメモリ装置１００を選択する（ステップＳ９１）。そして、全体制御部２２は、選択したメモリ装置１００の温度データを取得する（ステップＳ９２）。例えば、全体制御部２２は、メモリインターフェイス２４を制御して、選択したメモリ装置１００に、温度データの送信を指示する。温度データの送信を指示されると、シーケンサ１２は、温度センサ１７から現時点の温度情報ＭＮＤを取得し、取得された温度情報ＭＮＤに含まれる温度を示すデータ（温度データ）をメモリコントローラ２００に送信する。メモリコントローラ２００の全体制御部２２は、温度データを受け取ると、その温度データで示される当該メモリ装置１００の現在時温度を、ＲＡＭ２３上の当該メモリ装置１００用のメモリ装置温度情報２３１に記憶する。
【００７８】
次に、全体制御部２２は、選択したメモリ装置１００の現在時温度と書き込み時温度テーブルの最低温度との温度差が既定温度を超えたか否かを判断する（ステップＳ９３）。例えば、全体制御部２２は、ＲＡＭ２３上の選択したメモリ装置１００用のメモリ装置温度情報２３１の書き込み時温度テーブルに記憶されている各ページアドレスの書き込み時温度の内の最低の温度と、同じくメモリ装置温度情報２３１に記憶した現在時温度との差分を求める。そして、その差分が、既定温度で示される温度差を超えるか否かを判断する。例えば、書き込み時温度が０℃、現在時温度が７０℃であって、既定温度が６５℃であったとすれば、全体制御部２２は、選択したメモリ装置１００の書き込み時温度テーブルの最低温度に対し既定温度を超えたと判断する。既定温度は、メモリシステム１の設計、性能、使用環境、など様々な条件に基づいて規定され、予めＲＯＭ２６などに記憶設定される。
【００７９】
選択したメモリ装置１００の現在時温度と書き込み時温度テーブルの最低温度との温度差が既定温度を超えていないと判断した場合（ステップＳ９３ＮＯ）、全体制御部２２は、選択したメモリ装置１００の現在時温度と書き込み時温度テーブルの最高温度との温度差が既定温度を下回ったか否かを判断する（ステップＳ９４）。例えば、全体制御部２２は、ＲＡＭ２３上の書き込み時温度テーブルに記憶されている各ページアドレスの書き込み時温度の内の最高の温度と、現在時温度との差分が、既定温度で示される温度差を超えるか否かを判断する。この場合の既定温度は、ステップＳ９３で用いるものと同じであってもよいし、異なっていてもよい。
【００８０】
選択したメモリ装置１００の現在時温度と書き込み時温度テーブルの最高温度との温度差が既定温度を下回っていないと判断した場合（ステップＳ９４ＮＯ）、全体制御部２２は、メモリシステム１が備える全てのメモリ装置１００を対象とした温度取得処理が終了したか否かを判断する（ステップＳ９５）。未だ処理していないメモリ装置１００が存在すると判断した場合（ステップＳ９５ＮＯ）、全体制御部２２は、次に上記ステップＳ９１を行い、未だ処理していない別のメモリ装置１００を選択する。
【００８１】
上記ステップＳ９３において、選択したメモリ装置１００の現在時温度と書き込み時温度テーブルの最低温度との温度差が既定温度を超えたと判断した場合（ステップＳ９３ＹＥＳ）、全体制御部２２は、当該メモリ装置１００、及び、当該メモリ装置１００における書き込み時温度テーブルにおいて最低温度を示すページを、ベリファイライト対象として決定する（ステップＳ９６）。全体制御部２２は、例えば、決定したメモリ装置１００を特定するためのメモリ装置番号と決定したページを示すページアドレスとをＲＡＭ２３に記憶する。なお、メモリシステム１が起動した直後に複数ページに書き込みが行われた場合や、複数ページに連続的な書き込みが行われた場合など、最低温度を示すページが複数ページ存在する場合も有る。全体制御部２２は、ステップＳ９６を行った後、次にステップＳ９４を行う。
【００８２】
また、上記ステップＳ９４において、選択したメモリ装置１００の現在時温度と書き込み時温度テーブルの最高温度との温度差が既定温度を下回ったと判断した場合（ステップＳ９４ＹＥＳ）、全体制御部２２は、当該メモリ装置１００、及び、当該メモリ装置１００における書き込み時温度テーブルにおいて最高温度を示すページのページアドレスを、ベリファイライト対象として決定する（ステップＳ９７）。最高温度を示すページが複数存在する場合もある。全体制御部２２は、例えば、決定したメモリ装置１００を特定するためのメモリ装置番号と決定したページを示すページアドレスとをＲＡＭ２３に記憶する。全体制御部２２は、ステップＳ９７を行った後、次にステップＳ９５を行う。
【００８３】
こうして、メモリシステム１が備える全てのメモリ装置１００を対象とした温度取得処理が終了したならば（ステップＳ９５ＹＥＳ）、全体制御部２２は、メモリインターフェイス２４を制御して、ステップＳ９６およびステップＳ９７においてベリファイライト対象として決定したメモリ装置１００へ、ベリファイライト命令を送信する（ステップＳ９８）。ベリファイライト命令は、例えば、ページを指定する信号、ベリファイライトコマンド、アドレス信号を含む。ページを指定する信号およびアドレス信号は、ステップＳ９６およびステップＳ９７においてＲＡＭ２３にベリファイライト対象として記憶されたページアドレスに基づいて生成される。アドレス信号は、ベリファイライト先である、ブロックＢＬＫｘ中のセルユニットＣＵのアドレスを指定する。ページを指定する信号は、ベリファイライト対象のページを指定する。ページを指定する信号によって複数ページが指定される場合もある。実際には、１セルトランジスタＭＴ当たり２ビットの書き込みの場合、２ページについての書き込み指示が送信される。
【００８４】
メモリ装置１００においては、上述のように、メモリコントローラ２００からの書き込み指示、読み出し指示、及び消去指示に応じた動作を実施する。メモリ装置１００は、上述した、書込み、読出し、および消去を実施していない空き時間に、ベリファイライト命令に応じた動作を実施する。そのため、メモリコントローラ２００から受信されたベリファイライト命令は、例えばレジスタ１２１等に一時的に記憶される。そして、ベリファイライト命令が実行されると、当該命令がレジスタ１２１から消去される。
【００８５】
図１２は、第１実施形態のメモリ装置１００側の動作の別の一例を示すフロー図である。待機状態の時、メモリ装置１００は、図１２に例示される処理を行う。メモリ装置１００のシーケンサ１２は、書き込み指示、読み出し指示、または消去指示があるか否かを判断する（ステップＳ１０１）。これは、例えば、コマンドレジスタ（例えばレジスタ１２１等）内にメモリコントローラ２００からの書き込み指示、読み出し指示、または消去指示があるか否かにより判断することができる。書き込み指示、読み出し指示、または消去指示があると判断した場合には（ステップＳ１０１ＮＯ）、メモリ装置１００は、書込み、読出し、または消去を実施する（ステップＳ１０２）。シーケンサ１２は、ステップＳ１０２を行った後、待機状態へ移行し、処理を終了する（終了）。
【００８６】
書き込み指示、読み出し指示、または消去指示がないと判断した場合（ステップＳ１０１ＹＥＳ）、シーケンサ１２は、ベリファイライト命令があるか否かを判断する（ステップＳ１０３）。これは、例えばレジスタ１２１等にベリファイライト命令があるか否かにより判断することができる。ベリファイライト命令が無いと判断した場合には（ステップＳ１０３ＮＯ）、シーケンサ１２は、待機状態へ移行し、処理を終了する（終了）。
【００８７】
ベリファイライト命令があると判断した場合（ステップＳ１０３ＹＥＳ）、シーケンサ１２は、ベリファイライト命令に基づいて１ページサイズの処理対象ページを決定し（ステップＳ１０４）、処理対象ページに書き込まれているデータを読み出す（ステップＳ１０５）。また、シーケンサ１２は、温度センサ１７から、温度情報ＭＮＤを取得し、レジスタ１２１に格納する（ステップＳ１０６）。温度情報ＭＮＤは、温度を示すデータ（温度データ）を含む。次いで、シーケンサ１２は、電位生成回路１３、ドライバ１４、ロウデコーダ１５、及びセンスアンプ１６を制御して、選択セルユニットＣＵに、読み出したデータをシフト書き込みし、取得された温度データの書き込み時温度情報としての書き込みを行う（ステップＳ１０７）。シフト書込みについては後述する。
【００８８】
１ページサイズのシフト書き込みが終了したならば、シーケンサ１２は、冗長部に記録した書き込み時温度情報を、ページアドレス情報と共に、高信頼性領域に書き込む（ステップＳ１０８）。また、シーケンサ１２は、この高信頼性領域に書き込んだ書き込み時温度情報及びページアドレス情報をメモリコントローラ２００に送信する（ステップＳ１０９）。メモリコントローラ２００では、この送信されてきた情報に基づいて、全体制御部２２は、ＲＡＭ２３上の書き込み時温度テーブルの内容を更新する。
【００８９】
ステップＳ１０９の後、シーケンサ１２は、ベリファイライト命令に含まれる全ての処理が終了したか判断する（ステップＳ１１０）。ベリファイライト命令に含まれる全ての処理が終了したと判断した場合（ステップＳ１１０ＹＥＳ）、シーケンサ１２は、待機状態へ移行し、処理を終了する（終了）。ベリファイライト命令に含まれる全ての処理が終了していないと判断した場合（ステップＳ１１０ＮＯ）、シーケンサ１２は、ステップＳ１０４を行う。
【００９０】
図１３Ａは、データを記憶するセルトランジスタの閾値電圧の分布が書き込み時に対する温度変化によりシフトする様子を示す模式図である。セルトランジスタＭＴの閾値電圧は、温度変化に影響を受けてしまう。例えば、データ書き込み時に対してデータ読み出し時の温度が大きく上昇すると、複数のセルトランジスタＭＴの閾値電圧の分布は、図１３Ａに例示されるように、一方にずれたり、または広がったりする。 つまり、一つのセルトランジスタＭＴが記憶する“０１”データが、データ読み出し時に“１１”データであると誤判定される確率が高まってしまう。
【００９１】
図１３Ｂは、シフト書き込みによるセルトランジスタの閾値電圧の分布を示す模式図である。図１３Ｃは、シフト書き込みされたセルトランジスタの閾値電圧の分布が書き込み時に対する温度変化によりシフトする様子を示す模式図である。そこで、図１３Ｂに例示されるように、閾値電圧の分布を予めずらしておくことが考えられる。こうすることで、データ書き込み時に対してデータ読み出し時の温度が大きく上昇することにより閾値電圧の分布が一方にずれたり、または広がったりしたとしても、図１３Ｃに例示されるように、閾値電圧の分布は、所定の読み出し電圧ＶＡ以上に維持されることが期待できる。この結果、データ書き込み時に対してデータ読み出し時の温度が大きく上昇したとしても、一つのセルトランジスタＭＴが記憶する“０１”データが、データ読み出し時に“１１”データであると誤判定されることなく、読み出しデータは“０１”である、と判定されることが期待できる。
【００９２】
しかしながら、温度変化が逆方向に生じ、温度変化に応じて複数のセルトランジスタＭＴの閾値電圧の分布が、逆方向にずれてしまい、誤判定の確率が高まる可能性もある。
【００９３】
そこで、本実施形態では、予めずらしておくのではなく、過去の書き込み時の温度に対して現在の温度が或る程度変化したときに、その温度差による記憶素子の物理特性の変化を加味して、あらためてデータの書き込みを行う（データの再書き込み）。この或る程度の温度差が、上記ステップＳ９３及びステップＳ９４で用いた既定温度である。データの再書き込みにおいては、書き込み対象のセルトランジスタＭＴの制御ゲート電極に印加する電圧の値を、先の書き込みと異なる電圧値とする。このように、先に行った書込みとは印加する電圧の大きさを異ならせて行う書き込みのことをシフト書き込みという。また、データの再書き込みにおいて印加する電圧の大きさは、過去の書き込み時と現在時とのメモリ装置１００の温度差と、過去の書き込み時において書き込み対象のセルトランジスタＭＴの制御ゲート電極に印加した電圧とに基づいて決定する。
【００９４】
＜１．３．利点＞
第１実施形態によれば、メモリコントローラ２００はメモリ装置１００をより適切に制御できる。詳細は、以下の通りである。
【００９５】
一般に、メモリ装置は多数の記憶素子が集合して構成される。その記憶素子は様々な物理特性を利用して、その変化を検出器で検出することで“０”，“１”のデジタルデータに変換される。それぞれの記憶素子は、その特性に温度依存性を持つことがある。記憶素子の特性に温度依存性がある場合、その特性の変化により、低温で書き込んだデータを高温で読み出したとき、もしくは、高温で書き込んだデータを低温で読み出したとき、正しいデータを読み出せないといった現象が発生しうる。
【００９６】
第１実施形態によれば、メモリコントローラ２００は、現在のメモリ装置１００の温度と、記憶素子へのデータ書き込み時のメモリ装置１００の温度と、の差分が、既定の温度差を超えるとき、メモリ装置１００に、データ読み出し時の記憶素子の物理特性の温度依存性を加味して、記憶素子に書き込まれているデータを再書き込みさせる。これにより、最初の書き込み時から温度が大きく変化したとしても、データを正しく読み出せないといった現象の発生を抑えることができる。
【００９７】
また、メモリシステム１は、ＥＣＣ回路２５を備えている。ＥＣＣ回路２５は、メモリ装置１００からの読み出しデータに対して演算を行って、読み出しデータに含まれる正しい（誤りを訂正された）データを取得することを試みる。ＥＣＣ回路２５は、読み出しデータが、読み出しデータに含まれる誤り訂正データに基づいて定まる誤り訂正能力以下の誤りを含んでいれば、読み出しデータから正しい実体的データを取得できる。したがって、温度変化により正しいデータを読み出せなくても、正しい実体的データを取得することは可能である。しかしながら、読み出しデータが多くの誤りを含むと、読み出しデータのエラーレートは上昇する。メモリコントローラ２００は、このようなエラーレートが高い状態を検出すると、読み出しデータを記憶していたセルユニットＣＵの劣化が進んでいると判断する。そして、メモリコントローラ２００は、劣化が進んだと判断されたセルユニットＣＵにそのデータの消去後に別のデータを書き込む際、より多くの誤りを訂正できる誤り訂正データを使用する。この結果、フレームが縮小し、メモリ装置１００によって記憶されることが可能なデータの容量が低下する。縮小したフレームが増えると、メモリコントローラ２００とメモリ装置１００は、必要なデータの読み出しまたは書き込みのためにメモリ装置１００へのデータの書き込みまたは読み出しの回数が増加する。このことは、メモリシステム１を劣化させ、寿命を短くする。
【００９８】
第１実施形態によれば、上記のように、温度変化に応じたシフト書き込みを行うことで、正しいデータが読み出されることが可能であり、このことは、読み出しデータのエラーレートの減少を抑制し、ひいてはフレームの縮小を抑制する。この結果、メモリ装置１００でのデータの読み出しまたは書き込みの回数の増加が抑制され、ひいては、メモリシステム１の寿命が延伸されることが期待できる。同様の理由により、メモリシステム１の出荷前の試験において、メモリシステム１が劣化を起こしやすいと誤って判断されることが回避され、よって、メモリシステム１の歩留りが向上する。
【００９９】
＜１．４．変形等＞
上記第１実施形態では、一定時間おきに、メモリ装置１００の現在時温度を取得してシフト書き込みをするか否かを決定する例が記述された。第１実施形態の第１変形例では、それに加えて、またはその代わりに、メモリ装置１００からデータを読み出した際に、シフト書き込みの要否を判断するようにしてもよい。
【０１００】
図１４は、第１実施形態の第１変形例におけるデータ読み出し処理の詳細を示すフロー図である。メモリコントローラ２００の全体制御部２２は、メモリ装置１００からデータを読み出すと判断した場合、メモリ装置１００からデータの読み出しを実施する（ステップＳ７１）。その後、全体制御部２２は、特定したメモリ装置１００の温度データを取得する（ステップＳ７２）。例えば、全体制御部２２は、メモリインターフェイス２４を制御して、特定したメモリ装置１００に、温度データの送信を指示する。温度データの送信を指示されると、シーケンサ１２は、温度センサ１７から現時点の温度情報ＭＮＤを取得し、取得された温度情報ＭＮＤに含まれる温度を示すデータ（温度データ）をメモリコントローラ２００に送信する。メモリコントローラ２００の全体制御部２２は、温度データを受け取ると、その温度データで示される特定したメモリ装置１００の現在時温度を、ＲＡＭ２３上の当該メモリ装置１００用のメモリ装置温度情報２３１に記憶する。
【０１０１】
次に、全体制御部２２は、特定したメモリ装置１００の現在時温度が、書き込み時温度テーブルの該当ページの温度に対し既定温度範囲内か否かを判断する（ステップＳ７３）。例えば、全体制御部２２は、ＲＡＭ２３上のメモリ装置温度情報２３１の書き込み時温度テーブルに記憶されている、上記データを読み出したページのページアドレスの書き込み時温度と、同じくメモリ装置温度情報２３１に記憶した現在時温度との差分を求める。そして、その差分が、上述した既定温度で示される温度差以内か否かを判断する。例えば、書き込み時温度が０℃、現在時温度が７０℃であって、既定温度が６５℃であったとすれば、全体制御部２２は、書き込み時温度テーブルの該当ページの温度に対し現在時温度は既定温度範囲内であると判断する。既定温度範囲内であれば（ステップＳ７３ＹＥＳ）、全体制御部２２は、このデータ読み出し処理を終了する（終了）。
【０１０２】
これに対して、特定したメモリ装置１００の現在時温度が、書き込み時温度テーブルの該当ページの温度に対し既定温度範囲外であると判断した場合には（ステップＳ７３ＮＯ）、全体制御部２２は、メモリインターフェイス２４を制御して、その特定したメモリ装置１００に、データのシフト書き込みを指示する。これに応じて、シーケンサ１２は、電位生成回路１３、ドライバ１４、ロウデコーダ１５、及びセンスアンプ１６を制御して、選択セルユニットＣＵに、読み出したデータをシフト書き込みすると共に、取得された温度データを書き込み時温度情報として書き込む（ステップＳ７４）。こうして１ページサイズのシフト書き込みが終了したならば、シーケンサ１２は、冗長部に記録した書き込み時温度情報を、ページアドレス情報と共に、高信頼性領域に書き込む（ステップＳ７５）。また、シーケンサ１２は、この高信頼性領域に書き込んだ書き込み時温度情報及びページアドレス情報をメモリコントローラ２００に送信する。メモリコントローラ２００では、この送信されてきた情報に基づいて、全体制御部２２は、ＲＡＭ２３上のメモリ装置温度情報２３１に含まれる書き込み時温度テーブルの内容を更新する（ステップＳ７６）。
【０１０３】
また上記第１実施形態では、データの書き込み時に、メモリ装置１００の温度によらず、データを書き込む例が記述された。第１実施形態の第２変形例では、それに代えて、メモリ装置１００の現在時の温度に応じて、シフト書き込みを行うようにしてもよい。
【０１０４】
図１５は、第１実施形態の第２変形例におけるデータ書き込み処理の詳細を示すフロー図である。ステップＳ６２とステップＳ６３との間で、シーケンサ１２は、レジスタ１２１に格納した温度情報ＭＮＤに基づいて、現在時の温度が予め規定された温度範囲内であるか否かを判断する（ステップＳ６６）。この予め規定された温度範囲は、例えば５０℃以下であり、現在時の温度が低いか高いかを判断するための値域である。現在時の温度が予め規定された温度範囲内である、つまり温度が低いと判断した場合には（ステップＳ６６ＹＥＳ）、シーケンサ１２は、ステップＳ６３を行う。これに対して、現在時の温度が予め規定された温度範囲内でない、つまり温度が高いと判断した場合には（ステップＳ６６ＮＯ）、シーケンサ１２は、書き込み時温度情報付きでデータをシフト書き込みする（ステップＳ６７）。シーケンサ１２は、ステップＳ６７を行った後、次にステップＳ６４を行う。
【０１０５】
また、メモリシステム１の使用状況によって、メモリ装置１００ごとに、更には、１つのメモリ装置１００のブロックごとに、温度は一様ではない。よって、現在時の温度により、書き込むメモリ装置あるいはブロックを変更するようにしても構わない。
【０１０６】
（第２実施形態）
第１実施形態は、書き込み時温度情報をページごとに記録する例を説明した。第２実施形態は、書き込み時温度情報をブロックごとに記録する場合である。
【０１０７】
以下、第１実施形態と異なる部分を説明する。
【０１０８】
＜２．１．構成＞
第２実施形態のメモリシステム１、メモリコントローラ２００、及びメモリ装置１００は、第１実施形態のものと同じ要素及び接続を有する。一方、第２実施形態では、メモリコントローラ２００及びメモリ装置１００は、以下に記述される動作を行えるように構成されている。
【０１０９】
＜２．２．動作＞
メモリコントローラ２００は、メモリシステム１がオンしている間、各メモリ装置１００用に図１６に示される書き込み時温度テーブルを記憶する。第２実施形態における書き込み時温度テーブルは、ブロックＢＬＫのアドレスと、当該ブロックのセルユニットＣＵへの書き込みのときに温度センサ１７で計測された温度情報から得た各ページの書き込み時温度の内の最低温度及び最高温度と、の対応を示す。
【０１１０】
第２実施形態のメモリシステムにおけるデータ書き込み処理の詳細を示すフロー図である。まず全体制御部２２は、第１実施形態で説明したステップＳ６１と同様に、選択したメモリ装置１００にデータの書き込みを指示する（ステップＳ６０１）。
【０１１１】
選択したメモリ装置１００においては、書き込み指示を受け取ると、第１実施形態で説明したステップＳ６２と同様に、シーケンサ１２が温度情報ＭＮＤを取得し、また、温度情報ＭＮＤに含まれる温度を示すデータ（温度データ）をメモリコントローラ２００に送信する。更にステップＳ６３と同様に、メモリコントローラ２００の全体制御部２２は、メモリ装置１００の現在時温度をメモリ装置温度情報２３１に記憶する。（ステップＳ６０２）。
【０１１２】
次いで、シーケンサ１２は、電位生成回路１３、ドライバ１４、ロウデコーダ１５、及びセンスアンプ１６を制御して、選択セルユニットＣＵに、書き込みデータを書き込む（ステップＳ６０３）。ここで、書き込みデータの内の実体的データであるフレームのデータは、データ領域に書き込まれ、誤り訂正データは冗長部に書き込まれる。第１実施形態と異なり、書き込み時温度情報は、冗長部に書き込まれない。なお、ステップＳ６０２の動作とステップＳ６０３の動作は、順番が逆であってもよい。
【０１１３】
また、全体制御部２２は、選択したメモリ装置１００の現在時温度が、書き込み時温度テーブルの該当ページを含むブロックＢＬＫの書き込み時温度範囲内か否かを判断する（ステップＳ６０４）。例えば、全体制御部２２は、現在時温度が、ＲＡＭ２３上の選択したメモリ装置１００用のメモリ装置温度情報２３１の書き込み時温度テーブルの上記データ書き込みを指示したページに相当するブロックアドレスに対して記録されている、書き込み時温度の最低温度と最高温度との間にあるか否かを判断する。現在時温度が書き込み時温度範囲内であると判断した場合、全体制御部２２は、このデータ書き込み処理を終了する（リターン）。
【０１１４】
これに対して、現在時温度が書き込み時温度範囲外であるとは判断した場合、全体制御部２２は、メモリインターフェイス２４を制御して、選択したメモリ装置１００に、書き込み時温度情報の記録を指示する。この指示に応じて、シーケンサ１２は、レジスタ１２１に格納している温度情報ＭＮＤに含まれる温度データを、書き込み時温度情報として、ブロックアドレス情報と共に、高信頼性領域に書き込む（ステップＳ６０５）。
【０１１５】
また、全体制御部２２は、現在時温度により、選択したメモリ装置１００用のメモリ装置温度情報２３１に含まれる書き込み時温度テーブルの内容を更新する（ステップＳ６０６）。なお、ステップＳ６０５の動作とステップＳ６０６の動作は、順番が逆であってもよい。
【０１１６】
データ読み出し処理、データ消去処理、及びＮＡＮＤ温度取得処理については、第１実施形態と同様である。但し、ＮＡＮＤ温度取得処理のステップＳ９６及びステップＳ９７においてベリファイライト対象として決定されるのは、ページではなくてブロックＢＬＫである。対象として複数のブロックＢＬＫが決定される場合もある。よって、ステップＳ９８でベリファイライト対象メモリ装置１００へ送信されるベリファイライト命令は、ブロックＢＬＫを指定する信号、ベリファイライトコマンド、アドレス信号を含む。
【０１１７】
図１８は、第２実施形態のメモリ装置の動作の一例を示すフロー図である。図１８に示されるように、メモリ装置１００のシーケンサ１２は、第１実施形態で説明したステップＳ１０１と同様に、空き時間であるか否かを判断する（ステップＳ１２１）。空き時間ではないと判断した場合には（ステップＳ１２１ＮＯ）、メモリ装置１００のシーケンサ１２は、処理を終了する（終了）。空き時間であると判断した場合（ステップＳ１２１ＹＥＳ）、シーケンサ１２は、さらに、第１実施形態で説明したステップＳ１０３と同様に、メモリコントローラ２００からのベリファイライト命令の有無を判断する（ステップＳ１２２）。ベリファイライト命令が無いと判断した場合には（ステップＳ１２２ＮＯ）、メモリ装置１００のシーケンサ１２は、処理を終了する（終了）。
【０１１８】
ベリファイライト命令が有ったと判断した場合（ステップＳ１２２ＹＥＳ）、シーケンサ１２は、ベリファイライト命令に基づいて処理対象のブロックＢＬＫを決定する（ステップＳ１２３）。次いで、シーケンサ１２は、決定したブロックＢＬＫ内のセルユニットＣＵｙの処理対象ページを決定する（ステップＳ１２４）。その後、シーケンサ１２は、第１実施形態で説明したステップＳ１０５及びステップＳ１０６と同様に、処理対象ページに書き込まれているデータを読み出す（ステップＳ１２５）と共に、温度センサ１７から、温度情報ＭＮＤを取得して、レジスタ１２１に格納する（ステップＳ１２６）。次いで、シーケンサ１２は、電位生成回路１３、ドライバ１４、ロウデコーダ１５、及びセンスアンプ１６を制御して、選択セルユニットＣＵに、読み出したデータをシフト書き込みする（ステップＳ１２７）。第１実施形態と異なり、本実施形態に係るベリファイライトは、取得された温度データの書き込みは行わない。
【０１１９】
こうして１ページサイズのシフト書き込みが終了したならば、シーケンサ１２は、処理対象ブロックＢＬＫ内のページの全てについてシフト書き込みが終了したか否かを判断する（ステップＳ１２８）。処理対象ブロックＢＬＫ内のページの全てについてシフト書き込みが終了していないと判断した場合（ステップＳ１２８ＮＯ）、シーケンサ１２は、次にステップＳ１２４を行い、次のページに対する処理を実施する。
【０１２０】
処理対象ブロックＢＬＫ内のページの全てについてシフト書き込みが終了したと判断した場合（ステップＳ１２８ＹＥＳ）、シーケンサ１２は、レジスタ１２１に格納した各ページの温度情報の内、最高温度と最低温度とを書き込み時温度情報として、ブロックアドレス情報と共に、高信頼性領域に書き込む（ステップＳ１２９）。また、シーケンサ１２は、この高信頼性領域に書き込んだ書き込み時温度情報及びブロックアドレス情報をメモリコントローラ２００に送信する（ステップＳ１３０）。
【０１２１】
その後、シーケンサ１２は、ベリファイライト命令に含まれる全てのブロックＢＬＫに対する処理が終了したか判断する（ステップＳ１３１）。ベリファイライト命令に含まれる全てのブロックＢＬＫに対する処理が終了していないと判断した場合（ステップＳ１３１ＮＯ）、シーケンサ１２は、次にステップＳ１２３を行う。ベリファイライト命令に含まれる全てのブロックＢＬＫに対する処理が終了していると判断した場合（ステップＳ１３１ＹＥＳ）、シーケンサ１２は、処理を終了する（終了）。
【０１２２】
＜２．３．利点＞
第２実施形態によれば、メモリコントローラ２００は、第１実施形態と同様の効果が得られる。また、第２実施形態によれば、メモリ装置１００は、書き込み時温度情報を冗長部に記録しない。従って、実体的データまたは誤り訂正データで使用可能な領域が第１実施形態よりも多くなり、メモリ装置１００の実体的データの記憶容量の増加、あるいは、より強力な誤り訂正が可能となる。
【０１２３】
さらに、第２実施形態によれば、メモリ装置１００は、高信頼性領域に、ページ単位ではなくてブロック単位で、書き込み時温度情報を記録する。よって、記憶する書き込み時温度情報が少なくて済み、高信頼性領域を別の目的で使用することが可能となる。未使用の高信頼性領域も実体的データの記憶に利用することで、メモリ装置１００の記憶容量を更に増大させることができる。
【０１２４】
＜２．４．変形等＞
メモリシステム１は、多くの場合、複数のセルユニットＣＵに連続してデータが書き込まれ、典型例として、１つのブロックＢＬＫ中のセルユニットＣＵに連続してデータを書き込まれる。このような書き込みは、選択したメモリ装置１００によって短い期間において完了し、よって、１つのブロックＢＬＫ中のセルユニットＣＵへの書き込みの間、温度センサ１７での温度は実質的に一定である。このため、当該ブロックＢＬＫの書き込み時温度情報としては、第１実施形態と同様、ブロックＢＬＫに対して１つの温度としてもよい。すなわち、あるブロックＢＬＫについての書き込み時温度は、当該ブロックＢＬＫのいずれかのセルユニットＣＵへの書き込みのときの書き込み時温度と同じであると見做してよい。
【０１２５】
また、ブロックＢＬＫごとに書き込み時温度が管理される例を示しているが、書き込み時温度は任意の単位で管理されることが可能である。例えば複数のブロックＢＬＫごとに管理されることが可能である。
【０１２６】
さらに、第２実施形態においても、第１実施形態の変形として説明したような、データ読み出し時やデータ書き込み時にシフト書き込みを行うようにしてもよいし、現在時の温度によって書き込むメモリ装置あるいはブロックを変更してもよい。
【０１２７】
＜３．その他＞
第１及び第２実施形態では、メモリ装置１００がＮＡＮＤ型フラッシュメモリである場合を例に説明したが、ＭＲＡＭ（強磁性体メモリ）、ＰＣＲＡＭ（相変化メモリ）、ＦｅＲＡＭ（強誘電体メモリ）など、他のメモリ装置であってもよい。例えば、ＭＲＡＭであれば、磁化の向きをシフトさせるような再書き込みを行う。その他のメモリ装置においても、当該メモリ装置に特有の温度依存性に基づいて再書き込みを行えばよい。
【０１２８】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【０１２９】
１…メモリシステム、  ２…ホスト装置、  １００…メモリ装置、  ２００…メモリコントローラ、  １１…メモリセルアレイ、  １２…シーケンサ、  １３…電位生成回路、  １４…ドライバ、  １５…ロウデコーダ、  １６…センスアンプ、  １７…温度センサ、  ２１…ホストインターフェイス、  ２２…全体制御部、  ２３…ＲＡＭ、  ２４…メモリインターフェイス、  ２５…ＥＣＣ回路、  ２６…ＲＯＭ。
【図１】
2020077443.tif 000003
【図２】
2020077443.tif 000004
【図３】
2020077443.tif 000005
【図４】
2020077443.tif 000006
【図５】
2020077443.tif 000007
【図６】
2020077443.tif 000008
【図７】
2020077443.tif 000009
【図８】
2020077443.tif 000010
【図９】
2020077443.tif 000011
【図１０】
2020077443.tif 000012
【図１１】
2020077443.tif 000013
【図１２】
2020077443.tif 000014
【図１３Ａ】
2020077443.tif 000015
【図１３Ｂ】
2020077443.tif 000016
【図１３Ｃ】
2020077443.tif 000017
【図１４】
2020077443.tif 000018
【図１５】
2020077443.tif 000019
【図１６】
2020077443.tif 000020
【図１７】
2020077443.tif 000021
【図１８】
2020077443.tif 000022