以下、実施形態のメモリシステムおよびメモリ装置の制御方法を、図面を参照して説明する。なお以下の説明では、同一または類似の機能を有する構成に同一の符号を付す。そして、それら構成の重複する説明は省略する場合がある。また、本願でいう「XXに基づく」とは、「少なくともXXに基づく」ことを意味し、XXに加えて別の要素に基づく場合も含む。「XXに基づく」とは、XXを直接に用いる場合に限定されず、XXに対して演算や加工が行われたものに基づく場合も含む。「XX」は、任意の要素(例えば、任意の設定値や指標、物理量、その他の情報)である。また、本願でいう「接続」とは、直接的な接続に限定されず、導電性の要素を介在させた電気的な接続も含む。
実施形態のメモリシステムは、例えば、メモリシステムの書き込みの高速化と、書き込みの好適化による読み出しエラーの低減の両方を実現し得るものである。例えば、本実施形態のメモリシステムは、データの書き込み時のプログラムループ間における電圧の差ΔVpgm(後述)を大きくすることで、書き込みの高速化を図る。ただし、差ΔVpgmを大きくすると、各データ値に対するセルトランジスタの閾値電圧分布の幅が広がり、読み出しエラーが増加する場合がある。そこで、本実施形態のメモリシステムは、データ値の書き込み完了の判定に用いられるベリファイ電圧の値を、例えばワード線の物理的な位置やその他の特性に基づくセルトランジスタの書き込まれやすさのばらつきなどに応じて調整することで、セルトランジスタの閾値電圧分布の幅が広がることを抑制する。これにより、メモリシステムは、大きな差ΔVpgmが用いられた場合でも読み出しエラーの低減を図ることができる。
(第1の実施形態)
<1.1.構成(構造)>
<1.1.1.メモリシステム>
図1は、第1の実施形態のメモリシステム1の構成を示すブロック図である。図1に示すように、メモリシステム1は、ホスト装置2のためのストレージとして機能する。例えば、メモリシステム1は、ホスト装置2と通信し、ホスト装置2からの指示(命令)に基づいて、ホスト装置2からのデータを保持し、また、ホスト装置2にデータを出力する。
ホスト装置2は、例えば、サーバコンピュータまたはパーソナルコンピュータなどであり、情報処理を実行し、メモリシステム1を用いてデータを記憶する。ホスト装置2は、メモリシステム1により提供される記憶空間を複数の論理領域へと分割し、各論理領域に論理アドレスを付与する。ホスト装置2は、論理アドレスを使用して、メモリシステム1の記憶空間を管理する。ホスト装置2は、ある論理領域に書き込み対象のデータが保持されるものと決定すると、書き込み対象データに対して決定された論理アドレスを割り当てる。そして、ホスト装置2は、論理アドレスにより特定される論理領域への書き込み対象データの書き込みをメモリシステム1に指示する。また、ホスト装置2は、論理アドレスによって、メモリシステム1中の読み出し対象のデータを特定する。
メモリシステム1は、例えば、SDTMカードのようなメモリカードや、SSD(Solid State Device)である。メモリシステム1は、複数のメモリ装置100と、メモリコントローラ200とを含む。メモリ装置100およびメモリコントローラ200は、別々のパッケージに封止(例えば樹脂によって封止)されたチップでもよいし、1つのチップでもよい。
複数のメモリ装置100は、互いに同じ要素および接続を有する。このため以下では、1つのメモリ装置100が代表として記述される。この代表的なメモリ装置100についての記述は、他のメモリ装置100にも当てはまる。メモリ装置100は、不揮発にデータを記憶するメモリ装置であり、例えばNAND型フラッシュメモリである。
メモリコントローラ200は、メモリコントローラ200の内部に記憶部(例えば、後述するRAM22)を有するとともに、ホスト装置2からの指示を受け取り、メモリ装置100を制御する。メモリ装置100の制御は、ホスト装置2から受け取られた指示とは無関係のものと、ホスト装置2から受け取られた指示に基づくものとを含む。例えば、メモリコントローラ200は、ホスト装置2により書き込みを指示されたデータを、メモリ装置100に書き込む。また、メモリコントローラ200は、ホスト装置2により読み出しを指示されたデータをメモリ装置100から読み出してホスト装置2に送信する。
さらに、メモリコントローラ200は、メモリ装置100を管理する。メモリコントローラ200による管理は、アドレスのマッピングの管理、およびメモリ装置100の状態の管理を含む。「アドレスのマッピング」とは、論理アドレスと物理アドレスとを対応付けるマッピングである。「物理アドレス」とは、メモリ装置100により提供される記憶領域を特定する情報である。例えば、メモリコントローラ200は、書き込みを指示されると、書き込みを指示されたデータの書き込み先の論理アドレスと、当該データが書き込まれたメモリ装置100中の記憶領域の物理アドレスとをアドレス変換テーブルにより管理する。メモリコントローラ200は、ある論理アドレスの記憶領域からのデータの読み出しを指示されると、アドレス変換テーブルを参照して、当該論理アドレスと関連付けられた物理アドレスを知得し、知得された物理アドレスの記憶領域からデータを読み出す。メモリ装置100の状態の管理は、メモリ装置100の不良な記憶領域(後述のブロックBLK)の管理、ウェアレベリング、ガベージコレクション、およびリフレッシュなどを含む。「参照」とは、ある情報を保持している機能部または物理的要素から情報を入手することを意味する。なお、ある機能部が「情報を参照する」とは、当該機能部の外部にある機能部または物理的要素から情報を入手する場合と、当該機能部の内部にあるサブ機能部または物理的要素から情報を入手する場合との両方を含む。また、「知得」とは、ある情報を取り扱う(例えば送信する、または演算に用いる)ことができる状態になることを意味する。なお、「参照」および「知得」の各々は、「取得」または「入手」などと読み替えられてもよい。
<1.1.2.メモリコントローラ>
メモリコントローラ200は、ホストインターフェイス21、RAM(Random Access Memory)22、ROM(Read Only Memory)23、メモリインターフェイス24、ECC回路25、および全体制御部26を含む。メモリコントローラ200は、例えば、ハードウェアとしてCPU(Central Processing Unit)などのプロセッサを含み、ROM23に記憶されかつRAM22上にロードされたファームウェア(プログラム)がプロセッサによって実行されることによって、ホストインターフェイス21、メモリインターフェイス24、ECC回路25、および全体制御部26の各々の機能の一部または全部を実行する。ホストインターフェイス21、RAM22、ROM23、メモリインターフェイス24、ECC回路25、および全体制御部26は、バスにより相互に接続されている。
ホストインターフェイス21は、メモリコントローラ200とホスト装置2とがある通信規格に則って通信可能に接続されるのに必要なハードウェア要素および(または)ソフトウェアを含む。すなわち、ホストインターフェイス21は、ホスト装置2に対するバスによる物理的接続のためのハードウェア(例えばコネクタおよび(または)ピン)を含み、バスを介してホスト装置2と接続される。また、ホストインターフェイス21は、ホストインターフェイス21が則る通信規格に従ってメモリコントローラ200とホスト装置2とが通信することを可能にする種々の処理を実行する。ホストインターフェイス21および(または)ホストインターフェイス21が則る通信規格の例は、ATA(Advanced Technology Attachment)、SATA(Serial ATA)、SAS(Serial Attached Small computer system interface)、およびPCIe(Peripheral Component Interconnect Express)を含む。
RAM22は、例えば、揮発性メモリである。RAM22は、メモリコントローラ200の内部に設けられた記憶部の一例である。RAM22は、データを一時的に保持し、バッファとしての機能を有する。RAM22に保持されるデータは、ホスト装置2から受け取られたデータ、ホスト装置2に送信されるデータ、メモリ装置100に書き込まれるデータ(書き込みデータ)、メモリ装置100から読み出されたデータ(読み出しデータ)、メモリ装置100の状態を示し且つメモリ装置100の制御のために全体制御部26によって参照される種々の管理データ、およびファームウェアを含む。上記管理データは、アドレス変換テーブル、動作管理テーブルT1、および調整値管理テーブルT2を含む。
動作管理テーブルT1では、メモリ装置100の性能や動作に影響を与える各種パラメータの値が管理されている。各種パラメータの例は、ワード線WLやビット線BLに対する印加電圧の値(書き込み電圧、読み出し電圧、およびベリファイ電圧(後述)の値を含む)などを含む。調整値管理テーブルT2では、ベリファイ電圧の電圧レベルを調整するための複数の調整値(オフセット値)が管理されている。調整値管理テーブルT2については、詳しく後述する。なおここでは、説明の便宜上、動作管理テーブルT1と調整値管理テーブルT2とを分けて示すが、調整値管理テーブルT2は、動作管理テーブルT1の一部であってもよい。
ROM23は、不揮発性メモリの一例である。ROM23は、上述した管理データおよびファームウェアを記憶している。ROM23に記憶された種々の管理テーブルおよびファームフェアは、RAM22上にロードされて利用される。なお、RAM22上にロードされて利用される管理データの一部は、ROM23に代えて、メモリ装置100の記憶部(ROM領域)11aに記憶されていてもよい。メモリ装置100の記憶部11aは、例えば、後述するメモリセルアレイ11の1つ以上のブロックBLKにより実現される。
メモリインターフェイス24は、NANDバスによって、メモリ装置100と物理的に接続されており、NANDインターフェイスに従った信号の送受信を行う。NANDバスは、NANDインターフェイスに従った信号を伝送する。NANDインターフェイスに従った信号は、例えば、種々の制御信号、入出力信号DQ、およびレディー・ビジー信号Ry/BYnを含む。入出力信号DQは、例えば8ビットの幅を有し、コマンド(CMD)、書き込みデータおよび読み出しデータ(DATA)、アドレス信号(ADD)、および各種の管理データを含む。レディー・ビジー信号RY/BYnは、メモリ装置100ごとに独立しており、例えばハイレベルおよびローレベルによって、対応するレディー・ビジー信号RY/BYnを送信するメモリ装置100がそれぞれレディー状態およびビジー状態であることを示す。メモリ装置100は、レディー状態においてメモリコントローラ200からの指示を受け付け、ビジー状態においてメモリコントローラ200からの指示を受け付けない。
ECC回路25は、ある実体的データの誤りを訂正するための誤り訂正データを生成する。実体的データは、ホスト装置2から書き込みを指示されたデータおよび管理データを含む。実体的データと、その実体的データに対応する誤り訂正データとの組は、書き込みデータとして、メモリ装置100に書き込まれる。また、ECC回路25は、メモリ装置100からの読み出しデータに対して演算を行って、読み出しデータに含まれる正しい(誤りを訂正された)データ(例えばホスト読み出しデータまたは管理データなど)を取得することを試みる。
全体制御部26は、例えば、プロセッサおよびRAM22の機能の一部により実現される。全体制御部26は、ホストインターフェイス21、RAM22、ROM23、メモリインターフェイス24、およびECC回路25を制御する。全体制御部26は、書き込みおよび読み出しの際に、RAM22およびメモリインターフェイス24を制御しつつ、上記のアドレスマッピング管理および(または)メモリ装置100の状態の管理を行う。
<1.1.3.メモリ装置>
メモリ装置100は、メモリセルアレイ11、シーケンサ(制御回路)12、電位生成回路13、ドライバ14、ロウデコーダ15、およびセンスアンプ16などの要素を含む。
メモリセルアレイ11は、複数のブロック(メモリブロック)BLK(BLK0、BLK1、…)を含む。ブロックBLKは、メモリセルアレイ11のある物理的な単位であり、各ブロックBLK中のデータは一括して消去される。各ブロックBLKは、セルトランジスタMT(図2参照)を含む。セルトランジスタMTは、メモリコントローラ200からの書き込みデータを不揮発に保持する。
シーケンサ12は、コマンドCMDに基づいて、電位生成回路13、ドライバ14、およびセンスアンプ16などの要素を制御する。シーケンサ12は、レジスタ121およびタイマ122を含む。レジスタ121は、複数の記憶領域を含む。各記憶領域は、一意のアドレスにより特定されることが可能であり、1または複数ビットの情報を記憶することが可能である。レジスタ121は、各記憶領域において種々のデータを保持する。
電位生成回路13は、種々の電位(電圧)を生成する。生成された電位は、ドライバ14およびセンスアンプ16などの要素に供給される。
ドライバ14は、アドレス信号ADDを受け取り、電位生成回路13からの電位のうちアドレス信号ADDに基づいていくつかの電位を選択し、選択された電位をロウデコーダ15に供給する。
ロウデコーダ15は、アドレス信号ADDを受け取り、アドレス信号ADDに基づいて、1つのブロックBLKを選択する。そして、ロウデコーダ15は、選択されたブロックBLKにドライバ14からの電位を転送する。
センスアンプ16は、セルトランジスタMTからの電流を増幅するための回路である。センスアンプ16は、セルトランジスタMTの状態をセンスし、センスされた状態に基づいて読み出しデータを生成する。また、センスアンプ16は、書き込みデータをセルトランジスタMTに転送する。ただし、センスアンプ16によるセルトランジスタMTの状態をセンスの方式は、特定の方式に限定されず、電流を増幅する以外の方式でもよい。
<1.1.3.1.セルアレイ>
図2は、本実施形態のメモリセルアレイ11の一部の要素および接続の例を示し、ブロックBLK0の要素および接続、ならびに関連する要素を示す図である。メモリセルアレイ11の複数の(例えば全ての)ブロックBLKは、みな図2に示される要素および接続を含む。本実施形態の半導体装置100は、例えば、複数のワード線WLが平面状に並べられたメモリ装置100(いわゆる二次元NANDメモリ)である。
図2に示すように、m(mは自然数)本のビット線BL0〜BLm−1の各々は、各ブロックBLKにおいて、1つのストリングSTRと接続されている。各ストリングSTRは、1つの第1選択ゲートトランジスタST、複数のセルトランジスタMT、および1つの第2選択ゲートトランジスタDTを含む。第1選択ゲートトランジスタST、複数のセルトランジスタMT、および第2選択ゲートトランジスタDTは、この順で、ソース線SLと1つのビット線BLとの間に直列に接続されている。
第1選択ゲートトランジスタSTの制御ゲート電極は、第1選択ゲート線(ソース側選択ゲート線)SGSLに接続されている。第1選択ゲート線SGSLは、第1選択ゲートトランジスタSTの制御ゲート電極を制御する制御信号線である。第1選択ゲートトランジスタSTは、第1選択ゲート線SGSLを通じて印加される電圧に基づき、複数のセルトランジスタMTとソース線SLとの間を選択的に接続する。
第2選択ゲートトランジスタDTの制御ゲート電極は、第2選択ゲート線(ドレイン側選択ゲート線)SGDLに接続されている。第2選択ゲート線SGDLは、第2選択ゲートトランジスタDTの制御ゲート電極を制御する制御信号線である。第2選択ゲートトランジスタDTは、第2選択ゲート線SGDLを通じて印加される電圧に基づき、複数のセルトランジスタMTとビット線BLとの間を選択的に接続する。
セルトランジスタMTは、制御ゲート電極、および周囲から絶縁された電荷蓄積層を含み、電荷蓄積層中の電荷の量に基づいてデータを不揮発に保持する。セルトランジスタMTは、書き込みにより電荷蓄積層に電子を注入され、消去のために電荷蓄積層から電子を引き抜かれる。
各ブロックBLKにおいて、セルトランジスタMTの制御ゲート電極は、ワード線WLに接続されている。ワード線WLは、メモリセルアレイ11の中から1列に並ぶ1群のセルトランジスタMTを選択するための制御信号線である。セルトランジスタMTは、ワード線WLとビット線BL(BL0〜BLm−1)との交差部に設けられている。そして、読み出しまたは書き込みが行われるセルトランジスタMTに接続されたワード線WL(以下、「選択ワード線WL」と称される場合がある)に所定の電圧を印加することで、セルトランジスタMTの読み出しまたは書き込みが可能になる。
各ブロックBLKにおいて、相違するストリングSTR中に含まれる複数のセルトランジスタMTには、1つのアドレスに対応するワード線WLが共通に接続されている。ワード線WLを共有するセルトランジスタMTの組は、セルユニットCUと称される。1つのセルユニットCUに含まれる複数のセルトランジスタMTは、一括してデータを書き込まれ、また一括してデータを読み出される。1つのセルユニットCUの記憶空間は、1つまたは複数のページを含む。
<1.1.3.2.セルアレイの物理的構造>
図3は、本実施形態のメモリセルアレイ11の一部の要素の物理的構造を示す断面図である。図3に示すように、メモリセルアレイ11は、半導体基板111、複数のワード線WL(WL0〜WL15)、第1選択ゲート線SGSL、および第2選択ゲート線SGDLを有する。なお、図3では、16のワード線WLが並べられた例を示すが、ワード線WLの数はこの例に限定されない。
半導体基板111は、「基板」の一例である。半導体基板111は、複数のワード線WL、第1選択ゲート線SGSL、および第2選択ゲート線SGDLが設けられるベースとなる部材を意味する。半導体基板111は、「ベース」または「支持体」などと称されてもよい。半導体基板111は、平面状に広がる基準面111aを有する。なお、本願でいう「平面状」とは、ある程度の凹凸がある場合も含む。
複数のワード線WL、第1選択ゲート線SGSL、および第2選択ゲート線SGDLは、半導体基板111の基準面111aと略平行な方向に並べられている。複数のワード線WL、第1選択ゲート線SGSL、および第2選択ゲート線SGDLは、互いに略平行に延びている。複数のワード線WLは、第1選択ゲート線SGSLと、第2選択ゲート線SGDLとの間に位置する。ここで言う「複数のワード線WL」とは、互いに同じストリングSTRに含まれる複数のセルトランジスタMTに接続された複数のワード線を意味する。言い換えると、「複数のワード線WL」とは、互いに電気的に直列に接続された複数のセルトランジスタMTに接続された複数のワード線を意味する。
なお、複数のワード線WLと第1選択ゲート線SGSLとの間には、第1ダミー線が設けられてもよい。同様に、複数のワード線WLと第2選択ゲート線SGDLとの間には、第2ダミー線が設けられてもよい。第1ダミー線および第2ダミー線は、セルトランジスタMTとして機能するトランジスタには接続されていない導電線を意味する。第1ダミー線および第2ダミー線は、第1選択ゲート線SGSLおよび第2選択ゲート線SGDLに印加される電圧による影響がワード線WLに伝わりにくいように、複数のワード線WLと選択ゲート線SGSL,SGDLとの間の緩衝部として機能する。
本実施形態では、複数のワード線WLは、第1端ワード線WLE1、第2端ワード線WLE2、および中央ワード線WLCを含む。第1端ワード線WLE1は、複数のワード線WLのなかで第1端(第1側の端)に位置するワード線WLである。例えば、第1端ワード線WLE1は、複数のワード線WLのなかで、第1選択ゲート線SGSLに最も近いワード線WLである。図3に示す例では、ワード線WL0が第1端ワード線WLE1に該当する。
同様に、第2端ワード線WLE2は、複数のワード線WLのなかで第2端(第2側の端)に位置するワード線WLである。第2側は、第1側とは反対側である。例えば、第2端ワード線WLE2は、複数のワード線WLのなかで、第2選択ゲート線SGDLに最も近いワード線WLである。図3に示す例では、ワード線WL15が第2端ワード線WLE2に該当する。
中央ワード線WLCは、複数のワード線WLのなかで、例えば、第1端ワード線WLE1からの距離と第2端ワード線WLE2からの距離との差が最も小さいワード線である。なお、「中央」との名称は、説明の便宜上付されたものである。このため、中央ワード線WLCは、第1端ワード線WLE1および第2端ワード線WLE2から等距離に位置する必要はない。図3に示す例では、ワード線WL7およびワード線WL8の各々が中央ワード線WLCに該当する。1つの観点で見ると、中央ワード線WLCは、第1端ワード線WLE1と第2端ワード線WLE2との間に位置したワード線WLである。
本実施形態では、第1端ワード線WLE1は、「第1ワード線」の一例である。また、第1端ワード線WLE1に接続されたセルトランジスタMTは、「第1セルトランジスタ」の一例である。一方で、中央ワード線WLCは、「第2ワード線」の一例である。また、中央ワードワード線WLCに接続されたセルトランジスタMTは、「第2セルトランジスタ」の一例である。
ただし、「第1ワード線」および「第2ワード線」は、上記例に限定されない。例えば、「第1ワード線」は、第2端ワード線WLE2でもよい。また、「第1ワード線」は、複数のワード線WLのなかで、端に位置するワード線WL(第1端ワード線WLE1および第2端ワード線WLE2)以外のワード線でもよい。また、第1端ワード線WLE1が「第1ワード線」であり、第2端ワード線WLE2が「第2ワード線」でもよい。
<1.1.3.2.セルトランジスタ>
メモリ装置100は、1つのセルトランジスタMTにおいて1ビット以上のデータを保持することができる。図4は、書き込みの結果、1セルトランジスタMT当たり2ビットのデータを保持するセルトランジスタMTの閾値電圧の分布を示す図である。各セルトランジスタMTの閾値電圧は、保持される2ビットデータに応じた値を有する。各セルトランジスタMTは、4つの閾値電圧のうちのいずれかを有し得る。
ある同じ2ビットデータを保持する複数のセルトランジスタMTであっても、互いに相違する閾値電圧を有し得る。このため、ある同じデータを保持する複数のセルトランジスタMTの閾値電圧は、1つの分布を形成する。4つの閾値電圧のうち、最も低い分布から順に4つの分布のそれぞれに属するセルトランジスタMTは、それぞれ、Erレベル、Aレベル、Bレベル、およびCレベルにある。Erレベル、Aレベル、Bレベル、およびCレベルは、例えば、それぞれ“11”データ、“01”データ、“00”データ、および“10”データを保持する状態として扱われる。Erレベルは、消去状態に相当する。一般に、データは、消去状態のセルトランジスタMTに書き込まれる。ここで、“01”データは、「第1データ値」の一例である。“00”データは、「第2データ値」の一例である。“10”データは、「第3データ値」の一例である。本願でいう「データ値」とは、セルトランジスタMTに保持されるデータの値を意味する。「第1データ値」、「第2データ値」、および「第3データ値」は、それらが属する閾値電圧の分布のレベルが互いに異なる。
図4に示すように、Aレベル、Bレベル、およびCレベルのセルトランジスタMTの閾値電圧は、それぞれErレベル、Aレベル、およびBレベルのセルトランジスタMTの閾値電圧よりも高い。読み出し電圧VA未満の閾値電圧を有するセルトランジスタMTは、Erレベルにあると判断される。読み出し電圧VA以上読み出し電圧VB未満の閾値電圧を有するセルトランジスタMTは、Aレベルにあると判断される。読み出し電圧VB以上読み出し電圧VC未満の閾値電圧を有するセルトランジスタMTは、Bレベルにあると判断される。読み出し電圧VC以上の閾値電圧を有するセルトランジスタMTは、Cレベルにあると判断される。読み出し電圧VA,VB,VCの各々は、読み出し電圧Vcgrと称される場合がある。電圧Vreadは、非読み出し対象のワード線WLのセルトランジスタMTの制御ゲート電極に印加される電圧である。電圧Vreadは、いずれのセルトランジスタMTの閾値電圧よりも高い。
1セルトランジスタMT当たり複数ビットのデータを保持する場合、1つのセルユニットCUのセルトランジスタMTの2ビットのうちの同じ方のビットの組は、1つのページを構成する。具体的には、上位ビットの組はアッパーページを構成し、下位ビットの組はロワーページを構成する。
また、書き込みの完了の確認(ベリファイ)のために、ベリファイ電圧AV、BV、およびCVが使用される。「ベリファイ」とは、書き込まれるセルトランジスタMTの書き込みが完了したかの確認を指す。すなわち、書き込み対象のセルトランジスタMTに接続されたワード線(選択ワード線)WLにベリファイ電圧AV、BV、またはCVが印加され、Aレベル、Bレベル、およびCレベルへと書き込まれるセルトランジスタ(選択セルトランジスタ)MTがそれぞれベリファイ電圧AV、BV、およびCV以上の大きさの閾値電圧を有していれば、当該レベルへと書き込まれるセルトランジスタMTへの書き込みが完了したと判断される。言い換えると、ベリファイでは、非選択ワード線WL(非選択セルトランジスタMT)には電圧Vreadが与えられ、選択ワード線WLにはベリファイ電圧が与えられる。その結果、所定のセル電流が流れなかった場合、選択セルトランジスタMTへの書き込みが完了したと判断される。ベリファイ電圧BVおよびCVは、それぞれベリファイ電圧AVおよびBVよりも高い。ベリファイ電圧AV,BV,CVの各々は、ベリファイ電圧Vvfと称される場合がある。
3ビット以上のデータも、ここまで記述された原理の拡張により1つのセルトランジスタMTよって保持されることが可能である。また、1セルトランジスタMT当たり1ビットのデータが保持される場合は、図4に示されたいずれか2つのレベルが使用される。
<1.2.動作>
<1.2.1.セルトランジスタへの書き込み動作>
次に、セルトランジスタMTへの書き込み動作について説明する。
図5は、メモリ装置100への書き込み動作において選択ワード線WLに印加される電圧の一部を時間に沿って示す図である。図5に示すように、書き込み動作は、複数のプログラムループを含む。各プログラムループは、プログラム、およびその他のステージ(ベリファイのステージ、書き込み未完了セルトランジスタMTの計数のステージなど)を含む。「プログラム」とは、書き込むデータ値に対応する閾値電圧を選択セルトランジスタMTに保持させるために、選択ワード線WLにプログラム電圧Vpgmを印加する動作を意味する。
ここで、第pプログラムループ(pは自然数)のプログラムにおいて選択ワード線WLに印加されるプログラム電圧Vpgmは、第p−1プログラムループのプログラムにおいて選択ワード線WLに印加されるプログラム電圧Vpgmより、例えば差ΔVpgm(または後述する差ΔVpgmL)だけ高く設定される。そして、このようなプログラムループが繰り返し実行されることで、選択ワード線WLに印加される電圧が少しずつ(差ΔVpgmずつ(またはΔVpgmLずつ))高められる。そして、各プログラムループに含まれるベリファイのステージで、選択セルトランジスタMTへの所望のデータ値の書き込みが完了したかが判定される。ベリファイのステージにおいて、選択セルトランジスタMTに所望のデータ値の書き込みが完了したと判定された場合、それ以降のプログラムループではプログラム電圧Vpgmが印加されないように書き込み動作が制御される。
差ΔVpgmは、第pプログラムループのプログラムにおいて選択ワード線WLに印加されるプログラム電圧Vpgmと、第p−1プログラムループのプログラムにおいて選択ワード線WLに印加されるプログラム電圧Vpgmとの電圧差のデフォルト値(基準値)として設定された値である。すなわち、デフォルトの差ΔVpgmは、メモリ装置100の初期状態(値が変更されていない状態)で使用される値である。差ΔVpgmは、例えば、動作管理テーブルT1に登録され、メモリコントローラ200によって参照可能である。
本実施形態では、動作管理テーブルT1には、さらに、第pプログラムループにおいて選択ワード線WLに印加される電圧と、第p−1プログラムループのプログラムにおいて選択ワード線WLに印加される電圧との電圧差の別の設定値として、差ΔVpgmLが登録されている。差ΔVpgmLは、差ΔVpgmよりも大きな値である。メモリコントローラ200は、動作管理テーブルT1を参照することで、差ΔVpgmLを知得可能である。メモリコントローラ200は、差ΔVpgmに代えて、差ΔVpgmLを用いて選択ワード線WLに印加される電圧をプログラムループ毎に高めてもよい。差ΔVpgmに比べて大きな差ΔVpgmLが用いられて選択ワード線WLに印加される電圧が高められることで、書き込みの高速化を図ることができる。
なお、書き込みの高速化は、大きな差ΔVpgmLが用いることに代えて、または加えて、プログラム電圧Vpgmの初期値を高くすることで行われてもよい。「プログラム電圧Vpgmの初期値」とは、1回目のプログラムループで選択ワード線WLに印加される電圧である。この場合、コントローラ200は、プログラム電圧Vpgmの初期値のデフォルト値に代えて、予め高く設定されたプログラム電圧Vpgmの初期値(または、プログラム電圧Vpgmの初期値のデフォルト値に対する調整値)をメモリ装置100に指示してもよい。予め高く設定されたプログラム電圧Vpgmの初期値(または、プログラム電圧Vpgmの初期値のデフォルト値に対する調整値)は、例えば、動作管理テーブルT1に登録されている。なお以下の実施形態では、書き込みの高速化について、差ΔVpgmLが用いられた例を代表して説明する。ただしこれらの説明において、差ΔVpgmLが用いられることは、プログラム電圧Vpgmの初期値を高くすることに読み替えられてもよい。
差ΔVpgmLの使用は、メモリコントローラ200によって、例えば書き込み指示に先行する調整コマンドにより指示される。なお、調整コマンドは、差ΔVpgmLの値(または差ΔVpgmと差ΔVpgmLとの差)が指定されてもよい。例えば、メモリコントローラ200は、メモリ装置100への大半の書き込みにおいて、差ΔVpgmLの使用を指示する。例えば、メモリコントローラ200は、メモリ装置100への全ての書き込みにおいて差ΔVpgmLの使用を指示してもよい。以下の記述は、いずれの書き込みも差ΔVpgmLが使用される例に基づく。
<1.2.2.ベリファイ電圧の調整>
次に、ベリファイ電圧Vvfの調整について説明する。
上述のように、例えば、差ΔVpgmに比べて大きな差ΔVpgmLが用いられて書き込みが行われる場合、各データ値に対するセルトランジスタMTの閾値電圧分布の幅が広がり、読み出しエラーが増加する場合がある。ここで、セルトランジスタMTの書き込まれやすさは、例えばワード線WLの物理的な位置に基づいてばらつきが存在する。そこで、本実施形態のメモリシステム1は、ワード線WLの物理的な位置に基づいてワード線WL毎にベリファイ電圧Vvfの値を調整することで、セルトランジスタMTの閾値電圧分布の幅が広がることを抑制する。
本実施形態では、ベリファイ電圧Vvfのデフォルト値(共通基準値)は、動作管理テーブルT1に登録されている。ベリファイ電圧Vvfのデフォルト値は、メモリ装置100の初期状態(値が変更されていない状態)で使用される値である。ベリファイ電圧Vvfのデフォルト値は、複数のワード線WL(例えば、互いに同じストリングSTRに対応する複数のワード線WL)に対して共通に設定されている(同じ値が設定されている)。例えば、ベリファイ電圧Vvfのデフォルト値は、メモリ装置100の複数の疲弊度に応じて複数設定されている。なお、ベリファイ電圧Vvfのデフォルト値は、動作管理テーブルT1に登録される場合に代えて、メモリ装置100の記憶部11aに記憶されており、シーケンサ12のレジスタ121に読み出されることで使用されてもよい。
ベリファイ電圧Vvfのデフォルト値は、上述したセルトランジスタMTのデータ保持状態であるAレベル、Bレベル、およびCレベルにそれぞれ対応するベリファイ電圧AV、BV、およびCVを示す値を含む。すなわち、ベリファイ電圧Vvfのデフォルト値は、ベリファイ電圧AVのデフォルト値(第1共通基準値)、ベリファイ電圧BVのデフォルト値(第2共通基準値)、およびベリファイ電圧CVのデフォルト値(第3共通基準値)を含む。ベリファイ電圧AVのデフォルト値は、複数のワード線WLに対して共通に設定されている。同様に、ベリファイ電圧BVのデフォルト値は、複数のワード線WLに対して共通に設定されている。ベリファイ電圧CVのデフォルト値は、複数のワード線WLに対して共通に設定されている。
メモリコントローラ200は、動作管理テーブルT1を参照することで、ベリファイ電圧Vvfのデフォルト値を知得可能である。ベリファイ電圧Vvfのデフォルト値は、メモリコントローラ200によって、後述するベリファイ電圧Vvfの調整値ΔDACの使用指示に先行して選択メモリ装置100に指示される。例えば、ベリファイ電圧Vvfのデフォルト値は、メモリコントローラ200によって、書き込み指示に先行する調整コマンドにより、選択メモリ装置100に指示される。なお上述したように、ベリファイ電圧Vvfのデフォルト値は、メモリコントローラ200からメモリ装置100に指示される場合に代えて、メモリ装置100の記憶部11aからシーケンサ12のレジスタ121に読み出されることで使用されてもよい。
図6は、本実施形態において、書き込みのためにメモリコントローラ200から選択メモリ装置100に送信される信号を時間に沿って示す。図6に示すように、メモリコントローラ200は、ベリファイ電圧Vvfに関する調整値使用指示を送信する。調整値使用指示は、コマンドZZh、および調整値ΔDACを示す信号を含む。コマンドZZhは、後続の書き込み指示での書き込みにおいて、ベリファイ電圧Vvfについて、デフォルト値とは異なる値を使用することを指示する。調整値ΔDACは、ベリファイ電圧Vvfのデフォルト値に対する調整値(後述の調整値ΔVvf)を示す。
メモリコントローラ200は、調整値ΔDACを示す信号に続いて、書き込み指示を送信する。書き込み指示は、コマンドXβh(βは1または2)、コマンド80h、アドレス信号ADD、書き込みデータD0〜Dr(rは自然数)、およびコマンドγδh(γδはYYまたは10)を含む。コマンドXβhは、書き込み対象のページを指定し、書き込み対象のページに基づいて相違する。例えばロワーページおよびアッパーページへの書き込みを示すために、それぞれコマンドX1hおよびX2hが送信される。また、1セルトランジスタMT当たり1ビットの記憶の場合、コマンドXβhは送信されない。
コマンドγδhは、書き込みの保留または実行を指示する。2ページのデータは、書き込み対象のセルユニットCUに一括して書き込まれる。このため、2ページのデータが選択メモリ装置100に送信されていなければ、書き込みの保留を指示するために、コマンドγδhの位置で、コマンドYYhが送信される。一方、2ページのデータがメモリ装置100に送信されていれば、書き込みの実行を指示するために、コマンドγδhの位置でコマンド10hが送信される。なお、セルユニットCUは、ロワーページに対する書き込みとアッパーページに対する書き込みとが分けられて行われてもよい。
図7は、調整値使用指示に後続する書き込み指示による書き込みを示し、このような書き込みでの選択ワード線WLに印加される電圧を時間に沿って示す。図7に示すように、ベリファイのステージは、ベリファイが行われるプログラムループ番号に応じて、Aレベル、Bレベル、およびCレベルの1つまたは複数についてのベリファイを含む。例えば、プログラムループ番号が小さい間は、Cレベルまで閾値電圧が上昇するセルトランジスタMTは無いため、AレベルおよびBレベルについてのベリファイが行われる。一方、プログラムループ番号が大きい間は、Aレベルへと書き込まれるセルトランジスタMTはみなベリファイをパスしているため、Aレベルについてのベリファイは行われない。
ここで、ベリファイ電圧Vvfのデフォルト値が用いられてベリファイが行われる場合、Aレベル、Bレベル、およびCレベルのためのベリファイの間、選択ワード線WLには、それぞれベリファイ電圧AV,BV,CVが印加される。本実施形態では、調整コマンドZZhは、ベリファイ電圧Vvfのデフォルト値から調整値ΔVvfを減じた値をベリファイで使用することを指示する。すなわち、本実施形態では、ベリファイ電圧Vvfのデフォルト値と、デフォルト値に対する調整値ΔVvfとが用いられることで、Aレベル、Bレベル、およびCレベルのためのベリファイの間、選択ワード線WLには、それぞれベリファイ電圧AVS,BVS,CVSが印加される。ベリファイ電圧AVS,BVS,CVSは、それぞれデフォルトのベリファイ電圧AV,BV,CVよりも小さい。
例えば、ベリファイ電圧AVSとベリファイ電圧AVとの差、ベリファイ電圧BVSとベリファイ電圧BVとの差、およびベリファイ電圧CVSとベリファイ電圧CVとの差は、いずれも調整値ΔVvfである。なお、ベリファイ電圧AVSとベリファイ電圧AVとの差、ベリファイ電圧BVSとベリファイ電圧BVとの差、およびベリファイ電圧CVSとベリファイ電圧CVとの差は、互いに異なっていてもよい。なお、ベリファイ電圧AVSとベリファイ電圧AVとの差、ベリファイ電圧BVSとベリファイ電圧BVとの差、およびベリファイ電圧CVSとベリファイ電圧CVとの差が互いに異なる場合については、図10を用いて後述する。
ここで、上述したように、セルトランジスタMTの書き込まれやすさは、例えばワード線WLの物理的な位置に基づいてばらつきが存在する。そこで、本実施形態では、ベリファイ電圧Vvfに関する調整値ΔVvfは、ワード線WLの物理的な位置に応じて設定されている。本実施形態では、ベリファイ電圧Vvfに関する調整値ΔVvfは、複数のワード線WLに対してそれぞれ設定されている。すなわち、相違する選択ワード線WLのために、値の相違するΔVvfが使用される。
図8は、第1選択ゲート線SGSLと、第2選択ゲート線SGDLとの間に位置した複数のワード線WLのアドレスと、各ワード線WLに対して個別に設定された調整値ΔVvfとを示す。図8は、1ストリングSTRに16のセルトランジスタMTが含まれ、そのセルトランジスタMTに接続された16のワード線WLに関する例を示す。以下、ワード線WL0〜WL15にそれぞれ対応する調整値ΔVvf0〜ΔVvf15との呼称が使用される。本実施形態では、ワード線WL0〜WL15は、ワード線WLN(Nは自然数)のNの値が大きくなるほど、例えば第1選択ゲート線SGSLから離れる方向に並んでいるものとする。なお、ワード線WLのアドレス(ワード線WL0〜WL15)の付け方は、上記例に限定されず、逆の順(ワード線WLN(Nは自然数)のNの値が大きくなるほど、第1選択ゲート線SGSLに近付くように並ぶ順)で付けられていてもよい。
図8に示すように、複数のワード線WLにおいて両端のワード線WL0およびWL15(上述した第1端ワード線WLE1および第2端ワード線WLE2)のための調整値ΔVvf0およびΔVvf15の値(例えば絶対値)は、調整値ΔVvf0〜ΔVvf15のなかで最大である。一方、中央のワード線WL7およびWL8(上述した中央ワード線WLC)のための調整値ΔVvf7およびΔVvf8の値(例えば絶対値)は、ΔVvf0〜ΔVvf15のなかで最小であり、例えばゼロである。
本実施形態では、ワード線WL0(第1端ワード線WLE1)に近い複数のワード線WL1,WL2,WL3のための調整値ΔVvf1,ΔVvf2,ΔVvf3は、正の値を有する。なお、調整値ΔVvf1,ΔVvf2,ΔVvf3は、負の値でもよく、または正の値と負の値の組み合わせでもよい。本実施形態(調整値ΔVvfが正の値と負の値の組み合わせでない場合)では、調整値ΔVnf0,ΔVvf1,ΔVvf2,ΔVvf3の値(例えば絶対値)は、ΔVvfN(Nは自然数)のNの値が大きくなるほど、小さくなる。同様に、ワード線WL15(第2端ワード線WLE2)に近い複数のワード線WL14,WL13,WL12のための調整値ΔVvf14,ΔVvf13,ΔVvf12は、正の値を有する。なお、調整値ΔVvf14,ΔVvf13,ΔVvf12は、負の値でもよく、または正の値と負の値の組み合わせでもよい。本実施形態では、調整値ΔVvf15,ΔVvf14,ΔVvf13,ΔVvf12の値(例えば絶対値)は、ΔVvfN(Nは自然数)のNの値が小さくなるほど、小さくなる。一方で、ワード線WL4,WL5,WL6,WL7,WL8,WL9,WL10,WL11のための調整値ΔVvf4,ΔVvf5,ΔVvf6,ΔVvf7,ΔVvf8,ΔVvf9,ΔVvf10,ΔVvf11は、例えばゼロである。
以上のような調整値ΔVvfが設定される場合、調整後のベリファイ電圧VvfSとして両端のワード線WL0およびWL15(第1端ワード線WLE1および第2端ワード線WLE2)に印加されるベリファイ電圧Vvf0,Vvf15は、ベリファイ電圧Vvf0〜Vvf15のなかで最小である。一方、調整後のベリファイ電圧VvfSとして中央のワード線WL7およびWL8(上述した中央ワード線WLC)に印加されるベリファイ電圧Vvf7,Vvf8は、ベリファイ電圧Vvf0〜Vvf15のなかで最大である。
本実施形態では、調整後のベリファイ電圧VvfSとしてワード線WL0(第1端ワード線WLE1)に近い複数のワード線WL1,WL2,WL3に印加されるベリファイ電圧Vvf1,Vvf2,Vvf3は、中央のワード線WL7およびWL8に印加されるベリファイ電圧Vvf7,Vvf8よりも低い値を有する。例えば、調整後のベリファイ電圧VvfSであるベリファイ電圧Vvf3,Vvf2,Vvf1,Vvf0は、VvfN(Nは自然数)のNの値が小さくなるほど、低くなる。同様に、調整後のベリファイ電圧VvfSとしてワード線WL15(第2端ワード線WLE2)に近い複数のワード線WL14,WL13,WL12に印加されるベリファイ電圧Vvf14,Vvf13,Vvf12は、中央のワード線WL7およびWL8に印加されるベリファイ電圧Vvf7,Vvf8よりも低い値を有する。例えば、調整後のベリファイ電圧VvfSであるベリファイ電圧Vvf12,Vvf13,Vvf14,Vvf15は、VvfN(Nは自然数)のNの値が大きくなるほど、低くなる。一方で、調整後のベリファイ電圧VvfSとしてワード線WL4,WL5,WL6,WL7,WL8,WL9,WL10,WL11に印加されるベリファイ電圧Vvf4,Vvf5,Vvf6,Vvf7,Vvf8,Vvf9,Vvf10,Vvf11は、例えば互いに同じである。
ただし、図8に示す調整値ΔVvfは、あくまで例示である。例えば、図8に示す例に代えて、ΔVvf2,ΔVvf3およびΔVvf13,ΔVvf12などは、ゼロでもよい。また、図8に示す例に代えて、ΔVvf4〜ΔVvf11の1つ以上は、ゼロではなく、正の値を有してもよい。
また、1つのストリングSTRが、上述した16のワード線WLより多いまたはより少ないワード線WLに対応する場合も同様である。すなわち、両端のワード線WLのための調整値ΔVvfが最大の値(例えば絶対値で最大の値)を有し、中央のワード線WLのための調整値ΔVvfが最小の値(例えば絶対値で最小の値)を有する。また、最端のワード線WLに近い複数のワード線WLでは、より端に近いワード線WLのための調整値ΔVvfの値(例えば絶対値)がより大きい。
本実施形態では、上記のように設定された各ワード線WLに対応する調整値ΔVvfは、対応するワード線WLと対応付けられて調整値管理テーブルT2に登録されている。メモリコントローラ200は、調整値管理テーブルT2を参照することで、各ワード線WLに対応する調整値ΔVvfを知得可能である。
図9は、調整値管理テーブルT2の内容の一例を示す図である。
図9に示すように、調整値管理テーブルT2では、複数のワード線WL(WL0〜WL15)と、それら複数のワード線WLにそれぞれ対応する複数の調整値ΔVvf(ΔVvf0〜ΔVvf15)とが対応付けられて管理されている。
図9に示す例では、各ワード線WLに対してそれぞれ1つの調整値ΔVvfが設定されている。メモリコントローラ200は、各ワード線WLに対してそれぞれ設定された1つの調整値ΔVvf(ΔVvf0〜ΔVvf15)を用いて、ベリファイ電圧AV、ベリファイ電圧BV、およびベリファイ電圧CVを調整する。この場合、ベリファイ電圧AV、ベリファイ電圧BV、およびベリファイ電圧CVの調整幅は、互いに同じである。
すなわち、この場合、各ワード線WLに印加される調整後のベリファイ電圧AVSは、ベリファイ電圧AVのデフォルト値(第1共通基準値)と、ワード線WL毎に設定された調整値ΔVvf(ΔVvf0〜ΔVvf15)とに基づき導出される。同様に、各ワード線WLに印加される調整後のベリファイ電圧BVSは、ベリファイ電圧BVのデフォルト値(第2共通基準値)と、ワード線WL毎に設定された調整値ΔVvf(ΔVvf0〜ΔVvf15)とに基づき導出される。各ワード線WLに印加される調整後のベリファイ電圧CVSは、ベリファイ電圧CVのデフォルト値(第3共通基準値)と、ワード線WL毎に設定された調整値ΔVvf(ΔVvf0〜ΔVvf15)とに基づき導出される。
この場合、ΔVvf0は、「第1調整値」の一例である。ΔVvf7は、「第2調整値」の一例である。また、ベリファイ電圧AVのデフォルト値と、ΔVvf0とに基づき調整されたベリファイ電圧AVSは、「第1ベリファイ電圧」の一例である。ベリファイ電圧AVのデフォルト値と、ΔVvf7とに基づき調整されたベリファイ電圧AVSは、「第2ベリファイ電圧」の一例である。ベリファイ電圧BVのデフォルト値と、ΔVvf0とに基づき調整されたベリファイ電圧BVSは、「第3ベリファイ電圧」の一例である。ベリファイ電圧BVのデフォルト値と、ΔVvf7とに基づき調整されたベリファイ電圧BVSは、「第4ベリファイ電圧」の一例である。
これに代えて、ベリファイ電圧AVのための調整値ΔVvfの組、ベリファイ電圧BVのための調整値ΔVvfの組、およびベリファイ電圧CVのための調整値ΔVvfの組は、相違する値が設定されてもよい。この例は、図10に示される。
図10は、調整値管理テーブルT2の内容の別の一例を示す図である。
図10に示す例では、各ワード線WLに対するΔVvfとして、ベリファイ電圧AVのための調整値ΔVvfA(ΔVvfA0〜ΔVvfA15)、ベリファイ電圧BVのための調整値ΔVvfB(ΔVvfB0〜ΔVvfB15)、およびベリファイ電圧CVのための調整値ΔVvfC(ΔVvfC0〜ΔVvfC15)が設定されている。調整値ΔVvfA、調整値ΔVvfB、および調整値ΔVvfCは、互いに異なる値を有し得る。この場合、ベリファイ電圧AV、ベリファイ電圧BV、およびベリファイ電圧CVの調整幅は、互いに異なる場合がある。
すなわち、この場合、各ワード線WLに印加される調整後のベリファイ電圧AVSは、ベリファイ電圧AVのデフォルト値(第1共通基準値)と、ベリファイ電圧AVに対応してワード線WL毎に設定された調整値ΔVvfA(ΔVvfA0〜ΔVvfA15)とに基づき導出される。各ワード線WLに印加される調整後のベリファイ電圧BVSは、ベリファイ電圧BVのデフォルト値(第2共通基準値)と、ベリファイ電圧BVに対応してワード線WL毎に設定された調整値ΔVvfB(ΔVvfB0〜ΔVvfB15)とに基づき導出される。各ワード線WLに印加される調整後のベリファイ電圧CVSは、ベリファイ電圧CVのデフォルト値(第3共通基準値)と、ベリファイ電圧CVに対応してワード線WL毎に設定された調整値ΔVvfC(ΔVvfC0〜ΔVvfC15)とに基づき導出される。
この場合、ΔVvfA0は、「第1調整値」の一例である。ΔVvfA7は、「第2調整値」の一例である。ΔVvfB0は、「第3調整値」の一例である。ΔVvfB7は、「第4調整値」の一例である。また、ベリファイ電圧AVのデフォルト値と、ΔVvfA0とに基づき調整されたベリファイ電圧AVSは、「第1ベリファイ電圧」の一例である。ベリファイ電圧AVのデフォルト値と、ΔVvfA7とに基づき調整されたベリファイ電圧AVSは、「第2ベリファイ電圧」の一例である。ベリファイ電圧BVのデフォルト値と、ΔVvfB0とに基づき調整されたベリファイ電圧BVSは、「第3ベリファイ電圧」の一例である。ベリファイ電圧BVのデフォルト値と、ΔVvfB7とに基づき調整されたベリファイ電圧BVSは、「第4ベリファイ電圧」の一例である。
これらベリファイ電圧AVのための調整値ΔVvfAの組、ベリファイ電圧BVのための調整値ΔVvfBの組、およびベリファイ電圧CVのための調整値ΔVvfCの組のそれぞれは、例えば、図8で説明した調整値ΔVvfと略同じ傾向を有する。すなわち、調整値ΔVvfA,ΔVvfB,ΔVvfCの各組において、両端のワード線WL0およびWL15(上述した第1端ワード線WLE1および第2端ワード線WLE2)のための調整値ΔVvf0およびΔVvf15は、調整値ΔVvf0〜ΔVvf15のうちで最大である。一方、中央のワード線WL7およびWL8(上述した中央ワード線WLC)のための調整値ΔVvf7およびΔVvf8は、ΔVvf0〜ΔVvf15のうちで最小であり、例えばゼロである。また、端のワード線WL(ワード線WL0,WL15)に近い複数のワード線WLにおいて、端に近いワード線WLがより大きな調整値ΔVvfを有する。
<1.2.3.メモリシステムの動作>
次に、本実施形態のメモリシステム1の動作のフローについて説明する。
図11は、メモリシステム1の動作のフローの一例を示すフローチャートである。図11は、説明が必要以上に複雑となることを避けるために、ある1つのメモリ装置(選択メモリ装置)100への書き込みに関連する処理を中心に示す。なお、ベリファイ電圧Vvfのデフォルト値は、メモリコントローラ200によって選択メモリ装置100に予め指示されているものとする。これに代えて、ベリファイ電圧Vvfのデフォルト値は、例えば、メモリ装置100のレジスタ121に予め格納されていてもよいし、または、メモリ装置100の記憶部11aから読み出されてレジスタ121に保持されることで、メモリ装置100が参照可能であってもよい。
まず、メモリコントローラ200は、選択メモリ装置100に差ΔVpgmLの使用を指示する(S101)。次に、メモリコントローラ200は、図6に示すDQ信号を選択メモリ装置100に送ることで、選択メモリ装置100に調整値ΔVvfを使用した書き込みを指示する(S102)。これにより、選択メモリ装置100は、差ΔVpgmLを使用してプログラムを行い、調整値ΔVvfを使用してベリファイを行う(S103)。すなわち、選択メモリ装置100は、ベリファイ電圧Vvfのデフォルト値と、各ワード線WLに対応する調整値ΔVvfとに基づき、調整後のベリファイ電圧VvfS(AVS,BVS,CVS)の値を導出する。そして、選択メモリ装置100は、調整後のベリファイ電圧VvfSを用いてベリファイを行う。なお、メモリコントローラ200の上記制御は、例えば、全体制御部26によって実行される。また、選択メモリ装置100の上記制御は、例えば、シーケンサ12によって実行される。
<1.3.利点>
本実施形態によれば、メモリシステム1の書き込みの高速化と、書き込みの好適化による読み出しエラーの低減の両方が実現される。詳細は以下の通りである。
書き込み後のセルトランジスタMTの閾値電圧の各レベルについての分布の形状(幅)は、より狭いことが望ましい。各分布がより狭ければ、隣り合う分布の重なりがより抑制され、読み出しエラーが抑制されるからである。書き込み後の分布幅をより小さくするためには、プログラム電圧Vpgmの大きさはより小さい方が望ましい。大きな値のプログラム電圧Vpgmが印加されると、閾値電圧が大きく上昇するからである。例えば、あと1回のプログラム電圧Vpgmの印加でベリファイ電圧Vvfを超える閾値電圧を有するセルトランジスタMTは、次に印加されるプログラム電圧Vpgmの値が大きい場合、過剰に大きな閾値電圧を有する状態に至るためである。また、差ΔVpgmに着目して考えると、書き込み後の分布幅をより小さくするためには、差ΔVpgmの大きさはより小さい方が望ましい。大きな値の差ΔVpgmを伴う1回のプログラム電圧Vpgmの印加により、閾値電圧が大きく上昇するからである。例えば、あと1回のプログラム電圧Vpgmの印加でベリファイ電圧Vvfを超える閾値電圧を有するセルトランジスタMTは、大きな値の差ΔVpgmを付加されたプログラム電圧Vpgmの印加により、過剰に大きな閾値電圧を有する状態に至る。一方で、差ΔVpgmの値がより小さいと、書き込みの時間がより長い。このトレードオフを考慮して、差ΔVpgmのデフォルトの値が決定されている。
しかしながら、デフォルト値の差ΔVpgmの使用では、メモリシステム1に要求される性能を満たせない場合がある。すなわち、メモリシステム1に要求される性能は非常に高く、メモリ装置100の性能向上のみでは、メモリシステム1に要求される性能を満たすことができない場合がある。この課題に対処するために、メモリコントローラ200によるメモリ装置100の制御を通じて、メモリシステム1の動作の速度が上げられる場合がある。具体的には、図5を参照して記述されたように、メモリコントローラ200は、差ΔVpgmLの使用をメモリ装置100に指示して、メモリ装置100での書き込みの速度を上げている。こうすることによってメモリシステム1の書き込み速度が向上されることが可能である。
一方で、上記のように、差ΔVpgmの値がより大きいと、書き込み後の各レベルでの閾値電圧の分布の幅は広く(特に、高電位側の裾が広く)、ひいては、読み出しエラーが生じる可能性もより高い。ここで、分布の幅が広くなる程度は、ワード線WLの位置に依存する場合がある。具体的には、書き込み対象のセルトランジスタMTの周囲により多くの別のセルトランジスタMT(例えば、多くのErレベルのセルトランジスタMT)が有ると、書き込み対象のセルトランジスタMTは、より多くの影響を受けて、書き込まれにくい(隣接セル効果、Yupin効果)。一方、ストリングSTRのより端に位置するセルトランジスタMTは、相対的に書き込まれやすく、ストリングSTRのなかで最端に位置するセルトランジスタMTは特に書き込まれやすい。
書き込まれ易さの違いにより、全てのセルトランジスタMTが共通のベリファイ電圧Vvfを使用して書き込まれると、より書き込まれ易いセルトランジスタMTは、ある同じレベルへと書き込まれたとしても、通常の書き込まれやすさのセルトランジスタMTよりも高い閾値電圧を有し得る。このことが、図12の上段に示される。図12の上段は、閾値電圧の1つの分布を示しており、端のワード線WL(例えば第1端ワード線WLE1)と接続されたセルトランジスタMTに関する閾値電圧の分布(実線)と、中央のワード線WL(例えば中央ワード線WLC)と接続されたセルトランジスタMTに関する閾値電圧の分布(破線)を示す。図12の上段に示されるように、端のワード線WLについての閾値電圧の分布は、中央のワード線WLの閾値電圧の分布よりも大きな閾値電圧(例えば、高電位側に膨らんだ閾値電圧)を有する。この結果、閾値電圧の分布の平均的な形状は幅広くなり(例えば、高電位側の裾が広くなり)、ひいては、読み出しエラーの増加に繋がる。よって、推定されたより良い読み出し電圧Vcgrが使用されても、読み出しエラーは十分に改善されない場合がある。より良い読み出し電圧Vcgrの推定は、分布の平均的な形状に依存するからである。
一方で、本実施形態によれば、メモリコントローラ200は、複数の調整値ΔVvfを用いて、ワード線WL毎にベリファイ電圧Vvfの電圧レベルを調整する。これにより、ストリングSTRにおいて端のワード線WL(および端に近いワード線WL)に印加されるベリファイ電圧Vvfの値は小さくなる。このため、端に近いワード線WL(および端に近いワード線WL)についての閾値電圧の分布は、中央のワード線WLの閾値電圧の分布により近い閾値電圧を有する。この結果、分布の平均的形状の幅は狭くなり(特に、高電位側の裾が狭くなり)、読み出しエラーが減少する。しかも、これは、差ΔVpgmLの使用によるメモリシステム1の書き込みの高速化と両立する。読み出しエラーが低減すると、メモリシステム1の寿命および歩留まりが上昇する。
以上を纏めると、本実施形態のメモリコントローラ200は、第1セルトランジスタMTに第1データ値の書き込みが完了したかを判定する場合に、複数の調整値から選択された第1調整値(例えば、ΔVvf0)をメモリ装置100に送ることで、第1ベリファイ電圧を第1ワード線WL(例えば、ワード線WL0)に印加することをメモリ装置100に指示する。また、メモリコントローラ200は、第2セルトランジスタMTに前記第1データ値の書き込みが完了したかを判定する場合に、前記複数の調整値から選択された第2調整値(例えば、ΔVvf7)をメモリ装置100に送ることで、前記第1ベリファイ電圧とは電圧レベルが異なる第2ベリファイ電圧を第2ワード線WL(例えば、ワード線WL7)に印加することをメモリ装置100に指示する。ここで「電圧レベル」とは、ベリファイ電圧として印加される電圧の大きさ(電圧値)を意味し、セルトランジスタMTの閾値電圧の分布のレベル(Erレベル、Aレベル、Bレベル、およびCレベル)とは異なる意味で用いられている。例えば、ベリファイ電圧の「電圧レベル」は、セルトランジスタMTの閾値電圧の分布のレベル(Aレベル、Bレベル、およびCレベル)の各々に対して複数設定される。すなわち、例えばベリファイ電圧AVの電圧レベルは、閾値電圧のAレベルの分布に対して複数設定される。また、「電圧レベルが異なる」とは、例えば電圧レベルを定めるために用いられるパラメータが異なることで、ワード線WLに印加される電位として電位生成回路13によって生成される電位が異なること、またはドライバ14によって選択される電位が異なることを意味する。また、「第Nセルトランジスタに第Mデータ値の書き込みが完了したかを判定する場合(N,Mは自然数)」とは、「ベリファイ」という動作と、セルトランジスタMTの電荷蓄積層に電子を注入する動作(上述のプログラム)とを区別するために表現されたものである。このため、「第Nセルトランジスタに第Mデータ値の書き込みが完了したかを判定する場合(N,Mは自然数)」とは、「セルトランジスタMTの電荷蓄積層に注入された電子の量を判定する場合」、「セルトランジスタMTの閾値電圧を判定する場合」、「セルトランジスタMTの電荷蓄積層に電子を注入する動作と同じプログラムループのなかでワード線WLに電圧が印加される場合」などと読み替えられてもよい。
本実施形態では、メモリコントローラ200は、第1セルトランジスタMTに前記第1データ値の書き込みが完了したかを判定する場合に、前記第1調整値と第1共通基準値(例えば、ベリファイ電圧AVのデフォルト値)とに基づいて電圧レベルが調整された前記第1ベリファイ電圧を第1ワード線WLに印加することをメモリ装置100に指示する。また、メモリコントローラ200は、第2セルトランジスタMTに前記第1データ値の書き込みが完了したかを判定する場合に、前記第2調整値と前記第1共通基準値とに基づいて電圧レベルが調整された前記第2ベリファイ電圧を第2ワード線WLに印加することをメモリ装置100に指示する。なお本願でいう「調整値と共通基準値とに基づいて電圧レベルが調整されたベリファイ電圧をワード線に印加することをメモリ装置に指示する」とは、調整値と共通基準値とに基づいて電圧レベルが調整されたベリファイ電圧の値がメモリコントローラ200からメモリ装置100に送られることで上記指示が成される場合に限定されず、第1の実施形態で説明したように、ベリファイ電圧Vvfの調整値ΔVvfがメモリコントローラ200からメモリ装置100に送られることで上記指示が成される場合も含む。
なお、互いに異なる第1ベリファイ電圧および第2ベリファイ電圧を第1ワード線および第2ワードに印加することは、メモリコントローラ200が1つまたは複数の調整値をメモリ装置100に送ることで、第1ベリファイ電圧および第2ベリファイ電圧を第1ワード線および第2ワードに印加することを指示することによって実現される場合に限定されない。例えば、コントローラ200は、各調整値とベリファイ電圧Vvfのデフォルト値とに基づき、調整後の各ベリファイ電圧VvfSの値(調整値を用いて得られた値)を導出し、導出された各ベリファイ電圧VvfSの値をメモリ装置100に送ることで、前記第1ベリファイ電圧および前記第2ベリファイ電圧を前記第1ワード線および前記第2ワードに印加することをメモリ装置100に指示してもよい。
また、第1の実施形態の構成は、複数のワード線WLが平面状に並べられたメモリ装置100(いわゆる二次元NANDメモリ)に限定されない。第1の実施形態の構成は、第2の実施形態で記述されるような、複数のワード線WLが立体状に積層されたメモリ装置100(いわゆる三次元NANDメモリ)に適用されてもよい。
(第2の実施形態)
次に、第2の実施形態について説明する。本実施形態では、セルトランジスタMTの寸法に応じてベリファイ電圧Vvfの調整値ΔVvfが設定される点で第1の実施形態とは異なる。なお、以下に説明する以外の構成は、第1の実施形態と同様である。
<2.1.構成(構造)>
<2.1.1.セルアレイ>
図13は、本実施形態のメモリセルアレイ11の要素および接続の例を示し、ブロックBLK0の要素および接続、ならびに関連する要素を示す図である。本実施形態のメモリセルアレイ11は、複数のワード線WLが立体状に積層されたメモリ装置100(いわゆる三次元NAND)である。
図13に示すように、各ブロックBLKは複数の(例えば4つの)ストリングユニットSU(SU0〜SU3)を含む。m(mは自然数)本のビット線BL0〜BLm−1の各々は、各ブロックBLKにおいて、4つのストリングユニットSU0〜SU3の各々からの1つのストリングSTRと接続されている。各ストリングSTRは、1つの第1選択ゲートトランジスタST、複数(例えば8つ)のセルトランジスタMT、および1つの第2選択ゲートトランジスタDT(DT0〜DT3)を含む。第1選択ゲートトランジスタST、セルトランジスタMT、および第2選択ゲートトランジスタDTは、この順で、ソース線CELSRCと1つのビット線BLとの間に直列に接続されている。
相違する複数のビット線BLとそれぞれ接続された複数のストリングSTRは1つのストリングユニットSUを構成する。各ストリングユニットSUにおいて、セルトランジスタMT0〜MT7の制御ゲート電極は、ワード線WL0〜WL7とそれぞれ接続されている。さらに、各ブロックBLKにおいて、相違するストリングユニットSTR中の同じアドレスのワード線WLも相互に接続されている。
選択ゲートトランジスタDT0〜DT3はストリングユニットSU0〜SU3にそれぞれ属する。各α(αは0または3以下の自然数)について、ストリングユニットSUαの複数のストリングSTRの各々の選択ゲートトランジスタDTαの制御ゲート電極は、選択ゲート線SGDLαに接続されている。選択ゲートトランジスタSTの制御ゲート電極は、選択ゲート線SGSLに接続されている。
<2.1.2.セルアレイの物理的構造>
図14は、本実施形態のメモリセルアレイ11の一部の要素を示す斜視断面図である。図14に示すように、メモリセルアレイ11は、半導体基板111と、半導体基板111上に積層された積層体112と、複数のピラー(メモリピラー)113とを含む。
半導体基板111は、「基板」の一例である。半導体基板111は、積層体112が積層されるベースとなる部材を意味する。半導体基板111は、第1の実施形態と同様に、「ベース」または「支持体」などと称されてもよい。
積層体112は、複数の導電層112aと、複数の絶縁層112bとを含む。複数の導電層112aと、複数の絶縁層112bとは、半導体基板111の厚さ方向に交互に積層されている。各導電層112aは、ワード線WL、第1選択ゲート線SGSL、または第2選択ゲート線SGDLとして機能する。ここで、「第1方向Z」と、「第2方向X」とについて定義する。第1方向Zは、複数の導電層112aと複数の絶縁層112bとが交互に積層された方向である。第2方向Xは、第1方向Zとは略直交する方向である。
複数のピラー113は、積層体112の内部を第1方向Zに延びている。ピラー113は、コア絶縁層と、コア絶縁層の外周側に設けられた半導体層とを有する。本実施形態では、セルトランジスタMTは、ピラー113とワード線WLとの交差部に設けられている。また、第1選択ゲートトランジスタSTは、ピラー113と第1選択ゲート線SGSLとの交差部に設けられている。第2選択ゲートトランジスタDTは、ピラー113と第2選択ゲート線SGDLとの交差部に設けられている。
図15は、本実施形態のメモリセルアレイ11を示す断面図である。図15では、説明の便宜上、絶縁層112bの図示は省略している。図15に示すように、ピラー113は、例えば製造上の理由により、第1方向Zに沿って進むに従い徐々に細くなる。例えば、ピラー113は、半導体基板111に近付くに従い徐々に細くなる。このため、複数のセルトランジスタMTの第2方向Xの寸法(以下、単に「寸法」と称する)は、ピラー113の直径に応じて異なる。例えば、セルトランジスタMTの寸法は、当該セルトランジスタMTが隣接するピラー113の直径が細いほど、小さい。セルトランジスタMTの寸法が小さいと、対応するワード線WLに同じ電圧が印加された場合でも、セルトランジスタMTに生じる電界は大きくなる。
<2.2.動作>
<2.2.1.ベリファイ電圧の調整>
本実施形態では、ベリファイ電圧Vvfに関する調整値ΔVvfは、ワード線WLが接続されたセルトランジスタMTの第2方向Xの寸法に応じて設定されている。言い換えると、ベリファイ電圧Vvfに関する調整値ΔVvfは、第1方向Zに関する基準位置(例えば、半導体基板111のある表面)と各ワード線WLとの間の第1方向Zの距離に応じて設定されている。
図16は、複数のワード線WLのアドレスと、各ワード線WLに対応する調整値ΔVvfとを示す。なお、複数のワード線WLは、1ストリングSTRに対応する複数のワード線でもよく、複数のストリングSTRに対応する複数のワード線でもよい。複数のワード線WLは、第1方向Zに並んでいる。図16は、16のワード線WLを含む例を示す。ただし、ワード線WLの数は、上記例に限定されない。本実施形態では、ワード線WL0〜WL15は、ワード線WLN(Nは自然数)のNの値が大きくなるほど、半導体基板111から離れている。ワード線WL0〜WL15は、ワード線WLN(Nは自然数)のNの値が大きくなるほど、ワード線WLが接続されたセルトランジスタMTの寸法が徐々に大きくなる。なお、ワード線WLのアドレス(ワード線WL0〜WL15)の付け方は、上記例に限定されず、逆の順に付けられてもよい。すなわち、ワード線WL0〜WL15は、ワード線WLN(Nは自然数)のNの値が大きくなるほど、半導体基板111の近くに位置してもよい。この場合は、ワード線WL0〜WL15は、ワード線WLN(Nは自然数)のNの値が大きくなるほど、ワード線WLが接続されたセルトランジスタMTの寸法が徐々に小さくなる。
本実施形態では、ワード線WL0〜WL15に接続された複数のセルトランジスタMTのなかでは、ワード線WL0に接続されたセルトランジスタMTの寸法が最も小さい。また、ワード線WL0〜WL15に接続された複数のセルトランジスタMTのなかでは、ワード線WL15に接続されたセルトランジスタMTの寸法が最も大きい。本実施形態では、ワード線WL0は、「第1ワード線」の一例である。また、ワード線WL0に接続されたセルトランジスタMTは、「第1セルトランジスタ」の一例である。一方で、ワード線WL15は、「第2ワード線」の一例である。また、ワード線WL15に接続されたセルトランジスタMTは、「第2セルトランジスタ」の一例である。ただし、第1ワード線および第2ワード線は、ワード線WL0〜WL15のいずれでもよい。
図16に示すように、本実施形態では、調整値ΔVvf0〜ΔVvf15のなかで、最も寸法が小さいセルトランジスタMTに接続されたワード線WL0のための調整値ΔVvf0が最も大きい。一方で、調整値ΔVvf0〜ΔVvf15のなかで、最も寸法が大きいセルトランジスタMTに接続されたワード線WL15のための調整値ΔVvf15が最も小さい。本実施形態では、ΔVvf0〜ΔVvf15の値(例えば絶対値)は、ΔVvfN(Nは自然数)のNの値が大きくなるほど(すなわち、対応するワード線WLの位置が半導体基板111から遠くなるほど)、小さくなる。これら調整値ΔVvf0〜ΔVvf15は、調整値管理テーブルT2に登録されている。
以上のような調整値ΔVvfが設定される場合、調整後のベリファイ電圧VvfSとして複数のワード線WLのなかで最も寸法が小さいセルトランジスタMTに接続されたワード線WL0に印加されるベリファイ電圧Vvf0は、ベリファイ電圧Vvf0〜Vvf15のなかで最小である。一方、調整後のベリファイ電圧VvfSとして複数のワード線WLのなかで最も寸法が大きいセルトランジスタMTに接続されたワード線WL15に印加されるベリファイ電圧Vvf15は、ベリファイ電圧Vvf0〜Vvf15のなかで最大である。また、調整後のベリファイ電圧VvfSであるベリファイ電圧Vvf0〜Vvf15は、VvfN(Nは自然数)のNの値が大きくなるほど(すなわち、対応するワード線WLの位置が半導体基板111から遠くなるほど)、高くなる。
<2.3.利点>
本実施形態のように、ピラー113の直径が一定でなく、複数のセルトランジスタMTの寸法が互いに異なる場合、対応するワード線WLに同じ電圧が印加されると、セルトランジスタMTに生じる電界が異なる。例えば、寸法が小さなセルトランジスタMTは、相対的に電界が生じやすく、相対的に書き込まれやすい。一方で、寸法が大きなセルトランジスタMTは、相対的に電界が生じにくく、相対的に書き込まれにくい。このため、全てのセルトランジスタMTが共通のベリファイ電圧Vvfを使用して書き込まれると、より書き込まれやすいセルトランジスタMTは、ある同じレベルへと書き込まれたとしても、通常の書き込まれやすさのセルトランジスタMTよりも高い閾値電圧を有し得る。
そこで、本実施形態では、より寸法が小さなセルトランジスタMTに接続されたワード線WLに印加されるベリファイ電圧Vvfの値がより小さくなるようにベリファイ電圧Vvfの値が調整される。このため、寸法が小さなセルトランジスタMTに接続されたワード線WLについての閾値電圧の分布は、寸法が大きなセルトランジスタMTに接続されたワード線WLの閾値電圧の分布により近い閾値電圧を有する。この結果、分布の平均的形状の幅は狭くなり(特に、高電位側の裾が狭くなり)、読み出しエラーが減少する。これにより、第1の実施形態と同様に、メモリシステム1の寿命および歩留まりが上昇する。
(第2の実施形態の変形例)
次に、第2の実施形態の一つの変形例について説明する。本変形例では、メモリピラー113に複数段の傾斜部が設けられている点で第2の実施形態とは異なる。なお、以下に説明する以外の構成は、第2の実施形態と同様である。
図17は、本実施形態のメモリセルアレイ11を示す断面図である。図17では、説明の便宜上、絶縁層112bの図示は省略している。本実施形態では、メモリピラー113は、複数段の傾斜部を有する。例えば、メモリピラー113は、複数段の傾斜部として、第1部分113aと、第2部分113bとを有する。第1部分113aおよび第2部分113bは、第1方向Zで互いに重なり、互いに接続されている。なお、第1部分113aおよび第2部分113bは、互いに接続されていなくてもよい。
メモリピラー113は、積層体112に対する穴形成が複数回に分けて行われることで第1部分113aおよび第2部分113bを有する。すなわち、第1部分113aは、積導体112が途中まで積層された状態で積層体112に穴が設けられ、その穴の内部にメモリピラー113の材料が与えられることで形成されている。一方で、第2部分113bは、メモリピラー113の第1部分113aが積層体112に形成された後に積層体112の残りの部分の積層が行われた状態で積層体112に穴が設けられ、その穴の内部にメモリピラー113の材料が与えられることで形成されている。
以上のような構成のメモリピラー113では、第1部分113aおよび第2部分113bの各々は、第1方向Zに沿って進むに従い徐々に細くなる。例えば、第1部分113aおよび第2部分113bの各々は、半導体基板111に近付くに従い徐々に細くなる。この場合、第1部分113aと第2部分113bとの間(境界部、接続部)では、メモリピラー113の直径が大きくなる部分が存在する。
本実施形態では、複数のワード線WLは、第1ワード線セットWLS1と、第2ワード線セットWLS2とを有する。第1ワード線セットWLS1に属するワード線WL(WL0〜WL15)は、メモリピラー113の第1部分113aに対応して配置されている。すなわち、第1ワード線セットWLS1に属するワード線WL(WL0〜WL15)は、これらワード線WLとメモリピラー113の第1部分113aとの間にセルトランジスタMTを形成している。一方で、第2ワード線セットWLS2に属するワード線WL(WL16〜WL31)は、メモリピラー113の第1部分113bに対応して配置されている。すなわち、第2ワード線セットWLS2に属するワード線WL(WL16〜WL31)は、これらワード線WLとメモリピラー113の第1部分113bとの間にセルトランジスタMTを形成している。ワード線WL0〜WL15は、ワード線WLN(Nは自然数)のNの値が大きくなるほど、ワード線WLが接続されたセルトランジスタMTの寸法が徐々に大きくなる。同様に、ワード線WL16〜WL31は、ワード線WLN(Nは自然数)のNの値が大きくなるほど、ワード線WLが接続されたセルトランジスタMTの寸法が徐々に大きくなる。ただし、ワード線WLの数は、上記例に限定されない。なお、ワード線WLのアドレス(ワード線WL0〜WL31)の付け方は、上記例に限定されず、逆の順(半導体基板111に近付くほど、ワード線WLN(Nは自然数)のNが大きくなる順)に付けられていてもよい。また、第1ワード線セットWLS1におけるワード線WLのアドレス(ワード線WL0〜WL15)を付ける順序と、第1ワード線セットWLS2におけるワード線WLのアドレス(ワード線WL16〜WL31)を付ける順序は、逆の方向でもよい。
図18に示すように、本実施形態では、調整値ΔVvf0〜ΔVvf15が、第2の実施形態の調整値ΔVvf0〜ΔVvf15と略同じ傾向で設定されている。同様に、調整値ΔVvf16〜ΔVvf31が、第2の実施形態の調整値ΔVvf0〜ΔVvf15と略同じ傾向で設定されている。
このような構成によれば、メモリピラー113が複数段の傾斜部を有する場合であっても、第2の実施形態と同様に、複数のセルトランジスタMTの寸法差による影響を抑制することができ、メモリシステム1の寿命および歩留まりを上昇させることができる。また、複数段の傾斜部を有するメモリピラー113毎の書き込み特性ばらつきを軽減することができる。
(第3の実施形態)
次に、第3の実施形態について説明する。本実施形態では、セルトランジスタMTの疲弊度に応じてベリファイ電圧Vvfの調整値ΔVvfが動的に変更される点で第1の実施形態とは異なる。なお、以下に説明する以外の構成は、第1の実施形態と同様である。
<3.1.構成(構造)>
本実施形態のメモリシステム1の構成は、第1の実施形態または第2の実施形態のメモリシステム1の構成と同様である。ただし、本実施形態のメモリシステム1の構成は、第1の実施形態および第2の実施形態のメモリシステム1の構成とは異なってもよい。
<3.2.動作>
<3.2.1.疲弊度の判定>
本実施形態では、メモリコントローラ200(例えば、メモリコントローラ200の全体制御部26)は、各ブロックBLKの疲弊度を判定する。例えば、メモリコントローラ200は、各ブロックBLKの疲弊度として、各ブロックBLKに含まれる複数のセルトランジスタMTの平均疲弊度を判定する。「平均疲弊度」とは、複数のセルトランジスタMTの疲弊度の平均値を意味する。
疲弊度は、例えば、書き込み回数であるが、これに代えて、読み出し回数でもよく、消去回数でもよく、メモリ装置100の温度(またはメモリ装置100の内部の任意の要素の温度、メモリコントローラ200が実装される基板の温度などでもよい)でもよく、その他の指標でもよい。セルトランジスタMTに関する書き込み回数、読み出し回数、消去回数などは、メモリ装置100の動作ログの一部としてメモリ装置100の記憶部11aに記憶されている。メモリコントローラ200は、メモリ装置100の記憶部11aに記憶された動作ログを参照することで、セルトランジスタMTに関する書き込み回数、読み出し回数、消去回数などの情報を取得することができる。
なお、平均疲弊度の算出対象となるセルトランジスタMTは、ブロックBLKに含まれる一部のセルトランジスタMTでもよく、全てのセルトランジスタでもよい。なお、メモリコントローラ200は、ブロックBLK毎の疲弊度に代えて、メモリセルアレイ11毎の疲弊度、または選択メモリ装置100毎の疲弊度を判定してもよい。以下では、メモリコントローラ200が選択ブロックBLKの疲弊度を判定する例を代表として説明する。
<3.2.2.ベリファイ電圧の調整>
本実施形態では、ベリファイ電圧Vvfに関する調整値ΔVvfは、選択ブロックBLKの疲弊度(複数のセルトランジスタMTの平均疲弊度)毎に、異なる値が設定されている。
図19は、本実施形態の調整値管理テーブルT2では、複数の疲弊度範囲(第1疲弊度範囲、第2疲弊度範囲、…)と、複数の疲弊度範囲に対してそれぞれ設定されたΔVvfの組とが対応付けられて管理されている。例えば、第1疲弊度範囲については、複数のワード線WL(WL0,WL1,…)に対して、調整値ΔVvf(ΔVvf0,ΔVvf1,…)が設定されている。同様に、第2疲弊度範囲については、複数のワード線WL(WL0,WL1,…)に対して、調整値ΔVvf’(ΔVvf0’,ΔVvf1’,…)が設定されている。第3疲弊度範囲については、複数のワード線WL(WL0,WL1,…)に対して、調整値ΔVvf’ ’(ΔVvf0’ ’,ΔVvf1’ ’,…)が設定されている。
本実施形態では、第2疲弊度範囲は、第1疲弊度範囲と比べて、選択ブロックBLKの疲弊度(複数のセルトランジスタMTの平均疲弊度)が高い。また、第3疲弊度範囲は、第2疲弊度範囲と比べて、選択ブロックBLKの疲弊度(複数のセルトランジスタMTの平均疲弊度)がさらに高い。
そして、第2疲弊度範囲についての調整値ΔVvf’(ΔVvf0’,ΔVvf1’,…)は、第1疲弊度範囲についての調整値ΔVvf(ΔVvf0,ΔVvf1,…)と比べて小さい。すなわち、第2疲弊度範囲において選択ワード線WLに印加される調整後のベリファイ電圧VvfSは、第1疲弊度範囲において選択ワード線WLに印加される調整後のベリファイ電圧VvfSと比べて高い。
この場合、例えば、ベリファイ電圧AVのデフォルト値と、調整値ΔVvf0とに基づいて導出されたベリファイ電圧AVSは、「第1ベリファイ電圧」の一例である。一方で、ベリファイ電圧AVのデフォルト値と、調整値ΔVvf0’とに基づいて導出されたベリファイ電圧AVSは、「第5ベリファイ電圧」の一例である。
同様に、第3疲弊度範囲についての調整値ΔVvf’ ’(ΔVvf0’ ’,ΔVvf1’ ’,…)は、第2疲弊度範囲についての調整値ΔVvf’(ΔVvf0’,ΔVvf1’,…)と比べて小さい。すなわち、第3疲弊度範囲において選択ワード線WLに印加される調整後のベリファイ電圧VvfSは、第2疲弊度範囲において選択ワード線WLに印加される調整後のベリファイ電圧VvfSと比べて高い。
なお、第1疲弊度範囲についての複数の調整値ΔVvf(ΔVvf0,ΔVvf1,…)は、互いに同じでもよく相違してもよい。同様に、第2疲弊度範囲についての複数の調整値ΔVvf’(ΔVvf0’,ΔVvf1’,…)は、互いに同じでもよく相違してもよい。第3疲弊度範囲についての複数の調整値ΔVvf’ ’(ΔVvf0’ ’,ΔVvf1’ ’,…)は、互いに同じでもよく相違してもよい。
本実施形態では、メモリコントローラ200は、選択ブロックBLKの疲弊度(複数のセルトランジスタMTの平均疲弊度)が第1疲弊度範囲に含まれると判定した場合、第1疲弊度範囲に対応して設定された調整値ΔVvf(ΔVvf0,ΔVvf1,…)を用いてベリファイ電圧Vvfを調整することを選択メモリ装置100に指示する。同様に、メモリコントローラ200は、選択ブロックBLKの疲弊度(複数のセルトランジスタMTの平均疲弊度)が第2疲弊度範囲に含まれると判定した場合、第2疲弊度範囲に対応して設定された調整値ΔVvf’(ΔVvf0’,ΔVvf1’,…)を用いてベリファイ電圧Vvfを調整することを選択メモリ装置100に指示する。メモリコントローラ200は、選択ブロックBLKの疲弊度(複数のセルトランジスタMTの平均疲弊度)が第3疲弊度範囲に含まれると判定した場合、第3疲弊度範囲に対応して設定された調整値ΔVvf’ ’(ΔVvf0’ ’,ΔVvf1’ ’,…)を用いてベリファイ電圧Vvfを調整することを選択メモリ装置100に指示する。
<3.3.作用>
セルトランジスタMTは、疲弊が進んでいない状態では、ベリファイ電圧Vvfの電圧レベルを下げて、疲弊が進みにくいようにすることが好ましい。一方で、セルトランジスタMTは、疲弊が進んだ場合、書き込まれたデータが失われやすくなる。そのため、セルトランジスタMTは、疲弊が進んだ状態では、ベリファイ電圧Vvfの電圧レベルを上げる(電圧レベルをデフォルト値に近付ける)ことで、セルトランジスタMTの閾値電圧を上げることが好ましい場合がある。
そこで、本実施形態では、疲弊が小さな状態において選択ワード線WLに印加されるベリファイ電圧Vvfの値を小さくするようにベリファイ電圧Vvfが調整される。これにより、セルトランジスタMTの疲弊を進みにくくすることができる。一方で、本実施形態では、疲弊が進んだ状態において選択ワード線WLに印加されるベリファイ電圧Vvfの値をより大きくするようにベリファイ電圧Vvfが調整される。これにより、セルトランジスタMTにおけるデータの消失を抑制し、メモリシステム1の信頼性を高めることができる。
(第4の実施形態)
次に、第4の実施形態について説明する。本実施形態では、第1から第3の実施形態のメモリコントローラ200による動作がホスト装置2により行われる点で、第1から第3の実施形態とは異なる。なお、以下に説明する以外の構成は、第1の実施形態と同様である。
<4.1.構成>
図20は、第4の実施形態の情報処理システム4の機能ブロックを示す。図20に示すように、情報処理システム4は、ホスト装置2および1または複数のメモリシステム1を含む。図20は1つのメモリシステム1の例を示し、以下の記述は1つのメモリシステム1の例に関する。
ホスト装置2は、CPU41、RAM42、およびコントローラ43を含む。RAM22は、情報処理システム4が電源を供給されてオンしている間、種々のプログラム(ファームウェア)および種々のデータを保持する。保持されるプログラムの例は、オペレーティングシステム(OS)、ファイルシステム、アプリケーションソフトウェアレイヤなどを含む。本実施形態では、第1の実施形態で記述した動作管理テーブルT1の一部または全部、および調整値管理テーブルT2は、RAM42に保持される。
CPU41は、RAM42上のプログラムを実行することにより、種々の処理を行う。CPU41はまた、PCIe等の通信規格に則ったバスを介してコントローラ43に接続されている。CPU41は、PCIeに則ってコントローラ43と通信し、PCIeに則ってコントローラ43を制御する。
コントローラ43はまた、ATA、SATA、およびSAS等の通信規格に則ったバスを介して各メモリシステム1と接続されている。コントローラ43は、CPUが則るインターフェイスと、メモリシステム1がその外部との通信のために則るインターフェイスが相違する場合に、2つのインターフェイスの一方に則った信号を他方に則った信号に変換する。
ホスト装置2は、第1の実施形態と同様に、メモリシステム1にデータを書き込んだり、メモリシステム1からデータを読み出したり、メモリシステム1中のデータを消去したりすることをメモリシステム1に指示できる。さらに、ホスト装置2は、データの書き込み、読み出し、および消去以外の指示をメモリシステム1に送信することができる。そのような指示は、例えば、メモリ装置100の状態を示す信号の出力、ホスト装置2によって開始および管理されるガベージコレクション、種々の条件を指定した上でのデータの書き込み、読み出し、および消去を含む。これらの処理のメモリシステム1への指示の実行は、OS、アプリケーションソフトウェアレイヤ、ファイルシステムなどにより決定される。
<4.2.動作>
本実施形態では、差ΔVpgmLの使用および調整値ΔVvfの付加されたベリファイ電圧Vvfの使用がホスト装置2により決定される。そして、ホスト装置2は、決定された書き込みをメモリシステム1に指示する。すなわち、ホスト装置2は、第1から第3の実施形態におけるメモリコントローラ200からメモリ装置100への指示と同様に、調整値により調整されたベリファイ電圧VvfSを用いてベリファイを行うことをメモリシステム1に指示する。そして、メモリコントローラ200は、ホスト装置2から指示された書き込みをメモリ装置100に対して行う。
<4.3.利点>
本実施形態によれば、ホスト装置2によって、第1から第3の実施形態と同じく、ベリファイ電圧Vvfの調整が行われる。これにより、第1から第3の実施形態と同じ利点が得られる。
以上、第1から第4の実施形態について説明したが、実施形態の構成は、上記例に限定されない。例えば、メモリセルアレイ11は、第2の実施形態で記述された積層体112および複数のピラー113のセットを、第1方向Zに複数段有していてもよい。
また、先にプログラムされたワード線WL(先に書き込みが行われたセルトランジスタMTに接続されたワード線)は、その後にプログラムされる多数のワード線WLからのパス電圧(Vpass)を受ける。このため、先にプログラムされたワード線WLについての閾値電圧分布は、広くなりやすい(特に、高電位側の裾が広くなりやすい)。そのため、メモリコントローラ200は、第1から第4の実施形態と同様に、ベリファイ電圧Vvfの調整値ΔVvfを用いることで、複数のワード線WLのなかで先にプログラムされる第1ワード線WLに印加される第1ベリファイ電圧を、第1ワード線WLよりも後にプログラムされる第2ワード線WLに印加される第2ベリファイ電圧よりも小さくする。なお、第1ベリファイ電圧は、例えば、第1ワード線WLに接続された第1セルトランジスタに第1データ値の書き込みが完了したかを判定する場合に、第1ワード線WLに印加されるベリファイ電圧である。また、第2ベリファイ電圧は、例えば、第2ワード線WLに接続された第2セルトランジスタに第1データ値の書き込みが完了したかを判定する場合に、第2ワード線WLに印加されるベリファイ電圧である。
以上説明した第1から第4の実施形態では、差ΔVpgmLの使用およびベリファイ電圧Vvfの調整に関する機能は、メモリコントローラ200またはホスト装置2のプロセッサがプログラムを実行することで実現される場合(ソフトウェア機能部により実現される場合)について説明した。ただし、差ΔVpgmLの使用およびベリファイ電圧Vvfの調整に関する機能の一部または全部は、LSI(Large Scale Integration)、ASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)などのハードウェアによって実現されてもよいし、ソフトウェア機能部とハードウェアとが協働することで実現されてもよい。
また、第1から第4の実施形態で記述された差ΔVpgmLの使用およびベリファイ電圧Vvfの調整に関する機能は、各メモリ装置100によって実現されてもよい。この場合、差ΔVpgmLの使用およびベリファイ電圧Vvfの調整に関する機能は、例えば、シーケンサ12によって実現されてもよい。この場合、動作管理テーブルT1の一部または全部、および調整値管理テーブルT2は、メモリ装置100の記憶部11aまたはレジスタ121に保持される。
第1から第4の実施形態で記述された各機能ブロックは、実施形態のなかで述べた例のように区別されていることは必須ではない。例えば、一部の機能が例示の機能ブロックとは別の機能ブロックによって実行されてもよい。また、実施形態の方法のフローにおけるいずれのステップも、例示の順序に限定されず、そうでないと示されない限り、例示の順序とは異なる順序でおよび(または)別のステップと並行して起こることが可能である。
以上説明した少なくともひとつの実施形態によれば、第1セルトランジスタに第1データ値の書き込みが完了したかを判定する場合に、第1ベリファイ電圧を第1ワード線に印加することを前記メモリ装置に指示し、第2セルトランジスタに前記第1データ値の書き込みが完了したかを判定する場合に、前記第1ベリファイ電圧とは電圧レベルが異なる第2ベリファイ電圧を第2ワード線に印加する。これにより、メモリ装置のより良い制御を行うことができるメモリシステムおよびメモリ装置の制御方法を提供することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。