特許第6779822号(P6779822)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 東芝メモリ株式会社の特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6779822
(24)【登録日】2020年10月16日
(45)【発行日】2020年11月4日
(54)【発明の名称】メモリシステム
(51)【国際特許分類】
   G11C 7/04 20060101AFI20201026BHJP
   G11C 16/08 20060101ALI20201026BHJP
   G11C 16/04 20060101ALI20201026BHJP
   G11C 11/56 20060101ALI20201026BHJP
【FI】
   G11C7/04
   G11C16/08 120
   G11C16/04 170
   G11C11/56 220
【請求項の数】6
【全頁数】42
(21)【出願番号】特願2017-59624(P2017-59624)
(22)【出願日】2017年3月24日
(65)【公開番号】特開2018-163715(P2018-163715A)
(43)【公開日】2018年10月18日
【審査請求日】2019年3月19日
(73)【特許権者】
【識別番号】318010018
【氏名又は名称】キオクシア株式会社
(74)【代理人】
【識別番号】100108855
【弁理士】
【氏名又は名称】蔵田 昌俊
(74)【代理人】
【識別番号】100103034
【弁理士】
【氏名又は名称】野河 信久
(74)【代理人】
【識別番号】100075672
【弁理士】
【氏名又は名称】峰 隆司
(74)【代理人】
【識別番号】100153051
【弁理士】
【氏名又は名称】河野 直樹
(74)【代理人】
【識別番号】100189913
【弁理士】
【氏名又は名称】鵜飼 健
(72)【発明者】
【氏名】滝澤 和孝
(72)【発明者】
【氏名】小島 慶久
(72)【発明者】
【氏名】黒田 純夫
(72)【発明者】
【氏名】新島 雅章
【審査官】 堀田 和義
(56)【参考文献】
【文献】 米国特許出願公開第2012/0287711(US,A1)
【文献】 米国特許出願公開第2016/0180946(US,A1)
【文献】 米国特許出願公開第2015/0310938(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G11C 7/04
G11C 16/08
G11C 16/04
G11C 11/56
(57)【特許請求の範囲】
【請求項1】
第1セルトランジスタを有するメモリ装置と、
前記第1セルトランジスタの消去の時の前記メモリ装置の温度と関連付けられた第1温度の情報を保持し、
前記第1セルトランジスタへの書き込みの時の前記メモリ装置の温度と関連付けられた第温度の情報を保持し、
前記メモリ装置の第温度を知得し、
複数の調整値のうちから前記第1温度、前記第2温度および前記第温度の組合せに基づく1つの調整値を決定し、
前記決定された調整値と第1共通値とに基づく値を第1パラメータのために使用して前記第1セルトランジスタのデータを読み出すことを前記メモリ装置に指示する、
ように構成されたコントローラと、
を備え
前記コントローラは、
前記第1温度が第1値であり、前記第2温度と前記第3温度との差分が第2値である場合、前記調整値として第1調整値を決定し、
前記第1温度が前記第1値とは異なる第3値であり、前記第2温度と前記第3温度との差分が前記第2値である場合、前記調整値として前記第1調整値とは異なる第2調整値を決定するように構成されている
メモリシステム。
【請求項2】
前記コントローラはさらに、
前記第1温度が前記第1値であり、前記第2温度と前記第3温度との差分が前記第2値とは異なる第4値である場合、前記調整値として前記第1調整値と前記第2調整値とも異なる第3調整値を決定するように構成されている、
請求項1のメモリシステム。
【請求項3】
前記複数の調整値は、相違するm個(mは自然数)の書き込み温度と、相違するn個(nは自然数)の読み出し温度と、m×n個の組合せのそれぞれのためのm×n個の調整値を含み、
前記コントローラは、
前記第温度に基づいて前記m個の書き込み温度のうちの1つを選択し、前記第温度に基づいて前記n個の読み出し温度のうちの1つを選択し、
前記選択された書き込み温度および前記選択された読み出し温度の組合せから特定される1つの調整値を選択する、
ように構成されている、請求項1のメモリシステム。
【請求項4】
前記コントローラは、
第1コマンドを前記メモリ装置に送信して、前記第温度の情報を前記メモリ装置から取得し、
前記第1コマンドを前記メモリ装置に送信して、前記第温度の情報を前記メモリ装置から取得する、
ように構成されている、請求項1のメモリシステム。
【請求項5】
前記メモリ装置は、前記第1セルトランジスタを含んだ第1ブロックを備え、
前記第温度は、前記第1ブロックへの書き込みの時の前記メモリ装置の温度であり、
前記第温度は、前記第1ブロックからの読み出しの時の前記メモリ装置の温度である、
請求項1のメモリシステム。
【請求項6】
前記第1パラメータは、前記第1セルトランジスタからの読み出しの間に、前記第1セルトランジスタと接続された第1ワード線に印加される電圧である、
請求項1のメモリシステム。
【発明の詳細な説明】
【技術分野】
【0001】
実施形態は、概してメモリ装置を制御する制御システムに関する。
【背景技術】
【0002】
不揮発性のメモリ装置と、およびこのメモリを制御するメモリコントローラを含んだメモリシステムが知られている。メモリシステムの性能の向上のために、メモリコントローラによるメモリ装置のより良い制御が求められる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2012−113810号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
より高性能な、メモリ装置の制御システムを提供しようとするものである。
【課題を解決するための手段】
【0005】
一実施形態によるメモリシステムは、第1セルトランジスタを有するメモリ装置と、前記第1セルトランジスタの消去の時の前記メモリ装置の温度と関連付けられた第1温度の情報を保持し、前記第1セルトランジスタへの書き込みの時の前記メモリ装置の温度と関連付けられた第温度の情報を保持し、前記メモリ装置の第温度を知得し、複数の調整値のうちから前記第1温度、前記第2温度および前記第温度の組合せに基づく1つの調整値を決定し、前記決定された調整値と第1共通値とに基づく値を第1パラメータのために使用して前記第1セルトランジスタのデータを読み出すことを前記メモリ装置に指示する、ように構成されたコントローラと、を備える。前記コントローラは、前記第1温度が第1値であり、前記第2温度と前記第3温度との差分が第2値である場合、前記調整値として第1調整値を決定し、前記第1温度が前記第1値とは異なる第3値であり、前記第2温度と前記第3温度との差分が前記第2値である場合、前記調整値として前記第1調整値とは異なる第2調整値を決定するように構成されている。
【図面の簡単な説明】
【0006】
図1】第1実施形態のメモリシステムの機能ブロックを示す。
図2】第1実施形態のメモリシステムの機能ブロックの別の例を示す。
図3】第1実施形態のメモリセルアレイの一部の要素および接続の例を示す。
図4】第1実施形態のブロックの構造の例を示す。
図5】第1実施形態のメモリ装置でのデータの保持の例を示す。
図6】第1実施形態に係る実体的データと誤り訂正データの大きさの比の例を示す。
図7】第1実施形態のメモリシステムの動作のフローの一部を示す。
図8】第1実施形態のメモリシステムの動作のフローの別の一部を示す。
図9】第1実施形態のメモリシステムの動作のフローのさらに別の一部を示す。
図10】第1実施形態に係る温度組合せテーブルを示す。
図11】第1実施形態に係る書き込み温度および読み出し温度と調整値との関係を示す。
図12】第1実施形態に係る書き込み温度および読み出し温度の差と調整値との関係を示す。
図13】第1実施形態に係る書き込み温度テーブルを示す。
図14】第1実施形態に係る温度データの取得のために送受信される信号DQの第1例を示す。
図15】第1実施形態に係る温度データの取得のために送受信される信号DQの第2例を示す。
図16】第1実施形態に係る調整値の使用の指示および読み出しのために送受信される信号DQを示す。
図17】第1実施形態での選択ワード線に読み出しの間に印加される電圧を示す。
図18】第2実施形態に係る温度組合せテーブルを示す。
図19】第2実施形態に係る消去・書き込み温度テーブルを示す。
図20】第2実施形態のメモリシステムの動作のフローの一部を示す。
図21】第2実施形態のメモリシステムの動作のフローの別の一部を示す。
図22】第2実施形態のメモリシステムの動作のフローのさらに別の一部を示す。
図23】第3実施形態に係る書き込み温度・パラメータ調整値テーブルを示す。
図24】第3実施形態のメモリシステムの動作のフローの一部を示す。
図25】第3実施形態のメモリシステムの動作のフローの別の一部を示す。
図26】第4実施形態に係る消去温度・パラメータ調整値テーブルを示す。
図27】第4実施形態のメモリシステムの動作のフローの一部を示す。
図28】第4実施形態のメモリシステムの動作のフローの別の一部を示す。
図29】第5実施形態の情報処理システムの機能ブロックを示す。
図30】第5実施形態の情報処理システムの動作のフローの一部を示す。
図31】第5実施形態の情報処理システムの動作のフローの別の一部を示す。
図32】第5実施形態の情報処理システムの動作のフローのさらに別の一部を示す。
図33】第6実施形態での選択ワード線に印加される電圧の一部を示す。
図34】第6実施形態に係る書き込みのために送信される信号DQを示す。
図35】第6実施形態での選択ワード線に印加される電圧を示す。
図36】第6実施形態でのワード線アドレスと調整値との対応を示す。
図37】第6実施形態のメモリシステムの動作のフローを示す。
図38】第6実施形態での閾値電圧分布を参考用の閾値電圧分布とともに示す。
【発明を実施するための形態】
【0007】
以下に実施形態が図面を参照して記述される。以下の記述において、略同一の機能および構成を有する構成要素は同一符号を付され、繰り返しの説明は省略される場合がある。ある実施形態についての記述はすべて、明示的にまたは自明に排除されない限り、別の実施形態の記述としても当てはまる。各機能ブロックは、ハードウェア、コンピュータソフトウェアのいずれかまたは両者を組合せたものとして実現されることが可能である。また、各機能ブロックが、以下の例のように区別されていることは必須ではない。例えば、一部の機能が例示の機能ブロックとは別の機能ブロックによって実行されてもよい。また、実施形態の方法のフローにおけるいずれのステップも、例示の順序に限定されず、そうでないと示されない限り、例示の順序とは異なる順序でおよび(または)別のステップと並行して起こることが可能である。
【0008】
明細書および特許請求の範囲において、「接続」とは、直接的な接続および導電性の要素を介在した接続を含む。
【0009】
(第1実施形態)
<1.1.構成(構造)>
<1.1.1.メモリシステム>
図1は、第1実施形態のメモリシステム1の機能ブロックを示す。図1に示されるように、メモリシステム1は、ホスト装置2のためのストレージとして機能し、ホスト装置2と通信し、ホスト装置2の指示に基づいて、ホスト装置2からのデータを保持し、また、データをホスト装置2に読み出す。
【0010】
ホスト装置2は、例えばサーバコンピュータまたはパーソナルコンピュータであり、情報処理を実行し、メモリシステム1を用いてデータを記憶する。ホスト装置2は、メモリシステム1により提供される記憶空間を複数の論理領域へと分割し、各論理領域に論理アドレスを付する。そして、論理アドレスを使用して、メモリシステム1の記憶空間を管理する。ホスト装置2は、書き込み対象のデータがある論理領域に保持されるものと決定すると、書き込み対象データに対して決定された論理アドレスを割り当てる。そして、ホスト装置2は、論理アドレスにより特定される論理領域への書き込み対象データの書き込みをメモリ装置100に指示する。また、ホスト装置2は、論理アドレスによって、メモリシステム1中の読み出し対象のデータを特定する。
【0011】
メモリシステム1は、例えばSDTMカードのようなメモリカードや、SSD(solid state device)である。メモリシステム1は、複数のメモリ装置100、およびメモリコントローラ200を含む。メモリ装置100およびメモリコントローラ200は、別々のパッケージに(例えば樹脂によって)封止されたチップであってもよいし、1つのチップであってもよい。
【0012】
メモリ装置100は、同じ要素および接続を有する。以下、1つのメモリ装置100が代表として記述される。記述される代表的なメモリ装置100についての記述が、他のメモリ装置100にも当てはまる。メモリ装置100は、不揮発にデータを記憶し、例えばNAND型フラッシュメモリである。
【0013】
メモリコントローラ200は、ホスト装置2から命令を受け取り、また、メモリ装置100を制御する。メモリ装置100の制御は、ホスト装置2から受け取られた命令とは無関係のものと、ホスト装置2から受け取られた命令に基づくものを含む。例えば、メモリコントローラ200は、ホスト装置2から書き込みを指示されたデータをメモリ装置100に書き込み、ホスト装置2から読み出しを指示されたデータをメモリ装置100から読み出してホスト装置2に送信する。
【0014】
また、メモリコントローラ200は、メモリ装置100を管理する。管理は、アドレスのマッピングの管理、およびメモリ装置100の状態の管理を含む。アドレスのマッピングは、論理アドレスと物理アドレスのマッピングである。物理アドレスはメモリ装置100により提供される記憶領域を特定する情報である。具体的には、メモリコントローラ200は、書き込みを指示されると、書き込みを指示されたデータの書き込み先の論理アドレスと、当該データが書き込まれたメモリ装置100中の記憶領域の物理アドレスをアドレス変換テーブルにより管理する。メモリコントローラ200は、ある論理アドレスの記憶領域からのデータの読み出しを指示されると、アドレス変換テーブルを参照して、当該論理アドレスと関連付けられた物理アドレスを知得し、知得された物理アドレスの記憶領域からデータを読み出す。メモリ装置100の状態の管理は、メモリ装置100の不良な記憶領域(後述のブロックBLK)の管理、ウェアレベリング、ガベージコレクション、およびリフレッシュを含む。
【0015】
<1.1.2.メモリコントローラ>
メモリコントローラ200は、ホストインターフェイス21、全体制御部22、RAM(random access memory)23、メモリインターフェイス24、ECC回路25、ROM(read only memory)26を含む。メモリコントローラ200は、例えば、ハードウェアとしてCPU(central processing unit)等のプロセッサを含み、ROM26に保持されかつRAM23上にロードされたファームウェア(プログラム)がプロセッサによって実行されることによって、ホストインターフェイス21、全体制御部22、メモリインターフェイス24、およびECC回路25の各々の機能の一部または全部を実行する。ホストインターフェイス21、全体制御部22、RAM23、メモリインターフェイス24、およびECC回路25は、バスにより相互に接続されている。
【0016】
ホストインターフェイス210は、メモリコントローラ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)を含む。
【0017】
RAM23は、データを一時的に保持し、バッファとしての機能を有する。データは、ホストから受け取られたデータ、ホストに送信されるデータ、メモリ装置100に書き込まれるデータ(書き込みデータ)、メモリ装置100から読み出されたデータ(読み出しデータ)、メモリ装置100の状態を示し且つメモリ装置100の制御のために全体制御部22によって参照される種々の管理データ(アドレス変換テーブルを含む)、およびファームウェアを含む。また、RAM23は、複数のメモリ装置温度情報231を含む。各メモリ装置温度情報231は、対応する1つ以上のメモリ装置100に関する温度情報を含む。メモリ装置温度情報231については、後に詳述される。
【0018】
メモリインターフェイス24は、NANDバスによって、メモリ装置100と物理的に接続されており、NANDインターフェイスに従った信号の送受信を行う。NANDバスは、NANDインターフェイスに従った信号を伝送する。NANDインターフェイスに従った信号は、例えば種々の制御信号および入出力信号DQおよびレディー・ビジー信号RY/BYnを含む。信号DQ(DQ0〜DQ7)は、例えば8ビットの幅を有し、コマンド(CMD)、書き込みデータおよび読み出しデータ(DAT)、アドレス信号(ADD)、各種の管理データを含む。レディー・ビジー信号RY/BYnは、メモリ装置100ごとに独立しており、例えばハイレベルおよびローレベルによって、対応するレディー・ビジー信号RY/BYnを送信するメモリ装置100がそれぞれレディー状態およびビジー状態であることを示す。メモリ装置100は、レディー状態においてメモリコントローラ200からの命令を受け付け、ビジー状態においてメモリコントローラ200からの命令を受け付けない。
【0019】
ECC回路25は、ある実体的データの誤りを訂正するための誤り訂正データを生成する。実体的データは、ホストから書き込みを指示されたデータおよび管理データを含む。誤り訂正データは、既知の任意の方法で生成されることが可能であり、例えばパリティデータを含む。実体的データと、対応する誤り訂正データの組は、書き込みデータとして、メモリ装置100に書き込まれる。誤り訂正データの生成のための技術および誤り訂正データの大きさによって、対応する実体的データの訂正可能な誤りの数が定まる。一般に、誤り訂正データがより大きいと、より多くの誤りの訂正が可能であり、すなわち大きな誤り訂正能力がより高い。ECC回路25は、複数の誤り訂正能力から1つを選択し、選択された誤り訂正能力のための誤り訂正データを生成できる。
【0020】
また、ECC回路25は、メモリ装置100からの読み出しデータに対して演算を行って、読み出しデータに含まれる正しい(誤りを訂正された)データ(例えばホスト読み出しデータまたは管理データ等)を取得することを試みる。ECC回路25は、読み出しデータが、読み出しデータに含まれる誤り訂正データに基づいて定まる誤り訂正能力以下の誤りを含んでいれば、読み出しデータから正しい実体的データを取得できる。
【0021】
全体制御部22は、例えば、プロセッサおよびRAM23の機能の一部により実現される。全体制御部22は、ホストインターフェイス21、RAM23、メモリインターフェイス24、およびECC回路25を制御する。全体制御部22は、書き込みおよび読み出しの際に、RAM23およびメモリインターフェイス24を制御しつつ、上記のアドレスマッピング管理および(または)メモリ装置100の状態の管理を行う。
【0022】
<1.1.3.メモリ装置>
メモリ装置100は、メモリセルアレイ11、シーケンサ(制御回路)12、電位生成回路13、ドライバ14、ロウデコーダ15、センスアンプ16、および温度センサ17等の要素を含む。
【0023】
メモリセルアレイ11は複数のブロック(メモリブロック)BLK(BLK0、BLK1、…)を含む。ブロックBLKは、メモリセルアレイ11のある物理的な単位であり、各ブロックBLK中のデータは一括して消去される。各ブロックBLKは、複数のセルトランジスタを含む。セルトランジスタは、メモリコントローラ200からの書き込みデータを不揮発に保持する。
【0024】
電位生成回路13は、種々の電位(電圧)を生成する。生成された電位は、ドライバ14およびセンスアンプ16等の要素に供給される。ドライバ14は、アドレス信号ADDを受け取り、電位生成回路13からの電位のうちアドレス信号ADDに基づいていくつかの電位を選択し、選択された電位をロウデコーダ15に供給する。
【0025】
ロウデコーダ15は、アドレス信号ADDを受け取り、アドレス信号ADDに基づいて、1つのブロックBLKを選択し、選択されたブロックBLKにドライバ14からの電位を転送する。
【0026】
センスアンプ16は、セルトランジスタMTの状態をセンスし、センスされた状態に基づいて読み出しデータを生成し、また、書き込みデータをセルトランジスタMTに転送する。
【0027】
温度センサ17は、メモリ装置100の温度をある時間間隔ごとに計測し、シーケンサ12の指示に応答して、計測された温度を示す温度情報MNDをシーケンサ12に供給する。
【0028】
シーケンサ12は、コマンドCMDに基づいて、電位生成回路13、ドライバ14、およびセンスアンプ16等の要素を制御する。シーケンサ12は、レジスタ121およびタイマ122を含む。レジスタ121は、複数の記憶領域を含む。各記憶領域は、一意のアドレスにより特定されることが可能であり、1または複数ビットの情報を記憶することが可能である。レジスタ121は、各記憶領域において種々のデータを保持する。保持されるデータは、温度情報MNDを含む。
【0029】
温度センサ17は、図2に示されるように、メモリ装置100中に代えて、メモリシステム1の別の場所に設けられてもよい。この場合、メモリコントローラ200は、温度センサ17に指示を出して、温度センサ17から後述の温度データを取得する。
【0030】
<1.1.3.1.セルアレイ>
図3は、第1実施形態のメモリセルアレイ11の一部の要素および接続の例を示し、ブロックBLK0の要素および接続、ならびに関連する要素を示す。複数の(例えば全ての)ブロックBLKは、みな図3に示される要素および接続を含む。
【0031】
各ブロックBLKは複数の(例えば4つの)ストリングユニットSU(SU0〜SU3)を含む。
【0032】
m(mは自然数)本のビット線BL0〜BLm−1の各々は、各ブロックBLKにおいて、4つのストリングユニットSU0〜SU3の各々からの1つのストリングSTRと接続されている。
【0033】
各ストリングSTRは、1つの選択ゲートトランジスタST、複数(例えば8個)のセルトランジスタMT、および1つの選択ゲートトランジスタDT(DT0〜DT3)を含む。選択ゲートトランジスタST、セルトランジスタMT、および選択ゲートトランジスタDTは、この順で、ソース線CELSRCと1つのビット線BLとの間に直列に接続されている。セルトランジスタMTは、制御ゲート電極(ワード線WL)、および周囲から絶縁された電荷蓄積層を含み、電荷蓄積層中の電荷の量に基づいてデータを不揮発に保持することができる。セルトランジスタMTは、書き込みにより電荷蓄積層に電子を注入され、消去のために電荷蓄積層から電子を引き抜かれる。
【0034】
相違する複数のビット線BLとそれぞれ接続された複数のストリングSTRは1つのストリングユニットSUを構成する。各ストリングユニットSUにおいて、セルトランジスタMT0〜MT7の制御ゲート電極は、ワード線WL0〜WL7とそれぞれ接続されている。さらに、各ブロックBLKにおいて、相違するストリングユニットSU中の同じアドレスのワード線WLも相互に接続されている。1つのストリングユニットSU中でワード線WLを共有するセルトランジスタMTの組は、セルユニットCUと称される。1つのセルユニットCUのセルトランジスタMTは、一括してデータを書き込まれ、また一括してデータを読み出される。1つのセルユニットCUの記憶空間は、1つまたは複数のページを含む。
【0035】
選択ゲートトランジスタDT0〜DT3はストリングユニットSU0〜SU3にそれぞれ属する。各α(αは0または3以下の自然数)について、ストリングユニットSUαの複数のストリングSTRの各々の選択ゲートトランジスタDTαのゲートは選択ゲート線SGDLαに接続されている。選択ゲートトランジスタSTのゲートは、選択ゲート線SGSLに接続されている。
【0036】
各ブロックBLKが1つのストリングユニットSUを含んでいてもよい。
【0037】
ブロックBLKは、任意の物理的構造を有することが可能である。すなわち、アドレスの相違するワード線WLがシリコン基板の同一平面上に並ぶいわゆる二次元型の構造が使用されてもよいし、図4に示されるように、アドレスの相違する平面形状のワード線WLがシリコン基板に垂直方向に積層される、いわゆる三次元の構造が使用されてもよい。
【0038】
図4は、1つのブロックの構造の例を示し、各ブロックBLKは図4に示される構造を有することが可能である。図4に示されるように、ストリングユニットSUはシリコン基板SI上に設けられている。シリコン基板SIは、xy面に沿って広がり、p型のウェルpwを含む。ウェルpwは、例えば、シリコン基板SI全体にイオン注入を行うことで、シリコン基板SIの内部に形成される。各ストリングユニットSUは、x軸に沿って並ぶ複数のストリングSTRを含む。各ストリングSTRは、半導体の柱(ピラー)PLを含む。柱PLは、z軸に沿って延び、下端においてウェルpwと接し、トランジスタMT、DT、およびSTのチャネルが形成されるチャネル領域およびボディとして機能する。柱PLの上端は、導電性のプラグCPPを介して導電体CTと接続されている。導電体CTはy軸に沿って延び、1つのビット線BLとして機能し、x軸上で別の座標に位置する導電体CTと間隔を有する。柱PLの側面はトンネル絶縁体(層)ITにより覆われている。トンネル絶縁体ITは、ウェルpw上にも位置する。トンネル絶縁体ITの側面は、電荷蓄積層CAにより覆われている。電荷蓄積層CAは、絶縁性または導電性であり、側面をブロック絶縁体(層)IBにより覆われている。
【0039】
各ストリングユニットSUにおいて、ウェルpwの上方に、1つの導電体CS、複数(例えば8つ)の導電体CW、および複数(例えば3つ)の導電体CDが設けられている。複数の導電体CSが設けられていてもよい。導電体CS、CW、およびCDは、この順で間隔を有してz軸に沿って並び、x軸に沿って延び、ブロック絶縁体IBと接している。導電体CSは、また、ウェルpwとともにトンネル絶縁体ITを挟む。導電体CS、CW、およびCDは、それぞれ、選択ゲート線SGSL、ワード線WL0〜WL7、および選択ゲート線SGDLとして機能する。各ストリングユニットSUにおいて、導電体CS、CW、およびCDは、このストリングユニットSU中の全ての柱PLの側面上のブロック絶縁体IBと内部において接している。
【0040】
柱PL、トンネル絶縁体IT、電荷蓄積層CA、およびブロック絶縁体IBのうちの導電体CS、CW、およびCDと交わる部分は、それぞれ選択ゲートトランジスタST、セルトランジスタMT、および選択ゲートトランジスタDTとして機能する。柱PLを共有しかつz軸に沿って並ぶトランジスタST、MT、およびDTは、1つのストリングSTRを構成する。
【0041】
ウェルpw内には、p型不純物の拡散層Dpが設けられている。拡散層Dpは、導電性のプラグCPWを介して、導電体CCWと接続されている。プラグCPWは、xz面に沿って広がる。
【0042】
ウェルpw内には、n型不純物の拡散層Dnがさらに設けられている。拡散層Dnは、導電性のプラグCPSを介して、導電体CCSと接続されている。導電体CCWは、ソース線CELSRCとして機能する。
【0043】
シリコン基板SI上で、導電体CS、CW、CD、CCS、およびCCW、ならびにプラグCPSおよびCPWが設けられていない領域は、絶縁体IIL1を設けられている。
【0044】
<1.1.3.2.セルトランジスタ>
メモリ装置100は、1つのセルトランジスタMTにおいて1ビット以上のデータを保持することができる。図5は、書き込みの結果、1セルトランジスタMT当たり2ビットのデータを保持するセルトランジスタMTの閾値電圧の分布を示す。各セルトランジスタMTの閾値電圧は、保持される2ビットデータに応じた値を有する。各セルトランジスタMTは、4つの閾値電圧のうちのいずれかを有し得る。
【0045】
ある同じ2ビットデータを保持する複数のセルトランジスタMTであっても、互いに相違する閾値電圧を有し得る。このため、ある同じデータを保持する複数のセルトランジスタMTの閾値電圧は1つの分布を形成する。4つの閾値電圧のうち、最も低い分布から順に4つの分布のそれぞれに属するセルトランジスタMTは、それぞれ、Erレベル、Aレベル、Bレベル、およびCレベルにある。Erレベル、Aレベル、Bレベル、およびCレベルは、例えば、それぞれ“11”データ、“01”データ、“00”データ、および“10”データを保持する状態として扱われる。Erレベルは、消去状態に相当する。一般に、データは、消去状態のセルトランジスタMTに書き込まれる。
【0046】
Aレベル、Bレベル、およびCレベルのセルトランジスタの閾値電圧は、それぞれEr、Aレベル、およびBレベルのセルトランジスタの閾値電圧より高い。読み出し電圧VA未満の閾値電圧を有するセルトランジスタMTはErレベルにあると判断される。読み出し電圧VA以上読み出し電圧VB未満の閾値電圧を有するセルトランジスタMTはAレベルにあると判断される。読み出し電圧VB以上読み出し電圧VC未満の閾値電圧を有するセルトランジスタMTはBレベルにあると判断される。読み出し電圧VC以上の閾値電圧を有するセルトランジスタMTはCレベルにあると判断される。読み出し電圧VA、VB、およびVCの各々は、読み出し電圧Vcgrと称される場合がある。電圧Vreadは、非読み出し対象のセルトランジスタMTの制御ゲート電極に印加され、いずれのセルトランジスタMTの閾値電圧よりも高い。
【0047】
1セルトランジスタMT当たり複数ビットのデータの保持の場合、1つのセルユニットCUのセルトランジスタMTの2ビットのうちの同じ方のビットの組は、1つのページを構成する。具体的には、上位ビットの組はアッパーページを構成し、下位ビットの組はロワーページを構成する。
【0048】
書き込みの完了の確認(ベリファイ)のために、ベリファイ電圧AV、BV、およびCVが使用される。ベリファイは、書き込まれるセルトランジスタMTの書き込みが完了したかの確認を指す。Aレベル、Bレベル、およびCレベルへと書き込まれるセルトランジスタ(選択セルトランジスタ)MTがそれぞれベリファイ電圧AV、BV、およびCV以上の大きさの閾値電圧を有していれば、当該レベルへと書き込まれるセルトランジスタMTへの書き込みが完了したと判断される。ベリファイ電圧BVおよびCVは、それぞれベリファイ電圧AVおよびBVより高い。ベリファイ電圧AV、BV、およびCVの各々は、ベリファイ電圧Vvfと称される場合がある。
【0049】
3ビット以上のデータも、ここまで記述された原理の拡張により1つのセルトランジスタMTよって保持されることが可能である。また、1セルトランジスタMT当たり1ビットのデータが保持される場合は、図5のいずれか2つのレベルが使用される。
【0050】
<1.2.動作>
メモリシステム1の動作に先立ち、ECC回路25による誤り訂正データの生成について記述される。
【0051】
<1.2.1.ECC回路の動作>
図6は、第1実施形態に係る実体的データと誤り訂正データの大きさの比の例を示す。ECC回路25は、上記のように、ある実体的データのための誤り訂正データの大きさを変えることによって、当該実体的データの訂正可能なビットの数を変えることができる。
【0052】
図6に示されるように、ECC回路25は、受け取った実体的データを、ある大きさの部分(フレームと称される)へと分割し、フレームおよび対応する誤り訂正データの組を出力する。フレームおよび対応する誤り訂正データの組はクラスタと称される。クラスタの大きさは固定であり、例えば、メモリ装置100の1ページの大きさが均等の大きさに分割された複数部分(例えば4つ)の1つと同じサイズである。一方、誤り訂正データの大きさは、対応するフレームのために求められる誤り訂正能力に基づいて可変である。よって、フレームの大きさは誤り訂正能力により可変である。したがって、ECC回路25は、書き込まれる実体的データを、クラスタの大きさから、ECC回路25に現在設定されている誤り訂正能力を実現する誤り訂正データの大きさを減じた大きさの複数のフレームへと分割する。そして、ECC回路25は、このようなフレームを使用して、対応する誤り訂正データを生成する。この結果、誤り訂正能力に基づいた大きさの誤り訂正データおよびフレームの組はクラスタと同じ大きさを有する。
【0053】
図6の上段は、最も低い誤り訂正能力を実現する方法で誤り訂正データが生成された場合を示す。図6の中段は、中程度の誤り訂正能力を実現する方法で誤り訂正データが生成された場合を示す。図6の下段は、最も高い誤り訂正能力を実現する方法で誤り訂正データが生成された場合を示す。求められる誤り訂正能力が高いほど、必要な誤り訂正データは大きくなるので、その分、フレームが小さい。よって、より高い誤り訂正能力の誤り訂正データが使用される場合、対応するフレームはより小さい。
【0054】
<1.2.2.メモリシステムの動作>
図7図9は、第1実施形態のメモリシステム1の動作のフローを示す。図7図9は、フローが必要以上に複雑となることを避けるために、ある1つのメモリ装置(選択メモリ装置)100のあるブロックBLKx(xは0または自然数)に関連する処理を中心に示す。
【0055】
図7に示されるように、メモリシステム1は、例えば電源の供給を受け初めて起動すると、起動処理を行う(ステップS1)。起動処理は、メモリシステム1が、データの書き込みおよび読み出しが可能な状態になるまでに必要な処理を指す。起動処理は、種々のテーブルをメモリコントローラ200において構築することを含む。具体的には、ステップS1は、サブステップSS11およびSS12を含む。
【0056】
テーブルの構築に必要なデータが各メモリ装置100中の1または複数のブロックBLKにおいて保持されており、メモリコントローラ200は、これらのブロックBLKから必要なデータを読み出す(サブステップSS11)。サブステップSS12において、メモリコントローラ200は、読み出されたデータから、RAM23上でメモリ装置100ごとにテーブルを構築する。構築されるテーブルは、図10に示される温度組合せテーブル、および図13に示される書き込み温度テーブル、およびアドレス変換テーブルを含む。各メモリ装置100用の温度組合せテーブルおよび書き込み温度テーブルは、当該メモリ装置100用のメモリ装置温度情報231に含まれる。1つの温度組合せテーブルが、複数のメモリ装置100で共通に使用されてもよい。
【0057】
図10は、ある1つのメモリ装置(例えば選択メモリ装置)100用の温度組合せテーブルを示す。図10に示されるように、複数の温度組合せテーブルが存在する。本実施形態の各温度組合せテーブルは、メモリ装置100からの読み出しの間に使用される複数のパラメータのうちの1つについての情報を示す。温度組合せテーブルが用意される対象のパラメータの例は、前述した電圧Vread、および読み出し電圧Vcgrを含むが、これらに限定されない。
【0058】
各温度組合せテーブルは複数の値を有し、各値は二次元の行列状に関連付けられている。一方の軸(縦軸)は、選択メモリ装置100への書き込みの時の温度センサ17での測定温度(書き込み温度)に関する。他方の軸(横軸)は、選択メモリ装置100からの読み出しの時の温度センサ17での測定温度(読み出し温度)に関する。
【0059】
相違する行は相違する書き込み温度と関連付けられており、各行は関連付けられた書き込み温度についての複数の値を示す。各行での書き込み温度は、下隣りの行での温度と、ある大きさだけ離れている。例えば上下で隣り合う書き込み温度の差は10℃であり、TW0〜TW8は例えばそれぞれ0、10、20、30、40、50、60、70、および80℃である。この例とは別の書き込み温度および差が使用されてもよい。
【0060】
同様に、相違する列は相違する読み出し温度と関連付けられており、各列は関連付けられた読み出し温度についての複数の値を示す。各列での読み出し温度は、右隣りの列での読み出し温度と、ある大きさだけ離れている。読み出し温度の組は、書き込み温度の組と同じであってもよいし、異なっていてもよい。例えば左右で隣り合う温度の差は書き込みと同じく10℃であり、TR0〜TR8は例えばそれぞれ0、10、20、30、40、50、60、70、および80℃である。この例とは別の読み出し温度および差が使用されてもよい。
【0061】
各行と各列の交差する箇所は、1つの調整値ΔA(ΔA0、ΔA1、ΔA2、…、ΔA88)を有する。ある表における値は、この表と関連付けられているパラメータのデフォルト値からの調整値(オフセット値)を示す。デフォルト値は、メモリ装置100の初期状態(値の調整がなされていない状態)で使用される値を指す。各調整値ΔAは、当該調整値ΔAの行の書き込み温度で書き込まれかつ当該調整値ΔAの読み出し温度で読み出される場合の調整値を示す。各調整値ΔAは、対応する書き込み温度での選択メモリ装置100の特性と、対応する読み出し温度での選択メモリ装置100の特性とに基づいて定められている。すなわち、各調整値は、対応する書き込み温度および読み出し温度のときに当該調整値とデフォルト値の和が対応するパラメータのために使用されると、温度に関して最適化された読み出しを可能にするように定められている。
【0062】
各調整値ΔAは、正、負、またはゼロである。また、各調整値ΔAは、別の調整値ΔAと同じであってもよいし、異なっていてもよい。
【0063】
調整値ΔAは、ここまで記述されたような離散的な複数の書き込み温度および離散的な読み出し温度に対して用意されるのに代えて、関数により決定されてもよい。図11は、第1実施形態の書き込み温度と調整値ΔAとの関係の例を示す。図11に示されるように、離散的な複数の読み出し温度(例として、0℃、50℃、80℃が示されている)の各々についての書き込み温度と調整値ΔAとの対応が、例えば線形関数により定められている。例えば、相違する読み出し温度のための関数は、相違する特性(例えば傾き)を有する。そして、メモリコントローラ200は、例えば50℃での読み出しの場合、50℃の読み出し用の関数が参照され、対応する書き込み温度での調整値ΔAを割り出すことが可能である。読み出し温度0℃、50℃、および80℃のための関数に代えてまたは加えて、別の読み出し温度のための関数が用意されてもよい。さらに、離散的な複数の書き込み温度(例えば0℃、50℃、80℃)の各々についての読み出し温度と調整値ΔAとの対応が、関数により定められていてもよい。この場合、書き込み温度に対応する関数が参照され、対応する読み出し温度での調整値ΔAが割り出される。なお、これらの関数は、製造工程内において同一のものが設定されてもよいし、1または複数のメモリ装置1ごと、あるいは1または複数のブロックBLKごとに固有の関数として設定されてもかまわない。
【0064】
また、調整値ΔAは、書き込み温度と読み出し温度との差(書き込み温度−読み出し温度)に基づくことが可能であり、図12に示されるように、書き込み温度と読み出し温度の差(書き込み・読み出し温度差)と調整値ΔAとの対応が関数に基づいていてもよい。
【0065】
さらに、ある1つのパラメータ(例えば電圧Vcgr)のために、複数の温度組合せテーブルが用意されても良い。この場合、相違する温度組合せテーブルは、別のパラメータの値に基づいて選択される。具体的には、例えば、ブロックごとの消去回数が計数され、かつ(または)あるブロックBLKのいずれかのセルユニットCUからの読み出しの回数がブロックごとに計数される。そして、ある範囲の消去回数および(または)ある範囲の読み出し回数ごとに、電圧Vcgr用の温度組合せテーブルが用意される。そして、読み出しの際、対象のブロックBLKの消去回数および(または)読み出し回数が参照され、参照された消去回数および(または)読み出し回数に対応する温度組合せテーブルから、調整ΔAが選択される。
【0066】
図13は、ある1つのメモリ装置(例えば選択メモリ装置)100用の書き込み温度テーブルを示す。図13に示されるように、書き込み温度テーブルは、各ブロックBLKのアドレスと、当該ブロックBLK中のセルユニットCUへの書き込みのときに計測された温度情報から得たブロックBLKの書き込み温度との対応を示す。メモリシステム1は、多くの場合、複数のセルユニットCUに連続してデータを書き込まれ、典型例として、1つのブロックBLK中のセルユニットCUに連続してデータを書き込まれる。このような書き込みは選択メモリ装置100によって短い期間において完了し、よって、1つのブロックBLK中のセルユニットCUへの書き込みの間、温度センサ17での温度は実質的に一定である。このため、図13に示されるように、各ブロックBLKのアドレスと、当該ブロックBLKへの書き込みの時の1つの温度が関連付けられる。より具体的には、あるブロックBLKについての書き込み温度は、当該ブロックBLKのいずれかのセルユニットCUへの書き込みのときの書き込み温度と関連付けられる。書き込み温度テーブルでの書き込み温度は、温度組合せテーブルで使用される離散的な複数の書き込み温度と同じ複数の温度の組の1つである。
【0067】
本実施形態ではブロックBLKごとに書き込み温度が管理される例を示しているが、書き込み温度は任意の単位で管理されることが可能である。例えば複数のブロックBLKごとに、あるいは1または複数のセルユニットCUごとに管理されることが可能である。さらに、複数のメモリ装置100中に1または複数のブロックBLKごとに管理されてもよい。
【0068】
メモリコントローラ200は、メモリシステム1が電源を供給されてオンしている間、消去済みのブロックBLKへの書き込みが発生する度に、当該ブロックBLKに対応する書き込み温度を知得し、知得された書き込み温度で書き込み温度テーブルを更新する。この点については後に詳述される。また、メモリコントローラ200は、メモリシステム1が電源供給を停止されてオフされるときに、オフされるときの書き込み温度テーブルを構築するのに必要なデータを、メモリ装置100に書き込む。この点についても、書き込み温度テーブル構築に必要なデータの詳細も含めて後に詳述される。
【0069】
図7に戻る。ステップS1に続いて、メモリシステム1は、種々の処理を行う(ステップS2)。種々の処理は、例えば、読み出し、および(または)ブロックBLKx以外のブロックBLKへの書き込みを含む。
【0070】
ステップS3において、全体制御部22は、メモリインターフェイス24を制御して、1ページのサイズの書き込みデータの書き込みをメモリ装置100に指示する。当該指示は、ホスト装置2からの書き込みの指示に基づいてまたはガベージコレクションにおいて送信される場合もあるし、メモリコントローラ200が管理データをメモリ装置100に書き込むためにホスト装置2からの指示なく送信される場合もある。書き込みのために、全体制御部22は、メモリ装置100に書き込まれるべき実体的データを、求められる誤り訂正能力に基づいて定まる大きさのフレームへと分割する。求められる訂正能力は実体的データの性質または実体的データが書き込まれるセルユニットCUの信頼度に基づき得る。全体制御部22は、次いで、ECC回路25を制御して各フレームのための誤り訂正データを生成し、各フレームおよび誤り訂正データを含む書き込みデータを用意する。
【0071】
書き込みの指示は、例えば、ページを指定する信号、書き込みコマンド、アドレス信号、書き込み実行コマンドを含む。アドレス信号は、書き込みデータの書き込み先である、ブロックBLKx中のセルユニットCUのアドレスを指定し、ページを指定する信号は書き込み先のページを指定する。実際には、1セルトランジスタMT当たり2ビットの書き込みの場合、2ページについての書き込み指示が送信される。
【0072】
選択メモリ装置100が書き込み指示を受け取ると、シーケンサ12は、電位生成回路13、ドライバ14、ロウデコーダ15、およびセンスアンプ16を制御して、選択セルユニットCUに書き込みデータを書き込む(ステップS4)。
【0073】
メモリコントローラ200は、書き込みが完了すると、ステップS3での指示に続いて指示される処理が、ブロックBLKxへの書き込みであるかを判断する(ステップS5)。ステップS3に続く処理がブロックBLKxへの書き込みでない場合(ステップS5のNo分岐)メモリコントローラ200は、温度データの送信をメモリ装置100に指示する(ステップS6)。温度データの送信を指示されると、シーケンサ12は、温度センサ17から温度情報MNDを取得する(ステップS7)。次いで、シーケンサ12は、取得された温度情報MNDに含まれる温度を示すデータ(温度データ)をメモリコントローラ200に送信する(ステップS8)。送信される温度データは、ブロックBLKxについての書き込みの時の書き込み温度を含んだ温度データ(書き込み温度データ)である。
【0074】
メモリコントローラ200は、書き込み温度データを受け取ると、書き込み温度テーブルを更新する(ステップS9)。すなわち、メモリコントローラ200は、書き込み温度データに示される書き込み温度を、書き込み温度テーブル中のブロックBLKxのための書き込み温度として保持する。ステップS9はステップS10に継続する。
【0075】
ステップS5においてメモリコントローラ200が、ステップS3に続く処理がブロックBLKxへの書き込みであると判断する場合(ステップS5のYes分岐)、フローはステップS6、S7、S8、およびS9を経ずにステップS10に移行する。
【0076】
ステップS10において、メモリシステム1は、ステップS2と同じく種々の処理を行う。種々の処理は、例えば、ブロックBLKx中の別のセルユニットCUへの書き込みを含む。ステップS10の処理がブロックBLKxとは別の新たなブロックBLKへの書き込みを含む場合、メモリコントローラ200は、新たなブロックBLKへの書き込みの度に、ステップS6〜S9と同様の処理を行って、書き込み温度テーブル中の当該新たなブロックBLKについて書き込み温度を更新する。
【0077】
ステップS10に続いて、メモリコントローラ200は、選択メモリ装置100のブロックBLKx中のあるセルユニットCUy(yは0または自然数)のページからデータを読み出すことを決定する(ステップS11)。読み出しの決定は、ホスト装置2からの読み出しの指示に基づいてまたはガベージコレクションにおいて送信される場合もあるし、ホスト装置2からの指示に基づかずにメモリコントローラ200が管理データを選択メモリ装置100から読み出すとの決定に基づく場合もある。メモリコントローラ200は、何らかの読み出しが必要となると、読み出されるデータが保持されているページおよびそのページの記憶空間を提供するセルユニットCUを特定する。ステップS11では、特定の結果、メモリコントローラ200は、セルユニットCUyからの読み出しが必要と判断する。なお、1セルトランジスタ当たり1ビットの記憶の場合は、ページの特定は、セルユニットCUの特定と同じである。
【0078】
ステップS12において、メモリコントローラ200は、温度データが最も近い過去に読み出された時から基準時間経過したかを判断する(ステップS12)。基準時間経過した場合(ステップS12のYes分岐)、現在の温度に基づく最新の温度データが必要である。その目的で、メモリコントローラ200は、温度データ送信コマンドを選択メモリ装置100に送信する(ステップS13)。
【0079】
シーケンサ12は、温度データ送信コマンドを受け取ると、温度センサ17から温度情報MNDを取得する(ステップS14)。次いで、シーケンサ12は、取得された温度情報MNDに含まれる温度を示すデータをメモリコントローラ200に送信する(ステップS16)。送信される温度データは、ブロックBLKxについての読み出しの時の読み出し温度を含んだ温度データ(読み出し温度データ)である。ステップS16はステップS17に継続する。
【0080】
最も近い過去に温度データが読み出された時から基準時間経過していない場合(ステップS12のNo分岐)、最も近い過去に取得された温度データが読み出し温度データとして使用されることが可能である。このことに基づいて、フローはステップS17に移行する。例えばステップS10における種々の処理のうちの最後の処理において温度データが取得されている場合、最も近い過去に温度データが読み出しされた時から基準時間経過していない。
【0081】
ステップS17において、メモリコントローラ200は、セルユニットCUyからの読み出しの直前の処理がブロックBLKx中のセルユニットCUからの読み出しであるかを判断する。ブロックBLKxからの読み出しでない場合(ステップS17のNo分岐)、メモリコントローラ200は書き込み温度テーブルを参照して、ブロックBLKxの書き込み温度を知得する(ステップS18)。ステップS18はステップS19に継続する。一方、ブロックBLKxからの読み出しである場合(ステップS17のYes分岐)、フローはステップS18を経ずにステップS19に移行する。ステップS17およびS18の組は、ステップS12〜S16の組に先行してもよい。
【0082】
ステップS19において、メモリコントローラ200は、温度組合せテーブルを参照し、ブロックBLKxの読み出し温度および書き込み温度から特定される調整値ΔAを知得する。使用される温度組合せテーブルは、メモリコントローラ200が補正を望むパラメータについてのものである。複数のパラメータが補正される場合、各パラメータ用の温度組合せテーブルが参照されて、各パラメータ用の調整値ΔAが特定される。図11または図12を参照して記述されたような関数が使用される場合、メモリコントローラ200は、ブロックBLKxの読み出し温度および書き込み温度と関数から特定される調整値ΔAを知得する。
【0083】
メモリコントローラ200は、特定された調整値ΔAの使用を選択メモリ装置100に指示する(ステップS21)。すなわち、メモリコントローラ200は、調整の対象のパラメータと、当該パラメータのデフォルトの値に付加される調整値ΔAと、を指定するコマンドをメモリ装置100に送信する。
【0084】
メモリコントローラ200は、ブロックBLKxのセルユニットCUyのページからの読み出しの指示を選択メモリ装置100に送信する(ステップS22)。指示は、例えば読み出しコマンド、ブロックBLKxのセルユニットCUyを指定するアドレス信号、ページを指定する信号、および読み出しの実行コマンドを含む。ステップS21での調整値Δの適用は後続する指示に対してのみ有効であり、本例ではステップS22の読み出し指示に対してのみ有効である。
【0085】
選択メモリ装置100が読み出し指示を受け取ると、シーケンサ12は、セルユニットCUyの読み出し対象ページのデータを読み出す(ステップS23)。読み出しにおいて、シーケンサ12は、適用を指定された調整値ΔAと、当該調整値ΔAの対象のパラメータのデフォルト値との和を使用する。このため、ある同じセルユニットCUからの読み出しであっても、読み出しに使用されるあるパラメータの値は、読み出し温度、およびこのセルユニットCUが含まれるブロックBLKの書き込み温度の組合せに基づいて変化する。読み出されたデータは、選択メモリ装置100から送信され、メモリコントローラ200によって受け取られる(ステップS24)。その後、メモリシステム1は、ステップS2と同じく、種々の処理を行う(ステップS26)。
【0086】
ステップS26の後、メモリシステム1がオフするための終了処理が開始しない限り(ステップS27のNo分岐)、フローはステップS2に戻る。終了処理は、メモリシステム1がオフするための処理を指し、終了処理は例えばホスト装置2からのメモリシステム1への電源供給停止の開始の通知により開始する。終了処理が開始すると(ステップS27のYes分岐)、メモリシステム1は終了処理を行う(ステップS28)。終了処理は、温度組合せテーブルおよび書き込み温度テーブルを含むテーブルを構築するのに必要なデータを、対応する各メモリ装置100に書き込むこと(サブステップSS281)を含む。温度組合せテーブルおよび書き込み温度テーブルを構築するのに必要なデータは、メモリシステム1がホスト装置2から電源供給を受けている間で、終了処理の開始前に定期的に各メモリ装置100に書き込まれてもよい。
【0087】
次に、図14を参照して、温度データの送信の指示と温度データの送信(例えば図7のステップS6およびS7)のために、メモリコントローラ200と選択メモリ装置100との間で送受信される信号DQについて記述される。図14は、第1実施形態に係る温度データの取得のためにメモリコントローラ200と選択メモリ装置100との間で送受信される信号DQを時間に沿って示す。図14に示されるように、メモリコントローラ200は、温度データ読み出しコマンドAAhを送信する。シーケンサ12は、温度データ送信コマンドを受け取ると、温度センサ17から温度情報MNDを取得する。シーケンサ12は、温度情報MNDの取得の間、ローレベルのレディー・ビジー信号RY/BYnを送信する。シーケンサ12は、取得された温度情報MNDに含まれる温度の情報を温度データD0としてメモリコントローラ200に送信する。
【0088】
温度データの読み出しは、図12のような信号の送信によって行われることも可能である。図15に示されるように、メモリコントローラ200は、データ温度の読み出しのためにレジスタ読み出し指示を送信する。レジスタ読み出し指示は、レジスタ読み出しコマンドBBhおよびアドレスADRを含む。レジスタ読み出しコマンドBBhは、レジスタ121のデータの読み出しを指示する。アドレスADRは、レジスタ121中の読み出し対象の領域を指定する。温度データの読み出しのために、メモリコントローラ200は、アドレスADRによって温度情報MNDを保持している領域を指定する。シーケンサ12は、レジスタ読み出しコマンドBBhおよびアドレスADRを受け取ると、レジスタ121中のアドレスADRによって指定された領域に保持されているデータ温度情報MNDを取得する。シーケンサ12は、温度情報MNDの取得の間、ローレベルのレディー・ビジー信号RY/BYnを送信する。シーケンサ12は、取得された温度情報MNDに含まれる温度情報を温度データD0としてメモリコントローラ200に送信する。
【0089】
次に、図16を参照して、メモリ装置100に対する調整値の使用の指示および読み出し(例えば図9のステップS21およびS22)のために、メモリコントローラ200と選択メモリ装置100との間で送受信される信号DQについて記述される。図16は、第1実施形態において、調整値の使用の指示および読み出しのためにメモリコントローラ200と選択メモリ装置100との間で送受信される信号DQを時間に沿って示す。図16は、いずれかの読み出し電圧Vcgrが調整される場合の信号の例を示す。
【0090】
図16に示されるように、調整値の使用を指示するために、メモリコントローラ200は、調整値の使用を指示するコマンドCChを送信する。次いで、メモリコントローラ200は、調整の対象が読み出し電圧VA、VB、およびVCのいずれであるかを指定し(LV)、次いで、調整値ΔDACを示す信号を送信する。調整値ΔDACは、読み出し対象のセルユニットCUが含まれるブロックBLKについての書き込み電圧および読み出し電圧から特定された調整値Δをディジタル値で指定する。調整値ΔDACは、ロワーページからの読み出しのように1つのページからの読み出しに複数の読み出し電圧VAおよびVCを用いた読み出しが必要である場合、読み出し電圧VAおよびVCに共通に使用される。または、相違する読み出し電圧Vcgrのために相違する調整値の組が設けられている場合、すなわち、相違する温度組合せテーブルが用意されている場合、コマンドCCh、対象レベルを指定する信号LV、および調整値ΔDACの組が、各読み出し電圧Vcgrのために送信される。
【0091】
最後の調整値ΔDACの送信に続けて、メモリコントローラ200は、読み出し指示を送信する。読み出し指示は、コマンドDDh、読み出しコマンド00h、読み出し対象のセルユニットCUのアドレス信号ADD、読み出し実行コマンド30hを含む。コマンドDDhは、アドレス信号ADDにより特定されるセルユニットCUの記憶空間による複数のページのうち、読み出し対象のページを指定する。アドレス信号ADDは、セルユニットCUを特定する。読み出し実行コマンド30hが受け取られると、選択メモリ装置100は、ローレベルのレディー・ビジー信号RY/BYnを送信し、次いで、メモリ装置100は指定されたデータD0〜Dp(pは自然数)をメモリコントローラ200に送信する。
【0092】
次に、図17を参照して、読み出し対象のページからのデータの読み出し(ステップS23)がさらに記述される。図17は、第1実施形態においてセルユニットCUyと接続された選択ワード線WLyに読み出しの間に印加される電圧を時間に沿って示す。図17は、ロワーページからの読み出しとアッパーページからの読み出しの両方を示す。実際には、ステップS23において、セルユニットCUyのロワーページおよびアッパーページのうち、ステップS11で読み出し対象と決定された方の読み出しが起こる。
【0093】
図17において、調整値ΔAは、読み出し電圧VAの調整値を特定するための温度組合せテーブルの中の、ブロックBLKxについての書き込み温度および読み出し温度の組から特定された具体的な値を指す。調整値ΔBおよびΔCも同様に、それぞれ、読み出し電圧VBおよびVCの調整値を特定するための温度組合せテーブルの中の具体的な値を指す。
【0094】
または、読み出し電圧VA、VB、およびVCに対して、1つの共通の温度組合せテーブルが用意されて、書き込み温度および読み出し温度の各組合せについての共通の値が適用されてもよい。すなわち、書き込み温度および読み出し温度の各組合せについてΔA、ΔB、およびΔCは等しい。
【0095】
図17は、調整値ΔA、ΔB、およびΔCの各々が正、負、およびゼロの場合を示す。
【0096】
図17に示されるように、ロワーページからの読み出しの場合、シーケンサ12は、デフォルト値の読み出し電圧VAに代えて、デフォルト値の読み出し電圧VAと調整値ΔAとの和をワード線WLxに印加する。調整値ΔAがゼロの場合、シーケンサ12はデフォルト値の電圧VAをワード線WLyに印加する。
【0097】
シーケンサ12は、さらに、デフォルト値の読み出し電圧VCに代えて、デフォルト値の読み出し電圧VCと指定された調整値ΔCとの和をワード線WLyに印加する。調整値ΔCがゼロの場合、シーケンサ12はデフォルトの電圧VCをワード線WLyに印加する。
【0098】
アッパーページからの読み出しの場合、シーケンサ12は、デフォルト値の読み出し電圧VBに代えて、デフォルト値の読み出し電圧VBと指定された調整値ΔBとの和をワード線WLyに印加する。調整値ΔBがゼロの場合、シーケンサ12はデフォルトの電圧VBをワード線WLyに印加する。
【0099】
<1.3.利点>
第1実施形態によれば、メモリコントローラ200はメモリ装置100をより適切に制御できる。詳細は、以下の通りである。
【0100】
一般に、半導体の特性は半導体の温度に依存し、よって、半導体を使用したメモリ装置の特性もメモリ装置の温度に依存する。このため、相違する温度において、あるパラメータについての最適の値は相違する。しかしながら、実際には、メモリ装置は、各パラメータについて、ある特定の温度での最適な値が、相違する温度に対して使用される。よって、最適化の照準の温度と異なる温度では、メモリ装置は最適な動作を行えない場合がある。メモリ装置は、あるパラメータのために最適でない値を使用して動作すると、最適な値を使用した場合と異なる結果をもたらし得る。このことは、メモリ装置が、最適化の照準の温度以外の温度で動作すると、データの誤書き込みおよび(または)誤読み出しを引き起こし得ることに繋がる。メモリ装置が使用される温度の範囲が狭ければ、データの誤書き込みおよび(または)誤読み出しの程度は小さい。
【0101】
ところが、メモリシステム1のようなメモリ装置を含んだメモリシステムは、広い温度範囲で使用される場合がある。このことは、メモリ装置が最適化の照準の温度と大きく異なる温度で動作し得ることを意味し、このような動作は頻繁に誤書き込みおよび(または)誤読み出しを引き起こし得る。
【0102】
またメモリ装置の読み出しの特性は、書き込みにも影響し得る。例えば、ある温度での書き込みのとき、ベリファイ電圧(AV、BV、またはCV)を若干下回るセルトランジスタMTにプログラム電圧を印加した結果、書き込みの時の温度によっては当該セルトランジスタMTの閾値電圧が過剰に上昇し得る。このように読み出し特性は書き込みの時の温度にも影響されるため、たとえ読み出しの時のメモリ装置の温度に基づいて読み出しが行われても、最適化が不十分な可能性がある。すなわち、ある第1温度において調整された値を使用して行われたあるデータの読み出しは、第2温度で当該データが書き込まれていた場合は最適であっても、第3温度で当該データが書き込まれていた場合は最適でない可能性がある。
【0103】
第1実施形態によれば、メモリコントローラ200は、温度組合せテーブルを保持し、ブロックBLKxについての書き込み温度および読み出し温度の組合せから1つの調整値(ΔA)を特定し、調整値と対応するパラメータのデフォルトの値との和の使用をメモリ装置100に指示する。各調整値は、対応する書き込み温度および読み出し温度のときに当該調整値とデフォルト値の和が対応するパラメータのために使用されると、温度に関して最適化された読み出しを可能にするように定められている。このように、各調整値は、読み出し対象のデータが読み出される時の温度と、当該読み出しデータが書き込まれた時の温度の両方に基づく。よって、温度についてより最適化された形でデータが読み出されることが可能である。このことは、メモリシステム1の温度に基づく性能のばらつきを、ある固定値の温度で最適化された値のパラメータを使用するメモリシステムより低減できる。
【0104】
メモリシステム1の温度に基づく性能のばらつきの低減は、メモリシステム1の寿命を延ばすことができる。詳細は以下の通りである。上記のように、一般に、メモリ装置の種々のパラメータの値は、ある固定の温度に対して最適化されている。このため、書き込み温度または読み出し温度がパラメータの最適値の照準の温度と異なると、読み出しデータが多くの誤りを含むことになる。加えて、読み出し温度が書き書き込み温度とかけ離れていると、読み出しデータのエラーレートはさらに上昇する。メモリコントローラ200は、このようなエラーレートが高い状態を検出すると、読み出しデータを保持していたセルユニットCUの劣化が進んでいると判断する。そして、メモリコントローラ200は、劣化が進んだと判断されたセルユニットCUにそのデータの消去後に別のデータを書き込む際、より多くの誤りを訂正できる誤り訂正データを使用する。例えばあるページに図6の上段の大きさの誤り訂正データを使用して書き込まれていたのに対し、図6の中段または下段の大きさの誤り訂正データを使用した書き込みに切り替える。この結果、フレームが縮小し、メモリ装置100によって保持されることが可能なデータの容量が低下する。
【0105】
縮小したフレームが増えると、メモリコントローラ200とメモリ装置100は、必要なデータの読み出しまたは書き込みのためにメモリ装置100へのデータの書き込みまたは読み出しの回数が増加する。このことは、メモリシステム1を劣化させ、寿命を短くする。
【0106】
第1実施形態によれば、上記のように、温度についてより最適化された形でデータが読み出されることが可能であり、このことは、読み出しデータのエラーレートの減少を抑制し、ひいてはフレームの縮小を抑制する。この結果、メモリ装置100でのデータの読み出しまたは書き込みの回数の増加が抑制され、ひいては、メモリシステム1の寿命が延伸されることが可能である。同様の理由により、メモリシステム1の出荷前の試験において、メモリシステム1が劣化を起こしやすいと誤って判断されることが回避され、よって、メモリシステム1の歩留りが向上する。
【0107】
<1.4.変形等>
書き込みの間および読み出しの間に、ある条件が満たれた場合に書き込み温度データおよび読み出し温度データが取得される例が記述された。代わりに、メモリコントローラ200は、選択メモリ装置100から定期的に温度データを取得してもよい。例えば、メモリコントローラ200は、データの読み出しの際に、最後に取得された温度データを、当該読み出しのための読み出し温度データとして扱う。書き込みおよび消去についても同様である。書き込みおよび消去については、当該書き込みまたは消去の指示の後の最初の温度データが使用されてもよい。
【0108】
パラメータのデフォルト値に対して調整値を組合せる形態を説明したが、第1実施形態では、固定のパラメータを動的に変化させて調整をすることができれば良い。例えば、高温書き込みかつ低温読み出し、または低温書き込みかつ高温読み出しの特性に応じて生成されたパラメータ等、新規の特殊パラメータが生成および使用されることが可能である。この場合、調整値とデフォルト値の和を算出されず、生成された、あるいは選ばれた特殊パラメータがそのまま使用される。
【0109】
また、パラメータの調整以外の方法で温度変化に伴う不具合への対応策として、例えば優先度の高いデータが、メモリセルアレイ11中のデータ保護の観点から比較的信頼性の高い領域に書き込まれることが知られている。このような書き込みが第1実施形態と組合せられてもよい。データ保護の観点から比較的信頼性の高い領域は、SLCブロック(1セルトランジスタMT当たり1ビットのデータを保持するように使用されるブロック)BLK、1つのワードラインおきに書くブロックBLK、強い誤り訂正機能で保護される領域を含む。
【0110】
強い誤り訂正機能で保護される所定の領域の例は、図6の下段で示された最も高い誤り訂正能力を実現する方法のように、誤り訂正データの占める割合が高い状況下での同ページ内のユーザデータ領域や、一部をパリティ保存に使用した状況でのユーザデータ領域を含む。
【0111】
更に、パラメータの調整以外の方法で温度変化に伴う不具合への他の対応策として、当該温度変化に比較的大きな交差が生じた際、アクセス対象となっているブロックBLKに対してリフレッシュ処理を実施することも有効である。例えば書き込み時の温度を参照し、読み出し時の温度差が所定閾値以上となった場合にリフレッシュを行う形態や、設定値の上限を上回る高温での書き込み、または設定値の下限を下回る低温での書き込みが行われた際、それぞれの温度が時間経過に伴って設定値範囲内(例えば室温)に戻った際にリフレッシュ処理を実施することも有効である。
【0112】
例えば、リフレッシュ処理の一例として、メモリシステム1全体として上記条件下でガベージコレクションの優先度を動的に変更させたり、ホスト2からの読み出し要求をカウントしておき、カウント値がある閾値まで到達したら一旦リード処理を中断させて、リフレッシュが行われることが可能である。このようなリフレッシュが第1実施形態に組合せられてもよい。
【0113】
また、温度組合せテーブルは、ファームウェアに組み込まれることが可能である。この場合、温度組合せテーブルは、メモリシステム1のオフの度にメモリ装置1に書き込まれることを要しない。
【0114】
(第2実施形態)
第2実施形態は、第1実施形態に類似し、書き込み温度に加えてまたは書き込み温度に代えて、消去の時の温度(消去温度)が使用される。
【0115】
以下の記述は、書き込み温度に加えて消去温度が使用される例に関する。書き込み温度に代えて消去温度が使用される例については、第1実施形態の書き込み温度が消去温度で置換されたのみであり、よって、記述は省略される。
【0116】
<2.1.構成>
第2実施形態のメモリシステム1、メモリコントローラ200、およびメモリ装置100は、第1実施形態のものと同じ要素および接続を有する。一方、第2実施形態では、メモリコントローラ200およびメモリ装置100は、以下に記述される動作を行えるように構成されている。
【0117】
<2.2.動作>
メモリコントローラ200は、メモリシステム1がオンしている間、各メモリ装置100用に図18および図19に示されるテーブルを保持する。図18は、第2実施形態に係る温度組合せテーブルの組を示し、1つのパラメータのための複数の温度組合せテーブルを示す。メモリコントローラ200は、その他の各パラメータのための図18と同様の温度組合せテーブルの組を複数保持する。図18のテーブルの対象のパラメータの例は、第1実施形態と同じく、読み出し電圧VcgrおよびVreadを含むが、これらに限定されない。図19は第2実施形態に係る消去・書き込み温度テーブルを示す。温度組合せテーブルおよび消去・書き込み温度テーブルは、第1実施形態と同じく、例えば、メモリシステム1がオフする前に、対応する記憶装置100に書き込まれる。
【0118】
図18の各温度組合せテーブルは、相違する複数の消去温度についての、読み出し温度と書き込み温度の各組合せに基づく調整値Δ(ΔB0、ΔB1、…)を示す。すなわち、ある温度組合せテーブルは、対応する1つのメモリ装置100がデータの消去の時に温度TE0であった場合の調整値を示す。同様に、相違する複数の消去温度TE0〜TE8のためのそれぞれの温度組合せテーブルが用意される。消去温度TE0〜TE8は、例えば10℃ずつ相違し、例えばそれぞれ0、10、20、30、40、50、60、70、および80℃である。この例とは別の消去温度および差が使用されてもよい。各温度組合せテーブルの構造自体は、第1実施形態の1つのパラメータについての温度組合せテーブルの構造と同じである。ただし、調整値Δの組は、2つの温度組合せテーブルに亘って相違する場合もあれば同じ場合もある。1つの温度組合せテーブルの組が、複数の記憶装置100に対して共通に使用されてもよい。
【0119】
図19に示されるように、消去・書き込み温度テーブルは、複数のブロックの各々についてのエントリを有する。各エントリは、第1実施形態と同様の書き込み温度に加えて、消去温度を含む。あるブロックBLKについての消去温度TE0、TE1、TE2、TE3、TE4、TE5、TE6、TE7、またはTE8は、当該ブロックBLKの消去の時の温度センサ17での測定温度である。消去・書き込み温度テーブルで保持される消去温度および書き込み温度は、温度組合せテーブルで使用される離散的な複数の温度と同じ複数の温度の組の1つである。
【0120】
次に、図20図22を参照して、第2実施形態のメモリシステム1の動作が記述される。図20図22は、第2実施形態のメモリシステム1の動作のフローを示す。図20図22は、フローが必要以上に複雑となることを避けるために、第1実施形態(図7図9と同じく、ブロックBLKxに関連する処理を中心に示す。
【0121】
ステップS1で構築されるテーブルは、温度組合せテーブル、および消去・書き込み温度テーブルを含む。
【0122】
ステップS31において、全体制御部22は、メモリインターフェイス24を制御して、ブロックBLKxのデータの消去を選択メモリ装置100に指示する。当該消去は、例えばホスト装置2からの指示に基づく。または、消去は、ホスト装置2からの指示に基づかずに全体制御部22による決定に基づく。例えば、全体制御部22は、ホスト装置2からの指示とは無関係に、ガベージコレクションおよびリフレッシュを含む実体的データの移動のために、メモリ装置100中のあるブロックBLK中のデータを別のブロックBLKへとコピーし、コピー元のデータを消去することを決定する。消去の指示は、例えば、消去コマンドおよび消去対象ブロックを指定するアドレス信号を含む。
【0123】
選択メモリ装置100が、消去コマンドおよびアドレス信号を受け取ると、シーケンサ12は、電位生成回路13、ドライバ14、ロウデコーダ15、およびセンスアンプ16を制御して、ブロックBLKxのデータを消去する(ステップS32)。
【0124】
消去が完了すると、メモリコントローラ200は、温度データの送信を選択メモリ装置100に指示する(ステップS33)。温度データの送信を指示されると、シーケンサ12は、温度センサ17から温度情報MNDを取得する(ステップS34)。次いで、シーケンサ12は、取得された温度情報MNDに含まれる温度を示すデータをメモリコントローラ200に送信する(ステップS35)。送信される温度データは、ブロックBLKxについての消去の時の消去温度を含んだ消去温度データと称される。
【0125】
メモリコントローラ200は、消去温度データを受け取ると、消去・書き込み温度テーブルを更新する(ステップS36)。すなわち、メモリコントローラ200は、消去温度データに示される消去温度を、消去・書き込み温度テーブル中のブロックBLKxのための消去温度として保持する。次いで、メモリシステム1は種々の処理を行う(ステップS37)。
【0126】
ステップS37の後、ステップS9がステップS41によって置換されることを除いて、メモリコントローラ200は第1実施形態(図7図9)のステップS3、S4、S5、S6、S7、S8、S9、S11、S12、S13、S14、S15、S16、およびS17と同じ処理を行う。ステップS41において、メモリコントローラ200は、ステップS8で知得した書き込み温度データで、消去・書き込み温度テーブルを更新する。すなわち、メモリコントローラ200は、消去温度データに示される消去温度を、消去・書き込み温度テーブル中のブロックBLKxのための消去温度として保持する。
【0127】
ステップS17において、メモリコントローラ200がセルユニットCUxからの読み出しの直前の処理がブロックBLKx中のセルユニットCUからの読み出しでないと判断する場合(No分岐)、フローはステップS42に移行する。ステップS42において、メモリコントローラ200は消去・書き込み温度テーブルを参照して、ブロックBLKxの消去温度および書き込み温度を知得する。ステップS42はステップS43に継続する。
【0128】
一方、ブロックBLKxからの読み出しである場合(ステップS17のYes分岐)、フローはステップS42を経ずにステップS43に移行する。ステップS17およびS42の組は、ステップS12〜S16の組に先行してもよい。
【0129】
ステップS43において、メモリコントローラ200は、温度組合せテーブルを参照し、ブロックBLKxの読み出し温度、消去温度、ならびに書き込み温度から特定される調整値Δを知得する。使用される温度組合せテーブルは、メモリコントローラ200が補正を望むパラメータについてのものである。複数のパラメータが補正される場合、各パラメータ用の温度組合せテーブルが参照されて、各パラメータ用の調整値Δが特定される。
【0130】
ステップS43の後、1点を除いて、メモリコントローラ200は、第1実施形態(図7図9)のステップS21、S22、S23、S24、S26、およびS28と同じ処理を行う。異なる1点は、ステップS27のNo分岐がステップS2に継続することである。
【0131】
<2.3.利点>
第2実施形態によれば、メモリコントローラ200は、第1実施形態と同じく、各パラメータについての温度組合せテーブルを保持し、書き込み温度および読み出し温度の組合せから特定された調整値(Δ)と対応するパラメータのデフォルトの値との和の使用をメモリ装置100に指示する。このため、第1実施形態と同じ利点を得られる。
【0132】
さらに、第2実施形態によれば、メモリコントローラ200は、1つのパラメータについて、複数の相違する消去温度の各々についての温度組合せテーブルを保持する。そして、メモリコントローラ200は、ブロックBLKxについての消去温度、書き込み温度、および読み出し温度の組合わせから1つの調整値を特定し、調整値と対応するパラメータのデフォルトの値との和の使用をメモリ装置100に指示する。このため、温度について第1実施形態よりもさらに最適化された形でデータが読み出されることが可能である。ひいては、第1実施形態において記述されたのと同じ原理により、第2実施形態のメモリシステム1の寿命は第1実施形態での寿命よりさらに長く、第2実施形態のメモリシステム1の歩留りは第1実施形態での歩留まりよりさらに高い。
【0133】
(第3実施形態)
第3実施形態は、書き込みの最適化に関する。
【0134】
<3.1.構成>
第3実施形態のメモリシステム1、メモリコントローラ200、およびメモリ装置100は、第1実施形態のものと同じ要素および接続を有する。一方、第3実施形態では、メモリコントローラ200およびメモリ装置100は、以下に記述される動作を行えるように構成されている。
【0135】
<3.2.動作>
メモリコントローラ200は、メモリシステム1がオンしている間、図23に示されるテーブルを保持する。図23は、第3実施形態のメモリコントローラ200によって構築される書き込み温度・パラメータ調整値テーブルを示す。図23に示されるように、書き込み温度・パラメータ調整値テーブルの各行は、1つの書き込み温度についての調整値ΔC(ΔC10、ΔC11、…)を示す。各行での書き込み温度は、下隣りの行での温度と、ある大きさだけ離れている。書き込み温度TW0〜TW8は、例えばそれぞれ0、10、20、30、40、50、60、70、および80℃である。各列は、書き込みの間に使用される1つのパラメータについての情報を示す。パラメータの例は、開始プログラム電圧Vpgmi、差ΔVpgm、電圧Vpass、ベリファイ電圧Vvf、およびプログラム電圧印加時間Tを含み、しかしこれらに限定されない。開始プログラム電圧Vpgmi、書き込みの間の複数のプログラムループのうちの最初のプログラムループにおいて選択ワード線WLに印加される電圧である。差ΔVpgmは、書き込みの間の複数のプログラムループにおいて選択ワード線WLにそれぞれ印加される複数の電圧のうちの、第p(pは自然数)プログラムループでの電圧と第p+1プログラムループでの電圧の差である。電圧Vpassは、書き込みの間に選択ワード線WL以外のワード線(非選択ワード線)WLに印加される。プログラム電圧印加時間Tは、各プログラムループにおいて、選択ワード線WLにプログラム電圧Vpgmが印加される時間である。
【0136】
次に、図24および図25を参照して、第3実施形態のメモリシステム1の動作が記述される。図24および図25は、第3実施形態のメモリシステムの動作のフローを示す。図24および図25は、フローが必要以上に複雑となることを避けるために、図7図9と同じく、ブロックBLKxに関連する処理を中心に示す。
【0137】
ステップS1で構築されるテーブルは、書き込み温度・パラメータ調整値テーブルを含む。ステップS2に続いて、メモリコントローラ200は、ブロックBLKx中のセルユニットCUyへデータを書き込むことを決定する(ステップS51)。書き込みの決定は、例えばホスト装置2からの書き込みの指示に基づき、または、ホスト装置2からの指示に基づかず、メモリコントローラ200が管理データをメモリ装置100に書き込むとの決定に基づく。
【0138】
次いで、メモリコントローラ200は、ステップS12を行う。基準時間経過した場合(ステップS12のYes分岐)、現在の温度データを取得するために、メモリコントローラ200は、ステップS6、S7、およびS8を行う。ステップS8はステップS52に継続する。基準時間経過していない場合(ステップS12のNo分岐)も、フローはステップS52に継続する。
【0139】
ステップS52において、メモリコントローラ200は、書き込み温度・パラメータ調整値テーブルを参照し、知得された書き込み温度から特定される1または複数の調整値ΔCを知得する。次いで、メモリコントローラ200は、特定された調整値ΔCの使用をメモリ装置100に指示する(ステップS21)。次いで、ステップS53において、メモリコントローラ200は、選択メモリ装置100に書き込みを指示する。指示のために、書き込みコマンド、セルユニットCUy、を特定するアドレスを示す情報、ページを特定する情報、および書き込みデータが送信される。選択メモリ装置100は、指示を受けると、指示された処理を実行する(ステップS4)。
【0140】
ステップS4に続いて、ステップS27およびS28が行われる。終了処理が開始しない限り(ステップS27のNo分岐)、フローはステップS2に戻る。
【0141】
<3.3.利点>
第3実施形態によれば、メモリコントローラ200は、書き込み温度・パラメータ調整値テーブルを保持し、書き込み温度を知得し、知得された書き込み温度に基づいて選択された調整値(ΔC)および対応するパラメータのデフォルト値の和の使用をメモリ装置100に指示する。第1実施形態において記述されたように、書き込みの時の温度はメモリ装置100の書き込み性能に影響する。よって、温度についてより最適化された形でデータが書き込まれることが可能である。このことは、メモリシステム1の温度に基づく性能のばらつきを、ある固定値の温度で最適化された値のパラメータを使用するメモリシステムより低減できる。また、書き込みの時の温度に基づいて最適化された電圧による書き込みがなさることにより、セルユニットCUへの不適切な電圧印加に伴うセルユニットCUのデータ信頼性劣化を軽減し、メモリシステム1の寿命を改善できる。
【0142】
(第4実施形態)
第4実施形態は、消去の最適化に関する。
【0143】
<4.1.構成>
第4実施形態のメモリシステム1、メモリコントローラ200、およびメモリ装置100は、第1実施形態のものと同じ要素および接続を有する。一方、第4実施形態では、メモリコントローラ200およびメモリ装置100は、以下に記述される動作を行えるように構成されている。
【0144】
<4.2.動作>
メモリコントローラ200は、メモリシステム1がオンしている間、図26に示されるテーブルを保持する。図26は、第4実施形態のメモリコントローラ200によって構築される消去温度・パラメータ調整値テーブルを示す。図26に示されるように、消去温度・パラメータ調整値テーブルの各行は、1つの消去温度についての調整値ΔD(ΔD10、ΔD11、…)を示す。各行での消去温度は、下隣りの行での温度と、ある大きさだけ離れている。消去温度TE0〜TE8は、例えばそれぞれ0、10、20、30、40、50、60、70、および80℃である。各列は、消去の間に使用される1つのパラメータについての情報を示す。パラメータの例は、消去ベリファイ電圧Vevfを含み、しかしこれに限定されない。消去ベリファイ電圧Vevfは、消去の完了の確認のために消去対象のブロックBLK中のワード線WLに印加される。すなわち、消去対象のブロックBLKの全ワード線WLに0Vが印加され、かつ、セルトランジスタMTの基板(ピラーPL)にVera(例えば20V)が印加されることで消去が行われ、消去動作の後、セルトランジスタMTの状態をセンスするために印加される。
【0145】
次に、図27および図28を参照して、第4実施形態のメモリシステム1の動作が記述される。図27および図28は、第4実施形態のメモリシステムの動作のフローを示す。図27および図28は、フローが必要以上に複雑となることを避けるために、図7図9と同じく、ブロックBLKxに関連する処理を中心に示す。
【0146】
ステップS1で構築されるテーブルは、消去温度・パラメータ調整値テーブルを含む。ステップS2に続いて、メモリコントローラ200は、ブロックBLKx中のデータの消去を決定する(ステップS111)。消去の決定は、例えばホスト装置2からの書き込みの指示に基づく。
【0147】
次いで、メモリコントローラ200は、ステップS12を行う。基準時間経過した場合(ステップS12のYes分岐)、現在の温度データを取得するために、メモリコントローラ200は、ステップS33、S34、およびS35を行う。ステップS35はステップS112に継続する。基準時間経過していない場合(ステップS12のNo分岐)も、フローはステップS112に継続する。
【0148】
ステップS112において、メモリコントローラ200は、消去温度・パラメータ調整値テーブルを参照し、知得された消去温度から特定される調整値ΔDを知得する。次いで、メモリコントローラ200は、特定された調整値ΔDの使用をメモリ装置100に指示する(ステップS21)。次いで、ステップS113において、メモリコントローラ200は、選択メモリ装置100に消去を指示する。指示のために、消去コマンド、ブロックBLKxを特定するアドレスを示す情報が送信される。
【0149】
選択メモリ装置100は、指示を受けると、ブロックBLKxのデータを消去する(ステップS114)。消去は、データ消去のための電圧の印加、および消去ベリファイを含む。消去において、シーケンサ12は、適用を指定された調整値ΔDと、当該調整値ΔDの対象のパラメータのデフォルト値との和を使用する。
【0150】
ステップS114に続いて、ステップS27およびS28が行われる。終了処理が開始しない限り(ステップS27のNo分岐)、フローはステップS2に戻る。
【0151】
<4.3.利点>
第4実施形態によれば、メモリコントローラ200は、消去温度・パラメータ調整値テーブルを保持し、消去温度を知得し、知得された消去温度に基づいて選択された調整値(ΔD)および対応するパラメータのデフォルト値の和の使用をメモリ装置100に指示する。書き込みおよび読み出しと同様に、消去の時の温度はメモリ装置100の消去の性能に影響する。特に、消去ベリファイは相違する電圧を使用するものの読み出しと同じであり、よって消去ベリファイは消去ベリファイの時の温度に影響される。このため、消去温度に基づく消去によって温度についてより最適化された形でデータが消去されることが可能である。このことは、メモリシステム1の温度に基づく性能のばらつきを、ある固定値の温度で最適化された値のパラメータを使用するメモリシステムより低減できる。
【0152】
(第5実施形態)
第5実施形態では、第1〜3実施形態のメモリコントローラによる動作がホスト装置2により行われる。
【0153】
<5.1.構成>
図29は、第5実施形態の情報処理システム4の機能ブロックを示す。図29に示されるように、情報処理システム4は、ホスト装置2および1または複数のメモリシステム1を含む。図29は1つのメモリシステム1の例を示し、以下の記述は1つのメモリシステム1の例に関する。
【0154】
ホスト装置2は、CPU41、RAM42、およびコントローラ43を含む。RAM42は、情報処理システム4が電源を供給されてオンしている間、種々のプログラム(ファームウェア)および種々のデータを保持する。保持されるプログラムの例は、オペレーティングシステム(OS)、ファイルシステム、アプリケーションソフトウェアレイヤ等を格納している。また、RAM42は、メモリ装置温度情報231を含む。上記のようにメモリ装置温度情報231は、温度組合せテーブルおよび書き込み温度テーブルを含む。
【0155】
CPU41は、RAM42上のプログラムを実行することにより、種々の処理を行う。CPU41はまた、PCIe等の通信規格に則ったバスを介してコントローラ43に接続されている。CPU41は、PCIeに則ってコントローラ43と通信し、PCIeに則ってコントローラ43を制御する。
【0156】
コントローラ43はまた、ATA、SATA、およびSAS等の通信規格に則ったバスを介して各メモリシステム1と接続されている。コントローラ43は、CPUが則るインターフェイスと、メモリシステム1がその外部との通信のために則るインターフェイスが相違する場合に、2つのインターフェイスの一方に則った信号を他方に則った信号に変換する。
【0157】
ホスト装置2は、さらに、ネットワークと接続されるための要素を含んでいてもよい。
【0158】
ホスト装置2は、第1実施形態と同様に、メモリシステム1にデータを書き込んだり、メモリシステム1からデータを読み出したり、メモリシステム1中のデータを消去したりすることをメモリシステム1に指示できる。これらのデータの書き込み、データの読み出し、およびデータの読み出しは、ホスト装置2により実行を決定されたコンパクションおよび(または)リフレッシュの一部であり得る。さらに、ホスト装置2は、データの書き込み、読み出し、および消去以外の指示をメモリシステム1に送信することができる。そのような指示は、例えば、メモリ装置100の状態を示す信号の出力、ホスト装置2によって開始および管理されるガベージコレクション、種々の条件を指定した上でのデータの書き込み、読み出し、および消去を含む。これらの処理のメモリシステム1への指示の実行は、OS、アプリケーションソフトウェアレイヤ、ファイルシステムにより決定される。
【0159】
メモリシステム1は、第1実施形態のものと同じ要素および接続を有する。
【0160】
<5.2.動作>
図30図32は、第5実施形態の情報処理システム4の動作のフローを示し、第5実施形態が第1実施形態に適用された例を示す。図30図32は、フローが必要以上に複雑となることを避けるために、ある論理アドレス群LBxに関連する処理を中心に示す。論理アドレス群LBは、1つの論理アドレス、または連続するある個数の論理アドレスの組である。図30図32のフローは、図7図9のフローに類似する。主な相違点は、図7図9のフローではメモリコントローラ200によって行われるいくつかのステップがホスト装置2による指示に基づくことである。
【0161】
図30に示されるように、情報処理システム4は、起動すると、起動処理を行う(ステップS61)。起動処理は、情報処理システム4が、メモリシステム1中のデータを使用した情報処理が可能な状態になるまでに必要な処理を指す。起動処理は、ホスト装置2(具体的にはRAM42上のプログラム)およびメモリコントローラ400による、情報処理システムの動作に必要な種々の管理テーブルの構築を含む。具体的には、ステップS61は、サブステップSS611およびSS612を含む。サブステップSS611およびSS612はサブステップSS11およびSS12にそれぞれ類似する。
【0162】
サブステップSS611において、ホスト装置2は、温度組合せテーブルおよび書き込み温度テーブルの構築に必要なデータを指定して、これらのデータの読み出しをメモリシステム1に指示する。メモリシステム1は、指示を受け取ると、指示されたデータをホスト装置2に送信する。また、サブステップS611において、メモリコントローラ200は、メモリコントローラ200にとって必要なテーブルの構築に必要なデータを各メモリ装置100から読み出す。
【0163】
サブステップSS612において、ホスト装置2は受け取られたデータから温度組合せテーブルおよび書き込み温度テーブルを構築し、メモリコントローラ200は受け取られたデータからテーブルを構築する。温度組合せテーブルおよび書き込み温度テーブルは、第1実施形態のものと同じである。ただし、書き込み温度テーブルは、第1実施形態でのブロックBLKごとの書き込み温度の情報に代えて、論理アドレス群LBごとの書き込み温度の情報を示す。
【0164】
ステップS62において、情報処理システム4は種々の処理を行う。種々の処理は、例えば、読み出し、および(または)論理アドレス群LBx以外の論理アドレス群LB中の論理アドレスを付されたデータ書き込みを含む。ステップS63において、ホスト装置2は、論理アドレス群LBx中の論理アドレスLAyを付されたデータの書き込みをメモリシステム1に指示する。ステップS64において、メモリシステム1は、指示された書き込みを行う。書き込みにおいて、メモリコントローラ200は、論理アドレスLAyを付されたデータを書き込むブロックBLKを決定し、論理アドレスLAyと決定されたブロックBLKとの関連付けをアドレス変換テーブルに反映させる。
【0165】
ステップS65において、ホスト装置2はステップS63での指示に続いて指示される処理が、論理アドレス群LBx中の論理アドレスを付されたデータの書き込みであるかを判断する。ステップS63に続く処理が論理アドレス群LBx中の論理アドレスを付されたデータの書き込みでない場合(ステップS65のNo分岐)、ホスト装置2は、温度データの送信をメモリシステム1に指示する(ステップS66)。温度データの送信の指示のために、ホスト装置2は、温度データ読み出しコマンドをメモリシステム1に送信する。メモリコントローラ200は、ホスト装置2からの温度データ読み出しコマンドを受け取ると、ステップS64で指示された書き込みの対象の選択メモリ装置100に、温度データの読み出しを指示する。ステップS67において、シーケンサ12はステップS7と同じ動作を行って温度データを取得し、これを書き込み温度データとしてメモリコントローラ200に送信する。ステップS68において、メモリコントローラ200は、書き込み温度データを、ホスト装置2に送信する。
【0166】
ステップS69において、ホスト装置2は、書き込み温度データを受け取ると、書き込み温度テーブルを更新する。ステップS69はステップS70に継続する。
【0167】
ステップS63に続く処理が論理アドレス群LBx中の論理アドレスを付されたデータ書き込みである場合(ステップS65のYes分岐)、フローはステップS66、S67、S68、およびS69を経ずにステップS70に移行する。
【0168】
ステップS70において、情報処理システム4は、ステップS62と同じく種々の処理を行う。フローが、ステップS65のYes分岐からステップS70に到達した場合は、ステップS70での処理は、論理アドレス群LBx中の論理アドレスを付されたデータの書き込みである。
【0169】
ステップ71において、ホスト装置2は、任意の処理・判断に基づいて、論理アドレス群LBx中のある論理アドレスLAyを付されたデータを読み出すことを決定する(ステップS71)。ステップS72において、ホスト装置2は、温度データが最も近い過去に読み出された時から基準時間経過したかを判断する。基準時間経過した場合(ステップS72のYes分岐)、ホスト装置2は、温度データ読み出しコマンドをメモリシステム1に送信する(ステップS73)。
【0170】
ステップS74において、シーケンサ12はステップS14と同じ動作を行って温度データを取得し、これを読み出し温度データとしてメモリコントローラ200に送信する。ステップS76において、メモリコントローラ200は、読み出し温度データをホスト装置2に送信する。
【0171】
最も近い過去に温度データが読み出された時から基準時間経過していない場合(ステップS72のNo分岐)、ホスト装置2は最も近い過去に取得された温度データを使用することを決定して、フローはステップS77に移行する。
【0172】
ステップS77において、ホスト装置2は、論理アドレスLAyを付されたデータの読み出しの直前の処理が論理アドレス群LBxの中の論理アドレスLAのデータの読み出しであるかを判断する。論理アドレス群LBx中の論理アドレスLAのデータの読み出しでない場合(ステップS77のNo分岐)、ホスト装置2は書き込み温度テーブルを参照して、論理アドレス群LBxの書き込み温度を知得する(ステップS78)。ステップS78はステップS79に継続する。一方、論理アドレス群LBx中の論理アドレスLAのデータの読み出しである場合(ステップS77のYes分岐)、フローはステップS78を経ずにステップS79に移行する。ステップS79において、ホスト装置2は、温度組合せテーブルを参照し、論理アドレス群LBxの読み出し温度および書き込み温度から特定される調整値ΔAを知得する。
【0173】
ステップS91において、ホスト装置2は、特定された調整値ΔAと調整の対象のパラメータのデフォルト値との和の使用をメモリシステム1に指示する。ステップS92において、ホスト装置2は、論理アドレス群LBx中の論理アドレスLAyのデータの読み出しをメモリシステム1に指示する。
【0174】
ステップS93において、メモリシステム1は、指示されたデータを読み出す。すなわち、シーケンサ12は、アドレス変換テーブルを参照して、メモリ装置100中の読み出し対象のデータを保持するセルユニットCUおよびページを特定し、特定されたページからデータを読み出し、読み出し対象のデータをホスト装置2に送信する。読み出しのとき、シーケンサ12は、適用を指定された調整値ΔAと、当該調整値ΔAの対象のパラメータのデフォルト値との和を使用する。ステップS94において、ホスト装置2は、読み出しデータを受け取る。その後、メモリシステム1は、ステップS62と同じく、種々の処理を行う(ステップS96)。
【0175】
情報処理システム4がオフするための終了処理が開始しない限り(ステップS97のNo分岐)、フローはステップS62に戻る。終了処理は、情報処理システム1がオフするための処理を指し、終了処理は例えばホスト装置2からのメモリシステム1への電源供給停止の開始の通知により開始する。終了処理が開始すると(ステップS97のYes分岐)、情報処理システム4は終了処理を行う(ステップS98)。終了処理は、温度組合せテーブルおよび書き込み温度テーブルを含む管理テーブルを構築するのに必要なデータを、対応するメモリ装置100に書き込むこと(サブステップSS981)を含む。温度組合せテーブルおよび最新の書き込み温度テーブルを構築するのに必要なデータは、メモリシステム1がホスト装置2から電源供給を受けている間で、終了処理の開始前に定期的に各メモリ装置100に書き込まれてもよい。温度組合せテーブルは、第1実施形態の変形例と同じく、ファームウェアに組み込まれることが可能である。この場合、温度組合せテーブルは、情報処理システム1のオフの度にメモリ装置1に書き込まれることを要しない。
【0176】
第5実施形態が第2実施形態に適用された形態は第2実施形態の図20図22のフローに類似し、相違点として、上記の図30図32のフローに関する記述が適用される。主な相違点は、図20図22のフローにおいてメモリコントローラ200によって行われるいくつかのステップがホスト装置2による指示に基づくことである。図19に示される消去・書き込み温度テーブルは、ホスト装置2により保持される。また、論理アドレス群LBxを付されたデータの消去は例えば情報処理システム1のユーザの処理に従ってホスト装置2により決定され、ホスト装置2はメモリシステム1に消去を指示する。メモリシステム1は、指示された消去を、アドレス変換テーブル等の管理データを更新しつつ、実行する。また、ホスト装置2は、温度データの送信をメモリシステム1に指示する。指示が受け取られると、メモリコントローラ200は、温度データの送信をメモリ装置100に指示し、消去温度データをメモリ装置100から受け取り、消去温度データをホスト装置4に送信する。ホスト装置2は温度組合せテーブルを更新する。
【0177】
読み出しの時、ホスト装置2は、読み出し温度データの送信をメモリシステム1に指示する。メモリコントローラ200は、指示を受け取ると、温度データの送信をメモリ装置100に指示し、温度データをメモリ装置100から受け取り、温度データをホスト装置2に送信する。次いで、ホスト装置2は、温度組合せテーブルを参照して、読み出し温度、および読み出しデータの消去温度ならびに書き込み温度から、対応する調整値ΔBを知得する。続いて、ホスト装置2は、調整値ΔBを使用して対応する論理アドレス群LB中の論理アドレスLAyのデータを読み出することをメモリシステム1に指示する。
【0178】
また、第5実施形態が第3実施形態に適用された形態は第5実施形態の図24図25のフローに類似し、相違点として、上記の図30図32のフローに関する記述が適用される。主な相違点は、図24図25のフローにおいてメモリコントローラ200によって行われるいくつかのステップがホスト装置2による指示に基づくことである。図23に示される温度テーブルは、ホスト装置2により保持される。ホスト装置2は、ある論理アドレス群LB中の論理アドレスLAyへの書き込みを決定すると、書き込み温度データの送信をメモリシステム1に指示する。メモリコントローラ200は、指示を受け取ると、温度データの送信をメモリ装置100に指示し、温度データをメモリ装置100から受け取り、温度データを読み出し温度データとしてホスト装置2に送信する。次いで、ホスト装置2は、温度テーブルを参照して、書き込み温度データから、対応する調整値ΔCを知得する。続いて、ホスト装置2は、調整値ΔCを使用してデータを書き込むことをメモリシステム1に指示する。
【0179】
<5.3.利点>
第5実施形態によれば、ホスト装置2によって、第1〜第3実施形態と同じく、温度についてより最適化されたデータの読み出しおよび(または)書き込みが行われる。温度について最適化されたデータの読み出しおよび(または)書き込みがホスト装置2の主導により行われても、第1〜第3実施形態と同じ利点が得られる。
【0180】
(第6実施形態)
第6実施形態は、第3実施形態に適用され、書き込みの時のベリファイ電圧の調整に関する。
【0181】
<6.1.構成>
第6実施形態のメモリシステム1、メモリコントローラ200、およびメモリ装置100は、第1実施形態のものと同じ要素および接続を有する。一方、第6実施形態では、メモリコントローラ200およびメモリ装置100は、以下に記述される動作を行えるように構成されている。第6実施形態では、選択ワード線WLの位置に基づいて、ベリファイ電圧等が調整される。
【0182】
<6.2.動作>
図33は、第6実施形態の選択メモリ装置100への書き込みの間に選択ワード線WLに印加される電圧の一部を時間に沿って示す。図33に示されるように、書き込みは複数のプログラムループを含む。各プログラムループは、プログラム、およびその他のステージ(ベリファイのステージ、書き込み未完了セルトランジスタMTの計数のステージ等)を含む。各プログラムにおいて選択ワード線WLに電圧が印加される。第pプログラムループのプログラムにおいて選択ワード線WLに印加される電圧は、第p−1プログラムループのプログラムにおいて選択ワード線WLに印加される電圧より、差ΔVpgmL高い。差ΔVpgmLは、デフォルト値の差ΔVpgmより高い。デフォルトの差ΔVpgmは、メモリ装置100の初期状態(値が変更されていない状態)で使用される値である。
【0183】
差ΔVpgmLの使用は、メモリコントローラ200により指示される。差ΔVpgmLの使用は、例えば書き込み指示に先行する調整コマンドにより指示される。調整コマンドは、差ΔVpgmの値(または差ΔVpgmと差ΔVpgmLとの差)を指定してもよい。例えば、メモリコントローラ200は、メモリ装置100への大半の書き込みにおいて、差ΔVpgmLの使用を指示する。例えば、メモリコントローラ200は、メモリ装置100への全ての書き込みにおいて差ΔVpgmLの使用を指示してもよい。以下の記述は、いずれの書き込みも差ΔVpgmLが使用される例に基づく。
【0184】
図34は、第6実施形態において、書き込みのためにメモリコントローラ200から選択メモリ装置100に送信される信号を時間に沿って示す。図34に示されるように、メモリコントローラ200は、調整値使用指示を送信する。調整値使用指示は、コマンドZZh、および調整値ΔDAC2を示す信号を含む。コマンドZZhは、後続の書き込み指示での書き込みにおいて、ベリファイ電圧について、デフォルトの値と異なる値を使用することを指示する。コマンドZZhにより使用を指示されるベリファイ電圧の値については後述される。調整値ΔDAC2は、デフォルト値に対する調整値(後述の調整値ΔVvf)を示す。
【0185】
調整値ΔDAC2を示す信号に続いて、メモリコントローラ200は、書き込み指示を送信する。書き込み指示は、コマンドXβh(βは1または2)、コマンド80h、アドレス信号ADD、書き込みデータD0〜Dr(rは自然数)、およびコマンドγδh(γδはYYまたは10)を含む。コマンドXβhは、書き込み対象のページを指定し、書き込み対象のページに基づいて相違する。例えばロワーページおよびアッパーページへの書き込みを示すために、それぞれコマンドX1hおよびX2hが送信される。また、1セルトランジスタ当たり1ビットの記憶の場合、コマンドXβhは送信されない。
【0186】
コマンドγδhは、書き込みの保留または実行を指示する。2ページのデータは、書き込み対象のセルユニットCUに一括して書き込まれる。このため、2ページのデータが選択メモリ装置100に送信されていなければ、書き込みの保留を指示するために、コマンドγδhの位置で、コマンドYYhが送信される。一方、2ページのデータがメモリ装置100に送信されていれば、書き込みの実行を指示するために、コマンドγδhの位置でコマンド10hが送信される。
【0187】
次に、図35および図36を参照して、調整値使用指示に後続する書き込みが記述される。図35は、第6実施形態での調整値使用指示に後続する書き込み指示による書き込みを示し、このような書き込みでの選択ワード線WLに印加される電圧を時間に沿って示す。図35に示されるように、各プログラムループは、上記のプログラムのステージ、および後続するベリファイのステージおよび計数のステージを含む。
【0188】
ベリファイステージは、ベリファイが行われるプログラムループ番号に応じて、Aレベル、Bレベル、およびCレベルの1つまたは複数についてのベリファイを含む。例えば、プログラムループ番号が小さい間は、Cレベルまで閾値電圧が上昇するセルトランジスタMTは無いため、AレベルおよびBレベルについてのベリファイが行われる。一方、プログラムループ番号が大きい間は、Aレベルへと書き込まれるセルトランジスタMTはみなベリファイをパスしているため、Aレベルについてのベリファイは行われない。
【0189】
Aレベル、Bレベル、およびCレベルのためのベリファイの間、選択ワード線WLに、それぞれベリファイ電圧AVS、BVS、およびCVSが印加される。ベリファイ電圧AVS、BVS、およびCVSは、それぞれデフォルトのベリファイ電圧AV、BV、CVより小さい。ベリファイ電圧AVSとベリファイ電圧AVとの差、ベリファイ電圧BVSとベリファイ電圧BVとの差、およびベリファイ電圧CVSとベリファイ電圧CVとの差は、いずれも調整値ΔVvfである。調整コマンドZZhは、ベリファイ電圧Vvfのデフォルトの値から調整値ΔVvfを減じた値をベリファイで使用することを指示する。
【0190】
ベリファイ電圧AVSとベリファイ電圧AVとの差、ベリファイ電圧BVSとベリファイ電圧BVとの差、およびベリファイ電圧CVSとベリファイ電圧CVとの差は、相互に異なっていてもよい。以下の例は、相違するレベルのために同じ差ΔVvfが使用される例に基づく。
【0191】
調整値ΔVvfは、選択ワード線WLの物理的な位置に依存して変動する。すなわち、相違する選択ワード線WLのために、値の相違するΔVvfが使用される。図36は、第6実施形態での各ワード線WLのアドレスと、対応する調整値ΔVvfとを示す。図36は、1ストリングSTRが16のワード線WLを含む例を示す。以下、ワード線WL0〜WL15にそれぞれ対応する調整値ΔVvf0〜ΔVvf15との呼称が使用される。ワード線WL0はワード線WL0〜WL15のうちで第1端部に位置し、選択ゲート線SGSLに最も近いワード線WLである。ワード線WL15はワード線WL0〜WL15のうちで第2端部に位置し、選択ゲート線SGDLに最も近いワード線WLである。ワード線WLε+1(εは1〜14の自然数)は、ワード線WLεのz軸に関して上方(ウェルpwからより遠い方)に位置する。ワード線WL0〜WL15の組の中で、第1端部(ワード線WL0)と第2端部(ワード線WL15)との間に位置し、第1端部(ワード線WL0)からの距離と、第2端部(ワード線WL15)からの距離との差が最も小さい箇所に位置するのが中央のワード線WLである。本実施例では、ワード線WL7およびワード線WL8の各々が中央に位置する。ただし、「中央」との名称は、本明細書において説明の便宜上付されたものであり、中央のワード線WLと第1端部(ワード線WL0)との距離、および中央のワード線WLと第2端部(ワード線WL15)との距離とは等しく設けられる必要はない。
【0192】
図36に示されるように、ワード線WL0およびWL15(両端のワード線WL)のための調整値ΔVvf0およびVvf15は、調整値ΔVvf0〜ΔVvf15のうちで最大である。一方、中央のワード線WL7およびWL8のための調整値ΔVvf7およびVvf8は、ΔVvf0〜ΔVvf15のうちで最小であり、例えばゼロである。そして、調整値ΔVvf0、Vvf1、Vvf2、Vvf3、Vvf4、Vvf5、Vvf6、およびVvf7は、この順でより低い値を有する。同じく、調整値ΔVvf15、Vvf14、Vvf13、Vvf12、Vvf11、Vvf10、Vvf9、およびVvf8は、この順でより低い値を有する。
【0193】
1ストリングSTRがより多いまたはより少ないワード線WLを含む場合も同じである。すなわち、両端のワード線WLのための調整値ΔVvfが最大の値を有し、中央のワード線WLのための調整値ΔVvfが最小の値を有し、より端に近いワード線WLのための調整値ΔVvfはより大きい。同じ傾向が、ベリファイ電圧AVのための調整値ΔVvfの組、ベリファイ電圧BVのための調整値ΔVvfの組、およびベリファイ電圧CVのための調整値ΔVvfの組が相違する値を有する場合にも当てはまる。すなわち、調整値ΔVvfの各組においてより端に近いワード線WLがより大きい調整値ΔVvfを有し、相違する組での同じワード線WLyのそれぞれのための調整値ΔVvfyは同じまたは相違する値を有する。
【0194】
図37は、第6実施形態のメモリシステムの動作のフローを示す。ステップS101において、メモリコントローラ200は、選択メモリ装置100に差ΔVpgmLの使用を指示する。ステップS102において、メモリコントローラ200は、選択メモリ装置100に調整値ΔVvfyを使用した書き込みを指示する。ステップS103において、選択メモリ装置100は、差ΔVpgmLを使用してプログラムを行い、調整値ΔVvfyを使用してベリファイを行う。
【0195】
第6実施形態は、第5実施形態と組合せられてもよい。すなわち、差ΔVpgmLの使用および調整値ΔVvfの付加されたベリファイ電圧Vvfの使用がホスト装置2により決定される。そして、ホスト装置2は決定された書き込みをメモリシステム1に指示する。メモリコントローラ200は、指示された書き込みをメモリ装置100に対して行う。
【0196】
<6.3.利点>
第6実施形態によれば、メモリシステム1の書き込みの高速化と、書き込みの最適化による読み出しエラーの低減の両方が実現されることが可能である。詳細は以下の通りである。
【0197】
書き込み後のセルトランジスタMTの閾値電圧の各レベルについての分布の形状(幅)は、より狭いことが望ましい。各分布がより狭ければ、隣り合う分布の重なりがより抑制され、誤読み出しが抑制されるからである。書き込み後の分布幅をより小さくするためには、差ΔVpgmの大きさはより小さい方が望ましい。大きな値の差ΔVpgmを伴う1回のプログラム電圧Vpgmの印加により、閾値電圧が大きく上昇するからである。例えば、あと1回のプログラム電圧Vpgmの印加でベリファイ電圧Vvfを超える閾値電圧を有するセルトランジスタMTは、大きな値の差ΔVpgmを付加されたプログラム電圧Vpgmの印加により、過剰に大きな閾値電圧を有する状態に至る。一方で、差ΔVpgmの値がより小さいと、書き込みの時間がより長い。このトレードオフを考慮して、差ΔVpgmのデフォルトの値が決定されている。
【0198】
しかしながら、デフォルト値の差ΔVpgmの使用では、メモリシステム1に要求される性能を満たせない場合がある。すなわち、メモリ装置100は、性能が向上し続けているもののメモリシステム1に要求される性能は非常に高く、メモリ装置100の性能向上のみでは、メモリシステム1に要求される性能を満たすことができない場合がある。この課題に対処するために、メモリコントローラ200によるメモリ装置100の制御を通じて、メモリシステム1の動作の速度が上げられる場合がある。具体的には、図33を参照して記述されたように、メモリコントローラ200は、差ΔVpgmLの使用をメモリ装置100に指示して、メモリ装置100での書き込みの速度を上げている。こうすることによってメモリシステム1の書き込み速度が向上されることが可能である。
【0199】
一方で、上記のように、差ΔVpgmの値がより大きいと、書き込み後の分布の幅は広く、ひいては、読み出しエラーもより高い。分布の幅が広くなる程度は、ワード線WLの位置に依存する。具体的には、書き込み対象のセルトランジスタMTの周囲により多くの別のセルトランジスタMTが有ると、書き込み対象のセルトランジスタMTは、より多くの影響を受けて、書き込まれ難い。このため、ストリングSTRのより端に位置するワード線WLと接続されたセルトランジスタMTはより書き込まれ易く、端のワード線WLと接続されたセルトランジスタMTは特に書き込まれ易い。
【0200】
書き込まれ易さの違いにより、全てのセルトランジスタMTが共通のベリファイ電圧Vvfを使用して書き込まれると、より書き込まれ易いセルユニットCUは、ある同じレベルへと書き込まれたとしても、書き込まれ易いセルトランジスタMTよりも高い閾値電圧を有し得る。このことが、図38の上段に示される。図38の上段は、閾値電圧の1つの分布を示しており、端のワード線WLと接続されたセルトランジスタMTについての関係(実線)と、中央のワード線WLと接続されたセルトランジスタMTについての関係(破線)を示す。図38の上段に示されるように、端のワード線WLについてのより大きな(分布の右側の方の)閾値電圧は、中央のワード線WLのものより大きな閾値電圧を有する。この結果、分布の平均的な形状は幅広くなり、ひいては、読み出しエラーの増加に繋がる。よって、推定されたより良い読み出し電圧Vcgrが使用されても、読み出しエラーは十分に改善されない。より良い読み出し電圧Vcgrの推定は、分布の平均的な形状に依存するからである。
【0201】
第6実施形態によれば、ストリングSTRにおいてより端に近いワード線WLに印加されるベリファイ電圧Vvfの値はより大きい。このため、端のワード線WLについての大きな(例えば分布の右側の方の)閾値電圧は、他のワード線WLのものにより近い閾値電圧を有する。同様に、中央以外のワード線WLについても、大きな閾値電圧は、中央のワード線WLについてのものに近づく。この結果、分布の平均的形状の幅は狭くなり、読み出しエラーが減少する。しかも、これは、差ΔVpgmLの使用によるメモリシステム1の書き込みの高速化と両立する。読み出しエラーが低減すると、第1実施形態に記述されたのと同じ原理により、メモリシステム1の寿命および歩留まりが上昇する。
【0202】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【0203】
1…メモリシステム、2…ホスト装置、100…メモリ装置、200…メモリコントローラ、11…メモリセルアレイ、12…シーケンサ、13…電位生成回路、14…ドライバ、15…ロウデコーダ、16…センスアンプ、17…温度センサ、21…ホストインターフェイス、22…全体制御部、23…RAM、24…メモリインターフェイス、25…ECC回路、26…ROM。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
図27
図28
図29
図30
図31
図32
図33
図34
図35
図36
図37
図38