(57)【要約】【課題】トレーニング結果の設定に要する時間の増加を抑制する。【解決手段】一実施形態の不揮発性メモリは、第１記憶領域及び第２記憶領域を含むメモリセルアレイと、メモリコントローラと通信可能に構成された入出力回路と、制御回路と、を備える。上記制御回路は、上記メモリコントローラから第１コマンドを受けると、上記入出力回路に関する第１トレーニング動作を実行し、上記メモリコントローラから第２コマンドを受けると、上記第１トレーニング動作の第１結果を前記第１記憶領域に記憶するように構成される。【選択図】図１２
2020047340.tif 000002
【特許請求の範囲】
【請求項１】
第１記憶領域及び第２記憶領域を含むメモリセルアレイと、
メモリコントローラと通信可能に構成された入出力回路と、
制御回路と、
を備え、
前記制御回路は、
前記メモリコントローラから第１コマンドを受けると、前記入出力回路に関する第１トレーニング動作を実行し、
前記メモリコントローラから第２コマンドを受けると、前記第１トレーニング動作の第１結果を前記第１記憶領域に記憶する
ように構成された、不揮発性メモリ。
【請求項２】
前記制御回路は、前記第１結果を記憶した後に電源がオフされ、更にオンされた場合、前記第１記憶領域に記憶された前記第１結果を前記入出力回路に設定するように構成された、
請求項１記載の不揮発性メモリ。
【請求項３】
前記制御回路は、前記入出力回路に前記第１結果が設定された後、
前記メモリコントローラから第３コマンドを受けると、前記第１結果に基づき、前記入出力回路に関する第２トレーニング動作を実行し、
前記入出力回路の設定を前記第１結果から前記第２トレーニング動作の第２結果に変更する
ように構成された、
請求項１記載の不揮発性メモリ。
【請求項４】
前記制御回路は、前記第２トレーニング動作を実行した後、
前記メモリコントローラから前記第２コマンドを受けると、前記第１結果を前記第２結果に上書きする
ように構成された、
請求項３記載の不揮発性メモリ。
【請求項５】
前記第１トレーニング動作は、前記入出力回路に入出力される信号をデスキューすることを含む、
請求項１記載の不揮発性メモリ。
【請求項６】
前記制御回路は、
前記メモリコントローラから書込みデータを含む第４コマンドを受けると、前記書込みデータを前記第２記憶領域に記憶し、
前記第４コマンドによる前記第１記憶領域への前記書込みデータを禁止する、
請求項１記載の不揮発性メモリ。
【請求項７】
メモリコントローラと、
第１記憶領域及び第２記憶領域を含むメモリセルアレイと、前記メモリコントローラと通信可能に構成された入出力回路と、制御回路と、を含む不揮発性メモリと、
を備え、
前記制御回路は、
前記メモリコントローラから第１コマンドを受けると、前記入出力回路に関する第１トレーニング動作を実行し、
前記メモリコントローラから第２コマンドを受けると、前記第１トレーニング動作の第１結果を前記第１記憶領域に記憶する
ように構成された、メモリシステム。
【請求項８】
前記メモリコントローラは、
第１状態の前記不揮発性メモリに対して、前記第１コマンドを発行して前記第１トレーニング動作を実行させた後、前記第２コマンドを発行して前記第１状態における前記第１結果を前記第１記憶領域に記憶させ、
第２状態の前記不揮発性メモリに対して、前記第１コマンドを発行して前記第１トレーニング動作を実行させた後、前記第２コマンドを発行して前記第２状態における第３結果を前記第１記憶領域に記憶させる
ように構成された、
請求項７記載のメモリシステム。
【請求項９】
前記不揮発性メモリは、温度センサを更に備え、
前記メモリコントローラは、前記温度センサからの温度情報が第１条件を満たすと、第５コマンドを発行して前記入出力回路の設定を前記第１結果から前記第３結果に変更させるように構成された、
請求項８記載のメモリシステム。
【請求項１０】
前記不揮発性メモリは、温度センサを更に備え、
前記制御回路は、前記温度センサからの温度情報が第１条件を満たすと、前記入出力回路の設定を前記第１結果から前記第３結果に変更するように構成された、
請求項８記載のメモリシステム。
【請求項１１】
前記メモリコントローラは、前記メモリコントローラに供給される電圧が第２条件を満たすと、第６コマンドを発行して前記入出力回路の設定を前記第１結果から前記第３結果に変更させるように構成された、
請求項８記載のメモリシステム。
【請求項１２】
前記メモリコントローラは、前記メモリコントローラと前記入出力回路との間で通信される信号の周波数が第３条件を満たすと、第７コマンドを発行して前記入出力回路の設定を前記第１結果から前記第３結果に変更させるように構成された、
請求項８記載のメモリシステム。
【請求項１３】
前記メモリコントローラは、第８コマンドを発行して前記メモリコントローラと前記入出力回路との間の通信モードを変更しつつ、前記入出力回路の設定を前記第１結果から前記第３結果に変更させるように構成された、
請求項８記載のメモリシステム。
【請求項１４】
前記メモリコントローラは、
第４条件を満たすと、第８コマンドを発行して、前記入出力回路の設定を前記第１結果からオフセットさせる
ように構成された、
請求項７記載のメモリシステム。
【請求項１５】
前記メモリコントローラは、前記第２記憶領域からデータが読み出された第１回数又は前記第２記憶領域へデータが書き込まれた第２回数をカウントし、
前記第１回数又は第２回数が前記第４条件を満たすと、前記第８コマンドを発行して、前記入出力回路の設定を前記第１結果からオフセットさせる
ように構成された、
請求項１４記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
実施形態は、不揮発性メモリ及びメモリシステムに関する。
【背景技術】
【０００２】
不揮発性メモリとしてのＮＡＮＤ型フラッシュメモリと、ＮＡＮＤ型フラッシュメモリを制御するメモリコントローラと、を含むメモリシステムが知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許第８０８１５２７号明細書
【特許文献２】米国特許第８８９７０８３号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
トレーニング結果の設定に要する時間の増加を抑制する。
【課題を解決するための手段】
【０００５】
実施形態の不揮発性メモリは、第１記憶領域及び第２記憶領域を含むメモリセルアレイと、メモリコントローラと通信可能に構成された入出力回路と、制御回路と、を備える。上記制御回路は、上記メモリコントローラから第１コマンドを受けると、上記入出力回路に関する第１トレーニング動作を実行し、上記メモリコントローラから第２コマンドを受けると、上記第１トレーニング動作の第１結果を前記第１記憶領域に記憶するように構成される。
【図面の簡単な説明】
【０００６】
【図１】第１実施形態に係るメモリシステムの電源系統の構成を説明するためのブロック図。
【図２】第１実施形態に係るメモリシステムの信号系統の構成を説明するためのブロック図。
【図３】第１実施形態に係る半導体記憶装置の構成を説明するためのブロック図。
【図４】第１実施形態に係る半導体記憶装置のメモリセルアレイの構成を説明するための回路図。
【図５】第１実施形態に係る半導体記憶装置のメモリセルアレイの記憶領域を説明するためのブロック図。
【図６】第１実施形態に係る半導体記憶装置の入出力回路の構成を説明するためのブロック図。
【図７】第１実施形態に係る半導体記憶装置の入力回路の構成を説明するための回路図。
【図８】第１実施形態に係る半導体記憶装置の出力回路の構成を説明するための回路図。
【図９】第１実施形態に係るメモリシステムにおけるインタフェーストレーニング動作のトレーニング項目を説明するためのコマンドシーケンス。
【図１０】第１実施形態に係るメモリシステムにおけるインタフェーストレーニング動作のトレーニング項目を説明するためのコマンドシーケンス。
【図１１】第１実施形態に係るメモリシステムにおけるインタフェーストレーニング動作を含む一連の動作を説明するためのフローチャート。
【図１２】第１実施形態に係るメモリシステムにおけるインタフェーストレーニング動作を説明するためのコマンドシーケンス。
【図１３】第２実施形態に係るメモリシステムにおけるインタフェーストレーニング動作を含む一連の動作を説明するためのフローチャート。
【図１４】第２実施形態に係るメモリシステムにおけるインタフェーストレーニング動作を説明するためのコマンドシーケンス。
【図１５】第２実施形態に係るメモリシステムにおけるインタフェーストレーニング結果の設定変更動作を説明するためのコマンドシーケンス。
【図１６】第２実施形態に係るメモリシステムにおけるインタフェーストレーニング結果の設定変更動作を説明するためのコマンドシーケンス。
【図１７】第２実施形態の変形例に係るメモリシステムにおけるインタフェーストレーニング動作を含む一連の動作を説明するためのフローチャート。
【図１８】第３実施形態に係るメモリシステムにおけるインタフェーストレーニング動作を含む一連の動作を説明するためのフローチャート。
【図１９】第４実施形態に係るメモリシステムにおけるインタフェーストレーニング動作を含む一連の動作を説明するためのフローチャート。
【図２０】第５実施形態に係るメモリシステムにおけるインタフェーストレーニング動作を含む一連の動作を説明するためのフローチャート。
【図２１】第６実施形態に係るメモリシステムにおけるインタフェーストレーニング動作を含む一連の動作を説明するためのフローチャート。
【図２２】第７実施形態に係るメモリシステムにおける詳細インタフェーストレーニング動作を含む一連の動作を説明するためのフローチャート。
【図２３】第７実施形態に係るメモリシステムにおける詳細インタフェーストレーニング動作を説明するためのコマンドシーケンス。
【発明を実施するための形態】
【０００７】
以下、図面を参照して実施形態について説明する。なお、以下の説明において、同一の機能及び構成を有する構成要素については、共通する参照符号を付す。
【０００８】
なお、以下の説明では、信号Ｘ＜ｎ：０＞（ｎは自然数）とは、（ｎ＋１）ビットの信号であり、各々が１ビットの信号である信号Ｘ＜０＞、Ｘ＜１＞、…、及びＸ＜ｎ＞の集合を意味する。また、構成要素Ｙ＜ｎ：０＞とは、信号Ｘ＜ｎ：０＞の入力又は出力に１対１に対応する構成要素Ｙ＜０＞、Ｙ＜１＞、…、及びＹ＜ｎ＞の集合を意味する。
【０００９】
また、以下の説明では、「信号Ｚのデューティ比」とは、信号Ｚにおけるパルスの１周期に対する、パルスが立ち上がってから立ち下がるまでの時間の割合を示す。また、信号／Ｚは、信号Ｚの反転信号であることを示す。
【００１０】
１．第１実施形態
第１実施形態に係るメモリシステムについて説明する。第１実施形態に係るメモリシステムは、例えば、不揮発性メモリ（半導体記憶装置）としてのＮＡＮＤ型フラッシュメモリと、当該ＮＡＮＤ型フラッシュメモリを制御するメモリコントローラと、を含む。
【００１１】
１．１  構成
１．１．１  メモリシステムの全体構成
第１実施形態に係るメモリシステムの全体構成について、図１及び図２を用いて説明する。メモリシステム１は、例えば、外部の図示しないホスト機器と通信する。メモリシステム１は、ホスト機器からのデータを保持し、また、データをホスト機器に読出す。
【００１２】
図１は、第１実施形態に係るメモリシステムの電源系統を説明するためのブロック図である。図１に示すように、メモリシステム１は、メモリコントローラ２と、ＮＡＮＤパッケージ３と、パワーマネージャ４と、を備えている。ＮＡＮＤパッケージ３は、例えば、複数の半導体記憶装置３Ａ、３Ｂ、…を含む。半導体記憶装置３Ａ、３Ｂ、…の各々は、例えば、同等の構成を有するため、以下の説明では、主に半導体記憶装置３Ａ、３Ｂ、…のうちの半導体記憶装置３Ａ及び３Ｂについて説明する。半導体記憶装置３Ａ及び３Ｂはそれぞれ、チップＡ及びチップＢと読み替えてもよい。
【００１３】
パワーマネージャ４は、メモリコントローラ２及びＮＡＮＤパッケージ３に供給される電圧を管理するためのＩＣ（Integrated circuit）である。パワーマネージャ４は、例えば、電圧ＶＣＣＱをメモリコントローラ２及びＮＡＮＤパッケージ３に供給する。電圧ＶＣＣＱは、メモリコントローラ２とＮＡＮＤパッケージ３との間で通信される入出力信号の基準電圧として用いられる。また、パワーマネージャ４は、例えば、ＮＡＮＤパッケージ３に電圧ＶＣＣを供給する。電圧ＶＣＣは、ＮＡＮＤパッケージ３内で用いられる基準電圧として用いられる。
【００１４】
図２は、第１実施形態に係るメモリシステムの信号系統を説明するためのブロック図である。図２に示すように、メモリコントローラ２は、半導体記憶装置３Ａ及び３Ｂを制御する。具体的には、メモリコントローラ２は、データを半導体記憶装置３Ａ及び３Ｂに書込み、データを半導体記憶装置３Ａ及び３Ｂから読出す。メモリコントローラ２は、ＮＡＮＤバスによって半導体記憶装置３Ａ及び３Ｂに接続される。
【００１５】
半導体記憶装置３Ａ及び３Ｂの各々は、複数のメモリセルを備え、データを不揮発に記憶する。半導体記憶装置３Ａ及び３Ｂの各々は、例えば、チップアドレスが予め割当てられることで一意に識別可能な半導体チップであり、メモリコントローラ２の指示によって独立に動作可能に構成される。
【００１６】
半導体記憶装置３Ａ及び３Ｂの各々と接続されたＮＡＮＤバス上では、同種の信号が送受信される。ＮＡＮＤバスは、複数の信号線を含み、ＮＡＮＤインタフェースに従った信号／ＣＥ０及び／ＣＥ１、ＣＬＥ、ＡＬＥ、／ＷＥ、／ＲＥ、／ＷＰ、／ＲＢ０及び／ＲＢ１、ＤＱ＜７：０＞、ＤＱＳ、並びに／ＤＱＳの送受信を行う。信号ＣＬＥ、ＡＬＥ、／ＷＥ、／ＲＥ、及び／ＷＰは、半導体記憶装置３Ａ及び３Ｂによって受け取られ、信号／ＲＢ０及び／ＲＢ１は、メモリコントローラ２によって受け取られる。また、信号／ＣＥ０及び／ＣＥ１はそれぞれ、半導体記憶装置３Ａ及び３Ｂによって受け取られる。
【００１７】
信号／ＣＥ０及び／ＣＥ１はそれぞれ、半導体記憶装置３Ａ及び３Ｂをイネーブルにするための信号である。信号ＣＬＥは、信号ＣＬＥが“Ｈ（High）”レベルである間に半導体記憶装置３Ａ及び３Ｂに流れる信号ＤＱ＜７：０＞がコマンドであることを半導体記憶装置３Ａ及び３Ｂに通知する。信号ＡＬＥは、信号ＡＬＥが“Ｈ”レベルである間に半導体記憶装置３Ａ及び３Ｂに流れる信号ＤＱ＜７：０＞がアドレスであることを半導体記憶装置３Ａ及び３Ｂに通知する。信号／ＷＥは、信号／ＷＥが“Ｌ（Low）”レベルである間に半導体記憶装置３Ａ及び３Ｂに流れる信号ＤＱ＜７：０＞を半導体記憶装置３Ａ及び３Ｂに取り込むことを指示する。信号／ＲＥは、半導体記憶装置３Ａ及び３Ｂに信号ＤＱ＜７：０＞を出力することを指示し、例えば、信号ＤＱ＜７：０＞を出力する際の半導体記憶装置３Ａ及び３Ｂの動作タイミングを制御するために使用される。信号／ＷＰは、データ書込み及び消去の禁止を半導体記憶装置３Ａ及び３Ｂに指示する。信号／ＲＢ０及び／ＲＢ１はそれぞれ、半導体記憶装置３Ａ及び３Ｂがレディ状態（外部からの命令を受け付ける状態）であるか、ビジー状態（外部からの命令を受け付けない状態）であるかを示す。信号ＤＱ＜７：０＞は、例えば８ビットの信号である。信号ＤＱ＜７：０＞は、半導体記憶装置３Ａ及び３Ｂとメモリコントローラ２との間で送受信されるデータの実体であり、コマンド、アドレス、及びデータを含む。信号ＤＱＳ及び／ＤＱＳは、例えば、信号ＤＱ＜７：０＞に係る半導体記憶装置３Ａ及び３Ｂの動作タイミングを制御するために使用される。
【００１８】
１．１．２  コントローラの構成
引き続き図２を用いて、第１実施形態に係るメモリシステムのコントローラについて説明する。メモリコントローラ２は、プロセッサ（ＣＰＵ：Central Processing Unit）１１、内蔵メモリ（ＲＡＭ：Random Access Memory）１２、ＮＡＮＤインタフェース回路１３、バッファメモリ１４、及びホストインタフェース回路１５を備えている。
【００１９】
プロセッサ１１は、メモリコントローラ２全体の動作を制御する。プロセッサ１１は、例えば、外部から受信したデータの書込み命令に応答して、ＮＡＮＤインタフェースに基づく書込み命令を半導体記憶装置３Ａ及び３Ｂに対して発行する。この動作は、読出し、消去、及び較正動作等のその他の動作の場合についても同様である。
【００２０】
内蔵メモリ１２は、例えば、ＤＲＡＭ（Dynamic RAM）等の半導体メモリであり、プロセッサ１１の作業領域として使用される。内蔵メモリ１２は、半導体記憶装置３Ａ及び３Ｂを管理するためのファームウェア、及び各種の管理テーブル等を保持する。
【００２１】
ＮＡＮＤインタフェース回路１３は、上述のＮＡＮＤバスを介して半導体記憶装置３Ａ及び３Ｂと接続され、半導体記憶装置３Ａ及び３Ｂとの通信を司る。ＮＡＮＤインタフェース回路１３は、プロセッサ１１の指示により、コマンド、アドレス、及び書込みデータを半導体記憶装置３Ａ及び３Ｂに送信する。また、ＮＡＮＤインタフェース回路１３は、半導体記憶装置３Ａ及び３Ｂからステータス、及び読出しデータを受信する。
【００２２】
バッファメモリ１４は、コントローラ１０が半導体記憶装置３Ａ及び３Ｂ、並びに外部から受信したデータ等を一時的に保持する。
【００２３】
ホストインタフェース回路１５は、外部の図示しないホスト機器と接続され、ホスト機器との通信を司る。ホストインタフェース回路１５は、例えば、ホスト機器から受信した命令及びデータを、それぞれプロセッサ１１及びバッファメモリ１４に転送する。
【００２４】
１．１．３  半導体記憶装置の構成
次に、第１実施形態に係る半導体記憶装置の構成例について、図３を用いて説明する。なお、上述の通り、半導体記憶装置３Ａ、３Ｂ、…は、例えば、同等の構成を有する。このため、以下の説明では、半導体記憶装置３Ａ、３Ｂ、…のうち、半導体記憶装置３Ａの構成について説明し、他の半導体記憶装置３Ｂ、…の構成については、その説明を省略する。
【００２５】
図３に示すように、半導体記憶装置３Ａは、メモリセルアレイ２１、入出力回路２２、ロジック制御回路２３、温度センサ２４、レジスタ２５、シーケンサ２６、電圧生成回路２７、ドライバセット２８、ロウデコーダ２９、センスアンプ３０、入出力用パッド群３１、及びロジック制御用パッド群３２を備えている。
【００２６】
メモリセルアレイ２１は、複数のブロックＢＬＫ（ＢＬＫ０、ＢＬＫ１、…）を備えている。ブロックＢＬＫは、ワード線及びビット線に関連付けられた複数の不揮発性メモリセルトランジスタ（図示せず）を含む。ブロックＢＬＫは、例えばデータの消去単位となり、同一のブロックＢＬＫ内のデータは、一括して消去される。各ブロックＢＬＫは、複数のストリングユニットＳＵ（ＳＵ０、ＳＵ１、…）を備えている。各ストリングユニットＳＵは、複数のＮＡＮＤストリングＮＳを備えている。なお、メモリセルアレイ２１１内のブロック数、１ブロックＢＬＫ内のストリングユニット数、１ストリングユニットＳＵ内のＮＡＮＤストリング数は、任意の数に設定出来る。
【００２７】
入出力回路２２は、メモリコントローラ２と信号ＤＱ＜７：０＞を送受信する。入出力回路２２は、信号ＤＱ＜７：０＞内のコマンド及びアドレスをレジスタ２５に転送する。入出力回路２２は、書込みデータ及び読出しデータをセンスアンプ３０と送受信する。
【００２８】
ロジック制御回路２３は、メモリコントローラ２から信号／ＣＥ０、ＣＬＥ、ＡＬＥ、／ＷＥ、／ＲＥ、及び／ＷＰを受信する。また、ロジック制御回路２３は、信号／ＲＢ０をメモリコントローラ２に転送して半導体記憶装置３Ａの状態を外部に通知する。
【００２９】
温度センサ２４は、半導体記憶装置３Ａ内の温度を測定可能な機能を有する。温度センサ２４は、測定した温度に関する情報をシーケンサ２６に送出する。なお、温度センサ２４は、メモリセルアレイ２１の温度とみなし得る温度が測定可能な範囲において、半導体記憶装置３Ａ内の任意の場所に設けられることができる。
【００３０】
レジスタ２５は、コマンド及びアドレスを保持する。レジスタ２５は、アドレスをロウデコーダ２９及びセンスアンプ３０に転送すると共に、コマンドをシーケンサ２６に転送する。
【００３１】
シーケンサ２６は、コマンドを受け取り、受け取ったコマンドに基づくシーケンスに従って半導体記憶装置３Ａの全体を制御する。また、シーケンサ２６は、温度センサ２４から受けた温度に関する情報を、入出力回路２２を介してメモリコントローラ２に送出する。
【００３２】
電圧生成回路２７は、シーケンサ２６からの指示に基づき、データの書込み、読出し、及び消去等の動作に必要な電圧を生成する。電圧生成回路２７は、生成した電圧をドライバセット２８に供給する。
【００３３】
ドライバセット２８は、複数のドライバを含み、レジスタ２５からのアドレスに基づいて、電圧生成回路２７からの種々の電圧をロウデコーダ２９及びセンスアンプ３０に供給する。ドライバセット２８は、例えば、アドレス中のロウアドレスに基づき、ロウデコーダ２９に種々の電圧を供給する。
【００３４】
ロウデコーダ２９は、レジスタ２５からアドレス中のロウアドレスを受取り、当該ロウアドレスに基づく行のメモリセルを選択する。そして、選択された行のメモリセルには、ロウデコーダ２９を介してドライバセット２８からの電圧が転送される。
【００３５】
センスアンプ３０は、データの読出し時には、メモリセルからビット線に読出された読出しデータをセンスし、センスした読出しデータを入出力回路２２に転送する。センスアンプ３０は、データの書込み時には、ビット線を介して書込まれる書込みデータをメモリセルに転送する。また、センスアンプ３０は、レジスタ２５からアドレス中のカラムアドレスを受取り、当該カラムアドレスに基づくカラムのデータを出力する。
【００３６】
入出力用パッド群３１は、メモリコントローラ２から受信した信号ＤＱ＜７：０＞、ＤＱＳ、及び／ＤＱＳを入出力回路２２に転送する。また、入出力用パッド群３１は、入出力回路２２から送信された信号ＤＱ＜７：０＞を半導体記憶装置３Ａの外部に転送する。
【００３７】
ロジック制御用パッド群３２は、メモリコントローラ２から受信した信号／ＣＥ０、ＣＬＥ、ＡＬＥ、／ＷＥ、／ＲＥ、及び／ＷＰをロジック制御回路２３に転送する。また、ロジック制御用パッド群３２は、ロジック制御回路２３から送信された／ＲＢ０を半導体記憶装置３Ａの外部に転送する。
【００３８】
１．１．４  メモリセルアレイの構成
次に、第１実施形態に係る半導体記憶装置のメモリセルアレイの構成について説明する。図４は、第１実施形態に係る半導体記憶装置のメモリセルアレイの構成を説明するための回路図の一例である。図４では、メモリセルアレイ２１のうちの１つのブロックＢＬＫの回路図が示される。
【００３９】
図４に示すように、各ストリングユニットＳＵは、ＮＡＮＤストリングＮＳの集合により構成される。ＮＡＮＤストリングＮＳの各々は、例えば６４個のメモリセルトランジスタＭＴ（ＭＴ０〜ＭＴ６３）と、選択トランジスタＳＴ１と、選択トランジスタＳＴ２とを備える。なお、１つのＮＡＮＤストリングＮＳ内に含まれるメモリセルトランジスタＭＴの個数は６４個に限られず、８個、１６個、３２個、９６個、１２８個等であってもよく、その数は限定されるものではない。メモリセルトランジスタＭＴは、制御ゲートと電荷蓄積層とを含む積層ゲートを備える。各メモリセルトランジスタＭＴは、選択トランジスタＳＴ１及びＳＴ２の間に、直列接続される。なお、以下の説明では『接続』とは、間に別の導電可能な要素が介在する場合も含む。
【００４０】
或るブロックＢＬＫ内において、ストリングユニットＳＵ０〜ＳＵ３の選択トランジスタＳＴ１のゲートは、それぞれ選択ゲート線ＳＧＤ０〜ＳＧＤ３に接続される。また、ブロックＢＬＫ内の全てのストリングユニットＳＵの選択トランジスタＳＴ２のゲートは、選択ゲート線ＳＧＳに共通接続される。同一のブロックＢＬＫ内のメモリセルトランジスタＭＴ０〜ＭＴ７の制御ゲートは、それぞれワード線ＷＬ０〜ＷＬ７に接続される。すなわち、同じアドレスのワード線ＷＬは、同一のブロックＢＬＫ内の全てのストリングユニットＳＵに共通接続されており、選択ゲート線ＳＧＳは、同一のブロックＢＬＫ内の全てのストリングユニットＳＵに共通接続されている。一方、選択ゲート線ＳＧＤは、同一のブロックＢＬＫ内のストリングユニットＳＵの１つのみに接続される。
【００４１】
また、メモリセルアレイ２１内でマトリクス状に配置されたＮＡＮＤストリングＮＳのうち、同一行にあるＮＡＮＤストリングＮＳの選択トランジスタＳＴ１の他端は、ｍ本のビット線ＢＬ（ＢＬ０〜ＢＬ（ｍ−１）（ｍは自然数））のいずれかに接続される。また、ビット線ＢＬは、複数のブロックＢＬＫにわたって、同一列のＮＡＮＤストリングＮＳに共通接続される。
【００４２】
また、選択トランジスタＳＴ２の他端は、ソース線ＳＬに接続される。ソース線ＳＬは、複数のブロックＢＬＫにわたって、複数のＮＡＮＤストリングＮＳに共通接続される。
【００４３】
上述のとおり、データの消去は、例えば、同一のブロックＢＬＫ内にあるメモリセルトランジスタＭＴに対して一括して行われる。これに対して、データの読出し動作及び書込み動作は、いずれかのブロックＢＬＫのいずれかのストリングユニットＳＵにおける、いずれかのワード線ＷＬに共通接続された複数のメモリセルトランジスタＭＴにつき、一括して行われ得る。このような、１つのストリングユニットＳＵ中でワード線ＷＬを共有するメモリセルトランジスタＭＴの組は、例えば、セルユニットＣＵと称される。つまり、セルユニットＣＵは、一括して書込み動作、又は読出し動作が実行され得るメモリセルトランジスタＭＴの組である。
【００４４】
なお、１つのメモリセルトランジスタＭＴは、例えば、複数のビットデータを保持可能である。そして、同一のセルユニットＣＵ内において、メモリセルトランジスタＭＴの各々が同位のビットにおいて保持する１ビットの集合を「ページ」と呼ぶ。つまり、「ページ」とは、同一のセルユニットＣＵ内のメモリセルトランジスタＭＴの組に形成されるメモリ空間の一部、と定義することも出来る。
【００４５】
図５は、第１実施形態に係る半導体記憶装置のメモリセルアレイの記憶領域の一例を説明するためのブロック図である。
【００４６】
図５に示すように、メモリセルアレイ２１は、ユーザデータ領域２１Ａ及びシステムデータ領域２１Ｂを含む。
【００４７】
ユーザデータ領域２１Ａは、例えば、メモリコントローラ２から入力されたユーザデータを記憶するためのメモリセルトランジスタＭＴを含む記憶領域である。すなわち、ユーザデータ領域２１Ａは、ユーザが自由にアクセス可能な領域を示し、一般的な書込みコマンド及び読出しコマンドによってデータを書込み及び読出し可能な領域である。
【００４８】
システムデータ領域２１Ｂは、例えば、半導体記憶装置３Ａの動作に必要な各種設定値（システムデータ）を記憶するためのメモリセルトランジスタＭＴを含む記憶領域である。システムデータ領域２１Ｂは、ユーザデータ領域２１Ａとは異なり、通常動作時に発行される一般的な書込みコマンドを使用した書込み動作が禁止される。システムデータ領域２１Ｂへの書込み動作には、一般的な書込みコマンドとは異なる専用のコマンドが必要である。
【００４９】
１．１．５  入出力回路の構成
次に、第１実施形態に係る半導体記憶装置の入出力回路の構成について説明する。
【００５０】
１．１．５．１  入出力回路の全体構成
まず、第１実施形態に係る半導体記憶装置の入出力回路の全体構成について説明する。図６は、第１実施形態に係る半導体記憶装置の入出力回路の構成を説明するためのブロック図である。
【００５１】
図６に示すように、入出力回路２２は、信号ＤＱ＜７：０＞に対応する入力回路４１＜７：０＞及び出力回路４２＜７：０＞の組を含む。１つの入力回路４１＜ｊ＞及び出力回路４２＜ｊ＞の組には、例えば、同種の信号ＤＱ＜ｊ＞が割当てられる（０≦ｊ≦７）。すなわち、入力回路４１＜ｊ＞及び出力回路４２＜ｊ＞の組は、外部のメモリコントローラ２と、入出力用パッド群３１内のパッド３１＜ｊ＞を介して信号ＤＱ＜ｊ＞を通信可能である。
【００５２】
また、入出力回路２２は、信号ＤＱＳ及び／ＤＱＳの組に対応する入力回路４１＿ｄｑｓ及び出力回路４２＿ｄｑｓの組を含む。すなわち、入力回路４１＿ｄｑｓ及び出力回路４２＿ｄｑｓの組は、外部のメモリコントローラ２と、入出力用パッド群３１内のパッド３１＿ｄｑｓ及び３１＿ｂｄｑｓを介して信号ＤＱＳ及び／ＤＱＳを通信可能である。
【００５３】
１．１．５．２  入力回路の構成
次に、第１実施形態に係る入出力回路のうち、入力回路の構成について、図７を用いて説明する。図７は、第１実施形態に係る半導体記憶装置の入力回路の構成を説明するための回路図である。図７では、パッド３１＜０＞と、当該パッド３１＜０＞に対応する入力回路４１＜０＞と、の接続関係、並びにパッド３１＿ｄｑｓ及び３１＿ｂｄｑｓと、当該パッド３１＿ｄｑｓ及び３１＿ｂｄｑｓに対応する入力回路４１＿ｄｑｓと、の接続関係の一例が示される。なお、他の入力回路４１＜７：１＞の構成は、入力回路４１＜０＞と同等の構成を有しているため、その説明を省略する。
【００５４】
図７に示すように、入力回路４１＜０＞は、コンパレータＣＯＭＰ１、及びインバータ群ＩＮＶ１を含む。入力回路４１＿ｄｑｓは、コンパレータＣＯＭＰ２、並びにインバータ群ＩＮＶ２及びＩＮＶ３を含む。
【００５５】
コンパレータＣＯＭＰ１は、信号ＤＱ＜０＞が供給される第１入力端と、電圧ＶＲＥＦが供給される第２入力端と、インバータ群ＩＮＶ１の入力端に接続された出力端と、を含む。電圧ＶＲＥＦは、信号ＤＱの増幅に用いられる、一定値を有する基準電圧（参照信号）であり、例えば、電圧ＶＣＣＱ／２である。コンパレータＣＯＭＰ１は、例えば、信号ＤＱ＜０＞を電圧ＶＲＥＦと比較することにより、信号ＤＱ＜０＞の波形（例えば、デューティ比）を調整しつつ、その比較結果を差動増幅する機能を有する。インバータ群ＩＮＶ１は、例えば、コンパレータＣＯＭＰ１から出力された信号に任意の遅延量を加え、コンパレータＣＯＭＰ１からの出力信号の位相が反転した信号Ｄｉｎとして出力する機能を有する。
【００５６】
コンパレータＣＯＭＰ２は、信号ＤＱＳが供給される第１入力端と、信号／ＤＱＳが供給される第２入力端と、インバータ群ＩＮＶ２の入力端に接続された第１出力端と、インバータ群ＩＮＶ３の入力端に接続された第２出力端と、を含む。コンパレータＣＯＭＰ２は、例えば、信号ＤＱＳと信号／ＤＱＳとを比較することにより、信号ＤＱＳ及び／ＤＱＳの波形（例えば、デューティ比）を調整しつつ、その比較結果を差動増幅する機能を有する。インバータ群ＩＮＶ２及びＩＮＶ３はそれぞれ、例えば、コンパレータＣＯＭＰ２から出力された信号に任意の遅延量を加え、コンパレータＣＯＭＰ２からの出力信号の位相が同じ信号ＳＩＧ及び／ＳＩＧとして出力する機能を有する。なお、信号ＳＩＧ及び／ＳＩＧは、例えば、互いに逆位相の信号である。
【００５７】
データラッチ５０は、信号ＳＩＧ及び／ＳＩＧに基づき、信号Ｄｉｎに含まれるデータを入力データとしてラッチする機能を有する。
【００５８】
以上のように構成されることにより、入力回路４１＜０＞及び４１＿ｄｑｓは、信号ＤＱ＜０＞、ＤＱＳ、及び／ＤＱＳを適切な波形に調整しつつ、データをチップＡ内に入力することができる。
【００５９】
１．１．５．３  出力回路の構成
次に、第１実施形態に係る入出力回路のうち、出力回路の構成の詳細について図８を用いて説明する。
【００６０】
図８は、第１実施形態に係る半導体記憶装置の出力回路の構成を説明するための回路図である。図８では、パッド３１＜０＞と、当該パッド３１＜０＞に対応する出力回路４２＜０＞と、の接続関係の一例が示される。なお、他の出力回路４２＜７：１＞、及び４２＿ｄｑｓの構成は、出力回路４２＜０＞と同等の構成を有しているため、その説明を省略する。
【００６１】
図８に示すように、出力回路４２＜０＞は、例えば、ｉ個の論理回路ＮＡＮＤ＜ｉ：０＞及びＮＯＲ＜ｉ：０＞、並びにトランジスタＴｐ＜ｉ：０＞及びＴｎ＜ｉ：０＞を含む。ここで、ｉは、任意の自然数である。論理回路ＮＡＮＤ＜ｉ：０＞は、２つの入力信号のＮＡＮＤ演算結果を出力する。論理回路ＮＯＲ＜ｉ：０＞は、２つの入力信号のＮＯＲ演算結果を出力する。トランジスタＴｐ＜ｉ：０＞はｐ型の極性を有し、トランジスタＴｎ＜ｉ：０＞は、ｎ型の極性を有する。
【００６２】
Ｒｏｎ制御回路５２及び出力制御回路５３はそれぞれ、パッド３１＜０＞から出力信号として出力される信号ＤＱ＜０＞を制御するための信号を送出する。具体的には、Ｒｏｎ制御回路５２は、信号ＳＥＬｐ＜ｉ：０＞及びＳＥＬｎ＜ｉ：０＞を、出力制御回路５３は、信号Ｄｏｕｔを、出力回路４２＜０＞に送出する。
【００６３】
論理回路ＮＡＮＤ＜ｉ：０＞は、信号Ｄｏｕｔが共通して供給される第１入力端を含み、信号ＳＥＬｐ＜ｉ：０＞がそれぞれ供給される第２入力端を含む。また、論理回路ＮＡＮＤ＜ｉ：０＞はそれぞれ、トランジスタＴｐ＜ｉ：０＞のゲートに接続される。
【００６４】
トランジスタＴｐ＜ｉ：０＞は、電圧ＶＣＣＱが共通して供給される第１端と、パッド３１＜０＞に共通して接続される第２端と、を含む。
【００６５】
論理回路ＮＯＲ＜ｉ：０＞は、信号Ｄｏｕｔが共通して供給される第１入力端を含み、信号ＳＥＬｎ＜ｉ：０＞がそれぞれ供給される第２入力端を含む。また、論理回路ＮＯＲ＜ｉ：０＞はそれぞれ、トランジスタＴｎ＜ｉ：０＞のゲートに接続される。
【００６６】
トランジスタＴｎ＜ｉ：０＞は、電圧ＶＳＳが共通して供給される第１端と、パッド３１＜０＞に共通して接続される第２端と、を含む。
【００６７】
以上のように構成することにより、出力回路４２＜０＞は、信号Ｄｏｕｔが“Ｈ”レベルの場合、トランジスタＴｐ＜ｉ：０＞のうち、信号ＳＥＬｐ＜ｉ：０＞によってオン抵抗となるように選択されたトランジスタの合成抵抗を、信号ＤＱ＜０＞のプルアップ側の出力インピーダンスとして設定することができる。また、出力回路４２＜０＞は、信号Ｄｏｕｔが“Ｌ”レベルの場合、トランジスタＴｎ＜ｉ：０＞のうち、信号ＳＥＬｎ＜ｉ：０＞によってオン抵抗となるように選択されたトランジスタの合成抵抗を、信号ＤＱ＜０＞のプルダウン側の出力インピーダンスとして設定することができる。このため、出力回路４２＜０＞は、Ｒｏｎ制御回路５２からの信号ＳＥＬｐ＜ｉ：０＞及びＳＥＬｎ＜ｉ：０＞、並びに出力制御回路５３からの信号Ｄｏｕｔによって、適切なインピーダンス及びデューティ比の信号ＤＱ＜０＞を出力することができる。
【００６８】
なお、図７及び図８を用いて説明した信号ＤＱ＜０＞を入力及び出力するための各種設定パラメタは、例えば、通常動作の実行に先立って、上述したシステムデータ領域２１Ｂ内に予め保持される。以下の説明では、最適な入力信号及び出力信号を生成可能な設定パラメタを得るための動作を、「インタフェーストレーニング動作」と呼ぶ。図７に示した入力制御回路５１や、図８に示したＲｏｎ制御回路５２及び出力制御回路５３は、通常動作に際して、トレーニング結果としてシステムデータ領域２１Ｂに予め保持された各種設定パラメタを読み出すことによって、信号ＤＱ＜０＞のデューティ比等を適切に制御することができる。他の信号ＤＱ＜７：１＞、ＤＱＳ、及び／ＤＱＳについても、信号ＤＱ＜０＞と同様に、トレーニング結果としてシステムデータ領域２１Ｂに予め保持された各種設定パラメタが読み出されることによって、適切な波形に調整されることができる。
【００６９】
１．２  動作
次に、第１実施形態に係るメモリシステムにおける動作について説明する。
【００７０】
１．２．１  インタフェーストレーニング動作のトレーニング項目
図９及び図１０は、第１実施形態に係るメモリシステムにおけるインタフェーストレーニング動作のトレーニング項目を説明するためのコマンドシーケンスである。図９及び図１０ではそれぞれ、通常動作の際に実行される一般的な読出し動作及び書込み動作におけるコマンドシーケンスを例に、信号ＤＱ＜７：０＞、ＤＱＳ、及び／ＤＱＳに関する設定パラメタがどのようにトレーニングされるか、が模式的に示される。なお、図９及び図１０では、一例として、チップＡに対する動作が示される。
【００７１】
まず、図９を参照して、読出し動作におけるトレーニング項目について説明する。
【００７２】
図９に示すように、読出し動作に際しては、メモリコントローラ２は、例えば、信号／ＷＥをトグルさせつつ、読出しコマンド“００ｈ”、５サイクルにわたるアドレスＡＤＤ、及びコマンド“３０ｈ”を続けて発行し、チップＡに送出する。コマンド“００ｈ”は、チップＡ内のユーザデータ領域２１Ａからのデータの読出しを命令するコマンドであり、コマンド“３０ｈ”は、当該読出し動作の開始を命令するコマンドである。チップＡは、コマンド“３０ｈ”を受けると、メモリセルアレイ２１内のユーザデータ領域２１Ａからのデータの読出し動作を開始し、信号／ＲＢ０を“Ｌ”レベルにして、チップＡがビジー状態であることをメモリコントローラ２に知らせる。ユーザデータ領域２１Ａからのデータの読出しが完了した後、チップＡは、信号／ＲＢ０を“Ｈ”レベルにして、チップＡがレディ状態であることをメモリコントローラ２に知らせる。
【００７３】
メモリコントローラ２は、チップＡがレディ状態になったことを確認した後、信号／ＲＥをトグルさせる。チップＡは、当該信号／ＲＥに同期させて、読み出したデータを信号ＤＱ＜７：０＞としてメモリコントローラ２に転送する。転送の際には、チップＡは、信号ＤＱ＜７：０＞に同期させて信号ＤＱＳ及び／ＤＱＳをトグルさせ、メモリコントローラ２に送出する。
【００７４】
ここで、上述の通り、信号／ＷＥが“Ｌ”レベルとなることによって、信号ＤＱ＜７：０＞をチップ内に取り込むことが指示される。このため、チップに信号ＤＱ＜０＞としてコマンド“００ｈ”及び“３０ｈ”、並びにアドレスＡＤＤが入力される期間が、信号／ＷＥが“Ｌ”レベルとなる期間ｄ１に含まれることが望ましい。このため、通常動作に際して、チップＡには、信号ＤＱ＜０＞が信号／ＷＥに対して適切なタイミング及びデューティ比で入力されるように調整された制御パラメタを、インタフェーストレーニング動作によって、入力制御回路５１に予め設定しておくことが望ましい。このような、信号／ＷＥと信号ＤＱ＜７：０＞との間の波形の整形（デスキュー（de‐skew）とも呼ぶ）を伴うインタフェーストレーニング動作のトレーニング項目は、例えば、「ライトイネーブルトレーニング（Write enable training）」とも呼ぶ。
【００７５】
また、上述した読出し動作において、信号／ＲＥに対して所定のタイミングで、読出しデータとしての信号ＤＱ＜７：０＞とストローブ信号としての信号ＤＱＳ及び／ＤＱＳとがメモリコントローラ２に出力されることが望ましい。より具体的には、信号ＤＱＳは、信号／ＲＥが“Ｈ”レベルから“Ｌ”レベルに立ち下がってから期間ｄ２後に、“Ｈ”レベルから“Ｌ”レベルに立ち下がることが望ましい。また、信号ＤＱ＜７：０＞は、例えば、信号ＤＱＳ及び／ＤＱＳと同じ位相で（信号ＤＱＳ及び／ＤＱＳがトグルする期間ｄ３と一致する期間内に）チップＡから出力されることが望ましい。このため、読出し動作に際して、チップＡには、信号ＤＱＳ及び／ＤＱＳ、並びにＤＱ＜７：０＞が信号／ＲＥに対して適切なタイミング及びデューティ比でチップＡに入力されるように調整されたパラメタを、インタフェーストレーニング動作によって、Ｒｏｎ制御回路５２及び出力制御回路５３に予め設定しておくことが望ましい。このような、読出し動作における信号／ＲＥと信号ＤＱＳ及び／ＤＱＳ、並びにＤＱ＜７：０＞との間の波形の整形を伴うインタフェーストレーニング動作のトレーニング項目は、例えば、「リードデータデスキュー（Read data de‐skew）」とも呼ぶ。
【００７６】
次に、図１０を参照して、書込み動作におけるトレーニング項目について説明する。
【００７７】
図１０に示すように、書込み動作に際しては、メモリコントローラ２は、例えば、信号／ＷＥをトグルさせつつ、読出しコマンド“８０ｈ”、５サイクルにわたるアドレスＡＤＤ、及びコマンド“１０ｈ”を続けて発行し、チップＡに送出する。コマンド“８０ｈ”は、チップＡ内のユーザデータ領域２１Ａへのデータの書込みを命令するコマンドであり、コマンド“１０ｈ”は、当該書込み動作の開始を命令するコマンドである。なお、コマンド“８０ｈ”によるデータの書込み動作は、ユーザデータ領域２１Ａ内へは許可されるが、システムデータ領域２１Ｂへは禁止される。
【００７８】
続いて、メモリコントローラ２は、コマンド“１０ｈ”の後に、チップＡに書き込むデータを信号ＤＱ＜７：０＞として送出する。書込みデータの送出の際には、メモリコントローラ２は、信号ＤＱ＜７：０＞に同期させて信号ＤＱＳ及び／ＤＱＳをトグルさせ、チップＡに送出する。
【００７９】
チップＡは、書込みデータを受けると、メモリセルアレイ２１内のユーザデータ領域２１Ａへのデータの書込み動作を開始し、信号／ＲＢ０を“Ｌ”レベルにして、チップＡがビジー状態であることをメモリコントローラ２に知らせる。ユーザデータ領域２１Ａへのデータの書込みが完了した後、チップＡは、信号／ＲＢ０を“Ｈ”レベルにして、チップＡがレディ状態であることをメモリコントローラ２に知らせる。
【００８０】
上述した書込み動作において、信号ＤＱ＜７：０＞は、例えば、信号ＤＱＳ及び／ＤＱＳから９０度遅れた位相で（信号ＤＱＳ及び／ＤＱＳがトグルする期間２×ｄ４の中間において、信号ＤＱ＜７：０＞のエッジが位置するように）チップＡに入力されることが望ましい。このため、チップＡには、書込み動作の際、信号ＤＱ＜７：０＞が信号ＤＱＳ及び／ＤＱＳに対して適切なタイミング及びデューティ比でチップＡから出力されるように調整されたパラメタを、インタフェーストレーニング動作によってＲｏｎ制御回路５２及び出力制御回路５３に予め設定しておくことが望ましい。このような、書込み動作における信号ＤＱＳ及び／ＤＱＳと、信号ＤＱ＜７：０＞との間の波形の整形を伴うインタフェーストレーニング動作のトレーニング項目は、例えば、「ライトデータデスキュー（Write data de‐skew）」とも呼ぶ。
【００８１】
なお、上述の書込み動作においても、読出し動作と同様、ライトイネーブルトレーニングが実行され得る。
【００８２】
第１実施形態に係るメモリシステムでは、例えば、以上のようなトレーニング項目を含むインタフェーストレーニング動作が、通常動作に先立って実行されることにより、通常動作時のチップ‐メモリコントローラ間の通信が保障される。
【００８３】
１．２．２  インタフェーストレーニング動作を含む一連の動作
次に、第１実施形態に係るメモリシステムにおけるインタフェーストレーニング動作を含む一連の動作について、図１１に示すフローチャートを用いて説明する。
【００８４】
図１１では、インタフェーストレーニング動作が実行されるテストフェーズと、当該インタフェーストレーニング動作の結果に基づく通常動作が実行される実運用フェーズと、を含むメモリシステム１における一連の動作フローが示される。なお、図１１では、説明を簡単にするために、メモリコントローラ２と、半導体記憶装置３Ａ及び３Ｂとの間の動作が示される。以下の説明では、半導体記憶装置３Ａ及び３Ｂは、それぞれチップＡ及びチップＢとして説明する。
【００８５】
図１１に示すように、ステップＳＴ１０〜ＳＴ２８は、テストフェーズにおける動作を示し、ステップＳＴ３０〜ＳＴ３４は、実運用フェーズにおける動作を示す。なお、以下に示す各ステップは、テストフェーズ及び実運用フェーズではいずれも、メモリシステム１において、少なくともメモリコントローラ２及びＮＡＮＤパッケージ３が組み上がった状態で実行されるものとする。
【００８６】
ステップＳＴ１０において、メモリシステム１に電源が投入される。パワーマネージャ４は、メモリコントローラ２及びＮＡＮＤパッケージ３に電圧ＶＣＣＱを供給し、ＮＡＮＤパッケージ３に電圧ＶＣＣを更に供給する。
【００８７】
電源投入後、まず、チップＡに対するインタフェーストレーニング動作が実行される。
【００８８】
ステップＳＴ１２において、メモリコントローラ２は、インタフェーストレーニング動作を実行する旨のコマンド（Ｉ／Ｆトレーニング実行コマンド）を発行し、チップＡに送出する。
【００８９】
ステップＳＴ１４において、Ｉ／Ｆトレーニング実行コマンドを受けると、チップＡは、インタフェーストレーニング動作を実行する。インタフェーストレーニング動作には、例えば、図９及び図１０を用いて説明したような複数種類のトレーニング項目が含まれ得る。インタフェーストレーニング動作が終了すると、チップＡは、メモリコントローラ２に対してトレーニングの終了通知を送出する。
【００９０】
ステップＳＴ１６において、メモリコントローラ２は、トレーニング結果を記憶する旨のコマンド（トレーニング結果記憶コマンド）を発行し、チップＡに送出する。
【００９１】
ステップＳＴ１８において、トレーニング結果記憶コマンドを受けると、チップＡは、ステップＳＴ１４において実行したインタフェーストレーニング動作の結果をチップＡ内のシステムデータ領域２１Ｂ内に記憶する。
【００９２】
以上により、チップＡに対するインタフェーストレーニング動作が終了する。
【００９３】
続いて、チップＢに対するインタフェーストレーニング動作が実行される。
【００９４】
ステップＳＴ２０において、メモリコントローラ２は、Ｉ／Ｆトレーニング実行コマンドを発行し、チップＢに送出する。
【００９５】
ステップＳＴ２２において、Ｉ／Ｆトレーニング実行コマンドを受けると、チップＢは、インタフェーストレーニング動作を実行する。チップＢは、例えば、インタフェーストレーニング動作が終了すると、メモリコントローラ２に対してトレーニングの終了通知を送出する。
【００９６】
ステップＳＴ２４において、メモリコントローラ２は、トレーニング結果記憶コマンドを発行し、チップＢに送出する。
【００９７】
ステップＳＴ２６において、トレーニング結果記憶コマンドを受けると、チップＢは、ステップＳＴ２２において実行したインタフェーストレーニング動作の結果をチップＢ内のシステムデータ領域２１Ｂ内に記憶する。
【００９８】
以上により、チップＢに対するインタフェーストレーニング動作が終了する。
【００９９】
このように、全てのチップに対して順次インタフェーストレーニング動作が実行され、各々のトレーニング結果が各々のメモリセルアレイ２１内のシステムデータ領域２１Ｂに不揮発に記憶される。
【０１００】
ステップＳＴ２８において、パワーマネージャ４は、メモリコントローラ２及びＮＡＮＤパッケージ３への電源供給を停止し、テストフェーズが終了する。この後、メモリシステム１が出荷され、フェーズは実運用フェーズに移行する。
【０１０１】
ステップＳＴ３０において、メモリシステム１に再度、電源が投入される。
【０１０２】
ステップＳＴ３２において、電源投入に伴い、ＮＡＮＤパッケージ３内に記憶された各種設定パラメタが読み出される（パワーオンリード処理）。パワーオンリード処理において、ステップＳＴ１８及びＳＴ２６で各々のチップ内のシステムデータ領域２１Ｂに記憶されたトレーニング結果も読み出され、入出力回路２２内の入力制御回路５１、Ｒｏｎ制御回路５２、及び出力制御回路５３等に設定される。
【０１０３】
ステップＳＴ３４において、ユーザデータ領域２１Ａ内への書込み動作や、ユーザデータ領域２１Ａからの読出し動作を含む通常動作が実行される。通常動作に際しては、トレーニング結果が適用された入出力信号が生成される。これにより、メモリコントローラ２とＮＡＮＤパッケージ３との間の通信にエラーが発生することを抑制することができる。
【０１０４】
以上で、一連の処理が終了する。
【０１０５】
１．２．３  インタフェーストレーニング動作のコマンドシーケンス
図１２は、第１実施形態に係るメモリシステムにおけるインタフェーストレーニング動作を説明するためのコマンドシーケンスである。図１２は、図１１におけるステップＳＴ１２〜ＳＴ２６に対応する。また、図１２では、チップＡ及びチップＢの各々に対して、２種類のトレーニング項目を含むインタフェーストレーニング動作が実行される場合の例が示される。
【０１０６】
図１２に示すように、メモリコントローラ２は、信号／ＣＥ０を“Ｌ”レベルにして、チップＡをイネーブルにする。信号／ＣＥ１は、“Ｈ”レベルに維持される。
【０１０７】
メモリコントローラ２は、インタフェーストレーニング実行コマンドとして、コマンド“Ｘ１ｈ”を発行する。コマンド“Ｘ１ｈ”は、例えば、１種類目のトレーニング項目に対応するインタフェーストレーニング動作（第１Ｉ／Ｆトレーニング動作）の実行を指示するコマンドである。続いて、メモリコントローラ２は、アドレスＡＤＤを発行する。当該アドレスＡＤＤには、例えば、トレーニング対象のチップ（すなわち、チップＡ）に対応するチップアドレスが含まれる。
【０１０８】
チップＡは、コマンド“Ｘ１ｈ”及び後続するアドレスＡＤＤを受けると、第１Ｉ／Ｆトレーニング動作を開始し、信号／ＲＢ０を“Ｌ”レベルにして、チップＡがビジー状態であることをメモリコントローラ２に知らせる。第１Ｉ／Ｆトレーニング動作が終了した後、チップＡは、信号／ＲＢ０を“Ｈ”レベルにして、チップＡがレディ状態であることをメモリコントローラ２に知らせる。
【０１０９】
続いて、メモリコントローラ２は、インタフェーストレーニング実行コマンドとして、コマンド“Ｘ２ｈ”を発行する。コマンド“Ｘ２ｈ”は、例えば、２種類目のインタフェース項目に対応するインタフェーストレーニング動作（第２Ｉ／Ｆトレーニング動作）の実行を指示するコマンドである。続いて、メモリコントローラ２は、チップＡに対応するチップアドレスが含まれるアドレスＡＤＤを発行する。
【０１１０】
チップＡは、コマンド“Ｘ２ｈ”及び後続するアドレスＡＤＤを受けると、第２Ｉ／Ｆトレーニング動作を開始し、信号／ＲＢ０を“Ｌ”レベルにして、チップＡがビジー状態であることをメモリコントローラ２に知らせる。第２Ｉ／Ｆトレーニング動作が終了した後、チップＡは、信号／ＲＢ０を“Ｈ”レベルにして、チップＡがレディ状態であることをメモリコントローラ２に知らせる。
【０１１１】
続いて、メモリコントローラ２は、トレーニング結果記憶コマンドとして、コマンド“ＹＹｈ”を発行する。続いて、メモリコントローラ２は、チップＡに対応するチップアドレスが含まれるアドレスＡＤＤを発行する。
【０１１２】
チップＡは、コマンド“ＹＹｈ”及び後続するアドレスＡＤＤを受けると、トレーニング結果の記憶動作を開始し、信号／ＲＢ０を“Ｌ”レベルにして、チップＡがビジー状態であることをメモリコントローラ２に知らせる。第１Ｉ／Ｆトレーニング動作及び第２Ｉ／Ｆトレーニング動作の各々によるトレーニング結果をシステムデータ領域２１Ｂ内に記憶した後、チップＡは、信号／ＲＢ０を“Ｈ”レベルにして、チップＡがレディ状態であることをメモリコントローラ２に知らせる。
【０１１３】
メモリコントローラ２は、信号／ＣＥ０を“Ｈ”レベルにして、チップＡをディセーブルにする。以上の動作により、図１１におけるステップＳＴ１２〜ＳＴ１８が終了する。
【０１１４】
以降、チップＢについても、チップＡと同様の動作が実行される。すなわち、メモリコントローラ２は、信号／ＣＥ１を“Ｌ”レベルにして、チップＡをイネーブルにする。信号／ＣＥ０は、“Ｈ”レベルに維持される。
【０１１５】
メモリコントローラ２は、インタフェーストレーニング実行コマンドとして、コマンド“Ｘ１ｈ”、及びチップＢに対応するチップアドレスが含まれるアドレスＡＤＤを発行する。
【０１１６】
チップＢは、コマンド“Ｘ２ｈ”及び後続するアドレスＡＤＤを受けると、第１Ｉ／Ｆトレーニング動作を開始し、信号／ＲＢ１を“Ｌ”レベルにして、チップＢがビジー状態であることをメモリコントローラ２に知らせる。第１Ｉ／Ｆトレーニング動作が終了した後、チップＢは、信号／ＲＢ１を“Ｈ”レベルにして、チップＢがレディ状態であることをメモリコントローラ２に知らせる。
【０１１７】
続いて、メモリコントローラ２は、コマンド“Ｘ２ｈ”、及びチップＢに対応するチップアドレスが含まれるアドレスＡＤＤを発行する。
【０１１８】
チップＢは、コマンド“Ｘ２ｈ”及び後続するアドレスＡＤＤを受けると、第２Ｉ／Ｆトレーニング動作を開始し、信号／ＲＢ１を“Ｌ”レベルにして、チップＢがビジー状態であることをメモリコントローラ２に知らせる。第２Ｉ／Ｆトレーニング動作が終了した後、チップＢは、信号／ＲＢ１を“Ｈ”レベルにして、チップＢがレディ状態であることをメモリコントローラ２に知らせる。
【０１１９】
続いて、メモリコントローラ２は、トレーニング結果記憶コマンドとして、コマンド“ＹＹｈ”、及びチップＢに対応するチップアドレスが含まれるアドレスＡＤＤを発行する。
【０１２０】
チップＢは、コマンド“ＹＹｈ”及び後続するアドレスＡＤＤを受けると、トレーニング結果の記憶動作を開始し、信号／ＲＢ１を“Ｌ”レベルにして、チップＢがビジー状態であることをメモリコントローラ２に知らせる。第１Ｉ／Ｆトレーニング動作及び第２Ｉ／Ｆトレーニング動作によるトレーニング結果をシステムデータ領域２１Ｂ内に記憶した後、チップＢは、信号／ＲＢ１を“Ｈ”レベルにして、チップＢがレディ状態であることをメモリコントローラ２に知らせる。
【０１２１】
メモリコントローラ２は、信号／ＣＥ１を“Ｈ”レベルにして、チップＢをディセーブルにする。以上の動作により、図１１におけるステップＳＴ２０〜ＳＴ２６が終了する。
【０１２２】
１．３  本実施形態に係る効果
第１実施形態によれば、トレーニング結果の設定に要する時間の増加を抑制することができる。本効果について、以下に説明する。
【０１２３】
メモリコントローラ２は、メモリシステム１の出荷前に相当するテストフェーズにおいて、ＮＡＮＤパッケージ３に対してＩ／Ｆトレーニング実行コマンドを発行する。ＮＡＮＤパッケージ３内のチップは、Ｉ／Ｆトレーニング実行コマンドを受けると、インタフェーストレーニング動作を実行し、メモリコントローラ２との通信に適用される最適なパラメタを取得する。メモリコントローラ２は、当該インタフェーストレーニング動作の後、ＮＡＮＤパッケージ３に対してトレーニング結果記憶コマンドを更に発行する。ＮＡＮＤパッケージ３内のチップは、トレーニング結果記憶コマンドを受けると、取得したパラメタをメモリセルアレイ２１内のシステムデータ領域２１Ｂに記憶する。これにより、テストフェーズの終了後にメモリシステム１の電源がオフされた後にも、トレーニング結果がＮＡＮＤパッケージ３内に不揮発に記憶される。このため、メモリシステム１の出荷後に相当する実運用フェーズにおいて、電源オン後のパワーオンリード処理の際に、システムデータ領域２１Ｂからトレーニング結果を読み出すことができる。すなわち、ＮＡＮＤパッケージ３は、実運用フェーズにインタフェーストレーニング動作を実行することなく、最適なトレーニング結果を入出力回路２２に設定することができる。したがって、メモリシステム１を起動させる時間がインタフェーストレーニング動作の実行に伴って増加することを抑制できる。
【０１２４】
補足すると、記憶容量の増加に伴い、メモリコントローラ２及びＮＡＮＤパッケージ３間のインタフェースには高速に通信可能なことが要求される。インタフェースが高速化すると、インタフェース特性に対するマージンが少なくなるため、特性改善のためのインタフェーストレーニング動作の実行が必要となり得る。しかしながら、記憶容量の増加に伴ってＮＡＮＤパッケージ３内のチップ数が増加すると、インタフェーストレーニング動作に要する時間は、チップ数に応じて増加し得る。また、特性を精度よく改善するためにトレーニング項目を増やすと、インタフェーストレーニング動作に要する時間は、トレーニング項目の数に応じて増加し得る。このように、インタフェーストレーニング動作に要する時間は増加傾向にあるため、実運用フェーズにおける電源オン時にインタフェーストレーニング動作を実行する場合、メモリシステム１の起動までの時間が長くなる可能性がある。
【０１２５】
第１実施形態によれば、インタフェーストレーニング動作をテストフェーズ中に実行しておき、当該トレーニング結果をシステムデータ領域２１Ｂ内に不揮発に記憶しておく。これにより、実運用フェーズにおけるインタフェーストレーニング動作の時間を省略でき、メモリシステム１の速やかな起動を実現できる。
【０１２６】
２．  第２実施形態
次に、第２実施形態に係るメモリシステムについて説明する。
【０１２７】
第１実施形態では、テストフェーズにおいて実行されたトレーニング結果が、実運用フェーズにおいて一意的に適用される場合について説明したが、これに限られない。例えば、テストフェーズにおいて、同一のトレーニング項目について、複数の環境下でインタフェーストレーニング動作が実行され、実運用フェーズにおける環境の変化に応じて、適応的にトレーニング結果が適用されてもよい。以下の説明では、第１実施形態と同等の構成及び動作については説明を省略し、第１実施形態と異なる構成及び動作について主に説明する。
【０１２８】
２．１  インタフェーストレーニング動作を含む一連の動作
第２実施形態に係るメモリシステムにおけるインタフェーストレーニング動作を含む一連の動作について、図１３に示すフローチャートを用いて説明する。
【０１２９】
図１３は、第１実施形態における図１１に対応し、図１１に示したステップＳＴ１０及びＳＴ１２の間にステップＳＴ１１が追加され、ステップＳＴ２６及びＳＴ２８の間にステップＳＴ２７が追加され、ステップＳＴ３４以降にステップＳＴ４０〜ＳＴ４５が追加される場合が示される。
【０１３０】
図１３に示すように、ステップＳＴ１０において、メモリシステム１に電源が投入される。
【０１３１】
ステップＳＴ１１において、メモリシステム１は、予め定められたテストケースにしたがって、メモリコントローラ２、並びにチップＡ及びチップＢの温度環境を設定する。温度環境のテストケース（温度ケース）としては、任意のケースが設定可能であるが、例えば、常温ケース、高温ケース、及び低温ケース等が想定される。例えば、温度ケースとして常温ケースに設定された場合、メモリシステム１の温度環境は、実運用フェーズにおいてメモリシステム１が通常使用される温度環境に設定される。また、例えば、温度ケースとして高温ケース及び低温ケースに設定された場合、メモリシステム１の温度環境はそれぞれ、常温ケースよりも高温及び低温に設定される。
【０１３２】
ステップＳＴ１２〜ＳＴ２６において、メモリシステム１は、インタフェーストレーニング動作の実行、及びトレーニング結果の記憶をする。なお、ステップＳＴ１６及びＳＴ２４において、メモリコントローラ２は、トレーニング結果記憶コマンドの発行に際し、トレーニング結果の記憶先を指定する。これにより、ステップＳＴ１８及びＳＴ２６において、チップＡ及びチップＢは、システムデータ領域２１Ｂ内に、トレーニング結果を温度ケース毎に個別に記憶することができる。
【０１３３】
ステップＳＴ２７において、メモリコントローラ２は、全ての温度ケースについてインタフェーストレーニング動作が実行されたか否かを判定する。インタフェーストレーニング動作が完了していない温度ケースがあると判定された場合（ステップＳＴ２７；ｎｏ）、処理はステップＳＴ１１に戻り、ステップＳＴ１１〜ＳＴ２６が繰り返し実行される。全温度ケースについてインタフェーストレーニング動作が完了したと判定された場合（ステップＳＴ２７；ｙｅｓ）、処理はステップＳＴ２８に進む。
【０１３４】
ステップＳＴ２８において、メモリシステム１への電源供給が停止され、テストフェーズが終了する。
【０１３５】
ステップＳＴ３０において、メモリシステム１に再度、電源が投入される。
【０１３６】
ステップＳＴ３２において、電源投入に伴い、パワーオンリード処理が実行される。パワーオンリード処理に際し、ステップＳＴ１８及びＳＴ２６で各々のチップ内のシステムデータ領域２１Ｂに記憶されたトレーニング結果も読み出され、入力制御回路５１、Ｒｏｎ制御回路５２、及び出力制御回路５３等に設定される。なお、パワーオンリード処理では、例えば、デフォルトの温度状態（すなわち、常温ケース）におけるトレーニング結果が読み出され、各回路に設定されるものとする。
【０１３７】
ステップＳＴ３４において、ユーザデータ領域２１Ａ内への書込み動作や、ユーザデータ領域２１Ａからの読出し動作を含む通常動作が実行される。
【０１３８】
ステップＳＴ４０において、チップＡ及びチップＢは、温度センサ２４によって検出された温度情報を取得する。温度情報の取得は、任意のタイミングで実行可能であり、例えば、通常動作の際の書込み動作や読出し動作と併せて実行されてもよいし、メモリコントローラ２からの指示（図示せず）に応じて実行されてもよい。
【０１３９】
ステップＳＴ４１において、メモリコントローラ２は、チップＡ及びチップＢに対して、温度情報の取得要求を発行する。
【０１４０】
ステップＳＴ４２において、チップＡ及びチップＢは、温度情報の取得要求に応じて、ステップＳＴ４０において取得した温度情報をメモリコントローラ２に出力する。
【０１４１】
ステップＳＴ４３において、メモリコントローラ２は、取得した温度情報に基づき、チップＡ及びチップＢ内の温度に有意な変化が生じたか否かを判定する。ここで、温度変化が「有意である」とは、チップ内の温度が、ステップＳＴ３２において設定された現在の温度ケースに対応する範囲外（すなわち、他の温度ケースに対応する範囲内）にまで変化したことを意味する。チップ内の温度変化が有意であると判定された場合（ステップＳＴ４３；ｙｅｓ）、トレーニング結果の設定変更が必要であると判定し、処理はステップＳＴ４４に進む。一方、チップ内の温度変化が有意でないと判定された場合（ステップＳＴ４３；ｎｏ）、トレーニング結果の設定変更は不要であると判定し、一連の処理が終了する。
【０１４２】
ステップＳＴ４４において、メモリコントローラ２は、トレーニング結果における温度ケースの設定を変更する旨の設定変更コマンドを発行し、ステップＳＴ４３においてチップ内の温度変化が有意であると判定されたチップに送出する。
【０１４３】
ステップＳＴ４５において、設定変更コマンドを受けたチップは、当該設定変更コマンドに応じて、トレーニング結果における温度ケースの設定変更を行う。
【０１４４】
以上で、一連の処理が終了する。
【０１４５】
２．２  インタフェーストレーニング動作のコマンドシーケンス
図１４は、第２実施形態に係るメモリシステムにおけるインタフェーストレーニング動作を説明するためのコマンドシーケンスである。図１４は、第１実施形態における図１２のうち、信号ＤＱ＜７：０＞及び／ＲＢが簡略化して示されている。また、図１４では、説明を簡単にするため、一例として、チップＡに対する第１Ｉ／Ｆトレーニング動作に対して、３つの温度ケースに対応するインタフェーストレーニング動作が実行される場合が抽出して示されている。なお、図１４の例では、温度ケースが、低温ケース、常温ケース、及び高温ケースの順に実行される場合が示される。
【０１４６】
まず、メモリシステム１は、低温ケースに対応する温度状態に設定される。
【０１４７】
そして、図１４に示すように、メモリコントローラ２は、コマンド“Ｘ１ｈ”及びチップＡのチップアドレスを含むアドレスＡＤＤを発行し、第１Ｉ／Ｆトレーニング動作の実行をチップＡに指示する。チップＡは、当該コマンド“Ｘ１ｈ”及びアドレスＡＤＤに応じて、低温状態における第１Ｉ／Ｆトレーニング動作を開始する。
【０１４８】
続いて、メモリコントローラ２は、コマンド“ＹＹｈ”を発行する。続いて、メモリコントローラ２は、チップＡに対応するチップアドレスを含むアドレスＡＤＤと、トレーニング結果の格納先をテストケース毎に指定可能なアドレス（トレーニング結果指定アドレス）００ｈと、を続けて発行する。図１４の例では、アドレス００ｈは、低温ケースに対応付けられており、当該アドレス００ｈに対応するシステムデータ領域２１Ｂ内に、低温ケースのトレーニング結果が記憶される。
【０１４９】
以下、同様にして、常温ケース、及び高温ケースについてもトレーニング動作が実行され、トレーニング結果が各々の格納先に記憶される。
【０１５０】
メモリシステム１は、常温ケースに対応する温度状態に設定される。
【０１５１】
メモリコントローラ２は、コマンド“Ｘ１ｈ”及びチップＡのチップアドレスを含むアドレスＡＤＤを発行する。チップＡは、当該コマンド“Ｘ１ｈ”及びアドレスＡＤＤに応じて、常温状態における第１Ｉ／Ｆトレーニング動作を開始する。
【０１５２】
続いて、メモリコントローラ２は、コマンド“ＹＹｈ”、チップＡに対応するチップアドレスを含むアドレスＡＤＤ、及び手印のケースに対応付けられたトレーニング結果指定アドレス０１ｈを続けて発行する。これにより、アドレス０１ｈに対応するシステムデータ領域２１Ｂ内に、常温ケースのトレーニング結果が記憶される。
【０１５３】
次に、メモリシステム１は、高温ケースに対応する温度状態に設定される。
【０１５４】
メモリコントローラ２は、コマンド“Ｘ１ｈ”及びチップＡのチップアドレスを含むアドレスＡＤＤを発行する。チップＡは、当該コマンド“Ｘ１ｈ”及びアドレスＡＤＤに応じて、高温状態における第１Ｉ／Ｆトレーニング動作を開始する。
【０１５５】
続いて、メモリコントローラ２は、コマンド“ＹＹｈ”、チップＡに対応するチップアドレスを含むアドレスＡＤＤ、及び高温ケースに対応付けられたトレーニング結果指定アドレス０２ｈを続けて発行する。これにより、アドレス０２ｈに対応するシステムデータ領域２１Ｂ内に、高温ケースのトレーニング結果が記憶される。
【０１５６】
以上のように動作することにより、温度ケースの各々に対応するトレーニング結果を、個別にシステムデータ領域２１Ｂ内に記憶させることができる。
【０１５７】
２．３  トレーニング結果の設定変更動作のコマンドシーケンス
次に、第２実施形態に係るメモリシステムにおけるトレーニング結果の設定変更動作について、図１５及び図１６に示すコマンドシーケンスを用いて説明する。
【０１５８】
図１５及び図１６はいずれも、トレーニング結果の設定変更を実現可能なコマンドシーケンスの一例である。図１５では、設定変更動作に専用コマンドが用いられる場合が示され、図１６では、汎用コマンドであるセットフィーチャコマンドが用いられる場合が示される。
【０１５９】
まず、専用コマンドで設定変更する場合について、図１５を参照して説明する。
【０１６０】
図１５に示すように、メモリコントローラ２は、コマンド“ＺＺｈ”をチップＡへ送信する。コマンド“ＺＺｈ”は、トレーニング結果を指定した温度ケースに設定変更する旨をチップＡに指示するコマンド（設定変更コマンド）である。引き続き、メモリコントローラ２は、チップＡのチップアドレスを含むアドレスＡＤＤと、トレーニング結果指定アドレス００ｈ〜０２ｈのいずれかと、を続けて送出する。これにより、チップＡにおいて、現状の設定値が、指定された温度ケースに対応するトレーニング結果に設定変更され、以降の処理に適用される。
【０１６１】
次に、セットフィーチャコマンドで設定変更する場合について、図１６を参照して説明する。
【０１６２】
図１６に示すように、メモリコントローラ２は、コマンド“ＥＦｈ”をチップＡへ送信する。コマンド“ＥＦｈ”は、トレーニング結果を含む、各種設定を変更する旨をチップＡに指示するセットフィーチャコマンドである。引き続き、メモリコントローラ２は、チップＡのチップアドレスを含むアドレスＡＤＤを送出した後、データを４サイクルにわたって送出する（“Ｄ０”〜“Ｄ３”）。このデータ“Ｄ０”〜“Ｄ３”が、セットフィーチャコマンドにより変更される設定値に関する情報であり、ここではトレーニング結果のうち、いずれかの温度ケースを指定するデータを含む。これにより、チップＡにおいて、現状の設定値が、指定された温度ケースに対応するトレーニング結果に設定変更され、以降の処理に適用される。
【０１６３】
以上のように動作することにより、図１５及び図１６のいずれの手法によっても、トレーニング結果を温度ケースに応じて設定変更することができる。
【０１６４】
２．３  本実施形態に係る効果
第２実施形態によれば、メモリシステム１は、テストフェーズにおいて、互いに異なる温度ケースについてインタフェーストレーニング動作を実行し、各々についてメモリセルアレイ２１内のシステムデータ領域２１Ｂに記憶する。メモリコントローラ２は、温度センサ２４によって取得されたＮＡＮＤパッケージ３の温度情報に基づき、ＮＡＮＤパッケージ３内の温度が現在設定されている温度ケースの範囲内にあるか否かを判定する。そして、ＮＡＮＤパッケージ３内の温度が現在設定されている温度ケースから外れている場合、適切な温度ケースのトレーニング結果に変更するための設定変更コマンド“ＺＺｈ”を発行する。これにより、メモリシステム１は、ＮＡＮＤパッケージ３内の温度が変化することによって入出力回路２２に設定されたパラメタが最適でなくなることを回避することができ、温度変化に応じて適応的に最適なトレーニング結果を適用することができる。
【０１６５】
２．４  変形例
第２実施形態では、メモリコントローラ２から設定変更コマンド“ＺＺｈ”又はセットフィーチャコマンド“ＥＦｈ”が発行されることによって、ＮＡＮＤパッケージ３内のトレーニング結果の設定が変更される場合について説明したが、これに限られない。例えば、ＮＡＮＤパッケージ３は、内部の温度センサ２４の情報に基づき、自律的にトレーニング結果の設定を変更するように構成されていてもよい。以下では、第２実施形態と同等の構成及び動作については説明を省略し、第２実施形態と異なる構成及び動作について主に説明する。
【０１６６】
図１７は、第２実施形態に係るメモリシステムにおけるテストフェーズと実運用フェーズとを含むメモリシステムにおける一連の動作を説明するためのフローチャートである。図１７は、第２実施形態における図１３に対応する。
【０１６７】
図１７に示すように、ステップＳＴ１０〜ＳＴ２８におけるテストフェーズの動作は、図１３の場合と同等であるため、説明を省略する。
【０１６８】
また、実運用フェーズのうち、ステップＳＴ３０〜ＳＴ３４までの動作は、図１３の場合と同等であるため、説明を省略する。
【０１６９】
ステップＳＴ４０において、チップＡ及びチップＢは、温度センサ２４によって検出された温度情報を取得する。温度情報の取得は、任意のタイミングで実行可能であり、例えば、通常動作の際の書込み動作や読出し動作と併せて実行されてもよいし、メモリコントローラ２からの指示（図示せず）に応じて実行されてもよい。
【０１７０】
ステップＳＴ４３Ａにおいて、チップＡ及びチップＢはそれぞれ、取得した温度情報に基づき、内部の温度に有意な変化が生じたか否かを判定する。チップ内の温度変化が有意であると判定された場合（ステップＳＴ４３Ａ；ｙｅｓ）、トレーニング結果の設定変更が必要であると判定し、処理はステップＳＴ４５Ａに進む。なお、設定変更に際して、チップＡ及びチップＢの各々は、チップ内の温度が、現在設定されている温度ケースの範囲の上限を上回っているか、下限を下回っているか、に応じて、高温ケースへ設定変更するか、低温ケースへ設定変更するかを判定してもよい。一方、チップ内の温度変化が有意でないと判定された場合（ステップＳＴ４３Ａ；ｎｏ）、トレーニング結果の設定変更は不要であると判定し、一連の処理が終了する。
【０１７１】
ステップＳＴ４５Ａにおいて、内部の温度変化が有意であると判定されたチップは、ステップＳＴ４３Ａにおける判定結果に基づき、トレーニング結果の温度ケースに関する設定変更を行う。
【０１７２】
以上で、一連の処理が終了する。
【０１７３】
以上のように動作することにより、ＮＡＮＤパッケージ３は、メモリコントローラ２からの設定変更コマンド“ＺＺｈ”又はセットフィーチャコマンド“ＥＦｈ”を受けることなく、自律的にトレーニング結果を変更することができる。
【０１７４】
３．  第３実施形態
第２実施形態では、ＮＡＮＤパッケージ３内の温度に基づいて、トレーニング結果を変更する場合について説明したが、これに限られない。例えば、トレーニング結果は、入出力回路２２に用いられる電圧（例えば、電圧ＶＣＣＱ）の変化に応じて、適応的に変更されてもよい。以下の説明では、第２実施形態と同等の構成及び動作については説明を省略し、第２実施形態と異なる構成及び動作について主に説明する。
【０１７５】
３．１  インタフェーストレーニング動作を含む一連の動作
第３実施形態に係るメモリシステムにおけるインタフェーストレーニング動作を含む一連の動作について、図１８に示すフローチャートを用いて説明する。
【０１７６】
図１８は、第２実施形態における図１３に対応し、図１３に示したステップＳＴ１１、及びＳＴ２７に代えてステップＳＴ１１Ａ、及びＳＴ２７Ａが実行され、ＳＴ４０〜ＳＴ４５に代えて、ステップＳＴ５０Ａ、ＳＴ５２Ａ、ＳＴ５４Ａ、及びＳＴ５６Ａが実行される場合が示される。
【０１７７】
図１８に示すように、ステップＳＴ１０において、メモリシステム１に電源が投入される。
【０１７８】
ステップＳＴ１１Ａにおいて、メモリシステム１は、予め定められたテストケースにしたがって、メモリコントローラ２、並びにチップＡ及びチップＢの電源電圧環境を設定する。電源電圧環境のテストケース（電源電圧ケース）としては、任意のケースが設定可能であるが、例えば、低電圧ケース、通常電圧ケース、及び高電圧ケース等が想定される。例えば、電源電圧ケースとして通常電圧ケースに設定された場合、メモリシステム１の電源電圧環境は、実運用フェーズにおいてメモリシステム１が通常使用される（デフォルトの）電源電圧環境に設定される。また、例えば、電源電圧ケースとして低電圧ケース及び高電圧ケースに設定された場合、メモリシステム１の電源電圧環境はそれぞれ、通常電圧ケースよりも低電圧及び高電圧に設定される。
【０１７９】
ステップＳＴ１２〜ＳＴ２６において、メモリシステム１は、インタフェーストレーニング動作の実行、及びトレーニング結果の記憶をする。なお、ステップＳＴ１６及びＳＴ２４において、メモリコントローラ２は、トレーニング結果記憶コマンドの発行に際し、トレーニング結果が電源電圧ケース毎に識別可能に記憶されるように、トレーニング結果の記憶先を指定する。これにより、ステップＳＴ１８及びＳＴ２６において、チップＡ及びチップＢは、システムデータ領域２１Ｂ内に、トレーニング結果を電源電圧ケース毎に個別に記憶する。
【０１８０】
ステップＳＴ２７Ａにおいて、メモリコントローラ２は、全ての電源電圧ケースについてインタフェーストレーニング動作が実行されたか否かを判定する。インタフェーストレーニング動作が完了していない電源電圧ケースがあると判定された場合（ステップＳＴ２７Ａ；ｎｏ）、処理はステップＳＴ１１Ａに戻り、ステップＳＴ１１Ａ〜ＳＴ２６が繰り返し実行される。全電源電圧ケースについてインタフェーストレーニング動作が完了したと判定された場合（ステップＳＴ２７Ａ；ｙｅｓ）、処理はステップＳＴ２８に進む。
【０１８１】
ステップＳＴ２８において、メモリシステム１への電源供給が停止され、テストフェーズが終了する。
【０１８２】
ステップＳＴ３０において、メモリシステム１に再度、電源が投入される。
【０１８３】
ステップＳＴ３２において、電源投入に伴い、パワーオンリード処理が実行される。パワーオンリード処理に際し、ステップＳＴ１８及びＳＴ２６で各々のチップ内のシステムデータ領域２１Ｂに記憶されたトレーニング結果も読み出され、入力制御回路５１、Ｒｏｎ制御回路５２、及び出力制御回路５３等に設定される。なお、パワーオンリード処理では、例えば、デフォルトの電源電圧状態（すなわち、通常電圧ケース）におけるトレーニング結果が読み出され、各回路に設定されるものとする。
【０１８４】
ステップＳＴ３４において、ユーザデータ領域２１Ａ内への書込み動作や、ユーザデータ領域２１Ａからの読出し動作を含む通常動作が実行される。
【０１８５】
ステップＳＴ５０Ａにおいて、メモリコントローラ２は、パワーマネージャ４から供給される電圧ＶＣＣＱをモニタする。電圧ＶＣＣＱのモニタは、定期又は不定期に、任意のタイミングで実行可能である。
【０１８６】
ステップＳＴ５２Ａにおいて、メモリコントローラ２は、電圧ＶＣＣＱのモニタ結果に基づき、ＮＡＮＤパッケージ３との通信に用いられる電圧ＶＣＣＱに有意な変化が生じたか否かを判定する。電源電圧変化が有意であると判定された場合（ステップＳＴ５２Ａ；ｙｅｓ）、トレーニング結果の設定変更が必要であると判定し、処理はステップＳＴ５４Ａに進む。一方、電源電圧変化が有意でないと判定された場合（ステップＳＴ５２Ａ；ｎｏ）、トレーニング結果の設定変更は不要であると判定し、一連の処理が終了する。
【０１８７】
ステップＳＴ５４Ａにおいて、メモリコントローラ２は、トレーニング結果における電源電圧ケースの設定を変更する旨の設定変更コマンドを発行し、ＮＡＮＤパッケージ３内の各チップに送出する。なお、ステップＳＴ５４Ａにおいて発行される設定変更コマンドは、インタフェーストレーニング動作の専用コマンドである設定変更コマンド“ＺＺｈ”でもよいし、他の設定変更にも用いられる汎用コマンドであるセットフィーチャコマンド“ＥＦｈ”でもよい。
【０１８８】
ステップＳＴ５６Ａにおいて、設定変更コマンドを受けたチップは、当該設定変更コマンドに応じて、トレーニング結果における電源電圧ケースの設定変更を行う。
【０１８９】
以上で、一連の処理が終了する。
【０１９０】
３．２  本実施形態に係る効果
第３実施形態によれば、メモリシステム１は、テストフェーズにおいて、互いに異なる電源電圧ケースについてインタフェーストレーニング動作を実行し、各々についてメモリセルアレイ２１内のシステムデータ領域２１Ｂに記憶する。メモリコントローラ２は、パワーマネージャ４から供給される電圧ＶＣＣＱのモニタ結果に基づき、電圧ＶＣＣＱが現在設定されている電源電圧ケースの範囲内にあるか否かを判定する。そして、電圧ＶＣＣＱが現在設定されている電源電圧ケースから外れている場合、適切な電源電圧ケースのトレーニング結果に変更するための設定変更コマンド“ＺＺｈ”を発行する。これにより、メモリシステム１は、電圧ＶＣＣＱが変化することによって入出力回路２２に設定されたパラメタが最適でなくなることを回避することができ、電源電圧変化に応じて適応的に最適なトレーニング結果を適用することができる。
【０１９１】
なお、第３実施形態では、第２実施形態と同様に、電源電圧ケースのトレーニング結果に変更するためのコマンドとして、設定変更コマンド“ＺＺｈ”に限らず、セットフィーチャコマンド“ＥＦｈ”も適用可能である。これにより、専用コマンドを使用することなく、電源電圧の変化に応じてトレーニング結果を変更することができる。
【０１９２】
４．  第４実施形態
第３実施形態では、メモリコントローラ２が電源電圧をモニタすることによって、当該モニタ結果に応じてトレーニング結果を変更する場合について説明したが、これに限られない。例えば、トレーニング結果は、ＮＡＮＤパッケージ３との通信における周波数（又はデータレート）の変化に応じて、適応的に変更されてもよい。以下の説明では、第３実施形態と同等の構成及び動作については説明を省略し、第３実施形態と異なる構成及び動作について主に説明する。
【０１９３】
４．１  インタフェーストレーニング動作を含む一連の動作
第４実施形態に係るメモリシステムにおけるインタフェーストレーニング動作を含む一連の動作について、図１９に示すフローチャートを用いて説明する。
【０１９４】
図１９は、第３実施形態における図１８に対応し、図１８に示したステップＳＴ１１Ａ、ＳＴ２７Ａ、及びＳＴ５０Ａ〜ＳＴ５６Ａに代えて、ステップＳＴ１１Ｂ、ＳＴ２７Ｂ、及びＳＴ５０Ｂ〜ＳＴ５６Ｂが実行される場合が示される。なお、図１８では、一例として、ステップＳＴ５０Ｂ〜ＳＴ５６ＢがステップＳＴ３２及びＳＴ３４の間に実行される場合が示される。
【０１９５】
図１９に示すように、ステップＳＴ１０において、メモリシステム１に電源が投入される。
【０１９６】
ステップＳＴ１１Ｂにおいて、メモリシステム１は、予め定められたテストケースにしたがって、メモリコントローラ２、並びにチップＡ及びチップＢの周波数環境を設定する。周波数環境のテストケース（周波数ケース）としては、任意のケースが設定可能であるが、例えば、低周波数ケース、通常周波数ケース、及び高周波数ケース等が想定される。例えば、周波数ケースとして通常周波数ケースに設定された場合、メモリシステム１の周波数環境は、実運用フェーズにおいてメモリシステム１が通常使用される（デフォルトの）周波数環境に設定される。また、例えば、周波数ケースとして低周波数ケース及び高周波数ケースに設定された場合、メモリシステム１の周波数環境はそれぞれ、通常周波数ケースよりも低周波数及び高周波数に設定される。
【０１９７】
ステップＳＴ１２〜ＳＴ２６において、メモリシステム１は、インタフェーストレーニング動作の実行、及びトレーニング結果の記憶をする。なお、ステップＳＴ１６及びＳＴ２４において、メモリコントローラ２は、トレーニング結果記憶コマンドの発行に際し、トレーニング結果が周波数ケース毎に識別可能に記憶されるように、トレーニング結果の記憶先を指定する。これにより、ステップＳＴ１８及びＳＴ２６において、チップＡ及びチップＢは、システムデータ領域２１Ｂ内に、トレーニング結果を周波数ケース毎に個別に記憶する。
【０１９８】
ステップＳＴ２７Ｂにおいて、メモリコントローラ２は、全ての周波数ケースについてインタフェーストレーニング動作が実行されたか否かを判定する。インタフェーストレーニング動作が完了していない周波数ケースがあると判定された場合（ステップＳＴ２７Ｂ；ｎｏ）、処理はステップＳＴ１１Ｂに戻り、ステップＳＴ１１Ｂ〜ＳＴ２６が繰り返し実行される。全周波数ケースについてインタフェーストレーニング動作が完了したと判定された場合（ステップＳＴ２７Ｂ；ｙｅｓ）、処理はステップＳＴ２８に進む。
【０１９９】
ステップＳＴ２８において、メモリシステム１への電源供給が停止され、テストフェーズが終了する。
【０２００】
ステップＳＴ３０において、メモリシステム１に再度、電源が投入される。
【０２０１】
ステップＳＴ３２において、電源投入に伴い、パワーオンリード処理が実行される。パワーオンリード処理に際し、ステップＳＴ１８及びＳＴ２６で各々のチップ内のシステムデータ領域２１Ｂに記憶されたトレーニング結果も読み出され、入力制御回路５１、Ｒｏｎ制御回路５２、及び出力制御回路５３等に設定される。なお、パワーオンリード処理では、例えば、デフォルトの周波数状態（すなわち、周波数ケース）におけるトレーニング結果が読み出され、各回路に設定されるものとする。
【０２０２】
ステップＳＴ５０Ｂにおいて、メモリコントローラ２は、ＮＡＮＤパッケージ３との間の通信に用いられる周波数を決定する。周波数の決定は、電源オンの直後に限らず、任意のタイミングで実行可能である。
【０２０３】
ステップＳＴ５２Ｂにおいて、メモリコントローラ２は、周波数の決定結果に基づき、ＮＡＮＤパッケージ３との通信に用いられる周波数が直前の（例えば、デフォルトの）設定から変更されたか否かを判定する。周波数が直前の設定から変更されたと判定された場合（ステップＳＴ５２Ｂ；ｙｅｓ）、トレーニング結果の設定変更が必要であると判定し、処理はステップＳＴ５４Ｂに進む。一方、周波数が直前の設定から変更ないと判定された場合（ステップＳＴ５２Ｂ；ｎｏ）、トレーニング結果の設定変更は不要であると判定し、一連の処理が終了する。
【０２０４】
ステップＳＴ５４Ｂにおいて、メモリコントローラ２は、トレーニング結果における周波数ケースの設定を変更する旨の設定変更コマンドを発行し、ＮＡＮＤパッケージ３内の各チップに送出する。なお、ステップＳＴ５４Ｂにおいて発行される設定変更コマンドは、インタフェーストレーニング動作の専用コマンドである設定変更コマンド“ＺＺｈ”でもよいし、他の設定変更にも用いられる汎用コマンドであるセットフィーチャコマンド“ＥＦｈ”でもよい。
【０２０５】
ステップＳＴ５６Ｂにおいて、設定変更コマンドを受けたチップは、当該設定変更コマンドに応じて、トレーニング結果における周波数ケースの設定変更を行う。
【０２０６】
ステップＳＴ３４において、通信に適用すると決定された周波数に基づくユーザデータ領域２１Ａ内への書込み動作や、ユーザデータ領域２１Ａからの読出し動作を含む通常動作が実行される。
【０２０７】
以上で、一連の処理が終了する。
【０２０８】
４．２  本実施形態に係る効果
第４実施形態によれば、メモリシステム１は、テストフェーズにおいて、互いに異なる周波数ケースについてインタフェーストレーニング動作を実行し、各々についてメモリセルアレイ２１内のシステムデータ領域２１Ｂに記憶する。メモリコントローラ２は、ＮＡＮＤパッケージ３との通信に用いられる周波数の決定結果に基づき、周波数が直前に設定された周波数ケースから変更されたか否かを判定する。そして、周波数が直前に設定されている周波数ケースから変更された場合、適切な周波数ケースのトレーニング結果に変更するための設定変更コマンド“ＺＺｈ”又は“ＥＦｈ”を発行する。これにより、メモリシステム１は、周波数が変化することによって入出力回路２２に設定されたパラメタが最適でなくなることを回避することができ、周波数変化に応じて適応的に最適なトレーニング結果を適用することができる。
【０２０９】
５．第５実施形態
第２実施形態〜第４実施形態では、メモリコントローラ２及びＮＡＮＤパッケージ３間の通信における最適な設定パラメタが変動し得る種々の要因をモニタすることにより、トレーニング結果を変更するか否かを判定する場合について説明したが、これに限られない。例えば、メモリコントローラ２は、通信モードのような、最適な設定パラメタが変動し得る他の設定変更の指示に伴い、併せてトレーニング結果を変更してもよい。以下の説明では、第３実施形態と同等の構成及び動作については説明を省略し、第３実施形態と異なる構成及び動作について主に説明する。
【０２１０】
５．１  インタフェーストレーニング動作を含む一連の動作
第５実施形態に係るメモリシステムにおけるインタフェーストレーニング動作を含む一連の動作について、図２０に示すフローチャートを用いて説明する。
【０２１１】
図２０は、第３実施形態における図１８に対応し、図１８に示したステップＳＴ１１Ａ及びＳＴ２７Ａに代えてステップＳＴ１１Ｃ及びＳＴ２７Ｃが実行され、ＳＴ５０Ａ〜ＳＴ５６Ａに代えてステップＳＴ５４Ｃ、及びＳＴ５６Ｃが実行される場合が示される。
【０２１２】
図２０に示すように、ステップＳＴ１０において、メモリシステム１に電源が投入される。
【０２１３】
ステップＳＴ１１Ｃにおいて、メモリシステム１は、予め定められたテストケースにしたがって、メモリコントローラ２、並びにチップＡ及びチップＢの通信モードを設定する。通信モードのテストケース（通信モードケース）としては、任意のケースが設定可能であるが、例えば、ＳＤＲ（Single data rate）ケース、及びＤＤＲ（Double date rate）ケース等が想定される。また、その他の通信モードケースとしては、信号／ＲＥに加え、当該／ＲＥの反転信号である信号ＲＥを更にＮＡＮＤインタフェースに加える場合等が更に加えられてもよい。
【０２１４】
ステップＳＴ１２〜ＳＴ２６において、メモリシステム１は、インタフェーストレーニング動作の実行、及びトレーニング結果の記憶をする。なお、ステップＳＴ１６及びＳＴ２４において、メモリコントローラ２は、トレーニング結果記憶コマンドの発行に際し、トレーニング結果が通信モード毎に識別可能に記憶されるように、トレーニング結果の記憶先を指定する。これにより、ステップＳＴ１８及びＳＴ２６において、チップＡ及びチップＢは、システムデータ領域２１Ｂ内に、トレーニング結果を通信モード毎に個別に記憶する。
【０２１５】
ステップＳＴ２７Ｃにおいて、メモリコントローラ２は、全ての通信モードについてインタフェーストレーニング動作が実行されたか否かを判定する。インタフェーストレーニング動作が完了していない通信モードがあると判定された場合（ステップＳＴ２７Ｃ；ｎｏ）、処理はステップＳＴ１１Ｃに戻り、ステップＳＴ１１Ｃ〜ＳＴ２６が繰り返し実行される。全通信モードについてインタフェーストレーニング動作が完了したと判定された場合（ステップＳＴ２７Ｃ；ｙｅｓ）、処理はステップＳＴ２８に進む。
【０２１６】
ステップＳＴ２８において、メモリシステム１への電源供給が停止され、テストフェーズが終了する。
【０２１７】
ステップＳＴ３０において、メモリシステム１に再度、電源が投入される。
【０２１８】
ステップＳＴ３２において、電源投入に伴い、パワーオンリード処理が実行される。パワーオンリード処理に際し、ステップＳＴ１８及びＳＴ２６で各々のチップ内のシステムデータ領域２１Ｂに記憶されたトレーニング結果も読み出され、入力制御回路５１、Ｒｏｎ制御回路５２、及び出力制御回路５３等に設定される。
【０２１９】
ステップＳＴ３４において、ユーザデータ領域２１Ａ内への書込み動作や、ユーザデータ領域２１Ａからの読出し動作を含む通常動作が実行される。
【０２２０】
ステップＳＴ５４Ｃにおいて、メモリコントローラ２は、通信モードを変更する旨の通信モード変更コマンドを発行し、ＮＡＮＤパッケージ３内の各チップに送出する。なお、当該通信モード変更コマンドでは、ＮＡＮＤパッケージ３に対して、当該通信モード変更に伴うトレーニング結果の設定変更も併せて指示する。通信モード変更コマンドは、例えば、セットフィーチャコマンド“ＥＦｈ”である。
【０２２１】
ステップＳＴ５６Ｃにおいて、通信モード変更コマンドを受けたチップは、通信モードを変更すると共に、通信モード変更に応じたトレーニング結果の設定変更を行う。
【０２２２】
以上で、一連の処理が終了する。
【０２２３】
５．２  本実施形態に係る効果
第５実施形態によれば、メモリシステム１は、テストフェーズにおいて、互いに異なる通信モードについてインタフェーストレーニング動作を実行し、各々についてメモリセルアレイ２１内のシステムデータ領域２１Ｂに記憶する。メモリコントローラ２は、実運用フェーズにおいて、通信モードの変更に際して発行されるセットフィーチャコマンド“ＥＦｈ”に、通信モード変更に伴うトレーニング結果の設定変更の指示を含める。これにより、メモリシステム１は、通信モードが変化することによって入出力回路２２に設定されたパラメタが最適でなくなることを回避することができ、通信モードの変化に応じて適応的に最適なトレーニング結果を適用することができる。
【０２２４】
６．第６実施形態
第２実施形態〜第５実施形態では、テストフェーズで所定のテストケース毎に異なるトレーニング結果を取得しておき、取得された複数のトレーニング結果の中から最適な設定値を選択する場合について説明したが、これに限られない。例えば、１つのトレーニング結果を基準値として取得しておき、当該基準値をオフセットさせることで最適な設定値となるようにしてもよい。以下では、第２実施形態と同等の構成及び動作については説明を省略し、第２実施形態と異なる構成及び動作について主に説明する。
【０２２５】
６．１  インタフェーストレーニング動作を含む一連の動作
第６実施形態に係るメモリシステムにおけるインタフェーストレーニング動作を含む一連の動作について、図２１に示すフローチャートを用いて説明する。
【０２２６】
図２１に示すように、ステップＳＴ１０において、メモリシステム１に電源が投入される。
【０２２７】
ステップＳＴ１２〜ＳＴ２６において、メモリシステム１は、インタフェーストレーニング動作の実行、及びトレーニング結果の記憶をする。これにより、ステップＳＴ１８及びＳＴ２６において、チップＡ及びチップＢは、システムデータ領域２１Ｂ内に、基準値となるトレーニング結果を記憶する。
【０２２８】
ステップＳＴ２８において、メモリシステム１への電源供給が停止され、テストフェーズが終了する。
【０２２９】
ステップＳＴ３０において、メモリシステム１に再度、電源が投入される。
【０２３０】
ステップＳＴ３２において、電源投入に伴い、パワーオンリード処理が実行される。パワーオンリード処理に際し、ステップＳＴ１８及びＳＴ２６で各々のチップ内のシステムデータ領域２１Ｂに記憶されたトレーニング結果も読み出され、入力制御回路５１、Ｒｏｎ制御回路５２、及び出力制御回路５３等に設定される。なお、パワーオンリード処理では、例えば、デフォルトの状態（すなわち、基準値に対してオフセットされていない状態）におけるトレーニング結果が読み出され、各回路に設定されるものとする。
【０２３１】
ステップＳＴ３４において、ユーザデータ領域２１Ａ内への書込み動作や、ユーザデータ領域２１Ａからの読出し動作を含む通常動作が実行される。
【０２３２】
ステップＳＴ５０Ｄにおいて、メモリコントローラ２は、ステップＳＴ３４において実行された読出し動作及び／又は書込み動作の回数をモニタする。
【０２３３】
ステップＳＴ５２Ｄにおいて、メモリコントローラ２は、読出し動作及び／書込み動作の回数のモニタ結果に基づき、当該回数が閾値を上回ったか否かを判定する。読出し動作及び／又は読出し動作の回数が閾値を上回っている場合（ステップＳＴ５２Ｄ；ｙｅｓ）、トレーニング結果の設定変更が必要であると判定し、処理はステップＳＴ５４Ｄに進む。一方、読出し動作及び／又は読出し動作の回数が閾値を下回って場合（ステップＳＴ５２Ｄ；ｎｏ）、トレーニング結果の設定変更は不要であると判定し、一連の処理が終了する。
【０２３４】
ステップＳＴ５４Ｄにおいて、メモリコントローラ２は、トレーニング結果の設定値を基準値からオフセットさせる旨のコマンド（設定値オフセットコマンド）を発行し、ステップＳＴ５２Ｄにおいて読出し動作及び／書込み動作の回数が閾値を上回ったと判定されたチップに送出する。なお、ステップＳＴ５４Ｄにおいて発行される設定値オフセットコマンドは、インタフェーストレーニング動作の専用コマンドである設定変更コマンド“ＺＺｈ”でもよいし、他の設定変更にも用いられる汎用コマンドであるセットフィーチャコマンド“ＥＦｈ”でもよい。
【０２３５】
具体的には、例えば、設定値オフセットコマンドとして設定変更コマンド“ＺＺｈ”が発行された場合、第２実施形態の図１５において示した、ケース毎のトレーニング結果の格納先を指定するアドレス００ｈ〜０２ｈに代えて、基準値に対するオフセット量（ＤＡＣ値）を示すデータを送出すればよい。また、例えば、設定値オフセットコマンドとしてセットフィーチャコマンド“ＥＦｈ”が発行された場合、第２実施形態の図１６において示した、適用ケースを指定するデータの代わりに、基準値に対するオフセット量を示すデータを送出すればよい。
【０２３６】
ステップＳＴ５６Ｄにおいて、設定値オフセットコマンドを受けたチップは、当該設定値オフセットコマンドに応じて、トレーニング結果の設定値を基準値からオフセットさせる。
【０２３７】
以上で、一連の処理が終了する。
【０２３８】
６．２  本実施形態に係る効果
第６実施形態によれば、メモリシステム１は、テストフェーズにおいて、基準値を定めるインタフェーストレーニング動作を実行し、メモリセルアレイ２１内のシステムデータ領域２１Ｂに記憶する。メモリコントローラ２は、読出し動作や書込み動作の実行回数をモニタし、当該実行回数が閾値を超えていないかを判定する。そして、読出し動作や書込み動作の実行回数が閾値を超えている場合、メモリコントローラ２は、設定値オフセットコマンドを発行する。これにより、ＮＡＮＤパッケージ３は、読出し動作や書込み動作が何度も実行されることによって生じるインタフェース特性の劣化を考慮したパラメタを入出力回路２２に設定することができる。
【０２３９】
７．第７実施形態
第１実施形態〜第６実施形態では、テストフェーズに取得したトレーニング結果を実運用フェーズにおいて適用する場合について説明したが、これに限られない。例えば、テストフェーズにおいて取得したトレーニング結果に基づき、実運用フェーズにおいて更に詳細なインタフェーストレーニング動作を実行し、より実際の動作環境に即したトレーニング結果を取得するようにしても良い。以下の説明では、第１実施形態と同等の構成及び動作については説明を省略し、第１実施形態と異なる構成及び動作について主に説明する。
【０２４０】
７．１  インタフェーストレーニング動作を含む一連の動作
第７実施形態に係るメモリシステムにおけるインタフェーストレーニング動作を含む一連の動作について、図２２に示すフローチャートを用いて説明する。
【０２４１】
図２２は、第１実施形態における図１１に対応し、図１１に示したステップＳＴ３２及びＳＴ３４の間にステップＳＴ６０〜ＳＴ６５が追加される場合が示される。
【０２４２】
図２２に示すように、ステップＳＴ１０〜ＳＴ３２の動作は、図１１の場合と同等であるため、説明を省略する。
【０２４３】
実運用フェーズに移行し、テストフェーズのインタフェーストレーニング動作で記憶されたトレーニング結果を設定した後、更なるインタフェーストレーニング動作（詳細インタフェーストレーニング動作）が実行される。詳細インタフェーストレーニング動作は、テストフェーズにおけるインタフェーストレーニング動作よりも、補正可能な幅（解像度）をより細かく刻むことにより、精度よくパラメタを取得できる動作である。詳細インタフェーストレーニング動作は、単体で実行するとステップＳＴ１２〜ＳＴ２６におけるインタフェーストレーニング動作よりも長い時間を要する。しかしながら、詳細インタフェーストレーニング動作は、ステップＳＴ１２〜ＳＴ２６におけるインタフェーストレーニング動作のトレーニング結果に基づいて実行することにより、比較的短時間で実行可能となる。
【０２４４】
具体的には、ステップＳＴ６０において、メモリコントローラ２は、詳細インタフェーストレーニング動作を実行するか否かを判定する。詳細インタフェーストレーニング動作を実行する場合（ステップＳＴ６０；ｙｅｓ）、処理はステップＳＴ６１に進み、実行しない場合（ステップＳＴ６０；ｎｏ）、処理はステップＳＴ３４に進む。
【０２４５】
ステップＳＴ６１において、メモリコントローラ２は、詳細インタフェーストレーニング動作を実行する旨のコマンド（詳細Ｉ／Ｆトレーニング実行コマンド）を発行し、チップＡ及びチップＢに送出する。詳細Ｉ／Ｆトレーニング実行コマンドは、例えば、テストフェーズに発行されるＩ／Ｆトレーニング実行コマンドとは異なる専用コマンドである。
【０２４６】
ステップＳＴ６２において、詳細Ｉ／Ｆトレーニング実行コマンドを受けると、チップＡ及びチップＢの各々は、ステップＳＴ３２において設定されたトレーニング結果に基づき、詳細インタフェーストレーニング動作を実行する。
【０２４７】
ステップＳＴ６３において、チップＡ及びチップＢの各々は、詳細インタフェーストレーニング動作のトレーニング結果（詳細トレーニング結果）を入出力回路２２に設定する。
【０２４８】
ステップＳＴ６４において、メモリコントローラ２は、ＮＡＮＤパッケージ３内のシステムデータ領域２１Ｂに記憶されたトレーニング結果を詳細トレーニング結果で上書きするか否かを判定する。トレーニング結果を上書きする場合（ステップＳＴ６４；ｙｅｓ）、処理はステップＳＴ６５に進み、トレーニング結果を上書きしない場合（ステップＳＴ６４；ｎｏ）、処理はステップＳ３４に進む。
【０２４９】
ステップＳＴ６５において、メモリコントローラ２は、トレーニング結果記憶コマンドを発行し、チップＡ及びチップＢに送出する。
【０２５０】
ステップＳＴ６６において、トレーニング結果記憶コマンドを受けると、チップＡ及びチップＢは、ステップＳＴ６２において実行した詳細インタフェーストレーニング動作の詳細トレーニング結果をシステムデータ領域２１Ｂ内に記憶する。
【０２５１】
ステップＳＴ３４において、ユーザデータ領域２１Ａ内への書込み動作や、ユーザデータ領域２１Ａからの読出し動作を含む通常動作が実行される。
【０２５２】
以上で、一連の処理が終了する。
【０２５３】
７．２  インタフェーストレーニング動作のコマンドシーケンス
図２３は、第７実施形態に係るメモリシステムにおける詳細インタフェーストレーニング動作を説明するためのコマンドシーケンスである。図２３は、図２２におけるステップＳＴ６１及びＳＴ６２に対応する。図２３では、チップＡ及びチップＢの各々に対して、２種類の詳細インタフェーストレーニングが実行される場合の例が示される。
【０２５４】
図２３に示すように、詳細インタフェーストレーニング動作のコマンドシーケンスは、第１実施形態における図１２で示したインタフェーストレーニング動作のコマンドシーケンスと、発行されるコマンドが異なる。
【０２５５】
具体的には、メモリコントローラ２は、１種類目のトレーニング項目に対応する詳細インタフェーストレーニング動作（第１詳細Ｉ／Ｆトレーニング動作）の実行を指示する際には、コマンド“Ｘ１ｈ”に代えて、コマンド“Ｗ１ｈ”を発行する。また、メモリコントローラ２は、２種類目のトレーニング項目に対応する詳細インタフェーストレーニング動作（第２詳細Ｉ／Ｆトレーニング動作）の実行を指示する際には、コマンド“Ｘ２ｈ”に代えて、コマンド“Ｗ２ｈ”を発行する。
【０２５６】
以上のように、テストフェーズにおけるＩ／Ｆトレーニング実行コマンドと異なる詳細Ｉ／Ｆトレーニング実行コマンドを発行することにより、図２２におけるステップＳＴ６１及びＳＴ６２を実行することができる。
【０２５７】
７．３  本実施形態に係る効果
第７実施形態によれば、メモリコントローラ２は、実運用フェーズにおいて、詳細Ｉ／Ｆトレーニング動作を実行するか否かを判定する。これにより、メモリコントローラ２は、テストフェーズにおけるＩ／Ｆトレーニング動作の結果を通常動作に適用するか、それとも追加の詳細Ｉ／Ｆトレーニング動作の結果を通常動作に適用するか、を選択することができる。一般に、テストフェーズは、実運用フェーズの動作環境に即して各種動作が実行されるため、テストフェーズにおけるＩ／Ｆトレーニング動作の結果は、実運用フェーズにおいても適切な設定値となり得る。しかしながら、実運用フェーズの動作環境は、テストフェーズと完全には一致しないため、実運用フェーズにおける入出力回路２２の最適な設定値は、テストフェーズにおけるトレーニング結果からずれが生じ得る。第７実施形態では、実運用フェーズにおいて詳細Ｉ／Ｆトレーニング動作を実行することにより、実際の動作環境における最適な設定値を精度よく取得することができる。したがって、テストフェーズと実運用フェーズとの動作環境の違い等に起因する設定値のずれを補正することができる。
【０２５８】
また、詳細Ｉ／Ｆトレーニング動作は、テストフェーズにおいてシステムデータ領域２１Ｂ内に記憶されたトレーニング結果に基づき実行される。これにより、詳細Ｉ／Ｆトレーニング動作に要する時間を短縮することができ、電源オンから通常動作の実行までに要する時間を短縮することができる。
【０２５９】
また、メモリコントローラ２は、詳細Ｉ／Ｆトレーニング動作による詳細トレーニング結果を、システムデータ領域２１Ｂ内に上書きするか否かを判定する。これにより、詳細トレーニング動作の実行後に電源のオフ‐オンが実行された際に、ステップＳＴ６４において入出力回路２２に設定した詳細トレーニング結果を、再度利用するか否か、を選択することができる。詳細トレーニング結果を再度利用しない場合、当該詳細トレーニング結果は破棄される。そして、その後電源のオフ‐オンが発生すると、再度詳細Ｉ／Ｆトレーニング動作が実行される。これにより、電源がオフ‐オンされるたびに、最適な詳細トレーニング結果を適用することができる。一方、詳細トレーニング結果を再度利用する場合、前回電源オン時の最適な設定値を持ち越すことができる。このため、持ち越した設定値が今回電源オン時にも引き続き適用できる場合には、詳細Ｉ／Ｆトレーニング動作の実行を省略することができる。したがって、状況に応じて、電源オフ‐オンに伴って実行されるインタフェーストレーニング動作の回数の増加を抑制することができる。
【０２６０】
８．  その他
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【０２６１】
１…メモリシステム、２…メモリコントローラ、３…ＮＡＮＤパッケージ、３Ａ、３Ｂ…半導体記憶装置、４…パワーマネージャ、１１…プロセッサ、１２…内蔵メモリ、１３…ＮＡＮＤインタフェース回路、１４…バッファメモリ、１５…ホストインタフェース回路、２１…メモリセルアレイ、２１Ａ…ユーザデータ領域、２１Ｂ…システムデータ領域、２２…入出力回路、２３…ロジック制御回路、２４…温度センサ、２５…レジスタ、２６…シーケンサ、２７…電圧生成回路、２８…ドライバセット、２９…ロウデコーダ、３０…センスアンプ、３１…入出力用パッド群、３２…ロジック制御用パッド群、４１…入力回路、４２…出力回路、５０…データラッチ、５１…入力制御回路、５２…Ｒｏｎ制御回路、５３…出力制御回路。
【図１】
2020047340.tif 000003
【図２】
2020047340.tif 000004
【図３】
2020047340.tif 000005
【図４】
2020047340.tif 000006
【図５】
2020047340.tif 000007
【図６】
2020047340.tif 000008
【図７】
2020047340.tif 000009
【図８】
2020047340.tif 000010
【図９】
2020047340.tif 000011
【図１０】
2020047340.tif 000012
【図１１】
2020047340.tif 000013
【図１２】
2020047340.tif 000014
【図１３】
2020047340.tif 000015
【図１４】
2020047340.tif 000016
【図１５】
2020047340.tif 000017
【図１６】
2020047340.tif 000018
【図１７】
2020047340.tif 000019
【図１８】
2020047340.tif 000020
【図１９】
2020047340.tif 000021
【図２０】
2020047340.tif 000022
【図２１】
2020047340.tif 000023
【図２２】
2020047340.tif 000024
【図２３】
2020047340.tif 000025