IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ 長江存儲科技有限責任公司の特許一覧

特許7629997メモリデバイス、メモリデバイスを動作させるための方法、メモリシステム
<>
  • 特許-メモリデバイス、メモリデバイスを動作させるための方法、メモリシステム 図1
  • 特許-メモリデバイス、メモリデバイスを動作させるための方法、メモリシステム 図2
  • 特許-メモリデバイス、メモリデバイスを動作させるための方法、メモリシステム 図3
  • 特許-メモリデバイス、メモリデバイスを動作させるための方法、メモリシステム 図4
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-02-05
(45)【発行日】2025-02-14
(54)【発明の名称】メモリデバイス、メモリデバイスを動作させるための方法、メモリシステム
(51)【国際特許分類】
   G11C 16/10 20060101AFI20250206BHJP
   G11C 16/04 20060101ALI20250206BHJP
【FI】
G11C16/10 140
G11C16/04 170
【請求項の数】 20
(21)【出願番号】P 2023537895
(86)(22)【出願日】2021-08-30
(65)【公表番号】
(43)【公表日】2023-12-26
(86)【国際出願番号】 CN2021115475
(87)【国際公開番号】W WO2023028790
(87)【国際公開日】2023-03-09
【審査請求日】2023-06-20
(73)【特許権者】
【識別番号】519237948
【氏名又は名称】長江存儲科技有限責任公司
【氏名又は名称原語表記】Yangtze Memory Technologies Co.,Ltd.
【住所又は居所原語表記】No.88 Weilai 3rd Road,East Lake High-tech Development Zone,Wuhan,Hubei,China
(74)【代理人】
【識別番号】100109210
【弁理士】
【氏名又は名称】新居 広守
(72)【発明者】
【氏名】クオ・シァオジァン
【審査官】小林 紀和
(56)【参考文献】
【文献】特開2018-055673(JP,A)
【文献】米国特許出願公開第2018/0203774(US,A1)
【文献】特開2012-203692(JP,A)
【文献】特開平08-096591(JP,A)
【文献】特開2014-175025(JP,A)
【文献】再公表特許第2015/025357(JP,A1)
【文献】特開2018-045747(JP,A)
【文献】特開2020-047320(JP,A)
【文献】特表2019-526934(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G11C 16/10
G11C 16/04
(57)【特許請求の範囲】
【請求項1】
メモリデバイスを動作させるための方法であって、
前記メモリデバイスの少なくとも2つのメモリプレーンの各々に対してプログラミング動作を同時実行するために、マルチプレーン・プログラミング方式を適用することと、
前記少なくとも2つのメモリプレーンがプログラミング障害を有する例外メモリプレーンを含むと判定したことに応答して、前記少なくとも2つのメモリプレーンの各々に対してプログラミング動作を順次実行するためにシングルプレーン・プログラミング方式に切り替えることと、
を含む、メモリデバイスを動作させるための方法。
【請求項2】
前記少なくとも2つのメモリプレーンの各々に対してプログラミング動作を順次実行することは、
前記例外メモリプレーン上の選択ワード線に第1のプログラミング電圧を印加することを含み、前記第1のプログラミング電圧は、前記例外メモリプレーンが前記プログラミング障害を有すると判定された場合に前記例外メモリプレーンの前記選択ワード線に印加される第2のプログラミング電圧よりも小さい、請求項1に記載の方法。
【請求項3】
前記少なくとも2つのメモリプレーンの各々に対してプログラミング動作を順次実行することは、
前記例外メモリプレーンの前記選択ワード線に前記第1のプログラミング電圧を印加する場合に、前記例外メモリプレーンの非選択ワード線に第1のターンオン電圧を印加することを、さらに含み、
前記第1のターンオン電圧は、前記例外メモリプレーンが前記プログラミング障害を有すると判定された場合に前記例外メモリプレーンの前記非選択ワード線に印加される第2のターンオン電圧よりも小さい、請求項2に記載の方法。
【請求項4】
前記例外メモリプレーンが前記プログラミング障害を有すると判定することは、
前記少なくとも2つのメモリプレーン内のプログラミングメモリセル上で実行されたプログラミング検証の数をカウントすることと、
前記プログラミング検証の数が書き込まれたデータに対応する事前設定の数を超えることに応答して、前記少なくとも2つのメモリプレーンが前記プログラミング障害を有する前記例外メモリプレーンを含むと判定することと、
を含む、請求項1に記載の方法。
【請求項5】
異なる電圧源を使用することによって、異なるメモリプレーン内の前記プログラミングメモリセルにプログラミング検証電圧をそれぞれ印加することをさらに含む、請求項4に記載の方法。
【請求項6】
異なる電圧源を使用することによって、同一メモリプレーン内の異なるワード線に対応する前記プログラミングメモリセルにプログラミング検証電圧をそれぞれ印加することをさらに含む、請求項4に記載の方法。
【請求項7】
前記例外メモリプレーンが前記プログラミング障害を有すると判定した後に、前記例外メモリプレーンを示すためにフラグをステータスレジスタに格納することと、
前記フラグに対応する前記例外メモリプレーンに格納されたデータをダンプするための第1の命令の受信に応答して、前記例外メモリプレーンに割り当てられたデータを前記メモリデバイス内の他のメモリプレーンに格納することと、
をさらに含む、請求項1に記載の方法。
【請求項8】
前記例外メモリプレーンが前記プログラミング障害を有すると判定した後に、前記マルチプレーン・プログラミング方式の前記プログラミング動作を一時停止することと、
前記マルチプレーン・プログラミング方式から前記シングルプレーン・プログラミング方式に切り替えるための第2の命令を受信した後に、前記少なくとも2つのメモリプレーンの各々に対してプログラミング動作を順次実行することと、
をさらに含む、請求項7に記載の方法。
【請求項9】
前記少なくとも2つのメモリプレーンの各々に対してプログラミング動作を順次実行することは、
前記少なくとも2つのメモリプレーンのうちの第1のメモリプレーン上でプログラミング動作を実行することと、
前記第1のメモリプレーン上での前記プログラミング動作が失敗した、または完了したと判定したことに応答して、前記少なくとも2つのメモリプレーンのうちの第2のメモリプレーン上でプログラミング動作を実行することと、を含む、請求項1に記載の方法。
【請求項10】
メモリデバイスであって、
少なくとも2つのメモリプレーンと、
前記少なくとも2つのメモリプレーンに結合された周辺回路と、を含み、
前記周辺回路は、
前記少なくとも2つのメモリプレーンの各々に対してプログラミング動作を同時実行するためにマルチプレーン・プログラミング方式を適用し、
前記少なくとも2つのメモリプレーンがプログラミング障害を有する例外メモリプレーンを含むと判定したことに応答して、前記少なくとも2つのメモリプレーンの各々に対してプログラミング動作を順次実行するために、シングルプレーン・プログラミング方式に切り替える、ように構成される、メモリデバイス。
【請求項11】
前記周辺回路は、
前記少なくとも2つのメモリプレーンに結合された行ドライバと、
制御回路であって、
前記マルチプレーン・プログラミング方式において、前記少なくとも2つのメモリプレーンの選択ワード線に第2のプログラミング電圧を印加し、
前記シングルプレーン・プログラミング方式において、前記例外メモリプレーンの選択ワード線に前記第2のプログラミング電圧より低い第1のプログラミング電圧を印加するために、
前記行ドライバを制御するように構成された、制御回路と、
を含む、請求項10に記載のメモリデバイス。
【請求項12】
前記行ドライバは、
前記マルチプレーン・プログラミング方式において、前記少なくとも2つのメモリプレーンの非選択ワード線に第2のターンオン電圧を印加し、
前記シングルプレーン・プログラミング方式において、前記例外メモリプレーンの非選択ワード線に前記第2のターンオン電圧より低い第1のターンオン電圧を印加する、
ように構成された、請求項11に記載のメモリデバイス。
【請求項13】
前記周辺回路は、
前記少なくとも2つのメモリプレーン内のプログラミングメモリセル上で実行されたプログラミング検証の数をカウントし、
前記プログラミング検証の数が書き込まれたデータに対応する事前設定の数を超えることに応答して、前記少なくとも2つのメモリプレーンが前記プログラミング障害を有する前記例外メモリプレーンを含むと判定する、
ように構成される、請求項12に記載のメモリデバイス。
【請求項14】
前記周辺回路は、
各々が前記少なくとも2つのメモリプレーンのうちの1つに結合された複数のプログラミング検証電圧生成器を、さらに含み、
前記制御回路は、異なるメモリプレーン内のプログラミングメモリセルにプログラミング検証電圧をそれぞれ印加するために、前記複数のプログラミング検証電圧生成器を制御するように、さらに構成される、請求項13に記載のメモリデバイス。
【請求項15】
各プログラミング検証電圧生成器は、前記少なくとも2つのメモリプレーンのうちの1つのワード線に結合され、
前記制御回路は、同一メモリプレーン内の異なるワード線に対応する前記プログラミングメモリセルに、プログラミング検証電圧をそれぞれ印加するために、前記複数のプログラミング検証電圧生成器を制御するように、さらに構成される、請求項14に記載のメモリデバイス。
【請求項16】
前記周辺回路は、
前記少なくとも2つのメモリプレーンが前記プログラミング障害を有する前記例外メモリプレーンを含むと判定したことに応答して、前記例外メモリプレーンを示すフラグを格納するように構成されたステータスレジスタを、さらに含み、
前記周辺回路は、前記フラグに対応する前記例外メモリプレーンに格納されたデータをダンプするための第1の命令の受信に応答して、前記例外メモリプレーンに割り当てられたデータを格納するように前記メモリデバイス内の別のメモリプレーンを制御するように構成される、請求項10に記載のメモリデバイス。
【請求項17】
前記周辺回路は、
前記例外メモリプレーンが前記プログラミング障害を有すると判定した後に、前記マルチプレーン・プログラミング方式の前記プログラミング動作を一時停止し、
前記マルチプレーン・プログラミング方式から前記シングルプレーン・プログラミング方式に切り替えるための第2の命令を受信した後に、前記少なくとも2つのメモリプレーンの各々に対してプログラミング動作を順次実行する
ように構成される、請求項16に記載のメモリデバイス。
【請求項18】
前記周辺回路は、
前記少なくとも2つのメモリプレーンのうちの第1のメモリプレーン上でプログラミング動作を実行し、
前記第1のメモリプレーン上での前記プログラミング動作が失敗した、または完了したと判定したことに応答して、前記少なくとも2つのメモリプレーンのうちの第2のメモリプレーン上でプログラミング動作を実行する
ようにさらに構成される、請求項10に記載のメモリデバイス。
【請求項19】
前記メモリデバイスは、3次元NANDメモリデバイスを含む、請求項10に記載のメモリデバイス。
【請求項20】
メモリシステムであって、
データを格納するように構成された1つまたは複数のメモリデバイスであって、各々が、
少なくとも2つのメモリプレーンと、
前記少なくとも2つのメモリプレーンに結合された周辺回路であって、
前記周辺回路は、
前記少なくとも2つのメモリプレーンの各々に対してプログラミング動作を同時実行するためにマルチプレーン・プログラミング方式を適用し、
前記少なくとも2つのメモリプレーンがプログラミング障害を有する例外メモリプレーンを含むと判定したことに応答して、前記少なくとも2つのメモリプレーンの各々に対してプログラミング動作を順次実行するために、シングルプレーン・プログラミング方式に切り替える、ように構成された、周辺回路と、を含む、
1つまたは複数のメモリデバイスと、
前記1つまたは複数のメモリデバイスに結合され、前記周辺回路を介して前記1つまたは複数のメモリデバイスを制御するように構成された、メモリコントローラと、
を含む、メモリシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示の実施形態は、半導体の分野に関し、より詳細には、メモリ、方法を動作させるための方法、およびメモリシステムに関する。
【背景技術】
【0002】
メモリのメモリセルアレイの構造構成によれば、メモリをシングルプレーン型とマルチプレーン型とに分類できる。シングルプレーン型のメモリは、1つのメモリプレーンを有する。マルチプレーン型のメモリは、複数のメモリプレーンを含む。マルチプレーン型のメモリの場合、マルチプレーン・プログラミング方式を使用して、メモリの2つ以上のメモリプレーン上でプログラミング動作を同時実行し、プログラミング効率を改善できる。
【0003】
マルチプレーン・プログラミング方式を採用することで、プログラミング効率を向上させることができるが、必然的に隣接プレーン干渉の問題がある。例えば、マルチプレーン・プログラミング方式の場合、1つのメモリプレーンでプログラミング障害が発生すると、同時にプログラミングされる他の複数のメモリプレーンでプログラミング障害が発生することが多い。したがって、一定のプログラミング効率を確保しつつ、隣接干渉の悪影響を低減するプログラミング方法を提供することが急務である。
【発明の概要】
【発明が解決しようとする課題】
【0004】
既存の技術的問題の1つまたは複数を解決するために、本開示の実施形態は、メモリ、メモリを動作させるための方法、およびメモリシステムを提供する。
【課題を解決するための手段】
【0005】
本開示の実施形態は、メモリを動作させるための方法を提供し、本方法は、マルチプレーン・プログラミング方式を採用することによってメモリの少なくとも2つのメモリプレーン上でプログラミング動作を同時実行することと、プログラミング例外を有するメモリプレーンが少なくとも2つのメモリプレーン内に存在すると判定したことに応答して、シングルプレーン・プログラミング方式を採用することによって少なくとも2つのメモリプレーン上でプログラミング動作を順次実行することとを含む。
【0006】
前述の実施形態において、シングルプレーン・プログラミング・モードを採用することによって少なくとも2つのメモリプレーンの各々でプログラミング動作を順次実行し続けることは、
シングルプレーン・プログラミング・モードの採用に応答して、少なくとも2つのメモリプレーンの各々について、それぞれのメモリプレーン上の第1の選択ワード線上に第1のプログラミング電圧を印加することを含み、
第1のプログラミング電圧は、第2のプログラミング電圧よりも小さくてもよく、第2のプログラミング電圧は、プログラミング例外を有すると判定されるそれぞれのメモリプレーン上の第1の選択ワード線に印加されるプログラミング電圧であってもよく、第1の選択ワード線は、プログラミング例外を有すると判定されるそれぞれのメモリプレーン上の選択ワード線であってもよい。
【0007】
前述の実施形態において、本方法は、
それぞれのメモリプレーンの第1の選択ワード線に第1のプログラミング電圧を印加することに応答して、それぞれのメモリプレーン上の非選択ワード線に第1のターンオン電圧を印加することをさらに含み、第1のターンオン電圧は第2のターンオン電圧よりも小さくてもよく、第2のターンオン電圧は、プログラミング例外を有すると判定されたそれぞれのメモリプレーン上の非選択ワード線に印加されるターンオン電圧であってもよい。
【0008】
前述の実施形態において、プログラミング例外を有するメモリプレーンが少なくとも2つのメモリプレーン内に存在すると判定することは、
少なくとも2つのメモリプレーン内の現在プログラムされているメモリセル上でプログラミング検証が実行される回数を検出することと、
書き込まれるべき現在のデータに対応する事前設定された回数を超えるプログラミング検証が行われた回数に応答して、プログラミング例外を有するメモリプレーンが少なくとも2つのメモリプレーン内に存在すると判定することと、を含む。
【0009】
前述の実施形態において、本方法は、
異なる電圧源を使用することによって、異なるメモリプレーン内の現在プログラムされているメモリセルに検証電圧をプログラムすることを、さらに含む。
【0010】
前述の実施形態において、本方法は、
異なる電圧源を使用することによって、同一メモリプレーン上の異なるワード線にそれぞれ対応するメモリセルにプログラミング検証電圧を印加することを、さらに含む。
【0011】
前述の実施形態において、プログラミング例外を有するメモリプレーンが少なくとも2つのメモリプレーン内に存在すると判定したことに応答して、シングルプレーン・プログラミング・モードを採用することによって少なくとも2つのメモリプレーンの各々でプログラミング動作を順次実行し続けることは、
プログラミング例外を有するメモリプレーンが少なくとも2つのメモリプレーン内に存在すると判定したことに応答して、シングルプレーン・プログラミング・モードを直接採用することによって少なくとも2つのメモリプレーンの各々でプログラミング動作を順次実行し続けることか、または、
プログラミング例外を有するメモリプレーンが少なくとも2つのメモリプレーン内に存在すると判定したことに応答して、プログラミング動作を一時停止することと、かつ、第2の命令を受信した後に、シングルプレーン・プログラミング・モードを採用することによって少なくとも2つのメモリプレーンの各々でプログラミング動作を順次実行し続けることと、を含む。
【0012】
前述の実施形態において、本方法は、
プログラミング例外を有するメモリプレーンが少なくとも2つのメモリプレーン内に存在すると判定したことに応答して、第1のフラグを格納することと、
第1の命令を受信した後に、プログラミング例外が存在するメモリプレーンに割り当てられたデータをメモリ内の他のメモリプレーンに格納することであって、第1の命令は、第1のフラグに対応するメモリプレーンに格納されたデータをダンプするように命令するように構成され得る、格納することと、をさらに含む。
【0013】
前述の実施形態において、シングルプレーン・プログラミング・モードを採用することによって少なくとも2つのメモリプレーンの各々でプログラミング動作を順次実行し続けることは、
少なくとも2つのメモリプレーンのうちの第1のメモリプレーン上でプログラミング動作を実行し続けることと、
第1のメモリプレーンに対するプログラミング動作が失敗した、または完了したと判定したことに応答して、少なくとも2つのメモリプレーンのうちの第2のメモリプレーン上でプログラミング動作を実行し続けることと、を含む。
【0014】
前述の実施形態において、本方法は、
プログラミング例外を有するメモリプレーンが少なくとも2つのメモリプレーンに存在しないと判定したことに応答して、マルチプレーン・プログラミング・モードを採用することによって少なくとも2つのメモリプレーン上でプログラミング動作を実行し続けることを、さらに含む。
【0015】
本開示の実施形態は、メモリプレーンと、メモリプレーンに結合された周辺回路とを含むメモリを提供し、周辺回路は、マルチプレーン・プログラミング方式を採用することによってメモリの少なくとも2つのメモリプレーン上でプログラミング動作を同時実行し、プログラミング例外を有するメモリプレーンが少なくとも2つのメモリプレーン内に存在すると判定したことに応答して、シングルプレーン・プログラミング方式を採用することによって少なくとも2つのメモリプレーン上でプログラミング動作を順次実行するように構成される。
【0016】
上述の実施形態において、周辺回路は、制御回路および行ドライバを含んでもよく、行ドライバは、少なくとも2つのメモリプレーンに結合され、制御回路によって制御され、
行ドライバは、マルチプレーン・プログラミング・モードにおいて、プログラミング動作が同時実行される少なくとも2つのメモリプレーンにワード線駆動電圧を印加するように構成されてもよく、
行ドライバは、シングルプレーン・プログラミング・モードにおいて、ワード線駆動電圧を選択メモリプレーンに印加するように、さらに構成されてもよい。
【0017】
前述の実施形態において、行ドライバは、少なくとも2つのメモリプレーンの各々について、マルチプレーン・プログラミング・モードからシングルプレーン・プログラミング・モードに切り替えた後に、それぞれのメモリプレーン上の第1の選択ワード線に第1のプログラミング電圧を印加するように構成される。
【0018】
第1のプログラミング電圧は、第2のプログラミング電圧よりも小さくてもよく、第2のプログラミング電圧は、プログラミング例外を有すると判定されたそれぞれのメモリプレーン上の第1の選択ワード線に印加されるプログラミング電圧であってもよく、第1の選択ワード線は、プログラミング例外を有すると判定されたそれぞれのメモリプレーン上の選択ワード線であってもよい。
【0019】
前述の実施形態において、行ドライバは、それぞれのメモリプレーンの第1の選択ワード線上に第1のプログラミング電圧を印加することに応答して、それぞれのメモリプレーン上の非選択ワード線に第1のターンオン電圧を印加するようにさらに構成されてもよく、第1のターンオン電圧は、第2のターンオン電圧よりも小さくてもよく、第2のターンオン電圧は、プログラミング例外を有すると判定されたそれぞれのメモリプレーン上の非選択ワード線に印加されるターンオン電圧であってもよい。
【0020】
前述の実施形態において、周辺回路は、
少なくとも2つのメモリプレーン内の現在プログラムされているメモリセル上で実行されたプログラミング検証の数を検出し、
書き込まれるべき現在のデータに対応する事前設定された回数を超えるプログラミング検証の数に応答して、プログラミング例外を有するメモリプレーンが少なくとも2つのメモリプレーン内に存在すると判定するように、さらに構成される。
【0021】
上述の実施形態において、周辺回路は、複数のプログラミング検証電圧生成器をさらに含んでもよく、複数のプログラミング検証電圧生成器の各々は、少なくとも2つのメモリプレーンのうちの1つにそれぞれ結合され、制御回路によって制御されてもよく、
複数のプログラミング検証電圧生成器は、異なるメモリプレーン内の現在プログラムされているメモリセルにプログラミング検証電圧をそれぞれ印加するように構成されてもよい。
【0022】
前述の実施形態において、複数のプログラミング検証電圧生成器の各々は、少なくとも2つのメモリプレーンのうちの1つのワード線にそれぞれ結合されてもよく、
複数のプログラミング検証電圧生成器は、同一メモリプレーン上の異なるワード線に対応するメモリセルに、プログラミング検証電圧をそれぞれ印加するように構成されていてもよい。
【0023】
前述の実施形態において、周辺回路は、プログラミング例外を有するメモリプレーンが少なくとも2つのメモリプレーン内に存在すると判定したことに応答して、シングルプレーン・プログラミング・モードを直接採用することによって少なくとも2つのメモリプレーンの各々でプログラミング動作を順次実行し続けるように構成されてもよく、
または、
周辺回路は、プログラミング例外を有するメモリプレーンが少なくとも2つのメモリプレーン内に存在すると判定したことに応答して、プログラミング動作を一時停止し、かつ、第2の命令を受信した後に、シングルプレーン・プログラミング・モードを採用することによって少なくとも2つのメモリプレーンの各々でプログラミング動作を順次実行し続けるように、さらに構成されてもよい。
【0024】
前述の実施形態において、周辺回路は、プログラミング例外を有するメモリプレーンが少なくとも2つのメモリプレーン内に存在すると判定したことに応答して、第1のフラグを格納するように構成されたレジスタをさらに含んでもよく、
周辺回路は、第1の命令を受信した後に、プログラミング例外が存在するメモリプレーンに割り当てられたデータをメモリ内の他のメモリプレーンに格納するように構成されてもよく、第1の命令は、第1のフラグに対応するメモリプレーンに格納されたデータをダンプするように命令するように構成されてもよい。
【0025】
上述の実施形態において、メモリは、3次元NAND型メモリを含んでもよい。
【0026】
本開示の実施形態は、メモリシステムをさらに提供し、メモリシステムは、前述の実施形態で説明した1つまたは複数のメモリと、
メモリに結合されたメモリコントローラと、を含む。
【0027】
前述の実施形態では、方法、システムにおいて、
周辺回路は、第2の命令を受信し、第2の命令に応答して、マルチプレーン・プログラミング・モードを採用することによって複数のメモリプレーンのうちの少なくとも2つでプログラミング動作を同時実行し、プログラミング例外を有するメモリプレーンが少なくとも2つのメモリプレーン内に存在すると判定したことに応答して、プログラミング動作を一時停止し、かつ第1のフラグを格納する、ように構成され、
メモリコントローラは、第1のフラグに従って第3の命令を発行するように構成されてもよく、
周辺回路は、第3の命令を受信し、第3の命令に応答して、シングルプレーン・プログラミング・モードを採用することによって少なくとも2つのメモリプレーンの各々でプログラミング動作を順次実行し続ける、ようにさらに構成されてもよい。
【0028】
本開示の実施形態では、マルチプレーン・プログラミング・モードを採用することによって複数のメモリプレーン上で同時実行されるプログラミング動作に問題が発生した場合に、常にマルチプレーン・プログラミング・モードのままであるのではなく、シングルプレーン・プログラミング・モードを採用することによって複数のメモリプレーンの各々でプログラミング動作が、順次実行され続ける。すなわち、本開示の実施形態では、プログラミング動作の命令を受信すると、プログラミング動作は、デフォルトではマルチプレーン・プログラミング・モードで実行されてもよく、その結果、一定のプログラミング効率を確保できる。プログラミング例外があると判定すると、プログラミング動作は、シングルプレーン・プログラミング・モードに切り替えることによって継続され、例外を有するメモリプレーン内のプログラミング例外を制限し、さらに他の通常のメモリプレーンに対するプログラミング例外の影響を緩和する。すなわち、隣接プレーン干渉の悪影響を低減できる。
【図面の簡単な説明】
【0029】
1つまたは複数の実施形態は、添付の図面の図によって示されており、これらは実施形態のいかなる限定も構成しない。特に明記しない限り、図面の図は、スケールの限定とはみなされない。
図1】本開示の一実施形態による、メモリを動作させるための方法の概略フローチャートである。
図2】本開示の一実施形態による、メモリの概略構造図である。
図3】本開示の一実施形態による、メモリを動作させるための方法の別の概略フローチャートである。
図4】本開示の一実施形態による、メモリシステムの概略構造図である。
【発明を実施するための形態】
【0030】
本開示の実施形態の目的、技術的解決策、および利点をより明確にするために、本開示の実施形態を、添付の図面を参照して以下に詳細に説明する。しかし、本開示の様々な実施形態では、本開示をよりよく理解するために多くの技術的詳細が提案されていることが当業者によって理解され得る。しかしながら、これらの技術的詳細および以下の実施形態に基づく様々な変更および修正がなくても、本明細書で特許請求される技術的解決策を実現できる。
【0031】
本開示の実施形態におけるメモリは、3次元NAND型メモリを含むが、これに限定されない。理解を容易にするために、3次元NAND型メモリを説明のための例として使用する。しかしながら、本開示の概念の実施形態は構成に限定されず、2次元NANDメモリにも適用可能であることを理解されたい。さらに、本開示の範囲から逸脱することなく、本開示は、電気的消去可能プログラマブル読み出し専用メモリ(EEPROM)、NOR型フラッシュメモリ、チェースランダムアクセスメモリ(PRAM)、磁気抵抗ランダムアクセスメモリ(MRAM)、抵抗変化型ランダムアクセスメモリ(RRAM)、強誘電体ランダムアクセスメモリ(FRAM(登録商標))などの他の不揮発性メモリデバイスにも適用可能である。
【0032】
実際の用途では、3次元NAND型メモリは、メモリセルアレイおよび周辺回路を含むことができる。メモリセルアレイは、複数のメモリプレーン(Plane)を有してもよく、各メモリプレーンは、複数のメモリブロックを含んでもよく、各メモリブロックは、複数のメモリページを含んでもよい。メモリページは、読み出しおよび書き込み(すなわち、プログラミング)動作のための最小単位であってもよく、メモリブロックは、消去動作のための最小単位であってもよい。
【0033】
周辺回路は、読み出し動作、書き込み動作、消去動作などのメモリの様々な動作を容易にするように構成された任意の適切なデジタル、アナログ、および/または混合信号回路を含むことができる。例えば、周辺回路は、制御論理(例えば、制御回路またはコントローラ)、データバッファ、デコーダ(復号器とも呼ばれる)、ドライバ、および読み出し/書き込み回路などを含んでもよい。制御論理が読み出し/書き込み動作コマンドおよびアドレスデータを受信すると、制御論理の動作の下で、デコーダは、復号されたアドレスに基づいて、対応するビット線およびワード線に、対応する電圧をドライバから印加して、データを読み出し/書き込みし、データバッファを介して外部とデータを交換できる。
【0034】
メモリシステムにおける3次元NAND型メモリには様々な欠陥があり、その一部は出荷時に検出可能であり、一部は出荷後の使用環境の変化に伴って現れる。実際の用途では、3次元NAND型メモリの一部のメモリセルアレイに構造的な弱点がある場合がある。これらの構造的弱点は、長時間または複数のプログラミングおよび消去操作の後に発生し欠陥になる可能性がある。例えば、3次元NAND型メモリのメモリセルアレイは、プログラミングおよび消去サイクル中の高圧ストレスに耐えなければならず、3次元NAND型メモリの一部のメモリセルアレイの弱い構造は、サイクル後に欠陥に発展する可能性がある。
【0035】
3次元NAND型メモリに欠陥が発生すると、データ損失が発生する可能性がある。欠陥がワード線(WL、Word Line)が短絡している場合、WL全体に対応するメモリセルのデータが破壊される可能性がある。各WLは、複数のストリングのメモリセルに対応し得るので、大量のデータが失われ、それによってメモリシステムの障害を引き起こす可能性がある。この種の障害は、一般的に3次元NAND型メモリの信頼性障害と定義されており、さらに当該分野のメモリシステムの障害の原因となり得る。
【0036】
プログラミング・ステータス失敗(PSF、Programming Status Failed)の場合、メモリシステムは、独立ディスクの冗長アレイ(RAID、Redundant Arrays of Independent Disk)を用いて消失データを回復してもよい。一般に、メモリシステムは、プレーンレベルのRAIDを採用しており、プレーンレベルのRAIDは、障害から1つのメモリプレーンのみを復元できる。複数のメモリプレーンでプログラミングが失敗した場合、メモリシステムはデータを復元できない。このような障害の場合、メモリシステムはダイ(Die)レベルでRAIDを実行してもよいが、メモリシステムの構成コストが増大する。
【0037】
3次元NAND型メモリでは、回路面積および消費電力を節約するために、プログラミング動作中には、内部電圧バイアス電源が異なるプレーン間で通常共有される。メモリプレーンの1つに欠陥がある場合、内部電圧バイアス電源を共有する他のメモリプレーンは、目標レベルに到達しない可能性がある。そのため、物理的に1つのメモリプレーンのみが不良であっても、複数のメモリプレーン、すなわち上述した隣接プレーン妨害(NPD、Neighbor Plane Disturb)においてプログラミング障害が発生することが多い。隣接プレーン妨害は、上述したように、データ損失などの悪影響を及ぼすことが明らかである。このことから、物理的な欠陥が1つのメモリプレーンのみに存在するのであれば、不良メモリプレーンのみに障害が発生することが望ましい。
【0038】
本発明の一実施形態は、メモリ(メモリデバイス)を動作させるための方法を提案する。図1は、本開示の一実施形態によるメモリを動作させるための方法の概略フローチャートである。本方法は、以下のステップを含む。
【0039】
ステップ101において、マルチプレーン・プログラミング方式を採用することによって、メモリの複数のメモリプレーンのうちの少なくとも2つでプログラミング動作が同時実行される。
【0040】
ステップ102において、プログラミング例外を有するメモリプレーンが少なくとも2つのメモリプレーン内に存在すると判定したことに応答して、シングルプレーン・プログラミング方式を採用することによって少なくとも2つのメモリプレーンでプログラミング動作が順次実行される。
【0041】
ここで、メモリは、複数のメモリプレーンを含んでもよく、複数のメモリプレーンは、メモリの構成に応じて同時にプログラムされてもよい。複数のメモリプレーンはグループに分類されてもよく、各グループ内の複数のメモリプレーンは同時にプログラムされてもよい。
【0042】
ステップ101において、マルチプレーン・プログラミング方式では、メモリに含まれる複数のメモリプレーンは、1つのコントローラの制御下で同時にプログラムされてもよく、同時にプログラムされる複数のメモリプレーンは、同じ行ドライバを共有してもよいことが理解されよう。実際の用途では、同時にプログラムされる複数のメモリプレーンについて、行ドライバの構成に従って、同じ行(ワード線)が同時にプログラムされてもよく、または、異なる行(ワード線)が同時にプログラムされてもよい。
【0043】
実際の用途では、シングルプレーン・プログラミング方式における動作コマンドとマルチプレーン・プログラミング方式における動作コマンドとは異なる場合がある。メモリのプログラミング速度を高めるために、マルチプレーン・プログラミング方式は、プログラミング方式のより一般的な選択であり得る。
【0044】
ステップ102において、プログラミング例外は、メモリプレーン欠陥または他の要因に起因して、同時にプログラムされる特定のメモリプレーンのプログラミング障害として理解され得る。
【0045】
実際の用途では、複数のメモリプレーン上でプログラミング動作を同時実行する場合、プログラミング動作中に、ワード線駆動電圧が、メモリプレーンごとに対応するメモリプレーン内のワード線に、同時に印加されてもよい。ここで、ワード線駆動電圧は、選択ワード線に印加されるプログラミング電圧と、非選択ワード線に印加されるターンオン電圧とを含んでもよい。プログラミング検証処理の間、プログラミング検証電圧は、対応するメモリプレーン内のワード線上に同時に印加されてもよい。1つのメモリプレーンに対するプログラミング検証に失敗した場合、同時にプログラムされた複数のメモリプレーンは、プログラミング検証に失敗する可能性がある。
【0046】
実際の用途では、本開示の実施形態は、プログラミング例外を有するメモリプレーンが、同時にプログラムされる複数のメモリプレーンに存在すると判定する特定の方法を限定しない。
【0047】
いくつかの実施形態では、プログラミング例外を有するメモリプレーンが少なくとも2つのメモリプレーン内に存在すると判定することは、以下の動作を含んでもよい。
【0048】
少なくとも2つのメモリプレーン内の現在プログラムされているメモリセル上で実行されたプログラミング検証の数を検出することができる。
【0049】
現在プログラムされているメモリセル上で実行されたプログラミング検証の数が、書き込まれるべき現在のデータに対応する事前設定された回数を超えることに応答して、プログラミング例外を有するメモリプレーンが少なくとも2つのメモリプレーン内に存在すると判定できる。
【0050】
ここで、事前設定された数は、あるデータ状態(プログラムされた状態)に対応するプログラミング検証の最大数として理解できる。
【0051】
実際の用途では、データ状態とプログラミング検証の最大数との間の関係表を、経験値に従って最初に確立できる。表では、データ状態に対応するプログラミング検証の最大数(すなわち、プログラミング検証の事前設定された数)を、データ状態に従って見つけることができる。実際の用途では、プログラミング検証の最大数は、書き込まれたデータおよびデータを書き込むためのメモリセルのタイプ(シングルレベルセル型またはマルチレベルセル型)に関連してもよい。
【0052】
例示として、トリナリーレベルセル(TLC、Trinary-Level Cell)タイプのメモリセルを例に取る。トリナリーレベルセルは、8つのデータ状態を有し、そのうちの1つ(第0状態)は消去状態であり、そのうちの残りの7つは、増分ステップパルス・プログラミング(ISPP、Incremental Step-Pulse Programming)方式が採用されているプログラミング状態(第1状態~第7状態)である。経験値によれば、プログラミングの第1の状態に達するために、いくつのプログラミングパルスが印加されるべきか(すなわち、いくつのプログラミング検証が実行されるべきか)を、判定できる。例えば、プログラミングの第1の状態に達するために、6つのプログラミング検証が完了されるべきであり、第2のプログラミング状態に達するために、9つのプログラミング検証が完了されるべきである。一般に、より高いデータ状態に達するほど、より多くのプログラミング検証が必要となる。すなわち、プログラミング検証の事前設定された数は、データ状態のビット数に関連してもよく、典型的には、データ状態のビット数が多いほど、データ状態に対応するプログラミング検証の事前設定された数が多くなる。
【0053】
実際の用途では、プログラミング動作中に同時にプログラムされる複数のメモリプレーンのいずれか1つについて、いくつかの実施形態では、1つのデータ状態へのプログラミングが完了すると、対応するデータ状態のプログラミング検証を、1つのメモリページ内のすべてのメモリセル上で実行できる。他の実施形態では、1つのメモリページのプログラミングが完了した後に、メモリページ内の各メモリセルのプログラミング状態に対して、低い状態から高い状態へと、プログラミング検証を順次に実行できる。
【0054】
トリナリーレベルセル(TLC)型のメモリセルが、例示のためにさらに例として挙げられる。メモリページ内の各メモリセル上で行われるプログラミング検証については、1つのメモリページ内のすべてのメモリセルについて、1つのデータ状態のプログラムが完了すると、対応するデータ状態のプログラミング検証が行われる。具体的には、すべてのメモリセル上で第1の状態がプログラムされ、次いで、すべてのメモリセルは、プログラミング検証の事前設定された数(例えば6)内に第1の状態に達することができるかどうか検証される。そうである場合、書き込まれたデータが第1の状態を超えるメモリセル上で第2の状態がプログラムされ、次いで第2の状態の検証が行われる。期間中に、特定のデータ状態で検証失敗が発生した場合、すなわち、対応するプログラミング検証の事前設定された数を超えたが、対応するデータ状態に達していない場合、現在プログラムされているメモリプレーンがプログラミング例外を有するメモリプレーンであることを示すことができる。
【0055】
一実施形態では、プログラミング検証を実行する場合、それは、1つのメモリページ内の任意のメモリセルのプログラミング検証の数が、事前設定された数を超えるが指定されたデータ状態に達しない場合に、現在プログラミングされているメモリプレーンが、プログラミング例外を有するメモリプレーンとして判定されることを意味しないことに留意されたい。メモリは、特定の誤り訂正能力を有することが理解され得る。例えば、エラー訂正回路(ECC、Error Correction Circuit)を使用して、エラーを有する特定の数のメモリセルを訂正できる。したがって、(エラー訂正能力範囲内の)限られた数のプログラミング検証エラーについては、現在プログラムされているメモリプレーンをプログラミング例外のメモリプレーンとして判定するのではなく、検証エラーの数が誤り訂正能力範囲を超えた場合にのみ、現在プログラムされているメモリプレーンを、プログラミング例外を有するメモリプレーンとして判定してもよい。
【0056】
実際の用途では、マルチプレーン・プログラミング障害を示すためにフラグが設定されてもよく、マルチプレーン・プログラミング障害を示すためのフラグが、メモリのステータスレジスタに格納されてもよい。一実施形態では、ステータスレジスタ内のマルチプレーン・プログラミング障害を示すためのフラグをメモリが確認した場合、制御論理はプログラミングのためにシングルプレーン・プログラミング方式に直接切り替えてもよい。他の実施形態では、マルチプレーン・プログラミング障害を示すためのステータスレジスタのフラグをメモリが確認した場合、マルチプレーン・プログラミング状態が一時停止されてもよい。その時点で、メモリシステムまたはホストは、メモリがマルチプレーン・プログラミング状態を一時停止した場合に、ステータスレジスタを確認して、マルチプレーン・プログラミングに例外を有することを発見してもよい。また、メモリシステムまたはホストによって命令が発行されて、プログラミングのためにシングルプレーン・プログラミング方式に切り替えるようにメモリに命令してもよい。
【0057】
これに基づいて、プログラミング例外を有するメモリプレーンが少なくとも2つのメモリプレーン内に存在すると判定したことに応答して、シングルプレーン・プログラミング方式を採用することによって少なくとも2つのメモリプレーン上でプログラミング動作を順次実行することは、
プログラミング例外を有するメモリプレーンが少なくとも2つのメモリプレーン内に存在すると判定したことに応答して、シングルプレーン・プログラミング方式を直接採用することにより、少なくとも2つのメモリプレーン上でプログラミング動作を順次実行することか、
または、
プログラミング例外を有するメモリプレーンが少なくとも2つのメモリプレーン内に存在すると判定したことに応答して、プログラミング動作を一時停止すること、かつ第2の命令を受信した後に、シングルプレーン・プログラミング方式を採用することによって少なくとも2つのメモリプレーン上でプログラミング動作を順次実行すること、を含む。
【0058】
すなわち、実際の用途では、マルチプレーン・プログラミング方式に例外がある場合、メモリはマルチプレーン・プログラミング方式からシングルプレーン・プログラミング方式に自動的に切り替えることができる。メモリはまた、ホストまたはメモリシステム内のメモリコントローラにより発行されたシングルプレーン・プログラミング方式を採用するように、メモリに命令するための命令を受信した後に、マルチプレーン・プログラミング方式からシングルプレーン・プログラミング方式に切り替えることができる。
【0059】
実際の用途では、シングルプレーン・プログラミング方式が完了した後に、メモリシステムまたはホストはステータスレジスタを通じてプログラミング障害を検出できる。この場合、メモリシステムまたはホストは、プログラミング例外を用いてメモリプレーンに格納されたデータをダンプする命令を発行するなどの、さらなる手段を取ることができる。
【0060】
これに基づいて、いくつかの実施形態では、本方法は、以下をさらに含むことができる。
【0061】
プログラミング例外を有するメモリプレーンが少なくとも2つのメモリプレーン内に存在すると判定したことに応答して、第1のフラグを格納することと、
第1の命令を受信すると、プログラミング例外が存在するメモリプレーンに割り当てられたデータを、メモリ内の他のメモリプレーンに格納することと、を含み、第1の命令は、第1のフラグに対応するメモリプレーン内の格納されたデータをダンプするように命令するように構成されている。
【0062】
ここで、第1のフラグは、プログラミング例外のメモリプレーンが、少なくとも2つのメモリプレーン内に存在することを表してもよい。第1の命令は、第1のフラグに対応するメモリプレーン内の格納されたデータをダンプするように命令するように構成されてもよい。実際の用途では、同時にプログラムされる複数のメモリプレーンのうち、メモリプレーンAには構造欠陥(リーク電流など)があり、メモリプレーンBには構造欠陥がない。メモリプレーンAとメモリプレーンBに同じ電圧源を用いて同時に電源を供給すると、本来は、メモリプレーンAとメモリプレーンBのワード線に同じ検証電圧が印加されるように準備される。しかしながら、クロスプレーン共有電圧源によって、メモリプレーンAのワード線に実際に印加される検証電圧と、メモリプレーンBのワード線に印加される検証電圧とが異なる(リーク電流を伴うメモリプレーンAのワード線への実際の印加電圧が低い)場合があり、目標印加電圧からのオフセットが生じる可能性がある。書き込み閾値電圧Vtの目標値はプログラミング電圧に関係し、2つのメモリプレーンに印加されるプログラミング電圧が異なる場合、2つのメモリプレーンの書き込み閾値の目標電圧は異なり得ることが理解されよう。この場合、メモリプレーンAへの書き込みデータにも、メモリプレーンBへの書き込みデータにも、ずれが生じ得る。すなわち、構造欠陥のないメモリプレーンがマルチプレーン・プログラミング方式をパスしている状態であっても、クロスプレーン共有検証電圧のずれに対する誤った検証条件により、メモリセルの書き込み閾値電圧Vtの分布がターンオフの可能性がある。このとき、独立電源により、潜在的な問題を緩和できる。
【0063】
いくつかの実施形態では、本方法は、
異なる電圧源を使用することによって、異なるメモリプレーン内の現在プログラムされているメモリセルにそれぞれプログラミング検証電圧を印加することを、さらに含む。
【0064】
ここで、いくつかの実施形態では、本方法は、
異なる電圧源を使用することによって、同一メモリプレーン内の異なるワード線にそれぞれ対応するメモリセルにプログラミング検証電圧を印加することを、さらに含む。
【0065】
実際の用途では、プログラミング電圧検証中に、異なる電圧源を使用して、異なるメモリプレーン内の選択WLに電力を供給できる。異なるメモリプレーンに対するプログラミング検証電圧源の独立した供給に基づいて、同一メモリプレーン内の異なる行のWLは、異なる電圧源によってさらに給電されてもよい。本明細書における独立した電源は、電圧源の各々に対する物理的隔離があることを指してもよいことに留意されたい。
【0066】
このようにして、異なるメモリプレーンに独立したプログラミング検証電圧を適用することが可能であり、それにより、構造的欠陥のないメモリプレーンのプログラミング検証結果が正確なことが、保証され得ることが理解され得る。
【0067】
ステップ102において、一実施形態では、同時にプログラムされている複数のメモリプレーンのうちのどのメモリプレーンに問題が存在するかを判定することなく、同時にプログラムされている複数のメモリプレーンのうちの少なくとも1つのメモリプレーンに問題が存在するかどうかのみを判定することが、可能であり得ることに留意されたい。
【0068】
本開示の実施形態では、プログラミング例外を有するメモリプレーンがあると判定した場合、シングルプレーン・プログラミング方式は、プログラムされた複数のメモリプレーン上でプログラミング動作を同時実行するように構成され得る。ここで、シングルプレーン・プログラミング方式は、メモリに含まれる1つのメモリプレーンのみを一度にプログラムすると理解され得る。シングルプレーン・プログラミング方式では、行ドライバは、1つの選択メモリプレーンのみにワード線駆動電圧を印加してもよい。
【0069】
いくつかの実施形態では、シングルプレーン・プログラミング方式を採用することによって少なくとも2つのメモリプレーン上でプログラミング動作を順次実行することは、
少なくとも2つのメモリプレーンのうちの第1のメモリプレーン上でプログラミング動作を実行することと、
第1のメモリプレーン上でのプログラミング動作が失敗した、または完了したと判定したことに応答して、少なくとも2つのメモリプレーンのうちの第2のメモリプレーン上でプログラミング動作を実行することと、を含む。
【0070】
ここで、第1のメモリプレーンおよび第2のメモリプレーンの両方が、同時にプログラムされる複数のメモリプレーンのいずれか1つであってもよい。
【0071】
実際の用途では、シングルプレーン・プログラミング方式に切り替えた後に、少なくとも2つのメモリプレーンはランダムシーケンスで順次にプログラムされてもよい。また、規定された順序でメモリプレーンのプログラミング動作を順次実行することも可能である。各メモリプレーンについて、プログラムされている場合、以前のプログラミング状態が継続されてもよい。
【0072】
例えば、マルチプレーン・プログラミング方式を採用して、メモリのメモリプレーンA、メモリプレーンB、およびメモリプレーンCを、同時にプログラムしてもよい。マルチプレーン・プログラミング方式において、プログラミング例外を有するメモリプレーンが存在することを検出した場合、プログラミング例外はメモリプレーンAの構造的な欠陥に起因するものであり、メモリプレーンBおよびCには構造的な欠陥がないと仮定することができる。シングルプレーン・プログラミング方式に切り替える場合、メモリプレーンA、メモリプレーンB、およびメモリプレーンC上で、プログラミング動作が行われてもよい。メモリプレーンAが最初にプログラムされ、プログラミング動作を実行し続けるためのデータがメモリプレーンAのページバッファ(PB、Page Buffer)から取得され得ると仮定してもよい。例えば、メモリセルは、トリナリーレベルセル(TLC)のタイプのものであってもよく、第1のワード線内のメモリセルのいくつかの第2の状態は、マルチプレーン検証の失敗に応答してプログラムされていてもよい。そして、第1のワード線内の一部のメモリセルの第2の状態に対してプログラミング動作を継続してもよい。メモリプレーンAには欠陥があるため、メモリプレーンAは、最終的にはプレーンレベルでのプログラミング障害で終了する可能性がある。そして、メモリプレーンAがプログラミング障害を表示した場合(このとき、不良メモリプレーンはメモリプレーンAであると判定できる)、メモリプレーンBに対するプログラミング動作の実行を開始できる。プログラミング動作を継続するためのデータは、メモリプレーンBのPBから取得されてもよい。メモリプレーンBでのプログラミング動作が完了すると、再びメモリプレーンC上のプログラミング動作が開始され、メモリプレーンC上のプログラミング動作が完了するまで、メモリプレーンCのPBからプログラミング動作を継続するためのデータを取得してもよい。
【0073】
なお、不良メモリプレーンAについては、プログラミング動作で書き込まれるべきデータのすべてが常にメモリプレーンAのPBに格納されていると、メモリプレーンA内の書き込みを失敗したデータが、他の不良メモリプレーンに転送される可能性があることに留意されたい。メモリプレーンAのPBがプログラミング動作で書き込まれるべきデータのみを動的に格納する場合、上述したRAIDを利用してデータ復元を行い、メモリプレーンA内の復元された未書き込みデータを、他の良品メモリプレーンに転送できる。
【0074】
実際の用途では、マルチプレーン・プログラミング方式を採用することにより同時にプログラムされる複数のメモリプレーンは、同じ行ドライバを使用することによって、ワード線駆動電圧を提供されてもよい。しかしながら、リーク電流を有するメモリプレーンのように、同時にプログラムされる複数のメモリプレーンの中に不良メモリプレーンが存在する場合、電源によって生成される電圧は、メモリプレーン上のワード線に実際に印加される電圧よりも高くなり得る。シングルプレーン・プログラミングに切り替えた後に、リーク電流分布が変化する可能性があり、高電源によって生成された電圧が、オーバープログラミング問題を引き起こす可能性がある。
【0075】
これに基づいて、いくつかの実施形態では、シングルプレーン・プログラミング方式を採用することによって少なくとも2つのメモリプレーン上でプログラミング動作を順次実行することは、
少なくとも2つのメモリプレーンの各々に対して、それぞれのメモリプレーン上の第1の選択ワード線に第1のプログラミング電圧を印加することを含み、
第1のプログラミング電圧は第2のプログラミング電圧よりも小さく、第2のプログラミング電圧は、プログラミング例外を有すると判定されたそれぞれのメモリプレーン上の第1の選択ワード線に印加されるプログラミング電圧であり、第1の選択ワード線は、プログラミング例外を有すると判定されたそれぞれのメモリプレーン上の選択ワード線である。
【0076】
実際の用途では、メモリプレーンの各々について、プログラミング動作を実行し続けるときに、選択ワード線に印加される初期プログラミング電圧Vpgmを低レベルに設定できる。すなわち、マルチプレーン・プログラミングに失敗した場合、選択ワード線(すなわち、第1のワード線)に印加されるプログラミング電圧を適切に低下できる。実際の用途では、低下量は、経験値に基づいて判定できる。プログラミング電圧を下げると、オーバープログラミング問題をある程度緩和できることに留意されたい。
【0077】
いくつかの実施形態では、本方法は、
それぞれのメモリプレーンの第1の選択ワード線に第1のプログラミング電圧を印加することに応答して、それぞれのメモリプレーン上の非選択ワード線に第1のターンオン電圧を印加することを、さらに含み、第1のターンオン電圧は第2のターンオン電圧よりも小さく、第2のターンオン電圧は、プログラミング例外であると判定されたそれぞれのメモリプレーン上の非選択ワード線に印加されるターンオン電圧である。
【0078】
実際の用途では、メモリプレーンごとに、プログラミング動作を実行し続ける場合に、非選択ワード線に印加される初期ターンオン電圧Vpassを低レベルに設定してもよい。
【0079】
いくつかの実施形態では、メモリプレーン上のワード線のVpgm/Vpassは、マルチプレーン・プログラミングにおけるそれぞれのメモリプレーンのプログラミング検証電圧に従って判定できる。
【0080】
いくつかの実施形態では、本方法は、
プログラミング例外を有するメモリプレーンが少なくとも2つのメモリプレーン内に存在しないと判定したことに応答して、マルチプレーン・プログラミング方式を採用することによって、少なくとも2つのメモリプレーン上でプログラミング動作を実行し続けることを、さらに含む。
【0081】
すなわち、マルチプレーン・プログラミングに例外がない場合には、プログラミングに、マルチプレーン・プログラミング方式を常に用いてもよい。
【0082】
本開示の実施形態で提案された解決策では、マルチプレーン・プログラミング障害は、マルチプレーン・プログラミング方式を一時停止することによって処理できる。そして、シングルプレーン・プログラミング方式でプログラミング動作を実行できる。本開示の実施形態で提案された解決策は、3次元NAND型メモリの隣接プレーン干渉の故障に対処でき、3次元NAND型メモリの信頼性も向上できる。本開示の実施形態では、1つのメモリプレーンが不良であり、リーク電流により不良メモリプレーンの電圧バイアスが不正確になった場合でも、すべてのメモリプレーンのプログラミング検証をより正確に行うことができる。本開示の実施形態で提案された解決策は、メモリセルアレイ内の可能性のある欠陥を検出するために使用されてもよい。本開示の実施形態で提案された解決策では、オーバープログラミング問題を回避するために、シングルプレーン・プログラミング方式に切り替えるときに、内部のずれを正常に戻すことができる。
【0083】
本開示の実施形態は、複数のメモリプレーンと、メモリプレーンに結合された周辺回路とを含むメモリをさらに提供する。
【0084】
周辺回路は、例えば、コントローラ、論理回路などによって実装されてもよく、これらは、例えば、マルチプレーン・プログラミング方式を採用することによって複数のメモリプレーンのうちの少なくとも2つで同時にプログラミング動作を実行するためにファームウェアを実行することによって、それぞれのファームウェアで対応して構成されてもよい。プログラミング例外を有するメモリプレーンが少なくとも2つのメモリプレーン内に存在すると判定したことに応答して、プログラミング動作は、シングルプレーン・プログラミング方式を採用することによって、少なくとも2つのメモリプレーン上で順次実行される。
【0085】
図2は、本開示の一実施形態によるメモリ1のブロック図である。メモリ1は、デュアルメモリプレーン構造を有し、周辺回路を含んでもよい。周辺回路は、制御回路10、電圧生成回路11、行ドライバ12、列ドライバ131、および132を含むことができる。メモリプレーンは、メモリプレーン141および142を含んでもよい。実施形態ではデュアルメモリプレーン構造が使用されているが、本開示の範囲内で他の数のメモリプレーンも使用され得ることを理解されたい。マルチプレーン・プログラミング方式を採用する場合、メモリプレーン141および142を同時にプログラムできる。
【0086】
実際の用途では、制御回路10は、電圧生成回路11、行ドライバ12、ならびに、列ドライバ131および132に結合されてもよい。電圧生成回路11は、行ドライバ12に結合されてもよい。行ドライバ12は、ストリング選択線SSL1、ワード線WL1(1)~WL1(N)、およびグランド選択線GSL1を介してメモリプレーン141に結合でき、Nは正の整数であり、例えばN=128である。行ドライバ12は、ストリング選択線SSL2、ワード線WL2(1)~WL2(N)、およびグランド選択線GSL2を介してメモリプレーン142に結合できる。列ドライバ131は、ビット線BL1(1)~BL1(M)を介してメモリプレーン141に結合でき、Mは正の整数であり、例えばM=131072である。列ドライバ132は、ビット線BL2(1)~BL2(M)を介してメモリプレーン142に結合されてもよい。メモリプレーン141および142の各々は複数のメモリブロックを含んでもよく、メモリブロックの各々は複数のメモリページを含んでもよく、各メモリページは複数のメモリセルを含んでもよい。メモリプレーン141内のメモリセルは、ワード線WL1(1)~WL1(N)およびビット線BL1(1)~BL1(M)によってアドレス指定されてもよく、メモリプレーン142内のメモリセルは、ワード線WL2(1)~WL2(N)およびビット線BL2(1)~BL2(M)によってアドレス指定されてもよい。
【0087】
制御回路は、ホストまたはメモリコントローラと通信して、メモリプレーン141および142にデータを格納するためのデータを受信するとともに、メモリプレーン141および142から取得したデータを送信してもよい。制御回路は、ホストまたはメモリコントローラから、コマンド、アドレス、またはデータを受信することができ、列アドレス信号Scadr1、Scadr2、行アドレス信号Sradr、および電圧制御信号Svcを生成できる。電圧生成回路は、制御回路からの電圧制御信号Svcに応じて、読み出し動作、プログラミング動作、消去動作、および検証動作のための電圧を生成してもよい。電圧生成回路11が生成する電圧は、メモリ1に供給される電源電圧を超えてもよい。行ドライバ12は、制御回路10からの行アドレス信号Sradrに応答して動作して、読み出し動作、プログラミング動作、消去動作、および検証動作のためのワード線を選択できる。列ドライバ131および132は、制御回路10からの列アドレス信号Scadr1およびScadr2に応答して動作して、読み出し動作、プログラミング動作、消去動作、および検証動作のためにビット線を選択するためのビット線信号を生成できる。
【0088】
プログラミング動作中、電圧生成回路11は、電源電圧(例えば、3.3V)、プログラミング電圧(例えば、20V)、およびプログラミングパス電圧(例えば、10V)を使用できる。行ドライバ12は、選択ワード線上にプログラミング電圧の振幅を有するプログラミングパルスを印加し、非選択ワード線にプログラミングパス電圧を印加し、ストリング選択線SSL1,SSL2に電源電圧を印加し、グランド選択線GSL1,GSL2にグランド電圧を印加できる。また、列ドライバ131および132は、選択ビット線にグランド電圧(例えば、0V)を印加し、非選択のビット線に電源電圧を印加してもよい。検証動作中、電圧生成回路は、適切な検証電圧を生成することができ、行ドライバは、選択ワード線に適切な検証電圧を印加し、ストリング選択線SSL1,SSL2に電源電圧を印加し、グランド選択線GSL1,GSL2に電源電圧を印加してもよい。そして、列ドライバ131および132は、非選択ビット線にグランド電圧を印加し、メモリプレーン141および142の選択ビット線に電源電圧をそれぞれ印加し、選択ビット線上の選択メモリセルからデータを読み出すことができる。データ読み出しが正しくない場合、制御回路10は、選択メモリセルを故障していると検証でき、データ読み出しが正しい場合、制御回路10は、選択メモリセルがパスしていると検証できる。
【0089】
メモリセルは、シングルレベルセル(SLC、single-level cell)タイプ、マルチレベルセル(MLC、multi-level cell)タイプ、トリナリーレベルセル(TLC、tertiary-level cell)タイプ、クァッドレベルセル(QLC、quad-level cell)タイプ、ペンタレベルセル(PLC、penta-level type)タイプ、または上位レベルタイプであってもよい。各メモリセルは、Q個の可能なデータ状態のうちの1つを維持することができ、Qは2以上の正の整数である。例えば、SLCの場合Q=2であり、MLCの場合Q=4であり、TLCの場合Q=8であり、QLCの場合Q=16であり、PLCの場合Q=32である。Q個の可能なデータ状態は、消去状態S(0)およびプログラミング状態S(1)~S(Q-1)を含むことができ、プログラミング状態S(1)は最低のプログラミング状態であり、プログラミング状態S(Q-1)は最高のプログラミング状態である。一例では、TLCは、8つの可能なデータ状態のうちの1つにプログラムされてもよく、プログラミング状態S(1)は最低のプログラミング状態であり、プログラミング状態S(7)は最高のプログラミング状態である。
【0090】
メモリセルは、最初に消去状態S(0)に設定されてもよく、その後、メモリセルを対応する目標プログラミング状態にプログラムするために、メモリセル上で一連のプログラミング検証動作を実行できる。一連のプログラミング検証動作は、最低のプログラミング状態S(1)から始まり、次いで、選択メモリセルの閾値電圧が対応する目標プログラミング状態の対応する検証電圧レベルに達するまで、より高いプログラミング状態に進むことができる。いくつかの実施形態では、検証電圧は、プログラミング状態S(1)~S(Q-1)の閾値電圧分布曲線の最小閾値電圧として、それぞれ選択されてもよい。各プログラミング検証動作は、プログラミング動作および後続の検証動作を含むことができる。プログラミング動作中、メモリセルのいくつかは、第1行から第N行へ、または第N行から第1行へ、行ごとに選択されてプログラミング状態にプログラムされてもよい。
【0091】
いくつかの実施形態では、周辺回路は、制御回路および行ドライバを含み、行ドライバは、少なくとも2つのメモリプレーンに結合され、制御回路によって制御される。
【0092】
行ドライバは、マルチプレーン・プログラミング方式において、プログラミング動作が同時実行される少なくとも2つのメモリプレーンに、ワード線駆動電圧を印加するように構成されてもよい。
【0093】
行ドライバは、シングルプレーン・プログラミング方式において、ワード線駆動電圧を選択メモリプレーンに印加するように、さらに構成されてもよい。
【0094】
本明細書の行ドライバは、本実施形態では行ドライバが複数のメモリプレーンに結合されているが、シングルプレーン方式では、行ドライバが選択メモリプレーンのうちの1つのみにワード線駆動電圧を印加することを除いて、図2の行ドライバを参照して理解され得る。ここで、ワード線駆動電圧は、選択ワード線に印加されるプログラミング電圧と、非選択ワード線に印加されるターンオン電圧とを含んでもよいし、または、プログラミングパス電圧を含んでもよい。
【0095】
いくつかの実施形態では、行ドライバは、少なくとも2つのメモリプレーンの各々について、マルチプレーン・プログラミング方式からシングルプレーン・プログラミング方式に切り替えた後に、それぞれのメモリプレーン上の第1の選択ワード線に第1のプログラミング電圧を印加するように構成されてもよい。
【0096】
第1のプログラミング電圧は第2のプログラミング電圧よりも小さく、第2のプログラミング電圧は、プログラミング例外を有すると判定されるそれぞれのメモリプレーン上の第1の選択ワード線に印加されるプログラミング電圧であり、第1の選択ワード線は、プログラミング例外を有すると判定されたそれぞれのメモリプレーン上の選択ワード線である。
【0097】
いくつかの実施形態では、行ドライバは、それぞれのメモリプレーンの第1の選択ワード線に第1のプログラミング電圧を印加することに応答して、それぞれのメモリプレーン上の非選択ワード線に第1のターンオン電圧を印加するようにさらに構成されてもよく、第1のターンオン電圧は第2のターンオン電圧よりも小さく、第2のターンオン電圧は、プログラミング例外であると判定されたそれぞれのメモリプレーン上の非選択ワード線に印加されるターンオン電圧である。
【0098】
実際の用途では、制御回路は、電圧生成回路を制御して、より低いレベルの初期プログラミング電圧/初期ターンオン電圧(Vpgm/Vpass)を出力してもよく、次いで、行ドライバを制御して、1つの選択メモリプレーンの選択ワード線のみにVpgmを印加し、非選択ワード線にVpassを印加してもよい。
【0099】
いくつかの実施形態では、周辺回路は、
少なくとも2つのメモリプレーン内の現在プログラムされているメモリセル上で実行されるプログラミング検証の数を検出し、
書き込まれるべき現在のデータに対応する事前設定された回数を超えるプログラミング検証の数に応答して、プログラミング例外を有するメモリプレーンが、少なくとも2つのメモリプレーン内に存在すると判定するようにさらに構成されるように、構成することができる。
【0100】
いくつかの実施形態では、周辺回路は、複数のプログラミング検証電圧生成器をさらに含むことができ、複数のプログラミング検証電圧生成器の各々は、少なくとも2つのメモリプレーンのうちの1つにそれぞれ結合され、制御回路によって制御されてもよい。
【0101】
複数のプログラミング検証電圧生成器は、異なるメモリプレーン内の現在プログラムされているメモリセルにプログラミング検証電圧をそれぞれ印加するように構成されてもよい。
【0102】
いくつかの実施形態では、複数のプログラミング検証電圧生成器の各々は、少なくとも2つのメモリプレーンのうちの1つにおけるワード線にそれぞれ結合されてもよい。
【0103】
複数のプログラミング検証電圧生成器は、同一メモリプレーン内の異なるワード線にそれぞれ対応するメモリセルに、プログラミング検証電圧を印加するように構成されてもよい。
【0104】
ここで、複数のプログラミング検証電圧生成器は、図2の電圧生成回路のサブ回路に属してもよい。なお、複数のプログラミング検証電圧生成器は、行ドライバを介して異なるメモリプレーンのワード線に印加するとき、依然として、互いに物理的に絶縁され得ることに留意されたい。
【0105】
いくつかの実施形態では、周辺回路は、プログラミング例外を有するメモリプレーンが少なくとも2つのメモリプレーン内に存在すると判定したことに応答して、第1のフラグを格納するように構成されたレジスタをさらに含んでもよい。
【0106】
周辺回路は、第1の命令を受信すると、プログラミング例外が存在するメモリプレーンに割り当てられたデータをメモリ内の他のメモリプレーンに格納するように構成されてもよい。第1の命令は、第1のフラグに対応するメモリプレーンに格納されたデータをダンプするように命令するように構成されてもよい。
【0107】
ここで、レジスタはステータスレジスタであってもよい。
【0108】
実際の用途では、制御回路は、プログラミング方式を切り替えるかどうかを判定することができ、シングルプレーン・プログラミング方式が終了した後に、メモリシステムまたはホストは、ステータスレジスタを通じてプログラミング障害を検出できる。この場合、メモリシステムまたはホストは、プログラミング例外を用いてメモリプレーンに格納されたデータをダンプする命令を発行するなどの、さらなる手段を取ることができる。
【0109】
ステータスレジスタ内のマルチプレーン・プログラミング障害を示すためのフラグをメモリが確認した場合、メモリはマルチプレーン・プログラミング状態を一時停止することができることに留意されたい。その時点で、メモリシステムまたはホストは、メモリがマルチプレーン・プログラミング状態を一時停止した場合に、ステータスレジスタを確認して、マルチプレーン・プログラミングに例外を有することを発見してもよい。また、メモリシステムまたはホストによって命令が発行されて、プログラミングのためにシングルプレーン・プログラミング方式に切り替えるようにメモリに命令してもよい。
【0110】
いくつかの実施形態では、メモリは3次元NAND型メモリを含む。
【0111】
以下で、本開示を、本出願の実施形態を参照してさらに詳細に説明する。
【0112】
本開示の適用実施形態は、メモリを動作させるための方法を提供する。図3は、本開示の実施形態によるメモリを動作させるための方法を実施するための概略フローチャートである。図3に示すように、本方法は、以下の301から308のステップを含む。
【0113】
ステップ301において、処理が開始する。
【0114】
初期段階では、メモリは、初期化などの準備タスクを実行する。
【0115】
制御回路がホストまたはメモリコントローラからマルチプレーン・プログラミング動作を実行するための命令を受信すると、処理はステップ302に進む。
【0116】
ステップ302において、マルチプレーン・プログラミング方式を採用することによってプログラミング動作が実行される。
【0117】
ここで、周辺回路は、マルチプレーン・プログラミング方式を採用することにより、メモリ内の複数のメモリプレーンを同時にプログラムしてもよい。
【0118】
このステップでは、メモリプレーン間でプログラミング電圧を共有できる。任意のメモリプレーン内のメモリセルアレイが不良である場合、プログラミング電圧はその目標に到達しない可能性がある。プログラミング動作は非常にゆっくりと進行し、さらには他のメモリプレーン上のPSFにつながる可能性がある。
【0119】
ステップ302の後、処理はステップ303に進む。
【0120】
ステップ303において、メモリプレーンにプログラミング例外が存在するかどうかを判定する。
【0121】
ここで、制御回路は、プログラミング電圧検証の数が事前設定の数を超えるかどうかに従って、メモリプレーンにプログラミング例外が存在するかどうかを判定できる。
【0122】
このステップでは、異なるPVレベルに対するプログラミング検証の数を追跡することができ、プログラミング検証の数が事前設定の数を超えるかどうかをチェックできる。特定のPVレベルの検証の数が事前設定の数を超える場合、それはプログラミング例外がメモリプレーンに存在することを示し得る。その際、あるメモリプレーンの成長における構造的な欠陥が、プログラミング例外の原因の1つとなり得る。
【0123】
判定結果が、プログラミング例外のメモリプレーンがあることを示す場合、処理はステップ304に進むことができ、判定結果が、プログラミング例外を有するメモリプレーンがないことを示す場合、処理はステップ305に進むことができる。
【0124】
ステップ304において、マルチプレーン・プログラミング方式を使用して一時停止するように通知するためのフラグが設定される。
【0125】
このステップでは、マルチプレーン・プログラミング障害を示すようにフラグが設定されてもよく、マルチプレーン・プログラミング障害を示すフラグは、メモリのステータスレジスタに格納されてもよい。メモリがマルチプレーン・プログラミング動作を一時停止した後に、メモリは、シングルプレーン・プログラミング動作にさらに切り替えることができる。プログラミング動作全体が完了すると、ホストまたはメモリシステムは、ステータスレジスタ内のフラグを検出し、それに応じて後続の処理を実行できる。ステップ304の後、処理はステップ306に進む。
【0126】
ステップ305において、マルチプレーン・プログラミング方式を採用することによってプログラミング動作を実行し続ける。
【0127】
ここで、周辺回路は、マルチプレーン・プログラミング方式を採用することによって、メモリ内の複数のメモリプレーン上でプログラミング動作を同時実行し続けることができる。
【0128】
ステップ306において、Vpgm/Vpassはより低い電圧に修正される。
【0129】
ここで、制御回路は、行ドライバを用いてメモリプレーンのワード線にVpgm/Vpassを印加しつつ、電圧生成回路を制御してVpgm/Vpassをより低いレベルにしてもよい。
【0130】
ステップ307において、プログラミング動作は、シングルプレーン・プログラミング方式を採用することによって実行される。
【0131】
ここで、周辺回路は、シングルプレーン・プログラミング方式を採用することにより、複数のメモリプレーン上でプログラミング動作を順次実行してもよい。
【0132】
このステップでは、シングルプレーン方式でプログラミング動作を実行する場合、シングルプレーンレベルでプログラミングのパス/失敗が生じ得る。
【0133】
実際の用途では、ステップ306とステップ307との間に厳密な順序はない場合があり、ステップ306は、ステップ307の各メモリプレーンがプログラミング動作を開始するときに実際に実行され得ることに留意されたい。
【0134】
ステップ308において、処理は終了する。
【0135】
本開示の実施形態は、メモリシステム1000をさらに提供し、メモリシステムは、
前述の実施形態で説明した1つまたは複数のメモリ1と、
メモリ1に結合されたメモリコントローラ2と、を含む。
【0136】
ここで、いくつかの実施形態では、周辺回路は、第2の命令を受信し、第2の命令に応答して、マルチプレーン・プログラミング方式を採用することによって複数のメモリプレーンのうちの少なくとも2つでプログラミング動作を同時実行し、プログラミング例外を有するメモリプレーンが少なくとも2つのメモリプレーン内に存在すると判定したことに応答して、プログラミング動作を一時停止し、かつ第1のフラグを格納する、ように構成されてもよい。
【0137】
メモリコントローラは、第1のフラグに従って第3の命令を発行するように構成されてもよい。
【0138】
周辺回路は、第3の命令を受信し、第3の命令に応答して、シングルプレーン・プログラミング方式を採用することによって少なくとも2つのメモリプレーン上でプログラミング動作を順次実行するように、さらに構成されてもよい。
【0139】
ここで、第2の命令は、マルチプレーン・プログラミング方式でプログラミング動作を実行するように、メモリ1に命令するように構成されてもよく、第3の命令は、メモリ1にシングルプレーン・プログラミング方式でプログラミング動作を実行するよう命令するように構成されてもよい。
【0140】
実際の用途では、メモリコントローラ2は、消去動作、読み出しまたは書き込み動作を実行するようにメモリ1を制御し、かつさらに、メモリ内で発行または受信された命令を復号、解析、または動作するように構成されてもよい。メモリコントローラ2は、メモリインタフェース(I/F)を介して、メモリ1に接続されてもよい。
【0141】
実際の用途では、第1のフラグは、各メモリ1に対応するステータスレジスタに格納されてもよい。メモリ1上で一時停止プログラミング動作がある場合に、メモリコントローラ2は、メモリ1に対応するステータスレジスタにアクセスしてもよく、メモリコントローラ2は、第1フラグに応じて、プログラミングを一時停止しているメモリ1に第3の命令を発行してもよい。第3の命令を受信した後に、プログラミングが一時停止されているメモリ1は、シングルプレーン・プログラミング方式を採用することによってプログラムされてもよい。
【0142】
「第1(first)」、「第2(second)」などは、類似のオブジェクトを区別するために使用され、必ずしも特定のシーケンスまたは順序を説明するために使用されるとは限らないことに留意されたい。
【0143】
加えて、本開示の実施形態に記載された技術的解決策は、矛盾することなく任意に組み合わせることができる。
【0144】
前述の説明は、本開示の好ましい実施形態にすぎず、本開示の保護の範囲を限定することを意図するものではない。
図1
図2
図3
図4